Arnaud Coomans
Cocoa design patterns

For those who are developing on iOS, I would advise you to have a look at the book “Cocoa design patterns”. While not specifically targeted at iOS development, it gives you a good overview of Objective-C and its more popular patterns.

So, beyond the basics, the book covers topics like the Responder Chain, Associative storage, Invocations, Proxies, Forwarding, Core Data models and Bindings.

I wouldn’t recommend this book to real beginners though, even if the first chapters cover the basics. It is best to have some hands-on experience before starting to appreciate this book.

If you are an iOS developer, this is definitely a book to add to your library.

Machine Learning and AI classes

As I said back in July, my interest in machine learning is growing. After reading Tom Mitchell’s book, I was looking for updated courses or informations about this field.

I mentioned the Stanford university offering lesson videos on iTunes U. Now, they are doing even better, by offering a complete (non-graduating) online course, including videos, notes and exercises for machine learning and artificial intelligence (there is also a course on databases for those interested).

The acquisition of data is becoming easier and companies are storing more and more data. The next big challenge will be to efficiently access this data and make it meaningful. I think since quite some time now, that the future big trends will include storage of large amounts of data (NoSQL) and tools/skills to analyze this data (Machine learning, AI).

From an article of McKinsey Quarterly: “[..]the demand for people with the deep analytical skills in big data (including machine learning and advanced statistical analysis) could outstrip current projections of supply by 50 to 60 percent [..]”.

Back to Machine Learning

I finally finished re-reading the infamous “Machine Learning” book from Tom Mitchell. This book is 10+ years old, but is still a reference in the field. 

This book describes the techniques for letting a computer program do a certain task while having its performance improve with experience. 

Techniques include Decision trees, Artificial neural networks, Bayesian learning, Instance-based learning and Genetic algorithms.

Decision trees are built with the ID3 algorithm by putting attributes in the nodes of the tree. Attributes are chosen by maximizing the information gain which minimize the entropy.

Artificial neural networks (ANN) can take real, discrete or vector values. It uses a (multi-layered) network of perceptrons units (linear or sigmoid) whose parameters are updated with gradient descent.

Bayesian learning provides a probabilistic approach to inference. It uses a network to represent the joint probability distribution for a set of variables.

Instance-based learning uses algorithms like k-nearest neighbor to estimate a target function using the k nearest training examples.

Genetic algorithms are  based loosely on simulated evolution. Hypothesis are represented as bit strings and modified by crossover and mutations.

This book was describing the state-of-the-art techniques, back 10 years ago. I now would like to see where this field is heading at, the new findings, the new algorithms, improvements and lessons learned from putting those algorithms in practice. I might probably investigate OpenCourseWare or have a look at the Stanford Machine learning course on iTunes U.

Really nice video from PhD comics about science and the universe

Google Prediction API

Google publicly released its Prediction API at Google I/O conference 2011. The API makes it easy for developers to use machine learning without any expertise. It automatically selects the best ML algorithm and tunes the parameters to get the best results. Only a few api calls are necessary to train, and make predictions.

To use Prediction, first go to the API console and activate it, then you can play with it in the API explorer. To train the system, just upload a csv file on Google storage. The first column is the predicted result and the rest are feature(s).

For those interested in ML however, it is very frustrating because Prediction acts like a blackbox. I had the opportunity to discuss Travis Green, product manager of Prediction. Too bad, he wasn’t too eager to disclose anything about the algorithms.

I can see a lot of applications for this API, ranging from sentiment analysis to consumer suggestions. Can’t wait to have a look at it!

A few words on technology

One problem I often run into when speaking about technology, is when the debate becomes emotional. This comes for variety of reasons: people really think the tech they are using is better (and try to convince you about that!), people want to put themselves forward, etc…

And eventually most arguments make no sense. I very often hear “I’m using X because it’s cool!”. This doesn’t seems to be a good justification to me.




From my point of view, an engineer should:

  • understand the differences between available technologies
  • focus on the objectives (what to deliver)
  • keep an eye on constraints (time, money are usually good starters)

And in addition, I would like to put the following, especially if you are an entrepreneur:

  • take in account the risks and opportunities

Because of all those emotional reactions, I tend to avoid discussing about technology, being picky about the people with whom to discuss about it.

Social media and foreign affairs

On March 1st, I was invited at a dinner with senior advisor for innovation to Secretary Clinton, Alec J. Ross.

Journalists, ambassadors and various NATO officials were present. I was there representing europatweets.eu, a social media about European affairs.

The US public administration seems to take interest in social medias. This reminds me the US companies awaken 6 months/1 year ago. Foreign affairs are waking up after the recent events in middle east. Alec Ross thinks that social networks act like catalysts, meaning they do not make the revolutions, but help by speeding up the process. What changes radically, is that the revolution is led by the network itself and not by a prominent leader.

The administration is clueless on how to use those new medias (and besides, so do many private companies). Ideas includes curation and vetting as a way to filter the information from the noise.

Press and social medias

I am going to address a topic that I should have written long ago. This is the result of working more than 3 years on social networks (mainly Facebook and Twitter).

The company I founded, Commentag, made different social products. We released Tweetag end of 2008, the first semantic search engine for Twitter. In 2009, we launched Europatweets, a social media based on Twitter for European affairs. We also explored ideas like social CRM, user certification programs, monitoring tools and so on…

During that time, we had the opportunity to talk with a lot of people, including journalists, editors, social media experts(!) and other media-minded people.

Let’s reframe the situation: it was 2008-2009, a world economic crisis led some companies, including banks and newspapers, to bankruptcy. The crisis didn’t help journalists to be optimistic about their future. Even today, traditional medias see their business model put in question, but that’s another story.

In that context, some journalists told us they were afraid social media would kill their job, and lead to the end of the industry. 

I think there are two kinds of information:

The first type of information is the one produced by news agencies: raw instant information; available as soon as possible, often unchecked, with no analysis nor background. This information has low value and is the most probable to be in competition with social media.

The second type is (should be) the one present in the medias: refined information; based on cross-checked facts, explaining the background and analyzing the issue. I expect medias to present valid, accurate, analyzed information.

Let me be straight: if you call yourself a journalist, work for a media and are afraid of Twitter, quit your job immediately. Simply because your job is not to provide raw information, but to refine it.

That’s it. Or is it? Well, no. There is another main difference in social media: they convey personal information. That’s information that is meaningful to a particular reader. First because it matches the reader’s interests. There is an increasing trend to offer more specialized content and to address niche markets. Second, it also matches the reader’s relationships. This means that an information can be meaningful for that particular reader and completely worthless for others, even if they have share common interests.

This is why I think social media is not in direct competition with traditional media about information.

But, there’s a catch, and it’s not only newspapers’ concern: a day still has 24 hours a day. And all medias, in fact all entertainment channels, fight for a piece of the same cake. The cake stays the same but as more challengers comes into play, pieces becomes smaller. All medias struggle for people’s attention.

The future of education

What is the future of high education? Here are some hints and reflections on what’s happening now:

Peter Thiel, Paypal co-founder, encourage young people to drop out of school and promote entrepreneurship. When everybody talk about a new internet bubble, he thinks there’s a education bubble instead. I can’t agree more on costs and access to education being major problems, but I don’t think stopping school is the right solution.

There was recently a debate on a french TV, with minister of education and students representatives, discussing about education in France. Their conclusion was that diplomas and degrees do not guarantee a good job anymore. Moreover, having several degrees doesn’t necessarily improve your career. It seems to me that the situation changed from ten years ago, when I was told multiple diplomas were the key to success. In brief, France also feel shortcomings in the educational system.

Consider also that the top in-demand jobs today didn’t even exist ten years ago. As the world evolve faster and faster, education has to prepare students for problems that do not exist yet. Most young people will have many jobs in their career, probably in different domains, and this requires continuous learning.

I remember our friends at Netscouade (also French) thinking about how to harness the net instead going to the university. More recently, Bill gates said he believes in Internet for education. With Internet, universities will become more “knowledge hubs” and be less real “physical” places. Furthermore, limits on the number of participants should be reconsidered.

For those interested, have a look at initiatives likes MIT’s OpenCourseWare or Open Yale. They give you free access to lectures and course materials. By opening up, universities get recognition, while students get a glimpse of the offered courses and material to start with.

Universities like Standford or Columbia (CVN) also offer to apply for a degree (partially) abroad/online.

What will happen to degrees, diplomas (or any kind of “certification” that student attended the class and get the skills)? No doubt universities will insist on the differences between free and supervised learnings (they are businesses after all, right?). But how will companies/employers react to it? Will the importance of diplomas fade?

A last point worth mentioning: universities (and probably even more business schools) are not only places to learn, but also places for people to meet. People with similar interests, to launch projects, build companies, and make changes.

Education has to be open, accessible, and social.

First Post!

Here is the first post on my new blog!

I finally decided to start blogging again. I will not continue with my old network and system administration blog because a lot of things happened since then and, among others, I’m not working as network engineer anymore.

Nevertheless I feel the need to write about things I do or I care about, be it technical or more general topics. I’ll try to update this blog regularly, first to keep track of my thoughts, but also to share it with others.

I hope you’ll enjoy reading my blog and don’t hesitate to contact me ;)