Tuesday, October 30, 2012

Speaking concisely

One of the most valuable qualities anyone can have is speaking concisely. You don't just communicate more efficiently; you also manage to add more content into the conversation. More content: more gets discussed: more gets done.

Whenever we demo our product, we try to be as concise as possible, especially in the first few sentences when describing our product.

That said, articulating your vision has definitely worked well for us when approaching Berkeley and Stanford students. It helps them with the bigger picture of where we're going and what we're trying to accomplish. But when it comes down to functionality concepts, it's better to be concise.

Like this post.

Sunday, October 28, 2012

The Mission with Memes

Whenever I explain Memeja to peers at Dartmouth, I invariably get the question: "Why are you doing this?"

In other words, what is the endgame for Memeja?

It's interesting to think about because even with all of our different pivots (accompanied by many late-night whiteboarding sessions), the fundamental vision has always been the same. That vision is to change the face of communication using memes.

In a way, using memes to share experiences is simply an iteration of a pre-existing form of communication: images. Thus, "an image is worth a thousand words". But by adding the element of memetics to seamlessly pass trains of thought between people, we significantly expedite response times. Not only that, we enhance understanding by sharing context.

That sounds abstract. Put another way, if I share an experience with you in a form of a meme (rage comic, specifically), I am establishing a social context. The comic says: here are the events, happening linearly. Naturally, reading it, I must have some reaction -- even not reacting is a reaction.

So how can I communicate my reaction to you in the fastest possible way online?

I could use an emoticon. But that doesn't say much. What if I wanted to share a story that relates to your story?

By taking your meme and pinging back with my own meme, I can respond with a story quickly. Or if I have my own perspective on the story, I could take elements and ideas from your story and replicate them in mine, like a meme.

This transmission of context and thought is what makes memes like visual tweets. 

We believe that memes are visual forms of communication that can help people mutually understand each other better than other mediums for sharing experiences.

Also, we just love building things people want to use.

Saturday, October 27, 2012


I see people in vectors. 

Because our perspectives are restricted by the third dimension, individuals always seem relatively static to us. But, from a bigger picture POV, we intuitively understand that individuals cannot be static -- we are constantly changing, shifting and adapting to life experiences. We are but sums of our own decision-making. Similarly, each has a certain direction and magnitude. Our intrinsic principles and values drive our direction like a compass. Having no principles is a direction too (although a scattered one). They mold what we aspire towards, how we live and how we treat others. The magnitude is determined by our management decisions. The deeper we explore something and commit towards that direction, the deeper we entrench our own lives around that space.

Other people can influence these factors too. Long-term relationship are interesting vectors. As both individuals grow, their inner principles may diverge according to life experiences, leading to relationship discontent ("but we were so good together in the past!"). Or couples may start with differing fundamental principles but slowly converge as they spend time together (like the bad boy turned good by pure empathy).

To this end, I seek to define my principles first and foremost so that as I invest in whatever I do, I can trust that my decisions follow deeply meditated principles. Because even with the greatest magnitude, without direction, I am lost. In fact, most of my past mistakes are representations of an incorrect trajectory.

Wednesday, October 10, 2012

Git and Amazon EC2

At Memeja, we're running on Amazon EC2 linux servers.

As we want to launch and iterate quickly, our top concern was committing, merging and deploying quickly.

The optimal setup would be to

  • make a change
  • quickly commit, push to the repo and then push to the server in one go
  • restart the server to apply changes

First, we set up a quick way to ssh into Amazon EC2 in a shell script. Saves repetitive typing and time.

 ssh -v -i ~/key.pem amazon-ip-address

Next, we're going to set up a post-receive hook so that repo pushes also update the server. But to do that with Amazon EC2, we must add provide a valid .pem file. This goes into the shell script every time we go ahead and push.

 ssh-add ~/Dropbox/Memeja/server/memejalaunch.pem  

That does it. Now for the post-receive hook:

We created a new repository on the Amazon EC2 to mirror the local one, changed directory into it and added the post-receive hook.

Then we added a new remote with the ssh and a shell script to automate the committing/pushing:
 mkdir /path/to/memeja  
 cat > hooks/post-receive  
 GIT_WORK_TREE=/path/to/memeja git checkout -f  
 chmod +x hooks/post-receive  
 git remote add web ssh://path/to/repo/on/server.git  
 git push web +master:refs/heads/master  

And to automate deployment...
 # !bin/sh  
 cd ~/memeja  
 git add .  
 echo '...........done.............'  
 echo "Please type commit message"  
 read commit_message  
 git commit -am "$commit_message"  
 echo "Pushing onto repo"  
 git push   
 echo '...........done.............'  
 echo "Pushing onto Amazon EC2 server"  
 git push production  

the $commit_message allows you to enter something on the fly. You can modify the shell script to allow something empty if you want to be really fast.

Then we can ssh and restart the server.

Tuesday, October 9, 2012

Ideomotor Action and Flow

In psychology, the concept of 'ideomotor action' suggests that the more you think about something, the more likely you are to actually do it, a self-fulfilling prophecy. 

For instance, when on a diet, studies show that simply thinking about the food makes you more likely to eat the food. Or when you are typing, if you think about messing up, you increase your chances of screwing up while typing. 

On the flip side, I feel most productive and happiest when I reach a psychological flow -- a state where I become so immersed in my work that everything simply else falls away. The work is challenging enough for me to derive a sense of fulfillment yet also solvable within the limits of my abilities. This state is the opposite of ideomotor action where you are self-consciously evaluating something or aware of what you are doing. It seems to me that most people live for this flow and derive great joy from it: the dedicated student who plays the violin for hours, the bodybuilder who lifts for hours, the programmer who codes late into the night. 

So for me, reaching a state of flow is an immersive experience without self-consciousness. Similar to how I enjoy myself the most in social scenes by being 'in the moment'.

Yet interestingly, what distinguishes humans from all other animals is this exact self-awareness and the ability to abstract oneself in one's mind (thinking about yourself thinking about yourself...). I would argue that a computer can never become self-aware because whatever logic that underlies the computer inherently precludes self-awareness of that logic (I haven't googled this though, so I'd love to hear arguments). Self-awareness empowers us to empathize looking from outside-in at our own actions. Or to analyze situations objectively and make adjustments based on our assessments.

It's curiously strange to me how something so essential to human productivity (the ability to be self-aware and improve oneself) can also handicap us.