bingshui.org

the Life of Zim

22nd May
2010
written by dzimney

This past week marked Google’s 3rd Annual Google I/O Conference in San Francisco, CA. The event which spans the course of two days is a platform for Google to share it’s latest goodies with the world among other things. As an Android convert, I was excited to see the Day 2 Keynote which highlighted all of the new features in Android 2.2 (aka Froyo). If you love android already, make the time to watch this presentation. It’s all very excited stuff. If not, maybe take a look and see what Android has to offer over the leading brand. You may be surprised.

For me, I love how dedicated Google has become to being “open”. Their mission is to make the Internet great and easy to use for everyone, which is more than I can say for some other groups out there. I not only support the amazing technologies that they’re producing, but also support the way they’re doing it. The essence of the Internet is in openness, and Google has been a leader in keeping it that way.

30th April
2010
written by dzimney

Yesterday, Steve Jobs made a post on Apple’s website regarding his Thoughts on Flash. The article lists six reasons why Adobe’s Flash is not and will not be made available on the iPhone/iPad platform. His reasons are misleading. His logic is murky at best. To a common iPhone or iPad user they may seem, well reasonable. However, to someone with a deeper knowledge of the technologies he addresses, most of what he says is simply false.

“Frist, there’s ‘Open’.”

Jobs claims, “by almost any definition, Flash is a closed system” because Flash is only available from Adobe. This is to say that in order to create a Flash application, one needs to own a copy of Flash. This is simply untrue. Through the use of technologies such as MTASC it is entirely possible to develop full Flash applications without owning the proprietary Flash software. Adobe has never done anything to deter such technologies. It’s also important to note that Flash development can be shared with anyone at no cost to the developer. A developer can create a Flash, Flex or Air application and distribute it however they see fit.

Now let’s take a moment and look at the development process for Apple’s App Store. The iPhone SDK is written in Objective C which is developed by Apple and the equivalent to ActionScript being developed by Adobe. No surprises there. However, in order “to develop iPhone applications, you use Xcode”. Xcode, although free, is, wait for it, wait for it, proprietary. Xcode is used to digitally sign an application with the developer’s digital certificate before it can be submitted to the App Store. This digital certificate costs the developer $99 which is paid to Apple. The best part? If the developer does all of this, it doesn’t necessarily mean their application will see the light of day. This is because Apple individually approves all apps before they are made available in the App Store. A process that can take up to two years.

Jobs goes on to explain that Apple has a firm belief that, “all standards pertaining to the web should be open”. Jobs writes, “rather than use Flash, Apple has adopted HTML5, CSS and JavaScript – all open standards.” So let me see if I’ve got this straight, Steve. Apple, while not open itself, supports open standards, but only for the web. And since, in the opinion of Steve Jobs, Flash is not “open”, Apple’s closed system in going to exclude Flash? Maybe a fair point, but also maybe a little hypocritical. Of course this assumes the opinion that, “Flash is a closed system,” is accurate.

“Second, there’s the ‘full web’.”

Ah, yes. The “full web”. Jobs starts his “full web” experience with video. Adobe claims that 75% of all video on the web is delivered using Flash. Jobs rebutes saying that YouTube makes up 40% and the iPhone and iPad are bundled with a YouTube app. Problem solved. Using the YouTube application, you’ll have access to 40% of all video that is available on the web. Of course you won’t be able to view that video in a web browser or see any video that is embedded with Flash within a webpage. But I guess you’re right, Steve. 40% of all video made available through a separate application is practically the “full web”. Lets just forget about any Flash dedicated websites and round that figure up to 100% for “full web”. Done and done.

Jobs continues to brag that the App Store contains more games than God, much less Flash. I understand the point here. Apple and it’s App Store provide a suitable replacement for Flash and therefore Flash is obsolete. That’s all fine and good, but it doesn’t fill the gap between the “full web” and the web as it is on the iPhone and iPad. Furthermore, reason #2 is certainly not, “based on technology issues,” as Jobs claims his reasons are.

“Third, there’s reliability, security and performance.”

Here Jobs actually has a good point. If this was the extent of his article, I wouldn’t be writing mine.

“Fourth, there’s battery life.”

Jobs’ fourth reason is for battery life, but more specifically the way battery life is effected by video as delivered using Flash. He starts here and basically turns his point into a pitch for H.264 video. Battery life has been one of Jobs’ goto reasons for not providing Flash on the iPhone. Jobs writes, “H.264 videos play for up to 10 hours,” while video provided from Flash will, “play for less than 5 hours before the battery is fully drained”. I’m curious. How would Flash video compare to talking on the phone or simply surfing the web? According to the specs on Apple’s website, the iPhone’s battery life will only provide up to 5 hours of internet use or talk time while on a 3G network. Considering Flash video content would presumably require internet use, it’s no surprise that battery life would dip to under 5 hours.

“Fifth, there’s Touch.” (note: Touch is capitalized… amazing he didn’t add the ®)

Here Jobs whines that, “many Flash websites rely on ‘rollovers'” and that in touch-based devices a rollover simply doesn’t exist. He then concludes that as a solution, developers should, “use modern technologies like HTML5, CSS and JavaScript.” This, to be blunt, is just stupid. First, let’s establish one thing right off the bat. JavaScript, one of Jobs’ modern technologies, is just as capable of being dependent on “rollovers” as Flash. Second, to suggest that it makes more sense for developers to fully abandon Flash and completely rebuild Flash content as HTML5, CSS and JavaScript rather than reworking them in order to avoid “rollover” dependency is absolutely ludicrous.

Jobs goes on to claim that, “most Flash websites need to be rewritten to support touch-based devices.” A claim that is equally true for “most” JavaScript driven websites. Here, Jobs is making a claim that he simply can’t support.

“Six, the most important reason.”

Jobs’ final and most important reason, “why [Apple] does not allow Flash on iPhones, iPods and iPads” has nothing to do with running Flash as an application or in a browser on the iPhone, iPod or iPad. Instead he goes to explain why, Apple’s new developer agreement mandates that developers use Apple’s API and only Apple’s API to develop applications for the iPhone. This blocked the most substantial new feature of Adobe’s recently released CS5 Suite, which would have allowed developers to generate iPhone applications through the Flash IDE.

Before I get started, to say that not allowing this feature in Flash is in line with keeping Flash off of Apple’s mobile devices is simply inaccurate. The new feature provided by Adobe would have published applications as native iPhone apps. There would have been no emulation. We’re not talking about a Flash app disguised as an iPhone app. Flash would have compiled ActionScript code into an actual iPhone application.

Apparently, Jobs is concerned that the ability to develop iPhone apps through Flash would create a bottleneck of Apple’s technologies. Jobs says, “we cannot accept an outcome where developers are blocked from using our innovations and enhancements because they are not available on our competitor’s platforms.” That’s like not selling a computer to someone unless they have internet access because they won’t be able to use it to its full capability. If developers want to develop with the lastest innovations and enhancements, they’ll learn to develop in whatever platform is needed. The ability to develop applications in Flash in no way effects the ability to develop applications using Apple’s SDK.

Is Apple within its rights to mandate how the applications in the App Store are developed? Yes. Is doing so a proprietary move? Absolutely.

“Conclusions.”

Flash is a widely accepted multimedia tool that has yet to reach the mobile realm. Soon it will reach that realm and with it, it will bring the single most cross platform development tool that exists. It is already able to generate desktop applications on both PCs and Macs with Adobe Air and is widely used throughout the web.

Apple iPhones, iPods and iPads are a closed box system. They are not multiplatform. They are proprietary. And in that respect Flash has the potential to be one of their biggest competitors. It is in Apple’s best interest to keep Flash from reaching that potential. That’s what Reason #6 is all about.

I understand why Steve Jobs and Apple don’t want Flash running on their devices. I think that concerns for performance are very legitimate. Those concerns are exactly why Flash has yet to be made widely available on any mobile platform.

What I don’t appreciate is reading a misleading statement from Apple’s CEO that attempts to smear Flash. This is either a personal grudge between Jobs and Adobe or Apple attempting to muscle Flash out of the mobile market. Regardless, it is being done at the expense of both Apple and Adobe’s user base.

Daniel Zimney
April, 2010

22nd April
2010
written by dzimney

This is really pretty amazing. Nothing of this magnitude has happened in the iPhone/Mobile world since the iPhone was first jailbroken. This is the feat that was previously said would never be done. Why you’d want to run Android on your iPhone over on an native Android device is beyond me, but I guess being able to run both OSes on the same device is cool. I can only hope it will bring people to realize how awesome Android really is and create some converts. I’ll probably be trying to install this on an iPhone this weekend. Sweetness. This is really really exciting, in a totally geeked out way.

7th April
2010
written by dzimney

Recently I made the switch from iTunes to SongBird. The main reason for the change is that I also recently made the switch from my iPhone to the Nexus One. To make a long story longer, I’ve felt that Apple has been on a slow and steady decline since releasing the iPhone and probably more attributed to teaming up with the likes of AT&T and other carriers internationally. In short Apple has been tightening it’s grip on user experience and customizing, which I hate. Don’t get me wrong I love(d) my iPhone, but it was just time to switch. And although I haven’t blogged about it much yet (which I should) I absolutely love my Nexus One. Love it. However, iTunes and the Nexus One don’t play together. Not that they don’t play well, they’re just completely incompatible; another sign of how Apple’s grip is loosing customers. While the Nexus One is completely open, simply appearing as an external drive that can be written to, iTunes will only write out to iPods and iPhones. Maybe I’d still be using them if they could write songs to any device. Oh well.

So. Now that I’m off of iTunes, I’m in need of a new source of digital music. After seeing an old friend’s facebook post about their new album being released on Amazon, I figured I’d get myself a copy and have since purchased a number of songs and albums off of Amazon’s MP3 store. That is until today. Last night I started up Songbird on the task of organizing my music. With the quantity of music to be copied to a new location the task took quite a bit of time. Meanwhile I decided to download a few songs from Amazon. The way the Amazon MP3 works, is that you download an Amazon MP3 file that must be opened through their Amazon MP3 Downloader. Well yesterday I had Songbird going through all my MP3s and soas not to create havoc in that process I decided to refrain from downloading my Amazon MP3s until the morning. I had downloaded the files to be opened by the Amazon MP3 Downloader, but not the actual MP3 files. Upon open said files this morning I see this coming out of Amazon’s app:

Download no longer available.

What the hell is that!? I go into my Amazon account. I can see the songs that I’ve purchased. When selecting my three songs from this morning, Amazon says “already downloaded”. Hmm. Annoying? Yes. Bullshit? Yes. Explainable? I wish.

Basically what this comes down to is that I’m not using Amazon to download MP3s anymore. Or if I do, I will be skeptical. Digital downloads are a tricky thing. I’m a web developer. I understand this. That said, if a company like Amazon wants to start selling MP3s, it needs to have it’s shit figured out. After a quick google, I found that I am hardly the only person this has happened to. It’s one thing to download a file, accidentally delete it and then not be able to re-download. But to say you can’t download this file because you’ve already downloaded it, when you simply haven’t? That’s bullshit. That’s someone else’s f*** up that I just paid $3 for. If it was more money I’d probably contact Amazon and have a string of posts after this talking about how bullshit (or amazing) Amazon’s customer service is. But it’s $3 so I don’t care that much. Instead I’m just not going to use them any more. Little ‘ol me? Not a big deal. I might spend a few hundred dollars a year on MP3 downloads. However, for a company as big as Amazon, I’m sure there are hell of a lot more people just like me that are having a similar experience. Say 1,000 people? Reasonable? Sure. Multiply by $300/year? That’s $300K a year because some programmer(s) can’t get their shit together? Lame. Especially when Amazon is going up against a giant like Apple’s iTunes Store? No wonder they have such a huge market share.

Me? I’m still trying to stay off of iTunes. Apple’s getting too big for it’s own good. I still love them, but they’re doing things that make me nervous for them. Songbird has the 7digital store, which is okay. Seems like they’ve got a fair amount of stuff on there. Haven’t used it a ton, but it seems to be pretty well integrated with Songbird, which I like.

9th March
2010
written by dzimney

About a week ago I got the Nexus One from Google. Today I decided to delve into the SDK and see if I could get a “Hello, World!” script running on the phone. Following the Android Developers website, I downloaded the SDK and installed the Eclipse plugin for Android. I was able to get the Hello, World! script running fine in the virtual Android machine, but when I started trying to connect my phone for debugging I started running into issues. I’m using the Nexus One which is currently on Android 2.1 and I’m on OS X 10.6 (Snow Leopard). It seemed that whenever I ran the command adb devicesin the terminal, I got an empty list of devices. Frustrating.

Well after scouring the internets with no results, I remembered that when I installed the SDKs with Eclipse, there seemed to be a lack of overlap between the two. When installing the Eclipse Plugin, it creates a folder in the workspace called com.google.android.sdk, except this SDK doesn’t line up with the SDK from the Android Developers site. When I had initially put things together I simply copied over some of the files created by Eclipse to avoid breaking the plugin. But when running adb devices, it was running from the Eclipse provided SDK. Upon trying again with the adb command from the Android Developer’s SDK, the phone shows up on the list of devices. So now I’m copying arranging files to use the good SDK.

Not sure if this will have an effect on the Eclipse plugin. I’m assuming not. My guess is that the Eclipse plugin was simply packaged with an older version of the SDK. We’ll see though. So happy to see the Android SDK is in Java though. Way better than the iPhone SDK.

UPDATE:
Looks like you don’t want to overwrite any files. Simply leave the com.google.android.sdk directory as is and point to the downloaded SDK in the Android preferences pane in Eclipse (SDK Location). I had to delete and recreate my helloworld project in Eclipse to repair the errors due to the missing core library (android.jar).

15th February
2010
written by dzimney

via eBay

After 2 long loyal years I’ve decided to sell my iPhone. Why? Damn the Man. Save the Empire. That’s why.

21st January
2010
written by dzimney

For those who don’t like to read: the fix.

I upgraded to Snow Leopard (OS X 10.6) from Leopard (OS X 10.5) last week and everything seemed to go off without a hitch, until…

I have a bluetooth, wireless, keyboard that I use for work. At some point in the past week, not initially, my keyboard started acting up. At first I didn’t think anything of it because the lady’s computer is also paired with the same keyboard and when the problem first occurred it was because the keyboard was connected to her computer, also on Snow Leopard, rather than mine. I ended up removing the keyboard from her bluetooth setup and re-pairing (no pun intended) the keyboard to my computer. Everything worked fine and I went through my day.

The next day, I found that my keyboard would not pair up again. WTF!? So I go through the process again, thinking maybe Laura and I did a keyboard swap or something and that was the problem. Re-paired, everything’s cool. Whatever. If it happens again, I’ll deal with it.

Finally, today, day 3, I start up my computer and the keyboard won’t connect. Immediately I try to re-pair the keyboard and suddenly the computer tells me there must be some compatibility issue. Thanks Apple. I have an Apple keyboard I’m using with an Apple Macbook Pro and I have a f***ing compatibility issue. You’d think they would make sure that bluetooth continued to work between upgrading from Leopard to Snow Leopard. Oh well.

So I resort to Google. And basically what I find is that I have to reset my System Management Controller (SMC). Do I know what an SMC is? No. Do I care? Not really… okay, so I do a little. Apparently the SMC handles a lot of the lower level operations performed by the computer like “the power button”. Sweet Apple. Okay, so what to do. You have to reset the SMC. To do this follow the steps specified here. Be sure to read through the process and select the procedure that matches your computer. Different laptops, desktops, etc. will have a different method for resetting the SMC.

All in all, it’s disappointing that Apple overlooked this issue. Seems too often that companies can be aware of an issue be keep it quiet for the majority of users that don’t use (in this case) bluetooth, while those that due have to spend have their day in frustration.

Dear Apple,
Don’t pull Quit pulling a Microsoft.
Your Friend,
Mr. Customer

12th January
2010
written by dzimney

Today I finally upgraded to Snow Leopard from just plain ol’ Leopard. By doing this I found that my localhost configurations had gotten a little jacked up in the process. The first issue was that my /etc/apache2/extra/httpd-vhosts.conf file had been overwritten. Pain in the ass, but not too big of a deal to fix. The next issue though was that my MySQL database would not start.

Ashitaka: sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
Password:
Could not find MySQL startup script!

With the help of this post on www.planet-geek.com I was able to get things up and running in no time.

The fix:
It appears the issue here is that Snow Leopard updates the path name to MySQL. I’m assuming to keep a 32-bit version from attempting to launch on the new 64-bit OS. To fix this, you’ll simply need to create a symbolic link to the new directory.

Ashitaka: cd /usr/local
Ashitaka: ls -ldt mysql*
drwxr-xr-x 17 root wheel 578 Sep 1 00:31 mysql-5.1.30-osx10.5-x86_64
Ashitaka: sudo ln -s mysql-5.1.37-osx10.5-x86_64/ mysql
Ashitaka: ls -ldt mysql*
lrwxr-xr-x 1 root wheel 28 Jan 12 17:07 mysql -> mysql-5.1.30-osx10.5-x86_64/
drwxr-xr-x 17 root wheel 578 Jan 12 13:05 mysql-5.1.30-osx10.5-x86_64

Keep in mind that you’ll need to double check the folder names. Mine was mysql-5.1.30-osx10.5-x86_64 while the author of the Planet Geek article had mysql-5.1.37-osx10.5-x86_64. This reflects the version of MySQL installed, so it’s quite possible this will vary.

14th December
2009
written by dzimney

I’ve had a Wacom Bamboo Pen Tablet for the past year or so and love it. It’s hard to imagine going through my workday using a mouse now. However, I’ve found that from time to time the driver for my Wacom will fail when I login to my user account on OS X 10.5. Usually OS X asks if I’d like to relaunch the driver and everything is dandy, so I haven’t had to really do much anything about it; that is until today.

Today, I booted up my computer and my tablet driver failed and “relaunching” the driver didn’t help at all. I figured Apple must have made an update that conflicted with the Wacom driver, leaving me to reinstall the latest driver, which I downloaded from Wacom here. Unfortunately I found reinstalling the driver did no good. I restarted. Uninstalled the driver. Reinstalled the driver. Restarted. Nothing. Same problem over and over; once I login the driver fails and when I go to my preferences pane it tells me that it is unable to find my USB tablet. Unplug USB. Reboot. Plug in USB. Nothing.

Eventually I was able to discover that while the new driver did not seem to work for my user account, it worked fine on my login screen and for my “admin” account. So at least I knew the problem was specific to my user configuration. Now, armed with this information and Google I was really able to get to the root of the problem with the help of this post by someone going by the handle rausch over a year ago.

Quick Answer

When uninstalling (which should be done before reinstalling) the pen tablet driver, the Wacom uninstall script fails to remove a few key files located in the ~/Library/Preferences/ directory:

com.wacom.pentablet.p.TMP
com.wacom.pentablet.prefs
com.wacom.tabletpreferences
com.wacom.wacomtablet.prefs

To fix the driver from failing, uninstall the driver — do this by holding down open-apple and clicking on the icon in the preferences pane. Then delete any of the above files that still exist in your ~/Library/Preferences directory — where “~” is your user directory (OS X recognizes this syntax). In my case I only need to delete two of the above files as they were the only two of the four still present in my ~/Library/Preferences directory. Reinstall the driver and with any luck, your tablet will function properly again. Keep in mind, this will reset your tablet preferences back to the default settings.

Thank you rausch, whoever you are. And I hope that by republishing these instructions, someone else will be able find a solution to their problem faster that I did.

23rd November
2009
written by dzimney

Today I was messing around with the built in Apache server on my Mac. What I was doing seemed simple enough; start my apache server with Web Sharing turned off in my system preferences. So I turned off Web Sharing and went for my Terminal, entering:

apachectl graceful

Expecting Apache to restart/start I was surprised to get this error:

launchctl: CFURLWriteDataAndPropertiesToResource( /System/Library/LaunchDaemons/org.apache.httpd.plist) failed: -10

After searching around online for a bit I realized that my problem was I failed to enter the command as root (or I forgot to put sudo in front of my command.
With a second attempt I entered:

sudo apachectl graceful

And vuala, apache is on. No errors. However, now when I enter:

sudo apachectl status

I get this error:

/usr/sbin/apachectl: line 106: lynx: command not found

Not sure what that’s about. If anyone’s got any ideas, I’d appreciate it.