Writing articles using BlogDesk

Image

I am currently evaluating BlogDesk, a Windows-only software for offline blog editing, supporting a wide range of different blogging systems, including WordPress (the system this blog is running on).

The main reason, why I am trying to switch from using the integrated online-editor of WordPress to a dedicated software, is speed and offline availablity. Lately I tend to work offline again, because I got a nice little notebook which is able to run on battery for quite some time. I now tend to use the time I’ve got for instance when riding a train. And I want to be able to use this time and publish some posts. BlogDesk online editor is very speedy, it is more responsive than using the online editor. One also tends to concentrate more on the content and less on the layout, because there is no preview possibility.

Additionally, BlogDesk encourages using images in your blog posts, because it makes it easy to incorparte them. It warns you if your images are going to be too big and it provides some ncie effects like the drop shadow used in the screenshot above. Images can be inserted from an URL, a file or the clipboard. They will be uploaded when publishing your article.

Unfortunately, BlogDesk does not support tags in WordPress 2.3+ yet. But I am sure they will come.

BlogDesk is free, but the source code is not available. As mentioned, it is Windows only, but it works very well. I’d recommend you to give it a try it if you are using Windows and are contributing to a blog.

Online Backup using JungleDisk and Amazon S3

Recently I featured Mozy, a tool for automated online backup on Windows and Mac. I finally got round to using a different solution: JungleDisk, a WebDAV frontend for Amazon Simple Storage Services (S3).

What I really like about the software and the company is that they don’t claim that their data will be safe forever at their location. They confess it is possible for a company to vanish. In order to prevent you from being locked out they have outsourced the storage to Amazon, which provides cheap storage on a “pay what you need” basis.

JungleDisk provides encryption of the documents using AES and only you can decrypt them. To be on the safe side you’ll always be able to retrieve your data, they have released parts of the code covering filename-mangling and encryption under GPL.

JungleDisk is available for Windows, Linux and Mac. As said, they provide a WebDAV frontend so any WebDAV client can interact with it. It also features a local cache to prevent needing to download a file on every access. There is also an automated backup routine.

Costs are reasonably. At the time of writing, JungleDisk costs 20 US-$ once, with promised life-long updates and patches. All you need to pay for is Amazon fees for your usage, which are at 0.15$/GB/month, 0.10$/GB inbound traffic, and 0.18$/GB outbound traffic. You see, you can store lots of data for around 10$ per month.

One big minus-side of this is that Amazon’s data-centers are very slow from Europe, I was able to achieve around 700-800kbit/s (90-100kB/s) from our office connection. On the pro-side, due to the caching and background transfer, you don’t notice that the transfers are so slow, unless you need to download something. As I am using it for automated backup, I hope to never have to download anything.

So if you are searching for an offsite backup solution, you should definitely consider JungleDisk.

Syncing your Firefox: Google Browser Sync

How could I miss this so long? Google Browser Sync keeps Firefox‘ bookmarks, sessions, cookies, tabs and even passwords (if you really want to) in sync. As I constantly switch between multiple computers, this is really a nice thing to have. You need to have a Google account, but as I already use Google Reader and Calendar, I already have one. In order to hide your data from Google (as if this mattered due the amount they are already collecting about us) you can protect the information by a password (PIN).

I’m currently trying it out and up to now I am very pleased with it. One more reason to stick with Firefox 🙂

Open Street Map

Today, German news-site Golem.de covered OpenStreetMap in a rather long article. OpenStreetMap is a project I have been watching for some time now as I think the availability of free maps is very important. I’d like to participate in the project but unfortunately I have got little time and no adequate GPS receiver.

Maybe anyone in the area of Linz, Austria would be interested in a little mapping party one day? The data in this area seems to be rather sparse 🙂 Anyways, I think the project or any similar project is definitely important and should be supported with all means. Anybody knows someone at a Austrian government body which could contribute data to such a project?

Collaborative document editing

A quick side note: during a research for collaborative tools I came around two promising-looking tools: Gobby and CoWord.

Gobby is a dedicated editor for allowing multiple users to edit a set of text-documents (like source-code, etc.) simultaniously. Everyone sees what the others are doing in the current document.

CoWord promises the same but uses Microsoft Word as underlaying editor. This basically means a group of users can edit a document simultaniously.

Up to now I have not had time to try any of these tools, but I am planing to do so soon. Of course there are lots more tools for collaborative editing. A very comprehensive list of collaborative editors is available on Wikpedia.

The Storm Worm

I want to point out a very interesting article by Bruce Schneier about the Storm worm. If it were not so illegal, the techniques used by this worm are very, very advanced and very interesting from a development and network/load-balancing point-of-view. Anyone interested in development, network administration, and security should read the article.

The worm has grown to a real epidemic by continuously adapting, changing its code, the code signature, etc. It has infected this huge number of computers because the resulting bot-net is hardly ever used, it keeps in a dormant stealth mode. Most users are not aware they are infected with the worm because it tries to avoid detection by not using to much ressources and therefore hardly attracts attention by system administrators. Bruce Schneier points out that maybe we should be worried about what’s coming in “Phase II”, once the gigantic bot-net is brought into action.

To avoid detection, the worm and the bot-net operators apply several advanced load-balancing and stealth techniques, namely a DNS technique called “fast flux” which very effectively blurs the traces to the real operators.

As I said, it is very interesting read. I recommend you also follow several of the outbound links.

Affordable offsite automatic backup for Windows and MacOS

I just discovered Mozy (via TechChrunch), a service for automating the backup process by automatically storing all your data encrypted on their server for backup purposes. It is a Windows software that automates the backup process and provides secure online storage. According to the specification you can either use their encryption key or provide your own public key for the encryption.

Mozy comes in two flavors, a version for home-users which they call MozyHome (4.95$/month for unlimited storage) and a service for businesses, called MozyPro, which bills 3.95$ per computer, but also 0.50$/GB per month. I think the service would definitely be interesting but the storage costs seem to high for me. There is also “MozyHome Free” which provides you with free 2GB of backup storage. Maybe the recent purchase by EMC Corporation will change the pricing list (honestly, I don’t think so…)?

The idea of storing my confident data or even corporate data on remote servers not under my control is a little bit frightening, but in case you are able to believe they have not built a master-key in the software, it might be a nice option for offsite backups which definitely everybody should use. Maybe one should give the “MozyHome Free” a test-drive… Too bad there is no Linux version available.

If I can convince myself to try out the “MozyHome Free” I will write another report here.

.NET strings are not always immutable!

Strings are immutable. If you want to modify a sequence of characters, use StringBuilder. At least, that’s whats officially said. But in the framework there is at least one method that does modify a string:

TextRenderer.MeasureText() with ModifyString and EndEllipses will modify your string to match the ellipsed text if ellipsing happens. You can look at this VB# example on codeproject using TextRenderer.MeasureText() for trimming text on how it is used.

The string seems to be modified directly in native code by DrawTextEx from user32.dll. Additionally to the scary fact that strings are not immutable, the length of the string is not updated, regardless if the resulting string is shorter!

For instance if you have a string “aaaaaaa” which will be truncated to “aa...“, the Length property will still return 7 for the shortened string. The debugger shows that the string will in fact be “aa…\0a” after the operation. So maybe it might be right that the string is still 7 characters long but most outputting functionality like Console.Out.WriteLine() gets confused sometimes and stops any further output to the debugger or console under certain conditions.

A very quick investigation of the System.Drawing assembly using Lutz Roeder’s fabulous .NET Reflector showed that at least there should be no memory corruption in case “WW” would get ellipsed to “W...“, as DrawTextEx takes the length of the buffer and should result only in “W.“.

Summing up, I find the corruption of an immutable string by an official Microsoft API very troubling.

Content-aware image resizing

Krispin made me aware of a very cool new technique for resizing images: content-aware image resizing. Based on an energy-function path of an image are removed when shrinking or are duplicated and interpolated when growing the image in a non-uniform way.

This technique can also be used to remove objects from a given image. There is a nice demo video available on YouTube (it’s the same as in jfo’s coding blog, where Krispin originally found the information):

[youtube vIFCV2spKtg]

(via jfo’s coding and slashdot)