参加上海TED聚会的随想

在meetup.com上看到有本地的TED小范围活动,于是关注了这个group,一直还没想好啥时候去看看,没想到就在今天去了。今天meetup网站一直受到DDOS攻击,就在我决定去后不久,竟然网站也很帮忙的恢复了一段时间。(现在这会儿Mar 3 23:15又开始故障了) 这类活动还真的是老外比较热衷,即使是在上海本地,活动的组织者以及参与者还是有很多国际友人。今天人还是不少的,活动在c3 cafe, 一片不大的空间里挤了大概有50人左右。其中还有今天刚到上海的,同时也是第一次来上海的朋友。活动的组织者事先就有过今天内容的预告:由来自Nestworks的产品经理 Anne给大家作题为《Don’t stop believin》的主题演讲。 Anne的整个故事相对于大部分国人来说可以说是相当丰富、甚至是有点疯狂地。我想没有什么同学,朋友,同事会给自己安排如此的计划。我简单概括下过程: 英国人,20岁不到就离开国土出来闯荡,混迹于港澳台一带,然后在经历了一系列各种跨度的工作后(包括在台湾教英文,澳门赌场,夜总会,儿童福利院, 上海世博会,上海政府公益活动等),发现企业应该对外有好的正面的作用。把这点作为了她的梦想并继续投身于NPO,NGO的工作。目前就职Nestworks的。 Nestworks是一个类似孵化器的非盈利组织,具体我也是第一次听说,本来今天上午还和一位国际友人约了3月22日去公益新天地看看聊聊,发现世界有时候确实很小,今晚的TED演讲者竟然就来自那里。没准下次就能有更加多的接触和了解哦。 在进入cafe前发了张小名片,后来注意到上面有个QRCode,扫了下,原来是couchsurfing的微信公号。couchsurfing也是个眼熟的字眼。在听完anne的故事、或者应该说是她的生活方式和态度,又看到这个couchsurfing后,可以说是出现了所谓的这样的一个点,在这个点上大脑出现了奇怪的反应,会将很多故事串联起来,是一个个关于分享的故事。 2011年,我首次在techcrunch上知道了美国硅谷有家叫做airbnb的小创业团队,做的是让全世界的私人住宅得到充分利用用于出租给旅客的平台。当时刚起步,只有旧金山本土的业主在上面挂牌。同年5月,我们计划了一次美国的旅游,当时我就毫不犹豫的抛弃了booking.com选择了airbnb平台,从现在看来这似乎也还是一次较为大胆的选择。但是我知道就是这种不确定性计划和安排,是任何一家hotel都无法给予的新体验。【这里也需要提醒大家不要被这段说的大脑发热,毕竟选择airbnb这类平台能带来更多分享和故事的同时有一定风险】 我们遇上了以为相当热心的美国老太太,吉普赛裔。充满吉普赛特色的房屋装修,在我们入住的当天下午自发的带我们逛了圈SF的非主流景点(主流景点我们自由安排),讨论了各种话题(当地人们习惯,中美人们的不同想法,老太太还知道著名的G.F-W,毕竟也算是早期使用airbnb的,果然对互联网资讯很敏感)。在傍晚回到住处后,发现原来我们还有同住的另一位小伙,在房屋的另一头的一间里。看到他腿上宽大的Macbook Pro 17外加满屏幕的代码时,一股亲切感迎来。小伙不是SF的本地人,是长租在这里的一个码农,当时在一家SF的初创互联网公司做开发,具体啥网站我记不清了,但是我记得是一个类似ESPN的资讯站,但是更加focus在某一领域(具体也忘记了)。当时给我的感觉就是这里到处是创新,人们愿意接受新事物,再加上老外原本就倾向分享的基因。几乎分不清工作,生活的界限。隔天早晨起来,又和吉普赛老太太攀谈了一会儿她近几年参加burning man聚会的感想,还是那浓浓的氛围。 在这里碰上创业团队的小伙儿       前两天,发现了一个app,这是一场浪漫主义的社交试验——Civo, 温暖的设计理念,让你领略别处的生活。这个app让我们随意的,快速的了解地球各个角落的更多的故事。也许你没有那么身临其境,但是你也省下了相当可观的金钱和时间。这是一个免费的app,目前没有广告,我们感谢如此app的开发商,也更加感谢其上内容的产生者。 一个小点子,一段小故事的分享可能会泛起无限的涟漪。这些涟漪相互碰撞的后可能就有我们无法预估的结果。希望类似TED这样的节流会能在国内扩大范围,更多的人被影响,更多的人影响到大家。    

Install ruby gems locally

使用bundle可以先在一台环境中通过网络安装好所有gems,然后运行: bundle package 会将所有所需要的gem文件打包到./vendor/cache目录下,然后复制这些文件到目标机器上,运行 bundle install –local 最好目标机器和原机有相同的环境。当然系统必须要相同。Linux/windows/osx

谈谈KPI这东西

转自 小道消息 by Fenng KPI 是一个很难谈的话题。为什么? 这东西太复杂,谈这个容易陷入到长篇大论里,说不清楚,虽然讲不明白的时候呢倒是可以用各种车咕噜话糊弄一下,比如“KPI 是万恶之源”,但这样明眼人一看就知道是蒙人的,其实任何一个有利有弊的事物都可以说是“万恶之源”。如果只是这么一说,别人就觉得很浅薄。 因为互联网行业的兴起也就这十几年的时间,刚开始的时候几乎都是作坊式的管理,随着逐渐一些公司崭露头角开始规模化,对管理的要求越来越高,于是从其他行业,尤其是生产制造行业,借鉴各种管理的方式。这些管理方式和方法是否完全适合互联网行业,还需要足够的时间来验证,而且,互联网行业变化又太快。 还是来看看什么是 KPI 吧,所谓 KPI ,Key Performance Indicators ,中文翻译过来就是“关键绩效指标”,或称主要绩效指标、重要绩效指标、绩效评核指标等,“是指衡量一个管理工作成效最重要的指标,是一项数据化管理的工具,必须是客观、可衡量的绩效指标。这个名词往往用于财政、一般行政事务的衡量。是将公司、员工、事务在某时期表现量化与质化的指标一种。可协助将优化组织表现,并规划愿景。”(引自维基百科) 上面这段话里说了 KPI“往往用于财政、一般行政事务的衡量”,这是很重要的一句话,也就是说 KPI 不是任何场景都适用。如果是对于销售型的团队,要抓 KPI ,很简单,因为工作太容易量化了。对于我所在的行业里,程序员的日常工作就很难用 KPI 来衡量,虽然程序员整天跟代码和数据打交道,但是要把他们的工作量化,几乎做不到。怎么衡量他们的工作? 代码行数么? 工作时间? 有人说用代码质量来衡量行不行? 如果这样的话,就会有一堆人在“到底是 Bug 还是缺陷”之间纠缠。再比如,对设计师的工作,也不好用 KPI 来评估,因为的确不那么好量化。有人对此持相反意见:所有人的工作都能量化,只要你找到合适的方法。也或许有这样的方法,但这样的方法如果太复杂,那还不如不用。 说到这里,来个段子提提神: 某农场养猪,种树,效益都不错。新来一领导,觉得要更上一层楼,一拍脑袋,今年的 KPI 是训练会爬树的猪,推向市场。员工们想了各种办法,都做不到,有人还论证了猪的生理结构不能爬树。领导大怒,怪员工没有创新性和执行力。最后,一员工想了一办法,乘领导不在,将树砍下,放平,置母猪于树干,拍照。领导见照片大喜,暗自感叹自己的英明,于是乎定下了明年的 KPI:养出会攀岩的猪来。 感谢提供这个段子给我的读者。我不知道各位从这个故事里能读出什么来,我能得到的结论是,不合理的 KPI 一旦设定下去,有些人被逼无奈就要造假。一旦造假,就意味着企业的浪费开始了。 几乎所有对 KPI 迷恋的企业,尤其是互联网这个行业的企业,都遇到造假的情况。你对 PageView 设定了 KPI – 实际上这也是一个不太合理的 KPI,就会有人为了完成业绩去花钱买流量,以前各个互联网公司,每年快到年底的时候都会有不少团队专门去烧钱导流量,或是弄一些活动和游戏抽奖什么的冲流量。业绩一旦达标,奖金拿到,各项指标瞬间下来了,不要紧,还有下一个季度,继续折腾。因为这个活儿一般是互联网公司运营团队做的,所以我很长时间都对运营的人很有看法。 再比如,如果做 App 的团队,如果把装机量做最主要的 KPI ,那么最为直接的办法就是刷榜。立竿见影,把数据刷得华丽丽的,就可以去找投资人谈投资了。有人说,投资人傻么?… Continue reading 谈谈KPI这东西

WiFi定位原理

转自 blogspot 第一 : iPad wifi 版本没有GPS晶片,这是一个事实,根据Apple自己的规格说明有讲到,确实无法透过GPS定位。 第二:仅有Wifi的设备开启Maps等具有Location Services的软体在部份情况下还是可以得到定位资讯,他靠的就是大家提到的Wifi定位. 第三:分辨有没用到GPS定位,应可以从有没有看到一个波纹从蓝点间歇且规律的散出而判断。Wifi定位就看不到那个波纹。 所谓Wifi定位就是有某个单位把很多的Wifi基地台的资讯与经纬度坐标做了连结,当你站在有被纪录到的Wifi基地台附近时,经查询资料库后获得相对的经纬度资讯来即可完成定位。而Wifi基地台有效范围通常也就那么一点点距离,因此大家会觉得定位蛮准确的。另外一点比较有趣的是Wifi定位不会乱跑,而GPS定位在收讯不佳的情况下多多少少会看到小蓝点在漂移。 那么是谁那么好心帮忙收集这些资料呢,早期是股沟的街车,四处逛大街时”顺便”帮你我家里的Wifi资讯“不经意的”给纪录下来。从最早的iOS 1 到了iOS 3.1 我们的iDevice都是依靠股沟老大及Skyhook的资料库提供我们做Wifi定位。 但如果你家住在高楼大厦或巷弄里,你就是确定股沟的扫街车不可能扫到你的wifi基地台,那还怎么定位呢。 Apple表示到了iOS3.2之后已不在依靠他人来做Wifi定位,在2010年四月后已改由自家的资料库来提供Wifi定位服务。怪了Apple又没扫街,哪来的资料,其实就是在你我”不经意”的协助下帮Apple完成了庞大的资料库建置。这几年有无数台的 iPhone 与 iPad 3G 无时无刻的在各地流串,都是具有GPS晶片的机器,当你第一次开启地图时,都会看到一个讯息,OOXX想使用你的Location资讯XXOO#%…您是否同意。我想绝大部份人都是按同意的。这时候我们都变成了无名英雄,简单的说当你我在逛大街时iDevice即将GPS定位获得的经纬度坐标以及所在位置的Wifi基地台资料适时的回报上去。日积月累下庞大的资料库就建立完成了。我想应该有部份长期使用iPhone的人会有印象,从一代到现在,不知从什么时候开始在室内定位就变得准却多了….就是这样来的。 PS. Apple表示这部份资料是匿名上传,且透过Wifi上传,所以大可不必担心资料安全或3G网路传输的问题。 因此,回到原先的问题点,如果你同时拥有两种iDevice,一个有GPS晶片,一个没有( 如iPodTouch/ iPad wifi ),那么应该你在家里两种设备都很容易可以完成定位,因为你一定会不经意的站在窗边使用iPhone/iPad 3G 而接收到GPS坐标并回报Wifi基地台资料,接着你的 Touch / iPad wifi 也就很轻易的可以透过查询Wifi资料而定位。但如果不幸你仅有Touch或iPad wifi,那其实也不是就定不到了,只要你有朋友或任何情况下路人甲拿着iPhone经过你家并收的到你的Wifi基地台资料,那么很快的你也可以定位了。

VMWare Copied Linux Virtual Machine network adapter udev issue

After cloning a VMWare image I had noticed that my CentOS Linux server renamed eth0 as eth1, eth1 as eth2 and so on. This is due to wrong or duplicate mac address. To fix this problem login to your CentOS Linux server using console and type the following commands: # cd /etc/udev/rules.d # cp 70-persistent-net.rules… Continue reading VMWare Copied Linux Virtual Machine network adapter udev issue

创业失败可能原因

创业失败

一、产品没有需求。搞IT的总是喜欢站在自己的角度、和自己身边圈子的角度看问题,而不愿意承认自己并不是国内主流消费者、主流用户,总以为花费了大力气解决了什么技术难题,自己模式多么牛逼,大量用户就一定会来,而实际上用户不关心你是什么模式,也不关心你的技术,只关心这个东西对他有没有用,好不好用,是不是帮他解决了一个什么刚性的问题。 二、团队不稳定。这是最主要的因素,只要有人在可以重头再来东山再起,大多数团队都不稳定,每个人心中都有自己的小九九,价值观迥异,彼此不够坦诚,经常为一些很低级的问题长时间争论,有些人更是心理柔弱,不够开放,听不进任何不同意见,不是客观讨论问题而是抬杠,分歧怨恨越积越深,最后一哄而散。 三、投机心态严重。不把心思放在产品上,以融资为目的赚资本市场的钱,整天出席各种创业会议,在各种媒体频繁露面,融资之后大笔烧钱,而不是用钱,这恐怕是北京创业圈子的通病 四、执行力差。互联网是快鱼吃慢鱼(这一点有争议,谁对谁错且不说,我只知道所有大佬都认可这一点,并身践力行),都说大公司效率低,而国内大多数创业公司,执行效率比大公司还低。大公司是一直高速匀速运转,比大公司快还不一定赢,比大公司快的多的多才有希望。连大公司的效率都不如,还怎么跟市场上的饿狼竞争? 五、轻视产品。特别是技术出身的创业者,国内大多数技术人员其实是没有设计规划产品的能力的。总以为钱可以搞定一切,资源可以搞定一切,自己用户体验做的一团糟,还骂大公司抄袭自己、垄断,幻想着劣币能够驱逐良币。不懂不要怕,谁都不可能一开始什么都懂,怕的是自己明明不懂,而自认为自己很懂,不去学习,蒙蔽自己。 六、以卵击石。创业公司自身弱不禁风,没人没钱没资源,还去抄袭大公司,做大公司类似甚至相同的业务,用自己的短处去碰别人的长处。能举出任何一个小公司依靠抄袭大公司成功的案例吗? 七、对市场状况不了解。很多创业公司连竞品分析做的都不到位,知己知彼尚不能胜,不知己又不知彼下场可想而知了。

OSX 安装oracle instantclient系列包

从oracle下载的几个包解压即可使用,但是这几个包如果不想安装在系统默认的/usr/bin和/usr/lib目录的话,就会有shared library找不到的问题了。参考了这篇文章修复此问题。 其中文中提到的script我运行后是有问题的,原因是因为install_name_tool的版本不对,换成xcode中的command line tool里面的版本就好了。所以更新script如下: [code] #!/bin/sh # script to change the dynamic lib paths and ids for oracle instant client # exes and libs # proces all the executable files in this directory find . -maxdepth 1 -type f \( -perm -1 -o \( -perm -10 -o -perm -100 \) \) -print | while… Continue reading OSX 安装oracle instantclient系列包

OSX 获取CPU信息

可以使用sysctl 命令: [code] sysctl hw [/code] 会列出一些和CPU内存配置相关的参数,其中还有此CPU的byteorder, 4321 为bigendian, 1234为little endian.

今天我们应该如何做技术招聘?

转自36kr 这个世界上有两种人,程序员和非程序员;这个世界上有两种招聘,技术招聘和非技术招聘。 终有一天,技术招聘会从招聘中分离出来,成为一个独立的行业。因为平时招聘用的那些招数用在程序员身上半点作用没有。不信你去招聘网站发个启事,一周后看看收件箱,除了荒废了四年以为PHP是P2P高级版本的大学生和把你公司所有职位全都投一遍的灌篮手,还能有什么?还有要给你公司做午饭的?喂喂,58同城可不算招聘站。 如果你想找到好的程序员,那么你需要理解他们的想法先。 优秀的程序员不需要找工作 是的,都是工作找他们。他们每天接的电话里除了快递父母蓝朋友,最多的就是猎头了。这就是为什么你在招聘网站上找不到他们——连猎头他们都不鸟,你还想他们去招聘网站上看你那千篇一律的职位说明?技术招聘已经是一个完完全全的卖方市场,收起“老子花钱雇你”的那份高傲,把心态摆正吧,这年头硅谷的程序员都有经纪人了亲。 钱很重要,但更重要的是成长和空间 越是优秀的程序员,越能意识到自己的局限,越是渴求一个能得到快速成长的机会。或者是操纵成百上千台服务器的快感;或者是能独当一面、将自己的伟大想法付诸实现的空间;或者是能抛开一切深入系统内核的潜心修行;或者是千万在线数亿PV而纹丝不动的成就。他们不怕挑战,他们怕没有挑战。钱当然越多越好,但是在成长空间面前,那只是个Bonus。 OK,只有明白了这些,你才能做好技术招聘,下边是一些具体建议: 别指望他们来找你,到程序员在的地方去找他们 技术社区是程序员扎堆的地方,国内的论坛可以找对应的招聘版面,发布点招聘启事;去Github和Stack Overflow搜索你要招聘的职位用到的技术关键字,把相关用户里边最好的人找出来,试着联系他们。如果是比较底层的技术方向,邮件列表也是充满潜在目标的地方。 请把招聘启事写具体 别直接用HR给你的职位说明书格式,把职位具体化。就像介绍一个妹子,是端庄优雅的大家闺秀,还是清新可人的小家碧玉,要把特点写清楚,千万别就四个字:女的活的。你们公司用什么框架开发,集群的规模有多大?职位的挑战是什么,最近计划尝试什么新技术?把吸引人的地方突出出来。常见问题直接写上,不要等人问,如果一定要让人问,留几个技术上的悬念,只给来面试的人解答。 好好介绍你自己和团队的环境 如果你是招聘职位的直接主管,请详细的介绍你自己。没有人愿意跟随一个中庸无能的主管,这个时候不需要低调,把你那些Github上被人fork了成百上千次的项目列出来;把你那个积累多年的技术博客贴上。一个视野开阔、思维活跃、技术过硬、为人靠谱的直接上级可以打消求职同学很多方面的顾虑;而一个每天下午不允许开会的团队,会吸引很多习惯深度思考的程序员。 如果你不会技术,那么把你们团队里边会技术的牛人写上。 善用微博 别光留个邮箱,留下你的微博。要知道你面对的是非主动求职者,微博能更好的展现你的能力和风格,说不定在浏览你微博的时候,他就被一个细节打动了呢?就算没有,你也能多一个粉丝嘛。 从长远的角度讲,用好微博意义重大。平时看到的技术资料,别光放到书签里边藏着,试着多分享出去。学习新技术时遇到的坑、吃过的苦要总结下来,同时共享给大家。分享的时候别忘了提醒大家关注你的微博。这些天然形成的弱关系是你不可多得的财富,当你需要招人的时候,往往能带来意外的惊喜。顺便说下,我的微博ID是@Easy :D 做活动要投其所好 现在招聘肯定是要发微博求转发的,送奖品也已经是常规了。这里给点奖品选择的建议,如果资金充足,尽量搞点新发布的国内花钱买不到的东西,比如Google Glass。当然up手环、树莓派之类Geek向的东西也会受欢迎。如果要高性价比,那就送技术书吧,根据我们的观察,送书的转发率能比送抱枕雨伞充电宝之类小礼品高出去2倍。选点最新的、程序员们都还没来得及买的书;最好不是针对单一语言的,因为Java程序员很少会对《PHP高级编程》表现出兴趣。 学会使用新工具和新社区 随着技术招聘变得越来越重要,国内外也开始涌现出了很多专门针对此领域的工具。 我特别看好的是Developer Auction(developerauction.com)。它是一个程序员“拍卖”平台:程序员提交自己的简历申请加入,然后选择好自己喜欢的几家公司同时进行在线面试;最后程序员可以在给出offer的公司中选择自己最满意的。但它不对国内开放,同时企业还是要缴纳一笔费用给Developer Auction的,这对招聘方来讲不算是好消息。 于是五一假期我和几个朋友一起做了一个微信公众号应用,叫做快简历(kuaijianli)。 它和Developer Auction很类似,但将面试流程保留在了线下:程序员可以同时选择多家公司的主管,在线发送自己的简历;而收到简历的主管们要赶紧联系到求职者,安排面试并说服他们加入自己公司。这样实际上是一种变相的竞拍,求职的程序员只需要做选择题而不再是判断题。 对于招聘的主管来讲,只要发布一次职位需求,就可以源源不断的收到简历,而这场永不停息的拍卖会是完全免费的。我们上周刚刚开放了技术主管的申请,招人的同学不妨加微信试试。 如果你需要找不是领工资的程序员,而是一起创业的技术合伙人,那么可以试试专门定位于此的缘创派社区(ycpai.com),除了可以在线交流外,他们每个月在车库咖啡还有一次线下的活动,可以很真实的接触到很多有创业意愿的程序员。

良好的源代码控制管理十戒

转自IT瘾投稿 我还没有见过比源码版本控制这样跨任意编程语言更基本的工具。 这是我们用过的最基本的工具,是很多开发团队的生命线。 那么,为什么我们经常会用错呢? 为什么一些真正的核心,版本控制系统的基础往往知之甚少? 我总结了10个实践 或“戒律” – 这通常是发生故障或错误理解的开始, 是与版本控制产品和编程语言无关的。 我会从Subversion和.NET挑选一些例子,但它们广泛适用于其他技术。   1. 如果还在使用VSS,马上停手 平心而论,在1995年VSS曾是一个伟大的工具。  不过因为有了像Subversion甚至分布式的如Git和Mercurial工具变得黯然失色。 很多年前微软已经明确表明废弃它了! 由于一系列的重大缺陷,VSS曾受到广泛的几乎一致的鄙视, 俗称为微软的源代码破坏系统 。   2. 如果源代码没有处在版本控制,那等于还没有 每天重复此咒语 – “进步的唯一标准是工作代码处在源代码控制中”。 直到你的成果出现在源代码控制里 – 变成源控制库中的项目 – 否则它根本不存在。 当然,你已经把代码做好在本地计算机上的某个地方,但,对其他人来说这不是真的做好了,对吗? 他们不能拿到你的版本,他们不能合并他们的修改,你无法部署它(除非你部署出错 ),一旦发生硬盘损坏你将永久丢失这些文件。 你要保持除非提交否则根本还没有的心态,一大堆的其他良好的运作因为没有提交开始陷入困境。 你应将任务分解成更小的单位,这样你可以原子地提交。 您应频繁地整合,保证自己不受本地硬件故障的影响。 但更重要的是(至少对你的团队领导来说),你证明你实际做了东西。 燃尽图曲线下降或分解列举任务列表是很棒的,但他们真的顺畅吗? 除非这些与工作源码控制中的工作代码关联上,他们才意味着完成。   3. 尽早提交,频繁提交,越快越好 继续上一点,只有这样,才能避免“幽灵代码” -那些只有你可以在你本地计算机上能看到的代码-要尽快地尽早地频繁提交到VCS版本控制系统里 。 上面提到的是应尽早和经常的完成提交,但其中有几点可以使你的工作方式有意义: 1,每个提交的修订版能给你一个回退的位置。如果你完全搞砸了,你想回滚一个小时的变化还是一个星期的吗? 2,合并噩梦的风险不会显着增加。合并从来就没有乐趣。 当你几天没提交代码时,你突然发现到你已经与其他人的变化有50个冲突,你肯定不开心。 3,它会强迫你将功能隔离在分散的工作单元。比方说,你已经有了一个3人天功能需实现。 通常,因为他们想试图整个地构成一个逻辑单元直到这段时间结束才提交。 当然,像这样大的一个任务不可避免地由小规模,分散的功能组成,频繁提交迫使你识别这些原子小任务,然后逐一地完成它们提交给VCS。 当你以这种方式工作时,你的提交历史形成一个有规律的模式,每天多次提交。 当然,并不总是保持这样不变的模式,有时我们停止开发和重构进入测试阶段,或任何其他中断正常的开发周期的活动。 然而,当我看到一个独特的 – 甚至整个项目,在一个正常的开发周期,有整天甚至很多天什么没提交,我很担心。… Continue reading 良好的源代码控制管理十戒