Older blog entries for technik (starting at number 16)

Whoo! An article I wrote while working as an SA was published on freshmeat as an editorial. Fame (or infamy). Now I need to work on the fortune part.

Play: Going to YAPC in Montreal next week.

Work:
If you are part of the solution... You must be given management responsibilities? Team reorganized and I'm now in charge of platform and software infrastructure for our products. I'm also accountable for three junior team members. This should be interesting as we have all been a group of peers and they are experienced programmers and I know very little- yet- about the products on which they are working.
The decision by our V.P. had almost a perfect distribution of reactions among the senior analysts: one happy (he has no supervisory responsibilities and will shift focus as needed), two indifferent, one angry (no new responsibilities). I'm disappointed that the last guy didn't get something out of this and annoyed that he resents that I did. I didn't curry favor or push for it. In any event, I now have more tasks than I know what to do with. I'm not bored.

Advocacy:
Composing part of a curriculum and syllabi for a Unix Certificate for use at the public college where I'm an adjunct. It's clear that my intention in working on this- to provide a solid, vendor-neutral basis centered on the more easily taught areas of use and administration- is not the focus of the director of the institution who wants it to lump everything Unix-related together and also to parallel every piece of existing coursework including the RHCE courses, Sun training, and various bootcamps. At least he's dropped the "instant expert" schemes but keeps conflating programming under Unix with system administration and topics such as Apache and Java Servlets.

I do not have Apprentice status, so I'll post this here...

Reaction to Organizational Announcements on CMM and Six Sigma
After the initial from handwaving and the brandishing of buzzwords, I see the following:

  • Software is not Hardware.
  • What are your inputs?
  • What are your outputs?
  • Is there a linear correspondence between input and output?
  • How do you define a quality baseline?
  • What measurements are used to define Software quality?
  • Is there a range of tolerances?
  • Are there upper or lower limits?
  • How do you define defect?
  • Are all anomalies defects?
  • How do you map defects to process?
  • How do you count defects in Software?
  • Is the Software process truly repeatable?

There seems to be an unhealthy lack of skepticism around these things.

Friends visited. Decided to occupy our friend's husband with a trip to to the Trenton Computer Festival. Really, it was a wholly self-less act. I had no interest. Uh. Yeah. Ran into a co-worker assisting at a vendor booth and another buying some equipment. It was nice to see I'm not the only one.

Picked up a new, in-box, buckling spring keyboard for $20. A genuine, new, IBM buckling-spring type M keyboard with the nice solid *clickety-click* feedback like the ones they used to make for the PS/2. This IBM model has an integrated trackpoint similar to those found on the Thinkpad but I'm not sure I like using it instead of a mouse. For what it's worth, PCKeyboard (formerly Unicomp?) still makes, sells, and repairs those great keyboards. They sell a similar full-size mechanical keyboard with the stick for $99 so I count myself lucky.

Our friend picked up an armload of untested, used equipment: a case with power supply, P2-333, and a BX motherboard for $45 total. He figures he'll install RedHat if the parts are okay.

Nearly bought a pile of six clapped out and stripped Sun IPC's at the flea market for $50 when the rain started. I'd have to sort through to make what would probably be two working units. And what would I do with them? Buy AUI-10BT converters and scavenge extra 30-pin SIMMS so I could run... NetBSD... slowly. Pass.

I also have to wonder what some of the flea market guys were smoking. One guy wanted $55 for a SS10, 40MHz, no ram, 1GB HD, and GX framebuffer. Another wanted $75 for SS20, 50MHz, no ram, no HD. I read on a list this evening that one bright light was hawking a SS/20 with 96MB, 9GB HD, and TGX for $575. Hello? Haven't these guys checked their prices against Ebay?

24 Apr 2001 (updated 25 Apr 2001 at 02:58 UTC) »
Work:
Frustration. Demotivation. Ennui. I guess it's business as usual. Weeks of HTML, JavaScript, kludgy Java Servlets, and the hangover of years-old decisions. Wondering if I'm cut out to be a programmer.

My build system has been distributed to the development teams and comments are trickling back. I'm averaging two calls a day regarding it. So far, every problem is the result of not following all four (4) steps of the installation instructions, using a buggy JVM (pre-1.1.7B, that was released in 1997/98 !!!), or having a "unique" local directory hierarchy and not adapting the paths held in the external properties file. RTFM.

Advocacy:
Completed teaching a section of Intro. to Unix using Linux as the OS. Despite my enthusiasm and that of much of the class, the answer to the unasked question, "How does one fail a continuing education course?" is, to my disappointment, "Don't show up and don't turn in any work." Ended up failing about two-thirds of the 26 adult students because they neglected to hand in three or more of the five assignments which constituted 50% of the grade. Were they expecting a visit from the homework fairy? Teaching another section and hopefully it will go better.

Play:
Digging into the Camel, a few RFCs, the Stevens book and an example posted to Usenet, I put together a nice ssl-tunnel in Perl which supports Basic and Digest (MD5) authentication to the proxy. Works under Win32 and Unix and under 'use strict'. Played around with Socket programming under Python for comparison and will see how this looks as classes and methods. Python's urllib2 module might make it trivial. Also scribbled an introductory article on bypassing firewalls via a HTTP proxy since it's fresh in my mind.

Organizing my ideas/notes for an article on build automation using Ant, Jython and (ack!) PVCS. While I was at it, I put up my Egoless Admin article on how to handle "difficult" user situations.

For reasons I don't even know, I'm looking at Smalltalk. Downloaded Squeak. Started experimenting and reading.

Wrote a very brief article on adapting the BSF (Bean Scripting Framework) to use Jython which I put up on my site under the articles page. It's trivial but it might save someone some time.

Work:
Go, Webmonkey! Go! A corporate update is underway and my team is retrofitting the new look-and-feel onto existing products. The old stuff was ugly and the new design is beautiful and easier to use but rehabilitating the stuff built by partly WYSIWYG editors is hell. The stuff violates the HTML 4 spec., renders differently in each browser, and is peppered with unnecessary tags and attributes.
Facing fifty-odd static and dynamic pages myself, and knowing that there are a few hundred in total distributed across the team, I reached for Perl (ask for it by name!) and Sean Burke's updated HTML::Tree module which I recalled reading about in The Perl Journal a few months ago (Aside, does anyone at liberty to say know with certainy what is going with TPJ?). A little preprocessing, a little post processing, a run through the parser and I had reduced by more than half the amount of manual editing. Compare the below code snippets to running search and replace in your favorite editor. Compare it for 50 files, or 100.

use HTML::TreeBuilder;
my $tree = HTML::TreeBuilder->new();
$tree->parse_file($filename);
...
# deleting font elements
@tags=$tree->look_down('_tag','font');
  if (@tags) {
    foreach $tag (@tags) {
      $tag->replace_with_content()->delete();
    }
  } 
...
@tags=$tree->look_down('_tag','b');
    if (@tags) {
        foreach $tag (@tags) {
            if ($tag->is_inside('table')) {
                # apply style to <td> that holds this element
                $parent=$tag->parent();
                $parent->attr('class','tblBold');
            }
            $tag->replace_with_content()->delete();
        }
    }
...
# More madness... illegal WIDTH="%" attribute must be removed
@tags=$tree->look_down('width','%');
   if (@tags) {
     foreach $tag (@tags) {
       $tag->attr('width',undef);
     }
   }
...
I'm going to have to buy him a beer sometime.

Play:
Attended the New York Perl Monger's meeting last week. Met a few of the local mongers and Randal Schwartz, who was visiting. Nice time.

Gave an older computer to my 92-year-old grandmother. She had expressed interest in getting online and I had the pile of parts my wife had used for running MS-Word. She is a remarkably quick learner and was enthusiatic about it. In a little over an hour, she had gone from never having used a PC to managing quite well. She was satisfied for the time being with Solitaire and FreeCell (yep, you know what's coming), but hopefully will get comfortable and go on-line. I seriously thought about putting Debian GNU/Linux on the box and Mozilla but my wife pointed out that:
  1. She probably needs as much help as possible.
  2. We live two hours away and don't have a "normal" schedule.
  3. I'm the only person in the family who can support Unix.
So I knuckled under and gave her a system running Win98, IE5, and AOL. The horror.

Meta:
A new advogato member recently certified me as Master. That's damn funny. Not only am I- in my opinion, even if not in the opinion of the people who employ me- merely an adequate self-taught programmer but I've made as yet no meaningful contribution to Open Source projects.

The certification on Advogato is based upon what you have done, what can be downloaded and seen. Reread the Certification Overview. At this point, I'm still in the burgeoning category of those who directly benefit from OS, but have not returned the favor. With the very thin exceptions of evangelism- demonstrating the value at work, using OS as teaching material, a couple of articles that are unpublished, being a newsgroup and listserv hanger-on - and a lot of good intentions, I haven't given anything back.

That's not Master material, that's barely Apprentice.

I'm not flaming, but the fact that someone mistakenly certified me stirs up a few internal conflicts. I "get" it in the bigger post-60's era sense, I just haven't done anything with it and that gives me a niggling guilt since I am (or, at least , may be) in a position to do something and return the favor to the community from which I benefit.

Work:
Back in December I cobbled together a new build system using Apache-Jakarta ANT and JPython. It has been simmering on my manager's desk- he still codes despite the meetings- as he worked through it and made changes in between other work. Yesterday, during a scheduled build for the primary development server he substituted my scheme for the original method and, Lo and behold!, it worked. It was entirely transparent. I met with some of the SCM people while this was going on and detailed the new system warning that at best it was a couple of months off. I'm going to revise that... it's a few days off and I have permission to give the new build method to the rest of the team. If all goes well, and it should, a total of sixty-odd developers will be using it and all of our QA and Production builds will be made using it. Building any product or even a full platform and suite for each of the six environments (don't ask) is now a simple two or three word statement.
I'm a little proud and a little worried. I already have visions of someone six months from now carping about the idiot design and bad decisions. I console myself that it is a step forward even if no one will ever see it outside these walls.

Work:
Done fighting the DB. My stored procs work and my kludge in Java to periodically extract the data and send it on its way is ready for testing. Seems I can't really test it in development because the data I need doesn't exist and the target host is on the other side of a intranet firewall (the result of intra-division politics). We slipped into a QA system and manually ran the queries which returned what we expected (the QA tables were missing a few records so we cleaned up a little while we were there).

Lately, I've become the contact for all things regarding PKI and digital certs. I have OpenSSL on a couple of covert boxes running OpenBSD and Progeny Linux for my own testing. Word got out that I'm running a CA and at first just members of our team used my server certs. Now other teams are hunting me down for certs so that they can do their development without buying certs from Verisign (no link, they don't need my help) and idling until they arrive. It's not a big deal except that every product seems to want its certs in differing formats. Maybe it's my own ignorance but their respective documentation isn't explicit so it's a merry-go-round until we find the right options. For my own sanity I'm going to clap together a few shell scripts to do this for iPlanet, WebLogic, Apache mod-SSL, WebSphere, Netscape Navigator and IE. The OpenSource PKI Book and the archives of the OpenBSD mail lists are real blessings when working this stuff out.

7 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!