设计模式之创建模式

本文主要归纳设计模式中的创建模式 (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

最近文章

  • 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 只在特定地理位置的节点,比如美国,日本,上运行的时候。