Archive for Linux

Galago Pro Review

The new Galago Pro is an exciting new entry into the field of Linux laptops from favorite Linux hardware vendor System 76. Currently, I am running it as my home machine running Pop!OSand doing most of my web and Rails development on it as well as a good deal of scripting for automating some Rails deployments with Docker and Dokku. After running it more for more than 50% of the time and living in it for a few weeks, here are my thoughts.

Build Quality: I don’t want to be to forward but the galago has a nice body — I mean it’s a looker! All kidding aside, the metal build is a big improvement from all the other System 76 laptops available and from most other Linux laptops on the market. While I would have preferred a matte screen, the screen is gorgeous. Of course the elephant in the room is Mac build quality. It’s close but sadly, not quite there. The largest issue is the sound quality on the onboard speakers, it’s not great and for my ears unusable.

Battery Life: I’ll make this quick and brutal. It’s not good. My usage is looking at about 4.5 hours on average. Nowhere need what I need and just bad. If there’s one major issue that needs to be fixed in a second rev, then this is it.

Ports: This machine has ports! USB, USB C, HDMI, ethernet, and a few others. You can live dongle free, the way God intended. The fact that I haven’t had to think about ports or adapters on this machine is great. I like having the option to plug into ethernet when needed. However, I might like to see a rev give up some of the ports in favor of more USB C — that’s just the direction the market is going in and as my good friend Locutus is so fond of reminding me: “resistance is futile”.

Performance: This baby runs great! My only real complaints here are it often sounds like a small drone is attempting to take off from my desk due to fan noise. In my limited research of other Galago users, there does seem to be a correlation between fan noise and the i7 model which is the one I have. It’s entirely possible that the i5s might run with less fan noise, but I haven’t tested that.

Overall, it’s a good solid Linux laptop. If you’re looking to support a Linux-focussed vendor and are in the market, the Galago is worth a look. If you’re looking for a MacBook Pro killer, you might find yourself slightly disappointed. If you liked this post, follow me on Twitter.

Bashing Bash

Ubuntu on Windows
Coder Radio listeners who already caught Monday’s show will know that I have been playing around with Bash on Windows. To be specific I was using the Ubuntu “app” available on the Windows Store and made not modifications to it or my system.

The experience of just getting it installed is pretty terrible. You have to join the Windows Insider program and after you’ve done that restart your computer a number of times until Windows Update notices that you’re in the program and picks up the required update. There’s no direct command line script you can for this you just restart, restart, and restart… until… eventually… it works. Having spent a lot of time in UNIX-like environments, I’ve gotten used to things be a little more precise than “restart and pray.”

Once it got the Windows Insider issue sorted out and installed the Ubuntu “app” from the Windows Store, I started messing around with the BASH interface. On the whole, it functions like a real BASH interface and the commands you’ve been using on Linux / macOS will work just fine. However, that was pretty much the end of my enjoying the experience. Like many things in technology my primary issue is one of expectations. I expected to simply be able to open a BASH window that would start in my home directory and be able to interoperate easily with the local Windows file system. This is not how BASH on Windows works. The Linux file system is separated into an obscure section of the hard disk, making even the simplest tasks of working between the Linux systems and Windows needlessly challenging. From a practical perspective what I wanted to be able to do was edit some code using Visual Studio Code somewhere in my ‘Documents’ directory and run BASH commands against that code easily.

Because I am doing a lot of work that crosses into the legacy Windows world, I really wanted this to work and find it particularly disappointing because other Microsoft tools (Azure, VS Code, and Typescript) have proven to be surprisingly useful for my latest efforts. It would have saved me a ton of headaches. However, it’s just not ready for prime time yet. Ultimately, if you’re working in a Windows environment you’re still better off with just learning Powershell or using something like Cygwin. Let me know what you think on Twitter or in the comments. Also, heard of Docker Compose but not sure what it’s all about? Checkout my quick explainer here.

Pop!_OS First!_LOOK

After about three weeks traveling technologically marooned on macOS island, I made a decision to try a new operating system – Pop!_OS. Yes, I’ve been using Ubuntu Gnome for the majority of my home office computing but due to some odd proprietary VPN requirements that only work on macOS and Windows, I’ve defaulted to traveling with my MacBook Pro. No more! From now on my System 76 Lemur will be dual-booting Windows 10 and Pop!_OS with Pop as the primary operating system from most of my development work. It’s been a few days and I have some initial impressions of Pop.

At first glance, Pop looks bright and modern, blending the simplicity of WebOS with the Material Design aesthetic of Android. Long time Ubuntu users will notice some similarities to the soon to be discontinued Unity user interface from Canonical. On the whole, I like the bright aesthetic. For the most part System 76 has done a good job of creating icons for common applications that it’s target market of “makers”, however, it is very easy to find icons that do not match the visual design language and they stick out like a sore thumb.
enter image description here
I particularly appreciated that my editor of choice, Visual Studio Code, and some of the more common text editors used by developers have on-brand icons that fit into the overall system well.
enter image description here

From a practical perspective Pop is little more than a flavor of Ubuntu. That may sounds like a dig, but it’s actually one of the best advantages of Pop, since that means it has access to all the Ubuntu repositories and is compatible with all Ubuntu software packages. This was actually very helpful to me, since it allowed all of my system bootstrap scripts to run unmodified to setup my new install.

So far, my usage of Pop has been pretty smooth. It seems to be fast and snappy. The one point of UX annoyance is the lock screen; it’s just the Gnome one and the requirement to slide up to login is annoying. I’d like to see a customized lock screen that was more on brand with the design and didn’t require that extra step.

It’s important to note that Pop is not yet a fully released product, so a lot could change / mature in the coming months. I definitely like the direction it’s going in but I do think that if it’s going to be branded a OS for “makers” there should be something like per-configuration profiles / setups similar to what Dell does on the Sputnik laptops; the idea there is that you’d have profiles for different types of “makers” that automatically installs industry standard FOSS tools for them. Maybe that’s not something advanced users would use much, but it would make provisioning a small shop with Pop much easier. Also, they should just brand it “Pop”, not Pop!_OS as the current name is confusing.

Want to learn more about what I’m doing in the AI / bot space? Follow me on Twitter.

Why I’m Selling My MacBook Pro – Focus

In a word – “focus.” There are a lot of cool technologies available to developers to today and the truth is that, I’ve been spending a lot of time chasing a lot of different albeit very interesting technologies and trying to figure out what makes sense for myself and for Buccaneer. Here’s just a brief list of the things that I’ve found incredibly interesting technology-wise over the last eighteen months:  Docker, Swift, Linux, iOS development, Android development, Arduino, 3D Printing, DevOps, Angular, React, and about a thousand other things. All of them are very cool, but there’s not a lot of depth one developer can get in any given technology if he or she is focusing on more than one or two of them at a time.

So what does this have to do with selling a Mac. Well, I spent years writing iOS apps in Objective-C and a significantly smaller amount of time writing them in Swift and that was fun for a long time, but now Buccaneer and I have moved on to the exciting world of Containerization via Docker and the wider DevOps space.

For a time, I was trying to juggle these two priorities but what I found was that if you have two messages, then all you’re really messaging is a cacophony of white noise. Another aspect of this is looking into the future based on the current tech trends. While there still are some advantages to native apps over hybrid apps, most enterprise customers are correctly focusing on hybrid or web-powered apps or those who have a little more tolerance for a performance hit are skating to where the puck is likely going in the form of progress web apps. Enterprises are really deciding between hybrid apps with tools like React or Ionic or full on progressive web apps using something like Angular or Google’s Polymer. The reasons for this tend to be the usual development and maintenance costs arguments but also that most of the complexity in enterprise systems tends to be on the back-end rather than the client-side.

My solution is extremely simple — to just skate to where the puck is going and that’s toward thinner clients with complicated back-end systems. These back-ends will be hard to maintain and that’s where containerization provides value and I find that sort of work is best done on a Linux workstation, so I’m going Linux 100%.

Mac Exodus Over?

Many commentators myself included have been making some hay out of the trend of developers and other pros moving away from Apple’s macOS in favor of various (usually Ubuntu) distributions of Linux. Vendors like Dell and System76 have seen gains in the professional workstation market against the less then well received MacBook Pro, but Apple is waking up and smelling the professional angst. Apple’s pronouncements in favor of professional computing on macOS and the promise of a revised MacBook Pro as well as a re-designed Mac Pro with a more “modular” design. We’re already seeing the so called Mac Exodus being blunted by Apple’s announcement. The questions becomes less a contest of Linux vs macOS quality and more a race against the inevitable tide of macOS’s professional resurgence. The overall goal for Dell and System76 should be to gain as much market share in the professional workstation space before Apple actually launches new hardware for that market. To that end, I’m going to play “CEO for a day” of Dell and System76 and game out a strategy for both of them respectively. I’m picking on these two firms, because I like them and also feel like they have the best shot of actually being successful.

Dell has money. Lots and lots of money. That’s great but also can lead to conservatism. Their success with the Sputnik project was one of the early and most successful ventures of a major desktop manufacturer into the Linux space. The product it produced – the XPS 13 Developer Edition – is still one of the most compelling Ubuntu laptops available. Dell needs to widen their Ubuntu product-line to include larger higher power models as well as something more akin to the MacBook Air. There will be an R&D / product development cost to this, but it’s going to be worth spending. The other key here is that Dell has a huge asset that System76 won’t – it controls its own production pipeline and has the manufacture of PCs down to a science. That should lead to better yield over competitors which at any reasonable volume means there are some margins to play with there. Dell should cut these margins on select base models of Ubuntu Linux workstations to the bone, nearly selling them at cost. This will make a dramatic cost comparison against Apple, given their already high prices and should also make Dell a very attractive supplier to creative agencies and the like as they look to cut costs in an increasingly competitive environment. Remember, the goal here is to gain market share fast and hopefully create career spanning Linux customers who otherwise would have gone to Apple.

System76 doesn’t have Dell money but it has something else focus. In many ways, they’re already taking the right steps to up their hardware game by moving away from Clevo and Sager hardware and toward producing their own, but more can be done. My expectation is that within the next eighteen months we are going to see more Apple quality hardware from them once their production lines and processes are fully up and running. Sadly, some of it is going to come at a greater cost than money. System76 has good relations with the Linux community and in particular the Ubuntu community. Canonical (the company behind Ubuntu), in what can be described charitably as a pivot toward reality, is dropping its Unity desktop user interface in favor of GNOME and seems to be more focused on IOT and “cloud computing” than the desktop. This makes sense, given that Canonical has limited resources and needs to make real money somehow, someday, someway. The folks at System76 who I’ve met and like very much need to find a way to show leadership in the community by guiding it into a direction that strengthens the Ubuntu desktop as the leading choice for professional workstations. The key here is to lead the community in the right direction but resist the temptation to commit too much of their own limited development resources to the effort. I know what I am suggesting is less being a good community citizen and more leveraging the community, but the reality is that the Linux community has been wasting development resources on alternatives to alternatives for things like package management and window managers — strong leadership could finally close some of these questions and focus the communities efforts.

This is a race against the clock and make no mistake, the window is closing quickly. If Linux workstation vendors such as Dell and System76 can’t make significant gains in market share quickly, then this whole “Mac Exodus” will be little more than a blip in the history of Apple’s domination of the modern professional workstation market. If you have any questions or comments, Tweet me and please checkout my Youtube channel where I offer Docker and DevOps tips.

Lemur Review

Coder Radio listeners will know that I have been agonizing over replacing my three-old MacBook Pro and with the recent Apple announcement of their new MacBook, I ended up ordering a System 76 Lemur laptop with Ubuntu 16.10 Linux pre-installed. If you’re interested in the specific specs of the system, you can see them here. My thoughts in the future of computing (or the next “big thing” if you prefer) being AI powered by Linux on the cloud. My crazy predictions about the future of AI and the stages it will go in are a post for another day – for today, let’s go over the Lemur itself as it compares to the MacBook Pro it’s replacing.

The general hardware is good but a little more plastic feeling than I am familiar with. I like the inclusion of a USB-C port but do wonder who is still using VGA and if that space on the body would not have been better used for another USB port. I was pleased that my high-res Dell monitor and peripherals all worked out of the box with the Lemur – that’s a big win for System 76, as device compatibility concerns (real or imagined) tends to be a main thing that keeps would-be-switchers from going Linux. The general “just works” quality of the Lemur with Ubuntu 16.10 is by far the most impressive aspect of my experience with it.

On average, I am getting about 4-5 hours of battery life with the screen just about all the way turned up and playing / streaming music or podcasts basically constantly. That’s less than ideal, but I am confident, I could bleed an hour so more out of it if I did less streaming and dimmed the screen some.

The matte screen on the device is surprisingly good and has helped to bring me around on matte screens in general. I might have liked a more “retina” screen but the 1080 resolution is more than fine for my needs.

The keyboard is a bit of step down from the MacBook Pro keyboard that I am used to. There is far less key travel and at times it feels a bit too insubstantial to type on, however, it’s about on par with most non-Apple keyboards on windows laptops with the possible exception of the current Dell XPS 13 and is by no means the worst laptop keyboard that I’ve used.

The track-pad is just bad. Even compared to other non-Apple laptops, the track-pad doesn’t cut the mustard. It at times feels “jumpy” and at other times feels slow and unresponsive. It’s also awkward feeling on my fingers but that’s probably a bit too subjective to worry about for most. I’ve taken to keeping a USB mouse in my bag with the Lemur.

The sound from the on-board speakers is adequate but leaves a bit to be desired when compared to the MacBook Pro speakers. Neither is very good, so there’s not a lot to worry about here – in general, if you care about audio like I do you’re probably always disappointed with laptop speakers. The most glaring issue here is that at high volumes the sound becomes tinny.

All in all, I think the Lemur is a good choice for someone looking for a Linux laptop that could be great if just a little more care was taken with the track-pad and keyboard, as the other minor points I’ve made here are probably specific to my tastes / expectations.

Comments? Questions? Forest burning FOSS rage? Hit me up on Twitter.

Bye MacBook, Hello Lemur!

Apple is widely believed to be releasing new Macs next week and I am celebrating this long overdue update to the MacBook Pro by replacing my existing MacBook Pro with a Linux laptop from System 76. This isn’t one of those “Apple sucks posts” but I did want to go over briefly why I find myself moving away from Apple platforms and in to the open-source arms of Ubuntu Linux for my production needs but am still firmly entrenched in the i-ecosystem for my content consumption and light office productivity needs. Generally speaking, I am making a bet that the puck is going toward Linux powered AI.

Let’s start with content consumption. I ‘own’ over one hundred and eighty movies in iTunes, over fifty albums on iTunes, and a family subscription to Apple Music. I also have a number of newspaper and magazine subscriptions that just frankly have far better user experiences on iOS than Android. Basically, I’m pretty highly invested in the Apple content ecosystem, so moving away from Apple totally would be costly and more than a little wasteful. Also, I am pretty happy with the Apple TV / iOS devices / iTunes setup.

There’s also the issue of time’s insistent march on. iOS and mobile platforms in general are extremely mature. That’s great for users but less than exciting to me as a developer. Don’t get me wrong I still love iOS and Android development, but it’s just not that exciting or bleeding edge anymore. The sad fact being that both those platforms are very mature and most apps are just re-implementations of commonly accepted design patterns; that goes doubly for those that are clients to relatively simple REST APIs.

Going forward for the next five to ten years, I think there’s going to be some serious action in the field of AI or ‘bots’ if you prefer. In my opinion most of the most significant innovations are going to be on cloud-based Linux servers that power these pieces of software. Of course mobile platforms will likely be the most common front-ends for this type of software, but my guess is that will be in a more limited thin-client capacity. That’s the bet my Twitter followers may have figured out that I have been working on some side AI bots for months now and that’s where I think this is all ultimately going.

Let me know what you think especially if you think that I’m crazy! If you’re curious, the laptop I went with for my MacBook replacement is the Lemur by System 76. The Lemur joins my home office’s Ratel as the second machine in my growing Linux / System 76 fleet.

Linux Adventure Pt 3 Skylake Hell

My adventure in the world of Linux continues and I’ve come to the point where I have purchased a Dell XPS 13 non touch and went ahead and installed Ubuntu 16.04 on it. It’s important to note that I did not spring for the Dell Developer Edition, since there was a sale on the regular (read Windows 10) version of the machine and since my intention was to immediately upgrade to 16.04 once I got the machine.

My first day working with Mate, things were great, but there was a lurking problem hidden by the fact that I was running my XPS to an external monitor that entire day. You see the XPS model that I have has the newest Skylake hotness in it. Unfortunately, Skylake has been problematic in terms of screen flickering issues on Windows 10 due to driver issues – the Linux situation is just as bad if not work. The screen flickers every few seconds and is basically not usable unless connected to an external monitor.

Because of this issue, I was forced to use the recovery tool provided by Dell to reset my machine back to Windows 10 and am using it with Windows without issue. This is a pretty disappointing problem but is not necessarily the end of my adventure. My plan is to simply wait until the community or Intel provides a driver that resolves the issue. In the meantime, I’ll be checking out Windows 10 as a development environment and try out that BASH on Windows stuff.

Let me know what you think on Twitter.

Linux Adventure Pt 2: Ubuntu Apps

UbuntuMy Linux adventure continues on my modest Dell workstation. I’m pleased to say that so far things are going very well and Ubuntu continues to bring new life to my otherwise underpowered workstation. After getting over a few hurdles, what’s really impressive about my experience working on Ubuntu daily is how uneventful it is. Still, there’s always some room for improvement and the most glaring pain point is the lack of decent apps available for the operating system. Ubuntu just doesn’t have a good app ecosystem compared to MacOS and the Software Center is little more than an embarrassment.

Developer Interest: The simple and most basic cause of this is that there just aren’t many apps available, since developers don’t see Ubuntu as a platform worth developing for. Unfortunately, that’s probably true to a point. A simple Google search for developers considering moving their app project over from MacOS or Windows to Ubuntu, doesn’t yielding very heartening results. There also is something of (what I believe to be a misconception) among some developers where they believe that Ubuntu users are unlikely to purchase software.

App Distribution: Canonical, the developer of Ubuntu, released the Software Center several years ago with the hopes that it would become the equivalent of the App Store on MacOS. Unfortunately, the Software Center was poorly implemented and little to no effort was made to draw developers to the platform. Failing the Software Center, developers are left to their own devices for delivering their apps and there’s little standardization on Ubuntu or Linux as a whole for that matter when it comes to the easy distribution and installation of GUI apps.

The advantage of Ubuntu and Linux operating systems in general is that there are steps that the community can take to resolve issues on the platform. For instance, the community could develop an open-source alternative to the Software Center and encourage its adoption. Of course, Canonical could accelerate the process by throwing their development and financial weight behind such an effort and making a clearer statement about where the platform is headed.

Let me know what you think? Do you see Ubuntu as a viable development platform? Reach out to me in the comments below or on Twitter.


UPDATE: I have been made aware that the Software Center launched before the Mac App Store. I appreciate the correction. This only makes Canonical’s failure deeper, since they’ve had more time to work this out. Maybe the GNOME store will be better but I don’t think being first is in any way valuable in terms of being a developer and considering developing commercial software on the platform.  

Linux Adventure pt 1: First Look

Coder Radio listeners will know that I started using an Ubuntu workstation a few weeks ago for over about half of my general development work. While it’s true that I can’t do any native iOS or MacOS development on my workstation the majority of my current work tends to fall into one of the following technologies: native Android (Java), Ruby on Rails development (Ruby), Ionic development (JavaScript). Due to the death of my Macbook last week, I’ve spent about a week 100% on Linux at work and it’s really given me some perspective into how much things have changed on desktop Linux since I last used it seriously sometime around 2009.

The machine I’m running is Ubuntu 15.10 on a slim Dell tower with no graphics card and 8GB of Ram – it should be noted that it started with 4GB but I found that I had a spare stick lying around, so I went ahead and pushed it to eight. Overall, the performance has been phenomenal and there have been no obvious speed or animation issues in the Unity desktop.

However, the general UX has been a little more problematic. Many applications have small visual bugs in Unity under the default theme and rounded corners in particular proved problematic, leaving a dark triangle near the edges of the application’s window. I ended up solving this problem by using the GTK Arc-Dark theme. There was also an issue where the cursor kept getting stuck on the loading icon that I had to solve using the GTK Tweak tool.

In terms of actually getting work done, things are going fairly well. Installing my Android and Rails development tool-chains was a breeze with the exception of Postgres, but Postgres tends to be terrible on MacOS as well, so I don’t hold that against Ubuntu. Once I really got down to coding, my JetBrains tools were just like their MacOS versions and Git was well Git.

On the whole, I like the workflow that I’m developing on Ubuntu and am going to stick with it for a while. Another striking aspect of the changeover was how much of my workflow is Chrome dependent rather than being operating system dependent – ie I find myself using a wide variety of web (and particularly Chrome) based software. I expect that my usage of it will evolve as time goes on and as I find more sophisticated Ubuntu applications that fit and expand my workflow.

If you’d like to follow my continued Linux usage and get other development / tech insights, please follow on Twitter.