从Code Review 谈如何做技术

这两天,在微博上表达了一下Code Review的重要性。因为翻看了阿里内部的Review Board上的记录,从上面发现Code Review做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到Code Review的记录。当然,这并不能说没有记录他们就没有做Code Review,于是,我就问了一下以前在业务团队做过的同事有没有Code

阅读全文

小猪学arduino—蜂鸣器的使用

上一篇,我们学习了如何使用开关控制led灯,这一次,我们学习一下如何使用蜂鸣器。

蜂鸣器的使用方式和原理与led完全相同,高电平就发出声音,底电平静音,迅速的给高低电平就能发出滴滴类的声音。我们直接使用上一次的连线方法,把端口2位置的led换成蜂鸣器,把端口2的单次高电平改为20ms间隔的滴滴声。

由于连线图除2端口的led变为蜂鸣器外其它无变化就不上图了,代码调整如下:

int onoffPin = 9;//开关输入端口 int flickerPin = 8; //闪烁端口 int buzzerPin = 2; //蜂鸣器端口 int orderPin = 3; //顺序亮起起始端口 int orderLen = 5; //顺序亮起端口个数 int i=0; void setup() { //开关端口初始化 pinMode(onoffPin, INPUT); //闪烁端口初始化 pinMode(flickerPin, OUTPUT); //蜂鸣器端口初始化 pinMode(buzzerPin

阅读全文

小猪学arduino—使用开关控制led灯

IMG_3651

在上一篇arduino学习之—led灯控制中,我们做了用输出口高低电瓶控制led闪烁的尝试,并使用pc发送指令的方法控制led的熄灭。

本篇学习如何利用输入口接收开关装置的信号,替换pc发指令来控制led。具体思路:如果按下开关,顺序亮起所有led灯;否则,闪烁灯每2秒闪烁一次,其它灯熄灭。

具体连线和代码如下:

led.ino

int flickerPin = 8; //闪烁端口 int orderPin = 2; //顺序亮起起始端口 int orderLen = 6; //顺序亮起端口个数 int onoffPin = 9;//开关输入端口 int i=0; void setup() { //开关端口初始化 pinMode(onoffPin, INPUT); //闪烁端初始化 pinMode(flickerPin, OUTPUT); //闪烁端初始化 pinMode(flickerPin, OUTPUT); //顺序亮起端口初始化 for(i

阅读全文

正在考虑微服务架构的松耦合?小心这些陷阱!

微服务是一种新的架构,它使用简单、轻量、松耦合的服务来构建系统,这些服务彼此可以独立开发和发布。

如果你还不了解这些基础概念,请阅读Martin Fowler的文章(http://martinfowler.com/articles/microservices.html)。如果你想拿它和SOA进行比较,请看Don Ferguson的演讲(https://www.youtube.com/watch?v=W7tGlxJtofI)。Martin

阅读全文

小猪学arduino—led灯控制

IMG_3359

这里使用arduino UNO r3板子+7个电阻+7个led来学习如何实现定时闪烁和顺序亮起。

通过led控制可以了解arduino板子的基本控制和执行原理:GND作为负极来使用,2-13做为可控制的正极来使用。给对应端口高电平即会使通路通电,低电平可以理解为断电。增加电阻是为了降低电流避免烧坏led。

儿子的需求:

默认10端口灯一直保持闪烁,2-7端口灯顺序亮起后保持常亮;发送指令后,所有灯全灭;2秒后,10端口闪烁一次后,2-7端口顺序恢复常亮。

具体连线和代码如下:

led.ino

int flickerPin = 10; //闪烁端口 int orderPin = 2; //顺序亮起起始端口 int orderLen = 6; //顺序亮起端口个数 int i=0; void setup() { Serial.begin(9600); //设置波特率9600,用于接收来自pc的指令 //闪烁端初始化 pinMode(flickerPin, OUTPUT); //顺序亮起端口初始化 for(i= orderPin;i<orderPin+orderLen;i++){ pinMode(i

阅读全文

分布式队列编程:模型、实战

介绍

作为一种基础的抽象数据结构,队列被广泛应用在各类编程中。大数据时代对跨进程、跨机器的通讯提出了更高的要求,和以往相比,分布式队列编程的运用几乎已无处不在。但是,这种常见的基础性的事物往往容易被忽视,使用者往往会忽视两点:

  • 使用分布式队列的时候,没有意识到它是队列。
  • 有具体需求的时候,忘记了分布式队列的存在。

阅读全文

10条命令分析Linux性能问题

当你登录到一台存在性能问题的Linux服务器上时,在头一分钟,你会检查什么?

我们看看Netflix的性能工程师是怎么做的。

Netflix大量使用EC2 Linux服务器,很多时候是用一些较为高层的工具做云或实例层次的分析。不过有时仍然需要登录到某个实例上,运行一些标准的Linux性能工具。

在最开始的一分钟内,可以先利用手头的标准Linux工具大致了解性能状况。借助如下10条命令(有些命令需要安装sysstat包),了解系统资源使用状况和正在运行的进程。先检查错误(errors)和饱和度(saturation),再检查资源利用率(resource

阅读全文

真正决定人生高度的,是你做事的速度

01

《社交网络》里,讲述了脸书曲折的创业史以及官司纠纷。

我对这些都并不惊讶。 最最最让我惊讶的,还是扎克伯格这个人。 尤其是他做事的速度、他的执行力。 扎克伯格被女友甩掉之后,当晚便心血来潮,怒敲代码。在很短的时间内,在电脑上折腾出了一款应用——大头照对比评分应用FaceMash。简单来说,这个应用就是让校园里的美少女上传照片到网站,让路人去评分。 这个简单粗糙的产品抓住了大学生对美色的窥视欲,抓住了美女们的虚荣心,并且通过评分建立了竞争机制,所以大获成功。 注意一下影片细节,就能发现以下这个事实: 扎克伯格那一天晚上8:13回到宿舍。晚上10:17开始动手做FaceMash。凌晨2:08同学萨瓦林回来提供了算法公式。该产品上线之后,在大学生中广为流传。凌晨4点,网站的流量异常,弄垮了哈佛的校园网,惊动了校方的管理人员。 也就是说,他只花了6个小时,便完成了产品的设计、开发、上线… …这可能是一个小型创业团队两天的日常工作量。 另外,同在哈佛就读的Winklevoss兄弟与扎克伯格是死对头,他俩总说扎克剽窃了他们的创意,才有了之后的Facebook。 促成小扎与Winklevoss兄弟日后的巨大差距的,也正是二者的执行力差距。
当Winklevoss兄弟在犹豫是否要全身心投入做社交网站的时候,小扎已经开始动手做Facebook了。
当兄弟两个在训练划艇时,小扎的Facebook已经上线了。
当Winklevoss兄弟发出律师函,等小扎回音时,小扎宣布http://thefacebook.com进入耶鲁大学、哥伦比亚大学和斯坦福大学。
当Winklevoss兄弟去找哈佛大学校长萨默斯告状时,小扎的Facebook已经覆盖29所学校、7.5万注册用户。
当Winklevoss兄弟还在英国参加赛艇会比赛时,小扎的Facebook已经成为剑桥、牛津和伦敦商学院的劲爆话题。
在CEO疯狂的执行与推动下,脸书几乎是以疯狂的速度在美国的大学校园铺开,然后蔓延到世界的各个角落。 面对“社交网站”这个足以带动全球性革命的idea的时候,Winklevoss兄弟迟迟不肯动手。 而扎克伯格选择了像疯狗一般地执行。

02

除此之外,他还有敏捷的,对项目的跟进能力。 社交产品上线初期,需要不断迭代。有一次,扎克伯格从同学那里得到了“社交网站需要展示学生情感关系”的启示后(单身、恋爱、婚否),立马着了魔一样地赶回寝室,增加了这个功能。 在这部片子里,你能时刻感受到扎克伯格身上有一种平静的粗暴。 一种程序员身上特有的耿直。
出现想法?OK,下一秒立刻去做!
出现问题?OK,下一秒立刻解决!
出现更优方案?OK,下一秒立刻敲代码进行产品迭代!
对,就是下一秒,甚至连下下一秒、下下下一秒都是晚的。 我刚毕业那会儿,最自鸣得意之处,便是自己不受限的思维、想法、创意,就好像这些东西值千万两黄金一样,就好像这些东西能说服其他公司给我开出高额薪水一样。 但经历得多了,才逐渐理解创业圈子里的一句话:“idea是世界上最不值钱的东西,执行永远是最重要的。” 决定人生高度的从来不是做事的完美程度,而是做事的速度。 比如现在,你饿了,你想烤鸡翅膀吃。你第一件要做的事不是在脑子里构想如何烤一对完美的鸡翅膀,不是去想如何调制腌料,不是去想黑胡椒用哪个牌子的好,而是立刻去菜场买一包鸡翅膀回来。 速度是第一要诀,其他任何一切都建立在速度的基础上。

连鸡翅膀都没买,搞毛啊。

03

有一件有意思的事,在此分享给你们。 因为十一想去旅游,所以昨晚我在刷旅游网站,包括各大航空公司的屌丝特惠机票。在我刷国内某个在线旅游网站时,首页的Banner上出现了我一高中同学的名字。我一看照片,似像非像,点进去之后,才确认是他。 网站页面上面介绍的是旅行定制师、酒店试睡员、旅行专栏作者、XXX杂志签约摄影师… … 头衔太多,压得我喘不过气。 我忽然想起来,他曾经大学休学了一年半,专门用来旅游。之后延期毕业,很晚才拿到的毕业证。 在网站上,他有分享自己的一路上的心得。他说当年是看了杜家毅导演的《转山》,于是想去拉萨。 当天晚上订了机票,第二天上午规划好了所有行程,下午跑老师办公室提出请假申请,晚上打包好了所有的行李,查攻略查到凌晨1点。 之后就草草出发了。 也许是去完西藏之后感觉灵魂被净化了… …他觉得旅行太好玩,于是果断决定休学一年半,全职旅行。 他旅行的钱是怎么来的? 在其个人主页有写,一半问父母借,另一半旅行时打工赚,平时做兼职的婚庆摄影,赚得也不少。 拉萨的布达拉宫、纳木错、大昭寺;大理的双廊、洱海、苍山;丽江的束河、泸沽湖、玉龙雪山… …   好吧,现在随便拉出10个人,里面恐怕有9个都曾幻想过:未来的某刻,要去以上这些地方。 但只有1个人能做到。 因为其他9个,都把想法烂在脑海里了。

那些想法,在夜晚舒适的睡眠里,静静融化,差一点成为现实。<br

阅读全文

基于词槽的简单query匹配方法

我们在做类似搜索相关的特定服务时,通常都会遇到分词解析query,取出其中特定关键字进行检索的问题,这里提供一个简单的基于词槽的query匹配方法。

首先给出一个query示例:北京飞三亚机票多少钱?

我们需要达到的目标:

1.判定这个query的分类

2.解析出机票分类query中的起点和终点

阅读全文