koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

Visual Basic のプログラムを C# に移植してる感想

Visual Basicは.NETではないやつ。

具体的にはVB5から.NET5 Windows Forms。奇しくも同じ5。

趣味でやっている(完遂しなくてもいい)のでめちゃくちゃ場当たり的だし、仕事で今後やることもないだろうから完全な感想。

移植をこんな風に試してる人がいますよ。といった記事。

  • 動機・やってること
  • やり方
  • ラッキーポイント
  • 困りポイント
続きを読む

キャリアプラン2021

半期の評価、査定を機にキャリアプランでも考えてみるか。と思って社内の共有スペースに書いていたもの。当たり障りのない内容(本当か?)なので何となくブログに転記しておく。

大体半年くらい前に似たような系統の記事を書いている。 評価の時期はそういう気分になるんだろう。

koudenpa.hatenablog.com

キャリアプランと言っているけれど、プラン立てるのは難しくてお気持ちを書いただけになった。

つまりこの記事はタイトル詐欺です。

キャリアをプランできずにこのくらいのお気持ちでソフトウェアエンジニアやってるオッサン(2021年で多分39歳)もいますよって感じ。

続きを読む

PHP5時代のアプリケーションを docker-compose up した時のメモ

Laravel docker-compose up とかググるとそれっぽい構成が書かれた記事がヒットする。

だがそれでは太古の昔の、たとえばLaravel5のアプリケーションは動作しない。いつだって太古のアプリケーションを動作させたいという需要はあるものだ。最近も2020年のタイムスタンプでWindows10にVB6の開発環境を構築するには? のようなタイトルの記事を見かけて「VB6すげー」と思ったものだ。それに比べたらPHP5なんてまだまだ若造よ。

さて、今どきのPHP開発環境を作ろうぜ! 記事ではアプリケーションコンテナのベースイメージに php:7.x-fpm-xxx が使われていることが多い。

「じゃぁそのバージョンを5系にすれば動くでしょ」と試してもなんだか難しかった。どうにも依存関係のパッケージが見つからない(php-mcryptとか)。

動かしたいバージョンが現役だったころのバージョンのディストリビューションのイメージをベースに構築すると、とりあえずは太古のアプリケーションが動作するイメージができた。他のコンテナや docker-compose.yml の構成はそれっぽい構成を参考にすればよい。

自分の手元のDockerfileはこんな感じになった。

FROM centos:centos7
# CentOS7のyumリポジトリのPHPのバージョンは5.4。
# $ php --version
# PHP 5.4.16 (cli) (built: Apr  1 2020 04:07:17) 

# パッケージは精査していない。この辺使っていたよなー? を入れただけ。
# 一応 https://readouble.com/laravel/5.0/ja/installation.html のサーバー要件は意識した。
RUN yum install -y epel-release \
    && yum install -y php \
        php-cli \
        php-common \
        php-devel \
        php-fpm \
        php-gd \
        php-mbstring \
        php-mcrypt \
        php-mysql \
        php-pdo \
        php-xml \
    && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer

# アプリケーションのコードをコピーして依存関係も入れておいた。
WORKDIR /var/www/html
COPY ./ ./
RUN composer install

# 既定の設定を上書きしたいならする。
COPY ./php.ini /etc/php.ini
# 既定の設定では localhost からのみ接続できるように構成されているので、他のコンテナから接続できるように設定する。
COPY ./www.conf /etc/php-fpm.d/www.conf

EXPOSE 9000
CMD ["php-fpm"]

www.conf はデフォルトからこの辺りを変えた。 (ローカルホスト以外もリスニング、ローカルホスト以外からも接続を許可する、ステータス表示を有効にする)

--- www.conf.org
+++ www.conf
@@ -11,3 +11,3 @@
 ; Note: This value is mandatory.
-listen = 127.0.0.1:9000
+listen = 9000
 
@@ -23,3 +23,3 @@
 ; Default Value: any
-listen.allowed_clients = 127.0.0.1
+;listen.allowed_clients = 127.0.0.1
 
@@ -120,3 +120,3 @@
 ; Default Value: not set 
-;pm.status_path = /status
+pm.status_path = /status

イメージのサイズ? 多分でかい! 500MBくらいあった。動かすのが目的なのででかくてもいい。こうして浪費するためにPCを新調するときににSSD1TBを選んだのだ。

単に動かしたいだけならPHPもNginxもMySQLも全部入りのコンテナ1つでよいのだろうけれど、今年の抱負に docker-compose する、があるので試せて丁度よかった。

koudenpa 2021 抱負

去年の今頃に抱負というか「2020にやろうかな」と思っている趣味・興味を書いておいてたまに振り返ると中々おもしろかったので、今年も一応書いておく。覚えていたらまた年末に振り返ると思う。

  • IT
    • GraphQLなんかやる
      • 去年はASP.NETでこれだってのがなくてやめてしまった
      • ASP.NETがビミョかったら他で
      • AWS IoT Things Graphが面白味はあるのだけれど、性質上使い始めるのがちょっと面倒くさい
    • docker-composeなり他のコンテナ管理ツールの構成を手作りする
      • 雰囲気で触っているけれど、自分が主体になって見たことがないので手に馴染ませておきたい
      • XAMPで弄っていたPHPのアプリでも動かしてみるかと思ったところ、docker-composeにたどり着く前にアプリが動くコンテナ作る難易度が高い状態(EOLしてる依存関係が多くて……)
      • かといって真っ白から作るだとスキャフォルドして終わりで何も面白くない
    • SSG
  • IoT
  • プラモ
    • 飯屋開拓は諦めた
    • この場は趣味面だけれど、仕事面で目標ちょっと真面目に考えてみようかなぁ

興味が1年で大きく変わるわけもなく、去年の延長線上で面白味が足らない。なんかいい要素ないかなぁ。

去年の記事。

koudenpa.hatenablog.com

とその1年後くらいの振り返りつぶやき。

試作ホイホイアイ

一撃殺虫!! ホイホイさんという大層面白いマンガがある。

そして、大層出来のいい1/1スケールホイホイさんプラモデルが発売されている。しかも近年NEW EDITIONとして復刻中で大層手に入れやすい。

www.kotobukiya.co.jp

ホイホイさんはハイテクが詰まった手のひらサイズのデフォルメドールで、自律駆動してご家庭の害虫退治をしてくれる。目の位置にあるカメラで周囲を認識し、銃火器や刀剣などの武器で退治する。

f:id:koudenpa:20210110220500p:plain
一撃殺虫!! ホイホイさん NEW EDITION (電撃コミックスEX) Kindle版 ロケーション54より

動作の様子はPS2向けゲームの動画を見るとイメージしやすいと思う。

前々から「そろそろ認識部分位はDIYできるのでは?」と思っていたところに Raspberry Pi Zeroとカメラモジュールが余った*1ので試してみた。

大体想像通りのものが試作できたので記録しておく。多分そのうち飽きて完成しないし……

  • 試作hoihoi-eye
  • 要素技術
    • ハードウェア
    • ソフトウェア
  • 複合ゴミ

*1:リアルダイスボットで使おうと思って買ったのだけれど使えなかった

続きを読む

masawada Advent Calendar 2020 予定地

この記事は masawada Advent Calendar 2020 - Adventar の21日目です。

id:masawada とは1on1を行う仲で、その中で「アドベントカレンダーまだ空いてる日があるので登録してくださいよ」という話題が出たので登録しました。

この際、アドベントカレンダーの記事は予約投稿して背水の陣をしいている、という話もしました。

1on1段階では特にネタを思いついていないです。

この記事がこの状態のまま公開されていたら、そういうことです。


前日の記事でIDコールされてマジビビってなんかでっちあげなくては!? と思ったのだけれど何もネタを思いつかなかったのでスロットをBlazorに移植しました。再現度は低いです。ご査収ください。

PR BlazorはMicrosoftが作っているクライアントサイドのWeb UIを.NETで書ける個人的に大好きなフレームワークです。万人にはお勧めしませんがおススメです。Blazor Advent Calendar 2020 - Qiitaもあるみたいです。この記事を登録しに行くほど僕の面の皮は厚くないようでした。/PR

7474.github.io

30分で移植して、30分でCDしたのでこれで勘弁してください。

github.com

Blazor WebAssembly アプリケーションをGitHub Pagesにデプロイする手法は公式ドキュメントに案内があって、完璧なサンプルリポジトリがあります。これが無かったら即死だった。

ASP.NET Core Blazor WebAssembly のホストと展開 | Microsoft Docs

github.com

以前自分がやった手法よりこちらの方が全然いいと思うので、BlazorをGitHub Pagesにデプロイするぞって人はご参照あれ。

多分ポイントはデプロイのワークフロー内でBASEパスを書き換えているところで、これによってローカルのVisual StudioのF5で起動して動く構成を維持しつつGitHub Pagesへデプロイできる点です。

昨日は

blog.sushi.money

でした。

明日はなんでしょうね?

プラモデルをライトアップするVer.M5Stack

この記事はM5Stack Advent Calendar 2020の21日目です。

M5Stackに触れてしばらくしてみて気に入ったところと作ったものについて書きます。

買った直後のことは M5Stack CoreInk を買った直後の感想と躓きポイント - koudenpaのブログ に書いています。

続きを読む