Un quiz di Annarita

Header

Vi voglio raccontare di una mia disavventura programmatica multipla. Però non dovete ridere troppo di me, anche perché comunque c’è l’happy end finale.

Sto studiando mx, ahemmm Mathics e quando ho visto il post della prof. Annarita Ruberto: Trova Il Numero Misterioso mi son detto: “ecco l’occasione per testare la mia conoscenza di mx!“. Disastro, devo ancora impratichirmi, parecchio.

Ma, quando il gioco etc… perché non provare con Python? OK, disastro anche qui.
Perché non avevo capito il senso del testo. E cominciavo a disperarmi. Anzi panico proprio. Non sono più quello di una volta! OK, basta frasi fatte e commiserazioni. Ieri Annarita ha pubblicato (con un giorno di ritardo su quanto aveva minacciato) la soluzione, spiegando i passaggi in modo che capissi anch’io (sigh!): Trova Il Numero Misterioso: La Soluzione E Altre Curiosità.

Insomma questo è il problema:

1. la somma delle cifre di x è un numero y, che, moltiplicato per il numero ottenuto invertendo le sue cifre, dà come prodotto x.
2. Trovando i fattori primi del numero ottenuto invertendo le cifre di x, poi calcolando la semisomma dei quadrati di questi fattori primi, e, infine, rimuovendo la cifra 0 dal nuovo numero, si otterrà il numero x.

E questa la soluzione:

Il numero 1729 soddisfa la condizione 1 del puzzle perché:
la somma delle sue cifre è 19 e 19 ∙ 91 = 1729.
1729 soddisfa anche la condizione 2 perché:
9271 = 73 ∙ 127
e
(73^2 + 127^2) / 2 = 10729. Rimuovendo lo zero da questo numero, si ottiene proprio 1729.

Ah! ma allora, presto, anzi prima di subito, con Python e in futuro (forse) con mx Mathics!

numbers
Solo un paio di osservazioni prima del listato:

  • C’è bisogno di trovare i fattori di un numero, ho trovato una soluzione che mi piace sul solito Stack Overflow: Prime factorization – list. Non l’ho analizzata, funziona, forse in futuro… L’autore ha un blog interessante, su argomenti affini, avendo tempo…;
  • Visto che continuavo a ripetere sempre le stesse istruzioni ho deciso di trasformarle in funzioni, anche quando sono cortissime. Tutto in previsione della futura versione mx (davvero conto di farla, non subito, devo impratichirmi);
  • Queste funzioni sono lispiche, potrebbero essere chiamate in sequenza come usano i funzionali; non l’ho fatto per tenere il codice leggibile (e inserire una marea di print in fase di debug);
  • Inoltre mi sono convertito alla setta degli utilizzatori della list comprehension: è leggibile, comoda, si risparmia una riga. Peggio per quei linguaggi che non ce l’hanno;
  • Per adesso è un abbozzo ma queste funzioni le ho raggruppate in un file che forse evolverà in modulo come si deve.

OK, ecco il codice, addirittura commentato, cosa rara per me.

Il modulo con le funzioni utilizzate:

# -*- coding: utf-8 -*-

# jutils: qui dentro ci metto le funzioni che mi trovo
#         a ricopiare sovente; chissà se funziona

def strlist(st):
    ''' ritorna la lista dei caratteri della stringa st'''
    return list(st)

def ls2str(ls):
    ''' ritorna la stinga unione della lista ls'''
    st = ''
    return st.join(ls)

def lsstr2dig(ls):
    ''' ritorna le cifre della stringa ls'''
    return [int(c) for c in ls]

def strpopc(st, c):
    ''' se la stringa st contiene il carattere
        c questo viene eliminato; una volta sola
    '''
    p = st.find(c)
    if p >= 0:
        st = st[:p] + st[p+1:]
    return st

def factors(n):
    ''' copiato da qui:
        http://stackoverflow.com/questions/ +++
             16996217/prime-factorization-list
    '''
    gaps = [1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6]
    length, cycle = 11, 3
    f, fs, next = 2, [], 0
    while f * f <= n:
        while n % f == 0:
            fs.append(f)
            n /= f
        f += gaps[next]
        next += 1
        if next == length:
            next = cycle
    if n > 1: fs.append(n)
    return fs

Lo script:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from jutils import *

def passo_1(numero):
    ls = strlist(str(numero)) # lista di caratteri
    n = lsstr2dig(ls)         # lista di cifre
    somma = sum(n)            # somma delle cifre
    ls = strlist(str(somma)) # idem per la somma
    ls.reverse()
    rst = ls2str(ls)
    r = int(rst)              # e quindi in numero
    return (somma * r) == numero

def passo_2(numero):
    ls = strlist(str(numero)) # lista di caratteri
    ls.reverse()              # inverto
    rinv = ls2str(ls)         # trasformo la lista in stringa
    ninv = int(rinv)          # questo è il numero inverso
    fattori = factors(ninv)
    lquad = [i**2 for i in fattori] # lista dei quadrati dei fattori
    nquad = sum(lquad) / 2
    strquad = str(nquad)
    strquad = strpopc(strquad, '0')
    cont = int(strquad)
    return cont == numero

#main
trovato = False
numero = 999
numerofinale = 9999
while not trovato:
    numero += 1
    ok1 = passo_1(numero)
    if numero == numerofinale:
        print "Mi arrendo"
        exit()
    if ok1:
        trovato = passo_2(numero)
        if trovato:
            print "Trovato!", numero

arquiz

Visto nel Web – 126

Chissà se davvero sarà come spero, vedi foto futura qui sotto.
Intanto ecco cosa ho visto nel Web.

votare

Linus Torvalds: Obey the penguin!
::: Google+

Evil social networks
::: Charlie’s Diary

YouTube, Google+ and LinkedIn Drive The Most Engaged Social Referrals
::: Shareaholic

btf

Microsoft Is Suddenly a New Company. But Is It Too Late?
::: wired

Not Just Apple: GnuTLS Bug Means Security Flaw For Major Linux Distros
::: Slashdot

What if.. Naval Ravikant e il Quinto Protocollo
::: Luca De Biase

saldatore

Internet in Europa: l’Italia è ancora in fondo alla classifica
::: Il Fatto Quotidiano

Fifty Years Ago IBM ‘Bet the Company’ On the 360 Series Mainframe
::: Slashdot

La Corte Ue invalida la direttiva sulla conservazione dati
::: Ansa ::: Slashdot ::: GigaOM

snowden

newLISP: Stable release 10.6.0 now has a native expansion macro function and adds many other improvements in several areas
magari riprendo a parlarne (forse adesso posso) :roll:
::: Twitter

Dissecting the Reduce Function
una delle mie pythoniste preferite; anche se…
::: Amy Hanlon

U.S. knocks plans for European communication network
::: Reuters

Bk2iru-CEAALIFg

Windows XP va in pensione – rischi e soluzioni
::: HackerNetwork

Why the Web Needs Perfect Forward Secrecy More Than Ever
::: Electronic Frontier Foundation

Heartbleed
“Catastrophic” is the right word. On the scale of 1 to 10, this is an 11
::: Bruce Schneier ::: xkcd

993812_10152200998150396_734404617_n

How #Java and #Groovy play nice together
::: Asciinema

Xv6
completamente fuori tema con il resto ma bello pensare che ci sono anche queste cose; poi chissà…
::: Embedded in Academia

Born To RUN: Dartmouth Throwing BASIC a 50th B-Day Party
::: Slashdot

Bk0pXMuCMAA6Hip

Unpythonic Python
LOL, mi sa ch lo RSSisco subito
::: skien.cc

MIT Is Destroying The Cost Of Robotics By Building Robots Out Of Paper
::: Business Insider

Tassa sulle memorie, Siae, Corte di giustizia: una novità importante
::: Luca De Biase

comelapascale

Mocking functions in Go
::: Nate Finch’s

ICEcoder – Browser Code Editor Awesomeness
::: indiegogo

The decline of the mobile web
::: chris dixon

85joy

MA Gov. Wants To Ban Non-Competes; Will It Matter?
::: Slashdot

Come difendersi da attacchi malware e script injection
parole sante! serviranno? dubbi :roll:
::: evilripper

Educatori chiedono di essere educati
::: Luca De Biase

lego

NSA Allegedly Exploited Heartbleed
Loro dicono di no ma ci credete?
::: Slashdot

Probabilities and the C++ standard
::: Daniel Lemire

10245335_446259008810547_6058443298294866359_n

Mathics – 3

0

Mathics sta diventando un’ossessione per me, non mi lascia dormire la notte, devo finire presto questo esame di cosa può fare :roll:
E devo impratichirmi della sua sintassi inusuale. Per esempio le parentesi, hanno quattro significati diversi:


(term)      tonde per raggruppare
f[x]        quadre per gli argomenti delle funzioni
{a, b, c}   graffe per le liste
v[[i]]      quadre doppie per accedere all'elemento
            si può usare Part[v, i]

1

Se si vogliono scrivere più istruzioni nella stessa riga si separano con punto-virgola. Un punto-virgola finale elimina l’eco usuale dell’ultima istruzione.

Esempio di definizione e uso delle liste:

2

OK? Notare che l’operatore ^ a me piace senza spazio prima ma non è necessario. Si possono usare i soliti operatori ma le liste devono avere lo stesso numero di elementi. % restituisce quello che ci si aspetta e l’ultima espressione usa Exp (esponenziale) // e N non ancora definiti (prossimamente…).

3

Niente di nuovo, o sì? esistono i numeri razionali e le espressioni, a è un simbolo.

4

D è la funzione derivata, /. e -> li abbiamo visti la puntata scorsa (e sono in tabella espressioni (a breve la pubblico)).

Si possono usare le liste per costruire tabelle di valori, per esempio valutando un’espressione per una sequenza di valori:

5

Product si capisce quello che fa anche se non è ancora stato definito (prossimamente, forse; o forse no, chissà…).

6

TableForm visualizza la tabella in forma tabulare (lo dice il nome, no?).

Creare xi + yj con i in[1..3] e j in [1..2]

7

Una lista con lo stesso simbolo ripetuto 4 volte:

8

Una tabella 3 x 2:

9

Un’ultima cosa, accedere a un elemento di una lista:

10

Finora mx (Mathics) è perfettamente compatibile con wm (Mathematica). Ma sono solo all’inizio, chissà :roll:

Mathics – 2

banner

m0

Nella trasformazione da x + x a 2 x il simbolo x può essere qualunque cosa; per valutare l’espressione assegnando a x il valore 4 si usa la regola di trasformazione -> da leggersi come “x goes to” che personalmente trovo orrenda e propongo “x diventa” (ho spesso difficoltà con le traduzioni).
Per applicarla si usa /. l’operatore di sostituzione (replacement operator).

Nota per me (e forse non solo): mx (nella puntata precedente abbiamo convenuto che mx sta per Mathics, anzi, vedi sotto) usa spesso operatori bizzarri come questo, manco fosse APL/J, ne faccio una tabella, forse la pubblicherò.

 
operatore   nome it.        nome orig.      esempio

->          diventa         goes to         2 x /. x -> 4
/.          sostituzione    replacement     2 x /. x -> 4
(da continuare).

Uh! già che ci sono: scrivere ogni volta mathics -q è dispendioso e poi si rischiano errori di battitura, prima mi è venuto fuori “mathisc -q“; si potrebbe fare un alias:

m1

Per renderlo disponibile in ogni sessione (cioè in ogni finestra del terminale) occorre aggiungerlo in uno dei file di configurazione. Anzi ce n’è uno ad hoc, proprio per quello: ~/.bash_aliases. Sarà attivo dal prossimo login, o da subito eseguendo source ~/.bashrc.

Tornando a mx, l’operatore -> può riferirsi a qualunque cosa, sensata o meno:

m2

L’operatore /. (sostituzione) applica la sostituzione per l’espressione ma alle volte può essere utile che la sostituzione sia per sempre (cioè per tutta la sessione). In questo caso si procede come al solito (per i programmatori):

m3

OK? x vale 3 finché uso l’operatore =. (clear, pulisci). Adesso lo aggiungo alla mia tabella; e notare che i due caratteri formano l’operatore, niente spazi.

Dai, per oggi basta così :roll: ma prossimamente… :shock:
Sì, WordPress non mi fa più le faccine animate :evil:

Heartbleed

hb
È l’argomento del giorno, tutti ne parlano, non è che sia proprio facile capire cos’è. E qualcuno ha chiesto anche a me che al riguardo sono über-niubbo-plus.
Ma poi –il bello del Web– ho trovato un post di MarkCC che mi sembra ottimo.

Questo: The Heartbleed Bug.

E, sì, panico, anzi PANICO!!!

Mathics – 1

paperi

Mathics mi piace. Non so se servirà a qualcosa ma voglio approfondirne un po’ la conoscenza. E fare il tutto bloggando, anche perché non sto raccontando nient’altro (sarebbero solo delusioni e lamentele :???: ). Dopo il post introduttivo Mathics – intro mi sono reso conto che la documentazione di Mathics non è sufficiente.

Il .PDF del Mathics Team è ottimo, ma da solo non basta. È lo stesso problema che capita se uno usa solo la documentazione ufficiale di Unix per imparare il S.O. (OK, roba di quando ero giovane, oggi tutto diverso e si può farne a meno, tranquillamente).

Per fortuna c’è Mathematica (d’ora in poi wm) :cool: cui Mathics (d’ora in poi mx) s’ispira. E sul sito di Mathematica c’è il .PDF Core Language, liberamente scaricabile.

C’è parecchia altra roba scaricabile, se funziona anche con Mathics poi, forse… prossimamente… :cool:

Il Core Language (d’ora in poi CL) è un vero e proprio corso, come fare cosa con esempi. Ecco, provo a seguirlo, per vedere se e quanto Mathics risponde.

Il risultato delle elaborazioni precedenti sono memorizzate in uno stack (pila) richiamabili:

m0

OK! l’ultimo risultato è memorizzato in %, il precedente in %% e così via (fino a 100, ridefinibile). È possibile accedere anche con i numeri, %2 si riferisce a Out[2], anzi uno potrebbe anche usare Out[2], scomodissimo. Inoltre vale solo (ovviamente) per la modalità interattiva.

m1-1

È possibile definire variabili, nel solito modo. Gli oggetti predefiniti iniziano con una maiuscola, come Pi; N è una funzione (numeric), permette di definire la precisione, come nel caso illustrato. Qui la prima variazione tra Mathics e Mathematica: il valore di pi è esatto, quello di pi2 no:

wm: 3.141592653589793238462643383279502884197
mx: 3.141592653589793238462643383279502884197

wm: 9.86960440108935861883449099987615113531
mx: 9.86960440108935862
mx: 9.869604401089358620274838429509145498741 con N[pi^2, 40]

da tenerne conto quando si pretende di esagerare con la precisione. Anche perché volendo c’è SciPy/Numpy per queste cose.

Qui il manuale di wm ha una frase che mi ha fatto fare un salto sulla sedia la prima volta che l’ho letto. Se assegni un valore a una variabile questa assegnazione sarà permanente, fare attenzione e rimuovere l’assegnazione (come si dice da noi clear?). Poi ho capito che dovevo leggere tutta la frase: “The value will, of course, disappear if you start a whole new Mathematica session”. Il manuale è fatto per niubbi, bene così, basta saperlo.

Un’altra cosa (già usata negli esempi precedenti): x e x2 sono due nomi di variabili possibili; 2x invece vale 2 * x, come al solito nella matematica. Similmente x y risulta come x * y mentre xy è una variabile. E x ^ 2 y significa (x ^ 2) y e non  x ^ (2 y).

OK? Sì ma se continui di questo passo per arrivare a p.364 quanto ci mettiamo?

m2

No, dai, dalla prossima puntata faccio sul serio. Anche perché se si vuole c’è il manuale a disposizione. E chi è interessato se lo starà già procurando, o l’ha già fatto :roll:

Quando cerchi un’immagine con Google e lui ti propone le tue come ti devi comportare?

Visto nel Web – 125

The end is nigh, martedì arrivano i Maya l’XPOcalypse. Ma intanto ecco cosa ho visto nel Web.

376415_10150990739824516_694663875_n

Software Upgrade At 655 Million Kilometers
::: Slashdot

Why I am Scared of the Oculus Deal
::: AAAAAAHHHHHH

China Prosecuted Internet Policeman In Paid Deletion Cases
::: Slashdot

cat

Re: Facebook acquires Oculus – A letter of concern
::: Medium

Research tools: Jump off the page
Researchers are learning to embrace online lab notebooks, but not without growing pains
::: Nature

Git Source Code Review: Overview
::: Fabien Sanglard’s

BjzAqCiIYAAVCO7

WSJ: Prepare To Hang Up the Phone — Forever
::: Slashdot

The revolution will be tweeted
::: Twitter ::: HootSource

The Day Microsoft Gave Up World Domination and Settled For Relevance
::: Waffle

missed_calls

Amazing approximation to e
non so se sono OT ma ;-)
::: The Endeavour

How Twitter Has Changed Over the Years in 12 Charts
::: The Atlantic

DistroWatch Weekly, Issue 552, 31 March 2014
ehi! c’è Lubit :-)
::: DistroWatch

Bj0CuJxIgAAYxis

Scientific Python in the Browser: it’s coming!
::: Cyrille Rossant

Bootstrapping a simple compiler from nothing
incredibile! Edmund è un matematico esperantista tosto, assay :roll:
::: Virgin Media

A diagram to help you decide whether or not you should deploy on a Friday at 5pm
::: Twitter

tomorow

How will the end of Windows XP impact your organization?
anche Peter Norton vi dice che siete fuori moda
::: Symantec

Con Linux Puoi… dire addio a Windows XP!
::: Con Linux Puoi

Canonical Shutting Down Ubuntu One File Services
::: Slashdot

1458596_816926291668934_1196778299_n

I nemici della rete hanno imparato dalla guerriglia: usano a loro favore la complessità facendo confusione
::: Luca De Biase

Microsoft: Start Menu Returns, Windows Free For Small Device OEMs, Cortana Beta
::: Slashdot

Vint Cerf: CS Programs Must Change To Adapt To Internet of Things
::: Slashdot

BkGm2GgIUAEnYU0

Rust 0.10 Released
::: Mozilla

Brendan Eich Steps Down As Mozilla CEO
::: Slashdot

How The Rise Of The “R” Computer Language Is Bringing Open Source To Science
::: Co.Labs

846770298

Introducing Pyston: an upcoming, JIT-based Python implementation
Pyston is still in its infancy and right now only supports a minimal subset of the Python language
::: Dropbox Tech Blog

Facebook Messenger introduce le chiamate gratis
::: Chimera Revo

Oxford Internet Institute Creates Internet “Tube” Map
::: Slashdot

semplificazioni

Build Your Own Lisp
Learn C and build your own programming language in under 1000 lines of code!
::: Build Your Own Lisp

Fotografie da #SOD14, tra dati e tagliatelle
::: Bl@ster’s

Guida alla migrazione da Windows XP a Linux
::: XPocalypse

red dot

Illustrating the Socioeconomic Divide With iOS and Android
::: Slashdot

UK Government Pays Microsoft £5.5M For Extended Support of Windows XP
::: Slashdot

Modern C++: What You Need to Know
sentito solo 23 per minuti che altrimenti mi convince troppo
::: Channel 9

comp

Python e GTK+ parte 1: installazione e documentazione utile
un blog nuovissimo, da visitare, salutare, valutare i poi seguire, nèh!
::: Appunti tecnici

Why No One Trusts Facebook To Power the Future
::: Slashdot

Switch_To_linux

Mathics – intro

jan

Mathics —to be pronounced like “Mathematics” without the “emat”— is a general-purpose computer algebra system (CAS). It is meant to be a free, light-weight alternative to Mathematica®. It is free both as in “free beer” and as in “freedom”.

Dice Jan Pöschko, l’autore principale ma ci sono contributi di parecchi altri geeks.

Però, aspetta un attimo:

I organized my move to the U.S., where I finally landed and already began working for Wolfram Research. I am working as a Kernel Developer on Mathematica Online (or whatever it will be called once it gets released to the public). This is quite related to my previous work on Mathics.

Now, the sad news is that I have to stop actively coding on Mathics as a consequence. However, I see it in really good hands with Angus having already taken the lead recently, and he will certainly continue to keep Mathics flourish.

Atz! Angus Griffith, meglio noto come sn6uv, mmmh! :roll:

Adesso devo dire subito una cosa: è una curiosità mia, non legata a qualcosa di particolre. E scrivo questo post e i prossimi sullo stesso argomento mentre leggo il manuale per la prima volta (OK, seconda, ma prima attentamente, facendo gli esecizi).

Come e dove andrà a parare? Non lo so. È un gioco. E fin da subito: nessuna competizione con Mathematica di Wolfram, c’è scritto all’inizio del manuale. Sì perché Mathics è scritto in Python che, si sa, non è velocissimo (eufemismo).

Installato seguendo le indicazioni del sito, parecchi MB, compresi nuovi moduli Python.

E, prima di subito:

m0

Superato lo shock della sintassi diversa da quella abituale (io sono abbastanza adattabile, almeno dal confronto con miei conoscenti sono portato a crederlo) ecco una prima verifica, π:

m2

e e, quella di Euler(o):

m3

Ma come fai a verificare se è giusto fino alla fine, mica li sai a memoria (vero Giorgio?)?

Allora per π bastano i tools di Linux:

pi 1000 > pi.pi
echo 'N[Pi, 1000]'|mathics -q > pi.mx
meld pi.mx pi.pi

e risultano uguali tranne l’ultima cifra, per l’arrotondamento.

Per e non è così facile, qui c’è un espansione per le prime 10000 cifre. Sono comuni a Mathics solo le prime 160 (circa). Panico?
Nope! c’è Mathematica, quella di Wolfram, restituisce un immagine. Stampata e controllata per le prime 1000 è OK.

Insomma sembra che ci si possa fidare. Ci sono altri numeri interessanti, √(2), Φφ, 8 (Terry Pratchett).
Prossimamente…, forse :roll:

Octave, Matlab e Sympy

confusione

Sapete quando un post proprio non viene. Come questo, in corso di stesura da un paio di settimane e proprio non funziona. Tanto che avevo pernato di mettere grande confusione sotto il cielo ma poi perderei la stima di quelli che continuano a leggermi e pensano che sia una persona seria.
Ieri mi sono fissato una scadenza (oggi, finisce il mese e può sempre essere considerato un pre-pesce d’aprile). Poi, Murphy insegna, ieri sono stato preso da problemi audio con Windows (nota per quelli come me: se non hi le casse non ci provare, non ottieni quello che vuoi; e poi con il portatilino piccolo-piccolo, OK).

Il problema è questo: Octave può essere utilizzato al posto di Matlab?
Perché Matlab è oneroso e spesso è comodo avere PC intercambiabili, in un ambiente di lavoro si lavora in squadra e tutti (quelli della squadra) devono essere intercambiabili (quasi, anzi no, discorso lungo ma non lo faccio, potrei passare per sembrare razzista).
Qualche tempo fa ho scoperto Octave e ho anche scritto che mi piace, è OK :roll:
Ne sono ancora convinto, se si usa per cose che è capace di fare (per esempio le matrici). Ma non fa tutto quello che fa Matlab.
Dovete sapere che sono anche abbastanza testardo e alle volte mi lancio in imprese senza senso, anche perché essendo io che avevo proposto Octave ne ero considerato non solo responsabile ma anche esperto.
E mi sono dovuto leggere il manuale, tutto.
E ho cercato sul Web, googlando e stackoverflando e niente.

Poi, la paglia che spezza la schiena al cammello goccia che fa traboccare il vaso: un paio di post introduttivi di un blog che consiglio (me l’ha segnalato Massimo), questi:

Non è quello che stavo tentando di fare ma è stato comunque risolutivo: una cosa semplicissima con Matlab ma impossibile con Octave.

E tra i consigli di Stack Overflow salta fuori (oltre a altri casi in cui Octave, almeno attualmente, non funziona) che ci sono alternative, per esempio Sympy, che oltretutto è Python. Non che sia semplicissimo, e i manuali sono impegnativi, ma c’è.

Insomma: Marx ricorda che a Birmingham si costruivano cinquecento tipi di martelli diversi, diversamente configurati a seconda della particolarità dell’operazione a cui essi erano adibiti.

    confusione--

o in Python:

    confusione -= 1

:shock: :oops: :cool:

Visto nel Web – 124

OK, ora legale, anche se… OK, ecco cosa ho visto nel Web.

2-484

Floppy canterini
::: Palmux

C++ FAQ
::: isocpp

Flash is dead, long live OpenFL!
::: Gamasutra

micio

AMD Develops New Linux Open-Source Driver Model
::: Slashdot

Google’s lightweight image format makes YouTube pages load 10 percent faster
::: Engadget

Range-Checks and Recklessness
invecchiando…
::: Programming in the 21st Century

155123_10202706635839360_1179064351_n

Lettera aperta su XPocalypse rivolta ai LUG italiani
::: GrappaLUG

Digital – PDP
::: Twitter

GNU/Linux Distribution Timeline
::: Futurist

talk

Unless companies pay, their Facebook updates reach 6 percent of followers
::: Boing Boing

Bash implementation of 2048 game
incredibile :roll:
::: github

The 2048 game implemented in sed
::: github

be happy

Come impostare un autocompletamento “umano” per Python in Geany
::: La concoide

JavaScript Inventor Brendan Eich Named New CEO of Mozilla
::: Slashdot ::: Lambda the Ultimate ::: Slashdot ::: WSJ ::: The Verge

Doudou Linux per i bambini ma non solo
::: Freeonline

BjWKXPaIQAA_1ar

Google e Luxottica. La tecnologia ha bisogno di design. Saper fare e saper inventare
::: Luca De Biase

A practical introduction to functional programming
::: Mary Rose Cook

New Approach Could Stop Websites from Leaking or Stealing Your Data
::: Technology Review

dance

Facebook Buying Oculus VR For $2 Billion
::: Slashdot

The Curious Nature of Sharing Cascades on Facebook
::: Technology Review

Brazil House Passes Internet Bill as Data Demand Dropped
::: Bloomberg

anello

#socialUniversity – Le università italiane sui social network
::: nexa

Lettere d’amore fra Alice e Bob
in realtà RSA
::: Num3ri

What Zuckerberg Sees in Oculus Rift
::: Technology Review ::: Slashdot

save

Resources for learning about Python internals and CPython source code
::: github

spaghetti_folks
::: Twitter

The singularity
::: Twitter

drones

Toward Better Programming
sono vecchio: non l’ho apprezzato (o capito)
::: Slashdot

Pochissime persone al mondo meritano il mio sabato mattina. LUI è una di queste
::: Twitter

1044081_10202756388603148_104704500_n

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 63 follower