Visual Studio Code

旦那のWindows10が持ち運びしやすそうたったので、ゲストアカウント作ってもらいました。

さっそくJavaの環境構築。 OracleJDKのインストーラを使用しました。 「環境変数設定する」にチェックを入れていたつもりでしたが、いざ実行してみると、設定されていませんでした。 なぜでしょう。 Windows10だから?ゲストアカウントだから? まあIDEで設定するのでいいや。

IDEですが、Visual Studio Code使ったことなかったので、とりあえずインストールしてみました。 PowerShellがすぐ呼び出せて便利。設定もしやすい。 ですが、やはりJavaIntelliJの方が使いやすいのですぐにIntelliJをインストールして乗り換え。

あ、Visual Studio CodeJAVA_HOMEを設定するのはUser.settingsファイルでできました。 ググればすぐ出てくる。 (あとでリンク貼っておこう.....)

ゲストアカウントだから旦那がいるときじゃないといろいろインストールできないの大変。 そのうち、管理アカウントに変えてくれるそうな。

OpenSUSE Leap42.3へアップグレード

面倒くさがってgraphicalモードのまま、OpenSUSEアップグレードしたらKDEがクラッシュし、アップグレードに失敗、KDEが起動しなくなる、というかえって面倒くさいことになりました。

失敗した経緯と復活までの顛末メモ。

OpenSUSE Leap42.3のアップグレードに失敗

下記の件でibusが起動しないと言いましたが、その現象が再発しておりました。

OpenSUSE 13.2をLeap42.2へアップグレード - memo

毎度cacheとconfigを消すのも面倒くさいし、かといってアップデートしても直らないので、どうせなら最新版であるLeap42.3にアップグレードしてから考えようと思ったのがことの始まり。

CDを焼くのも面倒くさいのでまたもオンラインアップグレードを選択。 オンラインアップグレードの公式ページを参考にしつつ実行していたのですが、multi-userモードにするのがこれまた面倒くさくて、えいやとgraphicalモードのままdupを実行しました。(公式ページにもmulti-userモードに変えておけと書いてあったのに。。。)

結果、途中でKDEがクラッシュ。

慌てた私は何を血迷ったのか再起動。

アップグレードがあかんところで中断されたらしく、見事、愛しのOpenSUSEたんは、起動はできるものの、KDEは動かないし、ネットワークにはうまくつながらないし、zypperもなにやらおかしくなったようでエラーを吐くという可哀想な状態へと変貌をとげました。

とはいえ起動できる状態なのはラッキーです。

そして復活

復活方法はごく単純です。DVDメディアを焼いて、新規インストールしました。

CUI起動はできるので新規インストールせずになんとか復旧させることも考えましたが、こうなったからには新規インストールが一番楽です。 幸いなことに/home以下は別パーティションに切っていたため、/homeのあるパーティションはフォーマットしないように設定しインストールすることで、データは失わずに復旧できるのではと考えた次第です。

さてさてインストールです。

DVDを投入。BIOSを立ち上げ、DVDからブートし、新規インストールを選択。

その後、パーティションの設定画面でエキスパート向け(?)設定を選択。 「さあ頑張ってパーティションの設定するぞー」と意気込んでいたのですが、自分で設定する必要は一切ありませんでした。

最近のOpenSUSEでは、新規インストールの場合でも既にOpenSUSEがインストールされているかを確認し、/homeをフォーマットしないように自動で設定するみたいです(もちろん、ちゃんと自分で確認は必要ですけれども。)昔はフォーマットするかしないかは自分で設定しなければならなかったと思うのですが。。。賢く便利になったものですね。

/homeのフォーマットがされないことを確認後、インストールを選択。 あとは待つだけ。

途中、ユーザ作成画面がありましたが、「既存のユーザを継承する」という選択肢がありましたので、それを選択。昔は/homeをフォーマットしない場合でも、インストール時のためだけの一次的なユーザも作っていた気がしますが、それも必要なくなっていました。

便利なOpenSUSEのおかげで、ぽちぽちと選択するだけで、すぐに元の状態に復旧。

最初からメディアでアップグレードすれば良かったなぁ、と思ったのは内緒です。

教訓

  • オンラインアップグレードをするときはmulti-userモードにきちんと切り替える
  • 今のSUSEたんは賢い、楽。
  • オフラインアップグレードの方が圧倒的に簡単!

Rustメモ

Rustを使ってみた上でのただのメモです。

静的型付け言語

  • 型推論があるため型を明示する必要なし。ただし明示することもできる

変数束縛

  • 変数はデフォルトで「イミュータブル」。つまり値を変更できない。(だから「変数」ではなくあえて「変数束縛」と呼んでいる?)
  • 「ミュータブル」にしたければ、変数をミュータブル宣言(mut)しなければならない。
  • 未初期化の変数があっても警告のみ。ただし、未初期化の変数を使用しようとするとコンパイルエラー。

参照

  • 参照を安全に扱うことができる。
  • 参照はデフォルトでイミュータブル。ミュータブルにするにはmutを指定したうえで渡さなければならない。(例えば、ミュータブルな参照渡しは「&mut 変数名」と書く)

クレート

  • 他の言語ではパッケージとかライブラリと呼んでいるものをRustでは「クレート(=枠箱)」と呼ぶ。
  • Rustのパッケージシステムは、クレートを管理するので「Cargo(=船荷)」と名付けられている。
  • クレートは実行形式かライブラリ形式かに分かれる。(cargo newするときにどちらか指定したよね)

感想

  • コンパイル通すまでが大変
  • 参照周りが複雑。この言語における「参照を安全に扱う」とは「プログラマの意図せぬ動作をさせないようなプログラムが書ける」という意味で合ってるのかな?そうならば、影響範囲を的確に把握し制御したいプログラマにとっては、参照のイミュータブル/ミュータブルがコントロールできるRustに利点を感じるけれども、そうでないプログラマにとっては複雑で扱い難いと感じるかもしれない。
  • トレイトがよく分かっていないので要勉強。トレイトってちゃんと使ったことがないやも。。。実装の再利用するための機構という概念の理解しかできていない。

Cargoによるプロジェクト管理

RustのソースコードはCargoプロジェクトという形で管理できるそうです。

とりあえずよく使いそうなコマンドだけメモ。

新たなプロジェクトを作る

$ cargo new プロジェクト名 --bin

ビルド

$ cargo build

ビルド+実行

$ cargo run

よく使うコマンドがあったら、また追加します。

Rustの環境構築

何か新しい言語を触りたいなぁと思ったので、今更ですがRustを触ってみます。

 

参考文献

 

インストールは公式サイトのインストールページに従って実施しました。

インストール · プログラミング言語Rust

最近は日本語の公式サイトを持つところが多くていいですね。

 

インストール

公式サイトに従って下記を入力。

> curl https://sh.rustup.rs -sSf | sh

途中、3択( 1:デフォルトインストール, 2:カスタマイズインストール, 3:キャンセル)を選ぶところがあったので、何も考えずに1を選択しました。(「1」と入力してEnterキーを押しました)

何事もなく無事インストール完了。

 

~/.bash_profileに勝手にPATH($HOME/.cargo/env)が書かれているので、ログインし直すか、読み直すかすれば無事使えるようになるはず。。。

> rustc --version
rustc 1.25.0 (84203cac6 2018-03-25)

無事インストールできているみたいですね。

とりあえずこれで遊んでみます。

OpenSUSE 13.2をLeap42.2へアップグレード

OpenSUSE 13.2をLeap 42.2へアップグレード

死蔵させていたPCがOpenSUSE13.2だったので今更ですがアップグレードしました。 サポート終了してだいぶ経つので心配していましたが、まだ普通にアップグレードできたので一安心です。

Leap42.1もすでにサポート終了していましたので、一足飛びに42.2にアップグレードいたしました。 そのときのメモです。

参考にしたURL

基本的には、下記リンクを参考にそのまま進めました。

手順

私が踏んだ手順です。 まずあらかじめ最新の状態にアップデートしておきます。

> # zypper update

サードパーティリポジトリが含まれていないかの確認

# zypper lr

入っていた場合は削除します。 そして、古いリポジトリを念の為バックアップ

# cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.Old

リポジトリを42.2のものに書き換え。

# sed -i 's/openSUSE_13\.2/openSUSE_Leap_42\.2/g' /etc/zypp/repos.d/*
# sed -i 's/13\.2/leap\/42\.2/g' /etc/zypp/repos.d/*

リポジトリを新しい物に更新

# zypper --gpg-auto-import-keys ref

アップグレード

# zypper dup

Leapからネットワークがeth0になってるとのことだったので書き換え

#  mv /etc/sysconfig/network/ifcfg-xxx(←環境によりけり)  /etc/sysconfig/network/ifcfg-eth0

再起動して終了。

かと思ったら、mozcが起動しなくなっていました。 下記サイトの通りにしたら無事復活、ほっ。

[opensuse-ja] Leap 42.2 で ibus-mozc などが起動できなくなった場合