natalian

planet

Planet Kai RSS feed

kaihendry: @simonw sounds like you are doing some awesome work. keep it up!
Posted
kaihendry: @londoncyclist a friend has a puncture in W2 Paddington without the tools or time to fix the tyre. Any suggestions? A call out service??
Posted
kaihendry: @rufiec have you been kidnapped? how else can I explain this loss of contact with you? Africa do have networks too! :)
Posted
kaihendry: @keybuk I was told you can do HD with 3mbit by a BBC fella last night.
Posted
kaihendry: Since I now live in W2, I’ve applied for a http://www.rescard.com/ This should give me cheaper Zumba classes.
Posted
kaihendry: @johannakoll are you attending http://lanyrd.com/2010/over-the-air/ ?
Posted
kaihendry: My VF colleague Jeremy from @charltonbrooker ‘s PC ZONE days says he was always destined for greatness. Will people say the same of me?
Posted
kaihendry: @RufieC getting worried about you. Have not heard from you in awhile!
Posted
kaihendry: @jasTHFC forgot to comment last week, that one would think if it rained business would be better for you.
Posted
kaihendry: whoa this is awesome @lanyrd !!
Posted
kaihendry: @mxcl is it possible to grab all tweets of a user? I seem to be limited to 3200 in the pagination
Posted
kaihendry: Wow, an Android phone on the market for less than 100GBP http://flic.kr/p/8wX67J
Posted
kaihendry: I think I can tell when a company uses that crap “Enterprise” Java Liferay CRM. Forms don’t work properly.
Posted
kaihendry: @joeyhess I feel your pain. Can you show them this tweet? Joey Hess does an amazing amount of work on Debian and the Web.
Posted
kaihendry: Funny how once you hit Newbury on the Penzance train, the VF 3G signal seems to get a lot better… all the way to London. Strange that.
Posted
kaihendry: Viagra deals today in my spam range from -72%, -41%, -85%, -30% & -92%. Glad I waited.
Posted
kaihendry: @simonw wget or curl didn’t work out for you? :)
Posted
kaihendry: Just discovered “Vodafone Content Control” whilst browsing the Web on the train. Dear oh dear.
Posted
kaihendry: Ripping my Mum’s Yoga DVDs on my Dad’s Macbook down to the Ipad using Handbrake.
Posted
kaihendry: BBC2’s Vexed was fun. Anyone know where it was filmed?
Posted
kaihendry: @jeffsonstein I’m dealing with 20k+ collection of all sorts of images. :/
Posted
kaihendry: @jeffsonstein well i have several copies of the same image showing up in ‘09. Thinking of purchasing the “Duplicate Annihilator” :(
Posted
kaihendry: Spending afternoon trying to import pictures into Iphoto’09 for my parents. So very bad. No duplicate detection. W.T.F.
Posted
kaihendry: Chunked transfer encoding has been driving me NUTS for the last couple of days. Does http://hetty.webconverger.org:8080/test/ work for you?
Posted
kaihendry: Spent hours wrestling with NFS and Samba. Giving up. Using rsync instead.
Posted

I type it up all in my familiar editor.

I use Markdown.

Posted

Ask for the foreign user wanting to access BBC Iplayer content abroad for their IP (foreign IP). http://www.whatismyip.com/ is probably easiest.

Get a VPS in the UK. I recommend http://bitfolk.com/ or http://www.bytemark.co.uk/

Use Debian and squid3.

sudo vim /etc/squid3/squid.conf and add the foreign IP (example uses 121.121.121.121) like so:

acl localhost src 121.121.121.121

sudo /etc/init.d/squid3 restart and tail -f /var/log/squid3/access.log

Configuring the foreign user’s browser

Proxy configuration for Firefox

In Firefox, find the proxy configuration tab and enter the IP of the server.

Ask user to access a site and track tail -f /var/log/squid3/access.log to make sure it works.

Posted

Say you handle support emails privately at support@example.com.

Ideally this email is distributed amongst at least two employees in different timezones: Tom & John.

Q: How does Tom answer a support email and let John knows he’s answered it? A: Use BCC

Q: How do you make sure the inquirer keeps to the support@example.com thread/conversation and not the personal email address of Tom?

A: Use Reply-To:

In mutt, you can automate this process like so:

set include
reply-hook .  unmy_hdr Reply-To:
reply-hook "~C support@example.com"  'my_hdr Reply-To: support@example.com'
reply-hook "~C support@example.com" 'push <edit-bcc>,support@example.com<enter>'
set edit_headers

Many thanks to scandal on #mutt on irc.freenode.net for the above ~/.muttc configuration lines.

In Gmail, you can setup the Reply-To: rule, but only for the entire @example.com account which is awkward. Also you must remember to set the BCC: manually.

Now with some luck, you can handle support/issue requests or “bug reports” as conversations in your inbox. This is far from perfect as your supportee may have a crappy MUA and break the thread.

You also would have to manually archive threads to mark them as done. And then you would only know it’s “done”, as there is no way of telling John is has been archived accordingly without sharing a mailbox. Sharing a mailbox AFAIK is pretty darn hard, though I’ve heard a rumour of IMAP having such a feature. And you would probably lose some accountability benefit sharing a mailbox.

Futhermore an interim mail BTS hybrid could be better achieved with labels/folders to emulate something like Debian’s tags.

Posted

There are two typical ways to get say the first column of a file. Most people currently use awk, like so:

awk '{print $1}' webc-6.0.txt

See my awk tip for more.

However did you know you can use bash like so?

while read -r -a fields; do echo -e "${fields[1]}"; done < webc-6.1.txt > webc-6.1-1col.txt

To get the last field using bash, use:

while read -r -a fields; do echo "${fields[@]:(-1)}"; done < webc-6.0.txt

However awk is still much faster than shell for this task.

If your columns are delimited with say a full stop, the recipe may help you:

while IFS=. read -r -a fields; do echo "${fields[@]:(-2)}" | tr ' '  ','; done < $1 | grep .
Posted

What’s the problem with this?

all: foo bar
    @for i in $^ ; \
    do \
        false ; \
        echo $$i ; \
    done
.PHONY: all foo bar

Well even though false trips up, the make will just continue. Usually Make will just croak if something goes wrong, but since everything is neatly in a for stanza, this is easy to miss. I wonder if there is a way to set -e on Make invoked shells?

Otherwise to fix the problem, you need to add set -e, like so:

all: foo bar
    @set -e; for i in $^ ; \
    do \
        false ; \
        echo $$i ; \
    done

.PHONY: all foo bar
Posted

In a modern distributed company in order to communicate, businesses use tools like teleconferences (urgh), email, instant messaging (which one?) and more integrated packages like campfire.

Or you can be a little old school and use existing platforms for real time chat like Inter Relay Chat (IRC). IRC does exhibit quite a learning curve, though if your company are engineers, it shouldn’t be too much a problem to learn how to use IRC.

Here is a guide to setting up your company with a private channel on Freenode. Whilst running your company on Freenode is not strictly on topic, it certainly isn’t off topic.

I think Freenode should definitely discreetly host company channels, since it will only encourage companies to contribute to open source software projects down the line.

NickServ - user authentication

First you need to register with nickserv, /msg nickserv help register

Then you need to configure your IRC client to authenticate (identify) to the nickserv on startup. Ideally all your employees need to do this, though you can restrict your channel to IPs instead.

ChanServ - restricting your channel to your employees

Setup a dialog with chanserv and then begin like so:

help
help register

Which provides help how to register your channel. For the purposes of this tutorial, I’ll use #example.

register #example

Then (providing your registered and identified with NickServ), you will become the founder of this channel.

So lets assume all your employees come in from the IP nat.example.com, you can now restrict the channel to those personnel, like so:

FLAGS #example *!*@nat.example.com +V
set #example RESTRICTED ON

So FLAGS sets up the access control list. To see who is on the list:

access #example list

To add an additional admin user:

FLAGS #example ircusername +votsriRfAF

If a user tried to join your restricted channel, the user will be immediately kick banned. So if that user is for example later added on the access list, you need to unban that user for that user to rejoin the channel.

To see the current bans in place for the channel:

/mode #example +b

To remove a ban for say 8.8.8.8:

/mode #example -b *!*@8.8.8.8

Transcripts

What about transcripts? If you run a decent IRC client like irssi, with screen and Apache httpd vhost on /web it’s as painless as:

/SET log_create_mode 755
/LOG OPEN -targets #example /web/irc.example.com/%Y-%m-%d

Then if we to refer to our chat yesterday I would simply say check out http://irc.example.com/2010-06-14. To password protect the site, simply use an .htaccess like so:

irc.example.com$ cat .htaccess
Order deny,allow
Deny from all
AuthType Digest
AuthName "acme"
AuthUserFile /web/digest-password
Require valid-user
Satisfy Any
Posted

Kai Hendry has posted a comment:

I like kitty kats :)

House Cat

Posted

Kai Hendry has posted a comment:

Interesting pose :)

Mistral

Posted

Kai Hendry has posted a comment:

Nice shoes :)

DSC06962

Posted

Kai Hendry has posted a comment:

I see you’ve brought along the essential Wireless AP, with DD-WRT? :)

Berlin

Posted

rufie c has posted a comment:

that is a very green patch!

Green Grass

Posted

Kai Hendry has posted a comment:

Excellent! :)

stopmotion

Posted

Kai Hendry has posted a comment:

Excellent! I noticed the blossoms falling myself.

Blossom Shadow

Posted

Jamie Kitson has posted a comment:

We could have it with some of Heston’s bacon ice cream….. ooooh, I have his recipe book…

Cupcake Making

Posted

Hassan Ait Mellawsh has posted a comment:

Hi, I’m an admin for a group called Mount Toubkal (4167m..13671f), and we’d love to have this added to the group!

Me On High

Posted

Kai Hendry has posted a comment:

I am so hardcore. DAMN.

Kai In Swiss

Posted

M a r i n a 7 has posted a comment:

Wonderful portrait, love it !!! :-)

Daughter of Kabul

Posted

Margot Wolfs has posted a comment:


Congratulations! Your photo has been nominated as an "Unforgettable Picture"
You are invited
to add your wonderful picture to The Unforgettable Pictures Group
Please read the Group Rules and tag your photo TheUnforgettablePictures
INVITE only & Comment on 3

Killing a turkey

Posted

rufie c has posted a comment:

only the line is not straight! :P

Classical symmetry

Posted

rufie c has posted a comment:

of a crummy room :)

cheap room

Posted

Kai Hendry has posted a comment:

wtf did Jamie go? Oh, I remember, he’s photographing me from a bush.

Surreptitious Shot

Posted

Kai Hendry has posted a comment:

dosa ?

thosai masala @ Saravanan Bhavan

Posted

Kai Hendry has posted a comment:

Sad

Stalin On The Strand

Posted

Kai Hendry has posted a comment:

Well done Tom! I’m envious. I have never been able to run very far or well, though I am keen on getting started after reading your blog!

Maybe I should train for a fun run first though. ;)

709351-4018-0010

Posted

Kai Hendry has posted a comment:

Seriously when I first saw this I had dejavu of plant seeds.

jesper

Posted

Kai Hendry has posted a comment:

Fruit right?

jesper

Posted

Kai Hendry has posted a comment:

Wow wow-wow

P1530500

Posted

Kai Hendry has posted a comment:

I have total dejavu looking at this. I have just looked through my own India pictures and couldn’t find the picture I was looking for. One with this in it!

P1530470

Posted

Kai Hendry has posted a comment:

For once!

Crows Like An Arrow

Posted

Kai Hendry has posted a comment:

Sacrilege!

P1530411

Posted