Sunday, June 30, 2013

My Experiences with iPhone 4. Part 1.

I have been a long-time Android user.  But, for reasons too complex to elaborate right here, I've just decided to take the plunge and give the iPhone 4 a try.  Yeah, it isn't the newest iPhone, but neither is my Android the newest (it's an LG Optimus Slider with the Ginger kernel installed.)

So far, I love the iPhone, but as with most of my past loves, this relationship is complex.

My initial conclusion is that the iPhone is not designed for humans.  This is funny considering "I" sound a lot more personal than a device whose mascot is a robot.  I'll attempt to break down specific areas of comparison here:

Behind-the-Scenes Multitasking and Process Management

iPhone:  There are many elegant and great things about the iPhone and iOS.  Foremost, I am impressed with the speed and stability of the device, and the (hopefully correct) assumption that it will remain just as fast and functional as long as I have it.

Android:  I haven't run the newest Android versions, but Android has long had problems due to the way it manages tasks in memory.  Background tasks getting stuck, eating up CPU, and taking my device to a crawl have plagued me.  I've gone through iterations of different techniques, fixes, and monitors to try to take care of the issue, even multiple firmware versions, but the problem is fundamental.  I should never have to worry about this.  Effective multi-tasking has been a basic task in personal computing for over a decade now.  Android, you are unacceptable in this way.  Whatever goal you were trying to solve by auto-loading tasks in the background has been thwarted by the flaws.

The winner in this section is:  iPhone!


iPhone:  I had very high hopes for the iPhone as a music device.  Apple products have been long known for their media-centric nature.  The phone even came with a set of earbuds as if to say "I dare you not to use me as a music player, too."  Now that I had legitimately bought a piece of Apple tech, I figured I could be part of the club, play that game.  I eagerly prepared to copy my mp3's of my 90's music onto it so I could plug it into my car audio system and hit shuffle.  Lets try USB.  Plugged it in.  A filesystem came up!  Nice.  I don't see a Music folder.  That's weird.  So I made one.  Dropped the mp3 files in.  Unmounted, and investigated.  The phone sees no music.  I do a little Googling on the subject and find out that the only way to add music is through iTunes.  I don't run Windows.  I run Linux.  iTunes and Linux aren't the best of mates.  There are a few iTunes substitutes available, and some of them offer promising iPhone detection and look like they'll work, but apparently Apple broke compatibility in one of the iOS updates and it hasn't been able to be fixed since.  As a last ditch effort, I tried emailing a song to myself.  I can play it from the email, which is better than nothing, but there is no option to save the song or do anything with it except play it.  I am very pissed off about this.  I am a legit Apple product owner, why must I be treated like a criminal?  What arbitrary security does requiring a file to pass through iTunes on Windows or Mac actually provide?  If I had one of those platforms, I could still put my music in from mp3 files, so I just don't get it.

Android:  Drag and drop your music in.  It just works.  This is beyond obvious.

The winner in this section is:  Android


iPhone:  I use my phone for texting more than anything else.  I knew this would be a problem area for me, going into it, but I decided particularly due to the CPU/performance issues that it would be a worthwhile change.   I have two major gripes so far.  1)  My contact's profile icons aren't used as part of the texting user interface.  I miss seeing the faces of my friends as a reminder of who I am talking with at a given moment.   2) There is no reasonable way to input text.  I was told by some people, ridiculously, in my opinion, to use Siri to transcribe the text, but alas, I only have an iPhone not an iPhone 4.  I feel very crippled in my ability to communicate.  It is way faster than it would be if I were a slower typist, but it is a painful process to endure when I know how much simpler it could be.

Android:  By allowing third-party keyboards, Android has become home to Swype.  With Swype, I can text rapidly (i.e., 30wpm) with one thumb, while barely needing to look at the screen (i.e., while walking or carrying something or working on a project or playing a game.)   Without Swype, texting is a two handed ordeal (or a very slow one handed ordeal) that involves a lot of looking at the screen and a lot of correcting typos.

The winner in this section is:  Android

Interface Navigation

iPhone:  I was prepared to be disappointed here.  Of the hard buttons, three of them are devoted to audio. (Vol+, Vol-, and a physical mute switch.)   The remaining two buttons are lock/power and home.  After some experimentation and being shown a few tricks by friends, the home button (the round one below the screen) is actually three buttons in one:
First usage:   A normal press equals "home"... sort of.  From any app, this sends you back to the launcher screen you were last on.  From any secondary launcher screen, pressing it again takes you to the home screen in the launcher.   From the home screen, pressing it again takes you to the search screen.
Second usage:  Double tapping takes you to the task manager.  After this, another double tap returns you to where you were.
Third usage:  A long press invokes Voice Control (Predecessor to Siri?)

While inside Apps, navigation seems mostly acceptable.  The back arrow is usually in the upper left corner of a task.  I am glad that it is strictly hierarchical, and only present when needed.   Some apps break this and instead put a small "Done" button in the upper left which effectively does the same thing while not looking like an arrow.  But Facebook, in particular, breaks this by putting done in the upper-right.  Why right instead of left?  I don't know, but that's probably Facebook's fault more than Apple.

Menus/settings are a much more difficult problem.  There just really doesn't seem to be a standard.  You have to look aroudn in each app for an icon with three horizontal lines, or a gear, or three dots, or nothing at all perhaps.  Going into the "Settings" app gives me Settings areas for a lot of the builtin apps, as well.  I'm not sure if this will expand to include third party apps as I add more or not.  I hope so, otherwise it seems horribly inconsistent.

(Side Note:  I just learned that Home+Power = Screenshot.)

Android:  Android navigation was a great idea... when it was still just an idea.  Four hard buttons:  Home, Menu, Back, and Search.  Search is practically never used, but is approximately equivalent to the long-press "Voice Control" on iPhone.  Home always goes home, as it should.  Menu brings up a menu for the current screen, allowing full screens apps to take up the entire screen real estate while still providing a mechanism to escape into the user interface when needed.  When in a Menu, back closes the menu.   Here's where it starts to fall apart.  Back isn't hierarchical.  It's... a mixture.  When you're in an app popped up from another app, back takes you back to the app that popped you there to begin with.  When you're at the top page in an app, back takes you out of the app to the home screen.  Back stores some sort of a stack of locations, and goes back to the previous one, but at the same time, Apps have some limited ability to manage this stack within their own context and override the behavior.   Because of this, Back often results in an App looking like it's frozen up, or taking you not back but forward because that was "the last place you were" and having to press it repeatedly to get to the real place you want to go.  Android's back button is a messy mess.   I know Android has taken steps to fix this in newer releases of the OS, but I haven't had a chance to review those in action yet.

The winner in this section is:   Neither.

I am tempted to compare the iPhone to my Android as an actual device.  But, that's not fair, because iPhone is both device and operating system, while my particular Android phone is LG's product and and not Google's...   If I were comparing devices, however, the iPhone would win in a lot of areas.

I will write more once I've used the iPhone longer.  This write-up is after almost 24 hours, and I'm sure I will discover some great new things in the next few days.

Sunday, May 12, 2013

Removing Unity Global Menus, Scroll Bars, Dock and returning to GNOME 2-esque Ambiance or Radiance

I'm back from the dead, after a couple years of not posting, and I'm here today to give you my current script to "fix" Ubuntu 12.10 Quantal Quetzal and 13.04 Raring Ringtail.  This script removes Unity's Global Menus, Overlay Scroll Bars, and Dock, and returns to a more GNOME 2-style look while still supporting the Ambiance or Radiance theme.


This is provided AS-IS, without any guarantees of any particular outcome. Please read "what does it do" so you know what you're getting into before you run this:

What does it do?

  • Adds a new session type called "Discord"
  • Replaces Unity's top panel with GNOME Panel 3.  This is not a reversion to GNOME 2's Panel, but the much better version 3 panel which goes mostly unused from what I see. You will notice one major difference from version 2 - you have to hold in Ctrl+Super in order to right click and edit the panel's composition or arrangement.
  • Replaces Unity's left panel with Docky as a bottom panel.
  • Removes Global Menus.
  • Removes Overlay Scrollbars.
  • Steals ALT+F1 and ALT+F2 back from Unity and gives them to the Applications menu and the Run Application dialog box.
  • Installs Pidgin (because why not?)
  • Configures some sane defaults for Compiz.
  • Installs Applet Indicator Complete plugin on the top panel. This gives the Panel the ability to use Ubuntu's sexy Mac-like indicators and clock area and system menu.
  • Please be aware that this script will turn off the Global Menu and Overlay Scrollbars even for your Unity session type.

How to Use FixUnity

  1. Download the script from the link above.
  2. Set execute permissions on the script.
  3. Run it.
  4. After it completes, log out of your session, and before logging back in, choose "Discord" as your session type.
  5. Log in, and wait while the initial login reconfiguration happens.
  6. Enjoy Ubuntu the way it should have been.
Good luck!

Help Me!

If the script completes and you log into the new session type, and the outcome isn't very similar to the screenshot pictures above, let me know what happened and let's figure out how to fix it.  I am open to suggestions on how to improve this.

Recent Changes

0.82 - Renamed session type from "Docky" to "Discord" to more represent what I'm trying to accomplish. (This tool is still useful even if you remove Docky from auto start-up and run Gnome Panel only!)

0.81 - Fixed some Compiz settings that weren't applying properly due to the migration to dconf since I first wrote the script.

0.8 - First public release for Ubuntu 12.10 or 13.04.