I’ve finally gotten around to doing some maintenance updates on three of my most-used bits of software (JSONView, XBList, and TopProcess), all in the last couple weeks. Now that they’re all approved and live, I thought I’d summarize what’s changed.
JSONView 0.3
JSONView 0.3 is now available at addons.mozilla.org. This fixes an error that was showing up when really large JSON files were being displayed, and adds a feature that displays empty arrays and object on one line instead of on two (and doesn’t display the expand/collapse button for them). I also put in some preliminary support for JSONP, based on a patch submitted by Gabriel Barros. The catch is that it only works with content served with the “application/json” MIME type, which is actually not the correct MIME type for JSONP – it should be “text/javascript” or another JavaScript type. Unfortunately I haven’t been able to figure out how to get Firefox to let me handle “text/javascript” the way I do with “application/json” – it seems to be special-cased or something. If any Firefox gurus are reading and know a solution, please let me know! I was holding onto this release for a while hoping to fix that, but I decided that releasing something was better than nothing, so it’s out there and you can play with it. You can see an example JSONP response with the callback highlighted here. I did notice a bug with the 0.3 release right after it was approved – if a value is 0 or false, it shows up as blank. I’ll have that bug fixed with the next release, which should be very soon. It’s great to see that JSONView has become so popular, with over 50,000 downloads and about 12,000 regular users.
XBList 3.2.4
Halo 3: ODST was released a couple weeks ago, and Bungie redesigned their site a bit to include ODST info in your Service Record. This included changing the pages just enough that XBList got confused trying to figure out emblems for people who had never played Halo, and started showing the wrong emblems for those people (only if you prefer Halo emblems to Xbox emblems, which isn’t the default). Not a huge bug, but I took the opportunity to clean up a bunch of stuff in XBList and put out a little release. In addition to the Halo emblem fix, I fixed a bug where your settings could get corrupted and you wouldn’t be able to start XBList. I also cleaned up the menus and settings, consolidating the Halo links into one item, and removing the option to choose a custom notification sound or turn off debug logging. The debug log is much easier to get to if you’re having trouble – previously I had people dig through their Application Data folders for the log, but now there’s an item in the Help menu that opens the debug log directly. Paired with some much more detailed logging, I should be able to fix future problems much more easily. I also changed the system tray icon to bring XBList to the front on a single click rather than a double click, since that feels much more natural in Windows 7. Lastly (and probably not too importantly for most people), I’m storing emblems in your local Windows profile now, instead of the roaming profile. For the few people who use XBList and have roaming profiles enabled, this should save you some sync time. Anyway, you should have been prompted to update when I pushed the update two weeks ago, but if you haven’t gotten it yet you should download and install it now. I still have plans for a major overhaul of XBList, but it’s low on my list of priorities – XBList is still pretty popular, but not as much as it used to be, with maybe 5,000 active users.
TopProcess 1.4
This last update has been a long time coming. Ever since I installed Internet Explorer 8, the TopProcess sidebar gadget has been randomly crashing. I’m not sure what changed in Internet Explorer to make it screw up every so often, but it does. However, it only crashes after running for a few days, so for months I’ve been tweaking the code a bit, then waiting until it crashes, then tweaking some more, rinse, repeat. I’ve finally nailed it down to the point where crashes are very rare, and then I added some code that automatically resets the gadget when it crashes. So you should never see it mess up again. There is also a gadget log file in the gadget’s install directory that I’m using to store errors, so it should be easier to troubleshoot in the future. Lastly, Jean-Pierre van Riel contributed a patch that added IO tracking to TopProcess, so there is now a third way to view your processes. This view shows you the total IO usage (combined bytes in and out, per second) which seems to cover both disk and network access. Get the update from me or from Windows Live Gallery and be sure to rate the gadget. I’m excited to see that it’s been downloaded over 100,000 times from WLG (plus who knows how many downloads from my site).
[...] the bugfix side, I fixed the issue I mentioned in my post about JSONView 0.3 where values that were 0 or false wouldn’t show up at all as a result of some overzealous [...]
[...] the bugfix side, I fixed the issue I mentioned in my post about JSONView 0.3 where values that were 0 or false wouldn’t show up at all as a result of some overzealous [...]
I normally run two instances of Top Process: one to show CPU usage, and one to show memory usage. Ever since I switched to Windows 7, one or the other instances of Top Process will randomly disappear. I’m guessing whatever code you put in to restart Top Process after a crash does not know what to do when more than one instance of Top Process is used.
Benfea, I’ve seen that too, and as far as I can tell it’s a bug in how Windows 7 handles multiple gadget instances. Nothing I’ve seen of the Gadget platform in Vista or 7 has shown that much thought or testing went into the feature, so I’m not surprised.
Confirmed. When I have only one instance of Top Process, the gadget behaves as one would expect. *sigh* Ah well. I suppose we can always hope Microsoft fixes it. :-/
Thank you so much for your time and effort that you put into making this gadget. We all appreciate it so very much. I only have one problem/question: Is it a supposed to reset the update delay back to 5 seconds if you try to set it to anything lower than that? I can set anything higher than 5 but when I put it lower it resets back to 5. Is that going to be a permanent feature if it is part of the program?
Yes, the minimum refresh interval is 5 seconds. When I let people set it lower they did, and then complained constantly about the gadget taking up too much CPU.
Ben: any chance of making it so memory usage still shows in mb even when the process is over 1gb in size? have a process using 1,465,720kb, but TopProcess says 1GB
Good idea. I’ll fix that up for the next release.
Just a suggestion re the problem with win7. How about allowing just one instance to show all three things as an option. This way we do not have dissappearing information. Just a thouhgt. I am not a programmer, so have no idea if this is even possible.
Manuel: No idea. I stopped tracking memory usage since I can now only have one instance of Top Process running at a time, and I generally have no issues with memory, so I track processor usage.
FYI: The multiple instances problem on Windows 7 seems to be an unhandled exception when two or more instances are trying to write to the log file at the same time.
The “OpenTextFile” line in the “log” function in TopProcess.js is the one failing…a little extra error handling here would likely solve the problem (which doesn’t seem to be an MS issue):
function log(content, e) {
var fso = new ActiveXObject(“Scripting.FileSystemObject”);
var s = fso.OpenTextFile(System.Gadget.path + “\\gadget.log”, 8, true); <——–
s.WriteLine(new Date() + ": " + content + (e ? (e.message || e) : ''));
s.Close();
}
I’ve uploaded a fixed version that should work correctly. Check it out.
Ben,
I want to thank you for making Top Process. It’s a great little widget and I loved it up until IE8/Win7 messed it up. I’ve switched to using Top 5 by Orbmu2k because I can run two different instances of it with one monitoring processor usage and the other monitoring memory usage.
I wish you luck in tracking down the problem.
Benfea,
TopProcess 1.5 should fix this issue – have you tried it out?
Hi Ben. Last time I hacked at Top Processes v1.3 to add the I/O code, I also added CSS styles to highlight ‘hot processes’. E.g.
- CPU process over 25% shows as yellow, over 50% shows as orange and over 75% shows as red.
- For Memory, > 256MB = yellow, > 512MB = orange, > 1024MB = red
- For I/O, > 10MB/s = yellow, > 25MB/s = orange, > 50MB/s = red
I noticed the addition was not added in v.1.6 and was curious if it caused hassles, was deemed undesirable or if you just missed the new code.
I acknowledge that hard coding the values for now is not ideal, and that in future it should have configurable parameters.
I’ve reintroduced the code into your 1.6 version – only 3 lines change in TopProcess.js with some styles added to TopProcess.css.
Let me know if you’d like the diff to patch v1.6 for the next version, i.e. v1.7
Thanks JP. I just didn’t really want the hot process highlighting, so I didn’t include it.