なんじゃくにっき

プログラミングの話題中心。

Rust 構文

Rust 構文

0.12時点のもの

関数

・関数はfnで定義する。 ・関数名の後ろの『{』から『}』までが関数の本体。 ・C言語などと同じく実行時はmain関数から実行される。

fn main() {
  println!("hello?");
}

・関数名の後ろの()はArity(引数の個数)が0でも省略できない。

// これはエラー
fn main {
  println!("hello?");
}

・各行はセミコロン『;』で終わるが関数の最後の行はセミコロンを省略できる。

// 最後のセミコロンは省略できる
fn main() {
  println!("hello?")  
}

コメント

// 単行コメント

/*
 複数行コメント
*/
fn main() {
  println!("hello?") ;
}

文字コード

fn main() {
  println!("☃")
}

UTF-8使える

・単行コメントは//

複数行コメントは 『/』から『/』の間。

Akka meetup

akka meetup - connpass

Akka meetupに行ってきました。 歌舞伎座タワーのドワンゴさんにお邪魔しました。 内容は偉い人が詳しく解説付きで書いてくれそうなのでサボります・・

コミッタのKonrad Malawskiさんのスライドは日英併用で、 ゆっくり喋ってくれたので英語聞き取れたし分かりやすかった。

Rust Samurai 4

先日Rust始めたばかりですが、 Rustについての勉強会のRust Samurai 4に行ってきました。 (半年に1度くらい開催?)

Rust Samurai 4 : ATND

Mozilla Japanさんにお邪魔するとのことなのでFirefox Tシャツ着て行きました。

セッション

自己紹介

全員が軽く。 C/C++erが多かった。

Road to Rust 1.0を追う

@Dubheadさんのセッション。

http://blog.rust-lang.org/2014/09/15/Rust-1.0.html について。

年内に1.0が出るっていう話。

後方互換性が保たれるようになる ・GCとかのライブラリが標準から外れる

OwnershipとMove semanticsについて(リベンジ)

@saneyuki_sさんのセッション。

メモリと変数は1:1で対応していてメモリの所有者の変数は1人。 他の変数の値を読み書きするにはBorrowしないといけない。 とかそのへんのメモリの安全性の仕組みの話。

クロージャとライフタイムについて

@chikoskiさんのセッション

クロージャー駆使したプログラム書こうとするとライフタイムの仕組みに苦しめられる。 関数合成とかカリー化とか部分適用とかないから関数型言語っていうより C++に関数型のエッセンスがふりかけられた言語(?) 1.0出るまでにクロージャの実装が変わるとのことなのでそれに期待。

Rustを実プロダクトに投入し****話

@rail44さんのセッション。

Fluentdで使うようにMessagePackのシリアライザ実装したとか。 本番環境で動かそうとするとライブラリのバージョンが古くて動かなかった。

じゃんけん大会

なぜかRustの勉強会なのに放出されるgolangグッズ達 !? gopher Tシャツいただきました。 ありがとうございます!

Rustはじめました

Rustと言うプログラミング言語をはじめました。

The Rust Programming Language

Rust (プログラミング言語) - Wikipedia

Mozzilaが開発している言語で、文法はC++ライク、 レイヤーとしてもC++くらいの感じ。

比較的低レイヤーな言語でありながら、 関数型言語からの機能を色々導入していたり、 並列実行に関する機能に関してはErlangを思い起こしたりする、 ってのが勝手な第一印象。

新しい言語で、言語仕様が結構変わったりするので、 実用目的に使うにはまだまだ怖いかな。

特徴

メモリセーフ
関数型言語っぽい機能

・型クラス

・パターンマッチ

・代数的データ構造

型推論

インストール

バージョンとか考えずにインストールするだけなら

curl -s https://static.rust-lang.org/rustup.sh | sudo sh

で一発。 rustc -v

で、この記事書いている時点ではバージョン0.12.0-nightlyがインストールされた。

Ubuntuにemacsインストール

1. インストール

sudo apt-get update
sudo apt-cache search emacs
sudo apt-get install emacs24-lucid

この記事を書いている時点で24.3が入りました。

2.起動

2.1

XならLauncherからemacsと入力して検索。

2.2

CUIなら

emacs -nw

Ubuntuにバックアップ用HDDを増設

Ubuntu 14.04 でデータバックアップ用HDDを増設してバックアップまで行った記録です。

1. HDDドライブを物理的に接続する

当たり前ですね。 これがなければ始まりません。

2. gpartedインストール

パーティション管理ソフトのgpartedをインストールします。

sudo apt-get install gparted

3. gpartedでパーティション設定

メニューの デバイス -> 新規パーティションの作成 を選択。

画面下部のリストの未割り当てを選択して全領域を

・基本パーティション

ファイルシステム: ext4

に。

4. マウント設定

4.1 マウントポイント作成

マウントしたい場所にディレクトリ作成します。

sudo mkdir /mnt/backup
4.2.1 GUIで設定する場合

Launcerの『コンピューターとオンラインリソースを検索』を起動。 Diskと入力すると検索される『ディスク』を起動。 表示されるデバイスから設定したいHDDを選択。 歯車2つのアイコンで設定。

自動マウントオプションはオフにします。 デフォルトではマウントオプションは /mnt/%長ったらしいUUID% になっているので自分で変えます(/mnt/backupみたいに)。 識別名はUUID=... となっているのを選択します。

OKを押すと/etc/fstabに反映されます。

4.2.2 CUIで設定する場合

sudo gedit /etc/fstab で編集。

UUID=xxxxxxxxxxx /mnt/backup auto nosuid,nodev,nofail 0 0 みたいなのを追記して保存。

4.3 マウント
sudo mount -a

でマウントされるのを確認。

rsyncでバックアップ

バックアップの方法は色々ありますが今回はrsyncにしました。

参考: UNIXの部屋 コマンド検索:rsync (*BSD/Linux)

/home以下をrsyncバックアップするなら

sudo rsync -av --delete /home/ /mnt/backup

手動で2回実行して2度目はすぐ終わることを確認します。

定期的に実行するならこのあとcronなどお好みで。

MacにEmacsをインストール

1. SourceFourgeからdmgインストールして入れる

MacEmacs JP プロジェクト日本語トップページ - SourceForge.JP

リンク先から Emacs-24.3-with-inline-patch-R1 MacOSX みたいな名前のを選んでダウンロードしてインストール

CentOSにemacsをインストールする

CentOSemacsをインストールします。

1. yumで入れる

yum install emacs

はい。コマンド一発です。 でもこれで入れるとバージョンがちょっと古いのです・・

この記事書いている時点だと最新版が24.3に対してインストールされるのは23.1.1

2. ソースから入れる

最新版が欲しい場合はソースからインストールします。 既にemacsが入っている場合は先に削除しておきます。

yum remove emacs

ビルドに必要なものをあらかじめ入れておきます。

yum install wget gcc make ncurses-devel

↓からソースをダウンロードしてインストールします http://core.ring.gr.jp/pub/GNU/emacs/

2.1 GUIいらない(テキストモードonly)の場合

wget http://core.ring.gr.jp/pub/GNU/emacs/emacs-24.3.tar.gz
tar zxvf emacs-24.3.tar.gz
cd emacs-24.3
 ./configure --without-x --with-x-toolkit=no --with-xpm=no --with-jpeg=no --with-gif=no --with-tiff=no --with-png=no --without-selinux
make                      
make install

ガチでemacs初心者が開発環境構築するまで

背景

おっさんですがemacsを使いこなせるようになりたいと思いました。 マルチプラットフォームで使えるエディタ、ということならEclipseに逃げてしまえばいいんですが、 GUIないと使えないのと、起動が重いので別のも覚えようかと。

周りにはvi(m)使いが多いのでどうせなら少数派で・・というのは半分冗談半分本気で。

手順

1. インストール

CentOSにemacsをインストールする - なんじゃくにっき2

MacにEmacsをインストール - なんじゃくにっき2

Ubuntuにemacsインストール - なんじゃくにっき2

まだまだ途中!

CentOS 6.5から7.0へアップグレード!

下記記事参考にさせて頂きました。 他力本願。

CentOS 6.5 から CentOS 7 にアップグレードする: ある SE のつぶやき

CUI部分はそのまま動いたが、 GUI部分は動かなかったり、表示がおかしかったりするので 自分でちょろちょろ直していった。

解像度おかしい -> 設定から直す 日本語入力できない -> 入れ直し Google Chrome動かない -> 入れ直し