It's done!  I now finally have ubuntu on my  MacBook Pro(4,1)!  The initial partitioning of my drives (in order to keep my bootcamp'd windows and os x) was made out to be a lot harder than it actually was.  I wasn't quite sure what to do due to the fact that OS X seems very finicky about knowing what is booting from where; and any changes may affect it's need/desire to keep jounaling all drives it knows about.  At any rate, I found an awesome article detailing out all the specifics, as well as how to work around the swap space issue (which i still have yet to tackle!).  With that said, under an hour I think the only thing I don't have working that I'd like, but by no means need, is the keyboard backlight controls and the microphone.

Here's list of things that worked out of the box that I thought wouldn't:

  1. Multitouch Scrolling
  2. Multitouch Clicking (for the right click)
  3. Volume Keys
  4. Restricted Drivers
  5. 90% of the function keys in general (with some help)

So there you have it!  As I figure out more stuff that's wrong, or things to configure, I'm sure i'll be posting more.

If you don't know, Ubuntu 8.10 dropped today. As promised I will be attempting to install it this evening. I say "attempting" because you never know what might go wrong. Anyways, I came across an awesome program called rEFI that enables you to actually control and partition your mac hard drive without being forced into only 2 paritions (OS X and Bootcamp). So this way I can still keep my windows partition for the occasional game and create another partition for Ubuntu. Great! The program installs like any other program under OS X and only took about 5 minutes to get working (4:30 was how long it took for my mac to reboot). Anyways, there are some pics below, and expect an update within the next day or so. Or even possibly tonight!

c6da6a3da8404949b1180ceeace91027.jpeg - Share on Ovi ed39c578d12145f6a7b3b5c846e190e2.jpeg - Share on Ovi

If you can't tell... I'm really excited about throwing ubuntu on here, and my Mac must be too... since it keeps hinting that it wants to be fixed (image below). I even plan on ordering some [3D] stickers and a physical copy of the OS!

So this morning I woke up and decided to check my email. Oh look, there's a few messages I would like to move to another folder! Apparently Mac Mail decided to make this difficult for me, oh well at least it just works.

Note: Not only is the drop target range very slim, but the folder it's dropping into is 2-3 folders down! Awesome. This is also shot with my new phone (which i still have yet to write about), so the quality/movement isn't great. However, I do have to say that the uploading and sharing on ovi is pretty amazing. Straight from my phone to the blog in less than a minute. Now that's Awesome. Only 9 more days.

I know I've talked a lot of talk to those who are constantly around myself and my Mac, so I'm finally going to do something about it.  In 15 days I'm vowing to take the pluge and attempt to toss ubuntu on my bootcamp partition.  Lets hope it works

So as some people may know, I used to own a Motorola e815 as my cell phone. Easily the best phone I've ever had - not because of the features, but because of how much of how hackable the phone was. Basically any services that Verizon disabled, you could re-enable by modifying the firmware. Awesome! I knew eventually there would be a time when I would finally upgrade, and due to a hardware error (sadly the phone would no longer recharge) I was forced to make the switch a bit prematurely.

iPhones are no fun

The Choices

Today there's obviously the iPhone choice. As awesome of a piece of hardware the phone is, and as great of an interface it has; I've just never been that impressed. For starters... Why would you require that you hook up your phone to a media player in order to perform updates?! I haven't been a fan of how the iPod requires that you sync data with your computer, so why would I buy a phone that synce more than your music using the same interface.  Not to mention all of the minor inconveniences and troubles I've had with Apple/Macs/OS X in general.

Then there's the Windows Mobile phones, with the more recently anticipated HTC Touch Diamond. Initially I was strongly looking into getting this. The UI was great, it wasn't an iPhone, it seemed to have a decent amount of features. However, there was one problem once I was researching it: it runs Windows Mobile. Granted, I don't have a ton of experience using Windows Mobile devices, but every single review I read at least alluded to the sluggishness of the OS. So that was out as well.

Finally I was directed by Joe to check out some Symbian devices. As of June 2008, the Symbian Foundation's main goal was to "provide royalty-free software and accelerate innovation"; exactly what I'm looking for! To elaborate on "accelrating innovation"; much like Google's Andriod, Nokia is currently purchasing up all the shares of the Symbian Foundation in an effort to completely open source the OS. Even more awesome! In my opinion all of this is great for multiple reasons:

  1. I can develop applications for my phone!
  2. Other people can develop applications for my phone!
  3. Symbian has been around for a while, it's a stable and well known OS with tons of features
  4. Symbian is deployed on over 50% of mobile phones/devices worldwide
  5. The more users, the more support there is and the more innovation there will be

Most of the more feature filled Symbian phones need to be purchased unlocked; they're notably more expensive than getting a phone through a domestic provider. Being that they're a little pricey I thought I would try to stick to the mid-range prices, and if I liked it, I could go all out and get a more expensive one a few years down the road. After being very pleased with my n800 purchase, I decided to stick with Nokia. Resolving to stick to all the above criteria, I was eventually led to choose the Nokia N78. I've only had it for a week or so, but stay tuned for a review!

PS: I also moved into a new apartment!

So in my previous post I've outlined some of the better features that go along with converting over to OS X; specifically on a MacBook Pro.  As opposed to making one giant post I've decided to split it up into 3 posts, the good, the bad, and the ugly.  Whether or not I will actually make it to the ugly part, or decide how to separate the "ugly" from the "bad", still has yet to be determined.  Some of these are really nit-picky things and others are somewhat legit problems, take them as you will... but here goes!

The Keyboard (and TouchPad)

As I'm sure everyone knows, any Mac keyboard/mouse hardware is somewhat unique. The main features of the the keyboard and touchpad combo on the MacBook Pro are as follows:

  • Inclusion of a "command" (aka Apple) button
  • Inclusion of specific function buttons (volume, screen, keyboard brightness, etc. controls)
  • Absence of Home, End, Insert, PgUp, PgDown keys
  • Absence of a "right-click" button on the touchpad
  • "MultiTouch" functionality on the touchpad

So at first glance these may not seem like potentially bad things. In fact! Some may even seem good!. I mean who wouldn't prefer a multitouch touchpad or the inclusion of an extra-awesome command button? But my main problem with these is how the absence and inclusions of these features interact with the actual OS that they're intended to run on; OS X.

First off, the command button has been notorious ever since the Mac's came out. It essentially replaced CTRL for any keyboard shortcuts. Now any time I do any normal operation such as cut, paste, copy, select all; I now have to say to myself "oh, that's right command plus whatever key I was going to hit. It's really a minimal problem but when you're switching between windows and OS X, it makes life that much more annoying.

Secondly! Where are my home/end/pgup/pgdown keys!? I realize function up, down, left and right basically accomplish the same things in most mac supported programs, but there's definitely a handful that I use on a daily basis that this can get annoying with. For instance, any time I've ever used a terminal, pgup and pgdown have always scrolled the terminal buffer. For some reason messing with my terminal settings I can still only get my mac to scroll the actual terminal scrollbar, and not the buffer*. How lame is that!

Lastly, I'm just gonna throw these all into one list quick...

  1. F<key>'s should be F<key>'s by default. Not a "dashboard" or "next track" key by default. I need my F<keys>!
  2. Right click - seriously... no button? Yeah, ctrl click is a right click; but what about in my windows VM!? Now it's that much more painful to multiple select options in a box. What's even better is using the "two-fingered"** approach to emulate a right click in bootcamp. Not a fan.
  3. Multitouch - as cool as it is, occassionally this can get in the way as you're accidentally moving fingers around the pad or possibly pressing too hard. It's not too uncommon for me to have an accidental scroll here and there. The scrolling in bootcamp, although it works, is quite touch sensitive by default. I haven't looked into toning that down yet.

BootCamp

I assume if you're reading this you already know what BootCamp is, but for those not in the know; BootCamp allows you to partition your hard drive into a windows section and an OS X section. Allowing you to choose which one you boot when you start up your computer, thus BootCamp - clever. I will say that the drivers for the mac (they come on your OS X CD) for windows are fairly trivial to install, and work fairly well without messing around with stuff. Now you might be saying "You've got this great OS X action going on, why would you ever want to run windows!? Three words - Sam and Max. If I haven't already told you how great that game/series is, I'll have to do it another time. The main point being, nothing I threw in any of my VM's (Parallells, VMWare Fusion, VirtualBox) could keep up with running S&M without a) crashing or b) going too slow to play. So my answer to that was BootCamp.

Now once inside windows everything runs great, the hardware on mac is pretty good and can definitely keep up with most modern games. The problem? HEAT. Like most college laptop users I enjoy using my laptop, specifically; on my lap. I don't know how OS X can tame the wild hardware that this thing has inside of it, but I can only take about 15-20 mins of lap time when playing S&M on my lap. Even running completely idle the computer is fairly uncomfortable to have sitting around, thus making the portability value for your average mac->windows user somewhat absent.

This brings up another point. Apparently it is completely logical to have your MacBook overheat if you shut the lid. The first time I took my laptop into a meeting; I shut it, brought it over to the room, and opened it up only to find that all of my connections have been severed. Apparently by default your MacBook goes into sleep mode when you shut it... huh... I asked a few of the guys in the office about this and they said it was the preferred behavior simply because the MacBook Pro will get somewhat hot if you leave it on and the lid shut. I was somewhat floored at this statement but when in windows/bootcamp I can definitely see how hot my laptop and get, so for now I've just had to accept the fact that whoever designed this device didn't design it to leave it running fully on with a closed lid.

Development

I can't comment on this too much, as I haven't done too much development on the laptop itself (typically I just SSH into the development server and hack away), but I have experienced at least one problem. After a while I discovered MacPorts, an awesome program to install software/code just like apt-get on your favorite debian (or derivative) distribution! Awesome!. At the time I was trying to install xChat so I could hit up the latest #dojo-meeting. Anyways, upon trying to install it I had an error somewhat to the effect of gcc not found. Wha?! On a BSD system there's no gcc!? So thinking like apt-get I figured there was some sort of "apt-get install build-essential". Nope, nothing like that. Turns out you have to install Xcode, a development environment that comes on your OS X cd, in order to get gcc on your system (without compiling from source at least). Not having my CD around, I attempted to download from the site. Stopped again! Now apparently I have to sign up to be an Apple developer just to get to the download links! I'm sure I'm making a bigger deal out of this than it actually is, but at the time this was just simply annoying.

OS X Apps - iTunes, Mail and Spaces

The most of my grievances with OS X simply come from the apps and environment itself. I should probably preface this by saying I've never owned an iPod, iPhone or any other i<device> (except for an iHP-120/140, but I love iRiver!), so maybe I just don't "get" how these apps should work. Personally, I think iTunes seems like a monstorous program for just audio playback. Although over time it has evolved into an all-in-one media center supporting video, RSS and even online shopping; where is my standard standalone mp3 player? The days of Winamp and XMMS are all I'm really looking for when I listen to music, something small, lightweight and that I can just dump whatever plugins I want into. There may be some "iTunes lite" that I'm missing out on, and if someone knows where something like that is I would very much like to hear about it!

But this isn't even the worst part. So iTunes manages all of your media, awesome. There are um-teen hardware and software applications that interface with your iTunes library, great! Now what happens when iTunes destroys it's own library...? For some unknown reason my iTunes apparently loves to upgrade it's library to the newest version of iTunes, yet not upgrade itself so it can read that library; how? I have no idea. The error message is something to the effect: "The iTunes Library cannot be read because it was created by a newer version of iTunes".

The resolution for this, delete your iTunes library file, and re-import all of your 'tunes from the actual iTunes directory. This error has to be common enough to where you think you could probably write that recovery functionality within iTunes itself right? Or maybe I really am the lone person that ever receives this error because I don't know how my mac "just works". At any rate, this is very annoying and happens probably 2-3 times a week.

Mail I don't have as much

Now for my favorite part... spaces!. Ever since I've gotten into using x11 window managers "workspaces" have always been a favorite thing of mine. Split it into 4 spaces, use one for web, one for development, one for music/media and another for misc. When I saw that OS X supported this I have to admit I was pretty excited. Another thing I really like to do while developing is not use the mouse. Switching from space to space, application to application, even moving applications to spaces is as easy as 2-3 keystrokes in most x11 WM's. So let's try out spaces...

  • Space to Space - check!
  • App to App
  • - check!

  • App to Space - FAIL!

Arg! So now if I want to move some media quickly into one space, or move my development into a web space; I can't! Well, that's not entirely true. Apparently you can hit F8, a dedicated key to space zooming out; click and grab an app then manually move it to a different space. Based on my keyboard complaints above do you see a problem? I now have to hit Function + Play/Pause (F8!) to get this to go. Once again I'm sure I can configure this but seriously, I would be configuring 75% of OS X's functionality by this point. So what now? Maybe we can do it with just the keyboard! Erm... no, we can't. Apparently someone thought it would be a great idea - that if you wanted to move an app from one space to another, you would click the title bar of the desired app, hold down the mouse button and then finally use the keyboard command to switch to another space. How completely ridiculous is that!?

Conclusions?

All in all the laptop isn't a horrible device. There are just enough inconveniences to make me want to look elsewhere next time I get a laptop. I'm sure I could cram lots more into this post but this seems to be enough for now. I also know a few people have been waiting to see what I put here or add their own input, so now they finally can! Eventually I may come up with some more "bad" aspects of my endeavors with the MacBook Pro at a later date, but for now I should really get cracking on some developing so I can post some blogs that aren't quite so pessimistic.

Let me preface this by saying that this post is about 1.5-3 months old.  I figured I should finally get this draft out there (by splitting this topic up into 3 chunks) so I am able to get on with the "Bad" and the "Ugly" sections.  Without further ado!  The good!

At work my 2-2.5 year Sony VAIO was showing signs of dying. I know these signs all too well:

  • Keys are "sketchy" and only sometimes work
  • Power connector is loose
  • Screen randomly goes flickers on and off
  • etc

So it was time for a new work laptop. Recently there has been an influx of MacBooks within our small developer staff, and pretty much everyone seemed to be happy with their purchases; so why not, sign me up for a MacBook Pro! I guess it should be noted I received the 17" MacBook Pro, the 4th generation one with the multitouch mousepad.  So here is my somewhat longwinded take on the newest member of my laptop family.

The Good

Cat nap avatar

So upon first booting up the 'ol mac everything did seem to just work. Perhaps it was fate, but the day before I received my laptop, I had bought my first iTunes mp4s. To those not in the know when it comes to purchasing stuff from iTunes, they basically take down all of your [billing] info and store it in some super-secret location. So when the mac asked me if I had an account, I just entered in my info and BAM! all of my contat info was immediately entered in. The next step was to take a picture of yourself so everyone you talk to can see what you look like. Sadly, I opt'd out of this and replaced it with the avatar that I've currently been using on forums, IM programs, etc.

Adium

I'd have to say that I'm really impressed with Adium as my main instant messaging client. Previously I was mainly using pidgin under Ubuntu/Windows. It worked near flawlessly under Ubuntu with a few bugs in Windows. So far I've had minimal complaints with Adium. The fact that almost every aspect of it is themeable is pretty nice, as well as it's integration with growl. Aside from the learning curve it takes to learn any new program, Adium as the instant messaging client is at least one aspect of OS X that I really like.

Growl

As mentioned above growl is a global notification program for OS X. As of right now I have it hooking into Adium as well as Mail. So any time I receive an IM or an email, I get a small notification "pop-up" in one of the 4 designated corners of my screen, which then fades away a few seconds later. If I'm idle, growl will actually leave them on the screen as a "sticky" popup. Neat! I've been told that Growl will sometimes hog some of your computers resources for some reason or another, but I still have yet to experience it.

Quicksilver

As I've discussed with my friend Jason, quicksilver is probably my favorite part of OS X so far. Their slogan act without doing is probably the best way to describe it. Essentially this replaces the old launcher that was used by OS X, but it does so. much. MORE!. Here's a small list of things you can do, all with a few keystrokes (and ONLY keystrokes!)

  • Launch or switch to an application (I use it to switch more than using the commant-tab menu)
  • Find/Open files, documents, photos, etc - essentially any directory you setup for QS to index
  • Open up a contact's information
  • Email a contact (and even attach a file!)
  • Automate text entry for almost any webpage
    • Google Search
    • Google Image Search
    • IMDB
    • Wikipedia
    • Webster's Dictionary
    • Anything that uses search string in the URL
  • Repeat/Find anything within your bash history

At first it's hard to keep in mind that you can do all this stuff. But if you force yourself to use it, you'll be pleasantly surprised at how much QS can do and how customizable it is. It took me a while to get the search engine functionality down, but now it works fairly well. If anyone needs help with it, I'd be more than happy to elaborate on it in another post.

Virtualization and BootCamp

Parallels Vs VMWare Fusion

As the company I work for does 90% of our web development offering full support for the Internet Explorer family of browsers, I need windows. Previously in Ubuntu I was using VirtaulBox, an insanely awesome (and free!) virtualization program. Since this is a company laptop, I figured I would try out some of the not-so-free programs and see how they worked. The two obvious choices for OS X are Parallels and VMWare Fusion. I initially tried Parallels, thought it was alright, after about a week I tried VMWare Fusion, and thought it was alright as well - possibly a little better. Within Fusion, the performance seems a little better, the Unity/Coherence mode seems to be integrated a bit better and Fusion seems to offer more configuration options. Other than that, There really isn't that much of a difference. For the most part it's all up to the users preference. But between both choices, they both function great and work very well without unnecessary tweaking.

The other option is to run Windows natively using BootCamp. I had a horrible time attempting to get this installed (we'll get to that later), but once installed, running Windows on the mac is great. Initially after you setup your partition, and boot into Windows, you can load all the necessary drivers for it by just inserting your OS X cd. Brilliant! So now you ahve your function keys, right clicks, multi-touch, wifi; basically everything that worked in OS X is now available to you in windows. I'm hoping to use the drivers on this cd to help my Ubuntu partition along when I get around to installing it.

Misc

A few other things worth noting, but aren't worth going into (or will get elaborated on later):

  • Tunnelblick - A VPN Client
  • Spaces - New to OS X 10.5!
  • HotKeys - Volume, Brightness, etc.
  • Multi-Touch Touchpad - Finger Fun on the Touchpad
  • Integrated iSight Camera - Mac

The Bad

Unfortunately this hasn't been a completely hassle free transition.  "The Bad": coming soon.

So since one of my co-workers called me out, I'll be answering a few questions about my history and experiences in programming.  I'd appreciate it if my call outs do the same!

How old were you when you started programming?

Obviously way back when I was wrigint .bat scripts for MS-DOS when I had my first computer.  The frankenstein piece of hardware I had (mostly spare parts from my Dad's leftovers) didn't really like a lot of games I used to play.  So each one either required its own boot disk to run or various batch file in order to run correctly.

The first time I can remember programming is in 5th grade.  Our teacher had this programmable lego system.  It took simple commands like "FORWARD 10" and even supported loops.  The fact that I could write code and it would alter an actual physical device is what had me hooked.

What was your first language

After programming LEGOs I started diving into what I could on windows 3.1; which is where I found QBASIC.  There were a few games already installed (nibbles, asteroids, etc).  So from there I just played around with altering variables and changing things.  Shortly after I started taking classes in middle/high school which quickly moved me from QBASIC to C++.

What was the first program you wrote

The first REAL program didn't come around until high school where we had to create an actual animation (in QBASIC) and kind of make a cartoon of sorts. Mine was basically a stick figure with a cape flying around saving cats from trees. This was my first introduction as to how sprites and various other things were animated within a programming language.

What languages have you used since you started programming?

Assembly (M68HC11, 8051), VHDL,  HTML, Java, JavaScript, J2ME,  C, C++, PHP, Perl, Python

What was your first professional programming gig?

I was lucky enough that my brother-in-law gave me a Job at his company when I was a junior in college; the company, TechSafari. Before then I had mainly done PHP and C++, but at TechSafari I had most of my initial experiences with Perl and Javascript. There I was coding on linux machines and using an Oracle database; nothing fancy. Since it was a small company, working there was great, and it was awesome picking the brains of a lot of my co-workers. I definitely learned a lot there and it's probably the reason that I have the job that I have now.

If you knew then what you know now, would have started programming?

Yes, in fact I probably would've been even more enthusiastic about it!

If there is one thing you learned along the way that you would tell new developers, what would it be?

My suggestion would be to listen to everything and anyone that comes your way. A lot of times there are a lot of non-traditional programmers that have a lot of interesting ways to do things, or interesting takes on various techniques. The worst thing you can do; IMHO, is to get stuck doing the same thing, the same way, every day that you're programming. Always keep your eye out for the next big thing and experiment on your own!

What’s the most fun you’ve ever had programming?

Two things come to mind with this question. The first being a project I did in college involving openGL using C++. Creating animations and various applications using LEGOs was definitely a fun experience.

The second awesome project I had in college was creating a programmable robot using the Handyboard. We had to first create an OS that would run on the board (mine was prioritized!). After that we created drivers for sound, motors and various sensors we attached to it. Aside from being in assembly it was awesome seeing something you made come to life and act/react however you programmed it.

Who am I calling out

Not sure if Steve/Jason are very active in his programming, but I'm sure they'll have something to say. They always do : ).

JasonSidabras
JoeFleming
SteveHolland

So lately I've started undergoing (yet another) personal project. Basically a file request and upload system that will be using the Dojo Grid. Initially I was going to try using a few other widgets from the Dojo family, but decided that it was time to revisit the Grid and see how much it has progressed since Dojo 1.0.2.

Initially when I was using it, I couldn't understand why my page was loading so slow. When I slow, I mean slow; enough to the point that the browser would give you the whole this page could be doing bad things, would you like to stop scripts on this page? slow. Yeah I have a few XHR's here and there, but nothing out of the ordinary. The only thing I could find was that commenting out Dojo requires for the actual Grid dijit improved performance immensely, but how am I supposed to use a grid if I can't include it! I didn't really remember Dojo's demo being slow at all, so I went to investigate on their site.

Copying their example line-for-line worked like a charm. It loaded up nice and quick, no problems, no lag and none of it was my code. So I began to tweak a few things to try and get my data in the grid. First off, I noticed that they were making their includes from the AOL CDN. I've heard about this but never really looked that much into it (as I probably should have). So I took it out, and replaced it with includes from our DreamHost server. Upon doing that, and reloading, this is where the slow down was from.

Don't get me wrong, DreamHost is a great hosting company, but lets face it - you get what you pay for. $90 for two years of hosting, you can't really expect to get lightning fast connections and/or a dedicated machine as your server. Their notorious slow load times had to be the bottleneck that was killing my code. For those not in the know: Dojo require statements essentially make requests to grab all the dojo files that they need. For a heavy duty dijit like the grid, this can add up to a lot of requests! And making these requests through the DH server was what was slowing me down.

So basically, using AOL's CDN to host all the Dojo includes make things insanely faster (load times below!). I guess fast javascript isn't enough, but when dealing with massive JS requests and includes, having a fast host is just as important. Lesson Learned!

DreamHost Hosted Example - Load Time: 27.86s

(link)

DH Dojo Grid Load Time

AOL CDN Hosted Example - Load Time: 2.96s

(link)

AOL CDN Dojo Hosted Grid

Wow.

Next Page »