Monday, August 31, 2009

Demnstrating the premises of an argument is more important than demonstrating their link to the conclusion

Quick sketching....

Here's a major criticism that I think can be applied to how most arguments are made. If we say the structure of the argument is like

if A, B and C then X
my criticism is that people primarily try to justify the argument by justifying the then part.

They may make some efforts to justify the if part - to justify A, B and C, but I think mostly this is more about giving the appearance of having checked that task off than a genuine attempt to ensure they're true.

Having taken A, B and C to be the case, they argue why X should follow, and try and back that up other reasons why we should take X to be true.

The problem with this is, I think, is that A, B and C actually being the case is far more important to X being true than the line of reasoning that allows you to go from A, B and C to X.

A, B and C define a terms of reference, a picture of the world. The arguments for then X are really along the lines of "in a world where it is such that you have A, B and C, it would follow that X". And I don't think it's that hard to have distorting simplifications in your terms of reference that allow you to derive X, even if X isn't actually true.

Justifying the if part is the major task in showing that the world actually has the certain properties, and works in the particular way that, when you work out the consequences, you see that X is the case.

.

I think we usually think of the premises of an argument as simply facts, but really the bulk of the premise is an outlook, a framing, a kind of model of the world and the kinds of ways you can reason from facts to conclusions. Kuhn's insight about paradigms is about this kind of thing.

.

This is a major reason why in most arguments the parties end up talking past each other. Of course the other person's view seems wrong - they're working from different sorts of premises. If you really want to get somewhere, examine the premises.

.

I can't think of a forum (the popular media, books, academic papers, discussion forums, etc) where it is really considered acceptable to really look into premises, or even to look into the premises behind other people's work. Philosophy is an area where you might expect to see it, though from the stuff that I've seen it doesn't seem to happen.

I suppose blogs are one medium where, in the first place, you can get it out there, and get away with it unscathed, though I kinda doubt anyone would be that interested in reading it.

Copy-editing marks and annotations

Signal vs Noise looks at why traditional copy-editing marks are more effective than how revision changes are shown in Word's Track Changes feature.

I think Track Changes is symptomatic of a more general shortcoming of all existing software: they’re hopeless when it comes to annotations.

Most software simply has no support for adding annotations to bits of your information (in your address book, your image files, your calendar, email, etc etc.). There might be a separate ‘note’ field, but that’s nothing like being able to add real annotations, like you can do on paper.

As the linked post points out, annotations should stand out as separate from what they are annotating, but I don’t know of any existing software that gets this aspect of annotations right.

Also, with hand-written annotations you can use subtle details, like the positioning of the annotation in relation to what it applies to or the size of the annotation text, to convey information, and software annotations are poor in this regard (though it'd definitely be worth investigating how to make it better). Certainly this is one area where pen input would be useful.

Sunday, August 09, 2009

The internet is good for Vim

I think Vim is a great text editor and one that's well worth learning. But it's certainly a bit of effort to learn all the commands and get used to working in different modes. A lot of people seem to be put off by that initial frustration.

You're editing a file and there'll be something, often fairly simple, that you want to do but don't know how. And while the Vim help is quite good it can be hard to find info on the specific thing you want to do, so it’s easy to get stuck. At least that was the situation 10-15 years ago. But these days you can just put details of what you’re trying to do into Google and you’ll likely get a good answer. And the net contains a number of Vim cheatsheets.

Of all the editors, Vim probably has the largest initial hump to get over before getting to proficiency, but also one of the largest payoffs for doing so, and the internet is making it a lot easier to get over that hump. And for that reason we might see a resurgence in its use.

Monday, August 03, 2009

Mangalam's Vegetarian Moussaka

Mangalam's Vegetarian Moussaka

Tastes very nice.

Ingredients

  • cooking oil, 5 tablespoons
  • eggplant, 1 medium
  • onions, medium, 1, peeled and sliced
  • potatoes, 2
  • medium tomatoes, 2
  • brown lentils, 400g can
  • tomato paste, 2 tablespoons
  • mixed herbs, 1 teaspoon
  • vegetable stock powder, 1 teaspoon
  • salt and pepper to taste
  • For the sauce
    • butter, 2 tablespoons
    • plain flour, 2 tablespoons
    • mozzarella, grated, 3 tablespoons
    • milk, 1½ cups

Method
  1. Peel and cook the potatoes

  2. Slice the eggplant and spread on a plate.
    Sprinkle eggplant with salt and leave for 15 minutes.
    Rinse and pat dry.

  3. Fry the eggplant in a little oil until brown on both sides and set aside.

  4. Heat the remaining oil and cook the onion until soft.
    Add the brown lentils (with the liquid from the can).
    Stir in the tomato paste, stock, herbs and seasonings.
    Bring to the boil.
    Cover and simmer for 5 minutes.

  5. Slice the cooked potatoes and tomatoes.

  6. Line the bottom of an oven proof dish with half the eggplant.
    Pour over half the lentil mixture and top with sliced tomatoes.

  7. Add the rest of the eggplant, lentil mixture and layer with the potatoes.

  8. Making and adding the sauce

    1. Melt the margarine, stir in the flour and gradually blend in the milk.
      Bring the sauce to the boil, stirring constantly.
      Beat in the cheese.

    2. Pour the sauce over the moussaka

  9. Bake in a moderate (180) oven for 45 minutes or until golden brown.

Thursday, July 23, 2009

How to backup Winamp song ratings and playcounts, and media library playlists

If you want to backup your Winamp song ratings and playcounts, as well as the playlists you create within the Media Library, this is how you can do it. You can back it up so you don't lose the information when you get a new computer and reinstall Winamp onto it.

I got this information from here and here

The files are in this directory:

%appdata%\Winamp\Plugins\ml
(On Win2k/XP, %appdata% is
    C:\Documents and Settings\(username)\Application Data\
On Vista, it is
    C:\Users\(username)\AppData\Roaming\)


The files are:
main.dat       # ratings and play counts
main.idx # ratings and play counts index file
recent.dat # play history
recent.idx # play history index file
*.m3u8 # playlists stored in the media library
playlists.xml # list of the playlists stored in the media library

The first of the source pages also suggests some alternative strategies for saving this information.

Monday, July 06, 2009

Using a game to teach regular expressions

Quick sketching....

You could have a game to teach people regular expressions. It might even actually be fun. I don't know if anything like this has already been done (a very quick look doesn't seem to show anything like it), but here's one way it could be done.

It might be a war between alien forces. You are commanding one side.

The enemy march in a single line in from the right side of the screen, and as the commander of your side your goal is to stop their troops reaching the left side of the screen. You can send out troops from the left side to attack the right side.

There are some number of diff types of enemy troops, and at your disposal you have specialist troops, each one of which can pick of a particular type of enemy troop.

So if the front of their line of troops is a 'green' alien, you send out a 'green' soldier. your troops will always win, as long as you send out the right type.

So you could just play by sending out the right sequence of troop colours...

But then their troops start moving faster and it gets harder to take our their troops one by one.

Luckily there are patterns in the troops... the front of their line might be one green soldier, followed by five blue soldiers, ending with a red soldier

So if you can set up a single command for 'one green', 'one or more blue', 'one red'.

What i'm talking about so far is like a regular expression where you are matching specific characters; they can also match classes of characters, like 'whitespace' or 'word characters' or you can have character classes...

And the game could gently introduce the ability for the player to have such higher-level control... e.g. some of the enemy might be carrying shields... blue ones with shields, red ones with shields and so on... so your 'attack specification' could allow the player to deal with more abstract classes like this.

Ideally, the game would give the player a gentle ramp up to the sort of abstraction regular expressions afford. the player could handle things fully manually... by manually specifying the pattern to meet... and then they would appreciate the ability to handle it in a higher-level way.

The player should be rewarded by being able to take out as many enemy as possible in the one command (the one reg-ex)... the more they take out, the more spectacular it should look, and perhaps the more points they would get (if there were points).

Here's some other ideas.

I can even imagine building a 'search and replace' mechanism into the game... perhaps the 'search' pattern could be use to specify what to target and the 'replace' pattern what weapons to use on each of those targets.

In addition to the idea of a game based around the idea of regular expressions, I might be actually use them to provide powerful input mechanisms in existing sorts of games... real-time strategy games strike me as a possibility.

Sunday, June 14, 2009

Switching between windows with a directional mouse-gesture (or a map)

Here’s an idea for how a computer operating system could enable you to quickly switch between windows. The idea is that you could press a some key or key combination to indicate you wanted to switch windows, and then you could specify which window simply by shifting the mouse pointer from its current position just a little bit in the direction of the window you wanted to switch to.

The operating system would guess which window you wanted to switch to and make it flash or something. If it had the one you wanted, you could press the mouse key and that window would get the focus. I think the system would have to figure out which window was, overall, most in the direction you've gestured.

If it didn't select the one you wanted, you’d move the mouse again to try to make it clearer which window you wanted. How would this work? Imagine that you’d moved the mouse to the right to indicate a window to the right, but you the one you actually wanted was further to the right of the one the system guessed.

To indicate that other one, you could just move the mouse a bit more to the right and it’d figure out you meant the window more to the right. Whatever the subtleties an actual implementation would have to deal with, I think there’s a good chance you could figure out a workable solution.

(On windows, instead of simply pressing a key, you could press and hold down the Windows Key and move the mouse pointer and then release the key once it has seleted the one you want).

As different approach, instead of gesturing direction, pressing the ‘switch windows’ could bring up, at the place where the mouse pointer was, a small schematic map of the desktop indicating all of the windows’ locations. Mousing over a window on that map would highlight the actual window it corresponds to; clicking it would switch to that window.

Friday, June 12, 2009

More birds-with-arms (pics)

Some more photoshopped pictures of birds with added arms, thanks to the good people on the Something Awful forums.

When I see a picture of a bird now without arms, like this one, my brain is thinking "amputee":



Here they are:










Wednesday, June 10, 2009

"Photoshop Arms Onto Birds!" (pics)

Over on the Something Awful forums, Paradox86 said "It's pretty simple. A friend and I agreed that birds are pretty pissed that they don't have arms. We decided this should be fixed."

Yes, this is what the world has been needing. Pictures of birds with arms. Yet it is somehow strangely compelling - there's some pretty brilliant stuff there... here's a handful of them:










Sunday, June 07, 2009

Rough notes on getting things done

Doing an assignment, writing a book, losing weight -- whatever the task is, there's no doubt that it can be hard to get things done. Here's some rough notes -- that I'd like to clean up sometime -- on ideas to make it a bit easier.

  • Build habits. Habits have momentum, and they can suck you into a task without you trying.
  • Associate a place with a task (if you can). That's one good way to build a habit. I go to a local coffeeshop to do PhD writing. That's all I do there, and I don't go there otherwise. I find it quite useful. If it's a place you don't do any other tasks at, it's less likely to trigger habits associated with them.
  • Make the habits generic, so you can always invoke them. If you make the initial task "start writing" (start writing anything - it doesn't matter what), then this applies regardless of what you are writing or what you are writing it for.
  • Minimised the (perceived) next task. Make it easy to start.
  • Doing has momentum. Make the initial task very simple. Simply by continuing to work on it, it can gather momentum and snowball and if that happens you don't have to even think about trying to do next thing.
  • Impose non-negotiable constraints (where possible). The coffeeshop I do my PhD writing at doesn't have any internet access, so I can't stuff around on the net even if I wanted to. (I understand that many tasks require internet access - this is just an example of the general principle). I also don't have Freecell or Solitare etc installed on my computer.
  • Have others around who can see you. That's another thing I suspect is an benefit of writing in a public place... it feels harder to slack off. May not work for some sorts of tasks.
  • Be prepared for initial Suck when getting into any new sort of task / setup. Basically it’s like developing a skill - it's going to take a while to get into it.
  • Learn to recognise and acknowledge when you’re refusing to consider doing something or how to do it, and just pushing it back. and that if you can do this, this could be all that’s required to actually get your major goals done.
  • We seem to have a tendancy to try to figure things out in our heads before starting. This tends to make the task seem to big, and you just end up staring at a blank page or screen. So learn to recognise when you’re doing this.
  • Related to this, there's a tendancy to want to go into a ‘perceptual response’ mode of thinking – you get stuck. (need to do more work to explain this).
  • As a longer-term proposition, try building up desire to achieve what you want to achieve.
  • Try to have “definite critiera” (I need to do more work here to explain what I mean) -– like writing something that reads from start to finish, rather than just a bunch of notes.

Wednesday, April 08, 2009

Some interesting-looking loft-style bedroom/desk/storage units

 
Some interesting-looking loft-style bedroom/desk/storage units (via dornob):








Monday, April 06, 2009

Interesting persuasive technique in anti-smoking ad

The latest anti-smoking ad being shown on tv here:



As a means of persuasion, it employs an interesting technique, one that I think is pretty effective.

It tries to take on trite kind-of 'excuses'. It doesn't try to counter them by dealing directly what their content. It doesn't explicitly respond to them at all. Each one is followed by a totally separate slice of conversation from a totally separate situation.

That next slice of conversation 'responds' to the triteness by highlighting the seriousness of what is really at stake. What's interesting is how it does this. It takes the syntactical form of the trite statement "I don't think I can quit" and 'responds' with another one with a parallel form "I don't think I can operate".

Something about that parallelism makes the response a powerful smackdown. I think it must be that our brains take that similar structure as meaning the response's content consititutes a very complete and definitive response.

I'm on Twitter now

I thought I'd have a go at Twitter. I'm jamesrcole.

Saturday, April 04, 2009

What does it mean to be open-minded? (video)

What does it mean to be open-minded? I think there's a lot of confusion about this. The following animated video (10 mins) does a lot to clarify.

The video author's criticisms are perhaps a bit too direct, but I think his points are good and the graphics and animation are used well.

Friday, April 03, 2009

Antipodies map

[Update: this map, or at least a similar one, can now be found here]



If you dug a hole through to the other side of the earth, where would you end up? The web-based Antipodies map lets you find out.

Just locate your present location and it'll show exactly where the opposite side of the world is.

Tuesday, March 24, 2009

Articles on some effective newer UI techniques

Mega Drop-Down Menus - which get a big thumbs-up from Jakob Nielsen. He likens them to the ribbon found in the latest version of MS-Office.



Contextual User-Interfaces. Chris Mahon gives some examples. They let the user perform relevant actions without having to shift context. And as the user performs actions, the UI is dynamically modified to take this new context into account, so the user can perform tasks more quickly and easily.

And while I'm here I'll give another plug to Bret Victor's visionary -- and still very relevant -- paper Magic Ink: Information Software and the Graphical Interface.

"It’s easy to make something incredible."

I believe that having high standards is probably the most important thing required for becoming good at anything.

Rory thinks so too

It’s easy to make something incredible. All you do is, don’t let what you’re doing be shit.
...
It baffles me that people think making really, really brilliant, stupendous, worldshocking pieces of work is a particular challenge. It’s mainly a battle of endurance. The longer you try and deshit something, the less shit it is.

Monday, March 23, 2009

Minatur Wunderland - world's largest model railway

5 min video of Miniatur Wudnerland, in Hamburg, Germany -- the world’s largest model railway, and actually quite impressive.

14kms of track, 6 meter high mountains, and highly detailed scenery that also includes moving cars and boats. The whole thing cycles through day and night every 15 mins.

Thursday, March 19, 2009

British man Sean Hodgson 27 years in jail for crime he didn't commit

Recent DNA tests have shown that a British man, Sean Hodgson, spent the last 27 years in jail for a murder he did not commit, the Times Online reports.

Wednesday, March 18, 2009

Programming is always a team activity

So you've written a bit of code. As time passes and you haven't touched parts of it for a while, they'll start to fade from memory, and if you need to know them again, you'll need to refresh yourself on them.

A week after you wrote a function, you may be a bit hazy on how it works. Six months down the line you might've forgotten all of the function's details. Three years later, you might have forgotten about the existence of the entire module.

Down the line you're no longer that person who knew the details of the code. The more time since you looked at a piece of code, the more it is like you're reading someone else's code.

So the entirety of your work on that code is more like a team effort than an individual one - your current self writing code for, and collaborating with, your future selves.

With the exception of simple, throwaway programs -- this is why you should always write code for others to read, even if you're writing something that no one else will ever need to touch.