Post from iphone

Una interessante applicazione per iphone per chi gestisce uno o più blog basati su wordpress.

L’app si chiama “worpress 2″ ed è gratuita.

Questo è il primo post che realizzo e per ora, a meno che nn ci siano brutte sorprese più avanti, sembra fatta molto, molto bene!

November 5, 2009
Post from iphone

Bash history search

Molto comodo, usando il terminale, poter cominciare a scrivere un comando già usato in passato e scorrendo con la freccia da tastiera, poterlo recuperare al volo senza dover tornare su 2 o 300 volte!

Per poter fare questo è necessario (su osx ma credo che valga anche per linux) creare (se non esiste) nella propria home il file .inputrc e al suo interno copiare quanto segue:

# set show-all-if-ambiguous on

# do not bell on tab-completion
set bell-style none

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

# show file types while completing
set visible-stats on

# Completed names which are symbolic links to
# directories have a slash appended.
set mark-symlinked-directories on

# Only show ‘show all nn items’ for > 1000
set completion-query-items 1000

$if mode=emacs

# for linux console and RH/Debian xterm
“\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5~": history-search-backward
"\e[6~": history-search-forward

# for rxvt
"\e[8~": end-of-line

# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
"\eOH": beginning-of-line
"\eOF": end-of-line

# for freebsd console
"\e[H": beginning-of-line
"\e[F": end-of-line

$endif

# [Up] and [Down] do incremental history search
“\e[A": history-search-backward
"\e[B": history-search-forward

# Previous stops [Left] and [Right] working: reinstate
“\e[C”: forward-char
“\e[D”: backward-char

$if Bash
# Do expansion when space is pressed
Space: magic-space
$endif

November 2, 2009
Bash history search

Bash script: rinominare file in una directory

A volte capita di dover fare una semplicissima “rinomina” di una serie di file all’interno di una directory. Invece di stare ad installare software, bash ci da tutti gli strumenti per poterlo fare in una riga

Ho una directory con circa 400 file .JPG che in voglio rinominare in .jpg (estenzione da maiuscolo a minuscolo)

Nel terminale scrivo:

for i in $(ls *.JPG); do mv “$i” “`basename $i .JPG`.jpg”; done

that’s it! semplice semplice!
tutti i 400 file sono rinominati in un nanosecondo!

October 29, 2009
Bash script: rinominare file in una directory

RegEx, trovare parole indietro

Le regular Expression mi hanno sempre affascinato in modo particolare!
Oggi mi sono imbattuto in un problemino carino da risolvere e magari può essere di aiuto a qualcuno:

Scenario:
all’interno di un XML ho delle didascalie che in alcuni punti contengono la nomenclatura speciale del tipo <1986?>. Questo XML lo carico all’interno di un flash e quindi i caratteri “<” e “>” non vengono interpretati come caratteri ma tutto quel blocco viene interpretato come un TAG. Risulta quindi necessario convertire i due segni con &lt; e c &gt; (i relativi codici).

Esempio di stringa:
<tag_xml><![CDATA[<body>Immagine  8) Ritratto privato;<1986?></body>]]></tag_xml>

Devo andare ad isolare solo <1986?> e farlo diventare &lt;1986&gt;
Non posso cercare i carateri < e > poichè questi sono presenti in altri tag che devono rimanere tali.
Ho quindi deciso di rintracciare all’interno dell’xml, il testo ?> e recuperare l’intera parola precedente a quel punto. Isolo nella regex ile tre diverse parti (“<”, “1982″ e “?>”) e sostituisco la prima e l’ultima.

Ecco qua:
(<)(\d+(?=\?\>))(\?\>)

Con sostituzione:
&lt;$2&gt;

(Il segnaposto viene richiamato da alcuni software in maniera differente. $2 è il modo in cui TextMate su Osx richiama i segnaposti regex)
E il gioco è fatto!
 

October 29, 2009
RegEx, trovare parole indietro

Come far funzionare Ruby on Rails sui server JaguarPc (CPanel)

Uso da moltissimi anni senza dovermi mai lamentare troppo, del servizio hosting offerto da jaguar (http://www.jaguarpc.com).
Jaguar utilizza cpanel per far gestire lo spazio e il server ai propri clienti. Per la stragrande maggioranza dei siti che si producono, a meno che non ci siano esigenze particolari, questo servizio è sempre stato sufficiente, a volte anche molto comodo grazie al “fantastico panel” che permette di installare CMS al volo.
Diverso tempo fa, cpanel e jaguar hanno introdotto il supporto a Ruby on Rails. Puoi creare la tua applicazione e indirizzarla in una percorso definito anche non nella root (es: http://tuodominio.it/test/)
Da sviluppatore Rails quando vidi questa cosa ebbi un sussulto di gioia! per alcuni miei progetti era una manno poter passare da php a questo framework.
Ci ho pravato mote volte ma MAI sono sono riuscito a far girare una applicazione in maniera corretta. E a nulla sono serviti i 29 ticket che ho aperto con l’assistenza (sempre ottima devo dire) ma in questo caso molto impreparata.
Alla fine, grazie al mio guru/maestro il buon vechio Joe, ieri siamo riusciti e mi sembra doveroso condividere questa scoperta che può essere utile ad altri.

Ovviamente questa piccola guida è solo per chi possiede un hostin con cpanel.
i passi previ sono:

  • creare una nuova applicazione Rails su cpanel dandole un nome (es: test)
  • creare un rewrite affinche il server possa puntare http://tuodominio.it:12030/test su http://tuodominio.it/test
  • avviare l’applicazione cliccando su START

A questo punto il sistema crea un .htaccess nella directory public_html e il sito con la classica index di rails dovrebbe essere visibile. Mai successo!
Perchè? non sono un esperto di apache ecc e il probelma sta prorpio nel .htaccess generato dal sistema che dovrebbe risultare più o meno così:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^tuodominio.it$ [OR]
RewriteCond %{HTTP_HOST} ^www.tuodominio.it$
RewriteRule ^test? http\:\/\/127\.0\.0\.1\:12030$1 [P,QSA,L]

Il punto è che la directory public/ non vien eassolutamente raggiunta e così nemmeno le immagini, css, javascript ecc
Se però creiamo un primo controller e un action, questa la visualizzaremo (senza stili nè js)
es: http://tuodominio.it/test/controller/action/

SOLUZIONE: basta modificare la stringa dell’applicazione in questo modo:

RewriteRule ^test(/.*)? http\:\/\/127\.0\.0\.1\:12031$1 [P,QSA,L]

la regex non era corretta, così dovrebbe funzionare tutto

grazie joe!

October 23, 2009
Come far funzionare Ruby on Rails sui server JaguarPc (CPanel)