Jon

Jon
使用 video.js 开发 HTML5 视频页面

video.js

使用 video.js 开发 HTML5 视频页面

使用 video.js 简单几步编写一个可以在微信、QQ内置浏览器中正常工作的 HTML5 视频播放器。 HTML5 <video> 标签看似简单,但在不同设备上使用时却问题不断,原因是很多设备强制使用自身的视频播放器来播放 HTML5 视频。使用第三方组件 video.js 可以在一定程度上克服这个问题。 初始化 video.js 编写 HTML 页面: <head> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title></title&

By Jon

jsp

Spring MVC jsp 嵌入子页面的两种方式

使用 jsp 渲染页面时,可以在页面中嵌入(include)其他 jsp 页面。嵌入子页面有两种方式: * 静态嵌入:<% @include file="include.jsp" %> * 动态嵌入:<jsp:include page="include.jsp" /> 静态嵌入 <% @include file="include.jsp" %>。 静态嵌入支持 jsp、html、xml 以及纯文本。 静态嵌入在编译时完成,相当于直接将子页面的文本插入到 include 标签所在的位置。子页面可直接使用父页面中的变量。 动态嵌入 <jsp:

By Jon

JavaScript

几款 JavaScript 对话框组件

Vex.js * 样式简洁 * 动画流畅 大小只有 7KB alertify.js 动画效果比 vex 更为精炼。 已于 2014 年 3 月停止更新。 Bootbox.js Bootstrap modals made easy. 可订制能力十分强大,可以直接在对话框中添加 HTML 标签。 基于 Bootstrap 框架,与 bootstrap 风格十分统一。如果网站本身采用 Bootstrap 作为前端框架,这款对话框组件最为合适。 与 bootstrap 一样,感觉上样式较为笨重,更适合桌面浏览,不适合移动端。而且样式风格过于明显,一眼就能看出来是基于 Bootstrap 组件。 leanModal.js 体积小 样式简洁适中,

By Jon

Mac

那些好用的 Mac App

入手 Mac Book 也有小半年了,经过最近一段时间的“重度”使用,基本上摸清楚 OS X 的脾气,整体上比 Windows 好用太多。 文本编辑工具 * Sublime Text 3:文本编辑 * MacDown:Markdown 编辑器,Mou 的复刻版。Mou 既不开源,又不更新,现在出来了个开源的复刻版,Mou 的源作者也急了,又是拍卖又是众筹的,不知道最后拿出一个什么样的版本来交差。(update: 现在是2016年1月,Mou 众筹交付的时间早就过了,看来已经烂尾) * Ulysses:写长文的利器。支持多文档管理;支持 Markdown。 集成开发环境(IDE) * PyCharm 和 IntelliJ Idea:用来写 Python

By Jon

Python

Django 1.7 render() 函数传递 request 对象导致 Value Error

升级到 Django 1.7之后发现打开任何页面都会出现 Value Error。 分析调用栈后发现,导致错误的原因是 render() 函数: def index(request): context = RequestContext(request, {}) return render(request, 'index.html', context) # 这一行第三个参数导致 Value Error Django 1.7 中的 render() 函数会自动将RequestContext加入到上下文中,因此,没有必要不能再将 RequestContext 作为参数传入 render() 函数。 虽然上面代码中 render() 的写法来自于 Django 官方文档中的例子,但实际上,就算在1.6版本中这种写法也是没有必要的(第一个参数已经是 request,第三个参数

By Jon

中文排版测试

看到简书上文章的排版,很是震惊,给自己的小站也弄了个支持 typo.css 的主题。 示例 用 typo.css 官方示例看一下效果: 中文排版:论语学而篇第一 作者:孔子( 前551年9月28日-前479年4月11日 ) 本篇引语 《学而》是《论语》第一篇的篇名。《论语》中各篇一般都是以第一章的前二三个字作为该篇的篇名。《学而》一篇包括16章,内容涉及诸多方面。其中重点是「吾日三省吾身」;「节用而爱人,使民以时」;「礼之用,和为贵」以及仁、孝、信等道德范畴。 原文 子曰:「学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知,而不愠,不亦君子乎?」 译文 孔子说:「学了又时常温习和练习,不是很愉快吗?有志同道合的人从远方来,

By Jon

设计模式

《Head First 设计模式》笔记

在书架上摆了两年多了,以前不是很喜欢Java,所以一直没动这本书。最近看了点 Objective-C 代码,结果顿悟了,超脱了语言之争,拿这本书复习一遍设计模式。(还有什么语言比 Objective-C 更啰嗦吗?但是Objective-C的动态特性写起来却十分顺手。) update:比 Objective-C 更啰嗦的语言是…………Swift! Stragety 策略模式的思想就是“面向接口“编程。策略模式在各类OO语言中随处可见。通过接口,规定了某个对象所需要满足的”协议“,子类通过为接口中声明的方法提供具体实现来完成具体行为。 C++语言中策略模式需要通过……。Java 与 C# 更是可以直接定义 interface ,说明这些语言在设计时就已经贯彻了面向接口编程的思想。 Observer 观察者模式。 Decorator 装饰者模式。 Factory 工厂模式。 作为 GISer,其实很早就接触过工厂模式。ArcGIS Engine for .NET 中大量使用工厂模式,来处理

By Jon

GIS

Turf.js 功能概览

Mapbox 是一个总能带来惊喜的公司,来自他们的新年礼物是一个全新的 JavaScript 空间分析库:Turf。 Our assault on traditional GIS begins now. -- @Mapbox 浏览器端 JavaScript 空间分析 Mapbox 在博客中称,Turf 实现了常用的空间分析操作,例如生成缓冲区、计算等高线,建立 TIN 等等。以往只属于桌面 GIS 的分析功能,已经可以在浏览器中使用。 Turf 使用 JavaScript 编写,通过 npm 进行包管理。良好的模块化设计使得 Turf 不仅可用于浏览器端,还可以通过 Node.js 在服务器端使用。(感受到了 Node.js 社区一直提倡的前端后台一体化) Turf

By Jon

《Python 基础教程》笔记

第1章 幂运算符:**,不是^ 长整数:在整数结尾加上L,如:100000000000000000000L Python 3中,print 从语句变成了函数,print 42 要写成 print (42) 在UNIX系统下,在脚本开头加上 #!/usr/bin/env python 可以让脚本像普通程序一样执行,不需要显式地使用Python解释器 Python 3.0 已不再使用反引号,应该使用 repr() 函数 input 和 raw_input:input 需要用户输入合法的 Python 表达式。Python 3.0 中,raw_input 被重新命名为 input。 原始字符串 r’c:

By Jon

arc

在自己的服务器上安装 Hacker News

著名同性交友网站 Hacker News 是 Scheme 语言的示例应用,安装 Scheme 语言即可获得 Hacker News 的源码。一般情况下,可以安装 MzScheme。 碰到 MzScheme 安装有问题的话,可以使用将 GitHub 上的 arclanguage/anarki](https://github.com/arclanguage/anarki) 目 clone 到本地,之后按下面的步骤安装解释器、配置参数: 1. sudo apt-get install racket 2. 进入 anarki 项目根目录。 3. mkdir www 4. echo __username__ > www/

By Jon

GIS

Tilemill + PostGIS + Mapnik 获得自定义样式的 OSM 地图切片

注:OSM 默认数据集中的国家和地区并不正确,需要注意辨别改正。 最近的项目需要用OpenStreetMap数据生成一个自定义样式的切片底图,尝试了一段时间,发现可以用 Tilemill 读取数据并生成地图样式,再用 Mapnik 进行地图切片。切片制作使用 Windows 平台,用到的工具有: * python 2.7 * Tilemill * PostgreSQL 9.3 + PostGIS 2.1 * Mapnik 2.2 * generate_tiles.py 脚本(可以从 OSM Mapnik SVN下载) 下载 OSM 数据并导入到 PostGIS 从 bbbike 选择下载某个区域的 OSM 数据,或者直接从metro extracts下载整个国家的数据。 新建一个 PostGIS

By Jon

GIS

GeoServer 发布大型影像数据

手头有一个 8.7GB 的 GeoTiff 高清航空影像,需要用 GeoServer 发布成地图服务。使用默认的 GeoTiff 方式时,WMS服务效率非常低,已经影响正常使用。为了改善地图服务的效率,可以为影像建立金字塔,再通过 GeoServer 的 Image Pyramid 扩展来发布。 用 FWTools 建立影像金字塔 首先,下载 FWTools 并安装。安装完成后需要修改 bin 目录下的gdal_retile.py(Windows 版),用编辑器打开bin/gdal_retile.py,把第273行修改成: print("Building internal Index for %d tile(s)

By Jon