bentomas.com

3D CSS Visual Effects — Boy, those Webkit guys keep doing awesome things for CSS, don’t they?! #

24 Ways — 24 Ways is back this year, and has some good stuff. 24 Ways is a CSS advent calendar with 24 articles on CSS, one a day until Christmas. #

92% Success Rate With New OpenID Method — Also quite old, this is great that it is so successful, but it seems to me that it comes at a cost: moving away from what makes OpenID great: simple single sign-on. This seems more like Facebook Connect, which is good because it could get people to use an alternative to Facebook’s propriety APIs but bad because I don’t really like Facebook Connect. #

A Farewell to CSS3 Gradients — Did you know that modern browsers support using SVG images in backgrounds? I didn’t. Cool! #

After the Deadline — Website for spell/grammar checking text. Has an API so you could potentially plug this into any project where that would be useful. #

A JPEG Encoder for JavaScript — Just what it says. Pretty amazing feat actually. Javascript is really coming along these days! #

An interesting 404 error — Seems like it would only be interesting to people who are familiar with HTTP status codes, though. #

A piece with a lot of screenshots about the close tab behaviour in Google Chrome — Excellent write up about some excellent design. There has been a bug filed for Chrome to change this behavior on Mac OS X so that the close button goes on the left. I think this is lunacy, the Chrome guys did a great job here. #

Arduino — As I understand it, a way to build your own electronics. Now all I need is an idea! #

arel — A way to write SQL in Ruby without having to worry about different SQL engines. I was going to try and write something like this, so it saved me a lot of trouble! #

A short PayPal horror story — I have not had a good experience with using PayPal as a vendor either. From this day forth, when presented with an option on checking out I am not longer going to choose PayPal. #

Asynchronous Servers in Python — A list of all the async web servers available in Python with example code. It is interesting to see the different approaches to one problem. #

Atlas Dev Resources Video — I’ve been pretty hard on Cappuccino because I think it leads to large un-web-like websites. But a slide at the beginning of this video sort of hit it home exactly what sort of sites they are targetting. And even if I don’t want to build websites like this (I like the more hands-on, organic approach), I think Atlas appears to be a pretty amazing product. #

Augmenting photos with OSM — Overlaying roads and elevation gradients onto photos. I’m not sure what I would use this for, but it is really cool. #

Birdfeeder — Distributed Twitter. About time! I’ve been wanting this for a while. #

BrowserCouch — A project working to implement the CouchDB APIs in a browser. I hope they continue to work on this (it doesn’t look like it has seen any action in a couple months). Additionally, I love the documentation. Having the code in one column and the description of that it does in another is pure genius. #

Building Rome in a Day — Recreating Rome (and other cities) from Flickr photos. Technology is so cool! #

Clarity — Looks like a great tool for monitoring log files remotely. #

Converting to data URLs — A script to convert files to data URLs. Pretty handy! #

CSS Backgrounds in Firefox 3.6 — Finally we are getting the ability to manipulate CSS background images. Though we still don’t have the one feature I want: the ability to specify positions relative to a given point, like “put this image 6px to the right of center”. #

CSS Border Radius Generator — I use this site all the time because I have a horrible memory and can never remember the syntax. Clean, simple and to the point. #

CSSEmbed — Convert images referenced in a CSS file into data URIs. Pretty cool! #

Data Monday: Operating System Market Share — Any statistics about general operating system market share are useless. Windows is big in the corporate world. And as far as I am can tell that is a market that Apple is happy to give to Microsoft. The real question is personal computers. That’s where we want to know what the numbers are! #

Ditz — Issue tracker intended to be embeded in your source. I love this idea. #

Django tip: Caching and two-phased template rendering — I’ve been wondering for a little while why this isn’t more built into frameworks like Django and Rails. It makes perfect sense! (Though I was going to try it with PHP) #

Don’t Hash Secrets — I know absolutely nothing about cryptography and therefore found this post highly informative and incredibly interesting. #

ECMA 5/Mozilla Features Implemented in V8 — Speaking of ECMAScript 5 features, a list of which ones are supported by V8, the javascript engine behind Google Chrome and Node. #

ECMAScript 5’s Date Extensions — Some long time coming changes to the date object in Javascript (aka ECMAScript). The most welcome of which are the new ways to instantiate a Date object. #

Email Entry in Web Forms — A discussion of solutions to the annoying “Confirm Email Address” fields in web forms. You know why those fields are stupid? Because of a little thing called “Copy and Paste”. Seriously, I have never once actually typed my email address twice. #

Face.com API — Face.com has a developer API for taking advantage of their facial recognition software. Cool! #

Facebook Will Become a Relying Party — I’ll believe it when I see it. #

Finer Things in Mac — One of my favorite new blogs. I feel like eventually it is going to run out of interesting things to post and the percentage of quality observations is going down, but thus far it is very interesting! And I don’t think it is necessarily just interesting for Mac people. It is interesting to read about the little design changes that a company famous for design chooses to make. #

Firebug and the JIT — Even if you don’t have Firebug enabled it is probably slowing down your browsing experience. #

First Step on Ruby Metaprogramming — Overview of metaprogramming (programs that manipulate themselves) in Ruby. Something I wish I knew more about. #

Font Squirrel — Very cool website listing quality fonts that can be downloaded and used on a web page using @font-face. #

Force ‘new window’ links to open in new tabs in Safari — This solves any day-to-day complaints I had about Safari. (Ideally Safari would provide an official way to extend it, á la Firefox) #

Fuck the Foundries — Seriously, what makes them think they are any different than the music industry, movie industry or newspaper industry? #

Fun with Python, OpenCV and face detection — I have been looking for an article on this for a while. This is so amazingly cool! #

GeoIP — Simple and to the point, give it an IP Address and it will give you a pretty good guess for where in the world it correspondes to. #

GitHub Flow: — Description of how GitHub uses Git. I really need to start using Git in a more intelligent manner.. #

Google may lose WSJ and other News Corp. sites — This seems really dumb to me. Do they really think people care enough about the Wall Street Journal to switch search engines? Heck, the majority of people probably don’t even know how to switch search engines. Here’s Rex Sorgatz thoughts on the matter. I think he’s wrong, too (sorry Rex!). #

Google Wave’s Scrollbars — The scrollbars are basically the first thing I noticed about Google Wave. I thought they were kind of gimicky but assumed they had a purpose. But now after reading this summary of how they work, I think they are pretty useless. #

Goosh — Woah! The demo of this one blew me away. Describes itself as “the unofficial google shell” and that is a pretty good description. If you like the command line than you’ll feel at home here. I’m giving it a try as my home page! #

heatmap.py — A python library for generating heatmaps from GPS tracks and other data. #

Hello World From V8 — Speaking of javascript, a walk through of how to get just plain jane V8 up and running. #

Homebrew — Sort of an alternative to MacPorts for installing on Mac OS X. I’m seeing this pop up more and more lately, so I guess I should figure it out. Plus, it appears to have a similar sort of philosophy to virtualenv or rvm. Which I like. Though, these days I am doing all of my development in Ubuntu virtual machines so I probably won’t really use this. #

How Do You Look When Merging Fails ;-) — A script that takes a picture with your webcam every time your merge fails. Pretty funny idea. Though, Mercurial only as far as I can tell. #

How to Make a US County Thematic Map Using Free Tools — This is why SVG is the greatest. You can open it up, look at it, parse it using code and modify it really easily. #

How to Write a Spelling Corrector — Apparently this is an oldie, but someone just linked to it and it was a fascinating read. Now all I need is a project that needs spelling suggestions! #

Hurl — Website for testing HTTP requests. Great for debugging APIs or making sure your headers are being set correctly. Plus, the source is free for all to check out. #

Identity in the Browser — A very cool mockup of what it would look like if logging-in and managing accounts on websites was built into the browser. This feels like a hint of the future. And I can’t wait! Putting the controls in the URL bar makes perfect sense. #

ievms — A schell script that will install VirtualBox virtual machines for testing IE 7, 8 and 9 in a completely legal and Microsoft supported manner. This is fantastic. #

ImageOptim — Just what it says: “ImageOptim optimizes images — so they take up less disk space and load faster.” Dead simple and works well. #

Improving the Web Inspector — Wow! Very cool post detailing the improvements this developer did to Webkit’s Inspector (Webkit is the basis for Safari). This basically solves all complaints I had about Safari for web development. #

Internet Explorer 8 - Browser for the Better — Upgrade your browser and Microsoft will feed hungry people! #

iPhone Sudoku Grab: How does it all work? — Very clear explanation of the computer vision techniques used to read in a Sudoku from an image. #

It’s All About the Self — More discussion on Ruby metaprogramming, this time about what self points to in different contexts. Apparently, there are a lot of ways to change a class! #

I’m not dead! — Speaking of Facebook, they recently came out with what has to be the stupidest feature of all time: now users who have passed away are even harder to find. Yeah, that way you won’t be sad! Anyway, they implemented this feature but then this guy’s friends claimed he was dead. Pretty funny! #

JavaScript Charts Roundup — Summarizes different javascript libraries for graphing. I’ll be looking at this for a project I started a little while ago. #

Javascript tests, compatibility tables and examples — Some compatibility tables on which browsers support some new javascript features. In particular look at the getters and setters section, that’s enough for me! #

LABjs: new hotness for script loading — A new library for getting your javascript files to download more quickly. I take a different approach (which is to make sure I am only using 1 javascript file) but this looks pretty useful for larger applications that have lots of dependencies. #

Learning Advanced Javascript — A great interactive tutorial on advanced javascript techniques. Though, I don’t know how easy it would be to understand if I wasn’t already sort of familiar with these concepts. #

Lightweight Web Services — A talk about the Sinatra web framework and the RestClient library. I have been thinking how Rails doesn’t have anything like Django’s concept of Apps for breaking code up into smaller pieces. I think this is a great solution for Ruby. #

Loading Scripts Without Blocking — Goes through all the options for including your external javascript files. I had no idea there were so many options! #

Log in or sign up? — A look into combining the ‘log in’ form with the ‘sign up’ form on a website, with some inspiration from Amazon.com. I personally hate the Amazon form. Maybe I’m just dumb but I find it confusing every time I encounter it. #

Looking for tennis courts on aerial photos — I wish I was better at Computer Vision techniques. But this is a nice explanation! #

Looking Towards EveryBlock’s Future — I never would have guessed that EveryBlock would be released as Open Source. What Great News. EveryBlock is one of my favorite websites ever. I just wish they did Portland, too! #

Mail — What appears to be a spectacular Ruby library for checking/sending/generating/parsing emails. #

Mandatory alt attribute is insignificant — Why are we discussing this still? It shouldn’t be mandatory because a site’s users aren’t necessarily going to write alt text. Flickr should be able to be complient even if I am lazy. End of discussion. #

memcache-top — Holy cow! Look at the size of those memecached databases! 30GB! I never really knew how much of a machine memecache was! #

Multitouch on Unibody MacBooks — Wow! This shows you what your Apple laptop’s touchpad (a recent one at least) sees! Pretty darn accurate. #

MySQL vs. PostgreSQL — I sort of assumed the differences between the two where minor and a matter of personal preference (I mean they are both SQL, aren’t they!) but this comparison makes a strong case for PostgreSQL. #

node.js — I know I linked to this last week but I think I described it wrong. While it bills itself as “Evented I/O for V8 javascript”, I think of it is more as the easiest and fastest way to run javascript code outside of a browser. #

node.js — It seems to me that javascript is taking over. This is a way to write networked applications in javascript. #

Node.js on IRC — A post with a collection of links on using Node with IRC. #

node.js Presentation — The slides from a presentation recently about node.js1 and the philosophy behind it. And don’t worry, these slides make sense on their own without the speaker. #

PayPal: New Board Member of the OpenID Foundation — This is great news for OpenID. I wonder what their involvement will be. #

Performance Advent Calendar 2009 — Inspired by 24 Ways, but about performance. #

PHP Quick Profiler — I haven’t used this, but this looks awesome. #

pimping out git log — I don’t do a whole lot of branching and merging, and I don’t really need to look at my Git logs all that much, but this is still neat to look at. #

Pipe Viewer — Cool command line utility. Not sure when I’d need it though… #

Piston — This looks like exactly what I was missing from Django. #

Protovis — What appears to be a pretty awesome graphing library. This is my favorite example (make sure you move the red box on the bottom graph). Comes in at a whopping 258kb though. #

Rack Middleware for API Throttling — This looks like a perfect use for Rack. #

Rails and Merb Merge: Plugin API (Part 3 of 6) — With this merge with Merb, Rails is taking the “framework wars” up a notch. The stuff they are doing is really cool. Also checkout ActiveModel and Generic Actions. #

Rails in a Nutshell — A new O’Reilly book about Rails that is currently free in draft mode. I’m planning on working my through this. It seems like every week Rails is different (they are updating it so fast!), so I could definitely use a refresher. #

Reading the Audio Stream from Firefox 3.7 — I hope all the browsers get on this. This would be absolutely awesome. #

Real time online activity monitor example with node.js and WebSocket — Websockets look really powerful. And we already know I am obsessed with Node. #

request-log-analyzer — I’ve been thinking a lot lately about analytics and Apache logs, and well, this can parse Apache logs. I’m more interested in statistics about visitors and this is more aimed for statistics about your application but I’ll still have to check it out. #

restler — A super simple library for making HTTP requests from Node. I don’t need this currently, but this looks like everything I would want. #

RightJS 1.5: 6-8 times faster than jQuery — Some excellent analysis of performance claims. The moral? Don’t trust everything you read without looking at the details! #

Rubular — Website for testing Ruby regular expressions. Testing regular expressions in a script is a total pain. This should make it easier! #

Sammy — A Sinatra inspired framework for making browser based javascript applications. This is seriously cool. (Don’t confuse this with server side javascript applications. This is for writing an application that lives entirely in a browser.) #

Security Alert: Twitter Porn Names Scam — This is brilliant. A stupid meme that is a disguise for getting your answers to common security questions. #

SelectorGadget — This thing is awesome. #

Shifting My Opinion On CSS Animations — I was in the same boat as Jonathan when the Webkit team announced CSS animations. CSS isn’t the place for this! But now I have realized that CSS is the perfect place for “animation effects” that aren’t the behaivor themselves but just make the transitions between styles pretty. CSS is for how it looks! #

Sketch2Photo — This feels like the future. Draw a sketch of a scene, label the parts and it will turn it into a photo. Be sure to check out the examples. #

SVG-edit — In browser SVG editor. Give this another year and you will have no need for Inkscape. #

SVG vs. Canvas — When to use which. Short answer: SVG is for vectors, Canvas is for pixels. Which explains why I like SVG so much more! #

TermKit — Trying to redesign the terminal so we aren’t using basically the same tool we’ve had for 30 years. At first I was vehemently opposed to the idea, but the more I read and thought about it, the more it made sense. I haven’t tried it yet though… #

Textmate-Minimap — This is really cool. It adds a zoomed out view of the document you are editing to a tray. I’m not even remotely considering moving away from my beloved Vim, but I would give anything to have something like this built into it. I don’t usually program in MacVim (a graphical Vim editor for Mac OS X), as I prefer to program in an actual Terminal, but I’d consider switching for this. Think it would be possible? If only I knew Objective-C! I imagine it makes keeping track of where you are and where you need to be very easy. #

The First Rule for Software Development — When I am programming quickly, this is the first thing I ignore. Probably shouldn’t. #

The Go Programming Language — Google Tech Talk by Robert Pike on the new systems programming language Go. While this still looks like way more work than something like Ruby, Python or Javascript, it seems much better than C. #

The new Zune shows ads while you are waiting for applications to load — Seriously, You couldn’t make this stuff up! #

The Open Graph API: What Does It Mean? — Facebook continues its quest to take over the internet. Let’s fight this. #

The Real Cost of Microformats — A pretty convincing argument against microformats. #

The Walled Garden — The best case I’ve read yet for walled garden app stores. And if you think about it, the Ubuntu repositories are walled gardens of sorts, just ones in which all the software is supposed to work together completely (and is free!). #

The Web in Danger — A great piece on the openness of the web and the danger of website monopolies. #

Underscore.js — Very interesting new javascript library that supplies a lot of useful functions. Looks well done and quite useful. While not that big (16kb) it is pushing the limits of what I am willing to use. I wish people making these libraries would make them more modular! Plus, I don’t need all of those functions, just a few of them. #

Unicode Code Converter — Displays the given text in many different escaped formats like HTML, URLs, Javascript, etc. Sounds odd at first, but just try the example and it will instantly make sense. #

User friendly popup based OpenID sign-in experience — I think this is definitely the direction OpenID needs to go in. Instead of sending people to a completely different page, do the sign in in a pop up window (though I think they should actually use an iframe). #

Using files from web applications — Mozilla’s documentation on a new javascript feature that allows you to access files without having to upload them to a server first. Bit by bit browsers are aquiring the tools to completely replace native apps. I can’t wait! #

Using YQL to load and convert RSS feeds really, really fast — I really need to get around to wrapping my head around YQL. I just wish it was more distributed so you aren’t relaying entirely on Yahoo. #

UUID as your ActiveRecord primary key and default_value_for Rails plugin — How to get ActiveRecord to use UUIDs are primary keys. If you are doing anything distributed, UUIDs are the way to go! #

v8cgi — Speaking of server side javascript, an interesting looking project. #

Video: Node.js by Ryan Dahl: Video of the talk whose slides I linked to last week. The talk honestly doesn’t add that much to the slides (he did some good work with those!) but it is really fun to put a face to the person. #

Video on the Web — From Mark Pilgrim’s excellent Dive into HTML5, a great introduction to video encoding and the new <video> element. Reading this makes me want to reencode all my videos in patent free codecs, switch to Linux and go live in a cabin in the woods. It also makes me want to develop a website that needs to use the <video> element. #

View Cookbook for SQL Jockeys — An explanation of CouchDB views for SQL people. Honestly, while this was helpful, I need a lot more examples before I am going to truely get this map/reduce stuff for CouchDB. #

Web Database Proposal — HTML5 proposal for a SQL interface to web databases similar to YQL. This would be awesome! Though it doesn’t really makes sense as a part of HTML5… #

Web design tools and resources I use — This is quite old, but I find it very interesting. One of these days I will make one of these myself. #

What Server Side Javascript needs — My thoughts: Easy installation and the ability to use it like Python or Ruby. The rest will happen after that. #

When Can I use… — Pretty awesome website with information on when cool HTML 5 features will be implemented in browsers. #

Where data goes when it dies — And the flip side, after Ma.gnolia’s recent data loss, people were able to reclaim their bookmarks through the Google cache and microformats. #

Why do we have an IMG element? — Very interesting look back at the early days of the internet. Makes it a lot easier to see how we got to HTML5. Man, that Mark Pilgrim has been on a roll lately! #

Why I like Redis — Man! You can’t open up a feed reader these days without reading about someone using Redis. Here Simon Willison talks about what he likes about it. I’m definitely going to have to give it a try soon. #

Why Retweet works the way it does — I always love write ups about why people have designed things the way they have. Additionally, I think retweeting was complete noise and a nuisance up until these changes. #

Why “require ‘rubygems” is wrong — The only reason I have always done it is that every tutorial I have read does it. #

World’s First Grocery API — More businesses/stores need to do stuff like this. #

Writing great documentation — Speaking of documentation, a piece on exactly what documentation to write. For the most part I agree with him: the single most important things for using a new project are tutorials. #

Zsh Line Editor — List of commands that can be bound to keys in the Zsh shell. I was already a big fan of Zsh and then I played around with trying these out for an hour or two and now I’m a huge fan of Zsh. You can change little things that improve your terminal experience in just wonderful ways. The most important of which, I was able to get Home and End keys to work properly in gnome-terminal. Here’s the relevant section of my .zshrc file, to see what I ended up with… #

Émile — To quote: “Stand-alone CSS animation JavaScript mini-framework”. Now this is what I call a javascript library: 2.5kb unminified and uncompressed. If I ever need animation, this is where I’ll look. #