Home

AI时代:推荐引擎正在塑造人类

We shape our tools and afterwards our tools shape us. ——Marshall McLuhan 麦克卢汉说:“我们塑造了工具,反过来工具也在塑造我们。” 我本人不反感AI,也相信人工智能会开创一个伟大的时代,但是我们要思考一些东西,至少知道那是什么。本人旨在让你了解当前人工智能应用最普遍的智能推荐引擎(Intelligent Recommendation Engine),其背后的设计理念,以及一些更深度的思考。关于理念,它不像技术要求太多的基础,我尽量不使用专业术语,所以本文同样适合程序员以外群体。 从“分类”说起 以大家熟悉的分类信息网为例,像58同城、赶集网。网站把现实...

Read more

多域名解析及延伸知识点

我们想象一下,用户输入网址进行HTTP请求,DNS服务器找到域名对应的IP地址,连接IP地址对应的服务器,那么服务器是如何知道用户是通过A域名还是B域名找到自己的呢? 本文旨在通过通信协议的例子让你更加深入了解HTTP以及一些小技巧,包括反向代理,HTTP报文,三次握手,DNS解析,DNS污染/劫持,HTTPS等。需要注意的是,本文碎片化的知识点实际上涵盖了很多方向和领域,大家可以针对自己的爱好进行有深度的涉猎。 从实际应用到理论支持,我们由”深”入”浅”,透过现象寻找本质。 反向代理解析多域名 反向代理的作用就是作为中间层来访问内网站点,防止了直接将内容服务器暴露给外网,起到了安全防护的作用,也同样可以实现负载均衡、限流。 我们看一下Nginx上多域名配置的代码: serv...

Read more

冲顶大会APP技术选型及架构设计

我在1月4日看到虎嗅推送”王思聪撒币”的消息,然后开始推敲背后技术。其中涉及直播流、实时弹幕、OAuth2.0开放授权、SMS api、Push网关、支付接口等业务,其技术实现并不复杂,我们对此进行剖析。 UI设计 可以说冲顶大会是照搬HQ的商业逻辑、业务逻辑和UI设计。想必在短期内会有更多的知识问答APP蜂拥出现。对此我不做过多评论,只说背后的技术实现,无关商业。 Flutter 可以说我是谷歌的脑残粉,据传言Google的Fuchsia OS UI都是用Flutter设计的,在这里,Android和IOS的适配都可以使用Flutter实现。具体设计可以完全模仿HQ。 业务逻辑 冲顶大会类APP的技术难点在于高并发和时效性。为此我们要对业务进行解耦合,将注册/登录、直播...

Read more

在编程中为所欲为[圣诞版]

众所周知,在Java中final String中的值是一成不变的。大家都知道String的+(拼接)运算会丢弃内存引用并在内存中重新开拓地址,事实上也确实如此。但final的变量真的是一成不变的吗?谨以此文打开程序员思路,跳出定式思维,希望本文会给你的程序员生涯带来新的思考。 一个简单的例子 这个例子很久远,早有前辈做过,但并不是所有的程序员都接触过。通常喜欢“猎奇”的程序员对此不会陌生。 import java.lang.reflect.Field; public class ChangeFinalString { public static void main(String[] args) throws Exception { final String s = "...

Read more

摩拜单车和ofo单车数据分析报告

这篇文章是2017年4月我第一次正儿八经写的文章。首发于虎嗅,后续又在各大平台发表,12小时内累计100000+阅读。迁移此文到本公众号,以此作为开端。 随着新一轮资本的注入,共享单车市场的战局更加激烈。尤其摩拜单车和ofo单车以总融资12亿美元占据主要共享单车资本。 市场需求与用户态度 以目前市场反响来看,用户对共享单车的态度是积极的。下图显示用户未来使用共享单车的态度: 70%的用户表示在未来会经常使用共享单车,28.7%的用户表示会偶尔使用,只有1.2%的用户表示不会再使用共享单车。以此可以看出共享单车满足了用户的刚性需求。 从车站/地铁站出发到达目的地是用户的主要使用场景。由此可以推断出上班族和学生族是主要的用户人群,并以节省时间为目的。交通拥堵对于单车市场...

Read more

如何成为10倍速的程序员

国外有个词叫做10x Programmer,直译是以一当十的程序员。我并不认为一个技术大牛能完成10个普通程序员的工作,技术大牛会花1/10的时间把工作做完,然后用剩下9/10的时间平衡生活、爱好和未来,所以我仅把10x Programmer叫做10倍速的程序员。 也许有人会觉得这种定义太过狭隘,没错,确实狭隘。不同的程序员处在不同的技术水平阶段,有着不同的人生追求和生活诉求,我谨以此文让大家换个角度去审视这个职业,也许你会有些感触和启发。 Keep You Sane 这是我很喜欢的这句英文,保持清醒。我希望所有人都能做到工作和生活的平衡,有更多的精力去做自己爱做的事,陪自己爱的人。这是本文的最终目的。 善用工具 业界有句话叫做“不要重复造轮子”,人类就像一台内存有限、CPU...

Read more

(通用)深度学习环境搭建:tensorflow安装教程及常见错误解决

区别于其他入门教程的“手把手式”,本文更强调“因”而非“果”。我之所以加上“通用”字样,是因为在你了解了这个开发环境之后,那些很low的错误你就不会犯了。 大家都知道深度学习涉及到大量的模型、算法,看着那些乱糟糟的公式符号,心中一定是“WTF”。我想说的是,这些你都不要管,所谓车到山前必有路。 所需安装包 通常以我的习惯是以最简单的方式来接触一门新的技术,并且尽量抛弃新的(边缘)技术的介入,如果因为一些其他因素来导致学习树的不断扩大,会变得很低效,所以我们直击核心。以最常用的windows环境为例。 这里以windows7+TensorFlow-gpu1.5+cuda8+cudnn6+anaconda5+python3.6为例。这里强烈推荐GPU版本,因为深度学习动辄几小时、几天、几周...

Read more