2015年1月27日火曜日

Windows 10 Technical PreviewをBuild 9926にアップデート

新しいビルドがでました。ISOはこちらから。
前のビルドからもアップデートできるようなのでやってみました。

まずはビルド番号の確認。Build 9841です。

Update and recoveryPreview Buildsからアップデートします。

ポチッとするとダウンロード開始。

ダウンロード完了!

インストール中・・・・

完了して再起動の要求でOK。

再起動中・・・

再起動かかって設定中。

再起動かかって、あともうちょっと。

完了!ログインしようとしたらキーボードの配列がUS配列になってました。
アップデート前は日本語配列だったんだけど。。。

ログインしたらアプリのインストール中。もうちょい。。。

そして完了!Build 9926!

ぱっとみ、スタートメニューの感じが変わったのとタスクバーに検索ボックスがついてます。


2015年1月8日木曜日

YosemiteのApacheでユーザーディレクトリを見ると403になる

いろんなサイトを見て回ってやっと解消できたのでメモ。

やりたいことは、http://localhost/~username/index.htmlとかが見れることです。
http://localhost/It works!なのに403がでていました。
  1. モジュールの有効化
    /etc/apache2/httpd.confを編集して、コメントアウトされている以下のモジュール有効化する。
    LoadModule authz_core_module libexec/apache2/mod_authz_core.so
    LoadModule authz_host_module libexec/apache2/mod_authz_host.so
    LoadModule userdir_module libexec/apache2/mod_userdir.so
    
  2. ユーザーディレクトリ用の設定ファイルを読み込む設定を有効化
    /etc/apache2/httpd.confを編集して、コメントアウトされている以下を有効化する。
    Include /private/etc/apache2/extra/httpd-userdir.conf
    さらに、/etc/apache2/extra/httpd-userdir.confを編集してコメントアウトされている以下を有効化する。
    Include /private/etc/apache2/users/*.conf
  3. ユーザーディレクトリの作成
    ホームディレクトリにSitesディレクトリを作成します。ここにファイルを設置します。
    mkdir ~/Sites
  4. ユーザごとの設定ファイルを作成
    /etc/apache2/users/username.confを以下の内容で作成する。
     <Directory>
    AllowOverride All
    Options Indexes MultiViews
    Options +FollowSymLinks
    Require all granted
    </Directory>
  5. Apacheを再起動
    sudo apachectl restart

2014年8月7日木曜日

Arduino Ethernet Shieldを使ってみた

ArduinoのEhternetシールドを買ったので使ってみました。以下で安いものがあったので購入しましたが、ピンががつんと曲がった状態で届きました。動いたので良かったですが。。。
(Arduinoのための)用のイーサネットW5100シールド(マイクロSDカードをサポート)
Arduino本体と重ねるとこんな感じ。

やってみたこと

Ethernetシールド用のライブラリが用意されています。
Ethernet library
このライブラリを使って、Webサーバーから情報を取得してLEDをON/OFFすることにします。

本当は、Travis CIの結果をLEDで表示する、をしたかったのですが、調べてみるとArduinoの要領だとHTTPSでの通信は難しいとのことで断念。。。

実装

Webサーバー側には以下のようなCGIを置きました。ledの値を0にするとLEDが消えて、1にすると点くようにします。
#!/usr/bin/ruby

print "Content-Type: text/html\n"
print "\n"
print "led:1\n"

スケッチはこちら
ライブラリにサンプルとして着いているWebClientを参考にしています。

LEDのピンは7番を使っています。Ethernetシールドが4、10〜13のピンを使っているためです。
こんな感じになりました、、、といっても普通にLEDつけてるのと変わりません。


シールドを載せてあとはライブラリを使うだけなので、簡単にできますね。

2014年7月31日木曜日

リリース:Redmine XLSX format issue exporter 0.1.0

Redmineのチケット一覧をXLSX形式で出力するプラグイン、
Redmine XLSX format issue exporter
を作りました。Plugins Directoryにも登録しました。

機能

Redmineにはチケット一覧の右下からCSVやPDFで出力する機能が標準であります。そのXLSX版です。プラグインをインストールすると、右下の赤丸部分のようにリンクが追加されます。

リンクを押すとCSVエクスポートと同じように、オプションで選択している項目を出力するか、全ての項目を出力するかを選択するダイアログがでます。また、チケットの説明をつけるかも選択できます。

あとはエクスポートボタンを押すダウンロードがはじまります。XLSXの中身は、CSVダウンロードと同等のものにある程度の書式設定(ヘッダの色、ヘッダの固定、折り返し、列の幅)がされています。

Redmine XLS Exportとの違い

Excel形式でエクスポートするプラグインとしてRedmine XLS Exportもあります。こちらには、XLS形式でのチケット一覧の出力以外に、履歴や添付ファイルを出力する機能などもあります。Redmine XLSX format issue exporterでは、シンプルにRedmine標準のCSVエクスポートのXLSX版という位置づけにしたいと考えています。

Plugins Directoryに登録したついでにRedmine XLS ExportPlugins Directoryを見たら、すでにオフィシャルには3年以上更新されていません。リポジトリもなくZIPで公開されているのみという状態だったので、自分でZIPからGithubに遷してメンテしているんですよね。もう更新しないのかなあ。。。

2014年7月23日水曜日

RedmineプラグインのCI環境を作る

1年ぐらい前にNDSでRedmineプラグインのテスト書いてとLTしましたが、幾ばくかのテストを自分で書きました。
テストを書いたので次はCI環境を作りたいと思います。


Travis Integration for Redmine Plugins

調べてみたところ、以下を見つけました。
Travis Integration for Redmine Plugins
Redmineプラグインのテストをするには、当たり前ですがRedmineが必要になります。なので、CIの環境にRedmineをインストールするところから始めないとなのですが、その辺をTravis CI向けにスクリプト化したものです。
これは便利そうということで、これを使っての環境構築を試してみました。

追記:上記のリポジトリでRedmineをダウンロードしてくるソースがedavis10のところになっていました。ここもミラーしているようですが、Redmineのフォーラムでgithubのリポジトリが示されていたので、フォークしてソースに書き換えました
追記の追記:プルリクエストを出して取り込まれました。

手順

手順は以下のとおりです。Travis CIで対象のリポジトリをCI対象にしている状態とします。
  1. Travis Integration for Redmine Pluginsをクローンしてくる。
  2. .travis*をプラグインのルートフォルダにコピーする。
  3. .travis.ymlで定義されているbranchesを書き換える。クローンしたままだとtestingブランチのみが対象となるため、フックが効かないことがあるかもです。
  4. .travis.ymlで定義されているenvを書き換える。REDMINE_VERSIONで指定されたバージョンのRedmineでテストをします。複数指定する場合は、行をコピーしてバージョンを書き換えてください。
  5. .travis.ymlで定義されているPLUGINをプラグイン名に書き換える。
  6. .travis*をコミットする。コミットがフックされてビルドが開始されます。

結果

できた環境はこちら。テストも成功しました。
.travis.ymlrvmREDMINE_VERSIONのマトリックスでビルドが実行されます。
非常に簡単にRedmineプラグインのCI環境を作ることができました。RedmineプラグインのCI環境を作るハードルを下げてくれますね。

Arduinoで温度センサーを使ってみた

Arduinoエントリーキットに付いてきた最後の部品、温度センサーを使ってみました。
温度センサーはLM35DZです。データシートはこちら

配線

回路図は以下のとおり単純なのですが、はまりました。

LM35のGNDと+Vsを逆にしていたため、測定した値がおかしくなりArduino自体が動かなくなってしまいました。。。
データシートのピン配置図をみていたのですが、BOTTOM VIEWと書いてあるのを読み取れていませんでした。。。足の出ている方を上にしてみるんですね、BOTTOM VIEWですもんね。この投稿をみてわかりました。
分かってみてからLM35DZ 逆で検索すると、同じようなことがでてきました。

スケッチ

いろいろなサイトで同じスケッチがでているので割愛。ポイントは以下のとおり。
実際の室温と同じぐらいになっていました。
  • アナログ入力は5Vを1024段階にする。
  • LM35DZのVoutからは、10mV/℃で出力される。

精度を上げる

検索していたらこんなのを見つけました。
LM35HigherResolution

analogReference()は、アナログ入力の基準電圧を変える関数。デフォルトは5V。INTERNALを指定すると1.1Vになります。
基準電圧が5Vの場合は、
5V / 1024 = 0.00488
から、1単位あたり約4.9mVとなります。
これが基準電圧を1.1Vにすると、
1.1V / 1024 = 0.00107
なので、1単位あたり約1.1mVとなります。
上でも書いたようにLM35DZは10mV/℃で出力するので、5Vの場合は1単位あたり0.49℃、1.1Vの場合は1単位あたり0.11℃となり、より細かい温度を測定できます。
ただし、LM35DZは+2℃〜+150℃まで測れるとデータシートにありますが、1.1Vの場合のMaxは112.53℃に制限されます。

実際に試してみると、5Vの場合は27.83℃と28.32℃(差は0.49)をいったりきたりしたのに対して、1.1Vの場合には29.54℃と29.43℃(差は0.11)をいったりきたりしていました。それぞれはよさそうですが、比べると1℃近くも値が違います。なんでだろう?



これでArduinoエントリーキットに付いてきたひと通りの部品を試しました。
ここまでArduinoを触った感じでは、簡単な回路ものであれば容易にできそうです。本をひと通りやっていくだけでも楽しめました。
ただ、回路を組むのでわからなかったり、スケッチの問題ではなさそうというときは、はまってしまうorお手上げになってしまいそうだという感触。このあたりはいろいろやってみての経験なんだろうと思います。



2014年7月22日火曜日

半固定抵抗を使ってみる(回路図も書いてみた)

Arduinoエントリーキットについてきた部品で、まだ使っていないものが以下の2つ。
  • 半固定抵抗 10kΩ
  • 温度センサー

ついてきたものは使ってみよう!ということで、まずは半固定抵抗から。
半固定抵抗の調節に合わせて音の調子が変わるというものを作ってみます。作ったものはこんな感じ。


半固定抵抗

これです。

三本ある足の真ん中にかかる抵抗が上のつまみに連動しています。

回路図

配線はこんな感じ。
写真だけだとわからない、、、と今更ですが回路図を書いてみようと思い立ちました。

調べてみると、Fritzingというツールが使いやすそうなのでこれを使いました。
以下のようにブレッドボードのイメージが出てきて、そこにパーツを置いて描けます。Arduino自体ももパーツとしてあるのが便利。
これを元に整形して回路図を描けます。
上と同じですがエクスポートした回路図がこれ。簡単に描けて便利ですね。

スケッチ

スケッチはここでコミットしています。
TDDでかいてみました。#ifdefで実機に出力/入力する関数をラップしてテストするようにしました。toneW()やanalogReadW()などです。うまくラッパーをまとめていけば、TDDもしやすくなると感じました。というか、まとめないとコードが汚くなりそう。。。


次は温度センサーです。