Joel Always one syllable, sometimes "@jayroh"

Installing libmemcached and the memcached gem on Leopard

16 Feb 2009 #development #gem #memcached #rails #ruby on rails #Work

face palm

What a huge pain in the ass.

I just spent hours trying to get every combination of these two to work together and nothing worked.   A handful of versions of libmemcached had no problems installing – .24, .25 and .26 were all easy to install, both from source and from macports.  However, getting the memcached gem to install proved to be way way more difficult.I tried with a myriad of options – the most promising piece of information looked to be from this gentleman’s website – but also proved fruitless.The final solution, after a LOT of googling and clicking around the rubygem forums – this post at Evan Weaver’s blog.  The libmemcached-0.25.14.tar.gz and memcached-0.13.gem tarball and gem, respectively, installed easily without any problems.  After downloading all I had to run was:

tar -xzvf libmemcached-0.25.14.tar.gz
cd libmemcached-0.25.14
./configure && make && sudo make install
cd ..
sudo gem install memcached --no-rdoc --no-ri

Done. Finally.

Update: There seems to be a few issues with the gem I link to being installed correctly in Snow Leopard.  After spending too much time trying to figure out why the gem wouldn’t install, I installed the current memcached gem (from gemcutter) on a whim – and it compiled, and worked, without a problem instantly.   So, if you’re running Snow Leopard and looking to install the memcached gem, try out the latest version first.One caveat – I’m still using the memcached server I linked to above, version  0.25.14, still from Evan Weaver’s site

Difference between :collection and :member in Rails 2.0

11 Aug 2008 #development #enlightenment #rails #Work

#

In getting up to speed with the new bells and whistles in Rails 2.0s RESTful routing capabilities I ran into something that puzzled me.  Of the options for a resource defined among your routes there were two similar pieces that, for one reason or another, I could just not find a solid and bulletproof explanation for – :collection and :member.  The :member part of it I got pretty easily for some reason, because its description is inherent in its own name … “a member among the default restful actions”.  The :collection part?  Notsomuch.  After some digging in the Rails mailing list I ran into a great, and worthy, explanation for this knucklehead by a contributer named “deegee”:

For example, with map.resources :reviews, if you want to add a method ‘delete_all’ that deletes all reviews at once. You may want to call that with ‘/reviews/delete_all’ and method PUT (never use GET to delete something). This method is acting on all resources (a collection), so the route should be:

map.resources :reviews, :collection => { :delete_all => :put }

If you want to have a custom action acting on a specific resource, e.g. ‘/reviews/3/give_rating’, then your action is on a member and the route would be

map.resources :reviews, :member => { :give_rating => :put }

So that’s it! They’re the same other than :member working on a single resource, while :collection works on multiple.  DONE!

I’ve got an idea. I need a programmer. It’s easy!

16 Apr 2008 #business #development #entrepreneurship #Work

#

There’s a really great post at this blog about how the writer, a developer named Ethan, was approached by some acquaintances with regard to a big idea they needed help in implementing. The usual banter ensues, in which Ethan discusses the terms by which he expects to be compensated. Whether in equity or at an hourly rate of payment.

The response from his pitch-man?

Hey, so, we aren’t really prepared to pay. I mean there isn’t that much to it, it’s just a PHP website with a MySql database, I was hoping you could just throw it together as a favor. Oh well, thanks anyway

The rest of his post echoes pretty much exactly how I would feel in this situation. “There isn’t that much to it”. That line destroys me. To anyone that might ever make that assumption – take a moment to step back, and really think about what you’re saying. It blows my mind to think that there are people out there that are so quick to make the leap that “there isn’t much to” someone’s craft.

“Dear Mr. Architect – can you design this house for me for free? I mean, there isn’t much to it, it’s just a house with a foundation and some walls”.

On another semi-related note. If you’re looking for someone to jump in on an entrepreneurial venture – the challenge you should expect to be faced with is to find that one special, talented individual that might share the same passion as you on this particular topic. From my perspective – that’s the key. Passion. Unless it’s for pay, it’s hard for some to get truly amped to knock out the creative, or code, for your new project. I’ve tried the same approach – “Work with me on this! We’ll rule the world“. It’s too nebulous a proposition for most, unless they know they’re going to LOVE this thing you’re creating.

My conclusion – work my ass off for a little extra money to invest in the paid services of my friends to help me where the help is needed. I just can’t ever expect to get something knocked out of the park by someone who’s going on my word – “This is going to be HUGE!”. If my name was short for something like … Joelstradamus … then maybe I’d be more eager to prognosticate on the magnitude of my many “next pet project”s.

WordPress 2.5 – I’m impressed

14 Apr 2008 #development #plugins #sara #wordpress

#

wordpress iconI’m in the process of building and theming the brand new bitbythebeautybug.com for Sara. Not only is she excited, but I’m elated to be working with the newest of the new in WordPress “technology”. It’s a strange leap from all the WP installs I’ve dealt with previously, but you can tell they’ve dropped a metric ton of work into making it the most secure (as it possibly can be) and usable blogging platform out there.

The first thing we did to get this ball rolling was to find a designer that truly “got” Sara’s vision for her brand. Luckily we were able to retain the services of a wonderful designer named Erika. I really liked the work she did for the RailsEnvy guys and figured I would give it a shot to see if she would be available for some design work. Turns out she had some space in her (I’m sure) busy calendar and whipped up some designs for us. Design – complete. Much thanks to Miss Greco!

On my end, the development work so far, other than slicing images, has consisted of a few tasks.

  1. Since this would be a custom theme, I looked for the most generic, baseline theme I could find to bend to my will. After a lot of looking I decided on one of these themes provided by Charity at Design Adaptations. It’s well developed, very well commented and absolutely gets out of the way of anyone who is using it as a jump-off for their custom wordpress theme. I’m still struggling with whether this is “custom” if it inherits code from someone else’s work. Regardless – she deserves kudos.
  2. One of the things I was looking forward to playing with in these recent versions of WordPress are the “Widgets” the WP team has put so much work into. Picking and choosing all of the content blocks you want to see around your site, re-ordering them as you wish – it’s just nice. See a widget you like, download, activate, put it where you want it. The only slightly difficult part was to enable the sidebar for widget support, and then figure out just how to enable multiple “sidebars”.
  3. Once the theme actually supported all of these widgets – it was time to find them.
    • Flexo Archives – reducing the clutter that the generic Archives widget spits out.
    • Limited Catlists – displaying the latest posts in Category X – for our purposes, the posts categorized under “Featured”. I couldn’t find a “Featured Posts” widget so this will just have to do.
    • Text widget – this one comes stock with WP by default and takes care of those scenarios where a little duct tape is needed. No decent FeedBurner widget? That’s fine – copy and paste the code Feedburner gives you into the text widget. Need a small “About” widget? Text widget to the rescue.

It goes without saying – I’m far from finished, but in the initial sprint to build out this site these are the pieces I managed to take note of. All in all though, WordPress 2.5 has been nothing short of a revelation in terms of where it came from, and where it’s going to. Huge props go to Happy Cog for the work they put into the new WP dashboard. It just feels so right.