You are currently browsing the category archive for the ‘Linux’ category.

Vi sarà capitato di voler eseguire uno script Python, ma anche di altro tipo, all’avvio della vostra Raspberry Pi quindi scrivo questo breve how-to in modo da tenerne traccia. Possiamo farlo in diversi modi, ma quello che mi viene più facile da usare e da controllare è utilizzando i job di Cron, il nostro job scheduler personale che troviamo pratiucamente su ogni tipo di installazione *nix based.

Step 1 – Creare lo script

Prima di tutto abbiamo bisogno del nostro script, lo possiamo creare da linea di comando o con il nostro editor preferito, l’importante è sapere esattamente come si chiama e dove si trova sul nostro disco, nel mio caso lo script è scriptEsempio.py e lo salverò nella cartella “/home/pi/script/”, ma sentitevi liberi di chiamare la cartella e lo script come vi pare.

Prima di continuare vi consiglio di verificare che lo script funzioni correttamente, quindi eseguitelo, debuggatelo e che il path scelto sia corretto.

Step 2 – Aggiungere un nuovo job in Cron

Per aggiungere un nuovo job di Cron bisogna modificare il nostro crontab che contiene l’elenco completo dei job creati fino ad ora. Per editarlo aprite una finestra di Terminale ed eseguite:

sudo crontab -e

Ogni utente ha il suo crontab, ma nel nostro caso vogliamo editare quello di sistema quindi usiamo sudo, come mostrato di seguito:

terminal1

Attenzione il crontab si apre con il vostro editor di default quindi nel mio caso vi, se non vi piace potete cambiarlo con quello che usate di solito, in rete trovate sicuramente come fare.
Per spostarvi quindi usate le frecce sulla vostra tastiera e aggiungete la riga:

@reboot python /home/pi/script/scriptEsempio.py &

Come noterete questa stringa è diversa dal formato che usate di solito quando inserite un job, in questo caso diciamo al sistema che ad ogni boot del sistema vogliamo che venga lanciato il nostro script, in questo caso in python, prorprio come se lo stessimo lanciando noi da riga di comando. Il carattere & finale dice a Cron che lo script deve essere eseguito in background e che quindi non deve bloccare la sequenza di avvio.

Dovrebbe essere qualcosa di simile, l’ultima riga è quella che ci interessa il resto lasciate perdere è altra roba che gira:

terminal2

Salvate il tutto, usando i comandi specifici del vostro editor ed uscite. Ora dovreste essere ritornati al prompt dei comandi.

Step 3 – Testing

Per testare il tutto potete provare a riavviare il vostro sistema, quindi inserite:

sudo reboot

Quando ripartirà il vostro sistema dovrebbe lanciare lo script, dipende tutto da cosa fa, ma se il vostro script deve girare sempre e volete controllare se sta girando vi basta eseguire sempre in una finestra di terminale:

ps aux | grep /home/pi/script/scriptEsempio.py

Se il vostro script sta girando verrà fuori qualcosa del tipo:

root 1472 0.0 1.0 35019 4012 ? Sl 23:15 0:00 python /home/pi/script/scriptEsempio.py

Complimenti, ci siete riusciti!
Come al solito se avete i problemi i commenti sono qui per questo e se avete aggiunte e migliorie fatemi sapere.

intel-galileoE’ tanto che non scrivo sul blog ma ultimamente però sono riuscito ad organizzarmi e dare un po di spazio a quelle che sono le mie passioni. Qualche giorno fa ho ordinato da Mouser un po di schede tra cui una Intel Galileo, cosa è una Galileo? E’ vero che la lista dei modelli Arduino cresce “giornalmente” e che non riuscite a stargli dietro ma la Galileo è una delle migliori mai sfornate a mio parere. Con un processore Quark SoC X1000 – a 32-bit, x86 system-on-a-chip che gira a più di 400MHz con 512 kB di SRAM.

L’hanno presentata alla Maker Faire di Roma qualche mese fà dove ovviamente ero presente e dove puntualmente non ne ho vinto una, quindi l’ho comprata ;). Intel ha sviluppato questa board in collaborazione con Arduino, proprio per fornire un ambiente di sviluppo intuitivo e potente permettendo agli appassionati di sfruttare non solo la conoscenza acquisita in tutti questi anni, ma anche il popolare ambiente di sviluppo di Arduino, gli innumerevoli tutorial presenti sul web, le librerie e la possibilità di usare tutti, o quasi, gli shield sviluppati per Arduino.

Intel Galileo Front Side

Intel Galileo Front Side

Intel Galileo Back Side

Intel Galileo Back Side

L’altro aspetto positivo è che oltre ad Arduino, sulla Galileo, abbiamo a disposizione anche GNU/Linux a cui possiamo accedere dagli sketch, direttamente attraverso una seriale o la rete, usando quindi Python, SSH, Node.js, OpenCV e tutto quello che vi viene in mente.

A differenza dell’Arduino DUE sulla Galileo è presente un jumper per scegliere la tensione operativa della board, in modo da poter supportare, a scelta, entrambi gli standard a 3,3V o a 5V. Di seguito uno schema a blocchi:

IntelGalileoLogicSchematics

Intel in questa board mette tutta la potenza e l’efficienza delle sue CPU anche se il primo utilizzo e i passaggi da compiere non sono così semplici, per questo ho deciso di scrivere questa guida, che dite iniziamo?

Il primo passo è quello di scartare, aprire, osservare cosa c’è nella scatola e immaginare cosa potreste farci, ma per quello non penso vi serva una guida, mentre lo fate però iniziate a scaricare quello che vi serve. Sul sito di Intel trovate tutto il necessario, la prima cosa di cui abbiamo bisogno è l’IDE che sfortunatamente non è quello standard che usate di solito per i vostri esperimenti con Arduino , ma una versione specifica per la Galileo visto che l’architettura è differente e molte cose la separano dalle altre board. Tutto il software pesa meno di 100 MB ed è disponibile per GNU/Linux (32 o 64-bit), Mac OS X e Windows. Per installarlo dovete decomprimere il file appena scaricato e per:

  • GNU/Linux – dovreste eliminare modemmanager se lo avete installato e decomprimere il file nella vostra /home
  • MacOSX – copiare l’applicazione nella cartella dei programmi e rinominarla, senza spazi nel nome,  se volete farla coesistere con qualche altra versione di Arduino già installata sulla macchina
  • Windows – salvate tutto in C:\ o dove preferite, ma evitate percorsi lunghi e cartelle con spazi

Il passaggio successivo è quello di installare i driver, non ho provato quello per Windows, ma per gli altri sistemi sono semplici, sia Mac OS X che GNU/Linux.

ATTENZIONE!!! Prima di connettere qualsiasi cavo USB alla Galileo assicuratevi di averla connessa al suo alimentatore da 5V e non fatevi ingannare dalla forma non infilate alimentatori che eroghino tensioni diverse, 6-9-12 V, sennò rischiate di bruciare tutto.

  • GNU/Linux – dopo aver alimentato, aspettato e connesso il cavo USB aprite un terminale e digitate ls /dev/ttyACM dovrebbe apparirvi una porta, segnatevela vi servirà dopo.
  • Mac OS X – Connettete l’alimentatore aspettate che la scheda sia partita e poi inserite il cavo USB nella porta marcata come USB Client, la scheda dovrebbe essere riconosciuta, per sincerarvene guardate  nelle info di sistema sotto USB, troverete qualcosa tipo “Gadget Serial v2.x”, fatto!
  • Windows – come per le altre connettete dopo aver alimentato la scheda, connettete il cavo USB ma con grande sorpresa tenterà di installare i driver fallendo miseramente, quindi dovrete andare in Pannello di Controllo > Sistema > Gestione Hardware e sotto Altre Periferiche dovreste trovare “Gadget Serial v2.x”, cliccate con il tasto destro e poi Aggiorna Driver, nella schermata successiva cliccate su sfoglia fino alla cartella dove avete decompresso l’IDE, poi  hardware\arduino\x86\tools, e poi avanti, avanti e cosa vi chiede di solito quando installate un programa. Appuntatevi la porta COM che viene assegnata alla scheda.

info-galileo-mac

Ora che i driver sono installati, la prima cosa che proveremo a fare è aggiornare il firmware per mettere su il software più aggiornato possibile e verificare che tutto funzioni correttamente.

Riavviamo la bord quindi stacchiamo il cavo USB, poi l’alimentatore ed in fine la scheda SD, se ne avete messo dentro una a questo punto rimettiamo l’alimentatore e poi il cavo USB, apriamo l’IDE e poi come facciamo di solito per le altre board Arduino scegliamo la porta seriale a cui connetterci che ci eravamo appuntati prima in fase di installazione, e il tipo di scheda, ma qui la scelta è limitata visto che abbiamo solo poche opzioni.

arduino-galileo-board

Infine andiamo su Aiuto > Aggiorna Firmware, confermiamo e l’aggiornamento partirà. Mentre aspettate potete aprire i vostri cassettini e iniziare a tirare fuori breadboard, componenti e qualche filo.

intel-galileo-upgrade

Una volta finito apparirà un messaggio per dirci che l’aggiornamento è andato a buon fine.

intel-galileo-upgrade-finish

Ora possiamo finalmente partire con la parte piu divertente, testarla su strada con l’hello world delle schede il blink. Come per le altre board Arduino anche sulla Galileo il pin 13 è collegato ad un led quindi nell’IDE andate in File > Esempi > 01.Basics > Blink e apritelo poi fate l’Upload.

arduino-galileo-blink

Il led dovrebbe iniziare a lampeggiare ora potete attaccarci quello che vi pare, come se fosse una normale scheda arduino e se avete già qualche sketch pronto apritelo e caricatelo senza farvi grossi problemi. Sempre sul sito di Intel trovate qualche sketch specifico potete scaricarlo e usarlo.

intel-galileo-blink

Qui mi fermo visto che ancora non ho finito di provare tutto quello che volevo, ma il passaggio successivo sarà quello di arrivare al cuore della scheda e usare in maniera più ampia il sistema che sta sotto. Datemi qualche giorno, il tempo di saldarmi un adattatore seriale, e condividerò  i miei progressi. Se avete domande, suggerimenti o riscontrate qualche errore vi invito ad usare i commenti qui sotto o twitter per farmelo sapere.

Giasone

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

my-team-uses-the-pomodoro

Giasone on Twitter

Errore: Twitter non ha risposto. Aspetta qualche minuto e aggiorna la pagina.

Flickr Photos

#goodbye #puglia #thanks #15giugno #terra #ulivi #backtoreality #summer

#ostuni #puglia #salento #sole #oggicosì #apasseggioconilcati @andreacati

#berlinmauer #trabant #berlin #citysightseeing #liveyourlife

#abs #nofilter #naturallife #belly #grid #liveyourlife #berlin #commercial

#relaxing #berlin #nature #naturelovers #tree

#unlucky #ticketjagd at #olimpiastadion

Altre foto