Wednesday, November 09, 2005

Kansas school board redefines science

Kansas, for shame!

I hereby pledge that I will never move to Kansas, nor allow any member of my family to attend any school in that state.

Icerocket tags



Build/Test machine

I posted here about our plans for updating the ProSolv build process. It's been going pretty well; the hallway machine is up and running, although I had to bring a table from home to set it up on, and now someone wants to buy it from me :)

Builds are scheduled for 6 PM each night, and an automated test script runs all day. Right now we just have a single script that takes about 15 minutes to run. It's powered by Ruby and by AutoHotKey, which works nicely as an automator. I especially like that the scripts are simple text files.

A lot of people don't quite understand what I'm trying to do. They look at the machine and say, "What's the point of running a test that doesn't log any results?" The answer is, that there is a lot of importance to just exercising the UI. If we have a build one day where you click on a study image and the application crashes, this test process will find that.

Nevertheless, as long as this machine is running scripts, there's no reason for it not to log results. I thought for a while that I would have to add code to the application to write out sensible log results, which is not a process to undertake lightly, but it occurred to me recently that the GUI manipulations that the script is doing mostly result in predictable changes to the file system and database. So I spent a little quality time with Ruby's DBI and Test/Unit modules, and wrote up some assertions that will send an email to me at the end of the script if the database isn't in the state I expect. It's only a start, but now I can add more assertions in the middle of the process, or add new assertions as I extend the test scripts. It's coming together very nicely!

I'm thinking also about modifying the machine to alternate test runs with kiosk-style data updates, such as how many files were compiled last night, or how many support calls were handled yesterday. It'll be interesting to see how people respond to that :)

Icerocket tags




Thursday, November 03, 2005

Gadgets and Office alive alive-o

Microsoft previewed its new Windows Live strategy yesterday. My reaction, along with a lot of other people's: It's a portal, and we don't want or need another portal, no matter how skillfully it's put together and how many neat gadgets are available on the site.

That said, here's what really got my attention in the announcement:

Windows Live™ is a set of personal Internet services and software...

So what exactly are we talking about, Internet services? Are we talking web services here? That would be cool. Here's what I want: The ability to add, to my site and not to Microsoft's, a Word document that can be edited by approved people. The document would ideally be stored on my site, but could then be bounced to a Microsoft service for some Ajax magic and editing. Is this the sort of thing that Office Live is going to make available. That would be awesome!

But I've gone searching around the web looking for any evidence that anything on Live is going to be addable to other web sites. Scoble said something - when does Scoble not say something? - but he didn't go into any details other than, "I’m still struggling to understand what I’ll get by putting a new Windows Live service on my blog or business site".

Robert, it depends on which direction it goes. I'd be thrilled to call out to a Windows Live web service as part of a mashup for my site - maybe a Click-To-Talk button using Messenger to dial my phone directly? - but if you're expecting me to make something available that users can only reach through the Live site, forget it.

So for me, the jury is still out until we get more details for developers.

Disclaimer: I own stock in Microsoft.

Icerocket tags


Wednesday, November 02, 2005

Code Reviews

Ed Gibbs says his team is about to institute code reviews. Of course, if you do pair programming regularly code reviews are pointless, since - turning all the knobs up to 11 - all of the code is reviewed all the time. But I've never worked in a shop where pair programming really took off. I'd be curious to hear how prevalent it is.

As I understand it, we at ProSolv are required by FDA regulations - perhaps here? - to do design and code reviews, although, especially for small projects, we often combine them into a single review. Currently I'm not convinced that they add anything to the quality of our software, although, as I've stated before, I think ISO can potentially be a big gain for a company and not just overhead. All the usual difficulties of code reviews apply - what sorts of things are worth bringing up? Is coder A receptive to constructive criticism? Is coder B tearing things down for the sake of doing it? Is coder C reluctant to make a great suggestion for fear of hurting feelings? Should the code be perfect, or just good enough? - and in the final analysis the review is either marked passed or failed.

I'm sure this process can be improved, but I'm not sure how. Maybe design reviews could be accompanied by UML diagrams. Maybe we just need a big slab of coding standards that have to be applied. For example, a review I'm looking at now introduces two new global variables to a C++ application. I think the industry consensus is that global variables are bad, but certainly the code works. Do we need a coding standard that says to avoid global variables? If we did that, how much extra overhead is added to the process?

I'm seriously considering offering a bounty of ten cents a line for any project that can remove lines of code from an application rather than adding them. I bet that would be more effective than fifty code reviews!

Icerocket tags




Tuesday, November 01, 2005

RootkitRevealer

After my post yesterday on SysInternals and listening to the RootKit episode of Security Now, I decided to give RootkitRevealer a whirl on my system. It turned up a slab of hidden registry class ID keys underneath HKLM\SOFTWARE\Classes\CLSID:

{47629D4B-2AD3-4e50-B716-A66C15C63153}
{604BB98A-A94F-4a5c-A67C-D8D3582C741C}
{684373FB-9CD8-4e47-B990-5A4466C16034}
{74554CCD-F60F-4708-AD98-D0152D08C8B9}
{7EB537F9-A916-4339-B91B-DED8E83632C0}
{948395E8-7A56-4fb1-843B-3E52D94DB145}
{AC3ED30B-6F1A-4bfc-A4F6-2EBDCCD34C19}
{DE5654CA-EB84-4df9-915B-37E957082D6D}
{E39C35E8-7488-4926-92B2-2F94619AC1A5}
{EACAFCE5-B0E2-4288-8073-C02FF9619B6F}
{F8F02ADD-7366-4186-9488-C21CB8B3DCEC}
{FEE45DE2-A467-4bf9-BF2D-1411304BCD84}


I was mildly worried and spent a bit of time tracking down these keys. I think I can say pretty definitely what they're for now; it's Pinnacle Studio 9 hiding their registration keys. Irritatingly, Studio doesn't handle logging in as a non-admin properly, either - every time I start it I have to click the little message that says "Don't show this screen again".

Icerocket tags





Monday, October 31, 2005

Is Sony putting malware on your system?

This is a great article from the awesome Windows gurus at SysInternals. (SysInternals makes some of the best and simplest applications for analyzing exactly what is happening behind the scenes on a computer.) Apparently when you install a copy-protected CD from Sony on your system, it installs an application that utilizes some of the same tricks commonly employed by virus writers. Let's be careful out there.

Saturday, October 29, 2005

Library is Listening

There was a Letter to the Editor in the Herald-Times today, in which a member of the library's Board of Trustees made the claim that they were listening to and satisfying the citizens of Monroe County. While I'm sure that is correct, a quick check of the library web page didn't really reveal anywhere where discussions of the library or responses from the board or administrators were available. So I'm making this web page available, thanks to the fine folks at JotSpot, for anyone to add their comments concerning the library. I'm sure that, since the board is listening, they will be happy to add their responses to any comments you may have!

Friday, October 28, 2005

Attack of the blogs

Chris Pirillo on those crazy, invective-spewing magazine writers. Of course, you see magazine articles all the time on Elvis's two-headed love child and UFO's landing on Martha Stewart's prison cell, so you can't really trust magazine writers.

Anyway, the whole Forbes article response in the blogosphere really strikes me as a tempest in a teapot. Daniel Lyons is free to say what he wants about bloggers, and bloggers are free to respond. It's all good.

But the true evil and danger in the article came in the last paragraph:

Halpern... says that may change if a few politicians get a taste of what he has gone through. "Wait until the next election rolls around and these bloggers start smearing people who are up for reelection,"Halpern says. "Maybe then things will start to happen."

(Uh-oh, I quoted the article. Hope I don't get sued.) Some journalists, though, are trying to make the claim that what they do is protected under the First Amendment, while what bloggers do is not, since they don't have degrees or aren't getting paid or some such nonsense. If Congress even considers restricting free speech rights of bloggers based on fearmongering like the Forbes article, it could have a chilling effect. The beauty of the blogosphere is its take on the adage, "Freedom of the press is restricted to those who have presses." Now, with publishing on the internet cheap or even free, anyone who wants a soap box can have one, and any attempts to legally restrict this must be defeated. (Of course, bloggers are subject to the same libel and slander laws as any journalist.)

So go ahead, Forbes, write your articles on Bigfoot being spotted or whatever it is you magazines do, but don't try to use your political muscle to take away the right of the citizen to speak. It's un-American, it's unconstitutional, and it is unacceptable.

Icerocket tags



Thursday, October 27, 2005

Ben needs

I don't usually do memes, but I liked this one, via Elijah. Google for your name + " needs". Here's mine:

What Ben needs right now more than anything else is for the Boston Red Sox to win the World Series.
Ben needs your help.
Ben needs a ride home.
Ben needs to be noticed, recognised, appreciated, adored and worshiped.
Ben needs to learn to Play Purposefully with Toys.
Ben needs a peak from the nipple.
Ben needs to start doing his own writing and self promotion!
Ben needs to be rescued.

Moving day

I've moved my blog now. The new address is http://benfulton.net/blog. I hope you join me there!

Harriet, we hardly knew ye

I wrote here that I had no doubt that Harriet Miers would be confirmed as a Supreme Court Justice. I was wrong, of course. I was basing my estimate on her being voted on by the Senate, and she never even made it that far, being more or less forced to withdraw by her own party, as Democrats watched from the sidelines. Quite the political circus, and Mr. Bush eventually pulled the Krauthammer cover to get out of it.

It certainly seemed that every day we got some new news about Harriet, and it never seemed to be good. Stories came up that implicated her in Bush-related scandals, or found things that marked her as an idealogue - Heaven forfend! - or she wrote or said something that marked her as not a competent Constitutional scholar.

So, while the whole thing is a political disaster for the White House, it looks like the Supreme Court caught a break. Maybe now we can concentrate on finding someone who will be a real asset to the court. Your move, Mr. President.

Thursday, October 20, 2005

Senate overwhelmingly rejects Anti-Pork amendments

Dear Senator Bayh,

I was disappointed to read that you failed to support
the Coburn anti-pork amendments today. Government spending is woefully out of control, and Senator Coburn's attempts to stand against the tide are one of the bright spots of this Congress. I hope you will find the political will to vote against any future pork projects that may come up for a vote.

Thank you.

Tuesday, October 18, 2005

Constitution clause names

A page with the commonly referred to names of clauses in the US Constitution. It will be handy working on my Annotated Constitution project!

Monday, October 17, 2005

Moving

I think I have this set up now. Since Blogger is even being blocked by services now, it's time to move the blog. It's still powered by blogger, but its new home is http://benfulton.net/blog.

Blog design mistakes

This is a good article on web design as it applies to blogs. I'll try to take some of these messages to heart!

Friday, October 14, 2005

Why I am not a Republican

Chatting with a coworker one day over lunch, he told me, "Yeah, I would never vote Democrat. Those guys never do anything but spent our tax money." "But this Republican administration has taken us from budget surpluses to massive deficits in just six years," I pointed out. "Yeah," he said. "But at least the Republicans talk a good game."

Which got me thinking. Philosophically, I am one of those fiscally conservative, socially liberal types that some people like to call "libertarians" and others like to call "wussies". (I'll discuss that another day. Suffice it for the moment that I believe in balanced budgets, NAFTA, and gay marriage.) So where do I fit in? I can't possibly vote for massive social welfare spending or increased farm subsidies, so the Democrats are out. I can't vote for a constitutional amendment banning gay marriage, or outlawing abortion, so the Republicans are out too. In the '88, '92, and '96 elections I voted for the Libertarian party. I didn't see much difference between the major party candidates, so I voted on principle, hoping enough people would do the same to make the majors take notice, rather like the Socialist party in the teens. In 2000 I thought Gore was much in the same mold, a decent leader who wouldn't be able to make too many changes, same as Dukakis, Clinton, Dole, and Bush Sr.

But after eight years of peace and prosperity under Clinton, I was noticing that the Republican leadership suffered greatly by comparison. They seemed to have an us-and-them mentality and a feeling that they could do whatever they wanted, like the arms-for-hostages deals under Reagan, the breaking and entering under Nixon, and the witch-hunt that Kenneth Starr perpetuated on a sitting president who was getting a little on the side. Plus, I could not in any way see that the younger Bush had any qualifications for being President, so in 2000 I voted for Gore. He lost - maybe - but I wasn't terribly bothered. Give the man a chance, I thought. He surely can't be much worse than Gore.

Six years later, I think this administration will go down as one of the worst in history. It seems to have no sense of how to do anything but spin stories and mount massive propaganda battles against its enemies. Richard Clarke, for example. After reading his book I was convinced that 9/11 represented a massive failure of the Bush administration to deal with terrorism. It's unquestionable that Hurricane Katrina was poorly handled. And the vice-president's old company seems to be handed the keys to the Treasury.

So even though I am in agreement with many of the Republican party's stated goals, I think there is a clear pattern of corruption and poor management in just about every Republican administration of at least the last 35 years. Sure, they talk a good game. But when the rubber hits the road, they can't back it up. I'll be voting for the Democrats in 2008. The country just can't afford another Republican president.

Icerocket tags





General to soldiers: No Swimming

Wow, this is a strange story (via Maryamie and Tim) . Congratulations to FedEx and Direct Swimming Pools, and boos and hisses for General Harrel, who insisted that the pool should be taken down. Was there any reason for it, or was it an arbitrary display of bureaucracy?

Icerocket tags




Wednesday, October 12, 2005

JotSpot and the Annotated Constitution

I joined JotSpot today. I've been looking for a wiki to use; I put up a couple of pages at a free wiki site that I think is gone now, but they deleted your pages if you didn't update anything in 30 days. Jot still has some kinks to work out, but I like it well enough, and they have a proper pricing structure set up, which is nice. The first page I put up is an Annotated Constitution. If I've gotten it set up properly, it should be freely editable, so feel free to drop by and add your comments!

Icerocket tags



Tuesday, October 11, 2005

MFC applications leak GDI objects?

We've discovered a GDI leak in the Prosolv Analyzer application, but it appears to be a Microsoft leak rather than a Prosolv leak. According to this KB article, creating and destroying child windows with Windows XP Service Pack 2, with themes turned on, causes objects to be leaked. The article says that a hotfix is available, but it has to be downloaded rather than automatically retrieved via Windows Update. It seems pretty strange to me - why don't people hit this bug all the time? Are there just that many fewer MFC applications on the market now? Or are there some subconditions for use that mean that it doesn't come up all that often? Or maybe it's just that most applications don't create that many child windows. Anyway, if you're running Analyzer, you might be wise to get the patch mentioned in the KB article applied, or turn off the Themes service. We're looking into our options.

Icerocket tags





Monday, October 10, 2005

First principles

I'm changing the name of this blog. I chose Ramblings more or less at random, since that was what I was doing and I didn't have any real sense of the direction of the blog. Now, after a couple of years, I still don't have any sense of direction, but at least I think I have an idea of what I'm writing. Partly, it's reviews; books, plays, and operas, but generally when I'm writing on politics or programming, I'm trying to work out exactly what my position is, and to know that I have to start from the very beginning and work through it, step by step. In other words, I have to work it out from First Principles.

Early in my job at Interactive Intelligence, I was assigned to work on the COM API for the primary client application. I didn't know much about COM at the time, although I had tried at my previous job at Sunstorm to create COM DLL's for some games. It didn't really seem to buy much, though, and I eventually abandoned it.

Interactive Intelligence, though, sent me to a DevelopMentor's Guerilla COM, where I learned a lot more about why COM was superior to simple DLL's, and I started to see the point of using them. If I'd taken that class while working for Sunstorm I would have been able to apply it a lot better. Later, I was reading through a COM book - I think it was Don Box's Essential COM - and there was a line in there that said, "Most programmers have to convinced of the utility of COM, because they prefer to reason things out from first principles." This really struck a chord with me, because it was exactly why I had abandoned COM the first time - I couldn't figure out the utility of it - until I was able to work it out from first principles.

At the same time, of course, I also think it's important to have a set of principles in order to guide your life. I was thinking about joining a church a while ago, and when talking to the pastor she told me that ordinarily she would recommend to a candidate certain ways in which their life should change before they became members. She didn't really have any changes for me, though. I think the reason was that the first priority in my life is to have a set of convictions, and work from them. Inside that framework you have flexibility, but this is what you have to have First: Principles.

So hopefully this will help to guide me, both in my writing style and the subjects I choose to write about. If you're reading, I hope you enjoy it.

Icerocket tags