うなすけとあれこれ

2014年01月16日

サンコー 3軸式くねくねモニターアームを買った

ここ最近やたら買ってる。 3軸式くねくねモニターアーム

箱はだいたいnexus7の3倍の長さ。 箱

選択した理由

amazonの評価では、同価格帯で星が多いのもあったが、ディスプレイを高くしたかったのでこれを選択。ちなみに45cm。他にも、70cmや100cmのものもある。

設置前

設置前の机はこんな感じだった。圧迫感がある。 設置前の机の様子

ディスプレイ(DELL U2212HM)はこの時点で一番上にしてこの高さ(48.3cm)。 設置前の高さ

設置

各パーツがビニールに包まれている。 包まれている

支柱を右にするか左にするかで迷ったが、右にした場合、ケーブルの長さがが足りなくなったので左に。 右 左

高さはこの通り。差し引き8.4cm上昇(56.7cm)した。 56.7cm

ちなみに、対応表には記載されていなかったが、DELL U2212HMはVESA 100mmに対応しているので問題なく設置できた。ディスプレイにVESAマウンタ固定用ネジがすでに留められていたので、付属のネジが4本余った。

ずりおちるか否か

この商品のamazonレビューの評価の低さは、「ディスプレイを動かすとずり下がってくる」のが原因である。 実際、ネジを普通に締めると、アームを動かすたびにずりおちる。向きや角度を調整してから高さを固定するしかないだろう。

2014年01月16日
2014年01月15日

ELECOM USB3.0HUB U3H-T403SBKを買った

USB3.0のHDDケースを買ったはいいものの、USB3.0ポートが背面にしかなく使いづらいので購入した。 USB3.0対応マグネット付き4ポートUSBハブ U3H-T403Sシリーズ

パッケージ

中身

HUB本体、コードキーパー、ACアダプタの3つ。HDDを主に接続するので、ACアダプタが付属するものを購入した。このACアダプタが結構でかい。 中身

コードキーパーを使っていい長さにまとめる。 コードキーパー

良かった点

USB3.0である。

悪かった点

磁石よりもコネクタの接続のほうが強いので、コネクタを外そうとするとハブが持ち上がる。

USB端子の向き。見づらいが、奥に見える製品ロゴとUSBケーブルのロゴが逆になっている。 逆のロゴ

まあでも、買ってよかった。

2014年01月15日
2014年01月14日

玄人志向 GW2.5BM-SU3を買った

USB3.0の2.5インチHDDケースを買った。お年玉最高。 玄人志向 GW2.5BM-SU3 パッケージ

大きさ

HDDとほとんど同じ大きさ。出っ張った部分もないからコンパクト。 大きさの参考

組み立て

まずカバーを開けるのだが、これがだいぶ硬い。 カバーを開ける

HDDを接続。ケースに余裕がないので斜めから入れなければならない。少し不安。 HDD接続

裏からネジ止め。このネジは付属の工具では大きすぎるので別にドライバーが必要。無理すれば付属の工具でも締められる。 ネジ止め

カバーをつけてネジ止め。ビニールがはられている部分が基盤の裏側になるよう注意する。このネジがかなり小さいので注意。予備で1個ついてくるので1個までなら落として無くしても…… カバーを付ける ネジが小さい

速度の変化

まずはUSB2.0接続での速度。 USB2.0の速度

そして、USB3.0での速度。 USB3.0の速度 数値がだいぶ違う……のもあれば変わらないのも。でも速くはなってるし満足。

ちなみに別HDDの内部SATA接続の速度がこれ。 SATAの速度

2014年01月14日
2013年12月31日

2013年を振り返って

今年から始めたwordpress、年の瀬ということで振り返ってみる。

2013年に投稿した記事

WordPressに移行した MacにBootcampでWindows8をインストールした後にパーティションを追加するとWindows8が起動しなくなる問題の解決法 GitHubアカウントを取得した。 Macで始めるGUIを使わないやさしくないGit XcodeでOpenCV始めると大変 XcodeのOpenCVでカメラを使ってみる htc j butterflyの充電スタンドを作った OpenCVで顔認識 しゃべってコンシェルにげきおこ XcodeとOpenCVで特徴点検出 GitHubにSSH鍵を追加してそれからどうするつもり? プログラミングなんてできるわけがない lightline.vimの導入 インターンシップを終えた。 MacBookProが壊れたと思う Macbay2とSSDでMacBookPro延命措置 プロコン競技で惨敗したよ ubuntu13.10とWindows8(8.1)のデュアルブートで悩まされたいくつかの問題 そしてこれ。計19記事。

アクセス数

記事別

1位:OpenCVで顔認識(2009view) 2位:XcodeでOpenCV始めると大変(1964view) 3位:MacにBootcampでWindows8をインストールした後にパーティションを追加するとWindows8が起動しなくなる問題の解決法(1250view) 4位:XcodeのOpenCVでカメラを使ってみる(1227view)

やはりOpenCV関連が多い。他webページからリンクされてるのもある。これは純粋に嬉しかった。

全体

9月:286view(19人/日) 10月:1318view(43人/日) 11月:1507view(50人/日) 12月:1507view(49人/日) 計:4618view(43人/日)

ブログを始めたのは5月からだけどJetpackを導入したのが遅かったから9月からしか記録がない。

維持費

サーバー代金:7650円 ドメイン代:2140円 計:9790円 振込手数料が毎回525円かかるのが辛いね。

これからどうするか

下書きが3つと、下書きすら始めてないのが1つあるのでなるべく早く書いて公開したい。あと、XcodeでのiOSアプリ開発についても全く書く目処が立っていない。 それ以前に就活が始まるのでどうしようもない。 あと、高いもの買った時に「○○買った」みたいなレビューも書いてみたいからお金欲しい。

2013年12月31日
2013年12月23日

ubuntu13.10とWindows8(8.1)のデュアルブートで悩まされたいくつかの問題

この記事はうなすけAdvent Calendarの23日目の記事です。 冬休みということもあり、早速OSのインストールを始めたわけですが、いくつかの問題にぶち当たりググってる間にもうクリスマスになってしまいました。 ここでは、Windows8をUEFIでインストール→ubuntu13.10を別パーティションにインストール→Windows8.1にアップデートの手順の中で発生した問題について自分なりの解決方法を書き留めておく記事なので間違ってたりしても責めないでほしい。僕はこれで満足している。いや問題が発生する時点で満足なんてしていないけども。

UEFI環境でのデュアルブート

Windows8のインストールは特に問題もなく終了。さあubuntuのインストールに移る。 参考にしたこれら デュアルブート(UEFI Win8 + Ubuntu13.04) その4 - Ubuntuをインストールする・UbuntuをUEFIから起動する ~~ [Ubuntu13.04]Windows7とのデュアルブート(リンク切れ) ~~ の記事には、 「ブートローダはefiパーティションにインストールしろ」 「ブートローダはrootパーティションにしろ」 と書いてあることが違う。実際に試してみたが、どちらにブートローダをインストールしてもWindowsしか立ち上がらなかった(grubは起動しなかった)。

結局、 ブートローダ(grub)はハードディスクを指定してインストール した。(例えば/dev/sdaとか。)

Windows8.1にアップデートするとgrubが行方不明

Windows8からはWindows8.1へ無料でアップデート(アップグレード?)できるのだが、アップデートしたらgrubをすっ飛ばしWindowsしか起動しなくなった。これはいかん。 過去に帰ってきたGRUBとして同じような問題の解決法を書いたが、今はもっといいものがある。 それがBoot-Repairである。 LiveDVDなどからubuntuを起動し、端末で以下のコマンドを実行、Boot-Repairをインストールする。

$ sudo apt-add-repository ppa:yannubuntu/boot-repair
$ sudo apt-get update
$ sudo apt-get install boot-repair

※$←は一般ユーザ権限で実行(それにsudoがついて管理者権限)なので入力しなくていい あとはBoot-Repairを起動しRecommended repairでなんとかなった。 参考URL Boot-Repair Ubuntu Boot Repair その1 - OSの起動に関する問題を修復するアプリの紹介・インストールと起動

WindowsのNTFSパーティションがマウントできない

Windows領域にアクセスしようとすると、以下のようなメッセージが出てマウントできない。

Error mounting system-managed device /dev/sda4: Command-line `mount “/media/unasuke/windows”‘ exited with non-zero exit status 14: Windows is hibernated, refused to mount. Failed to mount ’/dev/sda4’: Operation not permitted The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the ‘ro’ mount option.

引用したエラー文とちょっと違うのは、問題解決後にエラーを意図的に発生させたから。 要するに、ハイバーネートとか高速起動するなと言っている。 そこで、まずWindowsでコントロールパネル→ハードウェアとサウンド→電源ボタンの動作の変更を開き、「高速スタートアップを有効にする(推奨)」のチェックを外す。 チェックを外す その後、ubuntuから以下のコマンドでマウントできる。

sudo mount -t ntfs-3g -o remove_hiberfile /dev/sda4 /media/unasuke/windows

/dev/sda4 とか/media/unasuke/windowsとかは適宜変更する。 ただ、ntfs-3gのmanページにあるremove_hiberfileオプションについて見ると……

remove_hiberfile Unlike in case of read-only mount, the read-write mount is denied if the NTFS volume is hibernated. One needs either to resume Windows and shutdown it properly, or use this option which will remove the Windows hibernation file. Please note, this means that the saved Windows session will be completely lost. Use this option under your own responsibility.

とあるように自己責任で。 ただ、このコマンドは一時的なもので、再起動するたびにこんなことになる。 こんなこと ので、 $ sudo vim /etc/fstab なりなんなりでfstabにremove_hiberfileオプションを付加しなければならない。

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>

#Entry for /dev/sda4 :
UUID=AAAAAAAAAAAAA  /media/unasuke/windows  ntfs-3g defaults,remove_hiberfile,locale=ja_JP.UTF-8    0   0

#UUID=307B-FA73    /boot/efi   vfat    defaults    0   1

例えばこんなふうに。UUIDはblkidコマンドなどで調べられる。書き込めたら再起動で確認してみよう。起動しなかったらOS再インストールしよう。

参考URL

How do I mount a hibernated NTFS partition? ・NTFS パーティションを起動時に mount する

これで問題は解決した。メリークリスマス。

2013年12月23日
2013年10月15日

プロコン競技で惨敗したよ

予選で負け、1回戦で負け、敗者復活でも負けました。そんなプロコン旭川のことを振り返ります。 I love dice.

福井チームの戦略

まずは我が福井がどのような戦略で挑んだのか説明します。 重要なのは 速く そして 多くの 情報を伝えることです。

パケットを早く並べるために

サイコロの種類

試合で撮影された画像を見ていると、サイコロを斜めにしたり、3つのサイズを使い分けたりするチームが多く見られました。福井の画像は、パケット内に大サイコロが敷き詰められています。これにより、向きを考えずに済み、大きさを選ぶ時間もなく、配置する場所も調整する必要なく、とても速くサイコロを並べることができます。具体的には、1分30秒以内にはひとつのパケットを完成させ、配置のチェックもすることができます。また送信側には2人居るので、実質1分30秒以内に2パケット完成させることができます。

サイコロの配置の表示

問題文は、.txtファイルで渡され、ファイル名も事前にわかるようになっていました。そこで、USBメモリが挿入されると同時に、.txtファイルのオープン、問題文の読み込み、符号化そしてパケット例の表示を自動で行うプログラムも作成しました。競技の様子を見てもらえればわかると思いますが、試合開始とほぼ同時にサイコロを並べ始めることが可能になっています。 また2台のパソコンでLANを構成し、パケット例をそれぞれに表示させることで、2人が同時にパケットを作ることが可能になっています。

使用するサイコロの目

これは後述の多くの情報を伝えるための工夫と内容が被ってきます。 より速くサイコロを並べるために、使う目のことも考えました。 問題文は最短で1文字とFAQで公表されていました。つまり、問題文が「A」という可能性も十分ありました。そんな状態で圧縮やサイコロの目を気にしている時間はありません。そこで、1の目とそれ以外の2種類の値を使うプロトコル1から6の目の6種類の値を使うプロトコルの2種類のエンコード方式を実装し、問題文の長さにより使い分けるようにしました。前述の1分30秒というのは2種類の値のみ使う場合の時間です。

多くの情報を伝えるために

福井チームが使うサイコロは、パケット内に並べた場合一番数が少ない大サイコロです。そのために、情報の圧縮は不可欠でした。そこで、定型文、中学1年から3年までで習う英単語、アイヌ語の辞書化を行い、情報の圧縮を試みました。 ハフマン符号や、バイナリデータ圧縮を用いる方法もありますが、このような辞書化を行うことで、ある程度は目で見て並べ間違いのチェックができます。 前述したように、エンコード方式も2つ用意し、長い文章の場合はよりパケットが少なくなるようにしました。

パケットの読み取り

パケットの読み取りには、OpenCVを用いた画像処理を採用しました。しかし、人の目に勝る画像処理エンジンはありません。そこで、テンキー(持ち込みができないので、テンキー付きキーボードのノートパソコンを使用)による打ち込みもできるようにしました。一方で、調子のいい時には人の手を介さずに回答送信まで出来るようなシステムも開発しました。

そして挑んだプロコン本番 一体何が起こったのか

予行練習

予行練習、福井チームは「負けること」を想定していました。大事なのは撮影データを集めることであり、勝敗ではありませんでした。(大会側からのデータは信用できない病に感染している) 画像受信URLを間違え自チームの画像をダウンロードできずに試合終了 ヤッチマッタァ!! これでは1回戦までに画像処理のチェックができません。そこで急遽沖縄高専に予選での撮影画像を頂くことに。ありがとうございました沖縄高専!(絶対解読できないだろうからって言われたときはカッコイイって思った)

第1回戦

試行回数がイッちゃってるのは仕様です。さて、もともとは前述の通り、問題文の長さによってエンコード方式を変える予定でしたが、予行練習の結果を見るに10数文字送信できれば1回戦突破は確実。そこで、並べるのが速い方を使うことになりました。が…… 問題文長すぎてエンコードに失敗、予行練習の文字列を送信してしまう_ ナンテコッタァ!! ちなみにこの時は完璧に画像処理でデコードすることができていました。つまり正しい問題文をエンコードできていれば1回戦突破でした。悔しい。

敗者復活戦

エンコード部分のバグを直して挑んだ敗者復活戦。入念にチェックをし、試合に挑む。 照明のセッテイングミスにより画像認識できず ソンナバカナァ!! パケット内で極端に明暗の差が出てしまい、画像処理ができませんでした。

反省

問題文の長さだったり、照明の具合なんかは少し考えればわかったことです。競技では、サイコロを速く並べることばかり考えてて、そのことに全く気が付きませんでした。落ち着いて、柔軟に対応が出来ればよかったです。

負け惜しみ

送信側3人とか福井もできたしそもそもうまく行っていれば確実に順位つくレベルまでいけたし正解文字数3桁とか楽勝だったし……まじ……

感想

今回の作業で初めてC++を触って、MacPortsを使ってインストールしたOpenCVを触って、Macが壊れて、Boxenに手を出すついでにGitHubやHomebrewにも手を出して……と、新しいことにチャレンジすることが多かったです。大変だった反面、楽しくもありました。それらに手を出したばかりでっていうのも中途半端なので、ひとまずBoxenとGitからいろいろ勉強していきたいです。 Xcodeがすごく便利でした。Macが使い物にならなくなってからはWindowsのVisual C++で開発していたのですが補完などしてくれないことも多く使っていて辛かったです。C#のほうだとうまくやってくれるらしいですが。 開発中、僕が触るとなぜか動かなくなるという能力を本番で生かしきれなかったのも悔しいです。

できれば来年も競技に出場したいのですが、卒業研究、就職活動、成績など考えるとどうも難しい……留年すればそれらの問題はスパっと解決するのですがその選択もどうなんだ、と。なかなか難しいですね。

北海道から帰ったらHDDがお亡くなりになってました。

2013年10月15日
2013年10月06日

Macbay2とSSDでMacBookPro延命措置

Macbay2とは

秋葉館が販売しているHDD(SSD)マウンタ。光学ドライブの場所にHDD(SSD)を設置できる。 光学ドライブスペース用HDD/SSDマウンタ Macbay2 RGH25BAY2-001

これを買ってSSDにOS Xをインストールし、延命を図ろうという作成。

画像が多いです。

作業

まずはSSDとMacbay2を用意。裏蓋を開ける。 裏蓋

各コネクタを外す。ついてきたヘラでやったほうがいいかもしれない。赤黒はヘラで持ち上げ、ただの黒い線は引っ張る。SATAケーブルはヘラでうえに持ち上げる。 各コネクタを外す 各コネクタを 外す

(多分)スピーカーを外す。ただ斜め上に持ち上がるだけで完全には外れない。無理に引っ張るとどこかしら断線する雰囲気。 スピーカーを 外す

光学ドライブを固定しているネジ3つを外す。 ネジ 3つを 外す

Macbay2にSSDを取り付け、光学ドライブから外した固定用の部品とケーブルをつける。SSDをもともとHDDがあった場所に入れる例もwebでよく目にするが、今HDDがある場所には衝撃を吸収する部品があるのでHDDは動かさない。 いろいろ つける

光学ドライブと同じようにMacbay2を固定……と行きたかったが、ネジの長さが足りない。Macbay2に細工もしてみたがどうやら無理。Macbay2についてきたネジと、純正のネジの比較がこれ。 左の小さいのが純正 右の大きいのがMacbay2付属 左の小さいのが純正、右の大きいのがMacbay2付属

こんなもんねじ込めるか馬鹿 しかもついてきたのタッピングビスだしふざけてる。 しかたなくこうした。 セロハンテープは危険。後が残るかも。これはクリアテープ。 セロハンテープは危険。後が残るかも。これはクリアテープ。

上の写真では終わっているが、あらゆるネジや部品を元通りにして蓋をしめる。

OS X Lion install battle

OS Xの再インストールはネットワーク経由で行う。起動時に「⌘+R」でインターネットリカバリを行う。 OS X再インストール

SSDを初期化してからOS Xをインストールすること。

あとはよしなに。

ちなみに

僕のインストールの様子

まずはここから #OSXinstallbuttle pic.twitter.com/6AphdrwDox

— うなすけ(EXCBADACCESS) (@yusuke1994) <a href=“https://twitter.com/yusuke1994/statuses/386500671857360896”>October 5, 2013

主に日本語を使用します #OSXinstallbuttle pic.twitter.com/9YhzB69j3v

— うなすけ(EXCBADACCESS) (@yusuke1994) <a href=“https://twitter.com/yusuke1994/statuses/386500959469187073”>October 5, 2013

まず消去しちゃいましょう #OSXinstallbuttle pic.twitter.com/QwbnxyiPUe

— うなすけ(EXCBADACCESS) (@yusuke1994) <a href=“https://twitter.com/yusuke1994/statuses/386501331365539841”>October 5, 2013

戸惑うな #OSXinstallbuttle pic.twitter.com/HSbinJXbJg

— うなすけ(EXCBADACCESS) (@yusuke1994) <a href=“https://twitter.com/yusuke1994/statuses/386501623670792192”>October 5, 2013

凛々しい #OSXinstallbuttle pic.twitter.com/rMjQVuszXX

— うなすけ(EXCBADACCESS) (@yusuke1994) <a href=“https://twitter.com/yusuke1994/statuses/386501813655990272”>October 5, 2013

#OSXinstallbuttle pic.twitter.com/EKGV5xj9Z9

— うなすけ(EXCBADACCESS) (@yusuke1994) <a href=“https://twitter.com/yusuke1994/statuses/386507471881138177”>October 5, 2013

きましたよ #OSXinstallbuttle pic.twitter.com/AuBrX81IjQ

— うなすけ(EXCBADACCESS) (@yusuke1994) <a href=“https://twitter.com/yusuke1994/statuses/386509027158401025”>October 5, 2013

はぁ…… #OSXinstallbuttle pic.twitter.com/BzXiKoLva3

— うなすけ(EXCBADACCESS) (@yusuke1994) <a href=“https://twitter.com/yusuke1994/statuses/386518352815861761”>October 5, 2013

2013-12-26 リンクURLを訂正

2013年10月06日
2013年10月04日

MacBookProが壊れたと思う

こわれたmacbook

2012年6月に買ったMacBookProが壊れた。いや、正確には壊れていないのかもしれないが、とにかく動作が重い。クリックのたびに虹色グルグルに待たされ、入力した文字は途中で消え、IMEが落ちる。こんな状況では作業なんて出来るわけがない。

壊れたのはこれが初めてではない。今年の7月には、HDDを認識しなくなり3万円で修理に出した。その時はHDDケーブルの破損だったが、今度はHDDが逝ってしまわれたのか。

現在はデータのバックアップを取りつつ、SSDが届くのを待っている。プロコンが目前だというのに、OSから入れなおすのはとてもつらい。

HDD外してubuntuでデータを単純にコピーしてるけど、これができるってことはHDD壊れてないかもしれない? こわれたime

2013年10月04日
2013年08月30日

インターンシップを終えた。

2週間のインターンシップ

さて、この2週間はインターンシップでとある企業に通っていた。企業名は出してもいいのかもしれないが許可をもらっていないのでここでは言わないことにした。

なにをしたか

さて、僕がインターンシップで何をしてきたか。それは「iOSアプリの開発」である。僕はiOSプログラミングも、Objective-Cも、そもそもオブジェクト指向プログラミングさえもやったことがなく、それはインターンシップの相方も同じであった。そんな2人がチームを組んで作ったアプリだ。出来がいいわけがない。それでも、iOSプログラミングの初歩を学ぶことが出来た。

インターンシップ成果報告プレゼン from うなすけ
成果発表のスライドがこれである。利益を得たりする目的ではないため問題無いとは思うが、もしも無断体裁等の規約に違反しているならすぐに削除するので教えてほしい。(教えて欲しいっていうのもなんだか上から目線だな)

それで?これどうすんの?

さて、とりあえずアプリは完成した。AppStoreに出すのは金がなくてできないが、公開する方法はGitHubなりなんでもある。だから僕は公開しようと思うが、これはチームでの成果だ。画像も画像なので、そのまま公開するのは、無理だ。

そこで。今はやることがありすぎて手一杯なのですぐという訳にはいかないが、1から作り直し(画像関係の削除と相方の担当分を書き直すのみ)て公開し、作り方を(自分でも忘れないように)ここに書いていこうと思う。文章量が多くなるのは簡単に想像がつく。が、やりたい。

なんでそんなことするの無意味じゃん?

iOSでのアプリ開発ができるようになってから何年経っただろうか。インターネットには解説が溢れ、書店に行けば「iPhoneアプリの作り方」なんて本がいくらでも並んでいる。そんな状況で自分で最初から説明するのは確かに無駄かもしれないが、自分の理解が深まるし、様々な書籍やwebサイトを見ても分からなかった部分というものがあるので、その部分の説明などは決して無駄ではないと思う。というかいいこと書いてるようだがただPVが欲しいだけである。

はよ書けよ

申し訳ない申し訳ない……コメントとかで急かすと作業が早くなるかもしれません……

2013年08月30日
2013年08月26日

lightline.vimの導入

でたよvim初心者が

どうも、vim-airlineの導入に手こずって放置する程度のvim力の持ち主ことうなすけです。 さて、Qiitaをチェックしているとまた良さげなlightline.vimなるものを見つけてまあ早速導入しました。そんな時間ないけど。

どんな感じになるのか

例えばvim-airlineを導入直後だとこんな表示です。 フォントがおかしい fontがおかしいっていうか。なんかスッキリしない。

まずNeoBundleを導入する必要があったりしますがまあ今はそれについては置いといて。 こうして こうして :NeoBundleClean して :NeoBundleInstall して こうじゃ こうじゃ おお……なんかそれっぽい。

あとはカラースキームをsolarizedにしたいんだけどreadmeが英語の上にvim力低いのでよくわかりません。どなたか教えてください。見返りはないです。

追記と訂正

貼る画像間違えてた。あと、.vimrcにこう書けばsolarizedになる。焦ったらだめね。

NeoBundle 'itchyny/lightline.vim'

let g:lightline = {
    \ 'colorscheme' : 'solarized' ,
    \}

作者のitchynyさんありがとうございます。

2013年08月26日
新しい投稿
古い投稿