shphinxを使ってPythonのコードからAPIドキュメント作成

無駄に苦労したのでメモ

  • shphinxのquick_start
  • コマンドsphinx-apidoc -f -o [出力フォルダ] [srcフォルダ]
  • 20行目あたりの以下のコメントアウトを外し、sys.path.insertの表記を[srcフォルダ] へのパスにする

# import sys
# import os

# sys.path.insert(0, os.path.abspath('.'))

import sys
import os

sys.path.insert(0, os.path.abspath('[srcDirectoryPath]'))
  • extensionsの値を ["sphinx.ext.autodoc"]
  • コマンドsphinx-build -b html [conf.pyのフォルダ] [ビルド先フォルダ]

おまけ


というかここがわかりやすかったので参考

bonbonbe.hatenablog.com

Juman++をUbuntu(Anaconda)にインストール

無駄に苦労したのでメモ

  • Juman++をDL
    これは研究室のHPにいってその通りにすればいい。

これをPythonから使うにはラッパーのpyknpが必要だが、このpyknpはJuman(無印)とKNPに依存している。更に面倒なことにKNPはJuman(無印)に依存している。ので、次の順番でインストールを行う。

  • Juman(無印)をDLしてインストー
  • KNPをDLしてインストー
  • pyknpをDLしてインストー

最後のpyknpは素直にsudo python setup.py installを叩いても、Anacondaのpythonにインストールされない。condaのディストリビューションもない。そこでpipを使ってこうする。  

pip ./pyknp-0.3 install

所要時間は3時間程度。お疲れさまでした。

Visual Studio 2015 Express 日本語版

いくら探してもVisual Studio 2015 Expressの日本語を探しているが見つからなかったので情報共有。
なんとURLを直接弄る必要があるらしい

d.hatena.ne.jp

あまりにも見つからないのであきらめて英語版で開発してた。
それにしてもMSは一体何を考えているんだ。

文字列の括弧をなんやかんやする

背景

練習がてら、文字列の括弧をなんやかんやするやつを作った。
ちょっと他所で使いそうなのでVBAで作った。

コード

Function Scan(St As String, h As Integer) As Variant()
'####################################################
'引数
'String:パーサ対象文字(250くらいまで)
'h :最大階層数
'返却値
'variant():二次元配列で(string, integer)
'例:(hoge(foo(piyo))hoge, 1) → (hoge,0) , (foo(piyo),1), (hoge,0)
'################################q###################

    'かっこがない時はそのまま返しておしまい
    If InStr(1, St, "(") = 0 And InStr(1, St, ")") = 0 Then
        Dim Arr_R2(1, 0) As Variant
        Arr_R2(0, 0) = St
        Arr_R2(1, 0) = 0
        Scan = Arr_R2
        Exit Function
    End If
    
    Dim i As Integer
    Dim buf_St As String: buf_St = ""   'キャッシュ
    
    Dim Buf_arr() As String '保存用
    ReDim Buf_arr(1, Len(St) - 1) '(0, n):開始文字、(1, n);それまでの階層
    '動的に要素数を決めるべきなんだろうけど面倒になった
    
    Dim buf As String   '参照文字列
    Dim q As Integer: q = 0 'ポインタ
    Dim hn As Integer: hn = 0 '階層

    For i = 1 To Len(St)
        buf = Mid(St, i, 1)
        
        If buf = "(" Then
            If hn < h And Len(buf_St) > 0 Then
                'hn => h の時はstackされない
                '各階層でつなげる必要はないのでpopもしちゃう
                Buf_arr(0, q) = buf_St
                Buf_arr(1, q) = hn
                buf_St = "": q = q + 1
            End If
            hn = hn + 1
        ElseIf buf = ")" Then
            If hn <= h And Len(buf_St) > 0 Then
                Buf_arr(0, q) = buf_St
                Buf_arr(1, q) = hn
                buf_St = "": q = q + 1
            End If
            hn = hn - 1
        End If
    
        '判定するの面倒だから手癖でやった
        If (hn > h Or Not buf = "(") And (hn >= h Or Not buf = ")") Then buf_St = buf_St & buf
    Next i
    
    'キャッシュ掃き出し
    Buf_arr(0, q) = buf_St
    Buf_arr(1, q) = 0
    
    '値が入っている要素の最大値を取る
    q = 0
    Do While Len(Buf_arr(0, q)) > 0
        q = q + 1
    Loop
    
    '返却用
    Dim Arr_R() As Variant
    ReDim Arr_R(1, q - 1)
    For i = 0 To q - 1
        Arr_R(0, i) = Buf_arr(0, i)
        Arr_R(1, i) = Val(Buf_arr(1, i))
    Next
    
    Scan = Arr_R
    
End Function

総括

いつも他人のVBAに文句言っているけど自分も大概。
それでもVBAは悪い文明。

Excelを閉じる時にセルをA1に合わせるVBA

背景

エクセルを閉じる時にシートの全セルを"A1"に合わせる文化があります。私もこれを忘れて何度か怒鳴られたこと(全て社内から)があります。
この日本の美徳を忘れずに実行するため、Excelを閉じる時に全てのシートについてセル"A1"を選択するVBAを作りましたのでご査収下さい。

コード

Private Sub Auto_Close()

On Error GoTo Err
  Dim i
  For i = 1 To Worksheets.Count
    Worksheets(i).Activate
    Worksheets(i).Cells(1, 1).Select
    DoEvents
  Next
  
  Worksheets(1).Activate

  Exit Sub
Err:
End Sub

使い方は適当なExcelファイルのプロシージャに上記コードを突っ込んでアドインで保存。その後保存したアドインを適用。
閉じる時に「上書き保存しますか?」っていう確認が出ない場合A1に合わせて保存されないのでそこだけ注意。気に入らなかったら適当に変えて下さい。
他に不具合があったら適当にお願いいたします。教えて下さるとありがたいです。

総括

くたばれワープロExcel

レバコンメモ

RAP HAYABUSAにセイミツレバーをつけた時のメモ


ねじ切り

RAPにセイミツレバーを取り付けるにはねじ切り作業が必要。
使うタップはM4 ピッチ 7 mm。Amazonの安いので十分。
ついでにさび止めも買う。

LS-62-01

シャフトが短く、キビキビした動きができるレバー。
SSベースを取り付ければLS-32-(01)と同じく取り付けられる。
8方向メインガイド付き。

LS-32-01の丸ガイド

斜めに殆ど入らない。

LS-62-01改造

ばねを固くする。
スプリング受け(赤いパーツ)に1mmゴムシートを輪形に切ったものを被せると少々固くなる。LS-62-01のシャフト分解はLS-32-01と異なりCリングプライヤーは不要。マイナスドライバーで十分。LS-56、LS-58のばねも使えるかもしれない(未確認)(使えました)。

ガイドと基盤の間にスペーサー( or ナット)を入れてガイドを浮かせると戻りの反応が多少良くなる(東方などのSTGで移動量が少なくなる) 。 但し可動域が狭まる。

スペーサの長さによってはガイドを留めるねじの長さが足りなくなる。ガイドを留めているねじは恐らくM3(追記 LS-58やLS-62等ではセイミツのサブガイド取り付け用ビスが使えます)。ねじ部がちょっと長くなったねじを使うと前述の問題は解決できるかもしれない。

完全食Compを試してみた

ご飯がめんどくさいです

アラサーともなれば健康に気を使いたいお年頃。魚を食べなければ、サラダを食べなければ、昨日と違うものを食べなければ……でもこれを完全に満たそうと外食するとお高くつきますし。それに食べると眠くなるし集中力が落ちるしで、食事が結構面倒でした。

色々悩んだ結果、結局朝昼はサラダ+サラダチキン+雑穀米、夜はワンコイン海鮮丼と中華料理屋のローテーションに収束していました。そんなこんなで数か月経過した時、「食事はこれだけ飲んでいればOK」という完全食Compに出会いました。大体1ヶ月ちょい位飲んでます。

www.comp.jp

Compレビュー

作り方と味

中身は写真みたいな粉。プロテインみたいな感じです。

f:id:usagisagi:20170104231204j:plain

これを結構な量を入れシェイカーで溶かして飲みます。コツは濃いめに作ること。水を入れすぎると不味い何かが出来ます。

f:id:usagisagi:20170104231157j:plain

味は一言でいうと調整豆乳。野菜生活とか緑茶とか牛乳とかと混ぜるとおいしいです。まずいと評判の青汁も抹茶ミルクみたいになって美味しくいただけます。

栄養価と腹持ち

栄養価は一通り揃っているようです。個人的に食物繊維が結構入っているところが気に入ってます。400kccalあたりで約4.3g、大体キリンメッツコーラ1本弱(5.0 g)。

腹持ちは良いです。寝起き、11:00、15:00にCompを400kcalずつ飲んでますがあまりお腹減りません。サラダチキン+サラダ+雑穀米の時は15:00位に間食食べたくなっていましたが、その悩みが解消されてよかったと思います。

体と心の調子

朝昼をCompに置き換えていますが、体の調子は特段変化はないです。

バランスのご飯を食べなきゃとかいう食に関するストレスが無くなった点、それと家事や食事の時間を削れて勉強などの自由時間が増えた点が良かったです。

ちなみに3食Compを試したこともありましたがストレスが溜まりダメでした。私は1日1回は普通の食事を取らないと調子が狂うみたいです。

コスト

コストは下表みたいな感じで少し高いです。400kcal個包装になると20円位高くなります。

購入方法 400kcalあたりの価格
400kcal 24packs(個包装) 約356円
4000kcal 2bags(大袋) 約332円
400kcal 96packs(個包装) 約317円
4000kcal 16bags(大袋) 約297円

大袋の方が安いので、会社に持っていくプロテインシェーカーに大袋のCompを入れる涙ぐましい努力をしています。

最低価格は7,000円からと少し勇気がいるお値段ですが、今はお試しパック(3packs 300円、但し送料別)があります。


全体として、コストはやや高いものの、食のストレスが減ったことと時短になることがうれしいので結構気に入ってます。当面の間は、朝昼をCompに置き換えていく予定です。

ということで先日、MAXの4000kcal 16bagsを買いました。

f:id:usagisagi:20161230132904j:plain

f:id:usagisagi:20161230132916j:plain

この大きな箱は、えっちな本を売るときの箱として是非有効活用させていただきたいと思います。