SethHollowayBlog

From the mind of Seth Holloway, to you
RSS icon Email icon Home icon
  • Some brain food for academic thinkers

    Posted on September 2nd, 2010 Seth No comments

    As the Fall semester starts, the MPC group has gained a few new students. As is tradition in the lab, we engage in a great deal of intellectual discourse about the world, culture, programming, science, research, and academia. Over the years I’ve been gifted some amazing articles, so I thought I’d document them here for other academic thinkers, or, at worst, my own memory.

    As an aside, I appreciate when professors make use of their tenure and take bold, public stances (though I don’t always agree with the stance). Some of these articles are edgy, but they’ll make you think.

    I have another few essays to post, however, they don’t quite fit the general theme here so I’ll save them for later. Without further ado, the reading list (in no particular order):

    How many of these have you read? Am I missing other gems? Agree or disagree with one strongly? Let me know!

    • Looking for new music or old favorites? Check the Pitchfork 500

      Posted on August 25th, 2010 Seth No comments

      Dave DeAngelis, an awesome researcher and great friend, recently showed me the Pitchfork 500 playlist on everyone’s favorite Internet jukebox, Grooveshark. The Pitchfork 500 is actually a 500 song review from the music geniuses at Pitchfork.com; Grooveshark allows users to create and share playlists, so people have taken the review and created the accompanying playlist.

      For the past week I’ve been listening to the 500 song playlist that covers virtually every musical style from 1978 to now. I’m deleting roughly 1/2 the songs, but I’m discovering a lot of great new stuff, old favorites, and deeper tracks from bands that I knew little about. If you’re looking to find some new music or you want to enjoy a wide variety of old favorites, give it a listen.

    • Phishers, the devil’s in the details!

      Posted on August 12th, 2010 Seth 1 comment

      Phishing is presumably big business (although maybe not). Because email is very cheap to send, phishing has a low barrier for entry. Usually, Gmail’s spam filter is so accurate that I don’t see the phishing emails, however, recently some Blizzard themed messages have gotten through. I get the impression that the emails are crafted by foreigners who lack the finesse necessary to deceive people–a good thing, no doubt. As with most pursuits, the devil is in the details. Let me illustrate with the most recent email to pierce Gmail’s phishing armor:

      Hello, thank you for shopping at the Blizzard Store!

      StarCraft II®: Wings of Liberty™: 6129523855006794206159153

      To use this key to activate the game, simply follow these instructions:
      1. Log in to your Battle.n Account – Or Create a Battle.net Account

      2. Verify your e-mail address. (If you have previously verified your address, skip this step.) From the main Account Management page, click the ‘verify this e-mail address’ link. Then, check your e-mail account for a verification e-mail. Click the link in this e-mail to verify your e-mail address.

      3. Return to the Battle.net account management page, then click on ‘Code Redemption’.
      4. Enter the above CDKey in the code field.

      5. Once you have successfully redeemed this code, you will be able to play the game.

      NOTE: If you have previously chosen to gift your digital purchase, attaching this key to their Battle.net account will prevent you from being able to redeem this key with your Battle.net account.

      Order Date: 2010-8-10
      Order #: 2573775

      (1) StarCraft II®: Wings of Liberty™ – $59.99

      Credit Card Number : ****-****-****-9527
      Credit Card Type : Vista
      Item Subtotal: $59.99
      Tax: $0.00
      Shipping & Handling: $0.00
      Shipping Tax: $0.00
      Grand Total: $59.99
      ===========================================

      If you have any questions or concerns about your order, please contact us at:

      Phone: Toll-free at (1-800-592-5499)
      Website: http://us.blizzard.net/account

      Live phone support is available seven days a week, 8:00AM – 8:00PM Pacific Time.

      Thanks for shopping with us!
      Blizzard Customer Service

      I like the use of ® and ™! Those are definitely nice touches. However, Blizzard begins by greeting you with the name on the account. Moving on, the CD key should have dashes. Whoops. Next, we see “Battle.n Account – Or Create at Battle.net Account.” Within a few words, they misspell Battle.net and give you the proper spelling. Then there’s the gratuitous use of capitalization throughout. Seen here on “Account,” “Or,” and “Create.” Throughout, there are a few small, unprofessional and inconsistent bits, like the lack of carriage return between items 3 and 4. Then “CDKey” is lacking a space… Another awesome failure: the “Vista” credit card type! A couple lines lower, the “Shipping Tax” itemized seems off.

      To be fair, if you were expecting a StarCraft email (sadly, the phishers are two weeks late) and gave only  a quick glance, the email could work. It is apparently sent by Blizzard Entertainment! However, digging deeper in the email header we see more incorrect details:

      from Blizzard Entertainment
      to seth@sethholloway.com
      date Wed, Aug 11, 2010 at 8:46 PM
      subject Battle.net Account Management
      mailed-by hotmail.com

      Mailed by hotmail? Phishy. Details, details!

      Also, it’s important to hover over links before following them… This is probably my favorite part: “wowsuppor-check-blizzard.com.” I guess wowsupport-check-blizzard.com was already registered :) And, of course, official Blizzard emails direct you to us.battle.net instead of blizzard.com. Details!

      Another detail that reeks of fraud is the use of “WoW”/”wow”, which refers to another Blizzard product, World of Warcraft. Account management, StarCraft II, and World of Warcraft blend into one weak attempt at phishing.

      I believe that every critique should come with a suggestion, so here’s my suggestion: buy a legitimate copy of StarCraft II and copy the official email exactly, changing only the link (from official site to your faked site). Then, replicate their website and direct people to the fake. To Blizzard’s credit they do not make copying the page easy because they cleverly use dynamically rendered Ajax elements with obfuscated JavaScript and XSLT. They also have a lot of content and they update the pages regularly. Another idea: direct them to your domain, infect their computer with malware, and quickly forward them to battle.net so they’re none the wiser.

      If you want to step up to the big leagues, you’ll have to concentrate on the details!

    • Rails 3 document.on error

      Posted on July 18th, 2010 Seth 1 comment

      I’m working through Agile Web Development with Rails, 4th Edition. Overall, the book is well written–readable, nice depth and breadth, great example (ecommerce site)–and I would recommend it highly; however,  Chapter 11, adding Ajax support to the cart, has given me hell.

      I spent hours working through the example a couple times, diffing my source against the source code provided, starting and restarting the server, trying multiple browsers (Safari, Firefox, Chrome), grepping for errors,  and googling. Finally, I arrived at the solution:

      To remedy this problem, I updated my public/javascripts/prototype.js file from the prototype download page. At the time of writing, that was http://prototypejs.org/assets/2010/5/13/prototype.js

      Debugging

      Here are the steps I followed to track down the problem.

      First, I noticed that the page was refreshing everytime I pressed an “Add to Cart” button. I made sure the necessary files were in place and the javascript input was defined for the create method I was Ajaxifying. To ensure the button was properly defined, I viewed source and ensured the element had an attribute data-remote=”true”. Despite proper HTML and Ruby, the development.log showed that I was still retrieving the page as HTML instead of JavaScript

      Started POST “/line_items?product_id=3″ for 127.0.0.1 at Sun Jul 18 21:06:41 -0500 2010
      Processing by LineItemsController#create as HTML
      Parameters: {“product_id”=>”3″, “authenticity_token”=>”Dsv044fqfo7H46jLYx3e6qnbCgqk3Tcoij6pqbOQZx4=”}

      So I checked the browser errors. Firefox showed

      Error: document.on is not a function
      Source File: http://localhost:3000/javascripts/rails.js?1277734011
      Line: 136

      Inspecting the element in Chrome I saw

      Uncaught TypeError: Object #<an HTMLDocument> has no method ‘on’

      Looking at the rails.js file, line 136, we see

        document.on("click", "*[data-confirm]", function(event, element) {
          var message = element.readAttribute('data-confirm');
          if (!confirm(message)) event.stop();
        });

      Between the errors and the rails.js file, we see that none of the included JavaScript files nor the browser defined the method. A new Rails 3 patch will upgrade prototype from 1.6.1 to 1.7rc2, so future generations will not experience this fun.

    • The World Cup shows the ubiquity of English

      Posted on July 6th, 2010 Seth No comments

      I’ve been enjoying the World Cup for the past three weeks–while still getting all of my work done, of course. One thing that has been really neat is seeing the diverse cultures communicating. I imagine the players and referees could play without words (we’ll let them keep whistles and hand-signs), but very frequently players verbally plead for calls and the ref explicitly announces situations to players. The on-field interactions seem to be in English.

      When Paraguay, coached by an Argentinian, played Spain, coached by a Spaniard, they were officiated by a Guatemalan, Costa Rican, Honduran, and Mexican; I’d guess everyone spoke Spanish. But the situation gets more complicated if we look at when Paraguay (native Spanish speakers) played Japan (native Japanese speakers) with refs from Belgium (official languages are Dutch, French, and German). My lip-reading skills are admittedly amateur, but I perceived English. This has been the case throughout the tournament. Now, I’m glad that I focused on furthering my English skills instead of futilely learning a foreign language because everyone speaks English. The World Cup taught me so :-)

      So, when and how are players from all of the world learning English well enough to communicate with other similarly diverse English-speakers? When did this start? Because Maradona, an old school footballer, interviews in Spanish using a translator.

    • Now that’s impressive!

      Posted on June 2nd, 2010 Seth No comments

      A friend of mine sent me a video of Dustin Carter, a wrestling badass. Check out his workout:

      Despite having no arms and no legs (a rare infection forced him to have both arms and legs amputated), Dustin has an awesome record. It’s really inspirational; as one of the Flowrestling comments says, “No excuses.”

      There’s also a documentary on him. Here’s a teaser:

      Even Sports Illustrated has picked up on him here.

      I must admit, I find the lives of differently abled people quite interesting, and Dustin is no exception. It’s amazing that he has adapted and succeeded. Well done, Dustin Carter! Keep wrestling!

    • On to something lighter

      Posted on May 21st, 2010 Seth No comments

      Here are some groan worthy puns that made me smile this week. Enjoy!

      1. The roundest knight at King Arthur’s round table was Sir Cumference. He acquired his size from too much pi.
      2. I thought I saw an eye doctor on an Alaskan island, but it turned out to be an optical Aleutian.
      3. She was only a whiskey maker, but he loved her still.
      4. A rubber band pistol was confiscated from algebra class, because it was a weapon of math disruption.
      5. No matter how much you push the envelope, it’ll still be stationery.
      6. A dog gave birth to puppies near the road and was cited for littering.
      7. A grenade thrown into a kitchen in France would result in Linoleum Blownapart.
      8. Two silk worms had a race. They ended up in a tie.
      9. A hole has been found in the nudist camp wall. The police are looking into it.
      10. Atheism is a non-prophet organization.
      11. Two hats were hanging on a hat rack in the hallway. One hat said to the other: ‘You stay here; I’ll go on a head.’
      12. I wondered why the baseball kept getting bigger. Then it hit me.
      13. A sign on the lawn at a drug rehab center said: ‘Keep off the Grass.’
      14. The short fortune-teller who escaped from prison was a small medium at large.
      15. The man who survived mustard gas and pepper spray is now a seasoned veteran.
      16. A backward poet writes inverse.
      17. In a democracy it’s your vote that counts. In feudalism it’s your count that votes.
      18. When cannibals ate a missionary, they got a taste of religion
    • R.I.P. Viola Holloway

      Posted on May 18th, 2010 Seth 1 comment

      Yesterday my grandmother, Viola Holloway, passed away after 89 fruitful years. While this is incredibly painful for me, her passing is not all sad; given her condition this semester, I can say she’s in a better place now.

      Viola was an awesome grandma, and I’m going to miss her tremendously. She always had treats and encouraging words for me! I will cherish the memories and try to be as loving and supportive of my progeny as she was of hers.

      Exercise. Be happy. Live simply. Viola had it right.

    • Go visit Petite Pensieri at First Thursday tonight!

      Posted on May 6th, 2010 Seth 1 comment

      After birthing a super cute baby boy, a good friend, Tahra, started a business selling handcrafted baby items (with another friend in a similar situation, Katie). The business, Petite Pensieri, is very inspiring; I have been impressed by so many elements! Tahra and Katie have shown tremendous initiative and their products are high-quality and useful.

      From a technological standpoint, Etsy offers an amazing platform for handmade items. The service allows you to quickly and easily list items for sale. Etsy’s fees are quite reasonble: “It costs 20 cents to list an item for four months. When your item sells, you’ll pay a 3.5% transaction fee.” Shopify is a similar idea: you create an online storefront and they manage everything else for a fee. The monthly cost of Shopify ranges from $24 (for 100 products and a 2% transaction fee) to $699 per month (for 50,000 products and no transaction fee), so the two sites addresses slightly different needs. With some quick math I’d say Etsy is cheaper up to $1,600 worth of sales a month (24+0.02*x = 0.035*x -> 24 = 0.015*x -> 1600 = x). To be fair, Shopify wins if, for example, you want custom domain names and landing pages or selling goods that don’t qualify for Etsy.

      Tonight, Tahra and Katie will be offering their awesome wares at First Thursday. If you’re around, go enjoy the experience and keep Austin weird (or at least local ;-) )! If you’re going to a baby shower, buy something nice from Petite Pensieri and the baby will thank you later!

    • The Timeline Resume

      Posted on April 15th, 2010 Seth 4 comments

      Over the weekend I published my resume as a timeline. With the standard text-based resume I found it hard to show my simultaneous jobs (for example, in Spring 2010 I was pursuing my PhD, working part-time at IBM, researching under Christine, teaching/grading Project Management, keeping up the lab’s computing infrastructure, supervising Michael Hanna, assisting a couple companies with their computing needs, and actively participating in two organizations). The timeline allows me to show these jobs at once rather than tacitly asking the reader to juggle all the “X – Present” entries under multiple headings.

      Seth Holloway's timeline resume

      Timeline resume (April 14, 2010)

      It was a great project with HTML/CSS and JavaScript! I was inspired by other great infographics, but after I had published the resume, I found there were some other timeline resumes I could have used as a guide. In any case, I like mine and I hope you do too!

      Do you see any improvements I could make? Anything that is unclear or hard to use?