I am not sure if I got the numbers right but, assuming constant load of 20K users (not realistic but what the heck) pinging the server every 5 seconds (did anyone send me roses? no? did anyone send me flowers? no? so on) with each ping weighing about 1K, around 10-20 terabytes of traffic per month would result which would cost around $3-5K/month.
Other option is to get 10 dedicated servers, each with 2T bandwidth/month budget and handling 2K concurrent users, would handle the traffic and load handily. At $200 per server per month, price tag is $2K/month, cheaper than EC2 but more manual labor is needed to scale up.
Considering that 20K concurrent users is in the ballpark of Second Life, I think these numbers are good but they are specific to my apps which is task-oriented. For presence-oriented apps like Pownce, numbers would be much worse because they would have massive number of simultaneous users, even at lower ping rate (60 seconds for Pownce I think).
BTW, I am notoriously bad with numbers. This post is a disguised attempt to uncross my eyes with readers' help. ;-p
RightScale and Amazon EC2
I've been meaning to get some hands-on experience with Amazon's EC2 (yup, still in beta) and S3 but just couldn't find the attention span until I came across RightScale. Signing up for EC2 and S3 was a breezy one-minute process and I haven't yet dug deeply enough to encounter complications but RightScale is supposed to let me ease over them and launch new server instances like one would rubber duckies in a tub.
I'll have to see for myself but it's good to know that at least OpenAds guys are having good result using RightScale/EC2 combo to test OpenAds in a wide-array of configuration combos. It's admin console seemed a tad sluggish (I wonder if they are using AWS as well and whether this is a common characteristic of AWS-based sites?) but I was impressed with a wide array of AMI images I could launch with just a few button clicks.
Um, yes. I am dating OpenAds but it could easily turn out to be a one-night stand as usual. We'll see. ;-p
TwitterGram Flash Client?
While looking over TwitterGram web service doc, I read:
The ideal client for this service, it seems, is Flash, because it can do the MP3 recording and has XML-RPC support.
I am not sure if Dave knows this but Adobe crippled audio recording in Flash so that bits from microphone are always sent directly to server-side <strike>*without* compression</strike> using a proprietary codec (NellyMoser). This means server has to capture and encode the bits into MP3, not the client. Yes, high server load should be expected. And since bits are sent in RTMP stream, your backend choice is limited. Adobe is expensive. <a href="//osflash.org/red5" target="_blank">Red5</a> is java-based. I've heard good things about <a href="//www.amfphp.org/" target="_blank">AMFPHP</a> although I am not sure how much work is needed to use it to record audio.
If I had the ears of those in charge of Flash roadmap at Adobe, I would whisper:
<ol><li>Enable client-side audio and video recording (MP3 + <a href="//www.speex.org/" target="_blank">Speex</a> or better to start with) </li><li>Add UDP-based notification listener support (<a href="//en.wikipedia.org/wiki/STUN" target="_blank">STUN</a> to punch out)</li></ol>
Sure, there will be issues but these two features will kick many doors down, enabling new web applications practical. What separates toys from tools is the difference between possible and practical.
Update: I thought the audio was a simple variation of WAV but apparently Adobe is using NellyMoser, a proprietary mono-channel codec optimized for real-time speech. I am not sure if it's better than Speex (I doubt it) but that doesn't matter until the format is documented and free license offered to Flash developers. Fugger.
Toyota Prius and Fireworks
I took my wife and son to Magnussen's Toyota of Palo Alto to test drive Prius this afternoon. I liked the white Prius we test drove but my wife wasn't that comfortable with the front view. If I had to pick on something, it would have to be the rear camara view which was disorientating. But overall, I liked the car.
It was when we sat down to negotiate that trouble began. Their numbers just didn't make much sense so I asked them to break them down. All I got was breakdown into more mysterious figures. I told them that I felt screwed by Honda last time yet Honda numbers were better than the numbers they were showing me. After a brief "let me talk to the boss" game, a short guy showed up and proceeded to explain why I shouldn't compare Honda to Toyota. Blah blah blah. I told him I didn't care about those things.
At that point, the guy just blew up on me, yelling at me that he wasn't interested in selling and that I should go buy a Honda instead. Me being me (I have a temper but it takes a while to accelerate), I just watched him yell and stomp away. Then my wife started yelling back and my son was looking rather disturbed. Wow. When I asked a stunned sales person who the asshole was, I was told that he ran the place. Mr. Magnussen himself? Nah. Probably more like Mr. Magnussen's Big Mistake.
I still like Prius and can heartily recommend it but I am afraid I can't recommend the Toyota dealership unless you like that kind of fireworks. Hmm. Maybe it was a July 4th special event or something.
Mac Tip: When VPN Breaks Internet
I have yet to come across VPN software I didn't hate but it's difficult to avoid using them. If you use Mac's Internet Connect to create a VPN connection and you can't seem to access Internet while VPN connection is open, it's because:
- Mac's built-in VPN client defaults to routing all network traffic through VPN.
- VPN network you connected to blocks outgoing traffic to Internet.
The fix:
- Run Application > Internet Connect.app
- Select Connect > Options… menu command
- Uncheck "Send all traffic over VPN connection."
Doh
Fake Facebook Invitations?
In the past few days, I've been getting Facebook invitations from people whose names I don't recognize, names that seem generated like Jessica Gentleheart or Elenor Goldriver. When I look them up, they usually lack pictures of themselves or have little or no friends. I think Facebook will have to start modelling user activity patterns to curb abusive behavior intelligently.
If you know me, I would appreciate a few words in invitations to help me recognize you, hopefully information that is not publically known like shared experiences or events. One major benefit of building social networks this way is that it makes phishing difficult. After all, anyone can masquerade as anyone on Facebook. All one needs is a name and photo to get started and, even if the real person shows up, it'll take time and effort to clean up the mess with little risk to the pretender.
Eclipse as a City
I think Eclipse has finally reached a major crossroad with Eclipse 3.3 (Europa). Until now, Eclipse was a lot of fun as a tool as well as a community but its complexity has now reached the threshold that distinguishes New York from New Jersey.
If Eclipse is a boomtown which countless developers and companies continue to pour into, it now looks like LA, tiny downtown surrounded by endless expanse of suburban neighborhoods indistinguishable from each other other than by their names. Although one of the key pioneers behind Eclipse is Eric Gamma, one of the four authors of the infamous Design Patterns book, I feel that not enough attention is being paid to the original concepts that inspired the book, concepts captured in books by Christopher Alexander:
- The Timeless Way of Building
- A Pattern Language: Towns, Buildings, Construction
- The Oregon Experiment
I've only read the first two (highly recommended, perfect for camping trips) but the basic idea is that a town is like a symphony in which houses, streets, rooms, doorways, and people's lives play parts. Design patterns make up the language of understanding, a tool essential for unravelling, rendering, and communicating complexity.
I suppose one could look at many Europa packages as ethnic neighborhoods but to me they look more like those bewildering avalanche of high-rise apartments in South Korea. It's a place to live but not a place of life.
Eclipse 3.3 Final Released
As expected, Eclipse 3.3 shipped. Packaging is more confusing than previous releases though. There are four packages for Java developers to choose from and one for C++ developers.
- Eclipse IDE for Java Developers (78MB)
- Eclipse IDE for Java EE Developers (123MB)
- Eclipse IDE for RCP/Plug-in Developers (150MB)
- Eclipse Classic (137MB)
- Eclipse IDE for C/C++ Developers (62MB)
I think differences are only in selection of features and plugins IDE starts off with and not in some fundamental ways due to some unknown conflicts. It would be nice if Eclipse team stated this explicitly and provided more detailed info on differences. As for me, I am going to go with the one for RCP/Plug-in Developers although Classic is apparently the same as old SDK packaging.
Japan’s Apology and Self-Denial
US House Foreign Affairs Committee approved H Res 121 which is a non-binding yet face-losing resolution that calls for Japan to apologize for coercing women in occupied Korea and China into sexual slavery during World War II. My personal thanks goes out to the resolution sponsor, Representative Michael Honda, and supporters of the resolution around the world.
Japan has apologized before but it was neither formal nor sincere enough. And what's the point of apologizing when Japan's leaders keep denying and rewriting the truth and history? A full page on Wall Street Journal two weeks ago, paid for by 42 Japanese politicians, is a good example.
Frankly, I am not sure if they are fooling themselves or just trying to fool rest of the world. I fear it is the former and self denial will only worsen as time passes.
Virtual Goods and In-game Economy
It's kinda amusing to read notes from Virtual Goods conference transcripts (via Scoble). When I was researching (ahem) World of Warcraft, I spent a lot of time at the Auction House trading to get a first-hand understanding of forces at work. I started trading common goods then uncommon goods, eventually trading rare and epic goods exclusively and cornering markets, dealing with server population age shift, taking advantage of migration surges, and riding the supply and demand cycle. I got so good at it and made so much gold that I started giving gold away to guild (We Know) mates, buying their mounts, paying for materials to help them build skills my guild needed and finally for MC outtings supplies. After I quit, my son was shocked that I erased all that gold off WoW's spinning disk plates. Unearned gold spoils the experience.
To do well at AH, one has to understand the in-game economy and player psychology intimately. But, apparently, participants of the Virtual Goods conference haven't invested much time into understanding the forces at work inside the virtual worlds, instead opting to project their understanding of Web 2.0 economy into close yet vastly different in-game environment.
WoW golds are not roses or virtual furnitures. They are more real because the needs are more real. Virtual goods they are talking about are words and desires expressed visually. In-game goods are more about tools, needs, respects, fashion, and…time. I have a lot more to say but, for now, I will say this:
It's like marriage, you have to live it to know it.
BTW, I think WoW has peaked and tiring fast. It'll take years to die though with so many people onboard.