Moved...

Just to say that I've moved my blog away from Posterous. It's now at http://jalada.co.uk. Read about why.

See you there!

GNU Screen and the Mac Clipboard

Copying to the Mac Clipboard

While copying and pasting in a terminal is very useful, I also find that I often want to copy some text from a terminal into my clipboard. This next tip will show you how to do this for Mac OSX, but I'm sure it can be easily modified to work with other operating systems.

Open $HOME/.screenrc and add the following line:

bind b eval "writebuf" "exec sh -c 'pbcopy < /tmp/screen-exchange'"

This line tells Screen to write its copy buffer to a temporary file (defaults to /tmp/screen-exchange), and then sends that file to pbcopy, a Mac OSX utility that copies text into the Mac clipboard. In this case, I’ve bound the command to C-a b, but you can change to best suit your own environment.

Must remember this...

Installing Ubuntu with a graphical installer using tftp, dhcpd, and nfs.

If you have the facilities, it's really handy to install Ubuntu using Ubuntu's nice install environment without having to burn any CDs. Just download the ISO and use it in conjunction with some server stuff and boot any computer off the network to get a fully interactive graphical installation, just as if you'd put in the CD. I also have a gigabit network, so this is a lot faster than using a CD drive.

Without further ado, here is how to do it, in brief. I'm using another Ubuntu machine for the server stuff, other distros may vary:

1. Install a TFTP server

I use tftpd-hpa (which is the name of the package in the Ubuntu repositories). Make sure it's all set up OK and is running. I think the configuration defaults to using /var/lib/tftpboot, so that's the path I'm going to refer to in these instructions.

2. Download the appropriate netboot.tar.gz

You can find these netboot.tar.gz files on the Ubuntu website. Make sure you get the right one for your architecture and Ubuntu release. Extract it to /var/lib/tftpboot.

3. Download the Ubuntu Desktop ISO for your architecture.

4. Make it available via NFS

First, you're going to need to install NFS if you haven't already. I think the package is nfs-kernel-server. Then pick somewhere to mount the ISO; I use /srv/ubuntu. If you want to use that too the command is:

sudo mount -o loop /path/to/ubuntu-desktop.iso /srv/ubuntu

Once you've mounted it, you need to make sure the computer you're going to install Ubuntu onto can reach it. You do this by configuring NFS using the /etc/exports file. My /etc/exports file looks like this:

/srv/ubuntu (ro,insecure,all_squash)

I know very little about NFS, but that sounds good enough to me. Restart NFS with sudo /etc/init.d/nfs-kernel-server restart. If you have any way of checking it's available, do so. I personally check by trying to mount nfs://my_server/srv/ubuntu on my Mac.

5. Grab some files off the ISO

In order to boot into the LiveCD environment, the computer you are netbooting is going to need the kernel off the ISO. If you've been following along exactly and are installing Karmic Koala, these files are /srv/ubuntu/casper/vmlinuz and /srv/ubuntu/casper/initrd.lz. Older versions of Ubuntu may use initrd.gz instead, I'm not sure. It doesn't matter either way. Copy these two files to somewhere in /var/lib/tftpboot. I make a directory called /var/lib/tftpboot/ubuntu-desktop and put them in there.

6. Add the option to boot this kernel when your computer netboots

In /var/lib/tftpboot/pxelinux.cfg/default, add the following lines (change any paths/server names if yours don't match). Note I used my server IP address in the 'nfsroot' parameter because I'm not sure if this thing can do DNS resolution or not:



LABEL live-karmic


        kernel ubuntu-desktop/vmlinuz


        append root=/dev/nfs boot=casper netboot=nfs nfsroot=my.server.ip.address:/srv/ubuntu initrd=ubuntu-desktop/initrd.lz quiet splash --


My pxelinux.cfg/default file looks like this:



include ubuntu-installer/amd64/boot-screens/menu.cfg


default ubuntu-installer/amd64/boot-screens/vesamenu.c32


 


LABEL live


kernel ubuntu-desktop/casper/vmlinuz


append initrd=ubuntu-desktop/casper/initrd.gz boot=casper netboot=nfs nfsroot=192.168.0.3:/srv/ubuntu --


 


prompt 30


timeout 30


7. Set up dhcpd to tell the computer to netboot

In your dhcpd configuration file, make a client section for the computer you want to netboot. Add filename="/pxelinux.0" to this section. The section for the computer I wanted to netboot looked like this:



host ccube {


  option host-name "ccube.haven.network";


  hardware ethernet DE:AD:BE:EF:DE:AD;


  fixed-address 192.168.0.5;


  filename "/pxelinux.0";


}


Don't forget to restart dhcpd.

8. Profit!

Set your computer to boot off the network, and watch the Ubuntu LiveCD environment boot before your very eyes!

These are very rough guidelines, not intended to walk you through every baby step involved in netbooting into this environment. I assumed that if you want to do this, you probably already know a fair bit about Linux. There is more information about netbooting available all over the web. Just Google 'Ubuntu netboot'.

 

 

Google Wave issues

Wave

Looks like Google Wave is having lots of issues today. Their servers are probably having issues due to the number of new people who have got Google Wave invites today (including me). The help forum confirms that many others are experiencing the same issues.

Once things quieten down, I'll be able to properly test it. For now I've only had one successful experience with Google Wave (I had a chat with @jongretar about using Erlang Web Development Frameworks and authenticated REST APIs), the rest has been littered with trying to archive waves, or get the site to load at all.

This is pre-beta obviously, and the technology is definitely impressive. But it'll be more impressive once Google can handle it.

So if you feel like you're missing out without a Google Wave invite, don't worry. Right now you're not missing out at all.

Google Attempts to Explain What a Web Browser Is

The article is about Google's video explaining what a browser is, but I hadn't seen these interviews before. From their responses, I think a reasonable percentage of these people got confused because the questions probably went something like this: 'Hi I'm Scott from _Google_, what's a browser?' Because people went into 'I haven't got a clue about computers'-mode, so latched on to the name Google. Particularly when then asked 'What browser do you use?'.

Funny anyway.

Twitter bookmarklet update

Just a small update, but I have updated my Twitter bookmarklet (link takes you to a page with the bookmarklet as Posterous doesn't let you have javascript links) to use twitter.com/home rather than twitter.com. This means it will still retain your new status update if you have to log in.

If you already have the bookmarklet, you don't need to do anything, the update is automatic!

RSSFall - What realtime RSS looks like

Picture_2

As some of you may know, I'm the lead developer at Twitterfall - a site for viewing tweets in a realtime manner. Twitterfall is something of a demonstration and experiment; although it is a fully featured product that people use every day it helped me learn about the emerging realtime web and how to develop for it.

Some of you may also know about the recent flurry of activity surrounding two new technologies: Pubsubhubbub, and rssCloud. Both technologies do more or less the same thing from a consumer standpoint and their implementations aren't much different either. Pubsubhubbub and rssCloud make RSS realtime.

Over the past few weeks I've been researching the most popular of these two technologies at the time: Pubsubhubbub. And today I'm ready to show off some of what I have been working on.

It's called RSSFall, and it shows you what realtime RSS looks like. Updates fall from the top of the page (much like Twitterfall) as soon as we receive them. It may take a few minutes for you to receive a new entry from the feeds we're monitoring, so keep the page up for a few minutes and watch the news come in.

Obviously right now RSSFall isn't much more than a visual demonstration of how realtime RSS can be. But I've got plenty of plans for this technology and can't wait to show you what I've got in store. Plus, if you're a company interested in the new realtime RSS technologies and want to investigate into integrating them onto your website or any other area, get in touch using the contact link on the page.

Whenever I visit a WordPress blog I feel an urge to go back...

Whenever I visit a WordPress blog (for example, just now I was reading Robert Scoble's - ironically his post on how his WordPress got hacked) I feel an urge to go back to it (I used WordPress on my previous blog) instead of using Posterous like I am now, because I look at features that people add - Disqus comments, their own themes, and static pages for example - and want them too. Particularly Disqus comments. Disqus recently revamped their system and I really like the features they've added, plus it has threaded comments and Posterous doesn't.

But then I remember some of the bad points about WordPress; having to upgrade a lot, worrying about security holes, stressing over server performance (this took a lot of time when I was setting up 2 WordPress installations on my very limited VPS), hunting for and installing plugins to add features and making sure they don't clash (made easier by improvements to the installation process and so on). Plus WordPress always has this feeling that it's getting bloated.

So far, I've been happy with Posterous. It has really easy integration into things that matter such as Google Analytics, autoposting, and being able to write my posts in my email client and let Posterous do the rest makes the barrier to entry very small, but I'd still like a little more customisation, I'd love Disqus comments, and I think I'm always going to have that urge to go back to WordPress whenever I visit a clean, well-designed WordPress blog.

Lifehacker performs Browser Speed Tests

 

Lifehacker have done various speed tests against the latest versions of Google Chrome, Mozilla Firefox, and Opera and also compared the results to their last round of testing. Results match up with my previous results between Chrome and Opera, but more interestingly the development version of Google Chrome (seen in the graph above as 4.0.203.2) performs significantly worse in some areas than Chrome 2.0 which is the current stable version.

Is Google Chrome bloating out by adding new features? Or is it just missing a few optimisations because it's the development version? It's interesting to see that Firefox performs better in memory management than any other browser considering its reputation for being a memory hog.

Twitter tracking links again?

On August 25th Techcrunch noticed that Twitter appeared to be tracking outbound clicks on their web interface, but that the redirects seemed to disappear after the downtime afterwards.

It looks like the links are back, I was just using Twitter.com and noticed the outbound links, which are of the format:

http://twitter.com/link_click_count?url=http%3A%2F%2Fis.gd%2F2OoZi&linkType=web&tweetId=3720272969&userId=15620813

plus an authenticity token. Looks like they're tracking the link, where it's come from, what tweet it's come from, and the userId of the user that clicked it (in this case me).

It'll be interesting to see if this sticks around, and I bet it's part of the analytics service they might be providing to paying customers. I'm not sure how it will stand up to bit.ly analytics (which of course, they blessed) especially as bit.ly analytics will work on any service, not just the web-based interface. They could also use this to muscle in on Tweetmeme, and they could track links by clicks rather than retweets and extend their trending topics system to include trending links, though how accurate this would be at determining popularity when it would largely depend on the number of followers (clicking takes a lot less effort than retweeting) is questionable.

About

I'm Jalada, lead developer at Protane, currently working on Twitterfall.com

TwitterFriendfeedFlickr