August 2006

Handel 0.99_06 Released

Close, but no Bob Seger. We’re getting close. I’m done futzing with storage I think, and the Catalyst Models/Model Helpers have been reworked. All tests pass (except for perl_critic.t). Tomorrow I start on the rest of the Cat code.

  • Simplified Storage->setup and removed clear/reset nonsense
  • Added Spanish lexion provided by Diego Kuperman
  • Abstracted Iterator and added subclasses for lists, DBIC resultsets and storage results
  • Added result_iterator_class to Base using default of Handel::Iterator::Results
  • Storage now leaves DBIC result_class alone and returns Handel::Iterator::DBIC iterators for search/search_items
  • Cart/Order now use Handel::Iterator::Results iterator
  • Split DBIC specific storage into Storage::DBIC w/ massive tests
  • Started moving news tests to Handel::Test w/ better db deploy/var directory
  • Split Manual Storage into Storage/Storage::DBIC
  • Added param checks to many Storage methods
  • Replaced old Makefile warnings w/ mention of Test::More and DateTime compares
  • Added Perl::Critic tests for my personal gratification. None pass yet. :-)
  • currency_columns gets/sets list instead of arrayrefs to better match generic columns/primary_columns
  • Bumped DBIC requirement to 0.08 (use -current for now)
  • Reworked Catalyst Helpers for Models (Controllers are still broken)

Announcements

Comments Off

Permalink

A Personal Note About Handel/Mango

I may moderate this off topic, but I felt it important that my statements below be made public for the sake of posterity given recent events.

<begin long brain spew>

As anyone who has read the pod or Changes file knows, I started working on Handel at the end of 2004. Handel started as a hobby project, born out of the need to convert an ASP site to LAMP and out of frustration have having to write Yet Another Damn Shopping Cart without many modules to support it [on CPAN]. In the year and a half since then, Handel 0.33 has become pretty stable with the help of a lot of tests, some kind patch submitters and TDD goodness; and we’re on the cusp of 1.0, which I hope will prove to be the best release yet.

But I digress. You knew that already. The purpose of this email is to hopefully clarify my intentions with Handel and Mango as well as ward off any future problems that may arise due to my [maybe not so] unique personality traits. :-)

As I suspect most true ‘geeks coders’ are, I take my projects to a personal level. They’re not just bits of code to put me on the fast path to CPANTS fame but instead, are obsessions. If I can’t figure something out, something is broken or tests don’t pass, I can’t sleep; literally. I’ve had dreams about code I’m working one. (*cough*loser*cough*).

I liken Handel to an earwig of that tune you can get out of your head (Ring,Ring,Ring,Ring,Ring,Ring,Ring: Banana Phone!). The only way to get rid of it is to sing the tune over and over until your brain loses interest. The same is true for this project for me. I’m pushing to get everything in my head out into 1.0 so I can set it free and move on. If that makes me a control freak, then so be it. You caught me.

Since Handel is a ‘personal obsession’ for me, I’ve purposefully kept it a one man show where I can make all of the decisions and ultimately, all of the mistakes as well. I do appreciate the interest in Handel so far, as well as the patches submitted by various guilty parties. So, if you feel like I have ignored you, or spurned your offers of patches for rewrites and such, my apologies. It’s not personal. It’s just men battling my control-freak-obsession demons. But have no fear. Once I finish my 1.0 obsession, I fully intended to start handing out commit bits on the repo and finding a victim or two to start taking on special godlike powers. I do acknowledge that is what is needed for Handel to grow and succeed and live on.

With the recent approval of the Mango grant by The Perl Foundation, I now find myself on the cusp of another ‘personal obsession’. I’ve made my promises for a price bed, and now have to lay in it and frankly, it scares me. Mango is a project born out of my desire to help bring Catalyst/Handel/Perl to the forefront of this Web 2.0 RoR age we live in rather than playing the bystander role. I think Catalyst is better, and I want to prove it.

So, as I work to put one personal obsession to rest, and embark on new one, I will undoubtedly piss someone off, make someone feel like their help, opinions, patches or help aren’t wanted or welcome. You’ve been warned. It isn’t personal, usually not intentional, and it’s definitely not permanent.

Game on.

-=Chris

Off Topic

Comments Off

Permalink

TPF Grant Proposal Approved: Mango

Much to my surprise, The Perl Foundation has approved the grant proposal for Mango. For those who hadn’t heard about Mango yet, it is going to be an “ecommerce solution” built using Catalyst+Handel. The main goal of Mango is to be one of those ‘Web 2.0′ buzzword applications [but better] to help promote Catalyst outside of the circle of us who already know its virtues.

Please feel free to add any comments, thoughts, concerns, requirements etc to the Mango wiki space.

Right now, I’m still pushing hard to get Handel 1.0 done so I can dole out maint bits and concentrate on Mango. I’m also a bit in shock about the grant. I’m a little bit hyped, a whole lot scared, and quite a bit rock and roll. Here’s hoping that I can live up to the promises I’ve made and not make us all look bad in the process. :-)

-=Chris

Announcements

Comments Off

Permalink

Handel 0.99_05 Released

It’s that time of the month again. Another round of bits and bytes has escaping from the coding monkeys. These new bits and bytes formed:

  • Changed create_result in Base to create_instance
  • Added create/search/uuid_maker/copyable_item_columns to Storage
  • Storage->clone now clones even with an active schema instance
  • Schema configuration in Storage now uses a clone of the item_classes storage instead of the original, and redirects result->storage
  • Cart/Order/Items now use storage create/search
  • Cart/Order add() now use copyable_item_columns when passed objects
  • Cart/Order add() now look for source columns and methods to fill destination column values
  • Various pod fixes
  • Added more tests for create_instance/clone changes
  • Cart/Order/Item new/load/destroy now take \%options, specifically $options{storage}
  • Order->new $process argument moved into \%options
  • Order->copy_cart_items now just uses add
  • Added checkout_class to Storage
  • Storage now uses exception_action rather than dbh->{HandleError}
  • Storage process_error now creates a Storage Exception for unknown errors
  • Moved storage settings in Cart/Order Item into Storage::Cart/Order::Item
  • Applied Catalyst Helper test patch from Todd W.
  • Added Storage::Result, which is now returned by storage actions
  • Handel::Currency convert now returns a new currency object
  • Cart/Order/Item now use generic result objects
  • Cart/Order clear now returns result of action like delete does
  • Renamed Cart/Order/Item new() to create()
  • Renamed Cart/Order/Item load() to search()
  • Added load/new/items to Compat.t w/subclass tests

At this point, I think I’m close to being done rearranging the API and there’s even a good bit of compat tests for those -4 people using the old API in subclasses. Now that the big stuff is out of the way, it’s time to get busy reworking the Catalyst helpers and I still need to fix the demo code and get some good Cookbook stuff in place.

Announcements

Comments Off

Permalink

CatInABox Update

With a little prompting on #catalyst, I’ve updated CatInABox to use Catalyst 5.7001. I’ve also updated a few of the plugins including View::TT, Template-Toolkit and Authentication. As always, you can download a copy from the downloads directory.

For the brave Win32 users out there, I’ve also posted the CatInABox directory I use on my USB thumb drive that includes just about everything plus the kitchen sink compiled for Perl 5.8.x on win32.

Happy coding.

Announcements

Comments Off

Permalink