Simon Willison’s Weblog

Subscribe
Atom feed

Blogmarks

Filters: Sorted by date

Underscores are now word separators, proclaims Google. I missed this story last year—the change was announced by Matt Cutts at WordCamp 2007.

# 13th August 2008, 1:06 pm / google, hyphens, matt-cutts, seo, underscores, wordcamp, wordpress

Fire Eagle has launched! No need for an invite any more, hooray!

# 12th August 2008, 9:33 pm / fireeagle, location, yahoo

Django snippets: RequestFactory. I’ve been wanting this for ages; when I finally got around to writing it it turned out to only be a dozen or so lines of code. Makes it easy to create mock request objects in Django, which you can then use for testing view functions directly (bypassing the current test client mechanism which requires views to be assigned to a URLconf before they can be tested).

# 12th August 2008, 12:40 pm / code, django, httprequest, python, requestfactory, testing

Carphone crackdown on phone insurance scam. Story from 2005 but relevant today: I’ve been pestered by scam calls about phone insurance since buying my iPhone from Carphone Warehouse yesterday—the scammers apparently wardial against Carphone Warehouse’s assigned blocks of numbers. Caused a bit of a scene on Twitter until I figured out Carphone Warehouse weren’t actually at fault.

# 12th August 2008, 11:45 am / insurance, iphone, scams

Reviews of the Pownce app on the iPhone app store on Flickr. I had to stitch together a screenshot because you can’t actually link to content in the App Store (unless you don’t care that people without iTunes won’t be able to follow your link). Three out of the four reviews complain about the OAuth browser authentication step, which is frustrating because Pownce have implemented it so well.

# 12th August 2008, 11:05 am / appstore, flickr, iphone, itunes, oauth, phishing, pownce, security, usability

IMG-2-JSON (via) I’m not the only person deploying simple JSON-P APIs on App Engine: Adam Burmister’s tool extracts dimension, mimetype and EXIF metadata when provided the URL to an image file.

# 12th August 2008, 9:43 am / adam-burmister, api, exif, google-app-engine, img2json, json, jsonp, mimetype

Exposure (iPhone app) behaves suspiciously. Exposure on the iPhone does OAuth-style authentication incorrectly—it asks the user to authenticate in an embedded, chromeless browser which provides no way of confirming that the site being interacted with is not a phishing attack. Ben Ward explains how the Pownce iPhone app gets it right in the comments. Exposure author Fraser Spiers also responds.

# 12th August 2008, 7:47 am / ben-ward, exposure, flickr, iphone, oauth, phishing, pownce, security

MapIconMaker. Extension API that lets you programatically construct a Google Maps bubble marker icon with a custom size, gradient and stroke colour. Under the hood it uses the Google Chart API with the (undocumented?) “mm” chart type.

# 11th August 2008, 8:48 am / googlechartapi, google-maps, javascript, mapiconmaker, markers

Why I can’t put Tibet in my Hotmail address. Apparently it’s because “TIB” is name of a bank in Florida, and Microsoft are trying to prevent phishers from creating e-mail addresses that include the names of financial institutions.

# 10th August 2008, 10:41 pm / hotmail, microsoft, phishing, tibet

Changeset 8266—Added ModelAdmin.save_model() and ModelAdmin.save_formset() methods. One of those small changes that opens up enormous possibilities—it’s now incredibly easy to customise exactly how a model is saved in the Django admin interface by over-riding the save_model method.

# 10th August 2008, 1:17 pm / admin, django, django-admin, python

Facebook Security Advice: Never Ever Enter Your Passwords On Another Site, Unless We Ask You To. Nice to see TechCrunch highlighting the hypocrisy of Facebook advising their users to never enter their Facebook credentials on another site, then asking them for their webmail provider password so they can scrape their address book.

# 9th August 2008, 10:18 am / facebook, hypocrisy, passwordantipattern, passwords, security, techcrunch

Open Web Podcast Episode 1. I haven’t listened yet, but Alex Russell, John Resig and Dion Almaer all at once? Awesome.

# 8th August 2008, 11:59 pm / alex-russell, dion-almaer, john-resig, openweb, podcasts

Django 1.0 alpha 2 release notes (via) The last preview release before the 1.0 beta. Big new features are GeoDjango, pluggable file storage (which went in earlier today) and Jython compatibility. The beta is scheduled for August 14th.

# 8th August 2008, 11:57 pm / alpha, django, geodjango, jython

End of Life for PHP 4. Apparently 8/8/8 marks the end of the line for PHP 4—no new releases, no support, not even security patches.

# 8th August 2008, 11:32 pm / chris-shiflett, php, php4

South. A brand new light-weight Django migrations tool from Andrew Godwin. On first glance, this is spookily similar to the system we’ve been putting together at GCap.

# 8th August 2008, 11:42 am / andrew-godwin, django, gcap, migrations, south

This Week in HTML 5—Episode 1. It looks like the most controversial aspect of the HTML 5 spec has been addressed - now, instead of omitting the alt attribute for user generated content that has no relevant information available, sites are advised to provide an indication of the kind of image expected surrounded by braces, for example alt="{uploaded photo}".

# 7th August 2008, 7:57 am / accessibility, alt-text, html5, mark-pilgrim, whatwg

Why “variables” in CSS are harmful. Bert Bos thinks constants or macros in CSS will make it harder to learn. I personally think that the problem with CSS isn’t the learning curve, it’s how difficult it is to maintain later—and I see macros as a great way of reducing that maintainability burden.

# 6th August 2008, 12:13 am / bert-bos, css, cssconstants, maintainability, css-custom-properties

GeoDjango Documentation. Merged to Django trunk a few hours ago. The tutorial isn’t there yet, but the rest of the docs are worth exploring.

# 5th August 2008, 11:06 pm / django, documentation, geodjango, python

Facelift Image Replacement. Like sIFR but with JavaScript and a PHP text rendering component. I question the need for the JavaScript if you’re already generating the images on the server, but the actual generation script is nicely done—it makes smart use of ImageMagick and caches the generated images.

# 5th August 2008, 6:36 pm / caching, facelift, imagemagick, imagereplacement, javascript, php, sifr

simple-thrift-queue (via) Phillip Pearson’s surprisingly concise in-memory message queue written in Python using Facebook’s Thrift library (which is similar to Protocol Buffers, but was open sourced much earlier on). Handles 4,000 requests per second on a laptop.

# 4th August 2008, 12:27 pm / facebook, message-queues, messaging, phillip-pearson, protocolbuffers, python, thrift

PDFMiner. Useful looking PDF parsing library in Python—can produce an XML representation of the text and style information in a PDF document.

# 3rd August 2008, 3:29 pm / pdf, pdfminer, python, scraping, xml

“THIS IS NOT MLM!!!”—An Appreciation. Merlin Mann explains his fascination with the “cash gifting” pyramid scams that keep cropping up on YouTube.

# 3rd August 2008, 3:14 pm / cashgifting, merlinmann, mlm, pyramidschemes, youtube

knol: content w/out context, collaboration, capital, or coruscation. danah boyd: “A system that is driven by individualism quickly becomes a tool for self-promoters”

# 3rd August 2008, 3:13 pm / danah-boyd, google, knol

YouTube: Large Hadron Rap. The first time I saw this I thought it was incredibly dorky. By the third watch I realised I was actually learning things.

# 2nd August 2008, 11:58 pm / cern, funny, large-hadron-collider, physics, rap

Silicon Swings and Silicon Roundabouts. Matt Locke’s advice for anyone hoping to build a “Tech Hub” for startups, based on personal experience gained running a media centre in Yorkshire in the 90s.

# 1st August 2008, 8:20 pm / matt-locke, siliconroundabout, startups, techhub

Beginner’s Guide to Discovery. Extremely approachable introduction by Eran Hammer-Lahav.

# 1st August 2008, 8:18 pm / discovery, eranhammerlahav, xrds, xrdssimple

Large Hadron Collider nearly ready—The Big Picture. Stunningly beautiful set of photographs of the LHC. I love Big Science.

# 1st August 2008, 7:46 pm / bigscience, cern, lhc, photos, thebigpicture

Changeset 8162. “Implemented a secure password reset form that uses a token and prompts user for new password”—also sneaks base36 encoding and decoding in to Django.

# 31st July 2008, 10:54 pm / base36, changeset, django, luke-plant, passwords, python, security

Super User Conditional Page Exception Reporting. The name is almost as long as the code snippet: this serves Django’s debug page to logged in super-users, falling back to the default 500 template for everyone else.

# 31st July 2008, 9:06 pm / debugging, django, exceptions, middleware, python

Years

Tags