ソフトウェア開発」カテゴリーアーカイブ

北海道から帰ってきた

予定では二日間でしたが、急遽一日追加して三日間。
北海道へ出張してきました。

幸い出張中は天候がよく、冬の北海道の割に準備したホッカイロも使う事なく
純粋に仕事に集中する事が出来ました。
ええ、観光なんてする暇が全くないくらいに。
残念ながら。。。。

今回、久しぶりのお客様先への出張だった訳ですが、
やはり実際の現場に出ると色々勉強になりますね。

開発者となると、今は基本的に会社でPCとにらめっこしている事が多いですが、
こうやって外に出る事で開発者以外の人の動きと言うものが見えてきて勉強になります。

開発が出来ない技術者と言うのは困り者ですが、実際の製品は開発者以外の人も関わっている訳で、そういった人やお客様の現場を知る機会は大切にしていきたいところ。
もちろん、今回赴いた目的はトラブルの収束だったので、そんな機会は増やしたくはないですが、
自分に足りないところを気づかされる機会と言うのはいいものですね。

多少胃がキリキリする思いでしたが。

参っちゃうよね、まだまだ成長出来ちゃうじゃん

慣れない言語

mongoUnivで出されている課題があって、言語としてはpythonを使っている訳なのですが、
結構煮詰まってました。

感覚的には通りそうなコードで、ネットで見てみても行けそうな気はするけれど
うまく実行出来ない。

うわー。うわー。
mongoDBでつまづくならまだしも、pythonでかーと思って何度となく見返してみたら。。。。

単純にif文に”:”がついてなかっただけという悲しいオチが。

IDEを使っていれば、もう少しエラーの原因を早くつかむ事が出来たんでしょうけど、
この辺りでつまづくあたりがちょっと情けなくも、手になじんでいない感が強いですね。

精進せねば。

初めてのPython 第3版
初めてのPython 第3版

posted with amazlet at 13.10.23
Mark Lutz
オライリージャパン
売り上げランキング: 8,964

MongoDB University

ドットインストールの話題を先日エントリーしたが、それとは別にMongoDBを勉強している。
今は、その製品名がそのまま会社の名前になっているが、10genが手がけているオンライン学習サイトがあるのだ

https://education.mongodb.com/

本家が手がけているだけあって、体系だって学ぶことが出来る。
さらに、ビデオは日本語訳をつけてみることも可能だ。

実はこのMongoDB University は比較的最近始まったばかりで、まだこれからと言うところもある。
それでもいくつかのコースを始めることが出来る。
それほど難しいわけではないのだが、序盤は少し放置してしまって、取り戻すのに時間がかかってしまった。
何とか今は授業に追いついているので、最後(10/28)までなんとか続けて行きたい。

先に紹介したドットインストールと違って、こういうオンライン学習は開始と終了の日程がはっきりいしている。
Coursera や edX と同じですね。
これらのようなMOOC(Massive open online course)は少し敷居が高い。
両方とも登録してはいるのですが、長続きしていないです。
でも、色々な選択肢を私たちに提供してくれる。

問題は・・・1時間以上のビデオを家で見るとなると眠くなってしまうんだよなぁ・・・。
これも大学の講義と同じですね。

ドットインストール物色中

最近、通勤時間も延びたことなのであき時間を利用して何か始められないかな~と、
ここを物色している

ドットインストール
http://dotinstall.com

一つの動画が3分程度なので、ちょっとした空き時間に見ることが出来る。
基本的には見るだけなので、深い勉強にはつながらないけど、さわりを学ぶにはちょうどいい感じだ。

これまで、そういう役目は書籍が担ってきていた。
そう、たとえばWeb+DB Press とかそういう類だ。

WEB+DB PRESS Vol.77
WEB+DB PRESS Vol.77

posted with amazlet at 13.10.06
技術評論社
売り上げランキング: 42,182

 

定期的に、自分の視界範囲外の話題を手に入れるのは面白く、
これまでは時々これらの本を購入してきた。

ただ、興味を持ったとしてもあくまでその先に進むにはこれらの本ではぜんぜん足りず、
掲載されているサンプルを動かす以上のことをしようとするには難しい。
対象の技術に関してネットを探せばそれなりに記事は見つかるけど、体系的に学ぶのには
紙面の関係上足りない。

ドットインストールのようなオンライン学習が全てをカバーするなんて寝ぼけたことを言うわけではないけど、動画で見る分なのか、教え方がいいからなのか、わかりやすく感じる。
紙面上の制約を考える必要がないので、分量も申し分ない。
新着やコースの人気度をみれば、今の話題性がなんとなくわかる。

何より、他のリソースに対してのリンクを張りやすいので色々と幅が広がるように感じる。

見ていると、どうしてもキーボードでコードを打ちたくなってしまうが、主に通勤中に見ているので
それが出来ないのがちょっと現在は悩みどころ。
ノートPCを新調して移動中に使えるようにしたいような、、、、

うーん、Surfaceは電車のような場所で使うのは難しそうだからちょっと悩んじゃうな

iPadの容量が足りない事態に

以前、母にiPadを贈ったのですがその容量が足りなくなってきました。
と言う訳で、どうにか対策を検討しなければ行けない事態に。
あれこれ頭の中で考えていても抜けが出そうなので、書き出してみる

前提

  • 母はパソコンをろくに使う事が出来ない
  • 実家にそもそもパソコンはない
  • 趣味が山歩きであちこちで写真を撮ってくる
  • 容量不足の原因は、ほぼ100%写真データ

iPadを贈った当時は、母はデジカメを持っておらず、どちらかというとWebに繋げる手段だったりを提供するつもりで贈った。
我が家とのFaceTimeによるテレビ電話も一つの理由だ。

旅行が趣味のわりに、画素数の低い携帯付きカメラで写真を撮っていたのでデジカメを進めたら、もの凄い量になってしまった。
少し余裕を持って32GモデルのiPadを贈ったはずだったのだが。。。
うむむ

削除する

一番単純なのは、そんなに一杯いらないだろって話。
デジカメなのでパシパシ写真を撮ってしまって全部保存しているような状態。
選別すればそれなりのサイズになるんじゃないだろうか。
ただ、不意に撮った写真が後から見返した時に印象に残ったりする事もあって、データの管理コストが低いデジカメの写真はとっておきたくなる気持ちは分かる。

まぁ、現実問題として全部見返す時間なんて無いくらいにたくさんありそうだが。

外部に保存する(ローカル)

次に考えるのは、やはり容量が不足しているので容量を追加しましょうって話。
とは言っても、iPadの容量を増やす事は出来ないので保存用のストレージを購入する事になります。

先に書いた通り、実家にはパソコンが無いためにiTunes経由での保存が不可能。
iPadから直接Wifi経由で接続/転送が可能な機器が必要になります。

どういうのがいいのかはちょっと分からないけど、外出先からアクセスする用途で用意されている機能を持ったNASが使えるのではないかと考えています。
バッファローで言えばWeb Access i って奴ですね

BUFFALO 高速モデル NAS(ネットワークHDD) 【iPhone5対応(WebAccess i)】 2TB LS-V2.0TLJ
バッファロー (2011-11-12)
売り上げランキング: 1,053

 

これであれば、2TBで2万円を切るのでまぁ手頃な感じかな。
安くなったものだなぁ。

Web Access i の設定ってどうやるんだろうな〜と見回っていたら、たまたま私が持っているLink Stationも対応しているっぽい。
そういう用途で使おうと思っていなかったので全く気にしていなかったけど。

ちょっと後でやってみようかしら

外部に保存する(クラウド)

NASを実家に置くというのは、それはそれで何とかなるんだろうけど、機器に詳しい人間が周囲にいる訳ではないので何かあった時に少し不安。
そういう意味ではいっその事、クラウドのストレージを利用してしまう事も検討に入れたい。

DropBoxなんかもあるけど、それほどの速度を求める訳ではないので値段優先で考える。
そう考えると、なかなかMicrosoftのSkyDriveはいい感じだ

まだ知らない人のためのSkyDrive入門
http://www.atmarkit.co.jp/ait/articles/1304/24/news105.html

年4000円で100GBの容量であればお手頃と言える。
一つ心配があるとすれば、その100GBが上限であると言うことだ。

2〜3年で30GBほどの写真を撮った事を考えると少し心もとない。
そういう意味ではDropBoxなら500GBまで増やせる!

ただ、写真のようなものを保存するのであれば、それは短期と言うよりは長期的な保存になる。
仮に500GBまで増やせたとしても、月5000円であればやっぱりNASを買った方が安上がりだ。

違う媒体へ保存する

いっその事、印刷して保存しておくと言うのも母の場合は有りだと思っている。
なにせ、メールに添付するという行為よりは、直接写真を配るという方が多い交友関係だから。

Wifi経由の印刷をサポートしているプリンタは結構出ていて、Apple標準のAirPrintでなくても印刷は出来るようだ。
正直、この周りはそれほど明るくなく、AirPrint以外の道に関してはあまり把握していなかった。

iPrint
http://www.epson.jp/products/colorio/smart/iprint/

EPSON インクジェット複合機 Colorio EP-706A
エプソン (2013-09-19)
売り上げランキング: 3,249

現実問題として、容量があふれているという状態の解決に印刷は向かないとは思うが、
物理媒体が手元にあると言うことでデータ削除を促す事は出来そうな気もする。

 

あれこれ考えてみたけど、4万くらいするかな〜と思っていたNASが2万を切っていたので、現時点での私の中のお勧めはNASになりそうだ。
ただ、設定周りを母にやらせる事は不可能と言えそうなので、実家に帰った時かな?
いつになるんだ、それは・・・

やっぱり幾つかは削除してもらわないとダメだな、こりゃ。

Kindle のニューモデル!

Kindle のニューモデルが発表され、現在予約受付中です。

Kindle Paperwhite(ニューモデル)
Amazon (2013-10-22)
売り上げランキング: 2

ずっと見合わせていましたが、ついに購入する事にして予約しました!
Kindle が日本で発売される以前から欲しいと思っていたものの、電子書籍への対応状況が
余りに微妙すぎて購入をためらっていました。

今回、購入に踏み切ったのはいい加減に欲しくなってきたのもありますが、こんなサービスが始まるのが決め手になりました。

Kindleオーナー ライブラリー
http://www.amazon.co.jp/gp/feature.html/ref=sa_menu_kds?ie=UTF8&docId=3077704816
Amazonプライムにご加入で、Kindle端末をお持ちのお客様は、ベストセラーやコミックを含む数千冊の対象タイトルの中からお好きな本を、一か月に1冊 無料でお読みいただけます。

私はそれほど読書スピードが早い訳ではなく、往復の通勤時間がメインの読書時間となります。
それらを考えると、月一冊貸し出し可能であれば、結構十分な気がします。
プライムサービスへの加入が条件になりますが、年会費3900円なので突き当たり325円。
325円以上の本を借りれば十分元が取れるので問題ないでしょう。

技術書になると、後で読み返したくもなるとは思うのでこの利用方法からは外れそうですが、
それ以外の新書などを借りる事になりそうです。

発売予定日は10月の22日と、まだ一ヶ月以上先なのでちょっと気持ちが先行してしまっています。
楽しみだ〜

Leap Motion で遊べるWebアプリ(ゲーム)

Leap Motionからのメールで紹介されていたゲームが中々凄かった

Hello Run
http://hellorun.helloenjoy.com/?utm_source=Leap+Motion+Newsletter&utm_campaign=496b6c2a71-Consumer_Newsletter_12&utm_medium=email&utm_term=0_f0a6fbd89e-496b6c2a71-60371365

ゲームの内容そのものは、最初さっぱり意味が分からなかったけど、
簡単に言えば障害物競走のようなもので、手を上下させて障害物をどこまで
よける事が出来るのか?という単純なもの。

音楽がなかなかかっこいい

Flashとかではなく、純粋にHtml, JavaScript でここまでのゲームを作れると言うのもいいし、
思った以上にLeap MotionをWebアプリに組み込んでも軽快に動いている。

軽快に動いていると言っても、Leap Motion で行っているのは上下の動きだけで、
ジェスチャーやその他諸々の動きを処理していたらこうは行かなかったのではないだろうかとも思う。
とはいえ、クライアントのスペックにもよるが、やはりMotion Capture は面白い。

そして中々うまく行かない。
以下に人間の動きが安定しないのかがよくわかる。
また、空中で何も持たずに静止させると言うのは疲れるものだ。

3Dのホログラムでもあればもう少し感覚が違うのだろうか。
そういう意味ではGoogle Glass なんかとの組み合わせが出来れば
ARと合わせて世界が変わるかもしれないなぁ

Visual Studio 2013 Preview でハブアプリを触ってみた

先日行われたMicrosoft Technical Days で、幾つかストアアプリを見ていて
少し作ってみたくなったので、Virtual Box のWindows 8.1 環境にVS2013 Preview を入れてみた

 

これまでのストアアプリ作成用テンプレートに、ハブアプリが加えられている。

 

イメージしているアプリの形はハブアプリなので、迷わずこれを選択。
ちなみに私のC#知識量は0と言っても過言ではないが気にしない!!!!

とりあえず、何も考えずにビルドして実行してみる。
以前、同じように2012の Preview を触った時はテンプレートに
サンプルのデータがふくまれていてそれっぽく見えていたので、
まずはそちらを確認しようと思ったからだ。

ところがどっこい、いきなりエラーでつまづく。

まだ特に何もいじってないにもかかわらず、このいきなりのエラーっぷりが
いかにもβ版という雰囲気を醸し出し、知識量0の私を多いに幻滅させる。

正直、エラーメッセージが何を言ってんだか分からん。

とりあえず、何となくXAML上の記述がおかしくてParseがこけたんだろうと思い、
XAMLを開いてみるとあからさまに「XAMLが無効です」と書かれている場所が。

はっきり言って、何が問題なのかは読んでもよくわからないので、探索的手法をとる。
エラーとなっている箇所を絞り込むために、あれこれやっているとどうやら”x:Uid”に関する
記述が問題なように見える。

x:Uid ディレクティブ(WPF)
http://msdn.microsoft.com/ja-jp/library/vstudio/bb613571.aspx

自動生成された “x:Uid” ディレクティブが、重複しているモノがあるのが原因かと思い、
重複を排除してみたが結果は変わらず。

実は、”x:Uid” は関係ないのではないだろうか?と思い、今度は HubSection を削ったりしてみたら、最終的にはやはり “x:Uid” に原因がある事が分かった。

とりあえず、すべての x:Uid ディレクティブを削除してしまう事でハブアプリを動かす事が出来た。

よくよく x:Uid ディレクティブを見てみると、参照したWPFのXAMLの説明と次に示すストアアプリの説明とでは異なっていた

http://msdn.microsoft.com/ja-jp/library/windows/apps/hh758297.aspx
Windows ランタイム XAML での x:Uid の一意性の規則は、以前使われていた XAML を利用したテクノロジと比べると、いくらか異なります。Windows ランタイム XAML では、複数の XAML 要素上で同一の x:Uid ID 値がディレクティブとして存在することは正当とされています。

となっていて、重複そのものは問題が無くなっているように見える。
まぁ、そもそも重複と言うよりは、一つでもあるとうまく動かなかったわけなので、どちら下というと x:Uid ディレクティブの機能がそもそも有効になっていないという風に考えるのが正しい気がする。

気になって、グリッドアプリケーションのテンプレートを見てみたが、こちらにはそもそも x:Uid ディレクティブがついていない。
このディレクティブが、ローカライズを目的とした記述であるならばアプリケーションのスタイルによって要・不要が変わるものでもないように思えるのだが。
比較的新しい概念なんだろうか?

うーん、先は長そうだ

Leap Motion User Experience Guidlines の訳

Web上のページでは見つける事が出来なかったのだが、SDKには User Experience Guidlines がついてくる。
Leap Motion の障壁としては、やはりどれだけ操作を楽に行う事が出来るのか。
そのために開発者が何を考えるべき(知っておくべき)なのかが書かれている。

英語に関してはからっきし自信は無いが、適当に日本語訳してみる。

Keep in mind that symbology can be difficult to learn and memorize.
Avoid forcing users to learn complex hand gestures to interact with your application.

記号と言うものは学習したり覚えたりするのが難しいと言うことを覚えておきなさい。
あなたのアプリケーションで、ユーザーに厳密なジェスチャーを矯正するのは避けなさい

Instead, draw inspiration from physical interaction and real-world behaviors.
The more physically inspired interactions are, the less training a person needs and the more intuitive and natural your application feels.

その代わり、自然な操作や、現実世界の振る舞いから着想しなさい。
本当に自然な操作と言うものは、トレーニングを必要とせず、より直感的に、より自然に感じられるものでしょう

Don’t feel constrained by the limitations or inconveniences of the real-world — this is your world.
Interaction doesn’t have to be the way it has always been. It can be any way we imagine it to be. Why force the user to reach all the way out and grab an object? Why not have the object reach back? — Give them “the force”!

現実世界の制限や不便さを持ち込む必要はありません。これはあなたの世界なのですから。
操作は決められたものである必要はありません。それは、私たちがイメージしたように出来るのです。なぜユーザーにブジェクトをつかみ取る事を強制するのですか?なぜオブジェクトを引き寄せないのですか?力を与えてあげてください

The user should feel as if their intent is amplified rather than subdued or masked.
For example, users often like their movements to be amplified when using a mouse (i.e. they don’t need 10 inches of mouse movement to move 10 inches on screen). For gestural interactions, amplifying or exaggerating responses can have an even more positive result. Keep in mind that some people are more sensitive than others, so link this exaggeration to a sensitivity setting for users to modify this effect to their preference.

ユーザーは、彼らの意図が増幅されていると言うよりむしろ地味に、またはマスクされているように感じるでしょう。
例えば、ユーザーはマウスを使っている時に、意図が増幅されている事が好きです(10インチモニタ上を動かす時に10インチマウスを動かす必要が無いように)。ジェスチャー操作の場合、増幅または誇張されたレスポンスは、ポジティブな結果を産みます。何人かの人たちは、他の人々よりもとても敏感だと覚えておいてください。なので、これらの効果は、彼らに合わせた形へ設定変更出来るようリンクを貼りましょう。

Concentrate on giving the user dynamic feedback to their actions. The more feedback they have, the more precisely they can interact with your software.
For example, the user will need to know when they are “pushing” a button, but can be more effective if they can see when they are hovering over a button, or how much they are pressing it.

ユーザーの行動からフィードバックを得る事に集中しましょう。多くのフィードバックによってあなたのソフトウェアで彼らは正確な操作を得る事が出来ます
例えば、ユーザーは自分たちがいつボタンを押したのかを知る必要がありますが、もし、ボタン上をホバーしているのが見えたり、どれくらい押しているのかが見えたりすればより効果が上がります。

On screen visuals (such as representations of hands, tools, or digital feedback) should be simple, functional, and non-intrusive.
The user should not be distracted from the task by their tools or environment. Decoration should not distract from your purpose.

画面上の見た目(手やツール、デジタルフィードバックに代表されるような)はシンプルで機能的で、そして邪魔にならないようなものであるべきです。
ツールや環境によって、彼らの作業が邪魔されないようにするべきです。あなたの趣旨によって装飾するべきではありません。

Require more deliberate action for destructive or non-reversible acts than for harmless ones.
Subtle gestures should be reserved for subtle actions. Conversely, an act such as closing an application or deleting a file can be a non-reversible event requiring a more deliberate action. Double check with the user when unsure, such as a prompt for confirmation.

無害なものよりも、破壊的もしくは不可逆な行動と言うものによりゆっくりとした動作を求めるべきです。
目立たないジェスチャーは目立たない動作へ割り当てるべきです。逆に、アプリケーションの終了やファイルの削除のように不可逆なイベントにはより確証がなかったりする場合は、確認プロンプトを出すなどして2重のチェックを行うべきです

Provide a clear delineation and specific sense of modality between acts of navigation and interaction, unless both are simple or one is handled automatically (or with assistance). Mixing the two in a complex situation can lead to confusion or disorientation.
For example, moving an object while having the user simultaneously position their viewing angle inside a 3D environment is inherently difficult. However, if the viewing angle moves automatically in response to the user’s movement, then working with the object is easier. Likewise, when navigating a large data set the user will want the view to move easily, but when highlighting a portion of the data the view should remain still.

ナビゲーションや操作がシンプルだったり自動的だったりしない限り、明確な線引きを提供出来るだろう。複雑な2つの状況が重なりは、混乱や方向感の喪失へと繋がります。
例えば、ユーザーは3D環境で、同時にアングルと位置決めを行う事は本質的に困難です。しかしながら、アングルが動作によって自動的に変わってくれれば、オブジェクトを動かす事は容易になります。同様に、大きなデータを扱う場合、ユーザーは容易にビューが動いてくれる事を望みますが、データの一部を強調させたい場合には、ビューは固定されるべきです。

Overall, imagine that your user is faced with no instructions or tutorials on how to use your application.
Strive at all costs to make their first intuitive guesses the right ones. Where appropriate, create more than one proper way to do something.

あなたのアプリケーションを使うとき、ユーザーが操作に対するチュートリアルや説明が無い場面に出くわす事を想像してみてください。
ユーザーによる直感的な推測が正しいものとなるように力を尽くしなさい。場合によっては、成し遂げるためのよりよい方法を作り出しましょう。

(LeapSDK/docs/GetStarted/Leap_UX_Guidelines.html)

 

いやー。英語力の無さになんだかがっかりしてしまうがしょうがない。
相当、怪しい訳になってしまったので突っ込みどころ満載だと思うので指摘をお願いします。

ほんと、訳をやってる人は凄いわ。
私も修行つまないといけませんね。