Toggle navigation
enilu的网络日志
文章归档
文章分类
页面索引
文章标签
About
English
文章分类
java
22
c#
1
linux
10
生活
9
职场
4
前端
3
爬虫
6
学习笔记
31
python
1
数据库
6
大数据
6
问题集锦
1
英语学习
3
开发工具
6
转载
1
开源项目
2
java
Fastjson 1.x 迁移到 Fastjson2:Jackson 接口与协议验证
Jxls 升级后的自定义函数:JEXL 命名空间与工作簿验证
Spring Boot 请求校验:Validation、DTO 与约束边界
Spring Data JPA 公共层:Repository、Specification 与业务 Service
Spring Data JPA 审计:创建修改时间与操作者配置
Hibernate 与 Fastjson 的 $ref 问题:懒加载、共享引用和 DTO
Spring MVC 中文乱码:ResponseBody、消息转换器与编码排查
Spring AOP 耗时统计:通知类型、返回值与代理边界
Java 字符串 split 与 contains:正则、转义和空字段
Java 异常处理:Error、Exception 与受检异常(转载)
Java 线程池处理文件:有界队列、异常与资源关闭
IKAnalyzer 中文分词:版本匹配、TokenStream 与词典验证
Elasticsearch 8.x 入门:字段映射、精确查询与全文检索
Apache James 旧版部署:邮件端口、启动与用户管理
Lucene 3.x 桌面搜索器:文件索引、更新与搜索器刷新
BSON 字节解析:文档长度、UTF-8 字符串与类型标记
《Lucene in Action》读书笔记:字段、分析器与索引可见性
Shiro 单账号单会话:替换旧登录与并发控制
BeanShell 监控规则:参数传入、结果校验与执行边界
Java 生成 XML:StringBuilder 拼接与 AJAX 响应的实践记录
iText 图文混排:嵌套表格、中文字体与图片缩放
amCharts 数据准备:用 Java 将 MySQL 查询结果组装为 XML
c#
C# 连接 MySQL:Connector/NET 5.0.3 使用示例
linux
Arthas 线上排障:检查加载类、方法入参与日期参数
Nginx 动静分离:root 路径、浏览器缓存与发布策略
用 CentOS 开发的一年(续):开发、写作与协作工具
用 CentOS 6.5 开发的一年:工具取舍与桌面体验
Nginx 源码安装:构建参数、服务配置与重载验证
VirtualBox Linux 磁盘扩容:虚拟磁盘、分区与文件系统
iptables 防火墙排查:链路、规则顺序与持久化
CentOS 6.5 U 盘安装:启动盘制作与 BIOS 设置
Linux 网络 bonding:模式选择、交换机配置与故障验证
Linux Telnet 配置记录:xinetd 服务与登录限制
生活
春节为什么回家过年
夜间随想
怨天不如尤己
周末刷街
失去了什么,得到了什么
西安之旅
西安
成都
济南
职场
2017年终总结
初创团队的开发效率与质量:重构、测试和发布反馈
初创团队的云服务选型:总成本、责任边界与迁移
中小 IT 企业项目团队的人员配置与管理(转载)
前端
微信小程序上线流程:环境、真机测试、审核与发布
Bootstrap 可视化工具:Bootstrap Studio 与 Pingendo 简介
JavaScript 代码题:变量提升、函数声明与作用域(转载)
爬虫
爬虫代理分配优化:轮询选择、并发边界与资源生命周期
数据采集请求排查:CSRF Token 与异步请求头
数据采集请求配置:代理与 HTTP 头信息示例
验证码识别实践:Tesseract、EasyOCR 与人工服务
数据采集流程:字段定义、请求分析与质量验收
Jsoup 解析 HTML:CSS 选择器、相对链接与缺失值
学习笔记
AI 干得越快,越要想清楚往哪走
OpenIDEA:一个值得试试的轻量开源 IDE
Paseo:在电脑和手机上,管理自己的 AI 编程工作台
笔记本和普通服务器上,可以部署哪些小型开源模型?
工欲善其事:AI 时代的开发工具选型与打磨
用聚合工作区管理 AI 多项目、多任务开发
手机网页视频上传:分片、Base64 与 FFmpeg 转码
免费编程电子书资源:EbookFoundation 列表与中文目录
Windows 本地运行 Jekyll:Ruby、Bundler 与中文路径
Nutz 日志源码:Log 接口、适配器选择与初始化
Nutz Mirror 源码:字段、注解与反射创建对象
Nutz Streams 与 Files 源码:资源所有权、路径与复制边界
Nutz Nums 与 Times 源码:闰年、格式化与时间范围
Nutz Strings 源码:Unicode、全半角与大小写边界
Nutz lang 源码阅读:字符串、日期、IO 与反射工具
Nutz HTTP 源码:POST、文件上传、超时与 Cookie
Nutz HTTP 源码:GET 调用链、响应与流关闭
Nutz EL 源码:表达式解析、优先级与求值边界
SQLite 入门:建库、类型约束、并发与备份
Nutz Mapl 源码:路径修改、列表去重与结构合并
Nutz Mapl 源码:目标 Type、递归注入与对象恢复
Nutz Mapl 源码:对象转 Map/List、memo 与转换边界
Nutz JSON 源码:字段注解、JsonFormat 与空值语义
Nutz JSON 源码:解析入口、类型分派与引用处理
Nutz 1.b.53 源码阅读路线:工具模块与调用链
Redis 3.0.5 Cluster:哈希槽、六节点配置与故障验证
旧版 GitBook CLI:Markdown 构建、发布与中文文件名
Piwik 安装记录:Apache、PHP 与网站统计配置
Kettle Spoon 入门:从 CSV 读取到 XML 输出
Redis 入门:数据结构、原子操作与持久化
《构建高性能 Web 网站》读书笔记:缓存、负载均衡与数据库扩展
python
Python 分析 Nginx 日志:请求统计、真实 IP 与误伤控制
数据库
MySQL 大表空间回收:260GB 缩至 130GB 的整理实践
MySQL 驱动升级后 validateConnection false:Druid 与连接校验排查
MongoDB 3.2 副本集:成员角色、选举与读写一致性
MySQL max_allowed_packet:大包限制、会话与客户端排查
MySQL 5.6 主从复制:一致性备份、配置与验证
MySQL 数据目录迁移:离线复制、权限与 SELinux 排查
大数据
Kafka 旧版命令备忘:Topic 与控制台生产消费
Elasticsearch 1.4.4 升级到 2.3.4:JDK、配置与客户端兼容
MongoDB 入门:文档建模、查询类型与索引
MongoDB 到 Elasticsearch:全量增量衔接与同步恢复
Elasticsearch 堆内存排查:OOM、深分页与查询负载
Hadoop 2.6.0 集群安装:CentOS 环境、配置与验证
问题集锦
GitLab Redis 连接失败:No route to host 与防火墙顺序
英语学习
GitLab 8.5 发布要点:性能、Todos、Geo 与持续集成(译文)
如何有效利用 20% 自由时间:项目选择与团队协作(译文)
Parse 服务关闭公告译文:截止日期与迁移背景(2016)
开发工具
VS Code Java 开发:插件、JDK/Maven 配置与资源
Easy Mock 前后端协作:接口契约、场景与真实联调
Git 推送多个仓库:独立远端与多 push URL
Maven 依赖解析失败:RELEASE 元数据、缓存与可重复构建
用 GitHub 托管 Maven 仓库:本地 deploy 与项目引用
开发环境启动命令备忘:Redmine 与 GitLab
转载
我脑海中的优秀技术团队(转载)
开源项目
PDF 合并工具实现:输入顺序、页面复制与失败清理
guns-lite 改造实践:从 Guns 到 Spring Data JPA