Search This Blog



After quite a while I wrote some new code into gtdroid for the new version. 
Now the sync is much stronger than before

Next step will be to reorder the project/context/actions based on the new API

A bientot


Hi, just wanted to check if this blog by sending a mail works. If it's the case I'll probably post a lot more :)

A bientot 


Gtdroid diary 29/10/2010

The 1.X version fully nozbe api implemented works and:

  1. Sync is fast, I mean really fast 
  2. Anything else that need to connect to nozbe is slow, I mean really slow
So no release for now, but I'm working on a offline version (fast) that can sync with nozbe really fast!

First work looks good. I'll keep you informed



Everything done in version 1.1 has been converted to the Nozbe API.

The result is faster sync and slower single action (done, undone, star, unstar, create...)

I want the next version to be better than the previous one from in every angle so I'll release the new Gtdroid after implementing offline modification and a sync that works :)

The following picture of one of my cat is named: "I love my remote"
Now you know who own the TV control every night!



Today I finished the:

  1. create project
  2. create context
  3. create action 


09/10/2010 Gtdroid 1.1.5 WIP and mysql Copying to tmp table problem

Today after almost a week without working on Gtdroid I manage to find 4 hours to work on it.
I worked on version 1.1.5. It now use the api and SYNC is really fast: less than 10 seconds for my nozbe account with 40+ project 100+ actions.
Next step is to write the done/undone, star/unstar, create/edit/delete of action.

After the fun part (gtdroid) I got to solve a mysql problem for a client of mine who just migrate from physical to cloud 2 of his production servers. An application server report 200+ connection to the mysql while on the old platform 30 was enough.
After some search I found out that some queries where stuck on the "copying to tmp table" and blocked all other queries.

my.cfg was not filled in with the right value for this kind of load, really it's was just empty!
I use the following page as a good start and configure my.cfg the -almost- right way.

A bientot


Gtdroid diary

This week end I'll dedicate sometime to the current Gtdroid release to improve it and add the api calls instead of my current "reverse-engineering" calls :-)

Nozbe team gave me the production key !!!! yeah


New presentation and work

This week I'll not be able to work on Gtdroid as I have to teach 2 courses: "network for IT managers" and "Java Basics"

Network for IT manager is a course to present the theory of network for persons who talk with IT staff and what to be sure to understand their needs and be able to provide the right solutions. The course last one day plus another one for special requests

Java basic is the starting point to become a java programmer; the course includes all the basics and can be customized for mobile (android) programming.




Today I'm going in France to see my sister and going at a cousin's wedding :)
I'll be back online on monday and post my week end thoughts
a bientot


Kindle and Wallet day

Today my new Kindle arrived :) it's great!!! My shinebook looks so old now.
I really love the idea to be able to connect to my mail everywhere in the world, even if it's on a slow black and white screen.

My new really thin wallet is here also (xmas before time) ! nice place to go

As I was getting mad about the sync with nozbe on Gtdroid I choose to concentrate on  doing a good GTD app and then add the nozbe integration.

A bientot


Nozbe features website

Nozbe is a really really good piece of software and it's STABLE and that's a feature that I love. But sometime I need something even in alfa or beta that just do a specific work and nothing else ( no options, no sorting ... ) . 

So here is my idea, what do you think if I create a website that provides new nozbe features but knowing that it's not fully tested.

For example, I now would like to have the list of project available for printing so I can review it from anywhere and with the api this is easily done.

A bientot


What "create/activate a new service" implies on the sysadmin world

So you've been asked by you boss to  "just setup a webserver for the departement X". For the Boss this is not only an easy task but also a fast one t0 be done. 
YOU as a good sysadmin knows that in 3 month this "temporary" webserver will be THE webserver of project XYZ and will be mission-critical ( nobodies knows of which mission, but who cares)  !!!! 

So to be on the safe side remember your boss (and yourself) that a single service MUST include:
  1. Way to startup/Shutdown in an autonomous way. /etc/init.d scripts...
  2. A Backup procedure and a restore procedure for all the data that cannot be installed from a package/compilation
  3. Monitoring of the service (for external webservers I use
  4. Some graphs to be able to reply: "it's fast/slow like always" 
  5. Might want some tuning to keep it slow and not dead. Slow server are working server so nobody can really complain about it.
  6. A documentation with a least how to connect and how to configure the preceding bullets.
A bientot

[GTD] Brainstorming about myself 30.000 ft thinking

This morning preparing for a presentation about me, I decide to apply GTD project methodology to it.

I enter a big "Me" at the center. Then I start to mindmap my thoughts. This ends but being higher than 30.000 feets as my private life was integrated in the thinking. So I finish the first version of this mindmap, take a picture of the whiteboard.

I restart using "Me & Systems" as a starting point and things get more focused.
The mindmap is divides in

  • "what can I do" on the left 
  • "on what" on the right 

The little green sign means that I've a certification for the element.

Obviously I'm not limited to those systems, I've worked on a lot on things connected to those so for example my knowledge of network and storage is quite good but not enough to be in this diagram.

This is a first version, hopefully tomorrow I'll add and remove stuff in here

A bientot


Working on Gtdroid 2.

I'm having some trouble with the sync of gtdroid and nozbe. But today I manage to simplify everything and to have only one create, one update and one delete method usable for tasks, contexts and project.

I also prepare myself for tomorrow since I've:

  • A migration from housing to cloud of a relativly big portal
  • A meeting for sysadmin work
  • A discussion about one of my new projects (see below).
Check it out at The service is free.

A bientot


Gtd project management

As part of my implementation of GTD I just create a "powerful" word document to help me think about a project the GTD way.

Every project file MUST have a printed version of this document.


A bientot

Trying to be known

Today as part of my introspection - triggered by the re-reading of GTD - I decide to improve my "fame" on the internet.

After creating Gtdroid ( a gui of nozbe on android phones) I stated receiving mails from users and my ego just skyrocket, this push me to continue the development of what was born as an August crazyness.

To feel that again I decide to:
  • Continue to improve Gtdroid
  • Blog once per day using 15 minute maximum about thinks I learn the same day
  • Answer questions on experts-exchange once per day
A bientot


Postgresql 9.0

I alway loved PostgreSQL. With triggers, view, rules (query rewriting), Wal ecc.....
Now hot-stanby, Streaming replication. I'm in love .... again with it.'s_new_in_PostgreSQL_9.0



Gtdroid 2.0 instead of 1.2

In the end I'm rewriting almost all of Gtdroid. So it's going to be called 2.0 :-)

Gtdroid 2.0 will have:

  • Full offline work
  • Full sync with nozbe (Thanks Michael and Team)
  • Actions are not limited to name, project, context. Almost all that you have on nozbe is available.
  • Much faster
I'm a GTD fan and with gtdroid I'm creating my missing link between my mobility and the tools I choose (nozbe)



Sort and crash

This morning I've got a action sort bug solved. In particular configuration it could completly crash Gtdroid on start.


Gtdroid 1.2 Diarie

Today I work out 9 hours on Gtdroid 1.2.
The main idea was to integrate the nozbe api on the 1.1 version but it end out being an almost complete rewriting of the 1.1 version.
I'm not going to call it 2.0 since for the users the gui will be almost the same.

The main features of 1.2 are:

  1. All action can be done offline
  2. Sync is bi-directional so in one step gtdroid sends all modifications and receive the modifications done from the web interface.
  3. Sync is fast, less than 10 seconds (180 seconds during beta, 40 on 1.1)
  4. New features will be released in a faster way as I don't have to do reverse engineering
Today I implemented the full sync with nozbe, the list and filtering by context and project plus a - hopfully- better way to handle exceptions.



Gtdroid philosophy

Hi, just to explain the priorities behind Gtdroid.
It’s a GTD app so actions are THE priority.
Gtdroid is for road runner -like me- and so the core of the app includes:

  • see my next actions immediately and mark them as done/undone
  • filter them by context, project, next action, all of them together
  • catch ideas on the road with new action and new project
  • sync with nozbe
Second level includes:

  • toggle next action (thanks nozbe team to allow me to use your star images)
  • Change of context and projects for action
  • delete actions
  • show notes
Future releases:

  • show files
  • connect with dropbox url
  • connect to evernote app if possibile
  • ... ideas are welcome …

The new API given me will change my roadmap. Now I need to re-implement my nozbe API using their API (more efficient and simple).
Version 1.2 will probably have same capabilities of 1.1 but using the nozbe api.

The free version is now outdated.

Fell free to contact me. I’ll answer as soon as possibile

Frank Contrepois


Gtdroid, an android nozbe client released

Today I released the first beta version of Gtdroid my nozbe client. It took me around 100 hours of work.



i Vmware tools bloccano l'udp su ubuntu 7,1

Installando i vmware-tools  (U5) su un sistema ubunto 7.1 mi sono ritrovato con l'impossibilità di inviare e ricevere pacchetti udp tramite scheda di rete.

Per risolvere rimuovete i vmware tools e rinominate il file /boot/initramfs*.bak in /boot/initramfs*

Insert e delete e la generazione di redolog

I DELETE generano MOLTI piu redo log degli INSERT

Blocchi filesystem e Blocchi oracle

Ogni configurazione dove i blocchi FS sono più piccoli o uguali è valida.

Perche esiste sempre almeno un rollback segment

Oggi i rollback segment sono obsoleti, sostituiti dall'undo automatico. Ma in ogni database creato con dbca si trova un rollback segment. E' quello usato per la creazione del DB.
Conservatelo come souvenir

A bientot

ruoli resource e connect in oracle

Oracle 10gR2 (decente):


Oracle 9iR2 (un po troppi permessi per connect):

L'opzione admin vi permette di dare questi privileggi ad altri

Query per avere i privileggi di connect:
select grantee, privilege, admin_option from dba_sys_privs where grantee='CONNECT';


Vmware DRS/HA si lamenta che un console non è ridondata

Fare un reconfigure for HA dopo aver accertato la presenza di 2 nic di uplink per la sc

Scompattare i file msi

msiexec /a test.msi /qb TARGETDIR=c:\tmp 

scompatta il file test.msi nella cartella c:\tmp


Ruolo Oracle per chi deve gestire i propri oggetti

              CREATE VIEW
        TO schema;

questo ruolo è utile per gli sviluppatori che hanno necessità di crearsi le proprie tabelle e altro nel proprio schema


Introduzione ai webserver

Questo articolo è disponibile su

Un webserver è in realtà un http server, quindi un software capace di gestire il protoccolo http.

Http e HTML

Tutti conosciamo il web o www, oggi è diventato normale “navigare” sul web, visitare siti, crearli, partecipare alle varie comunità. Tutto questo si appoggia su vari componenti:

  • Il browser o navigatore, i più noti sono Internet Explorer, Firefox, Safari, Opera, Chrome e altri

  • Il linguaggio HTML che permette di scrivere le pagine web. L'html viene poi interpretato e presentato tramite il browser

  • Il protocollo HTTP che permette la richiesta di una pagina web, il passaggio di parametri e la risposta con il contenuto -HTML- della pagina stessa

  • Il webserver che a partire da una richiesta HTTP emessa da un browser costruisce la pagina web, magari con strumenti esterni - php, perl, java e altri - e la invia al richiedente


Dal punto di vista della rete l'http usa il protocollo TCP sulla porta 80. Quindi quando sul browser si digita un indirizzo viene sotto inteso che la porta di destinazione è la 80 o la 443 per http o https

Lavoro di un webserver

Volendo riassumere al massimo un web server è un software che riceve una richiesta tramite un URL e deve trovare il file che gli corrisponde.
Es. quando si scrive nel browser la richiesta viene inviata al webserver responsabile di “”. Questo webserver estrapola un percorso su i propri dischi - per esempio /var/www/ - e restituisce quel file che deve contenere un formato riconosciuto dal browser - html, gif, jpg, png, js, css….

In alcuni casi particolari prima di ripartire verso il browser il file recuperato deve essere ulteriormente elaborato, solitamente da un programma o libreria esterna che genera il contenuto html necessario al browser.


Questo articolo e molti altri su


Per capire i comandi di VxVM è necessario avere ben chiaro come questi è organizzato internamente. In particolare è necessario capire tutti i livelli di astrazione che esistono tra il disco fisico e il volume che presenta VxVM per la formattazione.

Il tutorial si basa su Solaris che è la piattaforma con la quale uso VxVM.

Disk group

Un disk group è l'entita logica di più alto livello di VxVM. Tutti i plex, sub-disk, dischi media di un volume DEVONO appartenere allo stesso disk group. E' possibile fare un unico disk group per tutti i dischi, suddividerlo per applicazione - oracledg, tomcatdg, webdg - per settore aziendale - marketing-dg, produzione-dg - o qualunque altra forma preferiate.
Il disk group diventa molto importante per gli ambienti cluster. Lo switch dello storage con VxVM si fa a livello di Disk group. Esempio: se ho 3 Oracle in cluster su 2 sistemi e voglio poter fare lo switch delle singole instanze allora devo avere un disk group per istanza oracle.


Un volume è uno spazio di storage che possiamo formattare come faremmo con un disco normale. La differenza è che invece di essere presentato sotto /dev/dsk si trova sotto /dev/vx e i nomi sotto /dev/vx sono meno criptici di quelli di /dev/dsk.
Avendo a disposizione un volume solitamente lo si formatta e poi se ne fa il mount. Il bello di VxVM è che i dati possono essere duplicati per protezione, messi in RAID-0 per avere migliori prestazioni o mischiare entrambi. Lo spazio disponibile sul volume può aumentare quando se ne presenta la necessità ( può anche diminuire ma solo in casi particolari).
In riassunto: un volume è visto come un disco che può cambiare le sue caratteristiche di spazio, affidabilità e prestazioni su richiesta.


  • I volumi sono fatti da uno o più plex
  • Ogni ha dello spazio disco a disposizione
  • Ogni plex contiene una copia dei dati del volume
  • Ogni plex contiene una copia dei dati del volume (chiaro ?)
  • Ogni plex contiene una copia dei dati del volume (ora dovrebbe essere chiaro)
Quindi se ho più di un plex avrò più copie dei miei dati quindi una maggiore affidabilità. In caso di problemi ad un plex gli altri permetteranno al volume di funzionare è quello che si chiama RAID-1.

L'aspetto negativo è che per un volume di 100 GB con 2 plex occupo 200GB, 100GB per il primo e 100GB per il secondo. Occupo il doppio dello spazio ma ho più sicurezza per i miei dati, diciamo un backup automatico cosi l'indomani sostituisco il disco guasto e VxVM lo riempie con i dati presi dagli altri plex.
Riassunto: i plex mi permettono di avere più copie dei miei dati, in caso di problema a una copia le altre permeteranno al volume di non risentirne troppo


Un volume è fatto di plex che sono copie dei dati del volume e un plex è fatto di subdisks.
Un subdisk è come una partizione è una sotto parte di un disco. Un disco da 500GB può per esempio essere suddiviso in
  • un sub-disk da 500 GB
  • 2 sd da 250 GB
  • 1 sd da 200 GB 1 100GB 2 da 50GB 4 da 25GB
  • come meglio credete
Se al livello dei plex si parlava di duplicare i dati qui invece possiamo usare più sub-disk ogniuno su un disco fisico e farli vedere come un unico insieme di dati.

Quindi ho piu subdisk che ragruppati insieme diventano un plex ma come vengono aggregati? Posso scegliere tra le seguenti possibilità:
  • stripping: scrivo un po su un sub-disk poi su un altro e cosi via per tutti i sub-disk disponibili
  • concatenazione: scrivo tutto su un unico sub-disk poi quando è pieno passo al successivo.
  • stripping + concatenazione: 
  • Raid-5: che è un caso un po particolare e complicato

Disk media

VxVm per poter gestire i livelli superiori deve salvare su ogni disco fisico un certo numero di informazioni, queste informazioni - detti metadati - permettono a VxVM di gestire le configurazioni richieste anche con centinaia o migliaia di dischi.
Quindi la differenza tra un disco fisico e un Disk media sta tutta nel partizionamento che fa VxVM del disco, definendo una zona privata e una zona publica. Con il partizionamento e il riempimento della zona privata un disco passa sotto il controllo di VxVM e non è più utilizzabile da altri sistemi - a meno di un nuovo label e/o ripartizionamento -


La zona privata, è una partizione del disco dove VxVM salva tutti i metadati legati al disco e al suo disk-group. Ogni disco di un disk-group con una partizione privata attiva contiene la configurazione dell'insieme. Questa parte privata è stata per molto tempo di 1MB ed è passata con la versione 5.0 a 32MB per la gestione delle nuove funzionalità del prodotto - snapshot, DCO 20 … -


E' lo spazio del disco meno la parte privata. La parte publica conterrà i dati ed è la parte suddivisa in sub-disk


Wiki documentale

Ciao e buon anno

Ho create un wiki ( ) per documentare le varie cose che si scoprono leggendo o lavorando come sistemista.

Al momento gli articoli sono pochissimi ma dovrei aggiungere un po di dati regolarmente

E' possibile mandarmi un articolo per il wiki

A bientot