はじめに テキストからダイアグラムの図が生成できるMermaidでAWS構成図をつくる方法を紹介します。 また、MermaidはGithubやQiitaなどのWebサービスやVSCodeやIntelliJなどのツール、コマンドやWebシステムでも使用できますので、良ければ下記の記事もご確認ください。 Mermaidのことはなんとなくわかったけど、AWSの構成図や配置図が描けないか考えていた人にも参考になれば幸いです。 AWSの構成図をつくる ・どんな感じの図ができるのか AWSの構成図を描くときにはAWS公式から提供されている[AWS Architecture Icons]というAWSのダイアグラムを書く際のアイコンセットを利用する機会が多いと思いますが、Mermaidでは残念ながらまだ使用できません。 そこで、アイコンの使用は諦めてAWSに関するグループやサービスについて、それっぽく見え
JavaScriptパッケージシステム「npm」は巨大なバグを抱えていると指摘し、新たなパッケージシステムを開発する「vlt」。npm作者らの参加を発表 npmに代わる新しいJavaScriptのパッケージシステム「vlt」(vōlt:ボールト)を開発しているvlt technologyは、同社にnpmの作者であるIsaac Z. Schlueter氏、npmのスタッフエンジニアリングマネージャであったDarcy Clarke氏、npmのCLIチームであったRuy Adornoらが参加すると発表しました。 Node.jsとnpmが作ったJavaScriptのエコシステム サーバサイドでJavaScriptを実行可能にしたNode.jsの登場と、そのNode.jsを基盤にJavaScriptのアプリケーションやモジュールなどをパッケージングして登録し、自由にダウンロード可能にしたレジストリで
2024年3月29日、Linux向け圧縮ユーティリティとして広く利用されているXZ Utilsに深刻な脆弱性 CVE-2024-3094 が確認されたとして、研究者やベンダがセキュリティ情報を公開しました。この脆弱性は特定の条件下においてバックドアとして悪用される恐れがあるものとみられており、当該ソフトウエアのメンテナのアカウントにより実装されたソフトウエアサプライチェーン攻撃の可能性が指摘されています。ここでは関連する情報をまとめます。 脆弱性の概要 xzとは主要なLinuxディストリビューションに含まれる汎用的なデータ圧縮形式で、今回問題が確認されたのはその圧縮・解凍ユーティリティであるliblzma(API)を含むXZ Utils。CVE-2024-3094が採番されており、Red Hatによって評価されたCVSS基本値はフルスコアの10。影響を受けたライブラリをリンクしているssh
今から10年前の2014年4月に、いわゆるIT系大企業のDBエンジニアを辞めてメルカリでソフトウェアエンジニアとして働き始め、そこから紆余曲折を経て10年たった。 当時の予定通り、まだ現役でコードを書いている。海外に拠点は移り、色んな国の人たちと仕事をするようになり、役割もテックリード、マネジャー、CTOと変わってきた。ソフトウェア開発について考え方もさまざまな変遷を経ているが、少しずつ培ってきた、大事にしていることをあげてみる。 ソフトウェア/アーキテクチャ/コード ソフトウェアは他者の価値(i.e. 課題を解決する/コストをカットする)を生み出してなんぼ。コードが綺麗でも売上は立たない。 アーキテクチャやプログラミング言語のトレンドは変化する。追いかけるよりも、その時々のチームやプロダクトに合った設計やプログラムを選択する。 遊び心は大事。チームやプロダクトにそれほど合ってなくても新し
初めに こんにちは、マネーフォワードクラウド連結会計(以降、クラウド連結会計)のバックエンド開発に従事しているTaskと申します。 今回は、クラウド連結会計のコア機能を高速化した話と、それが原因で起こった金額の不整合障害から得られた教訓を紹介しようと思います。 本記事内では、前提として簿記2級相当の知識や用語が頻出します。 連結会計とは まず、クラウド連結会計が扱っている連結会計について説明させてください。 連結会計とは、親会社・子会社など、支配もしくは従属関係にある複数の会社を1つのグループと捉えて、そのグループの決算を行うための会計手続きを指します1。 下の図の「連結グループA」の決算を行うイメージです。 この業務を「連結決算業務」と呼びます。 連結決算を行うことによって、会社の利害関係者(債権者や株主など)は各社単体だけではなく、グループとしての財政状態・経営成績・キャッシュフローの
はじめに やめろ、ではなく、やめたほうがいい。です。自分のユースケースに合ってるか今一度確認することを推奨します。基本的にはAlpineは避けたほうが良い、というのが2021年時点での私の認識です。 なんで? libcに一般的な互換性が不足しているからです。Ruby、Python、Node.jsなどでNativeモジュールをバンドルしているアプリケーションの場合、パフォーマンスの劣化や互換性の問題にぶち当たる場合があります。 superuser.com あとは他のベースイメージの軽量化もそれなりに進んできていて、Alpineが定番軽量イメージと言う認識は2018年頃には消えつつあったかなという認識でいます。 どうすりゃええねん ※Debian Slimがあるやんってツッコミ結構もらったんですが、Slimは当たり前過ぎてもう紹介しなくていいかなっていう甘えで省略していました。よろしくおねがい
こんど転職するのだが、見切り発車で仕事をやめた結果、次の仕事が始まるまで1か月ほど暇な時間ができてしまった。 2週間ほど休んだらもう休むのが嫌になってしまったので、せっかくなのでタイミーとやらを試してみようと思いついたときの話。 意外にも未経験だとできる仕事は少なく、やっと見つけたのは某化粧品とか日用品、掃除用品を作っている会社の流通倉庫でのピッキング作業。 朝から夕方までガッツリ働いても9000円いかないのには驚いたが、バイトなんて学生の頃以来なのでちょっと楽しみだ。 働いてみると、想像していたよりもずっとホワイト、というか巨大なシステムの一部として期待されていること以上のことは一切期待されていない、という労働環境なのでなかなか気楽で楽しかった。 休憩を抜くと7時間ほどハンドフォークを引っ張りながら歩きっぱなしだったが、毎日リングフィットをしているおかげかさほどダメージはなかった。 その
プロファイラーは、Datadog トレースライブラリ内で送信されます。アプリケーションですでに APM を使用してトレースを収集している場合は、ライブラリのインストールをスキップして、プロファイラーの有効化に直接進むことができます。 要件Datadog プロファイラーには Ruby 2.3+ が必要です (JRuby と TruffleRuby はサポートされていません)。 以下の OS、アーキテクチャに対応しています。 Linux (GNU libc) x86-64、aarch64Alpine Linux (musl libc) x86-64、aarch64また、pkg-config または pkgconf Linux システムユーティリティのいずれかがインストールされている必要があります。 このユーティリティは、ほとんどの Linux ディストリビューションのソフトウェアリポジトリで入
前回の続きです。 以下のような環境を構築することを考えます。 コンテナ内でホストの自分の uid/gid でビルドができるようにする。 コンテナ内には当該 uid/gid を持つ正しいユーザーが存在する。 コンテナ内には予め用意されたホームディレクトリが存在する。 ホスト環境から不必要に多くのボリュームをマップしない(コンテナの独立性のため)。 まず、コンテナ内にユーザーを予め作っておくことを考えてみましょう。これは以下のような Docker ファイルで可能です(ここでは builder というユーザーを作ってみます)。 $ docker build -t builder . $ docker run --rm -it -u $(id -u):$(id -g) -v $PWD:/build -w /build builder builder@d61e7be9264f:/build$ id
dockerコンテナを使ってローカルで開発作業をするとき、local側のディレクトリとコンテナ側のディレクトリを共有してコンテナ側で生成されるファイルを永続化したりする事がある。 このとき、コンテナ側で生成されたファイルがroot権限で作成されたりするとlocal側での取り扱いがめんどくさい。(sudoしないとファイルを削除できなかったり) ローカル側のUID, GIDとコンテナ側でのUID, GIDを揃えられるようにDockerfileやdocker-composeを用意しておくと、このあたりがスムーズに行くようになる。 #Dockerfile FROM ubuntu:20.04 ARG USERNAME=app ARG GROUPNAME=app ARG UID=1000 ARG GID=1000 RUN groupadd -g $GID $GROUPNAME && \ useradd
はじめに こんにちは。dd_fortです。 前回に引き続き、Dockerについての話になります。 Dockerの学習中に詰まった権限についての問題と、その解決法を紹介します。 はじめに ボリューム(Data Volume)とは permission denied が発生する問題 解決法 解決法1:マウントしたボリュームの権限を書き換える 解決法2:ユーザ情報の書かれたファイルを読み込み専用でマウントする 解決法3:コンテナ作成時にユーザとグループを追加する まとめ ボリューム(Data Volume)とは ボリュームとは、データを永続化できる場所を指します。 Dockerのコンテナ内部のデータはコンテナ破棄をすると消えてしまうため、 データを永続化させるための手段として ボリューム(volume) が存在します。 コンテナ内部の永続化の詳しい内容については、こちらの記事を参照ください。 t
1. はじめに Dockerコンテナからボリュームマウントを通じてファイルを書き出す場合、ユーザID/グループID(以下、UID/GID)を指定しないとファイルのオーナがroot(UID0)になってしまい、困ることがあります。 docker container runコマンドの--userオプションでUID/GIDを指定することができますが、Linux版DockerとDocker Desktop for Macでは挙動に差があります。 これらの挙動について自分なりに整理するために、いろいろ実験しました。 なお、DockerfileのUSER命令を使用してUID/GIDを指定する方法もありますが、今回はそちらについては触れていませんのでご了承ください。 余裕があれば、Rootlessモード編、userns-remapモード編も書きたいと思います。というか、そちらが本命なのですが。 2. Li
最近、wayland移行も大分安定して、デスクトップで利用するアプリも多少変化したので、最近利用しているものをまとめておこうと思う。 基本的にGNONEやKDE Plasmaみたいな重厚なデスクトップ環境は使わないタイプなので、そういうラインナップになっている。 開発で必須、みたいなやつはこの記事には余り入れてない。 ウインドウマネージャー Hyprland waylandで動作するタイル型ウインドウマネージャー。ヌルヌル動くのが気持ち良いだけでなく、機能的にもよく出来ている。開発が活発なのも良い。 waylandで画面共有のために利用されるxdg-desktop-portalのために独自実装を持っていてswayでは出来なかったウインドウ単位の画面共有が出来る。 という訳でwaylandのタイル型ウインドウマネージャーといえばswayがメジャーだが、最近はHyprlandを利用している。
生成 AI の登場によって、僕らはプログラムを書く時代が終わりに近づいている?! 2023 年に OpenAI 社が発表した ChatGPT は、特に僕ら IT エンジニアにとって衝撃な発表だったのではと思います。 今まで、ググったり、参考書をもとに実装したり、GitHub などからコードを参考にして実装していたものが、「テキストだけ」で実装できるほどになりました。 生成 AI を用いたサービスやツールの登場 ChatGPT の GPTs や LLM、これらを用いたプロジェクトが研究・開発されたり、オリジナル GPT を作成して業務の効率化を図ったり、僕らの仕事は大きく変わっていきました。 また、プログラミングが全くわからなくても、プロンプトのみでいろいろなことができるようになりました。 ビジネスシーンで非エンジニアという方々にも、導入が進んでいるのではないでしょうか? 僕がウォッチしてい
実務未経験、独学でプログラミングを勉強し、応用情報技術者試験に合格、ポートフォリオとしてのWebアプリケーションを制作し、地方のIT企業に就職にしました。 34歳のころからプログラミングの勉強を始め、ITエンジニアとして就職することに憧れていましたが、まさか実現できるとは…と自分が一番驚いています。どんなことをしたのか、こちらの記事でまとめたいと思います。 結論 34歳(35歳目前)から初めてプログラミング学習を独学で開始 放送大学を卒業、基本情報技術者試験、応用情報技術者試験に合格 ポートフォリオを制作、応募先に提出 37歳で地方(東京以外)のIT企業(Web受託がメイン)に試用期間の3ヶ月間契約社員として働き、正社員に 提出したポートフォリオについてはこちらの記事で解説しています。 就職できたと思う要因 ポートフォリオを完成させ、GitHubでコードを公開、Qiitaで解説記事を書いた
www.netflix.com 世界累計2900万部、日本で中国SFブームを引き起こすきっかけになった劉慈欣による壮大なSF長篇《三体》三部作。そのNetflixドラマ版が先日公開された。エピソード数は全部で8話で、原作(第二部、第三部は上下巻)の分量のことを思えば8話でその物語が全部語り尽くせるわけもないから、ドラマ版は原作の途中までになる。 で、SF超大作ドラマだし原作も好きだしですぐに観てみたのだけど、これが大変おもしろかった。原作とは大きく変わっている部分も多いが芯はブレずに残っていて、たしかに『三体』を観たという感触が強く残る。たとえば、原作では冒頭に配置され、作中の重要な人物が人類に絶望するきっかけを与える中国の文革のシーンも、Netflix版の前に公開済みのテンセント版とは違ってきっちりと冒頭で描かれている。 物語の大まかな流れは基本的に同一だし、ガジェットや重要な出来事もそ
なぜ令和にもなって動的型付け言語を使うのか シフトレフトという概念が生まれたのは二十年以上も前のはずだ。 それにもかかわらず動かしてみるまで答え合わせもできない言語で開発をするという発想自体がどうかしている。 同じ動的型付けといってもJavaScriptはブラウザという事情があるし、型の表現力に優れたTypeScriptがあるからまだよい。 しかし、Pythonはどうだ。他にいくらでも選択肢があるなかで、サーバーサイドにわざわざ選定する言語ではなかろう。 貧弱な型ヒント、しかも書いたところで大した効用もない。 使っている外部ライブラリにひとつでも型ヒントがクソなものがあれば即座に破綻する。 型というガードレールもシートベルトもなしで糞を撒き散らしながらする開発にはうんざりだ。 シンタックスもキモい 動的型付けもさることながら、シンタックスもキモい。とにかく思考を妨げる語順になっている。 m
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く