Is Instagram's acquisition a (necessary) damage to the economy?

This question in the title can be further generalized to apply to all of the startups whose success or acquisition is questionable. Meaning that people either make fun of it or are not quite sure what the money has been payed for.

The question boils down to the usual struggle between the left and right. The left would appropriately make fun of the stupid market which chose to make a particular startup a success. The right would reasonably speak about the free market which is what it is. I'm not an economist and I deliberately chose not to adhere to one of these points of view (even professional economists disagree with only about 50% going in favor of market regulation). However it's an interesting question to answer in terms of our particular industry.

Everybody in the industry who does startups knows that even people who are working on a relatively useless social networking app (which Instagram is) are working hard and deserve to be rewarded. The nature of a startup doesn't make the day to day work any easier. On the other hand, we still question the behavior of the consumer and the market. It seems to me at times that market rewards startups that are mostly entertainment, but are not really solving any problem. The last success I can remember solving an actual problem, for which I personally paid money and which I would recommend to probably every person I know is Dropbox. Yet there's Twitter, Facebook, Instagram, Formspring... They don't matter. Or should I say they seem easy. Because anyone could have done them (at least before the scaling phase, and then money solves the scaling problem well). However I'm pretty sure not anyone could have done Dropbox.

So does it mean that the majority of our society is incapable of spending money on meaningful things? Probably yes. These days people want cool pictures, not education or solving real problems with software. But that's fine. Fine as long this keeps changing at some, even slow, pace. The hypocrites who tell you people are smart are wrong. Truth is people are always not smart and I'm not really smart either - I too have spent some amount of money on things I don't need in my life. But we are capable of becoming smarter and making our children smarter.

And if so, the ridicule coming for some of the startups may not change the behavior of the market overnight, but it may change it in the long run. I hope someday people will be as concious about the uselessness of certain things and wasting their time as they are now concious about the dangers of eating fastfood. Teaching something is a process. And so, the economy as a whole might have needed to spend those $1 billion payed for the Instagram. Hopefully, we will see more meaningful startups in the future. Unless, of course, this heats the bubble even more.

 

A webapp development manifesto

The way people make webapps today is a hard and complicated way. What I'm intending to do with this manifesto is to draw developer's attention to the path in which, IMO, the thinking and innovation must follow. But first, let me quickly define what is a webapp.

Webapp, as opposed to website is a real software. Two distinctive features of it are: being able to work offline and not ever refreshing the page (which is how it has to be, if you intend the app to work offline). Webapps that refresh the page are either websites or webapps done wrong. Github is not a webapp, it's a social website. 37 signals' apps are apps done wrong. And, in this respect, Rails is not a framework intended to create webapps, but rather websites.

Now these are the problems developers have when creating a webapp:

  • Having to write backend (usually in a different language), possibly duplicating some of the code. Nobody seems to be solving this problem. Developers either have to learn backend programming or find someone who does know it. And duplication most mentioned problem is, probably, validations, but there are, of course, others.
  • Syncing and http requests. I basically have to figure out when and how to send data to the server from the client, and then receive this data on the server and do something with it. Don't forget that all this should be properly tested.
  • Race conditions. Every developer has to figure this out on his own. Again, there doesn't seem to be a widespread standard and customizable way of doing it.
  • No standard OO simulation in js. It looks like we really can't do without familiar OO in javascript and every other framework tries to solve it on its own. You either have something like .create in Ember.js or go a long way of implementing classes on your own. Either way you're screwed, because everybody does it differently, as in the case of Ember.js, you're only supposed to be using this for the purposes this framework defines.
  • Lack of structure and not knowing where to start. Unless you're familiar with a javascript client environment already and how to bundle things together, you're screwed. In Rails, I could generate an app, run "rails s" and see something in the browser in a minute.

So we end up solving these problems all over again every time. Why? Why can't we do the following:

  • Write models that work both in the frontend and the backend (with the possible inclusion of specific backend modules like ORM), in the same language - javascript.
  • Make the data in those models sync automatically, without developer having to write anything except Application.save()
  • Have a built-in solution for some common race condition cases and a way to customize it. And I don't mean something as useless as reporting that "somebody on another computer has changed the document already, so we're not gonna let you save your changes".
  • Use JS.Class, or any other similar library as a unified way of emulating classes in Javascript.
  • Have a decent recognizable framework's file structure that would incorporate itself into novice's mind, like Rails apps strcuture does. Whatever it looks like, it should be clear how to run this app in minutes without diving into the require chain and how things bundle in order to produce a running app in the browser. Just like Rails.
  • Finally, pluggable widgets would make it really simple for those, who don't know any html/css or wish not engage in it until a certain time. Please note, I'm not saying widgets should be embedded, but rather there should be a standard way to develop and use them within the framework, with full accordance to the MVC/MVP pattern and at least one library of widgets shipped by default with the framework.

All this should make webapp development significantly faster. I'm not saying easier, as it is not always necessarily so, but definitely faster. 

Everything is incredibly hard

I believe your best bet is to think that everything in the world is incredibly hard. When you start acquiring a new skill or implementing something, you must adopt this attitude. First, let me give you a few examples.

Me and my friend, when talking politics, we rarely agree on the means by which to achieve the outcome we both consider desirable. For instance, lately we’ve been discussing the upcoming elections in Russia and how nothing has been done by the current government to eliminate corruption. He said “Given some political will, it would be really easy to do it”. Yet it is hard for me to imagine that most of those bragging about corrupted governments would be able to do any better than these governments, once they are in their shoes. For example, according to Samuel Huntington “in a society where corruption is widespread the passage of strict laws against corruption serves only to multiply the opportunities for corruption”. Huntington also points out that corruption becomes widespread only in societies that are currently modernizing and that it is actually lower in both traditional and already modern ones, because it gives way for newly formed social groups to get their way in a yet not adopted new political system. Thus, one may view corruption as an indication of active transition, rather than a sign of decay. Huntington may be right or wrong (I don’t have enough knowledge to judge that), but the mere existence of his work and many other works on political development suggests that political solutions are never easy. It took books and years and a great deal of research for people to back their theories.

Or let’s talk about sleep. How hard sleep can be? You take your 8 hours and you’re fine. Yet it’s an extremely complicated process for which most people really don’t even know the basic rules. Simply knowing them (without even following them at first) would undoubtedly rise the quality of their lives.

Or programming. I recently was working on a tiny form the sole purpose of which was to upload an image with some info. A friend of mine, who is familiar with webdev, but who is not really a programmer was making fun of me after learning that it took me 3 days to do it. It didn’t even occur to him, at first, that there may be complications that are simply not seen on the surface. You only get to know those complications when you actually engage in the project in question, but programmers learned to instantly adjust to the possibility of complications in any project and even without the knowledge of a particular project they tend to be very careful in estimating the difficulty.

Now this what I think is an extremely important meta skill - being conservative in the estimation of difficulty of anything. This proves to be useful even if the actual thing turns out to be not difficult at all. By assuming it is, you only save yourself some time, engaging in learning or doing thoroughly and diligently. If it is easy, you finish fast, but if it’s not, you also save yourself some time and energy that otherwise would be wasted on realization of that fact. As a bonus you will also never look like a dick to anyone who knows a great deal about the subject.

On a final note I would like to bring up the Dunning-Kruger effect, which basically says that people are actually capable of getting through the first steps only because they don’t realize how difficult the thing is. I certainly think this is true (having learned it the hard way on my own experience), but I also think that as long as people learn one set of difficult skills it is no longer necessary to deceit ourselves about the level of difficulty of other things. Rather it might be beneficial to think things are hard simply to filter out activities and skills we really don’t care that much about.

 

How I Cured Tendonitis

I had been dreaming to write this post one day for over 1,5 years. I finally can. It's about how I cured tendonitis and about numerous strategies I have tried. My intent is to share the experience of going through different strategies and helping others with this condition realize their options.

Tendonitis is a tendon inflammation, which could be caused by various reasons, including repetitive actions, in my case - typing. Because of the inflammation, you start feeling pains in the affected area, whenever the action repeats (and later, even when you're resting) and it then spreads to the adjacent areas. So, in my case, it felt like my whole hand hurt and I couldn't really point to a specific place. In short, it hurts very much to type on a keyboard.

I remember how I found out something was wrong. I was deploying a project and it was a nasty deploy. Many things went wrong, I was very emotional about that, but I didn't realize it was not because of all the bugs we had. It was because my hand hurt. And so I started doing the research.

Here I should make a small note, that I was living in Russia at that moment, so I was very reluctant to immediately go see a doctor. Even a good paid clinic here could turn out to be a scam and you have to be very careful to choose the one with decent doctors.So I decided to postpone that (I now realize, I was probably wrong) and do the research myself.

Among numerous strategies, the first and most obvious one was rest. Easy to say. Can you imagine a programmer who can't write a code? So, well, I tried using my left hand only when typing and switched mouse to my left hand (yay, skill learned! not so difficult, btw, only takes a week to get used to). Needless to say, it put additional pressure on my left hand and actually decreased my productivity. The affected right hand, however, did not get better. It hurt, probably because I was still using it to do other stuff. And, any movement aggravated the visious cycle of inflammation.

Then I had this crazy idea, that, well, if I can't type with my hands, then maybe I should switch to my legs. I thought, if this guy could play a guitar with his legs, then typing should not be any more complicated. In reality, it actually takes quite a dedication to train everyday and I soon realized it will not be as easy as switching the hand on the mouse. I still think it'd be very cool to learn to do that: imagine you can type while drinking tea and holding a mouse. I bet the productivity would rise.

At that time I was living in Thailand so I thought it would be a good idea to give massage a try. Of course, not every massage in Thailand is good. In fact the majority of those, who claim they are professionals only finished 2 week "certified" courses, which is like claiming that you're a programmer if you learned to make websites in some visual editor. Luckily, I was told about a good place run by an old lady with more than 20 years of experience. And she was really good. At $4/hour you got out a new person. Only thing is, it made my hand feel worse.

One day I realized that the fact my hand hurts so much simply aggravates my procrastination. I couldn't work because I felt miserable. And then I decided maybe it was time to see a doctor. I was even ready to go for a surgery (which is a last resort in treating the condition) - I later realized that docs anywhere would probably be very reluctant to offer surgery. They'd rather drug you to death. And, well, doctors in Thailand are fun: they would easily prescribe you a bunch of stuff you never heard of before. And there I was, googling a prescribed medicine which side effects included severe intestinal bleeding in some cases. I decided not to give it a try and it seemed an especially poor choice given the not so huge benefits it promised (not very effective anti-inflammatory thing).

One of the things I googled and never tried before was ice patching. I was ready to try anything now, so I started by applying ice to my wrist, but ended up putting my whole wrist in a container filled with ice and cold water numerous times a day. It helped. I could type with my two hands again. The interesting side effect was that my right hand became very insensitive to cold. After a month of daily pratice, I could hold it in an ice tub for 2 minutes (as opposed to 10 seconds with my left hand). But eventually, I realized it stopped working and pain came back. And so did the frustration and procrastination.

This summer I gave it a try with a Russian doc and, while not saying anything new to me, he gave me a brochure with an ad of immobilization splints for the wrist. Somehow I felt I should try it. I bought one. In a couple of days I was back to the keyboard. I even bought a second one for my left hand, which started to show similar symptoms. This splint was a life changer for me. For a long time I thought my only option would remain surgery, yet this seemingly simple device cured most of the pain and put me back to work. A few pictures of this thing:

Media_httpdldropboxco_nzign

Media_httpdldropboxco_ehgep

It basically immobilizes the wrist, but you can still do many things, including typing, holding objects and performing normal everyday operations. The only times I take those things off is when I'm at the gym or in the shower or otherwise using water.

What this story taught me, I guess, is that you should never stop. Not once through all this time I considered quitting to program or quitting the gym. It's an especially valuable lesson for those, who like me, are trying to make it on their own with their ideas and projects. I may not have created a successfull startup yet. But curing tendonitis sure is a success to me. Enough to keep moving.

How to choose a good non-fiction book

I recently got scammed on Amazon - I bought an especially bad book on SEO. I hate when that happens, not just because I lose money, but because I waste my time and attention reading the first chapters. And even though I learn to be better at guessing which book is good or bad, it seems to me, that having a good checklist that I always follow would improve my chances. Hope it will be helpful for someone else.

1. Search Google and Quora for "Best book on...". Most times, you probably know the name of the subject you wish to explore. For instance, say I'm interested in body language. I could go on Quora, type in "Best book on body language" and find this question with a couple of great books in the answers: Ekman is indeed a leading expert on emotions and his book "Emotions Revealed" is a well-written work; Navarro's "What every body is saying" is a bit more pop, but still a good one. Here you go. Google results are a little less useful in this particular case, but are worth looking at. This doesn't always work, but when there are some people recommending it on Quora, the book already has good reviews on Amazon and you don't have to worry too much about the quality of those reviews. I expect this to change as Quora community gets more affected by spammers. The idea for all times is to seek reviews in places where spammers have not put their leg yet.

2. Check reviews on Amazon (5 steps). Now, let's say you couldn't identify a good book from Quora or Google. You can now try Amazon, typing in your subject. So the best books are at the top of the search results and you click on one of them.

  • Read the negative reviews first. It's a good technique that allows you to see if the book is a scam - the content is copied, too generic or just pure trash. I've never seen anyone written "it's a scam" as a review for a really good book. People who don't like good books usually disagree emotionally, but they don't claim this book is a scam.

  • See if there are any 3-4 star reviews. The book on SEO I recently purchased had all 5-star reviews at the time and I was stupid enough not to pay attention to that. Evidently, those reviews were from the same guy under different accounts.

  • Read carefully through a couple of good reviews, see if they are too generic. A good-good review is the one that tells you something about the book. Like who would most likely benefit from it, what are the most important points discussed in the book etc.

  • Check reviewer's account and his other reviews. This scam book I bought had reviewers that only posted their reviews for 1 or 2 other books, in many cases the review was copypasted. Because it was too generic, it worked for both books.

  • Check if a good review is from a user who actually bought the book. Amazon marks those reviews as Amazon Verified Purchase.

3. Beware of kindle-only books. Because it is becoming increasingly easy to publish ebooks, you should be especially aware if a book has no paper copy.

4. Check who's the publisher. If it's O'Reilly or someone else famous, you're not likely to get an awful book. Until the situation with quality control for self-published ebooks changes, publishers will remain one of the lines of defenses from poor writing.

5. Google the book and the author. If I'm still not convinced, I'd google the author and the book. If the book has 20 5-star reviews on Amazon, there must be at least a couple of blog posts mentioning it, right? Not so for the scam-books.

6. The importance of cover is forgotten. If a book has a good publisher, it will invest in a good cover. If a book is self-published the author usually has 2 options: either have a crappy cover or a very simple cover. I'd trust the second option. A good example of it would be "Start Small, Stay Small" by Rob Walling.

7. See if there's an audio version. You don't have to listen to it. Just check Audible for an audio version. I'd give a book some bonus points if it does have one.

8. See if it's the first edition. Obviously, books which have multiple editions are more likely to be useful.

9. Always download free sample for Kindle and at the very least check the table of contents. Then, make it stay there for a while. Don't rush into buying it.

Would love to hear some other tips. It really feels like hard work to choose a good book and I'm looking to make it easier.

 

 

Tattoos

This post is not about tattoos, but I will start with them. I personally dislike them. Smaller ones, big ones, don't matter. I think there's nothing more beautiful than a clear pure skin. However, many people have tattoos. Many people whom I'm interested in have them. And you never ever make a mistake of telling them, even with your best intentions, that you dislike tattoos. Why? Because they can't change the fact they have it. They may dislike it themselves, but they can't just remove it completely and easily.

And so, my point would be, that it's probably not a very good idea to tell people about something they can't change. You are not validating them. You're only invoking the negative feelings amongst which there probably would be some sort of implicit anger directed at you. And the words you've spoken don't make them happy in the long run.

I easily said to a person "Listen, you can't actually do anything valuable, because you have no skills and knowledge, so you can't fully understand what I'm talking about". Because I knew that though it may hurt at the moment, it's in this person's power to change this in the long run. And as mean as it may sound, it has to be said sometimes (in a very friendly manner, of course). However, I wish I kept my mouth shut about the tattoo. And I wish I could tell one thing from another more often.

 

Being there does not define you. Doing it does.

This travelling hype, you know, is really annoying. But it's understandable. People travel because they think this makes their personality richer and somehow defines them. However, it really doesn't. Just like going to a museum doesn't make you smarter and making photographs with your expensive camera doesn't make you a photographer. That's being there. It gives you inspiration and excitement, true - when I travel I normally have a higher level of new ideas per week. But just like ideas need execution, inspiration needs applications. The trouble I'm having with it is that the best application people make for it is telling everyone where they were. That's so counter productive.

Doing it means getting measurable results. I met all those people, I learned all those things, I wrote all that code. That's something that makes experiencing things meaningful. I'm not saying that there are no such things that you can experience which may have some uncertain unmeasurable results in the future which may still be important. But we'd be fools not to try to find a more concrete meaning.

So what I'm saying is in short: come up with how you utilize your inspiration out of experiencing things and that should make you richer. Don't waste it.

 

Are there inappropriate jokes?

So I've been browsing okcupid again and in some girl's profile I read "do not message me if you think rape jokes are funny". That's interesting, I thought. Because, honestly, I don't have any specific opinion about rape jokes. Maybe some of them are. But, if you ever try to tell a rape joke to a victim you're probably be the biggest asshole in the world, even if it is indeed hilarious. So it seems that the degree of fun of the joke doesn't matter at all.

My assumption would always be that many jokes may potentially hurt someone. Sometimes you can easily tell if it would hurt the person - like some of the race jokes, for instance. In other cases, as in religion or profession jokes, it may be harder to guess. And so, the harder it is to determine whether a joke is appropriate, the more cautious you would have to be.

Truth is, people who say that racist or rape jokes are totally okay just don't feel insecure about being subjects of those jokes. However, every person has something to feel insecure about. Once you make a joke about it, even if it's perfectly acceptable by the community morals, you're crossing the line. And that is what should be taught to people, not that some sorts of jokes are a taboo and others are not.

The Culture Of New Things

When I was buying an iPhone a guy who sold it to me said: “Don’t put it on its back, screen down is better”. I asked “Why is that?” and he said “That’s because the glass is so good you can’t scrape it, while the back of the device is vulnerable.” I didn’t know if this was true, but after a couple of days I started noticing scrapes on the apple logo and I tried putting it screen down. Then after a while, two scrapes appeared on the screen, so I stopped putting it screen down. Also, I thought what a ridiculous kind of an idea this was - always remembering to put it screen down not to harm the apple logo. How sick is that? Oh it is. And it’s simply irrational. Yet we do it. So this iPhone case led me to make a small promise to myself to never care about the things you buy. I pay money for them, they will get old and look less shiny sooner or later. That’s what happens. However, that doesn’t mean they will work worse. And all I need from a device is to work. I bought an iPhone because I was sick of stupid Nokia software, not because I wanted apple logo. If I buy a car, I’d do it because I need to move around fast, not because it’s cool. I mean, yeah, sure, it feels kinda nice to have something new, but that feeling of pride for the thing you buy is childish and usually goes away very fast (as you get older than 19), so I just don’t pay attention to it. I payed for the damn thing and it’s going to make my life easier, not more complicated because of the special rituals.

This kind of behavior is very common. People think because they payed for the thing, they must be responsible and take care of it. But that’s nonsense. By doing so you’re paying even more. Interestingly, people don’t follow this behavior with some things - musical instruments, for example. Probably because those professional musicians who play them realized that it’s really about the sound, not about the look.

I’m not saying you should buy second hand (although this may also be appropriate, nothing bad about it). I’m saying stop being a slave to your own purchases. Just use them and forget about how they look.

Hey, follow me on twitter to save some more money!

Why we don't need an alternative to Facebook

After the recent Facebook announcements a lot of people started thinking if we needed a better, more open alternative. To tell you the truth, before I even saw the first comment suggesting this, I had a similar thought, but then quickly discharged it. It happens so that you intuitively feel this would be a fail, but slightly later you realize why. So I summed it up and I hope it helps someone to not waste their time and build a time machine instead.

1. There’d be no real value for people in the project if it’s going to be just an alternative.

2. Most people don’t care about privacy issues that much until it really hurts them. Even when it hurts them, it seems like it’s easier for them to keep using same old thing, rather then get to know something new (remember Internet Explorer?).

3. Even if people care for privacy, there’s no sign Facebook is using their data in any illegal way. Making a panic attack of it doesn’t make an alternative project any better.

4. Geeks don’t need no Facebook. I don’t have stats, but I got a feeling that most of us were perfectly fine with emails and IM’s, right? The whole idea of Facebook is about easily finding people you wouldn’t find in google. But since regular people are not going to switch to your alternative project, what else do you need it for?

5. Paying bills, not talking about profitability, is a huge issue. Facebook had problems with it, but you’re claiming you’ll be nobler than Facebook. How the hell are you going to make money than? Asking for donations just because you’re not evil? Wikipedia managed to do that, but it was haaard, and they’ve actually been doing a unique and useful work, whereas you’re just a clone-project. So good luck with that.

To summ it up, I have a problem with this idea of remaking something just to make it less evil and more noble, while in fact there’s really not so much evil in the original thing. It may work to some extent, but it will not be profitable to the extent to give a normal person enough motivation to keep working on it.

Hey, accidentally, I have a twitter account that you can follow. If you already follow me, then you can unfollow me and then follow me again, to give a breath of fresh air to our relationship.