微信号:techweek

介绍:汇集每周重要 IT /互联网技术资讯和开发相关技术干货,就在「技术微周刊 」

第 1 期技术微周刊,又一家公司删生产数据库

2017-04-15 19:58 技术微周刊

 本期热点关注 


 

提醒:周刊中所有标题和段落中蓝色部分,都是可以点击的超链接。


1)今年2月4日,GitLab 发生了一次严重删库事故,事后GitLab官方对事故做了分析。本月初,知名 VPS 服务商 DigitalOcean 也出现了一次删除生产数据库的事故。删库导致 DigitalOcean 的控制面板和 API 无法正常使用,时间长达 4 小时 56 分。DigitalOcean 官博撰文致歉,并说明了事故前后过程。


2)几年前曾经抛弃了 GNOME,而是用定制的 Unity 来实现 Ubuntu 用户界面。不过现在,Canonical 在 Ubuntu 18.04 发行版里又重新用回了 GNOME,而放弃了 Unity。那么问题来了:为什么 Canonical 会放弃 Unity 呢?Ubuntu 是为了钱而放弃 Unity ? Linux 社区有哪些反应




业界资讯


Ubuntu GNOME 成为默认桌面,但用户依然可安装 Unity 7


当 Canonical 创始人Mark Shuttleworth 宣布不再继续开发Unity 8桌面环境之后,无疑在整个Linux社区引起轩然大波,而且产生了一系列连锁反应。Unity 8曾是Canonical力推的最新桌面环境,同时为Ubuntu的桌面和移动端打造统一高效的交互体验。但由于各种原因Unity的开发进度非常的缓慢,与之同时Ubuntu社区用户对于Unity 8的兴趣并没有想象中的那么大。


有用户会产生疑问:“Unity 7用户界面未来会怎么处理?是否会永久消失?”,对此我也非常想知道这个问题的答案,Mark Shuttleworth表示每个人依然能够通过库中安装Unity 7安装包。


Ubuntu 创始人抨击开源社区弥漫着“反社会人格”


对于GNOME拥趸来说,Ubuntu创始人Mark Shuttleworth近期宣布放弃Unity转而使用GNOME作为默认桌面,无疑是非常快乐的事情。然而这种快乐并没有持续多久,在社交网络 Shuttleworth 冒犯了自由社区上的部分用户。


在Google+上,他并没有压制自己对MIR显示服务的讨厌程序,甚至更胜于枪支管理和气候变化。甚至于在他的咆哮中,还称自由软件社区的成员为“极度反社会人格”


Nginx 持续攀升,市场份额突破 33.3%


据 w3techs 的最新统计数据表明,虽然全球还有 50% Web 服务器是在用 Apache,但已有 1/3 的在使用 Nginx,并且两者之间的差距正在迅速缩小。


2017 年美国科技公司薪资排行


美国雇主评价网站Glassdoor今日公布了2017年度美国薪水最高的20家科技公司。微软、谷歌、Facebook和Twitter等知名科技公司虽然均跻身该榜单,但并不是薪酬最高的科技公司。排名首位的是虚拟机软件厂商VMware,员工的平均薪酬总额为16.7050万美元。


DB-Engines 发布 4 月份全球数据库排名


DB-Engines 发布了 2017 年 4 月份的数据库排名。在本月的排行榜中,Top 3 分别是 Oracle、MySQL、SQLServer。总体排名情况与上个月并无太大变化,Redis 超越 SQLite 成为第九,MariaDB 超越SAP HANA 成为第 18,而 MariaDB 去年 4 月仅位居 21 名,看来还有继续上升的趋势。


PostgreSQL 10 新增特性


近日,PostgreSQL 10 新增多项新特性,给大家留下了深刻的印象,本文梳理了其中最主要的几项内容。



技术文章


1

后端开发


未来是属于算法的,不是代码


大数据的时代已经来临。数据带来的狂潮就犹如又一次工业革命一样席卷着人类。在大数据的时代,人类对世界的理解方法从有限具体向抽象过渡,这也就是为什么算法比代码更加重要的原因。


自动补全不算什么,一键直达目录才是终极神器


在命令行中切换目录是最常用的操作,不过很少有比一遍又一遍重复“cd ls cd ls cd ls ……”更令人沮丧的事情了。如果你不是百分百确定你想要进入的下一个目录的名字,那么你不得不使用ls来确认,然后使用cd来进入你想要进的那一个。所幸的是,现在大量的终端和shell语言提供了强大的自动补全功能来处理该问题。但是,你仍然需要一直疯狂地敲击TAB键来干这事。如果你和我一样懒惰,你一定会对autojump感到惊喜。


autojump是一个命令行工具,它允许你可以直接跳转到你喜爱的目录,而不用管你现在身在何处。


10 个常见的 Linux 终端仿真器


对于 Linux 用户来说,最重要的应用程序之一就是终端仿真器。它允许每个用户获得对 shell 的访问。而 Bash 是 Linux 和 UNIX 发行版中最常用的 shell,它很强大,对于新手和高级用户来说,掌握 bash 都很有必要。因此,在这篇文章中,你可以了解 Linux 用户有哪些优秀的终端仿真器可以选择。


在终端中优雅地编写 Python


最早我也只是在服务器上编辑文件的时候用用vim来改改程序,并没有把vim当做自己的主力编辑器。但是偶然的一次机会需要改一个奇葩的输入文件的格式,用了下Vim的宏录制,尝到了甜头,于是后面就开始用Vim来写程序了,虽然使用初期有些阻力,但时间久了就会发现,双手再也不用离开键盘,即使使用sublime这样的编辑器我也要改成使用Vim模式,Vim真的能让自己一思维的速度编辑文本 ( 对我来说就是写程序了 )


一行 Python 代码完成并行任务


众所周知,Python的并行处理能力很不理想。我认为如果不考虑线程和GIL的标准参数(它们大多是合法的),其原因不是因为技术不到位,而是我们的使用方法不恰当。大多数关于Python线程和多进程的教材虽然都很出色,但是内容繁琐冗长。它们的确在开篇铺陈了许多有用信息,但往往都不会涉及真正能提高日常工作的部分。


伪共享,并发编程无声的性能杀手(Java代码验证)


在并发编程过程中,我们大部分的焦点都放在如何控制共享变量的访问控制上(代码层面),但是很少人会关注系统硬件及 JVM 底层相关的影响因素。前段时间学习了一个牛X的高性能异步处理框架 Disruptor,它被誉为“最快的消息框架”,其 LMAX 架构能够在一个线程里每秒处理 6 百万订单!


在讲到 Disruptor 为什么这么快时,接触到了一个概念——伪共享( false sharing ),其中提到:缓存行上的写竞争是运行在 SMP 系统中并行线程实现可伸缩性最重要的限制因素。由于从代码中很难看出是否会出现伪共享,有人将其描述成无声的性能杀手。


Java 反射机制应用实践


本文需要读者对反射机制的API有一定程度的了解,如果之前没有接触过的话,建议先看一下官方文档的 Quick Start 


30 分钟掌握 C#7 新特性


通过实例学习 C# 7 的新特性。包括:out 变量、元组(Tuples)、模式匹配(Pattern matching)、局部引用和引用返回 (Ref locals and returns)、局部函数(Local functions)、Throw 表达式(Throw expressions) 等。


Redis 内存使用优化与存储


Redis 实际上的内存管理成本非常高,即占用了过多的内存,作者对这点也非常清楚,所以提供了一系列的参数和手段来控制和节省内存,本文对此进行了分析和讨论。



2

Web 前端


80% 应聘者都不及格的 JS 面试题


笔者在做面试官这 2 年多的时间内,面试了数百个前端工程师,惊讶的发现,超过 80% 的候选人对下面这道题的回答情况连及格都达不到。这究竟是怎样神奇的一道面试题?他考察了候选人的哪些能力?对正在读本文的你有什么启示?本文做了详细介绍。


2017 Web 开发者学习路线图


本文是源自 Github 上 Kamran Ahmed 建立的一个仓库。在文中,作者为他的老教授分享了一组成为前端与后端开发者以及 Devops 人员需要掌握的学习路线图,以便与他的学生们分享他们的观点。


浅谈图片宽度自适应解决方案


在网页设计中,随着响应式设计的到来,各种响应式设计方案层出不穷。对于图片响应式的问题也有很多前端开发人员在进行研究。比较好的图片响应式设想便是在不同的屏幕分辨率下使用不同实际尺寸的图片,而达到在高速网络环境中使用大或超大高清图片,在低速网络或需要替用户节省流量资源的环境中使用小而清晰的图片,保证用户无论在何种环境下都能有良好的浏览体验。


然而这是一个庞大而具有挑战的工作,我这里不做这个讨论,因为我目前还没有这方面很好的实践。这里我是要跟大家讨论下同一张图片在不同宽度的显示区域中的显示问题。


JavaScript 断点调试心得


断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了。操作起来似乎很简单,但还是有很多人不熟悉。在哪里打断点?断点怎么打才合适?作者中本文做了详细阐述。



3

移动端


iOS 编译过程的原理和应用


iOS开发目前的常用语言是:Objective和Swift。二者都是编译语言,换句话说都是需要编译才能执行的。二者的编译都是依赖于Clang + LLVM. 篇幅限制,本文只关注Objective C,因为原理上大同小异。


硅谷和国内的 iOS 开发到底有何不同?


前段时间在国内各大互联网公司转了一圈。与各位 iOS 业界大佬交流了之后,深感国内变化之大,敬佩诸位国内开发者的实力和韧劲。除此之外,我还发现硅谷和国内的 iOS 开发还是差别很大,且看本文慢慢道来。



4

机器学习


ML 工程师需了解的 10 大算法


毫无疑问,机器学习/人工智能的子领域在过去几年越来越流行。由于大数据是目前科技领域最热门的趋势,基于这些大规模的数据,机器学习在预测和计算建议方面变得不可思议的强大。最常见的机器学习的例子就是 Netflix(一家在线影片租赁提供商)的算法,它能基于你过去看过的电影来推荐电影,或着 Amazon 的算法,它能基于你过去买的书,来推荐书给你。


那么如果你想进一步了解机器学习,你应该怎样开始呢?作者在本文推荐了ML 工程师需了解的 10 大算法。


进行数据挖掘的 8 个最佳开源工具


数据挖掘,又称为资料探勘、数据采矿。它是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤,是一个挖掘和分析大量数据并从中提取信息的过程。其中一些应用包括市场细分 - 如识别客户从特定品牌购买特定产品的特征,欺诈检测 - 识别可能导致在线欺诈的交易模式等。在本文中,我们整理了进行数据挖掘的 8 个最佳开源工具。



5

技术人生


技术的成长曲线


很多技术人员在工作一两年之后,对工作周围的事情都驾轻就熟了,就可能会陷入第一个瓶颈期,再难突破。这篇文章中,作者分享自己对技术成长曲线的观点:技术的成长过程并非匀速线性的,而是分阶段的。每个高速增长的突破期后面,都跟着一个平缓的增长期,可以称为舒适期,也可以称为瓶颈期。舒适期是针对过去而言的,而瓶颈期的说法则更着眼于未来。


我是小有成就,但我过不了白板面试


知名程序员博主 Yegor 发布了一篇名为《为什么我再也不想和 Google HR 交谈了》的文章,里面提到了他在亚马逊的一次糟糕的面试经历,他的遭遇与 Max Howell  非常相似,一些完全没看过他简历的程序员,让他在白板上写了近四小时的算法。Yegor 的文章在 Reddit 和 Hacker News 上引发热议。


之后,Ruby on Rails 的创立者、著名程序员 David Heinermeier Hansson 在推特上发起了一个反对白板面试的话题。


零 bug 策略:要么立马修复,要么忽略


你在管理着多少个 bug,100,200,还是 2000 个?可能你自己也说不清,因为这个数字一直在变化。但我却能说出我们的 bug 数:0 个。本文我们来了解一下 0 bug 策略,以及为什么我认为这是最好的解决方案。


想克服拖延症的童鞋,请看看这篇文章


Quora 上看到有网友在问:克服拖延症的最有效方式是哪一种?本文综合摘编了 2 位网友的精彩回复。



轻松一刻


我就是这样应聘上了


面试官:解释一下 死锁 ,我们就招你。

候选人:你们招我,我就解释给你们听。



 技术微周刊简介 



技术微周刊每周发布一期,每期包括和技术相关的重要业界资讯 和 技术文章与。周刊的内容甄选自一周的精彩内容,有技术干货、技术动态,也有技术人生,末尾还加了小彩蛋。


如果您觉得有帮助,请置顶和推荐我们给更多技术同仁。


 
技术微周刊 更多文章 第 0 期技术微周刊,从经典的 Linux 命令系列开始
猜您喜欢 必读 | 移动支付时代 手机丢了怎么办? PHP中curl的应用 [2016-7-7]以php为例,如果nginx及php-fpm没任何明显错误。除了在程序打断点外,如何快速定位问题点? 容器在企业中的应用---红帽全球技术峰会北京站分享 2015 全球人工智能 76 件大事(国际篇)