2015年12月17日木曜日

IGGG Advent Calendar 2015 [No. 17] DIYキーボード工作

このページでの更新はなかなかの久しぶりですね。
もう、「お久しぶりです」が口癖のような。

今回は、IGGGという群馬大学の部活のイベントとして、Advent Calendarをやることになったので、その17番目を担当します!

テーマは「DIYキーボード工作」
工作という名の「改造」です。

みんな自分の好きなキーボードはあると思います。高かろう、安かろう。
僕はDell Keyboardが好きですね。オーソドックスなやつです。

プログラマやブロガー、記事を書く人はそれぞれ好きなキーボードがあるはずです。

今回は、そんな好きなキーボードを改造するということで書きます。

じゃ、何を改造するのか?

「テンキーのそぎ落とし」 です(*ノω・*)

僕はプログラムを書く人間なのですが、テンキーって実は使いません。ってか、要りません。
そして、右利きなので、テンキーがあることによってマウスが遠くなってしまいます。
今では、フルサイズキーボードのテンキーレスのものが販売されていますよね、REALFORCEとか。でも、高いんですよ。

そこで、いま愛着のあるキーボードを改造するのがとても安くて簡単なのではないかと思って、今回実践してみました!

それではいきましょう!





これが、僕のキーボードですね。最初はUSキーボードを学校で使い始めたのがキッカケです。でも、日本ではJISキーボードしか手に入らないので、仕方がないですね。



解剖しました。ネジを取り外したあとですね。このキーボードはメンブレン式というものなので、全部で3層構造になります。上と下の層が電極を持っていて、中間は電極の部分だけが繰り抜かれている層で、電極が触れないようになっています。
やっぱ、解剖することによって仕組みを理解するのが楽しいですね。生物の解剖実験と同じ感じでしょうか?(実は、解剖実験をしたことがないんですよ。カエルとか解剖するんでしょ?)

このとき、見ておいて欲しいのがどのキーがどの線を使ってボードまで伝達しているかです。あとで、その件に触れます。



次はボードですね。これが押されたキーを認識して、USBを使ってパソコンにスキャンコードというコードを送っています。




さぁ、切っていきますよ!キャー(*ノェノ)キャー
ノコギリは、Amazonで800円ぐらいでした。超切れ味バツグンでした。




まさに一刀両断という感じ!キレイに切れました!
ちょっと残っていますね。
実は、上の方ではボードのサイズが邪魔をしてしまいこれ以上短くすることができませんでした。
他の理由として、一本だけテンキー側を通る回路があり、それを切ると大部分のキーが入力できない事態に陥るので、ここでとめました。
ですので、解体して切るときは、しっかりキーの通る回路を見てください。結構遠回りをしているケースがあるので。
面白いことに、これキーボードによって中身の回路が違うので分解する機会があったら比べてみてくださいね。
( ´∀`)b




さぁ、切ったものは角がトガッているのでヤスリをかけてザラザラと角を丸めましょう。
当然、テンキー側のほうを切るので、キーボードの支えは取れてしまいます。なので、滑り止めなので対応しました。
切った側面なのですが、私は何もしませんでしたが、気になる場合はパテーとかを塗って塗装するというのも手かもしれません!



じゃーん、完成!
見た感じ、REALFORCEぽくないですか!!??
マウスまでの距離が近くなったので便利になりました。

最後に、削り落としてしまったテンキー付近に「Print Screen」のキーがありました。
これは、なかなか痛いですね。でも、大丈夫!ソフトウェア側で欠点を補いましょう。
SharpKeysというキーボードのキーを別のものに置換するソフトウェアがあるので、最初に設定すればそのパソコンでは使えます。
Print Screenは右のWindowsキーに割り振りました。

最後に、実は去年のクリスマスにHappy Hacking Keyboard Professional 2を買ったんですが、ちょっと僕には合わなかったので、今眠っているんですよね。
もし、欲しい!っていう方が居ましたら、 Twitterで @hirontweet にDMください。値段などはそちらの方で交渉しましょう。

ちなみに、今、上海問屋さんが取り扱っている中華の黒軸/青軸のフレームレスキーボードがいいんじゃないかなって思っています!
リンクはこちら

それでは、引き続きIGGG Advent CalendarをStay Tuned!

2015年3月17日火曜日

Github製テキストエディタatomをLubuntu(32bit)でソースコードコンパイル

Twitterで「今すぐSublime Text を消してAtom をダウンロードすべき5つの理由」というリンクをクリックして見てみたら、Markdownがリアルタイムでレンダリングされると書いてあったので、早速入れることにしてみた…

atomのGithubレポジトリを開いたら、どのバージョンも、64bitのみのバイナリパッケージの配布、とあった。



Windowsには入れて試したくないので、仮想環境のLubuntu(32bit)に入れたかったが、64bitを落としてきても、アーキテクチャで警告が出されてインストールができない。

ソースを公開しているので、自分でコンパイルすることは出来るみたい。

仕方がないからやってみて、失敗したら諦めようとした。その経過と結果をブログにまとめることにしました。

結論からいうと、動きました。いや、動くようにしました。さらに、32bit用のバイナリパッケージを生成できるので、次回以降は楽。

では、辿って行きましょう。

1. まず、atomのGithubレポジトリの下の「Building」から「Linux」を選びます。

2. 書いてある必要条件をすべて入れましょう。以下のものを入れます。
  • build-essential
  • git
  • libgnome-keyring-dev
  • fakeroot
追加で以下も入れます(書いてないけど、入れないとコンパイルできない)
  • nodejs
  • npm
インストール方法は、おなじみのsudo apt-get install パッケージ名…

3. インストールが終わったら、まず、npm(Nodejs Package Manager)のバージョンをあげます。デフォルトでは、バージョン1.3.xxが入ってくるので、1.4.0以上にします。
  • sudo npm update (npmコマンドで更新情報を取得し)
  • sudo npm install npm -g (npmコマンドで自分自身を更新します、-gは結果だけ表示させるため)
4. 下準備が完了。gitコマンドでatomのソースをクローンします
  • git clone https://github.com/atom/atom (atomフォルダが作成される)
  • cd atom (atomフォルダにディレクトリを移ります)
ここで、自分は$HOMEに仮ディレクトリを作成してそこに上のコマンドを実行しました。どこで、クローンしても同じです。コンパイルしてしまったらあとは、要りません。※1

5. クローンしたレポジトリを更新します

  • git fetch -p (リモートレポジトリから更新を取ってくる)
  • git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
2番目のコマンドは、git checkoutだけでいいような気がするんですよね。。。僕は、いろいろ出てきてとりあえず、重大なエラーじゃなさそうだからということで、素通りしました。

6. いよいよ、ビルドします
  • sudo script/build
ワーキングディレクトリ(pwd)はatom/内でやります。後ほどそのディレクトリにいないと先に進みません。
このコマンドを実行することにより、$TMPDIRすなわち、/tmpにatom-build/Atomというディレクトリが作成されて、とにかくビルドで使ったファイルがたくさん作られます。

7. gruntを使って、atomとapmを/usr/local/binにインストールします
  • sudo script/grunt install
もし、エラーが出たら、pwdを打ってscript/ではなく、atom/にいることを確認して下さい。gruntの構成ファイルがatom/にはあるようです。installのあとにインストール先のディレクトリをしていすることができるみたいです。
  • sudo script/grunt install --install-dir インストールしたい先の絶対パス
8. インストールは終わったので、/usr/local/binにパスが通っていれば、実行はできます。※2

9. debのバイナリパッケージの作成

ビルドしたのはいいけど、毎回するのは時間かかるし、いやです。gruntのコマンドに、mkdebというコマンドがあり
  • sudo script/grunt mkdeb
を実行すると、$TMPDIR/atom-build/に.debで終わるファイルが作成されます。これが、バイナリパッケージです。

実は、script/buildのあとは必要なく、9番を実行すると、/usr/local/binにインストールするのではなく、パッケージマネジャー経由でインストールをすることができるのです。

補足:
※1:
バージョンアップなどのアップデートはパッケージマネージャーはしてくれません。バージョンアップがあるかどうかを、クローンしたディレクトリで、git fetch -pをして最新版を取得し、再度ビルドする必要があります。

※2:
ターミナルでatomを実行すると、白い画面で、下のコンソールに赤くエラー見たいに見えるかもしれません。その状態に出くわしたら以下のように回避しましょう。
$HOMEディレクトリにディレクトリを移り、root権限になっている隠しフォルダ.atomを自分自身に所有権を変更します
  • sudo chown user:user -R ~/.atom (-Rは再帰的にディレクトリに適用するという意味です)
また起動してみましょう、今度はちゃんと黒い背景のエディタが見えたと思います。

Markdownのリアルタイムレンダリングは、Ctrl + Shift + Mで右に表示されます。


2014年6月29日日曜日

iPhone4のバッテリ交換

iPhone4をもらったので劣化したバッテリを交換することにしました。


スマホのバッテリだから高いかな?と思ったら、そんなに高くもなく、1000円程度。もちろん、純正ではない可能性は否定できません。



とりあえず、開けましょう。30pinコネクタの左右2つのネジを取ります。付属のドライバで。


そうすると、「iPhone」と書いてある背面と向かい合わせになって、上にスライドできます。ヮ(゚д゚)ォ!


スライドして、外したら、中身はこんな感じ。中身はMac同様に黒いんですね。まぁ、シール類が黒いんだ。
右にあるのがバッテリだってわかりますね。


うむうむ、「Authorized Service Provider Only」(承認された事業者のみ)とあります。これ、かなり罠です。(あくまで、持論です。)そう簡単にはペリッと剥がれません。


iFixitの動画によると、「iPhoneの中には外れにくいように粘着が強くなっているという情報がある」と言っているので、信じて、ドライバでシール逆側から持ち上げてみます。


バッテリのコネクタはプラスドライバで外してください。すると、アンテナ配線コネクタと背面に接触する部品があるので気をつけてとってください。


うまく差し込んで、すべてをリバースする。

購入したバッテリはコネクタに挿す前におる必要があるので、すでに入っていたバッテリを参考に折ってください。折り過ぎないように。。。


さぁ、起動です!

うごいたぁー!

持ち時間は、まぁ、良くなったんじゃないですかね?
なんか、レビューには1ヶ月でダメになったという話もあるので、まぁ、1000円なんで、仕方が無いですね。

お・ま・け
内部の細部写真です。
まずは、カメラ部分。

バイブサーボはここにあります。スイッチの近く!



***ここで紹介したことをするには、すべて「自己責任」でお願いします。私は、知りません。***

2014年3月16日日曜日

アプリのリリース!「コトバりすと」

Androidのアプリ開発をしていて、やっとGoogle Play Storeに実用的なアプリを公開することができました。

以前はNAVERの「英語辞典」がとても使いやすかったのですが、サービスをLINEとNAVERまとめに集中させるということでサービス提供が停止しました。

そこで、自分で辞書アプリ的なものは作れないかな?と思って、いつも使っていた「コトバンク」の辞書アプリを作ることにしました。

当初は、iPhone用のコトバンク公式アプリはあったのですが、僕が開発している途中でAndroid版が開発されてました^^;
でも、まぁそんなことは忘れて、自分なりのアプリを作ってみました。

「コトバりすと」は現在、国語辞典、英和辞典、和英辞典の単語を検索することができます。


上がアプリのスクリーンショットです。

このアプリはまだ発展の途中なので、まだ実装したい機能がたくさんあるので期待しててくださいね。

是非ダウンロードしてみてくださいね。

コトバりすと(Google Playへのリンク)

2014年2月27日木曜日

Ubuntuのデスクトップ環境に関すること(キーバインド関連)

Ubuntuなど、Windowsとは違って、デスクトップ環境を自由に変えることができる。
初期のUbuntu(例えば、8.04LTS 〜 10.10らへんまで)はクラシックなGNOMEデスクトップ環境だったため、ウィンドウ遷移、アプリ起動が簡単だった。しかし、12.04LTSぐらいからUnityが導入されてからウィンドウ遷移するときのAlt + Tabでアプリごとでカテゴリ化されていたため、同じアプリ内の遷移はとてもイライラした。

自分はUnityになってからいろんなデスクトップ環境を試してきたが、なかなかUnityから離れることができなかった(イライラするのに) 。
なぜなら、キーボードのショートカット(キーバインド)がいじれたから。Unityのシステム設定のキーボードのところで、Cap LocksをControlにスワップすることがGUIからできた。僕が知っている限りではUbuntuをコアにして他のデスクトップ環境では、GUIから操作ができるものがなかった。これが原因。

じゃ、なぜ自分好みのキーバインドを設定できるデスクトップ環境が必要かというと、Cap Locksの存在価値とEmacsなどのControlキーの使用頻度がある。WindowsでもMacでもControlは実はすごく使えるキーの一つだとわかる人は知っていると思う。Control + ?でいろんな操作ができる。
  • Control + C: コピー
  • Control + V: ペースト
  • Control + X: カット
  • Control + P: 印刷
  • Control + W: タブを閉じる
  • Control + A: すべてを選択
  • Control + D: ブックマーク登録
  • Control + x Control f: ファイルを探す(作成)Emacs
  • などなど
以上のようにいろいろある。だからControlキーは重要。

Ubuntuの他のデスクトップ環境ではUnityのようにカテゴリ化のウィンドウ遷移ではなかったので、基本どれでも良かった。でもまぁ、軽いのがいいかと思って、Xubuntuを入れた。

キーバインドに関しては、Googleで調べていたら「xmodmap」というコマンドから変更することができるということなので、コマンド
xmodmap -pke > ~/.xmodmap
を実行、その隠しファイルにCap Locksのキーコード66をControl_Lにして、最終行に
clear Lock
add Control = Control_L
を打ち込んだ。これでは、毎回デフォルトに戻ってしまうため、/etc/profile.d/内にxmodmap_config.shというシェルスクリプトに
#!/bin/sh
xmodmap ~/.xmodmap
を記入。再起動すると、Controlが見事にCap Locksでも使えるようになっている。

これで、Unity特有のイライラはなくなったと思える。だが、新しい環境になったため、他のイライラはまだ残るであろう。。。つづく

2014年2月25日火曜日

YaTeXをいれてみた

さー久しぶりの書き込み。(いつもの)

大学はもう既に2年を終わって、次は3年ですね。時が流れるのが早いです。

大学のレベルが上がるに連れてWordからTeXにシフトしてきて、この前久しぶりにWord使ったら「うぅぅぉぉぉ」と唸ってしまいました。

ということで、ここではYaTeXをちょこっとメモっておきたいと思います。

YaTeXはEmacsでLaTeXをコンパイルとかできる拡張機能。

Ubuntuだと、インストール方法は2つあって、sudo apt-get install yatexまたは、本家からダウンロードして~/.emacs.d/site-list/の下に置く。僕は後者の方法でやりました。

現在のバージョンが1.77で、配置が終了したら、~/.emacs.d/init.elに設定を書き込みます。

;; YaTeX Settings

; Load YaTeX
(add-to-list 'load-path "~/.emacs.d/site-lisp/yatex1.77")

; Automatically load YaTeX when .tex File is created
(setq auto-mode-alist
     (append '(("\\.tex$" . yatex-mode)) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)

; Kanji code
; nil is recommended but '0' means, no-conversion, it directly uses emacs encoding style
(setq YaTeX-kanji-code nil)

; Enable TypeSet
(setq YaTeX-inhibit-prefix-letter t)

; LaTeX Compile Command (Default: platex)
(setq tex-command "platex")

; Preview Command
(setq dvi2-command "xdvipdfmx")
(setq dvi2-command "evince")

僕の環境では、platexでコンパイルして、DVIからPDFへの変換はxdvipdfmxを使っているの、自分の環境にあわせて調整してみてください。
ちなみに、xdvipdfmxのコマンド後、evinceを開いている場合は自動で更新されるため、最後のコードは若干不要?に近いです。

Enable TypeSetというところは、[prefix] = C-c (Control + c)で始まるコマンドを有効という意味で、そのコマンドからコンパイル、出力ができます。詳しくは、YaTeX Wikiなどをごらんください。

参考にしたページ:
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?YaTeX#uc0145ec
http://www.proton.jp/main/latex/yatex.html
https://www.yatex.org/

2013年7月6日土曜日

Ubuntuでフォント再設定方法

大学でようやく専門的な分野を勉強するようになりました。
提供されている端末の環境がLinuxなので自分も昔から使ってきたUbuntuでいろいろsshなどを使って作業しています。

ここでは、UbuntuにLaTeXの環境を入れる際に起きた問題を解決する方法をご紹介します。
一年ほど前にLaTeX(platex)をUbuntuにいれるときはUbuntuの公式のplatex環境のインストールコマンドでインストールできたのですが、
今回はなんかうまく行かなかったので、いろいろ試していて、未だに完璧に動いてません。xdviで日本語をうまく出力できてません。
自分の理解不足が原因です。

実はplatexの環境を入れているときにフォントのインストールも同時に行われて、それでフォントがIPAからTakaoに変更されたので、日本語フォントが
昔のLinuxのようにカワイイ?フル全角?みたいになってしまって、綺麗じゃなかったので、それをIPAに戻す方法をメモしておきたいと思います。

まず、Ubuntuのデフォルト日本語フォントを確認します。

~$ fc-match sans:lang-ja
を入力して確認します。表示されるのが現在Ubuntu上で使われているデフォルトフォントです。

さて、次に設定ファイルをコピーしてきます。
(ホームディレクトリで ~)

~$ cp /etc/fonts/conf.avail/69-language-selector-ja-jp.conf ./fonts.conf

と入力して69-language-selector-ja-jp.confファイルをホームディレクトリに隠しファイルでfonts.confという名前でコピーします。

エディタで編集する前にパーミッションを追加します。

~$ sudo chmod a+w .fonts.conf

これですべてのユーザが.fonts.confを書き込むことができます。

そうしたらエディタで開き、編集を開始します。(うまく反映されていなくてごめんなさい)




    
    
        
            serif
        
        
            IPA P明朝
            IPA モナー P明朝
            Takao P明朝
            梅P明朝
            さざなみ明朝
            東風明朝
        
    

    
        
            sans-serif
        
        
            IPA Pゴシック
            IPA モナー Pゴシック
            Takao Pゴシック
            UmePlus P Gothic
            梅Pゴシック
            VL Pゴシック
            さざなみゴシック
            東風ゴシック
        
    

    
        
            monospace
        
        
            IPAゴシック
            IPA モナー ゴシック
            Takaoゴシック
            UmePlus Gothic
            梅ゴシック
            VL ゴシック
            さざなみゴシック
            東風ゴシック
        
    

    
        
            Ryumin
        
        
            IPA P明朝
            IPA モナー P明朝
            Takao P明朝
            梅P明朝
            さざなみ明朝
            東風明朝
        
    

    
        
            GothicBBB
        
        
            IPA Pゴシック
            IPA モナー Pゴシック
            Takao Pゴシック
            UmePlus P Gothic
            梅Pゴシック
            VL Pゴシック
            さざなみ ゴシック
            東風ゴシック
        
    

    
        
            IPA Pゴシック
            IPA P明朝
            IPA モナー Pゴシック
            IPA モナー P明朝
            IPA モナー UIゴシック
            IPA モナー ゴシック
            IPA モナー 明朝
            IPAexゴシック
            IPAex明朝
            IPAゴシック
            IPA明朝
            Takao Pゴシック
            Takao P明朝
            TakaoExゴシック
            TakaoEx明朝
            Takaoゴシック
            Takao明朝
            UmePlus Gothic
            UmePlus P Gothic
            VL Pゴシック
            VL ゴシック
            さざなみゴシック
            さざなみ明朝
            東風ゴシック
            東風明朝
            梅Pゴシック
            梅PゴシックC4
            梅PゴシックC5
            梅PゴシックO5
            梅PゴシックS4
            梅PゴシックS5
            梅P明朝
            梅P明朝S3
            梅UIゴシック
            梅UIゴシックO5
            梅ゴシック
            梅ゴシックC4
            梅ゴシックC5
            梅ゴシックO5
            梅ゴシックS4
            梅ゴシックS5
            梅明朝
            梅明朝S3
        
        
            18
        
        
            hintnone
        
        
             false
        
    
    




---



<string>serif</string>, <string>sans-serif</string>, <string>monospace</string>の3つが同じフォントで指定されているのでその下に現れるフォント名を入れ替えることで

デフォルトが変わります。



変更後、保存。

あとは、ターミナルで



~$ fc-cache -fv



と入力して走らせれば完了。再起動して確認することができます。



このコードはすべて、Ubuntu 12.04 LTSで実行しました。バージョンの違いで操作が違う可能性があるので、他のブログやUbuntuのフォーラムを確認してやってみてください。