スマートフォンが顕微鏡になるアイテム

昨日テレビのニュースで知りましたが、
3日から日本で初めて顕微鏡が量産化されてから100年がすぎたのを記念する展示会が始まるということで、
少々興味がありましたが、東京上野はちょっと遠いのであきらめました。
ぜひ九州でも開催してほしいです。

そのニュースを聞いて、
昨年、国産のスマホ顕微鏡がいくつか発売されていて、話題になっていたことを思い出しました。
さっと検索してみて出てくるのがこの2つで、

・「Leye」
Leye をスマートフォンまたはタブレット型パソコンのフロントカメラにセットし、見たい物をのせるだけで、スマホの画面に顕微鏡画像(動画)が表示され
撮影・録画ができるというもの。利用端末にもよりますが、高性能なスマホ顕微鏡であれば約100倍まで拡大して観察できるそうです。

・「スマホde顕微鏡」
これは、本体の上にスマートフォンをのせ、カメラアプリを起動させると顕微鏡画像や動画を撮影・録画できる、というもののようです。
3種類の交換レンズで倍率が選べる(スマートフォンのデジタルズームを利用して、約2~10倍、約4~20倍、約16~80倍)そうです。

ほかにも60倍の拡大鏡だとか、色々と端末やアプリが出ているようでした。

スマホなので単純に顕微鏡として使えるだけではなく、
アプリで静止画、動画を撮影し、SNS上にアップするなどしてリアルタイムに情報がシェアできてしまいます。
医療・研究機関にそのまま送り検査してもらったりと、学習や仕事など顕微鏡を日常的に使う業務にまで活用できる可能性がたくさんありそうですね。

iPhoneでもAndroidでも利用できますし、東急ハ●ズとかでも扱っているみたいです。

身近なものを見てみるのも楽しそうですし、
個人的には海水などをみてみたいなと思っています。

もし購入したら、また報告したいと思います。

スクラム研修まとめ①

少し前にスクラムの研修に行ってきました。これから数回に分けて研修で学んだことを復習もかねてまとめていきたいと思います。

スクラム(Scrum)とはアジャイル開発におけるマネジメント手法の一つです。

そもそも私は研修を受けるまで、アジャイル開発すらどんなものなのかもよくわかっておらず、最近「スクラム」ってよく見かけるな~ちょうど研修があるみたいだから受けてみようかな~というぐらいのノリで受講してみたという状態で、まだ実際のプロジェクトで実践もしておりませんので、ど素人には変わりありません。ですので間違っている部分もあるかもしれませんがその点、暖かい目でご覧いただけると幸いです。

まず、アジャイル開発について簡単に書いてみたいと思います。

アジャイル開発の目的は、お客様の満足を最優先とすることです。
その手段として
①短い間隔で、継続的に、動くソフトウェアをリリースする
②お客様と開発者が協調してプロジェクトを成功に導く
があげられ、そのような特徴を持ったソフトウェア開発技法をアジャイル開発といいます。

では、お客様の満足度を最優先とするとはどういうことでしょうか?それは
・お客様が必要と思う、今使いたいシステムを最優先で提供する
・お客様からの意見をフィードバックして、満足度の高いシステムを作成する
・使わない機能は作らない、という決断を促す
があげられます。
アジャイル開発はリーンという考え方がベースにあり、QDCを固定してスコープ(開発対象要件)を可変にするという基本的な考え方があります。アジャイル開発とよく対比されるウォーターフォール開発との大きな違いはここにあります。ウォーターフォール開発は要件定義フェーズで最初にそのシステム全体の要件を固めてしまい、その後設計、開発、テストという流れに沿って開発を進めていきますが、アジャイル開発はビジネスの流れの中で、その時に最も優先順位の高い機能から開発・リリースしていきます。要求の追加・変更には、その優先順位が高ければ順次対応していきますが、QDCの範囲に収まらない(つまり優先順位の低い)機能は作りません。

アジャイル開発とウォーターフォール開発は全く違う手法のように思われがちですが、今まで行ってきたウォーターフォール開発の要件定義・設計・開発・テストという流れを、今必要な機能単位で何回も繰り返すと考えていただいても間違えではないと思っています。

また、アジャイル開発はウォーターフォール開発と比べ、
・ドキュメント等の作成は省略できる
・安く、早くシステムを構築できる
というイメージを持っておられる方もいらっしゃるかもしれませんが、それは間違えです。
ドキュメントは作らなくていいわけではなく、無駄な(使われない)ドキュメントは作らないだけです。開発や運用上必要なドキュメントは必要なので作成します。
また、機能毎にリリースしますがユーザのフィードバックを受けての戻りを前提にしていますし、リリースされたものもシステムの機能の一部でしかありませんので、安く早くシステムが構築できるわけではありません。

アジャイル開発もウォーターフォール開発もお客様に喜んでいただけるシステムを提供するという開発側の思いに違いはありませんので、アジャイル開発はウォーターフォール開発を否定するものではありません。アジャイル開発が向いているシステムもありますし、ウォーターフォール開発が向いているシステムもあります。お客様に満足いただけるシステムを提供するためにはどの手法が最適なのかを考えて選択する、その選択肢の一つとしてアジャイル開発という手法が最近注目されているのだと思っていただければと思います。

なお、以下のようなサイトがありますので、ご興味が有られる方はどうぞ。
アジャイルソフトウェア開発宣言
http://www.agilemanifesto.org/iso/ja/

次回からはスクラムについて書いていこうと思います。

[LDAP初心者]パスワードポリシー設定

前回のエントリ追加にて
ディレクトリツリーにユーザを追加することはできました。

そのユーザにパスワードポリシー
(パスワード有効期限、アカウントロックなど。。)
を設定することになりました。

設定する項目は次の項目
■共通設定
・パスワード有効期限(pwdMaxAge)
・パスワード有効期限切れ警告(pwdExpireWarning)
■ユーザ毎に取得する項目
・パスワード変更日時(pwdChangedTime)
・アカウントロック(pwdAccountLockedTime)
・初回パスワード(pwdReset)

上記項目の属性をエントリに追加しようと
探してみましたが、、見つからず。。。

調べてみたところ、
OpenLdapのDefaultでは
パスワードポリシーのオブジェクトクラスは設定されていないため
自分で初期設定ファイル(slapd.conf)に記述を追加しなければ
いけないとのこと。。。

ネットで調べた情報を参考に、
初期設定ファイル(slapd.conf)に下記の記述を追加してOpenLdapを再起動

===========================================================
# schema 追加
include         ../etc/openldap/schema/ppolicy.schema

#index記述の下に
# Password Policy
overlay ppolicy
ppolicy_default “cn=Standard Policy,ou=Policies,dc=my-domain,dc=com”
ppolicy_use_lockout
===========================================================

再起動後、下記のLDIFファイルを作成し
共通パスワードポリシー設定として登録

■ppolicy_ou.ldif
————————————————————————
#top level of organization
dn: ou=Policies,dc=my-domain,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Policies
————————————————————————

■policy.ldif
————————————————————————
dn: cn=Standard Policy,ou=Policies,dc=my-domain,dc=com
objectClass: top
objectClass: device
objectClass: pwdPolicy
cn: Standard Policy
pwdAttribute: userPassword
pwdMaxFailure: 3
pwdMustChange: TRUE
pwdMinLength: 6
pwdInHistory: 1
pwdCheckQuality: 1
pwdMinAge: 0
pwdLockout: TRUE
pwdMaxAge: 2592000
pwdExpireWarning: 86400
pwdReset: TRUE
————————————————————————

登録はエントリ追加と同様にコマンドプロンプトより管理者ユーザで
「ldapadd」コマンドを実行

ldapadd -x -W -D “cn=Manager,dc=my-domain,dc=com” -f ppolicy_ou.ldif
ldapadd -x -W -D “cn=Manager,dc=my-domain,dc=com” -f policy.ldif

パスワードポリシーの共通設定は
正常に登録できました。

 

Facebookの「いいね!」ボタンは新しいコードに書き換える必要があるそうです

Webサイトに関する情報を調べる際に、いつもお世話になっているサイトを見ていたら、気になる記事がありました。

Web担当者Forum
『いいね!ボタンは新しいコードに書き換えないと2015年5月以降動かなくなります(公式情報)』

Facebookページと連携し、自社ホームページに「いいね!」ボタンを設置しているところが多いかと思います。
このようなものは、ホームページにJavascriptを貼り付けるだけで簡単に設置できます。
ところが、そのままの状態では5月以降に「いいね!」ボタンが機能しなくなってしまうみたいです。
記事によると、2014年4月30日より前に設置しているコードだと、新しいバージョンに対応していないために機能しなくなるんだそうです。
詳しい内容や対応方法は、上記リンク先の記事をご覧ください。

記事より引用させていただくと、古いバージョンのスクリプトは以下のようになります。

<div id=”fb-root”></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = “//connect.facebook.net/ja_JP/all.js#xfbml=1″;
fjs.parentNode.insertBefore(js, fjs);
}(document, ‘script’, ‘facebook-jssdk’));</script>

新しいバージョンに対応したスクリプトは以下のようになります。

<div id=”fb-root”></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = “//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.0″;
fjs.parentNode.insertBefore(js, fjs);
}(document, ‘script’, ‘facebook-jssdk’));</script>

このように、若干ですが読み込むJavascriptが変更になっているようです。

WordPressでホームページを構築している場合、プラグインを用いて「いいね!」ボタンを設置していることが多いかと思います。
プラグインであれば、おそらくプラグインのアップデートを行うことで対応できると思われますが、テンプレートに自分で直接埋め込んでいる場合は修正が必要になってきそうです。

ホームページの管理者は、自分が管理しているページの確認が必要そうです。

[LDAP初心者]エントリ追加

GUI操作の管理ツール「LdapAdmin」で
ユーザを追加していこうと思い、
「LdapAdmin」を起動して、接続&管理者ユーザで認証しようとしたところ

”オブジェクトクラスが存在しません。”

のエラーが表示され、接続まではうまくいっているみたいだけど
認証で失敗しているようでした。
(「接続テスト」は成功したので)
OpenLdapサーバを構築している方々のHPを参考にさせて
もらったところ、

先ずは、ディレクトリツリーの基点となるベース DN(suffix)を
登録する必要があるらしく、
下記のように「base.ldif」というLDIFファイルに
ベース DN(suffix)と管理者ユーザのエントリを定義し
登録してみました。

■base.ldif
————————————————————————
dn: dc=my-domain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
objectClass: domainRelatedObject
objectClass: extensibleObject
o: MateAR.eu Corporation
description: The Example Corporation
dc: my-domain
associatedDomain: my-domain.com

dn: cn=Manager,dc=my-domain,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
————————————————————————
登録はコマンドプロンプトより管理者ユーザで
「ldapadd」コマンドを実行

ldapadd -x -W -D “cn=Manager,dc=my-domain,dc=com” -f base.ldif

実行すると、パスワードを聞かれるので
管理者ユーザのパスワードを入力
ベース DN(suffix)が登録されたため
「LdapAdmin」で接続&管理者ユーザでの認証ができるようになりました。
ちなみにコマンドプロンプトは
OpenLDAPをインストールした際に、「OpenLDAP Command Line」という
ツール(?)がインストールされており、
実行すると、OpenLDAPの「bin」フォルダのパスに移動した状態で
コマンドプロンプトが起動されます。

後は、ベース DN(suffix)の下にグループを作成したりユーザを作成したり
作りたいディレクトリツリーに合わせて作成していくことになります。

「LdapAdmin」のGUI操作でエントリを作っていくか
今回追加したように、作成したいエントリをLDIFファイルに記述し
「ldapadd」コマンドで追加していきます。

LDIFファイルの記述方法を理解できたら
「ldapadd」コマンドでの追加がいいかなと思いました。

次回はパスワードポリシーの設定について
書いてみたいと思います。