tag:blogger.com,1999:blog-39790755598399297082009-03-06T13:46:55.544-05:00We Give and We TakeChristian W. Damushttp://www.blogger.com/profile/18244407877245708857noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-3979075559839929708.post-12000205643722011812009-01-10T13:53:00.004-05:002009-01-10T14:17:06.501-05:00Nothing to Grouse About<div>You'd think that when my mountain ash, which has been suffering at the hands (beaks?) of woodpeckers and bugs for the last ten years, is attacked by a marauding grouse, I would be upset.</div><div><br /></div><div>Right?</div><div style="text-align: center;"><br /></div><div>Well, not when he looks so innocent:</div><div><br /></div><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="http://2.bp.blogspot.com/_xqWjI-sJPhM/SWjvjaWiozI/AAAAAAAAACY/JJO1vuxUDzs/s400/grouse_3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5289741153994974002" /><br /><div>Don't let this handsome fellow fool you, though. He's on a mission, and it's serious.<div><br /></div><div>It's a raid!</div><div><br /></div><div>The last thing this tree needs is to have those juicy, tasty leaf buds taken in the middle of Winter:<br /><div><br /><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 390px; height: 400px;" src="http://1.bp.blogspot.com/_xqWjI-sJPhM/SWjzuUk92uI/AAAAAAAAACg/kYczLIT59qM/s400/grouse_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5289745739469937378" /></div><div><br /></div><div>When I confronted him about it, this grouse didn't have much to say. He's excellent under pressure, well trained by whatever spy agency sent him into our country. He just sat there, challenging me with his cold, hard stare until I had to back down.</div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xqWjI-sJPhM/SWjvjMAR4qI/AAAAAAAAACI/8lhheCZ710k/s1600-h/grouse_2.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 374px;" src="http://4.bp.blogspot.com/_xqWjI-sJPhM/SWjvjMAR4qI/AAAAAAAAACI/8lhheCZ710k/s400/grouse_2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5289741150143505058" /></a><div><br /></div><div>Makes me appreciate how trivial my daily struggle with certain complex software systems really is, in the big picture.</div></div></div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3979075559839929708-1200020564372201181?l=give-a-damus.blogspot.com'/></div>Christian W. Damushttp://www.blogger.com/profile/18244407877245708857noreply@blogger.com3tag:blogger.com,1999:blog-3979075559839929708.post-84393119797089669592009-01-02T11:18:00.004-05:002009-01-02T11:55:52.834-05:00Old-Fashioned Prognostication<div>No, I'm not making predictions for the success of Eclipse or any technology in 2009.</div><div><br /></div>Another new year has arrived, and to usher it in I once again engaged in the timeless German tradition of <a href="http://de.wikipedia.org/wiki/Bleigie%C3%9Fen">Bleigießen</a>: the divination of one's future (for the coming year) in the pouring of molten lead.<div><br /><div>The idea is simple: you cut a length of lead solder and heat it, in a steel spoon, over a candle or other tabletop flame, thus:</div><br /><br /><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 329px; height: 400px;" src="http://4.bp.blogspot.com/_xqWjI-sJPhM/SV5C0sblSCI/AAAAAAAAABY/yBMXzD1XWC0/s400/ny2009_2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5286736485627021346" /><div style="text-align: center;"><br /><div style="text-align: left;">Once the lead is completely molten and flows freely, you pour it quickly into a bowl of cold water to chill it instantly. In the resulting sculpture, you see a shape, figure, or other graphic indication of what the year holds in store for you (rather like cloud gazing):</div><br /><br /><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://3.bp.blogspot.com/_xqWjI-sJPhM/SV5C01EvZ_I/AAAAAAAAABg/1UEr3SFuOrk/s400/ny2009_1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5286736487947134962" /><br /><br /><div style="text-align: left;">As you can see, my first attempt didn't show much and was actually spoilt by pouring too rapidly. Am I having puppies? Or are these tears? As this attempt failed due to a bad pour, I tried again, with a smoother and steadier hand:</div><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xqWjI-sJPhM/SV5C1NuwsTI/AAAAAAAAABo/Wt9QSVlKuII/s1600-h/ny2009_3.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://1.bp.blogspot.com/_xqWjI-sJPhM/SV5C1NuwsTI/AAAAAAAAABo/Wt9QSVlKuII/s400/ny2009_3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5286736494565830962" /></a><br /><br /><div style="text-align: left;">That's more like it. I can read something into this! I see ... on the right-hand side ... a frog? Yeah, a frog. It's sitting on a stick, readying to jump into the water. The stick is jutting out of the water from right to left, like in so many creek-paddle scenes from my canoe tripping.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Looks like Mother Nature has another great canoeing season in store for me!</div><br /></div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3979075559839929708-8439311979708966959?l=give-a-damus.blogspot.com'/></div>Christian W. Damushttp://www.blogger.com/profile/18244407877245708857noreply@blogger.com3tag:blogger.com,1999:blog-3979075559839929708.post-34026274300633818852008-12-22T09:48:00.006-05:002008-12-23T09:05:51.507-05:00Directions to Keyboard HeckHave you ever wondered where Keyboard Heck is to be found?<br /><br />I think I just took the short-cut. So to speak.<br /><br />I use the two-handed <a href="http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard">Dvorak keyboard layout</a> because I like it:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/thumb/2/25/KB_United_States_Dvorak.svg/300px-KB_United_States_Dvorak.svg.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 100px;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/25/KB_United_States_Dvorak.svg/300px-KB_United_States_Dvorak.svg.png" border="0" alt="" /></a><br />I also use a MacBook Pro because I like it.<br /><br />This week-end, I upgraded my OS X to version 10.5.6, because Apple told me it was a good idea.<br /><br />Well, now text editing in the Eclipse workbench has <a href="http://bugs.eclipse.org/259496">gone all to pieces</a>.<br /><br />What has happened is that the following Mac-standard keystrokes still work as expected:<br /><ul><li>Command-Q to quit<br /></li><li>Command-, for preferences<br /></li><li>Command-W to close window (which closes the internal editor in Eclipse)</li><li>Command-S to save</li></ul>but most others require combining the Command key with the letter key <span class="Apple-style-span" style="font-weight: bold;">where it would appear on a Qwerty keyboard</span>:<br /><ul><li>Command-; to undo (Dv ; is where Qw Z is)<br /></li><li>Command-R for an outline (Dv R == Qw O)</li><li>Command-Shift-U to format (Dv U == Qw F)<br /></li><li>Command-J to copy (Dv J == Qw C)<br /></li><li>Command-K to paste (Dv K == Qw V)<br /></li></ul>The most frustrating point is that to cut (Command-X) I actually would have to hit Command-Q because the Dvorak Q is where the Qwerty X is, but Command-Q "works" in the Dvorak layout and <span class="Apple-style-span" style="font-weight: bold;">closes my workbench</span>! I have to do Command-J to copy, then delete, then Command-K somewhere else to paste.<div><br /></div><div>I mustn't be as smart as <a href="http://en.wikipedia.org/wiki/Classical_conditioning">Pavlov's dog</a>, because I still find myself closing my workbench occasionally despite that it isn't the natural keystroke on this keyboard!<br /><br />My next step was, when last I posted this message, to try this out on the Cocoa port of SWT. Well, it turns out that the Cocoa port does not have this problem. Keys all work like the rest of my Cocoa apps. The new problem is that Eclipse doesn't run, yet, with the Cocoa SWT. It crashed the first time I tried to save a Java editor and now it crashes before I can begin working with any editor, on every launch. That's no better than hitting Command-Q to cut ;-)</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3979075559839929708-3402627430063381885?l=give-a-damus.blogspot.com'/></div>Christian W. Damushttp://www.blogger.com/profile/18244407877245708857noreply@blogger.com3tag:blogger.com,1999:blog-3979075559839929708.post-7662641123163337122008-12-18T14:14:00.008-05:002008-12-18T20:15:47.288-05:00Target Definition to the Rescue!Congratulations to the PDE team for saving my day!<div><br /></div><div>I just switched my day-job development from Windows to Linux. I use <a href="http://www-01.ibm.com/software/awdtools/modeler/swmodeler/index.html">IBM Rational® Software Modeler™</a> every day for its various advanced features, and among other things the software that I develop extends some of its features. Therefore, I <span class="Apple-style-span" style="font-style: italic;">self-host</span> my PDE.</div><div style="text-align: center;"><br /></div><div>As it happens, my software project also depends on other Eclipse-based components that are not included in RSM. So, I install them into my RSM workbench. On Windows, this works fine because I am an administrator of the system and <a href="http://wiki.eclipse.org/Equinox/p2">p2</a> installs the stuff into the shared bundle pool.</div><div style="text-align: center;"><br /></div><div>However, on Linux, the picture turns out to be a very different one. I installed RSM as root but I run it as a regular user. It seems that some kind of funky extension to Equinox causes p2 to install my extra features into my home directory, and the launcher finds its configuration there instead of in the main product installation location. Very cool! Great for a multi-user environment.</div><div style="text-align: center;"><br /></div><div>However, not so great for my PDE target. PDE only recognizes the plug-in locations installed in the product, not this extra location in my home directory. Enter the <span class="Apple-style-span" style="font-weight: bold;">PDE Target Definition</span>.</div><div><br /></div><div style="text-align: center;"><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:'lucida grande';"><span class="Apple-style-span" style="font-style: italic;">drum roll ...</span></span></span></div><div style="text-align: center;"><br /></div><div>I use the New Target Definition wizard to create a new PDE target, and it creates one that includes my current Eclipse configuration by default. Then, I add another location in which it will find plug-ins. I could even, if I wanted to, add plug-ins from my workspace, although this seems odd because the workspace generally is implicitly in the target, anyhow.</div><div><br /></div><div><img style="display:block; margin:0px auto 10px; text-align:center;width: 400px; height: 302px;" src="http://4.bp.blogspot.com/_xqWjI-sJPhM/SUrxoc7OInI/AAAAAAAAABI/q_99-QDrbq4/s400/target.png" border="0" alt="PDE Target Definition Editor" id="BLOGGER_PHOTO_ID_5281299190306972274" /><div style="text-align: center;"><br /></div></div><div>With one click in the top right corner of the editor, this target is installed in my PDE environment and it now finds every plug-in that I need. It's too easy!</div><div><br /></div><div><img style="display:block; margin:0px auto 10px; text-align:center;width: 400px; height: 365px;" src="http://2.bp.blogspot.com/_xqWjI-sJPhM/SUryHleTBzI/AAAAAAAAABQ/GSMP0UbawHY/s400/prefs.png" border="0" alt="PDE Target Preference Page" id="BLOGGER_PHOTO_ID_5281299725177521970" /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3979075559839929708-766264112316333712?l=give-a-damus.blogspot.com'/></div>Christian W. Damushttp://www.blogger.com/profile/18244407877245708857noreply@blogger.com5tag:blogger.com,1999:blog-3979075559839929708.post-2515246888056433772008-12-10T18:40:00.001-05:002008-12-10T19:27:27.028-05:00Who Knew? Comparing Directories in EclipseWell, isn't that a pleasant surprise to follow a rather unpleasant one.<div><br /><div>After having spent much of the day working on <a href="http://bugs.eclipse.org/189139">OSGi-bundle-izing Apache Batik 1.7</a> in the <a href="http://wiki.eclipse.org/Orbit">Eclipse Orbit</a> project, I discovered that the re-distribution of the <a href="http://www.w3.org/Style/CSS/SAC/doc/">W3C CSS SAC 1.3</a> API that is included in <a href="http://xmlgraphics.apache.org/batik/">Batik 1.7</a> is, in fact, the real original content as provided by <a href="http://www.w3.org/">W3C</a>.</div><div><br /></div><div>"Great!" you might say.</div><div style="text-align: center;"><br /></div><div>No. The reason I know this is that what I actually discovered is that the re-distribution of the SAC 1.3 library in Batik 1.6 was a <span class="Apple-style-span" style="font-weight: bold;">modification of the original W3C code</span>, that I had bundled in Orbit way back when. Mostly, the changes are either just in the CVS ID in the header comment (Apache and W3C both checked the sources into CVS) or fixing typos in the doc comments.</div><div style="text-align: center;"><br /></div><div>My heart sank when I saw that one class, the <span class="Apple-style-span" style=""><span><span><a href="http://www.w3.org/Style/CSS/SAC/doc/org/w3c/css/sac/CSSException.html">CSSException</a></span></span></span>, actually had <span class="Apple-style-span" style="font-style: italic;">functional changes.</span> A bunch of its code was <span class="Apple-style-span" style="font-style: italic;">removed</span> by the Batik team. Ugh. So, now the Orbit bundle that for so long has been touted as "the" W3C CSS SAC 1.3 API in fact isn't, and I have to figure out what kind of version number to apply now to make the new bundle look like the real deal over the old one. The org.w3c.css.sac_1.3.0.v200803081811.jar bundle is not authentic.</div><div style="text-align: center;"><br /></div><div>Anyhow, the real point of this blog is not to complain but to congratulate the <a href="http://wiki.eclipse.org/Team">Eclipse Team</a> Team (tee hee). I had always used <a href="http://www.scootersoftware.com/moreinfo.php">BeyondCompare</a> to diff directory structures, but I don't have it on my current system and I was impatient, so on a lark I thought "Hey, let's see if I can do <span class="Apple-style-span" style="font-weight: bold;">Compare With -> Each Other...</span>" on directories in Eclipse. Well, of course I can! That's how I found my little Batik/SAC conundrum:</div><div><br /></div><div style="text-align: center;"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://2.bp.blogspot.com/_xqWjI-sJPhM/SUBddU4OgyI/AAAAAAAAABA/dDqEgy0eY4k/s400/dir_compare.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5278321521680352034" /></div><div style="text-align: center;"><br /></div><div style="text-align: left;">I should know by now just to assume that Eclipse can do these things. Silly me.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Good work, Team people! This is one more task that I don't need to escape my cozy workbench for.</div></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3979075559839929708-251524688805643377?l=give-a-damus.blogspot.com'/></div>Christian W. Damushttp://www.blogger.com/profile/18244407877245708857noreply@blogger.com0tag:blogger.com,1999:blog-3979075559839929708.post-21643314290093337702008-11-20T09:39:00.000-05:002008-11-20T10:38:30.304-05:00OCL: Who Cares?This week, the <a href="http://www.omg.org/issues/ocl2-rtf">OCL 2.1 RTF</a> has had to re-launch the voting on its first ballot, because it failed to reach a quorum. With a 10-member voting list, 2 votes just didn't cut it. And these were the two companies that put some effort into resurrecting this specification by addressing a substantial number of issues.<div><br /></div><div>It's disappointing to see that there is so little interest from the OMG membership in the health of this specification that should, and I think was intended to be, a cornerstone of the the <a href="http://www.omg.org/mof/">MOF</a> architecture. There is still interest in the user community, judging by the continued influx of issue reports.</div><div><br /></div><div>No metamodel is complete without constraints that specify the well-formedness of instance models. And OCL could be a key tool in that department, if it can keep up with the evolution of MOF and UML. Indeed, it already seems to be an important part of several <a href="http://www.eclipse.org/modeling/">Eclipse modeling</a> technologies, as I <a href="https://www.eclipsecon.org/submissions/2009/view_talk.php?id=300">hope to demonstrate</a> at <a href="http://www.eclipsecon.org/2009/">EclipseCon 2009</a>. However, the current state of the specification makes the implementation of conformant tools difficult and interchange of OCL models impossible, because the language is imprecisely and inconsistently specified (some bits aren't really specified at all).</div><div><br /></div><div>A few of us are working hard to reinvigorate and reform this specification, but we need help. With just two OMG members involved at this point, it is difficult even to get through a vote, and I worry about how relevant the product will be that results from such a small collaboration. So, pitch in with your time (it doesn't take much) and elbow-grease to make OCL succeed! Let's not let this thing go the way of the <a href="http://www.amnh.org/exhibitions/expeditions/treasure_fossil/Treasures/Dodo/dodo.html">dodo</a>.</div><div><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3979075559839929708-2164331429009333770?l=give-a-damus.blogspot.com'/></div>Christian W. Damushttp://www.blogger.com/profile/18244407877245708857noreply@blogger.com0tag:blogger.com,1999:blog-3979075559839929708.post-55688666286079817642008-11-18T00:11:00.000-05:002008-11-18T00:31:37.297-05:00And Now I Lay me Down to Sleep ...Well, it looks like it must be winter, because I see <a href="http://en.wikipedia.org/wiki/Orion_(constellation)">Orion</a> high in the sky outside my window. I don't know how it is, but there is something comforting about the onset of this season, and those early nights when the great Hunter rises to watch over those of us that dwell in the northern hemisphere. I can almost feel his presence.<div><br /></div><div>The fire in the grate dims, and even <a href="http://en.wikipedia.org/wiki/Tuxedo_cat#Tuxedo_cats">Tess</a> has stopped purring and is huddling close for warmth. I ask myself, What have I done for her lately? Dished out a can of wet food, cleaned the litter pan, washed the water fountain. And what has she done for me? Only offered me the simple, unconditional, absolute affection of one of nature's most perfect animals. I feel that I have got the better part of this exchange.</div><div><br /></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3979075559839929708-5568866628607981764?l=give-a-damus.blogspot.com'/></div>Christian W. Damushttp://www.blogger.com/profile/18244407877245708857noreply@blogger.com1