diff options
Diffstat (limited to 'SW')
-rw-r--r-- | SW/document.en.rest.txt | 42 | ||||
-rw-r--r-- | SW/document.it.rest.txt | 42 | ||||
-rw-r--r-- | SW/kanatrain/document.en.rest.txt | 30 | ||||
-rw-r--r-- | SW/kanatrain/document.it.rest.txt | 29 | ||||
-rw-r--r-- | SW/kblayout/index/document.en.rest.txt | 59 | ||||
-rw-r--r-- | SW/kblayout/index/document.it.rest.txt | 59 |
6 files changed, 261 insertions, 0 deletions
diff --git a/SW/document.en.rest.txt b/SW/document.en.rest.txt new file mode 100644 index 0000000..8baf700 --- /dev/null +++ b/SW/document.en.rest.txt @@ -0,0 +1,42 @@ +My software production +====================== + +`Web Generator`_ + + The system I use to generate this site + +`NNetLib`_ + + A C++ library to build and use neural networks (especially + back-propagation) with arbitrary (acyclic) topology. + +`Keyboard Layout`_ + + Some Perl scripts to (try to) optimize keyboard layout (very + experimental...) + +`KanaTrain`_ + + A Perl script to memorize japanese phonetic characters. + +`Installing QTopia today`_ + + How to develop for `Zaurus`_ without getting mad. + +.. _`keyboard layout`: + index/ + +.. _`zaurus`: + zaurus/ + +.. _`installing qtopia today`: + qtopia-dev/ + +.. _`kanatrain`: + kanatrain/ + +.. _`web generator`: + sitemake/ + +.. _`nnetlib`: + http://sourceforge.net/projects/nnetlib/ diff --git a/SW/document.it.rest.txt b/SW/document.it.rest.txt new file mode 100644 index 0000000..a97ecd4 --- /dev/null +++ b/SW/document.it.rest.txt @@ -0,0 +1,42 @@ +La mia produzione software +========================== + +`Generatore Web`_ + + Il metodo con cui genero questo sito + +`NNetLib`_ + + Libreria C++ per la gestione di reti neurali (specialmente + back-propagation) con topologia arbitraria (purché aciclica) + +`Keyboard Layout`_ + + Un paio di programmi Perl per (cercare di) ottimizzare il layout di + tastiera (molto sperimentale...) + +`KanaTrain`_ + + Un programma Perl per memorizzare i caratteri fonetici giapponesi + +`Installare QTopia oggi`_ + + Come sviluppare per lo `Zaurus`_ senza diventare matti + +.. _`keyboard layout`: + index/ + +.. _`generatore web`: + sitemake/ + +.. _`installare qtopia oggi`: + qtopia-dev/ + +.. _`kanatrain`: + kanatrain/ + +.. _`zaurus`: + zaurus/ + +.. _`nnetlib`: + http://sourceforge.net/projects/nnetlib/ diff --git a/SW/kanatrain/document.en.rest.txt b/SW/kanatrain/document.en.rest.txt new file mode 100644 index 0000000..f348aca --- /dev/null +++ b/SW/kanatrain/document.en.rest.txt @@ -0,0 +1,30 @@ +KanaTrain +========= + +kanatrain.pl is a program to help memorize japanese phonetic characters, in +particular hiragana (平仮名). It requires a Perl interpreter, version 5.6.0 or +later (but it won't work with Perl 6) and a terminal capable of displaying +glyphs specified with UTF-8. At the moment I know of only two programs capable +of this: xterm as included in XFree86 4.x, and EMACS with `Mule-UCS`_ or +`oc-unicode`_ packages. + +The program contains two exercises: in the first one you're presented with a +hiragana and you should write its pronounciation. To avoid ambiguities is best +to write it after the *Kunrei* romanization (ち 'ti', し 'si', ぢ 'di') instead of +the more common *Hepburn* (ち 'chi', し 'shi', ぢ 'ji'). If you make a mistake the +correct pronounciation will be shown, along with the hiragana corresponding to +the one you gave (if any). + +In the second exercise you're presented with a pronunciation (written after the +*Kunrei* system) and five different hiragana characters, where only one is the +right one. You should write the number relative to the right one. If you make a +mistake the correct hiragana will be shown, along with the pronunication of the +one you chose. + +To end each exercise just give an empty answer. + +.. _`oc-unicode`: + http://www.cs.ruu.nl/~otfried/Mule/ + +.. _`mule-ucs`: + ftp://ftp.m17n.org/pub/mule/Mule-UCS/ diff --git a/SW/kanatrain/document.it.rest.txt b/SW/kanatrain/document.it.rest.txt new file mode 100644 index 0000000..572b6e9 --- /dev/null +++ b/SW/kanatrain/document.it.rest.txt @@ -0,0 +1,29 @@ +KanaTrain +========= + +kanatrain.pl è un programma per aiutare a memorizzare i caratteri fonetici +giapponesi, in particolare i hiragana (平仮名). Richiede un interprete Perl +versione 5.6.0 o successive (ma non funzionerà col Perl 6) e un terminale +capace di visualizzare caratteri in UTF-8. Al momento conosco solo due +programmi in grado di farlo: xterm di XFree86 4.x, e EMACS con il pacchetto +`Mule-UCS`_ o `oc-unicode`_ . + +Il programma prevede due esercizi: nel primo viene mostrato un hiragana e +bisogna inserirne la pronuncia. Per problemi di ambiguità è preferibile +inserirla secondo la romanizazione *Kunrei* (ち 'ti', し 'si', ぢ 'di') piuttosto +che la più comune *Hepburn* (ち 'chi', し 'shi', ぢ 'ji'). Quando si sbaglia viene +mostrata la pronuncia corretta, e lo hiragana corrispondente alla pronuncia +inserita (se esiste). + +Nel secondo esercizio viene proposta una pronuncia (scritta secondo il sistema +*Kunrei*) e cinque scelte di hiragana diversi, di cui solo uno è giusto. +Bisogna inserire il numero corrispondente a quello giusto. Se si sbaglia, viene +mostrato lo hiragana giusto e la pronuncia di quello scelto. + +Per terminare ciascun esercizio basta dare una risposta vuota. + +.. _`oc-unicode`: + http://www.cs.ruu.nl/~otfried/Mule/ + +.. _`mule-ucs`: + ftp://ftp.m17n.org/pub/mule/Mule-UCS/ diff --git a/SW/kblayout/index/document.en.rest.txt b/SW/kblayout/index/document.en.rest.txt new file mode 100644 index 0000000..e56d458 --- /dev/null +++ b/SW/kblayout/index/document.en.rest.txt @@ -0,0 +1,59 @@ +Optimize keyboard layout +======================== + +I'm sure you, too, know the history of the QWERTY keyboard, that was designed +to avoid that too fast typists jammed mechanical typewriters. You would know +also that the Dvorak layout is cosidered by many to be faster and more +effective. + +When I tried to learn to use the Dvorak keyboard, a friend of mine asked me Why +don't you write a program to measure your keyboard usage, and then obtain a +personalized layout?. In a moment of crazyness, I decided to do just that. + +The first program is freq.pl, which reads the files given on the command line +and produces a probability matrix, writing it into the file whose name is in +the $MATRFN variable, default /tmp/freq.matr. Actually it sees the text as a +Markov process over the characters with memory 1, and extracts the transition +matrix. Note: the elements are frequencies, not probabilities. The optional +normalization is left as exercise to the reader. + +The second program is freqdump.pl, which is probably useless. I've written it +(three or four different versions) to have an idea about the frequencies. Give +it a look if you want. + +The most useful program (I hope) is optkeyb.pl, which starting from the matrix +(as usual, filename hardcoded) and the QWERTY layout searches by stochastic +gradient descent a better layout. In other words, it calculates a value for the +layout (sum over the pairs of keys of their distance times the frequency of +that pair), then tries to exchange two random keys looking for a better result. +To avoid local minima (there are a lot) it starts by randomly exchanging +$PRE_SHUFFLE pairs, and if it doesn't find a better layout for $STARVATION +tries it starts again, after having written the locally optimum layout at the +end of the file /tmp/layouts. It uses curses and the corresponding Perl module +Curses.pm. + +To avoid bad things, like numbers scattered between other keys, it's possible +to set into the %locked hash the keys that must not be moved. + +To give yoy an idea of the results, after some hours of computation the best +layout was: + +:: + + + ` 1 2 3 4 5 6 7 8 9 0 ; = + - x w h t s a l b y ' j q + z \ [ c i e r u p . , + k v f d n o m g ] / + +.. + + + +Bear in mind I use a IBM U.S. keyboard, and where the q is, there's usally the +backslash/pipe key, which is larger than the others, so I should have locked +it... + +To have an idea of the optimization, the value relative to the QWERTY layout is +10.190.280, for the one above is 6.797.370, meaning a 34% reduction in the +space travelled by the fingers during writing. diff --git a/SW/kblayout/index/document.it.rest.txt b/SW/kblayout/index/document.it.rest.txt new file mode 100644 index 0000000..f710e29 --- /dev/null +++ b/SW/kblayout/index/document.it.rest.txt @@ -0,0 +1,59 @@ +Migliorare il layout di tastiera +================================ + +Conoscerete anche voi la storia della tastiera QWERTY, che è stata inventata +per evitare che i dattilografi troppo veloci facessero inceppare i martelletti +delle macchine per scrivere meccaniche. Saprete anche che il layout Dvorak è da +molti considerato più efficace e veloce. + +Quando provai a imparare a usare la tastiera Dvorak, un mio amico mi disse +pressappoco Perché non scrivi un programma che misuri l'uso che fai tu della +tastiera, e ricavi un layout personalizzato?. In un momento di follia, ho +deciso di farlo davvero. + +Il primo programma è freq.pl, che legge i file dati a riga di comando e calcola +una matrice di probabilità (nel file il cui nome è nella variabile $MATRFN, al +momento /tmp/freq.matr). In effetti tratta il testo come un processo di Markov +sui caratteri a memoria 1, e ricava la matrice di transizione. Nota: gli +elementi sono frequenze, non probabilità. L'eventuale normalizzazione è +lasciata come esercizio al lettore. + +Il secondo programma è freqdump.pl, che probabilmente non serve a niente. L'ho +scritto (tre o quattro versioni diverse) per avere un'idea di come fossero le +frequenze. Dateci un'occhiata se volete. + +Il programma più utile (spero) è optkeyb.pl, che parte dalla matrice (al +solito, nome di file hardcoded) e dal layout QWERTY cercando per discesa di +gradiente stocastica un layout migliore. In parole povere, calcola un valore +per il layout (somma sulle coppie di tasti della distanza per la frequenza), +poi prova a scambiare due tasti a caso e vedere se il risultato è migliore. Per +aggirare i minimi locali (e ce ne sono tanti) all'inzio scambia a caso +$PRE_SHUFFLE volte, e se per $STARVATION tentativi non ha trovato un +miglioramento ricomincia, dopo aver appeso il layout localmente ottimo al file +/tmp/layouts. Usa le curses e il corrispondente modulo Perl Curses.pm. + +Per evitare cose brutte (i.e. i numeri a spasso) nell'hash %locked è possibile +impostare i tasti che non si vogliono spostare. + +Per dare un'idea dei risultati, dopo qualche ora di calcoli il miglior layout +era: + +:: + + + ` 1 2 3 4 5 6 7 8 9 0 ; = + - x w h t s a l b y ' j q + z \ [ c i e r u p . , + k v f d n o m g ] / + +.. + + + +Tenete conto che io uso una tastiera IBM U.S., e dove è finita la q c'era il +tasto pipe/backslash (che è più largo degli altri, e quindi avrei dovuto +bloccarlo...) + +Per dare un'idea del miglioramento, il valore calcolato per la QWERTY è +10.190.280, per quella riportata sopra è 6.797.370, che si traduce in una +riduzione del 34% del chilometraggio delle dita durante la battitura. |