It's 5:17 I'm in Tallinn airport, the airport shuttle picked me up at our apartment at 2:30, I'll be home around 17:00, oh, and I woke up, yesterday at 7:30. I was planning to start writing the server class for gopher-lib, I even prepared cygwin for it, and got the RFC locally, but I forgot how toasted a brain becomes from lack of sleep, so I doubt anything useful will come out of my head the next many hours. It's a nice airport though, definitely the nicest I've been to, both when it comes to general coziness, good places to sit without buying anything, and the choice of shops and cafes if one does wish to buy something. The prices here are very reasonable as well. I just had a well sized, tasty ceasar salad with salmon for what a crappy greasedog would set me back (and did) in Copenhagen. So yeah, Tallinn airport is recommended! Also, I mentioned the shuttle? That's a service for when you have early/late flights and there's no bus at a reasonable time. Then you pay 20 Euro to be picked up, at your place, and driven to the main entrance at the airport. Mind you, that's a 3 hour taxi drive, which you sometimes have to share with one or two other people, but most times have to yourself. Now it's 5:31, I'm not that tired, but not very awake either. I think I'll have a go at sketching out the API for the server class. / / ____________/ _______/ / \ \ (Sketch) It's 7:05 I'm in Copenhagen airport, it is everything Tallinn airport is not, in a bad way. Large, but with few places to be, consumerism run amok. Any hope of comfort must be abandoned by those who do not wish to consume. In Tallinn, you buy a coffee or hot chocolate because you want a coffee or hot chocolate. Here you buy it for the privilegde of sitting comfortably. If you can get yourself to pay the ridiculously high price (which I can not). Even such basic services like wireless Internet access was paid service until very recently, when they decided to include it with other basics such as air, comfortable seating and access to toilets, soap and running water. Except, of course, here, comfortable seating is reserved for those who are willing to pay. Because, you know, it's not like we already paid an airport fee to be here in the first place.. So here I am, at an empty gate, or whatever it is, in a rather worn down "Danish Design" sofa-bench abomination that, in the complete absence of padding to the back, was likely no more comfortable when it was brand new and much overpriced than it is now. Then there are the obnoxious hipsters, no, let's not go there. Short story long; I don't like it here in particular. Don't get me started on boarding an airplane I did get started, because it's a clusterfuck of proportion to watch each and every single damned time. Here's how to board like a bag of complete human genetic waste: 1. Make sure to put on your jacket before entering the plane, if you have scarves, hats, gloves or personal protection gear, don that too! 2. Feel like you're likely to go poo poo in the next two hours ? Wait for gods sake, don't spent the hour in the airport using roomy, well-ventilated and sanitary facilities . 3. Remember your phone/book/glasses/mints/controller for your girlfriends vibrator? The one that's in the pocket of your jacket? Yeah that, leave it there for now. 4. Backpack? Equip that shit well! Over both shoulders with it, and if you've got some extra straps/locks, be sure to lock those tight, we don't want to lose our backpack on the runway! 5. You should buy something that can't fit in your carry-on luggage. 6. Do everyone a favor, and bring the maximum-size carry-on, and be sure to also bring a 15 liter Gucchi "hand bag" and a laptop bag for you 23 inch hopsterbook-pro. 7. Maybe glue on your headphones and sunglasses as well. Goo, now you're ready to board! 1. Because nobody fucking minds waiting for your idiot-ass while you unzip, untie, untangle and unwind your stupid jacket and then spend almost as long pushing it into the overhead compartment. 2. Because there's nothing quite so social as sharing the excrement odors with complete strangers, it's a gift everyone can appreciate, and it makes the real actual emergency situation (where one is slightly too hungover and need urgently to use the facilities) so much more interesting (especially for the poor SOB next to.. one). 3 Now that your jacked is mashed away under your (6) carry-on, the overhead compartment securely closed and you at your window seat with the guy next to you already fastened his seat-belt, this is a good time to jump up, make him move into the isle, so you can get your retarded-as-fuck-self out there and blocking everyone else while you open the overhead, pull out your carry-on (be sure to bump some innocent passenger in the head with your heavy plastic monstrosity with a "carbon look"), and start going through your jacket after whatever nonsense you decided you absolutely couldn't live through the flight without, oh, and like everyone else, you're just an expert at finding the right pocket without actually putting your jacket on No? Okay, go ahead, we've all got plenty of fucking patience to wait. 4. Because, removing a backpack is quicker the more securely it is secured to your mentally-inhibited self, right? Nobody is surely going to mind you hitting you with it as you struggle taking it off, because we appreciate the difficult situation you've landed in, of no fault of your own. 5. Because with the delicate motor-skill and agility that you have, this will in no way hinder, slow down or make next to impossible, any of the other items on this list, you're just that good. And nobody minds waiting for it. 6. Because you know, 25 cubic meters of crap just is not enough, and even when everyone brings a max-sized carry-on, there is always plenty of room for all the extras as well, and us with considerate, soft carry-on, we do not mind having it under the seat since your gigantic kryptonite case un-ever-so-fortunately won't fit under your seat.. I've got a suggestion where it could be made to fit. 7. Because we all love listening to the security instructions, and you should join the fun, we don't mind waiting for the cabin-personal to personally go and give you the exact same instructions as were just on the speakers, which you'd be aware of if you'd ever flown before in your life. Now that you're on the plane, here's a few things you can do to make sure that everyone enjoys their flight. 1. Don't hesitate to lean your seat all the way fucking back. Nobody behind you would mind, they're surely not going to use their seat table for anything, and they won't mind looking at your dandruff filled scalp for the remainder of the flight, much less get a whiff of whichever chemistry you've chosen to soak yourself in before entering. Personal space is so overrated anyway. 2. Be sure to talk loudly to your friends 4 rows back, we don't mind, it's not like we have anything better to do than listen to your idiocracy. 3. Deodorant and perfumes, lots of them! Sure beats a shower, and no synthetic odor could be as offensive as a slight scent of human, right? 4. Be sure you're comfortable. Flight seats are one of the hardest substances known to man, and there's no possible way the person in front of you could ever notice your knees in the back of their seat (bonus points for swinging your legs or shaking your feet). 5. Don't worry about hygiene, flights are sterilized completely after every landing, so sucking on your fingers after eating, and then proceeding to touch seats, seat-belt buckles, handles, and other surfaces should be no concern at all, go right ahead, and you're a good, clean human being, so no one would mind, right? Back to coding I got started on the skeleton API for the server, I need to decide if it is reasonable to share the GoperResource between server and client. There are some things that the client won't need (filepath for example) and some thing that the server won't need (query, for instance). But I'm not entirely sure. I've decided that the server will not serve files based on a filename, instead it will always use a representation of a map, it might be a dynamic map created from a directory, but the selector from the client will always be matched against an in-memory structure. This also avoids any possibility of cheating the server to send files that were not intended to be exposed. Users of the server class can add resources to "root selectors" (for lack of a better name), basically, a path, but without the / delimiter. It will find the handler that most exactly matches the selector, then pass the remainding string to that handler. Brain broken Anyway, there is now free wireless Internet, except, gopher and SSH is not working, so it's more like free wireless world wide web.. :( I forgot why I wanted to have access in the first place.. It's 0:51 I feel tired now, I'll go to bed.. Pushed something to a branch somewhere.