Stai sfogliando l'archivio delle categorie per la categoria ‘Linux’ .

Ho appena comprato un Acer One per mia sorella e prima di lasciargli su il solito W… e domani farmi richiamare per sapere come fare a togliere quella centinaia di virus, mi sono chiesto perchè non convertirla al mondo linux. E’ da tempo che mi dice che vuole farlo ma non c’è mai stata l’occasione. Ora googlando un po le opzioni erano tante ma mi sono fermato su MeeGo, il team di sviluppo di MeeGo ha annunciato la disponibilità della prima release stable da qualche giorno. Si tratta dell’unione di Moblin, di Intel, con Maemo, di Nokia, due noti sistemi operativi mobili open source basati entrambi sul kernel Linux. Dalla fusione di questi due progetti nasce MeeGo, una piattaforma indirizzata ad un’ampia varietà di dispositivi mobili ed embedded, inclusi smartphone, MID, tablet, netbook, televisori e sistemi di infotainment per auto.  MeeGo v1.0 si può scaricare in due versioni, una con browser Chrome ed una con Chromium; la differenza è che, nel primo caso, si deve accettare la EULA Google.
Quel che adesso viene chiamato MeeGo Netbook User Experience è il sistema operativo nato dalla collaborazione di questi due grandi sistemi, che hanno unito i loro progetti in un’unica soluzione. La prima release definitiva riprende e migliora alcune delle caratteristiche e gran parte dell’interfaccia grafica di Moblin Linux. E’ un sistema operativo nato per macchine costantemente connesse alla rete, un po’ come sarà il prossimo Google Chrome OS.
La prossima release, v1.1, è prevista per ottobre con supporto agli schermi touchscreen utile sugli smartphone e i tablet. Da sottolineare il fatto che non è stato ancora ufficializzato il porting su sistemi basati su processori ARM.
Rilasciate anche le API pubbliche che includono le librerie Qt 4.6 (tutte le novità sono qui) che non ho ancora provato, ma che sicuramente vedrò nei prossimi giorni. Le applicazioni che girano su MeeGo sono sviluppate per mezzo del ben noto application development framework Qt, software ereditato da Nokia nel 2008 in seguito all’acquisizione di Trolltech. Qt è uno dei più maturi toolkit di sviluppo open source, ed è stato scelto sia per la sua già grande diffusione – Nokia parla di oltre 5000 utenti aziendali – sia per il supporto multipiattaforma, che consente agli sviluppatori di far girare lo stesso codice su più architetture e OS, inclusi Symbian e Win… Mobile.
Allora da dove iniziamo, l’interfaccia è veramente semplice e il sistema nel complesso è velocissimo, sono pero ancora poco convinto su questa interfaccia organizzata per tab disposte nella parte superiore dello schermo. Queste tab sono: Myzone, Zones, Applications, Status, People, Internet, Media, Devices, Bluetooth, Network, e Time e possono essere gestite nelle impostazioni inserendone altre due disabilitate di default.

MyZone

Myzone è la tab che rappresenta più o meno la home page di MeeGo. Mosta in maniera molto ordinata e graficamente gradevole gli appuntamenti, le cose da fare, i messaggi, gli ultimi aggiornamenti e le applicazioni lanciate. Nessuna delle altre piattaforme che ho visto sino ad ora hanno una cosa simile fatta così bene anche se poi alla fine non utilizzate tutte queste cose la schermata non e così bella come dovrebbe essere.

Zones

All’inizio sono rimasto un po confuso da questo nome e sinceramente ci ho messo un po per capire che diavolo fossero ste zone ma dopo ho capito che non è altro che una task bar, system tray o come la volete chiamare che mostra le applicazioni avviate. Se non ci sono applicazioni avviate allora si vedrà solo la descrizione dell’area altrimenti si vedranno delle anteprime come nella figura qui sotto.

Applications

Questa tab si spiega da sola, ma se proprio voletefare finta di non capire sappiate che qui trovate le applicazioni installate sulla machina. Ci sono 2 sezioni sotto questa tab una per le applicazioni preferite (Favorite) ed una per le vostre applicazioni (Your applications). Le applicazioni preferite sono quelle che voi avete spuntato nella parte delle vostre applicazioni cliccando sull’iconcina che trovate su ogni icona. Meego eredita questo comportamento da KDE Plasma Netbook e dal KDE Kickstart Menu. Solo che qui funziona meglio.

Status

Questa tab ti permette di configurare i vostri account per Twitter e Last.fm. Se usate Twitter potete postare e leggere gli aggiornamenti da questa schermata come nella tab MyZone. Per Last.fm invece potete vedere che musica stanno ascoltando i vostri contatti. Impostare gli account è semplicissimo non capisco perché la scelta di questi soli 2 social network. Probailmente questo è quello che avevano pronto ma c’e da spettarsi in una prossima release che il numero dei social network supportati aumenti.

People

In questa tab vengono mostrati tutti i vostri contatti per gli account di Google Talk, Jabber, MSN, Yahoo!, AIM, ICQ e altri sempre se li avete impostati. Empathy, questo il nome dell’IM utilizzato è un software molto stabile ed in continuo sviluppo, ricco di tool e plugin che scoprirete via via che lo utilizzate. Se avete avuto altre esperienze con qualche altra distro  desktop probabilmente ne conoscerete già le peculiarità.

Internet

Questa è la tab dedicata ad internet, come avrete dedotto dal nome, in poche parole qui trovate tutte le ultime pagine che avete visitato, i vostri preferiti o le pagine aperte nel nostro browser ordinate cronoligicamente e rappresentate da piccole anteprime che potete cliccare per riaprire. Trovate inoltre un campo per la ricerca in Google che aprira i risultati nel vostro browser.

Media

Non si riferisce a chiavine USB, dischi o smart media cards reader, ma semplicemente al multimedia. Utilizza Banshee come player, e che conoscerete se avete avuto a che fare con qualche altra distro, comunque molto simile ad Amarok per intenderci. Nulla da dire su Banshee se non che è scritto in Mono, che personalmente non amo, e che non posso farci girare i miei script per Amarok in python. per capire ome funziona vi basta cliccare un po qua e la ma se proprio volete iniziare immediatamente allora sappiate che funziona come tutti gli altri player cercate la fonte e cliccate su play, iniziera a suonare ;-)

Devices

Qui trovate le informazioni di servizio del vostro netbook, che di solito siete abituati a vedere nella task-bar, sul livello della batteria, lo spazio libero ed utilizzato su disco, i controlli volume dell’audio, le cartelle del vostro sistema e tutte le periferiche di archiviazione che ci avete attaccato (chiavette USB, hard disk esterni o lettori MP3).

Bluetooth

L’Acer su cui ho provato MeeGo purtroppo non ha il Bluetooth, ma da quanto posso capire, spero di non sbagliarmi, direi che nella finestra di sinistra trovate le periferiche nei dintorni rilevate e nella finestra di destra trovate le impostazioni disponibili una volta selezionata la periferica che volete usare/accoppiare.

Network

In questa tab trovate tutte le connessioni attive e non o quelle impostate che potete attivare si puo passare velocemente in modalità off-line chiudendo tutte le connessioni attive. Ho provato solo la connessione via cavo e wuella wireless e funzionano decentemente, anche se riesce difficile se non impostare connessioni wireless con reti nascoste. Per il collegamento con Broadband ho solo impostato la connessione e sembra avere gia tutti i parametri per l’Italia.

Time

Quest’ultima tab racchiude tutto ciò che e legato alle date e gli orari quindi gli appuntamenti, i task e i fusi orari (non tutti abbiamo gli zii in australia). Come vedete dall’immagine l’organizzazione e semplice ed efficace senza troppi fronzoli grafici o bottoni da cliccare per vedere le ultime o le prossime cose. Per quanto riguarda gli appuntamenti potete usare il vostro calendario, ma e supportato anche Google Calendar quindi potete condividere facilmente il vostro calendario. per quanto riguarda i Task viene utilizzato qualcosa di veramente semplice e non c’è il supporto a servizi come Google Task o Remember the Milk.

Concludo con il dire che sicuramente merita di essere provato, quindi cosa aspettate? Se volete provare MeeGo sul vostro netbook, sappiate che sono supportati al momento tutti i modelli basati su Atom, ma in particolare:

  • Asus EeePC 901, 1000H, 1005HA, 1008HA, EeePC 1005PE, Eeetop ET1602
  • Dell mini10v, Inspiron Mini 1012
  • Acer Aspire One D250, AO532-21S, Revo GN40, Aspire 5740-6025
  • Lenovo S10
  • MSI U130, AE1900
  • HP mini 210-1044
  • Toshiba NB302

La iso è scaricabile da qui (800 Mb).

– Fine –
Postato con Kblogo

Logo-TornadoDa qualche giorno mi è venuta in mente qualche idea e per questo ho dato un po un’occhiata a qualche strumento che mi poteva aiutare nello sviluppo. lo avevo già provicchiato, ma in questo weekend l’ho testato un pochettino di piu e credo sia la soluzione ad alcuni dei miei problemi. Vi starete chiedendo di cosa parlo, non se avete letto il titolo del post, ma se utilizzate  FriendFeed allora avete già testato le alcune delle potenzialità di  Tornado, un web server open source scritto in Python. Tornado realizzato dagli sviluppatori di Facebook, il noto social network per chi non lo sapesse, e messo a disposizioni di tutti distribuendo i sorgenti da settembre 2009 sotto Apache Licence Versione 2.0.
Ma cosa è Tornado e cosa fa? Come ho detto prima è un web server scalabile, non-bloccante, snello ad alte prestazioni che lo rendono particolarmente utile per i servizi web in real time. Il core, composto da un codice molto snello, quasi minimale direi, va a tutto vantaggio della velocità d’esecuzione e di una certa libertà concessa al programmatore. Non so se questa snellezza è dovuta all’”immaturità” del progetto, idea rafforzata dall’approccio piuttosto essenziale nella gestione del logging e della sicurezza, oppure se c’è stata una scelta ponderata nello scrivere il codice non tenendo conto di queste caratteristiche.
Esistono altri framework web che adempiono agli stessi scopi e molto più noti e popolari come DjangoTwisted, quest’ultimo, certamente più complesso e anche più sofisticato nei meccanismi interni visto anche il supporto a molti più protocolli. Tornado invece si come approccio e semplicità si avvicina molto più a web.py o all’AppEngine di Google, ma con ottimizzazione sul non-blocking e su alcuni strumenti.
Tornado può essere scaricato all’indirizzo tornado-0.2.tar.gz ed io l’ho provato su Snow Leopard su Linux, richiede PycURL e le librerie JSON.
Ma vediamo un po come si installa e qualche linea di codice per metterlo in moto, il resto è demandata alla vostra fantasia.
Scaricate lo zip dal link precedente e aprite una finestra di terminale e digitate:

Mac OS X 10.5/10.6


sudo easy_install setuptools pycurl==7.16.2.1 simplejson

Ubuntu Linux


sudo apt-get install python-dev python-pycurl python-simplejson

e poi decomprimete Tornado, posizionatevi nella cartella e procedete con l’installazione:


tar xvzf tornado-0.2.tar.gz
cd tornado-0.2
python setup.py build
sudo python setup.py install

Ora non ci resta che aprire il nostro editor di fiducia e creare il nostro primo web server:


import tornado.httpserver
import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Ciao, giasone")
        
class MyHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("My custom request")

application = tornado.web.Application([
    (r"/", MainHandler),
    (r"/myrequest", MyHandler),
])

if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start() 

ora non vi resta che salvare, poi aprite il terminale e chiamare il vostro script python nomefile.py e visitate l’indirizzo http://localhost:8888/ o http://localhost:8888/myrequest dovreste vedere nel vostro browser le 2 stringhe. Non so se questo vi puo bastare, ma come potrete ben capire le potenzialità sono tante se poi consideriamo che l’integrazione con i più diffusi database come SQLite e MySQL è semplice allora vi si aprira un mondo.
Non vi resta che mettervi a lavoro quindi per il momento è tutto, se avete dubbi commentate o contattatemi.

– Fine –
Postato con Kblogo

Da qualche mese ormai lavoro su HTMLExport uno dei Kipi-plugins usato anche da Digikam, KPhotoAlbum, Showimg e GwenView. Le prime due migliorie che ho implementato le ho prese dal file TODO del plaguin e da alcune richieste che venivano a gran voce richieste sul Bugzilla di KDE.
La prima feature implementata è stata quella di vedere una preview del template insieme alla descrizione durante la selezione del tema come si può vedere nello screenshot seguente:

La seconda feature è la possibilità di estrarre i metadata (EXIF/XMP) dalle immagini durante la creazione degli album, al momento il meccanismo di templating per creare le pagine utilizza XSLT rendendolo così uno strumento veramente potente e flessibile, ma nell’ultima versione le informazioni incluse nel file gallery.xml erano veramente poche. Ora si può accedere a molte più informazioni, guardate il file THEME_HOWTO nella cartella di HTMLExport per una lista dettagliata. Per rendere possibile la visualizzazione di questi metadati ho creato un semplice template che permette di testare questa feature, un esempio lo potete vedere nel prossimo screenshot:

Vi prego di scaricare l’ultima versione dal repo SVN ufficiale e di inviare qualsiasi bug a bugs.kde.org.

English version

– Fine –
Postato con Kblogo

I'm going to FOSDEMQuesto post solo per dirvi che questo week-end sarò a Bruxelles al FOSDEM (www.fosdem.org) dve spero di fare buone conoscenze. Se vi trovate li mandatemi una mail magari si puo seguire qualche talk insieme.

A presto

Sis chipQuesta sera avevo intenzione di lavorare un po sui bug di kipi-plugins, in particolare HTMLExport, ma quando ho visto che sul mio piccolo portatile per lo sviluppo (HASEE Q540S), che non usavo da un po, c’era un po da aggiornare tutto allora ho deciso di installare una KUbuntu 9.10 nuova di zecca, ovviamente ho abilitato tutti i repo ma non ho ancora avuto problemi. Nell’installare il tutto pero solo una cosa e andata storta, il video. Senza tirarla per le lunghe la risoluzione massima disponibile era 800×600, quindi potete immaginare cosa significa, icone grandissime e spazio nelle finestre ristretto. Quindi ho pensato che Google avesse tutte le risposte e che in pochi minuti avrei sistemato tutto, ma non è stato così. Dopo aver letto una marea di post sui vari forum ho trovato la soluzione sul forum francese di Ubuntu. Cosa bisogna fare? Come prima cosa bisogna scaricare i nostri driver che troviamo qui, il file si chiama xorg-driver-sisimedia_0.9-1_i386.deb e installarlo con il comando:

# sudo dpkg -i </em><em>xorg-driver-sisimedia_0.9-1_i386.deb

appena installati i driver vi basterà riavviare e tutto dovrebbe funzionare, se non funziona allora avete qualche impostazione particolare nel vostro xorg.conf quindi fatevi un backup di quello attuale e ripristinate quello originale:

# sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.2010.1.17

# sudo cp /etc/X11/xorg.conf.orig /etc/X11/xorg.conf

Per sapere quali risoluzioni sono supportate vi basterà dare un xrandr nella console e vi verrà mostrato quali risoluzioni sono disponibili nel vostro sistema. Per il momento io ho ottenuto una risoluzione di 1280×800 quindi è tutto, fatemi sapere se avete problemi.

AGGIORNAMENTO:

Se avete aggiornato alla 10.04 allora siete in vero pasticcio e state leggendo questo post non sul vostro computer anche io ho perso un po di tempo ma volendo risolvere temporaneamente, almeno nel mio caso, modificate il vostro /etc/X11/xorg.conf, fatevi un backup del file prima di modificarlo e inserite quanto sotto:

<pre>Section "Device"
Identifier      "Configured Video Device"
Boardname       "sis"
Busid           "PCI:1:0:0"
Driver          "vesa"
Screen  0
EndSection

Section "Monitor"
Identifier      "Configured Monitor"
Vendorname      "Generic CRT Display"
Modelname       "Monitor 1366x768"
Horizsync       31.5-107.0
Vertrefresh     50-80
Modeline "800x500_60.00"  31.33  800 824 904 1008  500 501 504 518  -HSync +Vsync
Modeline "800x500_75.00"  40.17  800 832 912 1024  500 501 504 523  -HSync +Vsync
Modeline "800x600_60.00"  38.22  800 832 912 1024  600 601 604 622  -HSync +Vsync
Modeline "800x600_75.00"  48.91  800 840 920 1040  600 601 604 627  -HSync +Vsync
Modeline "1024x768_60.00"  64.11  1024 1080 1184 1344  768 769 772 795  -HSync +Vsync
Modeline "1024x768_75.00"  81.80  1024 1080 1192 1360  768 769 772 802  -HSync +Vsync
Modeline "1280x768_60.00"  80.14  1280 1344 1480 1680  768 769 772 795  -HSync +Vsync
Modeline "1280x768_75.00"  102.98  1280 1360 1496 1712  768 769 772 802  -HSync +Vsync
Modeline "1360x768_60.00"  83.46  1360 1344 1480 1680  768 769 772 795  -HSync +Vsync
Modeline "1360x768_75.00"  107.21  1360 1360 1496 1712  768 769 772 802  -HSync +Vsync
Modeline "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync
Modeline "1368x768_75.00"  109.50  1368 1448 1592 1816  768 771 781 805 -hsync +vsync
EndSection

Section "Screen"
Identifier      "Default Screen"
Device          "Configured Video Device"
Monitor         "Configured Monitor"
Defaultdepth    24
SubSection "Display"
Depth   24
Modes   "1368x768_60" "1368x768_75" "1360x768@50"  "1360x768@60"  "1280x768@60"  "1280x768@75" "1024x768@60"  "1024x768@75"  "800x600@60"   "800x600@75"                "800x500@60"    "800x500@75"
EndSubSection
EndSection

Salvate e riavviate tutto si dovrebbe sistemare, volendo potrete lavorare di fino e togliere le risoluzioni che non supporta il vostro monitor, ma se non sono supportate verranno automaticamente tralasciate.

– Fine –
Postato con Kblogo

SSH FishIn questa breve guida vi illustrerò brevemente come generare delle chiavi SSH per utilizzarle sui vari servizi on-line oppure sui vostri server nel caso vogliate aumentare il grado di sicurezza nella comunicazione.
Generare una chiave SSH su GNU/Linux, MAC OSX o altri *nix based è un processo semplice se si seguono attentamente questi piccoli passi:

1. Apriamo il nostro terminale, ad esempio Konsole se si sta utilizzando GNU/Linux con KDE oppure Terminal.app che trovate in /Applicazioni/Utilità se si sta utilizzando OSX.

2. Verifichiamo che nella nostra home non ci sia di già un portachiavi, se così fosse allora non avete bisogno di leggere questa guida. Se invece nella vostra home, sotto ~/.ssh non c’è nulla o trovate solo un file chiamato known_hosts allora possiamo continuare a leggere.

3. Procediamo con la generazione di un nuovo portachiavi, optiamo per un algoritmo RSA

$ ssh-keygen -t rsa -C "youremail@gmalo.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/youruser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/youruser/.ssh/id_rsa.
Your public key has been saved in /Users/youruser/.ssh/id_rsa.pub.
The key fingerprint is:
31:af:34:33:cf:dd:a4:82:10:7b:f0:86:e9:40:b2:db youremail@gmalo.com
The key's randomart image is:
+--[ RSA 2048]----+
|     .+   +      |
|       = o O .   |
|        = * *    |
|       o = +     |
|      o S .      |
|     o o =       |
|      o . E      |
|                 |
|                 |
+-----------------+

Alla prima richiesta, riga 3, potete premere invio o specificare un nome e un posto diverso da quello di default che vi viene proposto. Vi verrà poi chiesta una password e la sua conferma, riga 4 e 5, attenzione a scegliere qualcosa di sicuro e complesso, ma non troppo visto che poi dovrete digitarla tutte le volte che usate questo portachiavi. Ovviamente i path sono differenti e variano in base ai sitemi operativi, in questo esempio siamo su un OSX.

4. Ora non vi resta che utilizzare la vostra chiave che trovate nel file ~/.ssh/id_rsa.pub, potete prenderla e copiarla dove vi serve. Nelle oprazioni di copia ed incolla state attenti a non aggiungere spazi o caratteri di nuova riga altrimenti la vostra chiave non sarà valida. Potete usare un strumento come pbcopy (OSX) e xclip (GNU/Linux) per copiare la chiave da terminale.

Come al solito se qualcuno avesse voglia di dire la sua puo usare i commenti, e trattandosi di temi molto delicati questo “articolo” non è e non vuole essere un guida completa pertanto le vostre ricerche non finiscono qui.

– Fine –
Postato con Kblogo

Scrivo questo breve post spinto dalla voglia di provare ciò che ho appena scoperto sul blog di WordPress e cioè come formattare meglio il codice postato, speriamo che funzioni. Tornando al post, come da titolo, sicuramente vi sarà capitato di lanciare dai vostri script qualcosa sulla linea di comando, e chissà quante volte avreste voluto raccogliere l’output, bhe il codice riportato fa esattamente questo:

import popen2
(stdout, stdin, stderr) = popen2.popen3("ls -la")
lines = stdout.readlines()
for line in lines:
    print line

ovviamente dovete installare il plugin, maggiori info sui linguaggi supportati o iparametri opzionali da passare li trovate qui.

Durante questo fine settimana mi sono un po concentrato sull’utilizzo di python per gestire uno dei database piu famosi al mondo, MySql. Avevo già scritto qualche cosa ma ho voluto creare una interfaccia visuale al semplice e potente client da riga di comando. Il programmino è scritto in python e QT come librerie grafiche, il perché non lo so, forse la settimana prossima faro un porting su GTK. Per il momento il programmino non fa altro che eseguire delle query e fornire i risultati. Ma vediamo velocemente come creare un piccolo script per eseguire delle query su un db Mysql. Per prima cosa abbiamo bisogno del modulo che permette a python di interagire con Mysql, il suo nome è python-MySqldb per installarlo su sistemi Debian based basta digitare, da amministratore:

# apt-get install python-MySqldb

a questo punto abbiamo tutto il necessario per iniziare . Per prima cosa apriamo il nostro nuovo file .py nel nostro editor preferito ed iniziamo con l’importare il modulo:

import MySQLdb

a questo punto non ci resta che creare una connessione con il DB:

 conn = MySQLdb.connect (host = "localhost",
                           user = "testuser",
                           passwd = "testpass",
                           db = "test")

ora abbiamo un oggetto connessione che punta ad un database all’indirizzo “localhost” con utente “testuser” e password “testpassword” ed abbiamo chiesto di utilizzare il database “test”. Una volta ottenuta la connessione abbiamo bisogno di qualcosa che ci indichi sempre come e dove comunicare con il DB quindi creiamo un oggetto cursore:

cursor = conn.cursor()

Fatto questo ora possiamo iniziare ad interrogare il nostro DB lanciando delle query semplicemente lanciandole attraverso il metodo appropriato:

cursor.execute ("SELECT * FROM testtable")

dove estraiamo tutto il contenuto della tabella “testtable” all’interno del DB “test” per vedere il risultato della query abbiamo bisogno di prendercelo:

   row = cursor.fetchone ()
   print row

Quindi avremo stamapato a schermo il risultato dell’interrogazione. Gli statement sopra non sono ilmassimo dato che potremmo avere piu righe e piu colonne per ogni riga quindi sarebbe meglio ciclare, magari con un for, sul risultato e poi utilizzarlo come meglio crediamo.
Possiamo fare tutte le interrogazioni che vogliamo l’importante è lanciarle con il metodo “execute” l’importante è che al termine di tutte le nostre operazioni chiudiamo la connessione con il DB eseguendo un:

   cursor.close()
   conn.close()

Sinceramente la chiusura del cursore al momento mi da errore ma non so non ho letto per bene la documentazione, quindi assicuratevi di chiudere almeno la connessione con il db. Questo e tutto non vi resta che mettervi e provare, per maggiori info potete visitare il sito del modulo su SourceForge.
Se invece volete usare il mio programmino, chiamato QSql potete scaricarlo dal link qui sotto. Ogni commento o critica è benvenuta, per qualsiasi chiarimento non vi resta che chiedere.

QSql v1.0 QSql v 1.0

– Fine –
Post scritto con KBlogo

Dato che ogni tanto mi metto a provare qualche idea che mi viene i mente oggi mi sono messo a giocherellare un po con il mod_python [1], ma sul mio server non era configurato quindi, se a qualcuno puo servire, metto qui i semplici passi per configurarlo.
Per prima cosa bisogna installarlo, io uso una Debian quindi un semplice:

sudo apt-get install libapache2-mod-python

Non ci rsta che configurare Apache per interpretare i nostri file Python. Esistono 2 modi per farlo, fargli interpretare file python puri, .py per intenderci, oppure file Python Server Pages , .psp, che permettono di integrare codice python direttamente nell’HTML. Io ho scelto la seconda, non conosco i vantaggi e solo perche ricordavo di aver fatto questa in precedenza e quindi l’ho usata.
passiamo quindi alla configurazione di apache quindi apriamo il file di configurazione di default dei virtual host di Apache, la posizione varia in base alla distribuzione e dipende se avete altre configurazioni di virtual host, richiamando il file in questo modo:

vi /etc/apache2/sites-available/default

e aggiungo le linee che mancano alla vostra configurazione:

[...]

                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
		## Queste linee abilitano l'interpretazione dei file .py
                AddHandler mod_python .py
                PythonHandler mod_python.publisher
                PythonDebug On
		## fine

[...]

fatto questo salviamo e riavviamo il server Apache:

sudo /etc/init.d/apache2 restart

Ora bisogna testare se il tutto funziona, sempre che fino ad ora tutto sia andato liscio, lo facciamo creando due file, un semplice form in HTML, lo chiameremo test.html:

<html>
<head><title> Mod_python test form</title></head>
<body>
<form action=”form.py/processa” method=”POST”>
Inserisci il tuo nome:<br />
<input type=”text” name=”name”><br />
<input type=”submit”><br />
</form>
</body>
</html>

e un file python che processi i dati del form, lo chiameremo form.py:

def processa(req, name):
    if not name:
        return "Who are you?"
    else:
        return "Ciao %s!" % name

salviamo questi file nella directori radice di Apache, nel mio caso /var/www ed apriamo il nostro browser all’indirizzo, sempre nel mio caso, http://localhost/test.html apparirà un form molto semplice inserite il vostro nome o quello che vi pare e cliccate sul bottone. il risultato sara qualcosa tipo Ciao quellocheavetenserito. Se fino ad ora tutto non ha restituito errori ed ha funzionato allora potete iniziare a divertirvi a scriptare quanto volete, ma se invece qualcosa non funziona allora vi verrà segnalato.
Mod_python utilizza un oggetto request che possiamo utilizzare per processare i nostri dati alcune funzioni utili allo scopo possono essere req.write() e req.read() per scrivere e leggere sull’oggetto o si possono sollevare eccezzioni con apache.SERVER_ERROR. Questo dovrebbe essere tutto se avete problemi chiedete cerchero di rispondervi e chiarire i vostri dubbi.

[1] www.modpython.org

– Fine –
Post scritto con KBlogo

Java e LinuxIeri mi e capitato di dover compilare un file Java sulla mia Linux Box e quando sono andato lì per farlo da riga di comando mi diceva di non trovare il file allora mi sono messo a girellare e veramente non avevo nulla. Ma come? Se fino all’altro ieri usavo Eclipse come mai oggi non funziona. Allora ho scoperto che installando Eclipse con apt-get si tira giù si il JDK, ma li mette chissà dove e chissà in quale modo, infatti cercando nella macchina si trova qualche classe nelle cartelle di Eclipse che ricorda i file nel /bin che si usano per complire, debuggare o documentare.
Poche chiacchiere mi sono scaricato il file del JDK, che trovate a questo indirizzo, e l’ho installato richiamando il file da linea di comando:

$ chmod +x jdk-6u11-linux-i586.bin
$ ./jdk-6u11-linux-i586.bin

Otteniamo un lungo output, in pratica e la licenza con cui viene distribuita la piattaforma:

This is where you agree to their license. Press the space bar to scroll down in “More”.

alla fine della licenza ci sarà una domanda a cui noi risponderemo di si, è qui che daremo conferma per l’installazione

Do you agree the the above license terms? [yes or no]
yes

A questo punto ancora un lungo output scorrerà sul nostro schermo, la procedura di installazione durerà un po, dipende tutto dalla vostra macchina. Appena finito troverete i vostri file in /usr/share/java, se non sarà lì, ma sarà nella directory dove avete salvato il file non preoccupatevi, copiatelo senza problemi.
Fatto questo non resta che dire al vostro sistema dove trovare i file delle classi, i binari, ecc. di java, per farlo aprite il file .bash_profile nella vostra home directory ed inserite quanto segue:

PATH=/usr/java/jdk1.6.0_11/bin:$PATH:$HOME/bin:./
export PATH
export JAVA_HOME=/usr/java/jdk1.6.0_11export CLASSPATH=/usr/java/jdk1.6.0_11/lib/tools.jar:/usr/java/jdk1.6.0_11/jre/lib/rt.jar:./

appena fatto salvate e chiudete il file, ora non ci resta che testare il tutto. Per farlo ciserviamo del classico programma che si impara quando si inizia ad apprendere e studiare un nuovo linguaggio, Hello World, io ovviamente lo modifico sempre mettendo Hello Giasone, ma voi fate un po come volete. Quindi aprite un editor di testi e incollate il questo codice:

public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello Giasone");
}
}

salvate il file con il nome Hello.java e provate ad eseguirlo. In Java i file sorgenti vanno prima “compilati” per tradurli in bytecode eseguibile dalla VM, per far ciò dalla riga di comando:

$ javac Hello.java

Vedremo che nella cartella apparirà il file Hello.class, questo è il file eseguibile proviamo quindi ad eseguirlo:

$ java Hello
Ciao Giasone

Ecco allora che tutto funziona!!! Qindi non vi resta che iniziare a giocherellare con il vostro codice. Per grandi progetti vi consiglio di utilizzare ambienti IDE più complessi che vi offrono molte facility in più ed utilizzare questo metodo solo per piccoli file o progetti semplici. Non mi resta che augurarvi un buon lavoro e Enjoy your Java Console.

P.S. Tutto questo e stato testato su una Debian e con il JDK 6 di java ma dovrebbe valere anche per le altre distro, per quelle distibuzioni che supportano i pacchetti rpm esiste anche una versione del JDK con estensione rpm che non ho però provato.

– Fine –
Post scritto con KBlogo

my-team-uses-the-pomodoro

Giasone on Twitter

Flickr Photos

screenshot2

screenshot1

tribute to marines

13-logo-design

14-logo-design

17-logo-design

More Photos
Iscriviti

Get every new post delivered to your Inbox.