Archives For
Development Processes

I just realized that I haven’t posted anything since Jan 17. Yep, that’s 3 months ago. Where did the time go? No excuse. Time to get back in the saddle.

Interestingly enough, what I have to say today is very close to what I said on Jan 17. I’m getting to upgrade Terracotta to 3.2.1 tonight for a client. Also with 3.2.1 comes Ehcache 2.0. The upgrade from 1.7 to 2.0 was fairly painless. To me, the coolest feature with 2.0 is write-through and write-behind caching with the CacheWriter. Unfortunately, we really didn’t have a good place in the application to use write-behind yet. However, I’ve got a couple of other ideas where it can be used, so I’m really looking forward to putting it to use.

I also signed up to get access to the Terracotta Cloud Tools. Within an hour, I had 4 instances of Terracotta running with 8 Jetty instances all running on an Amazon EC2 cluster. Wow. Let me say it again. Wow. Now my head is spinning on what I can build to leverage this. I’m also looking at doing the same thing on a “private” cloud running Eucalyptus. I do a lot of work with PCI, so using Amazon (or any other cloud providers) is still pretty much out of the question, but Eucalyptus is a great solution.

I’ve also been working a lot with Titanium Mobile from Appcelerator for iPhone and Android development. Until version 1.0 came out, it was not really what I looking for. However, once 1.0 GA dropped, I quickly realized that it was a force to be reckoned with. I was able to port about 90% of an existing iPhone application using Titanium in about 3 days. (It’s the last 10% that’s always the pain.) Titanium is definitely a great tool for quickly creating an iPhone app. I’m looking forward to creating a completely new app where I have little to no knowledge of the business and see how quickly I can create the app as compared to doing everything completely in native Objective C.

That brings up an interesting point. In Apple’s new TOS for OS 4, it appears that Titanium and other similar tools could be in question, at least for Apple platforms. To that I say, ok, that stinks, but for everything that I get with Titanium for Android and soon Blackberry, I really don’t care. If I have to write in native Objective C, I really don’t care. I’ve already taken the dive and learned the language, so I’m counting Titanium as another tool in the toolbox. Plus, if I wanted to get into cross platform desktop development for Windows, Mac and Linux, it’s available as well from Titanium as well in the same package.

I will state that I am a paying member of the Titanium Professional Edition at $199/month. For how long? For as long as I’m using the tool. I’m sure a number of the guys (especially the Android guys) are getting tired of seeing me open up support requests 🙂

Finally, for anyone in the Charlotte area, this coming Tuesday (and the 3rd Tuesday of every month) is the Charlotte iPhone Developers Meetup at the Ballantyne Panera at 7:00pm. If you are a developer or someone that wants to learn how to develop for the iPhone, iPod Touch and now, the iPad (no, I haven’t purchased one yet, but soon), come on out. There’s no cost for the meeting, but show some props for Panera and at least get a drink and one (or two) of their cookies.

This past week, Sean Cribbs presented “Story-Driven Development with Cucumber” at the Charlotte Ruby User Group. I’m still trying to get the hang of Ruby, but I have to admit, there are a lot of cool tools around the Ruby community, and Cucumber is no different.

Here are a couple of items that I gleaned from the talk:

miscommunication == waste

focus of SDD is stay lean and create value

if you haven’t reached the answer in 5 whys, there’s no value in the process

I’m looking forward to spending some time with Cucumber. I think it will help with some upcoming projects.

One of the tools that Sean talked about is called Lowdown, an online app to create, edit and discuss feature stories. Based on a demo that he gave of Lowdown, I’m looking forward to trying it out to write some of the stories.

One of the other apps I’ve been reviewing is Plone. I’m trying to find an open source content management system to replace an existing system for a client. However, there are a couple of requirements:

you must be able to bundle together assets and publish them in a bucket, not just a one-by-one edit and deploy

there needs to be a workflow to publish from a development environment to a QA environment to a staging environment to finally a production environment

I had looked at Lenya, but it doesn’t appear to cover these 2 requirements. So far, I think I can make Plone work, but I can tell it’s going to take some work to get the workflow setup the way that I need it. There is an extension call EnSimpleStaging, but it’s still not exactly what I need. I hope to spend some more time with it this week. If anyone has any suggestions on how to implement my requirements with Plone or with any other CMS, please contact me.

Finally on the tech side, I signed up with a developer (free) edition with RightScale. I haven’t had time to really start working with it yet, but that’s on the list for this week. I’ve got a couple of projects that I want to try out, so I think RightScale is going to help me build out a couple of cloud options with both Amazon and Rackspace. That’s where it appears that RightScale really makes it easy to mitigate your risk with just one cloud provider. Yeah, I know. I need to feel the pain of setting up some EC2 instances by hand. However, I’ve got too many other things going on, so RightScale is going to be my shortcut for now.

Here are a handful of tweets that I rung my bell recently:

Jeff Atwood
“it’s better to be safe than sorry” is such crap. You know what’s better than being safe? Being AWESOME.

It’s been a couple of weeks since I last posted. No excuses, just didn’t do it.

Lenya got back burnered, but it’s coming back out again next week. I’ve had a number of very interesting and cool quick projects with a client that precluded me from working on the Lenya implementation. I’m really excited about attacking this new project.

MongoDB 1.2.0 came out on Thursday. I’m looking at using MongoDB for a couple of different use cases over the next couple of weeks. I did stumble across the log4mongo project, a log4j appender for MongoDB, which will come in very handy for some of the logging that I’m wanting to do. I’m really looking forward to seeing how fast I’ll be able to stuff data into MongoDB. More importantly, I want to see how easy it’s going to be to query the store. It’s primarily going to be used for auditing type data, so it’s really important to be able to query it really easy. Hopefully I’ll be able to talk more about it in the next couple of weeks.

I installed Ganglia to monitor one of my client’s clusters. I’m not using it the way it’s intended, because I’m sticking servers of all types into the cluster. However, it gives a good high level view of all the servers of the “cluster.” So far, it’s working out well, but I would like to be able to break it up and use it more for how it was designed. Either way, I’m loving all the charts that it produces. It’s really helping in making some decisions on what some of the next steps for hardware should be.

On the iPhone front, I’ve started integrating the ZXing project to a couple of applications. This is the first time I’ve used the camera for processing barcodes and I have to admit, it’s pretty sharp. I’ll also be working at integrating the same library with a couple of Android apps in the near future as well. There are a couple of commercial iPhone barcode libraries, but for now the pricing is the holdup. If ZXing works good enough and the new feature gets enough traction, it may be worth the $$$$$ to purchase one of the commercial libraries.

I’m also considering switching from Pinch Media to Google Analytics for some of my iPhone analytics needs. I’m currently using Flurry and Pinch Media and I like both of them really well. I need to do a little more research to see if I really want to make the switch or not. If anyone has any experience or pros and cons, please leave them in the comments below.

I’m still reading Ship It and hope to have it completed this weekend. Manning had a special on Wednesday on Algorithms of the Intelligent Web. After a quick glance, I realized that a quick glance wasn’t going to cut it. Fortunately, the deal was the hard copy and a PDF for $20 plus shipping, so I’m looking forward to getting the hard copy so I can start marking it up. That’s all I need…some light reading over the holidays.

The 2010 Search Exchange Conference and Expo is May 17-19, 2010 in Charlotte, NC. I don’t profess to know tons about SEO or web analytics, but I do know how to tell the difference between the BS artists and the good guys. The guys putting on this conference are the good guys. Take a look at the site and if you think it’s something you would want to attend, consider signing up before January 1, 2010. That’s when the early bird registration ends.

Finally, probably most of you saw the Muppets version of Bohemian Rhapsody. If not, here it is:

Now, that’s cool, but IMHO this is cooler…maybe. Most of you reading this probably aren’t old enough to remember the Star Wars Holiday Special way back from 1978. This is for you.

This week, I updated my Roku HD‘s firmware. I’ve known for a while it was coming, but for it to come during Thanksgiving week was an extra special surprise. The first two channels I added: Revision3 and TWIT. First show that I watched: Tekzilla. I’m looking forward to spending more time digging through the new channels and getting more value out of my Roku box. Still think it was the best $99 I’ve ever spent.

I also installed and configured Lenya, the open source content management system. I have a client that is starting to look at some options for replacing their existing CMS. One of the core requirements is that there has to have a workflow process. Many of the CMS options that I’ve researched do not have good workflow options. If anyone has any other open source options that they would like for me to consider, please enter them in the comments sections below. The client is also considering commercial options, but if we can find an open source option that will fulfill the requirements, so much the better.

One of the other requirements is that the CMS has to integrate with Active Directory for authentication. Since Lenya said they had AD integration, I figured it would drop right in. Unfortunately, it did not, but pretty darn close. The way the AD tree is setup, I had to modify the LDAPUser to search the subtree. Out of the box, the way the searchSubtree option is set wasn’t working for me. However, that was pretty much it. Fortunately, I had integrated with the AD before with CAS a couple of years ago, so I was able translate the old config options to match what Lenya needed in ldap.properties. If anyone would like more details about how I did this, let me know in the comments and I will write up a more detailed blog post.

I had to upgrade a CentOS 5 server to PHP 5.3.1. The install worked great once I found a yum repo (remi) that had everything that I needed. However, once the yum update completed, that’s when the real work began. Fortunately, there was only one semi-major issue that I found. PHP 5.3 needs the date.timezone ini entry setting in order to not see warnings. I was seeing errors in some custom code and WordPress. Once I added the date.timezone value to my php.ini and restarted Apache, everything started working fine and clean.

Headed into December, I’m looking forward to finishing up a lot of reading from the purchases that I made from PragProg the other week. I’m about halfway through Ship It! I’ve been really impressed with the level of quality of the Kindle (.mobi) versions of the books. A number of non-Amazon .mobi files that I have purchased in the past were really bad. Again, the Pragmatic guys have moved the bar higher.

If you have any questions or requests, put them in the comments section below.

I’ve been working with one of my clients to get another website live, which happened successfully last weekend. I spent a good part of the last couple of weeks creating the go live checklist and going through a couple of dry runs before the actual go live. Of course, everything went without a hitch from my side.

What’s your takeaway? If you want an uneventful launch (if you don’t, maybe you don’t need to be doing this), spend some quality time creating a go live checklist. Then, take that checklist and do a dry run, updating the list with items you may have missed. Wash, rinse and repeat until you feel like you have everything covered. Then, on the day you go live, update the checklist with anything that you may have missed or gotten out of order. That way when you do your next go live, you’ll have a starting point to create a new checklist. I’ve been following this method for a number of years and the only time I’ve had issues is when I didn’t follow this formula to the letter.

This weekend, I’ve got a number of projects to work through…initial port of a very successful iPhone app as an Android app, do some testing of the pre-alpha version of Terrastore, install MongoDB and figure out a way to quickly and efficiently load ~10GB of unstructured data in under 3 minutes and finally spend some time giving serious consideration to Appcelerator Titanium for iPhone and Android development for a couple of client’s mobile applications.

The other big thing that I’m working my way through right now is upgrading a client’s app to support Terracotta 3.1.1 from 3.0.1. Normally, that wouldn’t be a big deal, but we had used the Spring elements in the 3.0.1 config and that is no longer supported in 3.1.1. However, it hasn’t been too bad, but there are still a couple of sticking points I’m working through. Based on what I have seen so far in the conversion, I absolutely *love* the Ehcache visualizations that are provided in the developer console. It should help considerably in tracking hot and cold caches. We’ve written some monitor scripts to know this data, but it was only at a Tomcat (L1) level. Now, we’ll see how it’s getting hit as Terracotta sees it. So far, very cool.

Here’s my horror story for the week. The short story, a long time ago, I had an AdWords account shutdown by Google for not having quality landing pages. (That’s another story unto itself.) This past week, I tried to purchase a subscription using Google Checkout using the credit card that was associated with my disabled Adwords account. I was able to place the order, but my card was declined. I called my card issuer and they said they were not seeing any charges coming through from Google. Then, I startd emailing Google Checkout for more info. After about 5 days, they replied with some generic verbiage. I replied to that email and I got back a much higher quality email stating that I should contact Google Adwords to see what they could do on their side. Now, I’m stuck in that email pit. If your payment doesn’t process in 7 days with Google Checkout, they cancel your order. This is really a pain not only for me, but for the publisher I’m trying to give money to. Hopefully this is resolved soon. It’s hard to believe that there is not a phone number that I can call to try to move this through a little faster, but I understand why they don’t do it. At this point, I won’t be using Google Checkout anymore, which is sort of a bummer because I really like it. I’ll let you know what happens once it is resolved.

If you are looking at Android development, you really need to get a CommonsWare Warescription from Mark Murphy. What’s a Warescription you may ask? It gives you access to all of Mark’s books and all the associated updates for 1 full year. The price? $35.00. As of today, that means 3…count them…3 books on Android development. It also gives you access to Mark’s “office hours” where you can chat with him using Campfire. I haven’t taken advantage of the chat yet, but after this weekend, there’s a really good chance I will. If you are even a little interested in Android development, you need to head over to Mark’s site at http://commonsware.com/Android/ (Note: I pay for my Warescription of of my own pocket and I’m not getting anything in return for this glowing review 🙂 Are you happy FTC? )

Finally, I’m still trying to figure out my LOTY (language of the year) to learn for 2010. I guess Objective C turned into my 18 month language, so I really need to get on the ball and make my decision. I’ve narrowed it down to Scala and Clojure. There is going to be a Pragmatic Studio Clojure Training in Reston in March which looks like it might be the bomb. It’s being conducted by the the guy that created the language (Rich Hickey) and the guy that wrote the book on it (Stuart Halloway). I saw Stuart at the RTP No Fluff conference this year and was very impressed.

I’m also going to be going heads down with Android development in 2010, along with keeping up my ObjC and Java development.

2010 is shaping up to be another brain twisting year and I’m really looking forward to it.

If you have any questions or comments about anything I blogged about today, please leave a comment below.

It’s been one of those kinds of weeks. I’ve been working on implementing a LinkedBlockingQueue for a project and things were not working as expected. Unfortunately, I forget the simplest of rules for LBQs: there is a lock on the head and a lock on the tail. I was processing the queue using a Timer in Spring and was calling queue.take(). However, when I would look at the log, I would only see a handful of entries saying the take was happening then it would appear to stop.

That was my fatal mistake.

If I would have read the not-so-fine print on for the API on take(), I would have seen:

“Retrieves and removes the head of this queue, waiting if necessary until an element becomes available.”

It wasn’t that processing was stopping, it was that it was waiting for something to hit the queue.

My next step is to hook the queue up into Terracotta and make it cluster-aware so I have failover in case one of the nodes goes down. Should be smooth sailing from here. At least I hope so 🙂

I’m starting the design and coding for an Android version of a best-selling iPhone financial app this week. I’m really looking forward to going heads down and knocking this out.

I’m also looking forward to the release of the Droid phone this week. However, I’ll let someone else be the first on the block to get one. I’m still in love with my iPhone, but hopefully AT&T’s coverage will be starting to rival Verizon’s or I’ll be defecting once my contract is up.

I’m also considering switching from my current home phone and internet provider to Clear. They are launching in Charlotte this week and their pricing is *much* more attractive than Time Warner. However, I’m hoping to get an eval unit for a couple of hours to check out coverage at the house. Hopefully I can give you more info on this over coming weeks. I’ve been happy with Time Warner, but they have been the only game in town where I live, so I’m hoping Clear will give us a good 2nd option.

Finally, my update on Windows 7. Even though I’m a Mac fanboy, I have to say that I am freakin’ impressed by Windows 7. I did a clean install of Windows 7 Pro 64 bit last weekend on a low end Dell Studio (can’t run XP compat mode) and from time of insert of DVD to running Win7 was under 20 minutes. I can’t get any Linux or Mac installs to go that fast. I was highly impressed. Then, I used Ninite Easy PC Setup and Multiple App Installer to install the normal stack of Windows apps that I use (Chrome, Firefox, Skype, etc). Man, what an amazing little app. It only took a few minutes and 80% of the apps I use were installed in almost one click.

My overall impression with Win7 is pleasantly surprised. I’m still sticking with Mac OS X for now, but I really like what I see with Win7 and at this point I wouldn’t think twice about switching over if I needed to.

If you have any iPhone, Android or Terracotta questions you need answered, leave a comment below.

This week, I dipped my toes into the NoSQL world. Currently, I’m evaluating MongoDB for a project. It’s amazing that people are thinking this is new and revolutionary. I was doing this stuff in the late 80s with PICK, Universe, UniData, Revelation and a number of other “post-relational” databases. Back then, it was all green (or amber) VT100 screens. That, I don’t miss one bit. With Mongo, I can use a native Java client, which is a huge plus. I’m hoping to have a prototype done in the next couple of weeks. I’ll let you know how it turns out.

One of the biggest pieces of news from the iPhone front this week was Apple is now allowing in-app purchases inside of free applications. To me, this is probably one of the biggest pieces of news for the year. After building free and paid versions of an app for a client, I see how much of a pain it is to do. However, I think there will still be legitimate cases where you want free and paid versions of an app. Looking forward to trying this one out soon as well.

I’ve spent the past couple of weeks localizing an iPhone app into French. Through that process, I’ve decided that my new process for writing applications will be to localize in the initial stages of development. It doesn’t take an extra time and it actually makes my code look a lot cleaner by extracting all the app copy to a file. Why didn’t I think of this before? Forest for the trees.

This past Monday, I attended SocialFresh in Charlotte. I typically don’t spend a lot of time in the social media space, but a number of my clients are wanting to “get started” in the social media space. For me and my company, it makes sense to learn the basics and then pull in the smart people when I need them.

There were a number of very good sessions, but there was one on Twitter (how can you have a social media conference without making verbal love to Twitter? ) and there was a statement made that transcends all aspects of life:

Experience does not equate to expertise

How true is that statement in your surroundings? I’ve known a number of good people that have been writing code for years but could not code their way out of a paper bag that was used to hold a fresh hot Philly cheesesteak.

Why is that? In my opinion, it’s the hero complex.

You know the type of person. Everyone in upper management loves this person. These people can never do any wrong. They are considered indispensable. They are consistently pulling all-nighters and fixing things right up until the last second before a major release, but they always pull it out, even if it take a couple of weeks of another team cleaning up after this person.

Why is this?

Because they have a lot of experience, but not a lot of expertise. They know enough to not be very dangerous but not enough to do a competent job without causing a lot of stress to themselves and the others around them.

Many of the speakers at NFJS Raleigh also echoed this sentiment. Is this a harsh statement? Yeah, it probably is. However, if this person is allowed to continue in this manner, this will affect the productivity of the team and in return damage the bottom line. People will get grumpy. How do I know this?

I’ve played the hero role a few times during my career.

In retrospect, it’s probably one of the most detrimental things that can be done to a team. Hopefully I’ll never go back down that road again. If I do and you’re on a team with me, please let me know so I can jerk the slack out of myself.

Onto the NFJS wrapup, one word…wow. I’ve never been to a NFJS event before. It was really nice to be at a conference where there wasn’t verbal vomit from vendors. There were a few speakers there that were from vendors, but that’s not why they were there. They were really giving out some serious content that was worth much more than I paid.

This should keep me busy this week along with all the other client work that has to be completed. I’m also starting work with an open source project this week and hopefully I’ll be able to give you more info on it later in the week.

As always, I’m looking for any questions that you have about iPhone development. I’ll be starting the video production later this week and the videos will be posted over at the corporate blog.

I’m going to try to make this blog a little more personal and the corporate blog really technical. If you want to read both, you’ll get a very interesting insight into who I really am.

Ok…that’s not really an original line, but stick with me. Hopefully it will make sense as I move through this.

Here’s the attempt at “Lines”

Remember last week I was whining about all the WordPress upgrades I had to do the previous week? There was yet another one this week (2.8.4) and it was an interesting one. If this is going to keep up, I’m going to have to spend some time automating my upgrades to save more time. Here to hoping that this week is WordPress upgrade free.

On to the “nerds”

Big Nerds, that is.

I attended the Big Nerd Ranch iPhone Bootcamp earlier this year. (As a side note, if you want quality training on anything Mac, go with these guys. Plus, if you take the class in Atlanta, you’ll thank me for it. It’s a great location and the food is freaking amazing.) Joe Conway was my instructor. Recently, Joe posted on the BNR blog about dot-notation syntax. That post has set off a a firestorm of posts across the web. His boss/co-worker Aaron Hillegass, shocked by the reaction to Joe’s post, has started a series of “Real iPhone Crap.” Here are links to the latest posts:

It’s going to be interesting to see how all this plays out. I will admit, BNR was my first exposure to Mac/iPhone training, so I am a bit biased. No matter what anyone says, I’m grateful to the BNR crew for helping me move ahead in my iPhone development.

And now on to the bears…Smart Bear Software

I was listening to the new episode of techZING! entitled Smarter Than Your Average Bear. This episode was an interview with Jason Cohen of Smart Bear Software fame about bootstrapping your business. Being a small business owner myself, I always enjoy hearing how other people solved their business problems. If you own your own business, no matter what kind of business it is, you owe it to yourself (and your family and your employees) to listen to and apply the lessons that Jason shares throughout the podcast.

One of the items that Jason brought up was in marketing your business. In his case, he really did write the book on code reviews.

Until I listened to the podcast, I forgot that I already had a copy of the book. At the time I ordered the book, I was looking at implementing a formal code review process with a client, so when I saw the book and that it was free, I got a copy and read it. Once I got to the end of the book, Jason (rightfully so) gave a small pitch for the Smart Bear solutions. Did I think that the pitch was too much? Absolutely not. In fact, for as much information as Jason had put into the book, I would have been totally ok with a harder pitch.

What’s the lesson I’ve learned? I’ve got to “write the book” in order to stand out in my chosen field. Whether I literally write the book doesn’t really matter to me. However, I really have to start promoting my solutions and services and I can’t think of a better way that the way that Smart Bear has done it. It fits my personality a lot better.

One of the things I’m really looking forward to is on 8/25, Techsmith is releasing Camtasia for the Mac. I don’t know how many features this version will have out of the gate, but I’m not expecting to see the same feature set as is on the Windows version. I just don’t think that is realistic for version 1. With that said, they’ll definitely be getting my $99 on 8/25 and I’m looking forward to putting it through it’s paces as quickly as possible. I’ve got ScreenFlow for the Mac, but I’m really comfortable with Camtasia on Windows. If Techsmith even gets it close, I will be saying sayanora to ScreenFlow for my Mac captures.

One of the best articles that I read this week was 13 scalability best practices. As someone who spends the majority of my time trying to architect the most scalable solutions for his clients that don’t have unlimited budgets, this list really helped put in order everything that I’ve been doing as second nature for so long. When I read it, it was one of those duh moments and I asked myself “why didn’t I write this myself?”

For all you mobile developers or anyone interested in mobile development that are anywhere near the Charlotte area, there is going to be a MobileBarCamp in Charlotte in October. It is still in the early planning stages and I should have more information next week and I’ll post it as soon as I do.

Finally, I’m heading up to Raleigh in a couple of weeks for the Research Triangle Software Symposium put on by NFJS. This is the first NFJS conference that I’ve been to so I’m really looking forward to it.

The other thing I’m looking forward to is seeing my sister and her family. They live about 20 minutes from the conference. We don’t get to see each other nearly enough. I’ve gotta work on that. Sometimes you just have to step away from the code.

Happy Anniversary to me! In the past week, I’ve had 2 major anniversaries in my life:

20 years of marriage

1 year since purchasing my first MacBook Pro

I love my Mac, I love my wife more. (and the small voice in my head says, “right answer”)

Speaking of the MBP, OS X 10.5.8 was released this week. It’s the last expected major release before Snow Leopard comes out in September. I installed it on Wednesday and everything has been fine with no hiccups. Hopefully it will stay that way.

When I purchased my 17″ MBP last year, it was just a few weeks before the unibody models were released. I’ve had the opportunity to play with some unibody models and I’m tossed on whether I will upgrade or not. I like them, but primarily for the memory capacity (8GB vs 4GB that I have now) and not really for anything else. 4GB has served me well and I’ll probably hold out for at least another year before upgrading hardware.

The other thing I don’t like about the unibody is no full size DVI out. I live on 2 monitors, but if I had to use a dongle, I would.

Snow Leopard is a whole other story. I’m tossed right now whether or not I’m going to upgrade. For $29, it’s a no brainer. However, my MBP is my business (minus my accounting software and screen capture/editing software which still runs on Windows), so I really can’t afford any downtime.

I’m considering upgrading my harddrive (currently I have a 250GB 5400rpm) and then doing a clean install of Snow Leopard. To me, that seems to be the best option right now and would be an “easy” weekend project and I could still pop the old drive back in if there are any issues. I’ll just have to wait and see. Question is will it void my warranty? That’s what I need to find out at my local Apple store.

<bunnytrail>

But not this weekend.

Why?

It’s sale tax free weekend in North Carolina. Last year, I went to the Apple store in Charlotte and the lines were nuts. Fortunately, one of the Apple folks gave me a heads up that I could just order through their online store and they would take care of the sales tax adjustment. Since I was custom building my MBP anyway, I went with a friend down the food court and enjoyed lunch instead of standing in line for nothing.

I’ll put in writing what I’ve told people. The *only* reason I switched to a Mac was to do iPhone development. I was already using Cygwin and mostly open source software for development on the PC platform, so I had a good and robust toolset configured.

Honestly, I still do all my audio and video editing on the PC because that’s the software that I have. iMovie is a pain, but it works in a pinch. I’ve got Audacity on the MBP and it’s been fine, but it’s rare that I use it. I guess at some point, I’ll need to cut all that stuff over to the MBP, but until I have to, there’s no reason to. I turned my old Dell 810 into a rocking A/V machine, so for now, it does all the heavy A/V work and my MBP all about development.

</bunnytrail>

Along with OS X 10.5.8 coming out this week, Apple also release iPhone OS 3.0.1 which fixes a SMS vulnerability. I was holding off on upgrading from 2.2.1 because I wanted a device with the old OS for development purposes (Cut, Copy and Paste just aren’t that cool to me). However, once I read some of the coverage from Black Hat/DEFCON this week on how quickly a reporter’s phone was pwned, I decided to go ahead and upgrade. So far, everything is working good, but a few of my apps are showing some issues that I’m trying to figure how to fix. Hopefully those will be buttoned up next week.

If you are doing iPhone development and have already installed 3.0.1 like I have, you will have some issues building to the device. Login to your Apple developer account and look at the documented titled “iPhone OS 3.0.1 Advisory.” That will give you the instructions on how to get around this issue.

The last big patch of the week that caused extra work for me this week is WordPress 2.8.3. I had just finished patching to 2.8.1 and 2.8.2 and then 2.8.3 came out right after that. I don’t have that many WordPress installations that I maintain, but just enough to keep me busy for a while to get everything upgraded. I typically install using the Subversion method, but I’ve been doing the upgrades inside the app. I think I need to write a script on every server that I’m on to do the upgrades using Subversion as well. That would probably save me a lot of time. I’ll just have to test it and see.

One other CMS I’ve been maintaining is Joomla. They have been coming out fast and furious with security releases recently. I’ve recently picked up the maintenance gig of a Joomla site that was hacked. I’ve played with Joomla in the past, but now I see that’s it’s a cool piece of software. It’s not typically the type of work that I do, but it does help me be versed in multiple options when people ask me what they should do.

One of the first things that I did was to download the OWASP Joomla Vulnerability Scanner. It helped me find a couple of other issues I was able to lock down. I love OWASP. I use a lot of their products and methodologies on a daily basis for client work.

I wish I had more time in the day to devote to penetration and vulnerability testing. That’s fun work to do.

On the lighter side, I’ve put in my order for the Blu-ray edition of Battlestar Galactica. I didn’t watch the series when it was in production, so having ~20 Blu-ray discs to watch should keep me busy for a while. In the meantime, I’m really into Warehouse 13 on Syfy.

If only Chuck and Warehouse 13 would do a crossover episode. They are part of the same family of companies. It could happen. (One could only hope.)

As I’ve talked about in the past few weeks, one of my client’s iPhone apps went live this week. It’s called KeyMABA and it’s little brother KeyMABA Lite. If you have an iPhone or iPod Touch, check it out.

Finally, Twitter was down after a DoS attack on Thursday without even a failwhale in sight.

Did your life continue while Twitter was down?

Mine did.

I’m still putting together my iPhone development course, so if you have anything you would like to see in it, send me a note.