Skip to main content

Posts

ASP Software Drawing at SIC 2007

So this year I won't make it (again) to SIC. The 2007 Shareware Industry Conference is probably going to be lively this year given that this is also the 20th Anniversary of the ASP (Association of Shareware Professionals): http://asp-shareware.org/ This year the ASP has a hospitality suite: Expensive, spacious, and only a few available each year. In other words, they went all out. Crazy people, those ASP members. Part of the events that will take place in the suite is a drawing in which they give away registered versions of shareware products. So while I won't actually be at the conference, my products will be. Let's see, I sent 5 CDs to the person in charge: 2 copies of VerifyMyPC 2.6 (registered version, of course) 2 copies of MyTaskFocus 1.1 (registered) 1 year license of MyUpdate Toolkit (a $250 retail value) If you add it up, that's $310 worth of software product (excluding burning*, shipping, and handling costs). For me, being a small software company and all, I t...

Microsoft patent (un)happiness

http://mcpmag.com/news/article.asp?editorialsid=1320 Microsoft is out to make money. As are most businesses. Money is required for the basic essentials of life and I personally believe Open Source cuts into that. Until food, clean water, shelter, and clothing are free for everyone, Open Source is a great idea in principle but a bad idea in practice . The only thing you can do to make money off of Open Source is to turn it into SaaS...but how long can that model _really_ hold up? Making Linux and Linux-based products easier and easier to install (e.g. Ubuntu, OpenOffice) makes it more available to the masses and IT folk to do it themselves but if a person can't eat, drink, sleep, and they can't afford clothes (naked?)...is it worth it? I don't have the answer to the question. Most programmers don't think about what effect their software will have on other people. Will developing for Open Source eventually cause all software developers everywhere to eventually los...

How to get squish just like grape

When the other shoe drops... http://www.channelregister.co.uk/2007/06/06/microsoft_mvp_threats/comments/ ...it is going to hurt. A lot. So this guy wrote a pretty popular add-in for Visual Studio .NET called TestDriven.NET. I've actually heard about this add-in prior to the whole mess he has currently got himself into so it is definitely popular. Summary of how it has gone down thus far: 1) Developer creates add-in for VS.NET via COM because a VSIP license is expensive. Nothing in the EULA explicitly prohibits it. 2) People like the add-in and it becomes popular. 3) Microsoft gives him MVP status and then discovers the add-in works for VS.NET Express and asks author to remove support for Express. 4) Author refuses. 5) MVP status is revoked. 6) Author adds support for VS.NET "Orcas" Express. 7) Microsoft legal makes its move. Frankly, VS is Microsoft's intellectual property, not the developer's. However, there are two parties at fault here: 1) Microsoft...

Why Windows Error Reporting (WER) does not work

If you are reading this, you are probably coming from the CubicleSoft website to learn more about Windows Error Reporting. This blog entry will thus be a little more professional as a result. Windows Error Reporting, or WER for short, is a set of technologies Microsoft put together for Windows XP and expanded upon for Windows Vista: http://en.wikipedia.org/wiki/Windows_Error_Reporting To summarize the Wikipedia article, WER gathers error reports in a central location (Microsoft servers) and developers of software then can log into the system and retrieve those error reports and thus fix bugs. End-users of Windows see something like this when the application crashes: The user clicks the "Send Error Report" and the bugs get fixed. The official website of Windows Error Reporting (WER): https://winqual.microsoft.com/ All that sounds good in writing until developers start reading the "fine print" on what is required. By default, applications are not WER enabled. That mea...

And out of the blue...a job offer...

Out of the blue I received today in my in-box (just now checking my e-mail - yes I'm still running on empty in terms of sleep) a job offer from Google. Well, not an offer per se, but somehow, somewhere I made a significant impression. The amazing thing is that I haven't sent my resume anywhere. In fact, it is sorely out of date - been busy with the whole CubicleSoft thing. A Google Internet recruiter came to me. Could have been the article I just put up on CodeProject, but who knows? (Maybe I'm more important than I think I am...don't let that go to my head now :P ). I'm not going to do anything about it today. I'm too tired. And likely to royally mess up something I'd be smacking my head against a brick wall over for the next 10 years. Best to get some sleep first before doing or saying anything I'll regret. Amazingly enough, I'm still pretty lucid.

UAC: The Definitive Guide

I'm operating on zero sleep in the last 24 hours as I write this. So I'm going to keep this short. I just finished publishing a new article on CodeProject.com on Vista UAC. I call it the definitive guide because it combines every last bit of knowledge I've got on Vista UAC elevation, provides a really cool package called Elevate, and, well, it is everything a software developer needs to know about UAC and its quirks and workarounds...without having to spend weeks on hunting down the information: http://www.codeproject.com/useritems/UAC__The_Definitive_Guide.asp Plus it is by an author of a book called Safe C++ Design Principles. Oh wait. That's me. I must be tired. While you are reading the above article, be sure to listen to: http://www.jonathancoulton.com/mp3/Re%20Your%20Brains.mp3

Solving pesky LNK2005 errors...

For those who read this blog and aren't technically inclined or simply don't use Microsoft Visual Studio (e.g. you use a different compiler suite), this entry isn't for you. One of most annoying things to run into in Visual C++ are linker errors. They are obtuse, poorly documented, and double-clicking them doesn't take you to the source code (or the part of the object file) where the problem is occurring. One of the most confounding error messages is the LNK2005 error message. Usually something like this shows up: nafxcwd.lib(afxmem.obj) : error LNK2005 ...something about operator new/delete goes here... If you search Google, a Microsoft Knowledgebase (KB) article pops up (KB148652): http://support.microsoft.com/kb/148652 A lot of people run into LNK2005 errors, find the above article, try out what it says, and discover the "solution" makes the problem worse, not better. That is the only KB article I've ever seen that provides an incorrect solution for a p...

Photoshop math

When it comes to Photoshop, I'm an expert. Photoshop is designed, for the most part, for print design. It isn't exactly what I'd call web-friendly. Over the past few iterations Adobe has done things that help us web, icon, and what I call "scratch graphics" designers do stuff more easily. However, I'm working in Photoshop right now and just realized that I started calc.exe for the zillionth time. Looking back over the years, I've realized that every time I start Photoshop, I have inevitably started calc.exe or pulled out my graphing calculator (now dead - a huge nuisance - should probably replace it but my experience was that it regularly chewed through batteries). So, what I'd love to see in Photoshop is allow every field that takes a number to also take a mathematical formula and evaluate it. Real example of how I want it to work follows. Take the "Canvas Size" dialog: For this case, I want to increase the width of the canvas to 886*2-1 pix...

1and1.com dedicated servers...

So you are a small business like me and you have a Geocities/Yahoo/freebie website. Ads pop up all over the place and, well, it looks ugly. Or maybe you pay something like $10 per month for scripting abilities and get embarrassingly slow speeds with the site when visitors do their thing and, uh, visit. Or maybe you need some sort of customized setup. Or you are tired of paying tons of money for a few gigabytes of bandwidth per month. Or you run the web server on your Cable/DSL line and have an outage every month or two. Then let me point you at my provider: http://www.1and1.com/?k_id=9130514 If you visit forums, you will probably find users ranting about how horrible 1and1.com is. Those users are paying for the $2/month service. 1and1.com dumps something like 300 websites onto a single server blade and then moves onto the next blade, dumps 300 more websites, etc. They don't give a darn about you if you go with their shared hosting services. And why should they? You aren...

The world's first unified language

is source code. The various programming languages on the planet. It never ceases to amaze me, I can go to a page completely written in Japanese but the moment they get to source code, they start speaking a language I understand. I don't know a single word of Kanjii, but I do know C/C++ and even if the programming language isn't something I know, I can understand the gist of what the person is trying to get across. Unlike most languages that carry cultural baggage, source code is internationally independent. Sure it is "written in English", but that is inconsequential. Most of those same Japanese pages use unrecognizable variable names and comments, but it is really easy to figure out what they are saying based on the source code...even the Japanese parts. For some reason I see more Japanese results for really cool but slightly obscure stuff than any other country. And they seem to write better quality code than most American programmers. While businesses outsou...

VerifyMyPC works!

Despite the doubts people constantly send my way, VerifyMyPC works. Last night it caught an automated software installation of a Java-based application that was installed via a webpage _without_ my express permission. Needless to say, it got uninstalled. It was a pretty harmless application written by computer nerds. Math nerds who know how to write computer software, specifically. The program's name is GCalc. VerifyMyPC ( http://www.cubiclesoft.com/VerifyMyPC/ ) notified me that GCalc was installed, which immediately sent me on a panic to figure out what it was because I knew I hadn't installed it. Searched Google for 'gcalc' and came up with the page I had visited. Once I figured out that it was pretty harmless, I just ran the uninstaller. This is what makes VerifyMyPC so awesome. It catches things that wouldn't be found out otherwise. Sure it doesn't have a magical, happy "fix my system and make it better" button, but there is a reason for that: Mag...

TweakUAC

I constantly hear/read complaints about Windows Vista's UAC dialog. The complaint usually goes something like this, "Whenever I do Administrative task X while logged in as an Administrator, Vista asks me if I really want to do said task X." UAC, also known as User Account Control, is designed to not stop users from doing stupid things so much as to stop automated programs from taking over the computer system. But users do get annoyed when they want to do a series of administrative-level tasks and see dialogs popping up in their face constantly asking if they really want to do those tasks. Which is where a tool I found comes in really handy. I don't run Vista, but I have found a solution for the #1 complaint I hear from those who do: http://www.tweak-uac.com/what-is-tweak-uac/ TweakUAC allows system administrators to do administrativey things without being annoyed by the UAC privilege elevation dialogs. Of course, most users who own Vista are usually logged in as A...

The Internet brings out the weirdest people...

...And they end up on my blog. For some weird reason or other, this blog attracts the weirdest people. Not that it is bad, it just is weird. For instance, my last post caused a RentACoder troller to show up and start ranting, uh...trolling...about some RentACoder experience that happened years ago. I deleted the messages and turned on comment moderation. I figured normal people would show up but they haven't. Well, one exception: One of my posts _finally_ had a normal, everyday person who used it and actually appreciated the post. It was my "Lexmark Printer Driver Removal" post where I provided a tool (old-school batch file) to completely remove what Lexmark was unable to remove with their uninstaller. I suppose talking geek just automatically attracts the wrong crowd. If I started talking about how to use Windows Movie Maker 2 or did Photoshop tutorials on forum avatar creation (borderline geek) or how to safely lose weight (most weight loss programs are unsafe -...

Rent-a-Coder

Let me begin by saying, "100th post!!!!!!!!" And no one is probably going to read this now that I've trolled my own blog. A couple years ago I ran into a site called RentACoder, or more commonly seen on the site, RAC. RentACoder is a site where people can place bid requests and other people place bids for those bid requests and RentACoder holds escrowed funds until a software project is completed. Most requests have a cap put on them as to the limit of the bids. I've got a few hundred projects I would love to see done but don't have the time nor resources to do them. So, I decided to run a few small, semi-scientific experiments on RentACoder. My first project was for the coder to use MFC and several pre-made third-party open-source/freeware components and piece them together into a cohesive shell that will form the basis of a new software product. I'm pretty good at MFC, but it would have taken me weeks to figure each little library out. I paid $70 for ...

Mozilla Extensions and breakage...

One of my major pet peeves with Mozilla products is Extensions and how they break between versions of the products and how developers are not on top of releasing updates to those extensions. I'm not necessarily an early adopter of stuff, but I do have a tendency to be cutting-edge on certain applications. I don't run bleeding-edge stuff except for my own product line where I'm constantly adding a new feature here and there. Mozilla Thunderbird is the latest of major annoyances. Thunderbird 2 just came out a couple days ago and several of my extensions broke. For the most part, extensions break because a single string that says "I work with versions of Thunderbird from x to y" where y is less than the current version exists. Let's take a look at how Outlook would handle the scenario. You've got millions of happy Outlook users with their extensions implemented as COM objects (DLLs). The latest version of Outlook will attempt to load the extension and, i...

itoldyouso

I just discovered that dbghelp.dll has an undocumented export function called 'itoldyouso'. Those funny guys at Microsoft. Feel free to confirm it for yourself using Dependency Walker. I saw it and chuckled to myself. (I'd love to know who had the guts to name an export function 'itoldyouso'?)

SetForegroundWindow()!

Can't software developers respect the window ordering of users? The AttachThreadInput()/SetForegroundWindow() hack completely hoses the window order so badly any more that when you go to switch to another application, 40 others change position and come to the foreground as well - and sometimes the window focus doesn't change as expected. My message to all software developers: This hack is clearly labeled as such and you should NEVER use it more than very rarely. Seriously, watch the window stack order get hosed as you make those calls. People clearly don't understand what AttachThreadInput() does...nor HOW to actually call and use the function...they just copy the code and assume it works to steal the foreground window without any respect to how Windows operates. There is a proper way to use AttachThreadInput(), but most people don't realize how to use it. This message brought to you out of sheer frustration with application switching.

You know you are...

...in esoteric areas of an application/operating system/etc. when you go to use an API that has no documentation on it. Cutting-edge stuff that is bound to change and keep life interesting. Not that I really care in this particular case, but I needed some information from a DLL. In this case, the API was documented but whoever wrote it did a bad job. Read: Incorrectly documented and I had to hash my way through multiple debugging sessions to figure it out. Ironically, Google searches for sample source code turned up only VB examples. No C/C++ examples. My C++ version is about 1/10 the length of the VB versions. Oh, and I wrote a program today that helps me write quickie little throwaway projects. Visual Studio along with the other IDEs I use takes forever to set up for cheesy projects. So now I've got a nifty little utility that I can just copy and paste some files, run the utility, and I have a new console project set up. Cuts out about 15 minutes of work (I like to drag...

New Stuff!

I spent a good chunk of today updating this blog to use the latest features of Blogger. Lots of AJAX'ey drag-n-drop goodness is involved, but that's sort of what people expect from Google. Anyway, the right-hand column of this blog will always have lists of stuff I believe to be the best applications around and I've categorized them into various activities. For instance, I tend to be an application developer first but I also wear the hats of web developer, IT administrator, and graphics artist. For the most part I avoid putting stuff that costs money in the right-hand column just because most developers don't want to spend a lot of money on good stuff. And there's plenty of good stuff to be had for almost no cost if you spend the time looking for it. Which I've already done. I mentioned that I'm a graphics artist but didn't put up a category for it. That's because all the tools I use are well known: Photoshop. Make that one tool that I use. ...

Vista Disaster Stories

I'm already hearing all sorts of disaster stories involving Windows Vista, Office 2007, and non-Microsoft applications: Applications crashing. (LOTS of Explorer crashes being reported). Companies refusing to release updated drivers for things like 2 year old printers (and other hardware - e.g. video cards).* Application UI problems - ranging from visual artifacts to complete unusability. Applications refusing to run. VPN software not working right or at all. * Microsoft apparently hosed the Unified Driver model for Vista so one driver package can't be used for multiple devices. ATI and Nvidia are up in arms as is every hardware manufacturer...so the various companies are just making drivers for their latest devices to cut their losses. Hurts the consumer, but there is no way around it unless Microsoft fixes this big blunder. Idiots. Haven't heard of any data loss or BSOD scenarios yet, but given that a lot of hardware and software doesn't even work under Vista, I...