Major Downtime
The server migration to a new data center last night went horribly wrong when the new IP didn’t (and still doesn’t) have a reverse DNS lookup. Sadly that means the secondary DNS where all the actual requests go to refused to pull the updates and the site was effectively down.
I think I’ve managed to sort out the DNS issues for all the domains hosted here now by making one of the secondary DNS’s the primary DNS and generally juggling things around. This is probably a smarter set up anyway so I’ll probably leave it this way in future. Still, annoying….
Back In The UK
Arrived safely in the UK early this morning with no hassles from customs thanks to my shiny new visa. Somewhat ironically I also got my first serendipitous travel event from Drupal:
The problem of course being that this was my reminder to change my home location from Brisbane to London so I actually miss Andrew by a week. Never mind, he’s heading over here next anyway.
No More IMAP For GMail?
I woke up this morning to discover that I can no longer access my GMail account (using Google apps for your domain) via IMAP. It just returns an error saying that IMAP is not enabled for your account. The IMAP option has even disappeared from the web interface, now only allowing you to enable POP access. The same is true for a second Google Apps for your domain account that work uses.
Fixing VPN On A NetGear FVS124G
Symptoms
- You have a NetGear FVS124G router providing VPN.
- You use IPSecuritas to let Mac users log into that VPN.
- VPN has worked in the past.
- VPN is no longer working and you haven’t changed any settings (in our case there was a power outage and the modem configuration didn’t come back as expected initially then was fixed so all the settings were the same as they used to be).
- In the IPSecuritas log you get a message stating “inappropriate sadb message passed.” and Phase 1 never actually connects (thus Phase 2 times out because of a lack of Phase 1 connection).
Solution
- Log into the admin interface of the NetGear router and go to Management->Settings Backup.
- Click “Back Up” and save the backed up settings file to your local hard drive.
- Under “Restore saved settings from file” click “Choose file…” and select the file you just downloaded.
- Click Restore.
If you’re having the same problem I was, your VPN will now work.
Estimates Are Hard But Important
I had a very interesting conversation with our product manager yesterday centred around ensuring the development team is always working on the highest value functionality for our clients (and thus the business). One of the key messages I took away from the conversation was the distinction between estimates of cost for development work and estimates of value.
So what exactly do I mean by cost and value? Cost is generally fairly simple to measure, it’s the amount you have to pay for the resources used to actually develop a function. That includes developer time, office space for those developers, hardware and software etc etc. There’s a lot involved to get an accurate assessment of the cost but it’s fairly straight forward to measure it as you spend. Just ask accounts for the figures. It only gets difficult once you start taking into account opportunity cost which is generally ignored anyway.
Auto-Save And Feeling Safe
I’ve recently noticed that having auto-save functionality no longer makes me feel “safe”. Previously, if a program automatically saved every 5 minutes or so I was completely confident that I could never lose more than 5 minutes work which seemed good enough. Now however, I want more than auto-save, I want version history.
If I can’t go back and find a previous version then I can’t be confident that the next time I save it won’t corrupt things and I’ll lose everything. Odd really.
Simple Apps And Livelihoods
Daniel Jalkut has an interesting piece on the perception people have that simple software should be free. It’s a perception that I actually share – it annoys me when people ask for money in exchange for really simple applications. It’s not that I don’t appreciate the effort that goes into software, it’s just that I’m a make the world a better place kind of guy. I believe simple things, which cost effectively nothing to reproduce, should be released for free on the basis that you both give and take from such a system.
Firewall To Split A Subnet
We’ve found a cheap little NetGear router that can roughly load balance and fail-over between our two internet connections to hopefully get a little bit more speed. Of course, the simplest thing to do is to set it up so that from the inside it looks just like the old modem and then on the WAN side set it up to look like a client using that old modem as it’s router. Of course, that means that the inside and outside of the router are in the same subnet (192.168.0.0) in this case and the new router’s internal IP is also the IP of the WAN router it forwards on to.
ComponentOrientation and Right To Left Languages
For some time, we’ve had an Arabic translation in EditLive! and the editor pane itself fully supports bidirectional text, but we’ve never updated the UI to flip over to a mirror image when a right to left language is in use. Java actually has pretty reasonable support for this via the ComponentOrientation property in AWT (and inherited through to Swing) but there are a couple of annoying limitations:
- It applies on a per component basis, so there isn’t a single place you can apply the orientation and be done with it.
- Various components still don’t flip, eg JSplitPane.
- The Aqua L&F on OS X has some annoying bugs when in right to left mode.
For the first issue, you can use applyComponentOrientation which will automatically traverse the component hierarchy and make the changes but it still misses things like combo box renderers, dialogs or components that are generated later. For an application that loads its UI incrementally instead of blocking the swing thread while it loads in one go this is a significant annoyance. Even beyond that, all the dialogs need to be updated as well. While it is good that you can override the orientation on a per-component basis, it seems more intelligent to have a simple way to change the default value in one place without all the work.
iPhone SDK
So the iPhone roadmap looks very promising. The enterprise functionality is really impressive and places the iPhone extremely well as a mobile device for corporations. The SDK has a lot of power and seems to have access to pretty much everything you’d need (there’s already an SDK for access to the dock connector). Even things like instant messaging and VOIP will be allowed, though obviously the carriers don’t want to deal with all the traffic from VOIP so it’s just wireless but that seems quite reasonable to me. I’m not sure I’d want to try VOIP over an edge network anyway…
Doable vs Shippable
All the hubbub about flash support on the iPhone highlights an interesting “gotcha” that many people fall into: there’s a world of difference between having something running and having something you can actually ship. The funny thing about software development is that it is generally much quicker and easier to solve all the “hard” problems and create the software you need than it is to polish off all the little loose ends that turn code into an actual product. It’s also surprising how many ideas that sound really good on paper turn out to actually make things worse.
Time Zones Are Hard (Apparently)
You know if there’s one thing more confusing and less documented in programming than character set encodings, it has to be time zones. For example, here’s the package tracking log for my new monitor:
read more |