-
字符集与字符编码的强化理解与操作实践
踩坑 最近在工作中遇到了一个说大不大说小不小的问题,就是当我解析一个xml文件的时候,抛出了一个"Invalid byte 2 of 2-byte UTF-8 sequence"的异常,这个异常会导致解析直接退出,显然不能容忍。查阅相关资料稍微定位了一下,大概知道是字符集的问题,仔细一看,xml文件中的确有中文字符,而且当我把这些中文字符删了之后的确又能解析成功。不过我还是不能理解这当中的缘由,不过由于时间原因,当时只是把中文字符删了就草草完工。现在回头想想这个坑还是不能留…
-
编写Shell脚本的最佳实践
前言 由于工作需要,最近重新开始拾掇shell脚本。虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看。而且当我在看其他人写的脚本的时候,总觉得难以阅读。毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用。因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视。同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一。 考虑到上面的这些…
-
写给大忙人的JavaSE8书后习题简析-第二章
Stream API 第一题 编写一个第2.1节中的for循环的并行版本。获取处理器的数量,创造出多个独立的线程,每个都只处理列表的一个片段,然后将他们各自的结果汇总起来。(我们不希望这些线程都更新一个计数器,为什么?) 还是有点麻烦的,线程得传值,得获取运行结果,相比流式计算麻烦太多了。这里为了平均给每个线程分配任务,我们得手动将资源进行拆分,有的是将数据List平均分,我这里是通过取模的结果来进行分配。 我们当然不希望这些线程都更新一个计数器,因为累加的操作不是原子操作,我们得加锁,…
-
Nexus私服配置以及分组的应用
前言 阴差阳错的实习部门分到了Agile Controller Campus的运维(或许吧)部门,部门主要任务大概是控制构建自动化测试的流水线,控制项目各个模块的项目进展以及维护版本一致等。本来指望能进来敲敲代码的,结果发现在这里基本不用写代码,主要是使用内部软件做好项目的配置工作,这倒是我之前一直没有接触过的工作,接触了两天,感觉还是挺有意思的,能从项目的上层了解到整个项目的架构,从整体上理解一个大型团队的工作方式,这里面的学问不比码代码少。 我接到的第一个任务就是一个实际中出现的问题。…
-
写给大忙人的JavaSE8书后习题简析-第一章
lambda表达式 第一题 Arrays.sort方法中的比较器代码的线程与调用sort的线程是同一个吗? 是的,看下源码就知道了。 Arrays.sort默认采用的是TimSort的方法(即传统Mergesort的优化版本)。当用户指定了一个Comparator时,他会同步的回调这个Comparator的compare方法来作为比较的参照,因此显然这里并不存在多线程的问题。 事实上在JDK1.8以后就提供了并行的排序方法Arrays.parallelSort。 不过需要注意的是,经过测…
-
记在github中开发项目的正确姿势
前言 前几天随便写了一个hexo小插件,这几天刚好考完期末考试,趁着实习前没啥事,于是又拿来看看,想想有什么可以改进改进的。为了发散思路,我就把hexo.io的插件列表里的插件基本上从头到尾看了一遍。这个不看不知道,看完之后我发现其实里面的内容质量也是参差不齐的,好一点的呢,开发、测试、集成、样例、徽章都十分齐备,文档简明扼要,一看就是专业玩家;差一点的呢,基本都没有集成,没有测试,没有徽章,文档简陋或者啰嗦,有的issue满天也没人处理,有的build failure也不解决,更有的连rep…
-
hexo-douban插件的开发过程
背景 前几天在逛博客的时候发现两个用hexo的很厉害的博客:yikun,raysmond,发现他们不仅内容牛x,而且他们都有一个读书页面,能够同步自己在豆瓣的账户,将自己的阅读经历放在博客中。我觉得这个idea非常有意思,原来博客不仅可以分享技术、分享感悟,还可以当作读书笔记,更加方便的记录自己的学习历程。 于是我就想了,反正最近临近期末考试,闲着也是闲着,不如捣鼓捣鼓这个玩意,顺便学学Nodejs。本来打算花几个小时搞一搞的,结果摊子铺的有点大,搞了两三天搞出了个能同步豆瓣读书跟电影的hex…
-
利用Graph-tool进行图的可视化处理
前言 最近恶心的项目中期检查,我被分配到做社交图的分析,然而事实上我并不知道弄啥。虽然不是我自己答辩,但是考虑到还是不要太坑dalao,我决定不管怎样至少得搞点图撑撑场面免得尴尬,这几天就赶鸭子上架倒腾了下graph_tool这个专门用于对图进行可视化的python库。虽然网上中文资料不足,但是他的英文文档还是非常全面的,很多设计的小细节也在文档里提及了,非常简单容易上手。下面就从一个初学者的记录下我的学习历程。 安装 虽然是个python库,但是毕竟是要做大量数据计算的,因此graph…
-
关于Ascii-Art的一些总结
前言 好久没写博客了,倒不是因为最近没在学习,而是觉得最近学得有点太多,一时无从下笔。知识这种东西真是奇怪,真的是懂得越多才知道自己懂得越少。虽然这个真相经常会给我一种无力感,但是我还是会沉浸在了解一件事情的来龙去脉的过程中。唔,看来学习也是会容易让人上瘾的。。。 不过最近在学习的过程中,我渐渐也明白了一点,那就是碎片化的学习效率那是惊人的低。我曾经十分推崇学习一个技术的时候,先上手,然后遇到一个问题就解决一个问题。但是后来慢慢发现,这样经常会导致我们花很多的时间去解决那些在这个领域里非常基…
-
SpringBoot之Thymeleaf用法
Thymeleaf Thymeleaf是最近SpringBoot推荐支持的模板框架,官网在thymeleaf.org这里。 我们为什么要用Thymeleaf来作为模板引擎呢?官网给了我们一个非常令人信服的解释: Thymeleaf is a modern server-side Java template engine for both web and standalone environments.> 基本写法就像下面这样: <table> <thead&…