Wednesday, February 21, 2007

Someone help! Google Sketchup driving me up the wall!

Google Sketchup seems to be the new darling of many 3D peeps out there. and as i've found, it is a really cool program. my only problem with it is using it - because, as you may know, i am not online 24/7, and i'd much prefer to be able to download the manual. unfortunately, the manual download link is not resumable, making sure the peeps like me that have psychotic internet connections are basically messed up, since all we can do is try to download the manual. mirroring the HTML using HTTrack didn't work. and having the manual would save me sooo much trouble using Sketchup. someone tell Google to allow resumes for the manual at least. later!

Tuesday, February 20, 2007

hey up!

so i went home over the weekend to attend a friend's wedding, and to give my dad his birthday present in advance. or so i said. when i got to Lagos, i dropped off a package for a friend at Computer Village, Ikeja, and purchased a few DVDs. i was going to my dad's office when i got picked up (or should i say picked on) by a policeman in plains. to cut the story, i was picked up for carrying around a laptop, and the man was just looking for prey, because even after i provided a receipt for it, he went as far as making me call the number on the receipt and asking them to fax something having to do with where and how they get laptops. for crying out loud, what's that got to do with me? at the last, i called my dad, who called my uncle - who in turn got there with an uncle of mine who is himself a policeman. so i got out without paying a dime to anyone, and i'm really grateful for that, since i barely made it back to school, even with a raise from my brother!

that said, there's a variant of the RavMonE.exe worm that isn't picked up by AVG Free Antivirus/Antispyware. quite odd, i must say, since generally Grisoft's security products are actually quite good. the file is not much under 4MB, same executable name, and is also coded in Python.

Sunday, February 11, 2007

something i've begun wishing for

i've recently begun to make some use of Inkscape, and more and more, i wish that i could (more like someone could) write a script/plugin to create a palette of colours used and then allow you to change the palette on the fly, modifying the document. in essence, a bit like CSS for Inkscape. this way, i could create "colour themes" for graphics so that i could quickly see the new colour theme's effect. this would definitely be far more handy than trying to hand-edit that complex gradient. i wanted it for myself, then a client says, "change the colours", and i know i'm in trouble. i don't even want to think about how troublesome that would be...

Wednesday, February 07, 2007

a rose by any other name...

William Shakespeare, genius that he was, penned the immortal lines. quite unfortunately, the converse also holds: a nettle by any other name is still going to sting just as well. this is the weird beginning to todays post on the many wonders of developing on Windows, specifically DLL hell - or at least a problem much like it.

for the uninformed, DLL hell comes about from the process of installing and uninstalling programs, usually resulting in an important shared library (DLL) being replaced with a version that causes other programs to fail. see this Wikipedia article for more information.

my problem isn't quite DLL hell, but it is related somehow. now, for unmanaged C++ (that is, C++ native code, or code not managed by the .NET Framework, hence the name), you'll most likely require some sort of runtime, as defined by your compiler vendor/settings. with Visual C++ 6.0, you needed msvcrt60.dll and msvcp60.dll for the runtime of non-debug C and C++ runtimes respectively, and for Visual C++ 8.0 (including VC++ 2005 Express, which i use), you have msvcrt80.dll and msvcp80.dll - or something like that. where DLL hell comes in is that if you have the required DLLs for a program to run installed, some program may replace/remove such when you install/uninstall it, breaking other programs needing it. in my case, i've been writing code that had a dependency on msvcp80.dll, and didn't have a problem until i uninstalled something. suddenly previously perfectly working programs i wrote stopped doing so. now Microsoft has these redistributable packages that allow you run programs with that particular runtime dependency. so i got a copy of the Visual C++ 2005 Redistributable package (download page here) and installed it. twice (two different copies, that is). no dice. i finally had to rebuild the application framework library (wxWidgets) so i could statically link in the C/C++ runtime for each application. ah well. i did at least know enough to get round my problem without reinstalling my compiler and its service pack. sayonara!

Saturday, February 03, 2007

Why i switched back to Firefox from SeaMonkey

as you probably already know, the Mozilla Corporation is the new home for Mozilla Firefox and Mozilla Thunderbird, and the original Mozilla suite is more-or-less gone, and is the base for the community project called SeaMonkey. SeaMonkey is really the successor to the Mozilla suite, containing the works - browser, HTML composer, email client, IRC client - with some other things to make the power user pretty happy.

anyhow, i started using SeaMonkey because of some things i'd heard about it: it consumes less resources than Firefox and Thunderbird separately, since with it, it's all the same one application; it has a quickstarter on Windows to allow it start up faster; the Firefox artwork is not open-source, as is the rest of Firefox, which is problematic for users wanting to bundle Firefox with opensourced (notably GPL-licensed software/operating systems. there's been some hullabaloo about it all.

so i installed SeaMonkey, started it up…was almost immediately disappointed. i had the following problems with it:

  • the simple keyboard shortcut for the search bar from Firefox was missing. combining the address and search bars is cool, but i'm just not used to it, and searching when trying to open an address is annoying.
  • the easy choice of search engines in Firefox (two clicks or keyboard buttons once you're in the search bar) is really cool. Google isn't the only useful search engine out there!
  • i can't and/or don't use some of the other features that come with SeaMonkey, such as email/IRC chat. the additional 7MB for the download isn't worth it.
  • address completion shortcuts are soooo missing in SeaMonkey.
  • as at when i use SeaMonkey, only the default themes seemed to be available for use. i love eye candy less than the next guy (i use the Windows classic theme, FYI), but i do appreciate it once in a while. in my opinion, the only SeaMonkey theme worth using is the Modern theme, and even that gets boring after some time.

basically, i've more easily got used to Firefox than SeaMonkey, and making the switch was (to my thinking) unnecessarily hard, since they both use the same codebase. SeaMonkey doesn't need to be a Firefox clone, but there are some really cool things in Firefox that can be adopted in SeaMonkey.

Thursday, February 01, 2007


some Microsoft bashers have far too much time and money: look here.

and what's with the new (seeming) jollity between Google and Yahoo!? i've noticed that if you run a Google search while logged in to Yahoo!, you see some additional options at the top of your pages...later!

wxWidgets and the Windows SDK

i recently formatted my harddisk and reinstalled Windows, so i started installing applications i normally use. that included VC++ Express, and since i develop applications using it for the Win32 platform, i would normally have installed the Platform SDK. however, i'd recently obtained the Windows SDK, so i used that in lieu of the PSDK. i mean, the WinSDK seems to be the successor to the PSDK, so why use older headers and libs…or so i thought. everything went smooth, and i even integrated the WinSDK with VC++ with a single click (configuring VC++ itself for native Win32 apps was a little more roundabout; see this article for help). so far, so good.

since i was using wxWidgets for an application i was writing before the format, i downloaded it again and started the commandline build, according to the time-honoured instructions in the source archive. i started the build and almost immediately got shock #1: wxWidgets (or specifically, the TIFF library bundled with it) wouldn't build because windows.h was missing. as i'd integrated with VC++, i was surprised, to say the least. i checked the VC++ directory options and found nothing wrong, and windows.h was supposed to be available. checking the INCLUDE environment variable let me know that the WinSDK hadn't set environment variables when installing. after fixing it, i sat back to enjoy my build procedure until i got shock #2: some platform-specific code wasn't building. since i'd already built that version of wxWidgets before without problems, i had to surmise that it was the WinSDK acting up. installing the PSDK and removing the environment variable settings i created for the WinSDK allowed wxWidgets to build without fuss.

i'm not sure if it's the wxWidgets team or Microsoft i should blame, but since Microsoft is the company everyone loves to hate (actually, because the PSDK worked all ways), i'll say Microsoft wasn't on the up-n-up, or why would they change the API so it would break existing code? whatever, anyway. the main point is that wxWidgets 2.8 (and most likely, lower versions) doesn't work unpatched with the WinSDK, as maybe a few people would have found out by now. so version number addict, chill out. today's Win32 apps should still work on Windows Vista, so it's not that big a problem anyway. later.