WEB 十二月 31, 2015

使用 Clear Key 加密 MP4 视频并播放

文章字数 15k 阅读约需 14 mins.

使用 HTML5 技术播放视频简单方便,但同时也将视频源直接暴露了出去。针对一些需要保护以避免用户随意下载的视频,有没有鱼和熊掌兼得之策呢?

在现代浏览器中,使用 HTML5 技术在线播放视频已不是难...

查看全文

WEB 十二月 31, 2015

使用 Clear Key 加密 MP4 视频并播放

文章字数 15k 阅读约需 14 mins.

使用 HTML5 技术播放视频简单方便,但同时也将视频源直接暴露了出去。针对一些需要保护以避免用户随意下载的视频,有没有鱼和熊掌兼得之策呢?

在现代浏览器中,使用 HTML5 技术在线播放视频已不是难事,只需浏览器支持和视频格式兼容即可(参见 使用 HTML5 技术播放视频)。<video> 标签带给我们便利的同时,也将视频源地址直接暴露了出去。虽然 开放 是互联网精神之一,但总会有些内容需要限制传播或独家提供。在 HTML5 视频播放技术中,有没有一些可用的版权保护策略呢?

既然 ...

查看全文

WEB 十二月 11, 2015

使用 HTML5 技术播放视频

文章字数 21k 阅读约需 19 mins.

HTML5 定义了通过 video 元素在网页中嵌入视频的标准方式。尽管这种方式仍在不断进化中,也暂时不能做到在任何浏览器下都运转良好,但现代浏览器对其支持的趋势及程度还是很值得期待的,即便在一些不支持的环境下,也有替代方案可供选择。本文主要基于 Dive Into HTML5 # Video on the Web,并对一些内容有更新和补充。

随着 HTML5 标准 的定稿以及在线视频巨头 YouTube2015 年初宣布默认使用 HTML5 视频播放器,主流的在线视频播放技术正在逐步由 ...

查看全文

BOOK 十二月 01, 2015

《把时间当作朋友》书摘

文章字数 23k 阅读约需 21 mins.

  • Start at: 2015-09-02
  • End at: 2015-10-21
  • Process: 270/270
  • 所有人共有的弱点:懒惰
  • “既勤奋又懒惰”的怪异现象来自于他们的“时间压力”感受。“没有时间了”,或者“时间不够了”的感受和恐惧,使得他们超乎寻常地勤奋,哪怕是虚假的“勤奋”,恨不能废寝忘食。而同样的感受,也使得他们终日寻找捷径,美其名曰“提高效率”,而实际上却想着“最好不费吹灰之力” —— 无论哪一种都注定是不现实的,因为,已经“没有时间了” —— 这却是冷冰冰的现实

了解心...

查看全文

JAVASCRIPT 十一月 26, 2015

一步一步将 d3.js Calendar View 转变成 GitHub Contributions

文章字数 9.8k 阅读约需 9 mins.

GitHub Contributions 日历热图表述力强,容易上瘾,并且引发了多种玩法:涂满或涂成名字、万圣节颜色……,让我们使用 d3.js 提供的 Calendar View 示例,一步一步将其修改成 GitHub 的样式,Let’s go!

先将 d3.js 提供的 Calendar View 做一个 快照,以免示例代码更新对本文中的修改造成影响。

修改前的文件为:

修改后文件为:

最终效果见上面动态图。

暂时先只保...

查看全文

CLOUD 十一月 12, 2015

docker-machine 设置代理

文章字数 1.3k 阅读约需 1 mins.

随着 Docker 1.8 的发布,docker-machine 将 boot2docker 封装了起来。docker-machine 在需要通过代理访问网络时需要特殊的配置,配置方式如下:

docker-machine 实际是运行在 OS X 上的 VirtualBox 虚拟机内,将之前的 boot2docker 进行了封装,配置代理的方式与之前在 boot2docker 中的设置方式不同。具体设置步骤为:

# ssh 到 default 虚拟机
$ docker-machine ssh default...
查看全文

SCRIPT 十月 28, 2015

使用 AppleScript 切换 OSX 鼠标/触控板 滚动方向

文章字数 1.7k 阅读约需 2 mins.

OSX 的鼠标和触控板共享相同的滚动方向设置。假设这样一个场景:在工作时给 MacBook 接上鼠标,休闲时直接使用触控板,通过系统偏好设置界面来调整滚动方向在切换频繁时很麻烦且低效,有没有更便捷的方式?

使用 AppleScript 脚本可以通过命令行方式来切换滚动方向。

OS X EI Capitan 为例,其他系统版本脚本可能会有差异

tell application "System Preferences"
    set current pane to pane "...
查看全文

JAVA 十月 22, 2015

在 Spring 项目中配置多个 property-placeholder

文章字数 898 阅读约需 1 mins.

使用 context:property-placeholder 的默认配置,在 Spring 项目中设置多处时会遇到其中某些配置的占位符不能正确替换的情况,如何解决?

提供两个方案:

  1. 只设置一处 context:property-placeholder

     <context:property-placeholder location="classpath*:path/to/*.properties" />

    假设你的 profile 是通过 .properties...

查看全文

JAVA 十月 14, 2015

调试跟进 tomcat 源码

文章字数 2.3k 阅读约需 2 mins.

调试 web 应用时,有时需要跟进 tomcat 的源码。下载 tomcat 源码并编译运行是一种方式,不过太麻烦,有没有简单点的办法呢?

给项目加上 tomcat 的 jar 包作为运行时依赖,并附加源码,就可以在调试的时候跟进 tomcat 的源码了。

Gradletomcat 7.0.63 为例,只需在 build.gradledependencies 中加入如下代码即可:

depencencies {
    def tomcatVer = '7.0.63'
    runtime...
查看全文

NOSQL 十月 27, 2014

MongoDB GridFS 读写性能提升关键点

文章字数 1.3k 阅读约需 1 mins.

提升 GridFS 读写性能的关键,就在于分散对 GridFS 的读写请求至集群内的所有分片上,即不能使用 {files_id:1} 来分片。这与官方文档内容完全相悖的矛盾如何能调和呢?

MongoDB(v2.6 current) 官方文档中关于 Shard GridFS Data Store 有如下说明:

IMPORTANT

{ files_id : 1 , n : 1 } and { files_id : 1 } are the only supported shard keys for ...

查看全文
0%