Announcing: IMS Developer Community Open Forum

IMS has created a discussion forum to discuss IMS Specifications and share experiences between developers implementing IMS Specifications. The form is available to the public. You can join and participate in the forum with a free IMS Community account.
http://tinyurl.com/ims-dev-forum
http://www.imsglobal.org/community/forum/index.cfm?forumid=11

As we go forward implementing real, interoperable specifications in shipping products based on IMS specifications – we need a place to talk and stay coordinated and learn from each other.
I would encourage you to come and join the forum. The forum software does not automatically send out mail unless you subscribe to categories or topics in the forum (under “profiles”). I would suggest you subscribe to the Announcements Category which should be very low volume.

Blending K1 and Pre-K1 poms in the same pom

Thanks to Steve Swinsburg, Nuno Fernandes, Noah Botimer, and Matt Jones, I now have shape-shifting poms in my BasicLTI. It can compile in 2.5.x or 2.6.x/2.7.x by changing the version in the parent pom in the top pom.xml in my source tree.
Here are the relevant very well written blog posts:
http://steve-on-sakai.blogspot.com/2009/03/build-profiles-and-sakai-dependencies.html
http://codingwithcoffee.com/?p=135
http://steve-on-sakai.blogspot.com/2009/05/build-profiles-and-sakai-dependencies.html

Making Mac OS/X 10.5 PHP Behave

This is not much – but it is what I need to to to make Mac OS/X 10.5 PHP behave and support ZIP files and zip_open() (Intel-only).

sh-3.2# cd /private/etc/apache2/
sh-3.2# vi httpd.conf
sh-3.2# cd /private/etc
sh-3.2# cp php.ini.default php.ini
; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613"
extension = zip.so
sh-3.2# cd /usr/lib/php/extensions/no-debug-non-zts-20060613
(See http://www.viames.it/mac-os-x.html for detail)
sh-3.2# curl -O http://www.viames.it/download/zip.so
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 88232  100 88232    0     0  59887      0  0:00:01  0:00:01 --:--:--   99k
sh-3.2# chmod +x zip.so
sh-3.2# ls -l
total 352
-rwxr-xr-x  1 root  wheel  87880 May  8 00:10 phpcups.so
-rwxr-xr-x  1 root  wheel  88232 Jul  3 16:35 zip.so
sh-3.2# apachectl stop
sh-3.2# apachectl start

Also I need an htaccess that looks like this:

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

Perhaps in an upcoming version of Mac OS/X, the PHP will more of the common features installed out of the box. A good benchmark would be if the Mac OS/X PHP had enough extensions to run Moodle or Chisimba. In the meantime just use MAMP – after a while installing extensions gets tiring.

Python Beginner Textbook for Younger Programmers

I am an advocate for using Python as a first language and for using programming as a tool to explore abstract concepts and technology literacy (Informatics) starting in elementary and middle school. Here is a book written for kids using Python that looks like it can support making Python accessible to younger learners.
Hello World! Computer Programming for Kids and Other Beginners
The book is written by the father and son pair of Warren D. Sande and Carter Sande.
Here is an interview with Warren and Carter on Canadian Television with the authors:
http://watch.ctv.ca/news/clip186877
Here is the web site for the book including several sample chapters:
http://www.manning.com/sande/
This is very cool and I will buy the book and then review it in more detail.
On first glance looking at the sample chapters and table of contents, it looks well suited for K-12 applications since has many short chapters, gets into graphics quickly using its own GUI (easygui), and is careful to have lots of additional explanation in areas that readers might have questions. Of course since Carter Sande is still in K12 it is very natural to have it structured properly for K12.
Perhaps after students get done with Warren and Carter’s book – the students and teachers will want to learn HTML and do web programming on Google App Engine! And of course there is a book for that – Using Google App Engine.
This all moves us further down the path of technology literacy based on foundations of open source technology and transforming K-20 education to include technology literacy at the right places.
Congratulations to Warren and Carter!

Brent Severance Holt High School Graduation 2009 Memories

Here is the obligatory cute High School Graduation memories video for Brent Severance.
This is a video which contains some early memories for Brent. The video includes video from the 1995 Easter Seals telethon and Brent singing at the Sycamore Elementary School Talent show in 1997, 1998, and 1999. Brent has Cerebral Palsy.
http://www.vimeo.com/5305387
Brent graduated from Holt High School in Holt, MI and will attend Lansing Community College in the fall.

What to do with Your old iPhone when you get a new 3Gs iPhone

As soon as my ATT store has iPhone 3Gs is stock I will upgrade – I held off upgrading last year – so this is my year! Next year I will be kicking myself – but what the heck!
I want to give my old iPhone to Brent to replace his phone – he simply hates carrying his phone around and so maybe if I give him a phone+gaming platform+SMS with keyboard+Wifi Surfing – he will be carry his phone around a lot.
What I don’t want to do is pay $20.00 for his data plan which he will really not use. I do want to give ATT my money because I will likely pay for tethering on my new phone regardless of the cost.
Bu you need to put the data plan on the phone – when you activate and if you take it off later – it still uses data here and there and you can rack up a bad bill pretty quick – so you need to really turn off data.
I was so cheesed about this that I figured I might finally jailbreak my phone. Driving away from the ATT store I even though about jail-breaking and going to T-Mobile for Brent (I wuz steaming). So far I have not jail-broke my phone on principle (yes – I even resisted “free” tethering – and yes that was hard to resist) – since I am an unabashed Apple-fan-boy I feel good about the “have never jail broke my phone”.
And then here is a super-duper blog post that effectively shuts off 3G/Edge data without a jail break by making a fake APN – I don’t know what that means exactly – but it works. Here is the blog post:
http://www.iphonedownloadblog.com/2008/10/11/using-an-iphone-without-the-data-plan/
And here is the web site it works at:
http://unlockit.co.nz/
I would go to the blog entry because it has instructions. The instructions worked for me on a first-gen iPhone. I immediately undid the Fake APN (following instructions) since it was only a test. But so far this looks pretty nice.
I will do a bit more research and if things feel right, I will end up with three iPhones on my plan (iPhone 3Gs for me with tethering, iPhone 1G’s for Brent and Amanda with data plans turned off). I do have to check to see how much Amanda uses her data plan.
As best I can tell the only bad thing about the no-data-plan is the loss of the visual voice mail feature.
Funny thing about this – if the iPhone family data plan was $10 – I would put it on all the phones and never have a second thought. If the family data plan is $20 per phone – I get all crazy and go to great lengths including contemplating jail-breaking phones and switching to TMobile – I have no explanation for this seeming inconsistency. Perhaps the best explanation is that $40 per month is getting awfully close to the payment on a new or slightly used motorcycle.

Reply to Ray Henderson’s Blog Post

Ray Henderson of BBLearn made a post about their directions in standards:

Read Ray’s Post

Here is my comment:

Ray – I am really glad to see this post. I hope to see you at DevCon in a few weeks and catch up. The real value of being part of Blackboard is the reach that you can have when we all deploy high impact standards. I think that there is a very strong value proposition for a company with a dominant market share to participate and strongly contribute to interoperability standards. When market-dominating products do not solidly support standards – people get a feeling of lock-in – in a sense there are likely many organizations which will not consider a commercial offering that does not support real and interoperable standards because (a) it does not play well when there are multiple learning solutions on a campus, and (b) the sense of vendor-lock-in is particularly distasteful in a teaching and learning context. And as you say, it is not enough for Blackboard to participate – it is necessary to lead and to add significant horsepower to the building of standards. In a sense, I would like to see Blackboard build on the leadership you have shown in the IMS LTI 2.0 group. Working closely on LTI 2.0 with Lance Neumann, George Kroner, and John Fontaine has been a delight. Now lets move it to the next level with leadership participation-levels in standards like IMS LIS and IMS Common Cartridge. I would say “welcome to the jungle” – but you have years of experience in the jungle already :).

Clearing Entries in App Engine – Clearing the Data Store

It would be nice to have bulk clear of the App Engine Data Store. Many folks have resorted to little REST like ways to do this. Here is my take on it:

class PurgeHandler(webapp.RequestHandler):
def get(self):
if not users.is_current_user_admin() :
self.response.out.write('Must be admin.')
return
limit = self.request.get("limit")
if not limit:
limit = 10
table = self.request.get('table')
if not table:
self.response.out.write('Must specify a table.')
return
q = db.GqlQuery("SELECT __key__ FROM "+table)
results = q.fetch(10)
self.response.out.write("%s records" % len(results))
db.delete(results)

Nothing fancy. This could easily be improved and I may improve it after I get some free time.

Reference: I got my inspiration from this Google Groups Post

TwiterFon – Upgrade to TwitterFon 1.5.2.ipa – Fail – TwitterFon Pwnd

I upgraded my iPhone to 3.0 – Yay Apple – once again you show the love to us gen-1 owners! I figured that I would upgrade my other apps to get a horizontal keyboard.
I love TwitterFon – it is my favorite iPhone app. So I wanted a horizontal keyboard – there was an upgrade to version 1.5.2 – that mentioned “tested on 3.0” – what a LAME release note. Reminds me of Y2K – “We cannot assure you that our previous product that you currently own is Y2K compliant – but our new products are Y2K compliant – hey dude the product is a blender – it does not even have a clock in it!” (end of Y2K rant).
So I upgraded from my current version to TwitterFon 1.5.2 – it now gave me ads! Yay – I can tolerate ads if I get a horizontal keyboard! But NOOOO – no horizontal keyboard. Now I am ticked off so I search Google for:
downgrading an iphone application
And find this page:
http://iphone-application-developer.blogspot.com/2009/05/downgrading-iphone-app-something-we.html
I did it and it worked – just don’t empty Trash right away and you have a safety net!
YAYAYAYA – Downgraded my TwitterFon.