关于中秋节发月饼这件事
这篇本来不想发出来,不过想了想还是发出来吧,毕竟我的想法也不一定是对的。 事情是这样的,我司本来是小公司,没有专门的 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...
细说 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...
嘿 siri 把家里的门打开
这东西本来是我上大学时写的一个项目,现在把他重构了一遍 这回还真是从焊电路到前端,一个人全干了 我最熟悉语言是 ruby 。。为什么要用 python 来重写? 我只是想用一门通用的编程语言来把他表现出来。编程是思维,而不是仅限于语言和框架(写之前用来几个小时把python语法重新看了一边) 同时也有一种想法,把他变成教科书级的项目(我的水品太差,pylint 一测,一点也不够 pep8 ) 看到这,你也应该明白了。这篇文章不是教程,而是开发笔记 尽量使用最基本的库,最精简的实现(依赖只有 bottle ) ??? 什么用了树莓的 GPIO 竟然没用gpio库?没错,你没有听错,如果你了解 gpio 库的实现,其实就会明白,其实gpio根本不需要库。。。(当然,比较复杂的项目最好还是用库) 先来上个地址: 这个是树莓 gpio 库的的代码仓库 看这段: 其实不难看出,操控 gpio 其实就是在向 /sys/class/gpio/ 里面写数据 基本的操作很简单,直接看这段代码:...
在 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...
一篇超水的 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 ▾...
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...
使用 systemd 来管理你的 rails 应用
这篇文章属于没什么卵用系列 我并不喜欢 capistrano 众所周知 rails 的项目启动用 RAILS_ENV=production bundle exec rails server -p 3000 -d 如果服务器经常重启。。最简单的办法:那我们就要把这条命令放在 /etc/rc.local 里(目前deb系的发行版是保留的。本质上是用 systemd 来执行这里的命令)。。。 不过目前。大部分 Linux Distribution 都是 systemd 来启动的(gentoo 除外。gentoo 默认是 openrc,可以换成 systemd ) 在改之前。我们先把 rails 监听的端口换成 unix sock 1sed -i 's#port ENV.fetch("PORT") { 3000 }#bind "unix://\#{Rails.root}/tmp/sockets/puma.sock"#g'...
Ruby 元编程索引
大概会持续更新吧。。。。 打开类 Open Class 猴子补丁 Monkeypatch 接受者(receiver)和祖先链(ancestors chain)eg: 查看String 类的祖先连 String.ancestors 一些重要的钩子方法 included extended prepended inherited method_missing (幽灵方法): 当接受的反方法不存在时会调用这个方法,配合 *arg可以接受任意个数的参数 123def method_missing(method, *args) "The method #{method} with you call not exists"end send 方法 (动态派发) send (Obj.send(:define_method, ‘desc’)) public_send 动态方法 define_method instance_eval 方法仅仅会修改 self,而 class_eval 方法会同时修改 self...
尝新向 fcitx5 日常使用
用老K的话说:maybe a new fcitx. 新输入法是重写了一遍 看到archlinuxcn 里有好多人都切换到了fcitx5 我也想要。。。。 虽然老K 同学已经偷偷开发两年多了。。。 虽然目前没有配置界面也没有文档, 甚至没有稳定版。。。不过没关系。不影响日常使用 我用的是archlinux,fcitx5-git 在archlinuxcn 的软件源中 (当然AUR 里也有) 你大概需要安裝这些: fcitx5-git 输入法基础框架主程序 fcitx5-chinese-addons-git 简体中文输入的支持,云拼音 fcitx5-gtk-git gtk 程序的支持 fcitx5-qt4-git qt4 的支持 fcitx5-qt5-git qt5 的支持 你可能还需要这些: kcm-fcitx5-git 如果你用的是 KDE ,请装这个 fcitx5-rime-git 繁體中文輸入 RIME 中州韻輸入法引擎 fcitx5-anthy-git 日文输入法 fcitx5-mozc-git 日文输入法,使用...