Home

多域名解析及延伸知识点

我们想象一下,用户输入网址进行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

程序员必备工具目录

目录 应用程序 音频 聊天客户端 压缩 数据恢复 开发者工具 文档 电子书实用程序 电子邮件 游戏 图形 在线存储 生产力工具 终端 文本编辑器 实用程序 视频 配置与安装 Windows 10 Windows 8.1 setup 安全 应用程序 音频 AIMP - 32位音频处理和多格式播放。 Audacity - 免费,开源,跨平台软件,用于录制和编辑声音。 Qtractor -音...

Read more