7 Mac OS X Performance; 8 'peer. Android Studio has never let you create non-Gradle projects, but we've tried not to break it.). Or from the Tools > Android.
December 2018 In my previous post, I covered creating a new Xamarin.Forms project in Visual Studio 2019. The Xamarin.Forms project template hasn’t really changed much and the default application you get is the same as what we were seeing in the most recent updates for Visual Studio 2017. However, there are some big updates coming down the line for Xamarin.Forms developers, not the least is Shell, which is covered in the. I’m going to take Shell for a bit of a spin, and to do so, I’m going to use the new project templates that are – These will only install into Visual Studio 2019, so if you want to try them out, you’ll first need to install An hours or so later After installing the new templates I went about creating a new project It seems that the new templates must have completely replaced the previous templates – not a great start, considering I’m likely to want to be able to create a non-shell based Xamarin.Forms application.
Where’s the UWP support? Seriously, as if UWP wasn’t failing hard enough as it is, the fact that there doesn’t appear to be UWP support in the initial Shell release it a bid depressing. After that the new project screens all look familiar, so the next thing we’re looking at is the default solution structure.
My first comment (as usual) is that the view models are stuck in the same project as all the UI elements – I consider this to be incredibly bad practice as it means you end up with a mess of dependencies and it’s way to easy to break the separation of concerns between view and view models. Having said that, this is a getting started templates, so I guess if they’d added another project it would probably alienate other developers who prefer to have everything in a single project. The great thing is that I can select either iOS or Android as my startup project and hit run – a minute or two later after the emulator has started up the app has been deployed and is running.
Side Note: This post actually took me a couple of sessions because I got interrupted and it took a couple of days for me to get back to it. When I did, I accidentally opened the XamShell app I’d created in Visual Studio 2017, where it builds and runs without issue. Of course I don’t have the Shell templates. Here are a couple of screenshots from the running app – Firstly I love that they’re replaced the Xamarin logo added to the new project, as shown in the splashscreen.
Note that this is not actually a splashscreen and that in fact they’re setting the background on the main activitiy. There’s so debate about whether this is best practice, or whether it’s still good to use a splashscreen to improve the perceived boot time of the app. This is the master-details template, so we get things like the burger menu. The main screen includes a basic list and an add button in the navigation bar – pretty stock look and feel. The about page is a little more interesting but again nothing mind-blowing.
If we look in the main XamShell project we notice that in addition to the usual App.xaml, which is required for Xamarin Forms, there is now also an AppShell.xaml. At this point I did in fact switch back to Visual Studio 2019 because opening AppShell.xaml in VS2017 seemed to be a bit of a broken experience. Opening AppShell.xaml the first thing I noticed is that styles have been setup and a combination of implicit and explicit styles defined – yes!!! This is great to see in a template.
Next I noticed that two pages have been defined: Browse and About – this confused me as there are actually 4 pages included in the project. On checking the code, it appears that the other pages are dynamically created as needed. The provides a good overview of the key elements that make up the Shell hierarchy. My initially impressions are that this is going to be great for jump starting basic mobile applications. I’m interested to see how far this can be taken and how it can handle more complex navigation patterns and applications. I’ll explore further the various aspects of Shell but I’d encourage all Xamarin Forms developers to give Shell a chance – let’s see whether this can be made into something amazing by providing constructive feedback to the XF team.
December 2018 I’ve just installed the preview for Visual Studio 2019 and wanted to share the experience of creating a new Xamarin.Forms application. Firstly, the startup screen.
Whilst I’m disappointed not to have the news feed, the new startup screen gives you a quick launching pad for whatever it is you want do in VS2019. Let’s go with “Create a new project”. The search/filtering works well to quickly find the right project template Now let’s provide some generic project information.
Ah and now we’re back to a familiar dialog for creating Xamarin.Forms applications. There’s no option to use a shared library any more – good riddance. As you’ll see we get a.NET Standard 2.0 project where our XF pages and other logic will go. And now we have the usual solution structure for an out of the box XF application containing the project that’ll house the pages (ie VS2019XFProject) and then head projects for iOS, Android and UWP. Let’s hit run and check out the newly created project – notice I picked the Master-Detail template early so we get a basic layout with a hamburger button in top left. And that’s it.
BTW the chrome around the edge of the coding window seems to be progressively shrinking with each progressive release of Visual Studio. Eventually it’ll be carved back to what Visual Studio Code offers.
November 2018 A while ago I wrote an article for Visual Studio magazine that details getting started with Xamarin.Forms and MvvmCross. Whilst some things have changed since then, the process for getting started is still basically the same. To verify this process I followed the article and took screenshots along the way – these mostly correspond to the screenshots that are in the article, with a couple of extras thrown in to ensure good coverage of the steps. October 2018 I noticed earlier this evening that there was an update available for Visual Studio 15.9. Normally I wait a few days to update as I’m not in any particular hurry but I noticed in the and that work had been done on the Android build and execution. I also remembered that I hadn’t updated Visual Studio or my emulator images since updating my Surface Book 2 to the latest Windows update – it contains a fix for the awful performance of the Android emulator running on Windows hypervisor.
Anyhow, the upshot is that I updated Visual Studio to the latest preview. I decided to drop my existing emulator images and create new ones.
Unfortunately this was a bad idea as I was then unable to start the new emulator images. When I attempted to start the emulator I would get an error stating “The requested operation requires elevation. (Exception from HRESULT: 0x800702E4)'. Turns out I’m not the only person seeing this, as someone had already. It also turns out that there’s a simple solution.
Close the Android Device Manager and just hit Run from within Visual Studio. Turns out that this causes the emulator image to boot, deploy and run the application. And all the updates seem to do the trick, debugging is back to an acceptable speed.
September 2018 Previous posts in this sequence on Getting Started with Xamarin.Forms:, Last post I covered how to use OnPlatform to tailor resources and styles based on the target platform. However, there is an alternative dimension you can tailor the layout of your application and that’s using OnIdiom. If you look at the definition of the OnIdiom class you can see that it allows you to define different values for Phone, Tablet, Desktop, TV and Watch. To use this in XAML is very similar to using OnPlatform: Hello from a phone app Hello from a desktop app As you can see from the code snippet this provides different string values for when the application is run on a phone vs being run on a desktop. Note: Tablet only works well for iOS and Android.
Xamarin.Forms running on UWP currently doesn’t distinguish between Windows running in desktop or tablet mode, and as such will always use the Desktop idiom values. September 2018 Previous posts in this sequence on Getting Started with Xamarin.Forms:, In previous posts we’ve looked at using resources and then styles and resource dictionaries in order to manage the style of elements throughout our application. Whilst Xamarin.Forms provides an out-of-the-box cross platform experience, the reality is that if you don’t tweak the layout a bit for each platform, your application is going to look very generic, and not in a good way. In this post we’ll look at some of the different ways that you can adjust layout based on which target platform the application is running on. The starting point is to look at an individual element, such as a Label, and how an individual property can be adjusted for different platforms using an OnPlatform element. In this example instead of supplying a value for the FontAttributes attribute we’ve expanded into long form using a Label.FontAttributes element.
Nested within this element we create an OnPlatform element, supplying the TypeArguments attribute to indicate what Type of value the OnPlatform is going to produce. Within the OnPlatform element we then have an On element for each platform we want to specify a value for.
Since we’re not a big fan of having literals specified for an individual element, and even more so when doing per-platform styling, we can also define resources using the OnPlatform syntax: This defines a resource, FeatureColor, within a ResourceDictionary, with different colors defined for each of the three platforms. As you can see, defining values for each platform can start to add a lot of bloat to your XAML. A work around for this is to use a similar technique that we’ve discussed previously where we include files on a per platform basis. For resources this requires a bit of fiddling, so there are a few steps involved. We need to start with the csproj for the UI project and adjust the first ItemsGroup to remove all XAML files that are within the Platforms folder. Next we need to selectively add back the XAML files based on what the target platform is.
The bold lines in the following XAML from the csproj file indicate these changes. Next we need to create platform specific XAML files. I simply copied the LiteralResources.xaml and LiteralResources.xaml.cs into each of the Platform folders and renamed both the files and the class name to PlatformLiteralResources. In my case the project structure looks like the following: You’ll notice that the PlatformLiteralResources.xaml is only showing under the Netstandard – this appears to be a bit of a bug in Visual Studio as the file exists and should appear in the project structure for all the platforms. The only thing left to do is define some platform resources and to link the PlatformLiteralResources class into the resource dictionary hierarchy: PlatformLiteralResources 24 StyleAndTemplateResources Note that the hierarchy is now App.xaml StylesAndTemplateResources PlatformLiteralResources LiteralResources. And there you have it, you can now define platform specific literals in the PlatformLiteralResources xaml file without worrying about using the OnPlatform element. August 2018 I was attempting to debug some code in a.NET Standard library that was being referenced from a Xamarin.Forms base UWP application.
Unfortunately, it didn’t matter where I set the breakpoint in the library, they were never hit. Initially I thought that this was related to it being a multi-targeted project but it turns out this same issue applies to a regular.NET Standard library. The only hint I had was when the application was running there was a yellow warning triangle on my breakpoint which a pretty unhelpful, yet accurate, message.
Now you’d have thought that since this project was included in the same solution as the application, that it was being built by Visual Studio as part of building and running the application, that you wouldn’t have to do anything special to get step through debugging to work. This is not the case – it appears that debug symbols can’t be loaded – huh! I mean seriously, we expect better. I had also recently installed the first preview of Visual Studio 2017 15.9 so I thought that might be the issue but no, even opening it in 15.8 still showed the same issue.
So it turns out that there is an issue with the default build configuration – open project properties for the.NET Standard library and click on Advanced under the Build tab The default “Debugging information” value of Portable is what the issue is. Change this to Full or Pdb-only Doing this will set the debugging settings for the currently selected target framework and platform. For example for my project it generated: pdbonly true I simplified this so that it would always use these debugging settings when doing a Debug build pdbonly true And there you have it – step through debugging should now work. I’m not sure why it’s so hard for Visual Studio to either use this option by default, or at least provide a useful warning that directs the developer to either documentation, or actually switches the setting automatically. August 2018 I’ve been struggling to get the Android emulator to perform at a level where debugging was possible.
After upgrading to VS15.8 I was able to switch over to use the new (note that “Windows Hypervisor Platform” is different from the Hyper-V feature in the Windows Features dialog). However, I found that the performance of the emulator was so bad that debugging was barely possible – infinitely worse than when I was using the HAXM support.
After spending a bit of time searching online I came across references to versions of the Android emulator that were higher than what I was using. I double-checked the Android SDK Manager just in case there were updates available but there were none. Eventually I realised that by selecting the cog in the lower right corner of the SDK Manager I was able to switch from the Microsoft repository across to the Google repository. After switching to the Google repository there was indeed an update to the tools, which included the new emulator version.
![Android Emulator Xamarin Mac Never Finishes Starting And Then Closes Says Execution Failed Android Emulator Xamarin Mac Never Finishes Starting And Then Closes Says Execution Failed](/uploads/1/2/5/5/125570202/219223775.png)
Did this fix the performance issue? Not entirely. Performance was better in the Android P emulator but still nowhere near as good as a real device (even an old one). If all else fails, go to the source. I reached out to and asked if this was a known issue.
Looks like we need to wait for a Windows update in order to get this performance fix.
I can't wait until I have a talk with my kids when they realize the significance of this day: Kid: Daddy, ou mean when you were growing up, they threw away rockets each time? Me: Yes Kid: Doesn't that make them expensive? And then not long after will be the other talk: Kid: Daddy, you mean people used to be in charge of driving themselves in cars? Me: Yes Kid: Did people ever die? Me: Millions Good job Elon and SpaceX, get some rest, and then focus on the Model 3! Elon: We have proven what can be done, that many said was impossible.
Drops mic after SpaceX lands flawlessly. I genuinely think that this is a bigger deal than the moon landings. The moon landings were pretty awesome in their own way, but at the end of the day, with the way they were done, it was basically a stunt. None of it put any infrastructure for the long-term access of space into place, or anything to make future moon landings easier. This paves the way for the costs of space flight to be cut in half, or even a little further.
This has the potential to set off an exponential chain of growth of space travel. The further they cut prices, the more customers and launches there are. The more customers there are, the more profit they make, to be plowed back into better, more reliable, and more reusable rockets. And the more incentive their competitors have to come up with their own reusable rockets. The more reusable they are, the further they can bring prices down. Every step reinforces the next, and in 30-50 years, the price of a launch may well be a tenth of what it is today.
Maybe closer to a hundredth. What will we build when access to space costs 1% of what it does today? Maybe a huge space station, or a moon colony, or asteroid mining, or all of the above.
The more traffic we have to space, the more infrastructure we build, and the cheaper and more reliable it all gets. Off-world colonies might become about as practical as a trip to and colony in Antarctica is today - still tough and hazardous, but well within the budget and vision of any developed nation. This is freakin' awesome for the future! SpaceX is an amazing company that is moving innovation forward in leaps and bounds. I love this because it does bring people together and gets humans to look up, above problems and fighting and gets us realizing we are in this together. I still cannot get over the reverse landing on the drone that first time1 it was almost unreal and took them a while to get there 2. That image is seared in my brain like the moon landing probably is for people who lived through that.
It was about a year ago and SpaceX is already, in less than a year, performed the reverse landing on the drone and successful relaunched. Amazing moment in human history and SpaceX continues to lead the way. I've noticed that during the webcast they talked much more about their planetary colonisation project than they usually do. I guess it makes sense since today is the first time they actually implement the re-usability plan they believe is the key to this colonisation. But frankly, is the cost of going to mars really that important for its colonisation? I mean, I wouldn't move to mars even if going there was free. For one, there's no breathable air, for Pete's sake.
They are talking about building a city on a place where there isn't even breathable air. That's insane. This whole thing is very conflicting to me. On one hand I can appreciate the technological achievement and I acknowledge that re-usability will be extremely useful for space exploration, but on the other hand I can't help thinking that those people who get excited about building a city on mars are completely delusional. Watching the raw video stream today, I couldn't help but feel that we're looking at a quantum leap in rocket technology.
The intensity of sound and exhaust from the engines was something I have never seen from a rocket that size before. I'm curious how the specific impulse of the newest Merlin compares to what ULA is using, considering a lot of their stuff is either Russian made or designs from the 60's. It's possible they will not only capture the launch market, but the engine market for other manufacturers as well. I understand the enthusiasm, but I don't see enough hard data to convince me this will be a commercial success.
Looking at, SpaceX has launched and landed about 10 of these rockets, and has so far reused one. That rocket was first used about a year ago. Factors that might prevent this from making this economically superior to 'just' ramping up production are: - the fraction of launches that can be reused. the amount of effort needed to prepare a rocket for reuse relative to that needed to produce a new rocket. They will have been extra cautious this time, but from the above, the answers could be 'about 10%' and 'almost one year, taking way more effort than building a new one does'.
I would think the real answers are a bit better and will get even better over time, but I also don't think they already are at 'close to 100%' and 'a couple of weeks', because, if they were, I think they would have launched a used rocket earlier. I also am not convinced they can get there. That's mostly guessing, though, as I'm not a rocket scientist and can't find hard information on this. Does anybody have that? FLAVOR: Ubuntu Desktop: 1. HEADLINE: A way to have different scaling for external monitors hooked up to my HiDPI laptop.
Currently I need can only set a single scaling factor, so I need to ajust my laptop screen resolution to match scaling of the external monitor. If that's not possible, a way to automatically set resolution and scale for both screens once you hook one up would already save me a lot of manual switching and restarting lightDM! HEADLINE: 'Native' multitouch gestures like 3-finger swipe to change workspace.
There are some programs that can do this already like xSwipe and Fusuma, but I expect this integrated with a nice and easy menu. HEADLINE: Better battery management.
Battery performance under Ubuntu is often much worse in Ubuntu than Windows. TLP helps, but it's not enough. FLAVOR: Ubuntu Desktop - HEADLINE: Please, please, please fix space issues with /boot. DESCRIPTION: I'm constantly running out of space in /boot, due to kernel updates.
It drives me so incredibly batty. If I had to guess, this is due to poor defaults in the installer for folks that opt to encrypt their whole disk. Even still, this system was setup back on 14.04 (don't think it started on 12.04), and I have no intention of reinstalling from scratch just to fix it.
Publish something official on how to fix this problem! Make it easy and stress free! Yell at the people who didn't catch this bug before it went out! Sorry, but this is just a really bad problem: it leads to folks like me wasting time, and probably a whole bunch of other folks just not being able to install updates, and no idea why. ROLE/AFFILIATION: software developer in the federal government. FLAVOR: Ubuntu Desktop - HEADLINE: More stable dock/undock and sleep/wake handling. DESCRIPTION: I've noticed that my system often hangs unrecoverably with a blank screen during dock/undock and sleep/wake events.
I've learned, though, that I can reduce the likelihood of having problems by trying to minimize the number of state changes that the system has to handle at once. For example, if I'm leaving the house with the laptop, I'll first open the lid, wait 10 seconds to see if the display wants to turn on or not, undock it, wait 10 seconds for it to adjust, and only then put it to sleep. Same thing waking it up: one step at a time, with 10 second pauses in between. Seems to reduce my problems by about 90%. As a developer, this screams 'race conditions' to me, but what do I know? If there's a bug filed for this already, I wouldn't know - no idea what I'd search for.
I take the uptime game pretty seriously: having to reboot means that I lose a ton of context. Right now, I've got nine separate workspaces/desktops going, all with several browser, terminal, etc.
A reboot means I'll spend anywhere from 10 to 20 minutes installing updates and recovering all of that state. It's painful.
Right now, my system has only been up for 9 days, which is weak sauce. ROLE/AFFILIATION: software developer in the federal government. OK here goes.
FLAVOR: Ubuntu Desktop - HEADLINE: Drop Mir & collaborate with Wayland - DESCRIPTION: I know this is a touchy subject and I'm not looking to self-righteously re-re-re-ligitage everything but. Between Intel walking away, licensing concerns, Ubuntu varients not jumping onboard, and various community concerns, would you re-consider abandoning mir and joining forces with Wayland?
I understand you felt there were some technical shortcomings regarding how input devices were handled. Perhaps in today's climate those concerns can be better addressed by Wayland if you can provide the engineering leadership on those efforts? - ROLE: Code Janitor. Flavor: Ubuntu Desktop Headline: Good (or even acceptable) high-DPI & multi-monitor support Description: High-DPI support is really bad in Ubuntu right now, and multiple external monitors are poorly supported. Here are some of problems I experience regularly: - Ubuntu won't remember screen configurations when unplugging and 'replugging' external monitors, which means I have to reconfigure them again and again.
Often Ubuntu will freeze / crash when unplugging external monitors or when powering the laptop up after putting it in sleep mode and unplugging the monitor cable while the laptop sleeps. The only safe way to unplug a monitor is to first manually disable it in the 'Display' settings, which honestly is not acceptable. Ubuntu often does not even notice when monitors get unplugged, hence it keeps displaying apps on (now unplugged) monitors.
When opening the 'Display' settings it will usually recognize the mistake and remove the extra monitors from the config. High DPI in general is still poorly supported in apps and the performance is very bad compared to e.g. Windows, to the point that I'm not even able to play 4k videos. Some keyboard/mouse gestures don't work on secondary monitors (e.g.
Using the arrow keys to navigate through menus) Role: CTO - ADDENDUM: By high-DPI I especially mean 4k displays (e.g. 3840 pixels wide), which are becoming more popular and which are almost completely unusable without proper DPI scaling. Another problem with the 'Display' settings dialogue is the weird behavior when dragging window icons around to arrange them: Often they will get stuck or outright refuse to move where I want them to be, such that I need to resort to some hacks (e.g. Moving monitors around each other in circles) to get them where I want them to be. Also, when plugging in an external monitor often Ubuntu will not detect it correctly and display it as having a resolution of 800x600 pixels, refusing to adjust it or enable the monitor. The only way to fix this is to reboot the machine.
In general I want to thank all developers of Ubuntu, which -while not perfect- is still by far my preferred OS for any serious development work. FLAVOR: Ubuntu Desktop - HEADLINE: Replace X11 with Mir or Wayland - DESCRIPTION: X11 is old, slow, and full of security issues.
Mir, even in alpha, is much more responsive and provies important 21st centry feature set. Wayland is already used by a major distro. X11 is that cobweb that's gone uncleaned in our closet for too long. HEADLINE: Improve UI.
DESCRIPTION: When I use Ubuntu it's often easier to use the terminal then to learn the 10 different UIs to configure everything. This makes it impossible to convert specific people to using Ubuntu because they just don't have the time to learn all of the terminal-spells I know. Ideally there'd be a single place that could detect most configs for standard packages and a way to add hooks to that to get your package to show up in that menu. I don't know if this exists but if it does it's definetly not used. ROLE/AFFILIATION: 'Undergraduate Research Associate', I program and do sysadmin stuff for a department at my college. FLAVOR: Ubuntu Server - HEADLINE: 'Hardened System' preset install option - DESCRIPTION: A checkbox in the installer which automatically applies a series of adjustments for a higher level of security right off the bat.
Similar to the package presets but for security. So no one has to - ROLE/AFFILIATION: Freelancer -FLAVOR: Ubuntu Server - HEADLINE: Something to allow to apply different versions of php to different nginx server blocks - DESCRIPTION: Something like perlbrew but for php. To allow installation of multiple hosted systems when their php version requirements differ. ROLE/AFFILIATION: Freelancer -FLAVOR: Ubuntu Desktop - HEADLINE: Something to switch audio output from my Laptop's built-in speakers to HDMI when it's connected - DESCRIPTION: Currently I have to run 'pulseaudio -k' every time I turn on my HDMI flatscreen because after I turn it off at night the audio switches to the built-in speakers- but not the other way around when I turn it back on. ROLE/AFFILIATION: Freelancer. FLAVOR: Desktop - HEADLINE: Make trackpads great again! Bring on gestures by default.
DESCRIPTION: Trackpad config situation is a mess. Pretty much every Ubuntu derivative has its own simplified (reads severely lacking) interface. What's worse is the gestures configuration. It's mostly done via some dude's one off scripts found on some forum post 2 years ago. Give me a MacOS like experience on the trackpad (especially the 3/4 finger workspace switching) and I'd never look back on MacOS again. FLAVOR: Desktop - HEADLINE: More stable and polished desktop - DESCRIPTION: This one is hard to pin down, but I'd like to see more general polish and stability in the Unity desktop.
One example would be around multi-monitor support, it's pretty good, but a bit funky in some places. For example, if I have a monitor plugged in and I let the laptop screen lock come on, I can sit there and watch while both displays cycle through an On - Off - On - Off loop.
I think when one display goes to sleep it sends a signal which wakes the machine back up, or something. I'd also like to see more options for configuring multiple mice/trackpads/trackballs in the Settings app, general improvements to quality-of-life issues which are very noticable when transitioning from, say, macOs to Ubuntu. One more polish issue: I'd like to see more attention paid to power-drain regressions in the OS. I had an issue recently where a process related to automatic updates was spinning in the background and consuming 100% of a CPU core, and cutting my battery time in half compared to what it should have been. I looked into it and found it was a known issue that wasn't fixed yet, but could be solved by deleting one of the default apps. If I were a less sophisticated user I would have just concluded that battery-life simply sucked on Ubuntu, and frankly I would have been right. EDIT: all these issues were encountered on a Thinkpad T460, which should really be one of the best supported machines in the world for this OS.
If things are flaky under the best of circumstances, I dread to think what it's like on some weirdo Siemens laptop some user might have- ROLE/AFFILIATION: Software Developer. FLAVOR: Ubuntu Desktop - HEADLINE: Better Mouse Settings - DESCRIPTION: Right now mouse acceleration is enabled by default, and for heavy mouse users this is really not usable. There is no way to change this behaviour in the mouse settings. The only way as a user to get a workable mouse configuration is with custom startup scripts, and it took me as an experienced Linux user and software engineer a long time to figure out exactly how (The recommended way to do this kept changing). Non-expert users cannot be expected to do the same. All it needs is a checkbox or possibly a slider in the Mouse & Touchpad settings to configure the acceleration speed. ROLE: Desktop User.
FLAVOR: Ubuntu Server - HEADLINE: Built-in support for installing up-to-date packages - DESCRIPTION: Currently, `apt install package` on LTS Ubuntu will install a package that is up to 24 months out of date (or more if you're not on the latest LTS). Literally one month ago, using the latest version of Windows 10, I installed Ubuntu for Windows (which installed Ubuntu 14.04 LTS), and `apt-get install nodejs` installed Node 0.10 (from 2013! I understand users want stability in the core OS, but there's no reason it should be made so difficult to install up-to-date software from elsewhere. `apt` is useless for installing things like `youtube-dl` because old versions of youtube-dl quickly stop being compatible with YouTube.
Ubuntu's current solution to this problem is PPAs, which are very non-ideal because they only work if someone maintains a PPA, but this involves: 1. Googling for the software's PPA, 2. Finding the PPA, 3. Possibly trusting a third-party PPA maintainer, 4. Running at least three different commands, which you have to either memorize or re-google Basically all software's Ubuntu installation instructions are something like 'curl this script and pipe to bash' or 'build from source' or 'install this other package manager, then use the other package manager to install our software', just because it's impossible to install the latest version using Ubuntu's built-in package manager out-of-the-box. For instance, here's Redis: 'Installing it using the package manager of your Linux distribution is somewhat discouraged as usually the available version is not the latest.'
I want to be able to do something like `apt install-latest youtube-dl` to get a usable version of youtube-dl, and considering the number of workarounds for this issue I find online, I think a lot of other people have the same want. ROLE/AFFILIATION: owner of a top-2000 US website. FLAVOR: Ubuntu Desktop - HEADLINE: Proper virtual desktop / spaces for multiple monitors (i.e.
Independent, per-monitor spaces) - DESCRIPTION: Right now it isn't possible to switch workspaces on two or more monitors independently. This is possible on Mac, and is a huge productivity boost. Coming home from work to use my personal Ubuntu machine always feels like a step backwards for this reason alone. I want to be able to have one monitor for my IDE, and one monitor for terminal /vim, browser instances, music, etc. I like to keep different virtual desktops 'scoped' to different things-eg.
'documentation and code' vs 'personal email'. When I switch between these on one monitor, it also switches the space on the other monitor. They should be entirely independent of one another. If I'm looking at something on my left monitor, but want to look at something different on my right monitor, why make me switch both of them away? The lack of ability to independently control the desktops on each monitor makes me super sad.:(. FLAVOR: Ubuntu Desktop - HEADLINE: Volume leveling across applications - DESCRIPTION: I use headphones every day. I listen to music and podcasts while I work.
I use youtube videos and screencasts to learn new things. Sometimes I hop on a VOIP call through one service or the other. The one feature I miss most from Windows Desktop life is the 'volume normalization' checkbox in my sound settings. It protects me from opening a new chrome tab and blasting noise into my ears at +30db. It protects me from that guy on the voice call that has his mic level WAY too high. It helps me hear the other guy who can't get his mic above a whisper.
Most of all I never have to fiddle with individual application volume levels. Linux Desktops love to crib ideas from Apple, but for some reason they've all ignored this killer feature from 2006. FLAVOR: Ubuntu Desktop HEADLINE: Better security processes DESCRIPTION: I've been quite disappointed that there wasn't really any public reaction from Ubuntu to a variety of security issues affecting the Linux Desktop in general and Ubuntu in particular. E.g.: Seriously, right now an Ubuntu Desktop isn't a secure choice for users, especially if they have to expect targeted attacks. Some things I'd propose:. Dangerous automation features need to be either disabled by default or heavily audited.
That includes things like tracker and apport. In general I wonder how much auditing happens before something enters Ubuntu. Some basic auditing that could also be automated like testing packages with asan should be a default inclusion criterion for adding packages.
Currently there are no bug bounties at all in the Linux distribution world. I get that this is a financial challenge, but at least in severe cases where the fault clearly lies within the distribution and not within an external project I'd consider bug bounties appropriate.
(Just read Donncha's blog post linked above. He could've gotten $10.000 from a shady exploit dealer and he got nothing, because he did the right thing.) ROLE: I'm running the Fuzzing Project and I write for IT tech media about security issues. FLAVOR: All HEADLINE: Embrace the spirit of Open Source, not just comply with the letter of the law DESCRIPTION: Here's an extract from the Software Freedom Conservancy report on Canonical's licensing policy: Redistributors of Ubuntu have little choice but to become expert analysts of Canonical, Ltd.' They must identify on their own every place where the policy contradicts the GPL. If a dispute arises on a subtle issue, Canonical, Ltd. Could take legal action, arguing that the redistributor's interpretation of GPL was incorrect.
Even if the redistributor was correct that the GPL trumped some specific clause in Canonical, Ltd.' S policy, it may be costly to adjudicate the issue. FLAVOR: Desktop - HEADLINE: improve VPN support - DESCRIPTION: the WLAN UI supports some OpenVPN options, but not all, and fails silently on importing non-compatible config files. This is very confusing for new Desktop users. FLAVOR: Desktop - HEADLINE: multi-column list view in nautilus - DESCRIPTION: This view has been explicitly dropped but is very useful for quickly navigating large directories. Alternatively, replace Nautilus with a file manager that can do this (like Nemo). This is one area where the Windows file manager is still much better.
FLAVOR: Desktop - HEADLINE: polish file dialogs (multi-column-list view) - DESCRIPTION: the default file-open and file-save dialogs lack many simple features that can save a lot of time. For example, in the file-open dialog there is no multi-column view (see above), you cannot rename files, you cannot create files/folders, you cannot access the normal context menu.
All this requires separately opening a file manager, which also lacks a few productivity features (see above). FLAVOR: Desktop - HEADLINE: polish hotkeys and general window handling on multi-monitor setups - DESCRIPTION: I needed a bunch of compiz plugins to make this work in a halfway decent way in a 2-monitor setup, and I dread the day I will have to re-shuffle this for a 3-monitor setup etc. Make it easy to move a window 1) from one monitor to the other, 2) resize and move to one of the corners/sides, 3) maximize it. Also, applications in full-screen mode on one of the monitors confuse my compiz-based setup (for example, a full-screen Chrome window on one monitor will introduce numerous UI issues). Still, it's a great system and very nice to use overall. Thanks for gathering feedback.
That's the first step;-) Keep up the good work! Edit: language. FLAVOR: Ubuntu Server - HEADLINE: Please don't mess with python package management - DESCRIPTION: Take a look at this bug: This happened because ubuntu decided to unbundle some packages that come as a part of the python ecosystem. This is really a major annoyance because it breaks default behavior that people have come to rely on in every other platform, and confuses the hell out of people - just google for similar keywords and you'll find tons of questions and discussions around this and similar issues. Please don't mess with this stuff, or if you're going to break them, break them in a way that tells the user what the heck to do - it costs real hours and effort to debug and work around these things for production deployments.
ROLE/AFFILIATION: Software / Data engineer. FLAVOR: all?- HEADLINE: Improve experience of using 3rd-party apt sources- DESCRIPTION: This suggestion is more apt related, but Ubuntu could lead the improvements. Many software providers (Microsoft, Elastic, etc) are using their own apt repositories to be able to deliver updates faster than the Ubuntu release cycle, which is great. However, configuring them usually requires Googling the instructions and at least 3 commands.
For example, installing SQL Server for Linux has the following commands before you can even run apt-get install (from their official documentation): curl sudo apt-key add -curl sudo tee /etc/apt/sources.list.d/mssql-server.listsudo apt-get update That is not user-friendly at all. It would be great if apt could help you out here.
If I type in 'apt install mssql-server', it could detect that it is not in the Ubuntu sources but that it is available in a trusted 3rd party source, and prompt me to add that source to my local apt sources. It would then also automatically update that source. Also, perhaps the Ubuntu sources have an older version but a newer version is available at a trusted 3rd party, and provide an informational message and an apt command-line flag that would allow you to add the source. 'mssql-server 17.0.0 is available at the third party source 'microsoft'. To install it, run 'apt install mssql-server -S microsoft' which would add the microsoft source and install the package.- ROLE: software engineer.
FLAVOR: Ubuntu Desktop HEADLINE: Officially supported i3 or equivalent DESCRIPTION: i3 offers a vastly superior power-user usage experience, pretty much compared to anything else in the market. If Ubuntu would offer a properly configured/themed/integrated i3 desktop, I'd be happy to use it, because I've done enough pointless fine tuning for one lifetime. I'd be fine with some other tiling window manager too, as long as if it was at least as good as i3. I have doubts that this could be done properly with Unity, but I won't mind being surprised. ROLE: Desktop Linux user since '96. FLAVOUR: Ubuntu Desktop HEADLINE: Lightweight by default - don't follow the Windows/Mac crowd DESCRIPTION: GNU/Linux - X'ish desktop environments systems in general and window managers in particular - used to have a certain way and freedom to be able to do things.
Around 2000-2005 I was quite happy with FVWM, KDE3 etc. The window managers allowed me to do things that weren't possible with Windows or Mac. (Focus follows mouse, configurable behavious, handle many windows with ease.) I wish Windows or macOS won't be considered as ideal solutions and GNU/Linux just being a bad copy of that. If that's really the best thing, then it's a better idea to actually use MS Windows or macOS - I use the latter since 5 years almost exclusively. Just recently I started using Linux (Xubuntu) again privately on an older computer and at work as well. (At work we don't have Macs) Please come up with your own ideas - nobody except 'computer experts' use Linux on the Desktop anyways. You could go from there.
Also looking at Xubuntu, it's a cool system. I really like it because it's fast, I can work with more than 5 windows comfortably. Unfortunately its bluetooth config is worse - recently I had to login to Cinnamon to make my Bluetooth mouse work again. Same goes for multi monitor, it works okay.;) That means: when I disconnect my laptop from the external screens, open the display and go to the meeting it's black.
I have to shut it down if I want to use it. (Power button or SysRq.) So yeah, if Windows gets got enough (read: they finally get rid of all these freezes and things that just stop working) and they Opensource even more stuff, why not use Windows? I must admit, I'm no Opensource prophet so my primary reason to start switching to Linux around '98 was because Windows was mega buggy, slow and not nice to use on average hardware when the installation was more than a few months ago.
IMHO true Opensource people use Debian, Arch or some unusual combination - like Windows as main OS with Emacs and Arch in the VM like a friend of mine. Again is a time with so much potential for Ubuntu Desktop because devs are increasingly unhappy with macOS. FLAVOR: all HEADLINE: More stability DESCRIPTION: On systems that have very little customization, I regularly get 1-2 crashes after the login that ask me to report them again and again. Systems regularly fail to boot after upgrading the kernel when proprietary Nvidia drivers are installed (the ones Ubuntu suggested to me), because stuff is not properly recompiled. The file manager crashes when connecting to a SAMBA share for the first time during a session. I can fix this crap (although I'm getting tired of it), but for regular users, they go straight back to Windows. Stuff like that simply can't happen in a stable release or at least it needs to be fixed ASAP.
I like Ubuntu, but think that you are handling the support for multiple releases poorly and it might be better for everyone to switch to a rolling release, like Windows did. The users would get better support and updates and your developers would have more time to improve the software, instead of managing broken releases. As it is now, you are getting buried in bugs and there's no end to it. FLAVOR: Ubuntu Desktop, Ubuntu Server, Ubuntu Core - HEADLINE: Build from source, minimize deltas from upstream, and quit poisoning the Debian ecosystem.
DESCRIPTION: I have repeatedly hit issues with core packages and applications that are solved by simply doing: apt-get build-dep; apt-get source package; cd package.; fakeroot debian/rules Sometimes the packages fail to build. This tells me that you do not have an automated build regression system, even though Debian has gone to great pains to make this easy to automate. I have hit bugs in packages because there is a large stack of diffs that have been applied to the package (logrotate is one example), but never upstreamed. The logrotate diffs include a 'security patch' that is not well thought out, does not actually close a real bug, and causes logrotate to silently fail, filling /var.
This would not happen if you actively upstreamed patches, and reverted changes that are not approved by upstream, or addressed in other ways by upstream developers. These two systematic issues have caused me to move away from Ubuntu for server and desktop use.
Finally, I've heard stories about Ubuntu devs forcing through controversial votes in the Debian project, and noticed an uptick in user-hostile decisions by the Debian project (like the forced systemd migration). As a major contributor to Debian, Ubuntu should do whatever it can to improve the health of the Debian community, and generally improve the code quality + stability of upstream debian projects (without just killing off stuff that Ubuntu has decided not to ship). ROLE/AFFILIATION: Engineer/Researcher At work, we ship a hardware appliance based on Ubuntu. I've been using Ubuntu / Debian as my primary development environment for almost two decades, and am saddened by the level of bitrot I've encountered over the last 2-3 years. FLAVOR: Ubuntu Server - HEADLINE: Separate purge-old-kernels command from byobu package - DESCRIPTION: I like byobu, it's extremely helpful but I would prefer the purge-old-kernels script to be in a separate package. I like to run servers with the minimum amount of packages installed and don't really need byobu since most of my maintenance are remote commands. /boot gets filled up quickly and the purge-old-kernels is a script I think is well written and perfect.
I want it separated from byobu, please. ROLE/AFFILIATION: SysAdmin. FLAVOR: Ubuntu Desktop - HEADLINE: optimize Ubuntu for people who suffer migraines/headaches and other health issues when working with displays.
DESCRIPTION: There's a small niche of users who suffer badly when working with displays. There are all sorts of things to optimize(mostly to kill various flickers and too much brightness) - no backlight refresh by putting backlight at 100% and using some screen filter app, 16-bit resolution(32-bit in some display types is causing some flicker), up-convertion of videos to the highest frame-rate possible(if it's possible to do so for web videos - would be amazing!!!), various night modes and brightness controls, maybe recommending screens and devices that would help(selection is a huge issue). Btw, if you manage to really help here, this user niche will be very loyal, and will suffer a lot on other areas. Also - a well optimized machine, might be liked by regular users in a subtle way(less tired, etc). ROLE: desktop user with migraine.
FLAVOR: Ubuntu Desktop - HEADLINE: Improved remote desktop - DESCRIPTION: Remote desktop solutions for desktop Linux really haven't changed a whole lot since I first started using them in the late 90s. It would be great to get something out of the box that was as responsive and feature-rich as, say, Windows's remote desktop feature. VNC is functional of course, but lacks a lot of the fluidity of other remote desktop solutions.
Bonus features would include remote clipboard, sound, printers, and files. As it stands, if I think I'm going to need to remote into a Linux desktop, I set up a Windows host and run Ubuntu in a VM. Then I use RDC/RDP to connect to the Windows host and run the VM in full screen. That's surprisingly more responsive than just running VNC in a native Ubuntu installation. ROLE/AFFILIATION: Developer.
FLAVOR: Ubuntu desktop HEADLINE-1: Support for Wayland clients in Unity. DESCRIPTION-1: I don't think it will be beneficial for Unity to have a different window system protocol from the rest of Linux desktops (including non-Unity Ubuntu flavors). I don't want X11 to stick around as the compat layer that works with both Unity and everything else. Please make Mir into a Wayland compositor. (I like the Unity UX. I'm not a Unity hater.
Currently, I'm sticking to 16.04, because I don't have confidence in Ubuntu not breaking things by making Mir have its own protocol.) HEADLINE-2: Autoremove old kernels before /boot fills up. DESCRIPTION-2: The UX of having to manually remove kernels with an LVM/LUKS setup (using the default /boot size the installer chooses) is bad and makes Ubuntu with disk security unsuited for non-geek users. ROLE: Browser engine developer but speaking as a user.