とりあえずsubversionで生きていく。

愚痴。

ゴールデンウィークですね。今年も引き籠りの年になりそうです。
来年はどうなるんですかね・・・

まぁ、そんなことはともかく。

ここ半年、gitのトレーニングをしようと、趣味用途のプログラムはほとんどgitを利用して管理してきました。
クラウドサービスでVPSのインスタンスを1個作ってリモートリポジトリとして使って勉強。

結局のところ、僕のような頭の硬いおっさんには、ちょっと肌に合わないな、と思い、結局のところ挫折してしました(-_-;)
根本的に git を理解できなかった。っていうか、gitとかsubversionでブランチを使用した開発の手法をよく理解していないのが根本的な理由かなぁ。

挫折したポイントとしては、ブランチの扱い方が Subversionとあまりに違い過ぎて、付いていけなくなった(理解できなかった)こと。
いや、issue毎、feature毎にブランチを切って、マージして、という、一連の流れは分かるんですよ。
それこそ、チュートリアル的な単純なプロジェクトだと普通に分かるんすよ。ある程度コツがつかめてきて、仕事で使おうとしてたんだけど・・・どういえばいいのかちょっと迷うんだけど・・・ブランチを切る粒度というか、それがイマイチ分からないんですよねぇ。。。

アプリのソースがあって・・・
1. ある不具合があって、masterから修正のためのブランチを切る。
2. そのブランチでバグ潰しているうちに、そのバグに関連して別のバグを発見!😭

この時、
A. masterブランチから別のブランチを切って、後々リベースすればいいのか???
B. そのブランチでついでにその関連したバグを修正すればいいのか???
C. 一旦コミットしたのち、またブランチを切りなおせばいいのか?
subversionだとそんなの構わず一気に修正して、コミットして、ログに修正項目を羅列してたんだけど・・・。要は作業記録して残してるだけ、みたいな。

さらに、客側から、新しい機能のリクエストがあって、それを featureブランチを切って・・・とかやってると、慣れない git のブランチの管理でパニック!

これがチームで開発してて、同じ git使いなら、「ねぇ、今、こっちの修正で時間かかってるんで、別のバグ修正しといてくれない?」って感じで頼めるんだろうけど、おひとり様開発なので、んなのメンドクサイから、ついでに直して一緒にコミットすればいいや、って風になってしまう。
こういうのが重なってくると git の良い所を自ら潰していってるようなもん。履歴なんて滅茶苦茶。

結局、git を仕事で使うのを断念して、Subversionで、バグがあるたびに、issueブランチを作って(コピーして)、修正したらtrunkにマージして・・・という風な感じで進めていった方が生産的じゃないか???と思いつつあります。。。

一人で開発してるのって、制約がないので自由にできるけど、逆に言えば、引き継ぎのハードルが異常に高くなってしまう。
んー、こんな煩わしいことに時間を割きたくないんだけどな・・・

前途多難な、ぼっちWEBシス担のグッチ―

他所の部署で、取引先のシステム制作会社と共同で開発されていた、とある(半分w)ウェブアプリのリプレースを突然?指名され担当になる。。。よその部署なのに・・・。

とはいえ、昔僕が健康面で悪い時に、見放さずお世話になった経緯もあって、むげに断るのもどうかとも思い、引き受けたはいいけど・・・取引先寄りの前担当者からは「こんなやつに!」と猛反対されつつも、昔お世話になったんだからと・・・手を差し伸べて助けよう、と首を突っ込んだけど、まさかの、その差し伸べた手を振り払われて当惑している、ぼっちウェブ担です。

共同で開発した、というと聞こえはいいが、そう安くは無い金額の開発資金をこちらの会社が出し、両者で勉強しながら(大笑)、開発してもらう、とかいう、滅茶苦茶ぶり。
OSがWindows10になり、当然ながら開発当初主流だったInternet Exporerは、マイクロソフト自身「もう使うな!」との詔(みことのり)を発せられたInternet Explorer以外のモダンブラウザに対応してくれ! と、そのシステム会社に依頼するも「できない、むずかしい」と言われ、会社の上層部からは「追加のお金は出せない」と宣告され、にっちもさっちもいかなくなって、おいらにお鉢が回ってきた。まぁ、要するに信用がないんだな(^^;;;

その共同開発wしたという、システムをみた感じ、「これでよく、ウェブシステム」と言ってたな!という有り様。なんと、フル機能を使うには、開発した専用ウェブブラウザが必要!、さらに、エクセルのインストールも必須! という、ありえないものだった。

ローカルディスクにアクセスしないといけない、プリント機能もなぜかエクセルが必要、Accessで組んだ業務アプリをウェブシステムに置き換えるとき、真っ先に切らないといけない仕様を、全部盛り込もうとするから、専用ウェブブラウザとかいう、謎のアプリの配布が必要になってくる。まだ中身を見てないから何ともいえないけど(出し渋ってるので)、おそらくIEのウェブブラウザコントロールを貼り付けて、必要な機能を付けたしたアプリケーションだと思うが・・・。

この際だから、好きなようにやらせてもらおうと、いろいろ実験(笑)をしながら組んでいこう。
考えている構成は・・・

Windows Server 2019 + SQLServer + Hyper-V ( CentOS7 / httpd)

ホントは全部 CentOS7 + MySQL という構成が僕も扱いやすいのですが・・・社内的に Windows しか認めてくれない雰囲気。
時間がもっとあれば、C# とかで組みたいけど、半年ぐらいしか時間がないので・・・手っ取り早く言語はPHP。

いや待てよ、PHPで組むんだったら、

Windows Server 2019 + SQLServer + WSL (UBUNTU / Apache2)

でもいいんじゃないか? HyperVと仮想マシンで組むより、オーバーヘッドが少ないかもしれない。WSLはまだ開発途上でこの先マイクロソフトがどのような展開をするのか不明な点もあるし。Windows10のようなクライアントOSだとWSLはウェブ開発ツールの一つと捉えることができるが、 Windows Serverでの WSLの立ち位置がイマイチどのように考えているのかわからない。

Windows向けの PHP と IIS いう構成も考えてみたけど、なんせ過去の経験から IIS + PHP はどうにもこうにも扱いづらい。特に IIS の なんちゃらプールIDとかなんちゃらプロセスとか・・・アクティブドメインがなんちゃらとか、Windows認証がなんちゃらとか、全く理解不能の用語連発で嫌になる。

それだったら、HyperVで仮想マシン作ってそこにシステムを作りこめば そのVHDをピーコするだけで、実稼働できる、という手軽さを選んだ。
すこし前から、HyperVで内部用の仮想スイッチでネットワーク組んでも、NAPTで仮想スイッチを組めば内部のネットワークにぶら下がっているゲストOSにポート変換で外側からアクセスできる。だから 外側のIPアドレスも消費しないし、完全に環境を封じ込める。

今の懸念材料としては、 この構成で実運用に耐えるのかな・・・と。。。Azure運用だと金さえ積めばいくらでも性能アップできるんだが・・・オンプレミスでやるのは経験がないので正直怖い面もある。

壊れやすし

机の上にFostex PM0.3(白)を置いて、Fostex PC100USB-HR(USB-DAC)経由で音を出しているのですが、このボリュームコントローラ兼USBDACがよく壊れる・・・。これで3回目。
1回目は、HR(ハイレゾ)版じゃかった無印 PC100USB が PCとのリンクが突然切れてリンクしなくなった。
2回目は、HR版に買い替えて半年ほどで1回目と同じく前触れもなく突然USB接続出来なくなった。
そして、今回3回目。。。
今度は、OUTPUTのRCA端子のR側から音が出なくなった・・・。ミニプラグ用のOUTPUTは正常に出力されているので、たぶん配線が切れたかなんかだろうか・・・?

こんなに壊れる製品も珍しい(^^;; 普通ならもう他の製品に乗り換えるところですが・・・Foxtexのボリュームコントローラって小さくて使いやすいし、デザインが好きなんですよね・・・。

ってことで? 同じ色を探したけど、壊れた型番のやつはディスコンで、PC100USB-HR2とのこと・・・が、同じ色(シルバー)がない!!!似たようなシャンパンゴールドってのがあるみたいですが・・・ゴールドは好かんし、結局黒色買う。

左が壊れた HR、右が買いなおした HR2。

筐体の寸法、ネジ位置が同じみたいなので、ガワだけ取り替えたろうかな・・・。

C6/C7ステートは無効にせよ

家にあるPCは、部品寄集めの所謂、自作機。Haswel Core i7 と Gigabyte製のM/B。

(4年前の画像が残ってた)

Windows7の時は特にこれといって不満はなかったんですが・・・Windows10にした頃から、なんだかフォルダウィンドウが開くの妙に遅く感じてた。開くだけでなく、ウィンドウの切り替えが全体的にもっさり。タスクバーに登録したフォルダのショートカットをクリックしてウィンドウが現れるのに最悪2秒くらいかかる。

会社で使っているPCは 第二世代のCore i5 なんですが、それよりも遅い・・・今までいろいろググってみたけど、分からず・・・。
でも、つい最近なんですが、動画エンコード中にフォルダウィンドウを開くと、普通に速く開くのにやっと気付く(遅ッ)・・・あれ? もしかしてCPUの省電力が無駄に働いてんのかな・・・。
早速ググると、どうやら デスクトップPCではM/Bの設定でC6/C7ステートは無効にする、っていうのは FAQ らしい・・・。今更・・・気付いても・・・もうじきリプレースしようしているのに・・・(笑)

再起動しDELキーでBIOS画面に入り、無効化したら、今までの不満はなんだったのか?というほど嘘みたいに普通になる・・・。ウィンドウ間の切り替えもフツーの速さに・・・。

ああ、自作機においてデフォルト設定はダメなのね・・・。やっぱり僕みたいなのは、大人しくメーカー製のPCの方がいいかもしれませんね。。。

この夏もグチで終わり。。。

うそ~ん・・・

これの続きです。(m_m)

事実をかなり大袈裟に盛ったフィクションです(m_m)

関わる仕事としては、ちょいと大きめです。大きめと言っても、難易度はそんなに高くなく、普通のシステム受託制作会社として考えれば、ある程度仕事も慣れてきた新人に任す程度のレベルの仕事で・・・仮に失敗しても先輩が他の仕事をしつつ失敗のケツを拭いてあげられる、ぐらいの案件。ま、フツーの制作会社ならね(^_^;)

でもって、まぁ紆余曲折を経て、データベースの設計を結局僕がやることになったんですが・・・問題発生。
個人情報を格納するフツーのテーブルを作ったわけですよ。まぁ、名前やら生年月日やら連絡先や住所など。。。まぁどこにでもあるような一般的なユーザー管理ですわな。エクセルで管理している名簿レベルのテーブルですよ。

で、リーダー(L)からツッコミが入った。
L「年齢カラム(フィールド)を追加してください」
僕「え? 年齢? いや、生年月日から計算できますよね?」
L 「それは困る。絶対必要だから!」
僕『え???≪困る? 何が? は? 年齢でしょ???≫ SELECTする時に計算式いれて取得できるじゃないですか?』
L「・・・・」← 何言ってんだ?コイツ。という目で睨まれる・・・・え?
僕「年齢カラムなんて入れたら毎年更新しないといけなくなるじゃないですか!?」
L「それは気にしないで! こっちで毎年更新するから(笑)」
僕「・・・(沈黙)・・・え~と・・・毎年更新・・・って・・・ 」

いやいやいや、そんなのありえんでしょ? 年齢更新のためだけにテーブルをいちいち更新するの・・・????
ポカーーーーン、って感じで自分の顔が引きつるのが分かった・・・。
気を取り直して・・・
僕「じゃぁ、年齢も取得できるビューを作りますから・・・」
L「そんなの作る必要ないです。動作スピードを上げるために必要なフィールドですから。」
僕『え???スピード??? 何のスピード??? 何だ、何言ってるんだ???』

一連のやりとりを知った上長がさすがにマズイと思ったのか・・・かなりザワザワっとしてきました(笑) いや、笑い事じゃないんですけどね。。。足が『ガクぶる』状態です。。。

タスケテー