カテゴリー: 99_非表示

  • シニアプログラミング発表会 #2

     第2回 4月21日(木)

    Youtube シニアプログラミング発表会 #2

    発表者

    Red River Rock水谷秀紀さん(72歳)Scratch
    アメリカ西部劇をモデルに、曲(Red River Valley) と、スプライト、背景で表現!
    流れ星自動認識宇田豊和さん(62歳)Python
    ハワイ・マウナケア星空ライブの流れ星自動認識について説明します
    ①https://drive.google.com/file/d/1zFBN4zKayP9CnsriIqLVxXWYnQXEv_Lr/view?usp=drive_link
    SwiftUIで作ったアプリ
    「あいうべ体操実践」の紹介
    鈴木富司さん(86歳)SwiftUI
    今回バージョンアップしたポイントと主なコーディングの説明
    そこの運転手、笑わんかい
     画像認識による安全運転支援
    岩崎光幸さん(65歳)C#
    ビジコン向けに作成していて、1次選考が通ったら完成させようと思っていたので、現在感情分析の部分しかできていません。よろしくお願いします。
    ①https://drive.google.com/file/d/1cRmJHpB657qCu1dMPV6WI793ln_xJC3m/view?usp=drive_link
  • もくもく会(全国) 第一次

    3月24日(木)

    参加者(ブレイクアウトルーム)
      GIT部屋・・・参加者多数(約20名)

    入手した情報

    GIT紹介furandon-pigGit説明資料
    ①https://github.com/furandon-pig/senior-programming-memo/blob/main/memo/git/git.md
    Githubの紹介furandon-pigfurandon用 Github
    ①https://github.com/furandon-pig/senior-programming-memo.git
    Githubの使用例小泉さん経産省でのモデル契約書 検討事例の紹介
    ①

    モデル契約書の実物
    ②https://github.com/meti-oi-startups/METI-JPO-Model-Contract
    チートシートfurandon-pigチートシートとはコードの解説文書
    ①https://sbucks-blog.com/program/tool/cheatsheet/02-1/
      各言語用のチートシート集

    WPのチート集
    ②https://more-field.co.jp/web/wordpress-cheatsheet/
    リポジトリー解説furandon-pigベアリポジトリートノンベアリポジトリー
    ①https://www.nekotricolor.com/entry/theory-of-bare-and-non-bare-repository-manage-wordpress-themes-with-git

    2月19日(土)

    参加者(ブレイクアウトルーム)
      GIT部屋・・・参加者多数(18名)

    入手した情報

    GIT紹介furandon-pigGit説明資料
    ①https://github.com/furandon-pig/senior-programming-memo/blob/main/memo/git/git.md

    Windows向けのGit
    ①https://git-scm.com/download/win
    Git使い方furandon-pig・指定したフォルダでGit管理を開始する
       $ git init
    ・コミットログを確認する
       $ git log
    ・ファイルを追加してコミットする
       $ git add app.js
       $ git commit app.js -m ‘JavaScriptファイルを追加。’
    ・コミット間の差分を確認する
       $ git diff <古いコミットのID> <新しいコミットのID>
    ・一つ前のコミットとの差分を確認する
       $git diff HEAD~
    ・二つ前のコミットとの差分を確認する
       $ git diff HEAD~~
         (末尾のチルダの分だけコミットを前に辿ることができる)
    ・間違って削除したファイルを元に戻す
       $ git checkout <間違って削除したファイル>

    1月29日(土)

    参加者(ブレイクアウトルーム)
      小泉さん・・・共同ホスト、随時参加
      岩崎さん・・・リーダー役
      宮島さん・・・コーディング練習
      園田さん・・・コーディング練習
      バーバさん・・コーディング練習
      SSさん・・・コーディング練習
      三好さn・・・コーディング練習
      大西さん・・・コーディング練習

    入手した情報

     特になし

    講演会紹介小泉さん仙台でのCodeFor集会
    ①https://fukuno.jig.jp/3467
    発表会紹介小泉さんシニアプログラミングの発表会
    ①https://youtu.be/-TBwMMyNUzA

    林洋子 :日英語の絵本と教材作成
     scratchで絵本作成
    佐藤洋子 :毎日やることの記録
     android、DB使用アプリ作成
    布施寛 :PHPを学習中
     https://fhmeseiun.web.fc2.com/index.html
    園田真理子 :「ひとり親控除」「寡婦控除」 の 適用判定
     pythonで税金計算+カラー化
    山本泰三 :DotchWin MatchMaker
     C、JSONで各競技アプリでの結果を集計
    今井裕 :楽しい基本英文50題
     Scratchで英文穴埋め問題集

    12月27日(月)

    参加者(ブレイクアウトルーム)
      小泉さん・・・共同ホスト、随時参加
      岩崎さん・・・リーダー役
      宮島さん・・・コーディング練習
      園田さん・・・コーディング練習
      バーバさん・・コーディング練習
      SSさん・・・ コーディング練習

    入手した情報

     CodePen・・・HTMLやJavaScriptの開発環境の提供
     slack・・・団体(組織)でのコミュニケーションツール

    コーディング練習小泉さん小泉専用のREPLを使用する
      (2025年 削除)
    Webサービス紹介
    (CodePen)
    不明CodePen
    ①https://codepen.io
    直線距離測定アプリ
    ①https://codepen.io/furandon_pig/pen/wvrpGMX
    コミュニケーションツールの紹介
    (slack)
    小泉さんSlackの紹介サイト
    ①https://kinsta.com/jp/blog/how-to-use-slack/
    slack使用のお勧め
    ①https://join.slack.com/t/senior-programming/shared_invite/zt-10dn6i8ol-wDL5VqvbKigswc7g5~7xQQ

    11月25日(金)

    参加者(ブレイクアウトルーム)
      小泉さん・・・共同ホスト、随時参加
      岩崎さん・・・リーダー役
      宮島さん・・・コーディング練習
      園田さん・・・コーディング練習
      SSさん・・・不明 (アメリカからの参加)

    入手した情報

    コーディング練習小泉さん小泉専用のREPL
    ①
    練習問題
    ①https://gotutiyan.hatenablog.com/entry/2020/04/14/174007
    練習問題の解答
    ②https://gotutiyan.hatenablog.com/entry/2020/04/14/174030
    スライスについて参考資料
    ①https://note.nkmk.me/python-slice-usage/
    講座の案内小泉さんシニアのためのPython講座初級編(12月版)
    ①https://senior-programming.net/2021/10/28/
    発表会 の案内 小泉さん応募の受け付け開始
     1月15日(土)に発表会

    練習問題55本ノック

     sakamoto001のreplに5本ごとに11個セットする
      共有replではなく独自replで練習するため
        今まで練習問題が有るとは知らなかった

     次回までに復習と予習の実行を約束する

    10月28日(金)

    参加者(ブレイクアウトルーム)
      小泉さん・・・共同ホスト、随時参加
      ??さん・・・リーダー役
      宮島さん・・・コーディング練習
      園田さん・・・ コーディング練習
      SSさん・・・不明

    入手した情報

    Repl.It小泉さん無料のクラウドIDE
    ①https://replit.com/
    講座の案内小泉さん シニアのためのPython講座初級編(12月版)
    ①https://senior-programming.net/2021/10/28/
    hinadan
    (iPhoneアプリ)
    小泉さん 若宮さん作成アプリの紹介
      雛壇にお人形を配置するアプリ
    発表会 の案内 小泉さん シニアプログラミング発表会1月実施予定。
    これから募集。
    1回につき4,5人発表。
    前半発表、後半交流会。
    Youtube配信で色んな人に見てもらう。
    発表内容を雑誌Software Design連載枠でも掲載を検討中。
    初発表、昔作ったものも歓迎。

    コーディング練習内容

     先ずはreplitへの「sign up」から始まる
      パスワードに特殊文字が必要だと理解するのに手こずる
        英語のメッセージが小さく読みにくくて理解に手間どる

     アカウント取得したら
       リーダーの開設してあるURLを入手すれば簡単に使用できた

    9月24日(金)

    参加者(ブレイクアウトルーム)
      小泉さん・・・共同ホスト、随時参加
      岩崎さん・・・リーダー
      宮島さん・・・ドイツ語、女性
      園田さん・・・発表者(Pythonによる助成金計算)、税理士、女性
      山本さん・・・途中参加

    入手した情報

    Cloud9岩﨑さんAmazon提供のクラウドベース統合開発環境
    ①https://aws.amazon.com/jp/cloud9/
    OpenCV岩﨑さんインテル提供のオープンソースのライブラリ
    画像処理・解析及び機械学習等の機能を備える
    ①https://opencv.org/
    Glide岩﨑さんスプレッドシートを使ったスマホ用アプリ開発  
    ①https://www.glideapps.com/

    8月26日(木)

    参加者(ブレイクアウトルーム)
      遅刻し最初から参加できず・・・適当に時間を潰す

    入手した情報

     特になし

    7月22日(木)

    参加者(ブレイクアウトルーム)
       小山・・・当方のアプリを評価して頂く

    入手した情報

      Glide・・・作品事例の紹介
    おにぎりアプリ
    Glideで作成
    不明不明
    Code for Japan Summit 2021
    (紹介)
    https://summit2021.code4japan.org/

    6月24日(木)

    参加者(ブレイクアウトルーム)
       小山・・・川柳HPの更新
       不明・・・AWS、Linux等、奈良、男性

    入手した情報

      swift・・・作品事例の紹介
    Swift作品紹介
    (いちばんIchiban)
    FaceTimeの利用
    中田さんhttps://apps.apple.com/jp/app/%25E3%2581%2584%25E3%2581%25A1%25E3%2581%25B0%25E3%2582%2593ichiban/id1570387188

    5月27日(木)

     参加者(ブレイクアウトルーム)
       小山・・・Ruby関係者、65歳、女性
         Herokuを使ってサイト開設
       井城・・・Paython関係者、68才

    入手した情報

      Heroku・・・開発環境の提供(SFが提供)
      VSコード・・・コードエディター(MS提供)
      ブレイクアウトルーム・・・Zoomで会議室を細分化する
      Progate・・・学習支援サイト(無料・有料)
      ちまたの会計・・・クラウド型会計処理
    
    講習会案内
    (有料)
    主催者https://docs.google.com/forms/d/1koObtRZwGvXJhWH4CBuMb7w9c7Z8ydgs-y72CcqA9pE/viewform?edit_requested=true
    Progate小山さんhttps://tech-camp.in/note/technology/77523/

    学習情報提供のサイト
    川柳me小山さんhttps://senryu-me.herokuapp.com/posts/new?id=13

    個人が(川柳作成用)作成したサイト
    Heroku-https://tech-blog.rakus.co.jp/entry/20200813/heroku

    Heroku(無料プロバイダー)の導入と使い方
    VSコード小山さんhttps://techacademy.jp/magazine/39548
    ちまたの会計小山さんhttps://www.timakai.com/

    任意団体等のクラウド会計処理
  • コメントが付くようにして欲しい

    昨年夏に「ブログ開設セミナー」を受講された方から

    1.ブログの編集画面を確認する

     半年も経ってないので、まだ有効なアカウントが残っていた
       ログインし編集画面を呼び出す

    2.投稿は3種類に制限される

     新規投稿の画面から、投稿する記事ごとにコメントの受付を設定する
       ・「許可する」・・・コメントの投稿者に制限なし
       ・「許可しない」・・・一切ブログへのコメントを受け付けない
       ・「ユーザーのみ許可」・・・同じブログ利用者のコメントを受け付ける

     上記の設定方法をお伝えする

    3.コメントを付ける

     実際に相談者のブログにコメントを投稿してみる
       「許可する」になっていたようで、直ぐにコメントを受け付けてくれた

     相談内容が怪しくなったので、別の意見もお伝えした
       ・ブログ開設を周りの人にアピールする
       ・問いかけるような内容にして、反応を確かめながら投稿を続ける 等々

  • もくもく会(大阪) 第一次

    3月11日(金)

     参加者(敬称略)・・・ 申し込みを失念し参加できず
       大嶋(ホスト)
       能
       古川
       鈴木
       浅野
       中田
       大倉
       高見
       水谷
       遠藤・・・初参加

    入手した情報

     グラレコ・・・Graphic Recording

    背景を消すサイト古川さん昔大嶋さんが紹介されていた、髪の毛とかもある程度きれいに切り抜けます。
    ①https://www.remove.bg/ja
    ②https://ja.clippingmagic.com/
    ③https://pixlr.com/jp/remove-background/
    gather townの紹介
    (Scratch)
    能さん紹介された時の対処方法(作成途中)
    ①https://scratch.mit.edu/projects/657214814
    文字画像の作り方
    (PowerPoint)
    能さん文字作成➡画像化➡図として保存
     出来たファイルをScratchのコスチュームorスプライトにアップ。

    スライド画像をそのままScratchに取り込むには
     画面比率を3:4とする。
     ファイル➡エキスポート➡ファイルの種類変更➡イメージファイルの種類(png)です。
     個別の絵のファイルになります。
    gather.town
    (新メニュー)
    古川さんメニューの新バージョンが出来たようで
      ※詳細は省略

    2月18日(金)

     参加者(敬称略)
       大嶋(ホスト)
       大原
       能
       高見
       山本
       水谷
       浅野
       大倉
       鈴木
       古川
       中田
       鳥居塚

    入手した情報

    SCRATCH作品
    (メッセージ動画)
    高見さんお孫さんの誕生日用
     音を加工し重ねる

    バックの音楽はGarageBand
      ※IOS専用
    VOCALOIDで歌わせる
    Cakewalkでアレンジ
    SCRATCH作品
    (関数電卓)
    山本さん個々に数字のコスチュームをを用意するのではなく、
     背景の範囲指定で押された文字を
     判断する
    計算結果の変数を
     決められた位置に表示する
    SCRATCH作品
    (四則演算電卓)
    鳥居塚さん10桁の表示が可能
    数値に対して文字を割り当て
     表示する
    SCRATCH作品
    (音楽演奏)
    水谷さん音楽とスプライトを同期させる

    楽譜の音階(ドレミ)に合わせて
     コスチュームを用意し
     秒数(演奏時間)を設定する

    鍵盤のコスチュームを表示して、
     押すと音が出るので
     このままプログラムに組み込む
    トラブル報告鈴木さん最新PCのトラブル
     メーカーとで電話で解決
     難解な手作業であった 
    SCRATCH作品
    (音楽演奏)
    能さん舞台上で歌って踊る動画
    スマホアプリ紹介能さん天体アプリ
    血圧測定アプリ
    ツールの紹介古川さんSnapCameraの紹介
     2023-01-25 サービス終了
    変数、関数の初期化水谷さん何故、初期化が必要か?
    gathertownの使い方古川さんYoutubeによる接続方法
    ①https://www.youtube.com/watch?v=49eIgQ8KUQ0

    Youtubeによる使い方
    ①https://www.youtube.com/watch?v=1Beh9ovebm0&t=41s

    新しい招待リンク
    ①https://app.gather.town/invite?token=NN_lGiGpCfHofSS1ZD_WYee5qiP189gb

    「trf8889」への招待リンク
    ①https://app.gather.town/invite?token=MNz9aS85XRUEISP0RqamwIkJ8rwi7pQO

    1月21日(金)

     参加者(敬称略)
       大嶋・・・司会
       能 ・・・Scratch
       古川・・・Scratch
       高見・・・scratch
       山本・・・Scratch
       中田・・・Swift
       大倉・・・Scratch
       浅野・・・?
       鈴木・・・Swift
       不明

    入手した情報

    SCRATCH作品
    (占い)
    能さん七福神
    ①https://scratch.mit.edu/projects/624453320/fullscreen/
     
    Webゲーム
    (ゲーム10種)
    山本さん10種類のゲームを紹介
    ①https://gpjy250425.web.fc2.com/
    Zoomへのカメラ接続古川さんSnapCameraの紹介
    コミュニケーションツールの紹介
    (gather.town)
    古川さん①新gather.town
     https://gather.town/invite?token=AX9HT-xJRewkpf9H5oQcVUxdTYrjM0LK
    前回までのサイトは使えない

    12月17日(金)

     参加者(敬称略)
       大嶋・・・司会
       能 ・・・Scratch
       古川・・・Scratch
       高見・・・scratch
       山本・・・Scratch
       中田・・・Swift
       小泉・・・特別参加
       大倉・・・Scratch
       浅野・・・
       金井・・・復活、男性、androido
       大原・・・新規、女性、scratch
       佐藤・・・新規、女性、python

    入手した情報

    SCRATCH作品
    (ジグゾーパズル)
    高見さんジグゾーパズルの紹介
     12片に切り抜き、並べ替える
    ①https://scratch.mit.edu/projects/619106785/
    切り抜きプログラム(サービス)
    ①http://t-asami.sakura.ne.jp/adcl/downloads/Puzzles.zip
     
    SCRATCH作品
    (ゲーム10種)
    山本さん10種類のゲームを紹介
    SCRATCH作品
    (カラオケ)
    能さんカラオケ風動画
     雪が舞う中、音楽が流れる
     scratchソース付き動画
    ①https://scratch.mit.edu/projects/606155591/editor/
     歌詞付き動画
    ②https://scratch.mit.edu/projects/607207176/fullscreen/
    i-phoneアプリ
    (あぷりつくーる)
    不明①あぷりつくーる
      https://applion.jp/iphone/app/1267790577/
     タブレットプログラミングツール(Mac用)
    slack利用の薦め
    swiftと同じアプリ開発
    (slack、playgrounds)
    小泉さん①slack
     https://join.slack.com/t/senior-programming/shared_invite/zt-10dn6i8ol-wDL5VqvbKigswc7g5~7xQQ
    ②Swift Playgrounds
     https://www.apple.com/jp/swift/playgrounds/
     swiftのデバッグ用環境が製品になった
    コミュニケーションツールの紹介
    (gather.town)
    古川さんgather.townの始め方
    ①https://docs.google.com/presentation/d/1qtIHqR2bJ4HTa0URgINgS4Io6mR-d6LxOngBfK8oe2M/edit#slide=id.p

    11月19日(金)

     参加者(敬称略)
       大嶋・・・司会
       能 ・・・Scratch、その他
       古川・・・Scratch、その他
       山本・・・Scratch
       中田・・・Swift
       小泉・・・特別参加
       大倉・・・Scratch
       浅野・・・

    入手した情報

    議事録①https://docs.google.com/document/d/1gTIJsH_5AoVDtKVI9v2FvfPRFyeDJlNobUewhavUtV0/edit
    SCRATCH作品紹介
    (俳句読み上げ)
    山本さんランダムに俳句を読み上げる
     コスチュームとして文字を1文字づつ登録して使用する
     表示する際には文字の大きさを調整する
     音声は文字を入力すると音声になるソフトを使用する
     漢字の読み上げが間違えると平仮名に直す
    SCRATCH作品紹介
    (クリスマスカード)
    能さん①https://scratch.mit.edu/projects/603884899/fullscreen/
     クリスマスカードを皆さんに、の意味合い
     Scratchだと画像は自由に動かせる
    オンライン会議のRPG化
    (GatherTown)
    古川さん大阪シニアもくもく会用のギャザータウン
      自由に参加して情報交換
    ①<後日、使用不可となる>
    紹介記事
    ②https://dev.classmethod.jp/articles/gather-town-as-a-virtual-office/
    商品の紹介
    ③https://dev.classmethod.jp/articles/badukuri-gathertown/
    スマホアプリ紹介能さん①NHKプラス
     見逃しTVを後で見るアプリ
    ②8 Bit Bike Light
     夜の交通事故防止用警告表示するアプリ
    HP紹介
    (大阪もくもく会専用)
    大嶋さん ①https://osakamokumokukai.jimdofree.com/
    Jimdoで作成
    大阪シニアもくもく会用のHP
    Scratch教育
    (ゲームと数学)
    小泉さん ①https://scratch.mit.edu/projects/544037847/editor
     打ち上げ等加速度落下運動
    ②https://scratch.mit.edu/projects/554248378/editor
     自機を狙う弾
    専門学校でゲーム選考の学生向け授業を行った
     三角関数を使って円を描く
     マウスの動きの差分を画像の差分に反映させて動かす
     自由に描画するには数学の素養が必要、と実感する

    10月15日(金)

     参加者
       大嶋・・・司会
       能 ・・・Scratch利用者、Zoomの使い方、キャプチャー方法
       古川・・・Scratch利用者、SpreadSheetの使い方練習
       高見・・・Scratch発表、ラジオ体操
       山本・・・Scratch発表、動画をコマ撮りしてscratchで動かす
       大倉・・・Scratch利用者、未完成のため次回発表
       浅野・・・名古屋?
       福井・・・
       エイト・・

    入手した情報

    Gather Town・・・アニメ風の画面での会話型ミーティング機能
    Zoom・・・定期ミーティング、チャットの保存について
    Health Amulet・・・ワクチン接種履歴を管理するスマホアプリ
    すこやかんぽ・・・歩数に合わせた特典を付与するスマホアプリ
    Town WiFi ・・・WiFiへ自動接続するスマホアプリ
      ※スマホアプリは個人情報の一部を登録しないと使えない
    Pythonプログラム・・・画像切り取りソース

    動画切取り

    議事録①https://docs.google.com/document/d/1vl-pDzGBEutvCZcT2TK2PE3sD-SMCxhHwo-x0tKMBqU/edit?usp=sharing
    SCRATCH作品紹介
    (ビデオレター作成)
    山本さん①動画を切り取り、繋ぎ合わせてビデオレター作成
     Pythonで動画を切り取る
     切り取った動画をScratchで連続表示する
    ②Pythonプログラム
     「動画切り取り」のソース
     
       画像切取り
    SCRATCH作品紹介
    (ラジオ体操第二)
    高見さん①https://scratch.mit.edu/projects/582654774/fullscreen/
     人物が2人、蜘蛛が1匹追加される
      多数の画像(コスチューム)を用意した
      人物等を増やしたら動作が遅くなり、
       さらに両者の動きにずれが発生する
    複数での更新をテストする
    (Spreadsheet)
    古川さん①https://docs.google.com/spreadsheets/d/1DyjhRB2GyOQc4Mj7h8fTFf-7lhqa_tlkjDbSVT9eZHU/edit#gid=347217386
      自己紹介を各自行う
    小ネタ紹介能さん
    ①ZOOM
     定期ミーティングを設定するとURLが固定化される
      アプリからは設定出来ず
      PCからZOOMにログインして設定する
     チャットの保存
      事前にホストが許可設定すると可能
    ②画面のキャプチャー方法
     タイマーを使ってキャプチャーする
    Zoom使い方
    (scratch)
    能さん①https://scratch.mit.edu/projects/419852488/fullscreen/
     音声ガイド付きZoomの使い方
      ※これは有効活用すべき
    スマホアプリの紹介
    (Health Amulet)
    大倉さん ①https://www.health-amulet.net/
     ワクチン等の接種記録が登録できる
    スマホアプリの紹介
    (すこやかんぽ
    )
    (TownWiFi)
    能さん①https://www.jp-life.japanpost.jp/health/exercise/health-app/kna_index.html
     歩いた歩数で割引特典付与
    ②https://townwifi.jp/
     事前登録WiFiに自動接続する
    オンライン会議のRPG化
    (GatherTown)
    古川さん①https://www.gather.town/
     GatherTownの紹介
    ②https://zenn.dev/eriasa/articles/try-gather-town
     使用事例の紹介
    ③https://www.youtube.com/watch?v=8orexZsFRxs
     動画で使用例

    9月17日(金)

     参加者
       大島・・・司会
       能 ・・・Scratch利用者、保持回路の発表
       鈴木・・・Swift利用者、あいうべ体操の発表
       古川・・・Scratch利用者、jamboardの紹介
       高見・・・Scratch利用者、ラジオ体操の発表
       胡中・・・Scratch利用者、鬼滅の刃双六の発表
       中田・・・
       山本・・・Scratch発表、迷路作図の発表
       福井・・・
       大倉・・・

    入手した情報

    jamborad・・・アプリ版の機能説明
    18日のURL・・・https://www.youtube.com/watch?v=iR6xRGhVRjg

    議事録①https://docs.google.com/document/d/1gTIJsH_5AoVDtKVI9v2FvfPRFyeDJlNobUewhavUtV0/edit
    SCRATCH作品紹介
    (迷路作画)
    山本さん基点からランダムに迷路を作画する
     隣に空白部分が無くなるまで繰り返し、画面全体に作画する
     次に行き止まりから逆に辿って、迷路を塞ぐ
     最後に塞がれていない経路を辿って迷路から脱出する
    SCRATCH作品紹介
    (ラジオ体操)
    高見さん①ジグソーパズルの切り抜きアプリの紹介
     導入しただけ、これから切り抜く予定
    ②ラジオ体操
     音楽に合わせて人物画像を動かす
     動きのあるモノにするため、大量の人物画像を用意していた
    Googleアプリの紹介
    (jamboard)
    古川さんjamboard
     ※2024年12月 サポート終了
    Scratch紹介
    (使い方)
    能さん保持回路の説明にscratchが便利との説明
    Scratch紹介
    (双六遊び)
    胡中さん 鬼滅の刃から双六用台紙をコピー、登場人物4名をサイコロの目だけ進める
    3Dプリンターで作成したサイコロが無線で繋がっており、手で転がすとランダムに数字が表示される
    Swiftの紹介
    (作品紹介)
    鈴木さん ①https://apps.apple.com/jp/app/id1573240509
    あいうべ体操のバグ取り報告
     数か月掛けて対応中

    8月20日(金)

     参加者
       大島・・・司会
       能 ・・・Scratch利用者
       鈴木・・・Swift利用者
       古川・・・Scratch利用者
       高見・・・Scratch発表、女性、楽譜並び替え発表
       大和田・・Scratch利用者、女性
       水谷・・・初参加、男性
       山本・・・Scratch発表、お絵かき発表
       福井・・・
       大倉・・・

    入手した情報

      Jamboard・・自由に白板へ書き込み(全員で使用体験)
      Scrtch・・・プレゼン資料(多言語対応)
      Flipgrid・・・教育向け、無料の動画共有サービス
    議事録①https://docs.google.com/document/d/1gTIJsH_5AoVDtKVI9v2FvfPRFyeDJlNobUewhavUtV0/edit
    SCRATCH作品紹介
    (お絵描き)
    山本さんデータは(太さ、x、y、色)がリストに保存されている。
    太さ0はペンアップの意味
    描いたり消したりしたときにリストの長さは増えたり減ったりする。
    描くとき自動的にリストができて、リストを再現するとお絵かきが再生されます。
    ずっと押していると太くなる。速く描くと細くなる。
    カーソルの位置情報が随時リストに保存されている。
    SCRATCH作品紹介
    (楽譜組合せ)
    高見さん楽譜のジグソーパズルのようなスクラッチのプログラム
    音楽を聴きながら楽譜を並べていくものです。
    音符の向きをばらばらにしたものも検討中。
    ジグソーパズルの形の作り方が分からなかったので楽譜にしました。
    曲は何回も繰り返されます。
    間違った箇所には楽譜は張り付きません。
    前から順に張り付けないと張り付かないかもしれません。
    Googleアプリの紹介古川さんjamboard
     ※2024年12月 サポート終了
    Scratch紹介
    (Zoomへの入り方)
    能さん➀https://scratch.mit.edu/projects/557925645/fullscreen/
    使い方不明(動作確認できず)
    Scratch Conference 2021
    (高齢者への普及活動:プレゼン)
    能さん ②https://flipgrid.com/s/8HzsQwxRWG3A?fbclid=IwAR2oXCwV8VAaRwtB_QZe-jIzDuIXjtuUWZ1FtBTNXkNgAqN1QqtlaL5LNi8
    (Flipgridとvrewの利用)
    自主製作動画能さん ③https://photos.app.goo.gl/pCfLA1N3PQRbDmas6
    (オリンピック、ウインドサーフィン競技)

    7月16日(金)

     参加者
       大島・・・司会
       のう・・・Scratch利用者
       鈴木・・・Swift利用者
       古河・・・Scratch利用者
       高見・・・Scratch発表、女性
       大和田・・初参加、scratch希望、女性
       不明・・・島田?、scratch発表、男性
       不明・・・??

    入手した情報

      Synthesizer V・・・作品事例の紹介
      背景削除・・・無料変換サイト
    Synthesizer V
    (歌声合成)
    高見さん①https://www.ah-soft.com/synth-v/
    Dreamtonicsが開発する歌声合成ソフト
    SCRATCH作品紹介
    (かごめかごめ)
    (ナンプレ作成)
    高見さん
    島田?さん
    背景削除
    古川さん①https://www.remove.bg/ja
    ②https://pixlr.com/jp/remove-background/
    メルアド紹介のうさんakihikonoh3@gmail.com
    お口の健康鈴木さん作品完成
    googgle ドキュメントのうさん共有ファイルを全員で更新

    6月18日(金)

     参加者
       大島・・・司会
       のう・・・Scratch利用者
       鈴木・・・Swift利用者
       古川・・・Scratch利用者
       小泉・・・新規参加者、男性
       高見・・・復活登場、Scratch利用者、女性
       俊彦・・・復活登場、Paython希望者、男性
       不明・・・福島さん?

    入手した情報

      scratch・・・作品事例の紹介
      kotlin・・・Android用の開発ソフト
      Vrew・・・使い方紹介(Youtube)
    SCRATCH作品紹介
    (日付計算)
    古川さん①https://scratch.mit.edu/projects/298626503/fullscreen/
    ②https://scratch.mit.edu/projects/544634515/fullscreen/
    ③https://scratch.mit.edu/projects/545817872/fullscreen/
    ④https://scratch.mit.edu/projects/529168755/fullscreen/
    SCRATCH作品紹介
    (聖火ランナー)
    MITの紹介
    古川さん①https://scratch.mit.edu/projects/384253782/fullscreen/
    ②https://scratch.mit.edu/
    Kotlin紹介古川さん①https://developer.android.com/kotlin
    ②https://www.tohoho-web.com/ex/kotlin.html
    Vrewの紹介
    (Youtube)
    古川さんhttps://www.youtube.com/watch?v=cUmdA-CB00M
    akihikonoh3@gmail.com
    SCRATCH作品紹介
    (十二支)
    高見さん①https://scratch.mit.edu/projects/528051374/
    Scratch作品紹介
    (県庁所在地クイズ)
    古川さん①https://scratch.mit.edu/projects/525112081/

    個人HP紹介
    作品紹介
    鈴木さん①http://www.tomiji.net
    ②http://tomzyapp.com/gijutsushoten/index.html

    5月21日(金)

     参加者
       大島・・・司会、Paython関係者?
       のう・・・Scratch関係者、鎌倉在住?
       福島・・・プログラミング教室(Web上)、女性
       鈴木・・・Swift関係者、86才、商社マンからI-Phoneアプリ開発
       古川・・・Scratch関係者、リスト処理の発表

    入手した情報

      Swift・・・i-phone専用の開発ソフト
      Vrew・・・動画編集+文字起こし
      待機室・・・Zoomで会議開催前に待機する場所
    TECH PLAYhttps://techplay.jp/
    ミライ道場福島さんhttps://miraidojo.com/

    個人の開発サイト
    動画音声をテキスト変換のうさんhttps://vrew.voyagerx.com/ja/

    Vrewの紹介
    Zoom 待機室大島さんhttps://support.zoom.us/hc/ja/articles/115000332726-Waiting-Room

    Zoomの待機室作成
    Scratch リスト処理古川さんhttps://docs.google.com/presentation/d/1kwN0amQtor2cCF51eK4XQFq6DZHcuXlRLqROHfSqn3c/edit#slide=id.p

    個人作成のscratch見本
    読み上げウォッチ鈴木さんhttps://apps.apple.com/jp/app/id1535293155
    音声入力アシスト鈴木さんhttps://apps.apple.com/jp/app/id1324919578
    出版案内鈴木さんhttp://tomzyapp.com/gijutsushoten/index.html
    鈴木富司鈴木さんhttp://www.tomiji.net/
  • セルの末尾の文字が欠ける

    1.Office製品の特徴

     2大製品のWordとExcelについて
       Wordは文書作成に特化しており、見た目に合わせて文書の印刷を行う
       Excelは表計算に特化しており、計算結果を正確に保って印刷を行う

       基本的な違いがあるにせよ、どちらも枠内に入りきらない条件は同じ
         両ソフトとも、罫線の太さ、文字の大きさ、横幅の大きさを使って
           印刷する際に計算し直し、印刷る文字数を決める
           対策はほぼ同じことになる

    2.枠内に印刷する方法

     ・枠組を崩しても良い場合
       枠の横幅を広げる
         セルの境界線にマウスポインターを置いて、ダブルクリック
           自動的に文字の長さに合わせて、枠の幅が広がる
         セルの幅を数値で指定して広げる、こともできる

         見た目が大きく崩れないなら、ベストな対応
         広げた影響で他が狭くなったらもう一度考える

     ・枠組を崩さない場合
       枠内の文字の大きさを小さくする
         文字のバランスが崩れるのが欠点

       セルの書式設定を「折り返して全体を表示する」にする
         自動的に右端で折り返して、2行以上にわたって印刷する
         枠の高さが変わるのが欠点

       セルの書式を「縮小して全体を表示する」にする
         自動的に文字の大きさを変えて印刷する
         枠の高さも横幅も変わららないのが長所
         全体からすると、変えた箇所だけが目立つのが欠点

  • 曲線(グラフ)で表示

    1.Bathtub curve(故障率曲線)

     故障率曲線とも呼ばれる
       機械や装置の時間経過に伴う故障率の変化を表示した曲線

     機械や装置が運用され始めてから、やがて寿命を迎えるまでの期間を
       「初期故障期」「偶発故障期」「摩耗故障期」の3つに区分し
       横軸に経過時間tを、縦軸に故障率をとる

     初期故障期(early failure period、infant mortality等)
       機械や装置の使用開始から、最初の一年程度がこの期間
       材料の欠陥、設計時のミス、製造エラーや検品漏れなどが原因で
         比較的故障率が高い傾向にある
       ある程度時間が経過すれば故障発生の確率も落ち着いてくるため
         グラフが下降していく傾向にある

       初期不良の発生を下げるための手法(バーンイン試験 burn-in)
         機械・装置を実際に想定される仕様や方法で一定期間放置させ、
         故障や機能的な不具合がないかなどを確認する

     偶発故障期(intrinsic failure period、useful life等)
       
    初期故障期を過ぎ、故障の発生する確率も安定する傾向にある
         初期故障期に比べると、故障率が低い傾向にある

     摩耗故障期(wear-out failure period)
       摩耗や疲労などにより、機械や装置の潜在的な故障が表出する時期
         劣化への対策を施すことで、耐用期間(useful life)を延ばす

    2.Gompertz curve(ゴンペルツ曲線)

     信頼度曲線(バグ曲線)とも呼ばれる
       一般に観察されるS字形状の曲線で表す

     テスト消化件数とバグの検出件数の関係を示したグラフ
       進捗状況や残存バグ数を推定するために用いる

     テストを開始した直後は
       テスト手順が確立していないため、バグはなかなか見つからない

     テスト手順が確立した後は
       時間が経つにつれて順調にバグが見つかる

     テストが終盤に近づくと
       残っているのはテスト困難なレアケースになり、再びバグを見つけにくい

     バグが大量に見つかる(aのケース)
       テスト開始時点の品質が悪い疑いがある
         対応策:前工程で見つけるべきバグかどうかを判断する
               バグの対応でテストの進捗が悪くなることを防ぐため
               もう一度前工程に戻って品質強化を行う必要がある
     発見されるバグが少ない(bのケース)
       テストケースの作り込みが甘い疑いがある
         対応策:テストケースの網羅性が十分かを見る
               網羅性が不十分な場合は、修正を指示する

    3.Logistic curve(ロジスティック曲線)

     生物の個体数の増加などを記述する微分方程式の解として得られる曲線
       マーケティングにおいての新製品の普及曲線と適合し、S字カーブを描く

     S字型を描く非線形関数で、特に成長モデルにおいて広く使われる
       最初はゆっくりとした成長から始まり、途中で急激に成長し、
       その後、成長が徐々に減速して最終的に上限に達する

    4.OC curve(Operating Characteristic curve)

     検査特性曲線とも呼ばれる
       製品の抜き取り検査でロットの不良率と合格率の関係を表す
     


     ロットからn個のサンプル、それに含まれる不良品個数が c個以上は不合格
       ロットの合格率(p)を縦軸に、実際のロットの不良率(q)を横軸に取り
       pとqの関係を表した曲線

       不良率が低ければ合格率は高まり、不良率が高ければ合格率は下がる
         グラフは左上から右下へ緩やかなカーブを描く

     生産者危険(producers’ risk)
       本来合格となるべきロットが、抜き取り検査で不合格になってしまう確率

     消費者危険(consumers’ risk)
       本来不合格となるべきロットが合格になってしまう確率

  • アヤメの種類判別(その5)

    実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある

    1.事前準備

     matplotlibを使って可視化する
       「Work Shop」の「3大ライブラリー」のMatplotlibを参照
     
     スライスを使ってデータを特定する
       リストや文字列、タプル等のシーケンス型の一部を
       インデックスを指定して取り出す

       複数の数値をコロン(:)で区切って[ ]で囲う
         a[start : stop : step]
           step:何個ごとに抽出するか(デフォルト=1)
           start:切り取りたい部分の開始(一番左)のインデックス
           stop:切り取りたい部分の終わり(一番右)のインデックス

    2.散布図の作成

     x軸にはがく片の長さ、y軸にはがく片の幅をセット、散布図を描く
       がく片の長さとがく片の幅だけで、特徴が現れる

       3つのブロックが50㎝、100㎝で区切られる理由が分からない

    import matplotlib.pyplot as plt
    
    x = iris.data
    y = iris.target
    
    plt.scatter(x[:50, 0], x[:50, 1], color='r', marker='o', label='setosa')
    plt.scatter(x[50:100, 0], x[50:100, 1], color='g', marker='+', label='versicolor')
    plt.scatter(x[100:, 0], x[100:, 1], color='b', marker='x', label='virginica')
    plt.title("Iris Plants Database")
    plt.xlabel("sepal length(cm)")
    plt.ylabel("sepal width(cm)")
    plt.legend()
    plt.show

     scatter命令について
       scatterの第1引数がX軸、第2引数がY軸
       引数で線の色(color='')やマーカーの種類(marker='')、インデックス(index='')なども指定できる

       散布図

    3.機械学習

     TensorFlowとKerasをロードする

     乱数のシード値を固定して並べ替える
       引数は実数であれば良い、1に設定する
       TensorFlowの重みの設定が固定される

     idxr = [k for k in range(Ndata)]はリスト内包表記という
       既存のリストから新しいリストを作ること
       分かりやすく分解すると下記のようになる
         idxr = []
         for k in Ndate
           idxr.append(k)

     print文でリスト内に0から149までの数値が格納されていることを確認する

     random.shuffle(idxr)よって先ほどのリストの中身をシャッフルし、
       print(idxr)で中身がランダムに再配置されたか確認する

    #
    #TensorFlowとKerasをロードする
    #
    import tensorflow as tf
    from tensorflow import keras
    print(tf.__version__)
    #
    #シード値を設定する
    #
    tf.random.set_seed(1)
    #
    #データをランダムに並べ替える
    #
    import random
    
    random.seed(12345)
    Ndata = len(iris.data)
    print(f"Ndata={Ndata}")
    idxr = [k for k in range(Ndata)]
    print(idxr)
    random.shuffle(idxr)
    print(idxr)

     データを分割する
       訓練データと検証データを半分、半分に分割する

     print(f"# of training data = {Ndata_train}")と
     print(f"# of validation data = {Ndata-Ndata_train}")で
       それぞれ訓練データと検証データの数を出力する

     train_data = iris.data[idxr[:Ndata_train]]の行では訓練データを、
     train_labels = iris.target[idxr[:Ndata_train]]の行では訓練データの教師ラベルを
       スライスを使って、idxrの0~74番目を各iris.dataとiris.targetに対応させ
       train_dataとtrain_labelsに代入する

     val_data = iris.data[idxr[Ndata_train:]]の行では検証データを、
     val_labels = iris.target[idxr[Ndata_train:]]の行では検証データの教師ラベルを
       スライスを使って、idxrの75~149番目を各iris.dataとiris.targetに対応させ
       val_dataとval_labelsに代入する

    Ndata_train=int(Ndata*0.5)
    print(f"# of training data = {Ndata_train}")
    print(f"# of validation data = {Ndata-Ndata_train}")
    
    train_data = iris.data[idxr[:Ndata_train]]
    train_labels = iris.target[idxr[:Ndata_train]]
    
    val_data = iris.data[idxr[Ndata_train:]]
    val_labels = iris.target[idxr[Ndata_train:]]

     ニューラルネットワークを作成する
       KerasのSequentialというクラスを使ってニューラルネットワークを作成

       4次元(がく片の長さ、がく片の幅、花弁の長さ、花弁の幅)のデータから
       3次元(setosa, versicolor, virginica)のラベルへ層が構成されている

       中間層は2層でユニット数(中間層の次元)は10、
         Denseで設定したため全結合層になっている

       modelには、keras.Sequentialから作成したインスタンスが入っており、
         これを使用してデータを学習させることが可能になる

    model = keras.Sequential([
        keras.layers.Dense(4, activation='relu'),
        keras.layers.Dense(10, activation='relu'),
        keras.layers.Dense(10, activation='relu'),
        keras.layers.Dense(3, activation='softmax')
    ])

     機械学習の準備を行う
       modelインスタンスのcompileメソッドを使って学習の設定を行う

       compileには引数が3つ
         optimizer:最適化手法を設定する
           今回はSGDに設定
         loss:損失関数を設定する
           今回はsparse_categorical_crossentropyに設定
         metrics:評価関数を設定する
           accuracyを入れておけば問題ない、評価関数を設定しても良い

    model.compile(optimizer='SGD',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])

     機械学習を行う
       modelインスタンスのfitメソッドを使うことで学習を行う

       fitの引数に
         訓練データとそれに対応する訓練データのラベルを代入する
         オプションとして他に4つの引数を使っている
           validation_data:検証用データをタプルにして渡す
             (val_data, val_labels)を設定する
           epochs:エポック数を設定、デフォルトは1
             30に設定するしている
           batch_size:バッチサイズを設定、デフォルトは32
             ミニバッチのサイズはNdata_train//10によって7つだが、
             この数字に特に意味はない
           verbose:ログ出力の設定、デフォルトは1
             0だとログが出ない
             正の値だと細かいログが出力される
             負の値だとepoch数のみ表示される

    training_history = model.fit(train_data, train_labels,
                                 validation_data=(val_data, val_labels),
                                 epochs=30,
                                 batch_size = Ndata_train//10,
                                 verbose=1)

     結果を評価する
       履歴を見る
         fitの返り値をtraining_historyに代入し、中身を見る

       大量に表示されるが履歴はhistoryに格納されている
         出力結果に'accuracy':とあることからdict型のリストである

       辞書のキーに何が入ってるのか確認するためにkeysメソッドを使う
         4つのキーで構成されていることがわかる
           val_accuracy:検証データに対する精度の値
           loss:訓練データに対する損失関数の値
           accuracy:訓練データに対する精度の値
           val_loss:検証データに対する損失関数の値

    dir(training_history)
    
    training_history.history
    
    training_history.history.keys()

     精度を確認する
       訓練データに対する精度の値と検証データに対する精度の値を確認する
         訓練データに対する精度の値が79%
         検証データに対する精度の値が73%

    print("traininig")
    print(training_history.history['accuracy'][-1])
    print("validation")
    print(training_history.history['val_accuracy'][-1])

     損失関数と精度の履歴について散布図で可視化する
       損失関数の散布図は対数軸にするためにplt.semilogyを使う
       精度の散布図はplt.ylimを使ってy軸の範囲を0~1.1に設定する

    # 訓練データに対する損失関数のプロット
    y=training_history.history['loss']
    x=range(len(y))
    plt.semilogy(x,y,label="loss for training")
    
    # 検証データに対する損失関数のプロット
    y=training_history.history['val_loss']
    x=range(len(y))
    plt.semilogy(x,y,label="loss for validation",alpha=0.5)
    
    plt.legend()
    plt.xlabel("Steps")
    plt.show()
    
    # 訓練データに対する精度のプロット
    y=training_history.history['accuracy']
    x=range(len(y))
    plt.plot(x,y,label="accuracy for training")
    
    # 検証データに対する精度のプロット
    y=training_history.history['val_accuracy']
    x=range(len(y))
    plt.plot(x,y,label="accuracy for validation")
    
    plt.legend()
    plt.xlabel("Steps")
    plt.ylim(0,1.1)
    plt.show()

    4.結論

     最終的な訓練データの正答率は79%、検証データの正答率は73%
       アヤメは3種類なので当てずっぽうの33.3%よりは高い精度

     散布図では損失関数が減少すると分類精度は上昇する、負の相関が見られる

  • シニアプログラミング発表会 #1

     第1回 1月15日(土)

    発表者

    Youtube シニアプログラミング発表会 #1

    発表者

    「科学日本語」教材の作成
     日英語の絵本と教材作成
    林洋子Scratch
    絵本の左右に日本語と英語を併記する
    日本語と英語で音読する
    毎日やることの記録佐藤洋子Java
    SQLiteを使用して活動記録の保存・照会(Android用)
    ListViewを使って表示
    PHPを学習中布施寛PHP
    HTMLとCSSでホームページを作成しphpでForm入力
    ※今のザーバーではPHPが動かない
    「ひとり親控除」「寡婦控除」の適用判定園田真理子Python
    順次質問項目に答えながら、入力枠に入力すると手作業で積算していた判定基準を出力する
    Pythonから文字属性を指定するモジュールを探し出す
    DotchWinMatchMake山本泰三UWP
    公開競技の勝敗結果をJSONを使って集約し、参加者同士のコミュニケーションツールに使用する
    楽しい基本英文50選今井裕Scratch
    音声による問題出力、英語の文言を選択して答える
  • リスク対応策

    1.回避

     リスクを生じさせる要因そのものを取り除く
       リスク破棄とも呼ばれる

       (例)新規事業について、成功した場合に得られるであろうリターンと、
           万が一失敗した場合に発生する最大予想損失額を比べて、
           とろうとしているリスクにリターンが見合わなければ、
           その新規事業を続けることそのものをあきらめる

    2.軽減

     リスクの発生可能性を下げる、リスクが顕在した際の影響を小さくする
       それら両方の対策をとることも含む

       (例)地震によるリスクにおいて
           リスクを下げる対策は、耐震補強する
           リスクの影響を小さくする対策は、別工場の操業レベルを上げる

    3.移転

     リスクを自組織外へ「移転」する
       リスク共有とも呼ばれる
       保険への加入、専門家にアウトソースする

       (例)自社のサーバルームから、データセンター事業会社に移設する

    4.保有

     特に対策をとらず、その状態を受け入れる
       リスクが受け入れ可能な大きさであると判断された場合
       現実的な対策がないためやむを得ず受け入れると判断された場合

       (例)償却の進んだ車に破損や盗難保険をかけず、自身の資金で対応する

    5.まとめ

     とるべき対策の選択肢は、
       リスクの発生可能性や影響度の大きさや経営の意思によって変わってくる
         発生可能性も影響度もいずれも大きいと判断されたリスク
           リスクの大きさを小さくするための努力をするよりも、
           むしろ、リスク回避をしたほうが望ましい

         発生可能性が小さいものの影響度が大きい場合には、
           BCPなどを用いたリスク軽減が望ましい

  • 管理のサイクル

    1.PDCA サイクル

     計画のPDCA
       新しいことを行う際に、計画し、実行し、評価し、改善するサイクル

     仮説・検証型プロセスを循環させ、マネジメントの品質を高めようという概念
       Plan(計画)、Do(実行)、Check(評価)、Action(対策・改善)
       1950年代、エドワーズ・デミングが提唱したフレームワーク
       「改善プロセスのお作法」ともいうべき、基本的なフレームワーク

     サイクルであるため
       Plan・Do・Check・Actの順にサイクルを一方向に回す

     Plan(計画)
       目標・目的を設定し、実行計画(アクションプラン)を立案する
         闇雲に目標設定をし、過去のやり方を踏襲した計画をではなく、
           なぜそのような目標を立てるのか
           なぜそのような実行計画を立てるのか
         自らの仮説に立脚した論理的なPlanを意識する

     Do(実行)
       計画を実行に移す

     Check(評価)
       実行した内容の検証を行う
         計画通りに実行できなかった場合、
           なぜ計画通りに実行できなかったのか、要因分析を入念に行う
         運用する時の課題抽出の際に
           定量的なデータだけでなく、定性情報を活用する

     Action(改善)
       検証結果を受け、今後どのような対策や改善を行っていくかを検討する
         Checkで仮説の検証、要因分析がしっかりと行えないと、
         誤った対応策を立て失敗することがある

    2.SDCA ループ

     標準化のSDCA
       実行したことを手順化(標準化)し、誰でもできるようにし
         教育(実行)し、誰でもできるか評価し、手順を改善するサイクル

     仕事のプロセスのムダをなくし、標準化するための手法
       作業がしやすくなり、ヒトによるバラつきがなくなるため、
       サービスの品質を安定させることができる
       Standardize(標準化)、Do(実行)、Check(評価)、Act(更新)

     PDCAばかりを続けると、早く効率的にはなるが、改善スピードに限界が出る
       うまくいった経験を標準化し、広めていくサイクルのほうが重要

    3.OODA ループ

     4つのフェーズを繰り返し運用し、
       迅速な意思決定や行動を促すためのフレームワーク
       Observe(観察)→Orient(状況判断)→Decide(意思決定)→Act(実行)

     ループであるため
       必要に応じて途中で前の段階に戻ってループから再開したり、
       状況に応じて任意の段階からループをリスタートしたりできる

     部品製造会社におけるOODAループの具体的な活用例
       ・Observe(観察)
         クライアントの製品需要や、
         自社で製造を請け負う部品の受注状況、
         社内での生産進捗を調べて把握する
       ・Orient(状況判断)
         現状では受注した部品2000個が、納期までに完成しないと判断
       ・Decide(意思決定)
         24時間体制に変更することに決め、納期をクリアできると確信
       【変化】クライアントの製品がヒット、追加受注が発生
       ・Orient(状況判断)
         自社だけでは、これ以上生産数を増やすことができないと判断
       ・ Decide(意思決定)
         他社に外注可能かどうかを確認し、3000個の生産計画に変更
       ・Act(実行)
         他社に生産依頼し、数量・納期をクリア
       【ニーズに即対応】高い付加価値を得る
       ・Orient(状況判断)
         先頭に戻って、観察を行う

    4.EDM モデル

     ITガバナンスの定義
       情報システムの企画、開発、保守、運用に関わる
          IT マネジメントとそのプロセスに対して
         経営陣が評価し、指示し、モニタする

       JIS Q 38500 より
         評価(Evaluate)、指示(Direct)、モニタ(Monitor)の頭文字

       評価とは
         現在の情報システムと将来のあるべき姿を比較分析し、
         IT マネジメントに期待する効果と必要な資源と
         想定されるリスクを見積もる
       指示とは
         情報システム戦略を実現するため必要な責任と資源を組織へ割り当て
         期待する効果の実現と想定されるリスクに対処するよう
         IT マネジメントを導く
       モニタとは
         現在の情報システムについて
         情報システム戦略で見積もった効果をどの程度満たしているか、
         割り当てた資源をどの程度使用しているか、
         想定したリスクの発現状況についての情報を得られるよう、
         IT マネジメントを整備すると共に、
         IT マネジメントの評価と指示のために必要な情報を収集する

  • アヤメの種類判別(その4)

    実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある

    iris(菖蒲:アヤメ)データセットの内容を詳細に確認する方法
     (その1)の
       行番号1~24:ハウスキーピング部分
       行番号68〜99:データ出力部分 を使用する

    #
    import pandas as pd
    from sklearn import datasets      
    iris_datasets =  datasets.load_iris()
    iris = pd.DataFrame(iris_datasets.data,columns = iris_datasets.feature_names)
    iris['target'] = iris_datasets.target
    #
    #
    #
    # データの先頭
    print("***先頭****")
    print(iris.head(7))
    print("********")
    #
    # データの概要
    print("***概要****")
    print(iris.info())
    print("********")
    #
    # データの要約統計量
    print("***統計*****")
    print(iris.describe())
    print("********")
    #
    # データの形状
    print("***形状*****")
    print(iris.shape)
    print("********")
    #
    # データ要素の取り出し
    print("***要素*****")
    print(iris.iloc[:10])
    print("********")
    #
    # 条件に合う行の取得
    print("***条件*****")
    print(iris.query("target==1"))
    print("********")
    #
    #

    以下はサンプルコードと出力例

    1.データの先頭行

    # データの先頭行
    print("***先頭****")
    print(iris.head(7))
    print("********")
    ***先頭****
       sepal length (cm)  sepal width (cm)  ...  petal width (cm)  target
    0                5.1               3.5  ...               0.2       0
    1                4.9               3.0  ...               0.2       0
    2                4.7               3.2  ...               0.2       0
    3                4.6               3.1  ...               0.2       0
    4                5.0               3.6  ...               0.2       0
    5                5.4               3.9  ...               0.4       0
    6                4.6               3.4  ...               0.3       0
    
    [7 rows x 5 columns]
    ********

     「7」を指定すると・・・可変値
       先頭から7件の内容を出力する
     
     項目について
       sepal length・・・がく(外側)の長さ
       sepal width・・・がく(外側)の幅
       petal length・・・花弁(内側)の長さ
       petal width・・・花弁(内側)の幅
       target・・・品種

    品種(target)名称イメージ
    0setosa
    セトーサ

    ヒオウギアヤメ
    1versicolor
    ヴァーシカラー

    ブルーフラッグ
    2virginica
    ヴァージニカ

    ヴァージニカ

    2.データの概要

    # データの概要
    print("***概要****")
    print(iris.info())
    print("********")
    ***概要****
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 150 entries, 0 to 149
    Data columns (total 5 columns):
     #   Column             Non-Null Count  Dtype  
    ---  ------             --------------  -----  
     0   sepal length (cm)  150 non-null    float64
     1   sepal width (cm)   150 non-null    float64
     2   petal length (cm)  150 non-null    float64
     3   petal width (cm)   150 non-null    float64
     4   target             150 non-null    int64  
    dtypes: float64(4), int64(1)
    memory usage: 6.0 KB
    None
    ********

     項目について
       RangeIndex・・・行数(例:150件)
       Data columns・・・列数(例:5カラム)
       列名、列の型、データタイプ等を表す

    3.データの要約統計量

    # データの要約統計量
    print("***統計*****")
    print(iris.describe())
    print("********")
    ***統計*****
           sepal length (cm)  sepal width (cm)  ...  petal width (cm)      target
    count         150.000000        150.000000  ...        150.000000  150.000000
    mean            5.843333          3.057333  ...          1.199333    1.000000
    std             0.828066          0.435866  ...          0.762238    0.819232
    min             4.300000          2.000000  ...          0.100000    0.000000
    25%             5.100000          2.800000  ...          0.300000    0.000000
    50%             5.800000          3.000000  ...          1.300000    1.000000
    75%             6.400000          3.300000  ...          1.800000    2.000000
    max             7.900000          4.400000  ...          2.500000    2.000000
    
    [8 rows x 5 columns]
    ********

     項目について
       count・・・件数
       mean・・・平均値
       std・・・標準偏差
       min・・・最小値
       25%・・・1/4分位点
       50%・・・中央値
       75%・・・3/4分位点
       max・・・最大値

    4.データの形状

    # データの形状
    print("***形状*****")
    print(iris.shape)
    print("********")
    ***形状*****
    (150, 5)
    ********

     項目の説明
       150行、5列のデータセット

    5.データ要素の取り出し

    # データ要素の取り出し
    print("***要素*****")
    print(iris.iloc[:10])
    print("********")
    ***要素*****
       sepal length (cm)  sepal width (cm)  ...  petal width (cm)  target
    0                5.1               3.5  ...               0.2       0
    1                4.9               3.0  ...               0.2       0
    2                4.7               3.2  ...               0.2       0
    3                4.6               3.1  ...               0.2       0
    4                5.0               3.6  ...               0.2       0
    5                5.4               3.9  ...               0.4       0
    6                4.6               3.4  ...               0.3       0
    7                5.0               3.4  ...               0.2       0
    8                4.4               2.9  ...               0.2       0
    9                4.9               3.1  ...               0.1       0
    
    [10 rows x 5 columns]
    ********

      配列(リスト)の値を取り出す
       開始位置、終了位置、増分を指定する

     項目の説明
       

    6.条件に合う行の取得

    # 条件に合う行の取得
    print("***条件*****")
    print(iris.query("target==1"))
    print("********")
    ***条件*****
        sepal length (cm)  sepal width (cm)  ...  petal width (cm)  target
    50                7.0               3.2  ...               1.4       1
    51                6.4               3.2  ...               1.5       1
    52                6.9               3.1  ...               1.5       1
    53                5.5               2.3  ...               1.3       1
    54                6.5               2.8  ...               1.5       1
    55                5.7               2.8  ...               1.3       1
    56                6.3               3.3  ...               1.6       1
    57                4.9               2.4  ...               1.0       1
    58                6.6               2.9  ...               1.3       1
    59                5.2               2.7  ...               1.4       1
    60                5.0               2.0  ...               1.0       1
    61                5.9               3.0  ...               1.5       1
    62                6.0               2.2  ...               1.0       1
    63                6.1               2.9  ...               1.4       1
    64                5.6               2.9  ...               1.3       1
    65                6.7               3.1  ...               1.4       1
    66                5.6               3.0  ...               1.5       1
    67                5.8               2.7  ...               1.0       1
    68                6.2               2.2  ...               1.5       1
    69                5.6               2.5  ...               1.1       1
    70                5.9               3.2  ...               1.8       1
    71                6.1               2.8  ...               1.3       1
    72                6.3               2.5  ...               1.5       1
    73                6.1               2.8  ...               1.2       1
    74                6.4               2.9  ...               1.3       1
    75                6.6               3.0  ...               1.4       1
    76                6.8               2.8  ...               1.4       1
    77                6.7               3.0  ...               1.7       1
    78                6.0               2.9  ...               1.5       1
    79                5.7               2.6  ...               1.0       1
    80                5.5               2.4  ...               1.1       1
    81                5.5               2.4  ...               1.0       1
    82                5.8               2.7  ...               1.2       1
    83                6.0               2.7  ...               1.6       1
    84                5.4               3.0  ...               1.5       1
    85                6.0               3.4  ...               1.6       1
    86                6.7               3.1  ...               1.5       1
    87                6.3               2.3  ...               1.3       1
    88                5.6               3.0  ...               1.3       1
    89                5.5               2.5  ...               1.3       1
    90                5.5               2.6  ...               1.2       1
    91                6.1               3.0  ...               1.4       1
    92                5.8               2.6  ...               1.2       1
    93                5.0               2.3  ...               1.0       1
    94                5.6               2.7  ...               1.3       1
    95                5.7               3.0  ...               1.2       1
    96                5.7               2.9  ...               1.3       1
    97                6.2               2.9  ...               1.3       1
    98                5.1               2.5  ...               1.1       1
    99                5.7               2.8  ...               1.3       1
    
    [50 rows x 5 columns]
    ********

     品種が「1(versicolor)」を取り出す(例)
       50件のデータが存在する

  • アヤメの種類判別(その3)

    実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある

    iris(菖蒲:アヤメ)データセットを使って進める
      (その3)は行番号52~66までを解説する

    #
    #   1.データの読み込み
    #
    import pandas as pd
    import numpy  as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    #
    from sklearn import datasets
    #      
    %matplotlib inline
    #
    iris_datasets =  datasets.load_iris()
    #
    #
    #print("***詳細*****",flush=True)
    #print(iris_datasets.DESCR)
    #print("********",flush=True)
    #
    #
    #   2.データの確認
    #
    iris = pd.DataFrame(iris_datasets.data,columns = iris_datasets.feature_names)
    iris['target'] = iris_datasets.target
    #
    iris.head()
    #
    #
    #   3.モデルの学習
    #
    target = iris['target']
    data = iris[iris_datasets.feature_names]
    #
    from sklearn import model_selection
    data_train,data_test,target_train,target_test = \
            model_selection.train_test_split(data,target,train_size=0.8)
    #
    print(target_train.shape,target_test.shape)
    print(data_train.shape,data_test.shape)
    #
    from sklearn.svm import SVC
    model = SVC(gamma='scale')
    model.fit(data_train,target_train)
    #
    target_predict = model.predict(data_test)
    #
    print(target_predict)
    print(np.array(target_test))
    #
    model.score(data_test,target_test)
    #
    #
    #   4.モデルの評価
    #
    from sklearn.metrics import precision_score
    from sklearn.metrics import recall_score
    from sklearn.metrics import f1_score
    #
    precision = precision_score(target_test,target_predict,average='micro')
    recall = recall_score(target_test,target_predict,average='micro')
    f1 = f1_score(target_test,target_predict,average='micro')
    #
    print('適合率(precision)',precision)
    print('再現率(recall)',recall)
    print('F値(F-measure)',f1)
    #
    #
    #
    # データの先頭
    #print("***先頭****",flush=True)
    #iris.head()
    #print("********",flush=True)
    #
    # データの概要
    #print("***概要****",flush=True)
    #iris.info()
    #print("********",flush=True)
    #
    # データの要約統計量
    #print("***統計*****")
    #iris.describe()
    #print("********")
    #
    # データの形状
    #print("***形状*****")
    #iris.shape
    #print("********")
    #
    # データ要素の取り出し
    #print("***要素*****")
    #iris.iloc[:10]
    #print("********")
    #
    # 条件に合う行の取得
    #print("***条件*****")
    #iris.query("target==1")
    #print("********")
    #
    #

    以下にサンプルコードと解説を載せます

    4.モデルの評価

    #
    from sklearn.metrics import precision_score
    from sklearn.metrics import recall_score
    from sklearn.metrics import f1_score

     評価用数値を求めるためにライブラリを読み込む
       適合率(precision)
         正解と予測した中で、実際に正解している割合
       再現率(recall)
         実際の正解の中で、正解と予測できた割合
       F値(F-measure)
         適合率と再現率の調和平均

    #
    precision = precision_score(target_test,target_predict,average='micro')
    recall = recall_score(target_test,target_predict,average='micro')
    f1 = f1_score(target_test,target_predict,average='micro')

     各々評価値を計算する
       目的変数の検証用データと予測結果で割合の計算

    #
    print('適合率(precision)',precision)
    print('再現率(recall)',recall)
    print('F値(F-measure)',f1)

     以下はprint文による出力例

    適合率(precision) 0.9666666666666667
    再現率(recall) 0.9666666666666667
    F値(F-measure) 0.9666666666666667

  • アヤメの種類判別(その2)

    実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある

    iris(菖蒲:アヤメ)データセットを使って進める
      (その2)は行番号28~51までを解説する

    #
    #   1.データの読み込み
    #
    import pandas as pd
    import numpy  as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    #
    from sklearn import datasets
    #      
    %matplotlib inline
    #
    iris_datasets =  datasets.load_iris()
    #
    #
    #print("***詳細*****",flush=True)
    #print(iris_datasets.DESCR)
    #print("********",flush=True)
    #
    #
    #   2.データの確認
    #
    iris = pd.DataFrame(iris_datasets.data,columns = iris_datasets.feature_names)
    iris['target'] = iris_datasets.target
    #
    iris.head()
    #
    #
    #   3.モデルの学習
    #
    target = iris['target']
    data = iris[iris_datasets.feature_names]
    #
    from sklearn import model_selection
    data_train,data_test,target_train,target_test = \
            model_selection.train_test_split(data,target,train_size=0.8)
    #
    print(target_train.shape,target_test.shape)
    print(data_train.shape,data_test.shape)
    #
    from sklearn.svm import SVC
    model = SVC(gamma='scale')
    model.fit(data_train,target_train)
    #
    target_predict = model.predict(data_test)
    #
    print(target_predict)
    print(np.array(target_test))
    #
    model.score(data_test,target_test)
    #
    #
    #   4.モデルの評価
    #
    from sklearn.metrics import precision_score
    from sklearn.metrics import recall_score
    from sklearn.metrics import f1_score
    #
    precision = precision_score(target_test,target_predict,average='micro')
    recall = recall_score(target_test,target_predict,average='micro')
    f1 = f1_score(target_test,target_predict,average='micro')
    #
    print('適合率(precision)',precision)
    print('再現率(recall)',recall)
    print('F値(F-measure)',f1)
    #
    #
    #
    # データの先頭
    #print("***先頭****",flush=True)
    #iris.head()
    #print("********",flush=True)
    #
    # データの概要
    #print("***概要****",flush=True)
    #iris.info()
    #print("********",flush=True)
    #
    # データの要約統計量
    #print("***統計*****")
    #iris.describe()
    #print("********")
    #
    # データの形状
    #print("***形状*****")
    #iris.shape
    #print("********")
    #
    # データ要素の取り出し
    #print("***要素*****")
    #iris.iloc[:10]
    #print("********")
    #
    # 条件に合う行の取得
    #print("***条件*****")
    #iris.query("target==1")
    #print("********")
    #
    #

    以下にサンプルコードと解説を載せます

    3.モデルの学習

    #
    target = iris['target']
    data = iris[iris_datasets.feature_names]

     irisデータを機械学習用に準備する
      今回は評価用データは設けず、全て機械学習用とする
        目的変数(target)、説明変数(data)の2つを用意する
          目的変数:結果(推論を行う対象) 
          説明変数:要因(推論を行うために用いる変数)   

    #
    from sklearn import model_selection
    data_train,data_test,target_train,target_test = \
            model_selection.train_test_split(data,target,train_size=0.8)

     分割用のオブジェクトをsklearnから読み込む
       model_selectionを呼び出す

     データの分割にはtrain_test_split関数を使用する
       ランダムにデータをピックアップする関数
         ※記述した計算結果の数値は都度異なる結果になる

       目的変数と説明変数は以下の様に分割される
         target_train・・・80%、学習データ
         target_test ・・・20%、検証データ

         data_train・・・80%、学習データ
         data_test ・・・20%、検証データ

    #
    print(target_train.shape,target_test.shape)
    print(data_train.shape,data_test.shape)

     分割の結果を確認する
       目的変数の形状(shape)を各々出力する
       説明変数の形状(shape)を各々出力する

     以下はprint文による出力例

    (120,) (30,)
    (120, 4) (30, 4)

     150行のデータが各々120行と30行に分割されている
         target_train・・・80%(120行)
         target_test ・・・20%(30行)

         data_train・・・80% (120行、4列)
         data_test ・・・20% (30行、4列)

    #
    from sklearn.svm import SVC
    model = SVC(gamma='scale')
    model.fit(data_train,target_train)

     sklearn.svmモジュールに含まれるSVCクラスを呼び出す

     サポートベクターマシン(SVM)を使って学習する
       SVM・・・予測に必要なデータに絞り込んでいくこと
         例:1本の境界線で2つに分類できるとして、
           最もよく分類できる直線を求める

     モデルとしてガンマ分布(gamma)を使用する

     fit関数に学習データ(data_trainとtarget_tran)を渡す
       モデルのデータ関連性を学習する

    #
    target_predict = model.predict(data_test)

     検証データを使って予測する
       predict関数に説明変数の検証データを与えると
       予測結果がtarget_predictに返ってくる

    #
    print(target_predict)
    print(np.array(target_test))

     予測結果(target_predict)データと
     正解(目的変数の検証データ:target_test)を並べて比較する
       検証データは配列に変換する

     以下はprint文による出力例

    
    [0 0 2 2 1 1 1 2 2 1 0 1 1 1 2 0 0 1 1 1 1 0 0 0 0 1 0 0 2 0]
    [0 0 2 2 1 1 1 2 2 1 0 1 1 1 2 0 0 1 1 1 1 0 0 0 0 1 0 0 2 0]
    #
    model.score(data_test,target_test)

     正解率(決定係数)を計算する
       説明変数の検証データ(data_test)と
       目的変数の検証データ(target_test)とで正解率を求める

     以下は正解率(score関数の出力)

    0.9666666666666667
  • アヤメの種類判別(その1)

    実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある

    iris(菖蒲:アヤメ)データセットを使って進める
     (その1)は行番号1~27までを解説する

    #
    #   1.データの読み込み
    #
    import pandas as pd
    import numpy  as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    #
    from sklearn import datasets
    #      
    %matplotlib inline
    #
    iris_datasets =  datasets.load_iris()
    #
    #
    #print("***詳細*****",flush=True)
    #print(iris_datasets.DESCR)
    #print("********",flush=True)
    #
    #
    #   2.データの確認
    #
    iris = pd.DataFrame(iris_datasets.data,columns = iris_datasets.feature_names)
    iris['target'] = iris_datasets.target
    #
    iris.head()
    #
    #
    #   3.モデルの学習
    #
    target = iris['target']
    data = iris[iris_datasets.feature_names]
    #
    from sklearn import model_selection
    data_train,data_test,target_train,target_test = \
            model_selection.train_test_split(data,target,train_size=0.8)
    #
    print(target_train.shape,target_test.shape)
    print(data_train.shape,data_test.shape)
    #
    from sklearn.svm import SVC
    model = SVC(gamma='scale')
    model.fit(data_train,target_train)
    #
    target_predict = model.predict(data_test)
    #
    print(target_predict)
    print(np.array(target_test))
    #
    model.score(data_test,target_test)
    #
    #
    #   4.モデルの評価
    #
    from sklearn.metrics import precision_score
    from sklearn.metrics import recall_score
    from sklearn.metrics import f1_score
    #
    precision = precision_score(target_test,target_predict,average='micro')
    recall = recall_score(target_test,target_predict,average='micro')
    f1 = f1_score(target_test,target_predict,average='micro')
    #
    print('適合率(precision)',precision)
    print('再現率(recall)',recall)
    print('F値(F-measure)',f1)
    #
    #
    #
    # データの先頭
    #print("***先頭****",flush=True)
    #iris.head()
    #print("********",flush=True)
    #
    # データの概要
    #print("***概要****",flush=True)
    #iris.info()
    #print("********",flush=True)
    #
    # データの要約統計量
    #print("***統計*****")
    #iris.describe()
    #print("********")
    #
    # データの形状
    #print("***形状*****")
    #iris.shape
    #print("********")
    #
    # データ要素の取り出し
    #print("***要素*****")
    #iris.iloc[:10]
    #print("********")
    #
    # 条件に合う行の取得
    #print("***条件*****")
    #iris.query("target==1")
    #print("********")
    #
    #

    以下はサンプルコードと解説

    1.データの読み込み

    #
    import pandas as pd
    import numpy  as np
    import matplotlib.pyplot as plt
    import seaborn as sns

     必要なライブラリを読込む
       ライブラリ内のモジュールを読み込むこともできる
       読み込んだら処理しやすいように「as」を使って名前を付与する
       同一名になる場合は互いに異なる名前を付与する

     各ライブラリの説明 
       pandas・・・データの確認や抽出に適したライブラリ
       numpy・・・行列計算用ライブラリー
       matplotlib.pyplot・・・グラフ描画ライブラリーのpyplot部分
       seaborn・・・見た目の優れたグラフ描画ライブラリー

    #
    from sklearn import datasets

     サンプルデータを使用する準備
       sklearn・・・機械学習用のモデルやサンプルデータ
              分類や回帰などの機械学習に使えるdatasets群
       sklearnモジュールからdatasetsオブジェクトを取り出す

     「scikit-learn」は「サイキット・ラーン」と読み
       Pythonの機械学習ライブラリ(アルゴリズム)で構成されている

    #         
    %matplotlib inline

     グラフ 表示の設定
       %はインタラクティブサポートを有効化するためのコマンド
       「inline」とはその場(環境や状態)で表示する意味
         (注)グラフが書けない実行環境だとこの行はエラーになる

    #
    iris_datasets =  datasets.load_iris()

     irisのサンプルデータセットを読み込む
       load_iris 関数を使用する

    """
    print("***詳細*****",flush=True)
    print(iris_datasets.DESCR)
    print("********",flush=True)
    """

      irisのサンプルデータセットの内容を出力する
         ※コメントアウト(#)を外すと出力される
         *dir関数を使って dir(iris_datasets) 内容を表示することも可能
           概要を把握するにはこちらが便利
       50件づつ3つのクラスに分かれており全部で150件
       4つの数値データで構成されている

       詳細の確認をする
         目的変数 target 品種(3種類)
         説明変数 data  花びらの属性(長さと幅)

         説明変数名は「feature_names」に符号化され列名として存在する
           setosa、versicolor、virginica

       以下はprint文によるDESCR(Data Set Characteristics)の出力例
         DESCRはiris_datasetsの属性、値がstrのインスタンス

    python1>>> iris_datasets.__class__ 2<class 'sklearn.utils.Bunch'>

    ***詳細*****
    .. _iris_dataset:
    
    Iris plants dataset
    --------------------
    
    **Data Set Characteristics:**
    
        :Number of Instances: 150 (50 in each of three classes)
        :Number of Attributes: 4 numeric, predictive attributes and the class
        :Attribute Information:
            - sepal length in cm
            - sepal width in cm
            - petal length in cm
            - petal width in cm
            - class:
                    - Iris-Setosa
                    - Iris-Versicolour
                    - Iris-Virginica
                    
        :Summary Statistics:
    
        ============== ==== ==== ======= ===== ====================
                        Min  Max   Mean    SD   Class Correlation
        ============== ==== ==== ======= ===== ====================
        sepal length:   4.3  7.9   5.84   0.83    0.7826
        sepal width:    2.0  4.4   3.05   0.43   -0.4194
        petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)
        petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)
        ============== ==== ==== ======= ===== ====================
    
        :Missing Attribute Values: None
        :Class Distribution: 33.3% for each of 3 classes.
        :Creator: R.A. Fisher
        :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)
        :Date: July, 1988
    
    The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken
    from Fisher's paper. Note that it's the same as in R, but not as in the UCI
    Machine Learning Repository, which has two wrong data points.
    
    This is perhaps the best known database to be found in the
    pattern recognition literature.  Fisher's paper is a classic in the field and
    is referenced frequently to this day.  (See Duda & Hart, for example.)  The
    data set contains 3 classes of 50 instances each, where each class refers to a
    type of iris plant.  One class is linearly separable from the other 2; the
    latter are NOT linearly separable from each other.
    
    .. topic:: References
    
       - Fisher, R.A. "The use of multiple measurements in taxonomic problems"
         Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions to
         Mathematical Statistics" (John Wiley, NY, 1950).
       - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.
         (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.
       - Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System
         Structure and Classification Rule for Recognition in Partially Exposed
         Environments".  IEEE Transactions on Pattern Analysis and Machine
         Intelligence, Vol. PAMI-2, No. 1, 67-71.
       - Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule".  IEEE Transactions
         on Information Theory, May 1972, 431-433.
       - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al"s AUTOCLASS II
         conceptual clustering system finds 3 classes in the data.
       - Many, many more ...
    ********

    2.データの確認

    #
    iris = pd.DataFrame(iris_datasets.data,columns = iris_datasets.feature_names)
    iris['target'] = iris_datasets.target

     Pandasの「DataFrame」を使って列名を決める
       第一引数・・・元になるデータ
       第二引数・・・元になるデータが持っている列名を指定する

      「DataFrame」に列を追加するために、列名とデータを指定する
       5カラム目として「target」を追加する
         ※単なる数字データが列名を付けた配列データになる

    #
    print(iris.head())

     先頭(head)の5行を表示する例・・・行数は指定可
       print文を使って出力する
       先頭の5行、5列のデータが出力される

     以下はprint文による出力例

       sepal length (cm)  sepal width (cm)  ...  petal width (cm)  target
    0                5.1               3.5  ...               0.2       0
    1                4.9               3.0  ...               0.2       0
    2                4.7               3.2  ...               0.2       0
    3                4.6               3.1  ...               0.2       0
    4                5.0               3.6  ...               0.2       0
    
    [5 rows x 5 columns]

    3.その他

     データの内容を詳細に確認する
        行番号69~97までの処理、コメントアウトを外すと出力される
       参照 アヤメの種類判別(その4)  

  • ソフトウェアの品質特性

    1.機能性(Functionality)

     目的から求められる必要な機能の実装の度合い
       ソフトウェアを指定された条件のもとで動作するとき、
       要求されている仕様を満たす能力のこと

       副特性
         合目的性,正確性,相互運用性,標準適合性,セキュリティ

    2.信頼性(Reliability)

     機能が正常動作し続ける度合い、障害の起こりにくさの度合い
       ソフトウェアを指定された条件のもとで動作するとき、
       達成水準を維持し続ける能力のこと

       副特性
         成熟性,障害許容性,回復性

    3.使用性(Usability)

     分かりやすさ、使いやすさの度合い
       ソフトウェアを指定された条件のもとで動作するとき、
       利用者が理解、習得、利用がスムーズにおこなえる能力のこと

       副特性
         理解性,習得性,運用性

    4.効率性(Efficiency)

     目的達成のために使用する時間や資源の度合い
       与えられたリソースに対して、適切な性能を発揮する能力のこと

       副特性
         時間効率性,資源効率性

    5.保守性(Maintainability)

     保守(改訂)作業に必要な労力の度合い
       できたソフトウェアの修正のしやすさの能力のこと

       副特性
         解析性,変更性,安定性,試験性

    6.移植性(Portability)

     移植のしやすさ,別の環境へ移した際そのまま動作する度合い
       別な環境へ移すことになった際に、容易に移せる能力のこと

       副特性
         環境適用性,設置性,規格適合性,置換性

  • 攻撃手法

    1.敵対的サンプル(Adversarial Examples)攻撃

     アドバーセリーアル・イグザァンプルズ攻撃と呼ぶ
       AIの画像認識において、
       認識させる画像の中に人間には知覚できないノイズや微小な変化を含め
         AIアルゴリズムの特性を悪用し、判定結果を誤らせる攻撃

       人の目から見ても、AIから見てもおにぎりと判定される画像がある
       一定の規則に従ったノイズなどを加えることで
       人の目にはおにぎりのままに見えるにもかかわらず
       AIには別のものに変化させることができる

    2.モデル反射(Model Inversion)攻撃

     モデル インバージョン攻撃と呼ぶ(学習モデル反転攻撃ともいう)
       AIの学習モデルの入出力を利用してプライバシーを暴露する 攻撃

       画像情報の入力があって、過去の訓練情報のデータセットを利用し、
       これがおにぎりであることを出力する
         訓練情報を窃取する攻撃

    3.適応的選択文書(Adaptively Chosen Message)攻撃

     アダプティブリー・チョォゥズン・メッセージ攻撃と呼ぶ
       署名偽造者が任意に選んだ文書に対して真の署名者に署名させた後に、
         そこで得た情報を用いて第3の文書の署名を偽造する攻撃

    4.DRDoS(Distributed Redlection Denial of Service)攻撃

     ディィストゥリィビュゥートゥ. ・ディナイアル・オブ・サービス攻撃と呼ぶ
       DRDoS(分散反射型サービス拒否攻撃)
       送信元IPを攻撃対象のアドレスに偽装したパケットを大量に送信し、
       応答を攻撃対象のコンピュータに送り付けてダウンさせようとする攻撃

  • 3 層スキーマ

    1.スキーマとは

     データベースにおけるスキーマ
       データベースの構造を表現する設計図
       三層スキーマアーキテクチャと呼ばれる

       データベースの設計と管理の複雑さを取り扱う上で効果的な方法
         抽象的な概念のため、通常のユーザーや管理者が意識することはない

    2.3層スキーマアーキテクチャ

    外部スキーマ
    External Schema
    概念スキーマ
    Conceptual Schema
    内部スキーマ
    Internal Schema:
    主たる部分ビューの定義
     実際にユーザーに見える部分
    論理的データの定義
     データベース管理者によって管理される部分
    物理的配置の定義
     データベースのハードウェア部分
    定義終端ユーザーや特定のアプリケーションのためのデータベースのビューを提供するデータベースの全体的な論理的構造を示すデータが物理的にストレージ上にどのように格納されるかを示す
    特徴システムの複数のユーザーが求める異なるデータの表示やアクセス方法を定義する
    一つのデータベースには、多くの外部スキーマが存在する
    データベース内のすべてのエンティティ、関連、制約などの論理的な構造と関係を定義する
    物理的な詳細や特定のユーザーのビューは無視される
    物理的なデータの配置、インデックスの使用、アクセスパス、データの物理的な表現などの実際のデータの格納方法を定義する
    目的終端ユーザーやアプリケーションが必要とするデータの形式や表示方法をカスタマイズして提供するデータの論理的構造と組織を中立的な視点で表現し、データの整合性と意味を維持するデータの効率的な格納とアクセスを実現するための物理的な詳細を管理する

    3.3層の利点

     ・独立性の確保
       物理的・論理的独立性
         データの物理的な格納方法の変更が
         アプリケーションやユーザービューに影響を与えることなく行える
           独立性は、データベースの物理的な変更や最適化を容易にし、
           アプリケーションの変更を最小限に抑える
       外部・概念的独立性
         ユーザーやアプリケーションが必要とするビューを、
         データベースの全体的な構造から独立して定義できる

     ・柔軟性
       データの物理的な格納方法やユーザービューの変更の際に
         変更内容に対して柔軟に対応できる

     ・抽象化
       データベースの複雑さを異なるレベルの抽象化で管理する
         異なる利害関係者が、各々の関心事に焦点を当てて作業できる

     ・セキュリティ
       外部スキーマを使用することで、
         ユーザーやアプリがアクセスできるデータの部分を制限する
           不要なデータへのアクセスを防ぎセキュリティを向上させる

     ・整合性
       概念スキーマでデータベース全体の論理的構造を定義する
         データの整合性、関連性、および制約を一貫して管理できる

  • 古畑任三郎(第3シリーズ)

    第1話
    1999.04.13

    若旦那の犯罪
    独演会を控えた人気の若手落語家・気楽家雅楽(市川染五郎)は、兄弟子の二つ目・気楽家苦楽(モロ師岡)の作った新作落語「タイムマシンで行こう」を演じたいと強く思っていた。
    雅楽は、師匠の気楽家有楽(梅野泰靖)に稽古を付けてもらうのを自分の代わりに苦楽に頼む。目の悪い師匠には変装していけば解らないと苦楽を説得する。
    苦楽がアパートに帰ったのを見計らい、雅楽は苦楽を訪ねた。新作を欲しいと最後の交渉をするが、苦楽は取り合わない。
    雅楽は悲し気に苦楽の喉を掻き切るのだった。
    雅楽はその足で苦楽が演じる予定だった老人ホームへ変装して急いだ。これで、苦楽は真打ちに昇進できないことを苦に自殺を図ったことになる。
    が、苦楽は、「煮干し」を握り締めて息絶えていた。このダイイング・メッセージを古畑は見逃さなかった。
    被害者の死亡を聞いた時にいつ殺されたかを訊かなかった

    古典落語の「干物箱」に、道楽者の若旦那が替え玉を使って遊びに行くが、忘れ物して帰ってくると、父親に小言を言われる「親父のもの真似がうまい」と褒める、オチがある

    扇子に被害者の血の付いた指の跡を意識的に隠す
    第2話
    1999.04.20

    忙しすぎる殺人者
    不倫事件真っ只中の都議会議員・岩田大介(佐渡稔)がホテルで死んだ。手にピストルを持ち頭を撃ち抜いており、それが釈明会見の夜のことであったため状況は限りなく自殺の可能性。

    岩田は由良の企画するレストランに出資する予定だったが、出資をしぶっていたのだ。しかし、犯行時間に由良が自室から秘書に電話をかけており、アリバイがある。

    そのアイデアは由良が自室にいたのでは決して気づくことなかった。
    灰皿に残った燃えカスは短気な人が消したようになっていた

     冷蔵庫のビール等に犯人の片手だけの跡が残る、何か片手に大事な物を持っていた

    当日はイベントで犯人の部屋の窓は閉まっていたはず、隣のビルの中が見えるはずがない、見えたのは殺人現場の部屋だけ
    第3話
    1999.04.27

    古畑、風邪をひく
    荒木ら村の幹部は、村の活気を取り戻そうと地酒開発に乗り出し、東京のデパートと組んで売り出す計画を進めていた。

    しかし、薫子が責任者というのは嘘で、それが荒木たちに知れるところとなる。薫子に使った金は1500万円。表沙汰になると困るうえ、それ以上に地酒開発が頓挫しかねない。
    開き直る薫子に「あんたら、田舎モンは・・・」と馬鹿にされた荒木は、薫子を一刀のもとに斬り捨ててしまった。
    村人たちは荒木を助けようと、薫子の存在の証拠をことごとく抹消する。
    が、薫子が忘れられない今泉は、おかしいと騒ぎ始める。今泉の爪切りには薫子の切った爪が残っていたのだ。殺人事件の臭いを感じた古畑が立ち上がる。
    爪切りにマニュキアの付いた爪が残っていた
    村人が用意した代わりの女が”焼酎”を”焼蛤”だと言う
    第4話
    1999.05.04

    アリバイの死角
     古畑が歯の治療のため待合室に座っていた。古畑は山村が帰った後、治療室に入った。金森は、古畑の顔にガーゼをかぶせ、気付かれないように、助手の瀬川エリ(伊藤裕子)に治療を代わった。
    金森は、コーヒーショップのトイレで男装し、山村がいる近くのオフィスビルのフロアーの男子洗面所に潜む。麻酔がきれ、痛み始めた山村が痛み止めを飲むためトイレに駆け込んでくる。金森は、ピストルを取り出し、山村を射殺した。金森は、逆のコースをたどり、医院へ戻る。そのまま、古畑の治療へと戻った。

    帰りのタクシーの中で歯の磨き方を教えてもらう古畑。その時、古畑は金森の犯行と確信した。古畑の詰めが始まる。
    歯科医が殺人後に戻ってきた時にお口の消臭剤の匂いがしていたのに気づき、どこかに出かけて食事をしたと気づく

    男に変装していたことは分かっていたが、女が男に変装していたとは知らない筈なのにうっかり喋ってしまう
    第5話
    1999.05.11

    古い友人に会う
     古畑任三郎(田村正和)は、小学校の同級生である小説家の安斎亨(津川雅彦)の山荘に招かれた。格別、親しい間柄でもなく古畑にはなぜ呼ばれたのか理由が分からなかった。が、それは周到に計画された、犯罪の一部であった。一体、幼なじみの安斎は古畑に何をさせようというのか・・・。
    安斎は売れっ子作家だが、年の離れた妻・香織(三浦理恵子)との仲はうまくいってはいなかった。香織は編集者・斎藤秀樹(細川茂樹)と通じていたし、安斎もそれに気付いていた。
    安斎は「古畑を招いたのは香織だ」という。香織は、それを否定する。では、誰が古畑を招いたのか。古畑はそこに事件の臭いを嗅ぎ取った。
    今泉刑事(西村雅彦)、西園寺刑事(石井正則)らも加わり、山荘の時間は一見楽しく過ぎていくが、安斎は古畑にわざと香織の密通現場を見せようとするなど、行動が不審である。香織と斎藤も安斎が邪魔であるに違いない。事件が発生した時、刑事がいた方が得策なのは被害者か、犯人か。まだ、事件は起きていない。古畑は今度こそ事件の発生を未然に防ぎたいと願い、動き出す。
    送信されてきたFAX紙に奇妙な歪みが残っていた
    犬に咥えさして布切れを運び出す訓練を見て、自殺しその罪を奥さんに向くように仕向けていると気づく
    第6話
    1999.05.18

    絶対音感殺人事件
    甲陽フィルの常任指揮者・黒井川尚(市村正親)は愛人のビオラ奏者・滝川ルミ(待田しおん)から別れ話を持ち出され、カッとなって殴り殺してしまった。場所はルミのマンション。外は雨。黒井川は事故死に見せかけようと指紋を拭き取り、ルミの死体を外階段の下に運んだ。演奏会に向う途中、雨で足を滑らせたという単純な事故に見せ掛けるつもりであった。
    捜査に訪れた古畑任三郎(田村正和)はルミの左ポケットに鍵が入っていたこと、熱帯魚の水槽のエア・ポンプが止められていたことなどから、事故死に疑いを持つ。早速、親しい付き合いがあり、その日の演奏会に直ちにルミの代役を呼んだ黒井川を問い詰めた。
    その場を逃れた黒井川は、ルミに思いを寄せていたクラリネット奏者・石森(橋本さとし)に罪を着せようと工作する。捜査の目は石森に向いたが、古畑は黒井川の犯行と断定しており、石森に協力を求めた。だが、黒井川を追い詰めるまでにはいたらない。しかし、古畑は、絶対音感の持ち主である黒井川でなければありえない犯行現場の状況に気が付いたのであった。それは水槽のポンプが止まっていたことであった。古畑の詰めが始まる。
    前もって欠員の補充を手配していた
    クラリネットを壊して罪を着せようとしたが、そのクラリネットは事件当日は修理に出されていた
    水槽のポンプの音は雨だれの音と響き合わないので電源プラグを抜いたと、見破られる
    第7話
    1999.05.25

    哀しき完全犯罪
    ちょっとルーズな性格の女流棋士・小田嶋さくら(田中美佐子)は、潔癖症で几帳面な夫の棋士・佐吉(小日向文世)の嫌味と小言にウンザリする毎日を送っていた。さくらが唯一、外界の空気を吸い解放感を味わえるテレビ囲碁教室の打ち合わせを夜に控えたある日、佐吉が突然、「夕飯は一緒にとる、そんな番組辞めろ。私が断りの電話をかける」と言い出した。さくらは殺意を抱いた。テレビ局に電話をかけようとする夫を背後から殴り殺してしまう。
    さくらは、アリバイ工作を始める。打ち合わせに出かけ、その間の犯罪であるかのように偽装しようというのだ。佐吉が作ったよう見せるために夕食を作り、佐吉から携帯電話がかかったように周囲に思わせるため、携帯タイマーを操作した。死体は帰宅した自分が発見する。細工は完全のはずだった。
    さくらは死体を“見つけ”110番。予想通り、警察は物盗りの線で捜査を開始した。が、古畑任三郎(田村正和)は、さくらの計画のほころびから、犯人はさくらである、と推論、徹底的な調べに入った。なぜ、料理自慢の佐吉が作ったはずの麻婆豆腐がまずかったのか、なぜ飼いネコが餌をたべないのか。古畑の頭が回転する。
     帰宅した際に死体を跨いだ後に荷物を落とす、古畑に死体の存在を知っていたと見破られる
    几帳面な主人が作った割には料理がおいしくなく、使った調味料の蓋もキッチリしまっていなかった
    第8話
    1999.06.01

    完全すぎた殺人
    車椅子の化学者・堀井 岳(福山雅治)は、とある会社の研究員。かつての恋人・片桐 恵(戸田菜穂)と親友・等々力(板尾創路)の3人揃ってこの会社に採用された。が、いつしか恵の心は堀井から離れ、恵は妻子持ちの等々力と結婚すると言う。堀井は復讐を誓う。専門知識を総動員した綿密な計画。冷酷で陰湿な実行・・・。
    堀井はその昔、学園祭のために等々力と共に作った「考える人」の像をまた制作した。二人の結婚前祝として等々力にプレゼントするためだ。その「考える人」に爆弾を仕掛けて・・・。
    堀井は、策を弄し、恵が等々力の自宅に行くように仕向ける。さらに、そこから恵だけ外出させ、しかもその行動を目撃するように隣家に嘘のピザ注文をした。そして、部屋に一人になった等々力に電話をかける。「『考える人』の裏蓋を開けてみてくれ」。堀井の指示通りに裏蓋をこじ開けたとたん爆発。像は粉々になり、証拠は残らない。等々力は死亡。西園寺刑事(石井正則)らの捜査で、案の上、恵が有力な容疑者とみられた。計画は完遂されたかに見えた。
    しかし、古畑任三郎(田村正和)は、等々力が、電話の子機を持ってトイレで死んでいたことや、小さな像の裸足の破片が残っていたことに疑念を抱く。今の状況を喜ぶのは誰か?古畑の推理が冴える。
     爆発事故を訊かされた時に、けが人の様子だけを聞いて、爆発の大きさを訊かなかった、これは前もって爆発の大きさを知っていたと疑われる
    プレゼントの包装紙を大事に取っていた、この包装紙から犯人の指紋が出る
    第9話
    1999.06.08

    雲の中の死
    飛行機の洗面所で女性の死体が見つかった。

    古畑に隣席の臺が話し掛けている。
    臺が1階に降りてきた。狭い個室でもみ合ううち、機体が揺れ、壁で頭を打った由美子は絶命してしまった。

    洗面所を出る時に少年に顔を見られてしまった。手近にあった副パイロットの制服を着込んで、今泉と、西園寺に副パイロットと思わせた臺は、乗客と乗務員の二役をこなしながら、由美子の死を自分とは無関係の事故死に見せようと必死の芝居を打つ。
    機長に変装しようとして、室内履きのスリッパから革靴に履き替えたのを見られる
    向かい側の席に、死んだ女性のコンパクトの反射光でうっすらと犯人の姿が映し出されたのを妖精と間違えたのは誰かがその席に座っていたと気付かれる
    第10話
    1999.06.15

    最後の事件・前編
    ボストンバッグを抱え、逃げ回る牟田(小原雅人)。牟田は、車内にバッグを置き忘れたまま電車を飛び出し迫る男に射殺された。事件は通り魔の犯行と片付けられそうな気配。一方、牟田を追っていた「SAZ」のメンバーは、牟田が持っていたバッグが電車に置き去りにされたことに頭を抱えていた。リーダー・日下光司(江口洋介)は、遺失物センターに眠るバッグを取り戻す秘策に思い当たった。
    駅の管理センターにやって来たSAZメンバーの一人・浅香(斉藤洋介)は、警視庁公安部と称し「電車ジャック」の予告があったと告げる。電車が乗っ取られることなど無いと言う職員の前で、路線表示板の最終列車705M列車が停止する。すかさず「電車を乗っ取った。5000万円用意しろ」と日下の声で無線が返ってきた。日下たちメンバーは、近くの寺に設置したコンピューターを操作し、駅の管理センターの通信回線をコントロールしているのだった。
    が、管理センターには偶然、古畑と西園寺が居合わせた。「なぜ予告したのか」「終点でつかまると分かっている電車をなぜジャックするのか」「重い小銭しかない電車の売り上げをなぜ狙ったのか」・・・。不可解な犯罪。そこに、ジャックされているはずの最終列車で今泉がやって来る。「ジャックされたのは我々だ」。気付く西園寺の前にSAZメンバーが立ちふさがる。3人の運命は・・・。
     運転手が一度も表に出てこない
    ボールペンをカチカチと鳴らす音が電話の向こうでするのが、耳に残っていた
    第11話
    1999.06.22

    最後の事件・後編
    仲間が電車内に置き忘れたボストンバッグを取り戻そうと、駅の電車運行表示システムを混乱させ、架空の電車ジャックを起こしたグループ「SAZ」。警視庁の公安部を装うリーダー日下(江口洋介)らは、まんまとそのバッグを取り戻すかに見えた。が、古畑任三郎(田村正和)は、ほんの小さな彼らの不審な動きを見逃さず、身代金受け渡し場所まで同行する。なぜ、SAZのメンバーはこうまで大掛かりな計画を組み立てたのか?古畑が巧妙に仕組まれた「犯罪ゲーム」の謎に挑む。 
  • オープンソース

    1.OSS(Open Source Software)

     オープンソースソフトウェアとは
       オープンソースの概念に基づき、
       ソフトウェアのソースコードが無償で公開され、
       改良や再配布を行うことが誰に対しても許可されているソフトウェア

     以下の定義(条件)が存在し、全てを満たして初めてオープンソース

    2.満たすべき条件

     1.自由な再頒布

     2.ソースコード(「ソースコード公開」も含む自由な利用)

     3.派生物(Derived Works. 派生物の自由な利用)

     4.原著作者のソースコードとの区別(Integrity)

     5.特定人物・集団に対する差別の禁止

     6.使用分野(Fields of Endeavor)に対する差別の禁止

     7.ライセンスの権利配分(Distribution of License. ライセンスが再頒布者に
     認める権利は差別なく与えなければならない。)

     8.ライセンスは特定製品に限定してはならない

     9.ライセンスは他のソフトウェアを制限してはならない

     10.ライセンスは技術中立(Technology-Neutral)でなければならない

  • 古畑任三郎(第2シリーズ)

    第1話
    1996.01.10

    しゃべりすぎた男
     反対尋問で検察側証人をやり込める敏腕弁護士小清水潔(明石家さんま)。傍聴席には結婚話が進む大物弁護士の令嬢啓子(小高恵美)が小清水を見つめ、小清水は胸を張り意気揚々。 午後十時に事務所に電話をかけて欲しいと秘書を帰宅させ、小清水は学生時代から深い交際をしている向井ひな子(秋本奈津美)のマンションに車で向かった。小清水は啓子との結婚にひな子が邪魔になっていた。小清水は秘書からの電話を携帯で受け、まだ事務所にいるように装いマンションに入った。ひな子は交際の継続を迫り、「あなたの家庭を壊すなんて平気だから」と告げる。それを聞いた小清水は隙をみて、ガラスの水差しで頭部を一撃。 ひな子がしつこく結婚を迫られていると話していた、今泉慎太郎(西村雅彦)から電話がかかってきた。留守番電話を通し今泉がこれからマンションに来るつもりでいることを知った小清水は、罪を…凶器として使用された「水差し」を、小清水が裁判中に何度も「花瓶」と言ってしまっている
    凶器として使われた水差しには花が活けてあった
    水差しに花が挿してあるのを見たのは被害者と犯人だけだと指摘
    第2話
    1996.01.17

    笑わない女
    寮内にある阿部の部屋にヨリエが本を借りたいと訪ねてきた。
    阿部が本棚へ体を向けた直後、ヨリエは廃材置き場で拾ってきた鉄パイプで阿部の後頭部を殴りつけた。ヨリエのガウンのボタンを引きちぎりながら絶命する阿部。

    被害者は本を棚に戻そうとして誤って踏み台から落ち、床のバーベルで頭を強打した事故死らしいという。
    しかし、体の大きさと棚の高さの違い、握り締めていたボタン、ドアの外の血痕など、疑問を持った古畑は今泉とともに寮に泊り込んで捜査することにした。

    古畑の質問にヨリエは毅然として取りつく島すら与えず「校則に対する考え方の違いくらいで、人を殺すなんて。動機はなんですか」と古畑に詰め寄るのだったが、阿部の部屋に残されていた口紅から、古畑は推理を巡らす。
    校則を守る犯人に向かって、殺しましたかと訊ねる。校則には、嘘をついてはいけないとあり、犯人は嘘を付けなくなり、自供せざるを得なくなる。
    殺人の動機は、生徒から没収した口紅を塗ったところを被害者に見られたために殺すことになる。
    第3話
    1996.01.17

    ゲームの達人
    高級住宅街の一角、人気推理作家の花見祿助(藤村俊二)の書斎で花見と友人の医師乾研一郎(草刈正雄)が静かに話し合っていた。妻常子(一色彩子)の不倫を乾に打ち明ける花見。しばし考え込んだ後、乾は「このまま離婚するのはどうか?」。花見に偽装自殺を持ち掛けるのだった。 翌日、おもちゃのピストルを持って花見を訪ねた乾。本物と思い驚く花見だが、おもちゃと聞いて安心した様子。常子は風邪でベットに伏せていた。乾をベットに引き寄せようとする常子。常子の不倫相手は、乾だったのだ。 三人で夕食を取っていた時、家政婦の亀井(松金よね子)が電子レンジを使ったためブレーカーが落ち室内が真っ暗になるアクシデントがあったため亀井は注意を受けた。 「先生の様子がおかしい」と花見からの電話を取った亀井から遊戯室にいた乾は呼ばれた。二階の花見の書斎に駆け上がるとドアは内側から…
    第4話
    1996.01.31

    赤か、青か
    天神大学電子工学部の大学助手・林功夫は、深夜に近くの遊園地・エキサイトパークに侵入。警備員に見つからずに観覧車に辿り着くと、ゴンドラの座席に時限爆弾を設置して立ち去った。
    だがその後で自転車の鍵を紛失したことに気づき、心当たりを探し回るも鍵は見つけられなかった。仕方なくチェーンを切っていると、見回りをしていた警備員・真鍋茂に声を掛けられてしまう。真鍋に顔を見られたうえに自転車の登録番号も控えられてしまった林は、仕方なく持っていたマグライトで真鍋を撲殺し逃走した。

     翌日、真鍋殺害事件の捜査を担当した古畑は、遺体の状況から「真鍋は殺害される寸前まで自転車の登録番号を見ていた」と推理。
    その頃、林はエキサイトパークの管理事務所に「正午までに3000万円を用意しなければ観覧車を爆破する」と脅迫電話を掛け、嘘ではない証拠としてチケット売り場を爆破してみせた。

    その直後、爆弾が仕掛けられているゴンドラに今泉が乗っていることが判明。
    すぐに警視庁から爆弾処理班が到着し、古畑も殺人事件の犯人と爆弾犯は同一人物と考え、捜査に協力することとなる。
     一方林は爆弾処理の専門家として警察に協力を求められ、現場で古畑と対面するが……。
    鍵の無い自転車に乗ってやってきた犯人
    専門外なのに爆弾について詳しい
    犯人は爆弾のあるゴンドラに女性が乗っていると勘違いする
    自宅に帰り、安心して切れたチエーンを始末したところを古畑に押さえられる
    翌日今泉が鍵を発見する。
    第5話
    1996.01.31

    偽善の報酬
    女流脚本家、佐々木高代(加藤治子)と妹でマネージャーの和子(絵沢萠子)は二人暮しだが、仲は最悪。 高代は若い俳優と付き合い始めていて海外旅行に行く予定だった。うつつを抜かしている高代を気に入らない和子は自分のお金で行きなさいとぴしゃり。高代は自分で稼いだお金が自由に使えないことに不満を持つ。 その夜、高代は明日の朝食のためキッチンで鰹節を削る和子をあるもので殴り殺害し、金目当ての強盗にみせかけるよう財布の中身をぶちまけた。 「見たい映画があったのに、ビデオをセットし忘れた」とぶつぶつ言いながら現場に登場した古畑任三郎(田村正和)。高代の話しを聞き終わり、「犯人は分かった。あの女」と、今泉に高代の部屋で見つけた削った鰹節を見せる古畑。しかし、凶器が分からない。今泉を泊まりこませ探させようとするが、高代に食事の支度や庭掃除といいように使われる始末… 
    第6話
    1996.02.14

    VSクイズ王
    千堂謙吉(唐沢寿明)はテレビ局へ向かった。局前には追っかけギャルが待ち構えていて表面的にはにこやかに控え室に入った。千堂はクイズ番組連勝中で、この日八連勝がかかる。甘いマスクから女性ファンも増えCMにも出演する人気ぶり。
    メイクの最中、編成担当の海老沢(近藤芳正)とプロデューサーの牛島(佐戸井けん太)が現れ、CMを話題にご機嫌をとるが、千堂は「前回の撮り方はなってない」と横柄な態度。
    古畑任三郎(田村正和)は今泉(西村雅彦)と同じテレビ局に来ていた。千堂に挑戦する最後の予選のためだった。
    千堂は事前に海老沢らから、クイズのキーワードとなる数字を聞いていた。連勝の秘密だった。海老沢は「もう教えられない」と千堂に伝える。「無敵のチャンピオンを作りたいといったのはあなただ」と千堂は納得できないと抗議するが、一部週刊誌もかぎつけており海老沢は千堂の抗議を受け付けない。
    主婦と対戦した古畑は、フライング負け。不機嫌の極み。
    アシスタントの衣装はキーワードの数字があしらわれていた。千堂は衣装係の沼田(伊集院光)を手懐け衣装を見ようとするが、沼田も簡単に千堂に衣装を見せない。二人がもみ合ううち、沼田は頭を強打して死亡してしまった。表の廊下では漫才コンビがネタの練習中で千堂は衣装室から出るに出られず。一計を案じ、密室トリックを作り上げ部屋から出ることに成功し、番組には素知らぬ顔で出演する。古畑はどうクイズ王に迫るのか・・・。
    ラーメンの出前を3軒の異なる店に依頼されていた
    控室で弁当を食べるが、出演者とスタッフとでは内容が違っていたことを指摘される
    赤穂浪士の衣装が丁寧にあいうえお順に並べられていた
    小道具の偽の新聞の記事を先に読んでおいて答えてしまい、アリバイが崩れる
    第7話
    1996.02.21

    動機の鑑定
    古美術・骨董商春峯堂の主人(澤村藤十郎)と錦織同美術館館長の永井薫(角野卓造)の二人は、老陶芸家の川北百漢(夢路いとし)宅に出向いていた。 同美術館では、来週、歴史的価値の高い『慶長の壺』の初公開を控えていた。そんな中、百漢は二人を呼びつけ「壺は偽物。自分が作り・・・」と製作経過を撮った写真ほか、五年前骨董屋で見つけたという本物の『慶長の壺』を二人に見せ、公表されたくなかったら協会の理事を辞退しろと春峯堂主人に迫った。春峯堂主人と永井は結託して、悪質な取り引きをしていたのだ。 一端、百漢宅を辞した二人だが、再び百漢宅を訪ね春峯堂主人が短銃で百漢を射殺。周囲の壺などに血痕が飛び散るなか、春峯堂主人と永井は強盗に見せかけるために室内を荒らし回り、アリバイ工作のため時計を午後八時半に進ませ壊した。 春峯堂主人は美術品のオークションに、永井は美術館に… 
    第8話
    1996.02.28

    魔術師の選択
    動物病院の待合室で古畑任三郎(田村正和)は、新人マジシャンという女性、毛利サキ(松たか子)と知り合い師匠が経営する会員制クラブの創立十周年記念パーティに招かれた。 古畑は今泉慎太郎(西村雅彦)を伴ってパーティ会場へ。各テーブルではゲストマジシャンたちが芸を披露、客はグラスを片手にテーブルを回り、気に入ったマジックを見学する趣向。サキの師匠でクラブ経営者の南大門昌男(山城新伍)もお得意を披露、女性客を集めマジックについて講釈している。それなりに、楽しむ古畑と今泉。「マジックで大切なのはいかに相手の注意をそらすか」南大門の声に古畑も気をとめる。 パーティを中座して南大門は事務所に弟子の倉田勝夫(池田成志)を呼んだ。「もてるマジシャンは成功する。ただあいつは駄目だ」。サキに特別な気持ちを持つ南大門は倉田にクギを刺す。しかし倉田も「あなたが決めることじ…南大門はマジックショーの途中でジュースを準備させる
    全員の注目がマジックに集中した瞬間に毒薬を端から2番目のジュースが入ったコップに注ぐ
    弟子がコップを撮りに来た時、南大門は自分から橋のコップを取り弟子に端から2番目のコップを取らす

    マジックの途中で遮られることを嫌う南大門が自らマジックを中断してジュースの準備をさせたことを最初に疑った
    第9話
    1996.03.06

    間違われた男

    再放送なし
    アニメの映像権
    雑誌編集者・若林(風間杜夫)は、妻の不倫相手(清水昭博)を殺害する。しかし、帰り道に車がパンクし、通りかかった鴨田(小野武彦)の車に乗せてもらう。鴨田は自宅の留守番電話に若林のことを吹き込んでしまい、それを知った若林は鴨田も殺害。鴨田の家に録音テープを回収に向かうが、そこに古畑(田村正和)が訪れる。
     
    おまけ
    1996.03.13

    ニューヨークでの出来事
    6年前、米国のベストセラー作家が毒しした事件で、毒は日本人妻が夫にあげた和菓子に入っていたとみられ、それは死者が最後に食べた物だったことや夫の不倫で夫婦の不仲という動機も分かり、日本人妻は逮捕、起訴され裁判になった。淡々と語るのり子。
    しかし、夫がひとつの和菓子をふたつに割り、妻も一緒に食べたという目撃証言が裁判であり、自分が食べるかもしれない和菓子に毒を入れる可能性は少ないと判断され、裁判で妻は無罪、夫の死は自殺と判断されたという。
     和菓子は今川焼だと説明するが、今川焼はトースターには入らない
    タイ焼きだとトースターに入り、尻尾に毒を入れておけば女子には頭を勧め、自分は尻尾を食べるであろう
    外国人には和菓子が今川焼かタイ焼きかの判別は出来ない
    おまけ
    1996.03.27

    しばしのお別れ
    華道家・二葉鳳翆(山口智子)は、家元・二葉鳳水(長内美那子)の元から独立してフラワーアレンジメント教室を経営していたが、鳳水から度々営業妨害を受けていた。鳳翆は発表会に鳳水を招待して密かに楽屋に呼ぶとネックレスを贈り、睡眠薬入りのお茶を飲ませ、発表会中に抜け出し客席で眠っている鳳水に毒物を注射、心臓発作に見せかけて殺害した。今泉の発表を見に来ていた古畑は病死に疑問を抱くが、鳳水は勝手に席を移動しており、犯人にその位置を知る術はなかった。<腕まくり>
    ブラウスの袖を腕まくりしていましたが、上着は捲っていませんでした。
    ブラウスが捲ったままであれば、違和感があり気付くはずなのに、そのままとなっていました。
    このことから、古畑は、別の人間が袖をまくったと推理します。
    <今泉の発表>
    自分の発表が終わった後、師匠の鳳水を殺害するため観客席へ向かっています。
    犯行時、今泉が発表していましたが、鳳翆は発表をみていなかったため、内容を把握していませんでした。
    そのため、古畑が言ったダジャレを今泉が考えたダジャレだと指摘することができませんでした。
    <部屋を明るくする>
    古畑と今泉が遺留品を持って現れたとき、犯人の鳳翆は、部屋を明るくします。
    これは、遺留品の中に、暗闇で光るネックレスがあったためです。
    <背中の手形>
    鳳翆は背中を叩かれ手の跡が残ってしまいます。
    鳳翆は、背中を出した衣装で舞台に立つ予定だったため、急遽、照明を赤くする必要がありました。
    手形は、師匠と会っていたという証拠になる恐れがあります。
    これは、照明を赤くしたため、映像にも残らず、物証にはなりませんでした。
  • OutlookでGメールが読めない

    1.状況確認

     アカウント、パスワードを入念にチエック
       imap、popのチエック・・・口頭でのチエックではなく中身を確認する
       ポート番号等もチエック

    2.現在までの使用具合を確認

     他のPCからメール送信
       エラーが解決しないので以下の点をチエック

       今までGメールをoutlookで読んだことがあるかどうか
       他のメールアプリで読んだことが有るかどうか

    3.メールサーバーにログインする

     今使っているのはoutlook2013だと分かる
       ネットでoutlookの状況を確認する・・・近い将来サポート終了と分かる

     直接、メールサーバーにログインして現状を確認する
       メールは過不足なく存在する・・・outlookだけの受信が問題と分かる

    4.googleがチエックを始めたらしい

     メールアプリ(ソフト)全般を脆弱なソフトとみなし、先ず接続エラーとする
       outlookは脆弱なメールソフトの仲間に入っている
       メールを使いたい場合は、googleから使用許可を得ることになる
         設定は難しく無く、設定箇所を特定できれば簡単に許可が得られる

       手順の説明途中で時間切れ

  • Facebookに動画を投稿したい

    1.対象の動画を確認する

     気に入った動画が有ったので、自分の投稿記事に載せたい
       確認すると動画ではなくGIFアニメだと分かる

    2.GIF画像の取込と投稿手順を説明

     画面での操作を説明する
       案ずるより簡単に理解が進む・・・「動く画像」に興味を示す
       画像を事前に用意できれば、無理なくもっと簡単に進むと思われる

    3.留意点を説明

     以下の点について念を押す
      ・著作権を侵していないか?
         現在の使用者に確認できるなら、確認する
         確認できない場合は、他の画像にする

      ・自分で似たような画像は作れないか?
         若しくは無料の画像を探してはどうか? 等々

     別途用意したGIF画像をアップして、動きを確認する

  • 主記憶管理

    各プログラムとデータが使用する主記憶装置の領域の確保および解放の管理

    1.管理方式

     固定区画方式
       主記憶を固定長の区画として扱う管理方式
         管理は簡単だが、各プログラムが使用する領域は可変なので
         使用されない部分が無駄になって残る

       単一区画方式:区画が一つだけで最も簡単な方式
       多重区画方式:複数の区画を各プログラムに割り当る
         管理が複雑になるが、複数のプログラムに対応できる

     可変区画方式
       主記憶装置に区画を設けて、その領域にプログラムをロードする方式
         必要に応じて区画のサイズを変化させる

       区画のサイズを変化させることで、主記憶装置の利用効率を向上させる

     仕切り方式
       主記憶を可変長の領域として扱う管理方式
         主記憶装置の利用効率が上がる

       実行が終了すると、使用していた領域は開放される
         空き領域は断片化され利用し辛くなる

      管理方式

    2.フラグメントメンテーション(fragmentation)

     フラグメントメンテーション(断片化、破片化)
       プログラムを実行して、領域の確保と開放を繰り返しているうちに、
       領域が占有化されて再利用しにくくなる

     デメンテーションまたはコンパクション
       使用中の領域を移動させて隣り合わせに配置し直し、
       縮小化されていた空き領域を隣り合わせにまとめて再利用可能にする

    3.ガベージコレクション(garbage collection)

     「ゴミ集め」という意味
       プログラムが使用し、削除した主記憶領域を集めて、再利用に備える
         プログラムの実行終了時に一括して領域を解放する
           解放のためのオーバーヘッドは少ない
           きめ細かく再利用はできない
         プログラムの実行中に、きめ細かな領域の確保と解放を行う
           領域の有効利用ができる
           オーバーヘッドが多くなる

       専用のプログラムが使用しなくなった領域を開放するので、
         領域の有効利用とオーバーヘッドのバランスをとることができる

       プログラムの実行終了時の場合
         一括して領域を解放するので
           オーバーヘッドが少なくて済む

       プログラムの実行中の場合
         きめ細かな領域の確保と解放を行うので、
           領域の有効利用が可能であり、オーバーヘッドが多くなる

    4.メモリコンパクション(memory compaction)

     空き領域の断片化を解消し、連続した広い空間に再編する
       プログラムを実行していると、メモリ領域の確保と解放が繰り返され、
       小さな空き領域が飛び飛びの場所に存在するようになる

       メモリコンパクションが実行されると、実行中のプログラムを一時停止し
       各領域を移動して隙間なく再配置し、単一の広大な空き領域を作り出す

  • 画像ファイル

    1.JPEG(Joint Photographic Experts Group)

     写真画像が一般的
       JPEGという画像形式を作った組織の名前
       写真に適した画像形式

       非可逆圧縮の画像フォーマット
         風景などを撮影した場合に、
         人が感知できない情報などを大幅にカットした状態で、
         情報量を圧縮して保存する

         目に見えないほど細かい「色の違い」を省略し容量を小さくする

       フルカラー1670万色まで扱うことができる

    2.GIF(Graphics Interchange Format)

     256色以下の画像に最適
       最大256色の限られた色数で構成される

       可逆圧縮形式の画像フォーマット
         ロゴ、アイコン、ボタン、図版、イラストに適している

       背景を透明にしたり、アニメーション画像も表現することができる

    3.PNG(Portable Network Graphics)

     Webのために開発される
       コンピュータで扱うのに適している

       可逆圧縮の画像フォーマット
         GIFの「背景透過」の機能を持ちながら、
         GIFの「256色」という制限を解消した形式

       写真を丸く切り抜いて
         背景を透明にしたい場合
         グラデーションをつけたい場合

    4.TIFF(Tagged Image File Format)

     高解像度で使用する場合に適している
       「タグ」と呼ばれる識別子を付けて、
       複数パターンの画像表現をひとつのファイルとして保存できる
         大きな画像が必要な場合などに用いられることが多い
       デジタルカメラの画像形式に用いられる

       容量が極端に大きくなるので、JPEGで事足りる
         Webでは扱えない形式

    5.BMP(Microsoft Windows Bitmap Image)

     Windowsで扱われる画像形式
       画像を圧縮せずに扱う場合によく用いられる形式
         容量が大きく、メール添付などには適していない
         Webでは扱えない形式

  • セッションID

    1.SID(Session IDentifier)

     Webアプリケーションなどで、
       通信中の利用者を識別して行動を捕捉し、
       利用者ごとに一貫したサービスを提供するために
       付与される固有の識別情報

     HTTP自体にはセッションの識別・管理のための仕組みは存在しない
       複数の利用者がアクセスしてきた場合にこれを識別する仕組みが必要となり   
       その時に発行される識別用に使われるのがセッションID

       WebサーバとWebブラウザで情報を共有する仕組みでCookieを応用し、
         初回アクセス時にセッションIDを発行しクライアントに保存する
         以降は通信のたびにクライアント側からセッションIDを申告する
         同時にアクセス中の利用者の識別・同定を行う

       ユーザー名等の識別子とは異なり、
         機械的に生成されて一時的に利用されるもので、
         一連の通信が終了すると破棄される

         同じ利用者が次に通信を開始すると
           新しいセッションIDが与えられる

    2.セッションハイジャック(Session hijacking)

     第三者(攻撃者)が何らかの手段でセッションIDを知ることにより、
       セッションを乗っ取る攻撃手法

     ・セッションIDを推測する
       セッションIDの生成ルールがある規則に基づいたものであった場合、
       総当たり攻撃などで推測し悪用する

       セッションIDの生成ルールがユーザー名に基づいたもので合った場合、
       簡単に推測され悪用する

       アカウント登録して送受信データに含まれるセッション情報を解析し、
       他のセッションIDを推測し悪用する

     ・セッションIDの窃取
       Webサイトの脆弱性を突き、不正にユーザーとWebサイトの間に介入し、
       ユーザーからセッションIDを窃取する

       攻撃手法の1つとして、クロスサイトスクリプティングが挙げられる

     ・セッションフィクセーション
       攻撃者が取得した正規のセッションIDを、
       ハイパーリンク経由などで別のユーザーに利用させる

       そのままユーザーがログインしてしまうと、
       攻撃者は自らが利用させたセッションIDを用いて、
       ユーザーのログイン状態に便乗することが可能になる

       セッションを攻撃者が事前にお膳立てすることから、
       「セッションIDのお膳立て」とも呼ばれる

     対策
     ・セッションIDをURLに含めない
       URLにセッションIDを含めると、攻撃者が容易にセッションIDを取得できる
       Cookieを用いてセッションIDを管理する方法に切り替える

     ・推測が困難なセッションIDにする
       ユーザーIDや日付などだけで構成されるセッションIDでは推測が容易
       擬似乱数を組み合わせるなど、解析が困難なセッションIDを生成する

     ・セッションIDの変更
       ユーザーがログインしたら既存のセッションIDを無効化し、
       新しいセッションIDで管理するようにする

       ログイン後に新しいセッションIDが付与されることで、
       攻撃者がその前に取得したセッションIDではアクセスできなくなる

     ・WAFの利用
       WAF(Web Application Firewall)を利用することで、
       クロスサイトスクリプティングなどを悪用した
       セッションIDの漏えいを抑制する

  • LAN 間接続装置

    1.ゲートウェイ

     異種プロトコルのネットワーク同士のデータを中継する

     異なるプロトコルやアーキテクチャのネットワークを接続し、
       データ形式やプロトコルの変換を行う装置

     OSI基本参照モデルの7層すべての層の接続を行う

    2.ルータ

     IPアドレスをもとにデータを中継する

     異なるネットワーク同士を接続し、
       ネットワークに流れるパケットのIPアドレスを基に通信制御を行う機器

     OSI基本参照モデルのネットワーク層(第3層)で動作する

    3.ブリッジ

     MACアドレスをもとにデータを中継する

     異なるネットワークセグメント同士を接続し、
       ネットワークに流れるデータフレームのMACアドレスを基に
       通信を中継する装置

     OSI基本参照モデルのデータリンク層(第2層)で動作する

    4.リピータ

     電気信号の増幅

     ネットワークを流れる電流信号の増幅や整流を行う機器
       主に信号の減衰を防ぎ、
       ネットワークの物理的な距離を延長するために使用される

     OSI基本参照モデルの物理層(第1層)で動作する

    5.概念図

  • 商取引の法律

    1.商標法

     商標や商標権の効力やその範囲を定めた法律
       商標とはロゴやマーク
        自己の商品・サービスと他社の商品・サービスとを区別する
       商標権とは
        商品やサービスに付ける商標を財産として守るという知的財産権

     知的財産権のうち「産業財産権」の4つを特許庁が所管している
       特許権
       実用新案権
       意匠権
       商標権

       技術、デザイン、商標について独占権を与え産業の発展を図る目的
         模倣防止のために保護し、
         研究開発へのインセンティブを付与し、
         取引上の信用を維持し
       これらの権利を取得することによって、
         一定期間、新しい技術などを独占的に実施(使用)することができる

    2.電子契約法

     操作ミスの救済や契約成立時期の転換を定め、消費者保護を主とした法律
       消費者の申込み内容などを確認する措置を事業者側が講じないと、
       錯誤にあたる操作ミスによる消費者の申込みの意思表示は無効となる
         操作ミスが「重大な過失」にあたるので契約は有効に成立していた

       電子契約は、承諾の通知が申込者に到達した時に成立する
         承諾の通知が発信された時に契約は成立していた

    3.特定商取引法

     消費者トラブルが発生しやすい取引を対象に、消費者を保護を目的とした法律
       例えば、訪問販売、インターネット販売等々
       取引の類型、義務・禁止事項、契約解除方法が定められている

       特定商取引法の対象となる類型
         ・訪問販売
           商品や権利の販売又は役務の提供を行う契約をする取引
           キャッチセールス、アポイントメントセールスを含む
         ・通信販売
           事業者が新聞、雑誌、インターネット等で広告し、
           郵便、電話等の通信手段により申込みを受ける取引
         ・電話勧誘販売
           事業者が電話で勧誘を行い、申込みを受ける取引
             電話を一旦切った後、消費者が郵便や電話等で申込のも含む
         ・連鎖取引販売
           個人を販売員として勧誘し、
           更にその個人に次の販売員の勧誘をさせる形で、
           販売組織を連鎖的に拡大して行う商品(権利)・役務の取引
         ・特定継続的役務提供
           長期・継続的な役務の提供と、
           これに対する高額の対価を約する取引
             エステティックサロン、語学教室など7つの役務が対象
         ・業務提供誘引販売取引
           「仕事を提供するので収入が得られる」という口実で
           消費者を誘引し、仕事に必要であるとして、
           商品等を売って金銭負担を負わせる取引
         ・訪問購入
           事業者が消費者の自宅等を訪問して、物品の購入を行う取引

       特定商取引法の概要
         ・氏名等の明示の義務付け
         ・不当な勧誘行為の禁止
         ・広告に重要事項の表示を義務付け
         ・重要事項を記載した書面の交付義務

       トラブル救済法
         ・クーリング・オフ
           契約の申込み又は締結の後に書面を受け取ってから
           一定の期間内に無条件で解約できる
              訪問販売・電話勧誘販売・
               特定継続的役務提供・訪問購入は8日以内
             連鎖販売取引・業務提供誘引販売取引は20日以内
             通信販売はクーリングオフできない
         ・意思表示の取消し
           契約の申込み又はその承諾の意思表示をしたときには、
           消費者が、その意思表示を取り消すことができる旨を規定
         ・損害賠償等の額の制限
           中途解約の際、事業者が請求できる損害賠償額に上限を設定

       <補足>
         クーリングオフは無条件解除なので、消費者の送料負担はない

         商品の引渡しを受けた日から数えて8日間以内であれば、
           消費者は事業者に対して、契約申込みの撤回や解除ができる

         返品は消費者の送料負担で可能
           
         事業者があらかじめ、この契約申込みの撤回や解除につき、
           特約を表示していた場合は、その特約による   

    4.不正競争防止法

     事業者の公正な競争を確保し、経済の発展に寄与することを目的とした法律
       不正行為の類型が定められている
         ・周知表示混同惹起行為(1号)
           広く認識されている、他人の商品等と
           同一または類似の表示を使い、
           その他人の商品等との混同を生じさせる行為
         ・著名表示冒用行為(2号)
           他人の著名な商品等の表示を、
           自己の商品等の表示に使う行為
         ・形態模倣商品の提供行為(3号)
           他人の商品の形態を模倣し、
           これを提供する行為
         ・営業秘密の侵害(4号~10号)
           窃盗など不正の手段によって営業秘密を取得して、
           これを自ら使用または第三者に開示する行為
         ・限定提供データの不正取得等(11~16号)
           特定の者に対してのみ提供されているデータを、
           窃盗や不正アクセスなどの不正な手段で入手し、
           自ら使用または第三者に開示する行為
         ・技術的制限手段無効化装置等の提供行為(17~18号)
           制限されているコンテンツの視聴・記録や、
           プログラムの実行を可能にする装置・プログラム・役務の提供
         ・ドメイン名の不正取得等の行為(19号)
           不正の利益を得る、あるいは他人に損害を加える目的で、
           他人の商品等の表示と同一または類似するドメイン名を
           使用する権利を取得する行為
         ・誤認惹起行為(20号)
           原産地や品質、内容等を誤認させるような表示をする行為
         ・信用毀損行為(21号)
           競争相手にあたる他人の信用を害する、
           虚偽の事実を告知・流布する行為
         ・代理人等の商標冒用行為(22号)
           パリ条約の同盟国等おいて権利を持つ者の代理人が、
           正当な理由なく、権利を有する者の承諾も得ず、
           当該商標を使用する行為

  • DNSレコード

    1.概要

     ドメイン名とIPアドレスなどの関連情報を、
       ドメイン名システム(DNS)サーバーが管理・提供するための指示書
         intra1.infraexpert.com. IN A 192.168.0.1

       ウェブサイトの閲覧、メールの送受信、サービスの種類などを
         制御するために利用される

     主要DNSレコードの構成
       ・Aレコード(ドメイン名とIPv4アドレスの紐付け)
       ・MXレコード(メールサーバーの指定)
       ・NSレコード(ドメインの権威DNSサーバーの指定)など

    2.A(Address)レコード

     ホスト名とIPアドレス(IPv4アドレス)の関連づけを定義するレコード
       VALUEにグローバルIPアドレスを入力することによって、
       利用するサーバーへの名前解決が行われる

    3.AAAAレコード

     ホスト名とIPアドレス(IPv6アドレス)の関連づけを定義するレコード
       VALUEにグローバルIPアドレスを入力することによって、
       利用するサーバーへの名前解決が行われる

    4.CNAME(Canonical NAME)レコード

     ホストの別名を指定するレコード、エイリアス名 IN CNAME 本当のホスト名
       www.infraexpert.com. IN CNAME intra1.infraexpert.com.

    5.MX(Mail exchange)レコード

     ドメインのメールサーバを指定するレコード
       infraexpert.com. IN MX 10 mail1.infraexpert.com.

    6.NS(Name Server)レコード

     ゾーン情報を管理するネームサーバーのサーバー名を定義するレコード
       サブドメインについてNSレコードを記述した場合は、
       サブドメインを管理する権限を別のネームサーバに委任したことを示す
         infraexpert.com. IN NS ns1.infraexpert.com.

     NSレコードのホスト名はAレコードが登録されている必要がある

  • アヤメの種類判別(その6)

    実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある
      学習モデルにRandomForestを使用する

    1.事前準備

     ライブラリのインポート、データの読み込み
       4つの説明変数
         sepal length (cm) : がく片の長さ
         sepal width (cm) : がく片の幅
         petal length (cm) : 花弁の長さ
         petal width (cm) : 花弁の幅

       targetに3つの品種がある
         setosa, versicolor, virginicaの3品種名
         説明変数と同じようにデータフレームに入れる
           目的変数の値を確認する
             0 : setosa
             1 : versicolor
             2 : virginica

    #
    # ライブラリのインポート、データの読み込み、先頭5行の表示
    #
    from sklearn.datasets import load_iris
    import pandas as pd
    iris = load_iris()
    data = iris.data
    #
    # 説明変数の確認
    #
    feature_names = iris.feature_names
    df = pd.DataFrame(data=data, columns=feature_names)
    df.head()
    #
    df.shape
    #
    # 目的変数の確認
    #
    target = iris.target
    target_names = iris.target_names
    print(target_names)
    #
    df_target = pd.DataFrame(data=target, columns=['target'])
    print((df_target.head())
    #
    print(df_target['target'].unique()) 

    2.機械学習

     データ分割
       データを学習用とテスト用に分割する
         train_test_split()で簡単に分割できる
         デフォルトで25%のデータがテストデータ
           変更する場合は引数にtest_sizeを追加する、0.2~0.4がお勧め

    from sklearn.model_selection import train_test_split
    x_train, x_test, y_train, y_test = train_test_split(data, df_target)
    print('x_train : ', x_train.shape) 
    print('x_test : ', x_test.shape) 
    print('y_train : ', y_train.shape) 
    print('y_test : ', y_test.shape) 

    3.機械学習

     学習モデルにRandomForestを使用する

    from sklearn.ensemble import RandomForestClassifier
    model = RandomForestClassifier()
    #
    model.fit(x_train, y_train)

     モデルの精度を確認する
       精度の確認にはaccuracy_scoreを使用する
       精度は 97.4%

    pred = model.predict(x_test)
    #
    from sklearn.metrics import accuracy_score
    accuracy_score(y_test, pred) 

  • デッドロック回避方法

    デッドロックが発生していることを検出する方法

    1.2 相ロック

     トランザクション処理で必要になったデータにその都度ロックをかけ
       必要となる全てのロックを獲得した後にだけロック解除ができる方式

       並行に実行されるすべてのトランザクションが2相ロックに従うことで、
         すべてのデータアクセスが直列化され、
         途中で他のトランザクションにデータを書き換えられ
         処理に矛盾を生じるデータの不整合を避ける

     具体的な動き
       必要なデータすべてのロックを取得し、その後にロックを解放し始める
         2つの段階が分かれていることで、
         データの矛盾を防ぎ、トランザクションの直列化可能性を保証する

    2.時刻印アルゴリズム

     トランザクションの開始時、データ読取り・書出し時などの時刻を記録する
       複数のトランザクションが競合した際、
       タイムスタンプにより、最初に実行されたトランザクションを特定し、
       これを先に実行するよう、
       他の全てのトランザクションをロールバックした後、再実行する

       競合が多発するとスループットが低下しやすいため、
       トランザクション間で共有する資源が少ない場合に有効

    3.待ちグラフ

     実行中のトランザクションを各ノード、
       データのアンロック待ちの様子を矢印で表現したグラフで、
       デッドロックの検出に使用する

       X→Yは、
         トランザクションXが
         トランザクションYがロックしている資源のアンロックを待っている
         待ちグラフ内に閉路があればデッドロックが発生していると判断する

         DBMSはいずれかのトランザクションを強制的にアボートさせることで
         デッドロックを解消する

    デッドロックの判別

     具体的なデッドロックの見分け方
       サイクルがあるとデッドロックが発生する
       サイクルがないとデッドロックにはならない

       上記の例だと
         B,C,Dでサイクルがあるでデッドロックが発生する
         FはDの資源開放を待つので、デッドロックの状態になる

  • JavaScriptの活用

    1.JavaScriptとは

     Webブラウザ上で動作するスクリプト言語の一つ
         スクリプト言語とは習得容易で直接実行できる言語
       Webブラウザの機能を制御し、以下のような動作をサポートする
         動的な操作やアニメーション
         ユーザーとのインタラクション
         データの検証や処理

    2.Javaとの違い

     名前が似ているので同じプログラミング言語と思われがちだが
       両者は全く異なるプログラミング言語

     JavaScriptは
       Webブラウザ上で実行されるスクリプト言語
       HTMLやCSSと組み合わせてWebページの動的な振る舞いを実現する
         C言語の文法や構造に似た構文を持つ
         オブジェクト指向や関数型プログラミングをサポートする

     Javaは
       オブジェクト指向の汎用プログラミング言語
       デスクトップアプリ、Webアプリ、モバイルアプリ等、幅広く使用される
         C++から派生した言語
         プログラムの安全性や信頼性、ポータビリティに重点を置く

    3.JavaScriptの主な機能

     サーバー側で動きを付ける
       Webブラウザ上で動作するのが基本だが近年
         「Node.js」というライブラリを使ってサーバー側での動作が可能

       クライアント側とサーバー側で同じプログラミング言語が使えれば
         開発効率が向上する

      動的なWebサイトを制作する
       HTMLとCSSに指示を出して、Webサイトに動きをつける
         HTMLの要素を取得・操作することで
           特定の要素を非表示にしたり
           テキストを変更したり
           フォームの入力内容を検証する
         CSSのスタイルを変更する
           特定の要素の背景色やフォントサイズを変更できる

     非同期で通信する
       Ajax(Asynchronous JavaScript and XML)という技術を用いて、
         Webページの一部を再読み込みすることなく、
         サーバーと非同期的に通信できる

         フォームに入力したデータを、ページ全体を再読み込みすることなく
         サーバーに送信してチェックを行い、エラーメッセージを表示させる
           例としてGoogle Map画面遷移が挙げられる

       Webページのレスポンス性やユーザビリティを向上させられるる

      Webアプリケーションサービスを開発する
       様々なアプリケーションの開発を行う
         例としてGoogle Mailの読み書きや削除が挙げられる

    4.有効/無効の切替

     Google Chromeの場合
       「設定」を呼び出しクリックする
       「プライバシーとセキュリティ」より「サイトの設定」をクリックする
       「Javascript」をクリックする
       有効/無効を設定する

     Apple Safariの場合
       「Safari」より「環境設定…」をクリックする
       「セキュリティ」より「Webコンテンツ」欄を探す
       JavaScriptの有効/無効を設定する

     Microsoft Edgeの場合
       画面上端の(・・・)をクリックし「設定」をクリックする
       「Cookieとサイトのアクセス許可」より「JavaScript」をクリックする
       「許可(推奨)」を「オン/オフ」する

    5.補足

     「有効/無効」の切替を試してみた
       間違いなく、全てのサイトでJavaScriptが使われている
         「無効」にすると「警告」メッセージが表示される

       「有効」にしておくのが無難な選択でしょう

  • スタック領域とヒープ領域

    1.スタック領域(stack area/stack memory)

     最後に確保した順に開放する(LIFO方式)
       確保したのとは逆の順番で解放する

        サブルーチンからの戻り番地の退避に使用される

    2.ヒープ領域(heap area/heap memory)

     任意の順序で確保・解放する
       ヒープとは山積みという意味
       どのような順序で確保・解放するかは、自由に決める

       割当てと解放の順序に関連がないデータの格納に使用される

    3.利用する理由

     スタック領域を利用する理由
       関数内で定義された変数や、引数として受け取ったパラメータは、
       その関数の実行中のみ使用されるのに適している

     ヒープ領域を利用する理由
       動的にメモリを確保・開放するのに適したデータ構造を持っているため

  • モンテカルロ法

    1.概要

     乱数で近似解を求める方法
       乱数を用いて何度も試し、繰り返し、おおよその解を導き出す

     偶然な数を使うことで正確な答えが出せるのか疑問だが
       試行回数を増やすほど、真の値に近づくことが数学的に証明されている
       サイコロを振れば振るほど、出た目の平均値が理論値に近づくのと同じ

    2.円周率を求める

     円の面積と円周率の計算を考えてみる
       正方形の中に円を描く
       正方形の中に点をランダムにたくさん打つ
       正方形全体に打たれた点の数と、円の中に落ちた点の数を数える
       円の中に落ちた点の数の割合は、円の面積と正方形の面積の割合に近い

       割合と正方形の面積から、円の面積を計算することができる
         円の面積が分かれば、そこから円周率を求めることができる

     実際の計算
       一辺2rの正方形の中にぴったり入る半径rの円を考える
       この正方形の中に、ランダムに点を打つ
         ある領域に入った点の数は、その領域の面積に比例するので
         円の中に入った点の数/打った点の総数は
         面積の比と同じになる πr2乗/(2r)2乗
         約分すると π/4 となり

         点の数を数えて4倍すれば、円周率の近似値になる

    3.利点・欠点

     メリット
       直接計算が難しい問題でも比較的簡単に近似値を得られる
         汎用性が高い
           複雑な形状や条件を持つ問題
           数式で表現することが難しい現象
           多くの変数が絡み合うシステム 等に適用可能

         アルゴリズムが単純
           プログラムを書きやすい
           実装が容易
           幅広い利用者にとって扱いやすい

         並列計算との相性が良い
           複数の計算機を用いることで計算速度の大幅な向上が可能

     デメリット
       真値ではない、乱数の生成方法や試行回数を適切に設定する必要がある
         近似解しか得られない
           真の解との誤差を評価することは可能だが、
           厳密な解が必要な問題には適していない

         計算時間
           試行回数を増やすほど精度は向上するが、
           計算時間も増加し、計算コストが高くなる可能性がある

         乱数の質への依存
           質の低い乱数生成器を用いると、
           計算結果の信頼性が低下する可能性がある

  • データ正規化技術

    データの重複をなくし整合的にデータを取り扱えるようにDBを設計する
      形式ばった用語が並ぶが、普通の考え方で十分データベース設計ができます

    1.正規化の段階

     各段階を経てデータは正規化されていく

     第1正規形(first normal form 1NF)
       関係がスカラ値のみを持つ
         属性の値として繰り返しなどの集合や複合値を持たない表

       スカラ値とは
         単一の数値や値で表現される「大きさ」のみを持つ数値

     第2正規形(second normal form 2NF)
       関係が、第1正規形で、
       すべての非キー属性が、すべての候補キーに対して完全関数従属する

       完全関数従属とは
         属性(X)の値を定めると、属性(Y)の値が位置的に定まるとき、
           YはXに関数従属であるといい、X→Yと表記する
         Xのいかなる真部分についても関数従属性が成り立たない場合、
           Xが関数従属性を成り立たせる最小の属性集合である場合を
           完全関数従属の状態という
         Xのうちの真部分とはXが複数の部分に分割できる場合を考える
           A、B、Yという属性があってB→Cであるときに、
           AとBとの組み合わせをXとするとX→Yとなるが、
           XのうちのBすなわちXの真部分と関数従属性が成り立つ
           Yからみた場合、Aの部分については冗長な関係にある

     第3正規形(third normal form 3NF)
       関係が、第2正規形で、
       非キー属性があるならば、全てが 候補キーに非推移的に関数従属する

     ボイス・コッド正規形(Boyce/Codd normal form BCNF)
       関係上に存在する自明でない全ての関数従属性の決定項が候補キー

     第4正規形(fourth normal form 4NF)
       候補キーではない属性への多値従属性をもった属性があってはならない

     第5正規形(fifth normal form 5NF)
       関係が第4正規形であり、
       その関係に含まれる結合従属性の決定項が候補キーのみである

    2.正規化と属性の変化

    正気かによる属性の変化

     正規化の例
       第一正規化:仕入先と入荷日・数量等のデータを正規化
               繰り返し項目を持たず、導出項目の排除された表

       第二正規化:商品表と入荷表に整理する
               非キー属性は主キーに従属する、完全関数従属と呼ぶ

     商品表
      入荷表

       第三正規化:仕入先表と電話帳を追加する
               項目同士で依存関係を持っているものを別テーブルにする
               非キー属性がすべて主キーに完全関数従属し、
                 推移的関数従属性の排除された形式

    仕入先表
     電話帳

  • メールやパスワードの危険性

    1.メールの危険性

     主な危険物はメール経由で到来する
       一般的なコミュニケーション手段であるために
         高度な技術ではなく人の心理的な隙を突いてメールが届く
         扱いやすい手段を使ってメールの送信は可能である

     対策として
       有料・・・AI 技術の利用(多分あると思う、探してください)
              過去の危険なメールの内容を学習してもらう

       無料・・・2種類のアドレスに分類して防衛する
              外部に提示するアドレスを用意する(公開アドレス)
                偽メールが届く様になったら破棄し、新規に用意する
              金銭に関するサイトへは各々無意味なアドレスを登録する
                文字列を類推できないので偽メールは決して届かない
                無意味なアドレスを作成し管理するにはアプリが必要
                  アドレスとパスワードをペアで管理できるアプリ
                  無意味なアドレスを作り出すアプリ

    2.パスワードの危険性

     パスワードは様々な攻撃や不正アクセスを引き起こす元凶
       パスワードの盗難や使い回しに起因する被害が多い

     パスワードが盗まれる原因
       ブルートフォース攻撃・・・総当たり攻撃
         何通りもの組み合わせを総当たりで入力し認証突破を試みる
       キーロガー攻撃・・・キー入力した文字を記憶する悪性ソフトが働く
         入力された文字からID とパスワードの組み合わせを類推する
       フィッシング攻撃・・・本物と同じ様な偽のサイトに誘い込む
         本物と思い込み安心し操作すると、ID とパスワードが盗まれる

     対策として
       最小文字数を決める(桁数は多いほど他者は類推できない)
       定期的なリセットを自分に義務付ける
       無意味な文字列にする
         管理するにはアプリを使用する(メール対策と同じ)
           アドレスとパスワードをペアで管理できるアプリ
           無意味なアドレスを作り出すアプリ

    3.結論

     類推できない「メールアドレス」と「パスワード」を使うことが一番
      無意味な文字の並びを提供するアプリを見つける

     無意味な文字の並びのアドレスとパスワードをペアで使用する
      自分で覚えることはできないので、管理できるアプリを見つける

    4.補足

     アプリを仕様することで副次効果を生み出す
       通常では考えられない「多数」のアドレスとパスワードが管理できる
         幾らでも目的に沿ってアドレスとパスワードを作り出し
         アプリに登録しておけば必要になった時点でアプリにアクセスする
         頭に記憶させたり、紙に書き留めたりと不自由な思いをしなくて済む

         幾らでも作り出せる点がお勧めポイント     

  • 「フォト」アプリを更新したい

    1.経緯

     「フォト」アプリを更新したいとの要請あり
       更新理由等は説明してもらえず、詳細不明のまま対処する

    2.対処方法

     Windowsに標準でインストールされているアプリは更新できない
       「メール」や「フォト」等々

     更新するには、一旦削除して再インストールが必要と判断
       PowerShellコマンドを使って削除する、必要がある

    3.対処内容

     (1)「スタート」アイコンを右クリック
       タスクバーにある「スタート」ボタン(アイコン)を右クリックする

     (2)表示されたメニューから下記を選択する
      「Windows PowerShell(管理者)」をクリックし起動させる


     (3)PowerShellの起動を確認し「フォト」を削除する
       「削除」用コマンドをコマンドラインに入力する
        (例)フォト(Photos)の削除
          get-appxpackage *Microsoft.Windows.Photos* | remove-appxpackage

    4.インストール

     インストール
       ・Microsoft Storeからアプリを手動でインストールする
         一般的にはこれで再インストールできる

       ・自動更新の設定で自動でインストールさせる
         Windows10の「設定画面」にある
         「アプリを自動的に更新」のスイッチボタンを「オン」にしておくと
         自動的に再インストールされる

    5.補足

      「May 2019 Update」で削除可能になったアプリが約8個追加された
        今後も追加/変更されると思われるので、都度確認する
        勝手に追加されて迷惑な場合は、「自動的に更新」をストップさせる

  • 可変長引数

    実行例は「stupa.sarnath」の「Google Colabotry」環境に保存してある
    任意の値を引数にセットすることでその値に対応した結果を得る

    1.引数なしの場合(使用例と結果)

    def hello():
        print ('Hello')
    hello()
    
    # Hello

    2.戻り値を返す場合(使用例と結果)

    def add(a, b):
        x = a + b
        return x
    answer = add(70, 30)
    print (answer)
    
    # 100

    3.可変長引数の場合(使用例と結果)

     関数内で可変長引数としてアスタリスク(*)1個を前に付ける
       指定できる可変長引数は1個だけ

    def sample(name1, name2, *args):
        print (name1)
        print (name2)
        print (args)
    sample('Sato', 'Tanaka', 'Suzuki', 'Honda')
    

    4.キーワード引数の場合(使用例と結果)

     関数内で可変長引数としてアスタリスク(**)2個を前に付ける
       指定できるキーワード引数は1個だけ
       ただし、キーワードを付けて複数の項目を指定できる

    def sample(name1, **params):
        print (name1)
        print (params)
    sample('Sato', 年齢=30, 性別='男')
    
  • 刑事コロンボ

     10月3日№01
    殺人処方箋
    精神分析医奥さんを殺害し、愛人に共犯の相棒を担わす
    愛人を自殺したと見せかけて、犯人の本音を探り出す
    ジーンバリー
     10月4日№02
    死者の身代金
    女性弁護士 後妻が夫を殺害し、身代金を一人締めする
    急な娘の家出にお金を渡す、身代金の一部を使ってしまう
     10月5日№03
    構想の死角
    小説家の
    相棒
    手の込んだ方法で相棒を殺害する
    殺害方法を詳しく書いた紙片を部屋の中から見つけ出す
     スピルバーグ演出
     10月6日№04
    指輪の爪あと
    探偵事務所
    所長
     殺害時に被害者のコンタクトレンズが落ちたとわざと漏らす
    コンタクトレンズ(偽者)を見つけ出し、慌てて隠そうとし見つかる
     71年
    10月7日
    №05
    ホリスター将軍の
    コレクション
    退役将軍 殺害に使用した拳銃が見つからない
    使用した拳銃をレプリカだと装って、外部に持ち出していた
    スザンヌ・プレシェット
    34才
     10月8日№06
    二枚のドガの絵
    画商盗んだ絵画を持ち歩いてる途中で警部が指紋を付ける
    絵画が発見された出てきた際、付いているはずの無い指紋が出る
     10月9日№07
    もう一つの鍵
    社長の妹妹が合鍵の存在を知らずに兄を殺害する
    銃声と非常ベルとの時間差に気付き狂言だと分かる
     10月11日№10
    黒のエチュード
    指揮者演奏会前に付けていた特別なバラの花が殺害時に落ちてなくなる
    被害者の部屋から落としたバラの花を付けて出てくる
     10月12日№08
    死の方程式
    社長の甥 葉巻のケースに爆薬を仕掛けて社長を殺害する
    葉巻のケース(偽者)を渡され、逃げ場の無い場所で勘違いし白状する
     10月13日№09
    パイルD-3の壁
    設計事務所長建築現場の基礎工事部分に死体を隠したと思わせる
    一旦パイルを掘り起こさせて、埋め戻す際に死体を隠そうとする
     10月14日№11
    悪の温室
    資産家の
    叔父
     死体を撃った拳銃を被害者の妻の拳銃とすり替える
    数ヶ月前に発射した銃弾を掘り出して拳銃のすり替えを見破る
     10月15日№12
    アリバイの
    ダイヤル
    FBチーム
    GM
    チームのオーナーをプールサイドで氷を使って撲殺する
    録音された電話に時報の音が無く、アリバイが崩れる
     10月16日№13
    ロンドンの傘
    舞台俳優 夫婦でスポンサーを殺害する、その際にネックレスが飛び散る
    殺害現場に有ったはずの傘から、ネックレスの破片(偽者)が出てくる
    73年
    10月19日
    №14
    偶像のレクイエム
    女優 昔、クラブに所属していた夫を密かに殺害し庭に埋める
    クラブ会員の指輪(偽者)を見せて、慌てて駆けつけた庭先を確認する
     アンバクスター
    50才
     10月20日№15
    溶ける糸
    心臓外科医 邪魔な教授の心臓を溶ける糸で手術する、死亡解剖すると言われ
    再手術の糸を警部のポケットに隠したところを見つかる
     スポック博士
    奥様は魔女(主人公)
     10月21日№16
    断たれた音
    チェス名人
    挑戦者
    聾の挑戦者が補聴器をせずにチェスの対戦者を焼却炉に突き落とす
    異常停止の機能を知らずに居たのは耳の聞こえない人物だと分かる
     10月22日№17
    二つの顔
    資産家の
    甥兄弟
     双子の兄弟が資産家の叔父を電機事故で殺害する
    1人が外出し、1人が殺害する、停電の回復時間で共犯者が居ると判断する
     スパイ大作戦の
    変装名人
    73年
    10月23日
    №18
    毒のある花
    化粧品会社
    社長
     研究成果を独り占めするために顕微鏡で撲殺する
    撲殺の衝撃で割れたパレートから痒みが移り、現場に居たことが判明する
     ベラマイルズ
    44才
     10月26日№19
    別れのワイン
    ワイナリー
    経営者
     邪魔な弟を殺害し、ワイン倉庫に冷房を切って死体を隠す
    犯人だけが高温に晒されたと指摘できた
    大脱走の
    偽造技術者
     10月27日№20
    野望の果て
    上院議員候補邪魔な秘書に自分の上着を着せて拳銃で射殺する
    壁に銃弾を打ち込み部屋を出た隙に銃弾を発見される
     10月28日№21
    意識の下の映像
    行動心理学者 デモテープに喉が乾く仕掛けをする
    捜査する画像を紛れ込ませ不安にさせ、隠し場所に誘導させる
     10月29日№22
    第三の終章
    出版社社長 移籍予定の作家を殺害し、契約中として出版を計画する
    殺害前に受け取った原稿に、最近修正した内容が入っていた
     10月30日№23
    愛情の計算
    人工頭脳学
    研究所長
     殺害時にロボットを動かしてにアリバイ工作を諮る
    証拠が無いので息子の罪を強調し目の前で逮捕、父親に自白させる
     ホセファーラー
     11月2日№24
    白鳥の歌
    カントリー
    歌手
    邪魔になった妻を航空事故に見せかけて殺害する
    レンタカーの鍵に気付かれ、現場に戻ってきたところを捕まる
     11月3日№25
    権力の墓穴
    市警次長誤って殺害した隣人のアリバイ工作として宝石を盗む
    犯人の住所と思い宝石を隠す、誰も知りえない住所と宝石が結びつく
     11月4日№26
    自縛の紐
    ジム経営者トレーニング中の事故に見せかけて監査人を殺害する
    靴の紐を結んだと疑われ、着替えたことを知っていたと分かる
     11月5日№27
    逆転の構図
    カメラマン妻を拘束し時計を14時にして写真を撮り殺害する
    10時の写真を見せられ、ネガを取り出そうとしてカメラを取り上げる
     11月6日№28
    祝砲の挽歌
    私立陸軍幼年
    学校の校長
    邪魔な理事長を大砲の暴発で殺害する
    早朝に隠して吊り下げていた瓶を見たことによってアリバイが崩れる
     11月9日№29
    歌声の消えた海
    中古車
    ディーラ社長
    邪魔になった歌手を船内にて拳銃で殺害する
    無理やり証拠を作ってゴム手袋の内側に指紋を残してしまう
    ロバートボーン
     11月10日№34
    仮面の男
    CIA職員同僚に脅されたので、夜に呼び出し殺害する
    夜に作成した演説原稿内容は当日早朝に発表された内容だった
     11月11日№36
    魔術師の幻想
    魔術師弱みを握られている劇場オーナーを殺害する
    タイプライターのリボンから告発文の内容が分かる
     11月12日№32
    忘れられたスター
    往年の大女優資金提供しなくなった夫を殺害する
    フィルムを継ぎ足したことが判明しアリバイが崩れる
    ジャネットリー
    48才
     11月13日№37
    さらば提督
    社長の弟造船会社の社長が殺害され、甥が疑われ、弟が殺害したと分かる
    社長の腕時計の音を聞かされ、壊れていると知ったいたのは弟だけ
     ロバートボーン
     11月16日№30
    ビデオテープの証言
    電子工業会社
    社長
    資産家の義理の母親を殺害し、ビデオテープでアリバイ工作をする
    死体の傍にあった招待状を持ち出したのは犯人だけだと分かる
     11月17日№35
    闘牛士の栄光
    元闘牛士無様な姿を古い友人に見られたので殺害する
    実際に牛を闘牛場に放ち、立ち向かわせて殺害の動機が分かる
     11月18日№31
    5時30分の目撃者
    精神分析医誤って患者の主人を殺害し、逃亡する際に盲人に出会う
    同じ姿をしてきた別人に、盲人のはずだと思わず喋ってしまう
    ジョージハミルトン
    11月19日№33
    ハッサン•サラーの
    反逆
    総領事代理人代理人が警備隊長を殺害するが外交特権をが有って逮捕できない
    国王が居なくなったと確信し自ら犯罪を暴露し王様に聞かれる
    サルミネオ(召使)
    11月20日№38
    ルーサン警部の犯罪
    人気俳優マネージャーに搾取されるのを嫌がり、小道具の拳銃で殺害する
    拳銃を元に戻す再に弾丸に指紋を残してしまう
    宇宙大作戦
    カーク船長
     11月23日№39
    黄金のバックル
    美術館館長美術館を売り飛ばそうとする弟を、棚卸し中に殺害する
    以前に盗まれたはずと言ったバックルが棚卸し時に録音されていた
    11月24日№40
    殺しの序曲
    会計事務所
    所長
    プレーヤーのアームの戻りを利用して殺害時のアリバイを作成する
    執拗に犯行手順を説明するのに苛立ち、つい本当のことを話してしまう
    11月25日№41
    死者のメッセージ
    作家姪を殺したと思われる義理の甥を金庫に閉じ込めて殺害する
    死に際に著作の題名をマッチの燃えさしで塗りつぶし犯人の名前を伝える
     11月26日№42
    美食の報酬
    料理評論家レストランオーナーに秘密を暴露されそうになって河豚の毒で殺害する
    毒を入れた栓抜きカートリッジを入れ替えるたことが見つかる
    11月27日№43
    秒読みの殺人
    TV
    プロデューサー
    邪魔者扱いされた支局長をテープの切替時間を利用して殺害する
    テープを繋ぎ変えた直後の音声を聞かれていたことが分かる
    11月30日№45
    策謀の結末
    アイルランド
    革命家
    取引の金を持逃げしようとした銃の密売人を殺害する
    独自な目印の付いた癖が殺害現場にも残っていた
    12月1日№46
    汚れた超能力
    超能力者片棒を担いだ相手を秘密を守るために殺害する
    ギロチン装置のタネを知っていて、ただのマジシャンだと分かる
    12月2日№47
    狂ったシナリオ
    映画監督遠方からやってきた幼馴染に脅かされ撮影所内で感電死させる
    幼馴染がアルバムにチケットを挟み込んであり、会った事が分かる
    12月3日№48
    幻の娼婦
    心理学者愛人でもあったマネージャーを娼婦として呼出し殺害する
    コートのタグから購入店を調べ上げ、変装道具の購入まで調べ上げる
     12月4日№49
    迷子の兵隊
    軍事教練学校
    財団幹部
    不正を働いていることを部下に脅され爆死させる
    ジオラマの事前準備は梱包箱の大きさの違いで無かったと分かる
     12月7日№50
    殺意のキャンバス
    画家過去の殺害事件を知っている元妻を眠らせ海で溺死させる
    絵を描いていた事は絵の具が床に落ちていないことで無かったと分かる
     12月8日№51
    だまされたコロンボ
    雑誌社オーナー共同経営者と共謀し偽の殺人事件をでっち上げ、事件解決後に殺害する
    死体の腕時計からの電話呼び出し音で隠し場所が分かる
     12月9日№52
    完全犯罪の誤算
    弁護士昔の犯罪履歴を脅され友人を殺害する
    現場に残したチーズの片端に付いていた歯形でアリバイが崩れる
     12月10日№53
    かみさんよ、安らかに
    不動産販売夫を密告した友人と逮捕したコロンボを恨みから殺害しようと計画する
    毒を飲んだ演技をし、犯人に一部始終を自白させる
     12月11日№54
    華麗なる罠
    歯科医妻の浮気相手の歯の治療と見せかけて毒薬で殺害する
    化学に弱いとのことで、毒で歯が青く変色すると言われ自供する
     12月14日№44
    攻撃命令
    心理学者邪魔になった同僚を猛犬を使って殺害する
    録音テープの言葉に犬が反応したことから殺害方法を推理する
     12月15日№55
    マリブビーチ殺人事件
    遊び人邪魔になった年上の恋人を殺害する
    下着を前後ろ逆に履かせてしまい男の犯行だと分かる
     12月16日№56
    殺人講義
    大学生試験問題を盗んだことが発覚したので、担任教授を殺害する
    殺害に使った拳銃を騙されてコロンボ指定の車に捨ててしまう
     12月17日№57
    犯罪警報
    テレビキャスター弱みを握っているライバルにニコチン入りの煙草を吸わせる
    ビデオテープの手入れされた植え込みに依ってアリバイが崩れる
    ジョージハミルトン
     12月18日№58
    影なき殺人者
    弁護士離婚に応じない浮気性の妻を毒入りシャンペンで殺害する
    即効性の毒のため2杯目を飲むことは無く、手袋の型が死体に残っていた
     12月21日№59
    大当たりの死
    宝石商当選金を独り占めしようとして甥を殺害する
    身に着けていたブレスレットに行った事のない家の猿の指紋が付いていた
     12月22日№60
    初夜に消えた花嫁
    変質者結婚式の夜、甥の花嫁が誘拐される
    テンポよく推理を働かせて12時間余で花嫁を救い出す
     12月23日№61
    死者のギャンブル
    ギャンブル好き叔父を爆死させようとするが先に叔母が自動車事故死させる
    脅迫された叔母が青年を射殺する、自動車のボンネットの露でアリバイが崩れる
     12月24日№62
    恋におちたコロンボ
     大富豪実の娘と母親の双方と恋仲になった愛人を殺害する
    娘のほうを取り調べる、居たたまれず母親が自供する
    フェイダナウェイ
    52才
     12月25日№63
    4時02分の銃声
    DJ養女が恋人に惹かれていくのに嫌悪して恋人を殺害する
    自宅を出て電話をしたと言うが、山の中では電話が通じずアリバイが崩れる
    宇宙大作戦
    カーク船長
     12月28日№64
    死を呼ぶジグソー
    保険調査員銀行から盗み出した金の在りかを示す写真を奪い合う
    パーキングメータに入れたコインの指紋からアリバイが崩れる
     12月29日№65
    奇妙な助っ人
    牧場主借金に困る弟を殺害しマフィアの借金取りをも殺害する
    マフィアのボスに脅かされ、逮捕されることを覚悟して白状する
     1月4日№66
    殺意の斬れ味
    鑑識員違う切り口の葉巻を残したり、背中に猫の毛を付けたりする
    ダンスの際の写真から、猫の毛は途中で付けられたと証明される
     1月5日№67
    復讐を抱いて眠れ
    葬儀社社長昔の女性仲間に脅かされて殺害し、退役軍人の遺体とすり替えて火葬にふす
    その後、退役軍人の遺体を火葬にする、遺体の灰から被弾した弾が出る
    1月6日№68
    奪われた施律
    音楽家弟子に身代わり作曲の件で脅される
    エレベータを使って落とす、彼女から貰った指揮棒が見つかり証拠となる
     1月7日№69
    殺意のナイトクラブ
    クラブ経営者誤って殺害した死体をクラブの水槽に隠す
    水槽の中の魚の数から、余分なモノで容量が締められているとする
  • Lineのファイル管理

    幾つかファイル操作の方法があって分かりいくい

    1.Lineで画像を相手側に送信した場合

     相手側のLineに画像を送信すると
       そっくり画像が相手側のLineに届く

     相手側は受信した画像を自由に扱える

    2.Lineで届いた画像をダウンロードした場合

     受信した画像をダウンロードすると
       自分の機器のダウンロードエリアに保管される
       このエリアはLine外の場所にあるのでLineからは見えない

     ダウンロードエリアを参照するアプリで見る
       「写真」アプリ等で見ることができる

    3.Lineで届いた画像をkeepした場合

     受信した画像をキープすると
       自分の機器のキープエリアに保管される
       このエリアはLine内の場所にあるのでLineから見ることができる

     同じアカウントであれば、後でPCまたはスマホで自由に見ることができる

  • アヤメの種類判別(その7)

    実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある

    1.iris データセットの説明

     データセットのロード
       load_iris 関数でロードする

     データセットの説明
        DESCR (description) の中身を見る
         Attribute の意味
           sepal length:ガクの長さ
           sepal width:ガクの幅
           petal length:花弁の長さ
           petal width :花弁の幅

    from sklearn.datasets import load_iris
    iris = load_iris()
    #
    print(iris.DESCR)

     データセットの内容
       データセットの形状・・・特徴量は 4 個で、150 個のデータ
                   形状は shape で確認する

       花の種類・・・target_names に3種類の花が格納されている
              setosa、’versicolor、’virginica

       先頭5件・・・iris.data
                 4 つの特徴量(ガクの長さ、幅、花弁の長さ、幅)
              iris.target
                3種類、0(=setosa), 1(=versicolor), 2(=virginica)

    print(iris.data.shape)
    #
    print(iris.target_names)
    #
    for data, target in zip(iris.data[:5], iris.target[:5]):
      print(data, target)

    2.データフレーム作成

     データフレームにするとデータを扱いやすくなる
       target の行が 0, 1, 2 だと分かりにくいので種類名に置き換える

       describeで平均値、最小、最大値を眺める

    import pandas as pd
    #
    df = pd.DataFrame(iris.data, columns=iris.feature_names)
    df['target'] = iris.target
    df.loc[df['target'] == 0, 'target'] = "setosa"
    df.loc[df['target'] == 1, 'target'] = "versicolor"
    df.loc[df['target'] == 2, 'target'] = "virginica"
    #
    print(df.describe())

    3.ペアプロットする

     各特徴量のペアごとに散布図を表示する
       特徴量のペアで見ても同じ品種が固まっているので、比較的分類しやすい

    import seaborn as sns
    #
    sns.pairplot(df, hue="target")

    4.分類アルゴリズム

     分類アルゴリズムの特徴を見るために
       作成したモデルの決定境界(decision boundary)を表示する

       モデルを validation 用、test 用に分けたり、正答率の評価は行わない

       X に訓練データをセットする
         特徴量はガクの長さ、花弁の長さの2つだけを使用する
       y に教師データとして品種をセットする

       描画用にコードを準備する

    # import some data to play with
    X = iris.data[:, [0, 2]] 
    y = iris.target
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    # graph common settings
    h = .02  # step size in the mesh
    x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
    y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
    
    def decision_boundary(clf, X, y, ax, title):
        clf.fit(X, y)
        
        # Plot the decision boundary. For that, we will assign a color to each
        # point in the mesh [x_min, x_max]x[y_min, y_max].    
        Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
        
        # Put the result into a color plot
        Z = Z.reshape(xx.shape)
        ax.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)
        
        # Plot also the training points
        ax.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', cmap=plt.cm.Paired)
        
        # label
        ax.set_title(title)
        ax.set_xlabel('sepal length')
        ax.set_ylabel('petal length')
    

    5.教師あり学習

     k-近傍法 (k-NN)
       モデルには訓練データセットを格納するだけ
         予測時は、予測したいデータポイントの近くの k 個の近傍点を確認し
         その中で一番多数派のクラスを予測結果として採用する

       KNeighborsClassifierを使用する
         n_neighbors で予測に使用する近傍点の数を設定する
           n_neighbors = 1 の場合は決定境界が鋭角になる部分もある
           数が多くなるに従いなだらかになっていき、
             10 になると境界が単純になりすぎて予測性能が落ちる

    from sklearn.neighbors import KNeighborsClassifier
    
    fig, axes = plt.subplots(1, 4, figsize=(12, 3))
    
    for ax, n_neighbors in zip(axes, [1, 3, 6, 10]):
        title = "%s neighbor(s)"% (n_neighbors)
        clf = KNeighborsClassifier(n_neighbors=n_neighbors)
        decision_boundary(clf, X, y, ax, title)

     ロジスティック回帰
       回帰とあるが、分類アルゴリズム

       LogisticRegressionを使用する
         決定境界は直線になる
         C は正則化の度合いを調整するパラメータ
           正則化は学習時にペナルティを与えることで過学習を抑える
           C を大きくすると正則化が弱くなり過学習気味になる
           Cを小さくするとデータの特徴を大雑把にしか獲得できない

       ロジスティック回帰などの線形モデルは
         高次元(特徴量の数が多い)のデータに対して有効
           高速のため、他の手法では学習できない

    from sklearn.linear_model import LogisticRegression
    
    fig, axes = plt.subplots(1, 3, figsize=(10, 3))
    
    for ax, C in zip(axes, [0.01, 1, 100]):
        title = "C=%s"% (C)
        clf = LogisticRegression(C=C)
        decision_boundary(clf, X, y, ax, title)

     線形サポートベクタマシン
       LinearSVCを使用する
         線形なので、決定境界も直線になる
         C はロジスティック回帰同様、正則化の度合いを調整するパラメータ

    from sklearn.svm import LinearSVC
    
    fig, axes = plt.subplots(1, 3, figsize=(10, 3))
    
    for ax, C in zip(axes, [0.01, 1, 100]):
        title = "C=%s"% (C)
        clf = LinearSVC(C=C)
        decision_boundary(clf, X, y, ax, title)

     カーネル法を用いたサポートベクタマシン
       SVM とも呼ばれる
         線形カーネルベクタマシンと比べて、非線形な分離が可能

         SVCを使用する
         C は正則化のパラメータ
         gamma は訓練データの影響が及ぶ範囲
           小さいと遠くまで、大きいと近くになる
             大きすぎると過学習になり
             小さすぎると大雑把にしかデータの特徴を獲得できない

    from sklearn.svm import SVC
    
    fig, axes = plt.subplots(3, 3, figsize=(10, 10))
    
    for ax_row, C in zip(axes, [0.01, 1, 100]):
        for ax, gamma in zip(ax_row, [0.1, 1, 10]):
            title = "C=%s, gamma=%s"% (C, gamma)
            clf = SVC(C=C, gamma=gamma)
            decision_boundary(clf, X, y, ax, title)

     決定木
       質問を通してデータを分類する手法
         あやめの場合には
           花弁の長さが何センチ以上 or 未満
           ガクの長さが何センチ以上 or 未満・・・と質問を繰り返す

         DecisionTreeRegressor を使用する
           max_depth がツリーの深さで、質問数になる
             多ければいいわけでもなく、
             訓練データに過剰適合するので過学習となる

    from sklearn.tree import DecisionTreeRegressor
    
    fig, axes = plt.subplots(1, 3, figsize=(10, 3))
    
    for ax, max_depth in zip(axes, [1, 3, 8]):
        title = "max_depth=%s"% (max_depth)
        clf = DecisionTreeRegressor(max_depth=max_depth)
        decision_boundary(clf, X, y, ax, title)

     ランダムフォレスト、勾配ブースティング回帰木
       ランダムフォレストは異なる決定木をたくさん作り
         全ての決定木で予測した結果から
         もっとも確率が高くなるラベルを正解とする

       個々の木だと過剰適合しているかもしれないが、
         多くの結果を集約することで過学習を抑制する効果がある

       RandomForestClassifier を使う
         勾配ブースティング回帰木もたくさんの決定木を作るが、
           一つ前の決定木の予測値と正解のズレを修正するように
           次の木を作っていく

         GradientBoostingClassifier を使う
           ランダムフォレストよりモデル構築に時間がかかり
           パラメータ設定のチューニングが大変らしいが、
           その分予測性能がよくなる
             GBDT = Gradient Boosting Decision Tree

    from sklearn.ensemble import RandomForestClassifier
    from sklearn.ensemble import GradientBoostingClassifier
    
    fig, axes = plt.subplots(1, 2, figsize=(7, 3))
    clfs = [RandomForestClassifier(), GradientBoostingClassifier()]
    titles = ["RandomForestClassifier", "GradientBoostingClassifier"]
    
    for ax, clf, title in zip(axes, clfs, titles):
        decision_boundary(clf, X, y, ax, title)

     ニューラルネットワーク
       MLPClassifier を使う
         隠れ層 15 個で計算した結果を図示する
           同じパラメータでも決定境界が異なってくる
             異なる理由は、異なる初期状態から学習を開始するから

    from sklearn.neural_network import MLPClassifier
    
    fig, axes = plt.subplots(1, 4, figsize=(12, 3))
    
    for ax, n in zip(axes, [15, 15, 15, 15]):
        title = ""
        clf = MLPClassifier(hidden_layer_sizes=[n, n])
        decision_boundary(clf, X, y, ax, title)

    6.教師なし学習

     k-means
       教師データなしで分類する手法

       KMeans を使う
         n_clustersで何個に分類するかを指定する

    from sklearn.cluster import KMeans
    
    fig, axes = plt.subplots(1, 4, figsize=(12, 3))
    
    for ax, n_clusters in zip(axes, [2, 3, 4, 5]):
        title = "n_clusters=%s"% (n_clusters)
        clf = KMeans(n_clusters=n_clusters)
        decision_boundary(clf, X, y, ax, title)

  • Exif

    1.Exif(Exchangeable Image File Format)

     デジタルカメラで撮影された写真に、
       撮影時のさまざまな情報を保存するファイルフォーマット
       日本語ではEXIF(イグジフ)と呼ぶ

    2.保存される情報

     保存されているデータ
       ・撮影日時 -日付と秒までの時刻
       ・位置情報 – GPS付きカメラや携帯電子機器の場合
              緯度・経度・標高など
       ・撮影方向 -電子コンパス付きのカメラやスマートフォンでの場合
              写真を撮影した際のカメラの方角の情報
       ・撮影機器-メーカー名、製造・販売元、モデル名、スマートフォンの機種
       ・解像度-画像全体、水平・垂直方向の単位あたり
       ・その他
         シャッター速度、絞り、ISO感度、測光モード
         フラッシュ使用の有無、露光補正ステップ値、焦点距離
         色空間(カラースペース)、サムネイル(160×120画素)

    3.使用上の注意点

     ・個人情報を特定できるおそれがある情報
       GPSによる緯度・経度がそのまま自宅の位置となる、場合がある

       iPhoneはSNSへのアップロード時に位置情報のみ削除する

     ・目に見えないExif情報
       サムネイルにはモザイクが掛けられていない、
         拡大すれば住所や名前が観覧できてしまう

       画像のスクリーンショットにはExifが付かない

    4.Exif情報の削除

     ・画像を右クリック
     ・「プロパティー」を開き「詳細」タブを開く
     ・「プロパティーや個人情報を削除」をクリック

  • 古畑任三郎(第1シリーズ)

    第1話
    1994.04.13

    死者からの伝言
    3日前に金庫室に閉じ込めて殺害する

    漫画の原稿とペンを握りしめた状態で死亡。原稿の裏面は白紙であり、ペンのキャップは尻の部分にはめ直されており、書き残せる状態であった

    死人の荷物を調べ、車の免許を持っていない彼がガソリンスタンドや高速道路の領収書、ドライブインのレシートを持っていたこと、ドライブインでカレーライスとカレー南蛮そばを食べたレシートを持っていて、とても1人で食べる取り合わせではないことから、車を運転できる同行者がいたと断定する。

    さらに交友関係を調べ、スケジュール帳に書かれていたイニシャル「C」の女性が犯人だと考えるが、ちなみの行動に違和感を覚え、彼女が犯人だと断定する。

    冷蔵庫から卵を何気なく取り出したのを見て、最近訪れたこと分かってしまう

    死体が握り締めた紙が白紙なのは、最初に発見するのが犯人なので、何も書かなかった
    死体を最初に発見するのが犯人だと確信し、メッセージは残さず、事故ではなく殺人だと思わせるために自分で後頭部を打ち付けた

    死体のスリッパが片方しか無かった、持ち出すのは飼い主の傍にいる犬だけ
    第2話

    動く死体
    犯人は車の事故の目撃者を誤って殺してしまう

    死体を舞台の上に昇降機を使って持ち上げ、あたかも天井から落ちたようにみせかける

    腕時計を壊すなどして犯行時刻を偽装しますが、直ぐに見破られてしまう

    昇降機の位置が舞台に上がっているのに気づく、死体を持ち上げるのに使ったのなら何故元に戻さなかったのかと疑問がわく

    状況証拠だけなので試しに犯人に昇降機を上げ下げしてもらう、上げることはできても下すことができなかった
    打撲で死んだと聞きすぐに「どこから落ちたのか」と聞き返してしまい、犯人しか知り得ない情報を暴露してしまう

    リフトが上がったままだったのは、犯人が昇降機を下ろせなかったと推理する

    いつも乗せられて舞台に上がる犯人は上げ方は知っていたが、上がるだけの犯人は降ろし方を見たことが無かった
    第3話
    1994.05.02

     笑える死体
    「家の中に入ってきた強盗に対し金属バットで反撃したことによる正当防衛」に見せかけ殺害、証拠を隠滅する。

    近くにあったオーブンの中に鳥の丸焼きが入っているのを発見。さらに三角コーナーに吸い殻があったのも発見する。

    ストッキングを脱ごうとしながら襲いかかる」という不可解な状況が生まれ、三角コーナーにあった吸い殻は鑑識の結果田代の物と分かる
    笹山は卵を割るのに失敗し殻まで入ってしまう
    ローストチキンを焼いたのは田代であり、最初に見つけた時はまだ温かかったことから笹山の帰宅前にチキンを焼いたのは確実

    天井のシャンデリアを見るとその間に隠れるようにくす玉が設置されていた
    第4話
    1994.05.04

    殺しのファックス
    犯人は浮気に気づいた妻を別荘で絞殺し、遺体を山中に埋め、その後パソコンとFAXを使いタイマーで自動送信するようセット。

    1枚目のFAX
    【三千万用意しろ。追って指示する。】

    【2枚目のFAX
    金は千五百万ずつ二つに分けて、紙の手提げ袋に入れろ。携帯電話を用意して待機しろ。】          

    妻の命もかかっている極限の状況下、ヘビーな料理を食べていることに疑問を抱く

    脅迫状をFAXで送ってくる犯人の狙いを聞く
    「逆探知しにくい」「声で身元がバレない」と返事有り、犯人は「作家をよく知っている人」、「身近な人物」と推理する
    「アリバイ作り」を理由の一つに挙げなかった

    3枚目のFAX
    【金と携帯電話を持って、九時半までに次の場所へ。】

    わざと電話ボックスに入り遅刻する

    4枚目のFAX
    【三分遅れだ。時間にルーズな奴は俺は信じない。今度遅れたら人質の命はない。】 
             
    犯人は3分遅れに大分怒っているようだ。本部にも緊張が走る。

    5枚目のFAX
    【五分後に向かいのレストラン、ママズ・ショップへ行け。】

    道路を突っ切って渡ろうとするが道路は工事中、またしても遅れる

    6枚目のFAX
    【六十分後に芝公園へ行け。】

    歩道橋に警官を配置した方がいいと進言し今泉を指名する

    古畑は今泉と車内で待機
     ※協立ビル横の歩道橋が映る、プリンスホテルと東京タワーと歩道橋・・・見慣れた景色

    7枚目のFAX
    【歩道橋の上にいる黒いコートの男は刑事だ。人をなめるのもいい加減にしろ。交渉決裂。人質は二度と戻らないだろう。】
         
    犯人の対応に「もう亡くなったかのような言い方ですね。」と返す

    8枚目のFAX
    【あなた、助けて。】

    「いたずら」だと全く気にしない犯人、古畑がロビーから送たFAXだった
    FAXの疑問点について

    3枚目のFAX
    脅迫文の「場所へ。」で終わっているのは次の行の頭に句読点が入ってしまうのを嫌っており、犯人はかなり文章にこだわ文筆業である可能性が高い

    送信完了の音が鳴る前に受け渡し場所へ向かってしまう。その後に何かがあるかもしれないため待つ筈

    4枚目のFAX
    遅刻して1分後に送られてきたFAX、たった1分で「遅刻したのを確認し」~「FAXで送信する」のは不可能に近い

    6枚目のFAX
    道路工事という計算外の事態によって、本当に遅刻したが、既にセットしてある文章を変えることはできない。そのため遅刻に触れないという不可解な状況を作り出している。

    7枚目のFAX
    今泉は歩道橋の上に立っていたが、全身白のタキシードを着ていた、犯人が目撃した内容が異なっている。

    8枚目のFAX
    自分が送ったFAXではないので、自信をもって「イタズラ」だと言ってしまう。これでで全て明らかになる。
    第5話
    1996.05.11

    汚れた王将
    タイトル戦の第1日は米沢の「封じ手」で終わる。だが、用紙に次の指し手を書き込まず、白紙のままで封じる。封じ手の不正に気付かれ、将棋盤の近くで撲殺する

    「封じ手」に隠されたトリック
    爪楊枝で封筒の上から封じ手を記述する
    「飛車」に秘められたナゾ
    飛車なりで勝利する所だったが、血糊が付いており裏返せず、犯行を認めたことになる
    亡くなった立会人が大事な将棋の駒は金庫に、封じ手の記録用紙はテーブルの上に置いたまま死んでいるのを怪しむ
    封じ手の紙に古畑のサインが残っていて封筒の上から書いたことが分かる
    飛車がなる時に駒の裏に血が付いているのに気づき、龍になり切れないのを気づかれる
    第6話
    1996.05.11

    ピアノ・レッスン
    腕時計は日付が変わった15日の0時10分頃で止まっており、さらに秒針がチラチラ揺れていた。

    リハーサル室で小腹が空いたため魚肉ソーセージを袋を剥きシールを地面に捨て食べ始める。

    「追悼のレクイエム」を弾く曲が「追悼のレクイエム」でない。
    「D」の弦が切れていたのでレクイエムではなくD弦を使わない曲を演奏したと。

    ステージ上にあったピアノはリハーサル室に置いてあったピアノ。魚肉ソーセージのシールがついていた。




    腕時計の表面には傷一つない。物理的ではなく電子回路的に壊れていた。

    衣装は昨日クリーニングから帰って来たばかり。軽すぎたスーツケース。

    ピアノの弦が切れているのを知るチャンスは一度もない。弦が切れていたのを知ったのは殺害した時に弦が切れているのを目撃したから。
    第7話

    殺人リハーサル
    セットの地面の土を払うと出てきたのは1枚のポラロイド写真。現在月の書割りは天井に上がっている。これでは撮影しても月は映らないはず。

    誰も月を上げていなかった。

    死ぬ前に「あ、悪い」と口走ったこと。これはスタッフ全員が聞いている。右に動くよう言われていたにもかかわらず動かなかったため謝った様に見える。「右に動く」よう言えるのは犯人しかいない。
    殺意の証明
    何故月が上がっていたか?
    ただの古い月ではなく、思い入れのある大事な月であった。
    返り血で汚すのが嫌だったため天井に上げたのだ。
    つまり刀が本物であり殺す気だった。
    第8話
    1994.06.01

    殺人特急
    浮気中の女性との関係を証拠写真まで撮られた外科医。

    何食わぬ顔をして古畑の捜査に協力する犯人。

    古畑は弁当箱の紐の結び方で外科医だと気づく。

    座席にミカンの皮が落ちていた。

    死んだ男のポケットには入れ物だけが残り、中身はまだどこかに有ると睨む。犯人は慌ててポケットから中身をごみ箱に捨てる。後でごみ箱の中中から発見される。

    後ろの座席に暴力団員が居たことは古畑に気づかれていた。

    最後に古畑は、ある実験を試みる。犯人には気づかれない様に後ろ向きに座ってもらい雑談をし、座席を後ろに倒してもらおうとする。暴力団員が怖くて後ろに倒せない。

    後ろには老婆が座っており、犯人が事前にこの座席の状況を知っていたと見破られる。
    犯人の目星

    医者なのに名乗り出なかった。

    名乗り出なかった医者を怪しいと睨む

    携えているコートは身長に合わない。みかんを買うのにクレジットカードを使う人が小銭をポケットにジャラジャラと貯めている。他人のコートを持っていると睨む。

    みかんをむくと匂いが残ると言って、犯人の指の匂いを嗅ぐ。みかんの匂いが残っていた。
    第9話

    殺人公開放送
    超能力者が事前に事件を細工すところを見られ目撃者を殺害する。

    TV番組で追い込まれ、超能力で犯人の服装等を言い当てる。
     歳は20代後半でパンチパーマ
     首に金のネックレス
     緑のシャツに黒のパンツ

    ほぼ一致するが、シャツの色は緑ではなく青のシャツであった。

    犯人と被害者は揉み合っており、素手の被害者の指紋が犯人のジャケットに付着している可能性が極めて高い。鑑識に回せば何よりの証拠となる。と言われ観念する。
    犯人の証拠

    事件当時、犯人は黄色いサングラスをかけていたから、青と黄色を混ぜると緑色となり、サングラス越に直接死体を見ていたことになる。

    犯人と揉み合った時にボタンが1つ取れている。
    第10話

    矛盾だらけの死体
    犯人は一人目を殺害し睡眠薬を飲ませ、二人目を殴り倒して事後工作を施した後、BARに出向く。一人目からの電話があり二人目を殺して今から自殺すると周りに話す。

    古畑が部屋の電話で病院に連絡する、が電話が上手くつながらない。

    頭を殴られ倒れていた体の下に睡眠薬があった。2人目が倒れる前に睡眠薬を取り出していたことになる。

    一人目の検死報告は「舌下部に睡眠剤が二錠残留」という文言。飲み込むか吐き出すかの筈、一人目は「殺人」と断定する。

    今までの矛盾から導き出されるのはあの時三人目の犯人がいることになる。

    病院から注射器を盗み、空気を入れて生きている二人目を殺そうとし、古畑に見つかってしまう。
    矛盾点

    死体の下から睡眠薬が出てきたのは、事件の順番が食い違ってくる。

    死ぬ間際に使った電話をリダイアルすると、ピザ屋に繋がったことで、一人目が自殺の前に電話したことと食い違ってくる。
    第11話
    1994.06.22

    さよなら、DJ
    人気歌手の中浦たか子(桃井かおり)が、付き人のエリ子(八木小織)を殺した。
    たか子は、担当する深夜番組の生放送中に合間を見つけてスタジオを抜け出し、ラジオ局の駐車場で待っていたエリ子をスパナで殴りつけた。何食わぬ顔してスタジオに戻り、放送を続けるたか子。
    エリ子の死体が発見される。捜査に乗り出す古畑。たか子は、エリ子が自分の身代わりに殺されたように装う。
    だが、古畑は現場に落ちていたタバコの吸殻を見て考え込む。たか子がスタジオを抜けたのは、わずか3分だけ。今泉がどんなに走ってみても、現場の往復に7分はかかる。果たして古畑はたか子の犯罪をどう見破るか・・・
    3分間のトリックは、掃除のおばさんが短時間に出入りするのを見て、抜け道が有ることに気づく。
    スタジオから抜け出した時にテレビで放送していたニュース番組の内容を盗み聞きする、知りえないニュース内容を口にしたことでアリバイが崩れる
    第11話
    1994.06.29

    最後のあいさつ

    今回の張り込みの真の目的は、2年半前に孫娘を殺害した生原治への復讐。

    古畑は、ヘビースモーカーの小暮にしては灰皿に捨てられていた吸殻が少ない事に気づき、彼が事件に関わっていると推測する。

    張り込みに向かう途中で古畑から田舎から送られてきたリンゴを貰っており、わざわざホテルまで持ち込んで窓辺に置いていた。

    そしてバイヤーがバーに来る時間に合わせてホテルを抜け出し、帰宅中の生原を射殺した。

    だが踏み込んだ際にカウンターにいた男性をバイヤーと勘違いしており、バイヤーが確保されると男性に「悪かったな」と謝っていた。

    窓辺に置かれていたリンゴを食べた今泉が「腐ってる」と言い出す、今泉に指示してそれを科捜研へ回させた。

    古畑が「会ってほしい人がいるんです」と言ってやって来る。古畑は彼を「弟の金四郎です」と紹介し、金四郎は小暮と握手をするとそのまま部屋を出ていった。

    実は彼は古畑の弟の金四郎ではなく、今夜18時15分に例のバーにアタッシュケースを持って入ったバイヤーその人だったのである。

    男の正体がバイヤーだと知ると、小暮は「君がさっき弟だと紹介するから…」と反論する。
     リンゴは腐っておらず、表面に付いていたヌルヌルしたものの正体が消火器の泡だった事が判明する。
    井戸を問い詰めて今夜管理人室でボヤがあった事を突き止めた。

    なお、ボヤがあったのは丁度18時頃。
    その時に小暮は生原を殺しに出かけていたので、古畑はこの話を元に事件当時の小暮のアリバイは嘘だと確信した。

    だが古畑は小暮が「こちらは?」と尋ねるまであえて黙り、その後で弟だと紹介していた。本当にバイヤーがバーに入るところを見ていたのであれば、尋ねるまでもなく彼がそうであると気づけたはずだった。
  • クラブ活動報告(2015)

    1.概要

     活動報告として登録し紹介する
       登録内容:トピック(2015.06.01〜2016.01.20) 15回開催
              IPAが公開するセキュリティーテーマを記載する
            活動報告(2015.06.04〜2016.03.31) 38回開催
              クラブの活動内容を記載する

    2.2015年度 事業報告

    事業報告

    3.活動報告(抜粋)

    第一回2015年6月4日 新体制 発表
       4つのカテゴリーに区分けする
    第二回2015年6月11日 全体説明を行う
       3つのカテゴリーで活動する
    第五回2015年7月9日 新加入者が2名
       各自の課題も具体的になり活発化する
    第十二回2015年8月27日 20名規模になり、モバイルルータでは無理
     課題解決を皆で集まって対応する様になる
       自宅での対応が少なくなる
       Webでの共同作業より、実会話を好む
    第十七回2015年10月8日 後期のスタート
       前期を反省し、後期の課題を洗い出す
    第二十四回2015年12月3日 Ubuntu環境でPythonに挑戦する
       自己学習だけでは無理、早々に諦める
    第二十九回2016年1月21日 朝刊太郎をインストールして使用開始
       情報誌作成がスタート
    第三十八回2016年3月31日 2016年度の最終回
       第30回より学習記録システムを反映
       管理番号を付与して管理する
       浸透する間もなく、時間切れとなる

    4.反省・対応策

     クラブ活動が始まった時点では
       事前に当日の課題を各自が発表し
       似通って関連が深いテーマでグルーピングし、始めていた

       終了間際に各自が当日の成果等を発表し
       筆者が全部聞き取り、データ登録を行っていた

     徐々に活動自体が慣れてきたところで
       事前の課題出しで、”周りに合わせる”との発言が増え始め
         個人での課題が見つけにくくなる
       グルーピングも気の合う仲間同士になることが多くなる

       終了間際に聞き取りを行なっても、発言内容が乏しくなる
         必然的に、「活動報告」も内容が乏しくなる

     改善策として、時間帯の前半に集中講義を実施してみた
       興味の湧きそうなテーマを選び、講義形式に切り替える

       少し続けたが、余り変化は見られず
         講義中は集中するが、自由学習になると談話が多くなる

       気分転換に時間帯の真ん中で「お茶の時間」を設ける
         却って逆効果となり、年度末には活動記録は覚束なくなる

       年明けから「学習記録」システムを用意する
         各自の状況報告と兼用で、学習の進捗等を把握する
         管理するつもりではなかったが、嫌われたようで浸透せず

         次年度からは新たな体制・方針で活動する

  • 活動報告(第38回)

    活動報告(課題報告)

    (1)操作グループ
      ・写真の整理
        整理作業を続ける

      ・写真の整理
        整理作業を続ける

      ・CDから取り込み
        コピーの練習をする

    (2)Officeグループ
      ・Wordの利用
      ・Excelの利用
        画像の取り込み・編集


    (3)開発グループ
      ・XAMPPの使い方
        DBの文字コードについて調査する


      クラブ員の方は”活動報告”の不明なところは「質問箱」に上げてください

  • 活動報告(第29回)

    活動報告(課題報告)

    (1)操作グループ
      ・写真の取り込み     整理作業を続ける
      ・写真の取り込み     整理作業を続ける
      ・【Cortana】の使用     使用するにはマイクが必要
      ・Googleメールを使いたい 前回の「管理番号55」の続きです
      ・環境依存文字の出力    年賀状ソフトで環境依存文字が表示されない
      ・メールの文章が文字化けする   エンコーディングして解決
      ・絵葉書やCDラベルの作成 Office系ソフトを使わずに作成する
      ・朝刊太郎を使用する     写真をトリミングして取り込む
      ・朝刊太郎を使用する     Wordから文章を取り込んで記事にする
      ・朝刊太郎を使用する    情報誌作成のためソフトをインストールする
    (2)Officeグループ
      ・Excelの利用     名簿を作成する
    (3)開発グループ
      ・SEO対策を施す     検索用のキーワードと説明を設定する
      ・クラブのHPについて   会員専用サイトの説明を中止する
      ・jQueryを使用する     スライドショーを組み込む

      クラブ員の方は”活動報告”の不明なところは「質問箱」に上げてください

  • 活動報告(第24回)

      事務局より
        ・クラブのHPリニューアルについて
          オープンは12月17日(木)となります
          会員証(IDとパスワード記載)を手交する

      次週は12時から「会議」です

    活動報告(課題報告)
      (1)操作グループ
        ・写真の取り込み
          整理作業を続ける

        ・【Paint.Net】の使用
          写真の加工を練習する

        ・メーラの使用
          Thunderbirdのインストール
            アカウント取得し、送受信を行う

          ログインできない
            パスワードの間違いだと思われるが、先に進まない
            秘密の質問にも答えられず、先に進めない
            諦めることにする

          写真を添付する
            送受信を繰り返す

          アドレス帳の移動
            次回の課題とする

      (2)Officeグループ
        ・Wordの利用
          自習

        ・Excelの利用
          自習

      (3)開発グループ
        ・Pythonの使用を開始する
          Ubuntuで動作確認したいので環境を準備する
            インストールまで終了、その後は手探り状態
          目的がUbuntu環境でPhythonを動かす、なので
            ネット上に情報が少ない、情報を集めきれない
            私はここで諦め、PHPを勧めて調査を打ち切る

        ・HPの仕様変更
          電話番号の表示を止めて、メールアドレスを表示する
            今後の煩わしさを考えての対応


      クラブ員の方は”活動報告”の不明なところは「質問箱」に上げてください

  • ばらまき型メール

    ウイルス感染を目的とした、標的型攻撃メールについて

    バラ撒き型メール

    1.メールの特徴

     特定の組織や人にしか送らないメールです
       ・受信者が不審をいだかないように工夫されている
         本物のメールと勘違いしてしまう様に仕掛けられています
       ・添付ファイルの開封、リンク先へのアクセスする様に仕掛けられている
         遠隔操作ウイルスに感染し
           新たなウイルスの感染、システム内へのウイルス拡散
           情報収集、機密情報の漏洩、システムの破壊 等
       ・セキュリティソフトのチエックが間に合わない
         普通のメールと区別が付かない様に仕掛けられている

    2.注意点

     標的型攻撃メールの特徴
       ・メールのテーマ
         知らない人からのメール
         関係ない公的機関からのお知らせメール
         心当たりのない、決裁や配送通知 (英文)メール
       ・差出人のメールアドレス
         フリーメールアドレスからのメール
         署名アドレスと異なるアドレスを使っているメール
       ・メールの本文
         日本語の言い回しが不自然なメール
         繁体字、簡体字が使われているメール
         署名の内容が誤っているメール
         IDとパスワードの入力を要求するメール
       ・添付ファイル(絶対クリックしては駄目)
         実行形式ファイル(exe)が添付されたメール
         ショートカットファイル(lnk)が添付されたメール

    内容見本

    3.対応策

     ウイルス感染への対策
       ・不用意に添付ファイルを開かない
       ・不用意にリンクをクリックしない
       ・マクロが自動で有効になるような設定は行わない
         マクロを有効にするための「コンテンツの有効化」は絶対クリックしない
       ・送信者に対して送信有無を確認しない

    4.添付ファイルの開封

     開封した場合
       ・当該端末をネットワークから切り離す
       ・セキュリティソフトでウイルススキャンを実施する
       ・通信ログを確認(監視)する
       ・安全のため
    に当該端末を初期化する

  • ともだちリクエスト

    1.ともだちリクエストのメールが届く

    リクエストメール

     友人からの友達リクエストと思しきメールが届いたので承認すると
       自分の名義で同様の友達リクエストのメールがばらまかれる

    2.具体的な流れ

     下記の図を参照
       届いた友達リクエストを承認する際に、“サービス連携”を許可する
         連絡先情報へのアクセスを許可したことになり

       アドレス帳にある連絡先の全員にリクエストのメールが送られる

       メールの受信者はあなたからのリクエストメールだと思い
         リクエストを承認することになる

    具体的な流れ

    3.対応策

     ・招待メール本文中のリンク箇所を不用意にクリックしない
       友人からのメールであってもクリックず、送ったかどうかを友人に確認する
     ・不用意にサービス連携の許可をしない
       サービス連携を許可しなければ、何も問題は発生しない
       サービス内容が理解できない場合には許可しない方が賢明

     ・登録した覚えのない宛先にも招待メールが届く場合がある
       便利な機能としての、アドレス帳の自動更新を使っていると
        一度メールを送信すると、宛先アドレスが自動でアドレス帳に登録される
        自分では登録した覚えのないアドレス宛てに招待メールが送信される
     ・招待メールの内容がブログに投稿される場合がある
       受信メールの内容をブログに自動的に投稿する機能を使っていると
       招待メールが自動的にそのままの内容で投稿される

  • デフォルトドキュメント

    1.デフォルトドキュメントとは

     ディレクトリに対して要求を行った場合に返されるドキュメント
       http://www.example.com/ と特定のページを指定しなかった場合
         http://www.example.com/index.html と表示されたとすれば
         表示された【index.html】がデフォルトドキュメント

    2.デフォルトドキュメントの指定方法

     デフォルトドキュメントの指定方法
       【.htaccess】の
    【DirectoryIndex】を使用して定義する

    <Directory>
        DirectoryIndex index.html index.htm index.php
    </Directory>

     注意点
       2行目にアクセスできるファイルを指定する
         優先順位は左側が高く、右に向かって低くなる
         左側のファイルが存在しなければ、順次右側のファイルに移っていく

         どれも存在しなければ、エラー表示( 403 Forbidden)される

       使う目的
         拡張子を意識せずにページを作成したい場合に便利
          拡張子をどれにするか迷うことが無くなる

    3.デフォルトドキュメントの指定を外す方法

     デフォルトドキュメントの指定方法
       【.htaccess】の【DirectoryIndex】を使用して定義する

    <Directory>
        Options -Indexes
    </Directory>

     注意点
       2行目のIndexesの前に「マイナス記号」を挿入し
         Indexesがなくなり一覧表示がされなくなる

       もしファイル内容を公開し広くダウンロードさせたい場合には
         「プラス記号」を挿入しファイル一覧を表示するのが便利

    4.重要事項

     【DirectoryIndex】で「Options Indexes」のままだと
       存在しないディレクトリにWebブラウザでアクセスすると
       Apacheの設定によってはそのディレクトリのファイル一覧を表示する

       表示されると、セキュリティー上非常に危険な状態となる
         他人にファイル構造やファイル属性が丸わかりとなり
         簡単に情報が盗まれる恐れが発生する

     必ず、デフォルトドキュメントは指定しておき
       ドキュメント(Webページ)を作成し忘れても大丈夫な様にしておく

    5.注意事項

     【DirectoryIndex】の指定箇所に注意が必要
       このパラメータはディレクトリ単位で指定できるので
       複数箇所に存在する可能性がある

       全て検索して洗い出し、指定し忘れを防ぐ

  • 特権ID

    1.ユーザーID(IDentification)

     ユーザーを識別するための名前
       コンピュータシステムやネットワークを利用するときには、
       誰かを特定するために、ユーザーIDとパスワードの入力を求められる

     ユーザーIDには2種類の使用者を設定することができる
       管理者権限を持つユーザ・・・特権IDを付与して他のユーザと区別する
       一般ユーザ・・・ユーザIDを付与して、ユーザ同士を区別する

       双方とも使用する際にはパスワードの入力を必須にすることが多い

    2.特権IDの重要性

     一般にシステム管理者が使う、高レベルの権限を持ったシステムID
       Windowsでは【administrator】
       UNIXやLinuxでは【root】

     システムに対する重要な操作が可能なIDです
       サーバの起動や停止
       アプリケーションのインストール
       システム設定の変更
       全データへのアクセス 等々

     オールマイティーな権限は非常に便利だが、弊害もある
       何でもできるということは、ちょっとしたミスで重大事故を引起こしかねない
       特権IDが悪意のある者に使わるようなことがあれば、被害は甚大になる
         情報漏洩から始まり、破壊や機能停止まで、あらゆる危険に晒される

    3.特権IDの利用状況

     こういった形で使われている
       複数の管理者で共有利用
       ローカルな特権IDの管理状況は不明
       長期間、同じパスワードを利用
       複数のデバイスで同じパスワードを利用
       利用状況が不明確

     懸念事項(特権IDの管理が適切に行われていない場合)
       攻撃を受けやすく
       インシデント発生時の追跡が困難

    4.管理方法

     ・アクセス管理
       特権IDで直接サーバにログインしているケース
         ログインする際は少ない権限の一般ユーザIDでログインし
         必要に応じて特権IDを利用する

         Linux/UNIX
           一般ユーザでログイン後、【su】コマンドや【sudo】コマンドで

           一時的に特権を利用する
         Windows
           【runas】コマンドで一時的に特権を利用する


     ・利用者識別(本人確認と認証の強化)
       脆弱なパスワードや長期間同一パスワードを利用している場合
         パスワードが推測され、なりすましの危険性がある
       複数のユーザでパスワードを共有している場合
         誰が特権IDを利用しているか不明になる恐れがある
         セキュリティ事故が発生した時に特権IDの利用者を識別できないため
           調査や原因の特定が遅れ被害を拡大させることになる

       対応策
         ユーザごとに一意のIDを割り当て、複雑なパスワードを利用する
         パスワードは定期的に変更する
         ワンタイムパスワードなどの2要素認証を利用する


     ・トレーサビリティ
       事故が発生した場合、調査や原因の特定をおこなうためには証跡が必要
         証跡の内容に必要な項目
           特権ID利用者
           特権ID利用日時
           特権IDを利用したサーバ
           利用した特権ID

     ・その他の管理項目
       ・パスワード ポリシーの強制
         パスワードポリシーを自動的に適用する
       ・デフォルトで設定されているIDやパスワードの変更
         サーバ、データベース、アプリケーション、ネットワーク機器など
         既知のIDは攻撃者のターゲットとなりやすい
       ・コーディングされているIDやパスワードの削除
         スクリプトファイル、設定ファイルなど
       ・ローカル管理者アカウントの定期的な調査
         不要なアカウントは攻撃者のターゲットになりやすい
         標的型攻撃のバックドアとしてローカル アカウントが作成される
       ・重要なサーバと利用者の環境を論理的な分離
         標的型攻撃で利用者PCがマルウェアに感染した場合
           重要なサーバへのアクセスやマルウェアの拡散を防止する

  • 活動報告(第17回)


    活動報告(課題報告)
      (1)操作グループ
        ・写真の取り込み
          取り込み操作と整理作業を繰り返す

        ・【ペイント】でのお絵かき
          実際に描画した経験者なしのため、先に進まず
            本当にペイントでお絵かきができるかどうかも含めて再確認する
          次回までに対応策を考える


        ・スマホから画像を取り込む
          当日、現場では実際には試さず、手順等の確認に止める
            家に帰ってから試行する(後日上手くいったとの報告あり)

        ・CDのラベル印刷
          プリンターに付いてくるソフトの名前が分からず
            ソフトをインストールしたかどうかも不明?
            次週、確認する

        ・HPBでの画像編集
          編集作業を繰り返す

      (2)Officeグループ
        ・WORDで図形のグループ化
          一つ一つをグループ化する方法を練習する
          次週には、ひとまとめにしてグループ化する方法を練習する

        ・WORDで文書作成
          複数の課題に対して作りこみの練習を行う

        ・【libreoffice】の【writer】を練習する

          オープンオフィス系のソフトに挑戦する
            Wordとのギャップを確認する

      (3)開発グループ
        ・所属クラブのHP作成
          お休み

        ・PHPでの開発
          「会員ブログ」の更新通知
            お休み

        ・サービスアプリの開発
          「質問箱」と「会員ブログ」の更新通知機能が完成する
            新規に投稿されると
              ・個人の掲示板に通知メッセージが表示されます
              ・定刻までに既読にならなければメールが届く
          10日より稼働します

        ・写真のアルバム作成
          先が見えず

      (4)Windows10について
          特に話題に上がらず
          ヒアリングせず


      前期の整理
        ・グループでの活動
          全体を大よそ3グループ程度に分けて活動する
            事前に各自の課題をヒアリングして、やるべきことを把握する
            フリーな人間が各グループをサポートする

        ・クラブ専用のサイトを構築する
          情報交換の場を提供する

      後期の課題
        ・新規参画者への対応
          随時入会されてくるので、受け入れ体制を用意する


        ・課題の分類わけ対応
          時間差を置いて同じ課題が浮かび上がることが多いので
            各グループ内での解決を考える

      クラブ員の方は”活動報告”の不明なところは「質問箱」に上げてください

  • 第2回 東京証券取引所 証券売買システムのバグ

    裁判にまで至った、みずほ証券と東京証券取引所の裁判

    1.経緯

     2005年12月8日 9時27分
       証券会社から新規上場銘柄に「1円61万株」の売り注文が入った
         実は「61万円1株」のつもりであったが、誤入力してしまった
         警告メッセージが出たが、担当者は無視して先に進める


       証券取引所は注文を受け入れた

     2005年12月8日 9時28分30秒
       担当者は気付いて「売り注文」の取消処理を行った
         3回ともエラーとなり取り消せず
       証券取引所と直結システムで「売り注文」の取消を行う
         これもエラーとなり取り消せず
       急いで、反対売買によって買い戻すことを決定し、買い注文を出し続ける


       10分間で61万株全てが約定する

     2005年12月8日 10時20分
       慌てて売る人、間違いだと気付いて買う人と乱高下を繰り返す
         ストップ高で取引停止となる
       1時間余りの間に、9万7千株余りの売買が成立する

    時系列

    2.問題点の整理

     証券会社
       警告メッセージを出しているにも関わらず、安易に先に進めてしまった
         発行株数(約1万5千株)に対して異常な売り注文を許可した


     証券取引所
       取消注文が受け付けられなかったこと
         ※後日、原因は過去の修正ミスによるバグと判明
       即座に売買の停止が出来なかったこと

    3.裁判の経緯

     2006年10月27日
       証券会社が証券取引所に415億円の損害賠償を求める


     2007年~2008年
       証券側
         取消し注文が処理されなかったのは「債務不履行」である
         誤発注にも関わらず、取引のマッチングを止めなかったのは

           「付合せ中止義務違反」である
         売買を停止出来なかったのは「売買停止義務違反」である


       東証側
         取引所の義務は、取引参加者を参加できるようにすることである
         個別の注文を処理する契約上の義務はない


     2009年12月4日
       東京地裁は107億円の賠償額を証券取引所
    に認定した
         証券取引所が誤発注を認識しても、

           売買システムを停止できなかった点を重過失とした
            ※システムが原因ではなく、人間系の業務不備と判断した模様
         証券取引所のシステムの不具合は重過失では無いとした

       2週間後に双方とも控訴する

     2012年2月
       ソースコードを開示して、バグを巡る争いになる


       遡る2000年2月に運用テストで発見された不具合を証券取引所は修正した
         その際に3箇所のソースコードを修正したが
           内の1箇所に「注文の取消」が出来なくなるような修正を施す


       ソフトのバグは「重過失」となるか
         ・バグの作り込みは「過失」かどうか
           著しい注意義務違反として損害賠償の対象になるか?
             ※殆ど故意とみなされる様な行為は賠償対象となる
         ・(過失になるとして)開発者がどこまで賠償責任を負うのか?
           企業対企業の契約だと、

             免責事項等が用意されており、ある程度賠償責任を免れる
             だが、今回のような社会性のあるシステムだと

               「過失」の範囲を広げるかもしれない
                  ※影響力が大きいと判断すればの話
         ・テストで発見できたかどうか
           証券取引所は、テストでバグを出さないようにするのは無理と主張
           証券会社は修正点のテストもしくは回帰テストをすれば

             発見できたはずと主張

         ※前方での修正の結果、項目値が初期化され分岐条件に合致しなくなった
         ※後になってみれば、何故テストしなかったのかと悔やまれる様な場所
         ※別の要件で修正した際に、全ロジックの回帰テストをするとも思わない

    証券会社 証券取引所
     バグは重過失に当たるか? 自動車事故の場合でも、運転手の過失と判断されることは有り得るバグは一定の確率で発生し、開発者の過失を問うことは出来ない
     テストでバグを見つけ出すことはできたか?ソースコードを見る限り、モジュールテストで発見されるバグである回帰テストを行っても、バグをゼロにすることは出来ない
     ソースコードの変更は設計書に反映すべきか?ソースコードの変更が設計書に反映されないことは有り得ない全ての修正を設計書に反映させることは無い
     開発手法の違いモジュール詳細定義書の修正を不要だとする開発は認められない 一旦、開発が完了したらドキュメントは修正せず、ソースコードを主体に切り替える

    4.裁判での争点

     裁判の争点
       ソフトウエアのバグを「重過失」と認定することは可能か、が焦点となる
       ソフトウエア工学上の論争を戦わせる異例の展開を整理する

    みずほ証券 東京証券取引所 
    2012年 2月 バグの原因となったプログラムのソースコードの開示を東証に勧告
     簡単なテストを行えばバグは必ず発見できていた、と主張
     「回帰テスト」を実施していれば、バグは容易に発見できたはず 修正プログラムのテストについての資料は「既に存在しない」として開示していない
    システム提供者に、バグをゼロにする義務はない、とバグ管理には問題がないと主張
     総合テストおよびリハーサルにおける障害件数の収束状況を基礎に稼働開始を決定した
     システムの開発手法が適切ではなかった、として東証の責任を求める
    ソースコードを修正する際に、「モジュール詳細定義」を修正していなかった
    ソフトウエア工学が長年にわたって培ってきた知見をすべて無視することになる
    一旦コーディングが済めば、その後の修正は、全てソースコードを中心に行うことが最も効率的であるから、問題はない、と反論
    ソースコードの著しい重複が見られる、エラーの潜在する率が極めて高い、品質が極めて低い 記述の重複を含むプログラムは、含まないプログラムと比較して信頼性が高いことが定量的な研究で裏付けられている、と反論
    バグ部分
    バグ部分

    5.判決の内容

     2013年7月24日
       東京高等裁判所は1審を指示する
         ・誤発注が判明した後も東証が売買を停止しなかったことについて
           第一審と同じく東証の重過失を認定した
           過失の割合も東証が7割、みずほ証券が3割と変わらず、

             賠償金額に変更はない
         ・みずほ証券の売買システムのバグや債務不履行の考え方などについて
           第一審とは異なる判断が下された

       前提条件
         東証が取引先の証券会社に負っている債務は
           個別の注文に対して取消処理を行う義務はないものの
           「適切に取消処理ができる市場システムを提供する義務」はあった
             バグを提供していた点で「債務履行は不完全だった」とした
         システムを開発した富士通と、開発を委託した東証との関係については
           「富士通は東証の債務履行補助者だった」と認定した
           富士通に重過失があれば、信義則上、東証の重過失と同一視できる

       高裁の判断
         本件のバグが重過失に当たるかを検討した
           富士通によるバグの発見などが容易だったとすれば、

           東証が重過失を犯したことになる

         専門家の意見書が「相反する」ものであり
           いずれかの主張を一方的に採用することを避けた


         今回のバグが複数の条件の組み合わせで発生することから
           本件バグの発見等が容易であることを認定することは困難


         契約の免責条項について
           東証側に故意、重過失がない限り、

             東証は取引所の利用に伴う損失の責任を負わない
           東証に重過失があったかを立証する責任はみずほ証側にあるとした


         バグの発見などが容易だったと認定するのが難しい以上
           後知恵の弊に陥ることがないようにするが肝要、とした
           東証を重過失と認めることはできず、

             契約の免責条項はそのまま適用されるとした

         バグを含むシステムを提供した東証の債務履行は不完全だったものの
           免責規定により賠償義務は負わない、というのが裁判所の結論


       その後、双方とも控訴する

     2015年9月3日
       最高裁判所が上告を棄却する
         東京証券取引所の107億円の賠償額が決定する

  • 活動報告(第12回)

    前回と同じく、書面で課題を提出していただきスタートする

    無線LANルーターのWi-Fi接続台数が満杯になる
      本日は20名余の参加があり、ネットに接続できない人が発生した
        実際は繋がったり切れたりの繰り返しで、接続できない訳ではない
        今後とも、毎回繰り返されるのは必至

      以前より、通信量の問題も発生している
        月の半ばには1ヶ月分の制限量を軽く超している
          越してしまうと、通信スピードが遅くなる

    解決が必要なのは接続台数ではなく1ヶ月間の通信量

    活動報告(課題報告)
      (1)操作グループ
        ・夏休みの宿題
          お孫さん(小学4年生)の「夏休み新聞」の編集作業に携わる
          時間内に完成させて後は自宅で印刷のみとなる

          小学生ながらちゃん時間内に完成させたのは立派

        ・不必要な販促メッセージへの対応
          ソフトの導入を勧めてくるメッセージに対する諾否の判断を行う
            周りからの助言を得て、否とする

        ・写真の取り込み
          思った通りに写真を取り込めない
            手順を見直すことによって解決する
            残りは自宅にて今後順番に対応する

        ・写真にコメントをつけたり音楽を埋め込む
          【MovieMaker】を使って練習する

        ・音楽の取り込み
          DVDに焼き付けるが音が出ない、時間切れとなる
            次週にまわす

        ・電子メールの本文
          外部ファイルとして書き出し、保存する方法を練習する

        ・当クラブサイトへのアクセス
          基本認証を掛けてあるので、IDとパスワードの入力が必要
            入力を促すメッセージが英語のため判別不能になる
              頻繁には発生しないので記憶に残りにくいメッセージではある
                ※クッキーをクリアしない限り発生しないメッセージ
          簡単に解決する

      (2)Officeグループ
        ・Wordの操作
          初めての方にキーボード操作から入力操作までを説明する

      (3)HPグループ
        ・無料レンタルサーバーの使用
          本日はお休み

        ・写真のアルバム作成
          デモの予定であったが
            ローカルファイルの操作の度に、MSソフトから許可を求められる
              コントロールが切り替わる度にメッセージを確認して承認する
            承認作業が煩雑、一気通貫に行う様に修正する

          デバッグに手間取る、次週に持ち越す

      (4)Windows10について
        ・今週、新たに1名がインストールしたと思われる
          特に不都合なことは発生していない、と思われる



      クラブ員の方は”活動報告”の不明なところは「質問箱」に上げてください

  • 日常におけるセキュリティー対策

    セキュリティ対策は日常的に行うことの重要性を解説する

    1.修正プログラムを必ず適用する

     対象プログラムに修正を施し、最新のバージョンに更新しておく
       利用するPCやスマホ等のOS
       無線ルータ等のファームウェア
       各種ソフトウェア

    2.セキュリティソフトの導入と定義ファイルの最新化

     セキュリティソフトを導入するとともに、定義ファイルを常に最新な状態にする
       最新の状態になっているか定期的に確認する

    3.定期的なバックアップを実施する

     システムの不具合やウイルスによるデータ破壊に備えて
       定期的に外部記憶媒体等へバックアップを行う
         特に重要性の高いデータは必ずバックアップを行とる

    4.パスワードを適切に設定し管理する

     可能な範囲で複雑で長い文字列を設定する
       大小英字、数字および記号を混在させる
         同じパスワードを使い回さない
         決して初期設定のままで利用しない

    5.不審なファイルやURLをクリックしない

     身の回りには開いてしまうとウイルスに感染する恐れのあるモノが溢れている
       ウイルスを組み込んだファイルを添付したメール
       ウイルスに感染させるためのURLが記載されたホームページ 等々

         内容を鵜呑みにせず、不審な点があればクリックしない
       フィッシングサイトに誘導するメールやサイトに注意する
         公式サイトに記載されている窓口に問い合わせて確認する
         事前に保存しておいた”お気に入り”のURLを使用する

    6.スマートデバイスへの不正アプリ導入を防止する

     携帯電話会社が提供している信頼できるサイトからダウンロードする
       インストール時に表示される機能一覧には必ず目を通す
       同時に機能毎の利用目的を確認する

    7.スマートフォン等の画面ロック機能を使用する

     モバイル機器を紛失してしまった際に
       誰かに不正に使用されることがないよう、画面ロック機能を必ず有効にする
         画面ロックまでの時間は数分程度の短い時間に設定する

  • あなたのコンピュータでウイルスが検出されました

    1.警告メッセージ

     突然、パソコンから音声が流れる
       「警告 あなたのコンピュータでウイルスが検出されました」、続いて
       「ウェブサイトに記載されている連絡先に電話をかけるよう」と促される

    警告メッセージ

    2.偽の警告メッセージに騙されない

     音声による警告で電話をかけるよう誘導するという手口は
       利用者の不安を煽り、その行為を促すという点で、
       画面に警告を表示させてソフトウェアの購入に誘導する手口と似ている


     音声が流れる仕組み
       実際のウイルス感染の有無に関わらず、音声メッセージが流れる
         この現象はウェブサイトでBGMを流すための仕組みと同様である
         音楽の代わりに音声メッセージを自動的に再生しているだけ


       当該サイトにアクセスすればウイルス感染の有無に関わらず
         音声メッセージが自動的に再生されているだけ
         画面に表示される連絡先に慌てて電話をかける必要は全くない



     不安になって電話すると
       先方から「遠隔サポートによるウイルス駆除を行う」として、
       遠隔操作ソフトのインストールを案内され、遠隔操作が行われる


       その後、有償ソフトウェアの購入を促される
         サポート費用の請求や遠隔操作でパソコン内のアクセス等は無い、ので

         電話をかけてしまっても有償ソフトウェアの購入を断れば済む、のだが
         遠隔操作ソフトを悪用されないとも限らないため、
           インストールした遠隔操作ソフトは早急にアンインストールする
         誘導するという手口には不審さを拭えないので
           電話をかけないことが最善かつ賢明

  • 活動報告(第5回)

    新しい方が2名ほど来られたので久しぶりに
      当クラブのホームページに皆でアクセスする

      日頃、会員といえども頻繁にはアクセスしていないことが分かった
        以前から色々と不都合が現れていたようで、一気に質問攻めにあう
          ※掲示板機能の使い方も浸透していないことが分かった
        急遽、ホームページの表示方法に手を加えてスッキリさせる

      時々は全員でHPにアクセスするのも必要だと感じた

    活動報告(課題報告)
      (1)操作グループ
        ・【Thunderbird】でメールの保存
          保存方法を練習する

        ・【Norton】の契約延長
          毎回、判読不明な文章が表示される
            セキュリティーソフトの中間更新の督促と判明、契約を継続する

        ・画像の整理(1)
          複数のSDカードからPCのHDDに取込む
            一覧表示が可能になり、取捨選択が楽になる
            今後、手順化して繰り返しながら画像を整理する

        ・画像の整理(2)
          日付単位、人物単位等区分けして整理したい
            SDカードからPCに取込むことからスタート
            アルバムの作成を目指す

        ・画像の整理(3)
          昔の写真(印画紙)をPCに取込みたい
            SCANのやり方等を検討する
            次週以降に具体化させる

        ・ラベル印刷について
          印刷用ソフトをローカルPC内で探す
            プリンター購入時にインストールしたソフトがあるはず
            次週までに、自宅で印刷まで試行してみる

      (2)Officeグループ
        ・手書き地図を作成する
          【Word】で作成する
          次に【PaintShop】で自由に描画してみる
            交差点等の表示に工夫が必要と分かる
            次週以降も継続する

        ・【Word】の機能を確認
          個別に機能を一つづつ確認する

      (3)HPグループ
        ・ホームページを作成したい(1)
          【Word】で原型を作成し、HTMLに出力する
            ブラウザーで動きを確認する
            Linkのとび先を自由に設定し確認する

          もう少し自由にサイトを作り上げたい
            無料レンタルサーバーを説明する
              自宅でアカウント取得までやってみる、次週確認する

        ・ホームページを作成したい(2)
          HPBで作成中のサイトに、投稿記事の一覧をサイドに表示させたい
            最初は、一つ記事を書いて一つLink用の見出しを作成した
            記事を一つ作成し一つLinkを追加すると、
              今後これが延々と繰り返されると気付く
            そこで、【WP】の存在を説明する
              WPをインストールして最初のログイン画面まで表示させる
              次週より、記事の作成に挑戦する

        ・特定サイトへの記事投稿を半自動化したい
          一つ一つの記事をアップロードする手間を簡略化させたい模様
            動的にリソース情報を取得するのは、許されるか否か不明確のため
            慎重に試行を繰り返す、ことにする

  • 第1回 スルガ銀行 次期基幹系システムの開発

    裁判にまで至った、日本IBMとスルガ銀行

    1.経緯
     開発現場の実態を時系列で整理する
       ・NEFSS/Corebank・・・次世代金融サービス・システム
         Corebank・・・フィデリティ・インフォメーション・サービス(FIS)の

         勘定系パッケージソフト
           顧客単位で複数の口座を管理する
           金融商品を組み合わせて素早く開発できる
       ・BRD・・・BusinessRequirementDefinition(要件定義)

    日本IBMスルガ銀行 その他の情報
    2000年9月 次期システムのあるべき姿を共同でまとめるスルガ銀行からIBMに対し、次期基幹系システムの提案を依頼する
    2003年7月RFPを提示する
    日本IBM、富士通、日本ユニシス
    2004年9月要件定義を開始する日本IBM案を採用する
    NEFSSの導入決定
    95億円の基本合意書を締結する

    2008年1月のサービスインに向けてプロジェクトがスタートする
    2005年2月不正会計が明るみに出る
    5月最終合意書を取り交わす予定であった
    IBMの強い要望で9月に延期する
    9月30日最終合意書を取り交わす
    開発コスト(89億7千8十万円)、稼動時期(2008年1月)
     駿河平にて
    12月制御系と基盤系の要件定義は完了
    業務系の要件定義は未完了
    BRDの実施を提案する
    BRD実施を了承する
    2006年2月1回目のBRDを開始する
    (実質は要件定義のやり直し)
    5月2回目のBRDを開始する
    (実質は要件定義の再度やり直し)
    システム化の対象範囲が変わらないことを条件に了承する
    8月スケジュール変更を提案する
    (2009年1月からの段階的稼動)
    拒否する
    9月スケジュール変更を提案する
    (2009年5月までに4段階稼動)
    拒否する
    11月スケジュール変更を提案する
    (2008年12月末までに4段階稼動)
    了承する
    12月システム化対象範囲の大幅な削減と
    追加費用44億円を要求する
    拒否する
    システム化対象範囲の削減量を減らし
    追加費用20億円を要求する
    拒否する
    2007年4月勘定系パッケージソフトの変更を提案する拒否する
    5月プロジェクトを白紙に戻すことを通知し
    開発費用の返還を要求する
    7月個別契約を債務不履行により
    解除することを通知する
    2008年3月反訴する
    約125億5千万円
    提訴する
    合計115億8千万円
    <裁判 継続><裁判 継続>
     争点1 合意書は法的契約ではない
    確定額でシステム構築の
    請負契約は結んでいない
    個別契約を結び、全て履行している
    合意書に金額と納期が明示されている
    請負契約であり、履行されていない
    争点2 開発すべき機能の確定はユーザー
    最後までユーザが決め切れなかった
    30年以上前の固執し
    パッケージに合わせた業務改革を拒否した
    現状を把握しておらず
    把握作業に非協力的であった
    争点3 追加の選択肢を提案しただけ
    一方的に契約を破棄した
    別のパッケージを提案したので
    契約を破棄する
    2012年3月29日提案・企画段階でのPM義務違反を指摘される      東京地方裁判所での裁判

    IBMが控訴する
    2013年9月26日最終合意書を交わした段階でのPM義務違反を指摘される東京高等裁判所での裁判

    両者とも控訴する
    2015年7月9日敗訴

    41億7千万円及び遅延損害金を支払う
    勝訴最高裁判所での裁判

    両者の上告を棄却する

    2.裁判所での争点

     東京地方裁判所では
       IBMに対し、約74億1千4百万円並びに遅延損害金の支払いを命じる
         IBMのPM義務違反を指摘する、
           プロジェクトの企画・提案段階での機能検証が不足
           これを見逃したとした

     東京高等裁判所は
       第一審判決を変更し、
         IBMに対し41億7千万円及び遅延損害金の支払いを命じる

         IBMのPM義務違反は
           提案・企画段階ではなく、
           要件定義を経て両社が最終合意書を交わした段階とした
             賠償額を約42億円に減額する
         2005年の段階で、
           当初の開発範囲や期間では完成できないとIBMは認識していた
           開発を継続するなら、
             開発費用、スコープ、期間のいずれかを抜本的に見直すか
             開発そのものを断念するかを決定すべきだった
           IBMがこの段階で抜本的な変更、
             又は中止を説明・提言・リスクの告知をしていない
             これがPM義務違反に当たるとした

           ITベンダーには
             ユーザーに対してPjtの抜本的な見直し、
               又は中止を提言する義務を負う
             ユーザーに対して適切にリスクを説明するのは義務とした

    3.裁判での双方の言い分

     IBM側からの言い分
       ・ITベンダーだけにPM義務を負わせるのは不当
         ユーザー企業にも十分なリスク分析能力がある場合、といった前提で
           スルガ銀行は優秀なIT部門を持ち、
             Pjt遂行に関わるリスクを分析する能力を備えていた
           Pjtが危機的局面にあるという認識は両社で共有していた

       ・PM義務等を課される条件が曖昧である
         最終合意書が締結された段階でPjtは危機的局面にはあったが
           抜本的な見直しや中止の提言が必要な段階ではなかった
           要件定義で明らかになった開発スコープの拡大は、
             IBMの費用負担で賄える範囲だった

     スルガ側からの言い分
       ・最終合意書の前に支払った費用も賠償額に認めるべき
         PM義務違反など
           IBMの不法行為が、プロジェクト失敗の原因と認めている
         Pjt失敗が原因でスルガ銀の全支払い額が損失になった以上
           不法行為とスルガ銀の全損害には、
             賠償が認められるだけの因果関係がある

       ・パッケージ適用の問題
         技術的にCorebankを邦銀に適用する事は可能とした点
           大規模なカスタマイズなどで技術的に可能であるとしたことは
           費用対効果を含めて可能であるとは限らない

     教訓
       見直し・中止の手続き整備を行う
         想定と実態に大きな乖離があることが明らかになった際
         すみやかに抜本的な見直しや中止を視野に入れた協議に入ることを
         ITベンダーとユーザー企業があらかじめ定めておく

    4.裁判で明らかになった内容

     2004年に発表になった「新経営システム」の概要
       投資額を100億円弱にとどめる
       勘定系と情報系と統合する
         顧客に合わせて融資の利率や期間を柔軟に設定する
         他行や証券・保険会社の金融商品を含む口座管理を行う
       運用保守のコストを従来の4分の1にする

      フィデリティ・インフォメーション・サービスの
        勘定系パッケージソフト【Corebank】をカスタマイズするが業務の中心

     懸念事項
       パッケージソフト導入プロジェクトの特殊性
         既に標準的なシステム機能を実装したシステムがあるために
           どう業務で使いこなしていくかという視点で進めることになる
         海外のパッケージを日本化する必要がある

       パッケージソフトの導入は実際に動かしながら進めるのが普通
         プロトタイプと呼ばれる初期設定バージョンを採用する
       パッケージ機能に精通した担当者がシステム機能を説明しながら、
         ユーザー側の業務に適合させる

     失敗の原因
       ・ベンダ側がパッケージ機能を熟知していなかった
         開発を開始するに当たり【Corebank】の機能や充足度、
         その適切な開発方法等について、
         あらかじめ十分に検証又は検討したものとはいえない、と結論付けた
           ・ユーザーの要求を理解できる業務知識と
             利用するパッケージの構造を熟知している者を
             プロジェクトに参加させることが必要であるにも関わらず、
             技術者等の要員を配置していなかった
           ・パッケージソフトはカスタマイズが必要であるにも関わらず
             IBMは【Corebank】の改変権を有していなかった
           ・カスタマイズに関して【Corebank】の権利者との間で
             十分な協議が整っていなかったことを
             IBMがスルガ銀行に説明していなかった

     対応策はどうであったか
       ・IBM側は提案するパッケージを知悉しておくべきことは必須であるが
         そうでない場合は、リスクを開示し回避手段を策定・提案すべき
       ・IBM側はパッケージの改変権を有していないことから
         自由度がかなり制限されることを発注者に開示しておくべき
       ・スルガ側は自らリスク管理を行うべきであった
         業務適合性、ソフトの改変権、ベンダーのプロジェクト参画について
         事前に評価基準を定めておき、
         それを元に評価・選択し、実現可能性を判断すべき
       ・スルガ側はリスク管理のスキルがない場合は
         第三者の外部コンサルにPMのサポートを依頼してもよかった

    5.結論

     日本IBM全面敗訴の深層
       書面として残された証拠の重要性が浮き彫りになる
       IBMは「営業秘密を保護するため」として判決書の閲覧制限を申立てる
       東京地裁が「内容は営業秘密に当たらない」として却下、全文公開に至る

       約200ページの判決書から見えてくるのは、書面の証拠としての重み
         双方の幹部によるステアリングコミッティーの議事録を証拠として引用
         一方で法廷における日本IBMの証言はほとんど採用されなかった

     東京地裁がなぜ日本IBMを「PM義務に違反した」とみなし、
       スルガ銀は「協力義務に違反していない」と判断したのか

       「Corebank」の採用に際してリスクに見合った検証をしなかった点
         ・邦銀が基幹系システムに海外製パッケージを採用した例がない
         ・日本IBMは他の業種ではパッケージベースの開発経験があるが、
            銀行システムではこの手法で開発した経験がなかった

     ITベンダーに
       パッケージの機能、開発手法、リスク等について検証または検討し、
         適切な開発方法を採用する義務があった

       「リスクの検証または検討」と「適切な開発方法の採用」を怠った
         ・要件定義の迷走
            日本IBMは当初、現行システムをリバースエンジニアリングする
            現行踏襲型のアプローチで要件定義書を作成した

            日本IBMはその後「開発手法に誤りがあった」として、
            パッケージベースのアプローチである2回目の要件定義を実施

            これも十分にパッケージベースの手法に沿っていないとし、
            FIS社員を交えたフィット&ギャップ分析を軸とする
            3度目の要件定義を実施する

         ・性能などの検証不足
           プロジェクト終盤、
           テメノス製パッケージ「TCB」を採用する代替案を提示した際、
           「CorebankをJava化したもののパフォーマンスが悪いことが判明
             「Corebankについて日本の銀行の諸制度に合致させることが
             難しかったのは事実」などと述べていた

         ・FISとの協力体制の整備不足
           改変権を持つFISとの協業が不可欠だったにもかかわらず、
           FISとの役割分担、作業量、費用などについて
           十分に検討した形跡がなかった

         ・不十分な情報開示
           日本IBMはCorebankの採用に関する上記リスクを
             スルガ銀に伝えていなかった 
           代替パッケージを提案する際にも
             完成時期や費用負担について説明できなかった

     東京地裁は議事録を基に以上の事実を認定、日本IBMがPM義務に違反していた
       「強い疑念を抱いても不自然ではない状況が作り出された」とし、
       スルガ銀がTCBの提案を受けた段階で
       プロジェクトの中止を決断したことについては、
       「何ら非難に値するものではない」と認定する

  • 「秘密の質問」の危険性

    1.秘密の質問とは

     サービス提供者があらかじめ用意している
       「あなたの母親の旧姓は?」、「あなたのペットの名前は?」等など
       「秘密の質問」の中から利用者が質問を選択し、その答えを登録する

       パスワード再発行やアカウントへのアクセスに利用される

    2.危険性

     「秘密の質問」のみで本人確認とすることにはセキュリティ上の懸念が生じる
       アカウント復旧の仕組みとして使用するにも、安全性も信頼性も十分ではない


     「秘密の質問」の注意点
       「質問」によっては、第三者でも「答え」を推測できてしまう
         「あなたの母親の旧姓は?」という「質問」の場合

           名前ランキングを調べ、姓の入力を繰り返せば
           「答え」を当ててしまう可能性がある
         「あなたのペットの名前は?」という「質問」の場合
           ペットの名前ランキングを調べ、名前の入力を繰り返せば
           「答え」を当ててしまう可能性がある

         「あなたの生年月日は?」という「質問」の場合
           本人のSNSや友人のSNSから、年月日の入力を繰り返せば
           「答え」を当ててしまう可能性がある

         「好きな食べ物は?」という、「質問」の場合
           「ピザ」の答えは、高い確率で「答え」を当ててしまう

         攻撃者はWebの様々な場所から個人情報を収集し
           答えを見つけ出し、正確に答えていく

    3.対応策

     「秘密の質問」の使用を避ける
       利用しているサービスにおいて複数の本人確認方法を提供していれば
         「秘密の質問」以外の方法に変更する、または併用を検討する


     ワンタイムパスワードによる二段階認証が可能なら、こちらに切り替える

     共通フレーズ(自分しか知らない文字列)と組み合わせて使う
       「秘密の質問」に共通フレーズを付加する
         組み合わせる文字数や文字種を増やすことで、第三者からの推測を拒む
        
     さらにサービス名の一部と組み合わせると、かなり複雑になる

    共通フレーズの使い方
  • 無線LAN

    1.利用について

     無線LANの仕組み
       無線LANルーター(親機)のネットワーク配下に複数台の機器が繋がる
         無線LANルーターの電波は直線で100m~250mまで
         無線LANルーターは部屋の外まで電波は届いている

       目の前に居る人だけでなく、表の道路を歩いている人の無線機器にも繋がる
         一度、街中を無線機器の電源を入れて歩いてみれば
           複数の見慣れない無線LANルーターが画面に表示される
         いたってオープンな環境の中でネットワークに繋がる状態になっている

    2.利用上の注意点

     家庭内での無線LAN利用について
       セキュリティー対策を確実に行わないと不正に接続される可能性がある

       不正に接続されると
         ・通信内容の盗み見
         ・迷惑メール送信や不正アクセス、違法ダウンロード等の身元詐称
         ・無線LAN環境内のPCに有るデータ窃取


     対応策
       通信の暗号化(必ずメインで対応する)
         アクセスポイント(親機)と子機とで送受信されるデータを暗号化する
         暗号化方式は「WPA2-PSK(AES)」を設定する

       MACアドレスフィルタリング(補助的に対応する)
         アクセスポイントにアクセスを許可する子機のMACアドレスを登録する
           登録した機器以外からの接続はできなくなる

       ESS-IDを隠す(補助的に対応する)
         ステルス機能を有効にしてESS-IDを隠してしまう
           無線LANの存在を容易に見つけられないようにする

       ファイル共有機能は使わない
         LAN内の全員からアクセス可能になるので、絶対に使わない
           一度、第三者のPCから自分のPCを確認する

    3.補足

     詳細な解説
       暗号化方式
         WEP(無線LAN初期の時代に用意されたもの)
           現在では短時間で解読されるので使用不可とされる
         WPA/WPA2(WEPの不備を補う、WPA2はWPAの後継方式)
         TKIP方式は比較的短時間で解読されるので使用不可とされる
         AES方式が現在では最も有効とされる

       親機の暗号化方式を確認する方法
         ・無線LANアクセスポイントの管理画面にアクセスする
           概ね、192.168.n.nで順番に探していくと早めにヒットする
         ・管理画面にIDとパスワードを入力する
           親機の管理者は推測されにくいIDとパスワードを設定する
         ・管理画面で現在の暗号化方式を確認する

  • 「ガジェット」と「ウィジェット」の違い

    1.ガジェット(Gadget)
     「道具」、「小物」という意味
       PCのデスクトップ上に置いておく便利なツールを指すことが多い
       時計やカレンダー、気象情報、地図、検索窓など

    2.ウィジェット(Widget)
     Window Gadgetの合成語
       windowと同じ接頭部の用語が選ばれる

     「道具」、「小物」という意味
       PCのデスクトップ上に置いておく便利なツールを指すことが多い
       時計やカレンダー、気象情報、地図、検索窓など

    3.結論

     双方とも同じ意味、違いは無い
     使わなくなったら削除することを勧める
       常駐してリソースを使うので、少しでも軽くした方が良い

  • 活動報告(第2回)

    木曜日は何故か雨の日が多い気がします、館内がなんだか湿っぽい
      昔に戻って、全体説明を行ってから各自の課題解決に取り組む

    課題解決に入る前に全体説明を行う
      ・当クラブのHPへの入り方を練習する
        URLを手打ちする人が居るので、解決策を幾つか検討する
      ・当ブログ(会長ブログ)の使い方を説明する
        この場で初めて見る人が多いことが分かった
      ・会員専用のサイトについて説明する
        公開、非公開の違いを具体例で示す

    活動報告(課題報告)
      (1)操作グループ
        ・スマホに存在する写真をPCに取込む
          アプリを動かして手軽に取込む
        ・スマホのWi-Fi接続を練習する
          用意されたWi-Fi端末に接続してみる
        ・メールの送信を練習する
          繰り返し練習する
        ・朝刊太郎の操作
          巨大な画像(デジカメ)を縮小して張り付ける、繰り返す
        ・画像の編集
          特定のソフトで開くと縦に見えるが、

            他のソフトで開くと横になっている
            縦横を変更した際に、変更されないソフトがある
            使い慣れたソフトで画像の操作を行う、ことを勧める

    ************************

     後日、原因が判明する
        「Exif」の記事を参照

    ************************
        ・画面のキャプチャーを練習する
          「PrintScreen」キーの操作を練習する

      (2)Office製品グループ
        ・Wordの罫線を取り扱う
          罫線を引いたり、消したりを繰り返し練習する
        ・Wordの装飾文字を取り扱う
          ワードアートを使ってみる
          複数のワードアートを使って印刷原稿を仕上げる
        ・Excelの次の課題を見つけたい
          進め方で意見が割れる
            教則本に従って順番にこなしていく方法
            自分で具体的な課題を見つけ出す方法
          家計簿を付けてみる(クラブ内に以前やった人が居る)

      (3)HP作成グループ
        ・ホームページ作成
          新旧のHP移設
            FTPを繰り返し練習する
        ・PHPを使ってメール送信
          メールを送信できる環境構築から取り組む
            仕切り直しで再挑戦

      (4)その他
        ・PC用のアカウントについて
          アカウントの違いを説明する
          次回にはアカウント取得を自分でやってみる

  • 活動報告(第1回)

     パソコンクラブ「千代田」が誕生しました
      総会を開催し新執行部体制が承認され無事にスタートしました
      上手く聞き込めていないので次回でフォローします

    新体制が決まりました
      総会が開催され以下の執行部体制が承認されました
        会長にT氏、副会長にS氏、事務局長にK氏、会計にO氏
        他に監査役にM氏が選出されました

    活動報告(課題報告)
      (1)操作グループ
        ・ファイル(フォルダー等)の操作方法
          操作を繰り返し練習する
        ・Picasaの操作方法
          使用経験者が居なくて、解説書等の収集に努める
            後日、会員より対応策が示された(※後日修正)
          試行してみて、次回からは不明点を順番に潰すことにする
        ・朝刊太郎の操作方法
          貼り付ける順番を確認し、繰り返し練習する
            見出しと写真を優先して貼り付けるのがポイント
        ・Fencesのインストール(※後日修正)
          デスクトップアイコンを整理するソフト
          使用しているアカウントが日本語のため、
            インストールが先に進まず
            対応策は種々あるので個人に任せ、次回に対応する

      (2)Office製品グループ
        ・Excelでの住所録出力が上手くいかない
          印刷時の横幅定義を修正して対応する
        ・所属団体用のチラシ作成
          Word作成分をベースにしてExcelでの作成に挑戦する
        ・自習してきたExcelによる成果物の確認
          数名で確認する
        ・Power Pointでのプレゼン方法
          プロジェクターに繋げて、スライドショーを実演する

      (3)HP作成グループ
        ・ホームページ作成
          当クラブの資料棚に存在するHP関係の資料を説明する
            HPB12のインストール
              テーブルによる段組方法までを説明する
              自習・試行し、次回から不明点を順番に潰す
        ・HPBの操作方法
          インストールして操作をし始める
            FTP転送でサーバーの情報が不明のため作業は中断する
            自習・試行し、次回から不明点を順番に潰す
          好みのページをダウンロードして修正する
            繰り返し練習する
        ・HP上でスライドショーを行う
          Java Scriptのコーディング見本を入手し、HTMLに組み込む
        ・PHPを使ってメール送信
          細かくヒアリングできず、動かない原因の切り分けができず
            環境設定が悪いのか?、コーディングが悪いのか?
            メール送信できる環境でテストしているかどうか?
            自習・試行し、次回から不明点を順番に潰す

      (4)その他
        ・当クラブの資料棚について
          クラブ専用サイトに公開する、かどうかを検討する
        ・PC用のアカウントについて
          家族と共有しているPCが多いので
            管理者権限を有している人が家族内に居るなら
            家族間で調整していただく
          アカウントの違いを解説して説明する必要がある

  • ランサムウェア

    1.ランサムウェア

     Ransom(身代金)とSoftware(ソフトウェア)を組み合わせた造語
       PC内のファイルを勝手に暗号化処理を行い、読みとれない状態にし

         ファイルの復元と引き換えに金銭を要求する

       暗号化されると、ランサムウェア自体を駆除してもファイルを復元できない
         金額を支払ったところで元に戻せる保証もない

    2.感染経路

     メールが感染経路の場合
       メール本文中のURLをクリックして感染する

         ウェブサイトが感染されておりブラウザーに脆弱性がある場合
           ドライブ・バイ・ダウンロード攻撃によって感染する


       メールの添付ファイルを開いて感染する
         感染するように細工された添付されたファイルを開く
           ソフトウェアの脆弱性有無に関わらず感染する


         例として
           請求書の確認を促すような英語の文面で、ZIPファイルの添付
           ZIPファイルの
    中に細工されたファイルが含まれており
           細工されたファイルを開くことでランサムウェアに感染する


     ウェブサイトが感染経路の場合
       改竄された正規のウェブサイトや細工された不正広告を閲覧して感染する
         サイトがランサムウェアに感染されておりブラウザーに脆弱性がある場合


         ウェブサイトからダウンロードしたファイルを開くことで感染する
           ランサムウェアに感染するように細工されたファイルを開くと
             ソフトウェアの脆弱性有無に関わらず感染する


       「ドライブ・バイ・ダウンロード」により感染する

    3.対応策

     セキュリティソフトを導入する
       セキュリティソフトを導入し、定義ファイルを最新に保つ


     OSおよび利用ソフトウェアを最新の状態にする
       バージョンを常に最新の状態に保ち、脆弱性をなくす

       
     メールやSNSのファイルやURLに注意する


     重要なファイルを定期的にバックアップする
       感染すると復元できないので、定期的にバックアップを取得する


       バックアップに使用する装置・媒体
         バックアップ対象となるファイルに応じて使い分ける
           ・基本的に加工や編集が発生しないファイル
              写真、音楽等は光学メディア(DVD-R、、BR-Rなど)
           ・基本的に加工や編集が発生するファイル
              ドキュメント等はUSB、メモリーカード、外付けHDD


       バックアップにおける留意事項
         使用する装置・媒体は、バックアップ時のみパソコンと接続する
           接続先のファイルも暗号化されることになるので
         使用する装置・媒体は複数用意する
           暗号化されても、それ以外のもので復元することができる
         バックアップから正常に復元できることを定期的に確認する

  • Wi-Fiサービスの利用

    1.WiーFi機器にウィルスが潜むケース

     無料Wi-Fi(無線通信)環境でウィルスに感染する流れ
       攻撃者は先ず、Wi-Fi機器の脆弱な部分を見つけて不正ソフトを潜ませる
       不正ソフトは宿泊者のPCに母体となる不正ソフトを潜ませる
       母体となる不正ソフトは宿泊客が利用手続きを済ませると、

         著名ソフトの更新を促す偽の画面を表示する
       偽画面の更新ボタンを押すと、端末用のウィルスがダウンロードされる
       後はウィルスが様々な悪質行為を実行する


     ウィルスソフトの名は「Darkhotel」という

    2.ウィルスの攻撃対象

     ホテル利用者向けのWi-Fiサービス
       宿泊客が特定できるホテルならば、特定人物の機密情報を搾取できる
     有名競技場近くのWi-Fiサービス
       スポーツに関する内部情報を搾取する
     繁華街に有る商業施設内のWi-Fiサービス
       施設運営者の情報配信を装い情報配信する

    3.セキュリティー強化のポイント

     ・強固な通信基盤を構築する
       接続時に利用者から見える機能や設備を制限する
       侵入、攻撃しにくいよう設備を設定し運用する
       「異常なアクセス」を検知した際の即応体制を準備しておく
     ・通信の秘匿性を高める
       無線区間を暗号化する(暗号化したSSIDを利用者に提供する)
       暗号化されていないリスクを利用者に周知する
       利用者により手間を掛けない暗号方式を採る
     ・利用者と利用状況を追跡可能にする
       サイバー犯罪などに捜査協力できる様にしておく
       利用者の了解を前提に、利用者を特定できる情報を得ておく
       利用ログを適切に分析・保守する仕組みを構築する
       できるかぎり利用者の手間を省く
         様々な個人情報の管理形態
           SNSのアカウントを使うSNS認証
           個人情報は一切必要とせずに利用する
           迷惑行為は追跡が緩い環境で発生することが多い

    注意点
  • ビジネス理論(その17)

    孫氏の兵法

     中国春秋時代(前770~前403)に斉の国に生まれた孫武が書いた
       第1篇の冒頭(計篇)
         孫子曰く、兵は国の大事、死生の地、存亡の道、察せざるべからず。
         ゆえにこれを経るに五事をもってし、

         これを校ぶるに計をもってして、その情を索む。

         軍事は国の重大事であり、その死生を分ける地や存亡の道は熟慮せよ。
           これを謀り考えるには五つの事項と七つの基準で実情を探れ。

         経営は企業にとっての大事である。
           社員の死活、企業の存亡がかかっているから熟慮が肝心だ。
           それだから、経営は五つの視点と七つの基準で考慮・比較して、

           適切に判断せよ

        五事(計篇)
          一に曰く道、二に曰く天、三に曰く地、四に曰く将、五に曰く法。

          道は国家の上下が心を一つにするそのより所、
          天は季節や天候などの自然環境、
          地は戦場の地形であり、
          将は軍団を率いる統率者、
          法は統率を可能とする規則

          道=ミッション
          天=マクロ環境
          地=業界・市場
          将=リーダー
          法=内部環境

        七計(計篇)・・・ライバルと比較せよ
          曰く、主いずれか道ある。
          将いずれか能ある。
          天地いずれか得たる。
          法令いずれか行われたる。
          兵衆いずれか強き。
          士卒いずれか練れたる。
          賞罰いずれか明らかなる。
          吾れこれをもって勝負を知る。

          ミッションを理解しているのはいずれか。
          リーダーの能力が高いのはいずれか。
          有利な環境はいずれか。
          組織の制度が適切なのはいずれか。
          組織力が優れているのはいずれか。
          社員が訓練されているのはいずれか。
          賞罰が公明なのはいずれか。
          勝敗はこの比較で分かる

          主=経営者
          将=リーダー
          天地=環境(マクロ環境、業界・市場)
          法令=組織の制度
          兵衆=組織力
          士卒=社員
          賞罰=賞罰

        戦わずして勝つ(謀攻篇)
          孫子曰く、およそ兵を用うるの法、

          国を全うするを上となし、国を破るはこれに次ぐ。
            (中略)
          このゆえに百戦百勝、善の善にあらずものなり。
          戦わずして人を屈するの兵、善の善なるものなり。

          およそ軍事というものは、

          国を保全維持するものであって敵国を打ち破るものではない。
            (中略)
          だから、百戦百勝は最上ではなく、
          戦わずして相手を屈服させるのが最上なのだ

          およそ経営というものは、自社の競争優位を保つのが上策で
          ライバルを打ち破るのはそれに劣る。
            (中略)
          したがって、百戦百勝は決して最上の上ではない。
          戦わずしてライバルを屈服させるのが最上の上なのだ

        詭道
          ライバルをあざむく戦略や戦術
          ライバルとの違いを出す戦略や戦術

          他社と違う独自性のあるポジションを創り出すこと
          つまり戦略的ポジショニングを意味する

          詭道を徹底してこの戦略的ポジショニングを築くこと、
          そうすれば戦わずして相手を屈服させられる

        不敗の態勢(形篇)
          孫子曰く、昔のよく戦うものは、先ず勝つべからざるをなし、
            もって敵の勝つべきを待つ。
          勝つべからざるは己に在り、勝つべきは敵に在る。
          ゆえによく戦うものは、よく勝つべからざるをなす。
          敵をしてこれに勝つべからしむることあたわず。

          昔の強者は、まず敵に負けない態勢を整え、

            そのあとで敵に勝てるチャンスを待った。
          そもそも、敵に負けない態勢の構築は自身の問題であり、
            敵がスキを作るのは敵の問題である。
          いくら強者といえども、敵に負けない態勢は作れるけれど、
          敵に自ら負ける態勢を作らせることはできない

          まずは敵に負けない態勢を作りなさい。そして敵のスキを待ちなさい。
          敵に負けない態勢の構築は自分自身の問題で、

          敵がスキを作るのは敵の問題だ
            敵に負けない態勢を構築するのは、

            自分でコントロールできる問題です。
          だから為せば為すほど強固な態勢を作れるでしょう。
          しかし、敵が作るスキは自分でコントロートルできない問題です。 

  • ビジネス理論(その16)

    大野耐一のトヨタ生産方式

     トヨタ生産方式(Toyota Production System)
        技術力(高い品質)とコスト削減(高いコスパ)を

        両立させるために積み重ねられた生産方式の総称

        主なモノ
          ・ジャスト・イン・タイム
            ちょうど適時に間に合うように部品を作ること
              余分なものを間に合わせても仕方がない
            要るものを要るだけ要るときまでに用意すること

          ・自働化(ニンベンのついた自働化)

            人間の知恵を機械に組み込み、
              異常が起きたら機械が止まるようにした仕組み
            無停止杼換ヒカエ式自動織機(豊田G型)を開発した
              糸が1本でも切れたら自動的に止まる仕組みにした

      かんばん方式
        ルールを設ける
          ・「かんばん」が外れただけ後工程が前工程へ取りに行く
          ・前工程は「かんばん」の外れたものを外れただけ、外れた順に作る
          ・「かんばん」のない時は運ばない、作らない
          ・「かんばん」は現物に必ずつけておく
          ・100%良品でなければならない
          ・「かんばん」の枚数を減らしていく

    かんばん方式


          ・後工程が部品を引き取りに来たとき
            「仕掛けかんばん」を外して、かんばん受取ポストに順に入れ、
            代わりに持ってきた「引取りかんばん」を掛けて収容箱を持ち帰る
            外された「仕掛けかんばん」は適宜集められ、

             外れた順に生産ポストにおかれる

          ・前工程が部品を生産したとき
            「引取りかんばん」を外して、かんばん受取ポストに順に入れ、
            代わりに持ってきた「仕掛けかんばん」を掛けて収容箱を置く
            外された「引取りかんばん」は適宜集められる

  • ビジネス理論(その15)

    エドワード・デ・ボノの「6つの帽子」

     水平思考
       進む道そのものをできるだけ沢山発見する
     垂直思考
       一つの方向に向かって進む

     刺激的操作(Provocative Operation)
       正しいか間違いかではなく、状況を新しい観点で見る態度
         クセを断ち切って水平思考的な発想するために必要となる


     6つの帽子(新たな観点で別の解法を発見する方法)
       ・中立を守る白い帽子
         中立で客観的な思考態度を象徴する
           事実や数値データに着目して、それらを冷静かつ客観的に検討する

       ・情熱的に考える赤い帽子
         感情を直接表現する思考態度を象徴する
           怒りや情熱、直感、情緒など、

             論理的には説明できない考えを直情径行に表現する

       ・警戒と注意を促す黒い帽子
         生真面目かつ思慮深い思考態度を象徴する
           考え方の誤りや見当違いなど、注意深く見極めて、指摘する思考態度

       ・プラス思考の黄色い帽子
         建設的かつ積極的な思考態度を象徴する
           アイデアに含まれる利点を積極的に見つけ出し、

           建設的な意見を創り出す

       ・新視点で考える緑の帽子
         みずみずしい創造性や新しいアイデアの創出を象徴する
           新しい考え方、新しい物の見方に着目する

       ・全体を俯瞰する青い帽子
         冷静で超越した思考態度を象徴する
           現在の思考法や議論が適切なのか、「考え方を考える」態度

     会議の進行例
       ・会議テーマを明確にする(青)
       ・自由な意見を出し合う(赤)
       ・テーマに関する情報を出す(白)
       ・プラス思考で発想する(黄)
       ・らに新しいアイデアを出す(緑)
       ・具体化できそうな選択肢を評価する(黄)
       ・実現不可能な選択肢を評価する(黒)
       ・黒い帽子から出た欠点を補正する(緑・黄)
       ・どの方向に進むのか戦略を練る(青)

  • ビジネス理論(その14)

    ジョン・フォン・ノイマンのゲーム理論

     ゲーム理論
       複数の主体が個々の意思決定によって影響を受ける状況において
       主体がどのように意思決定し行動するのかについて理論化したもの

     ゼロサムゲーム
       一方が得をすれば、他方がその分損をする状態になるゲームのこと
       確率的に行動を選択するゼロサムゲームには均衡点がある

      均衡点を知るための基本


     絶対優位の戦略
       電々堂は、C案を選ぶ方が得
       博通が相手の出方を考慮して選ぶべきはA案だが
         判断を誤ってB案に賭けたら、裏目に出て大きな痛手を被る

     ゲームの均衡点
       丸印と四角印の双方を持つセルがある、両方の印が集まる個所が均衡点

  • ビジネス理論(その13)

    カーネマンとトヴェルスキーのプロスペクト理論

     価値関数
       我々人間が持つ主観的な価値を数学的に表現したもの
       人は同じ規模の利得と損失の場合、損失の方を2.25倍程度重く受けとめる

    価値関数


       横軸は原点から右が利得、左が損失を示す
       縦軸は価値(満足度)で、原点から上が満足、下が不満足

       原点を基準に利得と損失のグラフが非対称になっている
         利得と損失いずれも直線になっていない
           右側の利得のグラフだと
             利得が上昇するに従って満足度も上昇しているが
             満足度の上昇の幅はだんだん小さくなっている
              やや弧を描くグラフになっている

     感応度逓減テイゲン
       利得の増加により満足度は増加するが
         利得の増加1単位あたりの満足度は、だんだんと小さくなる

         「オマケ」として小出しにする意味は
           最初の満足に、次の満足、さらに次の満足と価値を見いだす
           一括して手にした価値よりも、

             小出しで手にした価値のトータルの方が大きくなる

       損失の場合は
         逆に、繰り返して損失するのを嫌い、一度にまとめて損失に対応する

     価値関数のグラフは
       損失の上昇よりも利得の下降の方が大きくなっている
         利得と損失の大きさが同じの場合、損失の方をより重大に受け止めている
           その重大さが、利得に比べて損失の場合に2~2.5倍になる

     損失回避性
       損得の大きさが同じなら、損することを極端に嫌う

     保有効果
       損失を少しでも回避しようという心理が働く
         同じ価値のモノでも、新たに手にするモノよりも、

         保有しているモノを高く評価する
           買うなら安く、売るなら高くと考える

     現状維持バイアス
       古臭くなったものでも、いざ捨てるとなると痛みが生じる、これは損失
       新たなことを実行すると得られる成果がある、これは利得

       同じ大きさの利得と損失では、損失の方が2倍以上大きく評価される
         新たなことを実行して得られる成果が
         古いものを捨てたときの損失よりも2倍程度大きくないと
         新たな一歩への踏ん切りがなかなかつかない
       こうして、現状を維持すなわち無難という消極的態度が支配的にな
    る

  • なりすまし投稿

    1.PCの遠隔操作

     他人のPCを遠隔操作して掲示板に投稿することを「なりすまし投稿」という
       2種類の手口を紹介する、各々対策を講じておく

    2.CSRF(Cross site request forgeries)

     クロス・サイト・リクエスト・フォージェリと言う
       CSRF対策を施していない投稿サイトに利用者のPCから勝手に投稿される
         悪意のある記事が投稿されることが多い


     予期しない結果
       掲示板に意図しない書き込みをさせられる
       オンラインショップで買い物をさせられる
       ルーターや無線LAN等の情報機器の設定を勝手に変更される


     感染の流れ
       ・攻撃者が誘導用のページを用意する
       ・誘導用のページをログインしたままで閲覧する
       ・攻撃用ページにリクエストが送信され、攻撃者の意図した操作が行われる

    CSRF

     第一段階
       攻撃者は投稿文章の内容等を全て用意して
    、罠のページを作成する
         事前に目的のサイトの「投稿」ロジックを用意しクリックされるのを待つ

     第二段階
       利用者が投稿サイトにログインする
       利用者が投稿を行う
       利用者はログオフせずに繋いだままにしておく

     第三段階
       利用者が罠のサイトをアクセスする
       知らずにクリックしてしまうと
         「第一段階」で用意された文章が投稿される


     注意点
       例としてログインしてからの「投稿」サイトを上げたが
         ログインせずに「投稿」できるサイトでも「なりすまし投稿」ができる


       「なりすまし投稿」と言われる所以
         実際の「投稿」は攻撃者の存在がばれる事を恐れて

           罠のページが存在するサーバ上では行わない

         多くの攻撃者はJava Scriptを使って「ローカルPC」上から投稿させる
           Java Scriptが「ローカルPC」上で動くといった
           プログラム言語の特徴を利用して上手に攻撃者の存在を隠してしまう

    2.XSS(Cross site scripting)

     クロス・サイト・スクリプティング」と言う
       XSS対策を施していない投稿サイトで勝手な投稿が行われる
         悪意のある記事内容に摩り替えられる


     予期しない結果
       最初に誘導用ページにアクセスした人が意図しないうちに
         意図しない内容で掲示板に書き込みされる


     感染の流れ
       最初にアクセスされた誘導用ページのインラインフレーム内で
         攻撃用ページが呼び出される
           縦1 ピクセル、横1ピクセルのインラインフレーム内で行われるため、
        
           被害者は全く気が付かない
       攻撃用ページのonload属性により、ページが読込まれるのと同時に
         掲示板への書き込みフォームの送信ボタンが自動的に押され
         フォームで指定された文言で掲示板に書き込みが行われる
       

    XSS

     第一段階
       攻撃者は「悪意のあるWebサイト」を用意する
         ターゲットとなる脆弱なサイトへのリンクを設置した罠サイトを設ける
         リンクのパラメータ部分に悪意のあるスクリプトを埋め込んでおく

     第二段階
       利用者が知らずに「悪意のあるWebサイト」にアクセスし、クリックすると
       悪意のあるスクリプトを持ったまま新たなページを開く

     第三段階
       悪意のあるスクリプトを持ったまま「投稿」ページが開く
         XSSへの対応が施されたサイトだとスクリプトはエラーになる
         XSSへの対応が施されていなければ
           悪意のあるスクリプトを埋め込んで本物の「投稿」ページを表示する
       利用者のPC上で悪意のあるスクリプトが実行されます
         エラーにならなければ、利用者の知らないうちに全て実行される


     注意点
       元々XSSへの対応(特殊文字のチエック)が施されていないサイトだと

         直接「投稿」文章にスクリプトを混入させることができる

       自由に「悪意のあるスクリプト」が動くので、
         サイトのクッキーが詐取され、なりすましが行われる
         本人になりすまして色々なサイトにアクセスされる
         ターゲットサイトのページ内容を不正に書き換えられるる
         入力した情報を攻撃者へ送信される(個人情報の漏洩)
         SNSに攻撃者の指定した内容が書き込まれる

     掲示板への書き込みサンプル
      誘導用のページとして用意する

    <!DOCTYPE html>
        <html lang="ja">
        <head>
          <title>誘導用のページ</title>
        </head>
        <body>
          <p>ようこそいらっしゃいました。</p>
          <iframe width="1" height="1" src="attack.html"></iframe>
        </body>
        </html>

      攻撃用のページとして用意する

    <!DOCTYPE html>
        <html lang="ja">
        <head>
          <title>攻撃用のページ</title>
        </head>
        <body onload="document.attackform.submit();">
          <form name="attackform" method="post" action="http://example.com/bbs/register.cgi">
          <input type="hidden" name="title" value="攻撃者が指定した題名">
          <input type="hidden" name="article" value="攻撃者が指定した本文">
          <input type="submit" value="送信">
          </form>
        </body>
        </html>
  • ビジネス理論(その12)

    キャプランとノートンのバランススコアカード

     バランススコアカード(Balanced Scorecard)
       当初は、企業の業績を評価するシステムとしてスタートする
         企業の業績評価が短期的な「財務の視点」に偏りがちなのに着目し
         財務の視点に、非財務的な長期的視点として

         顧客の視点、内部プロセスの視点、学習と成長の視点を加えて
         総合的に評価する
           徐々に、組織が持つ戦略を組織全体に浸透させる

           ツールとして利用される
             従来の組織では、経営トップが策定した戦略や目標が
             組織の隅々までには行き渡らないというジレンマがあった


     4つの視点
       ・財務の視点
         企業は高い財務成績を目指す
       ・顧客の視点
         高い財務成績を実現するためには、

         どのような顧客に焦点を合わせるかを考える
       ・内部プロセスの視点
         顧客を満足させるには、どの内部プロセスに焦点を合わせるかを考える
       ・学習と成長の視点
         内部プロセスを充実するには、どのような学習を施すべきかを考える


     個別の活動が、戦略上首尾一貫する
       財務の視点からトップダウンで戦略を実現する具体的行動を策定すると
       ボトムアップで行動に移すと、自然と最上位の戦略に結び付いてくる

     個別の活動について、的確に評価する
       個々の活動について「尺度」と「目標値」を設ける
       実行後のパフォーマンスが的確に評価できる


     戦略的マネージメントシステムの構築
       PDCAの中心にBSCを据え、PDCAの全過程においてBSCを活用する
         企業が策定した戦略をBSCで組織に浸透させ、具体的実行案を計画する
         実行案を実行して、得られた結果を尺度と目標値で評価する
         次の計画にフィードバックする

    4つの視点

  • ビジネス理論(その11)

    ジェームズ・コリンズのビジョナリーカンパニー

     超優良企業(visionary company)
       時代を超えて成功し、その地位を維持し、経営手法を見本とされる企業
       共通点として、企業が持つ基本理念が強固で、理念に徹する傾向が強い
         相反することを同時に抱え込みながら、

         双方の機能を発揮させることができる企業

     8つの共通点
       ・利益を超えた基本理念
         単なるお金儲けを超えた価値観と

         目的意識が基本理念に込められている
           お金儲けのことも考えないと、会社は早晩立ち行かなくなるが
           お金儲けはするのだけれど、それ以上に崇高な理想を持つ


         現実的な理想主義
           短期的な利益を手にしながら、長期的な利益をも実現する
             まず利益を超えた理想を掲げる、

               しかし、短期的利益を切り捨てたりはしない
             理想を掲げたそのあとに、

               理想を実現するための利益の重要性を強調する
           だから利益を超えた基本理念がどうしても必要になる

       ・基本理念を維持し、進歩を促す
         基本理念と慣行または行動は別物である
           基本理念は維持するものの時代の変化に応じた進歩を促す行動をとる
           慣行は次々に変わる可能性がある

       ・BHAG(Big Hairy Audacious Goals)を持つ
         大胆な目標を設定しメンバー全員が同じ方向に向かって一歩前に踏み出す
         企業活動を一種の宗教活動や社会運動のようなものと捉えて、
           使命に賛同した人達が集まったコミュニティ(組織)だと捉える

       ・カルトのような文化
         BHAGを目指して遮二無二働くと独特な文化(カルト的)が生まれる

       ・大量に試して、うまくいったものを残す
         目標があいまいで、色々試してみて、たまたまうまくいったことがある

       ・生え抜きの経営陣
         生え抜きの経営者ならば、企業の基本理念が身体に染みついているはず
           基本理念を無暗に変えたりしない
         外部から招聘された経営者は、基本理念と初めて接するわけなので
           基本理念の維持が生え抜きの場合よりも困難になる

       ・決して満足しない
         常に今日より良くなるために明日を生きる

       ・一貫性がある
         基本理念を始まりとする一貫性が、企業の至る所に生きている

    陰陽図

  • ビジネス理論(その10)

    野中郁次郎の組織的知識創造の理論

     組織の外から内へ、内から外への知識変換プロセスに日本企業の強みがあった
       企業は外から知識を吸収する、吸収した知識を組織内部で共有し
       共有した知識で新たな技術や製品に転用し市場に供給してきた
     知識創造が、連続的イノベーションを生み出し、日本企業の競争優位となった

     知識は暗黙知と形式知に大別できる
       暗黙知
         極めて個人的で、形式化したり他人に伝えたりするのが難しい知識
       形式知
         形式的な言葉や論理的な言葉で他人に伝達できる知識

     暗黙知を形式知に変えるプロセス
       共同化:個人の暗黙知からグループの暗黙知を創造する
         知識を個人の暗黙知からグループの暗黙知に変換する
       表出化:暗黙知から形式知を創造する
         暗黙知を論理的に記述する努力をする
       連結化:個別の形式知から体系的な形式知を創造する
         個別の形式知をさらに昇華させ、体系的な形式知として定着させる
       内面化:形式知から暗黙知を創造する
         高度な形式知となって組織全体に流布させ、
         全メンバーの習慣にまで昇華させる

    変換プロセス
  • ビジネス理論(その9)

    エリヤフ・ゴールドラットの制約理論(TOC)

     制約理論(Theory of Constraints/TOC)は制約条件理論と呼ぶこともある
       制約理論は生産管理手法の一つ
       トヨタ生産方式(Toyota Production System/TPS)と同じく有名

     目指は全体最適化
       ボトルネックとは物事のパフォーマンスを決める制約条件のこと
         この制約に着目して改善することで全体のパフォーマンスが向上する

     集中の5段階
       全体最適化を目指す5つのステップ
         ・システムの制約条件を見つける
           どこに制約条件すなわちボトルネックがあるかを特定する
             物理的制約条件
               装置や設備、人的リソースが制約条件になる
             市場の制約条件
               需要や顧客などの市場要因が制約条件になる
                 マーケティング政策の変更や

                 市場のセグメント化が不可欠になる
             方針の制約条件
               会社の方針や慣習が制約条件になる
                 過去に定めた方針やルールが制約条件になる

         ・制約条件を徹底活用する
           制約条件の能力が低下すると、

             全体のパフォーマンス低下に直接影響を及ぼす
                制約条件が持つ可能性を十二分に引き出して、

                 無駄な使い方をしない様にする
                ボトルネックのパフォーマンスを、

                 それ以上落とさないようにする

         ・制約条件以外のすべてを制約条件に従属させる
           全要素を制約条件に従わせる
             従わずに部分最適化しても全体のパフォーマンスは上がらない
             部分最適化するより他にすべきことがある

         ・制約条件の能力を高める
           現時点では制約条件の能力は最大限引き出されている筈
             さらに制約条件の能力を高める
               制約条件のパフォーマンスを高める
               制約条件のキャパシティの一部を他の非制約条件に

                負担させる 等々

         ・制約条件が解消されたら、惰性を避けて最初に戻る
           引き続き新たな制約条件を特定して、繰り返す

    集中の5段階
  • ビジネス理論(その8)

    マイケル・ポーターのファイブフォース

     5つの競争要因
       ライバル組織との競争と考え、競争上の環境を5つの要因で考える
         ・競争業者
           競争業者間の敵対関係が強いほど、業界の競争は激しさを増す
             敵対関係を左右する要因があることに留意する
               ライバル企業の数
               類似品の数
               高い固定コスト
               撤退障壁の大きさ(業績が不振でも撤退できない)

         ・新規参入業者
           新規参入の脅威が大きいほど、業界の競争は激しくなる
             参入障壁が低いほど、業界の競争は激しくなる
             参入障壁が低く、撤退障壁が高い業界は、

              構造的に競争が激しくなりやすい

           参入障壁の分かりやすい例
             政府による規制

              事業免許の取得が非常に困難だと新規参入の脅威が高い
             巨額の投資が必要

              最初から巨額の資本が必要、新規参入の脅威が低い
             規模の経済

              コスト競争に陥り、新規参入の脅威が低い

           既存業者からの報復
             団体に加入できなければ事業の継続が困難になる

         ・代替品
           製品やサービスを代替する新たな製品やサービスの登場
             代替品によって、業界の競争環境が大きく変化する
             代替品がどこから登場するのかはなかなか予測が付かない
                業界の外からやってくることが多いので

               業界の外にもアンテナを張り巡らしておく

         ・買い手(顧客)
           業界が作り出す製品やサービスを手にする人々
             売り手との交渉力によって業界の競争を左右する
               買い手の数が少ないと、業界内の企業を競わせて

                価格の安い物を手に入れようとする

         ・供給業者(売り手)
           部品や別のサービスを提供する業者
             買い手との交渉力によって業界の競争を左右する
               売り手の数が少ないと、業界内の競争を激化させる


     ファイブフォースから得られる効果的な戦略
       5つの競争要因ごとに防衛可能な地位を作り出すために、

         攻撃あるいは防御の行動を起こす
         ・業界の競争環境に企業の長所や短所を適合させ、

           最良のポジションをつくる、短期的には重要な行動
         ・競争要因のバランスに努める
         ・変化をうまく利用する
            長期的にはダイナミックな環境変化に対応する

    ファイブフォース
  • ビジネス理論(その7)

    アルバート・ハンフリーとSWOT分析

       ・強み(Strengths)
       ・弱み(Weaknesses)
       ・機会(Opportunities)
       ・脅威(Threats)

       組織に関する内部環境と外部環境を分析するためのツール
         内部環境については強みと弱み
         外部環境については機会と脅威 で分析する

    SWOT分析


       マトリックスで考える
         ・「強み&機会」
           組織の強みを生かせるチャンスを逃さに考える
         ・「強み&脅威」
           強みのどこかに落とし穴がないかを考える
           強みを弱体化させる脅威について考える
         ・「弱み&機会」
           どうしても補強や解消が必要となる弱みがあるはず
             弱みを見つけ出して改善すれば、強みがさらに強くなる
           むやみやたらに弱みを見つけ出し、改善するということではない
             必ず成果として強みの強化に繋げること
         ・「弱み&脅威」
           先に脅威をリストアップし組織にどのような影響を及ぼすかを考える
           次に影響が大きい箇所ほど、組織の弱みだと考える

  • ビジネス理論(その6)

    マイケル・ポーターの「3つの基本戦略」

     著書「競争の戦略」での2本柱
       ・戦略の定石・・・企業の経営戦略における定石
         三つの基本戦略
           コストのリーダーシップ戦略
           差別化戦略
           集中戦略
       ・環境分析の手法・・・企業を取り巻く環境を分析する手法の解説

     コストのリーダーシップ戦略
       低コスト体質で業界のトップに立つ
           ※低コストであって、低価格ではないことに注意
         業界一の低コスト体質を実現した企業は
    価格競争を挑まれても生き残れる
         低価格戦略に出るのは
    ライバルが低価格で戦いを挑んできた時に限られる

     差別化戦略
       製品の差異を際立たせる
         いかにして意味ある差別化を実現するかがポイント
           差別化の焦点は多岐にわたる(例を挙げる)
            ・製品による差別化
            ・チャネルによる差別化
            ・イメージによる差別化
            ・スタッフによる差別化

     集中戦略
       市場全体ではなく、細分化した標的市場に狙いを定めて
       コストのリーダーシップ戦略か差別化戦略、
    あるいはその組み合わせ
         市場を共通要因で細分化(セグメンテーション)し
         自社にとって有利な市場を特定(ターゲティング)し
         そこへ顧客のマインドに訴える(ポジショニング)ような製品を
           コストのリーダーシップ戦略か差別化戦略、はたまた組み合わせ

     必要となる資源や組織の在り方
       コストのリーダーシップ戦略の採用
         低コスト体質実現のために長期的かつ継続的な投資が必要になる
           資金を確保できるかどうかが大きな課題ちなる
         コストを徹底して管理する組織体制を構築する

       差別化戦略の採用
         高いテクノロジーと製品開発能力が必要
         強力なマーケティング能力も必要となる
         研究開発とマーケティングを効果的にバランスさせる組織体制が必要

       集中戦略の採用
         特定のセグメントで強みを発揮できることが必要

     利点と欠点
       コストのリーダーシップ戦略の採用
         ライバルによる模倣を警戒する
         新たな技術革新に注意する

       差別化戦略の採用

         模倣に対して警戒する
           模倣される差別化は、差別化の要件を満たしていないと考える
           コストがかさむので、相手企業のコストとの差が大きく開く

    基本戦略
    必要条件とリスク
  • ビジネス理論(その5)

    クレイトン・クリステンセンの破壊的イノベーション

     ヨーゼフ・シュンペーター(経済学者、1883~1950)
       馬車から機関車のような非連続的な経済発展の原動力になるものを、

       イノベーションだと考えた
         古きを破壊し新しきを創造する、創造的破壊を提唱した
          企業家に創造的破壊(イノベーション)を推進する役割を求めた
          経営者に企業の日常業務を管理する役割を求めた

     ピーター・F・ドラッカー(経営学者、1909~2005)
       マネジメントの主要機能にマーケティングとベーションを据えた
       経営者は日常業務の管理のみならず、イノベーションを推進する役割も担う

     クレイトン・クリステンセン(経営学者、1852~ )
       2種類のイノベーション
         ・持続的イノベーション(sustaining innovation)
           持続的な性能向上を目指すイノベーションを指す
         ・破壊的イノベーション(disruptive innovation)
           価格は安いが性能は低い技術によるイノベーションを指す
             disruptiveの訳は「秩序を乱す」、決して「破壊的」ではない

       破壊的イノベーションの本質
         秩序を乱す製品は、主流市場で互角に戦うことができないから、

           非主流市場に投入される
         いったん市場に投入されると持続的イノベーションが急速に進む
         当然、性能は日増しに向上し
           やがて主流市場において十分な製品へと進化する


       イノベーションのジレンマ
         破壊的イノベーションを起こしたくても起こせない現象がジレンマとなる
           破壊的イノベーションを巻き起こしたいが
           間管理職にとっての安全パイは持続的イノベーションとなる

        

  • ビジネス理論(その4)

    キムとモボルニューのブルー・オーシャン戦略

     予期せぬ出来事は、イノベーションを実現するための重要な機会
       予期せぬ出来事が生じたら、その背景で何か環境が変化していないかを考える
       その変化を掴めたら、

         変化を活用することで今まででにない新たな世界を作り出すことができる

     レッド・オーシャン
       血で血を洗うような競争が繰り広げられる市場
       戦う企業は誰もが傷つき疲弊する


     ブルー・オーシャン
       競争相手のいない未知の市場
       既存の市場から脱出し、新たな市場を創造して成功を目指す
         成功への具体的手法がブルー・オーシャン戦略
         「競争を無意味にする戦略」とも呼ばれる

     全く新たな市場を創造することは
       既存市場を定義付けする価値を問い直し、市場の境界を引き直すこと
       従来のオーソドックスなマーケティング理論から逸脱している
         既存市場の顧客以外(非顧客)を対象にするから、

         従来の理論とは全くアプローチが違う

       非顧客を3種類に分類する
        ・消極的な買い手
          購入意欲は低く、代替品で間に合わせようとする
        ・利用しないと決めた顧客
          現在の市場(製品)に不満があり、利用しないことを心に決めている
        ・市場から距離を置く顧客
          業界の製品も代替品も利用しない、既存市場から最も遠い位置にいる

       3種類の非顧客を顧客にする手を考える
        ・消極的な買い手
          代替品に逃げる原因を取り除く
        ・利用しないと決めた顧客
          利用しないと決めた原因を取り除く
        ・市場から距離を置く顧客
          潜在的な需要に注目する

     既存市場を定義付けする価値を問い直すとは
       非顧客が共通して持つニーズをつかみ取り、これに対処する製品を形にする
       形に出来れば、非顧客を取り込める可能性が大いに高まる

     意識的にイノベーションを推進するとっておきの方法
       既存の市場にある製品と非顧客のニーズを念頭に置いて
       常識と考えられている要素を取り除き大胆に減らして、

         製品を無価値なものにする
           ・取り除く
           ・大胆に減らす
         次に、非顧客のニーズに合致した要素を付け加え

         大胆に増やして、製品の価値を高める
           ・付け加える
           ・大胆に増やす

    イノベーション

  • ビジネス理論(その3)

    ジェフリー・ムーアのキャズム理論

     キャズムとは
       岩盤や地表などの大きな裂け目あるいは亀裂のこと
         新製品が普及せず消え去るのはキャズムを飛び越えられなかった


       集積回路の性能は2年で2倍になるは、インテルのゴードン・ムーア

     キャズム理論
       アーリー・アダプターとアーリー・マジョリティの間にキャズムがある
         それを飛び越えるにはホール・プロダクトでニッチ市場を狙い
         そこでナンバー1を目指し、その勢いで周辺市場を攻略する


     解説(その1) エベレット・ロジャーズのイノベーション普及理論
       「イノベーション採用者カテゴリー」といって5段階に分類した
         「平均-標準偏差×2」より左(全体の2.5%)
           イノベーター・・・イノベーションを最も早くに採用する人たち
         「平均-標準偏差×2」より右(全体の13.5%)
           アーリー・アダプター(初期採用者)

             ・・・イノベーションを比較的早期に採用する人たち
         「平均-標準偏差」より右(全体の34%)
           アーリー・マジョリティ(初期多数派)
         「平均」より右(34%)
           レイト・マジョリティ(後期多数派)
         「平均+標準偏差」より右(16%)
           ラガード(遅延者)・・・イノベーションを最も遅れて採用する

     解説(その2) ジェフリー・ムーアのキャズム理論
       イノベーターからアーリー・アダプターに商品が普及すると、

         一時的なブームが巻き起こる
       アーリー・アダプター(初期採用者)はイノベーターよりも採用は遅れるが
         その技術が社会にどういった影響を及ぼすかを鋭く見抜き
         イノベーションを活用することで起こる変革を予見(ビジョナリー)する
       ビジョナリー(初期採用者)と呼ばれる人々は、

         社会で強い影響力を持っている場合が多い
       ビジョナリーにイノベーションが普及すると、

         影響力の強さからメディアの注目を集める
         メディアにそのイノベーションに関する情報が次々と取り上げられる
         これが進展していくと、ブームと呼ぶ現象が起こる
       アーリー・マジョリティ(初期多数派)はそうは動かない
         そもそも多数派はテクノロジー等に興味など無い
           最大の関心事はそれが自分の利益に資するか否か
           工夫して使うほど知識が豊富でないので、

             使い勝手が悪ければ手に取らない
       アーリー・アダプター(初期採用者)と

         アーリー・マジョリティ(初期多数派)の間には
         大きなギャップ(キャズム)が存在する

      解説(その3) キャズムを飛び越える(イノベーションの普及を推進する)
        多数派の一般市場全体を相手にするのではなくニッチ市場を狙う
        次にターゲティングしたニッチ市場にホール・プロダクトを投入する
          顧客のあらゆる要求に応えられる様にプロダクトを仕上げる
        市場でナンバー1の地位を目指す
          多数派はナンバー1が大好きで安心感が得られるモノが好き
        1番という看板でもって周辺市場を攻める

    採用者カテゴリー
    キャズム
  • ビジネス理論(その2)

    フィリップ・コトラーのマーケティング論

     マーケティングの基本的な手順
       R → STP → MM → I → C とした

    基本手順


       ・調査(Research)
       ・セグメンテーション・ターゲティング・ポジショニング

          (Segmentation, Targeting, Positioning)
         セグメンテーション(市場細分化)
            共通の嗜好を持つ顧客をグループ化する
         ターゲティング(標的を決める)
           どの市場を対象にするのが自社にとって得策なのかを考える
         ポジショニング(相対的な位置決め)
            いかなるコンセプトの製品を提供するのかを明らかにする
            競合製品に対して自社の製品が相対的に

             どのような位置にあるのかを明確にする
       ・マーケティング・ミックス(Marketing Mix)
         ニーズ ⇒ ウォンツ ⇒ 需要を喚起する
           ニーズ・・・何かの不足を感じている状態
           ウォンツ・・ニーズが形になったもの
           マーケティング・ミックスとは上記の流れでニーズを満たす
       ・実施(Implementation)
         組織からみたマーケティング活動(4P)
           ・プロダクト(製品)
           ・プライス(価格)
           ・プレイス(流通経路)
           ・プロモーション(販売促進)
             5つの活動に細分化する
               ・広告
               ・パブリシティ
               ・販売促進
               ・人的販売
               ・インターネット
         顧客からみたマーケティング活動(4C)
           ・顧客ソリューション(Customer Solution)
           ・顧客コスト(Customer Cost)
           ・利便性(Convenience)
           ・コミュニケーション(Communication)

    実施


       ・管理(Control)

  • ビジネス理論(その1)

    ピーター・ドラッカーのマネージメント論

     組織を「社会の器官(organ)」と捉える
       組織は社会やコミュニティや個人のニーズに対処するために作られる
       あらゆるニーズに対処することは困難、特定のニーズに対処する


     組織は、社会が持ついかなるニーズに対処するのか
    ?
       その態度を明確にしなければならない

     組織が社会のニーズに対処するのを表明したものがミッション(使命)
       ミッションを明らかにすることで、

         社会に対していかに貢献するのかが明瞭になり
         ミッションそのものが、組織の存在理由を示すことになる


         ミッションとは
           過去によって規定される組織の存在理由
         ビジョンとは
           将来こうなりたいという理想像
         価値観とは
           ビジョンを実現するための行動基準
         企業理念とは
           上記3つの概念をひとまとめにしたもの

       ミッションを正しく理解して、それに従って行動すること
         それが組織が継続して成果を得るための最低限必要な条件になる
       ニーズに対するソリューション(解決策)を提供し
         受け取った社会やコミュニティ、個人から対価としてお金をいただく
       他の組織よりも抜きん出たソリューションを提供して

         顧客を創り出し繋ぎ止めなければならない

       組織が持つべき顧客創造の機能
         ・マーケティング(ニーズに応えて利益を上げること)
         ・イノベーション(新たな価値作り)
       両者をコントロールするのがマネジメント

         組織に成果を上げさせるための道具・機関・機能

    企業理念
  • 詐欺サイトへのアクセス

    スマートフォンでのワンクリック請求に関する相談件数が増加傾向にある

    1.ワンクリック詐欺の手口

     サイトに登録して契約が成立したと思わせ
       利用者を慌てさせてサイト使用料の名目でお金を支払わせる


     何度でも「登録完了画面」を表示させ
       利用者が根負けするのを待ってお金を支払わせる

    2.処理の流れ

     表示順序
       ・年齢認証が表示され、そのまま“次へ”ボタンをタップする
         登録完了のメッセージと請求料金が表示される
       ・登録完了画面で“OK”を入力する
         「お客様の端末情報は安全に保存されました」という表示される
       ・「お客様登録ID」が保存されましたと
         スマートフォン内の情報を取得したかのように表示される

    3.慌てず対応する

     スマートフォンに限らず端末からウェブサイトにアクセスすると
       端末OSのバージョン
       閲覧ブラウザの種類
       IPアドレスの情報
     だけが分かる
         これらの情報だけで個人を特定することは出来ない

     自ら業者に連絡をしたり、お金を振り込むことはしない
       契約が成立したのか不安に思う場合は、最寄の消費生活センターに相談する

     表示されているボタンをクリックしない
       [誤作動登録の方]
       [退会希望の方]
       [電話サポート]


     メールや電話で絶対連絡しない

    4.「登録完了画面」の消し方(i-Phone)

      タブを削除する
       ブラウザに表示された登録画面を上にスクロールさせ
       表示された「タブ」ボタンをタップしてタブを表示させ
       削除したいタブを選んで「×」ボタンをタップする


     「履歴を消去」と「Cookieとデータを消去」を行う
       ホームボタンを押下してホーム画面を表示させ
       ホーム画面の「設定」、設定画面の「Safari」を順にタップし
       「履歴を消去」と「Cookieとデータを消去」をタップして消去する

  • 活動報告・木曜会(第5回)

    全体報告(課題報告)
      「CSSを意識したHP作成」は第13回目の勉強会を行う
        参考図書「HTML&スタイルシートの本」(技術評論社)を使って先に進む

    「第7章CSSでページをデザインしよう」の08から再開し終了する
       ・見栄えを整える(枠線を入れたり、高さを合わせたり、色を付けたり)  「第8章Webサイトをアップロードしよう」まで進み、一気に終了させる
       ・クラブ員のサイトを利用して、FTPを使って成果物
    をアップロードする
       ・自分が作成したページがインターネットの世界に登録された感動を味わう

    これで8月下旬から参考図書を使って行ってきた勉強会は終了となる
      2ヶ月少々の期間でHPの開発が出来るようになってきた
      今後はどうやって応用範囲を広げるかに挑戦してみる

  • 活動報告(第54回)

    全体報告(課題報告)
      本日からクラブ員の提案により
        「CSSを意識したHP作成」といった継続テーマをベースにして活動する
        HTTPによるコミニュケーション手順から始まってHTMLの標準仕様まで

        一気に、HTMLとCSSの分離まで話が及び
          HPビルダーでTMLに埋め込んでいたやり方を復習する
          カラーコードの変更により、文字色に変化が起きる事を確かめる
          今後、このHTMLとスタイルとを分離することを理解する

        タグの扱いにも慣れる意味合いで、テーブル作成を行ってみる
          罫線を引いた、馴染みのある表を作成して、各セルに文字を入れてみる

          文字の色を自由に変更してみる

  • 第3回 野村HD 投資一任口座サービスのの開発

    1.経緯

     2010年11月から開発業務を開始する
       野村HDは、日本IBMに開発を委託し契約を締結する
       既存のシステムをカスタマイズして開発することとなる

     システムの開発費用は、概算17億7900万円
       2013年1月に稼働開始することを目標に設定する

    2.開発実態

     2011年2月25日に要件定義フェーズの終了、概要設計フェーズに進む
       開発が進むに従ってスケジュールが何度も見直され、
       個別契約が順次締結され、開発費用も増額されることになる

     2011年7月上旬の打ち合わせ
       IT戦略部部長から
         今後大きな工数追加が判明する可能性はないと念を押す発言
       だが、後日開かれた打ち合わせの場で新たな業務要件を追加
         今後も伝えきれていない要件が見つかる可能性があると発言する

     2012年7月から他のシステムとの連動テストを予定する
       日本IBMに対して同年6月末までの納品を要請するが、
       日本IBMは修正作業に時間を要し、
         2013年1月に稼働するためには遅くとも
         2012年9月末までに障害対応を終えて
         2012年10月末までに総合テストを完了する必要がある

     2012年8月24日に日本IBMは野村HDに
       スケジュール達成が困難であり品質上もリスクがあることを通知する

       野村HDは本件システムの稼働を断念し、
         既存のシステムを修正開発する方法を予備的に野村総研に委託する

       この時点で両社の本件システムへの出来は、
         野村HDとしてはあまりに品質が悪く完成見通しが立っていない
         日本IBMとしては約90%対応済みである

       その後、両社は開発遅延に対して検討を重ねる

     2012年10月に日本IBMが見直し計画を提案し
       システムの稼働開始を2013年9月とする

       野村HDは、同見直し計画が有効な解決策とは評価できず
         2013年1月に全ての個別契約を解除する旨を通知し、
         日本IBMに対し、総額約36億1500万円の損害賠償を請求する

       日本IBMは、総額約5億6300万円の報酬及び損害賠償を反訴する

    3.地方裁判所での裁判

     東京地方裁判所での裁判
       2019年3月20日に野村HD有利な判決
         日本IBMが野村HDに対して16億2078万円を支払う
         日本IBMの野村HDに対する請求を棄却する

       要約
         システムの最終的な出来形と見直し計画について
           双方から意見書が提出され、裁判所の専門委員の説明にも照らす
           システムは、社会通念に照らして客観的に見て、
           IBMの見直し計画によって完成が確実であったとは認められず、
           野村HDにおいて完成や円滑な移行、稼働後の運用保守を
           危惧することもやむを得ないものであった
         本来予定された時期に稼働できず、
           仮に稼働させても不具合が生じるリスクを指摘されたのは
           稼働予定時期まで4か月程度しか残されていない時期であり、
           IBMが指摘したリスクが顕在化した場合には
           野村HDの顧客へのサービスに支障を生じさせるのであって
           野村HDとしては到底許容できないものと考えられる

         2014年8月の時点で履行不能を来したものと認める
           但し、開発はフェーズごとに個別契約が締結されているところ、
           各個別契約は、システムの稼働を共通の目的としているものの、
           契約目的の達成不能と個別契約に基づく
           個別具体的な債務の履行不能とは分けて検討する必要がある

           全ての個別契約を履行不能と評価することはできない

         野村HDに生じた損害は合計約19億1300万円であるところ、
           個別契約において責任制限条項が設けられているから、
           日本IBMが賠償すべき金額は受領済み代金額に限られる

         IBMの請求については、
           債務の本旨に従った履行が無かったので請求権が発生しない

    4.高等裁判所での判決

     東京高等裁判所での裁判
       2021年4月21日にIBM有利な判決
         第一審とは正反対の判決となる
           野村HDが日本IBMに対して約1億1200万円を支払う
           日本IBMに対する請求を棄却する

       要約
         各個別契約の締結に際し、2013年1月の稼働させることは
         ビジネス上の目標であったことは容易に推認できる
         ビジネス上の目標が重要であるからといって、
         その目標がそのまま契約上の債務として合意されるとは限らない

         各個別契約は、フェーズ毎に分けて締結され、
         日本IBMが作業内容の実施を支援をすることや、
         プログラムを製作・納入することを債務として負う内容となっているが
         システムを完成稼働することや履行期限とすることが記載されていない

         したがって、各個別契約において、
         本件システムを完成して稼働させることや、
         履行期限を2013年1月とすることは、
         日本IBMの債務の内容として合意されていなかった

         各個別契約の履行不能について、
         履行が完了したものは履行不能になり得ず、
         履行が完了していないものについても準委任契約であるから、
         日本IBMとしては本件システムを完成させる義務ではなく、
         稼働を目標として誠実にサービスを提供すべき善管注意義務を負う

         本件システムが改善を要する点を多数抱えていたことは事実であるが、
         双方に原因があり、特に基本設計フェーズに入った後も
         野村HDが変更要求を繰り返して工数の著しい増大を繰り返した
         ことに、より大きな原因がある

     日本IBMには債務不履行がなく、野村HDの請求には理由がない
       日本IBMが履行を完了した部分については報酬請求権が成立し、
       履行が完了していない部分についても
         出来高払い制で支払う旨の黙示の合意を推認できるから、
         報酬請求権が発生する

     2021年12月までに上告を取り下げ、第二審の判決が確定する
       野村HDが日本IBMに対して約1億円を支払う

    5.変更要求の内容

     会社の方針は海外製パッケージソフトに合わせて業務を最適化する
       投資顧問部の次長は方針に反して自身の現行業務を維持することに固執
       追加要件を多発し、IBMに対して辛辣な他罰的、攻撃的発言を繰り返す

     概要設計フェーズの開始直後から
       要件定義書になかった追加要件が野村証券から多発する
       設計・開発やテストフェーズに入っても変更要求は続出し、
         2013年1月の稼働を諦めて総合テストの中止を判断するまで続く

       判決文で「自分の庭先をきれいにすることだけを考えている」と認定

    6.まとめ

     組織的に不備な点
       コントロールできなかった情報システム部門
       状況に振り回された日本IBM

     第二審が重視した点
       個別契約の評価違いという点と
       野村HDが業務を日本IBMに伝えるにあたって、
         特定の業務が属人化しており早期の段階で伝えることができておらず、
         システム開発部門と営業部門の意思疎通が希薄であり、
         属人化した特定の業務を担当者が改善要求を小出しにしていた

       ユーザー企業側の責任を問題視する
         工数削減提案に十分に応じなかった
         途中で追加要件を多発したりする