Maven 介绍

Maven 是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理。自动化构建过程,从清理、编译、测试和生成报告、再到打包和部署。Maven 通过一小段描述信息来管理项目。 Maven 安装 安装之前先把 JDK 环境配置好。 Debian/Ubuntu/Linux Mint 下 sudo apt install maven 如果要手动安装则按照下面步骤,选择一个合适的版本 下载 Maven 最新安装包,地址 http://maven.apache.org/download.cgi 比如 apache-Maven-3.3.9-bi Read more ...

2017-09-20 maven , java , build , management

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

最近文章

  • 简洁高效的开源网络终端 Next Terminal 我个人一直都是使用本地的 SSH Config 来管理我的 SSH 连接,虽然这个方案有自身的优点,就是安全,易配置,我所有的连接都只允许使用 SSH Key 访问,关闭了用户名密码,另外所有的配置都通过 assh 一键配置,我给所有的节点都配置了昵称,所以我只需要输入 ssh alias 就可以连接到任何我想连接的机器。
  • ChatWise 本地多模型支持的 AI 客户端 在我之前的视频里面当时介绍了三款不同的本地 AI 客户端,[[Cherry Studio]],[[Chatbox]],ChatWise,每个客户端都有自身的优缺点,前两款也还是开源的,但是今天要介绍的 ChatWise 是一款更轻量的,更强大的 AI 客户端,包括一些个人觉得非常好用的功能,比如本地联网搜索,MCP 支持,Artifacts 等等使用起来都非常方便。
  • Alist 风波以及在 K3s 中部署 OpenList 在我的待办事项和视频评论下方很多人提到过 Alist,虽然我自己也有搭建一个 Alist,但实际上并没没有真正使用起来,所以待办事项中的「编写一篇文章介绍一下 Alist」 也就一直延误了,我个人似乎并没有太多 Alist 使用的强需求,虽然 Alist 可以用来挂在很多的网盘,但是如果看过我之前的文章,我现在越来越多的避免将大量的数据存储到云端,也不再大量的使用网盘,所以很多人用 Alist 来挂在网盘并接入 VidHub,Plex,Emby 等来观看高清视频的需求其实我本地一台 Ubuntu(NAS) USB 挂在一块大硬盘,局域网 SMB 共享给 Apple TV 就已经解决我了 99% 的使用场景。
  • 利用 SpecStory 记录每一次和 AI 的对话 今天想给大家介绍一款特别有意思的插件叫做 SpecStory,我们现在会在 VS Code, Cursor 编辑器中使用各种类型的代码辅助工具,也会利用 Cursor 等集成的 IDE 来 vibe coding,但是如果我们每一次都重头开始描述我们想要做的事情,或者每一次都新开一个聊天窗口,AI 大模型大概率会前后表现不一致,虽然我们也可以利用 Cursor Rules 等工具来给 AI 提供一些系统级别的提示词,但是 AI 在回复的过程中也可能跑偏。
  • 让 AI 来编写 Git 提交变更信息 很早之前就看到了 GitHub Copilot 可以在 VS Code 中提交 Git 时自动编写提交 Message,但是实际上我一直没有用起来。正好现在对 Git Message 做一个完整的学习,顺便也了解一下当前的 AI Commits 方案。

赞助