並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 975件

新着順 人気順

技術ブログの検索結果161 - 200 件 / 975件

  • 継続的な技術ブログ運営で最も大切な「企画」の考え方 - 年間25万PVを集めるために実践したこと - #FlattSecurityMagazine

    はじめに 本記事の流れ 最初にして最大の難関「ネタ出し」 「1. ネタ出しのコミュニケーション・体制作りを構築していない」の解決 「2. 本来ネタになるはずのものを見逃している / 諦めている」の深掘り 「切り口を考える」とは? ☔️ 切り口を考えていない例 🌞 切り口を考えられている例 切り口のまとめ 切り口を考えるために必要な要素 情報の希少性 課題の鏡面性 (構造の頑強性) 「情報の希少性」「課題の鏡面性」を意識して切り口を考える 企画は難しいからこそ、ガチガチの運用はしない どのように難しいのか? 2つに共通する難しさ 「情報の希少性」をジャッジする難しさ 「課題の鏡面性」をジャッジする難しさ 難しさを受け入れる まとめ はじめに はじめまして。開発者のためのセキュリティサービスを提供したい、Flatt Security 執行役員の豊田恵二郎 @toyojuniです。 Flatt

      継続的な技術ブログ運営で最も大切な「企画」の考え方 - 年間25万PVを集めるために実践したこと - #FlattSecurityMagazine
    • 「node.jsにtextlintをインストールして」「ルールをtypescriptで記述して」「VSCode上でステップ実行でデバッグしたい」をする - 土屋つかさの技術ブログは今か無しか

      近年の大規模プログラム開発環境では、ソースコードを共有する前にlinterと呼ばれるツールを使ってコード検証をするのが一般的です。linterでは決められたコーディングルールに沿っているかについて、コンパイラよりも厳格なチェックを行い、場合によっては自動的に修正してくれます。ちなみに「linter」という名称はUNIXのlintコマンドから来ていて、"lint trap(洗濯機に取り付けてある「糸くず("lint")取り」の事)"に由来しているそうです*1。 github.com textlintは、自然言語で書かれたテキスト用のlinterとして提供されているツールです*2。提供されている様々なルールを組み合わせて、テキストを検証する事が出来ます。 textlintはnode.js上で動くjavascriptのアプリで、独自のルールを作成してツールに組み込む事も出来ます。新規作成をサポー

        「node.jsにtextlintをインストールして」「ルールをtypescriptで記述して」「VSCode上でステップ実行でデバッグしたい」をする - 土屋つかさの技術ブログは今か無しか
      • data-testidはいつ使うべきか?そもそも使うべきなのか? | フューチャー技術ブログ

        Playwrightあるいはそのロケーターの元ネタとなっているTesting Libraryでは、DOMを指定する方法として data-testid 属性を扱ったクエリーを提供しています。どちらでも getByTestId(ID文字列) メソッドを使い、この属性値を使った要素の取得が行えます。しかし、ドキュメントを見ると、PlaywrightもTesting Libraryも、「他の手法が使えないときの最終手段」としています。 In the spirit of the guiding principles, it is recommended to use this only after the other queries don’t work for your use case. Using data-testid attributes do not resemble how your

          data-testidはいつ使うべきか?そもそも使うべきなのか? | フューチャー技術ブログ
        • 400社以上の技術ブログを網羅 はてながまとめページ公開 「現場のエンジニアの知見が毎日受け取れる」

          ページ作成の経緯について、同社は「『はてなブログ』という機能だけではなく、読者と企業技術ブログ記事とのマッチングを促進していくこともはてなブログの役割だろうと考えた」と説明。エンジニアが日々の情報収集や雑談のネタ帳としての利用や、技術ブログ作成者にとって執筆のモチベーションの1つとして活用してほしいとしている。 関連記事 デジタル庁、初心者向け「Webアクセシビリティー」導入ガイド無償公開 非技術者向け、専門用語は少なめに デジタル庁は、Webサイトへのアクセスしやすさ「Webアクセシビリティー」の解説資料「ウェブアクセシビリティ導入ガイドブック」を公開した。技術者ではないデザイナーや行政人材など初心者を対象にした資料という。 “クリエイターのための謝罪フレーズ集”電子書籍を無料公開 「締め切りに間に合わない」「納品したものに盗作の疑いがあった」――“謝罪待ったなし”のこんな状況で、適切な

            400社以上の技術ブログを網羅 はてながまとめページ公開 「現場のエンジニアの知見が毎日受け取れる」
          • 日々の進歩をふりかえるために"今日の学びブログ"を続けている話 - 虎の穴ラボ技術ブログ

            こんにちは、虎の穴ラボのKanonです。 本記事は虎の穴ラボ2024年夏の連載ブログ 17日目の記事です。 今回私が担当するテーマは「学習」に関するものということで、自分が毎日続けている「今日の学びブログ」についてお話ししようかと思います。 今日の学びブログとは kanonon.hatenablog.com 私が個人的に毎日の学びを振り返るために投稿しているブログのことです。 それ専用のブログを作って、この記事を執筆している現在まで61日連続で投稿が続いています。 きっかけ PHPカンファレンス小田原の懇親会でのそーだいさんのLTでした。 speakerdeck.com このLTを聴いて刺さるものがありました。というより、「これはまずいな」と思いました。 「今日の仕事をふりかえって、一つでも成長したか」と言われた時に、必ずしも「Yes」と言えないなと思ったからです。 これまで「じぶんリリー

              日々の進歩をふりかえるために"今日の学びブログ"を続けている話 - 虎の穴ラボ技術ブログ
            • LLM開発のためにMLOpsチームがやるべきこと | フューチャー技術ブログ

              はじめにこんにちは、SAIG/MLOpsチームでアルバイトをしている板野・平野です。 今回は「LLM開発のためにMLOpsチームがやるべきこと」というテーマで、従来のMLOpsとの違い・ツール・構成例等について調査・整理しました。 LLMとはLarge Launguage Model(大規模言語モデル)の略であり、ここでのLLM開発とは、「LLM自体の開発」および「LLMを活用したシステム開発」の両方を含むものとします。LLM開発のフローについては以前にLLM開発のフローで詳細を説明しているので、ぜひ併せてご覧ください。 まず、MLOpsとは「機械学習モデルの実装から運用までを円滑に推進するための手法や考え方」のことです。AIの社会実装が増えるに伴い、MLOpsチームを設ける企業も増えてきました。また、最近ではLLMやその関連技術が急速に発達してきており、今後LLMを用いたアプリケーション

                LLM開発のためにMLOpsチームがやるべきこと | フューチャー技術ブログ
              • Go1.17における go get の変更点 | フューチャー技術ブログ

                The Gopher character is based on the Go mascot designed by Renee French. TIGの辻です。 Go 1.17連載の5日目の記事です。本記事ではGo1.17の go get に関するアップデートの詳細をお伝えします。 go get に関する変更点サマリ モジュール外からの go get におけるコマンドインストール時に、警告を出力する go get の -insecure フラグは使えなくなった、代わりに環境変数 GOINSECURE を使う モジュール外からの go get におけるコマンドインストール時に、警告を出力するgo get 時の警告Go1.16のリリースノートでも、コマンドのインストールで go get を使うのは非推奨、とお知らせがありましたが、Go1.17では、モジュール外からコマンドのバイナリを go

                  Go1.17における go get の変更点 | フューチャー技術ブログ
                • GoのORマッパー連載を始めます | フューチャー技術ブログ

                  (2021.09.18追記)おまけとして、筒井さんがさらに寄稿してくれました。 lib/pq から jackc/pgx への移行 O/RマッパとクエリビルダーO/Rマッパは Object Relational Mapperの略で、通常はGoの構造体とRDBのレコードを紐付ける処理のことを指します。O/Rマッパーと呼ぶことが多いですが、略してORMとも呼びます。名前から見るとSQL検索結果を構造体にマッピングすること(Goだとsqlx相当の処理)かなと思いますが、実際はSQLを組み立てるDSLを提供するライブラリが多いです。 クエリビルダーは、広い意味のO/Rマッパ機能のうち、SQLクエリを組み立てるライブラリのことです。調べると goquとかがまさにそれにあたります。 細かくはgoquを連載テーマにした伊藤真彦さんに譲るとして、簡単ではありますがここでサンプルコードも出しちゃいます。 ds

                    GoのORマッパー連載を始めます | フューチャー技術ブログ
                  • エンジニアが最低限理解しておくべきOSSライセンスの基礎知識 | フューチャー技術ブログ

                    フューチャー夏休み自由研究連載15本目の記事です。 はじめにシステム開発にてオープンソースのライブラリやフレームワークを利用することは、もはや当たり前となっています。 みなさんはOSSのライセンスについてどの程度理解していますでしょうか。 OSSだから無条件に利用可能だと思っていませんか? 本記事では、OSSのライセンスについて最低限エンジニアとして理解しておくべき内容を整理します。 なお、筆者は法学の専門家ではないことを事前にご了承ください。 本記事の内容は筆者個人の調査によるものであり、正確であるよう可能な限り努力しておりますが、間違いが含まれている可能性があります。あくまで参考資料としてご活用いただければ幸いです。 前提としてOSSとはオープンソースソフトウェア(OSS)とは、利用者の目的を問わずソースコードを使用、調査、再利用、修正、拡張、再配布が可能なソフトウェアの総称となります

                      エンジニアが最低限理解しておくべきOSSライセンスの基礎知識 | フューチャー技術ブログ
                    • Devinが作るPull Requestのセルフマージを禁止する - newmo 技術ブログ

                      AI開発ツールDevinが作成したPull Requestに対して、セキュリティと品質を確保するために2人の承認を必要とする実装方法について解説します。 背景 newmoでも少し前からDevinを利用して開発を行っています。 Devinを利用するフローは、以下のような感じになります。 エンジニアがSlackやDevinのWeb UIからタスクを依頼 DevinがGitHubにPull Requestを作成 エンジニアは必要に応じてSlackやPull Request上でコメント Devinがコードを修正 問題なければ承認してマージ devin-task-flow このフローには、エンジニア一人が指示して書かれたコードをそのエンジニア自身が承認してマージできてしまうという課題があります。 自分のPCでコーディングのためのAIエージェントを使う場合には、Pull Requestはエンジニアのア

                        Devinが作るPull Requestのセルフマージを禁止する - newmo 技術ブログ
                      • スキーマのバージョン管理と互換性の話 | フューチャー技術ブログ

                        はじめにはじめまして、TIGの原木です。サービス間通信とIDL(インタフェース記述言語)連載の4本目です。 気が付けば、バージョンの話0ばかりしています。 この記事ではスキーマのバージョン管理と互換性について話します。 “スキーマ”が指し示す言葉と課題一般的にスキーマのバージョン管理という話が出た場合、次のどちらかを想像する人が多いのではないでしょうか。 データベースのスキーマ(DB内のデータ構造)の変更をどうやってバージョン管理していくか サービス間通信で使用するデータフォーマット(ex. gRPCのprotobuf)をどうやってバージョン管理していくか データ構造が変わったことによりソフトウェアの改修が発生するとわかった瞬間、この問題に直面して「どうしよう…」と悩まれた経験を持つ方は数知れずいらっしゃるかなと思います。 両者において、スキーマのバージョン管理が課題だと意識するタイミング

                          スキーマのバージョン管理と互換性の話 | フューチャー技術ブログ
                        • PHPとSDLで始めるコンピューターグラフィックス – 回転と極座標|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                          PHPとSDLで始めるコンピューターグラフィックス – 回転と極座標 こんにちは nobuh です。前々回と前回の2回にわたり PHP と SDL でのプリミティブな操作を使ってコンピューターグラフィックスを楽しんでいるこのシリーズ。3回目は移動や視点の操作で必須となる座標の回転と極座標表示について取り組みます! ここまでの振り返り 第 1 回 基本的な画像描画方法の説明 PHPとSDLで始めるコンピューターグラフィックス 第 2 回 透視投影による 3D 表示 PHPとSDLで始めるコンピューターグラフィックス – 透視投影で3D 少し改良 第 2 回までの 3D 表示の機能のまま、プログラムを少し改良してみました。 まずは 3D データを準備するときに形状と位置がごちゃまぜになっていたのを形状の情報と位置の情報に分離しました。加えてオブジェクト指向っぽく構造を整理しました。具体的には

                            PHPとSDLで始めるコンピューターグラフィックス – 回転と極座標|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
                          • 読まれる技術ブログを書くヒント - 企業技術ブログ

                            忙しい業務の合間をぬって書く技術ブログ、せっかくなら多くの人に読まれたいですよね。 エンジニア向けメディアなど、企業のコンテンツマーケティング支援やHatena Developer Blogの編集サポートなども担当しているはてなの編集者に、読まれる技術ブログを書くヒントや、はてなで実践している工夫について聞いてみました。ブログを書く際に、よろしければ参考にしてみてください。 記事タイトルにこだわりましょう人は記事タイトルを見て、中身を読むか判断します。つまり、タイトルの書き方ひとつで読まれやすくもなるし、逆に損をすることもあるのです。読まれるブログを目指すとき、まず記事タイトルに注力することをおすすめします。 見出しを読み手への道標に活用しましょう「いま何の話をしているのか」読み手が迷わない道標として、見出しを活用しましょう。 目次を見て、各セクションにどんなことが書いてあるのかイメージで

                              読まれる技術ブログを書くヒント - 企業技術ブログ
                            • GoとSuffixArray | フューチャー技術ブログ

                              フューチャー夏休みの自由研究連載の5回目です。 はじめにTIG の辻です。 Go は標準ライブラリが充実しているとよく言われます。標準ライブラリだけで、HTTP サーバを作れたり、暗号化処理や、JSON や CSV といったデータ形式を扱うことができます。go list std | grep -v vendor | wc -l としてパッケージ数を見てみると、約 200 ものパッケージが存在することがわかります。本記事では、その多くの Go の標準ライブラリの中でも、個人的に面白いなと思ったライブラリを紹介したいと思います。suffixarray パッケージです。 suffixarray パッケージは Suffix Array を扱うライブラリです。suffixarray パッケージの魅力を感じるには、まず Suffix Array とは何か? を知る必要があるでしょう。 Suffix A

                                GoとSuffixArray | フューチャー技術ブログ
                              • GitHub 標準の Annotation を活用してレビューを可視化する | フューチャー技術ブログ

                                CI/CD連載 2本目の記事です。 はじめにコードレビューを自動で可視化するためのツールといえば reviewdog が有名です。 最近(2025年03月)reviewdog のソースリポジトリが侵害され、reviewdog を実行しているリポジトリにおいて シークレット情報がワークフロー上に漏洩するセキュリティインシデントが発生 したことは記憶に新しいでしょう。 筆者も reviewdog にはお世話になっている開発者の一人ですが、本件を受けて「そもそも GitHub の標準機能だけで同じようなことができないか」という考えを持ち、あらためて GitHub 標準の Annotation 機能について調べてみた記事になります。 なお、reviewdog 自体の有用性を否定するものでは一切ありません。 レビューの可視化とはまず誤解のないよう本記事における「レビューの可視化」とは具体的に何を指す

                                  GitHub 標準の Annotation を活用してレビューを可視化する | フューチャー技術ブログ
                                • 画面の解像度の要件定義の話 | フューチャー技術ブログ

                                  最近、企業内システムのウェブサービス開発や、B2B2B案件とかでウェブの画面を作るケース、Flutterでスマートフォンアプリを開発するときに、画面の要件をどうしましょう、という話が出てくることが多く、毎回似たような説明をしている気がするので、時間節約のためにまとめておきます。 単にパソコンやモニターのカタログスペックを持ってくるだけじゃだめだということがお分かりいただければ大丈夫です。 解像度の論理と物理AppleがRetinaを世に出すまでは、基本的にコンピュータが想定するdpi値はほぼ同じでした。dpiというのはインチあたりのドット数で、10ポイントのフォント、といった文字の表示の時の基準になる単位です。同じポイントのテキストであれば、ピクセルサイズの絵として画面に表示されていました。 iPhoneは2010年のiPhone 4から2倍解像度になってRetinaと名付けられたディスプ

                                    画面の解像度の要件定義の話 | フューチャー技術ブログ
                                  • Rust+WebAssemblyを使ったWebアプリでの高速画像処理入門 - アダコテック技術ブログ

                                    要約 2024/11追記 背景 WebAssembly (WASM) とは? Rust言語とは? サンプルアプリ概要 LBP特徴量計算をRustで実装 フロントエンド環境構築 バックエンド環境構築 スキーマ定義 Rust実装 WASMバイナリの生成 TypeScript実装 実行結果 まとめ メンバー募集しています! おまけ こんにちは!美味しいタコスを食べることを専門としているプロダクト開発部エンジニアの井上です。 要約 WebAssembly(WASM)、Rustは近年注目されている技術であり、これを利用することでWebアプリケーション上で高速な画像処理を実現できるよ。 我々も画像前処理を行っていたWindowsデスクトップアプリケーションを、WebAssembly+Rustを使用してWebアプリケーションに置き換えたよ。 Rust言語で実装した画像処理をWASMにコンパイル、そしてW

                                      Rust+WebAssemblyを使ったWebアプリでの高速画像処理入門 - アダコテック技術ブログ
                                    • Playwright連載始まります | フューチャー技術ブログ

                                      E2Eフレームワークとして高い人気を誇ってきたのがCypressです。使いやすいテストランナー、わかりやすいテスト結果、TypeScriptの組み込みサポート、プラグインによる拡張、(Seleniumと比較して)高速な実行などを提供しています。フューチャー社内でも使っているプロジェクトがいくつもあり、過去にCypress連載をブログ上で行い、それがきっかけとなってSoftware Designに連載も行いました。 一方で、現在人気が高まりつつあって、Cypressを追い抜こうとしているのがPlaywrightです。かなりCypressを意識して機能追加を行なってきている印象があります。現時点では特徴的なタイムトラベルデバッガー(過去の履歴すべてを保持しておいて気軽に前後DOMの状態を比較したりできる)、スクリーンショット、どちらもExperimentalなコンポーネントテストなど、できるこ

                                        Playwright連載始まります | フューチャー技術ブログ
                                      • Cloudflare R2 + NextCloudで作る自分専用クラウドストレージのススメ | フューチャー技術ブログ

                                        先ほど計算した同様のケースをAmazon S3で計算してみると以下のようになります。約2倍ほど高いようです。 100GB * 15/30 month + 1GB * 15/30 month = 50.5 GB-month (50.5GB-month - 5GB 無料枠) * 0.025 USD = 1.1375 USD NextCloudとはオープンソースで開発されているNextCloudというセルフホスト型のストレージソフトウェアを利用し、自分専用のクラウドストレージを作成します。 https://nextcloud.com/ かつてownCloudというソフトウェアからフォークされたもので、ownCloudと比べるとチャットやビデオ会議機能が追加されているようです。 NextCloudでは基本的にNextCloudがインストールされたマシンのストレージをデータの保存場所としますが、「E

                                          Cloudflare R2 + NextCloudで作る自分専用クラウドストレージのススメ | フューチャー技術ブログ
                                        • MySQL/Aurora/TiDBロック入門 – 第3回ロック読取りも SELECT は止められない【解説動画付】|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                          MySQL/Aurora/TiDBロック入門 – 第3回ロック読取りも SELECT は止められない【解説動画付】 MySQL とその互換 DB のロックの挙動を紹介する入門シリーズ、第3回は第2回で紹介したロックモニターを使って、業務ではよく使われているロック読取りについて解説します。 ロック読取りは、ゲームのバックエンドサーバーなど「同時に多数の処理をこなすけど、データとしての一貫性も重要」な場合に必須となるテクニックです。既に使っているという方も復習を兼ねてぜひご覧ください! ★ 第1回 トランザクション分離レベル ★ 第2回 ロックモニターの読み方 ★ 第3回 ロック読取りも SELECT は止められない ★ 第4回 INSERT を止めるインテンションロック ★ 第5回 WHERE 条件と違うロック読取り ★ 第6回 performance_schema ★ 第7回ギャップロック

                                            MySQL/Aurora/TiDBロック入門 – 第3回ロック読取りも SELECT は止められない【解説動画付】|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
                                          • 技育祭登壇しました。これから機械学習を学びたい方向けへの自分の経験談とおすすめの本、サイトの紹介もします | フューチャー技術ブログ

                                            技育祭登壇しました。これから機械学習を学びたい方向けへの自分の経験談とおすすめの本、サイトの紹介もします TIGの玉木です。去年の12月までは主に機械学習エンジニアとして機械学習案件を任されていましたが、今年の1月からはITコンサルタントとして業務の幅が広くなりいろいろやっています。 先月技育祭 1と呼ばれるイベントの勉強会という枠で、同僚の上野さんと一緒に「初心者必見! 機械学習エンジニアがあれこれ話します。〜基礎から実社会応用まで〜」というタイトルで発表しました。この記事では技育祭の簡単な紹介と、当日あったこれから機械学習学びたい方向けへの本、サイトの紹介をします。 技育祭とは公式サイト 1から引用させていただくと、 技育祭は「技術者を育てる」ことを目的としたエンジニアを目指す学生のための日本最大のテックカンファレンスです とのことです。元2ちゃんねる管理人のひろゆきさんや、東京大学の

                                              技育祭登壇しました。これから機械学習を学びたい方向けへの自分の経験談とおすすめの本、サイトの紹介もします | フューチャー技術ブログ
                                            • 本番で使えるFargate環境構築 - 虎の穴ラボ技術ブログ

                                              qiita.com こんにちは、はじめまして。虎の穴ラボのはっとりです。 虎の穴ラボ Advent Calendar 2020 - Qiita - Qiita 7日目の記事になります。 6日目はT.MさんのSaaSに関する記事です。 toranoana-lab.hatenablog.com 8日目は、礒部さんの画像判別ボットに関する記事です。 toranoana-lab.hatenablog.com 新規サービスに携わることになり、その際AWS Fargateを使った環境構築を担当したので構築方法を共有します。 この記事で話さないこと アプリケーション側の作り こちらはまた別の機会に紹介したいと思います。 構成管理ツールなどによる環境構築 特定のツールによる環境構築ではなくGUIでもできる手順にしています。 全体構成 今回紹介する範囲での全体構成は下記の通りです。 アプリケーションはfro

                                                本番で使えるFargate環境構築 - 虎の穴ラボ技術ブログ
                                              • CSV処理における共通処理をDecoratorパターンで実現する | フューチャー技術ブログ

                                                はじめにTechnogoly Innovation Group 辻です。 システム間のデータ連携として、他システムが出力した CSV ファイルを Go で読み込んでリレーショナルデータベースにファイルのデータを保存する、という処理がありました。CSV の値をデコードしたあとに共通的な処理を差し込みたいユースケースで Decorator パターンを使って実装をしました。コードベースをシンプルに保ちつつ共通処理をフックできます。実用的なユースケースで Decorator パターンを紹介する記事は少ないと思ったので、本記事を書きました。 まず Decorator パターンが必要になった背景を説明したあとに具体的な Go の実装を見ていきます。 背景他システムが出力した CSV ファイルを Go でデコードして、PostgreSQL にデータを投入するような処理がありました。簡略化したイメージは以

                                                  CSV処理における共通処理をDecoratorパターンで実現する | フューチャー技術ブログ
                                                • 【Kubernetes】未経験から1か月経ったので振り返る - APC 技術ブログ

                                                  こんにちは、クラウド事業部の中根です。 未経験からKubernetesに入門して約1か月が経ったので、振り返りたいと思います! 実務に入る前の予習なので、実務を通した実践的な学習はしていない点はご了承ください。 学習の動機 入門前のレベル感 学習プロセス 入門0~7時間 入門7~32時間 入門32~60時間目 入門60~71時間目 入門71~132時間目 +α できるようになったこと 次のステップ これから入門する方へ おわりに お知らせ 学習の動機 私は中途入社で、案件は決まったのですが、参画まで1か月半ほど待機期間となりました。 クラウドネイティブな案件ということで、この期間を活かしてKubernetesのキャッチアップをすることになりました。 入門前のレベル感 IT業界経験が3年と1か月です。 以下、関係する領域の詳細です。 Kubernetes ほぼ未経験。 OpenShiftをち

                                                    【Kubernetes】未経験から1か月経ったので振り返る - APC 技術ブログ
                                                  • Cloud Spannerのローカル開発環境をdocker-composeでサクッと立ち上げる | フューチャー技術ブログ

                                                    最小構成のリージョン+1ノード構成でも、なかなかのコストが掛かりますね。 開発環境どうするかコストが高いので、開発環境用に気軽にインスタンスを立ち上げるのは難しそうです。 ということで、本記事ではGCPが公式で提供してくれている Spanner エミュレータ を使って開発環境を立ち上げます! (エミューレータあってよかったありがとう!) gcloud CLIとdockerイメージでの提供がありますが、今回はdocker-composeで利用する例を紹介します。 サンプルコードはこちら: tarosaiba/docker-compose-spanner 以下2点工夫したポイントです。 通常、Spannerエミュレータ起動後にインスタンスの作成手順(gcloud spanner instances create)が必要になりますが、docker-compose立ち上げ時に自動でインスタンス作成

                                                      Cloud Spannerのローカル開発環境をdocker-composeでサクッと立ち上げる | フューチャー技術ブログ
                                                    • PythonユーザーのためのGraalVM | フューチャー技術ブログ

                                                      ちょうど一年ぐらい前にGraalVMが商用利用可能な安定版に達し、Enterprise版もリリースされたというニュースがあります。 publickey: GraalVM、ついに本番利用可能なバージョン「GraalVM 19.0」登場、JavaやJavaScriptなど多言語対応ランタイム。商用版のGraalVM Enterprise Editionもリリース GraalVMにはPython機能もあると宣伝されているものの、詳しい説明が行われることがなく、それが何者で、どのようなステータスで、どこを目指しているのか、きちんと答えられる人は(日本どころか世界でも)ほぼいないでしょう。GraalVMそのものの説明はちょくちょく出てくるようになってきたと思いますが、そのPythonの機能についてはあまり説明されていないため、Python部分にフォーカスして紹介します。 Graal.Pythonのイ

                                                        PythonユーザーのためのGraalVM | フューチャー技術ブログ
                                                      • 技術ブログをNuxt + Netlify + Contentfulから、はてなブログ for DevBlogに移行しました - もふもふ技術部

                                                        こんにちは。出口です。 タイトルにある通り、技術ブログをはてなブログに移行しました。 この記事では、なぜ移行することになったのか、どうやって移行したのか、移行で苦労したところなどをまとめておきたいと思います。 もし脱セルフホストブログ、脱Contentfulや、はてなブログへの移行をお考えであれば参考になるのではないかと思います。 なぜ移行したのか Nuxt 3への移行が大変すぎる Contentfulへの不満が募ってきた 当初の計画 改めて移行を考える 移行について 記事移行 インポート機能を使ってWXRを取り込む場合 AtomPubを使ったパターンの場合 サブディレクトリオプション Netfilyのリバースプロキシ設定 robots.txtを設置 NetlifyのPrerenderingオプション設定 検証ツールで1つだけ検証失敗する まとめ なぜ移行したのか まずそもそもなぜ移行した

                                                          技術ブログをNuxt + Netlify + Contentfulから、はてなブログ for DevBlogに移行しました - もふもふ技術部
                                                        • Ghost ではじめるスタートアップの技術ブログ

                                                          技術ブログを構築・公開するにあたり、みなさんはどのようのツールやサービス、プラットフォームを採用しているでしょうか。じつにさまざまな選択肢があるなか、Awarefy Developers では Ghost (Pro) を採用しました。今回はブログ・プラットフォーム Ghost を紹介します。 歴史はあるが モダンなブログプラットフォームGhost は CMS を構築するためのソフトウェアおよびサービスです。Ghost のソースコードは GitHub で公開されており、誰でもセルフ・ホスティングで Ghost を使った Web サイトを公開できます。 GitHub - TryGhost/Ghost: Turn your audience into a business. Publishing, memberships, subscriptions and newsletters.Turn y

                                                            Ghost ではじめるスタートアップの技術ブログ
                                                          • Go 1.16からリリースされたgo:embedとは | フューチャー技術ブログ

                                                            TIGの伊藤真彦です。 この記事はGo 1.16連載の1記事目です。 トップバッターとしてgo:embedについて記事を書きます。 go:embedとはプロポーザルとなるissueはこちら、2020年9月のissue作成から約5ヶ月の時を経てgo:embedがリリースに含まれることになりました。 embedとは埋め込みという意味です、その名の通りファイル埋め込みをサポートするためのパッケージです。ファイルを読み込むだけならosやio/ioutilでも行うことが可能ですが、go:embedならではの特徴を説明します。 ちなみにio/ioutilはGo 1.16でdeprecatedになりました、詳しくは連載の他の記事で説明します。 利用方法手始めにサンプルコード、main.goを書いてみました。 main.gopackage main import ( _ "embed" "encoding

                                                              Go 1.16からリリースされたgo:embedとは | フューチャー技術ブログ
                                                            • Real World HTTPの第3版ができあがりました | フューチャー技術ブログ

                                                              https://www.oreilly.co.jp/books/9784814400669/ ひとえに読者の皆さんが買ってくれたおかげで、Real World HTTPを改訂し、このたび3版を上梓しました。ありがとうございます。2016年ごろから書き始めて、2017年に初版を出版したので、執筆段階からすると8年ほど経過しているのですが、これだけ長くこの本に関わり続けられるというのは、本書を買ってくださるみなさまのおかげです。 今回は、ひさびさに無料のミニ版も更新しました。本日、このブログと同時にリリースしました。よりミニ版が学習コンテンツとして使いやすくなるように、そもそもブラウザってどんな動きをするの? というイントロの章をミニ版とオリジナル版に追加しました。 また、オリジナル版だけになりますが、HTTPが単なるブラウザとの通信を超えてプラットフォーム API化していっている流れに合わせ

                                                                Real World HTTPの第3版ができあがりました | フューチャー技術ブログ
                                                              • Spring Bootアプリケーションのネイティブイメージが簡単に作れるSpring Nativeの紹介 | フューチャー技術ブログ

                                                                はじめにこんにちは、2021年新卒入社の本田です。私はJavaもSpring Bootもほとんど何も知らないのですが、業務でSpring Bootを使いそうなので、「Spring勉強しなきゃ😇」という気持ちがあります。 Spring Bootアプリケーションのネイティブイメージが簡単に作れるSpring Nativeについて調べてみたので、それを紹介します。 Spring Nativeとは?Spring NativeとはSpring Bootアプリケーションをほとんど変更することなく、ネイティブイメージを生成することを目指したプロジェクトです。ネイティブイメージの実行はJVM(Java仮想マシン)による実行と比べて、起動時間が早い、ピークパフォーマンスに達するのが早い、メモリの使用量が小さい等の利点を持っています。 Spring Nativeでは、Spring Bootアプリケーションの

                                                                  Spring Bootアプリケーションのネイティブイメージが簡単に作れるSpring Nativeの紹介 | フューチャー技術ブログ
                                                                • TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ

                                                                  CNCF連載 の4本目です。 はじめに数年前にクラウドネイティブ注目技術として挙げられたeBPFにかねてよりキャッチアップしたいなと思っていたので、この連載のタイミングでeBPFとその関連プロダクトに入門してみることにしました。 CNCFプロジェクト傘下のeBPFを活用したプロダクトとしてはCilium, Falcoなどが挙げられます。CiliumはKubernetesなどのクラウドネイティブな環境でネットワーク、オブサーバビリティの機能を提供するOSSなのですが、今回はそのいわばサブプロジェクト的な位置づけのセキュリティツールである、Tetragonに触ってみます。 Cilium, Tetragonの開発をメイン行っているIsovalent社は、書籍やハンズオンラボなどで自社の製品・eBPFについての学習リソースを多く提供しています。 https://isovalent.com/reso

                                                                    TetragonでeBPFとセキュリティオブサーバビリティ入門 | フューチャー技術ブログ
                                                                  • 技術ブログに CI を導入する - ドワンゴ教育サービス開発者ブログ

                                                                    技術ブログで公開する記事の品質を安定させ、効率的に執筆できるよう、 CI の導入に着手しました。 技術ブログを継続的に運営する中で、多くのメンバーが執筆に参加しています。 多様な視点の記事を公開できる一方で、技術ブログ全体として一定の品質を担保する必要があります。 人の目でレビューすることはもちろん必要ですが、中でも自動化可能な部分は機械に任せられるように環境整備を進めています。 この記事では、CIの環境や検証内容についてお伝えします。 CIの環境 記事の執筆にあたっては、過去の記事にもある通り一部Google Docsで執筆されている記事を除きGithubのリポジトリでバージョンを管理しています。 Github を利用しているということで CI の選択肢としては Github Actions が真っ先に候補となりますが、今回は AWS CodeBuildを採用しました。 AWS Code

                                                                      技術ブログに CI を導入する - ドワンゴ教育サービス開発者ブログ
                                                                    • Go 1.21連載始まります&slogをどう使うべきか | フューチャー技術ブログ

                                                                      Go 1.21は久々の新しいライブラリが大量追加だったり、既存のパッケージへの改良の多数行われたり、あたらしい組み込み巻数が追加されたりで記事などが書きやすいリリースです。残念ながら、フューチャーで一番Goを使っているプロジェクトが山場で今回はちょっと書き手が少ないのですが、今回もお付き合いいただけるとうれしいです。 1.21の更新内容のまとめダイジェスト 1.18の時に入るといって直前にキャンセルになった、ジェネリクスのためのパッケージslices/mapsの復活 新しい組み込み巻数のmin/max/clearの追加 言語仕様の強化 パッケージの初期化順序が仕様化 型推論ちょっぴり強力に 次期バージョンで入る予定のループ変数が共有されちゃうバグ対策が実験実装 ランタイムの性能改善(いつもの) 深いスタックオーバーフロー時のトレースが見やすく(最新100ではなく、最新50と一番外側の50表

                                                                        Go 1.21連載始まります&slogをどう使うべきか | フューチャー技術ブログ
                                                                      • Go1.22 リリース連載 HTTPルーティングの強化 | フューチャー技術ブログ

                                                                        はじめにGo1.22リリース連載 の5本目です。 本記事ではGoの標準ライブラリである net/http の ServeMux におけるルーティング周りの強化について取り上げます。 関連する Release Note と Issue はこちらを参照してください。 https://tip.golang.org/doc/go1.22#enhanced_routing_patterns https://github.com/golang/go/issues/61410 変更点HTTPメソッドの指定が可能にServeMux.Handle や ServeMux.HandleFunc を使用してハンドラを登録する際に GET /xxx のようにHTTPメソッド指定して、ハンドラを呼び分けることができるようになりました。 mux := http.NewServeMux() // GETを指定したハンドラ

                                                                          Go1.22 リリース連載 HTTPルーティングの強化 | フューチャー技術ブログ
                                                                        • Fast APIのすすめ(概要編) | フューチャー技術ブログ

                                                                          はじめに初めまして。フューチャーの社内セキュリティ部門、SATの髙橋です。部門におけるシステムのテックリードとして、日夜活動しています。 先日、当部門が運用する社内向けWeb業務システムの更改がなされ、その中で、FastAPIを採用したAPIサーバの構築をしました。 本記事では、FastAPIを選定した理由や、そもそもFastAPIがどのようなものかについて、簡単に紹介します。 ちなみに、以下の記事でも、FastAPIに関して触れられていますので、併せてご覧ください。 サーバーアプリ開発環境(Python/FastAPI)なぜFastAPIを選んだのか前提として、本システムにおけるサーバサイドの実装言語は、Pythonをチョイスしています。 業務システムとしての言語としては、より堅牢な言語を選ぶべきだと考えらえそうですが、最大の理由として、すでに他業務にてPythonを用いて動くシステムを

                                                                            Fast APIのすすめ(概要編) | フューチャー技術ブログ
                                                                          • Playwright Component Testを用いた単体テストでJestで書けなかったテストを実現する - ミツカリ技術ブログ

                                                                            ミツカリのたなしゅん(@tanashun_dev)です。 弊社で提供しているサービスの一部のアクションでドラッグアンドドロップで画面上の要素の並び替えをする機能があります。 この実装にはdnd-kitというライブラリを使っています。 dndkit.com ライブラリのおかげで実装自体はそう難しいものではありませんでしたが、意図しない変更やライブラリのアップデートによってドラッグアンドドロップの動作を壊してしまう可能性が今後つきまといます。 リリースのたびにそれをチェックするのは工数ももったいないです。 ドラッグアンドドロップが正常にできているかどうかをコードレベルで保証するために単体テストを書くべきですね。 前提として、弊社ではfrontendにNext.jsを使っていて、その単体テストはJestで書いています。 まずはJestでテストを書こうとしました。 しかし、結論から言うとJestで

                                                                              Playwright Component Testを用いた単体テストでJestで書けなかったテストを実現する - ミツカリ技術ブログ
                                                                            • ライブラリ自動更新にrenovateを導入してみる - APC 技術ブログ

                                                                              renovate導入の話 みなさんはアプリケーションで使用しているライブラリ等の更新どうされていますか? 手動で行われていますか?それとも何か自動ツールを利用されていますか? 今回はそうしたライブラリ等の自動更新ツールであるrenovateを導入したときの 模様をお伝えしたいと思います。 といっても、インストールなどの方法は様々なところで紹介されているので省略し、導入過程でどういった状況になったかという ところをお伝えしたいと思います。 最初の実行 いくつかアプリケーションを開発していますが、まずは最初に Typescript / Node.js / NestJS を技術要素とするアプリケーションに 適用してみました。 まずは何も設定を行わず、単純にrenovateコマンドを実行しただけの状態です。 すると・・・出ました、たくさんのPull Requestが。初期状態だと以下のような動作を

                                                                                ライブラリ自動更新にrenovateを導入してみる - APC 技術ブログ
                                                                              • フューチャーのSwagger(OpenAPI 2.0)規約の紹介 | フューチャー技術ブログ

                                                                                おそらく一般的にSwaggerと呼ばれるのはSwagger 2.0で、これは2014に公開された規約です。Swagger 2.0はOpenAPI 2.0と同義で、OpenAPI 3.0.0には2017年に、3.0.3は2020年に公開されています。 なぜ作ったかフューチャーは常に数十の開発プロジェクトが動いており、それぞれの案件内でちょっとした開発規約が作られることもあれば、暗黙的に遵守されるルールもあります。プロジェクトの大小も様々で数名から数百人規模に及ぶこともあり、新卒採用もキャリア採用も活発なので、フレッシュなメンバーも多くジョインしてくれます。 キャッチアップをしやすいように暗黙知を減らし明文化する意味でも、一定ラインの品質を守るためのガイドラインを作る文化があります(大なり小なりどこでもそうだと思いますが)。個人的にも隣のプロジェクトが同じ技術スタックを採用しているのに、マイナ

                                                                                  フューチャーのSwagger(OpenAPI 2.0)規約の紹介 | フューチャー技術ブログ
                                                                                • SpringBootで動的な条件をもとにDIしたい | フューチャー技術ブログ

                                                                                  SpringBootのDependency Injection(DI)は便利ですよね? 利用する側にコンストラクタインジェクションやら、フィールドインジェクションやらセッターインジェクションやらの形式で書いておくと、DIコンテナが勝手に実行時に対象となるクラスをもってきてインスタンスの生成をしてくれますし、インスタンスのライフサイクルをインジェクションされるクラス側に書けます。 @Component public class UseDI { private final MyService myService; @Autowired public UseDI(MyService myService) { this.myService = myService; } } @Service public class MyService { public MyService() { System.o