I have been using FolderMatch for a long time in order to synchronize file between the main computer I use and the synology file server. However, perhaps because the synology is linux based, Foldermatch did not handle access and authentication correctly. It was impossible to delete files on the synology network disk. Otherwise it is a great tool. I then tried OpenSync, but soon ran into the problem that it does not support to not check on file size and date. Basically, pictures, mp3, etc. doesn’t really change and in most cases the file size difference is due to the different file systems on the local pc and the synology. So to get a speedy synchronize I want to omit that check for many folders. My latest test is Beyond Compare, a good old and reknown file comparison tool that also includes folder synchronize. So far it seems to work ok – it support both network access and one can turn off size and date check.
September 28, 2008
More about the MIL-Lite upgrade, I have had several problems. I should start by mentioning that we require our applications to work on MIL-versions back to 6, in order to be able to support the excisting customer base:
- Matrox have strengthen the typing on all MxxxInquire functions. Probably a good idea, but it means that all previous uses of the functions, for example MBufInquire is not supported anymore and have to be upgraded. Since we are dealing with pointers here, pointers to stuff of different lengths, this is not an easy upgrade. My solution was to use #if M_MIL_CURRENT_INT_VERSION >= 0×0900 in those places where I was unsure about whether further use of the pointers required a specific width.
- I am unable to retrieve previous hanlder ptr and user handler ptr:
MappInquire(M_CURRENT_ERROR_HANDLER_PTR,&m_HandlerPtr);
The type of the third parameter is not supported anymore (MAPPHOOKFCTPTR)
- The most serious problem is that Matrox has ceased support for the Mvga functions. I used them for getting a pointer to a DIB structure, in order to draw the dib to a printer device context. I canot find a real alternative to these functions
- And, not related to code, I am not able to debug the application as I constantly get an error message about missing license. However I have a Matrox Meteor 1394 card installed, with a Sony 1394b camera. I am not sure why this does not work – perhaps the Meteor is not supported in version 9, or there is still problems with 1394b speeds. Anyway I will order a USB license key.
- The Matrox developer forum is a closed one. Whenever I try to enter, typically every sixth month, I am not able to log on. Of course I have a valid support agreement and all that, but I do not remember my username or my password. I do remember the email address I am registered with, but it seems not to be enough. So I am not able to see any posts. I don’t understand why the access needs to be that restricted.
So at the moment, I am not able to get Mil-Lite 9 to work on Vista – or any version of MIL to work on Vista, I am not able to get help through the forums, and I wonder whether I rather should switch to another vendor!
September 27, 2008
Finally, Matrox has released version 9.0 of their MIL-Lite imaging library. Finally – because it is the first version with Vista support, and as most people know, Microsoft has ended selling Windows XP. I have got a hand of a beta version and installed it today. Up to now I have had to use a second computer with Windows XP to debug and run the applications. More on that at another time.
Anyway, as the application also use DAC boards from Computerboards (now Measurement Computing), I needed to instasll their Vista-compatible InstaCal driver too. Their drivers always work ok, so I was surprised when the installation repeatedly stopped with the error “Error 2738: Could not access VBScript run time for custom action”. After searching the Measurement Computing forums , I went to google and it turned out that this error stems from vbscript.dll not being registered. How on earth that windows component did get unregistered I do not know, but this procedure fixed the problem:
1. Run Command Prompt as administrator
1.1 Start Menu -> All Programs -> Accessories
1.2 Right click on Command Prompt and select Run as administrator
2. Type cd c:\windows\system32 into the Command Prompt and hit Enter
3. Type regsvr32 vbscript.dll into the Command Prompt and hit Enter
September 27, 2008
It has been a long while since last time I updated the blog. However, as I am now in the process of upgrading my work computer (actually building a new one), a few interesting points have appeared, where this post is about the first one.
I decided to go for to Samsung f1 1TB disks in a raid 0 setup. The Asus P5E3 motherboard uses the Intel ICH9R controller. After booting up, and entering the ICH9R configuration utility, I had to fill in the stripe size – it defaultet to 128kB. This started a long and interesting web search after what is the optimal stripe size. Interesting enough, different sites, including anandtech and Toms hardware had completely different advices.
Raid 0 means that data is divided among the two disk, and the stripe size in a raid 0 configuration is the size smallest allocation unit on each disks. After selecting the stripe size in the ICH9R controller it is impossible to change without destroying all the data on the disk. So If one decides to go for 128kB, the first 128 kB of the total 2GB disk is situated on disk A, and the next 128kB on disk B, etc. It has no connection with the filesystem allocation size (cluster size), and the stripe size is invisible to the operating system.
There are basically three different factors that determines the optimum stripe size.
The first, and probably least important, is that the windows swap file always uses 4kB cluster allocation units. Given that this file is very much in use, you will be able to almost double the swap file write and read speed as you can execute two 4kB writes at different adresses at the same time (random access) – if the stripe size is 4 kB.
The second factor is that reading and writing sequentially large data files (for example copying, downloading, video editing, …) benefits from a large stripe size. Anandtech had examples of up to 1024 kB.
The third point is tha random access of small chunks of data benefits from less IO access time – that is how fast i takes from a request for a read/write is started to it actual starts. The more disks you have in a raid 0 setup, the slightly larger will the access time be.
In actual life, your choice of stripe size will depend on what type of user you are.
So, in the end, adriansrojakpot recommended 4kB or 8kB, Anandtech recommended “as large as possible”, and Toms Hardware, having the most throughout review, recommended 64 kB (but had a big flaw late in that article about large stripe size vs. file system cluster size).
My solution? It turned out that the ICH9R controller does not support more than 128kB, and I decided to go for that. However, the ICH9R support “Intel Matrix Storage” that allows for dividing up the disks in two raid 0 solutions, so I went for 1843 GB with stripe size 128 kB, and then a small rest of 20GB with stripe size 4kB. After installing Vista I moved the swap file to that 20 GB partition, so that I could get the best of two worlds!
In the end, the solution gave a top score 5.9 in windows experience index, and this image shows how it looks like in the image storage console view.
March 24, 2008
When upgrading to Vista and Outlook 2007, I decided to go through various backups and get 10 years of outlook use into one mailbox file (outlook.pst). After collecting several different .pst files, I opened all in Outlook. Thereafter I moved mail messages from the backup .pst files into the current one. However, then a problemed surfaced: When moving a folder hierarchy of mails (e.g. “personal folders\archive\…”) between an old .pst file into a new one with an identical folder hierarchy outlook automatically create a sequence numbered folder (e.g. “personal folders\archive1\…”). This was not what I wanted, and not what you are used to when moving files around your harddisk(in that case you get a replace question or something like that).
Anyway, there was no easy solution here, other than going through that hierarchy and copying the contents of each subfolder in the backup .pst to the similar subfolder in the target .pst. After pondering about for close to an hour, I created this macro vbscript to do the job:
Option Explicit
Sub MoveToArkiv()
Dim objFolder As Outlook.MAPIFolder
Dim objFolderFromBase As Outlook.MAPIFolder
Dim objFolderToBase As Outlook.MAPIFolder
Set objFolder = Application.Session.Folders.Item("Personal Folders")
' Set the two next lines to the approprite to and from folders
Set objFolderFromBase = objFolder.Folders.Item("Arkiv3")
Set objFolderToBase = objFolder.Folders.Item("Arkiv")
' Recursively go thorugh the folders and subfolders, moving every item
MoveItems objFolderFromBase, objFolderToBase
End Sub
Sub MoveItems(objFolderFromFolder As Outlook.MAPIFolder, objFolderToFolder As Outlook.MAPIFolder)
Dim objFolderSource As Outlook.MAPIFolder
Dim objFolderTemp As Outlook.MAPIFolder
Dim objFolderTarget As Outlook.MAPIFolder
Dim blnFound As Boolean
Dim objMailToMove As Outlook.MailItem
For Each objFolderSource In objFolderFromFolder.Folders
blnFound = False
' check whether a similar folder exist in target
For Each objFolderTemp In objFolderToFolder.Folders
If objFolderTemp.Name = objFolderSource.Name Then
Set objFolderTarget = objFolderTemp
blnFound = True
End If
Next
' If not found, create
If Not blnFound Then
Set folderTarget = folderToFolder.Folders.Add(folderSource.Name)
End If
' For each subfolder runs this procedure
MoveItems objFolderSource, objFolderTarget
Next
' Then copy all items in the folder
For Each objMailToMove In objFolderFromFolder.Items
objMailToMove.move objFolderToFolder
Next
End Sub
To use it edit the two lines at the top to set the correct base folders for moving from and moving to. The script was used with Outlook 2007 but should work on Outlook 2003 as well.
March 24, 2007
One of my biggest computing interests is operating systems. At least it used to be. Of course, as anyone with some experience in the IT industry, I have tried several, including – for the record – Windows (2.1, 3.1,95, 98, Me, NT 3.5, NT 4.0, 2000, XP, Vista, CE, PocketPC), Dos 2-Dos 7, OS/2 (2.1, 3.0, 4.0), Linux since kernel version 0.96 (1992), Solaris, HP-UX and other Unix variants, Symbian and BeOS,real-time operating systems like pSOS, VxWorks, Windows CE, Integrity, Nucleus, QNX, OSE, LynxOS, Symbian and others.
The greatest of them all I used to think was OS/2. I even went to WarpStock in 99. Well, I still think so. However, IBM killed it by not updating it and not releasing new drivers. And they did not make it open source. The greatest thing about OS/2 was of course its object oriented build and interface, and all those nifty applications one were able to build by replacing or extending a single component of the OS.
Anyway, the reason I mention this is that I have just tried Microsoft Virtual PC 2007, and I really smiled when discovering it has OS/2 support! It did not take me long to get the old OS/2 Warp CD and install it as a virtual machine on my pc running Vista. Of course I could have used VMWare as I did a couple of years ago. But Virtual PC seems to do the job as well.
Whether OS/2 still looks that great I am unsure of. After all, things has improved in the world of personal computing since 1994. XP and the Vista user interfaces are better (but not object oriented). Some of the Linux windows desktops also look good. Still it was fun to have another run at OS/2!
March 4, 2007
High-performance hardware from time to time needs direct access to memory in order work properly. That is the case with the excellent Matrox Imaging line of framegrabbers. In particular, I am using the Meteor/2 family of framegrabbers (a framegrabber is used for capturing images from a camera, usually for industrial, medical, or surveillance purposes). The driver and library that comes with these framegrabbers, Matrox Imaging Library, ensures during installation that the framegrabber has direct access to memory by adding a switch to the Windows XP’s (or NT or previous versions of windows) boot.ini file: /MAXMEM=xxxx where xxxx is the upper limit of memory (in MB) that windows will use. For example
multi(0)disk(0)rdisk(0)partition(1)\windows=”Microsoft Windows” /MAXMEM=2040
This lines reserves 8 MB (of my computers 2048 MB memory) for direct use by the framegrabber.
However, with Windows Vista this possibility changed. It does not use the boot.ini file any more. Instead, one has to use the Boot Configuration Data Editor or bcdedit. This utility can be run from the command promt (but remember to run the command prompt “As administrator” – by rightclicking and selecting “Run as administrator”).
BCDedit is explained here, at Microsoft Technet. /Maxmem is replaced by the option TRUNCATEMEMORY, and in order to get the same effect as the example above try from the command-line prompt:
bcdedit /set TRUNCATEMEMORY 2139095040
As can be seen, the limit 2040MB now needs to be specified in bytes.
After a reset, going into Control Panel – System, you can see that it has worked. In order to remove the limit, try
bcdedit /deletevalue TRUNCATEMEMORY
There should probably be a warning here: “Don’t try this at home”. Or at least don’t try it if you don’t know what you are doing. Of course, by the level this is documented by Microsoft, no one knows even half of what they are doing, so …
To the end of the story, I have not managed (yet) to get Matrox Imaging Library 7.5 to run properly on Windows Vista. On the other hand, as this blog explains, I managed to reserve memory for direct use by the hardware.
March 4, 2007
If you are like me – having 5-10 computers around the house (home computer, work laptop, wife’s work laptop, 2x old work laptop, 2x media centers, …) – you’re soon getting tired of copying all thos mp3, movies and images around so that they can be accessible from all the computers.
The solution of course is easy, but not free. I recently purchased the Synology DiskStation DS-106e, added a 500GB disk, and voila! This product works like a charm. It is based on linux, and Synology makes available free updates to the software inside. I used it both as a printserver, diskserver and ftp server. In addition it can function as a webserver as well, but I haven’t tried that part yet.
The setup is based on an onboard webbased configuration tool. I have created a few network shares, one for my personal stuff and one with public read availabilty (within the family) so that everyone can make use of the music, images and videos on their own computers.
The alternative is of course using an old computer running linux. However, the Synopsis was very easy to configure, and remembering hours and hours of previuos time used for Linux configuration, this device pays for itself. Recommended!
February 11, 2007
I installed Vista two months ago, and although most drivers were installed out of the box, a few drivers did not. Among those is the fingerprint reader on my “Microsoft Keyboard wit Fingerprint Reader”. Actually, the keyboard itself works fine, it is just the fingerprint reader that has no driver installed.Before Vista, I used it for logging on to my home pc almost every time.
I was expecting the drivers to be installed automatically throug Windows Update, but today, after two month I gave up. First I tried Driver Detective, an excellent piece of software which already has a Windows Vista version. However, it reported the device with a “driver not found” mark.
After a bit of searching I go the drivers in two steps:
i) Installing the latest version of the IntelliType Pro software from Microsoft
ii) Installing the DigitalPersona Password Manager 2.0, also from Microsoft.
After a restart (which by the way take som time on Vista), and some calibrating using the autostarting Wizard, I worked fine.
Anyway, logging on to Vista is easier now. For the home office, it offers good enough security.
February 4, 2007
In Vista, under normal circumstances, the Documents, Music and Video folders are located under c:\user\. If you rightclick on these folders, either from the start menu or from browsing to c:\user\, and select “properties” and then the “location” page, it is possible to change the location to a different folder, perhaps your old catalogue of mp3, or divx video files.
Have a look at this artice.
January 28, 2007