Recently in Business yammerings Category

Joe Wilcox of Betanews writes an excellent article on why Microsoft is stumbling, and how they lost their initiative after the major gains in the late 90's and early aughts...

Microsoft executives and product managers -- Chairman Bill Gates, above all of them -- showed great technology vision for the new millennium. The company was right about so many trends to come but, sadly, executed poorly in bringing too many of them to market. Microsoft's stiffness, perhaps a sign of its aging leadership, consistently proved its foible. Then there is arcane organizational structure, which has swelled with needless middle managers, and the system of group competition -- and in the new century compensation -- that worked well for a growth company but not one trying to manage mature markets.

Read the entire article over at betanews.com...


Mail.app vs Thunderbird - Which one?

| 2 Comments

It's been about two and a half months since I got my Macbook Pro, and all in all, it's been a productive, happy relationship. The Mac functions beautifully for all the things I need to get done, and from my side, I haven't had to spend any time yak shaving. In fact, I can't think of a time where I really had to dig into the filesystem or look up tech articles to get something configured on the machine. Everything just plain works.

Somewhere along the line I decided to complete the Kool-Aid conversion, and switched from using Thunderbird to using the Mac's native mail application, collectively known as Mail.app. Why? Well, part of my philosophy on tech platforms is to try to not carry over preconceived notions of "how things should work", and immediately critiquing a new environment simply because it doesn't exactly mirror the one I'm used to.

I've been using Mail.app for about a month and a half now, and... I'm not impressed. It works, it talks nicely to my personal IMAP server and to Exchange at work, but... sorry Apple, the UI has some pretty painful choices.

In a recent Facebook conversation (based on a tweet I sent out), folks asked what my issues with Mail.app were. So, here they are:

  1. The 'file to folder' function is irritating to use. Shortcuts change regularly (F3-space-foldername-enter - BLEAH) - it's better than the default non-existent methods, but still difficult. (Note this is in reference to using Act-On, a plugin for Mail.app that brings some of the functionality of the super-awesome Nostalgy plugin for Thunderbird)
  2. Window management is poor. Composition windows are not floating in alt-tab rotation. If I want to flip back to my Inbox to view something, I have to mouse (no KB shortcuts to switch between inbox / composition / whatever)
  3. No identity management - I can't say "Compose this mail, but it's business mail, so use my Biz address, footer, etc)
  4. The thread management is WEIRD. So, If I have a single message, it's one row in my inbox. If I have 2 in a thread, its' THREE rows in my inbox. That makes no sense.
  5. I can't find anyway of skipping to the next unread message in the inbox. So I'll see Inbox(1) and have to scan where in my inbox that one message is.
  6. And who the heck determined that control-shift-D means "Send message" ? What, Control-Enter, a keystroke that is nigh on universal, wasn't appropriate?

I haven't come up with a good reason to stick with Mail.app yet. One thing I do worry about is contact management. I'm not sure how to manage that path yet, or how Thunderbird contacts will interract (if at all) with the contact manager on the Mac. That being said, I don't know if I've been using the contact manager at all, so it may be a moot point.

The UI issues in Mail.app though are enough to have me close to jumping ship. Any reasons I shouldn't?


Remember CONGO, my convention registration software? And how over the last year I've been rewriting it from scratch?

This past week, the new rewrite, colloquially referred to as 'v2', went live for Arisia. Following is a bit of babble about the project, and the net steps therein.


I've blogged before about being tempted by Macs, and in some ways my iPhone could be considered something of a 'first taste' of Apple products. But until now I've fought hard against really going whole hog into the Mac world.
I has a MacBook

Until now.

I'm the proud owner of what can arguably be called Apple's top of the line laptop - a Macbook Pro 13.

This is a huge step for me. I am not only investing a significant amount of money into a small device that could easily be considered a 'toy', but I'm changing over to an environment I only have a passing familiarity with - OSX.

I've owned it for about 24 hours, and I will say - I've never worked with a sexier implementation of high end computing in my life. This is by far the fastest computer I've ever owned, let alone as my personal workstation, but with all it's screaming horsepower, it is beautifully designed, with an operating system and environment I find... different, but not irritating. There are things I don't know how to do, but I'm figuring them out. I have not had a single "oh that's just plain idiotic" moment. I'm sure they'll come, but so far it's just been a series of "Hmm, that's interesting... what if I... ah, that did it. Cool." moments.

I'm still installing things, and still setting up my tools. This machine will be my life and blood for the next 3 years, so there's a lot of work to do to bring it into full functionality. So far I have mail and chat and web stuff working fine, next will be my development environment. After that, virtual machines for running some of the business apps I'll be using.

A particular thanks to all the people I talked to while making this decision. There was a lot of fantastic feedback and good commentary. It helped me affirm that I'm making the right decision.

Now, off to download Eclipse and get things set up so I can work on CONGO !


CONGO Coding session. Phew.

| No Comments

I had my first decent coding stretch on CONGO tonight in quite a while. I put in 4-5 hours to work through some issues that have come up while running the v2 code for a 'live' event. This is the first time the new codebase has been exposed to 'real' customers, and so far things are going okay.

There haven't been any showstopper bugs yet (knock on every available source), but there have been a few rocks along the way. The fellow running the conference has been very supportive, knowing it's new code, and I'm looking forward to a post-event debriefing. "What should be done differently?"

Overall, I'm quite proud of the v2 code. It's still missing a lot of functionality from the first codebase, but I do enjoy having everything in Java in a sane build system and a rock solid database layer.

And now... bed.


Azureus / Vuze under Ubuntu FAIL!

| No Comments
I'm not sure who to blame here, but someone should get drawn and quartered. I'm working on setting up Azureus Vuze to run headless on yawl while I'm not around. To test it, I decided to install and run it on clipper. Things were going quite well - with aptitude installing Vuze fine. I had to run java-update-alternatives to make sure I had the right JVM:
dbs@clipper:/usr/bin$ sudo update-java-alternatives -l
java-6-sun 63 /usr/lib/jvm/java-6-sun
dbs@clipper:/usr/bin$ sudo update-java-alternatives --set java-6-sun
Then, Vuze wouldn't start:
dbs@clipper:~$ vuze
exec: 11: /usr/lib/jvm/java-6-openjdk/jre/bin/java: not found
"Oh no, they didnt...." They did. The vuze script starts up the azureus startup script, which is hardcoded to the java-6-openjdk java path:
dbs@clipper:/usr/bin$ head -5 azureus 
#!/bin/sh
JAVA='/usr/lib/jvm/java-6-openjdk/jre/bin/java -Xmx1024M'
This isn't hard to fix, it's just a quick edit to the startup script - but cmon package maintainers. Get a grip here. The whole java-alternatives stuff is specifically made to avoid this sort of crap. Get it together!

Pursuant to my last post regarding PulseAudio problems under Intrepid, there appears to be a workaround.

The issue has to do with the PulseAudio system not being 'suspended' properly when a laptop goes into suspend. There's a very easy way to sort of 'nudge' it back on track.

After resuming, type the following - this is done on my laptop 'clipper' :

dbs@clipper:~$ pacmd
Welcome to PulseAudio! Use "help" for usage information.
>>> suspend 0
>>> suspend 1
>>> <control-d>
dbs@clipper:~$ 

I just tried this, and things started making noise appropriately - didn't even need to restart Firefox to get youtube videos going again.

This is documented in Bug 202089 in the Ubuntu bugtracker, but I'm reproducing it here if folks can't find the answer.


Thanks to Ben Levy for forwarding this to me - UserFriendly takes on registration at an IT conference...


CONGO - And so we go to alpha testing

| 1 Comment

On Sunday night I released CONGO v2 into alpha testing. The first client to be using the new platform wants to be up and running on January 1st, and this is on-schedule. The last couple weeks haven't quite been a death march, but there has been a helluva lot of code written, checked in, and tested. The log of messages posted to congo-dev tells the tale. While November wasn't as intense as October, we still did over 105 commits against the server. The CONGO v2 codebase is rivalling the original system in size, though now it is entirely java based (the old system was part PHP, part Java).

I'm pleased with how the system is coming along. An entirely new payment interface, refactored contact information, and a new Events module for managing activities at conventions is worked into the new model (though not all of it is complete yet). I'm satisfied with the choice to move to using Struts2 as my web framework, but my dissatisfaction with OGNL grows daily. Why OGNL was necessary for the struts tag library, when the expression language (EL) was around is beyond me. For most of my code I'm replacing struts tags with JSTL and assorted libraries, and using EL for referencing action, stack, and session based content.

The next 2 weeks should see the last pieces of functionality falling into place, at which point we go into beta testing. All coding should be done, and we'll be tuning the system for "go live" on January 1st.

After that? Well, due to the awesome new build structure, I'll be able to release CONGO v2 for use by other folks. The system is now self-installing and configuring, so setting up a new host to run a convention is an order of magnitude easier than it was in the past. Stay tuned for details on how you can download CONGO and install it for your convention!


And so ends our busiest month.

| 1 Comment

So here we are on November 1st (I could tell it was a new month because of all the Mailman notices in my inbox this morning).

But there's another reason this is an important milestone.

Whenever I make a change to CONGO, I submit it into our SVN repository. That submission generates a mail message letting other interested parties know a change has been made, and they should update their local copies.

My philosophy, and one that is the 'unwritten rule' for SVN usage is "Commit Early, Commit Often. The idea is that the repository should reflect the most recent version of working code, and avoids the "I have had such and such code checked out for months, and you went and changed the repository on me! Now I can't merge my code in!" problem.

Because my pattern really hasn't changed, I can use my commit timing to judge how busy I've been on a project.

Last month, October, 2008, was the busiest, and therefore (arguably) the most productive month of coding on CONGO since the project started. The congo-dev mailing list statistics show that during October there were 119 commits against he repository. The previous 'record' month was December, 2004.

Virtually all of this work is reflected int he progress being made in Congo V2, and I would be remiss in not giving thanks to Owen Jacobson's help in porting Congo to a Struts / Spring model - his commits are in there too.

V2 is coming along. I'll have something to show soon!


The weekend. Let me tell you about it.

| 1 Comment

So this weekend had me out to Ubercon down in NJ. All in all, things went pretty well. It was the second time I took Zach with me to an event, and he and blk's son Justin had a riproaring time gaming, socializing, and geeking.

On a personal level, this wasn't one of my banner events. It's been a while since I ran at at-con registration of a reasonable size, and a lot of things conspired together to fail so that, by today (the last day of the con), I felt pretty down about my showing. Let me esplain. No, there is too much, let me sum up.

  • Mame - My MAME cabinet, which I'd been hauling down to Ubercon for now the third event, gave up the ghost last week. deathstar refused to boot, and I almost cancelled bringing the machine. The UC folks happily offered up some spare hardware, and I decided to bring the machine down. Early Friday morning I did an emergency load of Kubuntu 8.10 on a spare laptop, installed my MAME drive that has my roms in as an external drive, and configured up KXmame. The end result? Unstable, video modes not working right, and general bleah. I managed to keep it limping along through the weekend, but it was not the glorious, elegant machine of the last event. There needs be work here.
  • CONGO - Hardware - The server I use for events, 'endor', has been running faithfully for almost 20 events now. I've done one full OS reload, and for the most part it has been dependable as all git out. This weekend however some hardware twitches started to come up. First, the CMOS battery died, which causes the 'things have reconfigured!' message on boot. What I didn't realize was it had also reset the dates, so that all the log entries for CONGO this weekend have a datestamp somewhere in 2006. This will require manual fixing. We also lost power twice due to a flaky outlet. The last bit was I attempted to cut back the amount of hardware I bring to events, and in doing so managed to arrive short 2 keyboards. Fortunately, Ubercon loaned me a pair so things were fine, but Grr.
  • CONGO - Software - For the most part, CONGO behaved appropriately and did all we asked of it. I'm itching to get v2 up and running, because of all the deficiencies I keep seeing in v1. But, the old tried-and-true still chugs along, and we cranked out hundreds of badges over the weekend.
  • Organization - I normally have a very competent reg manager running the event with me. This time, the normal Ubercon chap I work with was unavailable (due to health issues). While other folks helped man the desk (we were never short on people), not having an "In charge" Ubercon person with us really pointed out weaknesses in the process control in CONGO (things like cash drawer management).

Despite my grumblings, the convention was a success, and I think we did a bang-up job on keeping everything flowing nicely. I am utterly, 100% exhausted - the drives up and down take their toll, and caring for a 9yr old while running an event can be a bit taxing. Would I do it again? Absolutely, and will next year. For now, I'm going to go fall over.


CONGO Progress and Pretty Pictures

| 3 Comments

Another good night of coding!

After finishing a hefty project at work, and a busy week of Life Fun, I took 4 or 5 hours last night to hack into CONGO and try and get some rough edges worked out. I really feel like I'm approaching a useable system, with workflow doing what it's supposed to, database tables updating the way they should, and crashes being few and far between.

I'm a visual person, so I wanted to come up with an up to date ERD for the v2 table structures. Ages ago I used DbDesigner4 to create an ERD for v1, but the tables have shifted a lot since then, and I wanted to see if I could auto-generate a diagram from table structures

Hunting around, it looks like DbDesigner has been absorbed into MySQL Workbench. I downloaded the latest version, and found myself bewildered by it's interface until I realized what this thing was. It's a tool for creating and designing databases, as opposed to a passive maintenance tool. Not... quite the approach I was shooting for - I was hoping for something like dbVisualizer that had a button that said "Make an ERD of this.". While dbVis does have that to a certain degree, it's pretty weak.

Eventually I figured out the incantations necessary to create an ERD with MySQL Workbench from existing table structures (it involves dumping the MySQL tables to a .sql file, and 'reverse engineering' the structures from that file). A few more mutterings and a dead chicken later, I had a visual representation of all my tables and their relationships to each other. Score!

Alas, the tool isn't really a 'reporting' system, so the resulting graph needed some fiddling in Gimp to add titles and other text. Naturally I realized after the fact that I didn't move a couple tables into the view before snapping the picture, but it's still a pretty good representation of where I am.

Coding wise, v2 is missing a vital component - the Properties system is not yet working, and this is critical for basic operation. I started into it last night, building up new DAOs and domain objects representing a Property for a registrant and an associated PropertyDefinition. What's left to do is write all the management tools around them to make them workable from Coconut, and start testing.

The last big project will be the public interface. In many ways, that's going to be the simplest and most rewarding - it'll be the outward facing side of CONGO. Essentially what registrants see when they want to attend a convention. Previous stabs at this worked reasonably well. Attendees at the various events were able to do the basics of what the event needed, but I'm really looking forward to going the 'next step' and offer a full service deployment.

My delivery date for CONGO v2 FC is December 1st. So far, I think I'm going to make it.


A WeekBlog - A Post a Day - CONGOv2

| 4 Comments

So this week I'm faced with a situation I haven't had in front of me in, well, as long as I've been married... at least as long as I've had kids in my life.

This week Cat is up in Maine with Zach. I have my normal work going on during the day, but no commitments for the evenings.

A unique opportunity to be sure.

The Plan [tm]
So here's what I'm going to do. A few months ago I started work on a complete rewrite of CONGO. The rewrite is underway, and has been getting attention fairly regularly over the last couple weeks, but I need to make the final push to an alpha release.

This week, I will dedicate 2 hours a night every night to continuing work on CONGO v2, with the goal of reaching an alpha-testable version by the end of the week. I will also make a post each night with an idea of where my progress is on the rewrite, and what I've accomplished. (I do reserve the right to post the next morning if I'm up until Oh-Dark-Thirty coding and fall asleep in the middle of writing an exception handler.)

Anyone wishing to follow the riveting details of my work, I subscribe to the Commit Early, Commit Often philosophy of source code control, so when I'm working, you'll see commits firing off pretty quickly. If this sounds interesting, you can sign onto the mailing list, or, if you're uber-hip, subscribe to the RSS feed.

Yeah? So? Why us?
So why bombard ya'll with my chattering? Well, I work better with encouragement, or if I know folks care about what I'm doing. Curious about bits of CONGO? Ask! Wanna help out? Give a "wow, kick butt, dude. Go for it" comment or two.

Hopefully I'll have some work to show for tonight, but if not, stay tuned for truly exciting blow by blow Java coding!


Over 5 years ago, I began work on an application called CONGO, a registration and badging system, not only in the vein of "There's gotta be a better way", but also to help out a friend who was running registration at con in Philadelphia.

The first versions of CONGO were crude, but worked well - with a custom Swing interface, custom terminals and servers, it was an impressive setup. What wasn't apparent was this was my first foray into writing any decent sized Java application. I made what I thought at the time were good design decisions, and looking back on 30+ events run, and hundreds of thousands of badges printed, I'd say the design was, for what I knew at the time, solid.

But it's time to change. With everything I've done over the last 3 years in Java and enterprise-level applications, I feel I'm ready to rewrite CONGO into a proper Java based webapp. CONGO 1.0 was part Java, part PHP, part templating. CONGO 2.0 will be a pure java application, based on Struts, and will allow features that I could not shoehorn into the old model

I started work on CONGO2 about a week ago, and I have my first screens working properly and chaining together as they should. Part of this process is factoring in the old logic code, and linking it up with the new presentation layer I'm building using JSPs and Struts. This means making calls to 12,000+ lines of Java code that was written as I was learning the language.

But one thing I did consistently - I documented my methods. Every piece of the CONGO appserver has full Javadocs describing how to call the method, and what it returns

Because I'm doing CONGO2 using modern tools (like Eclipse and Tomcat, my GUI is showing me these docs whenever I try to link to my old code, and is reminding me how to use the old libraries. Why is this remarkable? Because other than generating static documentation, I've never actually seen my own comments and documentation popping in interactive windows in my IDE. Until now.

It gives me a little thrill each time I see my own docs pop up as helper windows in Eclipse, showing me comments I made half a decade ago on structures and calls, and reminding me how to use the system.

It wasn't easy to learn Java, it wasn't easy to learn Swing, it wasn't easy to learn JSPs, JSTL, and Struts. But now I do know them - some more than others, and I'm enjoying this massive refactoring of one of my proudest creations.


And now, a word from my day job.

| No Comments

I don't talk about my day job much. For those outside of the Java Geeky circles, it's pretty dull stuff. But today has been particularly active, so I thought I'd share some of the bits I learned while teaching myself the wonders of Struts. This can best be summed up by the following revelations...

1) When changing a struts.xml file, within an Eclipse WTP environment, being serviced by Tomcat, WTP does not click that the Tomcat server needs to be restarted. The 'Dynamic' part of WTP does not take effect, and no matter how many times you save what you're working on, it won't go live in the server until you actually restart Tomcat.

2) Despite all the awesome advances in Eclipse in the last few years, there's twitches that still drive me absolutely gonzo. One is that the 'smart insert mode' (which helpfully closes XML tags and closes quotes and parentheses for you) cannot be turned off globally. You can do it on a per-editor basis, but not globally, so I'm always forgetting to turn it off when I open a new editor. Another is XML syntax validator is still quite twitchy, and occasionally will flag incomplete tags or non-well-formed XML when the file is just fine. A close and re-open fixes it, but ugh.

3) Last, but not least - that which almost got me up on the roof with a high powered rifle. I give you a quiz as my example. One of these two struts.xml configurations apparently tickles a bug in Struts2 and will cause an internal server error and stacktrace with a Null Pointer Exception. The other will not. Can you figure out which is which?

<action name="/*">
	<interceptor-ref name="mystack" />
	<result name="success">/WEB-INF/jsp/{1}.jsp</result>
	<result name="login">/WEB-INF/jsp/index.jsp</result>
</action>
<action name="*">
	<interceptor-ref name="mystack" />
	<result name="success">/WEB-INF/jsp/{1}.jsp</result>
	<result name="login">/WEB-INF/jsp/index.jsp</result>
</action>
Just for fun, here's the actual stack trace:
1. INFO: Server startup in 954 ms 2. Jun 17, 2008 7:41:14 PM org.apache.catalina.core.StandardWrapperValve invoke 3. SEVERE: Servlet.service() for servlet default threw exception 4. java.lang.NullPointerException 5. at com.opensymphony.xwork2.config.impl.ActionConfigMatcher.convertActionConfig(ActionConfigMatcher.java:168) 6. at com.opensymphony.xwork2.config.impl.ActionConfigMatcher.match(ActionConfigMatcher.java:144) 7. at com.opensymphony.xwork2.config.impl.DefaultConfiguration$RuntimeConfigurationImpl.getActionConfig(DefaultConfiguration.java:316) 8. at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:169) 9. at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41) 10. at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494) 11. at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419) 12. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 13. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 14. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 15. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) 16. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 17. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 18. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 19. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 20. at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) 21. at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) 22. at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) 23. at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) 24. at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 25. at java.lang.Thread.run(Thread.java:619)

How the hell am I supposed to debug that?

I finally did, after a good 2 hours of hair-ripping, gnashing of teeth, and spewing my venom upon the #struts IRC support channel.


How Not to Run a Convention

| 4 Comments

I do conventions. I work a lot of them. Even though I'm not a conchair, I've been high enough up in the hierarchy, and worked with enough of them, to know how much work they are, and how they can go wrong.

But I've never seen one go as badly as this.

This is the story of FedCon USA. A Trek convention in Dallas Ft Worth where the organizer, one Tim Brazeal, apparently through pure incompetence, caused an entire event meltdown. The reasons appear to be manifold, but the causes seem to be miscommunication, poor organization, and in some cases, out right falsehoods.

On the flip side, it appears this failure is, apparently purely due to mismanagement, and cannot be ascribed to malice. He didn't wreck the event on purpose, for profit or for some other reason - he simply screwed it up. Badly.

It should be noted, that this is FedCon USA, which only bears the name FedCon as borrowed from FedCon Germany. That organization, which is widely respected, issued a press release describing their dealings with Tim, and how he lied and alienated them as well. FedCon Germany withdrew support for the event, but Tim went on advertising that he had their financial and organizational backing:

I never in my life meet an individual like Tim. First he seems like to be a great buddy, but after a while you discover a person, who is constantly lying, apologizing and making things up. He was never straight forward, almost everything he said was a lie. I never in my life met someone who actually believes all this BS he says. He was always totally sure, what he says. But saying and doing are two totally different things. He is the person who says: "Okay no problem, i book the flights for you!" As soon as you hang up he totally forgot the conversations he just had. But if i would have told the fans earlier, I would for sure got some legal problems!":
All i can say is, FedCon Germany (the real thing) is always a feast for the fans and if i can help out some of you at one of our next shows please let me know, just email us and sent us some proof that you purchased a ticket for FedCon USA and we give you something back at our next show.
I also think, the whole staff from FedCon USA (not Tim!!) have nothing to do with this mess and they sure worked their asses up to make some things better, but with their figurehead hiding in dream worlds, lame excuses and lies, this was just not possible.

My heart goes out to the volunteers, staff, and particularly the attendees who, in some cases, drove many hours or flew in for the event, only to have most of the guests not show (even though they were still on the conventions schedule), and have the event shut down halfway through Saturday.

So next time you're having a hard time at an event? Think of how bad it could get, and thank your event staff.


And another one done.

| 5 Comments

Today is the last day of the National Cohousing Conference at Bentley College in Waltham, MA. I, naturally, was providing CONGO for registration and badging, and oddly enough, everything went smoothly. Systems and printers all worked as planned, no last minute badge panic, and the database worked great.

In the background, I'm starting work on Congo v2.0. I'vebranched SVN, and I'm committing against a new 2.0 branch. More on this later, but suffice to say I'm pretty excited.

As always, I learned a lot, figured out problems that need to be fixed, and made plans to add features. This was also the first time we had directly linked CONGO to a credit card payment system, though that wasn't active at the event. Next time, however, we'll have it all live at the same time, and won't that be cool! :)

Everything's packed up into the cases, and we're ready to head home.

Another one done.


Coconut gets a facelift

| 1 Comment

Ever since I first wrote Coconut, the web interface to CONGO, I've been using the same stylesheet. It was really my first foray into stylesheet-driven design and layout, and while it was a good first try, it was ugly as sin.

Last night I finally sat down to rewrite the stylesheet into something reasonably attractive. I got rid of the dark background and greytones, and the 'All Caps' font styles, and used more pastels.

I'm pretty happy with the result, but for the hundred or so folks who are used to the old look and feel, it'll be a dramatic change!


Dear Jboss. QA yer damned site.

| 4 Comments

Why is it so hard for any organization, from opensource on up, to understand it's a good idea to give the users information they want, in a form that's useable?

I zipped over to JBoss.org to see if there was an update to the 4.2 server I've been using for the last year. Sure enough, there's a 4.2.2 release that came out in October. Great, I wonder what changed?

Well, the downloads page has the new release on it, and a link to the release notes. Which, you'll note, is completely illegible because the lines are not wrapping. (I tested this in Firefox under Linux and Windows, Konqueror, and under IE6 in Windows. None of them make that page useable.)

Was it so hard for the JBoss release engineer to click on links and check if they worked? Apparently that capacity is beyond them. Sad.


Things I Learned about CONGO at Arisia

| 4 Comments

This year's Arisia, as previously noted, was special in that while I wasn't actively running registration, I was functioning as technical support and consultant for the process. There were a number of organizational, technical, and logistical challenges that came up, and I learned some interesting things.


This morning I slept late

| 3 Comments

Now, why is this remarkable?

Because I am at Arisia, and for the last 6 years or so, I've been running (or helping to run) registration. This means getting up very early Saturday morning to set up and run CONGO for the days registrations.

This year I'm not running reg. Oh, they're still using CONGO, but a few weeks of tunning, fiddling, and refining, and the system is now startable by mere mortals. I was still 'awake' at 8:45 (registration opened at 9), and I was waiting for the phone to ring with a problem... but it didn't ring. All went well, and I happily slept in until around 9:30.

In some ways, it's awfully nice. In others, I'm sort of mystified. What am I supposed to do with my time now?


Buy my printers!

| No Comments

I'm unloading my old badge printers to help finance upgrading to new, smaller, lighter printers from Evolis. This means the badge printers I've been using at conventions for the last couple years are up for sale.

See the Craigslist ad for details.


Zorching Memory Leaks. I Am Teh Stud

| 2 Comments

Tonight, I am Da Man.

It's rare I get to sit down and see, so directly, a problem in the code I'm working on. In this case, while running at Ubercon the other weekend, I noticed that CONGO was showing every sign of a memory leak. After a while I'd get sluggish performance, and eventually I'd get an OutOfMemory error from the JVM. Didn't look good.

This had me in somewhat of a panic, since Arisia is right around the corner, and I need the system stable and useable for the event. With the help of the wonderous tool that is JConsole, I was able to actually see the memory usage going up in the JVM as I worked with the server. There was definately a problem.

It turns out my hastily set up code to handle changes to my JDBC driver was not being handled correctly. Apparently with the old mm.mysql driver, SQL handles were automatically closed at the end of use. With the new Connector/J driver from MySQL, you had to explicitely issue a close() statement on any Statement, or the handle would never be freed. This was probably always the case, it was just my sloppy code and a twitch of the old driver that made it never come up.

Unfortunately, this necessitated changing just about every SQL call in the server, all 10,000 lines of it. It was long, painful, boring work. I had some help from blk, but it still took a good week of off-hour fiddling to finish the changes and do some basic regression tests.

Tonight, I made the last set of changes, did some basic runthroughs, and didn't have a single crash. With someone trembling fingers, I started up JConsole again, connected to the application server, and started working with CONGO. Registrant lookups, reports, modifications, creations, subscriptions, convention detail editing - throughout it all, JConsole happily continued showing the normal 'sawtooth' pattern of memory usage. Things would get allocated, used, and then the garbage collector would come along and reap the memory.

Success! I had successfully searched for, found, and fixed a major memory leak that was persistent throughout the code.

For those insisting on the details, here's a properly structured, Prepared, and appropriately exception-managed call to get a number from the database. (And, before I get abusive comments all over the place, the Exception handling here is VERY POOR, and will result in a clean result coming back from the method, even though the call may have crashed. I know, thank you, now go away).

private static int calcRegistered(int cid, String typeName) {
        PreparedStatement p = null;
        ResultSet rset = null;
        String sql = "SELECT count(*) AS total FROM reg_state " +
            "WHERE state_cid=? AND state_regtype=? " +
            "AND state_registered=1";
        int value = 0;
        try {
            p = cserver.Conn.prepareStatement(sql);
            p.setInt(1,cid);
            p.setString(2,typeName);
            rset = p.executeQuery();
            if (rset.next()) {
                value = rset.getInt("total");
                logger.debug("\tcalcRegistered: count for conference '" + cid + "', type '" +
                   typeName + "' is --: " + value);
            }
        }
        catch (Exception e) {
            dumpException(e);
        }
        finally {
            try { p.close(); }
            catch (Exception e) { dumpException(e); }
        }
        return value;
    }

I feel all geeklystudly.

Next is to start seriously hammering away at the buglist, and get a test environment set up so other CONGO users can test out the new Merge function against 'real' data. If all goes well, we'll roll this version into production in time to run Arisia.


Deep Breath.

| 2 Comments

Aaaaand, we're back.

What an insane couple of days. There's a whole series of posts brewing in my head right now, but I'll just touch on probably the one that's most on my mind.

Last week, I was in mid-preparation for Ubercon, an awesome gaming convention I regularly work down in NJ. CONGO has been pretty idle for the last few months as the summer is not a big time for conventions. With a week to go until Ubercon started, it was time to pull out all the hardware and make sure everything was working.

Well, unsurprisingly, it wasn't.

The first major issue was coming to the conclusion that endor, the venerable server of dozens of conventions, really wasn't going to handle Yet Another Apt Upgrade. It was still running on a baseline Debian Sarge install that had been upgraded a dozen times over the years, and finally, after enough apt tweaking had gone on, a dependency just wouldn't resolve, and the machine would not take new upgrades. It was time to nuke from orbit and reinstall the OS from an Ubuntu baseline.

No problem, sez I. I whip out my Gutsy Gibbon Ubuntu CD, do a quick database dump and backup, install Ubuntu, and restore my home directory and databases. Reinstalled CONGO, loaded the working databases and...

stopped.

See, CONGO was my first big Java application. And as such, it has some... intriguing ways of doing database work. And by 'intriguing' I mean butt-ass stupid. In particular, not using PreparedStatements for SQL commands, not checking for failed transactions, etc etc. While this was okay for a fairly static application, once you replace the entire OS underneath it, things start to get a little squirrely. And, well, we had squirrels aplenty.

So over the space of 3 days I basically had to rewrite every SQL interraction in CONGO, resulting in some fairly major code changes, and all of this 3 days before a con.

Add on top of this the fact that I'm also using a brand new printer from Evolis for the first time under Linux. There's a whole nother post about this experience, but it did bring yet another variable into play. Oh, and did I mention that I rewrote the print routine in CONGO to generate PDFs on the fly and use them for badge rendering? Yep, also new.

Needless to say, things were a little panicy leading up to the event. Fortunately, by Wednesday afternoon, I had things fairly well stabilized, the code worked, endor was stable and functioning properly, and I could start packing for the event with a clear conscience.


The end result? It all worked. The convention went fine, the printer behaved wonderfully, running badges twice as fast as my old Fargo printers, and we had only minor glitches through the weekend. There's still some work to do to get endor ready for larger events, but for a week that started out with totally broken software, an unuseable server, and an untested printing system, things went mighty well.

Onwards.


It's been a challenging few days here at Chez Geek. In true journal fashion, here are the highlights, because I know my devoted readers are sitting on the edge of their seats, waiting for every geeky installment of my daily encounters with recalcitrant hardware, misconfigured servers, and twitchy environments.

Ahem.

Of Mame...
Mame console underneathOn Friday night I finished wiring the console. I'm short a half dozen buttons, so some functionality is missing, but I really wanted coin drop buttons. I picked up a couple small single-throw pushbuttons I had lying around, and wired them in with duct tape, so now I can 'drop coins' to get credits just by pushing a button on the console. Looks like ass, but it does work. I've ordered the new buttons, and they'll arrive in a couple days, and I wanted to play games NOW.

There's a whole post about things I'm learning regarding building a Mame cabinet, but that can wait. For now, I'm using deathstar, my MythTV box, as my 'mame front end'. MythGame is "okay" as far as interfaces. Mostly it's "okay" because it's actually working correctly, and works with the controller. I'm hoping to haul the entire setup to Ubercon this coming weekend, so minimizing fuss is a big win.

Of Stonekeep and Conventions...
Next weekend I'll be down at Ubercon in New Jersey. This of course means I need to get most of the CONGO system up and running to run badges. Unfortunately, endor is not behaving. After almost 4 years of constantly apt-getting and updating packages on it (Starting from a Debian 'woody' install), a series of packages failed miserably during an upgrade (I haven't really worked on it in about a year), and has left it in an unuseable state. I've backed the data off it, and reloaded Ubuntu Feisty Fawn on it. There's a bunch of configuration that still needs to be done, and that's making me nervous so close to an event. At least the install seems to have completed cleanly.

Those are the two primary things on my mind these days. Oh, and in the background is ongoing Java work and the slow moving ahead of Mosaic Commons, but that's sort of the 'steady noise' bits. I'm just covering the highlights right now.


Head-Slap morning

| 1 Comment

Boy, nothing like realizing that one of your sites has not been serving up content for almost 2 months. The site is 'up', but any queries into it returned nothing. Very useful for a lookup/reference tool. :-/

One of these days I'll get a monitoring system in place that's more advanced than "Is the server up?"


Recently I had to spend a fair amount of time working on CONGO on a Windows XP platform. Stonekeep is doing doing it's first event where CONGO will be running entirely on Windows XP, so all the environmental stuff I'm used to having under Linux doesn't work, naturally. Things needed to be updated. This presented many challenges...


Lo, I am blocked

| 3 Comments

So I frequently park myself at the local Panera to partake of their free wireless, tasty coffee, and comfy chairs. It's also convenient that it's halfway between home and my son's school.

Yesterday, I stopped by just to get out of the heat. Since I had an hour to kill, I worked up my last blog post, put it together and posted it. So far so good. I traditionally look at the site at it's base URL (http://planet-geek.com/) just to make sure everything is okay. This time, apparently everything was NOT okay.

Apparently access to my blog has been blocked by the infamous Sonicwall 'content protection' system. Nice of them, eh?

Further research into this problem, by following their url, showed that I was not blocked for my abysmal spelling, my poor site layout, or my lack of meaningful content, but that I was simply classified as... pornography.

I had no idea geekitude had slipped so far into the internet's dark underworld.

Naturally, I immediately put in a request to have it reclassified, and demanded an explanation as to WHY my little corner of geekness has been classified as Pornography. Alas, Sonicwall doesn't provide such information, you may simply ask for a reclassification, and they might get around to it. In 8-10 days. What do you bet that I won't hear a thing from them in that timeframe?

If you'd like to grease the wheels against this idiocy, please go to Sonicwalls' ratings page, look up 'planet-geek.com', and request to have it reclassified as an "Information Technology" website.

I still would very much like to hear from Sonicwall, or from anyone else, who has had their site randomly excluded from anyone who uses their product, with no notification and no recourse except for a 'request for reclassification', why this occurs and what can be done about it. I'd also recommend that ANYONE who hosts or runs a website to plug their URL into that page and check to see if they're being blocked.


JBoss Release Grumpiness

| 6 Comments

This is a geek gripe. Particularly for Java programmers. If you're not doing JEE development, this probably won't make a lot of sense unless you like seeing open source companies being beaten up for version incompatibilities.

Hello, I'm Dave, and I'm a JBoss developer. (Hi Dave...)

Until recently, I was quite content with the series of tools available for JBoss4, and my chosen IDE, Eclipse. JBoss provided a lovely little plugin interface called JBoss IDE. I encourage people to click on that link, because you'll walk through a series of redirects until you land on a page that, amazingly, has no information on where to get JBoss IDE! How wonderful!

It turns out that JBoss (now wholly owned by Redhat has pulled JBoss IDE in favor of another Eclipse plugin called Exadel. Fantastic, a new IDE plugin that has a lot more functionality than JBoss-IDE ever had. Lets take a look!

An hour later, and Exadel is installed and running and grand. But. Wait a moment, the latest version of the JBoss application server is 4.2-GA. That's General Availability. Meaning the platform is released and is the recommended system for users.

Exadel has no configuration support for 4.2-GA. Only for 4.0.x releases.

And JBoss-IDE has been pulled completely (and even it's '2.0.0-beta' version, the most recent version they posted, did not support 4.2).

"Must be coming out shortly." So I mailed off to Exadel tech support asking if there was 4.2 support in the works, or when it will come out.

I get a direct, and undeniable response from them:


Dave Belfer-Shevett wrote:
> > Exadel Support Team wrote:
>> > > Exadel Studio Pro is going to be re branded as Red Hat Developer Studio in
>> > > later summer. Red Hat Developer Studio will support JBoss 4.2 .
> >
> > So the answer is "no, it does not support 4.2 now, and won't until late
> > summer" ?

That's correct.

-The Exadel Team

Excuse me, but WHAT THE F??? We've pulled the old IDE toolset. We've released a new product. But you CAN'T USE IT WITH OUR IDE TOOLS! Hahahahha! And you won't for a couple months. Sorry bout that, have a nice day.

There are workarounds. You can run the jboss server externally in a windows shell and deploy to it. This is a painful arrangement, but I guess I have no choice?

Thanks for leaving us all in the lurch, JBoss.


This one is going out to the world in general, because it took me 2 hours of googling to find it, and I want to lessen some poor other slobs pain...

MySQL , in this case on a Debian Etch (stable) install, has a limit set on the number of files that can be opened in the mysqld server. Apparently when you start getting close to this limit, like doing something that opens a LOT of tables at once, you start bumping into it. This article describes how to fix this.


Getting a release out the door

| No Comments

It feels good when you finally push a release of a product out the door.

The last 2 months I've been spending a chunk of time doing updates on Keystone. It's always fascinating working on code that is pushing 10 years old, seeing things I remember writing during the dotcom boom, and finding other tidbits that make me go "What the HECK was I thinking?"

This release is interesting in that much of the work was pay-for contract updates from a customer who wanted to see some bugs fixed and a few enhancements added in. It's nice working on something you enjoy, and getting paid for it as well.

The code is just about ready for it's next major overhaul though. I'm trying to get up the gumption to rip out the entire database back end code and replace it with ADODB. I wrote my own database abstraction layer back in, oh, 1998-ish, but really, the world has moved on a bit since then. It's time to move with the times.


Good things aligning.

| No Comments

It's easy to gripe and moan and stone-kick when doing business travel. While it's become routine for me, it's really easy to fall into the "man this sucks. I miss my family" mindset. But this trip, I tried to schedule it carefully, work out what I was trying to accomplish, and stay focused on what needed to be done.

So here I am, on my way home, and generally, things worked out okay...

  • In three days, I got an enormous amount of JEE development and design done. Much code was checked in, it works, and the client is happy.
  • Designs I implemented almost two years ago in this project are coming to fruition. This week was the first time we discussed implementing the first application on the framework I designed. Everyone is excited.
  • Clipper continues to be a faithful companion, despite it's handicap of running Windows.
  • On the way home, I'm able to stop at one of my favorite food establishments, and partake in a beef burger ritual.
  • Double bonus - said restaurant has an open WAP nearby. Thank you whoever you are.
  • From nowhere, a paying client has contracted with Stonekeep to do a series of large updates to Keystone. Wootie!
  • Mosaic is preparing for the final signoff on the design of our homes this Sunday. This is a huge step - it's where we tell the architects "Go!" and step back to watch the fun.

All in all, a mighty good week. Now all I have to do is drive home in the rain. Fortunately, that's what XM is for.


Don't get me wrong, I love Linux. It's everything I wanted from an OS. Speed, flexibility, games, eye candy, productivity, and powerful development tools. But there are certain things it lacks that remain as barriers to wider adoption.


Boston and Boston Metro Coffeeshops

| 3 Comments

As part of my somewhat nomadic working style, I like getting out and about and spending time in local coffeeshops and restaurants. I can do 98% of my business from my laptop, therefore all I need is a comfortable environment, free wireless, and a good supply of coffee.The problem is, trying to actually FIND decent establishments to fill this need can be a real challenge. I'm not talking about Starbucks here - I'd rather support local businesses and encourage free wireless.

So in an effort to help out others with similar pursuits, here's a list of free wireless coffeeshops and / or businesses that I've found comfortable for telecommuting or just 'out of home' work.

  • Continental Cafe
    Location / Website: Acton
    Private coffee shop, very comfortable, includes a deli.
  • Diesel Cafe
    Location / Website: Davis Square, Somerville (Warning: annoying flash website with sound :-/ )
    The current mecca point for Somerville / Cambridge area bohemians. Note - Diesel's wireless is NOT actually free. But it's a good place nonetheless.
  • Crown Plaza
    Location / Website: Natick, on Rt 9
    In-lobby comfortable seating, and a bar / restaurant along one side. Comfortable for meetings, work, and quietly getting things done.
  • Panera Bread
    Panera has many locations all over Boston, see this page to find one near you. Most have free wireless. I personally use the ones in Natick, Marlborough, and Burlington.
  • Bear Rock Cafe
    Location / Website: Leominster
    I found this place while over visiting my mom's in Leominster. Interestingly, it was all of 40' away from a Starbucks, but had free wireless and a full deli, and was doing good business.
  • Cafe Ziba
    Location / Website: Rt 2a in Acton
    I've never actually been here, but it was recommended.
  • The Java Room
    Location / Website: Chelmsford
    A nice shop out on 495, comfortable and good coffee.

If you know of others in the area, leave them in comments, and I'll continue updating the list...


Subversion + SSH - Close but no banana

| 8 Comments

About a year ago, I switched my primary source code control system from the venerable old CVS to the (relatively) new kid on the block, Subversion. On the whole, I've been ecstatically happy with the system. It patched many of the ridiculous problems with CVS, and added on things that opensource community has been asking for for ages (like 'rename'), but never made it into CVS.

Now I have all my projects stored in SVN, and my main client is using it as well for their code (they've chosen to go with SVN and are planning to End Of Life their VSS server - to the dismay of no one).

Subclipse
One of the best tools that made this switchover workable (aside from SVN's similarity CVS in many respects, particularly on the command line) is the Subclipse plugin for Eclipse. Subclipse provides a great easy to use interface into SVN servers, giving all the functionaly one would have on the command line via a very simple, tightly integrated GUI.

One thing that had been bugging me, however, was the access methodology I was using to get to my (remote) SVN server. It involved setting up a tunnel in SecureCRT (though Putty can do it as well), and then telling subclipse to use my 'svn://localhost/stonekeep' repository.

SVN+SSH configuration under EclipseWhile doing some surfing, I found that Subclipse supports the svn+ssh syntax for specifying the repository. "Great!" says I, "I won't need to set up the tunnel each time!"

A few more fiddles, a pleasant discovery of a configuration screen in Subclipse, and I had an SVN over SSH connection to my repository, even using my ssh key pair.

Danger, Will Robinson!
But wait! All is not well. When I tried to browse the repository from Subclipse, I quickly hit this error:

Could not open file system at /var/lib/svn/stonekeep (13)Permission Denied: Berkley DB Error while opening environment for file system /var/lib/svn/stonekeep/db:

This vexed me, because I had been having no problems accessing the repository locally on the server, and over my ssh tunnel. Both used the locally running 'svnserve' on the repository host, so why wasn't the svn+ssh connection using it?

The answer comes in the SVN documentation, and via a little research:


What's happening here is that the Subversion client is invoking a local ssh process, connecting to host.example.com, authenticating as the user harry, then spawning a private svnserve process on the remote machine, running as the user harry. The svnserve command is being invoked in tunnel mode (-t) and all network protocol is being “tunneled� over the encrypted connection by ssh, the tunnel-agent. svnserve is aware that it's running as the user harry, and if the client performs a commit, the authenticated username will be attributed as the author of the new revision.

When running over a tunnel, authorization is primarily controlled by operating system permissions to the repository's database files; it's very much the same as if Harry were accessing the repository directly via a file:/// URL.

The Problem With This
I'm really unhappy with this model. The problem is that now the user must have read/write access to the entire repository tree. When using a local socket connection (or one over ssh via a normal tunnel), the Subclipse client connects directly to the svnserve process running on the repository box, and interactions with the server happen under that processes ownership.

The svn+ssh protocol does not use the svnserver on the target machine. It tunnels the command to a user-invoked svnserve process, and that process must have read-write access to the repository.

"Well gosh, that doesn't seem too bad. What's the issue?"

The issue is that to make this methodology work, I have to give the user read/write access to the repository tree. Meaning, they could happily type 'rm -rf /var/lib/svn' and destroy the entire repository. Even worse, the configuration files (including the password / access file, which has passwords in plaintext) must be made available to the general users.

Why svn+ssh doesn't simply make a local socket connection to the svnserve process already running, I don't know. But I can find no way to make that happen.

The fix?
As far as I can tell, there really is no direct fix for this. There are various workarounds, which the SVN documentation discusses, including setting up an 'svn user' for the svn+ssh logins, and the possibility of using unix groups for permissions, but I feel that if you have a listening socket server on your repository host, you should use it, not introduce a second methodology and have to jump through hoops to implement it.

For now, I have to abandon the svn+ssh possibility, and go back to my hand-configured socket tunnels. There's no real loss here - they work remarkably well, are very secure, and quite stable. The slight annoyance of having to open up a SecureCRT session before doing work in Eclipse is just that - a slight annoyance. I've dealt up until now, and I'll just continue to deal.


Jabber: I return to the fold.

| 1 Comment

Quite a while back, I was a fairly avid user of Jabber, the XML based open source messaging system. This was mostly during the Yahoo / MSN / AIM / ICQ 'instant messaging' wars, where each company was trying to push their own system for the hearts and keyboards of the world.

It turned out apparently that marketshare in messaging really wasn't the panacea they had all hoped it was, and the "YOU VILL USE OUR MESSAGE SYZTEM, AND YOU VILL LIHK IT!" approach many of the vendors were pushing has taken a back seat to other business models, like, say, making a good product.

I had no real need for a strong IM platform for a few years, as most of my communication was either done in e-mail or over IRC, but recently I've been spending a fair amount of time in IM with a my client down in New Jersey. As they are primarily a Microsoft shop, they naturally opted for Windows Live Messenger. With a somewhat heavy heart, I installed the Messenger client, and started using it fairly regularly.

In short, it sucks. First, Microsoft seems to be in this model of "Oh, we realize that the Windows interface is butt ugly, so we'll redo the interface again, in sort of a hacked up interface-inside-an-interface model." I first saw this with the Windows Media Player, which has an infuriatingly obtuse interface, while it tries to be 'super-hip'. WLM is just as bad, but it tries to be an effective business tool (shared whiteboards, VOIP, etc) while also trying to be something kids want to play with (online games, cute icons and sounds, etc). The resulting mishmash makes me feel like I'm trying to do business over a speak n spell.

It was time to go back and see if I could use the MSN network, which my customer was wedded to, with a client that didn't suck. A few years ago, this was problematic, as the various IM providers were occasionally blocking certain servers from connecting. (AIM is in fact still doing this for the big public Jabber servers, and Yahoo has a long history of actively blocking non-Yahoo clients.) Recently, the IM providers have backed off their rabid territorialism, and third party clients are easier to work with.

I once again considered multi-protocol clients such as Trillian and GAIM, but to me they solve the problem the wrong way. They make one piece of software that can talk all the different server protocols. Jabber does it differently. It's up to the SERVER to connect to all the providers. You just need to run one client that talks Jabber, and the server does the rest.

My Jabber server has been running without maintenance for over a year, and I was using it occasionally for Yahoo and AIM connections, but now I needed to make the MSN gateway active as well. Fortunately, it was just a matter of apt-getting the msn gateway tools, and enabling it in the server configuration.

Now I'm back - I have a single Jabber client (at the moment I'm using Exodus, which IMHO is the best Jabber client on Windows), and it is happily showing me contacts from MSN, Yahoo, AIM, and Jabber. My old contact lists happily repopulated (they're stored on the server, not on the client), and off I go.

It's been pleasant to note that other services are coming onto the Jabber network, including Google Talk (A jabber system), and LJ Chat for the Livejournal folks - also Jabber.

And, as I type this note, I'm getting messages from the MSN-based folks I mentioned earlier, and Exodus is happily showing them as simple Jabber messages. Joy!

Are you on a Jabber network? Say hi! My Jabber ID (JID) is 'dbs@jabber.stonekeep.com'.


Keystone 0.90.20 released!

| No Comments

After spending a ton of time hacking on Keystone, I decided to drop a new release. Info on it is on the new page at Stonekeep.com.

I'm really looking for bug and stress testers. If you've used ticketing systems before, and want to run Keystone through and open up bugs and issues, I'd love to have your help. Let me know!


All hail USB rechargers!

| 1 Comment

Gosh, the fellow who figured out that USB devices had enough oomph on the bus to recharge the plethora of mobile geek devices we carry around should get some sort of award. With these gadgets, I've lowered the number of small chargers and other hardware I need to haul around with me when travelling. Here's a couple basics...

My bluetooth headphones have a small Mini-B style plug where the microphone normally plugs in. Pop out the mic, and plug in your Type-A to Mini-B cable in, and voila! It recharges! Conveniently, this cable is the same one I use to download images from my Olympus C770 camera, so there's the first 'combination of functions' solution.

By far the most useful item is charge and sync cable for my Treo. First, it allows hot-syncing between the Treo and clipper. I'm forever losing sync cables and getting lost in the maze of wiring on my desk. This cable not only syncs, but it -retracts- into a the size of a keyfob. No tangling! It lives happily in my backpack pocket. That alone would be handy, but it also charges the Treo from the USB port. Yep, no more carrying another charger around, I just need this one cable. Hooray! As I type, the Treo is sitting on the desk next to me happily vampiring off some of clippers' spare wattage.

What am I missing? Not a lot. I'd like a decent USB based charger for the battery in my camera, but that is probably not too likely, alas. As it is, I've been able to limit my power supply portage to just the laptop brick, which is fine by me. Besides, on cold nights, that brick makes a dandy foot warmer.


Redhat geekery and, of course, swag!

| 1 Comment

Photo_120706_001Got to attend a Redhat presentation today on virtualization. They were pushing a lot of very interesting stuff, and while the marketing drivel was in fact kept to a minimum, they did pitch RHEL5 pretty hard, as well as their relationship with Intel.

Of course, the important stuff is the SWAG! Today's haul was a 256meg stainless pen drive - all in all, one of the better bits I've seen at presentations. It's stocked with all the presentation data, so that's nice, and it's sort of pretty.

I have to admit, part of the goal of this was successful with me. The stuff going on with Xen and RHEL is pretty impressive, including cluster management and 'paravirtualization' (basically environments that realize they're virtualized, and can be managed easily via standard API's). Moving forward on platform design for my clients and for my own hosting stuff, I'll take RHEL into serious consideration (and not just because they said at the meeting here that RHEL5 will be Yum based, not up2date).

The drawback is that the Xen stuff doesn't really support Windows as virtual guests. For that I'll need to focus on VMware. (The other option is naturally Microsoft Virtual Whatever, which, in my experience, has been frighteningly unstable and buggy. I can't boot my Kubuntu CD into it (installation locks up), and I've had serious keyboard issues even trying to configure the installer. I'll hold off on a full rant against this until I've tried vmware, but at the moment, I'm unimpressed with Virtual PC.


Can lightning strike twice?

| No Comments

About 10 years ago, I started writing an application that would have a profound impact on my life. Keystone started out a simple problem tracker, grew into a mature product that was getting 3000+ downloads everytime I did an update (about once every 3 months), and was ultimately sold to a DotCom that basically killed it in its tracks. That sale let me have a few toys and was a high point of the dotcom bubble for me.

3 years ago I re-aquired the rights to the application from the failed dotcom, and set about upgrading the vastly outdated software. My user base had for the most part wandered away to other applications, but there was still interest and heck, it was my application, I wanted to do things with it.

But other projects were taking precedence, and Keystone languished.

On a recent trip down to DC, I had the opportunity to spend 7 uninterrupted hours on the train, each direction, with nothing but a laptop and a music library to keep me company. After trying to get my current projects working, I settled back into "well, maybe I'll work on Keystone some more."

In those 2 train rides, I did more upgrading, tinkering, and fixing in Keystone than I've done in the last 3 years. I revived the contact manager and fixed all the dependency problems. I continued the changes needed to bring a PHP application, written in 1995, up to 2006 standards. Keystone is over 12,000 lines of code - not a trivial application, but not so huge that it is an unassailable target.

The question is - why do this? Sure, part of it is 'this is my baby, I want to see it succeed', but in the back of my head, the question burbles... "Can lightning strike twice?" - can I make this a successful opensource application again?

I'm certainly not deluding myself into thinking "THIS WILL BE THE NEXT KILLER APP!" - that's a foolish and unrealistic mindset. But can I bring it back to where people are using it, they like it, they contribute suggestions and fixes, and the application continues to grow?

I'd like to think I can. But the code still needs a lot of work, and there are some design decisions that will most likely require huge chunks of code being ripped out at the roots (database connection methodology has advanced SIGNIFICANTLY since 1995).

It's a nice dream, I sort of miss my users. Maybe they'll come back.


Travels

| 3 Comments

What is it about New Jersey? Here I am, back again, this time for more than just visiting a client. It's been almost a week since I've been home, and it begins to wear. But enough of the that, let's see what's been going on.

Ubercon

First of all, there was Ubercon. This is the 8th event I've done for them, starting with our snowbound adventures in the beginning of 2003. Many of the original folks who were at that event still come to the con, both as staff and as attendees. It's settled into a close community of gamers, focusing on what they love most - Gaming. Sure there's the smattering of costuming, artists, and movies, but the vast majority of the people there are there to play games. Board games, card games, miniatures, LAN games... 24 hrs a day for 3 days, gaming gaming gaming. Ubercon was the first place I ever played Settlers of Catan and Icehouse, was my first exposure to Unreal Tournament, and was the place I first saw Guitar Hero.

All in all the event went fine. With help from blk, we worked all the hours necessary, got at least one nice dinner out, and generally had an enjoyable time. Once again the Myth box was on prominent display, and many games of DigDug, Contra and SmashTV were played. I think there's a future in making the machine easier to work with - console buttons for coin drops, player starts, and an easier selection mechanism. I would have liked to have left the machine alone and had people come up to play it more often, but alas, it was too prone to twitchy behavior and random joystick resets.

More work

Of course, Ubercon came to an end, and I had to go on to the next reason I'm here. My work for this client is coming along fine, with development proceeding apace. Nothing really riveting to tell here, but when away from the convention and spending a lot of time on my own, I get a chance to think about being here, and to write down some of the things I see...

I present to you my NJ ponderings...

Pizza

What's that you say? Pizza? Boston has plenty of pizza! What's your problem? Hah, I say. Boston has a mere shadow of proper cheesey goodness. NJ is home to the thin-crust style pizza. None of the heavy crust, grease laden horrors that populate the Beantown. Here, any pizzaria has decent thincrust pizza. I frequent my favorite spot every day for lunch, trying to get my fill. In my youth, when I lived in Trenton, a certain pizzaria saw me every day or every other day for dinner. I was quite the regular, and gained a reputation for '4 slices!' - after which I'd happily park myself in a booth and read half a book in the space of 2 hours. Such was my social life.

Oddly, when I brought up my pizza fascination with one of the fellows at my clients' office, he pointed out that Boston does indeed have a source of thincrust pizza. Papa Gino's. In the interest of full disclosure, I do in fact eat there on occasion, but sadly, it can't compete with small-shop pizza in the garden state.

Fuddruckers

Only recently did I find out this chain is more widespread than I had realized. Around 1993 I found a Fuddruckers near Edison when I was working for Unipress Software as a sysadmin. We'd make regular forays out for half pound ground beef burgers. Not sure exactly what made them so tasty, but they were sure good eatins. This trip I scheduled my drive from Ubercon down to Princeton to give me time to stop by that particularly restaurant on Route 1, and it was as tasty as I remember it. Delish.

Dunkin Donuts or lack thereof

The great DunkinDonuts epidemic hasn't quite reached New Jersey yet. This has thrown off much of my morning routine, as given any opportunity, I'll happily get a DD coffee and a bagel for breakfast (or lunch, or dinner, or a snack or...). In Boston, DDs are like mileposts. You can actually navigate by them ("Yeah, go down 3 DD's, turn right, up 4 DD's, and we're on the left.") Here? Not so much. I've found only one within a 10 mile radius of my hotel, and alas, it's on the opposite side of the office. Sad.

The dichotomy of the state

New Jersey is a study in contrasts in many ways. Noting that I did in fact grow up here, my view of the state has always been somewhat bucolic. I grew up on a horse farm in a very rural area. Cows, horses, etc were the normal views, and getting around on trailbikes and snowmobiles was the norm. We could wander for miles in streams and woods exploring in any direction, just avoiding houses every once in a while. The first leg of this trip was spent in Secaucus, near Giants Stadium. There are fewer places displaying a harsher contrast against the locale of my youth than Secaucus. Perhaps Elizabeth (those who are familiar with the area will know Elizabeth by it's high refinery - to - human ratio). After 4 days there, coming down to the Princeton area was a rather dramatic change. Here in Princeton, fall is in full swing. It is cool, breezy, the leaves are bright yellows and oranges, and there's just a hint of winter coming. Such a contrast to the industrial squalor of Secaucus.

ETS

My arrangements in the Princeton area are usually set up for the Chauncey Conference Center, part of the Educational Testing Service, or ETS. I'm sure not a few readers frowned at the mention of ETS, as this company is the originator of the SATs, the bane of many a high school college-student-hopeful. At the moment, I'm sitting in the Chauncey Conference Center lounge, in front of a lovely fire in a natural stone fireplace, in a large comfortable leather chair. Over the fireplace is a portrait of man in his early 60s, holding a pipe, with a loose, comfortable smile. This man is Henry Chauncey, the founder of ETS way back in the day.

Why is this of note? When my family moved from Long Island to New Jersey when I was about 6, we rented a house in Ringoes, NJ, about 8 miles from here, for a little over a year. During that time, I got to be friends with our neighbor and his family. He had a daughter named Sarah who was just my age, and another daughter. His wife I remember only fleetingly - I know she died around that time from cancer, but I don't know if it was during the time I was around. The fathers picture now is in front of me above the fireplace.

I spent a lot of time in the Chauncey household - Sarah and I had a lot of fun playing and just enjoying having a friend right next door. Mr. Chauncey (as I knew him) was always kind and had a lovely rolling voice. My memories of him were of a quiet, gentle man with a strong voice and the omnipresent smell of pipesmoke. His office was the epitomal intellectual / businessman's home office. Heavy panelling, books books books in floor to ceiling shelves, a huge desk with a fantastic leather chair behind it, and of course, his pipes.

One particular memory I have of being at his house was spending time in the fields around the house, riding on this wonderful machine he had. A late 1940's Ford 8N tractor. My first experience with these wonderful machines was sitting in his lap as he taught me to drive, and told me that keeping my foot on the clutch pedal was a bad idea "Nope, don't do that, that's called riding the clutch."

It's odd now sitting in front of his painting, enjoying some of what he helped build. I kept in touch with his daughter Sarah off and on over the years, and as I understand it, Mr. Chauncey lived late into his 90s, still active and travelling around the world with his daughter. I understand he finally passed away sometime around 1995.


Ubercon Time!

| 1 Comment

It's that time of year again. Next week I'll be heading down to Ubercon for our bi-yearly gaming geekfest.

I've been doing this event from the beginning, and have had a ball every time. Lots of great gaming (card, board, and LAN), and great folks to hang out with. If you like tabletop gaming, LAN gaming, console gaming, or just geek-gaming-hangingout, this is the place to be.

I credit Ubercon for getting me into DDR, Unreal Tournament, and Settlers. It was the first (and in reality only) place I've played Guitar Hero.

Hope to see folks there!


An old programmer...

| 2 Comments

... can learn new tricks?

As part of my current contract, my employers are embracing new procedures and techniques for application development. While the normal buzzwords of "EXTREME PROGRAMMING" and "Agile Development" are being bandied about, they're not being whole-hog embraced, with the managers marching zombie-like into an undeliverable product schedule. We're trying new techniques such as scrum product development, and utlitizing sprints to structure short-term deliverables and milestones.

Since I got the core of my production programming experience with this same company almost 18 years ago, when there were only 3 employees, me being number 3, I find it fascinating to see the same programmers trying new tacks to take on the complexity of developing modern code.

In the Good Old days, our entire code base was perhaps 80,000 lines. One developer easily understood every aspect of the application, and could comfortably keep up with customer and internal needs. The current codebase is over a million lines and growing, and no one programmer understands it all. This is not a disaster story, it is one companies' normal evolution as they grow and expand. In this case, they have lucked out to have a person in charge who is not only a brilliant programmer, but also an open-minded manager and a good communicator. He recognized the pitfalls of 20 years of development on his product line, and is making careful, planned, and deliberate changes to the company's development methodology.

Of course, the panic element for this is... the changes being applied involve shifting their platform onto a framework I designed for them over the last 18 months. No pressure, really. It's only the future of this company and it's 20-some odd employees, not to mention the respect and 20 years good will of the owner. The same owner who gave a young programmer his first production development position.


Seen on Craigslist...

| 6 Comments

From the job postings group:

Sr. Web Developer - "Open Source Guru"
For consideration please send resume in Word format.


Barcamp Boston! June 3-4, Maynard

| No Comments

Looks like I'll be doing registration work for Barcamp Boston at Monster.com's offices in Maynard. BarCamp is an un-conference - a sort of on the fly get together for geeks to talk about geeky stuff and hang out. Sounds like fun, and sounds like an opportunity to talk about CONGO to an appreciative audience.

This is a pretty low-key event, but if you have something you like to present, or just want to come by and help with reg and yammer about various linux-y things, cmon down!


Travelling in Style

| 2 Comments

This week I'm on the road to scenic Pittsburgh for a few days. While there are various wonderful aspects of this trip, there is also the bonus of being to test out various geeky projects that have been percolating around.


One of the functions of my blogging software is to keep an eye on who is posting comments to the blog, and where they come from. Over the last few months, I've been seeing several posts of this variety showing up, always pointing to Fox News, and having -nothing- to do with the topic being replied to.

A new comment has been posted on your blog Planet Geek!, on entry #2674 (10 Years Ago...).

View this comment: 

IP Address: 206.15.101.61
Name: defwjkd
Email Address: wdve@aol.com
URL: 
Comments:

<A HREF="http://www.foxnews.com/story/0,2933,193083,00.html">Zarqawi: 
'What Is Coming Is Even Worse'</A>

this is so scary - cannot believe this...

This is obviously spam, something bloggers are well used to (we use various measures to block spammers). Blogspam's purpose is to raise the google ranking of the target site by providing more links to it. It's somewhat the bane of bloggers in general, though most blog software has decent countermeasures, but traditionally, these types of spam were promoting sex enhancement drugs (real or fake), or the like. However in this case, it's a known, established, and high profile business. Fox news.

I can't think of any legitimate reason a comment like this would be posted to my blog. I'm assuming Fox has hired some marketing company to up their news ranking, and the marketing company is resorting to blogspam to accomplish their goal. Heads up, Fox, this is not the way to do business, and will get your site banned from commentary pretty quickly.


Nifty posting on software development

| No Comments

Came across this nifty posting about software development evolution. It's a very good rundown of how a software project should be run when it involves a team doing various roles (as opposed to 'just a couple developers'). The graphic is particularly amusing.


Microsoft in a nutshell.

| No Comments

While working with a client in the first stages of abandoning a tightly coupled Microsoft environment for a Java based one, the following phrase was uttered:

"MIcrosoft is like a girlfriend that makes it impossible to break up with. You think you're free, but you're not because she still has all your cd's."

I do like working with these folks.


Which Thinkpad?

| 2 Comments

So I've been given the Okie Dokey to upgrade my laptop (featured here) to something with more memory and a faster CPU. The current machine is a T40 (1.2ghz, 768meg, 40gig). (although, for some mysterious reason, /proc/cpuinfo -always- says:

model name      : Intel(R) Pentium(R) M processor 1400MHz
stepping        : 5
cpu MHz         : 598.174

even though I've disabled all speedstep stuff in the bios.

ANYWAY. I need More. Running eclipse, jboss, firefox, evolution, and apache, plus most likely an Oracle instance means I need at least 2 gig of memory on the machine.

I'm totally confused by the Thinkpad lineup nowadays. I think what I want is a T43 maxed out on memory, but maybe I'm wrong? The only other thing I definately need is 1400x1200 on the laptop screen. I do enough work on the machine itself that 1024x768 is -right- out as a workable resolution.

Anyone care to untangle the mess that is the Thinkpad line for me? My requirements are:

  • 1.8ghz or faster
  • 2 gig of memory (I can start with 1 gig and upgrade later)
  • at least 40 gig of disk
  • 15" display
  • On-screen resolution of 1400x1050

Help?


Rod Trip

| 2 Comments

There's something surrel bout being stuck in New Jersey with lptop tht hs broken 'a' key. (tht ws done, by the wy, by cut nd pste with the mouse.). Time to browse eBy nd try nd find replcement I think. (IBM Thinkpd T40).


Most marketable tech skills?

| 7 Comments

So while working with some other geeks this afternoon, the subject of Ruby on Rails came up. I've heard good things about it, but I voiced my skepticism about shelving my current workcycle (in Java) and learning Yet Another Language. I mean, how many folks can be looking for Ruby programmers nowadays?

Well. Gee. How many are looking? Good question!

So off to Dice, one of the better job / tech search boards out there, and I did a little keyword searching. The summary of what I found isn't all that surprising, but still interesting...

Sampling 75,117 entries...

Keyword... Number of matches...
Java: 12210
C: 8235
C++: 6828
Basic: 6369
Perl: 3718
C#: 3516
Cobol: 1177
PHP: 639
Python: 383
awk: 138
REXX: 72
Ruby: 40
Pascal: 27
Lisp: 24

Interesting. How about platforms?

Keyword... Number of matches...
Windows: 10753
Unix: 11474
Linux: 4859
Mac: 461
VMS: 275

So apparently being a Java programmer on Windows is the way to go :)


Content Managers for generic websites?

| 2 Comments | 1 TrackBack

I've sort of fallen into a task where I need to set up a website for a small group of people. The site will be used for general marketing, schedule information, and as a resource the group will use to pick up materials and information to share between themselves.

As someone who has been pretty active in the Content Management arena, I'm finding myself stymied at how difficult it is to find a simple web-based content management solution that will allow other users in the group (a limited number - onlye 1-2 other technical folks) to maintain the site.

We already know we'll use a Wiki for the 'internal community' aspects - we're doing this now - it's allowing uploading, downloading, content editing, etc. But using a wiki to drive the main site seems... out of sorts. Wikis are not made for general-consumption-by-the-public websites.

So I'm looking around. I haven't found what I'm looking for yet, but I'd like to hear from other folks what they'd recommend.

What I've looked at so far, and my feelings on each, follows...


Computin in da Field

Things are settling down a bit around Chez Geek, and I'm starting to get back into the rhythm of working on my laptop full time. Life things being as they are, it makes sense to really keep an eye on where in the area I can find to telecommute. This is more of a challenge than you might think. Not many businesses are comfortable with you just plopping down in their space and sitting for 4-6 hours straight.

Despite that, though, there are a few places that encourage this, or even invite it. Since today I was hanging around Waltham, MA, I decided to see what I could find in the area.

First step, since it was lunchtime, was the local Wendys. Surprisingly, I've had very good luck finding open WiFi access points around Wendy's restaurants - I guess they just sort of invite the open-no-wep-key types to their locale. Today I found 7 (!) accesspoints in range, and easily connected up to one to keep in touch through lunch and a bit after. Alas, Wendy's dining room chairs really aren't that comfortable, so I decided to move on.

I had stopped by the Charles River Public Internet Center once before, but it was unfortunately closed at that time. This time the door was open, but the public area was being worked on, so I couldn't sit down. These folks seem awfully nice, and I think I'll explore doing more formal "Come here and work for a day" arrangements with them. The woman at the front desk was nice enough to point out a local coffee shop that had open WiFi, and was within walking distance, so off I went.

I ended up at "Cafe on the Common" (oddly, no website), right in the center of Waltham on Moody street. There was one other laptop-a-holic when I got there, so I settled into a comfy table, got a big bowl of coffee, and settled in to work. The net connection was a little bit twitchy, but I was able to get 2-3 hours of work in, whilst listening to lovely music.

I'm going to keep exploring other good spots around the area. Finding something a little further west would be nice, since I'll be commuting to Sudbury Valley School for picking up Z when the school year starts - be nice to have someplace within striking distance of that.


Claimit and Domains

| 4 Comments

Over the last few days, other people have started to use Claimit for managing giveaways. There's a potential for this thing to pick up steam, and I need to do some more work on the code, but in the meantime I thought it might be nice to actually register a domain for it.

Twiddling whois, I see that 'claimit.com' is registered, but the associated 'www' site doesn't have the standard 'Buy this domain!' crud all over it. So I fire off mail to the domain tech contact asking if they'd like to sell the domain.

I get a quick response (nice), saying "I have to check with my partners, but note it won't be cheap." Folks are STILL trying to cash in on this noise, huh? I sent back a very terse letter saying I don't endorse profiteering from domain squatting, and went back to whois.

Well, lookee. 'claimit.net' is not registered. I'll take that instead.

The next question was which registrar to use. Unfortunately, my recent experience with Register.com has been poor to disasterous (2 weeks to resolve a broken address pointer in their database), and their pricing scheme ain't so hot either. So I decided to try Yahoo! Domains for this one. The process was truly slick, costing me $9.95 to reserve the domain complete with A and MX records hosted on their servers. I set up a forwarder so that hits to www.claimit.net will be redirected to claimit.stonekeep.com, and sat down to wait to see how long it'll take to go into the master nameservers, and for DNS to propogate.

Answer: 23 minutes.

I've never brought up a new domain that fast before. Amazing. Stick that in your smoke and pipe it, mister domain squatter.


Flight to Tampa. Song Airlines Cool

| 1 Comment | 1 TrackBack

I'm in Tampa working a convention this week. Since this was a "I pay for everything" trip, I booked a flight on the cheapest airline I could find, which ended up being Song Airlines (apparently the 'cheapo' side of Delta). $170 round trip from Logan to Tampa. Not too shabby.

What I didn't count on was the entirely pleasant experience of it all. Song has a great checkin system at Logan. I was initially dismayed at the horrifically long line at the Delta desk, then I glanced over and saw the 'Song Checkin Kiosk'. The kiosks were great, and after asking for my credit card (which they siad on screen they were using only to get my name - a neat trick I thought), my reservation came up just fine. I was able to reassign my seat to an exit row right on the screen, and off I went to drop my bags in for checked baggage.

All that done, I had an hour to kill before my plane departed, and after playing Spaceward Ho for a while (a great little game for the Palm), I was able to board, only to find that my seat, which was labelled as an exit row... wasn't an exit row.

The attendants were very pleasant, checked the bookings, and said "Try 16A, that row isn't booked." "Thanks!" and I plunked myself down.

The first thing I noticed was that all the airline seats had a little display in the back of the headrest, facing the person behind. I'd seen something similar before - usually it's for showing in-flight movies or the like, but this seemed a little more robust. It was just idling while we were at the gate, but after takeoff, the system powered up and I was presented with... a menu system! It was a touchscreen. Well okay!

It turns out this is a Linux based in flight entertainment / media system that Song airlines installed in all their 757's. You can build your own MP3 music list from their library (which was okay - I listened to Eurythmics Greatest Hits, Purple Rain, and Depeche Mode while I was doing some coding). There's also a great scrolling display showing the position of the plane on the trip, but that wasn't the coolest part.

In the menus, there's a 'Games' section. Okay, why not. Wait. A trivia game. No, A NETWORKED trivia game! Holy cats! You can play the trivia game against other people in the plane. When you start it up, it asks you for a name to use in the score list (I typed 'GEEK' on the little keyboard that came up), and voila, you're in. The games are 20 questions long, and scores are kept for the game and for the entire flight. Your seat number is shown as well, so you can get an idea where the people you're playing against are sitting on the plane. The top player for a while was someone named BOSOX in seat 1A. I suspect it was the pilot. :)

This game definately made the 3 hour flight go very quickly - it was interesting hearing folks all around going "Ohhhhh! Michael Jackson did that? Huh!" when a question came up that folks were guessing on (Who collaborated with Paul McCartney on 'The Girl is Mine'?), and then seeing everyone getting the easy ones right ("Spock, from Star Trek, came from what planet?"). You're scored based on how fast you answer - if you answer right off the bad, 500 points. As you think about it, the score drops down eventually to 50, then 0.

The system also had movies on demand, basic television, and other goodies. It's great to see such an outstanding system on a 'bargain' airline.


eCost - no longer a partner of mine.

| 3 Comments

It's a wonder these companies can function at all.

I have a convention in Florida this week, and to make things a little smoother, I was planning on having a pair of flat screen monitors shipped to the hotel. It was time for some upgrades to my home systems anyway, so a pair of new monitors would come in handy.

I got a call back from eCost saying "Sorry, we don't ship to hotels." (this a good 5 hours after I placed the order - so this conversation started at 8:05pm. I get on a plane tomorrow morning at 10am).

"Why not?" "It's not our policy." "But I'm going to be there, just ship it." "It's not a valid shipping address." "Why not?" "It's not on your credit card." "So?" "So we can't ship to it."

*pause* *deep breath a few times*

"Okay, so how can we solve this?" "You have to add this address to your credit card." "WHAT?" "Yessir." "I'm not going to do that, this is a one off shipment." "That's our policy sir." "I'd love to see that in writing." "Sir?" "Never mind. I'm a guest at that hotel, I arrive tomorrow night." "Then we can use a signed letter from the manager of the hotel stating that you're a guest there. It has to be on the hotel letterhead." "You're joking! It's 8:30 at night, there's no way we're going to get that in time for this shipment. Why don't you just call them? Want the number?" "No sir, I ahve it." "Good, call them, I'll wait."

*10 minute on hold*

"Sir, they won't verify you're a guest there, since it's just a reservation, you're not there yet." "Oh for petes sake. This is absurd. Who are you trying to protect here?" "We're trying to prevent fraud and stealing sir, we've had problems with hotels before." "And who are you trying to protect?" "Us, from being stolen from" "Okay, listen carefully..."

(by this time, btw, we've escalated to the 'supervisor', which I suspect wasn't a supervisor at all, someone in billing) ... "Listen carefully. The only person you're protecting is me. You don't want someone using 'my' credit card to ship items and have them stolen. I'm the owner of the card, I authorize you to ship it. Ship it please." "Yes sir, as long as you update your credit card with the appropriate information" "I'm not going to alter my credit card information for a one off purchase." "That's our policy sir." "If tha'ts your policy, why did you change it 3 times in the last half hour?" "..." "I'll put this bluntly. Unless you take me, an existing, well established customer of yours, and help me solve this problem, I'm cancelling this $600 order, and never doing business with you again." "We will help you, sir, but you have to do something for us. Alter your credit card information." (this really got my goat. Quid pro quo? WTF?).

"Fine. If you won't make this order work for me." "You jsut need to alter your credit card sir" "No." "That is, of course, your choice." "Fine. Cancel this order. I want a mail within 1/2 hour confirming that this order is cancelled, and there will be nothing billed to my account." "You will have that sir."

And that's the end of my business relationship with eCost. I'd council others to take this story into account when doing any business with these folks. It's now 25 minutes after that conversation, and I still have not gotten the mail. We'll see.

Update I just got a message from the 'Credit Card Processing' group at eCost saying she has 'removed the authorization' for this transaction. I've specifically asked for the section of their policy where they state they will ship only to a hotel when getting a signed letter from the hotel manager on letterhead.


'claimit' updated.

| 2 Comments | 3 TrackBacks

I threw together a tool last year to help with big giveaways on Freecycle-like mailing lists like Craigslist and, on a far smaller scale, Greaterboston-Reuse. The problem was dealing with large lists of things, and who gets what, and if stuff is still available or not, and the inevitable long exchanges of emails about where things are, if such and such is around, and can you hold on to something for me...

Enter Claimit, where I've been postings piles of things we're giving away as we get ready to move out of this house. I just did a code update of it, adding some new functionality and cleaning up some rough edges, but so far it's helped us manage dozens of items being given away, out of lists of a few hundred, and more are going up each day.

It's been a good test of the concept, and while it's not quite ready for the volume of traffic Craigslist would generate, it's slowly maturing into a great little tool.

(And, if you're -in- the Boston area, and want any of the stuff we're giving away, feel free to check it out :)


dbVisualizer 4.3 released

One of the finest general purpose database access tools, dbVisualizer has been updated to version 4.3. A full release announcement including new features is available on Minq Software's website.

I've been using dbVisualizer for the last year or two for accessing MySQL, Oracle, and Hypersonic database instances. It's cross-platform functionality, rich user interface, and excellent price-point (free for evaluation version, $99 for 3 licenses that enable some of the more advanced functions) has made it my primary choice for a database client.

I should be doing a review of the new version shortly.


How not to do business.

| 6 Comments

I just got spammed by someone using LinkedIn. I'm really getting tired of these things. I don't like LinkedIn or any of the other 'contact management' sites. I have no idea who this guy is, or what his business is, so I visited his site (which I sussed out of his email address - the automated spam from LinkedIn had no contextual information, like, oh, who this idjit was).

His site was one big flash animation with music. That was the last straw. So I wrote him back. Thought I'd share this with the general populace. If you use LinkedIn or other websites that force me to log in to it to give you my contact information - don't spam me with requests for me to update it for you.

First of all, who -are- you?

And while I'm replying, a few comments...

Your webpage is incredibly annoying. Flash animation and music on a
home page is a mark of someone fairly out of touch with technology and
actual implementation. By making Flash your default page view, you've
immediately alienated many users who may go to your site curious about
who are are and what you do. It certainly dissuaded me from doing any
further navigation on your site. When that music started blaring in on
my desktop speakers, I simply closed the window.

If you'd like to show off your prowess in website technologies, design a
site that is portable, well laid out, and useful. Do not play music. I
didn't come to your site to dance a jig to your catchy little tune. I
came for information, not entertainment.

Furthermore, Linkedin is simply a mechanism for collecting email
addresses in someone elses database. If you have interest in doing
business with me, then ask me. Don't ask some automated service to spam
me with a request to log into their site and give -them- my information
so you can update your address book.

I don't expect this guy to Get It, but heck, at least I tried.

Update, an hour later
I got a reply back, arguing that LinkedIn is not a spammer (I don't know how how else to define a service that sends me commercial email asking me to log into it and give it personal information, even though I did not ask for said services. The fact that someone else asked for it to do this makes it even worse). But the tone was pleasant, and they did include a vCard... which was linked to Plaxo. Another personal-information-archiving website.

Sigh.


I'm considering replacing my el cheapo 1 watt FRS radios that I use for conventions and shows. They've been okay, and 2 years ago they were fine, but the headsets are terrible, and they don't have enough 'oomph' to carry beyond a couple hundred feet, particularly in hotel buildings.

I've noticed that Midland Radio now has a full 5 watt GMRS radio (they're marketing it as '14 mile', which is fine, as they say, across open water or perhaps chatting on a playa somewhere *grin*.

Anyway, they also have a very nice set of headphoens - including a 'behind the head' headset, which sounds perfect for extended wear (the 'in the ear' units for me get uncomfortable after an hour or two).

They also have a 'stealth' clear plastic version - just like the secret service uses. If you really want to be talking into your cuffs, this is the setup for you :)

Anyway, thoughts on these? Price on midlandradio for a pair, with chargers, with the cheaper of the headphones is $94.99. I'm seeing them on eBay for around $75 for a pair.


Animeboston Ho!!!

| 1 Comment

I'm gearing up for AnimeBoston, which runs this weekend at the Hynes Convention Center.

This is by far my biggest event, tripling the size of my next biggest event. We're even renting hardware! This is the frist time I can't provide all the equipment needed to make things work, so we're working with Rent-a-PC to get a half dozen flatscreen monitors delivered to the hotel.

We start delivering things to the hotel tomorrow (Wednesday), with setup in the ballroom starting at 9am on Thursday morning. Registration opens at 5pm, and by that time we'll have:

  • 3 Fargo Pro badge printers
  • 6 Operator terminals
  • 3-4 Administrator terminals
  • Server and console
  • Receipt printer for on-site registrations
  • 6-10 Kiosk terminals
  • Network and Power for everything.

Yay events :)


Dayblogging Ubercon - Day 1

| 1 Comment

Today we start our bi-annual Ubercon event. We're up to Ubercon V, so I guess we're an institution now, eh? We're just getting ready to go start setup, reg opens at 2:30, and I have some small code changes and database updates to complete, so we're off to see the.. er... hotel event manager.

I'll try and post some updates as things go along. So far, I set up all the equipment and tested it last night, things are working fine. This was, unfortunately, before 4 of the new Gateway terminals fell off the shelf I was working on. They seem okay, nothing rattling around, but I was not in the mood for powering up my terminals at midnight to watch them smoke, so I just quietly went to bed.

Off to breakfast and setup!

Update - 4:15pm
Aaaaaaaaaand, we're off.

Reg is open, and folks are flowing through okay. We have 4 Gateway terminals running, and 3 kiosk terminals, plus one badge printer. Equipment lossage has been limited to One (1) Gateway DOA, one bad keyboard, and One (1) I-Opener dying. We have another Gateway that's prone to sporadic reboots, so that gets a little annoying. I need to keep the active 'operator' terminals at 4 - 3 just backlogs too easily.

We have a slightly different arrangement with the helpdesk this time. We ran a cable up to the helpdesk / ops desk area, and there's a clued operator at the terminal there. If folks have problems at Reg, we can send them along to the help desk (about 50' away), and they can fix / research / find out hte problem. They can also send a badge print request to the main printer, which is close enough that the folks don't mind coming back over to pick up the badge. There's never a backlog at the printer itself, so it's really just a walkup.

I have some pictures, I'll try and post them during the next lull.


Moving into the next age of geekery.

For quite a while I've been wanting to move into some of the more widely used methods for writing and deploying large-scale apps, particularly in Java. Sun developed a system called J2EE a while back that provides an environment where Java apps can scale to incredibly large installations. Up until now, I haven't had the opportunity to really explore it

I recently started a 4 month project with a company in NJ to explore the feasibility of porting their applications from a Visual Foxpro base into J2EE. This is really a fantastic opportunity. I'm not only helping a great project move into an exciting new environment, but I'm also getting the chance to learn something I've been interested in for ages

One drawback though is that the J2EE environment is huge and fairly complex, and therefore there's not 'one way' to do things. J2EE provides an object-based application server that's designed to let you design and implement virtually any system and do it big. The steps I'm taking now are determining what aspects of this system are appropriate for us to use, and how to use them

This process is not helped by the fact that I don't KNOW J2EE at all. I've never used these technologies myself for my own application development, and I've only brushed up against some of their technologies at a previous job. My work on CONGO used a hyper-simplified version of this concept, so there's a heck of a learning curve here.

I am making progress though. Part of this project really requires the environment to be workable from someone who has traditionally been using Microsoft Visual Studio applications. That means a clean IDE, object editor and browser, etc. Tonight I successfully configured Eclipse to use a plugin to manage the JBoss application server I'm running on my laptop. Following some tutorials, I built and deployed a servlet to the server, and, via an Apache module used to connect Java servlet containers to web servers, I successully ran the servlet, and got those wonderful words... "Hello World".

Seems like a lot of work to get 2 words on the screen, eh? But that's the joy of learning a whole new environment. It doesn't look like much, but it represents a big step down the road to understanding how I (and my client in NJ) may use this system to write and deploy applications. Personally, I'm okay as long as I don't get stuck, and continue moving forward.

This coming week I hope to have enough in place to get a full JSP->Servlet->database process working, so that I'm familiar enough with the environment that I can start looking at designing how things REALLY work inside the appserver


Where's Dave?

| 1 Comment

I'm spending Tuesday through Thursday at Linuxworld Expo in Boston, helping to man the LTSP booth with rest of the folks from the project.

We're going to try and keep a webcam going during the show, feel free to peek in on us and see how things are going. :)


Arisia post-mortem, with pictures!

| 9 Comments

With special thanks to Lisa for the loan of her Sony Cybershot, I have some pictures from running registration at Arisia.

Kiosks!
We learned a lot this weekend. It was the first time we deployed the CONGO Kiosk terminals for at-con registration of attendees. We needed to make some functional changes in the code at the event, but for the most part, it worked pretty well. The Kiosks allowed people who were not pre-registered to enter in their contact / regsitration information themselves, and get a printed receipt. This meant the operators didn't need to re-key all the data into CONGO, and slow down processing. For a first time out, I'm really pleased with the results. There were no disasterous failures (in fact, I can't think of a failure beyond 'we're out of paper'), and folks seemed to like the kiosks, modulo the normal kvetching that's pretty much unavoidable.

Gateway Operator terminals
This was also the first time we used the Gateway terminals for cashier / operator use. This was a HUGE win for the operators, as the terminals are MUCH faster than the iOpeners for general data access and work. Not to mention the fact that when things slowed down, the operators could play games on them :)

Badges!
We ran all badges 'on the fly', meaning that even pre-registered attendees had their badges printed as they showed up. This allowed us to make minor changes to information before we wasted a badge (such as a spelling of a badgename, etc). We had no delays and no problems with the printers. One other thing we did was used blank white badge stock, so we were printing the -entire- badge image on the fly. It was a black 'stippled' image (not grey scale, but 'screened' to look like it was grey), using an image from our artist guest of honor. They came out great! We had to hand-punch the stock before running it through the printer to get the slots on them, but with a pair of new slot punches, that was really no big problem.

Summary
All in all, a very successful event, despite the snowstorm. All the work that went into CONGO in the last 2 months since our previous large event was well worth it, and made the product even better.

Credit where Credit is due
I would like to thank all the folks that made this possible. Without this team of folks volunteering many many many hours of work to the process, we never would have had such a smooth running registration:

Sarah Twichell - Killer answerer-of-email and registrar-on-the-ball. Sarah answered registration requests and paypal registrations within minutes of receiving them. The database was always up to date whenever I needed to find someone.

Lisa Wilson - Database geek extraordinaire. Lisa kept the database sane and was also on the front lines of requests and registrations. We had tons of comp lists, updates, and changes going on, and Lisa helped plow through them all, even though she was 2000 miles away in Colorado!

Jonah Safar - Jonah was one of the people who first took a gamble on CONGO with an event he was helping run. Since then he's been there when I need him for coding, hacks, and general help.

Yonah Schmeidler - Yonah showed up to help with Arisia last year and ended up staying til 4am helping with some database and postscript issues. This year again he helped all through Thursday doing database updates and maintenance just for the heck of it. He also plays a mean FreeCIV :)

Katy (Pancua) - Katy was the badge goddess all through the mayhem on Friday, and helped out all weekend with things that Just Needed To Be Done. She brought a lot of energy to the whole situation, something we all need after spending days in a coat room :)

Ben Cordes - Ben is sort of the unofficial roadie for Stonekeep Consulting. He's worked with me at a ton of events, and not only knows the systems and the processes well, he also knows my quirky management style. Even in spite of that, he keeps coming back for more. This weekend Ben was a great help with setup and maintenance of all the system components, not to mention being a great crowd wrangler.

Catya - I can't leave Cat out of this thanks. She puts up with an awful lot to let me do these events - and I love her dearly for it. Thanks!


A milestone of sorts.

Just on a lark, I decided to figure out how 'big' CONGO had actually gotten. Looking at all the java code, the PHP code, and some HTML (not much, everything is in PHP), my total is just over 20,000 lines of code. This makes this application by far the largest I have ever written (Keystone is about 12,000 lines).

By the way, I'm prepping a set of screenshots of Coconut (the web client for CONGO), as well as a glance at the new template interface that lets folks generate their own registration pages.

Feel free to take a look at the screenshots. There's no commentary at the moment, but it's nice to actually be able to show a bit of what the system is about.


When Applications Go Right

| 1 Comment

There are times when it's cool being a developer. Both Lisa and Sarah are being my sort of beta testers for CONGO, my conference management software. We're using it to manage registration for Arisia. So far things have been pretty smooth, with only one serious "It keeps crashing!" situation.

Since I'm the sole developer of the system, I rarely get to enjoy hearing about other people using and testing the app, so sometimes it gets lonely doing all this cool development without a lot of feedback (the program is not in wide release yet).

A week or two ago I finished adding a "Template" function into CONGO. This lets you set up text templates for things like web forms and email notifications. If anyone has gotten email confirmation from Arisia pre-registration, that was all generated from my templates within CONGO, automatically.

I haven't really told folks much about the templating engine inside CONGO, since I did all the setup for the mail notifications, and just told Sarah and Lisa how to get CONGO to automatically send mail when registering. This afternoon, Lisa sent mail to the registration alias saying she had built a new template, to be used to notify folks asking for babysitting at the event how to arrange it.

This is EXACTLY why I wrote the template editor, documented it the way I did, and put it online, so the registration operators can configure it without having to recode, recompile, or even edit the app. It's all done through the web interface. Lisa did this with no coaching or even a nudge from me. She saw the value of the templates, how to use them, and implemented it without my involvement at all.

This so rocks my world. It not only means it was a useful feature, but it also tells me I did it in a way that someone could use it with minimal documentation, -and- could see its use without being prompted for it. WOW!

There's a slight caveat here. The templates used in CONGO are very similar to how Movable Type, our blogging software, works. But still! Way cool!


Off to Ubercon!

I'm off to Ubercon in New Jersey. This is a great gaming convention that I've been working with for the last few years. LAN gaming, tabletop fun, and a great vendor area. If you're in the area, cmon by!


Tampa!

Ah be here! Arrived on Monday, and have been pretty busy since, so just wanted to drop a few lines to let folks know I'm still kicking about. Having all sorts of network technology problems though. Many of my preparations for road travel didn't pan out, while others did.

My Kyocera 7135 cell is not doing what it's supposed to. I think a call to Verizon is in order, but I can't dial up at -all- with it. So I can't run my ssh client or my web browser on it. Text messages seem to work, but no data services. The 1X light is on, so it's -supposed- to work.

I still can't get my dialup via that phone to work either, but I haven't been trying too hard. Just no time. Maybe out in Reno at Gnomedex i'll have a high enough geek quotient to handle it.

I'm gonna go flop into bed - we need to have reg open by 9am tomorrow, which means I need to be moving equipment by 7:45 or so. Whee.


Hittin da road.

In the next 1/2 hour or so I'm hitting the road on a 2 week business trip that'll take me to Florida, then to Nevada, then back here to boston. This is the busiest time I've had for work on Stonekeep stuff, and while I'm excited and pleased that things are busy, I realize it's going to be an intense trip. Really busy, aggressive, exciting times mixed with times of boredom. Sort of sounds like military service, eh? :)

I'm going to dig around for a Blog client for my Palm phone so maybe I can make blog entries from the road, but otherwise ya'll may have to wait until I get back in service range.

I will, btw, have message capability on the phone, drop me some mail for the address, and I can chitchat while hanging out in the airports.

Tally ho!


Bouncing off the bottom.

| 4 Comments

Boy, that's how I feel. I think that business stuff hit bottom about a month ago, when I wasn't sure if I could continue with things, or how we'd move ahead. Then a some good things started happening, and some of the stuff that has been annoying me and really making it hard to be positive began to change.

It sounds like a little thing, but aquiring new batteries for my laptop was a huge win. My laptop batteries were totally shot, holding onto charge for only about 20 minutes. Considering it takes 7-10 minutes from power on to get to a workable desktop, that doesnt' leave much room for dillydallying.

My business partner found a set of batteries from one of his old laptops, and sent them up, and Lo! I now have 4 1/2 hours of battery time. Yippee! No more -requiring- a power supply to do anything. This, combined with setting up my wireless modem on my Kyocera, should make me Mighty Mobile Power Geek!

Course, last night, I did find out that my laptop 'low power' notification settings were out of wonk, as, in mid-type, the laptop just up and powered itself off, blinking the orange "LOW BATTERY!" light at me accusingly. "Nitwit, didn't you SEE me blinking?"

Anyway, all is well, recharged, and ready to go.

Ain't technology grand?

[Edit: 1:17pm - changed a few words to actually make sense. Sheesh :) ]


Recommendations for PC suppliers?

| 3 Comments

I need to purchase several Shuttle-size PCs, of the 1.5gig or faster variety. I'll need to customize the configuration a bit. I'd like to work with a company that I can trust to handle returns, warranties, etc, so no garage assemblers, please.

Suggestions?


"So Dave, what's new in your life?"

| 3 Comments

I'd count this as a yay.

Stonekeep Closes Deal With Angel Investor.


Fright shipping company?

I need to ship a bunch of equipment all over the country in the next 6 months, going to a couple different places. I need a pointer to a shipping company that's dependable and has good rates (or experiences from folks who have done this).

Total weight is around 300lbs, probably in 5-6 shipping cases. I need transit time to Florida and New Mexico on the order of a couple days (like, a week would be great).

I have almost no experience with freight shippers. Can they drop stuff right off at hotels?


The saga of the laptop

| 3 Comments

Folks know that I've been doing much of my development work on an IBM Thinkpad T23 for quite a while. It's an older machine, (manufactured 3/01), but in many ways I'm quite attached to it.

Yesterday at Diesel Cafe in Davis Square, I was looking forward to a few hours of focused work time.

The laptop wouldn't boot. Just locked up on the BIOS screen. My main work machine had died during a particularly wretched emotional and financial time for me. I was betrayed.

[this story has a happy ending, read on for details]


The new website is ready!

| 1 Comment | 1 TrackBack

After 2 months of development, debugging, and testing, the transition of the Stonekeep web site from static pages to Moveable Type is complete. Special thanks to Lisa for all her work on the new design, and to Razil and Catya for debugging and design suggestions. Also thanks to Pancua for the graphics help.

The new site is available here.


"Wow, nice screensaver."

The most common comment people make while registering at the event. (behind the reg counters is the server stack that runs the app and the database. On top is a rackmount LCD screen that is running... The Matrix screensaver).


Mid-Convention, thoughts.

| 4 Comments

I'm halfway through working AnimeBoston, and here's a few interesting observations.

1) Every hotel I've been to that hosts a convetnion can't handle a large scale registration burst. There's always screamingly long lines, and a lot of annoyed attendees. Hotel, when you book a convention on a weekend, there's going to be a HUGE burst of activity friday afternoon / evening. Prepare for it. Also. Do NOT overbook the hotel. Really.

2) CUPS is a fantastic printing system. When you have mission-critical badge printers in a printer class, pooled, and one of the badge printers shuts down, CUPS simply shunts the load to the second printer until the first one comes online again. Booyah.

3) Sleep is good.

4) 3500 attendees in the Boston Park Plaza is a helluva lot of people.

5) Some cons get things right. These guys have order forms for the staff den. For people who work 12 hour shifts on station, they can fill out a 'dining delivery form' which is basically an order to Staff Den, which a runner picks up, fulfills, and returns to the worker. The form shows everything the staff den has available. You just check off what you want. Neat.

6) FRS radios do NOT work. Go decent GMRS, or go commercial.

7) Using the Stanbro room for line wrangling for Reg is a good idea. Even better is not needing it, and simply moving stanchions to make more room for gaming.

8) It's very good to hear people say "Thi s is running SO much better than last year!" (when they were not running my system)


And on the other side of the desk...

Remember that Thinkpad I just bought? Well, the drive is... well, iffy on it. 20gig 9.5mm laptop drive. It's whining something fierce. A little birdie reminded me that IBM warranties are totally transparent to who owns the laptop. So first checking in on IBM's website, SCORE! It's still under warranty! Off to IBM's tech service, get a human being within 2-3 minutes, and he has me remove the drive, give him the part number, and a replacement drive should be here tomorrow, all free of charge.

Kewl. Once again, my opinion of IBM's laptop division goes up a notch.


Good business news.

| 3 Comments

On Friday I got a verbal agreement from an angel investor who has agreed to finance Stonekeep's operations at least for 6 months. We've agreed on financial arrangements and other details necessary to make this work. This will allow me to focus completely on Stonekeep's client base and systems and build the company up into a self-sufficient business.

I'm hyper-excited about this. I've got great expectations now that I have the opportunity to really build CONGO (and to some extent Keystone) back up into the high end systems I think they can be.

Exciting times ahead!


Opinions on 'adwords'?

| 2 Comments

So it costs bux to host all these websites at Homeport. Our T1 is through Cambridge Bandwidth Consortium (great bunch of guys, lemme know if you're in the Boston area and want Good Bandwidth [tm]).

So how do generate some revenue? First thought is of course advertising. The least noxious of all the adserver networks I've found is Google's AdWords program. (A good example of what pages look like with AdWords ads in them is Google itself - a few snapshots are here.)

Has anyone had experience with these folks, good or bad?

Course, the second possibility is paid hosting, but that market is _so_ crowded now, and the costs are so cutthroat, we'd need tremendous volume just to break even, and we just don't have the time or money (though we do have the physical resources in bandwidth, servers, and infrastructure :)

Curious about all the stuff we host on our line? I'll throw that into the extended link... lotta neat stuff :)


Sunday morning at the con

| 1 Comment

Bright. Glowing thing. In the sky. AIEEEE!

Not enough sleep, but moving along. There were actually people waiting to register when Ben and I got downstairs, though the sun was barely up. Boy, these people need to get lives! Owait...

More post-coffee.


Convention, day 2.

Holy shit there's a lot of people here. Current reg counts are something like 950 registrations, about 780 attendees (which is about right :) . The LAN room is stuffed, their setting up tables in the halls to take up the overflow.


Convention days 0-1

| 3 Comments

Ubercon III is under way! Ben and I got here on Thursday afternoon, and spent most of the day setting up the equipment, meeting hte rest of the crew, and generally testing stuff out. A good first day... however...


Pushing systems to the limit

| 2 Comments | 2 TrackBacks

There's sort of a creed in the technoid world that folks have a tendency to just want faster and faster machinery, even when that is not really warranted. Many people spend zillions of dollars on machines that spend most of their time running screensavers or playing Solitaire.

I'm always keeping an eye on 'am i just wanting new equipment just because it's sexy? or do I really need it'? Well, I think I hit my limit on this laptop.


Ubercon this weekend!


This weekend I'll be doing registration services for Ubercon down in the Meadowlands in NJ. Ben Cordes will be my second for this stint. If you're in the area, or want to get into some seriously groovy gaming, stop by! The last 2 events have been a blast, and judging by registration numbers, this event should be the best yet.

BTW, just to be clear... Ubercon is a customer of mine, I've been working with them from the beginning. They're great people, and I've met some wonderful folks through their events.


Giving a lecture!

I've been invited to give a nice talk on LTSP at the Boston Linux Users group in April. Pretty spiffin. Folks should try and come to it, I love seeding an audience with friends and supporters :)

Here's the actual entry for the talk.


W00t.

| 1 Comment

One of the clients I've been trying to land for Stonekeep just called me and said "the backer is really hot on using your system, can we change a few things and come up with a way to do this?" - and what they're asking for is reasonable.

One more client. And not a free one. Schwing.


Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.23-en

Twitter

Sponsors!

About this Archive

This page is an archive of recent entries in the Business yammerings category.

Chainmail is the next category.

Find recent content on the main index or look in the archives to find all content.