タグ

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

  • ハッキングされたSEOのバックリンクネットワークの分析 | POSTD

    訳注:ハッキングされたサイト-相互にリンクし、マネーサイトへもリンクしている マネーサイト-ハッキングされたWebサイトのネットワークからリンクジュースを受け取る 先週の火曜日、私たちはGoogleから、クライアントのWebサイトがハッキングされたという知らせを受けました。当初はそれが、私が長年見てきた中でも、最も衝撃的な類のSEOハッキングであるとは気付きもしませんでした。 こうしたタイプのハッキングは、インターネット、特にWordPressのサイトでは非常によくあることです。 攻撃者であるハッカーは、特定のフレームワークを含むオープンWebのIPアドレスをスキャンするでしょう。今回の場合、ハッカーWordPressのサイトを探していましたが、ハッキングされた中にはMagentoのサイトやカスタムサイト、多くの他のフレームワークも見受けられました。今回のハッキングで最も印象的だったのは

    ハッキングされたSEOのバックリンクネットワークの分析 | POSTD
  • スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | POSTD

    私が覚えている限り、非常に重い(または非同期の)タスク処理に関して、PHPは常に厳しい評価をされていました。これまではずっと、長いタスクを並列化したければ pcntl_fork を通してフォークするという方法を取らなければいけなかったので、タスクの結果を適切に処理することができませんでした。 そこで私たちは、キューイング(どちらかと言えばタスクを遅くするだけ)やReactPHP、または他の言語を一緒に使うといった、より複雑なソリューションへと向かっていきましたが、PHPでもスレッド処理は可能なのです。そしてより重要なのは、 その方法はあなたが思っているよりもはるかに簡単だということです。 この記事では、 pthreads 拡張(POSIX Threadsの略)について説明します。2012年ごろから広く使われていますが、多くの人がその存在を忘れているか、使うのが苦痛だと考えると思います。その

    スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | POSTD
  • Web開発の未来 – React、FalcorおよびES6 | POSTD

    この記事でWeb開発の未来を垣間見ることができるでしょう。UIの構築やサーバ、データ・エンドポイントの新しい見解を得ることができると思います。ここで、ブラウザとサーバコードの両側を含めたフルスタックな話をしていきます。これを読めば、 完全に機能するGitHubリポジトリ で紹介されたすべてのコードの検証や実行ができるようになります。皆さまが開発者として次の資質を持っていることを前提に話を進めていきます。 JavaScript中級者 HTML中級者 クライアント/サーバ間通信の基礎知識 JSONの基礎知識 Node.jsの基礎知識 上の知識がなくても、 おそらく この記事の進行についていけるでしょう。しかし、知識がないと私の紹介するコードを現実的なシナリオあるいは重要なシナリオに応用するのは難しいでしょう。インターネットは情報の宝庫なので、理解に必要な概念などをたくさん提供してくれます。必要

    Web開発の未来 – React、FalcorおよびES6 | POSTD
  • モバイル上のJSフレームワークの実行可能性 – ReactとRedux | POSTD

    私が好むと好まざるとに関わらず、誰もが私のWebアプリをiOS9の搭載されたiPhone 6SやNexus 6Pで、超高速Wifiに接続して使っているわけではありません。 現実は甘くありません。3Gでの接続や、古いハードウェアも珍しくありません。Googleのレポートによれば、 Androidのアクティブユーザは14億人 だそうです。彼らの多くは間違いなく、最先端ではないハードウェアを使っていることでしょう。 Androidのパフォーマンスについての Jeff Atwood氏の最近の記事 などを読んだことがあるなら、モバイルWebには希望がないように感じるかもしれませんね。 その記事からいくつか注目すべき文を引用します。 端的に言えば、今日最も高速なAndroidデバイスとして知られているものでも、新しいiPhone 6Sよりも5倍遅く、2012年代のiPhone 5上のEmberに比べて

    モバイル上のJSフレームワークの実行可能性 – ReactとRedux | POSTD
  • Q. なぜ’x’ in (‘x’,)が’x’ == ‘x’より速い? | POSTD

    >>> timeit.timeit("'x' in ('x',)")0.04869917374131205>>> timeit.timeit("'x' == 'x'")0.06144205736110564 >>> timeit.timeit("'x' in ('x', 'y')")0.04866674801541748>>> timeit.timeit("'x' == 'x' or 'x' == 'y'")0.06565782838087131>>> timeit.timeit("'x' in ('y', 'x')")0.08975995576448526>>> timeit.timeit("'x' == 'y' or 'x' == 'y'")0.12992391047427532

    Q. なぜ’x’ in (‘x’,)が’x’ == ‘x’より速い? | POSTD
  • Visual StudioでPythonを書くべき理由 | POSTD

    最近、 Visual Studio 2015 がリリースされました。Pythonにも対応しており、 Python Tools for Visual Studio (PTVS)を使うことで、編集やインテリセンス、デバッグ、プロファイリング、Azureへのパブリッシングなど、ほとんど全ての機能が利用可能です。その詳細や ビデオチュートリアルの一部、ドキュメンテーション、その他のソース はvisualstudio.comで見ることができます。また、 Python Tools 2.1 や Python Tools 2.2 beta についてはリンク先のブログ記事をご覧ください。今回の投稿では、Python仕事を始める際にVisual Studioの使用を検討すべき理由について話していきたいと思います。 非常に便利なインテリセンス 何だかインテリセンスについてはいつも話していますね。Visual

    Visual StudioでPythonを書くべき理由 | POSTD
  • Pythonにおけるプロファイリング ― コードの高速化のために | POSTD

    ここHumanGeo社ではPythonを使うことが多く、それは極上の楽しみでもあります。美しく機能的なコードを短時間で記述するのにPythonはうってつけで、私個人にとっても一押しの言語です。仕事に限らずプライベートでも使っています。そんな素晴らしいPythonですが、欠点がないわけではありません。それはあまりにも遅いことです。幸いPythonには、コードをプロファイリングするための優れたツールがいくつかあるので、コードの美しさと速さを共存させることができます。 HumanGeoで働き出した頃、実行に長時間を要すプログラムのボトルネックを探り、何とかしてそれを速くさせるという仕事を担当しました。その内容は、 cProfile や PyCallGraph ( ソース )、はたまたPyPy(高速なPython用代替インタプリタ)などの各種ツールを使って、プログラムを最適化するためのベストな方法

    Pythonにおけるプロファイリング ― コードの高速化のために | POSTD
  • Goで毎分100万リクエストを処理する | POSTD

    Malwarebytes は、驚くべき成長を見せています。1年以上前にこのシリコンバレーの会社に入社して以来、私の主な仕事は急成長するセキュリティ企業の力となるシステムの設計と開発です。日々数百万人が利用する製品をサポートするために必要な、全ての基盤をつくります。私は12年以上、アンチウイルスとアンチマルウェアに関わるいくつかの会社で働いてきました。毎日処理する膨大なデータのせいで、これらのシステムがどれだけ複雑なものになるかを理解しています。 面白いことに、ここ9年ほどで私が携わったWebのバックエンド開発のほとんどは、Ruby on Railsが使われていました。誤解されないように言っておきますが、私はRuby on Railsが大好きですし、すばらしい環境だと思っています。しかし、Rubyでシステムを設計し始めると忘れてしまうのは、マルチスレッド化や並列化、高速化、メモリオーバーヘッ

    Goで毎分100万リクエストを処理する | POSTD
  • 超高速なJSON APIをElixirフレームワークのPhoenixでビルドしてテストしよう | POSTD

    連絡先リストの役割を果たすJSON APIをビルドしてみましょう。ElixirとPhoenixを使って書きます。 Phoenix はElixirベースのフレームワークで、記述の高速化と、低遅延のWebアプリケーションをできる限り楽しく作成する目的で作られています。ElixirやPhoenixのインストール手順についてはここでは触れません。まず初めに Phoenixのガイド を読んでください。 なぜElixirとPhoenixなのか Erlangは、ポンコツの板金にくるまれたフェラーリのようなものです。ものすごいパワーを持っていますが、見た目が悪いと感じる人が多いのです。WhatsAppはこれを使って膨大な数の接続を処理していますが、見慣れないシンタックスとツールの不足のせいで多くの人が苦労しています。 Elixir はそこを改善したものです。Erlang上に構築されていますが、美しくかつ楽

    超高速なJSON APIをElixirフレームワークのPhoenixでビルドしてテストしよう | POSTD
  • データサイエンティストのためのEmacs | POSTD

    Robert Vescoは、ニューヨーク市で開催されたInsightプログラム、2015年1月期のメンバーです。彼は最近、メリーランド大学で経営学の博士号を取得しました。以下の記事は彼の個人 ブログ に元々投稿された記事で、データサイエンティスト向けのツールとしてEmacsを紹介したものです。彼は現在、Bloomberg LPでデータサイエンティストとして働いています。 RやPython、SAS、Stata、SQL、そして、ありとあらゆるデータサイエンスのプログラミング言語に対応したエディタが欲しい。IDEライクな機能を持つエディタが欲しい。全てのプラットフォームやターミナルで機能するエディタが欲しい。文芸的プログラミングのファンである。高度なカスタマイズが可能で、ほとんどのエディタが消え去ってしまった後でも存続するようなエディタが欲しい。こういった希望を満たしてくれるエディタはEmacs

    データサイエンティストのためのEmacs | POSTD
    heavenshell
    heavenshell 2015/07/27
    誰か「データサイエンティストのための Vim」はよ
  • PythonとQGISを使って地理空間を可視化する – UFO目撃情報でのケーススタディ | POSTD

    イントロダクション このチュートリアルでは、とあるデータサイエンティストの典型的な1日の過ごし方をご案内しましょう。まず地理空間のデータセットを入手し、不要なものを整理し、補強し、可視化します。使用するツールはPython、BeautifulSoup、pandasとNominatimライブラリ、そして地理情報システムの組織で広く使われているオープンソースの地図ソフトウェア、 QGIS です。 データセットになるのは、全米UFO情報センター(NUFORC)の このページ に掲載されているアメリカ全土のUFO目撃情報です。目標は、過去12カ月間に目撃されたUFOの地図を可視化することです。可視化によりデータセットをはっきりと示し、調査して、目撃されたとされるUFOの行動をよりよく理解することができます。可視化は地図作成プログラム内で行われます。QGISは地理空間データの手軽な試験的分析に特に向

    PythonとQGISを使って地理空間を可視化する – UFO目撃情報でのケーススタディ | POSTD
  • Javaのマイクロフレームワーク ― この新トレンドは見逃せない | POSTD

    この記事は、JavaScalaの例外分析・パフォーマンス監視のツール Takapiblog に投稿されたものです。 Javaのマイクロフレームワークとは何か、推奨される理由とは? どんなプログラミング言語にも、長所と短所はあるものです。例えばJavaは、安全性の高さや、厳しいテストを経ていること、後方互換性などの利点を持つ言語です。しかし、その代償として、アジリティ(俊敏性)や合理性といった面が少なからず犠牲になっています。冗長で、Java自体が肥大化しているという事実も否定できません。とはいえ、新規開発や大規模な開発を行いたい場合、JVM(Java仮想マシン)はバックエンドとして非常に魅力的です。JVMはパワフルな上に、非常に厳しい環境でテストされています。このような利点があるため、結果的にJavaは広く使用され、積極的にデプロイされているのです。 しかし、このJavaの現状を皆

    Javaのマイクロフレームワーク ― この新トレンドは見逃せない | POSTD
  • 大規模Reactアプリケーションを構築するためのベストプラクティス | POSTD

    Sift Scienceで製作にReactを使い始めてからほぼ1年になりました。その間、Backbone+Reactという フランケンシュタインのような 複合アプリケーションを、Reactコンポーネントからなる、かなり大きな1つの階層に育て上げました。この記事では、UI不和を最小限にしながら、コードベースをスケーリングするために役立った技法とベストプラクティスを紹介します。また、一般的なコンポーネントのデザインパターンについて、いくつか説明します。 この記事が皆さんの時間の節約と精神衛生の維持に役立ち、UIが複雑になってもReactコードベースの保全性を維持する(破綻するのではなく)ための新しいツールを提供できれば幸いです。 componentDidUpdateで、もっとできる React質は、DOMの更新というタスクを命令的なものから宣言的なものに変えるということです。他のタイプの命

    大規模Reactアプリケーションを構築するためのベストプラクティス | POSTD
  • コードレビューのベストプラクティス | POSTD

    Wiredrive では、私たちはかなりの数のコードレビューを行います。しかし、ここで働き始める前には私はコードレビューなどしたことがありませんでした。今回は、私がコードレビューをする時に何に注目するようにしているかや、私の考え出したベストなコードレビューのやり方をお話したいと思います。 コードレビューとは、簡単に言うと2人以上の開発者で問題を引き起こしそうなコードの修正について話し合うことです。コードレビューをすることのメリットについては多くの記事で語られており、知識を共有できること、コードのクオリティが上がること、開発者が成長できることなどが挙げられています。しかし、レビューを行う上で、どのように進めていくかという具体的なことについてはあまり多く語られてないように私は思いました。 レビューで何に注目するか アーキテクチャ/デザイン 単一責任原則 : 1つのクラスは変更する理由が2つ以上

    コードレビューのベストプラクティス | POSTD
  • Goはオブジェクト指向言語だろうか? | POSTD

    “オブジェクト指向”の意味を当に理解するには、この概念の始まりを振り返ることが必要です。最初のオブジェクト指向言語はSimulaという言語で、1960年代に登場しました。オブジェクト、クラス、継承とサブクラス、仮想メソッド、コルーチンやその他多くの概念を導入した言語です。おそらく最も重要なのは、データとロジックが完全に独立したものであるとする、当時では全く新しい考え方をもたらしたことでしょう。 Simula自体には馴染みがない方も多いかもしれませんが、Simulaからインスピレーションを得たとされるJavaC++、C#、Smalltalkといった言語は皆さんよくご存知でしょう。さらにそこからインスピレーションを得たものとしてObjective-CやPythonRubyJavaScriptScalaPHPPerlなど様々な言語があり、Simulaは現在使用されているポピュラーな

    Goはオブジェクト指向言語だろうか? | POSTD
  • Go 実践4日間 | POSTD

    私の仕事の一つに、簡単なバイナリファイルフォーマットのリバースエンジニアリングがあります。”簡単な”というのは、通常は他の人たちが実際の作業全てを行うからです。私はただ、1つか2つの特別なフラグの意味を理解し、できるだけ多くの発見をして自分のブログに公開するだけです。 バイナリファイルの心臓部をのぞくときは、バイナリエディタを利用しています。ただ、 私の気に入っているSynalyze It! でさえ、使うのは手間がかかります。ファイルフォーマットを解明しようとする時、それぞれのバイトの持つ意味を私自身の仮定に基づいてマークアップしたいのですが、今のところ、そのようなことができるバイナリエディタはありません。現状では、バイナリファイルのバイナリ情報を紙に印刷して、去年のテクノロジー関連のカンファレンスでもらったボールペンでマークアップするのが私のワークフローです。 木々を守り、カンファレンス

    Go 実践4日間 | POSTD
  • Node.jsフロー制御 Part 2 – FiberとGenerator | POSTD

    この記事は、 以前投稿したJavaScript/node.jsでの非同期フローに関する記事 の続編です。 今回は以下について取り上げます。 Fiber(fibrous.js) Generator(ES6) Generator + co + mz ここでも私の書いた、Expressフレームワークを使った以下のルート処理(お粗末ですが)を例に見てみましょう。 ファイルから読み込む いくつかのプロセスを実行する(ステップの数は3つ) プロセスとは、単に拡張データをコールバックする任意の非同期処理を指します ファイルに結果を書き出す リクエストに対して成功またはエラーのメッセージを返す アプローチ1 – fiberを使う var fs = require('fs'); var express = require('express'); var fibrous = require('fibrous'

    Node.jsフロー制御 Part 2 – FiberとGenerator | POSTD
  • PHPエクステンションをRustで作る | POSTD

    アップデート :この記事の第一稿を投稿してから数時間後、PHPのベンチマークが機能していないことに気付きました。ですから万全を期すため、PHPRustの双方のバージョンを更新しました。変更箇所は、GitHub(最後にリンクあり)にまとめて載せてあります。 昨年10月、私は Etsy の とある同僚 と、どうやったらPHPRubyPythonといったインタプリタ型言語で今よりずっと簡単にエクステンションが書けるかについて議論しました。うまく書けない原因の1つとして、エクステンションは概してCで書かれますが、Cに長けているのでなければ自信を持ってコードを書くのは難しい、といったことなどを話しました。 あれ以来、私はずっとRustでエクステンションを書く方法を模索し、ここ数日は実際にあれこれ試してみました。そして今朝、ついにうまくいったのです。 Cに埋め込んだRustPHPで実行 私の基

    PHPエクステンションをRustで作る | POSTD
  • ReactをjQueryの数行に要約する | POSTD

    Reactが素晴らしい理由は、UIをアプリケーションの状態の純粋関数にできるからだ」いうような話を聞いたことがあるでしょう。しかしそれだけではなく、不変性と仮装DOMを利用して動作するということも聞きますよね。その上、保存、読み込み、取り消し、それにタイムトラベル・デバッグと呼ばれるすごい機能まで自由に手に入れられる。でも知っていますか? Reactの核となるアイデアを利用し、その恩恵に預かるのにこれらのことは必要ありません。jQueryの数行にしてお見せします。 <span id="colored-counter">0</span> <input id="color"></input> <button id="inc"></button> <script> $('#color').on('keyup', function () { $('#colored-counter').css('

    ReactをjQueryの数行に要約する | POSTD
  • NginxでHTTPS : ゼロから始めてSSLの評価をA+にするまで Part 1 | POSTD

    数年前、Webは全体的に暗号化されていませんでした。HTTPSはWebページの最も重要な部分だけのために確保されていました。暗号化が必要なのは大切なユーザデータだけで、Webページの公開される部分は暗号化せずに送ってもいいということで意見が一致していました。 しかし、 今は 状況 が 違います 。現在では、どんなWebトラフィックでも暗号化されていないのは良くないということが分かっているので、Webサイトを運営する誰もがコンテンツに関係なく強固なHTTPSを設定しなければなりません。 お恥ずかしい話ですが、私自身のWebサイトは2年近くも全くHTTPSをサポートしていませんでした ^(1) 。 Eric Mill の 今すぐ無料でHTTPSに切り替えよう という素晴らしい記事が最終的に私に喝を入れてくれました。私は休暇中、HTTPSをセットアップして Qualys SSL Report

    NginxでHTTPS : ゼロから始めてSSLの評価をA+にするまで Part 1 | POSTD