数组与切片

数组 初始化 指定长度 a := [2]int{1,2} // 指定长度和字面量 不指定长度 a := [...]int{1,2} //不指定长度,有后面的列表来确定其长度 指定总长度,通过索引初始化, 没有初始化的位置使用默认值 a := [3]int{1:1, 2:3} 不指定总长度,通过索引初始化, 最后一个索

iota 用法

用在常量声明中,初始值为0,一组常量同时声明时,其值逐行增加 类似枚举 const ( c0 = iota //c0 == 0 c1 = iota //c1 == 1 c2 = iota //c2 == 2 ) 简写模式 const ( c0 = iota // c0 == 0 c1 // c1 == 1 c2 // c2 == 2 ) 分开的const 分开的const语句, iota 的

交叉编译

1.Mac下编译Linux, Windows Linux CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build filename.go Windows CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build filename.go 如: CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o helloworld-windows helloworld.go 2.Linux下编译Mac, Windows Mac CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build filename.go Windows CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build filename.go 3.Windows下编译Mac, Linux Mac SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build filename.go Linux SET CGO_ENABLED=0 SET GOOS=linux

扩展git功能的一种方式

有时需要根据自己的工作场合去扩展 git 命令,比如 推送到仓库后自动打开浏览器跳转到发起合并求页面 分支命名比较长其相似度比较大时,自动补全不那么有效率,给每个分支编号,输入指定编号即可切换对应的分支 我最推荐的

基本类型以及范围

基本类型以及范围 选择优化的数据类型 MySQL 支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。不管 存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。 更小的通常更好。 一般情况下,应该尽

去除重复行

先sort排序,再去重 :sort //直接排序 :g/^\(.*\)$\n\1$/d //去除重复行 :g/\%(^\1$\n\)\@<=\(.*\)$/d //功能同上,也是去除重复行 :g/\%(^\1\>.*$\n\)\@<=\(\k\+\).*$/d //功能同上,也是去除重复行 使用awk awk '!a[$0]++' file 解析: awk流程是逐行处理的,默认从文件的第一行一直处理到文件最后一行 还

whenever使用方式

根据项目的进展,我们需要实现后台进行定时读取信息的功能,而最关键的实现部分是周期性功能,根据调研,决定使用whenever来实现这一功能。

github:https://github.com/javan/whenever

开发前需要明确的问题

  • whenever是怎样一种周期性机制?
  • whenever能为我们提供什么功能?
  • whenever为周期性任务提供了哪些控制方式?

问题解决

whenever周期性机制

vim中与系统的粘贴和复制

以前就遇到过的问题。有如下情景:

1.假设现在我要将文件a的部分内容复制到文件b中,一般情况,我会用vs或者sp命令打开这两个文件然后用yp进行复制粘贴。但是如果分别用vim打开这两个文件就不能完成上述动作。
2.假设我先在要把vim打开的源代码中的部分内容复制到博客中,一般我会用vim编辑好以后,退出用gedit打开,或者cat一下,再复制到系统剪切板,再粘贴。

今天,对于vim这个没办法跟“外界”交流的特性忍够了,决定解决一下。

1.首先,查看vim版本是否支持clipboard

vim --version | grep "clipboard"1

结果如下:

这里写图片描述

clipboard 前面有一个小小的减号,说明不支持。

2.如果不支持的话,需要安装图形化界面的vim,或者重新编译vim

sudo apt-get install vim-gnome1

ubuntu中添加服务以及开机自启

自定义脚本 编写自己的需要开启自启的脚本,如下: #!/usr/bin/env ruby `cd /home/mc/code/rails_app/master_crawler_trm && nohup rake real_time_extract_word > /dev/null 2&>1` 启动脚本 #!/usr/bin/env ruby start = " sudo -u mc /home/mc/bin/real_time_extract_words " stop = "ps -ef | grep real_time_extract_word | grep -v grep | cut -c 9-15 | xargs kill -9" action = ARGV[0] if action == 'start' system(start) puts "启动成功" elsif action == 'stop' system(stop) puts "

Rails连接多个数据库

假如已经连接的的数据库名是 word_development, 现在需要添加一个名为 trademark_development 和 trademark_test 的本地数据库 步骤如下: 添加配置信息 在 config/database.yml 添加如下信息 trademark_default: &trademark_default adapter: postgresql encoding: unicode pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> trademark_development: <<: *trademark_default database: trademark_development # 如果是远程的数据库添加如下信息 #username: username #password: 123456 #host: xxxx #port: xxx trademark_test: <<: *trademark_default database: trademark_test 关

触发器创建示例

摘抄自 《posrgreSQL 修炼之道 从小工到专家》 触发器(trigger)是一种由事件自动触发执行的特殊的存储过程,这些事件可以是对一个表进行 INSERT,UPDATE,DELETE 等操作 触发器经常用于加强数据库的完整性约束和业务规则上的

Rails5中的autoload和eager_load

翻译并整理: https://collectiveidea.com/blog/archives/2016/07/22/solutions-to-potential-upgrade-problems-in-rails-5 https://blog.bigbinary.com/2016/08/29/rails-5-disables-autoloading-after-booting-the-app-in-production.html autoload和eager_load autoload: 在常量使用之前不会加载,只有当使用一个当前不存在常量时,会在 autoload_paths 寻找,然后加载它,当在给定的目录中找不到这个常量时,就会触发错误。并且 autoload 是非线程安

ruby中hash的排序

翻译自 https://medium.com/@florenceliang/some-notes-about-using-hash-sort-by-in-ruby-f4b3a700fc33 ruby中的sort和sort_by 是两个非常有用的工具,我们可以按照自己的想法排序。比如我们可以按照名字字母表或者名字的长短进行排序。但是ruby文档中却没有过多的说明,因此本文主要说明一下