Category: Ubuntu

First thoughts on Dell XPS 13 Developer Edition

A few weeks ago a Dell XPS 13 Developer Edition arrived on my doorstep.

Wait, what? I thought you were a Mac guy

I’ve been using a 15-inch MacBook Pro as my daily machine for ten years, but before that I was on a Dell running Ubuntu for a few years and I’m on Linux servers every day.

I’ve been looking for a smaller machine to use as a secondary/backup laptop. I thought about getting a new 13-inch MacBook Pro, but it sounds like Apple may refresh the line-up later this year or next year, so I decided to wait and then maybe replace my 15-inch with something from the new line-up, assuming they don’t do something stupid (I’m looking at you, Touch Bar).

I thought about a Chromebook, but that seemed too limiting. I know developers have been successful on high-end Chromebooks, especially if they are able to use cloud-based IDE’s, and there was a recent announcement about running Linux apps on Chrome OS, but I honestly would rather just run Linux.

I decided to get a Laptop that ships with Linux. Sure, I could buy any laptop that has good compatibility feedback and just install it myself, but I figured, why not let someone else do that work for me. I quickly narrowed down the list to System76 Galago Pro and Dell XPS 13 Developer Edition (model 9370). After reading lots of reviews I decided to go for the Dell. I like System76 as a company, and I hope to buy some other hardware from them in the future, but the XPS 13 gets lots of great reviews in terms of build quality which is ultimately why I decided on the Dell.

This is a secondary machine, so I could have skimped on the specs to save some dough. Instead, I decided to provision the new laptop as if it were my primary dev machine to make it as useful as possible as a backup and roadie. If it’s anemic, I won’t use it, and the whole idea is to actually use the thing. When Apple eventually refreshes the MBP lineup, I want to make a good decision about whether to stay the course with MacBook Pro or make the switch back to Linux full-time.

Impressions after three weeks of occasional use

The Dell XPS 13 has an aluminum top and bottom with a carbon fiber deck. I was worried about the case not being all-aluminum, but that was unfounded–this is a solid machine. It’s small and light but has a sturdy, well-put together feel. The aluminum case and the black carbon fiber look pretty sweet. I can’t get over how thin it is.

I’m not quite used to the keyboard yet–I feel like I’m stretching to get to the left ctrl key and I consistently hit PgDn when I mean to hit the right arrow. The keys have more travel than I thought they would based on the thin case, which is good.

The trackpad is much better than I thought it would be–I had come to believe that only Apple could do trackpads right. I was wrong. The Dell trackpad is a pleasure to use. I will say that with its large size relative to the small deck and my big mitts, I’ve inadvertently palm-touched it more than once.

While researching the machine I saw several mentions of the thin bezel around the display, but I didn’t pay much attention to what seemed to me like an insignificant detail. That was until I opened the lid and fired it up. The display is simply gorgeous. I can’t stop looking at it, it’s so big, bright, and crisp. Comparing it to my daughter’s 13-inch MacBook Pro, I now get the bezel thing. The XPS 13 is basically wall-to-wall display.

I’ve always associated small laptops with lackluster performance, but, damn, this thing is super snappy. It’s got an Intel I7 8th Gen CPU with 8 cores that runs up to 4.0 GHz. Mine has 16 GB of LPDDR3 2133 MHz RAM and a 500 GB SSD. That’s a lot of punch to be packing in this small package. I’ve had the fan kick on a few times, like when I’m running several Docker containers, but most of the time it’s quiet.

There have been reports of “coil whine”–a high-pitched noise often associated with video cards–on these machines, but I have yet to hear it.

I haven’t given the battery a fair shake yet–the specs claim 19 hours, which seems like a stretch based on what I’ve seen so far. The charging adapter is tiny which I’ll really appreciate when I take it on the road.

This year’s model has two USB-C ports, a card reader, and a headphone jack which is plenty for my needs.

Enough hardware, let’s talk software

The XPS 13 Developer Edition ships with Ubuntu 16.04 LTS. I use Linux all of the time, so I wasn’t worried about being productive immediately on the OS. I suspect that developers considering a move from MacOS to Ubuntu (or other Linux distributions) would also find the transition easy, even if they rarely use Linux because their shared Unix heritage makes them very similar, especially from a command line perspective.

My biggest worry was VPN. It seems like every one of my clients uses a different VPN setup. Many of my clients already struggle to get my Mac connected, so I had low hopes for the Ubuntu machine. The results have been mixed–I was able to use a combination of OpenConnect and Shrew Soft VPN to get connected to most of my clients from the machine. Not all of them are working quite yet. (Ironically, connecting to VPNs based on Dell SonicWall have given me the most trouble).

Other than VPN, getting everything else set up was smooth. I’ve had no problems installing the most critical software: Firefox, IntelliJ IDEA, Atom, VirtualBox, Docker, Pidgin, Retext, Java, Maven, and NodeJS all installed without incident.

I thought for a second I wouldn’t be able to use my Yubikey because of the USB-C ports, but Dell ships an adapter and that worked great, as did the Yubikey GUI.

I’m super happy with the machine so far–it’s going to meet my requirements quite well. Whether or not I come full-circle and return to Linux as my primary daily development machine OS will depend on my eventual success with VPN as well as what Apple decides to do with the MacBook Pro line-up. Until then, I’m enjoying this little beast.

Why I’ve Switched from Ubuntu to Mac

It pains me to say it, but I’ve left Ubuntu as my primary OS and switched to Mac. I used Ubuntu as my primary operating system on my Dell laptop for over two years. I loved it. I felt very productive in the OS, especially relative to Windows. Many people have commented on how excited I must be (“Dude, you’re getting a Mac!”) but for me it kind of feels like it did when we moved out of the house our kids were born in–I know we moved for the right reasons, but the old place was special to me.

 

So why the switch? With Ubuntu there were a few annoyances. The major ones included:

 

  • Palm Treo synchronization. Worked in Gutsy once then started working fine after upgrading to Hardy Heron so this one wasn’t ultimately a factor.
  • OpenOffice.org incompatibilities with Microsoft Office. At Optaros we’ve tuned most of our standard documents to work with both. Just to make sure I always sent a PDF version of documents and presentations along with the original.
  • Broken wireless with the upgrade to Hardy Heron. Worked great in Gutsy. Completely broke in Hardy. The problem is a bug in Network Manager related to the Intel wireless device in Dell laptops. I learned to live without wireless.
  • Unreliable display detection. This is correctable with edits to xorg.conf, but when my machine couldn’t detect the projector settings, it was usually 10 minutes before a pitch which is a bad time to be fooling with that file.
  • Inability to host a Webex. I worked around this one by dual booting, running a virtual machine image, or using an alternate machine. Co-workers running Gentoo don’t seem to have a problem with Webex so I’m not sure what was going on here.
  • Gnome instability. Every once-in-a-while, I’d hear my hard drive start swapping and then–boom–all of the “file menu” frames around all of my active windows, and all of my Java processes would simply go away. There was no way to recover without restarting X (ctrl+alt+backspace). Gnome is probably not an accurate description of where the problem was here.

Could I have fixed these issues? Given enough time, probably. But I’d rather spend my time elsewhere rather than fooling around with stuff that ought to “just work”.

 

I realized that what made my development so productive on Ubuntu was:

 

  • Being able to install software quickly and easily through apt-get
  • Working with the same command-line tools I enjoy working with on Linux and Unix servers
  • Building and running open source technology on its “target” platform
  • Having complete control over what is installed and running at any given time
  • Enjoying increased stability and performance (gnome issue aside) compared to Windows
  • Never having to worry about procuring a license
  • Finding helpful community and online resources for self-support

Ultimately it was my former colleague and friend, Tom Pierce, a fellow Linux lover and Mac user, who convinced me that with a Mac I could keep the productivity of Linux while gaining the benefit of a consumer-oriented machine–Mac users don’t have to settle for broken wireless or worry that an archaic projector will derail a client presentation. (To be fair, neither do Linux users with the time and inclination to work through the issues).

 

So I bit the bullet and switched. At least on my primary work machine. My wife and kids still run Ubuntu on their desktop, my son runs Debian on his laptop, and our DVR is a Windows Media Center PC that talks to an XBox 360. (My home IT environment is now every bit as heterogeneous as Optaros’). Tom says my MacBook Pro is essentially a gateway drug and that my house will be all-Apple in no time. I hope he’s wrong. I don’t want to be a fan boy. Variety is the spice of life. My Treo is looking a little long in the tooth, though. I’ll bet an iPhone would be a nice complement to this machine…

 

Everex should have gone with straight Ubuntu

I’ve been slowly tweaking the way my family uses their computer to make it easier to migrate everyone to Linux. First, I completely removed Internet Explorer and got everyone used to Firefox. Then, I moved my wife off of her thick email client and onto Gmail. Next, I replaced Office with OpenOffice. Each of those moves was relatively painless. Spreading them out over time helped.

The kids were even easier. When they were younger, they used a lot of PC-based CD-ROM games and educational software. Now ages 6 and 10, they are exclusively into web-based Flash games and virtual worlds. All browser, all the time, although they do seem to enjoy tweaking their wallpaper, changing themes, resetting their passwords, and, oddly, watching the CPU performance graphs. They can out control panel most adults.

Anyway, the spare computer finally became unbearably slow compared to the primary machine and my laptop. I decided I’d get a decent monitor (20″ Dell Ultrasharp 2009W) with a low-end workstation. I went with an Everex gPC2.

I’ve been running Ubuntu for two years, and the gPC’s gOS is based on Ubuntu so I figured it ought to be easy enough for me to support. But I had to do a bit more work than I thought I should based on that fact that this was aimed at the masses. I mean it used to be sold at Wal-Mart for crying out loud. I guess the ideal target end-user is a single user who connects to the net to do absolutely everything. At first blush, my family fits that description. But they also want to share files on the local network. And they want their own login. And they want a decent file manager. And they want to be able to “switch user” instead of logging out to let someone else log in. These are all done effortlessly on Windows and fairly painlessly on straight Ubuntu. On gOS, these seemingly rudimentary feats require additional installs. For those already familiar with Linux, these are fairly simple. But for families without a command-line lover in the house, it would get very frustrating, very fast.

I pushed through it because I’m the only one that has to deal with installation and config. If my family is happy, and if they can get their “work” done without coming to the “help desk”, I’m happy. And at first, my family was excited about the new box. It started up fast, the UI was pretty (my son loved the Mac-ish iBar), and the browser and OO.o worked like they’d expect. After a few days, though, the bleeding edge nature of some of the gOS components started to turn into annoyances:

  • Segment fault messages on every logout meant an extra close the error dialog.
  • Fairly often, Firefox complained that it was already running. (This usually happened when someone had just logged out and a new user was logging in and starting up Firefox.)
  • There was no easy way to mount and navigate Windows shares in the file manager. (I did see a workaround involving Thunar and Fuse but Fuse seemed to be acting a bit fishy–I wasn’t seeing consistent good behavior there).
  • Reported system freeze-ups. (I never saw any of these first-hand).

After less than a week I finally had enough. What was the gOS buying me? Nothing. Instead, it was costing me time. Today I slapped in the Ubuntu install CD and never looked back.

I still think the $199 I paid for the Everex box was worth it. And judging from the partial success of the gOS experiment, the family is definitely not going to miss Windows. I wonder if there is a group of happy gPC2 users still using gOS out there or if Everex would have done better forgoing some of the eye candy and distributing with a straight Ubuntu install.

Successfully sync’ing a Treo 650 with Gutsy Gibbon

I finally got my Treo 650 to sync with my Gutsy Gibbon laptop. All the ingredients are on this page but there’s a little something for everyone there. You have to pick and choose to get it just right for your setup.

For me, the key steps were:

  1. Edit /etc/modules to add “visor” to the end of the file.
  2. Edit /etc/udev/60-symlinks.rules to comment out the “for Palm Pilots” rule.
  3. Edit /etc/udev/10-custom.rules to add the following:

BUS=="usb", SYSFS{product}=="*[vVisor]*", KERNEL=="ttyUSB[13579]", NAME="pilot", GROUP="dialout", MODE="0660"

As the instructions point out, be careful to use double equals (comparison) in the right places versus single equals (assignment).

Once that was in place, I just had to make sure the devices tab in gpilotd-settings was pointing to /dev/pilot and voila!

Native NVIDIA drivers and wireless working in harmony

The VGA out on my Dell D820 wasn’t working so I downloaded and ran the Nvidia installer for the latest native driver making sure I followed the pre-reqs documented here. That fixed VGA out and made the open gl screensavers work appropriately. What I didn’t realize at the time was that it took out my wireless. That’s because removing the linux-restricted-modules package, as the instructions suggest, uninstalls a wireless dependency. If I had known that (which is pretty clearly documented on the Ubuntu forums) I would have followed the alternative method which is to add “nv” and “nvidia_new” to the DISABLED_MODULES list in /etc/default/linux-restricted-modules-common and then run the Nvidia installer.

The message I was getting when I was trying to start up the wireless interface without the restricted modules package installed was:

SIOCSIFADDR: No such device
eth1: ERROR while getting interface flags: No such device
eth1: ERROR while getting interface flags: No such device
Bind socket to interface: No such device
Failed to bring up eth1.

After running the installer with the DISABLED_MODULES set both Nvidia and wireless are behaving.

Ubuntu saves the day again

While my laptop remains and has always been Ubuntu, my two home machines are Windows XP. On the older box, the one I’ve surrendered to the kids, there’s really no excuse. They really only use the internet at this point and they could easily adapt to the change in interface so its days are numbered.

The newer XPS box has a bit more longevity due to some of the apps we use. I’ve been using Windows Movie Maker a lot, but I’d easily give it up for Kino or Cinelerra. The current sticking point is Media Center. The XPS box is our DVR which we connect to from our XBox 360. I hate to give up that setup (Yes, I know about MythTV).

Anyway, a week ago the XPS box started showing symptoms of the MSBlast worm. It went from bad to worse very quickly and ultimately became totally unusable. It couldn’t even stay up long enough for me to troubleshoot the problem.

At that point it was Ubuntu to the rescue! I booted off the Ubuntu live CD, mounted the Windows partition, rsync’d everyone’s data directories to my LaCie drive, and then used Dell’s built-in Symantec disk restore to put the disk drive in the exact state it was in when the machine was delivered. After copying the data back to the machine I’m up-and-running and no worse for the wear. Thanks, Ubuntu!

Another VPN client for Linux: vpnc

On a recent project my client issued me a SecureID token to use with their Cisco VPN server. The client has many different types of OS’s in house so I was hopeful I’d have no trouble connecting with my Ubuntu laptop. Unfortunately, the Cisco VPN client wouldn’t build. A co-worker pointed me to a Cisco-compatible VPN client called vpnc. Setup was just a matter of translating the PCF file to the vpnc config. It worked flawlessly for the entire project.

I can now safely say that “Linux-at-Work” is no longer just an experiment–for me it’s now a viable, productive workplace OS.

Living in Linux

When I joined Optaros I decided to live in Linux full-time. Previously I had several Linux VMware images I would just start up whenever I needed to work in Linux, but I really wanted to go whole-hog, so when I got my laptop I installed Ubuntu dual-booted with Windows.

It was easier to live in Linux full-time than I thought it would be. The only time I needed to go back to Windows was when I was collaboratively working on documents with Windows users. Although OpenOffice.org can read and write Office documents, and OpenOffice has all of the features I typically use, back-and-forth authoring between the two was painful, particularly when the Microsoft Office authors would use heavy formatting and styles. So, if I couldn’t get the document to look the same across suites, I’d throw up my hands and boot to Windows.

My Ubuntu install had a couple of annoyances. First, no matter what I tried, I could not get wireless to work. Less importantly, I couldn’t successfully recover from a hibernate.

Last week I decided to upgrade Ubuntu to the latest distribution, Dapper Drake. I settled in for what I figured would be a day-long slug-fest. It turned out to be much easier than I had expected–the Update Manager handled everything. The beauty of the upgrade, beyond being up-to-date on security and software patches, is that the upgrade fixed my wireless and hibernate problems.

So, long story short, my “Live in Linux” streak is now three months strong and more productive than ever.

Testdisk saved my Ubuntu bacon

Last week I got my Dell D820 running Windows XP set up to be dual-booted to Ubuntu. I used Ubuntu 5.10 (Breezy Badger) because that’s what I had handy. I was following Mathew J. Miller’s excellent instructions on how to do it.

My only problem came when it was time to install the boot loader. I had forgotten (or chose to ignore) the little partition that Dell puts on their hard drives. That meant that my Linux partition was actually number 2 (the third partition) instead of partition number 1 (the second partition) which is, unfortunately, where I told it to put the boot loader. Partition number 1 is my Windows XP partition–exactly where I did not want the boot loader written to.

And neither did Windows XP. On restart I got the dreaded “Missing operating system” error. “Thanks for the new laptop. Look what I did!”

I had used the Ubuntu Live CD to run QTParted to successfully partition my hard drive so I thought it might be able to get me out of the jam. But after the erroneous boot record write, QTParted didn’t want to have anything to do with that partition. It just threw up its hands.

I booted to the Windows XP Recovery Console and ran fixmbr as well as fixboot but neither of those were effective.

Fortunately, for times like these, there’s testdisk. Testdisk is a wonderful little utility freely-available under the GPL that can recover Windows, Mac, and Linux partitions. I booted into my Ubuntu Live CD, used apt-get to install testdisk (sudo apt-get install testdisk) and fired it up. I then disabled the “bootable” flag on the Linux partition and made my Windows XP partition bootable-primary. When I restarted, Windows XP was alive and well again.

I thought about leaving well enough alone–I was leaving for a client site the next day–but my success bolstered my partition recovery confidence. I formatted the Linux partition and re-did the Ubuntu install paying closer attention to the boot loader step. That time everything went off without a hitch.

I’m still getting used to Ubuntu. It’s a bit different than RHEL but overall I think it’s going to work out.