Wednesday, 7 September 2011

Minor bugfix: mousewheel

Dear CardMeeters,

I found and squashed a bug related to mousewheel zoom.

I'm testing a minor bugfix release today. Got some bug reports of the mouse wheel going ape on some mice/device drivers on newer JRE's. I was able to reproduce the bug and am testing out a fix with the latest build.

If the current build causes new issues for you with your mouse wheel or introduces new bugs altogether, please feel free to drop me a line and let me know at: dave@woldrich.com

Cheers,
Dave Woldrich

Posted by davew at 11:48 PM in /

Friday, 24 December 2010

ClubCompy.com - urgently need your help promoting right now

Greetings CardMeeting users,

URGENT: My new website @ https://ClubCompy.com needs your pledges and your publicity to succeed!

Before I begin, two links for you:

  • ClubCompy - Kids [heart] computers! - my new website, dedicated to teaching kids how to program computers.
  • My Kickstarter Campaign - This is my kickstarter campaign. It's a fundraising site, and I need your pledges. But I also need your help blogging and emailing and getting the word out. The campaign ends Wednesday Dec 29, 6:19am EST! Help!

Ok, now a little explanation ... I've hosted CardMeeting for over 4 years now, and in that time I know many of you have found it useful. I always planned to build out a commercial offering that I could sell because what I have for you today is merely a technology demo. But the components I needed to do that build out didn't exist in 2006 or 2007 or 2008. I was dismayed that on a hobby budget I was unable to scale out CardMeeting sufficiently to support a commercial release. I really felt terrible about this, that CardMeeting was not meeting its true potential as a full-fledged product.

Then, in 2008, I began to experiment with JavaScript and HTML5, thinking perhaps I could scratch out a minimalist interface and forego using Java Applets at CardMeeting.com in favor of the <Canvas> tag and JavaScript alone. Maybe taking the tech in a new direction would somehow help me make my dreams possible. Well, I can report that the browser is not capable enough today to do everything I have done with Java, and that kind of technology shift will likely not be possible for another 3-5 years.

However, my experiments revealed something fascinating to me about the capability level of JavaScript and HTML5: I realized that, if I was careful with how I used canvas, and knowing what I know about JavaScript, that the c. 2008 web browsers had enough muscle to simulate an 1980's micro-computer!

I know that sounds silly: that 1-3GHz PC's are reduced to the capabilities of a lowly 1MHz 8-bit computer. But remember, we're talking about web browsers here: just HTML and JavaScript. It's actually quite interesting that a page rendering web browser has advanced so much!

I had it stuck in my head that I could emulate or simulate a computer somehow, with no software to download - just do it all in the web page! It became an obsession. You see how I just disappeared in 2009? That's what I was doing, I was plotting and scheming and coding and experimenting.

Growing up, I cut my teeth on computers using the Commodore 64. I played and made videogames. Actually, I mostly typed in program listings for games from a magazine that my parents subscribed me to. In truth, that magazine taught me the basics of computer programming, and I learned more through my own determination and experimentation. I tell you honestly that I have a good paying job today because of my Commodore 64 and those magazines.

There's nothing like that experience for kids today! How do kids learn to program computers today? Well, ClubCompy is my attempt to vicariously relive the glory days through your kids! I want them to learn the way I did, with a BASIC-like computer language that I developed, called Tasty! It's so fun. I stripped out enough of the arcana that the language is quick enough to pick up. But it's capable enough to write games with and experiment with math, and physics, and computer science. And, most importantly, I will publish a companion magazine to give the kids activities!

As it pertains to CardMeeting, the work I've done at ClubCompy is very promising. To store the kid's files in the cloud, I needed elastic storage. Well, something came along just when I needed it: Apache Cassandra. It is a fascinating open source project that originated at Facebook, and it is totally a disruptive technology. I am building a world-class scalable storage solution for pennies! PENNIES!

So, once I get ClubCompy off the ground, I will retrofit my Cassandra Compute Cluster for CardMeeting, and then you will have the proper enterprise solution you so richly deserve. I will offer a private cluster edition for you to purchase, as well as a cloud-based edition. It will be grand, it will be splendid - and it all kindof hinges on this ClubCompy thing.

I need your help today, think of it as rewarding me for faithfully serving up CardMeeting for free all these years. Pledge something, if you are able. But also, if you can, please blog about ClubCompy, and get on the horn with other parents and sell them on the idea. Finally, ClubCompy is worldwide, so I can ship magazines internationally (if you pick the $62 option at the kickstarter campaign.) If you know people in Europe or Asia that would appreciate some old school computing for their kids - please let them know about this!

The sooner we can get this ClubCompy thing firing on all cylinders, the sooner we can get CardMeeting going strong as well. Many thanks and happy holidays!

Cheers,
Dave Woldrich

P.S. Here are some links for your further reading and enjoyment:
  • Main website - https://clubcompy.com
  • The Real World Benchmark - Link - Demonstrate the real power of ClubCompy's simulated computer and benchmark your PC/Browser.
  • Twitter - http://twitter.com/ClubCompy
  • Kickstarter campaign - Link
  • About ClubCompy blog post #1 - Link
  • About ClubCompy blog post #2 - Link
  • YouTube ClubCompy howto video #1 - Link
  • YouTube ClubCompy howto video #2 - Link
  • Should the kickstarter campaign be successful, we will mail out the first issue of the magazine in January or February. And the website is under active development, so check back often!
Posted by davew at 1:42 PM in /

Tuesday, 16 November 2010

Whoo! New hardware!

Howdy CardMeeting fans,

I'm prepping for deployment of a brand new app (that I can't wait to show you) that I've been working on for a while here, and I needed to upgrade my network hardware to handle the throngs that are about to swarm my poor little boxes. Well, CardMeeting is coming along for the upgrade ride! Whee, I love racking new hardware, so fun!

Anyhow, sorry for the downtime yesterday, 'twas an unavoidable thing.

Love,
Dave

Posted by davew at 3:37 AM in /

Wednesday, 30 September 2009

CardMeeting migration failed

Dear CardMeeting users,

I regret to inform you that there was data loss due to an error on my part during the move of CardMeeting from my personal servers to the hosting site.

I took multiple backups to different media before the move to prevent data loss, but by mistake I took backups of what appears to be a January archive of CardMeeting rather than the live site.

This kind of thing isn't supposed to happen, I frankly don't understand how it COULD have happened, and I feel awful about it.  Maybe the moral of the story is: don't do anything important that requires brains when you're exhausted.

Hopefully you have recent XML backups and can import your meetings without too much trouble.  Finally, the deployed version of the code on the site is likely outdated, so I'll need to get a fresh build together some time this week or next.  My apologies over the loss of your CardMeeting data and for any inconvenience this has caused.  My moving day is totally ruined...

I've pulled the blog I posted before the migration from a google cache ... Here it is for posterity:


Friday, 18 September 2009

CardMeeting moving and so am I

Dear CardMeeting users,

Sorry for the last minute notice, but there will be service outages from Saturday - Monday for an emergency server move.

So, we're moving, and I have to move the servers with us. The good news is, better bandwidth and reliable server power is on the way. The bad news is, I need to rebuild/consolidate the boxes in time for the move which I just found out will be on Monday. CardMeeting and Woldrich.com will be up and down (mostly down) between Saturday, Sept 19 and Monday, Sept 21. Also, when I bring up the servers at the new site, the IP addresses will change for CardMeeting. Not sure how this will affect users, hopefully DNS caches will naturally flush themselves automagically when they detect CardMeeting is missing and find the new DNS entries...

Things are gonna be a little chaotic here, bear with me. Please back up your CardMeeting data to XML, of course I'll take backups too, but just to be safe...

So, uh... You may be wondering why I suddenly went radio silent for 9 months. Without going into it, let's just say the economic downturn affected me like so many others. I actually did ok, but work got insanely hectic and my health has suffered (I'm facing some surgery), and my job worries led me down some unexpected paths. Paths that stole me away from CardMeeting development...

Out of fear that the end was nigh for me, around Christmas time, I did some technology spikes centered around the new HTML 5 spec that germinated into something really fun. I got the notion that I could productize my idea in a couple months and have a ready hedge against a job loss I thought was looming. Though it took more than a couple months of free time to develop, my idea is starting to look like product. Hopefully I can stop obsessing soon and share what I came up with (and then return to enhancing CardMeeting with my free time instead.)

One thing I have to toot my horn about is that CardMeeting has been running itself for 9 months; and pretty well from the looks of it without any supervision from me. I'm pretty proud of that; we Woldriches put the W in Qwality!! I think good ol' CM is ready to sell, so I might start offering low-cost licenses soon to offset my new hosting expenses. I'm thinking of offering a sortof "workgroup edition", licensed for no more than 50 concurrent users. I never got my scalability issues resolved before I got pulled away to work on Project X. My goal for CardMeeting was to get it to cluster so I could offer a proper "enterprise edition", but I never got it to that point, darn it...

Anyhow, mea culpa for being absent for so long, I haven't forgotten about you. I just got freaked out there over money/job/life/responsibilities. Perhaps the additional performance bennies precipitated by CardMeeting's new host will help rekindle the flames between us! :)

Thanks again for using CardMeeting,
Dave Woldrich

Posted by davew at 8:00 AM in /

Tuesday, 29 September 2009

CardMeeting starting to come back, what an ordeal

Dear CardMeeting users,

We are getting aggravated.

The process of moving to colocation for CardMeeting and building out new servers has been painful.  Building out the hardware, installing new-ish linuxes, getting connected with my provider, setting up and installing OS, app server, and system services (named and Linux Firewall) -- it has all been causing me incredible pains.

Obviously, I'm sorry for being out of commission for a whole week. My busy work life and being uprooted during this move have impaired my ability to cope with all the problems.

Woldrich.com and my email are still not up, I figured getting the basic CardMeeting system back up and running was of paramount importance.  I should have Woldrich.com back up and running some time this week so that you can flame me for doing such a bad job with system administration.  What can I say, I'm doing my best.

So tired ... time to rest.

Thanks again,
David Woldrich

Edit 09/30/2009:  Well, I guess I didn't get the geek memo or was too thick to figure it out myself, but my Linux now comes stock with a chroot-jailed BIND installation!  I was putting all my DNS configurations somewhere I thought was the default that the system wasn't even looking at!  I love Linux and I hate it too.  Anyhow, I moved the config, restarted the DNS, and *blammo*: right away the site was running and visible from the net.  Whee, ok can I get off this crazy ride now?  I'm feeling nauseous.

Gosh what a fiasco, sorry again for the long outage, hope to see you come back soon. --Dave

Posted by davew at 12:44 AM in /

Thursday, 18 December 2008

Maintenance build, new button!

Hello CardMeeting ppl,

Check it out, a new zoom+center button!

I've posted a new build of CardMeeting that attempts to speed up the CardMeeting applet startup by getting the meeting contents downloaded quicker. I am hoping the changes I've made will make the login process more reliable. Please let me know if you experience any new issues with getting into your meetings.

One other fun thing I did was to add a new button to the view controls on the right side of the meeting! It has a pretty simple function: when you press it, the camera zooms all the way out and centers on all of your cards. It's a nice quick way to get back to the 30000 foot view you get when you first login.

I have had the vector graphics for the button lying around for a long time, just never got around to wiring it up.

Happy CardMeeting-ing, and Merry Christmas!
Dave Woldrich - dave@woldrich.com

Posted by davew at 5:28 PM in /

Friday, 5 December 2008

Unplanned service outage: 12/04/08

Dear CardMeeting users,

Scary happenings: Broken RAID mirror due to drive failure on the meeting storage server @ 10PM PST. Restore underway.

I am restoring the mirror now with a spare drive, but I cannot guarantee that all data saved in the last 24 hours is okay. In fact, I may have to take the server down for a complete rebuild soon if I find that the system was damaged after the mirror broke. Before beginning the mirror restoration process, I took a backup of all meetings. If you notice that any data is missing on your meetings, please let me know and we can attempt a restore of your meeting for you.

Man, it was freaky swapping those drives. I kept checking and double-checking and triple-checking that I was not pulling the good drive by mistake. Just locking and unlocking drives to pull them is a pretty freaky thing. I guess I am still a little suspicious of hot-plugging any device that whirs or uses lots of power. :)

Sooo ... my apologies if there was any data loss as a result of the drive failure. As always, you can use the Export and Import XML to backup and restore CardMeeting contents.

Thanks for using CardMeeting!
Dave Woldrich

Posted by davew at 1:54 AM in /

Thursday, 20 November 2008

Agile -- Epic Fail?

Hiya CardMeeting Users,

My reaction to friend/buddy/pal Jim Shore's blog post on Agile going pear-shaped.

I smelled this coming.  There have been a couple of articles in the past two years that confirmed some suspicions of mine:

I think Jim really gets to the nub which is that the painful parts of Agile are avoided on projects, and teams only do the fun/easy stuff.  My response is, "Well what did you expect would happen?!"

Developers are lazy, but it's not just them and it's not really that.  I think people are uncomfortable with being diligent and responsible.  No one can say developers on a death march are necessarily lazy; heck, look at the hours they work.  But are they being responsible?  Is the team fully taking charge of their situation?  Being on top of things constantly can be stressful, and grinding through tough times is often the least confrontational way to go.  (Unfortunately, there never seems to be a way to grind your way out of a grind, you just sortof grind yourself into lots more grinding later on until you're finally all ground up. :)

The critical factor on the few Agile projects I've been on has been the project/product manager.  What do I see in a successful Agile Project Manager? I see: a skillful politician, a visionary with the voice to clearly project his vision (the "keeper of the vision"), a proactive facilitator for developers, one who keeps the project from drifting by enforcing timeboxes and most importantly, one who has the guts to pull the plug on a failing project at the earliest possible point.  Save everyone the trouble and anguish, and kill failing projects early on rather than deluding everyone into thinking that we can pull up out of the nosedive before we crash.

But guess what: ALL projects need that kind of management, and those kinds of strengths can make even challenging projects succeed (or fail gracefully.)  There's nothing agile-y about having a great project manager.

My take as a non-Agile Methodologies Coach/Expert/Thought-Leader? Success in the chaotic world of software development requires bravery, drive, terrifying conviction, and a collective paranoia.  I'd throw in righteous indignation, and patience and ethics of a saint if I could, but we're not there yet.  Methodologies are second, let's start with endowing our people with spines, especially management.

I think everything Jim said about Agile being a good idea and being a success hundreds of times over is true.  I like the humane way Agile approaches software development, I just think it's sometimes implemented too blithely.

Anyways, how does the threat of Agile going out-of-fad affect CardMeeting?  Well, I've started by taking the word Agile out of the website, to be more agnostic.  So, while I'm hoping Agile folks will continue to consider CardMeeting as a worthwhile tool, I'm also looking to add features to widen the appeal of CardMeeting beyond the Agile and Scrum circles, just to hedge my bets.

Speaking of CardMeeting, since the new website rollout, I've been focused on bugfixes and getting more server-side code written.  The end of year is always crazy, so my progress has been slowed, but I'm encouraged by the recent uptick in CardMeeting traffic especially in the holiday season which has traditionally seen a drop in traffic.  If you've been sharing CardMeeting with your colleagues across industry, please keep it up; the increased interest in the product has been very encouraging to me.

Thanks for using CardMeeting!

Cheers,
Dave Woldrich

Followup - 11/20 6:30pm

There was more I wanted to add to this post about what I think should happen with Agile going forward, but I ran out of time on my break today.

The first thing I thought was, "All that Agile and Scrum and all these methodologies need is more structure and formality.  We need a certification process!!"  Hehe, but then I stopped myself, because I realized that those sorts of things already exist, and yet here we are.

Actually, that last link, wevouchfor.org, is kindof interesting because it's like a referral network for professionals.  You can't go naming everyone as being a great at what they do though, there's a limit to the number of folks you can vouch for.  So, getting well known names to vouch for you sounds like it could be pretty valuable.

It's a neat idea, but I don't think wevouchfor is a resume builder in the same way that certifications can be.  Plus, I see critical mass as an issue for wevouchfor, turning it into a bit of a navel gazing exercise for me. Therefore, if I wanted something like wevouchfor, I'd probably ask my peers for thoughtful recommendations on more heavily trafficked sites like LinkedIn.  But I don't, so I haven't.

Then I thought, "College courses!  We need college degrees in software engineering methodogies."  Hmmm, on second thought, maybe we should establish good/useful Computer Science programs before we start getting all ambitious.  :)  My college program got me familiar with data structures and programming languages, but when I got out into the workforce, it was a shocker how little I knew.  Ok brain, next thought!

Ok, and now I'm thinking ... "Uh... apprenticeships?  Have a programming guild like we were plumbers or something!?"  Well, the first thing that came up when I googled for programmer's guild was this: programmersguild.org.  Thanks, but no thanks, I'd never want to add 'Exorbitant Union Dues' as a line item on my monthly budget sheet.

So ... without certification or vouchers or degrees for the professionals, I can't see "Is this agile thing a good idea?" question getting any easier to answer, because honestly if your people can't/won't implement with a proper methodology, then the possibility of failure increases, right?

Therefore, I think the way forward for Agile should be the addition of gravitas.  Make 'going Agile' a really big deal, take it up to the CIO if you have to.  Hold people more to account, I say.  If you're going to do Agile, then the process of picking and choosing which parts you want and don't want should now be looked at with a WHOLE lot of stinkeye.  There, the way forward is:  Agile & Stinkeye.  :D

Posted by davew at 8:09 AM in /

Monday, 22 September 2008

Testing the new website

Helloooo CardMeeting ppl,

The new website is up! Check it out @ http://CardMeeting.com

Whew, that was a tough upgrade! A lot more work than I thought it would be. Anyhow, CardMeeting appears to be hosting meetings appropriately and working ok. Gosh, I'm proud of this new website! This is definitely some of the most complex CSS work I've done, felt like I was folding proteins by-hand there at times. I'm just glad I'm starting to refine the product's message and tell a bit of a story.

On the main page, I lead in with my new slogan: Team, Time, and Talk. Each word is hyperlinked to a page where I will connect the benefits of CardMeeting to those aspects of your life. I'm still working on the content for those pages, so the links are blanks right now - stay tuned.

Right from the main page, you can login to either your meetings or your community using the form that's located in the upper left. Meeting ID's are formatted as Mnnnn and Community ID's are formatted as Cnnnn The community's meeting list page is so much nicer now that I've styled it and culled some useless columns.

Also on the main page, are two brightly colored buttons. One to take you to a demo meeting (the old Sandbox meeting, right now), and one to let you create a new, password-protected community. SO much simpler than the old website, I love it!

I also made one small enhancement to the card editor in the meetings with this release. If you type more text than can fit on a card, you will now get a scroll bar! Thank you power user Ed, (who also inspired me to redo the website, incidentally), for the good suggestion. I don't let you scroll a card when it's not in edit mode, but at least now you can access the text that flows past the bottom of the card now by calling up the editor...

I've made many changes and a bug could have slipped past my watchful eye, if you spot any trouble, please let me know at the email provided below. Thanks for using CardMeeting!

Cheers,
Dave Woldrich
dave@woldrich.com

Posted by davew at 8:32 PM in /

Sunday, 21 September 2008

CardMeeting planned maintenance outage: 9/22/2008

Dear CardMeeting users,

CardMeeting will be unavailable for up to 6 hours on Monday, 9/22/2008, 6pm PST.

I am finally going to upgrade the CardMeeting website content! The new site is so beautiful: minimal text on the homepage, less geeky lookin' CSS, super-fast page loading times, and a login system that finally works correctly (you won't constantly get password challenges anymore!) It's going to be nice to not feel sheepish or embarrassed when introducing someone new to cardmeeting.com! :)

Anyhow, the CardMeeting website may appear to randomly go up and down Monday night starting on or after 6pm PST. Of course, I will take backups and roll back to the old site in case the new build doesn't take. I will be upgrading the system software along with the website, and that upgrade procedure is part of the reason I need to take the site down for such an extended period.

Thanks for using CardMeeting, looking forward to hearing your feedback on the new site after tomorrow!

Cheers,
Dave Woldrich

Posted by davew at 7:29 PM in /

Saturday, 9 August 2008

Cleanup and web proxy support test build

Hi CardMeeting users,

Web proxy support? (FINALLY!) Corporate CardMeeting users, rejoice!

I recently celebrated CardMeeting's 2nd birthday. Yep, 2006 seems like so long ago. And almost since day one, I have received emails from new users that started out enthusiastic about the product concept and ended up disappointed - the user's cohorts in other countries could connect to CardMeeting, but they could not.

I'd say 90% of the cases were due to their corporate IT departments running all of their web traffic through a web proxy. The web proxies are middlemen, watching the web traffic that flows in and out of the corporate web connection. Well, these middlemen interrupt traffic to do their jobs, and that has always flummoxed the CardMeeting client that runs in your browser.

So for two years, I have concentrated on this problem. I looked at how similar applications handled it, and I looked at how the big boys like GOOG dealt with the issue. The big boys seemed to always have advantages that I would never get - huge bandwidth or the leverage to get corporate IT people to give them special network settings to bypass the web proxy. These were both things that I realistically couldn't expect.

So, over the years, I made futile stabs at the problem. Sometimes, I even proclaimed victory; I was SURE I had finally slain the dragon. Nope. Web proxies are buttoned up too tightly to be gamed, and there was very little literature on the subject that I could find to help me land an acceptable solution to the problem.

Well, I found a solution and it turned out to be simple. I'd like to say something dramatic like the idea came to me in a dream or after a knock on the head or something, but the real story is pretty boring. I was just answering a support email, explaining the nature of the problem, and it struck me that maybe a variation of the Periodic Refresh pattern from the Ajax Patterns could be the fix.

My solution works well for me because it tries to only act within the current bandwidth constraints CardMeeting operates under. I've known from the beginning that I could have done Periodic Refresh to solve this web proxy problem, but Periodic Refresh by itself doesn't scale well, and my network infrastructure would have cratered after a few tens of users got connected.

What I need now is feedback and to do some tuning. If you are a user who was previously not able to connect to CardMeeting from work or your VPN, please try again now and let me know if you have better luck with it (dave@woldrich.com). No promises on this being the fix, but I have high hopes.

Another fix that is in the current build deals with some meeting name issues interfering with the XML/Excel Exporters. If your meeting name had some reserved special characters in it (like / or &), the exporters would fail. I have fixed that bug, and now everyone should be able to export their meetings successfully.

The last set of fixes in the current build deal with removing all of the legacy workarounds that were in the code to try to resolve the web proxy problems. Those only serve to slow down the code and they caused their own buffering issues. Since I made some fairly extensive connection code changes, I would appreciate knowing if I've broken anyone who was working before. I did some thorough testing for this release, but it's a pretty complex system, so I may have missed something.

Alright, now that that's out of the way, I'm going back to CardMeeting scalability code! ;)

Thanks for using CardMeeting,
Dave Woldrich

Posted by davew at 7:00 PM in /

Saturday, 28 June 2008

Individuals and interactions over processes and tools, you dig?

Hiya CardMeeting users,

I am weighing in on the whole Agile tools versus Agile books discussion. Engage flame throwers.

I was away on vacation getting sunburned and caught Paul J. Heidema's article on the Agile Advice blog titled Agile Tools vs. Agile Books. Being personally mentioned in the article, I felt niggly about having to respond, so I finally have my chance.

The question of whether an Agile tool should be recommended or panned, shunned or embraced, strays unavoidably into religious territory (or at least political territory.) After all, the very first value listed in the Agile Manifesto reads:

"Individuals and interactions over processes and tools" -- from http://agilemanifesto.org, 06/08

I don't think that was listed first on accident. Any barriers we place between us as individuals can only hinder the effectiveness of our communications. And god knows that so many software packages and rig-a-ma-roll people-processes are just such a torture prison for man. How any work gets done anywhere on anything, amazes me. So, at my core, I deeply agree with the "Individuals and Interactions" line because I am thumbs-down on torture.

When the question is asked, "Is it okay to tool-up our project, or should we just make do with our whiteboard charts and our cards and our stand-up meetings?", I think the standard consultant's answer of "ask yourself why you want a tool, and then ... you'll find you really don't need a tool" is generally the right answer.

In the same vein, I have counseled teams that they should forego using CardMeeting unless team members are scattered across the globe. After all, working on and talking over a table of physical index cards just works so much better.

All that said, this wouldn't be a very interesting blog entry unless I added a provocative "but" to end of my affirming statements about individuals and interactions. There's a little niggly voice in my head that complains tools, specifically software tools, are deprecated in the Agile Manifesto largely because they are so poorly implemented! They don't DO exactly what they need to DO, and that's a deal-breaker. I was reminded of a nice George Carlin (r.i.p.) quote recently that says it all for me:

Inside every cynical person, there is a disappointed idealist

Ain't that the truth?! We all start out rosy cheeked with glowy optimism about software and tech. And we wind up so beaten down and disappointed with the realities. The promises, oh, the promises I've been given about how game-changing some software release will be or how important some new framework will be! The claims are mostly all crap, there are some gems here and there, but typically we get shoveled some repackaged concepts, now with 150% more bloat.

Perhaps cynic is too strong a word, but it strikes me that the authors of the Agile Manifesto were definitely disappointed idealists when it came to the state of software development as they perceived it. So, of course they would downplay the role of tools that get in the way of progress, especially software tools! Software tools grab tremendous mindshare and distract because they are shiny, they promise great things, and they tend to fall way short of the mark - so they get in the way AND they stink, grrr.

I began work on CardMeeting with that contrary thought in my mind: tools are downplayed because they get in the way. The question I asked myself was, would it be possible to make a pure content tool that approximates the value of real life card tables? So, not really add much new features-wise, just try to simulate what goes on around those tables. I think I can come close to real life as long as I keep CardMeeting simple and as long as facilitating communications remains my focus.

My gut tells me the thing that kills potential greatness in other software products is the feature matrix explosion: the urge to have lotsa feature checkmarks up and down a data sheet to show you're keeping up with the competition. I fight this urge myself, and I've been cautious. (Competition, yer running rings around me, GADS!)

The more significant features you add to your product though, the harder it is to exactly satisfy your customer's requirements. It is impossible to not add features to a maturing product, but I do think you can at least ensure very tight integrations between new features and the existing ones. I have intentionally held back on adding features willy-nilly to CardMeeting so that I could improve quality, prepare for commercial release, and keep things tight for the users.

I doubt CardMeeting is the answer to the Agile cynics' cries yet. Still a long, long ways to go. I do accept their cynicism as my challenge, however, and I hope to maybe get tepid acceptance for CardMeeting as a viable Agile tool from the hardcore purists someday. :)

Thank you for using CardMeeting,
David Woldrich

P.S. If you are looking for a book on Agile and not a tool, you should prolly check out Jim and Shane's new book: The Art of Agile Development. I'm reading my copy again (not in skim mode this time), meaty and readable! And, I'm getting all kinds of ideas for new features for CardMeeting! Like what if you could ... Oh wait, WAIT ... must resist ... adding features whathaveyou!!! :D

Posted by davew at 9:34 PM in /

Friday, 6 June 2008

My philosophy and The uncanny correlation holds!

Dear CardMeeting ppl,

After I fix some bugs, daily logon counts soon double! Should I be shocked?

... and conversely, when I introduce bugs, user roles gradually halve. I still find the whole effect fascinating, all these completely disparate, unconnected individuals reacting so similarly. I've made this observation before, I know.

My mind strains trying to figure out all the aspects to this. Chiefly, why do users "go away" rather than "bitch" when things suddenly aren't right? I suspect that the answer is, "I'm not paying anything for CardMeeting, so I don't have bitching rights." (Wrong!) Or, perhaps the unhappy flipside of that coin is, "CardMeeting is free, must not be a serious offering ... look it's buggy! Goodbye!" (Noooo, don't go!)

I think I need to articulate some philosophy here. You ARE compensating me when you use CardMeeting! There is no professional organization built up around the product yet. CardMeeting is a "pro-hobby" style application at this juncture. I, personally, put in a good deal of my free time maintaining the software, but it is not where my bread gets buttered. At this stage of development, it's all me.

I say you are compensating me for time on the system because you are serving as my QA department. I rely on you people to tell me what's wrong when my own testing fails to catch problems. I also rely on you to tell me what features are important to you, or tell me when I screw up on a deployment, or tell me when your data is lost (thankfully a rare occurrence so far.)

Email is the best way to reach me (dave@woldrich.com). Please put "CardMeeting" somewhere in the message subject so that my spam filter lets your message get through. I keep all of your emails and regularly reflect on them. If you're not happy or if you see something is wrong please tell me, I can take bad news! I'll fix your bug if the technology allows it, and in pretty short order. My turnaround time on bug fixes is great! Your enhancement requests will necessarily have a lot longer cycle time, but I need to hear about those too.

On this last bug that drove users away, which had to do with system slowdowns caused by a bad applet shutdown sequence, I only heard about it in an aside on a comment on a blog posting regarding CardMeeting. Thank goodness for GOOG, making it easy to poll the interweb for CardMeeting's temperature. Indirect blog communication is less optimal.

So, CardMeeting SHOULD have value for you even though you've paid no money into it. CardMeeting IS valuable, you pour value into it. And of course CardMeeting has value for me for all the reasons it should.

I've thought a lot about how to maintain this value. A lot of it is locked up in reputation and expectations.

For example, when and where are advertisements ok on the website? Or, under what circumstances is it ok for me to send emails? I've collected a zillion email addresses so far, and not sent a single message from that list. This was on purpose, I do not feel it is right or productive to spam people, for any reason. (Well, okay, I have occasionally made proactive support calls, but those were not spam-like in the least.) In this era of http, blogs, and RSS, users can pull any information they need that I have for them, on their terms. And in terms of placing ads on the website, I feel like that's an unnecessary distraction. It just feels very "low rent", especially when I'm talking about selling subscriptions to some paid CardMeeting service.

It's a lot to consider. I've wondered if coming up with some informal social contract or pact might be beneficial. I envision laying out some squishy non-binding set of expectations that users have of CardMeeting and also expectations I have of the users.

Well, that's it. Thanks for using CardMeeting and looking forward to hearing from you!

Cheers,
Dave Woldrich - dave@woldrich.com

Posted by davew at 11:40 PM in /

Wednesday, 28 May 2008

Deklunkified back/forward browser buttons and hotkeys

Dear citizens of CardMeeting Town,

I fixed a bunch of niggly bugs and behaviors in this latest build of CardMeeting.

In case you didn't know, CardMeeting is designed to allow you to navigate in and out of the applet with the back/forward buttons on your browser. Well, design doesn't always match implementation, and it turns out I had some serious resource problems whenever users would navigate away from the CardMeeting applet. Chiefly, you could get a browser that would never close, or you might get 100% CPU utilization on one of your CPU cores, or everything might be fine. Anyhow, I did some pretty rigorous testing of applet shutdown on the JRE versions that matter. So, if you've been seeing system performance problems lately related to CardMeeting, hopefully everything there is now resolved. Sorry 'bout the bugs, my bad.

Anyhow, I didn't see any of these stability/performance problems myself because I've been doing my testing for the past few months with a bleeding edge version of Java. Sun is purporting that Java Applets have been totally revamped with this new version.

I have to attest, they're right. Speed, stability, deklunkification - it's all nifty there. And they give me, the developer, so much more control! I can turn on 3D hardware acceleration for CardMeeting, for example! You want Minority Report? I got your Minority Report right here! I'm holding off on enabling that until I get completion on some of my other features.

Other changes in this build are that I rewrote the hotkey support in the application. So, for example, the zoom hotkeys (Ctrl+Up Arrow and Ctrl+Down Arrow) now scream! It's nice to be able to zoom smoothly while holding down the key. With my old hotkey method, it would stutter and get all hung up. Same with Change Card Color (F12 or F8 on mac), it cruises now too. Check it out!

The remaining changes are minor behavioral glitches that probably didn't make anyone's radar, but they bugged me and I finally did something about 'em.

That's all for now. Happy hunting!

Cheers,
Dave Woldrich

Posted by davew at 9:02 PM in /

Wednesday, 7 May 2008

Card editing bug fixed

Hi there CardMeeting users,

Fixed an annoying bug that crept into index card editing in the last build.

Successfully refactoring UI code is sometimes difficult when you don't have a good testing framework for UI behaviors. I have yet to find a testing framework appropriate for CardMeeting. So, when I did all my refactorings to make billboards possible. Even though I did some monkey testing on the UI, it clearly wasn't enough to catch a bug which crept into the index card editing routines.

The bug only appeared when cards were added to the canvas and left blank. Subsequently trying to edit those cards would succeed, but the text would not appear! That's frustrating...

Hooray for users Bill and Alain for reporting the bug to me!! ;)

Cheers,
Dave Woldrich

Posted by davew at 8:09 PM in /