TanabataNikki's diary

主に技術的なことを書きます。当面は高校の化学を復習するところからはじめます。

世の中の少し不思議を探してみる

脱法ドラッグ

脱法ドラッグが事件を起こしている。行政は新名称「危険ドラッグ」を採用するそうだ。

脱法ドラッグにはいくつもの種類が存在する。薬事法で違法指定されているもので1000種類を超える。

 

  • ナチュラルドラッグ系:

マジックマッシュルームマリファナの亜種。カンナビノイドと類似した分子構造の物質を人工的に作ったもの。

f:id:TanabataNikki:20140726222602p:plain

  • フェネチルアミン系:

アンフェタミン、MDMAと同じ構造をもった化学物質。ほとんど麻薬指定されている。

f:id:TanabataNikki:20140726223345j:plainα-PVP

もはや、数えきれないくらいある。

フェネチルアミン統一命名法 - 嗜好性薬物の世界

 

今時の時代は、覚せい剤にしろお酒にしろ、車に乗る前には隠れてこっそりやるもんだが、合法と思い込んでいるものだから、どうどうと吸ってから運転する。

 

今回、ネットでちょっと調べたくらいだと多くの脱法ドラッグはすでに、違法薬物に指定されていたことだ。

 

脱法ドラッグをつくる側のビジネスモデルは、化学式をちょっとだけ変えて、どんどん新種をつくる。副作用(最悪死に至る)や、効能(恍惚感)なんかを気にせずに格安で売りまくる。結果評判がよいものを大量生産し、薬事違法指定される前に撤退する。というもの。

 

製薬会社が、何年もかけて、研究開発費を投入しているのとは大きな違いだ。

人間の作り方

この一覧表の続きです。

次は、K, Na, Clと続きます。

 

カリウム(K)イオンは細胞内液に、ナトリウム(Na)イオンは細胞外液にあって、細胞膜の浸透圧の調整をしています。そして、その電位差をつかいイオンチャンネルという穴から伝達物質を出入りさせて細胞のエネルギー源になっています。

 

この電位は、脳細胞では、神経を発火させ、心臓ではペースメーカをやっています。カリウム-ナトリウムポンプの電気が、全身を操っています。

 

塩素(Cl)は、まずは胃液が塩酸(HCl)として、口から入ってきたものを強力に溶かします。白血球が異物に対して攻撃するものの一つが次亜塩素酸です。

体内にはカリウム、ナトリウム、カルシウムなど陽イオンのものが多すぎます。塩素イオンは、体内を弱アルカリ性に保つために、全体に広がっています。アミノ酸の一部にも塩素は結合しています。

 

ちなみに、人間の体内は弱アルカリ性ですが、体表面は弱酸性になっているそうです。汗とか、何か腐ったものがたくさんくっついているんでしょうか。

Docker0.10読み(2回目)

Golang Cafe#27に参加してきました。

今日のお題は、Dockerコード読みです。

f:id:TanabataNikki:20140427225050j:plain

~/docker/docker/docker.go のクライアント部分から、~/docker/api/client/commands.goの func CmdRun()を上から読んでいきます。

golang初心者として書き方の勉強になったこと。

 

  • 最初の行で、
config, hostConfig, cmd, err := runconfig.ParseSubcommand(cli.Subcmd("run", "[OPTIONS] IMAGE [COMMAND] [ARG...]", "Run a command in a new container"), args, nil)

変数の型を宣言しないで使っていいこと。このあたりはLLっぽい。

  • エラー処理にはdeferを使う
defer func() {
    if cidFileInfo, err = os.Stat(hostConfig.ContainerIDFile); err != nil {
        return
    }
}()

無名関数なので最後に ()を忘れないこと。deferはいくつでもスタックできる。return時にLIFOで実行される。

  • 並列実行の方法
waitDisplayId = make(chan struct{})
go func() {
    defer close(waitDisplayId)
    fmt.Fprintf(cli.out, "%s\n", runResult.Get("Id"))
}()
  1. チャネル変数(並列動作するプロセス間で使う変数)はmakeで宣言する。
  2. go func() で並列実行する。

このあたりが、golang初心者には、目新しかったです。

 

とりあえず、小並感で。

f:id:TanabataNikki:20140427235340p:plain

ubuntu14.04TLSは2年ぶりということで、こっちも貼っておきます。

Golang Cafe

広告:第24回勉強会@岡山 - GDGChugoku よろしくね。

 

毎週日曜日に開催されているGolang Cafeに参加しました。このペースでの勉強会は全国でもめずらしいのではないでしょうか。場所は、青江の倉式珈琲店です。

f:id:TanabataNikki:20110813154624j:plain

本日は、How to Write Go Codeを、最初からやりました。ノートPCにLinuxMintとgolangだけでいったのに、みなさまありがとうございます。では、今日やったこと。

  • まず、Workspaceをつくります。

 % mkdir $HOME/golang (ここがWorkspaceになります)

その下にsrcディレクトリを作ります。

 bin … 実行ファイルが格納されます

 pkg … ライブラリファイルが格納されます

 src … ソースコードが格納されます

今時は、https://github.com/usernameリポジトリもってて、世界に向かってコードを公開してブイブイいわすのが普通なので(笑)

 src/github.com/username/ までディレクトリを作ります。

  • 次に、Workspaceを示す環境変数 GOPATH を設定します。.bashrc(または.cshrc)に書いておきます。

 export GOPATH=$HOME/golang(または setenv GOPATH $HOME/golang) 

  • 最初のプログラムを書きます。

 src/github.com/username/パッケージ名/ となります。ここでは、

「Hello, world.」を出力するプログラムを書きます。完全な写経です。

  • go install を実行します

 エラーがなければ、binディレクトリの下に、hello という実行形式のファイルが作成されました。実行すると「Hello, world.」と表示。成功です!!

  • ライブラリの作成

平方根を計算するライブラリをsrc/github.com/username/newmathの下に  sqrt.go  を書きます。同じディレクトリで、go build を実行します。

 $GOPATH/pkg/(OS名)/github.com/username/newmath/sqrt.a

が、作成されます。

さきほどのプログラムを一部変更して、newmath.Sqrtを呼びます。

func main() {
	fmt.Printf("Hello, world.  Sqrt(2) = %v\n", newmath.Sqrt(2))
}

 実行すると、「Hello, world. Sqrt(2) = 1.414213562373095」と表示。成功!

※ここで、ライブラリのMethodを呼ぶときは、最初の文字は必ず大文字にすること。仕様です。 fmt.Pintln newmath.Sqrt

      f:id:TanabataNikki:20111127082435j:plain  ちょっと休憩。

  • 自動整形ツール

軽めの話題で、自動整形ツール。ソースコードのインデントをそろえたり、importライブラリの順番を入れ替えたりしてくれます。

 % go fmt

と入力すると、そのディレクトリにあるソースコードを整形してくれます。(実体は、gofmt -lw です。gofmtのオプションは調べて下さい) 

  • お楽しみのテストです

自分の作ったライブラリをテストするテストコードを書きます。Golangの組み込みのtestingパッケージを使います。

 

package newmath

import "testing"

func TestSqrt(t *testing.T) {
    const in, out = 4, 2
	if x := Sqrt(in); x != out {
		t.Errorf("Sqrt(%v) = %v, want %v", in, x, out)
	}
}

 - Testのあとに関数名を書く

 - t.Errorf()がエラー表示関数

 % go test

を入力する。

成功した場合、「ok       github.com/username/newmath  0.123s」

失敗した場合、「--- FAIL: TestSqrt (0.00seconds)」

と表示する。

 

世の中、テストファーストなどということもあるわけで、

  const in, out = 9, 3

  const in, out = 5, 2

などといろいろかえてみるのもいいと思います。

昨日は、話題のアニメ、カゲプロがはじまったらしいので、よくわかりませんが、貼っておきます。

f:id:TanabataNikki:20140414014236j:plain

PS. 

 for文は条件をそのあとに書くものでしょう。

 if文も条件を書くものでしょう。

 golangにおけるローカル変数初期化代入機能:= があるために、

  sum :=0; for i:=1; i < 1000; i++ { sum += i }

 という表現が可能になる。

  if x:= f(y); x != 0 { return y / x }

 if文の表現が簡潔になる。 

人間は何からできているか

この一覧表をみて最初に何を思いましたか。

 

ある人は、「鋼の錬金術師」の人体練成をおもいついたかも。

私は、高校の化学の時間に覚えさせられたイオン化傾向を思い出しました。「貸そうかな、まああてにすな、ひどすぎる借金」というやつです。(ほかにもいろいろある)。


人間を構成する無機物の部分は食品として語られるときは、「ミネラル」とよばれる。

重量比でまずは、カルシウム(Ca)です。これは「骨」の主成分。わかりやすいです。ところで、骨は、リン酸カルシウムなので、次に出てくるリン(P)も含んでいます。

 

次は、リン(P)です。さっきの骨とともに、使われています。

もうひとつ、ATP(アデノシン三リン酸)という形で細胞中に散らばってます。遺伝子にも重要な働きをするし、エネルギー源とまでいわれてます。とっても重要。

 

リン(P)はよく燃えるので、人が死ぬと、リンが燃えて「ヒトダマ」に見えやこともあったらしい。実際はよく知らないんだけど。

 

さて、まだ2つしかできてないけど、続きはまたいつか。

甘味化合物のわっか

近代有機化学において発見された人工甘味化合物はサッカリンです。

f:id:TanabataNikki:20140405215651p:plainサッカリン

アイラ・レムセン博士が、コールタールの実験中に偶然発見しました。実験後、手をろくに洗わないで食事をして気が付いたそうです。(とても危険!!)

ここには、しっかり、ベンゼン環があります。なので芳香化合物です。甘味は、ショ糖の350倍ともいわれます。

 

そのショ糖とは、いわゆる砂糖のことです。甘味成分の代表です。今までにもでてきた、グルコースブドウ糖)とフルクトース(果糖)の結合した糖です。

f:id:TanabataNikki:20140405221139p:plainf:id:TanabataNikki:20140405220630p:plain

が結合すると

f:id:TanabataNikki:20140405221320p:plainスクロース(砂糖)

になるわけです。

 この水酸基(ヒドロキシ基)を3つ塩素(Cl)に工業的に置き換えたものが、

f:id:TanabataNikki:20140405221923p:plainスクラロース

です。甘味は砂糖の600倍といわれ、現在のノンカロリー甘味ドリンクの大半にはこれが入っています。今や甘味料のエース的存在です。この化合物も偶然発見されました。

ちなみに、現在知られる最強の甘味料は「ラグドゥネーム(lugduname)」で、甘味は砂糖の20~30万倍といわれます。

f:id:TanabataNikki:20140405224451p:plainラグドゥネーム

 

俗説としてでてくる「砂糖の中毒性」ですが、人間は長い間、飢餓と闘ってきたので、ハイカロリーな甘い砂糖に出会ってしまうと興奮してしまうんでしょうね。

 合衆国のロークラスの人は太っていて、ハイクラスの人は痩せて健康的だ。というステレオタイプは悲しい話です。

 

アルコール発酵と代謝

まずアルコール発酵について考えてみます。ブドウ糖がアルコールに変換することを化学式で書くと、

   C6H12O6 → 2 C2H5OH + 2 CO2

と簡単に表現できる。実際には、酵母菌などの微生物によって3段階の過程をへて反応が進みます。

アルコールとは、エタノールだけでなく、炭化水素の水素原子をヒドロキシ基(-OH)でおきかえた物質の総称です。

 

ところで、私たちが普段飲んでいるアルコール飲料はもちろんエタノール100%なんてことはなくて、ほとんどは水、次にエチルアルコール、そして少量の糖、アミノ酸、カルボン酸、エステル、などなどからなる嗜好品なのです。

太古から人間は、酒造りを通じて、化学の不思議にふれていたことになります。

 

次に、アルコール代謝について考えます。これはちょうどアルコール発酵と逆の方法で行われます。

まず、エタノールアセトアルデヒドに変換されます。

   CH3CH2OH + NAD+ → CH3CHO + NADH + H+

アセトアルデヒドは、ALDH酵素により酢酸に変換され、その後、クエン酸CO2とH2Oに変換されます。

 

さて、今回は特に、わっかな有機化合物は出てきませんでしたが、ALDH酵素の関連であるγアミノ酪酸 (GABA)について話ができたらいいかなと思っています。