Jerry Bendy 发布于 04月27, 2022

记录 NAS 安装 FreeNAS 系统后又换回 Ubuntu 的狗血经历

一晃眼的功夫网站又两年没更新了。刚好今天折腾了点东西,就来水一篇吧。事情是这样的,2020 年初疫情刚开始那段时间在家没事干,就组装了一台 NAS,用的 Ubuntu 的系统。除了常见的 SMB 文件共享、Plex 影音管理外,还在上面部署了一堆别的东西,比如博客、GitLab 等。买了两块二手的企业硬盘组了个 RAID 1,文件系统用的 ZFS,用来存数据。系统已经稳定运行了两年,这是前提。后来了解到有一款专门用于 NAS 的开源操作系统 FreeNAS,也就是现在的 TrueNAS Core。虚拟机里面测试了下,功能还是很强大的,而且刚好 FreeNAS 用的也是 ZFS 文件系统,也就意味着我硬盘中三千个 ...

阅读全文 »

Jerry Bendy 发布于 06月17, 2020

Ubuntu 配置 sudo 时不需要输入密码

此方法在 Ubuntu 18.04 中测试通过,其他 Linux 版本仅供参考。最近在配置 jenkins 中执行需要 sudo 权限才能进行的操作时会报错:no tty present and no askpass program specified。因为 sudo 时需要输入密码,而 CI 任务执行时并没有可供输入密码的 TTY 环境。解决这个问题最简单的方式当然是配置 sudo 时不用输入密码。网上搜了很多相关的教程,但并没有起作用(后来发现是代码位置的问题)。这里把相关的操作简单整理一下。sudo 相关的配置位于 /etc/sudoers 文件内。但这个文件不建议直接编辑,而是使用以下命令:sudo vi...

阅读全文 »

Jerry Bendy 发布于 09月12, 2019

透明封装 Vue 组件

title: 透明封装 Vue 组件date: 2019-09-12 15:13:00updated: 2019-09-12 15:13:00tags:Vuecategories:前端在项目中我们通常会有封装一个现有组件的需求,为组件添加一些额外的特性或配置。例如封装 textarea 以提供自动调整大小的功能、封装第三方组件库中的某个组件以提供额外的默认配置等。以 textarea 为例,textarea 有一些常用的属性如 rows、cols、placeholder 等,也有一堆事件如 input、keydown 等。如果直接对其封装的话就意味着要把一堆属性和事件绑定到新的组件上,如下:<templat...

阅读全文 »

Jerry Bendy 发布于 06月03, 2017

在 Docker 中安装运行 Firekylin

Firekylin 是基于 ThinkJS 开发的一套高效简洁的动态博客系统,数据库使用 MySQL,安装配置非常简单方便。 关于 Firekylin 的安装方式在 wiki 上已经有很详细的说明,以下本文主要说下在 Docker 中安装运行 Firekylin 的方式。 一般来说,在 docker 中运行网站会有两种常用的方式。即一种是把代码作为卷挂载到容器中运行,好处是方便代码的版本控制和更新;另一种方式是把代码和运行时环境同时打包到容器中,好处是方便随处运行。以下会分别就这两种运行方式做说明。 另外以下内容只谈及 Firekylin 的安装和运行,不涉及到 Nginx 和 MySQL。数据库之类的敏感内容(...

阅读全文 »

Jerry Bendy 发布于 03月07, 2017

入手树莓派

最近在一篇文章上看到关于使用 NodeJS 控制树莓派硬件编程的文章,顿时起了兴致,准备也搞一个来玩玩。其实早在几年前就看到有关树莓派的内容,只是对 C 语言或 Python 编程不熟,玩不起来,所以迟迟未能入手。

刚好同事有一个树莓派,拿来玩了几天后基本搞懂怎么用了,于是自己也买了一个 ?

阅读全文 »

Jerry Bendy 发布于 02月23, 2017

Yarn vs npm: 你需要知道的一切

Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具。就像我们可以从官方文档了解那样,它的目的是解决这些团队使用 npm 面临的少数问题,即:

  • 安装的时候无法保证速度/一致性
  • 安全问题,因为 npm 安装时允许运行代码

阅读全文 »

Jerry Bendy 发布于 01月28, 2017

高性能服务器架构思路(五)——分布式缓存

本文分享自腾云阁

作者介绍:韩伟,1999年大学实习期加入初创期的网易,成为第30号员工,8年间从程序员开始,历任项目经理、产品总监。2007年后创业4年,开发过视频直播社区,及多款页游产品。2011年后就职于腾讯游戏研发部公共技术中心架构规划组,专注于通用游戏技术底层的研发。

在分布式程序架构中,如果我们需要整个体系有更高的稳定性,能够对进程容灾或者动态扩容提供支持,那么最难解决的问题,就是每个进程中的内存状态。因为进程一旦毁灭,内存中的状态会消失,这就很难不影响提供的服务。所以我们需要一种方法,让进程的内存状态,不太影响整体服务,甚至最好能变成“无状态”的服务。当然“状态”如果不写入磁盘,始终还是需要某些进程来承载的。在现在流行的 WEB 开发模式中,很多人会使用 PHP+Memcached+MySQL 这种模型,在这里,PHP 就是无状态的,因为状态都是放在 Memcached 里面。这种做法对于 PHP 来说,是可以随时动态的毁灭或者新建,但是 Memcached 进程就要保证稳定才行;而且 Memcached 作为一个额外的进程,和它通信本身也会消耗更多的延迟时间。因此我们需要一种更灵活和通用的进程状态保存方案,我们把这种任务叫做“分布式缓存”的策略。我们希望进程在读取数据的时候,能有最高的性能,最好能和在堆内存中读写类似,又希望这些缓存数据,能被放在多个进程内,以分布式的形态提供高吞吐的服务,其中最关键的问题,就是缓存数据的同步。

阅读全文 »

Jerry Bendy 发布于 01月28, 2017

高性能服务器架构思路(四)——编码复杂度和通信

本文分享自腾云阁

作者介绍:韩伟,1999年大学实习期加入初创期的网易,成为第30号员工,8年间从程序员开始,历任项目经理、产品总监。2007年后创业4年,开发过视频直播社区,及多款页游产品。2011年后就职于腾讯游戏研发部公共技术中心架构规划组,专注于通用游戏技术底层的研发。

阅读全文 »

Jerry Bendy 发布于 01月25, 2017

高性能服务器架构思路(三)——分布式系统概念

本文分享自腾云阁

作者介绍:韩伟,1999年大学实习期加入初创期的网易,成为第30号员工,8年间从程序员开始,历任项目经理、产品总监。2007年后创业4年,开发过视频直播社区,及多款页游产品。2011年后就职于腾讯游戏研发部公共技术中心架构规划组,专注于通用游戏技术底层的研发。

阅读全文 »