投稿者: 編集者

  • オンプレ回帰・クラウドリフト

    1.双方のメリット・デメリット

     オンプレのメリット・・・自社独自のシステム環境に対する親和性がある
        自社内でカスタマイズしやすい
        既存システムと連携しやすい
        コストを固定化できる

     オンプレのデメリット・・・人材と管理・運用コストが高い
       管理・運用する人材の不足
       管理・運用コストの負担が大きい

     クラウドでのメリット・・・運用管理に関する負担が軽減できる
       会社以外の場所でもアクセスできる
       運用管理における人材の負担が少ない
       運用管理のコストが抑えられる

     クラウドのデメリット・・・運用担当者や責任者から見て様々な課題発生
       セキュリティリスクの対策
       カスタマイズしていた要件をクラウドで実現させるための対応
       増大するコストへの対応
       クラウドサーバーに詳しい技術者の不足

    2.語句の定義

     クラウドリフト・・・コストを抑えながらクラウド活用の足がかりに
       オンプレ環境で構築・運用しているさまざまなシステムを
       クラウド環境にそのまま移行すること

       システム自体はそのまま変わらない、
       システムの設置場所がオンプレからクラウドに変わる
         クラウドのメリットの運用コストや人員活用の最適化が可能になる

     クラウドシフト・・・システム改修を前提に置いているため、コストが必要
       さまざまなシステムを新しいシステムに置き換えて、
       オンプレからクラウドに移行すること

       インフラが変わるだけでなく、システム自体も新しいものに置き換わる

     オンプレ回帰
       ITインフラの環境をクラウドからオンプレへ戻すこと
         クラウドに移行したさまざまなシステムを、オンプレへ戻すこと

     脱クラウド
       クラウドをやめてオンプレに戻すこと
         オンプレ回帰と同じ意味

    3.クラウドリフトの課題

    セキュリティリスクの対策オンプレ環境で構築していたセキュリティ要求をクラウド環境で構築することが難しく、クラウドリフトができないことが発生する
    セキュリティリスクに対しての対策には、一般的にコストと時間を要する
    オンプレでカスタマイズしていた要件をクラウドで実現させるための対応強化オンプレで運用しているカスタマイズしたシステムが、クラウドでも問題なく稼働するとは限らない
    クラウドで正常に動作するための手当には、セキュリティと同様にコストと時間が必要になる
    増大するコストへの対応セキュリティやカスタマイズへの対応コストだけではなく、過剰なリソースへの投資や、膨大な通信量による課金など、きちんと設計をしないと予想以上にコストが膨れ上がるケースが発生する
    クラウドサーバーに精通した技術者の不足クラウドの構築・運用に精通した技術者の確保や、入門者への教育も必要となる

    4.オンプレ回帰になる理由

    セキュリティ対応より堅ろうなセキュリティが求められたり、法規制などによって基準を改めるなど、これまでとは違ったレベルのセキュリティ対応が必要となる
    クラウドでは実効性が不足しているため、オンプレ回帰をせざるを得なくなる
    レスポンスのスピードクラウド環境に移行した後、レスポンスが遅くなったなどのクレームがあり、対応には予想以上のコストが掛かる
    オンプレの方がコストメリットがあってレスポンスも良いとなると、オンプレ回帰の検討のきっかけになりうる
    障害発生時の対応障害が発生した際にはクラウド事業者側が対応するが、障害の内容や規模によって長時間のシステム停止が発生することがある
    利用者では障害原因や再発防止策の検討ができないので、そういった対応に満足できない場合はオンプレ回帰を検討し始める
    精通した技術者不足クラウドでは精通した技術者が必要になり、オンプレ環境の技術者が不要になる
    オンプレ環境の技術者の配属替えやリスキリングが必要になる
    IT人材不足で、技術者が慢性的に不足しがちになる
    クラウド技術者の人材確保やリスキリングが十分に進まずにオンプレ回帰へと意識が向けられる
    コスト増加固定費、人件費、増大するデータ通信量など、コストが想定以上に膨らんでしまう
    クラウド化してみないと想定できないようなコストもあって、想像以上に費用が掛かりオンプレ回帰につながっていく

    5.オンプレ回帰の障壁

    システム担当者が不在オンプレ環境の構築やシステム移行、その後の運用ができない
     ・もとからIT人材の不足
     ・配置換えやリスキリング
    一括予算確保の発生従量料金制から一括予算となり、自社で調達、設計や構築を行う必要が発生する
    初期費用の負担がオンプレ回帰のハードルを一段階上げている
    スモールスタートオンプレ回帰においては、少しずつ段階を踏んで移行したいけどハードウェア一式の調達等が必須となりスモールスタートできない

  • Zoomでの機能不全

    Zoomをインストールせずに使うと、機能不全になる可能性がある
      インストールしてまでテストしていないので、気づいた点をアップする

    1.相手側に音が出ない

     共有開始時に「サウンドの共有」のオプション設定が必要
       Zoomインストール機では下記のようなオプション画面が表示される
         左下に「サウンドの共有」オプションが表示される
       Zoomをブラウザーで使っているとオプション画面はシンプル
         左下に「サウンドの共有」は表示されない

    2.画像の貼り付ができない

     相手に指摘されて気づいたこと
       Zoomインストール機では、チャット部分に画像の貼り付けが可能
       Zoomをブラウザーで使っていると、チャット部分に画像が張り付かない
         テキストの貼り付けは可能

    3.補足

     最初からインストールしている場合
       共有を開始してから音が出ないことに気づいた際には
       共有画面の右上「詳細」をクリックすると
       オプション設定のメニューが表示されるので、音声の共有を指示する

    設定メニュー

  • メールが受信できない

     メールが届かない原因と対策を考える

    1.メールアドレスが間違っている

     見落としている可能性があるので先ず最初にチェックする
       大文字が小文字、半角スペース 等々

     手打ちで入力すると間違える可能性が高いので、
       メールアドレスは必ずコピー・アンド・ペーストで入力する

    2.受信フォルダの容量が満杯状態

     メールサーバーの容量が上限に達するとそれ以上は受信できない
       受信側に残っているメール数を確認し、順次削除し受信可否を確かめる

    3.メールサーバーのトラブル

     メールサーバーの過負荷、障害による緊急停止などでサーバーが停止する
       他には人為的な操作ミス、プログラム上のバグ、メンテナンスの不備など

     サーバー会社のホームページ等で障害情報やメンテナンスの告知を確認する

    4.迷惑メールとして弾かれている

     サーバー管理会社のセキュリティシステムで弾かれる
       届くべきメールまで迷惑メールとして弾いてしまうケースがある

       原因として以下の点が考えられる
         迷惑メールでよく使われる言葉を件名や本文に使っている
         迷惑メール拒否設定が行われている
         大容量の画像や不適切な画像を添付している
         携帯キャリアが提供するメールの場合
           互いに携帯メールの送受信のみ許可している
         送信側サーバーがブラックリストに載っている

    5.迷惑メールフォルダに入っている

     迷惑メールフォルダに入っている理由(信頼性が低いと判断されている)
       独自ドメインのアドレスからのメール
       見ず知らずの方からのメール

       迷惑メールフォルダに入るとメールが届いていない状態と同じになる
         迷惑メールフォルダをチエックする

  • ソフトウェアの種類

    1.フリーウェア(Freeware)

     無料で利用することができるソフトウェア
       利用者が改変したり再配布することは認められていない
         企業から有料ソフトウェアのお試し版として公開されているもの
         個人で開発しインターネット上で公開しているもの

     無料で公開する理由
       1:広告収入
         公開することにより、広告を表示して広告収入を得る
         自動的に広告を表示するモジュール等が利用できる
           利用するには利用手数料が必要

       2:販売促進
         有償ソフトウェアの簡易版を無償で公開することにより、
           有償ソフトウェアの販促を行う
         有償ソフトウェアの機能を制限した簡易版となっている
           全ての機能を使用したい場合はライセンス購入や使用料を支払う

       3:社会貢献
         便利なソフトウェアを無償で公開する
           多くの人に使用してもらいたいという目的
         企業は社会貢献によるイメージアップ

       4:個人スキルアップ
         自身のスキルアップのために開発し、無償公開する
           利用して、様々なフィードバックを得ることが目的
           さらに便利にバージョンアップすることができる

     懸念事項
       1:有料化リスク
         最初は無償だが、有料化される可能性がある
           有料化の可能性が高く、無料での利用できなくなる恐れがある

       2:開発停止
         開発停止になる可能性がある
           個人で開発している場合は、いつ開発停止になるか分からない
           ソースコードが公開されていないので修正することができない

       3:セキュリティ
         セキュリティ対策が万全ではない
           脆弱性が見つかっても、最新版に更新されるケースは少ない
         利用する場合はリスクを伴うことを理解しておく

    2.パッケージソフトウェア(Package software)

     完成した商品として有料で販売されている、既製品
       一般事務に使うもの(ワープロ、表計算、データベース等)
       財務処理を行う財務会計ソフト
       売掛金の管理や伝票の発行を行う販売管理ソフト
       顧客データを活用する顧客管理ソフト
       給与計算ソフト 等々

     複数のソフトの機能を統合的に提供する統合ソフトがある

    3.パブリック ドメイン ソフトウェア(Public domain software)

     著作権が放棄されたソフトウェア
       自由に使用し、第三者に再配布することが可能
         厳密には、日本では著作権を放棄することができないため
           配布条件等を主張し、著作権が放棄されたと同じ扱いにする

    4.シェアウェア(Shareware)

     購入(ユーザー登録)する前に実際に使ってみることができる
       フリーウェアと区別するために用いられる言葉
       お試し期間後、支払う料金は作者に対して支払われ安価である

    5.補足

     フリーソフト
       無料で使用・複製・改変・再配布まで可能なソフトウェア
       フリーウェアと紛らわしいので注意が必要
         無意識のうちに混同しているケースが多い

     オープンソースソフトウェア:OSS
       ソースコードが公開されており、自由に入手できる
       ソースコードが自由に手に入るので、その後の扱いも自由なフリーソフト
         取り扱いに制限を設けている場合があるので注意が必要

  • 瓦礫沈淪と牆壁瓦礫

    似たような言葉の出所を探る

    1.瓦礫沈淪

     「ガレキチンリン」と読む、「瓦や小石の如く沈んでいた境遇」
       瓦・・・かわら、かわらけ
       礫・・・砂よりも大きい岩石片
       沈・・・しずむ、しずめる
       淪・・・しずむ、おちぶれる

     1581年(天正9)6月2日
       明智光秀が定めたとされる18条からなる「家中軍法」
         現物は、御霊神社が所蔵している

       戦場での規律や軍役の基準などが書かれている
         石高に応じて馬や鉄砲、槍などの供出する数を定めており、
         光秀が領地で検地を行っていたことがうかがえる

       その中に自分を取り立ててくれた
         織田信長に対する感謝の気持ちが書かれている

       作成されたのは、本能寺の変が起きるちょうど1年前

    家中軍法1


    家中軍法2

     現代語訳(文書の最後の部分)
    右のとおり軍法を定め置くうえは、実戦経験者はなお精進を怠らず、未熟の者はよく理解せよ。私は瓦礫沈淪のような低い身分から、信長さまに取り立てられて、このような莫大な軍勢を任されるまでになった。

    軍律もよくわきまえず、武勇も功績もあげない者は、国家(織田家)の穀つぶしで、公のものを掠〈かす〉め取るにも等しい。日々精進している者からは軽蔑・嘲笑の対象にもされるであろう。奮起して抜群の功績をあげたならば、必ず信長さまに報告し、重く取り立てるであろうから、この家中軍法をよく守ってほしい。 天正九年六月二日 日向守光秀

    2.牆壁瓦礫

     「ショウヘキガリャク」と読む、「すべての物事」
       牆・・・土の塀
       壁・・・かべ
       瓦・・・かわら
       礫・・・こいし

     1231年~1253年、道元が著した正法眼蔵(87巻=75巻+12巻)
       75巻のうち9巻目「古仏心」より抜粋

       国師因僧問、如何是古仏心
       師云、牆壁瓦礫。

       ある僧が、ある時、南陽慧忠に、
       「いかならんか、これ古仏心?」と質問した。
       南陽慧忠は、「牆壁瓦礫」と応えた。

       南陽慧忠国師(震旦国第六祖大鑑慧能の弟子)は中国皇帝の師匠
         「古仏心」は、「古仏」をあらしめるものではあるが、
         それは古仏だけが、その内部に固有に保有する特別な存在ではなく、
         「牆壁瓦礫」に代表される周辺世界全体の構造を包括的に示すもの
         「古仏」は一事象に集約して示し、伝授せしめる存在

           内外の逆転現象が存在していると解釈するもの

       道元禅師の拈提は、
         「無情」を含めたすべての存在が、そのままに古仏心であるとする
         
           万法を悟りとして見たもの

    3.まとめ

     似てはいるが、年代に開きがあり過ぎて両者に繋がりがあるとは思えない

  • EVM

    1.EVM(Earned Value Management)とは

     プロジェクト全体の進捗を予算や出来高、実際にかかったコストなど
       金銭価値で分析する

     コストとスケジュールを加味した進捗管理
       プロジェクトのスケジュール管理とコスト管理
         遅延やコスト超過、問題点の早期発見などに期待できる

     進捗状況を統一した尺度で把握できる
       コストとスケジュールの2つを指標にしてプロジェクト管理を行う
         2つの情報を一元管理できる

    2.前提の値

     AC(Actual Cost:実コスト)
       実際に発生したコストの合計値

     PV(Planned Value:計画予算)
       特定の時点までに完了すべき作業の予算コスト
         
     EV(Earned Value:出来高)
       計画時に想定した予算コストの合計値
         PVに進捗率を掛けて予算コストを算出する

     BAC(Budget at Completion:完成時総予算)
       プロジェクトに必要な予算の合計値
         プロジェクトの計画立案時に算出される数値
         EVを算定する際の根拠となる数字

    3.SV(Schedule Variance)

     スケジュール差異
       実績作業分の予算コストから計画段階の予算コストを減算する
         EVーPV=SV
           マイナスの数値だと計画より遅延している

    4.CV(Cost Variance)

     コスト差異
       実績作業分の予算コストから実際に掛かったコストを減算する
         EVーAC=CV
           プラスであれば、その時点までのコストが予算内である
           マイナスであれば、その時点までのコストが予算を超過している

    5.CPI(Cost Performance Index)

     コスト効率指数
       進捗に対して、計画と比べてどのくらいのコスト
         現時点で完了した作業の予算コスト「EV」を、
         実際に発生したコスト「AC」で割り算出する
         EV/AC=CPI
           1より大きければ計画していたよりもコストが発生していない
           1であれば予算どおり
           1よりも小さければ計画よりもコストを多く使っている

           1よりも大きく異なる場合は計画コストの見直しが必要

    6.SPI (Schedule Performance Index)

     スケジュール効率指数
       スケジュールの進み具合を示す
         現時点で完了した作業の予算コスト「EV」を、
         計画時に見積もった予算コスト「PV」で割り算する
         EV/PV=SPI
           1よりも大きければ当初の計画よりも進んでいる
           1であれば計画どおりに進んでいる
           1よりも小さい場合は計画よりも遅れている

    7.ETC(Estimate To Completion)

     残作業コスト予測
       現時点で完成までに残っている作業の予算コスト
        当初の総予算から完了した作業の予算コストを差し引き、
        コスト効率指数で割り算する
          (BACーEV)/CPI=ETC
            ETCは過去実績にもとづいて残りの作業コストを量れるため、
            「費用があといくら必要なのか」といった問いに答える

    8.EAC(Estimate At Completion)

     完了時コスト予測
       現時点でのプロジェクト完了時の総予算を指す
         実際に発生したコストと、残作業に予測されるコストを足算する
           AC+ETC=EAC
             将来への予測が可能となる

    9.VAC(Variance At Completion)

     完了時コスト差異
       当初の総予算から、完了時コスト予想を減算する
         BACーEAC=VAC
           プラスであれば当初の予算内に収まっている
           マイナスであれば予算を超過している

           差異が大きい場合は作業効率の改善を図る

  • DBのモデル

    1.階層モデル(hierarchical model)

     データに親子関係を持たせるモデル
       メリットは構造が把握しやすい

     代表例:IMS (Information Management System)
       IBM社のz/OS上で稼働するミドルウェア
         DC部:トランザクション・マネージャー
         DB部:階層データベース・マネージャー

    階層モデル

    2.関係モデル(relational model)

     データ群を複数の項目の「関係」(relation)として捉える
       リレーショナルデータベース(RDB)の理論上の基礎

     代表例:Oracle Database(Oracle社)
         SQL Server(Microsoft社)
         MySQL(Oracle社)

    関係モデル

    3.ネットワークモデル(network model)

     データを多対多の関係で捉える
       階層型データベースの拡張版であり、
       データ間の親子関係だけでなく、兄弟関係も持つことができる

     データ間の多対多の関連性を扱うことができ、
       データの複雑な相互関係をより適切に表現する

       リレーショナルデータベースの出現により、
         ネットワーク型データベースの人気は下降する

     代表例:製品名(見当たらず)
       在庫管理システム:1つの倉庫に複数商品、1つの商品が複数倉庫
       座席予約システム:1つの便に複数客、1人の客に複数便
    ネットワークモデル

  • IPv6拡張ヘッダ

    1.IPv4アドレスとIPv6アドレス

     IPv4アドレス
       インターネットに接続されたデバイスにはIPアドレスが割り当てられる
         接続するたびに、固有のIPアドレスが割り当てられる

    IPv4

       IPv4は32ビットで表す
         最大2の32乗(43億)までのIPアドレスが使用可能
         アドレスの数がいずれ足りなくなる

     IPv6アドレス
       1999年にIPの第6版であるIPv6の正式割り当ては開始される
         IPアドレス不足を解消し、接続制限による速度低下を解決する

    IPv6

       IPv6は128ビットで表す
         最大2の128乗(約340澗カン:澗は10の36乗)
           (340,282,366,920,938,463,463,374,607,431,768,211,456 )

    2.ヘッダのフォーマット

     IPv4ヘッダ
       赤文字のフィールドは、IPv6では削除される

     IPv4ヘッダ


     IPv6ヘッダ
       パケット転送時に必要な制御情報のみを「固定長の基本ヘッダ」に
       パケット転送時に必ずしも必要としない情報は「拡張ヘッダ」に

       IPv6パケットを受信したIPv6対応ルータは、
         パケット転送の際に固定長の基本ヘッダさえ読み取れば転送できる
         余分なヘッダを読み込まずにすみルーティング処理速度が向上する

     IPv6ヘッダ

       ヘッダチェックサムを削除する
         TCPやアプリケーション側でエラーチェックを行っているため
         IPレベルのエラーチェックは不要として削除する

       「フローラベル」を追加する
         通信経路の品質確保、経路の優先選択のために使用する

       「プロトコルフィールド」は「ネクストヘッダ」に名称を変更
         ヘッダタイプや上位層プロトコルを指定する情報

       「ネクストヘッダ」に
         TCP/UDPなどの上位層のプロトコルが指定されている場合は、
         拡張ヘッダがないと判断する

         拡張ヘッダとは
           IPv6ヘッダ以下の付加的な情報がある場合に
           基本ヘッダの後につける

  • 2022年11月

    四万十川14日、15日
    さめうら荘レイクサイドホテル  (1泊 14日)
     0887-82-1020
     〒781-3521 高知県土佐郡土佐町田井146−1
    道の駅 土佐さめうら
     0887-82-1680
     〒781-3521 高知県土佐郡土佐町田井448-2
    久礼大正町市場  定休日
     0889-59-1369
     〒789-1301 高知県高岡郡中土佐町久礼6370−2
    黒潮本陣
     0889-52-3500
     〒789-1301高知県高岡郡中土佐町久礼8009-11
    岩間沈下橋
     0880-35-4171
     〒787-1321 四万十市西土佐岩間
    足摺サニーサイドホテル  (1泊 15日)
     0880-88-0331
     〒787-0316 高知県土佐清水市松尾19-2
    足摺黒潮市場  貸切のため入店できず
     0880-83-0151
     〒787-0303 高知県土佐清水市清水932番地5
    祖谷そば もみじ亭  時間外になり素通り
     0883-84-1117
     〒779-5451 徳島県三好市山城町西宇1468-1
  • DNSエラーの発生

     「DNSサーバーが応答しません」とエラー表示される

    1.DNSの説明(口頭で要点のみ)

     DNS (Domain Name System) とは
       ドメイン名とIPアドレスを変換する仕組みを提供しているサーバー
       英数字のドメイン名(例:https://www.kantei.go.jp/)と
       IPアドレス(例:192.168.256.256) を紐づける役割を担う

       ブラウザにWebサイトのURLを入力すると
       受け取ったサーバーはURL上のドメイン(Domain)を探す
       世界中のサーバーから該当するIPアドレスを割り出す
       後はブラウザーとサーバーがやり取りをして処理が進む

     DNSエラーとはこの関係が築けなかった時に発生する

    DNSエラー

    2.エラーの原因

     よく考えられる5つの原因
       ・インターネットに接続していない
       ・DNSサーバーに接続されていない
       ・サーバーのサービスが停止している
       ・一時的なアクセスの不具合
       ・ネットワーク構造が共有になっている

    3.原因究明

     上記の原因を丹念に調べるには時間が必要となる
       例えば、接続されているかどうかを確認するだけでも
         近くのルーターまで無線(有線)で繋がっているか?
         ルーターの先のプロバイダーまでつながっているか?
         プロバイダーから先のDNSサーバーに繋がっているか?
         IPアドレスのサーバーに繋がっているか?

         順番に考え付くケースを潰していくにはかなりの時間が必要
           さらに5つのケースを漏れなく潰すことは考えられない
       
       先ず周りを確認する
         何事もなく周りの人はネットワークが使えているか?
         何事もなく使えていれば、エラーは本人だけと判断する

    4.最初の対処法

     隣人に目的のサイトにアクセスしてもらう
       上手く繋がれば明らかに本人だけと考える

     PCについて、他のアプリは動いているか?
       動いていれば、起動時に何か不都合があったと考える

     ここまで対処したら、後は何も考えずにPCの電源を切って、再立ち上げする
       <経験則だが>大体これで解決する

  • Highlighting Code Block

    「Highlighting Code Block」にJava言語を追加する

    1.WordPressのメニューを更新

     Wordpressの「管理者」メニューから「設定」 > HCB設定を選択する

       

     最下段に「java:”Java”,」を追加する(カンマまでを含む)
       次に「変更」を押下して保存する

     そのままメニュー画面の「ヘルプ」項目の「こちら」をクリックする

    HELP項目

     以下の画面が連続で表示される

        

     Javaにチエックを入れて、JsとCSSの両方をダウンロードする

     もう一度メニュ画面に戻って

    メニュー画面

     独自カラーリングファイル、独自prinsm.jsの場所を指定する
       指定された場所に各ファイルを設置する

     変更を保存して言語の追加は終了

    2.更新結果の確認

     結果の確認をする・・・現時点では上手くいかない(?)
                  原因調査中(2024.05.27)

  • 宇宙とは(村山斉と子ども達)

    「Tech Support」の日本版、初会放送から

    宇宙の星の数は地球上にある砂粒より多い?人間の目に見える砂粒に限って言うと、宇宙の星の数の方がズット多い
    宇宙の星は当方もなく多いのに、夜空が星の光でいっぱいにならないのはなぜ?138億年前に誕生した宇宙は、138億年より前の光は届いていないので見える星の数には限界があり、夜空は明るく成らない
    今後、星座の形は変わることがあるか?千年も経つと変わって見えます、近くの星ほど早く動くので変わって見えます
    宇宙の空間は真空ですか、それとも何かの物質で満たされているのか?真空ではなくダークマターで満たされている、ダークマターのおかげで星も銀河も生まれてきた
    宇宙には空気が無いのに、どうして爆発したり熱が生まれるのですか?地球上のモノが燃えるのと違って、原子核が集まるときに巨大なエネルギーが生まれる
    空気や酸素が無くても、星は重さをエネルギーに変えて爆発し熱を発生させている
    太陽系が人間の大きさだとすると、銀河の大きさは?地球の2~3倍の大きさ
    宇宙の外側は今後観察されるのか?
    現時点でどのようなことが分かっているのか?
    時間が経てば138億光年よりも前の光が届くようになる、そうすれば遠くの星も見えるようになる
    宇宙の大きさは数千億光年よりは大きいと考えられている
    宇宙ができる前の空間には何が有ったのか?
    膨張できる空間が有ったのでしょうか?
    ビッグバンの前には時間も空間も無かっただろうと考えられているが、本当のところは誰も分からない
    宇宙の外に空間が有るのではなく、宇宙そのものが膨張しているので、宇宙の外には別の宇宙が有ると考えている
    ビッグバンがあったことはどうして分かるのか?ビッグバンの様子は写真に撮ることができている、全天空から138億年前からの光が届いている
    球体の真ん中が地球だとすると、球体の全方向から光が届きムラのある写真が撮れる、帯のようになっているのは天の川銀河が光っている結果
    最初に生まれた星は?ビッグバンの後、暫くは暗黒の時代
    最初に生まれた星(銀河)はまだ見つかっていない、いずれ観測できるでしょう
    素粒子物理学の観点から、パラレルワールドは存在しますか?今知られている宇宙は出来すぎていると思われるほどよくできている、沢山出来た中でたまたま今の宇宙が残っている、と考えると
    パラレルワールドがあっても良いのではないか
    今いる宇宙が次の瞬間に消滅する可能性はありますか?ありません
    宇宙が消滅した事例が見当たらないので、消滅すことはあり得ない
    いつか分からないが、徐々に別のステータスに移り、消滅することは有るかもしれない
    ブラックホールより引力が強い星はありますか?
    それがブラックホールに衝突するとどうなりますか?
    ブラックホールの容量オーバーはありえますか?
    ブラックホールより強い引力の星もブラックホール
    小さいブラックホールの方が引力は強い
    周りのモノをどんどん引き込んで、大きくなっているので容量オーバーにはならない
    地球外生命体を探すのに、水と酸素を基準に探すのですか?原子でできた生物は、おそらく栄養を循環させるには水が必要、色々なものを吸収して活性化させるのは酸素が必要
    水と酸素を必要としない生命体もいるかも知れないが、とりあえず水と酸素のある星を探しています
    光速で飛べば数百光年先に行けるのでしょうか?光速に近い速さだと時間が遅れます
    実験でも確かめられています
    宇宙旅行にワープできる可能性はありますか?自分に都合のよいワープは出来ないのではないか、初めから宇宙にワープできるルートがあればワープの可能性があります
    宇宙を構成する物質は一定ですか?物質の総量は時々変わります、ガスがぶつかると物質と反物質ができあがり総量が変わります
    宇宙誕生の際にはエネルギーが物質になり、物質がまたエネルギーに変わっていた
    宇宙は段々と冷えてきて安定してきた、今では物質の総量は一定ではないかと考えている
    21世紀の内に人類はどこまで宇宙を解明できますか?宇宙の始まりの星やダークマターの探索が引き続き行われ、色々なことが発見されるでしょう
    しかし宇宙のことが全て分かるのは21世紀よりまだまだ先だと思います
    宇宙を知ることの魅力はなんですか?宇宙を知ることは自分を知ること
    自分たちは宇宙のチリからできています、宇宙を知るということは私たちがどこから来て、どこは行くかを知ることになります

  • USBとは

    Universal Serial Bus の頭字語

    1.バージョン

    規格仕様
    USB4 Version 2.02022年発表
    最大80Gbpsの転送速度に対応
    従来のUSB4はUSB4 Version 1.0と区別されるようになる
    新たに「USB 5Gbps」「USB 10Gbps」「USB 20Gbps」「USB 40Gbps」の名称が登場する
    USB42019年発表
    USB3.2 Gen1の8倍、USB 3.2 Gen2の4倍である最大40Gbpsの転送速度に対応
    コネクタの規格は全てUSB Type-Cに統一された
    USB 3.22017年発表
    従来のUSB 3.1 Gen1とUSB 3.1 Gen2はそれぞれ、USB 3.2 Gen1とUSB 3.2 Gen2と改名され、新たに転送速度20GbpsのUSB 3.2 Gen2×2が策定される
    USB 3.12013年7月に発表
    USB 3.1 Gen1とUSB 3.1 Gen2が策定
    USB 3.1 Gen1は以前のUSB 3.0と同等の転送速度5Gbpsであるのに対し、USB 3.1 Gen2はその約2倍の10Gbpsまで転送速度が向上している
    USB 3.02008年11月に発表
    転送速度が5GbpsとUSB 2.0と比べて約10倍に向上し、超高速データ転送ができるインターフェースとして普及が進む

    1.1/2.0と区別するため、コネクタのソケット部分は青色
    USB 2.02000年4月に発表
    USB 1.1の規格仕様にHi-SPEEDモードを追加したことで、USB 1.1と同じコネクタを使いながらも約40倍のデータ転送速度(480Mbps)を実現した
    USB 1.11998年9月に発表
    USB 1.0の規格仕様が電源管理等の面で改善される
    転送速度は最大12Mbps
    USB 1.1が登場したのはWindows 98やiMacが登場した年で、これらが標準でUSBに対応したことからUSBは大きく普及した

    2.コネクター

    規格仕様写真
    USB Type-A(2.0)パソコン側のUSBポートによく見られる最も標準的な形状、主にキーボードやマウス、プリンター、外部ハードドライブなどの接続に使われている

    スマートフォンなどを充電する際に使用するAC充電器のポートにもあり、一般的ではありますが、最近ではUSB Type-CのものやUSB Type-CとType-Aのどちらも使用できるものが増えている
    USB Type-A(3.0)形状はUSB Type-A(2.0)と同じ、USB Type-A(2.0)の約10倍もの速さで転送することが可能

    2.0と3.0の違いは、端子内部の色(青色)を確認することで見分けることができる

    USB Type-Aコネクターの内部には上下があり、接続する際は端子の向きに注意が必要

    コネクター中央に凸凹の縦線が入っている方(プラスチック部品のある方)が下です
    USB Type-B(2.0)正方形の2つの角が削られたような形状のコネクター、主にパソコンと接続するプリンターやスキャナー、HDD等のパソコン周辺機器に使われている
    USB Type-B(3.0)USB Type-B(2.0)端子の上部に端子が追加されたような形状のコネクター、転送速度を重視するパソコン周辺機器に使われている
    Mini USB Type-B正面から見ると少しくびれて見える形状のコネクターで、一部の古いデジタルカメラやドライブレコーダーなどに使われている

    Micro USBが普及してからはあまり使用されなくなる
    Micro USB Type-B(2.0)Mini USBのサイズを小さくしたような形状、薄く抜けにくい

    最近ではUSB Type-Cが使われるようになっている

    一方でハンディファンやモバイルバッテリーなどの一部では未だに使われている製品もある
    Micro USB Type-B(3.0)Micro USB Type-B(2.0)コネクターを横に延長したような形状、中央部分に窪みがあるのが特徴

    ポータブルHDDや外付けDVDドライブなどの接続に使われている
    USB Type-Cコネクター形状に表裏がなく、どちらの向きでも接続可能な小型のコネクター
    Androidスマートフォンやタブレット、iPad、MacBook、パソコン等の充電、データ転送などに使われる

    高速充電することができる「USB PD」に対応した機器が増えている

  • メモリー

    1.メモリーの種類

     メモリは「揮発性」と「不揮発性」の2種類に分かれる
       揮発性:コンピュータの電源を切ると記録内容が消えてしまうメモリ
         Random Access Memory
           DRAM、SRAM
       不揮発性:コンピュータの電源を切っても記録内容が消えないメモリ
         Read Only Memory
           マスクROM、PROM、EPROM、EEPROM

    2.SRAM(Static RAM)

     特徴
       小容量(~288Mb)
       アクセス速度が高速
       ビット単価が高い
       用途はキャッシュメモリ
       アクセスが単純
       消費電力高

    3.DRAM(Dynamic RAM)

     特徴
       大容量(~16Gb)
       アクセス速度が低速
       ビット単価が安い
       用途は主記憶装置
       アクセスが手間
       コマンド制御
       リフレッシュ必要(一定時間に電荷を注入する)
       消費電力小

    4.マスクROM

     記憶装置の一種で記録されている内容を書き換えることができない
       プログラムやデータをあらかじめメモリ内に書き込まれた状態で
       工場から出荷され、以降は内容を書き換えることができない

       フォトマスク(photo mask)と呼ばれる部品を使うことから
         マスクROMと呼ばれている

    5.PROM(Programmable ROM)

     記憶装置の一種で基本的には記録されている内容を書き換えることができない
       特定の機器を使うことで記憶内容の消去と書き込みができるメモリ

    6.EPROM (Erasable Programmable ROM)

     内容を消去して別の内容に書き換えることができる
       すべて消去して再度書き込むという形

     単にEPROMと言った場合は、紫外線を用いる「UV-EPROM」のこと
       チップを封入したICパッケージの上面の一部がガラス窓になっており
       ガラス部分からメモリチップ表面が覗いている
       専用の装置で紫外線を照射すると記録が抹消される

    7.EEPROM(Electrically EPROM)

     特別な装置を必要とせず、組み込んだまま電気的に内容を消去・書き換える

     発展し改善したメモリ素子を「フラッシュメモリ」(flash memory)という
       大規模な利用に耐える特性や性能を持ち、
       ディスクに代わって高速なストレージ装置として普及する

  • 2022年8月

    白浜11日、12日
    南紀白浜マリオットホテル  2泊(11日、12日)
     0739-43-2600
     〒649-2211 和歌山県西牟婁郡白浜町2428
    白浜kappou kawanishi
     0739-43-3078
     〒649-2211 和歌山県西牟婁郡白浜町511-1
    幸鮨
     0739-42-4027
     〒649-2211 和歌山県西牟婁郡白浜町新地1405-15
    とれとれ市場
     0739-42-1010
     〒649-2201 和歌山県西牟婁郡白浜町堅田2521
    紀州なぎさの駅 水門まつり
     0735-62-7787
     〒649-3503和歌山県東牟婁郡串本町串本1557-20
    橋杭岩
     0735-62-3171
     和歌山県東牟婁郡串本町鬮野川
  • シニアプログラミング発表会 #3

     第3回 7月21日(木)

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

    発表者

    Scratchで楽しむゲームと童謡高見さんScratch
    神経衰弱ゲーム
    童謡「かごめかごめ」
    ①https://scratch.mit.edu/projects/5524…
    子供等と一緒に楽しむプログラミング胡中 俊雄さんScratch
    ゲーム「すごろく」
     鬼滅の刃がモチーフ
    シニアが楽しむプログラミング芳野 洋一さんScratch
    魔法陣の作成(3X3=9)
     縦横斜を足して15になる様に
    人生の先輩たちと楽しむScratch紙屋 郁子さんScratch
    日本の四季
    ①https://scratch.mit.edu/projects/714887880
    2022 Laughter Yoga能 明彦さんScratch
    七福神ラフター
    ①https://scratch.mit.edu/projects/624453320
    今日の貴方の運勢は?KOTOMIさんScratch
    貴方の今日の運勢占います
  • Git講座(第二回)

     第2回 6月22日(水)

     次回、7月の開催日は未定

    入手情報
    ・プルリクのやり方
       ローカルに対象ファイルを「クローン」する
       修正する
       プルリクして修正点をレビューしてもらう
       OKになると元のファイルへマージする

    ・fetchとpullが2つある理由
       fetch・・・サーバーからファイルを取ってくる、だけ
       pull・・・・fetch+mergeを同時に行う

       masterとoriginを別々に定義しておくと
         fetch先やpull先がどれかと迷わずに済む
    講習会 テキスト(furandon-pig)・・・前回使用分
    ①https://github.com/furandon-pig/senior-programming-memo/blob/main/memo/git/github.md
    Markdown記法
    (紹介)
    マークダウン記法について
    ①https://notepm.jp/help/how-to-markdown

    チートシート
    ①https://gist.github.com/mignonstyle/083c9e1651d7734f84c99b8cf49d57fa

    文章をマークダウン形式で記述すると
      GitHubが勝手に文章を整形してくれる
    mermaid記法
    (紹介)
    JavaScriptベースの作図ツール
    ①https://dev.classmethod.jp/articles/hotlimit-mermaid/
    ②https://zenn.dev/yasuhiroki/articles/dd0feae790ba41

    「マーメイド」を使ってマークダウンファイルに記述すると
      インラインでGitHubが図示してくれる(2022.02.14発表)

  • Git講座(第二回)

     第2回 6月22日(水)

     次回、7月の開催日は未定

    入手情報
    ・プルリクのやり方
       ローカルに対象ファイルを「クローン」する
       修正する
       プルリクして修正点をレビューしてもらう
       OKになると元のファイルへマージする

    ・fetchとpullが2つある理由
       fetch・・・サーバーからファイルを取ってくる、だけ
       pull・・・・fetch+mergeを同時に行う

       masterとoriginを別々に定義しておくと
         fetch先やpull先がどれかと迷わずに済む
    講習会 テキスト(furandon-pig)・・・前回使用分
    ①https://github.com/furandon-pig/senior-programming-memo/blob/main/memo/git/github.md
    Markdown記法
    (紹介)
    マークダウン記法について
    ①https://notepm.jp/help/how-to-markdown

    チートシート
    ①https://gist.github.com/mignonstyle/083c9e1651d7734f84c99b8cf49d57fa

    文章をマークダウン形式で記述すると
      GitHubが勝手に文章を整形してくれる
    mermaid記法
    (紹介)
    JavaScriptベースの作図ツール
    ①https://dev.classmethod.jp/articles/hotlimit-mermaid/
    ②https://zenn.dev/yasuhiroki/articles/dd0feae790ba41

    「マーメイド」を使ってマークダウンファイルに記述すると
      インラインでGitHubが図示してくれる(2022.02.14発表)

     第1回 5月19日(木)

    レジメ使用 テキスト
    ①git講習
    講師作成資料講習会 テキスト(furandon-pig)
    ①https://github.com/furandon-pig/senior-programming-memo/blob/main/memo/git/github.md
    参考資料途中での参照(サル先生のGIT入門)
    ①https://backlog.com/ja/git-tutorial/intro/02/

  • Git講習 (途中)

    gitとは?

    gitは「バージョン管理システム」と呼ばれる類のツールです。gitを利用することでソースコードの変更を管理したり、他の開発者と変更内容を共有することが可能になります。

    バージョン管理システム

    アプリの作成においては、バグの修正や新しい機能を追加するためにソースコードを頻繁に修正・変更します。そうしているとアプリがビルドできなくなったり動作がおかしくなってしまう(バグが入り込んでしまう)ことがあります。

    バージョン管理システムを利用することで、ソースコードが壊れてしまった場合に正しく動いていた状態まで戻したり、新しい機能を追加するために、現行のバージョンと一時的な開発バージョンを分けた形で開発を進めることも可能になります。

    補足:git以外のバージョン管理システム

    バージョン管理システムはgitだけでなく、rcs(Revision Control System)、cvs(Concurrent Versions System)やSubversion、Azure DevOps Serverなどがあります。

    歴史的な経緯から見ると、当初は単一ファイルのソースコードについて変更管理していたものから、複数人での開発を可能にするため「リポジトリ」によるソースコードの集中管理(ただし変更をマージする場合は一度に一人だけが作業可能)を経て、リポジトリを分散させ、各人が任意のタイミングでリポジトリへの書き込みが可能になった、等々の機能が拡充された流れになっています。

    gitはこのバージョン管理システムにおいて比較的新しい部類であり、現代的な開発作業にマッチする機能がサポートされています。
    (ただ、これは見ようによっては機能が複雑で学習コストが少々かかるという意味合いにもなります)

    補足:gitとGitHub

    “git”の名前がついたものにGitHubがあります。これらは名前が似ていますが全くの別物となっています。gitは「バージョン管理システム」に分類されるツール(コマンド群)ですが、GitHubは「gitのリポジトリをホスティング(あずけて置ける)するプラットフォーム」となります。

    このような違いから、GitHubにはgitには存在しない「プルリクエスト」のような機能が存在しています。

    バージョン管理システムを利用する際に必要となる概念

    現代的なバージョン管理システムは「分散したリポジトリを各開発者がコピーして作業する」という概念を含める形で実装されており、git以外のバージョン管理システムにおいても、以下の概念はほぼ共通しています。

    • リポジトリ
    • クローン(チェックアウト)
    • 差分
    • コミット
    • ブランチ
    • プッシュ/プル
    • マージ

    リポジトリ

    リポジトリは「ソースコードの変更を管理する入れ物」になります。例えば、家計簿アプリやToDoアプリといった各アプリケーションのソースコードををバージョン管理システムで扱う場合は、「家計簿アプリのリポジトリ」と「ToDoアプリのリポジトリ」のようにリポジトリ単位で変更を管理する形になります。

    さらにこのリポジトリは一か所だけでなく、複数個所に分散して置いておくことも可能です。この場合、複数個所のリポジトリで異なる修正内容が管理される形になりますが、リポジトリ間での同期処理が可能であり、任意のタイミングでリポジトリの内容を一致させることができます。

    flowchart LR
        repo[(リポジトリ)]
        src1(ソースコードA)
        src2(ソースコードB)
        src1-->repo
        src2-->repo

    クローン(チェックアウト)

    クローンは「任意のリポジトリを自分の作業環境にコピーしてくる処理」になります。リポジトリは同じものを分散させておくことが可能で、各開発者は既存のリポジトリの内容を自分の環境にクローンしておき、そのリポジトリに対して変更を反映してゆく形になります。

    ある程度修正がまとまったら、クローン元のリポジトリに変更を反映させる(後述しますがこれは「プッシュ」と呼ばれる作業です)ことも可能です。

    flowchart LR
        repo[(リポジトリ)]
        repo2[(リポジトリ)]
        repo3[(リポジトリ)]
        repo-- クローン --->repo2
        repo-- クローン --->repo3
        repo2-- プッシュ --->repo
        repo3-- プッシュ --->repo
        repo2-->開発者A
        repo3-->開発者B

    差分

    ソースコードに変更を加えることで、リポジトリで管理されている内容と違いが発生します。これは「差分」と呼ばれ、開発者自身が修正箇所や修正内容を確認したり、他の開発者が修正内容をレビューする際に用いられます。

    一般的に、バージョン管理システムはこの差分をリポジトリに記録しておくことで、いつどんな変更がソースコードに加えられたかを管理しています。

    コミット

    コミットは「差分」の内容をリポジトリに記録する作業になります。この時に「この差分はどのような修正であるか」と記載したコミットメッセージを付与することができます。

    コミットを行うタイミングには特に決まりはありませんが、差分の内容がリポジトリで記録・管理されることから、追加した機能毎やバグの修正毎にコミットすることで後から修正内容を確認したり思い出しやすくなります。

    flowchart LR
        repo[(リポジトリ)]
        開発者-- コミット --->repo

    ブランチ

    リポジトリは差分単位での変更内容を記録・管理しますが、一連の差分は「ブランチ」というまとまりで扱われます。
    (デフォルトでは”main”または”master”ブランチで管理されます)

    例えば、アプリに大きな機能追加を行うと、差分だけでもかなりの量となり、それに伴いコミットも複数回発生します。このような場合はデフォルトのブランチから別途「new_featureブランチ」のように分岐させた状態で開発を進めることで、元のブランチには修正に伴うバグの発生といった影響が出なくなります。一通りの機能追加・動作確認とテストが完了した際には、デフォルトブランチにマージします。

    プッシュ/プル

    プッシュ/プルは別リポジトリに対して自分のリポジトリ内の修正内容を送り出したり、逆に別リポジトリからブランチを取り込んだりする作業です。

    flowchart LR
        repo[(リポジトリ)]
        repo1[(リポジトリ)]
        repo1-->開発者
        repo-- プル -->repo1
        repo1-- プッシュ -->repo

    マージ

    マージは別ブランチの内容を取り込む作業です。例えば機能追加用にnew_featureブランチで作業していたものをデフォルトのブランチに取り込む、といった場合に使用します。

    ただし、マージにおいては「衝突」という、ソースコードの同じ行の修正内容に矛盾が発生する状態に陥ることがあり、この場合は人間が手動で衝突を修正してからマージすることになります。

    flowchart LR
        repo[(リポジトリ)]
        repo1[(リポジトリ)]
        repo1-->開発者
        repo-- プル -->repo1
        repo1-- プッシュ -->repo
        repo1-- マージ --->repo1

    gitを使う

    gitはバージョン管理システムを扱うためのコマンド群であり、基本的にはコマンドラインから”git”コマンドを使って操作します。ただ、現在のIDE(Integrated Development Environment;統合開発環境)においてはgitクライアントとしての機能が組み込まれているものもあり、直接gitコマンド触らなくても作業できる場合があります。

    例えば、Visual Studio Codeにはgitクライアントの機能が含まれており、(別途gitをインストールする必要はありますが)エディタからgitの機能を利用できます。Xcodeでgitを使う場合はこちら(?)も参照してください。

    gitのインストール

    エディタのインストール

    gitの利用に必須ではありませんが、エディタからgitを扱うことを想定し、Visual Studio Code(VSCode)をあらかじめインストールしておきます。

    VSCodeはgitクライアントの機能を内蔵していますが、内部的にgitコマンドを使用するため、別途gitのインストールが必要となる点に注意してください。また、以下のVSCode拡張をインストールしておくと、gitの履歴確認が行いやすくなります。

    • Git History
      *Ctrl+Shift+X で拡張機能を表示し、「Marketplace で拡張機能を検索する」の入力欄に”git”と入力すると、インストール可能な拡張機能の候補としてGit Historyが表示されます。

    Windowsの場合

    Windowsの場合は、以下のURLからgitをインストールしてください。

    • https://git-scm.com/download/win

    macOSの場合

    macOSの場合はデフォルトでgitコマンドがインストールされているかと思います(要確認)。

    gitがインストールされているかどうかは、ターミナルから以下のコマンドを実行することで確認できます。 which git コマンドがgitコマンドのパスを返せばgitがインストールされています。

    $ which git
    /usr/bin/git

    gitを使用するための初期設定

    gitでコミットを行う際、コミットを行った人の名前とメールアドレスが差分ととともに記録されます。そのため、あらかじめ名前とメールアドレスを設定しておかないとコミット時にエラーとなります。

    コミットを行う人の名前とメールアドレスの設定は以下のコマンドで行います(Windows/macOS共に設定コマンドは共通です)。

    Windowsの場合は「スタートボタン」-「Git」-「Git Bash」で起動したシェルで実行し、macOSの場合はターミナルから実行してください。

    $ git config --global user.email "furandon.pig@gmail.com"
    $ git config --global user.name "furandon-pig"

    設定が完了すると、 ~/.gitconfig に設定が書き込まれます。

    $ cat ~/.gitconfig
    

    [user]

    email = furandon.pig@gmail.com name = furandon-pig

    リポジトリを作成する

    それでは実際に自身のPC内にgitリポジトリを作成してみます。ここではベア(bare)リポジトリという形態のリポジトリを作成してみます。

    ベアリポジトリの概要については、GitHubの解説に出てきますので興味のある方はそちらを参照してください。

    また、リポジトリの作成手順はWindows/macOSのいずれでも同じ手順となります。

    ベア(bare)リポジトリの作成

    ベアリポジトリは以下の手順で作成します。

    $ # /repoは任意の場所に変更しても構いません。
    $ mkdir /repo/hello.git
    $ cd /repo/hello.git
    $ git init --bare .

    リポジトリをクローンします。

    $ git clone file:///repo/hello.git
  • GIT講座(第一回)

     第1回 5月19日(木)

    レジメ使用 テキスト
    ①git講習
    講師作成資料講習会 テキスト(furandon-pig)
    ①https://github.com/furandon-pig/senior-programming-memo/blob/main/memo/git/github.md
    参考資料途中での参照(サル先生のGIT入門)
    ①https://backlog.com/ja/git-tutorial/intro/02/

  • ソフトウェア保守

    1.JIS規格(JIS X 0161)

     2006年に第2版として発行されたISO/IEC 14764を基に
       技術的内容及び対応国際規格の構成を変更することなく作られる

       2008年に改訂されJIS X 0161:2008になる
         ※何度も読み返したが、改訂量が多くてポイントが絞りきれない
           JIS X 0161のままで記述する

     以下の4種類にソフトウェア保守は分類される
       是正保守・予防保守・適応保守・完全化保守の4つ
         是正保守の一部で一時的な修正のことを緊急保守という

       目的によって2つに分類される
         訂正が目的の是正保守、予防保守
         改良が目的の適応保守、完全化保守

    2.是正保守

     発見された問題を解決する
       ソフトウェア製品の引渡し後に発見された問題を訂正するために行う

    3.予防保守

     潜在的な障害の原因を発見する
       引渡し後のソフトウェア製品が障害になる前に発見し是正を行う

    4.適応保守

     利用環境に合わせて修正する
       引渡し後、変化した又は変化している環境において、
         ソフトウェア製品を使用できるように保ち続けるために実施する修正

    5.完全化保守

     性能や保守性を検出する
       引渡し後、パフォーマンスや保守性を向上させるための修正
       機能追加や変更、性能強化、プログラム文書の改善などを含む

    6.緊急保守

     計画外に行われる一時的な修正

  • お役立ちサイト

    1.応用技術

    Teachable Machine
    最強のじゃんけんマシンを作ってみた
    2022-04-22
    Teachable Machine
    紹介と使い方
    2022-04-22

    2.勉強会

    シニアプログラミングもくもく会(Git)フランドンさんのメモ
    サル先生のGit入門
    Markdown記法チートシート
    ナップサック問題の解法 for Python
    サルでもわかる人工知能 Vol.2ナップサック問題の解法
  • シニアプログラミング発表会 #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/

    任意団体等のクラウド会計処理
  • WordPressを使いたい

     ホームページビルダー(HPB)とWordPress(WP)の話

    1.WPを使ってみたい

     話の流れの中でWPについて興味を示される
       どういったものかを一通り説明する

     HPBにWPの機能が有り、HPBでWPが使えると説明する
       さらに興味を示される

    2.HPBを動かしてみる

     質問者のHPBで機能の確認を取ろうとして、HPBを起動する
       WPの投稿記事を書こうとする、が初見では書けない(使えない)

       ”HPBでWPを使おう”という考えが間違いだとわかる
        以下は間違っていた理由  

    3.HPBの記述内容

     HPBの使い方説明(記述)が”2階建て”になっている
       WPを説明し、次にHPBを説明する(丁寧に両方を説明する形式)
         勿論、逆の場合もあると思われる?

       おのずと両方の仕様を理解しながらの使い方となる・・・点が①

    4.ジャストシステムのサポート

     「WPに関するサポートは一切しない」と既に明言されている・・・点が②
       ”クラシックのフルCSS”をお勧めしサポートすると発表されている

    5.まとめ

     以前はHPBからWPが使えたかもしれないが
       度重なるWPのバージョンアップに
         ジャストシステムは付いていけないと判断したか?

     上記の①と②からも
       HPBとWPは別物としての使用を検討されたらどうか、と返答する

     ※補足(今後の方針として)
       現在ある程度HPBを使いこなしているなら、別途WPに挑戦する
       現在HPBの使用もままならないなら、WPを考えずにHPBに専念する

  • コメントが付くようにして欲しい

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

    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を攻撃対象のアドレスに偽装したパケットを大量に送信し、
       応答を攻撃対象のコンピュータに送り付けてダウンさせようとする攻撃

  • 仏教用語

    1.地鎮の作法

     屋敷地取作法・・・屋敷を構えるための作法
       公益財団法人和歌山県文化財センター シンポジウムや報告会の要旨集
         地宝のひびき-和歌山県内文化財調査報告会資料集 2018-07-14
           金剛峯寺境内出土の地鎮・鎮壇具を参照

       やしきちとりさほう
         日本の中世から近世にかけての土地の利用や
         宅地(屋敷地)の配置・取得・整備に関する習慣や作法を指す

         特に中世や近世の村落構造や武家屋敷の形成、
         あるいは寺社や町屋の配置などを研究する文脈で使われる

     真言宗 中院流
      真言宗(東密)の事相(じそう)の法流の一つ
      明算メイザン(中院阿闍梨)が派祖
      小野流系の法流

    2.逆修銘

     「逆修」とは
      生前に自分の冥福を祈り死後は浄土へ住めるよう祈念すること

     「銘」とは
      一石五輪塔のように名前を刻んだもの

     「五輪塔」とは
      5つの形から形成され
        下から四角形、円形、三角形、半円形、宝珠系の順で
        下から地・水・火・風・空を表す

      インドから日本の密教に伝わり、
        五大要素を五輪とし、塔としたのが五輪塔

  • 参考文献

    1.各研究者による論文

     川西宏幸・・・円筒埴輪総論・・・全国レベルで編年が分かる

     和田晴吾・・・古墳時代の王権と集団関係・・・「様式」で区分分け

     広瀬覚・・・ 古代王権の形成と埴輪生産
       https://ameblo.jp/ufjtmb26/entry-12399880533.html

     岸本直文・澤田秀夫・・・前方後円墳の築造規格からみた古墳時代の政治的変動の研究・・・古墳の相似形の研究
        https://kaken.nii.ac.jp/ja/grant/KAKENHI-PROJECT-13410120/

     都出比呂志・・・古墳時代首長系譜の継続と断絶
        https://ir.library.osaka-u.ac.jp/repo/ouka/all/48039/mrh_022_001.pdf

    2.古墳の見方

     犬木教授の考え
      ・墓制の共有/葬制の共有
         見えない部分の共通性

      ・基本形と変容
         非中央の古墳分布の重要性

      ・上下の関係ではなく斜めの関係

  • 近似値の求め方

    1.オイラー法

     常微分方程式の数値解法の一つ
       数学的に理解しやすく、プログラム的にも簡単
       数値解析の初歩的な学習問題としてよく取りあげられる

       常微分方程式に初期条件を与えることで,
         未知数を含まない形で書けるような問題を「初期値問題」と呼び
         微分方程式の数値解法は初期値問題を解くことを目的とする

       x0 から x1 のような幅が刻み幅に相当する区間において,
       傾きが f(x0,y0) で一定であると仮定して近似解を求める
         傾きは一定では無い,近似が正確となりうるのは,h→0 の極限のみ

    2.ガウスの消去法

     連立一次方程式を解くアルゴリズムの一つ
       拡大係数行列を行基本変形することで解を求める
       掃き出し法とも呼ばれる

     ガウスの消去法は
       前進消去(文字を1つずつ消していく操作)
         方程式の定数倍を他の方程式に加えることで文字を順番に消していく

         元の式

           一番目の式を −1 倍し二番目の式に加える
           一番目の式の −2 倍を三番目の式に加える

         計算する(x1​を消す)

           二番目の式を 1/3 倍し三番目の式に加える

         計算する(x2​を消す)

         これで「目標の形」x3=2が求まる

       後退代入(1成分ずつ答えを求めていく操作)
         後ろの式から順番にたどっていき,1つずつ変数の値を求めていく
           x3=2を二番目の式に代入する −3*x2 + 5x2 ​= 1
                           x2=3
           x2=3、x3=2を一番目の指揮に代入する x1 + 2*3 -2*2 = 3
                           x1 = 1
       これでx1 = 1、x2=3、x3=2が求まる

    3.シンプソン法

     区分求積法
       より次数の高い関数で近似できた方が誤差が減少する可能性がある
         2次関数を表現する場合には3点を利用する必要があり,
         2つの区分を利用する必要がある

    $$ 3点を以下のように考える x_{0}、x_{1 }、x_{2 },その関数値をf_{0}、f_{1 }、f_{2} $$
    $$ 2次関数がx_{0}でf_{0}を通ることから, $$
    $$ 2次関数の係数をa,b,c(=f_{0})とし f_{x}=a(x−x_{0})^2+b(x−x_{0})+f_{0} $$
     同時に他の2点を通るということから
    \begin{equation}
    f_1 = a(x_1-x_0)^2+b(x_1-x_0)+f_0
    \end{equation}
    \begin{equation}
    f_2 = a(x_2-x_0)^2+b(x_2-x_0)+f_0
    \end{equation}
    $$ x_1-x_0=h、 x_2-x_0=2hを代入して計算すると $$
    以下のようなaとbに関する連立方程式となる
    \begin{equation}
    \large a=\frac{f_0-2f_1+f_2}{2h^2}、\quad b = \frac{-3f_0+4f_1-f_2}{2h}
    \end{equation}
    元の2次間数
    \begin{equation}
    f(x) = a(x-x_0)^2+b(x-x_0)+f_0\label{fx}
    \end{equation}
    $$ 関数をx_0、x_2で積分する $$
    \begin{eqnarray}
    I&=&\int_{x_0}^{x_2}\left( a(x-x_0)^2+b(x-x_0)+f_0 \right)dx \nonumber \\
    &=& \left[ \frac{1}{3}a\left( x-x_0 \right)^3 + \frac{1}{2}b\left( x-x_0 \right)^2 +f_0x\right]_{x_0}^{x_2}\nonumber \\
    &=& \frac{1}{3}a\left( x_2-x_0 \right)^3 + \frac{1}{2}b\left( x_2-x_0 \right)^2 +f_0(x_2-x_0)\nonumber \\
    &=& \frac{1}{3}\frac{f_0-2f_1+f_2}{2h^2}8h^3 + \frac{1}{2}\frac{-3f_0+4f_1-f_2}{2h}4h^2 +2f_0h\nonumber \\
    &=& {\large \frac{h}{3}\left( f_0+4f_1+f_2 \right)}
    \end{eqnarray}

    4.ニュートン法

     方程式の解を数値計算によって近似的に求める
       ニュートン・ラフソン法とも呼ばれる

    2次方程式
    $$ y=x^2-2 $$
    x=aにおける接線の方程式を求める
    $$ y=2ax-a^2-2 $$
    y=0を代入
    $$ 0=2ax-a^2-2 $$
    $$ 2ax=a^2+2 $$
    $$ x=\frac{1}{2a}(a^2+2) $$
    $$ x=\frac{1}{2}(a+\frac{2}{a}) $$
  • JAVA、Java Script、Java Applet、Java Servlet、VBScriptとは

    1.Java

     C言語をベースに開発されたプログラミング言語
       語源はコーヒーのJava(ジャワ)
       幅広いプラットフォームの環境の違いを吸収し、適切に実行される
       開発環境とは異なる実行環境でも実行できる特徴を持つ

     汎用性と安全性が高い
       多くのプラットフォームで採用されているプログラム言語
         デスクトップやWebアプリ
         家電やIoT機器
         カーナビ等の組み込みソフトウェア 等々

     メリットとデメリット
       メリット
         実行環境の自由度の高さ
           プラットフォームを問わずどんなコンピュータでも使える
         コンパイル言語
           処理速度が速く安定性がある、セキュリティ性が高い
         世界的に見てもJavaの需要は非常に高い

       デメリット
         他のプログラミング言語よりもルールや難しい記述が多い
           習得の難易度は高い
         オブジェクト指向
           考え方の理解に時間が掛かる、独学では挫折することが多い
         小規模なシステム開発には向いてない
           拡張性を活かしきれず、開発工数のみが増えてしまう

    2.Java スクリプト(Java Script)

     「ブラウザ上」で動作するプログラミング言語

     ウェブページに複雑な機能を実装することを可能にするスクリプト
       軽量なインタープリター型プログラミング言語でもある
         ウェブブラウザーはテキストの形で JavaScript コードを受け取り、
         テキストのままでスクリプトを実行する
           実際には実行時コンパイルという技術で
           バイナリーフォーマットにコンパイルされている

     ウェブ標準技術の階層構造
       HTML マークアップ言語、ウェブコンテンツに構造と意味を与える
       CSS  スタイリング規則の言語、HTMLコンテンツに適用する
       JavaScript スクリプト言語、動的なコンテンツ作成等

     補足(2025年)
       当初の定義から時間も経ち現在では
         Node.js環境が整備されて、サーバーでも動く言語となっている

    3.Java アプレット(Java Applet)

     Webブラウザ上(クライアント側)で動くJavaプログラム
       セキュリティ上の問題やHTML5などの新しいウェブテクノロジーの台頭で
       2018年に主要なブラウザがサポートを終了する

    4.Java サーブレット(Java Servlet)

     Webサーバ上(バックエンド側)で動くJavaプログラム
       プログラミング言語のJavaを使って作成される
       動的なWebページの配信システムを実現する
         主な例:アクセスした人の好みや行動の傾向に合わせてページを表示

     メリット
       ライフサイクル管理
         1回のセッションを管理し、1度リクエストが送られてきたら、
         メモリに常駐しデータを維持することで返答までのスピードを速める

       マルチスレッド対応
         同時に複数のタスクを処理する
           1秒間に数百回という速さで複数の処理を切り替える
           あたかも同時並行で動作する様に見える

       プラットフォームへの非依存
         Javaというプログラミング言語のためプラットフォームに依存しない
           どの端末からでも設定なしにプログラムを使える

       追加するだけで機能拡張
         モジュール化されており、部分の追記だけで機能拡張できる

    5.VBScript

     Microsoftが開発したスクリプト言語
       業務で求められる一通りのことは可能
         ファイル操作、テキスト編集、外部プログラム起動

       Microsoft Office の起動や Database 接続等も可能
       Excel、Access とのデータ送受信が可能

     補足(2025年)
       2027年にWindows上から廃止する
       JavaScriptやPowerShellなど汎用性の高いスクリプト言語が誕生し
       そちらの方が最新のWeb開発や自動化タスクに最適なため

  • VTuber

    1.バーチャルYouTuber

     主に「2Dまたは3Dのアバターを使って活動しているYouTuber」
       キャラクターの姿で、YouTube上で動画を投稿する人たち

     2016年12月に最初の活動を始めて「バーチャルYouTuber」を名乗る
       

    2.特徴

     イラストでもOK
       多くは3Dキャラクターの姿で動いている
       2DイラストでもVTuberであることに変わりはない
         イラストでも体を動かしたり表情を変えたりできる
         静止画であってもVTuberとして認められている

     アニメのキャラクターとは違う
       アニメやマンガに出てきそうな姿をしているが、
         「物語上のキャラクター」ではない
       多くは「人格を持つ個人」として活動している

     十人十色、千差万別
       2017年から2018年にかけて爆発的に流行し、今なお数を増やし続けている
       配信や動画の内容も多岐にわたり、配信スタイルも十人十色
         一言では言い表せない状態

  • 講習会(動画) ex

    1.Tecgym講習会

    ゼロからはじめる Python 入門講座2021-09-11
    ①テックジムへようこそ「これからプログラミング学習を始めるにあたって」
    ②Pythonコースのカリキュラム概要と制作者メッセージ
    ③ゼロからはじめるPython入門講座 0:サンプルソースを動かしてみる
    ④テックジムPython基礎コース1-3解説動画「関数化」
    Python コースへようこそ(テキストの使い方)

    ソース公開場所(GitHub)
    ゼロからはじめる Python 入門講座
    オープン講座
    (Youtube)
    1 ゼロからはじめるPython入門講座
    2 学習方法でお悩みの方はご覧ください。
    3 さくっと業務改善・GAS講座「メルマガスタンドを作ろう」
    4 ちょこっと副業 Rails講座1「問合せフォームを作ろう」
    5 ちょこっと副業 Rails講座2「クローラーを作ろう」
    6 ちょこっと副業 Rails講座3「APIを使って読書管理アプリを作ろう」
    7 ちょこっと副業 Rails講座4「APIを使って読書管理アプリを作ろう」
    8 ゼロからはじめる機会学習講座
    9 テックジムの無料講座一覧
    オープン講座
    (補助資料)
    受講者専用
     テキストのダウンロードページ
    個別講座効率アップ10のポイント

    学習の目的別ルート
    補足情報GAS(Google Apps Script)の紹介
     Googleのサービスを有効活用する

    Railsの紹介
     「Ruby」で書かれたWebアプリケーションフレームワーク
    Python基礎コース(初心者向け)カリキュラムの概要
     https://techgym.jp/about/python_course/
    「AI・機械学習」入門講座2020-06-19
    これだけは知っておきたい「機械学習」ビジネス活用講座

    2.TECH PLAY講習会

    Pythonで始める最適化入門
     紹介ページ
    2022-03-23
    講演のプロモーション
       〃
     講演内容(動画)
    2022-03-23
    AI活用から≪意思決定≫の道筋まで見つける方法
  • 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)でなければならない

  • scikit-learnのサンプルデータ

    1.ライブラリーの種類

     Toy Datasets(トイ データセット)
       すぐに使えるサイズの小さいデータが7種類

     Real World Datasets(実世界データセット)
       ダウンロードし使うサイズの大きいデータが7種類

    2.トイ データセット

     以下に7種類のデータセット

    2.1ボストン市の地区別住宅価格データセット

     データセット名 boston

    アメリカのボストン市における地域別の住宅の価格をデータセットにしたものです。機械学習を試す時にはよく使われるデータセット
    13 個の特徴から、その地域の「家賃」を予測する

    予測する対象 MEDV
    説明 「住宅価格」の中央値
       この数値が目的変数

    2.2アヤメの品種データセット

     データセット名 iris

    アヤメには、setosa, versicolor, virginica という 3 種類の品種があり、これらをデータセットにしたもの
    4 個の特徴から、「どの種類のアヤメなのか」を分類する

    予測する対象 品種
    説明 setosa, versicolor, virginica のどれに当てはまるか?

    2.3糖尿病患者の診療データセット

     データセット名 diabetes

    糖尿病患者 442 人の「検査数値」と
    1 年後の「進行状況」のデータセット
    10 個の特徴から、その人の 1 年後の「進行状況」を予測する

    予測する対象 糖尿病の進行状況
    説明 target値を表示する

    2.4数字の手書き文字データセット

     データセット名 digits

    64 (8×8) 個の画素に、10 種類の手書き数字(0 ~ 9)を書いたデータセット

    2.5生理学的特徴と運動能力の関係についてのデータセット

    データセット名 linnerud

    20 人の成人男性がフィットネスクラブで測定した 3 つの生理学的特徴(体重、胴囲、脈拍)と、3つの運動能力(懸垂の回数、腹筋の回数、跳躍)の関係を示したデータセット
    3 個の特徴から、その”地域orエリア”の「懸垂の回数」「腹筋の回数」「跳躍」を予測する

    特徴の名前 Chins
    説明 懸垂の回数

    特徴の名前 Situps
    説明 腹筋の回数

    特徴の名前 Jumps
    説明 跳躍の回数

    2.6ワイン認識データセット

     データセット名 wine

    11 種類のワインの成分とワインの専門家によるワインの品質評価を含んだデータセット
    13 個の特徴を学習し、どの種類のワインなのかを分類する

    予測する対象 class_0
    説明 1 つ目のワインの種類
    個数 59 サンプル
       データ内では「 0 」のラベル

    予測する対象 class_1
    説明 2 つ目のワインの種類
    個数 71 サンプル
       データ内では「 1 」のラベル

    予測する対象 class_2
    説明 3 つ目のワインの種類
    個数 48 サンプル
       データ内では「 2」のラベル

    2.7乳ガンのデータセット

     データセット名 breast_cancer

    569 人分の乳ガンの診断データセット
    各サンプルは 30 種類の腫瘍の特徴量と腫瘍が良性か悪性かの診断結果を含んでいる




    30 個の特徴から、その人が悪性か良性かを分類する

    予測する対象 malignant
    説明 悪性
       データ内では「 0 」

    予測する対象 benign
    説明 良性
       データ内では「 1 」

    3.実世界データセット

     40 人の各 10 種類の顔画像データセット
       顔写真からどの人なのかを当てよう!

     20 の話題に関する 18000 のニュース記事データセット
       何の話題について書かれているか分類しよう!

     5749 人分の有名人の顔写真データセット
       顔写真からどの人なのかを当てよう!

     森林の木の種類データセット
       土地の情報を元に、生えてる木の種類を当てよう!

     カテゴリ別のニュースデータセット
       このニュースは何のトピックについて書かれているか分類しよう!

     ネットワークの侵入検知データセット
       ネットワーク通信が攻撃的かどうかを当てよう!

     カリフォルニアの住宅価格データセット
       家賃を予測しよう!

  • 古畑任三郎(第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

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

    1.Chrome OS

     Google社が提供しているLinuxをベースとしたOS
       最大の特徴はソフトウェアをインストールしない
       ほとんどの作業をBrowser(Google Chrome)上で行う
         少量の外部記憶装置が備わっていますので
         インストールして使うことはできる
       
     「Chromebook」と呼ばれるPCだけがChrome OS を搭載する
       製造メーカーはGoogle、ASUS、Lenovo、富士通 等々

    2.使用上のメリット

     ・起動時間が早い
       アプリケーションの立ち上げに費やす時間が無いため
       Browserが立ち上がれば、直ぐに使用可能になる

     ・ウイルス対策への配慮が不要になる
       インストールしたソフトが無いので、ウィルスに感染する恐れが無い
         ソフトをインストールするとウィルス対策が必要になる

     ・低価格PCが多い
       他のOS製品は12万〜20万、Chromebookは4万〜7万と格段に安い
         小・中学校で大量導入した理由の一つ

     ・ゲーム等のインストール禁止
       PC購入者が禁止事項として設定できる(教育機関、法人等)
         小・中学校で大量導入した理由の一つ

    3.使用上のデメリット

     ・多才なソフトの使用ができない
       他のOS(Windows、Mac)用のソフトはインストールできない
         Office製品、年賀状ソフト 等々

     ・インターネット環境が必要
       ネットに繋がらなければタダの箱になる

    4.考慮点

     ・Androidスマホ、タブレットを大きくした物として使用できる
       初心者の方が初めて使用するPCとしては最適
         導入方法や使用方法が複雑なソフトは使得ない
         キーボード操作より、タッチパネル操作は馴染みやすく便利

       スマホと同じアプリが使えたり、データ交換ができたりする
         Macとi-Phoneでも同じことが簡単にできるので利点としては外した

     ・強固なウイルス対策が備わっている
       サンドボックスは一手間必要なのでメリットから外した
         ※一手間増やせばメリットになるのは当たり前なので外した

     ・データのクラウド保存
       外部記憶装置の容量が小さくても、ネットに繋がればアクセスできる
       逆にネットに繋がらない場合にはデメリットとなる

     ・ユーザーインタフェース
       GUI(Graphical User Interface)なので馴染みのある操作になる
         他のOSと比べても優位性が表れない

    5.Chrome OS Flex登場

     当原稿をアップしたのが2021年6月
       2022年2月に新しいChrome OSが発表された

     GoogleはPCやMacにインストールして使える無料のOS
       「Chrome OS Flex」を発表する

     詳細な情報を収集して試してみること、を考慮しておく

     

  • 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では扱えない形式

  • Facebookにサイト内容を表示する

    調査しただけでインプリメンテーションまでは行っていない

    1.OGP(Open Graph protocol)

     metaタグをHTMLソースコード内に記述することで
       FacebookやTwitterなどのSNS上にサイト情報を表示する

    2.head要素に追加する

     head要素にOGPの定義、metaタグの要素を追加する

    <html prefix=”og: http://ogp.me/ns#”>
    <meta property="og:url" content=" ページの URL" />
    <meta property="og:type" content=" ページの種類" />
    <meta property="og:title" content=" ページの タイトル" />
    <meta property="og:description" content=" ページの説明文" />
    <meta property="og:site_name" content="サイト名" />
    <meta property="og:image" content=" サムネイル画像の URL" />

     必須パラメータ
       og:title グラフ内に表示されるオブジェクトのタイトル
       og:type オブジェクトのタイプ(多種多様のため省略)
              参考資料 https://ogp.me/
       og:image グラフ内のオブジェクトを表す画像のURL
       og:url グラフで使用される正規 URL
       
     必要に応じて表示用の「サムネイル画像」を用意する

    3.App IDの追加

     OGPの設定に必要なApp IDをfacebook for developersで取得する
       https://developers.facebook.com/apps

    <meta property=”fb:app_id” content=”App-ID(15文字の半角数字)”>
  • Zoom会議の開催方法

    1.あらかじめ開催時刻を決めてメンバーを招集する

     Zoom起動画面より「スケジュール」を選択する

     会議室の予約画面が表示されるので
       会議開催時刻の入力を行う(他の項目は自由に設定する)

     予約した時刻になると時間のカウントが始まる
       無料の場合は40分で切れる、ことになる

     予約登録すると会議室の「URL」および「ミーティングIDとパスコード」が
       Zoomより「テキスト(文面)」となって送り返される

     送り返された文面を使って、
       「URL」または「ミーティングIDとパスコード」に
       開催時刻情報等を添えて参加者に通知し会議へ招待する

    2.即、会議を開催しメンバーを招集する

     Zoom起動画面より「新規ミーティング」を選択する

     「ミーティングの開始」の画面が表示されるので
       会議開始のボタンを押下すると即時に会議が開催される

     このタイミングで時間のカウントが始まる
       無料の場合は40分で切れる、ことになる

     画面上部に会議室名が表示されるのでクリックする
       会議室の「URL」または「ミーティングIDとパスコード」が
       表示される

     表示された「URL」または「ミーティングIDとパスコード」を
       参加者に通知し会議へ招待する

  • セッション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.フレームワーク

     経営を取り巻く環境が大きく変わるなかで、
       成長を続けるためにはどのような成長戦略をとれば良いのか。
       そのヒントとなる考え方

    2.成長戦略

     「製品」と「市場」の2軸におき、さらに「既存」と「新規」に分類する

     ・既存製品×既存市場、「市場浸透戦略」
       いままでの市場に、既存の製品やサービスを投入して、
       売上高や市場シェアの拡大をめざす戦略

       製品の認知を上げたり、購入意欲を高めたりすることが大きな課題

     ・新規製品×既存市場、「新製品開発戦略」
       いままでの市場に、新しい製品やサービスを投入して、
       売上を拡大しようとする戦略

       既存市場のニーズに対応した製品やサービスを開発すること、
       競合と差別化を図ることができる製品やサービスを開発すること、
       それができるかどうかが、重要なポイント

     ・既存製品×新規市場、「新市場開拓戦略」
       既存の製品やサービスを新しい市場に投入して、勝負する
       市場に競合がいる場合は、商品力、営業力・販売ネットワーク等の
       「売る力」が勝負を左右する

       既存製品の海外進出・海外展開は、新市場開拓戦略の一例

     ・新規製品×新規市場、「多角化戦略」
       新しい市場に新しい製品やサービスを投入する戦略

       ほとんど経験のない市場で新製品を投入するため、
       マーケティングのコスト、製品・サービスの開発コストがかかる
         リスクがあっても新しい収益源を求める時、
         または求めなくてはならない時に、
         ハイリスク・ハイリターンの多角化戦略

    3.多角化戦略

     既存製品×既存市場の「市場浸透戦略」は中々取りにくい

     新製品開発
       既存の市場にあわせた新製品・新サービスを開発する

     新市場開拓
       既存の製品にあわせた新しい市場の獲得をめざすか、
       新しい市場で、新しい商品・サービスを展開するか

    4.多角化戦略の内容

     4つのパターン
       ・水平型多角化
         既存技術と関連性の高い新製品を、既存と類似した市場に投入
           いままでの技術やノウハウを活かしながら、
           いままでの市場と「類似した市場」に新製品・新サービスを投入

         いままでの技術・設備・ノウハウを活かすことができ、
         相乗効果・シナジー効果も期待できる

       ・垂直型多角化
         既存技術と関連性の低い新製品を、既存と類似した市場に投入
           いままでの技術やノウハウとの関連性は低いものの、
           いままでと「似た市場」に新製品・新サービスを投入

         水平型と比べると、技術・ノウハウの獲得、新設備の導入などの
         多角化の負担は大きくなり、リスクは高くなる

       ・集中型多角化
         既存技術と関連性の高い新製品を、異なった市場に投入
           いままでの技術やノウハウとの関連性が高い
           新製品・新サービスを、異なった市場に投入

         成功させるためには、自社の強みを中心軸にして、
           同心円状に事業を拡大していく

       ・集成型多角化
         既存の技術や市場とは、全く異なった事業に進出
           いままでの技術・ノウハウ・市場とも全く関係ない事業に進出

         他の3つとは異なり、
           相乗効果・シナジー効果が低く、またリスクも高くなる
           多角化のリスクを抑える方法をとる

  • 商取引の法律

    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レコードが登録されている必要がある

  • 地域の代表遺跡

    1.総論

    加曾利貝塚千葉県
    三内丸山遺跡青森県
    吉野ケ里遺跡佐賀県
    入江貝塚北海道
    勝連城沖縄県
    原の辻遺跡長崎県
    キノ城跡岡山県
    ウワナベ古墳奈良県
    大森貝塚東京都
    登呂遺跡静岡県
    大山古墳大阪府

    2.旧石器・縄文

    岩宿遺跡群馬県
    男女倉遺跡長野県
    宮ノ前遺跡岐阜県
    福井洞穴長崎県
    上野原遺跡鹿児島県
    鳥浜貝塚福井県
    里浜貝塚宮城県
    棚畑遺跡長野県
    亀ヶ岡遺跡青森県
    垣ノ島A遺跡北海道
    風張遺跡青森県

    3.縄文 東の文化

    キウス遺跡北海道
    寺野東遺跡栃木県
    寺地遺跡新潟県
    チカモリ遺跡石川県
    出雲大社境内遺跡島根県
    御所野遺跡岩手県
    金生遺跡山梨県
    桜町遺跡富山県
    根古谷台遺跡栃木県
    長者ヶ原遺跡新潟県

    4.弥生 西の文化

    上野原遺跡鹿児島県
    菜畑遺跡佐賀県
    板付遺跡福岡県
    土井ヶ浜遺跡山口県
    龍河洞高知県
    八堂山遺跡愛媛県
    唐古・鍵遺跡奈良県
    登呂遺跡静岡県
    汐入遺跡静岡県
    安永田遺跡佐賀県
    木ノ宗山遺跡広島県

    5.古墳 墳丘墓~前方後円墳

    矢谷墳丘墓広島県
    三雲遺跡群福岡県
    纏向遺跡奈良県
    箸墓古墳奈良県
    岩崎山4号墳香川県
    天神山古墳奈良県
    若杉山遺跡徳島県
    免ヶ平古墳大分県
    東之宮古墳愛知県
    五色塚古墳兵庫県

    6.古墳 巨大古墳

    柳本古墳群奈良県
    誉田山古墳大阪府
    大山古墳大阪府
    高井田横穴群大阪府
    坊主塚古墳京都府
    雲部車塚古墳兵庫県
    鴨稲荷山古墳滋賀県
    松岡古墳群福井県
    石舞台古墳奈良県
    高松塚古墳奈良県

    7.九州地方

    塔ノ首石棺墓群長崎県
    チゴノハナ遺跡長崎県
    九里双水古墳佐賀県
    金隈遺跡福岡県
    宗像大社福岡県
    チブサン古墳熊本県
    橋牟礼川遺跡鹿児島県
    成川遺跡鹿児島県
    鬼の窟古墳宮崎県
    才園古墳熊本県

    8.出雲・吉備地方

    神庭荒神谷遺跡島根県
    妻木晩田遺跡鳥取県
    西谷3号墳島根県
    造山古墳島根県
    角田遺跡鳥取県
    岩戸山古墳福岡県
    赤坂今井墳丘墓京都府
    出雲玉作遺跡島根県
    鬼ノ城跡岡山県
    こうもり塚古墳岡山県

    9.東海・関東地方

    見晴台遺跡愛知県
    荒尾南遺跡岐阜県
    松阪宝塚1号墳三重県
    伊場遺跡静岡県
    神坂峠遺跡長野県
    大浦山洞窟神奈川県
    豊島馬場遺跡東京都
    船塚山古墳茨城県
    埼玉古墳群埼玉県
    和見横穴群栃木県

    10.北端・南端

    キウス周堤墓北海道
    大湯環状列石秋田県
    北黄金貝塚北海道
    モヨロ貝塚北海道
    フゴッペ洞窟北海道
    古座間味貝塚沖縄県
    浦底遺跡沖縄県
    モシリヤチャシ北海道
    勝連城沖縄県
    中城沖縄県

    11.東アジア

    原の辻遺跡長崎県
    平原遺跡福岡県
    鳥居原狐塚古墳山梨県
    新山古墳奈良県
    石清尾山古墳群香川県
    南郷遺跡群奈良県
    江田船山古墳熊本県
    大谷古墳和歌山県
    木之越遺跡三重県
    矢田野エジリ古墳石川県

    12.文字

    志賀島福岡県
    広田遺跡鹿児島県
    大城遺跡三重県
    持田古墳群宮崎県
    隅田八幡神社和歌山県
    稲荷山古墳埼玉県
    多賀城碑宮城県
    上野三碑群馬県
    龍角寺千葉県
    柴又八幡神社古墳東京都
    観音寺遺跡徳島県

    13.補足

     前方後円墳(5200基) 6世紀築造が多い
       千葉・・・693基
       茨城・・・468基
       群馬・・・393基
       福岡・・・257基
       鳥取・・・248基

  • 仏像と寺

    1.如来

    釈迦如来東大寺誕生釈迦仏
    法隆寺釈迦三尊
    室生寺釈迦如来
    清凉寺釈迦如来
    阿弥陀如来法隆寺阿弥陀三尊
    浄土寺阿弥陀三尊
    浄瑠璃寺阿弥陀如来
    永観堂禅林寺阿弥陀如来
    高徳院阿弥陀如来
    薬師如来薬師寺薬師三尊
    新薬師寺薬師如来
    神護寺薬師如来
    獅子窟寺薬師如来
    勝常寺薬師如来
    大日如来東大寺廬舎那仏
    円成寺大日如来
    興福寺弥勒如来

    2.菩薩

    観音菩薩法隆寺救世観音
    法隆寺百済観音
    法隆寺夢違観音・九面観音
    東大寺不空羂索観音
    薬師寺聖観音
    十一面観音石道寺十一面観音
    聖林寺十一面観音
    室生寺十一面観音
    法華寺十一面観音
    長谷寺十一面観音
    千手観音三十三間堂千手観音
    葛井寺千手観音
    中宮寺如意輪観音
    醍醐寺如意輪観音
    観世音寺馬頭観音
    弥勒菩薩広隆寺弥勒菩薩
    神護寺五大虚空蔵菩薩
    願興寺普賢菩薩・文殊菩薩
    普賢寺・阿倍文珠院普賢菩薩・文殊菩薩
    元箱根磨崖石仏群地蔵菩薩

    3.明王

    明王東寺五大明王
    般舟院不動明王
    西大寺愛染明王
    秋篠寺大元師明王
    正暦寺孔雀明王

    4.天部・羅漢

    天部・羅漢東大寺梵天・帝釈天・金剛力士
    東大寺四天王
    法隆寺毘沙門天・吉祥天
    秋篠寺伎芸天
    興福寺阿修羅・迦楼羅
    三十三間堂二十八部衆
    新薬師寺十二神将
    観世音寺・孝恩寺大黒天・弁才天
    円応寺閻魔大王
    清凉寺十大弟子
  • アヤメの種類判別(その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.データの前処理

     順次処理する。
      ・説明変数の作成や削除
      ・データの正規化

    ここから先、GoogleColabによるサンプル記述になります
      ログイン用のIDとPWを入手し、各ノートブックを参照

      (1)データの読み込み 前処理(1).ipynbを参照

       ライブラリーを読み込む
         pandas・・・データ解析用
         numpy・・・数値計算用
         matplotlib.pyplot・・・グラフ描画用
         seaborn・・・データ可視化用
       グラフ表示を準備する
       「Scikit-learn」より「irisデータ」を読み込む
         irisデータとは多数のアヤメ(菖蒲)画像です
       変数名を確認する
         irisデータの詳細をDESCRで確認する
         DESCRとはデータセットの説明(description)
         print文でDESCRの内容を出力する

      (2)データの確認 前処理(1).ipynbを参照

       PandasのDataFrameを利用してデータセットを作る
         リストの1個目はirisのdata
         リストの2個目はirisのfeature_names
       関数で内容を確認する
         head関数・・・先頭5行
         info関数・・・概要
         describe関数・・・要約統計量
         shape関数・・・データの形状(大きさ)
         iloc関数・・・データのスライス
         query関数・・・条件に合う行

      (3)欠損値の確認 前処理(2).ipynbを参照

       欠損値のあるデータを用意し、関数で内容を確認する
         isnull関数・・・欠損値の有無
         fillna関数・・・欠損値の補完
         dropna関数・・・欠損値のある行を削除

      (4)データ型の変換


           
           

  • 機械学習(教師あり学習、教師なし学習)

    1.教師あり学習

     データと正解を対応させて学習し、
       データだけを与えて正解を予測させる仕組み

     回帰問題・・・数値を予測する
     分類問題・・・種類を予測する

    <事例研究>

    基本情報y=ax+100y=ax+100
    気温売上本数気温20度
    売上予想
    基本情報との差差の2乗気温30度
    売上予想
    基本情報との差差の2乗
    12342340-2446011813924
    5203200-39250472209
    01001000010000
    11201200013010100
    4182180-24220381444
    13361360-1149012916641
    113193201143011112321
    1946639

      売上本数=y、気温=x、xの増減によりyが決まる
      気温0度の時、100本売れているのでy=aX+100の式が成り立つ


      最初にa=20として、売上げ予想を求め、誤差の2乗の合計が19
      次にa=30として、売上げ予想を求め、誤差の2乗の合計が46,639となる
        差にはプラスとマイナスがあるため2乗して数値を揃える

      次々とaの値を設定し、誤差の合計が最も少なくなるaを選ぶ
       aが決まれば、温度による売上本数の予測がつく

    2.教師なし学習

     データの特徴を基にグループに分ける仕組み

    <事例研究>

    3人の注文履歴は以下の通り

    コハダ中とろハッキ貝車海老赤身雲丹しめ鯖大トロ玉子
    Aさん11111
    Bさん11111
    Cさん11111

    他人と重なった注文をした人を確認する

    コハダ中とろハッキ貝車海老赤身雲丹しめ鯖大トロ玉子
    Aさん111
    Bさん111
    Cさん11111

    Dさんは現在こういった注文状況

    コハダ中とろハッキ貝車海老赤身雲丹しめ鯖大トロ玉子
    Dさん1111

    DさんがAさん、Bさん、Cさんと同じものを頼んだ品を数える
      Aさんと2品、Bさんと3品、Cさんと4品が同じ
        そうするとDさんは次に選ぶのは
          Cさんが選んだモノの中から残りの1個を選ぶだろう

    3.強化学習

     「教師あり学習」と似ているが正解がない
       試行錯誤しながら適切な行動に報酬を与え、繰り返し学習する仕組み

    4.業務へ応用する

    (1)計画の立案
      どのような目的で機械学習を使うのかを決める
    (2)データの収集
      必要なデータと収集方法を決める
      関連性の低いデータ、収集が難しいデータ、制御できないデータ等は除外する
    (3)データの前処理
      前処理用のプログラムを用意する
      データ内容の確認、欠損値の確認、データ型の変換、説明変数の作成と削除、データの正規化等を行う
    (4)モデルの構築、学習、評価
      機械学習用のモデル(プログラミング)を作成する
      データの分割:
       モデル評価用に2割~3割、残りを機械学習用にする
       機械学習用の中から性能検証用に2割~3割を当てる
      モデルの選択:
       多くのモデルの中から選択する(参照:選択基準表)
      モデルの学習、評価、調整、を繰り返す
       選択したモデルで学習用データを使って学習する
       学習済みのモデルの性能を性能検証用データを使って検証する
       パラメータ変更、モデル変更等を行い目的達成まで繰り返す
       最後に評価用データを使って最終評価を下す
    (5)業務への導入
      導入形態の検討:
       要件を整理し、ユーザーの操作性等も検討する
      環境の調査:
       プログラム実行に必要な資源(ハード、ソフト)を調達する
      既存システムとの調整:
       既存システムの改修や新規作成等を調整する
       導入効果測定用のロギング機能を組み込む
    (6)運用、モデルの改善
      予測精度は徐々に劣化するので、モデルの再学習を行う

    <資料> scikit-learn(サイキット・ラーン)より引用

  • 深層学習のフレームワーク

    1.Tensorflow(テンソルフロー)

     「Tensor」は数学の概念の一つ、行列の概念を一般化(n次元化)したもの
       0次元の配列を「スカラ」
       1次元を「ベクトル」
       2次元を「行列」
       それ以上n次元を「n次元配列」

     エンドツーエンドかつオープンソースの深層学習のフレームワーク
       Googleによって2015年に開発・公開される

     ドキュメント類も多く、サポートも充実している
       様々なスケーラブルなプロダクトやデプロイのオプションも提供している
       モデルの抽象度も色々あるので、非常に便利
         レイヤーの名前を呼ぶだけで
           モデルを組むか、より深いアルゴリズムを変更するか等々
       WindowsやMacOS、Androidなど多くのプラットフォームで利用できる

     名前の通り、様々なタスクに
       データのフローを流しこみ、プログラムを作成するためのフレームワーク

     ニューラルネットワークなどの機械学習のアプリケーションに適用できる
       多くのシンボリックな数学ライブラリが用意されている

    2.Keras(ケラス)

     TensorFlow上で動くニューラルネットワークライブラリ
       ディープニューラルネットワークを使った高速な実装が可能なように設計
       CNTK、Tensorflow、Theanoなどがバックエンドとして動作する

       ニューラルネットワークの迅速な実験を可能にすることを目的とした
         機械学習やディープラーニングのモデル作成を比較的容易に行える
         オープンソースのニューラルネットワークライブラリ

     モジュール化やユーザーフレンドリーで、拡張性がある
       低レベルの計算は処理せず、バックエンドの別のライブラリに渡す

    2.3. PyTorch

     Torchベースの深層学習フレームワーク
       Facebookが開発し、2017年にGithubのオープンソースとして公開される
       主に自然言語処理に使用される

     シンプルで使いやすく、柔軟性、メモリの効率的な使用、
       動的な計算グラフなどについて高い評価を得ている

  • デッドロック回避方法

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

    1.2 相ロック

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

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

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

    2.時刻印アルゴリズム

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

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

    3.待ちグラフ

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

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

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

    デッドロックの判別

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

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

  • メール送信

    1.メール送信の方法

     PHPでメール送信するには2つの関数が用意されている

     「mail関数」で宛先、件名、メッセージ、ヘッダーを指定する方法

    $to = "to@example.com";
    $subject = "TEST";
    $message = "This is TEST.\r\nHow are you?";
    $headers = "From: from@example.com";
    mail($to, $subject, $message, $headers);

     「mb_send_mail関数」で宛先、件名、メッセージ、ヘッダーを指定する方法

    $to = "to@example.com";
    $subject = "TEST";
    $message = "This is TEST.\r\nHow are you?";
    $headers = "From: from@example.com";
    mb_send_mail($to, $subject, $message, $headers);
    

     指定方法は似ているが
       「mb_send_mail関数」の方は日本語(2バイト文字)に対応している
       こちらの方が使用頻度が高いと思われるので、こちらで進める

    2.SーJISで送る場合

    <?php
    
    //言語設定、内部エンコーディングを指定する
    	mb_language("japanese");
    	mb_internal_encoding("SJIS");
     
    //日本語メール送信
    	$to 		= "●●●●●●@gmail.com";
    	$subject 	= "SJISで送ります";
    	$body 		= "1行目です\n 機種依存文字 ①ⅱ㈱℡\n 拡張文字 髙塚彅﨑德";
    	$from 		= "⚪︎⚪︎⚪︎⚪︎@gmail.com";
     
    //ちゃんと日本語メールが送信できます
    	if (mb_send_mail($to,$subject,$body,"From:".$from))
    	  {
      		echo "メールが送信されました。";
    	  }
    	else
    	  {
      	   echo "メールの送信に失敗しました。";
    	  }
    
    ?>
    行番号説明
    4〜5言語設定と内部エンコーディングを設定する
     mb_language 日本語を使用する
     mb_internal_encoding Shift-JISコードを使用する
       mb_send_mail関数よりも前に記入する
    8〜11宛先、件名、メッセージ、ヘッダーを指定する
     $to    宛先メールアドレス
     $subject  件名
     $body   メッセージ
     $from   送信元としてヘーダーに表示(通常メールアドレス)
    14〜21mb_send_mail
     メール送信と後処理

    3.UTF-8で送る場合

    <?php
    
    //言語設定、内部エンコーディングを指定する
    	mb_language("japanese");
    	mb_internal_encoding("UTF-8");
     
    //日本語メール送信
    	$to 		= "●●●●●●@gmail.com";
    	$subject 	= "UTF-8で送ります";
    	$body 		= "1行目です\n 機種依存文字 ①ⅱ㈱℡\n 拡張文字 髙塚彅﨑德";
    	$from 		= "⚪︎⚪︎⚪︎⚪︎@gmail.com";
     
    //ちゃんと日本語メールが送信できます
    	if (mb_send_mail($to,$subject,$body,"From:".$from))
    	  {
      		echo "メールが送信されました。";
    	  }
    	else
    	  {
      	   echo "メールの送信に失敗しました。";
    	  }
    
    ?>
    行番号説明
    4〜5言語設定と内部エンコーディングを設定する
     mb_language 日本語を使用する
     mb_internal_encoding UTF-8(Unicode8ビット)を使用する
       mb_send_mail関数よりも前に記入する
    8〜11宛先、件名、メッセージ、ヘッダーを指定する
     $to    宛先メールアドレス
     $subject  件名
     $body   メッセージ
     $from   送信元としてヘーダーに表示(通常メールアドレス)
    14〜21mb_send_mail
     メール送信と後処理

    4.SMTPサーバーの利用

     SMTP(Simple Mail Transfer Protocol)を利用する
       SMTPサーバーで提供される簡易的なメール送信プロトコル
       メリットは、迷惑メールやスパム対策強化になる

     SMTPサーバーは多くのメール送信で利用されており、
       多くの場合、ブラックリストには登録されていないので
       メールの送信や受信する側としても安心できる

     レンタルサーバーだと最初から備わっているが
       念の為「php.iniのmail function 」を確認しておく

    [mail function]
    ; https://php.net/smtp
    SMTP = smtp.xxxxx.com
    ; https://php.net/smtp-port
    smtp_port = 587
  • PHPの設定値

    1.設定内容を表示する

     下記のプログラムそ動かして設定されている内容を確認する
       デフォルトは「 INFO_ALL」、全ての情報を表示する

    <?php
     phpinfo();
     print "test xdomain";
     ?>
  • 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が使われている
         「無効」にすると「警告」メッセージが表示される

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

  • Java Script

    1.HTMLファイルの中に書く方法

     基本的な手順
       ①最初にHTMLファイルの元を作成する
         テキストドキュメント(拡張子をtxt)を作る
         テキストドキュメント内にHTMLコードを書き込む

    <!DOCTYPE html>
    <html>
        <head>
        </head>
        <body>
            <p>Hello World</p>
        </body>
    </html>

       ②JavaScript命令を追加する
         6行〜7行の間にJava Script命令を書き込む
         <script>と</script>でJavaScriptの命令を挟む
           ”alert”はテキストとOKボタンをポップアップ表示させる
           Webページを読み込んだ際にブラウザの上部に表示する

            <script>
                 alert("Hello");
            </script>

       ③ファイルをHTML形式(拡張子をhtml)にして保存する

    <!DOCTYPE html>
    <html>
        <head>
        </head>
        <body>
            <p>Hello World</p>
            <script>
                 alert("Hello");
            </script>
        </body>
    </html>

       ④ブラウザで作成したHTMLファイルを開く
         Java Scriptの実行結果が表示される

    実行結果

    2.jsファイルを作ってHTMLに参照させる方法

     基本的な手順
       ①HTMLファイルを用意する
         上記HTMLファイルの7行〜9行を修正する
           hello.jsというファイルを呼び出して実行するという意味

    <!DOCTYPE html>
    <html>
        <head>
        </head>
        <body>
            <p>Hello World</p>
         <script src="hello.js">
         </script>
        </body>
    </html>

       ②新しいテキストドキュメント(拡張子をtxt)を作成する

    alert('Hello World!');

       ③ファイル名をhello、Java Script形式(拡張子をjs)にして保存する
         hello.jsというファイルを呼び出し
           中に記述されているJava Scriptのalertが実行する準備が整う

       ④ブラウザでHTMLファイルを開く
         Java Scriptの実行結果が表示される

    実行結果

    3.補足資料

     当時の資料

  • 数学体感教室(途中)

    朝日新聞掲載 https://www.asahi.com/ads/math/ より

    1.ガウスの計算方法

     模範解答は以下の通り

    wa = 0
    saidai = 100
    
    for i in range(saidai+1):
        wa += i
    
    print(wa)

     見慣れたコーディングだと

    wa = 0
    i = 1
    
    while i < 101:
        wa = wa + i
        i  = i + 1
    
    print(wa)

    2.

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

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

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

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

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

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

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

    3.利用する理由

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

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

  • 弥生遺跡と出土物

    1.上田町遺跡(大阪府)

     弥生水田の剥ぎ取りパネル

    2.登呂遺跡(静岡県)

     弥生土器壺

    3.酒呑場遺跡(山梨県)

     縄文時代の栽培ダイズ

    4.納所遺跡(三重県)

     木製農具

    5.山賀遺跡(大阪府)

     ごはんを炊いた土器

  • 古市古墳群

    理由が不明(世界遺産に選ばれなかった理由)

    1.国府遺跡

    2.衣縫塚古墳

    3.松川塚古墳

    4.古室山古墳

    5.大鳥塚古墳

    6.栗塚古墳

    7.盾塚古墳

    8.潮音寺北古墳

    9.青山2号墳

  • カマラ・ハリス氏の演説(一部)

    1.11月7日の夜、勝利演説の中から抜粋

    But while I may be the first woman in this office, I will not be the last, because every little girl, watching tonight sees that this is a country of possibilities.

    私は初の女性副大統領であるかもしれませんが、私で最後ではありません。なぜなら全ての少女たちが今夜の光景を見て、この国は可能性の国だということを理解するからです。

    2.Kamala Devi Harrisの略歴

     1964年10月20日誕生
       第49代副大統領、初の女性・アフリカ系・南アジア系の副大統領

     ワシントンD.C.のハワード大学では政治学と経済学を専攻

     1990年、カリフォルニア州アラメダ郡にて地方検事補

     2004年、サンフランシスコ地方検事に当選

     2011年、初の女性・アフリカ系・インド系のカリフォルニア州司法長官に就任

     2017年、上院議員に選出
     

  • モンテカルロ法

    1.概要

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

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

    2.円周率を求める

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

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

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

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

    3.利点・欠点

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

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

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

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

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

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

  • 日本古代史の謎

    少し古い原典(1970年代後半)のため見直す必要あり

    1.銅鐸

     弥生時代に畿内を中心に現れた青銅器。7世紀の天智朝や8世紀の奈良時代には既に謎の青銅器であった。

     初期は小型で軽く、吊り下げて鳴らす楽器として使っていた。次第に大型化して重くなり、祭器として使われた。

     原料は大陸から輸入した銅剣等を鋳直して銅鐸に作り替えた、そのため畿内には北九州と比べて銅剣・銅矛の出土が少ない。

     石製や土製の鋳型が発見され、製作方法も明らかになった。同じ鋳型で作った銅鐸が各地で出土しており、畿内から各地に配られた過程も明らかになっている。

     埋め戻された銅鐸は、埋まった場所が大概集落を見下ろせる地であることから、村の祭りに使った銅鐸を埋めたものと考えられる。一か所から数個から数十個以上の銅鐸が出土することも少なくない。

     村の共有財産であった銅鐸が一か所に集められた結果であり、小村落が統合されてより大きな小国家を形成していったことを物語る。

     後の大和朝廷やその後継者に伝わらなかったのは、先住民の遺産であったことを想像させる。
     

    2.高地性集落

     弥生時代の集落は水稲耕作に便利な平野に多い。弥生中期になると瀬戸内海と大阪湾沿岸や淀川水系で切り立った崖の上や嶮しい山頂に濠をめぐらした集落が点々と築かれるようになる。これらの集落は一時的なものではなく、かなり長期にわたって営まれている。

     嶮しい高地に集落が築かれた理由は防衛のためと考えられる。弥生中期といえば2世紀後半の「倭国大乱」の時期に当たり、高地性集落は城砦的性格を持つ。

     動乱は弥生中期だけではなくかなり長期にわたっていたと思われるので、内海航路の見張台や烽火台ではなかったかという説がある。

     他には畑作集落説もある。

    3.前方後方墳

    水野祐氏の「二元発祥論」
      円墳系は大和や日向、方墳系は出雲に発祥した

    茂木雅博氏の「吉備発祥説」
      出雲最古の松本一号墳(前方後方墳)が吉備最古とされる湯迫の車塚古墳(前方後方墳)と平面図や大きさの点で極めて似ており、出雲は吉備の影響を受けている。
      古式前方後円墳と前方後方墳の大半は、時期的にほとんど同時か前方後方墳が先行するのではないかと考えた。

    4.金印

     1784年(天明4)志賀島で石の下から発見された金印は国学勃興期にあった学者たちの関心を集めた。

     戯作説は薄れた
       ・鏨で印刻した印は漢代に多い
       ・印文に「印」字のないものも中国で発見されている
       ・四辺の平均(2.35㎝)は後漢の鋼尺の一寸と一致
       ・蛇鈕のついた金印が中国でも発見される

     印文の解釈
       ・「委奴」をナノワと読み、
         後漢書の「漢の倭の奴の国王」にしたがい
         那珂川を中心とする福岡市付近の
         儺県ナノアガタに比定する説。
       ・「委奴」をイトと読み、
         魏志倭人伝の「伊都国」にしたがい
         糸島郡東南部に比定する説。

     石の下から発見されたので
       ・隠匿説、墳墓説、紛失説、漂着説等がある

    5.七支刀

     「宣供供候王」との銘文から四世紀~五世紀の日本と百済との関係性を考える。
      ・百済王が倭王に奉ったとする説
        日本書紀の神功摂政52年の条の七枝刀とし、
        「供供たる候王を宜しくす」と読む
      ・百済王が臣下の倭王に与えたとする説
        銘文が「下行文書」の形式であり、
        「候王」は百済王の下位にあった倭王とする
      ・対等な関係での贈り物とする説
        「供供」を「うやうやしい」と読み、
        上の2つの説をとらない

    6.広開土王碑

    四世紀末~五世紀初の日朝関係や国内統一に関する一級資料。
    碑文の「百殘新羅舊是屬民由來朝貢而倭以耒卯年來渡[海]破百殘■■新羅以為臣民」の箇所について

    幾つかの解釈がある
     ・「耒卯年」は391年とし大和朝廷の朝鮮出兵が行われ、任那日本府が置かれた、とする説
     ・倭が耒卯年に侵入してきたため、高句麗は海を越えてこれを撃破した、とする説
     ・参謀本部酒勾中尉による「渡海破」挿入の、碑文すりかえ説

    倭を大和朝廷とするかどうか、任那日本府の成立時期等をどう見るかがポイントとなる。 

    7.神武天皇

     実在性は否定されているが、何故この天皇が創出されたかがポイント。
     ・穀霊を意味する語から脱化した神話上の人物
     ・初代の崇神天皇をモデルにして作り出された天皇
     ・皇室が九州から畿内へ東遷した
     ・九州生誕の応神天皇が東遷した史実の反映
     ・磐余彦の奈良盆地平定譚を核に成立する
     ・大嘗祭に重要な役割を果たす氏族の祖先を基に構想された
     ・高句麗の建国伝説との類似点から同一系統とみる 

     「辛酉年は革命の年」というのは讖緯シンイの説を基にして推古朝の史局で考案されたもの。※60年に1回の辛酉の年が続いて、21回目に大革命が起きるという説

    8.神功皇后

     実在性、出自、三韓征伐、巫女的性格、皇后という地位、摂政の意味、応神天皇の生母等々から考慮点が多い人物。
    (説1)神功皇后の「気長足姫オキナガタラシヒメ」と新羅征伐の事績は7世紀半ばの斉明天皇の「天豐財重日足姬アメヨトヨタカライカシヒタラシヒメ」と死後の新羅討伐(白村江の戦い)とに似せたとみる。
    (説2)近江国坂田郡息長地方に伝えられた、水辺で神の子を出産し貴種を養育する高貴な巫女伝説に新羅との交戦が加味されたものとみる。
    (説3)初期大和朝廷の対外政策を活躍した実在の皇后、と考え史実とみる。
    (説4)息長地方の伝説的な巫女が仲哀天皇の皇后とされ、仲哀の死後に先帝の皇后として69年に及ぶ統治を行った女帝の存在へ発展したとみる。
    (説5)日本書紀は暗に神功皇后を卑弥呼に比定している。

    9.倭

     従来「倭」を日本列島とそこに住む人々のこととしてきた。仔細に中国や朝鮮の文献をみると、四つの倭がある。
      中国北方の倭
        戦国時代の「山海経」によると「倭は燕に属す」とある。
        内蒙古東南部~遼寧省北部にあたる。
      中国南方の倭
        1世紀末の「論衡」に中国南部に住んでいた。
        周の時代、天下は太平で、倭人がやって来て暢草チョウソウを献じた。とある
      南朝鮮の倭
        「漢書」に記され、「後漢書」には金印を与えられたとある。
        夫、楽浪海中に倭人わじんあり、分かれて百余国と為る
      日本列島の倭

    10.倭の五王

     413年~502年の間に度々南朝に遣使して爵号を要求する。
     通説では以下のように幾つかに比定される
       讃・・・応神、仁徳、履中
       珍・・・仁徳、履中、反正
       清・・・允恭
       興・・・安康、木梨軽皇子、市辺押磐皇子
       武・・・雄略
     上記以外には
       武の上表文中の「祖禰」を「祖の禰ミ」と読み珍として仁徳をあてる
       430年に遣使した倭王を五王とは別の王とする
       502年に梁から征東将軍の号を与えられたのは、別の武で清寧または武烈である

     遣使は通商目的ではなく、南朝鮮における権益を南朝に承認してもらい、高句麗と対峙するためである。貰った称号は高句麗や百済より低かった。
     もう一つの目的としては、国内支配の権威づけのためとする。

    11.木梨軽太子

     允恭天皇の皇太子。弟が穴穂皇子。二人は皇位継承を巡って争い、負けた軽太子は伊予に流され、穴穂皇子が即位して安康天皇となる。その後、雄略の即位まで骨肉の争いが続く。
     軽太子と穴穂皇子は実在したとする説や元来「軽矢・穴穂矢」にまつわる話をもとに後世作為された可能性が高い。
     軽太子の名代として設定された軽部は狩部の意で狩猟に関係する部であり、矢とは無縁ではなく、さらに軽部の作る矢が軽矢と呼ばれていたと考える。
     穴穂皇子(安康天皇)の宮居のあった石上穴穂あたりで製作された矢が穴穂矢であっただろう。

    12.和風諡号

     漢風諡号より古い。
     諡号と実名と尊号を混同しないことが重要。応神のホムタ、安康のアナホは実名。清寧のシラカノワカヤマトネコは在世中の尊号。
     諡号の類似性や共通性を分類したり、人名や神名と比べてみることも重要。
     記と紀で違う2種類の諡号や諡号を奉る慣習の始まり、殯の沿革、百済・新羅・高句麗の諡号選上や王統系譜についても考量する必要がある。

    13.王朝交替

     三王朝交替説
       騎馬民族征服王朝説が現れて、崇神・仁徳・継体の三王朝が注目された。
     九州東遷説
       応神が九州から東遷して三輪王朝・磯城王朝を倒した。
     河内王朝説
       河内出身の応神が王朝を打ち立てた。
     継体王朝説
       北方の豪族が皇位を簒奪した。
     葛城王朝説
       欠史9代が実在したする。

     余りにも興亡盛衰に終始して、古代の政治形態や社会発展についての考察が必要。

    14.葛城王朝

     二人のハツクニシラススメラミコト。
     通説
       神武・綏靖・安寧・懿徳・孝昭・孝安・孝霊・孝元・ 開化を架空とする
       崇神以降の宮址は三輪山山麓に固まっている
     鳥越説
       神武以降の宮址は葛城山から畝傍山にかけて固まっている
       葛城王朝と名付け崇神王朝によって倒されたとする
         天皇も宮址も実在性に乏しい

    15.吉備王国

     備前・備中は造山古墳・作山古墳等の巨大古墳地帯である、かつて大和朝廷と拮抗した独立的大勢力があって、吉備王朝と呼ぶ。
     「紀」応神22年に吉備の大酋長たちが兄弟であったと記されている、吉備の大酋長たちは平等な兄弟関係の系譜によって結合されていたと思われる。強力な世襲王権であったとは思えない。吉備の勢力は内部に矛盾や対立を抱えながら大和朝廷に対して独立性を保持していた、相対的な独立性であって王国であったかどうかは疑わしい。

    16.毛野

     上野・下野は毛野と総称され、上毛野君・下毛野君は君といったカバネを称している。
     上毛野氏の祖先伝承は応神朝に荒田別・巫別が百済から王仁を連れてきた、とある。仁徳朝に竹葉瀬と田道が新羅と蝦夷を討った、等とある。大和朝廷の外交・外征への参加が多い、これは記紀編纂時に作為されと思われ、毛野は大化に至るまで独立国として大和朝廷の配下ではなかった、とする説。
     安閑期に上毛野君小熊が朝廷と対立したという「紀」の記事を基に、6世紀にはまだ朝廷による支配が毛野にまで及んでいなかった、とする説。
     外征・外交に関する祖先伝承や「新撰姓氏録」にみられる帰化人との同族関係を評価して、上毛野氏は古くから朝廷の対外政策に参加し帰化人との接触も多く、外来の馬文化を積極的に取り入れた開明的豪族であった、とする説。
     上毛野氏は崇神天皇と紀国造の娘との間に生まれた豊城入彦を始祖としているので、上毛野氏の出身を紀伊に求める、説もある。

    17.飛鳥

     古代の飛鳥は現在の高市郡明日香村よりはるかに広く、稲淵山に源を発する飛鳥川の左右にわたって、東は細川山から香久山に連なる丘陵、南は高市村の北部から坂田・稲淵に及ぶ、西は白橿村の東部、北は鴨公村から香久山の西部に及んでいた。
     推古天皇がこの地の豊浦宮に即位してから元明天皇の初年まで、百数十年の間。孝徳・天智の2朝を除き、みな飛鳥の地を都とした。
     記・紀になどの伝承によれば、推古朝以前にも大和朝廷の大王たちはこの地に居を定めたことが有ったらしい。

    18.継体天皇

     武烈天皇なきあと、中央に皇位を継ぐべき適当な皇族がいなかったので、応神天皇の五世孫という老齢の男大迹王ヲホドノオオキミが越前から迎えられて河内で即位する。第26代継体天皇である。
     その後、継体天皇は河内・山城を転々として、即位20年目にして大和の磐余に居を定めた。
     応神の五世孫で地方出身であることといい、即位の事情と言い、長期間大和へ入らなかったことといい、継体の登場は幾つかの謎に包まれている。

      皇位の簒奪者とする説
       ・五世孫という出自をを疑問視し、先帝武烈の暴虐記事は継体登場の正当性を納得させるための虚構であるとみて、応神の五世孫と自称する北方の豪族が風雪に乗じて皇位を簒奪し、新王朝を開いたのが継体であるという新説が現れる。

      皇位の簒奪者ではないとする説
       ・「紀」には肝心の応神から継体に至る系譜が記されていない、そこで応神から継体に至る系譜を載せた「上宮記」逸文の用字法を検討して、この系譜が推古朝ごろの信憑性高いものであること
       ・「紀」に系譜が記されていないのは別に系図一巻が付属されていたために省略されたこと
       ・皇統と全然無縁な者が容易に皇位につけるとは考え難いこと

    19.両朝並立

     継体・欽明朝の内乱というのは、早く平子・喜田両氏が書紀紀年の乱れや朝鮮関係史料との関係から着目し提言していた、林氏が527年、磐井の乱後の全国的動乱や仏教伝来とのかかわりに視野を拡大して考察し直して提唱された。

     喜田氏の説
       継体天皇の崩御に先立って、欽明天皇を擁立した一族があり、これが継体朝を継いだ安閑・宣化朝と539年ごろまで対立していたというわけである。この両朝分立のもとにあたって、継体・安閑・宣化朝を支持した主勢力は大伴氏、欽明朝を支持した主勢力は蘇我氏といううのが通説である。

     反対の説
       蘇我氏は欽明天皇の側とだけしか婚姻関係を結んでいない。しかし安閑天皇の王宮は勾金橋宮マガリノカナハシノミヤ(今の橿原市金橋)、宣化天皇の王宮は檜隈廬入野宮ヒノクマノイオリノノミヤ(高市郡明日香村檜前)であり、ともに蘇我氏の勢力圏内である。特に安閑天皇はその宮室を勾金橋(蘇我氏の本拠地)に営んだ最初の天皇であった。

    20.聖徳太子

     「紀」の推古元年(593年)四月条に厩戸皇子を皇太子とし、
       馬子と共に天皇を補佐する
       立太子したことは疑わしい(皇太子を立てることは大化以降に慣例化)
       6世紀以降の皇位継承候補には大兄制が創出されるが、
         争いが絶えないため大化以降に皇太子制に切り替える
       聖徳太子の時代は過渡期であり皇太子制は確立していない

    21.十七条憲法・三経義疏

     憲法の文体が推古朝の金石文と異なるため、偽作とする説は江戸時代からある

     津田によれば
       ①国司や公民といった言葉は大化以前にはない
       ②中央集権的官僚制に酷似しているとして律令制が整った後で制定された

     近年、推古朝では中央集権的官僚制の萌芽が整備されていたと見る説もある

     三経義疏のうちの一つ法華義疏は太子の自筆とされている。
       太子信仰が盛んになった天平時代に朝鮮から輸入されたものとする説

     太子自らが維摩経や法華経を読み聞かせたという故事も
       「魏志 世宗紀」の維摩経を講ずとあることから着想を得たと考える説

    22.法隆寺

     7世紀に聖徳太子が創建、天智9年4月に焼け落ちる

     昭和14年に南大門の東から若草伽藍が発見され、再建設説が有力となる
       現法隆寺の伽藍配置とは異なる四天王寺伽藍(塔と金堂が一直線)

       五重塔の心柱下から出土した舎利容器の銀製透彫仏像の円光背から
         白鳳時代(7世紀末~8世紀初頭)の再建と考えられる

     飛鳥様式を伝える現存最古の木造建築であることに変りはない

     現法隆寺について、聖徳太子鎮魂の寺という新説が提唱される
       聖徳太子の後継者山背大兄王とその一家を殺害した天智や中臣鎌足らが、
       太子の怨霊をおそれるあまり鎮魂のために再建したという説

     現法隆寺の伽藍配置に関して、
       金堂と塔を東西に並置させているのは
         金堂に太子を、塔に釈迦の舎利を安置したため
       伴って中門の中央に柱を置き、
         それによってそれぞれの入口の意味をもたせたという説

    23.高松塚

     古墳が築造された7世紀末~8世紀初の間に死亡した人物
       璧画の蓋の色(深緑)からかなりの貴人
       人骨と歯の鑑定から筋付たくましい大柄の30歳以上の熟年の男子

     高松塚は蔽原京の朱雀大路を真南に延長した線上にほぼのり
       天武・持統合葬陵や文武陵などがこの線上にあり聖なるラインと呼ばれる

       天武天皇に繋がる皇族説
         被葬者も天武天皇につながる泉族とみて
           当初から天武の皇子忍聖親玉が有力候補にあげられる
           天武の皇子高市皇子、同じく弓削皇子、天武の異母兄弟蚊屋皇子

       貴族高官説
         死亡時大納言で右大臣を追贈された大伴御行が有力視されている
         かなり高齢で没した左大臣石上麻呂という説

     高松塚は帰化人の多い檜前に位置し、壁画が高句麗の古壕の壁画に似ている
       当時の画師は帰化人が多くを占めていたので

       高句麗や百済の亡命王族説
       帰化人有力者とする説

       これらの諸説は以下の理由で有力視されていない
         壁画の蓋の色と大宝令に規定された色とが矛盾する
         すでに他所に墳墓がある
         文献上の明証を欠く
         没年があまりにも高年過ぎる
         事衷誤認に基づく

    24.大化の改新

     戦前は皇権回復説、文化運動説、社会革命説等、戦後は律令制の起点とみる政治改革説

     近年、大化改新は蘇我氏討滅のクーデターにすぎず、
       律令制は白村江の敗戦と壬申の乱が契機となって天武朝以後に成立した
       大化改新は『紀』編者の虚構であるとする説

       大化改新詔には大宝律令の条文の影響がみとめられ、
         改新のスローガンであった公地公民制も天武・持統朝に整備されている

      『紀』の史観からの解放という点で虚構論は非常にすぐれたものである
        弱点は史料批判に武断が目立つ

        蘇我氏打倒ののち、ただちに飛鳥から難波へ遷都していることは、
          なんらかの政治改革を指向していたことを物語る

     改新肯定論  
       難波宮趾の発掘の結果、大化の難波遷都は事実であった
         その規模と様式から中国の都城をまねた最初のもの

       私地私民の収公は否定するが、
         改新に王民制から公民制への転換期としての意義を認める

     今後は、大化改新はなぜ行わなければならなかったか、
       どんな改革であったのかを理解するためには
       農民を在地で直接に支配していた国造層の動向などを追求する

    25.国譲り神話

     古代出雲の大和朝廷への服属過程をどうみるかということ
       タカミムスヒノミコトとアマテラスオオミカミの命をうけて、
       タケミカヅチ、フツヌシの両神が葦原の中つ国に派遣されるが、
       その中つ国はオオクニヌシノミコトの治める国であり、
       出雲国の伊那佐の小浜が国譲りのフィナーレの場所となった

     服属されるべき葦原の中つ国は記紀神話においては出雲の地であった
       出雲は被治者、高天原は治者としての統一を神話化したとする説
       大和の出雲族の出雲国内への移住を反映したとする説
       出雲東部の意宇オウの勢力が大和朝廷の助力を得て、
         西部の杵築キヅキ勢力を滅ぼし、国造に成長していった史実とする説
       東の大和に対して西の隅の出雲に代表される二元的対立が根底にあって
         その神話的象徴化が国譲りに他ならないとする説
       騎馬民族による征服王朝樹立の過程で、
         外来の天つ神が、日本列島に原住していた国つ神ー倭人を
         出雲において征服念し懐柔したとする説

    26.天孫降臨

     天から神や祖先が降臨したという伝承は種々伝えられている
       『出雲国風土記』には
         天乃夫比命アメノフヒノミコトの天下り
         宇夜都弁命ウヤツベノミコト天下り

       『常陸国風土記』には
         普都大神フツノオオカミの天下り

     物部氏の祖神饒速日尊ニギハヤヒノミコの降臨伝承(紀による)
       饒速日尊は天磐船に乗って天下り
       のちに神武天皇の大和平定に際し、衆を率いて帰順する

     『先代旧事本紀』の「天孫木紀」による
       饒速日尊は天神から
       魂振タマフリの神器天璽瑞宝十種アマツシルシミズタカラトクサを授けられ

       32神および5部、さらに25部の物部を従え
       船長・梶取・船子の運転する天磐船に乗って河内国哮峰イカルガダケに下り
       ついで大和の鳥見の白庭山に遷り住み
       長髄彦の妹三炊屋媛を娶って美真手命ウマシマデノミコを生んだが
       饒速日尊は早死にしてまた天に帰っていった

     『先代旧事本紀』は物部氏関係者の手によって9世紀に作られ
       『記紀』にみられぬ独自の記事も含まれており
       饒速日尊の降臨伝承も物部氏が独自に伝えていた祖神伝承である

    瓊瓊杵尊ニニギノミコトの降臨神話に匹敵する、あるいはより古い降臨伝承と言える

    27.皇祖神

     天照大神は皇祖神であることには間違いないが
       太陽神である、伊勢神宮に祭られている、最高の地位にのぼる
       これらの理由ついては、さまざまな方面から研究されている

     もう一柱の皇祖神としての高皇産霊尊タカミムスビノカミに注目する
       増化三神の一柱で、またの名を高木神タカキノカミという
       この神は天孫降臨、国譲り、神武東征など大事な場面に
       天照大神と並んで種々の命令を下す司令神としてしばしば登場する
       かなり尊貴な神として描かれている

       高皇産霊尊の司令神としての役割に注目し
       さらに又の名高木神の名義を朝鮮の檀君などと同じく
       山上や高い樹木に降臨する神と解釈することによって
       高皇産霊神こそ天皇族に固有な祖神であり
       天照大神は天皇族が朝鮮を経て日本へ侵入する前の先住農耕歳との通婚の結果
       先住民族の文化万般が天皇族のなかに混入しして二元性が生じ
       皇族神についても高皇産霊尊と天照大神という二元性ができたとする説

     伊勢神宮の祭神は太陽神であった高皇産霊尊で
       それが後に新しい太陽神天照大神にとって変わられた説

    28.三種の神器

     皇位のしるしである鏡、剣、玉を三種の宝物とする初見は
       『日本書紀』神代巻(天孫降臨章第一の一書)である
       ここでは、ただ天照大神が皇孫に賜ったというふうにのみ示されている

     『記』でも八尺瓊勾玉ヤサカニノマガタマ、八咫鏡ヤタノカガミ・天叢雲剣アメノムラクモノツルギと三種

     『古語拾遺』では鏡・剣の二種神宝とし、「矛、玉自ら従う」といっている

     三種の宝物の観念が発展し一般化するのは、鎌倉時代から南北朝時代にかけて
       発展するのは、三を聖教とする宗教観念と仏教、儒教の影響がいちじるしく、
       秘儀的な解釈等も次々に現われる

       三種の宝物を「三種の神器」とよぷようになったのも南北朝時代以降で、
       争乱を背景とする神国思想の高揚とともに、
      「三種の神器」の存在と意義が強調されるようになった

     三種の神器を、印欧語族のもっ思想体系である三機能分類と対応させて
       解釈する説が、比較神話学者から提出されている

       剣は戦士的軍事的な機能を持ち、鏡はアマテラス自身の御魂代であるから
         主権・祭政の機能を持ち
       玉は稲作を中心とする農業と関係しており
         生産的あるいは豊穣の機能を持つ
       三種の神器は異なる3つの社会的機能を有するとする説

       三種の神器は下記の神ともオーバーラップしている
         戦士的な機能のスサノオ
         主権的な機能のアマテラス
         生産的な機能のオオクニヌシ

    29.神の概念

     古代人は森罹万象あらゆるものに心霊を感じて信仰し崇拝してきた
       性格の異なる種々様々な心霊を
       これまた意味の異なる種々様々な言葉で表現した

       『記紀』を見ると、ほとんどの神名の末尾に神字を付してい る
       ヤマツミは山津見神、ククノチは久久能智神とい う具合にである

       『記紀』はあらゆる心霊を神名の末尾に神字を つけることによって
       カミという一語、神という一字で画一的統一的に表現し把握してい る

       性格のこ となるさまざまな神霊を総括的に観念しかつ表現している
         こうした森羅万象を総括的に思惟し表現することはいつ頃からか

         古くは種々様々な神霊を一括して観念することは未発達で
         神名の末尾に神字を付す習慣はなかった

         ところが中国の神思想の影響等によって、
         神名の末尾に画一的に神学を付して
         八百万の神霊を一括して表現できるようになった
           六世紀頃のことである

     あらゆる神霊をカミという一語、神という一字で表現し観念する
       神概念の成立は意外と新しいということである

    30.道教伝来

     道教は古代中国に起こった宗教で無病息災を願う民間の呪術に
       神仙思想や無意自然を説く老荘思想が加味されて成立した

     日本でも七世紀に広く行われていたが、仏教の伝来とは趣を異にする

     道教は教団を基礎に置く成立道教
       道観と呼ばれる道場を建て
         それを修業と布教の拠点とする道士がいる
       仏教や儒教のように
         外国の支配者から日本の支配者へと伝えられる

     民衆の中に食い込んだ道教信仰に支えられた民衆道教
       日本に伝来したのは民衆道教 
       渡来してきた民衆から日本の民衆へと伝えられていった

       日本固有の常世思想に少なからぬ影聾を与えた

       『紀』の皇極三年条に駿河の富士川のほとりに住む大生部多オオフベノオオカが
       巫覡らとしめし合わせて、蚕を常世の神として祭れば
       富裕長寿の功徳があると言って村人に奨めたところ、またたく間に大流行
       朝廷は秦河勝に命じて大生部多らを処罰させたという話が載せられている

       これは大化前に巫硯を媒介とする
         道教の布教組織が形成されつつあったことを伝えている

       と同時に、そうした動きを支配者は弾圧しよう としたことを物語っている

     斉明天皇が多武峰に築いた両槻宮フタツキノミヤは道観ではないかという説がある

  • データ正規化技術

    データの重複をなくし整合的にデータを取り扱えるように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.正規化と属性の変化

    正気かによる属性の変化

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

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

     商品表
      入荷表

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

    仕入先表
     電話帳

  • Zoomの使い方

    1.利用開始の方法

    1-1 インストールせずに使う

     会議の主催者に「招待」されて会議に参加する場合には、zoomをインストールしなくても会議に参加できます。ただし会議に参加する都度、毎回同じ作業が繰り返し必要になります。

     一時的に使用するにはzoomをインストールせずに使うのが快適です。面倒な「サインアップ」等のインストール作業が不要なため簡単に使い始められます、PCの扱いに慣れていない人との打ち合わせ、不特定多数とのオンライン飲み会等に素早く利用開始できます。

    1-2 インストールして使う

     Zoomをあらかじめインストールしておくとzoomを自由に使える様になります。思い立ったら会議の主催者になって参加者を招待できる様になります。また会議に招待されたら直ぐに会議に参加できる様になります。最初のインストール作業が面倒で煩わしいだけなので、繰り返しzoomを使う人には便利な道具となります。

  • 古墳

    1.概論

    古墳ブック写真による古墳の解説書
    百舌鳥・古市古墳群をあるく世界遺産を巡る解説書
  • Exploit Codeとは

    Exploitとは”悪用する”と言う意味

    1.概要

     エクスプロイトコードと呼ぶ
      プログラムのセキュリティ上の脆弱性を攻撃するために作成された
        簡易なプログラムの総称

      単にエクスプロイトとも呼ばれ、
        多くの場合、悪意を持って利用されるプログラムを指す

    2.開発目的  

     機器やソフトウェアには潜在的なセキュリティ上の欠陥が存在する
       エクスプロイトはこれを悪用して開発元や利用者が
       意図しない有害な事象を引き起こすことができるようにする

     元来、セキュリティホールを検査するために作成される検証用のプログラム
       セキュリティホールの存在を発見した人が、
       自分のコンピュータ環境以外の環境でセキュリティホールが
       どのように動作してどのような影響を及ぼすのかを、
       他の人に実証してもらうために作成する

       エクスプロイトコード受け取った開発者は、
       それぞれ自分の使用しているバージョンやプラットオフォームにおいて
       エクスプロイトコードを実行し、その動作を検証し、対策を講じる

       さまざまな環境下でエクスプロイトコードが研究された
       セキュリティホールは十分な対策が取られ安全性を確保される

     他方エクスプロイトコードは、悪用されれば、
       システムを攻撃するための恰好のツールとなる

       エクスプロイトコードを下地に用いれば、
       迅速かつ効率的な攻撃用プログラムを作成することも可能である

    3.使用結果

     善意で配布されるエクスプロイトコードは、
       検知された異状に対して報告を表示する程度の動作しか行なわない

     クラッカーに改造されることによって
       容易にシステムを破壊したり増殖を繰り返したりするツールになる
       そのためエクスプロイトコードはしばしば「諸刃の刃」と形容される

     エクスプロイトコードを悪用したウィルスやワームの出回る速度が、
       対処策を確立するよりも上回ってしまうケースも少なくない

       「エクスプロイトコードは公にすべきではない」という声も
       「積極的に公開して多くの人に対処への協力を仰ぐべきだ」とする声も
       いずれにせよ、セキュリティホールの改善者と攻撃者の間では、
       果てしなくせめぎ会いが繰り広げられる 

    4.特徴

     エクスプロイトは攻撃者が直接操作し攻撃を実行するよう設計される
       自己増殖や自動起動、他のデータやプログラムへの寄生など
       自律的な動作のための機能を持たないため、
       コンピュータウイルスなど他のマルウェアとは区別される

     概念実証(POC:Proof Of Concept)
       発見された脆弱性を利用した攻撃手法の概念実証や、
       脆弱性の検査のために開発されることもある

       そのような場合には自身は有害な振る舞いは行わない

     エクスプロイトの種類
       リモートエクスプロイト(remote exploit)
         通信回線やネットワークを通じて遠隔のシステムを攻撃対象とする
         プログラムが攻撃者のコンピュータで実行される

       ローカルエクスプロイト(local exploit)
         攻撃対象の内部で実行される(よう仕向ける)

  • OTP、Basic認証、Digest認証、Session-based認証、Token-based認証、OAuth、OpenID、SSO、SAML認証、Kerberos認証とは

    1.OTP(one time password)

     1度だけ、あるいは短期間だけ利用できるパスワードを利用した認証
       正しいIDとパスワードを入力した後、
       事前に登録した電話番号のスマートフォンなどに対し、
       ワンタイムパスワードを送信する

       送信されたワンタイムパスワードも正しく入力すれば、
       正当なユーザーであると判断する

     メリット
       毎回ランダムに生成され、時間が経過すると二度と使用できない
         第三者に読み取られても、不正アクセスされる可能性が低い
       毎回文字列が変化するという特性上
         従業員全員分のID・パスワードを管理する手間が省ける

     デメリット
       不正アクセスを100%防ぐ力がない
         端末がすでにマルウェアに感染している場合は情報を抜き取られる
         パソコンやスマホ端末自体の乗っ取り被害に弱い
         パスワードの送付先がバレていると読み取られる
         ログイン情報そのものが流出すると防ぎきれない

    2.Basic Auth(Basic Authentication)

     HTTPのプロトコル上で
       事前に設定したIDとパスワードを入力することで認証する
         最も基本となる認証方式

     認証に用いる情報を入手するだけで、かんたんに乗っ取ることが可能
       簡易的な機能でしかないため、そのほかのセキュリティ対策が必要

     デメリット
       セキュリティレベルが低く、暗号化に非対応
         リクエストごとに毎回認証を行うので煩わしい

    3.Digest認証

     IDやパスワードを入力してログインを行う認証方法
       入力したIDやパスワードをハッシュ化した上でサーバー側に送信する

       ベーシック認証にあったセキュリティレベルの脆弱性が改善される

       ハッシュ化とは、入力した文字を別の値に変換した上で送信すること
         一度変換した値は元の文字に復元できない

       送信時に入力した文字をハッシュ化して別の値に変換すれば
         第三者が入手できたとしても、アカウントが奪われることはない

     メリット
       ベーシック認証にあった脆弱性を改善し、セキュリティレベルが高い

     デメリット
       ユーザー側が誤って元のIDやパスワード情報を保管せず、
         ハッシュ化した後の値の方を保管してしまっていた場合では
         ハッシュ化した後の値は、元の文字に復元できないので
         元のIDやパスワードを忘れてしまった場合には再設定が必要

    4.Session-based認証

     Webサイトは一人一人にセッションIDと呼ばれる番号を割り当てる
       セッションIDによって一人ひとりの行動がすべて把握でき
       Webサイトにいるときはずっと同じセッションIDを持ち続ける

     Webサイトはを閲覧した履歴や情報をcookieに保存する
       cookieを使ってセッションIDを保存しておけば、
       ログイン時の認証を行うことなくスムーズに入ることが可能

     メリット
       ログインの度に認証を行う手間が省ける
         サイト側のログイン後の処理も高速で行えるようになる

     デメリット
       cookieを用いていることで、第三者が勝手にユーザーの電子機器を
         使った際には簡単に悪用ができてしまう

    5.Token-based認証

     cookieの代わりに、トークンを利用する方法
       トークンとは使い捨てのパスワードで
       30秒程度の短い時間しか使えないパスワードを発行し
       時間内に入力することで、ログインを可能にする

     トークンの種類
       ハードウェアトークン
         物理的な電子機器を用いたもの
           USB型や、キーホルダー型、カード型がこれに該当する

       ソフトウェアトークン
         PCやスマホなどで使用することのできるトークンアプリ
           アプリをインストールし、パスワードを発行し
           短時間だけ使用できるパスワードを表示する
           パスワードを入力することで認証がされる

     メリット
       高いレベルのセキュリティを保持できる
         パスワードがその都度使い捨てになるため、
         仮に第三者にパスワードを知られようと不正ログインを防止できる

       ユーザーがパスワードを記憶している必要や、再設定をする必要がない
       
     デメリット
       PCやスマホがウイルスに感染している場合には
         トークンで発行したパスワードをユーザーよりも早く使用できる

       毎回使い捨てのパスワードを発行するのが手間になる

    6.OAuth(Open Authorization)

     ユーザー本人以外に権限管理機能を持たせる
       自身の情報を扱う権利をサイト側に与える

       ユーザー本人以外にアカウントの権限管理機能を持たせる
         サービスやアプリ間の連携が可能となる

         Xで投稿した写真をFB等に自動で投稿できるようになる等々
           多岐に渡った使い方ができる

     メリット
       ユーザー登録の手間が省け、アプリ間の連携が可能になる
         他者にアカウントの権限を与える際も、
         ユーザー自身で行使する権限の範囲内や、
         行使可能な期限を設定できるため、
         セキュリティの安全性を維持できる

     デメリット
       他者に権限を与える際に、悪用される可能性がある
         権限を与える際は注意事項をしっかりと確認する 

    7.OpenID(オープンID)

     一つのIDとパスワードを使って複数のサービスやアプリが使える
       OpenIDとOAuthとの違いは、
         OpenIDは他者が利用できるのはログイン機能だけに限定されている

     メリット
       ユーザー登録の手間が省け利便性が向上する

     デメリット
       OAuthほどではないにしろ、
         アカウントの権限を他者に与えるので情報漏洩に注意する

    8.SSO(Single Sigh-On)

     一つのIDとパスワードだけで複数のWebサービスやアプリの認証を行う
       複数のIDやパスワードを作成する手間がなくなり、
       認証情報を一元化できる

     メリット
       一つのアカウント情報だけで一元管理できる

     デメリット
       万が一パスワードが流出してしまった場合は被害が拡大する

       SSO認証システムが停止してしまった場合には
         関連するすべてのサービスやアプリにログインできなくなる

    9.SAML(Security Assertion Markup Language)認証

     XMLベースの標準規格(サムル)を用いた認証方式

     SSO認証を実現させるための(SSO認証の一部)技術
       一つのIDやパスワードで複数のサービスやアプリの認証を行うこが出来る

       高いセキュリティレベルを持っている認証方法の一つ
         アクセス要求をしてきたユーザーに対して、
         なりすましを行っていないか登録しているユーザー情報と
         一致するか確認をした上で認証を行う

     メリット
       一度認証を行うだけで複数のサービスやアプリの認証を行わなくて済む
         利便性が非常に高くなる

     デメリット
       一度IDやパスワードが漏洩してしまうと被害が拡大する

    10.Kerberos認証

     ギリシャ神話の地獄の番犬(Greek:ケルベロス)に由来する

     SSO認証を実現させるための(SSO認証の一部)技術
       一つのIDやパスワードで複数のサービスやアプリの認証を行うこが出来る

       特徴は、チケットと呼ばれる機能(有効期限付き鍵)がある
         チケットには時刻同期の仕組みやタイムスタンプが記録されており
         万が一第三者が盗み見を行っていたとしても、
         有効期限内になりすましを行うのが難しい状態を作り出す
         
         チケットを持っているユーザーだけが認証される仕組み

     メリット
       一元管理や、管理の手間が省ける

     デメリット
       万が一チケットを第三者に奪われた際には、被害が拡大する

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

    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, 性別='男')
    
  • Gap Analysis、Core Competence Analysis、Value Chain Analysis、Pareto Analysisとは

    1.Gap Analysis

     目指す「理想の姿(To-Be)」と「現状(As-Is)」の差異(ギャップ)を
       特定・数値化し、目標達成に必要な課題や戦略を明確にする

       現状と目標を客観的に比較することで、
         改善すべきポイントを特定し、リソースの優先順位付けに役立つ

     主な目的とメリット
       現状の把握と可視化
          理想と現実の差異を明確にする
       優先順位の決定
         解決すべき課題(ギャップ)の重要性を整理し、効率的に取り組む
       戦略的な意思決定
         データに基づいた具体的なアクションプランを作成できる
       目的・適用範囲
         マーケティング、人材開発、業務プロセスの効率化等々

     基本ステップ
       「現状(As-Is)」を把握する
       「理想(To-Be)」を定義する
       「ギャップ」を識別する
       「改善策」を策定する

    2.Core Competence Analysis

     企業が競合他社に真似できない中核的な強みを特定・評価する
       顧客への価値提供、市場展開力、模倣困難性を指標に、
       企業独自の差別化能力(技術、組織能力など)を発見し、
       持続的な競争優位性を構築するために活用する

     分析の重要性
       Sustainable Competitive Advantage (持続的な競争優位)
         他社が真似できない差別化要因を見つける
       Strategic Focus (戦略的集中)
         経営資源を強みに集中させ、効率的に市場へ展開する
       Value Creation (価値創出)
         顧客に提供する独自の価値を明確にする
     
     評価指標
       Customer Value (顧客価値)
         顧客に提供する利益が「真に」顧客に認められるか
       Competitor Differentiation (競合他社との差別化)
         模倣困難性が高いか 
       Extendability (市場展開力):
         複数の市場・商品へ応用可能か

     分析の手順
       Refine and Focus (コアコンピタンスの確定と投資) 
       Identify Potential Competences (潜在的な強みの洗い出し)
       Evaluate Against Criteria (3つの基準で評価)

    3.Value Chain Analysis

     製品の企画から製造、販売、アフターサービスに至る一連の事業活動を
       「価値のつながり」と捉え、各工程で生み出される
       付加価値とコストを可視化・分析する

       自社の強み・弱み、競争優位の源泉を特定し、
         業務効率化や戦略的なリソース配分、差別化に役立てる

     主要な要素
       主活動(Primary Activities)
         商品の提供に直接関わるプロセス
           インバウンド(物流)
           オペレーション(製造)
           アウトバウンド(出荷)
           マーケティング・販売
           サービス

       支援活動(Support Activities)
         主活動を支えるプロセス
           企業インフラ(財務・法務)
           人事・労務管理
           技術開発
           調達

     主要な目的
       強み・弱みの把握
         自社の競争優位性の源泉を明確にする
       コストの可視化
         どの活動にコストがかかっているかを把握し削減や効率化に繋げる
       差別化要因の特定
         競合他社と比較し、どこで高い価値を生み出しているか分析する

     分析の手順
       活動の洗い出し
         自社の事業を工程別(主活動・支援活動)に分類する
       コスト・価値の分析
         各工程にかかるコストと付加価値を測定する
       強み・弱みの特定
         競合他社と比較し、差別化の要因を見つける
       戦略への落とし込み
         利益を生む活動に資源(ヒト・モノ・カネ)を集中させる

    4.Pareto Analysis

     多くの問題や原因の中から「最も影響の大きい重要な少数の要因」を特定する
       売上の80%は上位20%の顧客が占めるという「80:20の法則」に基づき
       項目を降順に並べた棒グラフと累積比率の折れ線グラフ(パレート図)を
       用いて、重点的な改善対象(ABC分析)を決定する

     メリット
       優先順位の可視化
         上位20%の要素がどれほど重要か一目で分かる
       意思決定の効率化
         対策を講じるべき重要な要素が特定され、業務効率化につながる
       効果の検証
         改善の前後でグラフを見比べることで、対策の効果を測定しやすい

     分析の手順(パレート図の作成)
       分析したいデータを集める(商品別売上、クレーム内容など)
       データが大きい順に並べ替え、棒グラフにする
       各項目の累計を計算し、全体に対する累積比率(%)を折れ線グラフで描画
       「上位70-80%」の累積割合に達する項目を「重要」と特定する

     重要ポイント
       グラフの読み方と作成手順
         左側の縦軸に各項目の数値を示す
         右側の縦軸に累積比率(パーセント)を示す

         棒グラフで各項目の大きさを表現する
         折れ線グラフで累積比率を表現する

         累積比率が80%に達するまでの項目数を確認する
           「全体の何%の要因が、結果の80%を占めているか」を明確にする

       ABC分析との関係と使い分け
         重要度に応じて項目をA(最重要)、B(重要)、C(普通)の
         3つのグループに分類する

         詳細な分類が必要な場合はABC分析
         視覚的な理解と意思決定のスピードを重視する場合はパレート分析

       80対20の法則が生まれる理由
         なぜ多くの現象で80対20の比率が見られるのか?
           自然界や社会現象において「べき乗則」と呼ばれる法則

           べき乗則(パワーロー、Power Law)とは
             ある現象の規模や頻度が、別の変数のべき乗に比例する関係
             ごく少数の要素が大多数の全体に影響を与える
               「不均衡な分布」を指す
             自然災害の頻度、所得分布、SNSのフォロワー数等
             複雑な現象の解析に多用される

  • 刑事コロンボ

     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またはスマホで自由に見ることができる

  • 四国酒蔵巡り(高知編)

    1.参照元

    四国の酒蔵88箇所巡礼の旅 企画主催者 ホームページ

    2.酒蔵(高知県のみ)
    第22番札所 美丈夫 濱川酒造
    第23番札所 南酒造場
    第24番札所 菊水酒造
    第25番札所 安芸虎 有光酒造
    第26番札所 土佐しらぎく 仙頭酒造
    第27番札所 響灘 響屋
    第28番札所 豊の梅 高木酒造
    第29番札所 文佳人 アリサワ
    第30番札所 松翁 松尾酒造
    第31番札所 桂月 土佐酒造
    第32番札所 朝峯神社
    第33番札所 土佐酒バル
    第34番札所 高知県酒造組合
    第35番札所 酔鯨酒造
    第36番札所 亀泉酒造
    第37番札所 瀧嵐 高知酒造
    第38番札所 司牡丹酒造
    第39番札所 酒造ホール 葉山の蔵
    第40番札所 純平 西岡酒造店
    第41番札所 桃太郎 文本酒造
    第42番札所 無手無冠
    第43番札所 藤娘酒造

    3.四国88箇所地図

    四国酒造地図

    四国酒造88箇所巡り(Google Mapで提供)

  • アヤメの種類判別(その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)

  • 「まちいろ」アプリの不具合

    1.「まちいろ」アプリ

     株式会社ホープの「自治体情報を提供する」アプリ
       提供される主な情報は
         ・広報誌・・・・月1回の更新
         ・新着情報・・・随時更新

     市役所のHPでもダウンロードしての使用を勧めている
       積極的な情報入手に協力するためにダウンロードした

    2.新着情報の分類がおかしい

     市役所の情報には「発行課」の名称が入っており見た目に分かりやすい
       <dc:subject>発行課名称</dc:subject>で提供されている
       アプリで表示される情報には「発行課」の名称が抜け落ちている

     アプリ内でRSSを解析して表示していると思われる
       「発行課」の情報を使用して表示していない
       このままだとアプリが使いづらい

    3.関係団体に問い合わせる

     問い合わせの結果
      ・市役所に問い合わせた結果
        「RSSを提供しているだけ」、「表示はアプリ側の責任」との回答
          ※お勧めしている割には”どうあるべきか”の認識がない


      ・「まちいろ」制作会社に問い合わせた結果
        「カテゴリー分けは自動で行っている」との回答
        自動とはどういうことかと聞き込むが、明確には返答が貰えない
          ※それほど力を入れている様には思えないので、これ以上は諦める

    4.まとめ

     両者ともに真摯に回答していただいた
       仕様だと言われれば「その通り」、部外者が口を挟むべきではない
       「発行課」名を表示してもよい自治体もああれば
       「発行課」名を表示してはまずい自治体もあるでしょう
       最小限の項目を表示しておけば、100点は取れなくても0点ではない

     アプリ使用者の数が増えてくれば、不具合だという人も増えるでしょう
       他市町村の広報誌を見る人は居ると思うが
       他市町村の新着情報を見る人は居ないと思う

     使用者が増えて、問題視されれば修正されると思い
       これ以上は問題視せず、このまま様子を見る
         ※その後、アプリはアンロードして使わないことにした

  • Bootstrapとは

    1.特徴

     レスポンシブWebデザインへの対応
       CSS3のメディアクエリを使用して
       ブラウザの横幅サイズを判断し、レイアウトを柔軟に調整する

     グリッドシステムでの構築を目指す
       グリッド(grid)は「格子」を意味する
         グリッド・コンピューティングとは
           ネットワーク上の資源を結びつけ
           多くのコンピュータを並列的に結び付けること
         WEBデザイン分野ではものを格子状に配置する
           画面上に格子のガイドラインを見立てて、
           それに合わせてコンテンツを配置する

    グリッド(イメージ)

    2.HTMLの構成

     JQueryとJSの部分を忘れずに、この順に組み込む

    <!DOCTYPE html>
    <html lang=“ja”>
      <head>
        <meta charset=“utf-8”>
        <meta http-equiv=“X-UA-Compatible” content=“IE=edge”>
        <meta name=“viewport” content=“width=device-width, initial-scale=1”>
        <title>Bootstrap Sample</title>
        <!– BootstrapのCSS読み込み –>
        <link href=“css/bootstrap.min.css” rel=“stylesheet”>
        <!– jQuery読み込み –>
        <script src=“https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js”></script>
        <!– BootstrapのJS読み込み –>
        <script src=“js/bootstrap.min.js”></script>
      </head>
      <body>
        <h1>Hello, world!</h1>
      </body>
    </html>

    3.グリッドの考え方

     画面は12個のグリッドより構成される
       コンテナ(Container)・・・内容全体
       ロー(Row) ・・・・・・・行
       カラム(Column)・・・・・列

    4.画面サイズと呼称

     形態 物理サイズ prefixの指定方法(*は数値) 表示幅
     デスクトップ 1200px以上 col-lg-* 1170px
     デスクトップ 992~1199px col-md-* 970px
     タブレット 768px~991px col-sm-* 750px
     スマホ 767px以下 col-xs-* 自動

    5.コード見本(横幅の分割単位を指定する)

     横幅に合わせて、表示されるグリッド数を指定する
       大きな画面では4カラムで3等分されて表示される
       小さな画面では6カラム2個と溢れた12カラム1個が表示される

    <div class="container">
        <div class="row">
            <div class="col-xs-6 col-lg-4"></div>
            <div class="col-xs-6 col-lg-4"></div>
            <div class="col-xs-12 col-lg-4"></div>
        </div>
    </div>
    大きな画面
    小さな画面

    6.コード見本(横幅の分割単位を指定する)

     横幅に合わせて、表示されるグリッド数を指定する
       大きな画面では8カラムと4カラムの2個が表示される
       小さな画面では6カラムが4個で2段、12カラムが1個表示される

    <div class="container">
        <div class="row">
            <div class="col-lg-8">
                <div class="row">
                    <div class="col-xs-6"></div>
                    <div class="col-xs-6"></div>
                    <div class="col-xs-6"></div>
                    <div class="col-xs-6"></div>
                </div>
            </div>
            <div class="col-lg-4"></div>
        </div>
    </div>

    7.簡略版(分かりやすい事例)

    <body>
      <h1>
     <header style="background-color:gray">Header</header>
     <div class="container-fluid">
       <div class="row">
        <div class="col-sm-2" style="background-color:red;">Red</div>
        <div class="col-sm-8" style="background-color:blue;">Blue</div>
        <div class="col-sm-2" style="background-color:yellow;">Yellow</div>
       </div>
     </div>
     <footer style="background-color:gray">Footer</footer>
     </h1>
    </body>

     カラムの合計を12に揃えるのが原則
       カラム数の合計が12より少ない場合・・・単純に左詰め
       カラム数の合計が12より大きい場合・・・改行される
     
     大きな画面(PC等)の場合
       header部とfooter部は横に目一杯(12カラム)広がる
       赤色は2カラム、青色は8カラム、黄色は2カラムになる



    小さい画面(スマホ等)の場合
      改行されて同じ長さになる

  • アンケート集計

    1.プログラム仕様

     組織内でメンバーにアンケートを取り、集計した結果を表示する
       アンケート内容は別途作成
       入力内容のDB保存と保存内容の照会部分を作成する

    2.アンケート部分

     アンケートへの回答を入力する部分
       事前登録済みの会員名を選択する(匿名の選択も可)
       各アンケート項目に「id」番号をプログラムで順次付与しておく
         (例)Q1、Q2・・・・
       「集計」ボタンがクリックされると
       回答はNo.34で定義した「post」メソッドで次のプログラムに渡される

    アンケート部分(見本)
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta name="GENERATOR" content="JustSystems Homepage Builder Version 17.0.15.0 for Windows">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <title>サンプル</title>
      </head>
      <body>
    
    <CENTER>
    <TABLE width=“700”>
      <TBODY>
        <TR>
          <TD align=“center”>クラブ「●●●●●」会員の皆さんにお聞きします。</TD>
        </TR>
      </TBODY>
    </TABLE>
    </CENTER>
    <DIV align=“center”>
    <HR style=“color : aqua;background-color : lime;border-width : thick;” align=“right”>
      <table width=“776”>
      <TBODY>
        <TR>
            <td align=“left” width=“733”><FONT size=“+2” face=“メイリオ”><B><I>   当クラブについての皆さんの<br>
                 パソコン環境をお聞きします<br>
            </I></B></FONT>  <b><font color=“#000099”>各項目の該当する○の処をクリックしてマーキングしてください<br>
              なお記述の部分がありますが記述入力苦手な方は空欄にして送信してください<BR>
               記述部分で入力苦手な方は、メモとして紙にお名前、項番を書いて提出お願いします</font></b></td>
          </TR>
      </TBODY>
    </table>
      <P>       </P>
    <FORM action=“http://●●●●●●/gathering.php” method=“POST”><BR>
    <INPUT type=“hidden” name=“_code” value=“kouza_data”>
      <table width=“409”>
      <TBODY>
        <TR>
          <TD height=“33” width=“77”><B><FONT size=“+1”>お名前</FONT></B></TD>
          <TD height=“33” width=“150”>   <SELECT size=“1” name=“name” style=“font-size : medium;”>
    <OPTION value=“◇◇◇さん”>◇◇◇さん</OPTION>          
    <OPTION value=“◆◆◆さん”>◆◆◆さん</OPTION>
            </SELECT> </TD>
        </TR>
      </TBODY>
    </table>
      <TABLE border=“1” width=“817” cellspacing=“0” cellpadding=“2”>
      <COL span=“1” width=“30”>
      <COL span=“1” width=“300”>
      <COL span=“1” width=“400”>
      <TBODY>
          <TR>
          <TD bgcolor=“#d3d5fc” id=“Q5_head”>Q1</TD>
          <TD bgcolor=“#defaf8” width=“376”>パソコンの経験年数?</TD>
          <TD bgcolor=“#ffffca” width=“374”></TD>
          </TR>   
      </TBODY>
    </TABLE>
    <BR>
    
    ***** 途中 アンケート項目 省略 *******
    
    <BR> 
    <P>お疲れ様でした。「送信」ボタンを押して回答を送信してください。</P>
    <input type=“submit” value=“送信”>
    <HR>
    </FORM>
    </DIV>
    <CENTER></CENTER>
    <CENTER></CENTER>
    
     </body>
    </html>
    

    3.回答をDBへ保存部分

     渡された回答結果をDBに保存する部分
       既に登録済みの方なら「Update」処理
       初めての方なら「Insert」処理

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang="ja-JP">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <meta http-equiv="Content-script-Type" content="text/javascript">
    <link rel="stylesheet" href="index.css" type="text/css" media="all">
    <title>サンプル</title>
    </head>
    <body >
    
    <?php
    
    	require('●●●●●●/Common_Func.php');      
    	require('●●●●●●/InquiryDB_Func.php');      
    
    	$sName	= $_POST['name']; 
    	$sQ1	= $_POST['Q1']; 
    	$sQ2	= $_POST['Q2']; 
    	$sQ3	= $_POST['Q3']; 
    	$sQ4	= $_POST['Q4']; 
    	$sQ5	= $_POST['Q5']; 
    	$sQ6	= $_POST['Q6']; 
    	$sQc1	= $_POST['Qc1']; 
    	$sQ7	= $_POST['Q7']; 
    	$sQ8	= $_POST['Q8']; 
    	$sQ9	= $_POST['Q9']; 
    	$sP1	= $_POST['P1']; 
    	$sP2	= $_POST['P2']; 
    	$sP3	= $_POST['P3']; 
    	$sP4	= $_POST['P4']; 
    	
    	$cid	= LearnDB_Open();  
    
        $temp = "ok";
        foreach ($sQc1 as $value)
    	 {
    	    if ($temp == "ok")
    	        {
    	          $temp = $value;
    	        }
    	      else
    	        {
     		      $temp = $temp."、".$value;
    	        }
    	 }
    
      	$sql 	= "select * from $tRec_Name where ($Name = '$sName' )";   
        $result	= MySQL_query($sql,$cid)   
                    or die("failled to query of [$sql]");
        $row 	= MySQL_fetch_array($result);           
    
        if ($row[$Name] == $sName)
          {
            $sql 	= "update $tRec_Name set $Q1 = '$sQ1', $Q2 = '$sQ2', $Q3 = '$sQ3', $Q4 = '$sQ4', $Q5 = '$sQ5',
                                             $Q6 = '$sQ6', $Qc1 = '$temp', $Q7 = '$sQ7', $Q8 = '$sQ8', $Q9 = '$sQ9',
                                             $P1 = '$sP1', $P2 = '$sP2', $P3 = '$sP3', $P4 = '$sP4'
            			where ($Name = '$sName')";   
            $result	= MySQL_query($sql,$cid)   
                        or die("failled to query of [$sql]");
        
    		print  "update";
          }
        else
          {  	
    		$sql 	= "insert into $tRec_Name ($Name,$Q1,$Q2,$Q3,$Q4,$Q5,$Q6,$Qc1,$Q7,$Q8,$Q9,$P1,$P2,$P3,$P4) 
    					values('$sName','$sQ1','$sQ2','$sQ3','$sQ4','$sQ5','$sQ6','$temp','$sQ7','$sQ8','$sQ9','$sP1','$sP2','$sP3','$sP4')";   
    	    $result	= MySQL_query($sql,$cid)   
                        or die("failled to query of [$sql]");
          
    		print  "insert";
          }                  
    
    	LearnDB_Close($cid);			
    ?>
    </body>
    </html>

    4.アンケート結果の照会部分

     アンケートの回答をDBから呼び出し一覧を表示する
       名前順に全件を表示対象とする

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang="ja-JP">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <meta http-equiv="Content-script-Type" content="text/javascript">
    <link rel="stylesheet" href="index.css" type="text/css" media="all">
    <title>サンプル</title>
    </head>
    <body >
    
    <?php
    
    	require('●●●●●●/Common_Func.php');      
    	require('●●●●●●/InquiryDB_Func.php');      
    
    	$cid	= LearnDB_Open();  
    
      	$sql 	= "select * from $tRec_Name ORDER BY $Name";   
        $result	= MySQL_query($sql,$cid)   
                    or die("failled to query of [$sql]");
        $row 	= MySQL_fetch_array($result);    
        
        while ($row = MySQL_fetch_array($result))
          {    
            print "*******************"."<br>";
            print $row[$Name]."<br>";
            print "   Q1  ".$row[$Q1]."<br>";
            print "   Q2  ".$row[$Q2]."<br>";
            print "   Q3  ".$row[$Q3]."<br>";
            print "   Q4  ".$row[$Q4]."<br>";
            print "   Q5  ".$row[$Q5]."<br>";
            print "   Q6  ".$row[$Q6]."<br>";
            print "   Q7  ".$row[$Qc1]."<br>";
            print "   Q7  ".$row[$Q7]."<br>"; 
            print "   Q8  ".$row[$Q8]."<br>";
            print "   Q9  ".$row[$Q9]."<br>";
            print "   P1  ".$row[$P1]."<br>";
            print "   P2  ".$row[$P2]."<br>";
            print "   P3  ".$row[$P3]."<br>";
            print "   P4  ".$row[$P4]."<br>";
            print "*******************"."<br>";
    
          }
    
    	LearnDB_Close($cid);			
    
    ?>
    
    </body>
    </html>  

    5.補足資料

     当時の資料

  • 日本語ファイル名


    名前が日本語(全角)のファイルをダウンロードする方法

    1.日本語名称を直接渡す方法

     サンプル(new_page_40.php)の内容

    <?php
    session_start();
    header(“Content-type: text/html; charset=UTF-8”);
     
    if(isset($_GET[“file”])){
    	$real_fname = $_GET[“file”];
    } else {
    	die(“Error: ファイルが指定されていません”);
    }
     
    $_GET = array();
     
    $real_path = “doc/” . $real_fname;
     
       /* ファイルの存在確認 */
         if (!file_exists($real_path)) {
            die(“Error: File(“.$real_path.“) does not exist”);
        }
     
      /* オープンできるか確認 */
        if (!($fp = fopen($real_path, “r”))) {
            die(“Error: Cannot open the file(“.$real_path.“)”);
        }
        fclose($fp);
        
      /* ファイルサイズの確認 */
        if (($content_length = filesize($real_path)) == 0) {
            die(“Error: File size is 0.(“.$real_path.“)”);
        }
        
        $fp = fopen($real_path, “rb”);
        header(“Content-Length:” . filesize($real_path));
        header(“Content-Type:” . mime_content_type($real_path));
    	header(“Content-Disposition: attachment; filename=’.$real_fname”);		
    	while(ob_get_level()){
    		ob_end_clean();
    	}
    fpassthru($fp)
     
    ?>

     日本語名称が【SHIFT-JIS】の場合には
       事前に対象ファイル名を【UTF-8】に文字変換しておく

     一番、手軽で分かりやすい仕組み
       文字変換の手間が難点になる
       英数字ファイル名にして中身は画像かPDFにするのが一番簡単

     ダウンロードファイルの日本語名を直接渡す
       使用例(new_page_40.php)

    
    1
    http://●●●●●●/●●●●●●/new_page_40.php?file=日本語名称.txt

    2.ファイル名を2種類指定する方法

     サンプル(new_page_20.php)の内容

    <?php
    session_start();
    header(“Content-type: text/html; charset=UTF-8”);
     
    $download_fnane = isset($_SERVER[‘PATH_INFO’])? trim($_SERVER[‘PATH_INFO’],‘/’):NULL;
     
    if(isset($_GET[“file”])){
    	$real_fname = $_GET[“file”];
    } else {
    	die(“Error: ファイルが指定されていません”);
    }
     
    $_GET = array();
     
    $atai      = explode(“,”,$real_fname);
    $real_path = “doc/” . $atai[1];
     
       /* ファイルの存在確認 */
         if (!file_exists($real_path)) {
            die(“Error: File(“.$real_path.“) does not exist”);
        }
     
      /* オープンできるか確認 */
        if (!($fp = fopen($real_path, “r”))) {
            die(“Error: Cannot open the file(“.$real_path.“)”);
        }
        fclose($fp);
        
      /* ファイルサイズの確認 */
        if (($content_length = filesize($real_path)) == 0) {
            die(“Error: File size is 0.(“.$real_path.“)”);
        }
        
        $fp = fopen($real_path, “rb”);
        header(“Content-Length:” . filesize($real_path));
        header(“Content-Type:” . mime_content_type($real_path));
    	header(“Content-Disposition: attachment”);	
    	while(ob_get_level()){
    		ob_end_clean();
    	}
    fpassthru($fp)
     
    ?>

     ダウンロードファイル名と出力ファイル名を日本語で渡す
       ダウンロード対象ファイルは【SHIFT-JIS】で英数字
       ダウンドード後のファイル名に日本語名称を指定する

     使用例(new_page_20.php)

    http://●●●●●●/●●●●●●/new_page_20.php?file=日本語名称.txt,aaaaaa.txt

       出力ファイル名を指定しないと、省略値解釈で「実行ファイル」となる

    3.プログラム内で出力名を明示する方法

     サンプル(new_page_30.php)の内容

    <?php
    session_start();
    header(“Content-type: text/html; charset=UTF-8”);
     
    if(isset($_GET[“file”])){
    	$real_fname = $_GET[“file”];
    } else {
    	die(“Error: ファイルが指定されていません”);
    }
     
    $_GET = array();
     
    $real_path = “doc/” . $real_fname;
     
       /* ファイルの存在確認 */
         if (!file_exists($real_path)) {
            die(“Error: File(“.$real_path.“) does not exist”);
        }
     
      /* オープンできるか確認 */
        if (!($fp = fopen($real_path, “r”))) {
            die(“Error: Cannot open the file(“.$real_path.“)”);
        }
        fclose($fp);
        
      /* ファイルサイズの確認 */
        if (($content_length = filesize($real_path)) == 0) {
            die(“Error: File size is 0.(“.$real_path.“)”);
        }
        
        $fp = fopen($real_path, “rb”);
        header(“Content-Length:” . filesize($real_path));
        header(“Content-Type:” . mime_content_type($real_path));
    	header(“Content-Disposition: attachment; filename=’.$real_fname”);		
    	while(ob_get_level()){
    		ob_end_clean();
    	}
    fpassthru($fp)
     
    ?>

     ダウンロードファイル名と出力ファイル名を日本語で渡す、所は同じ
       渡す内容は変更せず、プログラム内で出力ファイル名を指定する
        【Content-Disposition: attachment】を使って出力する

     使用例(new_page_30.php)

     http://●●●●●●/●●●●●●/new_page_30.php?file=日本語名称.txt,aaaaaa.txt

    4.日本語名称を【PATH_INFO】で渡す方法

     サンプル(new_page_10.php)の内容

    <?php
    session_start();
    header(“Content-type: text/html; charset=UTF-8”);
     
    $download_fnane = isset($_SERVER[‘PATH_INFO’])? trim($_SERVER[‘PATH_INFO’],‘/’):NULL;
     
    if(isset($_GET[“file”])){
    	$real_fname = $_GET[“file”];
    } else {
    	die(“Error: ファイルが指定されていません”);
    }
     
    $_GET = array();
     
    $real_path = “doc/” . $real_fname;
     
       /* ファイルの存在確認 */
         if (!file_exists($real_path)) {
            die(“Error: File(“.$real_path.“) does not exist”);
        }
     
      /* オープンできるか確認 */
        if (!($fp = fopen($real_path, “r”))) {
            die(“Error: Cannot open the file(“.$real_path.“)”);
        }
        fclose($fp);
        
      /* ファイルサイズの確認 */
        if (($content_length = filesize($real_path)) == 0) {
            die(“Error: File size is 0.(“.$real_path.“)”);
        }
        
        $fp = fopen($real_path, “rb”);
        header(“Content-Length:” . filesize($real_path));
        header(“Content-Type:” . mime_content_type($real_path));
    	header(“Content-Disposition: attachment”);
    	while(ob_get_level()){
    		ob_end_clean();
    	}
    fpassthru($fp)
     
    ?>

     各々のファイル名の渡し方の例として
       出力ファイル名を【PATH_INFO】を使って「日本語名称」で渡し、
       ダウンロードファイル名は【SHIFT-JIS】で【GET】で受け取る

     使用例(new_page_10.php)

    http://●●●●●●/●●●●●●/new_page_10.php/日本語名称.txt?file=aaaaaa.txt

    5.補足資料

     当時の資料

  • 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時頃。
    その時に小暮は生原を殺しに出かけていたので、古畑はこの話を元に事件当時の小暮のアリバイは嘘だと確信した。

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