从零开始搭建 NAS: 硬件篇

自从年初注册了 PT 站 就发现原来的 QNAP TS453bmini 的硬盘就不堪重负,所以想要把下载和真正想要管理的数据安全的从硬件上隔离开,所以才有了这篇文章。 研究阶段 自行组装 NAS 相较于买成品 NAS 中间可能遇上许许多多坑,不过填坑的过程就是学习的过程,能学到很多硬件知识,并且通过对自己需求的合理规划能够组一台最合理的符合自己需求的机器。 下面就记录一下研究过程中新接触到的概念。 ITX 在看主板的时候不可避免的会看到这个 ITX,实际上 ITX 就是主板的一个大小,ITX 或者又称为 Mini-ITX 是一块 17 * 17cm Read more ...

2018-12-24 nas , linux , cpu , motherboard

每天学习一个命令:jq 命令行下处理 JSON

jq 是一个命令行下的 JSON 字符串处理工具,就像 sed 对于文本一样,jq 对应着 json 文件,jq 命令可以不同方式转换 JSON。jq 可以接受文本输入,默认情况下,jq 从 stdin 读取 JSON 流。通过和管道的组合可以非常方便的处理 JSON。 jq is a lightweight and flexible command-line JSON processor 使用实例 直接处理文件 js -I '.' input.json cat input.json | jq -I '.' jq 只能接受标准 JSO Read more ...

2018-12-21 jq , json , linux , command

日志数据脱敏方法研究

日志文件中的敏感信息比如密码,电话号码等等进行过滤处理。第一个想到的方法就是去 log4j 中自定义 Appender,在 Appender 中正则匹配敏感信息进行过滤。 log4j 日志框架在之前 的文章中也也说过,主要有三个组件,Logger,Appenders 和 Layout,要过滤日志内容解决方法也就是从这三个地方着手。 log 时手动处理 Logger 着手就是在打日志的时候就处理,从根源解决。最精确的处理就是在每个类敏感的字段上手动处理,在打印日志时,封装方法手动转换 String 。这种方法唯一的缺点就是对于一个大型成熟的系统,要修改 Read more ...

2018-12-20 log4j , log , desensitize , 日志 , 脱敏

log4j PatternLayout 输出模板

log4j 下的 PatternLayout 只是 Layout 的一种,用来格式化日志文件的输出。在 PatternLayout 中,配置一个样板字符串,通过该字符串来定义输出格式。 log4j 还提供了其他三种 Layout org.apache.log4j.HTMLLayout(以 HTML 表格形式布局) org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 这个类的目标是格式化 Logg Read more ...

2018-12-19 log4j , java , log

Unix 进程

Unix 内核在硬件之上,与硬件交互,系统文件读写,网络数据发送,内存分配,扬声器播放音频等等。程序不能直接访问内核,通信通过系统调用完成。 系统调用是内核和用户空间交互的桥梁,规定了程序和计算机硬件之间可以发生的交互。 Unix 的系统调用文档已经在系统中,输入 man man 查看。 进程是 Unix 系统基石,所有的代码都在进程中被执行。 进程标示 唯一进程标示 PID,PID 本身没有任何进程信息,只是一个数字。系统中每一个进程都有其父进程,PPID。多数情况下,特定进程的父进程就是调用他的进程。 文件描述符值用来跟踪打开的资源,已经关 Read more ...

2018-12-17 unix , linux , process

log4j appender

Appender 表示日志输出的地方,常见的有控制台,文件等等,log4j 自带了一些常用的 Appender。 日志中的 LEVEL 和 threshhold log4j 框架中有两个概念 logger 和 appender。如果 logger 的最低 level 设置为 warn,这意味着任何日志 level 低于 warn 的日志都会被忽略。 一旦一个消息被 logger 接收,这条消息会被发送给一个或者多个 appenders(to console,to file,to mail server, etc). 每一个 appender 都会定 Read more ...

2018-12-17 log , java , log4j , slf4j

重构读书笔记

重构第一步,构造可靠的测试环境。 What 任何可以立即查阅的东西,都故意不去记忆。 什么是重构 重构,对软件内部结构调整,在不改变外部可观察行为的前提下,提高其可理解性,减低修改成本。 重构难题 对于修改接口,能获取所有调用者,那么可以安心修改。如果无法修改全部调用者,如果是公开已经发布的接口,就需要同时维护新旧两个接口,直到所有用户将该变化做出反应。 How Duplicated Code 重复代码提炼。兄弟类,则推到 super class,如果是不完全相同的,则分解方法提炼统一的方法。 Long method 小函数准确的命 Read more ...

2018-12-16 java , refactor , coding , programming

JProfile 简单使用

在学习 ThreadLocal 的时候有人推荐了 JProfiler ,可以用来对 Java 内存泄露分析,JProfile 其实是一个 Java 的性能分析工具,不仅可以用来排查 OutOfMemoryError 的错误,对于查找系统瓶颈,查看 Java 堆信息等等都有很强大的功能支持。 搜索一番之后发现也有很多 Java Profiler 的工具,JDK 自带也有 Java VisualVM 这样的工具。 JProfiler JProfiler’s intuitive UI helps you resolve performance bottle Read more ...

2018-12-14 java , jprofiler , visualvm

英语搭配语字典整理

最近用 [[GoldenDict]] 查词非常频繁且非常有效的提高了阅读的效率,但是在日常有的时候听一些英语口语的广播节目的时候,经常会有一些短语搭配,而我们平时如果写作的话,其实短语较于单词更为重要,口语亦然。所以产生了一个念头,如果有一本英语搭配语字典就能够提高不少效率,没想到都不用去刻意搜索,就出来了好几个推荐。 Oxford Collocation Dictionary 牛津英语搭配语词典 The BBI dictionary of English word combinations BBI 英语搭配词典 Longman Coll Read more ...


Bash Script

Shell Syntax - what is your input means to the shell Shell Operations - what can shell do read input from file breaks the input into words and operations parse the token into simple and compound commands performs the various shell expansions redirections execute th Read more ...

2018-12-14 linux , shell , bash , assignment

最近文章

  • Aqua Voice 利用语音转文字提升产出效率 之前我介绍过 [[MacWhisper]],[[MemoAI]] ,[[VideoLingo]],[[pyTranscriber]] 等等语音转文字的 AI 工具,但当时我的需求只是将视频中的音频转为文字,或者字幕,但是,随着现在语音转文字技术的发展 ,我越来越意识到手工通过输入法来输入文字的效率非常低。 所以我一直在寻找有没有可能在电脑上直接通过语音来编写文章。
  • HomeShare 让本地电脑文件夹成为文件分享服务器 前些天出门拍了很多照片,回来从 SD 卡导出之后就想有一个可以快速一键分享出去的方法,通过微信传,虽然可以通过笔记一次发送超过 9 张图片,但是还是需要将照片上传到微信的笔记里面,虽然我之前也有使用自己的在线图库,但依然避免不了上传等待的过程,并且如果照片比较大时,等待的时间会很长。所以这几天我一直再想能不能有一个方法可以直接将本地的文件夹共享出来,或者直接让别人将图片一次性发送到我本地。
  • Dola 你的私人智能 AI 助手轻松管理日程 我个人一直使用 Google Calendar 作为日程管理,很久以前也购买了一个叫做 Checker Plus 的 Chrome 插件,可以直接在 Chrome 的插件栏查看日程,并且还可以直接通过自然语言来创建日程,以及在日程之前弹窗提醒,实话说这款插件已经能满足我 90% 的日程安排了。
  • K3s 部署 Bitwarden 我之前一直是在一台机器上使用 Docker compose 安装了 Bitwarden,但是这样存在一个隐患,那就是如果这一台机器宕机了,或者发生任何意外,那么我可能有一段时间无法访问我的所有密码仓库,所以为了避免这样的问题,尤其是在我已经稳定运行 K3s 一段时间之后,我就想着将 Bitwarden 迁移到 K3s 上,并且我希望直接使用 Bitwarden 历史的数据,并且也直接使用原来的域名,密码等等,这样就不需要让我所有的设备重新再登录一遍。那么本文就记录一下我在 K3s 上搭建 Bitwarden ,以及将历史数据迁移到 K3s 中的过程。
  • K3s 中给节点添加标签并实现 Pod 调度控制 给 K3s 中的节点添加标签并实现 Pod 调度是一个非常常见的需求,特别是当你希望某些 Pod 只在特定地理位置的节点,比如美国,日本,上运行的时候。