关于 Archlinux CN KISS2U
这可能是没有什么人关注的东西,再拖下去这篇文章可能就写不出来了 先放个地址祭天 需求来自这里 做个一个web界面来显示 lilac 自动的打包信息 整套系统分成三个部分(我就是给自己挖坑。。。。用ROR全栈写的才更快) 为了可维护性才分成三部分的。。。。如果我有一天不维护了。可以很轻易的重构其中的某个模块 监听 lilac 的构建日志并把日志发给后端 用ruby on rails 做的API后端KISS2U 前端展示页面KISS2UI inotifywait.sh (暂时想不到好名字)监听 lilac 的构建日志并把日志发给后端,和KISS2U 的通信是http到POST请求。使用hmcl认证 监听到build.log 文件发生变化时,会读取文件最后一行,并加一层base64 的壳。然后hmcl签名提交上去 KISS2UKeep It Simple, Stupid To You…没错。基佬的代名词 我觉得我文档写的还可以。。。。解析 lilac 日志。并把信息存到数据库中。对外提供API接口 API...
写在 2018 的毕业季
作为一个没毕业证。永远都毕不了业的人在这个季节满是心酸 同龄的小伙伴都在说毕业的事,我都工作好久了。。。。 我其实是 14 级的学生。嗯,我本来是专科,毕业比正常的要早 由于我们学校特别烂,只能借其他学校的地方。。。借的是全省最好的大学的地方。(嘛,中间不知道有多少py交易) 这中间涉及多少黑幕,我无重得知。反正我是倒数第二届学生。那破学校死翘翘了,233333333. 应改说学院更靠谱(反正我也不知道是什么) 反正就是和好学校的学生一起上了几年学而已。。。。 我的技术都是和全省最好的大学的学生和老师学的。(我要吐槽,他们计算机教的真的差,都在讲过时的技术) 有些时候经常和学校里的人联系,感觉好像还没毕业。(⊙﹏⊙)b 这几年经历有点传奇。。。其实还可以更传奇一点: 时间线嘛,大概是这样(从销售开始的): 2014.09 入学 2014.10 美团外卖的兼职 2014.11 自己赚钱买了电子琴 2015.01 进入美团实习 2015.03 整个学校的外卖市场60%的份额,我说了算 2015.07 去苏州的互联网平台。(地推) 2015.09...
自制气象站
最近来了个需求,要记录测量天气状况,来观测对无人机的影响 一路踩了一堆坑 先来看看树莓官网的气象站 https://projects.raspberrypi.org/en/projects/build-your-own-weather-station/ 这个最大的坑是买模块时不知道树莓官方有这个。。。。我也仔细看了一下这个,简单说明一下 树莓官方的气象站是通过GPIO直接与传感器相连的,使用树莓来计算传感器读数,然后记录到数据库中 树莓有个叫 HAT (hardware attached on top) 板子,这个板子不参与任何运算。唯一的芯片 MCP3008 是数模转换芯片。汗。(⊙﹏⊙)b 用 Linux 本身读传感器有个潜在问题,Linux 是非实时操作系统,有个进程一直100%了就悲催了(误差也可能可以忽略不计) 然后看看我司淘宝给我买的板子: https://item.taobao.com/item.htm?id=21348003785 里面有 STC 的mcu...
在 Arduino 里使用泛型
首先要知道 Arduino 自己的 .ino 的封装是不支持泛型的 然后要知道我 C++ 写的很少 这个问题折磨了我几天,感谢 caoxm-me 大佬的帮助 AVR 的编译器本身是支持的。arduino 本身的封装不支持(屎一样的封装,反正我基本上不会再用arduino 来做东西了) 非常关键的一点:一定要写在两个文件中 add.cpp 12345template <typename T>T add(T a,T b){ return a+b;} add.ino 123456789#include "add.cpp"void setup() {}void loop() { int num1, num2, sum; sum=add(num1,num2);}
约定大于规则:优雅的在debian 上配置nginx 和 php-fpm
本文只给对技术有追求的人看:少配置多用默认值。为什么要写这个,那天要查文档的时候看到文档都是一律编译安装的。。感觉好气愤。你们懂Linux吗? ngnix php-fpm 之间可以通过Unix socket 来通信。所以php-fpm 可以不用监听端口 php-fpm 是 php 进程管理器,属于运行环境,可以直接对外,一般都在前面放nginx 使用版本: debian 9 nginx 1.10.3 php 7.0 1apt install ngnix php-fpm 软件源里的php-fpm 默认不用配置 默认用/run/php/php7.0-fpm.sock 配置文件在 1/etc/php/7.0/fpm/php-fpm.conf 不过可能要手动启动 1sudo systemctl start php7.0-fpm.service 然后nginx 的站点配置文件 123456789101112131415161718192021222324252627sudo sh -c 'cat >...
浅谈rails 项目自动部署
一个项目从开发到上线。该记录点什么。大概在几个月前开始开发一个管理系统,中间为了练手又写了个开源程序 RailsGun 我觉得值得记录的就是从push 之后的自动化流程了 私有项目也在github 1.push 提交代码触发github webhook 2.jenkins跑持续集成,跑测试单元(公司项目用jenkins。练手项目用travis-ci.org。开源项目用org结尾的域名。闭源项目用com结尾的域名) 3.自动升级部署脚本 github 触发没啥说的。github 有jenkins 应用插件jenkinsjenkins 要装github插件。接收github的触发hook 当然检测发布分支 为jenkins 服务器单独添加 deploy keys. 把公钥传给github 以确保可以clone 代码 jenkins 有rvm 插件。ruby 环境就变得很容易了。(刚开始不知道rvm,手动配环境。终于明白rvm 有多复杂了。手动配建议用rbenv) rails test...
关于 ajax 跨域调用 nginx
今天遇上了就解决一下 关于HTTP访问控制(CORS)参考这篇文档 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 大体上分为两种情况。(这在好多文章里都没有。也可能是我理解有误。。) 一种是后端不支持跨域调用 用jsonp来解决。。。。应该是这样。好多文章鱼龙混杂。不太了解。后端代码可能为了一些认证问题吧jsonp(我不了解的事不应该乱说。。。) 一种是浏览器不支持跨域(我遇到的) 浏览器接收到了换返回信息,浏览器把信息拦截了 MDN文档里说的很清楚了 浏览器会检测信息是否同源。非同源要在header添加(貌似是规定) Access-Control-Allow-Origin: × 用 nginx 代理转发添加header 来解决这个问题 upstream localhost { server 127.0.0.1:3000; } server{ server_name localhost; ...
一些易混淆的地方
匿名函数、lambda表达式、闭包(closure)都是差不多的东西有一点微小的区别,可以当做没区别在不同编程语言中叫法不一样闭包 == lambda表达式 + 一些变量 对象和实例对象 == 实例 , 都一样叫法不同 回调函数和 中断都是一样的,中断是硬件提供的(依赖于有几个中断器),回调函数是软件提供的(无限个) GIL 问题 (Global Interpreter Lock)如:pythonpython的多线程本质上是伪多线程,无法发挥多核cpu的效率(多线程只占单核)对计算要求高的尽量用多进程发挥多核cpu性能建议用golang来写,当然用c++来写也可以 java 接口和类...
iptables 路由器
经常忘记这个记一下 12345678iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE// -s 来源地址// -o 输出网口// -j 转换地址iptables -t nat -L //查看nat 表
rails 部署
就是记几个容易忘的地方 12345678910111213141516171819202122232425262728293031323334353637vim config/secrets.yml## 产品环境秘钥vim config/environments/production.rb## 修改配置config.assets.compile = false## 改成config.assets.compile = true## 运行RAILS_ENV=production bin/rails assets:precompile## 产品环境启动rails s -e productionapache代理配置## 启用模块LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_http_module modules/mod_proxy_http.so## 虚拟主机配置<VirtualHost *:80> ServerAdmin admin@admin.com ServerName...