visit Epsilon Minded Gregory Mazarakis | All posts by greg - Page 2

Collaboration Data... chaos! ...the continuum...

by Gregory Mazarakis 23. April 2009 02:03

It didn’t take much time to find out that approaching your Lotus Notes client using .NET technology can be done by using an interop assembly, name Interop.Domino.dll. After I found this piece of information I got so excited because there seemed to be a standardized way to approach the Lotus Notes client. And indeed, the assembly is filled with objects, interfaces, variables and methods that all reassemble around the functionality used within the client.

In a second stage into my research I thought I would “quickly” gather some documentation in regards to the interop assembly so I can understand the structure of the objects, the relation they have as also to locate the exact location of the data I need, to synchronize both collaboration platforms. It turned out that finding documentation on the interop assembly for the Domino directory is a challenge on its own. All I was able to find was maybe a dozen articles presenting some examples on how to use the assembly, but I failed to find even the smallest piece of information in regards to object structure, relations and contained data.

I did some reverse engineering by examining the assembly, assisted by useful information I found on www-12.lotus.com. The information provided here describes the properties and methods of an object, as also the hierarchy but its examples are limited to Lotus Notes Script. The syntax is similar to a Visual Basic syntax, but for iteration through collections they make use of commands that are not available in VB.NET. A bit of casting and converting will be necessary to get to the final data. As a result of this reverse engineering I think the following can be stated:

  • We have several physical files we need to access (I prefer to sync with local repository, instead of syncing with the server).
  • These files contain views; it is a matter of finding the correct one in order to synchronize contacts.
  • We have a Lotus Notes Session, which contains several databases represented by their physical names.
  • Both views and databases contain documents. Documents are the essence of the platform as they contain the actual information. The way they are presented on the screen seems to depend on which view they are outputted through.
  • Documents contain items; an item is an individual piece of data.
  • Off course I was able to gather much more information in regards to the assembly but I don’t think it is applicable to post it in this entry. It is to late... I need some sleep! If somebody needs additional information feel free to contact me... I will start building some prototypes now to see how I can reach the data.

    Tags: ,

    Development | issues

    Collaboration Data... chaos!

    by Gregory Mazarakis 21. April 2009 21:27

    Maintaining my personal data has always been a challenge to me, as organized as I might be, according to some people. Working in different environments also implies that there is a need for a central storage of data, accessible to any environment and without that environment being predefined. How can I achieve that? This is a question that has kept me busy many times in the past. Every day I am confronted with some kind of a hole in my collaboration data... wrong contact info, missing contacts, etc, etc.

    Keeping my documents and development in sync is something I succeeded to do pretty much from the beginning when the problem arose. I keep my files in sync between my laptop and my PC at home with the help of some tools that use the concept of "workspaces". On the other hand, as stated above, synchronizing my collaboration data (aka Contacts, Appointments, etc, etc) remains still a challenge. That challenge became even bigger when I started doing projects for a client of mine that makes use of the Lotus Notes application as their collaboration platform... I am lost... contacts in Lotus Notes, contacts in MS Outlook on my laptop, contacts in MS Outlook on my PC, contacts on my mobile phone...  everywhere I turn I have a different set of contacts! Imagine the chaos in my calendar!

    I decided to confront the issue. I will start building a tool to synchronize some collaboration data between the two platforms and I will make the code available when it is ready.

    Tags: ,

    Development | issues

    Going Open Source?

    by Gregory Mazarakis 16. April 2009 17:24

    Lately I have been troubled a lot by the idea of Open Source. I find the idea very attractive and I want more than anything else to share my experience in coding. I guess this is derived from the frustration of past years when I used to work for I private company where I had nobody to share my ideas with, on a technical level. Trying to share some ideas was like speaking Chinese to a Greek guy! Whenever I found the courage to engage in such a discussion in order to promote an idea in regards to automation (and saving money), I remember, I had to translate the technical aspects into something more common.  For example, a database was a cabinet filled with drawers (tables)… up to this point I was able to find a common ground (vocabulary) over the years and I succeeded in being understood by non-technical, elder, people. But, what about the semantics and the processes? What about the questions in regards to “why must we use this”, “why do they work in such way together” etc, etc. Never mind… then it became hopeless…

    Today I am released of such difficulties. Being a freelance solution developer and project manager brings me in contact with people that have more in common with me. I still feel the need to share my experiences though.

    Driven by this need I have searched several times on the net for a proper way to kick-off an open source project, without having to work for a long time before having a workable/distributable product. What I did wrong during my searches was, indeed, to assume there was a necessity to have a workable product in order to enter the world of open source software. I finally understood that an open source project is nothing more than a subject you start working on that evolves to a certain point were other people get involved, and starts to follow its own path further on. The difficult part comes when you reach that junction were other people are to be involved, because then you are in a desperate need of “something” that will help you coordinate further growth. You need a collaboration platform I suppose… good communication and a solid goal seam to play a key role into maintaining and supporting the product.

    I guess everything starts from the passion one has about a certain topic and his willingness to dive further into analysis, investigation and the realization of that topic. It then becomes a project, a personal project, and after a long time you realize that other people can also be helped by the outcome of your project. Then comes the question “do I want to sell, or do I want to share”? “Will it be for the money or for the satisfaction”?

    Well… I think I want to share… for the past several years I have been working on a number of solutions and they have indeed evolved to a certain point that they became practically unmanageable for one person. They all originated from a certain need, one was a request from a friend, another one seemed good for me to use for knowledge expansion and gaining of experience etc, etc. In the weeks to come, I will take some time to think about what I really want to do.

    If somebody can point me to a good resource where I can learn how to support an open source project, then, please contact me. By the way, check and see what a passionate man can do. Visit Dries Buytaert’s open source content management system Drupal. I will add Dries’s blog reference to my blogroll; I really admire his achievements, courage and passion. Look at this open source blogging application! Created by Mads Kristensen and Al Nyveldt.

    Tags: ,

    Open Source | Personal Thoughts

    My first entry...

    by Gregory Mazarakis 15. April 2009 22:09

    This is the very first entry I make into my blog... can you recall these intentions that everyone formulates into statements at the end of a year? To my opinion they are distinguished from other intentions because of three key reasons. First of all they are all about improvement in some way, second, the person who states them is always certain about his ability to achieve his goal, and third (but not least), most of these intentions are vaporized during the following year and are slowly forgotten.

    My intention to start a blog was not something like that. My intention is not to blog on a daily basis and be driven by some kind of a moral obligation because someday in the past I committed to doing something, my intention is to rather try to write down my thoughts into an article whenever something touches me. This could be on a variety of topics… my family touches me, my professional life touches me, even when I develop applications and come up with the long sought solution for a problem I sit back and enjoy the moment.

    I would like to take a moment to thank the guys over at BlogEngine.NET. They have done a wonderful job creating an open source blogging application, and I must say that they have indeed succeeded to their goal of creating an application that is easy to install, easy to maintain and most important, easy to use.

    What will I blog about? As stated above I will be writing down my thoughts on a variety of subjects. Coding solutions, projects I am working on, difficulties I encounter, basketball, vacations, Greece, my family… these are all topics I will definitely blog about!

    A, and English, for what it is worth, is not my mother language.

    Tags:

    Blog

    Powered by BlogEngine.NET 1.6.0.0
    Theme by Mads Kristensen

    Gregory Says...

    ..."Find something you love to do and you'll never have to work a day in your life"...

    Gregory Mazarakis

    me...

    Application/Solution Developer and Project Manager in a wide variety of business applications, driven by the need to obtain knowledge. Particularly interested in client/server applications, web applications and relational database design using MS-SQL Server or other products. Strong analytical and communication skills are pushing my career towards Project Management and a more abstract approach of the used technologies.

    Mother tongue is Greek and Greece was, is and will always be one of my top passions. Other languages used on a daily basis are Dutch and English...

    thank you for visiting!