ブックマーク / postd.cc (19)

  • GraphQLはWeb APIの次のフロンティアか? | POSTD

    RESTの規約。URLはリソースであり、CRUDはHTTP動詞にマップされる。 RESTの規約に1つ問題があるとすれば、規約が十分でないということでしょう。上記で”通常”、”多くの場合”、”時に”という表現を使ったのは、これらのやり方は仕様で推奨されているものの守られるとは限らないためです。実世界では、大抵のAPIはRESTishがせいぜいです。例えばStripeでは、リソース更新に PUT ではなく PATCH を使うべきですが、歴史的理由でそうはなっておらず、おそらく現時点では変更に値しないでしょう。いずれにしても開発者はドキュメントを読む必要があり、その時、 POST メソッドのユビキタスな使い方があることに気づくのです。 RESTには他の問題もあります。必要なものだけでなく全てが返ってくるため、リソースのペイロードが非常に大きくなることがあるのです。そして多くの場合、クライアントが

    GraphQLはWeb APIの次のフロンティアか? | POSTD
    yoshikidz
    yoshikidz 2017/06/28
    DXだけ真面目に読んだ。その他はどこにでも書いてるやつだった。
  • コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD

    私は時折、コーディングに対する考え方を変えさせられるような、従来と非常に異なるプログラミング言語に出会います。記事では、その中でも特に気に入っている発見をいくつかご紹介したいと思います。 これは、先賢による「関数型プログラミングは世界を変える!」的な投稿ではありません。記事で挙げるのは、もっと「知る人ぞ知る」的なリストです。多くの読者の方にとって、以下の言語やパラダイムは聞いたことのないものが大半だと思いますので、私が経験したように、これらの新しい概念を学ぶ楽しさを感じていただければ幸いです。 注:私は以下の言語の多くに関して最低限の経験しかありません。その発想に引き込まれたのであって、専門的知識は持ち合わせていないため、訂正すべき点や誤りがあればどうぞご指摘ください。また、記事で取り上げていない新しいパラダイムや概念に出会った方は、ぜひお知らせください。 最新情報:記事が r/p

    コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
    yoshikidz
    yoshikidz 2017/06/21
    “従来と非常に異なるプログラミング言語に出会います” 初めて知ったのいくつかあるw 仕組み上、他の言語でできないような仕組みを持ってるのっていてるのかな。そういうのだけ気になるわ。Wolfram結構すごいよねw
  • マルコフモデル ~概要から原理まで~ (前編) | POSTD

    記事は、元記事を翻訳した記事の前編となります。 B/C/D節については後編をご参照ください。 “マルコフモデルとは何か” という議論は昔からありますが、もし皆さんがその答えを知りたいのであれば、正直なところ、ウィキペディアを見る(または以下のTLDRだけを読む????)ことをお勧めします。一方、マルコフモデルの概要やこのモデルが重要である理由、およびその実装方法に興味があり、サンプルを通じて理解を深めたいという方は、この記事を引き続きご覧ください(^ ^)。以下で、 具体例を挙げて説明します。 TLDR: 確率論 において、マルコフモデルは不規則に変化するシステムを モデル化 するための 確率モデル である。なお、未来の状態は現在の状態のみに左右され、過去に起きた事象には影響されないと仮定する(つまり、 マルコフ性 を仮定する)。 引用元: https://en.wikipedia.or

    マルコフモデル ~概要から原理まで~ (前編) | POSTD
    yoshikidz
    yoshikidz 2017/05/23
    “マルコフ性”初めて知ったあとは、マルコフって言いたくなるのはマルコフって言葉の重みづけが脳内マルコフ連鎖によって引き起こされるのであーる
  • どのようにして5,000ドルのGoogleマップXSSを発見したか | POSTD

    数ヵ月前、私はGoogleマップを、もっと正確に言うとGoogleストリートビューを利用しました。Googleストリートビューは子供の頃に思い描いた未来的なテレポートみたいで、とても気に入っています。私は、普段そうするように、その時もアドレスバーを見ました。2014年のいつ頃からか、パラメータは単なるクエリの文字列ではなくなり、その代わりに感嘆符で区切られた英数字の奇妙な寄せ集めになったようです。 難解で、現在のところ公開されたドキュメンテーションもなく、多くの人々に毎日使用され、リバースエンジニアリングが可能なプロトコル。こういうコードを目の前にすると、私は解読したくてウズウズしてきます。 私はブラウザのWebコンソールも見てみました。AJAX APIへのリクエストが同じようにエンコードされていただけではなく、もしレスポンスの一部が画像だった場合、その他のレスポンスは暗号を用いたバイナリ

    どのようにして5,000ドルのGoogleマップXSSを発見したか | POSTD
    yoshikidz
    yoshikidz 2017/04/18
    おもしろい
  • すばらしいビット | POSTD

    unsigned int v; //only works if v is 32 bit v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++;

    すばらしいビット | POSTD
    yoshikidz
    yoshikidz 2017/02/14
    おもろいよねー。処理のオーバーヘッドの話とかにも使えるかー。すばらしす
  • H.264の秘密 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) (2016/12/11、いただきましたフィードバックをもとに翻訳を修正いたしました。) H.264は、動画圧縮コーデックの標準規格です。ネット上の動画、Blu-ray、スマホ、セキュリティカメラ、ドローンなどなど、今やあらゆるところでH.264が使われています。 H.264は注目すべき技術のひとつです。たったひとつの目標、つまりフルモーションビデオの送信に要するネットワーク帯域を削減することを目指した30年以上の努力の結晶なのです。 技術的な面でも、H.264はとても興味深い規格です。この記事では、その一部について概要レベルでの知識を得られることでしょう。あまり複雑だと感じさせないようにするつもりです。今回おはなしする概念の多くは動画圧縮全般にあてはまるものであり、H.264に限ったものではありません

    H.264の秘密 | POSTD
    yoshikidz
    yoshikidz 2016/12/02
    おもしろいなー昔からある技術ってコメントしてる人が多くて、親近感わくwメディアデータのバイナリフォーマットとか技術仕様まで知ってる人、普通にしてるとあんまりいないからなー。
  • GitHubのコード検索 : プログラマにとっての宝の山 | POSTD

    新しい言語やフレームワークを学ぶことは、時には苦闘になることがあります。従来のアプローチは、概念を説明し簡単な例を提供するドキュメントを読むことです。それで十分な場合もありますが、ドキュメントに高度な例や実際のプロジェクトでの使い方が書かれていない場合も多々あります。 ドキュメントに記載されていない問題に出くわすと、大抵の人はStack Overflowで解決策を探します(またはソースコードを丹念に調べます)。しかし、「使っているフレームワークが登場してから十分に期間が経っておらず、思い浮かぶ質問全てにStack Overflowが答えてくれない」ということもありえます。 今まで問題にはまって、こう考えたことはありませんか? 「誰かが既にこの問題を解決しているはずだ!では、なぜこの問題に対する答えがStack Overflowにないのだろうか?」 そのとおりです。恐らく誰かは既にそれを解決

    GitHubのコード検索 : プログラマにとっての宝の山 | POSTD
    yoshikidz
    yoshikidz 2016/09/29
    意外といいロジックが拾える時がある。。。というかコードの検索できるのいいよね
  • 私がscriptタグについて知っていること全て : 知られていない属性や実行順序など | POSTD

    <script src="//typekit.com/fj3j1j2.js"></script> <!-- This second script won’t execute until typekit has executed, or timed out --> <script src="//my.site/script.js"></script> ローカルスクリプトとリモートスクリプトを組み合わせても同様に操作することができます。 機能的には、Webページの前の部分で重いスクリプトのロードがあると、サイトの表示が明らかに遅くなることを意味します。さらに、ページの最後の方で表示されるスクリプトは、それまでに存在するされたスクリプトの動作に依存することを意味します。 先行する全てのscriptタグがロードされ実行されるまで、ページ上の要素は表示されません。つまり、パフォーマンスへの悪影響を覚

    私がscriptタグについて知っていること全て : 知られていない属性や実行順序など | POSTD
    yoshikidz
    yoshikidz 2016/07/22
    ふむ。特に目新しいものはなかった
  • AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD

    (2016/7/7、いただいたフィードバックを元に記事を修正いたしました。) JavaScript、特にNode.jsといえば、 コールバック地獄 がよく連想されます ^(1) 。たくさんの非同期I/Oを扱うコードを書いたことがある方には、おそらく以下のようなパターンはおなじみでしょう。 export default function getLikes () { getUsers((err, users) => { if (err) return fn(err); filterUsersWithFriends((err, usersWithFriends) => { if (err) return fn(err); getUsersLikes(usersWithFriends, (err, likes) => { if (err) return fn (err); fn(null, lik

    AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD
    yoshikidz
    yoshikidz 2016/07/05
    ほんとCallback地獄やばいよなー。人のコードのcallback内の変数名気をつけないともうゲロるよね。
  • 私はいかにして巨大なセキュリティホールを講義中にたまたま見つけたか | POSTD

    数週間ほど前にオランダのウィンデスハイム実務専門大学校で客員の講師として講義を行いました。私自身、同学校の卒業生で、恩師たちと連絡を取り続けています。最近、恩師の1人から、多くの学生がITセキュリティとハッキングについて深く学びたがっているという話があり、客員として講義しないかと招待がありました。喜んで! 講義を面白くするためにハッキングのデモも行うことにしました。 ハッキングのデモを始めたときに、学生に企業の名前を聞き、続いて私がその企業のセキュリティを検査したら面白そうだと考えました。次の段階で全く驚きの発見をしてしまい、その企業のセキュリティを保護するため、デモの方向性を変えざるを得ませんでした。 ユニリーバをハッキング? ある学生がオランダでも有名な企業であるユニリーバの名を挙げ、私はこの企業を調べるのが良さそうだと思いました。もちろん法律の範囲内で、です。ユニリーバのサイトのH

    私はいかにして巨大なセキュリティホールを講義中にたまたま見つけたか | POSTD
    yoshikidz
    yoshikidz 2016/06/15
    まあさすがにそこまで脆弱なものを公開してないでしょうね。ネットワークセグメントが外向けに公開されてるとしたら、もう既に問題レベルw
  • 「プログラムの書き方は知っているが、何をプログラムしていいか分からない」 | POSTD

    新人の開発者が繰り返し突き当たるテーマがあります。プログラム言語を1~2種類勉強するのに時間を費やしたり、プログラミングの演習を行ったりすることに関して問題はないと感じていても、学んだことをどう応用していいのか分からずにいるのです。このことは、次のようなフレーズとしてよく耳にします。「プログラムの書き方は知っているが、何をプログラムしていいのか分からない」と。これに対する答えは、一般的に、「プログラミングの課題を行いなさい」、「オープンソースプロジェクトに貢献しなさい」、または、「ゲームを作りなさい」というようなものです。 プログラミングの課題を行うことは、知的ないい訓練にはなります。しかし新しいプログラムの開発方法を学ぶのにはあまり役立ちません。オープンソースプロジェクトに貢献するのは確かにステップアップになります。実際のプロジェクトがどのように構成されているか学び、プログラム言語の技術

    「プログラムの書き方は知っているが、何をプログラムしていいか分からない」 | POSTD
    yoshikidz
    yoshikidz 2016/06/01
    ビジネスデベロップメントも一緒な気がする。ビジネスはリサーチから入ったりするけれど、結局コアがどういう動きになっていて、どういうものが必要で、運用を考えるとどうするのがベターかまで考えないと難しい。
  • Node.jsでのJavaScriptメモリリークを発見するための簡単ガイド | POSTD

    目次 初めに 極小理論 ステップ1. 問題の再現と確認 ステップ2. 最低3回のヒートダンプ採取 ステップ3. 問題の発見 ステップ4. 問題解決の確認 他のリソースへのリンク まとめ Something you might want to bookmark: Simple Guide to Finding a JavaScript Memory Leak in Node.js by @akras14 https://t.co/oRyQboa8Uw — Node.js (@nodejs) January 6, 2016 注釈:お気に入りに登録してください。 Simple Guide to Finding a JavaScript Memory Leak in Node.js (Node.jsでのJavaScriptメモリリーク発見簡単ガイド) @akras14 http://www.ale

    Node.jsでのJavaScriptメモリリークを発見するための簡単ガイド | POSTD
    yoshikidz
    yoshikidz 2016/05/31
    メモしておく。ここ翻訳してくれてて便利な記事多い〜
  • スパマのスパムスクリプトを解析してみる : 難読化されたPHPスクリプトに挑む | POSTD

    スパムを送るのに使われていたPHPスクリプトを見ていきましょう。こういった種類のスパムは世界中のサーバで走っており、あなたを困らせるスパマの熱意を見通せる力を得ることができるはずです。 スパマは、セキュリティ対策が施されていないWebサイトやアプリケーション内の既知の脆弱性を悪用してサーバに入り込み、大量のスパムを送ることができるスクリプトをインストールします。完全に信頼できる送信者であると確証するのは難しいという理由から、 全ての スパムを取り除くことは困難です。完全に強化されたサーバは、スイスチーズ、つまり後にいくつかのゼロデイ・エクスプロイトになりかねないのです。 評判がいいとは言えないソースからプラグインをインストールしたり、プラグインが最新状態に保たれていなかったりすることで、エクスプロイトが簡単に取り込まれてしまうということは、それなりに人気のあるWordPressのサイトを運

    スパマのスパムスクリプトを解析してみる : 難読化されたPHPスクリプトに挑む | POSTD
    yoshikidz
    yoshikidz 2016/05/20
    このスクリプトみたことなかったけど、一人でやってなさそうやな。複数で計画的にターゲットに対して一気に攻撃できるようなバックドアの仕組みに見える。
  • プログラミングの名言をもう少し | POSTD

    前回投稿した「 The Wisdom of Programming (プログラミングに関する名言の知恵)」で、表面上は良さそうでも、ソフトウェアの開発において誤った考えを助長する結果になってしまう名言に注意を促しました。また、以前には「 favorite programming quotes 」(お気に入りのプログラミングの名言)というのも投稿していますが、もう少し名言を追加しておきたいと思います。 コーディング作業 「プログラムを詳細にわたって明確に記述する作業とプログラミングの作業は、全く同一のものである」―Kevlin Henney 「プログラム構築の質のほとんどは、実際には仕様書のデバッグだ」―Fred Brooks 「よくある誤った考えは、プログラムの作成者は不可解なコードを書いてもコメント行で自分の考えを明確に表現できるだろうと思い込むことである」―Kevlin Henney

    プログラミングの名言をもう少し | POSTD
    yoshikidz
    yoshikidz 2016/05/12
    “ダメなプログラマはコードに悩むが、優れたプログラマはデータ構造とその関連性に悩んでいる” ほんまこれ。スケール想定後の不安を払拭するのが大変。最大公約数ざっくりわからないと不安で仕方ない
  • Let’s EncryptとNginx : セキュアなWebデプロイメントの現状 | POSTD

    最近まで、SSL暗号化通信は「あると好ましい機能」という程度にしか考えられていませんでした。そのため、安全なのはアプリのログインページだけというサービスが数多く存在していました。 しかし、状況は良い方向へと変化しています。現在では暗号化は必須と考えられ、ほとんどの開発者が導入を義務付けています。また、巨大検索エンジンGoogleでは、SSLの導入が検索結果の順位を決定する要因にさえなっています。 しかし、SSLが広範に普及しているにも関わらず、セキュアなWebサービスを構築することは、未だに面倒で、時間がかかり、エラーの原因になりやすいと考えられています。 最近この分野では、 Let’s Encrypt が、SSL証明書をより広く普及させ、Webサイトのセキュリティ維持に係るワークフローを大幅に簡略化しようと取り組んでいます。 強力なWebサーバNginxや、他のハードニング方法と組み合わ

    Let’s EncryptとNginx : セキュアなWebデプロイメントの現状 | POSTD
    yoshikidz
    yoshikidz 2016/04/21
    毎日やるとサブドメイン多い場合ブロックされちゃいそ。リクエストは1ヶ月単位でやってるわー。もうSSLがデフォの時代になってきたなー。
  • 倒産した技術系スタートアップ企業から学ぶ7つの教訓 | POSTD

    多くのGoogle社員と同様、私は起業したくてたまりませんでした。Googleで働くのは名誉なことで、大きなメリットがありましたが、”これ”という決定的な何かが欠けていたのです。 私たちの多くは”あの偉業”を成し遂げた”あの人物”と呼ばれたいと思っていますが、既に定評のあるテクノロジ大企業で、そういった人物になるのは不可能です。 その原動力がどこから来るのかは誰にも分かりませんが、私は多くの人々が自分と同じ気持ちを抱いていることを知っています。私はその欲求を満たすために、会社を設立せざるを得なかったのです。 スタートアップでは資産のほとんどは経営陣が持っていて従業員は持ち分が少なすぎると書かれた文章を読んで、がくぜんとしました。それで自分の会社を設立する決心をしたのです。まず、共同創業者と私は、2012年2月頃に仕事を辞めました。私たちには大した計画はありませんでした。取り組もうとしている

    倒産した技術系スタートアップ企業から学ぶ7つの教訓 | POSTD
  • APIデザインにおける七つの大厄介 | POSTD

    (編注:2016/7/29、頂いたフィードバックを元に記事を修正いたしました。) APIをデザインするということは、科学であり技術でもあります。多くの頭の良い人たちが失敗を重ねてきました。成功している人たちは、APIの主な目的を念頭においてデザインしているのです。その目的とは、「開発者たちをウンザリさせる」ということです。 親愛なる仲間たち、その崇高っぽい追求を称えるべく、「APIデザインにおける七つの大厄介」を共に数え上げようではありませんか(私がしたことを見てください)。 リスティクル(箇条書き形式の記事) を書くつもりはないのですが、少なくともタイトルは 教養ある宗教的文献が参照元 です。 まず、ルールを決めましょう。ここでは、成功し、きちんと機能しているAPIを取り上げます。ですから、「動かない」とか、「大量のセキュリティホールがある」といったことは厄介ごとに数えません。「致命的」

    APIデザインにおける七つの大厄介 | POSTD
    yoshikidz
    yoshikidz 2016/03/09
    XML未だにに多いけれど、配列要素1個の時と2個以上の配列補完が毎回めんどくさい。
  • Amazon AWSでユーザ数1100万以上にスケーリングするためのビギナーズ・ガイド | POSTD

    あるシステムを、1人のユーザから1100万人以上にスケーリングするにはどのようにすれば良いのでしょうか。Amazonのウェブサービスソリューションアーキテクトである Joel Williams が AWS re: Invent 2015 Scaling Up to Your First 10 Million Users でスケーリング方法について素晴らしいプレゼンをしています。 AWS上級者のユーザには適さないプレゼンですが、AWS初心者やクラウド初心者、Amazonが次々と送り出す新機能の流れについていけていない人が始めるには素晴らしい内容だと思います。 おおよその見当は付いていると思いますが、このプレゼンはAmazonによって提供されているため、どの問題についても解決策として提案されているものは全てAmazonのサービスになります。amazonのプラットフォームの役割は、印象深く、分か

    Amazon AWSでユーザ数1100万以上にスケーリングするためのビギナーズ・ガイド | POSTD
    yoshikidz
    yoshikidz 2016/03/08
    まじで素晴らしいやつ。NoSQL最初から使ってデータ可視化したい時に、データカオスになってるの見た時、ムププってなるのは秘密です。
  • HTTPステータスコードを適切に選ぶためのフローチャート : 難しく考えるのをやめよう | POSTD

    HTTPステータスコードを返すというのはとても単純なことです。ページがレンダリングできた?よし、それなら 200 を返しましょう。ページが存在しない?それなら 404 です。他のページにユーザをリダイレクトしたい? 302 、あるいは 301 かもしれません。 I like to imagine that HTTP status codes are like CB 10 codes. "Breaker breaker, this is White Chocolate Thunder. We've got a 200 OK here." — Aaron Patterson (@tenderlove) 2015, 10月 7 訳:HTTPのステータスコードのことは、市民ラジオの10コードみたいなものだと考えるのが好きです。「ブレーカー、ブレーカー、こちらホワイト・チョコレート・サンダー。200

    HTTPステータスコードを適切に選ぶためのフローチャート : 難しく考えるのをやめよう | POSTD
    yoshikidz
    yoshikidz 2016/02/18
    429返してるコードとかほとんど見た事ないなー。nginxでステータスコード499を初めて見た時に無視しようとしたけど、見逃せなかった感じは今でも忘れられないわw
  • 1