筋トレ前に飲むドリンク

筋トレ前にいろいろなサプリメントを混ぜたドリンクをつくって飲んでるので、それについて紹介

基本的に以下のものを混ぜて作ってます

1. NO&カフェインサプリ

jp.iherb.com 上のサプリを使っています(今見たらiHerbで売り切れていた)。ただ昔飲んでいたこっちのほうがおいしい

jp.iherb.com

2.グルタミン

グルタミンはBCAAと比べると軽く見られがちですが、かなり重要です。グルタミンは外科手術後の傷の回復期間を短縮するのに使うと言われますが、筋トレの場合グルタミンを飲むと筋肉痛がかなり和らぎます。

jp.iherb.com

3.BCAA

下のBCAAをずっと飲んでてちょうど今切れたところです。これはUnflavoredなのでマジで臭い。最悪

jp.iherb.com

で下のに乗り換えましたが、まだ試してません

jp.iherb.com

4.ポカリスエットの粉

ほんとは必要ないですが、味を整えるために使用

大塚製薬 ポカリスエット パウダー10L用

大塚製薬 ポカリスエット パウダー10L用

5.クレアルカリンEFX

ドリンクに溶かすわけではなく、一緒に錠剤を飲んでます。普通のクレアチンと違って ローディングが必要ないので便利です。トレーニングの30分前とトレーニング後に飲むだけです。

jp.iherb.com

夏休み中なので読んだ本のメモ

とりあえず今回もよかった順に書いてます。

1. それが僕には楽しかったから

リーナス・トーバルズのお話。オープンソースの考え方とか、あとは人生の意味とか社会の進化の仕方を語ってる部分が面白かった。リーナスは人を突き動かしてるのは生存と社会秩序の中の自分の位置,そして楽しみだという。これらの順序は社会がどう進化していくのかの順序でもあるとリーナスは言って、例えば戦争は初めは生存のためにあってそのあと社会秩序のために最後は娯楽のために存在するようになった。同じようにテクノロジーも情報時代になって娯楽のために使われるようになる。

それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 (小プロ・ブックス)

それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 (小プロ・ブックス)

2. コンピューターはなぜ動くのか

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識のハードよりな感じ。プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識よりか難しい。CPUの動きとかメモリの動きとかアセンブリ言語が少しわかるようになる。

3. 情報はなぜビットなのか

ケーニヒスベルクの橋の問題の話は面白かったんだけど、全体的にまあ知ってるよねって話が多くて適当に読んだ。あんまり面白くなかったかも。

情報はなぜビットなのか 知っておきたいコンピュータと情報処理の基礎知識

情報はなぜビットなのか 知っておきたいコンピュータと情報処理の基礎知識

春学期の通学が暇だったので読んだ本

メインキャンパスがホングォォキャンパスになったので東大前駅までの南北線通学が暇すぎていろいろ本を読んだので,その紹介とか。大学のうんちプロジェクトでC書い たのでプヨグラミング関連が多い。一応読んでよかったとか面白いと思ったランキング順にしてる。

1. プログラミング言語C 第2版 ANSI規格準拠

一番読んでよかったって感じのC言語の古典ですね。まあこれ読んどけばCはいいみたな感じの。これ結構見てくれと違って読みやすいです。ポインタわかんないとかいう感じの人は読むべきかと。

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠

2. リーダブルコード

これもうんちプロジェクトで複数人でコードを書いてたんですけど読みにくいコード書く奴にここ直せって言ったら反論されたので、読みやすいコードのロジック で理論武装して論破するために読みました。リーダブルコードなのでリーダブルブックで読みやすいです。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

3. 道は開ける

自己啓発書キモっておもってたんですけど、なんかメンタルに良さそうなので読みました。基本的にいろんな事例の話を持ってきてなるほどなってなる感じの悩みから解決される系のロジックを組んでます。これを読んだらメンタル鬼強になった気がします。メンタル鬼強過ぎて試験を恐れず二単位ぐらい落としたかも

道は開ける 文庫版

道は開ける 文庫版

4. C++プログラミング入門

C++まったくわからなかったので読みました。まったくっていっても C++の絵本 第2版 C++が好きになる新しい9つの扉ぐらいは読んだ。 オライリーの割にはC++プログラミング入門は結構わかりやすい。

C++プログラミング入門

C++プログラミング入門

5. C++実践プログラミング

C++プログラミング入門のステップアップみたいな感じ。これもまあ読みやすい。 C実践プログラミング 第3版C++についての話を付け加えた感じで前半部分はかなり共通する。

C++実践プログラミング

C++実践プログラミング

6. プログラムはなぜ動くのか

アセンブリ言語の章とかは勉強になりました。中身は軽めの本。二日で読んだ。

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

さいごに

やっぱプログラミングって書かないと上達しないよね(C++書きたい)。あとこのブログやっぱ存在価値ないのでは。

Anova Precision Cookerを買ってみた

公式ストアから念願のAnova Precision Cookerを買ってしまいました。120V-US Plugを無理やり100Vの日本で使ってます。US-Plugの変換プラグが必要ですが、アースの有無しか日本のPlugと変わらないのでうまいことなんとかしました。

 

anovaculinary.com

 こうゆう感じの箱でHong Kongから輸送されてきます。

f:id:HhDb:20170320174028j:plain

とりあえず東急スーパーの2400円の"高い肉"を料理しました。

こうゆう感じです。

f:id:HhDb:20170320174450j:plain

レシピは下のサイトを参考にしました。

http://www.douglasbaldwin.com/sous-vide.html#Roast_Beef

A Practical Guide to Sous Vide Cooking

 

 簡単にいうと今回は131°F24時間やって最後に表面をバーナーで(フライパンでも変わらない)焼く感じです。

f:id:HhDb:20170320175103j:plain

で完成品がこんな感じで、"まじで"うまいです。

f:id:HhDb:20170320174453j:plain

 

で、現在業務スーパーの800円の安い肉に挑戦してますがうまくいかないです。安い肉は高い肉よりコラーゲンが多く硬く、コラーゲンの酵素反応は遅く2日ほど定温調理するのがよいですがそうすると柔らかいですが食感はキモくなります。ので多分結局硬いのは我慢して一日定温調理するのがよい。結局高い肉には勝てない。

f:id:HhDb:20170320175845j:plain

 

PythonでBitcoin監視してみる

シュー・イガシさんがGoogle Apps Scriptを使ったBitcoin spread alertの作り方を解説してるので、それをパクリ参考にさせていただいてPythonで書いてみました。具体的にはAPIを使って国内の取引所の取引価格を60秒ごとに取得して価格差が1500円以上でとLineにalertを送るようにしてます。この際BTCBOXは出来高が小さすぎるので無視しました。

import json
import requests
import urllib.parse
import time

class Get_market:
   def __init__(self):
    
        URL={'bitFlyer':'https://api.bitflyer.jp/v1/getticker?product_code=BTC_JPY',
            'Quoine':'https://api.quoine.com/products/5',
            'Zaif':'https://api.zaif.jp/api/1/ticker/btc_jpy',
            'Coincheck':'https://coincheck.com/api/ticker'}
        
        bf={'name':'bitFlyer',
            'price':requests.get(URL['bitFlyer']).json()['ltp'],
            'volume':requests.get(URL['bitFlyer']).json()['volume_by_product']}
    
        qn={'name':'Quoine',
            'price':requests.get(URL['Quoine']).json()['last_traded_price'],
            'volume':requests.get(URL['Quoine']).json()['volume_24h']}
    
        zf={'name':'Zaif',
            'price':requests.get(URL['Zaif']).json()['last'],
            'volume':requests.get(URL['Zaif']).json()['volume']}
    
        cc={'name':'Coincheck',
            'price':requests.get(URL['Coincheck']).json()['last'],
            'volume':requests.get(URL['Coincheck']).json()['volume']}   
        
        market = [bf, qn, zf, cc]
    
        while 1:
            flg=0
            for i in range(len(market)-1):
            #print numbers[(i+1)]
                num1 = market[i]['price']
                num2 = market[(i + 1)]['price']
                if num1 > num2:
                    market[i],market[(i+1)]= market[(i+1)],market[(i)]           
                    flg = flg + 1
            if flg == 0:
                break
            
        self.data=market
    
        self.max_spread = market[3]["price"]-market[0]["price"]
        
        self.alert = '\n'+\
        market[3]["name"]+':'+str(market[3]["price"])+':'+str(market[3]["volume"])+'\n'+\
        market[2]["name"]+':'+str(market[2]["price"])+':'+str(market[2]["volume"])+'\n'+\
        market[1]["name"]+':'+str(market[1]["price"])+':'+str(market[1]["volume"])+'\n'+\
        market[0]["name"]+':'+str(market[0]["price"])+':'+str(market[0]["volume"])+'\n'+\
        'max_spread'+':'+str(self.max_spread)

while True:
    market=Get_market()
    time.sleep(60)
    if market.max_spread>1500:        
        LINE_ACCESS_TOKEN="YOUR_LINE_ACCESS_TOKEN"#あなたのtokenを入れて下さい
        url = "https://notify-api.line.me/api/notify"
        message =market.alert
        msg = urllib.parse.urlencode({"message":message})
        LINE_HEADERS = {'Content-Type':'application/x-www-form-urlencoded',"Authorization":"Bearer "+LINE_ACCESS_TOKEN}
        session = requests.Session()
        a=session.post(url, headers=LINE_HEADERS, data=msg)

シュー・イガシさんにソートの仕方を教えていただきました

のでソート部分を書き直すと

market=sorted(market,key=lambda x:x['price'],reverse=False)

こうなります(lambda式ってなんかなれないよね)