Archive for the ‘Projects’ Category

ben-franklin Blog extension firefox lifehack procrastination

Sick of compliment spam on your blog?

Sunday, May 31st, 2009

Not amused One of the great things about having a blog is getting comments on your posts. It’s particularly gratifying when someone takes the time to tell you that your post was helpful, entertaining, or well-written.

Spammers know this and exploit it by generating compliment spam. They’ll put together a few lines of general praise and slather them across the web, hoping that bloggers will fall for the trick and post their spammy links.

Abusive social engineering like this really annoys me, so when in doubt I always do a Google exact phrase search to see if the compliment is really for me and not from a bot. This is tedious, so I created a simple WordPress plugin: O RLY Comment Spam Search.

You can get the plugin directly from WordPress.org, where you can also give it a rating to tell other webmasters how great (or non-great) it is. By the way, the plugin browser/installer added in WordPress 2.7 is very cool, and makes it much easier to try out plugins.

Judging by the thousands of blogs my O RLY searches have found, this sort of spam works. But why do spammers do it? Since WordPress (and most major blog systems) nofollow links in comments by default, the spammers can’t expect to gain any PageRank from these links. My guess is most of this spam is either intended to get traffic via clickthroughs or is generated by naive site owners, SEOs and marketers who don’t really understand how things work.

Take a look and let me know if it’s useful in the comments below. Also, let me know if it’s breaking on certain comments or otherwise buggy.

LED Bulbs vs. Compact Fluorescent: Part II

Friday, May 1st, 2009

DSC_0662 I wanted to revisit an earlier post comparing LEDs, CFLs and traditional incandescent bulbs. I found two different values for the power and light output of the Lemnis Lighting Parox II bulbs, and same folks at work were wondering the same thing.

I decided to bust out my trusty Kill-A-Watt and see how much power the bulb was really drawing.

I watched the meter for a bit and it never went above 4 Watts. So that’s a bit of a bonus. Out of curiosity I decided to plug my CFLs in and see how much power they actually drew.

The 15W CFL spiked to 18W for a second but then settled in at 12W. After a while it climbed up to 13W and would have presumably stayed there. The 7W CFL globe settled at 5W. The incandescent was the odd one of the bunch, measuring 63 W instead of 60W. So when you replace those old lightbulbs, you may be saving a little more than you think.

Here’s the updated spreadsheet:

Again, the total lumen output might not be directly comparable because the LED bulbs really only emit light from a half globe, while the other bulbs cast light in almost all directions. Depending on the fixture this might make the LED seem brighter in comparison.

How do LED lightbulbs compare to CFL and incandescent?

Saturday, April 25th, 2009

Spectrum of an LED light bulb One of the great things about working at Google is the company’s commitment to the environment. This week for Earth Day the company gave each employee two LED light bulbs – much more efficient than regular old incandescent bulbs and better in some ways than the twisty compact fluorescent (CFL) bulbs I already have around the house.

Energy efficiency is one thing, but how do all these different lights compare visually? Three important measures to look at are the color temperature, the color rendering index (CRI), and the light output in lumens. I’ll talk a bit about both and explain a simple science demonstration you can do in your own home.

(more…)

Announcing Localographer: find an apartment or house with Google Maps

Monday, April 7th, 2008

Localographer logo Earlier I wrote about using Photoshop to create a heat map and to use data maps when house hunting.  I got a pretty good response to those tutorials but the process is a little too labor intensive for most.  So when I moved to California, I decided to do something similar, using the Google Maps API, so that it would be easy for anyone to make their own heat map.So here it is:  Localographer – build interactive heat maps for house and apartment hunting.  You can see a screenshot below:Screen shot of a Bay-area heat map from LocalographerLocalographer is a beta release right now, so watch out for bugs and random downtime.  Also, I have to add a disclaimer:  this is not an official Google project, this is something I did on my spare time.  In fact, most of the work was done before I started working at Google in preparation for our move to California.The site takes you though a series of steps to build your map:

  1. Pick your city and create your map;
  2. Add places you’d like to be near (like your job or your school);
  3. Add potential locations (houses, apartments, condos) to see how they compare.

I’ve got a ton of ideas for additional functionality, so hopefully I’ll have time to add more in the next few weeks.  I’ll also be working on the site’s design, making it a bit more usable and interactive.Here’s how a map in Localographer compares to my Photoshop heat map of the Cleveland area (click on the images to see larger versions):Screen shot of a Cleveland-area heat map from Localographer   Heat map we used for house hunting, with hotspots placed at locations we need to drive toIn case you’re interested, the site was developed in PHP with a MySQL database.  The maps use the Google Maps API with some hand-written functions to correctly draw the hot spots.Please take a look and let me know what you think.  Post and problems, bugs, or new feature ideas in the comments below.  Later I’ll post a poll so you can vote on new features and other enhancements.

House hunting the geek way, Part 2: Data-driven maps in Photoshop

Friday, March 28th, 2008

In part 1 we created a simple heat map in Photoshop to figure out which neighborhoods would be good places to look for a new house. But distance from work and school isn’t the only factor worth considering. We can always add more radial gradients to show proximity to favorite restaurants, family members, and the like. But that’s really just more of the same.

Think about the things that make a neighborhood a pleasant place to be – low crime, low pollution, parks nearby, friendly neighbors – some of those things can be quantified and mapped. We’ll have to wait for demographers to release official neighborhood friendliness metrics after the next census, but let’s see if we can find some of the other data.

Step 3: Highlight on-map elements

At least one of the new factors we want to look at is already available on our map – parks. All the parks on the map are in one of two shades of green. Use the Magic Wand Tool to select park areas and then Select -> Similar. You can see how I’ve selected the parks in the example below.

megamap-example-parks

Now we’re going to do something similar to the concentric circles in step 2. Choose Select -> Modify -> Expand. You might have to play around with the number of pixels you expand by – for the scale I was working at, 20 pixels looked like close walking distance. Now use the fill tool with a low opacity to fill the area with the same color you used for the circles.

You can then repeat the expand and fill steps as many times as you like to build a heat map of park proximity. Don’t forget to change the blending mode to Multiply to match your other layers.

megamap-example-parks-heatm

You can follow similar steps for other on-map elements, like shopping centers, college campuses, bodies of water – it all depends on what you like to be near and what’s available on your base map.

Step 4 – Pulling in data maps

First, a disclaimer: this isn’t a tutorial on how to automatically pull data from a server and have Photoshop map it for you (but keep watching my blog for a similar project in the future). Instead, we’re going to pull data maps from other places on the web and fit them over our heatmap.

The hardest part of this next step is finding the maps. The number and quality of maps available depends on your location, but in general the best two places to look are county and city websites and nearby colleges. If you don’t find what you’re looking for under “Maps” try looking for “GIS,” planning departments, or property information. Also, many government web sites have poor search systems – try doing a Google search with the site operator instead. For example, a search for Cuyahoga County might look like this: site:cuyahogacounty.us maps gis.

For this example, I’m going to grab a map from Case Western Reserve University’s NEO CANDO site. Another good source for the Cleveland area is the the Cuyahoga County Brownfields GIS server. My wife and I both have graduate degrees and we really value education – so I’m going to grab a map of the percentage of people with bachelor degrees or higher by census tract.

Cuyahoga_NEOCANDO32443568931

Now that we have a data map, we need to clean it up a bit and add it to our base map. Open the data map in Photoshop and use the Magic Wand tool to select the black and gray areas – the lines and numbers. Use Select-> Similar to make sure uoi have most of it selected and hit Delete. Now Select All, Copy and Paste it into your map as a new layer.

You’ll might want to use the Magic Wand and Select-> Similar again to clear out all the white area around the map and leave it transparent, but you don’t have to – you’re going to change the layer blending mode to Overlay like the other layers anyway. At this point, I can almost guarantee that the data map will be much smaller than your base map. Chose Edit -> Transform -> Scale to stretch it to fit. There’s no sure-fire way to do this, just keep stretching until you have a good fit to known boundaries like coastlines and major streets.

Here’s the result:

megamap-example-college

Step 5 – Bring it all together

Now that we have all these different layers, it’s time to pull them all together in one heat map.  You have a few options on how to do this.  If you make all the layer visible at the same time your going to get a lot of very blue areas.  Instead, try lowering the opacity of each layer based on who important it is to you.  You can see an example of my Cleveland area map below.

megamap-example-final

If you want to make the strongest areas of the heat map more visible, start by making your base map invisible while leaving all your other layers up.  Go to Select -> color range and clikc the eye dropper on the darkest blue area you can find.  Now increase the Fuzziness until it looks like the best areas are selected.  Hit the OK button, create a new blank layer, turn off the rest of your layers, and fill the selection with your blue.  You can see the result below.

megamap-example-final2

Hopefully this has been helpful.  You don’t have to make your map quite as involved as mine, and of course if you are looking in a smaller area you can constrain your map further.

Stay tuned for more updates on this topic.  If you have a feed reader you can subscribe to my blog and if you’d like you can get email updates, too.

House hunting the geek way, Part 1: Using Photoshop to make heat maps

Wednesday, March 26th, 2008

If you’ve ever moved to a new city and looked for a house or apartment you know how difficult it can be.  What neighborhood, which side of town?  Can we live close to my wife’s workplace and not to far from mine?

I thought I would share the method I used to find our last house, using Photoshop to build a heat map of the city.  Note that this is NOT the method I used to find our current apartment – watch this space for more news on that coming up.

Step 1 – Build a map

In order to build our heat map you’ll need a base map to place everything on.  Back in 2004 when I did this project Mapquest was still the best thing going, so that’s what I used.  If I were doing it now, I would go with Google Maps.

This is the most tedious step, since you’ll need to center your map, take a screenshot, then cut the map portion of the screenshot and paste it into your working image.  If you have a scanner and a nice print map you’d like to use instead, feel free to go that route.

You can see my example, a map for the Greater Cleveland area, below.  Click to see a larger version.  The inset shows you the level of street detail I found best – zoomed in close enough to see all the streets, but not so close as to make your map unusably large.

megamap-example-plain

Step 2 – Place your main locations

What are the three most important factors in real estate?  Location, location, location.  In our case we want to live close to the locations we need to go to on a regular basis.  For us that was two workplaces and two universities.

Heat maps are a great way to visualize information.  They are a perfectly appropriate choice for map location and distance information.  So create a new layer in Photoshop.  Choose the gradient tool and make sure you’re using a Radial Gradient.  The gradient should go from a solid color (I chose blue) to transparent.  Using the map, create a radial gradient about as wide as you would like to drive.

These smooth gradients can make it hard to make distinctions when you are zoomed in and, on a large map, will take up a lot of disk space.  So an alternative method would be to create a series of coencentric circles, each smaller than the last.  That’s the method I used in the example below.

megamap-example-locations

Once you have one good circle layer, copy it for each of the locations you want on your map and drag them in to place.  You’re probably going to want to change the blending mode for the layers so that you can still see map details – I recommend using Multiply and lowering the opacity just a bit.

In my example map, you can already see how this could help narrow down which neighborhoods to look in.  It also shows quite visually that there’s no point in trying to live closer to Kent – it doesn’t intersect with any of the other hot spots.

In part 2, we’ll take a look at pulling in data maps for things like crime statistics , highlighting other map features, and pulling it all together.  Also, I’ll have an exciting announcement about another project I’ve been working on soon as well.  Stay tuned.

Project: Warm up a room with an Insulating Wall Hanging

Tuesday, February 12th, 2008

When we moved into our new house, it quickly became apparent that we would need to do something to warm up the master bedroom. It was the coldest room in the house, and November weather in Cleveland is a pretty good motivator.

So I started trying to think of ways to warm up the room. Traditional methods of insulation were out of the question in the short term – the large open attic above was too big of a project to do at the time and we couldn’t use something like blown-in cellulose insulation because our stately Tudor duplex had knob-and-tube wiring. I came up with this fast, cheap, easy-to-build project instead. You can use it to decorate your room and even save you a few bucks on your heating bill.

Here’s a sneak peak at the end result:

Heat-reflecting and stylish

It’s basically a frame with some stylish fabric stretched over like the canvas in an oil painting. It’s backed with mylar which means it acts as a radiant heat barrier, keeping you toasty.

Here’s what you need:

  • Some 1×2′s – buy whatever is cheapest (and not warped) at your home improvement store.
  • Wood screws – maybe 1 1/2 inch to 2 inch.
  • Cloth – something that would look nice on the wall. Pick out whatever you like, it should be a little stretchy.
  • Aluminized mylar – better known as space blankets. Order it online or buy it at the store – it should be a dollar or two for a large sheet.
  • Duct tape (of course)
  • Some tools: A staple gun (and staples), tape measure, drill, screwdriver, saw.

So first, a tiny little bit of theory. Heat moves in three ways – convection, conduction, and radiation. Your house is losing heat in the winter because of these three along with air infiltration – drafts of cold air from windows and doors. Most insulation does it’s job by preventing conduction (by putting air pockets between materials) or by stopping convection in air pockets. Infiltration can be combated with storm windows, weather stripping, and vapor barriers.

Insulation is measured by R-value. This project will only help a little bit when it comes to convection or conduction – the main point here is to reflect radiant heat back into the room. So don’t ask about the R-value – like other radiant barriers, that’s not really the point.

(more…)

Announcing a new project – The Jason Morrison Dot Net Project

Monday, November 12th, 2007

Are you Jason Morrison?  Do you know a Jason Morrison?  If so, please take a look at the new Jason Morrison Dot Net Project.  My goal is to get in touch with all the Jason Morrisons in the world and ask them five questions about their lives.  Eventually, we’ll build up a social network of Jason Morrisons.

New WordPress plugin available – put tag clouds everywhere with Altocumulus

Tuesday, November 6th, 2007

If you’ve gone to any of my Category pages on this blog (my Academic papers, for example), you might have noticed I have a tag cloud with just the tags related to that category.  After I figured out how to do it I packaged it into a WordPress Plugin, called Altocumulus.

This goes along with my research interests into folksonomies and information retrieval.  I haven’t had the chance to study tag clouds empirically but my guess is that one giant tag cloud for an entire web site or blog might be more cool looking that useful for navigation.  I think that making use of tag relationships a bit more might show the strength of folksonomies for navigation.  So now, if you click to see my design pages, you can see the kinds of topics my designs cover.

For another example of this in action, take a look at Unsought Input, for example the Innovation page.

Go ahead and download version 0.1 now.   It requires WordPress 2.3 or higher.  This is my first WordPress plugin so I’m sure I’ll figure out ways to make it better over time.  If you have any bugs, pointers, or suggestions please leave them in the comments below.

Minor update to Procrastato, download version 0.6.1

Thursday, June 21st, 2007

Ben FranklinI’ve made a very small update to Procrastato, the only Firefox extension that will get you back on track when you are procrastinating. Really I just cleaned up some extra files that didn’t need to be included in the install.

Please head to the main project page to download and install the latest version.

As always, any comments or questions you have are welcome.