linux

You are currently browsing articles tagged linux.

spiralContext Free (CF) è un software per generare immagini da una serie di istruzioni.

Utilizza un semplice set di comandi chiamato Context Free Design Grammar (CFDG).

Un file CFDG è sostanzialmente un gruppo di regole per disegnare forme usando altre forme.

Le forme base sono:

  • SQUARE
  • CIRCLE
  • TRIANGLE

Ci sono pochi altri componenti opzionali ed un unico componente obbligatorio:

  • La direttiva startshape è obbligatoria e informa CF da quale regola partire.
  • Le direttive opzionali: background, tile, size, include, shape, path

Ogni forma può essere modificata da un serie di parametri, in forma e colore.

Il rendering avviene in pochi secondi e quindi è possibile apprezzare subito il risultato dei nostri sforzi 😀

Contextfree

Le possibilità  più interessanti sono senz’altro fornite dalla ricorsione.

Disegnamo un cerchio e attraverso la ricorsione ne variamo progressivamente la luminosita e la dimensione. Utilizziamo poi il nostro cerchio sfumato per costruire una spirale:

startshape Spirale

rule Spirale  {
	Cerchio{}
	Spirale{x 1 size .9  rotate 30 }
}

rule Cerchio  {
	CIRCLE{}
	Cerchio{brightness 0.2 size 0.9}
}

spirale

Se una stessa regola appare più volte, CF sceglierà una versione piuttosto che un un’altra casualmente. La probabilità  che venga scelta un versione è proporzionale al suo peso (che viene indicato dopo il nome della regola).

Proviamo ad aggiungere una versione della nostra regola cerchio che utilizza un quadrato come forma base.

startshape Spirale

rule Spirale  {
	Cerchio{}
	Spirale{x 1 size .9  rotate 30 }
}

rule Cerchio  {
	CIRCLE{}
	Cerchio{brightness 0.2 size 0.9}
}
rule Cerchio  {
	SQUARE{}
	Cerchio{brightness 0.2 size 0.9}
}
spiralemista

Introducendo queste variazioni pseudo casuali possiamo ottenere immagini sorprendenti.

startshape rami

rule rami {
    SQUARE{y .1 s 0.02 0.2}
    ramo{y .1 s .99 b .1 sat .1 h 60}
    ramo{y .1 f 90}
}

rule rami{
	rami{}
}

rule ramo {
	rami{r 30 s .7}
}
rule ramo {
	rami{r 20 s .8}
}
rule ramo 0.2 {
	rami{r -20 s .616}
}

tree



Context Free permette di inserire le proprie creazioni nella gallery online del sito, nella quale si possono trovare degli autentici capolavori insieme ovviamente al codice per riprodurli.

Context Free è disponibile per Mac OSX, Windows e Linux e in formato sorgente.

Un buon punto di partenza è la sezione tutorial del sito.

Buon divertimento

Tags: , , , , , ,

Il nano sconcio Nonostante gli unici commenti in questo blog siano stati di spam, ho deciso di eliminarli ugualmente.

Gli ip di provenienza degli spammer non erano, nel mio caso, più di quattro o cinque, così ho deciso di utilizzare la tecnica delle blacklist.

Malgrado assolva al proprio compito, non è sicuramente la tecnica migliore da utilizzare, visto che rischia di bloccare persone che con lo spam nulla hanno a che fare.
Ad esempio si rischia di bloccare ip dinamici, ip di proxy ecc. ecc.

Ad ogni modo se si vuole bloccare un insieme limitato di ip credo sia una tecnica che possa tornare utile.

Si può procedere in diversi modi, ad esempio utilizzando l’.htaccess, negando, o ridirezionando le connessioni al webserver da certi ip, come descritto qui, oppure più radicalmente, utilizzando iptables.

Nel mio caso ho preferito utilizzare iptables.

Il funzionamento è molto semplice, leggo dalla mia blacklist,
/etc/blacklister/blacklist.dat
e imposto per ogni ip due regole di iptables, la prima per loggare il tentativo di accesso, la seconda per bloccare.

Semplice ed efficace.

[c]
#!/bin/bash

# Blacklister
# ===============
#
# ATTENZIONE!
# Questo script non e’ pensato per essere
# usato su un firewall, ma solo su un webserver.
#
# A cosa serve
# ————
# Si prefigge di limitare lo spam in ingresso
# bloccando le connessioni degli
# IP acquisiti come spammer.
#
# Cosa fa
# ——-
# Legge il file blacklist.dat contenente un elenco di ip da
# bloccare uno per riga, e, tramite **iptables** logga
# come SPAM i tentativi di accesso e li blocca.

LOCALFILE=/etc/blacklister/blacklist.dat

IFACE=eth0

# IpTables
IPT=”/sbin/iptables”

# Chain
CHAIN=INPUT

start_firewall()
{
# Blacklist
blacklist=$(cat $LOCALFILE)

# Solo per debug
# set -x

# Carico i moduli necessari
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp

# Azzero le iptable prima di cominciare
stop_firewall

echo -n “Starting firewall:”
block_spam
echo ” done.”
}

block_spam()
{
# Per ogni IP LOG e DROP
for ip in $blacklist
do
$IPT -A $CHAIN -i $IFACE -s $ip -j LOG –log-prefix “SPAM ”
$IPT -A $CHAIN -i $IFACE -s $ip -j DROP
done

}

stop_firewall()
{
echo -n “Stopping firewall:”

$IPT –flush
$IPT -t nat –flush
$IPT -t mangle –flush

$IPT –policy INPUT ACCEPT
$IPT –policy OUTPUT ACCEPT

echo ” done.”
}

case $1 in
start)
start_firewall
;;
stop)
stop_firewall
;;
restart)
start_firewall
;;
*)
echo “Usage: $0 {start|stop|restart}”
exit 1
;;
esac
[/c]

Tags: , ,

Hard diskCapita di dover accedere da windows ad un disco linux, magari un disco esterno Usb.

Si puo’ fare con Ext2 Installable File System for Windows, in breve Ext2 IFS, un driver che permette l’accesso in lettura e scrittura a partizioni ext2 / ext3 da sistemi Windows NT4.0/2000/XP/2003.

L’installazione guidata permette di installare il driver e configurare la partizione ext2.

In più IFS Drives viene installato in pannello di controllo e permette di assegnare le lettere di unità ai volumi ext2.

E’ un po’ che lo uso e funziona bene.

Tags: , , ,

DebianCome annunciato sul sito ufficiale finalmente è stata rilasciata “etch”, la versione 4.0 di Debian.

Qualche numero.
La distribuzione comprende 6500 nuovi pacchetti, arrivando ad un totale di 18200 pacchetti disponibili.
Sono stati rimossi 3500 pacchetti per i quali non saranno piu’ disponibili aggiornamenti, mentre ne sono stati aggiornati 10700.

Etch passa da XFree86 a X.Org 7.1 che supporta più hardware e un migliore rilevamento automatico.

Si possono scoprire tutte le novità della nuova versione qui.

Tags: ,

Dato che WikidPad merita davvero, mi sono preso un pochino di tempo per descriverlo più degnamente della volta scorsa ;-).

Wikipad screenshotCome recita l’homepage:
wikidPad e’ un programma simil wiki per archiviare pensieri, idee, elenchi di cose da fare, contatti o qualsiasi altra cosa ti venga in mente di scriverci.

Del wiki prende in prestito la filosofia, ma perde il carattere di strumento collaborativo essendo essenzialmente un programma per la gestione di informazioni personali.

Le caratteristiche:Wikidpad views

  • Collegamento al volo alle WikiWord (mentre si digita)
  • Autocompletamento delle WikiWord
  • Navigazione semplice delle WikiWord
  • Collegamento di immagini
  • Stili nel testo del Wiki
  • History delle WikiWord
  • Attributi del documento Wiki
  • Viste dinamiche
  • Treeview
  • Elenco Todo
  • Ricerca incrementale
  • Ricerca e sostituzione
  • Salvataggio automatico
  • Export in HTML
  • Tutti i dati sono memorizzati in testo puro
  • URL e collegamento a files
  • Intuitive scorciatoie da tastiera
  • Include un completo Wiki di aiuto

E’ uno strumento molto potente e molto utile anche se con una certa curva di apprendimento.
Le caratteristiche sono numerose e le possibilità offerte veramente tante.

Wikidpad tags
Una caratteristica interessante è la possibilità di creare delle viste dinamiche sulle pagine di informazioni inserite in wikidpad.
Possiamo attribuire alle pagine dei tag (anche multilivello), ad esempio:

[dafare.acasa: Urgente]

Un’altra caratteristica interessante è la possibilità di eseguire del codice python ,

  • inline
  • incorporato nella pagina stessa
  • importato da altre pagine

Ancora, può essere esteso, sempre in python sfruttando opportuni files preposti alle user-extensions.

Opensource, in python, multipiattaforma, standalone, puoi portartelo pure appresso su penna usb!

Scaricabile da qui!
Davvero consigliato! 😉

Tags: , , , ,

« Older entries