TLDR: Despite claiming to backup all your data, Backblaze quietly stopped backing up OneDrive and Dropbox folders - along with potentially many other things. A good decade For ten years I have been using Backblaze for my personal computer backup. Before 2015 I would backup files to one of two large external hard discs. I then rotated these drives between, first my father’s house, and after I…
Hi I’m Robert Anton Reese. Originally from New Zealand, I now live in London, where I work as a programmer. I studied Philosophy, Politics and Computer Science at Otago University (BA, BSC), and am also a Microsoft Certified Professional (MCP). Over the last few years I have travelled through over 60 countries, including most of East, South and South East Asia, and most of Europe.…
Experiments in HTML5 The Mandelbrot set A canvas implementation of the Mandelbrot set. Hexagon.js An implementation of a hex grid in JavaScript, using canvas. .Net Please not these articles are fairly dated. ILSpy A replacement to Reflector, ILSpy is a powerful decompiler .Net 4.0 Code Contracts Newly included in .Net 4.0, a look at Code Contracts and static analysis. .Net 4.0 Parallel Computation…
For some time I have been interested in the new HTML5 features primarily Canvas and WebGL. For this reason I looked at implementing a very simple RPG in HTML5. Five years ago the idea of doing so would have been ludicrous. An HTML implementation would have been clunky, the obvious choice would have been flash. Fortunately most people are using up to date browsers with decent Canvas support. My…
For the last several years I have had a subscription to the excellent Safari Books Online site. Safari Books is run by Oriely and is the Netflix of technical books. Most of their catalogue, and a huge swathe of other publishers books is available for a monthly fee. While Safari is an extremely useful resource it does have two flaws. Firstly some books use a poor choice of fonts which render badly.…
Scite is a free open-source text editor based on the Scintilla source-code editing component. It is extremely powerful, though the documentation isn’t as good as it could be. To help rectify this here are some tutorials and scripts to get you started. Tutorials Binding Commands A tutorial on how to bind Lua functions to the tools menu and keyboard shortcuts. Word Count An introductory by…
WiX (Windows Installer XML toolkit) is a powerful tool from Microsoft to generate MSI files. Building installers is a pretty horrible process, WiX takes much of the pain out of the process. You can download form the official site . A gentle introduction to WiX I discuss the basics of how to use WiX to build installers. Using WiX to install SQL databases and execute SQL scripts Frequently…
For Several years a key tool in .Net developers toolchests has been Reflector. Originally a free tool developed by Lutz Roede, it was bought by Redgate Software in 2008. Redgate had announced that they would try and keep the tool free, but next month free support will end. Those looking for a replacement may be interested in ILSpy . ILSpy has been in development for a few months and already has…
I’ve had the E-P1 in my hands for a few weeks now, long enough to make some conclusions. Lets start with the bad aspects of this camera. Weaknesses Several commentators have lamented the E-P1’s lack of flash. I however haven’t found this to be an issue. I rarely used the flash on my Canon, and the E-P1 is vastly more capable at taking low light shots. A fill flash would be nice,…
.Net 4.0 introduces new libraries for handling and greatly simplifying multi-threaded programming. This is a welcome addition to .Net for two reasons. Firstly writing multi-threaded code tends to be complex. There are all sorts of difficulties when working with threads that simply don’t exist for single threaded applications. Add to this an environment where multiple programmers are working…
One of the new features of .Net 4.0 is code contracts. Code contracts are a way for programmers to define how methods and classes should behave in a more complex way then simply their signature. A contract for example could specify that a methods parameters should not be null, or that the value it returns should always be positive. Code contracts themselves are broken into two parts. The library…
In my last post on wix I described how to set up a simple installation project that installed four files and created a shortcut in the start menu. Today we will look at installing and running SQL against databases during installation. Installing, or configuring a database is not an unusual task during installation especially with programs that roll out with SQL Express. When we left off we had a…
One of WiX’s powerful features is XML interaction. WiX can create and delete elements or change values and attributes inside XML files. To do this we use either the util:XmlFile or util:XmlConfig elements. The two elements differ in subtle ways. util:XmlFile does not let you specify to be run on uninstall though it does allow you set the Permanent flag, which will undo the action on…
A colleague of mine asked me what photography blogs I subscribe to. So as follows are the blogs I read regularly relating to photography. Berlin Guide Several times a week Grapf posts a photograph from around Berlin. A mixture of architecture and street photography. link The Big Picture The Boston Globe’s website boston.com publishes groups of photographs from the recent new several times a…
An important part of many application installs is configuring windows services. WiX has the ability to install/uninstall as well as start and stop services during instalation. The first element we need to set up is the ServiceInstall element. ServiceInstall controls how the service will start and what user and authentication are to be used. Note that the ServiceInstall element does not specify a…
Four and half years ago I bought my second digital camera, the Canon 300d . At this time the 300d was already a year and a half old, and along with the Nikon D70 was one of the first quality, “low cost” entry level DSLRs. The 300d impressed me greatly, previously I had been using a 4MP point and shoot which I had grown to loath. The SLR brought so much to the table, fast focusing, low…
Scite preferences can be opened and edited by selecting Options->Open Global Options File Some preferences you may wish to change are: check.if.already.open=1 This will cause all new files opened to open in the current instance of Scite. If this line is set to equal 0 or it is commented out (#) opening a new file will start a new instance of Scite. Since I often find myself editing tens of files I…
In this tutorial we are going to quickly cover using text selection in our Lua scripts. Our first example will be an italicise-selection command for HTML. Basicly if we select a region of text, we want to be able to hit Ctrl-i and insert at the beginning of the selection and at the end of the selection. This is really easy to do in Scite so let’s get to it.
Please note: this article was written for the original MVC CTP1 preview in 2007 and is horrifically out of date. Trackbacks are a form of linkback a way of notify a site that your site has made a reference to it. Trackbacks are slowly being deprecated in favor of pingbacks. The spec can be found at Six Apart . To provide trackback support we need to do 3 things: Create a trackback Controller and…
As I have mentioned in a previous post, the msi file generated by WiX can either be installed by double clicking them and optionally manipulating a UI or it can be run from the command line. The Windows installer tool msiexec.ese (located in the System32 folder) can be used to install, modify and uninstall msi packages. Today we are going to look at the common ways of using this tool.
A common installation requirement is to set registry variables. WiX makes this a simple task. Lets add a RegistryKey element and nested RegistryValue element. The RegistryKey element defines the specific key that should be created. The Action attribute is an enumeration. The allowable values are specified below: create createKeyAndRemoveKeyOnUninstall none RegistryKey creates a key if it does not…
In this tutorial we will be creating a Lua script that will count the number of characters, words and lines in the current document. First up let’s look at some of the functions and strategies we will be using. editor.Length This property stores the number of chars in the current document. You should be wary as on Windows a newline is stored as \r\n (carriage return, new line) making up two…
Please note: this article was written for the original MVC CTP1 preview in 2007 and is horrifically out of date. The Canonical url of a site is the url that search providers consider to be definitive. For example the sites http://www.example.com/ and http://example.com/ are technically different. Since the urls are different, search providers may consider the two sites to be duplicate content.…
The WiX 3.0 release candidate has just been released so lets have a look at it. After installing WiX, the linker and compiler are installed along with Visual Studio tools. Create a new WiX Project using the new WiX project type that has been installed. A new wxs file will be created as below: The Product section contains all the main elements for the installer, there can only be one product…
Please note: this article was written for the original MVC CTP1 preview in 2007 and is horrifically out of date. Unlike standard ASP.NET, MVC does not use a directory and file system for URLs. Rather it maps URLs to controller classes in a RESTfull manner. Routing is defined in the Global.asax file. Route Mapping Lets start by looking at the default route created when starting a new MVC project.…
Useful C++ libraries. Boost Probably the most important set of libraries other then the STL, Boost offers a huge amount of functionality. Libraries featured in Boost may eventually be included in future C++ standards. Xerces C++ Xerces is a validating XML parser with support for Dom, SAX, XML Namespaces and XML Schemas. This library is provided by the Apache foundation. Xalan C++ Another library…
In this tutorial we will be looking at how to bind functions to keyboard shortcuts and the tools menu. The following code is used to bind the word count function to Ctrl+W. If these lines are put in the global properties file the word count function will be accessible anywhere. They could be placed in a language specific properties file such as html.properties in which case the function would only…