Labo288

プログラミングのこと、GISのこと、パソコンのこと、趣味のこと

2021年度の振り返り(エンジニア2年目)

はじめに

(今はもう6月ですが)3月末でエンジニアの2年目が終了したので振り返ります。下記は1年目の振り返り。

kiguchi999.hatenablog.com

総括

 1年目よりも2年目の方が成長を実感出来た。私はQGISとフロントエンドを得意分野としてきた人間だが、この1年はサーバーサイドの技術力が向上した感がある。それを専門とするエンジニアには敵わないまでも、知識として・手札を持っておくことの重要性を理解した。 この点、業務で経験を積めた…のは事実だが、きっかけは個人研究。下手の横好きで触った技術でいきなり本格的な業務に参加…はなかなかリスクが高いしそもそもアサインされないわけだが、今年は幸い、失敗した時のリスクが小さいタスクで使ってみて経験値を貯め、より重要度の高いタスクへ応用…というステップを踏めた(技術選定に裁量があったりタスクの受け方が柔軟だった)。
 その一方最近は、専門技術の深掘り…という意味では伸び悩みというか、既存の手札の応用で解決出来てしまう、という感覚がある。これは技術者として成長した結果である一方、マンネリに陥らないよう常にアンテナを張っておく必要があるな、と思うところ。

2021年度で1年間やったこと

全般

QGIS

GTFS-GO

github.com

運行頻度集計機能や、GTFSデータリポジトリとの連携機能追加。

QGIS本体へのコミット

たった1文字のコミットを糧に生きていく

github.com

その他業務

多数の業務で開発。

  • ラスター重畳計算
  • WebAPI連携
  • Leaflet連携 など

ウェブ開発

フロントエンド開発

  • Vue.jsやReact(Next.js)を利用した開発業務に複数従事。

バックエンド開発

  • Docker/nginx/Express.jsを利用した開発業務に複数従事。

MapLibre GL JS

github.com

github.com

  • その他アウトプット多数

MapLibre GL JSで時系列コントロールを扱う[maplibre-gl-temporal-control] - Qiita

MapLibre GL JSがv2.0.0になりました - Qiita

MapLibre GL JSと地理院標高タイルで3D地形を表示する - Qiita

ジオコーディング・ウェブサイト

  • ジオコーディングサーバーの開発
  • フロントエンドの開発(Vue.js + AWS CDK)

search.mierune.io

WebGL

  • GLSLをある程度使えるようになり、業務にも多数応用。下記はちょっとした技術記事。

luma.glでWebGLに入門する - Qiita

WebGL2(luma.gl)でTransform Feedbackをやってみた - Qiita

WebGLをGISに応用してみる【DEM編】 - Qiita

その他GIS開発

github.com

対外発表

MIERUNE Meetup #1

docs.google.com

地理院地図パートナーネットワーク

https://maps.gsi.go.jp/pn/meeting_partners/data/20211208/7_MIERUNE.pdf

FOSS4G 2021 Japan Online

Foss4G Japan 2021 シェープファイルの真の後継規格 FlatGeobufの普及啓蒙活動

DellのゲーミングノートG15(5515)にUbuntu20.04をインストールしたはなし

TL;DR

  • 公式のインストールメディアを使って難なくインストールできる
  • しかし、GPUドライバのインストールとNVIDIA X Server Settingsで設定の変更をしないと、Chromiumの動作が非常に重たくなる
  • NVIDIA X Server SettingsではNVIDIA(Performance Mode)を選択しよう

ちなみにLubuntuはマルチディスプレイが正常に動作しなかったので早々に断念

Ubuntuのインストール

下記のとおり

diagnose-fix.com

インストールするだけで、マルチディスプレイ環境も整うので特に問題ない…と思いきや、Chromiumベースのアプリケーションの動作が非常に重たくなりました。--disable-gpuフラグで起動すると軽快になるので、GPUが悪さしているという予想がつきます。しかし毎回の起動時にこのオプションを与えるのは非常にめんどうですし、VSCodeやSlackなどもChromiumベース(Electron)です、このままでは使い物になりません。

GPUドライバのインストール

下記のとおり

qiita.com

たぶん下記のようになるので、-510をインストールしました

vendor   : NVIDIA Corporation
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-510 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

しかしこれでも解決せず。

NVIDIA X Server Settings

GPUドライバを入れると、NVIDIA X Server Settingsというアプリケーションがインストールされます。起動して下記の設定を行います。

f:id:kiguchi999:20220313135931p:plain
NVIDIA(Performance Mode)を選択

この値、デフォルトはNVIDIA On-Demandになっています。これを変更したらChromiumベースのアプリケーションが正常に動作するようになりました。

Windows10でストア配布じゃないPythonのパスを通す

TL;DR

以下の2行を、デフォルトで定義されている~~Microsoft\WindowsAppsよりも上位に定義しておきましょう

C:\Users\<username>\AppData\Local\Programs\Python\Python39
C:\Users\<username>\AppData\Local\Programs\Python\Python39\Scripts

Windows10のPython

当然初期状態のWindowsにはPythonは入っていませんが、なぜかコマンドのパスが通っており、cmd.exepythonと打つと、Microsoftストアが開きダウンロードを促されます。公式のPythonをインストールしていても同じ挙動になります。めんどくさい仕様ですが文句を言ってても仕方ないので迂回します(ちゃんとパスを通します)。

別にストア経由でPython入れても良いんですが、普通に配布されているものをストア経由で持ってくる必要もないので、公式からインストールしたいですね。

原因と対処は本記事冒頭のとおりで、デフォルトで通されているパスにWindowsAppsなるものがあるんですが、ここでPythonコマンドを認識しているのでしょう(やめてほしいけど)。この定義自体消しても良いんですが、ほかに不都合あったらそれはそれで面倒なので、これよりも上位に公式からインストールしたPythonのパスを追加します。

f:id:kiguchi999:20210829172901p:plain
こんなかんじ

Python39Python本体のパスを通すため、Scriptsはpipのためです。