March 27, 2016

ドラえもんが落ちた

娘が側溝にお気に入りのドラえもんのおもちゃを落とした。 娘は大泣きだ。 落としたおもちゃは「誕生!走るペットドラ」で、 映画「新・のび太の日本誕生」の公開記念プレゼントとしてもらったもの。 そのため、ここで諦めると、二度と手に入らない。 幸いなことに、ドラえもんはそこまで深い位置に落ちてなく、天気も晴れ模様である。 ちょっと道具を使えば、何とか取り出せそうだ。 ここは頑張って取りだそうではないか。 そこで、自宅に帰り、メジャーにガムテープを巻く。 特に根拠はないが、たぶんくっ付くだろう。 そして、現場に向かい、排水溝にメジャーを突っ込む。 ドラえもんをガムテープにくっ付ける。 数度、挑戦して何とかドラえもんを取り出せた。 取り戻したドラえもんを持って自宅に帰る。 綺麗に磨き、除菌したドラえもんを娘に渡す。 ……。 すっかり忘れてしまったのか、 あまり良い反応ではなかった。 まぁ、良いか。

February 29, 2016

書斎にホワイトボードを設置した

先日、書斎にホワイトボードを設置した。 以下の製品を使って実現した。 製品名価格 (単位:円) ナカバヤシ 薄型アルミホワイトボード900×600mm WBA-U90604,212 壁美人 石膏ボード用固定金具 P-8 ホワイト 2枚セット P-8Shw1,264 合計5,476 これらの製品を使うと、この写真のようにホワイトボードを壁にかけられる。 壁美人でホワイトボードを掛けている。ホワイトボードの重さは3kgで、壁美人は1枚あたり12kgまで耐えられる。 このホワイトボードを使うようになって3週間程度経過したが、以下の効果があった。 状況を整理しやすくなった。 (マインドマップや図がかけるので、構造を把握できる) 学習意欲が向上した。 (ロジック、英文法、数式などを手を動かしながら覚えられる) オープンソースのプログラムの構造を把握しやすくなった。 (UMLなどが自由に描ける) 5,476円の出費でとても満足いくものとなった。

December 31, 2015

2015年にお世話になった本

2015年に読んだ本は16冊でした。 HARD THINGS 答えがない難問と困難にきみはどう立ち向かうか](http://www.amazon.co.jp/gp/product/B00W535LOU/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00W535LOU&linkCode=as2&tag=hiroakit-22) Inspired: 顧客の心を捉える製品の創り方](http://www.amazon.co.jp/gp/product/B00TCM8TB4/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00TCM8TB4&linkCode=as2&tag=hiroakit-22) 読書について](http://www.amazon.co.jp/gp/product/B015F4CCQA/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B015F4CCQA&linkCode=as2&tag=hiroakit-22") アート オブ ロバート・マッギニス:THE ART OF ROBERT McGINNIS](http://www.amazon.co.jp/gp/product/4837306365/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4837306365&linkCode=as2&tag=hiroakit-22") 継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化](http://www.amazon.co.jp/gp/product/4048707876/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4048707876&linkCode=as2&tag=hiroakit-22") エッセンシャル スクラム](http://www.amazon.co.jp/gp/product/B00MB6GO7E/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00MB6GO7E&linkCode=as2&tag=hiroakit-22") JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス](http://www.amazon.co.jp/gp/product/4873113911/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4873113911&linkCode=as2&tag=hiroakit-22) CによるCGレイトレーシング](http://www.amazon.co.jp/gp/product/4781906176/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4781906176&linkCode=as2&tag=hiroakit-22) 初めてのSQL](http://www.amazon.co.jp/gp/product/4873112818/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=4873112818&linkCode=as2&tag=hiroakit-22) How Google Works](http://www.amazon.co.jp/gp/product/B00OJVMK5O/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00OJVMK5O&linkCode=as2&tag=hiroakit-22) 千のプラトー 上 資本主義と分裂症](http://www.amazon.co.jp/gp/product/B00QQKCV3W/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00QQKCV3W&linkCode=as2&tag=hiroakit-22) そうだったのか現代思想 ニーチェからフーコーまで (講談社+α文庫)](http://www.amazon.co.jp/gp/product/B00I9406D0/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00I9406D0&linkCode=as2&tag=hiroakit-22) 日本思想全史 ちくま新書](http://www.amazon.co.jp/gp/product/B00PXAUNBS/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00PXAUNBS&linkCode=as2&tag=hiroakit-22) 改訂新版 共同幻想論 角川文庫ソフィア (角川ソフィア文庫)](http://www.amazon.co.jp/gp/product/B00APUCNWI/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00APUCNWI&linkCode=as2&tag=largeworld-22) 世界に1つだけの子育ての教科書](http://www.amazon.co.jp/gp/product/B00RKTGXLY/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00RKTGXLY&linkCode=as2&tag=largeworld-22) 春琴抄](http://www.amazon.co.jp/gp/product/B00DOT564O/ref=as_li_ss_tl?ie=UTF8&camp=247&creative=7399&creativeASIN=B00DOT564O&linkCode=as2&tag=largeworld-22)

August 2, 2015

PythonでMayaプラグインを作成する - プリミティブ操作編

プリミティブのオブジェクトを生成して、移動、拡大、回転をするコード。 これはプラグインではなく、あくまでもスクリプト。 そのうち、役に立つ日が来るだろうか。 ## 資料 [Maya ヘルプ - polyCube command](http://help.autodesk.com/cloudhelp/2016/JPN/Maya-Tech-Docs/CommandsPython/polyCube.html) [Maya ヘルプ - polyPlane command](http://help.autodesk.com/cloudhelp/2016/JPN/Maya-Tech-Docs/CommandsPython/polyPlane.html) [Maya ヘルプ - polySphere command](http://help.autodesk.com/cloudhelp/2016/JPN/Maya-Tech-Docs/CommandsPython/polySphere.html) [Maya ヘルプ - polyCylinder command](http://help.autodesk.com/cloudhelp/2016/JPN/Maya-Tech-Docs/CommandsPython/polyCylinder.html) [Maya ヘルプ - move command](http://help.autodesk.com/cloudhelp/2016/JPN/Maya-Tech-Docs/CommandsPython/move.html) [Maya ヘルプ - rotate command](http://help.autodesk.com/cloudhelp/2016/JPN/Maya-Tech-Docs/CommandsPython/rotate.html) [Maya ヘルプ - scale command](http://help.autodesk.com/cloudhelp/2016/JPN/Maya-Tech-Docs/CommandsPython/scale.html)

July 26, 2015

IISのログをシンプルにする

下記のコードはAzure Cloud ServiceでIISが出力する[W3C形式のログ](https://msdn.microsoft.com/ja-jp/library/Cc338018.aspx#W3CExtendedLogFileFormat)を、 クライアント側でシンプルにするシェルスクリプトである。 本来はIISが何をログに残すかを設定すべきなのだろうが、 その辺りは特に何もしないでAzure Cloud ServiceにMVCのウェブアプリをデプロイすることがあると思う。 そもそも、この辺りの設定ができるのかどうかがわからない。 そういったこともあって、クライアントでログの中身を取捨選択できると便利だろうと思い、 上記コードを作成した。 ## 使い方 下記に使い方を示す。Windowsの端末ではgit bashがあれば実行可能だ。 sh parse-iis-log.sh "/path/to/iis/log/*.log" このコマンドを実行するとIISログがシンプルになってテキストファイルとして出力される。 出力されるファイルはコマンド実行時にいたディレクトリ。ファイル名はtmp-parsed-log.txtである。 また、500系のログは500-error-log.txtという別ファイルに出力される。コマンド実行時にいたディレクトリにファイルが生成される。

July 21, 2015

シャア専用着脱式ハンドル鍋セット

先日、この商品を購入した。取っ手が着脱式のフライパン・鍋だ。今まで使っているモノが老朽化してきたので買い替えた。 普段、なかなか料理ができず、妻に全てお任せしている状態なので、プレゼントすることにした。 パッケージはこんな感じ。着脱式ハンドル鍋セットと書いてあるが、色から判断するに要はシャア専用鍋セットのことなのであろう。 中身はこんな感じ。鍋の色は全部赤だ。やっぱりシャア専用だ。通常の3倍である。

July 18, 2015

PythonでMayaプラグインを作成する - 開発環境編

[前回の記事](http://www.hiroakit.com/article/1381)では、プラグインの開発環境については触れず、Hello Worldの実装だけに留めた。 そこで、今回はPythonでMayaプラグインを作成するための開発環境について触れたい。ネット上を探すと幾つか見つかった。下記に示す。 [Wing IDE](http://www.wingware.com), 有償, プロプライエタリソフトウェア [PyCharm](https://www.jetbrains.com/pycharm/), 有償, プロプライエタリソフトウェア [Winpdb](http://winpdb.org), 無償, フリーソフトウェア [Eclipse](http://www.eclipse.org/home/index.php), 無償, フリーソフトウェア [Emacs](https://www.gnu.org/software/emacs/emacs.html), 無償, フリーソフトウェア 上記のうち、Wing IDE, Winpdb, Eclipseについては、Autodeskの[Maya ヘルプ: Python で初めてスクリプトを記述する場合のヒントとコツ](http://help.autodesk.com/view/MAYAUL/2016/JPN/?guid=GUID-8A96A8DB-FD6F-434F-A878-288DD84E99C7)で紹介されているもので、PyCharmは[PythonRandomDoc/pycharmDebugging at master ・ lochrist/PythonRandomDoc](https://github.com/lochrist/PythonRandomDoc/tree/master/pycharmDebugging)から候補に含めた。最後のEmacsについては[Koichi Tamura's blog: Emacs To Maya for Python Scripts](http://koichitamura.blogspot.jp/2009/06/emacs-to-maya-for-python-scripts.html)をみて候補に入れた。 それでは、プロプライエタリソフトウェアとフリーソフトウェアに分けて見ていきたい。 ## プロプライエタリソフトウェア 下表はWing IDEとPyCharmのライセンス料をまとめたものである。 商用 非商用 Wing IDE $245 $95 PyCharm $199 $99 Read more

July 13, 2015

スライド共有サービス

スライドを自分のブログに貼り付ける機能を提供しているサービスを探している。 今のところ、下記の3つに目星を立てている。 SlideShare Speaker Deck Power Pointオンライン それでは、1つずつ見ていきたい。 SlideShareはサイトに埋め込むためのHTMLを自動生成してくれる。この時、埋め込み時のサイズを候補から選べる。それとスライド番号を指定できる。また、機能提供元のサイトに移動すれば、ソーシャル関連の機能もあり、どれぐらいの人にシェアされたのか確認できる。 PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール from Atsuo Ishimoto スライド番号が選べるため、「上記スライドの~」といった紹介が可能だ。 Speaker Deckも自分のサイトに埋め込むためのHTMLは自動生成。この時、スライド番号を指定できる。また、機能提供元のサイトに移動すれば、ソーシャル関連の機能もあり、どれぐらいの人にシェアされたのか確認できる。 ただし、下記のことができない。 幅と高さは選べない。ユーザがHTMLを埋め込む際に自分で調整する Speaker Deckは先ほどのSlideShareと後述するPower Pointオンラインとは異なり、iframeではなくJavaScriptをasyncで埋め込む。 そのため、スライドの表示までがワンテンポ遅い。ただ、iframeだとクリックジャッキングが…という人は選択肢としてアリかもしれない。 Power Pointオンラインも作成したスライドを自分のブログに貼り付けることができる。ブログに埋め込むためのHTMLは同サービスが自動生成してくれる。貼り付け後、訪れたユーザがパワーポイント形式でダウンロード可能だ。 ただし、下記のことができない。 幅と高さは選べない。ユーザがHTMLを埋め込む際に自分で調整する スライド番号を選べない ソーシャル関連の機能がない (何人にシェアされたとか、どのぐらいの人が見たといったデータが取れない) スライド番号が選べないので、「上記スライドの~」といった紹介の仕方はできず、特定のスライドについて言及する場合は「上記スライドの3枚目」といったような書き方を強いられる。 だが、スライドのデータを認証を咬ませずに.pptx形式で配布可能というのは他のサービスにはない機能だ。 Power Pointオンライン 気に入ったスライドは頭から貼り付け 埋め込み時のサイズは自分で直す スライドのデータは.pptx形式でダウンロード可能 (ログイン不要) SlideShare スライド番号指定で気に入ったスライドから貼り付け可能 埋め込み時のサイズに選択肢がある スライドのデータはダウンロード可能 (要ログイン) Speaker Deck スライド番号指定で気に入ったスライドから貼り付け可能 埋め込み時のサイズぐらい自分で直す

July 13, 2015

PythonでMayaプラグインを作成する - HelloWorld編

先日、Autodesk Maya 2016 (以下、Mayaと略す)を試用した。PythonでMayaプラグインを開発するためである。 ## Maya Python API 本当にこのAPIは使われているのだろうか。 MayaはPythonでコールできるAPI "Maya Python API" を提供している。同APIは1.0と2.0と2つのバージョンが存在するが、[Maya ヘルプ: Python API 2.0 を使用する](http://help.autodesk.com/view/MAYAUL/2016/JPN/?guid=__files_GUID_B1CD0989_EB49_46BE_934F_F23BFB869142_htm) を読む限り互換性はない。 新しい API クラスと古い API クラスを同じスクリプト内で使用することができますが、 それらのオブジェクトには相互運用性はありません。 APIに互換性がないということは、プログラム内でバージョンを明示する必要があるはず。先のAutodeskのドキュメントを読み進めるとこのように記されている。 新しい API を使用するプラグインを記述する場合、プラグインは maya_useNewAPI と呼ばれる関数を定義しなければなりません。 さらに、[Maya ヘルプ: Maya Maya Python プラグインの Learning Path](http://help.autodesk.com/view/MAYAUL/2016/JPN/?guid=__files_GUID_856DDB26_93E7_493D_A1D4_60C4CBA38B9C_htm) を読むと、よりショッキングな記述がある。同APIの2.0は1.0の機能を受け継いでいるわけではないようだ。廃止されたAPIがあって、そのような流れなら理解できるが、下記の記述はAPIに対する不安を抱かせる。本当に大丈夫なのか。 2.0 API は高速化され、より「Python に近い」ものになりましたが、まだ 1.0 のすべてのフィーチャは 2.0 で使用 できません。この API と旧式の 1.0 API の違いについては、「Maya Python API 2.0」を参照してください。 このように私はMaya Python APIに不安を感じているが、業界の方々は本当にこのAPIを使っているのだろうか。 ## プラグインの実装 気を取りなして、具体的な実装方法について見ていきたい。どうやらMayaのプラグインには種類があるようだ。ここでは大まかな流れを把握したいので、Hello Worldと表示するコマンドプラグインを作っていく。 まずはMayaのプラグイン機構に対応するために実装が必要のメソッドを探す。[Maya ヘルプ: コマンド プラグイン](http://help. Read more