Me no speekee webdu :(

Bah. I've been talking to people about plans for a talk at webdu involving magic tricks (and the odd bit of relevant content) and along with that I was going to rebrand my business and get business cards done up in a deck of playing cards to use for magic / business cards / showbag items etc etc, but I received an email the other day saying I haven't been accepted :( so that kinda kills that! There are lots of international speakers coming I guess and I'm probably not famous enough :) Oh well maybe next year - not sure what I'll do about the cards etc but I'll still be at webdu of course - looking forward to a lot of fun stuff.

Time Machine

I officially feel like a numpty. For reasons I won't go into I was absolutely exhausted the other day and made the stupid mistake of trying to repartition my macbook pro and put bootcamp on it. Needless to say i manage to cock up the whole thing and wipe my drive.

To my credit, I only said three bad words.

I hadn't been reconnecting my external hdd as often as I should have been but still I had a number of backups using leopards Time Machine feature - and as it turned out a full system restore was incredibly easy. I just put in my leopard cd, chose to restore a time machine backup and picked the latest date - an hour or two later bob's yer wossname and my system is restored. Add to that the fact that my business email runs through gmail's domain accounts now, I used the "recent:" login feature to get back the last 30 days of my mail ( I had a backup from only 10 days ago anyway) and I've lost almost nothing!

Ok so now I'm going to be regularly keeping my external drive plugged in for backups, but the experience has made me seriously consider getting a timecapsule - it's an external hdd with wireless that can be used for seamless automated time machine backups, which I can imagine might save my bacon some time in the future.

For now I've moved my itunes library and my virtual machines onto the same external hdd so that will make sure I have it plugged in at least a few times a week, and I'll try to get into the habit of always plugging it in when I'm at a desk. In short though, Time Machine is absolutely f'ing brilliant.

The other stupid thing I did was write some blog posts. I wrote a few of them, while away at Philip island on a weekend away without internet connectivity (first time in years - it was... unsettling) I noticed the text file of these bloggages on my desktop today and felt stupid again as I realized I never got around to posting them on the actual blog... I feel a partially connected air app coming on!

Air is 1.0

Back in my hotel room after the Air 1.0 launch. Was a great event, this year is going to be a wonderful time to be a developer, especially in the Adobe space. There was a good turnout but almost none of the cf / flex people i usually see around - shame on you all ;p

If anyone hasn't gotten into air yet give it a shot - it's well worth your time and I think in the next 6 months we're going to see some massive changes in our industry.

Helping Hands

i have made it a point over the years to keep in touch with developers I meet and offer help wherever I can. I'm not great at posting to the mailing lists because I usually get so caught up in what I'm doing that I forget to read them :)

Lots of people ping me during the day (and sometimes night) for help with cf / flex/ javascript / css etc etc, and there are a bunch of people on my list who I have asked for help with the same when I'm having a brain fart or when I'm doing something i've never done before. Some of the people on my list have spent an awful lot of time helping me on occasions, and I always try to return the favour.

The point I'm making is this - network with other developers, stay in touch and reach out when you need help. But more importantly, be ready to help someone out if they ask you a question too - this doesn't mean drop everything you're doing and do their work for them, but if you've got 5 minutes then share it. A lot of people, including experienced developers, don't realize how powerful a tool your network of tech savvy friends can be. I'll be going into more detail about this in my talk at Scotch and (hopefully) WebDU, but I just wanted to throw a quick word out to any who might be listening.

Today I was doing battle with some really appalling actionscript 1 code. I love actionscript 3.... a lovely fellow named Campbell Anderson, who has answered more than a few of my irritating as1 questions lately, has quite patiently helped me through some very weird issues and saved me a lot of time and frustration. I'll be making sure he knows he's appreciated :)

This is one of the great strengths of the cf community, and i'm finding it more and more in flex and flash too. Be generous with your time, and you'll find that when that moment comes when you really are stuck in a hole for whatever reason, you have allies on hand to help you out.

After all, many minds make light work.

Speaking at Scotch on the Rocks

Yup I'll be speaking at Scotch on the Rocks in Edinburgh, Scotland in june. I'm very very excited, and hopefully won't be completely boring - I'm speaking alongside a raft of the top people in our industry so a little intimidating :D Maybe I'll just get drunk before my presentation...

If you're going to Scotch I'll look forward to seeing you there!

Chemists

Anyone out there have any experience with chemistry and/or chemical biology? I have some questions I'd like to ask you if so, so drop me an email, I could use your help :)

Believe it or not it *is* actually on topic too...

For the love of God...

There are lots of little stupid things that irritate me. One of the highest on the list has to be people calling Lego "legos". For God's sake people - the plural of Lego is Lego. There is no such thing as Legos. It's Lego. L-E-G-O dammit!

/rant

Melbourne CFCamp Report

CFCamp in Melbourne was brilliant. It wasn't the greatest turnout but we had a good number of high caliber people there and the talks were excellent.

I particularly liked Peter Bell's talk about DSL's and Software Product Lines - I'll definitely be following up with Peter to learn more about this, as this is exactly where I've been heading.

After the camp a bunch of us went for drinks and I ended up having some very long (and slightly inebriated) discussions with Adam Lehman of Adobe and Peter Bell. Mark Mandel piked early ;) but I got to know Adam and Peter pretty well and had a fantastic evening. Thanks to all who turned up and especially those who spoke and organized the day - it's well worth it, and hopefully we will see more of this sort of thing in the near future.

Finally, a good skype alternative

Skype has been getting worse and worse lately, with outages and constant errors, disconnections and message failures. On top of that, the company's business practices seem to be getting less and less friendly too - fortunately an alternative is now available for those of use who rely heavily on conferencing for business: Gizmo!

http://www.gizmoproject.com/screen-shots.php

I've downloaded this - works beautifully and has some nice little features that skype lacks. Gizmo doesn't have video conferencing, but for me that's less of a concern than a reliable voice conferencing app.

Speaking at Melbourne CFCamp

It looks as though we'll be getting a CFCamp in Melbourne after all, through the efforts of Mark Mandel. The downside is he's conned me into speaking :D I'm giving a half hour talk on "Enterprise development for the rest of us" - basically what it really means to be an enterprise developer and how to ramp up your career and habits to get to that level. And seeing as I'll have a captive audience I might see if I can squeeze in a magic trick or two, so if my talk totally sucks there will at least be some entertainment.

Hope to see lots of people at cfcamp melbourne!

Trac on CentOS

I have seen Trac before but until recently never really used it. In a project I've been working on with Codename:Tuesday we've been using Trac as the central source for bugs / tickets, documentation, UCTs etc. It's a very nice tool, with SVN integration and a ticketing system that has just what you need for development.

I run a server on CentOS and had a little trouble getting my install to work, so I decided to post this guide to getting trac up and running. This setup will allow you multiple instances of trac sites to support different projects. At the time of writing, my server runs CentOS 4.5 final.

This guide assumes all trac instances will exist under /srv/trac and all subversion instances will exist under /srv/svn and assumes you have subversion, apache and python installed.

Before you start, disable SELinux.

Repositories If you don't have them already, add Karanbir Singh's repositories:

Add the gpg key:

Install the prerequisites for Trac:

yum install mod_dav_svn mod_python clearsilver python-clearsilver python-sqlite trac

Add the following to your apache httpd.conf:

# load relevent modules
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule python_module modules/mod_python.so

<VirtualHost *:80>
...
### trac
Alias /trac/ "/srv/trac/"
<Directory "/srv/trac">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

# mod_python speeds things up considerably
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir "/srv/trac"
PythonOption TracUriRoot "/trac"

# authentication
AuthType Digest
AuthName "wiki-server"
AuthDigestDomain /trac
AuthDigestFile "/etc/httpd/conf/digestpw"
Require valid-user
# authorization is handled internally by trac
</Directory>

### subversion
<Location "/svn">
DAV svn
SVNParentPath /srv/svn

Order allow,deny
Allow from all

# authentication
AuthType Digest
AuthName "wiki-server"
AuthDigestDomain /svn
AuthDigestFile "/etc/httpd/conf/digestpw"
Require valid-user

# authorization
AuthzSVNAccessFile "/etc/httpd/conf/svn-auth.ini"
</Location>
</VirtualHost>

Setup your svn instance:

svnadmin create /srv/svn/myproj --fs-type fsfs
chown -R apache /srv/svn/myproj
chmod -R go-rwx /srv/svn/myproj

Run the following commands to create a trac instance (replacing "myproj" with the name of your project):

trac-admin /srv/trac/myproj initenv
chgrp -R apache /srv/trac/myproj
chown -R apache /srv/trac/myproj/{attachments,db,log}
chmod -R o-rwx /srv/trac/myproj

Remove anonymous write access to Trac:

trac-admin /srv/trac/myproj permission remove anonymous TICKET_CREATE TICKET_MODIFY WIKI_CREATE WIKI_MODIFY

add admin user priveledges:

trac-admin /srv/trac/myproj permission add myuser TRAC_ADMIN

setup special privs for other priveledged users

trac-admin /srv/trac/myproj permission add cooluser WIKI_DELETE

tweak everyone's base priveledges:

trac-admin /srv/trac/myproj permission add authenticated \
BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW \
REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW \
TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW \
WIKI_CREATE WIKI_MODIFY WIKI_VIEW

setup svn authorization; create the file /etc/httpd/conf/svn-auth.ini) with the following contents:

[groups]
projectadmins = adminuser1, adminuser2
othercoolfolks = projectuserA, projectuserB, projectuserC

# repository (r = read, w = write, or none)
[myproj:/]
@projectadmins = rw
@othercoolfolks = rw
* = r

[myproj:/admin-only/]
@projectadmins = rw
@othercoolfolks = r

Create the password file and add a password for the admin user:

htdigest -c /etc/httpd/conf/digestpw wiki-server adminuser

Create passwords for any other users:

htdigest /etc/httpd/conf/digestpw wiki-server user

Restart apache, and now you should be able to access your project at http://server/trac/myproj - login with the user and password you just setup and bob's yer wossname.

CAVEAT: you may find when you load the trac page you see "Error: Unsupported File Format". If you do, you need to disable the pdo_sqlite module as it's likely conflicting with the version installed by python. Edit the file /etc/php.d/pdo_sqlite.ini and comment out anything in the file by putting a # symbol at the beginning of each line.

Credits: I got a lot of this from here so many thanks to the original author - I've just modified a little and added more basic instructions.

More Entries