読者です 読者をやめる 読者になる 読者になる

ラベンダーのポプリを無駄なく作る方法

ポプリというのは、花などを乾燥させ「熟成」させたものです。
sinsin-kenkou.net

ポプリは花で作ると見た目が良い。が、ラベンダーは枝と葉が多い。
とても勿体無いのでポプリはいつも葉・茎を大量に混ぜています。
今年は花メインで作ってみます。

材料

  1. ラベンダー40cmぐらいのを5本ほど
    • フリンジラベンダー
    • エストカスラベンダー
  2. 紐(リース用)
  3. 流しのゴミネット(入浴剤用)
  4. ポプリの入れ物(ポプリ用)

f:id:ponsuke_tarou:20170502155325j:plain
今年またエストカスラベンダーを買ってしまった。いろいろ頭を使わないと小さな花壇がラベンダー園になってしまう。

① ラベンダーを刈る

穂先だけを取ると必要な部位だけを採取できるものの刈戻しを別途行わければ、その後芽が育たない。
別途刈戻しをすればその時に葉と茎が結局出てしまう。
なのでバッサリ刈る

② ポプリを作る

花を採取してザルにでも入れて風通しの良い何処かにおいておく。
1ヶ月以上後に思い出したらメッシュの袋かなんかに入れてポプリ完成。
f:id:ponsuke_tarou:20170502154027j:plain

③ リースを作る

残った枝に葉をつけたまま紐を巻くように巻きつけて円状にしてリースにする。
f:id:ponsuke_tarou:20170502154044j:plain

④ 葉を入浴剤にする

作業中に落ちた葉を流しのゴミネットに入れて入浴剤完成。
ponsuke-tarou.hatenablog.com

f:id:ponsuke_tarou:20170502154105j:plain

繁茂するラベンダーの使い道

入浴剤

用意するもの

  • 台所の流しで使うゴミネット
  • 繁茂するラベンダー

やること

  1. ラベンダーをゴミネットに入る大きさにちぎる
  2. ゴミネットに入れる
  3. 浴槽に投げ込む
  4. お風呂を入れる

f:id:ponsuke_tarou:20170425210031j:plain

下駄箱の消臭剤

用意するもの

  • 台所の流しで使うゴミネット
  • 繁茂するラベンダー

やること

  1. ラベンダーをゴミネットに入る大きさにちぎる
  2. ゴミネットに入れる
  3. 下駄箱に投げ込む

f:id:ponsuke_tarou:20170425210319j:plain

ドライフラワー

用意するもの

  • キッチンペーパー
  • お菓子とかいただき物についているリボンかゴム
  • 繁茂するラベンダー

やること

  1. ラベンダーを手頃な長さで収穫する
  2. 下葉を取る
  3. からげる
  4. キッチンペーパーで邪魔にならないぐらいの太さに巻く
  5. リボンかゴムでしばる
  6. どっかに吊り下げて放置する
  7. 思い出したらリボンかゴムを締める

https://scontent.xx.fbcdn.net/v/t1.0-9/18010044_724430954408913_236735522953090990_n.jpg?oh=1605f2fe26b947b6382b663a8b4796bd&oe=597F854B

「Log4J」と「SLF4J」ってなんだ?ログの出力先探索記

ことのきっかけ

お仕事でコンソールにバーって出てるけどログファイルはどこにあるんだろうと探していた時のことでした。
こんなのを見た、「Logger」だからログはいてくれるのでしょう。

import org.slf4j.Logger;


ログは見るけど出力とかよくわからない・・・いつもはBossや先輩に設定場所と内容の指示をもらってやっているだけ・・・ソフトウェアデザインの2017-03月号でも特集していた「ログ」・・・自分関わっているのだけでも知らなきゃ!となったのがきっかけでした。
「slf4j Logger」でググってみました。「SLF4J」は他のものと一緒に使われるようで、よく目にしたのが・・・

① 「Log4J

Log4JJakarta プロジェクトで開発が進められている Java プログラム用のログ API です。Log4J を利用することで、様々なロギングが可能になります。
1. Log4J の基本 | TECHSCORE(テックスコア)

Log4J はロギングのためのクラス・ライブラリである。開発元は言わずと知れた Apache のサブプロジェクトの一つである。
www.nurs.or.jp

log4jjavaで最もポピュラーなロギングフレームワークだと思います。
log4jだけでも良いのですが、SLF4Jを使うことでprintfライクな文法でログを出力できるところが気に入り利用することにしました。
yokuno.hatenablog.com

② 「Logback

Log4j の開発者が作った別のロギングライブラリ。

歴史的な背景とか、 SLF4J との関係については、 Javaのログ出力: 道具と考え方 というスライドがとても参考になります。
qiita.com

いろいろ読んでみてを理解しはじめました。

www.slideshare.net
www.bunkei-programmer.net

Log4J」「Logback」は実装的なログ出力ライブラリ。

「SLF4J」はインターフェース的なログファサードライブラリ。

Facadeパターンは、既存のクラスを複数組み合わせて使う手順を、「窓口」となるクラスを作ってシンプルに利用できるようにするパターンです。
15.Facadeパターン | TECHSCORE(テックスコア)

kiririmode.hatenablog.jp

「SLF4J(Simple Logging Facade For Java)」はいろんなログ出力ライブラリを切り替えて使うためのインターフェース的なもの。
だから実装的なライブラリと一緒に使うということになるのですね。


で、結局出力するログの出力先はどこなんでしょう?

① ログ出力ライブラリを調べる

ライブラリなのでまずはMavenさんのpom.xmlをみてみました。

f:id:ponsuke_tarou:20170423192410p:plain
2. Maven 入門 (2) | TECHSCORE(テックスコア)

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.x.x</version>
    </dependency>

ぐぐったら実装的なログ出力ライブラリは「Log4j」のようでした。

f:id:ponsuke_tarou:20170423193159j:plain
SLF4J - Javaロギング実装・ライブラリの柔軟な切り替え・効率化を実現するロギング Facade

② 設定ファイルを探す

Log4j」の代表的な設定ファイル名は「log4j.properties」「log4j.xml」で、
このファイルがなかったらソースから追えば設定ファイルが見つかるようです。

設定ファイルを使用するには、org.apache.log4j.PropertyConfigurator クラスを使用します。クラスメソッドconfigure( ) メソッドで設定ファイルを読み込みます。
2. 設定ファイルの利用 | TECHSCORE(テックスコア)

③ 設定方法を知る

大きな構成は3つで「Loggerさん」「Appenderさん」「Layoutさん」

Logger は Log4J パッケージの中心クラスで、ロギングを行う部分をグループ化し、必要なグループのログだけを出力したり、カテゴリーに優先順位をつけることにより様々な出力方法を指定することができます。

Appender はログの出力先を指定するものです。Appender で設定できる出力先は、冒頭でも述べたように、ファイル、OutputStream、Java.io.Writer、リモート Log4J サーバ、リモート Unix Syslog デーモン、Windows NT イベントログなどです。

Layout はその名の通り、ログの出力フォーマットを指定するものです。単純なテキスト出力、ユーザが指定したレイアウト、HTML のテーブルレイアウトなどを指定することができます。
1. Log4J の基本 | TECHSCORE(テックスコア)

Logger
ここに「Loggerさんの名前」「ログレベル」「Appenderさんの名前」を設定します。

# RootLogger
log4j.rootLogger={ログレベル},{Appenderさんの名前}

# Logger
log4j.logger.{Loggerさんの名前}={ログ出力レベル|INHERITED},{Appenderさんの名前}

RootLoggerのログレベルを継承したいときは、「INHERITED」と書きます。

↓Loggerさん

This is the central class in the log4j package. Most logging operations, except configuration, are done through this class.
Logger (Apache Log4j 1.2.17 API)

Appender
カンマ区切りで複数指定できます。複数指定できるのでログを、コンソールとファイルに同時に出力することが可能です。
gungnir-odin.hatenablog.com


Appener
Appenderさんの「クラス」「オプション」「使うLayoutのクラス」の設定をします。

# 使用するAPPENDERの設定
log4j.appender.{Appenderさんの名前}={Appenderさんのクラス}
# オプションの設定
log4j.appender.{Appenderさんの名前}.{オプション}={オプションの設定値}
log4j.appender.{Appenderさんの名前}.layout={使うLayoutさんのクラス}

↓{Appenderさんのクラス}は「All Known Implementing Classes:」から選びます。

Interface Appender

All Known Implementing Classes:
AppenderSkeleton, AsyncAppender, ConsoleAppender, DailyRollingFileAppender, ExternallyRolledFileAppender, FileAppender, JDBCAppender, JMSAppender, LF5Appender, NTEventLogAppender, NullAppender, RewriteAppender, RollingFileAppender, SMTPAppender, SocketAppender, SocketHubAppender, SyslogAppender, TelnetAppender, WriterAppender

Implement this interface for your own strategies for outputting log statements.
Appender (Apache Log4j 1.2.17 API)

org.apache.log4j.net.SyslogAppender であることからも判るように、実際にはネットワーク系の Appender である。つまり、root でこれを使ったアプリを動かしても、ローカルマシンの syslog で取り扱って貰えるわけではない、ということを最初に言っておこう。
www.nurs.or.jp

log4j.category.com.fc2web.himtodo.test=DEBUG, TEST
log4j.appender.TEST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TEST.File=C:/logs/test.log
log4j.appender.TEST.DatePattern='.'yyyy-MM-dd
log4j.appender.TEST.layout=org.apache.log4j.PatternLayout
log4j.appender.TEST.layout.conversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} [%p] - %m%n

↓{使うLayoutさんのクラス}は「Direct Known Subclasses:」から選ぶか実装します。

Class Layout
Direct Known Subclasses:
DateLayout, EnhancedPatternLayout, HTMLLayout, PatternLayout, SimpleLayout, XMLLayout

Extend this abstract class to create your own log layout format.
Layout (Apache Log4j 1.2.17 API)


他は見たら調べよう・・・覚えられないし・・・。

論理演算の応用系を勉強します。

勉強のきっかけになった過去問

f:id:ponsuke_tarou:20170406103907p:plainと等価な集合はどれか。ここで,∪は和集合,∩は積集合,f:id:ponsuke_tarou:20170406103916p:plainはXの補集合を表す。

f:id:ponsuke_tarou:20170406104008p:plain
分野別過去問題テクノロジ系 離散数学 No.14

応用編

否定論理和論理和否定して「NOR」です。

http://1.bp.blogspot.com/-Xo860eSgo0w/TsOGx1IJxQI/AAAAAAAAAQA/X5PZJSOczf0/s1600/nor.png

論理和否定して「NOR」。
A B OR NOR
1 1 1 0
1 0 1 0
0 1 1 0
0 0 0 1

f:id:ponsuke_tarou:20170406101202p:plain f:id:ponsuke_tarou:20170405225101p:plain

否定否定論理積で「NOR」。
A B AのNOT BのNOT NOR
1 1 0 0 0
1 0 0 1 0
0 1 1 0 0
0 0 1 1 1

f:id:ponsuke_tarou:20170406105623p:plainf:id:ponsuke_tarou:20170406105635p:plain = f:id:ponsuke_tarou:20170406101202p:plain
f:id:ponsuke_tarou:20170405235600p:plainf:id:ponsuke_tarou:20170406095437p:plain = f:id:ponsuke_tarou:20170406100834p:plain

否定論理積論理積否定して「NOR」です。

http://4.bp.blogspot.com/-XUfxpXzXkkc/TsC50mRNeDI/AAAAAAAAAOg/39nHLG0EXCY/s320/nand.png

論理積否定して「NAND」。
A B AND NAND
1 1 1 0
1 0 0 1
0 1 0 1
0 0 0 1 

f:id:ponsuke_tarou:20170406094158p:plain f:id:ponsuke_tarou:20170405230130p:plain

否定否定論理和で「NAND」。
A B AのNOT BのNOT NAND
1 1 0 0 0
1 0 0 1 1
0 1 1 0 1
0 0 1 1 1

f:id:ponsuke_tarou:20170406105623p:plainf:id:ponsuke_tarou:20170406105635p:plain = f:id:ponsuke_tarou:20170406094158p:plain
f:id:ponsuke_tarou:20170405235600p:plainf:id:ponsuke_tarou:20170406095437p:plain = f:id:ponsuke_tarou:20170406095611p:plain

排他的論理和論理和否定論理積論理積で「XOR」です。

https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/XOR_ANSI.svg/100px-XOR_ANSI.svg.png

A B OR NAND XOR
1 1 1 0 0
1 0 1 1 1
0 1 1 1 1
0 0 0 1 0

f:id:ponsuke_tarou:20170406101555p:plainf:id:ponsuke_tarou:20170406094158p:plain = f:id:ponsuke_tarou:20170406101825p:plain
f:id:ponsuke_tarou:20170406102436p:plainf:id:ponsuke_tarou:20170405230130p:plain

否定論理積否定否定論理和です。

f:id:ponsuke_tarou:20170406101825p:plain = f:id:ponsuke_tarou:20170406101555p:plain ・ (f:id:ponsuke_tarou:20170406105623p:plainf:id:ponsuke_tarou:20170406105635p:plain)
f:id:ponsuke_tarou:20170406102436p:plainf:id:ponsuke_tarou:20170405230130p:plain = f:id:ponsuke_tarou:20170406102436p:plain ∩ (f:id:ponsuke_tarou:20170405235600p:plainf:id:ponsuke_tarou:20170406095437p:plain)

論理演算の基本系を勉強します。

勉強のきっかけになった過去問

論理式P,Qがいずれも真であるとき,論理式Rの真偽にかかわらず真になる式はどれか。ここで," ̄"は否定,"∨"は論理和,"∧"は論理積,"→"は含意("真→偽"となるときに限り偽となる演算)を表す。

f:id:ponsuke_tarou:20170405221436p:plain
分野別過去問題テクノロジ系 離散数学 No.39

前にも勉強したことがありますが忘れました。

だからまた勉強します。
blogs.yahoo.co.jp

基本編

論理和は「OR」です。

論理和どちらかが「1」なら「1」になります。
A B OR
1 1 1
1 0 1
0 1 1
0 0 0

論理積は「AND」です。

論理積どちらも「1」なら「1」になります。
A B AND
1 1 1
1 0 0
0 1 0
0 0 0

否定は「NOT」です。

否定は「1」なら「0」になります。
A NOT
1 0
0 1
  • 否定論理回路はこれです。
    • https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/NOT_ANSI_Labelled.svg/120px-NOT_ANSI_Labelled.svg.png
  • ベン図はこうなります。
    • https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRofK8PymTDh-UPnDoiUYA0ZpxF3zQxQzpP-WKRMV2w1GEZmBZV
  • 否定f:id:ponsuke_tarou:20170405235600p:plainで表されます。
    • キーボードで何を打てば出るかわかりませんでした。「¬」も否定の記号です。「ひてい」とうって変換したら出ました。

含意は「AならばB」ということらしいです。

「ふくい」ではなく「がんい」とよみます。
kotobank.jp
言葉遊びのようで日本語が弱いためよくわかりません。
含意の命題「ならば」をあらわす論理記号 A⇒B [数学についてのwebノート]
他の方法で考えます。

英語でわかるわけがありません。

connotation、entailment、implication、implicature、intent、connote、imply、imply、stand for、signify、intend、meanなどなど

記号はわかりません。

「A→B」「A⇒B」「A⊃B」
※. 正しくは「A→B」と「A⇒B」は異なるらしいけれどそんなレベルにはいません。
論理包含 - Wikipedia

真理値表はよくわかりません。
A B 含意
1 1 1
1 0 0
0 1 1
0 0 1
  • 10進数にしても全くわかりません。
    • A = 12 = 1100
    • B = 5 = 0101
    • A ⊃ B = 1011 = 11
ベン図は不思議に感じます。

http://softwaredevelop.web.fc2.com/img/1/gani.png
解りにくければ、A≦B と覚えればOK!
softwaredevelop.web.fc2.com

NASって何?SANって何?

勉強のきっかけになった過去問

NAS(Network Attached Storage)の特徴と,特徴を生かした適用業務について述べたものはどれか。

  1. 各種OSからファイルを共有することができるので,データを交換する業務に適している。
  2. データの読み書きを高速に行うことができるようになるので,負荷が高い業務に適している。
  3. データベースのデータを扱うことが容易なので,簡易言語で情報検索を行う業務に適している。
  4. ファイルの改ざんを監視することが容易なので,個人情報を管理する業務に適している。

分野別過去問題テクノロジ系 システムの構成 No.28

NASはファイルサーバです。

簡易なコンピュータ本体にハードディスクやSSDなどの記憶装置と、ネットワークインターフェース、OS、管理用ソフトウェアなどを内蔵したファイルサーバ専用機で、記憶装置をネットワークに直に接続したように扱うことができる
e-words.jp

http://image.itmedia.co.jp/pcuser/articles/1402/13/tm_1402_nas1_01.jpg

NASが繋がるネットワークはTCP/IPネットワークです。

ネットワークに繋ぐのでみんなで使えます。

NASはパソコンに1対1で繋ぐのではありません。
ネットワークに対して繋ぐので、そのネットワークにつながっているパソコンで使えます。
アクセス権限を設定して決まった人々だけで使うことだってできます。

個別にファイル管理するよりもNASのほうが記憶領域の有効活用できます。

個々のパソコンに付いているハードディスクの空きスペースは、それぞれの人がどんな使い方をしているかによってまちまちです。

大量のデータを保存している人のハードディスクスペースが足りなくなる一方で、あまりデータを保存していない人のハードディスクスペースが余るというのは効率が良くありませんが、NAS であればそれぞれの人が必要に応じてスペースを利用できるので有効活用ができます。
navi.dropbox.jp

ネットワークに接続された各種OSでのデータ共有ができます。

SANはネットワークです。

複数のコンピュータとストレージ(外部記憶装置)の間を結ぶ高速なネットワーク。
e-words.jp

SANは2種類あります。

FC-SANはファイバチャネルを使用したネットワークです。

接続にFibre Channel(ファイバーチャネル)を使います。
ファイバーチャネルっていうのは・・・

コンピュータ本体と外部記憶装置を接続するのに利用されているデータ転送方式
e-words.jp

通信プロトコルは、FCP(Fibre Channel Protocol:ファイバーチャネルプロトコル)です。

IP-SANはIPを使用したネットワークです。

接続にEthernet(イーサネット)やTCP/IPネットワークなどの汎用的なネットワーク技術を使います。
イーサネットっていうのは・・・

有線のLAN (Local Area Network) で最も使用されている技術規格
イーサネット - Wikipedia

通信プロトコルは、iSCSIやiFCP・FCIP(Fibre Channel over IP)です。
LANなど汎用のコンピュータネットワークとは切り離されて使われます。
なので、LAN側の機器や回線に負荷をかけずに大規模なストレージを構築することができます。

おまけ

NAS電池は電力貯蔵システムです。

多分、ファイルサーバのNASとは関係ないと思います。

負極(マイナス極)にナトリウム(Na)、正極(プラス極)に硫黄(S)、両電極を隔てる電解質ファインセラミックスを用いて、硫黄とナトリウムイオンの化学反応で充放電を繰り返す蓄電池(二次電池)です。
www.ngk.co.jp

暗号方式の種類

世の中には悪意を持って悪いことをする悪い人がいます。
そんな悪い人から情報を守るために暗号化は大切です。
そして何より情報技術者試験が近いです。

勉強のきっかけになった過去問

暗号方式のうち,共通鍵暗号方式はどれか。

ア. AES    イ. ElGamal暗号    ウ. RSA    エ. 楕円曲線暗号
問37 共通鍵暗号方式はどれか 平成28年春期|応用情報技術者試験.com

共通鍵暗号方式

送信側で暗号化する鍵、
受信側で復号化する鍵
同じ鍵を使います。

メリット : 公開鍵暗号方式にくらべて処理が高速である
デメリット : 複数人と通信する場合は鍵の受け渡しが煩雑になってしまう
jp.globalsign.com

昔アメリカで標準規格として採用されていたDES

共通鍵暗号方式を採用した暗号方式です。
鍵長は56ビットです。
e-words.jp

アメリカで標準規格として採用されているAES

共通鍵暗号方式を採用した暗号方式です。
鍵長は 128 と 192 と 256ビットの3種類あります。
無線LANにおいて暗号化する際の規格(決まり事)である「WPA2」に採用されています。
e-words.jp

公開鍵暗号方式

送信側で暗号化する鍵は公開鍵、
受信側で復号化する鍵は秘密鍵
異なる鍵を使います。

メリット : 複数人とやり取りする際に鍵の管理が容易である
デメリット : 処理速度は遅くなってしまう
jp.globalsign.com

離散対数問題の困難さを利用したElGamal暗号

公開鍵暗号方式を採用した暗号方式です。
公開鍵や暗号文から秘密鍵が割り出されることを防ぐため、逆算が困難な演算を用いて鍵を造ります。
e-words.jp

大きい数の素因数分解の困難さを利用したRAS

公開鍵暗号方式を採用した暗号方式です。
公開鍵で暗号化、秘密鍵で復号を行うだけでなく、秘密鍵で暗号化、公開鍵で復号できます。
オイラーの定理を使っているそうですが、難しくてよくわかりません。
mathtrain.jp

楕円曲線上の離散対数問題の困難さを利用した楕円曲線暗号

楕円曲線を利用した暗号方式の総称です。
公開鍵暗号方式を採用していることが多いそうです。
暗号通貨の「ビットコイン」で採用されました。
楕円曲線暗号RSA 暗号に比べて鍵長が小さいという利点があります。

共通鍵暗号方式と公開鍵暗号方式を組み合わせたハイブリッド暗号方式

送信側 : 平文を暗号化した共通鍵暗号方式の共通鍵公開鍵暗号方式公開鍵で暗号化します。
受信側 : 公開暗号方式の秘密鍵で復号化して取得した共通鍵暗号方式の共通鍵で平文を復号化します。
インターネットで広く使われている通信方式(プロトコル)であるSSL(Secure Sockets Layer)で採用されています。

公開鍵暗号方式の「鍵の管理・配布が容易」という長所と,共通鍵暗号方式の「処理が高速」という長所の両方を生かすように,両方式を組み合わせたハイブリッド暗号方式が考えられました。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060620/241303/zu1.gif

itpro.nikkeibp.co.jp