While It’s Compiling: Skills Matter interviews Mauro Servienti

While It’s Compiling is a continuing series of interviews with experts across a range of bleeding-edge technologies and practices, exclusive to Skills Matter. Be sure to subscribe to this blog for future interviews, or follow us on Twitter.

Find out who we’ll be interviewing next, and get a chance to put your questions forward with the hashtag #whileitscompiling.

Mauro Servienti

Mauro Servienti is a RavenDB Contributor and CTO & Architect at Managed Designs, an IT company based in Italy.

Mauro will be joining us at Skills Matter on August 11th for an In The Brain talk on designing distributed, scalable and reliable systems, where he will start from the requirements that can drive us to scale and distribute a solution diving into the technical challenges and the obvious advantages that building a distributed and scalable solution brings to the table. Book your free place now!


You’ve been heavily involved with NserviceBus for some time now, and are an NserviceBus Champ as well as a Microsoft MVP. What drew you into this particular field of development?

Sincerely? Life :-) I started as a web developer more than 15 years ago and my curiosity has always driven me to explore everything – thus the natural path – front-end web development has been to deeply understand how HTTP works and then how the web server interacts with HTTP and finally this led me to discover the beauty of “the server-side”; and then, always pushed by curiosity and thirst for knowledge, I started diving into distributed scalable and reliable systems. On the other hand my passion for the C# language and for the community rewarded me with the MVP (Visual C#) award.

What have been the biggest wins for you over the years?

Happy customers, successful projects and failures. Yes, I’ve failed, not too much but I did and in the end it is a win, without failing it is much harder to learn.

Apart from the obvious (built with C#, data saving with JSON etc.), what sets RavenDB apart from say, MongoDB or other open source document databases?

Several things, starting from transactions, yes RavenDB is an ACID database when dealing with writes, ranging to the http interface that allows every programming language that can speak “HTTP” to talk to RavenDB without being required to depend on a driver to handle the communication protocol.

What’s on the horizon for RavenDB? Are there any major new developments we should be looking out for?

Yes :-) The team is working hard to push a stable and production ready build of the new major release, version 3.0, that will bring to the table new amazing features, such as a distributed file system, and will lay the foundations for being able to run RavenDB on *nix systems in future versions.

And finally, you’re doing an In The Brain talk for us soon on designing distributed, scalable and reliable systems – without giving too much away – can you give us a sneak preview on what the talk’s going to be about?

If at the end of the talk someone will stand up saying “we do not need to scale” it will be a real win :-)

The main goal of the talk is to understand why we need to scale, and only second to that how we can scale both conceptually and technically with samples, and if we really need to scale, distribute and go down to the async path, have a sneak preview, and some advice, on how to properly handle all the caveats that scaling a system brings to the table and obviously understand the intrinsic power that scaling a system has.

This Week at Skills Matter: 28 July – 01 August

giovanni-asproni

In The Brain of Giovanni Asproni, Tuesday


Monday:

We begin the week with an In The Brain talk from Melanie Diepenbeck, who is exploring an improved Behaviour Driven Development. Using ideas from her own research on Behaviour Driven Development for System Design at the University of Bremen, Melanie will show us a new (enhanced) BDD flow will be presented that includes verification right from the start. In this new flow the behaviour of a system is expressed in a more flexible way using properties and scenarios.

We got the chance to interview Melanie last week, which you can read here.

Tuesday:

Our second In The Brain talk of the week will be with Giovanni Asproni, an independent consultant specialised in helping companies and teams to become more effective at producing and delivering high quality software. Would you like to learn how to employ design for testability in the software domain to improve code quality and delivery time as well as cost? Join us tonight to find out how.

Sticking with the testing theme, Tuesday also sees Infracoders London join us for a discussion on testing servers like software. In this talk, developer turned operations person Peter Morley-Souter will explore some of the tools and approaches to use to test your configuration automation tool of choice.

Wednesday:

The Neo4J User Group return on Wednesday to look at some real world Neo4J use cases with Matt Stephens and Tareq Abedrabbo. Find out what lessons Matt learned creating Inkflash.com, chatting about lessons learned, things he would approach differently in retrospect, and giving a quick demo of the site.

Tareq will then share his real world experiences on two interesting use cases, around Impact Analysis and Network Optimisation.This talk will explore these use cases detailing the approach, the rationale and the outcome of each one in a way that is applicable within a wider context.

London Storm will be here for their third part in a series exploring scalable real-time analytics with Storm Trident. Focussing on productionalisation of Storm/Trident solutions you will learn how to prepare a Storm cluster, integrate Storm with ‘real’ message queues & databases and deploy and monitor solutions.

Thursday:

We’re delighted to be hosting the inaugural meetup of the Chef Users London group, an informal group for folks to gather and talk about using Chef for Infrastructure as Code, IT Automation, and Continuous Delivery. At this first meetup they welcome Harry Thompson from Kurtosys and Steven Danna of Chef, who will be discussing what Devops means to Kurtosys and a more technical talk from Steven.

The Limited WIP Society want to hear more from the practitioners and people in the group on how they have changed the way they work in their organisation at their meetup on Thursday. This is an opportunity for everyone in the group to come and tell their stories, specially of interest is hearing about what didn’t work or didn’t work the way you expected it.

Finally on Thursday, and rounding off our week of free events, the WebGL Workshop will be going back-to-basics with a meetup aimed at those who have no experience of WebGL. This session will cover the WebGL basics – setting-up, debugging, basic interaction and simple animation and, time permitting, the same with Three.js – a JavaScript 3D Library which makes WebGL simpler.


Droidcon 2014 line-up to be announced this week!

droidcon-london

The Droidcon London 2014 lineup will be announced this Friday, including our signature community Barcamp feature and old friends from last year like Chris Bridges, Al Sutton, and Cyanogen.

The Barcamp is our community-focused feature that gives the Android developer community the opportunity to decide the direction of the day! Barcamp takes up most of the first day – developers have 5 minutes to propose their own talks or presentations on whatever they think is interesting and will interest others. Everyone else votes on which talks they’d most like to hear, and the presentations with the most votes get a room and a time slot. Democracy at work!

Be sure to keep an eye on our Twitter feed for the latest announcements on all things Droidcon, or head on over to the Droidcon page now to book your early-bird ticket!

 

While It’s Compiling: Skills Matter interviews Melanie Diepenbeck

While It’s Compiling is a continuing series of interviews with experts across a range of bleeding-edge technologies and practices, exclusive to Skills Matter. Be sure to subscribe to this blog for future interviews, or follow us on Twitter.

Find out who we’ll be interviewing next, and get a chance to put your questions forward with the hashtag #whileitscompiling.

Melanie Diepenbeck

This week we caught up with Melanie Diepenbeck, who is currently pursuing her PhD degree on “Behaviour Driven Development for System Design” at the University of Bremen in the Graduate School System Design (SyDe).

Melanie’s In The Brain talk at Skills Matter on Monday will discuss an improved Behaviour Driven Development (BDD), as she looks at current research ideas to answer questions such as – Did we think of everything important? Does our implementation behave as expected? Did we test everything? Can we make sure that our implementation behaves as expected in every case?

Spaces are limited and filling fast, so book your spot at this free event now!


You are currently researching BDD, particularly verification in the specific Electronic System Level (ESL). How did you discover BDD and what aspects have you found insightful when looking at BDD in ESL as opposed to software programming?

Since verification and correctness are two – still increasing – important factors in the hardware design, we looked outside of the hardware box to find better solutions to increase the correctness in the development flow. That’s how we found BDD.

For one thing, in hardware it is rather unusual to start with tests first. Although testing and verification takes up to 70% of the effort designing hardware systems, implementing and testing are two separate tasks. It’s also interesting to combine the requirements process with the design. But the important questions when considering BDD for hardware focus on the quality: Is it applicable? Can we guarantee correctness and completeness? On the contrary: Some of our findings are even applicable for software development.

Your upcoming In The Brain talk is going to look at the fact that you don’t have to be an advanced TDD practitioner to walk away with better understanding of BDD, due to the hardware focus of the talk. Do you think there is a culture in the BDD community of drawing from analogous fields?

I think both hardware and software development can learn from each other. While in the software industry people are more advanced in developing techniques, people in the hardware industry are more focused on correctness due to the fact that a lot of safety critical systems (such as airplanes and cars) depend on it. Therefore BDD is very interesting since it brings a new angle through which we can look at correctness in hardware development.

Since BDD has its roots in the Test-Driven-Development community, would you say there are some trends developing within BDD which may grow to be successfully separate fields of studies?

One interesting trend could be the use of natural language processing methods in BDD such that scenarios which can automatically be translated to corresponding code. This leads to BDD distancing itself from the original TDD flow since it explicitly includes the requirement engineering process in the implementation. This is one of the many research directions we’re evaluating right now.

The proliferation of best practices and methodologies has seen many theories quickly fall out of popularity. BDD has proven to be quite the opposite from a flash in the pan philosophy, what is it about the ideas and indeed the community around BDD which has made it such a successful field?

One of the important parts of BDD that made it so successful, is its ubiquitous language that directly interacts with the code. Since requirements are written in natural language every stakeholder of the system can participate in the development flow. But I think we could explore this natural language connection further by investigating the requirement engineering process and using natural language processing tools.

And as we’re discussing community, and as you’ll be here soon to talk at Skills Matter, is there anything you think people should be looking at or exploring more within BDD? And are there any burning questions you’ve seen arise recently that the BDD community should be attempting to answer right now?

It’s great that so many people are using BDD right now. There is an increasing amount of tools for all kinds of programming languages. But – as for research – there are only a few studies about the effectiveness of BDD and only very few open source projects that could be used for further analysis of the methodology. Particularly, industry studies that reveal some lessons learned would be of huge interest to us and also to the community.

This Week at Skills Matter: 21 – 25 July

swift-blog-postWe’re joined tonight for the first series of talks by the new Swift London user group, following on from their opening meeting a week ago. The group’s focus is on this brand new language from Apple, which is promising to make waves in the developer community.

We’ve also got some great talks on Big Data, App development, Code Golf and public speaking – check out all of our meetups below!


 Monday:

Join Swift London, with speakers Anthony Levings and Roger Domenech, for an evening all things Swift. Drawing on his own experiences, as well as common difficulties surfacing on Twitter, StackOverflow, and the like, Anthony will be giving a cautionary guided tour of optionals, passing closures, and other major new features of Swift.

Roger presents an introduction to Xcode’s Playground, with a practical focus on Scene Kit. A mixture of tool demonstration, basic Playground setup, Xcode integration, Scene Kit 3D object creation and custom shader use, with a little room for surprises (or Xcode crashes).

Tuesday:

Tuesday brings Pentaho London through our doors for a series of discussions on Pentaho, ETL and Big Data. Mark Melton begins the evening talking about visual map reduce with Pentaho and how this fits together with Yarn. Mark is followed by Diethard Steiner discussing Kimball-style data mart with PDI, Harris Ward on cool CTools plugins, Matt Casters on the latest and greatest cool big data POCs and Tom Barber looking at the possibilities that Apache OODT bring to BI.

Next up on Tuesday, the London Java Community will be speaking out with a workshop for public speaking in tech. Along with Richard Warburton and Martijn Verburg, find out how public speaking is a great opportunity for people to raise their professional profile and employment opportunities, and why it is also regularly identified as the activity which people fear the most.

Wednesday:

One of the biggest advantages of Julia is that it shares the strengths of both Matlab and Python, but it’s much quicker. There are a lot of exciting packages being built in Julia, and on Wednesday evening the London Julia Users Group and Samuel Colvin will demonstrate some of the best and give a short guide to creating your own ones. Samuel comes from an oil industry background where Matlab rules. Now he is a freelance developer, a Python user but also a Julia devotee.

Mean Stack are joined by three speakers, with Marek Karwowski telling us that good application development is all about making educated choices, and Martin Pomeroy & Paul Boon talking on Q&A Spot.

Thursday:

Rounding off the week of meetups for us, the F#unctional Londoners return to enjoy a pleasant round of Code Golf in F#. In this hands-on session, you’ll be having a game of Code Golf, where the objective is to complete your program in as few (key)strokes as possible.

While It’s Compiling: Skills Matter Interviews Boisy Pitre

While It’s Compiling is a continuing series of interviews with experts across a range of bleeding-edge technologies and practices, exclusive to Skills Matter. Be sure to subscribe to this blog for future interviews, or follow us on Twitter.

Find out who we’ll be interviewing next, and get a chance to put your questions forward with the hashtag #whileitscompiling.

Boisy Pitre at iOSCon 2014

We had a fantastic start to the year when we hosted the first ever iOSCon here at our headquarters in London, bringing together some of the world’s leading iOS experts including Boisy Pitre, Affectiva’s Mobile Visionary and lead iOS developer.

Boisy’s work has led to the creation of the first mobile SDK for delivering emotions to mobile devices for the leading emotion technology company and spin-off of the MIT Media Lab. We were delighted to get the opportunity to interview Boisy while he was here.

You can find the link to his talk from iOSCon at the bottom of this post, and all the talks here.


Hi Boisy, thanks for joining us for this year’s iOSCon. Can you tell us a little about yourself and the work you’ve been doing with Affectiva?

Sure. Currently I’m with Affectiva, an MIT media lab start-up based in Boston. We have an interesting technology which analyzes people’s facial expressions to determine their emotional state. The technology was developed, based on the research that one of the co-founders, Rana El Kaliouby, had pioneered in the affective computing field. The applicability of that technology was originally targeted towards the market research industry to help measure consumers’ emotional connections to brands and media.

About a year ago, Affectiva decided to expand their technology to mobile devices and tap into other industries beyond their current market – including gaming, healthcare, education and others. So, I came on board to lead this mobile initiative; and worked with some brilliant engineers to shrink the existing technology, which had a significant server component, down to the iOS platform. The Affdex Mobile SDK is the outcome of that effort. It does all the processing and reporting of emotional data on a frame-by-frame basis back to the app, right on the device – eliminating the need to connect to a server.

So it’s built on a lot of research – was iOS the natural progression and the natural platform to go to? What sets it apart from other platforms?

iOS was the initially targeted platform. In hindsight, I believe this was the right choice, as targeting iOS devices has been a bit easier due to the commonality of hardware and software; and it allowed us to get the SDK to market pretty quickly. Although we initially focused on iOS, I knew we were going to eventually develop an Android piece as well; which we’re almost done with, in fact. For the Android SDK, we hired team members who love and play in that sandbox. My philosophy is that for a company to be successful in a mobile strategy they should have experts that specialize in a particular platform.

In terms of applications going beyond the obvious marketing and advertising aspects, what are the real-world applications that exist now? Is there anything particularly interesting or exciting that Affectiva is working on right now?

As far as I’m concerned, it’s the wild west for apps that want to take advantage of emotion technology. It reminds me of the introduction of the iPhone in 2007. The idea of touching your device was not new, but Apple started democratizing it with the iPhone. That was the first really breakthrough moment in mobile. The second important breakthrough moment in mobile was the introduction of voice as input – again, Apple democratized how we interact with our phones and our devices when they offered Siri. I see emotional analysis having that same potential in mobile. Like voice, it give us a way of controlling the device and for the device to understand you better and offer you more choices.

So what type of apps can take advantage of this technology? Well obviously the low-hanging fruit would be games, where you’re interacting with the game – you want to have your emotions maybe control the game or have the game respond to your emotions in some way to adjust the level of intensity of play.

Health is another big opportunity where I think this technology can bring value. Take emotional health and well-being, for instance… there’s so much research pointing to the fact that our emotions have an impact on our health for better or for worse. So there’s a whole avenue of possibilities in that regard.

Then there’s the fun stuff. Imagine an app that analyzing your photos on your device to determine the emotional content to get an overall feel of your pictures. Or an app which changes music or colors on the screen while it watches your facial expressions. . Approaches like that can certainly lead to some interesting applications.

Of course, Affectiva is pursing app ideas at the moment based on this technology, but I cannot comment on them at this moment.

You mentioned that 2007 was the introduction of the first device, and how it’s moved-on, especially with Siri. Do you think that for someone such as myself, as a user of this device, are things going to continue coming out in stages, or is there anything around the corner that’s going to be as big and as ground-breaking as touch, or voice? Is there anything that’s going to jump out?

Emotion recognition technology has the potential to be that huge leap which brings in completely new way of interacting with our devices, whether we’re sensing emotions using the camera or through some other sense or mechanism. Having technology understand us better and gather deeper insights into our own emotions, through analysis at specific points in the day as we’re using apps, is a significant break-through in computer-human interaction.

And it’s a different level of interaction that liberates us. Just like touch liberated us from typing on tiny keyboards, and added a new paradigm of full natural touch with swiping. Emotional expressions in our face are instinctive; and they too can be a form of input and control, but they can also be a great form of feedback to us. I really think this will raise awareness of how we see ourselves in the world, as well as how we interact with others.

We hosted Droidcon last year, with devices such as the interactive mirror that could recognise your emotions in the morning. There is a huge interest currently in the Internet of Things, in connected devices and so on. Going beyond the iPhone or Android devices themselves, do you do much in terms of reaching out into connected devices?

Certainly. This technology can reach beyond just the device in your hand. For example, the automotive industry has expressed interest in our technology. That industry may be easier to break through on the Android side of things than it is with iOS, as iOS is a lot more compartmentalised and controlled by Apple. But certainly that’s one industry which could benefit from emotional analysis – just imagine driving along and your car wants to know if you’re falling asleep or paying attention or distracted; it’s looking at locations for safety, and again, health and well-being.

You touched on the fact that Apple and iOS is compartmentalised and controlled a lot more than Android. Do you think that’ s a drawback? Is this holding developers back on iOS or does it create an environment to focus ideas and energies?

Keep in mind that I’m coming from the Apple perspective as that’s the sandbox I play in. I completely understand and buy into Apple’s reasoning for why they do things. I’m also looking at this from a developer point of view.

We all know that Android exists on many, many mobile devices. It can be ported, unlike iOS, to phones, tablets, and other devices. The trade-off for such sheer ease of portability is the “fragmentation issue” which leads to complexity in development. At some point it becomes too massive for developers to support each of those devices. They must pick and choose their device support carefully.

I believe this is getting better as Android matures, but compared to Apple’s unified, streamlined hardware upgrading approach, it’s still a mess.

Apple’s approach, while certainly much more restrictive, brings a sense of order to the device chaos that permeates Android. If anything, I would argue that developers fare better in the Apple ecosystem because of these controls. But that is my opinion, of course.

Finally, in terms of Affectiva and how you work on a day-to-day basis – what’s the structure there? How does the team work?

We have two engineering teams, one dedicated to Android and the other to iOS. Each has an engineering lead. Both engineering teams interface with the science team, which concentrates specifically on the core technology of emotional classification. As science improvements are made, they are provided to engineering, which integrates the changes and improvements into the SDK code base. Agile is the foundation development methodology we use to organize and account for our work across the teams. This constant, connected cycle allows us to quickly iterate so that we can test, examine performance, etc.


Watch Boisy’s talk from iOSCon 2014

Boisy Pitre

What if your iPad or iPhone could detect your emotional state and respond in a way that enhances your day? What if an app could deliver soothing content when you’re feeling upset, or play your favourite song when you’re feeling happy? Find out how you could achieve this in Boisy’s talk!

You can see the rest of the Skillscasts from iOSCon 2014 here.