安装操作系统要不要分区/怎样分区?

  1. 操作系统是win7,8,10? 到步骤3, 操作系统是xp,vista等? 到步骤2 , linux/unix? 步骤 6
  2. C盘分20G,数据放D盘
  3. 爱折腾,喜欢重装玩? 到步骤4 , 否则步骤5
  4. C盘放70G,数据放D盘
  5. 就一个分区,C盘够了
  6. linux没有c分区之类的,你给/boot一个分区,大小500MB,再swap分区一个,大小和内存相同,其它丢/ 文件系统ext4,lvm,btrfs,zfs自选一个即可,lvm比较中庸,zfs可能略麻烦,btrfs兼容性目前还不是很好,有时候会遇到一些莫名的障碍

(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都不能用了.

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

(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

(more…)

CMake 下使用 protobuf

protobuf是google开发的一个序列化和反序列化的库,通过.proto文件定义文件格式,序列化后的数据是binary的,可以在多语言上使用.一般情况下,若客户端和服务端都是自己做的,用protobuf作为通讯协议,无疑是一个不错的选择.

个人一般喜欢用CMake来管理c++工程.那么,cmake下使用protobuf对个人而言是个很重要的事情. (more…)