前言虽然控制台程序本来就是没有界面的,打包成exe有点多余,但是如果想把写好的代码发给一个非程序员使用,可能还要教人家如何装node,如何运行…… 麻烦死了! 本文采用的方法是先用批处理包装,然后再将批处理打包成exe,批处理转exe的工具很多,我这里随便找了一个Bat To Exe Converter来实现。 正式开始目标我们肯定希望生成的exe是这样的: 双击即可运行,临时文件不能生... 阅读全文
前言虽然控制台程序本来就是没有界面的,打包成exe有点多余,但是如果想把写好的代码发给一个非程序员使用,可能还要教人家如何装node,如何运行…… 麻烦死了! 本文采用的方法是先用批处理包装,然后再将批处理打包成exe,批处理转exe的工具很多,我这里随便找了一个Bat To Exe Converter来实现。 正式开始目标我们肯定希望生成的exe是这样的: 双击即可运行,临时文件不能生... 阅读全文
仅知道身份证最后2位数就很容易算出某个人的完整身份证号码,不管你信不信,反正我是信了,因为我今天就算出来了一个,而且是身份证生日和实际生日不同的身份证号码。 想知道我是怎么算出来的?等有空我再写出来吧。 ... 阅读全文
前言本文对nodejs的工作目录和当前目录问题进行好好的测试验证。 【20160622更新】:本文没什么看的价值,水文一篇,特此提醒! 验证如下,建立文件D:\myjs\test.js如下: const fs = require('fs');const path = require('path');const {exec} = require('child_process');console... 阅读全文
概述中文文档:http://nodejs.cn/api/child_process.html 利用nodejs的子进程模块(child_process)我们可以轻松调用外部程序、命令等。 API一般习惯用异步方式调用,子进程共有4个异步方法: child_process.exec()child_process.execFile()child_process.spawn()child_pr... 阅读全文
真是太水了: 静态截图: 动态GIF: 这里是为了凑字数,因为摘要字数太少不好看,啦啦啦啦啦啦,呜呜呜呜呜呜,嘻嘻嘻嘻嘻嘻嘻,哼哼哼哼哼哼,呵呵呵呵呵呵呵…… ... 阅读全文
概述一般有2种方法,推荐第二种。 方法一(创建服务)我们使用Windows Service Wrapper来为nginx创建服务,为什么不使用instsrv/servany、FireDaemon或者其他办法呢? 下面是网上摘录的一段话: 通过 instsrv/srvany(微软官方创建服务的方法) 或者 FireDaemon 的方式(来创建 Nginx 为服务),只是启动进程,当你想要停... 阅读全文
正文花括号,又叫大括号,即{},关于花括号是否应该换行,这是个永恒的争论话题,我是坚决站在换行这一边的,为什么?因为代码清晰,对称,好看啊! C系列的语言都是花括号换行的,比如C、C++、C#,本来在计算机编程世界,几乎所有有花括号的语言都是花括号换行的,仅仅是因为吃错药的Sun公司带了个不好的头,非要把花括号放右上角,然后一大波Java开发人员跟风,再后来JS(也就是想傍大Java大腿的Jav... 阅读全文
前言一直以来个人博客的搜索功能很蹩脚,只是自己简单用数据库的like %keyword%来实现的,所以导致经常搜不到想要找的内容,而且高亮显示、摘要截取等也不好实现,所以决定采用Lucene改写博客的搜索功能。先来看一下最终效果: 本文demo地址:https://github.com/liuxianan/lucene-demo (包括本文需要用到的jar包可以从这里面下载) 效果演示地址... 阅读全文
更新说明一直以来搜索是本博客的弱项,之前的搜索只是简单的用数据库like %keyword%来实现的,所以稍微多几个字就搜索不出来,所以最近实在忍不住了,用Lucene彻底改造了一下搜索功能,效果如下,赶快体验一下吧! 测试体验地址:http://blog.liuxianan.com/search?kw=%E7%AB%AF%E5%8F%A3%20%E5%8D%A0%E7%94%A8 效果如下:... 阅读全文
概述刚碰到一个问题坑了我一个多小时,特写一篇文章记录防止再犯。 简而言之就是修改了nginx文件之后一直没生效但我误以为生效了,导致对nginx的域名配置优先级产生了怀疑。 详述本地有如下nginx配置: server { listen 80; server_name demo.liuxianan.com; location /... 阅读全文
初始化package.json采用npm init命令向导配置一些参数,比如名称,描述,关键字,GitHub地址等。 注册npm访问 https://www.npmjs.com/ 注册一个账号,注意登录使用的是username和password,所以name是可以随便填的。 登录然后使用npm adduser来登录用户,注意如果你使用的是淘宝镜像的话,在登录之前必须把仓库地址切换成默认的 ... 阅读全文
Windows资源管理器简单介绍 我们一般都知道在cmd下敲入explorer.exe来打开资源管理器,殊不知,其实它还有好几个参数,我们这里只介绍我们需要用到的。 # 打开某个文件夹explorer.exe "E:\Workspace\Java"# 用默认关联程序打开某个文件explorer.exe "E:\Workspace\Java\test.html"# 打开资源管理器并选中某个文件或... 阅读全文
事件回顾好早之前就发现了,用了很久的多说评论竟然关闭了,今天闲来说几句。 乱侃首先,不赚钱的东西是活不久的,就算活着,也肯定没有赚钱的东西有生命力。 其次,各种服务各种功能还是用变成自己的才是最可靠的,之前弄博客的时候之所以没有用GitHub Pages来做,除了是因为不够自由外,还有一个考虑就是不想太依赖别人,万一哪天GitHub关闭了这个服务呢? 所以,这次多说关闭了也不考虑换其... 阅读全文
nginx配置nginx配置说简单也简单,说复杂也复杂,入门简单,精通难(怎么感觉有点像javascript?),主要是nginx自身有很多专属的语法和命令以及让人捉摸不透的运行规则,不系统的学习一下很容易出错,有时候即使工作很多年的同学想配置一些特殊场景时可能也会折腾半天才能搞定。 一个nginx配置文件大体长下面这样,绝大部分配置都写在http里面(省略了很多默认配置): http { ... 阅读全文
介绍git是一种版本管理工具,github是一个网站,也可以认为是git的一种具体实现,常见的实现有github和gitlab。 安装首先安装git-for-windows(这个是必须安装的),然后安装自己喜欢的git客户端,如TortoiseGit或者SourceTree,个人比较喜欢TortoiseGit,关于TortoiseGit的具体使用可以参考我另外单独写的一篇文章:TortoiseG... 阅读全文
概述之前没仔细看过,反正就是经常遇到加上transform平移之后文字和其它对象就会变模糊的问题,后来发现,只有奇数的时候才会出现,偶数不会。 20170401更新测试浏览器:Chrome50.0 可正当我准备单独写一个测试案例的时候却发现怎么都无法复现前面碰到的模糊问题:新写的测试页面无论是奇数还是偶数都不会模糊,但是项目页面还是存在,且即使我把测试页面的代码copy到项目页面里面去也还是会... 阅读全文
问题描述apache启动不了,提示可能是端口问题: 用netstat -aon|findstr "80"命令查了一下,80端口被一个pid=4的进程给占用了: 打开任务管理器,发现这个进程是一个叫NT Kernel & System的系统进程: 问题解决Win+X然后选择A打开管理员命令行,然后执行net stop http即可: 光这样还不行,下次还会开启自启动,需要禁用... 阅读全文
背景最近对接统一登录碰到PHP和Java的AES加密结果不一致问题,花了不少的时间,特此记录一下。 大致逻辑就是第三方平台对接统一登录平台时,拿到对方给的一些数据然后采用AES加密生成一个token给对方校验,第三方平台是Java写的,统一登录平台时php写的,而且php那边肯定是不能随意修改代码的,只能改Java这边。 首先,php那边的加密代码如下: /** * 加密 * @return... 阅读全文
问题描述今天碰到一个很奇怪的问题,测试环境一直出现白屏问题,正常情况下如果哪个地方报错页面上都会有提示的,但是这个没有,还以为是后台哪个环境出了问题。 然后下午把代码提交到预发布的时候也出现了这个问题,甚至把代码全部还原了也还是一样,然后就急了,赶紧找人协助看下,最后在日志里面发现如下错误: PHP Fatal error: Can't use function return value in... 阅读全文
含义第二代身份证号码共18位,其中: 1-6位:表示户口所在县(市、旗、区)的行政区划代码,也就是说如果是同一个县的人,那么身份证前6位肯定都一样;7-14位:表示出身日期,共8位,遵循yyyyMMdd格式;15-17位:顺序码,具体是随机分配还是按照出身年月有序分配不清楚,第17位为奇数表示男性,偶数表示女性;18位:校验码,根据一个固定规则由前17位数字计算得来; 下面着重介绍校验码。... 阅读全文