Programming on old hardware is fun, but sometimes a bit frustrating due to the lack of a proper development environment.

For curious people, here is #ngdevkit: an open source C/C++ software development kit for the Neo-Geo.

#ngdevkit includes gcc 4.9, a full C standard library, and an open source replacement BIOS for simple and free development. Another unique feature is its support for source-level debugging: you can debug your emulated ROM with GDB!

Have a look if you want to know what it feels to play with sprites, interrupts and less than 64KB of RAM :)﻿

Russian photographer Nick Lariontsev made this cool time-lapse using macro lens to show how mold grows from up close. At this zoom level, something that normally disgust us transforms into a beautiful alien universe full of life.

Elementary S01E22 - Risk Management Phone tracking. Sherlock figures out that the victim's cell phone was intercepted. He deduces that the phone was tampered with, and the victim was tracked. The return-label that made Sherl...

Elementary S01E15 - A Giant Gun Filled With Drugs No computers and only a short product placement of the Microsoft Surface tablet. Elementary S01E16 - Details No computers Elementary S01E17 - Possibility Two Only ordinary...

Shoutout to +Jakob G! Thanks to his efforts while interning in Aarhus, the 1.9 release of the Dart VM includes a port of V8’s Irregexp Engine for regular expressions making your regular expressions up to 150 times faster than before! We chose to take a different approach to integrating the Irregexp Engine: reuse Dart’s existing optimizing compiler and code-generation backend. This reuse helps reduce maintenance cost and share optimization efforts: optimizations for Dart will benefit regular expressions and vice versa.

In V8, Irregexp compiles a regular expression by parsing it and converting it into an intermediate automaton representation, which V8 then analyzes, optimizes and finally directly generates native machine code. The V8 implementation requires a native-code backend for each supported host architecture. Indeed, at the time of writing V8 has 7 distinct Irregexp backends.

In Dart, Irregexp initially compiles a regular expression, just as in V8, by parsing, converting, analyzing and optimizing it. Finally Dart generates IR (intermediate representation) instructions. This IR is the same representation used for ordinary Dart code and so we use the existing Dart optimizing compiler to further optimize the code and generate native machine code.

The Dart implementation has been tested against the same benchmark suite as developed for V8’s Irregexp. Here, the Dart VM is within a factor of two from V8. For short-running regular expressions, such as parsing URLs, Dart is actually faster due to a very fast entry to the generated matching code.

There are several reasons we don’t hit the same peak performance as V8 across the board. For example, Dart spends more time on compiling regular expressions because, after building the Dart IR, we further optimize the code. Also, V8’s hand-tuned machine-code backends are expertly tailored to executing regular-expression code on each individual platform. The machine code Dart produces is not as efficient because the existing optimizing compiler can’t make the same assumptions about properties of the code (such as what to hold in registers and what not to). We will be looking at these issues, and due to the single shared Dart backend, improvements become improvements to the Dart VM as a whole.

We hope you enjoy Dart's new and improved regular expressions. Look for the new implementation starting with Dart 1.9, which is now in the developer channel.﻿

Talks and blog posts about JavaScript performance often emphasize importance of monomorphic code. However they usually don't provide any digestible explanation of what monomorphism/polymorhism is and why it matters. Even my own talks often boil down to Hulk-style «ONE TYPE GOOD. TWO TYPE BAD!

Yesterday on another forum one of my friends talked mentioned how, as far as was visible from the NSA slides leaked a while back, Twitter was basically the one company that fought for its users' privacy, after all other tech companies gave up.

I think others have discussed the NSA slides ad nauseum (short summary: they're pretty misleading and look a lot more incriminating than they are), but there is, in fact, a legal process by which companies can be served with legal requests for user information, and on top of that prevented from telling anyone about it. All companies -- not just Google -- are subject to this process. This story shows what happens when Google is on the receiving end.

The public narrative on Google at this point is that it trades away user privacy to make money, sells data to advertisers, etc. By contrast, I believe Google is still a company that values its users above all other things, and fights for them, sometimes at great expense and with little public fanfare. This is an example of why.﻿