A Brief Look at C++0x

I had more than a brief look at (but less than deep study of) A Brief Look at C++0x, by Bjarne Stroustrup from January 2, 2006. I hope I would not have to deal with this monstrosity in future software development projects.

I prefer to deal with advanced concepts the FORTH way. Like LISP or SCHEME, have a way to roll your own programming constructs. On the other hand, have a seamless way to integrate with low-level programming languages such as C or assembly language.

Python, alas, still misses a way to embed a function written in C in a Python script to compile it on the fly and run it together with the rest of the script, to support low-level operations in an efficient way. FORTH, on the other hand, supports embedding assembly language in FORTH source code.

Instead of piling all levels of abstract concepts on a single language and run the risk of making its abstractions leak (see: The Law of Leaky Abstractions) and making whatever is going under its hood overly complicated and difficult to understand and debug, how about making different languages support different levels of abstractions yet seamlessly interoperate, like existing assembly language integrations into FORTH and C?

The dilemma of using illegally-obtained information

discusses in Illegally obtained information the problem and proposes a solution to the problem.

In the first Dirty Harry movie and in real life in Israel, the problem is one of preventing a crime which is happening right now or going to happen soon. In Israel, it is called “the ticking bomb” dilemma. What do you do if you know that a terrorist put a ticking bomb somewhere, which will kill several people when it explodes; or when you know that a suicide bomber is on his way and you must stop him before he explodes bringing several lives down with his own life?

In my opinion, resolution of the dilemma begins with identification of possible ways for authorities to abuse the system and harass innocent civilians. After all, the original motivation for the complicated and convoluted procedures of the court systems all around the world, and to the principle of suppression of illegally-obtained information, is to prevent framing up innocent people, who ran afoul (or otherwise are not conducive to the interests) of people in power.

Uncertainty of truth of mathematical proofs

According to the article Mathematical proofs getting harder to verify, it is now very difficult and sometimes impossible to be certain about the correctness of mathematical proofs.

I can envision the rise of the special profession of mathematical patching. It would work as follows.

  1. A fundamental theorem is proved, but its proof is difficult to verify.
  2. A lot of mathematics is being based upon that theorem.
  3. Another fundamental theorem is proven and receives similar honorable status in mathematics.
  4. A contradiction is found, which means that both theorems cannot be both true.
  5. In order to save the rest of mathematics, the theorems are patched.

Patching, in this context, means adding qualifications to the theorems, so that fully-qualified versions of the theorems do not contradict each other. The qualifications will be based upon the actual way the theorems are used in subsequent mathematical development, which is normally less than the full generality of the theorem.

Do the rulers of the "Free World" secretly subsidize terror organizations?

As a way to induce citizens to submit themselves to 1984-style telescreens, do our dear elected leaders cut police budgets and secretly finance terror organizations so that we’ll be persuaded to allow surveillance cameras to be installed at our homes?
Houston Police Chief Wants Surveillance Cameras In Private Homes

Law of Demeter

Law of Demeter
Introducing Demeter and its Laws

The degree of obeying Law of Demeter in a software application’s design affects its maintenance.
I am wondering whether the same Law or a similar one applies to the number of places one must consult in source code to understand something.

For example, if you define in C++ a macro which expands into a template, expanding in turn to a class which inherits from two classes and has a virtual function – how many source code files do you have to consult to understand what exactly is going on in the original macro expansion.

Or, a simpler case: you #define a macro which expands into a curried function call.
You #define another macro, which curries a further argument in that function call.
Then you’ll have to consult three different places in source code in order to understand the function call.

There seems to be a trade-off between maintenance needs (ability to modify the software by editing at one place and easily grepping the entire source code base to rule out any special cases), and understanding needs (ability to understand everything about a variable or function by referring to its definition/s at only one place; possibly not having to grep for more than one pattern in order to match all uses of that variable even if they hide inside macro definitions).

Did anyone else research and/or write about this issue?

What human rights should convicted murderers have?

The present system, which grants convicted murderers like Yigal Amir some rights, looks to me like broken one. In principle, the proper punishment for murderers (especially those, who deny you your franchise right by voting for you by means of a pistol rather than by ballot) is death. However, in practice they should be sentenced to life term. This is because of the possibility that the convicted person was framed – a possibility which is too real when police forces do not have adequate budgets or professionalism.

This is in contrast to people, who committed less serious crimes and do not deserve to be executed because of those crimes. While they are imprisoned, they are entitled to some rights, which will allow them to return to society in more or less sane frame of mind and become contributing members of society.

What rights should convicted and imprisoned murderers have?

My position is that they should be granted the right to run their own investigations and evidence collection, which can lead to their exoneration. They should have unlimited access to lawyers and to law libraries. They should have access to forensic textbooks and other sources of information. After all, the reason they were kept alive is to allow for the possibility that they were wrongfully convicted and imprisoned. Except for the right to collect evidence of their innocence and appeal their conviction, they should have no rights.

This applies, in principle, even to Yigal Amir. This covers the hypothetical case, in which he was framed AND hypnotized (brainwashed) to believe that Itzhak Rabin had to be murdered.

A Nightmare

I had a nightmare, which leads to a puzzle.

In my nightmare, I parked my car in a parking lot and went to carry out my errands. As I returned, a woman came in her car and parked her car in the empty parking space next to my car, got out and started talking in agitated way on her cellphone. She parked her car in such a way that I could not get my car out without rubbing her car and leaving scratches on both cars. So I needed her to come back to the car, and re-park it in a better position.

In my nightmare (as in real life) I am deaf so I had no idea what she was talking about and did not know if it is a real emergency or just extreme Blond inconvenience. I tapped her shoulder and started asking her to re-park her car. She pushed me aside and continued talking into her cellphone. I needed to get out urgently and could not afford to wait 20 minutes until she finishes her personal business. Nevertheless I waited 5 minutes just in case she really has a problem.

As I was pondering what to do now, I woke up.

Now, children, what courses of action were open to me?

  1. Violate her personal space by taking her cellphone from her until she moves her car to let me out.
  2. Be aggressive and scratch both of our cars.
  3. Honk my car’s horn (after having entered it from the right front door).
  4. Visually bother her by flashing or pissing in front of her.
  5. Write down her car’s license plate number and take pictures of her car and her face using my camera-cellphone.
  6. Bottle up my annoyance and take a cab to my destination and try not to feel like schmuck (“frayer”) afterwards.
  7. Look for the parking lot’s guard and lodge a complaint with him.
  8. Start with (5), continue with (3) and then (2).

What is the word length of the computer that the IRS use for Bill Gates' taxes?

According to Microsoft founder too rich for tax computer to handle, IRS need to use a special computer to store and manage Bill Gates’ tax return.

Given that Bill Gates’ fortune is now $47×109, how many bits are needed to represent it?
Dollars: 47×109 = 0xAF16B1600 i.e. 36 bits (not including the sign bit).
Cents: 47×1011 = 0x4464DD49800 i.e. 43 bits (not including the sign bit).

Maximum fortune which can be represented in 31 bits (signed) and 32 bits (unsigned):
231-1 cents: $21,474,836.47 or $21 million
232-1 cents: $42,949,672.95 or $42 million

If only dollars are represented, then billionaires can be accommodated ($2,147 millions in 31 bits, $4,295 millions in 32 bits).
Thus, if IRS ignore cents, they need the special computer to manage tax returns of several of the billionaires having tax relationships with USA. So Bill Gates probably is not the only one, whose taxes require the IRS to use a special computer.