Author: spierzchala

  • Songs That Won’t Die: Make…It…Stop!

    Now it’s your turn to suffer with this.

    CEMETARY POLKA
    Tom Waits

    Uncle Vernon, Uncle Vernon
    Independent as a hog on ice
    He’s a big-shot down there at the slaughterhouse
    Plays accordion for Mister Weiss
    Uncle Biltmore and Uncle William
    Made a million during World War II
    But they’re tightwads and they’re cheapskates
    And they’ll never give a dime to you
    Auntie Mame has gone insane
    She lives in the doorway of an old hotel
    And the radio is playing opera
    All she ever says is go to Hell
    Uncle Violet flew as pilot
    And there ain’t no pretty girls in France
    Now he runs a tiny little bookie joint
    They say he never keeps it in his pants
    Uncle Bill will never leave a will
    And the tumour is as big as an egg
    Has a mistress, she’s Puerto Rican
    And I heard she has a wooden leg
    Uncle Phil can’t live without his pills
    He has emphysema and he’s almost blind
    And we must find out where the money is
    Get it now before he loses his mind
    Uncle Vernon, Uncle Vernon
    Independent as a hog on ice
    He’s a big-shot down there at the slaughterhouse
    He plays accordion for Mr. Weiss

    Buy Rain Dogs. End my suffering.

  • Upgraded Blog Code

    Ok, the site is now running b2evolution 0.9.1 — took some swearing and a weird hack to get it to work, but we’re back!
    If you see any weirdness, let me know.

  • GrabPERF: Agent Location Disabled

    This morning, I asked the ERTW.com measurement location to turn down, as we have completed testing the remote measurement code.
    This will have some effect on results going forward, mostly positive. The ERTW.com location had an unusual DNS configuration which was affecting the overall measurement statistics.
    I am still recruiting for measurement locations on the West Coast. Drop me an e-mail or leave a comment if you are interested in hosting a measurement location on your linux server.

  • Fatal Flood: Mississippi River Flood of 1927

    I watched part of Fatal Flood last night. It was brutal. And, unfortunately, was echoed far too recently not to be a disturbing insight into the nature of the American mind.
    The attitude in this nation towards the disadvantaged and disenfranchised has not changed since 1927. This country is falling away from the city upon a hill, the emblematic vision that fuels the misguided and selfish leadership of the United States.
    Katrina exposed the raw, festering wounds in the United States. The stench from the Delta is the rotting of the American Soul.

  • GrabPERF: Bob Wyman Riffs About Online Consistency

    Bob Wyman of PubSub has a great post on the value of online consistency to companies and services. [here]

    This is a critical component that is too often overlooked. The need for speed is an addictive goal. But as I have said before, fast is not enough.

    Go, Bob, Go!

  • GrabPERF: Why EXPLAIN is such a useful SQL tool

    Now, EXPLAIN seems like such an old school SQL tool. Well, I am here to explain why it’s not something you should ignore.

    The Index Chart queries were all doing table scans. This can be pretty painful; ok, this can be stupid and EXTREMELY painful. The cause: I was setting sub-optimal date ranges on my queries and making all kinds of crazy date_format calls to format the dates IN THE QUERIES.

    Once I changed the code, even when the query cache is cleared, the Index Charts now all run at less than 1 second.

    Colour me stupid.

  • GrabPERF: Whole bunch of bug/performance fixes, part 2

    Greg Gershman from BlogDigger found a bug in the Index charts just now. Seems that the chart legend was out of whack with the lines on the chart.
    Easy fix. Turns out I was submitting the test ids in a random order. The graph generation component was fine with this, but when I went to build the legend, MySQL ordered the dynamic legend build result in a proper ascending fashion.
    Simple fix: when I convert the test ids to an array, I sort the array before proceeding.
    Thanks Greg!

  • GrabPERF: Whole bunch of bug/performance fixes, part 1

    Over the last two days I have been trying to optimize the performance of the Index Charts/Graphs. I think I have found the fix, and you should see results for these charts in the sub 1-second range.
    To explain how this works, I have to open up the GrabPERF data model and let you folks peer under the hood.
    The Daily Index graphs are created using two tables: hourly_site and data. hourly_site is a rollup produced asynchronously at the end of every hour that aggregates the Arithmetic and Geometric means, as well as a count of successful measurements. data contains over 30 days of raw measurement data which is purged at the end of each day.
    All of the days in the daily graph, and all of the hours in the hourly graph are pulled from hourly_site. That is with the exception of the most recent day (daily) and the most recent hour (hourly). These are pulled dynamically from data to ensure that all current results appear on the right-hand side of the graph.
    With this design, performance was awful. I have tweaked the code as much as I feel comfortable doing (I am an analyst, not a developer!), but it was slow. I increased the size of the query cache, but the boost only lasted for a while. Then I realized that the data I most cared about was being pushed out of the cache by all of the other cached data.
    I have now set MySQL to cache queries only on demand. This reduces the load and means that only the results I care about, and which are accessed most frequently, are cached.
    When I restart the database, the Daily Blog Search chart takes about 5.5 seconds to generate, and the hourly chart takes about 30 seconds. Yikes!
    After this initial pain, both charts take less than one second to be generated.
    I am still working on it, so let me know if you see any weirdness.


    UPDATE: Seems that the first query of every hour pays the performance penalty, and all other queries will not.

  • MaxMind: GeoIP Database

    Got a quick note from Ed Lin at MaxMind that their free, country-level GEOIP database is updated monthly. You can get the updated files here.
    This is in response to some out-of-date info in an old article (here and here) I wrote.
    Most of this article is now deprecated, and the GrabIP service is the only remaining element on my site.

  • Crowsnest Pass: Alberta Weather is Weird

    People laugh when I say that I am from a part of the world where, in my lifetime, snow has fallen in every month of the year.
    Crowsnest Pass still recovering from freak storm
    Power still out for 100 after Crowsnest Pass snowfall
    Heavy snow cuts power
    I don’t make this stuff up.