Paypal Express Checkout with Ruby on Rails and paypal-sdk-merchant

In my last work, Agrimè.it, an ecommerce built using Ruby on rails, I had to implement the cart payment using Paypal Express Checkout. Sadly, I found that was the worst time to do it, because Paypal was migrating the classic API to the new REST API and the documentation was a real mess! Walking through the doc links, I jumped (without a particular logic) from the new to the old API reference and vice versa.

Read More »

Passare a Vim grazie ad Emacs

Grazie Sciamp per avermi convinto a passare a Vim parlandomi di Emacs :) Lo so, sembra uno scherzo, eppure è proprio vero! Era da tanto che volevo cambiare editor passando da Textmate a qualcos’altro, ho intravisto Sublime Text 2, ma volevo qualcosa di open source. Da un po' di tempo Alessandro stava rompendo le scatole a tutti su quanto è figo Emacs :) e avevo iniziato a lavorarci un po', ma non sono mai riuscito ad entrarci in sintonia.

Read More »

Create a contact form for Jekyll

As I promised to a reader who wrote me an email some days ago, with this post I’ll explain how I built the contact form of this website using Sinatra and Sendgrid. As you know (or you’re just learning) this site is made by Jekyll, a static site generator written in Ruby. As the result of the work of Jekyll it is a static HTML website, so it’s not immediate to build a contact form.

Read More »

Monitoraggio distribuito con Nagios/Icinga e NSCA

Sebbene Icinga/Nagios e NRPE siano un’ottima coppia per monitorare le macchine (sia via socket che internamente), a volte possono non bastare. Potrebbe infatti essere utile distribuire i check su più macchine, sia per un fattore di carico sia per aggirare eventuali firewall. Partendo quindi da una macchina con un server Icinga o Nagios funzionante, come descritto qui, mostrerò come configurare un secondo server remoto che comunica via NSCA il risultato dei check al server principale.

Read More »

Sostituire un disco in un raid software

Ho recentemente scoperto un’interessante opzione di sfdisk che risolve molti problemi quando si deve sostituire un disco di un raid software. Integro quindi l’articolo originale segnlando questa opzione, da usare nel caso in cui al comando: sfdisk -d /dev/sda | sfdisk /dev/sdb sfdisk si rifiuti di partizionare correttamente /dev/sdb a causa di problemi con i cilindri. Dato che Linux è molto meno schizzinoso del DOS, esiste un’opzione per ignorare problemi che con Linux, appunto, non sono tali:

Read More »

Accesso SSH inverso

Può tornare utile accedere via SSH ad un pc/server non pubblico. Capita ad esempio quando un cliente disperato sta provando a mettere le mani sul server impallato e tu stai cercando di dettargli i comandi al telefono (generalmente con pessimi risultati). Quindi basta avere un server SSH a cui il cliente possa arrivare con un utente da utilizzare. Supponendo che il server da raggiungere sia ssh-server.test.com e l’utente test, basta che digiti il comando:

Read More »

IPv6 in pochi passi con ALIX e SixXS

Come ormai saprete (1 - 2) ho un debole per gli embedded ALIX di PcEngines. In questo caso userò una scheda 2d13 con RTC, indispensabile perché se il vostro orologio non è sincronizzato con quello del broker IPv4-IPv6 (±30 secondi) non avrete la connessione IPv6! Come da tradizione il sistema operativo è Debian Voyage, ma tutta la procedura può comunque essere applicata ad una qualsiasi macchina con installato un os Debian-based (a meno di qualche piccola modifica).

Read More »

Realizzare un sistema di monitoraggio con Icinga

In questa breve guida spiegherò come installare Icinga (un fork di Nagios che ha ormai superato il genitore) e Icinga Web su Ubuntu 10.04 server. Molti passi sono uguali a quelli che ho già descritto nelle due guide sull’installazione di Nagios (1 e 2). Operazioni preliminari Installare i pacchetti necessari: apt-get install apache2 bsd-mailx build-essential libgd2-xpm-dev libjpeg62 libjpeg62-dev libpng12-0 libpng12-0-dev snmp libsnmp-base git-core mysql-server mysql-client libdbi0 libdbi0-dev libdbd-mysql Aggiungere utenti e gruppi: addgroup --system icinga adduser --system --no-create-home --home /usr/local/icinga --ingroup icinga --disabled-password icinga addgroup --system icinga-cmd usermod -a -G icinga-cmd icinga usermod -a -G icinga-cmd www-data Creare il database: #> mysql -u root -p mysql> CREATE DATABASE icinga; GRANT USAGE ON *.

Read More »

Sostituire un disco in un Raid 1 con mdadm

Lo devo fare da anni, finalmente prendo appunti per una cosa che mi capita di fare almeno un paio di volte l’anno e che, puntualmente, mi scordo come si fa :-) Il punto è questo: sostituire un disco in un array Raid 1 quando si rompe. Riporto gli appunti presi qualche anno fa sulla wiki del LILiK. La situazione di un raid 1 con un disco rotto è più o meno questa:

Read More »

DNS e Postfix: come non generare "spam"

Edit (29/01/2010): Aggiunte una correzione per far funzionare la firma DKIM su server di relay

Ho recentemente configurato alcuni server per l’invio di email. Parte del lavoro ha riguardato la corretta configurazione di Postfix e del server DNS per evitare che le email inviate venissero rilevate come spam. In una diversa guida spiegherò come ottimizzare la configurazione di Postfix per grandi quantità  di email (≥1.000.000/mese). Dato che già  in molti me lo hanno chiesto: no, non si tratta di server per l’invio di spam, ma server per il mail marketing (quando il servizio sarà  pubblico potrò tranquillamente rivelarne il nome).

La configurazione ha riguardato tre punti principali:

  • Impostazione del record A e del reverse address
  • Impostazione di SPF
  • Configurazione di DKIM e DomainKeys

Read More »