Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updated icons #74

Open
wants to merge 6 commits into
base: source
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,22 +87,22 @@ menu:
- categories:
name: "Categories"
url: "/categories/"
identifier: "fa fa-folder-open"
identifier: "fa-solid fa-folder-open"
weight: 2
- categories:
name: "Authors"
url: "/authors/"
identifier: "fa fa-pencil"
identifier: "fa-solid fa-pencil"
weight: 3
- categories:
name: "Careers"
url: "/ita/careers/"
identifier: "fa fa-briefcase"
identifier: "fa-solid fa-briefcase"
weight: 4
- categories:
name: "Who we are"
url: "/eng/who-we-are/"
identifier: "fa fa-users"
identifier: "fa-solid fa-users"
weight: 5

# Insert your username and the icon will apear on the page as long as
Expand Down
24 changes: 12 additions & 12 deletions content/blog/eng/codemotion-milan-2016-in-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,62 +23,62 @@ This post would be a short recap of some talks in chronological order. The choic
# Day 1

## The new features of PHP 7
* Enrico Zimuel ([@ezimuel](https://twitter.com/ezimuel))
* Enrico Zimuel ([@ezimuel](https://x.com/ezimuel))
* 11:30 – 12:10 #programming ([slides](http://zimuel.it/slides/codemotion2016/))

Enrico Zimuel, Software Engineer at [Zend Technologies](http://www.zend.com/), the company behind the PHP engine, talks about some of the new features of PHP 7: the scalar type and return type declarations, the spaceship and null coalescing operators, the anonymous classes, the consistent 64-bit support, etc. Furthermore he explains why PHP 7 is twice as fast compared to the previous version and it has 30% lower memory consumption.

## Kubernetes and lastminute.com: our course towards better scalability and processes
* Michele Orsi ([@micheleorsi](https://twitter.com/micheleorsi))
* Michele Orsi ([@micheleorsi](https://x.com/micheleorsi))
* 11:30 – 12:10 #devops ([slides](http://www.slideshare.net/micheleorsi/kubernetes-and-lastminutecom-our-course-towards-better-scalability-and-processes))

Lastminute.com recently started a migration from a monolithic app to a microservice approach, leveraging the power of Kubernetes, the open source project lead by Google for container orchestration. This was quite the effort, and it unveiled a great deal of advantages and challenges.

## Continuous budgeting
* Francesco Fullone ([@fullo](https://twitter.com/fullo))
* Francesco Fullone ([@fullo](https://x.com/fullo))
* 14:10 - 15:50 #inspirational

This talk is about being agile in the entrepeneur side of our profession: how to plan and adapt to change when deciding how and how much to spend in our coding ventures; re-evaluating is key, and the only way to success is a delicate balance between maintenance and improvement.

## To ∞ (~65K) and beyond!
* Sebastiano Gottardo ([@rotxed](https://twitter.com/rotxed))
* Sebastiano Gottardo ([@rotxed](https://x.com/rotxed))
* 16:10 - 16:50 #mobile ([slides](https://speakerdeck.com/dextor/to-65k-and-beyond))

A lot of old -but still widely used- Android devices are natively limited to run apps with less than 65K method references (due to the Dalvik JVM). For many apps this could be a serious problem. During the talk Sebastiano, an Android engineer at Musixmatch, gave a very comprehensive and clear explanation of the problem and went through all the possible solutions showing some really useful tips to deal or better *avoid* it.

## Functional Reactive Programming with Kotlin on Android
* Giorgio Natili ([@giorgionatili](https://twitter.com/giorgionatili))
* Giorgio Natili ([@giorgionatili](https://x.com/giorgionatili))
* 17:10 - 17:50 #mobile ([slides](https://drive.google.com/file/d/0BxCm4NRlzb3PWjNNaG1KS0Utckk/view))

The title of this talk was very interesting considering the fact that both the functional paradigm and the Kotlin language are used within the Facile.it Android app. But actually I have to say that I found a 40 minutes talk not suitable as a format to address these two large topics together (72 slides!). I would have preferred two separate talks, but it was nevertheless an interesting presentation full of useful tips and advices about Kotlin and FRP.

# Day 2

## Coding Culture
* Sven Peters ([@svenpet](https://twitter.com/svenpet))
* Sven Peters ([@svenpet](https://x.com/svenpet))
* 10:30 - 11:10 #inspirational ([slides](http://www.slideshare.net/svenpeters/coding-culture))

In his keynote Sven Peters, Evangelist for [Atlassian](https://www.atlassian.com/), explains - in a very geek style - what is *company culture*, referring in particular to his company. He says that when people work in a great coding culture they are motivated and they are mostly very productive, but also they will have more responsibility and investment in the features they are developing. Developers will have more freedom to change their roles and try out new stuff, this is the right way to make better products with happier developers. He concluded his speech with these words: *«Products may change, but never forget values, cultivate your culture!»*.

## MicroMonolith - Top anti-patterns of adopting distributed system
* Michal Franc ([@francmichal](https://twitter.com/francmichal))
* Michal Franc ([@francmichal](https://x.com/francmichal))
* 12:30 – 13:10 #architectures

In this talk, Michal reports his (and his team) experience in the infamous transistion from a monolithic app to a microservice oriented architecture. Michal works at [@JustGiving](https://twitter.com/JustGiving), which mainly uses .NET, but he didn't focus on the specific technology, but rather on the generic problems and pitfalls that this kind of transition brings to the table. During his tale, he laid to us a lot of useful suggestions and common issues to look for.
In this talk, Michal reports his (and his team) experience in the infamous transistion from a monolithic app to a microservice oriented architecture. Michal works at [@JustGiving](https://x.com/JustGiving), which mainly uses .NET, but he didn't focus on the specific technology, but rather on the generic problems and pitfalls that this kind of transition brings to the table. During his tale, he laid to us a lot of useful suggestions and common issues to look for.

## Develop applications in Big Data Era with Scala and Spark
* Mario Cartia ([@mariocartia](https://twitter.com/mariocartia))
* Mario Cartia ([@mariocartia](https://x.com/mariocartia))
* 12:30 – 13:10 #cloud #bigdata

Large amount of data are produced everyday and Big Data is a concept increasingly trendy. In his talk Mario Cartia presented Scala and Spark,two powerful tools suitable to Big Data Processing. Scala is a General purpose programming language that combines the benefits of OOP and functional programming. Apache Spark is an open source framework and it's a fast engine for big data processing, based on Scala language.

## Gang of Four Patterns in a Functional Light
* Mario Fusco ([@mariofusco](https://twitter.com/mariofusco))
* Mario Fusco ([@mariofusco](https://x.com/mariofusco))
* 14:10 – 14:50 #programming ([code](https://github.com/mariofusco/from-gof-to-lambda))

In this live-coding talk, Mario Fusco uses Java (and new Java 1.8 features) to translate the wide-known GoF design patterns into functional programming, making the code a lot less verbose, reducing the noise of boilerplate over the really important code.

Also, kittens:

<blockquote class="twitter-tweet" data-cards="hidden" data-lang="it"><p lang="it" dir="ltr">&quot;In programmazione funzionale, quando lanci un&#39;eccezione muore un gattino, se ritorni null muore la mamma&quot; by <a href="https://twitter.com/mariofusco">@mariofusco</a> <a href="https://twitter.com/CodemotionIT">@CodemotionIT</a> <a href="https://t.co/40XErlWFbX">pic.twitter.com/40XErlWFbX</a></p>&mdash; Giulio Santoli (@gjuljo) <a href="https://twitter.com/gjuljo/status/802507849494654976">26 novembre 2016</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet" data-cards="hidden" data-lang="it"><p lang="it" dir="ltr">&quot;In programmazione funzionale, quando lanci un&#39;eccezione muore un gattino, se ritorni null muore la mamma&quot; by <a href="https://x.com/mariofusco">@mariofusco</a> <a href="https://x.com/CodemotionIT">@CodemotionIT</a> <a href="https://t.co/40XErlWFbX">pic.x.com/40XErlWFbX</a></p>&mdash; Giulio Santoli (@gjuljo) <a href="https://x.com/gjuljo/status/802507849494654976">26 novembre 2016</a></blockquote>
<script async src="//platform.x.com/widgets.js" charset="utf-8"></script>
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ In the last month, I'm working on two different PHP projects here at Facile.it:

After, I decided to start migrating a previous, internal project of mine to the same approach, since it's currently in production with a dumb approach that provokes some downtime during deployments; on the contrary, **doing a rolling deployment with Kubernetes is surprisingly easy**!

A few days ago David Négrier‏ ([@david_negrier](https://twitter.com/david_negrier)) published a blog posts about his way of doing continuous deployment from GitLab CI:
A few days ago David Négrier‏ ([@david_negrier](https://x.com/david_negrier)) published a blog posts about his way of doing continuous deployment from GitLab CI:

<blockquote class="twitter-tweet" data-lang="it"><p lang="en" dir="ltr">Just blogged: &quot;Continuous Delivery of a PHP application with <a href="https://twitter.com/gitlab?ref_src=twsrc%5Etfw">@gitlab</a>, <a href="https://twitter.com/Docker?ref_src=twsrc%5Etfw">@Docker</a> and <a href="https://twitter.com/traefikproxy?ref_src=twsrc%5Etfw">@traefikproxy</a> on a dedicated server&quot;<br> <br> <a href="https://t.co/6piVuNBa7x">https://t.co/6piVuNBa7x</a><br><br>// <a href="https://twitter.com/coding_machine?ref_src=twsrc%5Etfw">@coding_machine</a></p>&mdash; David Négrier (@david_negrier) <a href="https://twitter.com/david_negrier/status/954306019655593984?ref_src=twsrc%5Etfw">19 gennaio 2018</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet" data-lang="it"><p lang="en" dir="ltr">Just blogged: &quot;Continuous Delivery of a PHP application with <a href="https://x.com/gitlab?ref_src=twsrc%5Etfw">@gitlab</a>, <a href="https://x.com/Docker?ref_src=twsrc%5Etfw">@Docker</a> and <a href="https://x.com/traefikproxy?ref_src=twsrc%5Etfw">@traefikproxy</a> on a dedicated server&quot;<br> <br> <a href="https://t.co/6piVuNBa7x">https://t.co/6piVuNBa7x</a><br><br>// <a href="https://x.com/coding_machine?ref_src=twsrc%5Etfw">@coding_machine</a></p>&mdash; David Négrier (@david_negrier) <a href="https://x.com/david_negrier/status/954306019655593984?ref_src=twsrc%5Etfw">19 gennaio 2018</a></blockquote>
<script async src="https://platform.x.com/widgets.js" charset="utf-8"></script>

This post immediately captured my attention, due to my current work: David in his post avoided the usage of Kubernetes to not add too much cognitive load, and wrote a very straightforward piece. On the other hand, in my case I wrote a kinda complicated pipeline, learning a few tricks and pitfalls in the process, so I decided to write this down and share my experience.

Expand Down Expand Up @@ -60,7 +60,7 @@ The combination of the `alias: docker` setting and the `DOCKER_HOST` environment
> My approach is a bit more **robust**, but it's overall **slower**, because each job is **totally isolated** (which is good), but on the downside it has no memory of previous builds, so no cache is available: we will have to **pull from the registry each time**.
<br/>
<br/>
> **2018-02-07 ERRATA**: [Stefano Torresi](https://twitter.com/storresi) (privately) and [/u/veloxlector](https://www.reddit.com/r/kubernetes/comments/7vomn5/continuous_deployment_from_gitlab_ci_to/dttzc28/) (on Reddit) made me realize that my approach still requires a privileged runner, so that doesn't change with my approach; the privileged execution is [always required when doing Docker-in-Docker](https://github.com/docker-library/docs/blob/master/docker/README.md#start-a-daemon-instance). This reduces my security claims, but my main aim was isolation.
> **2018-02-07 ERRATA**: [Stefano Torresi](https://x.com/storresi) (privately) and [/u/veloxlector](https://www.reddit.com/r/kubernetes/comments/7vomn5/continuous_deployment_from_gitlab_ci_to/dttzc28/) (on Reddit) made me realize that my approach still requires a privileged runner, so that doesn't change with my approach; the privileged execution is [always required when doing Docker-in-Docker](https://github.com/docker-library/docs/blob/master/docker/README.md#start-a-daemon-instance). This reduces my security claims, but my main aim was isolation.

The `GIT_DEPTH` option makes the project clone process in each job a bit faster, pulling only the current commit, not the whole Git history.

Expand Down Expand Up @@ -140,7 +140,7 @@ I still leverage GitLab's `$CI_REGISTRY` variable to compose the names, so basic
Just remember to use `$CI_COMMIT_REF_SLUG` for the second tag, because it has slashes and other invalid chars stripped out automatically.

### A small trick: cache-friendly Docker images
To make this process work smoothly, you should write your **Dockerfile in a cache-friendly manner**. To obtain that, we must leverage the layer-based structure of the images, and **put the stuff that changes more often in the latter layers**, and vice versa the stuff that never changes up in the first ones. In this specific case we're talking about a PHP/Symfony application and, starting from some advice that I got from my colleague [Thomas](https://twitter.com/thomasvargiu), I wrote down this Dockerfile:
To make this process work smoothly, you should write your **Dockerfile in a cache-friendly manner**. To obtain that, we must leverage the layer-based structure of the images, and **put the stuff that changes more often in the latter layers**, and vice versa the stuff that never changes up in the first ones. In this specific case we're talking about a PHP/Symfony application and, starting from some advice that I got from my colleague [Thomas](https://x.com/thomasvargiu), I wrote down this Dockerfile:

```dockerfile
FROM gitlab.facile.it/facile/my-project/php-base
Expand Down
10 changes: 5 additions & 5 deletions content/blog/eng/droidcon-it-2016.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ In this post I'm going to recap the event and make some considerations about the

# Day 1

## Keynote - *[Wojtek Kalicinski](https://twitter.com/wkalic)*
## Keynote - *[Wojtek Kalicinski](https://x.com/wkalic)*
The day 1 keynote was all about the N Developer Preview and was given by Wojtek Kalicinski, a developer advocate directly from Google.
Wojtek went through all the new improvements of the platform, both from user's and developer's point of view. Here’s a short summary of the most relevant ones:

Expand All @@ -42,15 +42,15 @@ The most interesting and encouraging aspect coming out from the keynote and the

Not only the release of the new OS preview six months before its public release — instead of three — is really useful for third party developers to update apps to support new APIs, but hopefully it will also help phone manufactures to keep their custom Android implementations more aligned with the stock version release cycle. This will result in a better user experience and, more importantly to us, a better developer experience, making it closer to the iOS world where developers are not required to support five years old OS versions.

## #PERFMATTERS for Android - *[Hasan Hosgel](https://twitter.com/alosdev)*
## #PERFMATTERS for Android - *[Hasan Hosgel](https://x.com/alosdev)*

[Slides](https://speakerdeck.com/alosdev/perfmatters-for-android-droidcon-turin-2016)

The talk was all about performance in Android. The speaker analyzed why #**PERFMATTERS** on Android: the typical mobile user is generally *impatient* and *intolerant* and even just a couple of extra seconds during the start-up could make the difference in the user's choice to use or not your app. Hasan went through a lot of interesting tips and tricks to improve performance, such as avoiding multi-pass nested layout — a topic discussed in more detail by Huyen Tue Dao during her [talk](#lean-layouts) —, avoiding memory leaks or having a cache on disk for data.

Performance is crucial to **engage the user** and I think the speaker did a great job in summarizing useful tips to improve it. Moreover most of them doesn’t alter the readability or the maintainability of the code, as is often the case for performance driven code changes.

## Let it flow! Unidirectional data flow architecture in Android - [*Benjamin Augustin*](https://twitter.com/dorvaryn)
## Let it flow! Unidirectional data flow architecture in Android - [*Benjamin Augustin*](https://x.com/dorvaryn)

[Slides](https://speakerdeck.com/dorvaryn/let-it-flow)

Expand All @@ -68,7 +68,7 @@ They explained also how they use a **C++ library** common to all platforms to re

It was a light talk but still it was interesting to see how a big company like Spotify finds solutions to scale and maintain a **consistent and engaging UX** across all of its user-base.

## Loving lean layouts - [*Huyen Tue Dao*](https://twitter.com/queencodemonkey) <a name="lean-layouts"></a>
## Loving lean layouts - [*Huyen Tue Dao*](https://x.com/queencodemonkey) <a name="lean-layouts"></a>

[Slides](https://speakerdeck.com/queencodemonkey/droidcon-italy-2016-loving-lean-layouts)

Expand All @@ -78,7 +78,7 @@ The talk was very easy to follow and really useful: most of the advices covered

# Day 2

## Android reactive programming with RxJava - [*Ivan Morgillo*](https://twitter.com/hamen)
## Android reactive programming with RxJava - [*Ivan Morgillo*](https://x.com/hamen)
During last couple of years RxJava has been echoing all over the Android developers community and given its huge popularity I was surprised to see that Droidcon IT offered only one talk about it.

Fortunately Ivan Morgillo is a topic expert — he also wrote a [book](https://www.packtpub.com/application-development/rxjava-essentials) about RxJava and Android — and during the talk he went through some of the **basics of reactive programming** (`Observables`, `Observer`, `Subscription`…) and a lot of useful **operators**, which are one of the strengths of RxJava and Reactive extensions (Rx*) in general.
Expand Down
Loading