目录 /usr/local vs /opt 的区别及 JDK 安装

今天看 JDK 的路径突然发现我在两台机子上,一台装在了 /usr/local/ 目录下,而我自己的 Mint 装在了 /opt/ 目录下。感觉对 Linux 目录结构还需要增加了解,就Google了一下。 /usr/local 和 /opt 目录设计为存放非系统级命令,而 /usr/local 目录一般用来防止管理员通过本地编译安装的程序,比如通过 ./configure; make; make install 等命令安装的程序,该目录的目的就是为了使用户产生的命令不和系统命令产生冲突。 /opt 目录一般用来安装非捆绑的软件程序,每个应用都有其自 Read more ...

2017-05-13 Linux , FHS , Java

SQLAlchemy session 使用问题

在更改 SQLAlchemy Session 从每次请求都创建到共享同一个 Session 之后遇到了如下问题: StatementError: (sqlalchemy.exc.InvalidRequestError) Can’t reconnect until invalid transaction is rolled back [SQL: ] 或者是 raised unexpected: OperationalError(“(_mysql_exceptions.OperationalError) (2006, ‘MySQL ser Read more ...

2017-05-12 python , sqlalchemy , mysql , orm , sql , session , flask

保持 SSH 连接

记录一些 SSH 相关的内容,经常使用。 SSH 是 Secure Shell 的缩写,是一个应用层的加密网络协议,它不只可以用于远程登录,远程命令执行,还可用于数据传输。 当然它由 ssh Client 和 ssh Server 端组成,有很多实现,Ubuntu 上就默认安装的 OpenSSH, Client 端叫做 ssh, Server 端叫做 sshd. OpenSSH 只用来做远程登录和命令执行。 免密登录 查看本地 ~/.ssh/ 目录是否有 id_rsa.pub,如果没有,在本地创建公钥 ssh-keygen -t rsa 一 Read more ...

2017-05-07 ssh , linux , git , github , gitlab

MySQL 命令记录

MySQL 命令行操作相关内容,防止遗忘。MySQL 常用命令记录,总结。 安装 Under Ubuntu sudo apt update sudo apt-get install mysql-server sudo mysql_secure_installation 如果安装过程中没有弹出设置密码的对话,那么可以在安装完成后执行: sudo mysql_secure_installation 来设置密码,及一些安全的设置。之后就可以用 sudo mysql -u root -p 来登录。 启动停止 MySQL 服务 可以使用如下 Read more ...

2017-05-04 mysql , database , linux

Dockerfile 基础镜像

首先随便看看 Python 的镜像 就能看到非常多的版本,这些版本怎么选择呢。 首先解释几个常见的名词,其实都是 Linux 的发行版本 Stretch Debian 9 Jessie , 指的是 Debian 8 Wheezy Debian 7 Alpine 轻型 Linux 发行版 其次基于不同版本系统制作的镜像自身大小都有区别,比较精简的 python:2.7-slim 可能也要比 python:2.7-alpine 来的大。 Read more ...

2017-05-02 linux , docker , dockerfile , docker-image

借助 scrapy-redis 实现 scrapy 分布式爬虫

最原始的 Scrapy 项目是只能将爬虫部署到单机上,如果要实现分布式爬虫就需要手动去维护一个待抓取的列表,那么 scrapy-redis 项目就是这样一个存在。 特性: 分布式抓取,可以部署多个 spider 实例,共享同一个 redis 队列 分布式后处理,抓取的内容会放到一个队列中,这样就意味可以开启足够多的实例来处理结果 提供了即插即用的组件,包括定时,去重,等等 Scrapy 的局限 Scrapy 已经能够满足大部分爬虫的需要,但是有一些场景 Scrapy 并不适用。 对于页面数量比较少的站点,并不需要 Scrap Read more ...


Linux 安装 VMware workstation 12

VMware Workstation 12 虚拟机,适用于 RHEL/CentOS 7, Fedora 20-24, Debian 7-9, Ubuntu 16.04-14.14 and Linux Mint 17-18. Prerequisites 确保系统 64 位 VMware 12 不支持 32 位 CPU 确保有 root 权限 安装 更新 apt-get update && apt-get upgrade # On Debian Systems 下载 wget 'http://www.vmwa Read more ...


在 Python 中使用 redis 作为任务队列 Python RQ 使用

在学习 Flask 时接触 flask-rq2,然后知道了 python-rq 因为之前使用过 Celery ,所以对 python-rq 倒也没有多大的困惑。因为 python-rq 只依赖于 redis,相较于 Celery 轻量很多,如果在 Flask 中不需要非常繁重的后台任务队列(比如只有发送注册邮件任务)可以考虑使用 python-rq,毕竟有 flask-rq2 为 Flask 度身定做,结合 Flask 要比 Celery 容易很多。 RQ (Redis Queue) is a simple Python library for Read more ...

2017-04-25 python , redis , queue , python-rq , flask-rq2

每天学习一个命令:tcpdump 命令行下抓包

tcpdump 是一个运行在命令行下的抓包工具,如果想知道网络中有什么在流通,那么 tcpdump 就是一个很好的工具。它允许用户拦截和显示发送或收到过程中网络连接到该计算机的 TCP/IP 和其他数据包。tcpdump 适用于大多数的类 Unix 系统操作系统(如 Linux,BSD 等)。类 Unix 系统的 tcpdump 需要使用 libpcap 这个捕捉数据的库就像 Windows 下的 WinPcap。 tcpdump 可以识别的协议有: ARP RARP ICMP TCP UDP IP IPv6 App Read more ...

2017-04-23 tcpdump , linux , network

Scrapy 学习笔记及简单使用

Scrapy 是纯 Python 实现的爬虫框架(scraping and crawling framework),可以非常轻松地提取网页结构信息。最初设计时 Scrapy 仅仅作为网页抓取工具,但因其功能强大,配置简单,逐渐的被扩大使用范围,也经常被用于以下方面: 数据挖掘 Data Mining 信息处理 information processing 历史信息存储 historical archival 检测及自动化测试 monitoring and automated testing 因为网上的教程已经非常详细了,这里就重点 Read more ...

2017-04-23 scrapy , python , crawler , spider , 学习笔记

最近文章

  • 我购买了 Sony WH-1000XM6 我的第一代 [[Sony WH-1000XM]] 终于在陪伴了我将近七年之后光荣退役了——准确地说,是左耳彻底不出声了。耳罩虽然还算完整,充电也正常,就是左边悄无声息地沉默了。单边失声的降噪耳机拿来当装饰品实在是太可惜,就这样,我的 XM1 结束了它漫长的使命。
  • 花了一个多小时认真听李录在哥大的演讲,对价值投资新的理解 昨天花了一个多小时,认真把李录在 2006 年哥伦比亚大学商学院的演讲从头听到尾。说实话,最开始点开这个视频的时候,我以为只是一节普通的投资课,听完之后发现远不止于此——李录几乎是把自己二十多年的思考框架,通过两个亲身经历的真实案例,完整地摊开在你面前。那种感觉不像是在听一堂课,更像是在听一个老朋友坦诚地聊他是怎么看待这个世界、怎么做决策的。
  • screen.garden:让 Obsidian 拥有 Google Docs 般的实时协作体验 之前我介绍过 Fast Note Sync,这是一款开源的 Obsidian 笔记同步方案,可以实现多设备之间的笔记同步和实时协作。Fast Note Sync 的优势在于完全开源、数据自主可控,但它有一个门槛——你需要自己搭建和维护服务器。对于有技术背景并且享受折腾的朋友来说这不是问题,但如果你不想操心服务器的事情,或者团队里有非技术背景的成员,那么一个开箱即用的托管服务可能是更好的选择。这就是我今天要介绍的 screen.garden,一个为 Obsidian 设计的付费实时协作服务。
  • Clawdbot 深度调研:打造完全属于自己的全平台 AI 助手 最近在折腾各种 AI 工具的时候,发现了一个有意思的现象:市面上大部分 AI 助手要么被牢牢绑定在某个特定平台上(比如只能在 Discord 里用的机器人),要么就是完全依赖某家公司的 SaaS 服务,你的对话数据都在别人的服务器上。作为一个对隐私比较在意的人,我一直在想,能不能有一个完全由自己掌控、可以在所有常用聊天软件里使用的 AI 助手呢?直到我在 GitHub 上发现了 [[Clawdbot]] 这个项目,才发现原来真的有人在认真解决这个问题。
  • 推荐我使用的 Agent Skills 随着 AI 编程助手的快速发展,[[Claude Code]]、[[Codex]]、[[Gemini CLI]] 等工具已经成为开发者日常工作中不可或缺的伙伴。然而,这些工具的默认功能往往只是冰山一角。通过安装和配置 Agent Skills,我们可以大幅扩展这些 AI 助手的能力,让它们更加智能、更加专业。