タグ

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

  • Slack Botの種類と大まかな作り方 - Qiita

    「Bot users」の作り方がいくつかあるため、別々に記述しています。簡易なものならWebサーバーは不要ですが、凝ったことをやろうとするとwebhookのためにwebサーバーとして稼働させる必要があります。 最後の「Unfurling links」(リンク展開)はいわゆるbotの自動処理などとは違うのですが、他のものより少し特殊なので別枠として表記しています。 Slackでは上記のような機能をひとまとめのパッケージとしたものを 「Slack App」というようです。 上記の Incoming webhooksや簡易なBotなどはworkspaceに対して単体でも設定できますが、一部の設定は Slack Appでなければ使えないものがあります。 一度単体で作成したBotを、あとから App に変換するようなことはできないようです。 印象としては、自動連携機能はSlack Appに統一してい

    Slack Botの種類と大まかな作り方 - Qiita
  • Redux Hooks によるラクラク dispatch & states - Qiita

    日 (2019/06/11) React-Redux の version 7.1 がリリースされて、 Redux Hooks が使用できるようになりました。 Redux Hooks によって、connect() を利用しなくても、各コンポーネントとdispatch, state が簡便に利用できるようになります。 サンプルコードです。Action, Reducer 部分は省略です。 ただシンプルにカウンターの数値を増減させるだけのコンポーネントです。 import React from "react"; import { useDispatch, useSelector } from "react-redux"; import { incrementAction, decrementAction } from "./Actions"; const counterSelector = st

    Redux Hooks によるラクラク dispatch & states - Qiita
  • Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。 - Qiita

    自分は普段はChromeのブックマークを使ってよく見返す記事を保存しています。Goを一年間書いてきてブックマークを整理したのですが、せっかくなのでお世話になったブックマーク記事を晒します。 Blog & Serial The Go Blog Goの公式ブログ。深いところまでしっかり書かれているので、調べたいトピックはまずはここで調べたい。 https://blog.golang.org/ Practical Go GoのcontributorであるDave Cheneyさんのブログです。Goで開発&運用する上でのアドバイスが書かれており、入門記事だけでは得られないノウハウがふんだんにまとめられています。 https://dave.cheney.net/practical-go Goならわかるシステムプログラミング @shibukawaさんの連載です。Go低レイヤーを学んでいきます。根底の

    Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。 - Qiita
  • <script> タグに async / defer を付けた場合のタイミング - Qiita

    HTML5 においては、<script> タグに、defer や async 属性を付与することで、これらの読込が HTML パースを妨害しないようにすることができます。これにより、サイトのメインコンテンツの読込がある程度高速化されます。 async にせよ defer にせよ、それほど詳細に動作を解説した記事が見つかりませんでしたので、記事では、これらの動作について解説します。 イベントについて まずは、async と defer の挙動を理解するために重要な、2つのイベントについて理解しましょう。 両者とも、MDN に十分な情報があるため、記事ではそれほど詳細には解説しません。 DOMContentLoaded HTML のパースが完了した直後に発火します。 MDN load HTML のパースが完了し、CSS や画像などのダウンロードと表示、JavaScript ファイルのダウン

    <script> タグに async / defer を付けた場合のタイミング - Qiita
    yuzu441
    yuzu441 2019/10/09
  • GAE と Angular で普通の SPA の作り方 〜 導入編 - Qiita

    はじめに Google App Engine をバックエンドサーバーとして動く普通の Angular アプリケーションの作り方を紹介していく。 今回は導入編としてアプリケーションのひな形を作って通信ができるだけのところまでやってみる。 準備 Go, Node.js のインストール Google Cloud SDK のインストール GAE のローカル開発サーバーなどが入っているので公式ドキュメントの通りにインストールする Angular CLI のインストール Angular CLI を使って Angular プロジェクトの初期化や管理ができるのでREADME.mdに従ってインストールする プロジェクトルートの作成 $GOPATH の通っているディレクトリにプロジェクトルートを作成する 以下は github.com で公開し、ユーザー名が you で、プロジェクト名が gae-angular

    GAE と Angular で普通の SPA の作り方 〜 導入編 - Qiita
    yuzu441
    yuzu441 2019/09/29
  • vscode上でtypescriptのeslintを有効にする - Qiita

    VSCode の Eslint プラグインはデフォルトの状態だと.js,.jsxファイルにしか反応しない。 いざtypescriptを導入すると、cli上ではうまく動くが、エディタ上で赤く表示されないのでどこにエラーが起きているかがわかりにくい。 なので、eslintの設定で.ts,.tsxも表示してくれる様に設定を変更する必要がある。 以下の設定をVSCodeの設定に追加する。 { "eslint.validate": [ "javascript", "javascriptreact", { "language": "typescript", "autoFix": true }, { "language": "typescriptreact", "autoFix": true } ] } デフォルトでは ["javascript","javascriptreact"]となっている。 ty

    vscode上でtypescriptのeslintを有効にする - Qiita
  • 今日から使えるライブラリ製作者のための Rollup 実践教室 - Qiita

    Rollup について Rollup は Webpack などと同じモジュールバンドラーと呼ばれるものの一種で、複数のファイルやモジュールからなる JavaScript ライブラリを1ファイルにまとめて特定のモジュール形式にあわせて出力するツールだ。 React の開発者が Webpack for apps, and Rollup for libraries と述べているように1、ライブラリ開発に格段に向いており、使用例が増えている。 エントリでは単なる入門ではなく、実際に使える設定を具体例とともに示していく。NPM でパッケージを公開している人はぜひ導入を検討してみてほしい。とくにビルドのためだけに gulp を使っている人はその簡潔さに驚くだろう。 インストール 例によって npm でインストールする。なお、下の "i" は "install"、"D" は "--save-dev"

    今日から使えるライブラリ製作者のための Rollup 実践教室 - Qiita
  • ロードを高速化するprefetch - Qiita

    記事は、こちらの記事を参考にまとめています。 Prefetchとは ユーザーが次に訪問するページを開発者がわかっている場合、次のページの準備しておいたら早くない?みたいな。前もって準備できるものはしておく、そうすれば処理早いよね、要は先読みするってこと。 ここでは、先読みする3つの方法があります。 - DNS Prefetching - Link Prefetching - Page Prefetching / Prerendering DNS Prefetching DNSとは、ホスト名をIPアドレスに変換するプロトコル。いわゆる名前解決と呼ばれる仕組み。例えば、ページの中にFacebook/Twitterウィジェット、google analyticsなど、外部URLからリソースを取得する要素がある場合、ブラウザはdocumentの上部から解釈し、外部URLを見つけた時点で外部URLへ

    ロードを高速化するprefetch - Qiita
    yuzu441
    yuzu441 2019/08/14
  • 初めて0からDB設計してみてやらかしたこと - Qiita

    背景 つい先日、自分の担当プロダクトがひとまずα版リリースしました。 これまでのキャリアでは既存システムの拡張などが多く、ビジネスとしては自分で0からDBのテーブル設計をする機会がなかったため、キャッキャしながら今回初めてすべての設計をしたのですが、現実は厳しい。結構な数の失敗をしてしまいました。 この記事では、そんな「失敗したな〜」と思った設計についてまとめて、供養にしようと思います。 失敗したテーブル定義 というわけで、よかれと思ってテーブル定義してみたらつらかったことたち。 ネット広告系の会社なので、広告のデータ構造のサンプル多めです。 過度なテーブル分割 広告テーブル id name status bid url

    初めて0からDB設計してみてやらかしたこと - Qiita
  • Linuxコマンド(Bash)でバックグラウンド実行する方法のまとめメモ - Qiita

    bashコマンドのバックグランド実行方法について、まとまっている記事が見つからなかったのでまとめメモ 通常のバックグラウンド実行 &でバックグランド実行 参考:http://kazmax.zpp.jp/linux_beginner/process_background.html もっとも基的なバックグランド実行、コマンドの後ろに&をつけて実行する。 ターミナルの切断が切れたりしてログアウトした場合に、 この方法で実行したプロセスはkillされてしまうので注意する。 途切れたら困る処理の場合はtmuxのセッション上で実行、 もしくは後述するnohupコマンドでのバックグラウンド実行推奨。 # バックグラウンド実行 $ sleep 5 & [1] 21871 # プロセス確認 $ ps $! # ps 21871 PID TTY STAT TIME COMMAND 21871 pts/0 S

    Linuxコマンド(Bash)でバックグラウンド実行する方法のまとめメモ - Qiita
    yuzu441
    yuzu441 2019/07/30
  • Docker一括削除コマンドまとめ - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    Docker一括削除コマンドまとめ - Qiita
  • puppeteerでよく使うであろう処理の書き方 - Qiita

    puppeteer https://github.com/GoogleChrome/puppeteer/releases puppeteerを触ってみて自分がよく使う書き方を載せたら これから始めてみようかなって人に需要あるんじゃないかと書いてみます Basic認証突破 const USERNAME = 'user'; const PASSWORD = 'passwd'; await page1.setExtraHTTPHeaders({ Authorization: `Basic ${new Buffer(`${USERNAME}:${PASSWORD}`).toString('base64')}` });

    puppeteerでよく使うであろう処理の書き方 - Qiita
  • dockerでvolumeをマウントしたときのファイルのowner問題 - Qiita

    dockerでvolumeをマウントするときの問題点 docker runするときに-vオプションをつけることによってホストのディレクトリをコンテナ内にマウントすることができる。 ホスト側のファイルをコンテナ内で使いたい場合や、逆にコンテナで作ったファイルにホストからアクセスしたい場合に有用なのだが、ファイルのアクセス権限についてちゃんと考えておかないと問題が起きることがある。 例えば、ホスト内でのユーザーのuidが500だったとしよう。 $ id uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel),497(docker) $ mkdir -p temp && touch temp/foo # 実験用に適当なディレクトリを作ってみる $ docker run -it -v $(pwd)/temp:/temp

    dockerでvolumeをマウントしたときのファイルのowner問題 - Qiita
  • webpackで開発用/本番用の設定を分ける - Qiita

    root/ ├ dist/ │ └ ビルド後のファイル ├ src/ │ ├ css │ └ js 等 ├ webpack.config.js └ package.json // pathとかpluginとか const path = require('path') module.exports = { entry: { // エントリポイント app: ... }, output: { // filenameとかpathとか path: ... , filename: ... }, module: { rules: [ // loaderの設定 { test: ... , loaders: [ ... ], } ] }, devServer: { // webpack-dev-server用の設定 }, plugins: [ // プラグイン設定 ] } "scripts": { "bu

    webpackで開発用/本番用の設定を分ける - Qiita
  • プロダクトに日本語の全文検索機能を加えたい、検索インデックスのリアルタイム更新もほしい というときの手軽な方法 - Qiita

    プロダクトに日語の全文検索機能を加えたい、検索インデックスのリアルタイム更新もほしい というときの手軽な方法MySQL検索InnoDB全文検索mysql5.7 プロダクトオーナー や ユーザからの要望によって 検索機能 の必要性に迫られたとき、 ありふれた方法 でかつ 速攻 で実装する方法です 要件 日語文章 などのデータに対して、全文検索できる 検索リクエストに対して、十分高速にレスポンスを返す 検索インデックスはリアルタイム更新され、実データと相違がでない 検索対象のデータが追加/更新/削除されたら検索結果にも即反映される 希望 できるだけ速く実装/提供したい できるだけ運用コストも小さくしたい おすすめな方法 もしもプロダクトがMySQL互換のデータベースを使っていたら、要件を満たして 明日にも提供できる かもしれません(気持ちです、フロント周りの実装など事情によって当然コストが

    プロダクトに日本語の全文検索機能を加えたい、検索インデックスのリアルタイム更新もほしい というときの手軽な方法 - Qiita
  • PM2でnodejsアプリを動かす - Qiita

    jsファイルを指定してもいいが、--nameで名前つきでスクリプトを起動すると便利 というか、名前がないと操作が不便すぎるので必須だと思う。 ファイル名が main.js だった場合、pm2 list でアプリ一覧を表示したとき、main.js とでてきて「これは何のアプリだっけ?」となるからだ。 今回は例として、slack-bot というアプリ名でpm2起動する $ pm2 start main.js --name slack-bot [PM2] Starting /home/pi/dev/slack-bot/main.js in fork_mode (1 instance) [PM2] Done. ┌───────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────

    PM2でnodejsアプリを動かす - Qiita
    yuzu441
    yuzu441 2019/06/24
  • Rust でクロスコンパイルして Raspberry Pi Zero W で動かす

    このスライドは Rust LT #2 〜いま使う!Rust〜 で発表した内容です 自己紹介 某社でサーバサイド Rust 書いてる いま使う!Rust どこで使う?Rust Rust は IoT と相性が良い ネイティブバイナリなので省リソース クロスコンパイル可能 言語機能がセキュア 最近の IoT 実行環境 コンテナでデプロイ (Azure IoTEdge) Kubernetes で管理 (virtual-kubelet) 省リソースなコンテナ実行環境 (resion.io) 今回の話題 RaspberryPi で IoT Rust でクロスコンパイル コンテナで DevOps もくじ クロスコンパイル入門 Dockernize 入門 RaspberryPi Zero で動かす 1. クロスコンパイル入門 クロスコンパイルで考えること ターゲットトリプル クロスコンパイラ 標準 C ラ

    Rust でクロスコンパイルして Raspberry Pi Zero W で動かす
    yuzu441
    yuzu441 2019/06/23
  • 2017年版 SSH公開鍵認証で使用する秘密鍵ペアの作り方 - Qiita

    何番煎じかわからないが、 ssh-keygen 最近他の種類も生成すること多くなってきたので。 まあ、 Advent Calendar ネタということで。 よーし埋めるぞ。 RSA 1024bit 以下 絶対に使ってはいけません。 古い puttygen.exe とかだと 1024 ビット以下の鍵が生成されることがあるので注意が必要です。 無難に RSA 2048bit よく使われますが、最近は計算機性能も向上したためか、このビット長の暗号は推奨されないようです。 とはいえNISTによると、2031年以降、RSA 2,048bitをはじめ強度の低いアルゴリズムはほとんどが使用禁止扱いになる。 ECDSAがスタンダードになるのは時間の問題。 ECDSA鍵をGitHubで使う - Qiita

    2017年版 SSH公開鍵認証で使用する秘密鍵ペアの作り方 - Qiita
    yuzu441
    yuzu441 2019/06/20
  • GCPの課金データ取得のススメ - Qiita

    2017年3月にGoogle Cloud Platform (GCP) の価格改定があり、無料枠も広がりましたね。試しに使ってみている、という方も多いのではないでしょうか。 そんな方向けに、GCP課金データのエクスポート設定をしておくと良いですよ、という話を紹介します。しかも、今回の価格改定からはこの課金データの保存・取得が無料でできるようになっています1。 ここで紹介するGCPの課金データというのは、自分が管理している全プロジェクトの日ごと・サービスごとの使用量と費用がわかるようなCSVファイルのことです。 具体的には、次のような情報が格納されています。 3/21の xxxプロジェクトの Datastore小規模オペレーションは 63924リクエストで 0円でした このように課金額だけでなくサービスの利用量も記録されているので、無料ユーザーにとっても有用です。こうした情報の多くは管理画面

    GCPの課金データ取得のススメ - Qiita
    yuzu441
    yuzu441 2019/06/19
  • 自宅サーバーでTwitter連携サービスを運営してたら家宅捜索された件 - Qiita

    概要 ある朝自宅に神奈川県警が乗り込んできた。 (なお自宅は神奈川県ではない) どうやら俺はTwitterにモロ画像を投稿していたらしい。 「間違いなくこの家から投稿されていた。プロバイダにも確認済みだ。」 「(ハンドルネーム)というアカウント使ってるでしょ」 「心当たりあるでしょ?」 「(ブランド名)のTシャツ持ってるでしょ?」 おやっ、何かがおかしいです。 想定される経緯 自宅サーバーではTwiGaTen( https://twigaten.204504byse.info/ )というWebサイトが稼動している。 そしてこいつはTwitterアカウントでログインしたアカウントのタイムラインを24時間365日収集し続けている。Twitterの仕様上、これは時々ログイン履歴として記録される。 そして警察はモロ画像をうpしたアカウントのログイン履歴を見て… 「固定回線からうpか。バカめ。」 「

    自宅サーバーでTwitter連携サービスを運営してたら家宅捜索された件 - Qiita
    yuzu441
    yuzu441 2019/06/11