山田健一のブログ

業務に強いフリーITエンジニア 山田健一のブログです

飯島町米俵マラソン2018にむけて(2)20Kg×10Kmへの挑戦

飯島町米俵マラソン

www.komedawara.jp

の練習ネタです。

前回、20Kg初挑戦では弱気モードが出てしまい、6kmしか走れませんでした。
しかし、これは、弱気のコース変更が原因で、6kmで足が止まってしまったわけではありません。遅いなりに6kmはしっかり走れています。
6kmは10kmの半分以上なので、5km折り返しのいつもの練習コースは折り返せることの証明になっています。
「折返すことさえできれば、帰ってくることは可能」と前向きに捉えて、再挑戦です。
とは言え、天気はよいものの気温は上がらず、士気も上がりません。
そこで、自分を追い込むために午前中は自作パワーキューブを作ることにしました。
前回とほぼ同じように作ったはずですが、今回は少々ベタつきがあります。粉飴の煮詰めが足りなかったのかなと思いつつ、アーモンドパウダーを少々ふりかけました。
昼食を取り、食休みもして、13:30ころ出発のつもりが、何やら雑用をしているうちに、14:00出発になってしまいました。

走り初めは、やはり辛いので、ごまかすようにパワーキューブを口に入れます。
ただし、2回めでちょっとなれたのか、1回目より走りやすい気がします。
前回同様2kmくらい走ると、気持ちが軽くなってきます。ランナーズハイってやつなんでしょうか?
私の練習コースは3km地点で橋を渡ります。この橋は、一旦下がってまた登る形になるため、橋を渡りきった後の上りが結構つらいです。しかし、そこは何回も走っているコースですので、なんとか乗り切ることが出来ました。4km地点あたりで車から「頑張ってー」と声をかけてもらい、「ハーイ!」と元気に返事をして走ります。
5km折り返しも、「前回この距離は走れている」と思えば、気持ちは楽なものです。
折り返して、6km地点は、何の問題もありません。このときは完走できることを前提にタイムのことを考えていました。もともと完走目的なので目標タイムがあったわけではありません。途中でSF-850を見て、ペースが5分台、6分台、7分台、一番悪い8分台はそれほどなかったので、75分くらいで帰りたいなと考えながら走ります。頭の中で「陸王」のテーマソングが流れています。
7kmから8km付近では向かい風でした。「行きが調子良かったのは追い風だったからか」などと考えながら「これもいい練習」と前向きに捉え、進んでいきます。
8km付近で時計を見ると偶然15時、「残りを7分30秒/kmでも75分」と考えると俄然やる気が出ます。とは言え、7分30秒/kmなので、傍から見ると遅いでしょうね。
ゴールししてみると 1:14'16"62 でした。

f:id:yamadaken1:20180107152013p:plain

VO2max (推定値)50.2 ml/kg/min とすごい数値が出てますね。
心拍Maxが177bpmだし、あまり心拍数が上がっていないのは、測定ミスなのか、心拍が上がらないように脳が抑えているのか、定かではありませんが、心臓バクバクの感じはないので、後者なんでしょうか?
だとすれば、タイムにも伸びしろが期待できます。
米俵マラソンの練習も兼ねて、妻籠・馬籠健康マラソンも走る予定です。こちらは累積標高314mで、練習コースよりきついのですが、なんとか頑張れそうです。

 

2017年の総括と2018年の抱負

2017年のはじめに立てた目標は、「初挑戦の年」でした。
達成度は100%以上のいい年でした。

次のような「初挑戦」や「初体験」をすることが出来ました。
・経ヶ岳バーティカルリミットのコース整備ボランティア体験
・経ヶ岳バーティカルリミットロングコース完走
南木曽町妻籠健康マラソンで仮装賞を受賞
・信州爆水RUN in 依田川で、「大人の川遊び」満喫
駒ヶ根ハーフマラソン完走
・米俵マラソンで米俵15kg背負って10km完走
・R+L笑顔コンテストで、ユニーク笑顔賞受賞
・IoTハッカソンで3位入賞(2回)

仕事関連は前半が浮き沈みでしたが、沈みのおかげで、経ヶ岳バーティカルリミットのコース整備ボランティアをすることが出来ました。
大会に深く関わると大会をより楽しむことが出来ます。
米俵マラソンも深くかかわらせていただき、楽しく走れました。

実は、ハーフマラソンのついでに、フルマラソンにも初挑戦とか考えてもいたのですが、じっくり段階をふもうと思い、フルマラソンは思いとどまりました。
経ヶ岳バーティカルリミットロングコースはトップランナーの記録を見るとフルマラソンくらいなので、これをフルマラソンに見立てることが出来ます。

今年は、まず、経ヶ岳バーティカルリミットロングコースの5時間切りを目指し、これが実現できたらフルマラソンを考えるようにしようかと思います。

あまり欲張ることなく、まずは去年以上の充実度にすることを目標にします。

飯島町米俵マラソン2018にむけて(1)

飯島町米俵マラソン

www.komedawara.jp

の練習ネタです。

2015年は米俵5kg部門を背負子で普通に走り、
2016年は米俵5kg部門で、米俵を2つ背負って、私設米俵10kgで走りました。
2017年は新設の米俵10kg部門で、米俵を3つ背負って、私設米俵15kgで走りました。

となると、2018年は「私設米俵20kgだよね」ということで、練習することにしました。

2016年に出場したボビーオロゴンさんが、TVの企画で20kgの米俵を担いで走ったことがあるそうです。
2016年は5kgを手持ちのボビーオロゴンさんに対し、背負子の私設米俵10kgで挑みましたが、私はボビーオロゴンさんより早く帰ってきました。

それなら「私設米俵20kgもできるんじゃないか」と考えました。

米俵はこんな感じです。

f:id:yamadaken1:20171223223202j:plain

下から10kg、5kg、5kgです。

yamadaken1.hatenablog.com

で作った、パワーキューブ試食も兼ねています。


今日は天気もよく、比較的暖かいです。

米俵を背負って、さあ、出発!
私の練習コースは、スタートから30mくらい、米俵マラソンスタート直後と同じくらいの勾配の上り坂になっています(上りの距離は米俵マラソンより長いです)。

はじめての20kgは結構きついです。

20mくらい走ったところで「10kmは無理そうだな」という弱気モードが出てきますが、頑張るしかないです。
早速、パワーキューブを口に入れます。
硬いので、食べづらいですが、その分、長く口の中に残っています。
ちょっと水分が欲しくなる感じもありますが、今は冬なので、それほど水分も必要としません。
この感じだと、このパワーキューブは経ヶ岳のお供に良さそうです。

30mくらい走ると平坦になってきますが、弱気モードはおさまりません。「せめて半分以上の6kmは走りたいな」という中途半端な気持ちになっています。
2kmくらい走ると、気持ちは少し上向きになってきましたが、足は重いです。
「行けるとこまで行って見るか?」「行くのはいいけど、帰りが辛いぞ」などと心の葛藤がおきます。
これは今まで経験したことがないので、ある意味いい経験です。
間もなく3km地点というところで、コースを変更して、上り坂を行くことにしました。
登っていけば、帰りは下りなので、楽だろうという発想です。
しかし、結局折返すことはせずに、帰り道コースを通ったので、距離は6kmでゴールインしました(弱気だなあ)。
結果はこんな感じです。

f:id:yamadaken1:20171223223419j:plain

 

おそいなあ!!!

やはり20kgは無理なのか?という思いもありますが、
それでも半分以上の6kmを、歩きもせずに帰って来たじゃないか?
などと考えて、もう少し練習してみる気になっています。
5月になると経ヶ岳モードに入るので、4月までが勝負です。
それまでに10km走れなかったら、私設15kg部門かな。。。

さあ、果たしてどうなる?

 

粉飴で自作パワーキューブ作成(その2)

粉飴を使った、エナジージェル失敗作を使ったオリジナルのパワーキューブの紹介です。
結果的にオリジナルのパワーキューブが出来たので、失敗が成功のもとになった1例です。
用意するもの
・粉飴 100g
・リンゴジュース 80g程度
・リッツ13枚(1袋)
・チョコ味コーンフレーク 37.5g
・自作ラムレーズン 23g
(自作ラムレーズンはレーズンを保存瓶に入れ、ラム酒を入れて一晩で完成します)

リンゴジュース以外の材料はこんな感じです。リッツは、袋のまま、もみほぐして砕いた状態を写真にとりました。

f:id:yamadaken1:20171223212532j:plain

f:id:yamadaken1:20171223215223j:plain

f:id:yamadaken1:20171223215346j:plain

f:id:yamadaken1:20171223215445j:plain

リッツは、袋のまま、もみほぐして砕きます。
コーンフレークも砕きます。
コーンフレークに自作ラムレーズン、砕いたリッツを混ぜます。
こんな感じです。(1)

f:id:yamadaken1:20171223215612j:plain

リンゴジュースを鍋に入れ、弱火で温めながら、粉飴を少しずつ入れ、溶かしていきます。一度に入れるとダマになりやすいので、注意してください。また、煮詰めすぎた感じがしたら、リンゴジュースを少し加えてください。

溶けてきたら、(1)を鍋に投入して混ぜます。

f:id:yamadaken1:20171223215734j:plain

これを四角いタッパーの中にクッキングシートを敷いてから入れていきます。
入れ終わったら、上からクッキングシートで抑えて成形します。
(写真撮り忘れました)
端の方はしっかり抑えて、平坦になるようにしてください。
固まったら、取り出して、カットします。
結構硬いです。

完成です。

f:id:yamadaken1:20171223215848j:plain

 

 

 

粉飴で自作パワーキューブ作成(その1)

経ヶ岳バーティカルリミットでもらった粉飴

f:id:yamadaken1:20171223212532j:plain

を使って見たいと思いつつ、もう年が明けてしまうぞ。。。
一念発起(大げさ)して「粉飴 レシピ」でぐぐってみると、粉飴100g+水分70gでエナジージェルが作れるというサイトを沢山見つけました。
それなら、KTFのTeruki Senokuchiさんから教わったパワーバーのジャムの代わりに粉飴が使えるんじゃないかと挑戦してみました。
ジャムの代わりなので、無添加リンゴジュースにしてみました。

エナジージェルより固めがいいんじゃないかと思い、約60gのリンゴジュースを鍋に入れ、弱火で温めながら、粉飴を少しずつ溶かしていきます。
(実はこのときに失敗しているのですが、このときは気づいていません)
そのうち、少しずつ投入するのが面倒になって、ドンと入れていしまったら、たくさんダマが出来てしまったので、リンゴジュースを少し追加しました。
なんとか、それなりに溶けたのですが、見た目がエナジージェルっぽくないです。
まあ、いいか、とパワーバー作りの工程に入りました。ジャムを投入する段階でエナジージェル(のはず)の鍋を見ると、カチカチの飴になっています。
ここで、失敗に気づきます。直接ジュースを温めたので、水分が飛んでしまったようです。
しかし、粉飴は温めると柔らかくなるので、柔らかくしてから、パワーバーに投入してパワーバーを作りました。

f:id:yamadaken1:20171223212659j:plain

四角い形にしたので、パワーバーというよりパワーキューブですね。
Teruki Senokuchiさんのレシピに比べるとしっとり感がなく、カチカチです。
いいところとしては、あまりべとつかないので、アーモンドプードル不要となることです。味は、好きな物を投入して作っているので、悪くはありません、
これを持って、米俵マラソンの練習に行くので、感想は別に書きます。

さて、余ってしまった、エナジージェル失敗作をどうしようか?
そうだ、これを使ってオリジナルのパワーキューブを作ろう!

こちらも別記事でレシピをまとめます。

 

 

JsonからテーブルにINSERT

yamadaken1.hatenablog.com

上記の記事の関連です。

 

世の中にはストアドが嫌いな人もいるので。。。
JsonからテーブルにINSERTする話です。

テストデータは前回と同じです。

こんなテーブルを用意します。

CREATE TABLE test
(
      item_code character varying
      ,product_name character varying
      ,req_qty numeric
)
;

テスト用なので、主キーもない手抜きのテーブルです。
このテーブルがあれば、次のSQLJSON配列から一気にレコードINSERTが出来ます。

 

INSERT INTO test
    SELECT
      *
    FROM
      json_to_recordset
('
[
 {
   "item_code": "A0001",
   "product_name": "KEYBORD",
   "req_qty": 10.283
 },
 {
   "item_code": "A0002",
   "product_name": "MONITOR",
   "req_qty": 526.267
 },
 {
   "item_code": "A0003",
   "product_name": "MOUSE",
   "req_qty": 610.39
 },
 {
   "item_code": "A0004",
   "product_name": "MAIN BOX",
   "req_qty": 341.751
 },
 {
   "item_code": "A0005",
   "product_name": "USB HUB",
   "req_qty": 371.524
 },
 {
   "item_code": "A0006",
   "product_name": "ROOTER",
   "req_qty": 1395
 },
 {
   "item_code": "A0007",
   "product_name": "WINDOWS10Pro",
   "req_qty": 1287
 },
 {
   "item_code": "A0008",
   "product_name": "VISUAL STUDIO 2016 PRO",
   "req_qty": 25
 }
]

')
      AS rec
      (
          item_code character varying
          ,product_name character varying
          ,req_qty numeric
      )
;

SELECT結果はこんな感じになります。

f:id:yamadaken1:20171208204857j:plain

 

 

PostgreSQLJson型とストアドファンクションの受け渡し

私はフリーITエンジニアとして、業務分析、業務改善提案を含む設計、製造、受入検査を含む検査、システム運用開始後の運用改善提案など、様々な分野を担当しています。

今回はPostgreSQLの話題です。

PostgreSQLではJson型があります。
非定型なデータを1つの列に保存するのに適していますが、定型的な業務ではテーブルの列にJson型が適している例は少ないと思います。

ただし、ストアドファンクションとのデータの受け渡しには威力を発揮します。
多数のデータを1度に登録したいときなど、INSERT文をループで回すのは、パフォーマンスもよくありません。
データを1度に渡してしまい、ストアドファンクション内でループさせることで良好なパフォーマンスを得られます。
そんなときにJson型が活躍します。

受け渡すデータはこんな感じです。

f:id:yamadaken1:20171207213401j:plain

これをJSON配列に変換するとこんな感じになります。

[
{
"item_code": "A0001",
"product_name": "KEYBORD",
"req_qty": 10.283
},
{
"item_code": "A0002",
"product_name": "MONITOR",
"req_qty": 526.267
},
{
"item_code": "A0003",
"product_name": "MOUSE",
"req_qty": 610.39
},
{
"item_code": "A0004",
"product_name": "MAIN BOX",
"req_qty": 341.751
},
{
"item_code": "A0005",
"product_name": "USB HUB",
"req_qty": 371.524
},
{
"item_code": "A0006",
"product_name": "ROOTER",
"req_qty": 1395
},
{
"item_code": "A0007",
"product_name": "WINDOWS10Pro",
"req_qty": 1287
},
{
"item_code": "A0008",
"product_name": "VISUAL STUDIO 2016 PRO",
"req_qty": 25
}
]

テスト用のストアドファンクションのソースです。

/*
test_sp_json

input parameters

p_json json
-- Json of -------
      item_code character varying
      ,product_name character varying
      ,req_qty numeric
-------------------

*/
/*
output(none)
*/
CREATE
  OR REPLACE
FUNCTION test_sp_json
(
p_json json
)
RETURNS integer
 AS
$$
DECLARE
  rec RECORD;
BEGIN
  FOR rec IN
    SELECT
      *
    FROM
      json_to_recordset(p_json)
      AS rec
      (
          item_code character varying
          ,product_name character varying
          ,req_qty numeric
      )
  LOOP
    -- 本体
    RAISE NOTICE 'item_code = %, product_name = %, req_qty = %',
            rec.item_code, rec.product_name, rec.req_qty;
  END LOOP;
  
  RETURN 0;
END
$$
language 'plpgsql'
;


Json型で受けたパラメーター p_json
json_to_recordset(p_json) でレコードセットに変換してループさせる処理になります。
ループの中にやりたい処理を書いてください。
ちなみにこの処理を実行するSQLは次のようになります。

SELECT * FROM test_sp_json('
[
 {
   "item_code": "A0001",
   "product_name": "KEYBORD",
   "req_qty": 10.283
 },
 {
   "item_code": "A0002",
   "product_name": "MONITOR",
   "req_qty": 526.267
 },
 {
   "item_code": "A0003",
   "product_name": "MOUSE",
   "req_qty": 610.39
 },
 {
   "item_code": "A0004",
   "product_name": "MAIN BOX",
   "req_qty": 341.751
 },
 {
   "item_code": "A0005",
   "product_name": "USB HUB",
   "req_qty": 371.524
 },
 {
   "item_code": "A0006",
   "product_name": "ROOTER",
   "req_qty": 1395
 },
 {
   "item_code": "A0007",
   "product_name": "WINDOWS10Pro",
   "req_qty": 1287
 },
 {
   "item_code": "A0008",
   "product_name": "VISUAL STUDIO 2016 PRO",
   "req_qty": 25
 }
]
');

実際には、プログラムから渡すので、こんなに長いことはないですが、ストアドファンクションのテスト用の書き方の例として捉えてください。
実行結果は次のようになります。

 

NOTICE: item_code = A0001, product_name = KEYBORD, req_qty = 10.283
CONTEXT: PL/pgSQL関数test_sp_json(json)の18行目の型RAISE
NOTICE: item_code = A0002, product_name = MONITOR, req_qty = 526.267
CONTEXT: PL/pgSQL関数test_sp_json(json)の18行目の型RAISE
NOTICE: item_code = A0003, product_name = MOUSE, req_qty = 610.39
CONTEXT: PL/pgSQL関数test_sp_json(json)の18行目の型RAISE
NOTICE: item_code = A0004, product_name = MAIN BOX, req_qty = 341.751
CONTEXT: PL/pgSQL関数test_sp_json(json)の18行目の型RAISE
NOTICE: item_code = A0005, product_name = USB HUB, req_qty = 371.524
CONTEXT: PL/pgSQL関数test_sp_json(json)の18行目の型RAISE
NOTICE: item_code = A0006, product_name = ROOTER, req_qty = 1395
CONTEXT: PL/pgSQL関数test_sp_json(json)の18行目の型RAISE
NOTICE: item_code = A0007, product_name = WINDOWS10Pro, req_qty = 1287
CONTEXT: PL/pgSQL関数test_sp_json(json)の18行目の型RAISE
NOTICE: item_code = A0008, product_name = VISUAL STUDIO 2016 PRO, req_qty = 25
CONTEXT: PL/pgSQL関数test_sp_json(json)の18行目の型RAISE

Total query runtime: 16 msec
1 行検索しました