BKWLD

Author Archive

Leopard quick look

By Robert on April 13, 2008 at 10:12 am

You can quick look excel files! Pretty amazing. That’s it.

Views counter - MySIAM vs InnoDB

By Robert on March 14, 2008 at 2:24 pm

I’m working on a project where people have profile pages and we need to show a counter for how many views they’ve gotten. I saw two ways of doing this:

  1. Create an MySIAM table and everytime there is a view, insert a new row to represent the view. This could be nice because adding a timestamp would let you track views over time. Or stuff like IP address. To see the total, do COUNT(*) across a given user_id.
  2. Create an InnoDB table with a row for each user and a column that represents the count. On each view, do an update and increment the count. Then read that number out as the total. This seemed good because I wouldn’t have a single table with a HUGE amount of rows.

Google didn’t help me find any direction so I made a test. I created a table for each. In the case of the MySIAM I filled it with 10 million test records. Then I echoed out the total.

The result I found was that they basically take the same miniscule amount of time. Because I indexed the MySIAM on the user_id it optimizes really well and doesn’t seem to care that there are only 1000 views per user amongst the 10 million. Only how many views a user has. So a user with 10000 views takes longer to total than one with 100. I’m going to go with the MySIAM since it is storing richer data that may be useful down the road. Figuring I can switch to a InnoDB implementation later if I need to.

Busted Tees Modeling

By Robert on March 13, 2008 at 8:05 am

Check this out, I love the serious model pose combined with the silly, nerdy shirt:

Mootools vs Script.aculo.us

By Robert on March 8, 2008 at 7:45 am

After working with Mootools a bunch on a project (2K), I think I’ll be sticking with Script.aculo.us for GC. The main reason for me comes to down to documentation, but there are some peripheral reasons.

For it’s DOM stuff, Script.aculo.us uses Prototype out of the box and I think Prototype has AWESOME documentation, the pillar of what everything should aspire to documentation wise. For it’s effects, Script.aculo.us uses a wiki. Now I don’t think this is great (I don’t love the wiki look), but the way the pages are written up do make them more approachable than Mootools. With Mootools, there aren’t a whole lot of examples and I got the sense to really get good with it, you had to use undocumented properties and methods. It felt like a class I would make ;) Plus, many of the wiki pages include functioning examples inline, which Mootools relegates to another non-exhaustive section.

I’m also gonna use Script.aculo.us because I like how it’s effects have a delay property, which is super handy. And it uses the existing CSS properties as it’s starting point for animations. And it has more (and more useful) built in effects.

The main reasons I would recommend Mootools over Script.aculo.us is that their download page is the sickest thing ever and it’s domain isn’t a pain in the ass to type. I HATE the name. I hate having to use command-v over and over again to insert it into this blog. Also the Mootools site is more slick looking. But these aren’t really reasons to use it over Script.aculo.us.

Special MySQL orders

By Robert on February 28, 2008 at 10:29 am

Here’s another interesting query. Say you want to get a list of items, ordered by something, lets say date. But you want a particular row at the top, it’s special. Well check this out:

SELECT id
FROM games
ORDER BY id=5 DESC, dcreate DESC

“id=5″ converts to a 1 if true, 0 if false on all the rows that are returned. By ordering that boolean by DESC, you put the 1 at the top. The rest are all 0. Thus, you have your special row with id=5 at the top and the rest ordered by date! I’m guessing this doesn’t optimize super well, I guess we’ll see.

My new favorite MySQL function

By Robert on February 27, 2008 at 5:07 pm

Check out this query:

SELECT
	games.title AS game,
	GROUP_CONCAT(DISTINCT artists.name ORDER BY artists.name ASC SEPARATOR ', ') AS artists
FROM games
INNER JOIN tracks ON tracks.game_id = games.id
INNER JOIN artists ON artists.id = tracks.artist_id
GROUP BY games.id

I want to get a list of the soundtracks of all the games. The list should show me the name of the game and all of the artists that contributed to the soundtrack. I didn’t want to do two queries to select first the games and then the artists. This GROUP_CONCAT function saves the day. When you’re doing a grouping you can use it to join the columns that were collapsed with some separator, like they were an array! Nice!

Move to new Seattle office

By Robert on February 24, 2008 at 7:58 pm

We’re officially moved out of 219 1st and into 1919 2nd! Here’s some pics to prove it:

Computers

Snowboarding in Snoqualmie!

By Robert on February 17, 2008 at 3:32 pm

I posted the photos from our trip this Saturday. Click the ninja to go there.

img_6301.jpg

AS3 FLVPlayback video smoothing

By Robert on February 15, 2008 at 4:41 pm

You can’t directly enable smooth on FLVPlayback instances. But you can use the following code:

video.getVideoPlayer(video.activeVideoPlayerIndex).smoothing = true;

Where video is some FLVPlayback instance. Credit goes to this forum post.

Enhance screen sharing

By Robert on February 5, 2008 at 12:15 pm

I was looking for a way to get screen sharing to work better when people are looking at my screen. Because I have two monitors, one of which is really big, I was hoping there would be some way to only share one monitor. So far I haven’t found a solution (please tell me if you do), but I did find this article on other sharing enhancements.

131094-sharebar2.png

« Previous PageNext Page »