Solved: Debugger:: An unhandled non-continuable exception was thrown during process load “0xc0000022″

Posted in Technical on November 22nd, 2010 by p14nd4

I recently developed a new application on my local machine (in Visual Studio/C++ 2008), and then moved it into our source/revision control system at work, IBM/Rational ClearCase (cc). The new app uses some third-party libraries for which we only have DLLs (no source), so I checked those into ClearCase, too. Unfortunately, the first time I made any changes to the version in cc and tried to step through the app in the debugger, I was immediately presented with an unfriendly error and app termination:

Debugger:: An unhandled non-continuable exception was thrown during process load

along with some return code (0xc0000022).

Read more »

Tags: , ,

WordPress vBulletin Bridge (vbridge) disabling WP Super Cache

Posted in Technical, TechwareLabs on September 7th, 2010 by p14nd4

As mentioned in my previous post, I’ve been playing with WordPress, vBulletin, vBridge, and some other stuff as part of my work for my other site, TechwareLabs. One of the other plugins I utilize on that site is WP Super Cache, which I discovered was an easier way to accomplish basic static caching instead of trying to jump into the deep end of learning mod_cache, memcache, and other sorts of fancy things for an actual elegant solution.

Unfortunately, these are complicated systems, and vbridge in particular seems slightly less polished than some more widely utilized components (though, in fairness, its user base is considerably smaller than most wordpress plugins).

Read more »

Tags: , ,

WordPress vBulletin Bridge & NextGEN Gallery Error

Posted in Technical, TechwareLabs on August 17th, 2010 by p14nd4

I’m the webmaster (and co-founder) of TechwareLabs, which gives me opportunities to play with some technology, software, and code that I otherwise likely wouldn’t have the motivation (or occasion) to pursue on my own. (This isn’t the main point of the post, but one of the coolest in recent history was using Xdebug profiling in PHP with KCachegrind to debug a performance problem on the live site. Flipped the profiler on for a few seconds, sent a few requests to the server, disabled the profiler, and loaded the output in KCachegrind to immediately get an awesome graphical overview of all the calls made to render the page, and how long they took. I don’t get to use fancy software like that at my day job, so this was very cool to use, and even cooler that it actually helped solve my problem so quickly.)

Anyway, back to the main point of this post! We’re currently working on an integration between the site backend (WordPress) and our forum software (vBulletin). I found a slick plugin for WordPress that’s supposed to accomplish most of this: Complete WordPress/Vbulletin Bridge and a guide explaining that vBulletin’s own utility, ImpEx, already has the ability to import users from WordPress. (Side note: ImpEx is available only to current vBulletin license holders, and can be downloaded from the same page where you can download vBulletin, after logging into the members area on their site. This wasn’t immediately apparent to me from reading that guide.) Woo! I can follow instructions!

Things went pretty smoothly, other than the hiccup I had trying to use the WordPress or WordPress CMS importers in vBulletin ImpEx. I eventually realized I had to click some start over link to get ImpEx to clear my session before I could continue with the BBpress importer, as the guide mentioned above recommended. Things seemed to be working pretty well in my testing, aside from a few pesky PHP errors about headers already being sent on some pages in the WordPress admin control panel, and a few slightly more concerning vBulletin-generated emails about insufficient database connections (yet to be resolved).

The bad news came when someone actually tried to publish a live article, and discovered that the Add media button for uploading images wasn’t working, and was instead presenting an error:

Are you sure you want to do this?

Please try again.

I poked around in media-upload.php, and first noticed that $_GET[‘inline’] wasn’t being defined, so I thought this was the problem. Not so fast! I guess the staff’s been using the NextGEN Gallery Plugin for WordPress, so this does something fancy for the media upload links, so that wasn’t the problem. My google-fu was apparently a little weak, since although I found other people reporting the issue immediately, I had to read through about twenty pages of the plugin thread before I found a solution (which, in retrospect, I wish I would’ve thought to check, myself, earlier).

User ‘skariko’ posted a [possible?] solution for folks having a problem with the WordPress flash-based image uploader, and while this wasn’t exactly what I needed, it was the Eureka! moment I needed to solve it, myself with a few keystrokes of modification. He suggested modifying the following line in vbbridge.php:

  1. #if (basename($_SERVER[‘SCRIPT_NAME’]) == ‘upload.php’) { return; }


  1. if (basename($_SERVER[‘SCRIPT_NAME’]) == ‘async-upload.php’) { return; }

I’m guessing that async-upload.php is the file that the flash uploader posts to, and for whatever reason needs to be unaffected by the vbbridge code. Anyway, I wasn’t even getting that far, so I just changed it to

  1. if (basename($_SERVER[‘SCRIPT_NAME’]) == ‘media-upload.php’) { return; }

and everything magically worked!

It turns out that someone else posted this exact same solution on another page of the thread, but I wanted to share it here, too, so maybe someone else in the future can have better luck googling for a solution (or in case I forget how I fixed it, and have to fix it again :-p).

Tags: ,

VMware Server Hangs on ‘Mount ISO’ Browsing smbmount

Posted in Technical on March 24th, 2008 by p14nd4

Hahaha. So I’ll try to keep this brief, but I just wanted to post the problem I recently found with VMware Server (1.0.4, 1.0.5) on linux (perhaps others), and what I eventually found to be the cause and workaround.


Running VMware server on linux, I edit virtual machine settings, open the CD-ROM device, select Use ISO image, and Browse. I navigate to my smbmount (actually a cifs mount line in my /etc/fstab), and VMware hangs for about three or four minutes before displaying the contents of the directory. The following lines are written to /var/log/syslog:

Read more »

Ridiculous Account Requirements on

Posted in General, Technical on March 5th, 2008 by p14nd4

This is a break from my regular vein of [not] posting, but I’m livid enough that I need to write this. I’ve had SprintPCS cell phone service since 2003, and have been generally pleased with the service. It’s all subjective, of course, but I haven’t had real issues with dropped calls, and their data services (1xrtt, evdo) have been quite good to me. I log in to their web site regularly to check my account, pay bills etc, and it’s worked perfectly for the past several years. Apparently that was unsatisfactory for Sprint.

Read more »

Ubuntu Feisty (7.04) + Compiz + Thinkpad T41

Posted in Technical on May 23rd, 2007 by p14nd4


As some of you may know, I bought a refurbished IBM ThinkPad T41 (2373-5U2, iirc) during fall 2005, and have been dual booting it with Windows XP Professional and Ubuntu Linux. The hard drive is only 40 GB, which I partitioned as:

  • 26.5 GB Windows (NTFS)
  • 5 GB Ubuntu / (ext3)
  • 1 GB swap
  • 4 GB /home (ext3)
  • 3.5 GB unusable/recovery partition

Windows and Visual Studio 2005 Professional managed to eat up about 8 GB, plus another 1.2 GB for the installers I left on the hard drive, and miscellaneous other crap put the Windows partition near its capacity, and I had nearly 1 GB free on the Ubuntu / partition, but when it came time to upgrade to Feisty, I was informed that I needed over 1.1 GiB free. Even after some housecleaning, I still came up short, so I decided to wipe / and perform a fresh Feisty (Ubuntu 7.04) install. I figured I was probably about due anyway, since I’d been dist-upgrading since at least Breezy. The installation went fine (I did it during a meeting here at work), but when I went to enable “Desktop Effects” (compiz), I got some odd results. Actually, immediately after enabling it, the right section of the screen was displaying odd banded/corrupt artifacts (leftovers, I presume, from switching video modes, etc). I disabled the effects for the time being, and went about my life.

Fixing Compiz Display

As I noted above, I had problems getting Compiz working from Ubuntu 7.04 Feisty on my ThinkPad T41 with an ATI Mobility Radeon 7500 (01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]). One or two Ubuntu version ago, I had some OpenGL performance issues with xmoto (a game), which I kind of resolved by changing my xorg.conf file to explicitly use the ‘radeon’ driver instead of ‘ati’ and forcing AGPMode 2 (and maybe something else, I don’t remember for sure). I hoped that would solve my current problem, but alas, it did not. Perhaps resulting from my inability to accurately describe the results I was seeing, I was unable to immediately find any quick fixes to my problem. I guess that’s why it’s still beta, huh?

Update! I reinstalled Feisty (fresh) on my new laptop hard drive, and spent some time isolating the line that fixed the display rendering. It wasn’t the original line I thought, but rather:

Option "AGPSize" "32"

Fixing Compiz Performance

After getting compiz working, I was still getting weird performance hits, where I could hear my hard drive click, whirr, and see CPU spikes during really any display updates (even scrolling a man page in a gnome terminal window would spike the CPU). I thought this was somehow related to the new IDE device handling by the SCSI subsystem, and possibly not having the drive using DMA. I followed that hunch for a while, since it seemed that other people were indeed reporting issues of that nature in Feisty. The information I could glean from dmesg suggested that the drive was in fact in DMA mode, but during the course of the investigation, I noticed some questionable SMART values, so I decided that maybe my hard drive was just dying, and bought a replacement. However, I wasn’t entirely convinced that was the problem, so I kept poking around. I tried many combinations of options, but eventually found a winner. Again, I’m not 100% sure which line was the actual solution, but I think it may have been the following line in my Device section of xorg.conf:

Option "RenderAccel" "true"

Along the way I also modified my dric (/etc/dric or ~/.dric) to enable hyperz as follows (alternatively accomplished with the package driconf):

dric file »

Full xorg.conf Devicesection:

Full xorg.conf Device section »

Minor Front Page Redesign

Posted in Technical on February 23rd, 2006 by p14nd4

After leaving my front page (visually) the same for about two years now (you can check it out for yourself at, I recently felt somewhat compelled (obligated) to actually do something useful after receiving repeated praises from Josh about my site (though, to be honest, I’m not sure what makes my site particularly any better than his … whatever). The idea actually struck me around 4:30 AM, right after I had lain down for bed; I knew that if I didn’t get up immediately to get the idea down on paper, it would be forever forgotten by the time I awoke. While that same situation plagues me with relative frequency, I almost never actually get up to ensure the idea’s survival.

I missed my first (11:15 AM) class the next morning, but was on time to my 12:45 lecture, where I quickly went to work coding up the idea. The idea is by no means particularly complex, just efficient and elegant. With about six lines of xhtml constituting five objects, and maybe three css id’s, the layout worked perfectly in Opera and Firefox (both boasting W3C standards compliance), and the code was fully compliant to the xhtml 1.0 strict standard. Unfortunately, Internet Explorer was another story. (Duh.) Here was the original xhtml code:

<div id="title">
<a href="/resources/" title="resources">/resources</a>
<a href="/gallery2/" title="gallery">/gallery</a>
<a href="/blog/" title="blog">/blog</a>

And the CSS basically consisted of:

div#title { position: absolute; top: 40px; left: 40px; color/border stuff; }
div#title a { display: block; position: relative; bottom: 7px; right: 0px; float: right; margin-right: 15px; color/border stuff; }
div#title a:hover { color stuff; }

Internet Explorer didn’t render the <div id="title"> the correct height, aligned the h1 to the top instead of middle, and didn’t have the links in the correct place. I was able to fix the link placement with moderate ease, by enclosing them all inside another nested <div>, which had

position: absolute; right: 0px; bottom: -9px;

and then just did

float: right; margin-right: 15px;

for the <a> tags. I believe this fixed the main div’s vertical size rendering issue as well, in IE. Getting the <h1> to

vertical-align: middle;

within the main div was another story, though. I probably worked on that issue alone for another hour or more. I tried various combinations of nested elements and other css attributes without success, until I tried nesting the h1 inside a div, with a border enabled. I stumbled across this solution because I start putting borders on all my objects to debug where certain boxes are ending, beginning, hitting each other, etc. Regardless, I figured that just another nested div was the solution, so I immediately went to remove the testing borders, so the site would be suitable for public display (having half a dozen dashed red borders running through the header wasn’t particularly attractive). To my great confusion and horror, though, the h1 regressed to vertical-align: top after removing the borders. Sure enough, adding the border back onto the div re-fixed its alignment. I tried just setting a top border, so there wouldn’t be much visual evidence of this hack, but IE wouldn’t behave with just a top border; it needed all four. Eventually I conceded that it just wasn’t going to look quite right in IE, and moved on for the evening.

Today I finally got around to moving the new header to the main page, but again grew displeased with how it looked in IE. Another idea struck me, though, which managed to elude me yesterday evening. If you were to look at the code, you would again see an additional div containing only the <h1> element, with a

style="border: 1px solid black;

… which would normally result in an ugly visible border along the bottom of the header… I remedied this situation by overriding the border shorthand property immediately after declaring it, and eliminating the left, right, and bottom borders. In full, the code for that div tag reads as

<div style="border: 1px solid black; border-bottom: 0; border-right: 0; border-left: 0;">

. Don’t ask me why this happens to fix IE’s rendering, but I’ll live with it, I suppose.

BSD Bootloader ‘Read Error’

Posted in Technical on February 17th, 2006 by p14nd4

As part of my home network, I have been using an HP Vectra VL5/166 Series 5 DT Pentium 166 MHz computer as my NAT router for several years now. I used IPCop (Linux-based) since its 1.3 release, followed by 1.4 for quite a while, and then decided I should give m0n0wall (BSD-based) a try, starting at the 1.2b9 release. m0n0wall was originally designed to run on embedded / SBC systems, especially Soekris boards, which boot off a CF card. It was later [easily] adapted to run on generic PCs, though there’s no real method provided to install it, other than performing a ~5 MiB disk image copy to the hard drive. I tried this (using Knoppix textmode, wget the image, then dd), but was plagued by a Read error after loading the BIOS. I worked on trying to fix this for quite a while, to no avail. Eventually I conceded defeat and just used the m0n0wall LiveCD to boot the system, and stored the configuration on a floppy disk. I later experimented with pfSense very briefly, which is a modification of m0n0wall with a somewhat different target audience and different goals in mind. Of particular interest to me was the fact that after booting from the LiveCD, it provides an actual [optional] installer, which I hoped would avoid the problems I ran into with m0n0wall. Long story short, after about 6 attempted installs, it still didn’t work, so once again, I conceded defeat, and kept on truckin’ with the m0n0wall LiveCD.

Fast forward about five months…

m0n0wall (1.2b9, LiveCD + floppy for config) was very stable … no lockups or reboots (planned or unplanned) for the whole time. One night, I decided to reboot all my computers including the m0n0wall router. Anyway, after it booted back up, it was acting strange … and then started telling me errors like no XML object found, etc. I pulled out the floppy disk, and checked it in my desktop, which spent about 10 minutes trying to read the ~12 KiB file, and later chkdisk confirmed that there were 512 bytes in bad sectors. Crap. Rather than just rebuilding my configuration, though, I decided to go all out and try the new pfSense Beta (finally out of alpha), which put me back in the situation of fixing the Read error once the system actually hit the BSD bootloader.

Read error THIS, bitches!

I googled briefly, and came across a page Why does FreeBSD’s boot loader display Read error and stop after the BIOS screen? Well, that seemed to capture the essense of my problem fairly well, so I gave it a go. There was some confusion to this issue, though, as my BIOS initially reported the disk was 16,383 cylinders, whereas the BSD bootloader installer [correctly] recognized that it was 39,703 cylinders. I tried various combinations of either using the BIOS’s wrong value in the bootloader installer, or entering the right value in the bios and bootloader, or entering a third value in both (somewhere between what the BIOS thought and what the hard drive thought); none of these approaches worked. I also tried most of these combinations without the default ‘packet mode’ selected when installing the bootloader; again, no success. I even tried partitioning the disk into ~1 GiB partitions, in case the issue was with using a partition sized greater than a 32bit address; still no luck. Eventually, I pulled out my trusty Ultimate Boot CD (UBCD), and started going through the boot loaders provided on there. I didn’t make it through the whole list, because when I got to GAG, I was easily able to go into setup -> add operating system -> select FreeBSD from the list and name it/pick an icon, then configure Boot timer to ~2 seconds (so that it will boot without my interaction, since the router is almost always headless / keyboardless), and pick the OS that I just added as the default choice. Lastly, selecting Save in Hard disk immediately installed the bootloader to the drive, and I was able to boot like a charm! It’s frustrating how quickly and easily GAG worked after I spent hours trying more complicated solutions…

Anyway, I’m glad it works. I’ve mostly reconfigured my router with pfSense installed to the hard drive now, and it seems to be working fairly well. I haven’t checked out the Beta1 known bugs yet, but the first bug I’ve observed seems too obvious to even imagine someone hasn’t posted. I guess the pfSense logo is set as a background image (css, presumably … I haven’t actually looked at the code), so they use a transparent image statically placed above it for the actual linking (to the main page). For me, this image (http://arvin.local:446/themes/pfsense/images/transparent.gif) is missing (404 – Not Found) in each of the three themes provided with pfSense, so I get a nice little rectangle with the word Transparent (the alt text) above the pfSense logo. Aside from that, everything else has been sweet like candy. There’s rumor that I can even get more info than just traffic stats from SNMP (for use on my cacti box), but I haven’t looked into that very much yet. Anyway, I hope this can help someone else with a similar problem to mine. I don’t just write these technical posts because I like to regale myself with stories of grueling troubleshooting and frustration ;). Good luck, and have fun.

Programming Assignments

Posted in Technical on February 16th, 2006 by p14nd4

Well, my final full semester has started, which includes a fairly grueling schedule totaling 20 credits of 4000-5000 level csci courses. Crazy? Yes. Am I going to do well in all my classes? No. Am I going to take a year or two off my life through sleep deprivation? Probably. Regardless, I’m taking some classes that are finally of potential interest to me. The University of Minnesota B.S. Computer Science program requires that students declare an upper division emphasis, which I kind of made up on a whim the night I realized I had to register for my classes. If you clicked the link above, you know that three of my classes are network and/or internet programming (which happens to probably be my area of most interest), so my emphasis was named something along the lines of Internet/Information Services.

Anyway, the two network programming courses I’m in have just released their [first] big programming assignments for the semester, both of which are kind of interesting, and I dare say I might even be excited to work on them. If you counted, you’ll notice that still leaves me with four other classes about which I have not expressed any excitement. Three of those aren’t bad per se, just not necessarily exciting to me. The fourth is Data Mining. My feelings on that class can be easily summarized as follows:


…But I digress. Getting back to my main motivation for this post, which was to talk about these two programming assignments.

Csci4211 – Introduction to Computer Networks

The full assignment is defined here, if you’re eager enough to actually read about it yourself. The assignment is titled Peer-to-Peer (P2P) File Sharing System with Messaging, which is fairly self explanatory. To understate the situation, it’s not going to wipe out Kazaa or BitTorrent any time soon, as it will be written for a command-line/console interface (no GUI), and (based on my brief scan of the assignment) can only actually exchange files between directly connected nodes (there’s no central server).

Inet4021 – Network Programming

Dammit. I hibernated my computer and lost the paragraph I’d already written about this assignment. Surely this time around will be less exciting than the first; I apologize. That said, I’ll proceed. The assignment is only available in .doc format here, which you probalby don’t want to go to the trouble of downloading and opening, so I’ll summarize. The assignment is boringly titled Lab #3, which isn’t of much use to you, but the primary objective is: Based on RFC 1945, you will need to write an HTTP client that meets the 1.0 specification. For the less technically oriented individuals out there, an HTTP client is more commonly known as a web browser (such as Internet Explorer). This ain’t yo’ momma’s web browser, though… Don’t expect pretty graphics, flash animations, or anything fun like that … a closer comparison would be wget, though this is even less advanced than that. I think a more fitting description would be a URL document grabber. It’s approximately equivilent to going to Start -> Run -> cmd, and typing:

telnet 80
GET / HTTP/1.0

[Press enter twice]

This returns the following, which is approximately what I understand this program is supposed to output:

HTTP/1.1 302 Found
Date: Fri, 17 Feb 2006 00:23:25 GMT
Server: Apache/1.3.33 (Unix) mod_fastcgi/2.2.12 mod_ssl/2.8.23 OpenSSL/0.9.7g
Connection: close
Content-Type: text/html; charset=iso-8859-1

<TITLE>302 Found</TITLE>
The document has moved <A HREF=>here</A>.<P>
<ADDRESS>Apache/1.3.33 Server at Port 80</ADDRESS>

To continue my line of reference from aboive, this client certainly isn’t going to blow Internet Explorer out of the water. Considering my dream job (take that very lightly) is working for Opera Software ASA, this project is of particular interest to me. I actually kind of wish it was a more extensive project (though, don’t quote me on that in three weeks when it’s due, and I haven’t started yet).

Intel 802.11b 2100 3B finally working with 3Com OfficeConnect 3CRWE454G72

Posted in Technical on January 30th, 2006 by p14nd4

A wordy title, to be sure, but I figured I would post my "news" here, after struggling with this for so long. If you’ve read my previous post(s), you’ll know that I’ve experienced tremendous difficulty and aggravation with my 3Com OfficeConnect Wireless 11g Access Point (3CRWE454G72). The most recent round of fun I had with this AP was after buying my IBM (Lenovo) ThinkPad T41 2373-5U2 (pics), which includes an installed mPCI Intel 802.11b (2100 3B "Intel Pro Wireless LAN 2100 3b Mini PCI") wireless client adapter. Of course I eagerly set up the laptop and try to connect to the network/internet through my AP. Apparently 3Com thinks that’s a silly idea, and gave me a big NOYUO (well, not quite, but I pretty much couldn’t get the laptop to associate with the access point, pick up an IP via DHCP, or any of that fun stuff). After only a few months earlier going through a similar experience with my Fujitsu LifeBook P-1035 (Prism II) and the same access point, only to later find out that 3Com acknowledged this was a problem with their firmware (in the sense that they fixed it, and listed it as such in the changelog), I didn’t put too much more effort into what I assumed was a lost cause (since I can’t fix the proprietary 3Com firmware, and they were already tired of me whining about a handful of problems from before their previous firmware fix).

It wasn’t until today … a couple months after buying this laptop, that I stumbled across this enlightening article on Intel’s site, noting that "PSP (Power Save Polling) Causes Connection Issues With Some Access Points." Durrr… After seeing the title, I was already fairly sure what the solution was, but I read through the article anyway, which notes:

If the wireless access point / wireless gateway does not properly support the PSP feature, intermittent loss of wireless connection, inability to initiate a wireless connection, or poor wireless connection data performance could result. The symptoms may be more pronounced when on battery power.

Contact the access point vendor for an updated software which corrects the problem. [Heh, yeah, I won’t hold my breath.]

As a temporary workaround, manually set the adapter to CAM (continually aware mode), which disables the PSP capability. To do this, in either Intel® PROSet for Wireless Software or the Network Control Panel Applet (NCPA), in the power management section, uncheck the DEFAULT / AUTO selection and set the slider for HIGHEST / MAXIMUM PERFORMANCE.

Battery life be damned, I guess, if I need to use my laptop with my own access point. I suppose it’s better that it worked out this way … that I could connect to every other AP I’ve ever tried, except the one I own, rather than only being able to connect to mine, and no one else’s (for instance, in class, at the coffee shop, at a friend’s place, etc.). I’ll probably send 3Com another email, and link them to the Intel page noted above, but if they haven’t fixed it already, it seems somewhat improbable that one email is going to weigh very heavily on their minds. That said, I am surprised that such a conflict has not arisen more frequently. The ThinkPad line seems moderately popular, as does the Intel 2100 mPCI card. I’m not sure why I would be the first person with this particular combination of hardware (and IBM does set the power save level to medium by default (this is where I experienced problems)), nor does it seem like 3Com would neglect to test such a popular card (from my observations, anyhow) with their hardware. I’m sure the reasons behind this will remain a mystery to me, but there something worth pondering. I hope this can help at least someone else out there on THE INTERNET! from some of the frustration that I’ve experienced. Enjoy. G’night.

Edit: [2006-02-06T03:28-0600]
Perhaps my jubilation was premature. Although I successfully used my wireless network for several hours the night this was posted, I was right back where I started, when I tried using my laptop a couple nights ago. I connected up to the AP right after starting up my laptop, signed onto my captive portal, and WiFi was working … then about ten minutes later, there was approximately no connectivity (no pinging the AP, or the device behind it … nothing even appearing in the ARP cache. I’ll keep this updated if I find out anything else useful.