The New 404 Page

“404 Not Found” pages are pretty cool… I mean, if you have a cool 404 page, no one will ever see it unless something goes wrong, essentially. And there are a lot of cool 404 pages out there on the web – they’re just hard to find.

For that reason, I’ve always thought that I should have a cool 404 page. So one fine day, now more than a year ago (the 20th of October, 2007, to be precise), I took a picture of a road sign for the road numbered 404 in Japan. Interestingly, the location is right between the Imperial Palace and Tokyo Station, at the intersection with road number 1.


You can see the sign from another angle on this Streetview shot. The water you see there is the outer moat of the Imperial Palace, and the big avenue, road number 1, is Hibiya-dori.

So last week I finally got around to putting this up on my site. The 404 page just shows this image as a very low quality (i.e. very high compression) jpeg (same effect as the front page background – I like the look of low quality jpegs), with a random flickering that I think really transmits a feeling of brokenness.

So please go ahead and type in a non-existant url to have a look. Now I guess there are only a few dozen http status codes left to photograph…


Software Architecture – What Is It? Down To The Monkey’s Balls

This morning just as I had left the house and turned left into one of the roads that make up the maze of narrow roads between the haphazardly built, tightly packed houses of Kami-meguro, from the far end of the road came flying, at full blast, a small budgerigar. I could feel the flapping of its wings as it swooshed above my left shoulder, just barely missing my head.

I don’t know what the little fellow was up to, but imagine the destruction, had it hit me in the face (I walk pretty fast too). I suppose it had escaped from one of the houses. It probably won’t survive very long, considering it won’t get warm for a while yet and the abundance of cats in the neighborhood. Not to mention its suicidal tendency of flying towards people on the street.

By the way, did you know there’s a population of wild parrots in Tokyo? Escaped parrots have taken up residence in the trees lining the south side of the French Formal Garden of Shinjuku Gyoen. Yes, they are very particular about where they live. They’re larger than budgerigars though, and manage to survive.

© MzePhotos.com, Some Rights Reserved

Anyway, I was going to write about software architecture, not parrots. The last couple of days I’ve been thinking about what software architecture is. The word gets thrown around a lot, and people even carry the title “software architect”.

In my work there’s talk about architecture as well. We’re doing architecture.

Now, I’ve figured out that what gets called software architecture can, in down to the monkey’s balls practice, be classified as one out of five tangible things. I might at some point come up with more, and if you have any suggestion then please leave a comment. Anyway, here they are:

  1. Build-time composition
    Can be in the form of invasive composition done by a proper composition system, as outlined in the book Invasive Software Composition, written by my favorite professor Uwe Aßmann. But more often in the form of simple #ifdefs, or link-time selection of different libraries.

  2. Design patterns
    This is probably my favorite one. Design patterns are powerful not primarily because the pattern in itself is clever, but because they communicate the intention of the programmer to others quickly. If someone knowledgable reads a piece of codes that says it’s doing a visitor pattern, say, then you immediately know what to expect.
  3. Naming conventions
    This might be the most common excuse for an architecture. And I’d count object oriented languages’ attempts to hide things behind (often long) namespace and (often nested) class names as just another naming convention (often termed “object oriented design”). Architecture often seems to take the meaning that things that belong to one part of the system starts with a certain prefix (such as a class name). It’s useful for finding things in the source tree, though.
  4. Function pointers
    … in one form or another. All programmers use function pointers, often termed callbacks, handlers, functors, virtual methods, delegates, etc. Function pointers allows control of flow during runtime, but more often they seem to be used as a bad substitute for build-time composition. At some point there seems to be a line where this common code monkey tool turns into architecture.
  5. Layers of indirection
    It has been said, perhaps by Mark Twain, that any programming problem can be solved by adding another layer of indirection. It is often implemented in the form of function calls, or by using function pointers, often in combination with naming conventions. Of course any code monkey can do function calls. But by doing small transformations of values and data types, and perhaps branching depending on the data, and letting the next layer do this in succession, one can seemingly achieve architecture.
-

Barring further bird attacks, I will consider these five items to be the fundamental building blocks of software architecture. Next, I intend to write about how these can be used to create good architecture. Because one man’s architecture is another man’s code bloat.


Speed Learning Japanese

Yesterday on the bus home from Narita Airport (after spending New Year in Shanghai/Hangzhou) I read the (Japanese) half advertisement, half general interest easy reading magazine provided in the seat pocket by the bus company, and there was this one article that I found quite interesting. It was an interview with the company president of a “speed learning” (スピードラーニング) English enterprise, as well as a student of said company, a 50-ish business/research person who was said to have learned English up to the level of being able to hold a presentation at an international conference in just one year.

Apparently this speed learning method has been around in Japan for 19 years. Upon googling it, there seem to be some enterprises offering speed learning sets in Japan, for not only English but also Chinese, Korean, French, etc, although I’ll focus on English as a target language, but the major player – or only player, in case all the rest are just search engine spamming – is this company called Espiritline.


So what is this speed learning? It seems to be based on the following ideas:

  1. Just listening without understanding much, even for only 5 minutes a day, is enough. After a while you will start wanting to hear more, because it becomes a part of your lifestyle, just like listening to music, and the topics are interesting.

  2. Get used to the sound of the language. The rhythm and sound frequencies used in English are different from Japanese. If you are not used to the sound of English, it’ll sound like noise to you, and you won’t be able to understand it.
  3. The natural order of learning a language is listen→ speak→ read→ write. That’s why speed learning focuses on listening comprehension first.
  4. After each English sentence, the corresponding Japanese follows. The stories are made up of 4-5 second English sentences, after which the corresponding Japanese sentence is read out. This means you don’t have to stop and look things up in a dictionary, and you’ll understand the meaning of the English sentences just by listening, with no need for a textbook. It also means that you will develop an understanding of English as a whole instead of word-for-word, and develop an understanding of English in English instead of in Japanese, and once you have that you will be able to speak English without intermediary Japanese.
  5. Classical music to keep you relaxed. The best study results are achieved when relaxed, so classical music flows in the background, which keeps you relaxed. There are also no great intonations in the narration, so that you can listen repeatedly to the same story in a relaxed state.

On top of this, there’s also a bunch of new age voodoo behind it, it seems. The article I was reading talked a lot about how speed learning stimulates the right brain (I guess it assumes the reader believes in some over-simplified view of the workings of the brain), and on this site selling some speed learning English package, there’s talk about how the background music stimulates the brain’s alpha waves, in addition to talk about left and right brain stuff.

So what to make of this? Does it make sense, and can it be applied to learning Japanese as well?

At first it looked mostly like a scam to me, with the “this guy learned perfect English in one year by studying 5 minutes per day” and the above-mentioned new age stuff, and not to mention the classical background music (I like almost all kinds of music except classical music – I can hardly stand it – so for me personally there would have to be some package without the music).


But a lot of it is sensible as well. I too believe that passive understanding is incredibly much more important than active when learning a language, which means speed learning makes more sense than for instance eikaiwa-style English conversation classes. Listening to real, spoken English rather than using a traditional textbook also seems very sensible.

As I’ve mentioned before, I listen to Japanese radio while working, in addition to the usual influx of Japanese, of course. This is basically the same idea; get a lot of input in a natural, spoken form of the target language, then the meaning comes naturally to you. Having the meaning of the sentences read out in your primary language afterward might be a good idea in the beginning, but once you achieve a decent listening comprehension level and vocabulary, I think it’s probably more of an obstacle to learning. Or maybe not; I still like having example sentences in Japanese/English for comparison when studying vocabulary, for instance…

In conclusion I’d say that if they just dropped the just 5 minutes per day and brain waves stuff, it makes a lot of sense. More sense than going to eikaiwa or school, at least, judging from most Japanese people’s poor English abilities despite actively studying it for years.