Convertire JPG-PNG-GIF in ASCII con Jp2a

 

 

Jp2a è una piccola utility che serve a convertire immagini JPG in ASCII, è scritto in C ed è rilasciato sotto licenza GPL. E' presente nei repo Debian,Gentoo,FreBSD, ed i comandi sono abbastanza semplice:

Convertire immagine jpg in ascii:

$ jp2a --width=60 image.jpg

Convertire immagine direttamente da un sito, tipo questa:

$ jp2a --width=70

a questo punto volendo convertire immagini png o gif, dobbiamo rivolgerci a ImageMagick con l'opzione convert:

$ convert image.png jpg:- | jp2a --width=60 -

$ convert image.gif jpg:- | jp2a --width=60 -

per altre opzioni consultare il man.

Backup velocissimo di sistema

 

Questo è un semplice ma efficace metodo per effettuare un backup di sistema o parte di esso, infatti permette di scegliere cosa "backuppare" e cosa tralasciare. Nel mio caso ho escluso la /home in quanto si trova in un'altra partizione, e /mnt dove si trova la partizione contenente dati importanti, che si trova in un secondo disco.

Effettuare Backup:

# tar cvpjf backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys / --exclude=/tmp --exclude=/home

Ripristinare Backup:

# tar xvpfj backup.tar.bz2 -C /

Countdown bash script

 

 

Countdown bash script:

#!/bin/bash
 
if [ "$#" -lt "2" ] ; then
    echo "Incorrect usage ! Example:"
    echo './countdown.sh -d  "Jun 10 2011 16:06"'
    echo 'or'
    echo './countdown.sh -m  90'
    exit 1
fi
 
now=`date +%s`
 
if [ "$1" = "-d" ] ; then
    until=`date -d "$2" +%s`
    sec_rem=`expr $until - $now`
    echo "-d"
    if [ $sec_rem -lt 1 ]; then
        echo "$2 is already history !"
    fi
fi
 
if [ "$1" = "-m" ] ; then
    until=`expr 60 \* $2`
    until=`expr $until + $now`
    sec_rem=`expr $until - $now`
    echo "-m"
    if [ $sec_rem -lt 1 ]; then
        echo "$2 is already history !"
    fi
fi
 
 
while [ $sec_rem -gt 0 ]; do
    clear
    date
    let sec_rem=$sec_rem-1
    interval=$sec_rem
    seconds=`expr $interval % 60`
    interval=`expr $interval - $seconds`
    minutes=`expr $interval % 3600 / 60`
    interval=`expr $interval - $minutes`
    hours=`expr $interval % 86400 / 3600`
    interval=`expr $interval - $hours`
    days=`expr $interval % 604800 / 86400`
    interval=`expr $interval - $hours`
    weeks=`expr $interval / 604800`
    echo "----------------------------"
    echo "Seconds: " $seconds
    echo "Minutes: " $minutes
    echo "Hours:   " $hours
    echo "Days:    " $days
    echo "Weeks:   " $weeks
    sleep 1
done

salviamo il file come bash-countdown.sh:

$ chmod +x bash-countdown.sh

adesso siamo pronti per il conto alla rovescia:

countdown per le ferie:

$ ./bash-countdown.sh -d "AUG 07 2010"

sab 12 giu 2010, 16.49.59, CEST
—————————-
Seconds:  0
Minutes:  10
Hours:    7
Days:     6
Weeks:    7

countdown di 90 minuti:

$ ./bash-countdown.sh -m 90

countdown per Inghilterra-Stati Uniti stasera:

$ ./bash-countdown.sh -d 20:30:00

 

Questo lo script, per chi ha bisogno di un applet, esiste timer-applet.

Xdpyinfo utility per X con ffmpeg

 

 

 

 

 

Xdpyinfo è un utility che serve a visualizzare informazioni sul server X, e quindi si può anche usare per conoscere l'esatta risoluzione del nostro schermo e successivamente abbinarlo con ffmpeg per effettuare uno screencast,argomento questo che mi appassiona ed ho già affrontato nei Top 20 comandi per ffmpeg. Per conoscere la risoluzione:

$ xdpyinfo | grep 'dimensions:'|awk '{print $2}'

per lo screencast:

$ ffmpeg -f x11grab -s `xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -r 30 -i :0.0 -sameq /tmp/screencast.mpg

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