Sunday, May 31, 2009

Жизненное

Третий день провожу с друзьям в Pasadena. Завтра уже нужно собираться и ехать домой.

Сейчас лежу и думаю как оценить вообще время проведенное здесь. С одной стороны хорошо, потому что многих давно не видел, посидели, попили водочки, поели хоровац (шашлык по-армянски — в принципе, почти такой же как и русский, разве что у армян культ мяса более силен :).

Три дня в отеле обошлись около $189 со всеми сборами, прямо напротив библиотеки Pasadena City College. Отель, честно говоря гавно полное, но чисто, уютно. Сервис гавно, не побоюсь повториться. Однако мы с утра до ночи где-то шастаем, поэтому не особо переживаем. С другой стороны хотелось бы больше внимания. Деньги уплочены. Но так понимаю что ожидать чего-то приличного можно начиная от $90 за ночь, хотя не уверен что оно мне играет роль.

За два дня в Pasadena умудрился законфликтовать на дороге с двумя ублюдошными латиносами. Чем тупее и беднее народ, тем меньше культуры у него. Тем более, за рулем. В этом плане мне не хватает "пост-советского" беспредела. Как ни называй, но когда человек реально знает что сейчас я встану поперек дороги, достано дубилово и проведу политбеседу — все-таки сознание гораздо реже покидает его. В данном же случае быдлам-малолеткам тыкать факами из окна, как получилось со мной, не грозило ничем — я ехал в машине с женой, ребенком, и совершенно ясно я бы не исполнял ничего безрассудного, да и не вышел бы бить морду. Звонить в полицию и требовать сатисфакции как-то взападло. Однако все чаще и чаще думаю над риторикой жизни. Нужно выработать линию поведения в таком случае. Но так, чтобы и самому не оказаться крайним, ибо подобные уроды чаще всего звонят в полицию первыми, если пахнет жаренным.

Ну да бог с ними. В очередной раз предъявлял своим друзьям, с которыми за два с половиной годом стали почти одной семьей, претензию по поводу не знания армянского языка. Они — армяне. Я ожидал что за это время, я по-крайней мере начну понимать. Однако мои знания ограничиваются че (нет), бареф (здравствуй), инчкачка (как дела), хоровац (шашлык) и ара (непереводимая игра слов :). Довольно бедный запас.

По-большому счету это и все. Кроме общения, пьянства, шашлычничества, были в паре магазинов, купили бутылку Courvoisier VSOP (подарочный набор с запанками), собирались выпить, но не смогли, и собственно все. Страшно хотел поехать в Santa Monica, Beverly Center в Los Angeles и Roder Drive в Beverly Hills, однако на все времени просто не хватает. Завтра еще постаремся заехать за сигаретами, к армянам в Glendale — они промышляют контрабандным товаром :) — и домой.


Bye-bye, traffic in LA.

Third session @ Founder Insitute

The 3rd session at Founder Institute will be devoted to Name & Branding. As always, we will have three mentors for tomorrow. They are:
  1. Bryan Thatcher, CEO of Empressr,
  2. Jay Jamison, Founder and CEO of Moonshot, and
  3. James Hong, one of co-founders of Hot or Not, listed under Troublemaker title now. :)
I really know nothing about all of them, but James Hong. Somehow his startup was so popular that a lot of people used to mention it. I actually first heard about him when I was living in LA, and he and his business were often discussed during (rare) entrepreneurship events. It would be very intereting to meet him in person and ask some questions.

Well, so now few thoughts and ideas on what branding and naming are, and how did I use them in my previous ventures before. The first thing I should say, that I never took either academic or research approach on this. I tried to keep the name of the company pretty related to what it's actually doing, but I should say I wasn't paying to much attention to it. Of the most important things I wanted to have were:
  1. Conciseness — I don't like long names (well, but I had something like "Extra Communications Company" before :) I also prefer "classic" name to be used with dot com at the end. However, I'm willing to choose extremely weird spellings, like nam.es for the short.
  2. Easiness of saying and spelling — the name should sound good and should be easily spelled out. It should easy enough to be said by either native speaker or not. When you say the name of your company, nobody should ask you about it again. It should be aboslutely clear. And when it's said, it should be easy enough to type it in the browser's location bar, without saying "How do you spell that?". Oh, and when you read it, you should be able to say it right away from the first try. :)
So how do I do that? The short name is always a headache, especially, as there are no more 5-letters domain names left in dot com. And 6-letters is already too much. :) That's why I prefer to start from #2, and get back to #1 when I have a good idea about the name.

So, I use to start with a set of names, written down, which can be related to the nature of the business. They don't have be connected. Normally, they should be a legal English words (like web, search, etc), but not a Web2.0 abbreviations (like tumblr, loopt, etc). We'll have a chance to deface them later on. :)

I'm not good at shortening names to Web2.0 notation, so as for now, I think I don't have any names like that (well, maybe but the Tweeplies).

So, when I have the list, I'm starting to looking for a good and available domain name. You need to be able to read it, and actually, have some associations with the words, that will bring you to the right direction. It's like when you're looking at the lemon-like fruit, you are ready to something like citrus, while you might not know what is it exactly.

Normally, I'm ending up with the several lists of 15-20 available domain names, that can also be a company name. I'm trying to avoid more then 5-7 combinations of the same words (or pairs of the words). This keeps you pretty limited to one meaning, while we can have a thousand of them.

When I have the lists of names, I'm just emailing them to about 5 friends of mine, quickly describing the idea of the business (very very lightly!) and the list of domain names. If there is a good association with the nature of the business and the name, you don't need to know the idea deeply, as it makes you a little bit biased. This something that I believe to be a place for improvement, as I think I need to rely on opinion of more then 5 people.

From the other hand, I'm not sure if I need to spend that much time on choosing the name, as just a name doesn't do anything. It's not a brand, it's not a trademark, it's nothing, but a name. You can make it strong, or you will forget about it as soon as it fails. Well, I know, there is also a different point of view, and some people suppose that good and proper naming can add more maturity, trust in your business, which Web2.0-like stuff can be totally unacceptable for a serious business. I can't take a solid position on any of these approaches, but I believe that something like Cornigerous, Inc. is a bad choise, no matter what you're doing.

I don't really have any specific questions for the third session of the Founder Institute. However, I'm not less excited about it, as I want to learn more about other people naming approaches. Except, the only question I might have is:
  1. Did anyone experienced changing the name of the company, and having it going up or down because of that? (I'm not talking about screwing up with brand, but keeping in mind that everything else is the same, but just a different mame.)
I'm also going to take some time and discuss this with purple start team members. Four heads are always better then one, right? :)

Saturday, May 30, 2009

Не могу понять...

...как можно держать в отеле персонал, который совершенно не говорит по-английски (бл#ть, мы же в США?), который будит меня в 9 утра в субботу чтобы сделать мне clean или выбить из меня желаемую фразу no clean today, и после того, как было посланы нахер, действительно туда уходят, и больше не возвращаются.

Что еще непонятнее, то почему когда возвращаюсь я в номер и ложу ребенка спать, почему же эти убогие создания начинают долбиться в дверь (3 часа дня!! где вы, сука, были раньше?), причем их не сдерживают ни бумажки do not disturb на ручке, ни явно закрытая на внутренний замок дверь.

Ей богу, первый раз я сталкиваюсь с таким. Не поленился даже встать, открыть дверь и повторно обложить х@#ми. К сожалению, меня так и не поняли. После созыва консилиума из числа трех человек персонала, из которых ни один не говорит по-английски, мне задали сакраментальную фразу для Калифорнии habla espanol?.

Нет, ну это был прямо п#$здец какой-то. Мало того что по мне видно, что я ни раз ни хабла, тем более испаньол, так и вообще мой ответ вызвал неподдельное удивление коммитета. Разведя руками, прямо как Равшан и Джамшут, представители это удивительной расы решили ретироваться приговаривая ok, ok, ok...

С нетерпением жду продолжения дискотеки. И это все в отеле которых входит в десятку лучших в Pasadena. Представляю, как выглядит десятка худших, хотя меся назад мне кажется я уже слегка ознакомился с одним из таких. :)

Monday, May 25, 2009

Cracking the GMAT

So, the GMAT story continues. I'm constantly failing to keep up with a stable and a fixed schedule for my GMAT. I would say nothing saying that I'm getting mad on myself because of not being able to keep it the way I want.

However, too many things are happening around, a lot of things need to be done at my job, I need to invest a fair amount of time for the Founder Institute program, plus a number of other things that still need my time and input.

Did I say that I'm married and have a handsome son, who also seeks my time? He doesn't get enough as well. (Hopefully, it helps him to respect it.)

Well, one should say that the right time planning would be an answer, however, I always was good enough with scheduling my time, so it's more about something else.

Whatever, down the road with Cracking the GMAT 2009, and I'm still pretty concerned about the value of it. I already saw the number of sample questions in the end of the book, however, I was actually looking for the hardcore cracking tips and tricks, more on the theory side. 50 pages more, and I'm still reading about pretty basic algebra problems with the list of hints that don't really make much sense to me.

I'm especially frustrated with a very often mentioning so called "scratching" and "plugging in" things. As I've been told, the GMAT takers are pretty limited with amount of scratch paper, and even when they're given it, you have to manage the available space on the paper wisely — we won't be given an extra paper, as well as we don't have anything to erase, but our own fingers and shirt-sleeves. So why should we learn to scratch a lot, when we need to train the brain instead?

From the other side, why are the book authors are idolizing "plugging in" so much? Well, this technique can save you if you have problems thinking in x, y and z, but you should better train how to do this. I could hardly find any example which is a proper usage for "plugging in". The most of these cases were fairly easy to solve with making up an equation. (And I am not the brightest guy in math!)

So I'm pretty disappointed and starting to look for other books.

Friday, May 22, 2009

Second session at Founder Institute

Well, after the terrific first session at Founder Institute, new week comes and our new topic is "Validate your idea with industry professionals". Sounds interesting, huh?

Especially, if I'll mention our mentors for it. They are:
  1. Joe Betts-LaCroix. I don't know pretty much anything about him, except that he's Founder and CTO of a just ceased operations OQO. And this is going to be something everybody would be happy to hear about. Could be a great lesson to all of us. I also know that he's a Harvard and MIT graduate.
  2. Ken Ross. Once again, I know almost nothing about him as well. He's told to be Founder and CEO of ExpertCEO, MIT and Stanford MBA graduate.
  3. Trip Adler. He's a serial mentor for Founder Institute so far, as he was one of the mentors for the first session. Well, yeah, I already know much more about him now. He looks to be a smart guy, ignoring the age.
Hopefully, you're already jealous.

Well, so let me get back to topic of the session. My understanding is that we're going to listen how these serial entrepreneurs learn about the market before turning product into a real life. Personally, I found this to be pretty challenging problem, because the wrong market estimation can turn your product into "the great thing that nobody wants".

So, well, let me share with you my experience in this subject. Previously, I had a number of startups myself. However, I'd like to make a stress on only two of them.

One of them was our first company in Ukraine, telecommunication and Internet service provider Extra Communications (often abbreviated as Extracom), which we built, run, broke even and sold in 8 months. I can't get into deep details on this, but overall it was a great experience, but not really anything else. We didn't make a fortune, but we were lucky to get the investments back (it was self-funded by myself, and "triple F" — Fools, Friends and Family, well, maybe without Fools though :).

We were the local ISP for high-speed Internet. Those days the "Internet over the phone" service was pretty mature, but the phone companies were pretty bad. This mixture made a lot of people mad. And there were no DSL on the market, available to home users, yet. Mostly, because it was still a headache to acquire the phone line, which will allow to run DSL speeds on it. Yes, we're doing something close to what cable companies are doing through their cables, but we had no such service there, as well.

So we decided to built a high speed Internet provider aiming the multi-family residential buildings (it's like 20-40 entrances per building, 10 floors per each entrance and 4 apartments per each floor). And the typical building was about 800 apartments each. Internet service was a very first draft of our idea. Actually, we're planning to create a huge, very high-speed social network of neighboors, with streaming music and movies, TV and radio channels, games and whatever not.

Building an ISP is a pretty expensive thing with a long-term payoff. We had little money, so we tried to keep the cost of experiment very low. So all of us decided that we need to research the market first, although we're sure there is an interest in such service. So what did we do? First of all, we developed a plan of how we would like to start our expansion. We choosed the buildings with the maximum amount of apartments, came up with the subscriptions costs and estimated the minimum number of users that should express intent to subscribe, for us to start into this venture.

I really don't remember these numbers, but they were rather modest, we lowered a bit a number of available apartments, but raised a little bit higher the minimum number of users who'd like to subscribe. Second, we had to get a phone number where people should be calling for sales. We got a mobile phone, with free local incoming calls. As far as I remember, it was about $60 or $70/month per month. That was pretty expensive, but we could keep the phone number if we'd like to run into this venture later, and we didn't have to have an office. Why not the office? The cheapest and two-persons-only reconstructed studio like hole-in-the-wall could cost us about $200/month plus landline phone service of $10/mo with no chance to keep the phone number later on. And somebody always should stay there, as the most phone calls, as we discovered later, were coming after 7pm and till 12am (yep!)

The next thing was advertisement, and we purchased a "running text string" TV ad block, which was supposed to run during prime-time on the local TV channel. It wasn't expensive, but we've got only 1 or 2 calls while having it running. So, that was unacceptable. And we decide to go into printed ad. It was regular A4 papers, printed on our own printers, with description about what we do, our plans, prices and phone number. Then, we split into teams and start to go through every single apartment and put the paper into the door. That took a lot of time, but that was great. We started to receive calls almost the same one or two hours when one of our teams were "attacking" the apartments with "SPAM". ;)

And, yeah, we decided that 30 days would be enough to make a decision about are we going into it or not. Well, we've got a little bit less than planned number of "intentions to subscribe", but during the last meeting decided "what the fuck, lets do it!".

To crown it all, I should say we had some kind of formal marketing research, that had to be done before we'll get into the venture. We did a good job on estimation of the numbers. We were aiming only 20% of potential customer base during out research, so we had a potentially growing market. And as we figured later, a lot more people actually was aware about us, but were just waiting for the "second call". To make sure this is not a scam and not just a marketing research. :) So the conclusion is — taking time for the market research is not a bad thing and not always a waste of time.

Okay, now my other startup I'd like to tell you about is Atomkeep. It was one of my first startups since I moved to US, which was remarkable by the facts that:
  1. It was built in less then a month.
  2. We've spent absolutely nothing on marketing, but got about 10,000 of subscribers in the first month of our release.
  3. We've got our server crashed because of being featured in Life Hacker. :)
  4. Eventually, we've got featured in Read Write Web and Mashable (no crash anymore!), and
  5. Atomkeep was named one of the Top 50 Web Tools 2008 by LAPTOP Magazine.
Well, I can come up with more facts about why I believe Atomkeep to be an interesting thing to tell you about, but why bother? :)

As for Atomkeep, we choose a very differnet approach and we did absolutely no market research at all. We had a few reasons for that. First of all, we had the problem of social profile synchronization ourselves. I like to try things, but hate to keep them updated. Why bother anymore? For the second, we had a group of about 5-10 close friends and fellows, who expressed the same need — which was to keep the track of accounts and keep the updated. And the cost of experiment to enter this market was unbelievable low. It was our time only and that's it. So what should we wait for?

Frankly speaking we're very excited about Atomkeep and stupidly didn't pay attention to many minor details which become very major bottlenecks eventually. But this is not what the story about. :)

I can't come up with a good conclusion for our market research affair with Atomkeep, as we basically didn't do that, but if we did, I don't really see how would it save us from our mistakes that we made. But that's the nature of Web. Things tend to happen very fast here. You're given only a moment to make a decision and rock the world, or somebody else is here in line waiting for his turn.

So, well, I've been there and done that, so once again, I'll be very excited about listening how to approach markets and estimate the potential payback before bringing the product for real. Hopefully, I'll get all answers very soon.

My questions for the session would be:
  1. How to research the Web market without sharing your idea? Should we be afraid to share it?
  2. How to make a preliminary research and gather "expressions of interest" without having a real product done?
  3. Should we be afraid of waking up next day to make our market research and finding out that somebody already released the similar product, just because he though "screw it, lets do it!" ?
Maybe something else will come later on.

Sunday, May 17, 2009

My mentors for the Tuesday

Few words about the mentors, whom I will be listening to this Tuesday, as a part of Founder Institute program. They are:
  1. Trip Adler. I know that Trip graduated from Harvard and joined Y Combinator winter program right after the school with the Scribd. I was paying attention to what his startup does, as he was entering already established market (by my mind) with some pretty clear leaders on it at this time. I know that he was introducing a new experience to the same problem, but I never though it will be enough. While I found his startup interesting (comparing to other ventures produced by YC program), I was really wondering how far he can go on with it. As the time shows — he went far enough. :)
  2. Philip Kaplan. I wasn't very aware about who Philip is, except that he's founder of AdBrite advertisement network. I tried it once, but it didn't outperform the AdSense for me. I also know that Philip was a founder of Fucked Company, which he decided to abandon. I never used to be a fan of it, anyway. And one of the recent projects of Philip that I happen to be familiar with is Fast140, a Twitter fast typing game. Fun, but not really addictive for me.
  3. Jason Calacanis. I think first I met Jason at one of the startup events (few years ago) in Los Angeles. I don't really remember what was that, but it wasn't very interesting. Among that, I use to read Jason's maillist — I find it rather interesting. I heard that Jason is a very "weighted" person, and he performs a very deep investigation before starting something.
The list of mentors is impressive, so I'm preparing myself to a very productive session.

Saturday, May 16, 2009

Coming up with idea

I was one of the first applicants selected in the pioneer round for The Funded Founder Institute program. It's about to start shortly (actually, in two days only) and all students will have a chance to ask their mentors questions beforehand. I'm preparing to that, as I'm always have a lot of questions, however, not always ready to ask them in advance. :)

So, the first session is devoted to vision and ideas, and, hopefully, will answer to the question: "How to come up with a great idea?". Personally, I do not know, yet. If I knew, I would be running the successful business right now, by implementing that great idea. (You bet!)

But first things first, so lets start from brainstorming or coming up with a rough draft of idea. As Albert Einstein said:
We can't solve problems by using the same kind of thinking we used when we created them.
So my first question to the mentors would be:
How do you put yourself in the condition to brainstorm and think creatively? Do you need to brainstorm at all or your ideas are coming as they come?
Well, I need to put a disclaimer here. I'm not a "boyscout" type of the guy. I had my past (as the most of us), and in my early ages I tried a lot of things. (I don't find those things appropriate for a productive activity at all.) So, I'm not asking about drugs or some illegal activity. (Not only about drugs, as it's still would be interesting to hear though. :)

So now it comes to the brainstorming process itself.
How does it look for you? How big is your brainstorming group and how you chose people for it?
Well, there is one more question:
How would you brainstorm with people when you cannot meet in person?
Let me give you an example. While I have some local friends here, most of them are very far away for IT. More then that, they are pretty far away from entrepreneurship. And those who share my passion about the business, they're too busy with their own ventures. But, lucky me, I still have some people who are sharing my passions, but the life put us pretty far away from each other. How could we brainstorm new ideas then?

More to go.
How to find the perfect idea and make yourself stick to it?
Well, it's an easy shot. It goes without saying that there are some ideas that have "Wow"-factor, and other ones that seems to be good enough, but doesn't turn you up too much?

I have a personal example — one project was keeping me from sleep and I was forcing it every single moment — it was so great and terrific, has got an impressive resonance around, but I failed to monetize it. It's like something you love, spend money on it and keep alive just because people love it, too. But you can't get anything back from it (and maybe you never will). But it has a great Wow-factor.

From the other hand, I had a different venture — with a clear monetization scheme, pretty interesting, having some traction already, but — no Wow in it. Mean, every time I need to make myself re-acknowledge the interest of idea.
So what's better? The pragmatic approach with a straight path, or your passion with no good idea where is it coming to?
And now another thing comes.
Is it distracting to try several ventures at the same time? Is it bad?
Nowadays, it is the high tech and very agile world, things tend to change very fast. You just can't wait while you first idea will break the bank or loose, and you can't put all eggs into one basket. You're done with something, and ready to do a new something, while the old something is being cared now by your designer, QA, PR or whatever else. But isn't this something that adds a distraction and follows you the wrong way? Should you stay focused on something one?

And I don't know if this is a question to upcoming session or market research one:
How do you evaluate your idea? Are you going into it if you love it and that's it, or you first make sure everybody else will love it (and pay for it!), too? How do you do this?
And finally:
Which idea is better — something that was already done (similar, or badly executed, whatever), or something that is unique and never been done before?
First one seems to be more common, as nowadays the cost of experiment is really low. People can try things many times per day at low or no cost at all. However, choosing this path you'll pretty likely face a competition and will have to steal customers (can be pretty hard). From the other side, the second option — a unique and never done before idea — first of all is a very rare thing, and for the second asks a question: is there any market for it at all?

I also have a question (or proposition :) to Adeo and all other people who bring the program together. Now, when you own our personality tests, you're having a powerful mechanism to mix and match people. Are you willing to promote team building and cooperation between the students, possibly leading to new business ideas and merging companies?

Let me paraphrase it. You made a stress during the application process that you don't really care about the idea, but about a people. And I like that! This is the Institute and people would be learning something new. There are plenty of high class entrepreneurs around that aren't good in putting the idea on the table. Why should they be eliminated (like this happen in many other programs) when they can be taught or partnered with idea generators instead?

Adeo, I can see at least two options here. First of all, as it was said, you have our personality information, so you can use it to group people in a smart, academic way. (But you might need to involve some PhDs in psychology and whatever not to do this though. :)

Another option is to publish short bios of all students who'll be in program, so they can mix an match themselves (like, choose 5 people whom you want to work with, blah-blah-blah). And you'll make a final changes to make sure it works.

I don't know how big group of people it's worth creating. Personally, I think something like 5-10 students in the group would be good enough.

Yeah, I know, I know — I tend to write relatively long texts. (I don't do this often though, so I'm also inconsistent. :) And as Max Levchin told me once:
I think a critical skill for a startup founder is brevity ;-)
And I can't agree more with that. But while this is my blog and nobody is forced to read it (although very encouraged to :), so I'll use it to sort out and group my thoughts together.

Feel free to ask more questions. So here comes mine in a nutshell:
  1. How do you put yourself in the condition to brainstorm and think creatively? Do you need to brainstorm at all or your ideas are coming as they come?
  2. How does it look for you? How big is your brainstorming group and how you chose people for it?
  3. How would you brainstorm with people when you cannot meet in person?
  4. How to find the perfect idea and make yourself stick to it?
  5. What is better: the pragmatic idea with a straight and clear path or something you're passionate about with no clear idea where is it coming to, but willingness to go through it?
  6. Is it distracting to try several ventures at the same time? Is it bad?
  7. How do you evaluate your idea? Are you going into it if you love it, or you first make sure everybody else will love it (and pay for it!), too? How do you do this?
  8. Which idea is better — something that was already done (similar, or badly executed, whatever), or something that is unique and never been done before?
  9. Adeo: Are you going to group people into the teams (possibly rotating within time), by personal preferring or personality test results, to cooperate together and generate new and, potentially, brilliant ideas?
Hopefully, I'll get them answered very soon. :) Oh, no, I forgot one more question:
Can I have a private session brainstorm with my mentors? :)
P.S. Meanwhile, I'm going to think it over and maybe I'll come up with even more questions for the mentors. I'll do my best to keep the post updated as well.

Going forward with GMAT

Well, I'm going through the Cracking the GMAT 2009 Edition right now. I'm a little bit confused. I've passed through the hundred pages of the book, which is literally 20% of it and made some marks barely twice. I can't say this is good or bad, but definitely it'd be better to get the book with 20% discount then. :)

Right, some people may find it useful though. I can't estimate the level of all people who're approaching GMAT — so spending 20% of the book (so far) with very-very basic material could make some sense. However, I think my initial level is pretty low (for the range of scores that I'm aiming at), so such a cracking book only "cracks" my time, but not skills.

I had no chance to determine the level of questions that this book has (as they say, more then 250 practice questions are included). However, I hope they are good enough, otherwise, I'll be more sorry about waste money in addition to my time.

So far, I feel that it's more important to do more tests then read more theory. (Read: buy books with practice tests, prefer more advanced ones!) Many rules (tricks, hints, whatever you call them) that I see are repeating each other, so you basically learning nothing new.

Stay with me, it looks like I'm going to be back to GMAT review books very soon. :)

On the other note, today is a pretty hot day here in San Francisco Bay area. While nothing extraordinary comparing to what I used to experience in Southern California (Pasadena), it's still a little bit too much. Tomorrow is promised to be hotter. I feel like I'm ready to vote for the artificially regulated micro climates, where you can get sun bathes and swim on the sea side, but rest in cool area while at home. (This may sound like a signal to attack for obsessive environmentalists, but I don't care, really. I'd prefer not to destroy things around me, but my life and comfort takes the higher priority anyway.)

Wednesday, May 13, 2009

Issues with RoR streaming from controller

Well, I am facing some issues with "on the go" streaming data from controller using Ruby on Rails. I've tried almost every instance to query about this problem and try to find an answer. Nothing works so far.

I've posted multiple questions on the Twitter. Previously, I was getting replies very quickly. But today is not my day.

I've tried IRC. I have to acknowledge it's dead now. Very dead, even that it keeps tens of people signing on and off every single minute, as well as keeping more then 500 of signed people on.

I've tried the discussion group on Google. I didn't receive any comments back to my issue, yet. But I still hope. :)

I don't know if my blog will be any better — actually, I doubt so as it's never been a RoR lair. But I'll give it a try and post my problem here. Hopefully, I'll get it nailed some day and share the solution with you.

So, I need to stream a lot of data from the controller and there is no need for a view. Data generates on the go, and can take pretty long time to complete (say, from 1 minute to 3-4 hours). I doubt that it worths generating a string (the output can be hundreds of megabytes) and pass it to the view (ouch).

The way to use render :text => ... is not going to work for me, as it can be called only once in controller, so not a real "on the go" streaming.

Neither store to file and then streaming it with render :file works. Several simultaneous uses of the controller can generate pretty huge files for every instance, which is no-go (tens and hundreds of gigabytes of free space for temporary files?). Anyway, it's not "on the go" as well. (Well, partially. It'll be streaming once the file is created. :)

The other way is to render :text = Proc.new { |r,o| ... }, however, somehow it doesn't seem to be working for my case. First of all, it complains about some random each ... do blocks (that work just fine when the blocks are not passed to Proc.new). When I'm commenting them out, I'm getting things like that:

Wed May 13 17:34:39 -0700 2009: Read error: #
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:414:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:96:in `const_missing'
/Users/white/repo/vurvimport/app/controllers/do_controller.rb:380:in `preparesql'
/Users/white/repo/vurvimport/app/controllers/do_controller.rb:630:in `rendersql'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_controller/response.rb:153:in `call'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_controller/response.rb:153:in `each'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/chunked.rb:37:in `each'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb:74:in `process'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'
/Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb:34:in `run'
/Library/Ruby/Gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3

I think the similar situation is also mentioned in tickets. I'm not sure that this is really a bug though. I'll keep an eye on that.

Monday, May 11, 2009

Twitter is finally public!

No, I didn't mean IPO for Twitter. :) What I meant is that public can finally benefit from Twitter content. But let me give you an example. I'm following Ben Parr and few minutes ago I saw his tweet about the food:
I so desperately want Thai or Chinese food right now. I'm getting some tonight no matter what. What should I order?

Well, while I am not a big fan of Chinese food, I just found myself also wanting something like this. So what are my options? I can ping Ben in a few hours again, however, why should I wait? I can keep an eye on what is sent to Ben almost in real time. How's that?

Just an easy click at Tweeplies gives you a feed of all his replies, which you can keep an eye on. Yes, it's easy. Yes, it's nice. :) Bon appetite!

Sunday, May 10, 2009

Blogging vs Twittering?

Alex talks.: Ever wanted to see all replies to some tweet?

My brother (once again :) wants to abandon his blog. While I can't say that I never wanted to do this myself, right now, I am very sure I'll never abandon mine. (Never say never, though, as this is too long for a mere mortal.)

Speaking on this note, do you agree that Twitter can replace blog? I don't.

Twitter is an instant messenger with elements of exhibitionism. Twitter s good for public speaking if instant messenger is your thing. Blog is blog. It's also public thing, but sends you to the next level of officialism. Blog is more a PR tool, than Twitter. (Please, don't start talking about new age marketing. I know. But whatever will you say, Twitter makes it personal.)

Twitter is here for news headlines. Blog is here for content.

So if you here more to follow the hot news, welcome to the Twitter-world. If you here to provide grounds for the hot news, you can't stay away from blogging. I want to take the best of two worlds, and I bet you I will.

Saturday, May 9, 2009

Ruby trick

For those who are trapped into the same problem as I am.

obj.atr

Block below is valid for the block above:

def x(obj, atr)
    return obj.send(:atr)
end

Have fun! Please, let me know how will you use this code, if you find it useful at all. In example, I can see that it can be used for something like this:

p User.find(:first, :condition => {:userid => 1}).name

This will drop an exception, if there is no such user with id 1. However, you can call it through the wrapper:

def wrp(obj, atr)
  if obj.nil?
  then
    return "N/A"
  else
    return obj.send(:atr)
  end
end
 
...
 
p wrp(User.find(:first, :condition => {:userid => 1}), name)

This might be awkward, but works well enough.

P.S. Here is the original question posted in Twitter and replies to it. (Thanks to Tweeplies.)

Friday, May 8, 2009

Чайник


Жизненно...

Thursday, May 7, 2009

One year round

I can't believe that my blog is staying alive for 1 year as for now. Well, it's not like I'm blogging for one year. I think I start blogging on regular basis starting 2004 or something like this, while doing occasional posts for a few years before that. However, I was doing a lot of more writing before 2004, being published at BYTE.com, BEA dev2dev, O'Reilly Network, etc. So, technically, posting to the blog didn't adjust well with my daily schedule. :)

However, my current blog is only 1 year old. It's a pretty new one. I wasn't very consistent in my relations with my own blogs. I used to try out different platforms, leaving old posts careless, I used to change design, change names and just removed blogs whenever I found them silly. (I constantly find my old posts silly, but I made a promise to myself not to remove them. :)

Hopefully, this blog will keep its right to live, in one way or another.

Wednesday, May 6, 2009

Few weeks in a nutshell

Well, I'm still under impression of Steve Ballmer speech at Stanford. :)

I was trying to pursue almost everyone I know in this area to join me for this seminar, but still went alone, after spending almost two hours in a 20 miles commute (my bad taking 101 south, but I never had any problems before and I'm attending ETL seminars weekly).

Never mind, even that I didn't bring anyone with myself, Memorial Auditorium had more then 1,700 people there. I was lucky enough to have a "student" ticket (students were seated first and in front of the stage, while public attenders were taking free spots and the upper level).

Not much things happening elsewhere. I still keep doing my GMAT sample tests, however, couldn't stay consistent with that, so my studies were a little bit unstructured (easy said). So it didn't work very well, so I'm going to squeeze my daily schedule to get back to pretty stable timing and plan.

I'm a little bit confused about the speaker for the next seminar. One of the Stanford's calendars shows Jeff Hawkins, and another one — Larry Ellisson from Oracle. While both of them worth listening to, Larry is a pretty big person. :) We'll see though.

From the other not, I had a trip back to LA on the last weekend. It was super great, I stayed with my family in the hotel (this one sucked, but was so darn cheap, and I had to be ready f0r it) and we spent the most of my time in Pasadena, with my friends. (Finished a 750ml bottle of french cognac with a friend of mine, but would rather prefer beer for that night - didn't have beer for a while.)

Basically, that's all and I'm going to keep posting more regularly, otherwise, it's hard to refresh the memory later.