树莓派安装fs 1.10

1. 将源码包上传到服务器, 并解压 安装依赖 apt update apt install autoconf \ libtool \ libtool-bin \ libjpeg-dev \ libsqlite3-dev \ libspeex-dev libspeexdsp-dev \ libldns-dev \ libedit-dev \ libtiff-dev \ libavformat-dev libswscale-dev libsndfile-dev \ liblua5.1-0-dev libcurl4-openssl-dev libpcre3-dev libopus-dev libpq-dev 配置 ./bootstrap.sh ./configure make make && make install 参考:https://www.cnblogs.com/MikeZhang/p/RaspberryPiInstallFreeSwitch.html

2020-11-18 13:04:21 · 1 min · Eddie Wang

在iPhone iPad上搭建Linux本地开发环境

我在家里的时候,大部分时间用iPad远程连接到服务端做开发。虽然也是蛮方便的,但是每年都需要买个云服务器,也是一笔花费,最近看到一个App, 可以在手机上直接运行一个Linux环境,试了一下,果然还不错。下面记录一下安装过程。 step1: 下载iSh step2: 安装apk 这个软件下载之后打开,就直接进到shell界面,虽然它是一个基于alpine的环境,但是没有apk, 我们需要手工安装这个包管理工具。 wget -qO- http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static && rmdir sbin 2> /dev/null 温馨提示:在iSh的右下角,有个按钮是粘贴按钮。 step3: apk update 虽然安装了apk, 但是不更新的话,可能很多安装包都没有,所以最好先更新。 在更新之前。最好执行下面的命令,把apk的源换成清华的,这样之后的安装软件会比较快点。 sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories apk update step4: 安装各种开发工具 git zsh tmux vim… apk add git zsh tmux vim step5: 安装oh-my-zsh 这是必不可少的神器 因为从github上克隆oh-my-zsh可能会很慢,所以我用了码云上的一个仓库。 这样速度就会很快了。 git clone https://gitee.com/nuannuande/oh-my-zsh.git ~/.oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc chsh -s $(which zsh) step6: 安装nodejs python golang等。 apk add nodejs python3 下面看到输出了nodejs和python的版本,说明安装成功。另外ish支持换肤的。之前的白色的,下面的是黑色的。...

2020-11-02 20:06:48 · 1 min · Eddie Wang

tar打包小技巧: 替换根目录

环境mac # 这个目录打包之后,内部的顶层目录是dist, 解压之后,有可能覆盖到以前的dist tar -zcvf demo.tar.gz dist/ # 使用这个命令,顶层目录将会被修改成demo-0210 tar -s /^dist/demo-0210/ -zcvf demo.tar.gz dist/

2020-10-27 11:23:48 · 1 min · Eddie Wang

讲价的学问

只要有价格,就可以讲价 ****只要有价格,就可以讲价。**但是也有例外,例如超市,超市的东西明码标价。售货员一般不会管价格。 其次,要和能管价的人谈 **其次,要和能管价的人谈。 有些人不管价格,讲多少都没用。 50%理论 第一次喊价以后,一般只会抬价,而不会降价,所以务必要重视。 例如一束花,店家要价80,实际这束花成本20。如果你第一喊价70,那你只能优惠小于10元。 第一次喊价要低于心理价位,这样才有留够上涨的空间 **50%理论 ,**一般你的第一次出价可以按照卖家要价的50%开始喊价。然后再利用各种计策。提高价格,这里最重要的是摸出买家的底价,高于这个低价,买家才会卖。80元的花,你的第一次出价可以喊40元。 脸皮要厚,脸皮厚,才能要更多优惠

2020-10-05 10:11:18 · 1 min · Eddie Wang

[todo]锋利的linux日志分析命令

预处理 从一个文件中过滤 grep key file ➜ grep ERROR a.log 12:12 ERROR:core bad message 从多个文件中过滤 grep key file1 fil2 多文件搜索,指定多个文件 grep key *.log 使用正则的方式,匹配多个文件 grep -h key *.log 可以使用-h, 让结果中不出现文件名。默认文件名会出现在匹配行的前面。 ➜ grep ERROR a.log b.log a.log:12:12 ERROR:core bad message b.log:13:12 ERROR:core bad message ➜ grep ERROR *.log a.log:12:12 ERROR:core bad message b.log:13:12 ERROR:core bad message 多个关键词过滤 grep -e key1 -e key2 file 使用-e参数,可以制定多个关键词 ➜ grep -e ERROR -e INFO a.log 12:12 ERROR:core bad message 12:12 INFO:parse bad message1 正则过滤 grep -E REG file 下面例子是匹配db:后跟数字部分 ➜ grep -E "db:\d+ " a....

2020-10-04 10:13:10 · 2 min · Eddie Wang

flash_player_admin_guide

虽然flash已经几乎被淘汰了,但是在某些老版本的IE里面,依然有他们顽强的身影。 使用flash 模拟websocket, 有时会遇到下面的问题。虽然flash安全策略文件已经部署,但是客户端依然报错。 [WebSocket] cannot connect to Web Socket Server at … make sure the server is runing and Flash policy file is correct placed. 解决方案: 在**%WINDIR%\System32\Macromed\Flash**下创建一个名为mms.cfg的文件, 如果文件已经存在,则不用创建。 文件内容如下: DisableSockets=0 flash_player_admin_guide.pdf

2020-09-23 16:28:06 · 1 min · Eddie Wang

使用commitlint检查git提交信息是否合规

建议先看下前提知识:https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html 提交信息规范 通用类型的头字段 build 构建 ci 持续继承工具 chore 构建过程或辅助工具的变动 docs 文档(documentation) feat 新功能(feature) fix 修补bug perf 性能优化 refactor 重构(即不是新增功能,也不是修改bug的代码变动) revert style 格式(不影响代码运行的变动) test 增加测试 git commit -m "fix: xxxxxx" git commit -m "feat: xxxxxx" 安装 安装依赖 yarn add -D @commitlint/config-conventional @commitlint/cli husky 修改package.json 在package.json中加入 "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } } 新增配置 文件名:commitlint.config.js module.exports = {extends: ['@commitlint/config-conventional']} 测试 如果你的提交不符合规范,提交将会失败。 ➜ git commit -am "00" warning ../package.json: No license field husky > commit-msg (node v12....

2020-09-23 09:29:01 · 1 min · Eddie Wang

租房的检查清单

在上海工作的人,除了一年一次的春运,就可能是就是一年一次的找房搬家了。 找房彷佛就是一趟西天取经,要经历九九八十一难,也要个各种妖魔鬼怪斗智斗勇。这其中难处,暂且不表。重点介绍你应当如何去按照一定的方案来检查各种设施的功能。 要知道,世事多变,你现下找的房子如果很不错,即使后期突然需要转租,也是比较容易转租的。否则房子转租不出去,自己也白白赔了押金。 重点检查 洗衣机 空调 冰箱 抽油烟机 马桶 上面这些设备,不要斤斤打眼看看外表正不正常,更要尽可能去试试。比如说马桶,即使能无法坐在上面上个厕所,你也要用手按一下,看看冲水是否正常。 交钱之前你是二房东大爷,交完钱签好合同,二房东就是你大爷了。马桶要是不好用,浪费水不说,还影响心情。到时候你找你大爷来修,你大爷就不一定有时间了。你大爷一般包了几百套房子,怎么会管你的小问题呢。 总之呢,你要有自己的一个检查清单项目,要检查哪些,如何检查,务必做到切实可行。 有的时候,房子有些问题,房东和中介故意顾左右而言他,你切不可被他们玩的团团转。一定要按照既定的方案实施检查。 另外就是签合同了,违约金这块要注意的。有的中介和二房东狼狈为奸,除了要不退押金,还要有额外的赔钱项。这点务必要注意。正常来处,如果转租不出去,你有确定要退房,一般只有不退押金,没有其他的赔钱项。这点要在租房合同上写清楚。 凡是没有黑纸白纸写清楚的,你都可以认为是中介和二房东在忽悠。

2020-09-16 20:57:40 · 1 min · Eddie Wang

如何避免被收银员坑

大部分人结账付钱的时候,都不怎么关注。很多次被收银员褥羊毛了也毫不察觉。 场景1: 你去买水果,看到苹果比较新鲜,价格8元/每斤,但是收银员称重计费的时候,是按照12元/每斤计算的。但是当时你在打开支付宝准备付钱,没有注意称上的单价。付费过后,收银员没给你小票。你也没注意,事情就这么过去了。 如果你对收银员按的单价表示怀疑,问了句:这苹果怎么和标价上不一致? 收银员尴尬的笑了笑,说到:不好意思,我按错了。比较老练的可能会说:不好意思,我还以为你拿的是旁边的那种水果呢? 场景2: 你和朋友一起去吃烤鱼,点了一条清江鱼,服务员称重过后,在菜单上用铅笔写了3.5斤。酒足饭饱之后,你去结账。收银员开出小票,上面写的清江鱼 4.2斤,你也没注意。甚至有可能那个铅笔写的斤数已经被酒水的污渍涂抹的不清楚了。如果有表示怀疑,仔细看了看小票,说鱼的重量不对。收银员又尴尬的笑了笑,说到:不好意思,这个可能记得别的桌的鱼的重量的。 场景3: 你买了一包垃圾袋7元,一包衣服撑18,一个垃圾桶6,五金店的老板也没用计算机,抬头望着天空的那朵白云。彷佛再做云计算,然后说:一共38块。 shit! 很多人真的就直接掏钱了。 你看看,收银员说的不好意思多值钱,简直是一字千金啊!但是更多时候,我们都是稀里糊涂的蒙在鼓里。 要想不被辱羊毛,务必要谨记。 商品的标价要谨记于心 不要相信收银员的信口开河的算钱,要自己算 买完东西,一定要问收银员要小票 收银员称重的时候,要注意观察称上显示的价格和摆货区的价格是否一致

2020-09-16 19:16:58 · 1 min · Eddie Wang

IO性能 Node vs PHP vs Java vs Go

System Calls 应用程序工作在用户模式 应用程序不能直接访问硬件资源,应用程序需要调用操作系统提供的接口间接访问。这个叫做系统调用。一般的系统调用都是阻塞的。阻塞的意思就是你在网上买了个苹果,在你收到这个快递之前,你啥也不干,就躺在床上等着。 非阻塞 非阻塞的程序,在系统调用时,会立即返回一个标shi

2020-09-14 16:43:06 · 1 min · Eddie Wang