MyBatis 是 Java 系的 ORM(Object Relational Mapping) 框架,提供了非常简洁的编程接口。用简单的话来说就是可以将数据库表映射到 Object 中 MyBatis 就是中间辅助处理的框架。
类似于 Python 中的 [[SQLAlchemy]]。
整体架构
分为三层
基础支持层
核心处理层
接口层
基础支持层包含了如下模块
反射,封装了原生反射接口
类型转换,别名机制,JDBC 类型和 Java 类型装换
日志,集成第三方优秀日志框架
资源加载,类加载器封装,确定类加载
Read more ...
pandas 基于 numpy 构建,可以提供强大的数据处理分析能力。
两种数据类型,series 和 dataframe
数据集
英国政府 https://data.gov.uk/data/search
美国政府 http://catalog.data.gov/dataset
Kaggle https://www.kaggle.com/
Series
series 是一种一维数据类型,每个元素都有各自的标签。可以当成带标签元素的 numpy 数组,标签可以是数字或者字符。Series 可以用元组、列表或者字典生成,如果没有为数
Read more ...
nltk 是 Python 下一个自然语言处理相关的库,可以方便的实现分词,词性标注等等。
安装
pip install nltk
然后在终端执行 python, 进入交互式编辑环境
>> import nltk
>> nltk.download()
下载相关模块
分词
nltk.sent_tokenize(text) #对文本按照句子进行分割
nltk.word_tokenize(sent) #对句子进行分词
词性标注
nltk.pos_tag()
词形还原
from nltk.stem import
Read more ...
frp 是 fatedier 的开源项目,frp 是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持 TCP, UDP, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
frp 用法和 ngrok 相似,但是 frp 比 ngrok 更加优秀。 配置过程很简单,但是也遇到一些问题,所以把过程记录下来。
frp 作用
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可
Read more ...
Git 作为分布式版本控制系统,所有修改操作都是基于本地的,在团队协作过程中,假设你和你的同伴在本地中分别有各自的新提交,而你的同伴先于你 push 了代码到远程分支上,所以你必须先执行 git pull 来获取同伴的提交,然后才能 push 自己的提交到远程分支。而按照 Git 的默认策略,如果远程分支和本地分支之间的提交线图有分叉的话(即不是 fast-forwarded),Git 会执行一次 merge 操作,因此产生一次没意义的提交记录。
在 pull 操作的时候,使用 git pull --rebase 选项即可很好地解决上述问题,使用 -r
Read more ...
Linux 下按照正则过滤文本的命令 grep 非常强大,grep 能够把正则匹配的行打印出来。而 zgrep 则能够对压缩包内容进行正则匹配。zgrep 全称是 search compressed files for a regular expression
grep 的命令格式是
grep [option] pattern files
他的工作方式是,在一个或者多个文件中根据正则搜索匹配内容,将搜索的结果输出到标准输出,不更改源文件内容。
grep 常用的一些选项
-i 忽略字符大小写区别
-v 显示不包含正则的所有行
关于更
Read more ...
jhead 是一个可以查看,修改照片 EXIF 信息的命令行工具,没有 GUI。
jhead 可以查看:
Time and date picture was taken
Camera make and model
Integral low-res Exif thumbnail
Shutter speed
Camera F-stop number
Flash used (yes/no)
Distance camera was focused at
Focal length and calculate 35 mm equ
Read more ...
在熟悉 Vim 基本的 yy (yank current line) 和 p (paste) 的操作前提下,如果现在 Vim 中批量的移动某一些行,或者批量的复制从第 50 行到100 行到第200行后面,以我们之前的知识,可以先跳转到第 50 行 (:50),然后进入 行选择模式 (V) ,往下选择 50 行 (50j),然后再对选中的 50 行进行复制操作 (y),然后再移动到 200 行 (:200) 粘贴 (p)。
计算一下,从选择到复制,上面的操作可以划分为 5 个步骤,需要敲击 :50V50jy:200p ,当然上面的例子只是一个极端的例子
Read more ...
这是 《精通正则表达式》第 3 版 的读书笔记。
技术图书的主要使命是传播专业知识,专业知识分为框架性知识和具体知识。框架性知识需要通过系统的阅读和学习掌握,而大量的具体知识,则主要通过日常生活的积累以及随用随查的学习来填充。
完整的正则表达式由两种字符构成,特殊字符,元字符,另外一种就是普通文本字符。
完整的正则表达式由小的构建模块单元 building block unit 构成,每个单元都很简单,不过他们能够以无穷多种方式组合,所以可以提供无限的可能。
字符组
匹配若干字符之一,使用中括号 [ea] 匹配 a 或者 e
gr[ae]y
Read more ...
常用的 ping,tracert,nslookup 一般用来判断主机的网络连通性,其实 Linux 下有一个更好用的网络联通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是 mtr。mtr 全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。
traceroute 默认使用 UDP 数据包探测,而 mtr 默认使用ICMP报文探测,ICMP在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实际情况。
安装
Debian/Ubu
Read more ...