Adam Gotterer

Find the secrets to infinite income, and automate it!

  • 1 Comment
  • Filed under: General
  • This is one of the most impressive things I have ever seen. Chad is one of the designers from Vimeo. Watch and be amazed.


    Science Machine from Chad Pugh on Vimeo.

    The 21″ x 13″ print can be purchased at my new store! store.thebigpugh.com

    This piece inspired the login illustration that vimeo commissioned from me for their redesign earlier this year; it is still in use throughout the site. The video is a condensed time lapse of screenshots over a several month period. Total physical drawing time is close to 40 hours and I’d add an equal amount of time for concept time and readying the print. A screenshot was taken every 5 seconds, which actually results in a full 18 minute video. I’ll upload that for posterity later.

    My life has changed a lot since i started this, so I thought it appropriate to include my friends, family and loved ones since they all were on my mind throughout the creative process. Enjoy!

  • 0 Comments
  • Filed under: General
  • I went to the final Mets opening day at Shea stadium today versus the Phillies. The place was mobbed! The radio said it was the largest opening day in Mets history at 56,000 people. I sat in the same box as Boomer Esiason and the Governor and Mayor of New York. I have to question how a blind man can enjoy a baseball game? I guess it’s more of a public appearance and networking thing anyhow. Those guys roll around with some serious body guards. The Mets lost the game 2-5. Hopefully that the last loss for the season. We need to leave Shea victorious once again!

    I Almost caught a foul ball, but my brother literally snatched it out of my hands, elbowed me in the face, and we both came crashing down on my mother. The things people will do for a free baseball. He ended up giving the ball away to a little kid.

    The new stadium looks incredible. It almost appears to be in the outfield. I’m impressed with how much they have done since this time last year when it was a nothing more then a big metal frame. The new stadium cant be more then 20 feet from the current stadium. I hear at the end of the season they are raffling off just about everything in the old stadium. Seat included. Can you imagine buying a box and watching the game in your living room? Your wife would probably love that! Now all you need is a beer cart and you’re set!

  • 0 Comments
  • Filed under: General
  • Muxtape

    On Tuesday March 25th, Justin Ouellette one of the developers from Vimeo launched Muxtape as a side project. The idea isn’t totally original, but its executed far better then the competition. Muxtape is a site that lets you make virtual mix tapes. You upload up to 12 songs from your computer and share the custom link with anyone who wants to listen. The design is one of the cleanest and easiest to use sites I have ever seen.

    When Justin sent out an office wide link looking for feedback on Tuesday morning I googled “muxtape” and got back 33 results. I did the same thing the Wednesday and got back around 4,000 results. Thursday was around 9,000 and Friday around 22,000. I didn’t check over the weekend. I looked sometime early the next week and saw it was over 40,000. Tuesday April 1st, one week after the site launched google returned just over 100,000 results and as of today (April 4th) 121,000 result. That growth rate is pretty unbelievable and I would love to see at what point it stabilizes.

    I talked to Justin today about the growth on his site, I don’t want to throw numbers out without his permission but he said the site is growing at a nice rate every day. I assure you it’s a pretty impressive number for a site two weeks old. He must be paying a fortune in bandwidth on Amazon S3. I want to say that he didn’t have a clue how big this was going to get, but then I would be lying. I think he knew damn well how the site was going to do before he even launched. He gave Vimeo two weeks notice Monday, the day before he launched. Thats a pretty ballsy move to go from a stable income to the unknown. But thats what separates the people who build great companies and the people who are too afraid and work corporate the rest of their life. I don’t know Justin that well, but I have had some interesting conversations with him and he really knows his stuff. He didn’t give me much insight to future plans. But he said theres a monetization plan in the works and a bunch of new feature. I think he is going to do great and wish him the best of luck.

    Check out my Muxtape!

  • 0 Comments
  • Filed under: Programming
  • Americas Hottest College Girl 2008

    It is that time of year again. The time of year CollegeHumor looks for the hottest college girl in America. What better way to do that then run a March madness style bracket and letting American vote on the winner?

    Pretty simple… 64 girls enter, one wins, she gets paid $10,000 dollars and we throw a big party in her name. Unfortunately sign ups for girls are over and you will most likely not be invited to the party. On the bright side we are hosting a fantasy bracket where you can compete against other CollegeHumor users for a chance at a first place prize of $1000, second $250, third $100 and the top 20 brackets get a free BustedTee.

    Last years competition was fun and exciting! What I learned was my taste in woman is very different from the rest of America. Which either means I have bad taste or everyone else does? Either way, you can all compete for a small handful of 10’s while I scoop up the 9’s right under your feet! P.S. I cant win, but if you pay me $20,000 I can rig the competition!

    Some pictures from last years party

    Hottest College Girl 2007 Party

    Hottest College Girl 2007 Party

    img_2072.JPG

    165110810-m.jpg

  • 0 Comments
  • Filed under: CollegeHumor
  • BustedTees

    This morning at 5am Kunal Shah, Nick Dunkman, Jmo and myself launched a new version of the BustedTees website! Visually the site hasn’t changed much. Amir Cohen, one the front end developer for CollegeHumor did an excellent job recoding the front end. We spent the better part of the last 4 months recoding everything from scratch. The original version was built on the open source Symfony PHP framework several years ago (before my time). The site served it’s purpose and helped take BustedTees to a new level, it wasn’t that it was poorly programmed, it just outgrew our requirements.

    BustedTees at 5am
    (Dev Team at 5:15am)

    I’m finding that a lot of the open source PHP frameworks that I have experimented with and seen throughout the community just don’t scale well. They serve a purpose and are great for average every day sites. But when dealing with a site the size of a BustedTees or CollegeHumor it really makes sense to roll your own framework, if you can. There are of course instances when writing a framework from scratch doesn’t always make sense. In the “unsure” startup setting it sometimes makes sense to get something out there quick and worry about scaling later. Scaling is a GREAT problem to have. If you are going to use open source code, not just frameworks, it’s important to really understand the underlying code. I can bet most coders don’t have a clue how the open source code they use actually works. Some of these applications are coded by excellent developers, you might learn something new by just reading their code.

    Working on BustedTees has been an incredible experience and I have learned so much. I have worked on some small ecommerce sites as a freelance developer, but nothing of this size. Theres so many things I would have never thought needed to be accounted for. In future posts I will try and elaborate a bit. Right now I’m running on a few hours of sleep I got from a nap, so I’m going to pass out…

  • 1 Comment
  • Filed under: CollegeHumor
  • Gmail
    Gmail is almost unbearable for me to use on Firefox at work or at home. At home I get authentication popups every 10 - 15 seconds. Most clicks then become unresponsive. At work, closing gmail locks up my browser for about 8 seconds and just runs horribly slow. As of today clicking the reply button makes the reply box disappear on both machines. So I decided I would check my email in Internet Explorer instead. I got a JavaScript error while it loaded, rendering it useless. I had to settle with leaving an opera browser open all day to get email. My patience for gmail is slowly dwindling away. I noticed these problems only started when google upgraded to the newest version of gmail. Unfortunately its not easy to switch email services, everyone already has my email address and theres just no better alternative.

    Wordpress
    This wonderful blog is powered by wordpress. I think one of the reasons I don’t post as often as I would like is because of how fed up I am with this platform. To begin, tinyMCE is horrendous. We ended up using it at CollegeHumor for our article writer. We had to hack so much of the code up to get it to play nice with user input. Most of the problems came from copy and pasting from miscellaneous word/notepad applications. tinyMCE is now disabled on this blog, which solved a small portion of my problems. I have thought about switching to tumblr, but I’m too lazy to set that up and import everything here over. I also find their platform to be over simplified and lacking functionality.

    Time Warner
    My cable TV works 50% of the time, it skips, it freezes and it drops packets. In order to use on demand you have to unplug the box, wait 5 minutes for it to reboot and then order a video. The internet isn’t actually that bad. I get decent speeds (nothing compared to Optimum when I lived on Long Island) and its reliable for the most part. But they did something the other day they pissed me off. They high jacked the not found web addresses with a suggestion page full of text ads. How are these huge companies not getting the hint that this pisses customers off? Did no one learn anything when verisign did this? Fortunately I was able to change my preferences to prevent this from happening, but this should have been opt-in from the beginning. Did I mention I pay $130 a month for cable and internet? The only alternative is New York City is RCN, which raised their price $30 a month and caused me switch to Time Warner in the first place, but lets be honest RCN wasn’t much better.

  • 1 Comment
  • Filed under: General
  • The examples here are taken from Function page of the Prototype JS api documentation. They have been re-written to reflect the Prototype XUL changes. Hope they help!

    argumentNames

    var fn = function(foo, bar) {
       return foo + bar;
    };
     
    argumentNames(fn); //-> ['foo', 'bar']

    bind

    var fn = function(foo, bar) {
       return foo + bar;
    };
     
    argumentNames(fn); //-> ['foo', 'bar']

    bindAsEventListener

    var obj = { name: 'A nice demo' };
     
    function handler(e) {
      var tag = Event.element(e).tagName.toLowerCase();
      var data = $A(arguments);
      data.shift();
      alert(this.name + '\nClick on a ' + tag + '\nOther args: ' + data.join(', '));
    }
     
    Event.observe(document, 'click', bindAsEventListener(obj, handler, 1, 2, 3));

    curry

    String.prototype.splitOnSpaces = curry(String.prototype.split, " ");
    "foo bar baz thud".splitOnSpaces(); //-> ["foo", "bar", "baz", "thud"]

    defer

    function hideNewElement() {
      $('inserted').hide();
    };
     
    function insertThenHide(markup) {
      $('container').insert(markup);
     
      // Prototype XUL
      defer(hideNewElement);
    }
     
    insertThenHide("
    <p id="inserted">Lorem ipsum
     
    ");

    delay

    // before:
    window.setTimeout(function() {
    Element.addClassName('foo', 'bar'); }, 1000);
     
    // after:
    delay(Element.addClassName, 1, 'foo', 'bar');
     
    // clearing a timeout
    var id = delay(Element.hide, 5, 'foo');
    window.clearTimeout(id);

    delay

    // start off with a simple function that does an operation
    // on the target object:
    var fn = function(target, foo) {
      target.value = foo;
    };
     
    var object = {};
     
    // use the original function
    fn(object, 'bar');
    object.value //-> 'bar'
     
    // if we methodize it and copy over to the object, it becomes
    // a method of the object and takes 1 argument less:
     
    object.fnMethodized = methodize(fn);
     
    object.fnMethodized('boom!');
    object.value //-> 'boom!'

    wrap

    String.prototype.capitalize = wrap(String.prototype.capitalize, 
      function(proceed, eachWord) {
        if (eachWord && this.include(" ")) {
          // capitalize each word in the string
          return this.split(" ").invoke("capitalize").join(" ");
        } else {
          // proceed using the original function
          return proceed();
        }
      }); 
     
    "hello world".capitalize()     // "Hello world"
    "hello world".capitalize(true) // "Hello World"

    For the most part the functionality of Prototype XUL works the same as normal prototype. The prototype documentation can be found here. The underlying changes are in the methods that extend Prototype.function. The functions that have been re-written are: argumentNames, bind, bindAsEventListener, curry, delay, defer, wrap and methodize. The core difference in use, is that these functions can not be extended from objects anymore and must be explicitly called.

    argumentNames

    argumentNames(someFunction) //-> Array

    bind

    bind(thisObj, someFunction) //-> Function

    bindAsEventListener

    bindAsEventListener(thisObj, someFunction) //-> Function

    curry

    curry(someFunction, [args...]) //-> Function

    defer

    curry(someFunction, [args...]) //-> Number

    delay

    delay(someFunction, seconds, [args...]) //-> Number

    methodize

    delay(someFunction, [args...]) //-> Function

    wrap

    delay(wrapperFunction, someFunction, [args...]) //-> Function