1、2018年总结:向死而生,为爱而活——忆编程青椒的戎马岁月
悟以往已不见,知来者之可追。2018年就要这样过去了,这已是我在CSDN写下的第六篇年终总结。回首,2013年我感悟到《一万年太久,只争朝夕》;2014年本科毕业,我抒写下《回忆大学四年的得与失》;2015年我放弃北上广,选择回到贵州,感叹《无他,唯心向尔》和《再见北理工》;2016年我成为了一名大学青年教师(青椒),年终总结是《教书路的开启,爱情味的初尝》;2017年被借调到省发改委学习一年,我留下《人生百味,有你真好》。
2018年,我又写点什么呢?
孔子曾说“未知生焉知死”,古人亦云“置之死地而后生”,那我就写一篇《向死而生,为爱而活——忆编程青椒的戎马岁月》。这一年,依旧很辛苦,秀璋在困难和死寂中挣扎,数不清的加班,尝不尽的酸甜;这一年,因为有爱,爱情、友情、亲情、师生情,秀璋为爱而活,向阳而生,留下的片片精彩,都是属于他和她的回忆。点此阅读原文。
2、大数据预测CSDN2018博客之星评选结果
闲话不多说,我们直接用数据说话。(因为绝大多数同学都只是关心一下结果,后面再给大家演示数据是怎么得到的)
按照CSDN的要求:
自荐方式如下:在评论中放上您的CSDN博客地址、并进行简要说明。
候选人自荐截止时间为2018年12月11日中午12点。则目前为止自荐参与人数807。
结果到底如何,点击查看原文一探究竟。
3、JetBrains开发者日见闻(一)之Kotlin/Native 尝鲜篇
前段时间你们的熊猫小哥哥(也就是我),由于对Kotlin过度热爱,一天偶然看到2018 JetBrains开发者日-Kotlin专场活动,脑袋一热,瞬间心动了,马上就买了门票和火车票去北京(第一次一个人去北京)参加活动了。因为看到有Kotlin中文社区两位大佬(这两位大佬是我一年多以前开始写Kotlin的时候就关注了他们)的演讲日程以及JetBrains资深布道师Hali的演讲,没有过多思考直接买票,不要怂就是干。最后顺便和Kotlin社区的大佬们面个基啥的,谢谢大佬们的热情款待。此次北京之行收获挺多的,有时候知道一些最新技术方向和动态会比你埋头闭门造车好的很多。
所以总结了一下结合自己实际的开发,给大家带来以下几篇文章。
1、Kotlin/Native1.0 Beta(尝鲜篇)
2、Kotlin中1.3版本新特性都有哪些?
3、Kotlin中的Coroutine(协程)在Android上应用(协程学前班篇)
4、Ktor异步框架初体验(Ktor学前班篇)
点击查看原文,获取博主更多Kotlin干货。
4、Golang-Scheduler原理解析
本文主要分析Golang里面对于协程的调度原理,本文与Golang的memory allocation、channel、garbage collection这三个主题是紧密相关的,本文scheduler作为系列的第一篇文章。
文章大体上的思路是这样的:
section1:主要图示和文字介绍scheduler的原理;
section2:主要模型的角度介绍scheduler原理;
section3:从主要调度流程介绍scheduler原理;
section4:分析scheduler与memory allocation、channel、garbage collection关联部分
基于源码 Go SDK 1.11
查看更多Golang语言干货,点击作者博客主页学习。
5、Person Re-ID相关知识点、数据集及评估指标总结
人脸识别技术目前已发展的较为成熟,在很多场景与产品中都已有落地的应用,但人脸识别技术只能用到人体的人脸信息,而人体的其他重要信息得不到充分的利用,例如:衣着、姿态、行为等。另外在应用时必须要有清晰的人脸正面照片,但在很多场景下无法满足要求,例如低头、背影、模糊身形、帽子遮挡等等。
行人重识别(Person Re-ID)技术正好能够弥补人脸识别的这些不足之处,行Person Re-ID能够根据行人的穿着、体态等信息认知行人,对行人目标进行跨摄像头跟踪。这将AI的认知水平提高到一个新的阶段,现在Person Re-ID已成为AI领域的重要研究方向。点击阅读原文。
6、Tensorflow数据读取机制及tfrecords高效读取数据
假设我们的硬盘中有一个图片数据集0001.jpg,0002.jpg,0003.jpg……我们只需要把它们读取到内存中,然后提供给GPU或是CPU进行计算就可以了。这听起来很容易,但事实远没有那么简单。事实上,我们必须要把数据先读入后才能进行计算,假设读入用时0.1s,计算用时0.9s,那么就意味着每过1s,GPU都会有0.1s无事可做,这就大大降低了运算的效率。
如何解决这个问题?方法就是将读入数据和计算分别放在两个线程中,将数据读入内存的一个队列,如下图所示:
读取线程源源不断地将文件系统中的图片读入到内存队列中,而负责计算的是另一个线程,计算需要数据时,直接从内存队列中取就可以了。这样就可以解决GPU因为IO而空闲的问题!点击阅读原文。
7、Android官方架构组件ViewModel:从前世今生到追本溯源
2017年的Google I/O大会上,Google推出了一系列譬如 Lifecycle、ViewModel、LiveData等一系列 更适合用于MVVM模式开发 的架构组件。
本文的主角就是 ViewModel ,也许有朋友会提出质疑:
ViewModel 这么简单的东西,从API的使用到源码分析,相关内容都烂大街了,你这篇文章还能翻出什么花来?
我无法反驳,事实上,阅读本文的您可能对MVVM的代码已经 驾轻就熟,甚至是经历了完整项目的洗礼,但我依然想做一次大胆地写作尝试—— 即使对于MVVM模式的思想噗之以鼻,或者已经熟练使用MVVM,本文也尽量让您有所收获,至少阅读体验不那么枯燥。点此阅读全文。
8、从源码角度分析android事件分发处理机制
和拦截处理机制详解一样,为了系统的研究Android对事件的处理,我写了一个小demo对不同的情况进行测试并结合源码分析(多说一句,其实看源码确实很枯燥,有时候因为水平有限有的部分看不懂而查阅大量资料,笨人有笨法:结合demo测试验证和理解,虽然效率低但是效果不错),可以得出如下的结论(至于结论的由来,下面会说明):
1)android对事件分发的顺序为:Activity–>PhoneWindow->DecorView->yourView;
2)android控件对事件处理的优先级:onTouch>onTouchEvent>onClick
点击阅读原文。
9、Flutter项目结构及demo代码详解
在之前的博客中我们搭建了Flutter的开发环境,并且创建了一项目,项目默认就生成了一些代码,学习任何语言第一步一般都是从入口函数着手,然后一步一步往下走。
本篇博客我们就以默认生成的项目为准,着重的介绍一下Flutter项目的目录结构及代码详解。点此阅读原文。
10、React Native Android混合开发实用教程
在React Native的应用场景中,有时候一个APP只有部分页面是由React Native实现的,比如:我们常用的携程App,它的首页下的很多模块都是由React Native实现的,这种开发模式被称为混合开发。
作者博客里还有一篇 React Native iOS混合开发实用教程,一并分享给大家。
11、让你可以装逼的算法技巧总结
今天和大家讲讲,在做算法题时常用的一些技巧。对于平时没用过这些技巧的人,或许你可以考虑试着去看看在实践中能否用的上这些技巧来优化问题的解。
程序员学点算法总是好的,快速前往查看原文。
12、手把手教你如何玩转Shiro(项目实践落实)
shiro框架是一个权限管理开源框架,也是非常容易整合的。在之前的博文中,我对权限管理,shiro基本知识,spring整合shiro等相关处理都进行了非常详细的讲解。点击阅读原文。
13、从一个简单需求学习微服务思想
从一个案例来看,如何在做架构设计时利用微服务的思想来帮我们解决问题。公司对产品服务的管理目前还停留在物理机的那种理念,虽然阿里云、AWS、腾讯云、OpenStack等云平台用的不亦乐乎,但仍然停留在针对hostname和ip的管理上。如果想发布一个新版本,需要将设计到的所有机器的ip整理到一起,然后借助Ansible将产品更新上去。点击阅读原文。
14、搭建Elasitc stack集群需要注意的日志问题
搭建Elasitc stack集群时,我们往往把大部分注意力放在集群的搭建,索引的优化,分片的设置上等具体的调优参数上,很少有人会去关心Elasitc stack的日志配置的问题,大概是觉得,日志应该是一个公共的问题,默认的配置应该已经为我们处理好了。但很不幸,在不同的机器配置或者不同的运营策略下,如果采用默认的配置,会给我们带来麻烦。点击阅读原文。
15、如何通过 Matplotlib 绘制动画及保存 GIF 图片?
在自学机器学习或者是深度学习的过程中,有的时候总想把执行过程或者执行结果显示出来,所以就想到了动画。好在用 Python 实现动画有许多中方式,而大家熟知的 Matplotlib 库就可以实现。
本文的目的是对 Matplotlib 的动画实现手段做一个简单的说明。点击阅读原文。
16、华为KubeEdge在边缘计算的实践
在本文中,我们为Edge-cloud通信和执行环境引入了Edge基础架构(KubeEdge),我们将其视为云基础架构的扩展。此边缘基础架构允许Edge采用现有云服务和云开发模型,并提供边缘和云之间的无缝通信。KubeEdge包括一个名为KubeBus的网络协议栈,一个分布式边缘元数据存储/同步服务和一个应用程序编排服务。KubeBus旨在拥有自己的OSI第2/3/4层协议实现,支持将云端的边缘节点和虚拟机连接为一个VPN,并为不同租户的边缘集群提供通用的多租户管理/数据平面。在Cloud和Edge中运行的服务在KubeBus之上相互通信,具有容错性和高可用性。KubeEdge中的Edge元数据服务提供边缘元数据存储和服务,以在云和Edge之间同步元数据,以支持边缘节点脱机方案。KubeEdge包括Kubernetes 扩展,以便Kubernetes可以管理Edge Nodes以及Cloud中的VM,并部署/管理Edge Nodes的应用程序。点击阅读原文。
17、React Native JSBundle拆包之原理篇
RN作为一款非常优秀的移动端跨平台开发框架,在近几年得到众多开发者的认可。纵观现在接入RN的大厂,如qq音乐、菜鸟、去哪儿,无疑不是将RN作为重点技术栈进行研发。
不过,熟悉RN的开发者也知道,早期的RN版本中打出来的包都只有一个jsbundle,而这个jsbundle里面包含了所有代码(RN源码、第三方库代码和自己的业务代码)。如果是纯RN代码倒没什么关系,但大部分的大厂都是在原生应用内接入RN的,而且一个RN中又包含许多不同的业务,这些不同的业务很可能是不同部门开发的,这样一个库中就有许许多多的重复的RN代码和第三方库代码。
所以,一般做法都是将重复的RN代码和第三方库打包成一个基础包,然后各个业务在基础包的基础上进行开发,这样做的好处是可以降低对内存的占用,减少加载时间,减少热更新时流量带宽等,在优化方面起到了非常大的作用。点击阅读原文。
---------------------
作者:CSDN官方博客
来源:CSDN
原文:https://blog.csdn.net/blogdevteam/article/details/84992174
版权声明:本文为博主原创文章,转载请附上博文链接!