自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (1)
  • 收藏
  • 关注

原创 electron 自动更新之路总结( 下)客户端 autoUpdate

要说 electron 的自动更新有多难,上篇的版本管理服务器只是开胃菜。真正难啃的是这篇。全文分成 electron 14,electron-updater, electron-builder 三部分。electron 14为什么要用 14 版本?因为低于 14 版本用不了 electron-builder 的 NSIS 打包。并且需要把 nodeJs 升级到 12 版本以上。从低版本过来的朋友会发现好多报错,因为 14 做了一篮子改变,改的改删的删, 具体看Electron 14.0.0 |..

2021-12-31 18:25:17 3828

原创 electron 自动更新之路总结(上)版本管理服务器

花了我将近一个星期才最终把 electron 自动更新走通,其中无数卧槽。整体方案是 electron 14 + electron-release-server + electron-updater + electron-builder. 现做个总结,分上下两部分,上部分讲服务器,下部分讲客户端+electron-updater以及如何打包。electron-release-server官网地址GitHub - ArekSredzki/electron-release-server: A full.

2021-12-31 16:41:25 2667 6

原创 UM2 3D 打印机 DIY 实践 ( 7)泰坦(Titan)挤出机参数配置

挤出机的速度决定了出料的速度,对成品的精度至关重要。慢了容易生成小泡泡,快了容易抽丝。不知是在打印还是在织网?主板是前面讲到的 mega2560 + Ramps1.4,刷 Marlin 固件。以下翻译自Titan Assembly - E3D-Online得益于泰坦挤出机使用了一种公开转速比的连续机械齿轮,我们可以设定一个很精确的 steps / mm(每毫米步数)。每毫米步数 = 电机步数 * 细分数 * 齿轮转速比 / (大齿轮直径 * π)标准的电机步数 = 400,但..

2021-11-04 20:34:53 5526

原创 Marlin 固件配置手动退换料

换料的步骤首先把喷头加热,软化喷嘴里残余的线材,然后反转挤出机,把线材抽出来。最后装入新线材,并挤出余留在喷头里的材料。整个过程用一个命令 M600 就能完成。默认情况下 Marlin 固件并没有开启这个功能,但是可以修改配置来设置,前提是你的3D 打印机配置了 LCD。Arduino IDE 打开 Marlin.ino 修改 Configuration.h #define NOZZLE_PARK_FEATURE // 去掉前面的注释 修改 Configuration_adv.h #

2021-06-05 13:17:03 1912 2

原创 做到 3 点能让你的晶格玻璃更好用

因其优秀的固定能力,晶格玻璃受到广大3D 爱好者的的喜爱。又因其昂贵的价格,稍不注意弄坏了非常地心痛。分享我几个月来的使用经验,有泪的教训,但愿不会发生在朋友们身上。晶格玻璃由玻璃底板,喷膜和上面整齐排列的凹点组成。时间久了个别地方的就掉膜了。然后有的朋友可能发现了,没有膜一样也能用,好像有没有都一样的。其实不对,差别可大了。模型冷却的过程中,有膜的地方先脱离,而没有膜的地方用很大的劲也掰不动。这就是膜的作用。为了发挥晶格玻璃最大的效用,以下几件事情千万不能做: 不要涂胶水或固体胶。有不少

2021-06-03 12:55:06 6291 4

原创 win32 打印机任务管理的 node 模块 (3)详解Win32 Spooler API 获取打印机列表及状态

上篇讲了如何写一个 node addon,这篇开始讲述如何调用 Win32 Spooler API 实现打印的完整功能。项目的代码在 https://gitee.com/csling/win32-printer,用 c++ 编写。下面一步一步来讲解。代码结构主要文件 2 个:win32_printer.cc : 定义 node 的接口,接受参数和返回数据结构win32_printer.h:接口的具体实现,调用 Win32 Spooler API 管理打印任务。如何定义 node 接口,传参.

2021-05-21 00:00:29 1858

原创 Linux 添加中文字体终极方法

系统缺少中文字体的情况下,代码使用中文字体便会乱码。检查系统中是否存在字体,查看 /usr/share/fonts 。分两种情况:一、当不存在该目录,运行以下命令安装 fontconfigyum -y install fontconfig完了之后有目录了,而且里面自带了 DejaVuSans 字体。看名字很容易误以为是宋体,其实不是,并没有中文字体在里面。二、有 fonts 目录,但里面没有中文字体。首先在电脑中找到字体文件,windows 在C:\windows\fonts 下面,macO

2021-04-30 22:43:42 1150 2

原创 UM2 3D 打印机 DIY 实践 (6)限位开关

主板是前面讲到的 mega2560 + Ramps1.4,刷 Marlin 固件。限位开关的作用一是保护电机,当喷头运行到边沿时触发停止,避免继续运行烧坏电机;二是喷头自动回到xyz 轴原点,只要一次调平,以后都是自动的。喷头行程最大值可以通过软件设置,也就是软限位;最小值(左下角原点)只能用物理开关,也就是说,至少需要 3 个限位开关,xyz 轴各一个。接线Ramps1.4 最多可接 6 个限位开关,下图从左到右分别是 X min, X max, Y min, Y max, Z mi.

2021-04-21 22:09:18 5697

原创 UM2 3D 打印机 DIY 实践 ( 5)热床篇

热床的作用由于热熔材料的边缘冷却比较快,收缩导致翘边。热床的作用是减缓这个过程,通过加热打印平台保持在 60 摄氏度左右。但也不能完全杜绝翘边,一般还需要其它方法的辅助。关于网上有种说法,PLA 材料不需要热床。笔者实际测试结果并非如此,没有热床和其它防止翘边措施的情况下,翘的非常明显。据说不同厂家出的 PLA 不尽相同,有的翘有的没那么明显。热床的类型1、聚酰亚胺加热片(黄色软的,可以加胶带那种),加热不均匀,容易损坏,需要加 3M 胶带固定到铝板上,需要定做2、加热棒&铝板,

2021-04-14 11:18:07 12153 1

原创 UM2 3D 打印机 DIY 实践 ( 4)LCD12864 篇

主板是前面讲到的 mega2560 + Ramps1.4,刷 Marlin 固件。常用到 LCD 有两款,分别是 RepRapDiscount Full Graphic Smart Controller 和 RepRapDiscount Smart Controller。配置略有不同,一定要分清楚自己用的是哪款,看下图。以下配置和测试均都是在前者的基础上。RepRapDiscount Full Graphic Smart ControllerRepRapDiscount Sm..

2021-04-13 21:15:17 3483

原创 UM2 3D 打印机 DIY 实践 ( 3) Marlin 固件配置篇

某些同学可能会问: https://github.com/Ultimaker/Ultimaker2Marlin 和 https://github.com/MarlinFirmware/Marlin/ 我应该用哪个呢?回答一下:后面那个。前者是给 UM2 官方的主板的。从GitHub下载最新版的固件。截至发文时最新的版本是 2.0.7.2 。相比 1.x 版本,2.0 提高了安全性,当检测不到温度传感器时(毁坏或者掉线)自动停止加热,避免以前一直加热烧毁机器的情况。以下是开机运行的基本配置。硬件是前面讲到

2021-04-12 00:33:24 5214

原创 UM2 3D 打印机 DIY 实践 (2) 电路篇

涉及到的东西非常多,实际上后面还会讲到。主要部件清单: 主板 mega2560 + Ramps1.4 + LCD12864 各一张 42 x38mm x3,xyz 轴各一台 42 x23mm x1,用在挤出机 泰坦远程挤出机 x1 TMC2225 驱动板 x4, 替代a4988、TMC2208,静音效果好,性价比高 s-250-12v 20A开关电源 x1。功率必须足够大,宁可选大一点的 大功率 MOS 管,25A x1 NTC .

2021-04-11 22:22:28 2376

原创 UM2 3D 打印机 DIY 实践 (1)结构篇

这是 DIY 系列的第一篇,先从结构说起。细数 3D 打印机的结构不下 10 种了,各有各的优缺点。从最古老的龙门结构开始,分别列举各自的优缺点。(以下内容来源于互联网,如有侵权请联系本人删除)1.reprap1.0 darwin reprap的打印机看起来都挺复杂,是因为设计者的初衷就是想让机器能够复制自己,因此希望各个组成部分都可以通过3d打印得到(仅仅是理想,实际还差挺远)。因此设计了光杆框架结构的支撑。从实用性上来讲,这种框架结构,首先对装配调结的要求就很高,其次,主要部件包括电路...

2021-04-11 21:20:39 9469

原创 从零开始写 win32 打印机任务管理的 node 模块 (2)node-addon-api

千里之行,从写一个 node addon 开始。因为需要一个执行 Win32 API 的项目开展实验和测试。容易混淆的 3 个概念:c++ addons api, N-API, node-addon-api. 简单地说,c++ addons api 表示最底层 api,直接从它来写会非常复杂。N-API 在这前者之上做了一层抽象,解决了不同版本兼容的问题,但也还是很复杂,基于c 的实现。而 node-addon-api 是N-API 的 C++封装,用起来相对容易很多。所以我们选择了 node-addon-

2021-01-13 16:51:05 546

原创 从零开始写 win32 打印机任务管理的 node 模块 (1)为什么要重复造轮子?

搜索打印文件的 node 模块找到有@thiagoelg/node-printer,node-native-printer 等等。简单的打印任务是可以胜任的,但要做到精准的控制就力不从心了。需解决多打印机连续打印的场景,必须做到: 打印机查询:打印机列表,包含状态、打印任务 任务管理:打印、查询、取消 状态监控:状态改变回调(事件订阅模式) 只考虑在 win 平台上的实现,所以用了 Win32 Spooler + ndoe 实现此前调研过几个模块也分别列出来..

2021-01-10 17:03:08 859

原创 解决 electron 安装难问题

众所周知的原因,有时候连接国外网络时间单位基本用小时来计算。Electron 在业界已经有不低的知名度,然而同样也遭遇安装网络难问题。经过一番周折,总结出 2 个办法。1 使用国内镜像npm--registry https://registry.npm.taobao.org install electron -D这种办法对于安装大多数的 node 模块都适用。随着 Electron 新版本的发布,这种方法已经行不通了。不知道为什么 taobao 镜像没有把新版文件同步过来。2 使...

2020-10-21 02:20:51 615

原创 javascript 数组下标你真的用对了吗?猜猜是什么数据类型

学过 c 或者 Java 的人都惯性地认为,JavaScript 的数组下表应该是整型。难道不是吗?还真不是。JavaScript 就是这么与众不同。有一次项目里写了这样一段代码:// arr 是一个数组for (const i in arr){ if (i === 0){ // do something } else { // something else }}结果 if 里的代码一直没有执行。非常的迷惑。于是试着用 typeof i

2020-10-02 22:08:49 1213

原创 pip 替换为国内源(清华源,阿里源)

默认的官方源速度非常慢,装软件费时费力,有时甚至超时失败。修改为国内源(清华源,阿里源)的方法:临时的方法pip install XXX -i https://pypi.tuna.tsinghua.edu.cn/simple清华源pip install XXX -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com阿里源XXX为要安装的包全局方法毕竟每次都写这段参数非常麻...

2020-08-27 13:06:49 35118 3

原创 kafka 延时消息处理

你一定遇到过这种情况,接收到消息时并不符合马上处理的条件(例如频率限制),但是又不能丢掉,于是先存起来,过一阵子再来处理。系统应该怎么设计呢?可能你会想到数据库,用一个字段来标记执行的状态,或者设置一个等待的时间戳,不管是哪种都需要反复地从数据库存取,还要考虑出异常情况状态的维护。 作为一款优秀的消息处理服务,kafka 具有完善的事务管理,状态管理和灾难恢复功能。只要我们稍加变通一下,kafka 也能作为延迟消息处理的解决方案,而且实现上比用数据库简单得多。 以下代码均在 sp...

2020-08-10 01:45:04 14659 13

原创 树莓派开启 wifi 热点

树莓派小巧的体型当然不是为了固定放在桌子上, 更是为了做成可移动的智能设备, 例如智能小车. 当树莓派不在室内的 wifi 下时, 怎样方便地连接上它呢? 于是想要把树莓派变成 wifi 热点, 就能用我们的手机或者笔记本连接它了.一. 修改 /etc/network/interfaces, 建议把旧的文件备份例如 interfaces-old# 有线网卡, 普通上网方式auto eth0iface eth0 inet dhcp# 无线网络, 用作 wifi 热点auto wlan0.

2020-07-29 01:42:47 6222

原创 Too many open files 问题排查和解决

众所周知 linux 对单个进程能打开的文件数是有限制的, 默认是 1024, 最大 65536. 用命令 ulimit -a 查看.$ ulimit -acore file size(blocks, -c) 0data seg size(kbytes, -d) unlimitedscheduling priority(-e) 0file size(blocks, -f) unlimited...

2020-07-13 04:39:57 922

原创 树莓派安装 Ubuntu Server 系统

很多朋友都是从官方系统入门, 用的时间久了, 旧系统的弊病就暴露出来了. 目前发现的问题有蓝牙音频服务不稳定, 常常掉线; usb 外设数量限制至多 8 个, 包括usb hub 也算一个. 参考https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=12097&p=145278#p145479.于是想到换 Ubuntu 系统, 毕竟后者是全球最多人用的 linux 发行版本. 笔者发文时最新的树莓派 Ubuntu 版本是 20..

2020-06-25 22:46:01 4941

原创 树莓派设置开机执行, 指定用户和用户组

Linux 开机执行有几种方式, 一种是设置成系统服务, 随着系统加载而启动, 另一种是修改 /etc/rc.local 脚本, 在 exit 之前加入需要执行的语句. 后者默认是以 root 用户执行, 非 root 执行可以这么写su - yourname -c 'command'yourname 是用户名, command 是想要执行的命令. 但在实际中, 查看后台进程发现多了...

2020-04-25 20:48:05 1442

转载 树莓派打造无线共享打印机

如果家里/宿舍有一台不带网络功能的打印机,在没有共享的情况下就只能跑去接线——相当麻烦。如果打印机连着一台电脑来共享,然而这台电脑也就必须连接了打印机并开机——也不容易。若使用树莓派来共享,便能轻松很多。参考资料如何正确地用树莓派共享打印机(少数派)阿寻于 2017年9月20日安装CUPS安装过程很简单,直接使用apt就可以了。apt update apt insta...

2020-04-02 23:56:18 2963

原创 nginx 反向代理 proxy_pass DNS 缓存问题

咱们有个项目用 nginx 配置了反向代理,location / { proxy_pass http://d.example.com:8080;}其中 d.example.com 是动态解析的域名. 用了几天之后发现一个问题, 动态域名更改 IP 后, nginx 还是发送到旧的 IP. 从 error 日志看到错误. 查了下官文的文档, 原来是 nginx 启动加载配置文件时...

2020-03-26 22:37:47 2301

原创 树莓派读取条码扫码枪

平时用的最多的扫描枪通常只是一个简单的输入设备(好比键盘,鼠标), 另一头需要连接电脑, 用的 usb 或者串口. 扫描枪负责识别条码, 电脑收到后执行业务的逻辑. 有时候只是简单的数据采集工作, 数据传到服务器云端, 放台电脑在那儿显得浪费而且需要昂贵的维护. 而小巧灵活而且价格低廉的树莓派同学马上举手说: “我可以!” 可能你已经想到了, 用图形界面不是很 e...

2020-03-22 19:38:39 4386 18

原创 树莓派 4b 组建数据中心(4)在公司访问家里的移动硬盘

大多数的时间, 我们都不是在家里. 但希望家里的挂在树莓派上的移动硬盘能随时随地的访问到. 办法有很多, 比如动态域名dDNS(著名如某生壳), ssh 反向隧道, ngrok 内网访问等等(等等是因为只知道这些方法了, 还知道其他办法的请留言告诉我). 动态域名的方法有许多弊端, 例如ISP禁止 80 端口访问, 需修改路由器端口映射, 在很多情况下不具备条件, 没有通用性....

2019-10-28 13:25:49 974

翻译 CentOS7 安装 transmission

有的朋友问到安装 transmission 的那篇文章在哪里, 因为时间很久了, 原文已经找不到了, 现在把译文再发一下.1 首先, 需要在系统上启用EPEL repositoryyum install epel-releaseyum -y update2 开始安装 transmission只需运行一行命令yum install transmission-daemo...

2019-10-26 00:55:33 3802

原创 树莓派4b 安装 server 版系统

跟 desktop 版本的系统不一样的是, server 版不带 GUI 桌面, 直接启动到控制台. 多数用到树莓派的情景都是把它放在一个角落里默默的运行, 所以 server 版系统更适合.安装 server 版跟之前一样, 上官网下载系统, 然后用balenaEtcher 烧录到 sd 卡上. 官网地址https://www.raspberrypi.org/downloads/...

2019-10-16 15:16:38 1326

原创 树莓派 4b 组建数据中心(3)挂载移动硬盘/搭建下载机

挂载移动硬盘1 安装 exFat 格式支持现在很多大磁盘都用到了 exFat 格式, 旧的 fat32 格式单个文件不能大于 4G, 有很多的不方便. 另外 NTFS 没有这个限制, 但默认只能读不能写, 可以安装 fuse-utils ntfs-3g 来支持写操作. 而 exFat 格式在 windows, linux 和 MacOS 都支持比较好.树莓派系统默认不支持 exFat,...

2019-10-05 16:57:12 2114

原创 树莓派 4b 组建数据中心(2)文件共享

既然是数据中心, 文件共享是标配. 各种各样的设备有电脑, 手机和平板,电脑分 windows 和 MacOS,手机/平板也分android 和 iOS. 因为各家厂支持的协议不一样,所以要安装不同的共享服务.samba 还是 afp?Samba 是微软家支持的协议, windows 的文件共享用的就是这种协议, 支持的 APP 也多. 另外一家苹果的 macOS 并不支持, ...

2019-10-02 01:53:48 1081 3

原创 树莓派 4b 组建数据中心(1)通电联网, 解锁 root

最近迷上了物联网智能设备. 先从某宝上入手了一块树莓派.我用的全套装备是4b 2G 版+9 层亚克力盒子+3 块散热片+外壳风扇+64G sd卡.发热是树莓派的短板, 不加风扇空跑也能轻易上到 60 多度. 保险起见加了风扇,通电 5 个小时温度稳定在 44 度上下.查看 CPU 温度方法:/opt/vc/bin/vcgencmd measure_temp或cat /sys/cl...

2019-10-02 01:44:52 613

原创 ffmpeg 合并下载m3u8流媒体

m3u8 不是一个视频文件,而是一个playlist。用 sublime text 打开下载下载下来的 m3u8 文件是这样子的:#EXTM3U#EXT-X-VERSION:3#EXT-X-MEDIA-SEQUENCE:0#EXT-X-ALLOW-CACHE:YES#EXT-X-KEY:METHOD=AES-128,URI="http://hls.videocc.net/a0...

2019-01-23 17:31:59 14686 6

原创 gogs 导致 ssh 钥匙对登录失败的问题

自从装了 gogs 后, 登录服务器出现了一个奇怪的问题. 原来可以用钥匙对登录, 现在要输入密码了. 检查配置文件 /etc/ssh/sshd_config 发现问题:# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2# but this is overridden so instal...

2018-12-22 23:31:06 3788

原创 shell 错误输出重定向的正确方式

正常情况下, 执行命令的错误提示信息会直接打印出来, 但有时候在后台执行的时候, 我们更倾向于让错误信息保存到日志文件. Linux 的输出重定向很容易做到这点. 但有一次发现了一个奇怪的现象# 重定向正确$ ls nosuchfile 2>logfile$ ls nosuchfile 1>logfile 2>&1# 重定向不正确$ ls nosuchfi...

2018-12-09 17:25:29 17481 1

原创 linux read 少读末尾一行的问题

写过一个脚本,把文件 a.txt 里的内容读出来逐行处理,相关的脚本是这样写:cat a.txt | while read -r linedo# 处理逻辑done看似没什么问题,但实际发现读入 a.txt 少读了最后一行。这是什么毛病呢?经过调试,发现文件末尾不加换行,read 就不能读进去。大概是因为 read 认为,没有换行符结束的行,是不完整的。那么是不是加上换行就可以了呢?...

2018-11-13 00:06:02 2830 2

原创 Elasticsearch搜索详解(六):文本检索

文本检索是关系型数据库(如 MySQL)的弱项,而恰恰是 ES 的强项。前一篇文章已经提到了 match、term,除此之外还有multi_match、match_phrace 等,分别的含义是:match        从一个字段中检索关键字,包括模糊检索、精准单词检索以及短语检索。match_phrase        短语检索。跟 match 相似,也是从一个字段中检索文字,但是...

2018-10-15 16:15:10 6727

原创 Elasticsearch搜索详解(五):query 和 filter 的区别

先看一个例子GET /_search{ "query": { "bool": { "must": [ { "match": { "title": "Search" }}, { "match": { "content": "Elasticsearch&qu

2018-10-14 15:48:58 7672 1

原创 Elasticsearch搜索详解(四):高亮命中关键字

通常显示在网页上时,用不同颜色标记出搜索命中的是哪些关键字是很有用的,这就要用到 highlight 参数。举个例子,GET /_search{ "query" : { "multi_match": { "query": "投资" } }, "highlight" : { "fields" : {

2018-10-13 02:21:09 15162 4

原创 Elasticsearch搜索详解(三):返回字段筛选

添加 _source 参数,可让 ES 不返回命中文档,而只返回查询的统计,或者只返回一部分的字段。对于单个文档较大的情景特备适用。不返回文档GET /_search{ "_source": false, "query" : { "term" : { "user" : "kimchy" } }}返回部分字段GET /_search{...

2018-10-12 00:20:20 35184

TSPL指令说明文档.pdf

热敏打印机驱动一般有 2 种, 一种是标签打印机的 TSPL, 另一种是小票打印机的 ESC/POS. TSPL指令说明文档

2020-07-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除