威联通折腾篇八:重启服务

家里遇到一次断电,然后 NAS 就这样异常关机了,重启之后提示磁盘有些碎片需要整理,整理的时候 Qnap 会停止 NAS 上所有的服务,包括 Container Station 中的内容,而 Qnap 说了会在检查完磁盘之后重新启动的,然而并没有,所以只能手动来重启这些服务。 幸亏 Qnap 的绝大部分服务都是用启动脚本来启动的,执行下面的命令可以把 NAS 当前运行的所有服务重启。 /etc/init.d/services.sh restart 当然如果要重启单独的比如说 Container Station 也可以使用 /etc/init.d Read more ...

2018-07-21 qnap , qnap-tutorial , services

Java 查漏补缺之泛型

简而言之,泛型使类型(类和接口)在定义类,接口和方法时成为参数。类型参数提供了一种简便的方法,使得不同的输入类型可以使用相同的代码。 为什么需要泛型 在强类型语言中,如果定义一个具有具体类型的类,那么这个类就只能被该类型使用。 Generics 给类,接口和方法提供了一个参数化的实现方式,使得同一个类定义,方法定义可以处理不同的类型。Oracle 官方的文档有一句话说得特别好: Much like the more familiar formal parameters used in method declarations, type par Read more ...

2018-07-18 java , generics , programming , linux

威联通折腾篇九:MySQL 设置

威联通自带 MySQL 当前我使用的版本是 MariaDB 5.5.57 ,威联通也可以看成是类 Unix 系统吧,但是他和 Linux 还是有很多不同,毕竟深度定制过。 MySQL 在威联通的配置路径在 /etc/config/my.cnf 找到该文件,其他配置就和 MySQL 一样了。 如果想要 MySQL 支持远程访问,在 “控制台” - “应用服务” - “MySQL 服务器” 中选择允许远程连接即可。此时设定一个比较强的密码。 Read more ...

2018-07-16 mysql , qnap , qnap-tutorial

Spring 相关资源

收集了一些官方的非官方的学习资源。 文档 https://docs.spring.io/spring-boot/docs/ 中文翻译 https://github.com/qibaoguang/Spring-Boot-Reference-Guide 代码 官方的样例 https://github.com/spring-projects/spring-mvc-showcase 个人的教程 https://github.com/dyc87112/SpringBoot-Learning Spring MVC 博客 http:/ Read more ...

2018-07-12 spring , spring-mvc , docs , demo , tutorial

Spring @Configuration 注解

@Configuration 标注在类上,相当于把该类作为 spring 的 xml 配置文件中的 <beans>,作用为:配置 spring 容器(context) package com.test.spring.support.configuration; @Configuration public class TestConfiguration { public TestConfiguration(){ System.out.println("spring 容器启动初始化......"); } } Read more ...

2018-07-11 spring , annotation , notes , spring-boot

Java 查漏补缺之 Class.isAssignableFrom() 和 instanceof 区别

Class.isAssignableFrom() 是用来判断一个类 Class1 和另一个类 Class2 是否相同或是另一个类的超类 superclass 或接口 superinterface。 调用方式: X.class.isAssignableFrom(Y.class) 调用者和参数都是 java.lang.Class 类型。上面例子,如果返回为 true,则表示 X 是 Y 的超类或者接口,Y 可以是一个类也可以是一个接口。 instanceof 是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。 调用方式:o instan Read more ...

2018-07-10 java , linux , object , class

Maven 插件

Maven 本质上是一个插件框架,它的核心并不执行任何具体的构建任务,而是将所有任务都交给插件来完成,例如编译源代码是由 maven-compiler-plugin 完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如 maven-compiler-plugin 的 compile 目标用来编译位于 src/main/java/ 目录下的主源码,testCompile 目标用来编译位于 src/test/java/ 目录下的测试源码。 maven-source-plugin [[maven-source-plug Read more ...

2018-07-09 maven , java , build , management , build-tool

Spring boot 笔记

Spring aims to make developer challenges easy, like creating web applications, working with databases, securing applications, and microservices. Spring Boot builds on top of Spring to make Spring even easier with simplified dependency management, automatic configuration, and run Read more ...

2018-07-06 spring-boot , spring , java , web

phpMyAdmin 登录无反应问题记录

今天遇到一个神奇的错误,登录 phpMyAdmin 无论如何都登录不进去,开始还以为密码记错了,但是再输入错误密码时,会显示错误的提示 #1045 - Access denied for user 'root'@'localhost' (using password: YES) 而在在我确认密码没有问题时,phpMyAdmin 的表现就像是登录成功过了,但是却没有跳转。 然后为了解决这个问题,修改过 php.ini 中的 session.save_path ,修改了 session 文件的 权限 chmod 777 /path/to/sessio Read more ...

2018-07-03 php , phpmyadmin , mysql , root , password , browser

Java 查漏补缺:线程间通信

wait notify 方法 wait() 是让当前执行代码的线程等待,wait() 是 Object 类的方法。在调用 wait() 方法前,线程需要获得对象级别锁,只能在同步方法或者同步块中调用,执行 wait() 方法后,当前线程释放锁。如果调用时没有持有适当锁,会抛出 IllegalMonitorStateException 异常。 方法 notify() 也需要在同步方法或者同步块中调用,同样调用前也需要获取对象锁。如果调用没有持有适当的锁,也会抛出 IllegalMonitorStateException 异常。notify() 方法永安 Read more ...

2018-07-02 java , linux , thread , synchronized

最近文章

  • Surfingkeys:比 Vimium 更强大的浏览器键盘控制扩展 最早接触 [[Vimium]] 是在学习 Vim 编辑器之后,那种能用键盘完全控制浏览器的感觉确实让人着迷。不用频繁移手到鼠标,链接跳转、页面滚动、标签切换全用键盘搞定,效率提升的体验是实实在在的。用了几年 Vimium 之后,我开始接触到 [[Surfingkeys]],起初以为不过是另一个同类扩展,但深入用下来才发现这两者的差距远比我想象的大。
  • Denote 介绍 Emacs 下基于文件名的笔记系统 最近在 GitHub 上闲逛的时候,我发现了 [[李继刚]] 整理的一批 [[Claude Skills]],出于好奇就 clone 下来翻了翻仓库。打开目录一眼扫过去,几乎所有 Skill 输出的文档文件名都长得很特别,大致是这样的形式: 20260527162000==z--投资分析-ajinomoto-2802。这种带着长串数字时间戳、夹杂 == 和 – 分隔符的写法,一眼看上去既不像我熟悉的 [[Jekyll]] 那种 YYYY-MM-DD-title.md,也不像 [[Obsidian]] 里常见的中文标题直接做文件名,反而有种”工程化”过头的味道。
  • Ghostty 和 xterm-ghostty 是什么 最近我在 macOS 上重新整理终端工具链的时候,又一次认真看了 [[Ghostty]]。很多人第一次接触 Ghostty,会先被它的界面、速度或者作者背景吸引,但只要打开 Shell 跑一个 echo $TERM,很快就会看到一个更陌生的名字:xterm-ghostty。这个名字看起来像是传统 xterm 的变种,实际上它背后代表的是 Ghostty 对终端兼容性的一整套设计思路。很多人把它当成一个无关紧要的环境变量,但如果你经常使用 [[SSH]]、[[tmux]]、[[Vim]]、[[Neovim]]、[[less]] 或者各种 TUI 工具,理解 xterm-ghostty 会让你少踩很多坑。
  • 终端开发的新范式:从 Gemini CLI 到 Antigravity CLI 终端智能体的新旅程
  • Antigravity CLI:Google 推出的下一代终端 AI 编程智能体 最近在关注 Google I/O 2026 的动态时,看到了一个让我颇感兴趣的发布——[[Antigravity CLI]],Google 官方宣布用它来取代已经积累了超过 10 万 GitHub Stars 的 [[Gemini CLI]]。这个时机有点微妙:个人版 Gemini CLI 用户必须在 2026 年 6 月 18 日前完成迁移,否则将失去模型访问权限。作为一个长期在终端里工作、也在持续关注 AI 编程工具演进的开发者,我觉得有必要认真研究一下这个新工具到底带来了什么改变。