Category Archives: Mac

Updated: The easiest and best way to install Ruby and Rails on OS X (Mountain) Lion

Update: a new version of JewelryBox (1.3) is out and is compatible with OS X Mountain Lion. You can download it from here.
The following procedure is still working with Mountain Lion and Xcode 4.4

It’s a long time since I wrote my last article on my blog. I’m back, talking about Ruby.

I don’t want to explain you what Ruby and Rails are or do, because if you want to install them you already know everything you need (I hope…).

With early Ruby release the installation of a complete Ruby environment was not totally painless. Now, with RVM and the great graphical front-end for Mac OS X, JewelryBox things are very simple, like 2-clicks.

With this article I’ll show you the step-by-step guide to install Ruby (1.9.3-p125) on Rails (3.2) on Mac OS X Lion (10.7.3).

Let’s talk about requirements:

1) First of all, you need to install Xcode developer tools 4.3 (free from the Mac App Store);

2) Second, you need to complete the Mac development environment installing the “Command Line Tools for Xcode” (LLVM compiler, Make, linker etc.)

To install “Command Line Tools for Xcode” open Xcode -> Preferences -> Downloads -> Components -> Install (on the right of Command Line Tools).

Installing Xcode Command Line Tools

3) Download JewelryBox from Unfiniti website and install it.

Download JewelryBox

4) Open JewelryBox, and install RVM clicking into “Install” button:

One click RVM install!

5) Once installation is complete, choose “+ Add Ruby” from the upper menu selecting which Ruby version do you want to install (1.9.3-p125 is the latest stable version actually), and leave all the default options enabled.

Leave Default Options

Note that in the older versions of Ruby (1.9.3-p0 or 1.9.2) and Xcode (4.2) you needed to select the “Use Clang” flag for a successful Ruby compiling, but this caused Rails installation to warning you about missing yaml (or libyaml) support. Now everything has gone.

6) All you need is? Rails. No, Terminal. Open the OS X Lion Terminal App and type:

$ sudo gem install rails

7) You’re ready to go, if the terminal output will look like:

$ <= 1.8.6 : unsupported
$ = 1.8.7 : gem install rdoc-data; rdoc-data –install
$ = 1.9.1 : gem install rdoc-data; rdoc-data –install
$ >= 1.9.2 : nothing to do! Yay!
$ Successfully installed … [cut]
$ Successfully installed rails-3.2.1
$ 31 gems installed
$ [cut]
$ _ (blinking)

8) Follow-up…You might ask yourself: “now what?”

  • If you need a great and powerful Ruby on Rails editor: Vim (from terminal) or MacVim are my favorites with rails.vim great scripts. Alternatives are the expensive TextMate, or the free Komodo Edit .
  • If you need some great books or resource to learn Ruby and/or Rails take a look at: Try Ruby, Agile Web Development with Rails.
  • If you want to comment this post, that would definitely be a great follow-up.

Hope you enjoyed this simple guide, have a nice day.

Configurare NetBeans per sviluppare con le OpenCV

La seguente guida e’ orientata a chi vuole impostare l’ambiente di sviluppo NetBeans per lavorare ad un progetto C/C++/OpenCV. La guida e’ applicabile in ambienti Linux, o Mac OS. Su Windows questa guida ha senso solo se e’ installato il compilatore GNU per C e C++ (dipende da Cygwin).

Il primo prerequisito da soddisfare consiste nell’installare le librerie OpenCV di Intel, disponibili nei repository ufficiali della propria distribuzione Linux, o installabili su Mac OS X tramite MacPorts. Il secondo prerequisito e’ l’IDE NetBeans scaricabile gratuitamente all’indirizzo http://www.netbeans.org .

NetBeans e’ il mio IDE preferito per via della sua completezza in materia di linguaggi di programmazione e tecnologie supportate. Da Java e Java EE (definibili come linguaggi preferiti di NetBeans) a svariati Database e Application Server ad altri linguaggi e sintassi quali HTML, JSP, Ruby, Phyton, C e C++ e perfino UML.

Inoltre e’ OpenSource e disponbile per tutte le piattaforme (Windows, Mac OS, Linux, Solaris).

Attualmente ad esempio sto lavorando ad un progetto di Computer Vision (in C e C++) e contemporaneamente ad una piattaforma di Business Intelligence in Java Enterprise.
Grazie a NetBeans posso lavorare a due progetti differenti, scritti in codici diversi che utilizzano tecnologie e piattaforme diverse con un unico strumento.

Adesso veniamo a noi…

Per iniziare a preparare l’ambiente e adattarlo alla programmazione C/C++ bisogna scaricare il modulo di Netbeans atto a svolgere tale compito:

  • Apriamo NetBeans e andiamo su Tools->Plugins.
  • Nella scheda “Available Plugins” segniamo C/C++ e aspettiamo che NetBeans scarichi per noi i pacchetti necessari all’installazione della funzionalità.

Adesso nella voce File->New Project tra le “Categories” troveremo la cartella C/C++ e potremo cosi’ creare un nuovo progetto C/C++.

  • Creiamo una nuova applicazione e andiamo avanti fino ad ottenere la schermata principale di NetBeans con il nuovo progetto nella scheda Projects.
  • Clicchiamo col destro sul nodo principale del progetto (che corrisponde al nome assegnato al progetto) e scegliamo proprietà.

Aggiungiamo adesso il supporto per le OpenCV:

  • Nella categoria C/C++, espandiamo C compiler e scegliamo la scheda General.
  • Clicchiamo sul pulsante (…) alla destra di “Include Directories” e impostiamo il percorso degli include delle OpenCV (/usr/local/include/opencv o /opt/local/include/opencv su Mac OS se avete installato le OpenCV con MacPorts).
  • Ripetete la stessa procedura per la categoria C++ compiler.

Adesso impostiamo il linker alle librerie dinamiche di OpenCV:

  • Nella categoria Linker, nella voce Libraries clicchiamo sulla (…) alla destra di Libraries, clicchiamo su Add Library File, ed aggiungiamo le librerie libcv.so, libcvaux.so, libcxcore.so e libhighgui.so (Linux su /usr/local/lib) oppure libcv.dylib, libcvaux.dylib, libcxcore.dylib e libhighgui.dylib (Mac OS su /opt/local/lib se avete installato le OpenCV con MacPorts).
  • Sempre nella categoria Linker nella voce General clicchiamo sulla (…) alla destra di Additional Library Directories ed aggiungiamo il percorso delle librerie (/usr/local/lib su Linux, /opt/local/lib su Mac OS X)

Applichiamo le impostazioni e adesso il vostro progetto dovrebbe essere pronto ad utilizzare le librerie OpenCV.

Imparare a programmare con Apple: Objective C, Cocoa ed Xcode

Non riuscendo assolutamente a stare fermo durante il tempo libero, ho iniziato un percorso di apprendimento alla programmazione e allo sviluppo sul mondo Mac.

Mac OS X e’ un sistema operativo potente, pulito, consistente e molto organizzato, e queste proprietà derivano direttamente dalla qualità del Framework che Apple ha consolidato da diversi anni (a partire da NextStep).

Come per ogni nuova tecnologia da imparare ed assimilare, la curva di apprendimento puo’ essere in certi casi molto lunga e poco efficiente.

Lo scopo di questo post e’ quello di condividere il mio percorso di apprendimento con i visitatori del sito.

Pertanto ecco di seguito i passi da seguire per chi vuole inziare a sviluppare software per Mac OS X :

1) Iniziate a leggere questo fantastico libro, utile anche a chi e’ agli esordi della programmazione: Become an Xcoder (scaricabile gratuitamente in inglese); è disponibile anche la versione italiana tradotta da Xcodeitalia.com: Diventare un Xcoder.

2) Dopo aver familiarizzato con C, Objective C ed Xcode, potete subito mettere in atto quanto appreso dallo studio effettuato, tramite una bella esercitazione guidata direttamente da Apple: Start Developing Mac Apps Today o la versione iOS Start Developing iOS Apps Today.

Dopo questi due passi sarete in grado di scrivere codice in Objective C, creare interfacce grafice e far interagire le due cose. A questo punto dovreste essere in grado di camminare da soli grazie alla valanga di documentazione che Apple mette a disposizione su http://developer.apple.com.

3) Per approfondire Objective C potete consultare: Programming with Objective-C.

4) Per approfondire Cocoa: What Is Cocoa?

A questo punto non mi resta che augurarvi buon divertimento, e un grosso in bocca al lupo per tutti i segmentation fault, i warning e gli errori di compilazione che incontrerete nel vostro “path”.

Un download manager, per dominarli tutti

Molti di voi si saranno trovati a scaricare via internet, col vostro browser preferito, grossi file e molto spesso ai piu’ sfortunati sara’ capitata una caduta di connessione al 99% dello scaricamento o magari il server da cui stavate scaricando non risponde piu’.

Bene, questa paranoia seguita da imprecazione, puo’ essere evitata utilizzando un download manager.
Un download manager e’ un software che gestisce gli scaricamenti HTTP ed FTP di file, introducendo ulteriori funzionalita’ quali il recupero dei download, la suddivisione del file in frammenti scaricabili in modo parallelo, lo scaricamento dei link esterni di una pagina web.
Gli smanettoni del mondo Linux conoscono il fantastico wget da linea di comando, i vecchi utenti Windows ricordano GetRight, che pero’ e’ shareware.

Ma esiste uno strumento a me sconosciuto fino a poco tempo fa, che e’ qualcosa di spettacolare. E’ una estensione del fantastico Mozilla Firefox, sviluppata da due italiani (Federico Parodi e Stefano Verna) che si presenta come “The first download accelerator for Mozilla Firefox”. Il suo nome e’ DownThemAll.

5.png

Essendo un estensione del browser, e’ multipiattaforma, vale a dire che gira su tutti i sistemi operativi (Mac OS, Windows, Linux, BSD, Solaris) e su tutte le architetture (x86,x86-64,PPC,Sparc).

Sottolineo il fatto che oltre ad essere di qualita’, e’ Open Source.

L’abito fa il monaco?

Premetto subito che sono contrario ad articoli del tipo “Personalizzare Linux per farlo apparire come Mac OS X”.
E sono convinto che nell’identita’ di un sistema operativo contribuisce anche l’aspetto estetico.
Ma ho sempre dato piu’ importanza alle tecnologie che ci sono alla base: usabilita’, semplicita’, consistenza, integrazione, interoperabilita’, stablita’, velocita’, licenza.
Riportando queste considerazioni sul piano estetico, ero convinto che il look di OS X era superiore a quello di Windows o di Linux a causa delle tecnologie che ci stanno alla base: Quartz, PDF, compositing e caratteri tipografici.
Ed ero altrettanto convinto che Linux non avrebbe potuto eguagliare la qualita’ visiva di OS X (se non con KDE4) perche’ le tecnologie che ha alla base non sono complete quanto quelle del sistema operativo della mela.

Ho dovuto ricredermi dopo aver letto e testato questo articolo.
Come possessore di un Mac ho potuto effettuare un confronto diretto. Identici.
Percio’ agli amanti delle personalizzazioni, se non volete sentirvi presi in giro per il color “marroncino tendente al gabinetto” di Ubuntu, sbalordite i vostri amici con effetti speciali.

osx-look.png

Mac OS o Linux?

Ma ricordate sempre che il mondo open source non rimane a guardare e studia e sforna in continuazione “concept ideas” che non sono dipendenti da politiche commerciali.
Pensate al progetto Tango, al progetto ubun2design ed al progetto dell’italianissimo Andrea Cimitan (che adesso e’ sviluppatore di Clearlooks), Murrina, di impatto estetico notevole.
Tra l’altro proprio ieri e’ apparsa una news nel blog di Cimi riguardante Gummy, un nuovo stile per Clearlooks, che personalmente ho apprezzato molto.

Condividere file e cartelle tra Windows Vista (Home Premium) & Mac OS X Tiger

(Sfortunatamente) Dopo aver installato Windows Vista Home Premium sul “Media Center” del mio soggiorno, ho riscontrato un problema nell’accesso delle risorse condivise all’interno della mia rete, che comprende un iMac G5 con Tiger, un notebook con Ubuntu ed il suddetto Media Center con Vista. Premetto che la rete funzionava benissimo con Windows XP ed i tre computer erano in grado di condividere Documenti, Musica, Immagini etc…

Dopo essermi documentato su Google, ho scoperto che il problema risiede (ovviamente) nel nuovo meccanismo di autenticazione alle risorse condivise tramite SAMBA, implementato in Windows Vista che utilizza adesso il protocollo NTLMV2 anziche’ NTLM.

La soluzione risiede dunque nell’impostare la retrocompatibilita’ di Vista col protocollo NTLVM. Dove? Ovviamente nel registro di cofigurazione di Windows!

Seguite questi passi:

  • Aprite il registro di configurazione di Windows: cliccate su Start (Logo Windows) e digitate nella casella di ricerca “regedit.exe”; cliccate su invio;
  • Navigate il registro attraverso le seguenti voci: “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa”
  • Selezionate a destra la voce “LmCompatibilityLevel” ed impostate ad “1” il valore (dovreste avere “3” come valore predefinito)
  • Chiudete il registro

Se avete seguito correttamente la procedura, adesso dovreste essere in grado di autenticarvi tramite Windows Vista alle risorse condivise da Mac OS X. E’ ovviamente sottointeso che abbiate qualcosa in condivisione e che sia abilitata la voce “Condivisione Windows” nelle preferenze di condivisione di Mac OS X.

Ma i problemi non sono ancora finiti, infatti non sono stato in grado di accedere tramite il Finder di Mac OS X alle risorse condivise da Windows Vista e non sono in grado di mandare in stampa i documenti da Vista alla stampante condivisa da Mac OS X.

Per ulteriori informazioni vi rimando ai post originali (inglese):

http://www.marialanger.com/2006/12/05/file-sharing-mac-vista/
http://applejac.typepad.com/applejac_macintosh_users/2007/03/mac_os_xwindows.html
http://www.keathmilligan.net/node/138

Attendo vostri suggerimenti!