Well I wrote my first Ruby application. It was an IMS Tool Interoperability endpoint. It has REST Web services and stores sessions in a database. It meets the REST profile for IMS Tool Interoperability.
My overwhelming feeling is that Ruby is absolutely amazing – I now know why Steven Githens uses sash. Having a console to test code even before you put it into a controller is simply amazing.
One thing I was amazed by is that I have to stop and think some times – because code is written so quickly and debugged so quickly – you actually have stop and think more often – the typing of the code is not the rate limiting factor – how well you have throught through your problem *is* the rate limiting factor.
In Java there is so much cruft and the speed of the debugging cycle is so plodding – I have gotten to the point in Java that I can do designs whlie waiting for a compile or server restart. In Ruby there is no such slack time – so I find I need to get up and walk around once in a while to let the idease anneal in my mind. After I settle back down and have the ideas worked out – making them work in Ruby is done in a flash.
Probably my biggest peeve about Ruby/Rails is a lack of a book that tells you everything that you can do – all the books I have are example after example – and they are all too simple – because they are solving a small problem they never who you how to do a subtle thing like declare that a column in a database is not null.
I need a reference manual. Here are some sites that are helping me not go too crazy:
http://www.railsapi.org/
http://zamples.com/JspExplorer/content/rubyUG/
Using Google with things like this works sometimes
ruby string class
rails activerecord class
I use this to find stuff in Java by typing
java string class
But I am looking for a definitive 10000 page manual for Ruby and Rails. I am tred of poring throush 20 line examples :)
I am also really liking Model-View-Controller – but there does seem to be something eauivalent to Components that I am missing. Where do you do things like performance tune, cache, etc etc. I think the Model is too thin of a layer to do it – and the Controller is not the right place either.
I do like the Rails abstraction between View and Controller. I have a lot yet to learn but the fact that Urls are abstracted feels very portlet like and WSRP like.. Hmmm. Me likes.
All in all it is amazing that I need to stop and think because things get coded up so quickly.
Here is a picture of the running app in Sakai:
IMS Tool Interoperability in Ruby
I need to move the from my desktop to a server so others can use it.
Pedagogy: Sakai, Roster Management, and Friend Accounts
Having flexible authentication which allows me to really control my site participants is excellent. I already use this heavily and I use the UMichigan friend accounts integrated into CTools/Sakai a lot.
Pedagogy: Early experiences
I have been teaching for almost a week now – this is how I am using Sakai/CTools.
Assignments – this tool is awesome – it fits my workflow for assignments nicely without too many features. I like the following features: (a) The dates to show, open, and close the assignment, (b) the attachment functionality and the fact that files are *not* viewable in the Resources tool, (c) the ability to add an announcement and calendar entry automatically, (d) the ability to get mail as students submit and the ability to get mail only once per day if I want, (e) the richness and flexibility of the grading workflow – I like to grade as the assignments come in – sometimes if we are doing an assignment in a lab I grade the moment the assignments come in.
The only think I would is to add a “show me the assignments that have been handed in but not yet graded” – effectively a “to do” view – I grade quickly and continuously. As I make my way through the grading – it gets hard to find the students who have submitted but I have not graded yet ungraded submissions. The sort on graded/ungraded and the sort on submission date are *close* but not perfect. I would hate to have 400 students in a course and try to hunt through to find the ungraded submissions. This is a very small shortcoming in an overall very nice tool.
Chat – I initially thought this was pointless for the purposes of me interacting with the students – but the students love it to interact with each other during lecture – the help each other out and probably say things like “this prof sucks” :) I am not sure I will find an important use for myself.
Wiki – I made it student-writable – I am trying to get the students to become a “Village” helping each other out and the Wiki would be perfect for this – but frankly Wiki syntax is a non starter for casual use. HTML would be better :( We will see how it goes. For me, to author, I think I will just use Word and PDF. Maybe in time I will learn to like the Wiki.
Syllabus – I found this useless I did not want to paste everything into a bunch of little fields – I just did a word document and put it up under resources. Even the redirect feature failed because I had a PDF – a Web Content tool pointing at the PDF named “Sylllabus” would have been better. Ultimately I put it under Resource and used notification to send out a note.
Resources – Wow – I love the 2.4 resources tool – Harriet, Jim and the other folks that worked on this – it is awesome. Common tasks are done quickly and naturally with little clicking or scrolling – the screens are simple and uncluttered and well suited to the common tasks. The Resource helper is also nice – until I started using it, it felt a bit unwieldy – but the common attachments task workflow moves quickly with all the focus near the top of the screen.
The lack of the page-order tool in the UM CTools installation is still very frustrating – this is a wonderful tool. My left hand side is already getting kind of ugly looking with things just jumbled together in the default order – I really would like to put the most important tool at the top and change names of things to try to give the students an understanding of what is important and what I put there for their benefit. Any one who says that tool order needs to be controlled by thin institution to make tech support easier – Grrrrrr. I cannot imagine that is statement is *ever* true – and not letting me change page order really cramps my style.
Reformatting an Averatec 3700 / AV3751-EH1 purchased from Sams
Notes for Installing Averatec 3700 (actually AV3715-EH1 purchased from Sams Club) From Scratch
I inadvertently messed up my restore partition on my Averatec 3700 so I had to start with a fresh Windows XP :( Also Averatec is a pain in the arse to deal with for out of warranty stuff – I really wanted restore disks but was not about to navigate their tech support maze for out of warranty stuff. ALso I had another working system that I tried to sup using ghost – no luck.
So out come the Windows XP disks and the Averatech tech support web site – they nicely do provide drivers for older hardware – this is great – withouit the sitre I would have been doomed.
Trace Route from Bus Wifi
Trying to figure out what technology the WiFi bus is using. Looks like Sprint.
Here is what bandwidth place says:
Communications 584.9 kilobits per second
Storage 71.4 kilobytes per second
1MB file download 14.3 seconds
Subjective rating Not bad
Blog Entry from my PDA
It just occurred to me that I could simply use the web browser to post blog entries directly. Since the blog software is pretty light bandwidth wise it works Ok. So this means my blog will be even more like a kitty-blog journal. This week I am off to Heerlen NL to visit the Open University of NL and then on Wednesday I am off to Tilburg NL to participate in the Ticer Digital Libraries ala carte 2007 course and then back Saturday. I am typing this as the door closes on my flight from Newark to Amsterdam.
OzzFest – Detroit
I am on the bus to the airport at 7:15 AM entoute to Open University of the Netherlands and the Ticer Digital Libraries course in Tilburg, NL. I am pretty foggy due to lack of sleep (no alcohol was involved). I was at OzzFest with Brent yesterday.
Pictures and Video
OzzFest is amazing – it is like a controlled explosion – it is like a real festival – starts at noon and goes to midnight with about 10 bands – finishing up with Ozzy Osborne.
We had a good time – early in the day they do less well kinown bands at the second-stage and there is a continuous mosh pit – you come and go as you like and get as close as you like / dare. We watched two bands with rest periods in between. We got close to a mosh pit – about four layers of people away – at one point a dude came flying out in our general direction and scattered the people and almost knocked us all down. Just close enough to get a sense – not so close to be in any dnager.
We moved at a slow pace because of Brent’s crutches so we walked and sat a lot.
As the day moved into evening, we switched to the main stage – five great bands -I kept in my earplugs 50% of the time to make sure I could hear Ozzy :). We had great seats with good sight lines – and thank heaven we were not on the lawn.
Ozzy was great – all in all a great way to spend the last day o summer vacation.
The bus is pulling up to Detroit Airport so I have to cut this short.
This is great fun – Future Casting – Education 2020
Take a look at this – it is very fun and cool.
rtsp://educause.rmod.llnwd.net/a680/o1/edu2020.rm
I like the “out of the box” thinking this video makes me think about.
My problem is that its hypothesis is that teaching and learning will become increasingly about technology and not about humans. I just don’t believe this.
My problem is that what we need to know is always increasing – so just at the moment that we think that we have the perfect BA degree on a CD – things change and we need to know more – the world and society and technology is constantly changing – we always need to understand the newest and latest and that which is only emerging at this moment or the day after tomorrow.
The only thing that can teach us that which is not yet known – is a human – frankly we all learn at the edge of knowledge together and then write down what we learn for others to follow and clarify.
But other than this problem of ever-expanding knowledge – the video is a blast to watch.
Ruby Fun
Well I figured out a few things.
How to make a ruby app set up to use sqlite3
rails app-name -d sqlite3
How to properly install sqlite3’s dll – put it in ruby/bin
How to check to see if you have a gem installed
gem list sqlite3
I am working towards a nice simple version of rails that will run on Windows and Mac from a USB stick.
On the Mac, I am happy with Locomotive. On Windows – I like InstantRails – but do not like MySql as the database.
The SQLite browser is dang cool and dang simple to install on both mac and PC.
http://sqlitebrowser.sourceforge.net/
Textmate is a very very fun editor for the Mac and Rails. It instant-installs right from Locomotive. Sweet.
On the PC – I like e-texteditor http://www.e-texteditor.com/
The dang sweetest thing so far is
After running
ruby script/generate model Thing
And making a simple database migration script like this:
class CreateThings < ActiveRecord::Migration
def self.up
create_table :things do |t|
t.column :key, :string
t.column :value, :string
end
end
def self.down
drop_table :things
end
end
Then run this:
ruby script/console
And type this:
x = Thing.new
x.key='123'
x.value = 'fred'
x.save
Absolutely sweet - able to interact with the ORM from the command line - dang dang dang. Hib can eat its heart out.
I still am confused as to why folks don't use SQLite3 all the time for simple stuff - like for teaching. These one-click installers should all use SQLite3 IMHO.
Also I wonder why people ever use anything other than migrations using the DB-independent syntax to populate/organize tables. Urg.
It is too bad that the ruby / rails stuff does not put consistent line-ends in place. Some things work in vi others fail in notepad.exe - ah well - a good reason to get a sweet editor like TextMate or e-texteditor - and pay for them.
TTFN - time to go buy some more 1GB USB sticks and a USB-2 controller.
Emulating Right-Click in Parallels (not left-click)
To emulate right-click in Parallels running Windows use Ctrl-shift – click
Often I mistakenly call this “left-click” because I mean the “other click” and I am right handed.