Google Chrome Application Shortcuts For Mac

I recently purchased a MacBook Pro.  It's not my first Mac as I have a Mac Pro that stands as the "family" computer. Although it houses all of our media and important family data, I really don't use it much with the exception of remoting in to do our finances.  This new laptop however, has enabled me to really dig into OS X and get more comfortable with the OS and all the great applications available for the Mac.

I have been investing a considerable amount of time staging my laptop with all the apps that I will need to use moving forward.  One of those apps is the Google Chrome web broswer.

I don't use Chrome as my default browser, primarily because of site rendering issues.  I do however love the application shortcut feature that Chrome has for Windows/Linux and use it quite heavily.  I was terribly dissapointed when that feature was not available in Chrome for Mac.

Knowing that an OS X app is really a folder with special permissions that contain application data and configuration, I sought out to find a way to create and application shortcut for my web apps.  Below you will find instruction on how to do this.

The example I will use is for the toodledo.com web app.  You will want to just substitute Toodledo in the example with the name & info for your web app.  These instructions assume you already have Google Chrome installed.  It also assumes you know what a text editor is.  TextEdit, Word, Pages are word processors and CANNOT be used.  You can use Terminal based editors like vi or nano.  If you want a gui based text editor, TextMate has a 30 day trial you can use.

1.  In Finder, go to your Applications folder.  Create a new folder called yourapplication.app (where yourapplication is the name you wish to give your new app shortcut, mine was Toodled.app).

2.  You will be asked if you are sure that you want to add the extension ".app" to the end of the name, click add.
3.  Secondary click yourapplication.app, select "Show Package Contents".
4.  Now, create a new folder called "Contents" then open the "Contents" folder.
5.  In the "Contents" folder, create two new folders: "MacOS" & "Resources"
6.  Using your favorite text editor, create a text file called "Info.plist".  It is important that it ends in plist and that no other file extention is appended.  In this file, copy & paste the following information then close and save the fle:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0>
<dict>
<key>CFBundleExecutable</key
<string>Toodledo</string>
<key>CFBundleIconFile</key>
<string>toodledo</string>
</dict>
</plist>


7.  Open the "MacOS" folder and create a new text file called yourapplication, where yourapplication is the name of your app minus .app.  In this file, copy & paste the following infomation:

#!/bin/sh
open /Applications/Google\ Chrome.app -n --args --app="https://www.toodledo.com/views/duedate.php"

Here, you will want to replace my toodledo.com url with the url to your web app.  Close and save the file.

You now have your application shortcut!  Drag it to your Dock and fire it up!

If you have an image you would like to use for your icon, simply:

1.  Copy the image to your clipboard.
2.  Secondary click your new app, select "Get Info".

3.  Click the temporary icon that the OS gave you (the upper left corner of the screen) then issue command-V to paste your new image in.

This is a crude way to get an application shortcut, but it works.  If Chrome gives you any permissions errors, simply quit Chrome, then try your app shortcut again.

-boogybren

IOS4 Multitasking - Love It/Hate It

I have been getting to know IOS4 on my iPhone 4 for the last 24 hours now.  For the most part, I am very pleased.  I have been lucky enough to have not experienced any of the screen or antenna issues others have been seeing.

I have mixed feelings about how Apple has implemented multitasking.  I love that I can multitask natively.  For at least the past year, I have been using Backgrounder on my jailbroken 3GS and have loved it.  To be honest, I actually prefer the way Backgrounder implements multitasking.  At a single press of your home button, you are in control of whether or not you want to kill the app or keep it in memory.  This is one of my gripes about IOS4 multitasking.

Too Many Steps To Kill An App

I am a Systems Administrator by day.  I am all about efficient systems.  The same goes for my phone.  There are times where it is very beneficial to keep an application in memory as to not loose your settings/input or just to play Pandora in the background while you do other tasks.  However, when I am done with and app, I am done.  I want it out of memory.  To do this with IOS4, I need to:

- double tap the home button
- tap and hold one of the app icons until they get jiggy-with-it
- tap the minus sign on the app I want to kill

Apple could learn a thing or two from Backgrounder.  With Backgrounder, it is simple:

- If I want to background an app, I hold the home button down (a few seconds) until it tells me that backgrounding is enabled.
- When I want to disable backgrounding, I open the app and hold the home button down (again, a few seconds) until it tells me backgrounding is disabled.
- If I want to exit an app and not background it at all, I just tap the home button as normal.

What Apps Do I Have Running?

I am still getting used to using the double tap of the home button to navigate through my already running applications.  But how exactly do I know what is running without double tapping home first?  How many apps can I have running in the background?  When does IOS4 determine when to shutdown an app to make room for another.

What I am finding is that I am double tapping home button only to find that the app I want isn't in the background, so I have to go to the home screen anyway to access the application I wanted in the first place.  That is too many steps in my opinion.

Apps Have To Be Coded Specifically To Utilize IOS4 Multitasking

I get why Apple does this.  They have waited to implement multitasking until it can be done in an efficient manner.  I would whole heartedly agree that their implementation is by far the best I have seen on a phone.  Most phones (particlulary WinMo and Android) will put so many applications in the background the the phone gets sluggish to the point of not being able to make or answer phone calls.  Eventually, either the app or the phone just crashes.  IOS4 does not do this.  But, in order to resume a backgrounded application where you left off, you need to code your application to utilize this feature.  This isn't necessarilly a bad thing.  It does mean however that until your favorite applications get up to speed with multitasking, you will have interesting behavior when going in and out of that app.

All in all, I am happy with IOS4 on the iPhone 4.  I have tested and used numerous devices in an enterprise environment over the past six years.  It is nice to have a phone that just works and works well (with sincere apologies to those who have screen and antenna issues :-) ).

-boogybren

Thoughts on Android

I have been an iPhone user since the 3G came out in July of 2008.  I upgraded to the 3GS in June, 2009.  As of this posting, I am five days out from receiving my iPhone 4.

Having been a tester of smartphones in a former life, it was refreshing to have a hardware/software platform come out and just works, and work well.  I never had my iPhone hang, crash or otherwise become inoperable.  I never had to restart it.  I never turned it off.  It just worked.

Last month, instead of using my personal iPhone for work, I decided to let my employer carry the burden of my phone bill.  My only carrier option was Sprint and my handset options were abysmal at best.

Having already been burned by the HTC/WinMo options and being uncertain about the Palm/WebOS platform, I opted to try my first HTC/Android phone.  Why not? I have 30 days to return it, right?

I have used my HTC Hero now for 2 weeks and to be candid, I am ready to take this phone out to the gun range and use it for target practice.  I have daily frustrations with this device.  Sometimes it the hardware.  Mostly software.

Below is a list of gripes or warnings should you be considering a Hero or Androd based phone:

  • The phone is slow.  It has similar hardware specs to the iPhone 3GS (Hero: 288MB RAM/528Mhz CPU | iPhone: 256MB RAM/600Mhz CPU) yet it is no where near as responsive as the 3GS.
  • When I tap on a button (hardware or software), I expect it to do what I told it to do.  When I press a hardware button on this phone, I have to press it 2-3 times before it does what I asked.  When I tap a software button, It recognizes my request by changing the color of the button I tapped, but does NOTHING! I have to do this several times before it will proceed with my request.  Sometimes, it will do something entirely different altogether.  I have missed numerous phone calls because Android decided that I didn't really want to take the call despite my swipe to answer.
  • If I have a touch screen phone, I should not have to be dependent on an additional track ball to get things done.
  • Why do I have to bring up a hidden menu to do something when it can be done with either a swipe gesture or a small on screen button? Because of this, it takes three or more actions to do something that could have taken one or two.
  • When I have an email open and I delete it, why does it take me back to my list of emails instead of opening the next email in the list?
  • Why can't I delete more than one email/text message at a time?
  • When in a text field, you have to have the precision of a surgeon to place your cursor somewhere else (to correct a typo, etc...).
  • Copying text is a task, shouldn't this be easy?
  • The Android's response to the touchscreen is way too sensitive.  Makes for a lot of accidental input.
  • Managing two phone calls is not intuitive.  It is almost as if they expect you to conference in any additional calls you make while already in a call.  I have yet to find a way to end a second call without ending my first one.
  • Because of the oversensitive response to the touchscreen and because the mute button on the phone screen is too close to the End Call button, I end up killing a call when all I really wanted to do was mute it.
  • When on a call and the screen goes dark, there isn't a good way to wake the phone without issuing a command like hanging up on the call or dialing another number.  The only safe way I found was to use the volume keys.
  • There can be such a thing as too many options.  In settings screens, why not have a general set of settings then a separate screen for advanced settings?
  • Why isn't there an obvious way to close out an application and feel assured that it is actually closed and not running in the background?
  • Why do I have to power cycle my phone!  I am constantly doing this to reset my data connectivity or increase my performance.
  • Why do I get out of memory errors from applications when I have 70MB of RAM available?
  • I have yet to get my Google voice commands to work.
  • Default browser is abysmal (page formatting is very poor, all of the page content doen't always load). Having installed the Dolphin browser too, if I choose to go back to the default browser it is constantly asking me whether I want to use it or Dolphin EVERYTIME I click on a link or go to a different URL.
  • Anything that scrolls (web pages, settings menus) scrolls very choppy.  If I barely flick the menu, it scrolls at mach speed (web pages behave better on flicks).
  • When I tap on a URL, I really would like to visit it.  Why do I have to tap it multiple times in order for the destination page to load?  Apparently, the default browser needs more convincing of my intentions.
  • Camera function is kludgy and slow.  Picture quality isn't the best for 5MP.  I have to use the dang trackball to take the pictures!
  • When I input my Google information on a site, why does Android assume I want to use all of the Google based functionality on the phone?  I have to explicitly remove my credentials and/or turn off the Google functionality on the phone.
  • I use my phone with Exchange.  Although I have my phone set to push as emails arrive, it is far from realtime.  I have seen upwards to 45 minutes descrepancy.  This isn't good when you are required to respond to system alerts within 10 minutes of the event.
  • If I read an email from my desktop client, it doesn't mark it as read on my phone.  And vice versa.
  • Although my appointments are pulled from exchange and stored locally, it appears that if the calendar can't sync with the Exchange server (because my data needs to be reset :-P) then my appointment alarms don't go off.
  • Software from the Android Market often doesn't work.  I attribute this to the fact that there are way too many choices for Android devices.  Too many differences in hardware.  I see a lot of software on the market that is device specific.  So if I don't by the hottest Android phone, am I just screwed?  What happens if my phone is 1-2 years old?
  • If I want my phone to get the latest Android update...AND have it actually work, I either need to wait for my carrier to provide one or some platform enthusiast to produce one.  My carrier could drop support of the phone at any time and not provide any updates.  If I wait on the community, I could be waiting forever or be in a perpetual beta.

- boogybren

HOWTO: Remove Data Plan For Your iPhone

So you have an iPhone and for whatever reason, you don't actually need your data plan.  You really like your iPhone and all of the apps you have grown to love, but really could get by just using Wi-Fi from time to time.

Of course, AT&T will tell you that you cannot have an iPhone with out a data plan, so what is one to do?

Just follow these instructions and you will be on your way to having an iPhone with no data plan!

1.  Walk into your AT&T store with a non-smart phone and a completely different SIM card than the one that is in your iPhone.  If you bring them the SIM from your iPhone, you are less likely to garner their cooperation.  Additionally, just leave your iPhone in the car.

You can achieve #1 in a number of different ways:

           -  If you have an old GSM phone, use it.
           -  Borrow a phone from someone.
           -  Buy a refurbished Go Phone from http://wireless.att.com for around $10.  They usually throw in free shipping.

2.  Tell them you want to activate this new phone/SIM for your phone number.

3.  Make sure you request to deactivate data and to completely block data from that number.  This will prevent any billing for accidental data use on your iPhone later.

4.  Because the iPhone uses data to download your voicemails for the Visual Voicemail feature, you need to tell your representative to make sure that you have standard voicemail enabled.  This is an easy one for them to miss and could mean some inconvenience for you later as you work with AT&T again to enable it.

5.  Perform some final in-store tests:

           -  Call the representative from your phone to ensure it works and to ensure that your number is what is coming up on their caller ID.
           -  Call your own number to make sure it prompts you to setup your voicemail.
           -  If your phone could support data, try browsing a web site or use some data dependent feature to ensure that data is blocked and that it fails.

6.  Thank them :-), then walk to your car and slap the SIM into your iPhone.

You should be all set to go with data free goodness on your iPhone!

~ boogybren

Why You Won't See Opera Installed on My iPhone

I understand somewhat what Opera is trying to do here, presumably in the name of performance.  However there are two security risks that I am not willing to take by installing and using Opera on my iPhone.

All traffic is proxied through Opera's servers. It’s one thing for an app on the iPhone to query the web, talk to its own or others’ servers, but something entirely different for Opera Mini to proxy the entire web through its own proprietary servers. Opera gets in between you and every single URL out there, from your bank to your school to your doctor’s office. You never communicate with any site directly, only through Opera proxy servers that first go to that URL, get a page, recompile it into its own markup language, compress and send it back to the mobile client that alone can understand it.

Man-in-the-middle encryption. Opera breaks your end-to-end security chain.  Because all of your traffic is proxied, when you visit a site that is encrypted via SSL, Opera will actually decrypt our data before recompiling it and encrypting it again before sending the data back to your browser.  Something to consider when you do online banking from your phone.

Of course because of their proxy, you can forget about jumping onto your VPN and viewing sites on your company intranet.

-boogybren

Apple's Next Gen iPhone

Gizmodo's Jason Chen has managed to get his hands on what really could be Apple's next iPhone.  As the story goes, this phone was left at a bar in Redwood City, CA.

There are a good number of knock-off iPhone out there which made me a skeptic at first, however Jason's list of why this could be a real iPhone is quite compelling.

Check out Jason's write up with pics at:

http://gizmodo.com/5520164/this-is-apples-next-iphone

-boogybren

Free iPhone-To-iPad Upgrade

Can’t afford an iPad or still waiting for international availability?

Here is a little trick that should smooth the wait…

-boogybren

Tar and Gzip When Low On Disk Space

Anyone who knows me knows how I feel about AIX :-P.  One of my peeves is that out of the box, I cannot tar/gzip a directory with the “tar -cvz” command without breaking it up into two separate tar/gzip commands.

Every once in a while, you need to pull a large directory off your server to your local machine or just to copy it to another server.  Sometimes it’s easy just to copy the entire directory uncompressed.  Other times, it just makes sense to tar and gzip the directory so that the file that you are transferring is in a single archive and is compressed as to shorten the transfer time.

The problem with the tar/gzip option is that if you tar then gzip, you need the disk space to do so.

On AIX, here is a solution that will allow you to send what you tar to stdout then gzip it on stdin with no problems with disk space unless the gzip’d tar is still bigger than the diskspace you have available.  This *should* work on other *NIX systems that you cannot throw the gzip switch in the tar command.

tar -cvf - /path/to/dir/you/want/to/tar | gzip > /destination/for/gzip'd/tar.tgz

-boogybren