SimpleBrowser il più piccolo ed il più veloce del mondo

 

 

Sembra un esagerazione ma è la pura è semplice verità, forse :), sto parlando di un browser in Python + Webkit/GTK dal peso di solo 1,5 KB che al test Acid3 ha 100/100 e non solo, mentre iceweasel si ferma a 93/100. Certo non si hanno tutte le comodità di un browser normale, ma considerando quanto risorse occupa ho deciso di adottarlo sul mio acer aspire one, del resto per una semplice navigazione è perfetto, quindi consiglio di provarlo. Faccio i complimenti all'autore che negli ultimi giorni non ha ricevuto i giusti meriti.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys
import gtk
import webkit
 
DEFAULT_URL = 'https://www.edmondweblog.com'
 
class SimpleBrowser:
 
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        self.window.connect('delete_event', self.close_application)
        self.window.set_default_size(800, 600)
 
        vbox = gtk.VBox(spacing=5)
        vbox.set_border_width(5)
 
        self.txt_url = gtk.Entry()
        self.txt_url.connect('activate', self._txt_url_activate)
 
        self.scrolled_window = gtk.ScrolledWindow()
        self.webview = webkit.WebView()
        self.scrolled_window.add(self.webview)
 
        vbox.pack_start(self.txt_url, fill=False, expand=False)
        vbox.pack_start(self.scrolled_window, fill=True, expand=True)
        self.window.add(vbox)
 
    def _txt_url_activate(self, entry):
        self._load(entry.get_text())
 
    def _load(self, url):
        self.webview.open(url)
 
    def open(self, url):
        self.txt_url.set_text(url)
        self.window.set_title('SimpleBrowser - %s' % url)
        self._load(url)
 
    def show(self):
        self.window.show_all()
 
    def close_application(self, widget, event, data=None):
        gtk.main_quit()
 
if __name__ == '__main__':
    if len(sys.argv) > 1:
        url = sys.argv[1]
    else:
        url = DEFAULT_URL
 
    gtk.gdk.threads_init()
    browser = SimpleBrowser()
    browser.open(url)
    browser.show()
    gtk.main()

salviamo questo script come browser.py

$ chmod a+x browser.py

e lo lanciamo con:

$ python browser.py

in caso di problemi con la formattazione del testo, si può scaricare da qua.

Debian GNU/kFreeBSD problemi al boot

Dopo gli aggiornamenti fatti un paio di giorni fa sulla mia Debian GNU/kFreeBSD, mi sono ritrovato con alcuni problemi, tra cui alcuni nuovi ed altri che gia conoscevo. Il primo problema abbastanza grave riguardava l'impossibilita' di usare la tastiera al login, di conseguenza il sistema era inutilizzabile non avendo modo di loggarsi o di passare in tty1. Ho fatto diversi tentativi compreso controllare xorg.conf montando la partizione da Debian Sid, ma tutto risultava in ordine e la tastiera rimaneva sempre bloccata. A questo punto ho avuto un intuizione (diciamo pure culo), nella schermata di login sono andato in Azioni-Eseguire il selettore XDMCP ho usato la tastiera, e una volta ritornato alla schermata di login la tastiera si era sbloccata. Questa procedura bisogna farla ad ogni avvio per il momento. Il secondo problema riguarda alcuni processi che portano le cpu al 100%, di conseguenza anche qui il sistema e' inutilizzabile in quanto non si riesce nemmeno ad aprire il terminale per conoscere i processi e killarli. La soluzione e' di passare in tty1 ed usare il comando top per identificare i processi e terminarli, dopo di che' aggiornare il sistema:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo reboot

Dopo gli aggiornamenti sembrerebbe che il problema riguardante alcuni processi che stressano la cpu sono stati risolti, ma il condizionale e' d'obbligo dato che piu' volte il problema si e' ripresentato. Al momento il problema della tastiera rimane, ma col procedimento spiegato sopra la mia/nostra Debian GNU/kFreeBSD e' perfettamente utilizzabile 🙂

Overclock scheda video Nvidia con Gnu/Linux

 

 

Questa guida serve all'overclock di schede grafiche Nvidia, ma naturalmente bisogna prestare attenzione, non vorrei proprio essere io la causa della frittura della vostra amata scheda :). Diciamo subito che le nostre schede possono essere overcloccate senza nessun rischio se il tutto viene fatto con intelligenza, dato che la stessa Nvidia ci offre lo strumento per farlo, e si è tenuta un po bassa con la frequenza di clock. Lo strumento  che ci offre Nvidia si chiama Coolbits, ed andiamo subito ad usarlo. Se andiamo ad analizzare NVIDIA X Server Settings, notiamo che non c'è nessuna opzione per l'overclock:

quello che dobbiamo fare è:

# nano /etc/X11/XF86Config

oppure:

# nano /etc/X11/xorg.conf

ed inseriamo il famoso Coolbits nella sezione Device:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option "Coolbits" "1"
EndSection

salvare e riavviare:

Ctrl+o

Ctrl+x

# reboot

 

Adesso andando a controllare di nuovo NVIDIA X Server Settings, troviamo una nuova voce, Clock Frequencies:

a questo punto siamo pronti all'overclock sfruttando il pulsante Auto Detect, che ci indica il valore supportato della nostra scheda, nel mio caso è passata da 550 a 628.

Un altro metodo è quello di usare nvclock presente nei repository:

# apt-get install nvclock nvclock-gtk

lo avviamo con:

# nvclock_gtk

e proviamo l'overclock, tenendo ben presente 2 cose:

  1. non esagerare ho per cena si rischia di mangiare una scheda fritta 🙂
  2. Alt +Stamp+b in caso di emergenza 😉

Recuperare data di nascita di un OS Gnu/Linux

Questo è un semplice comando che serve a determinare la data d'installazione del nostro O.S. Gnu/Linux, a partire dal piu vecchio file di configurazione presente nel nostro sistema.

$ ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'


edmond@debianbox:~$ ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'
10 mar 21.18

Duplicare chiave usb

 

A volte può essere utile duplicare una chiave usb blocco per blocco, basti pensare ad una chiavetta con dentro una distro live e che vogliamo per vari motivi trasferirla su di un' altra chiavetta. A questo proposito ci viene in aiuto il comando " dd ":

smontare chiave usb:

# sudo umount dev/sdg1

sdg1 si riferisce alla mia chiavetta.

duplicare la chiave in un file:

$ dd if=/dev/sdg1 | gzip -9 | dd of=/home/edmond/Desktop/backup.gz bs=1024k

oppure l'operazione inversa, da un file verso la chiavetta:

$ zcat /home/edmond/Desktop/backup.gz | dd of=/dev/sdg1 bs=1024k

oppure direttamente da chiavetta a chiavetta:

$ dd if=/dev/sdg1 of=/dev/sdh1 bs=1024k

Rilasciato Super GRUB2 Disk 1.98s1

 

 

E' stata appena rilasciato super_grub_disk_hybrid-1.98s1.iso e ci sono diverse novità in questa nuova release, come si può vedere:

  • Updated for the latest stable grub release, 1.98.
  • Single "hybrid" image can be used to make a bootable CD, floppy, or USB drive.
  • Option to find and load loop bootable iso files. Currently supported distributions:
    Grml, Parted Magic, Sidux, Slax Tinycore, Ubuntu, and any distribution that ships with a loopback.cfg ).
  • Option to enable GRUB2's native PATA drivers to work around BIOS bugs/limitations.
  • Option to enable GRUB2's native USB drivers (experimental).
  • Option to list information about devices/partitions.
  • Enabling serial terminal no longer disables console input/output.
  • Better error handling/reporting.
  • Miscellaneous bug fixes.

 

per costruire un iso partendo dal source

$ cd supergrub-1.98s1

$ ./supergrub-mkrescue

Da Html a Pdf con Gnu/Linux

 

Wkhtmltopdf è un ottimo programma che serve alla conversione di pagine html in pdf, dato che non lo conoscevo ho voluto provarlo, e devo dire che questo è un ottimo programma visto l'alta possibilità di configurazione. Su Debian Sid è presente nei repository nella versione 0.9.5-1, quindi è inutile ricompilare. Per chi volesse farlo i requisiti obbligatori son le Qt 4, quindi:

# apt-get install libqt4-dev qt4-dev-tools wkhtmltopdf

Per usarlo bastano pochi semplici comandi:

comando base:

$ wkhtmltopdf https://edmondweblog.com edmondweblog.pdf

comando con più opzioni:

$ wkhtmltopdf https://edmondweblog.com prova.pdf -n  -B 10mm -L 10mm -R 10mm -T 10mm –minimum-font-size 10

conversione di un file locale:

wkhtmltopdf file.html file.pdf

conversione di un file PS:

wkhtmltopdf file.html file.ps

per tutto il resto c'è il man.

Condividere swap tra Windows e Gnu/Linux

 

 

Questa guida è solo per conoscenza, dato che probabilmente solo in pochi la utilizzeranno, dato che oramai negli hard disk moderni non si hanno certo problemi di spazio. Io fino al 2005-06, avevo anche un mulettino, un pentium III 800mhz Olidata con hard disk da 12g e scheda video matrox G400, e vi tenevo fisse 2 distribuzioni Gnu/Linux, e cercavo di ottimizzare lo spazio al massimo, per non parlare poi di tutti gli esperimenti, nel ricompilare il kernel solo con quello che mi serviva…..che ridere solo a pensarci adesso. Comunque tornando al discorso della condivisione della partizione di swap tra Gnu/Linux e Windows, ho scoperto che esiste uno script  che permette di attivare la partizione di swap di windows, tramite il file pagefile.sys, direttamente da Gnu/Linux.

Requisiti:

Partizione windows montata all'avvio, quindi:

# cd /media

# mkdir win7

# nano /etc/fstab

inserire :

 /dev/sda1  /media/win7  ntfs-3g

e poi:

# reboot

poi scaricare lo script install-swapwin che io ho tradotto solo nelle parti essenziali,e modificato, inserendo il percorso /media/win7:

$ chmod +x install-swapwin

# ./install-swapwin

# reboot

# swapon -s

alla fine volendo si è pronti ad eliminare la vecchia partizione di swap.

Blocco volontario del cdrom

 

Questo è un piccolo trucchetto che consiste nel bloccare volontariamente il cdrom. La domanda, per altro legittima che uno può farsi è: " perchè mai dovrei bloccare il cdrom? " Gli scenari possono essere diversi, io mi limito a menzionarne uno: " stai guardando un pornazzo che un amico ti ha regalato, tua moglie/fidanzata vedendoti preso e con la lingua di fuori ti chiede cosa stai vedendo, e tu, subito rispondi che ti hanno regalato un film di Bruce Lee che erano anni che non vedevi, e per questo sei affascinato dalle sue performance che non ricordavi ormai più. La risposta che hai dato sai già che non è proprio convincente, ma comunque vai avanti con la visione. Ad un certo punto sazio del film senti il bisogno di ritirarti per deliberare in bagno, e mentre ti avvii vedi un lampo balenare negli occhi di tua moglie/fidanzata, a quel punto capisci che lei sta aspettando il momento della tua delibera per andare a tirare fuori il cdrom, ma il nerd che c'è in te reagisce e prima della delibera digiti:

$ eject -i on

oppure

$ eject -i 1

che serve per bloccare il cdrom. Successivamente per sbloccare usare:

$ eject -i off

oppure:

$ eject -i 0

nel caso si hanno due cdrom scegliere quale bloccare:

$ eject cdrom0 -i on

$ eject cdrom1 -i on

La storia finisce con il classico, " e tutti vissero felice e contenti " 🙂

Debian GNU/kFreeBSD errore MatchIsMouse

Non aggiornavo Debian GNU/kFreeBSD da 10 giorni e quindi mi sono trovato con un bel po di pacchetti da aggiornare, conoscendo come vanno queste cose, con così tanti aggiornamenti, ero quasi certo che qualcosa sarebbe successo. ed infatti,  quando riavvio mi ritrovo con il server X che non parte, ed il fallimento di:

X -configure

leggendo il log di xorg, mi diceva che c'era un problema con 10-mouse.conf in /usr/share/X11/xorg.conf.d.

infatti:

MatchIsMouse "on"

non c'entra nulla e va cancellato, quindi:

nano /usr/share/X11/xorg.conf.d/10-mouse-conf

quindi va modificato da così:

Section "InputClass"
    Identifier "mouse catchall"
    MatchIsMouse "on"
    Driver "mouse"
EndSection

a così:

Section "InputClass"
    Identifier "mouse catchall"
    Driver "mouse"
EndSection

dopo di chè bisogna ricordarsi di aggiungere in /etc/X11/xorg.conf:

Section "ServerFlags"
        Option "AllowEmptyInput" "No"
        Option "AutoAddDevices" "No"
EndSection

 a questo punto sarà tutto risolto 😉