PHP开发者

其他

两次被裁之后,我终于解决了数据库缓存一致性问题

一我是一名毕业两年的程序员。算上实习,工作三年了,正是一个程序员的黄金时代,这让我普通而自信。但是从实习期,我就被辞退两次了。今天是我的又一场面试,而且是大厂面试。我要一洗前耻,证明自己。好了,我要赶紧出发,不然通往美好生活的996路公交车又堵了。经历过西二旗的人潮人涌之后,我按时来到了面试官面前。和面试官寒暄了几句,他直接问了一个技术问题"如果网站流量太高,我们通常会加缓存来减轻数据库压力,读缓存很简单,如下图关于写缓存,你知道怎么设计这个方案,保证缓存与数据库的数据一致性吗?"一刹那,往事涌上心头,因为我在这个问题上,已经栽了两次了。二第一次是在实习期。那年二十,刚刚工作,每日如喽啰。实习的公司是一家外包公司,没有什么技术规范,按时上线是大家最重要的诺言。我的第一个任务就是增加缓存,降低Mysql的压力。这个任务最核心的就是写缓存时怎么保证缓存和数据库的一致性,当年还是实习生的我显然没有意识到这个需求的复杂性,直接采用的方案就是先更新数据库,再更新缓存上线第二天,网站就出了Bug,我就被甲方爸爸投诉了。后来,在复盘中我才发现,网站挂了的原因是:如果同时有请求A和请求B进行更新操作,那么会出现请求B是最后请求的,那么应该是他最后更新缓存为正确的数据,但是有可能请求A处理的更慢,所以请求A更新了最后的缓存。另外这个系统写数据库场景比较多,而读请求比较少,这种方案就导致数据压根还没读到,缓存就被频繁的更新,浪费性能。然后我当天就被辞退了,理由是在办公室工位吃螺蛳粉。三没想到啊没想到,在这个问题上,我还能梅开二度。毕业之后进入的第一家公司,兢兢业业两年半,业务量也逐渐上来了。访问量上升,代表着我的薪水也有机会上升。我立马做了个方案,准备在一向不看好我的经理面前表现一把。核心逻辑就是采用先删缓存,再更新数据库经理看完方案,直接画了下面一个图淡淡说道:"这样的话,缓存都是脏数据了。"我想了下,说:"确实,不过可以双删缓存。"public
2021年4月9日
其他

71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP

层获取,而不经过链路层,也不会流向网络。一般用来检查主机上运行的网络服务是否正常。路由汇总路由汇总主要是为了减少路由条目,把可以聚合的路由汇聚为一个大网络。路由表越大,查找路由表所需的内存和
2021年4月8日
其他

这是我见过对DNS最通俗易懂的解释了

亲爱的,我出去一趟。你要去干嘛?有事。有什么事?我跟同事讨论下网络方案。讨论什么方案?我跟你说了,你也不知道。你说呀!你不说怎么知道我不知道。那好吧,我给你讲一讲,看你能不能给我一点建议。最近有个局点需要配置
2021年4月7日
其他

好家伙,你管这破玩意叫文件系统?

表中取出,再把文件名和文件类型取出,这很是浪费时间。而让用户看到一个目录下的所有文件,又是一个极其常见的操作。所以,不如把文件名和文件类型这种常见的信息,放在数据块中的结构体里吧。同时,inode
2021年4月6日
其他

源代码从 300 行到 172,000 行,它用了 23 年

次下载!我从来没幻想过这个项目和工具能够征服全世界。我只希望它能够快速可靠地完成互联网传输,而这也是我努力实现的目标。为了向全世界提供更好的互联网传输,我们引入了
2021年4月3日
其他

你管这破玩意叫 IO 多路复用?

函数仍然是阻塞的,需要等待数据从内核缓冲区拷贝到用户缓冲区,才能返回。整体流程如下图IO多路复用为每个客户端创建一个线程,服务器端的线程资源很容易被耗光。当然还有个聪明的办法,我们可以每
2021年4月2日
其他

90 后用 HTTP 写的恋爱日记

效率不高的问题?我不太开心,我还是喜欢我的HTTP协议。server还问我能不能也把HTTP也优化优化,无语,我通过我的HTTP已经和她谈了18年的恋爱了。就这样吧,不想写了,爱咋咋地。2015年
2021年3月31日
其他

深入揭秘 epoll 是如何实现 IO 多路复用的!

上是否有被阻塞的进程,如果有唤醒之。为了介绍到每个细节,本文涉及到的流程比较多,把阻塞都介绍进来了。但其实在实践中,只要活儿足够的多,epoll_wait
2021年3月30日
其他

清华毕业的老板要我开发一个简单的工作流引擎

↓推荐关注↓第1关一天,老板找到我,说要做个简单的工作流引擎。我查了一天啥是工作流,然后做出了如下版本:按顺序添加任意个审批人组成一个链表,最后加一个结束节点记录当前审批人,当审批完后,审批人向后移动一位当审批人对应结束节点时,流程结束老板:简陋了点。第2关老板又来了:要支持会签节点。我又查了一天啥是会签节点,发现会签节点就是一个大节点,里面有很多审批人,当这个大节点里的所有人都审批通过后,才能进入下一个节点。我想了一个星期,推翻了原来的链表式设计:结构上我做了如下调整:把节点分为两大类:简单节点(上图中长方形)和复杂节点(上图中圆形)。用一棵树表示整个流程,其中叶子节点都是简单节点,简单节点都是叶子节点。每个简单节点里都有且仅有有一个审批人。复杂节点包含若干个子节点。加入会签节点:
2021年3月29日
其他

37张图详解MAC地址、以太网、二层转发、VLAN

地址的数据帧时,交换机就会更新这个条目的老化计时器,确保活跃的的条目不会老化。但是如果在老化时间内都没收到匹配这个条目的数据帧,交换机就会将这个老化的条目从自己的
2021年3月28日
其他

这次答应我,一举拿下 I/O 多路复用!

Socket,这相当于客户端和服务器都开了一个“口子”,双方读取和发送数据的时候,都通过这个“口子”。这样一看,是不是觉得很像弄了一根网线,一头插在客户端,一头插在服务端,然后进行通信。创建
2021年3月27日
其他

百亿级流量的百度搜索中台,是怎么做可观测性建设的?

导读:百度搜索中台系统不但承接了搜索的阿拉丁流量,也致力于构建各个垂直业务的搜索能力。随着业务的不断发展,系统的流量规模已经达到百亿级别。而在百亿流量的背后,是千级别的微服务模块和数十万的实例数量,如何保证这套复杂系统的高可用、高性能和高可控,全要素多维度的可观测性成为搜索中台系统能力的关键。本文首先会介绍什么是可观测性以及云原生时代为什么更要关注可观测性,然后阐述搜索中台是如何以极低的机器成本打造百亿流量的实时指标监控(Metrics)、分布式追踪(Traces)、日志查询(Logs)和拓扑分析(Topos)。一、云原生和可观测性(Observability)1)什么是可观测性大家对监控并不陌生,只要有系统存在,就需要有监控帮我们去感知系统发生的问题。而随着业界传统技术架构往云原生架构的迈进,可观测性逐渐在越来越多的场合中被提到。如Distributed
2021年3月26日
其他

Facebook 工程师总结的 14 种算法面试模式

↓推荐关注↓咱们在面试程序员岗位时往往需要经历一个编程面试过程,雇主会借此考验面试者的技术实力。然而,这些技术问题有时候却和我们的实际工作并无太大关系,也由此可能给我们的编程面试准备阶段带来很大的压力。曾在
2021年3月25日
自由知乎 自由微博
其他

好家伙,你管这破玩意叫文件系统?

表中取出,再把文件名和文件类型取出,这很是浪费时间。而让用户看到一个目录下的所有文件,又是一个极其常见的操作。所以,不如把文件名和文件类型这种常见的信息,放在数据块中的结构体里吧。同时,inode
2021年3月24日
其他

为什么 sin(x²)+sin(y²)=1 的图像这么复杂?

(给PHP开发者加星标,提升PHP技能)来源:数学职业家其原因有两条:一是看似简单的数学公式可以生成十分复杂的图像图形,二是看似十分复杂的图像图形可以由简单的数学公式实现。显然这两句话是一个意思,也并没有什么营养。不如先给大家讲个段子:妹妹看到哥哥在抓耳挠腮地做作业,就跑过去问:“哥哥,你在做什么作业?”哥哥回答:“数学。”妹妹看了一眼哥哥写的东西,就说:“你骗人,你明明写的都是英文。”哥哥含着眼泪对妹妹说:“妹子,你还太小,数学的险恶你还不懂!本来我的数学学得非常好,直到有一天,他们丧心病狂地在数字里添加了字母!”最初我以为笑话里讲的“数字里添加的字母”是代数里用的x、y、z。后来我慢慢意识到,罪孽深重最大恶极的sin会导致数学变得更加险恶。为了洞悉数学的险恶,我曾试图将数学以图形图像的方式显示出来,并写过几个程序DEMO可以利用数学公式转化成图形图像。DEMO发在叶飞影
2021年3月23日
其他

这是我见过最秀的代码注释

/**********/**********/**********//**********//**********//**********//**********/
2021年3月22日
其他

老大说了,谁再用乱用 select 就开除…

在你的程序中,并且依赖ResultSet(返回结果)的列顺序,那么如果修改了表结构(添加或者删除字段)可能会影响返回结果的列顺序,从而可能导致你的程序数据错误或者程序异常。第五宗
2021年3月20日
其他

图解:深入理解高性能网络开发路上的绊脚石,同步阻塞网络 IO

上等待而被阻塞的进程就被推入到可运行队列里了,这又将是一次进程上下文切换的开销。小结好了,我们把上面的流程总结一下。内核在通知网络包的运行环境分两部分:第一部分是我们自己代码所在的进程,我们调用的
2021年3月19日
其他

吓人!半夜,这个程序从虚拟机里跑出来了!

误入陷阱夜黑风高,两个不速之客又一次来到了一片新的土地。“老二,总算进来了,咱们依计行事,你去扫描硬盘上的文件,看看有没有有价值的,我去修改开机启动项,把咱们加进去。”“等一下,老大,我感觉有点不对劲。”“哪里不对劲了?”老大问道。“我们去过的其他地方都很热闹,这里怎么这么安静?你看,连QQ、微信这些进程都没有!”老二说道。老大环顾四周,也察觉到了一丝异常。稍等了一小会儿,老大突然惊呼:“不好!这里是个虚拟机,咱们掉入虚拟机中了!”“你怎么看出这是一个虚拟机的?”老二不解地问道。“你看,那里有个vmware的进程,注册表里还有一堆vmware的标记。”“那怎么办?完蛋了,咱们要被人扒得干干净净了~”老二一脸焦急。老大眉头紧锁,来回踱步,突然面露喜色说道:“别着急,临行前,主人偷偷给了我一个锦囊,叮嘱我在紧急时候打开。”“那还等什么?赶紧拿出来啊!”老大从兜里掏出了锦囊,里面有一纸信,两人认真地看了起来。片刻之后,老大大声笑道:“老弟!稳了!”老二一脸问号,没太明白:“大哥,恕我眼拙,这怎么就稳了?”“你看这里,主人交代了虚拟机逃逸大法,告诉我们如何从虚拟机中逃离。”“大哥,小声一点,小心被发现了。咱们快开始行动吧,晚了说不定就来不及了。”“别急,让我仔细研究一下。”信纸上密密麻麻写了一大堆,看起来有些复杂的样子,两个人刚刚放松的眉头又慢慢皱了起来。没一会儿,老二失去了耐心:“大哥,这也太复杂了,我是看不懂了,靠你了。”“我明白了,虚拟机会和外面的真实世界通信,咱们只要抓住通信过程中的漏洞,把我们的指令代码掺杂在通信数据中,让外面世界负责通信的一端执行这些指令代码,咱们就能传输过去,逃逸到外面的真实世界去!”“原来如此,可咱上哪里去找这样的漏洞呢?”“有了,看这里,主人给我们找了好几个漏洞,真是太贴心了!”CVE-2016-7461CVE-2017-4901CVE-2019-14378“这一串串字符和数字是什么意思?”老二问道。“这个呀,叫漏洞编号,CVE就Common
2021年3月18日
其他

反对 PHP 协程提案,Swoole 创始人被质疑存私心

不会对使用者造成很大的维护负担,却又能满足很多人的项目需求,他们可以在此基础上进行更多实现,为用户开放了探索各种协程方案的可能。因此,这一部分开发者认为没有理由反对将
2021年3月17日
其他

简直暴利?四川某加密币矿场实拍曝光,一天营收 6300 多万

(给PHP开发者加星标,提升PHP技能)转自:快科技“挖矿”的疯狂就不用多说了,而之所以如此,都是超高的利润所致,也再次证实了《资本论》里说的是多么精辟。近日,有媒体报道了四川某加密货币矿场运作的情况,令人大开眼界。据称,这个矿场总共拥有多达21万台矿机,每100台矿机24小时不间断运行,可以产出2.7个以太坊。以太坊当前报价约1785美元,如此算下来每100台矿机一天就能入账超过3万元,整个矿场一天下来就是至少6300万元,其利润可想而知。从实拍图看,整个矿场就像一个巨大无比的仓库,内部是一排排的货架,上边摆满了矿机,堆积如山,而外部墙壁上市整整齐齐、密密麻麻的大型风扇。值得注意的是,矿场就建在高压塔之下,而在高压塔和矿场之间还有各种变压器等设备,由此可知其对电力的需求和消耗多么惊人。而在空地上,还凌乱地散落着大量的显卡包装盒,各种牌子都有,都是RTX
2021年3月15日
其他

经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么

地址的车票」。因此,即使旅客(数据链路层)不知道其最终目的地也没有关系,工作人员(网络层)会给你做出指引。实际上,网络层做出指引的过程,我们将其称为「路由控制」,其中又涉及到了路由协议比如
2021年3月12日
其他

TCP:一个悲伤的故事

站,可以更快!3、为什么CTO、技术总监、架构师都不写代码,还这么牛逼?看完本文有收获?请分享给更多人推荐关注「PHP开发者」,提升PHP技能点赞和在看就是最大的支持❤️
2021年3月11日
其他

关于 TCP 三次握手和四次挥手,满分回答在此

站,可以更快!2、为什么CTO、技术总监、架构师都不写代码,还这么牛逼?3、再见!经典版Edge!看完本文有收获?请分享给更多人推荐关注「PHP开发者」,提升PHP技能点赞和在看就是最大的支持❤️
2021年3月10日
其他

这样看 B 站,可以更快!

Stream,用于响应对方,告诉它刚发的字典已经更新到自己的本地动态表了,后续就可以使用这个字典来编码了。这两个特殊的单向流是用来同步双方的动态表,编码方收到解码方更新确认的通知后,才使用动态表编码
2021年3月9日
其他

为什么CTO、技术总监、架构师都不写代码,还这么牛逼?

常常会被问到这样的问题:CTO、技术总监、架构师很少写具体代码,为什么还很牛逼的样子,拿这么高工资?其实,这个问题本身就错了。就好比问:导演、制片人为什么不懂演戏,还能指导演员,好像比演员厉害似的?其实不难理解,导演、制片人的核心能力并不是演戏,又怎么能跟演员作比较呢?回答前面的问题,逻辑也是一样的,拿CTO、技术总监、架构师,跟程序员比写代码的能力,本身就是个错误。因为,他们的核心能力是不一样的。CTO、技术总监、架构师的核心能力是技术判断力。简单来讲,就是判断一个项目、一个系统架构、某个技术方向,是否符合企业当前现状,是否对企业的未来产生价值。程序员的核心能力是写代码的能力。就是做具体的代码实现。所以CTO/技术总监/架构师,跟程序员的核心能力,是完全不一样的能力,是没法作直接比较的。通常我们说,CTO、技术总监、架构师们很牛逼,指的是他们的技术判断力牛逼,而不是他们写代码的能力牛逼。相反,他们写代码的能力可能还比不上一个资深程序员。但是,他们所做的技术判断,给公司带来非常高的价值。比如,阿里云创始人王坚博士,在所有人反对的时候,他坚持云计算是未来,帮助阿里提前布局云计算,为阿里成长为万亿商业帝国,立下汗马功劳。这就是技术判断力,给企业带来的巨大价值。大家之所以都很容易混淆这几个角色,以及它们的职责,其实很重要的一个原因就是,人们常常把CTO、架构师、技术经理的头衔,乱授予技术负责人。在国内这种现象尤其严重。比如,一个初创公司的技术负责人,实际干的活就是个技术经理。老板为了显得高大上,硬要给他安一个CTO的头衔。这种情况很普遍,特别是全民创业的那几年,遍地都是CTO。为了说清楚技术负责人的职责,我们以一个电商公司的成长为例,讲解企业在初创期、发展期、成熟期的不同阶段,都需要什么样的技术负责人,以及他们具体都干些什么。第一阶段,高级程序员实现复杂功能,解决技术难题一个刚刚起步的创业公司,通常只有几个程序员,甚至连产品经理、项目经理都没有,老板自己就是产品经理,把想法跟开发人员一说,就快速地做出原型。如果这个阶段对开发的能力不满,那么大概需要的只是一个高级开发人员,他能搞定一般的技术难题,实现复杂功能,思路清晰、干活利索。千万不要去大厂挖个技术总监,你家庙太小,供不起这么大的神,他真来了也发挥不了应有的作用。老读者知道,老K有过一段创业经历,当时追随我的老领导出来创业,我就是名义上的CTO,带了7、8人的团队,我还同时带了两个项目,每个项目里我都贡献了30%以上的代码量。其实,当时的我,就是个高级程序员而已。小结一下,高级程序员的主要职责是:实现复杂功能,编写核心代码;处理线上bug,解决技术难题。第二阶段,技术经理交付效率提高、质量提升当公司的业务发展起来后,就需要一支相对完善的技术团队,有了专职产品经理、测试人员等,团队规模在15人左右,专注于一条产品线。复杂功能、技术难题,高级开发人员可以搞定,但是如果要解决开发团队效率、技术人员能力提升、代码质量和编码规范等,就需要技术经理了。技术经理通常写少量的代码,更多做技术管理、项目团队等工作。这就是许多创业公司A轮融资前的情况。由技术经理总体负责技术团队,产品经理对接业务需求,做产品规划、竞品分析,而不是抄袭哪个App。小结一下,技术经理的职责是:开发任务分派。开发工作量评估、分派,最大化资源利用率;代码质量提升。Code
2021年3月8日
其他

再见!经典版Edge!

Update自动执行。在今年4月13日补丁星期二活动日中,没有安装基于Chromium的Edge的用户将会安装该浏览器,除此之外,经典版的Edge也将会从操作系统中移除。如果你已经安装了
2021年3月7日
其他

图解:原来这就是网络

开头的全部发送给到路由器,之后再怎么转发,交给它!",巧妙吧。那交给路由器之后,路由器又是怎么把数据包准确转发给指定设备的呢?别急我们慢慢来。我们先给上面的组网方式中的每一台设备,加上自己的
2021年3月6日
其他

CTO 太水,犯了低级错误,还故意删除代码隐藏证据

文档中有明确的示例说明(https://guides.rubyonrails.org/security.html#sql-injection),甚至示例与该提交中所讨论的代码完全一样,所以这个技术在
2021年3月5日
其他

从 "�" 到 "锟斤拷",这都是些啥玩意?

编码里面就是:锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)。锟斤拷(可向右滑动)现在,你知道了吗?最后,你知道开篇的五言绝句,另外的梗是来自哪里吗?-
2021年3月4日
其他

一款号称最适合程序员的编程字体

(给PHP开发者加星标,提升PHP技能)转自:IT之家https://www.ithome.com/0/468/814.htmJetBrains在2020年的时候推出了一种新字体,即JetBrains
2021年3月2日
其他

五分钟扫盲:进程与线程基础必知

CPU、内存、网络资源等。很多小伙伴在回答进程的概念的时候,往往只会说它是一个运行的实体,而会忽略掉进程所占据的资源。比如说,同样一个程序,同一时刻被两次运行了,那么他们就是两个独立的进程。②
2021年2月27日
其他

一篇搞懂TCP、HTTP、Socket、Socket连接池

(给PHP开发者加星标,提升PHP技能)转自:rebarebahttps://segmentfault.com/a/1190000014044351前言作为一名开发人员我们经常会听到HTTP协议、TCP/IP协议、UDP协议、Socket、Socket长连接、Socket连接池等字眼,然而它们之间的关系、区别及原理并不是所有人都能理解清楚,这篇文章就从网络协议基础开始到Socket连接池,一步一步解释他们之间的关系。七层网络模型首先从网络通信的分层模型讲起:七层模型,亦称OSI(Open
2021年2月26日
其他

试用期没过,因在公司上了1024网站...

HTTPS,访问的域名信息也是裸奔状态。你上班期间访问小电影网站,都留下了痕迹,若接入了公司网络,就自然而然被抓个正着。除了域名是裸奔外,其实还有更严重的风险,那就是中间人攻击。中间人攻击前面也提到
2021年2月25日
其他

漫画:我把面试官整崩溃了

今天这篇是《漫画|遇上一个傻X领导是什么体验?》下半部分,还没有看过的朋友可以先看一下哦,讲述的是上一篇中王大拿受不了不懂技术的领导,各种无理的需求与内卷,有了跑路的想法,在面试中发生的一系列故事…编后
2021年2月24日
其他

漫画:Bug是如何产生的?

Bug是如何产生的https://www.zhihu.com/question/365343579/answer/967299388文中部分素材来源网络,如有侵权,请联系删除后记
2021年2月23日
其他

从崩溃的选课系统,论为什么更安全的 HTTPS 协议没有被全面采用

后的结果一致,那么客户端便可明确两件事情:认证服务器的公开密钥的是真实有效的数字证书认证机构服务器的公开密钥是值得信赖的OK,这么说还不太清楚,我们先来了解什么是数字签名?数字证书认证机构
2021年2月22日
其他

讨厌手写,印度小哥开源了一个手写体转换工具,支持中文

按钮,即可生成手写体图片。比较贴心的是,生成的图片手写体还能自定义背景图片,这样生成出来的图片就不会太过于单调了。生成的图片可以下载,并且也可以生成PDF文件。也可以使用自定义的字体,自定义字体生成
2021年2月19日
其他

乱发短信的脉脉终于败诉了,网友:早就该判刑了

莫名其妙的推广短信可能不少人收到过类似下面这样的短信:【脉脉职场】王X,有前同事标注你为‘有两把刷子’并向你推荐了119个职业人脉,刘某、戴某、王某等36个好友也在脉脉等你,点击链接领取验证码,24小时有效。上面这条短信就是王淼在
2021年2月10日
其他

“华为天才少年”自制百大Up奖杯,网友:技术难度不高侮辱性极强

(给PHP开发者加星标,提升PHP技能)来源:雷锋网B站硬核黑科技Up主、AI算法工程师稚晖君,停更了好一阵子后,这位自称野生钢铁侠的超硬核Up主终于又发布了新作品。之所以停更这么久,Up主解释说,不是因为在野外被捕了,纯粹是因为工作太忙了。熟悉稚晖君的同学都知道,他已经加入了“华为天才少年”计划。稚晖君2018年从电子科技大学毕业,之后加入OPPO,从事算法研发工作。在此前的视频中,他说,在华为、头条、拼多多、优必选以及一些外企等一线科技公司发来的Offer中,最终选择了华为。话说回来,这次稚晖君带来了什么硬核黑科技?他在视频中说,这次的更新是趁周末肝了20多个小时的作品,名叫HoloCubic,翻译过来就是分体式迷你高清光学影像分光投射桌面网络终端设备。简称“透明小电视”,也就是这个亚子。1自制透明小电视HoloCubic这个透明小电视中加入了Wifi功能,可以实时显示天气预报。或者一些常规信息流。比如B站的粉丝数据,电脑后台的运行情况,如CPU、内存占用、温度、网速等。除此之外,它还可以作为一个手机桌面小配件,接收到短息、通知等消息。又或者通过订阅图片数据流来把它当做一个桌面小相册。如果显示还不过瘾,它甚至还自带了输入法功能。看到这里,有同学可能会好奇,这个小电视一个按键都没有,如何实现功能的切换或文本输入?Up主解释说,小电视的底层系统内置了加速度计和陀螺仪,只要像这样,左右摇一摇,就可以实现多功能和模块之间的切换了。另外他还强调,HopCubic不仅是一个功能非常多的炫酷显示屏,还可以作为一个ESP32开发板来使用,结合它的网络能力以及代码框架,还可以实现很多好玩的功能。2实现过程有朋友可能知道,稚晖君三个月前开发过一个硬核“小电视”项目。当时这个项目收割了近500万的观看量、70万点赞,还被小破站收录为入站必刷视频。不过,当时这款小电视使用的是ARM-Linux的板子,多少有些大材小用,所需要的成本和技术难度也都比较高。为了让大家能够轻松复现,在这款小电视项目中,Up主要没有采用高性能的SOC,而是采用了非常流行的MUC方案—ESP32开发板。软件框架也使用了比较简单,容易上手的Arduino来进行实现。总体路线图大概分为电路、软件和结构三个部分。在电路设计方面,Up主遵循高集成度、紧凑设计路线,最终的电路板大概只有一个硬币大小,上面集成了ESP32最小系统、串口以及下载电路、一个MPU6050六轴加速度计和陀螺仪、环境光传感器、一个RGB灯、板载的WiFi和蓝牙天线,以及一个SD卡槽。这块电路主板通过ffc的排线与IPS主屏幕进行进行连接,大概形成这个样子。然后通过光固化3D打印出来,硬件实物就OK了。接下来是为硬件注入灵魂,也及时软件代码的编写。Up主介绍,软件部分大概分为三个模块,一是设备驱动移植与开发,包括屏幕驱动、RGB驱动、IMU驱动,其中一些是借用现有开源的轮子,另一部分是自己开发的。二是GUI库(lvgl)移植适配。需要说明的是,考虑到所选用EPS32-PICO-D4开发板,其硬件资源有限,而内置SRAM卡内存只有500K,无法带动复杂图形的桌面,因此Up主使用了轻量级图形库lvgl,并完成了显示接口、文件设备以及输入设备的移植。最后一环就是基于APP的上层开发,也就是基于底层框架实现各种逻辑和功能,如上上面我们介绍的显示天气预报,后台信息流、手机通知以及小相册等。以上所有硬件和软件代码,Up主已经在GitHub全部开源。感兴趣的朋友,可以猛戳此这里:https://github.com/peng-zhihui/HoloCubic3自制硬核百大Up奖杯有意思的是,最后Up主用这个透明小电视还自制了一个百大Up奖杯!原来最近B站发起了2020百大Up主评选&颁奖活动,稚晖君也作为嘉宾之一被邀请参加了。如果不拿一个奖杯岂不是有些遗憾,于是一顿操作猛如虎后......一个赛博朋克风的奖杯就这样诞生了!看到这里,网友们一时间也不淡定了!视频最后,Up主强调项目技术难度不高,可复现极强,感兴趣可以在GitHub主页了解一下。听到这里,不少网友评论也是扎心了,“技术难度不高,但侮辱性极强”。引用链接:https://www.bilibili.com/video/BV1VA411p7MDhttps://space.bilibili.com/20259914?from=search&seid=17861804911948281730-
2021年2月8日
其他

VSCode 必知必会的 20 个快捷键!(文末附完整PDF)

大罗并不是每一个开发者都有足够的时间,去了解熟悉所有的快捷键,来帮助我们提高编码效率。因为快捷键实在是太多了。所以,下面我列出了我最喜欢的快捷键。多行转一行在
2021年2月6日
其他

好家伙!30% 国外程序员每天“摸鱼”四五个小时,国内似乎更严重…

install之后可以摸鱼看两眼微博。😂@Funarp:我每天除了睡觉吃饭和刷微博就在“工作”,只不过大部分时间都在东学学西看看,实际编码的有效时间可能就4-6小时吧
2021年2月3日
其他

说出来你可能不信,内核这家伙在内存的使用上给自己开了个小灶!

现在你可能还觉得node、zone、伙伴系统、slab这些东东还有那么一点点陌生。别怕,接下来我们结合动手观察,把它们逐个来展开细说。(下面的讨论都基于Linux
2021年2月2日
其他

惊呆了!一个程序员的水平能差到什么程度?

(给PHP开发者加星标,提升PHP技能)转自:知乎https://www.zhihu.com/question/314644210知乎上有一个灵魂拷问“一个程序员的水平能差到什么程度?”让各位猿们纷纷有感而发。一时吐槽爽,一直吐槽一直爽。很多回答都引发了程序员的共鸣。0、网友
2021年2月1日
其他

再见 Win10!下一代操作系统要来了!

GraphQL3、实锤了!史上最惨的新浪程序员看完本文有收获?请分享给更多人推荐关注「PHP开发者」,提升PHP技能点赞和在看就是最大的支持❤️
2021年1月30日
其他

Eclipse 出品,1.3 万 Star!网友说要干掉 VS Code 的新工具

参数是用来避免死进程问题的。假设此刻的目录为:/Users/jerry/workspace/testbox,在该目录下执行上面的命令,我们来看看结果:docker
2021年1月28日
其他

实锤了!史上最惨的新浪程序员

加班,程序员最怕的事情之一婚礼中途加班,那更不用说了……2017
2021年1月25日
其他

我为什么要放弃 RESTful,选择拥抱 GraphQL

有更加灵活的技术栈选择,能够实现在网络协议层面优化应用。举个经典的例子:前端向后端请求一个book对象的数据及其作者信息。我用动图来分别演示下REST和GraphQL是怎么样的一个过程。先看REST
2021年1月23日