Twitter Facebook github

Interview with Daniel Lee

The Erlang User Conference 2013 is really close and thanks to Erlang Solutions I have interviewed another speaker. He is Daniel Lee, Core-Platform developer at Klarna. In my opinion, his talk will be a must see; if you have any doubts please read the following interview and they will surely disappear.

Mirko: Hi Daniel, thanks for being available for this interview. Please introduce yourself to our readers.

Daniel: I have been a developer at Klarna for a bit over two years now. I grew up in Los Angeles, and did my studies at Cornell University and Carnegie Mellon University, where I was bitten by the functional programming bug and got to study with some really smart people with colorful personalities. After leaving graduate school, I spent some time in the service industry bartending in failing restaurants with pretty decent food. I attribute my sense of software development taste to the schooling and my work ethic to the bartending. In 2011, I moved to Sweden for a fantastic opportunity at Klarna and it’s been a great adventure ever since. I am @dklee on twitter.

Mirko: Your talk at the Erlang User Conference 2013 is really interesting. You called it “Continuous Migration: Re-implementing the Purchase Taking Capability of a 24/7 Financial System”. So you are basically re-factoring the whole “Purchase Taking Capability” with new Erlang code, following best practices and standards from the Erlang community. Why has this become a priority within Klarna? I remember a talk from David Craelius back in 2011 about Erlang in Klarna.  Have you found that the previous monolitic Erlang system was viewed like technical debt?

Daniel: The “Purchase Taking Capability” is the most important function of Klarna’s soft Real-Time Domain. Klarna’s business model is all about increasing conversions for our merchants, so downtime there means lost business for Klarna, lost purchases for our merchants, and poor user experience for the end-consumers. Historically, availability of purchase taking capability was dependent on the availability of the legacy monolithic system. The goal of this project is to decouple that capability from the legacy monolithic system to provide a more reliable end-user experience, as well as better scalability in terms of increased purchase taking capacity. Read More »

Interview with Rick Reed

rick_reed
Erlang Factory in San Francisco Bay is coming in 2 days and thanks to Erlang Solutions I had another great opportunity to interview Rick Reed, software engineer for WhatsApp, the famous messaging platform installed on the majority of smartphones out there.
My interview is technical and focused on the use of Erlang inside WhatsApp. I hope you will enjoy it, WhatsApp is engaging huge scalability challenges and it seems that they are winning them.
Before starting, I have also to say thank you to a friend of mine, Loris Fichera who is a great Erlang passionate and helped me with writing this interview.
Mirko: Hi Rick, thank you so much for this opportunity and welcome to my blog. Please introduce yourself to our readers.
Rick: It’s my pleasure, and thank you for the opportunity to talk about our technology.

I joined the server engineering team at WhatsApp in mid-2011 after a long stint at Yahoo! where I worked on the software platform team, and before that, I was at SGI working on digital video systems. My background is primarily C and Unix, especially performance and scalability. I received my BS and MS in Electrical Engineering from Stanford.

Mirko: WhatsApp has been founded in 2009. You joined in 2011. Why have you decided to leave your previous job and jump in this adventure?
Rick: After 12 years at Yahoo!, I was ready for a change.  My first software job was with a startup, and I have fond memories of the fun, fast-paced environment. Yahoo! had a lot of the same feel when I started there. I longed to get back to that. I knew Jan and Brian from Yahoo!, and when they showed me what they were up to and how successful the product already was, it seemed like a great opportunity working with a great group of people on a disruptive, consumer-facing application. And real-time communication has been one of my favorite areas to work on.
Mirko: In your speech at last year’s Erlang Factory, you said didn’t know Erlang when you joined WhatsApp. Which was the situation of the WhatsApp architecture in that period? I mean, was Erlang already in use in company’s projects or the WhatsApp’s tech team was planning to give it a try?
Rick: Erlang was already the main implementation technology when I started. That was a source of some anxiety for me since it had been quite a while since I’d had to change programming languages, but it was also an intriguing challenge after 27 years using imperative languages.
Mirko: If WhatsApp wasn’t built from scratch with Erlang, what were the previous technologies involved in the architecture? When did you decide to introduce Erlang? What were your doubts and what were the alternatives?
Rick: When we initially launched our chat capability, the server side was based on ejabberd. It’s since been completely rewritten, but that was the initial step in the Erlang direction. This all predates my time at the company, but I think the experience with the scalability, reliability, and operability of Erlang in that initial use case led to broader and broader use.
I came in with a healthy amount of skepticism since most of my previous high-performance experience was with C/C++, but after we worked through some of our bottlenecks (as described in my talk at last year’s Erlang Factory SF), I  came to realize that Erlang was a great fit for what we were doing. We were achieving scalability goals on our hosts that we only dreamed about at Yahoo!.
Mirko: I have seen from last year’s Erlang Factory that you set goals of scalability from time to time, and you try to remove all bottlenecks to reach them. How do you set a “goal”? Is it based on accurate previews or is it based on a threshold you think is safe?
Rick: Actually, our growing user base really sets the goals for us. Our system usage has been growing rapidly as more people start using the app and existing users become more engaged, but we’re constantly working to keep our server count as low as we can while leaving enough headroom for events that create short-term spikes in usage. We analyze and optimize until we think we’ve hit the point of diminishing returns on those efforts and deploy more hardware.
Mirko: What are the next goals you are trying to achieve?
Rick: I’d still really like to get 4 million concurrent users on a single chat node, but I haven’t really been too focused on that goal. Our hardware specs have improved (we’re running dual octo-core Sandy Bridge processors now), but

we’ve also added encryption and other features that have eaten into our CPU budget. We still have some burn-in to do with R16B, and I haven’t taken a look to see if there are any new bottlenecks that we can address. So far I’ve taken a host to 3.4 million but haven’t tried to redline one recently.

Mirko: I have seen huge numbers in the WhatsApp’s history, but this tweet from the WhatsApp account has been amazing!
whatsapp_tweet
How do you perform load testing in WhatsApp? Which strategy do you adopt for these things?
Rick: We’ve pretty much given up on synthetic load testing because we’re just not able to reproduce the kinds of load that our users can generate. We’re pretty comfortable with how our systems react to load (which ones react in a linear way and where the limits are and which ones have more troublesome tipping points), and they get challenged regularly by world events.  A recent soccer match generated a 35% spike in outbound message rate right at our daily peak.
One of our primary gauges of system health is message queue length. We constantly monitor the message queue length of all the processes on a node and alert if they accumulate backlog beyond a preset threshold. If we see one or more processes falling behind, we alert on that, and that gives us a pointer to the next bottleneck we need to attack.
Mirko: While your system was delivering such a record what were you doing? Were you anxious or were you confident and on holiday?
Rick: We were all on vacation but monitoring the system performance from wherever we were. We had purposely overprovisioned the hardware both to ensure that our users had uninterrupted service during their festivities and so that we were able to enjoy our own holidays without spending the whole time fixing overload issues.
Our multimedia system had a rough time of it during the previous year-end holidays. I had written the replacement for that system (which we deployed starting in September), and this was the really big load test, so I was a little anxious.  But again, we knew we were overprovisioned, and all the systems survived without any issues. Unfortunately, a switch failure the next day cascaded into a brief outage spoiling an otherwise perfect holiday.
Mirko: On a scale from 1 to 10, how confident are you about your system? How many times do you release to production in a week?
Rick: Well I’ll have to go with 11, of course.  We usually push at least some code every day. Often, it’s multiple times a day, though in general we try to avoid pushes during our peak traffic times.

That has really been one of the things I like most about Erlang. We can be a lot more aggressive in getting fixes and features into production. Hot-loading means we can push updates without restarts or traffic shifting. Mistakes can usually be undone very quickly, again by hot-loading. And I find our systems to be much more loosely-coupled than systems I’ve worked on in the past which makes it very easy to roll changes out incrementally.

Mirko: Tell me something that you love about Erlang.
Rick: Well, as you can guess, I love the operability aspects of having our code running on the emulator. Being able to modify and in some cases completely replace parts of our systems while they’re running full-tilt production load

is just awesome as is connecting to a node with a remote shell and being able to interact with the running system in so many ways.

Mirko: Tell me something that you don’t like (if any) about Erlang.
Rick: I miss gdb.

Oh, and it’s a little frustrating that there are so many syntactic ways to do the same thing. I spend too much time obsessing over if vs. case vs. function head. List comprehension or tail recursion. And so on.

Mirko: How much time and effort have you invested in learning Erlang from scratch? And what advice would you give to our readers about learning the language in an effective way?
Rick: That’s hard to quantify.  It took a few months to feel really comfortable. When I started, I spent a little time reading the books and looking at code … and then went off and wrote a monitoring utility in Perl because I needed

to feel productive. I find I can’t really learn a new language without having a problem in front of me and just writing code. I read enough to understand the syntax and then launched into my first module. In the beginning I looked at lots of examples of code that we were already running and at code in the OTP applications. I also think that as a programmer, you have to find your own groove with a language. I’m there now, but I can’t recall when I first felt it. I tend to revise a lot, not in terms of rewriting and refactoring lots of code, but in changing how I’ll approach problems with code. So I’m constantly looking at ways to improve how I’m using the language. On the other hand, I’m not the kind of person that has to know every feature and every syntactic or semantic capability of a language. I like to keep things simple, so I’m sure I’ll keep discovering things about Erlang for quite a while.

Mirko: Since you are working for the most used messaging system on the planet I have two non-technical questions. What is from your point of view the best thing introduced by digital communications? And on the other side, what do you miss from the “paper and pen” communication era?
Rick: Well we’ve come a long way from my first experience with digital communication, email on the arpanet. Today, I’m just a few taps on my smartphone away from instant communication with my family, friends, and coworkers, no matter where they are.

I think the downside is that because there are so many ways to communicate (phone, voicemail, email, messaging), you almost have to establish a mapping between each of the people and organizations in your life and how best to communicate with them.  And if you get the mapping wrong, the mismatch between what you expect and they expect can cause all kinds of trouble.

Interview with Ulf Wiger

Ulf Wiger

Today, thanks to Erlang Solutions I have the honour to publish on my blog an interview with Ulf Wiger who will speak at the Erlang Factory 2013 in San Francisco. The interview will range from his current work experience at Feuerlabs to his previous experiences in Ericsson and Erlang Solutions, with some interesting curiosies.

Ulf Wiger’s talk at Erlang Factory will be “KVDB – A Database System for Configuration Data and Connected Devices“, you can find more information here.

Ulf doesn’t need any presentation. He is one of the most respected figures in the Erlang Community, so let’s go straight to the questions, the interview is quite long, I hope you will enjoy it.

Mirko: Hi Ulf, first of all thanks for your time. I am glad to have you here on my blog today. When we met in London 3 years ago you were Erlang Solutions’ CTO, now I have the opportunity to interview you but your position has changed. You are now co-founder at Feuerlabs. Talk to me about it, why have you decided to found your own company and what are you doing at Feuerlabs?

Ulf: I imagine that many people in the community saw me as a Big Company guy during my years at Ericsson, but I really started my career working in a very small company. I spent four years working out of a basement in Alaska. I learned a lot about the joys and hardships of working in a startup, and I’ve always longed to get back to it.

A combination of events triggered me to start considering opportunities outside of Ericsson, not least that Erlang had actually evolved into a respectable technology within the company. But I also felt that I had done most of the things I came there to do – a few times over in many cases. I was becoming a bit complacent, and I needed to find more challenges.

(The thing you learn in a big company too, is that being ‘indispensable’ means that it will take a few weeks at most before you’re replaced, should you decide to leave. Once you’ve really understood that, I think it’s time to move on).

Erlang Solutions was another type of challenge, and also a chance to help out my good friend Francesco. It was a great ride and a learning experience, but it also reminded me that what really makes me tick is to build things. I see myself as a tinkerer and inventor who’s spent a decade and a half learning about all that other stuff that goes on around us – administration, project management, marketing… But I’m ultimately a programmer at heart, and it was time for me to focus on that again.

Feuerlabs offered that opportunity. I’ve known Tony Rogvall since the early years at Ericsson, when he worked at CSLab and I was on the AXD 301 project. The thing about Tony was that whatever programming challenge you addressed with him, he had a prototype lying in a drawer somewhere – most of the packet decoding logic in the first AXD 301 grew out of such a prototype. We’ve stayed in touch since then, partly because Tony helped advise Erlang Solutions on Erlang for Embedded Devices, and partly because we both seem to enjoy coming up with wild ideas. Tony, whom I already knew as a superb hacker and serial entrepreneur, and his old friend Magnus Feuer had been trying to find an excuse to work together in a startup, as they had done in the past. I’ve learned from experience that if you want to be invited into a startup, you need to indicate clearly that you’re interested – otherwise people will assume that you’re not crazy enough to want in. So this time, I told Tony that I wanted to join, if possible.

I hadn’t met Magnus before, but we had a very good talk over the phone, and I had a chance to meet him the week before we decided to launch the company. That felt a bit unusual, but I trusted Tony’s judgement, and also took to Magnus immediately.

What I do at Feuerlabs? I cut code! We’ve divided responsibilities, and I ended up writing most of the code in the device management server. It was a pretty obvious choice, since both Tony and Magnus are great C programmers with device programming experience. I may be many things, but a great C programmer I am not. I do know a thing or two about developing server-side software, though.

Mirko: Reading on FeuerLabs website’s section “Who we are”, I found out you are not only the co-founder but even a “Developer Advocate”  also. What does it mean?

Ulf: We envisioned from the start that I would draw on my community experience and do most of the talking at conferences and interaction with the developer community. So far, we haven’t done that much external communication, but we are getting ready to become much more visible now.

Mirko: Let’s talk about KVDB which is the subject of your talk at the San Francisco Erlang Factory. I don’t want to go too deep because you have an entire talk about it. But why a database? In the last years Databases and Data related technologies are growing like mushrooms. Where KVDB comes from and what needs it is going to address?

Ulf: Well, building a database management system has become a lot easier than it used to be.

First of all, we spent a lot of time thinking about the data representation on the server. This is an area where not least Tony has much useful experience – having pioneered automatic device configuration for mobile phones in a previous venture, Synapse, and seen the system grow to supporting many millions of devices.

We had the idea that we wanted to view the device-side database as a small subset of the server-side database. Also, since we were building both a device management service and a device-side framework, we had to choose between having two different databases, or one that could work well in both environments.

Mirko: Writing a Database from scratch means addressing a wide range of problems, from consistency to transaction support and other non-trivial things. You have some previous knowledge from Mnesia. How did it help you? Which is the most difficult thing you encountered while developing KVDB?

Ulf: Yes, I have done quite a lot of tinkering with Mnesia. So has Tony – at Synapse, they integrated Berkeley DB into Mnesia, and also developed ways to replicate huge amounts of data. In my hobby project, ‘rdbms’, I ended up implementing most high-level aspects of a relational database that were missing in Mnesia, and also did a lot of work on extensible indexing. Actually, ErlHive also ended up giving some useful experience working with hierarchical data structures.

The things that make KVDB a bit special are that it supports multiple backends (granted, Riak does that too), and that it’s somewhat specialized in dealing with hierarchical data structures, such as configuration data trees, registries, etc. It also supports a few unusual things, such as persistent queues, persistent timers, etc. To make this work well together with transactions (atomicity), you need to be a bit flexible regarding side-effects. This has been a problem with mnesia, and I have spent a lot of time thinking about how to make database transactions more “Erlang-friendly”, and also more practical in web-scale scenarios. I will talk about some of this at the conference.

As you say, there are many non-trivial problems when designing a database. Most things so far have mostly been fun, actually, but then I’ve been able to draw on much that I’ve done in the past. I’d say the biggest challenge has been the fact that the database really isn’t the main attraction – it’s just a component that, ideally, should have been ready off the shelf from day 1.

Mirko: Feuerlabs is releasing KVDB as part of Exosense. An Open Source Device Programming Framework. Give us an introduction to Exosense and what you are developing. I have read something about it on the company’s blog but I would like to have a presentation in your own words.

Ulf: We are convinced that Erlang is an outstanding environment for developing Connected Device software, and we want to help grow a community of developers who can take a great idea to prototype and product in a very short time.

We see this sort of thing happening now with iPhone and Android apps, which is really a form of device programming. But while the Mobile App development frameworks are extremely complex – much because of the advanced UI features – we envision a much simpler framework, for entrepreneurs in the Embedded Connected Device space.

In fact, Exosense is not so much a framework as it is a collection of useful components – CANOpen stack, Netlink integration, UART, SMS and GPS interfaces, … and of course a nice configuration database.

The Feuerlabs-specific component in Exosense is Exoport, which integrates with our Device Management Server. It allows you to manage your fleet of devices easily, and supports store-and-forward RPC, configuration push, intelligent network link management, etc. We want to make it as easy as possible to hook into our backend service, and this is also where we plan to make money – with a licensing scheme that is extremely approachable for small companies and experimenters, and evolves reasonably as your volumes (and revenue) increase.

Much as Google does – on a much larger scale – we want to help stimulate the emerging market that will end up generating revenue for us. The product space for Connected Embedded Devices is practically unlimited, and we plan to be the go-to guys when you need your devices managed.

A number of the components we’re using are in fact open already, but we haven’t made any noise about them yet. When we do, we will also stand by to follow up with community support.

Mirko: Reading FeuerLabs website I see that you are growing fast. Have you got open positions for developers? Maybe among our readers there are some who want to change their life and join you.

Ulf: Heh, the web site does say that we’re growing (although it doesn’t say “growing fast”), and in relative terms, we grew our operative staff by 33% when we brought Peter LeNoach on board. At this point, we are primarily interested in discussing early adoption, joint ventures and reseller agreements. We fully expect to bring some more people on board later this year, but there is much to be said for being a small company with very sharp people, especially in this phase.

Mirko: Let’s take a deep breath and let’s go back to the past… in the 90s. You spent 6 years of your life in Alaska developing disaster response and military command & control systems. Why were you there and how did you get in touch with Erlang? I know you became the first commercial customer. Were you a simple developer with a great passion or were you in a position to influence the developing of those systems? How did Erlang help you in that field?

Ulf: Yes, I did say earlier that it was, effectively, four years. I went back and forth a bit during a six-year period, 1989-1995. I went there to visit a girlfriend, and ended up building a business together with her father, who was an Air Force Colonel, soon to retire. When I got there in 1989, they had just completed a large military exercise (BRIM FROST), with 50,000 soldiers in the field and 900 exercise controllers, and a home-grown Command & Control System. The exercise was awarded an Overall Outstanding verdict by NORAD, basically since the tasking system worked so well that the work was done before the controllers got there to inspect it. Col John L. Shepherd received a Carnegie-Mellon Golden Nugget Award for his work, and right after the exercise, the system was used to coordinate the Exxon Valdez oil spill cleanup.

There was some controversy there, since the stakeholders in the cleanup wanted to control the information, but reporters soon learned that if they went to the nearest airman with a computer terminal, they could get a much better situation report in real-time than they could at the afternoon press briefing. If memory serves, the solution to this problem was that no information could be entered into the system until after the daily press conference… This was my first insight into the disruptive power of information technology.

The story about how the lucrative maintenance contract we were betting on never came through is best left untold, and the story about how Saddam invading Kuwait lost us a fine deal developing an aircraft logistics tracking system is a good one to tell over beer, but it all led to me having to figure out how to build a distributed Command & Control System with a one-man design team. It’s probably a common trait of young entrepreneurs that they don’t know when to let go of an idea, but it did help me discover Erlang. Faced with such an impossible task, I thought it at least seemed possible in Erlang. Of course, at the time, in 1993, there were no support libraries to speak of (not even ETS tables!), so I had to start rolling my own.

I knew that I needed a distributed database management system. Back then, there were few such beasts on the market (Oracle 7 had just been released, if that counts). I had Sonebreaker’s Readings in Database Systems (1994) and my old textbook by Elmasri/Navate, but I felt a bit isolated in my endeavor. Thinking back, it is striking how much the software industry has changed with the Open Source movement and systems like Github and StackOverflow.

I didn’t get very far with my database that time, but the messaging-based deadlock detection algorithm that I developed then is one that I still plan to use, and am integrating into KVDB now.

Mirko: What do you remember of your 13 years in Ericsson? We read  something here and there about Erlang inside Ericsson. Tell us a random thought, something that worth being said.

Ulf: Well, one thing about Ericsson was that it owed much of its success to the AXE system developed during the ’70s and ’80s. Many of their products during the ’90s were derivatives of the AXE. I recall one day as we were ready to release the AXD 301 (which was built in Erlang). I was talking to one of our most senior system architects, Peter Carlsund, and I told him how excited I was – this was the first time I’d had a chance to be part of building such a complex product from scratch and see it all the way to a successful release. He laughed and said: “It’s the first time for me too!”. Puzzled, I told the story to my colleague and mentor, Staffan Blau – also one of the company’s leading architects – and he replied: “It’s the same for me”.

That’s one of the weird things about working for big companies. There is so much legacy, that you seldom get to build something entirely new. And when you do, chances are you won’t get to the finish line (or you’ll be doing something else when the project finally gets there).

Mirko: You have lots of contributions on Erlang Open Source projects such as gproc, jobs, rebar and many others. But as all of us know, time is never enough. If you could have some more time, what is the project you always wanted to start but never got the chance?

Ulf: Hmm… there have been some projects like that. For a while, I thought that if I ever got the time, I would design a social networking system, but of course, there is no need for that anymore. ErlHive was my last brave attempt at making something in that niche, but even then, it really was something I wanted to do years earlier, but didn’t get around to. It certainly would have been a fun project back in 1995.

I also thought it would be cool to build my own DBMS… :)

Otherwise, the problem is usually that I try anyway, and don’t have the time to follow up on the project. ‘Jobs’ suffered for quite some time from that, but now I’m actually using it myself (We’re also using gproc, setup, sext, parse_trans and edown, BTW, as well as a number of Tony’s components. We’re eating our own dog food), so chances are much better that it will see some interesting development. I was happy to find that the concept holds up well, though.

Mirko: Erlang has been spreading fast during the last years. Excluding the well  known industries where it excels, which kind of industries could benefit from an Erlang adoption in the next years?

Ulf: We are betting on Erlang’s suitability in the Connected Device realm, but perhaps more importantly, I think we will see Erlang-style programming making its way into more and more mainstream programming environments.

Mirko: Let’s talk about serious things. :-) You are a great developer, I know you are a singer and a full time dad. Why not becoming a “writer”? I know that the Erlang Community is waiting for a book written by you (an advanced one). Two questions. Is there a remote possibility to read you in the next… let’s say two years? What kind of book would you like to write?

Ulf: Oh, I don’t really see myself writing a book anytime soon. :) My current hope is that Feuerlabs will keep me much too busy to contemplate any such project. What I will try to do is to pick up my blogging again, and also write documentation and tutorials for the components we are building here at Feuerlabs.

After that, whether or not I will think about writing an Erlang-related book (or some other book) will probably depend on what holes are left to fill. I recently received Fred Hebert’s excellent book, and I’m sure there will be others.

2012 in a post

Lower Manhattan from Meatpacking districtI have not written so much during 2012. After a little self-retrospective which I have performed in the last days I can say that 2012 has been a tough year for me. But now is 2013 and I have to put in practice all the precious lessons learned, but before I want to put my 2012 in a little post.

Let’s start with one of the things I love more… Travels. In 2012 I have been in:

  • Bruxells for the Erlang Factory Lite
  • Verona for the PHP Day 2012
  • 5 times in Rome for business
  • New York City as birthday auto-present with my two best friends
  • Lyon with friends for the New Year’s Eve

But the biggest boost of 2012 has been my new job. I am working as software developer for Onebip in Milan. I am really lucky because I have the opportunity to work with bright people every day which give me lots of inspiration to improve, and this has helped me during the whole year.

In 2012 I have had also the pleasure to win the Pure Enjoyment Prize at the Erlang SpawnFest in July with a great Team of Italian Erlang Developers (Loris Fichera and Paolo D’Incau). Thanks guys :-)

All in all it has been an unpredictable year from the beginning to the end. I broke up my 4 years and half relationship, I learned to live on my own and I have learned to live everything day by day. Ok, I have a master plan but too much planning is not for me. I try to follow the master plan looking at every opportunity I have and trying to enjoy every little thing which worth to be lived.

Welcome 2013, I am ready.

Passion and Vision by Carmine Gallo

This is a quick post.

I have too many things to get done today, but while I was having lunch I listened at the last episode of Luca Sartoni’s weekly podcast, called “The Sartonialist“. The special guest of this episode is Carmine Gallo. The podcast lasts about 20 minutes, and my advice is to take a break and listen to it. Lots of inspiration in a bunch of minutes, the topic is about passion, vision and how to improve the way you think on the path to realize your goals, dreams and projects.

It worth your time.

Have a nice day!

 

In the Social Network era

From time to time, when I talk with people about the creation of a StartUp to make an Idea come true, I got in touch with the common ideal which, StartUp means do something which is similar to the “Social Network model”.

I firmly believe that this way of think is really wrong. And it is wrong for two main points, I am explaining here.

Social Networks are already in place

Yes, we don’t need another social network.

Social Network business model is really tough because it is based on the assumption that your users are happy to share things on your platform. And to be pragmatic, why have I to go away from Twitter and Facebook? Everyone is there.

The only thing you can reach if you launch another Social Network is only some heap in the first period of life of your little project.

Google + is an example (but here it is another story, which is about corporate reasons, so I am not writing about Google or Microsoft here).

Integration with Social Networks is not only add sharing features

Problem two, is about the meaning of “integration with Social Networks”. Too many times, I have heard people talk about this integration with the only goal of creating “viral marketing” or “buzz marketing”. And this is a pity, because it is not the first goal of a social network, it is its side effect. The side effect of a big network of people linked together is the “viral” or the “buzz”, but the main goal is another, the main goal is something which has to do with communication, an essential behaviour for the human being.

Conclusion

In conclusion, my thought is really simple. Social Network are here, and if in the past we were working or dreaming for create such things, now we have them. They are a new way of communicate but most of all, they are a big source of information for everything. So in the next five years (Mark Zuckerberg told something similar times ago, but I don’t remember where) will be about create things on the top of those data.

Which does not mean, add a simple “share this” inside your application or website. But it means re-think everything, and think how to improve features with information you can now get from those big sources of data.

Social Networks are like a basement for a new market, and in the next years we have to focus on building layers above those basements.

Many ideas are coming at my mind right now. Probably I am going to drop some of them here in the next days.

Switch

Italiano:

Wow, il primo post del 2012, ed il titolo è molto chiaro e pragmatico.

Nel 2012 mi concentrerò molto sul concetto di “uscire dalla comfort zone“, e per iniziare con il piede giusto ho deciso di cambiare la lingua con la quale scrivo su questo blog.

E’ sempre una scelta difficile cambiare lingua ad un sito in corso d’opera. Ma devo essere sincero con me stesso e nell’ultimo anno ho scritto gran poco, il motivo sta forse nel fatto che il blog è uno strumento ed io non lo usavo nel modo corretto. Dovrebbe essere un’estensione di me stesso, un posto dove scrivo di ciò che faccio e di cosa vorrei fare. Essendo uno sviluppatore software, mi trovo  contatto con community di sviluppatori da varie parti del mondo e tutti comunichiamo in Inglese. Io stesso, sto investendo molto tempo per impararlo correttamente, ed il fatto di “dover” scrivere in Italiano riguardo ad argomenti che potrebbero essere di interesse di altre persone che non parlano la nostra lingua mi ha spesso fatto evitare di bloggare.

Diciamo inoltre che con il tempo si imparano molte cose. Quando ho aperto questo blog circa 2 anni fa, stavo cercando di capire cosa volevo fare nell’enorme ecosistema dell’Informatica. Oggi lo so, e vorrei approfittarne per dare una personalità a questo blog, cosa che è sempre mancata in questi 2 anni.

Quindi, d’ora in avanti scriverò in Inglese. In caso di errori grammaticali o di ortografia non fatevi problemi a lasciare un commento. Scrivere in Inglese alla fine sarà un metodo in più per continuare a migliorare.

Buon anno a tutti. Ed allontaniamoci dalla comfort zone.

English:

Woah, this is the first post of 2012, and yes the title is really clear and pragmatic.
2012 will be a year in which I will be focused on moving away from the comfort zone, and to start on the right foot I am switching the language of this blog.

It is always a difficult choice to change the language in which you are blogging. But I must be honest with myself and during the last year I have written few posts, and the cause quite simple. A blog is a tool and I was using this tool the wrong way. It should be an extension of myself, a place where I write about what I do and what I want to do. Being a software developer, I am in contact with Communities of people from all over the world, and we all communicate each other in English. I am investing plenty of time in learning the language the right way, and writing here about arguments which could be interesting for people who don’t know Italian has stopped me from writing too many times.

Let’s say that as time goes by we learn stuff, lots of stuff. When I started this blog about 2 years ago, I was looking for my place in the Information Technology wide ecosystem. Today I am aware about what I want to do, and I want to take advantage of this to give a personality to my blog, which has been missed during those two years.

So, from now I am writing in English. In case of grammar errors or typos don’t hesitate to drop a comment. Writing in English at the end of the day will be a method to continue to grow.

Happy new year everyone. Let’s move away from the comfort zone!

Giornalismo superficiale

Non c’è bisogno che ve lo faccia notare io, ma più leggo i giornali e più mi accorgo del pressapochismo e della superficialità con la quale vengono pubblicati articoli sui giornali e vengono lanciati servizi e programmi di approfondimento in TV.

Settimana scorsa ne abbiamo avuto la prova con la scomparsa di Steve Jobs. Improvvisamente tutti lo conoscevano, tutti erano affamati e folli e tutti hanno trovato due minuti per raccontare la propria storia (spesso piena di errori e fantasie), forse ne sentivano il bisogno per una questione di moda, per dimostrare ancora una volta cosa significhi non pensare differente ma rincorrersi cercando di imitarsi l’un l’altro. 

Posso capire con Jobs, che era CEO di uno dei brand più famosi al mondo, ma oggi Repubblica ci da un’altra dimostrazione di pressapochismo parlando di Dennis Ritchie, e lo fa con queste parole:


Quindi secondo Repubblica Unix è un linguaggio di programmazione, mentre il C è un linguaggio con un’impostazione (?) ad oggetti.

Almeno abbiate lo scrupolo di aprire Wikipedia e leggere cosa sia Unix e cosa sia C, non ci vuole molto e per lo meno, a me viene automatico cercare il significato di una parola invece che copiarla ed inserirla nella frase, perchè alcuni giornalisti fanno così fatica?

RIP Steve

Dopo mesi di malattia si è stanotte spento Steve Jobs. Non nascondo che la cosa mi stia rattristando abbastanza, nonostante fosse chiaro a tutti che il giorno si stava avvicinando.

Se ne è andato in silenzio, senza mai far parlare di se più del dovuto. Niente gossip, niente uscite fuori luogo, niente interviste tristi per spiegare la sua malattia. Ciò che voleva dirci lo ha fatto lavorando, mettendo in pratica i suoi sogni, ogni dannato giorno senza mai accontentarsi, senza mai sentirsi appagato dal denaro o dalla fama.

Chiudo questo cordoglio con una frase, che dovrebbe tuonare nella testa di tutti i giovani (non solo in Italia ma nel mondo). E’ un insegnamento pesantissimo, chiuso in una frase elegante:

‎”Nessuon vuole morire. Anche le persone che vogliono andare in paradiso, non vogliono morire per andare la. Ed ancora, La morte è la destinazione che noi tutti condividiamo. Nessuno gli è mai riuscito a scappare, ed è giusto che sia così, perchè la morte è migliore invenzione della vita. E’ l’agente del cambiamento. Pulisce il vecchio per fare posto al nuovo. Scusatemi per essere così diretto ma è la verità” – SJ, Stanford University 2005

***

After a long time affected by an incurable disease, tonight Steve Jobs passed away. I can’t hide this situation is making me sad even if it was in the air.

He has gone in silence, he has never made people talking about him more than one’s due. No gossip, never ever an interview out of place, no sad interviews to talk about his disease. He had a lot to say, but he said it working every damn day, working very hard trying to follow his dreams, without being gratified by money or notoriety.

I want to close this mourning with a phrase which must sound in the heads af all the young people (not only Italians but all over the world). It is a heavy concept of life closed in an elegant phrase:

“No one wants to die. Even people who want to go to heaven don’t want to die to get there. And yet, death is the destination we all share. No one has ever escaped it, and that is how it should be, because death is very likely the single best invention of life. It’s life’s change agent. It clears out the old to make way for the new. Sorry to be so dramatic, but it is quite true.” – SJ, Stanford University 2005

 

 

Erlang Solutions presenta la sua piattaforma di e-learning

La notizia è di ieri, Erlang Solutions, l’azienda leader per quanto riguarda il mondo Erlang ha presentato dopo alcuni mesi di sviluppo la piattaforma di e-learning con la quale permetterà a chiunque di apprendere il linguaggio dai fondamenti all’utilizzo avanzato.

E’ a mio avviso un prodotto ottimo, che permette davvero a chiunque di poter apprendere Erlang direttamente dalla propria scrivania. Posso affermarlo con sicurezza, perchè io ho imparato Erlang direttamente dal libro Erlang Programming, scritto da Francesco Cesarini e da Simon Thompson, ed i professori del corso sono proprio loro. Le spiegazioni del libro sono chiarissime e pragmatiche al punto giusto, quindi l’e-learning non può che essere migliore per le funzionalità aggiuntive che presenta.

Il linguaggio Erlang ha conosciuto negli ultimi anni una crescita di interesse sempre maggiore, soprattutto con l’avvento dei processori multi-core e con la conseguente richiesta di ambienti di programmazione che favorissero la concorrenza.

Erlang ha sempre affrontato il problema dalle basi, e l’approccio di sviluppo scelto in Ericsson fin dagli anni ’80 ha permesso di avere oggi un linguaggio di programmazione che semplifica tremendamente lo sviluppo di sistemi che devono scalare pesantemente mantemendo un’altissima affidabilità.

Di contro, fino al 2007, c’era solo un libro disponibile per imparare Erlang, poi con la crescita di interesse i libri si sono moltiplicati, e sembra che nel futuro prossimo ne potremo leggere altri, ma è sempre stato difficile apprendere Erlang direttamente da casa propria o dal proprio posto di lavoro. Alcuni Blog e siti web hanno facilitato l’apprendimento, e la disponibilità della mailing list è la migliore al mondo, ma mancava sempre quel qualcosa di ufficiale, quello strumento che poneva l’apprendimento a portata di mano. Oggi c’è, grazie ad Erlang Solutions che dopo il progetto tryerlang.org continua ad investire con lungimiranza sul linguaggio e sulla sua diffusione.

Al momento l’unico corso disponibile è Erlang Express (ad un prezzo di lancio di 180£), ma nel breve periodo saranno disponibili anche i corsi per i livelli più avanzati come ad esempio OTP.

Io dal canto mio sono prontissimo e non vedo l’ora di seguire qualche corso per migliorare le mie skills. La piattaforma promete davvero bene e non vedo l’ora di provarla.