在一个猪场里,两只小猪诞生了。
猪大从小就知道自己要做一只土猪,可以在更好的环境中生活,每天吃蔬菜水果。于是,他每天控制食量,坚持锻炼。终于在选拔的时候,成功地被选为土猪,进去土猪基地生活。而猪二却相反,他觉得猪就应该每天吃吃睡睡喝喝,有空的时候看看隔壁的小花猪猪,每天活得那么累,还是猪么?虽然在和猪大的聊天中,也挺羡慕猪大现在的生活,可是他很清楚自己最想要的是什么。
一晃几年过去了,猪大和猪二在超市的生鲜部重逢。一个贴着土猪50元/斤,一个贴着家猪13元/斤。
朝花不待夕拾
在一个猪场里,两只小猪诞生了。
猪大从小就知道自己要做一只土猪,可以在更好的环境中生活,每天吃蔬菜水果。于是,他每天控制食量,坚持锻炼。终于在选拔的时候,成功地被选为土猪,进去土猪基地生活。而猪二却相反,他觉得猪就应该每天吃吃睡睡喝喝,有空的时候看看隔壁的小花猪猪,每天活得那么累,还是猪么?虽然在和猪大的聊天中,也挺羡慕猪大现在的生活,可是他很清楚自己最想要的是什么。
一晃几年过去了,猪大和猪二在超市的生鲜部重逢。一个贴着土猪50元/斤,一个贴着家猪13元/斤。
由于我的MacBook pro 接着显示器,显示器上有声音输出,而且又使用了boom2软件,当我插入耳机打算听音乐的时候每次都需要选择声音的输出,真的是很麻烦,我打算把这个转换输出的操作自动化。
目标:每次当audio有变化时,选择耳机选项,如果没有耳机选择则什么都不做。
用AppleScript实现如下:
1 | tell application "System Preferences" |
脚本的难点是判断Headphones选项,exists (row 1 where value of text field 1 is "Headphones")
苹果的选择区域分别为scroll area -> table -> row -> text field
具体的操作实现了,还剩下触发事件。
这个时候就要用到keyboard Masetro了,选择一个trigger The audio output device changes
再执行上面的脚本,搞定!
gradle的依赖管理默认具有传递性,A依赖B,B依赖C,则A依赖C。
也可以将这项配置关闭,这样A所依赖的B和C需要手动添加。
1 | //整个项目取消依赖传递 |
如果D也依赖C,而且B依赖的C的版本为1.0,D依赖的C的版本为2.0
gradle会如何选择?
默认选择最新版本,不会报错。所以在默认配置下,依赖会生产冲突。
依赖冲突的解决方法应该是定制化的。
强制设置某个版本
1 | //整个项目统一使用某个版本 |
去除某个依赖,其实就会使用没有去处的依赖的版本,也可以使依赖一致。
1 | dependencies { |
2018年的第一天,杭州的阳光明媚,麦兜正在自己的窝里晒着太阳,一切都安好。
过去的2017,工作上依旧没有建树,但是每一天也过的充实,在工作中对中后端的实践,算是react入了门,再捣鼓了下vue,都能安心地运行。年末,易控脂的项目,重拾了java,开始java web的实践,技术上小小转变,却带来了思想上的大大进步。以前的自己,总是秉着“学以致用”的原则,觉着项目能安稳地跑在线上,就万事大吉了。技术是为业务服务的,是工具,会使用就行。至于技术本身,点到即止。现在发现是“项目限制了我的想象力”,之前接触的项目几乎不存在性能问题,这让我没有深入技术的理由。当项目开始有要求,需要调优的时候,我绞尽脑汁,却束手无策。只有当你完全了解一个事情,掌握来龙去脉,你才会觉得自己能够控制它,心里不会忐忑不安,因为你知道哪里会有什么问题,出现问题了怎么解决。说回技术,前端的圈子像是娱乐圈,每天争奇斗艳,八卦不断,让人眼花缭乱,很是热闹,井喷式的发展,让我有点迷失了方向。但是,入门简单,很容易上手,寥寥几断代码,就能所见即所得,让人成就感爆棚。后端则就寂寞地多,几百行的代码,密密麻麻,感觉每一行代码哪里都很简单,组合在一起却苦涩难懂。其实这些都是表面的,任何复杂的系统,不管是前端还是后端,对于入门者来说会有各种各样的感受,但是拨开云雾,看清里面的世界,其实就是简单的一花一木,不就是简单的“hello world”吗?所以不积硅步无以至千里,脚踏实地,写好每个一个“hello world”,才能创造出一个世界!在新的一年里,我希望自己不要眼高手低,夯实基础,把每个环节的知识点都能融会贯通,了解彻底,了然于胸。将工匠精神融入代码中,像猫咪一样,目光坚定,直视前方,百尺竿头更进一步!
生活中,杨雪已经怀孕3个多月,宝宝一直很健康,希望可以平安健康地来到这个世界,我要在接下来的几个月的时间,做好准备,介绍这个美好的世界给她!
安装Docker CE 需要版本7以上的64位centos,而且必须启用centos-extras源。
1 | sudo yum remove docker docker-common docker-selinux docker-engine |
安装依赖包
1 | sudo yum install -y yum-utils \ |
配置稳定版本的源
1 | sudo yum-config-manager \ |
1 | sudo yum -y install docker-ce |
1 | sudo systemctl start docker |
默认情况下,
docker
命令会使用 Unix socket 与 Docker 引擎通讯。而只有root
用户和docker
组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用root
用户。因此,更好地做法是将需要使用docker
的用户加入docker
用户组。
1 | sudo groupadd docker |
1 | sudo yum remove docker-ce |
删除docker相关的文件
1 | sudo rm -rf /var/lib/docker |
surround.vim 可以快速的选择修改在包围里面的字符串,例如冒号,引号,大括号等
cs
修改ds
删除ys
添加废话不多说,上代码:
假设有一段字符: "hello vim!"
输入cs"'
变成'hello vim!'
cs'<q>
=> <q>hello vim!</q>
cst"
(当包围是多个字符时)
=> "hello vim!"
ds"
去除”
=> hello vim!
ysiw[
iw是一个单词,这里可以使用任何选择
=> [ hello ] vim!
在选择模式下输入S+你需要包围的字符串
.
命令来重复上面的命令,则需要再添加一个插件vim-repeat:help
开始使用帮助:h pattern
查看pattern的使用帮助每个帮助主题都有上下文
前缀 | 例子 | 上下文 |
---|---|---|
: |
:h :r |
命令模式下以冒号开始的命令 |
无 | :h r |
normal mode |
v_ |
:h v_r |
visual mode |
i_ |
:h i_CTRL-W |
insert mode |
c_ |
:h c_CTRL-R |
ex command line |
/ |
:h /\r |
正则搜索帮助 |
' |
:h 'ro' |
选项,这里表示以readonly的方式打开 |
- |
:h -r |
参数 |
如果你知道 ctrl+r ,只要在命令行中输入:h ctrl-r
,然后再按ctrl+d,vim 会列出所有不同上下文的关键字
官网地址: shortcat
kill mice, one at a time.
过度使用trackpad之后,感觉手很累,效率也比较低,开始慢慢成为了键盘党,从此以后手也轻松了,心也舒畅了,妹子们也纷纷投来了崇拜的目光!
shortcat能支持绝大多数的应用,基本可以做到脱离鼠标,使我们的效率更高。