puppetter安装错误

yarn install 的时候提示无法下载chromium

ERROR: Failed to download Chromium r722234! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.

那么就设置一个环境变量

export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true

然后再 yarn install 就好了。

设置swap分区

今天在生产环境下进行composer 更新的时候出现如下错误:

PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar

一查原来是swap不够了。Link: https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors

然后按照教程,开始前free -m是这样的

ubuntu@ip-172-31-4-204:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:            990         279         467          20         243         528
Swap:             0           0           0

一顿sudo操作:

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

在看free -m

ubuntu@ip-172-31-4-204:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:            990         279          69          20         641         527
Swap:          1023           0        1023

在运行composer install就没错误了。

中文参考:https://www.cnblogs.com/kerrycode/p/5246383.html

linux下从ISO创建windows启动 USB

先贴个链接

https://thornelabs.net/posts/create-a-bootable-windows-7-or-10-usb-drive-in-linux.html

我按照这个步骤创建了windows 7的启动U盘。遇到过一个问题的就是在mount的而的错误:

$MFTMirr does not match $MFT 

试了几招都修不好,然后更换了U盘就好了。

然后就是在Lenovo Think Center M72e 从U盘启动的时候,要在bios设置为Leagcy启动模式,不要UEFI启动。

把老项目迁移到docker

有个老项目是php 5.2.17,以前用的是vagrrant, 现在想本地开发环境迁移到docker.

寻找合适的image

第一步寻找合适的镜像, pull 下来

我在这里找到一个5.2.17镜像, 先用docker pull命令拉到本地.

然后用docker images 查看,看到一个名叫

deminy/php-5.2

的镜像.

docker run 镜像名 

然后运行该镜像,可以启动一个名为“admiring_dbinsky“.的容器.

运行docker exec -it 容器名或id bash 来进入容器的shell查看.满足要求.

下一步如何基于这个镜像打造一个自己的项目镜像呢?那就需要编写dockefile了

编写dockerfile

FROM deminy/php-5.2

MAINTAINER hongyi.chen

WORKDIR /tmp

EXPOSE 80

编写完毕后, 用build命令构造一个自己的镜像 

docker build -t 项目名称_web .

完成后,就可以看到一个自己的镜像了.如果有错,就返回修改dockerfile,然后重新构建build.

发现个问题,就是每次启动这个镜像,名字都会不同.估计是默认随机名字.不过可以通过docker compose解决

编写docker-compose

为了继续偷懒,我们用docker-compose来编写.

编写完毕后,第一次运行要

docker-compose up –build

这个build参数似乎就是docker的build 命令的

启动后,就可以看到自己名字的的容器了.然后配合一个mysql的容器,这个php5.2的老项目就在本地跑起来了.

把自建的VPN集成到HA里

有时候在面需要访问家里的内网。以前专门搞了二手的树莓派pi 一代来做VPN服务器。选用的是WireGuard作为服务器.

昨天发现HA系统(homeassistant)支持WireGuard插件。因为HA运行在一台独立的树莓派Pi 4, 所以就没必要在保留pi 1了。所以果断安装此插件,把生成的二维码图片交给手机的客户端。然后在路由器上设置端口转发就好了。

旧的 Pi就放到ebay上买掉了。

QR图片就保存在 /ssl/wireguard/{具体配置实例名称} 下

通过补丁(patch)升级到cataline

通过github上的dosdude1的项目(http://dosdude1.com/catalina/) 成功把macpro 3.1升级到了catalina.

升级完毕后,发现几个问题

  1. 显卡只能输出一个显示器。我拆先原装的A卡,换上N卡问题照旧。
  2. 声卡驱动未包含,所以没有声音。
  3. 网页浏览图片时候会有马赛克花屏现象。
  4. 有一些奇怪的进程无响应象。

如果这些问题解决不了,我还是继续留在El Captian吧。

ng-content内容投影

在review同事的修改的时候,发现了他使用ng-content来替换本来的一堆东西。那么这个ng-content 的内容是如何决定的呢? 通过2篇文章大概知道了这个东西的作用。

文章1 https://medium.com/@joshblf/wtf-is-ng-content-8382b2a664e1

文章2 https://segmentfault.com/a/1190000010730597

今天学习到的新概念就是: 内容投影 (content projection). 看来组件复用在angular里实现的真的比较彻底。

把synegy替换为barier

synergy是一款在多台主机之间共享鼠标和键盘的共享软件,开源跨多平台。但是现在已经商业化,而且最近发现有个bug,即当服务器端某些情况下会失去相应。

所以开始寻在替代品,找到了这个Barier (URL: https://github.com/debauchee/barrier )

作为synergy的继承者基本相同。但是我的一台客户机是mac os 10.11 El Captian,它只能使用 Baiere v2.1 。 服务器端我是使用ubuntu, 本地编译即可。

来源: https://github.com/debauchee/barrier/issues/544