memo1st

mysql

Generate random string in MySQL

1
2
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 6) AS password
SELECT LEFT(UUID(), 8);

mysql忽略主键冲突、避免重复插入的几种方式

方案一:使用 ignore 关键字
方案二:使用 replace into
方案三:ON DUPLICATE KEY UPDATE
方案一:使用 ignore 关键字

Linux

查看版本信息

1
2
3
cat /proc/version
lsb_release -a
cat /etc/issue

Java

Spring

Dynamic DataSource Routing
https://spring.io/blog/2007/01/23/dynamic-datasource-routing/

web

Web 是一个巨大的技术堆栈。实际上,您访问的每个网站都是库、语言与 Web 框架的一种独特组合。

跨域

同源策略

同源策略是浏览器上为安全性考虑实施的非常重要的安全策略

URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源

浏览器的同源策略,限制了来自不同源的”document”或脚本,对当前”document”读取或设置某些属性。从一个域上加载的脚本不允许访问另外一个域的文档属性。在浏览器中,<script>、<img>、<iframe>、<link>等标签都可以加载跨域资源,而不受同源限制,但浏览器限制了JavaScript的权限使其不能读、写加载的内容。

Ajax跨域

Ajax (XMLHttpRequest)请求受到同源策略的限制。
如果我们又想利用XMLHTTP的无刷新异步交互能力,又不愿意公然突破Javascript的安全策略,可以选择的方案就是给XMLHTTP加上严格的同源限制。XMLHTTP则根本上限制了跨域请求的提交。

JSONP

JSONP就是利用<script>标签的跨域能力实现跨域数据的访问,请求动态生成的JavaScript脚本同时带一个callback函数名作为参数。其中callback函数本地文档的JavaScript函数,服务器端动态生成的脚本会产生数据,并在代码中以产生的数据为参数调用callback函数。当这段脚本加载到本地文档时,callback函数就被调用。

JSON

JSON.stringify() 方法

可以将任意的 JavaScript 值序列化成 JSON 字符串

JSON.parse()

解析JSON字符串, 可以选择改变前面解析后的值及其属性,然后返回解析的值。

工具

Fiddler

一个http调试代理,可用于手机app开发的真机抓包
Tools -> Fiddler Options…-> Connections页签,选中Allowremote computers to connect

LLVM

LLVM编译环境是一个集合项目,为面向C或基于C的语言提供新一代高效易用的虚拟机环境。LLVM起源于2000年伊利诺伊大学发起的开源项目,起先主要在学术研究领域中有所应用。在2005年,Apple为LLVM提供了支持以帮助其发展,并保持LLVM与Xcode良好的兼容性,使其成为一个开发者易于使用的编译器。相比较传统的GCC,LLVM的设计更为现代化和模块化。LLVM为开发者提供了中间代码和编译基础设施,并且LLVM能够与IDE紧密地交互和集成,作为IDE的底层支撑基础,为代码补全、重构等功能提供辅助,同时在程序编译、连接、运行环境执行过程中实现全新的编译优化策略。值得一提的是,LLVM还提供了很多编译器以外的辅助工具,如对代码进行静态检查并生成HTML格式的分析报告等。

LLVM将编译器的许多优秀机制模块化,人们可以根据自己的语言、处理器、运行平台等需要,为自身应用定制编译器,在恰当的时机,快速地获得高性能的编译结果(Bitcode),然后链接其他编译结果或库,获得性能、资源使用效率、兼容性兼备的可执行代码。

工作流引擎

Flowable runs on a JDK higher than or equal to version 7.

The Java BPM Engine
http://www.flowable.org

https://github.com/flowable
当年JBMP的主创Tom已经离开Alfresco多年,后辈们也开始步前人后尘。Tijs Rademakers、Joram Barrez等Activiti的原班核心人马,由于与Alfresco公司在项目的未来发展方向上出现分歧,于是选择集体出走,创建了Flowable,并且将第一个版本定义为5.22,而且在两周前发布了6.0版本!要知道,Activiti当前版本依然还是5.22,6.0处于Beta阶段。

flowable是activiti的原班核心人员从activiti分离出来的一套工作流引擎(这和activiti的诞生如出一辙),其核心是超快速、稳定的BPMN2流程引擎,易于与 Spring集成使用。简单一句话:Flowable是activiti的升级版.

规则引擎

Why should I use Drools?

A system that needs a rules engine will have complex business logic.

How do I program using Drools?

Drools Rule Engine 初探