Friday, March 24, 2006

Good writing

We are in 2006 and have a pretty advanced technological and philosophical level, right? While reading articles about history of mathematics I saw that Archimedes almost developed calculus (200 BC) and wondered what our world would be like if he did (Calculus was developed in the 18th century, almost 2000 years later).

Lately I was thinking what our world would look like if we wrote ideas in a clear and understandable manner. Let's not think about the writings of big names like Einstein but your last email, the technical manual for your printer, the NABK STANAG 4355 about Modified Point Mass Trajectory Model etc. etc. When all these little nuisances add up, our life becomes pretty miserable (think of all the extra effort you have to put in to understand). I believe that if these seemingly unimportant things were written nicely, we would be, ummm, may be 3000 years more advanced.

So dear reader here are a few tips to achieve good writing (from How to Write More Clearly):

• The world is run by people who write.
• Clear writing leads to clear thinking.
• You don’t know what you know until you try to express it.

Instead of doing what’s easy for you, do what’s easy for your reader.
You do the extra work so the reader has an easy time.

Five steps:

Planning (deciding what & how to write)
Drafting (getting it on paper once)
Revising (getting it on paper better)
Editing (fixing spelling, grammar, typing)
Formatting (choosing typefaces, layout, etc.)

If you can’t figure out how to organize your material, write down ideas in random order, then sort them.

The goal of the revising step is to make your writing clearer and easier to read.

Thursday, March 23, 2006

Top Coder

An interesting development methodology is employed by TopCoder where "developers from all over the world are competing to build your next application".

Put a hacker to work:
"Clients with software needs meet with TopCoder's developers to nail down their specifications and requirements. The developers break the project into functional components, which are posted online. TopCoder's members view them and decide whether or not to join the competition.

Both the client and a TopCoder review panel rate each submission on a host of factors, including how well it works and how thoroughly it is documented. Once the winning components are identified, TopCoder puts them together and implements the system for the client."

Saturday, March 18, 2006

John von Neumann

Tribute to John von Neumann @ Math every day:

"John von Neumann invented our universe.

Then he died at the depressingly early age of 54, robbing the world of perhaps the greatest genius of the 20th century. "Those who know" generally seem to rank Albert Einstein ahead of von Neumann, but Johnny always gets a solid #2 vote. Frankly, though, I think Johnny had a far bigger impact on my life, and not just because I'm a programmer. What did Albert do, really? Dashed all our hopes of faster-than-light travel, that's what he did. Whined a lot about not agreeing with quantum mechanics, that's what he did. To the best of my knowledge, Einstein didn't even know EJB, which according to many Amazon folks makes him a retard.

When I say that von Neumann invented our universe, I'm not trying to be poetic or rhetorical. What I'm saying is that his first attempt at a computing machine, one that he didn't really like all that much and considered mostly a prototype, is still the one sitting on my desk today. That means we're a bunch of frigging boneheads. You, me, everyone."

Learning Math

First a few messages from our sponsor :P My fellow readers notice that I am a wikipedia fan. It enables me to find information in seconds that would otherwise (e.g. looking up in books) take me at least half an hour, if not forever. Now, imagine the overall increase of productivity all over the internet. We might be approaching singularity...

Now back to our topic...

The unreasonable effectiveness of mathematics in the natural sciences:

"the enormous usefulness of mathematics in the natural sciences is something bordering on the mysterious and that there is no rational explanation for it"

Math for Programmers:

"Math is almost always about formalizing our "common sense" about some domain, so that we can deduce and/or prove new things about that domain."

"I think the best way to start learning math is to spend 15 to 30 minutes a day surfing in Wikipedia. It's filled with articles about thousands of little branches of mathematics. You start with pretty much any article that seems interesting (e.g. String theory, say, or the Fourier transform, or Tensors, anything that strikes your fancy. Start reading. If there's something you don't understand, click the link and read about it. Do this recursively until you get bored or tired."


Wednesday, March 08, 2006

Uludağ'da Kayak

4-5 Mart tarihlerinde Kafkas Derneği doğa sporları topluluğu Mezbjen'in organize ettiği Uludağ gezisine katıldım. İşte belgesi...

Tuesday, March 07, 2006

Munich Massacre

The movie Munich about the aftermath of the Munich Massacre reminded me of a detailed thesis about the events.

Safety Critical Software

I started to study the development-test requirements for safety critical software. Safety critical means that an error/malfunction could lead to loss of property and worse loss of life. Some quick thoughts:

For a comprehensive account of accidents in software based systems, see "Safeware: System Safety and Computers", Nancy G. Leveson, Addison-Wesley, 1995

Wikipedia entry for DO-178B, Software Considerations in Airborne Systems and Equipment Certification.

Another link to DO-178B: RTCA/DO-178B, Software Considerations in Airborne Systems and Equipment Certification


"...there are two key issues with safety-critical systems. First, you have to understand all the situations in which a hazardous condition might occur. The way to discover all of the safety issues in a system is to get a lot of knowledgeable people in a room and have them imagine scenarios that could lead to a breach of safety.
The second issue with safety is to be sure that once dangerous scenarios are identified and controls are designed to keep them from happening, future changes to the system take this prior knowledge into account. The lethal examples my friend on the airplane cited were cases in which a new programming team was suspected of making a change without realizing that the change defeated a safety control. The point is, once a hazard has been identified, it probably will be contained initially, but it may be forgotten in the future."

"The word “process” has become tainted among developers; it means something imposed by people who have lost touch with the realities of code development. Developers accuse ‘them’ of imposing processes because they sound good in theory, and are a foolproof way of passing an auditor’s comparison of the practice to a particular standard. Developers find themselves overloaded with work that they feel they don’t have to do in order to produce good code. The unfortunate consequence of this is that anything said by the “process camp” tends to be disregarded by the “developer camp.” This leads to an unwillingness to adopt a good practice just because the process people support it."


Real Time and Linux:

"The example of the paint nozzle and the average framerate are examples of what we call hard real-time and soft real-time constraints, respectively. Hard real-time applications must have their deadlines met, otherwise an unacceptable result occurs. Something blows up, something crashes, some operation fails, someone dies. Soft real-time applications usually must satisfy a deadline, but if a certain number of deadlines are missed by just a little bit, the system may still be considered to be operating acceptably."

"Real-time applications have time-related requirements. Real-time operating systems can guarantee performance to real-time applications."

Monday, March 06, 2006

Börek tarifi

Norveç'e Rahmi'nin yanına gittiğimde Rahmi bi peynirli börek yaptı, ben de gözlemledim. Şu an tembel olduğum için ayrıntısına girmiiciim. Yakında tarifi veririm. Şimdilik şu foto ile ağızlar sulansın:

Çamaşır etiketi

Çamaşırlar, giysiler üzerinde etiketler olur, hani şu kaç derecede yıkanacağını vs. söyleyen. Sonunda efendi gibi tüm işaretleri açıklayan bi tane buldum. Özellikle üzerinde çarpı olan üçgen kafamı karıştırıyordu. Büyrün...

Norveç macerası

23-28 Şubat tarihlerinde sevgili dostumuz, datlımız Rahmi'yi ziyarete Norveç'in Trondheim kentine gittik. Aşağıda maceranın fotoromanı. Bi ara erinmezsem yazı ile süslerim. Fotoroman aşşaadan yukarı doğru okunmalı, yani hemen alttaki resim en son resim manasına geliyor, kapiş?