• 手把手教你写网络爬虫(6):分布式爬虫

    Posted by : lon.y@qq.com on 2018年5月15日

    下面是一个超级计算机的排行榜,如果我们能拥有其中任意一个,那么我们就不需要搞什么分布式系统。可是我们买不起,即使买得起,也交不起电费,所以我们只好费脑子搞分布式。 Rank System Cores Rmax Rpeak Power (kW) 1 Tianhe-2  China 3,120,000 33,862.7 54,902.4 17,808 2 Titan  US 560,640 17,590.0 27,112.5 8,209 3 Sequoia  

    阅读全文...

  • 手把手教你写网络爬虫(8):彻底解决乱码问题

    Posted by : lon.y@qq.com on 2018年5月15日

    字符编解码是爬虫里必学的一项知识,在我们的爬虫生涯中早晚会爬到乱码的网页,与其遇到时惊慌失措,不如早学早好,彻底避免乱码问题。 字符编码简介 什么是字符集 在介绍字符编码之前,我们先了解下什么是字符集。 字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集:ASCII字符集、GBK字符集、Unicode字符

    阅读全文...

  • 给初学者看的 shuf 命令教程

    Posted by : lon.y@qq.com on 2018年5月15日

    shuf 命令用于在类 Unix 操作系统中生成随机排列。使用 shuf 命令,我们可以随机打乱给定输入文件的行。shuf 命令是 GNU Coreutils 的一部分,因此你不必担心安装问题。在这个简短的教程中,让我向你展示一些 shuf 命令的例子。 带例子的 shuf 命令教程 我有一个名为 ostechnix.txt 的文件,内容如下: $ cat ostechnix.txt line1 line2 line3 line4 line5 line6

    阅读全文...

  • 滑向未来(现代 JavaScript 与 CSS 滚动实现指南)

    Posted by : lon.y@qq.com on 2018年5月15日

    一些(网站)滚动的效果是如此令人着迷但你却不知该如何实现,本文将为你揭开它们的神秘面纱。我们将基于最新的技术与规范为你介绍最新的 JavaScript 与 CSS 特性,(当你付诸实践时,)将使你的页面滚动更平滑、美观且性能更好。 大多数的网页的内容都无法在一屏内全部展现,因而(页面)滚动对于用户而言是必不可少的。对于前端工程师与 UX 设计师而言,跨浏览器提供良好的滚动体验,同时符合设计(要求),无疑是一个挑战。尽管 web 标准的发展速度远超从前,但代

    阅读全文...

  • 10 个常用的软件架构模式

    Posted by : lon.y@qq.com on 2018年5月14日

    你是否曾经思考过如何设计大型的企业级系统?在决定启动软件开发之前,首要的是选择恰当的架构来指引系统的功能及质量属性设计。因此在将软件架构应用于设计之前,必需要了解常用的架构模式。 什么是架构模式? Wikipedia 的解释: 在软件架构中,架构模式是对特定环境下常见问题的通用且可重用的解决方案。架构模式与软件设计模式很相似,但架构模式的层次更高,且外延更大。 这篇文章将简述常见的 10 种架构模式的概念、用法以及其优缺点。 分层模式(Layered pa

    阅读全文...

  • 常用排序算法总结(2)

    Posted by : lon.y@qq.com on 2018年5月14日

    上一篇总结了常用的比较排序算法,主要有冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 这篇文章中我们来探讨一下常用的非比较排序算法:计数排序,基数排序,桶排序。在一定条件下,它们的时间复杂度可以达到O(n)。 这里我们用到的唯一数据结构就是数组,当然我们也可以利用链表来实现下述算法。 计数排序(Counting Sort) 计数排序用到一个额外的计数数组C,根据数组C来将原数组A中的元素排到正确的位置。 通俗地理解,例如有10个年龄不同的人,

    阅读全文...

  • 有了 TensorFlow.js,浏览器中也可以实时人体姿势估计

    Posted by : lon.y@qq.com on 2018年5月13日

    与谷歌创意实验室合作,我很高兴地宣布发布TensorFlow.js版本的PoseNet,这是一种机器学习模型,允许在浏览器中进行实时人体姿势估计。您可以访问https://storage.googleapis.com/tfjs-models/demos/posenet/camera.html 尝试一下在线演示。 PoseNet可以使用单姿态或多姿态算法检测图像和视频中的人物形象 – 全部来自浏览器。 那么,问题来了,什么是姿态估计?姿态估计是指在图像和视频

    阅读全文...

  • 精读《async/await 是把双刃剑》

    Posted by : lon.y@qq.com on 2018年5月13日

    本周精读内容是 《逃离 async/await 地狱》。 1 引言 终于,async/await 也被吐槽了。Aditya Agarwal 认为 async/await 语法让我们陷入了新的麻烦之中。 其实,笔者也早就觉得哪儿不对劲了,终于有个人把实话说了出来,async/await 可能会带来麻烦。 2 概述 下面是随处可见的现代化前端代码: (async () => { const pizzaData = await getPizzaData(); /

    阅读全文...

  • React 路由状态管理总结

    Posted by : lon.y@qq.com on 2018年5月13日

    一、依赖(Dependencies) 在一般 SPA 开发中,路由的管理十分重要。作为 React 技术体系中的一部分,官方维护的 React-Router 则是首选的路由库。 在应用 Redux 模式后,React-Router 与 Redux 的配合引发了新的问题,是否需要将路由纳入 store 进行管理?如何将路由纳入 store 进行管理?这些都是需要考虑的问题。我们将在后文讨论第一个问题,而为了解决上述第二个问题,React-Router-Red

    阅读全文...

  • 37个 JavaScript 基本面试问题和解答

    Posted by : lon.y@qq.com on 2018年5月13日

    1、使用typeof bar ===“object”来确定bar是否是一个对象时有什么潜在的缺陷?这个陷阱如何避免? 尽管typeof bar ===“object”是检查bar是否是对象的可靠方法,但JavaScript中令人惊讶的问题是null也被认为是一个对象! 因此,对于大多数开发人员来说,下面的代码会将真实(而不是错误)记录到控制台: var bar = null; console.log(typeof bar === "object"); //

    阅读全文...