Wednesday, April 10, 2013

Requirements for a GTD system

For a while, I've been occasionally updating a list of requirements for a software I would be able to comfortably use to manage my GTD system. So without further ado:
  • actions
    • actions are always in a context, and some actions are also tied to a project (my primary way to look at lists of actions is by context)
    • dates
      • start date (i.e. schedule a task to become current at a future date)
      • recurring tasks (e.g. every weekday, every Monday, every first Tuesday of the month…)
      • due date not important; making the task red once it passed the due date is useless to me; maybe another implementation could make this information useful
    • email
      • quick way to create an action from an email (otherwise I am more likely to leave emails in my inbox rather than create tasks)
      • quickly find email related to an action
      • special but important case of a start date: create action from an email that become current at a future date (i.e. "if no answer in 7 days, do this")
  • projects
    • lists of current projects
    • in each project
      • next actions for that project
      • reference material: notes (typically indented lists), files (PDF, screenshots)
    • ability to archive projects
  • access
    • desktop
      • web based or OS X app
    • mobile
      • Android support (bonus for also working on iOS)
      • fast read access to specific "list" (e.g. context, project)
      • editing lists from a mobile is not a priority (just having read-only access, while not ideal, would suffice)
      • offline on mobile (ideally with background sync so the offline version is used even when online for speed)
    • proven stability of the system's cloud-based component

Wednesday, December 05, 2012

Improve your web app design


There is out there a wealth of resources you can use, often for free, to improve your web app design:

Wednesday, November 28, 2012

Importing the scott schema in Oracle on Amazon RDS

Oracle Amazon RDS doesn't allow you to connect as sysdba, and you don't have access to the local file system, so you can't run the rdbms/admin/scott.sql script, as you would otherwise do. Instead:
  1. Download the demo scripts
  2. As master user:
    1. Change password of the scott user1: alter user scott identified by password ;
    2. Grant some rights to scott:
      1. grant connect to scott;
      2. grant create table to scott;
      3. grant execute any type to scott;
      4. grant unlimited tablespace to scott;
      5. grant create any trigger to scott;
  3. Connect as scott/password
  4. Run SQL in scott.sql

1 The scott user exists by default in Oracle RDS instances, but I am not sure what the password is out of the box. (It isn't tiger.)

Friday, November 09, 2012

Glassfish 3.1

  • Starting the server
    • cd glassfish
    • ./bin/asadmin start-domain --verbose
  • Changing JVM options
    • Edit domains/domain1/config/domain.xml
    • For instance, add <jvm-options>-verbose:class</jvm-options>
    • (Just adding an command line parameters to the java started in bin/startserv doesn't to the trick; I suspect this is just a loader, which then starts the real VM that will host the server)
  • Glassfish key store password
    • By default, Glassfish sets the javax.net.ssl.keyStore property (in domain.xml) to point to its own key store, in config/keystore.jks
    • That key store has a password set on it, which is the same as the Glassfish master password, by default changeit
    • However, the default domain.xml doesn't set the javax.net.ssl.keyStorePassword property
    • As a result, when establishing an SSL connection, Java fails to key store, resulting in a java.security.UnrecoverableKeyException with the message Password must not be null
    • One way to solve this is to add a <jvm-options>-Djavax.net.ssl.keyStorePassword=changeit</jvm-options> in domain.xml

Thursday, November 08, 2012

Propos sur le bonheur, Alain (1928)

A few selected quotes:
  • Je voudrais dire de la mauvaise humeur, qu’elle n’est pas moins cause qu’effet.
  • La colère est à proprement parler une sorte de maladie, tout à fait comme est la toux.
  • Le chapelet est une invention admirable qui occupe la pensée et le doigts ensemble à compter.
  • Réagir contre l’humeur, ce n’est point l’affaire du jugement; il n’y peut rien; mais il faut changer l’attitude et se donner le mouvement convenable; car nos muscles moteurs sont la seule partie de nous même sur laquelle nous ayons prise.
  • Tout religion renferme une prodigieuse sagesse pratique.
  • […] il faudrait toujours se dire: «ce n’est pas parce que j’ai réussi que je suis content, mais parce que je suis content que j’ai réussi»
  • Il y a deux espèces d’hommes, ceux qui s’habituent au bruit, et ceux qui essaient de faire taire les autres.
  • L’art de vivre consiste d’abord, il me semble, à ne point quereller soi-même sur la parti qu’on a pris ni sur le métier qu’on fait. Non pas, mais le faire bien.
  • La pensée est une espèce de jeu qui n’est pas toujours très sain. Communément, on tourne sans avancer. [...] Percevoir et agir, voilà les vrais remèdes.
  • La vrai richesse des spectacles est dans le détail. Voir, c'est parcourir les détails, s'arrêter un peu à chacun, et, de nouveau saisir l'ensemble d'un coup d'œil.
  • [...] l'intelligence à des pointes aussi pour nous piquer.
  • Ce qui nous blesse  dans des pensées inextricables, ce ne sont pas les pensées inextricables, c'est plutôt une espèce lutte et résistance contre cela même, ou, si vous voulez, un désir que les choses ne soient pas comme elles sont. 
  • La tristesse n'est jamais ni noble, ni belle, ni utile.
  • Un auteur ancien à dit que tout événement à deux anses, et qu'il n'est pas sage de choisir pour le porter celle qui blesse la main.
On doing:
  • On veut agir, on ne veut pas subir. Aussitôt que je me donne librement de la peine, me voilà content.
  • L'enfant se moque de nos jardins, il se fait un beau jardin, avec des tas de sable, et des brins de paille.
  • Tous les métiers plaisent autant que l'on gouverne, et déplaisent autant que l'on y obéit.
  • Ne demandez pas à celui qui ne sait point jouer s'il aime le jeu. La politique n'ennuie point dès que l'on sait le jeu; mais il faut apprendre; il faut apprendre à être heureux.
  • Le travail est la meilleure et la pire des choses; la meilleure, s'il est libre, lapide, s'il est serf.
  • Celui qui met toute son attention sur un acte difficile, celui-là est parfaitement heureux.
Dans la grande prairie must be read in full. Alin recounts part of Palto’s myth of Er, where after death people arrive in a large meadow, where they can choose what they want (and will get) in their next life, and so often pick exactly the oposite of what they need. Alain doesn't believe in an afterlife, and sees us making those bad choices every day.

Wednesday, November 07, 2012

iPhone 5 vs. Nexus 4: The Specs


iPhone5 Nexus 4
Price for 16 GB $700 $350
RAM 1 GB 2 GB
CPU 1.3 GHz dual core 1.5GHz quad-core
Display size 4in 4.7in
Display resolution 1136x640 1280x768
Display PPI 326 320
Front camera 1.2 MP 1.3 MP
Back camera 8 MP 8 MP
Data LTE HSPA+
Battery 1400 mAh 2100 mAh
Weight 112 g 139 g

Tuesday, November 06, 2012

MySQL

  • Administration
    • Startup on OS X: sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
    • Shutdown: sudo mysqladmin shutdown
    • Listing the content of the database in XML: mysqldump -X --user=orbeon --password=orbeon orbeon orbeon_form_data | less
    • Connecting to the database from the command line as user orbeon: mysql --user=orbeon --password=orbeon orbeon
  • DDL and testing
    • Employees test database
      • Removed from the beginning of employees.sql the lines that create the employees database
      • Import with mysql --user=orbeon --password=orbeon orbeon < employees.sql
  • XML functions
    • ExtractValue(xml, '/path/to/value')
    • UpdateXML(xml, '/path/to/node', '<new-node/>')
      • Replaces <node> by <new-node> (not the content of <node>)
    • load_file('/path/to/file')
      • Need to grant file permission
        • mysql --user=root mysql
        • grant file on *.* to 'orbeon'@'localhost';
      • File needs to be in a place where MySQL can read
        • sudo -u _mysql cat /tmp/BidForm.xml
  • Issues
    • "To deep XML"
      • Bug        
      • Verified with 5.1.15
      • On the bug thread, someone had this with 5.5.9