martedì 17 giugno 2008
acts_as_nested_set e order by
In una mia applicazione stò utilizzando un nested set salvato su una tabella grazie al plugin 'better nested set'.
Non capisco perchè l'ordinamento dei nodi figli, che ho correttamente specificato dev'essere calcolato su un campo, non viene preso in considerazione.
Nel mio modello ho:
Per ovviare temporanemente al problema, riordino l'array restituito dal metodo children() di acts_as_nested_set in questo modo:
Purtroppo in questo modo aggiungo tempo di calcolo non necessario (anche se un ordinamento nel mio caso è piuttosto trascurabile ) al mio processo... ma per ora funziona...
Non capisco perchè l'ordinamento dei nodi figli, che ho correttamente specificato dev'essere calcolato su un campo, non viene preso in considerazione.
Nel mio modello ho:
class NestedSurveyElement < ActiveRecord::Base
acts_as_nested_set :order => 'orderby ASC', :dependent => :delete_all, :scope => :survey_id
#........
end
Per ovviare temporanemente al problema, riordino l'array restituito dal metodo children() di acts_as_nested_set in questo modo:
children = root_element.children.sort_by{|c| c.order_field}
Purtroppo in questo modo aggiungo tempo di calcolo non necessario (anche se un ordinamento nel mio caso è piuttosto trascurabile ) al mio processo... ma per ora funziona...
sabato 14 giugno 2008
Anche i numeri sono sexy
In piena "crisi mistica" mi sono messo a sfogliare uno dei miei libri preferiti: Storia della Matematica di Boyer.
Comprai questo libro quando frequentavo ancora la terza superiore, all'epoca completamente ignorante in termini matematici. Perchè lo comprai? Ero certo che un giorno lo avrei letto, e forse anche compreso.
Non mi sono mai considerato un buon matematico, anzi non credo di aver mai avuto alle superiori più di un sei stiracchiato, quando andava bene. Eppure ne venivo attratto, affascinato, e stregato da quella materia che pareva tanto difficile. Qualcuno disse che a molti la matematica appare difficile perché non si rendono conto di quanto in realtà sia complicata la vita. (credo che sia stato von Neumann, qualcuno mi conferma/smentisce?). Prendendo atto di questo mi sono messo a ri-studiare la matematica, senza i preconcetti di difficoltà imposti da altri. (in effetti credo che la vera difficoltà della matematica ci sia imposta da genitori, amici ed altri che non vedendola come qualcosa di pratico, la snobbano).
Ho incominciato con cose semplici, aiutandomi con le oramai indispensabili mappe mentali, dall'insiemistica ai numeri primi, cercando di imparare e capire le dimostrazioni, e non ragionando semplicemente per assiomi. Credo che la matematica vada vista così, non presa per oro colato, ma spulciata e assaporata. Ci viene insegnato da bambini, ma anche da ragazzi, che bisogna studiare per prendere buoni voti, e che se hai preso già un buon voto, ti dovrai sforzare per arrivare sempre più in alto. Questo è un concetto completamente errato. Sono pronto a scommettere che se chiedessi alla secchiona del primo banco a ragioneria che mi stava tanto sulle scatole di risolvermi oggi un'equazione semplice non ne sarebbe capace. Eppure il dieci in pagella lo aveva. Gli alunni devono imparare a studiare, e lo dico da primo interessato, per comprendere non solo le nozioni imposte, ma quelle che ci nascono dall'interno. Molti di coloro che smettono di chiedersi il perchè delle cose finscono in quel circolo vizioso che la società moderna vole costringerci a percorrere, seppur senza rendercene conto, per poi non accorgersi che il loro cervello si sta impigrendo talmente tanto che per soddisfare l'innato desiderio dell'uomo di conoscere, vanno a leggere riviste che, pur di essere vendute, pubblicano idiozie. Oppure si rivolgono alla televisione, diventando zombie. Nel migliore dei casi, sfruttiamo il poco tempo che il circlo malefico societario ci lascia, per dedicarci a qualche hobby costruttivo.
Ma è così che dobbiamo comportarci? Abbiamo a disposizione, ogniuno di noi, salvo eccezioni patologiche, una capacità di immaginazione e una capacità di elaborazione sconfinata, che si adatta in ogni momento. Possiamo viaggiare con la mente, trasformare pensieri in fatti, il tutto usando il nostro cervello. Possiamo imparare (che già di per sé è una cosa fantastica), effettuare scelte, e fare proiezioni nel futuro delle nostre azioni. Con questo non voglio dire che ognuno di noi deve comportarsi da scenziato. Ognuno di noi non deve mai smettere di chiedersi il perchè delle cose, rimanendo un po' peter pan, ma anche un po' Buck il cane del richiamo della foresta di J. London, cercando di staccarci dalla della socità, seguendo il nostro istinto naturare ad Imparare, a nutrire il nostro cervello.
Ho iniziato questo post parlando di Matematica e del libro che racconta la sua storia, vorrei concludere con un pensiero di Socrate (riportato nel Fedone di Platone) tratta da questo libro (p. 99), nella quale mi vedo e che mi piacerebbe condividere con chiunque passi di qui.
Socrate, Platone e altri filosofi greci, che consideriamo dei grandi illuminari, rimanevano esterefatti da problemi che a noi appaiono semplici ("perchè 1+1=2" o "perche 2 x 2 = 4 e 2 + 2 = 4").
Chiedersi e chiedere il perché di cose in apparenza piccole o banali, non significa perdere tempo, ma significa, iniziare a pensare in grande.
---
P.S. Qualcuno si chiederà il perchè del titolo. Non sono pazzo, i numeri sexy esistono veramente, e sono una classe di numeri primi... ora non vi resta che andare a gustarveli cercando in biblioteca o su internet ... in this case google is your friend...
ciao Piero
Comprai questo libro quando frequentavo ancora la terza superiore, all'epoca completamente ignorante in termini matematici. Perchè lo comprai? Ero certo che un giorno lo avrei letto, e forse anche compreso.
Non mi sono mai considerato un buon matematico, anzi non credo di aver mai avuto alle superiori più di un sei stiracchiato, quando andava bene. Eppure ne venivo attratto, affascinato, e stregato da quella materia che pareva tanto difficile. Qualcuno disse che a molti la matematica appare difficile perché non si rendono conto di quanto in realtà sia complicata la vita. (credo che sia stato von Neumann, qualcuno mi conferma/smentisce?). Prendendo atto di questo mi sono messo a ri-studiare la matematica, senza i preconcetti di difficoltà imposti da altri. (in effetti credo che la vera difficoltà della matematica ci sia imposta da genitori, amici ed altri che non vedendola come qualcosa di pratico, la snobbano).
Ho incominciato con cose semplici, aiutandomi con le oramai indispensabili mappe mentali, dall'insiemistica ai numeri primi, cercando di imparare e capire le dimostrazioni, e non ragionando semplicemente per assiomi. Credo che la matematica vada vista così, non presa per oro colato, ma spulciata e assaporata. Ci viene insegnato da bambini, ma anche da ragazzi, che bisogna studiare per prendere buoni voti, e che se hai preso già un buon voto, ti dovrai sforzare per arrivare sempre più in alto. Questo è un concetto completamente errato. Sono pronto a scommettere che se chiedessi alla secchiona del primo banco a ragioneria che mi stava tanto sulle scatole di risolvermi oggi un'equazione semplice non ne sarebbe capace. Eppure il dieci in pagella lo aveva. Gli alunni devono imparare a studiare, e lo dico da primo interessato, per comprendere non solo le nozioni imposte, ma quelle che ci nascono dall'interno. Molti di coloro che smettono di chiedersi il perchè delle cose finscono in quel circolo vizioso che la società moderna vole costringerci a percorrere, seppur senza rendercene conto, per poi non accorgersi che il loro cervello si sta impigrendo talmente tanto che per soddisfare l'innato desiderio dell'uomo di conoscere, vanno a leggere riviste che, pur di essere vendute, pubblicano idiozie. Oppure si rivolgono alla televisione, diventando zombie. Nel migliore dei casi, sfruttiamo il poco tempo che il circlo malefico societario ci lascia, per dedicarci a qualche hobby costruttivo.
Ma è così che dobbiamo comportarci? Abbiamo a disposizione, ogniuno di noi, salvo eccezioni patologiche, una capacità di immaginazione e una capacità di elaborazione sconfinata, che si adatta in ogni momento. Possiamo viaggiare con la mente, trasformare pensieri in fatti, il tutto usando il nostro cervello. Possiamo imparare (che già di per sé è una cosa fantastica), effettuare scelte, e fare proiezioni nel futuro delle nostre azioni. Con questo non voglio dire che ognuno di noi deve comportarsi da scenziato. Ognuno di noi non deve mai smettere di chiedersi il perchè delle cose, rimanendo un po' peter pan, ma anche un po' Buck il cane del richiamo della foresta di J. London, cercando di staccarci dalla della socità, seguendo il nostro istinto naturare ad Imparare, a nutrire il nostro cervello.
Ho iniziato questo post parlando di Matematica e del libro che racconta la sua storia, vorrei concludere con un pensiero di Socrate (riportato nel Fedone di Platone) tratta da questo libro (p. 99), nella quale mi vedo e che mi piacerebbe condividere con chiunque passi di qui.
"Non posso sentirmi soddisfatto quando so che, se si aggiunge uno a uno, l'uno con cui viene fatta l'addizione diventa due, o che le due unità sommate insieme fanno due in virtù dell'addizione. Non riesco a capire come questo avvenga che, quando erano separate l'una dall'altra, ciascuna di esse era uno e non due, e ora, quando sono unite assieme, la loro giustapposizione o il loro sempice incontro debba essere la causa del loro diventare due"
Socrate, Platone e altri filosofi greci, che consideriamo dei grandi illuminari, rimanevano esterefatti da problemi che a noi appaiono semplici ("perchè 1+1=2" o "perche 2 x 2 = 4 e 2 + 2 = 4").
Chiedersi e chiedere il perché di cose in apparenza piccole o banali, non significa perdere tempo, ma significa, iniziare a pensare in grande.
---
P.S. Qualcuno si chiederà il perchè del titolo. Non sono pazzo, i numeri sexy esistono veramente, e sono una classe di numeri primi... ora non vi resta che andare a gustarveli cercando in biblioteca o su internet ... in this case google is your friend...
ciao Piero
Iscriviti a:
Post (Atom)