avatar1 avatar
@{[{user.name}]}
希腊·圣域
since February 1500
柳宗元的江雪 20 May 2017 13:00:00

千山鸟飞绝
万径人踪灭
孤舟蓑笠翁
独钓寒江雪


太喜欢这首五言绝句了,每次都在脑海里描绘一下诗中所描绘那种空旷的境地,下着雪,然后有点呼呼的北风,空旷的被雪覆盖的山岭以及偶尔传来的鸟叫声,有一个老翁独自坐在我岸边披着草衣带着斗笠在江边垂钓...୧(˶‾᷄ ⁻̫ ‾᷅˵)୨ 哇..这种场景实在太美妙了。

可能跟我喜欢下雪天有关系吧,因为一些原因,以及好多年没有看到过雪了,今年又将注定是看不到雪的一年,唉 ( ⸝⸝⸝°_°⸝⸝⸝ ), 希望有机会能够尽快再看到下雪天吧。。。 保佑┌|°э°|┘

先吐个槽୧(˶‾᷄ ⁻̫ ‾᷅˵)୨

LetsEncrypt是由ISRG互联网安全研究小组发起的一个免费、开发、自动化的证书颁发机构,所以安全性毋庸置疑,不像某些毫无节操的证书签发机构或者服务商通公然发放伪造证书,给某些原本毫无信用的垃圾机构的无耻行径添贡献厚厚的一笔,有句话怎么说来着,貌似叫弄巧成拙...

LetsEncrypt现在提供了SSL证书自动授权和管理的一个客户端,并且提供的详细的步骤等等是可以非常容易的安装和管理,不过我用的是Nginx做反向代理服务器,按照官网的nginx配置方法怎么都不成功,在阅读了大量相关文章后终于成功配置成功,一下是详细的配置步骤。

环境信息

服务器:   ubuntu 14.04/16.04
反向代理: Nginx 
Ghost:   0.11.8

安装certbot

可以参考certbot的官方网站

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot 

第一次配置nginx

通过certbot自动授权证书的时候certbot服务器需要验证服务器的有效性,该步骤即为配置nginx以便certbot服务器可以通过验证。

首先备份你nginx的配置文件

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_backup

编辑default文件,添加如下信息, 把yourdomain.com/www.yourdomain.com换成你自己的域名。

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location ~ /.well-known {
        allow all;
    }
}

重启nginx

service nginx restart

certbot自动验证和签发SSL数字签名

确保你的服务器可以通过80端口访问。同样yourdomain.com和www.yourdomain.com换成你自己的域名。

如果第一次使用certbot命令时推荐在模拟环境模式运行,certbot现在加入了请求频率限制,一个小时内最多重试5次,如果5次全部失败则要等一个小时后才可以进行下一次请求,在模拟环境下测试通过后再取消模拟模式。启用模拟模式非常简单在certbot后添加

晋太元中,武陵人,捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之。复前行,欲穷其林。

林尽水源,便得一山。山有小口,髣髴若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑、竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人;黄发、垂髫,并怡然自乐。

见渔人,乃大惊,问所从来。具答之。便要还家,设酒, 杀鸡, 作食。村中闻有此人,咸来问讯。自云:先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏、晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”

既出,得其船,便扶向路,处处志之。及郡下,诣太守, 说如此。太守即遣人随其往,寻向所志,遂迷, 不复得路。
南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。


今天不经意间看到了陶渊明的这篇诗记,每次读完都内牛满面,描述的场景实在是太美好了(╥﹏╥)。内心一直有个阴谋论,为什么这个武陵人出来一路做记号最后却没有再找到回去的路,我想是因为里面的人对他说:不足为外人道也。然后他走后并不放心这个武陵人是否守信用就派人跟踪他,发现他留记号后就一边跟踪一边擦除记号,一边伪造记号,所以.... ╮(′~‵〞)╭

使用过iReport做过报表或者各种report的同学都知道,iReport对中文的支持非常差,可以说不经过任何配置的话是不支持中文的。因为iReport是基于iText生产PDF的,所以最简单的做法是导入iTextAsian包来解决中文文问题,但是这个包只支持宋体,在现在支持clearType的中文字体那么多,比如微软雅黑,如果可以随意更换自己喜好的字体就完美了。经过Kido的不断测试,终于找到一个简单可行的随意更换字体的办法。

  • 创建一个font文件夹,这个文件夹的位置可以不需要在工程目录下,比如可以在C盘下创建一个 C:/font, 如果是Mac则可以创建于当前用户目录下,比如:~/font

  • 添加刚刚创建的文件夹到你的iReport中的classpath中,如图

![](/content/images/2016/11/1.png)
  • 下载你想要添加的中文字体,注意,iReport只支持.ttf格式的字体,下载时请留意,字体一般有两个文件,一个对应普通字体另一个粗体。

  • 将下载好的字体保存到font文件夹,注意:不要包含子目录,直接将字体文件拷贝到font根目录。

  • 安装字体到iReport,如下图

![](/content/images/2016/11/5.1.png)

![](/content/images/2016/11/5.2.png)

![](/content/images/2016/11/5.3.png)
* 完成上述几步就可以在iReport中使用中文字体了,使用时跟iReport中默认的英文字体一样,不需要设置任何地方可直接使用,PDF font name, embeded等等统统不要设置。
  • 如果你想在Java中调用iReport动态生成PDF报告,那么你还需要将刚刚添加到iReport的字体打包成jar并添加到Java工程的classpath中,具体打包方法如图:
![](/content/images/2016/11/Screen-Shot-2016-11-14-at-10.21.53-AM.png)
Kido成功用以上方法随意的切换了中文字体,总结一记录一下吧,有需要的同学也可以参考一下。
JS中只有一种数字类型: Number

不像其他的编程语言,JS中的数字没有 int, long, float, double等等,所有的数字类型都被存储为64位字节中。

精度 Precision
console.log(999999999999999); 
//打印出:999999999999999

console.log(9999999999999999);
//打印出10000000000000000

整数型的数字最大可表示15位,超过15位后即变为不精确的数字。

Integers (numbers without a period or exponent notation) are considered accurate up to 15 digits.

console.log(0.11111111111111111)
//打印出0.11111111111111111 -- 共17位
console.log(0.111111111111111111)
//打印出0.11111111111111111 -- 共17位

可以看出小数位的最大精度为小数点后17位, 超过17位的则不再精确,注意是不再精确,而不是丢弃, 假如超过17位,0.111111111111111112会输出什么呢,有时会输出0.11111111111111111,有时是0.111111111111111112,即不再精确

小数运算不总是精确的!!!
  0.1 + 0.2 == 0.300000000000000004

这种问题的出现是因为0.1与0.2在计算前会被存储到64位的字节中会有一定的精度损失,或变大或变小,因为损失的精度在小数后很多位,对于实际生产不会造成任何问题,如果两个数字说产生的精度损失不能互相抵消的话,就会产生上面的情况。这个时候如果用于实际生产中可以使用.toFixed(2)来确定小数点后保留2位

还有一个巧妙的办法可以得到精确的 0.1 + 0.2 的结果 0.3, 就是计算前将两个被加数转化为整型,然后在用除法还原:(0.1 * 10 + 0.

当前第 1页,一共 4页