LiveBindings in XE3 – TBindSourceDB

RAD Studio XE3 brought significant enhancements to LiveBindings. The LiveBindings Designer is the most obvious of these, but there have also been a lot of additions made in the process of enabling the designer, some of which I’m going to explore over the next few posts.

First up are BindSources. If you did any work with LiveBindings in XE2, you would have used BindScopes. BindScopes were the way that you exposed different sources of data to the binding engine. TBindScopeDB, for example, let you connect to a TDataSource, and then bind the exposed fields to controls using LiveBindings. Read On…

Programming Collective Intelligence

This book has taken me longer to read than just about any other technology book, but I’ll come back to that.

The premise of this book is that machine learning has become an integral part of modern applications, from Amazon’s product recommendations through Google’s pagerank and on to decision making, filtering and clustering and a few others in between. Basically a range of different approaches to extracting meaning from data. Each chapter covers a different technique from a very practical angle: you actually build an implementation of the algorithm in question. Read On…

One man’s URL encoding is another man’s bug

I got an email last night from someone who was using my sample code to open URLs in the default browser on OSX. However, he was having trouble when his URL contained a string.

Easy peasy, I thought, just URL Encode it. (Actually, easy peasy isn’t the phrase I used, but I’m trying to keep this relatively clean). I jumped into Delphi for what I thought would be a quick 5 minutes to alter the code, and finished 2 hours later with it finally working, having learnt more than I really wanted to know about URL encoding along the way. Read On…

Migrating SVN to Git with history

I’ve been using Git more and more lately, mostly because it allows me to do lots of checkins locally, even when disconnected, and then push those centrally when I get back online.

I’ve just gone through the process of migrating all my public and private SVN repositories to github (for the public ones) and BitBucket (for the private ones). A one-way migration is not that difficult, but a one-way migration with all the checkin history, branches and tags proved to be a little more involved. Read On…

Tool Palette OpenTools API sample available – MenuPalette

Back in 2007 I wrote an OpenTools add-in for Delphi and C++Builder called MenuPalette. It allowed you to search through all the IDE menu items inside the Tool Palette. You can read the post I made at the time for more details.

In a later version of Delphi, IDE Insight took this same idea much further, so I never bothered updating MenuPalette, although it’s still available for people on older versions. However, recently I’ve had a couple of people ask about the source code. I finally dug it out last night and published it on github, as I thought it might be a useful example of interfacing with the Tool Palette via the OpenTools API. I also updated it to work with the latest version of Delphi, as one of the questions was specifically about doing this in XE2.

Hope it’s useful.