Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

【読書メモ】おカネが変われば世界が変わる―市民が創るNPOバンク

おカネが変われば世界が変わる―市民が創るNPOバンク

おカネが変われば世界が変わる―市民が創るNPOバンク

NPOバンクというのがあるそうです。
私が今個人的に感じている「とある業界」の問題解決に使えるんじゃ無いかと手を出しました。

銀行法があるので、出資能力を持ったNPO法人として機能する様子。
元本保証も無ければ利子も出せないと儲ける仕組みにならなそうです。
とは言え、課題解決のための持ち回りプラットフォームとして考えるなら悪くはなさそうでもあります。

本文中ではクリアすべき法律、実際の事例などが出ており運用イメージが掴み易くなっています。

……この世代の文系教授にありがちな社会批判が一々挟まれてウンザリする事を除けば、
非常に勉強になる本です。

世間に支援策がないわけでは、決して無い

NPOバンクは「無担保」「小額」「目的重視」をターゲットにしています。
内容によっては、必ずしも上記条件が全部必要というワケでも無いでしょう。
その場合、既存の支援策が使えるかも。

まず、地域振興系なら
www.furusato-zaidan.or.jp
教職員の互助会なんかでも
www.gojo-saitama.jp
年金を担保にした小額融資……なんてのも
www.nyfsk.or.jp

315MHz帯通信モジュールIM315をArduinoで試す その1:Arduinoシールド編

IM315シリーズは"特定小電力無線"と呼ばれる帯域を使う通信モジュールです。
1:1からN:Mまで、スター型やクラスタツリー型のネットワークを構築可能。
送信専用のデバイスに至っては、なんとボタン電池一個で一年持つとかいう脅威の低消費電力。
通信距離も、見通し50m(公式による)、屋内でもドアを挟んで4m、遮蔽なしで15m程は飛びます。
ワザワザZigBeeみたいなものは使いたくないがリモートで接続したい場合……などには中々有用です。

実際のところ

構成

受/送信子機

どちらも同じ構成で行けます。

315MHz特定小電力無線 送受信モジュール IM315TRX

315MHz特定小電力無線 送受信モジュール IM315TRX

組み上がった装置はこんな感じ

デフォではD8、D9が通信に使われています。
また、D10がビジー状態用フラグ、D11がスリープ状態指定用フラグとして推奨されている様子。

ソフトウェア

とりあえず、受信器側で動作確認してみましょう。
"RDID"という機器固有IDを読み出す関数をコールしてシリアルに吐き出してみます。

#include <SoftwareSerial.h>

SoftwareSerial IM315Serial(8, 9); // ソフトウエアシリアル

void setup() {
 IM315Serial.begin(19200); // ソフトウエアシリアル 初期化
 Serial.begin(19200);
 pinMode(10, INPUT);       // Busy 信号 Pin10 入力
 while (!IM315Serial & !Serial ) { ; } //受信待機
 delay(1000);

 /* 機器固有IDを表示*/
 Serial.print("ID");

 IM315Serial.println("RDID");
  while (IM315Serial.available()) {
    readPacket();
  };
}

void loop() {
  ;
}

【読書メモ】プログラマが知るべき97のこと

プログラマが知るべき97のこと

プログラマが知るべき97のこと

リーダブルコード等々のプログラマ系読み物の類です。
見開き2ページ程度ミニエッセイ集の体を取っています。
中身は

  • IDEに頼り過ぎるな
  • バージョン管理しろ
  • 詰まったら少し席外して息抜きしろ

等々……それなりに面倒見の良い企業なら先輩が教えてくれそうな話が並んでいます。
そういった立場の人が周りに居ない人は時折読み返すと新しい発見があるかも知れません。
あるいは、これから指導する立場になる人が予習本に使うのもいいかも。

シリーズものとして「システムアーキテクト」「ゲームデザイナー」のバージョンもあるので、興味のある方はそちらもどうぞ。

Pythonでも正オブジェクトの否定の否定はTrueだった

shuzo-kino.hateblo.jp
以前の記事で、RubyJavascriptの正オブジェクトの否定の否定をやるとTrueが返ってくるという記事を書きました。
今回はその、Python

実際のところ

RubyJavascriptと違い、"!"の構文がありません。

!a
# 2> SyntaxError: invalid syntax

というわけで、"not"構文を使います。

a = "hoge"
not (not a)
#>> True

Pug/JadeのCase文はJavascriptのswitchっぽい挙動をする

Pug/JadeのCase文はJavascriptのswitchっぽい挙動をするようです。
必要ならbreakで飛ばす事もできます。

実際のところ

変数friendsを取得し、その結果に応じてスクリプトを変える例を見てみます。

- var friends = 114514
case friends
  when 0: p 君は"けものフレンズ"を見ていないフレンズなんだね
  when 1: p 君は"けものフレンズ"を見たフレンズなんだね
  default: p すっごーい! 君は#{friends}回"けものフレンズ"を見たフレンズなんだね

実行するとこんな塩梅。

<p>すっごーい! 君は114514回"けものフレンズ"を見たフレンズなんだね</p>

という訳で、脳味噌を溶かして楽になりたい方は是非"けものフレンズ"を

参考もと

Case – Pug

郵便番号から住所を出してくれる便利ライブラリ「yubinbango.js」

yubinbango.jsは郵便番号から住所を出してくれる便利ライブラリです。
npmみたいなツールが無くとも、そのまんま埋め込みができます。

実際のところ

<script src="https://yubinbango.github.io/yubinbango/yubinbango.js" charset="UTF-8"></script>

<form class="h-adr">
  <span class="p-country-name" style="display:none;">Japan</span><input type="text" class="p-postal-code" size="3" maxlength="3">
  <input type="text" class="p-postal-code" size="4" maxlength="4"><br>

  <input type="text" class="p-region" readonly /><br>
  <input type="text" class="p-locality" readonly /><br>
  <input type="text" class="p-street-address" /><br>
  <input type="text" class="p-extended-address" />
</form>

何もしないと、こんな感じ
f:id:shuzo_kino:20170205235319p:plain
数値を入力すると……
f:id:shuzo_kino:20170205235323p:plain

無料みたいですが、募金は受け付けているそうです。

参考もと

github.com

"Tag Interpolation"機能をつかって、タグ文中に別のタグをネストなしでねじ込む

jade/pugでは、構造はネストで表現します。
が、見通しが悪くなるから短いトコではネストしたくない……という場合、
今回の"Tag Interpolation"記法が使えます。

実際のところ

これが

p.mew hoge#[strong.yeah fuga]piyo

こうなります。

<p class="mew">hoge<strong class="yeah">fuga</strong>piyo</p>

参考もと

Interpolation – Pug