Categories for News



World Summit AI 2017 Amsterdam – some highlights

From Wednesday October 11th to Thursday October 12th, the World Summit AI 2017 conference was held in Amsterdam. It had a terrific line-up, with top professors in the field of AI, like Stuart Russell and Yann LeCun, and ‘our own’ Max Welling. Most of these people were actually there in person. But it wasn’t all science. Large companies like ING, Accenture, and smaller companies like BrainCreators (they were new for me) also had a large presence, with talks on the main stage, or with stands in front of the main arena. In this blog post, I’ll briefly discuss some of my favorite talks, in non-chronological order.

On the second day, Meredith Whittaker, leader of Google’s open research group and co-founder of AI Now Institute, New York University, focused on current applications of ‘AI-technologies’ in the domain of human labour. And on what’s wrong with them, mostly. My summary of the problems she outlined would be that machine learning techniques are widely applied without a solid statistical methodology. The simplest example she gave?

 

 

A soap dispenser that would not give soap to everybody. It obviously has not been tested on people with varied skin color. The field of statistics could have helped here. Who are the intended users of the soap dispensers? People. So, let’s fine-tune, or ‘train’, the soap dispensers on a representative sample of this population. Not just on a bunch of people you know, who happen to be similar to you. The same principles play a decisive role in any machine learning application. And, sadly, they are often not applied correctly, as Meredith very eloquently pointed out. She said much more about this, and there is still much more to be said about it. There certainly are many opportunities for improvement in this area.

Talking about the second conference day, who opened it? None lesser than Stuart Russell, one of the authors of, can I say, the AI Bible? It turns out he is a talented comedian as well. He had the whole audience in the main stage laughing. Even the end of the human species did not seem so bad when he talked about it. His main message? “I cannot fetch coffee if I’m dead”. Currently, machine learning algorithms are programmed to optimise some quantity. In technical terms, they optimise an ‘objective function’. The problem? Humans can’t state very well what they want. Having a super-intelligent AI (if we ever succeed in creating it) optimise a function that was formulated by humans may lead to problems. And we might not be able to stop this AI. It will quickly figure out that it needs to stay alive in order to optimise its objective. And therefore, it will not allow us to switch it off. Being super-intelligent, it may actually succeed in this.
Almost as a side point, professor Russell offered one possible avenue towards a solution: make algorithms uncertain about their objective function. Program AI so that it will put the interests of humans first, even if it is still unsure about what those interests are. If a human switches it off, it should therefore always gladly accept. Could there be dilemma’s and difficulties here as well? Well, certainly there were a good couple of laughs with the follow-up scenarios he offered.

 

 

In his TED talk (https://www.ted.com/talks/stuart_russell_how_ai_might_make_us_better_people/footnotes?language=en) he discusses the same subject matter, so go ahead and watch that right after this blog post.

On the first day, one of the stand-out talks for me was the one by Laurens van der Maaten, now at Facebook, famous for the T-SNE algorithm. If you don’t want to know what that is, you may well skip this paragraph, because his talk was one of the more technical of the conference. But it was a strong talk, leading up to a novel and original combination of deep learning techniques and symbolic AI approaches. The setting was the task of visual question answering: an algorithm gets as input an image and a question about it, and has to produce a correct answer. Admittedly, the scope was narrowed down a bit further: the images in question were generated images of geometrical objects, and the questions were often about characteristics such as color, texture, size, and shape. In this artificial world, however, the proposed solution performed very well indeed: better than humans. It seems these days you cannot sell anything less anymore, no? The sentence containing the question was processed by an LSTM-based sequence-to-sequence model. The output? A small computer program, a combination of primitive functions such as ‘count’, ‘filter color’, ‘filter’ shape. How are these functions executed? Well, they are themselves trained neural networks. An impressive composition of trained neural networks to achieve something bigger! A pre-print of the paper (with a nice picture of the architecture, showing everything I just wrote) is available here: https://arxiv.org/pdf/1705.03633.pdf

With this, I’d like to leave you now, perhaps we’ll add more summaries here later!


Codemotion Amsterdam – Day 1

Last week was the event, Codemotion Amsterdam 2016. Codemotion is known for organizing conferences having high-quality software content and this was the first time they organized a conference in Amsterdam. It was a two day conference with talks on technology trends like Microservices, Graph data stores and upcoming front-end trends like Redux and React Native etc.  I attended the conference along with my Luminis colleague Jettro who was also a speaker at the conference.

codemotion

The morning started with a very interesting keynote WWW: World Wide Web, not Wealthy Westerners’ Web by Bruce Lawson (Opera).  The talk gave insights into how the majority of the world is still not connected to the internet, especially developing countries like India, China and countries in Africa have a large potential internet userbase. These developing countries have a good GDP growth thus more and more people are buying smart phones and getting connected to Internet. The talk discussed strategies used in order to make internet browsing affordable in developing countries as internet data plans are expensive and can be upto 10 % of the monthly income of the users in these countries. Image compression and removal of ads by proxy browsers like Opera mini very effectively cuts down on data usage thus helpful for consumers in developing countries. The talk also discussed Progressive web apps, which gives the user an app like experience while still running in full screen mode of the mobile browser. This is something very useful if you are living in a developed country and have a flaky mobile network and an expensive data plan as instead of downloading the complete App you can use a Progressive web app.

After the keynote, there were multiple parallel sessions and attendee could attend anyone based on their interests. I choose the attend the session “Managing Connected Big Data in Art with Neo4j Graph Database” by Lorenzo Speranzoni. The session focussed on graph databases specially Neo4J, and a real life use-case along with a demo. The presenter discussed how important it is to build relationships between data points instead of just collecting them. Currently, most of the NoSql datastores focus on storing large amounts of data and running analytics on it whereas Neo4j specializes in storing relationships as first class citizens. Storing relationships isn’t possible in traditional RDBMS due to tabular data and rigid schema structure thus with the growing surge in Big Data it becomes imperative to have a data store which stores not just data points but their relationships as well.  The speaker presented a nice demo of Neo4J being used to show the relationship between artists and their paintings, the museums that have those paintings and the cities having those museums.  This talk was followed by a talk on Microservices.

“Living on the Edge (Service): Bundling Microservices to Optimize Consumption for Devices with Spring Cloud & Netflix” by Mark Heckler, this talk was focussed on building effective microservices using the Spring stack, especially Spring Boot and Spring Cloud along with the Spring Netflix modules. The talk gave a very brief overview of microservices and the “12 factor app” methodology.  The presenter, Mark quickly turned the talk into a live coding session, which was fun. He explained all major modules of Spring stack like Eureka for service discovery, Zuul for routing / Edge services and Hystrix as circuit breaker for handling failures.  Using these modules he created a microservice based web app and deployed it on his local machine. This session gave a nice overview of various capabilities of spring and netflix components for development and deployment of microservices.

Next, I attended the talk “Sinfonier: How I turned my grandmother into a data analyst” , this talk was about Sinofier which is a visual tool for generating Apache Storm topologies. Using this tool one can create Apache storm topologies. Complex real-time computation pipelines can be created using the visual tool which automatically creates the underlying configurations and the computation code can be provided by specifying a GitHub link.  A demo was given using Shodan as the data source and displaying the relationships within that data using Neo4j. I liked the tool but I feel that it’s still in preliminary stages and needs to have stronger support and contribution from the community in order to be widely adopted. Next talk I attended about React Native for developing cross platform mobile apps.

“React Native – Unleash the power of React in your device”  by Eduard Tomàs. This talk gave a nice overview of the React Native framework from Facebook, key features of the framework were discussed along with some shortcomings as it’s still in adoption phase. React Native can be used to develop cross platform Apps for both iOS and Android. Javascript and other standard web technologies are used by the framework to develop Apps. The framework is built around components, wherein each component would store the functionality and some state as well, which seems like a good idea but doesn’t scale well. To fix this issue React Native implements the concept of “Single source of truth” which means there would be one master state for your application and then the master would propagate that state to the child components. So if there is a change in master component’s state then those changes are propagated downwards to child components. Since child component get their state from master component thus they themselves are easy to test as they are stateless.

In React Native the UI of the built application is native but the UI related code can’t be fully shared between iOS and Android. React API provides components to access key functionalities of Android and iOS platform like Camera, Geolocation etc. In case, the developer needs to access some specific mobile platform features which isn’t yet available in React then they need to create their own module in mobile native code and then use that module in React. After the talk I had a quick chat with the Speaker, he said that most of the major features of mobile platform are available as components in React but still there is work to be done and the React framework still needs to be more mature in order to be widely adopted.

Next talk I attended was “Everything you always wanted to know about highly available distributed databases” by Javier Ramirez. This talk was focussed on various strategies, scenarios and good practices for making sure that distributed databases are always available and fault tolerant. The talk started with describing incidents of service failures of major cloud vendors thus emphasizing “Failures happen quite more often than we think”. It then discussed the common master-slave strategy for data replication and fault tolerance and it’s shortcomings, and how it’s an operation heavy process to replicate data on all slaves and thus leading to scalability of reads but not on writes. The Master-Master strategy was then discussed which has high latency when in synchronous mode but, when in asynchronous mode it give rise to poor conflict resolution. The talk shared the key needs of distributed cluster setup, namely, something that runs on cheap hardware, low latency and is able to grow or shrink fast depending on the load. The talk also provided insights into the tradeoffs inherent in distributed systems owing to CAP theorem.  The next talk I attended was about highly performant REST API design.

Boxcars and Cabooses: When one more XHR is too much” by Peter Chittum (Salesforce). This talk focussed on making REST API design more performant by bundling together of REST calls. The presenter discussed scenarios wherein a client App may need access to multiple resources at the same time, and individual rest calls may prove to be a performance hog thus it “Boxcarring” technique can be a good alternate. In “Boxcarring” multiple calls are batched together which can contain upto 25 sub-requests, failure in one transaction won’t affect other requests in the Batch. This can be changed using a flag field in the request which would cause the failure of the whole batch request even if one sub-request fails.  At the end of the talk, there was short demo showcasing various scenarios including error handling and failure scenarios.

The closing keynote of the first day was “The Most Important Feature You Can Provide to Your Team, Company and Customers” by Leslie Hawthorn, this talk focussed on the “Human” element of software development. Importance of “empathy” as being one of the core values of the organization. Some tips were discussed for building empathy and importance of human communication. The need to be inclusive in your values and expectations and not to have unwritten rules and avoiding assumptions as much as possible. Making it “ok to fail” is also important for organizations to adapt to rapidly changing world.

 


Luminis DevCon 2016

On Tuesday 19th April, it was Luminis’ Annual DevCon event at Ede Cinemec. It was my first Luminis DevCon and I was looking forward to it. The event attracted technology professionals from varied backgrounds and domains across the Netherlands. Whether one is an experienced front-end developer or a budding data scientist, there were some interesting takeaways for all techies. Apart from being an excellent opportunity to network with industry professionals, the conference also had sessions on latest technology trends like IoT, Microservices and Automation.

Luminis DevCon

The morning started with the opening keynote by CEO of Luminis, Hans Bossenbroek. The keynote emphasized that software development is an art and developers need to continually improve their craftsmanship in order to produce the best products, an analogy was drawn from basketball, in which players spend countless hours to perfect their ball shooting skills. The talk also touched on the gender disparity that exists in the technology sector, and the huge difference in troubleshooting skills of a highly skilled developer and an average developer both having the same job title at various organizations. This was followed by a talk by Chris Moon.

Chris Moon was invited to deliver an inspirational keynote session on challenging our limits and taking ownership of what we do. Chris is an ex-British Army officer who was working for a charity in East Africa and helping them in clearing land mines when he was blown up in the minefield which resulted in losing his arm and leg. Despite his loss, he continues to inspire people by regularly taking part in marathons across the world and delivering talks on how taking ownership of our actions can bring about a positive impact in our life.

After the keynote, sessions there were multiple parallel sessions and attendees could attend any one depending on their interest, I choose to attend the one on Automation testing of the angular front-end by Robert and Jago from Luminis Technologies, the session focussed on “Protractor” which is an end-to-end test framework for AngularJS applications. The session included live programming by the presenters and discussing various strategies related to testing the applications across various browsers and the plethora of tools available for front-end developers for effectively testing all aspects of an angular application.

The next talk that I was really looking forward to was the “Ingest Node” feature of the ElasticSearch. This new feature is part of ElasticSearch 5.0 which is still in alpha version. Here, at Luminis Amsterdam, we have a lot of experience in ElasticSearch technologies and Byron had also recently written a blog post on the same topic. With the help of this new feature we can now change and enrich the documents while they are being inserted in the ES cluster whereas earlier we required a much more complex setup to achieve the same but now using this Ingest node it becomes straightforward to apply various processors (like pipelines of logstash) for enrichment of incoming documents. This talk was followed by lunch and, thankfully, there was some food stuff for vegetarians as well 🙂

After lunch there was another keynote session “History of Programming” by Mark Rendle, it was light humoured and interesting session on the history of various programming languages, their evolution and how it all started. It also discussed some fascinating paradoxes of the computing world and relation between some of the newer programming languages and idioms with the ones of 60s and 70s. This talk was followed by a talk on Data Science.

“Help! They Dumped a Dataset on Our Doorstep” , this talk was presented by Richard Berendsen, who is also my colleague at Luminis Amsterdam, this talk provided insights into various steps required to extract information from a dataset and each step had a correlated code sample. Starting from data cleaning, data exploration, prediction task formulation, evaluation and setup thus the steps every data scientist needs to take in order to extract information which might be of interest for the business. The talk also touched upon the necessary tools like jupyter (python notebook) and various python libraries like panda, numpy and scikit. The talk definitely motivated me to improve my python and data science skills.

For the last talk I choose to attend the talk “KNWU RaceDirector (How I Learned to Stop Worrying and Trust Blackboards)”, this was an interesting post as it discussed how to develop a hybrid web/desktop application. The bicycle racing domain itself presented a challenge for the developers as the domain itself is esoteric with its own set of challenges. The presenter, Angelo, talked about how the application state and rules were created from events coming from the race, use of blackboard pattern which itself is not very common and how technologies like Angular, OSGi, Amdatu along with blackboard pattern came together for the getting the application up and running in a matter of weeks.

After the talks were over there were drinks and an opportunity to network with developers from across the Netherlands, share ideas and their opinions on various talks. It was a day well spent and looking forward to the DevCon next year.

Useful Links

DevCon Program Schedule with Bio of speakers  – https://devcon.luminis.eu/#program 

Github Repo for Help! They Dumped a Dataset on Our Doorstep” – https://github.com/luminis-ams/devcon-2016-rb

 

 


Video’s Devcon Luminis are available

It has been almost three weeks a go, Devcon Luminis. Initially it was exciting to think about the amount of people we could reach to come to our conference. In the end it was more exciting to find out if all the people who came, fitted into the room. Around 400 people joined us for the conference. A big group of people who came to listen to Luminis employees to learn about new technologies. After the event an evaluation was performed and we learned from the evaluation that most of the attendees were really satisfied with the conference. The quality of most of the presentations was good.

All presentations were taped and are now available through the devcon website as well as our Youtube channel. So if you want to learn about microservices, modular java applications, Docker or the ELK stack feel free to watch the video’s.

Our Fellow Jettro also did a presentation. He talked about real-time data analysis using the ELK stack: Logstash for importing, Elasticsearch for storing and Kibana for showing the data. If you are interested in the ELK stack and in visualising your data, be sure to checkout the presentation.


Elastic.on 2015

This week I was in San Francisco together with Sander attending elastic{on}. The goal was to learn about what elasticsearch is doing and is going to do in the coming period. We also wanted to hear from others using elasticsearch and speak to people that use elasticsearch. This week was a blast, we had great fun and learned a lot. The organisation was fantastic and we (Sander and me) were impressed with the size and professionalism of the organisation.

In this blog post I want to give you a very short impression of the conference. If you want more information and live in the Netherlands, come to the next GOTO night were I will present this experience with more details.

(more…)