02 Jan 2014, 07:29

Linux Mintインストール後の設定メモ

前回、Linux Mintをインストールしたので、今回はその後の設定についてまとめます。

日本語入力環境の構築

デフォルトでは日本語がまず入力できません。なので日本語を入力できるようにします。

ソフトウェアを取得するリポジトリの変更と更新

日本国民ならば、パッケージを取得するための公式リポジトリは日本のミラーサイトに設定するべき。設定のソフトウェアソースを開き、公式リポジトリのミラーサイトを日本の国旗がかかれているものに変更。

http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages/ 
http://ftp.riken.jp/pub/Linux/ubuntu/

ソフトウェアを更新する。

$ sudo apt-get update

ディレクトリ名の英語表記

ホーム配下にあるディレクトリ(ピクチャやドキュメントなど)は日本語表記だが、コマンドラインとの相性を考えると英語の方がよいので変更する。

$ env LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-update

WorkSpace数の変更

WorkSpace数はデフォルトで2つだけれども、4つに変更する。

$ gsettings set org.cinnamon number-workspaces 4

テーマと背景を変更する

テーマや背景は趣味で変更。

メニューの色も変更してみる。gtk-theme-configというツールをつかう。

$ sudo apt-get install gtk-theme-config

インストールしたらメニューから Theme Configurationを選択。

Emacsを利用すると、256色つかえなかった。環境変数に以下を設定する必要がある。

$ export TERM=xterm-256color

 

フォントの変更

デフォルトフォントは、Sansというフォント。これをプログラミングフォント、Rictyに変更する。

Windows(NTFS)ファイルシステムをマウントする

Linux側からWindowsのドライブをマウントすれば、Linux側からもWindowsのファイルが利用できて便利です。以下にまとめました。

ディスプレイ明るさの調整

ノートPCなので、バッテリーを利用しているときは、ディスプレイの明るさを落として電力を節約したい。xbacklightdをインストールする。

sudo apt-get install xbacklight

調整は以下のコマンドで実施。setの後ろの数字で調整。

xbacklight -set 80

Applications

各種アプリケーションを入れます。

zsh

端末のシェルをzshにします。

$ sudo apt-get install zsh
$ chsh

git

Gitをインストール

$ sudo apt-get install git

続けて、githubと連携。以下のエントリも参照。

githubで管理しているdotfilesを落としてきます。

Ruby

rbenvを利用してインストール

git clone git://github.com/sstephenson/rbenv.git ~.rbenv
mkdir -p ~/.rbenv/plugins
cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git
rbenv install 2.1.0
rbenv global 2.1.0 
rbenv rehash

エラーした。

configure: error: in `/tmp/ruby-build.20140102130128.5783/ruby-2.1.0':
configure: error: C compiler cannot create executables

この方法を試すとうまくいった Home · sstephenson/ruby-build Wiki

apt-get install build-essential autoconf libssl-dev libyaml-dev libreadline6 libreadline6-dev zlib1g zlib1g-dev
CC=/usr/bin/gcc rbenv install 2.1.0

Eclipse

この記事がとても参孝になりました。ありがとうございます

Linux版のEclipseを公式サイトからインストールします。/opt/eclipse配下に展開。以下で起動確認。

% /opt/eclipse/eclipse

起動できたら、日本語化します。Pleadesプロジェクトから日本語に必要なファイルをダウンロードして、feature,pluginsに上書き。

eclipse.intの最後に以下を追加

-javaagent:/opt/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

Eclipse環境の引越し方法はEclipse年次バージョンアップ時の移行方法について調べたを参考。

Wine

Windowsから引っ越してきたならば、必須のツール。なんとWindowsアプリがLinuxで利用できるのだ!Cygwinみたいなもの。

$HOME/.wine配下にCドライブのようなものができて、そこにアプリがインストールされる。

Evernote

Wineを利用して、Evernote for windowsをインストール!Winowsのホームディレクトリ/AppDate/Local/Evernote/EvernoteにEvernoteのデータがあるため、ここにシンボリックリンクをはることで、LinuxとWindowsでデータを共用。

その他、趣味に合わせてツールをドンドン導入。

  • Google Chrome
  • freemind
  • Emacs

01 Jan 2014, 12:39

デュアルブート時のLinux環境Dropbox導入について(Windows 7/Mint)

デュアルブートでDropboxを利用するとき、すでにDropboxアカウントは持っていて、Windows上にファイル群もある。

そんなときデュアルブートなので、WindowsのボリュームをマウントすればWindows上のDropboxにアクセスできる。なので、Dropboxの同期ファイルはWindows上のフォルダに指定すれば容量がすくなくなりうれしいです。

デュアルブートでのDropbox導入方法についてメモします。

LinuxからWindows(NTFS)をマウントする

ここでは、/mnt/winというマウントポイントにマウントするとします。

$mkdir -p /mnt/win

以下のコマンドでマウントします。マウントさせるボリューム名はGPartedツールを起動して調べるのがよいでしょう。

以下のコマンドでマウントします。マウントさせるボリューム名はGPartedツールを起動して調べるのがよいでしょう。(ここでは/dev/mapper/isw_bfahbhfbaf_Volume0p3)

$ sudo mount -t ntfs /dev/mapper/isw_bfahbhfbaf_Volume0p3 /mnt/win
$ df
Filesystem                           1K-blocks     Used Available Use% Mounted on
/dev/mapper/isw_bfahbhfbaf_Volume0p3  85284860 77874012   7410848  92% /mnt/win

このままでは、毎回手動でマウントさせないといけないので、Linux起動時に自動でマウントさせるようにします。/etc/fstabに以下の行を追加することで、Linux起動時にマウントするようになります。

/dev/mapper/isw_bfahbhfbaf_Volume0p3 /mnt/win ntfs defaults 1 0

参考: 4.4. ファイルシステムのマウントとアンマウント

Dropboxのインストール

以下からDropboxのアプリをインストールする。

Dropboxデーモンを起動する

~/.dropbox-dist/dropboxd

指示にしたがって進んでいくと、同期用のディレクトリがきかれます。すでにDropboxアカウントは持っていて、Windows上にファイル群もある。デュアルブートなので、WindowsのボリュームをマウントすればWindows上のDropboxにアクセスできる。なので、Dropboxの同期ファイルはWindows上のフォルダを指定します。

/mnt/win/Documents and Settings/TSUNEMICHI/を指定する。すると、以下のように質問されるので、OKを選択。

「Dropbox」という名前のフォルダが既に存在しています。そのフォルダ内にある既存のファイルをすべて、お使いの Dropbox で統合しますか?

ついでに、シンボリックリンクも作成。

ln -s "/mnt/win/Documents and Settings/TSUNEMICHI/Dropbox" ~/

Dropboxデーモンを自動起動

DropboxはLinux起動時に自動起動しないので、自動起動するように /etc/init.d/に起動スクリプトを作成します。

以下のサイトを参考にしました。ありがとうございます。

Install Dropbox In An Entirely Text-Based Linux Environment – The Unofficial Dropbox Wiki

ちゃんと起動したようです

$ ps ax|grep dropbox
 1610 ?        Sl     0:13 /home/tsu-nera/.dropbox-dist/dropbox

31 Dec 2013, 05:49

美は生産性に宿る!プログラマーのためのフォントRictyをLinux Mintに導入した

普段利用しているフォントが美しいと、なにをするにもテンションがあがりますね。

美は生産性に宿る!!

ということで、美しいプログラミングフォント、Rictyを Linux Mintに導入してみました。

以前、Windowsについての導入手順を記事にしましたが、今回はMint Linux環境で導入してみます。

環境

  • Linux Mint 16 64bit cinnamon

Rictyとは

Rictyとは、プログラミング言語を美しく表示するためのフォントです。Top 10 Programming Fontsで1位になった Inconsolataと、日本語用フォントMigu 1Mを合成して作成されています。

Rictyのインストール

FontForgeのインストール

FontForgeとは、フォントのためのエディタです。コンソールから、

$ sudo apt-get install fontforge

Ricty生成スクリプトのダウンロード

githubからRicty生成スクリプトの最新版を落としてきます。

$ mkdir -p /tmp/ricty
$ cd /tmp/ricty
$ mv /home/tsu-nera/Downloads/Ricty-master.zip .
$ unzip Ricty-master.zip 
$ mv Ricty-master/ricty_generator.sh .

Inconsolata のダウンロード

Inconsolata 公式サイトより OpenType file を入手。

$ mv /home/tsu-nera/Downloads/Inconsolata.otf .
  • Inconsolata.otf

Migu 1M のダウンロード

M+とIPAの合成フォントサイトから、Miigu 1Mを入手

$ mv /home/tsu-nera/Downloads/migu-1m-20130617.zip .
$ unzip migu-1m-20130617.zip
$ mv migu-1m-20130617/migu-1m-* .
  • migu-1m-regular.ttf
  • migu-1m-bold.ttf

Ricty生成

準備完了。

$ ll
-rw-r--r-- 1 tsu-nera tsu-nera   58464 12月 31 14:02 Inconsolata.otf
-rw-r--r-- 1 tsu-nera tsu-nera 3440184  6月 17  2013 migu-1m-bold.ttf
-rw-r--r-- 1 tsu-nera tsu-nera 3148684  6月 17  2013 migu-1m-regular.ttf
-rw-r--r-- 1 tsu-nera tsu-nera  115980 12月 31 13:58 ricty_generator.sh

以下でRictyを合成します。

$ sh ricty_generator.sh auto

完成しました。

$ ll
-rw-r--r-- 1 tsu-nera tsu-nera 3538464 12月 31 14:22 Ricty-Bold.ttf
-rw-r--r-- 1 tsu-nera tsu-nera 3228704 12月 31 14:22 Ricty-Regular.ttf

Rictyインストール

最後に、Rictyをシステムにインストールします。

$ mkdir -p ~/.fonts
$ cp -f Ricty*.ttf ~/.fonts/
$ fc-cache -vf

これで、フォントの選択画面にRictyが表示されるようになります。

システムのフォントをおきかえる

メニューからフォントを選択して、Rictyを選択することでシステムのフォントを置き換えることができます。

これで作業完了。Happy Programming!!

30 Dec 2013, 17:43

Fcitx-anthyを使ってLinux Mintで親指シフト日本語入力環境を構築するまでの手順

あたくしは何を隠そう親指シフターなのです。

Linux環境を利用するにあたって最大の不安は、親指シフトが利用できるかどうかというところでした。色々調べてみた結果、利用できたので方法を書いておきます。

Mint日本語対応

まずは、日本公式HPの手順にしたがって、日本語対応を完了させます。

コマンドは以下。

$ wget -q http://linuxmint-jp.net/linuxmint-ja-archive-keyring.gpg -O- | sudo apt-key add -
$ sudo wget http://linuxmint-jp.net/sources.list.d/linuxmint-ja.list -O /etc/apt/sources.list.d/linuxmint-ja.list
$ sudo apt-get update
$ sudo apt-get dist-upgrade

$ sudo apt-get install mint-gnome-ja --install-recommends

fctix-anthyを選ぶ

IMとは、インプットメソッドの略でコンピュータに文字を入力するためのソフトウェア。IMEとは、IMのエンジン(Engine)。かな漢字変換を制御するソフトウエア。文字入力は、キーボードからの文字列をIMEで変換してIMでアプリケーションに渡します。

Mintで利用できるものでメジャーなものは、

  • IM
    • iBus
    • Fcitx
  • IME
    • Mozc
    • Anthy

ネットて調べたところ、うれしいことにAnthyが親指シフト対応しているようだ。MozcはGoogle日本語入力で利用されている技術がオープンソースになったもので、Anthyよりも変換能力が高いが、親指シフトが残念ながら利用できない。

iBusは評判が悪そうなので(本の虫: iBus 1.5がクソすぎる)、対抗馬として最近出てきたFcitxをIMに選択。

よって、fctix-anthyを試してみることにしました。

fctix-anthyのインストール

以下の記事を参考にしました。ありがとうございます。

以下からインストールします。

$ wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
$ wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
$ sudo wget https://www.ubuntulinux.jp/sources.list.d/saucy.list -O /etc/apt/sources.list.d/ubuntu-ja.list
$ sudo apt-get update

記事でのfcitx-mozcの部分をanthyに変更しています。

$ apt-get install fcitx fcitx-anthy fcitx-libs-qt5 fcitx-frontend-qt5

また、fctix設定を開こうとするとエラーしたので以下もインストール。

$ apt-get install fcitx-config-gtk

最後におまじないをして、ログアウト・ログインしなおし。

$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false
$ im-config -n fcitx

これで利用できるようになったはず。`パネルの右下にキーボードが表示されていればOK.

Fctixの設定

メニューからFctix設定を選択。Anthyをダブルクリックして選択。

全般->入力方式から nicolaを選択して完了。

変換機能はMozcに劣る。しかし、変換候補がタブで次次表示できるのはよい。こんなに簡単に親指シフトが実現できるなんて、素晴らしい!!

30 Dec 2013, 13:12

WindowsとLinux Mintのデュアルブート環境をVAIOに構築した手順メモ

Linux Mintをインストールしてみました。

SonyのVAIOに Windowsと Linuxのデュアルブート環境を構築した手順メモです。

背景

プログラマならば当然Linuxを使いこなさなければという危機感があったので、普段利用しているパソコン環境をLinuxにしたいと常々思ってました。年末年始のお休みを利用して、トライしてみました。

仮想化環境ならばいままで何度か挑戦してきたのだけれども、動作が重いので普段利用するには使えないと思った。

ディストリピューション選び

2013年でもっとも人気のあるディストリビューションを調べてみました。このサイトの右下に世界ランキングがある。

これによると、”Mint”というきいたことがないディストリビューションが、ぶっちぎりで上位を占めていることが分かる。というわけで、Mintをインストールしようと決意しました。

mint4winというツールを利用すると、Windows内部にMintをインストールすることが可能らしいが、Mint 16ではサポートされないとのこと。mint4winの先行きも不安なため、この方法はつかわずにデュアルブートに。

環境

  • Windows 7 64bit
  • Linux Mint 16 64bit cinnamon

Windowsでの作業

ここからは、Linux Mint Japanのユーザーズガイドの手順にそってインストールしてみます。

また、以下のサイトも参考にしました。

空き容量の確保

インストールに必要な容量は、7.7Gほど。現在の自分のの総容量は100GB、空き容量は10GB…今回は色々と頑張って30GBほど空き容量を増やした。過去記事も参考。

Mintインストールようにパーティション作成

Mintをインストールするために、Windows側でパーティションを区切ります。

コントロールパネル→管理ツール→コンピュータの管理→記憶域→ディスクの管理を機動。

Cドライブを選択してボリュームの縮小を実行するが・・・・ほとんど縮小できなかった。なので、フリーソフトを利用して強引に圧縮した。

このソフトを利用した。

MiniTool Partition Wizard – 窓の杜ライブラリ

結果、こうなった。

なんとか、25GBを削り取ることができました。ここにLinuxをインストールします。

Mintディストリビューションを取得

世界中にミラーサイトがありますが、日本のミラーサイトからダウンロードするのが早いため、JAISTからMintディストリビューションをダウンロードします。

ディストリビューションにはいろいろと種類があります。

  • 32bit/64bit
  • cinammon/ mate … cinnamonは高性能/Mateは省エネ
  • codecs/noncodecs … メディア関係のアプリを含むか否か。

日本では著作権の関係でNonCodecsを利用したほうがよいみたいです。ということで、自分は 64bit,cinnamon,nocodecsを選択。

以下からダウンロード。

インストール用にUSBメモリ作成

ディストリビューションは、CD/DVDに焼いてインストールするか、USBメモリに焼いてインストールする方法があります。Mintのアップデートがクリーンインストールを推奨されているので、これからも何度かOS入れ直しが必要になるだろうと思い、USB経由でインストールずることにしました。

フリーソフトのLinuxLive USB Createrを利用して、USBにディストリビューションをいれました。

ここまでがWindowsでの作業。ここからが、いよいよLinuxでの作業。

Linuxでの作業

ここからは、なかなかうまくいかずいろんな方法を試した結果、これでとりあえずうまく言ったということを書きます。なので、手順が正しいかどうかは保証できません。。。

USBメモリから起動(BIOS中にF2を押して、External Deviceから起動するようにする)。しばらくして、デスクトップ画面が起動する。

GPartedでパーティション設定 & フォーマット

MenuからGPartedというアプリを起動。すでにWindowsのパーティションが3つある。

  • isw_bfahbhfbaf_Volume0p1 … VAIOリカバリ領域
  • isw_bfahbhfbaf_Volume0p2 … Windowsのシステム領域
  • isw_bfahbhfbaf_Volume0p3…. Cドライブ

余っている領域をクリックして新規拡張パーティションを作成。(isw_bfahbhfbaf_Volume0p4)

  • 512MB ext4 … BOOT用 isw_bfahbhfbaf_Volume0p5
  • 10GB ext4 … Root用 isw_bfahbhfbaf_Volume0p6
  • 4GB linux-swap … swap域用 isw_bfahbhfbaf_Volume0p7
  • 10GB ext4 … Home用 isw_bfahbhfbaf_Volume0p8

パーティションは以下のサイトを参考にしました。

  • Guide To Install Linux Mint 16 In Dual Boot With Windows
  • Root域は10GBあればいということで10GB
  • Swap域は、搭載メモリと同程度 or 2倍とのことなので、4GB
  • Boot域はいらないかもしれないが、作成しないとうまくいかなかった。このへんがよくわからない。

そして、ここで重要なのはGPartedを利用してフォーマットをすること。参照したサイトだと、インストールの途中でext4フォーマットしているが、自分の環境だと、謎のエラー(???と表示される)がでて先にすすまなかった。

Install Linux Mint起動

デスクトップ上にあしる Install Linux Mintを起動する。

  • 言語を設定
  • インストールのタイプで その他を選択する。

空き領域があれば自動でインストーラがパーティションを切ってくれるとガイダンスには書いてあったが、ここで謎のエラー(???)がでて先に進めなくなる。自分でパーティションをきると先に進めた。先ほどGPartedで切ったパーティションが現れるので、 Changeを選択して、以下を純に割り当てていく。

  • /boot isw_bfahbhfbaf_Volume0p5
  • / isw_bfahbhfbaf_Volume0p6
  • swap isw_bfahbhfbaf_Volume0p7
  • /home isw_bfahbhfbaf_Volume0p8

ブートローダをインストールする場所は、デフォルトのままで(ここでは/dev/sda)

ここを越えたら、あとは順にインストーラにしたがう。

インストールの最後で Fatal Errorが発生する。 このコマンドの実行が失敗したようだ。

./grub-install /dev/sda

この問題の解決方法は以下の記事で解決できる。

しかし、自分はもっとかんたんな方法を見つけた。Boot Repairという Ubuntuのソフトを利用して、問題点を自動的に解決する。手順にしたがうだけなので、楽。

BootRepairは基本的には手順にしたがっていけばよいがブートローダをどこにインストールするか質問されるところで少し困った。先ほどのエントリを参考に以下をしていした。

isw_bfahbhfbaf_Volume0p

BootRepairが完了したら、再起動。これでWindowsとMintのデュアルブートができるはず。

ここまでくるのにいろいろと試行錯誤して、結局10時間くらいかかったけど、なんとかできた。繰り返すけれども、この方法は偶然うまくいったのかもしれないので、手順が正しいかどうかは保証できません。。。

30 Dec 2013, 08:06

[ReText]Linux環境でMarkdownやRestructuredTextをかくためのエディタはこれで決まり

LinuxでMarkdownを書くためのよいエディタを探していたところ、ReTextというツールを見つけたので紹介。

ReTextとは、MarkdownやRestructuredTextをかくためのエディタ。特徴は以下。

  • MarkdownやRestructuredTextでかかれたファイルをリアルタイムプレビューできる。
  • HTML シンタックスハイライト
  • PDF, ODT, HTML, Google Docs へのエクスポート
  • HTML生成

今まではWindows環境で MarkdownPadを利用してブログ記事を作成していた。

畜生、ブログエディタ変更だ!Windows上のMarkDownPadで編集してWordPressに投稿する | Futurismo

Linux環境でも同等の機能を持つものを探してたので、このReTextが利用できそうだ。

Mint Linuxでのインストール方法は以下。

sudo add-apt-repository ppa:mitya57
sudo apt-get update
sudo apt-get install -y retext

Error

以下のエラーが表示されてプレビューを見ることができきない。

ファイルの内容を解析できません。必要なモジュール がインストールされているか確認してください。

コンソールから起動してみるも、こんなメッセージが表示される。

READMEをよくよく読んでみると、Python3.2以上で動作するとのこと。

また、Markdownを利用するには、追加のパッケージが必要とのこと。

システムのPythonのバージョンを調べてみると、Python 2.7.

$ python --version
Python 2.7.5+

Linuxには、現在 Pythonが2種類デフォルトでインストールされているようだ。

$ python3 --version
Python 3.3.2+
$ python --version
Python 2.7.5+

つまり、Python3には markdownがインストールされていなかった。Python3にパッケージをインストールするには、pipではなくてpip3を利用する。

sudo pip3 install markdown
sudo apt-get install python3-pip

これでエラーせずに表示されるようになった。

28 Dec 2013, 13:28

Coursera Algorithms PartIIを受講しました

Couresera Algorithms PartIIを受講しましたので、感想を書きます。

Announcements | Algorithms, Part II

今回のPartIIは、前回のPartIに引き続きです。Part Iを受けたからには、当然 Part IIを受けないわけにはいかない。

[//www.youtube.com/embed/GO8frjxq25I?rel=0]

内容について

前半はグラフ理論をみっちり。後半は、文字列処理や圧縮について。Part Iを受講していたほうがベターだけれども、受講していなくても問題はない。

week1 Undirected Graphs/ Directed Graphs

グラフについての内容。有向グラフ、無向グラフについて。またグラフを検索するために、幅優先探索、深さ優先探索が紹介される。グラフはアルゴリズムのなかでもとくに重要なので、いきなり濃い内容だ。

week2 Minimum Spanning Trees./Shortest Paths

最短経路問題や、最小スパニング木の検索方法。ダイクストラ法、Kraskal法、Prim法などが紹介される。Assignmentは、SeamCarvingという、画像処理技術の実装。これはとてもおもしろかったので、別記事にまとめた。

week3 Maximum Flow/ Radix Sorts

前半は、ネットワークフロー問題と、フォード・ファルカーソンアルゴリズムの紹介。week3のAssignmentは、ネットワークフローを用いて、野球の試合のペナント脱落チームを求める問題。ここまでがグラフ理論。

後半からは、文字列ソートのアルゴリズム(LSD,MSD, 3-way Radix QuickSort)が紹介される。後半は、week6のAssignmentにも関わってくる。

week4

お休み zzz.

文字列検索に関する内容。Googleの予測検索技術はこういうのをふんだんに利用しているのだろうなとおもった。Assignmentは、Boggleというゲームの答えをTries構造を利用したメモ化再帰で解く。これが一番簡単だった。

weel6 Regular Expressions/Data Compression

正規表現とデータ圧縮について。正規表現は、オートマンを利用して正規表現を検出するという仕組みが面白かった。圧縮では、ランレングス法、ハフマン符号化、LZW圧縮のアルゴリズムが紹介される。

自分の大学での専攻は情報理論だったが、理学部だったので実際に圧縮アルゴリズムをプログラミングするようなことはなかった(情報エントロピーの数学的証明とか)。なので、プログラミングを前提としてはなされる今回の講義はとても聞いていて楽しかった。Assignmentは、bzip2で利用されている圧縮方法、Burrows-Wheelerの実装。最後のAssignmentということで、けっこう頑張ったが、パフォーマンスがなかなかあがらなかった。

week7 Reductions/ Intractability

計算量理論、線形計画法、P-NPによるアルゴリズムの分類などなど、アルゴリズムの理論的な基礎が説明される。ここはわからなかった。。。

感想

別のコースと並列で受講していたので、全くスケジュールどおりには終わらなかった。まあ、Sertificationが発行されないのでいいか。Lectureは配信されてすぐにみてたけど、Assignmentは12月の暮れに一気に片付けた。

学習時間は、PartIとあまり変わらなかった。(つまり、Workload: 6-10 hours/weekの倍は時間がかかったという意味)難易度はPartIIのほうが難しく感じた。

PartI,IIを通して、とにかくAssignmentに時間がかかったが、どれも興味深い内容で、とても楽しかった。Assignmentは、80%くらいは点数が取れるのだけれども、残り20%のパフォーマンスの部分がいつも苦戦した。パフォーマンスやメモリ使用量のチューニングを意識してプログラミングをしたのは初めてかもしれない。

Algorithms PartI,IIを通して体系的なAlgorithmsやデータ構造の知識を学習することができたことは、とても有益だ。しかし、知識の消化不良を感じる。大学の講義ということもあり、理論的な部分やトリッキーなテクニックも多かった。理論的な部分は頭に入れてもすぐに忘れる。

しかし、自分は学者ではなくてプログラマを目指すのだ。実践で必要となるスキルは、

  • オーダやメモリの見積もりかた
  • データ構造やアルゴリズムのライブラリの選択方法
  • 簡単なアルゴリズムの実装

などだと思う。DFSやBFSなどはサラッと書きたいものだ。実際にどう使うかという観点から、重要そうなところだけ再度復習しようと思う。

おまけ

エンディングの音楽がとても気に入った。

[//www.youtube.com/embed/SZyT9bayf8o?rel=0]

14 Dec 2013, 11:16

魔法みたいなリサイズ技術!Seam Carvingについて調べてみた

Coursera Algorithmsの課題として、Seam Carving(シームカービング)というアルゴリズムをJavaで実装をした。

写真の縦横幅をトリミングではなくて、見た目的に違和感なくリサイズする技術。2007年に世に出たという、新しめの技術。詳しくはYoutube動画を参照。

[//www.youtube.com/embed/6NcIJXTlugc?rel=0]

アプリなど

iPhoneやAndroidアプリでこういう変換アプリがあればよさそうと探してみたところ、Androiidアプリはすでにある模様。

また、フリーソフトもある。

iPhone写真を変換

というわけで、Javaで実装したコードでiPhoneで撮影した写真を変換してみたので作品紹介。画像データをDAGなグラフと見立てて、端から端で色のグラデーションが少ない部分を幅優先探索で検索するとできる。

ここでは、512x 384 px 画像を、正方形に変換してる。

変換前

beaf_512_384

変換後

beaf_384_384

変換前

cafe_512_384

変換後

cafe_384_384

変換前

sushi_512_384

変換後

sushi_384_383

魔法みたいで面白い!

07 Dec 2013, 23:30

Windowsで コマンドプロンプトからtelnetする!またはアスキーアートでのスターウォーズがスゴイ件

Windows7 でtelnetを利用する方法のメモ。多分8もこれでいける。

今までは、Cygwinを利用してtelnetをしていたが、Cygwin 64bitは telnetをサポートしていないので、別の方法を調べた。

telnetを有効にする

スタートメニューから

コントロールパネル > プログラムと機能 > Windowsの機能を有効化または無効化

を選択。続いて、 Telnetクライアント、にチェック入れる。

有効にするには、Windowsの再起動が必要。

コマンドプロンプトでつかう

コマンドプロンプトで telnetと入力すると、telnetクライアントの画面に移動する。

Welcome to Microsoft Telnet Client

Escape Character is 'CTRL+]'

Microsoft Telnet>

利用方法は特殊なので、helpを参照。

おまけ: スターウォーズ

このサイトへのtelnetがスゴイ!

towel.blinkenlights.nl 23 

 

なんと、アスキーアートでのスターウォーズが見れる!

SnapCrab_NoName_2013-12-8_8-31-53_No-00

SnapCrab_NoName_2013-12-8_8-32-41_No-00

07 Dec 2013, 13:23

Eclipse ADTでつくるAndroidエミュレータ開発環境構築メモ(Windows)

Courseraを通じて、Android開発を勉強しようと思います。

講義では、Android SDKをEclipse込でまるごとダウンロードしてくる方法が紹介されている。

Disk容量が残り8GBしかない自分には、チョット無理ゲーなので、既存のEclipse環境にAndroid SDKをインストールする方法を調べてみた。

Android SDK開発環境の構築作業で自分がやった手順を作業メモメモφ(..)

[toc]

環境

  • Windows 7 64bit
  • Eclipse 4.3 kepler
  • JDK 7

Android SDKとは

Android SDKとは、Android Software Development Kitの略。

Android開発をするためのAPIライブラリやら、その他開発に必要なものがセットになったもの

Eclipseのインストール

なにはともあり、Eclipse All in One Projectから 日本語EclipseJDK環境をまるごと落としてくれる。自分はすでにインストール済みなので、詳細は省略。

JDK 7のインストール

Java開発環境(JDK)をインストールする。現時点(2013)では、Android SDKは、JDK 6を推奨しているよう。ネットの情報では、JDK7 も動作するよう。

以前、JDK7のインストール方法を記事にしているので、基本的にはここを参照。

Android SDKのインストール

まずは、Android SDKのダウンロードページに行く。

青い大きなボタンを押してしまうと、Eclipse込のダウンロードとなるため、下

のほうにある、DOWNLOAD FOR OTHER PLATFORMSを選択。そして、SDK Tools Onlyのしたにあるzipファイル、

  • android-sdk_r22.3-windows.zip

をダウンロード。インストーラ版installer_r22.3-windows.exeもあるけれども、Eclipseからだと、zip版でよい。

ダウンロードが完了したら、適当な場所へ解凍。ここでは以下へ。

C:\android-sdk\android-sdk-windows

Eclipse ADTのインストール

EclipseでAndroid開発を実施するためには、Eclipse Android開発ツール(ADT)のプラグインをインストールする必要がある。

Eclipseのツールバーから

  • ヘルプ > Eclipse マーケットプレイス

を選択。検索欄から、ADT、と入力。Android開発ツールが現れるので、インストール。

SDKマネージャーの操作

Eclipseを再起動すると、先ほどインストールしたSDKのパスを聞いてくるので、入力する。

続いて、SDKマネージャーの起動を要求してくれる。

SDKマネージャーで、追加のSDKをダウンロードする。デフォルトで、アップデートやインストールが必要なものにはチェックがはいる。ここでは、講義に従って、以下をインストール(すでにインストール済みのものも列挙)

  • Tools

    • Android SDK Tools
    • Android SDK Platform-tools
    • Android SDK Build-tools
  • Android 4.3

    • SDK Platform
    • ARM EABI v7a System Image
    • Intel x86 Atom System Image
  • Android 2.3.3

    • SDK Platform
    • Intel x86 Atom System Image
  • Extra

    • Android Support Library
    • Intel x86 Emulator Accelarator

エミュレータの設定

エミュレータ設定する。ツールバー > ウィンドウ > 仮想デバイスマネージャーを選択。新規を選択。

つづけて、エミュレータのスペックを入力していく。ここでは、以下の画像のように入力。

設定が完了したら、開始をクリック。

待つこと数十秒で、エミュレータ起動((o(´∀`)o))

エミュレータの高速化

Intel CPUを利用しているならば、エミュレータを高速化できる。Intel x86 Emulator Accelaratorを利用する。

事前準備として、Intel 仮想化支援機能 Intel VTが有効になっている必要がある。設定方法は、過去記事参照。

以下の場所にあるIntelHaxm.exeを起動して、インストール。

\android-sdks\extras\intel\Hardware_Accelerated_Execution_Manager\IntelHaxm.exe