The key for a rails application in SVN is to make sure not to check in stuff that is part of the run time. Rails could organize this better – but it is not so bad. This post describes how I did it. Here are some references:
Using svn propset
Howto User Rails With Subversion
My process is a variant of the above link.
Nifty Leopard Image Trick with the Dock
Here is my Leopard dock:
From left to right – these folders are my outreach, research, personal, publishing, rails, and teaching folders…
The trick is getting the image to show in the dock.
In each folder put an image named aaaa-something.gif so it sorts to the top.
Then tell the dock to view the folder sorted by name.
Your image wil be the icon!
Leopard Upgrade Redux
I upgraded to Leopard again – this time I did it the way I have always done it. Back everything up – blast the hard drive completely and then a fresh install.
I figured that some clever gadget would help me restore my home directories from my backup – perhaps I just cannot figure out newfangled gadgets. So here was my process – feel free to educate me.
Boot into the CD and run the Disk Utility
Make an image from my main partitions onto a USB drive – I did not really want an image – but it was all Disk Utility wanted to let me do.
Blast the main disk in my laptop and install Leopard
Create a new account called “csevadmin” as part of the install – do not create the all important “csev” account yet.
Once log in is complete, you are logged in as csev admin.
Make a new account called “csev” – make it an admin.
Still in csevadmin pop up a terminal window (finally a decent user interface) – Become root
sudo sh
cd /Users
mv csev csev.org
cp -r /Volumes/Blah/Users/csev /Users
Note: Using cp was a bad mistake – I reset all my dates. I should have read my own blog post and done this instead:
cd /Volumes/Blah/Users
tar cf – csev | ( cd /Users ; tar cfv – )
That would have saved my file dates . Ah well onward and upward. Once the directory /Users/csev is in place you need the magic chown command – which is now different in Leopard.
chown -R csev:staff csev
The “staff” is new – it makes a lot more sense than making a group for every user – but it is different. Also I now learned the modern “:” form of the chown so I don’t get nicked for using deprecated syntax every 18 months.
All in all I am much happier with a clean install – even though it took me hours to reinstall all the apps – I lost media for iWork06 so I went and bought iWork08 and I will need to go buy iLife 08 as well because of lost media – heck I need to upgrade anyways.
Oh yeah – and Time Machine is working – It was easy to exclude my Final Cut Express Documents. It did not work on the first try – but I went to sleep – in the morning all was better. I like that kind of software.
I have never really ever backed up my computer until now – thanks Apple.
Really cool trick with Leopard – Drag a directory into the doc and put an image in the directory named aaa-something.gif so it is the first thing in the directory – then the doc will see it and the image will appear on the folder – my rails_apps folder on my dock has the cute rails logo on it using this technique by naming the image aaa-rails.png
I am so loving the Rails and Ruby install on Leopard.
Plaxo still does not work – even with a fresh install of everything. I guess I will just book mark Google
calendar on my iPhone and give up using my iPhone’s calendar – too bad – Plaxo was sweet while it worked (4 weeks). Plaxo felt like such a Rube Goldberg contraption byways – it is not surprising that the wheels came of on on OS upgrade.
Luckily – Google Calendar has an iPhone view.
I will let the dust settle on calendars – if Spanning Sync releases a 10.5 version – I may just buy – it some things you should pay for to motivate folks to work.
Here is my holiday wish for Apple:
In the migration tool – Allow me to (a) mount disk images and (b) find the place where the old /User’s directory is. The current UI is too simple and does not handle the common case – it really wants to back up and restore onto the *same* computer – not an external drive.
Also – we need new operating system releases more often so I don’t forget how to upgrade my system in between releases. Next time it will be too long and I won’t even come back and read this blog post. And again I will be whining – but oh well.
Here is my New Years Resolution:
Since I am an AppleSeed Participant – I promise to test the upgrades for the next O/S – this last released I focused on testing the X/Server stuff – next release I will test the desktop stuff as well.
Very Important Mac OS/X Feature – Rebuilding All Mail Boxes
I won’t rant about the lack of a rebuild all mailboxes in Mac OS/X’s Mail application. Entourage had it – but Mail does not. I also won’t rant about how the conversion from 10.4 to 10.5 left my mail in a strange state that required the hand-rebuilding of about 300 folders. And I am also not going to rant about how Automator is impossible to figure out – If Automator was easy to use, I should have been able to do a “rebuild all my mail boxes” in Automator in about 5 minutes. And I am also not going to rant about how AppleScript is the weirdest language on the planet – it is like perl – if someone gives you code that works – sweet – if you want to change it to do something every so slightly different it is impossible.
This post is a positive post and has some really cool info that will make it so that all the things above fade into quiet background grumbling.
Make a key that does the work for you. Damn sweet.
System Preferences -> Keyboard and Mouse – Keyboard Shortcuts -> Press the + to make a new One -> In the add new pop up -> Pick the Mail Application -> Enter the menu item exactly as shown – In my case it was “Rebuild” no quotes – and then pick a key – I picked Apple-Y.
Then restart Mail – and look!!! The menu now has a shortcut it never had before. Click on a mailbox and press Apple-Y – viola – your mail box rebuilds!
Since Mail does the rebuild in the background – you can click the next one and press Apple-Y as fast as you can go – I got a whole page ahead of the rebuilds once – than sat sipping coffee watching it catch up.
Now Mail search works through all the boxes.
After about 10 minutes I am half way through my mailboxes- and I have rebuilt the key stuff I look and search regularly. Now I have an important task to do when I don’t want to think much – building the 200+ mailboxes I have yet to rebuild.
I do like the new Leopard mail – particularly the feedback at the bottom as it tells you what is going on instead of just staring dumbly at you when it is busy doing something in the background.
What is tough in Java Servlets is Easy in Ruby / Rails
I am amazed at the flexibility of Rails. I needed a way to dispatch between the portal and a tool and communicate which “context” / “site” the tool is supposed to operate in.
In Sakai we have complex stuff like a request filter and obtuse code buried in portal to accomplish this.
In Ruby it is trivial…
Using Rails in Leopard
Here are some notes from SI539 – when you upgrade to Leopard – pretty much you no longer need Locomotive as it has plenty of Ruby and Rails built-in.
$ rails –version
Rails 1.2.3
$ ruby –version
ruby 1.8.6 (2007-06-07 patchlevel 36) [universal-darwin9.0]
Here are some notes as to how to use it instead of Locomotive – actually now DOS and Mac are even more similar.
Leopard Upgrade Experience / Issues
I have had some problems with my Leopard upgrade on my Desktop. I did this from my 9A581 disks which are claimed to be clones of the released software (which I believe to be true).
Functionality Mashup – FaceBook APIs – Here comes Google OpenSocial
Those of you who have heard me talk and seen my soon to be published journal article titled The Coming Functionality Mashup In Personal Learning Environments have heard how I suggested that Google will respond with some vigor to the Facebook API work. My feeling was that Facebook had one-upped Google pretty badly on this and the Google would not sit back and let Facebook keep the first-mover advantage for long.
Just this morning Joseph sent me this article:
Open Social Opens New Can of Worms
In a move that was anticipated for weeks, Google has unveiled a set of application program interfaces (APIs) that allow third-party programmers to build widgets that take advantage of personal data and profile connections on a social-networking site. But instead of limiting the project to its own social-networking property, Orkut, Google has invited other sites along for the ride–including LinkedIn, Hi5, Plaxo, Ning, and Friendster.
Here is a quote from a June 2007 version of The Coming Functionality Mashup In Personal Learning Environments journal article:
While developing and improving standards for functionality mashups in a learning context are important efforts, general-purpose functionality mashups are likely to be promoted by market-leading web development companies such as Google. Much like current VLE producers use their proprietary extensions to gain and hold market share companies like Google and Facebook are trying to convince developers to write application extensions for their particular form of application functionality mashup.
While Google Applications have been around for some time, their scope is narrower then the functionality mashup proposed above. Google applications are effectively a new form of portlet, i.e., functionality can be placed and configured but there is no concept of a context under the control of the consumer where a set of applications / portlets inherit common authentication, authorization, etc.
The recently announced Facebook Platform [24] is a significant step towards functionality beyond Google Applications. Facebook applications begin to explore the notion of context. Each Facebook application operates in the
context of the given Facebook entry.
The initial set of APIs which Facebook Platform provides to developers is obviously influenced by the social networking aspects that form the core of Facebook software. However other APIs are completely general purpose and are very commonly found in today’s VLE systems. Applications can (when permitted) access and modify Facebook information using these APIs.
Using Facebook to produce a learning context might be as simple as building a Facebook entry for a class and then associating a number of Facebook applications with the context. While initially Facebook will seem a poor substitute for a high-functionality VLE system, all of the architectural elements are already in place to potentially replace VLE and other collaborative systems. The only question is which direction Facebook will evolve their APIs.
Currently it seems unlikely that Facebook will put much effort into building learning-centric capabilities into their framework. A more likely scenario is that Google Applications will realize that they have been “one-upped” by Facebook and competition will ensue. It is likely that features that support teaching and learning will not be seen by either Google or FaceBook as strategic priorities in the short to medium term. However, if competition ensues, Google, Facebook and others will continue to refine, improve, and richen the concept of context. Perhaps PLE developers and users can shim learning applications onto these efforts when contexts become rich enough.
Apple’s recent announcement of the ability to extend the iPhone by writing Web 2.0 applications will potentially stimulate yet another thread of innovation around the notion of context, at least the notion of personal context.
So now it is “game on” – I have been thinking about Functionality Mashup for many years now – mostly spurred by my involvement in IMS Tool Interoperability and the amazing potential I see in true functionality mashup. At times it has felt like no one cared about this model – certainly very few would invest developer time to make this happen or be willing to try it on their campus.
Until now, it was a weird situation to see Google uncomfortably catching up with *any* technology company – usually Google is years ahead of the game – kudos to Facebook – but rest assured that the FB advantage will likely be short-lived – because Google moves very quickly and moves to the right location in the market very quickly. Google realizes that what is important is knowing “what to do?” – classic management issues like “how to do it?” or “how much will it cost?” or “how will I make money off it?” are secondary issues if you want to be a real leader in technology. Folks who sit back and ponder the the management issues are forever doomed to be behind Google.
Functionality Mashup is now moving into the fast lane – time for me to sit back and watch and enjoy it all unfold.
References:
Here is a couple of my recent Functionality Mashup talks:
Functionality Mashup – Edinburgh, Scottland May 2007
Functionality Mashup – Barcelona Spain, October 2007
Python Code Notes – Mostly Useless
Wrangled Python for a few hours. Luckily I came upon this site. I was pretty peeved about the seeming hatred of Mac in the Python Community. The guy who runs this site is a saint.
http://www.python.org/download/mac/
http://www.pythonmac.org/packages/py24-fat/index.html
All I wanted to do was make networkx work so I could make simple network digrams. I finally did it after I installed these from his site (yeah – I went a bit overboard – in case I wanted to play later):
Python 2.4.4
matplotlib
aggdraw
pygame
pysqlite
pyXML
scipy
wxPython2.8
PIL
numpy
I could never find a pyGTK for the mac – it is under development. I could run about 2/3 of the tests from matplotlib. But I did see a networkx graph displayed. Time for some popcorn and to watch a football game.
Gibberish notes below. Note that I went down a long path with 2.3 and came up short – so I just went to 2.4. I hope Mac OS 10.5 has 2.4 or later on it. Hey I should reboot to the other partition and check :)
Playing With Python – Finding some Snarkiness
I have been looking into Python for the last two weeks as I may be teaching Python next semester to Freshmen and Sophmore students to do data analysis. I have been searching and learning as I go. The message below was just plain fun to read – it is in some other community – so I could read it and let it go by :)
In general Python seems to be the best and worst of open source – there are tons of extenstions – but very little overall organization. There should be more things like:
Too bad there is no Mac version of the distro. Enough about that – on to the fun snarkiness! Interestingly the person complaining (at the bottom) is complaining much about the same as me – why is there not some quick and easy to use “get me started” distro?
—— Everyhing below this line is from the mail message ——-