树莓派系统安装及设置

树莓派官网有很多系统可以选择,我选了官方维护的 Raspbian 基于 Debian 的衍生版,主要是熟悉他的 APT 包管理,看评价三方维护的 Snappy Ubuntu Core 换用了其他的 snap 的管理,不是很了解,所以还是选择了 Raspbian。 系统安装 官网提供的教程非常方便, 采用开源的镜像烧录工具 Etcher 非常方便的就可以在三大平台上完成镜像到 SD 的烧录。当然如果熟悉各个平台的工具也可以自己手动完成烧制。 启动系统 在将系统写入 microSD 卡之后,将卡插入树莓派板子,启动树莓派,开机即可,可以用 HDMI Read more ...

2017-08-26 raspberrypi , linux

Redis 安全性检查

Redis 在设计上,是用来被可信客户端访问的,也就意味着不适合暴露给外部环境非可信客户端访问。 最佳的实践方法是在 Redis 前增加一个访问控制层,用于校验用户请求。 基本配置 Redis 本身提供了一些简单的配置以满足基本的安全控制。 IP 绑定。如果不需要直接对外提供服务,bind 127.0.0.1 就行了,切忌 bind 0.0.0.0 端口设置。修改默认的 6379,一定程度上避免被扫描。 设置密码。Redis 的密码是通过 requirepass 以明文的形式配置在 conf 文件里的,所以要尽可能得长和复杂,降低被破 Read more ...

2017-08-25 redis , database , nosql , security , key-value , db

Linux 主机在线监控: nodequery

很久没有更新这个分类下的文章了,其实一直在体验不同的产品,只是真的很少有能拿出来讲一下的东西。不管是硬件还是软件,最近几年使用的东西越来越狭窄,越来越收缩,当然对于某一个特定的需求,总有一个产品能够占领绝大多数市场,而也有部分产品能够瓜分小众市场。这里要介绍的这个 NodeQuery 就不是一个大而全的产品,而是一个很精细的小众产品。我用它也一年多了,我的需求很简单,能够实时监控我的 VPS,能够在宕机或者高负载时报警。NodeQuery 完全能够满足我的需求。 用 NodeQuery 自己的话描述自己就是:”一个轻量、易用的 Linux 服务器监控服 Read more ...

2017-08-23 linux , vps , monitor

Python 笔记之内存模型 Variables Objects and References 区别

许多使用静态语言比如 C、 C++ 或者 Java 的人,在转到 Python 的时候可能第一个会疑惑的就是 Python 不需要显示的指定类型,那么 Python 是怎么知道变量的类型呢? 变量创建流程 在 Python 中,变量的创建遵循着一个非常合理的方式,以 a=3 来举例子: 变量创建 一个变量(名字)比如 a ,当第一次被赋值时被创建。 变量类型 Variable Types 一个变量永远不会有任何类型信息或者约束,类型的概念和 Object 关联,而不是变量名字。变量都是通用的(泛 Read more ...

2017-08-22 python , variable , object

Python modules and package

Python 很重要的一个概念 module,用来组织代码结构。 import 导入搜索的路径 代码的 home 路径 PYTHONPATH 目录(如果存在的话) 标准库路径 .pth 文件中配置的路径(如果存在的话) 最终,这些路径都会存在 sys.path 中,是一个保存着一系列搜索路径的 list。 >>> import sys >>> sys.path 导入工作流程 在路径中找到导入的模块 编译 运行 Package 一个目录的 Python code 被称为 Read more ...

2017-08-20 python , modules , import , pythonpath , library

《Spring MVC 实战》笔记

从 WizNote 中整理。 POJO, Plain Old java object, 最简单的 Java 对象 [[Dependency Injection]] 带来的最大好处,松耦合,如果一个对象只通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行替换。 AOP aspect-oriented programming, 面向切面编程允许将遍布应用各处的功能分离出来形成可重用的组件 依赖注入让互相协作的软件组件保持松散耦合,而 AOP 则是让遍布各处的功能分离出来形成可重用的 Read more ...

2017-08-19 spring-mvc , spring , notes , java

Spring MVC 中常用的注解

一般的注解,比如常见的 @Override 是 Java 从 1.5 版本开始引入,注解一般用来对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等等进行注解,他的作用一般分为如下四个方面: 生成文档 编译检查,通过注解让编译器在编译期间进行检查校验 编译时动态处理,编译时通过注解标示进行动态处理,比如生成代码 运行时动态处理,反射注入实例等等 一般的注解可以分为三类: Java 自带的注解,包括 @Override @Deprecated 等等 元注解,用于定义注解,包括 @Retention @Targe Read more ...


Python 笔记之内置类型

这篇文章总结一下 Python 的内置类型。 类型 Object type Example literals/creation Numbers 1234 , 3.1415 , 3+4j , Decimal , Fraction Strings ‘spam’ , “guido’s” , b’a\x01c’ Lists [1, [2, ‘three’], 4] Read more ...

2017-08-16 python , linux , object , type , object-type

google foobar page

https://www.google.com/foobar/?eid=sfeTWdGPBIac8QXcxpXgAQ&usg=AG3vBD082_C21k4vEcaG4KspC-1eGqU7KA Minion Labor Shifts =================== Commander Lambda's minions are upset! They're given the worst jobs on the whole space station, and some of them are starting to complain Read more ...

2017-08-16

@Autowired vs @Resource vs @Inject 的区别

为了实现依赖注入 DI 而引入,Java 提供 javax.annotation.Resource , javax.inject.Inject 注解,Spring 框架提供了 org.springframework.beans.factory.annotation.Autowired 。依赖注入(Denpendency Injection,DI), 控制反转(Inversion of Control, IoC),主要的目的是去除代码耦合。具体可参考其他资料。 @Autowired 是 Spring 特有的注解,默认按照类型装配。 @Resou Read more ...


最近文章

  • Claude Code /goal:让 AI 自主持续工作直到达成目标的新命令 用 [[Claude Code]] 写代码时,一直有一个令人微妙不适的摩擦:每当 Claude 完成一轮工作,控制权就回到了我这里,我需要再次发出指令,告诉它”继续”“再检查一遍”“还有这个文件没改”。对于那种需要跑很多轮才能完成的任务——比如把一个模块从旧 API 迁移到新 API 直到所有测试通过,或者逐文件重构某个目录直到符合统一规范——这个”人类中继”的环节就显得相当机械,本质上我只是在不停地按确认键。
  • 本地快速切换 Claude Code 和 Codex CLI 账号的几种方案 同时维护个人项目和工作项目的时候,最让我头疼的不是代码本身,而是工具的账号管理。[[Claude Code]] 和 [[Codex]] 这类 AI 编程工具,我在公司有一套账号,个人订阅又是另一套。每次在项目之间切换,都要 claude auth logout 再 claude auth login,不仅耗时,还经常忘了当前用的是哪个账号,写了半天才发现额度消耗到错误的账号上去了。
  • socat:比 netcat 更强大的网络瑞士军刀
  • codex-lb:用负载均衡的思路管理多个 ChatGPT 账号 用 [[Codex]] CLI 做开发的人大概都遇到过这个场景:手头有几个 ChatGPT 账号,分散在不同的订阅计划里,但工具只认一个账号,额度用完了只能手动切换,每次还要重新登录。更头疼的是,当多人共享一个环境,或者想用同一套配置同时跑 Codex CLI 和 OpenCode 时,账号管理很快就变成了一团乱麻。
  • cc-switch:在多个 AI 编码工具之间优雅切换 最近这一年,AI 编码工具的竞争进入了白热化阶段。[[Claude Code]]、[[Gemini CLI]]、[[OpenAI Codex]],每家都在拼命迭代,功能差距越来越小,价格战也越打越猛。于是我开始同时订阅好几个服务,针对不同的任务选用不同的工具——写复杂逻辑用 Claude,快速查文档用 Gemini,处理 Python 脚本用 Codex。