Posts by dodo5522

快適!全部入りメディアサーバ自作のススメ。

超低消費電力なARMマイコンLinuxサーバとして活用できるRaspberry Pi。 我が家では、既に販売終了している初代のRaspberry Pi 1 Model Aが現役で活躍中です。 そんな我が家の家庭内LAN上に張り巡らせた、超快適環境を提供してくれるサーバ群を紹介します。 というより、そろそろ整理しておかないと、壊れた時に困りそうな気がして、慌てて書き出したというのが正直なところ^^; 提供サービス一覧@Raspberry Pi 低消費電力を活かして、Raspberry Piには常時稼働が必要な、それでいて負荷が少ないサービスを割り当てるのが得策です。OpenVPNは負荷が低いサービスに入るのか…? 一般的なマイコンより高性能とはいえ、さすがにx86 Core2/CoreiなどのCPUには劣るARM。目的が違うのでしょうがない。 そういうわけで、我が家では以下のサービスがRaspberry Piで稼働しています。ディストリは標準的なraspbian。 サーバサイド クライアントサイド 名称 価格 概要 名称 価格 概要 OpenVPN free 家庭内LANに安全にアクセス。 OpenVPN Connect free iOSアプリ。家庭内LANに安全にアクセス。 OpenVPN Connect free Androidアプリ。機能はiOSアプリと同様。 BIND9 free 家庭内LANの名前解決に。…

収穫祭@2016年11月26日 - あまり経験がないヤーコンの食べ方3つとその食感。

今回はただの日記。収穫祭レポートです。 …といっても、写真の野菜たちはそのほとんどがお隣区画の方からの頂き物。ありがたや。 我が家の区画は育ちが悪く、まだ食べられる状態ではありません。特にチンゲンサイ。なんでこんなに立派に育つんだろう…?こういうところで技術の差を感じる。 こちらもお隣さん区画で育てていたヤーコン。大漁すぎて、むしろもっと持って帰ってと、たくさん頂きました。 でもこれ、どうやって食べるの…? ヤーコンとは 外観はこんなんです。 というか、そもそもヤーコンって何?と思って調べてみました。 ヤーコン(英: Yacón、学名:Smallanthus sonchifolius)はキク科スマランサス属(英語版)[1]の多年草。 根にフラクトオリゴ糖(英語版)が多く、甘みがあり、食用にされる。 ヤーコンを「アンデス・ポテト」と呼ぶ例もあるが、同じくアンデス産のジャガイモと紛らわしく、不適当である。 出典:Wikpedia。 畑指導してくれる副市長さんも、アンデスのジャガイモと言ってたなぁ。Wikipediaは不適当と言っているけども。そしてその食べ方も教えてくれました。 ヤーコンの食べ方 主に以下の3通りに調理していただくといい感じだとか。 1. 輪切り/半月切りにして酢醤油でいただく 2.…

DIY家具の設計にAUTODESK製3D CAD Fusion 360を導入したい件。

借りてる部屋の寸法にぴったり合う本棚って、なかなかないんですよね。 セミ・フルオーダーの本棚や家具を作ってくれる工房はもちろんあるんですが、よほどお金に困っていない富裕層以外はちょっと手が出ないし、そもそもそこまでする気にならないし。 嫁も簡単に「作っちゃえば?」と言ってくるので、重い腰を上げて作ってみました。本棚をDIYで。せっかくなので今借りてる部屋にぴったり合わせた寸法で。 手書き設計(落書き)してみる 汚い。・・・まぁ、上のは概略なので。次はマトモです。 棚の背面は空けていて、壁の凹凸に合わせて底と天板の一部に切り欠きを入れています。 あとで出てくる完成品の写真を見れば分かると思うんですが・・・ やっぱりこういうのはタイトルにある通り、3D CADで書いてみたいですよね。 完成予想図を3次元モデルで見られるし、何より最近は3Dプリンタがお手頃価格になってきただけでなく、DMM.makeみたいに会員制で機材を使える場や、FabCafeのようなカフェスタイルのお店も増えてきたので、3D CADスキルを身につけておくと色々と楽しそうです。 DMM.make AKIBAが3Dプリント講座を開講 - https://t.co/zHEhFthmU3 #dmm #dmmmakeakiba #MakersCollege #3dプリンタ #3dprinter #3dプリンティング #教育 #tech #スタートアップ— id.arts (@idarts_jp) 2016年7月30日…

ちょっとしたコマンドラインツールをpythonで作る時に便利なargparseのテストで気をつけるべきこと。

ちょっとしたコマンドラインツールをpythonで作る時に便利なargparseなんですが、位置引数ありparserが出す例外をテストするコードを書いて初めて知ったことがありました。 そのメモ書きになります。 位置引数とは argparseの公式ページにも載っている通り、コマンドライン実行時に必須となる引数のことです。以下引用。 位置引数は次のように作成します: >>> >>> parser.add_argument('bar') parse_args() が呼ばれたとき、オプション引数は接頭辞 - により識別され、それ以外の引数は位置引数として扱われます: >>> >>> parser = argparse.ArgumentParser(prog='PROG') >>> parser.add_argument('-f', '--foo') >>> parser.add_argument('bar') >>> parser.…

呼び出し規約とは?stdcallとはなんぞや?という話。

昔WindowsCEプラットフォームで製品開発していた時も、素のWin32APIを叩いてテストアプリを作ったりしていたけれど、今思うとあまり理解しないままに使って作っていたんだなぁ…と、今更ながら思う。 ARMで言う所のeabiみたいなもんか。関数を呼び出すということ - Web/DB プログラミング徹底解説 https://t.co/Bb6Nw5icCO @sharethisより— takashi ando (@takashi7ando) 2016年10月27日 上のリンク先、「関数を呼び出すということ」なんて超基本じゃん!などと思うなかれ、かなり深いところまで掘り下げて解説されています。 最も具体的で身近な例としては、「Win32APIと標準Cライブラリとでは、スタックの巻き戻し方が違うんだよ」という点です。そうだったんだ!と、目から鱗でした^^; そんな__stdcallの規約、大元の情報は以下のMicrosoft本家ページに記載されています。 Win32APIの呼び出し規約 Cライブラリはこちらです。 Cライブラリの規約__cdecl ちなみに、上記の規約ページでも触れていますが、スマホなどの組み込み機器で確固たる地位を築き上げたARMプロセッサは、インテルのx86プロセッサとは全く異なるCPUなので、当然規約も違います。 検索したら、ARM社ではなく、なぜかMicrosoft の解説ページがトップに出てきたんですが… そのままリンク貼っちゃいます^^; ARM ABI 規則の概要 なんでこんなもん調べだしたのかというと… 今後仕事でWindows上で動かす業務効率化するスクリプトを書く機会が増えそうで、…

DIYガイガーカウンタ製作日記その3。

DIYガイガーカウンタ製作日記その2の続き。 事あるごとに線量計で家の周りを測るの、メンドくさいんですよね。 勝手に計測してくれて、リアルタイムに自動的にグラフ化してくれて、線量が上限の閾値を超えたら警告してくれる線量計があると、楽に安心して生活できるなぁ…。 リアルタイムに可視化した空間線量データ そんな動機で作り始めて、リアルタイムに可視化するとこまで完成。 Safecastにデータ提供するだけだと、他の大量の観測データに埋もれてしまうのと、特定地点の線量の増減がよく分からないので、お馴染みXivelyを使います。データ量によらず無料なのが良い。 KeenIOのライブラリを使うと簡単に綺麗なグラフが描けるんですが、月当たりの送信可能データ量上限が決まっているので、今回は泣く泣く諦めることに。 コードの解説 Xivelyにデータ送信する部分のコードは以下です。実際は自前のevent trigger/handlerを間に挟んでいますが、送信部のみ抜粋しました。 class XivelyEventHandler(IEventHandler): """ The instance should be registered to event trigger for data update. This uploads any data to xively cloud service. Args: api_key: API key ID provided by xively.…

10年前の転職体験記。就職先を決めずに辞めたあの頃は、若かった…。

10年勤めた会社を今月辞めます。残すところ1日となりました。 10年前に転職した時、もう他へ行くことはないだろうと思っていたのに、3.11起きるわ事業傾くわ不正会計問題起こして事業再編しまくるわ、人生何が起きるか分かりませんね…。 今回のは次回の転職体験記に回して、この記事は10年前の体験記になります。これ思い返すと、ホント住宅ローン組んでる場合じゃないわ…。 転職を考えている人に、少しでも役立つ情報となれば幸いです。 転職の動機 10年前、転職を考えた動機は、当時の会社で直属のプロジェクトリーダーが心を壊して休職するまでを目の当たりにしたことと、サブリーダーを務めていた自分に次のリーダー職が回ってきそうだったこと。 当時参画していたプロジェクトに限らず、心の健康を害して休職となったメンバーが全体の1〜2割程度いて、更に予備軍もいるという状態でした。 平日は夜遅くまで、土日も出る人多かったしなぁ… 自分含めて。 まずは転職サイトのエージェントを味方につける 転職を決意したら、その動機が後ろ向きであれ前向きであれ、まずは転職サイトにアカウント登録し、エージェントを味方につけることからスタートするのが良いです。 孤独な戦いになることも多いと思うので、まず最初にその道のプロを味方にすると、とても心強い。 どこから漏れるか分からないので、職場の同僚には相談しない。と言いながら、外注さんには思いっきり相談してたけど。 エージェントに愚痴る エージェントと面談すると、まず最初に転職の動機を聞かれます。当たり前ですが。 初対面な事もあって身構えてしまい、猫かぶった前向きな動機を話しがちですが… 相手はプロなので、そんな誤魔化しは通用しませんでした。愚痴大会になります。 でもそれは悪いことではなくて、誰でもそこからスタートするんだそうです。当時お世話になったエージェントの方が教えてくれました。愚痴から本音を汲み取って、本来自分が望む働き方や、やりたいことを実現するための手助けをしてくれます。 後ろ向きな理由だからと尻込みせず、まずは相談という名の愚痴聞き大会を開催しましょう。 余剰資金を確保する…

DIYガイガーカウンタ製作日記その2。

DIYガイガーカウンタ製作日記その1の続き。 前回はSparkfun製ガイガーカウンタから得たcpm値をuSv/hに変換してprintするとこまでだったので、今度はこれをSafacast API経由でSafecastサーバに送信してみます。 検討は過去記事空間放射線量データを公開しているSafecast。REST API経由で定点観測データを自動送信するには?でほぼ完了しているので、あとは組み合わせるだけです。 import requests from datetime import datetime from serial import Serial # Sparkfunガイガーカウンタを接続したシリアルポートを開く port = Serial("/dev/tty.usbserial-AK05C8NQ", baudrate=19200) while True: # cpm値の部分だけ抜き出す cpm = int(port.readline().decode("ascii").split()[0]) # uSv/h換算 usv = cpm * 0.00812 print("{:.2f}[uSv]".format(usv)) # 計測した線量値をSafecastのHPから登録する際のやり取りをgoogle chromeでキャプチャした結果を使う data = { "measurement[…

家計簿担当必携アプリ、マネーフォワードのススメ。

連携できる金融機関の数がものすごいのと、操作感がとても軽快で、その上、家計資産レポートや家計診断、支出ランキングを月ごとに報告してくれる、過保護なくらい親切な家計簿アプリです。 家計簿マネーフォワード-自動連携で簡単 人気の無料家計簿無料(2016.09.14時点)Money Forward, Inc.posted with ポチレバ 無料ではあるけれど、アプリ内課金があるのでご注意。月額500円で全機能が使えます。 そんなMoney Forwardの便利機能の一つ、レシート読み取り機能の精度に感動したので、ちょっとだけご紹介。 このレシートを読み取ってみます。 結果はこうなりました。日付、支出額、お店の名前やカテゴリに至るまで、見事正解です。 お次はちょと特殊なフォントのまきばレストランのレシート。 これもしっかりと読み取ってます。すごい…。 次はちょっと意地悪して、公共料金支払いレシート。値段が書かれていません。 「11」って、どこから読み取ったんだ? でもちゃんと店名や日付はしっかりと読み取れている。すごい。 だいぶ前に、Money Forwardとは別のアプリでレシート読み取り機能を使ったことがあるんですが、その精度はまぁ酷かった…。 入力し直す手間の方が大きかったので、そのアプリはいつの間にか使わなくなりました。 しかし、このMoney Forwardのレシート読み取り機能は、読み間違えることがほとんどありません。溜まっていたレシート20枚程度を数分で入力し終わりました。 金額入力するのがめんどくさくて家計簿が続かない人にオススメです。…