IntelliJ IDEA 中使用 Resin 调试

平时开发环境使用的是 jetty,而 Java Web 有一个更好更快的服务器 Resin,这篇文章就来说一下什么是 Resin,以及在 Debug 中如何使用。 什么是 Resin Resin 是一个提供高性能的,支持 Java/PHP 的应用服务器。目前有两个版本:一个是 GPL 下的开源版本,提供给一些爱好者、开发人员和低流量网站使用;一种是收费的专业版本,增加了一些更加适用于生产环境的特性。 Resin 也可以和许多其他的 web 服务器一起工作,比如 Apache Server 和 IIS 等。Resin 支持 Servlets 2.3 标 Read more ...

2017-09-19 Resin , IntelliJ , Java

Python 中 subprocess.call() vs os.system() 区别

在 Python 中调用系统命令可以使用两种方法,一种是 os 模块中的 system() 方法,一种是 subprocess 模块中的 call() 方法。 os.system() 这个方法会接受一个字符串命令,然后在 subshell 中执行,通常是 linux/OSX 下的 bash ,或者 Windows 下面的 cmd.exe。根据官方的文档,os.system() 方法时使用标准 C 方法 system() 来调用实现的,所以存在和 C 方法中一样的限制。 os.system("python –version") 举例 import Read more ...

2017-09-18 python , subprocess , system , subshell

写了一个推送图书到 Kindle 的 bot

最近因为好奇所以大致的看了一下 Telegram 的 bot,很早 就开始用 Telegram 但事实上,我大部分情况下就是将 Telegram 作为一个跨平台同步工具和备份工具来使用,直到最近因为 Ingress 的一些朋友和一个图书群我对 Telegram 才有了更多的使用,也在 Telegram 发现了每周会推送一本书的 Channel。 所以我想照着有一个叫做 to_kindle_bot 的号自己写了一个将图书发送到 kindle 邮箱的机器人,bot 要实现的功能很简单,就是将图书资源发送给 bot 之后将图书发送邮件推送到关联的 kindl Read more ...


每天学习一个命令:jstack 打印 Java 进程堆栈信息

Jstack 用于打印出给定的 Java 进程 ID 或 core file 或远程调试服务的 Java 堆栈信息。 这里需要注意的是 Java 8 引入了 Java Mission Control,Java Flight Recorder,和 jcmd 等工具来帮助诊断 JVM 和 Java 应用相关的问题。推荐使用最新的工具以及 jcmd 来进行诊断。 Prints Java thread stack traces for a Java process, core file, or remote debug server. This com Read more ...

2017-09-14 jstack , java , debug , linux , thread-dump

Spring 中 HandlerMethodArgumentResolver 使用

HandlerMethodArgumentResolver 是一个接口: public interface HandlerMethodArgumentResolver { boolean supportsParameter(MethodParameter var1); @Nullable Object resolveArgument(MethodParameter var1, @Nullable ModelAndViewContainer var2, NativeWebRequest var3, @Nullable WebDa Read more ...

2017-09-10 spring , resolver , spring-boot

使用 antigen 来管理 zsh 插件

antigen 是 zsh 的插件管理工具,在他 GitHub 主页上的一句话非常形象的解释了他的功能。 Antigen is to zsh, what Vundle is to vim. 2021 年更新 在过去几年的使用里面 antigen 并没有出现多大的问题,但是随着 antigen 以及 zsh 安装的插件过多,导致每一次打开一个新的终端都会变得很慢,所以我在今年早些的时候切换成了 zinit。 安装 curl -L git.io/antigen > antigen.zsh 或者 apt-get install zs Read more ...

2017-09-07 antigen , zsh , bash , linux , vim , tmux

爬虫相关技术整理

部分内容从 Python 3 网络爬虫开发实战 书 中整理。 Python 模块 主要依赖 Python 模块 requests BeautifulSoup doc celery 介绍 实践 PyMySQL doc 或者 MySQL-python doc SQLAlchemy doc 数据库 MySQL Redis 抓包 Charles 介绍 MitmProxy 介绍 Fiddler wireshare 介绍 工具依赖 Selenium 自动化测试框架 Appium 移动 Read more ...

2017-09-05 crawler , spider , python , mitm , linux

使用 Shell 命令来对 Unix 时间戳和日期进行转换 date 命令

在程序中经常要使用到 Unix timestamp 和日期的转换,通常情况下都是 Google 一个时间戳转换的网页在进行转换,其实 Linux 命令中就有能够快速实现转换的命令。主要都是集中在 date 这个命令。date 命令主要用于显示或设定系统时间和日期。 修改系统的时区 Linux 用来修正系统的时区 sudo dpkg-reconfigure tzdata 选择 Asia > Shanghai date 常用命令 获取当前的 Unix timestamp date +%s # 返回 10 位时间戳,%s 表示从 19 Read more ...

2017-09-04 shell , linux

Mastering the Vim

我已经用了很长一段时间 Vim 了,但是 Vim 最可贵之处便在于你永远达不到 Vim 的天花板,在使用的过程中我永远会发现操作 Vim 的其他便捷方法。最近看了一个关于 Vim 的讲座 ,革新我对 Vim 命令的认识。可以说掌握这样的一个世界观可以对 Vim 的操作上到另外一个层次。下面就总结一下这个视频中的精髓内容。 Text Objects and motions @ChrisToomey 定义了一种 Vim Language,Vim 的语法由数词 + 动词 + 名词 组成,比如: d 删除 w 单词 将两个字母组合起来就是 删除单词 这 Read more ...

2017-09-03 vim , linux , editor

Raspberry pi 自动挂载 NTFS USB 设备

一些相关的命令 sudo fdisk -l # 列出磁盘分区表 结果是这样的: Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram1: 4 MiB, 4194304 byte Read more ...

2017-09-02 linux , raspberrypi , mount , ntfs , usb

最近文章

  • Novita AI 面向 AI 开发者的 GPU 云平台 在如今 AI 时代,个人开发者和企业都想要高效,经济,且容易部署的 AI 模型,尤其是 DeepSeek 横空出世之后使得个人在部署使用私有 AI 模型方面变得异常简单,但问题随之出现,普通人的电脑无法带动 DeepSeek 发布的更消耗内存更消耗计算能力的模型,普通用户也很难去给自己的每台电脑都配上英伟达 4090,更不用说去管理 GPU 集群,而普通开发者如果想要将自己的模型部署到云服务上也非常棘手,而这就是今天我要介绍的 Novita.AI 要解决的问题。
  • Zig 语言编写的开源终端 Ghostty 在 Linux 上我使用 [[Guake]],到后来换成 macOS 之后使用 Kitty,直到前段时间更换成 Warp,但是没想到这几天又发现一款不错的终端 Ghostty。没查不知道,但是一查之后才发现 Ghostty 背后的作者的故事是多么精彩,并且 Ghostty 使用的 Zig 语言也是我第一次听说。
  • 关于在 Docker 容器中如何优雅关闭 Java 应用的记录 这两天遇到一个和 Docker 运行相关的问题,我们使用 Azure App Service 来运行服务,但是每次重启服务的时候,发现不会出发 Javalin 的 stop,感觉 Java 进程没有接受到 Docker 容器停机的信号,然后就被系统杀死了,所以就这个问题,仔细地研究了一下 Docker 运行以及如何优雅地关闭 Docker 容器中的 Java 进程。
  • IBKR 使用教程系列之共同基金 ETF Replicator 这两天在 IBKR 上买了一点按月分红的 ETF,然后在邮箱中就收到了 IBKR 发过来的建议邮件,说 IB 还提供了一个共同基金的工具可以来寻找类似表现,但是费用更低的其他 ETF,这就是一款 ETF 发掘工具。
  • Google Stitch:AI 驱动的 UI 设计工具让创意快速成为现实 在昨天 2025 年的 Google I/O 大会上 Google 一口气发布了超多的 AI 工具集,其中包括了一款叫做 Stitch 的 AI 工具,它可以快速帮助设计师和开发者将 UI 设计理念变成可实际使用的设计稿,生成设计稿之后可以直接导入到 Figma,或者直接导出成前端代码。所以本文就具体来介绍一下 Stitch。