17 Jul
Posted by: Brandon Harper in: A Day In The Life Of, Culture, Tech News
I’ve been on the fence quite awhile about the iPhone. It’s not cheap, it’s grossly over-hyped by a very fanatic fan base who seem to overlook it’s flaws, and while I’m not a terribly flashy person, there seems to be a stigma about those who own one. Those things aside, I finally decided that I’ve pretty much bought into the Mac platform and OS X workflow, and it only makes sense to extend that by replacing my Samsung Blackjack with an iPhone.
The addition of 3G network support, ActiveSync, and GPS pretty much sealed the deal for me, though the price still makes me reel a bit. One of the advantages I saw with owning one is that I would most likely not need to take my laptop with me any longer on non-business trips, which is a pretty big win for me.
If you weren’t willing to camp-out for the new iPhone 3G and want one ASAP, it’s likely you’re in a similar position as me– calling local Apple Stores and AT&T stores everyday to check to see if any have came in. It sounds like at many Apple Store locations, as soon as a shipment comes in, a big line forms and if you’re lucky you might be able to get one. The way that Apple and AT&T have handled this situation is truly awful and unprofessional– none of the people working the floor know when shipments are coming-in, nor is there a way to order an iPhone online, etc.
One option I ended-up opting for was ordering a new iPhone 3G at my local AT&T store through their “direct fulfillment” program. Basically this boils down to you having a direct order from Apple which will eventually arrive at your local AT&T Store, and you don’t get charged for it until it ships. You get a tracking number and a way to check the status, though so far the results don’t look terribly promising. When I ordered mine the wait time before shipment told to me was 5-10 business days, and lately from what I’ve read the current quotes are now at 10-20 business days.
I honestly don’t know how this is going to end-up considering the HUGE thread about this program happening at the AT&T Forums at the moment, but it is keeping me from being obsessed about trying to snag a phone at the retail locations.
One other tip, if you do opt to go this route, you can use this site to get an idea about when your order will arrive based on other orders at the same store. All that you do is enter order ID’s close to the last 5 digits of your Order ID and the zip code of store you ordered from, and browse through the orders at your store to see if other people at your AT&T store have got their orders. It’s kind of hard to describe unless you’ve went through the order process itself, but you can find out more in in this thread.
03 Apr
Posted by: Brandon Harper in: ColdFusion, Tips, Hacks, & Tricks
(Note: I'm cleaning up some old drafts which have been sitting around for awhile.)
A couple of years ago while setting-up a new J2EE server cluster using the Implementing Multitier Hardware Load Balancing with ColdFusion MX for J2EE or JRun article, I needed to setup a proxy filter for ColdFusion requests. Given that the application I was setting up used a context root of /, the proxy rule listed in that article would not work. Instead, thanks to my former co-worker Rod, I now have a regular expression which will redirect all basic requests for ColdFusion:
This regexp works for the following combinations:
And the following requests are not proxied:
Obviously these are just basic test cases, but it should leave all CSS, image, JavaScript, etc. type requests to the webserver, and pass on everything else to the app servers. You would also need to change it to include direct requests for .cfc files if you're doing anything like Flash Remoting, Web Services, etc directly to CFC's.
02 Apr
Posted by: Brandon Harper in: Linux, Operating Systems, Tips, Hacks, & Tricks
Currently, my main workstation at home is a Dell Dimension E520 which primarily runs Ubuntu 7.10, but I also dual boot into Windows XP for my photography hobby. One problem I had after upgrading to Ubuntu 7.10 from the default Ubuntu install which the E520 shipped with was getting sound to work. After trying several solutions in this forum thread, I finally got it working again.
04 Mar
Posted by: Brandon Harper in: ColdFusion, Culture, Disciplines, Django, Frameworks, Java, Languages, Python, Ruby, Ruby On Rails, Software Engineering, Tech News
As both a fan and user of the great technologies Python, and the Sun JVM (primarily via Java),
I was very happy to come across this eWeek article which says that Sun announced the hiring of two key Python engineers. You can read more about the hiring of Ted Leung and Frank Wierzbicki at their respective blogs.
I had pretty much written off Jython as being dead quite some time ago, but luckily it has had a lot of recent activity and is starting to catch back up with C-Python. By both hiring key JRuby and Jython developers, it looks like Sun is making sure the JVM stays relevant beyond Java and continues to evolve as what in my opinion is the best option for cross-platform applications.
Having a long background in ColdFusion (an Adobe language which compiles down to Java bytecode and runs on the JVM), I've seen first hand the benefits of moving a language to the JVM, and I look forward to seeing more progress on both JRuby and Jython on the JVM.
26 Feb
Posted by: Brandon Harper in: Apache HTTPD, Apache Tomcat, Culture, FreeBSD, JBoss, Linux, MySQL, OS X, Operating Systems, PostgreSQL, Servers, Tips, Hacks, & Tricks, Windows
This is just a quick entry on how to see which software is using which ports. This comes in handy when trying to install an application server, web server, etc, and are getting errors like "port is in use".
Basically in any Unix type derivative such as Linux such (Ubuntu, RedHat, SuSe, etc.), as well as Mac OS X, all that you need to type this at the command line:
I remember there being a couple of commands in Windows which you could do this with, but it's been so long since I've used Windows on a regular basis I honestly don't remember how to do it. I do know you can use TCPView to accomplish the same thing, however.
18 Feb
Posted by: Brandon Harper in: Culture, Firefox, Tips, Hacks, & Tricks, Tools
It seems like for at least a couple of years now, I've had problems when trying to login to newegg.com with Firefox. Across different installs of Firefox, on Windows, OS X, and Linux, etc.. no matter what I tried, Firefox just didn't work at all. Today after my typical google search session, I did find a couple of solutions which took quite awhile to track down. If you're having problems logging into to Newegg, give these a try:
Easy solution:
In the address bar of Firefox, type:
Search or scroll down to the section called "network.http.sendRefererHeader" and change this value to 1.
For some reason, this was set to 2 on my machine.
Annoying solution:
Something is probably corrupt in your Firefox profile. Given that you're the type of person who shops at newegg, AND uses firefox, you can probably figure out how to create a new profile on your own.
Anyhow, give those a try and see if they work. It's nice to be able to shop on Newegg again with Firefox!
Oof. The site was offline for a good 30 hours or so. I attempted to add a Ruby On Rails install to FastCGI for a family related project I've been working on and my server totally exploded.. even the file system became unreadable. It reminded me a lot of a 'buildworld' upgrade gone awry on FreeBSD. I think the Debian VPS image was so out of date that it ate itself trying to process all of the updates. Since that happened I decided to move to a shiny new Futurehosting Ubuntu VPS which is bigger/better/faster (1 GB of RAM now, previously 512 MB) and I can already tell that this machine is much faster than the past.
After having to learn a lot of MySQL DBA magic to repair some very broken databases in my backup, get DNS, Apache, MySQL, and all of that other sort of junk setup again, the site is finally back up with no data loss much to my surprise.
I'll be working on getting my other sites back online as well as upgrading/updating everything, and hardening this server a bit more, so if you see any blips over the next few days that's why.
30 Jan
Posted by: Brandon Harper in: A Day In The Life Of, Culture, Frameworks, Hibernate, JBoss, Java, Languages, Maven, Servers, Spring, Tips, Hacks, & Tricks, Tools
I'm going to skip over a rant about how much Axis2 sucks in order to pass a tip on how to include Axis2 artifacts (AAR's, MAR's, etc) into an EAR file using the Maven plugin to package EAR files, maven-ear-plugin. It's a pretty obvious solution but if you're in a hurry like I've been to convert a project from a single WAR to one with several EJB's, a WAR, etc, there are a lot of new things to learn all at the same time (how classloading works with EAR's in JBoss, how to share the same Hibernate transactions between your web app and EJB's, etc), and this was one of those little things which wasn't immediately obvious. If you're seeing exceptions like these when trying to package an EAR in Maven:
... you've came to the right place.
There are many ways to setup your package structure under Maven2 to build EAR's, but essentially what I do is create a root level project which packages a given application into an EAR, and nothing more. Once you have the maven-ear-plugin setup for the most part, all that you need to do is to tell the Maven EAR Plugin to treat the various Axis2 pieces of shit packages like JAR's:
This is just one of many gotcha's I learned about while working on an aforementioned project. In fact it's really pretty hard to find any comprehensive documentation on getting EJB3, Spring, and Hibernate working together on JBoss with a typical Java web application, especially while using Maven. I have a sample project I used to work through some of the integration issues with this, and will hopefully be able to wrap it up and add it to Google Code in the next few weeks to provide an example of getting all of these technologies to play together.
14 Dec
Posted by: Brandon Harper in: Culture, Java, Languages, OS X, Operating Systems, Tech News
UPDATE: I was up too late, and didn't notice that it's update 6 for Java, not Java 6. This is just another update for Java 5... *sigh*
I've been up pretty late doing a little work and tying-up some last minute Christmas shopping, and out of the blue this Apple update window popped-up:

I'm super glad to finally see an Apple release of Java 6! I've been developing with SoyLatte lately and was going to write a quick tutorial on how to get it up and running on MacOS X, so I guess I don't necessarily need to do that now. Although given Apple's secrecy about Java releases and the future of Java on MacOS X, it certainly doesn't hurt to have an alternative around.
I'm still on Tiger-- I assume Leopard users are seeing this update too?
06 Dec
Posted by: Brandon Harper in: Disciplines, Java, Languages, OS X, Operating Systems, Software Engineering, Tech News, Tips, Hacks, & Tricks
For those many of you (including myself) who have been waiting almost a year now for Java 6 to be properly supported on the Mac, the wait is over if you're a developer-- Landon Fuller has released SoyLatte 1.0, which is a port of FreeBSD Java 6 to MacOS X which will eventually end-up as part of the OpenJDK. This seemed to come together very quickly once Leopard came-out and was missing Java 6.
Though Java 6 didn't provide quite as much new syntactic sugar as Java 5, the performance increases in Java 6 are pretty dramatic. I highly recommend giving Java 6 a look if you're doing any development which runs on the JVM if you haven't already switched.
Keep in mind that this is mostly a developers port as it's not yet integrated into Cocoa, the MacOS X native GUI. Desktop applications will run under X11, but this is the next hurdle to tackle (though it seems to be a pretty big one).