Category Archives: Thoughts

Thoughts about my life, my interests and in some cases about technology, develop and studies.

#London Chapter 4: My Propeller

I’m a bit late with my this but it has been my 4th “Londonversary” at the beginning of the month. It’s getting harder and harder to write something because so many things happen every day and I have always less and less time for my blog.
The truth is.. I’m getting probably older and I’ve even forgotten having a page somewhere around the web 😀

This has been a damn intense and fast paced year.
I had the same feeling in the past, but this time I can guarantee it was even too much for me. Probably, this post is not even for you but just to make me realize how things happen so fast and so many all at once even when you cannot control them.

Work

I tend to really like what I do, so don’t take this “section” as a negative bit of this year.
It’s what probably I’ve been really invested in for the the last years but I’m getting better also at other stuff 😛

Since the beginning of my journey at Bloomberg, I had a chance to work on a new Android app which is part of what the company offers as complimentary service to its customers. As usual, there were some hard times at the beginning because I had to understand how things were working but I managed to find my space and perform a lot of improvements those were not affecting just me but the entire ecosystem we were trying to build. I also had a chance to interview tons of people and for the first time in my life do some volunteering teaching math to kids(at least I tried haha).

It finally came the time to move on. I wasn’t really planning to change for any other job but something really big this summer came. For a lot of people this would be just a chance to work for the biggest social network in the world, adding a nice stamp on their CV. Honestly, while this can be true, I don’t really give a fuck about my CV and if you think like this is gonna be the perfect recipe for failure.
For me this is all about learning a lot of new things, working with the most skilled people in the World and tackling problems that any other company cannot even dream to have.
Even if it’s just the beginning, It’s really an honour working at Facebook and trying to strive towards the company’s mission.

Travel/Misc

In March, my girlfriend and I moved to a different flat and we had crazy time packing all our things and getting rid of all that crap people cumulate in years(someone was right.. garbage collection has few tiny little drawbacks).
Around the same period, I went for the first time in my life to Sicily with my friend Kfir and it was absolutely awesome. It was still to early to have a swim in the sea but it’s definitely a place where I’d like to go back again.

In May, I had a chance to go for the second time in my life to Google I/O. The conference was nothing crazy and not really well organized but I had really good time with chaps from Badoo, Deliveroo and many other companies.  I also had a chance to meet Vincenzo and Emilio from SmartLauncher, a really cool mobile company from a city call Manfredonia which is definitely in my todo list in the place to visit.

In June, my girlfriend and I went to Copenhagen for the third time and it was awesome.
The girl that was hosting us through Airbnb left us a couple of tickets for Tivoli and it was great to go there even if it’s such a touristic place 😀

In July, taking advantage of a friend’s wedding, we finally had a real holiday in Portugal. It was my first long road trip and it was awesome to see everyday different cities, cultures and traditions. If you haven’t visit the country, I’d definitely recommend give it a chance and your holidays will definitely be great ones.

In September I spent some time back in my hometown with my family and few friends.
It was awesome to see them again after a long while. Sometimes I feel kind of sad because I cannot play cards or have a coffee with my grandma, watching my grandpa still working from 6am, driving with my father, seeing my brother and old friends, cooking with my mother, … whenever I want.
On the other side, staying far from home and trying to achieve better and better results gets rewarded every time I see their eyes: that sense of admiration and happiness when they see me and what I achieve doesn’t have a price. This is my propeller.

In November, I went to Menlo Park CA for my Bootcamp and I had two awesome weeks seeing Facebook even closer and leaving a bit the American Dream. I honestly don’t know if I’d like to live in California but as of Today and looking at past experiences… you never know what future is preparing for you.

Last but not least, I still have to go back home for Chrismukkah(XMas).

I think I’ve never travelled so many times in my life in a year both for work and leisure.

Merry XMas to everyone 🙂
Simone

Curious/fun facts

  • My lemon tree looks the same as probably one year go
  • My last 3 jobs last 1 year and 3 months (cit. LinkedIn)
  • The number of hours it took me to prepare for Facebook interviews was directly proportional to the number of wine glasses I had this year. The only difference is that interviews had an end but wine hadn’t 😀
  • In California, even if you have five/six lanes each side in the highway, you’ll still get stuck somewhere with your car

 

Advertisements

Android at #io16

(As usually…) It has been a while since my last blog post 🙂

This time I’m coming back just to tell you briefly about Google I/O 2016!
Last time it was back in 2013 when I went with my friend Massimo and since then a lot of things have changed. The Android platform got a lot more mature and my impression is that Google started to focus more on simplifying the developer life while still gaining a lot of new data.

I’m not gonna talk about VR, Artificial Intelligence and Machine Learning. These are really cool technologies but my developer heart still belongs to an Android made of custom UIs, Content Providers, messy fragments, multi-threading, memory constraints,… and… why not… Android Studio!

It’s kind of funny because back in 2013 when Tor Norbye and Xavier Ducrohet announced Android Studio starting to ditch support for Eclipse, I was a bit upset. After few months, I started to appreciate IntelliJ and all the efforts that the Android Developer Tools Team made in order to have a first class Android IDE integration/experience.

…but this is the past!!! Without forgetting about being dwarfs standing on the giants shoulders, let’s focus on the present and what’s ahead of us! 🙂

This Google I/O 2016 came with a lot of news:

  • Android N will support native Multi Window with Drag&Drop capabilities.
  • ConstraintLayout: not a RelativeLayout, not a FrameLayout, not a LinearLayout, not a PercentageBlaBlaLayout,… but a completely new ViewGroup that comes with a full integration in a new layout editor for Android Studio. The power of this new tools is based on the promises of flattening drastically the View hierarchy creating constrains between Views and parents! 🙂
  • Java8 support + Jack Compiler
  • An APK analyzer to inspect generated APKs and help you try to remove un-necessary and/or un-optimized resources
  • Instant Apps is a new feature that will allow you to modularize more your application allowing the user to download just a single use case of your app, without having to install a full APK. Even if it might look a bit strange, this tool could be really handy when it comes to introduce your service to new users, engaging them little by little.
  • Android Wear 2.0: even if it comes as a preview, it will have a new enhanced user interaction and more immersive experiences.
    • Watch Faces will support more than just time and battery info. There will be a chance to support more complicated(complications) data that will provide useful info to the user.
    • Notification will come with a new interaction style and paradigm.
  • Firebase: this is kind of hard to describe. The most simplest description that comes in my mind is “A magic box that contains a lot of tools to help you build better apps.  All these kind of little things those are taking a lot of time when developing new features in your apps will become definitely a lot easier. A/B testing, analytics, syncing, login, GCM,… have been bundled and connected(not all of them) togheter into Firebase, giving you a simple way to check and maintain them.

…there is definitely a lot more and you can check it out on the Google I/O 2016 Youtube channel!

I hope you’re gonna enjoy some of the pics I took over there 🙂

This slideshow requires JavaScript.

Cheers,
Simone

P.S.:
..if you live in UK, have a long weekend! 🙂

#London Chapter 3: Be ambitious! Be bold!

Time flies when you are having fun and apparently today it’s my 3rd London anniversary 🙂
I was just reading few minutes ago the second chapter of my adventure in the United Kingdom and I’m really surprised to see how many things have changed during the last year.

Driven by my dream of getting better and better, I tried to hit most of the targets for this year.

In January, I have finished my Mobile Cloud Computing specialisation on Coursera and my project was also awarded with a tablet that my mum has definitely appreciated.

The following months have been really intense and plenty of events that is better to summarise in just few points:

Yesterday, I also started a Machine Learning course that will try to keep me busy till to the end of February.

I don’t know why… but I still feel that I haven’t done enough things during this 2015. I can justify this, saying that otherwise I wouldn’t know what to do next year… even if I have already got something in mind 😉

After a long period of silence on my blog, I hope that all my achievements have turned on you the desire of striving always for something more. Someone would say YOLO(you live only once) and I definitely agree with that: life is to short to let it fly away.

See you at the next time 🙂

Cheers,
Simone

Data Exchange and Sync (part 5)

Since the beginning of our journey, we have tried to create a wearable experience starting from our existing handheld app. A first working solution has been achieved just taking advantage of the WearableExtender that has allowed us to easily extend the status bar notifications, providing detailed info and extended functionalities to the wearable device. Even if this approach can work for the majority of the applications and it is really straightforward to achieve, it has some drawbacks in terms of achievable features and availability of content on the smartwatch. In fact, if the smartphone and the wearable device are not coupled, the latter one cannot offer any more access to the previously shown content. Keeping in mind that the wearable device is not a substitute of the handheld one but more like an extension that should try to simplify the user life, we have then exposed a limited number of functionalities into a custom wearable app. In order to achieve this result both applications currently share a common module but are decoupled in terms of single application modules. In this way it is possible to recycle and share code elements like the ContentProvider, the models and common utilities but at the same time keep distinct the different platform based implementations. In Pimp my Wear, this solution has led us to a wearable application that can be used by the user even if the two devices are temporarily disconnected but at the same time to a situation where the content gets out-synced. In this chapter we are going to have a look at how the Wearable Api can help us exchanging and syncing data between the two different devices.

Read the rest of this entry

Introduction to Wearables (part 1)

Wearable devices are definitely one of the most exciting and coolest technologies of 2014 along with drones and smart cars. Hardware producers, software companies and even start-ups are pushing the boundaries beyond what is just being on a handheld device, struggling to open new challenges and attract new customers. Something similar has been already seen when smartphones were just at the beginning of their appearance, but this time the purposes and targets of this technology are a little bit different. It is not just a matter of keeping the user connected with the World outside but it’s more about offering him new services, getting more from/into his life. Sensors can collect data about user activities (heart rate, pedometer, burn calories, sleep hours…) allowing to know more from the user’s context and his behaviors. Embedding them on wearable devices(smartwatches, rings, betls,…) can grant almost a 24 hours coverage, attracting the user to use something that he is already used to wear but with more functionalities and fancier. Read the rest of this entry

One year in #London, just the first chapter of a new book.

It has been one year since I left Italy, my friends and the warm nest of a family that never stops loving you.

Just this morning I received an email from my father who was asking me if I’m celebrating this wonderful day. I think that the biggest celebration is to be here; it doesn’t matter if it’s London, Paris, NY,… but the important fact is that I’m still here, fighting day by day for all those things that I like to do. In just one year a lot of things have changed in my mind, in my life and in my job. New horizons, goals and people have started to be part of this new life but at the same time all the “old” important ones have continued to follow me and support all my choices. Read the rest of this entry

Geolocation Panel at #AppsWorld

Hi all 🙂
today with Ian Holt(Ordnance Survey), Carl Patridge(London & UK Bus Checker) and Josh Garnier(OpenTable) I have taken part into a panel, moderated by Shivam Gadhia(Novoda), about Geolocation for the Android platform at the Exhibition Center in Earls Court. Due to time limits we haven’t touch in deep every different aspect of the “new” Google Play Services but we have given to our gently audience a panorama around what this new service offers.

First of all, I would like to thanks all the people that have attended our panel and that have beared my accent. Then all the other panelists those have explained pretty well, thorough their working scenarios, all the problems, issues and solutions that they encounter every day during projects lifecycle.

Somedays ago I have read a post on a blog that accuses Android not being open source anymore and that now only Google has the full control on it through their magical Google Play Services: that’s not completely true. If you think about Android as an Operating System, the Play Services are a useful tool on the top of it and something that helps you dealing with complexities of the Android platform. In an ideal World, every device should have its Google Play Store installed, with every kind of related plugin, but, due to the open nature of Android, any different brand can customize and provide a different build.

In this way it’s quite difficult to have the Google Play on devices like Kindle or build those mount different stores for the apps.

So, when you are conscious that on most of the devices (90% on the market) around the World the services can be available, you should start to think something like:

  • Ok, I want to target that 90% without considering the other 10% taking advantage of the Play Services higher level API
  • I can take advantage of the Google Play Services and at the same time provide a customized(not necessarily worse) solution on the remaining 10%

One thing that I discourage you to do is to rely completely on the old location management for all the available devices. It’s true that Google Play Services aren’t available on every device and that managing all the possible edge cases can create some complexity, but at the same time, if you are able to use them, you’ll get rid of a lot of complexity to manage Geolocations issues. At the same time the device battery, other applications and your application as well will benefit of the big advantage of this new top layer tool; indirectly this means that you’ll provide a better experience for your users those will definitely be more happy!

Cheers,
Simone

“Just #Google it!”

I have started this post almost one month ago but I’m finding now the time to write something about one of the coolest companies in the World. I have never had the opportunity to work there but, as user and mobile developer, I have certainly noticed that in the last 15 years Google has changed the Web and in particular the life of billions of people.

Through products like its famous search engine, the Android OS, Google Plus, Chrome and dozens of other projects Google is gaining day by day more success and people that trust in its goals. If you think about that, every company tries to earn more money and to acquire more users but Google has something more: the desire to grow not only as a supremacy but as a vector of evolution for the entire World.

That’s not obvious because most of the people, especially in the IT world, tend to be more closed than opened to resources and tools sharing. Google thinks different and that’s the power and one of the aspects those have make it great!
I’m not saying that every product, every library and everything produced by this company is perfect or something that only a bunch of genius can produce but I would like to highlight the main purpose behind their business: make the life of everyone better.

Sometimes it quite difficult to maintain those kind of standards because if the other companies and competitors think in the opposite way, offering them a lot of useful tools can be quite painful. But if you consider the purpose of make the World better, that can be used to maintain alive the competition and the desire of discover new things.

As Android Developer, I’m really grateful to a company of this caliber because I have got the big opportunity to work in a world that without Google wouldn’t be so great and close at the same time. Working everyday on the mobile OS that is on the top of the edge makes me really proud and happy because, using a set of tools that’s offered for free, is giving me the possibility to do my own business but at the same time the possibility to work for something that goes beyond that.

There are a lot of big and good company all around the World but I’ll definitely continue to support Big G if they’ll continue in this way 🙂

A new #Android App for @MailOnline

In the last few months the MailOnline mobile team has completely rewritten from the scratch their Android application. Getting rid of the old code, we came across to a lot of iterations and problems those have forced us to re-think the entire background synchronization and the resource management. As one of the Android developer who has developed this version, I’m very proud to say that this version is definitely better, faster and smoother than the prior one.

This slideshow requires JavaScript.

The main features, improvements and changes that you’ll certainly noticed from the screenshots are:

  • Load more articles when you reach the bottom of a channel
  • Swipe down to sync news in the channels page (with progress percentage)
  • Swipe between different channels
  • A new drawer menu that will appear swiping from the left edge of your screen (enable in settings)
  • Share and comments feedback inside the articles
  • Shortcuts from article to main channels
  • Filters on data and image sync
  • Different priority and order for channels (based on your preferences)
  • Enriched FAQs screens

There’s still always something new to do and to improve but this can be consider a really good app that will allow thousands and thousands of people to read their favorite news paper.

Thanks,
Simone

Algorithms are fu**ing awesome!

If you have a quick look on Wikipedia you’ll find out that algorithms are procedures used to solve calculations and to process data.

When I was in university, one of my teacher has defined them like a receipt. Imagine that you have got dozens of ingredients. You have to mix them in order to obtain something that’s really tasty and that can be considered eatable.

From a certain point of view that’s true. Isn’t it? 🙂

One thing that takes a little bit of attention is the fact that the ingredients have to be selected and manipulated following particular procedures otherwise you’ll obtain a food that it something “similar” to what you are expecting.

One week ago, I was reading a problem on Codility that at the beginning was appearing really… really… EASY PEASY!
That’s the greatest mistake that you can do! It doesn’t exist a problem that is simple… otherwise it’s not a problem 😉

After that assumption, I tried on my favorite editor to solve the problem and it “was failing some tests” (if it doesn’t cover any case it’s wrong).
I misunderstood the fact that my solution wasn’t considering entirely the input.

Hence I decided to focus on the velocity of the execution because maybe some loops + if statements were speed down the execution.
That’s another problem: don’t focus on velocity at the beginning. You’ll incur in a lot of mistakes and the problem will become more complex than expected.

At that point I decided to drink a huge cup of strong Italian coffee. “What am I doing?!?!? That’s not the way!”
This was not the idea that solves all your problems but a kind of ray that was saying me that I should start to think instead of trying a feasible solution .

At the end that’s the result:

Detected time complexity: O(N * M * log(M) + N * log(N))
Score: 100 of 100

…getting back to my teacher’s words, when you are sure that your solution works, you should start to think “Can I do something more?“.

Most of the time the solution is YES! OF COURSE!

Leaving that’s long and boring introduction I think that algorithms are not only a way to solve problems but a tool that allows us, not only geeks or nerds, to find other possible better solutions or to confirm that our one is the best one.
So, if you have a look at the icon, that is taken by the Princeton website, you should consider the opportunity to think a problem as something that has to be solved through organized iterations not only as an intuition.