June 2007 Blog Posts

Kevin’s WPF bag-o-tricks

Kevin's WPF Bag-o-Tricks is THE control / sample library for anyone doing WPF development, this is a link to a page that always has the latest version, (announced in this blog post). And if you do any serious WPF development you should really subscribe to Kevin Moore’s blog.

More Reports in yaTimer

The current version of yaTimer – version 1.1 – has just one report, a timesheet report. I plan to add some new reports over the next two versions, the current plan is to add at least one new report for the next version and 3-4 more in the version after that. If you are using yaTimer or any other time tracking tool please tell me what kind or reports you would like to see in yaTimer. Please post details about the reports you want to see in the comments, if you want to contact me privately you can use the contact link at...

How To Write an Automatic Update System Part 3 – Finding The Update

This is part 3 of a series, previous posts: part 1 ,part 2. In part 1 I presented a quick hack of an auto-update feature, In this part I'll describe a real auto-update component, and one that can be implemented very quickly. The first thing our auto-update component has to do is detect when an update is available, since we don't have much time to implement this feature (we have a lot of other more visible features we want to finish for this version of the software), we will take the easiest option possible – store a small file on the web...

yaTimer Cracked? Maybe Not

Some time ago I got my daily Google alerts e-mail – and what do I see? yaTimer appears on two crack sites, I was sure that if yaTimer ever gets popular it will eventually be cracked, but I wasn't expecting it so soon, Those site even showed up in the first page of google search results for yaTimer. My panic was a bit premature, I went to those sites and searched for yaTimer, no results, a few days later the sites disappeared from the google search results. It looks like yaTimer wasn't cracked (probably because they didn't even try to crack it).

The Single Most Important Google AdWords Advice

Look for negative keywords – add them to your campaign. Then a week or two later – look for more negative keywords and add them to your campaign. Then a week or two later … you get the point, keep analyzing you logs and adding negative keyword, otherwise your campaign performance will degrade over time. The google keyword tool has a new negative keyword finder, use it too.

How To Write an Automatic Update System Part 2 – Security Considerations

This is part 2 of the series, part 1 is here. Before describing how an auto-update feature might work I wanted to talk a bit about security, an auto update feature by definition downloads and runs program from the internet, your users trust you that your auto-update mechanism will only download and install updates to your software – don't abuse this trust. The internet is a dangerous place, the bad guys might find a way to modify your web site – or to completely hijack it, when your program downloads updates it has to be 100% sure those updates are from you...

Google Alerts

Google Alerts is useful service from google, you subscribe to a search term and every time a new page with this search term is found by google they send you an e-mail. As a small company use should subscribe to at least your company name and your product name, it will help you see who is talking about you on the internet. You can also add keywords relevant to your business, the name of your top competitors and your web site address (to find all links to www.example.com use link:www.example.com).

Blog Update

If this page looks strange you need to refresh your browser. I changed the blog design, the change is mostly technical and everything should look the same except for the text in the sidebar.

Source Code for How To Write an Automatic Update System Part 1 – the Simplest Auto Update Ever

Here is the C# source code for the previous blog post How To Write an Automatic Update System Part 1 – the Simplest Auto Update Ever this code is for .net version 2.0 or 3.0 try {    System.Diagnostics.Process.Start("http://www.example.com/upgrade_from_version_1.htm"); } catch {    // ignore exception, might be FireFox’s fault } Just let the system do the heavy lifting, it will automatically find the default browser for you and load the web page. The try-catch is needed, some versions of FireFox will not handle this correctly and cause an exception (as well as an error message) – but it will still load the web page after throwing the exception. Note that...

How To Write an Automatic Update System Part 1 – the Simplest Auto Update Ever

You are working on finishing the first version of your software product, you want to release it as soon as possible, you already decided to delay some features to the next version and you don't have the time to write an automatic update feature or to buy and integrate an existing solution. What do you do? You just add a page to your web site, the page just says there is no update available, in your application the "check for updates" button or menu item just opens that page in the user's default browser. When a new version is available -...

SVG to XAML Convertor

This is a very useful tool for anyone doing WPF development (not only Silverlight). If you are using WPF and the Silverlight image at the bottom doesn't look right don't worry, the generated XAML usually works well in the "full" WPF, you can test it using XAML Pad or XAML Cruncher(Scroll down to the Installable Executables section). This tool doesn't set the StrokeStartLineCap property correctly, whenever you see StrokeEndLineCap="Round" on a Path element just add a StrokeStartLineCap="Round" and you should be fine SVG to Silverlight Workbench, blog entry with information about it.

New yaTimer 1.2 Feature: Running From External Drives

disclaimer: this post is about unreleased software, everything here can be changed until the final version. This new feature is only in version 1.2 that is not available yet, the latest version is 1.1 and can be downloaded from the yaTimer download page . Version 1.2 will be a free (and automatic) update for everyone. The idea is simple, just run yaTimer from an external drive (for example a USB thumb drive) so you can take it with you and transfer it (with your data) from computer to computer. This feature is very simple to implement, but difficult to implement well, this was actually...

Time Limited or Feature Limited Trial Version?

The first thing you have to decide before releasing a free trial version of your software is how to limit the free version (after all, it only exists to encourage people to pay for the full version). A time limited program just stops working after a predetermined time usually 30 days after installation – the idea behind this is that the software is "addictive", that whoever is using the software will not want to stop using it. A feature limited program doesn't stop working, but it has some key feature disabled – here the idea is that the user can explore the...

First (Real) Sale

Last week (I haven't been able to blog for most of the week) I had my first sale. I've given a free license of yaTimer in exchange for an ad once, but this is the first time someone actually paid real money for yaTimer. yaTimer has a 45 days trial period, this sale was 50 days after I've started selling yaTimer and 45 days after David St.Lawrence wrote about yaTimer is his blog, I assume my first paying customer came from his blog but I can't know for sure.