I’m getting started with JQuery

There used to be a time when I was a JavaScript God. I could blindly type any piece of code in the irt FAQ and could do some pretty neat stuff combining XML, ASP and Javascript.

However, years have passed, libraries evolved and AJAX came to the scene. I regularly read the most interesting developer blogs on these subjects but I have been endulged in many other technical and less technical IT subjects (mostly Siebel, Microsoft or Rational related).

So I set myself a goal to just pick one of these new awesome libraries and start working with it to bring myself again to a certain acceptable level on the new areas around JavaScript.

- I decided to begin with learning JQuery since I’ve heard good stories about this library (I have to start somewhere).
- I decided to write a certain application: an addressbook which does not use a database backend but stores all contacts as text files (so I can edit each contacts using TotalCommander :) ).

So… I wrote a routine which displays a certain datafolder on my harddisk and shows the directories. Each of these directories is of certain type. E.g. it could hold families, companies, households, martians, linkedin contacts, hyves contacts or any ordering you want. The following image shows you my first draft tree:

image

The php application is 100% pluggable. Each field of a contact is a plugin. Each directory type is handled by a plugin and each report is a plugin. So a report is generated pretty dynamically independent of content. Below you see how I call $f_name to call a field plugin. The directory types HOUSEHOLD and CATEGORY are pasted in for explanation.

   1: while ($cCounter <= $sizeOfArray) {
   2:  $catname = $arr[$cCounter][CATEGORY];
   3:  echo '<td colspan="10" class="header">' . $catname . '</td>';
   4:  while ( ($arr[$cCounter][CATEGORY] == $catname) && $cCounter <= $sizeOfArray) {
   5:  $hhname = $arr[$cCounter][HOUSEHOLD];
   6:   while ( ($arr[$cCounter][HOUSEHOLD] == $hhname) && $cCounter <= $sizeOfArray) {
   7:     echo '<tr>';
   8:  
   9:     for ($k=0;$k<(sizeof($settings));$k++) {
  10:       $f_name = $settings[$k] . '_row';
  11:       $o_name = $settings[$k];
  12:       if ($alternate==0) {
  13:         echo '<td>';
  14:       } else {
  15:         echo '<td style="background-color: #f4f4f4; font-family: Consolas, 'Courier New', Courier, Monospace; font-size: 8pt; line-height: 12pt;  border-style: none; color: black; overflow: visible; padding: 0px 0px 0px 0px; width: 100%; margin: 0em; background-color: white;">';
  16:       }
  17:       echo $f_name($arr[$cCounter][$o_name]) . '</td>';
  18:     }
  19:  
  20:     echo '</tr>';
  21:     $cCounter=$cCounter+1;
  22:   } // while the same household
  23:   if ($alternate==1) {
  24:     $alternate=0;
  25:   } else {
  26:     $alternate=1;
  27:   };
   1: <script type="text/javascript">
   2:       $(document).ready(function(){
   3:         // first test for household
   4:         $("a").filter(".household")
   5:             .click(function(){
   6:               $.ajax({
   7:               url: "household.php",
   8:               cache: false,
   9:               success: function(html){
  10:                 $("#report").append(html);
  11:               }
  12:               });
  13:               return false;
  14:             })
  15:           .end()
  16:         });
  17:     </script>

Obviously this will not work since everything after the “comma” is also passed which means that this filter approach will not work also the ajax function does not pass these parameters.

Oh… I feel so N00b here. Such a simple question “how to pass two parameters in Jquery”… But… fun anyways! If anyone has a clue here please leave me a comment.

Cortege – Transform your outlook

The software from Cortege looks interesting, with it you can group your outlook contacts intuitively. I feel it is one step further to my full list of requirements (some of which i posted here).

However they still lack the most basic datatype: households. I would like so much not only to have “contacts” in my view but also datatypes (among others) like “household”, “website” and “company” (to start with) and e.g. to have the possibility of hundreds of predefined queries and a startup screen which shows me reminders, not only of birthdays and marriage dates but fully integrates all dates and reminders of all datatypes with my personal calender and integration with my phone and pda and lotus notes and my messengers and the wife´s phone and build in VOIP and auto import from all of those and …

In Cortege you will have to appoint one member of a household as the primary and store the addressdata and the marriage dates etc… to this primary person. That is one approach but a very limited approach e.g. i cant really assign seperate properties to a households or e.g. have automatic labels from my merging on households and it feels awkward to assing one of the household as primary, would this alway be the oldest male or something?

However Cortege comes closer to my wish-application than many of its competitors and i have tried hundreds of those. I think many people are waiting for an application like Cortege. If they would add my requirements i would actually consider my cornerstone of contact management.

I will create a new website where i will list my Requirements, a larger one than i have posted on posted here, i hope that some company picks up these requirements and as soon as they all have been filled in and i like the program or website i will buy it or join it. The thing is: i just dont have the time to build it myself. Maybe if i would quit my job and went to fulltime development i would be able to but currently: nogo.

A better Agenda-Mail-Todo-Email solution

I am thinking on how i can integrate my PIM information in a better way, somehow by the least amount of effort since i dont have time to write my own super-way-advanced-sync-crm application (if i would have time i would).

Some primary places where my current PIM information is:

- in mijn nokia 775, both in the SIM and in the Phone memory i have contacts, telephonenumbers, sms messages and such, this mutates when i am somewhere and i enter a new telephone number
- in my personal MDA Pro (PocketPC), phone number, agenda points, todo lists, addresses, and more, synced to my laptop and project pc via active sync, this is my lifeline on the road
- in my thinkpad inside lotus notes: agenda, adresses, many emails and more stuff, not synced at all
- in my personal laptop in outlook: mostly agenda points i need to enter or my wife entered, contacts, todolists
- in my gmail: contacts, groups of contacts and hundreds of related mails
- in dozens of social networks and other social web 2.0 sites on the Internet, i would like to have at least all names, emails and urls in a central spot
- on our family’s paper calender since this is my wife’s primary calender.
- in my wife’s paper telephone book (lots of contacts i dont have in my system, like the collegeas of my wife)
- in my own asp address book web application, my primary resource of all my contacts including birthdays, they are linked via households and groups, unfortunately i would lose the household information when synching with outlook since it doesnt have households
- on the desktop pc my wife uses she has an outlook, but that is not used much, still it would be nice if it would be synced
- in our house phone where we have the list of persons we call a lot since then we see the name of who is on the phone (manual entry)
- on our birthday calender (paper), hanging in the toilet, actually we have 2 of them hanging side by side
- in many older paper addressbooks which lay around in the computer room
- on my paper “todo list” books i have really lots and lots of information on my current todo stuff, somehow, sometimes it is easier to write on these things than to grab my pocket pc and do click click click
- in several spreadsheets i have the “wedding list” the “send a baby born card” the “send a x-mas card” and so on.
- In 12 paper ordners i try to keep all paper letters and stuff like insurance information, mortgage, healthcare, the car, and much much more, filled with addresses and important pim stuff

I probably could go on for a while-

All of these storages overlap resulting in chaos and missing information when i need it.

I really really need to get these storages synced and ordened. One thing i thought would get me started is to start using Yahoo Mail, since it has such a nice sync program which can sync several sources, my online data, my pocket pc data, my outlooks on different machines and so on. Unfortunately i loose information in my private asp pim application like households and reports like the birthday list.

A real handy personal address book – PRM ( Personal Relationship Management System)

today i have posting the following on the lifehack community board:

In the last years i have tried hundreds of free address books and smaller crm systems to somehow handle my list of contacts. None of them supply me the VERY simple things i need.

BASIC Requirements

I want to have multiple types of tables of records which are all related and accessable via a simple web gui which e.g. also displays on my pda.

1. A person, a person can hold infinite e-mails, infinite messenger ids, infinite websites, infinite telephone numbers, infinite dates (birthdate, graduationdate, death date), infinite notes, infinite tags, infinite categories, e-mails, …

2. An Address with ALL the properties of a person ( multiple telephone numbers, dates like marriage dates, etc…). 1 Address holds multiple persons and ofcourse as an extra the address data, which is more difficult since every country has different address formats.

By having checkmarks in both 1 and 2 i can for instance invite all addresses to my marriage and then at the same time print out a list of the amount of persons who are coming and their personal details (vegetarian/no vegetarian ..)

By having these combined dates i can print out a calender which displays not only birthdays (incl age) but also marriage dates and doesnt display marriage dates if one of the persons involved is death and such…

3. Groups, with all the properties of an address, so i can have seperate mailing lists of e.g. my poker groups with special stuff to note about these groups but also group people and houses in the most wildest combinations and e-mail them).

4. Categories, which, apart from tags neatly divide my part of the family of that of my wife :) and in which i e.g. can group people which i met in university 1 versus university 2.

5. Relations so i can group all my nephews and see some nice diagrams on who knows whom

6. e-mail integration so i can just click on my poker group and see all the past e-mails to the group OR to a person OR to an address e.g. the family X meaning my uncle, aunt and my 3 nephews (who also all have different emails, telephones and such)

And much more related like special groups for ABBO´s : getting a list of all the addresses i need to inform when i move to another house (they need to send my magazines, bank cheques, dentist appointments to a new address)

Linked to this is my personal calender so i not only see my appointments for this day but immediately see who´s birthday it is (and the age). With e-mail and integrated cardsystem i can immediately send out birthday cards.

Linked to this is my personal todolist because everything i need to do is somehow linked to one of the entities above, either personal, work, a hobby group or whatever.

A starting point is then my dashboard which also informs me if i passed a timeschedule e.g. call my mother at least 1 time in each 4 months :)


I have for the past years written an webapplication in ASP which somehow does some of the things mentioned above (houses, persons, categories, birthday reports, calender) but i am really interested if there is somewhere in the world some application which is ofcourse much more professional set up to handle these kind of things e.g. i have no e-mail integration and i would like to have something more modern.

I have posted a screenshot of what i wrote and worked with for the past years:
http://edward.de.leau.net/images/lifehack.gif
(i am the only user so sorry if i stole some icons)

Recently i have looked in diverse php groupware open source initiatives, see if SugarCRM would support households, looking into other new smaller CRM initiatives and such, downloaded lots of advanced address books but so far none i have found filled my needs.

Does anybody know if somewhere a web-based solution exists which does these kind of things?

If NOT is anyone interested in writing such application with a group of people? I really have not enough time nowadays to completely find enough time to write this thing again on my own (baby coming!) with all the enhancements and possibly many people will have much brighter ideas on how to build a better PRM system (like a sort of PLAXO enhancement) or integration with Real-Post-Card-Systems etc… but every day i think how much time it would save me if i would have it.