タグ

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

  • 【翻訳】AngularJSからReactへ: Isomorphicな方法 | POSTD

    先週、私たちはWebサイトを検索エンジン向けにインデックス付けできるようにしようとしていました。この記事では、私たちがWebサイトを書き直していて学んだことの要約を紹介したいと思います。 背景 2ヵ月前に RisingStack.com を作成した時、私たちはそのWebサイトでどんなテクノロジを使うか決めなくてはなりませんでした。イベントを追跡する静的なページが数ページあるだけだったので、とても簡単でしたが、私たちはWebサイトをスケーラブルでできるだけ高速なままにしておきたいと考えていました。 私たちのチームは AngularJS の経験が豊富なので、フロントエンドAngularを選ぶのは妥当だと思われました。 この記事はReactAngularJSがどちらか一方より優れている理由について述べているわけではないので注意してください。どちらがいいかは常にユースケース次第です。 “Ang

    【翻訳】AngularJSからReactへ: Isomorphicな方法 | POSTD
  • 2015年に向けたJavaScriptアプリケーションアーキテクチャ Part 2 | POSTD

    PART1はこちら : 【翻訳】2015年に向けたJavaScriptアプリケーションアーキテクチャ PART 1 オフラインの課題 オフラインでアプリケーションを使えなければ、真のモバイルWebエクスペリエンスとは言えません。 これまで、アプリケーションをオフラインで使用することは根的に困難でしたが、状況は改善されつつあります。2014年を振り返ると、WebプラットフォームのAPIは、より良いプリミティブを提供できるよう進化し続けてきました。最近の事例で最も興味深かったのは Service Worker です。Service Workerは、オフラインでもサイトを稼動させることができるAPIです。ネットワークリクエストに割り込んで、そのリクエストをどう処理すべきかをブラウザに伝えます。 コントロールのレベルが適正かどうかという点以外は、アプリケーションキャッシュのあるべき姿を実現してい

    2015年に向けたJavaScriptアプリケーションアーキテクチャ Part 2 | POSTD
    syuu256
    syuu256 2015/03/16
  • インターフェースプレビューを利用した非ブロッキングユーザインターフェース | POSTD

    泥に足を取られながら歩くのではなく、氷上を滑走するようなインターフェース 非ブロッキングインターフェースとは 私が抱くイメージでは、非ブロッキングインターフェースとは氷上を滑走するようなもの、そしてブロッキングインターフェースとは泥に足を取られながら歩くようなものです。ネットワークのスピードにかかわらず、非ブロッキングインターフェースを使うと表示速度が速く、反応も良く、表示が途切れることがないように感じられます。つまり新たなページをロードした時やWeb上のボタンをクリックした時にすぐ画面が反応し、中途半端な状態でユーザが待たされることはありません。 そこで”インターフェースプレビュー”という手法を1つご紹介しましょう。非ブロッキングインターフェースを設計する際に、非常に効果的な手法です。これを使えば、データを読み込んでいる間にも、ページレイアウトやプレースホルダ要素をすぐにレンダリングでき

    インターフェースプレビューを利用した非ブロッキングユーザインターフェース | POSTD
    syuu256
    syuu256 2015/03/13
  • モノモーフィズム(単相性)について – JavaScriptのパフォーマンスを例に | POSTD

    JavaScriptのパフォーマンスに関する講演やブログ記事では、よく単相的コードの重要性が強調されています。しかしながら、モノモーフィズム(単相性)/ポリモーフィズム(多相性)とは何なのか、それがどうパフォーマンスに影響してくるのかということについては、あまり分かりやすく説明されていません。私自身の講演でも、<< 1.良い型、2.悪い型 >>的な二者択一のスタイルに要約してしまうことが少なくありません。パフォーマンスに関するアドバイスを求められることがありますが、そういう時に最もよくリクエストされるのは、 モノモーフィズムとは実際のところ何なのか 、ポリモーフィズムがなぜ生じ、それがなぜ悪いのか、ということを説明して欲しいというものです。 困ったことに、そもそも「ポリモーフィズム」という用語そのものが相当に多重定義されています。昔ながらのオブジェクト指向プログラミングにおいては、 ポリモ

    モノモーフィズム(単相性)について – JavaScriptのパフォーマンスを例に | POSTD
    syuu256
    syuu256 2015/03/11
  • ノンデザイナーのための25のグラフィックデザインのコツ | POSTD

    >このコツを大いに活用してグラフィックデザインに挑戦してみてください! ソーシャルメディア向けのデザインからイベント用の招待状まで、どんなデザインであろうと使えるグラフィックデザインのアプリはたくさんあります。 ペアリングフォントやスケールから行揃えやホワイトスペースまで、デザインの世界は複雑な面を持ちます。この25のグラフィックデザインのコツが、創作過程のあれこれを通してあなたの手助けになるでしょう。 各項目をイメージした画像をクリックして、 独自のデザイン に編集してみましょう。楽しいデザインを! 01. フォント頼みをやめて、書体を制限してみる このデザインを編集してみる シンプルかつ効果的なグラフィックデザインのために読みやすいフォントを使いましょう。いくつもの書体を使用したデザインは読みづらいものです。統一されたフォントを使うようにしましょう。 ここではAileronのフォント

    ノンデザイナーのための25のグラフィックデザインのコツ | POSTD
    syuu256
    syuu256 2015/03/10
  • マネージャのためのAngularJSの概要 Part 1 | POSTD

    私が空き時間にAngularJSを使って様々なものを作成し始めたのは2013年の終わりのことです。この頃から続く経験は実に有益で、今でも多くのことを学んでいます。私とJavaScriptとの関わりはIBMでDojoを使って単一ページアプリケーションを構築したところから始まります。その後バックエンドでNode.jsを、フロントエンドAngular.jsのみを使う会社に移りました。 IBMでは、チームに対してAngular.jsに切り替えるよう言い続けていました。この記事の初稿を書いたのもAngularJSでエンタープライズ向け単一ページアプリケーションの構築が出来ることを客観的に主張するためです。特に私が伝えたかったのが、大企業がAngularJSに切り替えることにはメリットこそあれ、デメリットは何もないということです。それから数か月間Angular.jsだけを使い続けていますが、核となる

    マネージャのためのAngularJSの概要 Part 1 | POSTD
    syuu256
    syuu256 2015/03/09
  • 2015年に向けたJavaScriptアプリケーションアーキテクチャ Part 1 | POSTD

    私はかつて自分はアーキテクトだと名乗ったことがあります。これを裏付けるため、今やウソだらけの複雑な話を設計しなくてはならなくなっているので、ある意味これは当のことですね。冗談はさておき、2015年を目前としてJavaScriptコミュニティのアプリケーションアーキテクチャの状況について目を向けてみるのは有益なことだと思います。合成、関数型の境界、モジュラリティ、不変データ構造、CSPのチャネルと、その他に関連するいくつかのトピックについて書いてみたいと思います。 合成 アーキテクチャのレベルでは、JavaScriptで大規模なアプリケーションを作成する方法に関してここ数年で少なくとも一つの根的な変更がありました。機械の細かい違いにより生み出される単一指向性の データバインディング、不変データ構造と、仮想DOM (どれも興味深い問題ですね)などを除けば、多くの開発者が一つのキーコンセプト

    2015年に向けたJavaScriptアプリケーションアーキテクチャ Part 1 | POSTD
  • ピアコードレビューの実践的レッスン | POSTD

    Salsita Softwareは、複雑かつ最新のウェブアプリケーションとモバイルアプリの開発に特化する専門のソフトウェア・コンサルティング企業です。Salstiaの幅広い専門分野にまたがるチームは、ワールドクラスのソフトウェア・エンジニアはもちろん、グラフィックデザイナー、UXスペシャリスト、プロジェクトマネジャーそしてQAエンジニアから構成されています。 Salsitaのエンジニアは2つのグループに分かれており、フルスタック・エンジニアはサーバサイドの実装(Node.jsとPython)、クライアントサイドのJavaScriptAngularJS、React、 BackboneとEmber)、そしてモバイルアプリの開発(iOS、Android、PhoneGap)を担当します。フロントエンドエンジニアは、モジュール性が高くメンテナンスが容易、かつレスポンシブなユーザインターフェースを

    syuu256
    syuu256 2015/03/04
  • フロントエンドとバックエンド | POSTD

    バックエンドエンジニアフロントエンドエンジニアの違いは、前者は1つの環境で仕事をするのに対し、後者は予期せぬことが起こる可能性のある数多くの環境で仕事をするということにあります。 「複雑なJavaScriptで動くWebサイトやWebアプリが動作する環境は、単一的で一枚岩のものである」――この無意識な思い込みこそが、バックエンド中心に開発されたWebベースプロジェクトにおいてフロントエンドエンジニアが目にする問題の根的な要因であると私は考えています。 さらに悪いことに、バックエンドエンジニアは、フロントエンドエンジニアよりも複雑なアプリケーションを構築するのに長けていると考えています。実際そうなのかもしれないのですが、好ましくないのは、彼らの中にはフロントエンドについて学ぼうという意識に欠けている人がいることです。 アプリケーションの構築において、数多くの困難な環境に対応するフロントエ

    フロントエンドとバックエンド | POSTD
    syuu256
    syuu256 2015/03/03
  • JavaScriptベストプラクティス Part 2 | POSTD

    ThinkfulはWeb/スマートフォンアプリの技術などを学ぶことができるオンラインスクール。プロフェッショナルな開発者がメンターとして1対1で伴走するため、他の同様サービスよりも続けることができる。 「ベストプラクティス」パート2でも、引き続きMozillaのWebエバンジェリストであるChristian Heilmannが提供するスライドショーから内容を抜粋します。パート1同様、ご紹介するのはメンテナンス性が高く効率の良いコードを書く手助けとなるJavaScriptのベストプラクティス例です。JavaScriptがソフトウェア開発で大きな割合を占めているような場合、不要なものがなく読みやすいコーディングがより重要になってきます。 もしWeb開発についてもっと学びたいと思うのであれば、私たちが提供しているフロントエンドWeb開発コース、もしくはAngularJSコースを覗いてみてください

    syuu256
    syuu256 2015/03/02
  • 開発者がビッグデータ分析にPythonを使う時によくやる間違い | POSTD

    システムの構築、新しい技術の習得、PythonやDevOpsなどに情熱を注ぐソフトウェア開発者です。現在はチューリッヒを拠点とするビッグデータのスタートアップで働いており、データ分析およびデータ管理ソリューションのためのPython技術を磨いています。 1 はじめに Python は開発時間を短縮できるという点で一般的に評価の高い言語です。しかし、Pythonを使って効率よくデータ分析をするには、思わぬ落とし穴があります。動的かつオープンソースのシステムであるという特徴は、初めは開発を容易にしてくれますが、大規模システムの破綻の原因になり得ます。ライブラリが複雑で実行時間が遅く、データの完全性を考慮した設計になっていないので、開発時間の短縮どころか、すぐに時間を使い果たしてしまう可能性があるのです。 この記事ではPythonやビッグデータで作業をする時に、最も時間を無駄にしがちな事柄につ

    開発者がビッグデータ分析にPythonを使う時によくやる間違い | POSTD
  • プルリクエストをより使いこなす | POSTD

    Gitを使用している人であれば、プルリクエストには馴染みがあるでしょう。これは、分散バージョン管理システムが世に出始めてから、何らかの形で使われています。BitbucketやGitHubのように凝ったWebユーザインターフェイスが構築される前は、プルリクエストは単純に電子メールベースで行われており、Aliceのリポジトリから変更をプルするように依頼していました。プルリクエストを受けた側がこの変更を妥当だと判断すれば、いくつかのコマンドを実行しmasterブランチに変更をプルするという流れです。 $ git remote add alice git://bitbucket.org/alice/bleak.git $ git checkout master $ git pull alice master もちろん、手あたり次第Aliceの変更をmasterにプルすることは、 得策 ではありませ

    プルリクエストをより使いこなす | POSTD
  • 関数型プログラミング入門 | POSTD

    多くの関数型プログラミングに関する記事が教えてくれるのは、抽象的な関数型のテクニックです。つまり関数合成やパイプライン、高階関数などです。この記事では違います。ここでは、プログラマが毎日書く、命令型で非関数型のコードの例を示し、それを関数型の形式へ書き換えます。 最初のセクションでは、短いデータ変換のループを取り上げ、map関数やreduce関数に書き換えていきます。2つ目のセクションではより長いループを取り上げ、ユニットに分解し、それぞれのユニットを関数型に書き換えます。3つ目のセクションでは、連続した長いデータ変換のループを関数型のパイプラインに分解します。 ここではPythonでの例を取り扱います。というのも多くのプログラマはPythonを読むのは簡単だと思っているからです。多くの例では、mapやreduce、パイプラインなどの多くの言語に共通する機能を例示するため、Python的な

    関数型プログラミング入門 | POSTD
  • 2015年の最優先事項は関数型プログラミング! | POSTD

    —もはやOOP(オブジェクト指向プログラミング)は”クラウドモンスター”から私たちを守りきれない おそらくあなたは、”Clojure”、”Scala”、”Erlang”といった言葉や、”Javaにラムダ式が導入された”という話を聞いたことがあるでしょう。そしてそれらの言葉が”関数型プログラミング”と関連があるのをご存じかもしれません。プログラミングコミュニティに参加していれば、おそらく既にこのテーマが議題に上がっているでしょう。 Googleで”関数型プログラミング”を検索しても、目新しいものは何も見つかりません。言語の中で2番目に古い言語は、関数型プログラミングを利用しています。1950年代に登場した、Lispという言語です。では一体なぜ人々は、今になって関数型プログラミングに沸き立っているのでしょうか? およそ60年も経っているのに? 初期の頃、コンピュータは実に遅かった 信じられない

    2015年の最優先事項は関数型プログラミング! | POSTD
  • パーリンノイズを理解する | POSTD

    この記事の目的はKen Perlinの改良パーリンノイズを分かりやすく分析し、お伝えすることです。記事内のコードはC#で書かれており、自由にご利用いただけます。最終形のみを見たい方は、こちらから最終的なソースをご確認ください。 パーリンノイズは手続き的なコンテンツ生成によく使われる、非常に強力なアルゴリズムです。ゲームや、映画などの視覚媒体に特に有用です。パーリンノイズの開発者であるKen Perlinは、この最初の実装でアカデミー賞を受賞しました。彼が2002年に発表した改良パーリンノイズについて、私はこの記事で掘り下げていきます。パーリンノイズは、ゲーム開発においては、波形の類や、起伏のある素材、テクスチャなどに有用です。例えば手続き型の地形(Minecraftのような地形はパーリンノイズで生成できます)、炎のエフェクト、水、雲などにも使えます。これらのエフェクトのほとんどが2次元、3

    パーリンノイズを理解する | POSTD
    syuu256
    syuu256 2015/02/17
  • Travis CIでコンテナベースのインフラストラクチャとDockerでより高速なビルドを | POSTD

    Travis CIが出た時から、当社はビルドにおける安定性と信頼性の提供を第一にしてきました。しかし、常に期待に応えてこられたとは言えません。ネットワークの問題や、ビルドのキャパシティが不十分で(オープンソースプロジェクトに対して)ビルド開始までに時間がかかる、ビルド環境におけるCPUやメモリのリソースに制限がある、オープンソースプロジェクトに対応するキャッシュがないなどの問題がありました。また、現在当社で使っている大部分のLinuxのスタックはプライベートクラウド上で動作するため、要求してからキャパシティに空きができるのを待つというプロセスを経なければならなりませんでした。そのため、キャパシティを増やすという課題もありました。 今回ご紹介するのは、このような課題に対応した新たなビルド・インフラストラクチャです。これからは、プライベートやオープンソースのリポジトリにもお使いいただけます。

    Travis CIでコンテナベースのインフラストラクチャとDockerでより高速なビルドを | POSTD
  • なぜ採用される言語とされない言語があるのか | POSTD

    私の 前回の記事 では、 Heartbleed バグを早めに見つけられないことは、ある意味で改良とデプロイの失敗となると論じました。そうでなければ、これは静的解析にとって効果的なテクノロジーです。特に、商業的な静的解析ツールは故意に潜在バグを無視しますが、これは間違ったアラームが大量に報告されるのを避けるためです。つまり、健全性よりも完全性が好ましいということです。このようなツールを作る企業は、利益になるサービスを好況市場に提供することを狙いとしており、彼ら独自の調査では健全性は売れ行きに関して重要ではないということが示されています。その代わり、生き残るためには、当に重要なバグを開発者が効率的に発見する手助けになるツールでなければいけません。全てのバグの検出は必要ないのです。リサーチャーの挑戦は、効率(それと、その他の望ましい基準)を維持しながら、健全性に背を向けてビジネス案を推進する方

    なぜ採用される言語とされない言語があるのか | POSTD
  • 【翻訳】Amazon Lambdaを使った機械学習 | POSTD

    はじめに 既にお気づきでしょうが、私たち2lemetryはAmazonの最新AWS製品であるLambdaに興奮を抑えきれません。LambdaがMQTTプロトコル(訳者注:pub/subモデルに基づく軽量なメッセージプロト […]はじめに 既にお気づきでしょうが、私たち2lemetryはAmazonの最新AWS製品であるLambdaに興奮を抑えきれません。LambdaがMQTTプロトコル(訳者注:pub/subモデルに基づく軽量なメッセージプロトコル)やThingFabric(訳者注:2lementry社のIoTプラットフォーム)と共にどのように稼働するかを我が社の数名のエンジニアが検証しました。私も、IoT(モノのインターネット)においてLambda内でニューラルネットワークがどのように機能するのかを確かめるため、実際に使用してちょっとした実験を行ってみることにしました。私たちのCEOであ

    【翻訳】Amazon Lambdaを使った機械学習 | POSTD
  • 多くの若きプログラマたちが学ぶべきこと | POSTD

    私はこの7年半、 Ronimo でプログラミングを学ぶ多くのインターン生を指導し、様々なタイプの大学生や大学院生を見てきました。彼らのほとんどには、共通して言える学ぶべきことがあります。特別なテクニック、アルゴリズム、数学、あるいは特定の形式についての話だと思う人もいるかもしれません。もちろんそれも必要ですが、中心的なものではないと私は考えます。彼らが主軸として学ぶ必要があるのは、自己統制力です。常に可能な限り読みやすいコードを書き、開発中の変更により秩序がなくなってきた時にはきちんとリファクタリングを行い、使用されていないコードを除去し、コメントを追加することができるという力です。 プログラミングのインターン生を指導する際、この話にほとんどの時間をかけます。上級のテクニックでもなければエンジンの詳細についてでもなく、概ね彼らにより良いコードを書かせることに主眼を置きます。いつもインターン

    多くの若きプログラマたちが学ぶべきこと | POSTD
  • GoogleがWebでのSHA-1の利用停止を急ぐ理由 | POSTD