Horizontal ListView for Mono for Android!

I have previously ported a nice HorizontalPager from Java to Mono for Android, which works fine, however in order for it to work it needs to load all the views into the memory, which can produce a sluggish behavior if using some resource intensive views inside of it. This is where the Horizontal ListView is a lot better as it extends AdapterView instead of ViewGroup, which essentially means it is filled by an Adapter. Why is this good you might ask. This is both good but also very awesome because Adapters help minimizing the memory footprint as they load Views when they are actually needed, contrary to ViewGroup which does not contain such functionality per. default.

The Horizontal ListView was ported from Paul Soucy's implementation for Java and then additional functionality which adds Snap mode and also since I have been working a bit with MvvmCross lately a binding class has been added.

You can check out the project out on GitHub, where there are demo projects included for running on vanilla Mono for Android and one for running with MvvmCross!

I made a short demonstration video, see it here:

Things to remember before, during and after biking in snow!

So you are determined to jump on your bike and take a ride, even though it is snowing and is windy as hell! Well don't be afraid, as long as you prepare everything should be fine. I just took a long ride in a snow and here is what I gathered from my experience, that might serve you well before and during your bike ride in the snow.

Preparing for the bike ride

Let us start with the bike:
  1. Make sure your tires have tracks and are inflated to specification.
  2. If you have brake-pads on your bike, make sure they have good contact with the rim, as snow will build up at the forks where braking systems usually are mounted.
  3. Internal gears can freeze in the winter, and make sure they are thawed before you go riding in the snow as you will switch gears a lot.
  4. Make sure the bike is oiled up at the moving parts.
Getting you ready:
  1. Dress warm, however not too warm. You are going to work a lot plowing through the snow! Water proof clothing is recommended. Good gloves (i.e. leather) and warm boots or shoes are very recommended.
  2. Be well fed and hydrated before going biking. You can end up being out there for a while if you get stuck. It is not fun to be dehydrated or hungry. Maybe bring something with you if you are going for a long ride.
This should cover the basics, I think we are ready for the actual riding of the bike.

During the bike ride

So now you are ready to roll, I have made some observations, which you might appreciate when you are going out on a ride.
  1. Don't lock your breaks. The surface you are riding on is slippery and locking your breaks will mean the bike will steer sideways, you will have to use your balance and counter steer the front wheel to straighten up the bike again. This can be tricky, but also fun if you are in control.
  2. Watch out riding in car tracks. Cars weigh a lot more than you and your bike and compress the snow, making it difficult to steer through car tracks. Your bike will pull in the direction of the tracks so watch out for tracks steering into driveways and such. The same goes for when you ride in areas where water or snow has become ice, here you should really, really watch out driving in the already made tracks, you can have difficulties getting out of the track again, don't force it just follow it.
  3. Watch out going down hill. Going down hill is fun as you will gain some speed, however watch out at the end of it as you will probably have to break, and here you can easily lock your brakes accidentally.
  4. Get some momentum before going up hill. It will be a lot easier for you to go up hill if you have gained some speed beforehand, especially if the hill is very slippery.

After the bike ride

A good idea is to clean your bike after the bike ride, especially if you care about your bike. So remember to oil the moving parts once in a while. My bike repairman recommends every week during the winter and every 3 weeks during the summer.

Linking MonoTouch into Reference Assemblies

Jonas Follesø made a nice Visual Studio 2010 extension to allow for loading and compiling MonoTouch projects in Visual Studio. This requires us to copy over some dll files from a Mac computer to the computer running Windows. Once in a while a new version of MonoTouch is released and this process needs to be repeated. Since I am lazy I do not want to do this copy/paste work so I made a small bash script for this which copies the stuff over into a shared folder on my PC called VSMonoTouch. The folder is hard linked to the Reference Assemblies .NETFramework v1.0 folder. So the script looks as follows The script lives in the Windows shared folder, such that when ran it copies it into it. I also link the VSMonoTouch folder the Reference Assemblies like so When a new version of MonoTouch is released I simply run the script :)

Reiser4 FS update on SourceForge

I just read a news post on slashdot about Reiser4 FS was updated on SourceForge very recently and it seems that it is still being developed, even though Hans Reiser was convicted for murdering his wife. This news stirred up some very funny comments, which I will posts a couple off them here:

concealment wrote:
If you can find any name that's not related to murdering your wife, go for it. Bonus points if it's catchy.
Anonymous answered:
My vote for MRDRFS.
a reply from tobiasly:
REDRUMFS. As long as you don't use it for mirroring, no one will know.
A comment from serviscope_minor:
There's going to be a few off color jokes. May as well get started.
* It's a killer filesystem.
* My disk died. Was ReiserFS the murderer?
* It's more cutting edge than Reiser's knife.
Jeremiah Cornelius replied:
Kernel merge expected
in 20 years to life.
There are probably more jokes in the comments.

TeamAddins for MonoDevelop

Just recently found out that there is an awesome plug-in for MonoDevelop, which allows for using TFS directly in MonoDevelop. Before I found this plug-in I was using Microsoft Team Explorer Everywhere (TEE), which provided a command line tool, where I could manually check out and check in files, which was quite tedious.

TeamAddins does things similarly to what TFS does in Visual Studio, where it automagically checks out files when editing them and so on.

This plug-in is really awesome if you use TFS in your development environment. To use it simply fire up MonoDevelop, open up the MonoDevelop menu and choose Add-In Manager. Choose the Gallery tab, in the drop down menu choose Manage Repositories. In the new window press Add and  fill out the URL with: http://www.teamaddins.com/monodevelop/3.0 Now refresh the repositories and a new item under Version Control called Team Foundatation Server Add-In should appear. Install this and you are ready to set up your workspace and TFS server connections.

Find more information on TeamAddins' web page.