Updating my WordPress plugins

I’ve cobbled a few WordPress plugins together, primarily to do stuff on UCalgaryBlogs by exposing built-in WordPress functionality through shortcodes so that people don’t have to manually edit themes.

And then I basically ignored the plugins for a few years, because they don’t actually do anything, so there’s not much to update or fix. But it looks bad if a plugin hasn’t been tested with recent versions of WordPress, so I just did some testing of them all. They all work on WP 4.4.2, and I’ll re-test after 4.5 drops. I did find some funkiness in one of the plugins, and that’s been taken care of (and I made it a bit more generalizable, so yay progress). I’m hoping to give the plugins some more love – I definitely need to spend more time actually building things instead of just talking about the stuff that people do with the things I made a few years ago…

Post Revision Display may become more active – a new developer was just added to the project, which means some new energy and ideas…

wordpress-plugins-update

Source: WordPress › Profiles » D’Arcy Norman

Rails Bookmark Manager – now with hot “AJAX” action

I followed a howto for adding that hot AJAX loving to a Rails app, and now my gestating bookmark manager has a slick add-a-new-bookmark-without-reloading-the-page form, making it feel pretty responsive. I really wish del.icio.us had implemented that – it takes a LONG time to reload the page (with huge tag cloud) when adding a bookmark…

Anyway, I pieced together code from a howto and a wiki page, and it took me maybe 30 minutes to get it going (with Family Guy playing in the background, so not 100% attention-requiring).

It’s not perfect – I have to clean up the new-record-displaying code – but it works pretty darned well. The newly saved bookmark is displayed at the top of the bookmarks list pretty quickly, with no noticeable lag.

I followed a howto for adding that hot AJAX loving to a Rails app, and now my gestating bookmark manager has a slick add-a-new-bookmark-without-reloading-the-page form, making it feel pretty responsive. I really wish del.icio.us had implemented that – it takes a LONG time to reload the page (with huge tag cloud) when adding a bookmark…

Anyway, I pieced together code from a howto and a wiki page, and it took me maybe 30 minutes to get it going (with Family Guy playing in the background, so not 100% attention-requiring).

It’s not perfect – I have to clean up the new-record-displaying code – but it works pretty darned well. The newly saved bookmark is displayed at the top of the bookmarks list pretty quickly, with no noticeable lag.

Fun with Rails – Bookmark Manager

I made some time to sit down and play with Rails this evening, and thought I’d work on a simple Bookmark Manager (ala del.icio.us) – a piece of software that I am sorta familiar with, since I use del.icio.us a fair bit, and have some ideas that I think would improve the service. So, I’ll try mocking them up in Rails to give me something to chew on while I learn…

So, about half an hour into it, and I have a barebones app that lets me add new bookmarks (complete with title, description, rating, date added, url, etc…), and list existing bookmarks.

Next, to try to work in the concept of Users, and tie bookmarks to specific users. Then, to try to do something interesting with the connections that can happen when multiple users bookmark the same resource, or similar resources, or tag them differently, or give them different ratings, etc…

I’m really liking the concept of Scaffolding in Rails. It feels very similar to starting a WebObjects application via DirectToWeb, and slowly overriding the default functionality as you need to. I also really like the strong MVC separation. Controller files (.rb – analogous to the WebObjects .java files) contain the business logic, while View files (.rhtml – analogous to the WebObjects .html and .wod files merged?) contain HTML with bindings to the methods and variables in the controller.

Almost forgot – I only “wrote” about 3 lines of code. Still, there were several files automagically generated by Rails, and a couple of the .rhtml files with html and bindings, but still – very little actual code to write/manage.

I think I’m really going to like Ruby, as well. It’s easily readable without being annoyingly verbose. It’s nicely object oriented, without being too abstract. It’s interpreted, so it’s easy to see code “live” as you tweak it.

I’ll play with this app over the next few days/weeks to see what I can come up with. If it gets stable enough, I might deploy it on my desktop box back in the office…

Here’s the basic database schema I’m working toward. I still have to think out the bookmark –> tag relationship. I want Tags to be primitive “nouns” – not belonging to any user, and being linked to from Bookmarks through a join table. Adding tags is just a matter of ensure the “noun” exists, and creating (or removing) a join to it.

Rails Bookmark Manager Schema

Update: Thanks to a tip from Hunter, I checked out the acts_as_taggable plugin/extension/whatever for Rails (description here). Basically, you just drop this bad boy into place, and declare in your controller that the class acts_as_taggable – then, the plugin takes care of managing a many-to-many relationship between that class and the tags.

Sample code from the description page for acts_as_taggable:

class Photo < ActiveRecord::Base
  acts_as_taggable
end

elephant = Photo.find(4437)
elephant.tag 'zoo animals nature'

elephant.tagged_with?('urban') # => false
elephant.tags.size # => 3
elephant.tag_names # => [ 'zoo', 'animals', 'nature' ]

Can it get any easier than that? It’s doing exactly what I was describing as wanting, but For Free. Sweet.

Update 2: Yes, it can get easier. And more powerful. The developer of acts_as_taggable reworked the mixin/plugin after some thought, and came up with something even cooler (documentation here).

In poking around some of the Rails sites, I keep thinking that although it’s still a bit immature (it just hit 1.0 a month ago), it “feels” like WebObjects, but based on Open Source from soup to nuts, and with an apparently vibrant and cool developer community. WebObjects is waaaaay more mature, but isn’t Open Source (hence the licensing fiasco this summer), and it feels like the developer community may be atrophying a bit (although I could be wrong on that – I hope I am).

Update 3: About an hour into noodling with the acts_as_taggable mixin, and I have a fully folksonomic bookmark manager. I’ve got a simple form that lets me add bookmarks, complete with a freeform text field for entering tags, which get bursted into individual Tag rows with the appropriate join table invisibly managed.

I’ve got some more work to do to clean it up, and then I want to add in the concept of users – which apparently is absolutely trivial in Rails. Then, add in some OPML and RSS exports, and support for bookmarklets, and perhaps implementing part of the del.icio.us API on the back end to allow other things to talk to it, and I’ve got a decent bookmark manager, with only a handful of code written. Sweet.

I made some time to sit down and play with Rails this evening, and thought I’d work on a simple Bookmark Manager (ala del.icio.us) – a piece of software that I am sorta familiar with, since I use del.icio.us a fair bit, and have some ideas that I think would improve the service. So, I’ll try mocking them up in Rails to give me something to chew on while I learn…

So, about half an hour into it, and I have a barebones app that lets me add new bookmarks (complete with title, description, rating, date added, url, etc…), and list existing bookmarks.

Next, to try to work in the concept of Users, and tie bookmarks to specific users. Then, to try to do something interesting with the connections that can happen when multiple users bookmark the same resource, or similar resources, or tag them differently, or give them different ratings, etc…

I’m really liking the concept of Scaffolding in Rails. It feels very similar to starting a WebObjects application via DirectToWeb, and slowly overriding the default functionality as you need to. I also really like the strong MVC separation. Controller files (.rb – analogous to the WebObjects .java files) contain the business logic, while View files (.rhtml – analogous to the WebObjects .html and .wod files merged?) contain HTML with bindings to the methods and variables in the controller.

Almost forgot – I only “wrote” about 3 lines of code. Still, there were several files automagically generated by Rails, and a couple of the .rhtml files with html and bindings, but still – very little actual code to write/manage.

I think I’m really going to like Ruby, as well. It’s easily readable without being annoyingly verbose. It’s nicely object oriented, without being too abstract. It’s interpreted, so it’s easy to see code “live” as you tweak it.

I’ll play with this app over the next few days/weeks to see what I can come up with. If it gets stable enough, I might deploy it on my desktop box back in the office…

Here’s the basic database schema I’m working toward. I still have to think out the bookmark –> tag relationship. I want Tags to be primitive “nouns” – not belonging to any user, and being linked to from Bookmarks through a join table. Adding tags is just a matter of ensure the “noun” exists, and creating (or removing) a join to it.

Rails Bookmark Manager Schema

Update: Thanks to a tip from Hunter, I checked out the acts_as_taggable plugin/extension/whatever for Rails (description here). Basically, you just drop this bad boy into place, and declare in your controller that the class acts_as_taggable – then, the plugin takes care of managing a many-to-many relationship between that class and the tags.

Sample code from the description page for acts_as_taggable:

class Photo < ActiveRecord::Base
  acts_as_taggable
end

elephant = Photo.find(4437)
elephant.tag 'zoo animals nature'

elephant.tagged_with?('urban') # => false
elephant.tags.size # => 3
elephant.tag_names # => [ 'zoo', 'animals', 'nature' ]

Can it get any easier than that? It’s doing exactly what I was describing as wanting, but For Free. Sweet.

Update 2: Yes, it can get easier. And more powerful. The developer of acts_as_taggable reworked the mixin/plugin after some thought, and came up with something even cooler (documentation here).

In poking around some of the Rails sites, I keep thinking that although it’s still a bit immature (it just hit 1.0 a month ago), it “feels” like WebObjects, but based on Open Source from soup to nuts, and with an apparently vibrant and cool developer community. WebObjects is waaaaay more mature, but isn’t Open Source (hence the licensing fiasco this summer), and it feels like the developer community may be atrophying a bit (although I could be wrong on that – I hope I am).

Update 3: About an hour into noodling with the acts_as_taggable mixin, and I have a fully folksonomic bookmark manager. I’ve got a simple form that lets me add bookmarks, complete with a freeform text field for entering tags, which get bursted into individual Tag rows with the appropriate join table invisibly managed.

I’ve got some more work to do to clean it up, and then I want to add in the concept of users – which apparently is absolutely trivial in Rails. Then, add in some OPML and RSS exports, and support for bookmarklets, and perhaps implementing part of the del.icio.us API on the back end to allow other things to talk to it, and I’ve got a decent bookmark manager, with only a handful of code written. Sweet.

Playing with Rails

I played around with Rails a bit today. I contrived an excuse to attempt to create a generic “event management” application. I’m familiar with the basic requirements of the app, and have a need to have a generalizable app available to share with groups and departments on campus. And, I want to play around with Rails and ruby to get a feel for what it can do.

Well, I had better luck than Stephen did, but still not quite the magic “30 seconds from concept to production app” wonder that has been whipped up around Rails. I was following the “ToDo” howto and going off in my own direction. It didn’t work too well, and I’ve just realized that’s because the ToDo chapter is written to Rails 0.9, and I’ve got Rails 0.8.something installed. Apparently, Big Changes were involved going to 0.9. OK – so that should discount some of these issues/hangups.

Events Rails application directory structureAt first, I was stumped trying to get Apache 1.3 (the stock install on MacOSX 10.4.2) playing with Rails. Thought I was following the instructions, but no joy. Gave up, and settled for the WEBrick server bundled with Rails. I got hung up for about 20 minutes because I didn’t realize that ./script/server needs to be run as root. I could have sworn that wasn’t required the last time I played with Rails. Once I figured that out, I got the free “hello world” page. Great. On to application creation… It would be cool(er) if the Hello World page gave me an interface to query any models/tables I’ve got configured. Kinda like D2W does…

I created a simple “event” model, with an “events_controller.rb”, and associated “events” views. I used the rails scripts to generate controllers and scaffolds, and ran rake to make sure it all checked out. I spent a lot of time trying to figure out which controllers should be created (Event vs. Events, and Person vs. Persons vs. People) but once I finally got the right controllers and scaffolds set up (and trimmed the excess tests from the various abortive attempts), then it was pretty clear sailing. The scaffolded app isn’t extremely high end – and as I’ve mentioned before, WebObjects DirectToWeb does a better job in some ways. But, the Rails scaffolded app is nice and clean, and looks rather straightforward to customize/extend. “Out of the box,” it gives you a barebones index (list all records), an inspect page, an edit page (with appropriate widgets – textfields, textareas, date selectors, checkboxes…), an add/insert page, and a delete function. Pretty straightforward – but still no Search. wtf. D2w does that really really well, even letting you pick which field to search on, and providing the appropriate widgets to help you enter search parameters.

I haven’t started looking at relations/joins – tying People to Events as either presenters or attendees – but that shouldn’t be too difficult. So far, I haven’t had to “write” any code, but invoking the various generation scripts should probably count – I didn’t get functionality for free, since I had to teach it via generation. D2W gives you lots “for free” by reverse engineering a database schema automatically. Generated code is still code – it’s just written by a script.

I’m going to read up on these before digging back in, though…

I have to wonder, though… If O’Reilly is such a supporter of Rails, touting it as one of the Next Big Things, wtf isn’t there a book in The O’Reilly Safari???

I played around with Rails a bit today. I contrived an excuse to attempt to create a generic “event management” application. I’m familiar with the basic requirements of the app, and have a need to have a generalizable app available to share with groups and departments on campus. And, I want to play around with Rails and ruby to get a feel for what it can do.

Well, I had better luck than Stephen did, but still not quite the magic “30 seconds from concept to production app” wonder that has been whipped up around Rails. I was following the “ToDo” howto and going off in my own direction. It didn’t work too well, and I’ve just realized that’s because the ToDo chapter is written to Rails 0.9, and I’ve got Rails 0.8.something installed. Apparently, Big Changes were involved going to 0.9. OK – so that should discount some of these issues/hangups.

Events Rails application directory structureAt first, I was stumped trying to get Apache 1.3 (the stock install on MacOSX 10.4.2) playing with Rails. Thought I was following the instructions, but no joy. Gave up, and settled for the WEBrick server bundled with Rails. I got hung up for about 20 minutes because I didn’t realize that ./script/server needs to be run as root. I could have sworn that wasn’t required the last time I played with Rails. Once I figured that out, I got the free “hello world” page. Great. On to application creation… It would be cool(er) if the Hello World page gave me an interface to query any models/tables I’ve got configured. Kinda like D2W does…

I created a simple “event” model, with an “events_controller.rb”, and associated “events” views. I used the rails scripts to generate controllers and scaffolds, and ran rake to make sure it all checked out. I spent a lot of time trying to figure out which controllers should be created (Event vs. Events, and Person vs. Persons vs. People) but once I finally got the right controllers and scaffolds set up (and trimmed the excess tests from the various abortive attempts), then it was pretty clear sailing. The scaffolded app isn’t extremely high end – and as I’ve mentioned before, WebObjects DirectToWeb does a better job in some ways. But, the Rails scaffolded app is nice and clean, and looks rather straightforward to customize/extend. “Out of the box,” it gives you a barebones index (list all records), an inspect page, an edit page (with appropriate widgets – textfields, textareas, date selectors, checkboxes…), an add/insert page, and a delete function. Pretty straightforward – but still no Search. wtf. D2w does that really really well, even letting you pick which field to search on, and providing the appropriate widgets to help you enter search parameters.

I haven’t started looking at relations/joins – tying People to Events as either presenters or attendees – but that shouldn’t be too difficult. So far, I haven’t had to “write” any code, but invoking the various generation scripts should probably count – I didn’t get functionality for free, since I had to teach it via generation. D2W gives you lots “for free” by reverse engineering a database schema automatically. Generated code is still code – it’s just written by a script.

I’m going to read up on these before digging back in, though…

I have to wonder, though… If O’Reilly is such a supporter of Rails, touting it as one of the Next Big Things, wtf isn’t there a book in The O’Reilly Safari???

Automator for Deploying WebObjects Application

For the Pachyderm project, we wanted a way to automatically update, build and deploy a WebObjects application and its supporting framework. The initial reaction was to just use a shell script, with xcodebuild running on the server to build the appropriate projects.

That didn’t work for us, because our server is still running 10.3 (with the appropriate older XCode dev. kit), while we’ve moved on to 10.4 and XCode 2.1 for development- so our server can’t understand the .xcodeproj files and barfs appropriately. Doh.

So, King and I whipped up an Automator-based workflow that runs on one of our dev. boxes. It first runs a shell script to update the source code from subversion, then builds the framework and application. It then runs a shell script to record the subversion revision number in a file in the compiled application (so we can display the revision number for bug reports etc… and not pollute our source code with revision numbers). Then, it connects to the server over afp, moves the old build products out of the way, and copies the new ones into place. About an hour later, WOMonitor comes through and cycles the app.

Basically, there is one “master” workflow that runs several nested workflows. This “master” is saved as an application, and I’ve set iCal to launch it every morning at 1:00am.

Yes. Source code management and enterprise application deployment with Automator and iCal 🙂

It seems to work well, but we initially had some permissions problems. It will also make it trivial for use to update the app at will.

For the Pachyderm project, we wanted a way to automatically update, build and deploy a WebObjects application and its supporting framework. The initial reaction was to just use a shell script, with xcodebuild running on the server to build the appropriate projects.

That didn’t work for us, because our server is still running 10.3 (with the appropriate older XCode dev. kit), while we’ve moved on to 10.4 and XCode 2.1 for development- so our server can’t understand the .xcodeproj files and barfs appropriately. Doh.

So, King and I whipped up an Automator-based workflow that runs on one of our dev. boxes. It first runs a shell script to update the source code from subversion, then builds the framework and application. It then runs a shell script to record the subversion revision number in a file in the compiled application (so we can display the revision number for bug reports etc… and not pollute our source code with revision numbers). Then, it connects to the server over afp, moves the old build products out of the way, and copies the new ones into place. About an hour later, WOMonitor comes through and cycles the app.

Basically, there is one “master” workflow that runs several nested workflows. This “master” is saved as an application, and I’ve set iCal to launch it every morning at 1:00am.

Yes. Source code management and enterprise application deployment with Automator and iCal 🙂

It seems to work well, but we initially had some permissions problems. It will also make it trivial for use to update the app at will.

Getting feet wet with Rails

I finally made time to install Rails, planning on taking it for a test drive by making a Ruby on Rails version of the lightweight asset manager database we put together to store assets for Pachyderm.

Initially, I guess my install of Rails didn’t have MySQL support (why on earth wouldn’t that be included right out of the box?), and it kept barfing when it tried to connect. So, I installed or updated my MySQL kit via gem install mysql and it was able to build a simple scaffolded app to let me create a single record via the dynamically generated interface. That was pretty cool – automatically figuring out which widgets should be used, etc… Very WebObjects D2W.

But, it barfed on a field name in the table – it didn’t like “type” at all. So, I renamed that field to “assettype” in my local copy of the database. Now I can create a record.

But, using the “list” action gives me an error:

ArgumentError in Asset#list

Showing /usr/lib/ruby/gems/1.8/gems/actionpack-1.9.1/lib/action_controller/templates/scaffolds/list.rhtml where line #13 raised:

too few arguments.

Extracted source (around line #13):

10: <% for entry in instance_variable_get("@#{@scaffold_plural_name}") %>
11:   
12:   <% for column in @scaffold_class.content_columns %>
13:     <%= entry.send(column.name) %>
14:   <% end %>
15:     <%= link_to "Show", :action => "show#{@scaffold_suffix}", :id => entry %>
16:     <%= link_to "Edit", :action => "edit#{@scaffold_suffix}", :id => entry %>

So, I’m kinda stuck. Rails seems REALLY promising, and everything I’ve heard/read about it makes me want to do a lot of stuff in it. I love the develop/test/deploy distinctions built in from square one. I love the unit testing built in. I love Ruby (but haven’t really used it too much – it seems reminiscent of Lingo, but that’s because Lingo is another Smalltalk derivative, via Hypertalk). Also, Rails just celebrated its first birthday, and was apparently received extremely well at OSCon.

But, the magical “it will build a wonderful app with no code” hype fell a bit short for me, at least initially…

Update: Turns out it was choking on a field named “format” in my “assets” table. Renamed the field to “dc_format” and it appears to be happy… Now that the Rails setup seems to work, and I’ve debugged the database schema conflict, it’s actually very cool how it builds the dynamic app to manage records! Full “view”, “edit”, “add”, “list” and “delete” actions, with a totally usable (but rough) UI. Now to dig in to see how to customize the layout of the dynamic app…

So, for Google’s sake, Rails doesn’t like these field names for tables: type, format – there may be others, but these are the ones that tripped me up so far…

Also, it’s a bit odd that the default scaffolding app doesn’t appear to provide a search function… I can list all records and page through them, but can’t do a quick search? WebObjects D2W does that right out of the box, even generating “advanced search” forms at will. Looks like Rails has a plugin gem to do this (Search Generator Gem), but it’s apparently a bit rough, and not included with Rails as a stock feature.

I finally made time to install Rails, planning on taking it for a test drive by making a Ruby on Rails version of the lightweight asset manager database we put together to store assets for Pachyderm.

Initially, I guess my install of Rails didn’t have MySQL support (why on earth wouldn’t that be included right out of the box?), and it kept barfing when it tried to connect. So, I installed or updated my MySQL kit via gem install mysql and it was able to build a simple scaffolded app to let me create a single record via the dynamically generated interface. That was pretty cool – automatically figuring out which widgets should be used, etc… Very WebObjects D2W.

But, it barfed on a field name in the table – it didn’t like “type” at all. So, I renamed that field to “assettype” in my local copy of the database. Now I can create a record.

But, using the “list” action gives me an error:

ArgumentError in Asset#list

Showing /usr/lib/ruby/gems/1.8/gems/actionpack-1.9.1/lib/action_controller/templates/scaffolds/list.rhtml where line #13 raised:

too few arguments.

Extracted source (around line #13):

10: <% for entry in instance_variable_get("@#{@scaffold_plural_name}") %>
11:   
12:   <% for column in @scaffold_class.content_columns %>
13:     <%= entry.send(column.name) %>
14:   <% end %>
15:     <%= link_to "Show", :action => "show#{@scaffold_suffix}", :id => entry %>
16:     <%= link_to "Edit", :action => "edit#{@scaffold_suffix}", :id => entry %>

So, I’m kinda stuck. Rails seems REALLY promising, and everything I’ve heard/read about it makes me want to do a lot of stuff in it. I love the develop/test/deploy distinctions built in from square one. I love the unit testing built in. I love Ruby (but haven’t really used it too much – it seems reminiscent of Lingo, but that’s because Lingo is another Smalltalk derivative, via Hypertalk). Also, Rails just celebrated its first birthday, and was apparently received extremely well at OSCon.

But, the magical “it will build a wonderful app with no code” hype fell a bit short for me, at least initially…

Update: Turns out it was choking on a field named “format” in my “assets” table. Renamed the field to “dc_format” and it appears to be happy… Now that the Rails setup seems to work, and I’ve debugged the database schema conflict, it’s actually very cool how it builds the dynamic app to manage records! Full “view”, “edit”, “add”, “list” and “delete” actions, with a totally usable (but rough) UI. Now to dig in to see how to customize the layout of the dynamic app…

So, for Google’s sake, Rails doesn’t like these field names for tables: type, format – there may be others, but these are the ones that tripped me up so far…

Also, it’s a bit odd that the default scaffolding app doesn’t appear to provide a search function… I can list all records and page through them, but can’t do a quick search? WebObjects D2W does that right out of the box, even generating “advanced search” forms at will. Looks like Rails has a plugin gem to do this (Search Generator Gem), but it’s apparently a bit rough, and not included with Rails as a stock feature.

Deploying WebObjects under Tomcat

I’d never tried deploying a WebObjects app under Tomcat (or JBoss, or any other J2EE container) before. I’d always just stuck with the built-in WebObjects appserver, and did the config/management in JavaMonitor. Well, it’s now a Really Good Idea™ to make sure any app you want to deploy on non-MacOSX boxes will work in the servlet engines.

So, I did a quick RTFM. (twice, because it’s taking longer for it to soak in after midnight after a busy day of WWDC) Then I twiddled the appropriate bits in my XCode project build settings. Built the .war bundle. Downloaded Tomcat (for servlet spec 2.2), copied the .war into the webapps directory, and lit it up. It just worked. Mostly. Except for funky CSS stuff (because I don’t have any freaking idea how to deploy a Tomcat/WO app, and stuff that’s normally vended via Apache is now just firing 404s).

But, what I care about is that it works!!! We’ve now got (ok. it’s been in WO for a long time now, but I just took advantage of it – cut me some slack) what appears to be an easy way to deploy a WebObjects app on any platform that can run Tomcat. That’s pretty sweet. We’ll be hitting the WebObjects Lab this morning to get some more stuff figured out, but this is looking promising now!

The WWDC session on deploying WO apps on JBoss was pert’ near useless. I did manage to make a bee-line to the mike for Q&A to ask wtf the deal was with cross-platform deployment.

Just to document the event:

Pachyderm 2 on Tomcat

OK. Now to sleep.

I’d never tried deploying a WebObjects app under Tomcat (or JBoss, or any other J2EE container) before. I’d always just stuck with the built-in WebObjects appserver, and did the config/management in JavaMonitor. Well, it’s now a Really Good Idea™ to make sure any app you want to deploy on non-MacOSX boxes will work in the servlet engines.

So, I did a quick RTFM. (twice, because it’s taking longer for it to soak in after midnight after a busy day of WWDC) Then I twiddled the appropriate bits in my XCode project build settings. Built the .war bundle. Downloaded Tomcat (for servlet spec 2.2), copied the .war into the webapps directory, and lit it up. It just worked. Mostly. Except for funky CSS stuff (because I don’t have any freaking idea how to deploy a Tomcat/WO app, and stuff that’s normally vended via Apache is now just firing 404s).

But, what I care about is that it works!!! We’ve now got (ok. it’s been in WO for a long time now, but I just took advantage of it – cut me some slack) what appears to be an easy way to deploy a WebObjects app on any platform that can run Tomcat. That’s pretty sweet. We’ll be hitting the WebObjects Lab this morning to get some more stuff figured out, but this is looking promising now!

The WWDC session on deploying WO apps on JBoss was pert’ near useless. I did manage to make a bee-line to the mike for Q&A to ask wtf the deal was with cross-platform deployment.

Just to document the event:

Pachyderm 2 on Tomcat

OK. Now to sleep.

Important Developments for 2005

There are a lot of things converging together at the moment, and I don’t think it would take a huge effort to give the pieces a little nudge to form the loosely-joined personal and professional publishing platform we’ve been bouncing ideas around about for the last couple of years.

These are some of the things I’m watching (or hoping to participate in) in the coming year. This is a rough list, with no relevance to order. I’ll be revising it at will. I’m also pretty sure I’m missing something important.

This list is just a thinking-out-loud wishlist kind of thing. Not a contract 😉 Some items may get dropped, modified, or moved to another year. Other items may get added. That’s the nature of the game. Flexibility…

This list may end up migrating to a wiki page, but for now…

There are a lot of things converging together at the moment, and I don’t think it would take a huge effort to give the pieces a little nudge to form the loosely-joined personal and professional publishing platform we’ve been bouncing ideas around about for the last couple of years.

These are some of the things I’m watching (or hoping to participate in) in the coming year. This is a rough list, with no relevance to order. I’ll be revising it at will. I’m also pretty sure I’m missing something important.

This list is just a thinking-out-loud wishlist kind of thing. Not a contract 😉 Some items may get dropped, modified, or moved to another year. Other items may get added. That’s the nature of the game. Flexibility…

This list may end up migrating to a wiki page, but for now…

O’reilly Safari Subscription at U of C!

I just went to sign into my safari.oreilly.com account, and it was doing something odd… It somehow identified me as “University of Calgary”, and was offering the entire catalog for me to read! Wow. What an awesome thing! I assume our library bought a campus-wide license (and the safari website must be detecting my IP domain), or, perhaps this is available for all campuses now?

Regardless, very cool! 1165 technology books available at my desktop. Freaking amazing! Thanks to whoever did this!

UPDATE: Looks like it’s part of the University’s subscription to ProQuest – the same subscription that gets us the online journals and newspapers.

UPDATE: IP detection is preventing access from home… Must remember to load up with content while in the office… /sw/bin/wget -r anyone? 🙂 note – any automated site-sucking technique is almost definitely a violation of the Terms of Service, and would likely result in sanctions of some sort. Please don’t be foolish enough to actually try this…

I just went to sign into my safari.oreilly.com account, and it was doing something odd… It somehow identified me as “University of Calgary”, and was offering the entire catalog for me to read! Wow. What an awesome thing! I assume our library bought a campus-wide license (and the safari website must be detecting my IP domain), or, perhaps this is available for all campuses now?

Regardless, very cool! 1165 technology books available at my desktop. Freaking amazing! Thanks to whoever did this!

UPDATE: Looks like it’s part of the University’s subscription to ProQuest – the same subscription that gets us the online journals and newspapers.

UPDATE: IP detection is preventing access from home… Must remember to load up with content while in the office… /sw/bin/wget -r anyone? 🙂 note – any automated site-sucking technique is almost definitely a violation of the Terms of Service, and would likely result in sanctions of some sort. Please don’t be foolish enough to actually try this…