This Week in Twitter

Powered by Twitter Tools

This Week in Twitter

  • Is Intel worried about the world leaving the PC platform in favor of *Pads? http://bit.ly/dccHdp #
  • Germany is Top 2, 188 removal requests. Is it good, bad or ugly? http://www.google.com/governmentrequests/ #
  • TED has brilliant speakers, but awful internet video delivery: poor quality, no downloads, wrong ads. #ted #android #app #fail #
  • DON'T UPDATE TO IE9 Beta yet. Have just lost one hour of work, typing a new WordPress article. The 9.0.7930 would just save an empty text. #
  • The IE9 issue is reproducable, it seems IE9 doesn't work with TinyMCE http://j.mp/d95O1M. Sunny greetings to many CMSes out there… #

Powered by Twitter Tools

From roof to taste

As a child, I was interested in etymology. Tracing words to their origins has helped me to understand and use them better. When I started to learn Chinese, this my hobby reincarnated. With all these Chinese symbols, the only way to learn them is to build memory hooks by accociating each symbol with a story. Preferrably with its own history.

In this post, I’ll tell you the story of

?

cháng meaning “to taste (food)”.

Several thousands years ago, one shaman wanted to ask gods about the mián “roof” of his temple. He has scribbed a symbolic representation of the roof, something like

?

and gods have understand and answered him. So everyone else also began to use the symbol.

Much later, one young scribe was given a task to write a letter including the word xiàng “direction”. He didn’t know any symbol for that word. So he has asked other scribes for help. They have searched through all the books they had, only to realize there really wasn’t a symbol for that word, and a new symbol had to be invented. Well, “direction” is a quite abstract term. It is hard to depict it directly, without being too specific about the concrete direction. So the only way to construct a new symbol was to depict something that can help building a logical chain to the word “direction”.

After a long discussion, or perhaps without any discussion at all, they have chosen to put the hole ? in the roof:

?

I don’t know their logical chain, but I suppose they have already had this fengshui doctrine, and putting ventilation holes in the roof required exact knowledge of energy flow direction. Or something like this :)

Several hundred years later, some other scribe was looking for a symbol to write the word shàng meaning something like “esteem”, “uphold”, or some other good and high quality stuff. After consulting all other scribes, or may be without any consulting at all, he has decided to invent a new symbol for that. So he took ? with its meaning “to separate” and put it above the ?:

?

The resulting symbol had probably to be read as separated directions, meaning there are good and bad directions, and after a separation process, only good ones will remain.

Afterwards, another couple of hundred years later, something interesting has happened. Somebody wanted to write the verb cháng “to taste (food)”. I imagine a foodie who had discovered a new restaurant in Beijing and who was writing a short note to his friend to invite him to go check the venue together, only to realize there weren’t any existing symbol for cháng.

Now, he could either gather a workforce of learned scribes to initiate the generation of the new logical chain-based symbol depicting the food tasting process. Or, he could trick and use a workaround. This foodie was lazy, so he has decided to trick, especially because Mandarin Chinese has provided him with a way to work around the issue.

In Mandarin, there are only around 1100 syllables (compared with the more than 80000 possible English syllables), and most words consist of one or two syllables. So, for many words, another similarly (or even exactly the same) sounding word exists. Chances are that this another word already has a symbol. So the way to write a new word would be taking existing symbol, and putting some additional clues in it, just to differentiate the two words in writing.

So our foodie took the similarly sounding ? shàng “esteem” and put ? “spoon” and ? “sweet” below it, to build a new symbol for cháng meaning “to taste food”:

?

We don’t know if his friend was able to decipher this charade, and we don’t know if there was a foodie at all.

But fact is, this hack, like all hacks, was an extremely popular method of symbol generation. Some accounts say around 80% of modern Chinese symbols are such phonetic charades. And fact is, that this hack, like all hacks, has long-term negative consequences. The spoken language is a dynamic thing, and pronunciation of words changes with time. The words ? and ? may have sounded the same several hundred years before, but now they sound differently (shàng and cháng), which makes the charade guessing a very unreliable way to read Chinese texts.

But I digress. Those of you who has an extraordinary visual memory (or who just can read Chinese) may object that the cháng symbol above is different from the cháng symbol I’ve started this post with:

??

It is because I haven’t finished the story of cháng yet. In 1956, the communist government in China, pursuing the goal to increase the national literacy, has introduced the simplified set of chinese symbols. I suppose they have reasoned that because the charade principle didn’t always work good anyway, and pupil had to memorize the symbols by rote learning, it would make sense to reduce the number of strokes in the symbols, so that there was less to learn.

To my knowledge, the parallel simplified versions of symbols existed for several hundreds years before the word “communism” was conceived by Marx. But giving the communists due credit, it was their decision and their programme to switch the whole national printed language, including all the teaching in schools, all print media and so on, on to using these simplified symbols. There are different opinions concerning this, some would say the new symbols look too simple and not so beautiful, others would argue with increased literacy and economical benefits.

In any case, if you have learned the traditional symbols, you have to learn the simplified symbols almost anew (or vice verse), because, as you would almost expect, the simplification didn’t followed a limited set of formal transformation rules. No, the new symbols were built using another pre-existing simple Chinese symbols on the same charade principle. In the new cháng

?

we have the ? shàng “esteem” and ? yún “say”. I suppose, Chinese students are free to think of any logical chain for the symbols. That may be “tasting the food and telling the cook good words to ensure his self-esteem”. I personally prefer to go deeper into the atomic components of the symbol, and deconstuct it as a hot tasty food, whose curved ? vapors go up ? to the roof ? and the good smell is distributed ? outdoors.

This is where the story of cháng ends, at least so far.

As a software developer, I find history of Chinese symbols simply hillarious. There are so many delicious parallels with software development, namely with maintenance of legacy systems. All these decisions that had made perfect sense several thousand years ago, but that had some overseen negative consequences leading to unlogical rules of the modern time. These periodical overhauls of the whole system (the switch of 1956 wasn’t the only one major change), that ensure some order for a limited period of time. This hidden knowledge helping the proficient pathfinders to navigate inside the system, while prohibiting newbies to use it (just try to look at any symbol above and intuitively understand its meaning, without apriori knowledge). And this inherent impossibility to keep simple new things simple, because there is such a huge set of principles and traditions that all have to be complied with. What symbol you would expect for the word “simple”? I bet anything but this 13-stroke monster:

?

Frankly, this was a simplified version. The traditional one has 18 strokes:

?

There is one huge difference though, between the Chinese symbols and a legacy software system. While legacy systems are always being hated equally by their users and developers, the Chinese symbols somehow manage to be likable and to be considered as art and valuable tradition by so many people in the world. May be we can learn from them. How do they do that?

This Week in Twitter

  • Swype diesen Twit. Die neue beta von swype für android unterstützt deutsch. Leider nicht deutsch und englisch gleichzeitig. #
  • Be wary when defining roles, don't assume different roles are played by different people. #
  • Don't they have revocation mechanisms in HDCP? RT @TechCrunch: Was HDCP Just Cracked? – http://tcrn.ch/b5saka #
  • @cnn believes there are more english-speaking people than chinese-speaking http://bit.ly/c6GCQi #lol #

Powered by Twitter Tools

This Week in Twitter

  • Wild orange-cap boletus on potato puree (result of yesterdays mushroom hunt) http://plixi.com/p/43629558 #
  • "A warlike, various, and a tragical age is best to write of, but worst to write in." by Abraham Cowley #
  • :) RT @Damir: Does @form follows @function ? #
  • Quicktime registered itself for *.psd files even though I perfectly have Adobe Photoshop. This is why I avoid letting Apple on PC. #
  • Ich mag ein YouTube-Video. — ??????????????? http://youtu.be/1FAYjYqRi80?a #

Powered by Twitter Tools

This Week in Twitter

  • Hat schon jemand die BILD Zeitung in 3D gekauft? http://www.bild.de/BILD/corporate-site/Presse/aktuelle-pressemitteilungen/2010-08-26.html #
  • @bobuk Traffic jam deadlocks are (theoretically) possible. I wonder if Moscow will be the first city having them in reality. in reply to bobuk #
  • This summer ended before it began… #
  • Learned ??… Words with already known parts are easiest to learn. Wondering why the ? in "Taiwan" and "typhoon" is written differently. #
  • Most stupid mistake when designing an App Store? Don't allowing users to pay (easily). http://is.gd/eOTXx #
  • Given how often 'iPhone killer' is being mentioned, one could think the whole journalist guild is dreaming of iPhone demise. #
  • I don't have no iPhone, so I don't need no iPhone killer. #
  • Do I have to install iTunes to try out Apple's Ping? 8-() #radiot #

Powered by Twitter Tools

Silver Bullet Found

It is time to say it aloud: most of software development books are dangerous.

And when I say books, I don’t mean the shameless waste of not renewable resources like ASP.NET in 21 days, Visual Studio for Dummies, and other printouts of help pages, screen shots, tutorials, and code sample listings. No, I mean books like Software Design Patterns by GoF, Object Oriented Analysis and Design by Booch, Extreme Programming series by Kent Beck, and other iconic and deeply philosophical books.

Ever since Brooks’ Mythical Man-Months we software engineers believe in existance of Software Development Crysis, shame ourselves for the poor quality of software we produce, and desperately dream about the silver bullet, this magical and beautiful thing that would finally liberate us from our guilt complex.

Now, here is the silver bullet: we are not guilty. Guys, we overestimate our control over software quality.

Time pressure and unrealistic deadlines are the number one reason to cut on software quality. Therefore, we try and go into unbelievable deeps of smart and sophisticated processes and methodologies to squeeze yet another 5% of efficiency and free up yet another hour we can dedicate to the only activity that can increase software quality – to the thinking.

But being completely honest to ourselves, we cannot deny that having 5% more or 50% less thinking time would not play any significant role to the outcome. To achieve really satisfying results, we need much more thinking time. So much time that some people even believe we would work on software endlessly if we were allowed to. Unfortunately, it is often impossible. There is almost always a deadline, either due to budget constraints, or coming from marketing strategy to use the big wave of some launch event, or even to win over a competition and be first on the market.

There is no such thing as enough time in a software development project. But looking at the bigger picture, I can’t help asking myself: is the software development phase of the project really the bottleneck? The part where the whole software quality gets lost? Because of these poor software developers unable to write a bug-free software in the first try, and with the speed of a typist? Are the activities happening before the development phase also so sophisticatedly optimized and mercilessly streamlined like ours?

And the answer is often no.

I speak about cases, where pre-development activites are paused for two weeks just because some important decision maker acts as a bottleneck due to his busy schedule. A whole two weeks lost! We would implement a couple of additional features, or 50 unit tests, if we had this time!

I speak about cases, where an important information making the planned software architecture to explode comes in too late, just because some team members either incompetent or playing politics.

I speak about cases, where software development is being outsourced, and the customer’s Purchase and Legal spend a month to negotiate terms and conditions with the vendor whom this customer has already been worked with for a year.

I speak about cases, where the project setup includes several vendors that must cooperate but are in competition with each other, so each inquiry would take at least a couple of days and involve quite a lot of politics.

I speak about cases, where software development workgroups are not stable teams of people who have already been worked together and know each other strenghts and weaknesses, and be able to trust each other, but rather being dynamically gathered together from people who coincidentially were free at the project kickoff time. So that the workgroup has to spend days for neccessary philosophical discussions and alignment…

And this is why I think the books are dangerous. They imply that selection of a programming language, coding style, diagram graphical language, choosing exact procedures to exchange information inside the workgroup, the release timeline, and all such stuff, is important. Often, it isn’t very important. They imply that if we do everything right, we can achieve reasonable software quality. Often, it’s not true. And they imply that we are those who is most responsible for software quality. Sometimes, we are the least responsible for it.

Before going into the great lengths and discussing how yet another programming language would make the software better, wouldn’t it be more reasonable to profile the whole software project and eliminate the biggest waste first?..

This Week in Twitter

  • Reading chinese is completely different from reading alphabet-based languages. You remember words not by their sound, but by their look. #
  • My chinese progress sofar: can grasp the topic of some twits. #
  • Nice selling trick (to call it a mouse): http://www.youtube.com/watch?v=yHGODp0b8Ks #
  • Do you also think adding filter and sorting features to the lists destroys usability? iPod and Outlook notwithstanding. #
  • It's like: sorry, I couldn't make the UI really usable, so I'll just throw some filters, just in case you're lost. #
  • Verlockendes Stellenangebot…http://tweetphoto.com/40929047 #
  • How do you know your OOA metaphor is wrong? Important business logic is implemented in the class named InputHelper. #
  • Drafting http://tweetphoto.com/41635074 #
  • I like Fürt http://tweetphoto.com/41689433 #
  • and don't like keyboards missing the h in Fürth #

Powered by Twitter Tools