Help me choose a new Point and Shoot
November 19, 2008
I'm in the market for a small P&S camera. I already have a DSLR and have decided that I'd like a camera that is 1) small enough to fit in my pocket 2) takes decent photos and 3) can do the occasional video that is easy to upload to common services (Flickr, Youtube, etc.). I first looked at the Canon G10 because I loved that it could take RAW photos but after seeing it in person it is definitely way too large. I'm now deciding between the Canon SD1100 IS and SD870 IS. SD1100 IS:
SD870 IS:
I love the wider lens on the SD870 IS; sometimes you just cannot back up enough. It would be especially nice for those shots where you stick your camera out in front and hug your significant other. But the SD1100 IS is really cheap. What would you do? I'm leaning towards the SD870 IS at the moment. Update: I bought the SD1100 IS. I found out the SD870 IS has some funky touch controls that didn't sound great to me and the next model up was too expensive for what I'm looking for. I also discovered that the SD1100 IS can do timelapse movies which sounds like a blast. Update again: I refused delivery of the SD1100 IS because there was a sale on the SD880 IS. It was more expensive but I think it's worth it for the features: 28mm lens, next generation processor (Digic 4), larger LCD. The SD880 cannot do timelapse for some strange reason; maybe Canon will enable it with a firmware update later. I'll have it sometime next week. JSON output, Ping services
November 18, 2008
Migrating from one blogging platform to another can be a pain. I don't want it to be difficult to move away from this one so I've added JSON output. Any page that displays entries can be represented in machine readable JSON by adding ?format=json to the end of the URL. def render_json(self, entries): json_entries = [{ "title": entry.title, "slug": entry.slug, "body": entry.body, "author": entry.author.nickname(), "published": entry.published.isoformat(), "updated": entry.updated.isoformat(), "tags": entry.tags, "link": "http://" + self.request.host + "/e/" + entry.slug, } for entry in entries] json = {"entries": json_entries} self.response.headers["Content-Type"] = "text/javascript" self.response.out.write(simplejson.dumps(json)) For example the archives page contains every entry on the blog. So this link is all you need to migrate. It'll also now ping Google when you publish a new entry. Eventually I'll support more pinging services. Tag Feeds
November 15, 2008
This blog now supports feeds for individual tags (technically any page that gets passed the Visit any tag page, click on the RSS icon in your browser, and you'll see two choices: the main feed and the tag feed. def render(self, template_file, extra_context={}): if "entries" in extra_context and \ self.request.get('format', None) == 'atom': return self.render_feed(extra_context["entries"]) Book Meme
November 14, 2008
Vedrai, carino, se sei buonino, che bel rimedio ti voglio dar. "Vedrai, carino" from Don Giovanni in Arias for Soprano. Megen stores her music books on my work desk :). Technically not the 5th sentence on page 56 because there weren't 5 sentences on page 56; so I spilled over to the next page.
Found at Eric Florenzano's Blog. |
ElsewhereRecent Entries
The opinions expressed on this site are mine and do not
necessarily represent those of my
employer. You won't find any
confidential company information here, and while you're welcome
to
get in touch with me,
I'm afraid I can't put you in contact with my employer.
©2024 Benjamin Golub
|