はうすてんぼぶスマートフォン用の表示で見るはうすてんぼぶコードかいてて疑問に思ったことや、興味あることをつらつらと暇なときに書く場所、ここはそんな場所この広告は、90日以上更新していないブログに表示しています。2014-03-18「誰のためのデザイン?」を読み終えた本の感想UIの勉強として一冊読み終えたので感想などを書いてみる。見る本書では実際に世にあるモノを例として多く挙げられる。良い・悪いデザインをしたモノの良い・悪いを与える要因はどこなのかを、著者の心理学と認知学の両方の観点から説明されるため、読んでいて非常に面白い。読んでみると、私達が日常的に扱うモノを見つめなおすきっかけをくれ、使いにくい場合にはその原因がどこにあるのかを考える癖が付くと思う。一方で、困ったり、迷ったりせずに私達がモノを使えている要因を考えたり、見つめなおすのは難しい。その「モノの使いやすさ」とは、ユーザが自然にそれを扱えるようにデザイナーがちゃんとした理由に基いてデザインしたモノであるから。それに気付きづらいのは当たり前で、そうなったモノの形や見た目で私達の手に届いていることを今は幸福に感じる。良かったキーボードのキー配置がこの配置で、とかね。本書は発行が大分前(1980年)で、扱われている例も時代を感じるものが多いが、30年前も現代もデザインに関して同じような問題は抱えたままなんだなと何か少し安心したし、残念にも思った。「多機能化」が抱える問題は本書でも何回も登場するが、その問題が現代でどう解決されたのか(それとも未解決のままなのか)を探したり、考えたりするのは面白そう。私が学生時代に講義として受けた「失敗学」に通じるところがあった気がした。失敗学は運用や環境の観点からの考察が多かった(詳しい講義内容はもう忘れてしまったけど、H鋼が事故原因になりすぎだろ...みたいなツッコミをしながら講義を聞いていた記憶がある)が、本書はデザインからの観点から事故原因が説明されていて興味深かった。思い返す意味でもまた読みなおしてみようと思う。講義中に扱ったのはこの本だった気がする。見る以下、誰のためのデザイン?の各章で気になった点やまとめやなどを書く。節の題名は個人的に付けただけなので本書中の節とは関係が無い。なんか全体的に冗長的に書いてしまっていて良くないなーと思っている。あと本書で頻出するデザイナーという単語をやたらとここでも使ってしまっているが、現代ではユーザとのやりとりするUI部分を作っている人たちもそのデザイナーに含まれているものとして考えて良さそう。業務でUI部分の実装をすることが多く、興味のある分野でもあったので先輩からUXの入門本をお借りして読んでみた。章ごとに各手順が説明されていく。「そもそも何のためにやるんだろ」という根本的な疑問があったが、どのフェイズで、何のためにやるのかがやっと分かった。以下、内容や感想的なこと。10:21UXデザイン入門を読み終えたTweet広告を非表示にするもっと読むコメントを書く2013-08-242桁7セグメントLEDとモーションセンサArduino青色LEDが欲しくて浜松のマルツに出かけてみたけど、いつの間にか2桁7セグメントのLEDとモーションセンサを買っていた。それを使って色々遊んでみた結果が以下。モーションセンサー(レンズ・色・黒)値段はLEDが200円、モーションセンサが1,000円くらい。モーションセンサは以下のサイトを参考にした。NaPiOnでインテリジェントLED_2/3どの端子をどう繋げればいいか分からなかっただけだったのでそこがわかったら特に問題無くサクサク。動画では傘状だと範囲広すぎるので指向性をもたせようと思って周りを囲んでいる。LEDは以下のサイトにあるデータシート見ながら試行錯誤しながらトライ。実際は色々繋いで見て「あー、こう光るのかー」的な感じ。データシートの見方がそもそも分からなかった故...。あー、これは1ユニット分の端子で、高速で交互に光らせるタイプやな。18的なアドバイスも頂いていたので、時間はかかったが一応それっぽくできた。この2桁表示するのはArduinoだけでデバッグする際に結構便利だったので、そのままライブラリっぽく外に出してGitHubに置いてみた。GitHubアルファベットは7セグメントだと表現に無理があるので対応している文字は少ない。(x86)\Arduino\libraries\」にコピーされるのでcloneしてコードをいじる際は注意しないといけない。次は液晶を使ってなんかやってみようと思っているところ。07:492桁7セグメントLEDとモーションセンサTweet広告を非表示にするもっと読むコメントを書く2013-08-24Arduinoを触ってみたArduino夏休みだったので買ってしばらく放置してたArduinoで遊んでみた。詰まることなく終えることができた。コードの解説が丁寧で、電子工作部分の解説がちょっと少ないかなぁといった感じ。電子工作をやったことある人は当たり前なんだろうけど、ほぼやったことが無い自分からすると「んん?」ってことはあった。Google先生に随時聞く必要がある。両方とも秋葉原の千石電商の2号店の2階で買ったもの。上述した参考書で必要なパーツはほぼSidekickのキットに入っているので安心。57pの5章「モータや電球などの駆動」節でMOSFET(トランジスタの1種らしい)とモータ、71pの6章「回路の組み立て」節で青色LEDが必要になるけどキットには入ってないので注意。LEDは緑LEDで代用が効くので問題は無し。モータ部分も参考書にはコードも載って無くやや流し気味なので自分はやらなかった。使わなかったものを使って色々遊んでみると楽しい。今回は電子書籍版をO'reillyのサイトで購入して、iPadで見ながらやった。前のページに戻る際はやっぱ実物の本が必要だなー、といった感じ。」という本を読み終わったので、その感想とか面白かったとこをメモしておこうと思う。変なとこあった場合はご指摘をお願いします。後半は人の行動や心のあり方的な内容が多かった。全部が全部インターフェースに関してではないので、結構誰が読んでも楽しんで読めるのかな。「ユーザはこういう見せ方や手順を踏むと、こんな風に感じるかもね!」な内容が多い。「どんな風に画面設計すれば意図したようにユーザは触ってくれるかな」といった疑問解決のきっかけや答えを得られると思う。特定のユーザターゲットやシチュエーションを想定した内容が比較的少ないので、そういう実践的(?)な知識を得たい場合には違う本のほうが良いかもね。「こういう人の行動や心理は、これこれこういう理由や実験にもとづいて裏付けされている。」といった内容が多いので納得しながら読めると思う。デザインの作り方に限らず、アンケートの取り方やグループ作業に関してとか、インターフェースにかぎらず満遍なく書かれているので「そーなのかー」「あー、そういうのあるなぁ」というのが多く、心理学のことをほとんど知らない俺でも楽しんで読めた。以下、興味深かったところを幾つか触れてみる。段階的に開示する方法を用いると良いよ、といった内容。した情報だけまず見せておいて、詳細を知りたければさらに辿れるようにしておけば、ざっくりした情報だけ知りたいユーザと、詳細を知りたいユーザの両方に対応できるとのこと。「なんだよ、まだクリックする必要あるのかよ」と不満が生まれてしまうかも、といった警告も有り。段階的な開示方法を用いると、結果的にユーザのクリック数は増える。反面、「ユーザが得たい情報を得るまでのクリック数は少ない方が良い」、というのをよく聞く。適度な情報を得ながら先に進むのであれば、ユーザは楽しみながらクリックしてくので、あまりそのことを気にすることはないとのこと。情報を得られることでユーザが得る快楽が関係しているのかな、と思った。心的な処理には難しいものとやさしいものがあるこれも前の027の内容と関係して、クリック数に触れられていたので取り上げる。「ユーザへの負荷」と「クリック数」のトレードオフの関係にあると書かれている。ユーザへの負荷を下げれば下げるほどクリック数は増えていくが、ユーザに悩ませることが無くなればそういう設計にも意味があるとのこと。ここでの「負荷」とは、何かを思い出したり、何かを見たり、マウスカーソルを動かしたり、そういう行為のことを指している。何かを思い出したり、考えたりする心的な行為をするときは一番負荷が高い、ってことが重要。心的資源を多く消耗する。何度も発生することになる。「どこから手をつけるか」「手順は間違っていないか」といったユーザが考える負荷を下げていることになる。クリック数が多くても負荷は少なく、「簡単!」とユーザに思わせることが可能とのこと。視覚や運動の負荷が上がっても、認知の負荷が下がるのであれば、その方法を採用を検討したほうが良いよ、ってポイントに書かれていた。目標に近づくほど「ヤル気」が出る目標に近づいていることをユーザに視覚的に分からせる。幻想的でも目標に近づいているとユーザに錯覚させる。させることでユーザのヤル気を生み出すことは可能だよ、といった内容。ここでは、Dropboxの追加ストレージ獲得のことが例として取り上げられている。自分も追加ストレージを貰うためにあの手順を踏んだことがある。報酬がもらえることもあり、あの時は比較的ヤル気は高く、手順の多さが気にならなかったと思う。当時のその「ヤル気」は、Dropbox側の達成度の見せ方に寄るのかな、と、本節を読んで思った。どれが達成されていて、どれが未完了かってのがすぐ分かる。左側の空っぽのDropboxのアイコンがちょっとずつ溜まっていく。いった「目標までどれだけ近づいたか」が視覚的に見せられていたことで、おのずとヤル気になっていたのだと思う。あの時の自分はDropboxの意図した通りに動いてしまった1ユーザにすぎなかったのだ...。人間同士のやりとりではどういう事なのか、に着目して書かれていてとても面白かった。人間同士の対話のように、ある程度どういった反応が戻ってくるか、を想定しているとのこと。人は「こんにちは」とこちらが言えば「こんにちは」と相手は返してくれるとか、そういった反応をおのずといくつか想定している。この想定から外れた時に人は居心地の悪さを感じるらしい。個人情報を早いタイミングで入力させるサイトは、やたら個人的なことを訪ねてくる人のようにユーザは感じてしまうかもね、とのこと。ユーザ(人間)とサービス(ウェブページやアプリとか)間で発生するイラツキの発生は、そういう風に捉えるとしっくりくるなぁと凄く納得した。「この画面の見せ方は、ユーザにはどんな人と捉えられるか」といった風に考える行為はそんな時間もかかることでもないので、アプリのページ設計するときには習慣づけていきたい。人はまず「見た目」と「感じ」で信用するか否かを決めるこの節は、人の幸福と信頼は相関性が高い、ということについて述べられている。「あー、かもなー」といったことが結構書かれていた。以下の2点は興味深い。達成が難しいことほど愛着を感じる団体への入会に難しい条件を与えたり、紹介制にしたりすることで、ユーザはその団体への愛着が強くなるとのこと。内容はだいたい以下の通り。「俺はなんでこんなもののためにあんな苦労したんだろ...」と思考に葛藤(不協和)が生まれる。これを和らげるために「これはいいものだ!いいものだ!」と強く思うことで思考の葛藤を和らげること。道徳の時間に習う「あのブドウは酸っぱい!」のエピソード。苦労と現実のギャップが大きくても、一応心の中で筋を通しておき納得する。これが愛着の要因になっているとのこと。コミュニティを愛着を持って大勢の人に使って貰いたい場合は、この愛着を上手く生み出すような加入手続きを取るといいかもね、と書かれていた。有料アプリのレビューにありがちだけど、お金が絡む不満はぶつけ先があるとそこにぶつけられる傾向があると思う。レビューを見たり、不満をぶつけることで葛藤を和らげているのかも。それだけユーザの期待が大きかったということだから、それに見合う品質のものを作るように頑張りたいね。将来の出来事に対する自分の反応を大げさに予測する傾向ここは節のまとめに良い事が書かれていた。「前回の修正はとても悪く、修正してくれないなら二度と使わない」ここらへんは大げさに言っている可能性があるので、鵜呑みしちゃダメだぞ!って。うん、そうじゃないかと最近思ってた。自分が特に興味深かったとこはこんな感じ。本当に読みやすい書籍なので、インターフェースに興味が無くてもササッと読んでみると良いと思う。Keyboard(US)を買ってしばらく経った。明朝徹夜のよく分からないテンションで調整仕切った。一応、自分の中でまぁこれくらいできれば十分快適かなというレベルに達したのでメモ代わりに書いておく。以下のことができれば良いやという方針。SpaceのIME切り替えの反応のラグが気になって気になってしょうがなかったので使うのはやめました。キーバインドの変更キーバインドの変更は「のどか」を使います。有料ですが、すごい細かい設定もできるので(まだ使いこなせていない)、おすすめ。再起動が不要なのもとてもいい。汎用キーバインディング変更ソフト「のどか」http://www.appletkan.com/nodoka.htmキーバインドの変更で、CmdとCapsLockキーをCtrlにするだけならよくあるアプリで簡単にできる。IMEのON/OFFの切り替えはCmd+Space、入力補完はLeftCtrl+Spaceでやりたいので、キーバインド入れ替えだけで対応するのは無理ぽ。Spaceのイベントは送出しないようにするコード補完とIME切り替えが同時に行われるのは地獄や...それ以外のときはCmdキーはCtrlキーと同様の振る舞いをするCtrl+Sや、Ctrl+Xが普通に使える状態これをやりたい。初期状態のCmdキーはLeftWindowsに該当するので、これをよしなにする。設定ファイルはちょっと独特?な感じがするのでマニュアルを見ながらぺちぺち書きましょう。MANUALhttp://www.appletkan.com/nodoka-doc/MANUAL-ja.htmlぺちぺち書いてみた結果以下のようにすれば、要件は満たした。KeyboardのFnキー押されたこと検知できてねぇ...という問題にぶちあたった。Windows」というアプリケーションを使うことにした。KeyboardのFnキーやEjectキーなどの特殊キーをWindows上で扱えるようにしてくれる。Keyboardが接続されていません。」とキーボードを繋いでいてもエラーダイアログが表示されてしまう。そのため、少し遠回りして使えるようにしてあげる必要がある。※実行してみてエラーダイアログがでなければ特に以下の手順は必要ないです。Expressをインストールするソースコードをビルドし直す実行ファイルを上書き参考にしたのは以下のサイトさん。編集して使いやすくしてみる。http://espressoaddshot.blog74.fc2.com/blog-entry-503.html公式ページに置いてある実行ファイルよりも、外部に置いてあるソースコードのほうが新しい!ということみたい。今はGitHubでソースコードが見れるようになっている。mayuki/AppleWirelessKeyboardHelperhttps://github.com/mayuki/AppleWirelessKeyboardHelperこのソースコードを使って、最新版で実行ファイルを作れば大丈夫!といった感じ。gitが使える環境であれば、clone。無いのであれば「□ZIP」ってとこを押してzipで落とす。ExpressをインストールするすでにVSが入っているのであれば飛ばしちゃってください。上の参考サイトさんで、2010を使っていたので、それを真似しました。2012でも大丈夫だとは思います。Expressってところをクリックすると、以下のようになるはず。そこの、「今すぐインストール」を押して、インストーラをダウンロードする。ダウンロードが終わったらインストールしちゃってください。インストールに結構時間がかかります。最終的に2.5GBぐらい容量食いますが、用が済んだらVSを消せばいいだけなので、気にせずGO!ソースコードをビルドし直すソースコードを解凍したフォルダ内に、AppleWirelessKeyboardHelper-master\Misuzilla.Applications.AppleWirelessKeyboardHelper.slnというファイルがあると思います。VSファイルをインストールしたことでslnファイルが開けるようになっていると思うので、ダブルクリックして開いてください。開いたら、画像のように、Misuzilla.Applications.AppleWirelessKeyboardHelperを右クリックしてビルドを選択。ビルドが通ったことを確認した後に、Misuzilla.Applications.AppleWirelessKeyboardHelper\obj\x86\Debugに移動して、AppleWirelessKeyboardHelper.exeがあることを確認します。※objディレクトリ以下のx86\Debug部分は環境に寄って変わります。Misuzilla.orgのdownloadから、AppleWirelessKeyboardHelper-20091230.zipをダウンロード&解凍。実行ファイルであるAppleWirelessKeyboardHelper.exeを、さっき作ったexeファイルで上書きします。Deleteキーで、前の文字が消えることを確認できたらおっけー!ついでに、スタートアップ時に自動的にexeが起動するように設定しておきましょう。あと、VSを日頃から使わない方はこのタイミングでアンインスコするのを強く推奨します。おわりにだいぶ時間を取られたけれど、これで自分なりに満足いくキーボードになったと思う。「のどか」は色々キーバインドいじれるので夢がひろがりんぐ。Windows」は実行するまで手こずったけれども、実行できたらFnキーが有効になってとても便利!以上。Keyboard(US)を快適に使うTweet広告を非表示にするもっと読むコメントを書く2013-02-03IDEAの設定IDEAざっとメモ。{の位置を改行にしたとこに置くインデントをタブにするインデント周りの見た目ココらへんについてのメモ。会社でのコードフォーマットに合わせる。具体的にはifやswitchの後に続く「{」を改行したとこに置く。break;}こうする。半年ぐらい後者のフォーマットで書いてたのでもうそっちに合わせないとしっくりこない。今家で書きたいのはJavaScriptなのでそのコードフォーマットだけ変える方法を書きます。Generalで一気に設定できそうにないので、それぞれの言語で設定する必要あり。2」も割り当てておきたいのでその方法をば。「というか何でデフォが半角スペース4つなんだろうか。」とか書くとインデントはスペース派にボコボコにされるので、心に留めておく。tabsってなんだ、って調べたらEmacsのページにいきついた。Tabshttp://www.emacswiki.org/emacs/SmartTabsコードの位置合わせを全部tabを使うかどうか、ということを指しているようです。A・B『両方とはなんだこのやろう』というのはちょっとシュールで嫌いじゃない。以下のページにスマートタブの説明が例を含めてわかりやすく載ってます。☑オンの状態:タブの後の文字位置は全行揃う。□オフの状態:位置に関係なくタブ自体がタブサイズのスペースに変換されるだけの動作になる。僕は俄然スマートタブ必要派なので、チェックマークをつけた。好みはあると思いますが、以下の項目も設定すると、色々捗るかも。インデントガイドインデント位置の最初と終わりに、縦方向にうっすらとねずみ色の線が引かれる、あれです。言葉で説明し辛いので、スクショを載せます。guidesにチェックを付けるインデントを見えるようにするインデントの位置にねずみ色の矢印が表示されて、コード書くのが捗るかも。※11行目はわかりやすく赤色にしてます。半角スペース位置にも.が打たれるようになる。guidesと合わせて使うと画面が凄くうるさい感じになったので、僕は使うのやめた。おわりにまた色々いじるときにまとめて書きます。08:01IDEAの設定Tweet広告を非表示にするもっと読むコメントを書く2012-09-21プロセスについてUnix「プロセス」って何気なく使っているけど、その実本当によくわかっていなくてやばいので、ここに調べて動かしてみた結果を載せとく。ジョブとプロセスジョブコマンドを指定して実行すると、それが「ジョブ」という実行単位になる。現在のジョブの単位はjobsコマンドで知ることができる。プロセスジョブをもっと細かい単位に分けたものを「プロセス」と呼ぶ。manコマンドを例にすると、UNIX内部ではどうなってるか見てみる。ps*を付けた行がmanコマンドを読んだときに実際呼ばれるプログラムである。なんか無駄にmanコマンドが何度も呼ばれているのが気になるが、それぞれの行が1つの「プロセス」なのは間違いない、はず。ジョブ番号とプロセス番号ジョブ番号はターミナルごとに1から連番で振られるもの。15582の[1]がそれに当たる。これはターミナル間で独立して持っているので複数のターミナルで重複しても問題なし。プロセス番号は、UNIXの本体が管理しているため、必ず一意になる。ID)がそれに当たる。バックグラウンドで呼ぶさっきからちょいちょいコマンドの最後に「&」を付けて読んでいるけれども、この&を付けるとそのジョブがバックグランドで呼び出されるようになる。重たい処理をする場合はバックグランドで実行すると、処理を止めずに他の作業に専念できる。&こんな風にすると時間がかかる検索もすぐプロンプトが表示されるので他の作業ができる。問題は、出力先はデフォルトのままなのでターミナルにそのままガリガリでてきてしまう点。いう場合はリダイレクトしてファイル当たりに出力するととっても快適。処理が終わったことに気付けないのがちょっと難点だけれども...。jobs現在起動しているジョブ一覧はjobsコマンドで見ることができる。-l-lを付けるとプロセス番号も表示される。実行結果は以下のようになる。text.txtsuspendedは停止中、runningは実行中のジョブの状態を示す。ジョブ番号とプロセス番号の間にある+や-の記号は以下のプロセスのことがわかる。それより前に実行したプロセスpspsコマンドを使うことでプロセス情報を見ることができる。psのオプションは「-」を付けた場合と付けない場合で効果が異なったりするので、マニュアルをしっかり読む必要がありそう。逆に考えると、それっくらいオプションをたくさん付けられる、ということ。参考書に載っている主なオプションだけ表形式で載せておく。標準では長い情報も1行80文字で着られる試しにfを付けて実行してみた結果を載せる。fちょっと見づらいが、zshのときとbashのときでmanコマンドのプロセスが異なるんだなぁとちょっと不思議に思った。フィールドに関しては、ひとまずSTAT(プロセス状態)を見て分かるようになりたいのでまとめておく。ゾンビプロセスzshのときのSTATにあるTNやSsなどは最初の一字はわかるが2文字目の意味がわからなかった...。bgバックグラウンドジョブを実行する場合はbgコマンドを用いる。bgが呼べるジョブは、「現在バックグラウンドにあって」かつ「停止中」である必要がある。停止中かどうかはjobsコマンドを見ればすぐ分かる。-一番上と二番目は同じで、カレントジョブをバックグラウンドで再実行する際に用いる。三番目はジョブ番号かジョブ名を指定して再実行する。ジョブ名は複数マッチした場合はエラーが出る点に注意。四番目は-記号のついたジョブ、つまり直前のさらに一つ前に実行したものを再実行する。fgbgコマンドはバックグラウンドのジョブをバックグラウンドで再実行させるのであれば、fgコマンドはバックグラウンドのジョブをフォアグランドにして再実行させるコマンド。使い方はbgと同じなので割愛。kill物騒なコマンド名だが、その役割は文字通り「殺す」ことが主。killコマンドは、ジョブやプロセスを殺す他に、指定したシグナルをジョブやプロセスに送ることもできる。使い方に関して載せる。[PID]//プロセスIDに指定したシグナルを送る(ジョブ番号でも同じことができる)バックグランドで走っているジョブを殺したい場合は、そのジョブ番号かプロセスIDを用いてkillコマンドを呼べばおっけー。-lで見ることができる。SYSけ、結構ある...。[kill]を参考に終了させる系のものだけ載せる。正常な終了動作を行わせて安全に終了シグナルは特に指定しなければTERMが送られる。上の表を見るとわかるがTERMシグナルは結構生ぬるいので、本当に殺したいときはKILLやINTで良い気はする。おわりにプロセス管理の基礎はだいたいこれで全部だと思う。シグナルに関しては数は多いが使うのは限られているはずなので、少しずつ慣れていきたい。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。