博文

目前显示的是 2017的博文

Wav文件格式解析

参考资料: https://en.wikipedia.org/wiki/WAV http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html http://www.lightlink.com/tjweber/StripWav/Canon.html Wav是RIFF的一种音频格式,所以 开始的4个字节一定是RIFF这4个char 接下来4个字节是接下来的文件的总长度,加上之前的RIFF占了8字节,所以文件目测总长度应该是这个字节的数值+8,在Wav中所有的数值类的值都是int,字节序为little endian 接下来4个字节是WAVE这个4个Char 接下来4个字节是fmt 这 4 个Char,是的,是4个,后面有个空格别漏了         但是,也有例外,如果这个地方出现的不是fmt 这个字符串,那么可能还会有别的信息继续被放在了文件头,但是它一定是如下的格式:         4个字节的信息头名称,我这里见过的有(JUNK和FAKE)         4个字节的附加信息头长度(int)         对应长度的chunk信息         在这之后一定还会出现fmt 这4个char的组合,即回到正轨 接下来4个字节是整个Wave文件 fmt头的长度 , 类型是int,可选择的是16、18或者40 接下来4个字节是WAVE文件的编码方式,类型是int,一般来说是1、3、6、7或者65534,1代表PCM,3代表IEEE浮点,6代表8-bit ITU-T G.711 A-law,8代表8-bit ITU-T G.711 μ-law,65534代表在后面的subFormat中定义,除了1之外,后面的都没有见过实例,也无法得知它的实际是个什么样子了,PCM也是用得最多的 接下来2个字节是音频的声道数量,类型是short,1=单声道,2=stereo=立体声,其他多声道的可能也...

CentOS7中自动清理/tmp文件夹的策略

    CentOS7中设置了target来负责每日定时清理/tmp文件夹,这个target的名字是:systemd-tmpfiles-clean.timer(在CentOS6中负责干这个的是 /etc/cron.daily/tmpwatch)     默认的策略是Boot之后15分钟后清空它和每周清理1天未活动的文件     可以通过这个命令查看每次的执行结果:    journalctl  -u systemd-tmpfiles-clean

远程记录OpenWRT日志

默认的OpenWRT日志放在/tmp/log下,这样有个问题就是每次重启就会丢失全部的日志,于是公司的路由器每次重启之后连为什么重启都不知道 于是就想办法把日志迁移出来,好在OpenWRT本身就附带了远程日志打印功能,于是直接在内网中开一个rsyslog服务器就可以了 在/etc/rsyslog.d/下新建一个router.conf 内容如下: module(load="imtcp") module(load="imudp") input(type="imudp"      port="514"      ruleset="routerSet") input(type="imtcp"      port="514"      ruleset="routerSet") # rsyslog RuleSets ruleset(name="routerSet") {     action(type="omfile"         File="/var/log/router.log") } (这个配置文件可以在 http://www.rsyslog.com/rsyslog-configuration-builder/ 生成) 接下来启动一下rsyslog服务就可以了 systemctl restart rsyslog 在OpenWRT端需要做的工作: vim /etc/config/system 在config system下增加这么几行         option log_remote '1'         option log_ip '192.168.0.13'  # 你的日志i服务器内网IP         option log_port '514'         option log_size '0'  # 如果不加这个可能会丢失部...

2016读书总结

2016感觉干了不少的事情,做了不少的尝试,但是感觉下笔写点总结似乎没太多可以写的,于是就总结一下看了些什么书吧 技术类 《Java编程思想(第四版)》     看第二遍了,不过感觉就算是看第二遍也没看得很深入,这个东西毕竟不能光靠看和背就能融会贯通的 《微服务设计》     感觉书的内容比较宏观,不涉及细节的可以先去补习一下微服务的基础知识再来看,这书是给设计人员做宏观指导的,并不是一本讲具体实践的书 《Java 8实战》     非常实用的一本书,相比更多的理论,这本书相当的务实,介绍了许多Java8的新特性与应用场景,其实偶尔也充满了作者对Java8一些未实现功能的怨念,不过还是非常值得看的书 《大型分布式网站架构设计与实践》     感觉是一本什么都写到了的一本书,从怎么用tailf查日志说到互联网安全方面,感觉无所不包的样子,但是并不是想象中的那么浅薄,只能说更加偏向于实用性多一些,这会让很多人批判作者没深度吧,其实真正来深度的又看不懂选择不看(比如TAOCP),还不如看点实用的能用得上的 《The Swift Programming language》     官方教程,为了给我的iPhone写个软件而花了三天时间看完了,被其巨复杂的字符串操作所震惊了,也对其optical的实用性所惊叹了 《Java Web高级编程》     在读中,虽然说是高级编程,感觉却很基础,才刚刚看完JSP的部分,就当是系统回顾吧。 《Java 性能权威指南》     很新的一本书,针对的Java版本很新,所以也相当的具有实用性,不过更多的是立足于性能测试员的视角 《Python源代码剖析》     基本上是Python国内最强的一本书了,花了很久终于读完了,不过也只是囫囵吞枣而已,据说要针对Python3.6出个新版本了,值得期待一下 非技术类 今年的杂书基本上都是在Kindle上看的了,除了《猎魔人》这种没有电子版的书之外了 《大国大城》     很有意思的一本书,这年头谈论中国经济和发展现状的书我真是读得少,不得不说这本书提起了我对看这类书的兴趣 《...