Rails i18n più semplice con vim-i18n

08 Sep 2013 — Commenti

Mi sono totalmente dimenticato di riportarlo qui, ma tipo 7 mesi fa ho rilasciato un plugin per vim pensato per rendere più semplice e meno tediosa la traduzione delle proprie applicazioni Rails: vim-i18n.

Font sizing responsive per sani di mente: conosci i rem?

08 Sep 2013 — Commenti

Piccola confessione: le unità em non sono mai riuscito a sopportarle. Sarò negato in aritmetica, ma dal secondo livello di nesting semplicemente perdo il controllo della situazione: durante la scrittura del CSS non sono più in grado di intuire quanti pixel approssimativamente verrà grosso un dato testo o box. E se non sono i grado io che lo sto scrivendo, figuriamoci il prossimo disperato che dovrà rimetterci le mani sopra tra qualche mese.

La mia esperienza con i Page Objects

31 Aug 2013 — Commenti

Il pattern Page object ha come obiettivo quello di mettere a disposizione del sistema oggetti che rappresentino mapping 1:1 con una specifica pagina (o collezioni di pagine) presenti nella nostra UI.

RubyDay 2013

15 Jun 2013 — Commenti

Non avevo accennato della cosa in questo blog, ma io e il prode Ju Liu abbiamo partecipato al RubyDay, tenutosi ieri a Milano, per la prima volta in veste di speaker!

Get me torrents!

23 May 2013 — Commenti

Sebbene la stasi di questo posto, diverse cose divertenti sono successe da gennaio, tra cui il side-project Get me torrents!, che dopo 3 ore dalla messa in onda si è ritrovato sulla front page di Reddit:

Persistere sessioni di lavoro con Vim

15 Dec 2012 — Commenti

Vim continua a stupirmi. Spesso e volentieri mi sono ritrovato a chiedermi se esistesse un modo per ripristinare lo stato delle viste così come lasciate prima dell’ultima chiusura.

Redpomo: la mia risposta al time-tracking

05 May 2012 — Commenti

Quando si tratta di gestire una piccola compagnia di sviluppo software, essere in grado di stimare i tempi di consegna dei progetti in corso, e dunque poter pianificare le disponibilità future dei (pochi) sviluppatori è fondamentale.

Un mese di nuove sfide!

12 Mar 2012 — Commenti

In effetti mi sembrava che fosse tutto troppo tranquillo ultimamente. Qualcosa doveva capitare. Sta capitando.

Come testare i propri controller in isolamento: un esempio reale con CanCan

29 Jan 2012 — Commenti

TL;DR Questo è un post per sviluppatori Rails di media esperienza. L'obiettivo di questo (lungo) tutorial è quello di guidare il lettore passo passo verso le possibili tecniche per testare i propri controller, evidenziandone problematiche e vantaggi. Arriveremo al termine del tutorial ad un soluzione rapida e mantenibile, che testi in completo isolamento il controller e che farà uso di strumenti come stubs e mocks.

Ottimizzare la leggibilità del proprio sito con Compass /3

22 Jan 2012 — Commenti

Bene, dopo una sfarinatura su come mantenere un ritmo verticale tramite Compass, su come impostare una scala tipografica, su come gestire in maniera ottimale i font-size mediante em, arriviamo all’ultimo passaggio: come scegliere in maniera ottimale line-height e font-size per il tag <body>, ovvero le dimensioni che saranno di riferimento per l’intero sito?

Ottimizzare la leggibilità del proprio sito con Compass /1

11 Jan 2012 — Commenti

Nel recente restyling di questo blog mi sono concentrato sul rendere la lettura di ogni pagina il più piacevole possibile. Era un campo inesplorato per me, e sono talmente eccitato delle scoperte fatte e del risultato ottenuto che non posso non riassumervi qualcosa.

Spinach e Turnip: alternative a Cucumber

16 Dec 2011 — Commenti

Negli ultimi tempi sembra esserci stata una presa di coscienza collettiva nel mondo Rails/BDD. Se fino a sei mesi fa eravamo in piena Cucumber-mania, la situazione pare essersi quantomeno ribilanciata. Bello Cucumber? No, il contrario. E’ terribile, con quella miriade di steps globali ed espressioni regolari da dover domare evitando conflitti e ambiguità.

Tabs UJS con i data-behaviour

23 Oct 2011 — Commenti

Ho scoperto l’UJS in concomitanza della sua introduzione massiccia su Rails: ne sono rimasto immediatamente affascinato. Un coupling ancora meno stretto tra contenuto e comportamenti dinamici della pagina, utilizzando come strumento di comunicazione gli attributi HTML5 data-*? Fantastico! :)

Un task Capistrano per backuppare il DB di produzione

13 Sep 2011 — Commenti

Recentemente, per riprodurre un bug che si presentava solo in produzione, ho pensato bene di creare un piccolo task Capistrano per copiare in locale l’intero contenuto del DB remoto. Il task funziona solo se il DB di produzione è MySQL. Troverete il risultato nella cartella backups del vostro progetto Rails. Eccolo:

Il costo del cambiamento nel mondo Agile

28 Aug 2011 — Commenti

Una delle assunzioni universali dell’ingegneria del software è quella che vede il costo necessario per modificare un programma crescere esponenzialmente nel tempo. Chi di noi non ha mai visto qualcosa di simile su un manualone di programmazione?

Buone vacanze!

27 Jul 2011 — Commenti

Il vostro fedelissimo a partire da giovedì si ritira per un paio di settimane di riposo in famiglia. E’ stato un anno impegnativo e pieno di sfide, sotto tutti i punti di vista. Sono felice di poter dire, come si suol dire, di aver tenuto botta a un cambio di città e al primo anno di vita di weLaika. Ora tutta la stanchezza accumulata sta iniziando a farsi sentire sul serio. Ci si risente da metà agosto circa, fate i bravi!

I più bei bottoni CSS3 del mondo

26 Jul 2011 — Commenti

Chad Mazzola è riuscito a creare un set di bottoni CSS3 incredibilmente lickable, prendendo spunto dagli stili più celebri presenti nella rete. Da quando conosco questo set, ho smesso di cercare altrove.

Unique Value Proposition

06 Jul 2011 — Commenti

The UVP is hard to get right because you have to distill the essence of your product in a few words that can fit in the headline of your landing page. Additionally, your UVP also needs to be different and that difference needs to matter. First-time visitors spend 8 seconds on average on a landing page. Your UVP is their first interaction with your product - craft a good UVP and they might stay and view the rest of your site. Otherwise, they’ll simply leave.

"Coming soon" pages? Evitale.

04 Jul 2011 — Commenti

By skipping the “coming soon” page, you can really focus on what matters. Instead of a “coming soon” page, put up a landing page for your product. Make it look like the product exists, and then when people try and sign up, show them a page letting them know that you’re not quite ready for them yet. The effort is the same, but this tiny change can give you massive rewards. By skipping the “coming soon” page, you gain validated learning about the emails you collect: they are people who thought your product existed and showed a real interest by trying to sign up. If you have people hitting the page and no one gives you their email, you know there’s a problem with your idea or the way you’re describing it.

Why sharing knowledge is vital for success

29 Jun 2011 — Commenti

Sharing knowledge is one of the best things you can do to become a great team player and ultimately a leader. It is essential not only for the success of people around you, but for your own success in the first place. The more you share, the more people respect you. The more respected you feel, the more you’re willing to share. The more you give away, the more new opportunities come your way.

From idea to paying costumers in 7 weeks

27 Jun 2011 — Commenti

E’ la prima volta che ne parlo in questo blog, ma è un topic che sto seguendo ormai da alcuni mesi con attenzione ed interesse: il minimum viable product. E’ un concetto sviluppato ormai tre anni fa da Eric Ries in un più ampio contesto, quello denominato del Lean Thinking, riassumibile nello sviluppare sempre il minimo indispensabile per ottenere nuove interessanti informazioni dai propri clienti e visitatori, in modo da guidare i successivi sviluppi sulla base dei feedback registrati.

Implementing DSL Blocks

19 Jun 2011 — Commenti

Una panoramica ultra-comprensibile e dettagliata sul mondo dei DSL in Ruby e sui vantaggi e svantaggi delle varie tecniche possibili per realizzarli. Incrocerete i problemi del metodo instance_eval spesso utilizzato in questi casi, scoprirete probabilmente per la prima volta mixico, una gemma prodotta anni addietro dal compianto Why.

Propositi di inizio Giugno

05 Jun 2011 — Commenti

Dopo due mesi di vita di questo nuovo esperimento – e assodato il fatto di essere in grado di reggere per davvero una media di 4-5 mini-post a settimana – credo sia arrivato il momento di fare una piccola analisi sul da farsi. Gli obiettivi principali che cercherò di raggiungere nei prossimi mesi possono riassumersi in 3 punti.

Pow e PHP

01 Jun 2011 — Commenti

However, there is a downside: Pow doesn’t play nicely with Apache (or any server listening on port 80). Life isn’t all greenfield, if in the course of the day you need to work on PHP or CGI legacy apps Pow is not so simple. Pow creates a firewall rule that redirects port 80 to its port; to access Apache you need to either toggle the firewall rule on and off or move Apache to a different port all together. And now you’re running two web servers. There has to be a better way.

Learning Advanced Javascript

29 May 2011 — Commenti

E’ difficile trovare buoni esempi per spiegare in poche righe di codice alcuni degli aspetti più controversi e meno intuitivi del mondo Javascript. Le famose closures, il possibile cambio di contesto all’interno di funzioni, i diversi metodi per ottenere l’ereditarietà tra (pseudo) classi..

Aggiungere target="blank" sui link esterni con un Rack middleware

23 May 2011 — Commenti

Quante volte avete sentito, magari a termine dei lavori, la richiesta “tutti i link verso l’esterno dovrebbero aprirsi in un tab separato”? Questo è un tipico esempio di lavoro tremendamente noioso da fare per vie canoniche – perchè richiederebbe un editing di tutti i link presenti in tutte le viste – ma banale da realizzare passando per un middleware Rack.

Usa oggetti Ruby nei form Rails con Informal

21 May 2011 — Commenti

Informal is a small gem that enhances a Plain Old Ruby Object so it can be used with Rails 3 form helpers in place of an ActiveRecord model. It works with the Rails form_for helper, and simple_form as well.

CoffeeBeans: AJAX con CoffeeScript su Rails

21 May 2011 — Commenti

Il pezzo che ancora mancava a Rails 3.1: scrivere anche le risposte AJAX in CoffeeScript. Con questo plugin è sufficiente creare viste con suffisso .coffee, e verranno automaticamente convertite in Javascript al momento del rendering.

Batman.js

21 May 2011 — Commenti

Una interessante alternativa agli MVC lato client. Opzionalmente è in grado di occuparsi anche del lato server, in Node.js, con possibilità di condividere il codice e le validazioni dei modelli. Mi piace molto il binding automatico di comportamenti tramite attributi HTML5 data-:

Come assumere programmatori

11 May 2011 — Commenti

  1. Filter out candidates who don’t have a github/blog/portfolio
  2. Pair with remaining candidates

You’ll learn 95% of what you need to know from pairing. Can they code? How do they think through problems? Can they interact with teammates? When they don’t know something, do they posture, or figure it out? It’s pretty fucking simple, really.

Vico: alternativa sensata a Textmate

08 May 2011 — Commenti

Vico is the result of a personal itch. My eyes want a beautiful looking, modern Mac text editor. But my fingers just want vi.

Vico is inspired by some great software out there. The vi/vim command set beats anything in terms of efficiency and speed. TextMate has set a new standard in many ways, and the bundle community is still thriving.

Un web proxy in Rack per cross-domain Ajax

07 May 2011 — Commenti

In weLaika stiamo lavorando allo sviluppo di un social-network con un’architettura logica a due livelli: da una parte uno storage ultra-performante su Google App Engine, dall’altra una serie di differenti frontend per l’utente finale. Il primo frontend è quello web – al quale weLaika sta lavorando. Il secondo, e per ora ultimo, sarà realizzato con tecnologia Flash.

Spine: l'erede di Backbone.js

07 May 2011 — Commenti

Un po’ di sana concorrenza nel mondo dell’MVC client-side ci voleva. Salutiamo tutti Spine.js, un framework MVC fortemente ispirato all’ormai popolare Backbone.js, ma con una serie di miglioramenti molto interessanti che lo avvicinano molto ad una impostazione Rails:

mogenerator: mai più rigenerare le classi dei modelli Core Data manualmente

03 May 2011 — Commenti

mogenerator is a command-line tool that, given an .xcdatamodel file, will generate two classes per entity. The first class, _MyEntity, is intended solely for machine consumption and will be continuously overwritten to stay in sync with your data model. The second class, MyEntity, subclasses _MyEntity, won’t ever be overwritten and is a great place to put your custom logic.

Slow time

02 May 2011 — Commenti

Communication doesn’t always have to be in real time. It can be in what we call “slow time”. You can post something and three hours later someone can get back to you and then four hours later someone else can get back to you. And everything will work out just fine.

Slow time is “Maybe it takes two or three days to have this conversation. And we do it over periods of 15 minutes here, two minutes there, four minutes there.” And that’s fine. It doesn’t need to happen all at once. Unless it’s really, incredibly, truly urgent. (Which most things aren’t. They’re made out to be that way, but they really aren’t that important.)

hookup

02 May 2011 — Commenti

Il solito Tim Pope con una nuova gemma che sfrutta gli hook Git per chiamare automaticamente bundle install e rake db:migrate non appena ce n’è bisogno.

ScottBot: a "that's what she said" bot

29 Apr 2011 — Commenti

To get scottbot started, I put it into an otherwise empty IRC channel and just fed it a few “funny” and “notfunny” messages, giving it feedback on each one. Within a few dozen it was getting pretty good at this. Which, coincidentally, is what she said.

Pattener: generatore di sfondi via SASS

20 Apr 2011 — Commenti

L’idea è interessante (qui ci sono degli esempi dei pattern generabili ad oggi). Spesso e volentieri mi trovo a dover generare sfondi noised, un’approccio del genere sarebbe perfetto. Certo, ci fossero dei pattern decenti – gradienti, o noise, appunto – sarebbe pure meglio. Ma si può sempre forkare.

Do worry... be happy

15 Apr 2011 — Commenti

Un’ora di lezione su come gestire il proprio business dal CEO bolognese di Balsamiq, Peldi Guillizzoni. Consigliato.

Adapt.js - Adaptive CSS

15 Apr 2011 — Commenti

Ennesima proposta per gestire CSS a più resoluzioni, suggerita dei creatori del grid system 960 e composta da un leggero script JS.

PJAX

13 Apr 2011 — Commenti

PJAX loads HTML from your server into the current page without a full reload. It’s ajax with real permalinks, page titles, and a working back button that fully degrades.

Chameleon Project

13 Apr 2011 — Commenti

If you’re an iOS developer, you’re already familiar with UIKit, the framework used to create apps for the iPhone, iPod and iPad. Chameleon is a drop in replacement for UIKit that runs on Mac OS X. In many cases, your iOS code doesn’t need to change at all in order to run on a Mac.

Solarized: colorscheme per il tuo text editor preferito

12 Apr 2011 — Commenti

Solarized is a sixteen color palette (eight monotones, eight accent colors) designed for use with terminal and gui applications. It has several unique properties. I designed this colorscheme with both precise CIELAB lightness relationships and a refined set of hues based on fixed color wheel relationships.

Cinque lezioni dopo un anno di weLaika

11 Apr 2011 — Commenti

Ebbene sì, un’anno è già passato. Il 2 Aprile 2010 ore 12.00, sette pischelli — età media di 24-25 anni — si riuniscono di fronte ad un notaio per firmare lo statuto ufficiale di weLaika; società sognata, pensata e definita durante mesi di focose discussioni e appassionati thread mail.

Prime Impressioni su Sphinx

09 Apr 2011 — Commenti

Per la prima volta ho avuto modo di testare funzionamento di Sphinx, uno dei più popolari motori di ricerca full-text in circolazione. L’ho preferito a Lucene per evitare il disagio di Java, e a Ferret per la maggiore affidabilità che mi sembrava dare dal punto di vista del supporto e della stabilità.

Pow: 37signals colpisce di nuovo

09 Apr 2011 — Commenti

Server e un DNS da installare sul proprio Mac per sviluppo locale di applicazioni Rack. Bundler e RVM compatibile. Installato immediatamente. Sembra abbia qualche tipo di bug relativo allo scaricamento tramite send_data, ma a parte questo é incredibilmente utile. Mi aspetto un progetto similare per Linux nel giro di un paio di settimane.

Fuck you. Pay me.

09 Apr 2011 — Commenti

Presentazione di Mike Monteiro, Design Director di Mule Design, consigliata a chiunque sia alle prime armi col dover affrontare la sfida di gestire clienti, anche quando le cose non stanno andando come sperato (mi ricorda qualcuno). Spoiler: cercati un’avvocato.

Crash Course: Design for Startups

07 Apr 2011 — Commenti

Piccoli, semplici, ottimi suggerimenti da Paul Stamatiou per iniziare ad entrare nel mondo del web-design senza sbagliare tutto. Consigliato a tutti i programmatori duri e puri là fuori: anche noi ce la possiamo fare. Coraggioso il suo reverse portfolio: tutti i propri lavori, dal più orrendo, al più recente.