Yahoo Pipes, what an odd beast.

I’m an RSS proponent , I think it’s great. It truly has revolutionized how I use the Internet, while be it a pretty low- key revolution, the ones that stick often are.

I have about 50 rss feeds I use, but most of them are duplications of one another, meta-news is the new news. We report about someone reporting about someone reporting.

A lot of this is caused I think by a 50/50 mix of politeness and fear. Politeness plays in when we want to give credit to someone, so that were not plagiarizing, which makes us somehow more ‘reliable’ ? Fear in that if we don’t give that credit , we’ll get a nasty letter from someone with initials after their name. So you get an article on site A, verbatim from site B with a link to site B, and on site B the article is actually just a paraphrasing of an article on site C, with link, etc….

The need for RSS mangement is becoming clear (to those who use RSS) and tool for this start to pop up all over the place, enter Yahoo Pipes

There has been a rush of articles about pipes as of late, so I won’t belabor the point, other than to give a simple clear example of how one of my pipes that I find usefull.

Pipes allows you to perform logical operations on rss data, by this I mean simple programmatic functions (if,else,foreach, etc…) , and at first it’s hard to think of exactly how this is usefull, but with a bit of thought it becomes evident.

I like my gadgets, as much or more than the next guy, but gadget sites are in a strange and twisted love affair with cell phones that I do not share. So , amalgamate my gadget feeds , and remove cell phones!

Here you can see my pipe built up, engadget and gizmodo feeds added, then I use the union tool to combine them, and lastly the filter tool to filter out any articles that have the words “phone” or “mobile” in them. Very simple, but very useful.

Pipes

This also suits me fine for just amalgamating, in all honesty I’m not bothered which of these sites points me to a neat toy, I’m intertested in the toy, not who linked to it.

As a point of review, the pipes interface is very advanced DHTML, the connecting lines operate arguably nicer than the ones in Visio, in that they highlight possible points of attachment. As well as that is a debug window at the bottom, allowing you to see the output of any particular node in your pipe.

I think Yahoo has done a really neat thing here.

Just Relax - the problem with Permissions.

I’ve been thinking about writing about this for a while, and a post at 37signals has encouraged me to do so .

Having been involved in designing a number of CMS systems, user content systems, and general business process/management systems, without fail, every one of these has run into huge problems around the issues of permissions.

To illustrate, lets look at a hypothetical situation:

Company A has a content management system , which allows them to update the content on their customer support site.

Now, the basic problem here is simple, allow them to post common questions, and answers to those questions, provide a method for customers to ask new questions, and maybe a small system to display the ‘most popular answers’ type of thing.
Here we’ve described a 2 week project (not including designer time).

Enter ‘the problem’ .
Who gets to answer the questions
Who gets to edit the questions
Who gets to edit the introduction/content on the various pages
Who gets to edit that content.

Very , VERY quickly, this turns into a blooming tree of permissions. Permissions on objects, that inherit from permissions on object types, that inherit from areas of focus, differences in contributor vs. editor vs. publisher roles, roles per area of focus, etc…

What I see happening here, time and time again, is you end up building a permissions system, not a system to manage the support site. And the question I have to ask is

Is this the business your in?

Are you in the business of creating permissions based editing systems? I’m willing to bet the answer is no. You’re in the business of delivering your product, and all you need here is people to help answer the questions. Whether you’re building this internally, or paying an outside company/contractor, ultimately it is still your company doing the project, your time and money.

Remove all the permissions, except for maybe admin/not-admin , log who creates/edits content, and move on. Allow it to be a 2 week project; not a 2 month project that will never satisfy the increasingly byzantine permissions needs.

There is a cliché in film, which is that if a crane is rented, every shot is a crane shot. In short, just because you CAN create these permissions structures, doesn’t make them beneficial to your business.

It’s important to realize that traditional business process, and communication, are still the forces that make business successful, simply talk to people, and have them be responsible for the content they edit/submit, they are the people who run the business!

In the same way that people are responsible for locking the door when they leave, they are responsible for following basic business rules for this kind of exercise. You trust your staff to operate a part of your company, why wouldn’t you trust them with this? If you don’t , then perhaps your company has larger problems.

Concentrate on the core deliverables of these ancillary projects, and be very skeptical of anything outside that, the ‘bare minimum’ gets a bad wrap. With the definitioin of bare minimum to mean “the least that can be done to adequately satisfy the goals of a project” , then 9/10 times (especially in areas that are not core), bare minimum is exactly what you should be striving for.

Keep focus on “what is our business” , because if what your doing isn’t your business, then what are you doing?

Colibri Screencast (launcher / system tool)

Merlin Mann is always on about his beloved Quicksilver, and to be honest I am a bit jealous..

With Quicksilver,you can just type the name of the application you want to launch, you get a nice little interface to tell you if your on the right track (like T9 for applications)

Basically what we have here is a movement towards leveraging a text interface in a gui environment , which I support.. It’s true you could run a dos window and launch things from there.. but there’s autocomplete issues.. are you going to put every app you have in your path.. etc.. It’s just not practical.

Enter Colibri , it doesn’t currently have all the functionality of Quicksilver (neither will it likely). but it does have some very nice features.

I like to use the windows calculator, for example; now, I know the name of it ‘calculator’ . Why should i have to get my mouse, possibly go through 2 - 6 levels of menu (depending on how committed you are to it) , to click on the tiny little icon, not to mention the popping closed start menu flyouts that seem to fight you all the time. With Colibri I can just type the name ‘calculator’ , and in fact i can get it in just ‘ca’ , that’s a lot easier.

Click on the screenshot below to see a screencast I made of Colibri in action. Colibri is launched via hotkey (ctrl-space in my case) , in this screencast, none of the commands (other than closing some apps) is done with the mouse, just ctrl-space, then start typeing, maybe arrow  up/down and enter.

colibri screen shot

There are some shortcomings, for example I dont know how to add something that isn’t in my start folder to its list.. maybe it’s possible I don’t know..

Time Tracking HPDA

A friend of mine was taken by my enthusiasm in the ETT by David Seah (it should be pointed out i know that ett url by heart now) , and got tired of me talking about a 3×5 version of it, so he created one!
(hopefully David doesn’t mind, for good measure, here’s another link)

I’m pretty impressed, i like having hours at the top of each column, and there’s no reason 8a.m. through 7 p.m. couldn’t be there, but nonetheless.. not bothered with the additional sheets either, but for the sake (sp?) of completeness I can see it..

He’s got these printed out on index cards with lined backs for notes which i like..

Heres an image of it, click to get the pdf

 

PHP MagickWand GIF Cropping issues.

So, I have some magickwand code which crops images, all seemed well.

Then it’s pointed out that GIF files are not cropping properly, an investigation shows serious wierdness with them.

Eventually I discover that the are in fact being cropped, but some metadata about their size is not being updated..

The symptoms here were that the image looked fine in my imageviewer (irfanview) , but in a browser (including the windows explorer thumbnail view) they were showing as their orriginal pre-cropped size as transparent, and the newly cropped image visible..

see below (click for larger versions)

Here’s the original Image

And here is the perplexing ‘cropped’ image, you can see that the crop worked, but for some reason it is layered on the original image resolution..

The windows file properties show the file as 486*563, the original size… but opening in irfanview shows the image as 275*160, the cropped size. Clearly there is some metadata in a GIF that defines the size, which some applications (browsers) care about and others (irfanview) do not.. so on to find that.

A trip to imagemagicks identify command was equally confusing, here it shows us the ‘correct’ cropped resolution
identify -format “%@” orig.gif
223×438+0+0

But after some experimenting , I found
identify -format “%g” orig.gif
486×563+0+0

This was the original and now ‘incorrect’ size, so I had at least located the data. Apparently GIF stores ‘page geometry’ data, surprise !

So I found the method in magickwand to deal with this

MagickBooleanType MagickSetPage(MagickWand *wand,
const unsigned long width,const unsigned long height,const long x,
const long y)

Putting that in place unfortunately solved nothing, and the identify %g still showed the wrong data.. my love affair with magickwand ended a long time ago, so this was not well received.

This is where we enter the great, and terrible things about open source:
1. Documentation is often wrong, outdated, or totally absent
2. You can find the source code and just look at that

So as has been the case many times with MagickWand, I found the code and had a look, turns out there is a method called MagickSetImagePage in ImageMagick (not MagickWand) , so I figure I’d try it out. Sure enough that method works fine, and does exactly what I want see here:

MagickBooleanType MagickSetImagePage(MagickWand *wand,
const unsigned long width,const unsigned long height,const long x,
const long y)

Issue resolved, and here see the cropped image in all it’s proper glory.

Here’s the code that generates these files


<?php

$current_file = 'orig.gif';
$sourceWand = NewMagickWand();
MagickReadImage($sourceWand,$current_file);

$cropwand = CloneMagickWand($sourceWand);
MagickCropImage( $cropwand, 275,160,90,200);

magickWriteImage($cropwand,"bad.gif");
MagickSetImagePage( $cropwand,275,160,0,0);
magickWriteImage($cropwand,"good.gif");

DestroyMagickWand($sourceWand);

?>

Circa / Levenger Notebook System

So I’ve had my circa 3×5 notebook for a couple weeks now, it’s great.

I’m really enjoying making custom forms for it, i’ve got a workout guide for the gym (always a hassle remembering what i did, and what weight it was at) as well as a partially designed time tracker sheet for it.. In general very happy.

I also got the Pilot G-2 mini pen, fits in the side like a champ, highly recomended. Funnily enough, my search for the G2 turned up a moleskin related site, guess i’m not the only one who thinks they’re handy.

My only regret here is that i didn’t get a set of blank index card refills, so i’ve bought blank cards , and can punch them (i got the protable version of the hole punch, much cheaper than the standard) but it’s not as nice as the cards allready punched and ready to go.

More to come.

circa

workout 3x5 form