每天学习一个命令:使用 jpegoptim 和 optipng 优化压缩图片

今天突然遇到一个问题,使用手机拍摄的照片 5+M 体积巨大,但是网易要求的图片大小需要小于 1M,所以就有了压缩图片的需求。记得很久以前使用过 TinyPNG 这个服务,但是唯一一点不好的就是无法脱离他在线的服务,需要把照片上传到他的网站上才能进行压缩。虽然有 tinypng-cli 这个命令行的工具,但其实也是依赖在线服务的。所以就找了一下,然后发现了 jpegoptim 和 optipng 这两个工具。 jpegoptim 安装 apt-get install jpegoptim 使用 jpegoptim file.jpg 然后使用 Read more ...

2018-06-30 compress , optimize , linux , command , jpeg , png

Java 查漏补缺之位运算符

今天在看 Kafka 源码 LongSerializer 时看到将 Long 型转 byte 数组的实现,感觉需要补习一下位运算符 (bitwise operator),所以有了这篇。 Java 提供的位运算符有: 左移 ( << )、右移 ( >> ) 无符号左移 ( <<<)、无符号右移 ( >>> ) 位与 ( & ) 位或 ( | ) 位非 ( ~ ) 位异或 ( ^ ) 除了位非 ( ~ ) 是一元操作符外,其它的都是二元操作符。 与或非,亦 Read more ...

2018-06-26 java , bit , operator , notes

Python Linux 系统管理与自动化运维读书笔记

小工具 HTTP Server python -m SimpleHTTPServer python -m http.server JSON 格式化 echo '<json string>' | python -m json.tool 验证第三方库安装 python -c "import paramiko" pip 用法 源码安装 python setup.py install pip 子命令 子命令 说明 search Read more ...

2018-06-24 python , linux , notes , deploy

威联通折腾篇七:定时任务

威联通的机器本来就是基于 Linux 定义的,所以想要定时任务就会想到 crontab,在威联通中使用 crontab 必须使用 SSH 登录。 然后基本使用 crontab -l 查看当前 qnap 中已经存在的定时任务。 在大多数桌面版 Linux 中会使用 crontab -e 来编辑 crontab 配置,但是注意不要在威联通中使用这种方法,威联通在重启的时候会覆盖使用这种方式写入的配置。如果想要永久的保存配置,应该使用 vi /etc/config/crontab 然后写入配置,比如 0 4 * * * /share/custom/ Read more ...

2018-06-23 qnap , qnap-tutorial , linux , crontab

douban 小组接口研究

豆瓣 curl -X GET \ 'https://frodo.douban.com/api/v2/group/622198/topics?count=30&sortby=new&os_rom=android&apikey=0dad551ec0f84ed02907ff5c42e8ec70&channel=Google_Market&udid=5e4159565b89f86cccda&_sig=YWtLhd6UEq%2Bh7xDWs%3D&_ts=1529656502' \ -H 'Cach Read more ...

2018-06-22 douban , api , app

修复 NextCloud 消失的托盘图标

NextCloud 算是很重度 的使用起来了,VPS 上安了,NAS 上也有。各个平台使用体验非常不错,不过唯一一点缺憾是有些时候 Ubuntu/Mint 上 NextCloud 随机启动之后托盘消失,导致看不到同步进度,老是让我感觉没有启动。 所以为了修复这个问题,需要完成以下两个步骤。第一个步骤就是在 startup applications 中将 NextCloud 设定延迟 10s 启动。 第二步就是需要卸载 appmenu-qt5 这个 bug 可以参考这个 issue sudo apt remove appmenu-qt5 Read more ...

2018-06-21 nextcloud , dropbox , ubuntu , linux

ZooKeeper zkCli 使用

Java 版本 sh zkCli.sh -server IP:port 查看节点内容 进入 server 连接后使用 ls / 来查看节点包含内容 ls2 / 说明: ls2 是比 ls 更高级的命令,可以额外输出节点的状态信息,最新版本中 ls2 命令已经被废弃,使用 ls -s 代替。 创建新节点 create 创建新的 Znode 节点,path:路径 data:数据 acl:权限,不指定默认为 world:anyone:cdwra create /test "mydata" 该命令其他选项: -s : Read more ...

2018-06-20 zookeeper , zkcli , apache

Zookeeper

Apache [[ZooKeeper]] 是 Apache 软件基金会的一个软件项目,为大型分布式计算提供开源的分布式协调系统,提供的功能包括配置服务、同步服务和命名注册等。Zookeeper 项目的初衷就是为了降低分布式应用从头开发协同服务的负担。 ZooKeeper ZooKeeper is a high-performance coordination service for distributed applications. It exposes common services - such as naming, configurati Read more ...

2018-06-19 zookeeper , apache , hadoop

Fabric 2.x 使用

Fabric 在升级 2.x 之后,几乎就是重写了。很多以前的用法都变了,然后在 1.x 时代,本地和远程都是用一套代码处理,但是 2.x 的时候将 local 处理部分和远程处理部分分别拆分为 fab 和 invoke 了,拆分的理由可以参考这里。 以前 Fabric 是不支持 Python 3 的,升级之后的版本可以完美支持 Python 3,然后下面是 Fabric 2.x 的升级理由: Python 3 compatibility support 2.7 and 3.4+ Thread-safe API reorganized Read more ...

2018-06-19 fabric , python , deploy

《分布式服务架构:原理、设计与实战》读书笔记

总得来说这本书按照微服务的各个内容介绍了一遍,但是只适合入门,并不适合深入了解。看完可以对什么是微服务有一个大致的了解,对于自己实现一个微服务架构还是需要更多的阅读。 第 1 章 原理 微服务架构的目的是为了解决传统单体应用在业务急剧增长时遇到的水平扩展问题。通过拆分服务,将微服务系统中的服务划分明确的职责,做到低耦合,高内聚。 微服务交互模式 读者容错处理 消费者驱动契约模式,服务提供者向所有消费者承诺遵守的约束,一旦消费者把具体期望告诉提供者,提供者无论在什么时间和场景下,都不应该打破契约。 两个概念: 水平扩展,扩展单节 Read more ...


最近文章

  • HomeShare 让本地电脑文件夹成为文件分享服务器 前些天出门拍了很多照片,回来从 SD 卡导出之后就想有一个可以快速一键分享出去的方法,通过微信传,虽然可以通过笔记一次发送超过 9 张图片,但是还是需要将照片上传到微信的笔记里面,虽然我之前也有使用自己的在线图库,但依然避免不了上传等待的过程,并且如果照片比较大时,等待的时间会很长。所以这几天我一直再想能不能有一个方法可以直接将本地的文件夹共享出来,或者直接让别人将图片一次性发送到我本地。
  • Dola 你的私人智能 AI 助手轻松管理日程 我个人一直使用 Google Calendar 作为日程管理,很久以前也购买了一个叫做 Checker Plus 的 Chrome 插件,可以直接在 Chrome 的插件栏查看日程,并且还可以直接通过自然语言来创建日程,以及在日程之前弹窗提醒,实话说这款插件已经能满足我 90% 的日程安排了。
  • K3s 部署 Bitwarden 我之前一直是在一台机器上使用 Docker compose 安装了 Bitwarden,但是这样存在一个隐患,那就是如果这一台机器宕机了,或者发生任何意外,那么我可能有一段时间无法访问我的所有密码仓库,所以为了避免这样的问题,尤其是在我已经稳定运行 K3s 一段时间之后,我就想着将 Bitwarden 迁移到 K3s 上,并且我希望直接使用 Bitwarden 历史的数据,并且也直接使用原来的域名,密码等等,这样就不需要让我所有的设备重新再登录一遍。那么本文就记录一下我在 K3s 上搭建 Bitwarden ,以及将历史数据迁移到 K3s 中的过程。
  • K3s 中给节点添加标签并实现 Pod 调度控制 给 K3s 中的节点添加标签并实现 Pod 调度是一个非常常见的需求,特别是当你希望某些 Pod 只在特定地理位置的节点,比如美国,日本,上运行的时候。
  • 使用 Claw Cloud 免费部署 Gemini 反向代理教程 前两天介绍过永久免费的 Claw Cloud Run,本文将介绍一下如何使用 Claw Cloud Run 来免费部署一个 Gemini API 反向代理服务。