Archivi categoria: php

Paleontology 4 Geologist

For those people not really aware of what the paleontology really is, I can briefly define the paleontology as the science in charge of study the history of life. For a Geologist the paleontology is more than important as it represents the basis to, such as:

  • place in time a geologic record
  • understand the geological context
  • deduce a lot of other useful information

For a better explanation I suggest some reading like this one and – for a wider view – wikipedia.

A few years ago I was studying invertebrate paleontology at the University of Pavia and I was terribly in need of someone or something able to train me with random questions about fossils before the exam 🙂

At that time I was also working for an IT company in Lodi and I had no much free time to study with other classmates that’s why I decided to quickly prototype a simple computer application using Qt and C++ called p4d.

The purpose of p4d* was to randomly select questions from a database and to show them in the form of a multiple choice assessment.

The database was manually built using the information made available – in italian – through the labels of each fossil from the museum of the faculty of Geology.

We have to look at the fossil, to describe it properly: that’s why I also made photos of our samples to improve the experience with p4d (and especially to be able to do some training outside the museum 😛 ).

P4D was able to check for the correctness of the given answer by pressing the Check button.

Even if quite basic and w/o frippery, it worked as expected and I really enjoyed coding with QtCreator on my Mageia to build something useful and portable in a few hours 🙂

In a couple of weeks, after have asked some classmate for feedbacks, it became clear to me that this kind of tool was nice enough to be published but… how?

To avoid porting, packaging and distribution issues I finally choose to go through the web: I quickly rewrote p4d using PHP and JavaScript, with the precious help provided by the CodeIgniter and jQuery frameworks. P4G (i.e. Paleontology for Geologist) was born 😉

This way also the maintenance becomes definitely a piece of cake 😉

Far from perfection, Paleontology 4 Geologist (P4G) is a simple tool to verify your invertebrate fossils skills. It’s free to use, give it a try 😉

* p4d = Paleontology 4 Dummies

PS: just like any piece of software out there, bugs could be found so feel free to report them using the button Found a bug and reading the instructions; I’ll try to fix them asap. And remember, there’s no warranty

Dokuwiki + Altervista: connubio possibile

Questo è un piccolo tutorial che aiuta ad installare il potente dokuwiki nello spazio dedicato agli utenti di Altervista.org.

DISCLAIMER:
Questo tutorial ha il solo scopo didattico.
Pertanto l’autore non può essere ritenuto responsabile di eventuali danni o problemi che possano presentarsi a seguito dell’applicazione di questa procedura.
Tantomeno questo tutorial vuole danneggiare una qualsiasi delle parti che verranno citate nel testo a seguire.

STRUMENTI RICHIESTI:

  • Conoscenza di base del php e di ftp
  • Un client ftp stile filezilla
  • Per la realizzazione di questo documento mi riferirò alla versione 2007-06-26b del dokuwiki.
  • Un cervello funzionante 😉

E’ probabile che alcuni di Voi abbiano provato ad installare dokuwiki sul proprio spazio altervista con scarsi risultati.
Per la realizzazione di questo documento mi riferirò alla versione 2007-06-26b del dokuwiki.

  1. download del prodotto, decompressione quindi upload sul proprio spazio.
  2. Modifica del file install.php presente nella directory principale del dokuwiki:
    precisamente localizzate la funzione check_functions(){… e al suo interno il seguente costrutto

    $funcs = explode(' ','addslashes basename call_user_func chmod copy fgets '.
    'file file_exists fseek flush filesize ftell fopen '.
    'glob header ignore_user_abort ini_get mail mkdir '.
    'ob_start opendir parse_ini_file readfile realpath '.
    'rename rmdir serialize session_start unlink usleep '.
    'preg_replace');

    rimuovete quindi la voce chmod ottenendo quanto segue
    $funcs = explode(' ','addslashes basename call_user_func copy fgets '.
    'file file_exists fseek flush filesize ftell fopen '.
    'glob header ignore_user_abort ini_get mail mkdir '.
    'ob_start opendir parse_ini_file readfile realpath '.
    'rename rmdir serialize session_start unlink usleep '.
    'preg_replace');
  3. Giunti a questo punto, con una vecchia versione sarebbe stato sufficiente, ma i programmatori del dokuwiki sono persone competenti e per garantire stabilità al loro prodotto hanno aggiunto un nuovo tipo di controllo al software. Dal canto suo Altervista per una maggiore sicurezza della sua piattaforma ha dovuto ridurre alcune funzionalità, più o meno richieste dal dokuwiki. Nessun problema, senza nuocere a nessuno, noi potremo usare questo potente strumento 😉
    Se infatti provate ad avviare via browser la procedura di installazione (www.example.com/dokuwiki/install.php) noterete che il sistema afferma di avere trovato un checksum non valido e quindi propone di reinstallare il prodotto.
    Niente paura, copiamo la stringa di strani caratteri proposta nella pagina appena descritta in un file di testo e torniamo a modificare i file aggiungendo a questo blocco

    $dokuwiki_hash = array(
    '2005-09-22' => 'e33223e957b0b0a130d0520db08f8fb7',
    '2006-03-05' => '51295727f79ab9af309a2fd9e0b61acc',
    '2006-03-09' => '51295727f79ab9af309a2fd9e0b61acc',
    '2006-11-06' => 'b3a8af76845977c2000d85d6990dd72b',
    '2007-05-24' => 'd80f2740c84c4a6a791fd3c7a353536f',
    '2007-06-26' => 'b3ca19c7a654823144119980be73cd77',
    );

    la riga seguente

    '2008-01-20' => '1e81ba3f32c56e0d3df259989694a79f',

    ottenendo quindi

    $dokuwiki_hash = array(
    '2005-09-22' => 'e33223e957b0b0a130d0520db08f8fb7',
    '2006-03-05' => '51295727f79ab9af309a2fd9e0b61acc',
    '2006-03-09' => '51295727f79ab9af309a2fd9e0b61acc',
    '2006-11-06' => 'b3a8af76845977c2000d85d6990dd72b',
    '2007-05-24' => 'd80f2740c84c4a6a791fd3c7a353536f',
    '2007-06-26' => 'b3ca19c7a654823144119980be73cd77',
    '2008-01-20' => '1e81ba3f32c56e0d3df259989694a79f',
    );

Finito! Avviate ancora la procedura di installazione (www.example.com/dokuwiki/install.php) e godetevi il wiki :-d

Happy Hacking