在Arm服务器上部署OpenIM

克隆代码库

# v2.0.6是版本号
git clone https://github.com/OpenIMSDK/Open-IM-Server.git -b v2.0.6 --recursive 

并且删除makefile里的arch设置

cd Open-IM-Server
sed -i 's/ GOARCH=amd64//' cmd/*/Makefile
sed -i 's/ GOARCH=amd64//' cmd/rpc/*/Makefile

编译

cd script
chmod +x *
./build_all_service.sh

安装etcd

wget https://github.com/etcd-io/etcd/releases/download/v3.5.3/etcd-v3.5.3-linux-arm64.tar.gz
tar xzvf etcd-v3.5.3-linux-arm64.tar.gz
mv etcd-v3.5.3-linux-arm64/etcd /usr/bin/
mv etcd-v3.5.3-linux-arm64/etcdctl /usr/bin/
chmod +x /usr/bin/etcd /usr/bin/etcdctl

安装kafka

wget https://dlcdn.apache.org/kafka/3.1.0/kafka_2.13-3.1.0.tgz
tar xzvf kafka_2.13-3.1.0.tgz

运行

./start_all.sh

检查服务

./check_all.sh

又一个配电脑的故事

很久没有理这个博客了,已经没有写技术相关的热情,仅供“牢骚”。
今天让我想起了另一个配电脑的故事,上一个故事是给亲戚配电脑,这次的故事是给一个不熟的人。
一年前有个不是很熟的人让我帮他配电脑,给6000的预算,然后我大概给他说了一下预算分配,
CPU 1300元,主板700元,显卡2500元,机箱200元,散热器200元,内存500元,硬盘500元,加起来5900元,
因为本来价格都在波动,所以不可能把每个部件的价格算得那么精细。
他觉得完全没问题,还说相信我balabalabala,接着支付宝转给我6000,说多出的100是辛苦费。
实际上,价格怎么可能刚好5900那么多,总价接近6200多,我各种凑优惠,还用上了自己的会员优惠券,实际总共花费6086元,考虑到有100左右的返利,算是5986元吧,
好吧,“赚了”14元辛苦费,就当帮朋友个忙。
但是麻烦才刚刚开始,后来他觉得显卡不合适(因为他朋友以为显卡是2500的预算,就给他推荐了另一个2500多的显卡),就让我退了,说要换另一个,他那个朋友在网上帮他重新买了,
要退的那个显卡因为优惠,我当时实际花费2270元,省下来的200多元钱给他加大了内存,然后退款成功以后我就直接转给他2270,他就问我,不是显卡2500么,你怎么才退我2270,我听他那语气,我心里一凉,感觉我当了冤大头,我给他解释:当初给他说的2500是预算,实际显卡没有花到2500元,然后省下来的钱我帮你升级了其它配置,他就回了个“哦”,我也不知道他这个“哦”是什么意思。于是我截图给他看,结果不截图不要紧,截了图更说不清了,订单里显示的是原价,减的金额是支付环节减的(信用卡满减和支付券),越解释越复杂,他也没有听我解释的意思,反正感觉起来好像是抓到贼,贼在辩解一样,我就是那个“贼”,这下我是真的跳进黄河洗不清了。解释了半天,那边不理解,他总是觉订单显示的的那个2370是优惠后的价格,所以我应该退他2370,我都把退款记录给他看了,确实是退的2270,最后我懒得解释,直接加100按2370退给他了,于是我的妥协成为了“承认我是贼”。
我以为我赚了14元辛苦费,结果最终倒贴100进去,还做了回“贼”。
每当想起那天为了给他省钱,准时守到电脑前面,抢优惠,我就觉得自己很可笑,当初辛苦给一个不熟的人抢的优惠,最后成了我自己的坑。
如果我成心要坑他,我有很多种把他坑了他还觉得很划算的办法,进而让我想起以前朋友的一句话:真正的奸商,是把你坑了,你还觉得自己占了便宜。
以前看电视剧、电影,一些“好人”因为一些冤枉就突然“黑化”,以前无法理解那种心境。
做“贼”,如果没被抓,那就“赚”了,如果被抓,那也是理所当然,也不亏;
做个“好人”,如果别人懂你,那是刚刚好,如果别人冤枉你,你就做了好事还被人恶心。
于是:做坏人永远不亏,做好人可能受罪。这也成了奸商、渣*的格言。

感觉我写了一篇毒鸡汤,那件事情以后我并没有因此黑化,只是我开始拒绝帮助那些不相信我的人。
如果你相信我,请你相信我,如果你不相信我,请不要告诉我,你相信我。

这只是我的视角,如果是那个人的视角,他觉得我补这100是应该的,也是对的,错的在我,实在不行,错也错在我解释不清楚上。

解决精简版系统Arduino驱动安装问题

问题

一部分人反馈说他们无法正常安装Arduino的驱动,安装完Arduino驱动以后,设备管理器里Arduino设备出现感叹号,无法正常启用。设备状态中出现错误信息:

Windows 无法加载这个硬件的设备驱动程序。驱动程序可能已损坏或不见了。 (代码 39)

找不到对象名。

或者:

Windows 无法验证此设备所需的驱动程序的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。 (代码 52)

解决

出现这个问题的主要原因是:Arduino的驱动程序依赖于Windows系统自带的USB串口驱动,精简版系统精简或者替换了USB串口驱动,导致Arduino的驱动无法加载这个依赖而工作不正常。为此我封装了一个Arduino的驱动程序,并且自带修复Windows自带串口驱动程序的功能,涵盖Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10等系统,包括各个SP版本。
下载地址:https://pan.baidu.com/s/1gfaPp4n
使用方法:下载以后,直接运行压缩包中的程序即可,修复系统自带驱动以及安装Arduino驱动过程中,可能会有安全软件提示修改系统文件,请选择允许。

cnpm的坑导致部分模块工作不正常

问题

在使用cnpm install部署项目环境以后,发现browserify工作不正常,产生如下错误:

> browserify src/ui/index.js -o dist/index.js -t [babelify browserify minifyify]

Error: Cannot find module '../../../../_is-buffer@1.1.5@is-buffer/index.js' from                     'E:\Data\Projects\Git\Project\node_modules\_core-util-is@1.0.2@core-util-is\lib'
    at E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:55:21
    at load (E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:69:43)
    at onex (E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:92:31)
    at E:\Data\Projects\Git\Project\node_modules\_resolve@1.1.7@resolve\lib\async.js:22:47
    at FSReqWrap.oncomplete (fs.js:123:15)

- 阅读剩余部分 -

编译AppInventor源码过程

AppInventor 简介

Google App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成您的Android程式。

AppInventor Github 地址:https://github.com/mit-cml/appinventor-sources
参考资料:https://docs.google.com/document/pub?id=1Xc9yt02x3BRoq5m1PJHBr81OOv69rEBy8LVG_84j9jc

编译流程

  1. 克隆git源码库:

     https://github.com/mit-cml/appinventor-sources.git
    
  2. 更新子模块:

     
     cd appinventor-sources
     git submodule update --init
    
  3. 使用ant进行build:

     cd appinventor
     ant