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 /

Wednesday, 23 April 2008

The new Billboard feature in CardMeeting is live!

Attencion CardMeeting users,

Billboards are deployed, hope you like them!

Well, the billboard code is deployed to the public servers, and everything looks good. I did a full write up of them in my last blog entry, and everything I said there is basically correct.

Please report any suggestions, problems you have, or new bugs you encounter to dave@woldrich.com.

Thanks,
Dave Woldrich

Posted by davew at 4:15 PM in /

Monday, 21 April 2008

Introducing the new Billboard Item Type!

Hiya CardMeeting users,

Billboards are a whole new item type that you can use for titling, look-here and legends!

I'm excited to announce that very soon (4/23 or 4/24) I will be enabling a whole new item type that you can add to your CardMeetings: Billboards! Whew, it has been a looong time since I added a substantive feature to CardMeeting, and it is high time I made something like this available.

In CardMeeting, Billboards are single lines of text that try to stay legible regardless of what level of zoom you are viewing the CardMeeting at. You can use them as titles for sections of your meeting. They can be colored with the same 6 colors that cards get as well, so the billboards can also be used to create a legend that explains what your card colors indicate. I envision billboards will also be useful for transient "look here" purposes and leaving high level notes/reminders that your peers won't miss.

If you go into your meetings now, you will not see any new Billboard feature just yet. I am not springing Billboards on you because the CardMeeting XML and Web Services have changed to support Billboards. I needed to give some advance notice to users who actively use those services for integration and backups that a switch-a-roo was imminent. Regardless of how you use CardMeeting, please take backups of your meeting data now, and then again after Billboards are enabled. I don't expect problems with data migrations, but with an upgrade of this magnitude, we can never be too careful. If you need infos on how to do backups of your meetings, please consult the CardMeeting data exchange document and refer to section 2 and especially section 2.3, "XML Exporter".


For users: How to use Billboards in your CardMeeting

Billboards are a single line of text that are supposed to be legible irregardless of zoom level. Strategically placed, these billboards can serve as a high-level roadmap for navigating and understanding your CardMeeting.

Here is a screenshot showing Billboards in action:

CardMeeting with Billboards, zoomed out
Billboards visible on a meeting right after loading it up

After zooming in a little, you can see the area containing the billboard is maintained and the billboard text is available in both large and small forms:

Billboards, zooming in
How Billboards appear when zooming in


Sidebar: I've really wrestled with how to best present this aspect of Billboards. In my limited user acceptance testing, the feedback I've gotten was that the text drawn twice is confusing. One of my primary concerns was that low vision users might be hosed if I didn't display the large form of the text. I figured they needed a way to zoom the billboard so that it was legible for them. Anyhow, please play with it when I make Billboards available, and if you have any feedback on this matter or suggestions on how I might improve it, please contact me at dave@woldrich.com. Thanks!

Anyhow, editing Billboards is very much like editing index cards. But, there are some wrinkles you need to know about. Here's a typical editing scenario:

  1. Left mouse click-and-drag your mouse on and away from the billboard icon
  2. A new billboard with some default text will appear under your mouse pointer, keep holding the left mouse button down and the drag the billboard to where you want it on the canvas
  3. Let go of the left mouse button to drop the billboard, the editor will appear
  4. Type the billboard text you want, press Enter or Esc to finish editing
  5. You can delete a Billboard by dragging it to the recycle bin or by hitting the Delete key when the Billboard is selected

Notes:

  • The green diamond at the bottom center of the billboard indicates its "anchor point" on the canvas.
  • When zoomed in, the dash-lined box containing the enlarged billboard text is only displayed as a visual aid. You cannot edit or move the billboard by clicking on the enlarged text.
  • The smaller, solid-lined billboard text box that hugs the bottom of the billboard area is what one uses to edit the Billboard. You may left mouse click once on this smaller text box at any time to call up the Billboard's editor.
  • The Billboard items always display beneath the cards. Try not to occlude the billboard's surface area too much with cards, that can make it difficult to find the smaller edit control when zoomed in.

Billboards, creating
Click-and-drag a New Billboard icon to create a new Billboard

Billboards, editing
Click the smaller box to call up the Billboard editor. Drag the smaller box to move the Billboard.


For developers and power users: Changes to Web Services and CardMeeting XML Schema

As I mentioned before, the CardMeeting XML Schema had to change to support the new Billboard type. These changes had ripple effects through the SOAP and REST Web Services as well, so be aware that your service clients will also need to change.

Previous versions of CardMeeting XML were hardwired for a list of cards only, but the new CardMeeting XML sports an extensible item type system that will allow me to add more item types in the future (hopefully) without breaking older versions of the XML. Anyhow, here's what changes you need to make to upgrade any version 2 CardMeeting XML you have to the new version 3:

Version 2 CardMeeting XML:

<ns2:cardMeeting title="CardMeeting Planning" version="2" xsi:schemaLocation="http://cardmeeting.com/schema/CardMeeting.xsd http://cardmeeting.com/schema/CardMeeting.xsd" xmlns:ns2="http://cardmeeting.com/schema/CardMeeting.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <card> <text>iteration one</text> <position y="5434.0" x="7660.0"/> <color name="White"/> </card> <card> <text>iteration two</text> <position y="4635.0" x="-5198.0"/> <color name="Canary"/> </card> . . . <ns2:cardMeeting>

Version 3 CardMeeting XML (changes underlined):

<ns2:cardMeeting title="CardMeeting Planning" version="3" xsi:schemaLocation="http://cardmeeting.com/schema/CardMeeting.xsd http://cardmeeting.com/schema/CardMeeting.xsd" xmlns:ns2="http://cardmeeting.com/schema/CardMeeting.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <item xsi:type="ns2:cardType"> <text>iteration one</text> <position y="5434.0" x="7660.0"/> <color name="White"/> </item> <item xsi:type="ns2:cardType"> <text>iteration two</text> <position y="4635.0" x="-5198.0"/> <color name="Canary"/> </item> . . . <ns2:cardMeeting>

The REST and SOAP service changes should follow the changes made to the CardMeeting XML Schema. Probably next week, I will release a revised version of the CardMeeting Data Exchange document to reflect the impacts these changes will have on the Web services.

I will post again when the new Billboard feature is available (sometime on 4/23 or 4/24.)

Cheers, and thanks for using CardMeeting!
Dave Woldrich

Posted by davew at 7:44 PM in /

Wednesday, 26 March 2008

Connectivity fixes and performance optimizations

Helloooooo CardMeeting ppl,

The network is starting to resemble the harmonious flow of data I have always believed was possible.

Over the Easter weekend, I found myself drawn into a tuning effort that centered around network traffic going into and out of meetings. In the process I found many bugs that related to huge packets killing connections, rendering problems, and even a potential data loss bug due to a framing issue I found!

I got the build wrapped up and tested tonite and the build I just placed on the server is looking good. I don't see any more random "radio tower" warning icons, there's no more bizarro CPU spikes on the servers, no more crazy packet storms. Best of all, the traffic when nothing is going on (which is like 99% of the time), is almost nothing... In the past, the server and clients were constantly chatting, and it strained my limited bandwidth even when every meeting was idle! It all just "feels" more solid now. I know better than to claim the thing is bugfree, but it sure is better behaved than it was last week.

All this means CardMeeting can now host more users, I'm hoping you all can get the word out and make the login roles swell a bit more. I'd like to stress the server out more and see what the new limits are.

Please give what I've got up there a whirl, and then please let me know, good or bad, what your experiences are with this build.

Thanks for using CardMeeting,
Dave Woldrich
dave@woldrich.com

Posted by davew at 12:59 PM in /