软件开发

TensorFlow 的简单例子

TensorFlow 的简单例子

在本文中,我们将看一些 TensorFlow 的例子,并从中感受到在定义张量和使用张量做数学计算方面有多么容易,我还会举些别的机器学习相关的例子。
三步上手 GDB

三步上手 GDB

调试 C 程序,曾让我很困扰。然而当我之前在写我的操作系统时,我有很多的 Bug 需要调试。我很幸运的使用上了 qemu 模拟器,它允许我将调试器附加到我的操作系统。这个调试器就是 gdb。
ftrace:跟踪你的内核函数!

ftrace:跟踪你的内核函数!

ftrace 是一个 Linux 内核特性,它可以让你去跟踪 Linux 内核的函数调用。为什么要这么做呢?好吧,假设你调试一个奇怪的问题,而你已经得到了你的内核版本中这个问题在源代码中的开始的位置,而你想知道这里到底发生了什么?
剖析内存中的程序之秘

剖析内存中的程序之秘

我将从实践出发着眼于内存管理,并深入到它的内部结构。虽然这些概念很通用,但示例大都来自于 32 位 x86 架构的 Linux 和 Windows 上。这第一篇文章描述了在内存中程序如何分布。
Gitlab CI 常规介绍

Gitlab CI 常规介绍

Gitlab CI 是一个功能非常强大的持续集成系统,有很多不同的功能,而且每次发布都会增加新的功能。它的技术文档也很丰富,但是对那些要在已经配置好的 Gitlab 上使用它的用户来说,它缺乏一个一般性介绍。
Django ORM 简介

Django ORM 简介

学习怎么去使用 Python 的 web 框架中的对象关系映射与你的数据库交互,就像你使用 SQL 一样。
怎么使用 SVG 作为一个图像占位符

怎么使用 SVG 作为一个图像占位符

在这篇文章中我们将涉及如下的主题:不同的占位符类型的概述;基于 SVG 的占位符(边缘、形状和轮廓);自动化处理。
并发服务器(三):事件驱动

并发服务器(三):事件驱动

另一种常见的实现并发的方法叫做 事件驱动编程,也可以叫做 异步 编程 。这种方法变化万千,因此我们会从最基本的开始,使用一些基本的 API 而非从封装好的高级方法开始。本系列以后的文章会讲高层次抽象,还有各种混合的方法。
用 coredumpctl 更好地记录 bug

用 coredumpctl 更好地记录 bug

通常开发者要求提供 “回溯(backtrace)” 形式的数据,以显示导致崩溃的指令流。开发人员可以使用它来修复 bug 以改进系统。
肯特·贝克:改变人生的代码整理魔法

肯特·贝克:改变人生的代码整理魔法

本周我一直在整理 Facebook 代码,而且我喜欢这个工作。我的职业生涯中已经整理了数千小时的代码,我有一套使这种整理更加安全、有趣和高效的规则。
如何分析博客中最流行的编程语言

如何分析博客中最流行的编程语言

我一直在想,各种各样的博客每天到底都有多少页面浏览量,以及在博客阅读受众中最受欢迎的是什么编程语言。我也很感兴趣的是,它们在谷歌的网站排名是否与它们的受欢迎程度直接相关。
并发服务器(二):线程

并发服务器(二):线程

这一节里,我们来看看怎么用多线程来实现并发,用 C 实现一个最简单的多线程服务器,和用 Python 实现的线程池。
并发服务器(一):简介

并发服务器(一):简介

这是关于并发网络服务器编程的第一篇教程。我计划测试几个主流的、可以同时处理多个客户端请求的服务器并发模型,基于可扩展性和易实现性对这些模型进行评判。所有的服务器都会监听套接字连接,并且实现一些简单的协议用于与客户端进行通讯。
OpenGL 与 Go 教程(三)实现游戏

OpenGL 与 Go 教程(三)实现游戏

到目前为止,你应该懂得如何创建网格系统以及创建代表方格中每一个单元的格子阵列。现在可以开始把网格当作游戏面板实现康威生命游戏。
开发一个 Linux 调试器(十):高级主题

开发一个 Linux 调试器(十):高级主题

我将对调试中的一些更高级的概念进行高层的概述:远程调试、共享库支持、表达式计算和多线程支持。这些想法实现起来比较复杂,所以我不会详细说明如何做
OpenGL 与 Go 教程(二)绘制游戏面板

OpenGL 与 Go 教程(二)绘制游戏面板

你现在应该能够创造一个漂亮的白色三角形,但我们不会把三角形当成我们游戏的基本单元,是时候把三角形变成正方形了,然后我们会做出一个完整的方格。
论 HTTP 性能,Go 与 .NET Core 一争雌雄

论 HTTP 性能,Go 与 .NET Core 一争雌雄

如前面所提的,我们会比较它们相同的东西,比如应用程序、预期响应及运行时的稳定性,所以我们不会把像对 JSON 或者 XML 的编码、解码这些烦多的事情加入比较游戏中来,仅仅只会使用简单的文本消息。为了公平起见,我们会分别使用 Go 和 .NET Core 的 MVC 架构模式。
OpenGL 与 Go 教程(一)Hello, OpenGL

OpenGL 与 Go 教程(一)Hello, OpenGL

这个教程的目的是给你一个切入点,让你对 OpenGL 有个基本的了解,然后教你怎么用 Go 操作它。我们最终的目标是用 OpenGL 在桌面窗口绘制游戏面板,进而实现康威生命游戏。
从 Node 到 Go:一个粗略的比较

从 Node 到 Go:一个粗略的比较

这个帖子不是为了证明一种语言比另一种语言更好。由于各种原因,每种编程语言都在软件开发社区中占有一席之地。 我的意图是强调 Go 和 Node 之间的差异,并且促进展示一种新的 Web 开发语言。
探索传统 JavaScript 基准测试

探索传统 JavaScript 基准测试

现在看看另一方面,所有的静态性能测试——无论是微基准micro-benchmark还是大型应用的宏基准macro-benchmark,都注定要随着时间的推移变成噩梦!
机器学习实践指南

机器学习实践指南

在今天的文档中,我会列出 7 个步骤(和 50 多个资源)帮助你开启这个令人兴奋的计算机科学领域的大门,并逐渐成为一个机器学习高手。
开发一个 Linux 调试器(七):源码级断点

开发一个 Linux 调试器(七):源码级断点

这篇文章将会添加源码级断点到我们的调试器中。通过所有我们已经支持的功能,这要比起最初听起来容易得多。我们还将添加一个命令来获取符号的类型和地址,这对于定位代码或数据以及理解链接概念非常有用。
减少 curl 中内存分配操作(malloc)

减少 curl 中内存分配操作(malloc)

今天我在 libcurl 内部又做了一个小改动,使其做更少的 malloc。这一次,泛型链表函数被转换成更少的 malloc (这才是链表函数应有的方式,真的)。
函数式编程简介

函数式编程简介

我们来解释函数式编程的什么,它的优点是哪些,并且给出一些函数式编程的学习资源。
使用 Headless Chrome 进行自动化测试

使用 Headless Chrome 进行自动化测试

如果你想使用 Headless Chrome 进行自动化测试,那么就往下!这篇文章将让你完全使用 Karma 作为运行器(runner),并且使用 Mocha+Chai 来编撰测试。
Headless Chrome 入门

Headless Chrome 入门

在 Chrome 59 中开始搭载 Headless Chrome。这是一种在无需显示的环境下运行 Chrome 浏览器的方式。从本质上来说,就是不用 chrome 浏览器来运行 Chrome 的功能!它将 Chromium 和 Blink 渲染引擎提供的所有现代 Web 平台的功能都带入了命令行。
一周工作所用的日常 Git 命令

一周工作所用的日常 Git 命令

几乎每个开发人员都在使用 Git,当然很可能是 GitHub。但大多数开发者大概有 99% 的时间只是使用这三个命令