Thoughts of a geek

4 October 2010

More requests

Filed under: Computers, Electronics, Me, music, thequotebook — Tags: , , , , , — qwandor @ 2:34 am

Continuing on from my last post, here are some more topics people requested me to write about.

xyzzy and Craig both want me to write about working at Google. Hmm. Well it is a fairly good place to work. We get free breakfast, lunch and dinner in the office, Monday–Friday, plus there are microkitchens around the place with snacks and drinks. The food is pretty good too. Typically at lunch in the main cafeteria there will be 2 or 3 choices of meat (at various times we have had roast duck, roast beef or lamb, lamb cutlets, beef steak, various kinds of sausages, sausages wrapped in bacon, chicken, turkey, I think there was even kangaroo steak one time), some choice of fish or other seafood, vegetarian dishes, roast and/or boiled potatoes, rice, a range of cooked vegetables, various salads, sushi, a couple of flavours of soup, bread of various sorts, crackers and cheeses, a hot pudding, cakes or cupcakes or other cold desserts, fruit, and a range of drinks. There is a machine to squeeze oranges into juice which is fun to watch. There is not nearly so much selection for dinner unfortunately, and not so many people stay for it. Breakfast is pretty good though. If you happen to be in London, come for lunch! We get to have up to two social guests to eat at the office each month.

Food aside, the work has been fairly decent. It does take a while to get used to all the systems and technologies, as Google have a lot of internally-developed tools and systems that nobody else uses, and have had to put a lot of work into making everything scale bigger than pretty much anyone else. Writing a web application that could cope with being used by everyone on the Internet, many simultaneously, from all over the world, does pose some challenges over just designing something for a few hundred people. I still have a lot to learn. Unfortunately nothing I have worked on so far has been launched yet, and it is unlikely that any substantial part of it will be launched publicly until sometime next year.

Working at a global company with tens of thousands of employees is certainly rather different to working at a small place with between 10 and 20. The ratio of actual developers to support roles (legal, HR, recruitment, management, sales, facilities, and probably many others that I do not even know about) seems to be quite a bit lower. I am not too sure what differences can be attributed to differences between England and NZ as I have only worked at the one company over here. I guess there are more big companies over here though, being a bigger country. I do find that there is not so much chance to chat with my colleagues about anything outside work, though that may be at least partly due to the fact that I knew about half of the guys at Innaworks already before I started working there, though university and Interface.

As for what skills I use from my studies, the data structures, algorithms and complexity stuff was certainly important in passing the interviews and getting the job, though so far at least it has not been all that important day to day.

I think that answers most of Craig’s questions. xyzzy also wanted to know about “some project you’ve embarked upon in your spare time! your take on what really matters in life!”. Unfortunately I have not been working on any terribly exciting projects in my spare time since I moved here. I did just recently order a Bus Pirate, in the hopes of hooking some sort of I2C devices up to my computer and having a play. That has not yet arrived yet though. It is also not clear whether there are proper drivers for it to let it work with the usual Linux I2C infrastructure, or just userland stuff.

I have made a number of updates to theQuotebook in the last month or so, most notably finally getting the new style ready to launch. I am working on a new feature to allow quotes to be added by email, and Twitter support may also follow if I can work out a good way to design it and find a suitable Twitter username that is not already taken.

I also did some work on a web-based client for Fridge a while ago. It is implemented using GWT, and talks directly to the XML-RPC API that the other clients use, so it supports all the same features, including Interfridge. You can try it out if you have an account on the Memphis fridge or any peered fridge.

So what really matters in life? Probably not Slayer. God, I think, though I am not sure quite how. People seem to be fairly important. I wish I got to spend more time interacting with people constructively, perhaps sociably as well. Finding good community and good friends is hard. Knowledge is also important I think. Do more maths, people. And some science if you like.

Before I stop for the now, Richard asked me (twice!) to write about Slayer, so I guess I should do that. Richard seems to be a little bit obsessed with Slayer, though I am sure he would assure you it is purely in an ironic way. I am afraid I do not now much at all about them, so I will be looking up what I can. last.fm informs me that Slayer are “a thrash metal band from US, formed in 1981 … credited as one of the ‘Big Four’ thrash metal bands, along with Metallica, Anthrax, and Megadeth”. They seem to choose deliberately controversial topics for their songs, which is not uncommon among such bands. I am pretty sure Metallica are better. Perhaps you can tell us more, Richard?

I think that will do for today. Next up: books, culture and language if I can think of anything to write about them, and probably not a vat of hot chocolate.

Advertisements

4 November 2009

Rubgy, a safe technical topic, and baking

Filed under: Computers, Me, Recipes — Tags: , , , , , , — qwandor @ 10:33 pm

Continuing on from my last post taking suggestions from Twitter, today I will be blogging about topics suggested by people on Facebook.

Allan Chesswas: Rugby

Here in New Zealand, and elsewhere I hear, some people like to run around a field jumping on each other and chasing an oddly-shaped ball. This activity seems to be more popular among boys than girls. Many other people like to watch them do so. Several of my flatmates are in the latter set, and one in the former. I have never seen the attraction of either activity. The running around does at least provide decent exercise, but at significant risk of injury. Watching seems even more pointless, and frequently people do so (via television) instead of partaking in more interesting and productive pastimes such as good conversation, programming, baking, listening to music or even reading. This can be something of a frustration.

Donald Gordon: Safe technical topics which no one will be offended by.

Well. Most of my ‘recreational’ programming of late has been on Fridge. Fridge is a co-operative honesty system for snackfood which originated in Memphis. The Memphis Fridge is something of an open secret, used by graduate students and their friends. The basic idea is that certain people buy pre-packaged food and drink in bulk. Everyone who uses fridge has an prepay account which they can put money into by putting cash in a drawer and crediting their account, and then they can use this balance to buy the food and drink. The software keeps track of users, money, the various items stocked, markups to make up for lost or damaged stock, various statistics, and so on.

I have made a few minor contributions to the Fridge software in the past (such as adding a QIF export feature to allow users to import their transaction history into their personal accounting software), but my substantial work on it now began with interfridge. Interfridge was an idea that I and others had some time ago, last year I think, to allow users on one fridge to use that account on another fridge. This was motivated by the fact that both Memphis and Innaworks (where I currently work) run the Fridge software, and several of us use both fridges from time to time. The idea of interfridge was that I could visit Memphis, login to their fridge with my Innaworks fridge account, and purchase items from Memphis just like any Memphis user.

At some point Donald wrote some notes on his ideas of how interfridge should be designed. I finally got around to implementing this (the server side in PHP as part of fridgeweb, the client side integrated into the Java fridge client) using a protocol on top of HTTP. After much discussion with lorne, Chris Andreae and Stephen Nelson and several iterations changing the protocol to fix potential security holes pointed out, we came up with the interfridge protocol that is now in use between Memphis and Innaworks.

However, we realised along the way that fridge really could do with being improved in other respects. Currently, the Java client talks directly to a PostgreSQL database which holds all the user, stock and transaction data. This means that the client must include the database password, which is really not a good thing to be giving out to all and sundry. A much better design would be to have a trusted fridge server which talks to the database, and then have the client perform all operations via the server. With an appropriately-designed protocol, this means that the client need not be trusted, and so anyone can write their own client to use with the fridge. I have thus begun to design and implement a fridge protocol based on the interfridge protocol (it can do everything the interfridge protocol can do and more, so will replace it when it is done). For this I scrapped the custom RPC protocol which I had been implementing for myself on top of HTTP, and went with XMLRPC to take care of all the details of procedure calls, encoding and decoding in a standard way. There are various implementation of XMLRPC available for many programming languages. I should note that the documentation linked above does not include all of the API currently implemented in the code, though it will eventually. I am currently still in the middle of designing it, implementing and documenting it at the same time.

As it currently stands, the fridge server has methods to login, check a user’s balance, transfer an amount to a local or remote (i.e. interfridge) user, make a purchase at the local fridge (I still have not yet decided the best way to handle interfridge purchases in the new scheme), list the current stock, and list other fridges with which the fridge is peered. I am writing a client library and simple command-line client in Ruby to test this as I go. The command-line client implements all the features just mentioned. I have not yet done much on the Java client, but that will come at some point. lorne has just started work on an iPhone client, which should be cool.

Felix Shi: You can always blog about cooking weird and wonderful dishes 😀

Weird and wonderful? Not sure about that. I made a batch of muesli and a chocolate cake on Sunday, as I mentioned. The weekend before I baked two batches of muffins (apple and sultana for the Skyline walk on Saturday, banana chocolate chip or something for a picnic on Labour Day with gringer, ja and xyzzy).

I am afraid my cooking of late has not been terribly interesting. Suggestions are welcomed, as are visitors interested in consuming baking. As always.

Blog at WordPress.com.