インポスター症候群

概要

  • – 能力を示す外的な要因があるにも関わらず自分を認められない。
  • 自分が偽物であると人から思われたくないがために、熱心に働く。
  • 自分の能力や知性を見せたら人から嫌われると考える。

傾向

  • マイノリティに属している人に多い。
  • 女性の方が優位傾向にある。
    • 確かエマワトソンもそうだった気がする。

自分自身に関する疑惑

  • 大学に入り、卒業できたのは自分の実力ではないと考えている。
  • ただ単に家庭環境が恵まれていただけだと考えてしまう。
  • 劣等感が強く、努力を続ける。
  • どこまで頑張っても、自分自身を口だけのペテン師と思ってしまう。

気づき

ある女性に太宰治の「斜陽」を薦めて気づいた。
自分がこの本を好きな理由は、直治が抱いていた劣等感(貴族である自分と庶民である同胞)にどこかで共感していたのかもしれない。

大学時代、酒を飲み、汚らしい恰好をして、下品な話をする自分を演じていた。

自分自身がこれまで、家庭環境が複雑な方と付き合ったり、
問題のある方と付き合ったりするのは、
そういった人たちと付き合うことで仮想的に自分自身を落とし、
劣等感情を補っていたのではないか?
もしかしたらそういう言動をしている自分が本質なのかもしれないが、
デカダンや麻薬に溺れ、散った直治のまねごとをしていたような気もする。
いわゆる「札付きの不良への憧れ」が自分にもあったのかもしれない。

これから

現状として社会的に高くないところにいて、自分がこれまで望んでいた低下層な人物に成り下がっている。

しかし、いざなってみれば、どこかに潜んでいたプライドが顔を出し、上に上がろうとしている。

家族を避けて生きていたが、
自分が嫌悪していたのは家族ではなく自分自身であったと帰省の際に気付いた。
彼らは何も悪くはないし、何不自由なく育ててもらっている。
悩みを複雑化していただけで、単なる劣等感だった。

人は一日に数万回思考するらしい。
プラスのイメージを持ち続けることがどれだけエネルギーを持つことだろう。

生前、祖父が誇り高く生きていたことを知った。
俺もかくあろうと思う。
もちろん驕らず、謙虚で誠実に。 「紳士たれ。」だ。
頭に染み付けて生きよう。

以上

参考文献

インポスター症候群 – Wikipedia

体型について

一件があってから,
食事と睡眠がおろそかになってしまい体重がえらく落ちてしまったらしい。

年末に実家に帰ったときに,心配されてしまった。

一時期,鍛えていた身体も,えらく貧相になってしまった。

Amazfitで睡眠時間や歩数,心拍を管理しているので
せっかくなので同社のスマート体重計を買った。

結果をみると低体重と出たので
意識をして食べて少し体重を増やそうと思う。

筋肉量と体脂肪率をうまく調整して,しっかりとした身体作りをしていこう。

いい男になるよ。俺は。

だから,少し期待していて

以上

【C#】マルチスレッド処理に関して

概要

  • マルチスレッド処理に関するまとめを行う。

マルチスレッド処理

  • マルチプロセスとは別物なので注意!
    • プロセス -> exeファイル
      • スレッド -> プロセス内の処理

並列稼働と並行稼働

  • 並列稼働と並行稼働は違うらしい。
    • 並列稼働: 複数のCPUで同時に処理を行う。
    • 並行稼働: 一つのCPUが複数の処理を切り替えながら動作し、疑似的に複数のCPUがあるように処理を行う。
マルチスレッドの動作原理
マルチスレッドの動作原理

マルチスレッド処理の目的

1. レスポンスタイムの向上

  • 重い処理が行われている間に、他の処理を行わせることで、レスポンスタイムが向上する。
  • 複数のクライアントに対して同時に処理を行うことができる。

2. スループット(単位時間当たりの処理性能)の向上

  • ディスク上にあるすべてのファイルをリストアップするような処理を行うとき、
    ディスクにアクセスしている時間は非常に長くなるが、その間CPUでの処理はほとんどできない。

    • このようなCPUの空き時間がパフォーマンス向上の余地になる。

マルチスレッド処理の実現方法

 
方法 メリット デメリット
スレッド(Thread) ・ 各スレッドに優先順位を設定できる

・ スレッドの一時停止/再開/中断を行うことができる

・ スレッドの作成と破棄を繰り返すとパフォーマンスが落ちる

・ メソッドにパラメータを設定できない

・ メソッドの戻り値を得るのが困難

スレッドプール(ThreadPool) ・ 効率よく複数のスレッドを実行できる

・ object型のパラメータを1つだけ設定できる

・ パラメータがobject型1つのみ

・ メソッドの戻り値を得るのが困難

・ 優先順位付けや待機、停止など、スレッドの細かな制御が難しい

・同時に実行できるスレッドの数が制限されている

デリゲート(BeginInvoke) ・ メソッドに型のあるパラメータを指定できる

・ 簡単に戻り値を得ることができる

・ 優先順位付けや待機、停止など、スレッドの細かな制御が難しい

・ 同時に実行できるスレッドの数が制限されている

タイマー(Timer) ・一定時間間隔でメソッドを実行することができる ・スレッドプールがいっぱいだとうまく動作しない

スレッド

  • Threadクラスで指定したメソッドを別スレッドで起動(実行)する仕組みを提供する。
  • スレッドの生成にはそれなりのリソースが消費されえるため大量にスレッドが処理される場合、パフォーマンスが低下する。

サンプルコード

using System;
using System.Threading;

public class List1_1
{
    public static void Main()
    {
        Thread threadA = new Thread(
                new ThreadStart(ThreadMethod));// (1)

        threadA.Start();// (2)

        for(int i = 0; i < 100; i++)
        {
            Thread.Sleep(5);
            Console.Write("B");
        }
    }

    //別スレッドで動作させるメソッド
    private static void ThreadMethod()
    {
        for(int i = 0; i < 100; i++)
        {
            Thread.Sleep(5);
            Console.Write("A");
        }
    }
}
  • 実行結果
ABBABAABBABAABBAABBABAABABBABAABABBAABABABABABABBABABABABABABABAABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB
解説
  • (1): Threadクラスのインスタンスを生成する。
    • ThreadStartクラスのコンストラクタに別スレッドで動作させたいメソッド名を指定する。
        Thread threadA = new Thread(
                new ThreadStart(ThreadMethod));// (1)
  • (2): 別スレッドによる処理を実行する。
    • ThreadオブジェクトのStartメソッドを呼び出す。

スレッドプール

  • ThreadPoolクラスで提供される。
  • キューに入れられたリクエスト(処理)をスレッドプールが用意しているスレッドにより次々に実行していく仕組み。
  • 一度確保したスレッドのリソースをできる限り再利用するように設計されている。
    • スレッドで問題になっていたパフォーマンス低下が解消される。

サンプルコード

using System;
using System.Threading;

public class List2 {
    public static void Main() {
        // ThreadMethodをスレッドプールで実行できるように
        // WaitCallbackデリゲートを作成
        WaitCallback waitCallback = new WaitCallback(ThreadMethod);// (1)

        // スレッドプールに登録
        ThreadPool.QueueUserWorkItem(waitCallback,"A");// (2)
        ThreadPool.QueueUserWorkItem(waitCallback,"B");// (3)

        Console.ReadLine();
    }

    private static void ThreadMethod(object state) {
        for(int i = 0; i < 100; i++){
            Thread.Sleep(5);
            Console.Write("{0}",state);

        }
    }
}
  • 実行結果
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB
解説
  • (1): スレッドプールで使用できるようにデリゲートを作成。
    • 処理を行いたいメソッドを引数としてWaitCallbackオブジェクトを作成する。
WaitCallback waitCallback = new WaitaCallback(ThreadMethod);
  • (2): スレッドを開始する。
    • ThreadPool.QueueUserWorkItemメソッドを使用する。
      • 引数は、第一引数にデリゲート、第二引数にobject型のパラメータを指定すること。

デリゲート

  • デリゲート=メソッドの呼び出しをラッピングしたもの
  • デリゲートを通じて間接的に呼び出すことができる。
  • デリゲートに登録されたメソッドを実行するには、普通に実行するInvokeメソッドのほかに、
    別スレッドでメソッドを実行するBeginInvokeメソッドが使用できる。

    • デリゲートは上述したスレッドプールを利用して、登録されたメソッドを実行するという仕組みになっている。

タイマー

  • Timerクラスを利用して実現する。

参考サイト

連載.NETマルチスレッド・プログラミング入門

【Oracle】シノニムについて

引継ぎ相手がお休みなので、業務中に個人的に気になった技術に関して記事を書いたので投稿。

概要

  • シノニムに関する内容をまとめる。

シノニム

概要

  • あすスキーマオブジェクト、非スキーマオブジェクトへのエイリアスである。
スキーマについて
  • その前にスキーマって何よ?ってはなし。
  • マニュアル曰く、“データの論理構造の集合”である。
スキーマオブジェクト
  • エンジニア同士で、[スキーマ]と言うときこれを指すことが多い。
    • 一部抜粋なので注意。
      • 全部みたけりゃコレを参照。
名称 DDL
CREATE TABLE
インデックス CREATE INDEX
ビュー CREATE VIEW
トリガー CREATE TRIGGER
演算子 CREATE OPERATOR
順序・シーケンス CREATE SEQUENCE
シノニム CREATE SYNONYM
非スキーマオブジェクト
  • ユーザが作成できるが、スキーマに分類されていないもの
    • シノニムがスキーマオブジェクトで、
      パブリックシノニムが非スキーマオブジェクトなのはなぜだろう?

      • 共有物は非スキーマオブジェクト説~
名称 DDL
ユーザ CREATE USER
プロファイル CREATE PROFILE
ロール CREATE ROLE
表領域 CREATE TABLESPACE
コンテキスト CREATE CONTEXT
ディレクトリ CREATE DIRECTORY
パブリック・シノニム CREATE PUBLIC SYNONYM

プライベート・シノニム

概要

  • プライベート・シノニムとは、ある特定のユーザだけに所有された別名である。
  • シノニムの代表的な利用法として下記の二つがある。
  1. 表のオーナ(管理者)とユーザ(閲覧者)を切り分ける。
  2. 複数ユーザでスキーマを共有する。
  • 1.の用法でシノニムを利用するときに、プライベートシノニムを利用する。

文法

CREATE SYNONYM スキーマ名.シノニム名 FOR ユーザ名.テーブル名;

サンプル

-- ADMIN に接続
CONNECT ADMIN/admin_password
 
CREATE TABLE TEST_TABLE
(
    TEST_COLUMN VARCHAR2(10)
);
GRANT SELECT ON ADMIN.TEST_TABLE TO WORKER ;
CREATE SYNONYM WORKER.TEST_TABLE_ALIAS FOR ADMIN.TEST_TABLE  ;
--                    ↑ 通常は同じ名前にする                
-- CREATE SYNONYM WORKER.TEST_TABLE FOR ADMIN.TEST_TABLE  ;
-- -- DROP SYNONYM WORKER.TEST_TABLE
-- WORKER に接続
CONNECT WORKER/yyyy
 
SELECT * FROM ADMIN.TEST_TABLE ;
SELECT * FROM TEST_TABLE_ALIAS  ;

パブリック・シノニム

概要

  • パブリックシノニムはPUBLICという実体のない特別なユーザグループが所有するシノニムである。
  • PUBLICが所有するシノニムは、すべてのユーザに対して開放されている状態を表す。

DUAL表

  • パブリックシノニムの代表的なものとして、DUAL表がある。
  • DUAL表は、すべてのユーザに最初から存在しているように見えているが、実はSYSユーザの所有物である。
  • 下記のSQLで生成されている。
CREATE PUBLIC SYNONYM DUAL FOR SYS.DUAL

参考サイト

シノニム – オラクル・Oracleをマスターするための基本と仕組み

以上

深夜のファミレスの話

ちょっと眠くなってきたし,しんどいので息抜きに書き物。

深夜(っていうかもう朝だけど)のファミレスにいると,本当にいろんな人がいる。

いつも高校時代の野球の話をしているおっさんとか,テスト前の学生とか,
喉ガラガラのスナックのお姉さんとか,変な宗教にはまってる(多分)おばさんとか,スマホゲームを楽しそうにしているオッサン集団とか結構面白い。

けど,皆,会社や社会,あるいは誰かの悪口を言っている。

別にそれが悪いわけではないけれど,俺はそうはなりたくないと思った。

誰かや,社会の不平不満を言ったところで,何も変わらないし,
まして,こんなところで愚痴ったところで体力を消耗するだけだ。
むしろ,悪化するだけだと思う。

解決策を考えて相談するならいいが,
共有したところで何も起こらない。

人生から逃げてはだめだ。傷の舐めあいなんかしても何も変わらない。
自分を取り巻く環境はすべて自分が作り出したものだ。
「共有するなら楽しい話を」
きっとそれが最低限のマナーだと思う。

っていう俺もブログにこんなこと書いてるのは同じことしてるのかな?

Seated back on the couch grumbling is not the way
– [TV Maniacs] ELLEGARDEN

 

あともう少しだけ頑張ろう。

以上

[MySQL]データベースの保管場所

本に倣って学習を進めていくうえで,サンプルデータベースが入っていなかった。

公式サイトからデータベースのインポートを行ったのでメモ

ファイルの実体

ファイルの実体は,C:/xampp/mysql/dataにあった。
my.iniの[mysql].datadir項目を参照すればわかる。

# The MySQL server
[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"

公式サイトからサンプルデータをダウンロード

https://dev.mysql.com/doc/index-other.htmlからダウンロードを行う。

解凍と実行

$unzip world.sql.zip
Archive: world.sql.zip
inflating: world.sql

解凍後のsqlファイルを実行。

# mysql -u nekonisi -p< world.sql
Enter password: *********

実行後確認

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| book_diary_db |
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
| test |
| world |
+--------------------+
7 rows in set (0.00 sec)

文字コードとか大丈夫かな?

以上

【MySql】文字化け解消した

深夜のファミレスで,ヤリチンが女達にガチ説教食らっている横で文字化け解消した。

SHOW VARIABLES LIKE '%CHAR%';

これで環境内の文字コードを確認できる。
下記みたいな感じ。

| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | cp932 |
| character_set_connection | cp932 |
| character_set_database | cp932 |
| character_set_filesystem | binary |
| character_set_results | cp932 |
| character_set_server | cp932 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)

で,ここからが本題。
これらの設定は,テーブル作成時に活きてしまうので
設定を行った後に,テーブルの再作成,データベースの再作成を行う必要がある。

または,ALTERコマンドで設定を変更する必要がある。

ALTER DATABASE データベース名 DEFAULT CHARACTER SET 文字コード

こんな感じ。

 

ちなみに各種設定項目の意味は,下記の通り

項目名 意味
character_set_client クライアントから送信する際の文字コード
character_set_connection クライアントから送信した文字コードの変換先
character_set_database データベースの文字コード
character_set_filesystem ファイルシステムの文字コード
character_set_results クライアントへの結果送信に使用する文字コード
character_set_server サーバの文字コード
character_set_system システムで使用する文字コード
character_sets_dir 文字コード設定が保存されているフォルダの場所

参考にしたサイト

よくよく聞いたら,女が学校辞めて働かずに彼氏の家に入り浸ってて,
家事もしないうんこで
男はサッカー日本代表まで行ったけど,ケガで挫折して高校中退してしまったが,めげずにきちんと働いて,その上,女を養ってるクソイケメンだった。

女友達だと思ってたらご親族の方々で,女に対する説教だった。

イケメン,もっとまともな女性とお付き合いしたほうがいいと思うよ。
その女,口悪いし,自分に甘いし,その上,やべえ位アホだぞ。

[XAMPP]日本語の文字化け対策

XAMPPのMySQLで勉強をしているのだけれども,
日本語文字列が???と表示されているので解消法を記述。

xamppの管理画面からMySQL > Configをクリック

my.iniを下記のように修正。(デフォルトのエディタがVimだったので優越感)

18行目~22行目

[client]  
# password = your_password  
port = 3306  
socket = "C:/xampp/mysql/mysql.sock" 
default-character-set = utf8

151~156行目

## UTF 8 Settings 
init-connect=SET NAMES utf8 
collation_server=utf8_unicode_ci 
character_set_server=utf8 
skip-character-set-client-handshake 
character_sets-dir="C:/xampp/mysql/share/charsets"

158~161行目

[mysqldump] 
quick 
max_allowed_packet = 16M 
default-character-set = utf8

163~167行目

[mysql] 
no-auto-rehash 
# Remove the next comment character if you are not familiar with SQL 
#safe-updates 
default-character-set = utf8
  • すでに作成してある行には反映されないので作り直す。
    早めに気づいてよかった。

修正前

MariaDB [dekirusample]> select * from members; 
+-------+------+------+ 
| memno | name | pref | 
+-------+------+------+ 
| 1 | ???? | ??? | 
| 2 | ???? | ??? | 
| 3 | ???? | ??? | 
| 4 | ???? | NULL | 
+-------+------+------+ 
4 rows in set (0.01 sec)

修正後

直らなかった…。

再チャレンジ

どうやらxamppのshellの文字コードはcmdに引っ張られるらしい,
C:\xampp\xampp_shell.batにchcp 65001を記述し再起動。

MariaDB [dekirusample]> select * from members; 
+-------+------+------+ 
| memno | name | pref | 
+-------+------+------+ 
| 1 | ```` | ``` | 
| 2 | ```` | ``` | 
| 3 | ```` | ``` | 
| 4 | ```` | NULL | 
+-------+------+------+ 
4 rows in set (0.00 sec)

違う感じに文字化けた。

どうしても直らないので後日調査,
本質じゃないところでつまづいているなぁちくしょー

以上

GithubPages minimal themeの設定項目

公式のGithubリポジトリより抜粋

Customizing

Configuration variables

Minimal will respect the following variables, if set in your site’s _config.yml:

title: [The title of your site]
description: [A short description of your site's purpose]

Additionally, you may choose to set the following optional variables:

logo: [Location of the logo]
show_downloads: ["true" or "false" to indicate whether to provide a download URL]
google_analytics: [Your Google Analytics tracking ID]

設定値は,ダブルクォーテーションで区切ること

 

以上

 

MySQLの勉強

MySQL用のGithubPageを作成した。

GithubPage

kindle unlimitedの本の内容をまとめていく。
少しずつ前に。

以上