{ height: 1%; } - Ruby on Rails and User Interface Design

CSS, UI Design, Ruby on Rails and cheese ... lots of cheese

SlimTimer API Released

Posted by Richard White Tue, 17 Oct 2006 18:27:00 GMT

With all the server issues from last week resolved, I quietly pushed out the SlimTimer API on Sunday. From the site itself:

With the SLIMTIMER API developers can write rich desktop or web applications that integrate seamlessly with SLIMTIMER. The API is RESTful and fluent in XML, YAML and JSON.

The Public API allows secure access to SLIMTIMER user data for syncing with external applications. We also have a Trusted API for those companies and individuals interested in a tighter integration with the SLIMTIMER platform including importing your existing users into SLIMTIMER and branded versions of the timer client.

To obtain and api key and get started simply signup for a SLIMTIMER account and click on the API link after you login.

I look forward to seeing what inventive apps and integrations are created and certainly let me know if you’ve built something based on the API.

I’m also tinkering with the idea of a contest, with prizes, to get the creative juices going. What do you think, would you be interested in a programming contest?.

Finally, don’t hesitate to ask for help or for extra functionality via either on the SlimTimer developers forum or by emailing me directly. Enjoy!

SlimTimer turbulence

Posted by Richard White Wed, 11 Oct 2006 12:50:00 GMT

I wanted to take a moment apologize to anyone who used SlimTimer in the last 12 hours and encountered slow reponse times and the 500 errors. The good news is that it seems to be fixed now (you never want to anger the gremlins by proclaiming that you’ve conquered them) and the site should actually be faster because of the solution.

I attempted to roll out a silent release so people could beta test the API, but the server was none too pleased and started thrashing about. No biggie I thought, I’ll just do a quick rollback and debug these issues elsewhere. That too did not go so well and left me with a server that would last an average of 5 minutes before I’d have to restart it (the fastcgi dispatchers, not the whole actual box) and no way to fix other than on the live site.

I did my best to try and fix the problem while also keeping the server up at least every other 5 minutes (to pick up SlimTimer submissions). The solution? Swapping out Lighttpd/fcgi for Lighttpd/Mongrel.

Update 10.12.2006:

So it turns out my Mongrel solution turned out to be a false positive as the server went back down a couple hours after this post. I did finally manage to track down the real culprit: bad data in some user sessions.

The positive upshot of all this is I became acutely aware of some performance issues in the system. I’ve sped up most of the views and reports by 150% or more on my local development version. I’ll push those improvements out in the next release, which will be whenever I get up the nerve to touch the server again. :)

Update 10.12.2006

Seems that performance issues were also part of the problem mix as they reared their ugly heads again during peak hour (11-1 MDT). I went ahead and hot fixed some of the SQL queries (referenced previously) which should help. I’m also investigating whether it’s a configuration issue or a lack of server resources. I’ve temporarily changed the client update rate to 10 minutes from 3 (this is how often the client updates the server).

Update 10.17.2006

Pushed out a new version on Sunday(10.15) that optimized some more SQL queries and fixed two memory leaks. Things seem to be running well now as I haven’t seen a server load over 1.0 which is good considering Monday is the busiest day. Thanks for your patience during all of this.

AjaxScaffold News and Roadmap

Posted by Richard White Thu, 05 Oct 2006 16:53:00 GMT

AjaxScaffold has been deprecated in favor of ActiveScaffold

First of all, thank you to everyone who’s checked out the plugin and provided valuable feedback, we are listening. I will add that the plugin release has reenergized my passion for AjaxScaffold, which honestly was waning due to the upgrade problems associated with code generation.

And now, the news:

  • I will no longer be doing point release blog posts. We’re keeping the CHANGELOG current and you can always monitor the package in Rubyforge so you’ll know when these bug fix releases come out. Scott or myself will continue to do posts on major updates, such as the upcoming 4.0.0 release, but I’m no longer comfortable with { height: 1% } turning into a rolling AjaxScaffold changelog.
  • A number of your have asked about using associations in the plugin and rightfully so, we’ve been slack for not updating the old generator based article on adding associations. We’ll try and push out a similar post on using associations with the plugin version in the near future. After the next release making associations easier to manage, in both the table and in the form, will be our top priority.

The next release of the plugin will have a number of important changes that you should know about ahead of time:

  • We’re jumping on board the new CRUD standard for Rails and realigning things so that an AjaxScaffold can mesh with something like SimplyRestful that’s now in Edge Rails. This means that the current list method will now be moved to index, all actions will use respond_to instead of request.xhr?, and the show/create/index/update /destroy methods will support returning XML/YAML/JSON. I’m using all this stuff now in SlimTimer for the upcoming API and it works great in concert with the SimplyRestful stuff.
  • We will no longer support multiple ajax_scaffold definitions in a single controller. It doesn’t fit the new CRUD model and it’s not asking too much for you to use multiple controllers.
  • And much more…

What’s also gotten us excited is that the project is recieving increased corporate sponsorship in the form of companies paying for development of new features and bug fixes and/or support agreements. I’m not at liberty to disclose who these wonderfully forward thinking companies are but AjaxScaffold is being used in the “enterprise”. If your company is interested in either a support agreement or subsidizing development shoot me an email.

Also, remember that we have a wiki page of people that are using AjaxScaffold, but that list need not be limited to public facing sites, if you’re company is using AS internally we’d love to hear about it. Add your company information and maybe a short blurb about how you’re using AS to the wiki page.

ScobleShow's Language War Starring Yours Truly

Posted by Richard White Wed, 27 Sep 2006 05:03:00 GMT

I previously mentioned a programming language debate that sort of happened on the spot at Scoble’s OffTheGrid gathering. Well with the release of ScobleShow that wonderfully raw bit of video has been released. I’m too afraid to watch it myself so please tell me how it is (unless it’s really bad then just say something nice).

From OffTheGrid recap

Hopefully the impassioned and zealtrous(sic) on film argument about PHP v Python v Ruby between John, Michael and myself will see the light of day (If not I’d like it for the home videos to show the grandkids one day). In it I sound like a total 37signals zealot talking about constraints and conventions but that’s what you get when you mix beer, geek egos and a camera. The oh so predictable developer argument began with the simple question “How does Rails help you write more maintainable software?”. I have had a lot of thoughts on the subject lately and started a manifesto of sorts of the subject of software maintainability for web applications. I’ll try and post that sometime soon.

Ajax Scaffold point releases

Posted by Richard White Thu, 21 Sep 2006 21:50:00 GMT

AjaxScaffold has been deprecated in favor of ActiveScaffold

Just a quick not that I’ve put out a point release for both projects (generator v3.1.20 and plugin v3.2.1) to fix the fact that the :class_name attribute for ScaffoldColumns was broken.

That is all.

SlimTimer: New Reporting Features

Posted by Richard White Thu, 21 Sep 2006 21:39:00 GMT

I took a break from building the SlimTimer API to add some much needed features to reporting:

  • For our international users there are two new report options: format numbers with commas (1,5 instead of 1.5) and CSV export using semicolons (; instead of ,).
  • A ‘Today’ time range option which is especially useful for…
  • A Timesheet report

Now, back to the API. Enjoy!

Ajax Scaffold Generator 3.1.9 Released

Posted by Richard White Tue, 19 Sep 2006 01:46:24 GMT

AjaxScaffold has been deprecated in favor of ActiveScaffold

A quick patch for the generator which was choking at run time on some images that are no longer included in the distro. When I get some free time I’m going to improve our workflow for testing and getting out versions of both projects, but for now just bear with me (and let me know asap if there is a problem).

Ajax Scaffold Generator 3.1.8 Released

Posted by Richard White Sat, 16 Sep 2006 08:09:00 GMT

AjaxScaffold has been deprecated in favor of ActiveScaffold

I made a bonehead move that broke sorting over the last few releases. An include was missing from lib/ajax_scaffold.rb:

  module Controller
    <strong>include AjaxScaffold::Common</strong>

    def clear_flashes

You can either patch that yourself or get the new point release. What’s my excuse? Too much, and careless, diffing between the now two branches of AjaxScaffold (plugin & generator). Thanks go to Edgar from the forum for pointing out the problem.

Ajax Scaffold Generator 3.1.7 Released

Posted by Richard White Wed, 13 Sep 2006 04:24:00 GMT

AjaxScaffold has been deprecated in favor of ActiveScaffold

Apparently the last release was shipped with some corrupted images (add.gif, indicator.gif, indicator-small.gif). This release is simply 3.1.6 without the image corruption. My apologies.

Ajax Scaffold Plugin Released

Posted by Richard White Tue, 12 Sep 2006 21:09:00 GMT

AjaxScaffold has been deprecated in favor of ActiveScaffold

Ajax Scaffold is nice, but generated code just doesn’t scale well. There’s too much effort required to make cross cutting changes.
I really like Ajax Scaffold but it’s really hard to upgrade when a new version comes out. I usually spend a couple hours diffing all my scaffolds with a newly generated one.

I couldn’t agree more and we now have an answer to those problems: an Ajax Scaffold plugin. Creating a scaffold is now as easy as:

class WidgetController < ApplicationController

  ajax_scaffold :widget

end

Need extra control over the displayed data?

class WidgetController < ApplicationController

  ajax_scaffold :widget

  @@scaffold_columns = [
    AjaxScaffold::ScaffoldColumn.new(Task, {:name => "name", 
         :sort => "name.downcase" }),
    AjaxScaffold::ScaffoldColumn.new(Task, {:name => "tags", 
         :eval => "widget.tag_names.collect{|t|h(t)}.join(', ')" })
  ]

end

And it can scale up to be just as customizable as the generated code. Need to customize the form partial? Just copy _form.rhtml into your controller’s view directory and change it. If you’re new to Ajax Scaffold you will probably want to play around with a generated scaffold first to get a feel for how all the pieces (controllers, views, etc) fit together as the plugin code is a bit more complex (but should make sense if you’ve used the Ajax Scaffold generator).

The plugin is almost a direct port of the functionality of the existing Ajax Scaffold generator with a few extra conveniences tacked on (total rows, sorting by method, etc). One major difference is that the scaffold_columns definitions have been moved from the model to the controller (The generator will be going this way in it’s next release).

We will be versioning the two projects in parallel to keep confusion to a minimum. The plugin release is 3.2.0 which will be the same version as the next generator release that incorporates some of the changes the plugin has made (scaffold_columns in the controller).

Many thanks go to Scott Rutherford for writing the bulk of the code as well as the howto guides (which you can get to via the Ajax Scaffold wiki). Ready to get started?

Older posts: 1 2 3 4 5 ... 10