並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 78 件 / 78件

新着順 人気順

kodukiの検索結果41 - 78 件 / 78件

  • クラウドでもsuが出来る! GCPにPAM(特権管理)がついに登場

    はじめに Linuxの良い所の一つにsuやsudoと言った特権管理の仕組みがあります。普段は通常アカウントで入って、例えばインストールなどの特権作業が必要な時だけsu/sudoで一時的な権限昇格が可能ですし、/etc/pam.dで誰がどのユーザにスイッチ出来るかなどは細かく制御できます。 一方で、クラウドの権限管理は悩みの種で、誤操作が怖いので普段はRead Onlyの権限にしておきたいのですが、手軽に権限を昇格する方法がありません。なので、別の管理者ユーザを作って、そちらでログインしなおしたり、それを半自動化するCyberArkやBeyondTrustといったPAM系ソリューション、あるいは最近流行りのCIEM(PAM機能を持つもの)を導入する必要がありました。 Azureでは結構以前からPIM(Privileged Identity Management)がネイティブで組込まれており非

      クラウドでもsuが出来る! GCPにPAM(特権管理)がついに登場
    • そもそもJWTに関する私の理解は完全に間違っていた! - ブログなんだよもん

      TL;DR ステートレスなJWTはそもそもセッションの代替では無い アクセストークンとしての利用が基本で数分レベルの短寿命な有効期限で利用 従来のセッションに近い概念はリフレッシュトークン。てか、リフレッシュトークンはセッションでも(たぶん)良い ユースケース的にモノリスには不要。SPAでMSAな時にメリットが出て来る。 はじめに Webで認証システムといえばセッション! と言う感じのレガシーおじさんなのですが、最近はJWTとかも出てきてとても気になっていました。新しいものは使ってみたくなりますよね? なので以前軽く調べてみたたのですが「JWTは危ない」とか「JWTをセッションに使うな」的な記事が大量に出て来ます。 co3k.org qiita.com 一方で反論記事もあり色んな議論が渦巻いています。そもそも利用を推奨する記事も多い。 auth0.hatenablog.com この辺りで「

        そもそもJWTに関する私の理解は完全に間違っていた! - ブログなんだよもん
      • VRの未来を感じさせてくれたMIKU LAND GATE βに参加してきました - ブログなんだよもん

        はじめに 何がすごかったのか? フラグシップとなるVCIや空間デザイン VR上で買ってその場ですぐに使える 他のVRやオフラインとの連動 色んな人と出会える。ミクさんとも会える 画面の向こうとのコミュニケーション。みんなで作るイベント まとめ はじめに mikuland.virtualcast.jp 2020.8.8(Sat)〜10(Mon)の三日間、VirtualCast上で開催されていたVRイベント MIKU LAND GATE βに参加してきました。 これはニコニコ超会議の一部として開催されたVRイベントでVirtualCastを使って広大な空間を作成しその中でイベントを開催するという近未来的なイベントです。 同じようなVRイベントとしてはVRChat内で行われるV-KETがありますね。ただ、今回のミクランドでは(後述する買い物機能はありますが)即売会では無くテーマパークなのでそこが

          VRの未来を感じさせてくれたMIKU LAND GATE βに参加してきました - ブログなんだよもん
        • Rubyにもポータビリティを! シングルバイナリを作る3つの方法

          この記事はRuby Advent Calendar 2020の17日目です。 TL;DR GraalVM: 問題無く動作するがgemとか考えるとめんどそう。JavaのエコシステムやJS/Pythonなど別言語と組み合わせたい時には便利。 RubyPacker: gem/bunlder含めて特に問題なく動く。フルスペックRubyが必要なら現状でベスト mruby-cli: ビルド速度含めて最軽量。使えるならこれがベストシナリオ。エコシステムが弱いのが欠点 はじめに 皆さんはRubyをなんに使っていますか? 多くの方は 「Railsを使ったWebアプリケーション」 と回答されるのではないでしょうか? 私の場合は少し違ってCLIのコマンドを作るのによく使います。Bashよりちょっと凝ったことをするのに自分にはちょうど良いんですよね。手に馴染んでるので。 ただ、今この手の用途に一番利用されるのはG

            Rubyにもポータビリティを! シングルバイナリを作る3つの方法
          • RubyKaigi Takeout 2021のスライド(Day1)|TechRacho by BPS株式会社

            こんにちは、hachi8833です。RubyKaigi Takeout 2021 Day1が終了しました。主催者・スポンサーの方々疲れさまでした&ありがとうございます!参加者の皆さまもお疲れさまでした。 参考: #rubykaigi - Twitter検索 / Twitter 主に自分用に、現時点でわかっている発表スライドを取り急ぎまとめました。可能なものについてはいずれ公式サイトに資料が掲載されると思います。 #rubykaigi takeout 2021 1日目お疲れ様でした! 🍔🍔🍔 pic.twitter.com/jO8V707gMi — Hiroshi SHIBATA (@hsbt) September 9, 2021 なお、見出しの時間はリスケ後のものです。 Day1 10:00 - 10:55 #rubykaigiA 『TypeProf for IDE: Enrich

              RubyKaigi Takeout 2021のスライド(Day1)|TechRacho by BPS株式会社
            • WebAssemblyをブラウザの外で動かすWasmerを触ってみた

              はじめに WebAssemblyをブラウザの外でも動かせるWasmerの1.0がリリースしたので試してみました。 Wasmerってなに? WasmerはWASI(WebAssembly System Interface)とEmscriptenに準拠したWASMを実行できるランタイムです。類似のものにFastlyのLucetがあるそうです。通常WASMはブラウザの中で実行するわけですがそのコンパクトでセキュアな仕様に注目して、ブラウザの外のあらゆる環境で動かすためにI/Oへのセキュアなアクセス方法も含めて定義されたのがWASIです。これによってセキュアでユニバーサルなランタイムを作るのがゴールみたいですね。 とりあえず触る前のリリース記事とか見た感想としては 「それ、なんてJava (JVM)?」 とりあえずインストール 公式ドキュメントを参考にしながら進めてみます。 $ curl http

                WebAssemblyをブラウザの外で動かすWasmerを触ってみた
              • 【ソフトウェア設計】モジュールになぜ分けるのか?

                はじめに 最近、APoSD(A Philosophy of Software Design)を読んで、ソフトウェア設計に関して色々思う事が出来たというか、整理してみたくなったので、記事にまとめてみました。なお、APoSDの言葉を多用はしていますが解説記事という分けでは無く、自分の考え方の言語化にしっくり来たので使わせてもらってるという感じです。 TL;DR モジュールとは関数/クラス/サービスなどの何等かの機能のまとまり 良いモジュールは複雑性を隠蔽する 複雑性を隠蔽しないモジュールの価値は低い モジュールとは? プログラムは正しく動くことがまず何より大事ですが、その次というかほぼ同じくらい大事な事が読みやすく拡張しやすいことですよね? コードは圧倒的に読みものなので、どう読みやすく、つまり理解しやすい状態にしておくかは重要な事です。APoSDでは複雑性が低いコード、という言い方をしていま

                  【ソフトウェア設計】モジュールになぜ分けるのか?
                • RubyKaigi 2023に向けた勉強会を行いました - SmartHR Tech Blog

                  こんにちは。プロダクトエンジニアのyudaiです。5/11から開催されるRubyKaigi2023に向けて、社内で勉強会を実施しました。自己学習のきっかけづくりとして、RubyKaigiのトークを聞く準備方法、トークテーマ、RubyKaigiで話題になりがちな技術について広く浅くお話しました。 RubyKaigi 2023に参加される方のお役に立つかもしれませんので、この勉強会で使った資料を公開します。 RubyKaigi 2023 予習資料 留意事項 この記事はyudai(@ytnk531)が、RubyKaigi 2023の予習のために調べた内容をまとめたものです。誤った内容や古い内容が多く含まれる可能性があることをご留意ください。誤りなどについてご指摘を頂ける場合は、TwitterのDMかリプライなどでご連絡をいただけると大変助かります。 内容 事前に理解していたほうが良さそうなRub

                    RubyKaigi 2023に向けた勉強会を行いました - SmartHR Tech Blog
                  • 新米情シスはWindowsサーバ管理方法を模索中

                    はじめに いつもはプログラム書いたり、Linuxとかアプリサーバの運用とかをする事が多いのですが、最近いわゆる情シスっぽい仕事をする機会がありWindowsサーバ管理の道を模索しています。ここで言う情シスっぽい仕事ってのは社内インフラとか言われるオフィス自体のNW(WiFiとかLAN)やPCの管理/運用のあとセキュリティ基盤ですね。なおクライアントはChromebookとかMacの事は忘れてWindowsのみの素晴らしきダイバーシティの無い世界です。やったね! さて、ではWindowsサーバをどう管理するか? 当然、GUIで丹精込めて作った手順書をベースにポチポチやって運用することは出来るのですが、その伝統的なやり方はあまりに多くの問題を含んでいます。そのためMFA/CLI/IaC/自動化をキーワードに管理方法を検討中です。まだ模索段階のため 「これがベスト!」 と言えるものでは無いですが

                      新米情シスはWindowsサーバ管理方法を模索中
                    • Googleのプロジェクト管理のためのノーコードツール「Tables」を使ってみた

                      Googleより新しいプロジェクト管理ツールの「Tables」が出たので、さっそくβ版を試してみました。 ツールの特徴 プロジェクト管理といえばJIRAやREDMINEのようなチケットシステム、MS Projectのようなガントチャート管理を思いつくかと思います。 触ってみた限りではTablesはそれらとは大きく違います。どちらかというと 「Excelのようなスプレットシートでタスク管理ツールを自作する」 という割と日本でも好きな人は好きなアプローチを支援するためのツールです。 「Tables」では「Workspace」という管理単位に以下のように「Table」という名前でスプレットシートが作られます。 各フィールドは任意のデータ型を選べるので、この辺はデジエやSharepointに印象が似ていると思います このスプレットシートにタスク管理や課題管理、あるいはプロジェクト管理に必要なカラム

                        Googleのプロジェクト管理のためのノーコードツール「Tables」を使ってみた
                      • TerraformとCloud BuildでGCP向けのIaC環境を作成してみた

                        この記事はterraform Advent Calendar 2021の8日目です TL;DR 「エンタープライズ企業のベスト プラクティス」等にマッチしたTerraform環境の作成 CloudBuildとGitHubを使いGitOps/継続的デプロイ(CI/CD)を実現 Stateを分けるためにプロジェクトは環境単位に グループや権限のアサインなどプロジェクト管理作業がTerraformにより大幅に効率化 はじめに GCPでIaCと言うと、GCPネイティブのCloud Deployment Managerがあります。ただ、少し触った限りでは情報量が少ないのとYAML, Python, Jinjaが混在していて記述の揺れが多そうな印象を個人的に受けました。と言う分けで、こういう時はマスに乗るべきとTerraformを利用することにしたのですが、AWS等に比べると情報がやはり少ないです。そ

                          TerraformとCloud BuildでGCP向けのIaC環境を作成してみた
                        • 2020年のMavenリポジトリの作り方 - Qiita

                          はじめに Javaのエンジニアであれば何だかんだでMavenリポジトリを使うことは非常に多いと思います。Gradleであっても使いますしね。 OSSなどはセントラルリポジトリから落とすとして自作のライブラリの管理をどうしていますか? ローカルだけで開発していればmvn installで事足りますが、CI/CDを行っていたりチームや組織でライブラリを共有している場合はそうもいきません。 という分けで今回はMavenで作成したライブラリを公開するための方法に関してまとめました。ちなみに2020年8月時点でのおすすめはGCSをリポジトリにする方法です。 Maven Central Repositoryに登録 OSSのリポジトリサーバを立てる GitHub Pagesを使う GitHub Packages + Actions を使う S3/GCS/Azure Blobにリポジトリを構築する GCP

                            2020年のMavenリポジトリの作り方 - Qiita
                          • Tandem や Stratus の目指した世界は今に引き継がれてるのか? - cat-a-log

                            (ベンダーの公式サイト以外での) 日本語によるメインフレーム技術情報は非常に貴重なので、以下の記事は大変興味深く読ませていただいた。 qiita.com で、この記事に付いたコメントで気になる問題提議があったので、連休のヒマに任せて参戦してみる。 Masanori Kusunoki / 楠 正憲 on Twitter: "汎用機の信頼性が今以てスゴい仕組みであることは間違いない。「他のノードから回復処理を行うべき」という後続はTandem/HimalayaとかStratusあたりと推察するんだけど、あの手の技術って今に引き継がれてるんだろうか? / “メインフレームの異常処理 - Qiita” https://t.co/VQtR6lTVuH" 汎用機の信頼性が今以てスゴい仕組みであることは間違いない。「他のノードから回復処理を行うべき」という後続はTandem/HimalayaとかStra

                              Tandem や Stratus の目指した世界は今に引き継がれてるのか? - cat-a-log
                            • ふつうのユニットテストのための7つのルール

                              はじめに 「テストが大事」 これは生産性と品質を高めるための基本的な考え方です。なので 「テスト書かないと」 ってことはみんな同意するのでUnitTestらしきものが書かれてることは多いのですが、役に立たなかったりむしろ有害ですらあるテストがあふれているプロジェクトもあります。作った人に罪は無いのですが、頑張ったのに悪い方向に行ってしまうのはもったいない これはユニットテストを有効活用するための最低限のルールが守られてないためです。あまり学校で習う類のものでもないかもしれないですし、大事だと思うので個人的な見解をまとめておきました。 ポータビリティを大事にする 繰り返し実行できるように作る Unit Testですべての自動テストをしない モックやスタブを過度に使わない ひとつのテストケースにはひとつの観点しか検証しない テスト内容が分かる名前をつける ログや標準出力は極力出さない Java

                                ふつうのユニットテストのための7つのルール
                              • Cloud RunのJavaの起動速度を60%改善した

                                はじめに 私はGCPのCloud Runがお気に入りのサーバレス環境なのですが、一番得意な言語であるJavaを使った場合のスピンアップタイムの悪さには頭を悩ませています。 ローカルでは1,2秒で起動する場合でも、何故かCloud Runに持って行くと他の言語と比べても劇的に遅くなるのですよね... GraalVMのネイティブイメージを使えばGoなどと遜色無く瞬時に起動するのですが、ネイティブイメージへの変換は癖も強いため通常のJVMでも改善できないかとチューニングを試してみました。 TL;DR 最終的に60%程起動速度を改善 9秒台が3秒台になっているので体感としては結構変わる native-imageが使え無いケースでもこのくらいなら許容出来そう もちろん完全停止状態以外のレスポンスは3秒とか言わずミリ秒オーダー 準備と基礎値の計測 まずはアプリケーションを準備する必要があります。今回は

                                  Cloud RunのJavaの起動速度を60%改善した
                                • 入門: Vue.jsでCRUDアプリケーションを作る - Qiita

                                  はじめに フロントエンド開発、最近はやはりJSで書くのが基本だとは思うけどReactやAngularは少し敷居が高いのでVue.jsに手を出してみました。 とりあえず、自分へのメモの意味合でVue JSのCRUDアプリケーションのチュートリアルを書いてみます。CRUDが書ければあとは必要に応じて普通に拡張できるでしょうし。たぶん。 今回はAPIサイドをJavaのQuarkusで、フロントエンドをVue.jsで書いています。 サーバサイドをQuarkusで作成 プロジェクト作成 まずサーバサイドを作成します。Mavenでまずは以下のようにQuarkusプロジェクトを生成します。なお、mavenのバージョンが3.6.2より低い場合は事前に上げておくこと。 $ mvn io.quarkus:quarkus-maven-plugin:2.12.2.Final:create \ -DprojectG

                                    入門: Vue.jsでCRUDアプリケーションを作る - Qiita
                                  • パスワード付きZIPのない世界でどう過ごすのか?

                                    はじめに 平井卓也デジタル改革担当相は2020年11月17日、中央省庁の職員を対象に「パスワード付きZIPファイル」の送信ルールを廃止する方針を明らかにされましたね。とても良いニュースだと思います。 こちらは「デジタル改革アイデアボックス」からの意見を取り入れたものと言われていてこういうサイクルがさっそく回っているのには期待が持てますね! 省庁職員がメールにファイルを添付して送信する際に、暗号化した上でパスワードを別のメールで送る「自動暗号化ZIPファイル」を26日に内閣府と内閣官房で廃止すると明らかにした。 代替策は決まっておらず、民間企業の動きも参考にしながら望ましいセキュリティー向上策を検討するという。暫定的な対策として「(パスワードを)電話で教える」と例示した。他省庁の状況も実態調査を進める。 「パスワードを電話で伝える」と言う点を揶揄するコメントもありますが超面倒だけどセキュリテ

                                      パスワード付きZIPのない世界でどう過ごすのか?
                                    • 入門: Vue.jsで認証機能を作る - Qiita

                                      はじめに 前回、Vue.jsとQuarkusでCRUDアプリを作ったので、今回は簡単な認証機能を作ってみました。 Firabase認証とかJSON Web Signature(JWS)使うとかFIDO2だOIDCだの実際にログイン機能を作る時には選択肢は色々あると思います。 ただ、そもそも「Vue.jsで認証機能ってどう作るの?」ってところから良くわかってなかったので、今回は余計なことは除いてサーバ側は認証をスケルトンにしたトークン認証として実装しました。 基本的な考え方 認証機能をどう作るかはフレームワークなどにより異なります。 一般的なサーバサイドで動くWebフレームワークであればセッションで判定するでしょう。サーバ側で制御するのでJSなどクライアント側ではあまり気にしなくて良かったのですが、Vue.jsのようなSPAの場合はクライアント側にも作り込みが入ります。 Vue.jsの認証で

                                        入門: Vue.jsで認証機能を作る - Qiita
                                      • Cloud Runをコマンドやスクリプトを実行するサーバレスジョブ基盤として使う

                                        はじめに リアルタイム処理がもてはやされてから何十年もたちますが、それでもなんだかんだで無くならないのがバッチ処理です。 今回は小さなバッチをCloud Runで実行する方法を紹介します。 なぜCloud Runでバッチなのか? GCPのCloud RunはLibreOfficeを実行してPDFを生成したりだとか、AWS LambdaやCloud Functionsとは異なりDockerゆえになんでも実行できる、という特性を持っています。これを使う事でJSやPythonを実行する代わりにBashベースで様々なワークロードを動かすことが出来ます。私も上述のPDF変換や逆にImageMagicを使ってPDFを画像に変換したりとか便利に使っています。 バッチというのはその特性上 「動いて無い時間」 の方が圧倒的に長いです。そのためVMインスタンスを専用で作ると少し非効率なのですがCloud Ru

                                          Cloud Runをコマンドやスクリプトを実行するサーバレスジョブ基盤として使う
                                        • OWASP Dependency-Check を使ってMavenの依存ライブラリの脆弱性を確認する

                                          こちらはJava Advent Calendar 2021の11日目です。 はじめに 「Apache Log4j」ライブラリに致命的なリモートコード実行の脆弱性が発見され現在絶賛対応中の方もいらっしゃるかと思います。 ここで重要になってくるのが影響調査には自分たちの改修しているコード本体だけではなく、OSSの依存ライブラリも含まれることです。log4j2は超広範囲に利用されていますから、逆にJavaのコードは潜在的に対象、くら言ってしまっても良いですが、もう少しマイナーなライブラリだとそもそも対象となるコードを探すのが大変です。pom.xmlをgrepしただけでは見つけれないですから。 この手の依存性チェックをするツールはありそうだと思ってたけど、特に今まで使った事はなかったので今回はMavenプラグインのOWASP Dependency-Checkを試してみました。 今回サンプルに利用舌

                                            OWASP Dependency-Check を使ってMavenの依存ライブラリの脆弱性を確認する
                                          • RubyKaigi Takeout 2021のスライド(Day3)|TechRacho by BPS株式会社

                                            こんにちは、hachi8833です。RubyKaigi Takeout 2021がDay 3まで無事終了しました🎉 主催およびスポンサーの皆さま、お疲れさま&ありがとうございます!参加者の皆さまもお疲れさまでした。 ありがたいことに、何と土曜日のうちにセッションの動画アーカイブがYouTubeで公開されました🙏。 We've just finished uploading all recorded talks for RubyKaigi Takeout 2021 already. Each video is linked from the schedule page so you can check the sessions that you missed, or watch your favorite ones again. Enjoy! 🍔💨 https://t.co/QjSM

                                              RubyKaigi Takeout 2021のスライド(Day3)|TechRacho by BPS株式会社
                                            • バーチャルキャストでプレゼンをする方法

                                              はじめに この記事はVirtualCast tips Advent Calendar 2020の12日目の記事なのですが特に他の人の投稿はなさそう。さみしい。。。 気を取り直して今回はVirtualCastを利用してVR上でプレゼンをするまでの道のりを解説しようと思います。 一応、下記のようなチャンネルを1年ちょっと細々とやってるので、その配信や動画作成で学んだ事なんかを書いていきます。 YouTubeのvideoIDが不正です 正直、特に凄くないというか詳しい人からすると当たり前のことばかりだけど、それでも右も左も分からなかった当時の自分が知りたかった事をまとめています。知らな過ぎて結構たどり着くのに時間がかかったし。なお私のUnity力は未だにゼロなのでそういうの知らなくても大丈夫。 ちなみに 「どうやったら面白いコンテンツが作れる」 とか 「チャンネル登録者数を増やしたり好評かが付く

                                                バーチャルキャストでプレゼンをする方法
                                              • Goを使ってGCPのサービス間認証をする

                                                はじめに Cloud Run便利ですよね。コンテナをデプロイするだけで勝手にスケールしてくれますし使わない時はゼロインスタンスに出来ますし。こうした取り回しの便利さに加えて「良いな」と個人的に機能の一つがアカウントレベルのアクセスコントロールです。 Authenticationを「未認証を許可」にすれば公開APIとして誰でも使える状態になりますし、ACLの設定をすればサービスアカウントやユーザアカウント単位で実行できるユーザやアプリを限定出来ます。こういったセキュリティをアプリ側で作りこまなくて良いのは楽ですよね。 今回ちょっとIdentity Tokenをどう取り出すのか? でハマってので「どのように認証をするのか」「IDトークンをどのように取得するのか」をメモがてら書いていきたいと思います。 なお、前半は結果として不要だった調査の話なので結論だけ知りたい人は後半へGo。 TL;DR A

                                                  Goを使ってGCPのサービス間認証をする
                                                • 2020年の動向が気になるスマートグラス Top 5 + α - ブログなんだよもん

                                                  Mad Gaze GLOWを追加 個人的にARグラス/スマートグラスに注目しています。 スマートグラスは簡単に言えばGoogle Glassなのですが、最近のものはFocalsを筆頭にかなり普通の眼鏡っぽいデザインになっています。 性能的にはHoloLensのようなヘッドセット型のものより数段劣るはずですが一般市場に受け入れられやすいのはこちらでしょう。Appleがそのうち出すってことでも有名ですね。 という訳で動画の方でも話しましたが、個人的に2020年に動向が気になるAR/スマートグラスをリストアップしてみました。 www.youtube.com なおスマートグラスは単にメガネに情報を写せる多機能メガネの総称、ARグラスはAR機能(空間認識をして仮想オブジェクを重ねたりインタラクションがある)もとして今回は扱っています。 比較一覧 忙しい人用の比較一覧 <-> Focals Nreal

                                                    2020年の動向が気になるスマートグラス Top 5 + α - ブログなんだよもん
                                                  • Oracle Code One 2019に参加してきました - ブログなんだよもん

                                                    JDKの新機能と進捗 GraalVM Jakarata EEとEclipse MicroProfile ExadataとPersistence Memory Oracle Cloudの戦略 まとめ ブログに書くの忘れてましたが、去年に引き続き今年もOracle Code One/Oracle Open Worldに参加してきました。 すでにキーノートとかの詳細は素晴らしいレポート出てるのでそちらをみてください。 Oracle OpenWorld 2019開幕 - エリソン氏が数多くの新製品を発表 (1) ラリー・エリソンが「Gen2 Cloud : Autonomous Infrastructure」をテーマに講演 | マイナビニュース Oracle Code One 2019速報レポート:レポート|gihyo.jp … 技術評論社 あと、去年とは違いありがたいことに今年は採択されたので発

                                                      Oracle Code One 2019に参加してきました - ブログなんだよもん
                                                    • TypeScriptでEventの取り扱いがめんどくさ過ぎる。。。

                                                      はじめに Nuxt.js + TypeScriptを今試し中なのだけど、TypeScriptでのイベントの取り扱いが面倒なので、とりあえずStructural Subtypingを適用してみました。 今のところ問題なさそうなんだけど、軽く探して見た限りだとあまり類似のアプローチ無いし悪手なのかな? てか、FWとか一般的なライブラリで対応してるけど見つけれてないだけの気がしてならない。。。 TL;DR Event型を取り扱うときはtargetの型が不明なのでコンパイルエラーになる事がある event: { target: HTMLButtonElement }型を指定するのが一番手っ取り早い 求む、もっと手軽な対応方法 TypeScriptでのEvent型の取り扱いの罠 クリックイベントが発生したHTMLのノードに対して作業したい事は良くあるかと思います。 例えば下記のように 「クリックした

                                                        TypeScriptでEventの取り扱いがめんどくさ過ぎる。。。
                                                      • Vue.jsとIdentity Platform(IDプラットフォーム)でAPIの認証機能を作る - Qiita

                                                        はじめに 今、ちょっとしたWebアプリを作ってるのですが、認証システムを自作するのはセキュリティの意味でも生産性の意味でもナンセンスです。 なので何かしらのCIAM(Customer identity access management)を入れようと思ったのですが、ちょうどGCPを使っていたのでIdentity Platform(IDプラットフォーム)を使ってみることにしました。これはFireabase認証をベースにGoogleがエンタープライズグレードとしてGCPに統合したIDaaSです。 というわけで備忘録としてIdentity PlatformとVue.jsおよびJWT(+Quarkus)を使ったサーバサイドでAPI認証のやり方を解説します。 システム構成 今回作るシステム構成はクライアント(Vue.js)、API(Quarkus)、認証サーバ(Identity Platform)、

                                                          Vue.jsとIdentity Platform(IDプラットフォーム)でAPIの認証機能を作る - Qiita
                                                        • 【令和版】CSSで要素を横並びにする方法+α

                                                          はじめに 普段、個人でWebアプリを書くときにはこだわりが無いのでBootstrapを使っていました。ただ他にもっとシンプルなの無いかなぁ、と探してたらWater.cssというclasslessなCSSフレームワークを見つけました。 HTMLタグに直接装飾がマッピングされているので、それっぽいデザインが簡単に出来ます。ダークモードが中々良いですね。 ただBootstrapのようにグリッド機能が無さそうなので、レイアウトがちょっとめんどそうだな。。。と思いつつも今回は簡単なUIだから久しぶりにfloatとか手書きすることに。そして記憶の彼方にいったやり方を調べてたらCSS Grid Layoutという機能が標準搭載されてる事を今更知りました。中々便利そう&私のようにBootstrap + JQuery時代で止まってる人も居るかもしれないので、簡単に紹介しておこうと思います。 TL;DR CS

                                                            【令和版】CSSで要素を横並びにする方法+α
                                                          • レガシーおじさん、Vue.jsでSSGを頑張るのを諦めてNuxt.jsにする

                                                            はじめに Vue.jsのSPAだとTwitterのサムネイルに使うOGP等が指定できないと以前記事を書いたのですが、コメントの中にNuxt.jsやNext.jsを使うと良いよ、とありました。コメントありがとうございました。 ただ、既存のアプリを違うFWに移行させるのはちょっと面倒だと思いPrerender SPA Pluginとかを使って、下記あたりを参考にVue.js+プリレンダリングで出来ないかと頑張ってみたけど諦めた、という記録になります。 具体的にはビルド時にAPI呼び出しをしてるのに、ブラウザで表示するタイミングで値が初期化されてしまう 「APIが2回呼び出される問題」 を解決できなかったので。Nuxt.jsなら簡単に出来たので素直にそっちを使うことにしました。 この記事では他の誰かあるいは過去を忘れた未来の自分が同じ過ちを繰り返さないように、「Vue.js + Prerende

                                                              レガシーおじさん、Vue.jsでSSGを頑張るのを諦めてNuxt.jsにする
                                                            • 明日もう一度来て下さい。本当のマジックナンバーを見せてあげますよ

                                                              はじめに 下記の記事を見つけたのですが内容は大筋は賛成なのだけど、消費税をマジックナンバーという言葉で色々と違和感が。 これってマジックナンバーの話関係ある? と思ったのでちょっと自分の考えを整理してみました。 TL;DR (狭義の)マジックナンバーは使うな。常に名前を付けよう たとえ自明でもコード上で重複があるなら定数/変数や関数にしよう 共通ロジックを作ろう! でも気を付けながら。 マジックナンバーとは? 私の理解ではマジックナンバーというのは意味の分からない数値です。例では消費税率という少なくともコンテキストが分かれば意味の分かりそうなものが使わていますがコード値とかフラグ値のようなそもそも意味のない値に使うことの方が多い印象です。これが本当のマジックナンバーです。 例えば以下のような条件分岐を考えます。タクシー料金を見積もるコードです。金額は適当なのであしからず。 def taxi

                                                                明日もう一度来て下さい。本当のマジックナンバーを見せてあげますよ
                                                              • 重い初期化、並列処理, Singletonの罠, そしてInstancePoolへ

                                                                はじめに 初期化処理が重いインスタンスってありますよね。代表的な例だとJDBCコネクションとか。Factoryパターンで初期化を隠蔽するような奴は概ね重いのはどの言語でも一緒だと思います。 こういった重い処理を例えばループなどで大量に初期化してしまうのはかなりのコストになってしまい、特にバッチのようなチリツモな処理では無視できないほど実行時間に影響を与えてしまう恐れがあります。 そういった場合はSingletonなどを使ってインスタンスの生成コストを隠蔽しますが、マルチスレッド環境下だと影響が出る場合もあります。以前、そういうケースでバグってるのに出くわした事があるので、記憶の整理がてらまとめておこうと思います。 コード例はJavaですが、あまりJavaかどうかには依存しない考え方になっていると思うので、他の言語が得意な人は疑似コード程度に思っておいてください。 なお、JDBCを始めとした

                                                                  重い初期化、並列処理, Singletonの罠, そしてInstancePoolへ
                                                                • モニタリングツールの十分類とポートフォリオ - Qiita

                                                                  はじめに さて、みなさんは監視ツールは何を使っていますか? Zabbixですか? Prometheusですか? あるいはDatadogでしょうか? Mackerelとかを使ってる人もいらっしゃると思います。 それとは別にNew RelicやDynatrace、InstanaのようなAPMを使ってる人も多いと思います。他にも分散トレースとしてOpenZipkinやJaegerを使うこともありますよね。あるいはこれらに加えてログ分析としてKibanaを入れてるケースもあるでしょうし、アラート管理にPagerDutyを入れてることもありますよね。 では、それらのツールの使い分けはどうされていますか? それぞれが単機能なら話は簡単ですが多くのツールは色々な機能をもっており「似たようなツールをすでに入れてますよね?」どれか一つ例えばPrometheusだけあれば大丈夫でしょうか不十分でしょうか? と

                                                                    モニタリングツールの十分類とポートフォリオ - Qiita
                                                                  • マイクロサービス開発を容易にするDaprをJavaで利用してみた - Qiita

                                                                    はじめに Microsoft Build2020を見てDistributed Application Runtime のDaprが中々面白そうでした。 チュートリアルがNode.jsだったので参考にしつつQuarkusからDaprを利用するサンプルを作ってみました。 コードは下記を参照 https://github.com/koduki/example-dapr/tree/v01/api-with-java Daprって? Daprはサイドカー(Proxy)によりサービス間呼び出し、ステート管理、サービス間メッセージングなどの非機能要件を実現する事でマイクロサービスの実装を簡単にするマイクロソフトによって開発されているフレームワークです。 OSSで開発されているため下記より利用できます。 https://dapr.io/ https://github.com/dapr/dapr サイドカー

                                                                      マイクロサービス開発を容易にするDaprをJavaで利用してみた - Qiita
                                                                    • JFRとモニタリングの融合? JEP 349: JFR Event Streamingを触ってみる

                                                                      この記事はJava Advent Calendar 2020の21日目です。 TL;DR JFRはJavaに組込まれた診断の仕組み JFR Event StraemingはJFRと同じメカニズムを使う監視の仕組み MP Metrics/Micrometerを使ってPrometusなど既存の監視基盤に統合できる 今回使ったソースコードは下記に置いています。 はじめに 今年もアドベントカレンダーの季節がやってきました。「2018年:JFR APIを使ってメソッドの実行時間をタイムラインレポートにしてみる」, 「2019年:JFRをBigQuery/Metabaseのオレオレダッシュボードで可視化する」とJFRネタをやってきましたが今年はなんと。。。うん、「また」なんだ。済まない。 と言うわけではからずともなのですが、3年連続でJFRネタということで今年は2020年3月にでたJDK14に含まれた

                                                                        JFRとモニタリングの融合? JEP 349: JFR Event Streamingを触ってみる
                                                                      • Google Cloud Storage(GCS)上の画像やJSにIP制限をかける

                                                                        本記事はGCP(Google Cloud Platform) Advent Calendar 2022 2日目の記事です。 3日目: k8s × IAP @po3rin さん です。 TL;DR Edge Security PolicieでバックエンドバケットにもIP制限が可能に ただしGCSが公開状態だとそちらのURLにアクセスは出来てしまう 署名付きURLでプライベートなGCSでCLBからのアクセスが可能だが課題は残る はじめに クラウドを使っていても、社内向けシステムやテスト環境はインターネット上に公開したくないので、IP制限を掛けたいケースは良くありますよね? GCPの場合、いくつか方法はありますがWebシステムの場合はCloud Load Balancing (CLB)とCloud Armorを組合わせてやるのが一般的だと思います。GCEに置いたシステムだろうとGKEだろうとCl

                                                                          Google Cloud Storage(GCS)上の画像やJSにIP制限をかける
                                                                        • COS(コンテナ最適化OS)でDockerの利用できるディスク容量を増やす - Qiita

                                                                          はじめに GCPだとcreate-with-containerを使う事でCOS(Container-Optimized OS)を利用したコンテナ用のインスタンスを作る事ができます。 イメージ名とかも指定できるので、小規模なコンテナ運用ならGKEでやるより簡単かと思います。 ただデフォルトのdiskサイズが10GBなので大きめのDocker Imageをビルドすると下記のように容量不足のエラーが出ます。 Error processing tar file(exit status 1): write .... : no space left on device なので、今回はビルドの容量を確保するためにCOSに永続化ディスクを追加したのでそのやり方のメモになります。 戦略 boot diskのサイズ変更ではなく新規ディスクの追加 /var/lib/dockerの上書きではなくdaemon.js

                                                                            COS(コンテナ最適化OS)でDockerの利用できるディスク容量を増やす - Qiita
                                                                          • LangChainとFunction callingで天気予報APIを呼び出す

                                                                            はじめに ChatGPTの肝になる機能の一つが Function Calling です。これはLLMで質問の内容を解析して、必要な関数を呼び出すというものです。 「必要な関数」 をどのように判定しているかといえば、それは関数の説明文から判断します。今までもキーワードに応じて何かの処理をするようなプログラムは良くあったと思いますが、LLMの強力な言語処理能力を使うことで 「呼び出すべき関数」 と 「適切な引数」 を自動的に判定してくれます。SiriやAlexaみたいなツールが簡単に作れちゃいます。 今回はそのFunction callingをLangChain経由で使って天気予報APIをAITuberの「紅月れん」から呼べるようにしたので、その試行錯誤等を載せておきたいと思います。 なお、AITuber自体の作り方やLLMに関する全般的な話は下記の記事で取り扱っていますので、良ければ読んでみ

                                                                              LangChainとFunction callingで天気予報APIを呼び出す
                                                                            • JDK Flight Recorderのアーキテクチャ概要 - ブログなんだよもん

                                                                              はじめに JFRにおける「イベント」 イベントタイプとサンプリング データフォーマット 循環バッファとデータフロー リポジトリとJFRファイル名 JFRの開始とJFRファイルダンプ まとめ 参考 はじめに JDK Flight Recorder(JFR)はJavaで利用できる常時本番適用可能な超低オーバーヘッドのプロファイラです。性能分析とか障害対応の強い味方ですね! 今まで商用ライセンスのみ使用可能だったのですが、JDK11よりOpenJDKに取り込まれ自由に使えるようになりました。オープンになったので色々自分でも使いたいですし、色んな人にも使って欲しいなと思っています。 ただ、Oracleの公式ドキュメントが余りにもサラリとし過ぎていて良くわかんないので、いくつかのOracleや有志の発表資料や自分の知識を元にアーキテクチャ概要を解説して見ました。 この辺をしっかり分かりやすく書いた公

                                                                                JDK Flight Recorderのアーキテクチャ概要 - ブログなんだよもん