让 IE 与 Firefox 支持 WebP 图像格式

写了段 PHP 代码,自动从向日葵 8 号卫星的网站上抓取高清图并合成一张图。获取卫星照片的方法可以在这里看到。但是…… 最终合成的 4d 分辨率(2200x2200)的 PNG 图片有 7 MB 多大,而且中美网络又频繁抽风,实际都要 1 分钟左右才能从我的服务器上加载完这张图片。太慢了!Google 提供了一种解决方案:WebP 图片格式。这种图片格式以无损压缩下极高的压缩比而著名。把 7 MB 的地球照片 PNG 转换成 WebP,最终的文件大小是:700 KB 不到。对于一张分辨率 2200x2200 的图片来说,这个大小已经非常小了。但是…… 以 IE 和 Firefox 为首的一些浏览器不支持 WebP,在这些浏览器上,WebP 图片是显示不出来的。所以,我们要在本地端加点处理,把 WebP 转换成浏览器支持的图像格式。WebPJS 是一个在浏览器中完成上述转换的 Javascript 代码。它根据文件扩展名 **(很重要!)** 识别浏览器加载的 WebP 图像,并将它们转换成 PNG 显示在浏览器中。要使用它,...
插图

OpenVZ 配置 Hurricane Electric IPv6 隧道,开启整个地址池并与原生 IPv6 共同使用

AlphaRacks 是一个物美价廉的主机商,1CPU、512M 内存、10G 硬盘的 VPS 只要 9.9 美元 / 年。但是这家主机商在 IPv6 地址上比较抠,需要用户说明用 IPv6 的理由,据说最多给 20 个?但是不一定给满 20 个,比如我告诉主机商要用 IPv6 地址给仅支持 IPv6 的用户提供服务,主机商回复:我们已经为你的 VPS 增加了 1 个 IPv6 地址。一个 IPv6 自然是不够我折腾的。好在美国 Hurricane Electric 公司提供 IPv6 隧道服务,为每个用户提供 5 个隧道,每个隧道有 1 个 / 64 地址池,并可以一键开通 1 个 / 48 地址池。如此良心的服务,要在 OpenVZ 的 VPS 上使用却还要费一番周折。因为 OpenVZ 的内核版本往往是 2.6.32,2.6.32 的老内核不原生支持隧道功能,而支持的新版 3.10 的内核刚刚发布,很多主机商没有更新。在 OpenVZ 上开启 HE 隧道我们需要借助一个第三方小程序,...
插图

用 Canvas-Nest.js 加上酷炫的网页背景

今天在 进阶博客 看到了一个酷炫的网页背景效果,背景上会有动态的线组合成三角形等各种图形,并且会对用户鼠标移动作出响应。要在自己的网站上加入这个效果,很简单,在 </body> 之前加入这段代码:<script src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"></script>刷新网页,效果就有了。如果没有看到效果,请检查你加的位置,这段代码不能加在 <head> 和 </head> 之间!但这样就产生了一个问题:在服务器到用户速度较慢的时候(比如晚上中美链路抽风的时候),用户浏览器在加载到上面这段代码所在的位置,也就是页面底部之前,无法得知它要加载这个 Javascript。也就是说,这段 Javascript 要在页面加载完毕后才会开始下载,而这会显著拖慢网页的总体加载速度。所以,我们要在开头 <head> 和 </head> 之间再加入如下代码:<link href="//cdn.bootcss.com/canvas-nest.js/1.0....

在 Telnet 中显示有趣的东西

Telnet 是 1969 年发布的最古老的网络协议之一,却经久不衰,因为它实现简单,也可以用来实现一些有趣的用途。网络上有人开发出可以在 Telnet 终端中观看的彩虹猫(Nyancat),还有在 Telnet 中观看的星球大战。在你的终端中输入以下内容,就可以看到 ASCII 字符版星球大战:(Windows 7 及以上用户需要先到控制面板 - 程序与功能 - 添加删除 Windows 功能里选中 Telnet 客户端功能才能使用)telnet towel.blinkenlights.nl输入以下内容就可以看到彩虹猫:telnet nyancat.dakko.us我们也可以在自己的服务器上建立一个类似的 Telnet 服务,让它显示自己定义的内容。我们以在终端中显示黑客帝国数字雨的 CMatrix 软件为例,说明如何建立这个服务。登陆到你的 Debian 服务器上,输入下面的命令:apt-get install openbsd-inetd telnetd cmatrix并等待安装完成。创建 /opt/cmatrix.sh ,输入如下内容:#!/bin/shcmatrix -abu 2编辑 /etc/inetd.conf ,...

在 Leaflet 中合并使用谷歌中国卫星图和高德地图

前几天用 Leaflet 这个 Javascript 模块制作了一个需要用到地图的项目,但是在寻找地图数据源时发现,高德的卫星图在中国大陆以外地区无法放大到较高精度,显示该区域无卫星图;而谷歌中国的卫星图上没有街道信息。经过一些研究,我发现高德的卫星图分为两个图层:卫星图层和街道图层。而且,高德和谷歌中国的地图都使用了天朝的火星坐标系加密,也就是两者的地图可以直接叠加而不会错位。将高德的街道层和谷歌中国的卫星层合并,就有了一张既能高精度放大、又有街道信息的电子地图。演示: var map = L.map("map", { center: [39.904983,116.427287], zoom: 3, zoomControl: false }).setMaxBounds([[-90,0],[90,360]]); var mapLayers = { '谷歌高德杂交/卫星':L.layerGroup([ L.tileLayer('//www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}',...
插图

启用 Bash 的彩色显示

Linux 默认的 Bash 命令行总是黑底白字,有些单调。但我们可以通过加几行命令,让 Bash 以彩色显示信息,不仅美观,而且可以突出重点内容。编辑你的 Home 目录下的.profile 文件:nano ~/.profile```在文件末尾加上:export LS_OPTIONS='--color=auto'eval "`dircolors`"alias ls='ls $LS_OPTIONS'alias ll='ls $LS_OPTIONS -l'alias l='ls $LS_OPTIONS -lA'PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]@\[\033[01;36m\]\h\[\033[00m\]:[\[\033[01;34m\]\w\[\033[00m\]]\$ ' ```保存退出,然后重进 Bash 或者输入:source ~/.bashrc```就可以看到彩色的命令行了。...

一个屏蔽莆田系医院的 Hosts

1980年代,位于东庄镇的陈德良通过自己研制的偏方,在本地成为著名的皮肤病(疥疮)游医,之后他招收门徒,开始向全国进军。他们最初在电线杆上张贴性病、皮肤病等小广告宣传,在中国大陆各地赚到「第一桶金」,后来改在电视与报纸刊登广告。主要治疗项目有性病、鼻炎、狐臭、肝炎、风湿、皮肤病等。莆田系最主要的势力是由詹氏家族、林氏家族、陈系家族和黄氏家族四个家族组成。这些游医最初采取找医院承包科室,将不合法的莆田系开始走向合法化与隐秘连锁的规模化发展;并用重金聘请公立医院医生。1998年,被外界称为「中国打假第一人」的王海,对备受社会诟病的性病游医展开调查,并发现中国全国所有性病游医几乎均来自福建省莆田市东庄镇。尽管由王海掀起的打击性病游医风波,对莆田系的扩张造成沉重打击,但莆田系发展却并没因此结束,相反,他们通过转型升级获得进一步发展。2000年,国务院发布指导意见,...
插图

用 PHP 和 JavaScript 显示地球卫星照片

向日葵 8 号气象卫星是日本宇宙航空研究开发机构设计制造的向日葵系列卫星之一,重约 3500 公斤,设计寿命 15 年以上。该卫星于 2014 年 10 月 7 日由 H2A 火箭搭载发射成功,主要用于监测暴雨云团、台风动向以及持续喷发活动的火山等防灾领域。—— 百度百科日本发射这颗卫星后,不仅用它防灾,还将它拍摄的地球照片发布在互联网上,供爱好者下载。照片发布的官方网站是 http://himawari8.nict.go.jp/,每到整 10 分钟更新(比如 9:30,9:40……),同时有 30 分钟延迟(你 10:00 看到的照片实际上是 9:30 拍的)。接下来,我们就要研究一下如何获取这些卫星照片了。通过浏览器的访问监测功能,我们可以看到请求的地址:(点击看大图)在本例中,请求地址是 http://himawari8-dl.nict.go.jp/himawari8/img/D531106/2d/550/2016/06/14/140000_0_1.png。地址中有以下几个重要的参数:2d代表图像清晰度,2d 就是将图像分成 2x2 的 550px x 550px 的图片,...

解决 OpenSSH 登录缓慢的方法

今天连接 Azure 中国版虚拟机时发现登录反应非常慢,在网络环境良好的情况下要等上十几秒才出现输入密码的提示。经过 Google 查询,发现是 DNS 反向解析的问题。OpenSSH 会在你登录时把你的 IP 拿去做反向解析,从而判断你的 IP 在不在系统的黑名单内。但是中国电信不对民用网络的 IP 做反向解析,导致 OpenSSH 要等待解析结果直到超时,然后才建立连接。解决方法就是把反向解析关掉就行。sudo nano /etc/ssh/sshd_config# 在文件末尾加上「UseDNS no」,关闭文件sudo service ssh restart如果这样设置后还是连接缓慢,可以尝试如下设置:sudo nano /etc/ssh/sshd_config# 在文件末尾加上「GSSAPIAuthentication no」,关闭文件sudo service ssh restart如此设置之后,SSH 就可以在 2 秒内连通,相比之前十几秒的时间相比,速度大有改观。...

在 Ubuntu Firefox 上使用最新版本的 Flash

早在一年前,Adobe 公司停止了其 Flash 插件在 Linux 系统下的新功能开发,只提供安全更新。Linux 版 Flash 的版本号也停留在了 11.2,而最新的 Windows 版 Flash 已经更新到了 15.0 版本。不过,Adobe 又和 Google 合作开发了 Pepper Flash,集成在 Chrome 浏览器中,而 Chrome 以及其内置的 Pepper Flash 一直在 Linux 上保持最新。那么问题来了,Pepper Flash 是 Chrome 独占的,如何让 Firefox 也用上呢?有人希望 Mozilla 来主动支持 Pepper Flash,但是被 Firefox 开发组否决了:https://bugzilla.mozilla.org/show_bug.cgi?id=729481于是国外网友 Rinat Ibragimov 开发了一款插件,支持 Firefox 使用 Pepper Flash。这款插件虽然还不完善(硬件加速功能不稳定,部分功能缺失),但是基本功能已经可以正常使用。在 Ubuntu 下,可以通过添加 WebUpd8 的 PPA 源来安装这款软件:sudo add-apt-repository ppa:...