リモートツールの良し悪し

こんにちは、mtjです。

コロナによりリモート管理ツールが色々社会で流行るようになってきました。
文字ベースのやり取りができるチャットツールまでは良いのですが リモート会議ツール等に関しては扱う個人の慣れに大きく影響されてしまいます。

リモート会議ツールに関しては
・音声
・画面共有の仕方
・各自発言者の認識

オフラインでは気にしなくても良いような点で不都合が発生します。
会議ツールの選定+事前確認内容の資料等を準備したほうが慣れてない人達にも解りやすい気がしました。

ちなみにマイクはUSB接続がおすすめです ジャック式のでも動きますがPCのデバイスに依存してしまうため満足に動かない、ノイズが酷い等損をする場合があります。

プログラミング言語の変化

こんにちはmtjです

プログラミングは基本勉強し続けていくものというのは大体のプログラマが思っている事だと思います。

自分のメインとしているC#も2012年頃と比べるとかなり書き方が違います。(バージョンでいうと5.0から8.0or9.0)

しかし、.Netの互換性等もあり最新のOS向けのプログラムは最新Verで作らないといけないわけではないので
10年前のC#でも現代で動かすことが可能です。
勉強をやめてしまっている人でもプログラムを書くことは可能ですが古い書き方になってしまい
最新の書き方で書かれているものならば理解自体が難しくなってしまうと思います。

言語が進化していれば自ずと勉強していくものですが 言語自体が古く進化がない言語だと勉強が止まってしまうので
その場合はかなり努力が必要だと思います。

そういう意味でも若い人がCobol、VB6等を頑張って保守するのでなく現在の流行りの言語を行わせ
年配者が古い言語を保守すべきなのではないかと感じました。
古い言語を勉強すること自体は幅も広がり悪いことでは無いと思いますが 古い言語を専門にしては先細りの分野なので
将来性が薄いと感じてしまいます。

PCパーツの変化

こんにちは mtjです。

GPUのRTX3090が販売されました。
以前のRTX2080を軽く超えるものらしいです。
シェーダー処理のFLOPSで言うと2080が11TFLOPSで3090は36TFLOPSらしいです

現状自分は1080tiなのでレイトレーシングすらまともにできないのでどちらでも欲しいのですが
2080の2倍以上という性能は魅力的です。
3090は欲しいのですが価格も20万超えと圧倒的なので悩んでいるところです。

あと数十年もすればこの性能がタブレット等携帯端末になっているかもしれないと考えると本当技術の進化は圧倒的です。

自分たちプログラマもハードの性能を発揮できるように勉強も必要になっていくと思います。
現状でも大量のCPUコアを扱えるので非同期処理等をうまくできないとコアを遊ばせてしまう状態です。

プログラムの変化もそうですが扱うPCの性能、進化を知るのも大事だと感じました。

ipV6

最近自分の部屋もipv6契約にしました。

ipV6なので早くなります! と思いきや自分のルーターは2014年ぐらいのものなのでIPv4 over IPv6に対応していなくて 新しいルータを
買うことになりました。
そのままではipV6で使えないので遅いです。
まだipV6のサイトだけ早いことを確認しただけなので 実際にipV4のサイトまで早くなるかは楽しみですが

ipV6に詳しくない人は案外古いルーターのままipV4のまま使っているのではないのでしょうか?

ルーターの設定もままならない人はレンタルなので問題なさそうですが
自分でルータを買って終端機器とつないでいる人はipV6にしたのに遅いなぁって思って使っていたりするのではないのでしょうか?

よくわからないならレンタルが一番ということですね

新規ソフトと既存ソフトの改造

こんにちは

現在新規ソフトの設計、作成を行っております。
やはり新規ソフトのほうが気楽に作れます。

既存ソフトの場合は共通化、既存機能の把握、リファクタリング等新規追加前の検討が必要になり
予想以上に時間がかかります。

もちろん元ソフトの設計にも引っ張られます。

改造の方が新規に同じ機能を作るより簡単に思われがちですが 複雑なアルゴリズムを流用する等ない限りは基本改造のほうが負荷は大きいと感じました。

リファクタリング、共通化等考えなければ簡単にできますが そのようなソフトはいずれ破城してしまいます。

AI

こんにちは mtjです

最近聞く事が少なくなったAI関連の話

出た当初から色々言われていますが 映画のターミネーターのように自律的に動くAIのようなものはまだまだ先でしょう

一般向けにはそういう風に動いてるように見せるAIもできるでしょうがお手本、もしくは正解がないものをAIで勝手に考えるというのは現状では難しいと思われます。

とあるG社の翻訳AIもそうですがあれもひな型となる言語の文章を読み込ませそれぞれの言語の特徴を覚えさせ反復させることで翻訳精度を上げています。
AIを持ってきてこれを翻訳してくれ という感じでできるものでなく 専門家が考えたアルゴリズムに沿って勉強しその結果正しいであろう使い方を出力します(基本学習させた他の結果)

会話AIもそういったもので他の人との会話、もしくは学習させる文章等を記録し基本的に多の方で話すようにします。

学習させる専門家がいてAIは初めて成り立ちます
日本語の学習をさせているのに別の言語、もしくは多種多様な言語を学習させれば使い物にならない日本語会話AIができあがるでしょう。

囲碁のAlphaGoは深層強化学習といわれるもので AIが自分で考えその結果を人間が評価(アルゴリズム等による採点か成否)するような方法で

報酬の決め方があいまいであればあるほど使い物にならなくなります。

画像処理等でよく使用されるものは教師有りの学習でOK,NGの物を事前に与えこれはOK、これはNG等を覚え現実の画像を判定していくものです。
OK、NGで与えるものがOKぽいNG、NGぽいOKだったりすればするほど使い物にならなくなります。

世の中のAIはまだまだ専門家のサポートツールとの立ち位置なので一般家庭にどのような形で降りてくるか楽しみではありますね

プログラムの勉強

こんにちはmtjです。

今までいろんな人を見てきてプログラムの勉強について思う事があったので書きます。

よくいるパターンがネット、本等で用語等を読み 実際に開発環境を作って何も作ったことが無い人。
一度でもプログラムを作ったことがある人ならば別の言語の本を読み経験で別の言語を書く事は可能でしょう。

しかし、初心者は一度プログラムを打ってみてほしい、自分で考えて本で読んだ知識を使いながら作ってみてほしい

なぜならプログラムは道具だからです、何かを作るために使う物で本はただそれを上手に使える方法を書いてあるだけです。
何もしないのに工具箱を買ってこないのと一緒で何かをするためにプログラムは存在するのでまず手を付けて欲しいです。

またプログラムには答えがありません、結果が同じになるコードは1つではありません。
結果が同じであれど実行速度が速いコード、読みやすいコード、容量が小さいコード等様々なコードがあります

経験、知識が浅い間はかなりの確率で汚いコードしか書けません、そういうものです。
書いた後になんとか綺麗にするための知識を補完するのが本です。

まずはプログラムは書いて覚えましょう。

プログラマーの金額の難しさ

mtjです

ここまで様々なソフトの金額を計算してきましたがいつ計算しても難しいと感じます。

例えばAの物を1日と3日で作れる人がいる場合 そのままの日数で考えると売上は3日で作る人の方が多くなります。

時間給の人の場合早く頑張って作る人より 知識のない時間のかかる人のほうが売り上げは多くなってしまいます。
雇う側が相手の技術力がわからない場合何かを指標に金額を決めるでしょう。
資格数、年齢、経歴等

基本は年齢で決まっているので頑張らない年齢が上の人より 勉強等頑張っている年齢下の人のほうが金額が低くなり
技術系は割に合わないと感じる事が多いのではないかと思います。

現在はオンラインプログラムテスト等あるのでそういったものを元に交渉したりし正当技術が評価されるといいのではないかと思います

スマートウォッチ

こんにちは MTJです

スマートウォッチを買いました 主にスマホの通知を受け取るのに使用しているのですが 電話があるとスマートウォッチ自体が振動してしらせてくれたり
電話を探す機能等で位置を知らせてくれたり以外と便利です。

特に現場では携帯を鞄に入れていることもあり気づきにくいため大変便利になりました。
メール等も表題ぐらいは確認できるのでわざわざPC、スマホを開き確認することなく確認が可能なため家でも割と便利です。

特に家ではどこかに携帯をおきっぱにしているので気づきやすくなりました。

プログラム言語の触り方

こんにちは mtjです

最近中学生がプログラミング言語を作ったで話題になっておりましたが
その中に”C++を始めたが、扱いにくかった。もっと可読性の高い構文とメモリの安全性や速度を高めたいと思った”との発言があった

これはほかの言語をそれなりに触っていないと出てこない考え方だと思う。
正直中学生でこの発想に至れる事は驚きました。

C++のみを触り続けていて ほかの言語を使用していない人には全くでてこない発想だと思う。
オブジェクト指向で最近の言語を触っている人からすればC++,C等はどうしても物足りなく感じてしまう。

自分の友達にも大学で少しプログラムをかじった人がおりますが 大学教授のC++は至高、基礎との言葉を受けて
ビット、バイトの違いもわからないにも関わらずC++は世界の流行りと疑わない人もいます。

1つの言語を突き詰めていくことも重要ですが、様々な言語を使用することでそれぞれの言語の利点、欠点を学び適材適所に対応、柔軟な思考を持つことも大事だと思います。
特に学校では言語1つに特化でなく様々な言語に触る事が大事なのではないかと思いました。