Skip to main content

Chronology of a painter or my weekend with wekendapps

Why? Because programming is fun. Lots of fun. Working as CTO I mostly help organize this fun for others. It’s time to have some fun for myself.

Where? Wekendapps in Santa Clara

When? February 22 to February 24, 2007

Day 1

Started as typical Silicon Valley meet-up, with pizza and bunch of people crowded in small room, event fun was started. Some people came ready and prepared with friends and code snippets. I did not. Anyway crowd (with some help from organizers) gravitated into groups of people with similar skills. Ideas were presented. I liked what David’s idea on searching FB users through their connections and common photo tagging. Started discussing/planning/coding the app.

Day 2

Spent morning socializing. Realized that app we thought about on day one is not viral. David shared another idea – ‘painter’ who will draw a classic masterpiece on user’s profile page over time. Sort of growing gifts but more ‘sophisticated’.

4 p.m. really started to work on the app – put together “project plan” (list of to-do items) and assigned tasks. Plan is to finish the app early Sunday. For the rest of the day (till 2 a.m.) we dug dip into PHP/SQL/CSS/FBML.

12:30 a.m. conversation in the room became more philosophical. Main topic discussed – why do people laugh? Is it because people lose control of themselves?

1:30 a.m. it took me a while to figure out why < href="”link”"> does not work - sleep time.
BIG respect to people who did not leave and stayed for the overnight coding session.

Day 3

9 a.m. we are back. Bagel and coffee are timely. Thank you, organizers.

10 a.m Set up a target to finish coding by 2 p.m. Plenty of time to finish the up (or what we thought)

12 noon realized that we cannot finish by 2 even if we skip the lunch. Skipped the lunch.

2 p.m. uncovering one limitation after another realized that we cannot finish even by 4 p.m.

4 p.m. David added the code to post the painter to user’s profile page. Only dots and occasional lines are visible – no painter, no picture… Started panicking and think about radical change to the design – instead of posting BFML with css – post static images. Thanks to Elsie who saved us from taking that route – it would take forever and ever to finish the app.

5 p.m. Crowd of investors arrived. Asking questions like “do you use PHP libraries?”. All deadlines are passed and we are not finished. Moved to more quit conference room.

6 p.m. Feature complete. Started end-to end testing. Realized that critical functionality (acceptance of the painting after application is installed) does not work. With the tribal knowledge of surrounding people, David figured out what could be done to fix the flaw. Changed DB schema and countless places in the code.

7 p.m. other teams are presenting ... We still working on the code. Promise to organizers that we are close and soon will be ready to present.

7:15 p.m. development server is down… Most of the code is there…

7:25 p.m. server is back

7:30 p.m. moving to “production” – creating production keys and set of files. Integration end-to-testing. Promised that we really-really ready and will come to the main conference room in a minute. App is fully functional

7:45 p.m. testing end-to-end functionality. I want to remove app from my account so that I can test invite-install path. Instead of removing the app from my profile, deleted application all together from the developers environment. Ooops. Should have camera with me to take picture of David.

7:55 app restored

8:05 discussing ‘code freeze’. David still changing message text.

8:15 presentation


Side-effect of all of the fun, painter app, is up and running.



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, 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=''; 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)
// require'settings.php';
$url=""; $url.=…

Respect Coin

Respect I think it's time to talk about currency. Let's create a Respect Coin.
Step 1. Install OpenZeppelin library npm install zeppelin-solidity
When it comes to coins, I like to use some functions that smart people already implemented and other smart people verified. I think that Zeppelin is a nice collection of Solidity contracts that can be trusted. Let's use the StandardToken contract and use it as a parent class for our own RespectCoin contract.
Step 2. Create RespectCoin contract and store it in "contracts/RespectCoin.sol" file pragma solidity ^0.4.4; import "../node_modules/zeppelin-solidity/contracts/token/StandardToken.sol"; /** * @title RespectCoin * @dev ERC20 Token example, where all tokens are pre-assigned to th e creator. * Note they can later distribute these tokens as they wish using `transfer` and other * `StandardToken` functions. */ contract RespectCoin is StandardToken { string public constant name = "RespectCoin&quo…

"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 ( $ 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…