Saturday, July 23, 2011

Debugging with Nunit and Visual Studio Express

It's possible to set breakpoints in unit tests in the freebie versions of MS Visual Studio:
  1. add a reference to the C:\Program Files\NUnit 2.5.10\bin\net-2.0\lib\nunit-console-runner.dll to your test project
  2. add the following class to your test project
  3. using System;
    namespace MyTests
    {
        class NUnitDebugRunner
        {
            [STAThread]
            static void Main(string[] args)
            {
                NUnit.ConsoleRunner.Runner.Main(args);
            }
        }
    }

  4. in the test project properties, under 'Application' set the output type as 'Windows Application and the Startup objects as the class created in the previous step. Under the debug tab, browse to the folder containing the csproj for the test project in the 'Working directory' field and put the name of the csproj file in the C'Command line arguments' field
  5. set the test project as the startup project
Now when you hit F5, any breakpoints in the tests will be hit.

Thanks to Blokley

Wednesday, July 20, 2011

Executing a script at startup

Having just reinstalled Linux Mint, I needed to install and setup Twonky media server again. Installing was easy with the supplied script, but to start the server (and kill it on shutdown - don't know if this is strictly necessary) you have to create a symbolic link in /etc/rc2.d which points to the twonky script in /etc/init.d and give it a name starting with Snn, where nn is a 2 digit number from 01 to 99:
    sudo ln -s /etc/init.d/twonkyserver /etc/rc2.dS99twonky


To kill the server, do the same in /etc/rc0.d but call the symbolic link Knn:
    sudo ln -s /etc/init.d/twonkyserver /etc/rc0.d/K99twonky

Monday, July 18, 2011

Dual monitor setup on Linux Mint

I had a dual monitor setup running perfectly on Linux Mint 10, but struggled to get it going under Mint 11. From Googling it appears I was not alone, so I decided to skip 11 and revert to 10.

These are the steps for a clean Mint 10 installation:

  1. open the additional drivers application and install the recommended drivers and restart the machine
  2. open the NVIDIA settings and enable the second monitor and check the Xinemara box
  3. restart the machine
That's it!

Sunday, July 3, 2011

Forcing screen to stay on

Here's a nice way to make the screen stay on for a particular activity. Just put this in the onCreate method:

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);


It's nicer than the POWERLOCK method, which requires an additional permission in the manifest:

    <uses-permission android:name="android.permission.WAKE_LOCK">

And in your Activity:

    final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
    this.mWakeLock.acquire();

    //and when you're done with the WakeLock:
    this.mWakeLock.release();