Tag Archives: tools

Very Sleepy CS is now Very Sleepy

I am delighted to announce that my fork of the Very Sleepy profiler, Very Sleepy CS, has been blessed as the official repository by Richard Mitton (Very Sleepy maintainer). As such, the Very Sleepy homepage has been updated to point to the GitHub repository and list the forked releases since Richard’s last release. You can also read Richard’s announcement on his blog.

I have already reverted the name change in the source code, though the currently-newest release (v0.90) is still labeled with the old name. The next release will call itself Very Sleepy again.

Splicing git repositories

Some projects eventually get split up into multiple source repositories for whatever reason. Sometimes, it is useful however to present the project as a single repository – it’s more difficult to examine a project’s development history when it is scattered among several repositories. Specifically, git bisect will not be very helpful if there is strong inter-dependency between the repositories, such as with the reference D programming language implementation. Or you may just not like the layout, which pushes you into using a complicated build process you may not want to use, which was the case for me with the new DerelictOrg repositories. Continue reading

Very Sleepy fork

I got fed up with waiting/pestering Richard Mitton (aka Kayamon / @grumpygiant) to integrate the Very Sleepy patches I’ve sent him last year or putting the code on a software forge, so I’m publishing my patches on GitHub myself.

Very Sleepy is a polling Windows profiler with a wxWidgets-based GUI. This is a fork of the latest released version at the time of writing (0.82).

There have been a few more forks of Very Sleepy (e.g. here and here), but these are based off older versions. It’s possible that their changes had already been merged into the official version.

Update: I’ve continued development of my fork, at the above-mentioned location. Check the GitHub project for the changelog, downloads, and more information.

Update 2: Very Sleepy CS is now Very Sleepy!

DHCP test client

While trying to set up my home network, I was dismayed that there was no simple way to test the DHCP server. Snooping packets is limited to examining existing traffic.

DHCP test tools exist (DHCPing and dhquery), however both are outdated and don’t work with the latest versions of their requirements, and both won’t work on Windows.

I’ve written a simple DHCP “client” which can receive and decode broadcasted DHCP replies, as well as send out DHCP “discover” packets. The tool is cross-platform, and should work on Windows and major POSIX systems.

Source, Windows binaries.

64-bit CacheSet

SysInternals CacheSet has a limitation: it is unable to set a cache size larger than 4GB. This is due to the fact that it is a 32-bit application, and the respective API (NtSetSystemInformation) accepts new settings as a 32-bit byte count.

The solution: use the 64-bit API, which uses 64-bit integers. I’ve written a very simple 64-bit CacheSet-alike – just enter the desired cache size (in bytes). You can use the original CacheSet to check the new settings (just don’t hit “Apply”, or your settings might get clobbered).

Source, download.

Import Wikipedia page history to git

I’ve written a small tool which downloads the history of a Wikipedia article, converts it and imports it into a new git repository. The main motivation behind writing it is being able to perform a per-line blame of the article’s history. I had tried levitation, but that tool seemed to be oriented towards large imports (or it might just be buggy), as it attempted to create huge binary files and ran longer than my patience would allow when I gave it the history of just one article. Also, I wanted the tool to take care of the downloading and importing part – so I could be one command away from a git repository of any WP article.

The tool can be made faster (all the XML and string management stuff adds an overhead), but right now it’s fast enough for me. One thing that can be optimized is making it not load the entire input XML into memory – it’s possible to do the conversion by “streaming” the XML. Another current limitation is that it’s currently hard-wired to the English Wikipedia.

Requires curl and (obviously) git. You’ll need a D1 D2 compiler to compile the code.

August 2013 update: Updated to D2. Now creates the directory automatically. Added --keep-history switch.

Source, Windows binary.

GraphStudio fork

I have made a few improvements to GraphStudio, the open-source GraphEdit clone:

  • The limit for text entry in certain combo boxes has been removed
  • Basic XML graph saving support has been added (only filters and connections at the moment)
  • Pins are now referred by their indexes in XML rather than by ambiguous names
  • Added command-line /render parameter, which loads a graph, plays it and exits

XML support and /render allow scripted generation and rendering of XML graph files.

Source, download.

Update: Check out GraphStudioNext. Some or all of my patches have been merged into that project, and presumably will be in the next release (the one after