Like a lot of people these days I find someone keeps fiddling with the time/space continuum so when I came across GTD via Ed Brill I had to have a gander.
So why I am interested?
Well, I have 3 children under the age of 4 and run a small business - so that could qualify me as busy. If someone can tell me how to squeeze more out of less time I'm in. Also having read 7 habits and the one minute manager I seem to have a predilection for this sort of thing. Lastly, if you check out the Blogsphere, GTD is rampant among geeks - so whats the buzz?
The author David Allen's methodology claims to show you how to achieve stress free productivity. Unfortunately you can’t take a tablet to do that - you need to read a 259 page book.
Having read the first 120 pages I like the basic principles..
1. identify all the things (physical/physiological) in your life that are not in the right place (close all open loops)
2. get rid of the stuff that you don’t want/need
3. create a place that you trust and which supports your working style and values
4. put your stuff in the right place everytime - a place for everything and everything in its place.
5. do your stuff in a way that works with your available time, energy, and the context of any given moment
6. Repeat the above.
I do most of these things but not in a sequence or consciously or consistently. What's required, says Allen, is doing it consciously and diligently until it becomes unconsious. Wax on, Wax off, Wax on, Wax off etc.
On the downside I think the layout of the book could be improved - Allen could make better use of lists, diagrams and flowcharts. I find it strange that a productivity expert didnt include this but fortunately google comes to the rescue as usual with no end of other resources, blogs etc for this.
So having read thus far the next stage is to start practising it. I knew there had to be catch...
Geoff Higgins January 11th, 2007 08:08:03 AM
If you are using the fantastic DominoWiki template from Ben Poole and would like to use a rich text editor in place of wiki markup (TinyMCE in this case), the download on this page will give you just what you need!
I have pdf-ed some comments on how I did this and included them in the download, but for detailed instructions on how to integrate TinyMCE into any domino database, check out the article by Ferdy Christant. In fact, almost everything I have done in the example came directly from this article, and from Ferdy's Blogo template; there were just a couple of tweaks to get everything running smoothly.
The database included in the download incorporates the latest release of DominoWiki and Blogo (1.1 and 1.50 respectively).
DominoWikiTinyMCE.zip
Andrew Culbert January 3rd, 2007 01:53:38 AM
Happy New Year!
Here's hoping that this year will be as productive and enjoyable as 2006!
Andrew Culbert January 1st, 2007 02:30:00 AM
I was thumbing through my RSS reader this morning and a post from Rocky Oliver came to my attention. In short, he had been informed by a customer that an improvement he had made to an application involving the use of a single @dblookup in place of multiple lookups to pull through the same information had actually excacerbated performance issues. Sub Initialize
The technique that Rocky mentions is one that is tried and tested and well known to the wider development community, so, like others to post on his blog, I was surprised to hear that this might be the case. So, it being Friday morning, I rolled up my sleeves and did some amateur benchmarking.
Hypothesis
Replacing multiple @dblookups with a technique using a single lookup and string parsing adversely affects application performance
Methodology
I created a blank database, and populated it with 50,000 documents via an agent. There were ten fields on each on document, all containing unique values. There was also a numeric field on the document used for lookup purposes. In fact, the code of the agent should explain this a bit better-
Dim session As New NotesSession
Dim db As notesdatabase
Dim doc As notesdocument
Dim item As notesitem
Dim counter As Long
Dim tempvar As Variant
Set db session.CurrentDatabase
For x = 1 To 50000
Set doc db.CreateDocument
tempvar Evaluate(|@unique|)
doc.value_1tempvar(0) & counter & "1"
doc.value_2tempvar(0) & counter & "2"
doc.value_3tempvar(0) & counter & "3"
doc.value_4tempvar(0) & counter & "4"
doc.value_5tempvar(0) & counter & "5"
doc.value_6tempvar(0) & counter & "6"
doc.value_7tempvar(0) & counter & "7"
doc.value_8tempvar(0) & counter & "8"
doc.value_9tempvar(0) & counter & "9"
doc.value_10tempvar(0) & counter & "10"
Set item New notesitem(doc,"value_list_1",tempvar(0) & counter & "5")
doc.form = "frmtest"
doc.unique = x
Call doc.Save(True,False)
Next x
End Sub
I then created the first lookup view, the columns of which corresponded to each field on the documents.
I also created a second lookup view which contained two columns, one with the lookup field and the other that had all of the field values concatenated into a single string.
At this point I should note that in order to better time the amount of time that the dblookups take to perform, I used the Evaluate function within Lotus Script for the testing.
I then wrote a quick agent "Agent 1" that looked to "Lookup View 1" 10 times for each of the field values in each of the columns (ie, not using the field name).I also wrote an agent "Agent 2" that looked up to "Lookup View 2", but this time only did a single lookup and parsed the field values out.
Both agents contained code to time how long the dblookups took to run and also a loop that allowed me to easily increase the number of lookups performed. I ensured that each of the loops looked up to a different document in the views and used "NOCACHE" to ensure that caching of results did not improve performance for either agent.
The experiment
I ran both of the agents so that they would bring back the field values for 1 document, then 2 documents, then 5, and lastly 10 documents. I ran each of the agents at each of these levels 10 times to get a decent average from them. I collated the results and excel-ed them.
Results
The graph below shows the performance of agent 1 and agent 2. The pink line represents agent 2 and the blue line represents agent 1
| Number of docs | Avg time for A1 in ms | Avg time for A2 in ms |
| 1 | .9 | 2.89 |
| 2 | .34 | 5.29 |
| 5 | 1.5 | 13.86 |
| 10 | 2.57 | 27.6 |
| 20 | 6.3 | 58.72 |
Results
From the graph, we can conclude that it is much quicker to perform a single dblookup and parse the results out than perform separate lookups on each of the columns in the view. Therefore we can reject the hypothesis of the study.
Conclusion
Obviously, this is far from a scientific experiment (no, really!), as my 2 year old laptop running windows XP on 512meg of RAM is hardly a viable test environment*, but I think it does go some way to proving that the technique that Rocky mentions in his blog definitely the way forward if you need to perform multiple @dblookups for lookup purposes.
*There are several other limitations of course, a prize for who can name the most! Comments (0)
Andrew Culbert November 10th, 2006 04:53:06 AM
In the first article on DFS I explained how DFS could be useful for SMEs with multiple offices in backing up data. DFS is also useful larger companies in organising and simplifying their file structure.
For example if you have a number of file servers each with their own shares users may become confused as to which share contains which files and how to access each share.
DFS allows you to create a folder structure which includes shared folders from a number of different servers in a single consolidated share.
For example if you have two file servers in your Accounting department with a number of shares these can be consolidated into a single folder with a number of subfolders.
If you choose a Domain based namespace (as opposed to a standalone one) and have more than one domain controller the namespace will be fault-tolerant providing you have added your other domain controller as a namespace server. Information about domain based namespaces is stored in Active Directory whereas information about standalone namespaces is stored locally on the server hosting it.
If you add a replication group to a DFS namespace your entire file server architecture will be fault-tolerant as if any file server goes down the DFS namespace will direct users to a copy of it and if one of your namespace servers goes down the other namespace server will still accept queries.
Trevor Rea November 1st, 2006 07:22:34 AM
Imagine your nightmare scenario occurs and your server fails.
How long exactly would it take to get back up and running. If you don't know then you may be out of a job by the time you do get it back up and running. Preparation is the key to being able to recover quickly from a disaster.
For example do you know what the warranty of your server hardware is and the contact number for the supplier? Do you have a backup routine in place and more importantly have you carried out test restores to make sure that your backups are sound. A backup isn't a backup unless you can restore it so test them.
Also have you considered how long it would take to install Windows, all necessary updates, Exchange (or Domino) and restore from backups.
Another consideration is whether you are aware that System States backups cannot be restored to different hardware. If like most small/medium businesses you have one only domain controller and it's hardware fails and cannot be repaired you will have to re-create the entire domain from scratch.
If the answer to all these questions is, "Dunno?" then it may be time to look into image based software such as Acronis which has the ability to restore within hours to completely dissimilar hardware (provided you have purchased the Universal restore option).
On a sidenote Lotus Domino has one major benefit over Exchange in a disaster recovery situation. To get back up and running should be as simple as reinstalling Domino on another machine and restoring the data directory, When the Notes server starts up it will run a consistency check on the Notes databases and users should be able to access their mail as before. The Exchange recovery process is likely to be much more involved.
Trevor Rea October 28th, 2006 04:18:05 AM
If you have more than a few users then you really should be use VBscript log on scripts to automate various tasks.
Vbscript can also be used for a lot more than just logon scripts.
One website that is particularly good for learning how VBscript works is Guy Thomas' site at http://www.computerperformance.co.uk. Guy covers a variety of topics on his website but I tend to look at the VBscript sections more than the rest.
Two ways I have used VBScript recently is to set passwords for a large number of user accounts that were imported using csvde into Active Directory (from Guy's site). Setting passwords manually for 100 accounts would have been extremely tedious and time consuming.
I also used VBScript to map drives on client machines based on group membership, so if someone is in the Accounting group they get the Accounting shared folder mapped and if they're not in the Accounting group they don't get it.
This was based on a script from http://www.tek-tips.com/faqs.cfm?fid=5798.
The great thing about VBScript is that there if you want to do something, generally someone else has already done it (and posted the script on their website). If someone hasn't already done in most cases you can ask them how and they will find out.
Trevor Rea October 12th, 2006 07:47:49 AM
A few months ago there was mention in the BlogSphere of creating a way of seamlessly integrating the Mollio CSS design template into a domino database. I thought to myself, "Great Idea!".
However, these good intentions seem to have gone by the wayside, so I took it upon myself to have a go, and so Dolmio was born. (Domino / Mollio, geddit?!) The project is available for download at openntf.
Feel free to download and have a play with it - don't expect it to solve all of your CMS needs, but think of it more as a basic template for a website that looks pretty and is (very) easy to set up and use. Dare I say it, this could even be left in the hands of a user to manage?!
Andrew Culbert October 3rd, 2006 05:59:22 AM
Hello, and welcome to our new blog. Hopefully you will find the information here useful.
I’m going to start by discussing how the new version of Distributed File System (DFS) in Windows Server 2003 R2 can be useful in small/medium enterprises with multiple offices.
If you have multiple offices the problem arises of how to ensure that data on the branch servers is fully backed up. For example if you have a central office and a five smaller branch offices you could backup your data by installing backup software on each individual branch server and backing up each server’s data to tape or alternatively you could run a synchronisation application to copy the changed data overnight to a central server.
There are problems with both these options. The first option means that you will have to ensure that five different sets of tapes are changed daily and manage five different sets of users who invariably will forget to change the tape and need to be reminded daily. This is time consuming and since you are most likely overstretched already, it means you have less time to spend on the jobs that matter (like reading Slashdot / doing some actual productive work).
The second option also has an inbuilt problem. Say for example one of your users adds one line to a 2 Mb word document they’ve been working on. Your synchronisation application will then have to copy the whole 2Mb document overnight when only one line has changed.
DFS solves both these problems. DFS was introduced in Windows Server 2003 but is much improved in 2003 R2. It is much simpler to manage than five different sets of tapes and once set up correctly (something we could help with!) should run with no intervention. It also provides detailed reports so you can monitor the status of your replication groups and the amount of data copied.
The new version of DFS introduced in Windows Server 2003 R2 also introduced differential replication so that a one line change in a 2 Mb Word Document will result in just 2 lines worth of data being copied. In practice differential replication can cut the amount of data copied versus conventional tools by as much as 90%. In future articles I will describe in more detail how to set up DFS and some other interesting uses.
In the meantime here are some links for you to read.
http://www.microsoft.com/windowsserver2003/technologies/storage/dfs/default.mspx
http://www.windowsnetworking.com/articles_tutorials/Implementing-DFS-Namespaces.html
Trevor Rea October 1st, 2006 09:03:15 AM