Will Warren

The blog of an engineer from Canada who specializes in SaaS, HA, Cloud and Product Development. I work in the Internet.

Asynchronous Programming in .NET - The quick and easy way

When working on a program that has a GUI, it’s very important to make sure that the UI is fast and responsive. If your program is performing a lot of long-running actions (writing to a database, making network calls etc.) you should always make sure that the code that is performing those actions is not being executed by the same thread that the GUI is on.

Read the rest →

Length: 307 words or 2 min Tags: dotnet, coding, projects

An ASCII needle in an Extended ASCII haystack

I was tasked with writing some code to pull all the research project data that we’d collected over the past 10-15 years into our new J2EE-based product, Kuali Coeus. The legacy system ran off SQL Server which is a lot more forgiving of character encodings and string data in general than the new system (which runs off MySQL).

It had taken me a while to figure out a way to map all the old data onto the new data structures, but I felt like I had done a pretty awesome job. The few batches I had tested it with all passed its tests with no problems. However when I unleashed it on a full dataset (some 6000 rows), about 60% (roughly 2 hours) of the way through, it crashed, and rolled the ENTIRE thing back.

Read the rest →

Length: 687 words or 4 min Tags: java, coding, database


So there was a 5.9 earthquake outside Richmond, VA yesterday and we felt the tremors all the way up here in Ontario, Canada.

I didn’t personally feel it, but Facebook was instantly saturated with people talking about it. Reactions varied from



Did anyone else feel that?


Oh no, I hope noone was hurt :(

to my personal favourite

Read the rest →

Length: 233 words or 2 min Tags: irl

Pair Programming - Does it work?

tl;dr - It depends.

Pair programming is defined as the act of two programmers working at one workstation on one task at a time. One programmer enters the code (the driver), leaving the other programmer free to audit the code in real time as it’s being written (the observer). The idea behind it is simple: two heads are better than one. When someone else is watching you, your proclivity for stupid typos and silly¬†programmatic¬†errors is significantly less (forgetting semicolons for example).

Read the rest →

Length: 337 words or 2 min Tags: opinion

Read on...