July 2009 usage statistics

August 23, 2009 – 10:53 pm
I’ve finally got a little down time since putting out another alpha build for Paint.NET v3.5 tonight (go get it!), so I decided it was a good opportunity to update the usage statistics. The last time I posted an update was last October, and that’s way too long to have gone without an update. Overall, usage of Paint.NET is up by 9.2%. This is based on the total hits to the update manifest text files. The slow growth isn’t too surprising since there haven’t been any (stable/mainstream) updates to Paint.NET in awhile, and hence not a lot of news or blog posts to draw people to the website. That’s okay though, as version 3.5 is coming soon (more on that in a bit!). There aren’t too many changes in the demographics of Paint.NET users. Well, the number of French users has dropped from almost 8% down to 6.8%. Turkish has grown in ...

Paint.NET v3.5 now enhanced for Windows 7 with DirectWrite

August 11, 2009 – 12:57 am
The latest alpha build of Paint.NET v3.5 will now use DirectWrite instead of GDI for the Text tool if you are running Windows 7. Get it while it’s hot: http://paintdotnet.forumer.com/viewtopic.php?f=46&t=31132 DirectWrite is a new font and text rendering system that comes with Windows 7. In Paint.NET, you’ll see the following benefits: Faster text rendering. This is currently due to important architectural differences from GDI. With DirectWrite, I can render using multiple threads (performance scaling), while also not blocking the UI thread from drawing (mutexing). GDI can only render text on 1 thread at a time, and that also includes the thread responsible for the UI. DirectWrite can also benefit from GPU acceleration when things are set up correctly with Direct2D (Paint.NET only uses the software rasterization capabilities right now, but in the future who knows!). Better quality text rendering. DirectWrite implements what is called “y-direction antialiasing”. The short story is that GDI apparently ...

Paint.NET v3.5 – Better font handling, and performance. Again.

June 15, 2009 – 4:16 pm
Last Thursday I release a new alpha of Paint.NET v3.5, build 3450. I have rewritten the way that fonts are handled for and by the Text tool. Even if you don’t use the Text tool much, you will still notice some improvements! (see the bulleted list below) In previous versions of Paint.NET, there are two forms of text rendering supported. The first and the default is called “Smooth”, which utilizes GDI+* to render text. The second is called “Sharp”, and uses GDI. For both, GDI+ is used for font enumeration through the classes in the System.Drawing namespace. Over time, GDI+ has proven to be a poor system for font handling. It has been the cause of many crashes, as GDI+ has a tendency to crash or trample on memory when it encounters fonts that are “bad” (although bad is relative – the font itself may be perfectly fine!). This has led ...

First alpha build of Paint.NET v3.5 is now available

May 17, 2009 – 8:49 pm
Here’s where you can check it out: http://paintdotnet.forumer.com/viewtopic.php?f=46&t=30113 This will not be made available on the website. I don’t even recommend that any download websites host it yet. We’ll wait for the beta for that! In the meantime, please download, install, and post your comments on the forum.

Random April Thoughts

April 7, 2009 – 11:29 am
It's April and we finally have some sun in Seattle and I haven't posted in awhile. Paint.NET runs pretty well with Parallels on my MacBook Pro, although there's a few quirks to squash. Hmm ... they have an affiliate program. I smell a revision to the System Requirements coming soon. Do you know how many requests I get for a Mac version of Paint.NET? :) "Should Competent Programms be "Mathematically Inclined"?" -- Absolutely, Jeff. I can't believe anyone would question this. "Math is hard, let's go shopping!" *faceplant* Paint.NET v3.5 is coming along, but slowly. I haven't had as much time or motivation, and it's difficult when you don't have a build that works because of ancillary code you broke in areas that you don't really like (the Recolor tool comes to mind). Blackjack is fun, especially when you're winning.

Thank you, Akimset spam detector

March 2, 2009 – 1:47 pm
One of the most popular plugins for WordPress blogs is the Akimset spam detector. Mine says it has found and squashed 93,860 spam posts since it was installed. I'm always amazed at what type of spam the robots try and sneak through every day. Here's a recent spam post: "poonnnbvhifiytfyudyufydyddyufytfyufyutfyfyfyutfyfyutfyufytfytfyfyufytftyftftftftftftftttttttttttttttttttttttttttttfffffffffffffffffffffffffttttttttttttttttttttttffffffffffffffffffffffffffffffffffffffffffbut" Thanks for the comment! I'll be sure to raise that issue with management the next time I see them.

Russian is coming to Paint.NET

February 26, 2009 – 9:19 pm
Another great feature for the upcoming version 3.5 release: an official Russian translation! I think this should make 4.16% of the userbase very happy :)

Introducing Paint.NET v3.5’s new selection renderer

February 25, 2009 – 11:56 pm
In my previous post, I mentioned that I had rewritten the selection renderer in Paint.NET v3.5. As a pseudo-warning, this post is pretty technical. The selection renderer in Paint.NET v3.36 uses GDI+. It draws the outline twice: once as a dashed black line, and the second as a dashed white line. A timer fires every 50 milliseconds or so and redraws the outline with a slightly increased “dash offset.” This gives the “dancing ants” animation. Our pal Emma Roberts will demonstrate:   “Pretend I’m animated!” -- Ants There are a few major problems with this implementation. The first is that while you are drawing or modifying a selection, it is only drawn with a black outline (once you are done, it will transition to the “dancing ants” mode). This makes it wickedly difficult to figure out what kind of selection you’re drawing if the underlying area is black. Try it with a solid ...

The theme of Paint.NET v3.5 is … performance

February 5, 2009 – 1:01 am
I sat down to write some notes before starting this blog entry, and I wound up with two full pages in OneNote on the 1920x1200 monitor it was sitting in. The more I’ve been working on it the more I’m excited about the Paint.NET v3.5 release. It isn’t one that introduces a lot of really cool or big-ticket features, but the list of small improvements is really adding up. I’ve been able to do a lot of research and prototyping in esoteric areas of multithreading and concurrency, and have gained both more mastery and more fear for these topics. Performance work in Paint.NET v3.5 has wound up focusing on 3 areas: Scaling up. As everyone’s been saying for years, the future is increasingly multithreaded. My newest CPU upgrade leaves me with 8 threads in Task Manager (Intel Core i7 overclocked to 3.8GHz). A lot of research and work has gone into making ...

Mid-January Progress Update on Paint.NET v3.5

January 16, 2009 – 2:06 am
I think it’s best to quote a private-message between myself and Ed Harvey on the forums: I've got to stop breaking things before I start fixing them ... Paint.NET v3.5 is turning out to be more work than I originally anticipated! What started out as a “simple” rewrite of the selection rendering system has turned into a major refactor of large portions of the code base. I’m done a wholesale adoption of WPF’s mathematics primitives such as Point, Rect, Int32Rect, Vector, Size, and Matrix. These classes do a better job and are more consistent than GDI+’s Point, PointF, Rectangle, RectangleF, Matrix, etc. (I’m still befuddled as to why System.Drawing.Drawing2D.Matrix, which is six floats and 24 bytes, needs a Dispose() method. Give me a struct please.) The goal is to make sure that the entire data flow from the selection tools to the selection renderer is as performant as possible. Right now rendering ...