I don’t know how but somehow I’ve been awarded the Microsoft MVP award for my contributions to C# technical communities (C# MVP). Of course I am very surprised at this, but I guess I have a short memory. I do have a number of posts and blog entries regarding C#, as well as a lot of forum posts across my various profiles that assist with it. My initial response was actually self-deprecating- “I guess they give them to anybody these days” Which is of course not true.
I cannot help but feel like I got it “by accident”. Most MVPs really are industry professionals with professional expertise, a college education, and a myriad of other qualifications. I feel like an imposter, since I don’t have any post-secondary education and certainly no formal education in any of the domains that I am essentially being awarded for, nor have I actually worked in the industry (well, arguably, that’s not true, if my failing attempt to start a company counts).
That isn’t necessarily to say I don’t deserve the award- I imagine the people responsible for the MVP program are a lot more qualified to make that decision than me.
At this point I’m forced to wonder how it helps me. It does make a very nice thing to put on a resume, but the thing is, I have no place to submit that resume where that award is going to matter. At my last job I think the most my skills were actually used was when I told the manager that, “yes, the monitor needs to be plugged in to work”, or something to that effect. I quit my last job nearly a year ago (Last October) Because I wanted to find something working with computers. The closest things to this are still retail (places like Staples, Best Buy (*Shudder*) and so forth. I applied at every single one I could find, and even got a few interviews, but nothing came of it. Arguably it’s equally likely the fact that shortly after the day I had all those interviews my phone got cut off made follow-ups impossible, so I have absolutely no clue if they ever tried to call me after that (in fairness they did have my E-Mail addresses and I’ve not received anything about it, though it’s more likely they tried to phone, and then just went to the next applicant).
Regardless, let’s be honest. Even that is below my pay grade. I wrote about “getting one’s foot in the door” previously, and this just goes to show how damned impossible it seems to be. The idea of a person who received a MVP Award for sharing C# technical expertise working a minimum wage crap job- or even those above- is almost laughable, but there is absolutely nothing else around here, with one exception.
There is, however, one place I haven’t tried. Pelican Software (which is actually owned by Northwest Forest Products, if memory serves). Well, that’s not quite true, I did in fact try them back when I was a spunky kid whose expertise was pretty much just VB6 and feeling smugly superior… More recently, I did have some dealings with them regarding a Freelance program I had written, “BCJobClock” since it is very similar in many ways to their product, “Tallys”. Things were looking up in that regard but the eventual decision they reached was that BCJobClock was too similar to it. (With the exception that it’s UI is not confusing and it doesn’t cost several thousand dollars). I never actually applied there since to my understanding they really aren’t doing to well and I doubt they’d take the business risk of hiring more staff in their situation. But I may try that anyway. It’s known statistic that companies that employ at least one MVP Award winner are more successful.
At this point I sort of have two options: I can either pursue this BASeCamp thing and try to market BCJobClock (which currently has not appeared on my site at all) for a nominal price, by integrating the existing ProductKey code that I already wrote and used for BASeBlock. But the thing is that the BASeBlock situation really tells me everything I need to know- it’s pointless. Nobody has actually bought a registered copy. And there are very few downloads. It’s online, but in many ways it may as well not be online at all. It just represents 3 years of my spare time that I’ve essentially wasted on a bloody game. It’s still “my product” and I’m proud of it and all that, but pride doesn’t pay bills. And I don’t want to lock away the editor behind the requirement for registration because the Editor is perhaps the part I like the most about the entire thing. Honestly when I was dealing with NWFP regarding the program I just wanted to sell the entire thing and get rid of it. I was sick of it and in some ways I still am. Come to think of it, I’d be more than happy to sign something that gives the complete IP to BCJobClock to NWFP as a condition of working there. Of course it probably wouldn’t get used, but this really would be the only guarantee that I won’t at some point be in direct competition with them, which could very well happen- and this guarantee might be worth it. (I would say so- my program is a heck of a lot easier to use and if I do release it in some manner it’s going to be a lot cheaper, too; though despite their notations it won’t be cutting into any of their market anyway- but in that case it will still be my market share, and not theirs.
Of course, BCJobClock is aimed at a different market. In some ways it’s a Time Management application. I suppose I haven’t discussed the program much since I hadn’t decided what I was going to do with it (well actually there was a page on the main landing site that was a little exuberant on the entire thing at some point, but I removed it when reality punched me in the face with BASeBlock). To Summarize, it basically manages workers and orders for a Repair shop or similar shop. This can be automotive, like the client I originally wrote it for (Somewhere in Iowa, to my understanding) Or it could easily be used for Repair shops or other locations that need a Worker < -> Task management system. The Client program allows employees to clock into and out of orders using a touch-screen interface (naturally I don’t provide the hardware, just the software here), which is done through a WPF C# Application. This program interfaces with a remote MySQL Server using the SQL/Connector which allows the use of ADO.NET Connection and similar objects to work with the MySQL Remote database, which manages all the… data… involved. The Administrator program allows the addition/removal of users, inspection of all orders and users and the time taken on each order as well as each user in total, and all sorts of other information. There is also another little “Watcher” program that is designed for use by people tasked to surpervise work orders and assign tasks to other employees, but aren’t able to have full access to the administrator panel for adding and removing users, getting reports, and all that. Because it is designed for watching users, it also shows Notifications when Users become available for work or when Users or tasks are being “ignored”, and little coloured indicators to show when users/orders are working/being worked on.
It still needs a bit of work to streamline some speed problems that have been encountered by the sole user of the program (which we hacked away with a few INI file changes for their immediate use case), which is related to the fact that the admin program tries to keep it’s view “up to date” by refreshing from the database on a given delay. Unfortunately it picks up a lot of data in the process. Ideally, it would only proceed to actually carry out the “refresh” from the database when it actually knew there was a change, but I’m not really sure how to implement that. Working with databases is frustrating, in that these seemingly basic capabilities seem impossible. (Q.How do I detect when the results of a query changed? A. you perform the query and look through the entire resultset). Of course at that point if you find no changes you just wasted that entire time, so it’s just begging the question.
Actually, with some thought, there is another solution. Relocation. There is simply nothing around here for the type of person who has skills and abilities relevant to a C# MVP Award, so in many ways having it as a bullet point echoes as hollow as the sepia-toned aged mention of my High-School awards from almost ten years ago. So, Maybe it’s time to leave Nanaimo. There simply aren’t any tech jobs here (or I’ve become blind). Not even some sort of more general IT job dealing with servers or the network of a office building or what-have-you.
As I noted however, I never actually inquired NWFP for a career or job, since that wasn’t really my intention at the time. In fact it never even occurred to me. The MVP Award I think helps me here; those aren’t exactly given away freely, there are only two recipients in Nanaimo, Me, and a fellow whose expertise lies in SQL Server; I think there are a dozen on Vancouver Island (though I cannot check).
And if that doesn’t work- well, I guess I’ll have to relocate. On the bright side, My website will still be in the same place
524 total views, no views today
A quick update on the functionality I was trying to use ReferenceCounted List for in BASeBlock.
I ended up not using the class at all. I actually ended up just using a different method- instead of the powerup changing the drawattributes when it starts and ends, instead it is simply called each frame- basically the character is like “OK, before I draw- you abilities got anything to add” and it will change what it wants as needed. The gamecharacter resets it after drawing so if the ability is removed it will “revert” to normal appearance.
Also, this is possibly my shortest blog post ever. In order to bulk it up- I made some changes to the main page as well as the theme of the blog. The main page’s various images were tweaked, and the blog has had it’s font’s changed because the font it was using was annoying. (Windows Vista and later will be unaffected by the change). BASeBlock now has a “BuilderShotPowerup” thingamajig that let’s you shoot blocks and build stuff, which I think will be useful for building a “bridge” for the GameCharacter, and other purposes. (This idea was Mulreay’s, btw, he has great ideas). I tweaked a lot of stuff such as the editor’s sound data list editor now showing progress and being less annoying to use, and a few general tweaks and minor fixes here and there. I documented it all in the changelog which I will post when I finally upload the new version.
364 total views, no views today
While I typically write about either computers, or nonsense crap here, It’s a personal blog and therefore I feel compelled to write about a recent event that I could only describe as emotionally traumatic.
What event? The death of one of our pet cats.
“PAH. It’s just a cat” you say. And, a day or two ago, I would have shared that perspective; after all, a cat is a cat, right? Cats, and other animals, die all the time due to being hit by cars, abuse, and neglect. I would have never expected the death of this cat to effect me as much as it did. After all, it’s just a cat, right? That is what I keep telling myself, everytime I start to feel sobs welling up, I think to myself “What the fuck man, she was just a fucking cat. get a fucking grip” .
I’m no stranger to the loss of pets, either; we had a family Dog that died a year or so that we’d had since I was in fifth grade. In many ways I grew up with the dog. But when she was getting old and we put her down- I wasn’t sad, or angry, or anything; I was disappointed , but death is inevitable. And she had lived a long happy life. Same for various other pet s who have died from assorted causes. Shit happens, and you deal with it- no sense getting emotional over it, right? Even when family members have died, after the initial “holy shit they’re gone” period, I still have the memories of their life and (assuming we were at all close) various events and memories we had shared. And that is with human beings; somehow I feel that is fundamentally different; They were sentient people, with families and jobs; a pet is just an animal you keep as a companion; logic dictates that a pet dying should be no different than losing your favourite book. But emotion tells us that an animated, living object has more value than an inanimate object (with the possible exception of insects, bugs, and so forth). And up to now, my feelings about losing various pets has reflected that. But this instance has an overriding factor that makes it both more real and stronger.
So that brings about the question- what makes this one different? There is one, blatant difference between the experience of losing this pet compared to all the others.
I watched her die, and it was anything but peaceful
That changes the entire thing for me. While I can remember her, as a cat, I don’t think I can ever remember her without also remembering the way she died. In those brief few seconds where I watched the life drain from her, as she fought for every last breath, every lasting second of her dwindling life being only the result of a fierce determination to hang on, the memory burned itself into me, overshadowing at least in part all other memories about her, so that when I think of her, the first thing that pops into my head is her death. With my other pets, I wasn’t there for their death’s so my memories are typically about their life; not their death. You know, you remember the various fiobles that set them apart from each other and other pets. Thinking about it now, I can’t remember any of those when I think of her. All I remember is the 10 second period where I was half awake, hearing the struggling sounds that in my idiotic naivety perceived to be her playing; the 5 seconds after being fully awakened and suddenly growing concerned at the violence of her activity. Then the smell, which told me something was critically wrong. Grabbing a nearby flashlight and peering underneath the bed. And not within 10 seconds of that, watching her last half dozen breaths, as she stared at me, with an expression that essentially asked me if she could give up yet, which I of course responded with a look of perplexity as I let the situation sink in. watching one last violent thrash as her last breaths were acquiesced only through a dogged refusal to accept the inevitable. And then, she was still.
I will never forget those few seconds where I strained to see her chest moving to indicate she was breathing, certain that I simply wasn’t looking hard enough, She was still alive, she wouldn’t die , would she? Certainly there is a logical explanation for her behaviour. But there was nothing. Her body was still.
I will never forget my puzzled utterance of “Squeak?”, which came out more as an exclamation and affirmation that what I was seeing was in fact being seen with my own two eyes and was not in fact some sort of backwards nightmare.
I will never forget my frantic attempt to move the furniture in such a way to get to her, or my cursing of the nearby chair and desk for having the audacity to obstruct me from easily performing that task.
I will never forget having my hope that she was just breathing lightly dashed, as I moved the bed and exposed her head, and had two unblinking, and clearly lifeless eyes staring back at me, as her tongue hung out in what would in other circumstances be considered a comical fashion.
You know how people talk about “seeing the life in their eyes”? I always thought that was a phrase. I now know it’s not.
378 total views, 2 views today