Chip's Quips
A tiny spark of wit for a highly flammable world

Chipping the web – capital

April 10th, 2007 12:12:51 pm pst by Sterling Camden

Chipping the webCauses declared: the Declaration of Independence of 1776: “… a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.”

Scott Adams: “We don’t know as much as we think we know.” That’s virtually my mantra. Although I think it also goes for the question of free will. How can you be certain that we don’t have it?

While we’re on uncertainty, did you know that pi is wrong?

Ted Miin shares how he reads reddit.

Roger’s announcement of the Synergy 9 release. I’ve already downloaded and installed it on Vista, both in 64-bit and 32-bit flavors.

Fifth and sixth guest posts on [GAS], in which I move from regular gas to gassing the regulator. I hadn’t seen this post by Randy when I wrote that last one, or I would have linked to it, too. And here’s Vaspers’ take. TDavid’s comment policy includes: “make us go hmm, not WTF”. Anyone else I forgot to link to, I’m sorry. Transferring from one workstation to another, and then having to do it all over again, got my read/unread status on subscriptions all FU’d.

Posted in Share the Love | 4 Comments » RSS 2.0

Vista blues

April 8th, 2007 3:26:09 pm pst by Sterling Camden

Easter Sunday, a little extra time on my hands, I decided to play around with my new HP notebook. I hadn’t tried out everything on it yet, so I went exploring. For the life of me, I couldn’t figure out how to use the built-in camera. What happened to the good old “Scanner and Camera Wizard” from XP, for instance?

Finally searched through the on-board help, which led me to a hitherto unexplored section of Control Panel where I could add the device. I wondered to myself, why didn’t HP do this for me? All the other devices just worked out of the box. Oh, great. We have to reboot.

And that’s when it happened: my very first BSOD on Vista.

The system recovery wizard launched automatically, but it was unable to automatically recover my system. What, no “safe mode” for rebooting? Yes, there is, as an “advanced recovery option”. But this “safe mode” is a bit too safe. No Start menu!

You can get to a command prompt, which I did. How do I launch MMC to get to the Device Manager? No mmc.exe anywhere.

A search for this type of problem led me to this article, which looked very promising. I followed the steps to the letter, and repeated them after they didn’t help. But the driver it kept failing on was the Microsoft Generic USB Driver (usbccgp.sys), which Vista apparently automatically starts, whether you disable it or not. Every time I’d look at the registry, the “Start” option had been reset to “3″.

Other people also seem to be having trouble with the built-in camera, but not the kind of trouble I’m having.

Another option in the recovery wizard is System Restore. But alas, I had not set any recovery points since I first got this computer. That will be a lesson to me.

One other option presented itself: restore to factory settings. After much soul-searching, that’s what I clicked. I keep all my data files on a separate server, so all I’m losing is the time it takes to reinstall all my software, plugins, and extensions, and set everything up again.

So much for having a little extra time.

HP: “The computer is personal again.” Yeah, I’m taking this personally.

Posted in Get Outta Here | 8 Comments » RSS 2.0

Chipping the web – causes declared

April 6th, 2007 4:06:33 pm pst by Sterling Camden

Chipping the web75 is the fifth pentagonal pyramid number.

Scott Adams isn’t a scientist, but he is a thinker.

Jeff Atwood explains the differences between various software licenses, including the WTFPL.  But he missed the CCD CopyWrite License.  Maybe its author, Chad Perrin, would care to fill in the blanks for us?

Michael Jensen has created a meme tag tree for the “Why I Blog” meme.  Before you tag someone, check the tree first to see if they’ve already been tagged.

My fourth guest post on [GAS], in which I show how for only a few pennies a month, you too can help sponsor the life of a multi-million dollar monopoly.

Posted in Share the Love | 3 Comments » RSS 2.0

Another step in creating success – Synergy/DE 9 released

April 5th, 2007 5:40:43 pm pst by Sterling Camden

Version 9 of Synergy/DE was released today.  Congratulations to the Synergy/DE team on the successful culmination of years of effort, resulting in one of the more important releases in their history.  Disclaimer: Synergex is a customer of mine.

The most striking new feature in the language is the incorporation of full object-oriented syntax, including inheritance (naturally), public/private/protected accessibility, parametric polymorphism, and operator overloading, all in a very language-natural syntax.  OK, a lot of you out there are saying, “well, we’ve had all that in language XYZ for n years” and you’d be right.

What I like about the OOP support in Synergy/DE is that it isn’t forced.  You can still program in procedural statements without classes if you wish, and you can mix procedural and class-based code freely.  The purists out there are frowning, but I’m smiling.  OOP can be mighty useful, but there are sometimes when all you want to do is drive a nail, without constructing class hierarchies for the nail, the wood, the hammer, and the builder.  You don’t have to create an Application class just to print “hello world”.

Parametric polymorphism (that’s an alliterative polysyllabic buzzphrase for “you pass different kinds of arguments, you call a different routine”) requires a degree of static typing.  But again, Synergy/DE has avoided going overboard like Java and C#.  You can get as specific as you like about the type, direction, and requirement of each argument — or you can leave any part of that undefined.  For type, not only can you specify @* (any type of object), you can also specify “any” (any type of object or primitive type).  It’s up to your routine to handle that argument correctly, but it gives you so much more power and agility than having to always force your routines into a static typing model.

A new utility, dblproto, can be used to register prototypes for your routines, based on their declarations in the source code.  That allows consumer routines to import the namespace without having to include any files, and saves you from publishing sources if you don’t want to.  You can prototype both classes and stand-alone functions and subroutines, so again you don’t have to use OOP to get the benefit of static typing, if that’s what you want.

Synergy/DE, and the DIBOL language on which it was originally based, always had a context-based grammar.  Any keyword could be used as a variable name or a routine name, because the context in which it appeared defined how to interpret it.  Therefore, the XCALL statement was required when calling a routine for which no return value was desired, and a % had to precede a function invocation that returned a result.  Thanks to prototyping, the compiler can now be smarter.  Most routines that are prototyped can be invoked without  the XCALL or the %, which can make the code much more readable.

Because of its COBOL heritage, Synergy/DE had always required that variables be declared in a data division at the top of a routine.  In version 9, a new DATA statement has been added to declare data within a BEGIN-END block, having the scope of that block.  That means that if you just need a local work variable, you don’t have to clutter the data division, and it will help avoid the often dangerous reuse of the same variable for different purposes.  Moreover, when creating an object, if a reference to the object does not get passed out of the BEGIN-END block, the object will get cleaned up on loss of scope.

Other new features in this version of the language include a much cleaner syntax for handling dynamic arrays and mapping structures to variables, as well as a true “string” type in addition to the traditional alpha (which is essentially a statically sized char array).

These new features finally bring Synergy/DE fully into the class of languages that support OOP, with a syntax and capabilities that are better than many in that class.  This is the realization of a dream that Ken Lidster, myself, and others have shared (and pursued) for more than sixteen years.  Given that the language has for a long time now supported the ability to pass functions as parameters (via xaddr/xsubr), Synergy/DE is evolving into one of the more powerful languages available for business application programming.

So what’s next, closures?

Posted in Geek Meditations | No Comments » RSS 2.0

Live Writing on the Live Web

April 5th, 2007 1:20:45 pm pst by Sterling Camden

Along with my migration to Vista 64-bit, I decided to finally take Windows Live Writer for a spin.  I just used it to write my third guest post on [GAS], in which I analyze the analysis of David Sifry.

I can hear you now, “(groan) He’s gone over to the Dark Side.  First Vista, and now this?

All things being equal, I’d prefer open-source over Microsoft products.  But I’d heard a lot of good things about WLW, and a few minor issues with BlogDesk were starting to annoy me.  Besides, it is freeware, even though it’s from the Empire.

WLW interfaces very smoothly with WordPress blogs, automatically pulling down the category list and the theme characteristics.

I especially like the Web Layout view, and the way that it incorporates your blog’s theme while editing, so you know just how your post will look before you publish it.  Here’s what this post looked like in Live Writer at this point in its construction:

Notice the large white area on the right.  That’s because my stylesheet reserves that margin for the sidebars.  Here’s the web preview:

Inserting images is easier than spilling paint.  You can either click “Insert Picture…” to browse for a file, or you can just paste one from the clipboard.  Either way, you get a nice set of options for text wrapping, margins, sizing, rotation, brightness, contrast, drop shadow, and effects.

The only source of frustration that I have discovered so far: after inserting an image and adjusting its settings, I couldn’t figure out where the text caret was positioned.  I tried clicking to the right of the image or beneath it, but I couldn’t get a caret to show up (presumably because there was no text there yet).  It turns out that if you click on the image itself, and then press right-arrow, the cursor will be positioned immediately following the image.  That’s not too counter-intuitive, so maybe I just needed to take more fish oil this morning.

I did discover one very minor bug.  In the [GAS] theme, blockquotes are rendered iin a different text color than the main content.  After making a section of text into a blockquote by pressing the handy little button on the toolbar, I pressed Enter at the end of the paragraph and then pressed the button again to make the next paragraph non-blockquote.  When I started typing, the text color was still that of the blockquote instead of regular text.  However, if I undid that and typed a character before un-blockquoting it, then the text color reverted correctly.  I’m guessing that even if I hadn’t done that, the published result would have been OK, because the HTML source showed the blockquote ending at the right point.

WLW provides a nice tagging widget for several tagging services, and you can even add your own.  It’s limited, though, to embedding tags in the post as content.  In other words, I’m not sure how you could automatically interface it to Jerome’s Keywords, for instance, which stores its tags in the WordPress database.  Maybe a WordPress plugin could be developed to hook onto the publish event and look for specific HTML from which to generate the tags for Jerome’s.  I’ll have to look into that.

One thing that seems to be missing: templates.  You’d think that Microsoft, who did so much to promote templates with their Office products, would have included something like that concept here.  With BlogDesk, I had two simple templates: one for Chip’s Tips (with the “Give me the code!” button) and another for my “Chipping the web” posts (with the standard graphic).  I suppose I could save both of those as drafts in WLW and just copy/paste that content into new posts.

Anyway, so far, using my patented “Chip’s hip or kip” rating system, the needle is leaning about 60 degrees towards “hip” — to be updated as future experience warrants.

Posted in Blog Blog, Geek Meditations | No Comments » RSS 2.0

Chipping the web – fifth pentagonal pyramid

April 5th, 2007 9:44:19 am pst by Sterling Camden

Chipping the webThe last tablet: the last known cuneiform inscription was written around 74 AD.

Greg responded to my tag on the “Why I Blog” meme. My favorite reason:

It’s like teaching, and I love teaching, but its better because I can’t tell when people are reading the newspaper, sleeping, making out, or just staring at me and giggling.

And the meme continues to propagate.

My second guest post on [GAS], in which I gaze with wonder into the void that is 404. Has it begun to look back through me yet?

Speaking of [GAS], theMatt links to Absolutely Hilarious Computer Quotes. Sample:

The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones.

Posted in Share the Love | 1 Comment » RSS 2.0

Clearing the way for Vista

April 4th, 2007 5:11:35 pm pst by Sterling Camden

A lot of the software development work I do has to be cross-platform. That not only means that it has to run on *nix, OpenVMS, and Microsoft Windows — it also has to run on all of the recent flavors of Windows (2000 to Vista — man, I’m glad we dropped 9X).

I hadn’t needed to purchase a new development system since 2001, but with the advent of Vista, I no longer had the option to continue with a six-year-old system. I have to be able to run things on Vista, but I don’t own any hardware with enough horsepower to even install it.

So I decided to replace my main development system with a new HP Pavilion notebook, running Vista Ultimate. That way I can also take it with me when I go to the SPC in May, or on other trips.

So here’s what arrived today:

HP Pavilion dv9000t with Intel(R) Core(TM) 2 Duo T7200 (2.0GHz/4MB L2Cache)
17.0″ WXGA+ Ultra BrightView Widescreen (1440×900)
512MB NVIDIA(R) GeForce(R) Go 7600
2GB DDR2 System Memory (2 Dimm)
200GB 7200RPM SATA Dual Hard Drive (100GB x 2)
HD DVD ROM with SuperMulti DVD+/-R/RW Double Layer
Intel(R) PRO/Wireless 3945ABG Network w/Bluetooth
High Capacity 8 Cell Lithium Ion Battery
Genuine Windows Vista Ultimate (64-bit)
HP Wireless Keyboard and Mouse Kit
HP 1GB USB Flash Drive (S100)
HP Executive Leather Carrying Case

I haven’t spent this much money on a computer since I bought my wife a laptop in 1997 that had a whopping 8MB of memory and 800MB hard disk. I’m hoping this one will prove sufficient for at least a few years. I’m also hoping to be able to run other systems under Microsoft Virtual PC on this same box for testing and debugging, with the images stored on the second hard drive.

OK, so this baby came with Vista Ultimate 64-bit preinstalled. When you boot it up, you get an HP-supplied walk-thru wizard. You supply a username and a name for your computer (Since it’s Vista, I chose “Enlil”, the Sumerian god of the air and storms). One of the things it wants to do is setup the network. Naturally, it provides all sorts of offers for ISPs, but they have one option labeled “Keep my ISP”. Clicking that option gives you a nice VBScript error, and nothing else. This was right out of the box, the very first thing I did. Don’t they test these things?

Anyway, I was able to select a generic “Broadband/DSL” option, and so far that seems benign. Then I was able to connect easily to my wireless access point (802.11g) and join my Active Directory domain after hunting around in Control Panel for a while. Actually, I have to admit that I like the new organization and multiple paths to a destination.

Of course, even though they just built this system, Windows Update had a ton of updates to install. Almost 3GB. Of updates. I can remember when 3GB was more storage than my employer had on their entire network. But I’m showing my age, I guess.

I’m also installing Office 2007 Ultimate, which so far looks good.

Of course I’m using Firefox for the browser. Oh my God, I’ve got to install all my Add-ons!

I’m sure I’ll be updating this saga as I progress with the migration. Wish me luck!

Posted in Geek Meditations | 13 Comments » RSS 2.0

Chipping the web – the last tablet

April 3rd, 2007 4:56:17 pm pst by Sterling Camden

Chipping the web

Best regards: one interpretation for the ham radio expression73“. I like the 1857 version: “My love to you!”

Is your site banned in China? Check it out (thanks, Mohan) My sites are still accessible there — they must not be onto me yet.

Scott Adams offers some ruminations on doing the deed with dead deer.

How not to implement password constraints (thanks, apotheon, I’m so far behind on my reading that this one slipped by me at first).

My first guest post on [GAS], in which I explore a technique for lifting some cash from your readers while making them like it.

Eastwood Zhao has added me to his Links page. Eastwood does some great writing on his blog, it’s no wonder it has already become wildly popular. Thanks, Eastwood!

Thanks for linking to the OPML Browser plugin, Randy. It’s also getting some traction on the Semiologic Forum.

Jenn uses the tag cloud widget, and links to it. Phastidio uses it, too.

Posted in Share the Love | 5 Comments » RSS 2.0

Why oh why?

April 2nd, 2007 3:57:41 pm pst by Sterling Camden

Randy Morin tagged me on the meme “Why I Blog”. I’ve written on this topic so many times that I’ll make this a meta-post, linking and discussing previous posts. Who knows, I might even add some new thoughts while I’m at it, just because I don’t know how to shut up.

I started this blog in January 2006 by asking the same question, and gave my stated purpose as seeking the answer. For ten months thereafter, the only comments on that post were spam — which rendered the question all the more puzzling.

Then I thought, maybe it’s a good e-mail replacement. That was before my blog starting collecting just as much spam as my Inbox.

I soon found that my blog was a great platform for embarrassing myself. And who hasn’t experienced the anxiety of premature RSS?

Of course I easily got caught up in the statistics long before they were significant (as if they are now). But I got over that — at least, I’m managing the dependency.

As I got more comfortable with the medium, I started having more fun with it. I also began to develop a community of readers, who pretended they liked what I had to say so I’d link to them.

Is it about the audience? Yes, and no.

Last summer I began to formulate a purpose for blogging on Chip’s Quips: to become a real boy. Learning to be myself. Writing about myself on a public site helps me see myself more clearly. That can be pretty ugly, but it holds a certain morbid fascination. I also became more aware of what I don’t say, which is even more gruesome.

It’s great for bitching, or beaching.

The best part is getting to know interesting people that otherwise I would have probably ignored.

If only there were more time for it.

Hey, Randy asked me this very question last June. Robert Hruzek also wanted to know why I blog. And I answered a similar question from Diogenes not long ago. Are you guys trying to tell me something?

While I’m being all meta, why not ask the meta-question: “why ask why I blog?” Is it just to give us something to talk about? Are you genuinely curious about my motivations? Are you trying to gain insight into your own, so you can figure out why you’re addicted to this time-consuming passion, too?

Now for people to nag tag. Randy named 14 people. I’m not up to that, but I’ll tag the traditional quinary plenary five: Alyx, Max, Greg, Eastwood, and Edward. If anyone else wants to respond, let me know and I’ll link to you.

Posted in Blog Blog | 10 Comments » RSS 2.0

How NOT to comment out CSS statements

April 2nd, 2007 12:57:43 pm pst by Sterling Camden

Trying to figure out some styling issues with my sites, I got myself into a situation in which IE7 was behaving extremely differently than Firefox 2. It made no sense to me — it was almost as if IE was remembering a setting that I had removed from the stylesheet long ago.

So I searched for the setting and found it, commented out. I deleted the line, and IE7 started behaving itself — well, relatively speaking. Hmm. Why would IE fail to recognize the comment characters? I have other comments in the stylesheet that aren’t being executed.

Then I noticed: being a C++/C#/Java/everythingelseunderthesun programmer, I had naturally used ‘//’ for commenting. Firefox honored it, and IE7 ignored it. All my other comments used /* */.

Checking out the draft spec in the section on comments, // is not mentioned — so maybe IE7′s behavior is correct.

I had troubles running the CSS Validator, but I was led by the Holy Google to CSSCheck, a lint for CSS. Its commentary on the line in question:

“Error: Property //min-height not recognized.” Thank you very much, CSSCheck. So probably both IE7 and Firefox threw a syntax error over this statement, but Firefox ignored the rest of the line whereas IE7 skipped the // and parsed the rest.

Wow, this CSSCheck utility found a lot of errors and warnings. This could be very handy.

We’re almost at the end of Lent
But I only now begin to Lint

Posted in Geek Meditations | No Comments » RSS 2.0