山田健一のブログ

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

飯島町米俵マラソン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 行検索しました

 

 

第5回米俵マラソン完走記

米俵マラソン

www.komedawara.jp

を走ってきました。

今年から米俵10kg部門が増えました。

当然、私は米俵10kg部門にエントリーですが、目立つために米俵を3つ背負う作戦です。

f:id:yamadaken1:20171126223910j:plain

下から
米俵ワークショプで作った10kgの米俵
昨年の米俵ワークショプで作った5kgの米俵
そして、中身をワラだけにしたダミーの米俵
の合計15kgです。私設15kg部門と呼んでいます。

15kgの米俵は、南木曽町妻籠健康マラソンで完走実績がありますが、あまり練習できていないので、若干心配でした。それでも、とにかく頑張るのみです。

今年から、米俵持参部門があるため、計量もありましたが、余分に積んでいるので、当然パスになります。

米俵マラソン公式キャラクターたちと記念撮影です。

f:id:yamadaken1:20171126224031j:plain

飯田市aina(あい~な)さんが、無料のフットケアをしてくれていたので、お願いしました。下肢をマッサージしてもらっていい感じになりました。

天気は良いのですが、今一つ気温が上がらず、寒い開会式となりました。この段階では防寒具装着状態でした。

開会式の中でストレッチを指導してくれたので、いい感じに体が仕上がって来ました。

スタートラインに着くと、「去年2つ背負っていた人ですよね」と声をかけてもらえました。
いい感じです。この声で練習不足の不安は吹き飛んでいました。単純な性格に感謝です。
スタートもいい感じに切ることが出来ました(早くはないですけど)。
やはり3つの米俵は目立ちます。沿道からは「すごーい、頑張って」とか、「何キロ?」とか、非常にうれしい声援をもらいました。「15kgデース」と元気に答えます。これが更に元気を増加させます。
私を抜いていくランナーさんも「何キロなんですか?」と声をかけてくれます。「15kgデース」と答えるたびに元気が出てきます。
エイドのりんごも美味しいです。

本当に楽しい大会です。

最後の上りは歩いているのと同じくらいのスピードかとも思いましたが、SF-850をみると8分台/kmです。歩くのより早いぞ。ここでも元気をもらい、頑張って登ります。

終結果です。

f:id:yamadaken1:20171126224124j:plain

南木曽町妻籠健康マラソンよりも早く帰ってくることが出来ました。

その後の「ごはんですよ」の新米や、無料豚汁の美味しいこと。
そして、今年はおかず券100円分もついていました。ご飯をおかわりして、200円のきのこ汁(実質100円です)を買いましたが、きのこ汁に信州サーモンも乗っているというお買い得感あふれるきのこ汁でした。

aina(あい~な)さんに走る前のフットケアをしてもらったときに「帰りも来てください」と言われていたので、遠慮なくお願いしたら、とても気持ちのいいマッサージでした。
明日の筋肉痛はないかもしれない。


とにかく楽しい大会なので、これを読んでくれた皆さん、参加を検討してください。
米俵は1kg、3kg、5kgもありますし、空身で走る部門もありますので、「10kgは無理!」と思われた方も部門を選んで挑戦できます。

 

 

 

信州駒ヶ根ハーフマラソン2017完走記

信州駒ヶ根ハーフマラソン

http://koma-marathon.com/

ハーフマラソンの部を走ってきました。

出走前に、無料のテーピングをして貰い、R+Lさんのソックスとゲイター着用して走りました。

この大会は出走者数が多く、ハーフマラソンは約2,500人が走ります。
私は、今まで小規模の大会ばかり走っていたので、この規模の大会は初体験です。
出走人数が多いので、最初はペースが掴みづらいです。
ようやく、自分のペースくらいの塊に入れたころ、靴紐がほどけました。
ほどけないと言われているイアンノットで靴紐を結んだつもりでしたが、イアンノットもどきだったようです。
歩道に移り、普通の蝶結びに結び直しました。また、自分のペースくらいの塊に追いつかねば。。。
そうこうしているうちにコースは下り坂になります。
下りは、なるべくブレーキを掛けず、それでいて、急ぎすぎないようにコントロールしました。
小さなアップダウンはありますが、練習の成果か、小さなアップダウンはあまり気にすることなく走れました。
この大会の特徴の1つに「エイドの充実」があります。
なし、ミニトマト、梅干し、ぶどう、アイスが美味しかったです。
遅いくせにタイム狙いなので、そばはパスしました。
アイスは、スティックタイプのものです。アイスを食べるとちょっと喉が乾くのですが、食べ終わって少し走ったところにエードがあります。この絶妙な設定に感激です。
アップダウンヒル区間は、激坂と呼ばれていましたが、それほど苦しくはありませんでした。散歩コースを標高1,000mコースに変えた成果だと思います。
アップダウンヒル区間よりも終盤の上りが辛かったですね。
下ってから、最後に登るのは、結構きついです。
応援メッセージに「1位になってください」と書いてあったけど、「自分なりの達成感

 

は1位」なので、これで勘弁して貰おうと思います。

出走者が多いので、Facebookのラン友さんに挨拶できませんでした。
埼玉のはるな愛さんには、エードのところで抜かれたのですが、挨拶しようと思っても追いつけませんでした。

このコース、結構きついけど、沿道の応援が素晴らしいし、エイドも充実。人気ナンバー1になるのも分かる気がします。
大会結果がもうアップされていました。
部門順位は123/220。半分より上には行きたかったなあ。
男子順位は1213/1895。
アップダウンヒル区間種目別順位は122/223
アップダウンヒル区間男子順位は1242/1921
どれも半分よりちょっと下です。
SF-850PBによると累積標高が約400mです。ちょっと練習コースを工夫しないといけないですね。

f:id:yamadaken1:20170924202038j:plain

f:id:yamadaken1:20170924202107j:plain

f:id:yamadaken1:20170924202141j:plain