#Fail Bot?
-- Someone's been watching too much made-for-tv sci-fi, I think
Much ado about scripting, Linux & Eclipse: card subject to change
2010-06-18
2010-02-16
Ontario's capital now in the U.S.A.
2010-01-18
Monitor fail
Well, that's a week of my life I'll never have again. Spent most of last week playing with WinXP, LinuxMint 8, and Fedora 11 & 12 (both 32- and 64-bit) trying to find a solution to my external display issues.
Turns out that it's a software issue: the latest xorg intel driver has a bug.
2009-12-31
Discount Fail
I'm having a problem w/ a purchase.
I added a Blackberry Bold compatible 2400mAh battery to my cart, on sale for 20% off ($24.07).
On page two, the price was still 20% discounted:
On page three of the cart, the price jumped back up to the full $30.09 price.
So... is this item on sale, or not?
2009-07-16
Tracking Build Status With Hudson Data APIs
A number of people have been twittering recently about Hudson Helper, and the fact that it can't (yet) support http access to Hudson servers. (There's just no pleasing some people, eh David?)
UPDATE: David reports that Hudson Helper has worked with both http and https since day one. He invites direct feedback if you're having problems.
To help fill this gap, I'd like to detail some of the handy API features of Hudson I've discovered since I first started using it back in October, which cane be fetched via http (or https) in a browser or via a script.
Datum | Example |
---|---|
Latest Successful build number | buildNumber |
Latest Successful zip (published artifact) | GEF-Update-*.zip |
All checked out Project Set Files (Hudson workspace) | *.psf |
XML Digest of Latest Stable Build | lastStableBuild/api/xml |
SVN revision used for Latest Stable Build | //changeSet/revision/revision |
For more on the APIs available to the Latest Successful, Stable, Failed, or in fact simply the Latest Build, see:
Of course, should you want details on a specific build rather than the latest, you can replace the "last*Build" token with an actual build number.
Finally, because no post about APIs should be complete with out some script showing how to exploit that interface, here's a quick example of how to fetch the latest successful, and as yet unreleased Drools 5.1 runtime library zip for use in our JBoss Tools 3.1.0.M2 builds. In this example, we fetch the build number for the last successful build and compare it to a cached version. We also fetch and cache the latest SVN revision number (in a build.properties file) so that we can later fetch Drools sources from the same point in time as the precompiled Drools binaries in the zip. This guarantees we're building from trunk, but only a good build in trunk, skipping over any failed builds or intermediate states (partial commits).
#!/bin/bash droolsSNAPSHOTnum=drools-SNAPSHOT-num.txt droolsSNAPSHOTrev=drools-SNAPSHOT-rev.txt droolsSNAPSHOTzip=drools-SNAPSHOT-bin.zip droolsSNAPSHOTurl=http://jboss-hudson-server/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/drools-5.1.0.SNAPSHOT-bin.zip buildNumOld=0; if [[ -f $droolsSNAPSHOTnum ]]; then buildNumOld=$(cat $droolsSNAPSHOTnum); fi buildNumNew=$(wget -q --no-clobber -O - http://jboss-hudson-server/hudson/job/drools/lastSuccessfulBuild/buildNumber) buildRevOld=0; if [[ -f $droolsSNAPSHOTrev ]]; then buildRevOld=$(cat $droolsSNAPSHOTrev); fi buildRevNew=$(wget -q --no-clobber -O - http://jboss-hudson-server/hudson/job/drools/lastSuccessfulBuild/api/xml?xpath=//changeSet/revision/revision) if [[ $buildNumNew -gt $buildNumOld ]]; then # get:Oh, and BTW, if you're ever looking for the latest hudson.war executable, it's always here.27013 ; must change to 27013 echo $buildRevNew > $droolsSNAPSHOTrev; sed -i "s#\| ##g" $droolsSNAPSHOTrev buildRevNew="$(cat $droolsSNAPSHOTrev)"; #echo "."$buildRevNew"." # replace "defaultTag=trunk:\d+" with defaultTag=trunk:${buildRevNew} in build.properties # defaultSvnUrl=http://anonsvn.jboss.org/repos/labs/labs/jbossrules # defaultTag=trunk:27013 sed -i "s#defaultTag=trunk:\d\+#defaultTag=trunk:$buildRevNew#g" build.properties; # grep "defaultTag=trunk:" build.properties echo $buildNumNew > $droolsSNAPSHOTnum; echo "Download $droolsSNAPSHOTurl ..." wget -q --no-clobber -O $droolsSNAPSHOTzip $droolsSNAPSHOTurl # ... fi
2009-07-09
Simplified Win XP Pro EULA
http://www.microsoft.com/windowsxp/eula/pro.mspx
-- Reminds me of the WTFPL license...
2009-06-24
I know it's a beta, but c'mon...
In addition to crashing a few times a day, Firefox 3.5b4 has this cool overlapping button feature on its "fail whale" page:
2009-06-23
Workspace #fail
Another obscure and unhelpful error message that now pops up about once every five minutes while I'm working in Eclipse. Upgraded to Eclipse 3.5 a day before the official release (thanks to my Friends of Eclipse membership), but to no avail. Evidently my workspace is pooched somehow.
Why can't more error messages tell you *HOW TO SOLVE THE PROBLEM*, rather than just reporting that something went wrong? Surely as software devs we should be able to do better... if for no better reason that to avoid having to listen to end users like myself complain? :P
2009-06-15
2009-05-28
Eclipse Community Survey: 4 More Insights
Ian blogged 6 insights from this year's Eclipse Community Survey; here are a few more to get us to a full Top Ten list.
- What is your primary operating system?
Linux is certainly a strong player in both development (26%) and deployment (40%), beating Mac (7% and 3%) but losing to Windows (64% and 38%). More interesting to me is the fragmentation of Linux, showing that Ubuntu beats RHEL/Fedora by 10% in the desktop space (development), but loses in the server space (deployment). - Where do you typically go to find Eclipse-related information?
About 2/3rds said Google and/or the Eclipse home page, which suggests that the homepage has certainly improved - but a lot of people would rather just search. However, the survey didn't mention our finely crafted wiki.eclipse.org, or help.eclipse.org. Survey #FAIL. - Are you or the organization you work for a member of the Eclipse Foundation?
Five out of six respondents (83%) said No. So either we've done a terrible job of converting users into members, or people would rather give back in the form of testing, documentation, filing bugs, and writing articles. I suspect it's a little of both, but mostly the former.
Kudos to the contributors, and shame on the corporate drones for not convincing their queen to send a little honey back to Eclipse. - In the last year, how have you participated in the Eclipse community?
While nearly a quarter of respondents (24%) said "I entered at least one bug into Bugzilla", more than 2/3rds said they "used Eclipse but didn't actively participate in the community." To me that's a clear sign we have more users than contributors. Is that because most Eclipse users are Windows folks who don't grok that Open Source works best when everyone sees themselves as part of the process, rather than just a consumer?
I've been reading More Joel On Software recently, thanks to winning a prize for bringing a bag purchased in Alaska to EclipseCon this past March. One article stands out from there in this context, Building Communities with Software, from March 2003. Here's an excerpt:
The social scientist Ray Oldenburg talks about how humans need a third place, besides work and home, to meet with friends, have a beer, discuss the events of the day, and enjoy some human interaction. Coffee shops, bars, hair salons, beer gardens, pool halls, clubs, and other hangouts are as vital as factories, schools and apartments ["The Great Good Place", 1989]. But capitalist society has been eroding those third places, and society is left impoverished....
So it's no surprise that so many programmers, desperate for a little human contact, flock to online communities - chat rooms, discussion forums, open source projects, and Ultima Online. In creating community software, we are, to some extent, trying to create a third place.
If you feel your third place is lacking, please consider contributing more to Eclipse, to Fedora or CentOS, to JBoss Tools, or whatever tickles your fancy. Just give something back. Your community will thank you, since, after all, "A rising tide lifts all boats."
UPDATE, 2009/05/30: Mike's right, calling our users "freeloaders" isn't fair. I just wish there was a more obvious way to convert users into contributors.
2009-05-20
Use Your Metadata, Vol. 1
It's been a bad week for update sites and Galileo contribution from Modeling... and I confess I'm partly to blame. That and the fact that despite documenting processes, workarounds, tips, tricks, and advice... no one Reads The Fine Mediawiki (Category:Releng or Modeling Project Releng).
Highlights:
- The mysterious appearance of a new version of org.eclipse.osgi_*.jar in releng.basebuilder's R35_M5 tag, which caused an ant <copy/> used to rename a file to fail because copy can't merge two jars into one file. Still no idea why an old basebuilder tag would magically grow a new jars, but I've worked around the now-faulty assumption w/ smarter Ant code.
- A change to the way our sites are created, in an attempt to workaround what I believe (but can't yet prove) is a flaw in the way content.xml is produced - namely, if the xml file is > 21M, it gets truncated or corrupted. We used to cache 2 or 3 releases of a given project (eg., M5 and M6) on the same site, in order to give people a way to "back up" to the previous release; now, you only get the latest (bug 271486). I confess I screwed up here and instead of replacing a folder with new contents, I was copying INTO that folder - `cp -r one two` resulted in folder one/two/ instead of two/. I fixed that by changing to a move instead of a copy, but a downstream process failed because of the assumption that both one/ and two/ would exist. The lessons here are: a) shotgun debugging sucks, and b) don't change the way stuff is created after M7.
- People publishing two updates to a site at the same time, resulting in the appearance of two </site> tags in a site.xml file, causing p2 metadata generation to be incomplete or fail entirely; unfortunately, no error is logged when this happens so it's rather difficult to decipher the tea leaves. This may be the real source of the metadata corruption, if not the "file is too big" issue above.
- Observations about obsolete jars corrupting metadata, but no one taking it upon themselves to clean up the site or do some troubleshooting
- People inconsistently naming their milestones (it's 2.0.0M7, not just M7!) and corrupting our Release Notes database. This one amazes me the most since it takes seconds to see what was done last time (check any of the following: RSS feeds, release notes, downloads pages, update sites) and follow suit. And, of course, the conventions are documented, along with the rationale (consistent patterns == simpler code).
Or, to put it another way...
Sick of this life
Not that you'd care
I'm not the only one with
whom these feelings I share
Nobody understands
Quite why we're here
We're searchin' for answers
That never appear
But maybe if I looked real hard I'd
I'd see your tryin' too
To understand this life,
That we're all goin' through
Sometimes I feel like I'm beatin' a dead horse
And I don't know why you'd be bringin' me down
I'd like to think that your love's
Worth a tad more
It may sound funny but you'd think by now
I'd be smilin'
I guess some things never change
Never change
So, please, can we stop opening bugs (277172, 277105, 277034, 276928, 276641) and just use the tools and docs already available?
2009-04-01
Dash Athena: Epic Fail
Damn airport scanners.
On Sunday while I was flying home from EclipseCon, I decided to try out Git, and migrated the whole Dash CVS tree into a local Git repo. Then, I deleted the CVS stuff in dev.eclipse.org because Git is so much better and DVCS is the Way of the Future.
Unfortunately, somewhere between Calgary and Toronto, my hard drive died, taking with it the whole repo.
Since we now have to start over completely from scratch, Andrew and I have decided to take this opportunity to re-architect a few things:
- Instead of Ant scripts which wrap & simplify PDE, we're going to use perl scripts which wrap ant4eclipse. No one really cares about OSGi anymore anyway.
- Instead of being able to run a build in Eclipse, we're going to support running on MIDP devices only (smartphones) and older hardware (bug 260000). This will make builds much smaller and more portable for everyone.
- We're dropping the built-in support for running JUnit tests as part of an automated build, because the Agile way is to do Build Breakage Driven Development (BBDD) rather than TDD.
- Because the Hudson instance on build.eclipse.org is only accessible to an elite few (bug 270633), we're dropping that too, in favour of Cruise Control, much lauded by the WTP and Orbit dev teams for its friendly user interface and many extensible configuration options.
Should you have any concerns with this new plan, don't hesitate to post your comments here. We value the community's input, and will take your thoughts under advisement. Then ignore them and do what we want.