技術とは

こんにちはmtjです

最近アンドロイドアプリの勉強しようと思いkotlinをしております。
開発環境が日本語でないので既に敷居は高いのですがなかなか新鮮であり、JAVAを元にしている事もあり懐かしくも思います。

こういった新しい言語の考え方、作り方を覚えるのも良い技術のトレーニングになると思いました。
自分たちの業界には大切なことと思います。

無線技術

こんにちはmtjです。

最近無線の進化はすごいと感じています。

それも家でヘッドセットを使用しているのですが断線で以前の有線ヘッドセットがダメになり今回無線にしてみようと考えたためです。

あまり遅延があっても音は問題がないので無線にしました、steelseriesの無線ヘッドセットです。
送受信機とヘッドセットという構成で送受信機は独自規格ですが音ゲーをしていても遅延を感じないくらい高速通信をしています。
今までと比べて充電をしないといけない欠点はありますがケーブルの取り回し等を考えるとかなり楽になり遅延も少ないのでかなり良い買い物をしたなと感じています。

無線のイメージといえば遅延が大きくそういった速度が要求されているものでは使えないと思っておりましたが考えを改めました。

今使っているマウス、キーボード等も余裕があれば無線にしてすっきりさせたいですね。
よく考えないと結局充電ケーブルでごちゃごちゃしそうですが。

ソフトの価格と出来

こんにちはmtjです。

ソフトでは内部のソースまではわかりません

普通に動いていれば何も問題ないのでソースが汚かろうが、綺麗だろうがお客さんには関係ありません。
ではどんな時にソースの汚さで問題になるかというと基本は異常時と変更時です。

異常時の場合はソースが複雑な方が修正が長引き修正による不具合も起きやすくなります。
変更時は変更箇所が多くなったり多い分テスト、手戻りも多くなり費用が必要になります。

では汚いソースで行う利点は何かというと考える時間がいらない分速度が速い=安いということです。
もちろん上手く行けばの話ですが設計、共通化の検討等もしないため手戻りがなければかなり早くなると思います。

もちろんですが上記は小さいソフトならばの話です、大きくなればなるほど共通化による同じようなコードがなくなっていくので基本は設計もコードも綺麗なほうがはやくなります。

只お客さんから見ると金額と仕様書のみなのでそういった後々の部分については頼む側からすれば全くわからないのが現状です。
頼むときの指標にするためにソフト開発のレベルを測るための指標が何かあるといいのかもしれません。

別の人を使うという事。

mtjです。

自分はSEなので人を使ったり使われたりする立場ではあります。

人を使って色々する場合はもちろん効率が重視されます。
プログラム業務での効率はほぼ役割分担です、難易度の高い部分(外部システムとつなぐだったり、WindowsForm的に難しい
スレッド間操作で気にすることが多い、全体のシステム構成を知らないと結合等できないようなとこ)
簡単な部分を割り振っていきます、基本は自分が全体の構造の設計、テストを行う事になります。

上記の事をしていると基本的には他人のソースをチェックして作りが問題ないか、テストが問題なく作られているか等の確認作業が主なので難しい部分ばかりが自分にきてしまいます。

これらを行っていると物が完成した時の達成感が薄くなってしまいます。
一人で行っていた場合は設計し、設計通り動き、テスト等で度々上手くできたとの実感がわきます、これが最近は人を使う事が多いので少なくなっている気がします。

上記で思う事はシステム開発で上の管理する側の人間はあまり開発者としての達成感という物がないのではないかと思います。
もちろん作る部分によってはつまらない部分もありますが全て自分一人で作っていた方がやりがいがあった気がします。
小規模のシステムでもこのように感じるとういう事は、大規模のシステムを作っている総まとめ(プロマネ等)はどのような気持ちで行っているか気になるとこではあります。
毎日何十もの機能の確認、テスト等を行い完成まで持ち込むのはかなり根気がいる作業だと思います。

そういう管理することが好きな人もいるので案外達成感があるのかもしれませんね。
自分はわからないことがあったら調べて自分で作って解決していくほうが好きなのであまり向いていない気がしました。

トラックボール

こんにちはmtjです。

現在トラックボールを使っています。

マウスはマウス本体を動かすことでポインタを動かします
トラックボールは本体にボールがついておりそれを転がすことでカーソルを動かします。

最初は慣れが必要ですが慣れてくるとかなり使いやすいと思います。
自分はマウスでは画面全体をマウスを浮かすことなく移動できるようにしているのであまり気にはしませんが
何回もマウスを上げてマウスパッドの真ん中に戻してをするより指を何回か転がすだけで移動できるトラックボールのほうが
良いのではないかと思います。

特にマウスパッド等が必要ないのが利点で狭い場所でも操作しやすいのが利点ですね
手首の負担が少ないは聞きますが自分は上記で記載した通りそもそも手首に負荷のかかる感度ではないので
個人的にはボールを転がしている感覚が好きなので使っている感じです。

また親指でボールを動かすタイプより中指等で転がすタイプがおすすめです。

マルチGPU

こんにちはmtjです

マルチGPUを使用して半年以上経ちまして大体結果が見えてきました。
結果として普通のゲームをする人向けにはあまり向かないという結論でしょうか。

今回の自分の場合はradeon rx480を2つ付けていたのですが
最適化されていないソフト(マルチGPUに対して)では1つのGPUのみ動くので性能が発揮されず勿体ないという事が分かりました。

rx480×2の意図はミドルGPUを2つ付けて ハイエンドGPUと同等の性能を出そうと目論んでいたので見事に失敗しました。

これがGTX1080×2だったらまた別の話ですが、それでも性能が2倍になるわけではないので本当にマイニング、エンコーディング等向けではないでしょうか。

というわけでゲームをする、動画を見る人はGPUを1つで良いのを買いましょうということです、今回は良い勉強になりました。

羊毛フェルト

mtjです

羊毛フェルトをしてみました。
100均の羊毛フェルトでも5cm*4cm程度のサイズなんですが作るのに3時間程度かかりました。

どんなものかというと、引っかかりのついた小さな針で羊毛を刺し、引っかかりに繊維が絡み羊毛の奥まで刺す事で
羊毛が絡み合っていって人形を作るような感じです。

パーツをつくって後から接着剤等も無しでくっ付けることができるので針を刺し続ける根気以外はお手軽でした。

PG言語は道具

こんにちはMTJです。

PGを覚えるのはあくまで通過地点でありゴールではないという話です。

基本PGは何かを実現するために使用する道具であり、○○の作り方を覚えるというものではないと思います。
例えば掲示板を作りたいからCGI、WEBサーバー関連を覚える等 Aに必要な技術は〇と△だから覚えようという感じです。

これをUMLを覚えて、その通りクラスを作る方法を覚えただけでは掲示板は作れませんよね。
もちろんオブジェクト指向等は重要ですが、あくまで道具を上手に扱えるようになっただけ
誰もペンチの使い方を学んでから、何かしようとは思いませんよね

同様に〇〇の言語は優秀という話をよく聞きます、C++、C#どっちがいいですかとかはよく訊かれる話ですが
どちらの道具にも利点と欠点があるため、一概にどちら良いとは言えません。

pythonの使い方を軽く覚えて、自分の場合デスクトップアプリメインで現状使いどころないと感じ上記のような事を感じました。

プログラマー

MTJです。

プログラム業界に入ってやっとこさ5年目ですが世の中の色々な事をみてきて感じる事は
やはり好奇心を失わない事だと思います。

例えばC#の新しい書き方が出たときに興味を持って近づくか、持たずにスルーしてしまうではこの変化が早い業界では置いていかれてしまいます。
なので只PGを覚えたいと漠然と思うのも間違いではないのですが、この業界はそのような新しい事に興味をなくさずに接し続けられるかは結構大事だと思います。

デスクトップアプリはWEB系に比べてAPIの移り変わりもゆるやかで新しい技術もそこまで増えませんがそれでも興味が無い人は有る人に比べてどんどん遅れて行ってしまうと思います。

自分の場合はゲームとその周辺技術だったり、新しいPCパーツが興味の対象だったりします。
PGとは離れているような話ですが、なんでCPUが速くなったとか技術的な情報を取り入れ、そこからPGに興味を持つのも悪くないと思います。

PC周りの変化

mtjです。

以前書いた通りnvidia のShieldというタブレットを買いました。
この10インチタブレットでフルHDを表示できるというのはよくよく考えたらすごいことだなと思いました。

昔は2Dのゲームですらノートできつかったはずなので、本当GPU,CPUの省電力、省スペース化は進んでいるんだなと実感しました。
SSDもいまや1TB 3万ぐらいまで値下がりしていると思います。
逆に気になるのはPC等の性能が上がった場合にその周辺ソフト、ゲーム、WEBサービス等はどのように変化していくのだろうかと気になりますね。

性能が上がってもその性能を十分に使用できるソフトが出ないともったいない気がしますね。