Images, snippets, snapshots, math

View Gabriele Lami's profile on LinkedIn

domenica 19 luglio 2009

Mandelbrot in Rebol

mandelbrot in rebol
And this is my interpretation of Mandelbrot fractal using Rebol:

This language allow to write a gui using few rows of code.
There is still a problem with zoom functionality ( I hope to fix it soon ).

You can see also my ruby mandelbrot .

domenica 12 luglio 2009

Latent Semantic Indexing ( LSI )

LSI is a simple but powerful indexing and retrieval method that is able to identify patterns in the relationships between the terms and concepts contained in a text corpus.
The mathematics of LSI easy to understand cause is based entirely on vector and matrix algebra.
I'll post soon some code ( if someone needs code, my mail is always open ).
A good link to start your journey is: lsi.research.telcordia.com/lsi/LSIpapers.html .

sabato 11 luglio 2009

Peano in Js

peano javascript


You Can find Here 'peano', my interpretation of Peano Curve in jQuery ( javascript ) using canvas ( if you insist to use iexplorer you must download also exCanvas.pack.js to see something ).
To see this image you need only the last jQuery js library and a browser...
Ah, you also need to rename the file with 'HTML' as extension.

Metamorphosis ( Music animation )

Follow this link...

http://vimeo.com/1747316?pg=embed&sec=1747316

lunedì 6 luglio 2009

context-free art

A little piece of context-free art:

circles.cfdg
context-free artstartshape trails
background {b -1}
rule trail {
trail{
sat 0.001
a -0.001
r 0.4
y 0.5
s 0.999y 0.5
}
SQUARE{s 1}
}
rule trail 0.001 {
trail{flip 90} ring{x 5}
}
rule trails {
140*{r 120}trail{b 1 sat 0 h 100}
}
rule ring {
120*{r 5}SQUARE{s 4 0.5 y 6 h 100}
}

Rebol Search File

Another little Rebol program:

rebTest.r

REBOL [Title: "Ricerca"]
mainWin: layout [
banner green "Ricerca Parola" box brick 580x2
text "Parola da cercare"
infi1: field infi2: field ""
text "nome file"
selFile: text-list data read %. [
infi2/data: value
infi2/text: value
show infi2
]

button "Ricerca" [
fil1: to-file infi2/data
text: read fil1
outOne: copy ""
while [ text: find text infi1/data ] [
formattedStuff: reduce [ " ( " index? text " ) " copy/part text 10 ]
append outOne "^/ ( indice ) riga: "
append outOne form formattedStuff
text: next text
]
tuno/text: form outOne show tuno
]
at 260x70
tuno: area 340x300 across
text "Risultato"
]
windowHelp: layout [
backcolor linen
h2 "Help Window"
text 300 { Inserisci la parola da ricercare e il nome del file...
}
button "Chiudimi" [ unview/only windowHelp ]
]

windowHelp/offset: mainWin/offset + (mainWin/size * 1x0) + 10x0
view/new mainWin
view/new windowHelp
do-events

'Text Categorization with SVM

A really nice pdf about 'Text Categorization with Support Vector Machines' ( from University of Dortmund ) :

http://www.cs.cornell.edu/People/tj/publications/joachims_97b.pdf

I'll try to post soon some code in Python about this problem...

My first time in Rebol and numbers


Rebol is a fantastic language!
You can try this code in the Rebol/view Console:
numbers.r


REBOL [Title: "Numbers Test"]
ena: 121
positions: []
dimPal: 3

unitar: func [ ele enne ][ either (( (ele // enne) == 1 ) or (( ele // enne) == (enne - 1)))[ 1 ] ["-"] ]

evaluateUni: func [ en ] [
for j 1 en 1[ st: copy ""
for i 1 en 1[
append st unitar i * j en
sr: square-root en
if ( unitar i * j en ) == 1 [ append positions ( as-pair i j ) * 350 / en + 23x23 ]
]
]
positions
]
evaluateUni ena

refre: does[
positions: copy []
evaluateUni ena
pis: copy []
posi: copy positions
foreach p posi[ insert tail pis reduce[ 'fill-pen 160.209.215.100 'circle p dimPal ] ]
out: form ( length? positions ) / 2 == ( ena - 1 )
insert tail pis reduce [ 'text 230x5 join "numero primo: " out ]
scrn/effect/draw: copy []
append scrn/effect/draw pis
show scrn
]

refreNoEval: does[
pis: copy []
posi: copy positions
foreach p posi[ insert tail pis reduce[ 'fill-pen 160.209.215.100 'circle p dimPal ] ]
out: form ( length? positions ) / 2 == ( ena - 1 )
insert tail pis reduce [ 'text 230x5 join "numero primo: " out ]
scrn/effect/draw: copy []
append scrn/effect/draw pis
show scrn
]
lay: layout [

scrn: box 400x400 black effect [
draw [ text "unit" ]
rotate 50
gradmul 180.180.210 180.60.255
]
slider 200x16 ena / 300 [
ena: to-integer value * 300
inpNum/data: form ena
inpNum/text: form ena
show inpNum
refre
]
inpNum: field form ena [
print to-integer inpNum/text
ena: to-integer inpNum/text
]
at 330x460
btn "Change" [
refre
]
slider 100x15 dimPal / 10 [
dimPal: to-integer value * 10
refreNoEval
]
]

view lay