在项目中踏完一系列坑后总结出来,消息的处理有两个要务:
- 消费一定要快,我们喜欢供小于求的市场。生产者生产的消息要满足不了消费者才行。
- 任何消息都不能丢,因为这都是数据啊,即使处理不了也得找地方存着。最好每次的消息都存着,之后就变成了event sourcing(另一个大坑)。
在项目中踏完一系列坑后总结出来,消息的处理有两个要务:
这是最近看到的一个算法题,第一眼看过去连题目都看不懂啊囧。非计算机本科生表示对算法十分无力。第一直觉肯定是把ASCII的字符都换成int,然后题目就可以变成How to count the number of set bits in integer. google一下还真有[答案](How to count the number of set bits in ASCII string).第一个高分回答表示各种位操作都看不懂。传说中的Hamming_weight算法。真是给跪了。
突然想到Java的Integer类本来就有个toBinaryString方法,再加上最近正好研究UUID生成,觉得用现成的方法实现一下。
最近一个使用Spring的项目中需要进行性能调优。方式基本上是编写新的代码实现原来一样的业务逻辑,只是实现方式有一些调整,例如增加cache,优化算法等等。
一开始大家希望直接在原有代码基础上修改,但是这样一来,就要跟上每周一次的发布节奏,一周搞定难度太大。于是决定拷贝出的package来重构。在没启用之前这个package下都是dead code。这样做的好处有几点:
近一个月拿Vue.JS做一个小项目练手。项目本身的API是现成的,而且都是json格式,所以前端选型自然会选择MV*M的框架。由于做了一段时间的angularJS,感觉对于这个工期很短的项目angular显得有些庞大了。所以尝试了一下Vue.JS。
Docker官网出了最新的Docker For Mac.不是以前的基于virtual box的Toolbox了。内心小激动,赶紧下载安装。装完之后,menu bar上会有一个小鲸鱼的图标,可以restart,而且有GUI做一些额外配置,比如最需要的Proxy和文件mount。
最新升级到最新系统的MAC貌似不能安装Scrapy了,lxml怎么安装都没权限。所以采用安装虚拟python环境的方法来解决吧。Scrapy官方也不建议用MAC自带的python, Installation Guide.
~ pyenv install 2.7.1
完成后基于这个版本的python创建一个virtualenv
~ pyenv virtualenv 2.7.11 venv-labs
会自动给这个虚拟env安装pip,wheel等工具,然后我们来使用这个创建出来的env作为我们默认环境
~ pyenv global venv-labs
切到Pycharm里面,在Project Interpreter里面添加一个env,指向~/pyenv/versions/venv-labs/bin/python
.大功告成。开始愉快的安装Scrapy吧。
自己做项目需要一个日历控件,网上搜了半天觉得淘宝旅行的日历最合适
小项目也有可能会分很多小的module开发,毕竟Maven早就支持了Aggregator Project。
1 | project |
最近被这个问题折磨了两天。
因为之前装了autojump,后来又卸载了才导致的,这里推荐使用z,因为oh my zsh自带这个插件,编辑~/.zshrc
文件,在plugins=(git)
这行中加上z
变成plugins=(git z)
,然后source ~/.zshrc
重新加载配置文件,就好了。
言归正传,对于tab自动补全crash的解决,需要执行以下的命令:
1 | autoload -U compinit && compinit |
如果重启以后又不工作的话,把这条命令加入到 ~/.zshrc 中。