Nessun post corridponde ai vostri criteri.
Ecco una lista con gli ultimi post:

Solving a Pycon puzzle... in Haskell

I was at Pycon Ireland last week-end. The event was quite successful and amazingly so considering it was a first for Dublin.

One of the highlights was one of those puzzles made of 13 plastic pieces to reassemble into a 4x4x4 cube (all pieces composed by 5 or 4 basic 1x1x1 cubes), brought by the guy at the Google stand. On Sunday, during the sprint session, the most successful one in terms of attendance and enthusiasm was an effort to solve the puzzle in python, cut short by the end of Pycon. The project seems to be ongoing at this time.

As the problem is very combinatorial in flavour, I thought the best tool for the job would be Haskell, which lends itself to concise expression of mathematical ideas. So I made an attempt at the implementation. Running it all night long gave me a few tens of solutions.

Some Haskell constructs are particularly interesting in the solution.

The monadic >>= operation for lists was used for the generation of all possible roto-translations of the pieces. If a function

f :: Bitmap -> [ Bitmap ]
f bm = ... a certain list of Bimaps derived from bm ...
yields a family of variations of a piece representation (for instance all translations, or all rotations around an axis), and g is another such function, then the expression
f bm >>= g
returns all variations generated by g of all variations generated by f of the initial piece bm.

In the solution this is used in

-- All 24 rotations
rotations bm = rotationsx bm >>= axischangex

which generates all the
... (leggi tutto l'articolo)

By abell on 2010-07-21-10:21:53

Caccia ai prezzi con shell e xmlstarlet

Mettiamo che abbiate trovato un'offerta imperdibile in rete e che mentre state pagando vi venga mostrato un messaggio d'errore:
Il sistema non può elaborare il vostro ordine. Vi preghiamo di riprovare

Ripetete diligentemente i passi. Stesso risultato. Finché tornate all'elenco prodotti e scoprite che l'ultima frullocentrifuga 18 velocità con 4 braccia orbitali controrotanti ora è in vendita a 8000 euro. Evidentemente l'ultima in offerta è stata comprata da qualcuno prima che portaste a termine l'ordine.

Niente da dire: non sarebbe furbo da parte del sito di e-commerce riservarvi il prodotto solo perché l'avete nel carrello e vi viene assegnato solo quando portate a termine il pagamento. E' come per l'ultima bomba alla crema che avete adocchiato al bar: se un altro riesce a raggiungerla per prima è sua e rimanete a bocca asciutta. Al più potete ripiegare su un cornetto integrale (nota: episodio capitato di recente all'autore).

Ci sarà un'offerta del genere nel prossimo futuro? E se ci sarà, riusciremo a scoprirlo in tempo e non all'ultimo momento? Ah, se avessimo un assistente personale che controllasse i prezzi ogni 10 minuti e ci avvertisse se i prezzi si abbassano...


... (leggi tutto l'articolo)
By abell on 2010-05-22-00:39:41

Minimi locali e touch-typing

C'è una situazione ricorrente nell'esperienza umana, che si presenta in varie forme nella vita dei singoli e in quella collettiva.

Un laureando in ingegneria vuole guadagnare un po' di soldi e passa il pomeriggio a lavorare in una copisteria. Così facendo, rallenta gli studi e comincia a lavorare sei mesi più tardi, perdendo nel complesso molti più soldi di quanti ne abbia guadagnati nel suo lavoretto part-time

Nel salto in alto, nel tempo ci sono stati piccoli miglioramenti tecnici e nelle prestazioni finché nel 1968 Dick Fosbury vinse i mondiali con il suo salto dorsale (volgendo la schiena all'asticella). La nuova tecnica si impose ed è ora universalmente adottata.

Un contadino vive in una vallata. Nel tempo e con sacrifici riesce a comprare il terreno più produttivo della valle. Poco al di là delle montagne ci sono pianure fertilissime di cui non conosce l'esistenza.

Queste situazioni hanno molto in comune con l'idea matematica dei minimi locali.
... (leggi tutto l'articolo)

By abell on 2010-02-27-19:27:14

Gravatars: why publishing your email's hash is not a good idea

The guys at gravatar.com offer a nice service: for website owners, they let you automatically associate an avatar to your users, through the user's email address. The users who register to gravatars.com are able to change their gravatar and the change will be visible on all gravatar-enabled websites where they registered with the same email.

The association email -> avatar is done through a MD5 hash function. If you register to a website with username@mailprovider.com, the website will compute the hash of your email address (in this case 476c8a979eed603fb855dca149c7af6b) and associate the avatar url

http://www.gravatar.com/avatar/476c8a979eed603fb855dca149c7af6b?d=identicon
to your profile. All other websites using gravatars will associate the same url to your profile, because the computation of
md5sum ( username@mailprovider.com )
will always yield the same result.


... (read the full story)
By abell on 2009-12-08-23:35:49

Modelli di controllo di accessi come tipi Haskell

Prendendo spunto dalla lettura di uno dei miei blog preferiti, mi è capitato di dare una scorsa al documento intitolato A Survey of Access Control Models, che descrive modelli di controllo di accessi di complessità crescente. Questa complessità crescente si manifesta nella dipendenza da fattori intermedi sempre più ricchi e mi è venuta la tentazione di esprimere queste dipendenze come signature di funzioni in Haskell. Ecco cosa ne è uscito fuori.


... (leggi tutto l'articolo)
By abell on 2009-10-11-20:53:48

Debugging: croce e delizia

Lo sviluppatore divide il suo tempo tra programmazione e debugging. O meglio, tra analisi, programmazione e debugging.

In realtà tra analisi, programmazione, debugging e studio di nuove tecnologie e linguaggi.

Per dirla tutta, a dire il vero si divide tra analisi, programmazione, debugging, studio di nuove tecnologie e linguaggi e cazzeggio su internet. Comunque sia, il debugging gli prende una buona fetta del tempo lavorativo.

Ricordo con raccapriccio i vari giorni passati a capire perché la mia libreria di array dinamici in C++ non funzionasse come doveva. Stavo imparando il linguaggio e quando liberavo la memoria non chiamavo il distruttore per ogni singolo oggetto. Persi giornate a scervellarmi, a fare prove su prove, rompendo quello che funzionava, guardando il codice con l'intensità con cui guarderei dalla finestra se avessi la Cucinotta come dirimpettaia, finché...


... (leggi tutto l'articolo)
By abell on 2009-09-08-19:53:54

Pillole di Haskell - ricerca di duplicati

Di recente ho dovuto scrivere una funzioncina in Haskell per trovare elementi duplicati in una lista. Anche se non necessariamente il più furbo, trovo che il metodo che ho usato fornisca un esempio interessante di programmazione funzionale in questo linguaggio.

L'idea (semplice) è la seguente: ordiniamo la lista (il che richiede che gli elementi siano confrontabili, cioè che appartengano alla classe Ord) e poi cerchiamo due elementi consecutivi uguali. Mostro come implementare quest'idea, procedendo per applicazioni consecutive di funzioni.


... (leggi tutto l'articolo)
By abell on 2009-07-12-12:45:32

Il paradosso di PHP

In php

Negli ultimi giorni ho installato e personalizzato un sito basato su Drupal. Dopo un po' di anni in cui ho tenuto più o meno d'occhio questo CMS, per la prima volta l'ho utilizzato per un progetto abbastanza complesso, studiando la documentazione, installando moduli, provando temi, dando un'occhiata al DB (per la cronaca, ho scelto PostgreSQL). Niente da dire: un prodotto complesso, configurabile, con una miriade di moduli che si installano in maniera semplice e pulita (ognuno vive nella sua directory) e arricchiscono l'interfaccia di nuove funzionalità, sia per l'utente che per l'amministratore. In un fine settimana ho messo in piedi un sito di una certa complessità, arrivando ad un risultato che soddisfa appieno le mie esigenze ed è aperto a nuovi sviluppi.

E per l'ennesima volta, come mi è capitato anche facendo esperimenti con Piwik, sono rimasto un po' perplesso.

PHP come linguaggio di programmazione fa schifo.
... (leggi tutto l'articolo)

By abell on 2009-05-28-01:26:04

Storie di database: l'elefante, il delfino e la piuma

Di recente si è verificata una curiosa successione di avvenimenti: la Sun ha comprato MySQL e a distanza di circa un anno Oracle ha comprato Sun. Questo vuol dire che un mostro dei DB commerciali ora possiede e controlla il più usato dei DB open source. E già si ventilano in giro fork e contro-fork che manco il PCI dopo la caduta del Muro.

La questione è interessante e sarà interessante vedere come la comunità reagirà al controllo di un prodotto molto usato e amato da parte di un'entità commerciale che non ha una grande storia di supporto al Software Libero, ma che ha appena acquistato una società che al Software Libero ha contribuito in maniera enorme.


... (leggi tutto l'articolo)
By abell on 2009-05-22-01:17:15

Conversione di HTML in PDF con OpenOffice e Word 2007

A quanti di voi non è mai venuto in mente di convertire in modo automatizzato documenti in formato HTML (o anche da altri formati) in PDF? La prima domanda è: cosa utilizzare? Naturalmente un prodotto open source!

A questo punto iniziate la navigazione su Internet alla ricerca di qualche tool o libreria open source per il vostro linguaggio preferito. E qui purtroppo c'è la prima deroga: il vincolo sul linguaggio può implicare un vincolo sul tool/API da utilizzare. Non è detto infatti che esista l'API per il linguaggio da voi preferito.


... (leggi tutto l'articolo)
By robob on 2009-04-19-22:29:00