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.

Disattivare un core

 

 

Questo tip puo risultare molto utile per chi come me possiede oltre al Pc un notebook ed un netbook (aspire one) multicore, poichè ci da la possibilità di disattivare un core nell’eventualità che ci si trovasse con una scarsa autonomia della batteria. Disattivando un core abbiamo la possibilità di guadagnare qualche minuto e quindi finire di scrivere ed inviare per esempio una mail.

Per disattivare :

$ echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

Per attivare:

$ echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online

Per verificare se si sta usando un core o più basta un:

cat /proc/cpuinfo

 

Aspire One Linux e modem HSDPA-HSUPA Option-GTM380-GlobeTrotter

Ho da poco preso un Acer Aspire One A150X, con modem HSUPA embedded,  e diciamo che sono contento in quanto col pinguino, al momento non ho riscontrato problemi seri. Come distribuzione ho installato Debian, poi ho provato Kuki , ma non mi è piaciuta, del resto è ancora in alfa. Per ultimo ho provato  Linux4one, a cui faccio i miei complimenti a tutto lo staff. Usando proprio questa distro mi sono accorto del problema di connessione tramite questo modem, in quanto non è stato inserito il modulo hso, determinante per il corretto funzionamento. Problema noto come si evince dalle discussioni nel forum.

Dando il comando lsusb, io ottengo questo:

 

ID 0af0:7211 Option

ma col modulo hso funzionano anche tutti questi, come è scritto sul sito di riferimento.

{default_port_device(0x0af0, 0x6711)},
{default_port_device(0x0af0, 0x6731)},
{default_port_device(0x0af0, 0x6751)},
{default_port_device(0x0af0, 0x6771)},
{default_port_device(0x0af0, 0x6791)},
{default_port_device(0x0af0, 0x6811)},
{default_port_device(0x0af0, 0x6911)},
{default_port_device(0x0af0, 0x6951)},
{default_port_device(0x0af0, 0x6971)},
{default_port_device(0x0af0, 0x7011)},
{default_port_device(0x0af0, 0x7031)},
{default_port_device(0x0af0, 0x7051)},
{default_port_device(0x0af0, 0x7071)},
{default_port_device(0x0af0, 0x7111)},
{default_port_device(0x0af0, 0x7211)},
{default_port_device(0x0af0, 0x7251)},
{default_port_device(0x0af0, 0x7271)},
{default_port_device(0x0af0, 0x7311)},
{default_port_device(0x0af0, 0xc031)}, /* Icon-Edge */
{icon321_port_device(0x0af0, 0xd013)}, /* Module HSxPA */
{icon321_port_device(0x0af0, 0xd031)}, /* Icon-321 */
{icon321_port_device(0x0af0, 0xd033)}, /* Icon-322 */
{USB_DEVICE(0x0af0, 0x7301)}, /* GE40x */
{USB_DEVICE(0x0af0, 0x7361)}, /* GE40x */
{USB_DEVICE(0x0af0, 0x7401)}, /* GI 0401 */
{USB_DEVICE(0x0af0, 0x7501)}, /* GTM 382 */
{USB_DEVICE(0x0af0, 0x7601)}, /* GE40x */
{USB_DEVICE(0x0af0, 0x7701)},
{USB_DEVICE(0x0af0, 0x7801)},
{USB_DEVICE(0x0af0, 0x7901)},
{USB_DEVICE(0x0af0, 0x7361)},
{icon321_port_device(0x0af0, 0xd051)},

Con Debian per esempio basta un semplice:

modprobe hso

Incominciamo installando un po di cose:

apt-get install build-essential bin86 kernel-package libncurses5 libncurses5-dev fakeroot module-init-tools

apt-get install libusb-dev libusb++-dev libusb++-0.1-4c2 python2.5-dev

Per ovviare a questo problema con Linux4one, ci sono 2 strade. La prima è quella di ricompilarsi il kernel, con il solito metodo, descritto qua. Una volta dato il comando make menuconfig, portarsi alla voce Device Drivers>Network device support>Usb Network Adapters ed andiamo a modularizzare Option Usb. Poi, giusto per non farsi mancare niente, sempre nella sezione Device drivers>Usb support>Usb Serial Converter, modularizzare Usb driver for Gsm. A questo punto salvare, e dopo la ricompilazione ci ritroveremo con i pacchetti linux-headers e linux-image. Una volta installati con dpkg e riavviato saremo pronti per connetterci con il nostro modem, non prima però di aver scaricato i tre pacchetti che ci servono hsolink , hsoconnect e Ozerocdoff . Quest’ultimo da installare con  il classico :

tar zxf udev.tar.gz

cd udev

sudo make

sudo make install

A questo punto inseriamo in /etc/modules

ppp_async

ppp_generic

pppoe

usbserial vendor=0x0af0 product=0x7211 (sostituire se il vostro è diverso)

poi ancora:

sudo gedit /etc/hso-suspend.conf

ed inserire NONE al posto di 5 seconds

reboot

Al momento della connessione con HSOconnect apparirà una finestra di debug dove all’interno se tutto va bene non dovranno apparire errori. Nella finestra di HSOconnect, andare in profile-edit, ed inserire l’ apn, nel mio caso ibox.tim.it, come username e password, mettere due parole a caso. A questo punto siamo pronti a testare il tutto con:

python -m  hsoc

La seconda strada  è quella di scaricare linux-headers e linux-image  ricompilati da me, ed installarli, per poi procedere con l’installazione di hsolink, hsoconnect e ozerocdoff ecc.ecc. il tutto scaricabile qua. Con questi semplici passi la connessione è andata ieri ed oggi senza mai disconnettersi per ore, ed ho scaricato anche un file da 150 mega, preciso questo perchè la ricompilazione l’ho eseguita su una installazione pulita di Linux4one, poichè in una precedente installazione, dove avevo scaricato e compilato Hso driver e fatto altri esperimenti e tentativi, la connessione era altalenante e s’impallava spesso, ero riuscito tramite un workaround a farla andare,ma mi sono accorto che il metodo migliore è quello che ho appena descritto su di una installazione pulita, insieme all’utilizzo di Hsoconnect

 

 

 

Importante:

Tenere presente che il led del 3g è funzionante, quindi la lucina deve essere verde, altrimenti il modem non viene trovato.

 

Problemi riscontrati:

Ho notato che ogni tanto il device ttyHS1 scompare, ma una volta riavviato tutto torna OK, quindi e meglio non cambiare nulla in /usr/share/HSOconnect. Ho notato anche dei problemi di stabilità, ma sto verificando alcune soluzioni tra cui la patch di Alan Cox.

 

Aggiornamento:

Va tutto alla grande, chiaramente più il segnale è forte più si naviga velocemente. Ho raggiunto la velocità di 5,9 mega

in download ed 1,3 in upload.

Un altro how-to particolareggiato scritto da me, lo trovate sul forum.