用于游戏开发的图形和音乐工具 (linux.cn)
要在三天内打造一个可玩的游戏,你需要一些快速而稳定的好工具。


在十月初,我们的俱乐部马歇尔大学的 Geeks and Gadgets 参加了首次 Open Jam,这是一个庆祝最佳开源工具的游戏 Jam。游戏 Jam 是一种活动,参与者以团队协作的方式来开发有趣的计算机游戏。Jam 一般都很短,仅有三天,并且非常累。Opensource.com 在八月下旬发布了 Open Jam 活动,足有 45 支游戏 进入到了竞赛中。
我们的俱乐部希望在我们的项目中创建和使用开放源码软件,所以 Open Jam 自然是我们想要参与的 Jam 了。我们提交的游戏是一个实验性的游戏,名为 Mark My Words。我们使用了多种自由和开放源码 (FOSS) 工具来开发它;在这篇文章中,我们将讨论一些我们使用的工具和我们注意到可能有潜在阻碍的地方。
音频工具
MilkyTracker
MilkyTr
by @技术头条 2019-01-01 19:46 查看详情
12 条实用的 zypper 命令范例 (linux.cn)
zypper 是 Suse Linux 系统的包和补丁管理器,你可以根据下面的 12 条附带输出示例的实用范例来学习 zypper 命令的使用。

Suse Linux 使用 zypper 进行包管理,其是一个由 ZYpp 包管理引擎提供的包管理系统。在此篇文章中我们将分享 12 条附带输出示例的实用 zypper 命令,能帮助你处理日常的系统管理任务。

不带参数的 zypper 命令将列出所有可用的选项,这比参考详细的 man 手册要容易上手得多。
by @技术头条 2018-12-26 23:39 查看详情
Java Map的正确使用方式 (www.liaoxuefeng.com)
正确使用Map,只需要正确实现hashCode()和equals()就行了吗?

恐怕还不行。

确切地说,如果使用的是HashMap,那么只需要正确实现hashCode()和equals()就够了。

但是,如果换成TreeMap,正确实现hashCode()和equals(),结果并不一定正确。
by @技术头条 2018-12-26 23:28 查看详情
前端开发 2018 回顾及 2019 展望 (www.css88.com)
前端发展的世界发展迅速。非常快。本文将回顾2018年最重要的前端新闻,值得关注的事件和 JavaScript 趋势。
by @技术头条 2018-12-25 10:01 查看详情
数据科学家的命令行技巧 (linux.cn)
对于许多数据科学家来说,数据操作从始至终就是 Pandas 或 Tidyverse。从理论上讲,这样做没有任何问题。毕竟,这就是这些工具存在的原因。然而,对于像分隔符转换这样的简单任务,这些工具是大材小用了。

立志掌握命令行应该在每个开发人员的学习清单上,特别是数据科学家。学习 shell 的来龙去脉将无可否认地提高你的生产力。除此之外,命令行还是计算领域的一个重要历史课程。例如,awk —— 一种数据驱动的脚本语言。1977 年,在 Brain Kernighan(即传奇的 K&R 书中 K)的帮助下,awk 首次出现。今天,大约五十年过去了,awk 仍然活跃在每年新出版的书里面。因此,可以安全地假设对命令行魔法的付出不会很快贬值。
by @技术头条 2018-12-25 10:00 查看详情
使用 gorilla/mux 进行 HTTP 请求路由和验证 (linux.cn)
gorilla/mux 包以直观的 API 提供了 HTTP 请求路由、验证和其它服务。

Go 网络库包括 http.ServeMux 结构类型,它支持 HTTP 请求多路复用(路由):Web 服务器将托管资源的 HTTP 请求与诸如 /sales4today 之类的 URI 路由到代码处理程序;处理程序在发送 HTTP 响应(通常是 HTML 页面)之前执行适当的逻辑。
by @技术头条 2018-12-25 10:00 查看详情
KNN分类后的效果评估 (www.biaodianfu.com)
在机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。
by @技术头条 2018-12-24 23:59 查看详情
CSS ::backdrop伪元素是干嘛用的? (www.zhangxinxu.com)
backdrop这个单词是背景幕布,就是戏曲表演后面的一块布。::backdrop伪元素就是控制需要视觉聚焦的元素后面的背景元素样式的。在web中哪些元素需要视觉聚焦呢?一个是HTML5 <video>视频元素,还有就是HTMl5.2 <dialog>元素,以及处于全屏状态下的普通元素。这些元素的背景样式均可以交给::backdrop伪元素进行控制。
by @技术头条 2018-12-24 23:57 查看详情
用户、组及其它 Linux 特性 (linux.cn)
Linux 和其他类 Unix 操作系统依赖于用户组,而不是逐个为用户分配权限和特权。一个组就是你想象的那样:一群在某种程度上相关的用户。

到这个阶段,在看到如何操作目录或文件夹之后,但在让自己一头扎进文件之前,我们必须重新审视 权限、用户 和 组。幸运的是,有一个网站上已经有了一个优秀而全面的教程,讲到了权限,所以你应该去立刻阅读它。简而言之,你使用权限来确定谁可以对文件和目录执行操作,以及他们可以对每个文件和目录执行什么操作 —— 从中读取、写入、移动、擦除等等。

要尝试本教程涵盖的所有内容,你需要在系统上创建新用户。让我们实践起来,为每一个需要借用你电脑的人创建一个用户,我们称之为 guest 账户。

警告: 例如,如果你错误地删除了自己的用户和目录,那么创建用户,特别是删除用户以及主目录会严重损坏系统。
by @技术头条 2018-12-24 23:56 查看详情
从天猫某活动视频不必要的3次请求说起 (www.zhangxinxu.com)
我们在移动端做H5开发的时候,有时候会用到MP4视频,对于一些酷效果,是性价比最高的方式。然而,很多前端开发在使用这些视频的时候没有注意,或者根本就不知道视频的某些信息的位置会影响浏览器的请求个数,从而影响网页性能。
by @技术头条 2018-12-24 23:55 查看详情
量子计算的开源框架 Cirq 介绍 (linux.cn)
我们即将讨论的内容正如标题所示,本文通过使用 Cirq 的一个开源视角,尝试去了解我们已经在量子计算领域取得多大的成就,和该领域的发展方向,以加快科学和技术研究。

首先,我们将引领你进入量子计算的世界。在我们深入了解 Cirq 在未来的量子计算中扮演什么样的重要角色之前,我们将尽量向你解释其背后的基本概念。你最近可能听说过,在这个领域中有件重大新闻,就是 Cirq。在这篇开放科学栏目的文章中,我们将去尝试找出答案。

在我们开始了解量子计算之前,必须先去了解“量子”这个术语,量子是已知的 亚原子粒子 中最小的物质。
by @技术头条 2018-12-24 23:55 查看详情
命令别名:定义自己的命令 (linux.cn)
命令别名Alias在 Linux shell 中指的是将一些太长或者太难记的多个命令组合起来,成为一个由用户自己构建的命令。

可以通过 alias 命令来创建命令别名。在 alias 后面跟上想要创建的别名名称、一个等号(=),以及希望使用这个别名来执行的命令,这样一个命令别名就创建好了。举个例子,ls 命令在默认情况下是不会对输出的内容进行着色的,这样就不能让用户一眼分辨出目录、文件和连接了。对此,可以创建这样一个命令别名,在输出目录内容的时候为输出内容着色:
alias lc='ls --color=auto'

其中 lc 是自定义的命令别名,代表 “list with color” 的意思。在创建命令别名的时候,需要先确认使用的别名是不是已经有对应的命令了,如果有的话,原本的命令就会被覆盖掉了。注意,定义命令别名的时候,= 两端是没有空格的。当运行 lc 的时候,就相当于执行了 ls --color 命令。

此后,执行 lc 列出目录内容的时候,就会输出带有着色的内容了。

你可能会发现你在执行 ls 的时候,本来就是输出带有着色的内容。那是因为大部分 Linux 发行版都已经将 ls 设定为带有着色的命令别名了。
by @技术头条 2018-12-24 23:54 查看详情
交易系统的消息服务如何保证100%可靠 (www.liaoxuefeng.com)
分布式应用中,消息系统被大量使用,主要原因有:
1、逻辑解耦:发送方和接收方不需要相互知道对方,一个只管发,一个只管收,大大简化了处理逻辑。
2、适配动态流量:如果发送方发送速度快于接收方的接收速度,消息系统就可以暂时将无法处理的消息缓存起来,让接收方慢慢处理。

没有消息系统时,发送方就不得不配合接收方降低处理速度,从而拖慢了整个系统的性能。
那么消息系统能保证消息100%可靠到达吗?

答案是否定的。

因为消息系统是网络调用,只要涉及到网络,就不可能100%可靠,因为通信双方不可能无限次给对方发ACK确认。
那么消息系统如何尽可能保证消息的可靠达到呢?
by @技术头条 2018-12-24 23:53 查看详情
Java–读写锁的实现原理 (ifeve.com)
最近做的一个小项目中有这样的需求:整个项目有一份config.json保存着项目的一些配置,是存储在本地文件的一个资源,并且应用中存在读写(读>>写)更新问题。既然读写并发操作,那么就涉及到操作互斥,这里自然想到了读写锁,也顺便对自己读写锁方面的知识做个梳理。
by @技术头条 2018-12-24 23:52 查看详情
什么样的代码是好读的? (cmsblogs.com)
代码是否好读,关键是要看我们的大脑是如何“解释执行”这些代码的,有哪些因素会影响我们大脑的“执行效率”。大体上有4个主要的原因使得代码不可读:

太多了或者太长了:当你的大脑需要同时跟踪N个变量,跟踪N行代码的逻辑,这个N越大,效率就越低。

不集中的逻辑:我们偏爱连续的,平铺直叙的而且独立的逻辑。有三个原因会使得逻辑分散:

编码风格:全局变量,SIMD intrinsics v.s. SPMD 风格 GPU 计算,回调 v.s. 协程

代码重用:为了重用代码,我们需要把多个执行路径合并成通用的一个

非功能性需求:它和功能性代码在空间上(源代码)和时间上(运行时)都是在一起的

所见非所得:如果运行的代码行为和源代码显著不同的话,我们就强迫自己去脑补这个转换过程。例如元编程,多线程共享内存等。

不熟悉的概念:我们使用文本的名字和引用把一个陌生概念链接到另外一个熟悉的概念上。如果这个链接不强,我们就会感觉这东西“不明白是啥玩意”

让我们一个个来谈谈。
by @技术头条 2018-12-24 23:51 查看详情
CSS vector-effect与SVG stroke描边缩放 (www.zhangxinxu.com)
默认情况下,我们改变SVG图形尺寸,stroke描边宽度也会跟着一起变化。有时候,我们希望描边宽度一直不变,怎么办呢?可以试试使用vector-effect属性。
by @技术头条 2018-12-24 23:48 查看详情
解密传统组件间通信与React组件间通信 (yanhaijing.com)
在React中最小的逻辑单元是组件,组件之间如果有耦合关系就会进行通信,本文将会介绍React中的组件通信的不同方式

通过归纳范,可以将任意组件间的通信归类为四种类型的组件间通信,分别是父子组件,爷孙组件,兄弟组件和任意组件,需要注意的是前三个也可以算作任意组件的范畴,所以最后一个是万能方法
by @技术头条 2018-09-20 21:52 查看详情
Linux 用户应该换到 BSD 的 6 个理由 (linux.cn)
迄今我因 BSD 是 自由及开源软件(Free and Open Source Software)(FOSS)已经写了数篇关于它的文章。但总有人会问:“为什么要纠结于 BSD?”。我认为最好的办法是写一篇关于这个话题的文章。

为什么用 BSD 取代 Linux?

为了准备这篇文章,我与几位 BSD 的用户聊了聊,其中有人使用了多年 Linux 而后转入 BSD。因而这篇文章的观点都来源于真实的 BSD 用户。本文希望提出一个不同的观点。
by @技术头条 2018-09-20 21:50 查看详情
Python 调试器入门 (linux.cn)
Python 生态系统包含丰富的工具和库,可以让开发人员更加舒适。 例如,我们之前已经介绍了如何使用交互式 shell 增强 Python。本文重点介绍另一种可以节省时间并提高 Python 技能的工具:Python 调试器。
by @技术头条 2018-09-20 21:45 查看详情
查看一个归档或压缩文件的内容而无需解压它 (linux.cn)
在本教程中,我们将学习如何在类 Unix 系统中查看一个归档或者压缩文件的内容而无需实际解压它。在深入之前,让我们先厘清归档和压缩文件的概念,它们之间有显著不同。归档是将多个文件或者目录归并到一个文件的过程,因此这个生成的文件是没有被压缩过的。而压缩则是结合多个文件或者目录到一个文件并最终压缩这个文件的方法。归档文件不是一个压缩文件,但压缩文件可以是一个归档文件,清楚了吗?好,那就让我们进入今天的主题。
by @技术头条 2018-09-20 21:45 查看详情