利用Spek判断音频质量

官网

GitHub

Spek就是一个展示音频频谱图的小工具。东西虽小,但很好用。

之前吐槽过网易云音乐提供的很多320kbps的音乐实际上是低质量音乐转换来的。光看文件大小无从比较。而查看频谱大部分时候均能准确判断。不说废话,看图便知。

原始由正版CD抓轨得到的FLAC文件:

Original_FLAC.flac.png

将FLAC转换成320kbps的MP3:

FLAC_to_320kbps.mp3.png

将FLAC转换成190kbps的MP3:

FLAC_to_190kbps.mp3.png

将190kbps的MP3转换成320kbps的MP3:

190kbps_to_320kbps.mp3.png

将320kbps的MP3转换成FLAC

320kbps_to_FLAC.flac.png

View comments.

more ...

原来Avast这般扫描HTTPS

最近用了一台装有Avast 2015的电脑,上网时闲着没事干看了看某个网站的证书。结果发现是Avast! Web/Mail Shield Root颁发的。我感到很惊奇,在杀毒软件厂商中,就听过Symantec和COMODO有经营证书,什么时候Avast也来插上一脚了?

avast_https_1.png

没管它,继续上网。又发现了一个网站使用了Avast颁发的证书。什么时候这货变得这么流行了,难道有免费证书?放狗一搜,毛都没看到。这不对啊,一个存在于系统信任的根证书存储的CA居然没有公开卖证书,还有这么多人用,太不对头了。

avast_https_2.png

点开右下角,在隐藏的托盘图标中发现了一个Avast,啊,好像明白了什么。查看CA的证书生成日期,一问,原来和Avast的安装日期一致。再仔细翻翻Avast的设置,在网页防护设置中发现了“启用HTTPS扫描”。

avast_https_3.png

这下基本明白了,敢情这货替换了所有HTTPS网站的证书啊。

猜测原理:软件安装时,利用OpenSSL(“关于”中明确指出有使用OpenSSL库)生成根证书,然后每访问一个网站就颁发对应的证书,然后利用私匙解密传输数据进行扫描。

那么问题来了,这样真的安全吗?MITM Attack可以防范吗?没有仔细研究 ...

View comments.

more ...

TED-Joi Ito: Want to innovate? Become a "now-ist"

视频地址

Joi Ito在福岛核电站出现严重的反应堆故障时,他还在美国。他十分担心家人的安危,于是就到网络上召集了一群人建立了Safecast(平安广播),测量并收集全国各地的辐射数据。他们设计了盖革计数器,并将它们联网。三年后,他们竟然在全国有着160万个数据点,真的很令人感到震撼。

是什么让一群没有太多专业知识的业余爱好者参与到这项公民科学活动中来,答案是互联网。虽然他们是业余爱好者,但他们做到了许多NGO和政府部门做不到的事情。

在互联网出现之前,也就是Joi Ito所说的B.I.(Before Internet),人们都在尝试预测各种的事物。大家一直认为,每一件事都要事先计划好,你得有充足的储备和充分的准备才能做好事。

《数字新时代》开篇第一句话就谈到:“互联网是少数几样人类虽然亲手创建,却并不真正明了的东西之一。”互联网时代到来后,各种事物与人互相连接,一切东西都变得十分复杂,你无法预见事情的进展,你也不知道某件你需要的东西未来会不会出现。互联网的出现,让创新流程有了很大的改变。合作,推广,交流变得非常方便,创新成本大大下降,人人都有机会参与其中。Joi Ito把这称作由MBA驱动变为工程师驱动。

"Demo or Die"变成了"Deploy ...

View comments.

more ...

Mercurial教程4:分支与标签

打标签

hg tag <name>

书签

hg bookmark <bookmark_main>
hg bookmark <bookmark_dev>
hg update <bookmark_dev>
(some commits for dev)
hg update <bookmark_main>
(some commits for main)
hg merge <bookmark_dev>
hg bookmark -d <bookmark_dev>

具名分支

hg branch <main_branch>
(some commits for main)
hg branch <dev_branch>
(some commits for dev)
hg update main ...

View comments.

more ...

Mercurial教程3:修正问题与解决冲突

修正错误

hg revert <file> #回滚文件到上一次提交时的版本

回滚提交

hg rollback #前提是你还没有将这次提交推送到远端

获取当前仓库的远端仓库的路径

hg paths

在改变集中切换

hg parent #你在哪一个改变集上工作

hg update #切换到最新的改变集

hg backout -r 2 --merge #将当前改变集与改变集2合并

解决冲突

假设有两个人同时修改了某个文件,当你无法推送时,你应该先拉取。

hg heads命令你会发现当前存在有多个head

当某些冲突无法自动合并时,你得手动解决冲突,Mercurial会打开类似于KDiff3这类的工具帮助你解决问题。

View comments.

more ...