Update: Photo added and Driver’s license obtained.
With the rising prices of gas – and because I hang out with John King and John Merlin-Williams a lot – and because I have a credit for some riding gear at www.ridersdiscount.com – I decided to get a motorcycle.
I took driver’s training Saturday at Alpha Training (http://www.alphatrainingcenter.com/) and got a perfect on the driving test and perfect on the written test. Jerry taught the class and he was *excellent* I rented a Suzuki GZ 250 from them since I do not own a bike – I loved the bike and it probably would get 70 miles per gallon.
So right after training I went to full Throttle Motorsports (http://www.fullthrottlemotorsports.com/) and they had a GZ 250 *in stock* – it lists for $3200 but all included would be over $4000 – and with a windshield, bags, etc – I figured it would take 400 trips to work and back to make it worth my while. So I did not have a “buy” case in hand.
I looked on Ebay and all over for online used bikes for sale – generally I found nothing – kind of because I did not know what I was looking for. So in desperation I grabbed the Sunday paper and read through the classified ads – I found a bike for $1300 and called – turns out the guy lives about two miles from my house.
So I went over and took a test drive – this is an older bike but it is a Honda and Michael (the owner) was meticulous about its maintenance. After a test drive I liked it a lot. It is a Honda 450 twin so it can handle freeway driving in bits – unlike a 250 single cylinder. Also it already had a windshield and box for my gear driving to work. It was all figured out and debugged. It has a lot of miles on it – that is my only worry.
Now my payback is 120 trips to and from work – and when I want to buy that new bike – I can probably sell this for almost what I paid for it as long as I keep it in good shape.
So I now own a bike – this morning I will get my insurance and cycle permit. For the first time in my life I will be legally riding a road bike – it is a good feeling. I might be off line for an hour or so just to get the feel of the open road.
This is *not* even close to a crotch-rocket – it looks like a grandpa bike – with a windshield and bags – its cool factor is about zero. And when you see my bright-yellow jacket – the cool factor continues to drop down. But its comfort factor and safety factor should be pretty good – a tradeoff I am willing to make.
Insurance was pretty cheap – AAA did it for $220 per year – the bike was below the 750CC limit where they need a picture to prove it is not a crotch-rocket before they will insure it. Being old-school has its atvantages sometimes.
I went to the Secretary of State – passed their written – with two wrong – one was a dumb question and the other had two equally correct answers. I sprung for the extra $35.00 and got the vanity license plate “csev”.
Too bad I don’t have to go down to Ann Arbor until Thursday!
Now I need to buy all my protective gear – no need to get scratched up in an accident – off to John Merlin Williams for some advice.
Initially it will cost me gas money because I will be looking for any excuse to drive around. I put 20 miles on it just for yucks – some back road driving and some highway driving – it is amazing how much the training helps me to think properly on the bike. Oh yeah and even though I have not been on a street bike in close to 30 years – fellow bikers still wave to each other as they pass by. Some things should never change.
Category Archives: Uncategorized
Should a new Project use Ajax?
I got a question about whether or not to use Ajax in a new project from a former student. Here is my answer.
Reply to Michael Feldstein’s Blog
Michael made a nice post about my SimpleLTI effort – here are some of my clarifications as well as comments on one of his previous posts. Michael’s post about SimpleLTI:
http://mfeldstein.com/secret-society-maybe-not-so-secret/
Michael’s earlier post about IMS needing to open up:
http://mfeldstein.com/opening-up-the-ims/
I also can fix the typos I made in Michael’s entry :)
Simple Tool Interoperability – Launch
It is late so I will keep it short. I just launched my Simple Learning Tool Interoperability stuff. It is all up on the Google App Engine at:
http://simplelti.appspot.com/
It includes a test harness, developer documentation, and sample code in Java, php, perl, ruby, and python.
I also have a fully functional Sakai Tool that fully supports the Simple LTI protocol.
Probably the best place to start is the developer documentation.
This is kind of the kick off for the IMS/Sakai Google Summer of code stuff – I tried to get a head start.
Summer has finally started – Simple Tools Interoperability
Even though the last day of class was April 15 – it has not felt like summer until today. I had travel upon travel and lots of little things that kept me really busy. And we went to Summer Circle on Saturday (Free outdoor theater on the Red Cedar River) – so that means it must be summer. This week – I have no where to go (except a quick day trip on Thursday to DC) and nothing to do. So it is “productivity time” – and I get to work on the stuff that I like to work on.
I am cranking on a new thing called Simple Learning Tool Interoperability. This is derived from draft work in process in IMS right now (and yes I checked with Rob before talking about this). The LMS LTI 2 stuff is really taking off with leadership from Wimba, Blackboard, and Microsoft – they are building some pretty cool stuff that will take a few months to sort out.
In the interim, because I have this Google Summer of Code thing and because I have committed to have two tools integrated into Sakai at University of Michigan this Fall, I cannot wait a “few months”. I need to start now – or I will look bad to Google and to UM – and my Google Students (Katherine and Jordi) will look bad as well – we cannot let that happen.
So I extracted a few tasty bits of the IMS LTI 2.0 spec and have written up my own spec which is not identical to IMS LTI 2.0 – but pays major homage to IMS LTI 2.0. Last week, IMS LTI 2.0 made a bit of a shift in direction – in a very good direction in my opinion – and my Simple LTI was rewritten completely since last Wednesday to reflect the new change in direction – and it is aligned with what I believe (this is Chuck talking and not IMS) will be closely aligned with the final IMS LTI spec.
My spec is finished and I have a bunch of test code in place (it has been a fun week and weekend). I will publish this in a few days – my next step is to take the code in SVN and build a solid Sakai implementation of the newly minted spec.
By implementing the spec and using my own testing environment, I make sure that I catch little stupidness in the spec. Also it makes it so I have more sample code to share with others to make it easier to update the spec.
If you really want to watch what s going on – be like Seth and just watch SVN – I just made a tag to keep the Wimba-inspired version of LTI 2.0 in hand because SiteMaker has programmed to that old draft of the spec.
Make a copy of the final version of the Wimba-inspired version of the LTI portlet - this is what works with Sitemaker 4.6 for now. From this point forward, the trunk will be stripped down to only support the new Simple LTI specification. I will publish the spec after the code works as a way to review the spec carefully. --This line, and those below, will be ignored-- A https://source.sakaiproject.org/contrib/sakai-portlets/tags/sitemmaker-002
I will try to bring SiteMaker forward to the new spec – but their release process may have “left the port”. I will switch SAMS (Physics grading, assessment and homework system at UM) to the new spec.
I should be announcing the new document in a few days. Watch this space.
A Simple Home Page on Google App Engine
I wanted to get a simple home page on Google App Engine – I may someday migrate a version of www.dr-chuck.com to Google App Engine because I am a firm believer in things that are free :)
So my new really light home page is http://dr-chuck.appspot.com/. For now it is just some static HTML with some links.
But I wanted to make it an expandable application so I made it do a simple template and use the pattern where the program becomes an application server. So here is the code:
Simple Google App Engine Template – Simple Example
I was having some problems with Google App Engine’s Template – I kept getting the following message:
global TemplateDoesNotExist
Multi-Connection Router – LinkSys RV042
I have had both cable modem and DSL now for a long time and intend to keep both. I do so much work from home – that I cannot afford the 2-3% outage that my cable modem seems to have. So I added the second cheapest DSL from ATT as a backup. It does give me free ATT WiFi in a few airports for free.
Up til now, I have been just going downstairs and switching cables when one r the other service went down – or just used the slower DSL all the time.
But thanks to Bryan Holland I found a LinkSys RV042 router that does a dual network connection for the home.
It installs pretty easily. Initially it only uses one link and uses the other as backup. SO I switched it to load balancing – this was very cool – except little things did not work. Mostly YouTube messes up – my guess is that it gets two IPs on successive requests and decides a session has been stolen and zaps you :( My guess is that hyper sensitive software will do the same.
So I go back to the failover mode by default – at least my family does not have to switch the wires while I am traveling. It is simple enough to switch back and forth.
If I am going to do a lot of uploads or downloads, I temporarily turn on load balancing and then turn it back off when my need for bandwidth is back to normal.
It was pretty reasonably priced.
Review: LinkSys RV042
P.S. I typed this entire post waiting for my fresh checkout of Sakai’s trunk to recompile. Actually while waiting for the compile – I went to get a cup of coffee, talked to my daughter for a few minutes – and *then* typed this blog post. Well – got to run – the compile is *almost* done – it is compiling sakai-reset-pass
I Got Music Off an iPod after the PC that Owned it was reformatted
I keep losing iPod home directories when I format a PC Laptop. So family members are forever redoing their iPods because I had not taken time it takes to hack into an iPod. Don’t tell my daughter who re-ripped her collection over three days – that I could have pulled off all her music.
Today I faced yet another family iPod with some music and a XP iTunes install that was totally formatted. I decided to give it a try again. It seemed so hard the other times I googled things – but this time was different. First I did this search:
Google://restoring music from an ipod
The first link was here from like three years ago:
http://www.engadget.com/2004/11/02/how-to-get-music-off-your-ipod/
It led me to this software:
http://www.ilinkpod.com/
This rocks – it mounts the music – you can just copy it back on to your main system. The key is that he file names are four character things like BLMX.MP4 – don’t worry abut this – just drag them back into iTunes and there is enough metadata to reconstruct the artist, etc.
Sweet – I need to send the ilinkpod dude some cash.
Stepping into Multi-Tenancy Users for Sakai – SAK-13671
This is a set of proposed changes to a very core API – UserDirectory services – so I would like folks to take a look and comment before work gets started. Take a look at the JIRA for more detail:
http://bugs.sakaiproject.org/jira/browse/SAK-13671
The basic idea is to make it so we can have enterprise IDs from multiple sources – probably the best use case is if you wanted to build a friend-like capability using perhaps Radius and OpenID to compliment your local accounts perhaps coming from a campus LDAP/Kerberos or something. You want to be able to tolerate an account “csev” from any of the three sources – i.e. you don’t want it to be a security hole if the local csev account is a teacher for a course and an account named “csev” shows up from an OpenID or Radius Source – and all of a sudden they are teaching all my courses.
Since Sakai has an internal random ID for all users in places like Realm tables, etc – the is a pretty surgical change in terms of data structure. We only record the Enterprise ID (eid) in one table: SAKAI_USER_ID_MAP – I propose to add an ESOURCE column to this table. The EID/ESOURCE combination is the unique key now for the table.
We leave the column NULL for all accounts on the system and all the current calls to mae new users leave the column NULL – so unless you start adding these users from another Enterprise, nothing changes.
If on the other hand, you come up with some new approach to login – such as Shibboleth or a Radius login – and this login process starts making new users with different ESOURCE values – then these accounts with non-NULL ESOURCE values do not collide with the normal internal and default enterprise users. The accounts “pass in the night” from an AuthZ, etc perspective.
The Changes to UserDirectoryService are pretty simple – anywhere there is an Enterprise ID – we add a new method with one more optional parameter – the Enterprise Source – sourceId – so the methods look like this:
Old:
addUser(String id, String eid)
New:
addUser(String id, String eid, String sourceId)
Old:
authenticate(String loginId, String password)
Added:
authenticate(String loginId, String sourceId, String password)
We keep the old methods – they are the same as calling the new methods with a sourceId of NULL.
There is more detail in the JIRA http://bugs.sakaiproject.org/jira/browse/SAK-13671
Feel free to add comments there. Since this touches a pretty core API – I want to make sure that it is well discussed before starting the branch. Assuming we like the general approach – then it can be coded up in a branch and folks will get many more opportunities to review it in detail and comment. I just wanted to get the dialog started early.
I have no current plans in this JIRA to change the provider API – for now we can use the providers for the “default” enterprise so nothing needs to change. At some point we might want multiple providers – one for each enterprise source – or perhaps just pass in the enterprise source as a parameter. You are welcome to think this through – I would like to do that as a separate JIRA.
The folks who find this the most useful are those who might want to use Sakai as a platform for software as a service.
If you can think of risks and/or issues – please bring them up on the dev list or in the JIRA.