随笔分类 -  经验和见解

分享自己经验和观点,也包括一些教程
摘要:正确处理二进制数据 正确处理二进制数据必须保证以下三个环节是二进制安全(Binary Safe)的: 从文件读取至内存; 处理数据过程中; 内存写入至文件。 那么二进制安全是什么?通俗来说就是不会特殊处理任何数据,例如说一个文件的字节序列为(十六进制表示)0x0a 0x0d,它读取至内存中也应该是0 阅读全文
posted @ 2022-06-18 16:39 ZachLim 阅读(2953) 评论(0) 推荐(0) 编辑
摘要:解压后文件名乱码 由于zip格式文件无编码存储的结构,因此解压时无法知道原先的编码。 当解压zip格式文件时使用的编码和原编码不一致时,就可能会出现解压后文件名乱码问题。 猜测编码 基于上述问题,需要对zip格式文件所使用的编码进行猜测。 笔者使用基于统计学原理的 juniversalchardet 阅读全文
posted @ 2021-09-21 00:22 ZachLim 阅读(1724) 评论(0) 推荐(0) 编辑
摘要:概括 rebase翻译过来为“变基”,可以理解为改变基础,它可以用于分支合并和修改提交记录。 合并分支的区别 我们知道merge操作也可以用于分支合并,但是其和rebase操作有着明显的不同。假定有一个分支foo在B提交处检出了分支bar,接着两个分支各自前进出现了分叉,现在要将bar分支合并回fo 阅读全文
posted @ 2020-07-28 22:36 ZachLim 阅读(989) 评论(0) 推荐(0) 编辑
摘要:实际场景 工作中遇到一个场景,系统引入了第三方的单点登录(SSO)认证过滤器,但是该过滤器不具备“无需认证路径配置”的功能,因此需要自己增加该功能,为此想到了使用装饰器模式来增强该过滤器。 如下为简单模拟该场景代码,这里的AuthenticationFilterWithExclude类就是用于增强原 阅读全文
posted @ 2020-07-24 23:53 ZachLim 阅读(263) 评论(0) 推荐(0) 编辑
摘要:本系列介绍 笔者最近正学习编译原理,为了将理论变为实践,所以创作了本系列来记录学习过程中的思考与问题,注意文章中为了理论上描述方便增加了自创的术语。 本系列使用 Java 语言来实现一个脚本解释器,该脚本语言命名为 Foo,其语法参考 JavaScript 语言,本系列代码地址 "Github" 。 阅读全文
posted @ 2019-05-11 22:05 ZachLim 阅读(1900) 评论(0) 推荐(0) 编辑
摘要:前言 之前一篇文章 "《shell 脚本实现文件对称加密》" 中,讲述了如何用 shell 脚本实现对称加密。 之后写管理密码脚本时,发觉该脚本的处理速度非常慢,而其原因就在 shell 的处理命令上,而将其中的循环亦或运算改用 awk 处理即可,下面记录需要注意的地方。 亦或运算及函数 笔者使用的 阅读全文
posted @ 2019-05-01 16:44 ZachLim 阅读(282) 评论(1) 推荐(1) 编辑
摘要:前言 之前手机里管理密码的脚本,都是直接编写进纯文本然后进行多次归档及压缩来实现不明文存储,一直觉得不太安全,于是昨天晚上编写脚本实现了简单的文件对称加密。 网上文章都利用 来进行文件加解密,这不符合在手机上运行的需要,所以必须自己编写文件的对称加密。 核心原理解析 对称加密的加密过程使用秘钥将明文 阅读全文
posted @ 2019-04-19 19:16 ZachLim 阅读(2094) 评论(2) 推荐(1) 编辑
摘要:前言 为了学习分布式系统,于是做了这个项目来练练手,这篇文章记录了这次实战的思考和踩过的坑。由于刚入门,因而文章可能会有错误,请读者勘误。 简单概述 项目采用 Spark 和 HDFS 做分布式计算和存储,利用 Spring Boot 提供 Web 服务,利用 Redis 存储任务标识符以便于集群扩 阅读全文
posted @ 2019-03-27 08:25 ZachLim 阅读(869) 评论(0) 推荐(0) 编辑
摘要:前言 昨天夜里,突然冒出来的想法,应该有规划性地学习分布式系统,带着目的及问题去学习。结合从寒假期间看的,大数据及分布式文章中的知识,加之自己的思考及想法,写下了这篇文章。 由于笔者对分布式系统研究水平尚处入门,文章着笔较浅,并希望此文能抛砖引玉,同时欢迎读者勘误及指教。 从单机到分布式 其实从宏观 阅读全文
posted @ 2019-02-20 19:46 ZachLim 阅读(1060) 评论(0) 推荐(1) 编辑
摘要:前言 由于Ubuntu18经常出错,因而决定回退Ubuntu16,下面是记录回退问题及美化,以便以后需要。 问题总结 磁盘挂载 挂载其他磁盘分区时,提示错误“Metadata kept in Windows cache, refused to mount.”,执行下面命令即可修复。 若是提示错误“W 阅读全文
posted @ 2019-01-15 17:39 ZachLim 阅读(1134) 评论(0) 推荐(0) 编辑
摘要:前言 这学期学可视化程序设计,要使用 Windows API 绘制界面,由于笔者的笔记本硬盘太小,无法装臃肿的 VS(主要是不想装),也不想用 VC++ 6.0,所以就选用 GCC 来编译。 安装 msys2 下面为 64 位操作系统版本的 msys2 下载地址: "http://repo.msys 阅读全文
posted @ 2018-09-06 09:14 ZachLim 阅读(3800) 评论(0) 推荐(0) 编辑
摘要:前言 这几天为了熟悉vue.js框架,还有webpack的使用,就准备搭建一个发布和浏览markdwon的简单WEB应用。原本是想着用bash脚本和busybox的httpd来作为后台服务,但是bash脚本解析和生成JSON非常不方便,而用Java语言写又觉得部署不方便,所以就想到了正在用到的Nod 阅读全文
posted @ 2018-08-14 19:02 ZachLim 阅读(10688) 评论(4) 推荐(1) 编辑
摘要:编写dimgr是为了管理手机上的镜像,在此总结下过程中学到的知识及技巧(不讨论具体用法)。 参数处理 以往处理脚本参数直接用循环加判断语句,若是脚本只有简单参数,这无疑是简便可行的方法。但当需要处理复杂参数时,使用 getopt 更加可行,而且getopt可以 处理长参数 和 错误检测 ,支持 和 阅读全文
posted @ 2018-03-03 23:24 ZachLim 阅读(221) 评论(0) 推荐(0) 编辑
摘要:前言 老师布置了一道题需要用到图形界面,于是开始找图形库。最后选择了gtk+图形库,然后折腾了大概一天。 这里记录自己新学到的知识,同时也给后来者一些便利。 准备 下载以下内容 notepad++(由于官网访问较慢,建议使用其他渠道) mingw(包含msys和gcc工具链) gtk+bundle( 阅读全文
posted @ 2017-04-09 00:44 ZachLim 阅读(665) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示