2016年12月28日 星期三

高等遊民的意思



高等遊民,是日本明治時代至昭和初期大學畢業後沒就業學生的稱呼,他們以閱讀為主要活動,政府認為他們無所事事,容易接觸自然主義社會主義無政府主義等危險思想。
高等遊民以讀有興趣的書為主要活動,很多人最後成為作家,如夏目漱石石川啄木川端康成
最終在昭和初期,因對中戰爭和一系列對外戰爭帶來的戰爭景氣和國家總動員法實行,就職困難開始解決。


2016年12月27日 星期二

[tech_note] firebase push id Unique Identifiers method guid 產生方法


The Firebase Blog: The 2^120 Ways to Ensure Unique Identifiers https://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html

昨天剛好看到一篇 firebase 提到,怎麼產生不重複的 guid的方式。


What's in a Push ID?

A push ID contains 120 bits of information. The first 48 bits are a timestamp, which both reduces the chance of collision and allows consecutively created push IDs to sort chronologically. The timestamp is followed by 72 bits of randomness, which ensures that even two people creating push IDs at the exact same millisecond are extremely unlikely to generate identical IDs. One caveat to the randomness is that in order to preserve chronological ordering if a client creates multiple push IDs in the same millisecond, we just 'increment' the random bits by one.
To turn our 120 bits of information (timestamp + randomness) into an ID that can be used as a Firebase key, we basically base64 encode it into ASCII characters, but we use a modified base64 alphabet that ensures the IDs will still sort correctly when ordered lexicographically (since Firebase keys are ordered lexicographically).

使用 timestamp + randomness 在使用 base64 encode 而成,實作上,只要是產生的時候, timestamp 還沒改變,就把最後一個 bit +1 。 
這些gits 是個版本的實作方式。
JavaScript code for generating Firebase Push IDs https://gist.github.com/mikelehen/3596a30bd69384624c11
Firebase push algorithm in Python (ref: https://www.firebase.com/blog/2015-02-11-firebase-unique-identifiers.html) https://gist.github.com/risent/4cab3878d995bec7d1c2


ref
[tech_note] hackpad 的 unique padid 產生方式 / etherpad 與 appjet - peicheng note
http://peichengnote.blogspot.tw/2015/10/technote-hackpad-unique-padid-etherpad.html
Parse.com ObjectId 產生方法 unique id - peicheng note http://peichengnote.blogspot.tw/2016/01/parsecom-objectid-unique-id.html

2016年12月26日 星期一

[電影] 火線掏寶 War Dogs




火線掏寶》(英語:War Dogs,前稱作Arms and the Dudes)是一部於2016年上映的美國傳記犯罪戰爭喜劇片,由陶德·菲利普斯執導,並和史考特·巴德尼克布萊德利·庫柏、布萊恩·祖里佛共同監製,而劇本則由菲利普斯、史蒂芬·欽、傑森·斯米洛維奇共同負責。電影改編自蓋·羅森在《滾石》上撰寫的文章《Arms and the Dudes》[3]。由麥爾斯·泰勒喬納·希爾分別飾演主角大衛·帕克歐茲伊弗倫·佛羅里,其他主演包括安娜·德哈瑪斯J·B·布蘭克
《火線掏寶》於2016年8月19日在美國上映。

故事改編自真人真事。主要敘述於07年冬天,兩個從未上過戰場的年輕軍火商人大衛和伊弗倫為了想要一夜致富而接受了美軍和阿富汗的軍火招標,但兩人很快察覺到自己將深陷於危機之中,這使得他們必須想辦法平安回家。


抓準機會跟把握時機,還有人面對一些誘惑的時候又會怎麼去應對。



2016年12月23日 星期五

Titan Gremlin Server start http rest server solve "not a WebSocket handshake request: missing upgrade”




Titan 1.0 配置好啟動後,如果出現
“not a WebSocket handshake request: missing upgrade”
其實預設是啟用 WebSocket 的

如果要啟用 Gremlin  server 的 http interface

可以在下面 file 註解到websocket channel 增加這行 啟動 HttpChannelizer

 conf/gremlin-server/gremlin-server.yaml file:


channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer

三年的試驗 three years startup retrospective



上一篇文章促使我開始反思,
從 2013 年聖誕節前夕,上線了一個service
一路走到可以自動營運的程度。

以前前期來說,一直投入不少時間在摸索,不過到後來真的可以驗證,這樣的模式是有一定的成效的。

這些服務,主要就是在測試一些技術性的細節。

驗證一些,人數不需要太多,但是有一定經濟的規模的商業模式。

期望,在未來的一年內,能夠基於這樣的基礎來從事新的試驗。



2016 聖誕節前夕







2016年12月22日 星期四

Derek Sivers 回復 創業的堅持


Derek Sivers  一直是我很推崇的(前)創業家

2016的年尾聲,他整理了他回答的三萬多個問題給一萬多個人的內容摘要。

In 2016, I answered 30,904 emails from 11,971 people. It was practically a full-time job. These are the most common questions.

Frequently Asked Questions | Derek Sivers
https://sivers.org/faq


有一個問題,為何我的事業或讀者沒有快速的增長?
這是個很有趣的問題跟回答,回答他的過去與看法。

CD Baby 在 還沒起飛前,他連續四年每天都工作12 ~18 個小時。
他從1994 年起,也連續不停寫作了22年。

告訴我們, Keep pushing, but be patient.

Why isn’t my business or audience growing faster?

I worked on CD Baby for 12-18 hours per day, 7 days per week, for four years before it really took off.
As for an audience, I’ve been creating and posting things online for free non-stop since 1994. Yep, that’s 22 years now. And keeping in touch with everyone I met that whole time.
Keep pushing, but be patient.


2016年12月19日 星期一

[blog] 2016 年文章發文數回顧


最近每一年都又統計回顧一下blog 的發文數
2017 的發文數截至目前加上這篇應該是 78 篇
遠遠少於去年 155篇的一半阿

由於時間的抽空與多樣的改變,導致自己也越來越隱藏對自己的感情與對話了。


 



[linux] find 找出 檔案大小是0 且 檔名長度的文件 並且刪除



找出檔案大小為零 且 檔名長度是6 的檔案

find ./ -size 0 -name "??????"

接著再混搭 xargs

find ./ -size 0 -name "??????"  | xargs -p rm -rf

使用 -p 可以先看一下執行怎樣的 command

確認無誤後使用

find ./ -size 0 -name "??????"  | xargs rm -rf

2016年12月6日 星期二

[docker] how to install docker on Ubuntu 16.04 如何在 Ubuntu 16.04 安裝 Docker



如何在  Ubuntu 16.04  安裝 Docker
在 EC2 上啟用了一台新的 instance ,透過下面步驟安裝 docker 的環境


  • uname -r
    確認一下  kernel version 是在 3.10 以上,不過這個在 16.04  上預設是必然的
  • sudo apt-get update
  • sudo apt-get install apt-transport-https ca-certificates
  • sudo apt-key adv                --keyserver hkp://ha.pool.sks-keyservers.net:80                --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  • echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
    增加 source list 並且 更新
  • sudo apt-get update
  • apt-cache policy docker-engine
    驗證一下 apt 來源是否是正確的
  • sudo apt-get update
  • sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
  • sudo apt-get update
  • sudo apt-get install docker-engine
  • sudo service docker start
  • sudo docker run hello-world
  • sudo docker ps

[influxdb] select MEASUREMENT ERR: error parsing query: found FROM, expected identifier at line 1, char 15





使用 influxdb  command line 要 select MEASUREMENT 時

ERR: error parsing query: found FROM, expected identifier at line 1, char 15
> select * from foo2.counter
ERR: error parsing query: found foo2.counter, expected identifier at line 1, char 14


原來是要加上 double quote

> select value from "foo2.counter"
name: foo2.counter
------------------
time value
1480992498000000000 2


select MEASUREMENT ERR: error parsing query: found FROM, expected identifier at line 1, char 15


[0.9.2] (regression) Error reading from measurement named "Measurement" · Issue #3467 · influxdata/influxdb
https://github.com/influxdata/influxdb/issues/3467