使用 supervisor 管理进程

Supervisor (http://supervisord.org) 是一个进程管理工具,可以很方便的用来启动、重启、关闭,监控进程。更多的介绍可以参考官网。Supervisor 设计的目的只要是为了: 提高便捷性;通常为每一个进程编写 rc.d 脚本是不方便的,rc.d 脚本是管理,初始化,自启动进程的工具,但是编写这些脚本非常困难,并且也难以维护。另外,rc.d 脚本在进程崩溃之后也不会自动重启,而且很多应用在崩溃之后也不会自动重启,这就可能导致程序在崩溃后进程丢失。Supervisord 将管理的程序作为子进程启动,并且可以配置在崩溃后自 Read more ...


MySQL 数据类型

了解并熟悉 MySQL 中的数据类型,对建表和数据库优化都非常重要。 MySQL 实现了 SQL 定义的类型,也相应的增加了 tiny, small, big 的类型。 MySQL 的数据类型主要分成三个部分: Numeric Type 数值型 Date and Time Type 日期和时间 String Type 字符型 更多的内容可以在官网 查到。 整型 MySQL 数据类型 大小 范围(有符号) TINYINT(m) Read more ...

2017-07-07 linux , mysql , sql

Java 查漏补缺之枚举

当创建 enum 时,编译器会自动创建一个继承自 java.lang.Enum 的类。 ordinal 方法 ordinal() 方法会返回一个 int 值,是每个 enum 实例声明时的次序,从 0 开始。枚举可以使用 == 来比较,编译器会自动提供 equals() 和 hashCode() 方法。 Enum 类实现了 Comparable 接口,具有 compareTo() 方法,同时也实现了 Serializable 接口。 values 方法 values() 方法是由编译器添加的 static 方法。 继承 enum 都继承自 java Read more ...

2017-07-02 java , enum , linux

Java 查漏补缺之并发编程 ExecutorService

Java 实现多线程,继承 Thread 类,另一种就是实现 Runnable 接口。实际 Thread 类源码也是实现了 Runnable,使用继承 Thread 方式创建多线程,最大的局限就是不能多继承,随意推荐实现 Runnable 。 Executor Java 5 开始, Java 并发 API 提供了一套执行器框架 Executor Framework,围绕 Executor 接口和它的子接口 ExecutorService ,以及实现这两个接口的 ThreadPoolExecutor 类展开。这套机制将任务创建和执行分离。执行器通过创建所 Read more ...


Java 查漏补缺之 defensive copy

什么是保护性拷贝(defensive copy,或者防御性拷贝)呢? 说到这个问题首先要知道 Java 中的不可变对象(Immutable Object),既然有不可变对象就一定有可变对象(Mutable Object),顾名思义可变对象就是在对象构造完成之后内部状态会改变的对象,比如 StringBuilder 和 Date 都是可变对象,而 String 和 Integer 是不可变对象。 一个类可能有两种方式包含可变的 field 类状态只能被自身改变,也就是说类包含一个可变对象,而该字段只能由类自己改变,比如说类 Person 有一个字 Read more ...


知乎上被删除的良心回答之油猴脚本

今天偶然间看到一个知乎问题:“最良心的软件可以良心到什么程度?”,当时在 Google+ 上点进去粗略看了一样,看到油猴脚本也就坦然了,而添加到稍后阅读,在晚上回来之后准备细看时却惊讶于知乎屏蔽的速度,在尝试使用 Google,bing 和 web archive ,baidu 的历史记录之后终于找回了一些渣滓。 我在很早就已经推荐过 Tampermonkey, 也借此推荐过 我用过的 Userscript 。 而 Tampermonkey 我也用了很多年也曾总结过 Tampermonkey 同步的功能。不过多少年过去了,很多脚本失效的失效,我自己之前 Read more ...

2017-06-09 chrome , userscript , tampermonkey

每天学习一个命令:traceroute 查看路由信息

traceroute(跟踪路由)是路由跟踪程序,用于确定 IP 数据报访问目标所经过的路径。traceroute 命令用 IP 存活时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。 通过 traceroute 命令可以知道数据包从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地 (destination) 走的路径可能会不一样,但大部分时候所走的路由是相同的。 Linux 系统中是 traceroute, 在 Windows 中为 tracert。t Read more ...

2017-06-09 traceroute , network , linux , command

Ubuntu/Debian 安装 nginx

Nginx 是非常流行的 HTTP/HTTPS 服务器软件,它也可以作为反向代理服务器,邮件代理服务器,可以用于负载均衡,缓存等等。 基本的 Nginx 由 master 进程和 worker 进程组成, master 读取配置文件,并维护 worker 进程,而 worker 会对请求进行处理。 Nginx 有两个主要的分支可供安装,stable 和 mainline 。这两个分支的主要区别可以从下图看出: stable 分支并不意味着比 mainline 更加稳定可靠,事实上 mainline 更加稳定,因为 Nginx 开发人员会把所有的 Read more ...

2017-06-06 linux , nginx , ubuntu , debian , web

MySQL 中 utf8 和 utf8mb4 区别

今天在插入 MySQL 时遇到如下错误 Incorrect string value: ‘\xF0\x9F\x98\x81…’ for column ‘data’ at row 1 查证之后发现是因为插入的时候字符串中有 emoji,而 emoji 是 unicode 编码,MySQL 当时在建表时选择了 utf8 编码,导致了上述错误。mysql 支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了,因此引出了 utf8mb4 编码。MySQL 在 5.5.3 之后增加了这个 utf8mb4 的编码,mb4 就 Read more ...

2017-06-02 mysql , encoding , utf8 , unicode

Celery 最佳实践

如果你第一次听说 Celery,可以去看下之前的 Celery 介绍 了解下 Celery 的基本功能,然后再来看这篇文章。 尽量不要使用数据库作为 AMQP Broker 随着 worker 的不断增多可能给数据库 IO 和连接造成很大压力。更具体来说不要把 Celery 的 task 数据和应用数据放到同一个数据库中。 Docker 上很多 相关的镜像。 使用多个队列 对于不同的 task ,尽量使用不同的队列来处理。 @app.task() def my_taskA(a, b, c): print("doing something her Read more ...

2017-05-21 celery , python , web , database , redis , queue

最近文章

  • 2025 苹果开发者帐号注册记录 最近开发了一款 Aki 日语词典想要上架 iOS,但是发现 Apple 开发者帐号注册却是比较麻烦,主要是我平时使用的 Apple ID 不在国区,手机一直使用的是美区帐号,还有一个日区的帐号用来下载日区的应用,所以导致 Apple ID 和绑定的手机号都非常混乱,我本来想注册美区的帐号,因为本来就是手机登录的帐号,但是过不去认证,所以想要去注册国区的帐号,可是我的 macOS 和手机没有一个有国区帐号的登录,利用网页版本注册的时候也发生了不明错误(We are unable to process your request. An unknown error occurred.),根本没有提供任何有效的信息,最后尝试用日区的 Apple 帐号注册,可是下载了 Developer 应用,登录日区帐号,Enroll 按钮显示灰色!这种错误也是第一次见到,不过好在这一次,我可以通过网页来联络客服,等了两天之后从客服那边获得了一点有效信息。
  • 国产大语言模型 DeepSeek 初识 之前的文章和视频里面介绍了很多国外公司发布的 AI 模型,从 OpenAI 发布的 GPT-3, GPT-3.5 Turbo,GPT-4 Turbo,GPT-o1,o1-mini,4o 等,到 Anthropic 发布的 Claude 3 Opus, Claude 3.5 Sonnet ,Claude 3.5 Haiku,再到 Google 发布的 Gemini 1.5 Pro,Gemini 2.0 Flash 等,以及在这些模型基础上开发出来的很多产品应用,ChatGPT,Claude,Gemini 等。但是最近有有一家国内创业公司接连发布了 DeepSeek V3 模型,DeepSeek R1 模型,这是一个可以媲美 OpenAI 和 Google 等公司最新 AI 模型的开源模型。
  • Google 发布的以图生图工具 Whisk 之前介绍过 Google 发布的在线笔记 NotebookLM ,也介绍过 Google 发布的知识学习 Learn About ,Google 虽然在 AI 上落后了 OpenAI 一节,但是内部的各个团队一直都在探索 AI 的不同能力。今天要介绍的就是 Google 刚推出的图片生成工具 Whisk,Whisk 和其他图片生成模型 [[DALL E3]]、 [[Stable Diffusion]] 、[[Midjourney]] 有所不同,抛弃了通过文字生成图片的模式,而是通过图片和图片组合,合成来生成新的图片。
  • Trae 字节推出的一款本地 AI 代码编辑器 前两天看到字节也发布了一款基于 Claude Sonnet 3.5 的 IDE,起名叫做 Trae(这个名字是 The Real AI Engineer 的缩写),对标我之前介绍过的 Cursor,Windsurf 等等代码编辑器,都是以 AI 为切入点,辅助进行编码,不仅可以进行自动代码生成补全,还可以理解上下文,通过超长的 Context 提供多文件生成修改的能力。
  • Tianji 开源的网站流量分析,服务监控系统 Tianji 是一个 All in One 的网站分析(Website analytics),服务监控(Uptime Monitor),业务告警(Server Status)的系统。