正文内容加载中...
posted @ 2015-07-16 22:13 掰棒子熊 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 有时候在写代码时,会有很多的重复内容出现。在C/C++这样的语言里,可以通过宏定义来简化这些代码。可是在Java这样没有宏定义的语言里,就会有点麻烦。我们可以通过代码生成器来处理,也就是用一段代码来生成这些代码。假定我们要写一个类,来封装所有的错误代码和错误消息。也就是要生成类似下面的一个类。其中以... 阅读全文
posted @ 2015-06-15 22:29 掰棒子熊 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 我们在写Java代码时候,有时候需要写一些POJO类,也就是只有一些属性和get, set方法的类。例如,在写REST 服务时候,利用Jersery + Jackson,可以把输入的JSON字符串自动转换成一个POJO类,也可以自动把POJO类转换成JSON字符串而输出。在这样的情况下,我们往往需要... 阅读全文
posted @ 2015-06-14 16:08 掰棒子熊 阅读(2786) 评论(5) 推荐(0) 编辑
摘要: 最近在看一些在线机器学习的东西,看到了trident-ml, 觉得比较有意思,就翻译了一下,方便有兴趣的读者学习。本文为作者(掰棒子熊)翻译自https://github.com/pmerienne/trident-ml的关于trident-ml的一个文档。可以转载,但是请注明出处。Trident-... 阅读全文
posted @ 2015-02-04 22:13 掰棒子熊 阅读(1985) 评论(0) 推荐(1) 编辑
摘要: 有时候,我们会修改一些代码,而这些代码中的tab设定和我们自己的设定不一样。例如,我们自己的设定是以两个空格来代替tab,而要修改的代码则是使用tab.那么,我们应该怎样快速的将又有的tab转换为空格呢?参考http://vim.wikia.com/wiki/Converting_tabs_to_s... 阅读全文
posted @ 2015-01-11 21:54 掰棒子熊 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 在之前的两篇博客(线程安全的无锁RingBuffer的实现,多个写线程一个读线程的无锁队列实现)中,分别写了在只有一个读线程、一个写线程的情况下,以及只有一个写线程、两个读线程的情况下,不采用加锁技术,甚至原子运算的循环队列的实现。但是,在其他的情况下,我们也需要尽可能高效的线程安全的队列的实现。本... 阅读全文
posted @ 2015-01-11 21:49 掰棒子熊 阅读(2517) 评论(11) 推荐(2) 编辑
摘要: Vim是一个强大的文本编辑器。良好的配置更能便利对Vim的使用。有时候,我们会在几台不同的电脑上使用Vim. 例如,我们可能在自己的电脑和公司的电脑上都安装了Vim. 有时候,我们需要实现,如果我们配置好了其中一个Vim环境,就能轻松的把这些配置很容易的复制到另外一台机器,甚至于我们更新其中一台机器... 阅读全文
posted @ 2014-12-31 14:49 掰棒子熊 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 在写node.js代码时,我们经常需要自己写模块(module)。同时还需要在模块最后写好模块接口,声明这个模块对外暴露什么内容。实际上,node.js的模块接口有多种不同写法。这里作者对此做了个简单的总结。返回一个JSON Object如下代码是一个简单的示例。1 var exp = { 2 ... 阅读全文
posted @ 2014-12-11 22:34 掰棒子熊 阅读(2995) 评论(4) 推荐(1) 编辑
摘要: 在之前的一篇博客中,写了一个在特殊情况下,也就是只有一个读线程和一个写线程的情况下,的无锁队列的实现。其中甚至都没有利用特殊的原子加减操作,只是普通的运算。这样做的原因是,即使是特殊的原子加减操作,也比普通的加减运算复杂度高很多。因此文中的实现方法可以达到很高的运行效率。但是,有的情况下并不是只有一... 阅读全文
posted @ 2014-12-08 22:36 掰棒子熊 阅读(9581) 评论(9) 推荐(2) 编辑
摘要: 上一篇文章中写了一个重构数据结构,也就是数据聚集的例子。之前还有过一个经历,是重构一个很长的函数,过程大概就是把相关的逻辑聚集起来。我将其称为逻辑聚集。这是一个重构代码逻辑的过程。故事是这样的。在我手上的,是一个由几百行代码组成的函数。程序整体上看起来有比较清晰的代码块,有的代码块很相似,但是细节有... 阅读全文
posted @ 2014-12-04 21:31 掰棒子熊 阅读(362) 评论(0) 推荐(0) 编辑