Skip to main content

"Giving a newborn baby a firehose to drink from"

After a complete system rearchitecture, full code rewrite, and database migration, Trusted Opinion Site was re-born.

Birth was painful (as it should be) with sleepless nights and emotions were running high. But that's pretty much what was expected. What was not expected is the huge amount of crawling traffic the site got from the second it was up (hundreds of thousand hits per hr). It looked (and still feels) like we are under DOS attack. But we are not! That's the new reality - computers are much better at networking than humans are, and by the virtue of the Internet, they use their potential to the full extend.

I like the quote from our COO Todd Greene: Launching the site these days is like giving a newborn baby a firehose to drink from"

A few lessons from the launch:
  1. What looks impossible and feels impossible, is possible as long as everyone ignores that it is impossible
  2. Food is important! After 30 hours of work it becomes even more important than internet connectivity
  3. People mood is more important that server health (and harder to fix)
  4. Shortcuts always bite. Taking shortcuts in data migration bite really hard. Even in order to save a few hours of downtime, even if you really-really want it, do not take shortcuts!
  5. And, the most important, do not forget celebration when the job is accomplished! Even thou I put it into the migration project plan, we managed to ignore the task.

Comments

Popular posts from this blog

Posting to FaceBook feed using Graph API

Graph API was announced at F8 with a promise to dramatically simplify the FB API. I checked the read access over the new interface during the presentations and to my big surprise it worked flawlessly and from the first time. When I tried https://graph.facebook.com/facebook, JSON-formatted info about the FaceBook page was returned (as expected).
Then I tried OAuth 2.0 way of accessing the API to post a message to the feed. And to my even bigger surprise it worked too!
Here is what you need to do to access Graph API over OAuth: 1. Create a FB app, store app properties to a file:
$appkey='7925873fbfb5347e571744515a9d2804'; $appsecret='THE SECRET'; $canvas='http://apps.facebook.com/graphapi/'; 2. Create a page that will prompt user the access permission (I am prompting for the publish_stream and offline_access permissions at the same time)
//http://apps.facebook.com/graphapi/ require'settings.php';
$url="https://graph.facebook.com/oauth/authorize?"; $url.=…

Amazon Simple Email Service (Amazon SES) and PHP

This morning Amazon announced availability of a bulk email delivery service called "Simple Email Service". Anyone who knows how much pain is it to set-up scalable email solution (and it is not just spammers who need it!) should celebrate the occasion. I know of a company that spent several years cleaning ip addresses it sends email and found itself locked into the contract with internet provider since it would take forever to reach required level of email deliver ability anywhere else.

Anyway, this evening I decided to check the Amazon claim that the service is "simple". Found out that it is indeed simple!
Since there is not much in terms of the documentation yet, here is my code where I used AWS PHP library:

// Enable full-blown error reporting. http://twitter.com/rasmus/status/7448448829
error_reporting(-1);

// Set plain text headers
header("Content-type: text/plain; charset=utf-8");

// Include the SDK
require_once '../sdk.class.php';


// Instantiate th…

"Hello World" from Solidity

How to say "Hello World" in the era of blockchain? Reflections Once upon a time, I worked in CTO role of a great startup, and in order to find talented code developers, we ran a competition for the most creative "Hello World" application. It was a lot of fun! I was not able to participate in the competition back then, but here is my delayed entry.

Step 1. Environment Configuration# Installing Truffle framework (http://truffleframework.com/) $ sudo npm install -g truffle# Creating project $ mkdir solidity-experiments $ cd solidity-experiments/ $ truffle init# Installing and starting Etherium local test network $ sudo npm install -g ethereumjs-testrpc $ testrpc &
Step 2. Point truffle framework to the test network Update truffle.js file created by the init to point to your test network. File content should look like this:
module.exports = { networks: { development: { host: "localhost", port: 8545, network_id: "*" // Match any netwo…