Tuesday, October 30, 2007

Phil Greenspun's suggestions for philianthropy

If you've got a bit of money and want to put some of it to good use, Philip Greenspun has some suggestions. He explains the benefit each suggestion could bring, how it could be done, and it's approximate cost.

  • Donate money to Wikipedia
  • Internet Content Prizes - for content such as novels, poems, plays, non-fiction books, textbooks that is published on-line. At present, serious awards for such content is -- by and large -- only when they're published on traditional media.
  • Internet Classical Music Free Library
  • English-language School in Peru's Urubamba Valley
  • Computer Science University in Africa

Sunday, October 28, 2007

Richard Brunstrom on drug policy:

As the Belfast Telegraph reports

"If policy on drugs is in future to be pragmatic not moralistic, driven by ethics not dogma, then the current prohibitionist stance will have to be swept away as both unworkable and immoral, to be replaced with an evidence-based unified system (specifically including tobacco and alcohol) aimed at minimisation of harms to society"
Richard Brunstrom, Chief Constable of North Wales

Bruce Schneier: humans not evolved for IT security (short news piece)

itnews.com.au reports

Human beings aren't evolved for security in the modern world, and particularly the IT security world, according to security guru Bruce Schneier.

Olle Lundberg’s wood-cabin escape (pics)


Pictures of Olle Lundberg’s wood-cabin escape. “woody, simple, airy and largely reused environment he's created for relaxing when not working”. (normally, he lives in a ferry boat in San Francisco harbor).

Thursday, October 25, 2007

Richard Hamming's advice on doing research - "You and Your Research"

In "You and Your Research", Richard Hamming gives his advice on -- not surprisingly -- doing research. For some reason most research advice seems to be pretty elementary with what they say being fairly obvious, but his advice is actually quite good.

If you're wondering who Richard Hamming is, he worked on the Manhattan project, was a founder and president of the Association for Computing Machinery, and was a recipient of the Turing Award (which is like the Nobel prize for computing).

Incorporating inefficiencies/constraints into your conceptualisation of systems

Companies and governments are examples of systems that have kinds of goals or purposes. I think that when we try thinking about such systems, we find it very difficult to factor in the real-world inefficiencies/constraints that apply to/within them.

We tend to conceptualise and reason about those systems as if the agents within them had full/perfect information and had a clear path to work towards those "goals". (I don't think most of us realise we do this, though we can learn to realise that we do it).

But there are all sorts of constraints there - people have limited information, and not all of the information that would enable them to carry out their job properly, and not everyone has incentives that are aligned with the system's overall "goals".

Let's consider an example. If you didn't know better, you might think that, of all software, enterprise software would be the best. Unlike music playing programs or computer games, this is serious business, and companies are paying lots of money for them. And these are companies in highly-competitive environments, and since the software is crucial to their operations, they'd need it to be good.

But enterprise software is -- I'm told -- generally not that good.

In an idealised system, the software would be designed to meet the user's needs. But there are several practicalities in the actual systems that cause inefficiencies, skewing the system away from the idealisation.

Signals vs. Noise say that enterprise software sucks because it's not really designed for the end-users, but to meet the buying critiera of the software purchasers within large companies, who are not themselves end-users of the software.

The buyers don't have as keen a sense of what the software is required to do, and how well it does it, so their evaluation of the software is skewed towards "the feature list, future promises, and buzz words".

Paul Graham mentions another evaluation criteria used by software buyers: making a choice that appears "safe" or prudent:

There used to be a saying in the corporate world: "No one ever got fired for buying IBM." You no longer hear this about IBM specifically, but the idea is very much alive; there is a whole category of "enterprise" software companies that exist to take advantage of it. People buying technology for large organizations don't care if they pay a fortune for mediocre software. It's not their money. They just want to buy from a supplier who seems safe—a company with an established name, confident salesmen, impressive offices, and software that conforms to all the current fashions. Not necessarily a company that will deliver so much as one that, if they do let you down, will still seem to have been a prudent choice. So companies have evolved to fill that niche.


Leaving this example now, I think one of the reasons it's important to understand topics like economics or evolutionary biology (and probably the law -- especially its hisorical development) it to gain a better appreciation for, and awareness of, the effect of constraints upon systems.

Wednesday, October 24, 2007

Lone houses in stunning landscapes (pics)

Photos of lone houses in stunning landscapes.

Monday, October 22, 2007

Missing the thickets for the forest

Focus too much on the trees and you can miss the forest. But focus too much on the forest and you can miss the thickets.

If the trees are individual parts or details and the forest is the whole, then thickets are intermediate structures. They are patterns or structures within the whole.

Entities such as car engines, ant hills, brains, languages, ecosystems and economies can not be understood simply by understanding each of their parts in stand-alone terms.

There is a natural tendancy to think that if an entity isn't X, then it must be the opposite of X. If the entities aren't the parts, they must be the wholes. We can end up seeing them as unalloyed, indivisible wholes. Some people practically relish their 'essential wholeness'.

But I think this goes too far. All of those entities have substructures and patterns within the whole, and we understand how they work and their nature by understanding these substructures and patterns, or thickets.

Sunday, October 21, 2007

Visual input control

Webcams are more ubiquitous these days. Many newer laptops have integrated webcams in the top of their screens. You could employ all those webcams not just for taking pictures or video-based chatting, but also as another input device for controlling the computer.

The user could provide visual gestures. E.g. they could point at a window to switch to it.

Such visual input might be best combined with voice control. E.g. pointing to a window and saying ‘close it’.

You could analyse the video input in more sophisticated ways. For example, to determine where on the screen the user was looking. So instead of pointing at a window and asying “close it”. The user could just look at it and say “close it” (or something like that). Or they could look at a place in a document and say “move cursor there”.

(I have no idea whether it’s feasable to accurately determine where the user is looking. It mightn’t be possible. For instance, there’s a lot of processing that constructs what you see from what your eyes receive, and the specific thing you're fixating on may not be exactly in line with where your eyes are pointed towards).

Here are a few things in this vein:


EyeTwig 'headmouse' "when you move your head left and right, up and down, the Windows cursor, typically controlled by your mouse, moves about the screen".

Camera Mouse "track head or other body movements and to convert those movements into cursor movements on a computer screen."

Some variations on the theme of getting a camera to pick up on a laser pointer shone on the wall, in order to control things like your music player: here and
here

Video of using headtracking for some control in a FPS game.

Friday, October 19, 2007

One a day

You know that card game called Freecell that comes with Windows? I play that a hell of a lot while I'm doing PhD writing (though I can't now that my new computer doesn't have it. Probably a good thing).

Whenever you win a game, it displays an image of the King from the deck of cards. I though it’d be a nice little touch if, instead just having that one ‘winning image’, it has a different one for each day of the year. So there’s a specific image for 19 October, and you only get to see it if you win on that day. That might add a little extra incentive to play it.

You could apply the same idea to pretty much any webpage or program where people are likely to read/use it over and over. For example: the user brings up the form, and on it they see a nice photo for this day. Clearly, nothing earth shattering, but might be nice little touch.

Funny Wondermark comic on lack of perspective

Funny Wondermark comic on lack of perspective – “Everyone who’s smarter than me is a nerd! Everyone dumber’n me is an idiot...”.

Tuesday, October 16, 2007

Favourite Recipes: Grilled Chicken Tacos Alambres

Grilled Chicken Tacos Alambres

(updated 16/10/07: fixed a few typos, and now you can mouse-over ingredients in the cooking instructions to see the quantities, which is useful if you're reading the recipe off the screen while you're cooking.)

Yields 12 to 16 tacos; serves four to six.

This recipe is from an edition of Fine Cooking magazine (I'm not sure whether you can get Fine Cooking at the newsagents here -- I don't recall seeing it -- but you can get them, as I did, from the Brisbane City Council libraries). Tastes really good.

Note that this is for the small, about 12 cm diameter, soft tortillas. Not the big ones, or the hard taco shells.

I haven't been able to find poblano chillis here, but the jalapeno / capsicum substitute works well, and you can get jalapenos at some supermarkets.

  • For the marinated chicken
    • lime juice, ½ cup (from about 2 limes)
    • ancho chilli powder, 1 tbsp (it'll still be fine with other sorts of chilli powder)
    • garlic, 2 cloves (about 2 tsp) minced
    • salt, 1 ½ tsp
    • dried oregano, 1 tsp
    • black pepper, 1 tsp
    • veg oil, 1 cup
    • boneless, skinless chicken breasts, about 600g (1 1/4 pounds)
  • For rest of the filling
    • veg oil, 1 tsp; more if sauteing the chicken
    • bacon, 3 slices, finely chopped
    • fresh poblano chiles, 1 cup, cored, seeded, and finely chopped (about 2 poblanos)
      OR
      jalapenos, 2 fresh, and green capsicum, ½, cored, seeded, and finely chopped
    • yellow or white onion, finely chopped, 1 cup
    • fresh corriander, chopped, 1/4 cup
    • juice of 1 lime
    • salt
    • oaxaca cheese OR freshly grated mozzarella, ½ cup (optional)
  • For serving
Note that none of these last three items -- guacamole, pico de gallo, tomatillo salsa -- are essential. And if you can't get tomatillos (so far, I haven't found anywhere that sells them), you could just use a tomato salsa)
  • Marinate the chicken
    • In a medium bowl, mix the lime juice, chilli powder, garlic, salt, oregano, and pepper; whisk in the oil.
    • Add the chicken, cover and, and marinate in the fridge for 1 hr but no longer than 1 ½ hrs.
  • Make the fillings
    • Prepare a medium-hot fire on a gas or charcoal grill or set a large, heavy skillet over medium-high heat for 1 ½ minutes.
    • Remove the chicken from the marinade, shaking off any excess.
    • Grill the chicken (or sear it in the skillet with 1 tbsp oil), flipping after 4 mins, until it’s just firm to the touch and cooked through, about 9 mins.
    • Let the chicken cool and then chop it into very small pieces.
    • Heat a skillet over medium heat, add 1 tbsp oil and the bacon, and cook, stirring frequently, until the bacon just begins to brown, about 6 mins.
    • Turn the heat to medium high, add the chillis and onion, and cook, stirring frequently, until they begin to soften, about 4 mins.
    • Add the chopped chicken, corriander, and lime juice and stir constantly until the chicken is hot.
    • Season with salt to taste.
    • Sprinkle the cheese (if using) over the top, take the pan off the heat, and let the cheese melt.
  • To serve
    • Set the skillet with the filling on a trivet on the table next to the hot tortillas, guacamole, pico de gallo, and tomatillo salsa so each person can assemble his or her own tacos.

Saturday, October 06, 2007

Worlds largest swimming pool (1 km long)

A swimming pool (includes pics), 1km long, eight hectares in size and transparent to a depth of 35 metres, in the South American resort of San Alfonso del Mar in Chile.

Saturday, September 29, 2007

Saveless mode

When I'm using a text editor or word processor, I don't want to have to think about saving the document. I want to be able to expect that if I've typed something, it's safe and I can't lose it.

I'm not saying that programs should completely forgo an explicit save feature. I'd just like it if, in addition to the way they are now, they'd also had a 'saveless' mode of running where it automatically and behind the scenes saved everything you typed as you typed.

At present, everytime I've write a little bit -- like a sentence, or a sentence clause -- I save the document. I find it simpler to constantly and habitually save, rather than having to remember to periodically (like once a minute) save.

I don't want that distraction of remembering to save. And I don't want the interruption of saving. Interrupting my typing and my thought processes, however minor that interruption may be.

Autosave features might sound like a solution, but I don't like them. If you have it save every minute or so, you still have the consciousness that changes between those saves aren't safe. And even if you have it save very frequently, like once a second, it's not ideal. Usually, there's some graphical indication that it's saving, and that's a distraction. And that's still not enough to guarantee that you won't lose things occuring between saves. Like if you've pasted in a large amount of text.

What you really need is something that is designed specifically for saving absolutely everything you type, as you type it. And to do so in the background, without the user being aware of it happening.

An explicit save feature adds to a program's concept count. Something that people have to initially learn. Pads of paper don't have a 'save' button. Without an explicit save feature, programs would be simpler.

Wednesday, September 26, 2007

Jimi, meet Kurt and Fatboy Slim

Random thought. Imagine going back in time to the sixties, and showing musicians like Jimi Hendrix and the Beatles styles of music that didn't exist then, like hip-hop, grunge (yeah, people don't like that term, but I can't think of a better one for what I want to refer to), heavy metal, and various forms of electronic music... Would it blow them away? Would some of them find some of the styles unpalatable? Would it send their music making down a different path? It'd be awesome if you could actually do it and see.

Tuesday, September 25, 2007

Measures of the world

What are the different ways we can measure the size of the world?

There's the earth's diameter. Another measure is its surface area. That might be more meaningful to us, since our lives are played out on its surface. You could even just measure the amount of land, ignoring the water. Or limit the measurement to the amount of habitated or habitable land (according to some reasonable definitions of habitated and habitable).

Another thing we could ask is: how big is the world each of us has seen? How large an area have you actually seen with your own eyes, during your lifetime? For most of us, it's only a small fragment.

Though we may have only seen a fragment of it, our conception of the the world is much broader, because it also takes in details that we know secondhand, through conversations, books, television, etc.

This conception is subjective, and infused with personal and social details. The place I went to school. The path I take to get to the train station. Where my best friend lives. Those streets in the city where it doesn't feel safe to walk alone at night.

In my conception of the world, the unit where I live is sketched out in detail. But to the person down the road who only knows it from walking past it from time to time, it's little more than a facade made up of what's visble from the road.

Because of these personal and subjective details, this mental conception of the world, though only dealing with small portions of the world in detail, is -- in this sense -- richer than the physical world.

There's another kind of measure of the size of the world. Though the physical world is large and these mental worlds small, there is only one physical world, and billions of mental ones. And the total area and details covered by that billion-piece mozaic is large indeed.

Saturday, September 22, 2007

Don't be afraid to express non-unique points of view

Sketching.. I want to be able to express unique points of view on topics. We're all social animals, so there is an element there of wanting to stand out in the crowd. But it's not simply uniqueness for the sake of uniqueness.

Knowledge is like an expanding frontier, building on and growing out of what we already know. Part and parcel of trying to understand things better is trying to develop unique points of view.

But there's a real risk of trying to only say things that are unique. Of thinking that expressing a non-unique points of view is pointless and lame.

Writing (and talking) about things is a way to "gather your thoughts" about them. Writing about well known things helps you think about them. This also applies to things you know well yourself.

And it's through such synthesis and thinking about the topic that helps you construct new points of view.

There's another dimension to this problem. You might see the value in expressing a non-unique point of view, but you might be worried about what others will think of you expressing it. Will they think it's just an expression of my limitations?

I think it's a sad fact that people tend to perceive any behavior as a direct expression of someone's nature. If someone's mucking around, they're childish. So people who don't want to be perceived as childish avoid mucking around.

Even if they're really intelligent, sensitive, mature people, and mucking around is a reflection of just one facet of their personality, which they'd otherwise only express in appropriate situations, and not express in inappropraite ones.

Memorisation supplanting thinking

jotting...

our society seems to be awash in
magazines, books and tv-shows on
how to do things - typically 'lifestyle' topics
like renovating or art-and-craft

that in itself isn't necessarily a bad thing
but it does seem bad that the focus so much on
supposedly-useful 'tips',
which are usually pretty lightweight facts

I think that has a tendency to create
the wrong sort of attitude or approach in the 'learner'
it becomes a game of fact memorising
and then approaching a situation
by trying to recall which facts are appropriate to it

whereas you should really want to have
an /understanding/ of the situation
that is relevant as a starting point
and /think on your feet/ as you are within the situation.

the problem is
fact memorsation supplants thinking

Friday, September 21, 2007

Smoky Shredded Pork Tacos recipe (Tacos de Picadillo Oaxaqueño)

Adapted from Rick Bayless's Mexican Kitchen

A perfect combination of flavours -- including pork, hot, smokey chipotle chillis (smoked, dried jalapeno chillis), sweet raisins and roasted almonds. Like with a curry, the flavours improve after a day or two.

If you're having trouble finding chipotle chillis, look in 'gourmet' delis or you can order them from various online retailers.


Makes enough for 16 to 18 tacos

  • boneless pork shoulder, 675g, trimmed of fat and cut into 5cm cubes
  • garlic cloves, unpleeled, 5
  • white onion, 1 large, diced
  • ground cinnamon, ½ tsp, preferably freshly ground Mexican canela
  • black pepper, 1/4 tsp
  • ground cloves, 1/8 tsp
  • raisins, 85g
  • slivered almonds, 55g
  • for tomato-chipotle sauce (makes 350ml)
    • chipotle chillis, 2 to 3, stemmed (or canned chipotle chilis en adobo)
      OR chilies pasillas oaxaqueños, 1 to 2, stemmed
    • ripe tomatoes, 500g (2 large round, or 7 to 8 plum)
    • olive or vegetable oil, or rich-tasting lard, 2 ½ tbsp
    • salt, about a scant ½ tsp
  • corn tortillas, 16 to 18 (plus a few extra, in case some break)
  • hot sauce, optional, for serving


Simmer meat
  • In a medium-size (2 to 3.5 litre) saucepan, cover meat with heavily salted water.
    Peel and roughly chop 2 cloves of the garlic and add along with half of the onion. 
  • Bring to a gentle boil, skim off any greyish foam that rises during the first few minutes.
  • Partially cover and simmer over medium-low heat until thoroughly tender, about 1 ½ hrs. 
  • If time permits, cool the meat in the broth. (Reserve broth for soup or sauce.)
Shred meat.  Between your fingers or with some forks.

Make tomato-chipotle sauce.
  • Prepare chillis
    • For canned chillis - remove from their canning sauce.
    • For dried chillis
      • toast them on an ungreased griddle or heavy frying pan over medium heat, turning regularly and pressing flat, until very aromatic, about 30 seconds.
      • In a small bowl, cover chillis with hot water and leave to re-hydrate for 30 minutes, stirring to ensure even soaking.
      • Drain and discard the water.
  • Roast garlic
    • Roast the remaining 3 cloves of the unpeeled garlic on the griddle or frying pan, turning occasionally, until soft, about 15 minutes.
    • Cool and peel.
  • Roast tomatoes
    • Roast the tomatoes on a baking sheet 10cm below a very hot grill until blackened on one side, about 6 minutes; flip and roast the other side.
    • Cool, then peel, collecting all the juices with the tomatoes.
  • Blend chillis, garlic and tomatoes -- pulse them in a food processor or blender, to a medium-fine puree.
  • Fry puree
    • Heat 1 tbsp of the oil or lard in a heavy, medium-size (2 to 3.5 litre) saucepan over medium-high.
    • Add the puree and stir for about 5 mins as it fries and thickens.
    • Taste and season with salt.
Bring the filling together
  • Roast almonds
    • Turn on the oven to 180ºC.
    • Toast the almonds in the oven in a small baking tin until fragrant and lightly browned, 6 to 8 minutes
  • Heat oil 1 ½ tbsp of oil or lard, in a large (25 to 30cm) heavy, well-seasoned or nonstick frying pan, over medium-high heat.
  • When hot, add the shredded meat and remaining half of the onion.
  • Fry, regularly stirring and scraping up browned bits from the bottom, until the whole mixture is crispy and golden, 12 to 14 minutes.
  • Sprinkle the cinnamon, pepper, cloves and raisins over the meat, then pour on the tomato-chipotle sauce.
  • Reduce the heat to medium and simmer briskly, stirring occasionally, until nearly all the liquid has evaporated, 4 to 5 minutes.
  • Add roasted almonds and stir them in.
  • Taste and season with a little more salt if necessary.

Heat tortillas
  • Set up a steamer (with this many tortillas, you’ll need 2 vegetable steamers set up in saucepans or a big Chinese steamer--either choice with 1cm of water under the steamer basket); heat to a boil.
  • Wrap the tortillas in 2 stack in thick tea towels, lay in the steamer(s) and cover tightly.
  • Boil 1 minute, turn off the heat and leave to stand without opening the steamer for 15 minutes.
Prepare tacos
  • Either prepare the tacos in the kitchen by scooping a couple of heaped tablespoons of filling into each warm tortilla, rolling or folding them and nesting them into a cloth-lined basked
  • Or, scoop the filling into a warm bowl and set out with a cloth-lined basket of steaming tortillas for your guests to construct their own tacos.
  • Optionally, add a dash of hot sauce onto the filling in the taco.





Notes
  • Shortcuts: two-thirds of an 800g can of tomatoes can replace the fresh roasted ones; leftover roast pork can replace the boiled pork
  • The pork can be simmered several days in advance (refrigerate it in covered container with its broth, then strain and shred before continuing with the dish) or finish the picadillo a day or two ahead, cover it and refrigerate.

Variations
  • Try mixing the leftover picadillo with grated chesese, baking it to heat through, then seving it as a communal appeitzer or a light main dish with tortillas--a variation on queso fundido.
  • Shredded Pork Enchiladas. Prepare the recipe tripling the sauce; set the extra 2/3 of the sauce aside. Roll the filling in the tortiallas, fit them into a baking dish, pour the reseraved sauce over them and bake at 190ºC to warm through. Sprinkle with queso añejo or Parmesean and chopped coriander; seve immediately.
  • Chiles Rellenos for a buffet. Roast and peel six poblanos, make a slit in their sides, remove the seeds, then fill each with about 5 tbsps of the filling (you’ll only need 1/2 the batch) and fit into a decorative backing dish. Slowly cook 2 large sliced onions in a little olive oil until nicely browned, soft and cramelized. Strew over the chillis and bake the whole assembly to heat through. Sprinkle liberally with queso añejo or Parmesan and set out on the buffet.
  • Use filling to fill tamales, other chiilis (jaapeños, chiptles, chiles pasillas oaxaqueños), molotoes, qusadillas and so forth.


Updated 11 Dec 2017: reformatted recipe and modified some of the wording, to make it easier to read.  Fixed a few typos.

Haunting picture by Bansky