Wednesday, 20 July 2011

Microsoft's 'Roslyn' compiler as a service project

Microsoft plans to share more information on its "Roslyn" compiler-as-a-service (CaaS) project during its annual Microsoft Research Faculty Summit this week. 

Roslyn, at a high level, is Microsoft's vehicle for "taking .Net to the cloud." Microsoft's stated goal with Roslyn is to "build a compiler architecture that is amenable to use as a foundation for modern tools."… 

You can do all sorts of fancy tricks with the compiler pipeline, like automatic parallelization for example. 

I forsee compiler add-in companies sprouting up all over the place now. Development teams will have to agree on what add-ins to use, possibly even the ordering of the add-ins, so that the exe's match. Build-servers will have to include this technology, unless you can config the compiler+addins outside of FinalBuilder. 
Overall I see this is as a good thing, a bit like Firefox+add-ins. But I fear there will be only a few real gems, and a ton of dross out there

Tuesday, 7 June 2011

How to stop Skype crashing upon startup

Open a command prompt and run the following:

del shared.xml /s

Now you can run skype without it crashing.

Tuesday, 17 May 2011

Setting the PowerShell execution policy - the trap

I was recently pulling my hair out trying to run a powerShell script in VisualStudio. I kept getting the error: "File SomeScript.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details."

So I ran the script:
powershell set-executionpolicy remotesigned

Tried a gain, and still it fails! Only until I spoke to my developer collegue Damian Powell did he say you actually have to run that command for both x86 and x64 powershells.

So I ran:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell set-executionpolicy remotesigned
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell set-executionpolicy remotesigned

Hey presto! All works. Thanks Damian!

Monday, 14 March 2011

Service Broker sys.transmission_queue clean up

If you’re developing a Service Broker application and you misspell your services, forget to create a master key, or do any of the many things that result in your messages not being delivered, then your transmission queue will fill up.
Due to the nature of service broker, errors don't occur at the client but rather your messages go in to Service Brokers sys.transmission_queue and are then subsequently processed. If they fail, they stay in the queue. Some errors can be resolved, i.e. missing services. However, others can't, or are just plain difficult. I.e. You've misspelt something, or not used the correct security.
To clear your transmission queue you need to end the conversations, this is a handy little script for doing this. Be aware this ends ALL conversations in the queue and so should NEVER be used on a production system.

To see how many messages are in your transmission queue, use this
SELECT COUNT(1) FROM sys.transmission_queue
On my system i7, DB on Raid10, Log on Raid1, the following clears messages at approximately 20000/second.

Tuesday, 18 January 2011

How to dump your Skype database to a text file for easy searching

I had a problem recently trying to search the Skype instant messeage history. Searching for a historical chat can be done in Skype by pressing CTRL-F, but only if you know the person(s) that were involved on that chat. You cannot search the chat history globally.

The solution is to dump out the skype database into a TXT file for easy searching with notepad.

  1. Download SQLite command shell at (I downloaded
  2. Extract sqllite3.exe to a place on your path, or somewhere you can run it easily from.
  3. Open a DOS command prompt.
  4. Change the folder to C:\Users\[pc user name]\AppData\Roaming\Skype\[skype user name]
  5. There you should find main.db database.
  6. Type the following (in bold):
    • sqlite3 main.db
    • sqlite> .output c:\skype_chat.txt
    • sqlite> .dump
    • sqlite> .quit

You can now start Notepad and open file c:\skype_chat.txt to search through.

Wednesday, 5 January 2011

How to create a Gource graphical repository movie

Download Gource from extract to C:\gource-0.28.win32
Download FFMPEG from extract to c:\ffmpeg

If using SVN also download the following:
  1. from extract to c:\python31
  2. Python from I used v3.1.3. extract to c:\python31

In a DOS command prompt type:
  1. c:
  2. cd C:\Data Files\Projects (Use your own SVN repository location)
  3. svn log -r {2011-01-01}:{2010-01-01} --verbose --xml > c:\code-trunk.log
  4. cd C:\gource-0.28.win32
  5. The follow is only required if using SVN: c:\python31\python --filter-dirs c:\code-trunk.log > c:\code-trunk-gource.log
  6. gource --log-format custom c:\code-trunk-gource.log -1600x1040 --date-format "%d %B %y" --seconds-per-day 0.5 -a 0.1 --highlight-all-users --stop-at-end --disable-progress --output-ppm-stream c:\code-trunk.ppm --camera-mode overview --bloom-intensity 0.1 --output-framerate 25 --max-files 2000 --hide filenames,mouse -i 20
  7. cd c:\ffmpeg\bin
  8. ffmpeg -y -b 9000K -r 25 -f image2pipe -vcodec ppm -i c:\code-trunk.ppm -vcodec mpeg1video -s 1600x1040 c:\code-trunk.mpg
  9. ffmpeg -vcodec copy -acodec copy -i C:\some-cool-music.mp3 -i c:\code-trunk.mpg c:\code-trunk-audio.mpg
The last step is optional, it adds an audio music to your gource video.
In step 3 above, if you remove the -r {2011-01-01}:{2010-01-01} it will export your whole repository. I just wanted last years.