Archive

Posts Tagged ‘Software Development’

NOT feeding the monster

February 15th, 2011 Eric Murano Comments off

So it’s been over 7 months since I posted on my blog.  I suppose there’s nothing wrong with that but I had intended to post regularly.  I definitely haven’t been “feeding the monster”, which is a blogging term that means you have to blog often to get a following.  I’m not really after a following; this is just a publicly available brain dump, really.

PayDay is on hold due to paid freelance work taking precedence over the unpaid passion project.  That’s ok, though.  The good thing about a passion project is you’re doing it for yourself and you’re not going to let down anyone if you need to shelve it for a while.

I was going to post about currencies in PayDay and I started writing the article but I think I’ve overcooked the idea of currencies.  Now I don’t think I even need currencies in PayDay.  It’s meant to be a personal budgeting tool that gives you a heads up about recurring bills.  Not many people have recurring bills that are from another country.

Another thing I was missing was the idea that the act of converting currency and how it is done is tied very much to the situation.  Why are you converting the currency?  If it’s to see how much that Think Geek t-shirt will cost in AUD then you’re going to have to take that conversion with a grain of salt.  That AUD figure is just not going to be what you are going to pay for that t-shirt once the transaction is done.  The obvious reason is that the exchange rate changes all the time.  That’s obvious.  Another reason is that the financial institution that make the purchase through will charge you their own rate for the conversion.  If you get your conversion rates from xe.com I guarantee that the rate will be different to the one that your bank will use when they send the money to Think Geek.  Let’s not forget that some banks will also charge a conversion fee.

Sometimes you just need an approximate representation of that foreign currency in your local currency.  You know it’s not accurate but that’s ok, you just need to know a ball park  figure.  Then currency conversion is more about statistics; “on average how much AUD will x USD cost?”

For currencies to make sense in PayDay I would have had to add the concept of ‘approximate value’ into the model.  I think that’s a valid concept to have but I wouldn’t bake it in until a few version later.  I think, also, I’d have to have the approximate value feature done before I could think about having multiple currencies in PayDay.  I’d make it so that approximate values were applicable not only to currency conversion but to bills that you know might change in value over time, like Brisbane City public transport costs (grr!).

Anyway once I finish my current freelance work I’ll get back into PayDay.  I bought a MacBook Pro a few months ago so I’ll have to get PayDay up and running on that.  I want to keep it as a .Net project so I might have to install Windows 7 on the Mac or wait for MonoMac.  Mac Zealots please don’t write in abusing me ;)  If it’s all too hard to get a working .Net environment running on my Mac I might change the the project’s technology stack but I’d really like to have a mixture of technologies i.e. a .Net backend and website with an iOs app that talks to the backend.  We’ll see.

PayDay: My new development project

July 8th, 2010 Eric Murano 1 comment

Note: I originally called the project ‘PayCycle’ but since this is the name of an existing commercial product from Australia.

In my last post I wrote about how I’m managing my finances by using some simple maths in Microsoft Excel.  As a way to learn C# and .Net I’ve started writing the logic of the spreadsheets into a simple desktop application.  I’ll also be extending the features of the application to help with forecasting how much non-fixed cost bills will cost in the future.  Things like car repairs and how much you spend on lunch at work.

I’m calling the software PayCycle since the central idea is your pay cycle and how your budgeting revolves around how much and how often you’re paid. Since finding out there is already a product out there called PayCycle I’ve decided to name the software ‘PayDay’.

I could keep using my Excel files to organise my budget if I didn’t have the urge to have a software project to tinker with in my spare time.  The project deals with money (which I’ve found is more involved than just using numeric data types), with time periods and frequencies (yearly, monthly etc) in what appears to be straight forward from the 10,000 foot view but ongoing work will reveal the devils in the detail.

The project will initially deliver a desktop application that uses WPF for the user interface, WiX for the installation project and NUnit for unit testing. I’ll be using both SharpDevelop and Visual C# Express as IDEs.  SharpDevelop because it has integrated NUnit support along with WiX integration.  Visual C# Express because is has WYSIWYG for WPF.  I would have used Visual Studio as it does everything I need but I can’t afford the license fee right now so.

SharpDevelop will contain the library project which is where the business logic of the software will be.  This is the project with the unit tests.  The windows application project will be in Visual C# Express and it will reference the built DLL file that the library project produces.  Hopefully there will be no surprises with debugging!

Once the desktop application is up and running I’ll look into writing a web based version.  With this intention in mind I’ll be very careful with how I write the core of the software.  I can not have any business logic in the WPF project. One of the lucky benefits of having two different IDEs is that there’s a clear delineation between the ‘display’ and the ‘logic/model’.

I’ll post new articles about my progress.  I’ll write about design decisions and problems I encounter.  I’ve already started programming so there are already things about money, currency and time frequencies that I’d like to share.

My next post will a little boring; it’s a walk through of the spread sheets I use for personal budgeting.  It will give you an understanding about what I’m trying to achieve with the software.

The mower mechanic’s grass is always long

September 3rd, 2009 Eric Murano 2 comments

About 5 or 6 years ago I decided that I needed to own my name as a domain name.  I knew people would take an @ericmurano.com e-mail address more seriously than an optushome or hotmail address.  I’m a web developer after all, I need to show people that I take digital presence seriously. When I recommend that someone register their business name as a domain I don’t want them to say “But Eric, YOU don’t do that, why should I?”.

I registered the domain and got myself a web-hosting account and started giving out my new e-mail address to anyone that asked. That worked out well.  I could tell how impressed people were when I read out the e-mail address … ok, I’m exaggerating but it still communicated a sense of professionalism.

I decided when I setup the domain that I’d just have a small banner image with www.ericmurano.com on it just as a placeholder and nothing else.  I didn’t really have anything to put on a website.

People were expecting a website, though!  I’d get comments like “I see you haven’t done your site yet”. They saw my @ericmurano.com e-mail address and rightly determined my web site’s address by ditching the username portion and adding the www (clever rabbit).  What kind of example was I setting by having a domain name but no site, not even a single page “contact me” form?

So at some point I decided I needed to put a site up.  I wanted to blog every now and then and show off my 5 star photos but I didn’t want to install a blogging package, I wanted to write the software myself.  I did actually write a decent blogging app in PHP that generated all the blog posts in HTML files based on posts that are stored in XML.  It wasn’t complete but I was quite proud of the code.

I didn’t deploy it though.  It didn’t have an admin suite.  I had to write the posts in XML then upload them and run the ‘generate site’ script.  That wasn’t a problem but due to other commitments I no longer had the time to organise the deployment and eventually the whole project fell off the consciousness wagon.  I looked for the code a few weeks ago but I had lost it in the ‘Great Hard Drive Crash of May 08′ (more to come about that tragedy in upcoming posts).

When it came down to it I realised that I could have had a site up years ago if I had just caved in and installed a pre-written blogging package (WordPress).  So what if I didn’t write it myself?  It would take years for me to write an application that did half of what WordPress does.

I’ve noticed that I have the same attitude to my work.  I always want to re-write legacy code.  I always “want to do it right this time”.  I never want to consider off the shelf packages that would fulfil the requirements in a fraction of the time it would take to green-field an application.

Sometimes it’s good to let go and just do what gets the job done rather than wanting to control all aspects of the design of the application.

Sometimes the mower mechanic just needs to hire someone else to fix his mower!