biicode:一个现代的 C 依赖管理器
Biicode (just the company) post-mortem
Posted on August 11, 2015 by biicode Team
This is certainly a bad moment for every founder, investor and employee of a startup: the moment to certify the death of a company. Fortunately, as the title says, it is only the company what is in trouble, biicode as a product/technology is at the moment in good health and operating properly. However, in our commitment of transparency with our users and stakeholders in general, we think it is important to let you know.
Biicode is a great project, but it is also a startup, a business. That means that we hired people to develop the platform, and expected that at some point our revenue would be able to pay that people and also hopefully generate some profit. But it didn’t. We have been running on our investors money plus some public government loans for the last years, and we have been able to develop what we think is an amazing technology. We were running out of cash, so we started to work on a new funding round well in advance. But finally we were not able to close it, and now our expenses and burn rate are not sustainable anymore, so we must continue without employees and face a new stage that will most probably mean closing the company.
As a startup we have made many of the errors a startup typically makes. An important one was probably that our technology was a bit opinionated about software engineering processes, and we failed to adequately and timely listen (that means also filtering out lots of noise) to user feedback. Even if we realized it almost a year ago and started to make huge changes to the platform through our 1.0, 2.0 and 3.0 releases, that was not enough.
We were able to gather lots of users love from the open source community, and blog posts talking nicely about us started to flourish since last November’14, so we were able to grow about 25% month over month in activity (measured in API-calls to our server, that means, people actually using the tools to code with them), for the last 6 months.
But still, our total number of registered users was not as large as expected (now reaching 4000), and the most important reason: we failed to upsell the service and get enough premium paying customers. Practically all of the above activity was from open source users. But production C/C++ development can be quite different from other technologies, projects are very large, and introducing biicode in those projects is quite a time investment, and timings for new projects and introducing new technologies can be large too. Too large for a startup, even this technology could be a great business for a bigger corporation with more time and resources. We understand this can be a major concern for prospective investors, so we certainly do not blame on the VC ecosystem (in this case the Spanish/EU one) neither have we thought that our luck would be different in the USA.
I will write soon more detailed posts about all the many lessons learned in this startup adventure, but a very important one I don’t want to skip here is to acknowledge and be grateful. First I want to thanks the biicode team (you can find most of them http://web.biicode.com/meet-the-team/), especially those that have been “bleeding” with me the last months: Luis (Laso), David, Fran, Maria, Jordi, Manu and Miguel. Thanks for your passion, support, friendship, and the indecent amount of extra work hours. You are the best team a tech startup can dream of.
Many thanks to our investors Big Sur Ventures – Necotium and Fundacion Jose Manuel Entrecanales, who believed in biicode and have supported us for so long. They have both been great investors, but I want to give very special thanks to Jose Miguel Herrero, our lead investor from Big Sur Ventures – Necotium, for his incredible support and commitment. KPIs, go to market, strategy, funding, hiring,… Even these tough days, when you get to know the real values of the people around you, we have learned so much from him thanks to his continuous involvement and support. If you have a great project looking for funding here in Spain or even Europe and you are not pitching Jose Miguel you are definitely missing an incredible opportunity.
And finally, you, our users: I don’t have words to say thanks enough. You have supported us, invest your time to help us improve thanks to your feedback, comments and suggestions. You have used biicode for your libraries and your projects, making our dream of such a tool a reality. Many of you have even said that you love it. We were C and C++ developers, and seeing other colleagues use biicode and loving it is the best reward we could have, and you gave it to us. I am very sorry we have not managed to fully guarantee its survival in its current form.
But we have not given up, fortunately, biicode as a project/technology is alive, and even if our resources are lower, there are still hundreds of active users enjoying it. We have released a full stack as open source (MIT license), includi
Biicode(只是公司)验尸
发表于2015年8月11日by biicode Team
对于创业公司的每一个创始人,投资者和员工来说,这当然是一个不好的时刻:证明公司死亡的时刻。幸运的是,正如标题所说,只有公司有麻烦,biicode作为产品/技术是在身体健康和正常运行的时刻。然而,在我们对用户和一般利益相关者的透明度承诺中,我们认为让您知道是重要的。
Biicode是一个伟大的项目,但它也是一个创业,一个企业。这意味着我们聘请人们开发这个平台,并且预计在某个时候,我们的收入将能够支付那些人,也希望产生一些利润。但它没有。我们在过去几年里一直在投资者的资金加上一些公共政府贷款,我们已经能够开发我们认为是一个惊人的技术。我们用完了现金,所以我们提前开始了新的融资。但最终我们无法关闭它,现在我们的费用和燃烧率不再可持续,所以我们必须继续没有员工,面对一个新的阶段,很可能意味着关闭公司。
作为一个创业公司,我们犯了许多创业公司通常犯的错误。一个重要的问题可能是我们的技术对软件工程过程有一点看法,我们未能充分和及时地监听(也意味着过滤掉大量的噪声)给用户反馈。即使我们几乎一年前意识到这一点,并开始通过我们的1.0,2.0和3.0版本对平台进行巨大的改变,这是不够的。
我们能够从开源社区收集很多用户的爱,和博客帖子谈得很好关于我们从2014年11月开始蓬勃发展,所以我们能够增长约25%月的活动(以API-调用我们的服务器,这意味着,人们实际使用工具来与他们代码),在过去6个月。
但是,我们的注册用户总数并不像预期的那么大(现在已经达到4000),最重要的原因是:我们没有加快服务,并获得足够的高价付费客户。实际上所有上述活动都是来自开源用户。但是生产C / C ++开发可以与其他技术完全不同,项目非常大,并且在这些项目中引入biicode是相当时间的投资,并且新项目和引入新技术的时间也可能很大。对于一个初创公司来说太大了,即使这个技术对于一个拥有更多时间和资源的大公司来说也是一个伟大的业务。我们理解这可能是潜在投资者的主要关注点,因此我们肯定不会指责VC生态系统(在这种情况下是西班牙/欧盟),我们也没有认为我们的运气会在美国不同。
我会很快写出关于这次启动冒险中所有许多经验教训的更详细的帖子,但一个非常重要的一个,我不想跳过这里是承认和感激。首先我要感谢biicode团队(你可以找到大多数http://web.biicode.com/meet-the-team/),特别是那些在过去几个月里与我“出血”的人:Luis(Laso ),David,Fran,Maria,Jordi,Manu和Miguel。感谢您的激情,支持,友谊和不雅的额外工作时间。你是一个科技创业公司可以梦想的最好的团队。
非常感谢我们的投资者大Sur风险投资公司 - Necotium和Fundacion Jose Manuel Entrecanales,谁相信biicode,并已经支持我们这么久。他们都是伟大的投资者,但我要非常特别感谢何塞Miguel Herrero,我们的大投资者从大Sur Surures Necotium,他的令人难以置信的支持和承诺。 KPI,进入市场,战略,资金,招聘,甚至在这些艰难的日子,当你了解周围人的真正价值观,我们已经从他那里学到了很多,由于他的持续参与和支持。如果你有一个伟大的项目寻找资金在西班牙或甚至欧洲,你不是投球何塞·米格尔,你肯定错过了一个难以置信的机会。
最后,你,我们的用户:我没有话说足够感谢。您已经支持我们,投入您的时间帮助我们改进感谢您的反馈,意见和建议。你已经使用biicode为你的图书馆和你的项目,使我们的梦想这样的工具成为现实。你们中许多人甚至说你爱它。我们是C和C ++开发人员,看到其他同事使用biicode和爱,这是我们可以有的最好的回报,你给了我们。我很抱歉,我们没有充分保证它以目前的形式生存。
但是我们还没有放弃,幸运的是biicode作为一个项目/技术是活的,即使我们的资源较低,仍有上百个活跃用户享受它。我们已经发布了一个完整的堆栈作为开源(MIT许可证)。
Biicode是一个多平台的C/C++依赖管理器,通过Biicode可以管理你希望在项目中使用的库文件(如Curl、Catch、Fann、OpenSSL、OpenCV、POCO、Boost、Libuv、GTest等)。Biicode是通过 CMake 来配置和编译项目的,并且支持很多IDE、版本控制系统和编译器。
新特性
- biicode通过写合适的 #include 语句来实现源代码的集成管理.
- 文件级别的依赖管理,重用已存在项目的任意文件.
- 共享和发布到biicode仅需一条命令.
- 无需打包, 使用源码进行模块管理.
最新版本
最新发布版本可以在这里找到,发布于2015年5月19号。
安装步骤
大多数平台都提供了安装文件,若果喜欢的话仍可以选择从源码安装。从源码安装请参考如下几个步骤:
1 准备biicode的代码拷贝:
Shell
1
|
$ git clone https://github.com/biicode/biicode.git
|
2 初始化项目子模块:
Shell
1
|
$ git submodule update --init --recursive
|
3 使用pip安装相关依赖:
Shell
1
2
|
$ pip install -r client/requirements.txt
$ pip install -r common/requirements.txt
|
4 biicode 入口点在biicode.client.shell.bii模块。你可以通过入口函数bii.main
来使用bii
脚本的相关功能,而你仅仅只需在使用时更改下biicode代码拷贝的的引用路径:
Shell
1
2
3
4
5
6
7
8
9
|
#!/usr/bin/env python
import sys, os
biicode_repo_path = "" # ABSOLUTE PATH TO BIICODE REPOSITORY FOLDER
sys.path.append(os.path.join(biicode_repo_path, "../"))
from biicode.client.shell.bii import main
main(sys.argv[1:])
|
Shell
1
2
3
4
5
6
7
|
$ bii --help
SYNOPSIS:
$ bii COMMAND [options]
For help about a command:
$ bii COMMAND --help
To change verbosity, use options --quiet --verbose
...
|
开发资源
协议
biicode遵循MIT开源许可证发布。
官方网站:https://biicode.github.io/biicode/
开源地址:https://github.com/biicode/biicode
biicode:一个现代的 C 依赖管理器的更多相关文章
- Carthage:去中心化的Cocoa依赖管理器
Cocoa的依赖管理器,我们已经有了CocoaPods,非常好用,那么为什么还要创建这样一个项目呢?本文翻译自Carthage的Github的README.md,带大家来了解一下这个工具有何不同之处. ...
- Carthage - 一个简单、去集中化的Cocoa依赖管理器
作为一名新时代的90后猿 在swift大势所趋的时候 怎能不会Carthage 配置它其实很简单 下面我们一步一步来 (1)打开你的终端 输入 brew update brew install c ...
- 我的第一个springboot应用+maven依赖管理
第一步:使用Eclipse创建maven工程SpringBootFirst:工程目录如下 第二步:编写依赖文件pom.xml <project xmlns="http://maven. ...
- 保持一个会话 添加 HTTP Cookie管理器
在线程组中添加 http cookie manager即可 场景:登录后点击刷新简历
- Gradle系列教程之依赖管理(转)
转自Lippi-浮生志 :http://ezlippi.com/blog/2015/05/gradle-dependency-management.html 这一章我将介绍Gradle对依赖管理的强大 ...
- Gradle实战教程之依赖管理
这是从我个人网站中复制过来的,原文地址:http://coolshell.info/blog/2015/05/gradle-dependency-management.html,转载请注明出处. 简要 ...
- PHP的包依赖管理工具Composer简介
composer是一个基于项目的依赖管理器,负责将php项目的所依赖的包和库安装在项目的目录中,默认不会不会安装任何数据到全局.他用于取代之前pear工具 1 安装Composer curl -sS ...
- Gradle系列教程之依赖管理
这一章我将介绍Gradle对依赖管理的强大支持,学习依赖分组和定位不同类型仓库.依赖管理看起来很容易,但是当出现依赖解析冲突时就会很棘手,复杂的依赖关系可能导致构建中依赖一个库的多个版本.Gradle ...
- BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1352 Solved: 780[Submit][Stat ...
随机推荐
- Apache POI – Reading and Writing Excel file in Java
来源于:https://www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/ In this article, ...
- .net完整的图文验证
摘自:http://blog.csdn.net/durongjian/article/details/4336380 一.创建ValidaeCode类库工程: 1.创建ValidaeCode类库工程, ...
- eclipse 中使用中文JAVA api文档
http://hi.baidu.com/danghj/item/7625a1be20946e43ba0e1202在eclipse中使用中文JAVA api文档Sun 官方的中文版 Java API 文 ...
- Google官方下拉刷新组件---SwipeRefreshLayout
今天在Google+上看到了SwipeRefreshLayout这个名词,遂搜索了下,发现竟然是刚刚google更新sdk新增加的一个widget,于是赶紧抢先体验学习下. SwipeRefreshL ...
- IntelliJ IDEA 14 拉取SVN maven 多模块项目 部署tomcat 详细图解!
二话不说 进入主题 我们创建空项目实际上是项目空间 进入主界面 想用svn必须先启用它 选择Subversion 拉取 svn项目 你会发现这里检测不到目录 我们进入 File>Seting 里 ...
- oc 类型判断
#import <UIKit/UIKit.h> #import "AppDelegate.h" @interface A : NSObject @end @implem ...
- 转 ShowSlow+Yslow页面前端性能测试环境搭建
----//工具介绍 Yslow:YSlow是Yahoo发布的一款基于FireFox的插件. YSlow可以对网站的页面进行分析,并告诉你为了提高网站性能,如何基于某些规则而进行优化. ShowSlo ...
- caffe make 编译
其实嘛,出现这个的原因在于,已经编译过啦,没有任何改动,那还烦劳编译啥呢. 那Linux又是如何知道已经编译过了呢? 那就要看makefile的规则啦.makefile的规则是所想产生的文件需要依赖很 ...
- MySQL中 如何查询表名中包含某字段的表 ,查询MySql数据库架构信息:数据库,表,表字段
--查询tablename 数据库中 以"_copy" 结尾的表 select table_name from information_schema.tables where ta ...
- docker lnmp php
使用 Docker 构建 LNMP 环境 https://segmentfault.com/a/1190000008833012 Docker 快速上手指南 https://segmentfault. ...