Playing Restricted Multimedia Formats With OpenSuse Linux

The OpenSuse Community Restricted Multimedia Formats page was ultra useful today for getting my xvid-encoded videos playing smoothly on my OpenSuse installation. A nice extra surprise was that it smoothened the video on Flash playing within my browser. I was getting annoyed by jerky YouTube playbacks, and this ymp file for my Gnome environment seemed to fix this.

What should a developer know before building a public web site? – Stack Overflow

What should a developer know before building a public web site? – Stack Overflow.

In testing the new GigJunkie site before launching it (soon), I found my team debating to the point of near argument some of the finer points of our website which this topic thread would have helped us greatly, had we read before.

As I approach this weekend’s CAMDUG meetup which is an Open Space Coding Day with Alan Hemmings and other .Net Cambridge developers I’m very excited about working with folks on the topic of a public website for CAMDUG.

I’m hoping that my contributions to the day can be helped having read this article now. StackOverflow.com continues to impress me with its wealth of developer knowledge.

Tip of the day: Double question mark – Mikael Söderström

This tip on using the double-quotation marks in C# helped me a bit today when it came to integrating new code for an ASP.Net web application with legacy data access code that I was unsure about the quality of. The data access code that I was referencing  may or may not have null value checking, and there was no time because of an impending deadline to do code-review or quality control revision on it, but by using the ‘??’ check on values returned by it and some constant parameter values hydrated by web.config appSetting values II was able to implement default behaviour in my code for objects which did not get what was expected from the data access layer.

Of course this is just a band aid. The solution really lies in cleaning up that misbehaving code and defining standard contracts for behaviour between tiers that all the software team agrees to and which consistent code reviewing will reveal deviations from at earlier stages before integration, and perhaps the whole team becomes better developers because of it since we’re discipling ourselves on good practices for writing quality code.

Nitpick on Spark View Engine’s Drupal powered website

The getting started guide and the website themselves are part of a default-themed Drupal site, and as such trying to do a simple thing like log in using my Gmail address as my OpenId login encountered that particular Drupal bug. Luckily I host this blog at WordPress, and WordPress can be used as an OpenId trusted authenticaton provider too.

These bugs are so totally fixable, having them there still doesn’t help to give credit to the great idea behind Spark View Engine which is to “allow the html to dominate the flow and the code to fit seamlessly”.

Google Street View available for the UK

It’s a little cool, and slightly uncomfortable, to see London is now mapped out and available for Google Street View.

I am a newcomer to London,  and often find myself walking a bit to find unknown streets and places, a task I’d much rather prefer to do virtually from the warm confines of my home or office than on the cold breezy streets.

When you see photo layouts of directly up to your front door it does become a little unsettling for some reason, despite the usefulness of it all.

SQL Server 2005 – Troubleshooting Orphaned Users

I always seem to keep forgetting when I backup from one server and restore to a new server that SQL Server 2005 will recreate the users from the original server, and they become ‘orphaned’ as they don’t match to the similarly named user on my system automatically, and thus cause an error when an ASP.Net application tries to use its web.config settings to access the database.

This Microsoft Support article gives the steps needed to fix this orphaned user issue as well as create it in the first place, so this is a cool resource to have when training others on the issues they may face and how to mitigate them when wearing their database administrator hat.

Quick and Dirty ASP.Net on Linux – Ubuntu, Mono and MonoDevelop

Having become inspired by the recent TTLUG activity in finally setting up the new TTLUG website, as the group’s Trustee I found myself ashamed that I did not even have a Linux machine readily available to hack anymore. My work took me so far into the C#, ASP.Net, and now ASP.Net MVC worlds, that I had little time for Linux or Linux-based Open Source software. Thankfully, fate stepped in.

I saw my coworker about to throw away several old IBM T23 Thinkpads. Now if you know and love classic hardware like I do, the words “throw away” and Thinkpad just don’t come in the same sentence, those babies are beasts. I managed to get two of them, and 2 spare batteries.

On bootup at home one of these machine’s hard disks failed while Ubuntu was installing to its hard disk, however the other took the Ubuntu 8.04 CD installation with quite a surprising speed for a lowly Pentium 3 with 256MB RAM. After doing the expected setup without hassles and updating the distribution via the Internet (using a  network cable since there is no built-in wireless in the T23) I rebooted and now had a full Ubuntu desktop system ready to go.

The first thing I was curious to see if I could do was build and run a traditional ASP.Net web page and get it running on Linux. I had tried several years ago and the process was painful and I ended up giving up before I succeeded in resolving all the issues. I was pleasantly surprised then by the *almost* painless experience this time around.

Launching Synaptic Package Manager, a quick search in it for Mono revealed the package I needed to install, and I saw the results also included the package for MonoDevelop, a RAD tool I used in my first experience all those years ago. I instantly clicked on it, not only because I had liked the tool, but because of a rule of thumb I learnt when dealing with smart installation tools like apt and its GUI-frontend Synaptic Package Manager i.e. when not knowing exactly what to install in Linux to get developing with a language, installing an IDE for that language should ensure all the dependency installation packages were also checked.

After clicking apply, and the downloads had installed I ran MonoDevelop, and used the menus to create a new ASP.Net Web Application in C#. A little browsing through the buttons at the top menu revealed the Run button (the one with the cogs), and this is where my first hurdle was hit. The build failed, reporting that “Build failed: Executable not found: /usr/bin/gmcs”. Undaunted, I did a quick Google search for the error, which resulted in a link to this Ubuntu forum thread, which indicated if I installed the package manually it would take care of the issue. Another answer in this thread recommended I also install automake.

After starting a bash Terminal and running the commands

sudo apt-get install mono-gmcs
sudo apt-get install automake

I went back into MonoDevelop and tried to run my web application again. This time the application compiled, however when it tried to run I was hit with an error window stating ‘xsp2 server not found’. Learning immediately from the previous error that it was probably a missing dependency I went back to my Terminal and typed the command

sudo apt-get install xsp2

which installed the xsp2 server and its dependencies. Again in MonoDevelop I clicked Run, and was quite happy to now see my test default page open up in Firefox, with xsp2 hosting it at localhost:8080.

Now that I’m up and running, I’ll probably be browsing the Mono project site a little more often for tips and hacks I can use with my new Ubuntu system using my experience as an ASP.Net developer. Hopefully by the next Ubuntu release someone who knows how to will have fixed the bug that left out these few important files from the present installation and iron out the current kinks in the system.

What is a “Predicate delegate” – bytes

Thinking in terms of Delegates was always a bit of a challenge to me. So when I hit the Predicate parameter when trying to using a List<X>.FindAll(XType y).

The example given in discussion on this article went a long way to clearing this up. If I get more answers like this from Bytes I might start using this as my secondary source of programming answers after StackOverflow.

Customising the debug and run an ASP.NET MVC Application

I tend to use F5 to debug my code, my two teammates have a preference to have the codebase as a virtual directory in IIS and make changes to their code in Visual Studio and then reload the page in a browser to analyse the returned results.

Which is the better technique? Certainly my co-workers had a  point that by running using Cassini instead of IIS I was opening up myself to bugs popping up when the application was deployed to a real IIS box on testing and some IIS-specific behavior arose.

But why must I hassle myself with attaching IIS to the W3wp.exe process every time I want to do a line-by-line debug my code? And I always want to be debugging, especially in this new realm of integrated ASP.Net MVC where debugging a View means you have to worry about if the bug lies in your ASP.Net code, your JQuery code, or the service(s) your .ajax or .getJSON calls are making. I didn’t mind the hassle of having to recompile every time a change needed to be made inside the Controller or Business Logic layers once it meant I could track the state of my application during events as closely as possible.

Turns out we can have it both ways. These recommendation from Stephen Walter, although set on the topic of running an ASP.Net MVC Application specifically, are useful for any developer looking to customise the debug and run process when using Visual Studio 2008. So my coworkers and I will both be happy, because now they’ll be readily able to debug their code in real time (and engaging in a better coding practice at the same time) and I’ll be running my debug sessions on top of IIS to remove any possible hiccups from using Cassini for testing.

The settings are available on the Web tab on the Web Application Project’s properties page (ASP.Net MVC or not)  and to do this I have to make sure it is set to use a local IIS virtual directory (which I’ll make right there if it isn’t set already) and that I enable the check box that allows me to make code changes without the need to stop debugging and recompile.