Pixenate, Virtual Directories and Secure websites.

I’ve spent some time recently troubleshooting an issue a customer was having with Pixenate. The problem hadn’t arisen before, but thinking about it, it’s a problem which might arise in the future so I think it’s worth blogging about and documenting in the official documentation.

The customer was using Microsoft’s IIS web server and had setup a virtual directory for all photographic images – a perfectly reasonable and sensible setup. The photos resided on an entirely different machine and used IIS’s virtual directory feature to map from a URL to the remote machine. Everything seemed to work fine until they switched over to their production machine which was using HTTPS instead of HTTP. The images would load OK but when users tried to change the photos, Pixenate would complain with an error. The problem was due to a combination of using HTTPS and Virtual directories. Fortunately there is a workaround. A long time ago I added a facility to Pixenate to allow customers to implement their own custom image-loading (say for loading images from BLOBs stored in a database for example) . It wasn’t until recently that it found a use…

Pixenate’s default behavior assumes that there is a simple mapping of URL to file-system path. E.g. If the IIS DocumentRoot is at

C:\InetPub\wwwroot

…and if an image can be accessed via the following url…

… then the file resides on the file system at C:\InetPub\wwwroot\images\abc.jpg , and Pixenate can be initialized by calling…

PXN8.initialize(“/images/abc.jpg”);

…or…

PXN8.initialize( { url: “/images/abc.jpg” } );

…or even…

PXN8.initialize( { url: “/images/abc.jpg” , filepath: “../images/abc.jpg” } );

(this last example assumes pixenate has been installed at C:\InetPub\wwwroot\pixenate – see PXN8.initialize() in the API reference.)

Why would you want to use the last example? Well imagine your photos are served from a secure site ( one which uses https instead of http ). In this scenario, the most common PXN8.initialize(“/images/abc.jpg”); will still work because Pixenate will try to load the C:\InetPub\wwwroot\images\abc.jpg file if it exists.

If a Virtual directory was in use so that /images/ actually pointed to D:\images , Pixenate would no longer work because having tried and failed to read C:\InetPub\wwwroot\images\abc.jpg it would then try to retrieve https://localhost/images/abc.jpg using Perl’s LWP::Simple ( libwww-perl library ) and fail.

In this scenario, Pixenate must be given a back-stage pass so it can bypass https. Just how do you do this? Well the documented ‘filepath’ property won’t work because the image resides in a virtual directory which isn’t accessible from the pixenate directory (in this example, the virtual directory maps to a different disk but it could just as easily map to an entirely different computer).

The standard methods of loading Images in Pixenate (either from the filesystem on which pixenate resides or via LWP::Simple) won’t suffice if HTTPS and virtual directories are in use. This calls for some custom image loading code. Fortunately it’s possible in Pixenate to specify your own custom image loader and use that instead.

In this scenario, the Pixenate server needs to load images from the D:\images directory, and to do this you need to provide a server-side plugin…

use strict;
use Sxoop::PXN8 ':all';
#
#
# insert the following new property/line to your pixenate/config.ini file...
#
# VIRTUAL_IMAGE_ROOT = "D:/images/" ,
#
#
sub fetch_from_vpath
{
	 my ($image, $params) = @_;

	 unless (exists $ENV{PIXENATE_VIRTUAL_IMAGE_ROOT} )
	 {
		  die "The VIRTUAL_IMAGE_ROOT configuration property has not been set!\n";
	 }

	 my $path = $ENV{PIXENATE_VIRTUAL_IMAGE_ROOT} . $params->{virtual_path};

	 unless (-e $path){
		  die "File $path does not exist\n";
	 }
	 my $imrc = $image->Read($path);

	 if (is_imagick_error($imrc)){
		  die "ImageMagick cannot open file: $imrc\n";
	 }
	 return $image;
}
AddOperation('vpath', \&fetch_from_vpath);
1;

Save the code above to a filename ending in .pm and copy it to the pixenate/lib/Sxoop/PXN8/plugins directory.
To use the plugin when starting pixenate use the following javascript code …

PXN8.initialize( { url: "/images/abc.jpg" , // for the web client
                   source: "vpath",          // specifies which plugin should be used for loading
                   virtual_path: "abc.jpg"  // the path used by the plugin
                  } );


This will enable you to use Pixenate on a secure server with virtual directories set up for images.
There are many possible ways of storing photos, filesystem (local or remote), database, cloud (S3) but I’m confident Pixenate is flexible enough to cope with whatever exotic permutations of the above can be thrown at it.

Tagged , , , ,

Twitter Mosaic and Social Media opportunities ~ We’re featured on SiliconRepublic

Marie Boran at SiliconRepublic.com interviewed me about Twitter Mosaic and how I use Social media.

Even from the beginning, social media was the ideal platform for a small company with little or no budget for marketing, says Higgins: “We ‘launched’ our first product, Pixenate, in a forum post on photo site Flickr.com because that’s where people who share their photos hang out.

“It grew in popularity from there, thanks to blog posts and online and offline publications.”

He explains that the challenge for firms using social media is to make themselves heard above the crowd.

You should read the whole article.

TwitterMosaic also gets a mention in the national newspapers recently. It is featured in the finance section of last Friday’s Irish Times.

Tagged , ,

Why small companies will win in this economy

With the collapse of big companies like AIG, Lehmann, Citibank and GM. Size is no longer seen as an advantage. Big companies like IBM are losing contracts to much smaller businesses led by dedicated people who can be trusted and crucially called up on the phone.

Sxoop Technologies has never pretended to be bigger than we are. We’re a two-person (well – one full-time person now) company and proud of it. Everything you need to know about us (including photos) is right there on our company website. If you have questions, problems or suggestions regarding any of Sxoop’s products or services, you can contact me (Walter Higgins – Founder/CEO) directly by email ( walter at sxoop dot com ) or phone +353 21 4928924.

Over at the Harvard Business blog, there’s a post about how small businesses are winning out over bigCos…

There are hundreds of thousands of businesses like John’s. Small companies that aren’t making millions but provide a good living for the people who work in them. Niche companies whose owners are trying to build sustainable businesses they love rather than fast-growing companies they can flip. They have no intention of retiring. They like working in them. And their clients know that. Which is why they have a loyal customer base willing to invest in the relationship.


Read the whole thing here
.

Tagged

Pixenate Version 1.3.4sp1 (service pack 1) is ready

If you’re a Pixenate customer you will have received a notification email about the release of Pixenate version 1.3.4 sp1 (service pack 1). This release includes a number of bug fixes and enhancements.
Despite spending time developing the TwitterMosaic service, I’ve still had time to work on Pixenate. Updates are released every 2 to 3 months. It’s been just 2 months since our last update. If you are an existing Pixenate customer and would like to receive updates then subscribe to the renewal plan at http://sxoop.com/products/pixenate/renewal.html.

Tagged

Tuesday Push: Tuesday Push

I’m late pushing this one, but better late than never.

The Tuesday Push is a blog meme created by Damien Mulley. Unlike most blog memes, which tend to be useless filler, this one has a purpose – it plays a vital function in raising the profile of Irish web startups. It is not just a great idea, but that rarest of things in this day and age – a Noble idea.
The idea is simple. Every 2 weeks an informal loosely joined network of Irish bloggers kick the tyres on the product or service being ‘pushed’ and blog about their experience. This provides the product/service with a much needed traffic boost. Participating blogs should reciprocate coverage. My own coverage of Tuesday Push has been somewhat spotty (like my blogging in general) but our own Twitter Mosaic service was pushed just 2 weeks ago and we got a big traffic boost from it.

If you are an Irish startup looking to raise the profile of your product or service, sign up for the Tuesday push here.

Tagged , , , ,

Twitter Mosaic news and Videos

Since first launching Twitter Mosaic just 3 weeks ago, we’ve been expanding the range of products on offer. Just today we added a bookmarklet which makes turning your favourite Tweets into a T Shirt a one-click step. See the video below for how to drag the ‘Tweet Shirt’ bookmarklet to your browser’s toolbar and then use it to instantly create custom T Shirts from your favourite twitter status updates (aka ‘Tweets’)…

(A high-resolution version of this video is available here.)

One of the really neat things on offer at Twitter Mosaic are Twitter Profile Cards, cute little cards with your twitter avatar, screen-name, website and other details on them. Check out the unboxing video here…

If you have any suggestions for products we should offer or improvements, let us know in the comments.

Tagged , , , ,

Twitter Mosaic and EC2

We’ve played with Amazon’s Elastic Compute Cloud service before – principally as a low-cost proof-of-concept to demonstrate Pixenate‘s ability to scale across multiple servers in a clustered environment (Some of our larger customers have several instances of Pixenate running on multiple servers).

Recently I took another look at EC2 – this time for a different reason…

Our Twitter Mosaic service can generate large mosaic images on the fly which can be printed on to T-Shirts, Mugs and Bags.
The service pulls 100’s of user avatar images from twitter and creates a large mosaic from the image collection. This turned out to be a much slower process than anticipated – not because of the image processing but because of how Twitter stores it’s images. Twitter uses Amazon’s S3 cloud storage service – a very low-cost effective storage system. The only problem with S3 right now is that access can be slow. Our service was pulling 100’s of images at a time from S3 – that’s 100’s of HTTP requests – most of which could take anywhere between 0.05 seconds and 5.00 seconds to complete. The result was that our service could take up to 2 whole minutes to create mosaic for use on a product. Clearly not a good shopping experience.

One of the overlooked advantages of EC2 is that if you run software on an EC2 server, S3 is blazing fast. If you’re writing software that does any heavy lifting with S3 data – do it on EC2. It’s like working in zero gravity.

We quickly changed the service so that a key part (the retrieval and composition of S3 images) moved to EC2 and a single HTTP request could be made to the EC2 server. By doing so, we reduced the time it took to create a mosaic from 2 minutes to a couple of seconds. A big win.

Tagged , , , , ,

Atoms 2.0

We’ve been selling software and services to photo-merchandising companies for more than 3 years now. It’s an exciting area to work in. The possibilities and permutations of what you can do with photos has grown exponentially over the past few years.

As the digital camera market has matured and the number of digital photos has grown, people have been eager to explore what can be done with their photos. No longer happy to let their photos sit idle on hard-disks, people have turned their photos into cakes, posters, mugs, T-Shirts and other stuff made of atoms.

It’s taken a while but people are rediscovering the simple pleasure of the tangible. A photo you can hold in your hands or a photobook you can leaf through over a cup of coffee. A T-Shirt you can wear that proudly displays a mosaic of all your friends. Photos have always been about sharing the experiences you’ve had. That’s pretty hard to do if your photos only live on your hard-disk.

sample mug

We’ve been working on a new software product – one which will let your turn your photos into beautiful photobooks quickly and easily, without downloading software on to your computer. We’ll be working closely with a print/fulfillment partner and launching it as an own-brand service soon, then white-labeling it for use with commercial printers.

I believe there’s an exciting future in highly personalized tangible photo products – T-Shirts, Mugs, Bags, etc – and Sxoop Technologies is proud to be part of the alchemy that brings photos to life from the flat 2D world of the computer screen to the 3D world of atoms.
Twitter Mosaic MugTwitter Mosaic T-ShirtTwitter Mosaic Bag

We’ve also recently launched a simple service which lets you turn your twitter social network of friends & fans, into beautiful mosaics which can be turned into Mugs, T-Shirts and Bags. This was made possible because of Web2.0 and the philosophy of open APIs (both Twitter‘s and Zazzle‘s). What we’ve done recently at http://sxoop.com/twitter/ simply wouldn’t have been possible a few short years ago.

Please go check out Twitter Mosaic for yourself, and stay tuned – these are exciting times.

P.S. If you are a photo-sharing website looking to get the most from your site’s photo content, get in touch.Sample Twitter Mosaic Mug

Tuesday Push: IGOPeople

igopeople

IGOPeople.com is an interesting online social network founded by Campbell Scott. The IGO in IGOPeople stands for Individuals, Groups and Organizations. I signed up earlier today and found it really quick and easy to connect with other people I know on the service – in less than 2 minutes I had connected with 24 people I knew – that’s pretty amazing. A lot of smart thinking has gone into the layout and user interface to create a visually slick and fast user experience.
Crucially IGOPeople has cracked the biggest problem all upcoming social networks face – it has all of the people I would like to connect with. I was quite surprised by how many people I knew were already using the service – which I guess makes me a late adopter :-)
Give IGOPeople.com a whirl for yourself. Very impressive.

Tagged

Twitter Follower Mosaic

Anton Mannering emailed me this morning asking could I create a mosaic of twitter users attending the first Dublin Twestival in aid of charity. Because I like coding and I love mosaics, I knocked together a tool to create a mosaic of followers on twitter.

To use the tool, visit http://sxoop.com/twitter/

Get your twitter mosaic here.