Monthly Archives: February 2007

Aggregated CodeGear news feed using Yahoo Pipes

Using Yahoo Pipes I’ve created a news feed for CodeGear drawing items from Google, Technorati and Bloglines. Here is the feed URL which if you click will take you to a Yahoo page that will provide you more options to subscribe and/or edit this feed for your own use using Pipes. If you’re into RSS/Atom I’d highly recommend checking out Pipes as it’s a major milestone in aggregation. Btw, you might be interested in to my link blog where I’d linked to Yahoo Pipes the other day.

Delphi IDE and RTL/VCL performance improvements

Lately, there’s been a lot of effort put into improving the Delphi IDE’s UX and I wanted to comment briefly that in the past week alone we’ve made some great progress. For example, there have been recent improvements in:

  • IDE flicker (now nearly flicker free)
  • Desktop switching performance
  • GDI resource management
  • Moving controls on the form designer via the keyboard
  • Form designer grid repaint issues
  • Compiler time stamp access (thanks to Andreas Hausladen)
  • VCL control painting (thanks to Pierre le Riche)
  • VCL control data handling performance
  • FastCode routines added to the RTL (btw, a huge thanks to the whole FastCode crew who contribute to this great project benefiting us all)

One of the best things about a number of these fixes is that they’re in the RTL/VCL so your applications will benefit as well. Btw, several of them came from QC so it definitely pays off to get your bugs logged. Anyway, we’re cranking away and there’s more to come but I’m pleased with the progress and thought it was worth mentioning.

Check out my new LinkBlog

Recently, I’ve been playing with writing my own linkblog which is a way for me to share items that I find interesting as I read through my blog subscriptions.

I consider this just a beta (since it’s the cool thing to do) and over the coming days/months I’ll be tweaking it to add features so stay tuned. I used to have a $g(tag cloud) of my del.icio.us tags here on my blog but I’ve moved it to the linkblog page since it seems to make more sense over there.

Leave a comment here to let me know what you think.

Adding a del.icio.us tag cloud to your website or blog

del.icio.us is a social bookmarking site that allows you to save bookmarks online. Typically when you save a bookmark to del.icio.us you’ll mark it with one or more tags allowing you to categorize. One of the cool features they provide is the ability to place a tag cloud on your site with a simply script tag like this:

<script type="text/javascript"
src
="http://del.icio.us/feeds/js/tags/<uid>?count=50;size=12-25;color=87ceeb-ffff99">
</
script>

Where:

  • <uid> is your del.icio.us user ID (without the angle brackets)
  • count = the number of tags to display
  • size = the range of font sizes used
  • color = range of colors used

For some crazy reason del.icio.us calls these tagrolls? Anyway…

How DVArchive the Superbowl and I managed to wreck my ReplayTV

I have a $g(ReplayTV) 4500 and this past weekend I had it set to record 4.5 hours of the Superbowl extravaganza. Yesterday, when I woke up at started to download it to my PC using $g(DVArchive) and moments later my wife went down stairs and turned on the ReplayTV at which point things went downhill. I immediately noticed that the transfer rate had dropped way down so I went downstairs to have a look and found my wife had turned the Replay on which meant it was trying to stream and play an 11.4GB file at the same time. It didn’t work.

After several minutes waiting for it to respond to the remote it was clear something had gone wrong. Eventually, I rebooted it and when I got back into the channel guide I noticed the Superbowl along with about 3/4th of our other recorded shows were gone. Things got worse when I attempted to restore our scheduled shows which caused scheduling conflicts with programs that were no longer recording!

At that point, I downloaded the remaining contents and performed a factory reset (382 zones, for those of you who have a Replay). That worked but required me to completely reset everything from the network settings to our entire recording schedule.

I actually watch very little TV these days, mostly stuff from $g(Netflix) (recorded onto the Replay) but when I do I have to use commercial advance or chances are I won’t make it through the entire show.

Anyway, so much for watching the $g(Superbowl commercials) from the comfort of my couch.

Sessionsaver's snapbacktab feature in Firefox 2.0

I’ve blogged before about the sessionsaver add-on for Firefox but I didn’t mention one of it’s best features called SnapBack Tab. Basically, it’s a menu item that gets added to the tools menu with a popup that contains a list of the last 10 tabs that you’ve closed. So, if you’ve accidently closed a tab all you need to do is select Tools|SnapBack Tab|a) <tab name> and voila your tab is back with it’s entire browse history and everything.

In case you missed it, here is a post that lists my favorite Firefox extentions.

Using the WS_EX_COMPOSITE window style to eliminate flicker on Windows XP

As I continue to work through the various flicker issues on individual controls in the VCL I thought it worth mentioning a bit more “global” way to tackle the “flicker” problem. If you’re running Windows XP there is a window style called WS_EX_COMPOSITED which you’ll find documented on MSDN under CreateWindowEx here. This style bit instructs the OS to apply double buffered painting for you. Here is how you would add this to a Delphi VCL form:

1 type 2 TMyForm = class(TForm) 3 protected 4 procedure CreateParams(var Params: TCreateParams); override; 5 end; 6 7 ... 8 9 procedure TMyForm.CreateParams(var Params: TCreateParams); 10 begin 11 inherited; 12 // This only works on Windows XP and above 13 if CheckWin32Version(5, 1) then 14 Params.ExStyle := Params.ExStyle or WS_EX_COMPOSITED; 15 end; 16

You should be able to use this on any 32-bit version of Delphi as long as your app is running on Windows XP.

The downside is that depending on your application this change could have rather serious performance implications during a window resize particularly with aligned controls. The upside of course is that it’s flicker free! 🙂

I’ve read that there may be some issues related to using this window style with GDI+ so be sure to look for that if it affects you.

There is no comment on the MSDN as to how this works under Windows Vista but I’d guess there may be some differences.

[UPDATE: May, 2008] Related posts:

Quick Tip: FullRepaint and fixing flicker in a Delphi VCL app
Quick Tip #2: Fixing flicker caused by WM_ERASEBKGND in a Delphi VCL app

HTML Source Code Syntax Highlighter

Over the past few months I’ve been slowly building the web infrastrusture I want for blogging. One of the necessary pieces for any developer is a source code to HTML syntax highlighter. Of course, I could use one of the many already available online but that’s no fun when it’s easy enough to build your own using the Actipro‘s freeware CodeHighlighter.

To that end, here is my online source code highlighter. Feel free to use it for your own highlighting needs. None of the code processed is archived, stored or otherwise consumed by anything other than the aforementioned formatting control.