intellista

engineer's notes about application development, data analysis, and so on

Windows10のフォトの「アプリは開始されませんでした。」から脱出(フォトを更新)

Windows10標準の「Microsoft フォト」で画像ファイルを開くと
「アプリは開始されませんでした。」
と表示されることがあります。
f:id:parupuntist:20210228124837p:plain

以前の記事で「そもそもフォトをやめて、別アプリに乗り換える」という方法で対処しました。
しかし、その後、「フォトを更新することで直る」ことを発見したので、ご紹介します。

フォトを更新する手順

  1. Microsoft Store アプリを起動してください。
    タスクバーの検索ボックスに「store」と入力するとアプリが見つかるので早いです。
    f:id:parupuntist:20210503215921p:plain
  2. Microsoft Store アプリの右上付近にあるダウンロードのアイコンを押してください。
    f:id:parupuntist:20210503215558p:plain
  3. Microsoft フォト」があるはずなので、押してください。
    f:id:parupuntist:20210503215602p:plain
    ※もし存在しないようでしたら、すみませんが本記事の方法では解決できないので、ここで終了してください。(ここまでお読み頂いたのにごめんなさい。)
  4. Microsoft フォト」のストア画面が開くので、「更新」ボタンを押してください。
    f:id:parupuntist:20210503215608p:plain
  5. 画面にインストール状況が表示されます。
    インストールが完了したら、更新作業は終わりです。

フォトを更新した結果

前述の手順で「Microsoft フォト」を更新したところ、エラーダイアログは表示されなくなり、次のように画像を表示できるようになりました。
f:id:parupuntist:20210503215616p:plain

ちなみに余談ですが、写真の人は実在しない人で、「This Person Does Not Exist」とうサイトでAIが生成したものです。
もし興味がありましたら下記の記事で紹介しています。
intellista.hatenablog.com

まとめ

今回は、Windows10標準の「Microsoft フォト」で画像ファイルを開くと
「アプリは開始されませんでした。」
というエラーになるとき、
「フォトを更新することで直る」ということと、その更新手順をご紹介しました。
お役に立つと嬉しいです!

「日本は勉強しない社会人が多い」と聞いて調べたら46.3%とアジア太平洋地域で最低だった件

f:id:parupuntist:20210504015105p:plain
こんにちは!

先日ウェビナーで「日本は勉強しない社会人が多い」と聞きました。
これを契機に、どの程度の人が勉強しないか調べたことと、いくつかの自己啓発のきっかけを紹介したいと思います。

自己啓発しない」日本人が46.3%

あるDX関連のウェビナーに参加した時、講師の方が「日本は勉強しない社会人が多い」という話をしていました。
日本は海外に比べて社会人の自己啓発の意欲がダントツに低いのだそうです。
その時私は「本当かな?」「本当なら、どのくらい?」と思いました。
経験的に周囲の状況から薄っすら本当な気がしましたが、本当ならどのくらい(何%とか)は興味があります。

そこで少し調べてみました。
すると、2019年の調査結果で、少なくともアジア太平洋地域(APAC)14諸国の中では、日本の自己啓発意欲がダントツに低く、「自己啓発は特に何もしていない」人が46.3%(平均は13.3%)という驚愕の結果が見つかりました。
この結果はいろんなサイトで言われていますが、出展をたどると1か所で、パーソル総合研究所のインターネット調査結果の一部です。
rc.persol-group.co.jp
サンプルの属性も公開されていて、ザっと見た感じでは特に偏りは感じませんでした。

なお、上記の調査結果では自己啓発も含めて、次の3つの観点で分析しています。
興味深い結果ですので、ぜひチェックしてみてください。

自己啓発してみませんか?

すでに勉強している方は似たようなことをされていると思いますが、そうでない方で「勉強したい気持ちはあるんだけど・・・」という方はぜひ参考にしてみてください。

在宅の方は、なくなった通勤時間を充てられる

日本の場合、平均的な通勤時間は1時間~1.5時間程度と言われています。
総務省統計局の平成28年社会生活基本調査の結果では、平日の通勤時間は男性で往復1時間26分、女性で往復1時間7分、となっています。

通勤から在宅勤務に切り替わった人は、この時間が純増しているはずです。
通勤していたころに帰宅後に遊んでいたとしても、この純増した時間を勉強に充てれば、無理なく始められるのではないでしょうか?
(ただし通勤中に勉強していた人は純増ではないですね。
逆に通勤中スマホゲームなどしていた人にとっては、遊ぶ時間が減ることになりそうです・・・)

1時間~1.5時間といえば、授業でいえば1コマ程度。
例えば次のような取り組みもしやすいと思います。

  • 自宅にいれば、机に向かって書籍に私事するのもやりやすいと思います。
  • 後述のオンライン勉強会も、1~2時間のものが多いので、いくつか参加してみる、というのも無理がなさそうな気がします。

オンライン勉強会は簡単に参加できる

オンライン勉強会はおススメです。
コロナ禍になってからオンライン勉強会に簡単に参加できるようになりました。
私は「connpass」という勉強会プラットフォームで申込や勉強会探しをしています。

この「connpass」には1日十数件もの勉強会が日々登録されています。
無料で聞くだけ見るだけのものが大半なので、あまり堅苦しく考えずに参加できます。
自分野や異分野の情報収集から実機でのハンズオンまで、いろいろあります。
中身の濃さやレベルは様々なので、事前調査あるいは出てみて、自分に合うものか判断していくのがいいと思います。

オンライン勉強会は時間や場所の都合をつけやすく、とても助かっています。

なお、個人的にはIT以外のオンライン勉強会も活発になると嬉しいのですが(例えばDTMとか)、見つかりませんでした。

「STUDY HACKER」で勉強の方法やコツをチェック

ビジネスパーソンをターゲットとした勉強ポータル「STUDY HACKER」が、勉強方法やコツなどをアップデートするのにおススメです。
studyhacker.net

「STUDY HACKER」をFacebookでフォローすると、日々いろんな方法やコツが挙がってくるので、気になるものをチェックしています。
自分のスタイルに合いそうなものや、スタイルに取り入れられそうなものも良く見かけます。
記事はどれも見出しで構造化されていて、ササっと短時間で流し読みもできます。

まとめ

少し散文的でしたが、今回の記事はいかがでしたでしょうか?
次の点を説明しました。

  • 自己啓発しない」日本人が46.3%もいる
  • 自己啓発のとっかかりとして次の例がある
    • なくなった通勤時間を使える
    • オンライン勉強会が簡単
    • STUDY HACKERで勉強法チェック

よろしければ是非、参考にしてみてください!

生成系のAIを試せる3つのサイト

f:id:parupuntist:20210423221112p:plain
AIの勉強会で生成系のAIを試せるサイトを3つ、教えて頂いたので、メモします。
どれも無料で、生成系のAIの一例を素早く手軽に体験できます。
体験(一次情報)の補充に是非、ご活用ください。

This Person Does Not Exist

「This Person Does Not Exist」は、GAN(敵対的生成ネットワーク)をベースにした画像生成AIが、「この世には存在しない人物」の顔写真を生成するAIです。
アクセスすると高詳細な顔写真が表示され、リロードすると別の人物が表示されます。
毛並みや肌の質感まで自然な写真で、存在しない人物とは思えない品質ですね・・・
thispersondoesnotexist.com

Petalica Paint -線画自動着色サービス-

「Petalica Paint」は、モノクロの線画に着色するAIです。
サイトのサンプルでも試せますし、手持ちの線画をアップロードして着色することも可能です。
petalica-paint.pixiv.dev

Amper

「Amper」は、楽曲を生成するAIです。
演奏時間とジャンルを決めると、AIが曲を生成する、というものです。
利用登録(無料)が必要です。

www.ampermusic.com

データ分析に必要な知識のひとつ「統計学」を無料で学ぼう!

f:id:parupuntist:20210421212102p:plain
AIやデータサイエンスの分野ではデータ分析を行います。
データ分析にあたって重要な基礎知識のひとつに「統計学」があります。

統計学」… 大学生のころ「社会人になったら最も役立つ数学は統計学!」と声高に言われていて、実際痛感しています。
経営の視点ではもちろん、特に近年はAI、データサイエンスの分野ではベースとなる知識のひとつです。

この「統計学」を、なんと無料で、しかも現役のデータサイエンティストや大学教授が解説する情報をオンラインで得られる方法があることを知りました。
今回は、この方法をご紹介します。
私も早速アクセスして、活用し始めています。

電子書籍:「データ分析のための統計学入門 (原著第4版)」

現役のデータサイエンティストが監修した、データ分析に必要な統計学電子書籍です。
2021年3月から、日本語訳のPDFが無料で公開されています。
http://www.kunitomo-lab.sakura.ne.jp/2021-3-3Open(S).pdf

オンライン講座:「統計学Ⅰ:データ分析の基礎」

大学教授らの講義を無料でオンライン受講できます。
lms.gacco.org

登録(数分)すると、限定公開のYoutube動画の講義を視聴できます。

全5週あり、週:4~5時間程度の学習時間が目安です。
※私は第1週を約3時間で学習できました。

  • 第1週:統計学への誘い
  • 第2週:統計グラフと質的データの要約
  • 第3週:量的データの要約
  • 第4週:相関と時系列
  • 第5週:公的統計の活用とまとめ

第1週の講義によると、

  • 本講座は、統計検定3級に準拠
  • 高校の「データの分析」に対応
  • 平成20年の学習指導要領の改訂により役30年ぶりに拡充
    それ以前の世代はほとんど学校で学習していない内容

ということです。

まとめ

今回は、データ分析に必要となる「統計学」の知識を無料で、しかもプロから学べる方法を2つ、ご紹介しました。
是非、皆さんも活用してみてください!

JavaScriptでデスクトップアプリを作れる「Electron.js」

Electron.js
とある機会に「Electron.js」でツール開発した事例を知りました。
「Electron.js」とは、Web技術でアプリを作れる仕掛けのひとつで、JavaScriptによりデスクトップアプリを作れるフレームワークです。
www.electronjs.org

Visual Studio Code」や「Slack」もこれで作られたそうです。
Node.jsで動きますので、Node.jsが得意な人には相性がいいです。

「Electron.js」の公式サイトに「Hello World」のウィンドウを表示するサンプルプログラムがあります。
シンプルなので、理解も改造もしやすそうです。
早速、動かしたので、どんな内容なのかを説明します。

目次

なお、本記事では次の読者を想定しています

  • ある程度の経験がある初心者の方
  • Windows利用者

0. 前提ソフトのインストール

GitとNode.jsが入っていない場合は、インストールしてください。
この2つは広い範囲で開発に使えます。

1-1. Git for Windowsのインストール

Gitは、ソースコードなどのリソースを管理するための分散型のバージョン管理システムです(意味がわからなくても大丈夫です)。
今回は、GitHubで公開されているサンプルをダウンロードするために使います。
Windows版である「Git for Windows」を公式サイトからダウンロードしてインストールしてください。
gitforwindows.org

1-2. Node.jsのインストール

Node.jsは、スケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です(意味がわからなくても大丈夫です)。
今回は「Electron.js」の動作環境となります。
公式サイトからダウンロードしてインストールしてください。
nodejs.org

特にこだわりがなければ「推奨版」でOKです。
※推奨版は、LTS (Long Term Support) と記されたほうです。

1. サンプルプロジェクトのクローン

公式サイトの案内に従って、次の3つのコマンドを順番に実行してください。

$ git clone https://github.com/electron/electron-quick-start
$ cd electron-quick-start
$ npm install && npm start
  • 1つ目はgit cloneコマンドです。
    サンプルプロジェクトをクローン(ダウンロード)します。
  • 2つ目は、1つ目で作成されたフォルダへの移動です。
  • 3つ目は前提ライブラリのインストールとアプリの起動です。

アプリが起動すると、下記のようなウィンドウが表示されます。
Electron.js

2. クローンしたものを確認する

git cloneコマンドでクローンしたフォルダの中身は次のとおりです。

ポイントとなるファイルは次の5つです。

  • 1. package.json
  • 2. main.js
  • 3. index.html
  • 4. preload.js
  • 5. renderer.js

順に中身を見ていきます。

2-1. package.json

package.jsonの中身は次のとおりです。

npm installコマンドでインストールするものなどの設定です。
ポイントを見ていきます。

  • npmでインストールする対象は、Electronのみとなっています。
    ※ちなみにElectronが必要とするライブラリなど関連するものはpackage rock.jsonに記載があり、自動的に入りますが割愛します。
  • npm startコマンドの内容を定義しています。
    具体的にはelectron .としています。
    この定義により、コマンドラインnpm startを実行すると、electron .が実行され、Electronが起動します。
  • エントリポイント(起動時に実行するプログラム)をmain.jsとしています。

2-2. main.js

main.jsの中身は次のとおりです。

ポイントを見ていきます。

  • BrowserWindowクラスをnewして、アプリのWindowを作っています。
  • index.htmlを表示する前に、preload.js(後述)で前処理を実行するよう設定しています。
  • BrowserWindowオブジェクトのloadFile関数で、Windowの中に表示する内容としてindex.html(後述)を指定しています。

2-3. index.html

index.htmlの中身は次のとおりです。

ポイントを見ていきます。

  • npm、Chrome、Node.jsのバージョンを表示しています。
    バージョンに表示する値は、id属性値でnpm-versionなどと指定しています。
    このid属性値は、preload.js(後述)で定義しています。
  • renderer.js(後述)を指定しています。

2-4. preload.js

preload.jsの中身は次のとおりです。

ポイントを見ていきます。

  • このサンプルでは、index.html(前述)に表示するときに使うid属性値(npm-versionなど)を定義しています。
    いずれもnpmのprocessプロパティの値なので、for文でセットしています。

2-5. renderer.js

renderer.jsの中身は次のとおりです。

  • このサンプルでは空の処理になっています。
  • コメントから、レンダラーの処理を書くものと想定されます。ただし、renderer.jsの中ではNode.jsのAPIは利用できず、preload.jsを使う方針のようです。

3 補足

別のサンプル(今は動かない)

いくつかのサイトで、次のようなサンプルを見かけました。


  • preload.jsを使わずに、直接index.htmlの中でNode.jsのAPIを呼び出しています。
  • Node.jsのAPIを呼び出せるようにするため、main.jsでnodeIntegrationをtrueにしています(セキュリティ的に非推奨な方法だそうです)

しかし、このサンプルは、今回試したElectronのバージョン(12.0.2)ではうまく動きませんでした。
具体的には、index.htmlは表示されますが、バージョン番号の値が表示されませんでした。
コンソールを確認したら、npm.processが実行できていませんでした。

ライセンス

ライセンスは「MIT LICENSE」でした。
electron/LICENSE at master · electron/electron · GitHub

まとめ

JavaScriptによりデスクトップアプリを作れるフレームワークであるElectronについて、公式サンプルを動かしてソースの中身を確認しました。
とても簡単に作れそうなので、是非お試しください。

Visual Studio Code を120%活用してプログラムもドキュメントも書くための初心者のコツ

f:id:parupuntist:20210523160350p:plain
VS Code Meetup」を視聴しました。
高機能な割に軽量な「Visual Studio Code」は2年ほど使っていますが、拡張機能についてはあまり知りません。
今回、初心者向けに「VS Code Meetup #11 - 入門編2021」と銘打って、拡張機能を中心としたオンライン勉強会がありました。
個人的にはオールインワン的な情報量で、非常に助かりました。
www.youtube.com

当日は残業の玉突きで家事が終わらず、リアルタイムでの参加はできませんでした。
しかしYouTube Live配信だったので、後から全て視聴できました。ありがたいことです。1.25倍速再生くらいがちょうどよかったです。

気になったトピックを記します。

マストなレベルの拡張機能

登壇者の方でお2方が共通してお勧めしていたのが、次の3つの各脳機能です。

  • Bracket Pair Colorizer 2
    カッコの対に色付けする
  • indent-rainbow
    インデントに色付けする
  • Trailing Spaces
    半角スペースに色付けする

有益なまとめ情報

VS Codeエディタ入門

次の無料電子書籍の紹介がありました。
zenn.dev

著者のセッションでも、前述の3つの拡張機能を推薦していました。

また、次の情報が印象に残りました。

特に、私は2年も使っているのにデバッグ機能を使いこなせていないので、確認しようと思います。
(以前メインで使っていたEclipseではデバッグ機能はマストだったので、今は少しもどかしいです。)

VS Code の使い始めに入れておくと便利な拡張機能 10 選

次の記事の著者が、記事を解説されました。
zenn.dev

こちらの著者も、前述の3つの拡張機能を推薦していました。

また、記事にない補足説明もありました。主に次のような点です。

  • Docs Markdown
    markdown向けのLintだそうです
  • LinkCheckMD
    リンクの生き死にを確認できる拡張機能です
  • Duplicate action
    フォルダのコピーができるようになるのがポイント
  • Evillnspector
    全角スペースを強調表示
全角スペースの罠

「Evillnspector」について、ある経験を思い出しました。
いくつかの開発プロジェクトでのことです。
SQLで構文エラーが起こったのですが、どう見てもエラーがあるように見えません。
文法も予約後も合っているし、括弧やクォーテーションの対応も正しいです。
しかし実行すると構文エラーになるのです。
数時間~半日ほどハマってわかった原因が、実は単語の区切りやインデントの一部に「全角スペース」が混入していた、というものでした。
自分でやらかしたこともありますし、メンバのプルリクエスト確認でも、発生しました。
混入の経緯はハッキリしないのですが、別の資料からコピペしたり日本語でコメントしたときの全半切り替えミスしたり、といったことが想定されました。
この「全角スペース」は、SQLをエディタに貼り付けて、かつエディタで全角スペースを表示する設定にしていたことによって、発見できました。
目視では全くわからなかったです。
ハマった割にはしょうもない原因で、どっと疲れた記憶があります。
時間を無駄にしないためにも「全角スペース」を強調できる点は助かると思いました。

その他

その他、気になった点です。

  • Pylanceという、Pythonの変数に型をつける仕掛けがあることを知りました
  • Visual Studio Codeで議事録を書く
    markdownを採用するツールが増えている
    Marpでスライド化、mandocでWord化も可能
    個人的には、markdownは使えると広く便利そうなので、もう少し取り入れて習熟したいと思いました

まとめ

補記

10年ほど「Eclipse」でJava開発をしてきました。
Visual Studio Code」はJavaも書けるようで、数年前にいくつかの拡張機能を試したのですが、ちょっと環境が整いませんでした。
近年はJavaをやらないので、影響がないですが、Java(もしくはKolin)も快適かは、少し気になっています。
ここ数年は「Visual Studio Code」でJavaScript、HTML、CSSPythonなどで開発しています。
Visual Studio Code」はフォントが見やすいところも気に入っています。

Websocketを簡単に実装できる「socket.io」を知る

JavaScriptでWebsocketを実装するオンライン勉強会に参加しました。
私にはやや易しかったのですが、目玉の「socket.io」は初見の技術だったので面白かったです。

socket.io によるWebsocketの実装

Node.js上で動作する「socket.io」を使って、Websocketによる簡易チャットアプリを実装しました。
具体的には、次の記事の内容を行いました。非常にコンパクトでわかりやすい記事です。
qiita.com

記事は、Node.js (動作環境) がインストール済であることが暗黙の前提です。
まだの方は、事前にインストールしてください。

記事では、Webサーバとして定番の「Express.js」も使います。
こちらもNode.js上で動きます。
インストールは記事の中で行います。

socket.io の競合ライブラリは?

socket.ioと同じような機能のライブラリの概況をチェックしました。

今回は趣味ですが、仕事でライブラリを使うときは必ず、次の情報を確認します。

  • 世間的に広く使われているものか ≒ ダウンロード数
  • きちんとメンテされているか ≒ 更新日時、更新頻度
  • ライセンスは問題ないか

確認には「npm trends」が便利です。
上記の内容をグラフィカルに表示できます。
気になるライブラリをひとつ指定すると、ほぼ自動で競合の名前も挙がり、複数指定すれば簡単に見比べられます。

「npm trends」で競合ライブラリを比較しました。
socket.io vs websocket vs express ws vs ws vs sockjs vs primus vs grpc | npm trends

この記事時点での表示結果は下記になります。
f:id:parupuntist:20210404100409p:plain
「socket.io」は3番手で、その2倍弱くらいに2番手の「sockjs」があり、1番人気は「ws」で桁違いのダウンロード数です。

f:id:parupuntist:20210404100428p:plain

「updated」を見ると、どれも、最近メンテされている(放置されていない)ようで安心です。
「created」を見ると、「socket.io」が3つの中では最も古く、「sockjs」「ws」は同じくらいの時期です。

また、各ライフラリのリンク先(GitHub)を確認すると、いずれも「MIT LICENSE」なので、ライセンス面では安心して仕事で組み込めます。
※Node.js のライブラリは「MIT LICENSE」がほとんどの印象です。
 コピーレフト系(GPLLGPL)だと、自身のソース開示が条件になる場合があり、
 開示不要だとしても社内手続きが恐ろしく大変なので、コピーレフトは基本使わないです。
socket.io/LICENSE at master · socketio/socket.io · GitHub
f:id:parupuntist:20210404100441p:plain

sockjs-node/LICENSE at master · sockjs/sockjs-node · GitHub
f:id:parupuntist:20210404100455p:plain

ws/LICENSE at master · websockets/ws · GitHub
f:id:parupuntist:20210404100507p:plain

ws によるWebsocketの実装

ということで、「ws」のいい記事も見つけたので、貼ります。
qiita.com

こちらも、Node.js (動作環境) がインストール済であることが暗黙の前提です。

記事の1つめに「ws」のサンプルコードがあります。
2つめは「socket.io」のサンプルで、前述のものとほぼ同じです(同じ公式チュートリアルを参照しているので)が、前述のほうが説明がより丁寧だと思います。

まとめ

  • Websocketを簡単に実装できる「socket.io」がどんなものか動かしながら知れました。
  • Websocket「socket.io」は3番人気で、定番は後発の「ws」と知りました。
  • どちらも安心して仕事で使えそうです。