-
2014年09月の人気ソフトウェアまとめ
2014-09-30 14:3253pt
過去分はこちら。
2014年01月
2014年02月
2014年03月
2014年04月
2014年05月
2014年06月
2014年07月
2014年08月
今回は9月のまとめです。DockerやらBashスクリプト系やら多ジャンルのソフトウェアが揃っています。nodeアプリをネイティブ化するものに注目が集まっているのを見ると、やはりニーズは高いように思います。後は情報がどんどん出てくれば使ってみようと言う方も増えるのではないでしょうか。
Kitematic - GUIのDocker管理
Dockerに人気が集まっています。サーバ用途はもちろんのこと、デスクトップでもサーバサイドのソフトウェアを手軽に使う上で便利なソフトウェアです。そんな用途でWindowsやMac OSXで使っている人も多いです。しかしWindows/Mac OSXではboot2dockerやVirtualBoxをインストールしたりと若干準備が必要なのが難点になります。そこで使ってみたいのがKitematic、Mac OSX用のDockerマネージャです。Kitematicを使うとコマンドを打ったりすることなくDockerを利用できます。Dockerfileは自分で作ることも、GitHubなどで公開されているものを利用するのも良いでしょう。Mac OSX上で手軽にDockerを使いたい方におすすめです。
PaperTester – SIer感涙。テスト画面のスクリーンショットをExcelに貼付
SIerなどで良く聞かれる話で、テストを行う際には1画面ずつスクリーンショットを撮ることが要求されます。中小企業のシステム開発会社からすると信じがたいのですが、テストを行ったという確認にもなるのであながり無意味ではないのかも知れません(それをダブルチェックしているかは不明ですが)。そんなSIerの方にぜひ使っていただきたいのがPaperTester、IE×Excel連携のテストツールになります。これはSIerに限ったものではなく、スクリーンショットがあることでエラー部分が分かったり、Excelベースなのでテスト仕様書が書きやすい(特に職人向け)といったメリットがあるのではないでしょうか。手作業っぽいスクリーンショット撮影を自動化テストに乗せる、優れたツールですね。
Web2Executable – node-webkitアプリをマルチプラットフォームでネイティブ化
WindowsやMac OSX、Linuxに対応したGUIアプリケーションを開発してみたいと思いつつもWeb技術では面倒そうと思ってしまっていませんか。node-webkitを使う手もありますが、ランタイムが必要だったりして手控えてしまう人もいるでしょう。そんな方に使ってみて欲しいのがWeb2Executable、Webアプリケーションをそのままラッピングして実行ファイル化するソフトウェアです。必要な項目を選択、入力します。Windows版ながらMac OSX向けの実行ファイルを作れる点も注目です。また、nodeのバージョンを指定する仕組みになっていますので、サーバサイドが必要な場合にはこれが使えるでしょう。
-
自分で立てよう。業務で使えるオープンソース(132)「クラウドストレージ」
2014-09-26 14:3853pt
最近の流行はクラウドです。昔は社内にファイルサーバがあるのが当たり前でしたが、保守やバックアップ、ユーザ管理などが面倒で(そもそもサーバが大きくてうるさいという問題も)ファイルをクラウド上で管理する企業も増えています。
しかしクラウドのサービスに対する信頼性であったり、コントロールできない部分があるために導入を渋るケースも多々あります。そこで今回はクラウドストレージサーバを自分たちで立てるためのソリューションを紹介します。後、個人的なストレージの遍歴もご紹介します。
1. ファイルサーバ
かつて勤務していた会社ではDellまたはNECの筐体でファイルサーバを提供していました。SCSIの時代は8GBで○○万円なんて高かったですが、SATAが当たり前になると100GBなどが当たり前になってきていました。
Lixnuサーバの時にはSambaを入れて、LDAPで認証統合していました。Windowsユーザはログインすると個人用ドライブがマウントされて、そこにファイルを保存するとファイルサーバ上で一括バックアップする運用です。Sambaの共有は権限管理されていましたが、クォート管理含めて複雑な運用になっていた覚えがあります。
2. NAS
個人事業主時代からはNASを使っていました。最初は普通のLinuxでしたが、その後Drobo FSという筐体になりました。容量の異なるHDDでも自由に組み合わせて一つのストレージとして展開できます。
元々この技術はDrobo専業だったようですが、最近ではNetGearもxRAIDとして提供しています。余ったHDDを自由に入れられるという触れ込みですが、壊れたときを考えて新品のそれなりに大きいHDDを入れるのではないかと思います。
ちなみにDrobo FSは100M BASEで次第に感じられるようになったため、使われなくなりました(音もうるさいこともありますが)。そんな中、久々に立ち上げると2TBのディスクに故障が発生していました…。2TBのディスクになると差し替えでほぼ1日くらい復旧にかかるレベルです(その間もアクセスは可能)。
最近、NetGearの104を購入しています。Webブラウザベースで管理できるのが便利です。が、現在初期不良(?)でサポート問い合わせ中…。
3. Dropbox
Dropboxはプレミアムで使っています。通常、Dropboxは全ファイルを全てのPCで持つという運用だと思うのですが、面白い使い方としてフォルダを作って、それごとに共有するPCを変えると言うのがあります。そうすることで大きなクラウドであってもMacBook AIRのような小さなストレージしか持っていないPCで役立てることができます。
ファイルの授受はフォルダで移動する他、WebブラウザのDropboxにアクセスして開くこともできます。会社で使っていると大きなファイルをどんどん保存してしまいがち(特にデザイナーが一緒に使っていると)なので、Webブラウザから利用するという運用はありだと思います。
4. Amazon S3
最近、NASのバックアップ先としてS3を使っています。試算したところ、1TBで3,000円/月くらいなのですが、そのファイルをGlacierに送ると1/3になります。なので1TBは1,000円/月くらいでバックアップできるようになります。
実際バックアップなのでGlacierに飛ばしても特に困ることはないでしょう。ここでいうバックアップとはテープバックアップのレベルで、ファイルを間違って更新したり、削除してしまったという運用レベルの復旧ではないのでご注意ください。
-
認証を統合しよう。業務で使えるオープンソース(131)「認証システム」
2014-09-22 14:3753pt
前回のパスワード管理に続き、今回は認証システムです。自社の認証システムをID/パスワードの簡易的なものに設定していたりしないでしょうか。最近では他の大規模サービスで漏洩したID/パスワードを使ったアタックも多く、同じパスワードを使い回していたりするとあっという間に乗っ取られてしまいます。
そうなると自社も被害者ながら加害者になる可能性があります。そうならないためにはもっとセキュリティレベルの高いサービスの認証システムに乗ってしまうのが手です。最近ではOAuth2も当たり前になり、利用しやすくなっています。
2段階認証
ちゃんと有効にしていますか?有名なところではGoogle、Facebook、Dropbox、Evernote、Appleなどが使えます。WordPressはWordPress.comはもちろん、ダウンロード版であってもプラグインで2段階認証に対応させられます。
自社のシステムを2段階認証に対応させるのは大変なので、前述のようなサービスをうまく活用したいですね。
SMS
2段階認証でも同じようなものですが、最終的にキーとして使うのはSMSになります。その意味では携帯電話がないと認証がとても難しくなっているのですが(音声電話でのキー入力もありますが面倒ですよね)、メールよりも信頼は高い仕組みです。
日本においてはTwilloが1通1円のSMS送信を提供しています。より認証の水準を高めるためには使ってみる価値があるでしょう。
秘密の質問
Webサービス系ではよく使われている秘密の質問ですが、日本語の場合はひらがな、カタカナ、漢字が使えるため何を入力したのか忘れやすいのが欠点です。Webサービス側としてはひらがなしか入力できないようにするといった工夫が必要ではないでしょうか。
友人認証
Facebookが提供した(今もあるのでしょうか?)友人3人による認証ですが、架空の友人申請を踏むことで認証回避できるシステムになってしまったことでセキュリティ的にあまり意味がないものになっています。
CAPTCHA
未だに分かりづらい文字列を入力させるCAPTCHAは多いですね。コンピュータに読ませないためなのは分かりますが、人間でも読みづらいくらいです。個人的にはソフトバンクが使っている画像を重ねるタイプのCAPTCHAのが良いかと思います(スマートフォンに対応していないかも知れませんが)。
CAPTCHAをハックする技術も進んできているため、大手においてはほぼ破綻しているのではないでしょうか。もっと良い手法が生み出されて欲しいですね。
-
パスワードを使い回していませんか。業務で使えるオープンソース(130)「パスワード管理」
2014-09-19 09:4653pt
今回のテーマはパスワード管理です。既に昔から言い尽くされている感もありますが、未だにパスワードが漏洩して不正アクセスが発生している現状を見るに、緩いパスワード管理を続けている方は多いようです。
ITに強い方はWebサービスを積極的に使う傾向がありますので、パスワード管理がずさんだと大きな被害につながる可能性があります。そこでパスワード管理として欲しい要件、パスワード管理ソフトウェアをまとめて紹介します。
マルチデバイス対応
最近はOSという単位ではなく、スマートフォン/タブレットを含めたマルチデバイス対応が求められています。デスクトップではきちんと管理されているのに、スマートフォンに対応していないためにそこでは平文で記入しておくというのでは全く意味がありません。
それを防ぐためには、最初にシステムを考える際にスマートフォンに対応しているかどうかから考えるのはどうでしょう。なおiOSが提供するiCloudを使ったパスワード管理は便利なのですが、Androidに対応することはまずないので個人的には問題があると考えています。
グループ管理
会社組織を考えた場合、個人のパスワード管理ではなくグループ皆で管理できる方が便利です。この時、管理パスワードもまた個々人で変えられると便利でしょう。パスワード管理は便利な反面、退職時の対応がとても面倒です。
アクセス管理機能を備えていてれば、役職に応じて使えるパスワードを分けられるようになります。マスターパスワード一つでのグループ管理は後々問題になりやすいので避けた方が良いでしょう。
Webブラウザ
最近はWebシステムが多くなっていますのでWebブラウザに対応したパスワード管理は必須と言えます。つまり各ブラウザ向けに機能拡張が提供されているものを選ぶべきです。ブラウザ対応さえしていれば、OSの垣根を越えられる可能性があります。
Webブラウザの場合、パスワードの自動入力が備わっていますのでパスワードをクリップボードに入れる必要がありません。クリップボードの内容を盗み見るソフトウェアも存在しますので、ローカルでしか提供されないものは避けた方が良さそうです。
暗号化
どのような方式で暗号化を行っているかは重要です。大抵は2048bitのRSAで暗号化と言ったものが多いようです。ただしマスターパスワードが十分に強力でないと意味がありませんのでご注意ください。
後はキーファイルを指定するタイプや、Webサービスであれば独自の証明書をインストールするタイプもあります。証明書を使っている場合、退職時の対応も簡単なので企業利用においては便利だと思います。
一元化
パスワードファイルが散在しているのは愚の骨頂です。今回挙げたような要件を満たしたソフトウェア、サービスであったり自社の業務要件にあったものを選ぶべきでしょう。
-
HTML5/JavaScriptでネイティブアプリ。業務で使えるオープンソース(129)「node-webkit」
2014-09-16 10:2053pt
最近、ますますJavaScriptの勢いが増しています。特に注目すべきはデスクトップ分野ではないかと思います。nodeが安定してくるのに合わせて、Webアプリケーションやサーバサイド以外の分野でもnodeが使われるようになっています。ということで今回はnode-webkitの面白さ、実際にどういったアプリケーションが作れるのかを紹介します。
マルチプラットフォーム対応
node-webkitはWindows(32bit)、Mac OSX(32/64bit)、Linux(32/64bit)に対応しています。最新の0.10.4ではnode 0.11.13/Chromuim 35.0.1916.157がベースになっており、Chromeの最新の機能が使えるようになっています。
Webアプリケーションのネイティブ化
やはりJavaScriptでネイティブアプリが書けるのは魅力です。それもTitaniumのような手法ではなく、HTML5が使えるのが便利です。つまりWebアプリケーションとしてサービスを提供しつつ、そのままローカルでも動作させることができるのです。
オフラインで動かす場合はSQLiteなどを使って、そうでなくともAjaxを使った連携が考えられるでしょう(CORSは対応する必要がありますが)。
ネイティブの機能よりもネットワークのが大事になっている
クラウドが当たり前になっている現在、ローカルにあるリソースを使うよりもネットワーク上にあるデータを使いたいと考えるケースのが多いです。ゲームや高応性が求められるケースや、USB/シリアル通信の場合は難しいでしょうが、Web APIを使ったりスクレイピングをしたりするのはむしろWeb技術の方が楽なはずです。
適材適所ではありますが、最近はローカル固有の技術にこだわる理由が減っているのではないでしょうか。
高速に、サーバ負荷を低減
オフラインでも使えるということはサーバにアクセスする必要がなくなるので負荷軽減が狙えます。特に画像やJavaScript、スタイルシートなどのファイルがローカルに持てるので表示も高速化されるでしょう。
リソースがオフラインにあるということは、そのバージョンのアプリケーションを起動している限りは同じリソースを使い続けられるということです。画像の差し替えやスタイルシートの変更の影響がなくなるので、純粋にローカルのみまたはWeb API経由での操作が望ましいでしょう。
実行ファイル化も可能
node-webkitはランタイムを各自で用意する必要がありましたが、最近はそのランタイムを内包して実行ファイル化するライブラリも増えています。それらを使うことで配布と実行がとても簡単になっています。
UIさえWebっぽさを除けば(そういったローカルアプリ風のデザインも登場しています)、ほぼネイティブアプリと変わらない使い勝手になるのではないでしょうか。
-
JavaScriptを安全に。業務で使えるオープンソース(128)「JavaScript実行環境」
2014-09-12 08:2453pt
今回はユーザが作成するJavaScriptを安全に実行するための手法、ソフトウェアを紹介します。昔はHTMLがダメ、とされていた中で徐々に使えるタグを広げていったり、Markdownを使うことで自由度を広げる傾向があります。同じようにJavaScriptもユーザが自由に記述、実行できるようになっていくのではないでしょうか。
別ドメイン
一番多いと思われるのが別ドメインによるJavaScript実行です。例えばjsdo.itの場合、各JavaScriptはjsrun.itというドメイン以下で実行されています。そこではCookieを発行したりすることもないため、不用意な漏洩を防ぐことができます。
iframe
iframeを使うことで親フレームと子フレーム間で情報をフィルタリングできます。ドメインを分けることで、フレーム間で情報をやり取りしたりJavaScriptで操作することはできなくなります。Facebookなどのソーシャルボタンで使われている方法です。なおスタイルシートは子フレームのデザイン変更に使えます。
パース
JavaScriptが安全であるか否か、テキストレベルでパースすることでチェックは可能です。悪意をもったスクリプトは大抵難読化されていたり、暗号化した上で配信されているので問題がないと判断するのは技術的に相当難しいと思われます。
サンドボックス
iframeなどと似ていますが、最近はこの手の手法が増えてきたように思います。実行環境を万一問題があるコードでも大丈夫なようにラッピングして実行します。iPhoneなどもそうですし、Dockerも環境をラッピングすることで安全な実行を可能にしています。
独自構文/DSL
提供する機能を限定するのであれば独自の構文を使ったり、DSLで提供してマクロとして動かすと言った方法も考えられます。パースに似ていますが、使える機能を限定することで安心して実行できるのではないでしょうか。
-
開発をより効率的に。業務で使えるオープンソース(127)「ブラウザテスト」
2014-09-09 13:5553pt
今回はWebブラウザを使ったテストソリューションをまとめて紹介します。また、当たり前なことですが自動テストによるメリットもあげてみたいと思います。Webブラウザのテストは自動化していきましょう!
AjaxによるWebアプリケーション化が進んでいる
昔であればURL単位に画面が切れていたため、テスト結果もURL単位で報告できていたのですが、最近ではAjaxを使ったサイトが増えているため見た目のURLは変化せず内容だけ変わっているパターンも多くなっています。そのため実際の操作に伴う結果が大事になっています。
テストを自動化する中ではそういった操作も定義されますのでトップページからの操作順を適切に再現できます。順番通りにやらないと再現しないエラーも多いので自動化がお勧めです。
網羅性の担保
Webブラウザでのテストは煩雑になりがちです。社内の人たちに対してテストしてくださいといった所で、大抵は正常系のテストばかりになるでしょう。これは殆ど意味がない割に社員のリソースを食うため非効率的です。
網羅性を担保するためにはテストをコードで書いた方が正確です。なるべく初期段階からテストコードを書いておくことで、機能単位に網羅性を維持できるようになります。
HTML5でもブラウザ互換性がまだまだ
HTML5になってブラウザの互換性が高くなるかと思いきや、まだまだ機能実装がまばらでブラウザによって実装されていないAPIも異なる状況です。そのような中でそれぞれ全てのブラウザについてテストを行うのは大変です。
Seleniumのようなテストツールはブラウザを切り替えるのも簡単なので同じテストを異なるブラウザで実行したりするのにお勧めです。
ブラウザの多様性
そしてさらにデスクトップのみならず、スマートフォンやタブレットなどブラウザの多様性は広がっています。その中でエラーを適切に管理、修正していくためには自動化は欠かせないのではないでしょうか。
-
スポーツの秋にこそ作ってみたいスポーツ×ITなシステム
2014-09-05 10:0353pt
今回は秋にちなんでスポーツ系のオープンソース・ソフトウェアと、その周辺技術について取り上げてみたいと思います。
ウェアラブル
今一番の注目と言えばウェアラブルではないでしょうか。スマートフォンも一応この中に含まれていると思います。AndroidであればAndroid Wearが最近の注目になるでしょう。
それ以外にもmicoachやPebble、リストバンド型のトラッカーなど様々な身体に装着するデバイスが登場しています。これらを支えている基礎技術になるのはBTLEや加速度センサー、血流計などの身体センター技術になります。
ログ
ジョギングが一番有名ですが、スマートフォンを使ってデータを蓄積している人は多いです。同様に登山のトラッキングデータをGPSロガーを用いて記録しておいたり、サイクリングの記録を残したりします。運動を行う人はそのログを残すのが好きという人が多いです。
ソーシャル
個人で行うスポーツは自由にできますが、野球やフットサルのようなスポーツは仲間が必要です。そのためにソーシャルが使われています。特に元々の知人ではなく、スポーツ好きを軸に人を集めてスポーツを行うといったサービスも出ています。例えばギガスリートの提供するG-LEAGUEがあります。ソーシャルを使うことで個人でも団体スポーツが楽しめるようになっています。
さらにオリンピックやワールドカップなどのスポーツイベントについてもソーシャルサービスの活用が欠かせなくなっています。ソーシャルサービスはリアルイベントとの相性がいいので、もっと活用できる範囲はありそうです。
ビッグデータ
個人のログというレベルを越えて、スポーツ中の動きを全てログ化し分析する試みも行われるようになっています。ビッグデータ解析によって試合の中の特徴的なシーンだけを取り出して自動編集したり、振り返って試合を分析したりするのに使われています。
スポーツでの動きは相手やボールなどの動きに合わせて変化したり、互いの読みが交錯するので自動で分析するというのはとても面白い試みだと思います。
クラウドファンディング
スポーツのクラウドファウンドは主にアスリート支援に行われているようです。これまでアスリートの活動を支援するというのは企業広告が多かったと思いますが、それが個人レベルでも好きなアスリートを応援できるようになってきています。
日本では主にAthleteYell、ALLEZ! japanSportie FUNDの3つがあるようです。もちろんイベントを開催する上で参加費をクラウドファンドで集めて、成立すれば開催するといったモデルも生まれています。
-
開発をより効率的に。業務で使えるオープンソース(126)「DevTools」
2014-09-02 12:0853pt
今回のテーマはChrome/Safari/Firefoxなどについているデバッグツールをさらに便利にしてくれるソフトウェアをまとめて紹介します。単純なコンソールだけでない使い方として参考に、そして開発生産性を高めてください。
便利な機能
サーバサイドのデバッグ
多数のプログラミング言語でDevToolsへメッセージを送れるライブラリが出ています。開発効率が大幅に向上するかは分かりませんが、ログファイルを見ずともブラウザだけで確認ができるのは便利そうです。
スマートフォンのデバッグ
iPhoneであればUSBケーブルで接続してSafariの開発メニューからデバッグができます。Androidの場合はweinreを使うのが一般的です(最新のChromeではUSBデバッグモードがサポートされます)。iPhoneのSafariはJavaScriptデバッグ機能がありますが、あの小さい画面ではなかなか難しいのでデスクトップからつなぐ方が良いでしょう。
スマートフォンアプリのデバッグ
PhoneGap/CordovaやTitaniumで作成したアプリのデバッグを行うことができます。特にPhoneGap/CordovaアプリはHTMLで書かれているのでSafariから接続して実際の内容を見ながらデバッグできるのが便利です。
デバイスモード
Google I/Oで新しく発表されたのがデバイスモードです。デバイスを選ぶだけで、そのデバイスに合わせた画面幅、解像度に変更ができます。モバイルならではの遅い回線をエミュレートすることもできます。
ワークスペース
あまり使われていないかも?と思うのがワークスペース機能です。フォルダを登録してローカルのファイルをChrome上で修正できます。ソースコードハイライトのテーマを入れておけば、そのままプログラミングエディタとして使えるレベルです。
1 / 1