読者です 読者をやめる 読者になる 読者になる

cygwinでredis-3.2.5コンパイル

(追記)これを書いたときは知らなかったのですが、Windows用のRedisがあるのでそれを使った方がいいと思います。
RedisをWindowsにインストール - Qiita


ちょっと苦労しました。

このバージョンではhiredisなどが追加されており、まとまった日本語の情報がないので一応書いておきます。

まずcygwinの必要なパッケージが無ければ入れておきます(apt-cygじゃなくてsetup.exeでもおそらく大丈夫)。
(もしapt-cygがいいなら「git clone https://github.com/transcode-open/apt-cyg.git」そしてapt-cygをPATHが通ったところにコピーで。)

apt-cyg install openssh automake gcc-core libevent2.0_5 libevent-devel ncurses libncurses-devel pkg-config make vim git procps emacs util-linux 
apt-cyg install ruby subversion 
apt-cyg install libgmp-devel libcrypt-devel curl
gem install bundler

まずダウンロード、

wget http://download.redis.io/releases/redis-3.2.5.tar.gz
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5

関連するヘッダとソースを以下のように修正します
(行番号はコピーしないで下さい。違うバージョンでうまく行かなかった場合はメッセージをよく見て修正して下さい)。
サブディレクトリ内で必要なものはmakeしておく。
(jemallocはうまくいかないので調査中)

grep "Data types" src/*
vi src/server.h

453 #ifdef __CYGWIN__
454 #ifndef SA_ONSTACK
455 #define SA_ONSTACK 0x08000000
456 #endif
457 #endif
458 
459 #if defined(__CYGWIN__)
460 #define strtold(a,b)    ((long double)strtod((a),(b)))
461 #endif
462 
463 /*-----------------------------------------------------------------------------
464  * Data types
465  *----------------------------------------------------------------------------*/

cd deps/
vi hiredis/net.c

52 #include "sds.h"
53 
54 /* Cygwin Fix */
55 #ifdef __CYGWIN__
56 #define TCP_KEEPCNT 8
57 #define TCP_KEEPINTVL 150
58 #define TCP_KEEPIDLE 14400
59 #endif
60 
61 /* Defined in hiredis.c */

# make lua hiredis linenoise geohash-int jemalloc
make lua hiredis linenoise geohash-int

cd ..
make

うまくいったらサーバー起動

find * -name 'redis-server*'
./src/redis-server.exe

別のターミナルでクライアント起動

./src/redis-cli.exe
127.0.0.1:6379> set lesson 1
OK
127.0.0.1:6379> get lesson
"1"

警告がけっこう出てましたが、とりあえず使えてますね


参考:
kakakikikekeのブログ: Cygwin上にRedisをインストール
Build redis-2.8 on Cygwin - Winse Blog (中国語)

(追記)jemallocが無いせいかはわかりませんが、redis-benchmarkなどをすると動作が不安定なことがわかりました。
個人的な趣味以外の使用はお控え下さい。

とっち式ダイエット1年のまとめ

お疲れ様です!

 

ダイエットを初めていつの間にか1年経ってたのでまとめてみます。

(まだわからないことも多いですが、区切りとして。)

 

ざっくりまとめると

  • 結局、厳しい糖質制限(糖質1食5g、1日20g以内)+激しい筋トレ(週1か2回以上、と毎日ストレッチ)が短期的にはめちゃくちゃ効く
  • でも体に優しくないので厳しいのは10日〜2週間程度行い、そのあとは『緩い糖質制限(野菜をたっぷり食べて1食だけ糖質を入れる(夜がオススメ))と筋トレ』(完全無欠ダイエット:「最強の食事」参照)がいい。もし痩せたいと思ったら年に1回くらい、上記の厳しい減量をする。

今のところのTODO

  • 指先がからからに乾く(筋肉が増えたから?糖質制限のせい?水分不足?)
  • マッサージの先生に筋肉が固いと怒られた(ストレッチが足りない?上記のせい?)

 

 やったこと詳細

とりあえず始めてみる期(2015/11/01〜2016/01/13)

よくわからないなりに「ライザップの真似をすれば痩せるんじゃないか」という仮説を検証するためにダイエットを始めてみた。
自己最高の体重になっちゃったし、2年に1度は健康診断でE判定だったので。

最初はとちザップと言ってましたね。。

 

やったこと(最初は探り探り)

  • 糖質制限っぽいことを始める(炭水化物:脂肪:タンパク質=7146106)
  • 家で腕立てとかスクワットとかランジとか腹筋っぽいことをする(ウェイトはペットボトルに水を入れてトートバッグに詰めたりリュックに詰めたり)
  • 筋トレとストレッチはYoutubeを参考にした
  • プロテインを毎日2杯くらいと筋トレのあとに飲む(2015/11/11〜)
  • MyFitnessPalで栄養素を管理(2015/11/17〜)
  • この頃はたまに走ってたみたい。4〜5kmくらい(今はマシンであっためる程度くらいしか走らない)

結果

  • まあまあ減る
  • 体重  :86.25kg → 83.20kg (-3.05kg)
  • 体脂肪率:23.20% → 21.70% (-1.5)
  • 体水分率:56.5% → 60.2%  (+3.7)
  • (後でわかるが体水分率は意外と重要)

 

ケトジェニックダイエット期(2016/01/14〜1/30)

北島達也先生の言うケトジェニックダイエットを始める。

  • 糖質は毎食5g以内、1日20g以内
  • 目標は体脂肪率をなるべく減らすこと。体重は10kgくらい減らしたかった。
  • かなりハードで、野菜や味噌汁、豆腐や調味料も気を使わないといけない。
  • 実際のつけてある栄養素は平均で、炭水化物:脂肪:タンパク質=13.6:62104
  • ハードすぎるので2週間以内にして、そのあとは野菜をたっぷり食べて1食糖質を入れるくらいがオススメ。詳しくは最強の食事という本を。
  • 糖質を入れるのは睡眠のためにも夜がいいと思う
  • 筋トレは、少し筋力が上がって重りが多くなる程度。内容はだいたい同じだが、少しマニアックなのも増える。アーノルドプレスとか。

結果

  • 短期間でかなり減る(短期的なダイエットにオススメ)
  • 体重  :83.20kg → 79.05kg (-4.15kg)
  • 体脂肪率21.70→ 17.30% (-4.4)
  • 体水分率:60.2% → 64.0%  (+3.8)

 

ちょっと緩めるが風邪をひいたり(2016/01/31〜3/14)

  • 飲み会があったりして緩める
  • が風邪をひく。かなり長引く(2/13〜2/26)
  • なんとなく基本的にソイプロテイン、筋トレ後だけホエイにする。(3/1〜)
  • 家のでは重りが足りなくなって、会社にあったジムに通ったり(2016/03/03〜)
  • 地元のコナミのジムに通い出す(2016/03/09)

結果

  • 横ばい、もしくは増えた
  • 体重  :79.05kg → 78.80kg (-0.25kg)
  • 体脂肪率17.30→ 19.20% (+1.8)
  • 体水分率:64.0% → 61.2%  (-2.8)

 

完全無欠ダイエット(Bullet Proof Diet)期(3/15〜08/31)

  • たまたま見かけた本を読んで感動。やってみることに
  • ホエイプロテインDNS SP(いいやつ)にしてみる(3/26)
  • 健康診断の結果が悪く、尿酸値を気にする
  • Sleep Cycleというアプリで睡眠測定(3/28)
  • タンパク質ファスティング(断食)をしてみる(3/30)
  • 北島達也のマッスルキャンプDVDを見て神の7秒本を読む(4/28)
  • 尿酸値が下がってて安心する。(5/14)
  • 初めてバーベルでスクワット(70kg?)とデッドリフト(70kg?)をする(5/14)
  • 初めてのベンチプレス。55kg(5/29)
  • 自宅用にアジャスタブルダンベルを買う(2016/06/04)
  • ヨガもたまにやりだす

結果

  • 緩やかに健康的に減る(長期のダイエットにおすすめ)
  • 体重  :78.80kg → 72.40kg (-6.4kg)
  • 体脂肪率17.30→ 15.70% (-1.6)
  • 体水分率:64.0% → 64.3%  (+0.3)

 

転職(2016/09/01〜2016/11/07)

  • 転職して昼ごはんで自由に糖質を抜きにくくなるので糖質制限は緩くなった
  • 完全無欠ダイエットは基本的に今も続いてる
  • 入社後健康診断で高LDLコレステロールと洞不整脈と言われてビビる(魚を多めに食べるくらいであまり気にしないことにしている)
  • 最近はBig3はベンチプレス(80kg)、スクワット(クォーター145kg)、デッドリフト(トップサイド115kg)
  • 但し今現在は背中を痛めて筋トレは2週間程休んでる。
  • 怪我には注意してストレッチは毎日やるのがオススメ
  • 結果的に体水分率が増えました。筋肉が増えたせいかな?と思ったんですが、筋肉量は減ってる計算なので、おそらく脂肪が減ったせいですね

結果

  • まったりやっとります
  • 体重  :72.40kg → 70.70kg (-6.4kg)
  • 体脂肪率15.70→ 14.60% (-1.6)
  • 体水分率:64.3% → 63.8%  (-0.5)

 

1年の結果(2015/11/01〜2016/11/07)

  • かなり体重も体脂肪率も減りました。体水分率はかなり増えました。
  • 体重  :86.25kg → 70.70kg (-15.55kg)
  • 体脂肪率23.20→ 14.60% (-8.6)
  • 体水分率:56.5% → 63.8%  (+7.3)

 

体重などの推移グラフ

f:id:tocci3:20161107060311p:plain

 

今後の目標・メモ

  • とりあえず維持したい
  • でもできれば体脂肪率10%くらいにしてみたい
  • ベンチプレス100kg行きたい
  • 最初に挙げたTODOの問題は解決したい
  • まあ健康的に生きられるならそれでいい
  • 健康は奥深く、医学や栄養学をまるまる信用してはいけない

 

以上です。良ければ感想などをお願いします!

健康的なダイエット生活を!

cowsayでいろいろな人に喋らせて色を付けるワンライナー

amazonのブログでlolcatというコマンドで出力に色をつけてたのを見つけて、 さらに他のサイトでログイン時にいろんな人にランダムで喋らせるのをさらにワンライナーにしてみました(長いけど)。
~/.bashrcの最後に入れると楽しいかもです。
(あ、それぞれのインストールは忘れずに)

which fortune cowsay lolcat > /dev/null && (fortune |cowsay -f $(cowsay -l |sed 1d |tr " " "\n" |awk 'BEGIN{srand();r=rand()}{c[NR]=$1}END{print c[int(r*NR)+1]}') |lolcat)

f:id:tocci3:20161103041330p:plain


参考:
New Amazon Linux Container Image for Cloud and On-Premises Workloads | AWS Blog
コマンドラインにイラストを - Qiita
GitHub - busyloop/lolcat: Rainbows and unicorns!
cowsay - Wikipedia
Ubuntuのlocaleが正しく設定されていない時の対処メモ - 目の前に僕らの道がある

vagrantをもう少しmake風に

vagrantは"Vagrantfile"なんてものを作るので
make風にターゲットを複数指定したり依存解決してくれるのかと思いきや、

$ vagrant up ssh halt
The machine with the name 'ssh' was not found configured for
this Vagrant environment.

とかやっても怒られるだけ。


『これだから最近の若いものは・・・』と思いつつ、
とりあえずmake風になるbashの関数"vag"を作ってみた。
まだ途中だが、とりあえずメモ(気が向いたら直します)。


連続したtargetは実行してくれて、"vagrant ssh"が失敗したときだけは"vagrant up"して"vagrant ssh"してくれる。

# vagrant like make function
vag()
{
    local arglist=()
    # struct command list
    local arg
    for arg in "$@" ;do
        case "$arg" in
        box|connect|destroy|global-status|halt|help|init|login|package|plugin|port|powershell|\
        provision|push|rdp|reload|resume|share|snapshot|ssh|ssh-config|status|suspend|up|version)
            target="$arg"
            arglist+=("$target") ;;
        -*) arglist[((${#arglist[@]} - 1))]+=" $arg" ;;
        esac
    done
    # execute dependencies
    local cmd
    for cmd in "${arglist[@]}" ;do
        echo "vagrant $cmd"
        vagrant $cmd
        local status=$?
        echo [status: $status]
        if [ $status -ne 0 ] ;then
            case "$cmd" in
            ssh*)
                echo "must vagrant up before [$cmd]"
                echo "auto execute vagrant up"
                cmd2="vagrant up"
                echo $cmd2
                $cmd2
                local status2=$?
                echo [status2: $status2]
                if [ $status2 -ne 0 ] ;then
                    echo "fail: $cmd2"
                    return 1
                fi
                echo "rerun [$cmd]"
                vagrant $cmd
                local status3=$?
                echo [status3: $status3]
                if [ $status3 -ne 0 ] ;then
                    echo "fail(rerun): vagrant $cmd"
                    return 1
                fi ;;
            *)  echo "fail: vagrant $cmd"
                return 1 ;;
            esac
        fi
    done
}

例えば

vag ssh halt

とすれば自動で上げて(vagrant upして)くれて
vagrant sshしていろいろやった後で
抜けたときに自動で落として(vagrant haltして)くれるので楽。

# 関係ないけど.vimrc整備したらめちゃくちゃ捗るようになった。

MathJax

とあるブログを見ていたら数式を文字選択できることに気づいて、MathJax というのを知りました。
(何年遅れてるんだ。。。)

MathJax - Wikipedia


はてなもMathJax対応してるっぽいので、ここで昔数式を書いてましたが、移行してリダイレクト設定してるのでもう見れないかな(移行先)。

(ここではてなダイアリーで書けないのがわかってはてなブログに移行しました)

はてな記法モードじゃないとうまく書けないみたい。


{
\displaystyle
\begin{equation}
b_n = \sum_{m=0}^{N-1} a_m
\end{equation}
}

{
\displaystyle
\begin{equation}
\sum_{k=1}^{n} k=\frac{n(n+1)}{2}
\end{equation}
}

max
{
\displaystyle
\begin{equation}
S = \sum_{i=0}^{I} x_i
\end{equation}
}



参考:
はてなブログに数式を - 人工知能であそぶ

はてなブログに移行しました!

はてなダイアリーからはてなブログに移行しました!

iPhoneにしたり転職したりいろいろありましたが省略)

だいぶ放置気味ですが、たまに更新するかもしれないので

よろしくお願いします。

Hadoop Conference Japan 2014に行ってきました!資料・メモ・感想など

Hadoop Conference Japan 2014に行ってきました!

見たものをざっくりまとめると:
  • 大物がいっぱい来てるね(ダグさんとか太田さんとか古橋さんとか)。
  • Sparkがそろそろ来そう(だけどもうちょいか)。
  • Googleすごすぎ。
  • Prestoめちゃくちゃ良さそう。hiveもDBも扱えるものなのね。触ってみたい。


あとでリンクが付くだろうけど資料集


Hadoop Conference Japan 2014 Tickets, Tue, Jul 8, 2014 at 10:00 AM | Eventbrite
資料などはここにアップされる予定。
USTで公開されており、リンクもあり、プレゼンが完全に見れます(事前に知ってれば・・・)。

おそらく懇親会後の写真

https://twitter.com/hadoopconf/status/486485469689942018/photo/1 # 行けばよかったか





以下、HDC2014 見たものを時系列にメモ

(長いです。あとでもう少しまとめますmm)




(道に迷って遅刻mm 慣れない都会は苦手。。)

扇子とHCJ2014ストラップもらいました。(和風な流れの布石?)



# 象さんがいました(ブレブレでごめんなさい)。



濱野さん

司会的な。
今回は障子が開いて和風な音楽の後登壇者が登場する流れ。ふむ。。



Doug Cuttingさん

Hadoopのこれまでとこれからのお話



Databricks Patrick Wendellさん

Databricksすごいよ。リアルタイムで簡単に集計。


太田さん TD CTO

Hadoop関連と流れをおおまかに分類


ここでお弁当配布。
1000人近くに、、(ごくり)
リクルートさんすごいっす!!


Treasure DataさんのTシャツが直前の宣伝効果でバーゲン会場みたいになってて
あせってSサイズとっちゃいましたw


12:10 C会場(ランチセッション) Hadoopセキュリティ Cloudera 小林さん

・Sentry
 ・hiveの細かい認証・認可が可能に
 ・Sentry1.4, CDH5.1からGrantとかRevokとかでできるように。


13:00 C会場 Google BigQueryの大規模JOIN・UDF・Hadoop対応で何が変わるか Google 佐藤 一憲さん

http://www.ustream.tv/recorded/49696613

  1. BigQuery(Dremel)はインデックス使わないのに超速い(100億行の検索が10秒とか)。カラム型(カラムナ)DBだから。そして安い。
  2. HadoopやFluentdでもBigQueryを使えるようになった。UDFもそのうちできる。
  3. Google I/Oで発表されたGoogle Cloud Dataflow(Streaming|Batch)の話。

Comming Soon!
Googleのペーパー読んでね。Pub/Subの元: FlumeJava, Streamingの元: MillWheel
これを実現してBigQueryユーザーに公開するのがGoogle Cloud Dataflow。ペーパーが元になっている。
バッチとストリーミング処理を(ほとんど)同じ記述でできる。


FlumeJava: Easy, Efficient Data-Parallel Pipelines
MillWheel: Fault-Tolerant Stream Processing at Internet Scale


感想:凄い。必見。皆これを目指すべき。これ聞けただけでも行った甲斐があった。
キーワード:DCから湯気、サイベースIQもカラム型、コロッサス、MPP、Small/Big JOIN、DAG、Tenjin( Mapreduce Project)



13:50 B会場 hivemall aist.go.jp 油井 誠さん

spark 1.0の回帰分析は遅い
協調フィルタは無さそう
しかし発表中でCTRの予測をしてたのが気になる。どういうロジックか(質疑応答で少し話していた)。


14:40 C会場 新日鉄ソル アルツハイマー解析 高田さん

2008 研究開始
2012 実運用開始


NEDOの一環
mahoutで統計情報から診断支援
MRI/PETデータから超早期診断
RandomForest
正規化→スムージング Matlab
複数モダリティのRF Grayらの手法
・普通に項目をプラス(データ結合)
・次元縮約
・新 モデル合成→制度が高かった
RやRDBでできるところはそれで。
Sparkに期待。
軽度の判別にに使えるように。
システム化したい。



15:40 B会場 ドコモ田中さん

・2009年から 1000台Hadoopクラスタ 三浦半島の先端
・標準的なLinux技術者一名 月1回のサーバ修理
課題
・多様なスループットとレイテンシへの要求
Hadoop進化への追従


多様なデータI/O
・マイクロバッチ化
大規模な計算でもフットプリントが小さい
・SPARK
・STORM


同一クラスタ内でデータを共有しながらの利用
・YARN


Hadoop/SPARK/Storm
スケーラビリティ、オペラビリティ、フレキシビリティ


Spark NTTデータ土橋さん
Hadooper。最近はオンメモリ系も。


Data processing
・low latency
・APIs for data analysis
> Spark
Data management
・different types of frame works on one architecture
・multi clusters management
> YARN


Spark
for inside google:"Hadoop ソースコードリーディング spark"


Spark has 3 modes
Single|Meths|*YARN


Hard

  • 4k+ core
  • 10TB+ RAM
  • 6core 64GB 1.3GHz 10GBase-T x 2port 3TB

Soft

  • Spark 1.0.0
  • HDFS & YARN(CDH5.0.1)


1. word count Capability
> good
2. reasonable performance over cache(Logistic regression)
> effective(ある程度)。キャッシュを効果的に設計するのが重要(シンプルなデータフォーマットであとで計算)。
3. shuffle process groupByTest
> 納得の結果。ネットワークだけでなくディスクの性能もかなり重要。たまにOOM。
4. POC multi-stage job
> いろいろな工夫。まだまだ。だいぶ玄人好みなつくり。


感想:かなりわかりやすく課題も自分たちと似てると感じた。Spark1.0はまだまだ茨の道。1.1で道が開けそう。



16:30 TD on YARN 小林さん

Treasure Data
Hadooper, Cassandra, Machine Larnning, Huahin


PlazmaDB(Collumna Strage)/S3


TD Using Customized-
Hadoop
Hive(12->13ですっごい変更)
Pig
Impala
Presto


4 clusters / in world
TD Using Customized-
Scheduler
Queue


1個 YARNのクラスタを隣で流してる。


MR v1/YARN Queue


5000users/about 6 trillion records/12 million jobs/40000Job by day

Yet Another Resource Negotiator
Resource Manager=JT
Node Manager=TT
Application Master
Container
Job History Server*




今年の1月からYARNを検証


Hadoop 2.4.0以降を使うべし!(前のは重大なバグが有る)
x ApachHadoop2.2.0
x ApachHadoop2.3.0 o 2.4.0~1
x HDP2.0(2.2.0base) o HDP2.1(2.4.0base)
x CDH4(2.2.0base) o CDH5.0.2(2.3.0base and patch)

Capacity Scheduler
Fair Scheduler
both has dead lock bug


many configuration changed

hadoop-conf-pseudo does not work
mapreduce.shuffle->mapreduce_shuffle

2.2.0->2.4.0
there are some differences
node managerのなんちゃらを設定しないとだめ。
HDPやCDHのVMを見るといい。
Use Ambari or Cloudera Manager

v1

  • slot

YARN(MRv2)

  • resource(contaner)

scheduler.xml

  • maxMaps, minMaps
  • max

yarn-site.xml

  • resource.memory-mb

-
-
mapred-site.xml

  • yarn.app.maprduce.am.resource.mb

-
-
fir-scheduler.xml

  • maxResources, minResources

pool->queue
Job->App

for resource calc
hdp-configuration-utils.py

goo.gl/L2hxyq

Ambari

Container Executer

/tmp/hadoop-yarn/



17:20 A会場 Presto TD 古橋さん

Presto is SQL query engine


2012 fall~ Facebook
2013 open sourced
30+ contributors
5 core committer


Problems

  • visualize HDFS data

- hive low latency is
- ODBC unavailable/unstable

  • intaractive DB

- cost on scale

  • Some data are not stored in HDFS

- copy

> Presto solves them.


HIve+Presto


can use cassandra/MySQL/Commertiol DBs


BI tools

  • IBM Congnos
  • Tableau


Facebook

  • regions
  • 1000 nodes
  • 1000 emps
  • 30000 queries/ day

Netflix, TD,...


Architecture
Discovery Service
Coordinator
Worker
Connector plugin


Connector

  • Presto plugin
  • access to storage and metadata
  • Implementations

- Hive
- cassandra
- MySQL
- Mix

  • SQL Connector
  • stateless = scalable


2. Data visualization


ODBC/JDBC


"Prestogres": Can use Presto like Postgres.


DEMO
tableau
chartio.com(tabeleauみたいなプロダクト)


感想:Prestoかなり使えそう。
管理画面くらいなら直でいけてグラフィカルな表示を簡単にできそう。
簡単なUIパッケージとかないのかな。
CDH3サポートって書いてないけど、試したい。

リンク

Hadoop Conference Japan 2014に参加してきました | Developers.IO # かなりよくまとまってます