The Panini Formulas

The Panini sticker book for the upcoming UEFA Euro 2016 football tournament features 680 stickers this time. We can calculate how many sticker we need to buy to fill the album by using the amazing (due to its relationship to music and architecture) harmonic series formula:

Latex formula

Buying 4829 stickers, it will give me 4149 stickers to swap, assuming that stickers are evenly distributed. If we take into account that stickers are not sold separately but in packs of 5 stickers, the result is slightly different.

Having bought my first 160 stickers today, I have 3.3% of these already, caught in the coupon collector’s problem. We can calculate the probable duplicates I will have from these 160 stickers by:

Latex formula

and I ended up with 17 duplicates, which is nearby.

Wikipedia is About Lists

US-American artist Micheal Mandiberg has processed all German Wikipedia entries into books and finished his project with 3.406 books. I didn’t expect that almost 9% of the German Wikipedia consists of lists, equivalent to 273 books:

Besonders viel Platz nehmen Listen ein: 273 Bände sind nur mit Aufzählungen gefüllt. Listen von Komponisten, von Städten, von Brücken, von Kulturdenkmälern.

Today’s Neural Networks Are The Machine Code

In a great new piece in Wired, Jason Tanz announces the end of coding. That might be a bit tendentious but it shows that machine learning that comes with neural networks has the effect of computers programming themselves, with us humans reduced to providing some training data sets:

If in the old view programmers were like gods, authoring the laws that govern computer systems, now they’re like parents or dog trainers.

A neural network takes lots of input data and create its own internal wirings, matching input data to the desired output. It is self-learning, so to say. The neurons of a neural network effectively learn by adjusting their own relative weights (expressed by a number value) as well as by adjusting the weight of the relationships between different neurons (also expressed by number values). As all of the generated stuff is just lots and lots of numbers, we might not be able to say for sure how neural networks work and how they will react on specific input data:

The code that runs the universe may defy human analysis. Right now Google, for example, is facing an antitrust investigation in Europe that accuses the company of exerting undue influence over its search results. Such a charge will be difficult to prove when even the company’s own engineers can’t say exactly how its search algorithms work in the first place.

While this is surely true, it is perhaps too early to be pessimistic.

Read on..

Automation and Artificial Intelligence

Steven Cherry has written an essay about automation and artificial intelligence for the New Scientist. I took two insights from it:

Malone’s third law: “Every technology breakthrough takes twice as long as we expected and half as long as we are prepared for.

So, let’s give real automation with artificial intelligence a few decades, from today.

In fact, all jobs are at risk, even the software programmer’s.

I agree that automation will target all employment sectors, but I would argue that the degree of risk will be divided very unevenly between different professions.

WhatsApp Must Speak German Because

Legal journalism is no easy thing, especially if it is about foreign law or court judgments. All too easy, all those details making the difference, or just the legal context, don’t make it to a published article.

David Meyer’s coverage for Fortune of a recent German regional court of appeal decision in a legal case that WhatsApp is fighting against a local German consumer protection association:

WhatsApp Must Speak German to Germans

Yes, but. This is by no way a suprising decision. It is long established in German legal practice that foreign companies that actively target German consumers are subject to German law, including legal provisions regulating Internet commerce. It is easy to actively target German consumers, with e.g. a German language website (like being sufficient. If you want to avoid German regulation, don’t target German customers specifically.

The appellate court said that while many Germans can understand everyday English, few speak the English legalese in which terms of service are written. Therefore, it said, it was unreasonable to expect them to do so, and WhatsApp’s terms of service and privacy policy are essentially ineffective.

Yes, but. In its decision, the court stressed that it probably wouldn’t agree to any terms of service not being in German language: “Alltagsenglisch mag verbreitet sein, für [..] überhaupt kommerzielles Englisch [..] gilt das aber nicht.”, meaning that while everyday English might be found commonly in Germany, this isn’t true for any commercially relevant situation. This is also a common line of German courts. So, if you want to do business in Germany, you need to follow German law.

If the ruling is finalized

WhatsApp has a chance to lodge a kind of final appeal to the German Federal Court of Justice (Bundesgerichtshof). However, as the recent appeal decision in this case is in line with the common sense of courts in Germany on the applicability of German law, I doubt very much that such a final appeal would have any chance to go through.

Design Makeover

Time for a fresh new design for this site. I wanted to get rid of the shadows, the borders, the fuzzy different shades of grey colors and instead follow a clear, legible and more minimalistic design approach.

Read on..

Check if Mission Control is Active

Unfortunately, Apple has never provided a public API to programmatically check if Mission Control is active. There are not too many use cases for such a check, but I have encountered one.

One of my apps is using a global hot key (using the DDHotkey library) so that the user can press the hot key and the app’s main window is displayed. However, if Mission Control is active while the hot key is pressed by the user, the app’s main window will be displayed but has no input focus, making it impossible to enter any text, click on any button etc.

Read on..

More Boardless Edison

A while ago I shared how I managed, with help from Fuzzing on Edison, to power my Intel Edison without breakout board. While soldering the two power connector wires to the Edison worked, it was not a good job, as the tiny solder joints tended to break very easily once I touched and moved the wires.

After some tinkering, I have now managed to have a more durable solution to power the Edison without a breakout board:  Better Boardless Edison

Read on..

Boardless Edison

Intel Edison is a marvellous device, but the need to power it through a breakout board, either the mini breakout board or the bigger Arduino breakout board, annoys me. Following the advice in Fuzzing on Edison, I successfully got rid of all those boards without using the micro micro connector (Hirose DF 40) on the Edison’s back:

Unboarding Edison

Read on..

Unboxing Intel Edison with Monty

I am more in the embedded devices field nowadays and after some tinkering with Raspberry Pi, I finally ordered some Intel Edison parts. The Edison is a very small computer with the main board having a size of only 35.5 x 25 x 3.9 mm. Its computing power should be superior to that of a Raspberry Pi, but more to that later. My Edison arrived in a small, beautiful cardboard box:

Intel Edison Unboxing

Read on..

Non-Published Publishing Tools

Nowadays, every indie publisher seem to develop his or her own custom publishing tools, be it a custom website and newsletter tool or some fancy iOS app generator. While most of these tools will never see the glaring light of the general public, some are made available commercially, so that anybody willing to pay may use them.

Funnily, quite some of these tools are somehow made available, but not really. The Glide platform, used by Jim Dalrymple’s Loop Magazine since more than one year, is announced to become available only “over the next few weeks”. Curated, the website and newsletter tool used by iOS Dev Weekly, is currently looking for exactly 45 customers, paying $995 each for one year of access. On the contrary, tools like TypeEngine are available to everybody.

While I don’t agree that such publishing tools are unnecessary as such, we have two fundamentally different business models here. On the one side, there are tools that are marketed and sold as just that, being tools, computer software. On the other side, there are tools that are just the tip of the iceberg of a much bigger product, which is a publishing service. So, if you also have a publishing tool ready for distribution, please think twice if you want to be a software company or a publishing house, or, to have it ever better worded, if you want to sell software or consultancy services.

If I were a writer, I would probably buy software, instead of publishing services, but that’s my personal opinion.

Back to WordPress

Today, I’ve migrated my blog back to a WordPress installation, after having used Jekyll for a while. I really like the command-line approach of Jekyll, but mobile blogging has proved more difficult than expected, and static blog generation needed to be done on my MacBook instead of on the server, which was another reason blogging got more and more difficult and I became more and more silent here. Shared hosting and Jekyll are probably not the perfect fit at the moment.

Preparing the migration of my blog back to WordPress turned out to be slightly more difficult than I had expected. I wanted the blog to remain exactly like it was, including the site design, mobile UI, the URLs and the exact behaviour of everything. I ended in writing my own WordPress theme and plugin for custom image uploads and a Python script to import all my Markdown posts into WordPress.

I will always remain a fan of Jekyll, but I’m happy now that the migration worked and I can happily starting posting again – “blogging is preparing for a comeback”!

Recent Menu now Open Source

My app Recent Menu is now open source, and not available from the Mac App Store anymore. Feel free to download the source code from GitHub or the app from my website. Source code as well as the binary are available under a MIT license.

I have thought of making Recent Menu open source software for quite some time now, and recent difficulties with getting a bug fix approved by Apple for Mac App Store distribution facilitated my decision to switch to direct distribution as well as to open the source code, as I don’t have any commercial interest in this app.

I’ll try to add some update detection code to Recent Menu soon, e.g. via the Sparkle framework, so that you don’t have to check manually whether a new version of Recent Menu is available or not.

NSData Base64 Support

This took me by suprise today, when surfing the OS X Mavericks documentation: The NSData object now has built-in support for Base64 encoding and decoding.

Read on..