设计模式之创建模式

本文主要归纳设计模式中的创建模式 (creational pattern),主要包括了工厂模式,单例多例,建造者模式,和原型模式等。 创建模式是指对象的实例化过程,这些模式都提供了一种将对象实例化从客户端(Client)分离的方法。 为什么要有创建模式,这也符合[[开闭原则]],Java 自带的 new Object() 实例化对象没有任何问题,问题在于修改,一旦当具体实例涉及变化,那么就必须修改实例自身,不符合开闭原则,所以才有这么多的创建模式。将对外暴露的接口抽象起来,将对象创建的方式封装,对外接口尽量减少。 为什么需要使用 Factory 设 Read more ...


Kindle 篇一:如何把 Kindle Unlimited 的钱看回来

阅读专题书籍 Kindle Unlimited 特别适合专题阅读,比如想要了解日本文化,那么通过搜索日本,可以获得一系列的关于日本的书籍,借阅自己喜欢的书阅读即可。比如日本就可以搜索到,《静观日本》,《牛津通识读本现代日本》,《日本人的活法》,《走遍日本》,《图说日本》,《日本论》,《日本常识》等等的书籍,如果变换关键词也会搜索到像《菊与刀》这样的关于日本文化的书籍。那么通读这一系列的图书就能够快速建立起对于日本这个国家的认识。 同样的道理如果想要了解,政治学,心理学,可以直接以关键词去搜索,当然不一定这一个门类的图书都是在书名中包含关键字的,但是 Ki Read more ...


Google Forms 使用

Google Forms 是集成在 Google Docs 中可以用来快速创建调查问卷,建立报名系统,反馈调查等等的应用。Google Forms 原来属于 Google Docs,现在已经集成在了 Google Drive 中。 打开入口 Google Forms 的入口藏的有些深,如果不是之前就知道这个功能可能很多人用了多年 Google Docs 或者 Google Drive 都不曾知道有这个功能。在 Google Drive 中左上新建,然后在菜单中找到更多,然后其中有 Google Forms。 另外可以直接打开 Google Form Read more ...

2019-02-01 google , google-docs , google-drive , quiz

expect 脚本使用

expect 是用来进行自动化控制和测试的工具。主要是和交互式软件 telnet ftp passwd fsck rlogin ssh tip 等进行自动化的交互。Linux 交互命令中经常需要输入 yes/no 或者 password 等操作,模拟这些输入,就可以使用 expect 脚本。expect 是由 tcl 语言演变而来的。简单地说,expect 是一个工具,可以根据用户设定的规则和系统进程进行自动化交互,例如远程登陆的密码输入、自动化的执行远程命令。 一个非常典型的使用场景就是一般在公司中都会使用 relay 来连接管理服务器的远程连接和使 Read more ...

2019-01-29 expect , linux , automate , shell , script , 运维 , 自动化

记录一下 Linux Mint 19 升级过程

记录一下从 mint 18.3 升级到 19, 然后小版本升级的过程。虽然总结这篇文章的时候比较早,但是一直没有发布出去,现在想想 Mint 20 都快出了,放在这里做个记录吧。 都知道 Ubuntu 大版本更新极有可能会让一些熟悉的应用没有及时维护而无法使用。Mint 也是一样从 18.3 升级到 19 的过程就比较痛苦,需要升级各种依赖版本。 备份 使用 Mint 自带的 timeshift 应用进行备份: sudo apt install timeshift 查看当前的 dm, 并变更为 lightdm: cat/etc/X11/def Read more ...

2019-01-23 mint , linux , ubuntu , cinnamon

alibaba arthas 使用

Arthas is a Java diagnostic tool that promises to help developers troubleshoot production issues for Java applications without modifying the code or restarting the server. Main features: Useful for trouble-shooting jar file conflicts Decompile a class to ensure the code is Read more ...

2019-01-23 arthas , java , diagnostic-tool

开源软负载均衡 HAProxy 使用及配置

HAProxy is free, open source software that provides a high availability load balancer and proxy server for TCP and HTTP-based applications that spreads requests across multiple servers. It is written in C and has a reputation for being fast and efficient. Features: Layer 4 ( Read more ...

2019-01-20 linux , load-balance , haproxy , proxy , tcp , http

oneplus 3 recovery ROM kernel 选择

所有下载链接建议有国外 VPS 的直接从国外的 VPS 下载,scp 拉回本地,浏览器下载太慢。 Recovery https://twrp.me/oneplus/oneplusthree.html ROM AOSP Extended https://forum.xda-developers.com/oneplus-3/oneplus-3--3t-cross-device-development/rom-aospextended-rom-v3-1-t3557363 LineageOS https://download. Read more ...

2019-01-19 oneplus , rom , kernel

Hive SQL 介绍及使用

Hive 是 Hadoop 生态中必不可少的工具,提供了 SQL 方言用于查询存储在 HDFS 中的数据和其他与 Hadoop 集成的文件系统(Amazon S3 ,HBase 数据库,Cassandra 的数据) Hive 最适合数据仓库应用,使用应用进行相关静态数据分析,不需要快速响应得到结果,数据本身不会频繁发生变化。Hive 不是完整的数据库,Hadoop 和 HDFS 的设计约束和局限限制了 Hive 所能胜任的工作。最大的限制就是 Hive 不支持记录级别的更新、插入或者删除。 Hive 不支持 OLTP(联机事务处理)而更接近 OLAP Read more ...

2019-01-17 hive , sql , hadoop , hbase

kudu 笔记

Kudu 是一个分布式结构化存储系统,由 Cloudera 开源,和 Apache Hadoop 生态紧密结合,共享了很多相同的工具集,可以跑在相同的硬件上,都支持水平扩展。 Kudu 要解决的问题 在了解 Kudu 之前先要了解两个概念 OLTP 和 OLAP: OLTP,online transaction processing ,database modifying system 数据库 OLAP,online analytical procession, online database query answering system Read more ...

2019-01-14 kudu , apache , sql , hbase , oltp

最近文章

  • 呆呆面板 MCP 配置教程:让 Claude、Cursor 用自然语言管理定时任务 前两天写了一篇 呆呆面板 daidai-panel:轻量级青龙面板替代品介绍与 Docker 部署教程,在那篇文章里我提到呆呆面板和 [[qinglong 青龙面板]] 最明显的代差是内置了 [[MCP]] 服务,但只是简单带过。面板搭起来、脚本陆续迁移进来之后,我每天早上要做的第一件事就变成了打开面板,挨个看昨晚哪些任务失败了、报的什么错、是 Cookie 过期还是网站改版。这种重复又琐碎的巡检,恰好是 AI 最擅长替人做的事情。所以这一篇就专门聊聊呆呆面板的 MCP 怎么配置、怎么接入不同的客户端,以及在权限上应该怎么取舍。
  • 呆呆面板 daidai-panel:轻量级青龙面板替代品介绍与 Docker 部署教程 Homelab 里跑久了,总会攒下一堆零散的小脚本:每天早上抓一次汇率发到 Telegram,定时检查几个网站的证书有没有快过期,隔一段时间把某个 API 的数据拉下来存一份,再加上各种网站的自动签到。最开始我都是直接写进服务器的 crontab,时间一长就发现问题很多,脚本散落在不同的机器上,日志不知道去哪看,失败了也没人通知,Python 依赖装在系统里还经常和别的东西打架。几年前我为此折腾过 [[qinglong 青龙面板]],最近在 GitHub 上又看到一个定位几乎一样、但更轻量的新项目,叫呆呆面板([[daidai-panel]])。
  • RAGFlow:以深度文档理解为核心的开源 RAG 引擎介绍与部署使用教程 这两年我陆陆续续接触过一些 RAG 小工具,从最早自己用 [[LangChain]] 拼一个 demo,到后来用 [[AnythingLLM]]、[[Dify]] 的知识库功能,有一个体验几乎每次都会重演:拿几篇 Markdown 测试的时候效果惊艳,一旦换成真实的业务材料,比如一份带合并单元格的财报 PDF、一份双栏排版的论文、几页扫描的合同,回答马上就开始胡说八道。追查下去会发现问题根本不在大模型,而在最前面的解析和切块环节,表格被拍平成一串没有表头的数字,左右两栏的文字被交错拼接在一起,模型拿到的上下文本身就是错的。也正是因为这个痛点,我在调查 ESP32 小智 AI 后端的时候发现了 [[RAGFlow]],一个可以「深度文档理解」的开源 RAG 引擎。
  • Git 本地忽略文件:.git/info/exclude 的作用与使用技巧 由于本地 IDE、插件、Agent 的差异,所以经常打开项目之后会出现一些只属于我自己的文件,AI Agent 和一些 MCP,Skill 也喜欢在项目根目录里面添加文件。每次 git status 都能看到这一串红色的 untracked 文件,看着很烦,又不太好意思为了自己的习惯去改项目的 .gitignore。这时候我想起了 .git 目录里一个存在感极低的文件 info/exclude,它刚好就是为这种场景设计的。
  • Meta Muse 使用教程:上手设置、提示词技巧与实用案例 上一篇 Meta Muse 介绍与注册指南:一个会替你跑腿的个人 AI Agent 把 [[Muse]] 是什么、怎么注册、额度怎么算都整理了一遍,但是留了一个结尾:注册完之后到底该让它干什么。Muse 上线这几周,我查阅了一些测评体验,整理了 X 和 Threads 上用户晒出来的用法,发现大家的使用路径其实很像:从提醒和文件这类零风险的任务开始,确认它靠谱之后再慢慢接入邮箱、日历,最后才让它碰钱。这篇就按这个顺序来整理,从界面和设置讲起,再到具体的案例和踩过的坑。