Marco Nie - 2019年3月 https://blog.niekun.net/2019/03/ you are the company you keep... nginx实现mp4流媒体播放 https://blog.niekun.net/archives/177.html 2019-03-31T19:14:00+08:00 如果还没有安装nginx,参考教程:https://niekun.net/index.php/archives/30.html此功能使用的是 Nginx 的 ngx_http_mp4_module 模块。首先查看当前 nginx 是否已经安装了 ngx_http_mp4_module 模块:nginx -v 查看是否已经有了对应模块,一般使用 apt 安装的都集成了此模块。编辑你的 nginx 配置文件,加入下面的片段:location /video { mp4; mp4_buffer_size 1m; mp4_max_buffer_size 10m; }测试是否配置正确:service nginx configtest 重新加载配置文件:service nginx reload 现在你就可以在对应目录下放置一个mp4文件,访问看是否能够正常播放。如果访问网页出现 500 错误,或者 nginx log 里提示mp4 moov atom is too large,则可能需要将 mp4_max_buffer_size 设置大一些。支持的格式:.mp4, .m4v, .m4a可以从任意时间开始播放,如:http://example.com/elephants_dream.mp4?start=238.88start 后的数字为秒也可以设置结束时间点:http://example.com/elephants_dream.mp4?start=238.88&end=555.55 文风指南 https://blog.niekun.net/archives/159.html 2019-03-24T21:32:00+08:00 这是一份为中文用户撰写的文风指南,由泛化智能公司邀请我很喜欢的一位播客主播和博主李如一起草,旨在规范中文书写排版规范,转载的目的是希望我自己和他人在写作中能够秉承严谨的中文操作规范,这是一种对一种形式的尊重。我本人在近几年从「IT公论」开始听李如一的节目,我认为听和看三观很正的人的所思所想,能够极大的保持自己清晰头脑不被浮华信息和噪音迷乱。在我常看的各种信息源里,时间长了你就会了解到背后发布信息的人是怎样的品行,有些播客和博客慢慢就感觉和自己三观不合就放弃了,唯独李如一是我从始至终觉得真正值得花时间看他的文章听他的节目,甚至付费订阅刊物的人。从「IT公论」到「一天世界」「一分世界」。正如他一直提到的,做到无所畏惧而有所敬畏。在后稀缺时代尝试写出别处没有的文字。用整体性的视角观察当代社会、技术文化以及商业风景,对抗消费主义导向的论述,强调对技术与艺术的敏锐感受力、以及精神与肉体上的强健。此规范已在GitHub上开源:https://github.com/generalized-intelligence/gi-Chinese-Style-Guide李如一Blog:https://blog.yitianshijie.net/一天世界播客:https://blog.yitianshijie.net/yitianshijie-podcast/以下为指南全文。泛化智能(gi)文风指南总论妳是一名写作者(writer)。或许妳不写小说、不写专栏、不写诗,甚至也不看小说、不看专栏、不看诗。但妳仍然是一个写作者。如今很少有工作可以完全脱离写作而存在,只要面对电脑,要么就是在用形式语言写作(编程),要么就是在用自然语言写作。工作邮件、个人总结、演讲用的幻灯片、Slack 上的讨论、微信上的对话、社交网络上的只言片语……所有这些都是写作。写作的水平和天赋有关,但一些基础性原则可以编成则例(guidelines)。在软件设计领域,一份好的设计则例可以规范第三方开发者,提升软件平台的整体设计品质。同样,一份好的写作风格指南(style guide)也可以让公司和组织对内与对外的文本保持风格上的一致。尤其是泛化智能的产品均为开源项目,所以文本对于我们与外界的交流至关重要。优质写作不容易。但只要回避某些写作习惯,妳的文字就很容易胜过 80% 的人了。一般性注意事项〇、永远不要因为某个词汇或句式在当下流行而忙不迭地用它。一、避免陈词滥调写作时,成语或惯用语经常会第一时间跳入妳的脑袋(所以它们才叫成语)。当遇到这种情况时,请停下来思考这些表达是不是过于泛滥。被滥用的表达即便准确,也会失去效力。文字和食物一样,新鲜是第一要素。「一千个人眼里有一千个哈姆莱特」,真的吗?或许妳的读者/同事里大部分人并没看过《哈姆莱特》,看过的一百个人眼中也只有两个甚至同一个哈姆莱特。还有很多陈词滥调的用法并不能给句子带来额外的信息或更加新鲜的表达,例如「并没有什么卵用」在很多情况下简化为「并没有什么用」也并不会损失什么。陈词滥调日新月异,请诸位随时跟进。二、特殊文风有一些特殊的文风类型并不适用于科技公司。比如我们常常会在新闻联播以及《人民日报》看到的中文。很多这些中文是完全合乎文法的正常中文,但有一种并不适用于科技公司的气质。「事情真的像 Twitter 用户想像的那样吗?带着这个问题,记者走访了美国旧金山 Mission 区的用户体验设计师 Adam。」这是完全正常的句子,但很难不让人想到《焦点访谈》。即便是「Twitter」, 「用户体验设计」这类潮词也改变不了这点。如果你的句子读起来很像新闻联播,请改写。除此之外,也有很多文风并不适用于科技公司。比如另一种特殊文风是淘宝文风,一个开发者说:「亲,这个 Bug 修改了,请给 GAAS 个 Star 哦」,明显是不合适的。三、不要害怕崇高言不由衷的崇高是虚伪,害怕崇高是犬儒。四、中文 ≠ 中华人民共和国公民使用的文字妳知道「扩散」、「提案」、「以上」都是日文吗?妳知道「迷思」是台湾人对 myth 的翻译,随后被大陆借用的吗?中华人民共和国是目前最大的中文使用国,但中文和汉字在台湾地区、新加坡、日本、以及无数海外国家与地区同样是日常经验的一部分。我们一直在从国外引用新词,但我们也必须意识到大陆语文对其它汉语使用地区日渐增长的影响力。如今在香港、台湾和北美的中文报纸里都不难见到大陆的用词和句式,作为生长在中国大陆的写作者,我们应该力求对世界范围内的中文做出正面贡献。五、不要耍小聪明在上面关于特殊文风的段落里,我本来写的是:淘宝文风是特殊文风的又一个子集。在第二稿里我把它改成了现在的样子。使用子集这种词或许会让人觉得有「geek 趣味」,但应用类写作的目的是沟通,不是为了显示自己的文笔功夫、专业知识或是「脑洞」。每当妳灵机一动想到什么特别绝妙的形容或表述时,请停下来考虑一下如果不这么说是否会损失什么。六、请确保中英文对应时的语义泛化智能的绝大部分项目均会提供中英双语的文档。请各位作者在翻译完毕后务必二次检查英文是否反映了中文的含义;并且确保英文文档经过了英语母语者的审阅,以避免引起不必要的误会。标点符号中文一律使用全角请使用中文直角引号:「」为一级引号,『』为二级引号。(即「」是最外层的引号。)破折号是——(两个 em dash),不是 --(两个 hyphen),也不是—(一个 em dash)省略号是……(两个英文省略号),不是。。。,也不是......(六个点)用波浪线(~)有时会有很好的效果,但调味料放多了会咸。用斜杠表示「或者」的意思时,请用 /,不要用 \。英文大小写乱用是绝对不可接受的。一律使用半角。逗号、分号、冒号、句号、感叹号、问号后留一个空格。省略号是 …。注意这是一个单独的符号,不是三个点。(若妳试图删除这个符号,会发现按一下 delete 即可删除,而不是三下。)破折号是 —(em dash),表示「从哪到哪」是 –(en dash,例如 1980–1992)。前者在 Mac 上可用 shift option - 打出,后者可用 option - 打出。在某些文字处理软件(例如 Word)里,连续打两个 hyphen 会被自动转为 em dash。括号和它外面的字母之间留一个空格,和它里面的字母之间不留空格。例:Richard D. James (aka Aphex Twin) is a pioneer of the so-called Intelligent Dance Music.gi 作为公司名称的缩写,用在文章中需用小写字母。Gi 和 GI 等写法应极力避免。GAAS 是 Generalized Autonomy Aviation System 的缩写,请务必在任何情况下均使用大写字母 GAAS。GitHub 的大小写也要注意。禁用词汇在除了直接引语以外的任何情况下,禁止在文案中使用以下词汇。屌丝白富美高富帅高大上富二代红二代军二代安利(动词)撕逼尼玛(语气助词)也是醉了(是哪种醉了?请描述出来)有木有泛化(当用于形容公司名时,禁止将公司简化为「泛化」)。当直接引语里出现上述词汇时,可以使用。但请使用正字。「撕屄」而不是「撕逼」。常识性原则:不要讳饰。如果把某个词用汉字完整写出来令你不适,那么也不要用柔化过的变体把它写出来:不要用这个词。例:如果觉得「关我屁事」粗俗,那么写成「关我 P 事」并不会让你更不粗俗。慎用词汇情怀物欲横流众所周知(请想想是不是真的众所周知)简约唯美精品(词本身没什么,但如果随便什么公司都说自己做的是精品就没有精品了)行为艺术(行为艺术和绘画艺术一样,是一种艺术类别,不可以用这个词来描述一切妳看不懂的东西)Low(如果妳觉得一个东西「很 low」,请具体描述之。为什么 low?是哪种 low?)人工智能(除非是某些特定的宣传场合,人工智能应该用具体技术名称来代替)特殊词汇飞行汽车与 VTOL(专业文章请使用 VTOL 来代表垂直起降飞行器)数字用法当只有一位时,使用汉字。两位以上(含)使用阿拉伯数字。例:山药至少有三种常见的做法。一年有 365 天。阿拉伯数字前后请加入空格。比如「现在是 2016 年」,而不是「现在是2016年」。最近更新于 2016 年。 樱花季 https://blog.niekun.net/archives/154.html 2019-03-23T19:06:00+08:00 var x = document.getElementsByClassName("movie"); var i; for (i = 0; i < x.length; i++) { x[i].style.height=x[i].scrollWidth*9/16+"px"; } 又一次在这个季节在外地,今天天气不错,骑上小车来到一个森林公园。看到放风筝的小孩和家人,想起小时候也是这个季节,下午放学总是有小伙伴找我去河边放风筝。我的水平不怎么样,而且风筝总是一次性的不是挂树上就是线断了飞走/(ㄒoㄒ)/~~路上有人在跑步,可能是山上的空气比较好吧,带着耳机沉浸在自己的世界,有汗水有喘息但也是享受的,其实我也总是这样的。看到路边的樱花盛开,我才反应过来当下的季节,很平淡很低调的美。不去仔细观察不会看到她的细节,很单薄的几片花瓣环绕在一丛花蕊边,很是弱不禁风。但树上成片的存在,繁星般的包裹住整个树冠,风吹过有点点凋零,像完成了短暂的使命回归大地。天空很蓝 樱花很美... ... 回来时遇到一直小土狗,对此我没有抵抗力的蹲下来摸摸它,我不太清楚那些见到小动物避之不及的人的心态,它们只是单纯的想和你亲近一下... 使用mailgun实现个人域名的邮件服务 https://blog.niekun.net/archives/143.html 2019-03-22T14:07:00+08:00 在拥有了自己的网站之后,很多人就想要一个以自己网站域名为后缀的邮件系统。但一个邮件服务器建立的难度远远大于网站本身,而且其稳定性安全性等可能远没有主流邮件服务提供商的好。所以自建服务性价比就很低了。在不需要在自己服务器上搭建系统的情况下可以使用 mailgun 建立自定义域名邮箱,然后配合支持 SMTP 的主流邮件服务商间接实现了我们的目的。The Email Service For DevelopersPowerful APIsthat enable you to send, receive and track email effortlessly.10,000 emails free every month.website: https://www.mailgun.com/mailgun注册及自定义域名在其官网点击 sign up 注册账户,注意最好使用主流且支持第三方 SMTP 的邮箱来注册。注册账户后访问管理页面:https://app.mailgun.com/app/dashboard点击右侧 messages,里面有个 mailgun 自动为你创建一个默认 domain,当然我们需要自己加入自己的域名,点击 add new domain进入此界面输入你的个人域名,他会推荐你使用二级域名,但是你可以直接用顶级域名,下面的选项保持默认即可:如果你的域名不是主流的后缀,如: .com .net 等,当你确认 add domain 后会提示此域名是 disabled,此时你需要发一个 ticket 来要求解除限制,途径是点击左侧的 support 选项里的 create ticket:完成域名的添加后,开始添加 DNS 解析,点击你的域名进入 settings -> DNS records下方会有五个需要你添加到你的域名解析你的记录:2条 TXT, 2条 MX, 1条 CHAME根据提示将上述5条记录加入你的域名解析里,注意如果你使用了第三方 CDN 服务商的 NS 服务,需要将 CHAME 记录走直连。完成解析后,点击 check DNS records Now 验证是否正确。如果每条记录前都是绿色勾就表示解析配置完成。新建 SMTP credential,如果只是收邮件的话不需要任何 SMTP,这里是配置发件账户。点击 new SMTP user 建立你喜欢的名字,如:maser@youdomain,mailgun 要求 user 至少大于5个字符。建立后会自动生成密钥且只显示一次,这里建议及时去支持 SMTP 的邮件提供商哪里添加此账户。开始配置 routes,这里就是配置邮件转发,默认会创建一条将所有邮件转发到注册账户的邮箱的 route,这一条 route 已经完成了我们的需求,可以根据需求添加其他 routes。完成以上配置后,基本就可以使用自定义域名的邮件服务了,收件地址可以是任意的,只要是@youdomain的地址都会接收。发件地址只能是 SMTP 配置你的users。 修改SSH端口 https://blog.niekun.net/archives/135.html 2019-03-21T20:28:21+08:00 ssh 默认端口为 22, 有时候为了安全,需要修改默认端口到任意其他端口。使用 root 用户登录服务器。ssh root@yourip 打开配置文件:vim /etc/ssh/sshd_config 找到并修改以下行:Port 22 修改 22 为任意可用端口,保存并退出。重启服务:service ssh restart 重新登录 ssh:ssh root@yourip -p Port 以上就是修改 ssh 端口的过程。 使用SFTP管理远程服务器文件 https://blog.niekun.net/archives/130.html 2019-03-20T14:34:00+08:00 SFTP, which stands for SSH File Transfer Protocol, or Secure File Transfer Protocol, is a separate protocol packaged with SSH that works in a similar way over a secure connection. The advantage is the ability to leverage a secure connection to transfer files and traverse the filesystem on both the local and remote system.https://www.digitalocean.com/community/tutorials/how-to-use-sftp-to-securely-transfer-files-with-a-remote-serverLoginSFTP直接可以使用SSH账户登录:sftp user@romoteIP sftp -oPort=custom_port ser@romoteIP 查看帮助:help 内容如下:chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' df [-hi] [path] Display statistics for current directory or filesystem containing 'path' exit Quit sftp get [-afPpRr] remote [local] Download file reget [-fPpRr] remote [local] Resume download file reput [-fPpRr] [local] remote Resume upload file help Display this help text lcd path Change local directory to 'path' lls [ls-options [path]] Display local directory listing lmkdir path Create local directory ln [-s] oldpath newpath Link remote file (-s for symlink) lpwd Print local working directory ls [-1afhlnrSt] [path] Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory progress Toggle display of progress meter put [-afPpRr] local [remote] Upload file pwd Display remote working directory quit Quit sftp rename oldpath newpath Rename remote file rm path Delete remote file rmdir path Remove remote directory symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for helpNavigating with SFTP查看远程当前目录:pwd 查看本地当前目录:lpwd 查看远程当前目录文件:ls 查看本地当前目录文件:lls 切换远程目录:cd 切换本地目录:lcd Transferring Files with SFTP下载远程文件到本地语法:get remoteFile.txt 重命名下载的文件:get remoteFile.txt localFile.txt 下载文件夹到本地:get -r someDirectory 下载文件夹到本地且保持文件夹权限属性:get -Pr someDirectory 上载本地文件到远程语法:put localFile.txt 其他语法和下载 get 基本相同。查看远程服务器可用容量:df -h 以上命令无法直接查看本地容量,可用 ! 来实现:! df -h使用 ! 后任何本地命令都可以使用了,要想切换回 sftp 模式,使用如下命令:exit 以上就是常用的 SFTP 用法。常用客户端FileZilla (corss platform)WinSCP (windows) oray蒲公英使用手机热点桥接联网 https://blog.niekun.net/archives/129.html 2019-03-19T16:03:00+08:00 我公司使用 oray 的路由器链接设备,实现远程控制终端。在用户现场偶尔无法提供可连接外网的接口,所以需要使用无线中继的方式使用手机共享网络给路由器。首先使用一台终端(电脑或手机)连接到路由无线网络,登录管理页面 oraybox.com, 需要输入口令进入。将另一台手机打开热点,待用。管理面板里:上网设置的上网方式选择无线中继,会自动开始扫描附近无线网络,选择正确无线热点后输入密码,点击立刻上网就完成配置,此时路由器应该就可以连接网络了。此时远程访问此路由器需要路由器上的 SN 码。 Linux处理包含空格的路径 https://blog.niekun.net/archives/126.html 2019-03-07T15:09:26+08:00 当文件包含有空格的时候,需要在调用的时候进行一些处理:vim /path/"i am a file.txt" vim /path/i\am\a\file.txt"以上两种方法都可以正常调用。 街头钢琴家 https://blog.niekun.net/archives/124.html 2019-03-07T15:03:00+08:00 var x = document.getElementsByClassName("movie"); var i; for (i = 0; i < x.length; i++) { x[i].style.height=x[i].scrollWidth*9/16+"px"; } 在YT上看到一条推荐视频,大概是一个钢琴家在公共场所的钢琴上弹奏,看了之后感觉颇多。Henri Herbert是这视频的主角,在一个看似商场的地方放着一架钢琴,他走上前没有过多准备的开始弹奏,来往的路人开始没有停留驻足,可能大多就是瞅一眼就走,然后慢慢的有些孩子开始站在一旁观看,他的手在键盘上流转自如,很华丽专业的感觉,我想在现场的人也是桐言的感觉吧。随着音乐的进行,人越来越多,他的指法也越来越快,真的是很享受的样子,我想当时的他也许根本没有余暇去看周围到底有没有人看他的演奏吧,只是沉浸在他自己的世界,也许每一个艺术家在其工作的时候都应该是这样的吧。我想在国外发生这样的情景,有种很自然的感觉,那种主角和观众都是该有的样子。真正的音乐或者其他所谓高雅艺术不应只是发生于华丽的殿堂,高端的布置,让观众正襟危坐的欣赏。能够让人们在没有所谓“显得自己高雅”的压力下自觉地驻足欣赏,这样才是一个艺术家是否真正有一定能力的体现,而观众也是在真正欣赏而不是为了观看而观看,这种也是一种优雅的体现,我想在国内欠缺这样的情景很大原因是大家都有种“急功近利”的感觉的,做什么事情“目的性”很强,不做“没有意义”的事情,是大家的共识,强烈的功利意识让大家多了很多为别人而活着的负担,这种负担让大家没有停下来静静想想的,什么叫生活,什么叫幸福。 流行的逆流 https://blog.niekun.net/archives/119.html 2019-03-04T22:41:00+08:00 Your browser does not support the audio element. 前不久开始,在路上听到几次一首熟悉的歌,一时想不起来名字,但歌词和旋律告诉我是初中或高中时流行的一首歌,脑海里一直想着这个事。这两天有空了,就通过一些歌词片段,搜索到了歌名,FIR乐队的“月牙湾”,发布于07年。音乐能够尘封一段记忆,当旋律响起,总是将当时的情景推到眼前。思绪回到那些年,正是高中时候,正是那一批“天王天后”们红极一时的时代,杰伦/力宏/陶喆/潘玮柏正是大红大紫,蔡依林/twins/SHE也是玉女代表。晚上用着随身听,借室友的磁带听着“七里香”,循环了不知多少个夜晚,每周班上学歌,都是以上几位的作品,因为喜欢同一个明星的太多,我也是不太流露处自己的喜好,因为那是一个都喜欢突出自己个性的时候,所谓不走寻常路吧。记得有个同学,省吃俭用好久买了个mp3,里面放满了杰伦的歌,感觉满足到爆的样子,我也常常借来听,那时候不懂什么音质,单纯的听到哪个期待的旋律就心跳加速,仿佛世界都是我的。那个冬天,下了早读去吃早饭,广播响起了“莫斯科没有眼泪”,配合着冬天的景象,光秃的树干,微风,微凉和裹得严严实实的同学们匆忙的脚步,感觉是那样的应景,每当现在听到这首歌,我就仿佛又走在去往食堂的路上...大学的时候,喜欢听欧美流行。突然感觉过去喜欢的这一票歌手都太low了,感觉自己那时候就是鼠目寸光不懂得什么叫更高级的音乐。记得有很久一段时间都没有再听周杰伦一众的歌了,仿佛要和过去的自己告别。那时候可能真的是感觉更加期待未来,过去什么的没有值得留恋的。现在的我,可能是生活和经历的关系,更加念旧了,有时候看到听到想到过去的人事物,就想要抓住些什么。我不知道这是长大的原因,还是我对当前生活的逃避。但我选择顺其自然,我不觉得对过去的留恋就是懦弱,就是没有积极向上态度面向未来的失败者。我想每个人都有自己的原则和信念。对错都是相对的,自己之所以为自己而不是别人就是有属于个人的精神层面的一些东西吧。