Go言語でのDockerfileのベストプラクティスを考えてみた

本投稿は TECOTEC Advent Calendar 2023 の14日目の記事です。
こんにちは。次世代デジタル基盤開発事業部の椎葉です。
私は担当する案件でDockerを使用してGo言語のアプリケーションを作成しています。その中で、いくつかDockerfileの改良・修正を行いました。 今回はその経験を元にGo言語におけるDockerfileのベストプラクティスについて考えてみました。その内容について解説していきます。

  • 実行環境
  • 完成品
  • 解説
    • ビルド引数でバージョンの変更を可能にする
    • 適切なベースイメージを使用する
    • キャッシュマウントを使用する
      • Tips
    • バインドマウントを使用する
    • マルチステージビルドを使用する
    • 非ルートユーザーで実行する
  • まとめ
  • テコテックの採用活動について
続きを読む

WKWebView.reload() を SwiftUI でもできるようにする

本投稿は TECOTEC Advent Calendar 2023 の 12 日目の記事です。

はじめに

こんにちは。決済認証システム開発事業部 の 牛越 嵩 です。10月頭に、iOS エンジニアとして入社しました。 (入社前までは React 中心にやっておりました。初の iOS 実務です。)

さて、最近、WKWebView を使う機会があり、UIViewRepresentable を使用して SwiftUI で使えるようにしたのですが、その際に得た知見を紹介しようと思います。

ただ、UIViewRepresentable でラップしただけの話だと二番煎じになってしまい、面白みがないので、SwiftUI では難しそうな WKWebView.reload() の実行等のやり方を紹介したいと思います。

(前提) SwiftUI で UIViewRepresentable を使用してコンポーネントを作成する際に心がけていること

大前提として、コンポーネントを作成する際には、そのコンポーネントの陰に何が隠れているか、というのをコンポーネント使用側に意識させない作り方が重要だと僕は考えています。

(準備) WebView コンポーネントの作成

以下のように作成します。

続きを読む

大規模言語モデルを扱うライブラリtransformersを使って文章の感情分析をしてみた

本投稿は TECOTEC Advent Calendar 2023 の11日目の記事です。

こんにちは、次世代デジタル基盤開発事業部の武田幸多朗です。 最近、『大規模言語モデル入門』という本を読む機会がありました。その中から特に印象に残った、文章の感情分析について少し紹介したいと思います。

はじめに

まず大規模言語モデルとはChatGPTにも利用されており、様々なシーンで注目されている深層学習のモデルの一つです。大量の文章データを使用し、その文章に登場する文法や知識、感情まで学習することができます。学習したモデルを利用することで、文章を入力するとその文章から感情を読み取り検出することが可能です。

自分が入力した文章から感情が読み取れるなんて、なんだかワクワクしてきませんか?

続きを読む

Neovimの設定をVimScriptからLuaに置き換える

本投稿は TECOTEC Advent Calendar 2023 の10日目の記事です。

こんにちは、証券フロンティア事業部の内田です。

エディタは何を使っていますか?
Visual Studio CodeやIDEなどたくさんありますが、私はNeovimを使っています。

neovim.io

VimにはVimScriptという組み込みのスクリプト言語があり、設定やプラグインの作成ができます。
NeovimでもVimScriptで設定を書くことができますが、2021年にリリースされたv0.5.0からLuaでも設定を書くことができるようになりました。
Luaに対応してから2年以上が経過しましたが、これまで敬遠していました。
しかし、今回はちょうど良い機会だと思うので、Luaを使いながら設定作業を行いたいと思います。
実施バージョンはv0.9.4です。

続きを読む

【初心者向け】Keycloak(認証・認可OSS)の導入手順紹介

本投稿は TECOTEC Advent Calendar 2023 の9日目の記事です。

はじめに

こんにちは。決済認証システム開発事業部の吉本です。普段はサーバーサイドエンジニアとして業務に携わっています。

これは入社前の話なのですが、配属先が決済認証システム開発事業部に決まった際「そもそも認証ってなんだろう?」という素朴な疑問がありました(漠然と理解はできているけれども、「説明してください」と言われるとちょっと困るレベル)。

そこから色々と調べて辿り着いた「Keycloak」というOSSについて、実際にインストールしながら簡単に紹介したいと思います。

続きを読む

GitHub Codespaces で簡単スマートコントラクト開発環境構築

本投稿は TECOTEC Advent Calendar 2023 の8日目の記事です。

はじめに

こんにちは、次世代デジタル基盤開発事業部の樋口です。普段はWeb3.0に関わるプロジェクトを担当しています。

Web3.0関連のプロジェクト経験はまだ浅く勉強の日々ですが、ちょっとしたフレームワークの勉強時など、インスタントな環境を手軽に作成し動かす際にGitHub Codespacesを利用しています。

ゆくゆくは、自社のプロジェクトにも導入することを夢に、本投稿では GitHub Codespaces の特徴やメリットについての解説と簡単なスマートコントラクト開発環境構築手順を記載します。

前提として今回構築する環境はFoundry を利用した開発環境の構築方法となります。

続きを読む

プロジェクトの足回りを整備しよう

本投稿は TECOTEC Advent Calendar 2023 の7日目の記事です。
決済認証システム開発事業部の鍛治です。
私はテコテックに入社後、主に開発に携わっていたのですがここ半年ほどは要件定義、設計、プロジェクト管理といった業務を行っています。
今回は自分自身への備忘録も含め、プロジェクト管理上で実践してみてよかった試みを紹介します。

  • プロジェクトのフォルダ構成を見直す
  • プロジェクトの共通言語を持つ
  • 設計書作成ツールを選定する
  • 定期的に振り返りを実施する
  • 最後に
  • テコテックの採用活動について
続きを読む