タグ

ブックマーク / wazanova.jp (80)

  • CoffeeScriptのリファクタリング - ワザノバ | wazanova

    http://blog.arkency.com/2014/07/6-front-end-techniques-for-rails-developers-part-i-from-big-ball-of-mud-to-separated-concerns/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 シングルページアプリもあり、それでなくてもフロント側のコードを書く機会は増えてきてますが、コードをうまく整理して、 簡単に、もっとテストしやすいコードを書く。 クオリティを下げることなく開発スピードをあげる。 ためのノウハウの一端を開発会社のArkencyがシェアしてくれています。 シリーズの初回は、シンプルなリファクタリングのケーススタディ。 CoffeeScriptのコードが、DOM変換、イベントハン

    yuiseki
    yuiseki 2014/07/27
  • CSSの詳細度をうまく操る - ワザノバ | wazanova

    http://csswizardry.com/2014/07/hacks-for-dealing-with-specificity/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 Harry Robertsがブログで、CSSプロジェクトをうまくスケールさせるためには、詳細度の影響をうまく抑えて、メンテナンス性を高めることがポイントだと解説しています。 どれだけ思慮深くソースの順や継承関係を整理しても、詳細度がトリガーになった上書き起きると、それまでの努力が台無しになる。詳細度のタチが悪いのはオプトアウトできないこと。 であるが、その悪影響をうまくコントロールする策としては、 CSSにおいてセレクタとしてIDは使わないこと。クラスを使うことを上回るメリットはない。そもそも、IDでできることはクラスで

    yuiseki
    yuiseki 2014/07/23
  • Node.js & Go: スタートアップのテクノロジーの選択 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=Iebb5dXaScE 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 GopherCon 2014における、PoptipのCEOであるKelsey Falterの講演。同社はCNN、ESPN、L’Orealなどメディア & コンシューマグッズ大手に、ソーシャルメディアコンテンツの分析やアンケートのプラットフォームを提供しているNew Yorkのスタートアップです。 最初はNode.jsで開発したが、スタートアップにありがちな大手顧客の対応のためのスケールアップと、平行して資金調達活動を続ける中での時間がないバタバタの状況で、 インスタンスが落ちるとシングルポイント障害点になってしまう。ホストしているサーバの障害やアプリのクラッシュなどが

    yuiseki
    yuiseki 2014/07/22
  • レストランのパフォーマンスをRで解析する - ワザノバ | wazanova

    http://perfdynamics.blogspot.com/2014/07/restaurant-performance-sunk-by-selfies.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約5時間前 Performance Dynamicsのブログで、PDQ(Pretty Damn Quick)モデルを利用して、Rでレストランのパフォーマンスを試算した話を紹介しています。 データの元はこちらの記事。NYの老舗レストランが、10年前と比較して、1日当たり同じ数の顧客を対応しているのに、サービスが遅いとのクレームが増えているため、店内の監視カメラで録画したスタッフの動きを比較して分析。その結果、店内の無料Wifiのつなぎ方の問い合わせやつながりづらいというクレームへの対応、顧客がスマホで

    yuiseki
    yuiseki 2014/07/22
  • 何でもデバッグできるようになるスキル - ワザノバ | wazanova

    https://www.youtube.com/watch?v=VV7b7fs4VI8 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 パッケージ(apt, yum, gem等)レポジトリのホスティングサービスであるPackageCloudを開発している、James Golickの講演です。 パフォーマンスの高いハイクオリティなソフトウェアをデプロイしたければ、あらゆるレベルでバグ修正ができるようになること。 まず、エピソードとして紹介しているのが、友人の会社のサイトが落ちて、あいにく、その会社のエンジニアが出払ってしまっていて、どうにかしてほしいと助けを求められたときのこと。 ソースコードを見たことない。 システムの構成を知らない。 phpは詳しくない。 SSHでアクセスできる情報だけはある。 とい

    yuiseki
    yuiseki 2014/07/22
  • The Twelve-Factor App の解説 - ワザノバ | wazanova

    The Twelve-Factor AppはHerokuが提唱しているマニフェスト的なもので、モダンなウェブアプリをつくる際に留意すべきポイントがまとまっています。意図するところがすぐにはわかりづらい表現がいくつかありますが、それに対して、Will Koffelがブログで "12-Factor Apps in Plain English" と題して、平易な言葉で解説してくれています。 I. Codebase — One codebase tracked in revision control, many deploys コードベースはソース管理システムに置き、多くの環境にデプロイできるようにしておくこと。。 II. Dependencies — Explicitly declare and isolate dependencies 依存するライブラリは明確に宣言し、コードをデプロイするとき

    yuiseki
    yuiseki 2014/07/20
  • ユーザインターフェースのアルゴリズム - ワザノバ | wazanova

    https://www.youtube.com/watch?v=90NsjKvz9Ns 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 (注)参照しているビデオは、矢印キーで前のページに移動した後に、再び矢印キーで指定しているページに戻ってこないと、うまく再生機能が起動しないようです。面倒ですが、済みません。 Mark DiMarcoのJSConf 2014での講演です。アルゴリズムがどのように適用されているかを、数式でなく、映像で説明してくれているのが、とてもわかりやすいです。 Amazonのプルダウンメニューの工夫の話は聞いたことがありましたが、元をたどればAppleが発明したものだけどOS Xに移行するときに使われなくなった(コピーし忘れた?)テクニックなのですね。知りませんでした。 1) 画面

    yuiseki
    yuiseki 2014/07/09
  • Dropbox & Mailbox: モバイルアプリでの共有ライブラリの利用 - ワザノバ | wazanova

    http://www.infoq.com/news/2014/05/dropbox-cpp-crossplatform-mobile? 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 InfoQの記事を読んでもっと詳しく知りたいと思ったので、元ネタを確認して個人的に興味をもったポイントをまとめてみました。 昨年のMobile@ScaleでのStephen Poletto (Dropbox) とSean Beasusoleil (Mailbox)の講演 先日のUIKonf2014でのSteven Kabbes (Mailbox)の講演における、Core Dataまわりの取り組みのメモ UIKonf2014でのSteven Kabbes (Mailbox), Stephen Poletto (Carous

  • Iconfinder: 画像データの重複チェックのアルゴリズム - ワザノバ | wazanova

    http://blog.iconfinder.com/detecting-duplicate-images-using-python/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約5時間前 Iconfinderは以前、500 Startup Fundのデモdayでプレゼンするのを見た記憶があります。それから資金調達もできたようで、無事生き残ってますね。 アイコン等の画像ファイルの検索 & 販売をするサイトですが、悪いユーザがIconfinderから画像をダウンロードした後に、そのまま、もしくは多少改変して、Iconfinderにアップして販売しようとする不正行為があるようです。その対策のための検知アルゴリズムについてブログで紹介しています。 一般的な画像データをハッシュ化するアルゴリズムでは、画像のごく一部

    yuiseki
    yuiseki 2014/04/19
  • モバイルAPIデザインのまとめ - ワザノバ | wazanova

    Natasha Murashevがブログで、API Strategy and Practice Conferenceにおける、Michele Titolo (先月、「 Ruby RoguesメンバとiOSエンジニアAPI議論」で紹介しました。)とEtsyのPaul Wrightの講演のポイントをまとめてくれています。 1) スピード ユーザは待ってくれない。300msで、リクエスト / レスポンスの処理 / ユーザに結果の表示をする。 2) RESTが常にベストとは限らない 以前のEtsyのAPIリソースはDBスキーマのミラーになっていた。クライアントがリスティングのリストを受け取ったら、ユーザがFavoritedに指定しているリスティングIDを取得するために、再度APIコールする必要があった。クライアントのAPIコールが増えると、クライアントのスピードが落ちる。また障害の可能性となるポ

    yuiseki
    yuiseki 2014/04/17
  • GitHub: ストレスをうまく減らしているのがキモなんだと思った - ワザノバ | wazanova

    http://zachholman.com/posts/github-communication/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 ほうれんそう(報告/相談/連絡)って正直面倒ですよね? もちろん自分も大人ですから、仕事におけるタイミングよい細かなコミュニケーションの大切さは理解してます。だから職場では頑張ってやりました。折をみてメンバ全員を集めて話しもしました。1 on 1のミーティングもやりました。そしてメンバにもまわりとのコミュニケーションを積極的にとるように期待しました。 けど、子供のときに朝8時半に学校に行かなくてはいけなかったときと音では変わってないと思います。やらざるを得ないからやるということ。やはりストレスです。 GitHubのコミュニケーション伝導師のZach Ho

    yuiseki
    yuiseki 2014/03/29
  • Gruntとgulp.jsでサイトパフォーマンスを向上させる - ワザノバ | wazanova

    @yosuke_furukawaさんがtweetしていたサイトパフォーマンスに関連する Gruntとgulp.js のタスク一覧です。確かによいまとめなので、メモしておきます。 GruntとGulpには、画像の最適化、HTML/CSS/JavaScriptファイルの結合 & 圧縮をするタスクがあるので、まずそちらをベースラインとして利用されたし。 1) 画像ファイルの圧縮 & 最適化 webページは平均1.5MBで画像ファイルが多くを占める。モバイルで160KBの画像ファイルを追加すると直帰率が12%悪化すえるというEtsyのデータがあり。 Grunt grunt-contrib-imagemin grunt-imageoptim (OSXのみ) 二つのタスクのどちらを選ぶかは、こちらの比較表 で確認してください。 Gulp gulp-imagemin 3/4/2014時点ではImage

    yuiseki
    yuiseki 2014/03/07
  • GitHub の ATOM が CoffeeScript で書かれているのはどうなの? - ワザノバ | wazanova

    http://discuss.atom.io/t/why-coffeescript/131 2 comments | 2 points | by noto ■ comment by noto | 約1時間前 先日 GitHub が発表してエディタ ATOM のディスカッション・フォーラムでなぜ CoffeeScript で書かれていて、EcmaScript 6 (ES6) じゃないの? node.js/V8 を利用するデスクトップアプリケーションなら ES6 をすぐに使うほぼ完璧な機会なのに、という問題提起があり、それについて議論があったようです。 前提として、GitHubJavaScript Styleguide に 新たに JS を書く時は CoffeeScript で書くこと 新たに .js ファイルを追加することは避けること と書かれていて、GitHub の中の人としては

    yuiseki
    yuiseki 2014/03/05
  • Etsy: モバイルアプリの継続的インテグレーション - ワザノバ | wazanova

    http://codeascraft.com/2014/02/28/etsys-journey-to-continuous-integration-for-mobile-apps/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約7時間前 EtsyのNassim Kammahが同社のモバイルアプリのCIシステムを紹介しています。 Build CIマシンはMac Mini + Chef 例えばiOSアプリのビルドはコマンドラインで、xcodebuild -scheme "Etsy" archive パッケージのインストールはhomebrew cookbook ruby環境の管理はrbenv cookbook Xcode(一部手動のテップあり。)/ Git / Androidのパッケージの95%をCIマシンでの

    yuiseki
    yuiseki 2014/03/04
  • Twitter: 14万件/秒のtweetを支えるFinagle - ワザノバ | wazanova

    https://blog.twitter.com/2014/netty-at-twitter-with-finagle 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 Twitterの一連のシステムは、バックエンドのユーザプロファイル / tweet / タイムラインから、HTTPリクエストを処理するフロントAPIのエンドポイントに至るまで、Finagle上で構築されてます。同社のエンジニアブログでその概要が紹介されています。 障害耐性があり特定のプロトコルに依存しないRPCフレームワーク for JVM Netty (NIOクライアントサーバフレームワーク) 上に構築。SOA (サービス指向アーキテクチャ)では上流サービスの待ち受けをしている時間が長いので、非同期処理ライブラリが効果的。 Twitt

  • フロントエンド自動化ツールをまとめて理解する - ワザノバ | wazanova

    http://www.youtube.com/watch?v=1OAfGm_cI6Y 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 GoogleのAddy OsmaniによるFuture of Web Appのキーノートスピーチです。 49分間 [Video]で下記の話題を全てまとめてます。フロント関連の便利ツールが一通り網羅されてます。おかげで、Yeoman (Yo/Grunt/Bower) の概要もすっきり理解できました。スライド(236枚)で確認されたい方はこちら。 Codekit Hammer Prepros Koala Mixture compass.app scout-app Yeoman / Grunt grunt-image: JPG/PNG/Gifを最適化して軽量化 grunt-

  • Netflix: Deep LearningのインフラをAWS上で構築する - ワザノバ | wazanova

    http://techblog.netflix.com/2014/02/distributed-neural-networks-with-gpus.html 2 comments | 0 points | by WazanovaNews ■ comment by Jshiike | 1日前 脳の神経細胞の仕組みを模したニューラルコンピューティングを利用した機械学習の分野であるDeep Learning (深層学習)は、Googleなども取り組んでいてホットなトピックですが、Netflixはその成果をどのように利用しようとしているかはまだ具体的に公表はしていません。パーソナライゼーション関係のようですが詳細は不明。しかし、そこはNetflixらしく今回は、Deep Learningを活用したい企業のために、AWSを利用したインフラ構築の取り組みを紹介してます。 従来の事例は専用のハードウェ

  • Gruntとgulp.js - ワザノバ | wazanova

    http://markgoodyear.com/2014/01/getting-started-with-gulp/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 JavaScriptCSSファイルの最小化や画像の最適化など、JavaScriptで書いたタスクを実行してくれてるのはGruntがメジャーですが、最近名前を聞くgulp.jsでは、各プラグインをinput/outputで都度設定するのではなく、まとめて処理してくれるので、例えば、 Grunt: sass: { dist: { options: { style: 'expanded' }, files: { 'dist/assets/css/main.css': 'src/styles/main.scss', } } }, autopre

    yuiseki
    yuiseki 2014/02/12
  • テスト駆動型開発についての議論 - ワザノバ | wazanova

    http://blog.testdouble.com/posts/2014-01-25-the-failures-of-intro-to-tdd.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約7時間前 Test Double社がブログで、TDD (テスト駆動型開発) を教える場合のアプローチを提案しています。 TDDについて、同じ用語やツールを使っていても、「モックオブジェクトがありすぎて、ひどい。」「モックオブジェクトがあふれていて素晴らしい!」という異なる見解に至るケースがでてしまっているのは、理想的なゴールに至る道筋を統一したかたちで教えきれてないからだと指摘しています。 TDDの一番の効果はコードのデザインの改善であり、コードのクオリティの担保は、うまくいけば二次的な効果、まかり間違えば幻想

  • Trelloのアーキテクチャ - ワザノバ | wazanova

    http://nodeup.com/fiftyfour 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 Trelloのアーキテクチャについてのアップデートです。2012年1月にブログで紹介されたものと、昨年11月の最新状況をまとめてみます。 まずは、当初のアーキテクチャ: UIをクライアントサイドで生成し、プッシュでの更新を受け入れるシングルページアプリ。Client/ServerともにJavaScript、2011年5月以降はCoffeeScriptで書いている。 1) The Client TrelloのサーバはHTML、クライアント側のコードをほぼ扱っていない。Trelloのページは2Kのシェルで、一つの圧縮されたJavaScriptファイル(サードパーティのライブラリと圧縮したCoffeeSc

    yuiseki
    yuiseki 2014/01/28