Will Warren

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


The craft of code


Came across this great quote from the book The Pragmatic Programmer (which I whole heartedly intend to read after seeing this quote)

Read the rest →

Length: 170 words or 1 min Tags: discoveries

Awesome Database Design Tool: wwwsqldesigner


I stumbled across this software while trawling the internet looking for good design tools. It’s super simple to use and looks great. Because it’s web based (written almost entirely in Javascript), you can design without having to have any gigantic software packages installed. Also it’s free and open-source which I’m always a fan of!

Screenshot of WWW SQL Designer

Example of WWW SQL Designer

Read the rest →

Length: 141 words or 1 min Tags: database, discoveries

Creating a public API with Apache Thrift


I recently came across a new client-server technology that really fascinated me. Through my meddlings with CirrusNote, I know that 49% of the effort of writing a good API is coming up with standards (XML formats, rules, schemas etc.), 49% is writing boilerplate code (XML parsing, schema validation etc. etc.) and the other 2% is spent actually writing interesting code like database interaction and cool client-side stuff.

What is Apache Thrift?

Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml. - From the Apache Thrift website.

That sounds great. Reading the documentation (if you can find it) and browsing through the tutorials made me even more excited about Thrift. Some of the testimonials were also pretty inspiring (Evernote, Last.fm, Facebook (who actually invented Thrift) to name a few).

Read the rest →

Length: 1307 words or 7 min Tags: coding, projects, php, python

Password protecting folders with .htaccess


I always forget how to do this, so I’m posting it on here for posterity. Sometimes it’s useful to password protect a folder or files on your web server. If the web server is Apache, then you can use a couple of files - .htaccess and .htpasswd - to achieve this.

Read the rest →

Length: 206 words or 1 min Tags: sysadmin

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

Earthquake!


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

OMFG AN EARTHQUAKE

to

Did anyone else feel that?

to

Oh no, I hope noone was hurt :(

to my personal favourite

Read the rest →

Length: 233 words or 2 min Tags: irl

Read on...