Movember November 13, 2008 at 10:43 am

Yes, you heard it here first. I’m joining the large number of people around the world growing a mo during November to raise awareness (and hopefully money) about some of the health issues that affects us fella’s right around the world, namely prostate cancer and depression.

Truth be told I have only just registered, BUT, I have complied with the rules of Movember since the 1st, with the intention of registering and doing a blog post about it.  I will update this post shortly with a progress shot taken a couple of days ago, along with more during the coming weeks.

Having a read of these stats, and it shows why this is an important issue:

  • Depression affects 1 in 6 men and most don’t seek help. I personally know a few people who are suffering from it and although they have all gotten help, one of them took an awfully long time to do so.
  • In Australia last year, 18,700 men were diagnosed with prostate cancer with 2,900 dying from it.  This is equivalent to the number of women who die from breast cancer each year.

We have pink ribbon day, and all of these other foundations and events and such for breast cancer, but as far as I can tell, not much for prostate cancer even though it kills the same number of people each year.  As for depression, well, 1 in 6 is a pretty large statistic.  That’s why Movember is a great project and hopefully all of us that are growing a Mo are able to raise even a little bit more awareness of these issues so that do suffer from these two issues are able to get the support they need, and hopefully in the case of prostate cancer, find a cure.

So, does this sound like a good enough reason to sponsor me? If so, please visit my donation page. (All donations above $2 are tax deductible and receipts are issued).  The funds raised go to the Prostate Cancer Foundation of Australia and beyondblue.

Otherwise, sit back and watch as the Mo grows…

Updated on 2008-11-18

As promised, here are the progress shots.

Day 9

Day 18

We have progress! November 3, 2008 at 11:15 pm

Since the last blog entry, I have been a rather busy bee doing all sorts of programming.  Here’s a summary of what I have accomplished in the past few months.

I was able to finally place the main software into feature freeze, albeit about a month after I had initially hoped, and with some extra features that have been well received by the users.  There is one change which is reported to be disliked however I am reluctant to change it unless more than 50% of the users actually do dislike it.

I have completed the rostering system, which has been deployed and I believe is working well.  We initially had some bumps with the email function, but I have sorted that.

The backup system is currently undergoing a pilot at one office which has picked up a few issues but I believe is ready to deploy in the next week.  I was originally going to use the SharpZipLib .NET component, however I was unhappy with the amount of time it took to archive all of the files, and with no ability to retrieve feedback from the component as each file was added, I switched to using another component which I acquired thanks to the VB.NET Resource Kit offered in 2004.  Even though the component was built for .NET 1.1, it works happily (so far) in .NET 2.0.  I learnt how to use the BackgroundWorker object too, which works well.  There’s another part of this software, namely the media writing, but I’ll add that to another post shortly as I think it deserves it’s own post.

Which brings me back to the present.  I have revived the web project.  I had a bit of a play around with some javascript modal box components for the login .. wizard I guess you could call it .. but they didn’t really seem to play nicely, so I have shelved that for now.  It was only to try and make the interface look funky, but I’ll work on funkifying the project later on, once I have the process and function of the project working.  At this stage I think it’s still going to be a .NET 2.0 and AJAX 1.0 project, but that is subject to change if I ever feel like it.  I am about to start on the inter-user messaging side of the project so that I can have most of the easy stuff out of the way before I tackle the hardest section.  I find it better to concentrate on the easier items before moving on to the more difficult ones.

So there you have it.  I’ll shortly post about the media writing code, along with anything else I come up with along the way, but until then I’ll be head down in Visual Studio madly trying to get the web project well underway before something happens which causes us to shelve it again.

Custom Reports in .NET? September 1, 2008 at 9:58 am

When I wrote my first incarnation of the student database back in January 2005, we needed some reports (receipts, student lists etc).  I used part of the ComponentOne Studio for .NET that I was lucky enough to acquire as part of the free VB.NET Resource Kit.  It worked well, but the report requirements for that application were fairly small.

For our main office application, the requirements were much higher.  We’re a franchise of a national organisation and so twice a month need to provide the major franchise with reports on the number of clients served and the amount of money received.  Given that we have a large number of locations to report on, the report generally spans a few pages.

I had learnt about the Crystal Reports for Visual Studio .NET and how to use them after developing and deploying the student database, and as such wanted to use that package rather than ComponentOne, as the report I needed to do is something like Crystal’s Cross-Tab report.  The ComponentOne reporting component was rather primitive in this regard.

I did try the Crystal Cross-Tab, and although it almost worked for a small number of locations, the large number we have meant that it would fail to display correctly.

In the end, after some research, I found that I could extend the System.Drawing.Printing.PrintDocument class, override the OnPrintPage event and manually generate the table structure and output the data required, in the format I wanted.  It is a rather crude solution, but it works.

I have extended it in the past few months, because I wanted to be able to generate a PDF output with a particular filename, as the report viewer I was using wouldn’t allow me to do that without displaying a save dialog.  After searching for .NET PDF components, I eventually found one which did everything I wanted called iTextSharp (http://itextsharp.sourceforge.net/).  Again, the work I had to do behind the scenes to translate the calls to e.Graphics into outputs onto the PDF is crude, but it works well.

I bring this up after all this time, because I’m about to create my first new report using this format in the last few years for the rostering application.  I just hope I can remember how to do it.

My blog 101 August 31, 2008 at 5:21 pm

When trying to think of something, anything, to blog about in the past it has been a random hodge-podge of irregularly-updated posts about nothing and anything at the time.

Considering over the next 12 months I will be embarking on a rather large feat to develop 3 new applications, one of which is a web app, and to continue maintaining the 2 applications that are currently deployed, I think I’ll use this blog to document that journey.

The applications we currently have deployed are:

  • a customer database, trust account management and reporting system: almost all of the day-to-day functions for our offices involve this software in some way, shape or form (.NET 1.1); and
  • a student database: we run a course each year as a way of gaining our seasonal staff and their details and progress need to be tracked (.NET 2.0).

These applications have been constantly updated and expanded (specifically the first one) to improve the workflow for our staff and have both been developed over the past 3 years.

The new applications are:

  • a rostering system: the current rostering process involves updating an excel spreadsheet which can be rather cumbersome and has a somewhat messy format (.NET 1.1);
  • a backup system: backing up data to other PCs in the office, and to allow the backup to CD weekly (.NET 1.1/2.0); and
  • a web-based customer engagement application: to allow the organisation to seek clients who prefer to interact either outside of hours, or are more tech-savvy and prefer to interact with an organisation online (.NET 2.0/3.5)

The first two aren’t terribly exciting.  I’ve already started on the first one, the basic UI is completed and functional, the next bit will be to implement the report generation.  The second is to replace the mostly manual process of backing up data to CD, and to once again regain a nightly backup process within the office.

The third is the most exciting.  I’ve been out of the web game for some time now.  I mean, our current website has still got a table-based layout, with some CSS for formatting only.  I want the application to be functional and useable without sacrificing the security of the client’s sensitive data.  I had intended to get this up and running by June/July of this year, but many delays brought me to concede it for another year.  I am still optimistic that it can be completed by June/July next year and given that I’ll be starting development on it in the next month, I hope that I can churn out something good quickly and work on making it better.

So, please join me on my path of discovery as I fumble through creating these applications, and learning more about what the web has to offer a developer.

Watch this space at 2:21 pm

Thanks for coming to visit. I’ve just changed over to WordPress for this blog, and I’m in the process of writing my first full post on what I hope to achieve with it. Stay tuned, all will be revealed shortly.