You are currently browsing the category archive for the ‘Software’ 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

Android ErrorSi lo so è un bel po che non scrivo sul blog, ma per tutta una serie di motivi diciamo che non ho trovato il tempo. Visto che oggi stavo rimettendo le mani su qualche vecchio progetto ho aperto Eclipse e mi sono messo a giocherellare un po con Android. Ovviamente non va tutto sempre cosi come vogliamo noi ed alla prima compilazione mi è apparso un errore tipo questo:

Error generating final archive: Debug certificate expired on 04/08/2010

e dopo vari tentativi e una ricerchina in Google, avete visto che figata il nuovo Google Instant?, ho trovato la soluzione al mio problema quindi me la scrivo qui casomai dovessi averne bisogno in futuro. Per risolvere il problema basta semplicemente eliminare il nostro certificato di debug che troviamo sotto ~/.android/debug.keystore (su Linux e Mac OS X) oppure in %USERHOME%/.androidon sotto Windows. Fatto questo provate a riavviare Eclipse che ne creerà uno nuovo alla prossima compilazione. Questo errore si presenterà una volta l’anno ma per risolvere la cosa per un numero n di anni possiamo creare manualmente il nostro certificato dandogli una durata maggiore di 365 giorni, per farlo ci posizioniamo nella cartella che conteneva il vecchio file e lanciamo da riga di comando:

keytool -genkey -keypass android -keystore debug.keystore -alias androiddebugkey -storepass android -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

ecco ora il nostro certificato scadrà fra 10000 giorni, ottimo non vi pare? Nel caso in cui il vostro progetto continuasse a dare lo stesso errore date una ripulita ai file di progetto generati da Eclipse, andate in Project>Clean… selezionate il progetto e date OK, ci metterà un po in base a quanto è grande il vostro progetto e a quanto è lenta la vostra macchina. Una volta fatto provate a rilanciare la compilazione, e in teoria, non dovreste avere problemi. Se riscontrate ancora problemi fatemi sapere i commenti negli articoli esistono per questo. Io ho finito per il momento grazie per l’attenzione e a presto!!!

– Fine –
Postato con Kblogo

Questo brevissimo post solo per chiedervi, se siete interessati ovviamente, di iscrivervi a questa nuova comunity di sviluppatori e condividere i vostri progetti e partecipare a quelli altrui ovviamente. Se poi cliccate sul link sotto per registrarvi o condividete mi fate anche un favore, se vinco il contest faccio recapitare 3 libri a scelta da Amazon per ognuno di voi. ovviamente una volta registrati fatemelo sapere. Grazie

http://bettercodes.org/register/622f0dd2

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

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

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

CoccinellaL’XML-RPC è un ottimo strumento per stabilire una vasta gamma di connessioni tra i computer, per integrare ambienti e piattaforme diverse, ma senza condividere direttamente strutture di dati complesse, permette dunque di condividere tali connessioni in modo semplice e veloce. Questa tecnologia permette a Python, in questo caso, di parlare con Perl, con Java, con PHP e cosi via. L’XML-RPC da l’opportunità di usare un “vocabolario standard” per lo scambio di informazioni, creando interfacce di programmazione aperte grazie all’utilizzo e alla combinazione ti tecnologie consolidate come l’architettura RPC (Remote Procedure Call) e le tecnologie XML e HTTP permettendo agli utenti accesso diretto alle informazioni richieste per l’elaborazione. Dopo questa breve introduzione passiamo all’attività pratica rimandandovi alla rete per informazioni piu dettagliate sul protocollo (wikipedia, RFC, ecc). Questo fine settimana mi sono messo un po a testare la libreria pySuseStudio che ho creato per vedere di migliorare l’implementazione e volevo avere un ambiente di testing personalizzato senza usare direttamente quello di Suse Studio cosi mi sono creato qualche script ad hoc per il test della libreria. Per creare un server XML-RPC in python è molto semplice visto che dalla versione 2.2 abbiamo il modulo SimpleXMLRPCServer nella libreria standard e come dice il nome stesso serve all’implementazione di un semplice server. Il modulo fornisce una classe con lo stesso nome, SimpleXMLRPCServer, che istanziata con un indirizzo ed una porta crea il nostro server. Un esempio di codice potrebbe essere questo:

from SimpleXMLRPCServer import *

class My_Web_Service:
    def __init__(self):
        pass

    # not callable through XML RPC because starts with '_'
    def _private(self):
        pass
    
    def tellme(self, msg):
        return "You wrote: "+msg

if __name__ == "__main__":
    server = SimpleXMLRPCServer(("localhost", 8080))
    server.register_instance(My_Web_Service())
    print "Starting ..."
    server.serve_forever()

In poche parole istanziamo un oggetto server, registriamo una istanza della nostra classe My_Web_Service e serviamo la nostra funzione tellme().
Ma come si usa questa roba, nel mio caso uso la mia libreria ma nel vostro potreste aver bisogno di un client, se avete letto la documentazione che vi ho consigliato di cercare prima allora saprete che un client non fa altro che chiamare la funzione che mettiamo a disposizione con il nostro server. Per farlo un semplice client potrebbe essere quello che segue:

import xmlrpclib
server = xmlrpclib.Server('http://localhost:8080')
msg = "Ich bin Giasone"
print server.tellme(msg)

Entschuldigung per il mio tedesco, ma se avviamo prima il server e poi il client potremo vedere in azione un sistema XML-RPC funzionante, si spera. Cosa è successo? XML-RPC utilizza come trasporto l’XML trasferito via HTTP, Con questo metodo, il client può chiamare metodi con parametri su server remoti (nel nostro caso localhost) e gli vengono restituiti dei dati strutturati. Visto che gli oggetti XML vengono inviati e gestiti attraverso richieste POST abbiamo una funzione apposita, do_POST(), che fa al caso nostro. Non è implementato però un handler per le richieste di tipo GET, possiamo ovviare al problema semplicemente implementando un nostro handler e passarlo durante la creazione del nostro oggetto server come vediamo in questo esempio:

from SimpleXMLRPCServer import *
class ExtendedXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
    def do_GET(self):
        msg = "This is a GET result!"
        #write the data to the socket along with valid HTTP headers
        res = 'HTTP/1.0 200 OK\r\nDate: %s\r\n\r\n%s' % \
          (self.date_time_string(),msg)
        self.wfile.write(res)
        self.log_request(200)

class My_Web_Service:
    def __init__(self):
        pass

    # not callable through XML RPC because starts with '_'
    def _private(self):
        pass
    
    def tellme(self, msg):
        return "You wrote: "+msg

if __name__ == "__main__":
    server = SimpleXMLRPCServer(('', 8080), ExtendedXMLRPCRequestHandler)
    server.register_instance(My_Web_Service())
    print "Starting ..."
    server.serve_forever()

ora puntate il vostro browser su localhost:8080 ed ecco la vostra richiesta accolta. Se volete maggiori informazioni, e vi consiglio di dargli un’attenta lettura, potete spulciare la documentazione dei due moduli. Come sempre per maggiori informazioni o chiarimenti chiedete pure.

– Fine –
Postato con Kblogo

Apple Mail Client

Apple Mail Client

Finalmente dopo non so quanto tempo ho deciso di riorganizzare i miei Feed RSS, che al momento erano buttati a casaccio in Mail. Ho provato a cliccare qua e là ma alla fine mi è toccto cercare in Google e l’ho trovato. In Leopard (10.5) possiamo organizzare i nostri Feed in cartelle come nella sezione “Sul mio Mac” (“On My Mac” se in inglese), per farlo basta cliccare sul feed che abbiamo inserito e andare nel menù Casella » Nuova Casella… (Mailbox » New Mailbox se in inglese) quindi apparirà la nostra cartella, ora trascina al suo interno tutti i feed che vuoi.. Fatto!!!!

my-team-uses-the-pomodoro

Flickr Photos