射手科技公开课第三辑 『DirectShow基础培训』

DirectShow SDK 是 Windows 上实现多媒体播放的SDK,也是最难掌握的SDK之一。即使对有一定经验的开发者来说,想要直接看懂 SPlayer 中 DirectShow 相关部分的代码,也很有难度。在这篇PPT中,我从 DirectShow 的一些基本概念开始,将 DirectShow 的逻辑流程,结合射手影音的设计结构做了一次梳理。其中还有一段特别整理至10行内的播放代码,希望可以为开发者快速进入这个领域绘制出一个相对清晰的轮廓。
在参考和扩展阅读部分,除了ffmpeg的架构比较内容之外,还有些视频格式和历史的团聊,因为是有些跑题,所以先从录音中剪去了。另外,其实在我们内部培训的过程中,还有段通过道具加强理解的游戏。遗憾的是很难通过网络PPT的形式放出,所以也不得已剪裁掉了…… XD
…继续阅读更多

射手科技公开课第二辑 『C/C++初级实务』

感谢大家的支持。射手科技公开课第二辑 『C/C++初级实务(含音频)』,也顺利完成整理,和大家见面了。这一篇比较适合接触过C/C++并写过代码,但对C++特性的正确使用方法一知半解的同学。除了重点讲解了Unicode在C/C++中的应用方法、以及模板、STL、Windows上的C++概念之外,在结尾处还有一大段关于boost和c++0x现状的分析,对此有兴趣的同学值得一听。
…继续阅读更多

射手科技公开课第一辑 『项目管理和代码规范』

射手科技成立3个月以来,我们内部已经组织了不少培训。每次内部培训我们都留有录像和录音,以便后续参与项目的同志可以快速上手。为了回馈开源社区并吸引更多同学加入软件开发行业,甚或直接参与到项目中来。一段时间以来,我们都在逐步对我们所有的培训进行整理,并筹划在Blog中开辟一个射手科技公开课专题,将培训内容通过互联网来进行分发。除了单纯的幻灯片展示外,我们的课程都配上了同步讲解录音,以更好的传达文字之外的内容。今天终于完成了第一辑。

第一辑 『项目管理和代码规范』刚刚接触项目级软件开发管理的朋友。我们从项目管理方法论展开,涵盖了项目管理方法、基于版本管理软件的分支管理,代码复查和代码复杂度问题,及最后也是我们今后会开始严格执行的代码规范(Coding Style)。
其中代码复查和代码规范也是SPlayer最近开始引入的2个重要概念:代码复查和代码规范(Coding Style)。特别是代码规范(Coding Style)的价值,在整个行业内,都被认为是越来越重要的标准。一个好的代码规范可以让项目和参与者获益匪浅。一些大型项目,甚至不只是C/C++,包括JavaScript、PHP等等,都已经在执行自己的代码规范标准。
…继续阅读更多

Ruby on Rails vs. CakePHP 横向压测

Ruby on Rails 以优雅的MVC架构闻名。这个架构如此诱人和美丽,我也是向往已久。近日正在为射手的一个新应用做系统选型,不由自主的想结束传统php的砖头式开发,而开始转向MVC架构。于是有了Rails和CakePHP 2个候选人。

不过我一直担心的是性能和部署问题。这2个话题在网上众说纷纭,很少见到客观而有说服力的论证和充分模拟实际环境下的压力测评。作为架构选型的重要决定,我们既不能人云亦云,更不可凭空臆想,一定要有充分的测试数据才能帮助做出正确的决定。

心动不如行动,立刻着手安排了仿真环境测试。第一步是设计测试方案:
压力测试的目标集中在RoR和CakePHP的效率,所以采用同样的 nginx 生产环境,但避开所有数据库操作以避免瓶颈转嫁到数据库影响结果。
代码的主要部分都是通过输出128000个4位的十进制随机数,来模拟总计约500KB的页面数据输出。调用的指令都很基本,对脚本测试来说很公平。
不过既然是虚拟高压力测试,实际环境中数据库读写等操作的时间开销应该有一个仿真替代,所以通过 Sleep 200ms 来仿真具有高度数据压力的服务端。当然我们都知道 Sleep 是没有真实的cpu开销的,所以不会影响测试结果的公平。
测试工具使用经典的ApacheBench。先后测试10并发100请求(-c 10 -n 100) 的中等压力,和200并发5000请求(-c 200 -n 5000)高压测试。
…继续阅读更多

射手影音播放器 3.6 正式发布

经过近三个月的重新整装,射手影音播放器终于初步完成了3.6的新版本。

设置面板回归经典。再次简化了大量条目。特别推出所见即所得的字幕风格。改进款式的播放列表。模板化的快捷键配置等等,都是3.6版本的新特性。不过在3.6这个版本中最夺目的变化,还是射手影音的新Logo。这是由业界知名的 eico design 特别助力设计的作品。秉承了射手的概念,而又更加细腻和时尚。作为用户体验中最直观的第一印象,这个Logo的诞生也称得上是几经波折,反复更改近十余稿,甚至有一版在即将上线前才被推翻……最终才决定了这一版。希望大家都能满意。 :D

另外值得一提的还有模板化的快捷键配置。在3.6版本中,快捷键配置改为保存在hotkey目录下的方案文件。用户可以直接用写字板打开进行编辑,并根据自己喜好自制方案模板。例如曾经习惯其他播放器快捷键方案的朋友,可以制作一套同样的快捷键方案应用在射手影音播放器上。只要将快捷键方案文件放置在Hotkey目录下,即可永久使用,甚至分享给朋友或直接发给我。快捷键方案文件的制作说明当然已经可以在射手的Wiki上找到

不过真正的改变是在成品中难以直接看到的。在幕后我们对整个项目结构树进行了梳理。为了提高开发的可扩展性,及降低对MFC平台的依赖,我们引入了WTL和STL。如果通过开发指南的链接看过3.6的代码,就会发现我们整理了项目结构树,使各个模块更容易区分。为了让模块化开发的思路更清晰,模块的耦合度也在逐步被我们降低,以更适合多人参与。同时我们也开始对新进代码实行严格的Coding Style标准,来提高代码的可读性。对一个代码已近百万行开源项目来说,这些都是确保项目健康发展的重要基础。 …继续阅读更多

射手网再次深度改版

感谢 @西乔 老师在页面设计上给予的帮助,射手网终于迎来了第二阶段的改版。这次改版的变化包括:
* 使用了加大的字体和简约的页面风格
* 大幅提升了页面的数据密度和读入速度
* 从方便用户的角度出发,简化了字幕下载流程,减少了点击操作
* 着力突出了评论和互动,可以更直观的看到对译者的支持或翻译质量品评。
* 等等

当然改版有可能会伴随一些兼容性问题,如果有发现有不能正常工作的页面功能,还请直接来信 tomasen@gmail.com。后续还会有新的规划,有兴趣一同共事的朋友,还请关注我们的招聘信息

28 comments so far, add yours