mercoledì 10 ottobre 2012

Timezone in Rails

Impostare la time zone dell'app Rails permette di avere un dialogo uniforme tra la app e il db se il db è impostato in un orario diverso da quello utc.

È una impostazione molto meno banale di quel che si creda se ad esempio si utilizzano gli helper di rails delle date (esempio 30.seconds.ago)


Vaska.com



Vaska è parole colore, diario, ordine spazi rimati, manifesto.

È fatto con indexhibit

Tra le varie parla anche della sedia di Enzo Mari.

Ed inoltre sono infastidito dalla mancanza di margine nell'editor di blogger.


venerdì 28 settembre 2012

..so it will scale.

Unire due record. Amplessi in Rails: operazione riuscita.

Unire il concetto dei moduli, dei moduli di symfony 1.4 ha questo nuovo nome: Terrific.
Another approach to front-end architecture with modules, Terrific

Sublime Text, i comandi fondamentali.
Some things beginners might not know about sublime text

Nella cartella principale di rails per ottenere l'elenco delle task digitare:
rake -t

Whether it’s Linux or Haskell or MongoDB or whatever, every workplace has at least one guy who spends most of his time talking about closures and how he is moving his blog to NodeJS so it will scale.Typical Programmer - Linus Torvalds goes off on Linux and Git

Rails + CoffeeScript + Backbone

Dopo l'installazione della gemma 'backbone-on-rails' ..

rails generate backbone:install

L'istruzione genera uno scheletro di una applicazione backbone all'interno della cartella app/assets/javascripts

Model, la base

La più semplice rappresentazione di Backbone di un model:

var Task = Backbone.Model.extend({
  urlRoot: ’/tasks’
});

var task = new Task()

Quando viene instanziato questo modello viene effettuato una chiamata AJAX alla url '/task'


Routing

class MainRouter extends Backbone.Router
  routes:
    "show/:id/": "single_message"
    "": "list"
  list: ->
    messagesList = new MessagesList()
  single_message: (id) ->
    console.log (id)


fonte 

lunedì 24 settembre 2012

Coffescript, custom events / eventi personalizzati.

La gestione degli eventi in jQuery è molto semplice. Con Coffeescript diventa anche molto chiara. Si lancia un evento da un oggetto del dom e su quello oggetto (in questo caso body) viene agganciato un listener pronto a scattare quando l'evento si verifica.



fonte: jquery-bind-events-with-rails-coffeescript

lunedì 3 settembre 2012

CSS, tecnica di replacement di Nicolas Gallagher

Il nuovo replacement di Nicolas Gallagher si avvale essenzialmente della proprietà font-size e del valore 0/0 a.


Il primo zero rappresenta la dimensione, il secondo l'altezza di linea (line-height) e la terza la famiglia del font ed è necessaria solo per coerenza con la validazione css.

Text-shadow serve solo nel caso in cui il testo erediti ombre e il color transparent invece cura dei problemi presenti in safari 4.

Fonte http://nicolasgallagher.com/another-css-image-replacement-technique/ · http://css-tricks.com/examples/ImageReplacement/

sabato 28 luglio 2012

Lanciare Sublime Text dalla linea di comando?

La documentazione ufficiale dimentica di dire che per far funzionare il comando
ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
bisogna avere i permessi di amministratore (basta premettere la parolina sudo davanti al comando).

Senza permessi il comando indicato cercherà di creare un alias in un posto nel quale non può senza permessi di amministratore.

lunedì 9 luglio 2012

Rails, logger più colorato e più silenzioso.

Quiet logging

Avete presente quei get get get get che vi invadono la stanza e vi tediano la vita? Con una gemma risparmierete la gommina del pulsante in mezzo al mouse, le giunture delle dita, la frustrazione nel cercare tra mille log uguali quello che a voi interessa. Fa quello che dice. Lo giuro.


Term ansicolor

Inserite in application controller la seguente dicitura:
require 'term/ansicolor' 
include Term::ANSIColor
permette di gustare un dolce logging fatto di grassetto e colori.
Più dolce e poetico di così proprio non si può: https://github.com/flori/term-ansicolor


In futuro?

In futuro potrei provare a studiarmi questo
per generare un output gentile dei record.

domenica 27 maggio 2012

Impostare la compressione su Aruba

Per impostare la compressione Zlip su aruba basta impostare nell'.htaccess queste istruzioni

SetOutputFilter DEFLATE
AddOutputFilter DEFLATE text/plain
AddOutputFilter DEFLATE text/xml
AddOutputFilter DEFLATE application/xhtml+xml
AddOutputFilter DEFLATE text/css
AddOutputFilter DEFLATE application/xml
AddOutputFilter DEFLATE image/svg+xml
AddOutputFilter DEFLATE application/rss+xml
AddOutputFilter DEFLATE application/atom_xml
AddOutputFilter DEFLATE application/x-javascript
AddOutputFilter DEFLATE application/x-httpd-php
AddOutputFilter DEFLATE application/x-httpd-fastphp
AddOutputFilter DEFLATE application/x-httpd-eruby
AddOutputFilter DEFLATE text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

fonte http://www.giorgiotave.it/forum/wordpress/126495-compressione-gzip.html

mercoledì 9 maggio 2012

Date e Stringhe in Ruby

Come gestire le date e come cercare e sostituire pezzi di testo all'interno di una stringa

Gestire le date

Ruby può prendere una data e convertirla attraverso la classe Time oppure Date in un oggetto facilmente esplorabile.
# 1) prendere una stringa in qualsiasi formato
str = '2012-05-02 00:00:00 UTC'

# 2) parsarla in una padella d'olio
variabile = Time.parse str

# 3) utilizzare il metodo strftime passandogli il giusto parametro...
variabile.strftime!("%B")

# 4) e l'output sarà May, cotto e mangiato
<%= variabile %>

Sostituire un pezzo di stringa

gsub è un metodo della classe String decisamente fedele e obbediente, capace di rimuovere porzioni di stringa in modo rapido e indolore.
description = 'lorem ipsum dolet [...]'
description.gsub!('[...]','Leggi tutto')


Fonte: Stackoverflow · Ruby Doc · dzone

giovedì 3 maggio 2012

Hash e Array in Ruby / Debug in Rails 3

Hash

#Differenza tra un array ed un hash
hash = {title:'Snowboard',place:'Sahara'}
array = [evento_1,evento_2,evento_3]

#Hash metodi
hash = { :one => "uno", :two => "dos" }
assert_equal 2, hash.values.size
assert_equal __, hash.values.include?("uno")
assert_equal __, hash.keys.include?(":one")
assert_equal __, hash.values.class

La classe Hash è fatta di chiavi e valori.
Sia la chiave che i valori sono array che vengono tra loro associati.
Trattasi di un matrimonio di array.

L'esplorazione avviene con due metodi: le parentesi quadre [] e il metodo fetch.
Le due proprietà principali della classe Hash sono keys e value.
Entrambi se esplorate permettono di utilizzare il metodo .include?

* hash = Hash.new
* hash.size
* hash[:one] #prende l'elemento one
* hash.fetch(:one) #prendere l'elemento one, la differenza è che il fetch scatena un IndexError nel caso in cui si invochi una chiave non esistente
* hash.keys.size
* hash.keys.include?(:two)
* hash.values.include?("uno")
* Hash.new("default value") # quando viene esplorato una chiave non presente

Render Partial

Per caricare una vista parziale
<%= render nome_della_vista %>
Il nome della vista nel file system deve avere l'underscore davanti (ad esempio "_nome_della_vista.erb").
Il metodo render può accettare anche dei parametri aggiuntivi che permettono di specificare un layout per una specifica vista.

<%= render partial: nome_della_vista layout: 'layout_tuo' %>

Debug in Rails 3

Nella vista
debug variabile
Nel controller
logger.warn / logger.info etc.

Fonte: Ruby on Rails Guides · MrWebmaster · Ruby documentation

Code Igniter e la sua arrogante semplicità.

Vuoi prendere tutti dati in post?
$data = $this->input->post();
Fonte CodeIgniter User Guide Codeigniter sessions best practices

Configurare Sublime Text 2 per controllare la sintassi di Ruby e Javascript.


Per controllare la sintassi di ruby in Sublime Text è sufficiente installare il package SublimeLinter di Kronuz.

Ruby


Se volete utilizzare la sintassi di Ruby 1.9 e utilizzate rvm probabilmente vedrete che non correggerà in modo corretto la nuova sintassi.

Per risolvere il problema si può cambiare il file di configurazione del package in questo modo
"sublimelinter_executable_map":
    {
        "ruby": "/users/tuo_nome/.rvm/rubies/ruby-1.9.3-p0/bin/ruby"
    }
Dove il percorso indicato corrisponde alla posizione dell'installazione di Ruby.

Javascript

Per quanto riguarda Javascript utilizzo queste opzioni aggiuntive che mi permettono di evitare l'obbligo di punto e virgola nel finale delle righe js.





Fonte :
SublimeLinter · Stackoverflow · Sublime Text · Liorhakim

lunedì 6 febbraio 2012

Utilizzare l'emulatore android su mac os x

Scaricare la sdk ed installarla.

Attraverso il terminale infilarsi nella cartella di installazione

cd /Users/%Nome del computer%/Public/android-sdk-mac_x86

Creare un profilo avd con il seguente comando

./android create avd -n mionome -t 2

Lanciare il simulatore

./emulator @mionome

Dopo aver atteso un bel pò di tempo tutto funziona (molto lentamente.. il confronto con il simulatore iphone è decisamente impietoso).

Fonte: Android Developer - Managing avds cmdline