This is great:
the topic of which platform is best for development is as relevant as the topic of which motorbike is the best (Harley or Japanese) to a dolphin.
- comment on Douchebaggery
I know I said "the choice of best platform [...] can make a real difference", but ultimately Windows XP + Cygwin are usable tools. Sure, a Mac is nicer and a Linux box is more free (libre), but you can get your job done in any of them. And if you can't, you should consider learning transferable skills and not just specific toolchains.
Ultimately DHH's greatest achievement is not Rails, nor talking up the Mac, but simply getting the world to talk about him and pay attention. It's like the newspaper article that makes you shout "WTF? That's wrong! I must write a letter to the editor demanding they represent my opinion!" - ultimately, if they've engaged you and elicited an opinion or reaction, starting a conversation, they've done their job. You know you're going to buy that newspaper for the next week, until they print a retraction ... they know they've just sold one more week of dead trees.
There is no such thing as bad publicity ...
Technorati Tags: apple, branding, community, cygwin, debate, linux, mac, microsoft, ruby on rails, software, windows
Sometimes I find my access to the outside world blocked by over-zealous firewalls and proxies, most often when using hotel or free WiFi. Unfortunately, it's not normally possible to restart a broken website or monitor a server's load through just a web browser, and these are times when only an SSH connection to the outside world will do. And so it's necessary to find a way round the proxies.
I've found a pretty good solution to this, that works well on at least Windows and Macs: corkscrew.
I'll document how to use it here, just in case I'm not the last person on earth to figure this out. Note that I don't recommend or condone doing this to avoid corporate internet access restrictions: there may be very good reasons for unauthorised access to be blocked. That said, here's what you need to do.
Set up your server
You need to make a configuration change to at least one of the servers you want to reach on the outside: reconfiguring the SSH daemon to run on port 443, the default port for secure web connections. You're using port 443 because most web proxies allow certain types of traffic through on that port, which we can exploit to our advantage.
You can reconfigure your ssh daemon by editing your /etc/ssh/sshd_config and changing the port number from 22 to 443.
Be aware that this will break default ssh sessions to that server. You can no longer type 'ssh foo@my.server.com', you'll now have to type 'ssh -p443 foo@my.server.com'. If you want to continue to use port 22, add another port line, so your config should now read something like:
# What ports, IPs and protocols we listen for
Port 22
Port 443
Reload the sshd configuration (/etc/init.d/ssh reload on Debian-like systems), and test connecting to it on port 443 from outside the proxy.
Remember that port 443 is the default port for secure web connections (https://), so you might want to find another solution if you're already hosting or planning to host secure websites.
Set up your local machine
You need to install and configure corkscrew. If you're on Windows, this is best done using corkscrew in cygwin. If you're on the Mac, there's a corkscrew Darwin Port available.
Create an authentication credentials file (just a text file with your proxy username and password, to stop you having to type it each time you connect): ~/.ssh/your_auth_file. It should contain just one line, like this:
username:password
For security, make sure you're the only one that can read this file:
chown go-rwx ~/.ssh/your_auth_file
Next, in your ~/.ssh/config (create the file if it doesn't already exist), add the following to make ssh use corkscrew by default for ssh connections (all one line):
ProxyCommand /usr/bin/corkscrew your.local.proxy port %h %p ~/.ssh/your_auth_file
(Note that you should not do this if you also use ssh to access machines on the network inside the proxy.)
Test
That should be enough - you should now be able to connect to your remote server by typing:
ssh -p443 you@your.ssh.server
Note that you can only connect to servers where the ssh daemon is running on port 443 - but once you've connected to one, you can always connect from there to others...
Technorati Tags: apple, computing, cygwin, debian, howto, linux, mac, macosx, proxies, ubuntu, servers, software, ssh, sysadmin, tips, windows, workaround
My good friend Paul (who has started more new blogs than I've had hot dinners) now has a new new blog: Like so much acronym soup. Nice name, and as you could probably guess, it's focussing on the service oriented architecture side of IT (which some like to refer to as WS-Deathstar, but they can't even get the hang of persisting content, so caveat emptor).
3G. GPRS. SOA. EPF. OpenUP. SCRUM. GA. WPS. SCA. ESB. XSLT. DOM. XML. REST. UDDI. ATOM. HTML. CSS. WAS. Dude, perhaps you should have a glossary for the ingredients of your soup? (For those familiar with the ingredients, that gives you a good taste of the overall flavour of the blog. Hah. I'll stop killing the metaphor now, mmmk?)
Already there's a wealth of interesting articles on there, and I will enjoy watching Paul's gradual journey to enlightenment discovering that SOA is bloatware that legacy SIs use to justify their existence sometimes less is more, and REST hits the sweet spot 99% of the time.
Skepticism aside, It strikes me that some of the things Paul writes about would make an interesting conference (or unconference) session - for example SOA Rules of Engagement, which could just as easily work as Generic Software Project Rules of Engagement. How about it, Paul?
Technorati Tags: blogging, friends, soa, software, web services
I'm working on some particularly dense javascript, and it has really brought home to me the difference between a good text editor and a great text editor.
Eclipse is generally pretty good as an all-round IDE, but when you need to focus on the specifics of just one file, I find it pretty terrible when compared to the defaults found in some editors. Take, for example, this screenshot:
It's okay ... there's some syntax highlighting, but it's pretty minimal. It doesn't really aid my understanding of what's going on in the code. Compare it to this screenshot from what I consider to be a great editor:
... just a little more colour, and the code springs to life in TextMate on the Mac. It's a shame I'm confined to a Windows box during working hours at the moment. The choice of best platform and best tools for a particular task can make a real difference to the effectiveness of any developer.
Technorati Tags: apple, computing, development, eclipse, IDE, mac, macosx, software, windows
Yesterday I finally got a chance to spend some time with Hudson, and I have to say I'm very impressed. It's the first time I've been able to set up a continuous integration solution in less than 5 minutes. And that's including multiple projects. Probably the simplest out of the box experience ever, Hudson is well worth a look if you need to monitor the health of your project builds.
There's a few things I'd like to see added: support for multiple properties files for different deployment scenarios (almost there in Matrix builds), and it would be nice to be able to view the list of jobs based on their inter-dependencies. But these are minor things compared to being able to get projects under CI incredibly quickly. Now there's really no excuse for software developers not to use CI, even if it's only on their local machines.
Technorati Tags: computing, development, java, open source, software, sustainability
It's rare that open source events happen right on my doorstep, but since I'm in Brussels and just a couple of miles away from the venue, I'll be going to FOSDEM this year.
It's probably a good time to mention also that the Friday beer event takes place just round the corner from an excellent restaurant serving the best quiches ever, and some amazing tarts too. It's always full, but it's worth waiting in the queue for a few minutes as the food is excellent. "Arcadi" café , just 52 seconds from the beer.
Technorati Tags: belgium, brussels, floss, food, open source, fosdem, restaurants, review
If you happen to use iTunes and are, like me, foolish enough to trust it to manage all your music for you, it might be worth doing a health check and a bit of spring cleaning.
I've been using iTunes for at least four years (the earliest file in my library claims to date from July 2005, but that's probably just the date I learnt how to do non-destructive migrations), and have let iTunes to handle where and how it stores the music files I've collected. I noticed the other day that I'm using rather more disk space than I should, since I'm back to just 15gb free even though I've upgraded the hard disk of my Macbook Pro.
A quick check revealed that one of the big disk hogs is my iTunes collection, weighing in at around 50gb. However, iTunes itself reports that I have just 38gb of music, so somewhere around 12gb is being wasted - or, put another way, almost 10% of my hard disk.
A quick search in the command line gives some indication of what is going wrong:
find ~/Music/iTunes -name *\ 1.* |wc -l
1852
... for some reason, my music collection has lots of duplicates. For example, my copy of Moby's "Play" includes 7 bonus tracks:
05 Southside 1.m4a
06 Rushing 1.m4a
10 7 1.m4a
11 Run On 1.m4a
12 Down Slow 1.m4a
15 Inside 1.m4a
16 Guitar Flute and String 1.m4a
I'm now doing a long and tedious trawl through my collection to remove these bogus tracks, though if anyone knows of a tool that will compare my iTunes library with the actual files on disk, I'd love to hear of it.
Technorati Tags: apple, mac, macosx, music, osx, itunes, software
I kept getting an error about the maven-archetype-plugin whenever I tried to create a new application using maven 2. It turns out part of my local maven repository must have become corrupted or failed to download properly. It was solved by deleting .m2/repository/org/apache/maven and allowing maven to download all the required dependencies again.
So, this is for google (and for me, the next time it happens).
Technorati Tags: apache, development, open source, maven, software
I guess my recent dopplr update now makes a little more sense: Gianugo's off to London. All change!
Technorati Tags: belgium, brussels, europe, life, london, sourcesense, uk
The sad flip-side of Apple's "It Just Works" is that when it doesn't, don't expect any explanations why.
This is a good example of that. Time Machine is failing, but with no meaningful description of what is wrong.
Looking in the logs, the only other error I get is a typically Mac one:
15/02/2008 05:05:38 /System/Library/CoreServices/backupd[1912] Copy stage failed with error:11
15/02/2008 05:05:39 /System/Library/CoreServices/backupd[1912] Backup failed with error: 11
... great. Back to SuperDuper! it is, then.
Technorati Tags: apple, computing, failure, leopard, macosx, osx, software