jack: (Default)
If you're going to criticise someone for something, the first rule of irony says you will probably accidentally commit the same offence during your criticism. This is pretty unavoidable, but at least try to cover the basics, and let fate work for it's revenge. For instance: spell "gauche" correctly :)

(I assume I have done the same here.)
jack: (Default)
Don't make a theme park with robots who pretend to be cowboys. Or dinosaurs. Sure, it seems like an awesome idea. A really awesome idea. But it never ended well. Ever[1]. Just don't try.

[1] Counterexamples welcome.
jack: (Default)
Don't inject sodium pentathol into someone flying the helicopter.

Don't parachute out of a helicopter.
jack: (Default)
If you're ever in Stoke-on-Trent, go to Newcastle-under-lyme, and if you're ever in Newcastle-under-lyme go to the Hanging Mangoes restaurant, and if you're ever in the Hanging Mangoes restaurant, order the Mushroom Delight starter. It's incredible, and not just in a mushroom-and-paneer way, in a any-sort-of-food way.

If you play magic, get Agricola animal tokens to use as token creatures. They're ever so cute, and there's a small white one, a medium black one, and a large one. You can also use the sea serpents from Escape From Atlantis if you ever have five 5/5 sea serpent tokens in play at once, but that only ever happened once, and the game was pretty much over at that point.

Glee actress Dianna Agron says "I am trying to live my life with a sharpie marker approach. You can’t erase the strokes you’ve made, but each step is much bolder and more deliberate. I’m moving forward from this one, and after today, putting it to rest.[1]" I don't normally base my life around advice from actors in teen musical drama shows, but it looks like maybe I should.

[1] In response to the photo shoot for GQ she ended up participating in, which afterwards turned out very creepy :(
jack: (Default)
On the one hand

I started writing this this afternoon, after trying to articulate it for a while.

There is a great urge, if you realise that what you want to say may be incomplete or may be misinterpreted, to add more explanation. Often this is necessary (like adding scaffolding to a building, or explaining something which is too detailed to encapsulate in one sentence) but often it isn't (like using too much duct tape instead of building something right to start with, or trying to retroactively remove a bad connotation).

This leads to horrible conglomerations where someone tries to retract something in a sentence, which typically only draws attention to it, or at least takes up more effort.

A clarification is a useful thing if both (a) it clarifies and (b) it takes LESS EFFORT TO READ than spelling the whole thing out in full, either because it's available in some axillary way, or because it has a standard phrasing the eye can scan past. If it doesn't, then using a so-called clarification will be very little better than just adapting the sentence to include it, and if you want to be clear, you need to decide up-front if the small cost of everyone reading a possibly-unnescessary clarification is better or worse than people having a chance of misunderstanding something.

"Did you see any tits in your garden (birds[1], not women)," is often not as useful as "Did you see any tits at your bird feeder?"

"Is [blah blah] legal? I know it's different in different jurisdictions, I'm just wondering?" is often not as useful as "Is [blah blah] legal under UK law? Are there any regional variations?"

On the other hand

Being clear is work, sometimes a very very large amount of work. That's why producing well-written prose is part of many professions. Thus, if you WANT to be clear, the advice applies. And if you spend more time writing the clarification than deciding and changing the problematic content would take, it's probably wasted. But if you're writing a comment on the internet, it is often NOT worth the extra effort to polish your prose and reduce it down.

The above advice is how to write more clearly if you have the time. If you DON'T have the time, slapping an incomplete disclaimer, or otherwise posting a comment that could yet be improved, is eminently reasonable, and only a problem if it's SO unreadable any sensible conversation is overwhelmed. So I shouldn't get annoyed at people being superfluous (unless they wasted disporportionate effort to do so, or are for some reason held to a higher standard of prose.)

Ironic footnotes

[1] I realise "birds" can also mean "birds" or "women", but (a) it's not slang I'd typically use, and (b) as it's used in contrast to "women" it's unambiguous what it means[2].

[2] The previous footnote is deliberately an example of a superfluous clarification, since I could easily have said "avians" instead of "birds". But I retained it not because it's clearer but because I think it's funny. If you're trying to be clear spurious clarifications are to be guarded against. If you're trying to be funny I find that very very useful. (Because they often make me laugh.)
jack: (Default)
Really really fucking hot things are REALLY REALLY FUCKING hot.
jack: (Default)
If you want to seem competent, don't put a teabag in the cafeteire by mistake. And if you do, don't let on about it on the internet.
jack: (Default)
If you want to be taken seriously as a film:

* Do not call any chemical element "unobtainium" even if you think you have a good in-universe justification

If you want to be taken seriously as a long, cross-country highway:

* Have at least two lanes all the way along. Having a roundabout where two lanes have to squish into one at a roundabout, and two lanes in two different directions have to cross each other on a roundabout or slip road, with traffic lights does NOT count for "two lanes all the way along".

If you want to be taken seriously as a country:

* Do not do things that are evil AND don't work. To be honest, you're pushing it with EITHER of those, if you're doing things that are both, you're really fucking up.
jack: (Default)
If you're opening an oven, especially if you wear glasses, and unless you're sure that it won't, hold your head out of the way so you don't get a blast of steam in your face which fogs up your glasses.

If you're in the middle of doing something and get distracted, don't rely on your mental stack to recover it. If you're reading an important letter and get distracted, put it on your keyboard, not on a pile. If you're leaving the house and someone speaks to you, lock the door, or hold it open, don't close it and trust yourself to remember to come back and lock it later :)
jack: (Default)
1. If you're pouring from something and it has a lid, hold the lid on with a finger if you can. Then in the 1/20 times the lid is loose it doesn't fall off and send hot/cold liquid all overr the table.

2. http://www.quirksmode.org/politics/blog/archives/2010/05/thoughts_on_the.html Advice from dutch blogger Peter-Paul Koch to Britain on handling what is in Britian called "a hung parliament", and in many parts of Europe, NZ, and so on, called "a parliament".

In short, I can't say if he's right, but (a) he says that in times of economic downturn, it's typical for voters to turn away from smaller newer parties to the devils they know (b) to Dutch voters a Con/Lib alliance is obvious, but forming a coalition should take more than three days, and everyone ought to accept that, even the financial markets.

3. DO NOT USE ELECTRONIC VOTING OF ANY FORM UNTIL YOU'VE TESTED IT!

I see there are electoral nightmares I've had as yet unrealised.

http://news.bbc.co.uk/1/hi/technology/10102126.stm Some people want e-voting. Some people say it's a terrible terrible disastrous idea.

I agree it's a good idea in principle, and am pleased people are getting on board with the idea that the internet is good for serious things. But security for e-voting is difficult for lots of reasons. Look at the American utter disaster with machines which were simply trying to count the ballots in one physical place.

That made me sufficiently cautious I wouldn't like to introduce either without coming up with a proposal and then giving it a rigorous testing.

If the current system were bad enough then possibly rushing to judgement would be better, but honestly, while postal-vote-stuffing and poll-centre-closing are impermissible mistakes, I think the current system does fairly well and needs improving, not wholesale abandonment.
jack: (Default)
Obviously many people use git as easily as breathing. This post is obviously not addressed to them. This post is addressed to people who edit code, and every day or week copy it all into a directory called "backup-DD-MM-2010", or people who use Subversion or CVS.

I think many people may have heard of the idea, but be worried it might be too complicated for them to do easily. A long time ago I went from using nothing to using Subversion, and it's plainly a revelation: it takes about half an hour to install, and is Just Better. Recently I started using Mercurial with TortoiseHg (a convenient graphical interface for windows through add-ins to windows explorer), and already having a knowledge of what source control does, it took about half an hour to have the same directory on two different computers and a file server, and changes on the separate computers merged seamlessly.

If you're not already aware of the benefits of revision control/distributed revision control, what they are in simple terms:

  1. You can change some code and if it stops working, you can easily revert to the version that worked, without thinking "help, which bit did I change?"

  2. You can view a full history and see under what circumstances a particular line of code was originally written.

  3. You can commit successive changes on your own computer, even if they still need testing, and aren't complete, and only push them onto a central repository when a whole feature is finished. (You can do the same thing with a private branch in a non-distributed revision control system but many people don't like to)

  4. You don't always need access to a specific original computer/server so you can perform source control tasks even if you don't have network access

  5. Specifically you can clone the code base onto a laptop for working away, and then easily merge it back onto your desktop PC (whether or not you later push it to a central server) even if you've made other changes in the meantime, but while the computers are separated you can still commit code locally and have all the benefits of having atomic changes and history

  6. People may disagree, but I think it actually matches less-technical people's mental expectations better than a centralised system. People are used to the idea of "just copy the whole source tree here, and we can merge the changes later" which you CAN do with a distributed revision control system, except that you actually CAN merge the changes later rather than saying "oh fuck, they've diverged and it's all gone horribly wrong" if you don't use source control.


Caveats

  1. Obviously if there are several of you working on a project from different parts of the world with no central authority a distributed revision control is even more necessary, but my point is that it's incredibly useful conceptually, even for a single developer

  2. Many people may find they need a possibly more technically feature rich system, such as Git, even if it may be less easy. If you're in that situation you already know what you want, you don't need this essay. This essay is just saying "you need a system AT LEAST as good as Mercurial+TortoiseHg, it is outside my competency to say who may need more"

  3. If you are working for an organisation with source control, it's probably easiest to use the existing one! :)

  4. I happen to be in the position of having a file server more conveniently available than a server than can support a whole client/server paradigm, so something easily based in a file system is incidentally useful to me of itself, regardless of its conceptual benefits, but other people will be the other way round.
jack: (Default)
1. If you're going out and it's sunny, take suncream or a hat, even in England. Yes, you won't need it every time, but it's worth it to never need it and not have it. It really is. Ask yourself realistically, afterwards, which you would prefer.

2. It normally doesn't matter why you're late. If you're often late, and don't want to be, and are well enough to have luxury of doing so, you should give yourself more time. If you're not often late, people will assume you had a good reason. What particular went wrong this time is often interesting, and will often provide symapthy, but it normally doesn't make any especially difference to everyone else. This is why making excuses, whilst apparently logical, has a bad reputation. "..and then the flying panda..." "No. 'I'm running a little late, I'll see you at seven. That's what you say. That's ALL you say."

3. If you work on the computer, don't procrastinate on the computer.

4. If you feel like you're pretending, don't worry. Most other people are doing that too. If you keep putting up a persona of a confident, successful person -- why, then that's what you ARE. If you feel you're denying your true personality, don't worry, pick the best aspects of both and you will eventually become that.
jack: (Default)
So, you're writing an email. Or committing a change to your program into the source control system. Or writing a blog post. Or editing a wiki. Or writing an academic paper. Or writing an article for a magazine[1]. Or, especially, you are including a hyperlink to another website.

This advice comes from someone who's been there. Don't mess around. GIVE IT A MEANINGFUL TITLE.

You'll think "oh, it's obvious what it is, it doesn't matter". But no. The vast majority of the time, if you ever revisit something you wrote a time ago, or if anyone else ever tries to read it, having a vaguely relevant title WILL MAKE LIFE 10,000 TIMES EASIER. Even if it's not useful the first time, I often find myself, for whatever reason, seeing a list of titles later, and if it's at least a little unique, it'll remind me later which is which.

It doesn't even matter if you can't encapsulate the whole thing, a title like "Links: flash version of xkcd U-shaped tetris and other links" is fine. But "links" is a bit useless if for some reason you later end up looking through old posts for a particular link you made.

It's also perfectly fine to add a joke title as well, but think about why you're doing it before you use an ironic title ONLY. If you intend the title ever to be useful, "Fixed stupid typo. Me undumbed meself!" is less useful than "Fixed stupid typo corrupting variable xxxx. Me undumbed meself!" If you're trying to capture people's interest and they haven't figured out the trick yet, or they don't read headlines anyway, using a cutesy joke title is useful to draw them in, but remember it may be less useful for other people.

Of course, it's entirely up to you. Many people never DO try to look back over any sort of history, and primarily email friends where all the content IS equally interesting, in which case you don't need this advice[2]. I'm just saying, it was useful FOR ME, and consider whether it would be useful to you, don't shy away from informative titles just because.

Specifically, I, and I think many other people, are often shy about putting a relevant title. They feel it'll seem boring or redundant. FWIW, I don't think anyone ever minds: a useful title is at worst neutral, I think it's never harmful.

[1] Except that in this case, it probably won't be under your control.
[2] A particular example is posting links to "this seems cool!" I find it incredibly useful if the link says WHICH flash game or WHICH parody article it is, but that's partly because of the way I browse, I know other people apparently don't.
jack: (Default)
I realised that despite having several good weeks my todo lists got left behind, and I found I had half a dozen urgent things. This is the point where it breaks down so I went back to update them. I am still questing for the perfect system for me.

I restructured slightly. I split everything into four, in one place (though now text files instead of gmail draft :)) I have a separate file for:

"Productive stuff" -- Anything which needs to get done, eg. buy a bike, finish the computer game, pay bills.
"Social stuff" -- Not necessarily distinct from the first, but email people, arrange parties, get to the round, etc.
"Spod" -- Ideas I've written down that should get written up and excreted onto my livejournal, or hived off into my fiction plot folders, or thought about.
"Work" -- Actually stored entirely separately on my laptop at work, but logically here in the hierarchy.

The idea is, each should be prioritised, with stuff at the top labeled as "do by [today's date]", and "do by [weekend's date" etc, and some "need to do by october," etc. But unless the shit really hits the fan, I should always be doing something on each each day. Writing a book and going to the someone's party are different sorts of urgent, and I might have to choose one or the other, but that choice should be clearly forced on me, not implicit by collapsing several degrees of freedom into one by ranking everything in one file.

However bad things are, I need *some* social life, but I need to get things done too. It was hard deciding what I needed to do this week when things clashed, and because social life naturally refills a todo I could not notice I wasn't actually achieving anything :)

While I'm sharing, other text files I organise things into you may be amused to hear about include:

"To Wiki" -- Things I heard about and need to look up. Eg. "So who is Herodotus?" My hearing about him and wondering who he was was some time before I was bored, and browsed his entry on wikipedia. If I don't have this, when I browse wikipedia it's entirely random. By extension, this file also has knowledge to be acquired from elsewhere, eg. "What do you call a chain tool?" (thanks, Mobbsy!) and "How are utility bills proof of anything when you can just print one out yourself?"

"To amazon" -- Books (or films) I've seen recommended and need to either look up and see what I think, put on my list to read one day, or order next time I order anything.

"Rec books" -- Books everyone must read. Having them here saves thinking every time I'm asked that. It used to include films, but I couldn't actually think of any films I think everyone *must* see, even if I'm surprised if they haven't.

"Quotes & snippets" -- Things I've seen or heard someone say, or I've said, that I liked and think need to be saved. They generally get thrown into lj posts or at various quotefiles at some point. This is not an ideal solution -- I need some kind of distillation to find ones funny out of context, and which are only funny to me.
jack: (Default)
Often people who play computer games complain that life lacks appropriate hacks. But it does; we're just used to them.

Look at, for instance, Casimir effect. Who on earth would have expected that? Free pressure, generated from nothing. But it happens, someone figured it out, and eventually will be exploited.

The same mentally. Is it cheating to not have strength of will? Somewhat. It's certainly better to be strong, and then you can be in unexpected occasions as well. Then again, you might as well get things done in the meantime.

I used to be hopeless. I'd let emails, bills, work, everything pile up until I responded in a rush.

My current habit is that everything that has to be done, is essentially a unit task (ie. requiring little decision, and about 1/2 hr or less), I assign to a day at some point in the future when it arrives. Anything I want to put off more, I assign to next month. I categorise things into such tasks; 'Q something' -- where I need to decide something; and '#' where I lump a compound task to be broken down later.

Then on any given day, I have up to half a dozen, and can do them without worrying about any of the others. It's easy, it works.

It works for me. Specifically, most things at home *are* such simple tasks. At work, or writing, or programming, I need decent structure. And none are hard in themselves. And there few are enough that I generally do have time to do them all. If you differ, you may need something else.

Why does it work? Well, five years ago, I could keep everything I needed to do in my head. Later, I couldn't, but still had the habit of doing so, so generally ended up with a scribbled mess in my mind at the bottom of the list, containing things I'd forgotten until they became urgent. But knowing that there's nothing being lost, and I don't have to do 20 things, just 5, enables me to do them easily and without fuss.

It's like extelligence; I use the paper (ok, text file on server or gmail) as an extension of my mind. And by writing it down remember it better anyway, if I need to. Of course, some people are naturally orgnaised. But then, successful people have their own systems. Who is to know I'm not? Only me, people who know me well, and people who take away my crutches :)
jack: (Default)
*sigh*

I spend half a day debugging, and what was the problem? The debugger was running in the simulator (which doesn't work) not the board. That was the problem *last* time too. It would be more efficient to check that first every time, together with a couple of common flaws. But I always think "I'll remember, no-point fixing it."

In addition to doing profiling on programs, I should do profiling on me. If I spend 80% of the time debugging, I need to write code more carefully. If I spend 50% of the time looking things up I need a better reference system. If I spend too long typing I should c&p common commands.

If I keep my flat tidy (three days and counting it's been left in a suitable-for-mum-queen-katie-or-george state) it's a lot less work to clean it, because a swift wipe suffices for washing up. Why don't I do this?

I could go on (preventive maintence vs. repairs) but I've already had to remove my "one-liner" tag, so I'll stop :)