ZIP Puliti con Mac OS-X

Comprimendo una cartella con il vostro PC Mac avrete notato che vengono inclusi anche dei file nascosti tipo 

.svn
.git
.DS_Store
Thumbs.db

Ecco come risolvere il problema in 2 minuti:

Aprite l'applicazione Automator

Alla richiesta del modello da creare selezionate Servizio e confermate con il tasto Scegli

In alto come ricezioni impostate "Documenti e Cartelle" in "Finder"

Dall'elenco sulla sinistra selezionate dalla categoria "Utility" l'azione "Esegui Apple Script" e trascinatela nell'area di destra

Troverete gia' scritto del codice di esempio :

on run {input, parameters}
    (* Your script goes here *)
    return input
end run

Cancellate tutto e incollate il codice seguente:

on run {input, parameters}
    tell application "Finder"
        set n to count of input
        set oggetto to (first item of input as string)
        set Dir to ((container of item oggetto) as string)
        set cartella to quoted form of POSIX path of Dir
        set nome to ""
        repeat with i in input
            set nome to (quoted form of ((name of i) as string) & " " & nome)
        end repeat
        if n = 1 then
            set nome_se to my nome_senza_estensione(oggetto)
        else
            set nome_se to "Archivio"
        end if
        if item (Dir & nome_se & ".zip") exists then
            set theDate to current date
            set theYear to year of theDate as text
            set theMonth to (month of theDate as integer) as text
            if length of theMonth < 2 then
                set theMonth to ("0" & theMonth)
            end if
            set theDay to (day of theDate) as text
            if length of theDay < 2 then
                set theDay to ("0" & theDay)
            end if
            set theTime to (characters 1 thru 2 of time string of theDate) & (characters 4 thru 5 of time string of theDate) & (characters 7 thru 8 of time string of theDate)
            set nome_se to (nome_se & "_" & theYear & theMonth & theDay & "-" & theTime)
        end if
        do shell script "cd " & cartella & "; zip -r --exclude=*.DS_Store* --exclude=*.svn* --exclude=*.git* --exclude=*Thumbs.db* " & quoted form of nome_se & " " & nome 
    end tell
    return input
    
end run

on nome_senza_estensione(an_item)
    tell application "Finder"
        set theName to (name of item an_item) as text
        set theExtension to (name extension of item an_item) as text
        if theExtension is not "" then
            set x to the offset of theExtension in theName
            set theName to text 1 thru (x - 2) of theName
        end if
        return theName
    end tell
end nome_senza_estensione

Ora salvare il tutto ed assegnare un nome appropriato al Servizio, es: "Crea Zip Pulito"

A questo punto "cliccando col tasto destro" su una cartella oppure su un insieme di file troverete la funzione "Crea Zip Pulito" che genererà un archivio di tipo .zip senza i classici file nascosti generati da OS-X 

Installazione Python e Plone 4 da sorgenti

Ecco un video di 5 minuti che mostra come installare in un sistema Unix-like Python e Plone 4 da file sorgenti:

[youtube]DtYwZOedlcI[/youtube]

I requisiti di sistema sono:

  • Strumenti per la compilazione (il pacchetto build-essential per Linux Debian o Ubuntu per esempio)
  • Subversion per il download da repository svn

La procedura da linea di comando:

Creo una cartella dove metto tutto il necessario (in questo modo non modifico minimamente le impostazione del sistema e posso fare tutto senza i permessi di root)

cd ~
mkdir plone
cd plone

Scarico Python e una libreria necessaria a Plone per la gestione delle immagini

wget http://www.python.org/ftp/python/2.7/Python-2.7.tgz
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz

Scompatto Python e PIL

tar xvzf Python-2.7.tgz
tar xvzf Imaging-1.1.7.tar.gz

Creo una cartella dove installare Python

mkdir -p ~/plone/python/2.7

Configuro Python per l’installazione nella cartella predisposta (specificare il percorso assoluto)

cd ~/plone/Python-2.7
./configure --prefix=/Users/fc/plone/python/2.7/

Compilo e installo Python

make
make install

Installo PIL

cd ~/plone/Imaging-1.1.7
~/plone/python/2.7/bin/python2.7 setup.py install
cd ~/plone/

Scarico il buildout di Plone 4 dal repository svn

svn co http://svn.plone.org/svn/plone/buildouts/plone-coredev/branches/4.0/ plone4

Installo Plone 4

cd plone4
~/plone/python/2.7/bin/python2.7 ./bootstrap.py

Modifico eventualmente il file buildout.cfg

vi ./buildout.cfg

Scarico tutti i pacchetti necessari

./bin/buildout

Avvio il server Zope per generare l’instanza Plone

./bin/instance.fg

Dal mio Browser visito la pagina: http://localhost:8080

Configurazione Alfa Network AWUS036H con chip RTL8187L su OS-X 10.6

L’installazione del potente adattatore USB wifi AWUS036H, su Mac Os-X 10.6 può presentare dei problemi. In particolare puo’ risultare che il driver /System/Library/Extensions/RTL8187l.kext non venga installato correttamente o con tutti i permessi giusti.

Ecco come sono riuscito a bypassare il problema:

Ho scaricato l’ultimo driver disponibile direttamente dal sito REALTEK.

Ho provato l’installazione ed ho riavviato il comuper come indicato dall’installazione

Lanciando l’apposito programma di gestione dalle Applicazioni Mac non funzionava allora ho spostato il driver nel mio desktop e installato tramite l’utility Kext Helper:

Ho scaricato Kext Helper ed ho lanciato l’utility

Dopo aver spostato il driver nel mio desktop da riga di comando e con permessi di amministratore:

sudo -s
mv /System/Library/Extensions/RTL8187l.kext /Users/fc/Desktop

ho trascinato il driver nel programma Kext Helper, impostata la password di amministratore e avviato l’installazione.

Riavviato il computer e il programma ha cominciato a funzionare ! 🙂

Schermata Utility Realtek WLANAllego nel caso servisse il mio RTL8187l.kext

Squid Proxy behind another Proxy

Dopo aver cercato parecchio ho trovato come poter configurare un Proxy Squid che potrà accedere a internet solo tramite un altro Proxy a cui non avete accesso.

In particolare la mia situazione e’ questa: terrò un corso presso un istituto che non vuole autenticare nel suo server proxy direttamente tutti i partecipanti al corso ma fornirà un unico accesso al docente. Ecco allora che ho pensato di gestire tramite un SME Server Virtuale nel mio MacBook Pro, una sottorete con un altro Server Squid che autentichi i partecipanti in una rete diversa e gestita appunto dal server virtuale.

L’installazione di Sme Server è come al solito banale, unico accorgimento nella macchina virtuale è stato associare una scheda di rete del server alla mia scheda wired ed una nuova scheda di rete virtuale alla mia interfaccia wifi entrambe in modalità bridged, utilizzerò poi questa interfaccia per fornire connettività ai partecipanti in modalià Access Point.

Una volta installato il Server SME (7.5), ho potuto da subito creare gli utenti e installare dansguardian per gestire in modo peculiare i permessi.

Il punto per me particolare e’ stato come istruire il mio virtual server SME, ad accedere ad internet tramite il proxy dell’istituto che ci ospita. Dove metto username e password che mi forniranno dopo avermi severamente interrogato, scannerizzato e identificato tramite carta d’identità passaporto ecc.. ?

Inizialemente pensavo di utilizzare delle variabili di sistema in questo modo come indicato qui:

#proxy.sh
 export http_proxy=http://username:password@ip_host:port/
 export ftp_proxy=http://username:password@ip_host:port/
 export no_proxy=.domain.com
 export HTTP_PROXY=http://username:password@ip_host:port/
 export FTP_PROXY=http://username:password@ip_host:port/

ma questo funziona solo da riga di comendo del mio server ma non per gli utenti dietro il mio proxy

Alla fine ho trovato che SME Server aveva giaà pensato a poter configurare squid per collegarsi ad un proxy padre (parent proxy). Ho dovuto solo aggoungere un parametro per specificare nome utente e password.

Ecco i passi da fare:

mkdir -p /etc/e-smith/templates-custom/etc/squid/squid.conf
cp /etc/e-smith/templates/etc/squid/squid.conf/10ParentCache /etc/e-smith/templates-custom/etc/squid/squid.conf/

modificare /etc/e-smith/templates-custom/etc/squid/squid.conf/10ParentCache in questo modo:

{
 $OUT = "";

 if (defined $SquidParent && $SquidParent)
 {
 $OUT .= "cache_peer $SquidParent parent ";
 $OUT .= $SquidParentPort || "3128";
 $OUT .= " 7 no-query default";
 $OUT .= " login=$SquidUser";
 }
}

da riga di comando digitare:

db configuration set SquidParent ip_proxy
db configuration set SquidParentPort porta_proxy
db configuration set SquidUser username:password

(SquidUser è una variabile non definita di default in SME, in alternativa si possono inserire questi valori direttamente nel file di configurazione)

Dove:

ip_proxy = ip o nome del server proxy dell’istituto ospitante

porta_proxy = porta del proxy dell’istituto ospitante

username:password = credenziali ottenute (con molta fatica 🙂 ) dall’Istituto

In seguito dare i comandi:

expand-template /etc/squid/squid.conf
signal-event proxy-update
signal-event post-upgrade; signal-event reboot

Aprire il Terminale da Finder in OS/X

Ecco una breve guida su come aprire il terminale da Finder di Mac OS/X nella posizione corrente:

Lanciare l’applicativo AppleScriptEditor (cmd+spazio e digitare applescript)

Copia e incolla nell’editor il seguente codice:

tell application "Finder" to set currentPath to insertion location as text
set posixPath to POSIX path of currentPath
tell application "Terminal"
	activate
	if not (exists front window) then do script ""
	do script "cd \"" & posixPath & "\"" in front window
end tell

Salvare lo script come “Applicazione” in una cartella a piacere (ad esempio ~/Apps)

Registra come Applicazione

Se lo desiderate, modificate l’cona dell’applicazione come spiegato qui

Sempre dalla cartella dove avete salvato l’applicazione trascinate l’applicazione nella parte alta della finestra e otterrete il comodo link:

Esempio di toolbar modificata

Se desiderate avere già l’applicazione pronta potete scaricarla da qui: OpenTerminal