Vue.js logo: ©︎ Evan You (CC BY-NC-SA 4.0 with extra conditions(It’s OK to use logo in technical articles for educational purposes)) / React logo: ©︎ Meta Platforms, Inc. (CC BY 4.0) / Angular logo: ©︎ Google (CC BY 4.0) はじめに こんにちは。株式会社Flatt Securityセキュリティエンジニアの森(@ei01241)です。 最近のJavaScriptフレームワークの進化は著しく、VueやReactやAngularは様々なWebサービスに採用されています。そのため、多くのWebサービスがSPAを実装するようになりました。JavaScriptフレームワークは便利な一方で
2021 年 1 月に CSS Cascading and Inheritance Level 5 の First Public Working Draft が公開された。 CSS Cascading and Inheritance はその名の通り、CSS の Cascade や継承などについての仕様を定義しているもので、つい先日 Level3 が晴れて W3C Recommendation となった。 CSS Cascading and Inheritance Level 3 is a W3C Recommendation そして、新たに First Public Working Draft が公開された Level5 では、今までの Cascading に、新たにLayerという概念の導入が検討されている。 本記事では CSS の Cascading についておさらいし、新しい概念であ
WindowsやmacOS、Linuxなどのクロスプラットフォーム対応のデスクトップアプリ開発を容易にするフレームワークとして高い人気を持つフレームワークが「Electron」です。 ElectronはChromiumとNode.jsを用いることで、HTML/CSS/JavaScriptのWebテクノロジーによってデスクトップアプリケーションを開発できるのが最大の特徴です。 いまやElectronは、Visual Studio CodeやMicrosoft Teams、Slack、GitHub Desktop、そして最近話題のNotionなど、さまざまなアプリケーションに採用されています。 このElectronの優れた特徴を備えつつ、よりメモリ消費量が小さくファイルサイズもコンパクトで、高いセキュリティを備え、柔軟なライセンスを実現しようと開発されたのが「Tauri」です。 Tauriは、
こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 さいたまスーパーアリーナは、埼玉県さいたま市中央区にある多目的アリーナ。本文には特に関係ありません。 最近、Terraformを書くことが多く、知見が貯まりつつあった時にちょうどディレクトリ構成に関する記事を読んでタイミングがよかったので、 今回はTerraformのディレクトリ構造の実例を晒したいと思います。 結構固まってきたからうちのチームの構成も晒してみようかな。 | Terraformのディレクトリ構成の模索 - Adwaysエンジニアブログ https://t.co/31FMkcCJOo— Yuichiro Fukubayashi (@fukubaya) July 3, 2020 クラウド化推進 なぜ定番が決まらないのか 前提となる条件 本番環境と検証環境はほぼ同じ構成 レポジトリとtfstat
variable "vpc_id" {} variable "cidr_block" {} variable "availability_zone" {} resource "aws_subnet" "subnet" { vpc_id = var.vpc_id cidr_block = var.cidr_block availability_zone = var.availability_zone } output "subnet_id" { value = aws_subnet.subnet.id } 引用元: Creating Modules - Terraform by HashiCorp アンチパターンの理由 1つのリソースしか含まないモジュールのことを引用元ページでは "単一リソースの薄いラッパー" と表現しています。 これには次のデメリットがあります。 モジュールが多くなりすぎ
data "aws_caller_identity" "current" {} output "account_id" { value = data.aws_caller_identity.current.account_id } 若干補足しておくと、 "${}" 自体が廃止されたわけではなく、今でも文字列の中に変数を埋め込む場合には必要ですが、式が変数の参照しか含まない場合は不要で、v0.13.4以降は冗長な書き方は警告が出ます。ちなみにv0.14のfmtはもう一歩踏み込んで、この書き方を自動で修正するようになりました。古いサンプルコードを雑にコピペできるようになってべんり。 Terraformではなく汎用的なHCLそのものの仕様を調べたいときは、 hashicorp/hcl にありますが、本稿執筆時点ではデフォルトのmasterブランチはまだHCL1であることに注意して下さい。 HCL
1 journalctlコマンドとは? 2 検証環境 3 メッセージをリアルタイムに表示する方法(-f) 4 指定したユニットのメッセージを表示する方法(-u <ユニット名>) 5 カーネルが出力するメッセージを表示する方法(-k) 6 指定した重要度のメッセージを表示する方法(-p) 6.1 alertのメッセージを表示する方法 6.2 複数の重要度のメッセージを同時に表示する方法 7 特定期間のメッセージだけを表示する方法(--since, --until) 7.1 開始日時を指定する方法(--since) 7.2 開始終了日時を指定する方法(--since,--until) 7.3 指定した時刻とユニットでメッセージを絞り込む方法 7.4 指定した時刻と重要度でメッセージを絞り込む方法 7.5 今日出力したメッセージを表示する方法(--since today) 8 特定プロセスのメッ
// CommonJS Modules の場合 const fs = require("fs"); const fs = require("node:fs"); // ES Modules の場合 import fs from "fs"; import fs from "node:fs"; process のように、グローバル変数としても組み込みモジュールとしても提供されているAPIもあります。 global globalThisの別名です。Webブラウザでは window と self がglobalThisの別名として定義されていますが、Node.jsには window や self はなく、かわりに global が定義されています。 Buffer ArrayBuffer, TypedArray (Uint8Arrayなど), DataView はJavaScriptの標準機能です。
はじめに やめろ、ではなく、やめたほうがいい。です。自分のユースケースに合ってるか今一度確認することを推奨します。基本的にはAlpineは避けたほうが良い、というのが2021年時点での私の認識です。 なんで? libcに一般的な互換性が不足しているからです。Ruby、Python、Node.jsなどでNativeモジュールをバンドルしているアプリケーションの場合、パフォーマンスの劣化や互換性の問題にぶち当たる場合があります。 superuser.com あとは他のベースイメージの軽量化もそれなりに進んできていて、Alpineが定番軽量イメージと言う認識は2018年頃には消えつつあったかなという認識でいます。 どうすりゃええねん ※Debian Slimがあるやんってツッコミ結構もらったんですが、Slimは当たり前過ぎてもう紹介しなくていいかなっていう甘えで省略していました。よろしくおねがい
Front-End Study #1「Cloud Native時代のフロントエンド」 - connpass の発表内容のテキスト版です。 発表に載せられなかった参考資料集 StatCounter Global Stats - Browser, OS, Search Engine including Mobile Usage Share The "Developer Experience" Bait-and-Switch - Infrequently Noted JavaScriptよ。文明を捨て、自然に還れ。 ::ハブろぐ Deno - A secure runtime for JavaScript and TypeScript Rome Toolchain Blitz.js - The Fullstack React Framework | Blitz.js ⚡️ Prisma - Da
MicroK8sにArgoCDをインストールするでMicroK8sにArgoCDをインストールしたので機能を試しています。その一貫として、今日はItioとRolloutsを連携してカナリアデプロイメントを試します。 事前準備 Itioをインストールする Argo Rolloutsをインストールする yamlを作成する Rolloutを作成する Gatewayを作成する VirtualServiceを作成する Serviceを作成する デプロイする Githubに登録する ArgoCDのApplicationを作成する GithubとArgoCDを同期する カナリアデプロイをする Rolloutを編集する GithubとArgoCDを同期する カナリアデプロイを確認する 事前準備 Itioをインストールする MicroK8sのIstioを有効化して、Istioをインストールします。インストー
Argo Workflowを触ってみたので、調べたことを軽くまとめてみました。 概念 Argo Workflowを使う上で出てくる概念としてはざっくり以下です。詳細はCore Conceptsを参照ください。 Workflow Kubernetes上で実行されるworkflowを定義する workflowのstateを保管している Workflowは静的な定義なだけでなく、定義のインスタンスでもある Workflow Spec 実行されるworkflowは Workflow.spec で定義でき、以下のような感じ。 templates は関数のような感じで、実行される処理の内容がまとまっている。 entrypoint はworkflow実行時に一番最初に実行されるtemplateのことを意味する。 apiVersion: argoproj.io/v1alpha1 kind: Workflo
臨機応変 いくつかの組織で打ち合わせをさせていただくことがあった。 名古屋の企業(製造業)で、5年ほど前から「会議時間は30分未満」という張り紙を見かけることが何度かあった。 それらの組織で、実際に30 分未満で終わった時に、秘訣をお聞きした。 うまく行っているところの抽象的な印象は、臨機応変。原則に縛られるのではなく、今解決しなくてはいけない問題に焦点を絞っていることかなって感じた。 いくつかの議事は、具体的な内容は違う。並列で記載するか、範囲を記載するかもしれない。 自分にとって、大事そうな順番に並べなおしてみようと思う。 ソフトウェア開発では40年くらい前からchatというオンラインの文字だけで打ち合わせをすることがしばしばあった。最近ではSlackというソフトウェア上で行うのが流行りだった。 オンラインのchatでは、ソースコードを書きながら、コンパイルしながら事実上の会合ができる
〜 ZOZO NEXT、ソフトバンク、MNインターファッションの3社共同で3Dバーチャル試着に関する実証実験を実施 〜 株式会社ZOZO NEXT(本社:千葉市稲毛区、代表取締役CEO:金山 裕樹、以下「ZOZO NEXT」)、ソフトバンク株式会社(本社:東京都港区、代表取締役 社長執行役員 兼 CEO:宮川 潤一、以下「ソフトバンク」)およびMNインターファッション株式会社(本社:東京都港区、代表取締役社長:木原 伸一、以下「MNインターファッション」)は、オンライン上で服のバーチャル試着体験が可能なアプリ「ALTRM(オルターム)」(以下「ALTRM」)の実証実験を実施します。実証実験は2022年2月21日から3月29日の30日間(※1)で、合計約400人を対象に「ALTRM」を実際に使用してもらうユーザーテストを行います。 「ALTRM」は、3Dバーチャルアバターを活用して、自宅やオ
CMD と ENTRYPOINT の違い 先日の勉強会で Dockerfile における「CMD」と「ENTRYPOINT」の使い分けについて質問がありました。結論からしますとタイトル通り、ENTRYPOINTは「必ず実行」、CMDは「(デフォルトの)引数」なのですが、初学者にとっては分かりづらいところ。デモを交えながら、ブログでも改めて説明します。 (違いについては、既にいろいろなトコロでも言及されていますが、初学者向けにまとめました。私自身、初めて両者に触れた時は、全く理解できなかった!という思いもあります) コンテナ実行時の挙動と「CMD」命令 まず前提として、次のコマンドを実行したら、なぜ bash が起動するか分かりますか。コンテナ実行後にプロセスを確認しますと、/bin/bash がコンテナ内で PID 1 として動いています。 $ docker container run -
こんにちは。 SRE の @suzuki-shunsuke です。 Terraform Monorepo に対する Renovate の大量の Pull Request を処理するための技術について紹介します。 背景 過去ブログで何度か紹介しているように、弊プロダクトでは Terraform の Monorepo を管理しています。 先日、 CI を AWS CodeBuild から GitHub Actions + tfaction に移行しました。 blog.studysapuri.jp working directory (state) の数は 400 近くあり、 working directory ごとに以下のような tool のバージョンを管理しています。 Terraform Terraform Provider tflint tflint plugin tfsec etc これ
【新機能】Google Cloud 純正の構成図ツール Architecture Diagramming Tool が発表されました Google Cloud のアーキテクチャ図を書く純正のツール Architecture Diagramming Tool が発表されました。Google Cloud の構成図ツールの決定版になると思います。 ウィスキー、シガー、パイプをこよなく愛する大栗です。 先程 Google Cloud 純正のアーキテクチャ図作成ツールである Google Cloud Architecture Diagramming Tool が発表されました。 Introducing a Google Cloud architecture diagramming tool Google Cloud Architecture Diagramming Tool 今まではGoogle S
Go1.18は2022年3月にリリースされました。このリリースはGo言語へのジェネリクスの実装を含んでいます。 この記事ではできるだけ最新の仕様と用語法にもとづいてジェネリクスの言語仕様について解説していきます。 更新履歴 2024/01/03: Go1.21(2023-08-08)でcmpパッケージが標準ライブラリに追加されたことに対応しました。 2023/02/23: Go1.20(2023-02-01)のcomparableの仕様変更に対応しました。 次の関連資料があります: The Go Blog - All your comparable types Griesemer氏によるGo公式ブログです。 Go言語のBasic Interfaceはcomparableを満たすようになる(でも実装するようにはならない) 上記の内容に対する筆者の解説記事です。Go1.20リリース前に書いたの
RustやElectron、denoに浮気しつつmrubyを使ってMacでクロスコンパイルしwindows用のexeを作るのに苦労した話RubyRustmrubyElectronDeno きっかけ SVGファイルをparseして中のxmlやCSSから色情報などを取り出す、これのローカル版を作りたいということでやりたいことは SVGをパースしてdom上の特定の要素を抽出 dom上だけではなくinlineのCSSや内のCSSから特定の要素を抜いてくる 汎用性を考えてjsonで結果を表示できるようにする たったこれだけ。 なのでxmlパーサー(XPathなら嬉しい)と正規表現は必須、cssパーサーは元々の状態で使ってなかったのであれば良しとする(jsonはいかようにでもなる)。 因みにチャレンジしたフレームワークや言語は Rust Crystal Language Electron deno r
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く