GitLab的安装和升级, 一把辛酸泪

警告:

  • gitlab 提供了一键安装包, 这种从 source 编译的方法并不有趣, 每次升级和改配置都极其麻烦, 它只会浪费你现在以及预期的未来的生命, 要是打算用它做生产环境, 那绝对是你的不智
  • 在 gitlab 早期, 并没有那么好的条件, 因为历史原因才被迫这么做的. 本文作为历史存档, 仅作为参考, 主要目的是记录一段过去的血泪教训.

更新了下 gitlab. 留个 log. 安装可以按照说明文档 , 若是6.x升级到7.14, 可以使用这个文档: , 若7.14升级到8.0, 则可以使用这个文档: . 一步一步走下去, 介绍得非常好. 本文也毫无意愿去吧内容翻译一下. 只是介绍下错误的处理. Read more

一个c++的索引总结

之前介绍过倒排索引,不过因为python实现的,效率够呛,而且因为是demo,很多细节完全没有考虑. 最近用c++断断续续终于写了一个稍微更好一点的程序(的半成品),若有兴趣,求 fork & star. Read more

docker 限制容器使用系统资源

docker 是一个非常不错的容器, 让我们可以先把程序部署在镜像中, 然后再放到某个实体机器上跑. 若一个实体机中我们使用多个容器, 我们可能需要限制一个容器占用的系统资源. 比如内存, CPU 等 Read more

Gitlab服务端redis配置错误的一个解决

在gitlab配置完毕后,我们push一个repo,效果可能如下:

$ git push origin master:dev
enjoy code, enjoy life.
Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: An unexpected error occurred (redis-cli returned 1).
To git@xxx:root/my_project.git
 * [new branch]      master -> dev

这儿它提示得已经足够清楚,redis有问题.不过也再也找不到其它提示了. Read more

inliner warnings with Map literal and -optimize

scala在编译&优化的时候,有时候会返回个inline warning.但是,实际上我们写代码已经不能再优化了. 比如如下这个例子:

yu:~ yu$ scala -version
Scala code runner version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL
yu:~ yu$ scala -optimize -Yinline-warnings
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_05).
Type in expressions to have them evaluated.
Type :help for more information.

scala> object O { Map(
     |   "a" -> 0, "b" -> 1, "c" -> 2, "d" -> 3, "e" -> 4,
     |   "a" -> 0, "b" -> 1, "c" -> 2, "d" -> 3, "e" -> 4,
     |   "a" -> 0, "b" -> 1, "c" -> 2, "d" -> 3, "e" -> 4,
     |   "f" -> 5, "g" -> 6, "h" -> 7, "i" -> 8) }
warning: At the end of the day, could not inline @inline-marked method ->$extension
warning: At the end of the day, could not inline @inline-marked method ->$extension
warning: At the end of the day, could not inline @inline-marked method ->$extension
warning: At the end of the day, could not inline @inline-marked method ->$extension
defined object O

我们可以看到有个issue ,讲的就是这件事.它是12年底建立的,但一直没啥好的回答...可怜我为了关掉这个warning连带好几个其它warning都不能用了.

不过,今年五月终于有结果了.

Read more

a workaround of false negative in missing interpolator warning

一般情况下,我们会倾向于打开各种warning,以便规范我们的代码.不过,scala有时候有些warning也是蛮扯的.比如这么一段

$ scala -Xlint:missing-interpolator
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_05).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val key="value"; println("$key")
<console>:12: warning: possible missing interpolator: detected interpolated identifier `$key`
        println("$key")
                ^
$key
key: String = value

Read more

psjrs: 另个基于play的web工程模板

psjrs是一个做了一些修改的scala web工程, 你可以在此基础上很容易得开发出一个你要的工程.

工程基于play, silhouette 等框架. play让人可以很容易搭建一个web service, 而silhouette则提供了用户认证相关的服务. 此外, 我还对配置文件,文件内容进行了一些定制, 使得你可以更容易得组织内容.

Read more

docker 几个错误的fix

  1. SELinux安全系统和btrfs文件系统不和 尝试启动docker service失败,使用systemctl查看提示如下:
# systemctl status docker.service -l
...
SELinux is not supported with the BTRFS graph driver!
...

Read more

CentOS 7下播放音乐

因为避免版权问题,CentOS默认不支持mp3,因此需要安装第三方repo来搞定这个。

首先要安装基本扩展repo,repoforge或者epel至少要个。 然后安装nux-dextop扩展库 Read more

Two Two

这是HackerRank上的题目,在algorithm-string的倒数第二题.因为是练习scala,所以理所当然用scala来实现 Read more

边做边学, 在 HackerRank 上学习 rust

hackerrank是一个OJ,一个很有意思的特点是可以使用各种各样乱七八糟的代码来提交.最近在学rust,使用它来一边提交一边学东西. Read more

怎样让 sbt 强制要求以 UTF-8 编码编译&运行文件

一个简单的方法是, 配置环境变量添加一个 option 到 JAVA_TOOL_OPTIONS

比如如下:

export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"

在windows 下, 可以在环境变量里面添加个key为 JAVA_TOOL_OPTIONS, value 为 "-Dfile.encoding=UTF8"

Read more

plist 的格式转换

OS X的配置文件一般是plist.存放在Library/Preferences之类的地方.格式为XML.但最近OS X开始把plist变成binary的,文本打开查看变得很困难. Read more