Kai Hendry's other blog archives

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 Tue Aug 10 01:34:46 2010

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 Tue Jun 15 19:44:32 2010

Latest tips

I type it up all in my familiar editor.

I use Markdown.

Posted Mon Aug 23 13:42:41 2010

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 Tue Aug 17 15:19:36 2010

Android in the United Kingdom

Me and my new Nexus from around the world

So I bought the new http://www.google.com/phone, the Nexus One at 365.21GBP. Deep breath.

I'm still on the last couple of months of my T-mobile G1's 18 month contract. Nonetheless, I've sent my G1 to my sister in Germany and hopefully she will get some use out of it.

I plan to end my contract with T-mobile and go on some PAYG plan, hopefully with Vodafone. I bet you ending my T-mobile contract and porting my number will be an ordeal. :(

Talk about ordeals... the device took 16days to arrive, because Google's fulfillment house in Indiana accidentally routed the N1 to Hong Kong. Google's "Android support" customer services is absolutely abysmal. I contacted them three times via Google checkout to tell them they have screwed up the package routing. I basically only got through to them via an old University friend who now works at Google. Shame. :(

So the Nexus One(N1)! What do I think about it? It feels like a great upgrade over the G1. The 1Ghz Snapdragon amazed me awhile back on the Toshiba TG01, so at last I have it! :) However the battery performance seems on par with the G1. Sigh.

Despite a looming Nexus One update I though I'd rather be in control and hence I unlocked my Nexus One and "voided my warranty". I think it's a bit poor that I've voided my warrany because I want different software on it. I don't "void the warranty" if I put Linux on my Thinkpad, now do I?

Cyanogen's beta4 N1 mod is pretty wild. The USB tethering feature is a must for me and it works far better than Android 3G wifi tethering. Just turn it on, and ifconfig -a shows usb0. dhclient usb0 and you're surfing on 3G. Why do operators make it so hard?!

Since I'm into HTML5, I'm greatly enjoying using http://gmail.com and Calendar in the browser. It works amazingly well. I'm going to try avoid using the native Gmail client, though the native's 4 day background syncs are hard to beat.

I'm a little worried about the quality of the 3G connection. The 3G scare stories don't help, though tbh I think the connection is the same as the G1. It's just that since the phone is so much faster, the failings of UK mobile connectivity are even more clear to see. :(

You can upgrade your phone, but can you upgrade your connectivity? Well since my phone is unlocked I'll have to do some mobile speed testing again.

UPDATE: Checkout http://www.nytimes.com/2010/01/13/technology/companies/13google.html

I also heard Google is giving out N1s at developer meets. Ah great, they know how to satify paying customers.

UPDATE: I've been lumped with a 60GBP DHL bill for taxes. OMG. :(

Posted Fri Feb 5 00:00:13 2010

Scan with your mobile

Whilst passing through Waterloo station, I usually buy some fresh fruit juice from the Marks&Spencers (M&S) store. This time I noticed my bottle had some sort of 2d barcode on it.

I spent a few uncomfortable minutes trying and trying again to scan the code with the "Barcode Scanner" application on my Android G1. Didn't work. :(

Later I found out that this a Data Matrix code and not a QR code. ARGH!

Unsurprisingly 'Data Matrix' support is 'alpha' quality according to the ZXing library powering the Barcode application on the UK T-mobile Android G1.

WAP is CRAP

In the small print it says WAP enabled mobiles only. Eh? Have I gone back in time 8 years? To add insult to injury there is a link to the T&Cs: http://www.mands.mobi/ftg worryingly using a http://en.wikipedia.org/wiki/DotMobi address!

http://www.mands.mobi reveals some suspects to this crime: Incentivated

Welcome to Your M&S
Our new corporate mobile internet site is coming soon. Please check back later
Site built using Incentivated's WAPsite Publisher

OMG. How piss poor M&S. :(

2d codes suck too

barcode

Regular barcodes are OK in my book, because they have a human readable 13 digit fall back (036000291452) running along the bottom. I remember when 'Checkout dollies' (as we call them in the South West), typed in that that number in case the barcode failed to read.

Where is the fall back to 2d codes??

As a 2d-code fallback I suggest clearly printing a short (hopefully meaningful) URL e.g. m&s.co.uk/oj (12 characters) and markup your content in HTML5.

Posted Sun Aug 23 21:13:07 2009