The C# Todoist API on CodePlex

Today I’ve created a CodePlex project for a Todoist C# Class Library I’ve built.

Please check it out at http://todoistapi.codeplex.com

The reason for building this has primarily been to enable to convert my Todoist items to iCal and have them displayed in my google calendar. You can also use this service through my new labs site. Have a look at http://labs.deap.nu/Labs/TodoistIcal/TodoistIcal.aspx

Anyway, thats probably why the API currently only contains functionality for reading data. But the Todoist API at todoist.com certainly exposes methods to make it possible to add items, projects etc. If you are planning to do any kind of Todoist integration from a .net application, please contribute to this class library to make it mirror the Todoist API completely. You can request to join the project at codeplex and check out the source code with Tortoise SVN.

If you’ve never heard of Todoist, check out todoist.com, it’s a really great tool for keeping track of stuff to do :-).

A little gift for my Stockholm Pride fellas

The upcoming week Stockholm Pride will take over my home city with lots of colorful people and events. The official site, www.stockholmpride.org, has a great program feature where you can put together your own program for the week. However, it lacked the possibility to export the events in a format accepted by calendar applications such as Apple iCal, Google Calendar and Outlook.

So, deap comes to the rescue; I spent last eventing and a good part of this morning putting together a little service that parses your personalized program and exports the events as an .ics-file.

The original idea was to load the program page url with the help of the .net WebClient class, but for some reason the program event elements wasn’t included in the response stream I got. I’m guessing that they probably are being loaded through ajax but didn’t investigate it further. Instead I made some instructions on how to download the file as html and then upload that to my application where the parsing will take place.

To parse the HTML I made a quick google and decided to make use of the HTML Agility Pack, and some nifty XPath (see this tutorial) and Regular Expressions. I’ve never used this library before and it’s been a couple of years since I wrote some XPath, but it was really easy to get started. When it came to generating the .ics-file in a proper format, which caused some trouble, I got great help from this .ics validator.

I also decided to give a go at adding the internet invading Facebook Like button AND a share ;-).

You can check the result out at http://pride.deap.nu, but be aware, it’s all in swedish ;-).

A great tool for capturing a part of your screen

Continuing my previous post on great tools I use for developing I also thought I’d share this one that might be a bit off topic.

Cropper is a great and simple program to use for capturing a part of your screen. Mostly I set it to capture to the clipboard and then I can easily paste the picture to Windows Live Writer (that I use when blogging here) or an email or directly in to Live Messenger whenever I want to share some ideas or get feedback on a design (or why not some code) from a colleague. Just double click to capture.

image

Get it here.

Failing to create a Visual Studio add-in

This morning I’ve been trying to create a Visual Studio add-in with VS 2010. But I ran into problems as described here: http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/06a32084-301c-47e5-be46-0c93ddd249ec

So, I’ll be waiting for an answer before I give another go at it…

My developer toolbox

Here is a list of software tools (and one online service) that has become invaluable to me when developing, besides Visual Studio of course. ;-)

MGLine
This simple, but yet so great, program is a desktop ruler that easily lets you measure pixels on the screen. Great when working with css and webdesigns. I got this from a colleague when doing my gymnasium internship like ten years ago. Never found it on the web, so I decided to share it with you here: Download MGLine and unzip the file where you want the program on your computer and run the executable.

FireBug
I hope no one working with css and html has missed this extension for FireFox. If you have, get it now!

Tortoise-SVN and xp-dev.com
Tortoise-SVN is a windows client for the popular open source source control software Subversion. I use it to manage my subversion repositories hosted for free at xp-dev.com. They also have a good enough task handling system that I use in some projects (based on XP programming principles). Tortoise integrates with Windows Explorer.

AnkhSvn
Another open source client for Subversion, with the big difference that this one integrates into Visual Studio. Great stuff.

CodeRush Xpress
Totally invaluable extension to Visual Studio. Have not yet tried the 2010 edition but the features for 2008 certainly made my life easier and has saved me a ton of time. Make sure you check out the introductory video.

Reflector
Have a look at the code in any .net assembly, such as the .net framework itself. A bit tricky to navigate but good when you need to know whats actually going on inside controls and other framework classes.

SQL Search
Quite a new free tool from RedGate that extends SQL Server Management Studio with the ability to search on columnnames, tablenames etc within your database. It even searches within the text of your stored procedures and functions which can be quite handy when refactoring becomes inevitable.

WinMerge
Another great open source tool for comparing and merging files. This can also be used as the compare tool opened from Tortoise-SVN menu options.

FileZilla
A free ftp client where my favourite feature is “synchronized browsing”.

I think that’s about it, for now anyways. What tools do you use? Please share!

A few things you might not now about the asp:Panel-control

The DefaultButton property let’s you specify the ID of a button control. Doing this will hook this button to the Enter key whenever any type of input control within the panel is focused.

Setting the GroupingText property results in the following accessible friendly markup using fieldset and legend-elements;

<div id="pnl">
    <fieldset>
        <legend>GroupingText value goes here</legend>
        Panel content is rendered here
    </fieldset>
</div>

I love Xmarks and Delicious

I just have to say, syncing your bookmarks between browsers and computers using xmarks is absolutely super duper perfect! It’s totally indispensible when reinstalling an old or installing a new computer. And as a bonus, all your bookmarks are backed up. Automatically. I also use the profile feature which lets me choose what bookmarks I want available at home, at work and both. Check it out at xmarks.com!

I use Xmarks primarily for the links bar in the browser, other bookmars I save online on Delicious. Of course my links bar contains a shortcut to my delicious as well as a shortcut to save the current page to delicious. You can check out my programming related bookmarks to the left here on the blog or at http://www.delicious.com/deap82/programming

My blogging has been a bit so and so lately, I’ll try to att least share some links and quick tips from now on. So, stay tuned.