树莓派 通过USB从U盘或移动硬盘启动

起因是多年来Raspberry 2B 已经用坏我3张TF卡了,不能再继续这样了。 制作系统镜像 准备一张容量不少于4G的TF卡,准备好系统镜像并写入TF卡,这里我用的电脑系统是 Debian: # 解压xz格式的系统镜像 我下的是不带UI的lite版本 unxz xxx.img.xz # 写入到TF卡, /dev/sdc 为TF卡的设备路径 sudo dd if=xxx.img of=/dev/sdc bs=1M # 默认开启SSH,无须再接显示器和键盘进行配置 # dd 写入镜像到TF卡后,会创建两个分区分别为boot和rootfs,挂载第一个boot分区 mkdir tmp && sudo mount /dev/sdc1 tmp # 在其中创建ssh文件后,树梅派在启动后发现存在该文件会自动开启SSH服务 sudo … “树莓派 通过USB从U盘或移动硬盘启动”

Read More

记录Git 中几种忽略控制的方式

忽略未追踪的文件 据我所知目前共有3种方式: 1.编写由本仓库记录要忽略内容的.gitignore文件,并将该文件加入版本控制. 这是最常见的方式,创建完一个仓库的第一件事就是把当前仓库存放的项目无关的文件或目录加入到.gitignore文件中,这些需要加入忽略的可以是编译的中间文件 或 构建结果 或 IDE相关的配置文件 或 当前平台的配置文件等,并在仓库在其他设备上拉取后也能应用相同相同的忽略配置. 2.编写本仓库仅本地要忽略内容的$GIT_DIR/info/exclude文件,此配置不会加入到版本控制. 这种方式也较常用,比如编写了一个仅本机可用的配置或某些执行脚本,但出于某些原因又不想更新或暴露在.gitignore文件中被他人所见,故可以添加到仓库配置文件夹的info/exclude文件中. 3.编写本机本用户要所有仓库都忽略的$XDG_CONFIG_HOME/git/ignore文件,此配置同样不会加入到版本控制. 这应该是最少使用的,但很这适合我这种懒人,我比较喜欢取同名的本地构建脚本,这种只需写一次就应用全局的方式让我很中意. 忽略文件的编写规则可以参见 官方指导. 忽略已追踪的文件 据我所知目前有两种方式: 1.文件仍在版本控制中,也可拉取更新,但忽略本地对该文件的修改. 使用命令 git update-index –[no-]assume-unchanged <file> [file…] 添加要被忽略或撤销已被忽略的文件. 该方式适用仓库中存在类似模板配置之类的文件,需要手动修改后才可使用的情况,且并不需要将仅适用本机的改动覆盖掉仓库的模板。 2.移除仓库中已被追踪的文件 使用命令git rm –cached <path> [path …] 即可移除仓库对文件的所有追踪历史,注意这删除的不仅仅是文件还包括对文件的所有改动历史,该操作没有后悔药,执行后便无法还原文件的历史,只能重新添加.

Read More

7-Zip添加Plugin支持SHA-512校验方式

7-Zip 是一款强大的解压缩程序,并自带了多种校验算法,已经用了有十余年. 从2017年 Google 宣布 SHA-1 的碰撞文件后,网上文件的校验码开始从 MD5 / SHA-1 向 SHA-256 走了.但是最近一些软件发布时,带的校验码都已经升级到了SHA-512,这时候数年一更的 7-Zip 就尴尬了,不支持 SHA-384 和 SHA-512 的校验. 今天逛7-Zip社区突然发现有人给 7-Zip 开发了一个插件, 叫做 WinCryptHashers. 安装方式很简单,在 7-Zip 的安装目录新建一个Codecs子文件夹,然后将下载过来的WinCryptHashers.64.dll或WinCryptHashers.32.dll(根据当前系统上安装的 7-Zip的版本类型,在帮助中可以查看32位或64位) 放入此目录,编辑WinCryptHashers.ini其中[Main]项下将想要校验的方法由0改为1即可.然后打开 7-Zip 选中文件右击点 CRC 中的*即可.(如果CRC有添加到右键也可直接点击)

Read More

修改登陆Jenkins后session过期的时间

Jenkins的web默认会话30分钟过期,不过可以修改该值. 因为Jenkins使用Jetty,所以启动war包时,追加参数覆盖原配置即可-DsessionTimeout=<minutes>. 或者也可以配置文件方式,在Jenkins的配置目录下找到web.xml,路径是jenkins/var/WEB-INF/web.xml. 修改该文件,在中添加,值为session的过期分钟数,比如需要6个小时过期就填360. eg: <session-config> <session-timeout>360</session-timeout> </session-config>

Read More

Nginx的HTTP2 PUSH与开启WordPress支持

扯一下 都知道 HTTP 协议都是 Client Request,然后 Server Response 这种一来一回的模式,并且一次请求都要重开一个连接.而 HTTP/2 的第一大特性就是真正意义上的复用一个链接,这减轻了服务端的性能压力;然后 HTTP/2 PUSH 这可以由服务端主动同时推送多个资源,大大加快了一个有大量资源页面的打开速度. 网上有好多关于HTTP/2的介绍,前不久 Nginx 终于宣布在 1.13.9 起加入 HTTP/2 PUSH 的支持,HTTP 服务端的主动推送, 如果是手动编译 Nginx 程序的话,需要添加参数–with-http_v2_modul,这样才可以启用ngx_http_v2_module模块.而我这使用的 Nginx 官方的 Docker Image: nginx:alpine,重新 docker pull nginx:alpine更新最新的即可. 这次加入了 … “Nginx的HTTP2 PUSH与开启WordPress支持”

Read More

深入 etcd — 架构

etcd 是用go语言实现的一个高可用,强一致性的KV存储系统,而由于作为 Kubernetes 的数据存储和同步的重要组件所以最近很火. etcd 作为一个存储系统,可用于配置共享和服务发现,它有以下四个特点: 简单: 基于 HTTP+JSON 的 API 让你用 curl 命令就可以轻松使用 安全: 支持SSL通信认证机制 快速: 支持每实例每秒超一千次的写操作 稳定: 内部使用一致性共识算法 Raft 实现了分布式 etcd 内部架构 etcd 主要分为四个部分: HTTP Server: 用于处理用户发送的API请求以及其它 etcd 节点的同步与心跳信息请求 Store:用于处理 etcd 支持的各类功能的事务. 包括数据索引,节点状态变更,监控与反馈,事件处理与执行等等, … “深入 etcd — 架构”

Read More

GitLab 使用git push 出现RPC failed; HTTP 500 curl 22 The requested URL returned error: 500

提交流程图时,出现了如下奇怪错误: $ git push origin Counting objects: 4, done. Delta compression using up to 24 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 5.59 MiB | 16.73 MiB/s, done. Total 4 (delta 1), … “GitLab 使用git push 出现RPC failed; HTTP 500 curl 22 The requested URL returned error: 500”

Read More

吐槽CSDN强行实名制

上个月发现登陆CSDN需要绑定手机号了,不过下方还有个跳过按钮。 不过直到上周发现登陆已是必须绑定手机号: 点了页面中的《互联网用户账号名称管理规定》发现并不是直接跳转百度百科的词条解释页面,而是进入了CSDN的官方公告 。底下的评论一片骂声,我截个图: 看的我不禁笑出声,居然还让用户编辑发送短信,这公司真是省了一大笔费用,而且这用户体验让人爆棚~ CSDN这种针对程序员的博客类站点强推实名制,搞不懂要图个啥…… 自己的CSDN账号上发了一些博文。懒得转移,想想算了。 看到评论中有的提到CSDN密码泄露事件,倒让我想起了一当时这事。 翻了邮件,发现自己注册CSDN不算晚,2009年8月18日。 在2011年,csdn的600w用户信息外泄,那个sql库200MB+,我下来看了下,我的信息也在里边,账号/密码/邮箱,没错,密码是明文的。 在其他网站截取当时(没错,现在已经找不到了)官方的一段说法:   CSDN网站早期使用过明文密码,使用明文是因为和一个第三方chat程序整合验证带来的,后来的程序员始终未对此进行处理。一直到2009年4月当时的程序员修改了密码保存方式,改成了加密密码。   但部分老的明文密码未被清理,2010年8月底,对帐号数据库全部明文密码进行了清理。 2011年元旦我们升级改造了CSDN帐号管理功能,使用了强加密算法,解决了CSDN帐号的各种安全性问题。   2009年4月之前是明文,2009年4月之后是加密的,但部分明文密码未清理;2010年8月底清理掉了所有明文密码。所以从2010年9月开始全部都是安全的,9月之前的有可能不安全。   泄露出来的CSDN明文帐号数据是2010年9月之前的数据,其中绝大部分是2009年4月之前的数据。因此可以判断出来的泄露时间是在2010年9月之前。泄露原因正在调查中。 请注意这句:一直到2009年4月当时的程序员修改了密码保存方式,改成了加密密码。 我是八月份注册的,那按照CSDN的说法也是加密的,但事实并不是这样,彼时依旧为明文格式存储用户密码。 我继续围观了当时网上的一些评论: 知乎: – CSDN 密码泄漏事件会对 CSDN 和国内互联网造成怎样的后果? – 大家对于 CSDN 等网站的用户密码泄漏事件怎么看? 果壳: – CSDN杯我最喜欢的CSDN密码评选 – CSDN数据库泄露大量用户真实账号密码外泄 – … “吐槽CSDN强行实名制”

Read More

同步和异步 并发和并行

所谓同步(Synchronization),可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令. 所谓异步(Asynchronous),则是执行完函数或方法后,无需等待返回值或消息,只需要向系统委托一个异步过程,然后CPU就可以干别的任务去了,而当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程. 简而言之: 同步就是调用一个函数后必须要函数执行完了才返回. 异步就是被调用函数后,不管函数内的调用完成与否,都会马上返回. 因此,同步的流程往往不适合大并发大流量的程序;而异步的程序,说实话好像都很棒,除了代码比较难写. 并行(parallellism)是指两个或者多个事件在同一时刻发生,如果它的英文释义,是平行发生的. 并发(concurrency)则是指两个或多个事件在同一时段内间隔发生,它可以快速交替任务的处理,但是同一时刻只能有一条指令执行. 并行适用于多线程,而并发往往配合异步.

Read More