Archive

Archive for the ‘script.aculo.us’ Category

Job Opportunity (Smalltalk and Seaside)

November 23, 2007 5 comments

DeepCove

I’m pleased to announce that we are looking for another full-time developer to join our agile team of long time Smalltalk fans. Here at DeepCove Labs our primary focus is evolving and maintaining a mature industry leading international payment processing platform that we have built from the ground up over the past 6 years.

Ideal candidate is someone who has experience with Smalltalk, SQL and last, but definitely not least, Seaside. They must be enthusiastic, motivated and as excited about using cutting edge technology to solve business problems as we are. I should point out that good self task management and time management skills are a big plus as we work as equal peers and share roles every day of the week. We are not XP fanatics, but some things are second nature to us,

  • keeping things simple
  • plenty of unit tests
  • no code ownership
  • frequent integration
  • lots of refactoring
  • frequent releases
  • no overtime
  • our customer shares the same address

Our primary requirements are as follows:

  • at least five years general software development experience
  • several years experience developing with dynamic languages (Smalltalk, Ruby, Python, Lisp)
  • one year recent Smalltalk experience
  • experience developing applications of at least moderate complexity
  • demonstrated experience working directly with users

Experience with any of the following would be a major plus:

  • agile test driven development
  • financial services
  • SQL, specifically Microsoft SQL Server
  • web application development, specifically with Seaside and moderate amounts of JavaScript
  • deployment of large scale applications in managed services environment

Our office is located in the heart of Downtown Vancouver, steps away from Pacific ocean, beautiful parks, shopping and entertainment district and all major transit connections. All employees receive excellent health/dental benefits package and few other perks. We like to think we are an open, flexible and friendly place to work, so please drop me an email with your resume if you are interested.

Update (Nov 26): Few folks had pinged me to ask if telecommuting is an option and the simple answer is that for this particular position we would like someone who would be willing to relocate to Vancouver and work from our office together with the rest of the team.

Canvas UI for MooTools

November 20, 2007 Leave a comment

Finally, a decent implementation of panels using MooTools, which means I can finish my migration from YUI+Scriptaculous to MooTools some time this year if time allows.

MooCanvas

Seaside 2.8 on VisualWorks

July 6, 2007 2 comments

Michel Bany has just published another port of Seaside for VisualWorks in the Public Repository, go check it out, but read his disclaimer first.

As requested on this list I published Seaside 2.8 on the public Store repository.

SeasideForWebToolkit(2.8a1.390.0,mbany)
SeasideForSwazoo(2.8a1.390.0,mbany)

both are based on Squeak version Seaside2.8a1-lr.390, July 4, 2007.

I also published Scriptaculous based on its most current Squeak version.

SeasideScriptaculous(2.8a1.205.0,mbany)

based on Squeak version Scriptaculous-mb.205, July 6, 2007.

The version number for Scriptaculous in the public Store repository (2.8a1.xxx) is meant to indicate that it will not work with Seaside 2.6 and Seaside 2.7.

Although I did not check, I expect most of the Seaside add-ons to fail with Seaside 2.8 (SeasideAsync, SeasideTesting, WebDesignerTool, SeaChart, ShoreComponents,etc.).

I’ll be trying it out first thing (once all the important work stuff is done, of course, wink).

Seaside/VisualWorks updated

October 4, 2006 2 comments

Michel Bany has been busy as always even without my constant asking him for updated ports. Here’s a list of changes for latest published versions of Seaside and SeasideScriptaculous in the Cincom Public Repository.

Seaside 2.6b1.84.0

  • Made WABatchedList use it’s own accessors rather than direct instance var references so subclassing and overriding things works properly
  • For better XHTML compliance
    • Canvas api to always supply alt= on img elements
    • In WAToolFrame replace the break with a space in a div
  • HTML supplies 6 possible heading levels. Seaside should too
  • Categorize WASelection
  • Bugfix: exagerated values for process time in the tool bar
  • Added fragment to WAUrl, allow to scroll to a named anchor
  • Limited minute in timeinput to 59, changed the assignment operator
  • Added #document:mimeType:fileName: to WAAnchorTag to provide equivalent functionality as in the classic API
  • Added a Canvas upload test
  • Refactoring allowing easier subclassing of WAHtmlDocument
  • Image map support added to the canvas api
  • More XHTML compliance
  • CSS support for image map
  • Categorized methods of WAInspector
  • Added WATableTag >> #border
  • Changed WATableTag >> #layout to use self sends
  • Fixed WAMiniCalendar to use #datesDo:
  • Opera fixes
  • Cean up and reformatting
  • Full ruby support (with tests)
  • Categorized some methods
  • Push up #title: to WATagBrush (it’s a core attribute anyway)
  • Refactored sceenshot, no longer so ugly
  • Added some more options for links to style sheets to WAHtmlRoot
  • Added some more options for links to style sheets to WARenderedHtmlRoot
  • WAHtmlRoot categorization and clean-up
  • Fixed a regression in ByteArray rendering (shows up in VW only)
  • More categorization (WACookie, WAFile, WAStreamResponse)
  • Clean-up WAFile>>contents and corresponding tests

SeasideScriptaculous 2.6b1.137.0

  • script.aculo.us 1.6.4, which marks the inclusion of the new release candidate of Prototype 1.5, is out now.
  • Added PeriodicalExecuter decorator
  • Added #activate, #enable, #disable, and #clear to SUFormElement
  • Added #autoSelect: to auto-completer
  • Added #delay: to Draggables and Sortables
  • Fixed events/effects for Draggables

Seaside Meeting Reminder

August 14, 2006 2 comments

Just a reminder that we’re getting a bunch of Smalltalkers together this Friday in Vancouver, here’s the reminder along with the info for ya:

What: Informal Seaside/Squeak/VisualWorks/Smalltalk Meet Up

When: This Friday, August 18, 2006 @ 6:00PM PST

Where: Stamp’s Landing Neighborhood Pub – 610 Stamps Landing, Vancouver, BC – Google Map

Who: Everyone with interests in Seaside, Squeak, VisualWorks and anything else to do with Smalltalk is welcomed to join us for a beer (coffee, milk, coke, juice, water) or two and informal chat about state of things in the Seaside world and whatever else people choose to catch up on. There is no agenda, simply because putting a bunch of passionate Smalltalkers in the same room seems to turn into a good thing on its own, so why ruin it? ;)

So far we have: myself, Joerg and Gordon from DeepCove, folks from Smallthought, Steve Messamore, John Maxwell, Chad Nantais, Glenn and Shiro confirmed in attendance, please comment or email if you are planning on coming, or simply drop by the pub if you wish to stay anonymous. More people, the merrier, so pass this message on please.

Update: By the way, its perfectly fine if you wish to bring somebody along who is not a Smalltalker per se. Please let your better half, colleague, friend know that they’re more than welcome to join us at the pub if they wish to come as well.

Seaside/VisualWorks updated

August 9, 2006 2 comments

Michel Bany has just published updated versions of Seaside and SeasideScriptaculous to the Cincom Public Repository.

Seaside 2.6b1.70.0

  • Added the possibility to link documents from an iframe
  • Improved the iframe tests
  • Categorized a few methods
  • Added a few accessors
  • Modified linkToScript: to prevent duplicates when child controls add references to dependent scripts
  • Added #renderOn: to MessageSend to be able to use them polymorphic to blocks in rendering code
  • Categorized some methods in WAComponent
  • Removed obsolete instvar
  • Categorized 2 methods
  • Call super in release
  • Categorized a lot of methods
  • Use Canvas API for WABatchTest and WADateSelectorTest
  • Categorize a lot of methods
  • Convert to new Canvas API: WAPath, WAToolFrame, WAVersionUploader
  • Cleaned up WACanvasTableReport a bit
  • Removed unneeded #with:
  • Removed direct access to attributes
  • Lots of method categorization
  • WA(Simple)Navigator use new Canvas API
  • Experimental WAKomEncoded for 3.9. Should not break existing, working code in any Squeak.
  • Categorize VNCController methods
  • Fixed various senders of dnu-messages to attributes causing unnecessary slowdown of rendering tough the DNU handler
  • Fixed some occurences of the depricated squeak-arrow assignement

SeasideScriptaculous 2.6b1.127.0

  • Added SUElement>>#render: to simplify rendering the contents of an element within a script
  • Made use of the new function #render: in SUAccordion and SUTabPanel
  • Improved SUInPlaceEditor to latest version of script.aculo.us (more options)
  • Changed the slider (not sure if this fixes the reported bug)
  • Reorganized categories
  • Fixed bugs in the component collection
  • The in place editor is back with a test (sorry, it got somehow lost in the process)
  • A couple of obvious bug fixes
  • Properly convert instances of Character to Javascript

YUI Dialog in Seaside

July 20, 2006 2 comments

I got a bit tired of trying to convince Scriptaculous SULightbox’s JavaScript to play nice with Lightbox Plus JavaScript, so I decided to try YUI’s dialog overlay. See version 1.2+ in the Public Repository.

Dialog

The protocol is identical to that of SULightbox, for example

(html anchor)
 callback: [
  self dialog:
   ((ConfirmationDialog new)
          message: aString;
          yourself)];
 class: 'nav';
 with: 'Logout'

versus,

(html anchor)
 callback: [
  self lightbox:
   ((ConfirmationDialog new)
          message: aString;
          yourself)];
 class: 'nav';
 with: 'Logout'

You can pass any component to #dialog: and it’ll render in a modal dialog right over the original page. Give it a try, but please note that this is just a test and I haven’t used it much myself yet to get the kinks out of the system. And no, its not as pretty as Scriptaculous just yet, there’s certainly a good reason to objectify the whole library, but I suspect it’ll be a gradual process since this is just a side utility-type project for me.

Seaside/VisualWorks updated

July 20, 2006 Leave a comment

As you can see by the lack of activity I’ve been pretty busy here working away on our online application. Nonetheless, I have just published updated versions of Seaside, SeasideAsync and SeasideScriptaculous to the Cincom Public Repository. Since this is my first stab at the port (many thanks to Michel Bany for providing enough instructions) please let me know if you find any problems, I’ve given it a bit of stress-testing with our application and things seem to be looking up nicely.

Seaside 2.6b1.58.0

  • Small fix for button in application editor
  • Changes to WAListener
    • made it work in 3.8, what probably breaks 3.7 comaptiblitly
    • improved the #startUp and #tearDown behavior
    • properly close the socket in case of time-out
  • Toolbar’s “New Session” fix for cookies (Thanks to Boris Popov)
  • Moved onKeyDown shortcut handler to where it belongs
  • Send back an internal error if the session timed-out and the request was coming from the ajax world
  • Two changes I’ve made to get our application to pass as XHTML 1.0 Strict, both don’t seem to affect the behavior or rendering, so it might be good to just include them at some point (Boris Popov)
  • Three changes I’ve made to get WAListener more reliable, though still some more work is needed (Lukas Renggli)
  • Add a comment to WAAnchorTag
  • A fix to WADateInput from Boris Popov in his quest to XHTML Strict
  • Similar fix to WATimeInput
  • Corresponding tests updated
  • Add WADispatcher>>removeEntryPointAt:
  • Rename argument in WADispatcher>>removeEntryPoint:
  • Add convenience methods to access preferences directly from components. No need to use: ’self session application preferenceAt:’ anymore.
  • Moved counter to new rendering api. We should stop teaching the old api and start teaching the new one. Time and again people ask about the new api on the mailinglist. Examples using the old api are partially responsible for this.
  • Removed seaside logo from counter, it should only be a minimal example
  • Removed a lot of unneeded #with: in canvas tests
  • Categorized methods
  • Added #on:of: in three places where it makes sense, had to copy paste, traits would help a lot but this is no news
  • Changed tests to make use of #on:of:
  • Replaced ( to: ) do: with #to:do:
  • Added missing super sends
  • Changed assignments where I stumbeled upon them
  • As you can guess by the changelog, a peer review would be a good idea

SeasideAsync 2.6b1.41.0

  • Ensure lower case for all application and folder names
  • Tidy #addMetaContentType

SeasideScriptaculous 2.6b1.122.0

  • Added a lightbox test
  • Added a couple of conveniance methods
  • Repackaged after accidental inclusion into package
  • Marked SUAllTests as a root component so it’ll show up in seasides config interface properly.
  • Renamed test subdirectory from ‘Test’ to ‘test’
  • Started with some simple components
  • Ajax accordion and tab panel are fully working
  • Fixed a rendering problem when using #on:of: for callbacks
  • Improved WATag>>script:
  • Allow to assign to a local/global variable
  • Tried to manually merge the XHTML fixes from Boris Popov
  • Properly convert instances of Character to Javascript

Ajax requests in expired sessions?

June 29, 2006 2 comments

I found an interesting issue yesterday with my Ajax’y component used for all kinds of interesting reports here. The table containing the results includes an actions panel at the bottom, which gets updated via an Ajax request every time dataset’s selection changes so that various action buttons could re-evaluate their state. The updater is created via,

(html updater)
 id: 'actionpanel';
 triggerForm: fid;
 onSuccess: (SUStream on: '...javascript...');
 callback: [:r | r render: self actionpanel];
 yourself

This works great, but only so long as the session is not stale. As soon as session expires, subsequent Ajax request will result in a whole new copy of the home page being stuffed into the poor little ‘actionpanel’ div, and that’s not something I want to see. I haven’t given this a whole lot of thought yet as I have more pressing issues to attend to, but I’m sure I won’t be able to sleep as well knowing this is still not working quite right.

Here’s a brand new page – nothing selected,

Normal

Let’s select an item and have the action panel update itself,

Selected

Now, we’ll manually expire the session from the image and try to unselect the item to fetch a new version of the action panel,

Expired

Ooppss…

Categories: Ajax, Seaside, script.aculo.us