自制旁路网关(一) ——使用clash做代理
由于武汉新冠肺炎(COVID-19)的关系,我被困在老家,自从我买了 ac68u 之后基本上就再也没折腾过网。由于长期在家办公,需要好的网络,还好手里有树莓派,还有 nas。只能使用传统技能(时代变化还真实快,一觉醒来工具链全变了) 这次优化网路的经历我准备写一个系列(预计三篇文章:代理,dns,分流增强)。我也不知道能不能写完,也说不定后面两篇文章会咕掉 实际上并没有咕掉,而且还多写了一篇。本系列文章: 这应该算是第零篇,建议先看这篇 细说 Debian 的网络管理 network/interfaces 自制旁路网关(一) ——使用clash做代理 (本篇) 自制旁路网关(一点一) ——增加clash订阅功能 自制旁路网关(二) ——用unbound和smartdns来优化dns服务 自制旁路网关(三) ——nftables 来做透明代理 不可否认,我省略了一些过于基础的细节,但本文的确是从我的笔记上摘录的 本系列用到的代码都在 Raspbian GNU/Linux 10 (buster) 上验证过,请放心食用 代理软件使用 clash ,这个软件的特色就...
使用 OpenCV 来做单元测试
最近一直都在搞图像传输,webrtc 可以检测网络状况来调整码率。为了探究图像传输中损失了多少数据,用 opencv 来计算输入视频流和输出视频流的相似性 不过本人作为一个不懂算法,不懂C++, 不懂openCV 的菜鸡。(我还真把这个东西给做出来了 如何检测视频视频的相似性先来科普两个概念: 峰值信噪比 PSNR (Peak signal-to-noise ratio)https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio 结构相似性 SSIM (Structural similarity)https://en.wikipedia.org/wiki/Structural_similarity 这个处理本身是把视频拆成图像帧,然回分成 RGB 分辨对比 然回把这个代码直接拿过来用就行(好敷衍。。。 代码来源:https://docs.opencv.org/master/d5/dc4/tutorial_video_input_psnr_ssim.html 1234567891011121314151617181920...
MacBook Pro 初体验感想
刚买了一台 2015 款的 macbook pro 。嗯,就是 MF839 的那款。正好来谈谈使用感想 入手前准备最有效的资料是苹果官网的 macbook pro 机型 我当然是要买二手的机器了,干嘛要买新的( 先选择买哪一款,然后去某宝的二手苹果商家卖家那里查价钱,多查几家,基本可以得出要买机型的市场价格。没问题的机器价格波动基本上在 5% 不着急的话,去咸鱼上慢慢找。。。不够我实际观测,咸鱼上的二手苹果水极深 要注意几点: 价格波动基本上在 5% 以下,价钱过低都是有问题的 Macbook 整体造假成本很高,基本上没有假的。。。最多是防外观,基本上一眼就能看出 15 款以前的,硬盘可以更换,要注意机器上是否是原装硬盘 如果有条件最好拆后壳验机 华强北这方面很强,电池循环次数,序列号都是可以随便改的,电池循环一般都会改成一百多次,要注意测试实际的使用时间 如果对个人卖家面交,一定要当场联网测试。确认这个电脑是否是被偷来的 市场价格的职业卖家其实还是靠谱的 还有买二手电脑的基本操作我还是再啰嗦一遍吧: 外观,这个不用说 检测键盘,每个键都要检查 检查屏幕是否有坏点,换壁纸...
关于中秋节发月饼这件事
这篇本来不想发出来,不过想了想还是发出来吧,毕竟我的想法也不一定是对的。 事情是这样的,我司本来是小公司,没有专门的 HR 行政之类的人。到中秋节了吗。。。因为我们有远程工作的,还有常年不来公司露面的销售 我司这个是第一次过节全员发福利,主要是今年员工快翻了两倍了 本来我是本着发点月饼增加以下感情。。。毕竟发100块的月饼和发100块的红包给人的感觉是不一样的 100块的月饼:哇,还有月饼吃,好开心 100块的红包:抠死了。才100块,这公司要倒闭了,散了吧散了吧 嗯,发月饼这件事是我向领导提出来的。。。(我TM 就是嘴欠 本来我想先去找销售去商量一下的,然而销售那几天都没来。。。 然而最糟糕的事情出现了。。。我找领导一商量,好,月饼买了。。。。销售也每个人都买了一份月饼,最大的问题是那个销售根本不知道有多少远程的。。。所有只买了平时在办公室里的。。。 好了现在月饼泛滥了,没人可以拿两份了。。。那怎么行啊,把月饼都送出去,剩下的拆开大家分着吃 然而令我最不爽的是有人提出给客户送月饼,理由是:原来用财务公司记账的时候,财务公司给客户送月饼。嗯,好像很有道理的样子。。(不对啊,这...
浅谈浏览器实时流媒体
我觉得应改把浏览器实时流媒体分成三层(传输,容器,编解码),这样更容易理解,不过他们并不能任意组合 分层结构数据传输层(底层传输层,浏览器原生支持) http websocket webrtc rtmp (这个浏览器本身不支持,要靠外置插件) 实时流传输层(中间传输层) rtp rtsp 容器层 浏览器原生支持 Media Source Extensions flv ts 编/解 码 vp8 vp9 h264 h265 编解码 信息交换 sdp m3u8 mpd webrtc sdp 我这里分了四层(编解码 信息交换 和 编/解 码 不会同时运行,先信息交换再编解码)。。因为浏览器容器层是由原生支持的,只有播放原本浏览器不支持的容器是才需要 MSE 实时流传输层(中间传输层) 这个其实是可有可无的,大部分情况都是没有的 由于浏览器实现的编解码都不同,一般都要交换一下支持的编解码的信息 一般都用 sdp 实时流方案HLS HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime...
细说 Debian 的网络管理 network/interfaces
最近在修一个复杂的多网卡问题,产生的玄学问题,趁机把 interfaces 文档都读了一边 注:本文内容是在 raspbian 系统上验证的 Debian 自带的网络管理的名字叫 ifupdown 权威的文档是 man interfaces 这个文件可以分成两部分,INTERFACE SELECTION 和 ADDRESS FAMILY INTERFACE SELECTION 是 这个物理设备(可能是虚拟的)怎么样怎么样,指: 自动启动,允许热拔插啊之类的… ADDRESS FAMILY 是上层的网络,设置 ip 地址啊,子网掩码,网关之类的… Lines starting with `#’ are ignored. Note that end-of-line comments are NOT supported, comments must be on a line of their own. 注:network/interfaces 这个文件不支持行尾注释 12345678910# 自动使用 eth0, 相当于自动执行 ifup eth0auto e...
嘿 siri 把家里的门打开
这东西本来是我上大学时写的一个项目,现在把他重构了一遍 这回还真是从焊电路到前端,一个人全干了 我最熟悉语言是 ruby 。。为什么要用 python 来重写? 我只是想用一门通用的编程语言来把他表现出来。编程是思维,而不是仅限于语言和框架(写之前用来几个小时把python语法重新看了一边) 同时也有一种想法,把他变成教科书级的项目(我的水品太差,pylint 一测,一点也不够 pep8 ) 看到这,你也应该明白了。这篇文章不是教程,而是开发笔记 尽量使用最基本的库,最精简的实现(依赖只有 bottle ) ??? 什么用了树莓的 GPIO 竟然没用gpio库?没错,你没有听错,如果你了解 gpio 库的实现,其实就会明白,其实gpio根本不需要库。。。(当然,比较复杂的项目最好还是用库) 先来上个地址: 这个是树莓 gpio 库的的代码仓库 看这段: 其实不难看出,操控 gpio 其实就是在向 /sys/class/gpio/ 里面写数据 基本的操作很简单,直接看这段代码: https://github.com/JRT-FOREVER/argus/blob/mast...
在 Python 里使用 method_missing 方法
我不喜欢 python ,但又不得不写 python 。在 ruby 里 method_missing 我几乎天天用( 首先,要知道动态派发: 简单的说就是通过字符串来调用函数 12345# python 有两种写法eval(func_name)()getattr(obj, func_name)() 反正尽量不要用 eval 方法 因为是通过字符串来调用方法,会有一直非常常见的问题,当调用的方法不存在(比如写错了,读字符串是发生错误)。。。enen 就挂掉了 python 提供了一种叫 __getattr__ 的 钩子函数。(访问一个不存在的属性时调用) 不过 python 有个问题 There is no difference in Python between properties and methods. A method is just a property, whose type is just instancemethod, that happens to be callable (supports call). If you want to implement t...
一篇超水的 Rails ActiveStorage 源码解读(后端部分)
ActiveStorage 是 Rails 5.2 的一个新特性 ,建议你先去读完官方的文档再回看来这个 https://guides.rubyonrails.org/active_storage_overview.html 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465▾ activestorage-5.2.1/ ▾ app/ ▸ assets/javascripts/ ▾ controllers/ ▸ active_storage/ ▸ concerns/active_storage/ ▸ javascript/activestorage/ ▾ jobs/active_storage/ analyze_job.rb base_job.rb purge_job.rb ▾ models/acti...
XPS 9360 入手记 ——拆了换 Intel9260AC 网卡
刚买了台电脑。。到手第三天就换了块网卡。。。心真大系列 本来准备去美帝的 dell 官网买的。。。然后我就被砍单了。。。说下我别砍单的经历吧 我用的是中信银行的 visa 信用卡。。美国的 paypal 。私有收货地址。。我猜测可能是由于帐单地址的问题被砍单 美帝官网的是 9370 比国内高一代。。。但9360 除了顶配外。都是7代CPU 我详细对比过国内版和国外版。。。9370 去掉了usb 全部换成 雷电接口了。然后更薄了 主要配置上几乎没区别 国内的 9370 请了明星代言。出来个中国专属定制韭菜版。。。。 然后我就在狗东买了9360 一共10999。。。 9月9号 那天打折减了1000块。果断入手。我买的是xps13 9630 非触屏的顶配 开箱 包装这么弱。我都感觉像二手的 只有电脑和充电器。。。 包装过于精简。。。必须要上电才能开机。。。这证明是新的 开机是 win10 不过被我改成了 archlinux 。。进入bios 关掉 sb(security boot),然后把硬盘的RAID 改成 AHCI (不然检测不到硬盘) 进入 archlinux live 然后...







