2015年10月31日土曜日

圏論 P17

3 Cの射の圏 C→ はCの射を対象としてもち、f:A→B から f’:A’→B’へのC→の射gは
 可換正方形
        g1
       A→A’
      f ↓ ↓f’
       B→B’
        g2
である。ここで、g1とg2はCの射である。すなわち、このような射はCの射の対g=(g1,g2)であり
  g2・f=f'・g1
をみたす。 対象f:A→B上の恒等射1fは対(1A,1B)である。射の合成は成分ごと行われる。
      (h1,h2)・(g1,g2)=(h1・g1,h2・g2)
 適切な可換図式が描くことにより、これがうまくいくことを確かめよ。

        g1  h1
       A→A’→A''
      f ↓ ↓f’ ↓f''
       B→B’→B''
        g2  h2

g=(g1,g2)とh=(h1,h2)はC→の射で、C→の対象は、f,f',f''  といったところか?

  二つの関手が存在することをみてほしい。
             dom    cod
           C ←  C→ → C

  ちょっと違うかもしれないけれど、たとえばニュアンスとしてはこんな感じだろうか?
 cod(g:f→f')=cod(g):cod(f)→cod(f')=g2:B→B'
  dom(g:f→f')=dom(g):dom(f)→dom(f')=g1:A→A'

 


2015年10月29日木曜日

圏論 原著第2版 P15

圏論のさわりを少し読んでみた。群論の抽象度をさらに上げたもの という感じだろうか、はっきりいってわかりにくい。読み始めてさっそく最初のほうでつまづく。

Th1.6 射の集合を伴うすべての圏対象が集合であり、射が写像である圏に同型である。
∵(概要)Cのケイリー表現Cを次の具象的な圏として定義せよ
・対象は、∀C∈に対して     ={f∈|cod(f)=C} という形の集合である。
・射は、 Cのg:C→D に対する写像  CD であり
  C∋∀f:X→C に対して(f)=g・f により定義される。
   X
  f↓ ↘g・f  
   C→D
    g

 D={射∈C|cod(射)=D} この射に該当するのはg・fということ?
 CDは、射(写像)や対象(集合)は、いわゆるケイリー表現と呼ばれるもののようだ。
 CDは 実際は射の集合で その写像がということだろうか?

ケイリー表現というのは、すべての要素g∈Gに対して、置換:G→Gを得ることができることを意味する


2015年10月26日月曜日

Acrobits Softphone

スマホのネット電話はバッテリー消費が多くて、間歇動作させていたが、やはり不便さは残る。
 何かいい方法はないかと、ソフトを探していたらAcrobits Softphoneというアプリを見つけた。これだと、待ち受け時のバッテリー消費がかなり抑えられており、ネット電話には最適なようだ。バッテリーの持ちが非常によくなり、待ち受けだけなら充電なしで数日程度は持つことになる。
 699円と有料であるが、バッテリー対策がされている最新機種に買い替えることに比べれば少ない投資である。

2015年10月19日月曜日

圏論勉強会(YouTube)

Youtubeで、圏論勉強会の動画があったので、見てみた。ネットで読むより概観、イメージがつかみやすい。Haskellも使いながら圏論の初歩との関連を説明してくれている。細かいところでまだまだ理解不足のところもあるけれど、書籍などいきなり読むよりは入りやすい気がします。
第一回:対、AND集合、最小値などがじつは圏論では共通性があるということなど興味深く拝聴させていただきました。最後のほうで函手、自然変換などの説明があります。
第二回:モノイドについての説明です。最初のほうでfoldmap、endomorphismについて説明しています。各回は2時間、連続聴講はちょっときつい。とりあえず、今回は半分程度視聴して終わり。

2015年10月14日水曜日

Windowsサーバでアクセス制限をバッチファイルで一括処理

NFTSアクセス制限は、GUIでも設定できるが、一括処理はやはり、バッチファイルの利用が効率的である。
エクセル等で、編集してテキスト保存したものをバッチファイルで利用するといいようだ。
たとえば、
echo y|cacls d:\test /E /P username:W
などとすれば、testフォルダに対して、特定のユーザーの書き込み権限を与えられる。

2015年10月11日日曜日

LINQについて

.NETではLINQが使え、関数型プログラミングに近いことができるようになっている。
http://yohshiy.blog.fc2.com/blog-entry-274.html
を参考にさせていただくと
scalaやHaskellなどと変わりなく、カリー化、遅延処理、map,foldといった機能がそろっていることがよくわかります。
ということは、完全とはいかないまでもscalaやHaskellでなくても、.NETで関数型っぽいプログラミングが、ある程度できるということになりそうです。
ただ、副作用のないものにするということには注意しなければならないのだと思いますが。。
そこまで意識がいくまでにはもう少し修行が必要なようです。

2015年10月3日土曜日

ItPolicy N@vi のCSコンソールで USBメモリ等の使用制限解除の登録をしやすくするツールをつくってみました

ItPolicy N@vi 用 USBメモリ等使用制限を解除するための登録 支援ツール download:https://drive.google.com/file/d/0B4pVdxZ3b8JAdm9iSWdUNl9OQmM/view?usp=sharing

1 はじめに
 ItPolicy N@viという製品では、セキュリティ維持のために、USBメモリ等の使用を制限を加えるという機能があります。その解除のためのUSB機器の登録には手間がかかり、ミスもしやすいようです。エクスポート、インポート機能を利用して、エクセル等で事前にでデータを用意する方法があります。そのほうが、バックアップデータが常にあるという安心感もあり、種々の管理もしやすいと思われます。
 しかしながら、エクセルを使った場合、USB機器からの製造ID等の読み取りができない、値の大きな数値は指数表示になってしまう、先頭が0の内部シリアル値は0が削除されてしまう、といったことがあります。
 そこで、支援ツールを作成しましたので、公開します。

2 使い方
・USBtorokuフォルダを適当な場所にコピーし、使用してください。
・一番最初だけはCSコンソールからエクスポートしたファイルを読み込む必要があります。
・USB機器からの製造ID等の読み取りは、フリーソフトの機能を使用しています。
・ファイルは一度保存すれば、次回からは前回保存したファイルを読み込みます。
・ファイル形式としてはSN無(内部シリアル番号なしのデータ)、SN有(内部シリアル番号ありのデータ)がファイル名についているものと、ついてないもの、計3種類のファイルができます。
・ソフトを立ち上げたら、USBメモリ等を差し込み、コンボボックスから該当USB等を選択し、追加をクリックします。これを繰り返してください。
・修正はリストから該当行をクリックして修正してください。
・すべて終わったら「ファイル」から「CSコンソールからインポートするためのファイルを保存」をクリック

3 CSコンソールからのインポート方法
 内部シリアルがあるかないかで、インポートファイルを別に用意しないとならないので、けっこう複雑であるが、以下のような方法をとってみた。(できれば、一つのファイルで、「製品一致」や「シリアル一致」どちらも一度にインポートできて、しかも完全同期の仕組みにしてもらったほうがユーザーは使いやすいのでないだろうか。)
・インポートしたいデータに完全に同期させたい場合
①目的のデータが内部シリアル有りの場合:SN有のファイルを「追加」と「シリアル一致」を選択、その後、SN無のファイルを「更新」と「製品一致」を選択して インポート
②目的のデータが内部シリアル無しの場合:SN無のファイルを「追加」と「製品一致」を選択、その後、SN有のファイルを「更新」と「シリアル一致」を選択して、インポート
・完全に同期する必要ない場合、単にデータを追加するだけの場合などは、そのデータの入っているファイルがSN有のほうなら、「更新」と「シリアル一致」を選択し、インポートするだけです。

4 その他
 USBの登録を行う場合、CSコンソール内では、2カ所同じデータを登録した場合、これらが、食い違ってしまった可能性がある場合、それらからエクスポートした2つのファイルをOR結合することもできます。このソフトがアイコン状態のときに、2つのファイルをアイコンにドラッグ&ドロップしてください。