The Dangling Pointer

Sh*t my brain says and forgets about

Google Voice voicemail for your cell

Google just announced today (or yesterday?) that you can now have Google Voice’s voicemail replace your cell phone’s voicemail.

http://googlevoiceblog.blogspot.com/2009/10/google-voice-with-your-existing-number.html

What this means is you can now have all of your voicemails handled by one service provider.  This feature only works with cell phones (most US carriers supported) but not landlines, VoIP or SIP phones yet.

I switched my iPhone voicemail over to Google Voice today for a trial period.  I’ll see if I like it and report back.  My first attempt wasn’t perfect – it took nearly four additional rings after I ignored a test call for Google Voice to pick up.  A total of eight rings is way too much for most callers to wait to leave a message.

One important thing to note – you will most likely have to pay airtime for the call while it is RINGING and inside of your Google Voice mailbox.  You’re not going to get something for free :).

Xcode 3.2.1

Xcode 3.2.1 was released today and is available for download with iPhone SDK 3.1.2. This release is mainly a bug fix release and I’ve confirmed it does fix the Unit Testing issue I reported earlier.

Xcode & Snow Leopard – Logical unit tests hanging

I haven’t written unit tests before in Xcode.  I started to read Apple’s article on unit testing with iPhone development because I wanted to follow sound development principles with an agile approach.  Not long into the guide, I got stuck.  Literally.  Using Xcode 3.2 on Snow Leopard caused Xcode to lock/hang during the build of the logical unit test.  Same results after iPhone SDK 3.1 came out.  I couldn’t find anything online either except a few people experiencing the same issue.  In the system console (not Xcode console) I was seeing:

9/18/09 8:35:29 PM Xcode[669] -[XCBuildLogCommandInvocationSection setTestsPassedString:]: unrecognized selector sent to instance 0x2009b7620
9/18/09 8:35:29 PM Xcode[669] -runOperationInBackground raised an exception: -[XCBuildLogCommandInvocationSection setTestsPassedString:]: unrecognized selector sent to instance 0x2009b7620

Xcode[669] -[XCBuildLogCommandInvocationSection setTestsPassedString:]: unrecognized selector sent to instance 0x2009b7620

Xcode[669] -runOperationInBackground raised an exception: -[XCBuildLogCommandInvocationSection setTestsPassedString:]: unrecognized selector sent to instance 0x2009b7620

Needless to say, I was losing my mind. Finally, a user in the Apple Developer forums, “cde”, posted the following gem:

We have recently discovered the root cause of this problem.

People who are affected can work around it by (I hope you’re ready for this)…

…changing the Time Zone on your Build machine away from Central Daylight Time.  (In six weeks you can change it back, and people in Mountain Standard TIme will be affected.)

No, seriously.  Give it a try.

The problem is a single-character typo in a regular expression that parses the date stamp of the unit test. It causes it to miss the beginning of unit tests that are executed at -0500 or +0500 relative to GMT, so the end of those unit tests is unexpected, and it causes the build log parsing logic to initially hang and eventually crash.

As has been said, “Then I decided to use regular expressions, and I had two problems…”

So until it’s fixed, change your timezone to Pacific time.

Software Project Management Plan Template

I’m currently using Scrum in my school capstone project.  The advisor, however, designed the deliverables around the Unified Process and still expects some things like a Software Project Management Plan (SPMP).  While it’s a little late in the game, I’ve decided to fill one out and hope that maybe it’ll help weed out some requirements I didn’t document well in my backlogs.

First task – find a template.  An SPMP is usually based off of IEEE’s standard 1058-1998, which costs more than a hundred dollars to get a copy of.  I’m not paying $100+ to get a 200KB document.  I’ve seen example around the Internet of a SPMP but nothing that was formatted well in Word or handled copying and pasting into Word.  I spent some time doing more digging and found this wonderful site –

Construx – Resources & Tools

The site/company was founded by Steve McConnell – a name I had not heard of until now.  He’s apparently well known for software design, etc.  Free registration gives you access to the tools and under Management there is a full and light template along with instructions.  Score!

Xcode SCM & build directory

Xcode has a build directory inside of your project, which you shouldn’t be including in your source code management repository.  Simply said, those files change so much and are “discardable”.  There is no way to easily exclude this directory from your repository.  The accepted way to fix this (after some digging) is to simply move the build directory for Xcode to a temporary folder.

To move the build directory, click on the Xcode menu in your menu bar, and click on Preferences.  Change the folder under “Building” to a temporary folder.  I created a tmp directory in my user folder.

Xcode Preferences Build

Stealing Music

I admit, back in the day I stole a lot of music with peer to peer sharing programs like Napster and WinMX.  I stopped after I realized that most times the MP3s I was getting were subpar and the metadata associated with them was crap.  I spent more time fixing artist names, track numbers, etc than I did listening to the actual music.  Enter buying a Mac and having iTunes and I’ve tried to go legal for all my music.

Then my mom calls me this last week.  “Hey, I’m looking for the sound track to Steven King’s tv movie The Stand.  They don’t make it any more and Ebayers want like $60.  Can you find it ‘for free’?”

My mom is asking me to break the law and download this CD without paying for it.  I, of course, said no problem and starting the search and eventually found a few seeders with the songs.  I went to iTunes and the album was there, sort of, but I couldn’t view it getting a “not available in the US Store” error.  Amazon doesn’t sell the CD and their marketplace sellers want $40+ for a copy.

When I told my mom I had the files, a mere 30 minutes after she requested them, remorse set in for her.  “Oh are you sure this is okay??”  I told her, it’s illegal and if the RIAA had anything to say about it, they’d cut off my nipples.  However, I’ve tried every LEGAL route to obtain the album.  It’s not like this is a collection of songs from other albums – this is music orchestrated specifically for the movie.

So, in the end, screw the music industry (in this case).  You don’t want to sell it to me, then I don’t want to buy it from you.

Two Weeks with Google Voice

I finally got my Google Voice fka GrandCentral invite last week.  I have to admit, I got really giddy like a kid getting candy when I saw the invite come through e-mail.  So, I signed up, put my phone numbers in and have had two weeks to try it out.  The verdict so far?  It still needs some work but I love it simply because its free and super convenient.

Voicemail

Google Voice’s main focus is on voice calls, obviously.  You get one virtual phone number that rings all of your phones and a centralized voicemail system.  This is very reminiscent of Vonage’s multiring service but with one small (and very important) difference.  Google Voice announces the call which prevents your individual voicemail / answering machines from snatching the call.  This allows the Google Voice mailbox to truly hang onto the call and make it the only place you need to check for messages.

Google Voice’s voicemail center feels like Gmail.  Its even integrated with your Google Contacts from Gmail.  I had to set up synchronization between my Apple Address Book on my Mac and Gmail so that all my calls had the same metadata as my cell phone.  After some screwing around, I got that to work.

SMS

I was very pleasantly surprised to find SMS supported in Google Voice.  You can send and receive SMS (read – NOT MMS) messages from the Google Voice interface for free.  Messages hit your contacts with your Google Voice number and replies are copied to your cell phone on file.  The text messages going to your cell phone come from a “fake” phone number that allows you to reply, looping through Google Voice, and out to your contact.  Doing this allows GV to retain your SMS history and it hides your cell number from the contact.  Only caveat – it prefixes the message with the sender’s name, which can make a 140 character message actually come across your cell phone as two messages.  You can, however, disable SMS to your phone but then you’re responsible for checking your GV inbox for incoming texts.

Customization

Google Voice allows you to create special voicemail greetings based on groups you set up or for individual contacts (based on the incoming phone number).  Cell phone providers like AT&T have features like this but they tack on a large monthly fee to cover this.  It’s nice being able to have family and friends get an informal greeting whereas my standard greeting is more business-like.

Convenience

Ultimately, Google Voice is something I am going to take full advantage of.  I am a software consultant and frequently have to give clients a phone number to contact me after hours.  I do not like giving my personal cell phone number out simply because my employer does not reimburse me for the expense nor is that time truly billable to the client.  I have an extension at my employer that is in itself virtual.  Up until this point, that extension rang my cell phone.  It was nice being able to give out an extension number instead of my cell, but again my cell voicemail took the calls.  I don’t want to have to leave a professional greeting on my cell phone.  Now, I can associate the outgoing phone number at work with a professional greeting and the callers won’t know they’re calling outside of work.

Also, I do not have a guarantee of having cell phone coverage nor a desk phone when I’m at a client.  Google Voice hooks into Gizmo5, a Skype-type service.  This means that if I have outside Internet access, my Google Voice number can also dial my computer as well as my other phones.  GV also can initiate a call for  you, forward the call to your Gizmo5 SIP number – essentially giving you free outgoing calls.

Is it worth it?

Yes.  Be advised, you’re putting call history, voicemail, and SMS in the hands of a third party.  I’m okay with this since AT&T already logs my SMS messages and has the capability to pull call records and voicemails.  Its really no different.  Get on the waiting list!!

Thoughts on the iPhone 3GS

Everyone is giving their two cents about the iPhone 3GS.  I’m excited to see that Apple is releasing a faster phone that still feels like the first generation iPhone.  Developers are used to a specific screen size for instance.  Drastically changing the environment will create the discord other cell phone manufacturers feel when it comes to 3rd party applications.

I do suspect, however, that next year will bring drastic change to the iPhone.  Apple is still getting to where they really wanted the 1st generation iPhone to be.  They realized that its easy to make their own hardware and software, but its hard when dealing with so many third parties.  Cell phone carriers like AT&T stand in the way of real progress.  Why doesn’t Apple follow suit with Virgin and create their own private label cell phone company?  I suspect that would give them a lot more flexibility in pricing and give them the ability to put whatever carrier they want behind the name.

Overall, I am happy with AT&T at the moment.  I am pissed to hear MMS and tethering won’t be available this coming week for the iPhone 3.0 launch.  I refuse to pay any more money for something that I can get for free by putting my SIM card into an OLDER phone.  Silly AT&T, you’re the death of the iPhone in the US.

Loading a UIImage from a bundle

I’ve been scratching my freaking head for an hour trying to figure out how to load an image from my application’s bundle.  Doing this in Interface Builder is easy as pie, but not so straightforward.

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@”thefilename” ofType:@”jpg”]];

Easy, isn’t it?

Google App Engine & Java

So I’ve spent a few days going over Google App Engine for Java.  So far, I have to say, I’m impressed.  Google has created a really cool service that lets anyone write a Java web application and host it on their multitude of servers.  This is all for free, I might add.  You have to be aware of a number of limitations including no threading and you’re limited to their data store for persistence.  Once you get over that, you’ll see the advantage of it:

  1. Reliability
  2. Durability
  3. Security
  4. Scalability

So I got a little overwhelmed with the “ity” words, but it’s very appropriate.  App Engine for Java will take the “cloud” by storm, I think.  I have been looking for a Java web host and am always discouraged by the price and the limitation on memory and disk space.  With Google, you can get a decently sized application running for free and they provide all the nuts & bolts.

Nice, Google.  Computing in the cloud isn’t such a farce as I thought it was.

Page 29 of 30

Powered by WordPress & Theme by Anders Norén