If you see it, you’ll #### bricks. The things programmers make users deal with…
Recently, I’ve had the pleasure of accumulating over 1 million thumbnail and preview images on my drive. I like having as many files on my disk as the next guy, but I thought since I’m using MongoDB anyway, why not use GridFS to store the images!
The trick was to fetch an image at a URL, save it into GridFS, then be able to serve it back out – all without temp files or creating individual files for every image. Here’s a recipe that does it all!
Here’s a gist combining Backbone.js views and routes with API-driven tables from datatables.net. HTML not included, but it should be fairly obvious what’s going on here… a simple app for browsing auction listings.
Whoever said scraping web pages can’t be fun never tried it using Python decorators and generators! We’ll use this mini-framework to fetch all the upcoming comic book releases from one of my favorite online comic book stores.
A couple of interesting things going on here programmatically: 1) using decorators that are static methods of a class that maintains some state for the decorated operations and 2) decorating class methods that are generators – the typical decorator can’t handle a yielded result…
These were my results searching for a default avatar for a Tumblr blog. Clearly ‘metadata’ isn’t being used here, just low-level image features… Vermont, OK. But, Minnesota? Come on!
It’s even more apparent that NO ‘metadata’ is being used when Google Maps map tiles make it in the results…
It’s REALLY hard to deliver relevant images similarity results without any context…
Here’s a quick fiddle that shows how to route a command between sub-views no matter how they’re nested in the DOM. Basically, when a sub-view is rendered it triggers a subscribe event that’s captured by the application view which then sets a delegate on another sub-view. This other sub-view is the source of the events, e.g. a menu bar.
When the event source sub-view triggers events (e.g. clicking a link), it does so on the delegate. Event names are specified in the HTML using a
data-event attribute on the link. Enjoy!
Here’s some handy code for generating combinations of strings in Python. Provide a string with substitution variables and a list of iterables, and poof!