We are finally a real open source company

For years, Zimbra called itself open source, but in reality it, all it did, was to published released code dumps from time to time. Many attempts to make outside code contributions simple have been killed by various owning entities (Yahoo, VMWare, Telligent) and we were also stuck with Perforce and ReviewBoard, which we could not open to the outside world.

Over the last year we have been breaking apart large perforce projects into smaller git repos (and then combining some of them again), rewriting internal tools and build scripts, separating Network code from FOSS code. Now, we are finally a real open source company. All our FOSS code is on github and anyone can submit pull requests. It’s all here: https://github.com/Zimbra/

Buying Facebook posts on Fiverr

This week I experimented with paying to people on Fiverr for sharing my Facebook page. Two people shared Gotit.media Facebook page page on their personal pages, one person shared it on his own fan page and another person shared in a bunch of groups that add up to 12M members. My goals was gaining likes for Gotit.media‘s Facebook page and overall results are rather disappointing. I was also running another experiment on AdEspresso in parallel with the experiment on Fiverr, but I can isolate ad-generated likes from likes generated by Fiverr. These are the results:


likes in “paid likes via ads” column correspond to the number of likes generated by ads; “organic” likes are mostly results of Fiverr experiments, with possibly about 5 likes per day being generated organically by our followers.

Sharing on some comedian’s fan page with 643K fans (4th row in the table above) was the least effective – only 16 likes that day. Second least effective effort was sharing our page in 80 groups totally 12M members (3rd row in the table above). Although, if I calculate the effectiveness of the audience, this one is by far least effective (only 34 likes for 12M members). The most effective effort was sharing on some gal’s personal page (row 1), followed by some guy’s personal invitation to like our page sent out to 5K of his fans (row 2). Judging by the uptick in the number of “unlikes” during the following days, I am guessing, most of these new followers will eventually drop off and stop paying attention.

I was curious why sharing in 80 groups with so many members was so ineffective, so I checked where our page was shared and found out that all these groups are geared towards useless posts that no one pays attention to. Some groups even have descriptions like this:


so… that’s just good ol’ link exchange spam in Facebook’s version.

The first two experiments (posting on personal page and inviting friends to like) result in $0.04 – $0.05 per like, which is OK. However, my guess is that most of these “fans” are not our target audience, so they are probably worthless.


3G speed in Namche Bazaar

I didn’t really need a 3G sim card at any time during our trek in Himalayas, because there was always wifi available to check email once every couple of days and I did not want to be online any more often. However, I was curious how fast the 3G speeds are up there. On the way down, when we stopped for a night in Namche Bazaar, I walked into a telecom distributor store and got a 3G sim card. They did not have nano sims, so they had to cut the micro sim to fit my iPhone SE. The guy at the store borrowed the cutter from someone else and in about 30 minutes after walking into the store I had a connected 3G sim card. Here is the result of the speed test with Ookla’s Speedtest app. As you can see it is almost 3Mbps up and 1.5Mbps down. Granted though, this is the speed to a server in Kathmandu.


The 3G speed was much faster than any of the WiFi hot spots in Namche, including our lodge (Sakura Lodge).

Here is the speed of free wifi at Sherpa Barista coffee shop and bakery:


And this is the speed of WiFi in the lodge where it costs 500 rupees for the night:


Even though Ookla shows 440Kbps down and 190 Kbps up, the real speed must be much slower, because I could not upload even a single photo.

I am voting “yes” on these California propositions in 2016

Prop 51

I am voting “yes”, because leaving school funding to local governments increases segregation and enforces the circumstances that lock people into the SES that they are born into.

Prop 53

Perhaps, this adds more bureaucracy, however, I think that if the whole state is going to get into large debt for a bond – the whole state should be able to decide.

Prop 54

Yes, I would like state legislators to publicly report on what they are about to write into law and make it available for people to review. I do not think that adding a 3-4 day buffer to the time required to write something into law is going to stifle the legislative branch of our state.

Prop 55

This seems to be working so far, so I don’t see a reason to stop it. Therefore, I am voting “yes” to extend this tax.

Prop 57

After having read the proposition text I do not think there is any substance to opposition’s statements. This proposition does not take away the power of law enforcement to lock up whoever they are able to lock up already. However, this proposition allows more juvenile criminals to be released for parole. I believe that juveniles should be kept away from prison system as much as possible, because they have the most potential to avoid the life long path of criminal life. I am also disgusted by manipulative and exaggerated scare rhetoric of the opposition.

Prop 58

I vote “yes”, because the reality of English-only education is too harsh and does not allow enough flexibility for education. I have not encountered this first hand, because I came to the US after having studied English for 13 years. At the same time, I have seen how much pain and struggle English-only education has caused to kids who did not know the language. I like that this proposition still requires education institutions to ensure English acquisition as rapidly and effectively as possible, but I don’t think that lack of English proficiency should be getting in the way of acquiring other types of knowledge in school.

Prop 59

OK, this proposition made me lough. It is not an enforceable measure and I am not sure how it even made it onto the ballot. This is pure political “grandstanding”, but whatever – I am all for repealing Citizens United, so if we have to use the ballot for advertisement purposes – so be it.

Prop 62

Even though I think our judicial system is one of the best on the planet I still do not think it is good enough to take away a person’s life. Yes, I do not like the high cost of life sentence. And yes, I do think that some people should be kept away from the rest of us. However, a mistake that sentences a person to death cannot be fixed. So… until we invent an “undo” button for killing a person I am voting against the death penalty.

Prop 63

No, I do not have a problem with my neighbors owning guns. However, I do want them to pass comprehensive background checks and I do not want anyone nearby to be carrying around large-capacity ammunition magazines. I also wish there was a measure that required people to actually learn how to use fire arms before they are allowed to acquire them, but that’s a whole other story.

Prop 64

Alright… alright… I know that you small time growers are opposed to it and you enjoy your niche unregulated market. However, I am not inclined to pay $100 for a fake MJ license over Skype by lying to a doctor about headaches or whatever.  I also want the state of California to rip the tax benefits of wider pot sales. As a bike rider, I would much rather encounter a stoned driver than a drunk one (hint: stoned people are sl00owww). I also want some more oversight over how you grow your weed and hereby pledge to keep buying it from local growers and not from big tobacco companies. I would like to be able to eventually buy a bag of weed at my local farmer’s market or a grocery store with “Certified Organic” stamp on the bag. So there… lets stop the prohibition already.

Prop 67

This is already working with large grocery stores in San Francisco, San Mateo and many other places and I cannot say I miss those plastic bags.

I am voting “no” on these California propositions in 2016

Here is the list of California props that I am voting against this year.

Prop 52

After having read the text of the measure as well as arguments on both sides I am pretty sure that the funds collected from this measure will not help anyone who needs medical help, will not reduce the cost of healthcare and will likely increase it. The measure looks like an elaborate financial scheme the results of which will be hard to track.

Prop 56

I am not a smoker, and I don’t know a lot of people that struggle with high cost of cigarettes. However, here is why I oppose this measure:

  1. After having read the arguments and the text of the proposition I am not convinced enough of the funds collected from this tax would be allocated to programs fighting tobacco related health problems
  2. I think that tobacco products in California are already expensive enough
  3. $2 per pack is a huge increase from roughly $6

Prop 60

OK, this is just a bad and random idea that seems to have one purpose of opening another door for more lawsuits.

Prop 61

I was conflicted about this measure for a while, however I have decided that this is a rather terrible way to regulate prices and is likely to backfire in a way that will make drug prices higher for a lot of people instead of making them lower for some people. While I agree that drug prices should be lowered, I think the way to lower them is not by pegging prices to the VA. These are the problems with this approach that I don’t like:

  1. Gives too much power to VA negotiators
  2. Invites more corruption
  3. May raise cost for VA
  4. May raise cost for non-state agencies

I am also fairly sure that if we try to keep a lid on drug prices by pegging them to a number that one federal agency has been able to negotiate, the sellers will likely find ways around this measure in the ways that will be harder to contain. I would like to see a policy change that pushes prices down in a way that uses market forces collaboratively rather than trying to police the market. A policy that I would like to see should increase competition in the drug market, it should also streamline the market and reduce the distribution and production costs.

Prop 65

This proposition does not help the environment and instead redirects money to one specific fund. This is just a money grab given the current state of regulations of plastic bags in California. Instead, I am voting yes on proposition 67. Maybe this is selfish, but I have too many reusable bags at home already and this will give me an additional kick to keep a pair in the trunk at all times.

Prop 66

“No”, because I am against the death penalty and I am voting yes on proposition 62. I simply do not trust the judicial system enough to sentence anyone to death.


Wifi speed at Places Restaurant & Bar in Kathmandu

Back in Kathmandu, stopped by at Places, which is becoming our favorite place here. Awesome vegetarian options, lots of space, some inventive cocktails, board games and fast internet. Here is the test from OpenSignal app, which tests “true speed”. The true speed is 3.4MB down/1.6MB up. My guess is that if I tested it with Ookla’s Speedtest it would probably show 10MB down, but 3.4MB seems real. I updated a bunch of apps, checked email – all very fast.


A guy across the room from us was  video chatting with someone, although I am not sure if he was using the wifi or tethered his tablet:


Wifi speed in Phakding, Nepal

Last month we were tracking on the EBC track in the Himalayas. To my surprise, there is ubiquitous wifi and cell reception on the whole track. The speeds are not so great though. Here is the speed test result from our lodge in Phakding. Ookla’s Speedtest app reports 0.98 MB/s, but that’s the speed to the nearest provider server in Kathmandu.OpenSignal’s test showed similar results: 0.8 Mbps down/ 0.2 Mbps up. Not bad, considering this is a place where you have to walk for a day from the nearest airport and for a week from the nearest dirt road wide enough for a car to pass. Then again, 3G speeds up here are 2-3 times faster and another guest at the same lodge was able to use 3G for Skype.


This was the speed at Sherpa Guide Lodge, which is one of the first lodges on the way up. It is a new lodge, built this year.

Test Driven Development as a cure for Programmer’s Block

I was looking at a blank screen trying to wrap my mind around ways of moving some of the ephemeral data that Zimbra currently stores in LDAP into SSDB. Setting aside the part where most of SSDB documentation is in Chinese, that’s not too big of a deal, but I was just drawing a blank… Should I start with a Factory class? Do I need to maintain a singleton instance of JedisPool?… Until I remembered TDD. OK, I thought, this is a good opportunity to go back to the basics, despite what the creator of Ruby on Rails wrote 2 years ago (TDD is Dead Long Live Testing). In any case, I’ve clearly gotten too lazy about writing tests first. So instead of looking at a large task and trying to figure out where to start I switched my perspective to that of someone (or rather something) that will be using my adapter. What is the first thing it will need to do? Ah, write an attribute to the storage. So I wrote a failing test that is assuming that it can pass an attribute and a value to my adapter for that to be saved in SSDB. What’s next? Obviously – read an attribute from SSDB. In 10 minutes I had a basic set of tests. Now, all I had to do is make those tests pass one by one. I didn’t need to look for a starting point – I was already building. Once I implemented “set” and “get” methods one by one I was able to see what else is needed and by the end of the day I had a working subset of functionality. A week later most of the code I’ve written in the first day was completely re-written, but still everything was well tested and guaranteed to be functioning.

Comparing this experience to writing code first, adding tests second, then re-writing code third to fix the tests, I think TDD is actually saving a lot of time on catching mistakes early. I am sure that taking it to an extreme and writing a unit test for every method and function leads to over-abstraction as David Heinemeier Hansson wrote, just as it is with taking any principal to an extreme. Still, thinking from a perspective of someone or something that will use your code before writing it seems to help eliminate quite a bit of waste and save time.

Forget raising the first round – try building a business.

Dear first time founders, please stop being so laser focused on raising your first round of funding. Sure, the first round is hard, but it is nothing compared to the second one and it is even easier when you compare it to the task of actually building a growing business.

I am reminded of the first time I went solo skydiving in Volokolamsk some 17 years ago. Back there/back then, the first jump was not a tandem with an instructor. We jumped solo after 6 hours of training. Most had to be pushed out by the instructor (he didn’t wait too long). One guy was so scared, that the instructor could not push him out. The one thing that all of the skydivers agreed on though – the first time is hard, but the second time is the hardest.

Activation – SAAS achilles heel

If my calendar sync service was a real business it would be B2C SAAS with subscription model and as such it is already indicative of activation problem as described by Justin Mares. People are signing up (where did they find me?), but they are not adding calendars to sync. I dunno why. I asked – they did not respond. I looked at the logs – no answer there.