Coming so near Burn’s Night, the next release of Guanxi, codename Rabbie, has been released on the sourceforge site
Guanxi::Core
- Version 1.0.0
- New Core module added to control building of the main application modules. This means each component of the Guanxi system is a separate module in CVS, allowing each to be tagged separately
- Core/releases directory added. This is the Guanxi release system. Repeatable releases based on CVS tags can be made from this directory using the build files
Guanxi::Common
- Version 1.2.6
- Added AttributeMap class to handle transforming attributes from one form/value to another
- Bag and WSDL now make use of the SAMUEL ParserPool configuration for controlling schema validation
- definitions.Logging updated for separate SP Engine and Guard log directories
Guanxi::IdP
- Version 1.2.6
- Fixed bug in org.guanxi.idp.SSO where it was only ever loading the first service-provider node from the config file
- Added support for attribute transforming to LDAPAttributor
- Added LDAPAttributorMap.xml to support Athens permission set IDs
- Added the AttributeMap config schema to guanxi-idp.xsd
- Added an Athens sample to LDAPAttributorARP.xml
- Modified idp.xml to use a new format where signing credentials and identity are separate from the service-provider definition
- Modified SSO and AttributeAuthority to use new idp.xml format
- idp.xml split into top level <service-provider> nodes with lists of <identity> and <creds> nodes to make it easier to handle multiple feds
- Setup modified to create new idp config file format. Also uses XSLT to pretty print the file now
- SP now has separate log4j config file
- Removed the log4j config file option from web.xml
- Updated the logging in SSO
- Added session support to allow single sign-on across multiple SPs
- Added documentation
Guanxi::SP
- Version 1.0.0
- First release of the Guanxi Service Provider
Guanxi::WAYF
- Version 1.2.5
- Updated the example config file
SAMUEL
- Version 1.3.1
- Modified org.guanxi.samuel.utils.ParserPool to call parse(InputSource) from parse(File)
- Modified org.guanxi.samuel.exception.ParserPoolException to call Exception
- Added Exception constructor to org.guanxi.samuel.exception.SAMUELException
- org.guanxi.samuel.utils.ParseErrorHandler methods now throws SAXException
- Added Guanxi SP and SAML resolvers to org.guanxi.samuel.utils.Resolver. Also now ignores non Guanxi and SAML entities
- Added org.guanxi.samuel.saml.metadata package
- Added org.guanxi.samuel.saml.metadata.EntityDescriptor as a base for parsing EntityDescriptor elements in SAML2 Metadata. Extensions are handled by subclassing this class
- Added Metadata classes Organization, ContactType, RoleDescriptor
- Added external schema definitions to org.guanxi.samuel.utils.ParserPool
- Added support for SOAP schema to org.guanxi.samuel.utils.Resolver
- Added org.guanxi.samuel.utils.XUtils.getNodeValue(Node, String)
- Fixed bug in org.guanxi.samuel.saml.AttributeQuery where it was putting itself in the saml assertion namespace instead of saml protocol
- ParserPool now controlled by parser.properties to turn schema validation on or off
gx_lib
- Version 1.3.1
- Added junit.jar
- Added jsr173_1.0_api.jar
- Added xbean.jar
- Added saml-1.1.jar
I had a problem with the Guanxi release system in that the build file wouldn’t copy empty directories:
<copy todir=”${sp.release.dir}/guanxi-sp-guard-bin-${release.version}”>
<fileset dir=”${tmp.dir}/${tmp.guanxi-sp-guard.bin.dir}”>
<include name=”**/*.*”/>
</fileset>
</copy>
According to the documentation on the copy task
the includeEmptyDirs attribute is set to “true” by default, so the copy task will copy empty directories found by the fileset.
Nope! WEB-INF/logs, which is empty was never copied. It seems this line is not enough:
<include name=”**/*.*”/>
you’re better off using this instead:
<include name=”**”/>
**/*.* looks for files in directories. If there are files, the directory will be recreated. If there aren’t, i.e. an emtpy directory then there’s nothing to be copied as far as **/*.* is concerned, so the directory isn’t recreated.
** selects everything so empty directories are detected and copied.
This article on the “dumming down” of computer science is quite a hoot. It bemoans the old days of pointers and recursion, unkempt beards and sandals with your punched cards. I always find these kinds of articles interesting as they’re signs of a changing landscape. They’re rarely of value in themselves, rather, they make you sit up and have a look around, see what’s doing. As a programmer, that’s always a good thing to do.
So that’s what I did and while browsing Artima, I came across this article on the next generation of C++ and this quote that, for me, explains everything:
“Many C++ users quite reasonably don’t want to become C++ experts‚Äîthey are experts in their own fields (e.g., physicists, graphics specialists, or hardware engineers) who use C++”
Programming is no longer an end in itself. You don’t need expensive contractors to build systems you rely on in your day to day job. Instead, you learn Java, or VB, PHP or some other “user oriented” language.
When I first started in academia I was suprised by the number of “Java for Dummies” books lying around and the number of teaching professionals who were knocking up VLEs in their spare time. OK, according to Frederick P. Brooks in The Mythical Man Month, these would be classed as “Software Applications” rather than “Software Systems”, in that they’ll run on the machine they were developed on. Move them to another machine and they might blow up. However, even that restriction is disappearing as J2EE makes inroads into academia. J2EE essentially makes the Brooks’ “Application” into a “System” by providing the same functionality on all machines the software will run on.
Lecturers, who have ideas on how to deliver online courses don’t have to get a budget to hire a C programmer. They just go to Amazon and buy Java2 for professionals. Professionals, hmmm. Who are the professionals of the book title? Us programmers always instantly make the assumption that it’s us, the coders. However, this isn’t the case any more, as the Artima article makes quite clear. There are professionals in many domains who need to code. They don’t, shock horror, need to master pointers or recursion. They just need to learn the syntax and off they go.
The Artima article says about novices:
“The sooner novices become experts the better”
but the people in question aren’t “novices” as coders consider novices. They’re experta with an itch that needs scratching and with the “dumming down” of coding languages such as Java and C++ they can really scratch that itch.
In fact, it’s not really dumming down. To me, it’s more the encapsulation of knowledge. C++09 will be more library oriented. i.e. you won’t have to roll-your-own, you just call library functions. This can only be good (or as good as the libraries).
Having said that, I looked for instances of “dumming down” in domains other than programming. I’m a cyclist and it occurred to me that a lot of “dumming down” has been going on in bike technology for a long time. I mean “dumming down” in the same way that the first article quoted means. In the old days, I had to dismantle the wheel hubs on my bike about once a month, take out and clean the bearings and regrease everything. I also had to do the same with the bottom bracket and remove the cranks. The bottom bracket was a pig of a job as it’s very sensitive to incorrect insertion. Get it wrong and you will ruin the bike frame and you’ll need to buy a new bike.
Cycle maintenance took know-how, time and knowledge, not to mention a lot of oil and grease, mostly over you. Now however, wheel hubs and bottom brackets come in sealed units which are virtually maintenance free. They come with their own little sealed worlds that contain all the grease and bearings they’ll ever need. All you do is fit and forget. It’s more than that though. When you can get hold of such easy to use parts, you start to realise that you can “configure and build” your own bike. You don’t have to buy a “shrink wrap” bike from the shop. You pick-n-mix the components and build the bike you want. I’m in Audax so taking such an approach to bike building yields benefits that helps me in my area of “expertise”.
Programming languages are starting to offer the same benefits as cycle components. They offer experts in domains other than computer science a way to add value to what they do.
To the “pointers and recursion” crowd I offer the following fictional exchange, though no doubt enacted somewhere out on the road:
Young cyclist at side of road with puncture.
Old cyclist stops and remarks, “you’ll have a hell of job gluing that tyre back on in this rain sonny”.
Young cyclist whips off old inner tube, replaces with new one and rides off into the rain.
Old cyclist: “new fangled clincher tyres. Kids these days don’t even know how to stitch tubs back on”
Us cyclists have already progressed from the pointers/recursion (tubular tyres) to library oriented programming (clinchers). It’ll be interesting to see how the programming languages do the same.
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
The Big Yin interview
Despite the huge leaps in medical science, there’s still a hard core of abusive Chinese farmers who insist that bear bile is good for you and cures your ills. These bears are caged in tiny barred hell holes, writhing as if insane with their fur rubbed off exposing the raw flesh underneath, while a metal tube hangs from their gallbladder.
The reporter on the news tonight mentioned human rights. Farmers must be compensated for the loss of income when the authorities rescue these hapless creatures. Well, what a load of crap. If they want compensation, they should stick a metal tube in their own gallbladders and milk their own bile. I’m sure they’ve got enough of it to serve the cranky Chinese medical system.
Hopefully this vile and evil practice will eventually be eradicated. In the meantime, some bears got their own back on one of these “people”:
Bear farmer eaten by abused animals
I got so fed up with Tomcat on OS X displaying blank pages after a restart when it should have been showing servlets or JSPs that I decided to root aboot – turns out if you delete the work directory:
/usr/local/tomcat/work/Catalina/HOSTNAME
then it works!
The disgusting practice of bear farming is once again under international scrutiny. How these people can eschew modern medicine to inflict pain and suffering on defenceless creatures is beyond comprehension. It’s often said that what one will do to an animal, one will do to a person. Is that a fallacy? Just look at Tibet.
Ages ago I remember hearing about Sequoia having a Java API on the postoffices but so far, nothing. The only way to programmatically create Groupwise accounts is through COM:
Groupwise Adinistrative Object API
About 3 years ago, this was largely undocumented. All I had to go on was a C++ header file. Now, it’s fully updated and documented. Still no sign of Java support though.
C# has made an appearance now with the LDAP C# libraries:
A Beginner’s Guide to LDAP Development
LDAP Libraries for C#
Using .NET C# LDAP Library
In fact the Novell Developer Kit (NDK) is building up slowly:
Novell Developer Kit
The latest I’ve read in the various webzines points to Groupwise Aspen in the fall of 2006 – autumn? With Cedar coming in 2008.
The quotes from Novell are:
“In GroupWise Aspen, Novell plans to further team collaboration and provide new data backup capabilities. Novell will also focus on enabling more partner applications. To date, Novell partners have taken advantage of trusted application programming interfaces (API) to create more than 150 add-on products that run efficiently with GroupWise.”
“The focus for GroupWise Cedar is to bring the rich functionality of GroupWise to users on any platform, anywhere at any time, to improve user experience, and to increase administrative functionality and grow scalability. This release will build on Sequoia and Aspen for team-enabled collaboration and further simplified administration.”
(my emphasis)
To me, it would seem that perhaps Cedar will provide the Java admin API. That’s 2008. Considering it was originally scheduled for release with Sequoia, that’s a 3 year delay.
Will we see a C# admin API instead?
Novell Reveals Long-term Plans for GroupWise
A Weegie Chronicle exlusive! Our roving reporter sobers up to reveal cover up.
From our field reporter Harry McDesperate:
This item, reported on the news, purports to be a ridiculous attempt to stop global warming by preventing cattle from belching.
No matter the creatures have been doing this for thousands and thousands of years, scientists have apparently traced the source of global warming to the front end of a coo.
Apparently the billions of cars, planes, power stations and always on TVs and servers are a red herring. Global warming is actually caused by bovine emissions!
Can this be true? Of course not. It’s probably a cunningly disguised cover up as the clouds of vapour from farms were attracting undue attention from local academics. Noticing the hovering mass of warm, fetid air, the local educational establishments emptied and the interns made their inexorable way towards the towering columns of tropically humid and pungent aromas, thinking a conference had started.
One academic, upon reaching the source of the pheromonic trail, gave the following:
“It were ‘orrible. We were completely fooled. We thought we were going to a conference. When we got here, it was nothing but coos. Hunners of them. Something must be done about this. The nation’s academics can’t be seen to be wasting their time on hot air trails such as this.”
Farmer Giles, upon awaking from his slumbers and pulling open his curtains, in the buff, as is his want of a morning was totally taken aback by the swarming mass of attendees in the farmyard:
“I’ve neever seen the like o’ it. One of them came up to me and asked, ‘where’s the BOF sessions?’. I nearly took me stick to ‘im so I did.”
Another group of academics, crowded round a bemused coo declined to be interviewed.
Rumours are now rife that, to stop further embarrassment to the nation’s conference goers, scientists have shifted the blame for global warming onto cattle. A lurking scientist, observing the academics’ farmyard fumings commented:
“It’s always the quiet ones. Here we are afforesting the country in wind farms and legislating for greater fuel tax and less cars on the road. The ice caps are shrinking to such an extent that polar bears are drowing at sea looking for food and all along the real reason has been under our noses. Bloody coos! And to think these boogers have been doing this for thousands of years. Only one thing to do to save the planet. Plug their mooths.”
Scientists reckon that by adding chemicals to their feed, they can prevent coos belching and allegedly attracting swarms of academics. They also reckon that the methane previously generated will be converted to more efficient growth. How can they tell? Perhaps it will just find another way out. Round the other end of the coo.
Could this rearguard release of vapour create a new breed of academic? Only time will tell.
Harry McDesperate, from a coo farm, somewhere ootside Glesga