Go the right way.

基础类型

1. string, []byte, []rune 的区别

rune 是 int32 的 alias, 在 Go 中,字符串是以 UTF-8 为格式进行存储的,在字符串上调用 len 函数,取得的是字符串包含的 byte 的个数

1
2
3
4
5
6
7
8
s:="←↑→↓"
fmt.Println(len([]rune(s))) => 4
fmt.Println(len([]byte(s))) => 12
fmt.Println(len(s)) => 12

s:="Hello你好←↑→↓"
fmt.Println(len(s)) => 23
fmt.Println(len([]rune(s))) => 11
  • Go source code is always UTF-8.
  • A string holds arbitrary bytes.
  • A string literal, absent byte-level escapes, always holds valid UTF-8 sequences.
  • Those sequences represent Unicode code points, called runes.
  • No guarantee is made in Go that characters in strings are normalized.
  • 英文字符串由 uint8 整型数组(字节数组)组成 每个字符对应一个字节 参考ASCII 码
  • 一个汉字(在go中就是一个rune类型)可能由三个或者四个字节组成

Ref:

閱讀全文 »

Node the right way.

其他

  1. node 安装时虽自带 npm bin, 但实际上 which npm 发现平时终端里并不是使用自带的,而是使用 sudo npm install -g npm 安装的 npm-cli, 所以在查看版本时需要多留个心眼,which 一下最放心。

1. 安装配置 rtmp server

安装 nginx 以及 nginx-rtmp-module

以 MacOS(Yosemite) 为例,

1
2
3
4
brew uninstall nginx
brew tap nginx-full
brew options nginx-full
brew install nginx-full --with-rtmp-module

nginx

配置位置: /usr/local/etc/nginx
启动: sudo nginx (如果 pid 文件为空可以执行这个命令先)
重启: sudo nginx -s reload
查看编译参数: nginx -V

閱讀全文 »

我的初恋💗

常用命令

  1. rails generate scaffold User name:string email:string
  2. bundle exec rake db:migrate
    之所以使用bundle exec rake,而不是使用rake,是希望使用在Gemfile指定的rake版本
  3. rails new sample_app --skip-test-unit
  4. rails server -p 7777 rails启动使用其他端口
  5. rails console —sandbox 保证退出console的时候数据会清空
  6. rails g model Post title:text content:text -p
    -p 表示 pretend会列出来这个命令会执行什么操作,会生成什么文件,但不会去真正执行这个命令。
    閱讀全文 »

Lixian 115 (115 离线下载命令行工具)

1
2
3
4
5
6
7
115 离线下载命令行工具

Options:
-d, --directory 本地种子目录
-t, --torrent 本地种子文件(单个)
-m, --magnet 磁力链(链接后加 \n 最多添加15个)
-v, --version 版本号

Install

1
$ npm install -g lixian-115

Usage

Login (登录)

由于 115 的登录策略改变,登录功能已废。
请在浏览器登录后,推荐使用 EditThisCookie 插件导出 cookies 到 {HOMEPATH}/.115.cookies 即可正常使用。cookies 只支持分号分隔的格式,a=1;b=2;c=3 #3

Add multiple torrents (本地种子目录)

1
lx115 -d path/of/torrents/folder(存放 .torrent 文件的文件夹路径)

Add torrent (单个本地种子文件)

1
lx115 -t ~/Desktop/完美假妻168.Lock.Me.Up.Tie.Him.Down.2014.HD720P.X264.AAC.chinese.CHS.Mp4Ba.torrent

Add magnet (磁力链,链接后加 \n 最多添加15个)

1
lx115 -m "magnet:?xt=urn:btih:...\nmagnet:?xt=urn:btih:...\nmagnet:?xt=urn:btih:...\nmagnet:?xt=urn:btih:..."

License

MIT © Liu Jin

雪球股票助手 for Mac Menubar

Electron(原名 Atom Shell) 是一个原本为 Atom 编辑器设计的,跨平台的应用外壳(Application Shell)。

它将 Chromium 和 Node.js 的事件循环整合到了一起,同时提供了一些与原生系统交互的 API。我们可以通过 Electron,利用熟悉的 Web 技术去构建具有原生体验的跨平台的桌面应用。

『雪球股票助手』因项目依赖 menubar 模块,暂时只支持 Mac 平台,有兴趣的同学可以去给 menubar 提交 Windows 和 Linux 的 patch。

说明

  • 编辑 config.json, 修改 uid 为你的雪球用户 id
  • npm install 安装依赖模块
  • npm start 不经过打包,从命令行直接运行『雪球股票助手.app』
  • npm run build 打包『雪球股票助手.app』

TODO

  • [x] 排序
  • [ ] 压缩打包程序
  • [x] 修正涨跌幅 0% 的颜色

真相永远只有一个!
– 江戶川柯南

自称『新一代社交软件』的『抱抱』,被很多人称为又一个『陌陌』。
虽然阅后即焚、匿名社交已经不是什么新鲜概念了,但是作为一名产品狗,自从 Snapchat 被爆出裸照丑闻之后,我就一直很关注这些以阅后即焚为卖点的APP的安全性和对用户隐私的保护措施。
是否真的阅后即焚?
是否真的没有获取用户身份信息?
是否真的匿名?

本教程将通过 mitmproxy 最基本的使用方法,带你还原事实的真相。

  • 难度指数: 新手入门
  • 使用工具: mitmproxy
  • 示例系统: Mac
  • 适合人群: 比如像我这样的产品狗
閱讀全文 »

能用 💰 解决的问题,都不叫问题,
能用 ⌚️ 解决的问题,都不叫问题。

1. Swift / Objective-C 混合使用

2. Swift/OC 混用,快速创建桥接头文件

要在 Swift 项目中使用 Objective-C,需要一个Objective-C Bridging Header文件。
最快的创建方法是新建一个 Objective-C 文件,然后 Xcode 就会弹出一个对话框问你是否创建一个头文件,确认,然后再删掉这个没用的 Objective-C 文件即可。

Ref:快速创建一个桥接头文件

3. 如何打开 Swift REPL?

Xcode6 Beta 和 Xcode 6.0 和 Xcode 6.1 打开的方法都不一样,最新解答可以跟踪SF

1
2
sudo xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer
xcrun swift 或者 lldb --repl

閱讀全文 »

春色满园关不住,一枝红杏出墙来。
– 科学上网办

5分钟?就能科学上网?!!!!
有人肯定要说我标题党了,
如果你已经有一个 DigitalOcean(以下简称 DO) 账号或者 一个 VPS,
5 分钟已经算多了。
不信你自己掐表算,不废话,上教程。

閱讀全文 »