ページ

2013年5月30日木曜日

vim でタブとスペースを変換する.

インデントが,スペースだったりタブだったりするのは歴史的背景だとか統合開発環境だと関係ないだとか色々な理由があるようだが,僕はスペースでインデントされてるのを見ると正直,反吐が出る. 多くのコードを書いているうちにスペースでインデントすべきだと考えるようになりました.

vim使いの人ならわかってもらえると思うが,スペースでインデントされてるとカーソル移動にやたらと時間がかかるし,行頭がタブの終了場所ではなく,本当の行頭になってしまう.

(それぐらいの設定は.vimrcに書けとか言わないで!)

もしどっちでも良いと思っている人がいたら,この機会に是非すべてタブで統一していただきたいところである.

とは言っても,そんな我儘ばかりも言っていられないし,自分で対処するほうが結果的には早いので,vimで複数の連続したスペースをタブに変換する方法.

スペースをタブに変換する場合
:set noexpandtab
:retab 4

タブをスペースに変換する場合
:set expandtab
:retab


で,まあ当然自動化できるわけで,.vimrcに書くならこんな感じ

:set noexpandtab
:set tabstop=4
:set shiftwidth=4
:set softtabstop=0

noexpand
タブをスペースに変換しない(デフォルトなので書かなくても良い)

tabstop
タブをスペース何個分で表示するか.

shiftwidth
シフトオペレータ(>>)やautoindentで挿入される量.

softtabstop
タブを押した時にスペース何個分カーソルが進むか(tabstopよりも優先順位が高い).0に設定するとtabstopの値になる.

色々と複雑だが,上のように書いておけばもれなくタブ=スペースx4になるので,あとはファイルを開いた時に,

:retab!

とすれば,スペースがタブに変換される.ついでに,

:set autoindent

なんかも書いておくと良い.

2013年5月28日火曜日

Linuxメモ

ググったりして,調べたコマンドのメモ書き.

ls -l でディレクトリのみ表示する.(リンクのみなども可)
$ ls -l | grep ^d    #ディレクトリのみ詳細表示
$ ls -l | grep ^l    #リンクのみ詳細表示
$ ls -l | grep ^-    #ファイルのみ詳細表示

すべてのディレクトリのパーティションを変更する.
$ find ./ -type d | sed -e "s/ /\\\\ /g" | xargs chmod 755

hoge.JPG を hoge.jpg に変更する
$ for file in *.JPG
$ do
$ mv ${file} ${file%.JPG}.jpg
$ done

ディレクトリの中の容量を確認する.
$ du -sh hoge

-s:指定したディレクトリのみ表示
-h:容量を見やすいサイズで表示(例:30893492→30G)

開いているポートの確認(ローカル)
$ netstat -atu
# lsof -f

開いているポートの確認(リモート)
$ nmap IPアドレス

ポートを開いているプロセスの特定
# fuser -n tcp ポート番号

findで見つけたファイル・ディレクトリの詳細を表示する
$ find dir -ls

パスワードの有効期限に関する変更を行うコマンド
$ chage

sudoで許可されているコマンド一覧
$ sudo -l

sudoで変更先ユーザでシェルを起動する
$ sudo -i (ログイン時の処理を行う)
$ sudo -s (ログイン時の処理を行わない)

システムのリソースを表示する
$ ulimit -a

2013年5月23日木曜日

キャッシュバックのJCBギフト券が届いた.

今年の2月にdocomoで新規契約した際のキャッシュバックが届きました.

WM×LI: SO-03Dを新規一括0円で契約してきた
WM×LI: SO-03Dを新規一括0円で契約してきた【続き】
WM×LI: SO-03Dを新規一括0円で契約してきた【続き2】


総額¥28,000相当

キャッシュバック付きで契約したのが初めてだったので若干不安でしたが,普通に届くものですね.

使う機会が来るまで大事に保持しておくべきか,さっさと金券ショップで換金するべきか.

仮に95%で買い取ってもらえれば,¥26,600・・・.これなら換金してもいいかな.

【追記】

結局,金券ショップに持って行き94%で買い取ってもらいました.

2013年5月22日水曜日

【祝!】10万PV達成.

今朝,ブログ管理画面にログインしてみたらついに100,000Hitを達成していました.

ブログ開設が2011年5月16日なので,ほぼ二年で達成です.

一番最初の記事↓
WM×LI: Bloggerに移行してみた!

とは言っても,今年の2月あたりから積極的に更新を続けるようになり最近では600〜700PV/日ぐらいなので,このままいけばつぎの100,000Hitはあと半年ぐらいで達成できそうです.

欲を言えば,もうちょっと加速して3〜4ヶ月ぐらいで行きたいところ.


それでは読者の皆様,

たまたま訪れた方々,

もう二度と来ないかもって人も含めて,

これからもどうぞよろしくお願いします.m(__)m

2013年5月21日火曜日

パーティションテーブルを表示するコマンド

fdisk コマンドに -l オプションを追加するだけ.なお root で実行する必要あり.

$ sudo fdisk -l

実行結果

Disk /dev/sda: 500.1 GB, 500107862016 bytes
ヘッド 255, セクタ 63, シリンダ 60801, 合計 976773168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスク識別子: 0x7ce912e3

デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 3074047 1536000 7 HPFS/NTFS/exFAT
/dev/sda2 3074048 948099071 472512512 7 HPFS/NTFS/exFAT
/dev/sda3 948099072 976771071 14336000 7 HPFS/NTFS/exFAT

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
ヘッド 255, セクタ 63, シリンダ 60801, 合計 976773168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x000e7fbd

デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 * 2046 195522559 97760257 5 拡張領域
/dev/sdb2 195522560 976773119 390625280 7 HPFS/NTFS/exFAT
/dev/sdb5 2048 19531775 9764864 82 Linux スワップ / Solaris
/dev/sdb6 19533824 78125055 29295616 83 Linux
/dev/sdb7 78127104 107421695 14647296 83 Linux
/dev/sdb8 107423744 195522559 44049408 83 Linux

使用頻度の少ないコマンドは覚えてもすぐ忘れるから悲しい.(いちいち調べると逆に時間かかるし・・・)

2013年5月20日月曜日

ASUSの人気PCモニタMX239Hを注文した

自室のPCモニタが貧弱すぎるので前々からPCモニタを買おう買おうと思いつつ,ずーーと買わずにいたのですがついに意を決して注文しました!

それが,ASUSのMX239Hという商品.

価格.comの商品ページ
http://kakaku.com/item/K0000464352/

現在,価格.comで人気ランキング2位の商品(1位は同じ機種の27インチver.)

前述の通り,前々から気になっていたので,ちょいちょい検索をしたわけですが,今までで一番ランキング上位にいる期間が長い.しかも圧倒的に.

デザインもかなり好みだし,Nexus7を買ってから自分の中でASUSの株が急上昇中なこともあり,これに決まりかなーと思っていた矢先に,まさかの値上がり...Σ(゚д゚lll)ガーン


しかし値段がまた戻ってきたので,そろそろ買い時かなと思っていましたが,

ASUS MX239Hのズバ抜けたデザインと画質を徹底解析!未購入者は急げ! - 価値のあるお買い物日記

↑こんな記事を見つけてしまい,もう僕には食指が動くのを止める術はありませんでした.

価格.comのショップ一覧ではTSUKUMOが最安値でしたが,ポイントつければビックカメラの方が安かったのでビックカメラ.comで注文しました.

集めていたビックのポイントを全額(6756pt)使い,

¥22,800 - 6,756 = ¥16,044

これに10%のポイント(1605pt)が付いたので実質¥14,439での買い物.

明後日,水曜日の19時から21時の間に届く予定です.

それでは明後日に備えて,レビューを書くための下書き作業に入ります.

2013年5月19日日曜日

電子マネー・クレジットは結局どれがいいのさ.

今年の2月に買ったXperia acro HDでおサイフケータイデビューを果たしました.

一台で色々な電子マネーやポイントカードが扱えるし,財布を持たずに買い物に行く事もできるようになしました.以前は財布の中にポイントカードの束が入っていましたが,おサイフケータイのおかげで財布からカードがどんどん減っていきました.

しかし全ての店舗で使えるわけではないのも事実.クレジットカードとの使い分けも大切なので,ポイント還元率とかも含めてまとめてみたいと思います.

Ubuntuをインストールしたら最初にやること

0.はじめに

僕は少なくとも半年に二回,多い時は月に一回ぐらいのペースでUbuntuをインストールしている.

最新版が出たら必ず,家と研究室のPCにOSを入れ直しているし,さらにノートPCに入れたり,外部記憶装置に入れてみたり,最新版が出ていなくとも気分的に入れ直してみたり,とヘタすると年に20回くらいインストールしてたりする

「そんなことできるのは学生のうちだけだ」

とか思われるかもしれないが,Ubuntuのインストール&セットアップなんてのはWindowsに比べりゃ100倍簡単である.(と僕は思う)

インストールには30分もかからないし,インストール後はDropboxでファイルをダウンロードして,いつも使っているシェルスクリプトを回してやれば,あとはお茶でも飲んで待っていれば3時間もしないで全部終わる.

最後にシェルではできないorやりたくない作業をちょこっと済ませて完了となる.

それでは,本題に入ろうと思う.

1.ログインする前に

無事にインストールが完了したあと,初めて起動したら,すぐにはログインしない.

僕はUnityがとても嫌いなので,GUIでログインする前にCUIでログインして,アップデートとデスクトップ環境のインストールを済ませる.

1.ログイン画面で Ctrl + Alt + F1 を押し,(F2とかF3でも構わない)CUIでログインする.
2.以下のコマンドを実行する.

$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade -y
$ sudo apt-get autoremove -y
$ sudo apt-get install fluxbox -y
$ sudo shutdown -r now

(もちろん,セミコロンで繋いで一発で済ませたほうが楽.)

無事にアップデートとFluxboxのインストールが完了すれば再起動される.
再びログイン画面まで来たら,今度はデスクトップ環境にFluxboxを指定してログインする.

なお,Fluxboxについては,ここでは取り上げないので無理な人はUnityのままどうぞ.

2.Dropboxをインストール

無事にログインできたら,まずはDropboxをインストールして,必要なファイルをダウンロードしてくる.

僕はUbuntuのホームディレクトリをほぼまるごとDropboxに投げているので,とにかくDropboxを入れないことには作業が始まらない.

3.シェルスクリプトを実行する

以下のファイルを実行する.

https://www.dropbox.com/s/tlqfssy1avlavqn/install.sh

これでもう大半の作業は終了する.

そのまま実行すると,ディレクトリが削除されたりとか大変なことになるので,実行する場合は内容をよく見てから自己判断でお願いします.

4.ゲストセッションを無効化する

ルート権限でないにしても他人に勝手にいじられては大変なので,ゲストセッションは即刻無効化する.

WM×LI: 【Ubuntu12.10】ゲストセッションを無効化

5.スクロールバーを旧式に戻す

Unity環境が嫌いなのでFluxboxを利用しているが,スクロールバーはUnity仕様のままなので,旧式のGNOME仕様に戻す.

WM×LI: 【Ubuntu12.10】スクロールバーを旧式に戻す.

6.LaTeXでHelveticaが埋め込まれるようにする

僕がLinuxを使う理由の3割がLaTeXであるので,LaTeX環境は結構凝っている.
フォントを埋め込む際に,デフォルトではHelveticaを埋め込むことができないので,設定を書き換えてやる.

WM×LI: 【Ubuntu 12.10】LaTeXでHelveticaフォントを埋め込む



以上で全てのセットアップが完了する.
どんなに長く見積もっても3時間かからないし,ほとんど自動化してるので,作業時間は30分ぐらい.

2013年5月17日金曜日

UbuntuとNexus7の相性がグッと上がった

Ubuntu13.04がリリースされてから,一ヶ月弱.

僕が日本語リミックスをインストールしてから十日ほど経ちました.

Unityを使っていないせいもあり,Ubuntu12.10との違いにあまり気づきませんでしたが,一つ大きな変化に気づきました.それは

NautilusでNexus7を認識できるようになった.

ということです.Nexus7はMTP(Media Transfer Protocol)を使用して接続・ファイルの転送を行いますが,今までUbuntuでNexus7を認識するにはgMTPというソフトを使わなければなりませんでいした.

しかし,13.04からは特に何も設定することなく,NautilusでNexus7を認識しています.
(もちろん,マウントもファイルの転送もできます)


今までUbuntuを使うことで不便になることと言えば,

・MS Officeが使えない(Skydriveで一応解決)
・Nexus7とMTPで通信ができない

の2つぐらいだったので,このアップデートは非常に嬉しい.

まあ本音を言えば,Linux同士なんだから,Windowsなんかよりも相性良くなきゃダメだろ!って感じなんですが.

Tasker設定一覧
通話専用、MVNO、自宅専用、タブレット

Android端末を複数台,用途別に使用しているので,それぞれの設定を書き留めておく.


【 通話専用 】(EVO 3D)
昨年,学割で契約した0円運用中の電話専用端末.

アラームのために明け方にマナーモードを解除し,再びマナーモードに設定する.
(カレンダーの通知を利用しているので,Notification Volumeをいじる)

初期状態
  • Wifi OFF
  • モバイルデータ通信 OFF
  • 自動同期 ON

■マナーモード解除(アラームのため)
[Time]05:45
      >>[Audio]Notification Volume 7

■マナーモードに設定(アラーム作動後)
[Time]06:15
      >>[Audio]Silent Mode Vibrate



【 ドコモMVNO 】(Xperia acro HD)
月額490円の DTI ServersMan SIM 3G 100 で運用中の端末.

セルスタンバイ問題があるので,画面オフの間は基本的にモバイルデータ通信オフ.

初期状態
  • Wifi OFF
  • モバイルデータ通信 ON
  • 自動同期 ON

■画面をオフにしたら,30秒後にモバイルデータ通信オフ
[Event]Display Off
      >>[Task]Wait 30sec
      >>[Net]Mobile Data Off if %SCREEN〜Off

■画面をオンにしたら,モバイルデータ通信オン
[Event]Display On
      >>[Net]Mobile Data On

■画面オフ中に15分に一回モバイルデータ通信をオンにする
[State:Display]Display State off +[Time]Every 15min
      >>[Net]Mobile Data On
      >>[Task]Wait 30sec
      >>[Net]Mobile Data Off if %SCREEN〜Off



【 通話専用 】・【ドコモMVNO】共通設定
電池消費量を減らすため明らかに電話を受ける必要がない時間は機内モードにする.

夜中に一度Wi-Fiをオンにして Dropsync でファイルを同期する.

■夜中は機内モード
[Time]00:30
      >>[Net]Airplane Mode On

■朝になったら機内モード解除
[Time]06:00
      >>[Net]Airplane Mode Off

■夜中に一度Wi-Fiオン
[Time]00:20
      >>[Net]WiFi On

■5分後にWi-Fiオフ
[Time]00:25
      >>[Net]WiFi Off

■自宅のWi-Fiに接続されたらDropsyncでSync Nowを実行
[State:Net]Wifi Connected:自宅のWi-Fi
      >>[Plugin]Dropsync Sync Now

■自宅のWi-Fiに接続されていないときは10分に一度Wi-Fiオフ
[State:Net]Not Wifi Connected:自宅のWi-Fi + [Time]Every 5 min
      >>[Net]WiFi Off


【 自宅専用 】(Dell Streak)
自室の専用ドックに挿しっぱなしで常時Wifi接続の端末.

作成中.

【 タブレット 】(Nexus7)
Wifi運用中のタブレット端末.

作成中.

2013年5月16日木曜日

いつの間にかGoogleの同期欄にアプリデータとユーザーの詳細が追加されていた.

何気なくGoogleアカウントの同期を表示してみたら,以前はなかったアプリデータユーザーの詳細なるものが追加されている.


画像はNexus7のものだが,Xperia acro HDEVO3Dでも同様に追加されている.

しかもデフォルトでチェックされている.

ググってみても詳しい情報にヒットしないところを見ると,追加されてからあまり時間が経過していない模様.

だいぶ前にアプリ一覧にGoogle Play開発者サービスが追加された時も結構戸惑ったが(結果的には良いサービスだったが),こういうときは一言お知らせがあっても良いと思う.

Android端末使ってれば確実にGmailのアカウント持ってるんだから,Gmail使って知らせるとか方法はあるでしょうに...

2013年5月11日土曜日

Fuku予定表ウィジェットの設定

完成形はこちら
WM×LI: Androidのホーム画面を改造

設定
├起動設定-Business Calender
├シングルタップ-Unchecked
├カレンダー選択-Checked
│ └表示したいものにチェック
├場所-check
│ ├文字数-6
│ ├表示方法-<場所>
│ └自分の都道府県を表示しない-(自分の都道府県も表示)
├背景の表示-Unchecked
├文字色設定-Checked
│ ├重要なカレンダー:
│ ├重要ではないカレンダー:グレー
│ ├日本の祝日:
│ └文字サイズ-12pt
└日付設定
├日付まとめ:日付は1日1個(アタマ合わせ)
├開始日:MM/dd
├曜日:常に非表示
├開始時:none
├終了日表示:複数日の予定の場合のみ表示
├終了日:MM/dd
├曜日:常に非表示
└終了時:none

【Tasker】使わなくなった端末の使い道.

2月に購入したXperia Acro HDでAndroid端末も4台目(タブレット含む)になり,
最初に買ったDell Streakは完全にお払い箱になってしまいました.

しかし,そのまま引き出しの奥に眠らせておくのは勿体無い.

しかもDell Streakは専用のドックキットまで買ってしまった端末である.

過去の記事:WM×LI: Dell Streak(001DL) のホームドックキットを購入

そこでWi-fiをOnにした状態でドックに挿しっぱなし,マナーモード解除,画面も点灯させたままの状態で画面にはウィジェットをたくさん置いて,メールやSNSの通知マシンにした.


しかし色々と問題が発生.

まず,夜中に画面を点灯させたままというのが意外と眩しい.

しかし画面を時間経過でオフにすると,いちいち確認のためにボタンを押さなければならないし,画面OFF中にWifiの接続が切れることもある(もちろんWifiスリープはオフにしてる)

また,ドックの電力はUSBバスで持ってきているので,PCの電源を落とすと電力供給が無くなり,なおかつWifiは常にオンなので,平日は帰宅した時にはほぼ100%電池切れ状態.

これらの問題を解決するために有名な神アプリTaskerのお世話になることにした.

(残念ながら,まだ使い倒していないので,色々と試行錯誤中だが.)

とりあえず,以下の設定を行った.

Profiles
充電中・・・State-Power(Any)・・・Connect
余力有り・・・State-Battery Level(51-100)・・・Connect
余力無し・・・State-Battery Level(0-50) && State Power(Any,Invert) ・・・Disconnect

Tasks
Connect・・・WiFi On→Auto-Sync On→GPS On
Disconnect・・・GPS Off→Auto-Sync Off→WiFi Off→Airplane Mode On

少なくとも余力が無くなればWiFiがオフになるので,電池切れは防げると思われる.
あとは,画面つけっぱなし問題を解決したい.

【追記】
意外とすんなり画面つけっぱなし問題も解決した.(ように思われた)

Profiles
昼間・・・Time-05:31-23:30・・・Display On
点灯時・・・State-Sensor-Light Level(2-100)・・・Display On
夜間消灯時・・・Time-23:31-05:30 && State-Sensor-Light Level(0-1)・・・Display Time Out

Tasks
Display On・・・Display Timeout(23hours)→Display Brightness(255)
Display Time Out・・・Display Timeout(2mins)→Display Brightness(0)

設定は間違っていないはずだが,センサの調子が良くないのか,電灯が付いていても消灯中扱いされることが多く,しばしば画面がオフになる(改良が必要か)

2013年5月10日金曜日

【Ubuntu13.04】LaTex環境を整える.

Ubuntu12.10の場合と同じです.

以下のコマンドでOK.

$ sudo apt-get install -y texlive-lang-cjk
$ sudo apt-get install -y xdvik-ja
$ sudo apt-get install -y texlive-fonts-recommended

自分が使っている限りはこれで十分な気がするのですが,次のコマンドで

$ sudo vim /usr/share/texmf/web2c/texmf.cnf

/usr/share/texmf/web2c/texmf.cnfを開き,

shell_escape_commands = \
bibtex,bibtex8,\
kpsewhich,\
makeindex,\
mpost,\
repstopdf,\

という部分を

shell_escape_commands = \
bibtex,bibtex8,bibtexu,pbibtex,upbibtex,biber,\
kpsewhich,\
makeindex,mendex,texindy,\
mpost,pmpost,\
repstopdf,epspdf,extractbb,\

のように書き換える.

上の方はbibtex関係のコマンドだし,LaTeX関係のパッケージを散々調べまくった時に,mendexとかpmpostというワードは見かけた気がする.

それからepspdfはepsからpdfに変えるコマンド(?)

よくワカランw



【追記】
時間をかけて調べたみるたところ,少し分かって来ました.

例えば,extractbbを追加すると,includegraphicspngを挿入するときなどにbbを指定しなくても良いそうです.(今まで普通にbb= 0 0 640 480とか書いてたな)

きっと,他の追加したコマンドもソースファイルの書き方次第では役に立つ場合があるのでしょう.

よくわかりませんが,usepackageと同じで多は少を兼ねるってことで追加しまくっとけばいいのかな

【Ubuntu12.10】ゲストセッションを無効化

Ubuntuでゲストセッションを無効化する方法.

$ sudo vim /etc/lightdm/lightdm.conf

でファイルを開き,末尾に次の一行を追加する.

allow-guest=false





その後,再起動するとゲストセッションが無くなっている.

ゲストユーザなんて普通の人は要らないんだから,OSのインストール時に有効にするかどうか決められるようにしてくれれば良いのに...

【Ubuntu12.10】スクロールバーを旧式に戻す.

Ubuntuのバージョンが11.04にアップグレードされたときから,すなわちデスクトップ環境がGNOMEからUnityへと変更になったときから,

スクロールバーが常に表示されるタイプから,マウスカーソルを合わせた時だけ表示されるタイプに変更になった.

マウス自体あまり使わないので,使用上はほとんど問題ないのだが,なんとなく気になるので以前のようなタイプに戻した.

$ sudo vim /etc/X11/Xsession.d/81overlay-scrollbar

でファイルを開き,末尾に一行

export LIBOVERLAY_SCROLLBAR=0





と書き加えて保存する.

その後一旦ログアウトして,ログインすると,スクロールバーが旧式に戻る.

 

左が変更前で,右が変更後.

若干見にくいが,旧式のほうがやはりシックリくる.

2013年5月2日木曜日

【tmux】よく使うキー一覧

仮想端末tmuxで自分がよく使うキーの一覧

C-b + "ペイン分割(横)
C-b + %ペイン分割(縦)
C-b + o または矢印キーペイン間移動
C-b + C-矢印キーペインの大きさを変える

tmuxを使う主な目的がペイン分割なので,まとめてみたらこれだけだった.

~/.tmux.conf というファイルを作ると幸せになれるらしいので,今度やってみる.