Subscribe to feed
Blog | About

Archive for March, 2008

Firefox3

I finally grabbed the latest beta (beta 4) of Firefox3 and absolutely love it. The downsides are that many extensions are not yet setup to work and there are rendering differences. I fixed a half dozen visual problems today primarily related to button input widths and absolute positioning of iframes.

Overall though that doesn’t matter because the fixes were minor, the important extensions are ready to go, and the new browser is fantastic. My personal list of observations includes:

  • It looks fantastic and like a true OSX application.
  • The rendering speed is incredible, I no longer have any reason to run Safari given that it no longer has the advantage here.
  • The memory issues appear to have been resolved. I generally never shut down my browser and would only kill Firefox in the past because of the rolling memory leak that would eventually consume my machine.
  • I love the way that alerts (such as whether to remember credentials for a login form) are now a slick pop-in div that does not interrupt or delay your browsing. They used to fire up in abrasive popups.
  • Bookmarks are beefed up in several nice ways, though I use delicious so not massively useful.

Here is the new default look of the toolbar area. I really like it.


ff3.png

So the new browser is great, but it does have some rendering differences and it is still beta so at the moment having both the beta FF3 and the stable FF2 installed is a great idea. Here is what I did to set it up where both are installed and can run at the same time. I am assuming you currently have FF2 and are adding FF3 and also assuming you have never messed with your Firefox profiles before.

  • Make sure Firefox isn’t running.
  • Rename your existing Firefox application to Firefox2.
  • Open a terminal and run /Applications/Firefox2.app/Contents/MacOS/firefox --profilemanager.
  • Rename the default profile to Firefox3 (this is preference, feel free to skip or name it whatever you want).
  • Create a new profile named Firefox2
  • Download the Firefox3 .dmg from here.
  • Mount the .dmg and copy it into your Applications folder.
  • Rename the new Firefox application you just copied over to Firefox3. Renaming this is mostly so spotlight searches and dock mouseovers can be differentiated.
  • Create a file named firefox2.sh in /Applications/Firefox2.app/Contents/MacOS/firefox2.sh with this content.
    #!/bin/bash
    FFDIR=`dirname "$0"`
    cd "${FFDIR}"
    ./firefox-bin -P Firefox2 -no-remote "$@"

    • I had to use FFDIR to make it work, needed the absolute path.
    • The -P argument tells firefox to run with the Firefox2 profile created in the previous steps.
  • Modify /Applications/Firefox2.app/Contents/Info.plist. Look for the key CFBundleExecutable and change the string value from firefox-bin to firefox2.sh
  • In my case, OSX had cached the contents of my Info.plist file somewhere and it ignored my modifications to it. To make it see my change I had to drag Firefox2 out to another location (I used the desktop) and then back into the Applications folder. I was going nuts trying to find out why my Info.plist file was being ignored and this fixed it.
  • You should be able to run both version at the same time now. Firefox2 will use your custom script and pull the Firefox2 profile and Firefox3 will use the default profile (Firefox3).

As a final note, when you fire up Firefox3 it will appear that Firebug doesn’t run on the new browser. This is not the case, you can install the 1.1 version which will work with the Firefox3 betas at getfirebug.com.Home improvement loan missouri
Consolidation loan loan private student
Guaranteed loan personal
No equity home loan
Company loan student
Losartan
0 interest rate credit card
Neurontin
Trifluoperazine
bad credit personal loan company
credit equifax online report
Dilaudid
Norgestrel
uk credit card
Buspar
Terbinafine
Phenelzine
California home equity mortgage loan
Home equity loan company
Pentasa
bad credit motorcycle loan
Naloxone
experian credit report
florida bad credit mortgage
free credit report from equifax
Indinavir
auto loan for people with bad credit
Idarubicin
Bad credit guaranteed home loan
Triamterene
personal loan for people with bad credit
Consolidation federal loan program student
Refinancing and home improvement loan
Debt consolidation home mortgage loan
Home improvement mortgage loan
bad credit cell phone
Home equity loan line of credit
Consolidation credit debt loan
Coumarin
Amitriptyline
Get Mosquito Ringtones
Metharbital
.com credit free report
Methyldopa
Idoxuridine
Free Music Ringtones For Cingular Phone
Equity florida home loan refinancing
bad credit loan uk
Personal bank loan
Consolidation federal government loan student
Pyrimethamine
Direct government student loan
christian credit card counseling
Equity home loan mortgage second xxasdf
Citibank student loan consolidation
Bad credit personal loan canada
Maryland home equity loan
Cardizem
Strattera
capital card credit one service
Canadian international loan program student
credit identity online report theft
Diflucan
Iodipamide
best card credit rate secured
Rizatriptan
card consolidation credit debt free
credit card fraud
student credit card online
punishment for credit card fraud
Tussionex
merrick bank credit card
Azithromycin
credit score chart
Synthroid
Consolidation credit debt repair
Consolidation credit debt

Comments (3)

Intel Raid Fun

One of the first machines we setup at the office was an Exchange server built from parts. As anyone at the office knows, I absolutely hate Exchange and one day that last Windows Server box in the company will be gone and replaced with Zimbra or something else.

The machine uses an Intel D945PSN desktop board with a fake raid raid1 across 2 Samsung SP2504C drives and runs Windows Server 2003. The fake raid is managed through either a chunk of software accessible at boot time with CTRL-I or through the Intel Matrix Storage Console once booted into Windows.

It ran nicely for 2ish years but then about 2 weeks ago one of the disks in the raid1 failed. I had a heck of a time replacing that drive and wanted to share what worked and what didn’t here. The process was complicated by the fact that it was our single Exchange server and managed all corporate email so I couldn’t be as adventurous with getting it back in order.

Things That Didn’t Work

First off, the replacement drives I ordered didn’t work as straight up simple replacements and are the source of all the difficulty. They were firmware VT100-52 and the older original drives were VT100-33. The newer drives were 100 MB smaller and thus the Intel Matrix software would not let me rebuild on to them. So we had 1 232.9 GB drive and a new 232.8 GB drive.

Next, I purchased BootItNG (which ended up being crucial to this task overall) and tried resizing the NTFS partition of the existing drive. After doing this and booting Windows back up the Intel Matrix software still saw the old drive as 232.9 GB so this didn’t work either.

Calling Intel for support did not work. They refused to assist over the phone with a “chipset issue”, and over e-mail they refused to assist because I was running Server 2003 on the desktop board and apparently this wasn’t supported. Despite my response of “The OS is not the problem, I need help with the Intel raid” and creating a new ticket where I lied and said I was using XP they never responded to me again.

Calling Samsung for support did not work. Their website did not have anything useful for this model number hard drive. I called them multiple times seeking a way to downgrade the newer drives or upgrade the older drives in terms of firmware. Eventually they had me call some Far East Services company in New Jersey whose phone system was busted (they couldn’t hear me - tried from multiple lines) and whose website was offline. I unleashing an email to some common emails (info/admin/support/technical) hoping to get a hit and despite ‘admin’ going through I got no response. I finally got Samsung to connect me to them on some other number but they then told me they only handled exchanges and Samsung would handle any firmware issues. So no luck there.

What Did Work

So I did finally get things working, and here was the sequence that worked. By no means am I guaranteeing this will work for you, proceed as your own risk. In short you must disable the existing raid volume, copy the data from your remaining original disk to the new smaller disk, then boot back into Windows and create a new raid volume.

  • Go buy the BootItNG / Image For Windows combo pack or something that can accomplish the same things. It is only $50 for the combo.
  • Image your drive and back it up to another machine. The odds of something going wrong are high enough.
  • Shut off the machine and remove the dead hard drive.
  • Boot the machine and use CTRL-I to access the Matrix ROM software.
  • Reset your remaining disk to Non-Raid.

    • At this point the software will issue stern warnings and tell you it will destroy ALL data on the drive being reset. I took a gamble based off forum chatter and it turns out this was not the case FOR ME (but who knows whether it ever is true). All it did was remove the disk from the fake raid controller’s knowledge and it makes the previously mirrored drive standalone and bootable outside of the raid array.
    • If you omit this step and try to boot off of the mirrored drive while it is still in the raid volume it will not work.
  • Now reboot your machine and make sure everything is happy. Windows should boot, and if you check the Intel Matrix software once booted it will now show your single drive as Non-Raid. At this point you are running on your single original disk and not using any raid volume.
  • Power off your machine and insert your new 100 MB smaller hard drive.
  • Boot the machine up with the BootItNG CD inserted.
  • Copy the contents of the original drive to the new drive using BootItNG’s copy/paste metaphor.
  • Power off your machine and remove your old disk.
  • Boot the machine back up and make sure it gets all the way into Windows. We are now running on a single new disk of the smaller size. After the boot Windows will likely want to do a CHKDSK, this is fine, just let it do its thing.
  • Power off the machine again and either insert the original 100 MB larger drive or another new drive and boot it back up with BootItNG.
  • Delete anything on the disk you just inserted, we are preparing it for usage as the second disk in a raid 1 mirror.
  • Finally, reboot again this time into Windows. It may tell you that new hardware has been detected and want to reboot AGAIN. Just let it if this is the case. Dang Windows and its constant restarts.
  • Once in Windows, in the Intel Matrix software you want to select “Create a raid volume from existing Data”.
  • Select the new drive that you copied your old data over to (that Windows booted off of) as the source, and the empty 2nd disk as the target.
  • It will crank for awhile, but you should be in good shape now. Your machine can keep running and working while the raid creation is completing.

Summary

  • All of this hassle was due to a 100 MB discrepancy in disk size. Buying bigger disks (300GB+) to make sure they exceeded the size of the originals would have worked as well and it would have been easier but that meant wasted disks, wasted space, and missing an opportunity to tinker for me.
  • In raid both the model number and firmware of the drives is extremely important due to different firmwares of the same model number having varying amounts of available space.
  • Buy backup drives when you buy the machine and the firmware isn’t going to be a problem.
  • BootItNG is a handy program that is worth its modest price.
  • Fake raid kind’ve sucks and should never be explored as an option for performance purposes. Only raid for redundancy makes any sense with it.

Comments (2)

Never Buy Vista Licenses (At Least Not Through Vista)

We have a few Vista licenses at the office, primarily for use as VMs (though that is unnecessary now). With a new person starting last week we needed to setup a new machine and decided to install Vista on a free desktop. The OS couldn’t be activated because the registration was already in use (as a VM) and I didn’t feel like walking down the street to buy another copy. Thankfully, there appeared to be an option to purchase a new license online and activate the OS all right there from the newly setup machine. It has been a really lame experience, and I’d recommend anyone that might consider the option avoid it.

First, we had to provide our used license key. After several failed inputs with nothing useful in the validation error message, we figured out that both the case and the dashes mattered in the alphanumeric string. This is awfully stupid, they could have at least adjusted it in Javascript (writing key.replace(”-”,”").toLowerCase() is HARD).

Secondly, the interface was pretty rough and the site appeared to be running on a used toaster. Constant refreshing and retrying was required to get all page elements to load and all form posts to go through.

Finally, when the order is done, and you can’t undo it, you are told that a key will be sent in 2 business days. How in the world could it possibly take 2 business days to email a string of text? Dell can build and ship a 3U disk array in about the same time. It didn’t matter because at this point it was too late, I couldn’t undo the order, and I was about to leave for a weekend bachelor beach trip so I just didn’t care. This was on Thursday.

Monday rolls around, no key, so I send a message along the lines of:

I am curious as to the hold up on my order.

The order number is ABCXYZ4712 and the order was placed on the morning of last Thursday. When I login to check the status it says “Issue with Order” but does not tell me what the issue is or how to resolve it. I also was never sent any message letting me know there was an issue with the order.

Does it really take this long to purchase a string of alphanumeric characters?

An auto response arrives letting me know they will respond within 1 full business day. The next day, no sign of a key or a response to my email so I send another along the lines of:

It has been a business day and I have heard nothing. My order is still marked as “Issue with order” and still does not tell me what the issue is. I am beginning to believe no one is even on the other end of this process. Is a human reading these e-mails or taking these orders?

To restate what I sent about already, the order number is ABCXYZ4712. It is a vista license. There is nothing to ship, and I expected the order to take minutes. I placed the order on Thursday of last week and have not received or heard a thing.

I received another auto response letting me know it would be a full business day before they got back to me. As of now I haven’t received a key or a response to either e-mail.

Damn this is frustrating, I don’t even know how to cancel the order. That link just refers you to the same unmanned email account.

I’ll have to dispute the charge on the card tomorrow and be done with it. It is just disappointing that a potentially very helpful and clean process (being able to seamlessly purchase and use more activations when you run out) is such an utter disaster.

Comments

Startup Technology Expenses

One aspect of a software startup that cannot be escaped is money must be spent on technology and development of technology. Whether this is a good or bad thing depends on if you ask the engineer or the accountant. My general rules of thumb are:

  • Purchases that help people do their jobs better or faster are worth paying for.
  • Before spending money on something look for an open source alternative that is cheap or free. Often you will find something better or only slightly inferior to the commercial item.
  • If you are going to spend money on something, the price-to-substance ratio is important.

And now a smattering of thoughts and plugs for each rule of thumb in the context of our company that is full of my personal opinions. I do realize that the earliest days of a startup largely must ignore most of this list. For example, when you don’t have an office yet (and everybody works from their homes) you don’t really worry about getting comfortable chairs, good machines, etc. for that office.

Purchases that help people work

  • Screen real estate is important. I used to think this meant 2 screens but have refined this to mean total resolution. With my macbook pro and spaces I went from using 2 computers and 3 monitors to just 1 laptop and I feel more efficient now. I like to give 2 monitors to any person that wants one - especially engineers, designers, and QA.
  • Good chairs are worth paying for. I’ve worked places in the past that gave their engineers hand me down garage sale garbage to sit on. The nature of a software company means people are going to spend a lot of time sitting and the chairs need to be good enough that people don’t notice them all day (and often longer given the nature of startups). Aerons are great if you can get a deal on them but there are solid options in the $200 - $300. CWC sells better quality furniture at the best price.
  • Don’t skimp on workstation hardware. I personally think the mac path is worth the premium for developers. On a per-item basis the price is virtually equivalent but given Dell’s willingness to haggle and price slash (especially if buying multiple items) a premium does remain. I think it is worth it.

Open Source

  • We use Java and I think it is better than .NET and it is free. You can build it on Windows/Linux/Mac and you can deploy it to all 3 as well. I think PostgreSQL is better than SQL Server (and MySQL). The Microsoft lock in has never made any sense to me and I feel the Java community is a great place in that the number of unqualified engineers is relatively small and it is full of extremely qualified people. Java also scales vertically or horizontally very, very well. It has the whole 10,000 frameworks/libraries to choose from “problem” that .NET does not have but that is okay in my opinion. We went with Spring/Hibernate/DWR and it has worked out great.
  • PostgreSQL is fantastic. The developers are accessible and helpful and the community is strong. We’ve run it up to a 1TB database and it handles it just fine. You obviously have to run it on a reasonable machine as load increases but it scales vertically wonderfully and there are addons for replication. Check out Slony and/or Mammoth Replicator if you need that replication, we haven’t yet. Visit this site for installing Postgres on your local mac workstation.
  • Linux is the way to go for servers. I don’t think the Linux/Dell combo can be beaten on the server side.

Price-to-Substance Ratio - Some Examples

  • IntelliJ IDEA is worth its cost. It is magical and exceeds a plugin-ridden eclipse install for features out of the box and I think the editing experience and source control interaction are superior.
  • Despite stability issues I think the Leopard incremental upgrade to OSX was worth it for productivity overall. Spotlight and Spaces have changed my workflow completely.
  • Dell provides a fantastic ratio here. I would strongly recommend them for server hardware, especially their latest models. Solid architecture, solid raid controllers, RAM, etc. If you go with Dell get in sync with a Small Business team. It will save you money and streamline the process as you get to talk to the same people every time. Their business lines of laptop (Latitude) and desktops (Optiplex) are also solid.
  • Good consultants and contractors are worth their rates for focused, time-constrained assistance. You have to be careful though because there are a large number of unqualified people posing as consultants and contractors that aren’t worth the time it takes to arrange a contract. If you find somebody you can work with and does a good job keep using them as needed.
  • Parallels is worth its very manageable price for providing IE6/IE7 testing to mac-using developers. See this post for help setting up the free VMs provided by Microsoft for doing this testing.
  • FlexBuilder isn’t worth the cost. When I used it a long while back it was $700+ with charting and had marginally more functionality than notepad2. Following that link, it looks like they are pumping Flex 3 now. The fact that Flex 2 has profound issues makes this especially troublesome.
  • Flex Data Services pricing defies all reasoning. $20k per CPU. Same for pretty much any other product that charges per-CPU. If anyone knows of ANY per-CPU product that is worth paying for let me know. I recently priced out a better WYSIWYG editor for portions of our product and they wanted pricing per CPU for a text editor.
  • And finally, I think sharp, qualfied engineers that you can interact with in person in the US are superior to any offshore team. When you consider the time differences, communication barriers, and general lack of quality offshore I believe a 5 man team of people that know what they are doing and work together here could out perform a 50 man team of offshore cube farm drones. I have 3 specific experiences (admittedly not that many) working with offshore teams. 2 ended in utter failure to complete the task, and 1 was bailed out of before it got too far along because even the onshore PM/BA assigned were completely clueless and ineffective. I feel like the offshoring development companies live in an alternative universe where you just keep a neutral look on your face through meetings and shuffle out inferior product making fixes until the customer is too frustrated, tired, or so accustomed to the low quality that they start to believe the software is good and consider the project a “success.”

So there you have a smattering of my thoughts. I expect to elaborate on many of these items in separate posts in the future. You can likely tell by the tones which items I find most interesting and/or alarming.

Comments (2)