Setup K3S + Rancher Cluster

Setup K3S + Rancher Cluster

Notice: This article is only available in Chinese. :( 很久没写博客了啊。。。大三啦,准备着电子设计大赛和考研,还是有点忙的,一直没来打理博客;要写的东西其实并不少 (说白了就是懒~)。最近有空升级了集群的部署方案,为了以后能有个参考,可以来水一篇了。 我在香港的两台服务器上托管着各种各样的服务,有轻量级别的 RSS阅读器 Miniflux、IFTTT 开源替代品 Huginn、有中等量级别的 数据收集与可视化 Grafana + Prometheus 栈、消息队列服务 RabbitMQ,也有重量级别的 Git + CI 服务 GitLab、 Minecraft 服务器等,他们都蜗居在这两台中等配置的服务器上。 为了方便管理与减少维护的精力与时间,我使用的部署方式/工具一代代地升级着: 高中时有了第一台云服务器,主要用来运行如 …

Continue reading

Install & Configure Arch Linux

Install & Configure Arch Linux

Notice: This article is only available in Chinese. :( 早就听闻 Arch邪教的大名,Arch的维基对于新手入门Linux有很大的帮助,无论是在用哪个发行版;我也曾带着各种各样的奇怪问题,从搜索引擎、serverfault和各种论坛来到 ArchWiki。 最开始我是抱着折腾到底的心态才想来尝试Arch的,毕竟我实在是太会折腾了。作为一个经历过 Fedora、 Debian的长期 Ubuntu用户,最近因为期末了没时间,只是浅尝了一下Arch的一个衍生发行版 Manjaro。 Manjaro身上虽已经有了许多Arch的特征(毕竟是衍生发行版嘛),但因为其预装了许多可能不必要的软件,还是比较臃肿(顺着本文安装Gnome桌面后空间占用只有6GB左右;如果再适当精简部分软件或使用 xfce桌面的话会更小) …

Continue reading

MacOS Based STM32 Development

MacOS Based STM32 Development

Notice: This article is only available in Chinese. :( 使用过 Intellij 系列 IDE 的同学都知道使用其进行开发的流畅体验。最近几年 ST 公司大力推行 HAL 库及 Cube 工具(MacOS 上可直接使用基于 Eclipse 二次开发的 CubeIDE),也为 MacOS 上的嵌入式开发提供了非常大的便捷,而 Jetbrains 公司的 CLion 对 Cube 相关工具的整合与适配更是锦上添花。何乐而不为呢? 对我而言,CLion 拥有的非常实用的功能主要有以下这些: 代码自动补全,以及无处不在、无微不致的提示(连调函数时都会体贴地提示你形参名,泪目) 代码文档注释(只需鼠标移动至函数、变量等对象下,即可出现格式化的文档注释。我在习惯 HAL …

Continue reading

Binary Search Reexplained

Binary Search Reexplained

Notice: This article is only available in Chinese. :( 写在前面 二分虽然看起来没有几行,但 真的算不上简单;细节方面陷阱很多. 像我这种不拘小节的人,真的😖。 为此,我想系统地整理一下二分笔记。查了好一些资料,算法笔记、Segmentfault、知乎、博客园,有关二分查找的内容其实挺多的。然而大多数内容文字多形象表达少,算法全是语言描述,十分抽象,甚至不如直接上代码;这看得可真够累的,有那么麻烦吗? 我丢掉了大多数抽象而没必要的解释,整理了几个二分及变形的例程,写了这篇详细讨论常见的几种二分及变形算法的笔记。文中的例程均使用 C。 为了清晰地观察算法的每一个动作,我定义了一个函数 printStack(),即本文的主角: void printStack(int arr[], int n, int l, int m, int r, …

Continue reading

Using zsh as the best alternative to bash

Using zsh as the best alternative to bash

Notice: This article is only available in Chinese. :( 先放上效果图 好像是挺精致的;(心情好)功能强大效率也许会高那么一些😊。 使用 /U/t/Doc/Pro + -> 代替 /U + ->/t + ->/Doc + ->/Pro + -> 来切换到 /User/twikor/Documents/Projects 随时观察到当前时间、当前项目使用的nodejs、PHP、Laravel等的版本(居然没有python、Flask)、服务器载荷... 当前目录项目git状态指示(真的不能再方便) 自动补全(✌️) ls目录下不同类型颜色区分 观察命令执行时长 可高度自定义主题与插件,增加额外的功能 安装zsh …

Continue reading

Brief guidance to linux systemd configuration

Brief guidance to linux systemd configuration

Notice: This article is only available in Chinese version. :( 习惯了诸如 " systemctl {start|status|stop|enable|disable} httpd " 等类似的命令?在Linux中如何将普通的应用程序设置成服务? 这里以 frp client 为例,实现在 Ubuntu 18.04 上的普通的应用程序添加进守护进程以方便配置自启动。 配置service文件 在应用程序的安装或配置位置,新建一个 frpc.service ,然后再来按照区块编辑这个文件: Unit 负责服务的描述,启动顺序和依赖关系。 Before 和 After 定义服务的启动顺序(在某个程序之前或之后)。 require 要求某个服务启动成功,否则不会启动该自定义服务,而 Wants 则不会终止该自定义服务的启动。 …

Continue reading

Using putty to connect raspberry pi by serial

Using putty to connect raspberry pi by serial

Notice: This article is only available in Chinese. :( 最近收到了期盼已久的树莓派:3B和zere 0w,当然要晒一晒了, 就像这样。 在连包装盒一起里里外外欣赏了个透之后,就有疑问来了:没有HDMI接口的显示器,该怎样给好吃的连无线网络呢?(尽管是有的,我还是这么想了)USB直连?可能不大行得通(人家只是电源接口而已,USB直连根本不行),还有烧板子的风险。查了查dalao们的博客,ttl串口通讯,好的,猜得八九不离十。 材料 USB转TTL串口连接线(带芯片),serial controller 驱动 连线 红色连接5V,黑色接地,还有两根白绿分别接TXD和RTX。 自带电源供应时就不能连接5V红线,据说会烧板子(娇气;要是有外设譬如电机驱动板,可能失误带来的后果会小一些)。 附赠 树莓派实验室出品 引脚图一张: 安装驱动 …

Continue reading

Lumen custom page-notfound response

Lumen custom page-notfound response

Notice: This article is only a available in Chinese version available. :( 在 App\Exceptions\Handler 中引入: use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; 然后在 render()中更改响应的方式。 如果要渲染成页面,可以先在view文件夹中添加error.blade.php文件,然后在 render()中 return前加入判断404的语句: if ($e instanceof NotFoundHttpException){ return response(view("error"),404); } 如果要渲染成Json格式输出,可以直接使用json(): if ($e instanceof …

Continue reading

NGINX 开放跨站请求

在Twic lab中新添加了一个CDN项目 T HREF,将常见的字体、前端框架等静态文件统一放在里面,便于引用。 然而在实际应用时,发现能够直接访问文件,能够在同一域下的其他文件中调用,却不能够在其他域中调用。 解决方法: 在CDN项目的NGINX配置文件中添加响应头: add_header Access-Control-Allow-Origin *; 以开放跨站请求,即可解决问题。

Continue reading

Ubuntu 16.04 升级至 17.10

虽然部分VPS商家如Vultr等在部署时均提供Ubuntu 17.10版本,大多数的提供商(至少我遇到的两三家)的Ubuntu版本都还是在16.10及以下。为了方便使用,当然想把我的所有VPS都弄成同一个操作系统统一版本;既然决定使用Ubuntu 17.10,那么剩下的如何更新呢? 若是Ubuntu17.04,只需 " apt update " 后执行 " do-release-upgrade " 。但是对于以下的版本 (<= 16.10) ,似乎需要折腾一会儿。 更新已安装包 还是照常, apt update 如果有更新,就 apt upgrade 安装并配置更新管理 apt dist-upgrade apt install update-manager-core 安装好后打开 " /etc/update-manager/release-upgrades " ,找到最后一行,将 …

Continue reading