When I was young (yes, now I’m old ūüėÄ ) the only messaging feature available on my phone was SMS texting: 160 chars, 10 spaces on my SIM card.

15 years later I’m impressed by the number of messaging app I’m using on daily basis. You can find below the list of messaging apps I used at least once in the last week.

Old but gold. Now is backed by Microsoft and has more problem than years before but it’s still the most used video call app. Most of my customer ask for Skype handle¬†for chatting and also some my friends use it at work.

Skype Screenshot

Most of my non geek friends still uses this app. Facebook paid $22B to acquire the company. Only half of them move to Telegram when WhatsApp became paid for Android users. Web interface, now available also for iOS, OS X and Chrome extension is really useful.


Most of my geek friends use this app. Is really similar to WhatsApp but uses an open source protocol, encryption is claimed as better than competitors. You can also use it server side. Meh…



My boss want it¬†for replacing Skype last spring. I actually don’t like the UI and the price is exaggerated but, after some months of testing, works quite well.


One of our external collaborator create a private HipChat channel because he hasn’t an internal email address and wasn’t able to join company’s Slack. After a few days of use,¬†seems really similar to Slack but is almost free. tests both and choose Slack.


Google Talk/Hangout
The best alternative to Skype for video calls. Actually used only for setup video calls.


Facebook Messages
For people¬†I want to contact only on Facebook. Really useful in combination with other Facebook features (events, birthdays, …) also support a lot of external integration (and more are coming). Probably one of the best player in the coming years.



Twitter Direct Messages
Limited to 140 chars until June 2015 are now a valid alternative to Facebook Messages (Twitter extend the limit a few weeks ago). I use them rarely only with a couple of contacts who aren’t connected on Facebook.


Linkedin Messages
With recent update (last week for my account) they are more similar to a messaging app nor an email client. Now recruiters what to chat with you and this is quite noisy.


Apple Messages
The modern alternative to SMS. Only for Apple users.


What’s the best one? I have no idea! Anyway there is a funny thing to notice: I can use them in an easy and transparent way both on my smartphone and on my notebook even better than I was able to use SMS 15 years ago.

Many people are worried by the use of several different channels for communication. “NO NO don’t add me on Telegram, we are already connected on WhatsApp! I can’t handle this!” they say.

IMHO there is no pain in using a lot of different channel because user experience is improved and now we need to use only one channel: our “digital identity” logged in on every device. Complexity is hidden by designers.

Is the interconnected world, is here and we are already part of that.

A few days ago @lastknight gave me a strange cardboard package. I have no idea of what it was. “It’s a Google Cardboard” he said. Wasn’t helpful. Still no idea.


After a couple of Google search everything was clear. The strange package he gave me is a Knox V2: one of the implementation of the Google Cardboard project.

Google Cardboard Logo

The Google Cardboard project logo

Virtual reality (or “VR”) is one of the most interesting topic in tech business. Since when Oculus VR was acquired¬†by Facebook during March 2014 for about 2B$ everybody think VR will be one of the next big thing in many fields: from game to¬†surgery.¬†I had the opportunity to test Oculus Rift only once at Codemotion 2014 in Milan (a surgery test simulator). Experience seems really realistic but I have no idea about how could be for an extensive use.

My iPhone 5 doesn’t support cooler apps (like Vrse¬†that seems really cool) but I was able to test Roller Coaster VR, a simple roller coaster demo:


and Vanguard V for Google Cardboard, a third person space flight rails shooter designed for virtual reality.


More and more application are available, here is a list of best apps select by the Huffington Posts.¬†Anyway my thought about VR are not about the quality. Application are still poor. They don’t give you an headache like a few years ago but aliasing, clipping and other 3D related glitch are still there. Quality could improve a lot more and is doing.¬†I’m more interested in real world use of a VR kit.

So I asked my family to test the Knox.


First impression is of a new, cool and fun way to enjoy media. Gaming is hard but really immersive and the roller coaster demo is addictive. My parent aren’t familiar with cutting edge technologies but¬†they were happily¬†involved in the new experience. Gaming and documentaries can benefit this new way to interact.

Another industry can benefit this new way: the porn industry. By now a Google search show 3 producer who publicise¬†VR movies: BadoinkVR,¬†VirtualRealPorn and NaughtyAmericaVR. Moreover BadoinkVR sponsor the new experience offering a pair of VR Google Cardboard for free. In the past porn industry was able address technology adoption. It’s easy to think they could do it again.

In the end Google Cardboard isn’t confortable. Smartphone position inside the box is fundamental and sharp corners hurt my big nose. But I think is the first step of the next big thing. We are ready and I really look forward to find what the future holds.


Everything started on Heroku in October 2012 over their dynos with Heroku Postgres and continued on OpenShift in August 2013 over a LAMP stack based on Apache 2.4, PHP 5.3 and MySQL 5.1.

Now it’s time to to move my little blog on a modern stack. Best offer on¬†OpenShift is a variation of the standard LEMP (we can call it: LEMP-HH) stack with¬†HHVM 3.8, MariaDB 5.5 over¬†NGINX¬†1.7.


Actually biggest performances improvement was achieved adding a good cache plugin a few months ago. I always used W3 Total Cache and WP Super Cache but, in this specific case, they are both complex to use because of the structure of OpenShift stack. Best solution I found is WP Fastest Cache plugin, one of the latest cache plugin I tested. Here is the stunning header of their website showing two beautiful cheetahs (are they cheetahs?).


Anyway coming back on new stack, there is no official bundle¬†yet but you can create a new application using tengyifei’s¬†HHVM 3.8 cartridge and adding¬†OpenShift MariaDB 5.5 cartridge. I wasn’t able to run them on different gears (with scaling option activated and HAProxy) but seems fast enough on a single gear.

Filesystem structure is similar to the standard PHP bundle except for the application dir that is named www/ instead of php/. I used last backup from UpdraftPlus to migrate database on MariaDB. On non scalable applications you need to forward port in order to access DB from your local machine. RHC command is:

rhc port-forward -a application-name

Source here: Getting Started with Port Forwarding on OpenShift

Moving on NGINX also causes problems on permalinks because .htaccess doesn’t work anymore. The Nginx Helper plugin fix the problem but you could simply add a couple of row to NGINX configuration located in /config/nginx.d/default.conf.erb.

# Handle any other URI
location / {
try_files $uri $uri/ /index.php?q=$request_uri;

Discussion on WordPress support forum: WordPress Permalinks on NGINX

Refactor of previous filesystem, migration of database and bugfix of permalinks and other stuff takes about 2 hours and, at the end, everything seems working fine. I’m quite confident this a future proof solution but I’m going to test it until next major update ūüôā

[UPDATE 2015-09-06 21:56 CEST]

After migration sitemap_index.xml and robots.txt weren’t reachable. Some rules were missing. I took the opportunity to switch to Yoast SEO for sitemap, Facebook open graph and Twitter cards. Then, these rules fix problems with SEO.

# Rewrites for WordPress SEO XML Sitemap
rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
# Rewrites for robots.txt
rewrite ^/robots\.txt$ /index.php?robots=1 last;

c2_logoA few weeks ago I had the privilege to attend C2 Spark conference in Milan. It¬†is a¬†“business conference somewhere between genius and insanity by Sid Lee, Cirque du Soleil, Fast Company and Microsoft” and try to mix Commerce and Creativity.¬†It started¬†in Montreal a few years ago and this was the first time in Europe (Zurich and Milan).

Talks were awesome and people were awesome too. Is quite strange for me meet non tech people and I really enjoy the day. I learned a lot of things attending the conference. Here the most fascinating ones.

Technology will change everything, again.

David Rose, scientist at MIT Media Lab and author of “Enchanted Objects” talks about the way we imagined the future. Internet of Things will be a huge¬†opportunity and a lot of products are already here. Here is the “periodic table” of the Enchanted Objects¬†who David shown us.


Microsoft has enough money to reboot its business

Ten year ago Microsoft make a lot of billions on Windows and Office. Now Windows and Office worth nothing and Microsoft is trying to reboot its business with cloud (Windows Azure), mobile (Nokia and Surface) and wearable (Microsoft Band). Carlo Purassanta, CEO of Microsoft Italia, was clear: Microsoft is changing. He first ran for the conference wearing a Microsoft Band.


Non tech people are awesome

I never had great respect for the non-technical people. “I can change the world, they can’t“,¬†a lot of modesty and respect. I grow up inside a really close environment made by nerds and geeks and I always thought non-technical people¬†have nothing to give me. I was wrong. I was absolutely wrong. At the event people came¬†from different fields:¬†diplomacy, medicine, sales, biology, advertising, marketing, law and more. Each of them has enriched me in some way. Non tech people are awesome ūüôā


Creativity could be an analytical process

Sid Lee, creativity firm behind C2 Spark describes the process behind its most successful advertising campaigns. A lot of myths about creativity are just myths and, with the right process, anyone could express his creativity.


Jump on table to move them is definitely cool

Time between talks and workshops where staff move tables is usually boring. At C2 Spark tables were moved by a parkour crew jumping and dancing around the room. It was absolutely useless by definitely cool! ūüėÄ

c2_parkour-2 c2_parkour-4 c2_parkour-1 c2_parkour-3

[UPDATE 2014-12-27 21:10 CET]

Seems a lot of people at Microsoft liked my article ūüôā Carlo Purassanta (CEO at Microsoft Italy), Carlo Rinaldi (Digital Marketing Group Leader at Microsoft Italia) and Chiara Mizzi (CMO at Microsoft Italia) shared it:

I few days ago I have been at Codemotion in Milan and I had the opportunity to discover some insights¬†about technologies used by two of our main competitor in Italy: BlogMeter and Datalytics. It’s quite interesting because, also if technical challenges are almost the same, each company use a differente approach with a different stack.


Datalytics a is relatively new company founded 4 months ago. They had¬†a desk at Codemotion to show theirs products and recruit new people. I chatted with Marco Caruso, the CTO (who probably didn’t know who I am, sorry Marco, I just wanted to avoid¬†hostility ūüėČ ), about technologies they use and¬†developer profile they were looking for. Requires¬†skills was:

Their tech team is composed by 4 developers (including the CTO) and¬†main products are:¬†Datalytics Monitoring‚ĄĘ (a sort of statistical dashboard that shows¬†buzz stats in real time) and¬†Datalytics Engage‚ĄĘ (a real time analytics dashboard for live events). I have no technical insights about how they systems works but I can guess some details inferring them from the¬†buzz words they use.

Supported sources are Twitter, Facebook (only public data), Instagram, Youtube, Vine (logos are on their website) and probably Pinterest.

They use DataSift as data source in addition to standard APIs. I suppose their processing pipeline uses Storm to manage streaming input, maybe with an importing layer before. Data is crunched using Hadoop and Java and results are stored on MongoDB (Massimo Brignoli, Italian MongoDB evangelist, advertise their company during his presentation so I suppose they largely use it).

Node.js should be used for frontend. Is fast enough for near real time application (also using websockets) and play really well both with Angular.js and MongoDB (the MEAN stack). D3.js is obviously the only choice for complex dynamic charts.

I’m not so happy when I discover a new competitor in our market segment. Competition gets harder and this is not fun. Anyway guys at Datalytics seems smart (and nice) and compete with them would be a pleasure and will push me to do my best.

Now I’m curios to know if Datalytics is monitoring buzz on the web around its company name. I’m going to tweet about this article using #Datalytics hashtag. If you find this article please tweet me “Yes, we found it bwahaha” ūüėõ

[UPDATE 2014-12-27 21:18 CET]

@DatalyticsIT favorite my tweet on December 1st. This probably means they found my article but the didn’t read it! ūüėÄ


During the last year I refined my RSS collection about big-data, data science and analytics. I usually check it everyday in order to discover a ton of new cool technologies and have fun. Here is the updated list.


News about emerging technologies, scalability and data

Data companies, social networks and search engines

Companies supporting e distributing big-data processing products

Recently I discovered the awesome data science list that contains a list of interesting blogger I haven’t time to check yet. You can surely find something more in it. I’ll try to publish an update when I’ll check it.

[UPDATE 2014-09-22 11:35]

Thanks to @onurakpolat for correcting my link to awesome data science list. Previous link was to his fork, the original repo is by @okulbilisim

leap_motion_logoA couple of days ago I was working on a presentation about Datasift UX to give to my colleagues the day after. While I was trying the presentation I notice the Leap Motion (a friendly loan from @luka_bernardi) on my desk. Is it the Leap Motion ready to use in this scenario?


On the Airspace store I found two interesting applications: Presentable and PRSNTA, both free.


“Get your presentation superpowers”


It seems a flexible product. You can import PDF data (exporting it from Apple Keynote or Microsoft Powerpoint or whatever), create slides from any web page and use video (also from Youtube). Leap Motion gives you some special ability: scroll web pages by hovering hand up or down, go to next page by drawing a clockwise circle in the air and using a pencil (or something similar) you can access a “Virtual Laser Pointer“.

I just need to change page during my presentation so I trained myself to go ahead and back¬†drawing a clockwise circle in the air. After a couple of minutes of training I feel like an idiot. Almost half of my circle in the air wasn’t accepted by the system and when anything doesn’t work you immediately seems like an idiot. So I tried PRSNTA.


“Show your presentations in a completely new way”


It isn’t different than Presentable but functionalities are easier: it only support images and PDFs. Also gesture are easier: move your hand from right to left to go ahead and from left to right to go back. You had some special gestures to change slide using different effects and some others to highlight, use a virtual pointer and display messages.

Training was a bit better but still a pain. After a dozen of slide change the app doesn’t respond anymore and to change slide you need to wait for about 15 seconds felling like an idiot.

The day after with natural light and more training, things go better but I decided to not give the presentation using Leap Motion. The WOW effect doesn’t worth the feel-like-an-idiot risk.

Leap Motion is an awesome product but applications are still young and users aren’t ready to exploit¬†a completely new way to interact with their system. Device and application need to be improved and mind of users have to be trained too.


hiphop_logoHipHop was one of the most notable thing came from the Facebook labs about PHP development. PHP is slow and limited. They can’t rewrite theirs entire codebase so they decided to make PHP better. HipHop is a simply PHP to C++ compiler (HPHPc). Converted code is compiled into a binary and performance improvements are about¬†6x.

Unfortunately HipHop has several downsides. For all the performance gains that HPHPc provided, the curve for further performance improvements had flattened. HPHPc did not fully support the PHP language, including the create_function() and eval() constructs. HPHPc required a very different push process, requiring a bigger than 1 GB binary to be compiled and distributed to many machines in short order.

hhvm_logoTo overcome these problems Facebook develops, starting from early 2010, the HHVM: a PHP virtual machine. HHVM builds on top of HPHPc, using the same runtime and extension function implementations. HHVM converts PHP code into a high-level bytecode. This bytecode is then translated into x64 machine code dynamically at runtime by a just-in-time (JIT) compiler similarly to C#/CLR or Java/JVM.

hack_logoFacebook also released Hack, a programming language for HHVM that can be seen as a new version of PHP which it allows programmers to use both dynamic typing and static typing.

HHVM supports major PHP open source projects like WordPress. Running this project on seems really easy. A little modification was needed but last version (3.9) no longer need this. HHVM can also run on Heroku using a custom buildpack available here:

My first experiment was to run WordPress on Heroku using HHVM. First step is create a Heroku app using HHVM buildpack:

heroku create --buildpack

Then you can deploy a standard WordPress installation adding the following config.hdf (the HHVM configuration file)

Server {
DefaultDocument = index.php
Eval {
Jit = true
VirtualHost {
* {
Pattern = .*
RewriteRules {
dirindex {
pattern = ^/(.*)/$
to = $1/index.php
qsa = true
StaticFile {
FilesMatch {
* {
pattern = .*.(dll|exe)
headers {
* = Content-Disposition: attachment
Extensions {
css = text/css
gif = image/gif
html = text/html
jpe = image/jpeg
jpeg = image/jpeg
jpg = image/jpeg
png = image/png
tif = image/tiff
tiff = image/tiff
txt = text/plain

Warning: don’t miss a newline character on the last line or linter will fail and you will going to hate this project ūüėČ

Everything works fine. You can add you favorite MySQL hosted service and run your WordPress 5 minutes installation. Almost every plugin seems 100% compatible, I tested most popular with no problem. Performances are better and you also have the opportunity to use Hack to develop new custom plugins.

Now I’m curious about how HHVM can improve my production installations of WordPress. About this I’m looking for an OpenShift cartridge for¬†HHVM or someone want to collaborate to create a new one (the only I found on Github seems “young”). Anyone interested? Let me know!


Informations about VKontakte, the largest european social network, and its infrastructure are very few and fragmented. The only recent insights, in english, about its technology is a BTI’s press release which talks about VK migration on their infrastructure. Everything was top secret.

Only on 2011 at Moscow HighLoad++, Pavel Durov and Oleg Illarionov told something about the architecture of the social network and insights are collected into this post (in russian). 

VK seems not different than any other popular social network: is over a LAMP stack and uses many other open source technologies.

  • Debian is the base for their custom Linux distro.
  • nginx mange load balancing in front of Apache who runs PHP using mod_php and XCache as opcode cacher.
  • MySQL is the main datastore but a custom DBMS (written using C and based on memcached protocol) is used for some magics. memcached helps also page caching.
  • XMPP is used for messages and chats and runs over node.js. Availability is granted by HAProxy who handle the node’s fragility.
  • Multimedia files are stored using xfs and media encoding is made using ffmpeg.
  • Everything is distributed over more than 4 datacenters

vk_logoThe main difference betweek VK and other social network is about server functions: VK servers are multifunctional. There is no clear distinction between database servers or file servers, they are used simultaneously in several roles.

Load balancing between servers occurs on a layered circuit which includes at balancing DNS, as well as routing requests within the system, wherein the different servers are used for different types of requests. 

For example, microblogging is working on a tricky circuit using memcached protocol capability for parallel sending requests for data on a large number of keys. In the absence of data in the cache, the same request is sent to the storage system, and the results are subjected to sorting, filtering and discarding the excess at the level of PHP-code.

The custom database is still a secret and is widely used in VKontakte. Many services use it: private messages, messages on the walls, statuses, search, privacy, friends lists and probably more. It uses a¬†non-relational data model, and most operations are performed in memory.¬†Access interface is an advanced protocol memcached.¬†Specially compiled keys return the results of complex queries. They said is¬†developed “best minds” of Russia.

I wasn’t able to find any other insight about VK infrastructure after this speech. They are like KGB ūüėÄ

A couple of weeks ago @lastknight lent me his Jawbone UP because I want to buy an activity tracker in order to log my sleep “performances” and my workouts and¬†I was undecided between the Jawbone UP24 and the Fitbit Force.

The UP is really interesting from a technical point of view. Is a small set of sensors (mostly accelerometers) with a battery (up to 10 days of use).


jawbone_up_app_logoFeelings are good: is lightweight enough to don’t notice when you wear it. You¬†can track steps, sleep and a large set of activities (giving a different meaning to steps informations). There is not web interface yet. The only way to sync your device and view you data is your smartphone.

I started using the new 3.0 version of the app so i don’t know how the previous versions were.

I added my friends @gigisommo, @luka_bernardi and @dieguitoweb and I started to track all my activities. Dashboard shows your everyday progress:


And there are details about walk, sleep and workouts:




After a week I’m quite happy with this device. Steps are probably overvalued and sleep tracking is not perfect but data seems near enough to reality to be useful. Since I started to test it I tried to sleep more and do more steps and challenge with my friends was really fun.¬†I really miss the web interface. Would be the best addition to this ecosystem.

Anyway I’m probably going to buy an UP24 on january. If you are part of this network add me as friend ūüėČ