Wednesday, July 31, 2013

The failed Apple experiment

The setup

I've long admired Apple products from afar. With the switch to OS X (based on Unix) and Intel processors, my interest was further piqued. The stability and security of Linux with a clean UI and consistent UX make Macs a very attractive choice. The problem: price. At two to three times the cost of equivalent PCs, Mac prices simply aren't competitive.

But I began thinking. If Mac hardware really is better (as most Apple fanatics would attest), I could buy a used Mac for about the same price as a new PC, and it should last me nearly as long. Boy, was I wrong.

Warning signs

Being frugal, I thought I'd save as much money as possible by buying a late-model first generation Macbook Pro. I quickly realized this wasn't a good idea when I discovered there was a design flaw that caused the graphics to fail. Apple covered the issue for four years beyond the date of purchase, but most of these were more than four years old by this point.

So I opted for an early-model second generation Macbook Pro instead. It was nearly--but not quite--four years old, but the laptop I was replacing it with was an HP that was over seven years old. So the Macbook was a step up in every way: it was newer, faster, and better quality. If I got seven years out of an HP, sureley I could get five more years out of the Mac. I was abruptly awakened from this dream.

The first few weeks it was incredible. The build quality was astounding, and I immediately fell in love with OS X. It worked flawlessly, and being a Linux fan I loved that BSD was running under the hood and I could do much of my work in the terminal without too many adjustments.

The first straw

One day I powered it on and realized my wifi wasn't working. I clicked on the wifi icon at the top of the screen only to be greeted by:

WiFi: No Hardware Installed
That's odd; I was pretty sure I had wifi hardware the previous day. I tried a few things and it started working again, but the problem came back with more and more frequency. Then the entire laptop would completely freeze. I googled the issue, and finding tens of thousands of results, I combed through them and tried everything in the book. After a while it became apparent it was a hardware flaw. The only resolution I was able to find was to disable the wifi hardware, and buy a USB wifi adapter, which wasn't a good solution considering it only has two USB ports.

The second straw

Not too long after that I turned the Macbook on and it took a very long time to boot, nearly 15 minutes. It showed a progress bar on the screen during this time. I found out this indicates an issue with the hard drive. To make matters worse, I opened the cover to the compartment that houses the battery and the hard drive, and the hard drive was less than two years old, meaning it had already been replaced once. Great--broken wifi and a failing hard drive. My impression of Mac hardware was quickly worsening.

The last straw

As if it couldn't get any worse, I was using the laptop on battery power one day when all of a sudden it turned off. It didn't shut down; it completely lost power. I turned it on again, and the battery still had most of its charge left. I was originally impressed that I was getting 2-3 hours of use out of a nearly four-year-old battery in between charges. But now, the laptop would completely lose power even when the battery had plenty of charge. It could happen at 50% battery capacity, or 90%. The battery still has less than 100 cycles on it (Apple says it should last for 300), but it's now effectively worthless. Yet another apparent hardware flaw. Unfortunately Apple replacement parts are just as overpriced as Apple products; they want $130 for a new battery.

The last resort

The computer was way out of warranty, but I thought if I reached out to Apple they might fix the two issues that were evident hardware design flaws (the wifi and the battery) and not a result of normal wear and tear. First I tried chatting with their support, but they want $20 just to chat with them regarding a computer that's out of warranty. I called; same thing. Finally I took it to an Apple store, where they did a free diagnostic. But after the diagnostic the only thing they offered was to fix it for a price that's higher than the computer's worth.

Lesson learned

So I'm left with a laptop that I can only use if it's plugged in, I only have one available USB port, and the hard drive might be on it's way out. It's evident my Apple experiment was a failure. Oh well. At least I learned my lesson. It's the first and last Apple product I will ever own. I can get a brand new Thinkpad for less than I paid for a used Macbook Pro, and I'll stick with Linux. Dear Apple: let me know when you start selling OS X for PCs. Until then, goodbye.

Thursday, July 25, 2013

Xubuntu vs Lubuntu (Xfce vs LXDE)

While looking around for alternatives to Ubuntu, I stumbled upon two lightweight derivatives of Ubuntu: Xubuntu and Lubuntu. They're both derivatives of Ubuntu, which means they get the same great up-to-date packages, community support, and can benefit from PPAs. Plus they're both lightweight enough to be run on older computers, which is a nice change of pace from regular Ubuntu, whose Unity interface is too bloated to run well on older machines.

Lubuntu is a little more lightweight than Xubuntu, but on closer inspection it's clear that Lubuntu's advantages end there.

Here are some reasons why Xubuntu is the better choice:

  • Xubuntu is more mature; it's been around since 2006, whereas Lubuntu was introduced in 2010.
  • Related to the previous point, Xfce (the desktop environment which Xubuntu is based on) is more mature and has been around much longer than LXDE (which Lubuntu is based on).
  • LXDE is largely developed by one person, whereas Xfce has a large and robust development team.
  • Every two years Ubuntu releases an LTS (Long Term Support) version. Xubuntu follows Ubuntu in providing LTS releases, but Lubuntu doesn't.
  • Xubuntu has an integrated settings manager, but Lubuntu doesn't.
  • Lubuntu is a little too bare bones and requires more work to configure and customise (Sources: 1 2 3)
  • This is mostly a matter of opinion, but Xubuntu/Xfce looks better (and I'm not the only one that thinks so). It also looks more like GNOME 2.
Of course you are free to use whatever desktop environment you like. My goal is just to help you make an informed decision.

Oh, and the screenshot at the top is Xubuntu :)

Monday, July 15, 2013

Running Android Jelly Bean (4.1) on a Galaxy S Advance

The Samsung Galaxy S Advance (I9070) is a nice phone.  It's one of the very few Android phones that has a reasonable screen size (just 4 inches--the same as the iPhone 5) but's also fairly powerful with a dual core processor.  The only problem is that it only has 768 MB of RAM, which should be enough for Android JB (Jelly Bean 4.1), but Samsung's build of JB is pretty poor, and performance suffers.

One solution is to keep the phone on (or downgrade it to) Android Gingerbread (2.3), but who wants to run a 2+ year old OS?  So here's how to have your cake (or Jelly Bean, as it were), and eat it too:

  1. Back up your phone
    This process is going to wipe everything on your phone, so I'd recommend backing up anything you'd like to keep. I won't go into detail on this, but I generally recommend rooting and using Titanium Backup.

  2. Upgrade to Jelly Bean
    The easiest way to do this is through Samsung's own Kies software. If you get a message saying Kies is unable to update the firmware on the device, it can still be done, but will take a little bit of work. I recommend the instructions here: Galaxy S Advance Receives I9070XXLQG Android 4.1.2 Jelly Bean Update [Manually Install]

  3. Clear the cache
    This is something I like to do to ensure a clean install after an upgrade:
    1. Power off the phone
    2. Boot the phone into recovery mode by pressing and holding volume up, home, and power buttons together (you can let go once you see the I9070 screen)
    3. Select wipe data/factory reset
    4. Select wipe cache partition
    5. Select reboot system now

  4. Root the phone
    This has also been thoroughly documented elsewhere, so I won't reinvent the wheel: How to root Galaxy S Advance on I9070XXLQG Android 4.1.2 Jelly Bean [Tutorial]

  5. Install Cocore kernel
    This helps mitigate some of the slowness you'll notice when upgrading to Jelly Bean.  This takes a couple of steps, but overall is pretty easy:
    1. Download the temporary ClockworkMod (CWM) recovery to the SD card from here: [Recovery] CWM [JB Compatible]
    2. Download the latest CWM Cocore kernel from here: CoCore-E-Refresh
    3. Reboot into recovery mode using the steps given above
    4. Select apply update from external storage, browse to the temporary CWM file, and install it. When it's finished it will automatically load the temporary CWM.
    5. From the temporary CWM, select install zip from sdcard, browse to the Cocore kernel, and install it
    6. Select reboot system now to reboot

  6. Disable/uninstall bloatware
    Another reason Samsung's build is so slow is that it comes with tons of junk, which uses up the majority of the phone's RAM. Getting rid of it is a huge help:
    1. From the home screen, go to Menu --> Settings --> Application manager, then swipe right until you get to the All tab
    2. Open each of these apps, and click the Disable button, or you can optionally skip this step and go to the next step and use Titanium Backup to completely uninstall these apps:
      • ChatON, ChocoEUKor, Clock (digital), Clock (funky), Clock (modern), CoolEUKor, Dual Clock (analogue), Dual Clock (digital), Helv Neue S, Memo, Microbes, Mini Diary, My Files, Polaris Viewer 4.1, RoseEUKor, S Note Provider, S Planner, Samsung account, Samsung Apps, Samsung Backup, Samsung Backup Provider, Samsung Browser SyncAdapter, Samsung Calendar SyncAdapter, Samsung Cloud Data Relay, Samsung Contact SyncAdapter, Samsung Push Service, SNS (with the facebook icon), Weather Widget, Weather Widget Main, Yahoo! Finance, Yahoo! News
    3. If you wish to further disable bloatware, install Titanium Backup, and uninstall the following apps (or you can freeze/disable them using Titanium Backup Pro):
      • AllShare Service,, Memo, Mobile print, Music Player, OmaDrmPopup, SamsungAppsUNA2

  7. Install calendar and file manager
    We removed Samsung's crummy calendar and file manager apps, so install Google Calendar and the file manager app of your choice (I like OI File Manager since it's lightweight and open source)
Well, it takes a bit of work, but you should now have a smooth-running Jelly Bean on your Galaxy S Advance.  Enjoy!

Monday, July 8, 2013

An open letter to Android smartphone manufacturers

Dear Android smartphone manufacturers,

Android's got a bad rap, and it's your fault.  You have built some really amazing phones, but you've also built a ton of really crummy ones, and quite frankly, we don't want to buy them.  Your focus is all wrong.  But I have some suggestions:
  1. Battery life
    If we have to charge our phones more than once a day, we're going to be dissatisfied, period.  This doesn't mean it should be able to play HD video for 24 hours, but a modern smartphone should be able to handle moderate use without having to be charged more than once a day.

  2. Stock Android
    When is the last time you heard someone say how much they love HTC Sense (HTC's customized version of Android), or Samsung's TouchWiz?  Don't even get me started on Motorola's Motoblur.  The answer is never.

  3. Smaller screen sizes
    We want phones we can use with one hand.  I think the ideal phone screen size is somewhere between 4 inches (iPhone 5) and 4.3 inches (Galaxy S2).  I have the latter, and it's big enough that I can't reach the opposite top corner of the screen without shifting the phone in my hand.  I definitely wouldn't want anything bigger.  And guess what?  Smaller screens use less battery!  It's win-win.

  4. Fewer models
    Don't build 100 different phones.  The real competition is Apple, which builds just one phone a year.  No need to go that extreme, but make just 2 or 3 models, and don't bother building a "low-end" phone; the profit margins are going to be too low and it will just muddy your brand.  Also, only release new phones once a year.  Releasing a new phone every month only devalues the high-end phone that you just released.  Plus it frees up resources to make sure your phones are stable, and so you can actually push out the latest versions of Android to your customers, which is a huge complaint among Android owners.

  5. No gimmicks
    Why would you dare add some completely unnecessary feature to a phone if we never asked for it, it's going to make the phone cost more, and/or it's going to decrease battery life?  Here are just a few gimmicks we don't care about, off the top of my head:
  6. Durability
    If you want to throw in features, give us a feature that will benefit us, like a phone that's water resistant or isn't going to completely shatter when dropped from a short height.

  7. Less bloatware
    No, I don't want Slacker Radio, UNO, a crippled GPS navigator, or some trial office suite.  I know a lot of this is dictated by the carriers, but I feel like the manufacturers don't try very hard either.
Want to differentiate yourself?  Build a solid phone, with no gimmicks, and stock Android.  That'll be enough differentiation.  If you really want to shake things up, build some cool apps.  S Health, for instance, has been a huge hit with Samsung users.