HN user

DanielHimmelein

551 karma
Posts44
Comments14
View on HN
www.osnews.com 4y ago

“Open source” is not broken

DanielHimmelein
1pts1
himmele.blogspot.com 5y ago

The Explore/Exploit Strategy in Engineering

DanielHimmelein
1pts0
www.youtube.com 5y ago

Hamming, the Art of Doing Science and Engineering: Learning to Learn

DanielHimmelein
1pts1
himmele.blogspot.com 7y ago

What's Next for Our Programming Languages and Operating Systems?

DanielHimmelein
3pts0
himmele.blogspot.com 9y ago

Frederick Brooks on Software Design

DanielHimmelein
2pts0
himmele.blogspot.com 9y ago

Alan Kay on Computer Science

DanielHimmelein
4pts0
himmele.blogspot.com 9y ago

Operating System 101

DanielHimmelein
4pts0
grisp.org 9y ago

Bare metal hardware for the Internet of Things, specially designed for Erlang

DanielHimmelein
4pts0
himmele.blogspot.com 9y ago

Characteristics of an efficient engineering team

DanielHimmelein
2pts0
himmele.blogspot.com 9y ago

Psychology and Behavioral Science (not just) for Computer Scientists

DanielHimmelein
1pts0
android.googlesource.com 10y ago

Google Brillo? "Rename libchromeos repo to libbrillo"

DanielHimmelein
1pts0
himmele.blogspot.com 10y ago

Building a car (from the perspective of a pragmatic software engineer)

DanielHimmelein
2pts0
himmele.blogspot.com 10y ago

Building a car (as a pragmatic software engineer)

DanielHimmelein
1pts0
mathias-garbe.de 11y ago

Introduction to the Android graphics pipeline [pdf]

DanielHimmelein
6pts0
himmele.blogspot.de 12y ago

RISC design principles for project management

DanielHimmelein
2pts0
esrlabs.com 12y ago

Mindorid - Android-like application framework for M2M and the Internet of Things

DanielHimmelein
2pts0
himmele.blogspot.com 12y ago

Mindroid - Android everywhere

DanielHimmelein
3pts0
vimeo.com 12y ago

Erlang, the unintentional Neural Network Programming Language [video]

DanielHimmelein
10pts1
himmele.blogspot.com 13y ago

Concurrency: A single human body cell versus the internet

DanielHimmelein
1pts0
plus.google.com 13y ago

Amazon has patented the milkman, etc.

DanielHimmelein
94pts58
github.com 13y ago

Ezwebframe - Erlang thinks that the browser is an Erlang process

DanielHimmelein
1pts0
github.com 13y ago

Game of Life in 42 lines of NetLogo code for the Global Day of Coderetreat 2012

DanielHimmelein
2pts0
himmele.blogspot.de 13y ago

Concurrent Hello World in Go, Erlang, and C++

DanielHimmelein
8pts15
googleblog.blogspot.de 13y ago

Android 4.2 supports wireless display (aka Miracast) to watch movies on your TV

DanielHimmelein
2pts0
github.com 13y ago

Mindroid - Painless threading for native code development in C++

DanielHimmelein
6pts3
esrlabs.com 13y ago

AirPlay for Android - Android Transporter for the Nexus 7 and the Raspberry Pi

DanielHimmelein
25pts1
www.ted.com 13y ago

The greatest machine that never was - Charles Babbage and the first computer

DanielHimmelein
1pts0
docs.google.com 13y ago

What is computation? Actor Model versus Turing's Model

DanielHimmelein
1pts0
esrlabs.com 14y ago

Use SFINAE To Unit Test C++ Inheritance

DanielHimmelein
2pts0
esrlabs.com 14y ago

If the Google Nexus Q is baffling, check out the Android Transporter on the RPi

DanielHimmelein
1pts0

Hi that is funny. I knew that Dianne Hackborn brought Binder over to Android from BeOS and Palm. But I did not know that also the concurrency framework is from the Be guys. Thanks for sharing the link :-).

Why Erlang? 14 years ago

The problem with lthread is that it does not really provide blocking calls inside coroutines (you simply cannot do this with current OSes like Linux or Windows). Just take a look at the docs:

If you need to execute an expensive computation or make a blocking call inside an lthread, you can surround the block of code with lthread_compute_begin() and lthread_compute_end(), which moves the lthread into an lthread_compute_scheduler that runs in its own pthread to avoid blocking other lthreads. lthread_compute_schedulers are created when needed and they die after 60 seconds of inactivity. lthread_compute_begin() tries to pick an already created and free lthread_compute_scheduler before it creates a new one.

It just does the blocking call on its own pthread. That simply does not scale the way Erlang does.

One day there is hopefully an OS where each file, socket, device, etc. is an actor with a message queue. Then you can really be concurrent :-). Even Erlang can then be more concurrent...

I really like reading source code, that's why I put together some advise how to do it: http://himmele.blogspot.de/2012/01/how-do-you-read-source-co...

From reading source code both for fun and for purpose e.g. like the Android, Minix, QNX, Linux and NetBSD, network protocol stacks, filesystems, web frameworks, CouchDB etc. I got a lot of insights into interesting software technologies and architecture patterns. Good software engineers and architects should be good and fast at reading code.