Google’s new Charts API is very cool. I am interested to see how we might possibly use that with Collabofit to do additional charting.
Here’s the code used to generate that graph above:
Very simple, clean, elegant and neat.
Our kitchen now has a website (using WordPress of course). Lots more content to come soon, including the secret story of how the river came to be, the inspiration behind the pipes and the amazing triumph of getting everything finally finished.
Cut & Paste: Chicago
Saturday, October 6th, 2007
Doors open at 7PM
Competition from 8 – 11PM
After party from 11PM – 4AM
Logan Square Auditorium
2539 North Kedzie Blvd #15
773 252 6179
$10 advanced tickets / $15 at the door
Must be 21
We’re excited to be back in Chi-town this year.
When we came up with the final design for our kitchen range hood, we did a fair amount of research into finding someone in St. Louis who could build what we had designed. Eric called lots of people, and kept on getting recommendations to talk with Ron over at Benton Sheet Metal. Eric got in touch with him, and explained the job. Once we delivered final drawings, work got underway.
The final product came out so excellent. The craftsmanship is outstanding. I would recommend using Benton Sheet Metal for any sheet metal fabrication work you ever need to have done. They do work for people all over the country.
They don’t have a website (yet) however. Most of their work comes through word of mouth.
Here’s their contact info if you ever need some work done:
Benton Sheet Metal
2519 S. Jefferson Ave
St. Louis, MO 63104-2307
Phone: (314) 771-4647
Fax: (314) 771-9524
Voting is now enabled on the Miro one-click subscribe button design contest. Voting is by leaving comments. Please leave a comment and vote for my buttons if you like them. 🙂
Bruce wrote another article over on FastWallpapers.com about his love of beautiful cars. This time, however, it is a top list of the ugliest cars he could find. Not surprisingly, the Pontiac Aztec leads the list. Poor Aztec, at the top of everyone’s ugly list.
Too Ugly To Live: Should these 6 Cars be Banned from the Road?
P.S. If you like Bruce’s list, vote it up on Reddit here: http://reddit.com/info/2fy8f/comments. I don’t think it’s been submitted to Digg (yet). His last article did pretty well over there.
I’m working on a new site relating to Gramm-Leach-Bliley Act compliance (it will replace the useless site that is currently up at grammleachblileyact.com) and was looking for breadcrumb functionality and a better way to manage outputting links from the Blogroll on the links.php page.
I had searched for a good WordPress breadcrumbs plugin a while ago, and the ones I found didn’t really impress me. I’m really happy with the one I ended up finding this time. It’s called Breadcrumb Navigation XT and it does exactly what I was looking for. I’ll be using this probably for any future needs when it comes to breadcrumbs and WordPress.
The second plugin that I found was related to fixing how WordPress currently outputs links using the default get_links_list() function used in most links.php template pages right now. I had used on the XyzAnt.com links page another WordPress function (wp_list_bookmarks()) that only works for WordPress 2.1 and higher, and is still undergoing active development / documentation. That function, however, only allows you to output the description, and doesn’t appear to include the functionality to show notes. Since there is a larger amount of allowable text for the notes field, and that is what I needed, I still needed to find (or write) a solution to outputting all links, ordered by category, displaying the notes field as well as link title, url, image, etc. This is the plugin that I found that does just this (found it after writing about 80% of the same functionality myself). It does just what I was looking for, shows all the categories that contain links and the links within each category.
Plugin author’s latest post about WordPress 2.1 support: Link Library now supports WordPress 2.1
For quite a while, RSS2.com has been slow. Ever since it hit, oh, around 1.4 million items in its database (now up over 2 million) the queries that were responsible for building the home page view had gotten slower and slower.
The old design
The problem was one of normalization, and the desire to not have data going into two places. The design originally worked this way:
- Look up the latest posts. Find all the latest ones that have a distinct
feed_id. This was running against the
feed_data table, which now has over 2 million rows.
- Next, look up the feed information for each
feed_id found. Originally, I couldn’t figure out a way to do this all in one query. So this was another 10 individual SQL queries, looking up information about the feed needed to display on the home page (like the name of the feed, URL, etc.) This query did a join of the
feed_data with the feed_info tables. This is what took progressively longer and longer, the more rows in the
- Next, combine the results of finding the 10 most recent posts from the 10 most recently updated feeds into an array using PHP, then pass those results from the Data Access Object (DAO) to the presentation layer for output on the home page.
This ended up being really, really slow on the homepage load (like over 2 minutes). This was obviously too slow. I implemented caching at a number of layers to mitigate the problem, which made for a very speedy second page load, but the first one was still way too slow.
After consulting with my friend Ben, he agreed that it was an inherently expensive query to run. We agreed that it needed to be re-architected to be able to significantly improve performance.
The new design
The new design required creating a new table dedicated to the home page posts where, when a RSS feed is read, it inserts the most recent new item into the new table.
The new process works like this:
- RSS feed is read. Any new items are first inserted into the main
feed_data table, and the
feed_info table is updated as well with a last checked timestamp.
- Next, the new table is updated, using a MySQL
REPLACE command, with the combined feed information as well as item information
- The complicated 11 queries that used to be run are now replaced by a dead-simple single query that will only ever have to search through the total number of feeds in the system (currently 753 rows), instead of the over 2 million rows before.
These new changes have made using RSS2.com much more usable again, and it is way faster. The homepage loads in under a 1/2 second now, just like it should.