ゆるふわエンジニアのブログ

やったこと、調べたこと等をつらつらと書いていくかもしれません。

透明または半透明なFormを作成(.Net)

透明または半透明なFormを作成する方法です。
FormクラスのOpacityプロパティへ不透明度を設定すると、
透明または半透明なFormが作成できます。
規定値は1.00(不透明)で、0を設定すると透明に、
0.5を設定すると半透明になります。

下記サンプルコードはC#

Form f = new Form();

f.Opacity = 0;   //透明
f.Opacity = 0.5; //半透明
f.Opacity = 1.0; //不透明

f.Show();

パラメータのIN/OUTと値/参照渡し(Oracle、ストアド)

ストアドプロシージャの関数やプロシージャで渡す、
パラメータのINやOUTの値/参照渡しでハマったのでメモ。

どうやら、仕様は下記の通りになっているようです。

パラメータモード 値渡しか参照渡しか
IN 参照渡し
OUT 値渡し
IN OUT 値渡し

OUTやIN OUTの時でも参照渡しにしたい場合は、
パラメータモードの後ろに
NOCOPY
を付けるとできるようです。
以下、例。

PROCEDURE HOGE(ARG IN OUT NOCOPY NUMBER)
IS
  -- 変数等の宣言
BEGIN
  -- 何かしらの処理
END;

一連の処理の流れでINで渡している情報を
クリア(NULL代入)しないようにしましょう。

CoreOSインストール

DockerでアレコレするためにCoreOSをインストールしたので、
備忘録的な感じでメモ。

内容は下記の通りです。

  1. CoreOSのISOイメージ入手
  2. インストール
  3. インストール直後に行った設定


1. CoreOSのISOイメージ入手
下記ページの「Download Stable ISO」と表示されている赤いボタンをクリックするとダウンロードできます。
サイズは約250MB、他のディストリビューションと比べて小さい!
coreos.com

2. インストール
今回はVMWare Playerを使用し、仮想環境へインストールしました。
設定は下図の通りです。
f:id:j_levia:20161112233358p:plain
公式に
> A mininum of 1024M of RAM is required to boot CoreOS via ISO.
と書いてあるから、RAMは1GB必要だな。
後は、細々とした設定をしたくないからネットワーク設定をブリッジ接続にしよう。
という感じでやっています。

3. インストール直後に行った設定
SSH接続できるようにするため、下記コマンドを実行しユーザのパスワードを変更。

core@localhost ~ $ sudo passwd core

これ以外の設定は、必要に迫られたら追々行う予定。
(今回は勉強用にとりあえずDockerを使う環境が欲しいため、細かいことは後回し。)

これらの設定でSSH接続が行えるようになり、
かつDockerが動いているので勉強用の環境としては十分だと思います。

Docker for Windowsのインストール

Docker for Windows(Docker Toolbox)をインストールしてみたので、手順をメモがてら紹介していきます。
簡単なことをやるだけなら、これで事足りるのかも...

インストール環境はWindows8.1(64bit)です。
システム要件に関しては、Windows8.1以外は紹介しませんので、
他のOSをご使用の方は最後に記載する参考資料のページを参考してください。


1. システム要件の確認
タスクマネージャのパフォーマンスタブから、
CPUの仮想化が有効になっていることを確認する。
(自分の環境では初期状態が有効だったので、別途設定は不要かも?
必要なら、別途記事投下予定。)
PCのスペックを晒すと人権警察がこわい。
f:id:j_levia:20161112204721p:plain:w400

2. Docker Toolboxのダウンロード
下記ページへアクセスし、ウインドウズマークの方のDownloadボタンをクリック。
Docker Toolbox | Docker
f:id:j_levia:20161112205216p:plain

その先で、Downloadsの下にあるインストーラをクリックし、保存。
(バージョンは2016/11/12時点のもの。)
f:id:j_levia:20161112205222p:plain

3. Docker Toolboxのインストール
インストーラをクリックすると下記画面が起動するのでNextをクリック。
f:id:j_levia:20161112205900p:plain

Nextをクリック。
f:id:j_levia:20161112205909p:plain

Nextをクリック。
f:id:j_levia:20161112205917p:plain

Nextをクリック。
f:id:j_levia:20161112205927p:plain

Installをクリック。
f:id:j_levia:20161112205937p:plain

しばらくするとインストールが終了するので、Finishをクリック。
このとき、「View Shortcuts in File Explorer」のチェックは外しておいても良いです。
(チェックすると、ショートカット作成先のフォルダが開かれる。)
f:id:j_levia:20161112205945p:plain

ここまで作業が終わると、デスクトップに2つのアイコンが作成されます。
f:id:j_levia:20161112205952p:plain

これで、インストール作業は終わりです。
次は動かしてみましょう。

4. Docker Toolboxの起動
Docker Quickstart Terminalをクリック。
この時、Virtual Box Interface関係でPCへ2回変更が行われ、
UACのダイアログが表示されるが両方ともはいをクリック。
しばらく待つと、下記の画面が表示される。
f:id:j_levia:20161112210502p:plain

5. Docker Toolboxの動作確認
無事起動できたら、みんな大好きHelloWorldで動作確認を行いましょう。
docker run hello-world
と入力し、Enterキーを押したら「Hello from Docker!」と言ってもらえます。
これで、アレコレ行う準備ができました。
f:id:j_levia:20161112210856p:plain
f:id:j_levia:20161112210903p:plain


インストーラについて
「何を使ってインストーラを作成しているんだろう...」と思い見てみたところ、
どうやらInno Setupを使用して作成しているようですね。
Inno Setup、商用/非商用関係無く無料でインストーラを作成できる上に
コーディングでアレコレできるので良いです。
これについても、どこかで話ができたらいいな...
f:id:j_levia:20161112211045p:plain



参考資料
Docker for Windows のインストール
Docker for Windows のインストール — Docker-docs-ja 1.12.RC ドキュメント



SQL文を駆使し、横持ちのデータを縦持ちにする(Oracle)

SQL文を駆使し、横持ちのデータを縦持ちにする方法について紹介していきます。

下記のデータを元に、どうSQL書けばいいのか見ていきましょう。
(下記データは適当です。)
テーブル名:TEST

ID PARA1 PARA2 PARA3 PARA4
0001 1 2 3 4
0002 5 6 7 8
0003 9 10 11 12

下記の様に、単純にUNION ALLで結合でしていけば横持ちを縦持ちに変換できます。

SELECT PARA1 FROM TEST
UNION ALL
SELECT PARA2 FROM TEST
UNION ALL
SELECT PARA3 FROM TEST
UNION ALL
SELECT PARA4 FROM TEST

この時、SELECT内で指定している列の型がすべて同じでないと
エラーが出るので注意してください。

GitLabからの通知メールにGmailを使用する方法(CentOS)

GitLabからの通知メールにGmailを使用する方法を紹介していきます。
設定は大きく分けて下記の2つがあるので、それぞれ説明していきます。

  1. Gmail側の設定
  2. GitLab側の設定


1. Gmail側の設定
使用したいGmailアカウントでログインした後、下記URLへアクセスします。
https://www.google.com/settings/security/lesssecureapps
すると、下記画像のページが表示されるので、
安全性の低いアプリのアクセスをオフからオンへ変更します。
(赤枠参照。)
f:id:j_levia:20161105221947p:plain
Gmail側の設定は以上です。


2. GitLab側の設定
GitLabの設定ファイル
/etc/gitlab/gitlab.rb
を開き、それぞれ下記の項目を下記の通り編集する。
Gmailのメールアドレス、メール差出人として表示する名前、
Gmailのパスワードはそれぞれ設定してください。

 gitlab_rails['gitlab_email_enabled'] = true
 gitlab_rails['gitlab_email_from'] = 'Gmailのメールアドレス'
 gitlab_rails['gitlab_email_display_name'] = 'メール差出人として表示する名前'
 gitlab_rails['gitlab_email_reply_to'] = 'Gmailのメールアドレス'
 gitlab_rails['smtp_enable'] = true
 gitlab_rails['smtp_address'] = "smtp.gmail.com"
 gitlab_rails['smtp_port'] = 587
 gitlab_rails['smtp_user_name'] = "Gmailのメールアドレス"
 gitlab_rails['smtp_password'] = "Gmailのパスワード"
 gitlab_rails['smtp_domain'] = "smtp.gmail.com"
 gitlab_rails['smtp_authentication'] = "login"
 gitlab_rails['smtp_enable_starttls_auto'] = true
 gitlab_rails['smtp_tls'] = false
 gitlab_rails['smtp_openssl_verify_mode'] = 'none' # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html

設定ファイルの編集が終わったら保存して閉じ、
最後に設定内容の反映を下記コマンドにて行いましょう。

[root@localhost git_test]# gitlab-ctl reconfigure


以上で、GitLabからの通知メールにGmailが設定されるようになります。




参考資料
GitLab Documentation
https://docs.gitlab.com/omnibus/settings/smtp.html#gmail

GitLabのURL変更方法(CentOS)

GitLabのURL(HTTPポート)変更方法について紹介していきます。
「GitLabへアクセスする際のURLを変更したい!」といった時に行う設定となります。

本記事は、あくまでも"GitLab側のポート変更設定を紹介"するだけであり、
ファイアウォールの設定については一切触れていないです。

環境は、CentOS6.7 64bit(仮想環境)です。
以降紹介する方法はすべて、スーパユーザモードで操作しています。

以下、設定方法。

GitLabの設定ファイル
/etc/gitlab/gitlab.rb
を開き、
external_url 'http://gitlab.example.com'
と書かれた行の'http://gitlab.example.com'部分を書き換えます。
(external_url...の行は上から6行目あたりにあります。下記画像の赤枠参照。)
f:id:j_levia:20161105213350p:plain

このとき、ポート番号を省略すると標準の80が使用されるようです。
また、IPアドレス指定でアクセスする場合は、ドメイン部を"localhost"と設定すると、
IPアドレス指定でアクセスできるようになります。
IPアドレスが192.168.1.100のマシンで
external_url 'http://localhost'
と登録すると、"http://192.168.1.100"でGitLabへアクセスできるようになり、
ドメインは"HogeHoge.com"を、ポートは8080を使用したいとなると、
external_url 'http://HogeHoge.com/8080'
と設定したら良いというわけですね。

設定ファイルの編集が終わったら保存して閉じ、
最後に設定内容の反映を下記コマンドにて行いましょう。

[root@localhost git_test]# gitlab-ctl reconfigure

これにて、GitLabのHTTPポート変更は完了です。