2022/10/02

TwitterやFacebookは人力キュレーションツールとして使う

TwitterやFacebookの使い方がコロナ禍で変わったように思う。
TwitterやFacebookは人力キュレーションツールとして使うべきだ。
ラフなメモ。

【参考】
Twitterは最速のメディア: プログラマの思索

ビジネス特化SNS「Linkedin」から見えるもの~人脈はデータマイニングで作られる: プログラマの思索

Facebookはセルフブランディングの最強ツール: プログラマの思索

MEDIA MAKERSの感想: プログラマの思索

Clubhouseは路上ライブや朗読のためのツールかもしれない: プログラマの思索

「現代病「集中できない」を知力に変える 読む力 最新スキル大全」の感想: プログラマの思索

たとえば、コロナの情報を知るには、新聞やテレビ、書籍では不十分だ。
なぜなら、まだその知見や真実が最新論文にしか存在せず、それを解説する情報が新聞やテレビ、書籍にはないから。
だから、医療現場でコロナ患者に対応している医者、コロナワクチンを研究している医療研究者、コロナウイルスの流行を予測する疫学者から情報を収集すればいい。
すると、彼らはTwitterで情報を流しているので、彼らを特定してツイートを逐次読めばいい。

実際、武漢ウイルスからデルタ株、オミクロン株へ変異するうちに、コロナの毒性やかかりやすさもどんどん変化している事実が分かったし、mRNAワクチンのおかげで沢山の人が助かった事実もわかってきたわけだ。

また、Twitterのインフルエンサーのうち信頼できる人達を集めてみると、その分野で専門的知識や専門用語を正しく使えて、その専門知識を一般人にもわかりやすく説明できる能力を持っている傾向がある。
また、インフルエンサーで能力のある人は、他人をけなす言葉は言わないし、人格的な面が言葉に出てきている場合が多い。
僕も、専門知識を使えないインフルエンサーはできるだけ排除しようとしている。
つまり、SNSを集合知として扱うメリットがある。

Facebookの友達関係では、ビジネル上の人間関係から発生する事が多く、同じ業界や同じ興味を持つ仲間が多い。
その集団からの情報発信を集めることになる。
つまり、彼らの興味から発信した情報は、自分にも有用であるケースが多いから、Facebookは友人がわざわざ発信した情報を読むだけで最新情報を入手できる。

たとえば、IT業界にいれば、アジャイル界隈の人達とたくさんFacebookの関係を作っておけば、勝手にアジャイルの最新情報は入手しやすい。
税理士、行政書士、中小企業診断士のような士業も、Facebook上でコミュニティを作る場合が多いので、最新のセミナー情報や補助金、お仕事の情報を集めやすくなるメリットがある。

以前は、TwitterやFacebookなどのSNSは無駄な情報が多く、遊びでしか使っていないイメージが多かったが、今は違う。
そんな経緯を踏まえると、TwitterやFacebook、LinkedinなどのSNSは情報収集ツール、人力キュレーションツールとして使うべきだ。

換言すれば、SNS上の人間関係が深い人ほど、最新情報を入手できて、正しい意思決定により近づける可能性もあるのだろう。

| | コメント (0)

計量政治学と計量経済学の考え方の違い

経済セミナー2022年10・11月号 通巻728号【特集】いま、政治の問題を考えるを読んでいたら、計量政治学と計量経済学の考え方の違いの記事が面白かった。
以下はラフなメモ書き。

機械学習で反実仮想や自然実験が作れる: プログラマの思索

Pythonで微分積分や統計の基礎を理解しよう: プログラマの思索

経済学は信頼性革命や構造推定により大きく変貌している: プログラマの思索

経済学や心理学の実験で得られた理論は再現性があるのか?~内的妥当性と外的妥当性の問題点がある: プログラマの思索

Rによる計量経済学/計量政治学を読んでいる: プログラマの思索

【1】計量政治学と計量経済学の考え方の違い

政治学の方が特定地域のこだわりがある。
たとえば、NPO法人や政治家にインタビューするために、現地言語を習得したり、その国の文化に慣れる必要がある。
経済学はそこまでこだわらない。

一方、政治学は理論と計量をそこまで区別しない。
政治学は定性データを重視するし、時事問題を重視する。
たとえば、リーマン危機、ウクライナ戦争など。
しかし、経済学では、理論と計量を区別し、過去に蓄積してきた理論を使って、計量データを用いて、政策の効果を測定したりする。
だから、経済学では、理論の人は計量の論文を読め、計量の人は理論の論文を読め、と言われるらしい。

【2】計量政治学から得られた経験則

独裁者は暴力行使の利益とコストを勘案して多様な手法で大衆を制御しようとする。
ここに独裁者のジレンマがある。
権威主義的な国の選挙は実行がすごく難しい
選挙の不正がなければ、野党や反体制の人達がのさばり、自分たちの権力を脅かそうとする。
一方、選挙で不正を実施しすぎると、本当の支持率が分からないし、どこの地域が支持率が高く、どこの地域に反体制の人達が実は多いのか、分からない。
つまり、自発的な支持が得られないので、実は権力基盤が脆い事実を国民の皆が知っている。
だから、権威主義国の独裁者は実は裸の王様。
だから、独裁者は、自分の支持率はじつは高いのだ、というシグナルを国民に知らせる必要があり、あの手この手を使っている。

また、農業主体の国は人々が散在しており、組織化しにくい。
つまり、一体化して反抗しにくい傾向があるらしい。
すなわち、都市化した国の方が、民衆が組織化しやすく、一致団結しやすいので、民主化しやすい傾向があるらしい。

この話を読んで、フランス革命は実はパリ革命だった、という話を思い出した。
なぜなら、フランスは中央集権の王権国家であり、パリに人民も富も集中していたので、パリで体制変革されると全土にその余波が行き渡っていたから。

【3】民主化はいつどのように起きるのか?

色んな国の統計データを調査すると、与党と野党の間に、権力基盤の合意がある前提があるらしい。
つまり、信憑性のあるコミットメントが存在している。
だから、クーデターや内戦のような暴力行為による政権交代は必要なくなる。
たとえば、韓国や台湾、南アフリカなどがその事例に相当するだろう。

【4】計量政治学に機械学習や深層学習を用いて得られたノウハウ

権威主義国では統計データを不正に操作しているので信頼性が低い。
だが、夜間の光量データから経済活動の活発さを見る、という手法を取ることもできる。
その場合、衛星からの画像データをCNNに食わせて、計測アルゴリズムを作り出す、というやり方も取れる。

すると試行錯誤による発見的予測アルゴリズムの成果はどうだったのか?
4つある。

1つ目は、本来のアルゴリズムは藪の中。
真の因果関係を表すアルゴリズムは不明だった。
特に、深層学習の場合は、予測できたとしても説明可能性は低い。
正しいモデルアルゴリズムにこだわるのは不毛なことがある。

2つ目は万能なアルゴリズムは存在しないこと。

3つ目は、次元の恵みを活用せよ。
説明変数の次元が増えるほど、必要なデータ量は指数関数的に増えて計算できなくなる。
つまり、次元の呪いが発生する。

そこで、次元の呪いを解決するために、予測に必要な説明変数を絞り込む変数選択、過学習を防ぐ正則化などを用いる。
しかし、予測に使える変数は全て投入して、次元の恵みを最大限活用する方法もあるのでは、と。

4つ目は、予測可能性と説明可能性のジレンマがある。
深層学習は、予測性は高いが理屈は複雑で説明しにくい。
一方、線形回帰や決定木は、予測は微妙だが説明しやすく、因果関係を明確にしやすい。
そういうトレードオフがある。
つまり、政策介入の因果関係としての効果を測定することと、機械学習による予測は完全に調和しないのだ。

僕はこのトレードオフは、実際の政策を実行する上で、ハードルが高くなるリスクがあると思う。
たとえば、財政出動や補助金をばらまく政策を実行する時に、これだけの効果を予測できます、とアナウンスすることで、国民や利害関係者を納得させたいが、その効果の因果関係を説明できなければ、本当に効果があるのかと疑問に思う人も増えて、その制作に反対する人が増えてしまい、せっかく期待していた効果が実行しても得られないリスクが出てくるからだ。

経済学のルーカス批判のように、政治学でも自己予言的なリスクがあるのかもしれない。

| | コメント (0)

2022/09/24

テスト管理ツールCAT、TestRail、QualityForwardのオンラインのマニュアルのリンク

テスト管理ツールCAT、TestRail、QualityForwardのオンラインのマニュアルが公開されていたので自分用にメモ。

【参考】
CATとは? :: CATマニュアル

TestRail ドキュメント

QualityForward マニュアル

テスト管理ツールTestRail、CAT、QualityForwardの感想: プログラマの思索

テスト管理ツールに必要とされる機能要件は、欧米と日本で異なるのではないか: プログラマの思索

TestLinkがExcelのテスト仕様書よりも素晴らしい点: プログラマの思索

2022年現在、日本で有償のテスト管理ツール導入を考えた場合、上記の3つに絞られるのではないだろうか。
理由は、3社ともに日本の開発元、販売元であるので、サポートを受けやすいためだ。

僕としては本来はOSSのTestLinkを使いたいが、やはり使いにくい場面も多い。
上記3つの有償のテスト管理ツールはUIもよく考えられていて、マニュアル無しでもソフトウェア開発チームならばすぐに導入できるだろうと思う。

個人的印象では、CATとQualityForwardはExcelテスト仕様書のUIイメージに近い。
だから、Exccelのテスト仕様書をWebに置き換えただけ、という感覚で使える。

一方、TestRailは、テストケースを全てWeb上で一括管理するためのツールだ、という特徴を強く押し出している。
Web上でテストケースを追加したり更新したり、Redmine障害チケットと連動したりするUIがすごく使いやすい。
Redmineがチケット管理をWebに置き換えたように、TestRailはテストケース管理をExcelからWebへ完全に置き換えたイメージに近い。

よって、僕の感覚ではTestRailが好きなのだが、やはりテストケースは数千~数万も登録する必要があるので、そのままでは現場で使えないと思う。
そこで、事前にCSVやXMLで大量のテストケースを作り込んで一括インポートし、実行フェーズではTestRailで運用する、というやり方が一般的ではないか、と推測している。
つまり、TestLinkを運用する時と同じように、事前にExcelテストケースは準備し、一括インポートした後、テスト実施管理はTestLinkでやる、みたいな感じだ。

テスト管理ツールCAT、TestRail、QualityForwardのオンラインのマニュアルをより詳しく読んで理解したいと思う。

| | コメント (0)

2022/09/18

「ソフトウェアアーキテクチャの基礎」本はアーキテクトが読むべき本だった

ソフトウェアアーキテクチャの基礎」は良い本と思う。
アーキテクトが読むべき本だったと思う。
ラフなメモ。

【1】ソフトウェアアーキテクチャの定義とは何か?
以前の定義は、ソフトウェアアーキテクチャとは後から変更することが難しいモノだった。
しかし、今は、マイクロサービスの出現により、変化しやすい設計を指すようになって、ガラリと変わった。

【2】アーキテクチャの重要な要素は、トレードオフの決定だ。
品質、コスト、スケジュール、スコープのバランスから、一番最良のものを選ぶ。
それぞれの要素を最大限にするのではなく、トータルでバランスが取れているものを選ぶ。

【3】アーキテクトに期待されている役割。

アーキテクチャ決定を下す。
アーキテクチャを継続的に分析する。
アーキテクチャの最新のトレンドを把握している。
アーキテクチャ決定の順序を徹底している。
様々な技術に精通している。
事業ドメインに詳しい。
対人スキルや政治力を持つ。

【4】ソフトウェアアーキテクチャを語る上で、XPの偉大さがある。

XPでは、プロセスよりも経験的に知られていたプラクティスを重視した。
たとえば、テストが多いほど品質が良くなる経験から、テスト駆動を生み出した。
継続的インテグレーション、コードの共同所有、継続的デプロイなど。

【5】ソフトウェアアーキテクチャの法則は2つ。

1つは、トレードオフが全て。
トレードオフが見つからないならば、分析が不十分な事実を知るべきだ。

2つ目は、HowよりもWhyが大事。

【6】モジュール性とは何なのか?

モジュール分割するアーキテクチャのテクニックの利点は分かる。
しかし、モジュールの実現方法はあまり知られていない、とメイヤーは言った。
この話は、コンポーネント志向につながる。

Javaならば、当初のJDKはパッケージで分割した。
しかし、それだけでは扱いづらいので、Jarというコンポーネントが導入された。
しかし、Jar同士でパッケージ名が衝突する場合があるから、module systemがJava9から導入された。
つまり、Javaもモジュール性の実装方法に苦労している。

【7】本の途中のコラムがとても参考になる。

【7-1】スウェーデンで軍艦ヴァーサ号を製造したが、初めて処女航海に出ようとした時に、すぐに港で沈没した話。

失敗の原因は、アーキテクチャ特性を全部盛り込みすぎて、軍艦が重すぎてしまい、バランスが取れなくなり沈没した。
数多くの利害関係者の要求を最新鋭の軍艦に盛り込んだために、軍艦として実現できなかった。

今のソフトウェアアーキテクチャの話も同じ。
ユーザのたくさんの要望を盛り込みすぎると、結局使い勝手の悪いシステムになってしまうし、それ以前にスケジュールが伸びすぎて永遠にリリースされないシステムになるリスクすらある。

【7-2】ドメイン駆動設計の意義は、境界づけられたコンテキストという概念により、アーキテクチャ設計手法が大きく変わった点にある。

ドメイン駆動設計の出現以前は、組織内の共通エンティティは再利用を重視していた。
しかし、再利用を重視しすぎて、ビルドが困難になり、チーム間の調整が難しくなり、ソフトウェアの複雑さが増大し、多くの問題を引き起こした。
たぶん、ソフトウェアプロダクトラインの話も同じ。

ドメイン駆動設計の出現後、境界づけられたコンテキストの考え方により、各エンティティは局所化されたコンテキストの中で最もよく機能すればいい。
つまり、組織全体の共通エンティティは不要であって、問題領域ごとにエンティティを自由に作り、その中で最適化されたエンティティを作ればいい。
問題領域のドメインの境界上で調整すればいい。
つまり、この考え方がマイクロサービスにつながるわけだ。
マイクロサービスの実装言語はGo言語が主流である。

各ドメイン内のシステムはRailsだったりPythonだったりPHPでもよく、複数のプログラミング言語で作られたシステムとGo言語によるマイクロサービスがAWSのようなクラウド上で動くアーキテクチャが多いわけだ。

【8】コンポーネント設計では、分割の観点は何か?

コンポーネント設計とは、アーキテクチャの分割であるという考え方。
レイヤーアーキテクチャがよく使われる。
たとえば、Javaの依存性注入(DI)、DLLやJarなどのコンポーネント。

この考え方を進めると、開発スタイルはコンウェイの法則に縛られることになり、複雑な組織構造が反映された複雑なアーキテクチャになってしまう。
だから、逆コンウェイ戦略という考え方が出てきた。

一方、コンポーネント設計とは、ドメインによる分割であるという考え方。
これはドメイン駆動設計であり、マイクロサービスアーキテクチャにつながる。

ドメインごとに開発チームを作ることにより、コンウェイの法則のリスクを避けられる。
逆コンウェイ戦略をそのまま実現しやすい。

【9】アーキテクチャスタイルとは、アーキテクチャのパターン集。

モノリシックアーキテクチャと分散アーキテクチャに分かれる。

モノリシックアーキテクチャ:

レイヤーアーキテクチャ →TCP/IPとか。
パイプラインアーキテクチャ →Unixとか。
マイクロカーネルアーキテクチャ →コアシステム+プラグインの構造。Eclipse、Jira、Jenkinsとか。

分散アーキテクチャ:

サービスベースアーキテクチャ →フロントエンド+バックエンド
イベント駆動アーキテクチャ →デスクトップアプリ。非同期システム。
スペースベースアーキテクチャ →ロードバランサー。インフラの仮想化。クラウド。
オーケストレーション駆動サービス指向アーキテクチャ →よく分からない。使われない。
マイクロサービスアーキテクチャ →ドメイン駆動設計とか。

分散アーキテクチャが今の流行だが、8個の誤信がある。
ネットワークは信頼できる。
レイテンシーがゼロ。
帯域幅は無限。
ネットワークは安全。
トポロジーは決して変化しない。
管理者は1人だけ。
転送コストはゼロ。
ネットワークは均一。

他にも、分散ロギング、分散トランザクションなどもある。

これらの観点をトレードオフとして考えるべき。

| | コメント (0)

2022/09/12

「物理学の野望」の本が分かりやすかった

物理学の野望 「万物の理論」を探し求めて」の本が分かりやすかった。
物理学は、世界のすべての現象を1つだけの考え方で統一して説明しようと頑張っている。

【参考】
物理学は一つの認識論: プログラマの思索

物理学を攻略するためのマップ: プログラマの思索

「小水力発電が地域を救う」の感想: プログラマの思索

その発想の原点は、オッカムの剃刀にある。

ウィリアム=オブ=オッカム

(引用開始)
ウィリアム=オブ=オッカムが云った言葉に「存在は必要以上に増やされるべきではない」というのがある。これは、真理は単純明快なものであり、それを説明するのに余計なことはできるだけ省くべきであるという意味で、「オッカムの剃刀(カミソリ)」と云われている。
この言葉は、一般にある問題についていくつかの解答があった場合、「より少ない原理でより多くの現象を説明できる理論の方がよりよい」ということで、例えば天動説と地動説では、天動説では天体の運動と地上の物体の運動とで別々の法則を立てなければならないが、地動説は両者を一つの運動法則で説明できるから、こちらの方が正しい、と言うように使われる。
(引用終了)

数多くの現象を集めても無意味で、それら現象をより少ない原理で説明されるべき。

物理学の野望 「万物の理論」を探し求めて」ではこんなストーリーになる。

まず、ニュートン力学により、地球の外にある天上の世界を1つの原理で説明した。
次に、物理学者たちは、地上の現象を説明しようと頑張った。
彼らが取り組んだのは、熱、光、電磁気。
熱はエネルギーの一つの要素と分かり、光は電磁波と分かり、電気と磁気は相対する関係と分かった。
そして、マクスウェルの方程式でそれらの現象は統一して説明できるようになった。

そして、電磁気力、弱い力、強い力は最終的に法則で統一された。
最後に残るのは、重力。

物理学の野望 「万物の理論」を探し求めて」には書かれていないが、おそらく超弦理論が4つの全ての力を統一する法則を提供するのだろう。

物理学の野望 「万物の理論」を探し求めて」で興味深かったのは、発電所は、磁気モーターで電気を作り出す仕組みが根本にあり、そのモーターを回す仕組みを○○力発電と呼んでいるだけ、ということ。
たとえば、水力発電、風力発電、火力発電、地熱発電、原子力発電は、磁気モーターをどの力で動かしているか、という違いを表しているに過ぎない、と。
なるほど、たしかにそう考えると当たり前なのだろうが、詳しくないので新鮮だった。


| | コメント (0)

«アトキンソン氏の中小企業再編成論、生産性向上は処方箋を提示していると思う