並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 969件

新着順 人気順

jsonの検索結果321 - 360 件 / 969件

  • TypeScriptの型定義からバリデーションコードを生成するツールを書いた

    create-validator-tsというTypeScriptの型定義からJSON Schemaを使ったバリデーションコードを生成するツールを書きました。 モチベーション expressなどでAPIを書くときに、Request/Responseが意図したものかどうかをバリデーションする必要があります。 特にreq.queryなどはStringが入ると予想しますが、オブジェクトが入ってくることもあります。 これは、expressの内部で使っているqsというURLクエリのパーサが、オブジェクトや配列へ展開する機能を持っているためです。 expressを使ってるサイトは ?q=text があるときに req.query.q には オブジェクトが入る可能性をちゃんと考慮しないといけない。 ?q[a]=text で req.query.q ; // { a: "text" } になる — azu

      TypeScriptの型定義からバリデーションコードを生成するツールを書いた
    • 自由なソフトウェアと抗議と倫理の「(不)可能性」について

      自由なソフトウェアと抗議と倫理の「(不)可能性」について 2022.05.10 Updated by yomoyomo on May 10, 2022, 18:15 pm JST 大変ごぶさたしております。実に約5年半ぶりになりますが、またこちらで書くことになりました。ブランクが長かったため、ここへの文章の書き方を自分でも忘れてしまったところがあるのですが、稲田豊史氏の「ウェブは最初に結論を書く、くどくど掘り下げて説明しない、とにかく簡潔に」という金言に逆らい、地味な話題についてくどくどと書いていこうと思います。 いや、結論だけは先に書いておきましょうか。銀の弾はない、それだけです。 2022年2月にロシアがウクライナへの侵攻を開始して早くも2カ月以上経ち、ロシア(のプーチン大統領)の甘い見通し、予想以上のウクライナの抵抗、多くの国のウクライナへの支援などと相まって、現状、ロシアが手こずっ

        自由なソフトウェアと抗議と倫理の「(不)可能性」について
      • npmのprivate registryからGitHub Packages Registryに移行する

        PLAIDでは社内のNode.jsパッケージの管理にnpm private registry [https://docs.npmjs.com/creating-and-publishing-private-packages](npmのregistryにprivateでパッケージをpublishする形式)を利用していました。 また、npm private registryを導入する以前の古いパッケー

        • GitHub - kellyjonbrazil/jc: CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts

          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

            GitHub - kellyjonbrazil/jc: CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts
          • DuckDBでお手軽!データフェデレーション - Techtouch Developers Blog

            tl;dr はじめに DuckDB とは DuckDB では何が読めるのか 使ってみる S3 上のJSON を読んでみる リレーショナルデータベース 他ツールではなく DuckDB を使うメリット しくじりポイント (特にリリースされたばかりの)バージョンには気をつける S3 のオブジェクト数が多い場合不都合がありがち スレッドの調整が必要な場合も Redshift には未対応 終わりに 付録 MySQL のデータを読み込む例の MySQL 側の準備 tl;dr DuckDB 便利だよ。分析以外でも使えるよ 色々な場所のデータを閲覧・結合できるよ。標準SQLも使えるよ ただし、細かい落とし穴は色々あるので気をつけてね はじめに2023年4月にデータエンジニアとして入社したmin(@not_rogue)です。暖かくなるにつれ、YouTube で見た南伊豆ロングトレイル | 松崎町に行く機運が

              DuckDBでお手軽!データフェデレーション - Techtouch Developers Blog
            • Rubyのテストのややこしい失敗を直した話 - まめめも

              Ruby の CI 維持業というのはこんな感じという事例紹介。 CIを観察する RubyのCIがときどき次のように失敗していました。 1) Error: TestM17N#test_object_inspect_external: Encoding::CompatibilityError: incompatible character encodings: UTF-8 and UTF-16BE /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m17n.rb:311:in `encode' /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m17n.rb:311:in `inspect' /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m1

                Rubyのテストのややこしい失敗を直した話 - まめめも
              • DuckDB as the New jq

                Recently, I’ve been interested in the DuckDB project (like a SQLite geared towards data applications). And one of the amazing features is that it has many data importers included without requiring extra dependencies. This means it can natively read and parse JSON as a database table, among many other formats. I work extensively with JSON day to day, and I often reach for jq when exploring document

                • GitHub Actions向け自作アクションの作り方|Tably

                  こんにちは。Tably よういちろう(@yoichiro)です。 皆さんは普段GitHubをお使いでしょうか?お使いの方は、GitHub Actionsを使ってCI/CDしていますでしょうか? GitHub Actionsを使うことで、Pull Requestの作成や更新、あるブランチへのマージといったタイミングで、コードのフォーマットを整えたり、テストを走らせたり、本番環境にデプロイしたり、一連の作業が終わったことをチャットに通知したり・・・といったことを自動的に行うことができます。GitHubにはGitHub Marketplaceというアクションが公開されているマーケットプレースがあります。やりたいことがあった時に、一般的なものであればそこで見つけることができるでしょう。 ものすごい数のアクションがMarketplaceにて公開されていますが、たまたま僕が行いたかった動作をしてくれる

                    GitHub Actions向け自作アクションの作り方|Tably
                  • CompressionStream でブラウザで gzip 圧縮する

                    モダンなブラウザは JS API として gzip や deflate が使えます。 昔から Chrome に搭載してるのは知ってたんですが、今見たらだいたい搭載してました。 わかってる人向けに言うと、バンドルサイズ大きめの JS実装の pako や zlib.js が不要になって、ブラウザネイティブの(たぶんHTTP上のgzip展開と同等の)高速な実装が使えます。 // impl const encoder = new TextEncoder(); const decoder = new TextDecoder(); export async function compress(str: string): Promise<ArrayBuffer> { const cs = new CompressionStream("gzip"); const buf = encoder.encode(

                      CompressionStream でブラウザで gzip 圧縮する
                    • 雑にJSONデータを分析させてみる-ローカルLLMの底力 | IIJ Engineers Blog

                      地方拠点の一つ、九州支社に所属しています。サーバ・ストレージを中心としたSI業務に携わってましたが、現在は技術探索・深堀業務を中心に対応しています。 2018年に難病を患ったことにより、定期的に入退院を繰り返しつつ、2023年には男性更年期障害の発症をきっかけに、トランスジェンダーとしての道を歩み始めてます。 2024/08/22修正: はてなブックマークのコメントから、「それってデシリアライズって言わないよ」というご指摘を頂戴しました。 恥ずかしながら浅学であったがゆえに用語を取り違えたまんま長らく覚えてまして、これを整形表示(Pretty Print)と修正させていただきました。最初の用語登場箇所のみ修正した内容として取り消し線付きで記述しておりまして、それ以降は置換させてもらっています。 ご指摘誠にありがとうございました<(_ _)> これとは別に、後半で記述してるコードの一部に使わ

                        雑にJSONデータを分析させてみる-ローカルLLMの底力 | IIJ Engineers Blog
                      • フルスクラッチして理解するOpenID Connect (3) JWT編 - エムスリーテックブログ

                        こんにちは。デジカルチームの末永(asmsuechan)です。この記事は「フルスクラッチして理解するOpenID Connect」の全4記事中の3記事目です。前回はこちら。 www.m3tech.blog 9 JWT の実装 9.1 JWT概説 9.2 OpenID Connect の JWT 9.3 ヘッダーとペイロードの実装 9.4 署名の実装 公開鍵と秘密鍵を生成する 署名処理を作る 10 JWKS URI の実装 (GET /openid-connect/jwks) 11 RelyingParty で ID トークンの検証をする 12 OpenID Connect Discovery エンドポイントの実装 (GET /openid-connect/.well-known/openid-configuration) まとめ We're hiring 今回は全4回中の第3回目です。 (

                          フルスクラッチして理解するOpenID Connect (3) JWT編 - エムスリーテックブログ
                        • 『初めてのGraphQL』を読んだ感想 - 虎の穴開発室ブログ

                          皆さんこんにちは、とらのあなラボのY.Fです。 オライリー書評シリーズは、今回で第5弾になります。 (前回の書評はこちら) toranoana-lab.hatenablog.com 今回の記事では、2019年11月のオライリー定期購読で届いた、『初めてのGraphQL』を読んだので感想を書きたいと思います。 読んだ理由 APIに限らずWebアプリケーションを作る上ではRESTの考え方はもはや基礎知識になっているかと思います。 ただ、個人的にはRESTについては以下のような認識を持っていました。 通常のCRUD処理から外れるとルーティングなどが悩ましい 複雑に絡み合ったデータを扱おうとした時にURLの階層が深くなりがち JSONを返すAPIに汎用性をもたせると巨大なJSONが返されたりするケースがある 対して、最近GraphQLを採用したとか、ReactやVueと組み合わせてやってみたという

                            『初めてのGraphQL』を読んだ感想 - 虎の穴開発室ブログ
                          • GoでYAMLを扱うすべての人を幸せにするべく、ライブラリをスクラッチから書いた話 - Qiita

                            この投稿は、 Go アドベントカレンダーの 6日目のものになります。 はじめに GoでYAMLを扱う際にデファクトになっているのは、おそらく github.com/go-yaml/yaml でしょう。 実装はC言語で実装された libyaml を Go に移植しつつ、 Go ならではの機能を足す作りになっているのですが、 cgo を使わずに pure Go で移植されており、開発者の気合を感じます。 枯れている libyaml を利用していることからも、 YAML の仕様を忠実に実装していることが期待できます。 ですが、このライブラリにはいくつか使いにくい点もあり、例えば以下のようなことはできませんでした 構造体を埋め込む場合に、埋め込む型をポインタで定義できない ( ※ ポインタなしは大丈夫 ) encoding/json とコンパチの インターフェース ( MarshalYAML()

                              GoでYAMLを扱うすべての人を幸せにするべく、ライブラリをスクラッチから書いた話 - Qiita
                            • Firestoreの簡易管理ツールをNuxt.jsでつくってみた - Qiita

                              Firestore、とっても便利ですが、Firebaseのコンソールがイケてないので、 ローカルで動かせる簡易の簡易ツールを作ってみました。Nuxt.js製です。 Firebase Admin SDKを使ってるので、秘密鍵を配置すればOK。 セキュリティルールの変更も不要です。 動いているところはこんな感じ。 GitHubで公開してます。ただ書きなぐりなので、ソースはイケてないです。。 まだα版くらいなので、機能は限定的です。。 memory-lovers/simple-firestore-admin: Simple Firestore Admin なんで作ったか Firestoreを使ったWebサービスを作ってみたところ、 ちょこっとしたDBの変更にもデータが多かったり、1ドキュメントのサイズが大きいと、 Firebaseコンソールだと重い感じに。。 いろいろ見ていると、Webサービスな

                                Firestoreの簡易管理ツールをNuxt.jsでつくってみた - Qiita
                              • 超高速シリアライズフォーマット「DLHN」

                                新しいシリアライズフォーマットDLHNをリリースしました。 DLHNは高速でデータサイズが小さいバイナリ形式のシリアライズフォーマットです。 DLHNの発音は"Dullahan"と同じです。 公式サイトは https://dlhn.org 実装は https://github.com/otake84/dlhn イラストは @kira2beat さんに描いていただきました。 特徴DLHNはプログラミング言語やプラットフォームに依存しないバイナリ形式のシリアライズフォーマットで、JSON, CSV, MessagePack, Protocol Buffersなどから影響を受けています。 シリアライズとデシリアライズが高速で、データサイズが小さく、Schema定義ファイルが不要でストリーム処理にも対応しています。 これを聞くとMessagePackと同じように感じるかもしれませんが、実際のデータ

                                  超高速シリアライズフォーマット「DLHN」
                                • next.js で自分のブログを作る

                                  next.js で自分のブログを作る 自分のブログとして mizchi.dev を作った話 at 隅田川.js #1(オンライン) - connpass 何を作ったか このブログ自身(mizchi.dev)。スライドツールも突貫で自作 ソースコード mizchi/dev Lighthouse Full AMP GA 対応 Git から編集ヒストリの生成 どんなブログがほしかったか Lighthouse で満点出したい 普通の Markdown じゃつまんないから MDX で書きたい サーバーの運用をしたくない next.js の最適化に乗りたい 作った どうせ動かないし CDN 上で静的サイト + Full AMP MDX コンパイラを自作 (amdx) netlify + 買ったまま忘れてたカスタムドメイン(mizchi.dev) pages/*.tsx が公開される仕組みを、そのまま採

                                  • 【小ネタ】AIにVSCodeの設定ファイルの書き方などを尋ねてみると良かったです | DevelopersIO

                                    もちろん裏取りは必要ですが、エディターの設定ファイルをどう書くのかAIに聞いてみるのも面白かったです。特にエディターは「○○みたいにしたい」というのを言語化して、どう調べれば良いのかわからなかったので今後も助けてくれそうな気がしています。 こんにちは。AWS事業本部コンサルティング部に所属している今泉(@bun76235104)です。 今回は超がつくほどのの小ネタなのですが、生成系のAIにVSCodeの設定周りについて聞いたり、作業をお願いしたらとても快適だったので使い方の一旦を紹介します。 やってみたことは以下のとおりです。 独自スニペット用のJSON文字列を書いてもらう キーボードショートカットの設定(keybindings.json)の書き方を教えてもらう 設定ファイル(settings.json)の書き方を教えてもらう 実際にやってみた 今回試している環境は以下のとおりです。 試し

                                      【小ネタ】AIにVSCodeの設定ファイルの書き方などを尋ねてみると良かったです | DevelopersIO
                                    • プログラミング関係でググるたび検索上位に出てくる激遅ロード時間の例のプログラミングスクールサイト【検索妨害】

                                      なるみCYO🐷 @queenmk 私はね、JSONファイルをPOSTする方法を知りたかっただけなのに、得られたのは侍に対する殺意だけだった。欲しかった情報は社内で得られた。 2020-03-18 17:16:51

                                        プログラミング関係でググるたび検索上位に出てくる激遅ロード時間の例のプログラミングスクールサイト【検索妨害】
                                      • CUE言語(cuelang)に入門しよう

                                        Abstruct 本記事においては、The CUE Configuration Languageを用いて設定ファイルを記述することはどのようなメリットがあるのか。また、どのような使い方が想定されるのかについて議論する。 私は、実際の開発現場において、各マイクロサービスチームがKubernetesのManifestを生成するテンプレートとして活用している。 そのため、KubernetesのManifestをcuelangを用いて記述している。(この件に関する記事は現在執筆中だ。) その経験から、CUE言語がどのような言語であるかについてここで述べることにする。 Keyword: CUE, cuelang, configuration, 設定記述言語, JSON, YAML, Kubernetes, manifest Introduction あなたは普段どんな設定記述言語を利用しているだろう

                                          CUE言語(cuelang)に入門しよう
                                        • VSCodeでC#開発環境整えちゃう(グッバイVisual Studio)

                                          こんにちは!今年の冬も暖房なしで頑張る佐藤です。 みなさん、C#(.Net)使ってますか?弊社では、主にバックエンド開発に使われていますが、Java8とかで開発してた時に感じた、いろいろな不満が解消されていて、いい言語だなあとひしひし感じています。 さて、C#の開発をする際にメジャーなエディターといえば、Visual Studio、Riderだと思います。 それらも、とても便利なエディターではあるのですが、IDEなのもあって多少スペックが必要+ライセンス契約をする必要がある=金銭のやりとりが発生する、等の理由のために、多少敷居の高さがあるんじゃないかな〜と個人的に感じています。 また、私自身が、他の言語の開発ではほぼVisual Studio Codeを使っているのもあって、VSCodeとVisual Studioを一緒に起動して開発するのもなんだかなあ… と感じていました。 そこで、11

                                            VSCodeでC#開発環境整えちゃう(グッバイVisual Studio)
                                          • BigQueryでSaaSのjsonデータを処理するSQLサンプル集 - 下町柚子黄昏記 by @yuzutas0

                                            この記事の概要 SaaSのデータをBigQueryに統合することで業務改善を促進できる。 しかし、SaaSのデータの中身を見ると、BigQueryの関数では対応しにくい形式になっていることがある。 そこで、本稿では「こういうデータ形式だったらこういうSQLを書く」というサンプル集を掲載する。 目次 この記事の概要 目次 宣伝 実現したいこと SaaSデータの処理方法 SQLサンプル1: 純粋な配列だけのケース SQLサンプル2: 配列内にハッシュマップがあるケース SQLサンプル3: 配列宣言ナシでカンマ区切りのハッシュマップが突如始まるケース SQLサンプル4: 配列とハッシュが入り乱れるケース SQLサンプル5: JSONの中に親子構造があるケース SQLサンプル6: Objectを定義したくなるケース 最強のJSONパースの関数は作れるか jsonデータの処理をどこで行うか 最後に

                                              BigQueryでSaaSのjsonデータを処理するSQLサンプル集 - 下町柚子黄昏記 by @yuzutas0
                                            • GitHubに1コマンドでいろいろPUTできるツールghputを作った - Copy/Cut/Paste/Hatena

                                              ghput pr-comment ghput issue-comment のデフォルトの挙動について注意点を追記しました 最近はGitHubやGH:Eといったサービスのリポジトリと、そのリポジトリと連携するCI/CD環境がある前提で、様々なパイプラインを作ることが普通になってきています。 git push や Pull Request をトリガーにCI/CD環境で実行されるのもテストの実行だけではなく、master mergeのタイミングでのプロダクションデプロイやプロビジョニング、その前段階としてPull Requestタイミングでのdry-runやplanの実行など。 GitHubは便利ですし、それと連携するCI/CD環境があるとその2つだけで様々なものの自動化ができて便利です*1。 そんなGitHub+CI/CDな環境で使えるであろう ghput というツールを作りました。 gith

                                                GitHubに1コマンドでいろいろPUTできるツールghputを作った - Copy/Cut/Paste/Hatena
                                              • 見よ、これがHonoのRPCだ

                                                僕が開発しているWebフレームワークHonoは、同じJavaScriptのフレームワーク、Expressと比べられることが多いです。どちらもやれることはほぼ同じですが、HonoのアドバンテージはファーストクラスでTypeScriptをサポートしていることです。特に「RPC」機能は他のフレームワークにはなかった「TypeScriptの型でサーバーとクライアントの仕様を共有する」ことを可能にしています。今回はそのHonoのRPCについて紹介します。 どんなものか まず、どんなものかを箇条書きで共有します。 Web APIの仕様、特にインプット・アウトプットをサーバーとクライアント間で共有するためのもの OpenAPIやgRPCを使ってやりたかったことを叶えるかもしれない サーバーとクライアントをどちらもTypeScriptで書くことが大前提である 同種のものにtRPCがあるが、Honoの場合、

                                                  見よ、これがHonoのRPCだ
                                                • Obsidian Canvas - Visualize your ideas

                                                  Visualize your ideas. Infinite space to research, brainstorm, diagram, and lay out your ideas. Canvas is a core plugin included for free with Obsidian. A playground for thought Canvas allows you to organize notes visually — an infinite space to research, brainstorm, diagram and lay out your ideas. Embed your notes alongside images, PDFs, videos, audio, and even fully interactive web pages. A new w

                                                    Obsidian Canvas - Visualize your ideas
                                                  • [Go] レイヤードアーキテクチャの階層構造を守らないimportを警告するlinterを作った - My External Storage

                                                    Goでクリーンアーキテクチャ等のレイヤードアーキテクチャを実装するための静的解析ツールを作った。 「webhandlerパッケージからusecaseパッケージを使わずに直接domainパッケージを使わないで!」というような、やってほしくないimportをエラーにできる。 https://github.com/budougumi0617/layer TL;DR クリーンアーキテクチャなどのレイヤードアーキテクチャでは、利用できるパッケージに制限がある レイヤー間の依存関係は一方向のみ 同じ層、あるいは1つ下の層のパッケージしか利用してはいけない https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html Goは循環importができないので、自然に単方向依存は満たしやすい しかし、層を飛び越して、2

                                                      [Go] レイヤードアーキテクチャの階層構造を守らないimportを警告するlinterを作った - My External Storage
                                                    • OSSのJSONエディタをElectronアプリに移植した - マルシテイア

                                                      josdejong氏作のJSONエディタを、Electronでデスクトップ用アプリに移植しました。 github.com 元のJSONエディタはこちら。めちゃ高機能で便利。 僕が書いたコードはたった200行くらいです。 github.com なぜ作った 仕事でイベント用のUnityアプリを作る事が多い 現場でパラメータを調整するために、パラメータをJSONやCSVファイルに出しておくことが多い SRDebuggerとかでアプリ内に設定画面を作る事も多いけど、その時間すらない事もある プログラマー的にはJSONを使いたい プログラマー以外の普通の人にとっては、JSONの編集は難しい CSVはエクセルで編集できて便利という世界観 普通の人が使えるJSONエディタがほしい オンラインJSONエディタは良い奴がたくさんある exeで欲しいんだが!!! Electronでラップしたら良いのでは? E

                                                        OSSのJSONエディタをElectronアプリに移植した - マルシテイア
                                                      • OpenAPIを使ったRailsスキーマ駆動開発 - ドワンゴ教育サービス開発者ブログ

                                                        はじめに サービス構成 レポジトリ一覧 サーバー側Railsアプリ クライアント側Railsアプリ 開発の流れ 利用ツール swagger-cli committee-rails 不具合1: ファイルの分割 不具合2: $refとnullableの同時使用 json-schema openapiの記法に合わせた機能拡張 openapi-generator-cli (Ruby client) 不具合1: 中途半端な型チェック 不具合2: oneOf/anyOfに非対応 factory_bot 終わりに We are hiring! はじめに 前回の記事では、OpenAPIで新しいウェブAPIを定義する際に、yamlのままで読みやすいようにファイル構成等を工夫した話をしました。 今回はそのAPIスキーマを使って、Railsでスキーマ駆動開発を実現するにあたって利用しているツール類についてお話し

                                                          OpenAPIを使ったRailsスキーマ駆動開発 - ドワンゴ教育サービス開発者ブログ
                                                        • Big Sky :: Go の struct は小さくできる(fieldalignment のススメ)

                                                          動的型付けプログラミング言語や、class を持つようなプログラミング言語を使う場合、そのフィールドメンバの定義順などを意識する事は少ないかもしれません。 Go は struct という、C言語が持っている構造体と同じ様にメモリ配置され、構造体そのものをレシーバとして、メソッドを定義しつつプログラミングを行います。struct はデータ構造そのものを示し、それが大きくなるにつれ、当然ながらメモリ使用量も多くなります。 さて、例えば以下のコードを実行すると、struct 100 個分のサイズは幾らになるでしょうか。 package main import ( "fmt" "unsafe" ) type Account struct { TimeZone struct { Name       string `json:"name"` UtcOffset  int    `json:"utc_

                                                            Big Sky :: Go の struct は小さくできる(fieldalignment のススメ)
                                                          • ノーコード・コードレスでGoogleスプレッドシートからAPIを作成できる「SSSAPI」β版がリリース

                                                            合同会社めもらばは、GoogleスプレッドシートのAPI化サービス『SSSAPI』β版の公開を開始したと発表した。β期間中は最上位プランを無料で利用できる。 SSSAPIはGoogleスプレッドシートの内容をJSON形式で返却するAPIを作成できるWebサービスだ。「ちょっとしたAPIがあるといいけど、 サーバを用意するほどではない」「クライアントに入力してほしいけど、 管理画面を作る余裕がない」といったときに、シンプルなAPIをノーコード/コードレスで作成することが可能だ。 SSSAPIでは、このようなスプレッドシートから、

                                                              ノーコード・コードレスでGoogleスプレッドシートからAPIを作成できる「SSSAPI」β版がリリース
                                                            • 複数のサブスキーマを持つデータへの対応におけるスキーマ記述言語の比較 | IIJ Engineers Blog

                                                              プログラミング中、何度も同じような、でも、その都度少しずつ異なるコード(ボイラープレートコードとも呼ばれます)を記述しなければならない場面は多々発生します。 可能ならば、このようなパターン化された単調なコードの記述は省略して、より重要なロジックの実装に集中したいものです。 Web APIの開発においても、毎回のように実装が必要なパターン化された処理は多々あります。 リクエストやレスポンスのデータ(現在、ほとんどがJSON形式)のバリデーションもその代表です。 データ種別ごとに手動でバリデーション処理を記述するのでは無く、データ仕様の定義(データスキーマ)を与えれば、自動的にバリデーションするような仕組みが理想でしょう。 本稿では、そんなバリデータの調査や検証中に見つけた課題についてご紹介したいと思います。 ポリモーフィックパターン まず、以下のようなJSONデータを処理するケースについて考

                                                                複数のサブスキーマを持つデータへの対応におけるスキーマ記述言語の比較 | IIJ Engineers Blog
                                                              • 意味的知識グラフとApache Solrを使った関連語検索の実装 - Ahogrammer

                                                                Manningから出版予定の『AI-Powered Search』(AIを活用した情報検索の意)を冬休み中に読んでいたら、その中で意味的知識グラフ(Semantic Knowledge Graph)と呼ばれるデータ構造について説明していて、関連語の計算やクエリ拡張などに使えるということで興味深かったので紹介しようと思います。最初に意味的知識グラフについて説明したあと、日本語のデータセットに対して試してみます。 AI-Powered Search(https://www.manning.com/books/ai-powered-search) 本記事の構成は以下のとおりです。 意味的知識グラフとは 意味的知識グラフを用いた関連語の計算 参考資料 意味的知識グラフとは 知識グラフと聞くと、固有表現認識や関係抽出、OpenIEを使って構築するグラフを思い浮かべる方もいると思うのですが、意味的知識

                                                                  意味的知識グラフとApache Solrを使った関連語検索の実装 - Ahogrammer
                                                                • Rubyアンチパターン: なんでもHash

                                                                  ソフトウェアの内部では、データを様々な形に加工しつつ、あちこちに受け渡して再利用します。そのためのデータ構造として、RubyではHashクラスのオブジェクト(他の言語ではMapだったりDictionaryだったり連想配列だったりします)を使うことはよくあります。 単体の数値や文字列ではなく、それらを組み合わせたデータを扱う際には、Hashオブジェクトが便利です。 しかし、あらゆる場面でHashを駆使しようとすると、利便性よりも弊害が大きくなります。 典型的な症状 あちこちで同じだったりちょっと違ったりするHashオブジェクトを引き回していたりします インスタンス変数が少なく(あるいはまったくなく)、その代わりとしてメソッド引数のHashオブジェクトにいろんなデータを渡していたりします 1つのHashオブジェクトのキーとして、文字列やシンボル、さらにはそれ以外のクラスのオブジェクトが使われて

                                                                    Rubyアンチパターン: なんでもHash
                                                                  • Python で緊急対応時の Slack 操作を自動化してみた | DevelopersIO

                                                                    このブログはこんな方におすすめ 緊急対応の初動を早めたい リモートワーク中心になり、緊急対応中の作業分担や進捗確認が難しい Google Apps Script で緊急対応時の Slack 操作を自動化してみた の Python 版がほしい 2021年6月11日に以下のセッションに登壇しました。本ブログでは登壇中に紹介するとお伝えした関数をご紹介します。また背景についても改めて少し記載しています。 業界特化事例紹介セッション SIer編 | Slack はじめに クラスメソッドでは Slack API を活用することで、いくつかある緊急対応の初動が約30分早くなりました。 では、どのように活用して初動対応を迅速化したのでしょうか。 本ブログでは、クラスメソッドの緊急対応の一つである、AWS 不正利用対応を例に紹介します。 AWS 不正利用とは、AWS アクセスキーの漏洩などが原因で発生しま

                                                                      Python で緊急対応時の Slack 操作を自動化してみた | DevelopersIO
                                                                    • Auth0からCognitoへのユーザー移行 - ROBOT PAYMENT TECH-BLOG

                                                                      こんにちは。ROBOT PAYMENT (以下、ロボペイ)でエンジニアをしているtakamoriです。 私が所属しているチームでは、請求先マイページ機能を開発しており、その中でユーザー認証基盤をAuth0からCognitoへと移行させました。そこで今回は、Auth0からCognitoへのユーザー移行手順を書いていきたいと思います。 ※ 本記事ではAuth0やCognitoの環境構築は対象外で、それぞれの環境が構築済み前提となります。 移行手順 Auth0からユーザーをエクスポート Auth0ユーザー情報をCognitoユーザー情報へマッピング Cognitoへユーザーをインポート Auth0からユーザーをエクスポート Auth0からのユーザーをエクスポートするには、ExportUsersJob APIを利用します。GetUsers APIを利用して取得することも可能ですが1,000件の取得

                                                                        Auth0からCognitoへのユーザー移行 - ROBOT PAYMENT TECH-BLOG
                                                                      • GitHub - ynqa/jnv: Interactive JSON filter using jq

                                                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                          GitHub - ynqa/jnv: Interactive JSON filter using jq
                                                                        • TerraformでIAM Policyを書く方法5つ | DevelopersIO

                                                                          タイトル修正しました。最初「TerraformでIAM Policyを書く方法4つと失敗する方法ひとつ」というものでしたが、失敗する方法は単に私の書き方が間違ってただけでした TerraformでIAM Policyを書く方法は色々とあるので、紹介していきます。 今回は例として、こちらの公式ドキュメントに出てくる以下ポリシーを使いたいと思います。 { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:123456789012:table/Books" } } ファイル外だし policyの中身はtfファイルに書かず、JSONファイルとして外だしします。それをfile関数を使って参照します。 fil

                                                                            TerraformでIAM Policyを書く方法5つ | DevelopersIO
                                                                          • 図解 JWS/JWE/JWT/IDトークン/アクセストークンの包含関係 - Qiita

                                                                            JWS/JWE/JWT/IDトークンの包含関係 JWS (JSON Web Signature) と JWE (JSON Web Encryption) の直列化方法には、それぞれ JSON 形式とコンパクト形式がある。 JWT (JSON Web Token) は JWS か JWE だが、いずれにしてもコンパクト形式である。仕様でそう決まっている。 仕様により、ID トークンには署名が必要なので、ID トークンは JWS もしくは「JWS を含む JWE」という形式をとる。 ID トークンは「JWE を含む JWS」という形式はとらない。なぜなら、仕様により、ID トークンを暗号化する際は「署名してから暗号化」という順番と決まっているため。 アクセストークン/JWT/IDトークンの包含関係 アクセストークンの実装が JWT だとは限らない。 仕様により、ID トークンは必ず JWT で

                                                                              図解 JWS/JWE/JWT/IDトークン/アクセストークンの包含関係 - Qiita
                                                                            • JSONが格納された環境変数から、JSONのキーの名前とその値で環境変数をセットするツールを作った - でこてっくろぐ ねお

                                                                              2ヶ月くらいかけて毎日盆栽のようにちょっとずつ手を入れていたツールがまぁいい感じになってきたかなと判断したので、紹介エントリです。 2020/11/07 追記 このエントリを書いた2日後に、以下AWSの新機能が出て、以下私がこのツールを作った理由として述べている部分は、AWSの機能で代替可能となりました。まぁ、このエントリを読むと分かる通り、AWSがそこを実装していることを前提として、"捨てやすくする"という方針で開発したツールではあるので狙いどおりではあるんですが、ちょっと悔しい気持ちもありますね。捨てやすくする以前に使わなくてよくなった、的な。 AWS Fargate for Amazon ECS launches features focused on configuration and metrics CDKにもこの機能が来ましたので、もうなんでもできます。ecs: secret

                                                                                JSONが格納された環境変数から、JSONのキーの名前とその値で環境変数をセットするツールを作った - でこてっくろぐ ねお
                                                                              • データカタログにNotionを選択した理由

                                                                                実装方法 冪等性を担保したGoogle Cloud Composerの設計と実装で紹介しているとおり、Luupのデータ基盤はGoogle Cloud Composerを軸に動いています。なので今回も、Google Cloud Composerの環境下に作りました。 アウトプットイメージは以下です。 以下のNotion APIのDocumentを参考に実装を進めていきます。 サンプルコードも豊富で、説明も丁寧なので簡単に実装できました。 以下、コード一例です。 # Notionのフォーマットに変換するメソッド def format_standard_property_value(self, property_name: str, value: str): if property_name == "title": return {"title": [{"text": {"content": v

                                                                                  データカタログにNotionを選択した理由
                                                                                • 自分のはてなブックマークをChatGPTにつないだ - Lambdaカクテル

                                                                                  scrapbox.io から派生して、 blog.sushi.money こういうことが可能だとわかった。 はてなブックマークはAtom形式でのエクスポートが可能なので、 はてブにAtomを吐き出させる AtomをJSONに変換する あとは同じ というプロセスで、自分のはてブのコメントを知っている状態のChatGPTのモデルを作ってみた。 コード 一番元々の記事ではPythonで書かれていたコードが、 id:hitode909 のコードではRubyになり、自分のコードだとScala3になっていて面白い。 #!/usr/bin/env -S scala-cli shebang -S 3 // usage: batom2json.scala.sc ~/Downloads/Windymelt.bookmarks.atom > from_bookmark/Windymelt.json // You

                                                                                    自分のはてなブックマークをChatGPTにつないだ - Lambdaカクテル