上海疫情数据:得出10项颠覆性结论

网友们越来越神通广大了.......

母子乱伦:和儿子做了,我该怎么办?

2021年推特网黄Top10排行榜

《敦刻尔克》引发的惨案:袁腾飞怼周带鱼被封号

自由微信安卓APP发布,立即下载! | 提交文章网址

菜鸟要飞

Wireshark 4.0 震撼登场!

开始,默认的是细节和字节视图彼此相邻,这使得它更容易利用现代显示器上的可用空间。会话和端点会话和端点对话框已经是一个很受欢迎的功能了,在排查一个问题时,人们往往会首先看这个对话框。Wireshark
11月12日 下午 5:43

你真的会查看 IP 地址吗?

地址吗?当面试听到这个问题的时候,面试者常常会觉得走错了房间。我面试的是技术岗位啊,怎么问这么简单的问题?的确,即便没有专业学过计算机的人,只要倒腾过电脑,重装过系统,大多也会知道这个问题的答案:在
10月16日 下午 5:28

技术总监对Docker理解的太透彻了!

程序员受苦久矣多年前的一个夜晚,风雨大作,一个名叫Docker的年轻人来到Linux帝国拜见帝国的长老。“Linux长老,天下程序员苦于应用部署久矣,我要改变这一现状,希望长老你能帮帮我”长老回答:“哦,小小年纪,口气不小,先请入座,你有何所求,愿闻其详”Docker坐下后开始侃侃而谈:“当今天下,应用开发、测试、部署,各种库的依赖纷繁复杂,再加上版本之间的差异,经常出现在开发环境运行正常,而到测试环境和线上环境就出问题的现象,程序员们饱受此苦,是时候改变这一状况了。”Docker回头看了一眼长老接着说到:“我想做一个虚拟的容器,让应用程序们运行其中,将它们需要的依赖环境整体打包,以便在不同机器上移植后,仍然能提供一致的运行环境,彻底将程序员们解放出来!”Linux长老听闻,微微点头:“年轻人想法不错,不过听你的描述,好像虚拟机就能解决这个问题。将应用和所依赖的环境部署到虚拟机中,然后做个快照,直接部署虚拟机不就可以了吗?”Docker连连摇头说到:“长老有所不知,虚拟机这家伙笨重如牛,体积又大,动不动就是以G为单位的大小,因为它里面要运行一个完整的操作系统,所以跑起来格外费劲,慢就不说了,还非常占资源,一台机器上跑不了几台虚拟机就把性能拖垮了!而我想要做一个轻量级的虚拟容器,只提供一个运行环境,不用运行一个操作系统,所有容器中的系统内核还是和外面的宿主机共用的,这样就可以批量复制很多个容器,轻便又快捷”Linux长老站了起来,来回踱步了几圈,思考片刻之后,忽然拍桌子大声说到:“真是个好想法,这个项目我投了!”Docker眼里见光,喜上眉梢,“这事还真离不开长老的帮助,要实现我说的目标,对进程的管理隔离都至关重要,还望长老助我一臂之力!”“你稍等”,Linux长老转身回到内屋。没多久就出来了,手里拿了些什么东西。“年轻人,回去之后,尽管放手大干,我赐你三个锦囊,若遇难题,可依次拆开,必有大用”Docker开心的收下了三个锦囊,拜别Linux长老后,冒雨而归。锦囊1:chroot
10月10日 下午 5:30

突发噩耗,华为高管猝死....

大家好,我是鸟哥。一位半路出家的程序员。一大早就看到一则突发消息,华为某BG总裁在参加完长跑马拉松后,由于心脏原因,再也没有醒来。截图为逝者生前好友追悼的内容。根据公开资料,丁耘,华为技术有限公司监事、运营商BG总裁。丁耘先生出生于1969年,毕业于东南大学,硕士。1996年加入华为,历任公司产品线总裁、全球解决方案销售部总裁、全球Marketing总裁、产品与解决方案总裁、运营商BG总裁等。现任华为投资控股有限公司监事会副主席。华为内网心声社区,也发布悼念丁耘先生讣告。马拉松是一项对体能消耗十分巨大的运动,对于运动爱好者来说,跑马拉松可以缓解压力,放松心情,但是对于没有运动基础的人来说,这其实是一项十分危险的运动,因为这项运动对于心脏的负荷特别大,心脏功能不好的人稍有不慎就有可能倒在赛道上。那么,怎么安全跑马拉松呢?1、了解自己的身体。参加马拉松必须要有良好的身体素质,体检过关且没有既往病史。2、在赛前一两天就应该多吃高碳水化合物、低脂肪、富含维生素无机盐的食物,避免油炸或含油较多的食物。比赛中如果单纯补水会致体温升高,甚至出现
10月8日 上午 8:00

这款SSH工具绝对惊艳,还支持网页版...

转载自公众号【Python绿色通道】后端程序员,ssh工具几乎是每天都会用到的工具,之前给大家推荐过多款好用的ssh工具;其中有一款工具叫Tabby,因为其支持网页版的,使得年初春节期间,和他还发生了一段小小的故事;程序员平常虽说放假,但也都是24小时随时待命,电脑常年不离身,过年放假也一样,走亲访友,都带在身边,一旦有任何风吹草动,以便随时顶上;在一天走亲戚的时候,突然要紧急处理点事情;而今年过年,天气异常的冷,好巧不巧的是,带在身边电脑SSD不工作了(当时以为坏了),导致开不了机!由于没电脑,但又必须得处理,没办法只能通过手机,使用网页版的Tabby(https://app.tabby.sh/)远程服务器,处理问题,虽然说操作起来有些不太方便,处理起来耗时长了些,但还是完美的解决了问题。今天再次推荐一下这款神器...TabbyTabby
9月30日 下午 5:30

这黑科技太可怕了!分分中穿透女友的手机,终于可以为所欲为了...你们别乱用!

大家好,我是鸟哥。一个半路出家的程序员。之前给大家分过一篇文章——一行命令就把女友们的手机彻底监控了~我可以为所欲为了...,教大家使用Scrcpy实现电脑对手机的无线监控(更确切的说应该是投屏),但是受限于只能在局域网下使用,这就非常鸡肋了。不过在文末我也说了,正在调研技术方案,争取突破局域网的限制,总算不负大家的期望,折腾了几天,终于成功了!今天特意分享给大家。其实,非常简单。只要借助一个黑科技平台分分钟就能实现,这个强大的东东就是——ZeroTier,通过异地组网方式实现内网穿透。就像它描述的一样强大:connect
8月23日 下午 5:30

Spring Boot 项目打包 + Shell 脚本部署实践,太有用了!

方式指定通过mvn中profiles来区分不同环境对应的配置文件夹,人工可以手动在idea勾选生成不同环境的包(推荐)这里我们要讲的是第二种,首先在mvn中配置如下内容:1
7月15日 上午 8:20

去他妈的某日葵!不就远程控制嘛,老子自己搭建!

大家好,我是鸟哥。一个半路出家的程序员。今天带大家玩一个非常有意思的神器——RustDesk,一款开源的远程控制神器。开箱即用,超级简单,无需任何配置。支持Android、iOS、Mac、Linux、Window。默认使用RustDesk的注册/中继服务器,完全免费且功能和效果不输于收费的某日葵。关键还支持使用自建的服务器(本文就会带大家自建一个),提高使用体验的同时再也不用担心数据安全问题了。目前客户端和服务端的代码都已开源,有能力的读者完全可以定制化。RustDesk官网https://rustdesk.com/zh/
5月23日 下午 5:30

连夜给学妹肝了一篇搭建个人网站的教程,这就送过去了,兄弟们把把关!

大家好,我是鸟哥。一个半路出家的程序员。这次真是学妹要的!前几天鸟哥以腾讯云为例给大家分享了一篇如何搭建服务器的文章——大晚上的,刚毕业的学妹让我去家里教她搭服务器!我怀疑她.....,文章结尾表示过几天带大家搭建一个网站,仅过了两天就有人开始催更了,先来是几个男同志们,我三言两语就推脱了,直到一个学妹来找,我他么来劲了!周末肝了两天总算出来了。在很多读者眼里上线一个网站的步骤应该是:先开发网站、部署服务器、最后在上线网站。其实不然,大部人的网站都不是从0开始开发的,基本上都是再用开源项目或者在开源项目的基础上进行了二次开发,除非你真的是想练习技术否则建议你还是直接用开源项目吧。今天鸟哥带大家用宝塔面板部署一个开源的博客系统——Halo,一款现代化的开源博客/CMS系统,值得一试。相信很多读者应该听说过。大家可以先看看官方介绍:https://docs.halo.run/,我就不多说了,直接开干。再说一下鸟哥的服务器环境:CentOS
3月21日 下午 5:30

大晚上的,刚毕业的学妹让我去家里教她搭服务器!我怀疑她.....

大家好,我是鸟哥!一个半路出家的程序员。好吧,又把你们骗进来了。为了骗你进来学习,我真是操碎了心。没有学妹,学弟倒是有几枚,整天想着学妹还怎么提高技术呢?今天带大家入门如何搭建服务器,主要是面向小白读者。先说好,我自己也不是专业做后端的,只不过平时爱折腾点项目玩玩,所以有点小经验,本文就是基于这点小经验讲解的,如有不当之处还请谅解。
3月17日 下午 5:31

一行命令就把女友们的手机彻底监控了~我可以为所欲为了...

大家好,我是鸟哥!一个半路出家的程序员。之前给大家分享过一篇关于手机监控的文章——发小被绿,我竭尽所学黑科技,动用云控捉奸寻找证据….之后不间断的就有人问我相关的技术,这个方案呢功能过于强大且需要具备一定的技术基础,一般人还真玩不转。今天再给大家分享一款神器,可以从另外一个思路实现对手机的监控,更准确一点来说应该是实现了手机的投屏或者远程控制,总之还是非常有意思的。它就是——scrcpy,这可不是Python的Scrapy爬虫框架哦,而是一款功能强大且开源的Android投屏神器。做Android的读者应该都了解过,并不是什么新技术了。简单的说一下工作原理:scrcpy通过adb将手机屏幕投到电脑上,并且可以在电脑上实现对手机的控制。它可以既支持USB连接,也支持Wifi无线连接。关键是不需要在手机上安装任何程序,更不需要root权限,整个部署还是非常简单的。scrcpy同时支持GNU
3月10日 下午 5:28

我也折腾了一款百度网盘....不会被抓进去吧~

大家好,我是鸟哥。一个半路出家的程序员!(文章之前发过一次,但阅读量不是很好,辛辛苦苦开发的软件还是要在分享一下)好久没写过原创了,因为最近几个月所有的业余时间都用在开发今天要分享的这款App上了,说是创业也不算过分,只是创的是新副业!哈哈。老读者都知道,鸟哥从大学自学编程开始就喜欢折腾,开发过校园App——大学期间开发了一款App!让我月薪破万,收获爱情.....但结局有点惨....、上线过资源网站,玩过小程序——我的第三款产品上线一个月后,副业收入已达到…、也运营过公众号。虽然并没有像其它大佬那样赚到了很多钱,大都是勉强度日,但也从未停止过折腾。毕竟每个程序员都有一个上线一款属于自己的产品的梦想。这次开发的App——网盘批量助手。从后端接口开发、服务器的搭建、移动端App的开发都是由我一个人完成,历时近4个月的业余时间终于完成第一个版本的上线。产品功能虽然不复杂,但五脏俱全。账号注册登录、支付模块、产品基本功能、增值服务模块、前后端的数据安全等样样俱全。且不管这款产品后面的运营数据,单是能坚持完成产品的开发上线,于我而言就是已经成功了。虽说没有什么技术难度,但中间也是反反复复放弃了好多次,不得不感慨一下国内对于个人开发者真的是相当不友好,这个后面单独出一篇文章和大家分享。下面先着重介绍一下这款App的功能。网盘批量助手,是我给这款产品最初的命名也算是功能定位,从名字就能看出来这款App的功能主要就是针对网盘文件提供一些批量处理的功能。这款产品最开始面向的主要用户是像我一样,经常整理网盘资源且想通过网盘资源赚流量的小伙伴。如果只具备批量处理的能力,那这款产品可能就只有我一个人会用。所以后面我又开发了另外一个功能,相信很多读者都会喜欢,这里先卖个关子,后面再细讲。先来说说它的批量处理能力。一、批量处理能力主要包括:批量重命名、批量复制、批量删除和批量导出。1、批量重命名。包括添加前后缀、关键词替换、和修改扩展名三个功能。分享一个真实案例:去年有段时间我分享的资源莫名其妙的被屏蔽,经多次排查后发现文件名称中包含“习”(字的都无法分享。最简单的处理方案就重命名删掉“习”。结果搜到近1000个文件,人工处理了两天的时间,真想吐呀!从那时起我就有了开发网盘批量处理应用的想法,关键词替换分分钟搞定。还可以过滤文件,例如只重命名文件夹或者图片等。2、批量复制又有什么用呢?老读者应该都清楚,我平时分享资源时,为了导流每个文件夹下都会放一个公众号二维码或者加个后缀名例如【更多关注公众号菜鸟要飞】。没有网盘批量助手时,只能一个个复制,特别浪费时间。现在分分钟完成,还能选择目录层级。3、批量删除多余了吧,百度网盘也可以全选删除!NO,比百度网盘更强大。例如你只想删除某个文件夹中的图片文件或者只想删除包含某个关键词的文件,它都支持!4、批量导出是个什么鬼?它包括导出目录树和目录图两个功能。说一个场景吧:平时发文章分享资源时,总需要介绍一下这个资源吧,一键导出目录树轻松解决。再直观一点的就是贴出资源截图,没有这个功能前,我只能一张张截,那叫一个费事,现在一键搞定!对了,还支持加水印防止盗图,真特么的贴心!下面最后一张是效果图。总之一句话,批量处理就是快!一切都是为了提高效率!二、再来说说另外一个适合所有人使用的功能-【发现】。看着还是有点抽象,其实就是资源分享功能,但与普通的资源分享不尽相同。首先从内容上,由后台爬虫提供服务,整合了多个网盘搜索引擎的内容,又经过机器筛选过滤掉链接失效、加密等无用的资源。不过由于服务器资源有限,目前只爬取和编程有关的内容。更重要的是点开资源便可直接观看和下载,再也不用先保存到自己的网盘中了。对非VIP网盘用户简直是莫大的福利,再也不用担心网盘空间不够用,单次保存文件数量过多的问题啦。未来还有什么功能呢?主要是批量分享和下载速度相关的功能,这两个功能一方面依赖百度网盘官方的申请认证;另一方面对服务器的要求极高,说白了就是需要更多的钱来扩充服务器,要看后面的运营情况,所以还请大家多多支持。网盘批量助手App的大部分功能都是需要开通VIP才能彻底解锁,没办法,咱有情怀但也要吃饭。补充一点,应该会有不少读者认为这个APK会被百度网盘投诉吧。放心吧,所有功能都是用百度网盘开发者中心的API实现的,不涉及到任何黑科技,合理合法,大胆使用。开发者中心的网址如下https://pan.baidu.com/union/document/顺便吐槽一下,可能没有多少人关注吧,所以文档写的很垃圾,连错误码给的都不对。我也反馈了好多次,没有任何回复,人家就是一副爱用不用的姿态,果然很百度....最后奉上App的下载链接长按识别,立即下载!PS:如果上面不行了可复制下面的链接https://diskhelper.fsh.bcebos.com/diskhelper.apk记得在浏览器中打开哦
1月9日 下午 9:51

大学期间开发了一款App!让我月薪破万,收获爱情.....但结局有点惨....

大家好,我鸟哥!一个半路出家的程序员。前几天有读者(目前还是个在校大三学生)咨询鸟哥一些赚钱的门路,大概就是感觉自己有点Java技术和大把的空余时间,想通过一些平台接单赚钱。不得不浇盆冷水,平台是有,但能接到单的概率几乎是0。别说是在校生,就是工作5年多的老鸟在没有太多知名度的情况下也很难接到单。但也别灰心,既然有技术和时间,那就自己开发一个项目自己运营赚钱呗,至少比接单赚钱的概率要大。退一步来说,即使赚不到钱,甚至还赔掉了一些运营的成本,但技术积累和项目经验却实实在在得到了,这对于找到一份高薪的工作还是有很大帮助的。话都说到这份上了,鸟哥就分享一个大学期间自己开发的一个项目吧,极具复制和实操性。顶峰时期月收入也是破万了。项目出现的背景大概是2014年的暑假,鸟哥刚自学完一套javaweb的视频课程,正愁没事干,可能脑子被驴踢了,突然就想学习Android。当时就想着如果能开发一款App让大家使用肯定是件很酷的事情。于是抱着这个想法又从某宝上买了一套15元的Android教程开干,技术有了但开发什么App呢一时很让人头疼。因为是暑假,所以同学们陆续都离校了,那天我送下铺的兄弟去车站,离开寝室的时候他突然来了句,“妈的,破学校。连个App都没有,查个成绩还要用电脑真费劲~”,于是,想法立马就来啦——是时候开发一款专为本校生提供成绩查询、课程表、校园动态、网上自助等服务的App了。说干就干,又叫上了另外一个同学,一边学习一边开发。从后端到App前后忙了将近两个月的时间,每天都是从早上9点到晚上10点,这工作强度不亚于007。当然,并不是功能有多难,而是我们毕竟是菜鸟。现在想想兴趣果然是最大的动力呀。整个项目最大的难点就在于学校官网并没有提供api,所以要想实现成绩查询,课表等基础功能就只能通过HTTP模拟请求+数据爬取。仅是攻克这个难点就耗费了我两周的时间,期间多次想过放弃但幸亏都坚持下来了,不得不说百度(泛指搜索引擎)真的是程序员最好的老师。而一旦有了真实的数据,这款APP才算有了生命力,而我也看到了成功的希望。后来除了基础功能外,又陆续开发了表白墙,在线课堂,社交等功能。这些功能都是在开发的时候慢慢想出来的。最让我引以为傲的就属社交功能。此功能基于爬取用户在学校官网的数据。简单来说就是支持根据出生年月,姓名、所在城市等条件查找校友。轻轻松松就能找到和自己同年同月同日生的异性,对于单身狗来说是不是巨大的福利,更重要的还支持聊天哦,不过这个功能是用了当时百度云推出的即时通讯服务,只需接入提供的sdk就可以实现聊天。否则单凭我们两个菜鸟短时间内是不可能开发出来的。其次就是在线课堂这个功能了,可以方便的查询到当前全校正在进行中的课堂,如果你是当前课堂的学生就可以进入这个课程中留言讨论各种事情,类似于现在刷剧时的弹幕。当然,表白墙也是用户的最爱之一。
2021年7月2日

可怕!公司部署了一个东西,悄悄盯着你···

站资源,只为撸这个鉴黄平台!终于把废旧电脑变成了服务器!差点被女票拿去换洗脸盆,真香!
2020年9月17日

发小被绿,我竭尽所学黑科技,动用云控捉奸寻找证据….

站资源,只为撸这个鉴黄平台!终于把废旧电脑变成了服务器!差点被女票拿去换洗脸盆,真香!
2020年9月15日
2020年7月25日

如果张东升是个程序员......

“菜鸟要飞”设为
2020年7月5日
2020年7月3日
2020年6月26日

我假装考上了浙江大学~

“星标”,和12万程序员一起成长!今天给大家分享一个不错的可以学习基本原理,基础知识,底层知识的资料吧。然后,在
2020年6月18日

阿里规定代码中禁用这个,为何?

20192.使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat是线程不安全的SimpleDateFormat的format方法最终调用代码:private
2020年6月14日
2020年6月9日

卧槽!红色警戒源码开源...

Alert(红色警戒)。https://github.com/electronicarts/CnC_Remastered_Collection《命令与征服》系列是西木工作室(Westwood
2020年6月7日

卧槽!二维码要被扫完了吗?疫情期间竟用掉了1400亿个!

1400亿个二维码。看到这个数字,有人不禁问到:我们消耗的“码数”这么多,会不会有一天所有二维码都被扫完,人类再也无码可扫?对此,微信相关技术人员给出的答案是:
2020年6月3日

统统卸载!再见了,流氓顽固软件!

Uninstaller已经足够好用了,但是,难免每个人的使用习惯不同。如果让我推荐第二款卸载工具,我首先想到的就是Geek
2020年6月1日

CPU像吃了春药无辜发热,我排查一周解剖一枚挖矿脚本!分享给大家,但切勿乱用!

/etc/networkservice使用chattr命令,把一些重要的文件,搞成不能任意改动的只读属性,也是够损的。然后,操作cron程序,把脚本的更新服务加入到定时中。就是下面这段脚本。code
2020年5月30日

三星手机大量死机!我反编译折腾半天后,发现竟然一个汉字引发的....

自己知道的不过沧海一粟..推荐阅读为什么团建这么招人恨....我是培训机构出身的程序员,不敢告诉任何人你那么追捧的springboot,到底替你做了什么?
2020年5月27日

快来看,某盘又被搞了....

“菜鸟要飞”设为
2020年5月25日

啥是编程宝典??涨姿势啦!

“菜鸟要飞”设为
2020年5月25日

为什么团建这么招人恨....

KB却可以实现那么长的剧情?
2020年5月22日

我是培训机构出身的程序员,不敢告诉任何人

多家,就那家公司面试上了,薪水给的还算可以,就入职了。”针对培训机构出来的程序员与科班出身的程序员相比会不会被“鄙视”的问题,小健明确表示:“这个和科班的没关系,谁都看不上培训机构的。”
2020年5月20日

推荐几款良心网盘,免费、空间大、不限速!

!偷偷吃掉1MB/s上传带宽....雷军
2020年5月15日

为什么魂斗罗只有 128 KB却可以实现那么长的剧情?

至少差了5~7个数量级音乐的话FC采用的是8位midi音乐而现在普遍用的是PCM音乐类比到图像中就像矢量图像和位图的区别总之PCM音乐的大小和采样深度
2020年5月13日

雷军 1994 年写的代码,经典老古董(附完整代码)

-------------------------------------------------------------------------RestoreBiosData:lodswcmp
2020年4月26日
2020年4月22日

内部泄露版!互联网大厂的薪资和职级一览

级别的薪资约40k,500股票/每年。就同学们反馈:目前20届校招给的是14、15薪,19届校招很多能拿到18薪。前端开发20k左右,产品是14-18,运营10左右。字节跳动的现金薪酬要比
2020年4月18日

Pandownload 作者被抓!没错,就是破解百度网盘的哥们...

已经无法打开,打开后一直是连接服务器的状态!总之,Pandownload
2020年4月16日

嘘!我怀疑这是某度网盘的源码...

macOS均提供安装包而且还适配了移动端哦。作者提供的技术文档可以说这几个项目中最详细的了。你值得拥有!DzzOfficeDzzoffice是一套开源办公套件,适用于企业、团队搭建自己的
2020年4月15日

前女友让我破解植物大战僵尸!我干脆撸了一款一样的....翻身舔狗把歌唱呀

main.py命令,即可运行。功能方面目前支持的植物类型:太阳花、豌豆射手、寒冰射手、坚果、樱桃炸弹、双重豌豆射手等;支持的僵尸类型:普通僵尸、棋子僵尸、路障僵尸、铁桶僵尸、毒爆僵尸项目使用
2020年4月4日

终于换Mac啦!折腾了几天整理了一波Mac 新手必备的工具套餐!

“星标”,和12万程序员一起成长!来源:张伟杰urlify.cn/IvA7nymacOS系统简单设置开发工具常用软件美化工具本文主要记录Mac开发环境的设置,以及一些优秀软件,使用技巧等。所有的设置
2020年4月1日
2020年3月28日

一张图看懂字节跳动8年创业史,太励志了吧

Lab成立了字节跳动也成了大量技术人才的跳槽首选地也就是在这里字节跳动诞生了更多的产品围绕Inspire
2020年3月22日

一个吊打百度网盘的开源神器,竟然是99年妹子开发的!!!

文件处理命令的百度网盘命令行客户端,支持Windows、Mac、Linux、Android、iOS五大系统,具有以下特性:多平台支持,
2020年3月20日

一招搞定GitHub下载加速!

clone的仓库地址并导入这一步交给码云来做速度是非常快的,一会儿功夫,码云就克隆出了一份和GitHub上一模一样的项目!(4)接下来我们通过码云上的项目地址,将项目
2020年3月19日

6 个接私活的网站,你有技术就有钱!

是集聚了当今世界上诸多优秀自由职业者的接单平台,如果你打算在该平台上发展,最好是对个人的综合能力有充分自信。upworkhttps://www.upwork.com/upwork
2020年3月17日

一句话,得罪30个APP

挖不走我们的人才?iPhone可以运行Android了!!!点个在看,少个bug
2020年3月10日

iPhone可以运行Android了!!!

“星标”,和10万程序员一起成长!历史上第一次(经指正是第二次。第一次是十年前)让Android系统运行到iPhone手机上。目前(2020年3月6日)的版本只支持iPhone7/7
2020年3月9日

张一鸣:为什么 BAT 挖不走我们的人才?

成绩、教育成就、身体质量指数等。延迟满足,就是指为了更有价值的长远结果,而放弃即时满足,以及在等待中展示的自我控制能力。张一鸣就是这样的人。2016
2020年3月7日

废旧Android手机如何改造成Linux服务器

系统最后瞎比比自从没有了学生身份之后,购买云服务器的价格是越来越贵了,不管是阿里云还是腾讯云。我寻思着能不能找到什么替代品,这让我想起之前在知乎不经意看到的,可以把
2020年1月2日

为什么12306时不时要崩那么一下?

转载自公众号【仙人JUMP】,作者:半佛仙人12019年即将过去,过年回家的火车票,你们买到了吗?我知道你们很多人都没有买到,我能感受到你们内心的绝望。前几天12306崩了,很多人在痛骂12306,还有很多人在我公众号的后台问我为什么12306总是动不动就崩溃,和大姨妈一样不给力。明明只是一个简单的卖票软件,怎么搞成这个鬼样子,人家QQ微信几亿人同时在线聊天,激情互动,还有各种小视频。另一边双十一几亿人同时购物疯狂败家剁手都没有问题,为什么12306一出手,就是炸穿裤衩的用户体验?让硬核的半佛老师来给你们科普一下。12306到底面临多大的业务压力和挑战。你们这么多人一拥而上,他们当然受不了,谁受得了呢。虽然本篇文章会有大量极为硬核的技术术语,但是我会说的尽量简单,大家一定要认真听,多记笔记,过年在饭桌上吹牛的时候,这都是王炸,不用谢我了。不是说你看了这篇文章就能买到票,实际上买票是一个玄学。只是说,能死的明白点。2很多人拿12306和双十一来比较,认为双十一这么多订单都能撑住,12306就撑不住,显然是因为技术水平不到位。这一开始就走了弯路了朋友,12306的业务模式和双十一是有本质不同的。这种不同,就导致了12306的难度要比双十一大的多的多的多多多~如果说双十一的难度是人间模式,那么12306差不多相当于是地狱十八层,还要再挖个坑的难度。第一,双十一的流量再大,也只不过是纯线上业务,什么叫纯线上业务?所有用户都是在网页或者APP下单,整个数据其实是闭环的。这就导致双十一其实只是一个纯粹的线上流量问题,解决起来相对纯粹,就像一个单纯的小朋友一样好欺负。而12306不是,12306不是只有一个APP和网站的朋友,所有人在线下售票厅以及线下机器里产生的交易,也会影响整个12306的数据系统。实际上现实生活中非常多的买火车票返乡的人,例如辛苦的农民和工人朋友,很多都是不会线上操作的,他们只会线下彻夜排队,非常辛苦,所以12306也必须照顾他们的感受,不能断掉线下业务。这就导致了12306本身是一个线下与线上同享数据的复杂业务,复杂度要高出双十一一个数量级的。和纯粹简单的双十一相比,12306就像一个饱经社会摧残的老油条,你永远不知道他们会什么时候会出现什么幺蛾子。这就像一个纯洁男孩第一次和他的男朋友约会,怕他不来,又怕他乱来。3第二,抛开线上线下不说,毕竟这是欺负12306,我们谈谈业务本身的计划性和可预测性。如果认真思考,你会发现,双十一是一个有明确计划和操作节点的业务,而12306不是。双十一活动并不是只有11月11号当天,其实是一个月前甚至几个月前就已经开始了,大量的用户都已经支付了定金,大量的商家也已经锁定了库存和销售额,只不过最终的结算是在11月11号当天进行的而已。这就代表着,双十一面对的是一个高确定性的任务,只要有确定性,流量再大也不是特别难的问题。当你知道困难会在什么时候发生的时候,这个困难就不再困难了。真正的困难,在于不可知。什么叫不可知?12306就是不可知。因为你永远不可能测算出会有多少人在哪一天去哪一个地方,一个从浙江回山东的人,他为了回家,选择的线路和时间会非常诡异多变。他可以买浙江到山东,可以买浙江到上海到山东,可以买浙江到南京到山东,可以买千岛湖到山东,可以买浙江到北京到山东,可以买浙江到黑龙江到山东,甚至可以买浙江到广东再飞回山东,只要能回山东,啊我的大葱。他可以接受1号出发,2号出发,3号出发,5号出发,10086号出发,只要能出发。这就代表了谁也不知道需求的流量会是多么的突发,购买的内容会是多么复杂。我再举一个例子大家就懂了,微博厉害吧?每天这么大的流量,这么多的关注度。但是为什么经常突然一个明星出轨或者结婚或者负面新闻,微博就要挂掉?是没有技术实力还是服务器资源不够?都不是,是因为这种流量是突发性的,谁也不知道会突然出现这种爆炸增长,所以服务器就挂掉了。这就和泼水节上大家都做好了心理准备,但是你泼开水一样。这谁遭得住啊。所以建议所有明星出轨之前,先微博报备一下,这样他们出轨的放心,我们吃瓜吃的也安心。他好,我也好。4第三,电商业务不是一个一次性要完成所有流程的业务,但是12306必须一次性完成,这进一步加大了难度。大家思考一下,电商购物,实际上是并不是一次性的。一个典型的电商购物流程是,浏览,和商家撕逼价格,下单,和商家撕逼运费以及快递,物流发货,买家收货,和商家撕逼售后。即使排除撕逼这些事情,电商购物流程也是有很多节点的。整个流程下来最快最快次日达也要24小时。这就代表电商的数据压力没有想象中那么大,可以异步处理,完全可以先全部付款完成,然后再慢慢处理发货,然后再慢慢处理售后。就像你要刷B站,又要烧开水,你完全可以先烧开水,在烧水的过程中刷B站,这就是异步的好处,可以同时多任务并行,而且不影响用户的核心体验。你下单后3小时发货和5小时发货,不影响用户,容错率高。而12306不一样,卖票就是要立刻完成。从下单,到付款,到锁定票,都是一气呵成的,没有任何缓冲时间,不存在我下单一个票2天后告诉我成功或者失败这种事情,头都给消费者打爆。所以12306等于是没有这种缓冲周期,需要直面所有的流量,在最短时间内满足所有人的所有需求,所有的业务都要在极短时间内处理完成,这就是会被一下子塞满。同样是1亿用户,4个步骤,电商可以分4个步骤淡定处理,每个步骤处理1亿流量,而且可以分多小时,多天处理。12306就只能一口气处理4亿,没有缓和,这个压力可想而知。我们都知道,再厉害的东西,被强行塞满,都是会坏掉的。你们不要瞎想,我说的是公路。第四,电商业务的库存管理是相对简单的,而12306是极其复杂的,复杂到我给你简单讲讲你都会抑郁。想想看,作为电商平台,管理货物虽然也有难度,但本身的统筹不过固定产品的增删改查,有多少就是多少,付款了就减一,上量或者退货就加一,顶多出现最后一个商品被2人同时拍下的小概率事件,这都是小事儿。而12306是完全不同的难度,二者难度差别大概相当于草履虫大战那美克星人。我举个例子,如果你是一个在北京读书的人,家在北京南边,过年要回家。随便选一辆北京往南开的车,G65这辆高铁,北京始发终到珠海,一共17个站,共计10小时55分钟。就这一个路线,17个站,支持随意站上车,随意站下车,会有多少种可能性?因为坐车不可能只做单站循环,就是不能北京到北京。所以是从1加到16,一共136种可能性,注意哦,电商同样的场景只有增删改查4种可能性。这样一个线路的实时库存,做起来是非常令人头大的。假如有人买了从北京到广州,那么对应的所有库存就要减1,但是广州到珠海的库存不减。假如有人买了从武汉到珠海,那么对应的就是武汉到珠海沿途所有线路的库存减1,但是北京到武汉不减。假如有人买了石家庄到漯河西,那么北京到保定,北京到石家庄不用变,漯河西到珠海段,不用变。其余所有可能性都要变,因为只要经过这两个站点的路线,都受到影响。实际业务中,这样的变动,会导致整个库存实时变动,并且是P级别的数据变动,如果对数据库稍微有所了解,都知道这种数据变动对于资源的消耗有多么恐怖,一个1GB的电子表格跑查询都能把很多高性能电脑跑崩掉,早期电子表格甚至限制在6万5千行,就是防止把电脑跑崩。而这种级别的数据,需要消耗的资源说出来都违反广告法。所以为什么12306夜里11点到早上要维护?这样的数据库如果不是天天维护保护缓存,早就彻底完犊子了。每一天,12306都是拿命来奋斗。所以之后买票的时候,要宠溺一点,温柔一点,你买的不是票,是工程师们的头发。5第五,业务去重需要大量的判断。电商业务其实严格来说是不需要用户实名制的,也不需要对用户的身份去重,只要你付钱,有货就发货,除非是限购商品稍微拦截一下,但是面对黄牛党,也就是象征性的挣扎一下,毕竟大家都是出来卖的,不会跟钱过不去。而12306不一样,12306的模式是,每一个人都要限购。同路线,同时间,要限购。就拿北京到珠海举例,12306是不允许一个人在同一天购买大量北京到珠海的车票的,这对其他人不公平,所以要限制人的出发时间和购买路线。那么问题来了,如果要加限购,那么就要把这个人的当前购买信息,时间,全部缓存下来,这个人的每一笔交易,都要和他当前的已有行程进行去重匹配。这对数据资源的消耗是非常恐怖的。并且,并且,查重还有另一个现实问题,就是12306本身是允许非本人买票的,就是我可以给我的爸妈买票,我爸妈也可以给我买票,只要添加乘车人就可以了,这就代表着,同一个人的信息,完全可以在不同的时间节点被不同的买家添加,这又带来了巨大的计算压力。这就和人生一样,太难了。第六,和12306比流量,什么公司都没有资格。很多人真的以为双十一就是流量的巅峰的了,其实并不是,12306才是最恐怖的流量巅峰。为什么?因为电商的业务模式不会导致用户重复点击,而12306无时无刻不在被所有用户重复点击。举个例子,你在双十一买东西,是不是买了就走了?买不到你就是骂几句,然后也走了。一个用户的点击是有限的,你就算单身30年,给你放开了点,你能点多快?要知道对系统而言,每一次点击,都是一次数据交换。12306面对的点击流量,要大的多,你买票的时候,是会不断刷新操作的,你在查询余票的时候,每一次都是要跑所有的数据库来帮你同步当前的余票信息,这个负载量和计算量是天量。而且,现在非常非常多的人在用抢票软件。所谓的抢票软件,原理就是不停地用机器去读取12306的数据接口,机器的速度绝对是比你单身30年的手速还要威猛几十倍,一秒刷几百次,1个人用抢票软件,可以造成几千个人一起刷产生的数据压力。各大抢票软件公司加起来用户几千万是有的,14亿人刷出几百亿人的流量都绰绰有余。你知道12306的流量负载有多强了么?在12306上,人人都是火影忍者,天天影分身。6会有人问,既然挑战这么大,12306这么不容易,那么为什么不去像国外先进技术取经?为什么不去加大投入服务器?为什么还在找借口?为什么12306不引入国外的先进技术呢?答案其实很简单,国外也罩不住啊。早在2012年,12306就有公开招标,预算不设限,只要能解决问题,世界顶级机构都来竞标了,但是最后基本都放弃了。因为当时的技术环境没有人能解决这个问题。国外很多技术的确先进,但是没有一个国家或者公司,历史上接受过14亿人的数百亿级别流量的挑战,你能说出来的世界顶级公司,没有一家能承受这么强的即时交易流量。他们有的流量更大,但就和电商业务一样,是可以异步操作,不需要身份唯一性,没有这么复杂的路线存量计算的,你们也知道国外的高铁和地铁是什么垃圾水平,我们遇到的问题他们从来没有遇到过。这是很现实的一件事情。全中国14亿人的出行需求面前,大家都是一样菜。说到这里,我想到了我们行业里的一个笑话,有个脸书的早期工程师回国加入阿里巴巴,离开前,他说要去拯救阿里巴巴的数据系统,结果回来之后才发现,他在脸书遇到的数据挑战,和阿里巴巴比起来,简直是幼儿园水平。在数据挑战上,我们遇到的数据挑战绝对是世界最强梯队的,很多时候没有之一。那么为什么不加服务器呢?技术不够,硬件来凑。加服务器面临的核心问题有3个。第一个,加服务器只是增加了储存能力,并不能解决数据库的问题,这就和一个女人生孩子要10个月,不代表你找10个女人就能在1个月内生孩子。第二个,如何驱动这些服务器?当年阿里云领先世界的技术,就是突破了同时驱动5000台服务器,成为世界三大云之一。要知道,阿里云面对的只是双十一,而12306的挑战要更加恐怖,需要同时驱动的服务器数量更多,这也是有技术挑战在的。另外,阿里云也确实参与了12306的建设。第三个,成本问题。12306往往全年都表现良好,只有重大节假日才会偶尔出现崩溃,你为了应付一年中为数不多的重大节假日,采购了这么多高折旧率的服务器,平时根本用不上,这是一种浪费钱的行为。中国铁路本身就是巨额亏损,国家持续补贴的,这种情况下,为了短时间的需求,投入海量的成本,这笔账不用多说吧?你看看隔壁微博,宁可每次被流量击溃也不肯长时间维系大量服务器,微博看财报每年都是盈利的,金额都是按照亿来结算的,人家都是这个态度,你知道12306有多不容易了吧。而且这可都是纳税人的钱。到最后,买票问题的本质,还是供需关系。全国这么多人,在这么短的时间内要完成这么多的出行,远远超过了铁路本身的运载能力,在这种供小于求的情况下,怎么调配资源,都没有办法解决供需问题。东西就这么多,大家都想要,能怎么办呢?加钱,继续扩建?要知道很多线路只有春节才爆满,平时都空车亏损,为了满足小部分人短时间的出行,大量浪费资金投入到已经富余的路线中,并不划算的。有这个钱,应该去投入到更多的地方。12306这种基础设施,天然就是挨骂的,做的好,大家不会夸,做的有一点点不好,会被骂到死,这是基础设施的悲哀,所有人都有不合理的期待。何况,12306在只花了这么少预算的情况下,做到现在这个程度,已经是超神操作了。不考虑资金成本和技术成本张口就骂,是一种不太理智的行为。怎么不去说人家印度火车卖挂票呢?-
2019年12月31日