10年運動不足な30代が半年で10kg減量目指す初ダイエットの話(途中経過)。¶
ダイエットを始めた経緯¶
社会人になってから運動らしい運動をしていないワシ 1 は今3x歳。一昨年の健康診断で脂肪肝とか出ていたのですが、血液検査などから肝機能にはまったく問題無いので気にていませんでした。が、1月末にヨメを連れて実家に帰ったときに両親に「太りすぎ」「社会人になってから急に飲み出してお前飲みすぎなんだ。もっと酷くなる前に今のうちに酒止めろ!」ときつく言われました 2 。ちょうど昨年末に過去最高の体重73kgを記録してしまいダイエットといいかげん運動をしようと思っていたところでもありました。なので、中途半端に酒の量を減らすよりもいっそのこと酒絶ちしてしまおうと、ちょうど2月から禁酒&ダイエット&ジム通いを始めたのでした。
3ヶ月経った途中経過¶
この3ヶ月の経過をグラフにしてみました。半年での体重60kg、体脂肪率15%、骨格筋率40%と、来年の健康診断でのエコー検査で脂肪肝が解消することを目指していますが、今のところちょうど良いペースで順調に減量できている感じです。
体重体組成¶
始めたころが、おおむね体重71kg, 体脂肪率24%, 骨格筋率34%程度だったのに対し、3ヶ月経った現在は体重66kg, 体脂肪率21%, 骨格筋率36%に。体年齢も始めた当初は39歳だったの対し34歳と概ね実年齢に近い感じに。
歩数計¶
ジムに通う日に大きく飛び抜けているものの、概ね1万歩以上、歩行時間、距離は2時間、5km以上は歩いているようです。
禁酒、ダイエット方法と運動内容¶
3ヶ月続けてやはり最初に一番効果があったのが禁酒。禁酒自体にダイエットの効果があるのではなく、飲み会での食事の量を自分で調整できるようになったことです。ワシの場合は、飲むとずっとお腹が空いている感じがして、通常の食事以上に食べてしまっていました。禁酒すると腹八分目でやめられるようになり、さらに始まるのが遅い飲み会でも、21時を過ぎたら食べないようにしているので、これが一番効果が大きいでしょう。弊害としては二次会には行かなくなったことでしょうか。行っても飲み食いしないので行っても仕方ないので。まぁそれはそれで割り切っているので気にしないことにしています。
通常時の食事は基本的にしっかり食べること。平日の朝昼はサブウェイで、朝は朝食専用サンドに、昼は店舗外で売っているポテトサラダ+手作りクッキー付きのサンドイッチ。クッキーは昼食時に食べず、15~16時ごろ小腹が空いたときに食べる、という形にして極端に空腹状態が長くならないようにしています。夕食は基本は20~21時半頃自宅で食べるか、平日にジムに行くときは18~19時ごろに会社の近くか新宿あたりで外食。基本的に21時半を過ぎたら食べないようにして、間食は夕方のクッキー以外は極力とらないようにしています。
そして運動。普段の運動としては、エスカレータは極力使わないようにして、通勤以外はバスには乗らないようにして駅と自宅の片道25分ほどの坂道を歩くようにしています。あとはヨメが通っている近所のコナミに週1、2回のペースで通っています 3 。都度会員なので行ったら、2時間半マシンジム(40分バイク、1時間筋トレ、40分再度バイク、途中休憩含む)の後、30分風呂入り、帰りは徒歩で帰宅という感じです。筋トレは3週間程度で重り1個分負荷を増やすようにしてます。
その結果、3ヶ月で腹まわりはだいぶすっきりして、パンツもだいぶ緩くなってベルトなしでは穿けなくなりました。w
計測に利用しているもの¶
数字の記録はモチベーションの維持にはかなり重要です。始めてから徐々に数字が減っていくのを見て、それが楽しくて継続できている、というのが結構大きいです。ワシが利用しているのは、 オムロンのWellnessLINK 対応の 体重体組成計 と 歩数計 。 WellnessLINKは無料で利用できる健康サービス でよくできていてとても良いのですが欠点も。
記録が半年までしかできない
グラフや数値データが外部公開されてない 4
データの取り込み&アップロードがWindows経由でしかできない
というわけで簡単に対応できるところから、ということで前者2つについてはGAE/Pythonを使って、データを半年以上保存できるようにして、JSONでデータを外部公開できるようにして、そのデータを使ってグラフ化したものを公開できるようにしました。
JSON API
上記のグラフ
jQuery Mobileでデータ入力画面を作り、データストアのデータをGAEのサンプルアプリ geochatのjson.py に パッチを当てて、db.QueryクラスからJSONに出力 できるようにして、そのデータをjQueryのgetJSON()で読み込み、jqPlotでグラフ化しているだけの簡単なプログラムです。3つ目のWindowsしか対応していないのは、まずGNU/Linuxで読み取れるようにして、これらの機器がNFC対応なのでAndroidで読み取れるようにそのうちしようかなぁと思っています 5 。
ソースコードはGithubに晒しているのでパッチウェルカム。
まとめ¶
やはり記録して見える化しておくのはモチベーションを維持できます。というより楽しいです。また、コツは無理しないこと。たまには食べすぎたり、寝る前にアイスを食べてしまうこともありますが、短期的に見ないで長期で考えればいいのです。というわけで、ワシと同様に体重、体脂肪率が増えて、最近全然継続的な運動をしていない上、酒毎日飲んでいるけど、大丈夫かなぁと思っているそこのあなた。10年まともに運動していなくてもちょっとしたきっかけで始めて継続できるので、気になっているならやってみてから考えてみてはいかが。
3ヶ月後(半年経過)にまた経過をブログに書く予定です。お楽しみに。
“通信端点が接続されていません”?¶
なんぞコレ?時間ないのでとりあえずメモだけ。
$ sudo update-grub2
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.38
Found initrd image: /boot/initrd.img-2.6.38
Found linux image: /boot/vmlinuz-2.6.37.1
Found initrd image: /boot/initrd.img-2.6.37.1
Found linux image: /boot/vmlinuz-2.6.37
Found initrd image: /boot/initrd.img-2.6.37
No volume groups found
ls: reading directory /var/lib/os-prober/mount: Software caused connection abort
ls: cannot access /var/lib/os-prober/mount: Transport endpoint is not connected
ls: cannot access /var/lib/os-prober/mount: Transport endpoint is not connected
ls: cannot access /var/lib/os-prober/mount: Transport endpoint is not connected
ls: cannot access /var/lib/os-prober/mount: Transport endpoint is not connected
ls: cannot access /var/lib/os-prober/mount: Transport endpoint is not connected
ls: cannot access /var/lib/os-prober/mount: Transport endpoint is not connected
done
$ dpkg -l | grep grub
ii grub-common 1.99~rc1-13 GRand Unified Bootloader, version 2 (common files)
ii grub-pc 1.99~rc1-13 GRand Unified Bootloader, version 2 (PC/BIOS version)
Picasaの写真の削除を自動化する。¶
こまちゃん監視システム で使っている googlecl は、Wheezyのパッケージでバージョンが0.9.12のため、Picasaの写真はアルバムまるごとの削除はできるが個別の写真の削除ができないバグがある。Picasaでは1アルバムあたりの写真数の上限が1000ファイルなので、だいたい1日前後でアップデートできなくなってしまう。なので、今まではブラウザでこまちゃんの様子をチェックがてら削除していたのが、まとめて削除しようとするとInternal Server Errorを返したりするので、かなりめんどい。
と、気づいたら 0.9.13 がリリースされていたので、試してみたら個別の写真も削除できる上、削除確認のプロンプトに対して一括してyesを入力する–yesオプションが実装されていた。これはうれしい。ということで、Debianパッケージを作成し、OpenBlockS600にインストールして、下記のようなスクリプトをcronで回すことにした。
#!/bin/bash
USER=GoogleAccount
google -u $USER picasa delete --query "`date --date '12 hour ago' +\"%Y%m%d-%H\"`" --yes
postするときに、–tagsオプションでYYYYMMDD-HHという形式でタグをつけておき、削除するときは、–queryオプションに、dateコマンドの–dateオプションで同じフォーマットで指定時間分の時間を指定する。上記の例だと12時間前のタグついた写真を削除できる。
あと、こまちゃん監視システムを簡単に導入できるように、Post & Delete用のスクリプトと導入手順を githubに公開 しておいた。
修正¶
“–query”オプションではYYYYMMDD-HH形式のtagの検索ができなかったので、YYYYMMDDHH形式に変更しておいた。
GAE/PythonデータストアのエンティティをQueryクラスからJSONに変換する。¶
GAE/Pythonに格納したデータをJSONで取得したいなぁと思ったのだが、一から全部書くのは面倒だったので何かないかと思っていたら、 こちらのブログ を見て、 Google CodeにGQLからJSONに変換するツールがある のを知った。
ただ、このコードだと、Queryクラスでは使えない。普段Queryクラスの方を使っているので下記のように変更した。
$ diff -u json.py.org json.py
--- json.py.org 2011-04-20 15:42:18.000000000 +0900
+++ json.py 2011-04-20 16:10:33.000000000 +0900
@@ -48,7 +48,7 @@
if hasattr(obj, '__json__'):
return getattr(obj, '__json__')()
- if isinstance(obj, db.GqlQuery):
+ if isinstance(obj, db.GqlQuery) or isinstance(obj, db.Query):
return list(obj)
elif isinstance(obj, db.Model):
こんな感じでやれば、
import json
from models import BodyComposition
from google.appengine.ext import webapp
from google.appengine.ext import db
class DataBodyComposition(webapp.RequestHandler):
def get(self):
body_compos_query = BodyComposition.all()
self.response.out.write(json.encode(body_compos_query))
JSONにできましたよと。
[{"measurement_datetime": {"ctime": "Wed Apr 20 01:50:00 2011", "hour": 1, "isoweekday": 3, "month": 4, "second": 0, "microsecond": 0,
"isocalendar": [2011, 16, 3], "timetuple": [2011, 4, 20, 1, 50, 0, 2, 110, -1], "year": 2011, "epoch": 1303264200.0,
"isoformat": "2011-04-20T01:50:00", "day": 20, "minute": 50}, "body_age": 35, "weight": 66.700000000000003,
"basal_metabolism": 1580, "bmi": 22.100000000000001, "skeltal_mascle_percentage": 36.700000000000003,
"bodyfat_percentage": 21.300000000000001,
"ownerid": {"nickname": "test@example.com", "email": "test@example.com", "auth_domain": "gmail.com"}, "bodyfat_lv": 7}]
第75回 東京エリアDebian勉強会開催&参加。¶
今回はIIJさんの会議室をお借りしての開催 でした。ちょうど4/13にDebian JP Project会長に選任されたので就任挨拶と、あと同じくらいのタイミングでDebianパッケージメンテナンスの方も再チャレンジすることにしたので、多分Debianパッケージメンテナンスをはじめる人が悩みそうな疑問をまとめて、今回の参加者の皆さんに教えてもらう、という形式で質問をしました 1 。
資料は以下。
なお、後者の疑問の方に対する結論は以下のとおり。
WNPPに入ってないソフトウェアはBTSにITPせずにmentors.debian.netにアップロードしても良いのか?
BTSにITPしてからmentors.debian.netにアップロードしる。changelogにBTSの番号あるだろJK
MITライセンスやPython Software Foundation Lincenseなど、mainには入っているけど/usr/share/common-licenses/以下にライセンスの全文ファイルが無いものはdebian/copyrightに書けばよいのか?ファイルを置いてパスを書けば良いのか?
ドキュメントが無い場合は自分で書くのか?アップストリームに書いてもらうのか?
自分でドキュメント書いて、quiltでソースパッチとして、フィードバックしる。それがDebianの価値にもなる
機能的に分離できるのは複数パッケージに分けるべき?
分けとけ。依存関係を少なくした方が、ユーザにとっては余計なパッケージをインストールしないで済む
というわけで、僕の疑問に答えてくださった皆さん、ありがとうございました。頑張ってパッケージメンテナンスに再挑戦します。
backports.debian.org の話やinitramfs、月刊PPC64ポーティングの話など 2 盛り上がって、大変有意義な内容でした。