今の会社に入社して4年が経過した

いわゆるIT業界と呼ばれる業界に転職して、3年以上同じ会社に所属したのは初めてのことで、 この業界に転職してきて、「長くいられる会社を見つけられるといいな。」と漠然と思っていた目標のようなものが今まさに達成できている感がある。 過去の転職の経緯…

Jetpack Composeでアプリ開発

Androidアプリを作ってみる。 "なろう"などのオフラインリーダーとして利用していた某Androidアプリの更新が止まってしまい、昨今の仕様変更で利用できなくなってしまったけれど、替えのいいアプリが見つからなかったので、せっかくだからと自分で作ってみて…

GCPとAWSでmTLS with Terraform

GCPとAWSともにロードバランサーでmTLSを利用してclient証明書検証ができるようになったので試してみた。 完成コードはGitHub - paihu/mtls-sample どちらも普通に動くけれど、 GCPのほうは、検証しつつ、failしてもバックエンドに渡すことができる。 AWSの…

フロントエンドのテスト環境を作った

概要 フロントエンド(SPA)のQA環境を AWS CloudFront + CloudFront Function + S3 で作成した話。 なぜフロントエンドのQA環境用にあらたな仕組みをつくったのか フレームワークの移行作業により、多数のフロントエンド改修が走っていたが、バックエンドも含…

VSCode DevContainerを利用する

VSCodeのDevContainerについては、windowsの開発環境をおおむねWSL2に寄せたので特に必要だと思っていなかったけれど、少し話題になったので セットアップしてみた記録。 事前 WSL2がセットアップされている。 WSL2上でdocker daemonが自動起動している。(私…

新しいライブラリに触れる。

graphql+RoR がメインの会社でコードを書く仕事を始めてみた。 front側はrelayを利用していて、rubyではgraphqlを利用していた。 graphqlを全然触ったことなかったので新鮮さを感じつつコード読んだりしている。 やはり新しい環境で新しい技術に触れるのは刺…

misskeyでnewrelicを有効にする

misskey(サーバ側)で分散トレーシングを利用するためのメモ 前提として、newrelicにアカウントを作成して、newrelic keyを取得しておくこと。 docker composeを例にする。 1 公式の手順 を参考に設定まで済ませる。 2 newrelicを追加する。 nodejsがインスト…

Windowsの再インストールをした

最近、なんだかWindowsが不穏な動きをすることが多かったので、数年ぶりにWindowsの再インストールをしてきれいにしたのでその時のメモ。 ブラウザ設定などは一通り退避しておき、書き戻した。 そのうえで、色々消えて再設定が面倒だったものをメモしておく…

crawleeでクローラを作る

最近Typescript/Playwright を利用しているので、 Playwrightを利用すると簡単にクローラが作れそう。 というところから技術調査をしたところcrawleeが見つかったので試しに利用してクローラをつくってみた話。 以下に手順を記す。 プロジェクトの作成 https…

controller spec から request spec へ

最近、 Rails の Controller spec を request spec に置き換えていっています。 ずっと古くから使われていたcontroller specのまま続けてきていたのを、今更ながらようやく移行し始めた。という状態です。 やりたいしやるべきだ。とタスクに積んでいたものが…

rubyとPostgresqlと日付

Postgeesql では日付は 4xxx-01-01 BC 0001-12-31 BC 0001-01-01 AD 9999-12-31 AD のようになっている。 一方、RubyのDateでは -9999-01-01 -0001-12-31 0000-01-01 9999-12-31 のようになっている。 このクラスでは、紀元前の年を天文学の流儀で勘定します…

Ruby RBS/Steep を既存Railsアプリに導入しようとした話

Ruby における型を明示する方法としてRBSというのがRuby3から登場して、徐々に良くなっていっている感があったので、現在仕事で関わっているRailsに導入してみようとした話。 導入自体は難しくなく zenn.dev こちらにまとめた。 結局、さわってみるだけ触っ…

Docker Desktop (mac) の代替を探して colima を使ってみている

前提 Docker Desktop 有償化からの値段あがる。 という話があり、会社でお金を払うか、代替のものに移行すべきか。という話が出ているので、 colimaを個人的に試用している。 他の選択肢として * Rancher Desktop * Podman Desktop * Finch 等があるが、どれ…

チームリーダーに何を望む?

チームリーダーが負うべき役割はなんだろうか。 とチームリーダーと1on1をしていて思うことがあった。 いろんなチームリーダーがいて、いろんな役割を負っているんだとは思う。 チームメイトとして、どんなチームリーダーがいいんだろう。 個人的に良かった…

我々は人間を相手に仕事をしている。

我々は人間を相手に仕事をしている。 ということをよくよく思い知らされる。 それはまた、人間とともに仕事をしている。ということでもある。 技術的な雑談ができるし、相談にものってくれる、そんなチームメイトが辞めると言ったとき、とても残念な気持ちに…

GitLab CIでのRailsのテスト(rspec) を高速化する。

rubyのテストを高速化する方法として、 parallel_tests を用いてテストを並列実行するというのがあります。 GitLab CI Runner を利用して、並列度を上げよう。というのが今回の試み。 まず、 parallel_tests で一般的な設定をしておきます。 config/database…

たまには価値のないエントリを

受け身に生きる 価値とは 自分の価値はなんだろうな。といつも思う。 受け身に生きていて、これがやりたいと強く主張することもなく、誰もやらないんだったらやろうか。 と仕事を取る。 やることがないから、前から気になっていた誰もやらないことをちょっと…

ruby2.7からruby3への道

ruby 2.7 で動いているアプリケーションを ruby3で動くようにする。 といってもやることは RUBY_OPT="-W:deprecated" として テストを走らせて、出てくる警告をつぶしていくだけの簡単な作業です。 多かったのは warning: Using the last argument as keywor…

ruby のプロジェクトで rubocop をアップデートする

とある ruby のプロジェクトで、rubocop のバージョンが相当程度古いまま運用されていたので最新版へアップデートしたのでそのメモ 戦略 原則すべて有効にする。最後まで残ったものは .rubocop_todo.yml に押し込める 現状を壊さない 分割して行う とった方…

一年を振りかえる。

今年は、今までと少し違う仕事もしたい。と配置転換を願い出て、4月から兼務という形で別のチームでも仕事するようになった。 プログラミングを主とする仕事がしたい。と言って配属先をもらったにもかかわらず、そこではCI/CDを整える仕事をしたり、大規模な…

AWS S3をマルチアカウントで使うときの注意を設定一つでしなくてよくなった話

以前 AWS S3 をマルチアカウントで使う時の注意 - なんかいろいろと という記事で、 マルチアカウントでS3にオブジェクトを置くときに、注意しないと大変だという記事を書いたのですが あたらに、S3にオブジェクトがアップロードされた際、オブジェクトの所…

人それぞれ

人それぞれだなぁと思ったことについて。 コロナ禍で外に出かけられなくなった、人に会えなくなった。ということにストレスを感じている方がいる一方、私のように、何不自由なく暮らしている人もいて、人それぞれだなぁと思ったりしました。 もともとの生活…

分散トレーシングの導入はそこそこ大変

分散トレーシング、今は共通規格として OpenTelemetry というのがあるやつです。 まじめに導入すると結構大変なんですよね。という話。 共通で使うための各種実装が用意されているんですが、一般的な用途のためのものなので、カスタマイズしていこうとすると…

ISUCON11予選に参加した

ぼっちなので一人参加です。 参加は今回で2回目。 なんの下準備もせずに挑んだ&一人だったので、作業はローカルでは一切行わず、sshした先でずっと作業してました。 起床が9:30とぎりぎりだったため、実は協議終了までほとんど何も食べなかったという苛酷な…

ソフトウェアエンジニアとして働きたい気持ち

そこそこの期間 ITインフラ系の仕事を続けてきていて、ちゃんとサービスのためのアプリケーションコードを書きたいなという思いが割と強まってきています。 ただ、やったことないからやってみたいな。と思っている状態なので、やればなんとかなる気がするけ…

CI/CD ツールはタスクランナーではない

会社では、gitlab を利用していて、 gitlab-ci で テストをしたりデプロイをしたりしています。 その gitlab-ci ですが、かなり柔軟な設定が行え、また webから 変数を設定して CIを新しく実行したり、スケジュール実行させたりできます。 変数が好きに設定…

全然解けなかった SECCON Beginners CTF 2021 write up

239位でした。 reversing only_read 逆コンパイルして main 読むと1文字ずつ比較しているので 比較している文字を連結する。 children バイナリ実行して watch で ps aux しておく。 見えた一番おおきな pid をこたえていって、最後はchildren のプロセス数…

terraform 0.15 と aws-provider と Sensitive

何が起きたか terraform 0.15 が出たので 手元の 古いものをアップデートしていました。 同じアカウントで、共通リソースを作る terraform と、 共通リソースを使う terraform が存在し、 それぞれの terraform の管理者が違うので、remote state で情報の受…

.gitlab-ci.yml の needs についてのメモ

gitlab-ci にて needs を使いたくなったのでその際にドキュメントを見ながら試したメモ needs document link needs は、あるjobが他のjobの実行後に動く必要がある。という順序を指定するもので、DAGである必要があります。 gitlab-ci pipelne では、通常、s…

たまにはプログラミングをしている話

仕事では、主にITインフラと呼ばれる領域で仕事をしており、プログラミングをする機会がほぼない。 なくてもたまにはコードを書きたい。 ということで、細かな手元の処理の自動化などのためにプログラミングしています。 使っているのはPython、Goあたりです…