I was digging through some of my old, unfinished projects this week and found one that I’d barely started. The goal was to write a scriptable audio visualization tool in C, approaching this art form differently than most viz tools today. As a former light tech for a band that toured the US (and abroad,…
Category: Programming
Tursiops: Universal trainer for Linux
One of the things I do miss about Windows is the abundance of universal trainers for it. If you don’t know what a trainer is, it’s a program that writes over the memory of another process, typically a game, to confuse the program into doing something it wouldn’t normally do. Trainers are often used to…
VandalSniper and MonoDevelop
Today I decided to try converting my script-based build procedure to a MonoDevelop project. The process was pretty straightforward, although there were some pretty annoying glitches that saw me scrapping the project files several times before it was “just right.” Now that the conversion is done, my experience with MonoDevelop is so-so. The work that…
VandalSniper does the watchlist, yo!
It will only be a short while before all of the tabs in VandalSniper are functional! I’ve already implemented the change cache, so the recent changes list is refreshed from the last few edits to be seen on IRC. This makes refreshes instant (except for the diff summary). Driven by the success of this method,…
VandalSniper and IRC: better together!
I spent much of the today integrating SmartIrc4net with VandalSniper. No, VandalSniper doesn’t let you chat on IRC now. It connects to the Wikimedia IRC server and joins the Wikipedia “recent changes” channel, which gets spammed by a bot every time any change is made to Wikipedia. Which means that we can not only save…
Sealed classes in .NET … but why?
While tinkering with C#, I was experimenting with declaring methods “virtual.” This effectively tells subclasses “you can override this method with your own implementation.” After some more tinkering, it seems you can also hide methods that are not declared virtual by prefixing them with “new.” But there is a difference: using System; public class A…
VandalSniper Beta around the corner
I’ve been amazed at how easy Gtk# has made this project. If I were using MWF I’d be spending all my time trying to get the UI to behave properly when the form is resized. Simply put, Gtk#, or rather GTK+, takes care of resizing interface elements for me, and that’s one less thing —…
It’s alive!
After many painful hours of Googling, more Googling, crying, pounding on the desk, and losing my temper in #mono, I have successfully added an ExecuteScript method to jscall, and the corresponding managed binding! With one method call in managed world it is now possible to execute an arbitrary script, passed as a string, inside of…
Gecko# interaction
While developing VandalProof, it has become very obvious that being able to interact with the DOM of the displayed page will be vital to achieving the program’s goals. At this point, Gecko# does not offer any mechanism by which I can do this. I talked with mikalh in #mono for a while, and he referred…