タグ

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

  • Slackアプリ(OAuth)をささっと開発し、Slack App ディレクトリに掲載するまでの方法と対策まとめ - Qiita

    Slackアプリ(OAuth)をささっと開発し、Slack App ディレクトリに掲載するまでの方法と対策まとめJavaScriptNode.jsAPIOAuthSlack Repsona LLCの@GussieTechです。「ガントチャートも無料でサクサク便利なプロジェクト管理ツール」Repsona(レプソナ)を開発しています。 クリックだけでできるSlack連携を実装しました。案外簡単で、Slack App ディレクトリへの掲載ハードルも高くなかったのです。実装や掲載までの方法、ハマったポイントなどを書きたいと思います。同様の機能を検討している方の参考になれば嬉しいです。 なぜ作ったのか? Slack連携は、Repsonaユーザーのみなさまからかなり多くのご要望をいただきました。開発後すぐにSlackコミュニティでも連携開始しましたが、更新がリアルタイムで確認できるのはかなり便利です。

    Slackアプリ(OAuth)をささっと開発し、Slack App ディレクトリに掲載するまでの方法と対策まとめ - Qiita
  • Rustのマクロを可視化するツール railroad - Qiita

    この記事は Rustその3 Advent Calendarの10日目の記事です。空いていたのでちょっとしたツールをご紹介します。 Rustのマクロについて Rustのマクロは、Rustの他の要素と比べて変わった文法なので最初は戸惑うかもしれません。しかし、やっていることは「どういう構文にマッチするのかを定義する」「その構文がコンパイル時にどう変換されるか定義する」の2つです。このうち、前者の「どういう構文にマッチするのか」がイメージしやすくなれば、マクロを書きやすくなるでしょう。というわけで、この部分を可視化します。 railroadは、その名の通り鉄道の線路のようにマクロの構文を可視化してくれます。ありがたいことに、Webブラウザで動くデモがありますので、以下から使わせてもらいます。 試しに、頻繁に使うマクロであるvec!を可視化してみます。vec!の定義は以下の通りです。置換後の内容は

    Rustのマクロを可視化するツール railroad - Qiita
  • Rust で実装する Average Hash を使った類似画像検索 - Qiita

    こんにちは pon です。今日はRustで類似画像検知の実装方法を紹介します。 類似画像検知には様々な方法がありますが、今回は基礎的なアルゴリズムである Average Hash を使った類似画像判定を実装を紹介します。 実際に僕が作った個人サービスでも連写で取られた写真かどうかを判定する箇所で同じアルゴリズムが動いています。 筆者はRust初心者なのでもっと良い書き方や実装があれば教えてください! Average Hash とは 下記のような処理で画像をハッシュ化します。 上記のように画像を0と1だけの一次元配列に変換できれば、あとは0と1が一致している数が多いほど似ていると判断します。かなりシンプルなアルゴリズムですが、それなりに精度が出ます。連写で撮影された画像の判定なんかでは十分な精度が出ます。 下記の画像なんかは簡単に類似画像と判断できます。 Rust で類似画像検索を実装する

    Rust で実装する Average Hash を使った類似画像検索 - Qiita
  • 2019年にRustで初めてツールを作るときに役にたったリンク集 - Qiita

    Rustで作るツールのお試しとして https://github.com/yutakatay/dotplugs を作りました。ツール自体は大したことはしていないので、作る際によく参考にしていたサイトと使い方を紹介しようと思います。 調べたところリンク集はすでにあって、以下は体系的にまとまっていました。 - https://qiita.com/mosh/items/7e327dafbe53b72ad99d - http://letten.hatenablog.com/entry/the-rust-resources-ja ここではより実践的に役にたったもの(主に日語で)を上げて行きたいと思います。 書き始める前に準備すべきツール 実際にコードを書く前に絶対にあったほうが便利なツールを紹介しておきます。英語ですが公式にも載っています。 https://www.rust-lang.org/to

    2019年にRustで初めてツールを作るときに役にたったリンク集 - Qiita
  • Rustの便利クレート - Qiita

    RustにはCargoという優れたパッケージマネージャーがあるので細かい多数の依存パッケージが問題になることはあまりありません。というより同一のアプリケーションでもパッケージを細かく分割することが推奨されています。ちょっとしたボイラープレートを取り除くような小さなライブラリも大量にあります。これらは積極的に使うべきです。 問題があるとすれば悪意のあるようなパッケージの存在ですが、これらに対処するcargo-auditやcargo-crevというツールもあります。 Rustの依存関係の信頼性を検証する (crev) - Qiita cargo crev でコードレビューをしてみたらバグを見付けた話など - 何とは言わない天然水飲みたさ 記事では 誰かがTwitterやブログで紹介するか誰かが使っているのを見る、あるいは何かのtrendingに載っているのを見るなどしない限り出会わない 日

    Rustの便利クレート - Qiita
  • iMac/MacBook購入後に必ず設定したい設定項目 - Qiita

    背景 iMacmacbookの買い替えなんかで購入直後に設定する項目のメモ ターミナルから設定できます。dotfileとして置いておいて端末購入時に実行するやり方が基のようです。 一度書いてしまえば端末購入のたびに実行するだけで同じ設定のマシンが瞬時に出来あがるのは素晴らしいですね。 vimrc同様に育てていく感覚が大事なのかも知れませんね()。 基的には以下のリポジトリとサイトを参考に記載しています。 https://www.defaults-write.com/ https://github.com/divio/osx-bootstrap/tree/master/core https://github.com/mathiasbynens/dotfiles/blob/master/.macos defaultsコマンドとは 「plist」と呼ばれるアプリやシステムの設定ファイルに、

    iMac/MacBook購入後に必ず設定したい設定項目 - Qiita
  • テストの数を減らそう!プリキュアで学ぶPICT - Qiita

    ソフトウェアのテストはたいへんだなあ ソフトウェアのテスト、きちんとしてますか?最近は、スマートフォンやタブレットの普及に伴って、ユーザが使うデバイスの種類が多様化しています。 使われるOSやブラウザ、画面サイズの種類が増える中、プリキュア1の多様化も著しいですね。「プリキュアで学ぶワンライナーWebスクレイピング」で検証した通り、昨年までは43人、今年は「魔法つかいプリキュア」が加わることで、プリキュアの数は総勢45人になりました2。プリキュアはキャラクターによって専用デバイスを持ったり3、感情が昂ぶると常識を覆す事象を起こしたりするので、ITサービスを提供するエンジニアの方々は、ユーザ満足度向上のため、当然プリキュアがユーザになった場合も考慮した動作テストをされていると思います。 とはいえ、プラットフォームとプリキュアの組み合わせの数は、既にかなりの数です。全てのパターンを試すととても

    テストの数を減らそう!プリキュアで学ぶPICT - Qiita
  • 調べなきゃ寝れない!と調べたら余計に寝れなくなったソケットの話 - Qiita

    なるほど、最近ソケット通信、ソケット通信と言ってるのはUNIXドメインソケットの事か! UNIXドメインソケットって何がいいの? Performance Analysis of Various Mechanisms for Inter-process Communicationに素晴らしい検証があった。 It was hypothesized that pipes would have the highest throughtput due to its limited functionality, since it is half-duplex, but this was not true. For almost all of the data sizes transferred, Unix domain sockets performed better than both TCP so

    調べなきゃ寝れない!と調べたら余計に寝れなくなったソケットの話 - Qiita
  • MySQL - ネクストキーロックってどこまでロックされんの? - Qiita

    個人的にMySQL一番の鬼門のネクストキーロック。未だにまともな正解はわからないけれど、法則性らしきものが理解できてきたのでまとめてみる。 そもそもネクストキーロックとは InnoDBの行ロックはネクストキーロックを採用している。検索時はネクストキーロックを用いてインデックス走査を行うので、ギャップロックが起こる場合は常に先のギャップもロックされており、これによってファントムリードを防ぐ。一意のインデックスを持つ固有値検索の場合はギャップロックする必要がないが、値域検索の場合はギャップロックをする。 固有値検索はギャップロックしないはずだが、存在しない行を読み取ろうとした場合は排他・共有ロックではなく、ギャップロックがかかる。同時にネクストキーロックもかかるのでproduct_id = 19にはINSERTできない。 mysql> select * from products where

    MySQL - ネクストキーロックってどこまでロックされんの? - Qiita
  • 今時のPHP HTTPクライアントのGuzzleを使ってみた - Qiita

    はじめに LaravelでHTTPリクエストを投げたかったのでGuzzleを使ってみました。 以前ですとPEARのHTTP_Request2を使っていましたが、あまり最近使われていないようなので新しいパッケージを使ってみました。 HTTP_Request2は長年使ってまして、使いやすくて好きです。cURLも悪くはないのですが…。 Laravelで使いましたが、もちろん生のPHPでも使えます。 Laravelのラッパー Laravel 7系ではGuzzleラッパーが提供されているようです。 例 $response = Http::post('http://test.com/users', [ 'name' => 'Steve', 'role' => 'Network Administrator', ]); $ laravel new hogeproject $ cd hogeproject

    今時のPHP HTTPクライアントのGuzzleを使ってみた - Qiita
  • フロントエンド実装中に使えるモックサーバを爆速で準備する - Qiita

    で完了 なければ nodeのバージョンをnで管理する などを読みつつnodeとnpmをインストールしてください 準備するもの コンソール db.json ブラウザ(動作確認用) やること db.json ファイルを作成する bashの touch コマンドやWindowsなら右クリックからなどでお好きなようにファイルを作ってください db.json にリソースを登録する ここでモックサーバから返して欲しいデータリストを列挙します 最上位の階層の key がエンドポイントになります { "users": [ {"id": 1, "name": "hoge"}, {"id": 2, "name": "fuga"} ], "tweets": [ {"id": 1, "contents": "あー眠い", "user-id": 1}, {"id": 2, "contents": "ファビュラス!"

    フロントエンド実装中に使えるモックサーバを爆速で準備する - Qiita
  • プログラミングでよく使う英単語のまとめ【随時更新】

    プログラミングでよく使う英単語のまとめ【随時更新】 随時追加、整理していきます。 名前をつけるときには、名詞、動詞の違い、複数形、過去形などに注意しましょう。 オブジェクト指向では、クラス名は名詞、メソッドは動詞とします。 使ってはいけない言葉 get / set アクセサ (getter / setter) やプロパティによく使われている。 それ以外に使うと混乱を招くのでよくない。 get は軽量な処理と考えるので、中に重い処理は書いてはいけない。 単純な取得/設定以外で使いたくなったら他の言葉を考える。 load, save, commit, store, enable, disable, fetch, register, configure, add, etc... check 意味が広すぎて何をしているかわからない。 できるだけ別の言葉を使う。 具体的に何をしているかに分解して考え

    プログラミングでよく使う英単語のまとめ【随時更新】
  • go-promptを使ったリッチなコマンドラインツールの作り方 - Qiita

    先週go-promptというGoの端末制御ライブラリを公開しました。 c-bata/go-prompt: A library for building powerful interactive prompts inspired by python-prompt-toolkit, making it easier to build cross-platform command line tools using Go. https://github.com/c-bata/go-prompt このライブラリを使うと kube-prompt のような強力な補完を持つツールが簡単に開発できます。 この記事ではgo-promptの使い方について解説していきます Getting Started それではさっそくgo-promptを使ってリッチなコマンドラインツールを作ってみましょう。 Download

    go-promptを使ったリッチなコマンドラインツールの作り方 - Qiita
  • DockerでサクッとDBからER図を作成する - Qiita

    SchemaSpyというDBのスキーマを解析してテーブルの一覧やER図を出力してくれるツールがあります。 このツールの公式Dockerイメージが公開されており、非常に使いやすいので紹介させて頂きます。 https://hub.docker.com/r/schemaspy/schemaspy/ コマンド docker run -v "$PWD/schema:/output" --net="host" schemaspy/schemaspy:snapshot \ -t <DB種類> -host <DBホスト名/IP>:<ポート> -db <DB名> -u <DBユーザー名> -p <DBパスワード> このコマンドを実行するとカレントディレクトリのschemaディレクトリに解析結果のHTMLが出力されます。 (コンテナは自動的に終了します) docker run のオプション -vオプションで指

    DockerでサクッとDBからER図を作成する - Qiita
  • 覚えてると超かっこいい脱Python初心者な構文 - Qiita

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

    覚えてると超かっこいい脱Python初心者な構文 - Qiita
  • ユニットテストって何?って人向けのmochaとchaiの使い方 - Qiita

    自動テストって意識高そうで恰好良いですよね! 普段ブラウザ用のJavaScriptしか書かない人なのですが、テストについて調べても、難しい話から始まる記事ばかりで「アサーションって何?」とか「何で通常のファイルとは別のjsが必要なの?」みたいな気持でした。この記事では簡単な前提条件から、mocha/chaiの使い方の概要が分かる部分までを説明したいと思います。 そもそもテストとは何? ソフトウェア開発におけるテストとは、ソフトウェアの振舞いが想定した通りであるかを検証することです。ソフトウェアのサブルーチンを取り出してテストする「単体テスト/ユニットテスト」と、ソフトウェア全体の挙動をテストする「結合テスト」があります。mocha・chaiはこのうちの「単体テスト」を対象としたツールです。 じゃあ単体テストって何をすることなの? 単体テストとは、ある特定の関数を対象に、入力値と出力値が仕様

    ユニットテストって何?って人向けのmochaとchaiの使い方 - Qiita
  • JavaScript の this を理解する多分一番分かりやすい説明 - Qiita

    JavaScript の this は、(他のプログラム言語から見ると) ちょっと面白い挙動に見えることがあります。 先日、この this の挙動について、会社の同僚が説明してくれたのですが、これまで聞いた説明の中で一番分かりやすいと感じたので、頑張って日語で説明してみます。 分かりにくかったら、多分それは私の技量不足。 this と function の関係 function が基準スコープになるのがまず一点。 その function をどう呼ぶかで変わるのかがもう一点。 それを踏まえて…… this は function を呼んだ時の . の前についているオブジェクトを指している と理解できるというのが、同僚の説明でした。 . が省略された場合はグローバルオブジェクトになります (non-strict モード時)。 strict モードでは undefined になります。(@ryo

    JavaScript の this を理解する多分一番分かりやすい説明 - Qiita
  • PostCSS まとめ - Qiita

    僕はPostCSSは開発当初から追いかけていて、GitHubでPostCSSチームのメンバーのひとりだったり、実際にPostCSSを使ってプラグインやツールをいくつか作ったり、ブログや雑誌で記事を書いたり、勉強会等で話したりしています。 記事では、自分が知っているPostCSSについての事柄を共有します。 PostCSSとは何か PostCSSとは、ロシア人の Andrey Sitnik という人が開発している、Node.js製の「CSSツールを作るためのフレームワーク」です。PostCSS製のツールとして、ベンダープリフィックスを自動で付与する「Autoprefixer」、未来のCSSの構文の一部を今のブラウザで解釈できるようにする「cssnext」、カスタマイズ性に富んでいるCSSリンターである「stylelint」などが有名です。 PostCSSは2018年2月、かなり広く使われて

    PostCSS まとめ - Qiita
  • png画像の圧縮には pngquant を使おう [Mac/Win] - Qiita

    Tips デフォルトのまま使うと、 圧縮前の画像を残したまま  圧縮した新しい画像 を作ってくれます。 例 pngquant image.png ↓ 「image-fs8.png」が新規作成される。 これはこれで良いですが、不要なファイルは消しときたいものです。 その場合は、オプションで色々指定出来ます。 // 同じファイル名で圧縮後上書きする pngquant --ext .png --force {your_dir}/*.png // 圧縮率を指定 (JPEGの圧縮率みたいなものらしい) pngquant --quality=65-80 {your_dir}/*.png // 圧縮スピード (1が最も遅く、10が最も速い。遅い方が圧縮率が高い、デフォルトは3) pngquant --speed 1 {your_dir}/*.png // IE6用 pngquant --iebug {y

    png画像の圧縮には pngquant を使おう [Mac/Win] - Qiita
    kei_yam1209
    kei_yam1209 2017/08/06
    “pngquant”
  • [Rails] STI(単一テーブル継承)とメタプログラミングでDRY - Qiita

    概要 コピペコードが増えがちなサンプルアプリケーションの設計を例にとって、 STI(単一テーブル継承)とメタプログラミングでDRY(重複排除)してみる。 題材 ユーザが保持している楽曲をジャンルごとに管理するようなアプリケーション。 ユーザページでは、ジャンル別に登録曲を一覧(もっと言うとCRUD)できる。 こんなイメージですね。 kidachi_さん あなたの登録曲一覧 Rock ほげRock ふがRock Pops 未登録です。 Jazz ふーJazz ばーJazz 何も考えないで作ると、rock/pops/jazzそれぞれのモデル、ビュー、コントローラに 似たような記述・コピペが増えそうな予感を感じて頂けたでしょうか。 では、それを防ぐために、まずはSTIから。 (※追記) 実は上記だけの要件であれば userテーブル、musicテーブル、genreテーブルのみを用意して user

    [Rails] STI(単一テーブル継承)とメタプログラミングでDRY - Qiita