Comparison of gravitational and electromagnetic radiation from synchrotrons

This report compares electromagnetic and gravitational radiation from synchrotrons and is part of a work on searching for potential gravitational antennas on earth. It is in Norwegian, so you may want to use Google translate, but the symbols are universal.

It describes how to get from the basic electromagnetic equations (Maxwell) and gravitational equations (Einstein) to formulas describing both electromagnetic and gravitational radiation from an accelerated particle in an synchrotron, and plots the radiated power as well as compare strengths.

Below are some images from the report, the details you will find by downloading it below:


How to take full control of a folder in Windows

I have an external disk that I move between computers. It contains the MyDocuments folders with pictures , music and documents, and that is where the problem starts. Trying to acces this folder from a different computer will not work, you won’t get the permission. Even being an administrator and right-click on properties, then the security tab will not work. However, after investigating somewhat it turns out a solution is:

1) Go to start, type cmd to search for the command shell cmd.exe.

2) Right-click and run it as an administrator.

3) Now, given the <folder_name> you want to access, type on the command line

takeown /f <folder_name> /r /d y
icacls <folder_name> /grant administrators:F /t

This should do the trick. If you have a localized version of WIndows, y for Yes maybe another letter representing yes in your local language, and the “administrators” might be called something else to.

How to add a list of events to Google Calendar

Google Calendar works great, and I am using it a frequently. Though I have used it since its release in 2006, I started using it more after getting a Nexus 10 tablet into the house. The Nexus now synchronizes work and home calendars neatly, and is instantly updated. It does not sounds like a breakthrough, but I have always had some issues with synchronizing, getting double appointments, etc. The only bad thing about Google Calendar is that they removed the search function, which enabled you to search for other public calendars. That function made the concept much more useful, and it is strange they removed it in a “social media” world.

Anyway, this post is about how to import a list of events into Calendar. It is not straightforward to guess how, but it is somewhat easy. The key is to list your events in a comma-separated file, like this:

< line 1>Subject,Start Date,Start Time,End Date,End Time,All Day Event,Reminder On/Off,Reminder Date,Reminder Time,Meeting Organizer,Description,Location,Private

<line 2>Fotball match Liverpool – Manchester United,03.04.2013,19:00:00,03.04.2013,20:45:00,FALSE,,,,Liverpool,A classic,Anfield Road,

<line 3 …>

Where to find import calendar function
Where to find import calendar function

Do not copy orwrite the text included in the <>, that is just for clarifying where the line starts for this post. The first line is a header with all possible columns. The second line is an example of an event. You would add additional lines for additional events. Fields that are not in use are just leaved empty. Still I have used FALSE for the All Day Event flag. I have also used a european date and time format, 4/3/13 can also be used as an alternative (3. April). It turned out to be important to write 19:00:00 not just 19:00, that is – remember the seconds. After filling out all events, save it as a plain text file.

When done, go to Other Calendars, select the dropdown, and then select “Import calendar”. Select file, and remember to select the correct existing calendar to import into. Voila! and you are done.

Scrum product owner role

Some time ago I made an illustration for the Scrum product owner role that I think can be of use to others. It is based on the branch of Scrum represented by, in addition to perhaps some minor adjustment. The focus for this figure is not Scrum, but the Product Owner role itself, within scrum. The reason I made this was that in my experience the product owner is the hardest role to adopt to for many companies due to a lot of organisation constraints and previous structure. It is shared with a creative common license, so go ahead and use it! Click on the image below to get the full picture.


There is also a Norwegian language version available, click here.

Folder synchronization

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.

Upgrading to MIL-Lite 9

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 >= 0x0900 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:
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!

Error 2738: Could not access VBScript run time for custom action

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

Raid stripe size – what does it mean and what is the optimal stripe size?

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!

Intel Matrix Storage View

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.

Cleaning up 10 years of outlook history

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
' 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

' Then copy all items in the folder
For Each objMailToMove In objFolderFromFolder.Items
objMailToMove.move objFolderToFolder
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.

Back to OS/2

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!