Author Archive
Mono Migration – Stage 1 Continued
by Ryan French on Sep.21, 2009, under Uncategorized
So a couple of weeks ago I mentioned the Mono Migration that my work was attempting in an effort to reduce costs and enable us to move our product onto EC2 as we are looking at some new projects that require us to be able to expand our system quickly and easily.
Since then we have had quite a lot going on at work, and are only just starting to focus on the migration again, so here’s where we are up to at this stage.
Firstly. we are going to move the database from MS SQL Server 2000 to PostgreSQL. This in itself will be a massive task as there is no easy way to move the hundreds of stored procedures over (or so I’m told, I havent looked into it much yet). Once this is done we will be running the code as is against the new database and hoping that it works. I’ll let you know once that is done and where we are going from there.
On a side note, this blog along with a couple of others hosted on this server will be moved to a new server before the 30th of September. As long as everything goes smooth there should be minimal downtime for the site, and I should be able to keep all the info currently on here. I’m going to be backing everything up just in case though.
Checking access to files on a server
by Ryan French on Aug.02, 2009, under Uncategorized, freebsd
So recently I put some files up on a file server I rent with a couple of mates, mostly ones used in my CV so that prospective employees can check papers etc that I have written. In an attempt to try and figure out who has accessed these files I, with the help of my friend Paul wrote a smal script that uses the access log, grep and whois to figure out the domains that have accessed the file. To be honest its a small script, and if I had more experience with bash I probably could have written it myself. In fact, if Paul had wanted to, I know he could have written it no problems, but it was all experience. In case someone wants to use it, here it is.
#!/bin/bash
FILE=”/tmp/$(basename $0).$RANDOM.$$.txt”;
echo Searching for access to files with $1;
sudo cat /var/log/apache2/access.log | grep -i *PUT YOUR NAME HERE* | grep $1 > $FILE;
if [ -z "$2" ]
then
echo “no exclusions”;
else
echo “excluding files containing $2″;
cat $FILE | grep -v $2 > $FILE;
fi
cat $FILE | cut -d ‘ ‘ -f 1 | sort | uniq -c > $FILE;
for i in $(cat $FILE)
do
echo -ne “$i - “; whois $i -H | egrep ‘OrgName|descr’ | head -n 1 | cut -d ‘:’ -f 2;
done
To use it, just copy the script (replacing the part that says *PUT YOUR NAME HERE* with your username) into a file, set it as an executable using chmod +x, then run it. The first argument is the string you are looking for access to, e.g. pdf will show all pdf’s, and there is a second optional string for if you want to exclude files with names containg a certain string.
Mono Migration – Stage 1
by Ryan French on Jul.14, 2009, under Mono, Uncategorized, freebsd
Well I promised I would be updating on how the effort was going to migrate our VB.Net/ASP/SQL Server 2000 product here at work to Mono, and as the first steps are now underway, I have a few things to talk about.
For starters we are looking at porting our code to C#, rather than VB.Net in Mono, and removing the ASP stuff from it etc. We are also looking at implementing localisation of the site. Originally when looking at this in Visual Studio we would have to look at purchasing a tool to pull out all the translatable strings in the program. Luckily, I found out mono-develop does this for free. Awesomeness.
At this stage the idea is that we are going to go for a proof of concept and move the code over to Mono as it is in it’s VB.Net/ASP form, then we will look at doing the actual port, as time is a little critical for us.
The first step is to setup a virtual machine for running Ubuntu (our OS of choice for the cloud) and install Mono/PostgreSQL etc on it. I choose to use VirtualBox for 2 reasons, 1) I hadnt used it before and it looked very interesting and 2) VMWare was causing my machine to go into an infinite “Cannot load Drivers” loop on the windows host, so it wasnt really an option at all.
Once I had completed this I downloaded and ran MoMA. This tool will scan the assemblies for your program and tell you what problems there are with running the code on Mono. We have a few problems on ours, but most of it is SQL calls that aren’t implemented, so I’ll find a way around this.
At the end of the MoMA tool there are links to a few sites that have definately helped me in moving the code over for the first test. Now there is just one last step before attempting to build the code in Mono and see how badly it breaks.
Clean the code. It is pointless trying to port everything over unless you need everything. I have currently removed about 50k of code from the site that is either no longer used and, thanks to my predescessor, has never been removed. I also found thousands of table entries and a good 30+ tables and another few hundred stored procedures that are either not used or obsolete. I’m still in the process of cleaning up before I try the build, but once that is done I shall let you know how things go.
My new big project (sadly it’s for work)
by Ryan French on Jul.09, 2009, under Mono, Uncategorized, freebsd, mpls
Here at my new job we develop in ASP/VB.Net, running off of an SQL Server 2000 (yes, it horrified me too when I found out). The company has been around since ~2000 and we have decided now that it is a time for a change. We are hoping in the next few months to be moving away from a single server based model that we have now, onto something a little more modern, a cloud.
At the same time as we do this, we are wanting to make the move to using OSS. This is going to be quite a move, with our development enivronment being firmly embedded in MS technologies at the moment. So we have a few steps that we are going to be going through. I am hoping over the next few months to share my experiences in moving our product from the MS environment to running on Ubuntu server using Mono (the C# variety) and Postgresql. It will be interesting, with the need for a demonstration of the new product by mid-August.
Also, on a side note, I have moved out of where I was staying temporarily into a new place, and once I have sorted out my internet issues I shall be looking at finally getting around to working on MPLS again.