Category Archives: Project

The Rainbow Smoke project

Rainbow smoke - new imageThe all RGB colors project has been amazingly successful, let me thank everyone for their interest again. There have been many developments, so let me introduce them. First of all, I made the algorithm a lot faster and added many more features, so you will see lots of new awesome images (here’s one on the right, just a random pick out of hundreds, it’s rescaled, so don’t count the colors in it). I created a gallery website for to this project, rainbowsmoke.hu, and I’m working on providing fine art prints to the public. And I started porting the algorithm to other platforms, it’s already available for Android. So that’s the overview, I promised a follow-up article previously, let’s continue where I left off. Continue reading

All RGB colors in one image

RGB 256 1I recently started visiting the programming puzzles SE site. To a geek like me, it’s a little paradise: many interesting challenges, many interesting solutions, many like-minded people. Two days ago, there was one particular challenge: make a program to create an image that contains all RGB colors exactly once (and of course the best looking one wins). A very long time ago I made a small screen saver in assembly which grew a colorful coral (I may post that one day, too). I thought something similar would work here and maybe I’ll even get some votes. You can see the very first image right here. The results completely blew my mind, they were absolutely stunning, and of course it was a big success. Then I thought, let’s make a huge image, maybe even a YouTube video from this. But it wasn’t easy because it’s a brutally exponential problem. Two days of non-stop coding and minimum sleeping later, here it is! Continue reading

Storing .NET objects in cookies part 2 – compact bytes to string conversion

As I mentioned in part 1, Forms authentication cookies can get quite big when they have some data in the UserData field. The main problem is that every 8-bit character in the user data occupies four characters in the cookie, because it is UTF-16 encoded (1 character – 2 bytes, an extra zero is added) and converted to a hexadecimal string (1 character – 4 characters). For example, the “X” character (U+0058) ends up as the four character string “5800″. Plus a little overhead of the ticket itself, plus the 33% overhead of Base64 encoding. Here’s how you can do a lot better. Continue reading

Storing .NET objects in cookies part 1 – compact serialization with binary XML

I was recently faced with the following challenge in an ASP.NET application. I have a data contract object that describes a user, which I have to store in a cookie for authentication and other purposes. Forms authentication is perfect for this: the cookie is cryptographically protected, the authentication is very easy to configure and it can store arbitrary user data as well. Problem is, as you might guess, this cookie would be quite big. You might ask, why don’t I store this object in the session? Because I wanted a session-less application. Or why don’t I store only a user ID in the cookie? Because gathering the user information is quite an expensive task. So the challenge was to serialize this object in the most compact way. Continue reading

I developed SVN tasks in MSBuild Extension Pack

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

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

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