你貌似开启了广告屏蔽插件... 写博客不容易,希望能将广告过滤去掉,谢谢!

NodeJS加密解密,node-rsa加密解密用法

2018-10-12   朋也   nodejs学习笔记   nodejs node-rsa  

要用nodejs开发接口,实现远程调用,如果裸奔太危险了,就在网上找了一下nodejs的加密,感觉node-rsa挺不错的,下面来总结一下简单的rsa加密解密用法

初始化环境

新建一个文件夹 node-rsa-demo, 终端进入,运行下面命令初始化

cd node-rsa-demo
npm init # 一路回车即可
npm install --save node-rsa

Ubuntu里开机自启动和定时任务

2018-10-08   朋也   杂项   ubuntu crontab  

开启自启动

如果是系统安装的服务,可以通过命令添加开机自启动

# 设置mongodb数据库开机自启动
systemctl enable mongod.service

# 相应的启动,重启,停止
systemctl start mongod.service
systemctl restart mongod.service
systemctl stop mongod.service

如果不是系统安装的服务,而是自己下载的工具,可以通过将命令添加进 rc.local 里来实现开机自启动

Nodejs爬虫,使用cheerio+request+phantomjs实现超简单爬虫

2018-09-20   朋也   nodejs学习笔记   phantomjs  

之前写过golang里比较好用的爬虫工具是 goquery [传送门]

今天来介绍一下nodejs里的爬虫

使用tensorflow训练模式识别图片中的对象(object-detection)

2018-09-17   朋也   tensorflow学习笔记   tensorflow  

开始前准备:强烈推荐使用 anaconda 来做 python 的环境管理工具,它里面自带了很多科学计算的类库,可以避免很多不必要的问题

显卡:我的显卡是 gtx960 最多只能训练10批次的数据,再多了显存就不足了,唉。。

pdf.js使用教程备忘

2018-08-30   朋也   nodejs学习笔记   pdf.js  

前言:如果使用chrome浏览器的话,可以安装一个插件 PDF Viewer 也是一样的效果

Elasticsearch Index、Mapping、Search 备忘

2018-08-24   朋也   Elasticsearch学习笔记   Elasticsearch  

下面给出的请求,请自动在地址后面加上 -H 'Content-Type:application/json' -d'{ $content$ }

创建索引

创建一个索引

PUT http://localhost:9200/library/
{
  "settings": {
    "index": {
      "number_of_shards": 5,  # 有5个碎片
      "number_of_replicas": 1 # 有1个备份
    }
  }
}

spring-boot项目freemarker模板使用jquery.pjax实现页面无刷新渲染

2018-08-21   朋也   spring-boot学习笔记   spring-boot  

先看效果图

pjax是啥,自行百度,关于它的兼容性可以看一下我另一篇博客:https://tomoya92.github.io/2017/04/25/nodejs-pjax/

在spring-boot项目里集成netty-socketio实现服务器给页面推送消息通知

2018-08-20   朋也   spring-boot学习笔记   spring-boot  

引入依赖

新建一个spring-boot项目,不多说,可以用IDEA或者在 start.spring.io 上创建 spring-boot 项目

netty-socketio 可以去github上找最新的版本 https://github.com/mrniko/netty-socketio

<dependency>
  <groupId>com.corundumstudio.socketio</groupId>
  <artifactId>netty-socketio</artifactId>
  <version>1.7.7</version>
</dependency>

解决SpringBoot项目里提交表单字段超过1000个异常 The number of parameters exceeded the maximum of 1000

2018-07-26   朋也   spring-boot学习笔记   spring-boot  

java web容器在提交表单的时候有个保护机制,当表单字段超过1000个的时候会抛一个异常 The number of parameters exceeded the maximum of 1000 这么奇葩的问题居然被我碰到了,下面说一下解决办法,此方法适用 tomcat, jetty, undertow

  1. 减少字段数(跟没说一样,如果可以少点,就不会碰到这个问题了)
  2. 在项目里配置一下容器的 MAX_PARAMETERS 参数,默认是1000,给设置大点就好了
// 项目用的是undertow容器,下面是undertow的配置方法

@Bean
public UndertowEmbeddedServletContainerFactory undertowEmbeddedServletContainerFactory() {
  UndertowEmbeddedServletContainerFactory undertowFactory = new UndertowEmbeddedServletContainerFactory();
  undertowFactory.addBuilderCustomizers(builder -> {
      builder.setServerOption(UndertowOptions.MAX_PARAMETERS, 10000);
  });
  return undertowFactory;
}

这段代码可以放在项目里任何地方,前提是要能被spring给扫描到,另外两个容器配置方法差不多,改一下方法名就可以了

配置好了,重启服务器这个异常就消失了


今天又碰到一个奇葩的问题,一个表单里提交的有字段,有数组(就是数据格式是一样的,对应到数据库里是多条数据),当这个数组里有257条时就会出现 index out of bounds 这原因是springmvc在处理表单的时候对表单内的数组类型的数据有长度限制,默认是256,当form表单提交的数组长度超过了256,就会出现问题,解决办法是将下面代码拷贝到处理表单的controller里,然后问题就解决了

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setAutoGrowCollectionLimit(1024);
}

swift4 WKWebView使用JS与Swift交互

2018-07-05   朋也   swift学习笔记(纯代码)   swift4  

创建wkwebview

import WebKit

lazy var webView: WKWebView = {
    let preferences = WKPreferences()
    preferences.javaScriptEnabled = true

    let configuration = WKWebViewConfiguration()
    configuration.preferences = preferences
    configuration.userContentController = WKUserContentController()
    // 给webview与swift交互起一个名字:AppModel,webview给swift发消息的时候会用到
    configuration.userContentController.add(self, name: "AppModel")

    var webView = WKWebView(frame: self.view.frame, configuration: configuration)
    // 让webview翻动有回弹效果
    webView.scrollView.bounces = true
    // 只允许webview上下滚动
    webView.scrollView.alwaysBounceVertical = true
    webView.navigationDelegate = self
    return webView
}()