AdKeeper to Launch Keep.com

Nov 22
2011
Keep.com

AdKeeper's latest product, Keep.com

As you many of you already know, I’m a proud member of the AdKeeper team. We’ve been laying a little low for a few months, and here’s part of the reason: We’re launching a new product, Keep.com!

For an explanation, I’ve decided to simply quote our CEO ( with permission, of course ), as he wrote it best in an email earlier today:

Not a change of course/emphasis – but something new/incremental. We’re very happy with the core biz.

Since we began beta in Feb. we’ve rolled out 10+ Billion buttons across the web. Making this tech easy and seamless was the first order of business – and you may have noticed our deal with Safecount last week that now lets us take a single line of code and drop it into ad tags with partners. This is the beginning of spreading buttons wider and is very exciting. We very much believe Keep buttons will be on “all” ads.

We now not only have the biggest, best group of advertisers for a new media property, ever… we’re certified on every web site in the world and now we make ad tagging/ops way easier. Eric Schmidt’s recent comment about how hard it is to do ad tech resonates with all of us.

And, to top it off – fresh research shows that 23% of users feel better about a brand just seeing the button that let’s them “Keep ad for later”… and we’re getting 50x clicks and 20x view time on Kept ads. That’s the button side of things.

On the destination front (which is where Keep.com plays), some of our guys fell in love with a tweaked metaphor for deeper engagement with Brands. I told them to have at… our version of Google’s 20% “do what you want program.”

I liked what they’re doing so much that I gave them one of our fun parked URL’s… Keep.com. We’ll be working it for a bit before going wide – but needed to start getting some folks in to kick the tires… thus the proverbial velvet rope. Sign up… maybe we’ll let you in :)

– Scott Kurnit, AdKeeper CEO
 

All of that stated, if you’re interested in checking out the new product the day it launches ( very soon ), sign up at our launch page and… maybe we’ll let you in :)

Happy Keeping!

North America Wakfu Closed Beta Keys

Jun 28
2011

So, I just wrote about Dofus last night, a game I’ve been enjoying for close to a year, and mentioned it’s sequel, Wakfu. Shortly after, I decided to check up on progress of the sequel. It’s in a closed beta in North America right now, and likely won’t be released to the public for quite some time. In my excitement though, I thought I’d search around and see if I could get involved in the beta – surely a contest was giving out beta keys?

A brief search turned no avail, so I posted to the Wakfu forums, and somebody got in touch with me by the next morning. They recommended I go to http://www.fileplanet.com/promotions/wakfu/ which was still giving out beta keys for North America.

Sure enough, I had to signup for a free fileplanet account ( no big deal ), and had my beta key in a few minutes, success!

I’ve yet to dive deep, but I’m already very much enjoying the improvements. This is going to be good, I can tell. Below is the official game trailer featuring cinematic and actual game play! Enjoy!

If anybody wants to try out the beta with me – shoot me a message!

Dofus – Game of My Year + Strategy

Jun 28
2011

So, all my friends seem involved in all these new, graphically intense, state of the art games. I’ve been lingering back a little in games that perhaps come off a little more “old school”. I can’t help it. Super Nintendo was my favorite system, I gravitate towards the look and feel.

Now for the game I’ve been pecking away at for the last year, Dofus – a MMORPG that hits the spot nicely for me. The game was started in France where it’s hugely popular, and later translated to many languages – including, of course, English. I read somewhere that there are 10 million players worldwide. A sequel ( that looks excellent ) is currently in closed beta: Wakfu

Like the previous game I wrote about, World War for the Android, Dofus offers to me a game that I don’t have to intensely keep up with to play. I peck at it. Every so often I’ll log in, fight a few monsters, mine some ore, setup shop, and logout.

Not having a lot of time to level my character via fighting monsters for hours on end, I’ve found particular enjoyment experimenting with the logged out dynamics of the game with the game’s market. For the last several months, I’ve been creating monopolies in the game, which gets my rocks on some level or another ha, ie:

Monopoly Strategy #1:

Buy out all the dungeon keys to Gobball dungeon in the main town centers from all the key makers, then sit at the dungeon entrance and sell them for 3x’s the price. When others try to copy the strategy and undercut my price, I’ll buy out all their merchandise and up my prices. This is an aspect of the game that can be done very casually, by only requiring I occasionally login for a few mins every few days steadily watching my in-game fortune grow and monitoring the market for other trends where I can jump in for an easy win. Kinda like playing stocks ha.

Haha, nerdy I know.

Anyways, if anybody out there decides to give the game a shot, drop me a message – I play on server “Solar”.

Best 2011 Super Bowl Commercials

Feb 06
2011

Living right outside Pittsburgh right now, it’s only natural that I’ll have atleast a mention of the 2011 Super Bowl! Go steelers!

Right now I’m at a friend’s bar with my laptop hammering out some tasks for work and keeping tabs on the game. So far the Dorito commercials have sparked the most laughs, here is one John Washam sent over ( who is also hammering from Seattle ):

I think this was spot on — the finger licking goodness is truly the best part! Too funny!

I’ll save the best overall commercial posting for after the game, as better ones are already rolling in faster than I’ve been able to post this – that optima commercial was pretty sweet btw. The Eminem Brisk commercial.. comeon man, I like Eminem as an artist – but that was most-lame.

How to Fix Netflix Error N8156-4001 and Silverlight on Mac OS X

Jan 21
2011

This will be a short post in effort to help others. I was streaming Netflix tonight, or attempting to, and kept getting an error code N8156-4001 with a message to call support if it doesn’t go away. This was not a happy good feeling, nor was I going to call customer support – I’m far too lazy to wait in line.

So, I did a little research and found tons of others experiencing the same problem, and that it’s related to the Microsoft Silverlight Plugin. I found that many people said re-installing or downgrading Silverlight was doing the trick. Though I couldn’t find just how to do that as they rarely posted instructions for Mac OS X, hence this post.

The steps I finally came up with are dirt simple and hopefully work for others too. I’m not sure what remnants I left on my computer by installing over top like this, but frankly, I could care less – it works! :-)

The steps:

  1. Go to the Apple Silverlight download page, and download Silverlight 3.
    http://www.apple.com/downloads/macosx/development_tools/silverlight.html
  2. Unpackage the download
  3. Click through the friendly wizard
  4. Restart firefox

Wallah! I logged back into Netflix, and the error was gone. I’m now about to fall asleep to a sci-fi.

If others have tips, please post in the comments.

AdKeeper Raises $35 million in second round funding!

Jan 03
2011

I joined AdKeeper several months ago – it’s so far been a blast, and has really nailed the startup-junkie sweet spot in me! With a press announcement today, it just got a lot more interesting…

As we pound out our goals and deadlines on the code-front, where I dwell, the rest of the company has been hard at work refining the vision and pushing the marketing. Today we announced our second round funding, a whopping $35 million, led by Oak Investment Partners – bringing the total raised to $43 million.

So, I get this question alot, in fact, my sister just asked me last night: “What are you guys building, Chris?”. Lets save your eyes, and give you a fun video this time:





By the way, my sister’s response via phone was “I save ads all the time, I just usually book mark them and look for them later, but this makes it easier – I really think people will use this”. I feel the same way!

You can also find out more at www.adkeeper.com.

You can also watch more videos (Q&As, fun commercials, and more) at our YouTube channel: http://www.youtube.com/user/TheAdKeeper

PHP Namespace Tutorial

Oct 16
2010
[ad name="Google Adsense-3"]

Introduction

Namespaces have been around for years in other languages, but only as of PHP 5.3 have PHP developers been so fortunate. So, what is a namespace in PHP? In short, it’s an abstract container that allows us to re-use same function, class, and constant names but apply different meanings based on what context they are in. That’s a mouthful, huh?

Lets take a look at a small code snippet, and then we’ll break down and expand upon what’s going on in small, chewable increments:

namespace_intro.php

namespace Foo;

function Bar()
{
    echo __NAMESPACE__;
}

namespace FooFoo;

function Bar()
{
    echo "Bar";
}


echo \Foo\Bar();

Output:

Foo

There are a few points of interest here:

  • The namespace keyword
  • The __NAMESPACE__ constant
  • Redefinition of the Bar() function
  • The strange new syntax in the echo statement at the end: name resolution

The namespace Keyword

Namespaces are named arbitrarily and have two syntax forms. Note, in either syntax, namespaces cannot be nested; although, sub-namespaces can be defined ( explained later ).

Syntax 1:
namespace Foo

//...code here...
Syntax 2 – Block form:
namespace Foo 
{
    //...code here...
}
Secondary Usage

The namespace keyword also has a secondary usage, which is to act as an explicit reference to the current namespace, similar to the self:: keyword used in classes. Example:

namespace_self_reference.php

namespace Foo;

class Foo
{
    public function __construct()
    {
        echo __NAMESPACE__;
    }
}

namespace Bar;

class Foo
{
    public function __construct()
    {
        echo __NAMESPACE__;
    }
}

$object = new namespace\Foo();

Output:

Bar

The __NAMESPACE__ Constant

The __NAMESPACE__ magic constant contains a string that outputs the current namespace. When called from the global context, an empty string is output. You may find it useful for dynamically constructing variable and class names, to error reporting.

Name Resolution

Name resolution refers to how namespaces find your classes, functions, and constants based on a few definitions and rules. Depending on the syntax you use, import rules, and existence in the current namespace, name resolution can change the behavior of your code – so be familiar with the rules.

Some definitions:

Unqualified Names

Unqualified names have no reference to a namespace. Example:

    Foo()

At run time, if within a namespace and a call to an unqualified function occurs, the namespace is first checked, if the function is not found, the global scope is then checked for that function.

For class names, the class is looked for in the current namespace, autoload is then called on that class.

Qualified Names

Qualified names have a namespace separator included, and are translated during compile time based on the current import rules, Example:

    Foo\Bar()

Fully Qualified Names

Fully qualified names (FQN) start with a namespace separator, and are explicit references to a namespace that cannot be effected by import rules. FQNs are resolved at compile time. Example:

    \Foo()
    \Foo\Bar()

Sub Namespaces

[coming soon...]

Namespace Aliases

[coming soon...]

Importing Namespaces

[coming soon...]

Autoloading Namespaced Classes

[coming soon...]

Conclusion

Without Namespaces

Previous to namespaces in PHP, the common alternative to control context was through careful conventions in file system structure + long class names, ie:

Framework/DB.php

class Framework_DB
{
    //etc...
}

Framework/DB/MySQL.php

class Framework_DB_MySQL extends Framework_DB
{
    //etc...
}

Application/DB.php

class Application_DB
{
    //etc...
}

Rewritten Using Namespaces

While the filesystem structure convention is still a recommended practice for organization, the contents of the files can be defined more concisely using namespaces:

Framework/DB.php

namespace Framework\DB;

class DB
{
    //etc
}

Framework/DB/Mysql.php

namespace Framework\DB;

class MySQL extends DB
{
    //etc
}

Application/DB.php

namespace Application;

class DB
{
    //etc
}

I’m anxious to see how the introduction of namespaces in PHP 5.3 changes software everywhere! Happy Coding!

Lockerz CEO, Kathy Savitt, on CNBC Power Lunch!

Jul 09
2010

Keeping an eye out for a better recording, but considering this happened just 30 mins ago — it’s the best I could do ( Drew Kerrigan actually recorded it on his iPhone here at work, good job Drew ). Without further ado, Lockerz CEO, Kathy Savitt, on CNBC Power Lunch! Congrats Kathy!

Fun Android/iPhone Game – Storm8′s World War

Jun 20
2010

World War - By Storm8

A CTO recently made a comment that some oddly high % of people above a particular salary range play N amount of video games a week.  I thought it was interesting, as I couldn’t disprove it, ha!  So, in effort to keep this page a little active, and not having the time to write out a well-thought-out technical tutorial, I decided to write about something fun, a video game I got into this week:  Storm8′s World War ( picture on the left ).  It’s a dice-based massively multi-player phone game for both Android and iPhone.

How it works?:

You pick your faction ( one of 5 global super powers ), each with their own benefits.  You then complete missions, earn money, buy bigger and badder units, and compete with other players.

What’s fun about it?:

One thing I particularly enjoy about World War is that it’s simply addictive – there are few controls and few options, so I don’t really need to deeply involve myself in the game to have fun with it. I play here and there.  I like this, because I’m so very busy these days – I haven’t really had time to join my buddies in the Starcraft 2 train, and I can only play my Wii in small dosages.  So phone games that I can carry around and play here and there is quite fulfilling.

Tips?:

I’ve only been playing for about a week, but like many other multi-player phone games, World War continues while you are offline.  So, it’s probably a good tip to build a lot of defense, so that other players don’t loot your cash flow while you’re gone!  When it comes to attacking, the best thing you can do is have a couple friends join your alliance.  The bigger your alliance, the more effective your attacks and defenses are.  Ie, if you are in an alliance of 4 people, you typically almost always win against an enemey from an alliance of 2 ( though not always, just usually ).

Join my alliance!:

If anybody wants to join the game, post your alliance code in the comments or shoot me an email — I’ll invite you to my alliance!

Enjoy,

[nggallery id=3]

Apache Low Memory Settings + PHP + APC

Apr 03
2010

In addition to moving my servers to save costs, I ran into a two part issue that I lumped into: “I need to tune memory usage a bit”.

Part 1: Apache

Since I moved my Apache servers to lower memory instances, I was running into swap space usage that I could easily avoid, ie:

free -m
                      total       used       free     shared    buffers     cached
Mem:               268        245         22          0         71         53
-/+ buffers/cache:        120        147
Swap:               511         29        482

Some of the reasoning behind this was that, by default, Apache expects a bit more memory to be available than what I provided to it in the move. The fix was to introduce a few settings to lower child processes and limit concurrent connections to something more reasonable to the type of traffic my site really gets – which is near nothing most days.

The settings I dropped into apache were:

httpd.conf:

    #Low Memory Settings
    StartServers 1
    MinSpareServers 4
    MaxSpareServers 2
    ServerLimit 6
    MaxClients 6
    MaxRequestsPerChild 3000

I made the adjustments, cleared out the swap space with:

swapoff -a
swapon -a

Then restarted apache:

/etc/init.d/apache2 stop
/etc/init.d/apache2 start

And all was well in the world.

free -m
                       total       used       free     shared    buffers     cached
Mem:                268        207         60          0         31         79
-/+ buffers/cache:           97        170
Swap:                 511          0        511

Part 2-1: PHP

A bit simpler, my blog site was running into max memory allocation limits. I had left the default php.ini in place in the upgrade, so I needed to do a once over of configs and change memory_limit from 16M to something more reasonable for my site.

php.ini

memory_limit = 64M      ; Maximum amount of memory a script may consume (16MB)

Part 2-2: APC

Having Apache settings set for lower memory usage also allowed me more room to increase my APC cache limit a bit higher to keep more pages faster. From 30 MB to 50 MB.

apc.ini

extension=apc.so
apc.enabled=1
apc.shm_size=50

Other obvious solutions in consideration, switch to Rackspace to invert my memory/cpu requirement/cost ratios. Any other tips are welcome :-)

Visit Other Sites!

Find me on other sites...

Archives

All entries, chronologically...

Pages List

General info about this site...