sabato 27 febbraio 2010

GO, il linguaggio di programmazione secondo Google

Google ne ha fatta un'altra delle sue, e questa volta rivolgendosi allo sviluppatore: GO, un nuovo linguaggio di programmazione derivato dal C. Un linguaggio certamente ancora grezzo, ma che è incredibilmente espandibile, la cui sintassi vuole essere moderna, ma allo stesso tempo efficace. Ecco il suo hello world!

     package main

  import "fmt"

  func main() {
      fmt.Print("Hello, World!!\n");
  }

Per ora vi lascio al sito, dove ci sono già tutorial di installazione e spiegazioni della sintassi!
Ciao!

martedì 16 febbraio 2010

Compiz-deskmenu: il menu come openbox

Facciamo una pausa nella guida a Compiz e soffermiamoci un attimo sul menu che abbiamo scelto di usare: compiz-deskmenu. La configurazione della sua chiamata non è immediatissima, nel senso che, a prima vista, sembrerebbe che non sia possibile configurare la chiamata del menu col solo tasto destro del mouse (come vale per la maggior parte dei WM). Sembrerebbe, ma non è così! Infatti, grazie alla solita comunità di archlinux, sono riuscito a risolvere questo problemino! Come? È presto detto! Apriamo il gestore delle configurazioni di Compiz. Nella sezione Generale>Comandi, lasciamo in una riga di comando "compiz-deskmenu", ma disabilitiamo qualsiasi combinazione di tasti. Nella sezione Desktop>Selettore area visibile, nella scheda "Selezione area visibile in base alla scrivania", ci sono tre cose da fare:

  1. Alla riga "Azione inizializzazione plugin", selezioniamo il tasto che  vogliamo utilizzare (per me, il tasto destro è Button3
  2. Alla riga "Plugin per azione inizializzazione", scriviamo commands
  3. Alla riga "Nome azione per inizia", scriviamo run_command0_key


Dovrebbe essere tutto a posto! Bene, ora godetevi il vostro splendido menu!

domenica 14 febbraio 2010

[TUTORIAL]Compiz stand-alone - Personalizzazione

Certo, compiz è bello da vedere, ma il nostro sistema deve essere anche e soprattutto comodo da utilizzare. La prima cosa da fare è, a mio avviso, utilizzare un menu openbox-like per compiz. Il pacchetto è su AUR!
Una volta installato compiz-deskmenu, è necessario configurare la sua chiamata. E allora basterà recarsi nel Gestore configurazione CompizConfig (ccsm da terminale), attivare Comandi nella sezione Generale e impostare in una linea di comando il comando compiz-deskmenu, e nell'associazione di tasti qualsiasi combinazione vogliate. Ora, con quella combinazione potete aprire il vostro menu, che potete facilmente modificare!
Per l'impostazione del vostro sfondo sul desktop, consiglio, soprattutto se usate utility come conky o simili, di NON usare il plugin di compiz, ma un altro programma. Io uso nitrogen (lo trovate nei repository con pacman). Una volta scelto il vostro sfondo dovete aggiungere questa linea in .xinitrc:
nitrogen --restore&

In questo modo, a ogni boot, potrete rivedere il vostro amato sfondo! Infine, come file-manager avete, a mio avviso, due valide opzioni. La prima è usare thunar, che, secondo me, è il miglior file-manager leggero che sia in questo momento nei repository. La seconda opzione è usare pcmanfm, veramente di poco inferiore a thunar. La miglior cosa da fare è provarli entrambi e farsi la propria personale idea. Una volta configurati menu, desktop, file-manager (e altre utility indipendenti) il risultato dovrebbe essere questo:



Buona configurazione! Ciao!

giovedì 11 febbraio 2010

[TUTORIAL]Compiz stand-alone - Getting started

Molte volte compiz viene utilizzato assieme ad un Desktop Environment come Gnome o KDE, ma non sono in molti a sapere che può essere utilizzato come window manager solitario, come alternativa ai leggerissimi Openbox, Fluxbox, eccetera. Ebbene sì, Compiz è anche stand-alone! Diamogli un'occhiata!

Nota: questa guida è scritta per Archlinux, la mia distribuzione linux preferita. Ciò non toglie che i pacchetti per Arch esistono per tutte le altre distro.

Innanzitutto, ovviamente, è opportuno installare compiz. Da terminale:
pacman -Sy compiz-fusion

Una volta installati i componenti, creiamo uno script nella nostra home (in questa guida il nome sarà start-fusion.sh) con all'interno questi parametri:
#!/bin/sh
tint2& # pannello
fusion-icon # compiz


Tint2 è il pannello che uso io, ma può essere sostituito con un altro qualsiasi come, per esempio, gnome-panel.
Ora è necessario rendere eseguibile lo script. Sempre da terminale:
sudo chmod +x ~/start-fusion.sh

Ottimo! Ora, bisogna solo modificare .xinitrc (per chi non lo sapesse, si trova anch'esso nella home).
Aggiungiamo questa linea (e commentiamo le altre che lanciano altri window manager!):
exec ck-launch-session start-fusion.sh

Al riavvio, avviate X e vedrete il vostro compiz stand-alone con la fusion-icon nel vostro pannello. Potete smanettarci!! Nella prossima guida, vedremo come interagire meglio con compiz stand-alone, creando un menu openbox-like e avviando i programmi all'avvio.

sabato 6 febbraio 2010

Google Nexus One è migliore dell'iPhone?

In questi giorni si discute delle scarse (finora) vendite del Googlefonino, il Nexus One. Le aspettative erano però inizialmente talmente elevate da far pensare al Nexus One come l'anti-iPhone. Queste aspettative erano fondate, visto le caratteristiche del "miglior cellulare Android", che presenta molti più pregi di quanti possano essere i difetti. Partiamo con le sue caratteristiche principali.

  • Processore Qualcomm QSD 8250 1GHz
  • 512MB RAM
  • 4GB SD di memoria (espandibili fino a 32GB)
  • Autonomia in standby: 250/290 ore
  • Fotocamera 5 megapixel
  • Schermo da 800 x 480 pixel
  • Sistema operativo Android 2.1
E l'iPhone? Facciamo un confronto con le stesse caratteristiche! Ho preso il modello iPhone 3GS, il migliore sul mercato.



  • Processore da 600MHz ca.
  • 256MB RAM
  • Memoria fissa (16GB o 32GB)
  • Autonomia in standby: fino a 300 ore
  • Fotocamera 3 megapixel
  • Schermo da 480 x 320 pixel
  • Sistema operativo Apple
Certo, da questi dati la superiorità hardware del Googlefonino è evidente, ma a favore del telefono Apple c'è un App Store enormemente più grande (100000 apps Apple contro le 20000 Android). Inoltre, molti nuovi utenti del Nexus One si sono lamentati della mancanza del multitouch (in particolare della funzione "pinch-to-zoom") e di una vacillante connessione 3g. Problemi risolti però con il recente aggiornamento del N1. Ho cercato di mettere a confronto i due telefoni il più obiettivamente possibile. Sta a voi ora scegliere tra i due. Personalmente, sto aspettando con ansia il telefono di Google, sperando che il prezzo non sia troppo  elevato (sicuramente, il prezzo non supererà quello dell'iPhone).

martedì 2 febbraio 2010

Cenni di wxPython - Cosa sto imparando

Ciao a tutti. :-)
In questi giorni mi sto cimentando con wxPython, una splendida libreria grafica per il linguaggio di programmazione python. Ebbene, ho deciso, dopo aver studiato solo le basi, di scrivere un programmino che riconoscesse una password.  Al terzo errore, il programma si deve chiudere. Lo script che è venuto fuori è questo:
#!/usr/bin/env python
import wx
PASSWORD = "12345"


class PswdRecognizer(wx.App):
    def OnInit(self):
        frame = MainFrame("Password Recognizer")
        frame.Show(True)
        self.SetTopWindow(frame)
        return True
        
class MainFrame(wx.Frame):
    def __init__(self, title):
        wx.Frame.__init__(self, None, title=title, size=(200, 66))
        
        # Variables
        self.errors = 0
        
        # Panel
        panel = wx.Panel(self)
        
        # TextCtrl
        self.line = wx.TextCtrl(panel, style=wx.TE_PASSWORD, size=(200, 30))
        font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL, wx.NORMAL, u"Droid Sans")
        self.line.SetFont(font)
        self.line.SetFocus()
        
        # Buttons
        ok = wx.Button(panel, wx.ID_OK, label="OK", pos=(-1, 31))
        ok.SetDefault()
        self.Bind(wx.EVT_BUTTON, self.OnOK, ok)
        
    def OnOK(self, e):
        if self.line.GetValue() == PASSWORD:
            self.errors = 0
            dlg = wx.MessageDialog(self, "Right!", "Password", wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
        else:
            self.errors += 1
            if self.errors == 3:
                dlg = wx.MessageDialog(self, "Third Error.\nBye!",
                                        "Password", wx.ID_OK)
                dlg.ShowModal()
                dlg.Destroy()
                self.Close()
            else:
                dlg = wx.MessageDialog(self, "NO!!!!!", "Password", wx.OK)
                dlg.ShowModal()
                dlg.Destroy()
        self.line.SetFocus()
            
if __name__ == "__main__":
    app = PswdRecognizer()
    app.MainLoop() 

Il programma è molto semplice, e utilizza i concetti di Frame, App, TextCtrl, MessageDialog e Panel. La guida (in inglese cui sto attingendo le informazioni è questa.
Buon wxPyhton!