对于Ubuntu桌面的印象还停留在很多年前,当年的感觉是,比较容易崩溃,需要修改配置文件的地方太多,一不小心系统就崩溃了。家里近10年前的笔记本,几次操作系统自动升级后,已经变得一打开Win10系统就开始呼呼叫。像是一个年迈的老人,稍微快步走路就气喘一样。想试一下最新的Ubuntu,装系统很容易,直接下载镜像,写入U盘,制作成启动盘,引导安装。最可贵的是,居然自动识别老的Win10系统,做成了双系统,需要的时候还能进入Win10。用了几天,感觉Gnome桌面的整体风格跟Mac越来越像了,几乎不需要手动修改配置。自动发现U盘、界面连接Wifi、安装软件等体验都不错。其实日常家里使用笔记本也就是看看文档、浏览网页、看看开源代码,还有一些常用的社交应用的网页版,无缝访问家里的NAS系统。Ubuntu生态里面,离完全满足这些应用还有距离,但是在性能体验上面,已经远远超出Windows了,特别是硬件资源不足的情况。生态欠缺也是硬伤,如:微信微博等没有linux版本客户端,没有一些通用的轻量级代码编辑器:Nodepad++和VSCode等。好在现在越来越多的东西都可以在Web页面上解决。
记一次WordPress手动升级
本站用的Wordpress版本(4.8.2)有些老了。从主程序的代码记录来看上一次升级还是17年的事情,快三年了。
一些Git的基本概念和用法(rebase、HEAD、reset、master、remote、pull、push、force等)
由于之前在一个相对封闭且各方面的IT流程都相对完善的公司工作,公司内部总是习惯使用非常成熟的IT工具,不会很快引入外部的新的更高效的生产工具,因此对一些业界已经普及使用的IT工具接触总是会慢很多。除了工作时间,也没有太多机会接触外部的东西,对git的了解比较晚。本人也是从完全不懂Git(只会从github下载master分支的zip包来看源码^_^),到会用pull、push,再后面也会一些稍微高级一点的用法,如rebase、reset、合并或者修改已有commits等。在这个边学边用的过程中也遇到过一些困惑和曲解,这里系统的整理一下一些常用方法和涉及的概念,希望对新接触这个的Coder能有所帮助。
Home NAS上可以运行哪些有趣的服务?
一、jAlbum
“自研”的相册管理程序,介绍和部署方法参考《jAlbum——Java WEB版相片管理系统 》。
二、代码托管服务器
国内访问github总是非常慢,所以把代码托管到HomeNas上面。使用gogs
三、文件备份工具
接收各个终端上面备份的视频、照片文件。使用sync搭建,目前墙内无法访问该工具的官方网站。现在有开源免费的替代方案:Syncthing。
四、Everything
everything本来是一个Windows系统的本地文件搜索工具,以其高效而著称,在IT从业人员中使用非常广泛。其开放WEB访问方式,支持远程搜索和下载文件,远程办公时访问HomeServer上面的文件非常方便。遗憾的是,至今其都不支持HTTPS方式访问,并且用于认证的用户密码机制非常原始。可能是作者为了保持该软件的健壮和简单,不愿意加入更多的小众化功能。
五、Emby Server
媒体管理平台,支持各大平台部署Server端,支持众多的终端部署客户端应用。免费版本的客户端限制较多。当然网上也流传着各种破解方法。 在HomeServer上面部署Emby主要用于管理电视剧、小孩子看的动画片、无损音乐和超清电影,没有广告干扰的娱乐时光还是很惬意的:) 其中电影自动搜索字幕比较有用。但是对于非电影文件,按照电影去搜索元数据时,会出现匹配错乱的问题,因此非电影文件的库都是禁用自动更新元数据。
六、RSSHub
这年头,RSS源越来越少了,只能自行部署一个RSSHub,目前主要用这个工具的客户端快速提取正在访问的网页中的RSS Feed。服务端能起的作用似乎还有限,也可能是还没有完全整明白这个该怎么用。
七、博客静态文件托管服务
在香港的一个主机提供商那里购买的丐版空间,只有1G的文件存储容量,博客中日积月累的各种图片和PDF已经将空间耗尽,还有Reader和博客的数据库文件其实也是分享的这1G的空间,而各大公由云的对象存储又收费,想着家里的NAS每天开机也是闲着,就再承担点负载。将网站的所有静态文件都从“自研”的托管服务上面出,模拟主流对象存储的API实现了类似镜像存储的机制。将所有图片本地保存。这样可以定期清理博客托管服务服务上面的图片和附件等。 当然还有最基本的NAS文件共享服务、远程访问服务、偶尔当梯子给其它终端代理、作为下载机等普通功能都不在话下。 不知不觉家里一个小小的Server上都部署了十来个服务。其实,HomeServer就缺了一个完整的80和443等端口,如果国内电信服务提供商开放这些端口,那么都不用购买任何网站托管服务了,直接在HomeServer上面运行所有网站相关的任务。这样不仅省钱,还便于管控。不过话也说回来,电信封了很多端口,对HomeServer的维护来说,也解决了网络安全的问题。
八、WebDAV服务
2020-8-9更新:增加WebDAV服务,使用go编写的caddy和webdav插件搭建。主要服务于跨平台的笔记服务:Joplin,除了界面不如印象笔记,功能上已经够用。有了WebDav,能做的事情就比较多了,如: 1、管理个人密码的keepass; 2、备份油猴配置和脚本; 3、当作网盘直接在桌面系统中挂载使用。
九、Cockpit服务
2020-8-27更新:增加cockpit服务,并替换自签名证书。
十、部署VMPlayer
用于运行两个虚拟机: 一个是Win10系统:1、用于搭建科学上网的客户端,给其他设备提供代理服务,科学上网这块在Win生态下的工具远比Linux系列的丰富和易用。这样不用每个终端都安装各种工具,只需要配置代理指向该Win系统即可。2、安装迅雷,现在下载没有迅雷,啥资源都是Kbytes/s的速度,难以忍受,毋庸置疑,资源都已经被迅雷垄断了,迅雷充当了CDN的作用。 另外虚拟化了一个黑群晖,主要用于体验群晖系统,其实群晖能做的事情,在这个HomeNAS上面都有了,只是想体验一下群晖的易用性。惊奇的发现,在虚拟机里面虚拟化出来的磁盘(600GB),磁盘落在EXT4文件系统上面,然后再经过群晖的文件共享出来使用,这个共享跟NAS上面原来的共享在性能上面没有任何差异,甚至更稳定,写速率稳定在112MB/s,是不是经过Vmware和EXT4文件系统两级缓存之后,速度跟均衡。装一个空壳的宿主机,把所有硬盘都交给虚拟机的黑群晖管理,也不失为一种新的NAS玩法。
十一、部署Docker
安装docker,并配置远程访问,dockerd监听本地端口,配置TLS证书。运行portainer,实现远程管理docker实例。运行wiz笔记程序,体验不同于joplin风格的为知笔记,该笔记在抓取网页方面有所欠缺,但是界面还有性能上面非常不错。
十二、人脸识别服务
参考《基于Dlib、Flask和Sqlite的人脸检测和识别服务》。
十三、FileRun、FileBrowser
可以将HomeNAS瞬间变网盘,主要用于解决文件分享、带校验码分享的场景。另外也可以用这个来直接通过页面操作远端文件的增、删、改、查。参考链接安装 FileRun,HomeNAS 秒变网盘
十四、Grafana
使用docker部署Grafana、普罗米修斯和Node-exporter监控服务器的磁盘、CPU、内存和网络等消耗。
十五、Chevereto图库服务
部署图库服务,可以作为图床、相册等使用。简单高效管理图片。
十六、为知笔记
一个界面非常友好,功能强大的多设备、多用户,跨网络同步的笔记服务。
十七、RSS阅读器
参考《架设Tiny Tiny RSS(TTRSS)阅读器,找回Google Reader!》
十八、自研爬虫
运行各种新闻和电影BT下载爬虫程序。
十九、音乐服务
二十、在线电子书库
安装基于Calibre的电子书在线阅读和管理服务:源码,Docker仓库,本站书库:代码人生
二十一、MinIO
自托管的对象存储服务,兼容Amazon S3。安装指导:链接。
二十二、Transfer.sh
一个非常好用的临时文件共享服务,客户端和服务端均使用最简洁的HTTP请求上传下载文件。可在此试用本站的Transfer.sh服务:链接
二十三、Matomo
非常好用的站点统计工具,Google Analytics的自建替代品,自建站点统计服务。对于Wordpress博客,甚至可以直接使用插件集成所有服务端的功能。
二十四、OnlyOffice
在线Office,可以完全替代本地的Office。官网的文档介绍太弱,安装过程中有一些坑,并且官方提供的镜像太臃肿,我做了少量精简。安装过程总结如下:《HomeServer安装在线Office:Docker安装最新精简版OnlyOffice》
Stay hungry, Stay young (转载自网络)
1983年出生的张一鸣 ,在2005年从南开大学毕业后,至今参与创办了5家公司,今日头条、抖音、内涵段子等知名APP之父,2013年,他先后入选《福布斯》“中国30位30岁以下的创业者”和《财富》“中国40位40岁以下的商业精英”,是目前国内互联网行业最受关注的青年领袖之一。
印度出差记
大概有一年多没有更新博客了。这一年多时间里,可能经历了职业生涯里面最繁忙的一段时间,不知道还会持续多久,慢慢的都习惯了。
带着艰巨的任务,到印度班加罗尔出差40多天,每天仍然像在国内一样的“战时”状态。今天是国内的中秋小长假,国内无人加班,也可以安静的在这边休息一天。有幸在这个据称为亚洲硅谷的地方工作一段时间,感受一些异国风情,还是很不错的。
一致哈希(Consistent Hashing)简介
一致哈希 是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中 K是关键字的数量n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。一致哈希的算法最早在如下论文中被提出:
一致哈希在分布式计存储架构中无处不在。是被证明的可以解决经典哈希视图发生变化时,数据搬迁尽可能少的算法。最早是在分布式缓存中提出,参考如下文档,这里提供原文的下载链接:《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web》。