ブックマーク / qiita.com (242)

  • ライブラリの実装からCursor-based paginationにおけるcursorのフォーマットのベストプラクティスを探る - Qiita

    ライブラリの実装からCursor-based paginationにおけるcursorのフォーマットのベストプラクティスを探るGraphQL この記事は GraphQL Advent Calendar 2020 13 日目の記事です。 前回の記事は @maaz118 さんの GraphQL の @defer, @stream ディレクティブを試してみる でした。 GraphQLにおける2つのPagination方式 Offset-basedとCursor-based GraphQLにおけるpaginationには、Offset-based paginationとCursor-based paginationの2つが主な方法としてあります。 GraphQLの公式ページには3つの例が載っています。 https://graphql.org/learn/pagination/#pagination

    ライブラリの実装からCursor-based paginationにおけるcursorのフォーマットのベストプラクティスを探る - Qiita
    joe-re
    joe-re 2020/12/14
    書きました。ちょい遅れましたすみません
  • GraphQLと相性の良いORM Prisma - Qiita

    この記事は GraphQL Advent Calendar 2020 10 日目の記事です。 前回の記事は @mtsmfm さんの Swiftgraphql-codegen plugin の graphql-codegen-swift-operations を作った でした。 はじめに PrismaはGraphQLを実装するためのクライアントライブラリ,ORM(Prisma1においてはGraphQLサーバ自体も含む)として広く知られていると思いますが、Prismaはversion2(以下、ただのPrismaと書いている箇所はPrisma2を指します)より、ORM部分に注力し、GraphQLとは直接関係ない方向に成長していく方向に舵を取っています。 (参考: https://www.prisma.io/blog/prisma-2-is-coming-soon-mwwfhevie993)

    GraphQLと相性の良いORM Prisma - Qiita
    joe-re
    joe-re 2020/12/11
    書きました。ちょっと遅れましたすみません
  • 転職したらKubernetesだった件 - Qiita

    TL;DR Kubernetes がどのように、人間の作業を自動化しているのかを、実際に Kubernetes がやっている作業を手作業で行なう ことで学びましょう。 このQiita の内容は、CloudNative Days Tokyo 2019 における発表の、「転職したらKubernetesだった件」を書き下ろし、実際にデモが行えるように修正を加えたものになります。 YouTube Speakerdeck この物語はフィクションであり、登場する団体名・会社名・人名等は架空のもので、実在する団体・会社・人物等とは、一切、関係がありません。 これまでのあらすじ ある日、某Z社に転職した稲津さんに与えられた仕事は、“Kubernetes の一員”になることだった!? 某Z社は、親会社からの依頼で Kubernetes クラスタを運用しなければならなくなりましたが、 「Kubernetes

    転職したらKubernetesだった件 - Qiita
    joe-re
    joe-re 2020/06/03
    面白かった
  • なぜRustを学ぶべきなのか 〜 5年経った今改めてまとめてみる - Qiita

    Rust 1.0がリリースされたのは2015年の5月で、5年前のこととなります。自分は1.0 betaのころにRustを始めたので、なかなか感慨深いものです。この5年の間に、いくつもの企業でRustを採用、もしくはその検討がされるようになり、ゆるやかであるもののRustの普及が進んでいると感じます。 そこで、1.0から5年経ち、だんだんと普及しつつあるこの時期に、なぜRustを使うべき、学ぶべきなのか、改めてまとめてみようかと思います。Rustを簡単に紹介する場合、メモリ安全とパフォーマンスの両立、高い生産性をもたらす言語機能などが挙げられることが多いですが、自分なりにRustを学ぶ意味を掘り下げてみようと思います。 なお、以下の文章はほとんど個人的な経験に基づいて書かれたものですので、その点はご注意下さい。 Rustはほどよい機能を提供する言語である 世の中には様々なプログラミング言語が

    なぜRustを学ぶべきなのか 〜 5年経った今改めてまとめてみる - Qiita
    joe-re
    joe-re 2020/05/20
    もう五年経ったのかぁ。月日が経つのは早い
  • すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita

    sqlsとは sqlsとは、いま私が開発中のSQL用Language Serverです。SQLをエディタで編集するときの支援機能を実装したサーバとなっており、主な特徴は以下です。 Language ServerなのでLSクライアントが存在するエディタであればどんなエディタでも利用可能 SQL編集支援機能 自動補完(テーブル名、カラム名など) 定義参照 SQL実行 複数のRDSMSに対応 MySQL PostgreSQL SQLite3 Language Serverとは Language Server(あるいはLanguage Server Protocol)とは、プログラム言語の開発支援機能をエディタに提供するサーバ、およびその通信内容を規定したプロトコルです。ただしサーバといってもほとんどの場合ローカル内にホスティングしてローカルのエディタと通信をします。 ここでは主題ではないので詳し

    すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita
    joe-re
    joe-re 2020/05/16
    記事で述べられてるsql-language-serverの作者ですが最近更新してなくてすみません。。一応insertやupdateは対応中のブランチは手元にあるもののまだpushしてない。。同じSQLのLanguage Serverを作っているものとして頑張りたい
  • ORM成分高めで帰ってきたPrisma 2 - Qiita

    はじめに 少し前にPrisma 2のpreviewがアナウンスされたので、素振りがてら調べてみました。 まだPreviewのため、実装やAPIは大きく変更される可能性があります Prisma 1 v.s. Prisma 2 Prisma 1 ってなんだっけ そもそもPrisma is 何をおさらいしておくと、Prismaは元来graphcoolというGraphQL as a Serviceのバックエンド部分を切り出したフレームワークです。 https://www.prisma.io/blog/prisma-raises-4-5m-to-build-the-graphql-data-layer-for-all-databases-663484df0f60 より また、prisma - 最速 GraphQL Server実装にも書いてある通り、 GraphQL の形をした ORM MySQL/

    ORM成分高めで帰ってきたPrisma 2 - Qiita
    joe-re
    joe-re 2019/08/15
  • Vim script で機械学習 - Qiita

    この記事は Vim Advent Calendar 2018 の最終日 25 日目の記事です。昨日は rhysd さんの「Vim の構文ハイライトでクリスマスツリー🎄を飾ってメリクリする」でした。今年も Vim Advent Calendar は完走しました。皆さんお疲れさまでした。 はじめに 昨今 Vim script は目覚ましい進化を遂げ、Vim script からタイマーも実行でき、プロセスを起動して非同期に通信できる様にもなりました。以前の様にコマンドを実行して Vim でのテキスト入力を妨げる事も少なくなってきました。 Vim script が扱える数値も既に64bit化されています。現在 pull-request されている blob 型 も入れば、ほぼ他の言語と同等の機能を得たと言えるでしょう。1 しかしながら世の中のプログラミング言語は機械学習へと足を延ばし、大量のデー

    Vim script で機械学習 - Qiita
    joe-re
    joe-re 2018/12/25
    やばすぎて語彙力を失う
  • Go 2のgenerics/contract簡易まとめ

    Help us understand the problem. What is going on with this article?

    Go 2のgenerics/contract簡易まとめ
    joe-re
    joe-re 2018/09/22
  • TypeScript 3.0.0-RC 変更点 - Qiita

    こんにちはメルペイ社な@vvakameです。 TypeScript 3.0 RCがアナウンスされました。 What's new in TypeScriptも更新されているようです。 破壊的変更もあるよ! この辺に僕が試した時のコードを投げてあります。 変更点まとめ プロジェクト間の参照のサポート Support for project references/composite projects 2 3 4 5 6 monorepo的構造の中で過ごしやすくなったっぽいですね compilerOptions.composite と references がtsconfig.jsonに追加 依存先プロジェクトの型が変わるような変更があったら適当にビルドしてくれる --build, -b の追加 実質 --build はサブコマンドみたいな感じのようだ --verbose, --dry, --cl

    TypeScript 3.0.0-RC 変更点 - Qiita
    joe-re
    joe-re 2018/07/17
  • ry/denoをビルドする (Node.jsの産みの親が作ったTypeScript+V8処理系) - Qiita

    ry/deno: A secure TypeScript runtime on V8はNode.jsの産みの親が、Node.jsでの反省点を元に新しい考え方に基づいて作ったTypeScript処理系です。TypeScript + V8で、Golangで書かれています。 Node.js における設計ミス By Ryan Dahl - from scratchというブログで、Node.jsの産みの親が作ったプロダクトだったことと、Node.jsの設計上の問題について挙げられていて、その問題点というのがとても同感でずっと引っかかってた事ばかりなので、これはもうdenoやるしかないのではという気持ちになったのでとりあえずビルドしてみました。 Golangのセットアップ denoGolangで書かれているのでGolangをセットアップしておいてください。 anyenv + goenvを使っている場

    ry/denoをビルドする (Node.jsの産みの親が作ったTypeScript+V8処理系) - Qiita
    joe-re
    joe-re 2018/06/13
  • Amazon Auroraの先進性を誰も解説してくれないから解説する - Qiita

    TL;DR; Amazon AuroraはIn-Memory DBでもなくDisk-Oriented DBでもなく、In-KVS DBとでも呼ぶべき新地平に立っている。 その斬新さたるやマスターのメインメモリはキャッシュでありながらWrite-BackでもなくWrite-Throughでもないという驚天動地。 ついでに従来のチェックポイント処理も不要になったのでスループットも向上した。 詳細が気になる人はこの記事をチェキ! Amazon AuroraAWSの中で利用可能なマネージド(=運用をAWSが面倒見てくれる)なデータベースサービス。 ユーザーからはただのMySQL、もしくはPostgreSQLとして扱う事ができるのでそれらに依存する既存のアプリケーション資産をそのまま利用する事ができて、落ちたら再起動したりセキュリティパッチをダウンタイムなしで(!?)適用したりなどなどセールストー

    Amazon Auroraの先進性を誰も解説してくれないから解説する - Qiita
    joe-re
    joe-re 2018/06/08
  • TypeScript 2.8.1 変更点 - Qiita

    こんにちはソウゾウ社な@vvakameです。 TypeScript 2.8.1がアナウンスされました。 What's new in TypeScriptも更新されているようです。 破壊的変更もあるよ! 今回からこの辺に僕が試した時のコードを投げておくことにしました。 変更点まとめ Conditional types(条件付きの型) Conditional types T extends U ? X : Y みたいなの書ける Conditional typesでの型推論 Type inference in conditional types infer の導入 ある型に式を当てはめた結果、得られた型推論の型を新たな型パラメタとして利用可能 type ReturnType<T> = T extends (...args: any[]) => infer R ? R : T; こういう R が新

    TypeScript 2.8.1 変更点 - Qiita
    joe-re
    joe-re 2018/03/29
  • Reduxは不要ではないか? - Qiita

    僕の職はサーバーサイドなのですが、半年くらいReactとReduxを使ったフロント部分を触ったので、書きたいと思います。 先にReact.jsについてですが、家がチュートリアルをしっかりと用意しており、学習コストも高くなく、悪くないものだなと思いました。 しかし、Reduxが入った途端、めっちゃ複雑になった印象があります。chromeのプラグインを入れて開発するのが普通とか言われたのですが、そんなものを使わないと作業できないくらいに複雑で辛いなぁという印象です(Javascriptは、console.logがあれば、ほぼ開発できる気がします。) ここから先は、こんなこと考える人も居るんだなぁ程度で見てください。Reduxが好きな人はすごく嫌な記事かもしれません。その場合は、ここでそっ閉じしてください。 Reduxはモダンだから採用した これよく聴くのですが、当に辞めてほしいです。jQ

    Reduxは不要ではないか? - Qiita
    joe-re
    joe-re 2018/02/23
    Reduxに学習コストは確かにあると思うけど、設計を複雑にはしないし、より複雑になっているのは学習コストを払いきれていないだけ。払う学習コストにメリットが釣り合わないならjQueryを使うべきというのは同意
  • “Web Componentsだけ” で新サービスを実装して見えたこと - Qiita

    Double O というサービスを作りました。 フロントエンドはピュアな Web Components を採用していて、バックエンドは Lambda と DynamoDB のみで構成しました。 (厳密には CloudFront とか API Gateway とかもあるけどそこは省いていいよね?) REST API 以外の Util 系の Lambda 関数はすべて AWS Cloud9 で管理することで環境構築も不要な Lambda ができて楽でした。 TL;DR サーバーレスについてはごく普通のことしかしていないので、詳しくは触れないでおきます。 ピュアな Web Components だけでサービスを成立させることができた。 HTMLElement クラスを継承するだけなのでメジャーライブラリは不要になった。 Web Components の Custom Elements は標準仕様

    “Web Componentsだけ” で新サービスを実装して見えたこと - Qiita
    joe-re
    joe-re 2018/02/16
  • プログラムのネーミングに迷ったら GitHub でコード検索すると参考になる説 - Qiita

    TL;DR プログラムのネーミングで迷ったら GitHub でキーワードを検索して、ヒットした件数が参考になるのでは? 複数キーワードを検索して結果の一覧を表示する CLI 作りました https://github.com/kyoshidajp/ghkw ネーミング迷いますよね? みなさん、コードを書いていて変数やメソッド名のネーミングって迷いますね。 こんな時に自分たちはチームを横断して「こういう名前考えたんだけど、これってどうかな?」という確認を Slack 上で行っています。先日、この Slack チャンネルを見ていて考えました。 「GitHub で検索すれば世の中のコードでどのぐらい使われているかざっくり分かるので参考になるのでは?説」 GitHub で検索できるという条件付きではありますが、コードの規模からするとある程度期待できそうです。 GitHub で検索 例えば「除外条件」

    プログラムのネーミングに迷ったら GitHub でコード検索すると参考になる説 - Qiita
    joe-re
    joe-re 2018/02/07
    便利そう
  • 機械学習でギターアンプをモデリングする - Qiita

    2018/2/6追記 Twitter等で質問を頂いたので、その回答などを末尾に補足として追記しました。 2018/2/9追記 ソースコードを公開しました。 https://github.com/coz-a/Audio-Effect-Replicator サマリ LSTMを使って、ギターアンプの音をシミュレートした。 はじめに 昨年の夏にCNNを使ったギター画像の分類にチャレンジしましたが、引き続きギター関連のネタです。今回は音で遊びます。 ご存知の方が多いかと思いますが、さまざまな音源で聞けるエレクトリック・ギターの音は、通常、ギターアンプから出た音です。ギターの出力を直接ミキサーやパソコンのオーディオIFに入力して録音しても、所謂「エレキギターの音」にはなりません。ギターの信号が、アンプの真空管やスピーカーを通して歪むことで、初めてエレキギターらしい音になるのです。 このアンプの歪みをシ

    機械学習でギターアンプをモデリングする - Qiita
    joe-re
    joe-re 2018/02/05
    なるほどー。面白い
  • Vue.jsにおけるRender PropとScoped Slotsについて - Qiita

    こんにちは。転職によりReact畑からVue畑に乗り換えることになったフロントエンドエンジニアです。 Vueでも描画関数使ってればRender Propsも使えるじゃんと思ったところ、Vue.js 作者のEvan You曰く「Render PropパターンはVue.jsにおけるScoped Slotsと同じ」とのこと。 In case you are wondering what’s the equivalent pattern in Vue, it’s called scoped slots (and if using JSX it works the same as React) — Evan You (@youyuxi) 2017年9月25日 当にそうなのか簡単な実装例を用意してみました。 まず、そもそものRender Propを使う目的としては 「コードの再利用性を高めるための実

    Vue.jsにおけるRender PropとScoped Slotsについて - Qiita
    joe-re
    joe-re 2018/02/05
  • TypeScript 2.7.1 変更点 - Qiita

    こんにちはソウゾウ社な@vvakameです。 今回はちょっと遅くなってしまいました…。 TypeScript 2.7.1がアナウンスされました。 What's new in TypeScriptも更新されているようです。 破壊的変更もあるよ! 変更点まとめ クラスのフィールドの初期化チェックをより厳密に行う Stricter class property checks --strictPropertyInitialization が追加 --strict に含まれる ? 無しの場合コンストラクタ内で初期化しないとダメ 変数末尾に ! をつけることで初期化チェックを割愛できる Definite assignment assertions CommonJSなモジュールのimportがbabelとか互換になる Easier ECMAScript module interoperability -

    TypeScript 2.7.1 変更点 - Qiita
    joe-re
    joe-re 2018/02/05
  • 今日から始める人のためのKubernetes on AWSベストプラクティス - Qiita

    今年一年Kubernetes on AWSをやってきて、kube-awsメンテナ目線で、「今日から、できるだけ楽に、安定して番運用」するための個人的ベスト・プラクティスをまとめておきます。 TL;DR EKSはまだプレビュー申込の段階。実際に動くものがあるかもわからない。 EKSとkops、kube-aws、kubesprayなどは組み合わせて使うもの。代替えにはならない。 SaaSありなら分散ログ、分散トレース、リソースモニタリングはDatadogに寄せると運用が楽 istioは安心して番運用できるフェーズではない(Service Meshが必要なら、まだLinkerdのほうがよい) アプリケーションにPrometheusエンドポイントを生やしてメトリクスを取れるようにすべき アプリケーションはOpenTracingやZipkin、Jaegerなどのトレーサを組み込み、Zipkin

    今日から始める人のためのKubernetes on AWSベストプラクティス - Qiita
    joe-re
    joe-re 2018/01/05
  • 2018 年は Hyperapp の年だ - Qiita

    この投稿は Increments Advent Calendar 2017 の14日目の記事だよ。Hyperapp という JavaScript ビューライブラリを自作しているので、その説明と作った理由について話す。 Hyperapp ができるまでのプロセスや、どんな価値観で作ったかなどを書く。新しいフレームワークを作る時の参考になれば嬉しい。 Hyperapp とは? Web アプリのフロントエンドJavaScript ライブラリ。React, Preact, Vue といった代表的なものよりもずっと小さく、1 KB という超軽量サイズ。他のライブラリに依存することなく使えて、さらにスピードもある Elmアーキテクチャーに基づいてて、アプリケーション設計はElmReact、Reduxと似てるけど、ボイラープレートは少ないし、TypeScriptにも対応して、とにかくシンプル。 El

    2018 年は Hyperapp の年だ - Qiita
    joe-re
    joe-re 2017/12/28