Protesting data retention wasn't in vain

Seems like the demonstrations against data retention in Germany were not in vain. They seem to have convinced German Justice minister Brigitte Zypries.

Heise runs a story about her on the police congress backing her arguments against the Transparency of the citizen with the recent Germany-wide demonstrations:

Gegen diese ihrer Ansicht nach ausufernde Sammlerei verwahrte sich Justizministerin Brigitte Zypries (SPD). Unter Verweis auf die Proteste von über 10.000 deutschen Demonstranten, die gegen die Vorratsdatenspeicherung auf die Straße gegangen sind, erklärte Zypries, eine Fluggastdatenbank mit einer Eingriffstiefe von 13 Jahren sei der falsche Weg.
Thanks to all protesters, organizers and to Misses Zypries for trying to uphold the constitutional right for privacy.
Read more!

Landtagswahl Hessen 2008

"Dafür [Ann: dass die Wahl manipuliert wurde] gibt es keinerlei Anhaltspunkte, da das vorläufige Wahlergebnis in der Stadt Niedernhausen dem Hessentrend entspricht." Nur wenn das anders wäre, könnte man überhaupt über eine Neuwahl in diesem Wahlkreis nachdenken.
(aus Spiegel Online im Interview im Landeswahlleiter Wolfgang Hannappel)

Interessant, wenn ich das richtig lese sind also nur jene Wahlergebnisse gefälscht, welche nicht im Trend liegen? Wieso wählt man dann eigentlich noch? Man könnte gleich die Statistiker um das Ergebnis befragen und so viel Geld und Zeit sparen.
Read more!


Something like democracy (€50 per vote)

The CCC tried to independently observe elections in Hesse, Germany. Well it turned out, not everybody likes to be observed - so they have something to hide, don't they?

Read reports, especially about the probably manipulated elections in Obertshausen, where it seems they have something to hide. Something big enough to justify turning away independent observers based on constructed reasoning and stalk them to make sure that they are gone.
Read more!


Deprecate Arrays?

Most (imperative) languages got some built-in support for array types and I was asking myself, if it wouldn't help us all to remove the special type from the language and instead treat them what they really are, to help us recognize them as that and get a better understanding of collections types?

What I want to say, would it make sense to replace

Map< Integer,String >
For clarity, the accessing of an array through the indexes could be viewed as a Dictionary=Map type usage, mapping an Integer to some other Type. To actively counter first no votes, you can also specify the initial size in the constructor type and I think optimization algorithms could deduce the original situation from the Map.

Of course some Generics/Template implementations right now are kind of verbose, but let's leave that detail out and assume some type inference.
Read more!


Java Definition order matters

Ever encountered a illegal forward reference in Java? Thought that those days were gone and that compilers finally managed to get the initialization order right. Well, turns out not in all cases.

The Java Language Specification tackles that topic in section It basically says the declaration has to textually appear before another if it's used in a member initialization expression.

The static initializer also has this restriction. Well perhaps thats a reason, why many Java programmers declare Variables at the beginning of their class. I still think thats not the best approach, as the public interface - which should give the best overview of the class - should appear first (textually) to ease comprehension.
Read more!


24C3 Proceedings

Just came across the 24C3 proceedings.
Read more!




Open Source Encryption extension for (over) IM Protocols with plugin for pidgin!

aptitude show pidgin-otr
Enjoy the privacy! If you hadn't known yet, at least ICQ is transmitting messages in plain text or the Internet and the local network, so anyone can listen in or probably even inject messages without you knowing it.

OTR seems to solve this problem.
Read more!

Quicksort in C#

Amazingly short in code and even intuitive if you are a bit into functional programming:

Func< intlist, intlist > Sort = 
xs =>
() => xs,
(head,tail) => (Sort(tail.Where(x => x < head)))
(Sort(tail.Where(x => x >= head)))
Taken from this presentation, also find more interesting features from C# 3.0 there.

Now argue with me, that some languages are not clunky compared to this!
Read more!

Chained comparisons

Have you ever wondered about writing

if( 0 <= x < max ) { ... }
in your program? Did it work? Like you intended?

The (by me) expected semantic for this expression is the same like the mathematical, or if you want to talk in C:
if( (0 <= x) && (x < max) ) { ... }
However in C, the <= operator is left-associative meaning, 0 <= is evaluated first and the integer 1 is the result if the test is true and the second test against max is made to this 1, thus the result is most likely a bug. C++ upholds this C legacy.

Java doesn't make it work, but at least detects it as an error through the dedication that comparisons in general result in an result of type boolean, thus you get this:
operator < cannot be applied to boolean,int
compiler error.

Python (tested) and Ruby (read) implement the "right" behavior, Perl 6 is about to implement it. Concerning D, I came across this discussion.
Read more!


The legendary BTX Hack

The Chaos Computer Club back in the eighties hacked the BTX - Bildschirmtext to demonstrate the vulnerability of the system through transferring 130.000 DM indirectly to their own bank account.

The recording of the back-then news journal report has been put up at Google Video.

It features an interview with Wau Holland.
Read more!


Shared source

Shared source programs allow restricted auditing of normally closed source code. This is mostly done by software vendors to get contracts from governments for sensitive application areas. Examples include Microsoft's Windows OS and Voting machine vendors.

The point I want to bring up is that though you can use that kind of audit to further assure that the software vendor didn't make any unintentional errors, normally this doesn't help you against intentional backdoors.

Why that? Well unless you really build the software yourself, the vendor could show you any source code and deliver any malicious software. This is the point where I doubt, that the auditor really takes the given source and builds the product from there on after the audit.

So those audits still imply trusting the vendor. Thats the interesting point, do you really trust the voting machine vendor? Imagine what you could do with the control over elections in a country. Or the control over a government computer through controlling the operating system.
Read more!