Profile

Cover photo
Jakob Runge
27 followers|11,427 views
AboutPostsPhotosVideos

Stream

Jakob Runge

Shared publicly  - 
 
 
Dizzying but invisible depth

You just went to the Google home page.

Simple, isn't it?

What just actually happened?

Well, when you know a bit of about how browsers work, it's not quite that simple. You've just put into play HTTP, HTML, CSS, ECMAscript, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just connected your computer to www.google.com.

Simple, isn't it?

What just actually happened?

Well, when you know a bit about how networks work, it's not quite that simple. You've just put into play DNS, TCP, UDP, IP, Wifi, Ethernet, DOCSIS, OC, SONET, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just typed www.google.com in the location bar of your browser.

Simple, isn't it?

What just actually happened?

Well, when you know a bit about how operating systems work, it's not quite that simple. You've just put into play a kernel, a USB host stack, an input dispatcher, an event handler, a font hinter, a sub-pixel rasterizer, a windowing system, a graphics driver, and more, all of those written in high-level languages that get processed by compilers, linkers, optimizers, interpreters, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just pressed a key on your keyboard.

Simple, isn't it?

What just actually happened?

Well, when you know about bit about how input peripherals work, it's not quite that simple. You've just put into play a power regulator, a debouncer, an input multiplexer, a USB device stack, a USB hub stack, all of that implemented in a single chip. That chip is built around thinly sliced wafers of highly purified single-crystal silicon ingot, doped with minute quantities of other atoms that are blasted into the crystal structure, interconnected with multiple layers of aluminum or copper, that are deposited according to patterns of high-energy ultraviolet light that are focused to a precision of a fraction of a micron, connected to the outside world via thin gold wires, all inside a packaging made of a dimensionally and thermally stable resin. The doping patterns and the interconnects implement transistors, which are grouped together to create logic gates. In some parts of the chip, logic gates are combined to create arithmetic and bitwise functions, which are combined to create an ALU. In another part of the chip, logic gates are combined into bistable loops, which are lined up into rows, which are combined with selectors to create a register bank. In another part of the chip, logic gates are combined into bus controllers and instruction decoders and microcode to create an execution scheduler. In another part of the chip, they're combined into address and data multiplexers and timing circuitry to create a memory controller. There's even more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Can we simplify further?

In fact, very scarily, no, we can't. We can barely comprehend the complexity of a single chip in a computer keyboard, and yet there's no simpler level. The next step takes us to the software that is used to design the chip's logic, and that software itself has a level of complexity that requires to go back to the top of the loop.

Today's computers are so complex that they can only be designed and manufactured with slightly less complex computers. In turn the computers used for the design and manufacture are so complex that they themselves can only be designed and manufactured with slightly less complex computers. You'd have to go through many such loops to get back to a level that could possibly be re-built from scratch.

Once you start to understand how our modern devices work and how they're created, it's impossible to not be dizzy about the depth of everything that's involved, and to not be in awe about the fact that they work at all, when Murphy's law says that they simply shouldn't possibly work.

For non-technologists, this is all a black box. That is a great success of technology: all those layers of complexity are entirely hidden and people can use them without even knowing that they exist at all. That is the reason why many people can find computers so frustrating to use: there are so many things that can possibly go wrong that some of them inevitably will, but the complexity goes so deep that it's impossible for most users to be able to do anything about any error.

That is also why it's so hard for technologists and non-technologists to communicate together: technologists know too much about too many layers and non-technologists know too little about too few layers to be able to establish effective direct communication. The gap is so large that it's not even possible any more to have a single person be an intermediate between those two groups, and that's why e.g. we end up with those convoluted technical support call centers and their multiple tiers. Without such deep support structures, you end up with the frustrating situation that we see when end users have access to a bug database that is directly used by engineers: neither the end users nor the engineers get the information that they need to accomplish their goals.

That is why the mainstream press and the general population has talked so much about Steve Jobs' death and comparatively so little about Dennis Ritchie's: Steve's influence was at a layer that most people could see, while Dennis' was much deeper. On the one hand, I can imagine where the computing world would be without the work that Jobs did and the people he inspired: probably a bit less shiny, a bit more beige, a bit more square. Deep inside, though, our devices would still work the same way and do the same things. On the other hand, I literally can't imagine where the computing world would be without the work that Ritchie did and the people he inspired. By the mid 80s, Ritchie's influence had taken over, and even back then very little remained of the pre-Ritchie world.

Finally, last but not least, that is why our patent system is broken: technology has done such an amazing job at hiding its complexity that the people regulating and running the patent system are barely even aware of the complexity of what they're regulating and running. That's the ultimate bikeshedding: just like the proverbial discussions in the town hall about a nuclear power plant end up being about the paint color for the plant's bike shed, the patent discussions about modern computing systems end up being about screen sizes and icon ordering, because in both cases those are the only aspect that the people involved in the discussion are capable of discussing, even though they are irrelevant to the actual function of the overall system being discussed.

CC:BY 3.0
1
Add a comment...

Jakob Runge

Shared publicly  - 
 
I define a model to be a simulation of external reality within a mind. It is an approximation, a system by which we can make some predictions that are somewhat accurate most of the time. Some confuse their models with reality itself — since I use God to inform my morality, there must truly be a God; since quantum mechanics makes probabilistic predictions, the universe must be fundamentally non-deterministic. These kinds of judgments fail to reali...
1
Add a comment...

Jakob Runge

Shared publicly  - 
 
Thanks to ‏ @exiledsurfer for tweeting nearly my entire speeach at wienerin12 start reading at bottom for a real timeline:) @birgittaj's final words: "Remember YOU ARE THE POWER. Don't forget it " 23mexiledsurfer ‏ @exiledsurfer @birgittaj 'we allowed the collapse of finances in iceland to happen. we need to reclaim our responsibilities' @birgittaj 'our democracies have become like dictators with many heads. we have a right to know who does what'...
1
Add a comment...

Jakob Runge

Shared publicly  - 
 
Well this is interesting :)
 
Lamport Signatures
#crypto

This is such a cute algorithm that I can't help but write about it. The Lamport signature scheme allows you to build signing and verification with only a cryptographic hash function. The approach is as follows:

Let H be a hash function whose output is b bits long.
To create a keypair:
Choose b pairs of nonces (with each nonce being at least b bits long): (n_0_0 n_0_1), (n_1_0 n_1_1), ... (n_b_0 n_b_1). This list of pairs of nonces is your private key.
Compute b pairs of hashes: (H(n_0_0) H(n_0_1)), (H(n_1_0) H(n_1_1)), ... (H(n_b_0) H(n_b_1)). This list of pairs of hashes is your public key. Publish it.

To sign a message m:
Let d = H(m). By definition above d is b bits long. For each bit d_i of d, if d_i is 0, append n_i_0, and if d_i is 1, append n_i_1. The resulting string of b nonces is the signature of m. Each bit of the b-bit hash value is used to choose between one of the b pairs of nonces.

A signature can be verified as follows: given d = H(m) and a signature s_0, s_1, ..., s_b made of concatenated nonces, for each bit d_i of d, we can trivially check that if d_i = 0, then H(s_i) = H(n_i_0), and if d_i = 1, then H(s_i) = H(n_i_1).

An attacker cannot forge the signature for a different message m' as follows:
1) Let d' = H(m') and d = H(m). d' != d with overwhelming probability, so there is some i such that d'_i != d_i. Suppose, without loss of generality, that d_i = 0 and d'_i = 1. Then to sign m', the attacker must release n_i_1, which you did not release when signing m; they cannot fake the value of n_i_1, since you earlier released H(n_i_1) as part of your public key.

As a comprehension check, an alarming property of Lamport keypairs should become apparent: they can only be used to sign a single message before they become useless. Can you see why this is?
1
Add a comment...

Jakob Runge

Shared publicly  - 
 
New Cyanide and Happiness Comic.
1
Add a comment...
Have him in circles
27 people
Kevin Jakob's profile photo
Sophie Kowalski's profile photo
Lena Schiffer's profile photo
Christoph Blümel's profile photo
Rico Feist's profile photo
Verlag Hermann Schmidt's profile photo
Johannes Thorn's profile photo
Immo Traupe's profile photo
Florian Golemo's profile photo

Jakob Runge

Shared publicly  - 
 
 
I can't make this stuff up

I'm sitting in a Starbucks doing random whatever over an iced americano. While I waiting for my drink, I watched a guy with his friend, pick up a newspaper; and start to remark on the Samsung Apple verdict.

Guy: "Wait, so what they're saying is, Samsung is the same as Apple?"
Friend: "I know, right? Makes me think twice about how much I paid for my Mac Book"
Guy: "Seriously"

Not 10 minutes later, a husband and wife, same newspaper:

Husband: "... Samsung's iPad is the same as Apple's iPad, and I paid how much for the Apple one? Honey, I told you they were a ripoff", after looking up the Samsung tablet on his iPhone.
Wife: "Oh wow," looking at the screen, "... that's a lot cheaper. Think we can return it?"

I put my Samsung QX410 on my table, and started to plug in, when he leans over to me, "Sorry, you don't mind if I ask, how much did you pay for your Samsung laptop?"

"Oh, no worries, it was $700." I replied. 

I watched shock overcome his face, like actual shock. He looked at me, blankly, for an awkward amount of time, "Mind if I have a look?" he asked. 

So, I obliged, and showed him a few things. He commented on Windows 7, so I opened up my virtual machine of OS/X... By the time the conversation was over, he was ready to kick Cupertino in the nuts, I think.

... Now, the punchline: 

I'm writing this post after the FOURTH group of Starbucks patrons have made the connection that Samsung is now the same as Apple. They don't know the details, they don't really care, what they know is Apple is saying that Samsung is the same as Apple ... and with one simple Google Search, you get prices that are basically half for what seems to be the same products -- for nearly everything. 

Two of these groups (including the husband/wife) asked me about my Samsung laptop, the second group noticed my Galaxy phone (also by Samsung)... Best billion dollar ad-campaign Samsung ever had.
1
Add a comment...

Jakob Runge

Shared publicly  - 
1
Add a comment...

Jakob Runge

Shared publicly  - 
1
Add a comment...

Jakob Runge

Shared publicly  - 
 
As most server admins should have heard by now, there’s a new cross-platform local root exploit available, associated with CVE-2012-0056 using /proc/<pid>/mem. While the exploit in the blog post uses /bin/su as a target suid executable, Fedora is doing a good job at least for that binary, using ASLR and thus defeating the exploit. But using find /usr/bin -uid root -perm -u+s | while read file; do if readelf -h $file | grep -Eq "Type:\s*"; then ec...
1
Add a comment...

Jakob Runge

Shared publicly  - 
 
haskell ekg with gauges :)
I've been busy implementing some of the feature requests I've gotten the last few days. Today I'm releasing the result as ekg v0.3. Here's what's new: Counters and gauges The old counter concept has been split up into two concepts: counters and gauges. Counters are monotonically increasing while gauges are not. An example of a counter would be requests served since program start and an example of a gauge would be the number of concurrent connecti...
1
Add a comment...
People
Have him in circles
27 people
Kevin Jakob's profile photo
Sophie Kowalski's profile photo
Lena Schiffer's profile photo
Christoph Blümel's profile photo
Rico Feist's profile photo
Verlag Hermann Schmidt's profile photo
Johannes Thorn's profile photo
Immo Traupe's profile photo
Florian Golemo's profile photo
Links
Basic Information
Gender
Male