少女祈禱中...
Loading...

ccloli

cc是个loli,你也可以叫她傲娇

无显示器环境下用崩盘矿机搭建 NAS 小记

photo_2019-03-05_14-34-34

最早看到这条消息是月初摸鱼时逛贴吧看到某银子发的这个贴子(这里为某个自己把自己号删了的银子默哀一秒),某矿机老板跑路,剩下的矿渣开始在咸鱼上被 JS 倒卖。从贴子的信息可以大概得知这是一个类似于硬盘阵列柜的机器,每个机器上都有热插拔硬盘位,CPU 应该是 J1900。然后艰难地上咸鱼搜索了下 J1900(估计当天咸鱼已经被挤爆了,每次翻页都会跳转到服务器繁忙以及 504 Gateway Timeout,尤其是当天下午某在 GitHub 上发布消息的 JS 开卖,咸鱼 app 都会白屏,看来咸鱼是真的垃圾,把 web 砍掉情有可原……不对,现在真砍掉了,web 现在已经完全不能搜索了,会跳转 deny_pc,太垃圾了),刨去正常出 J1900 工控机和主板的卖家,还是能看到几个卖矿机的 JS,展示照片都是成堆的矿机,估计存量不小,价格普遍在 300 元左右。

为有时候可以是女的银子同学默哀一秒钟

为有时候可以是女的银子同学默哀一秒钟

于是摸鱼摸到底,某个 JS 在备注里留了个 GitHub 地址,关注了下,原来机器几天前就已经开始卖了,然后在看到贴子的前两天 JS 们统一战线,把价格定在了 300 左右。按照 GitHub 这位 JS 的描述,大概是说 300 块钱虽然也不是不合理,但是也觉得奇怪为什么定这个价,估计是这位 JS 觉得 300 定的有点高,虽然他接下来说因为发货的数量太多了,忙不过来,所以权当是辛苦费。

接下来 以「矿机」和「J1900」为关键词搜索,Google 上当时只有一个色魔张大妈的文章,文章中也提到最低价格入手是 200 多块钱,一开始大家都是试探着卖,不知道定价多少,结果 210 有人出了,慢慢涨价,最高涨到了 400。虽然文章中说矿机量大,估计有 20w 台,所以有可能有望跌破 200,不过按照前面那位 JS 的说法,估计是不太可能了。

smzdm 上的贴子就比较详细了,作者已经入手了两台机器,一台单网卡 A 一台双网卡 C,算是踩过了些坑。根据贴子描述,机器一共分为 ABC 三款(实际上还有个 D 款),各款还会分单双网口的版本。文章最后总结了下目前遇到的坑,诸如 C 款双卡是双卡单线需要改 BIOS,B 款双卡 BIOS 锁百兆,C 款双卡是 12 SATA,而 SATA III 是芯片扩展出来的,所以理论上来说 C 款双卡 12 SATA III + 1 SATA II 是最佳选择,但是求稳的话还是选择单卡比较好。具体的信息可以直接去原贴看,过去了一个月各种坑都出现了,文章内容应该充实了些。

这张图已经有新版本了,这是当时看到的图

这张图已经有新版本了,这是当时看到的图

不过毕竟是矿渣,以防有坑,还是持币观望一段时间比较好。果然接下来几天原贴的评论爆出了 B 款的 Intel 82583V 双卡全锁百兆,A 款也有概率拿到 B 款主板等问题,甚至还有出现 AB 款拿到 82583V 单卡同样锁百兆的问题。在千兆网卡都是瓶颈的今天,百兆的 NAS 还能用吗?最佳防坑百兆的方法是看机箱后是否有双 USB 3.0,单 USB 3.0 双卡基本是百兆,甚至单卡都有可能是百兆,实在不行只能额外掏钱买个 USB 3.0 的千兆网卡了(淘宝最低的一家价格应该是 40 左右,其他普遍要 70+,这成本就上去了),总之看来坑还是挺多的。所以后期基本上就考虑只选择 C 款或者 D 款(D 款的主板参数和 C 款基本一致,I211 网卡,双卡也是 12 SATA,内存随机 2GB/4GB 寨条),如果运气比较好价格差异不大的话可以上 12 SATA 的双卡版,毕竟 SATA III 是芯片扩展出来的,自然是将硬盘均分到每个芯片上会好些,以及双网卡万一能双路聚合呢(虽然看前文应该是一个千兆一个百兆,可能需要改 Intel I211 为 Intel I210,两个应该是同一个网卡,只是马甲不同)。只可惜上车时间已经比较晚了,几个咸鱼卖家表示没有 12 SATA 或者可能是开始惜售,或者有但是要价 400,所以最后经由 smzdm 原帖作者在交流群推荐的某咸鱼卖家上以 270 到付的价格拿到了 D 款单卡的版本。顺带后来还在淘宝上搜索了下 「NAS 机箱」,结果居然看到了来自华强北的 AB 同款机箱,淘宝价格单卖机箱就是 300+,所以实际上算一下 300 左右入手相当于是买机箱送主板和电源了,应该是不算亏的。

READ MORE →

みんなのロリ

「…………………好き?♡」 @amanagi_seiji

「…………………好き?♡」
@amanagi_seiji

结果「萌の日」之后就是「ロリの日」吗?真好,我也好想成为「萌のロリ」啊,然而是不可能的

觉得好玩就入手了ロリ.みんな,然而并不知道拿来做什么,用来放萝莉本资源吗?不存在的

最后 Google 这个翻译真是 xswl

你才是萝莉,你全家都是萝莉

你才是萝莉,你全家都是萝莉

萌节快乐 & 好久不见

Hi,今天是十月十日,也就是所谓的「萌の日」,好久不见。

バニークッパ姫とキングテレサ姫

バニークッパ姫とキングテレサ姫
右と左、どちらを選べばいいのかな?
Pixiv id=70920468

大概从网上消失了一年有余吧,或许也不只是一年吧,大概快有两年了吧。由于各种各样的原因(诸如厌恶实名认证等)而淡出了各种社交圈,另外还附带了 QQ 不回、邮件回复延误以及博客也没了等等副作用。如果在这期间给大家带来了什么困扰的话,在这里表示非常抱歉了。

其实本来一开始这个博客是不打算恢复的,大概是自己太菜,没什么想写的,之前写的真幼稚,维护真麻烦,反正也没人看,以及恢复起来也很累之类的吧。结果你可能不相信,下午工作完摸鱼的时间居然就恢复的差不多了。至于为什么恢复的话,大概是想说些什么吧,或者说是回忆些什么吧,或者只是每年的这一天都会惯例发一篇文章吧(去年博客挂掉后就在 GitHub Pages 上随便写了篇文章),或许说是报平安吧(笑)。当然之前的那些原因还是存在的,所以这篇文章有很大概率是期间限定,大概过几天后这个博客又会消失吧——当然估计有很大概率会在 Wayback Machine (Web Archive) 上复刻(?

READ MORE →

又是一年卖萌日(x

本文于 2017 年 10 月 10 日 push 到 GitHub 仓库 ccloli.github.io

萌个屁哦,都要奔三了还卖什么萌啊

今年大概也是什么也没有,连博客也没了

反正 OpenShift 懒得移植到 V3,AWS 也懒得再去启用

也懒得管这些了,所以域名直接指向 Domain Parking 了

反正现在就是一条咸鱼

这篇文章没评论,因为是静态的 GitHub Pages

也懒得搞什么 Disqus,就放一天的页面,过几天继续指向 Parking

实在有什么想评论,虽然八成没有,那就憋着吧

或者发邮件,估计也不会看,看了估计也不会回

大概算半个死人了

就这样

[废稿] FFmpeg 推流指令小记

这是一篇废弃的文章。由于某些原因,本文未能最终成文,并且由于时间久远,已经没有成文的可能性,还请谨慎阅读。

若您需要了解最终解决方法,解决思路为:使用 Node.js 的 child_process 创建三个 FFmpeg 进程,第一个负责从文件列表循环读取文件并指定 -re 参数,然后使用统一的编码参数封装为 mpegts 格式,并输出到 stdout;第二个负责从一个预先录制好的黑屏视频 null.flv 并指定 -re 参数 copy 封装为 nut 格式(我也忘了为什么),并输出到 stdout;第三个负责从 stdin 中读取流,在指定 -err_detect aggressivecopy 封装为 flv 格式,推流到 RTMP 地址。将第一个进程 pipe 到第三个进程,当第一个进程转码完成一个文件后,立即将第二个进程 pipe 到第三个进程,防止推流中断,待第一个进程开始转码文件后再将第一个进程 pipe 到第三个进程。

本文实际发表于 2018 年 10 月 9 日。

最近在研究如何使用 FFmpeg 进行推流,所以在这里记录一下一些基本的命令行参数。

其实在研究 FFmpeg 的推流功能之前,自己也算稍微研究过一些 FFmpeg 的参数,比如下面这个 FFmpeg 录屏的辅助脚本:

总之 FFmpeg 就是一个非常强大的开源编解码解决方案,基于它可以实现绝大多数你所能想到的编解码功能。


下面的参数均是将视频源推到本地的直播源,源地址为 rtmp://localhost/live/ccloli

如果需要自己搭建本地直播平台进行测试,可以试试功能强大的 MistServer 或者短小精悍的 MonaServer

关于 FFmpeg 的具体指令介绍,此处不会完全详细解释,RTFM

如果你需要将一个文件进行推流,可以使用

其中 -re 参数描述如下,简单来说就是让输入的文件流按照指定的时间比率进行输入,从而保证输出流时间的稳定(如果不指定,很有可能会出现跳帧的情况);-i 即输入的文件;-c copy 代表对视频流和音频流都直接进行复制而不进行二次编码;最后是输出参数,-f flv 即 Flv 格式输出,最后输出到 rtmp 地址上。如果指定为一个文件名,那么它就是输出到一个文件。

-re (input)

Read input at native frame rate. Mainly used to simulate a grab device, or live input stream (e.g. when reading from a file). Should not be used with actual grab devices or live input streams (where it can cause packet loss). By default ffmpeg attempts to read the input(s) as fast as possible. This option will slow down the reading of the input(s) to the native frame rate of the input(s). It is useful for real-time output (e.g. live streaming).

如果你需要让这个源循环播放,可以用 -stream_loop 来循环输入流,指定数值为重复次数,-1 为无限循环

READ MORE →

春招前端实习面试小记

于是终于要来给博客除草了——至少在这篇文章开始起笔的时候已经有六个月没有更新了吧,倒是希望能在这篇文章正式发布之前能有些其他的文章吧,当然草稿箱里还留着一篇试用 AWS Education 的文章,不过估计过了这么久也没再发布的欲望了。

这篇文章算是一个真正的日记吧,也不确定能够给其他人带来多大的指导作用。嗯,大概吧。

这篇文章的结构参考了 Legendt 学长对笔试的记录虽然后来发现文风完全不同(

关于面试前的准备的话,其实我是一个比较作的人,投简历只投了鹅厂猪场性浪三家,在面试前基本上没有过多关注面经之类的东西,也没有对数据结构操作系统计算机网络之类的内容进行复习,唯一的复习的话算是在去杭州的路上把那本《你不知道的 JavaScript》往后翻了几十页而已,面试时完全是属于即兴发挥。如果你对面试没有把握的话,千万不要学我,我只是心大而已 = =|||

说明

  • 本人面试的职位为 前端开发工程师,不确定对于其他职位是否有参考意义
  • 本文起笔于网易面试结束与腾讯一面结束后,更新的时候会有相应的时间标记
  • 若未特殊说明,本文中指代的面试均为现场面试,而非电话面试
  • 每个面试官会有不同的风格,所以不能保证本文能与你的情况相同

READ MORE →

又是一年卖萌日(X

噫,结果反应过来已经快要过去了 qaq 那啥……一下子忘记了结果福利也没准备 QAQ……嘤嘤嘤……辣鸡 cc QAQ

在 OpenShift 上安装 Tesseract

最近教务系统的验证码又切换回了旧版的随机位置 + 斜体了,这学期弄的验证码识别也算是废了。这学期采用的新验证码虽然基本每个字符都有粘连,但是由于文本的位置基本是固定的,而且也没有过多的旋转,所以简单地取字模也是可以的(虽然识别率还是非常糟糕啦 _(:3)。现在换回了旧版后反而有些麻烦了,毕竟字符的旋转还是挺难处理的。由于自己用最好的编程语言写了个简单的爬虫,所以顺带试试看做验证码识别吧。

目前网上比较有名的 OCR 应该算是 Tesseract 了吧,Python 端的验证码识别软件 pytesser 就是基于 Tesseract 的。再加上前两年的时候 OpenShift 推出了 Build-It-Yourself 的玩意,就是一个应用 gear 里不仅可以安装 OpenShift 已经提供的 cartridge,用户还可以自己编写一个一键配置脚本,让 OpenShift 导入并安装。于是便考虑在 OpenShift 的一个应用上安装个 Tesseract,至于是不是违反 TOS 什么的再说啦先玩玩再说(x

OpenShift 的添加组件界面

READ MORE →

使用 CSS 跨域获取数据

最近有领导检查,上课不能愉快地玩手机和睡觉了。为了防止不省人事的情况,这家伙把几年前在二手东买的那本《DOM 启蒙》(其实我觉得应该和同系列的另一本书一样,译名为《DOM 启示录》,这样听起来比较厉害)带到了教室。嗯,虽然一直吐槽这本书的排版错误糟蹋了这本书,以至于给我这是盗版书的感觉,不过书的质量还是不错的。

花了一上午看完了整本书,算是把 DOM 整个又复习了一遍。回到寝室的路上突然想起了书中有一章提到可以获取样式表文件的属性,于是机(la)智(ji)的我想出了这么一个奇怪的问题:能不能用 CSS 实现跨域获取数据?

READ MORE →

乱谈 Blob 与 Object URL

* 此文纯粹只是乱谈而已,基本上是只知其一不知其二,还请各位菊苣指正 _(:3

由于某些需要,需要在 JS 里创建一个 Blob(Blob 对象就是包含有只读原始数据的类文件对象)并将数据存入,然后让用户保存它。将其交给用户的方式,对 IE 有一个奇奇怪怪的 navigator.msSaveBlob(),而对大多数现代浏览器来说,可以用 URL.createObjectURL() 来生成一个以 blob: 开头的地址来指向 Blob。目前的主流浏览器都是支持的(不过很可惜,Opera (Presto) 终于在它的最后一个大版本 12 版本实现了 blob,但没有实现 Blob URLs),然而不同浏览器对 Blob 的数据大小是有限制的。这里有份 FileSaver.js 的统计数据。

Browser Constructs as Filenames Max Blob Size
Firefox 20+ Blob Yes 800 MiB
Firefox < 20 data: URI No n/a
Chrome Blob Yes 500 MiB
Chrome for Android Blob Yes 500 MiB
IE 10+ Blob Yes 600 MiB
Opera 15+ Blob Yes 500 MiB
Opera < 15 data: URI No n/a
Safari 6.1+ Blob No ?
Safari < 6 data: URI No n/a
* FileSaver.js 开发者对不支持的浏览器做了一个叫 Blob.js 的兼容脚本,但其本质应该就是将 Blob 转为 data URL

READ MORE →