Archive for July, 2007

conGRADUATIONs

Thursday, July 26th, 2007

Yes, that is right – I have graduated!

I graduated on Monday, but have been sooooooo busy working on the facebook application: Blog Friends that I have not had time to post!

It was a great experience seeing all my friends go up and graduate (and myself of course), though I found it nerve wracking at the start of the ceremony as I had not had time to fully read the graduation website telling me what I should be doing – and to make matters worse, I was seated right at the bottom corner of the students seating area (there was a larger seating area for family & friends) – nearer than any student to the centre of the graduation hall! This made me think that it was likely that I would be first, and I was worried I would do something wrong, what with not having anyone to follow! Fortunately, the people at the very back of the hall were the first to graduate so I did not have to lead whilst knowing nothing of what I was meant to be doing!

The queues to get photos of me in graduation gear were pretty long, but after queuing for 30 minutes or so, we went to the party where there was enough food for everyone to have a whole meal! (I was expecting just nibbles and champagne!) I ate well and enjoyed their desserts whilst talking to my fellow students and some lecturers. It was a good evening. By the time I got home I was exhausted, so just curled up on the sofa with Jem and watched a horror movie :-).

Chapter 3 – Life

I think that graduation marked the end of a chapter of my life – Education. It seems so long ago that I started infant school (in fact I barely remember it at all – just the recurring dream of myself being able to fly like a leaf… but let’s not go into that… [it seemed so real!]) – and it is amazing to think that I have been being educated formally for more than the last three quarters of my life! Thats partly why I thought, upon graduating:

Today, I am an adult

It is worth noting that although I have finished education, I have not finished learning (as many people love to point out, over and over again…). Nope, I will be learning new things every day of my life! That is especially true with my job – where staying up with the forefront of internet technology is extremely important!

Anyway I have lots left to do by this weekend, so I had best get back to work! I will try and start posting more frequently, starting in a couple of weeks or so… Have fun, all!

Bookmark and Share

Blog Friends reaches 100 users!

Wednesday, July 18th, 2007

Less than 24 hours after release, Blog Friends has reached 100 users!

Blognation have done a review of Blog Friends here.

If you haven’t already, why not read my previous article: Blog Friends RELEASED!

Bookmark and Share

Blog Friends RELEASED!

Tuesday, July 17th, 2007

Brain Bakery Ltd. have been working for the last two weeks on a facebook application called Blog Friends, and finally it has been released! I have been logging the hours I spent on the project and it appears that in the last 14 days I have worked the equivalent of almost 4 standard 40-hour weeks – and that’s just me, the others at Brain Bakery have also worked quite a bit! Thats pretty hardcore, I think, so I will be chilling out a bit now…

Anyway – if you have a blog, and you would like your friends blog posts filtered for you according to a list of your interests/dislikes, why not give Blog Friends a try? If you have problems with the software, please leave a comment or email me and I will get back to you ASAP. Also, if you have suggestions for version two, feel free to post them here, though Blog Friends has absolutely loads of features in the pipeline…

Hope you enjoy it!

Bookmark and Share

MX440 tv-out howto xorg.conf

Sunday, July 15th, 2007

I was just helping my father-in-law-to-be to install MythTV on his old computer to run through his TV. It took quite a while to get the computer (with an AGP MX440) to get running under ubuntu through the TV, but we did it in the end. Read on for details.

Here is the XOrg config file:

Section "Files"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
Load "bitmap"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "vbe"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "uk"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/input/wacom"
Option "Type" "stylus"
Option "ForceDevice" "ISDV4" # Tablet PC ONLY
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "eraser"
Option "Device" "/dev/input/wacom"
Option "Type" "eraser"
Option "ForceDevice" "ISDV4" # Tablet PC ONLY
EndSection

Section "InputDevice"
Driver "wacom"
Identifier "cursor"
Option "Device" "/dev/input/wacom"
Option "Type" "cursor"
Option "ForceDevice" "ISDV4" # Tablet PC ONLY
EndSection

Section "Device"
Identifier "MX440"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "UseFBDev" "true"
Option "TwinView" "True"
Option "TwinViewOrientation" "Clone"
Option "ConnectedMonitor" "CRT,TV"
Option "SecondMonitorHorizSync" "30-50"
Option "SecondMonitorVertRefresh" "60"
#Option "MetaModes" "1280×1024, 640×480; 1024×768, 640×480; 800×600, 640×480; 640×480, 640×480;"
Option "MetaModes" "800×600,800×600;"
Option "TVStandard" "PAL-I"
Option "Xinerama" "0"
# Option "UseInt10Module" "true"

EndSection

Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-38
VertRefresh 43-72
EndSection

Section "Screen"
Identifier "Default Screen"
Device "MX440"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "800×600" "640×480"
EndSubSection
SubSection "Display"
Depth 4
Modes "800×600" "640×480"
EndSubSection
SubSection "Display"
Depth 8
Modes "800×600" "640×480"
EndSubSection
SubSection "Display"
Depth 15
Modes "800×600" "640×480"
EndSubSection
SubSection "Display"
Depth 16
Modes "800×600" "640×480"
EndSubSection
SubSection "Display"
Depth 24
Modes "800×600" "640×480"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "stylus" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
EndSection

Section "DRI"
Mode 0666
EndSection

Not quite sure why but I had to disable the int10 thing. Ubuntu seems to have a bug that won’t let it load. Also, I could not get it running on monitor and tv at same time, but it was only the TV we wanted anyway, so shrugs meh.

Currently we are installing MythTV, wish us luck! I’m not even sure if the freeview (DVB-T in the UK) card I gave him works…

If this post helps you (or if it doesn’t…), please leave a message.

Bookmark and Share

Killer recursive download command

Sunday, July 15th, 2007

I made this command to download a series of websites including all files, and to do so without being stopped by any automated protection methods (e.g. robots.txt, request frequency analysis, …). It served its purpose well. The command is this:

wget -o log -erobots=off -r -t 3 -N -w 2 --random-wait --retry-connrefused --protocol-directories --ignore-length --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.8.1.2) Gecko/20060601 Firefox/2.0.0.2 (Ubuntu-edgy)" -l 100 -E -k -K -p http://web.site.here/

Quite long, don’t ya think? Read on for a description of what it does (that is, if you don’t have the wget manpage memorized…)

Basically it does this:

  • -o log –> outputs messages to log file "log" instead of the terminal. Allows for easier debugging (and you can tail -F it in another terminal anyway…)
  • -erobots=off –> tells wget to NOT respect the robots.txt file – i.e. abuse webservers. This is naughty, but was necessary for the sites I wanted.
  • -r –> recursive
  • -t 3 –> retry each URL 3 times
  • -N –> turn on timestamping
  • -w 2 –> wait 2 seconds between requests
  • –random-wait –> instead of waiting 2 seconds, wait a random time, that averages to 2 seconds
  • –retry-connrefused –> for sites that go down frequently (e.g. ones on home computers) use this to retry if the connection is refused, rather than just skipping
  • –protocol-directories –> makes files from http://web.site.here/dir/ be laid out as ./http/web.site.here/dir/ e.g. puts https files in a different directory to http files
  • –ingore-length –> If the webserver gives the wrong Length: header, ignore it.
  • –user-agent="" –> pretend to be Firefox rather than wget – prevents connections being refused by anti-spidering measures that filter just by user agent.
  • -l 100 –> go up to 100 levels deep
  • -E –> put .html on the end of files that don’t end with HTML but are HTML files. This is useful so that you can download a dynamic site and stick it in a static webserver and it still works
  • -k –> convert links – VERY ADVANCED – edits the HTML files and changes the links to be relative and point to the right file names (e.g. adds .html for the last option). NOTE: this only works for HTML files – you will have to modify the CSS or JavaScript yourself.
  • -K –> when doing -k, keep a backup of the original file, without links converted.
  • -p –> download everything needed to properly display the files you download. e.g. all style sheets, JS files, images, …

So as you can see, a lot of work went into making it (I read the entire wget man page) but I think it was worth it. I now keep it in a file so whenever I need to do the same thing again, I have it. And now I have a blog, I thought "why not share?!" :-)

Enjoy. And please tell me if you find it useful.

Bookmark and Share

Chinwag

Saturday, July 7th, 2007

On Thursday night, I went to a networking event in London called "Chinwag." The idea of this was to get to know some of the people "in the business" and make some links that later we could form a kind of symbiotic business relationship. It also gives us a better feel for the scope of technology, and we get to talk about what’s hot and whats not in the tech/design/media world.

It was a good event, with around 2,000 attendees. There was free booze (well, for a long while there was…) and free food. I met many interesting people, though I must admit it was Jof who did most of the forging ahead and meeting new people, I opted to follow a short while later and talk specifics.

As I already said – it was a good event. It would have been brilliant if it wasn’t for the poor organisation of the door. We queued to get in for the best part of a hour! They were checking people off against their registered email addresses, which were printed onto paper (yes you heard me – dead trees!), which they had to flick through to check, at around 50 email addresses per sheet. The sheets were in mostly alphabetical order, but it still took a while to look through – I think part of the reason might have been the time taken to actually understand what the visitor was saying their email address was. One pile of paper was email addresses starting A-M and the other N-Z. For some reason the N-Z queue seemed to move a lot later, I wonder if that says something about English email addresses/first names.

We finally got back to Jof’s house in Kent at around 1am, and I slept in the latest that I had in a good while – 9:30am!

Bookmark and Share

British Weather – Hail in July

Tuesday, July 3rd, 2007

It is hailing. In July. Not 2 weeks after the "longest day." Global warming… That’s what I blame.

Bookmark and Share