Home

机器学习:选对时机直线超车

经验壁垒 俗话说“一张白纸好作画”。有时候经验反倒是一个笼子,错过新的/更强大的解决方案。思维模型的固化会让你很难接受另一种编程模型。 举个现实例子:公司现在要开展一个全新的项目,并且在前期调研时发现xxx语言特性完美适配项目架构,作为公司高管你会选择让月薪3万的程序员学习新语言之后接手这个项目还是招聘3个月薪5千的技术新手? #直 线超车 假设人类已经研制出一种光速飞行器,我们要去25光年外的一颗小行星,现在飞行器可以以1倍光速飞行,但是在到达目的地之前很难更换飞行器。你是否现在出发? 假设5年后有望研发出2倍光速的飞行器。你是否现在出发? 精力投资 不客气的说,一直以来机器学习的应用只是demo级别。在人工智能的道路上,现阶段处在塑造血和肉的阶段,距离真正的智能具有相当远的距...

Read more

面试技巧:带走面试官的节奏

即将到来黄金跳槽季,我知道大家已经蠢蠢欲动了。今天跟大家分享一个面试时的小技巧,把主动权掌握在自己手里。 隐性对白 完美的沟通模型是:问(Q)->答(A)->确认(Confirm),沟通结束,没有循环往复。 在面试开始时你和面试官形成一种简单的逻辑关系,即: 面试官:我凭什么录取你?(隐性) 你:你因XX而录取我。 即使面试官一言不发,你所说的所有的话都应该围绕着“这些是你录取我的理由”。 所以,只要有你开口说话的机会,你就说自己的长处。 答非所问 面试官本身也会为了如何出题考察应聘者而苦恼。如果面试官的问题恰好是你的短处,而你并没有机会表达你的长处,岂不是非常可惜。 这时你可以进行一个强行的转折,比如使用“当然”、“没错”、“显然”、“重要的是”...

Read more

微信红包的随机算法是怎样实现的?

我在知乎上看到这样一个问题微信红包的随机算法是怎样实现的? 有人说腾讯大致是这样实现的: public static double getRandomMoney(LeftMoneyPackage _leftMoneyPackage) { // remainSize 剩余的红包数量 // remainMoney 剩余的钱 if (_leftMoneyPackage.remainSize == 1) { _leftMoneyPackage.remainSize--; return (double) Math.round(_leftMoneyPackage.remainMoney * 100) / 100; } Ra...

Read more

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