Xcode SCM & build directory

Uncategorized No Comments »

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

Uncategorized No Comments »

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

Uncategorized 2 Comments »

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

Uncategorized No Comments »

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

Uncategorized 3 Comments »

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

Uncategorized No Comments »

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.

Microsoft WCF Web Services & Java

Uncategorized No Comments »

I spent a good 50+ hours on trying to consume a Microsoft WCF secure web service with a Java solution.  I tried Spring Web Services, Axis2, and looked at Metro/Tango and decided Axis2 was the “easiest” solution.  The web service I’m connecting to implements WS-Security, WS-SecureConversation, WS-Policy, WS-Trust and WS-Addressing (at least) and it’s provided through a .NET 3.5 WCF endpoint.

It doesn’t work.

Axis2 can’t handle SpNego which is a WCF closed protocol allowing two WCF machines to negotiate the credentials between them.  The client has spent way too much money paying me to continue to figure out a Java solution, so I wrote a .NET 3.5 C# client.  Took me literally five lines of code and it’s working.  That’s great for .NET developers but a whole lotta horse shit for the rest of the world.  I’m hoping Axis2′s Rampart module is updated to play nice with WS-SecureConversation and a .NET WCF web service.  Until then, I’m using the .NET client to download the data and I’m storing the SOAP body into a database table.  On the Java side, I’m still using JAXB2 to unmarshall the data into Java objects and process it through our existing persistence framework.

Go me!

When YOU are on the Internet

Uncategorized No Comments »

I’ve never been one to give a shit about what of “me” is online.  I have blog(s), am on Twitter and many other social networking services.  Up until now, I’ve pretty much said my mind and didn’t care about the audience.  I made a judgment call error a while back on Twitter, and now I’m correcting the issue.

The question comes to be, how does one split yourself from your professional life online from your personal life?  To be honest, it’s fairly difficult if not impossible if you’re trying to keep your identity at all the same between the two.  For instance, I originally signed up with Twitter to broadcast things to my friends.  A friend of mine got interested as well, and we started following each other.  Then, I started working for the same employer and soon coworkers found my profile through my friend.  I have always tried to keep some level of anonymity but when my real picture was plastered on my twitter profile, it was hard to hide the fact it was me.

4000 updates later on Twitter, I’ve realized I can’t just say what I want any more.  See this article about a consulting firm of FedEx became angered when someone they were paying to help them made defaming remarks of the shit hole city they’re based in.

So now, I’ve gone private on Twitter, removed a number of followers I don’t know, and have returned to using it as a communication tool with people close to me.  No more bitching at the free world, no more possibly embarassing myself.  It sucks it had to come to this, but I need to realize I’m representing more than just myself online.  Since I’m associated with my coworkers, I’m therefore a voice for my employer.

Getting Macs to play with Ubuntu

Uncategorized No Comments »

I’m a fan of Unix operating systems in general.  That’s what got me interested in switching to Mac OS X because it’s Unix-based.  It was inevitable that I would eventually get a server-class machine again that wasn’t Mac-based.  The new Dell machine that I have running has Ubuntu 8.10 – a Debian-based machine which is something I’m new too.

I wanted to set up the Ubuntu machine to share files with the Macs on my network but not by using the crappy Samba protocol or even NFS.  I know both are troublesome and not as speedy on a Mac.  My only other choice was to get AFP working on the Ubuntu server and to my delight, packages exist for this.  Netatalk is an Appletalk daemon and Avahi is a Bonjour zeroconf equivalent.  Installing those packages and starting the services didn’t do it for me.  Leopard was having issues with the cleartext passwords being passed to AFPD so I went nowhere.

I did some digging and realized that OpenSSL isn’t GNU and therefore support for it in netatalk isn’t compiled in.  Not being super familar with how Debian packaging works, I looked for a guide to help me with recompiling and installing the updated netatalk package.

I found it and boy it’s an awesome guide.

http://www.kremalicious.com/2008/06/ubuntu-as-mac-file-server-and-time-machine-volume/

Take a look, try it out.  It worked perfectly me for on Ubuntu Intrepid Ibex (8.10).

Top 25 Most Dangerous Programming Errors

Uncategorized 1 Comment »

The SANS Institute released a report on the top 25 most dangerous programming errors in the industry on January 12th, 2009.  Items such as SQL injection, Cross-Site-Scripting problems and input validation top the list.  The issue brought up isn’t necessarily the errors themselves but rather the education of programmers and software engineers to be aware of the problems and include testing to find them.  Most programmers coming out of college today aren’t specifically taught what is considered a bad programming error.  Becoming familiar with the list and learning more about the errors you don’t understand will make you a better and safer programmer.

http://www.sans.org/top25errors/

This isn’t a static list – it can and will be updated periodically over time.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in