June 25, 2008

Patent: Garage Door Opener with Power-fail light

Sometimes I come up with an idea that I want to patent but I am so busy that I just blog it instead. Hopefully this will make it into the Internet Archive and folks can send me money when they want to license my invention.

This one is pretty simple - add a battery-backed up light or LED to garage door openers so that when power fails, the light comes on and makes it safe to go through the garage. You just need to put electronic logic for the charging and lighting and a battery.

You could do these separately - but it would be really nice to just have this a feature of all garage door openers for safety.

The batteries would need to be replaceable - it would be nice to use low power LEDs which have a good light to power ration - and then you could probably do this with 4-6 rechargable AA-cells and get a few hours of light.

Picture:

Update: This patent has already been challenged based on prior art. Aaron Z showed me this page:

http://www.lonestardoor.com/wd_doormaster.html

With this quote:

It even features emergency battery-powered operation!

* U.S. Patent No. 413,867

Innovative technology that provides maximum safety, convenience and security for your home and family.

And Aaron actually had such an opener. So that might suggest that my blog-patent is not worth much - but with Byzantine Patent law - it might still work out nicely for me - even though there is a long-standing product in the market - and a patent - it is OK. Part of the patent process is disclosing any prior art you know of - so this is my official disclosure.

Posted by csev at 05:40 PM

Patent: MagSafe converter/extender

Sometimes I come up with an idea that I want to patent but I am so busy that I just blog it instead. Hopefully this will make it into the internet archive and folks can send me money when they want to license my invention.

The idea is pretty simple and shown in this picture:

The idea is to make a simple cord - on one end is a female MagSafe adaptor and on the other end is a male MagSafe adaptor.

It allows old power supplies to be used with new computers - it keeps folks from buying too many double power supplies - such as for home and work. One power supply can be used for many computers.

Posted by csev at 05:35 PM

June 24, 2008

iPhone Picture Woes - Blank Pictures

My iPhone has become increasingly less stable when it comes to taking pictures - I found an Apple discussion a while back that suggested a reset to factory settings and then taking one picture before doing the restore - that seemed to work - but the problem keeps coming back.

So more surgery seems necessary. I did some more digging and came up with this discussion:

http://discussions.apple.com/thread.jspa?threadID=1183455

This adds some good hacking to the reset pattern - you go into a weird directory and delete a weirdly named file - this sounds like the kind of stuff that will work.

I really don't want to jailbreak my phone for the sole purpose of working around a bug that Apple could fix with one hand tied behind its back!

The trick is to delete a file that configures the "next photo number". Interestingly in the file that I deleted and in the file mentioned in the above it has moved beyond taking 1023 or 1024 pictures. Hmm - something crapping out when it is near a power of two.

My hypothesis is that this problem is probably a combination of iPhoto and iPhone and when we delete the file - we avoid the problem for the next 1024 pictures... Hmmm.

The cool thing about this is that once you perform this - you can once again go into iPhoto - import all, and then delete all - and your iPhone camera is not bricked! Also you can manually delete all the photos on the iPhone and the camera is not bricked.

So it seems as though you just need to backup your iPhone, Restore it to factory settings, remove this file than Restore the iPhone from backup and you have another 1024 worry-free pictures! Only time will tell. In a funny irony, one of the blog posts was titled "My iPhone ran out of film!" - in a way - this is true - because of the bug, some iPhones only have 1024 pictures in them when they come from the factory - so it did run out of film. OK - perhaps that was only funny to me.

The nice thing is that now that I have a workaround for the bug, I don't need to buy a 3G phone quite so soon - a phone without a camera - really makes me unhappy.

At some point I got so mad that I went into conspiracy mode and suspected Apple of introducing this bug - just to get me to buy a 3G phone - because I never saw it until the 1.1.4 update - but if it is just a 1024 issue - the more rational explanation is that it just took me that long to get to 1024 pictures.

It would be good if folks who find their iPhone camera messed up to look at the contents of the file and see if the 1024 (or 1023) pattern holds.

My instructions are below.

  501  cd ~/Library/
  502  ls
  503  find . -name 'e968*'
  504  cd Application\ Support/MobileSync/Backup/
  505  ls
  506  cd 41aedf3aa971f24ca76f20053f63f164c78f929b/
  507  ls
  508  vi f1b43d3b3ecf259a3626c13a8b0cebd8ba513117.mdbackup 

<plist version="1.0">
<dict>
        <key>LastFileGroupNumber-100</key>
        <integer>1023</integer>
        <key>LastFileGroupNumber-101</key>
        <integer>92</integer>
</dict>
</plist>

  511  rm f1b43d3b3ecf259a3626c13a8b0cebd8ba513117.mdbackup 
  
Restored iPhone from iTunes

Restored from Backup when prompted

Look at the file again:

<plist version="1.0">
<dict>
        <key>LastFileGroupNumber-100</key>
        <integer>5</integer>
</dict>
</plist>
Posted by csev at 09:25 AM

June 23, 2008

Bought a Motorcycle - Honda CB450E - 1983

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.

Posted by csev at 09:06 AM

June 21, 2008

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.

Your tech lead is right in that doing Ajax directly and writing it all from Javascript is crazy - browser differences drive you nuts and you really never can be sure that things work across browsers until you have been in production for a while. I wrote some code in Sakai that used XHTMLRequest directly in Javascript about three years ago - I was nervous for about a year after the code went into production. There were never any reported bugs - but the code was really simple - nothing like the Ajax of today.

What your tech lead *might* be saying is that they have a web framework that they like and he does not know how to do Ajax in that framework. If I knew the framework it would be helpful - word like Struts, Java Server Faces (JSF), Velocity, Spring Web Flow, Tapestry, would give me a clue - perhaps he is nervous - if I was a JSF shop I would be nervous about Ajax. If you are writing portlets - that might mean that Ajax is technically difficult in that environment - but I don't know for sure. I know Ajax is technically difficult in the Portlet environment in the purely standards world - but vendor implementations may have clever workarounds.

One problem with Ajax is accessibility - it is still an open issue - progress is being made - but if your application needs accessibility 100% - avoiding Ajax is probably a good idea.

However with all that said against Ajax, the browser issue is kind of a non-issue - if none of the above are show stoppers - the key is to use a library for Ajax - most use JQuery - in SI539 we used Prototype:

http://jquery.com/
http://www.prototypejs.org/

I like prototype because it is easy as a developer. But real pros prefer jquery because it is cleaner in how it does its thing.

With lots of web applications out there using these libraries - there is safety in numbers - by following the crowd - your app will be no worse then the rest. With Google using Ajax for virtually all its applications - folks whose browsers don't support Ajax well - generally get new browsers.

So for me, this is how I come down on Ajax - (a) If you are making a web site that is trying to be sticky - you hope users get addicted to the site - and your development environment works with Ajax - definitely use Ajax and (b) if you are building something that people are forced to use (like CTools at UM) avoid Ajax except perhaps where it is really necessary - and then make sure to provide an accessible option.

When users are forced to use an application - accessibility can not be ignored. For sites that are trying to build a community from random people around the world - a better/more functional/more usable site is more likely to attract and keep people - and yes accessibility is compromised - but most startup efforts are trying to show that their idea is successful to get the next round of $$ anyways. So they cut corners in lots and lots areas including accessibility. Not pretty but it is the reality of making prototype stuff.

I would also note that accessibility is sadly pretty lousy in many non-Ajax applications as well - so sometimes Accessibility is a bit of a red herring - folks say "Uh we can't do Ajax because of accessibility" and then you ask - "Are we going to build an accessible site?" and then the answer is "No, we don't have time for that but we plan to fix it later" - usually sadly later turns into never as prototype code gets pressed into production.

Did that make sense?

Posted by csev at 07:37 AM

June 18, 2008

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 :)

Michael - just to clarify - my new site is not technically a subset of the IMS LTI specification. The scope of Simple LTI is a subset of the *scope* of the LTI spec - and Simple LTI takes a very similar technical approach to IMS LTI 2.0. Because of the timing of my Google Summer of Code projects and the timing of the IMS LTI 2.0 spec - I needed to do *something* so those students could move forward. Simple LTI is just one vendor’s approach to this (i.e. me and all the pals I can round up). As a Sakai developer I want something that could be in use in limited production in Sakai (and wherever else) this Fall - hence I need to do something now. The beauty of this approach is that by staying close to IMS LTI, I can help get the industry aligned in anticipation of the release of LTI - we can learn about real engineering issues in real-life situations based on real implementations - and use that to inform the IMS LTI process.

Just to be clear, Rob Abel has approved and encouraged what I am doing with Simple LTI - I sent him drafts of everything I did - I have not broken any IMS rules - the real draft is right where it should be particularly at its current maturity level. Since I work part-time for IMS - I need to stay pretty squeaky clean on the IMS rules.

I have been meaning to respond to your original post about open/closed - I gently disagree with you. There are times where it is good to have a small group, with each member having deep skin in the game discussing things without a public eye watching everything. The problem when very early thinking is happening - you need to try things and throw them away or change direction. I have now seen IMS LTI 2.0 change direction three times - each time for good reasons. If we had done it all in public all along - people would get upset each time we switched because then they have to rewrite things at some code and time. What we are seeing in the IMS LTI 2.0 working group right now is amazing progress - If the whole process was publicly wide open - I am convinced that the process would be much slower.

However the more things get settled - the more people that need to see the draft work - and IMS is set up to broaden the view of a document as it matured. You can argue that it should be faster or slower, or this or that spec waited too long to go public - but I am strongly convinced that the approach to start small and private and expand the eyeball count as the work matures is essential for nearly every engineering process which hopes to be successful.

I have done standards work in IEEE, IMS, JCP (Java COmmunity Process) and IETF (a little bit). Each of these processes to one degree or another follow the start with a few people and then grow the exposure of the document. Even though participation in JCP is free - being part of an expert-group and having access to the early work is very limited and “invitation only” - period. As part of the JSR-286 Expert Group (which got Steffan Hepper of IBM an award as Spec lead of the year in JCP) - private and a small deeply involved expert group was *essential* for over a year.

So for me, I separate the notion of pay-for-play from optimizing the engineering process. Each should be debated on its own merits - I think that you make a bit of a maistake connecting them.

Oh yeah - the IETF is the most open of the bunch - but heck - who wants to read and comments on the next rev of the Exterior Gateway Protocol (EGP) anyways? IETF could be wide open from the very beginning because of the massive barrier to even understanding what was being discussed. The deeper inside the cloud a technology is, the less it needs a quiet/private time in which to incubate.

All in all - thanks for the plug. SimpleLTI should be fun - It is also an experiment for me about how to get standards implementations dispersed as quickly as possible. Perhaps I can use the experience I gain in SimpleLTI to have a nice suite of software ready to go when IMS LTI comes into the public eye - and we can get it implemented in real products at light speed.

Posted by csev at 04:03 PM

June 17, 2008

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.

Posted by csev at 11:59 PM

June 16, 2008

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.

Posted by csev at 10:57 AM

June 15, 2008

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:

cat app.yaml 

application: dr-chuck
version: 1
runtime: python
api_version: 1

handlers:
- url: .*
  script: index.py

cat index.py
#!/usr/bin/env python

import os
import wsgiref.handlers
from google.appengine.ext.webapp import template
from google.appengine.ext import webapp

class MainHandler(webapp.RequestHandler):

  def get(self):
    path = os.path.join(os.path.dirname(__file__), 'index.html')
    self.response.out.write(template.render(path, { }))

def main():
  application = webapp.WSGIApplication([
     ('/', MainHandler)],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)

if __name__ == '__main__':
  main()


cat index.html 
<h2>Welcome to Dr. Chuck's Page</h2>
<p>You probably are looking for
<a href=http://www.dr-chuck.com/>www.dr-chuck.com</a> - 
that is where I keep my resume, photos, etc. </p>

.....
Posted by csev at 11:36 AM

June 14, 2008

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 = <class 'django.template.TemplateDoesNotExist'>, name = 'x.html'
<class 'django.template.TemplateDoesNotExist'>: x.html

I was sure my code was right - somehow it was not reading new files. The solution is was simply to stop and restart my Google application in the app engine console.

Here is my simple example - followed by a more complex simple example:

app.yaml snippet:

handlers:
- url: /
script: helloworld.py

helloworld.py:

import os
from google.appengine.ext.webapp import template

print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
print template.render('x.html', {'a': 'b' })

x.html:

Hello there in my template

The value of a is {{ a }}

---------------------
Note that when this simple example runs - it does not process HTML - somehow Google App Engine is escaping everything - I am guessing this the nature of "print".

So here is a more complex example - effectively a trivial way to get your index.html to be a template that welcomes folks.
---------

app.yaml snippet:

handlers:
- url: /
script: index.py

index.py:

#!/usr/bin/env python

import os
import cgi
import wsgiref.handlers
from google.appengine.ext.webapp import template
from google.appengine.ext import webapp
import django.template

class MainHandler(webapp.RequestHandler):

def get(self):
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, {'a': 'b' }))

def main():
application = webapp.WSGIApplication([('/', MainHandler)],
debug=True)
wsgiref.handlers.CGIHandler().run(application)


if __name__ == '__main__':
main()


index.html:

<h1>Welcome</h1>
<p>The value for a is {{ a }}.</p>

Posted by csev at 08:50 AM

June 05, 2008

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

Posted by csev at 11:06 AM

June 04, 2008

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.

Posted by csev at 08:47 PM

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.

Posted by csev at 07:52 PM

June 03, 2008

Energy Savings - Just slow down

I did an experiment during my commute yesterday - I tried to see how my gas mileage would be affected by just slowing down.

I remember in the 1970's when the national speed limit was reduced to 55 MPH during the energy crisis. I also remember how much this p*ssed me off - I even got some speeding tickets going above 55 MPH but below 70MPH - they called it "an Energy Speed Violation" - I called it government intrusion into citizen's private matters. I was pretty young so it made me so mad that I took up flying single engine planes because airplanes did not have what I considered to be a silly and pointless 55 MPH speed limit - I never checked gas mileage :).

So yesterday - I was not in a rush for my 55 mile commute so I decided to set the cruise to 55MPH and see what happens. I have a totally cool Buick LeSabre that gives me instant feedback on my mileage - it may not be perfect - but it is suitable for A-B comparisons.

My car is rated for (and usually gets) about 29-30 miles per gallon - this is pretty cool for a nice comfortable quiet car - that is even with the air conditioning on. SO it is not too bad of a commute car - particularly because it has low maintenance and is nice and solid in case of an accident.

So back to the experiment. The first thing I notice while driving 55MPH is that *everyone* is driving faster than you. Even the semi trucks give you a dirty look when they go around you - because you are messing up the cooperative traffic flow that prefers 62-72 MPH in crowded conditions. I did this experiment at 7PM so traffic was less than during rush hour - but I still was a problem and at times I caused a bit of a back up ad a truck passed me and the rest of the left lane had to slow to 62 MPH behind the truck.

The other nice thing about 55MPH was that I never had to change lanes - I putted along in the right lane and never had to even engage my brain about how to drive - everyone else had to go around me - I felt like a grandpa - not very cool at all. But this was for science - looking like a Grandpa is a necessary sacrifice for science.

So after 35 miles on cruise at 55MPH my car reported an average of 41 MPG! This is a 40% increase in gas mileage just by dropping 15 miles per hour! I was starting to feel a bit like a Prius.

I also did a simple less scientific test in our Subaru Tribeca (a small SUV) and found that gas mileage went from 18 MPG to 25 MPG by dropping from 70 to 55 MPH. Again about a 40% increase in gas mileage. I will do more testing and a bit more scientific.

Experiment detail: This was using cruise control - you can play games like coasting, drafting and careful throttle control up and down hills - to get even better gas mileage - I did not do any of those things. I was interested in something simple that required no particular skill - so I just set the cruise to exactly 55MPH and let the trucks and traffic flow around me.

Effectively by dropping down 15 MPH, you increase mileage by 40% - which is like getting a discount on your gasoline. This makes my $4.00 gasoline effectively $2.85 - at a cost of some more time on the highway.

This is a a way that we can drop our demand for fuel overnight - I kind of understand now why in the 1970's they simply lowered the speed limit to 55MPh. I have a bad feeling that someone in government will see this and drop the speed limit - this will tick me off - particularly when I am late going to the airport.

So just for yucks - try to see what it would be like with a national 55MPH speed limit - for as long as you can (yesterday I did it for an hour and it was mind-numbing) - set your cruise for 55MPH - if you have a little info gauge - reset your fuel economy average at the beginning of the experiment and see what gas mileage you get. I reset it while I was warmed up and up to speed - I wanted to measure only the highway mileage. I was pretty surprised at what I got - you may be too.

Update: Just to be scientific - I repeated the experiment on the inbound commute and the results held - the inbound MPG for 55MPH was 41.4 on one leg and 42.4 on the other leg.

Posted by csev at 08:55 AM

June 02, 2008

Abstract: Workshop - Teaching with Sakai

This workshop will discuss how to teach with Sakai. The workshop will cover using Sakai at Michigan (Ctools) to enhance a classroom-based course. The workshop will also show the use of ETudes and show how Sakai can be used in a distance education context. In addition, an invitation to the community will be sent out to invite other presenters. Also time will be set aside for the attendees to show their use of Sakai during the presentation.

This workshop will discuss how to teach with Sakai. The workshop will cover using Sakai at Michigan (Ctools) to enhance a classroom-based course. The workshop will also show the use of ETudes and show how Sakai can be used in a distance education context. In addition, an invitation to the community will be sent out to invite other presenters. Also time will be set aside for the attendees to show their use of Sakai during the presentation.

Dr. Severance is a Clinical Assistant Professor at the University of Michigan School of Information (www.dr-chuck.com). He is the former Executive director of the Sakai Foundation and the former Chief Architect of the Sakai Project. He now teaches using Sakai at the University of Michigan.

This was submitted to the Sakai Paris Conference - July 2008

Posted by csev at 08:30 AM

Abstract: Functionality Mashup - Evolving to the Next Generation of Learning Management Systems

Virtual Learning Environments need to adopt approaches like Facebook, iGoogle and YouTube for learning application integration. IMS Learning Tools Interoperability 2.0 is a standard under development which addresses this functionality mash-up use case.

Virtual Learning Environments need to adopt approaches like Facebook, iGoogle and YouTube for learning application integration. IMS Learning Tools Interoperability 2.0 is a standard under development which addresses this functionality mash-up use case.

The current crop of Learning Management Systems are focused very much on meeting the needs of the institution in providing a basic, uniform technology platform for teaching and learning. However, faculty and students are often familiar with setting up accounts, joining various types of sites and adding themselves and friends to those sites, and figuring out new systems by trial and error. The next generation of Virtual Learning Environments needs to allow this type of organic "mash-up" and make it simple enough to place in the hands of the end users of these systems. IMS Learning Tools Interoperability 2.0 is a standard under development which addresses this functionality mash-up use case. This presentation will talk about issues and approaches for building the next generation of Virtual Learning Environments.

Charles is a the IMS Global Learning Consortium Developer Network Coordinator. He is also a Clinical Assistant Professor at the University of Michigan School of Information. (http://www.imsglobal.org/severance.html)

Submitted - Sakai Paris Conference - July 2008

Posted by csev at 08:29 AM

Dr. Chuck Annual Report and Next Year Plan

Just for Yucks - here is my faculty annual report.

Last year I put up my self-assessment here: http://www.dr-chuck.com/csev-blog/000330.html

Some of the bits have been removed or starred out.

charles-severances-macbook-air:facrpt csev$ !cat

School of Information

07-08 Faculty Annual Report

(May 1, 2007 to April 30, 2008)

My up-to-date Vita is available at:

http://www.dr-chuck.com/dr-chuck/resume/research.htm

http://www.dr-chuck.com/dr-chuck/resume/travel.htm

=============================================================

I.               Teaching

A.    Classroom teaching

We have listed the Q1 (course) and Q2 (instructor) scores, along with class size, for the courses you taught this past year. If you believe there are any errors, please describe them below.

Course #

Course Name

Term

Enrollment

# evals submitted

Q1

Q2

539

Design of Complex Web Sites

Fall 2008

38

31

*.**

*.**

543

Programming I

Fall 2008

17

13

*.**

*.**

Course #

Course Name

Term

Enrollment

# evals submitted

Q1

Q2

182

Building Applications for Information Environments

Winter

2008

19

15

*.**

*.**

539

Design of Complex Web Sites

Winter 2008

38

19

*.**

*.**

If you have a score below 3.5, please describe your plans for improving your teaching.

B.    Student supervision

 

1)    Doctoral students

None.

2)    Other student supervision: list all students whose work you have supervised on an individual basis, and briefly describe your interaction with them.

None.

C.    Instructional development: List any new initiatives or major course revisions that you have engaged in.

I am part of the faculty committee developing the new undergraduate Informatics major. This included regular committee meetings for the planning of the overall major.

In addition I developed a new course (SI182 - Building Applications for Information Environments). This course was approved by the SI Curriculum Committee in the Fall 2007 and I taught the first instance of the course to 17 students during Winter 2008. Paul Conway helped me greatly in the preparation of the course and working with the curriculum committee.

I also worked with Atul Prakash of EECS to help him develop the EECS 182 course which is the EECS equivalent of SI 182.

D.   Other : Describe any other significant teaching activities not covered above

II.             Research

A.   Publications appearing in 2007-08 list all publications that appeared during this year. Underline all co-authors who are students.

1)    Articles in refereed journals

Charles Severance, Joseph Hardin, Glenn Golden, Robert Crouchley, Adrian Fish, Tom Finholt, Beth Kirschner, Jim Eng, Rob Allan, Using the Sakai Collaborative Toolkit in e-Research Applications, Concurrency and Computation: Practice and Experience, Volume 19, Issue 12, (p 1643-1652) (7 Jun 2007)

Charles Severance, Joseph Hardin, Anthony Whyte, The Coming Functionality Mashup in Personal Learning Environments, Interactive Learning Environments (Journal), Volume 16, Number 1, April 2008.

2)    Articles in refereed conference proceedings that are comparable to journals in terms of prestige - None

3)    Chapters in edited books - None

4)    Books or monographs - None

5)    Articles in workshops, symposia, and less rigorously referred conference proceedings

Pushing the Boundaries of Innovation Through Community Source, Proceedings of Educause Australasia, May 2, 2007.

6)    Other publications

B.    Publications in press: List papers that were accepted for publication in 2007-08 but have not yet appeared. Again, underline student co-authors and give page numbers.

C.    Invited talks. List all invited talks you gave this year

Invited Featured Speaker: Pushing the Boundaries of Innovation through Community Source, Educause Australasia - Melbourne, AU - May 2, 2007.

Invited Keynote: Overview of Sakai - University of Windsor Technology Days - May 22, 2007.

Invited Talk: The Coming Functionality Mashup, National eScience Center, Edinburgh, Scotland - May 25, 2007.

Invited Talk: Pushing the Boundaries of Open Source - the Sakai Project, Merit Member Conference, Ann Arbor, MI - June 19, 2007.

Invited Talk: Sakai as a Virtual Research Environment - Digital Libraries a la Carte 2007 - Tilburg University, Heerlen, NL, August 30, 2007

Invited Talk: The Upcoming Functionality Mashup - Open University of Catalonia, Barcelona Spain, October 4, 2007

Invited talk: Breaking Down Barriers between Learning Management Systems, Open University, Milton Keynes, UK December 14, 2007

Invited Talk: Open Source Learning Management Systems: Much More Than Free Source Code, LaSalle University, Barcelona, Spain, April 8, 2008

D.   Editorial Activities

1)    Editorial boards. List all editorial boards on which you serve. Indicate if you are an editor, associate editor, etc.

None.

2)    Ad hoc reviewing. Describe any ad hoc journal reviewing you did.

None

3)    Conference reviewing. List all conference program committees you served on. Indicate if you were a program chair, area chair, etc.

I was part of the planning for an upcoming IMS meeting at UM called The Coming Changes in Learning: Creating New Architectures Now! This one-day meeting will be held Thursday, June 12, 2008. I am the lead for one of the panel discussions and selected / invited the panel members.

4)    Grants reviewing. List all granting agencies for which you performed any panel or ad hoc reviewing. In the interests of confidentiality, do not name the panel.

None

E.    Research Support.

We have completed the table below to indicate your current grants and the grants you submitted during the past year. If there are any errors, please describe them below.

Report Category *

Role

Title

Direct Sponsor

Prime Sponsor

Total Award

Start Date

End Date

Ongoing

Co-PI

NCSA Partnership

University of Illinois

National Science Foundation

$*,***,***

10/1/2004

6/30/2008

Ended

PI

Collaborative Proposal: Middleware for Grid Portals

National Science Foundation

None

$***,***

7/1/2003

8/31/2007

Not Funded ('submitted' 07 report)

PI

SDCI Data Improvement: Sakai Research Edition - Human Communication as Part of the Scientific Record

National Science Foundation

None

$***,***

9/1/2007

8/31/2010

* Report Categories Key

New = Awarded between May 1, 2007 and April 30, 2008                                       

Ongoing = Awarded prior to May 1, 2007 and still active

Submitted = Submitted between May 1, 2007 and April 30, 2008 and is either pending or not funded

Ended = Awarded prior to May 1, 2007 and ended by April 30, 2008

Not Funded = Submitted between April 30, 2006 and May 1, 2007 and resulted in "not funded"

F.    Other . Describe any other research-related activities not covered above

I applied to Google for a number of Google Summer of Code students and was awarded three students for the Summer 2008 Google Summer of code. The focus of this effort will be on building implementations for the IMS Learning Tools Interoperability (LTI) effort.

III.           Service

Please list all formal and informal service (committees, offices held, initiatives, etc.) for each of the following areas:

A.   School of Information

I am a member of the committee organizing the new Informatics concentration (informatics.umich.edu) in LSA. This committee has been quite active during the year culminating in the successful approval of the new concentration in April 2008. I developed and taught the first course in the new concentration - SI182 - Design of Personal Information Environments. This work will continue for the next year.

B.    University of Michigan

I represented the University of Michigan to the IMS Global Learning Consortium (www.imsglobal.org). IMS is a consortium that develops a series of standards for data interchange between Learning Management Systems such as Sakai. My support included representing Michigan at three IMS meetings. My primary focus was on a standard called IMS Learning Tools Interoperability - which is closely aligned with my research area of Functionality Mash Up.

I have been involved in advising the University of Michigan School of Medicine on their next generation of learning management system. In this effort I am working with Ted Hanss, Casey White, Chris Chapman, Joseph Fantone and others.

C.    Professional organizations

None.

D.   Community service relevant to SI mission

I participated in the Sakai project (www.sakaiproject.org) as an open source developer. This included attending three Sakai meetings and doing significant development in the MailArchive and Portal areas of Sakai. As the former Chief Architect of the Sakai Project and the Executive Director of the Sakai Foundation I feel that it is important for me to maintain a healthy involvement in the Sakai project to provide technical continuity going forward and to support as needed for the new Executive Director of the Sakai Foundation (Michael Korkuska).

I served on the Science Advisory Board for the National eScience Center (http://www.nesc.ac.uk/) in Edinburgh, Scotland. I was appointed to this board in April 2008 - this board advises the eScience center on financial, strategic, and programming directions. I will be required to attend two board meetings annually with at least one board meeting to be held in Edinburgh.

E.    Consulting : How many days of consulting did you do this year?

Four days

F.    Service not included in any of above categories

I served on the Advisory board of the Etudes project hosted at Foothill College in California. This entailed attending four meetings during the 2007-2008 year.

IV.           Honors and Awards

Please list all honors and awards received in the past year.

            None

V.             Other Information

A.   Describe your most significant contributions this year. (One paragraph.)

I would say that my most significant contributions this year is as a teacher. I have put a lot of energy into becoming a valuable member of the SI teaching faculty, in particular to find ways to teach technology-oriented courses to the SI student population. I think that it is very important for our students to have reasonable mastery of technology regardless of their incoming background. I learned a great deal about how to teach beginning technology courses both at the graduate and undergraduate level.

B.    Please describe the greatest impact your work as a scholar and teacher has had in the past year. This should be broadly interpreted. (One paragraph.)

I think that my most significant impact as a scholar this year are in the area of motivating a new approach to teaching and learning based on Functionality Mashup rather than the idea that we simply take a single monolithic learning management system. A number of my efforts are designed to move this concept forward including: (1) my invited presentations, (2) my involvement in the IMS standards efforts, (3) my journal articles, (4) my involvement with the Michigan Medical School, (4) my Google Summer of Code, and (5) my involvement in Sakai. I work across these efforts to raise expectations and develop technology demonstrators to increasingly get people involved with taking a more student-centered approach to teaching and learning. This is a long effort where progress moves very slowly but one I feel very strongly about and am taking a long view of my efforts.

C.    Please summarize any interdisciplinary aspects of the activities you were engaged in during the past year.

My interdisciplinary activities include: (1) working to build the new Informatics concentration in LSA, (2) working with the UM Medical School looking at where teaching and learning technology is going, (3) working with the IMS organization developing standards and specifications, and (4) working with the Sakai/CTools team to help evolve the Sakai software and how we use it here at Michigan.

D.   Outline your major goals in teaching for the coming year. (One paragraph.)

My teaching goals for the next year are to do a really good job on the SI502 Technology Foundations course. This will be quite a challenge for me as the expectations for the course are very high. It will be my first experience working with Graduate Students to help in the course - this will be a challenge that I am very much looking forward to. I already have started thinking through how I will approach the course. I have talked to Rahul Sami and Paul Resnick to get started on the course early. Also I am very excited to be preparing for SI300 - the undergraduate Social Computing course in the Informatics program. I also plan to further improve the SI539 course.

E.    Outline your major goals in research for the coming year. (One paragraph.)

I expect to continue to pursue my functionality mash up theme during the next year. I am sure that there will be a number of different activities that will be part of this effort. I also expect that this work will take some unexpected turns, as it gets closer to production and realities in the marketplace begin to have an increasing impact of functionality mash up. I would also like to work on becoming involved in a collaborative science effort similar to NEESGrid - I hope to be a collaborator on grants developed by others in this area and provide technical expertise to those projects.

F.    For associate and full professors only: Describe your experiences this year in mentoring faculty. (Be specific; name names and specific activities.)

G.   For all faculty: Describe your experiences this year in being mentored.    (Be specific; provide names.)

I have had a number of wonderful mentors this year:

Paul Conway has spent a great deal of time with me mentoring me as I participated in the Informatics efforts and prepared the SI182 course as well as helping me with my preparation for my SI300 course next year.

Judy Olson has been very helpful in guiding me to my initial success as a teacher in the School of Information. From the very beginning when I was first hired, Judy has made many clear suggestions as to how to succeed teaching in SI - I have followed her advice and have been very pleased with the results.

Joseph Hardin has been very help and supportive as I made the transition from being a full-time Sakai employee for nearly five years to being a full-time faculty member in SI. Joseph has helped me and guided me so that I could make the transition while continuing to be involved in the Sakai project - albeit at a reduced level.

Tom Finholt has been very helpful as my general mentor about virtually everything about my position in the School of Information. He also has been very helpful in keeping me aware of possible research activities where my skills might be useful.

Stephanie Teasley has also been very helpful as a general mentor on how to succeed in the School of Information. She also helps me find opportunities to work with the other fields within the School of Information.

John Merlin-Williams of the Duderstadt Center has been very helpful in supporting my Sakai activity and helping me be effective within the UM Campus IT community.

H.   Describe your entrepreneurial activities or innovations, if any. Examples might include patents, licensing agreements, innovative services or products.

I.      Please provide any additional information you wish to convey to the Dean and Associate Deans.

This has been a wonderful year for me. I made a successful transition to teaching my top priority and I was prepared to work on nothing else but teaching if that was necessary. However with wonderful help, guidance, and support from my supervisors, mentors, colleagues, and staff - I was able to quickly adjust to teaching and enjoyed every minute of my teaching this year. Since the teaching quickly became quite comfortable - I was able to maintain my involvement in other non-teaching activities at a reasonable level - allowing me to maintain consistency in these efforts.

I am using the breaks between teaching to find ways to truly innovate in teaching and learning technology - both on-campus and around the world. I am also always looking for ways to blend my involvement in technology with my teaching and bring those experiences into the classroom in whatever courses I teach.

I truly find the title of Clinical Assistant Professor very empowering - because it gives me the excuse to push myself to be involved in the latest emerging technologies and bring those innovations into the classroom and my other interactions with students as quickly as possible.

Posted by csev at 01:43 AM

June 01, 2008

Exporting to Flickr from iPhoto - Also Private sharing of photos

I am using iPhoto 8 - 7.3.1 (634) and wanted to get Flickr export working. This is what worked for me:

http://www.dustin.li/Publish/Software/Entries/2007/12/26_Free_Flickr_eXport_iPhoto_Plugin.html

It was free, installed properly and worked.

This did not work:

http://sourceforge.net/projects/flickrexport

It looks like the guy open sourced it - stopped supporting it and now sells a 12 pound version of it. The open source version no longer works with the version of Mac OS and/or iPhoto that I have.

I am happy for folks to make money off free software - I also think that as part of an intelligent market to go to the lowest price acceptable alternative. It also kind of bothers me when folks open source the crap version and then close source the current version. But some open source is better than none in case someone wants to pick up the open source fork and move it forward.

Frankly I used the plugin once and then realized that what I was trying to do was not going to work - create a private distribution of photos - for 4-5 precise people - not just my Flickr friends. Because the material needs to be vetted before it is made public.

Funny - it turns out that sending around a few DVDs is the best solution for now. Strange. But all in all it was nice to use some free software for 30 minutes and understand my requirements.

Separately funny - Picasa from Google might make me happy - it seems totally locked down - but for the life of me - I cannot find the site where you see Picasa photos online. Everywhere I go, it wants me to sign up - and when I try to sign up it tries to install PC software on my macintosh - hmmm... Crazy.

After wasting a few hours trying to find a decent way to share photos privately with a small group of people - I gave up and burned a DVD. Funny in this day and age...

Posted by csev at 01:28 PM

Sharing iPhoto Library across multiple Accounts on OS 10.5 (Leopard)

I just want several users to see the same photo library on one iMac computer. This is what worked:

Taken from: http://ad.hominem.org/log/2005/07/acl.php

Move the library you want to share to /Users/Shared/Pictures/iPhoto\ Library

Make a soft link

cd ~csev/Pictures
ln -s /Users/Shared/Pictures/iPhoto\ Library/ iPhoto\ Library

Turn on ACLs on:

sudo /usr/sbin/fsaclctl -p / -e

Give each account permission on the iPhoto Library

sudo chmod -R +a "drchuck allow read,write,append,delete,list,search,add_subdirectory,delete_child,file_inherit,directory_inherit" /Users/Shared/Pictures/iPhoto\ Library

sudo chmod -R +a "csev allow read,write,append,delete,list,search,add_subdirectory,delete_child,file_inherit,directory_inherit" /Users/Shared/Pictures/iPhoto\ Library

sudo chmod -R +a "brent allow read,write,append,delete,list,search,add_subdirectory,delete_child,file_inherit,directory_inherit" /Users/Shared/Pictures/iPhoto\ Library

Interestingly this page did not work - perhaps it does not work if the iPhoto library already exists:

http://www.macosxhints.com/article.php?story=20050904072808460&lsrc=osxh

Posted by csev at 12:43 PM