I wanted to release binaries of my projects and embed the SVN revision and branch version number in them automatically. When it comes to build automation in .NET, MSBuild and MSBuild Extension Pack are the way to go. SVN isn’t supported out of the box, so I would have had to write targets that invoke the SVN command line tools. Tedious and ugly work. And then I had the idea that since MSBEP is open source, maybe I can develop support for SVN in it, so that my life will be easier, and also the whole world can benefit from that as well. My idea was very welcome by the project leader, Mike Fourie, so I joined the project and did it. See the official announcement here. Continue reading
Author Archives: Joco
Joco-ADPhoto: active directory photo editor, also introducing my tools project
It’s been so long since I last wrote… My previous post was about the directory object dialog that I implemented in my framework. My plan was to use it for something, and that something is finally here. It’s a tool that you can use to save photos for accounts in active directory and retrieve them. I also set up a new project on Google named Joco Tools. That is because I’m planning on releasing a lot more useful stuff here. Continue reading
Directory object dialog in .NET, and advanced COM marshaling
Last week I wanted to start a new .NET project, and I needed a directory object picker for it. I searched the web and found some solutions, but they just didn’t look right and decided that I can do a lot better than those. So in the spirit of creating good and reusable code, I started implementing my own IDsObjectPicker wrapper in my framework. I thought it would be easy, and it turned out to be anything but, but the result was awesome: clean, easy to use, and it works. And just like last time, I learned a lot about COM interop, you can read all about it here, or just scroll through and grab it already. Continue reading
IPv6 in my home intranet with SLAAC, 6to4 and a dynamic IP
I set up 6to4 in my home intranet, and I’ll share my experiences. The web is full of 6to4 how-tos, but there are a few reasons why my case is special: I have a dynamic IPv4 address, I want to share IPv6 in my network, and I want the cleanest solution possible. Quite a common scenario, I think, so here’s how it’s done. Continue reading
How to impersonate the Windows system account in an application
During the research of my previous post, I wanted to find out if it’s possible to impersonate the system account in an application (NT AUTHORITY\SYSTEM). Apparently, and much to my surprise, it’s a bit more powerful than the administrator account. The short answer is that there’s no clean, reliable, non-intrusive and portable way to do that, and in most cases, there are much better solutions. But if you really want the impersonation, then here are the possibilities that I found on my Windows 7 system. Continue reading
Getting the size of a volume shadow copy snapshot
The volume shadow service (VSS) has a storage limit on each volume. If it needs more space for a new snapshot, it deletes an old one. If you want to create a smarter space management algorithm, which also considers the size of individual snapshots, you’re in trouble, because getting the size is not documented anywhere. But now it is
. Continue reading
Windows antivirus API in .NET, and a COM interop crash course
Like I said in my previous post, I already coded something cool in my framework, and here it is: .NET code to call the Windows antivirus API. The best use case scenario I can think of is when retrieving and then redistributing file content from an untrusted data source, especially a web upload form. In cases like this, content might slip through the realtime protection of most antivirus products, and an API like the one I created is the only solution. Continue reading
Introducing my open source .NET library
One of my biggest plans has always been to publish source code. I’m a professional developer but it’s also my hobby, or more like my art, and I want to do something useful for the benefit of everyone. I’ve posted code a few times on my previous website, but nothing major or widely usable. The life-changing great idea still has yet to come, but I decided to stop waiting for it and publish whatever minor pieces of software I come up with in my free time. C#/.NET is my language/platform of choice, so I started putting together a library project on Google Project Hosting and license it under the GPL v3. It’s a totally generic collection of library routines that anyone might find useful. So here it is: the Joco Library. Continue reading
My ultra low power home server
I bought an Asus WL-500g Premium v2 router in April, 2009 and immediately installed DD-WRT on it. I used it for my wired and wireless LAN, printer and disk sharing, and for running Transmission. In about half a year, I grew tired of its USB bandwidth (around 2 MiB/s), bad overall performance and also the development model of DD-WRT (several thousand commits without a stable release). Then in December, 2009, I built my perfect home server, based on the Intel D945GSEJT motherboard, which perfectly replaced this router while barely consuming any more power and I’ve been happily using it ever since. Continue reading
I discovered the new Windows user tile API
I recently discovered that you can now store user photos in an Active Directory and Outlook 2010 can display those photos. My next idea was that I wanted to use those photos as user tiles (profile pictures) in our Windows 7 and Server 2008 R2 installations. How do you do that programmatically? Here’s the road to my discovery. Continue reading
