ししちにじゅうはち 4x7=28

よんたったー https://twitter.com/keita44_f4

引っ越しました

4/15にひっこしました。

引っ越し理由

  • 今まで社員向け独身寮に住んでてそろそろ追い出される
  • 会社への依存度を下げたい
  • よんたさんバーに対して、キッチンをもっと広くしたい、パーティできる広さがある部屋にしたい
  • (まだ公言してない理由)

引っ越し先

新居について

  • 新築
  • 2LDK
  • 広い
  • キッチンが広い
  • 家賃75kくらい、駐車場とかコミコミで90kくらい


引っ越してみて

  • 最高
  • 通勤時間が1時間から1時間40分に延びた
    • ますます働きたくなくなった

引っ越してみて?

良かった点
  • ダンボールに書いた情報が役立った
    • その1:中に何を入っているか大まかに書いた(例:台所鍋類、台所すぐ使う食器、PCケーブル類、割れ物など)
    • その2:詰めた順番+使う重要度を番号で記しておいた
      • 最初に詰めたダンボールや、開けるのを最後にしてダンボールが1、すぐ使うものに大きな数字を連番で振っておいた
      • たまにしか使わない土鍋や、補充用の未開封粉物など、小さな数字を振ったダンボールに先に詰めておいた
      • 最終日まで使っていた使用頻度の高い食器や歯ブラシなどは、大きな番号のダンボールに詰めておいた。
  • 引っ越しは土曜日、翌月曜に有休をとっておいてよかった。
    • 日曜は引っ越し後のあれこれ
    • 月曜は役場(住民票)や警察(免許)などへの書類申請日としてすごく役立った
    • マイナンバーカードがあると転出届・転入届が楽だった。
    • マイナンバーカード自体の書き換えに役場の職員が慣れてなかった。
悪かった点
  • 荷詰めは1日で終わると思ったけど実質1週間かかった
    • 5年も暮らすと何かと荷物あるものだった…。
    • 大量に要らないものが見つかり、捨てるのにすごく手間取った。
    • 計画まじ大事
  • WiMaxの申請は引っ越す2日前くらいからしておけばよかった。
    • 申請してから送付開始なので、しばらくネットワークがなかった。
    • 新築なせいもあり、光回線の契約がだいぶ遅れた。



引越し当日

ダンボールで埋まった

現状

Thanks to @dico_leque @c0hama
でこれきさんとこはまさんがダンボールの移動を手伝ってくれた。
おかげでカーペットが敷けた。
本当にありがとうございました。

ところで

引っ越しパーティします。
https://cookingnagoya.connpass.com/event/56335/

何にも関係ないですけどこちらに干し芋リストがあります
http://amzn.asia/ffyc5He

自分もごみの自己搬入をやってきた

マコーさんがゴミの搬入をしてきたそうなので、自分の住んでいた地方でもやった話を。
参考リンク:マコーの日記

ゴミの内容

大きな絨毯2ロールを捨てた。
指定ゴミ袋に入らないし、部屋に合わせて切り取ってるしで、自己搬入で捨てるしかなかった。
あと自己搬入するならついでにと、引っ越し日まで捨てれなかったいらない細々したもの(カサとか)もついでに捨ててきた。

ゴミの出し先

自分が住んでいた地域は東部知多クリーンセンターの対象地域だったので、
ここに捨てに行ってきた。
日曜日以外はほぼやっている。
土曜もやっているので、休みにも搬入できて便利だった。

ゴミ搬入の方法

  • 車に積む
  • 行く
  • 入り口で重量を計られる
  • 捨てる
  • 帰り口で重量を計られお金を払う
  • 🐸

かんたん!

感想

  • 300円取られた、20〜30kgの量だった。
  • 普通の量なら書類申請とか事前連絡も無しで車で持っていくだけでよくて、ひじょうに簡単でよかった
  • 燃えるゴミを移動させる超大型クレーンがかっこよかった
  • 他にも、くらしのマーケットに不用品回収サービスがあり、トラックに不用品乗せ放題で10k円〜とお安くてオススメだった
    • 引越し前に捨てれる大物の机なんかは先にこれで捨てた

余談

これに落ちたら死ぬなって思った。
写真の覗き穴は、ゴミ収集車とかが中身を捨てていくサイズ。

Raspberry Pi2でGUIアプリをroot権限で自動起動する方法

デーモンや普通のソフトの自動起動はよくあるんだけど、表題がなかったのでまとめる。
特にRaspberry Pi2ではGPIOがroot権限でしか読み書きできないため、rootでGUI自動起動したくなる。
結論:できた

Twitterで質問してみた



おまいら天才か…!

解法

今回はアプリ自体をよくアップデートするためsuidを毎回付け直すのが面倒なため、sudoにNOPASSWDオプションを付与することにした。

  • `sudo visudo`で以下の権限を与える
  • [myapp_path]にアプリをおく
  • ~/.config/lxsession/LXDE_pi/autostartを編集
    • @sudo [myapp_path]
    • 上記行を追加

まとめ

  • CUIとか一般権限アプリしか自動起動できないと諦めてたけど、そんなことはなくできた
  • Twitter上の偉大な方々しゅごい

elpyの設定メモ

Emacsにelpyを設定して四苦八苦した結果をメモ。
他にも苦しんでる人のために。
必要なPython環境をWindowsに用意する方法は前エントリを参照。

苦しんだ点とかまとめ

  • elpyはpython modeと一緒に動くメジャーモード
    • key-mapについて
      • python modeとelpy modeのkey-mapは別々に存在する
      • elpy起動時にpython modeのkey-mapをelpy modeのそれで上書きする
      • ショートカットの設定はelpy側のkey-mapに設定する
    • elpyの起動について
      • .pyファイルに対してpython modeとelpy modeの両方をオンしないといけない
      • python-mode-hookにelpyの起動をねじ込んだ
  • elpyの起動には(package-initialize)がいる

参考になったところ

設定したEmacsの設定ファイル(init.el)

;;; python mode
(add-hook 'python-mode-hook
          '(lambda ()
             (setq indent-tabs-mode nil)
             (setq indent-level 4)
             (setq python-indent 4)
             (setq tab-width 4)
             (package-initialize)       ; なぜかこれが無いとelpyが動かない
             (elpy-enable)
             (elpy-mode)
             ))

;;; elpy mode
;; pythonのrope、jediのパッケージを入れておくこと
;; 公式はさらにflake8、importmagic、autopep8、yapfを推奨している
(add-hook 'elpy-mode-hook
          '(lambda ()
             (elpy-use-ipython)
             ;; quickrunをC-cC-cに設定
             (define-key elpy-mode-map "\C-c\C-c" 'quickrun)
             ;; company-mode + rope/jediを使うためautocompletionをオフ
             (auto-complete-mode -1)
             ; companyによる補完のキーマップを設定
             (define-key company-active-map (kbd "\C-n") 'company-select-next)
             (define-key
               company-active-map (kbd "\C-p") 'company-select-previous)
             (define-key
               company-active-map (kbd "\C-d") 'company-show-doc-buffer)
             (define-key
               company-active-map (kbd "<tab>") 'company-complete)
             ))

;;; py-autopep8
;; pythonのautopep8のパッケージを入れておくこと
(add-hook 'python-mode-hook 'py-autopep8-enable-on-save)

;;; python flymake
;; pythonのpyflakesのパッケージを入れておくこと
(require 'tramp-cmds)
(when (load "flymake" t)
  (defun flymake-pyflakes-init ()
     ; Make sure it's not a remote buffer or flymake would not work
     (when (not (subsetp (list (current-buffer)) (tramp-list-remote-buffers)))
      (let* ((temp-file (flymake-init-create-temp-buffer-copy
                         'flymake-create-temp-inplace))
             (local-file (file-relative-name
                          temp-file
                          (file-name-directory buffer-file-name))))
        (list "pyflakes" (list local-file)))))
  (add-to-list 'flymake-allowed-file-name-masks
               '("\\.py\\'" flymake-pyflakes-init)))
(add-hook 'python-mode-hook
          (lambda ()
            (flymake-mode t)))

苦しんだ話

  • 最初は、2つ目の.pyファイルを開かないとelpyがenableにならなかった。
  • さらに、python modeでquickrunのショートカットを設定したせいで、elpyが起動するとquickrunが動かないように見えた
  • elpyのバグかと思って見てたら、お互いのショートカットが別々に存在していた。
  • elpyではC-cC-cをpython-shell-send-bufferとやらで上書きしていて、c\:/〜/ipython.exeなる謎のエスケープが入ったipythonが呼ばれてて混乱した。

2016年4月のWindows+msys2+Emacsでうまく動くPython環境について

Windowsのいろいろうまく動くPythonのインストールにむっちゃ苦労したのでメモしておく

動かしたいもの

  • Python2.7(できればPython3.4も)
  • Emacs + pyflakes(flycheckすごい便利)
  • Emacs + pep8(自動でコーディングルールを整えるのすごい便利)
  • matplotlib(グラフプロットするGUIライブラリ)
  • scipy(計算ライブラリ)

それぞれ試したものとまとめ

  • Anaconda
    • WindowsGUIやpyflakesが問題なく動く
    • 複数のPython環境を管理できる
  • canopy
    • WindowsGUIやpyflakesが問題なく動く
    • 無償版だとライブラリが少ない
  • msys2のpacman -S msys/python3とpip
    • LinuxにあるblasライブラリがWindowsに無いため辛い
    • pyflakesをEmacsから呼ぼうとすると、Windowsパスとmsysパスの違いのせいでうまく動かない
  • msys2のpacman -S mingw-w64-x86_64-python3とpip
    • openblasはpacmanで入れれる
    • やっぱりpyflakesがEmacsから呼べない
  • 公式Pythonバイナリとpip
    • Windows用バイナリなのに、scipyでblasライブラリで同様にこける

うまくいった環境

Anacondaのダウンロード
condaコマンドで欲しいライブラリをいれる
  • conda install ***
condaに無いものはpipで入れる
  • pip install ***
EmacsPython環境をつくる
msys2やEmacsのPATHの設定
  • Anacondaのパスを追加
    • [AnacondaPath]/Anaconda3と[AnacondaPath]/Scriptsと[AnacondaPath]/Library/binの3つ
    • condaのactivate/deactivateを使うのならば、[AnacondaPath]/envs/[envname]と[AnacondaPath]/envs/Scriptsと[AnacondaPath]/envs/[envname]/Library/binを使えば良い
    • path書き換えるコマンド作ってもよい

未解決の問題

  • matlibplotを使ったPythonコードをquickrunすると、一定時間後に「QObject::killTimers: timers cannot be stopped from another thread」を吐いてmatlibplotで表示したGUIが落ちる
  • 【追記】quickrunはタイムアウト時間を設定してあるせい。「quickrun-timeout-seconds」を負数にすればタイムアウト設定をOFFにできる。

Raspberry Pi 2でのWekanの動かし方

まとめ

  • Raspberry PiでWekanは動くらしい
  • 個人的にはWekanをRaspberry Piで動かせなかった
    • Wekan(prebuild)は起動途中でnodeパッケージがELFエラーする
    • MeteorでWekanをbuildしようとすると、パッケージcfs:gridfsのArmv7向けがなく失敗する

参考元

概要

Node.jsの準備
→Meteorのインストール
→Wekanのビルド
→Wekanのインストール

  • apt-getしておくツール
    • git-core mongodb mongodb-server make g++ gcc build-essential libssl-dev curl

Node.jsの準備

gitレポジトリからnode.jsを持ってくる。
Wekanの都合から、node.jsはv0.10.40をいれないといけない。
nvm(Node Version Manager)とnpm(node package manager)を使うのがメジャーなようなので、採用する。
なお、node.jsのインストールは時間がかかる。
また、source ~/.nvm/nvm.shを.profileに記述する。

$ git clone https://github.com/creationix/nvm.git ~/.nvm
$ ~/.nvm/nvm.sh
$ nvm install v0.10.40
$ npm update -g npm

Meteorのインストール

MeteorはWekanのビルドに必要なだけなので、$HOMEへ置く。
管理者権限は必要ない。
そこそこ時間がかかる。

$ cd $HOME
$ git clone --depth 1 https://github.com/4commerce-technologies-AG/meteor.git
$ $HOME/meteor/meteor --version

途中でcurlの認証書エラーがする場合は、必要に応じて証明書をアップデートする。
ただし、ラズパイの証明書のアップデート方法を調べるのがめんどかったので、今回は-kオプションを使いエラーを無視した。

--- ./git/meteor/meteor 2016-04-07 14:41:11.560265384 +0900
+++ ./meteor/meteor     2016-04-07 22:41:14.946819041 +0900
@@ -1,6 +1,8 @@
 #!/usr/bin/env bash

 BUNDLE_VERSION=0.5.16
+CURLFLAGS='-k'

 # OS Check. Put here because here is where we download the precompiled
 # bundles that are arch specific.
@@ -100,7 +102,7 @@

     # test if we can download the dev_bundle tarball
     function __check_tarball_download() {
-      CHECK_TARBALL=$(curl --head --location --silent "$DEV_BUNDLE_URL_ROOT$TARBALL" --output /dev/null --write-out '%{http_code}')
+      CHECK_TARBALL=$(curl $CURLFLAGS --head --location --silent "$DEV_BUNDLE_URL_ROOT$TARBALL" --output /dev/null --write-out '%{http_code}')
       # Write down a message instead doing a false download
       if [ "$CHECK_TARBALL" != "200" ] ; then
         if [ -n "$METEOR_UNIVERSAL_FLAG" ] ; then
@@ -127,11 +129,11 @@
     elif [ -n "$SAVE_DEV_BUNDLE_TARBALL" ] ; then
         # URL duplicated in tools/server/target.sh.in
         __check_tarball_download
-        curl --location -# "$DEV_BUNDLE_URL_ROOT$TARBALL" >"$SCRIPT_DIR/$TARBALL"
+        curl $CURLFLAGS --location -# "$DEV_BUNDLE_URL_ROOT$TARBALL" >"$SCRIPT_DIR/$TARBALL"
         tar -xzf "$SCRIPT_DIR/$TARBALL" -C "$BUNDLE_TMPDIR"
     else
         __check_tarball_download
-        curl --location -# "$DEV_BUNDLE_URL_ROOT$TARBALL" | tar -xzf - -C "$BUNDLE_TMPDIR"
+        curl $CURLFLAGS --location -# "$DEV_BUNDLE_URL_ROOT$TARBALL" | tar -xzf - -C "$BUNDLE_TMPDIR"
     fi

     # In case that we have to use the universal system environment, make sure

(Additional)Meteorのインストールの確認

心配な人はMeteorのexampleを動かす。
時間はかかる。

$ cd $HOME
$ $HOME/meteor/meteor create --example todos
$ cd todos
$ $HOME/meteor/meteor
$ # この後に、http://[IP Address]:3000/ にアクセス

以下のようなエラーが起きた場合は、localesをen_GB.UTF-8からen_US.UTF-8に変更すると治る。
公式githubで議論されてる。

$ ~/meteor/meteor
[[[[[ ~/tmp/meteor-test/todos ]]]]]

=> Started proxy.
Unexpected mongo exit code 1. Restarting.
Unexpected mongo exit code 1. Restarting.
Unexpected mongo exit code 1. Restarting.
Can't start Mongo server.
MongoDB failed global initialization

Looks like MongoDB doesn't understand your locale settings. See
https://github.com/meteor/meteor/issues/4019 for more details.
$ sudo dpkg-reconfigure locales # en_US.UTF-8にする
$ ~/meteor/meteor
[[[[[ ~/tmp/meteor-test/todos ]]]]]

=> Started proxy.
=> Started MongoDB.
   Starting your app
$ # この後に、http://[IP Address]:3000/ にアクセス

Wekanのビルド

TODO、うまくいってない。

$ git clone https://github.com/wekan/wekan.git
$ cd wekan
$ git checkout v0.10.1

Wekanのインストール

公式提供のautoscriptを使う。
ただし、公式のレポジトリからzipを落とす部分を、自分でビルドしたWekanを使うように書き換えて実行する。
また、sudoではなくsudo suしてrootアカウントにならないとディレクトリ権限がおかしくなりエラーで落ちる。
気づかずにだいぶハマった。

$ git clone https://github.com/anselal/wekan/blob/master/autoinstall_wekan.sh
$ vi ./wekan/autoinstall_wekan.sh
$ sudo su
# ./wekan/autoinstall_wekan.sh
- wget https://github.com/wekan/wekan/releases/download/v0.10.1/wekan-0.10.1.tar.gz
+ # wget https://github.com/wekan/wekan/releases/download/v0.10.1/wekan-0.10.1.tar.gz

終わると、/etc/init.d/wekanと/usr/local/bin/get-ip-addressと/etc/network/if-up.d/show-ip-addressが作成される。
ポート番号などの設定は/etc/init.d/wekanの変数を書き換える。
get-ip-addressの中身は単純なbash script。
ちなみに、Debian testingを使った際は、ifconfigのフォーマットが合わないので改変する必要がある。

回路図CAD+プリント基板CADな感想

某人が雑にブログをさくさく書くのやってるの、よいので真似しよう。
軽い気持ちでネットに知識を保存して、世界をちょっとだけよくするのよい。

CR-5000

  • 図研
  • 多くの企業で採用されている実績のある回路・基板CAD
  • 日本語おk、なはず
  • 強い
    • けど高いのでまだ使ったことない

Eagle

  • CadSoft
  • 100x80mmや部品数・レイヤーに制限ありまでは無料
  • 英語
  • 有料になると急に5〜20万と本気を出してくる
    • 回路図・基板・自動配線の3つのうちたくさん買うほど高額
    • えげつない
  • 強い
    • 老舗なのか、他フリーCADはEagle形式をインポートできるのを強みに言う

Design Spark PCB

  • RS compornents関係
    • RSの部品Noをつけた部品リストを出せる機能がある
    • 国内のPCB試作メーカにすぐに見積もり・発注が出せる機能とかある
  • 完全無償で商用利用もおk
  • 英語
  • Eagleのデータをインポートできる
  • 移動とか基本が普通CAD系の操作感で使いやすい

KiCAD

  • OSSな回路・基板CAD
    • ライブラリはGithubで公開、プルリクも受け付けてる
  • 完全無償で商用利用もおk
  • 日本語化バイナリが存在する
  • Eagleのデータをインポートできる
  • 普通のCAD系とちょっと基本操作が違ったのが違和感あった

というわけでDesign Spark PCB使って回路の勉強してる。