タグ

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

  • APIなどにfile_get_contents()を使うのはオススメしない理由と代替案

    file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた

    APIなどにfile_get_contents()を使うのはオススメしない理由と代替案
  • macOS Sierra で Karabiner が使えない問題にどう対処したか - Qiita

    先に結論 「かな」周りのキーバインディング設定は Karabiner Elements を使う。「かな」キーに F13 を割り当て、そこを入力ソースのトグルにした キーリピート設定は同じく Karabiner Elements iTerm2 のメタキーの設定は、iTerm2 自身の設定を使って対処 Cocoa アプリケーションの最低限のキーバインドは DefaultKeybindings.dict に定義してお茶を濁すHammerspoon を使う方法に移行した http://qiita.com/naoya@github/items/81027083aeb70b309c14 keyhac は利用を検討したが、見送った やりたかったこと 新しい MacBook Pro を購入したことで macOS Sierra を使うことになった。これまでは Karabiner が動かないことを懸念して S

    macOS Sierra で Karabiner が使えない問題にどう対処したか - Qiita
  • 【詳解】モテたいVimmer必見 快適にコーディングするためのvimrc解説 - Qiita

    やること vimrcの基設定 文字コード タブ・インデント 文字列検索 カーソル カッコ・タグジャンプ コマンド補完 特殊な設定 マウスの有効化 ペースト設定 Vimプラグイン NeoBundle(Vimプラグインの管理) molokai(カラースキーム) lightline.vim(ステータスラインの表示内容強化) vim-trailing-whitespace(全角と半角の空白文字を可視化) indentLine(インデントの可視化) neocomplete・neosnippet・neosnippet-snippets(コードの自動補完) CtrlP(多機能セレクタ) Syntastic(構文エラーチェック) 対象となる読者 素のVimを使っていて、もっと快適にコードを書きたい人 どこかのvimrcをコピペしてきて理解しないまま使い続けてる人 Node.jsやJavascriptでコ

    【詳解】モテたいVimmer必見 快適にコーディングするためのvimrc解説 - Qiita
  • 日本の行政機関等が公開しているAPIについてのまとめ(2016年8月17日暫定版。随時更新) - Qiita

    この記事は下記のURLにあるコミックマーケット90で頒布した同人誌と自分が管理するブログの記事を微修正し、転載したものです。 南関東開発機構 : 同人誌「日の行政機関が公開中のAPIについて調べてみた」を公開しました http://blog.livedoor.jp/south_kanto_dm/archives/52143201.html 南関東開発機構 : 日の行政機関が公開中のAPIについてのまとめ(2016年8月17日暫定版) http://blog.livedoor.jp/south_kanto_dm/archives/52143463.html 前書き この記事の目的は、日の行政機関等が公開しているAPIを紹介する事です。 日の情報技術は他国と比較して、立ち遅れている部分があり、これを立て直すのが喫緊の課題であると言えます。 日政府もこの問題に危機意識を持ち、先日、経

    日本の行政機関等が公開しているAPIについてのまとめ(2016年8月17日暫定版。随時更新) - Qiita
  • Git2.9のキレイなdiffを出すためのconfig - Qiita

    Git 2.9 has been released https://github.com/blog/2188-git-2-9-has-been-released 昨日キレイなDIFFが出せるgit2.9がリリースされました。 homebrewで brew upgrade git な感じでアップグレードすれば2.9は入るのですが、 このキレイなDIFFは標準では有効になってないので、記事にあるとおりに設定を行いましょう。 だいたい以下のような感じのコマンドうてばいいと思います。 下準備:diff-highlightにPATHを通す まぁ通さずに直接読んでもいいんですが、通しておきましょう。 homebrewでいれるとdiff-highlightさんは↓あたりにいるのでPATHを通しておきましょう。 export PATH=$PATH:/usr/local/Cellar/git/2.9.0/s

    Git2.9のキレイなdiffを出すためのconfig - Qiita
  • パケットを自前で生成してTCP接続する - Qiita

    目的 諸般の事情により、RAW_SOCKを開いてL4パケットを流さないといけないことになってしまったので、その方法について簡単にまとめた。 OSI参照モデルとヘッダの構造 TCPはOSI参照モデル第4層(いわゆるL4)のプロトコルである。 このレイヤで見た場合のパケットの構造は以下の様になる。 Ethernet Header (Layer2)

    パケットを自前で生成してTCP接続する - Qiita
  • あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita

    はじめに サーバ管理をしている身としては、 セキュリティ は常に付きまとう悪魔みたいなもので、このセキュリティに関しては何をどこまで頑張ればいいのか不透明な部分が多い。 脆弱性に関しては、CVEなど、毎日情報は入ってくるが、それがどのサーバの何に関連したものなのかなんていちいち調べてられないし、どの脆弱性がすぐに対応しなければいけないもので、どの脆弱性があとあと対応すればいいものなのかなんてわからない。 実際のところ、大きな話題になった脆弱性くらいしか緊急で対応してないという人は多いのではないかと思う。 そんな中、満を持して登場したのが vuls !! 各サーバの脆弱性情報を取得して、個々のサーバそれぞれでどんな脆弱性があり、どのくらいやばい脆弱性なのかを検知できるようになった! 今回はこのvulsを紹介します。 Vulsとは 公式でロゴが発表されたので、差し替えました 公式ドキュメント:

    あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita
  • Cookie関連の最新動向 (2016年) - Qiita

    はじめに 去年ぐらいからCookieに関する議論が活発に行なわれているように感じます。そこでCookie関連の最新動向について仕様の観点から幾つか列挙します。 Deprecate modification of 'secure' cookies from non-secure origins Cookie Prefixes Same-site Cookies A Retention Priority Attribute for HTTP Cookies Content Security Policy: Cookie Controls GoogleのMike West氏による提案がほとんどです。議論はIETFのHTTPbis WGやW3Cで行なわれており将来的には正式に標準化されるものもあるでしょう。 また、幾つかはChromeへの実装が進められています。 (間違いなどありましたらご指摘下さ

    Cookie関連の最新動向 (2016年) - Qiita
  • You Don't Need jQuery - Qiita

    注意とお願い この記事の内容はもはや古いです。ここに書いている方法では動かないものをいくつか見つけました。参考にする際は動作をよく確認してから使ってください。 ひとつお願いがあります。「あれ、動かないぞ」というコードを見つけたら是非コメントか編集リクエストで教えてください。解決方法までなくても結構です。「これはもう動かないよ」という印をつけたいのです。 この記事はYou Don't Need jQueryの日語訳と同じ内容です。 先日ひょんなことからYou Don't Need jQueryの日語訳をさせていただきました。著者のCam Songさんからも快諾をいただけたので1、Qiitaでも公開させていただきます。 なお、家の英語の説明は継続的にメンテされているので、この記事の情報は古くなっている可能性があります。 追記 この記事は当初は「もうjQueryは必要ない」というタイトルで

    You Don't Need jQuery - Qiita
  • PHP オススメのライブラリ - 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

    PHP オススメのライブラリ - Qiita
  • 大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita

    Help us understand the problem. What is going on with this article? 3月24日に発表になったLINEのBOT API Trial Accountが、いよいよ4月7日から実際に試せるようになりました。既に多くのBOTが開発者の手によって作られ始めたようですね。QiitaにもいくつかBOTの作り方が投稿されていますので、"LINE BOT"というキーワードで探してみてください。 実際の作り方の基は他の投稿に任せるとして、BOT API自体は非常にシンプルな作りなので、試すこと自体はすぐにできると思います。しかし、シンプルな反面、仮に近い将来「Trial」が取れて、友だち50人制限が撤廃された時、それでも正しく安定的に動作するBOTとするには、アーキテクチャ上の工夫が必要になります。個人的に、既にLINE BusinessCo

    大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita
  • LINE BOT API Trialでできる全ての事を試してみた - Qiita

    4/7 18:00頃にLINEの「BOT API Trial Account」が無償提供されたと聞いてとりあえず触ってみたら出来る事は結構少なかったので勢いで全て試してみた。 [追記 4/14 9:28] Facebook Messenger Platform BETAでできる全ての事を試してみた(LINE BOT APIとの比較あり)も合わせてどうぞ。 [追記 4/9 11:49] 現在、巷で話題のLet's Encrypt問題以外でコールバックがコールされない問題があるらしいのでご注意を。 [追記 4/9 12:49] 上記の問題は解決した模様。 まずはアカウント登録 ※先着10,000名って少ない気がするけどまだ登録できるって事はそんなに人気ないのかな。 https://business.line.me/ja/products/4/introduction BOT API が利用開始

    LINE BOT API Trialでできる全ての事を試してみた - Qiita
  • NeoBundle から dein.vim に乗り換えたら爆速だった話 - Qiita

    // 追記ここから 2016/03/22 以前設定ファイルの例として載せておりました dein#load_cache() を使った例は deprecated になりました。代替の dein#load_state() を使うと更に爆速に!NeoBundle から見れば半分の時間になってますね!驚きです。 // 追記ここまで 30% 以上速くなってます!しかもこれ、他の諸々の設定込みですから人によってはもっと変わってくるでしょう。 速さはもちろんですが、設定項目が整理され、より分かりやすく、細かいところに手が届くようになってます。 で、なんだか順序が逆ですが、以下インストール方法と、NeoBundle から乗り換えるときの Tips を書いていきます。 インストール方法 基的なところは dein.vimを使ってみる - Qiita に既に上がってますので、ここでは Shougo 氏の vim

    NeoBundle から dein.vim に乗り換えたら爆速だった話 - Qiita
  • iOS 開発で使いたいライブラリまとめ(2016/02) - Qiita

    iOS関連のライブラリまとめ記事をたまにみかけますが最近はどうなんだろうと思ったのでiOS Cookiesからよさそうなのをまとめてみました。 Database Realm もう定番の Realm。データ永続化するならとりあえずこれ、という感じでしょうか。 導入記事はこちら[Realm Swift]。 SQLite.swift SQLite を使いたい時はこちら。 https://github.com/stephencelis/SQLite.swift WalkThrough, CoachMark Presentation 初回起動時に表示するウォークスルー。ユーザーにアプリの説明をするのに使用します。初回しか表示しませんが重要な部分ですね。 RazzleDazzle こちらも同じくウォークスルーライブラリ。アニメーションを細かく指定できるのが特徴。IFTTT製。 Instructions

    iOS 開発で使いたいライブラリまとめ(2016/02) - Qiita
  • GitHubのIssuesおよびPull Requestsにテンプレートを登録することができるようになりました - Qiita

    GitHubを使っていて今まで不便だった点として、「IssueやPull Requestの投稿内容を規定することができなかった」ことがあると思います。最初の投稿内容がどうしても不十分なものになってしまい、詳細を聞き出すことから毎回始めなければならない、といった苦痛をいつも感じていた人は多いはずです。 この苦痛も過去のものとなりそうです。IssueやPull Requestにテンプレートが作れるようになりました。Issue and Pull Request templatesという題名で新規機能のアナウンスがありましたので、さっそく日語に訳してみました。参考になると幸いです。 IssuesおよびPull Requestsのテンプレート 重要な詳細が欠けている問題を解決することは困難です。今、プロジェクトの管理者は、プロジェクトのIssuesやPull Requestsのためにテンプレートを

    GitHubのIssuesおよびPull Requestsにテンプレートを登録することができるようになりました - Qiita
  • 何もしない組み込みコマンド ":" (コロン)の使い道

    Bash でシェルスクリプトを勉強していくと出会うのが : (コロン)という名前の組み込みコマンド。このコマンドは何もしないコマンドです。 こんなコマンドの存在は不思議だなと思う反面、C言語にも void という型があったり(関数のような形で存在するのは JavaScript とかですね)、LaTeX にも \relax があったり、何もしない命令というものは機械語の NOP からある普通のものです。 この Bash の : の使い道についてまとめてみました。 何か書かなければならないところに仮置きする 例えば「ここに制御構造を置くんだけど、この節に入るものは後で書くんだけどな〜」といった場合、制御構造の節の中に何も書かないと Bash は構文エラーとなります。 #!/bin/bash arg="$1" if [ -z "$arg" ] ; then echo "デフォルトモード開始" e

    何もしない組み込みコマンド ":" (コロン)の使い道
  • NGINX 1.9が汎用TCPサーバとして使えるようになっていた件 - Qiita

    はじめに 一年程前にリリースされた Nginx v1.9.0で、Streamモジュールが追加されました。 Streamモジュールを使うと、任意のポートでNginxがTCPの接続を待ち受けるよう設定できます。 この機能は、例えばNginxをTCPロードバランサとして構成する時に威力を発揮するようです。 nginx Blog - TCP Load Balancing with NGINX 1.9.0 and NGINX Plus R6 強力そうな機能ですが、個人的にNginxをTCPロードバランサとして使っていなかったため、特に機能を活用する場もなくスルーしていました。 ところで、つい先日公開されたNginxのモジュール、stream-lua-nginx-module、及び、stream-echo-nginx-moduleを組み合わせれば、任意のポートで待ち受けるTCPサーバをLuaで記述でき

    NGINX 1.9が汎用TCPサーバとして使えるようになっていた件 - Qiita
  • 新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに 今年、書いた幾つかの記事のタネであったり、新卒教育の際に参考書籍としてあげたものを中心にリストアップします。一応amazonへのリンクも貼っておきますが、先輩が持ってたりすると思うので、冬休みに借りて一気に読んでおくのもいいかと思います。 その時々、必要な技術の習得に日々追われているんじゃないかと思いますが、いつまでも使

    新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita
  • iOS 9 の新機能のサンプルコード集 - Qiita

    mapView.mapType = MKMapType.SatelliteFlyover mapView.mapType = MKMapType.HybridFlyover こんな感じのインパクトのある3Dマップ表示が可能となります。 Flyover Map for iOS 9. Text Detector CIDetector で新たに指定できるようになった CIDetectorTypeText を用いた文字認識のサンプル。 緑色の枠が検出した文字領域を示していて、(見づらいですが)黄色の枠は個々の文字領域を示しています。 2種類の画像への処理結果を比較してみると、同じステッカーを認識させるにしても、下の画像のようにパースがかかって陰影もある場合はグッと精度が落ちる(台形補正や二値化等の前処理をする必要がある)ことがわかります。 機能については下記記事でも解説しています。 【iOS9】

    iOS 9 の新機能のサンプルコード集 - Qiita
  • Vimでウィンドウサイズの変更を簡単・高速にするプラグイン - Qiita

    VimMacVimなどでウィンドウを分割して利用していると、サイズの変更のしたいことはよくありますね。 Ctrl-W+>, Ctrl-W+<, Ctrl-W+- , Ctrl-W++ で少しずつ変更することはできますが、ちょっと面倒。。 簡単・高速にウィンドウサイズを変更する ウィンドウサイズの変更を楽にするプラグイン winresizer の紹介です。 (もともと別アカウントで開発していたものを、最近こちらのアカウントにTransferしました) このプラグインではVimの操作と同じ、 h, j, k, l で直感的に、連続的にウィンドウサイズを変更していくことができます。(リサイズモード) 最近、MacVim 自体のウィンドウサイズも変更できる機能をつけましたので、合わせて紹介します。 デモ おそらく見てもらったほうがイメージが湧くと思います。 デフォルトのキーマップだと Ctrl-

    Vimでウィンドウサイズの変更を簡単・高速にするプラグイン - Qiita