I2P 是一个匿名网络项目,它提供了一个简单的网络层供对身份敏感的程序进行安全的匿名通讯。I2P 网络是动态的分布式网络,它在设计上并不信任网络中的任何一方,其中的所有数据都经过多层加密。

简单的说I2P和Tor一样都可以作为梯子。相比Tor,I2P不需要中央服务器,属于分布式的匿名网络,更难被封杀。下面介绍如何在MacOS X下将I2P配置成本地的HTTP Proxy服务。

继续阅读 →

ImageMagickGraphicsMagick是两款强大的跨平台图片命令行工具,据说GraphicsMagick是从ImageMagick分支出来的,更稳定些.

Java平台图片处理包im4java使用JNI的方式封装了ImageMagick.NodeJs平台图片处理模块gm只需要GraphicsMagickImageMagick任选一种安装就好了.

继续阅读 →

中文文件名在不同的平台下常常会出现乱码问题.除了理清编码关系,正确的编解码外,比较简单的办法就是把中文去掉或者不用中文.

最近在做一个文件上传相关的功能,windows下的中文文件传到linux服务器上变成一串乱码文件名.于是想把文件名里的中文字符转换成拼音字母,这样相比直接使用UUID之类的做法,保留了部分语意.

继续阅读 →

Pinterest的瀑布流布局,让人眼睛一亮,看图的过程变得很享受.巧妙的改善了分页让阅读中断的问题,页面懒装载的设计也很好的解决了一次性装载图片过多页面加载缓慢的问题.国内的花瓣网,借鉴了瀑布流的设计,做得挺不错的.

继续阅读 →

对于一个给定的前景色,如何找到一个与之色差较大的背景色,使之醒目?

反色

对颜色值取反,比较简单的方法:0xFFFFFF - $color

coffeescript // coffeescript invert = (color) -> "#" + ("000000" + (0xFFFFFF ^ parseInt(color.substring(1),16)).toString(16)).slice(-6);

但是当$color = 0x808080时,$color ≈ 0xFFFFFF - $color前景色和背景色非常接近,显然取反的方法有瑕疵。

继续阅读 →

何为HTTP基本认证(HTTP Basic Auth)

在HTTP中,基本认证是一种用来允许Web浏览器,或其他客户端程序在请求时提供以用户名和口令形式的凭证。 通常我们通过浏览器去访问一个SVN代码库,浏览器会弹出一个窗口,要求输入用户名和密码。一般SVN的的Web服务端采用Apache服务器,因为Apache实现了WebDAV协议,支持HTTP协议管理SVN库。Apache里HTTP基本认证的功能是通过mod_auth_basic模块实现的。

继续阅读 →

表单的输入校验通常会使用onBlur事件,这个事件有个问题,若填完最后一个输入框时,直接点击“提交”按钮,那最后一个输入框的onBlur事件不会触发,导致校验不会执行。这种场景下,语意最贴切的就是onChange事件了,但是onChange事件在onBlur事件之后触发,所有只能用onKeyup或者onKeyPress方法来感知输入框的变化。但是如果在输入时浏览器提供自动补全的功能,那onKeyuponKeyPress事件不会被触发。

继续阅读 →

一直在做web开发,对HTTP协议还算熟悉,但是这本手册类的砖头书还是很吸引我,看了两章觉得还不错,对于巩固基础很有帮助,最近感觉记性不如从前,烂笔头越来越重要了。

第一章 HTTP概述

MIME

媒体类型MIME(Multipurpose Internet Mail Extension)最初设计是为了解决不同的电子邮件系统之间搬移报文时存在的问题。

继续阅读 →

linux下部署的jetty,隔大哥一周时间就会访问出错,或者出现web应用的目录列表。很长一段时间都被这个问题困扰着,由于是个演示系统,持续运行的要求不高,无奈配置了一个cron,定时重启。

最近发现原来linux下有一个叫做tmpwatch的命令,而且默认配置成了cron.daily。每日执行一次。

继续阅读 →

Osgi和Maven都分别提供了依赖管理的机制,在Osgi世界可以被依赖的单元称之为Bundle(一种特殊格式的jar),在Maven世界称之为POM。各自的领域中都是优雅的技术,但是当两者结合在一起,就不那么美好了。

tycho让plugin和maven结合在一起

tycho可以让一个eclipse plugin项目变成一个maven项目,把maven的自动构建和自动测试的优势带到了plugin项目。但是maven的另一个优势依赖管理并没有能够和plugin项目结合。

继续阅读 →