めまいプログラマーの徒然

小脳出血でめまいをおこしている プログラマの忘備録

Linux Mono はじめの一歩

 どんなプログラムを作るかを決めます。
 メインウインドウにボタンとEntryを配置し、ボタンをクリックする毎にカウンターを更新しその数字を表示します。(数字は 0 ~ 9 まで)

f:id:xskawabe:20180109192958p:plain

ソリューション(プロジェクト)の作成

Monodevelop 起動

メニュー
 新規(N)
  ソリューション
     と選択し

 

プロジェクトの種類に
 その他
   .NET
    を選びます。

    その中で、Gtk# 2.0 プロジェクト C# を指定します。

 

f:id:xskawabe:20180109193322p:plain

 プロジェクト名、ソリューション名を入力し保存するディレクトリをブラウザーで指定します。最初は MainWindow のみが表示されます。これにコンテナ、ウィジェットを張り付けて画面を作成していきます。

f:id:xskawabe:20180109193539p:plain

 

画面の作成

画面右の Toolbox を選択し

Fixed をまず配置する。
次に Button を配置する。
次に Entry を配置します。
Button, Entry の配置順序はどちらが先でもOKです。

f:id:xskawabe:20180109193619p:plain

 最初に Fixed を配置することによりその上に配置するウィジットは好きな所に配置できる。マウスでウィジェットの上部に出てくる をマウスでつまんで好きな位置に移動できます。
(プロパティの Fixed Child Layout の X, Y を変更しても位置は変えられます。)
 画面右の ToolBox, プロパティ, ドキュメント アウトライン はメニューのビュー(V)、パッドをクリックしても選択が可能です。

 (画面上から消えたらメニューから指定してください。)

 

 プロパティ変更するには先ずウィジェットをマウスで選択したのちにプロパティをクリックしてください。

ウィジェット(GtkButton) の大きさを変更する場合は画面の上にある +, - をクリックしてください。

 

 Entry の Text に 『No Click』 と入力しておきますと起動時の画面に反映されます。

 

シグナル(イベント)の登録

 Button をクリックしたのちプロパティを開いてください。プロパティ、シグナル タブのシグナルを選択して Button Signals を選択します。ハンドラに OnClick と名前を登録します。(その右の項目の 後 の意味はよく分かりません?)

 

f:id:xskawabe:20180109194416p:plain


 画面下の『ソース』、『ディザイン』の『ソース』をクリックするとプログラムが
現れますので(なぜか、縦書き見たい!?)


以下のように改造します。

01: using System;
02: using Gtk;
03: 
04: public partial class MainWindow: Gtk.Window
05: {
06: 	public MainWindow () : base (Gtk.WindowType.Toplevel)
07: 	{
08: 		Build ();
09: 	}
10: 
11: 	protected void OnDeleteEvent (object sender, DeleteEventArgs a)
12: 	{
13: 		Application.Quit ();
14: 		a.RetVal = true;
15: 	}
16: 
17: 	int BtnCounter = 0 ;
18: 	protected void OnClick (object sender, EventArgs e)
19: 	{
20: 		// throw new NotImplementedException ();
21: 		if ( ++BtnCounter == 10) {
22: 			BtnCounter = 0;
23: 		}
24: 		entry1.Text = BtnCounter.ToString();
25: 	}
26: }

  メニュー 実行(R) のStart Debug でデバッグを開始できます。また、コンソールより作成したソリューションのディレクトリ内に bin ディレクトリがありその下に Debug / Release (Release が無い場合もあります。)のそれぞれに xs04.exe 実行ファイルがありますのでコンソールより ./xs04.exe と入力しても動作します。

 

最初、わからない事ばかりで本当に『はじめの一歩』となり、余分な時間を取られてしまいました!!

 

Linux Mint に Mono をインストールします。

実行環境のインストール

 mono の実行環境をインストールします。Linux Mintubuntu 系なので簡単にインストールできます。

$ sudo apt-get install mono-complete

入力は上記の通りで、後は色々と自動でインストールされます。(complete だもの)

確認は
$ mono --version

Mono JIT compiler version 4.2.1 (Debian 4.2.1.102+dfsg2-7ubuntu4)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-  project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen

開発環境をインストール

 開発環境はメニューのソフトウェアマネージャ を起動し、検索窓に mono を入れて検索してインストールします。

f:id:xskawabe:20180107194710p:plain

Monodevelop を選択します。

f:id:xskawabe:20180107194815p:plain

インストールボタンを押してインストールします。

f:id:xskawabe:20180107195135p:plain

 

Mint 18.3 (Cinnamon) インストール

Linux (Mint18.3, Cinnamon)をインストールしました。ダウンロード元は国内にないので近くのミラーサーバーにアクセスしてダウンロードしました。

ダウンロード元

(Download を選んで、マシンにあったバージョンを選んで!)

インストールは簡単に行えます。(私の場合はWindows とのデュアルブートにしているので、1台、HDDを用意してそこにインストールしました。)

追加したアプリは
Shutter ....................画面キャプチャ用
Geany .....................簡易IDE
Google Chromium...ウエブ・ブラウザー

変更した点
現在、使っているキーボードは英語キーボードですがCaps と Control キーを入れ替えました。
メニューから

設定→キーボード→レイアウト→オプション を選択し

f:id:xskawabe:20171219121417p:plain

 

f:id:xskawabe:20171219121448p:plain

f:id:xskawabe:20171219121516p:plain

Ctrl キーの位置 にて
Ctrl と Caps Lock を入れ替える にチェックを入れるだけです。


日本語入力は Ctrl + Space で ON/OFF します。
この文章は Cinnamon 上で Geany を使って書きました。

料理

2015/10 に小脳出血で倒れてから約2年経過しました。

仕事(プログラミング)をしなくなって、1日、PCを眺めていました。
最近、大きく変わった点は自分が料理をするようになった。
 妻からボケるから頭を使えと小言のように言われ、はじめた料理、
好きな食べ物を作ろうはじめた。
 料理を始めてみた。ネットには料理レシピを集めたサイトがあり、初心者には
大助かりである。You Tubeにもいろいろ動画がアップされており大いに助かる。
 しかし、料理レシピを眺めて、分からない言葉に出くわすことがあった。

『クレージ・ソルト』

 という言葉を初めて見たときは、これは何だ!と 
スーパーに行けば分かるかなと思い。塩関係かと思い塩売り場で探したけど
発見できず、結局『調味料』売り場にあった、しかも、『マジック・ソルト』と
言う似た名前のものまである。『塩』製品であるが岩塩に調味料が追加されていて
一振りで色んな調味料を振りかけることができるらしい。
『クレージ・ソルト』はアメリカ生まれで、料理する人は殆ど知っていた。

 塩に不順物が混ざっていることらしい。半導体でもシリコンに色んな不順物を混ぜて
特殊な動きをさせているのと同じか!(変なことで関心してしまう)

 塩は調味料

 入院している時、正月を迎えたが新年の1週間後に七草粥が出た。病院
で出る食べものは減塩品で、味が薄くおいしいとは思えない。
 このときの七草粥の横に小袋(塩 0.5 グラム)がついてて振りかけて食べることが
できた。この塩を振りかけて食べたが、塩が食品を味をこんなに変えるとは思いもかけなかった。
 生まれて初めて塩が美味しいを思った。

Visual Studio Code ショートカットキー(Basic)

Go 言語の作成に Visual Studio Code を使用予定です。

理由は

  1. 無料である。
  2. 色々なOSで動作が可能 (Windows, Linux, Mac)
  3. キーによる操作が充実している。(昔の Vz みたいに)
  4. 軽い!!
 標準のショートカットをしらべたら結構な操作が可能である。すぐに全てを覚えるのは無理だけどオイオイ覚えていけばよい!
 
標準 (US キーボード) の場合
[C] : Ctrl  キー
[A] : Alt   キー(左)
[S] : Shift キー
 
No. キー 機能
1 [C]+X Cut(行削除)
2 [C]+C Copy(選択範囲をコピー)
3 [C]+[S]+K カーソル行を削除
4 [C]+[Enter] カーソルのある行の下に行を挿入
5 [C]+[S]+Enter カーソルのある行の上に行を挿入
6 [A]+[↓] カーソルのある行を下に移動
7 [A]+[↑] カーソルのある行を上に移動
8 [S]+[A]+[↓] カーソルのある行を下にコピー
9 [S]+[A]+[↑] カーソルのある行を上にコピー
10 [C]+D カーソル上の単語を選択 (2回目、次も選択)
11 [C]+K [C]+D カーソル上の単語を選択 (2回目、次に移動)
12 [C]+U カーソル のUndo (変更を元に戻す場合は[C]+Z)
13 [S]+[A]+I カーソルを行末に挿入
14 [C]+[S]+L カーソルのある単語をすべて選択する。(すべてを同時に変更可能)
15 [C]+F2 カーソルのある単語をすべて選択する。(すべてを同時に変更可能)
16 [C]+I カーソルのある行を選択する。
17 [C]+[A]+[↓] カーソルを下の行に追加。(続いて入力すると2行同時に追加)
18 [C]+[A]+[↑] カーソルを上の行に追加。(続いて入力すると2行同時に追加)
19 [C]+[S]+] 対応するカッコまでを展開する。
20 [C]+[S]+[ 対応するカッコまでを隠す。
21 [C]+[S]+\ 対応するカッコに移動
22 [C]+] カーソル行にインデントを追加 (自動保存では最適化される。)
23 [C]+[ カーソル行のインデントを削除 (自動保存では最適化される。)
24 Home カーソル行の先頭に移動
25 End カーソル行の末尾に移動
26 [C]+Home ファイルの先頭に移動
27 [C]+End ファイルの末尾に移動
28 [C]+K [C]+C カーソル行をコメント行にする。    (行頭に // を追加)
29 [C]+K [C]+U カーソル行のコメントマークを削除する。(行頭の // を削除)
30 [C]+/ カーソル行のコメントマークを反転する。(なければ追加、あれば削除する。)
31 [C]+[A]+A 選択範囲をコメントにする。(/* ... */ で囲む。)
32 [C]+F 検索開始
33 [C]+H 置換開始
34 F3 次検索
35 [S]+F3 逆順検索
36 [A]+Enter 選択した全てに対応する。
37 [A]+C 大文字/小文字を区別する。
38 [A]+R 正規表現を使用する。
39 [A]+W 単語の検索は全単語/あるいは一部
40 [C]+M TAB キーによるフォーカス移動の開始/停止
41 [A]+Z 行末の折り返し方法の変更
 
 Visual Studio Code のバージョンは 1.13.0 で調べて見たがバージョンのよりショートカットが増えているみたい?また、このショートカットは使うことがあるのだろうかと思うようなものもあって、少しオロオロしている。
 

Go 言語 配列-1

 

Go 言語での配列の定義を見てみます。

単純な配列をはじめ、Slice, map, chanel  などがあります。

最初に単純な配列から調べてみました。

01: package main
02: 
03: import (
04: 	"fmt"
05: )
06: 
07: /******************************
08: **	定数定義
09: *******************************/
10: const (
11: 	Arry_Max = 10
12: )
13: 
14: /******************************
15: **	変数定義( & 配列定義 )
16: *******************************/
17: var (
18: 	i int
19: 	a [Arry_Max]int
20: )
21: 
22: /******************************
23: **	処理 ( Program )
24: *******************************/
25: func main() {
26: 	for i = Arry_Max - 1; i >= 0; i-- {
27: 		a[i] = i
28: 	}
29: 	for i = 0; i < Arry_Max; i++ {
30: 		fmt.Println("Hello, xs 2 -", a[i])
31: 	}
32: }

 

配列へのデータ設定、配列からのデータ表示などが出来ました。こんな単純なプログラムなら簡単ですが、大きなプログラムだと分割コンパイルが必要になりますがどうすれがいいのかな!? (おいおい調べてゆきます。)

Go 言語、開発環境のインストール

順番は逆になりましたが、Go 言語の開発環境をインストールします。

 

 Go言語コンパイラとエディターで開発は可能ですが、チョット楽をしたいので色々とインストールします。
 しかし、重たくなるのを避けるため、エディターには Visual Studio Code (マイクロソフト製)を使用し、そのほかに便利なツールを Git より取得してインストールします。すべて無料なのでダウンロードできます。

1.Visual Studio Code

 ここからより自分のマシーンに対応したソフトをダウンロードします。
今回は Windows 版をインストールしましたが、macLinux 用がそろぞれ用意されています。私は VSCodeSetup-1.12.2.exe をダウンロードしました。

2.Git
Git にある Go 用のツールを使用しますのでダウンロードするため、Git を準備します。Windows 用の Git-2.13.0-64-bit.exe をダウンロードしました。


3.Go 言語
Go 言語のコンパイラー(これが無くては始まりません。)ここから
Windows 用の go1.8.3.windows-amd64.msi をダウンロードしました。これだと後はクリックするだけでインストール可能です。

環境変数
Windows 用の環境変数は自動で設定されます。
 GOROOT C:\Go\
PATH にも以下が追加されています。
 C:\Go\bin


また、コマンドプロンプトで go env を打ち込むと現在設定されてる。環境変数が表示されます。
GOPATH も設定されています。

set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\(*****)\go (ユーザー名)
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
set PKG_CONFIG=pkg-config
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2

参考 URL
Visual Studio Code][Golang][Windows] VSCodeでGoの開発環境を作成する方法まとめ