Review: Dell Precision M3800 Workstation

m3800I had to upgrade the old hardware again. In recent years, it has gotten harder and harder to find a laptop powerful enough for full-scale development, tough enough to last more than a week under heavy use, yet also remains small enough to quality as ‘portable’.

This time, I opted for a new Dell Precision M3800.

Dell’s reputation is pretty bad, and they deserve that for the most part. Their consumer and fleet systems have been declining in quality for years, tech support is abysmal, and they cut corners everywhere that can save them a buck or two. But the Precision line has always been the exception. They’re well designed, super powerful, highly reliable, tough as nails, and expensive as hell –worth every penny though.

I had a Precision M4500 for three years, and it was by far the best developer workstation I’ve ever owned –and I’ve been using laptops exclusively for the last 15 years.

The new M3800 is Dell’s first attempt at an ultra-portable precision. It can’t be easy to shave off enough to squeeze it into an ultra portable form-factor, but still maintain the performance and build quality people expect from the Precision brand.

I’m happy to report that Dell has pulled it off spectacularly with the M3800!

For the most part, this thing packs the same high-end hardware its bigger cousins have; Core i7 CPU, 16GB RAM, SSD, workstation class graphics card, and a beautiful QHD+ (3800 x 1800) 15.6″ touch-screen display .

Despite all that, it manages to be razor thin –0.71 inches at it’s thickest point. Though it still weights around 5 pounds with the bigger battery, it doesn’t feel heavy at all. With a 15.6″ screen, the weight is evenly distributed over a very wide area.

To get it this small there were a few cuts. It has an mSATA card slot plus one 2.5″ internal drive-bay, but the drive bay space is taken up by the extended battery when you opt for the 91 watt hour model –and you DO want the 91Wh battery. That leaves you with just the one mSATA slot for storage.

Also missing are a dedicated docking port, ethernet port, finger print scanner, card reader, and an optical media bay. I miss the fingerprint scanner more than I expected I would, but overall the cuts are not too painful. It comes with a USB ethernet adapter, and you can buy any kind of display adapter to plug into the mini-D port.

Good keyboards have become quite rare over the last few years. For some reason, designers seem convinced that people don’t need arrow keys, function keys, or home, end, pgup, and pgdn keys. These designers are assholes. Sure, home users might not care too much, but IT, business, and graphics professionals use these often.

precisionkeyboardWhile the M3800 keyboard is still one of the better options for developers, it is also the source of my main complaint about the system. The keys are a bit mushy, and I’ve found that the left shift, fn and Ctrl keys don’t always register when I’m working quickly.

Dell also moved pgup, pgdn, home, and end to share the arrow keys as fn combinations. It’s less awkward than some keyboards (I’m talking to you Lenovo!), but the fact that the fn key doesn’t always register makes it unreliable and annoying.

Considering how much empty space there is around the keyboard, you’d think we could at least get dedicated keys for this stuff. At least the arrow keys are offset, even though they are half-height.

The only other complaint I have is that the screen has a somewhat glossy coating, meaning you get glare in many lighting conditions. I really prefer the matte displays Precisions have been known for in the past, but I presume the glossy coating is necessary for the touch screen features –still, I’d prefer an option for a matte display even if it meant giving up the touchscreen.

Otherwise though, this machine is making me very happy. The display is truly amazing, just as you’d expect from a Precision. It is also freakishly fast. On paper, the specs for this system aren’t much different from my last machine –an HP Envy TouchSmart 15t with after-market SSD. In reality though, this system murders the HP, and it even outpaces the beastly Lenovo M540 workstations we have at the office.

Battery life is around 5 hours under normal development workloads (with WiFi turned on). Even though the system has a 130watt power supply, Dell was kind enough to reduce the size of the power-brick quite a lot compared to the previous generation boat-anchors.

If you plan to buy one of these, here’s a pro-tip: Dell charges almost $800 for their 512GB mSATA SSD module. I recommend buying the system with the tiny 128GB mSATA card instead, then just pickup an after-market 512GB mSATA. Crucial sells their excellent M550 mSATA modules for under $300, so you’ll save $500, and still get a far better drive than the Dell offering.

Keep in mind though, you will need both a T5 Mini-Torex, and a #1 Phillips screwdriver to open the case. Make sure you get a good driver that has a real handle. These screws are tiny, and fragile, and you do NOT want to strip one of them by accident. I highly recommend the Sears Craftsman mini-Torex kit for this kind of work. – Leaving Google Apps and DreamHost for Azure and Office 365

siteI’ve owned a long time. Back in the 90’s I hosted in my own basement data-center™.com, but eventually the costs became problematic. So, I switched to 3rd party hosting providers. Since then, I’ve bounced from provider to provider, never being satisfied with any of them.

My needs are simple. I have a custom domain, a little personal blog, and a few email accounts. I don’t want to spend a ton of cash on the services, nor much time on administrative tasks. At the same time though, this is the heart of my personal online identity. It needs to perform reliably.

A few years ago, after yet another of my hosting providers decayed into oblivion, I decided split my web and email hosting to different providers.

Email is the most painful service to move, so I decided to move it to Google apps. Google let non-corporate organizations, like me, host at Google Apps for free. They are a stable company, and handle email exceptionally well. So, I figured using Google might eliminate my biennial email migration hell.

For the web site, I chose DreamHost, one of the “premier” WordPress partners. Sadly, DreamHost just plain sucks. Their server performance is abysmal, and the network latency makes me wonder which African country hosts their data center –and if it’s powered by hamsters, or a dung-burning furnace. On the plus side, it is reasonably cheap. My blog isn’t exactly popular, so I could live with the sub-optimal service for a while.

In the years since that move, I’ve grown increasingly frustrated with Google. They killed off “free” Google Apps hosting. I’m grandfathered into the plan, but as new services roll out or old ones get upgraded, us free-loaders are last to see an update –if we get updated at all.

Clearly, they want us to buy into a business tier plan. I don’t mind paying for my services, as long as the services are worth it, but Google has given me serious doubts about the value of their services going forward.

Their war against Microsoft has put customers, like me, in the cross-fire. They killed active sync for gMail while sabotaging key APIs across their other services. They refuse to write native apps for Windows 8 or Phone 8 at all –which wouldn’t be bad if they didn’t also interfere with 3rd party apps that try to bring Google’s services to Microsoft’s platforms.

As a Microsoft developer, and Windows and Windows Phone user, Google’s services –especially the Google Apps services– are nearly useless outside a web browser.

The value of using modern web based software services is the ability for it to become an integral part of the entire computing experience –across all platforms, devices and applications. Google seems to disagree.

I’m not claiming Microsoft is an innocent victim here. Microsoft’s legal extortion of licensing revenue from android was a real dick move, for example. But Microsoft doesn’t put its customers on the front-line. Microsoft encourages apps for Apple and Google products, often writing their own native applications when necessary. They certainly never obstruct my ability to use one of their services just because they don’t like the device I chose. They don’t play games with their APIs to sabotage their products on other platforms.

So, it got to the point where I only had two good options. Pay for a subscription to Google apps, or pay for Office 365. My primary concern is making sure I have email services for my domain. The rest of Google Apps or Office 365 are just nice-to-have extras.

Aside from my reservations about Google’s commitment to open, cross-platform integration, what tipped the scales firmly towards a move to Office 365 was Microsoft Azure. Azure is the cloud services platform backing Office 365, in the same way that Google App Engine backs Google Apps.

A move to Office 365 implicitly sets up my domain in Azure, which gives me the opportunity to reunify my web and email services under one provider again. Better still, Azure is a platform that I understand and work with professionally on a regular basis.

I could have hosted my website on Google Apps Engine too, but honestly it isn’t a platform I understand well, and the setup for WordPress there is not painless. On Azure, you just pick WordPress from the web site gallery and it’s done –stupid easy.

Unlike my past hosting providers, Azure’s prices scale very smoothly based on usage. Hosting a simple WordPress site, like mine, costs about $14/month. This is slightly more than a traditional 3rd party WordPress provider, but it performs significantly better too.

And the best part is that, as a subscriber to the Microsoft Developer Network (MSDN), I get $100 a  month of credit to spend on Azure resources. This doesn’t count towards Office 365 licenses, but it effectively makes the web hosting free, and leaves plenty of credit for other projects.

On my old setup, Google was free, while DreamHost ran about $100 a year… and I was unhappy with both. After the switch, Azure is free, while Office 365 runs $120/year (because I need two licenses at $60/ea).

Bottom line — for an extra $20 a year, I get access to high-performance personal web hosting on a platform I know and trust, first-class email, and I regain the seamless service integration across my desktop and phone devices.


College at 40

I’ve just wrapped up my first semester at college, so I thought I’d write a bit about the experience so far.

I decided to go for that Computer Science degree I should have gotten in my 20s. I’m 39 now, and have spent 18 years in the IT field — 11 as a professional software developer. Strictly speaking, I don’t need a degree. I’m comfortably employed, well paid, and still enjoy slinging code for a living. But, I’m getting old. Should I need to seek new employment, I’d be going up against people half my age with twice my credentials. Experience matters, but programming is still seen as a young person’s field. Most companies look for people with a “BS in Computer Science, or equivalent degree”, but HR usually doesn’t know what “equivalent” looks like. They have dozens of other applicants who do have the expected degree, so my resume goes to the bottom of the pile. Also, I will not be able to sling code at this pace forever. I’ve often considered teaching as a way to wrap up my career, but for that I’ll need degrees.

So, now I’m a freshman at University of South Carolina’s Upstate campus. I could have gone with an online school, but after years of solo career building and self-study, I really wanted to experience real teachers and living, breathing classmates for a change. USC Upstate is a nice hybrid between a tech/community college and a traditional university. It is a small school, but focuses on real 4 year degrees. There is a sizable population of students living on-campus, but also plenty of commuter and non-traditional students too — though not as many my own age as I’d expected.

The CS program at USC Upstate is very small, so most of the core classes are only offered during the day. I’m very lucky that my job affords a flexible schedule, and that my employer encourages continuing education. I couldn’t attend daytime classes otherwise.

As a late applicant, I ended up with a horrible schedule — five classes, five days a week. The first challenge was finding time to fit in 40+ hours at work on top of a full-time course load. I’m used to 75+ hour work weeks, but still, the combined workload turned out to be too much. I ended up switching my hardest class to an audit, but even at 12 credit hours, I was worn to the bone by the end of the semester. Going forward I’ve had to reduce my course load to part-time (3 classes), and restricted attendance to just three days a week. At his slower pace, I’ll need more than five years to complete the degree, but I’m not in a rush.

Many people going back to school at my age complain that it’s hard for them to keep up with the pace of learning. Learning does become a bit harder as people age, but I have not had as much trouble with this as I thought I would. The nature of my job, and years of self-education, have kept my mind pretty sharp.

The main area where I feel my age is with mathematics. As a programmer, I work “with” math a lot, but it has been a very long time since I’ve worked problems by hand. I usually get the right answers, but I’m really slow at it. I would not have passed my trig class, so I switched it to an audit when it became necessary to free up more time for work. Computer Science is a math heavy curriculum though, so I’ll need a refresher in basic algebra before I can tackle the advanced math classes for real.

In other classes, my age helps some. In particular, my English skills have improved over the years. I’ve written quite a lot professionally, and I type like a fiend. In contrast, the majority of my peers are fresh out of high school, which has apparently fallen way behind the writing standards of my day. My younger peers can do amazing things with math, and their reading comprehension is good, but they turn out papers that would have caused my 9th grade English teacher to commit suicide.

The bar for English 101 was so low that the class was outright painful. As it turns out, English 101 and 102 are just glorified writing workshops. The professor spends a lot of one-on-one time with each student, tutoring and advising them as needed. I respect what the school is doing, but it’s sad that high schools are producing such poorly trained writers that two entire courses have to be wasted on writing workshops. This was hugely disappointing to me. I’d once considered an English major. Even though I chose a different path, I was still looking forward to a refresher on contemporary grammar, and maybe picking up some new writing styles and techniques. I’m not the best writer in the world, but my current skills are so far ahead of the expectations that the classes offer nothing of value to me. I’ve attempting to test out of English 102 just to avoid another class of empty paper writing.

As for my core comp-sci classes, I don’t expect to get that much out of the undergraduate curriculum. I’ll learn a bit of Java, which I managed to avoid professionally, but Java isn’t fundamentally different from C# where I already have deep expertise. I plan to take the C++ course, just to have an excuse to actually do something with the language. Overall, I’ll have to wait until grad school before I really get deep into areas of comp-sci where my self-education was lacking.

This semester, I took Introduction to Computer Science. I don’t perform well when under-challenged, but I managed to stay engaged and interested for most of the course. The bulk of the class was spent programming with Alice, a GUI based development environment designed to teach the fundamental concepts of programming, without tripping students up with text editors and syntax issues. Basically, Alice is the new Logo. I enjoyed messing around with it, but was disappointed to find that Alice isn’t open source. I was unable to contribute fixes for several bugs I’d found, nor could I examine the source code to see how functions and features were really implemented. For me, the hardest part of the whole course was answering test questions based only on material presented in the textbooks, which often do not conform to reality, nor my own considerable personal experience.

On the social front, things have been better than I’d expected. I’m twice the age of most of my peers, and there have probably never been two generations of Americans with such radical differences in their upbringing. I am from the last generation born before the public internet and cell phones. Most of my peers were born after the net went public, and had cellphones in grade-school. I’m also from the under-parented, Beavis and Butthead generation, while my peers were helicopter parented and some still can’t  take a shit without parental guidance. I plan to write a separate post on this topic later, but it has been interesting to interact closely with this particular age group. Overall though, my younger peers are not so different from my own age group, despite the significant social changes of the last 20 years.

While I am old, I don’t quite look my age — though I am starting to show signs of rot at the edges. People tend to see what they expect to see though, so most students assume I’m younger than I really am. I’m still much older in their eyes, but not quite uncle-creepy old.

I’ve never been good at fitting in, but I’ve been pleasantly surprised that the age gap hasn’t been much of an issue. On days when I’m dressed in business-casual for work, I am sometimes mistaken for a professor, occasionally even by other professors. The most significant difference is that instructors tend to treat me with a little more respect, and take my opinions more seriously. Of course, they also expect a little more from me sometimes, but it’s a fair trade-off.

Juggling work and school can be exhausting at times, but so far I’m enjoying being a student, learning new things, and meeting new people. I’ve managed a 4.0 GPA this semester, which is a nice way to start things off.

Reddnet now running wordpress

As you can see, I’ve moved over to wordpress. Tumblr was pretty neat, but they have really been slow to evolve the platform. Also, I tend towards longer posts and posts with code samples where wordpress just does a better job. I’d considered going back to, but I’ve had so many bad experiences and frustrations with the platform in the past that I’m just not interested in going through it again.

I’m hosting with dreamhost, on a trial basis, for now. I’ll post a review of them after I have a few more days to play around with it.

I still have a lot of cleanup to do on the older posts, but I’ll get that finished up over the next few days. Then, maybe, I’ll get back to doing some real blogging.

The Dangers of a Windows 8 App Market

I’ve been reluctant to write about Windows 8 since the Developer Preview at the Windows Build event. I was NOT impressed by the preview, but I’m waiting to see an actual beta release before I get too invested in a well thought out opinion on Windows 8 itself.

But one aspect of the strategy around Windows 8 really does bother me -the Windows App Market.

With the phone and X-Box, Microsoft has followed Apple’s app store model far too closely for my tastes, and from what we’ve heard from official sources so far, it seems that the Windows 8 App Market will continue that pattern. The current intent is that all metro style apps will be distributed ONLY though the official Microsoft app market. It will be policed, not just for technical issues, but for content and functionality. Basically, if Microsoft doesn’t like what the app does, how it does it, or the content they will refuse to distribute it.  

Think about that for a moment.

They’ve already established an “objectionable content” (no-porn) policy. So imagine it is 1998, and apps are coming from an app store like what microsoft is proposing. Would Duke Nukem have been approved? What about Grand Theft Auto a few years later? What about a Hustler subscription app? What about an app that displays the naked human body for use by human anatomy students. What about apps dealing with human reproductive biology? And that’s just the censorship arguments.

What about apps that compete with Microsoft’s own?

How long before my ISP, or the MPAA, starts paying Microsoft to reject or pull BitTorrent clients?

Even the pro-security arguments in favor of policed app markets are problematic. What about apps that have new capabilities no one’s seen yet? Imagine an app market back in 1993. Now consider the Trumpet Winsock TCP/IP suite, which allowed windows 3.1 to talk to that brand new internet thing. Would that kind of insecure network stack have been an approved app for distribution in a Microsoft policed app store?  

And how long before governments start passing laws policing those same centralized app stores too? 

I understand the arguments for better quality control, policing against malicious apps, easier app discovery, etc. I don’t have a problem with the default setup preventing most consumers from installing apps from 3rd party sources. But there needs to be a way for people to unlock their devices and use 3rd party markets if they choose (without paying Microsoft, without being a developer, and without having to register with Microsoft to unlock the device).    

Currently Microsoft is playing these concerns off by pointing out that these restrictions only apply to the new metro-style apps. You can still load and distribute traditional desktop apps without going through the store. That’s a bullshit argument though. It limits the free-exchanges for apps to “legacy” technologies, which Microsoft’s incentive will be to eliminate one-by-one over the next several years. If they are successful with a Microsoft exclusive, locked-down market for Metro-Apps, it’s almost inevitable that future versions of windows will do the same to traditional apps too.      

I’m all for there being a nice safe, secure, and policed Microsoft app market. But having that as the ONLY option is probably the scariest proposal Microsoft has ever made.    

Review: Kindle Fire

I picked up a kindle fire as a christmas gift for my daughter. After setting it up and playing around with it (you know, to make sure it works), I thought I’d drop a mini-review.

The Verdict: 

If you want to read books, then just get the Kindle touch instead. It has the E Ink display, a good-enough touch interface, way better battery life, is thinner and lighter, and is only 1/2 the price —but most importantly, it wont piss you off with all the things it should be able to do but doesn’t.

If you want a multi-function entertainment device, then buy a real tablet. It’ll cost a lot more than a Kindle Fire, but you’ll be much happier.

The biggest problem with the Fire is that it actually does “feel” like a tablet… but since it isn’t, you’ll find yourself frustrated by the things it can’t do, rather than enjoying the few things it does do well.

A Bit of Detail:

  • Storage: the limit of 8GB is a problem on a device doing music and movies. It doesn’t have any way to attach external storage either. You’d think that “the cloud” would solve this problem, but it only does so if you don’t stray outside of WiFi coverage areas often.
  • Performance: it doesn’t perform bad at all compared to other Kindles, but it isn’t quite smooth like a real tablet, or even most smartphones. It is sluggish all around. Opening a text file can take 3 to 5 seconds, browsing the web feels more like 3G than WiFi, and it often takes longer than expected to bring up menus and such. I suspect that having only 512MB of memory is a huge part of the problem, and the rest I blame on the OS being a custom fork of an older version of Android. With luck, future OS updates might smooth out some of these issues a little.
  • Apps: The amazon store isn’t too bad, but keep in mind that this thing doesn’t have GPS, compass, camera, microphone, or external storage. A lot of apps and games rely on one or more of those things, so they aren’t viable on the Fire at all. Also, there is no traditional “homescreen”, so you don’t get widgets, gadgets, or smart-tile like features.
  • Bugs & Oversights: This is likely to improve over the next few months, but the initial software does have a LOT of annoyances and bugs. The UI occasionally locks up for a long period of time (minutes even). It frequently doesn’t respond to taps or gestures, or takes a long time to respond. Documents and pictures don’t sync with the Amazon Cloud Drive (which is inexplicably stupid). The Carousel on the home screen is super-annoying; it just shows EVERYTHING you’ve interacted with recently… which will be really embarrassing when you go to show off your new toy, and the top item on the carousel happens to be

Overall, the Kindle is very good at being an Amazon Digital Content delivery device, but it falls WAY short of being a full tablet. Unless you just have a burning need for portable video in addition to books, I’d recommend you get the Kindle Touch and invest what you saved into a new smartphone; or put it towards a real tablet next year.


Data Liberation, the Killer Feature of Google+

Google+ could kick facebook in the teeth, but one of the key reasons it has a chance is the presence of a feature set that very few people are likely to ever use —Data Liberation.  

Google has an entire team of engineers, called the Data Liberation Front, whose job is to protect users by making sure that Google’s products all provide export functionality. Their web site provides information on which of Google products have been liberated so far, as well as information on how to use those export features. 

In the Google+ settings menu, under the heading ‘Data Liberation’, you will find a unified export tool. This appears to be a variation on a new tool from the Data Liberation Team called Google Takeout (this link is for the non-Google+ specific version). The tool allows you to export all of your data from a variety of Google’s services all at once. Currently, only the major social products related to Google+ are included, but they plan to add other services to the takeout utility over time.    

Even though few people will export their Google+ data, the fact that an export feature exists at all has significant appeal. Google isn’t free of privacy, security and customer abuse concerns, but high-visibility features like this go a long way towards reassuring people.

In Google+, data liberation features pair well with an excellent set of privacy and security features. While the UI and functionality of Google+ are critically important, it’s the less visible details like data liberation that will decide if users are comfortable enough to even consider a switch from other social services.   

The Impact of Windows 8

The Impact of Windows 8

This is a really good early developer analysis of Windows 8. The most interesting point made though is one I’d not considered before; the fact that windows is no longer restricted by the terms of the anti-trust settlement.

Still though, Windows 8 had better be more than just be incrementally better if they plan to hold on to their user base, especially considering the insanely long development cycle.

Droid X – The Moto-Bungled Gingerbread Update

I’ve had the official Droid X Gingerbread 2.3 update for a couple of weeks now… and I can say with full confidence that it sucks complete ass!

The new software should be faster, slicker, have more features, and be more stable. For every other Android device by any other manufacturer this is true, but not for the Motorola Droid X.

The UI lags, sometimes locking up for as long as an entire minute. Pretty much all animations are jiggy to the point of being more disorienting than fun. The stock keyboard lags even worse than it did in the last software versions (which seriously, is a problem that will drive you insane after a few days); and 3rd party keyboard apps suffer the same fate on the X too. And to top it off, about twice a day it will randomly hard-crash and reboot itself for no apparent reason, sometimes when I’m doing something, sometimes not.

I’d just replaced my Droid X (the old one had a faulty speaker) before the update too, so I don’t have a lot of my apps installed yet, and certainly nothing major like alternate launchers or anything.

Motorola makes good hardware, but their software is so bad it ruins the whole experience; and their competence clearly does NOT improve over time. I miss my HTC Incredible.