Posted by: akus | Giugno 6, 2008

[PyS60] Set module

Non essendo presente per python s60 i set cioè una struttura dati che tratta gli insiemi con le sue operazioni,ho pensato di scrivere questo modulo che è una sorta di porting dei set utilizzabili su python sul pc.

Per scaricare il modulo clicca qui

Spero di avere fatto cosa gradita! :-)

Posted by: akus | Maggio 8, 2008

Il telefono ti legge l’orario

Nei telefoni Symbian di seconda edizione (serie N) è possibile tramite il modulo audio contenuto in python utilizzare il text-to-speech,ovvero la sintesi vocale,voi scrivete una frase e il telefono la “legge a voce alta” :-)
Quindi per sfruttare questo modulo ho pensato di scrivere un’applicazione che legge a voce alta l’ora corrente :-)


import appuifw,e32,time
import audio

def Main():
  frase=""
  orario=time.ctime()
  orario=orario.split( " " )
  orario=orario[3]
  orario=orario.split( ":" )
  ore=int(orario[0])
  minuti=int(orario[1])
  o=ora(ore)
  m=minut(minuti)
  frase="Sono le ore " + o + " ee " + m +" minuti"
  audio.say(frase)
  time.sleep(1)
  appuifw.app.set_exit()
  Lock.signal()

def ora(ore):
  if ore==0:
    ore="zero zero"
  elif ore==1:
    ore="l'una"
  elif ore==2:
    ore="due"
  elif ore==3:
    ore="tre"
  elif ore==4:
    ore="quattro"
  elif ore==5:
    ore="cinque"
  elif ore==6:
    ore="sei"
  elif ore==7:
    ore="sette"
  elif ore==8:
    ore="otto"
  elif ore==9:
    ore="nove"
  elif ore==10:
    ore="dieci"
  elif ore==11:
    ore="undici"
  elif ore==12:
    ore="dodici"
  elif ore==13:
    ore="tredici"
  elif ore==14:
    ore="quattordici"
  elif ore==15:
    ore="quindici"
  elif ore==16:
    ore="sedici"
  elif ore==17:
    ore="diciessette"
  elif ore==18:
    ore="diciotto"
  elif ore==19:
    ore="diciennove"
  elif ore==20:
    ore="venti"
  elif ore==21:
    ore="vntuno"
  elif ore==22:
    ore="ventidue"
  elif ore==23:
    ore="ventitre"
  ore=str(ore)
  return ore

def minut(minuti):
  if minuti==0:
    minuti="in punto"
  elif minuti==1:
    minuti="un"
  elif minuti==2:
    minuti="due"
  elif minuti==3:
    minuti="tre"
  elif minuti==4:
    minuti="quattro"
  elif minuti==5:
    minuti="cinque"
  elif minuti==6:
    minuti="sei"
  elif minuti==7:
    minuti="sette"
  elif minuti==8:
    minuti="otto"
  elif minuti==9:
    minuti="nove"
  elif minuti==10:
    minuti="dieci"
  elif minuti==11:
    minuti="undici"
  elif minuti==12:
    minuti="dodici"
  elif minuti==13:
    minuti="tredici"
  elif minuti==14:
    minuti="quattordici"
  elif minuti==15:
    minuti="quindici"
  elif minuti==16:
    minuti="sedici"
  elif minuti==17:
    minuti="diciessette"
  elif minuti==18:
    minuti="diciotto"
  elif minuti==19:
    minuti="diciennove"
  elif minuti==20:
    minuti="venti"
  elif minuti==21:
    minuti="ventuno"
  elif minuti==22:
    minuti="ventidue"
  elif minuti==23:
    minuti="ventitre"
  elif minuti==24:
    minuti="ventiquattro"
  elif minuti==25:
    minuti="venticinque"
  elif minuti==26:
    minuti="ventisei"
  elif minuti==27:
    minuti="ventisette"
  elif minuti==28:
    minuti="ventotto"
  elif minuti==29:
    minuti="ventinove"
  elif minuti==30:
    minuti="trenta"
  elif minuti==31:
    minuti="trentuno"
  elif minuti==32:
    minuti="trentadue"
  elif minuti==33:
    minuti="trentatre"
  elif minuti==34:
    minuti="trentaquattro"
  elif minuti==35:
    minuti="trentacinque"
  elif minuti==36:
    minuti="trentasei"
  elif minuti==37:
    minuti="trentasette"
  elif minuti==38:
    minuti="trentotto"
  elif minuti==39:
    minuti="trentanove"
  elif minuti==40:
    minuti="quaranta"
  elif minuti==41:
    minuti="quarantuno"
  elif minuti==42:
    minuti="quarantadue"
  elif minuti==43:
    minuti="quarantatre"
  elif minuti==44:
    minuti="quarantaquattro"
  elif minuti==45:
    minuti="quarantacinque"
  elif minuti==46:
    minuti="quarantasei"
  elif minuti==47:
    minuti="quarantasette"
  elif minuti==48:
    minuti="quarantotto"
  elif minuti==49:
    minuti="quarantanove"
  elif minuti==50:
    minuti="cinquanta"
  elif minuti==51:
    minuti="cinquantuno"
  elif minuti==52:
    minuti="cinquantadue"
  elif minuti==53:
    minuti="cinquantatre"
  elif minuti==54:
    minuti="cinquantaquattro"
  elif minuti==55:
    minuti="cinquantacinque"
  elif minuti==56:
    minuti="cinquantasei"
  elif minuti==57:
    minuti="cinquantasette"
  elif minuti==58:
    minuti="cinquantotto"
  elif minuti==59:
    minuti="cinquantanove"
  minuti=str(minuti)
  return minuti

#—Main—#
appuifw.app.title=u"Ora Esatta"
Lock=e32.Ao_lock()
Main()
Lock.wait()
Posted by: akus | Aprile 30, 2008

Corso di italiano… confusi nel confondersi

Questo post non ha nulla a che fare con l’informatica ma siccome l’ho trovato in giro mi sembra carino postarvelo…!!!
Sono i tanti errori che si fanno quando si parla :-)

01. Mi puoi disinnescare la segreteria telefonica? (Ordigni moderni…)
02. Soffro di vene vorticose. (Sarà un ballerino…)
03. Di fronte a queste cose rimango putrefatto! (Che schifo!)
04. In farmacia: Puoi darmi un ‘una tantum’? (forse si chiama ‘tantum verde’?)
05. Quando muoio mi faccio cromare. (Valido!)
06. Arriva il treno, hai blaterato il biglietto? (…..)
07. Come faccio a fare tutte queste cose simultaneamente? Dovrei avere il dono dell’obliquità! (la torre di Pisa???)
08. Un’onda anonima ha travolto i surfisti. ( nessuno l’ha riconosciuta???)
09. Almeno l’italiano… sallo! (Eh…)
10. Basta! Vi state coagulando contro di me! (trasfusione?)
11. E’ nel mio carattere: quando qualcosa non va, io sodomizzo! (Stategli lontano!)
12. Anche l’occhio va dalla sua parte… (Si chiama strabismo…)
13. Non so a che santo riavvolgermi. (Una videocassetta devota….)
14. Avete i nuovi telefonini GPL? (No mi spiace, solo benzina!!!)
15. Il cadavere presentava evidenti segni di decesso. (Ma va?! Strano)
16. Prima di operarmi mi fanno un’autopsia generale. (Auguri!)
17. Vorrei un pacco di cotone idraulico. (Ha una perdita???)
18. Abbiamo mangiato la trota salmonellata. (Ancora auguri!)
19. Vorrei un’aspirina in supposte effervescenti. (Quando si dice faccia da culo…)
20. Vorrei una maglia con il collo a volpino. (Non era lupetto?….)
21. Devo andare dall’otorinolalinguaiatra. (che dire…)
22. Ho visitato palazzo degli infissi a Firenze. (….si ci sono infissi alla finestre e allora??)
23. Vorrei una pomata per l’Irpef. (Herpes è difficile…)
24. Se lo sapevo glielo divo! (Ovvio…)
25. Usare il DDT fa diventare più grande il buco nell’Orzoro. (Addio colazione)
26. Tu non sei proprio uno sterco di santo. (Meno male…)
27.Tu l’hai letto il fu Mattia Bazar? (Antonella Ruggero???)
28. E’ andato a lavorare negli evirati arabi. (Contento lui…)
29. Lo scontro ha causato 5 feriti e 10 confusi. (Uno dei confusi sei tu??)
30. A forza di andare di corpo mi sono quasi disintegrata. (O disidratata??? Alla faccia della diarrea!)
31. Mia nonna ha il morbo di Pakistan. (..)
32. La mia auto ha la marmitta paralitica. (.e al posto dei cavalli ha la sedia a rotelle??)
33. Verrà in ufficio una stragista per il tirocinio. (Si salvi chi può!)
34. Sono momentaneamente in stand-bike. (L’attesa in bicicletta….)
35. Che lingua si parla in Turchia? Il turchese. (. è logico)
36. Davanti alla sua prepotenza resto illibato. (….sì….)
37. Scendi il cane che lo piscio. (…guinzagliato però!!!!)
38. Da vicino vedo bene, è da lontano che sono lesbica. (Aiuto…)
39. C’è una peluria di operai. (Che schifo!!)
40. E’ inutile piangere sul latte macchiato. (Meglio farlo su un bel cappuccino…)
41. Sono sempre io il cappio espiatorio (L’impiccato)
42. Beviamo una Magnum di Kruger. (salute)
43. Signora, vorrei 100 grammi di prosciutto senza polistirolo. (…che faccio un po’ fatica a digerirlo…)
44. Mi sono fatta il Leasing al viso. (..pensavo un mutuo…)

Posted by: akus | Aprile 29, 2008

PyS60 1.4.3


E’ stata rilasciata la nuova versione di python per i serie 60,in questa nuova release sono stati fixati alcuni bugs relativi al GPS ed SMS.
Il release note è visibile qui.
Mentre il download a questo indirizzo.

Posted by: akus | Aprile 28, 2008

OpenMoko FreeRunner manca poco!

A quanto sembra manca davvero poco all’uscita rivolta al grande pubblico di questo splendido “gioiellino” :-)
Infatti è già iniziato il DVT (Design Verification Testing) che dovrebbe essere l’ultima serie di test infatti una volta superata questa fase si passerà al PVT (Pilot Verification Test)per migliorare la fase di produzione,secondo alcune indiscrezioni non ci sarà alcuna distinzione tra modello base e advance.
Le spedizioni dovrebbero partire da Fremont in California e le spese di spedizione per ogni singolo pezzo si aggirano intorno ai 70$ ma se si compra in gruppo di 10 pezzi le spese di spedizione scendono a 16$,nel wiki ufficiale di openmoko si stanno organizzando i gruppi d’aquisto divisi per città—>Gruppi d’aquisto

Posted by: akus | Aprile 23, 2008

E’ uscita Hardy Heron…!!!

E’ appena uscita ufficialmente la nuova distribuzione di Ubuntu per la precisione la 8.04 e sarà LTS (Long Term Support) supportata per 3 anni la versione desktop e 5 anni quella server.
Le novità che ci aspettano riguarderanno l’aspetto grafico di GNOME, un nuovo set d’icone,miglioramenti su Compiz,sono stati velocizzati i tempi di boot e migliorato il supporto hardware e tanto altro….
Non ci resta che provarla…!!!

Posted by: akus | Aprile 17, 2008

Si inizia…

Ciao a tutti eccomi col primo post di questa nuova avventura :-)
In questo spazio posterò ciò che andrò scoprendo nel mondo Linux,i codici dei miei programmi,e news in generale…insomma tutto quello che stimola la mia (e spero anche la vostra) curiosità…!!!
Iniziamo subito presentando una libreria per python che ci permette di lavorare sull’audio,la libreria in questione si chiama PyMedia, se la dovete installare su un sistema Windows basta scaricare l’installer (.exe) ed installarlo come un semplice programma,mentre se come me siete su un sistema linux scaricate il .tar.gz e seguite le seguenti istruzioni per Ubuntu 7.10 :

-Installare prima le dipendenze:
sudo apt-get install python-dev libogg-dev libvorbis-dev liblame-dev libfaad2-dev libasound2-dev python-pygame

-Digitare sul terminale:
python setup.py build

-Infine installiamo pymedia:
sudo python setup.py install

Per verificare che tutto sia andato a buon fine aprite la shell interattiva di python (basta digitare “python” sul terminale) e scrivere:import pymedia
se non compare nessun errore significa che pymedia è stato installato correttamente..!!

Iniziamo presentando un primo programmino anche se con un’interfaccia ancora rudimentale,si tratta di un player audio creato con python utilizzando pymedia per la gestione dell’audio e le wxpython per l’interfaccia grafica :-)

import wx
import pymedia

ID_APRI=wx.NewId()
ID_ESCI=wx.NewId()

class Main(wx.Frame):
    def __init__(self,parent,id,title):
        wx.Frame.__init__(self,parent,id,title,size=(250,120))
        self.BottonePlay=wx.Button(self,-1,'PLAY',pos=(00,35),size=(55,30))
        self.BottonePause=wx.Button(self,-1,'PAUSE',pos=(55,35),size=(55,30))
        self.BottoneStop=wx.Button(self,-1,'STOP',pos=(110,35),size=(55,30))
        #
        self.BottonePlay.Bind(wx.EVT_BUTTON,self.Play,self.BottonePlay)
        self.BottoneStop.Bind(wx.EVT_BUTTON,self.Stop,self.BottoneStop)
        self.BottonePause.Bind(wx.EVT_BUTTON,self.Pause,self.BottonePause)
        #
        menu=wx.Menu()
        menu.Append(ID_APRI,'Apri...' )
        menu.Append(ID_ESCI,'Esci' )
        #
        menuBar=wx.MenuBar()
        menuBar.Append(menu,'&File' )
        self.SetMenuBar(menuBar)
        wx.EVT_MENU(self,ID_APRI,self.Apri)
        wx.EVT_MENU(self,ID_ESCI,self.Esci)
        #
        self.Show(True)
        #
        self.StatutsPause=False #all'inizio e' impostato su False

        self.canzone=""
        self.player=pymedia.Player()

    def Play(self,event):
        if (self.canzone!=''):
            if (self.player.isPlaying()==False):
                self.player=pymedia.Player()
                self.player.start()
                self.player.startPlayback(self.canzone)
        else:
            wx.MessageBox("Selezionare una canzone","Info", wx.OK | wx.ICON_INFORMATION)

    def Pause(self,event):
        try:
            if(self.player.isPlaying()==True)and(self.StatutsPause==False):
                self.player.pausePlayback()
                self.StatutsPause=True
            elif(self.StatutsPause==True):
                self.player.unpausePlayback()
                self.StatutsPause=False
        except AttributeError:
            pass

    def Stop(self,event):
        try:
            if (self.player.isPlaying()==True):
                self.player.stop()
                self.player.stopPlayback()
        except AttributeError:
            pass

    def Apri(self,event):
        path=wx.FileDialog(self, "Carica...", "", "", "*.mp3", wx.OPEN)
        if (path.ShowModal()==wx.ID_OK):
            self.canzone=path.GetPath()

    def Esci(self,event):
        self.Destroy()

#--Main--#
if (__name__=='__main__'):
    app=wx.PySimpleApp()
    frame=Main(None,-1,'Player' )
    frame.Show()
    app.MainLoop()

Alla prossima…!!! :-)

Categorie