タグ

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

  • [Google Sheets API] JavaでスプレットシートのメニューとAPIを関連づけてみた - Qiita

    スプレットシートのメニューとGoogle Sheets API使い方のQiita記事を 関連づけた一覧を作成しました。 関連づけてみた所感としては、ほとんどの操作がAPIで対応されているようです。 記事では、Google Sheets API v4(Java)を使用していますが、 ほぼ全てのAPIを網羅しているはず(執筆の時点では) なお、コメント関連の操作はSheets APIには用意されていません。 Google Drive APIでコメントの追加・取得・変更が可能ですが 追加位置の指定はできないようです。(こちらは別途記事にします) No 目次

    [Google Sheets API] JavaでスプレットシートのメニューとAPIを関連づけてみた - Qiita
  • ブラウザ開発者ツールのネットワークタブに表示されない情報送信手法 - Qiita

    はじめに はじめまして、セキュリティエンジニアのSatoki (@satoki00) です。今回はブラウザの開発者ツールのネットワークタブから隠れて、Webサイト内の情報を送信する手法をまとめます。所謂Exfiltrationというやつです。中にはCSPの制限をBypassするために用いられるテクニックもあります。CTFなどで安全に使ってください。 前提 発端はWeb上でテキストの文字数をカウントできるサイトが閉鎖する際の話です。カウント対象のテキストデータがサイト運営 (やサイトを改竄した攻撃者) に盗み取られていないかという議論が巻き起こっていました。「盗み取られていない」側の主張は、ブラウザの開発者ツールのネットワークタブにリクエストを送信した形跡がないというものでした。ここで ブラウザの開発者ツールのネットワークタブに表示がなければ外部へデータを送信していないのか? といった疑問が

    ブラウザ開発者ツールのネットワークタブに表示されない情報送信手法 - Qiita
  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
  • OutOfMemoryError の調べ方 - Qiita

    OutOfMemoryError (以下 OOME)が起こったときにお手上げ状態にならないためにも、 Java のメモリ管理の仕組みとか、 OOME が起こったときの調査方法とかを調べる。 環境 OS Windows 7 > java -version java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) Java 8 で、 Oracle の JVM を前提とした話です。 Java のメモリ管理 これを知っておかないと、 OOME が起こっても、メモリ内で何が起こっていて、どこを調査すべきで、どのように対処したらいいのかが判断できない。 なので、まずは、そもそも J

    OutOfMemoryError の調べ方 - Qiita
  • やっと React Server Components が腑に落ちた - Qiita

    2020 年末に発表された React Server Components は、一言でいうと React コンポーネントをサーバ側でレンダーする仕組みです。……が、初見ではちょっと魔法すぎて訳が分からない技術でもあります。トーク動画だけ見てても「具体的にどんな仕組みで動いてるの?」みたいな疑問が山ほど浮かんでくると思います。 一体裏で何がどうなっているのか、この技術はどう使うのか、デモコードを触りながらやっと具体的に理解しはじめたので、なるべく動作が想像しやすいようにまとめました。なお、この記事単体よりは、他の記事や上記動画を見てある程度概要や公式の売り文句を掴んでからの方が理解しやすいと思います。 これまでの、普通にブラウザで動作するコンポーネントのことを、区別のためにクライアントコンポーネントと呼びます(単に区別のために既存のコンポーネントに別名がついただけです)。以下ではサーバコンポ

    やっと React Server Components が腑に落ちた - Qiita
  • 妄想的DHH理解 - Qiita

    Caution この記事はDHHファンの妄想によるシナリオが多分に含まれます。 というかほとんどです。 成り立ちが間違ってることも当然あるように思うので話半分で読んでください。 これは一体 最近のRailsフロントエンドやDHHの活動には一連の流れがあるわけですが、一部トレンドに沿ってない部分がある故にそれが汲めないというところがあるのではと思います。 それらの流れを記憶が定かなうちにつないで記録しておこうという記事です。 前提知識 Railsの生みの親、Rubyist Basecamp(社) DHHがCTOやってる会社 Basecamp(サービス) Basecamp(社)が開発してるプロジェクト管理ツール Trixを開発してたある日 Basecamp(サービス)に組み込まれてるリッチテキストエディタのtrixをcustomElements使って開発してたある日、DHHはあることに気づく。

    妄想的DHH理解 - Qiita
  • Apollo(GraphQL)+gRPC+WebFlux(Reactive)を利用して2020年のモダンアーキテクチャアプリを作ってみた - Qiita

    Apollo(GraphQL)+gRPC+WebFlux(Reactive)を利用して2020年のモダンアーキテクチャアプリを作ってみたJavaScriptKotlinSpringBootgRPCGraphQL はじめに 記事では2019年から2020年にかけての年末年始を使って開発した、"Hello Worldを出力するアプリ"の話をしたいと思います。 Hello Worldを出力する、と言っても単にフロントエンドReactの<p>Hello, World!</p>と書いて出力したという話ではなく、 フロントエンドApollo Clientを使ってGraphQLでQuery/Mutationのリクエストを行い、 BFF(Backend For Frontend)のApollo ServerでGraphQLのリクエストに応じたgRPCのリクエストをバックエンドへ内部的に行い、 バック

    Apollo(GraphQL)+gRPC+WebFlux(Reactive)を利用して2020年のモダンアーキテクチャアプリを作ってみた - Qiita
  • Firebase AuthなどJavaScriptでAPIセッション用のトークンを得ることについて - Qiita

    ちょっとでもセキュリティに自信がないなら、 Firebase Authentication を検討しよう (※ こちらの参照記事の内容自体に不備があるとか甘いとか指摘するものではないんですが、勝手に枕として使わせてもらいます) 上記記事は、Firebase Authenticationが提供するJavaScript APIを使ってJWTのトークンを取得し、自前のサーバにHTTPのヘッダで送りつけて検証をさせることで、認証の仕組みをセキュアかつかんたんに実現しよう、という内容です。 このようにJavaScriptAPIでトークンを発行して自前バックエンドのAPI認証につかう方法はAuth0のSDKなどでも行われていますので、IDaaSをつかってSPAを開発する場合には一般的なのかもしれません。 話は変わりますが、SPAの開発に携わっている方は「localStorageにはセッション用のトー

    Firebase AuthなどJavaScriptでAPIセッション用のトークンを得ることについて - Qiita
  • KtorのFeaturesの実行Phaseがどう定義されているのかを知る - Qiita

    はじめに こんにちは。リクルートライフスタイルでAndroidアプリを開発をしている@ykoyanoです。 KtorでCustom Featureを作ろうとした際、そもそもFeaturesの実行されるタイミングがどこで定義されているのかを把握したくてKtorの実装について調べたのですが、今回はそこで得たものをメモ代わりに少し整理して紹介したいと思います。 KtorとはJetbrains社製のWebアプリケーションフレームワークです。 KtorはPrinciplesにもあるように、Unopinionated, Asynchronous, Testableを原則とした軽量かつ拡張性の高いフレームワークです1 KtorでどのようにWebアプリケーションが実装できるのか知りたい方は、以下のレポジトリを覗いてみると参考になるかもしれません。 kweet youkube kotlin-ktor-exp

    KtorのFeaturesの実行Phaseがどう定義されているのかを知る - Qiita
  • 経年劣化に耐える ReactComponent の書き方 - Qiita

    「経年劣化に耐えるコード」というのは、だれもが目指すものでしょう。「そもそもフロントエンドのコードは、今ある技術で最良のものを書き捨てるべき」という意見も理解できますが「備えあれば憂いなし」ということもありますので、ここにメモを残します。あくまで、私なりのベストプラクティスですのでご了承ください。 5層に別れた SFC 私はレイヤーによる技術の分離で、ReactComponent の経年劣化に備えています。ここでいうSFCとは「Stateless Functional Component」の略称ではありません。Vue.js の文脈にある「Single File Component」を指します。 // (1) import層 import React from 'react' import styled from 'styled-components' // (2) Types層 type

    経年劣化に耐える ReactComponent の書き方 - Qiita
  • 3つだけ覚える「flexbox」の使い方 - Qiita

    3行で説明、flexboxとは CSS3から導入されたfloatに変わる新しいレイアウト方法です。 伸びたり並んだりします。 俺、flexboxのプロパティ何回ググるんだろう問題 flexboxのプロパティめっちゃ多いですね。正直覚えきれませんし、覚えるつもりもなくなってきます。それに、別に複雑なことをやりたいわけではないですね。 具体的には、下記のようなことができれば十分なんです。 リキッド2カラムレイアウト スティッキーフッタ(最下部に吸い付くフッタ) この程度のものであれば、覚えるべきflexbox関連のCSSプロパティの数も絞れそうです。 覚えておくべき3つのプロパティ display: flex flex: 1 flex-direction: column これだけでわりとこなせます。以下で、実例をもとに説明します。 2カラムレイアウト さて、よくある2カラムレイアウトです。 で

    3つだけ覚える「flexbox」の使い方 - Qiita
  • DockerfileのCMDとENTRYPOINTを改めて解説する - Qiita

    TL;DR dockerで、コンテナ内で実行するプロセスを指定してのコンテナ起動方法は以下のとおり。 docker run <コンテナ指定> <プロセス指定> [ <プロセスに与える引数指定> ] docker runで、起動するプロセスを毎回指定するのが面倒で、決まった特定のプロセスを指定したいなら、以下のどれかを選択する。 (ENTRYPOINTを指定しない場合) DockerfileのCMD項目でプロセスおよびそれへの引数を指定する。この場合、docker run <コンテナ指定> [RET] のようにプロセス指定を省略して起動したときに、CMD項目で指定した内容が起動するプロセスのおよびそれへの引数の指定となる。 docker run <コンテナ指定> <プロセス指定> [ <プロセスに与える引数指定> ] <----------CMDで省略値を与えられる---------> (E

    DockerfileのCMDとENTRYPOINTを改めて解説する - Qiita
  • JavaScript・TypeScriptのimport・exportの依存関係を可視化するcode-dependencyの紹介 - Qiita

    追記情報 v0.5.0で.vueの拡張子もサポートするようになりました。 はじめに 現在のJavaScriptはexport、importによるモジュールの切り離しと結合が可能であるため。大きなプロジェクトに成長させることができます。 実装が進むにつれてファイル間の依存が複雑になっていき、実装全体の依存関係を把握するのが難しくなっていきます。これはプロジェクトに対して新しいメンバーが増えたときに、コードリーディングの時間を十分に取る必要があります。また、OSSのライブラリに貢献したいときも同様の状況が生まれるでしょう。特に後者は開発メンバーが近くにいるとも限らず、他国の方である可能性も十分に高いため開発に参加するための準備が必要になります。 このような、全体の依存関係の設計を見直したい場合や、新たに開発に参画する場合により短時間に理解を深めるためのツールを作成したので紹介します。 @cod

    JavaScript・TypeScriptのimport・exportの依存関係を可視化するcode-dependencyの紹介 - Qiita
  • react-redux の Hooks API に Generics は要らない - Qiita

    export type StoreState = { hoge: { hoge: 'hoge' } fuga: { fuga: 'fuga' } } StoreState の型定義方法は数通りありますが、この様な型定義があることが前提です。 普通に書くとこうなる この条件でuseSelectorを利用してみます。useSelectorの Generics に従い、都度StoreStateを import し、それを注入しています。なんだかあまりイケてません。 import { useSelector } from 'react-redux' import { StoreState } from '../store' const Container: React.FC = () => { // const _hoge: "hoge" const _hoge = useSelector< St

    react-redux の Hooks API に Generics は要らない - Qiita
  • 日付時刻操作ライブラリをmomentからdayjsへ乗り換えた - Qiita

    この記事は「DeNAその2 Advent Calendar 2018」16日目の記事です。 背景 JavaScriptの日付時刻操作は罠が多く、コードのメンテナンスも行いにくいため、 GitHub Star数が4万に迫っていて、安定感のあるmomentをこれまで採用してきました。 参考: https://qiita.com/labocho/items/5fbaa0491b67221419b4 しかし、momentはファイルサイズが大きく、jsのバンドルサイズが肥大化する原因にもなっていました。 そんな時、Vue Fes Japan 2018の公演の中だったり、有識者の記事の中だったりで、momentではない他の日付時刻操作ライブラリを採用しているケースを知り、今回調べてみることにしました。 以下は検討するきっかけとなった資料です。 noteをNuxt.jsで再構築した話 Netlify+N

    日付時刻操作ライブラリをmomentからdayjsへ乗り換えた - Qiita
  • GCPの新しいシークレット管理ツール、Berglasを使ってみる - Qiita

    BerglasはGoogleが先日公開した、GCP向けの新しいシークレット管理ツールです。 内部的にはCloud KMSとCloud Storageが使われているみたいですね。 GKE、Cloud Functions、Cloud Build、Cloud Run等から比較的簡単に、登録した秘匿情報を取得することができそうです。 セットアップ gloudコマンドの導入や、アカウントの認証などは完了している前提で進めます。 BerglasはGoのパッケージとして動作するので、まずはこちらをインストールします(Goの環境構築に関しての説明は省きます)。 go get github.com/GoogleCloudPlatform/berglas/... go install github.com/GoogleCloudPlatform/berglas

    GCPの新しいシークレット管理ツール、Berglasを使ってみる - Qiita
  • 中規模プロジェクトでの GCP権限管理(アクセス制御)ベストプラクティス - Qiita

    GCP(Google Cloud Platform)の開発・運用者へ付与する権限の管理について、現状のベストプラクティスを考えてみました。 ※Googleが推奨する権限管理の形とは異なる部分があります。あくまで個人の考えたベストプラクティスですので、ご了承下さい。 目次 はじめに なぜ権限管理が必要なのか どうしたいのか GCPの権限管理 アクセスする主体と役割の管理方法 アクセス対象と権限の管理方法 GCP権限周りの困りポイント・注意すべきポイント こんな運用もあり 現状のベストプラクティス ←時間のない人はこちら コード化して管理する 運用してみて良かったこと・課題と今後 おわりに はじめに GCPの権限管理(IAM)周りについての基礎知識はこちら。 Cloud IAM 概念 Google Cloud Platform(GCP)のCloud IAM Qiita記事, GSuiteやCl

    中規模プロジェクトでの GCP権限管理(アクセス制御)ベストプラクティス - Qiita
  • GoogleAppEngineスタンダード環境のPython3サポートはもう少し話題になっていいと思う - Qiita

    お知らせ タイトルの通りですが、2018年7月にGoogleAppEngineスタンダード環境におけるPython3.7サポートがアナウンスされました。(まだベータですが) https://cloudplatform.googleblog.com/2018/07/bringing-the-best-of-serverless-to-you.html 長らくPython2系のみのサポートだったため個人的には非常に喜ばしいニュースでしたが、特に話題になっていないようなので、念のためこちらでもお知らせしておきます。 伝えたかったことは以上なのですが、AppEngineは少しサービスとして分かりにくいところもあり、「スタンダード環境って何?」といった疑問もあるかと思いますので、AppEngineについてPythonとの関連を中心に簡単に説明したいと思います。 また、今回サポートされたPython3

    GoogleAppEngineスタンダード環境のPython3サポートはもう少し話題になっていいと思う - Qiita
  • Spanner - Qiita

    これまで多くのトランザクションの要素技術を説明してきた。 Googleの公開している論文Spanner: Google's Globally-Distributed Database は公開当初、要求される専門技術の多さからよくわからないと言っている人が多かったが、これまでに説明した要素技術をベースにすると理解しやすい。 Spannerとは 複数のデータセンターに跨ってデータベースの内容を複製し続ける事で高い可用性を実現するという構想は数多くあった。 しかしそれらの分散データベースは実用的な速度を実現しようとすると、データモデルがただのRDBより単純化して使いにくかったりトランザクションをサポートしなかったりと、アプリケーションの一貫性を実現するのが難しい。 現にGoogleの社内でもBigtableなどを用いたアプリケーションは複数あるものの、それぞれでそのデータモデルの上で無理やりトラ

    Spanner - Qiita
  • Googleが大量の機械学習用データベースを無料公開してた - Qiita

    個人用メモです。 機械学習は素材集めがとても大変です。 でもこの素材集め、実は無理してやらなくても、元から良質な無料データベースがあったようなのです。 URLはこちら YouTube8-M https://research.google.com/youtube8m/explore.html 提供されているサービスは以下の通り 800万個の動画 19億個のフレーム 4800個の分類 使い方はExploreから画像セットを探し、ダウンロードするだけ。 他の方法も見つけた open images dataset 「すごい神だな」と思ったのは これもう完成されてますよね もちろんこの認識前の画像もセットでダウンロードできます。 Youtube-8Mとは、画像数を取るか、精度で取るか、という違いでしょうか。 他にも良い素材集を教えていただきました (はてなブックマーク情報 @sek_165 さん )

    Googleが大量の機械学習用データベースを無料公開してた - Qiita