About Hardcoded Software
Hi there. My name is Virgil Dupras, I live in Québec, Canada. I'm a software developer and have been for quite a while. The vocation of this website changed a lot over the years and I think that the best "about" section would be a short history of it.
In 2001, I started this website to host my software, Mp3 Filter (initially written in Delphi and now called dupeGuru) which I soon started to sell as shareware. Things gradually went for the better and, in 2004, I could leave my day job to work exclusively on my own software.
It's also in 2004 that I discover Python which became (and still is) my favorite programming language. I then rewrite my applications in it. Initially, the GUI layer was kept in Delphi and worked only in Windows, but in 2006, wanting to support Mac OS X, I started doing something I called "cross-toolkit development" which allowed me to support multiple platforms without ending up with an ugly, non-native looking app that wxWidgets or Qt gave me on OS X.
Supporting Mac OS X was the beginning of real money coming in. That initially startled me because, after all, Mac has a much lower market share than Windows. I understood that Mac users had more money and, more importantly, had a different culture than Windows users: they were used to pay for their software. I started really liking Mac.
All this time and until 2009, I'm doing proprietary software. I began my career thinking that free (as in speech) software developers were silly because they were giving their "property" away, all for nothing. However, over time, my understanding of intellectual property evolved and in 2009, I make a leap to try to reconcile the income source of shareware with the freedom of open source.
At the time, I feared a collapse of my revenue, which never happened, but I wasn't satisfied with my solution because it wasn't really open source and didn't make total sense, in retrospective. A year later, I leap again and start fairware, which this time is really open source.
Once again, the feared collapse of revenu never happens and, quite happily, I sail through development having finally reconciled software freedom and revenue... until 2012.
In 10 years, I had developed a few applications, but only one ever worked commercially, dupeGuru. dupeGuru has been very fun to work on, but after this much time, one grows tired of developing the same application. In fact, I grew tired of "shareware type" software development altogether. So, I took a job at a local free software consultant firm and pretty much stopped actively developing HS apps.
I still maintain HS applications, but I greatly reduced their development pace. Because fairware is all about selling development time instead of granting usage permission to intellectual property, it doesn't make sense collecting money for that software, which is why I have been phasing it out.
Because my interest for developing HS apps as actively as in the past is waning, and because it saddens me to think that these projects could eventually become unmaintained, I'm currently in the process of trying to attract new developers to those projects. Am I doing it right? I don't know, but I'm very interested in hearing what you have to say about that.
2018-05-17 -- L'ami Linux (link)
I've just started doing freelancing under the name L'ami Linux (The friendly Linux dude).
2017-09-01 -- dupeGuru - Windows builds are back! (link)
2017-08-23 -- moneyGuru 2.11.0 released (link)
- Avoid duplicate logging to both stderr and NSLog. [cocoa] #476
- Improve build process on Mac OS. [cocoa] #474
- Fixed year handling in macOS date formats. [cocoa] #477
- Fixed currency fetching for ranges greater than 30 days. #479
- Add an option to enter date elements from left to right instead of the default d -> m -> y order. #480
- Fix crash during pane drag & drop. [qt]
- Fix Bank of Canada currency fetching. It was broken.
- Fix quirks with edition mode during transaction addition. [qt]
- Add UTF-16 support to CSV imports. #486
- Improve autofill by allowing it to autofill more often.
- Improve build process.