タグ

ブックマーク / havelog.aho.mu (46)

  • Web Components を支えるPolyfillライブラリ

    Hello 生成されるJSそのものはピュアな感じなので、たしかにbosonicを捨ててもWeb Componentsとして成り立ちそうではある。 瑣末だが、この記事を書いてる時点で試したらWeb Platform featuresのフラグをEnableにしたCanaryで、bosonic-pollyfillsがエラー吐いてる... 余談、実はえらいかも Polymerコンポーネントって、結局Polymer入れないと使えないなら、BackboneJSで使えないAngularディレクティブみたいなもんな気がしてきた。Bosonicのコンセプト、実は偉いかも。(出来る範囲は制限されるかもしれないけど) — あほむバーガー (@ahomu) June 30, 2014 結論 個人的にはふつうのPolyfillとして動いてくれるものを精査したかったのだけど、結果的に Polymer/platform

    Web Components を支えるPolyfillライブラリ
  • AngularJSとサーバーサイドテンプレートの混在とngNonBindable

    Angularとサーバーサイドテンプレートの混在 先日リリースされた某サービス(他社)がAngularを使っていて、XSSがボロボロ出てくるだとか、{{var}} な形式で値を入力するとng-template側でテンプレーティングされるだとかの話がありました。 詳しくは見ていないので、今回の話とまったく同じかは把握していませんが、サーバーサイドテンプレートを混在させると、次のようなことが起こりえます。 例えばejsとAngular サンプルとしてスカスカなControllerを用意します。 angular.module('app', []).controller('AcmeCtrl', function($scope) { $scope.foo = 'bar'; }); ejsは次のようなテンプレートになっているとします。

    AngularJSとサーバーサイドテンプレートの混在とngNonBindable
    vvakame
    vvakame 2014/04/14
    サーバサイドテンプレートかー(もう何年も使ってない
  • Gruntについて最新の気持ち

    思いつき だいぶ前からGrunt周りというかGruntそのものへの関心が薄れゆくなか、タスク周りがやたらと充実してきたエコシステムの恩恵を、ただただ享受するにとどまっている。 業務で700行のGruntfile.jsを見かけて、SAN値をもっていかれた折に前々から感じていた疑念が表に出た。 「これ、Gruntに仕事させすぎじゃないの」 分担してもよいのでは 前述の700行のなかには、ファイルのビルドをはじめとして、ユニットテスト、E2Eテスト、ドキュメント生成、ローカルサーバー、LiveReload etc etc etc ...すべてひとつのファイルに入っていた。 (; ⁰⊖⁰) Oh... いまいち感覚的なトコロなので表現しづらいのだが、役割としてあまりにGruntfileで表現している内容がごった煮すぎるように思う。 自分の場合、テスト周りはtestemにしていて、ドキュメント生成系

    Gruntについて最新の気持ち
  • Componentによるフロントエンドのパッケージ管理

    直近で、新規案件に関わることになりそうなので、ライブラリ選定やタスクランナー、そして今回の依存管理のようにベーシックな話が続いてます。次第に、具体的な実装やコード設計のポストが多くなる・・・はず。 今回はVue.jsでも触れましたが、改めてcomponent - modular javascript frameworkについて。 概要 Componentはパッケージマネージャー兼、依存解決込みのビルドツールです。クライアントサイドについて、JSのパッケージマネージャーやビルダーは既にありますが、Componentは HTML/CSS/JSをセットにして扱うことができます。 npmでいうpackage.jsonと同様に、component.jsonという定義ファイルによって、パッケージの依存関係やリポジトリなどの各種情報を示します。 component/component コア部分のリポジト

    Componentによるフロントエンドのパッケージ管理
    vvakame
    vvakame 2014/02/18
    初めて知った
  • Angularそっちのけで、Vue.jsについて所感

    Vue.js 軽量でパワフルなデータバインディングMVVM, vue.jsで遊んでみた - mizchi's blog を読んで触発されたので、自分も外見的に良いなと思ったポイントだけ書き留めてみます。さすがに実戦投入できていないので、そのあたりの精度は悪しからず。 サンプルコードの雰囲気 サンプルコードとか自分でちょっと触ってみたときの感触からは、以下のポイントが気に入りました。data-bidingsとかは前提として便利です。はい。 覚え切れそうな分量のAPI Class: Vue - vue.js 脳みそちっちゃいので助かります。それに尽きる。 プロパティによる宣言っぽさ Angularだとイベントハンドラ類を書くにも、$scopeに都度ハンドラを仕込んでいくのがあまり好きでないです。工夫で回避できそうですが、与えられたスタートが下記のような状態であることには変わりません。 angu

    Angularそっちのけで、Vue.jsについて所感
  • VagrantとChef-soloについて初歩の備忘

    開発環境を管理する 遅まきながら触ってみたら、予想以上に簡単だったのでちゃっちゃと備忘する次第。 Vagrant Chef | Opscode ということで、開発環境をどうにかしたかったので、VagrantとChefによる管理を試してみました。ついでに、Amazon S3のようなインスタンスを対象にもセットアップできるようにすることも想定してます。 記事は、ほんとに備忘録ノリなので、「Chefとは」「Chef soloとは」「Vagrantとは」などについては各自ググってください。 前提 現状は、開発環境のVMが秘伝のタレと化している 新しくVMをセットアップする際の作業にも秘伝のスクリプトが点在する phpnginxのconfigが、複数のリポジトリに偏在していて集めるの大変 それぞれが個別に設定しなくても、開発環境を一斉に更新できるようにしたい 新しい人がジョインしたときも同じ水準

    VagrantとChef-soloについて初歩の備忘
    vvakame
    vvakame 2013/08/07
    僕も今同じくらいの理解度だ
  • ScalaでAndroidアプリな修行をはじめています

    Android! 自称フロントエンドエンジニアということで、普段はHTML/CSS/JavaScriptが守備範囲ですが、Android/iOSでネイティブアプリも作ることができたら、クライアントサイド実装の幅を拡げられるな〜、ということでレッツトライ。 前回Railsで俺専用RSSリーダーを用意したので、それのControllerに.jsonのレスポンスを追加してAPIらしくしました。 それを取得してAndroidでリスト表示+選択した記事のWebView表示くらいまでを目標に挑戦中。 今の時点でも、リスト表示とカテゴリー切り替え、WebViewでの記事表示までは出来てます(∩´∀`)∩ ワーイ 解説記事を見ながら環境構築 前提としてScala + IntelliJ IDEAでAndroidしたかったので、 ちょうど同じ条件で手順を解説されている[Mac] Android アプリを Sc

    ScalaでAndroidアプリな修行をはじめています
  • GPUアクセラレーションとposition: relativeによるレイヤー生成について

    またアニメーション... ボタンなどのUIGPUアクセラレーションが効いたアニメーションをつけたとき、iOSにおいてはiPhone4か4SのWebViewあたり、Androidにおいては….まぁ機種依存的(げんなり)に、アニメーションの立ち上がりが遅いことがあります。 その辺を調査していたところ、position: relativeの指定による、意図しないレイヤー生成&GPUアクセラレーション巻き込みによって、何かしら合成レイヤー周りでオーバーヘッドが発生してしまっているんではないかな、という憶測に行き着いた次第。今回はその辺りを見ていきます。 GPUアクセラレーションが効いたアニメーションは、CSS Animations、CSS Transitionsのほか、特殊なプロパティ(transform3d: scale(1,1)とか)で強制的にGPUアクセラレーションを効かせたCanvasア

    GPUアクセラレーションとposition: relativeによるレイヤー生成について
  • 描画とかGPUアクセラレーションの怪 (モバイル編)

    何かと不透明なあたり 気がつけば一ヶ月ほどブログを更新していませんでした。リハビリ記事です。 今回は、GPUを効かせる == それに関連するプロパティ(ただしOSやバージョンによって何がトリガかは厳密に異なる)を適用したら挙動が改善した、というようなノリの体験TIPSをゆるくまとめました。 このあたりの振る舞いについては、描画パフォーマンスの問題として、それなりに明らかになってきているように思います。WebKitのレンダリングプロセスにはじまり、GPU命令のサポートが受けられるのはどんな操作だとか、GPUへ処理が預けられるレイヤーの生成がどーとか、最近よく見聞きします。 自分が業務で扱っているスマートフォン向けのWebサービスでは、このような描画パフォーマンスの問題は、スクロールパフォーマンスと合わせて非常にクリティカルです。この辺りについてのロジカルなまとめは、某氏が近日中にまとめるらし

    描画とかGPUアクセラレーションの怪 (モバイル編)
  • 共著しました@HTML5+JavaScript スマートフォンサイト実践講座

    @sugimoto1981さん、@bossatamaさんらとの共著で技術評論社さんより、書籍を刊行させていだくことになりました。(∩´∀`)∩ワーイ → Amazonで書籍をチェック!(アフィリンク) 名古屋にいた頃から進めていたお話だったのですが、とうとうAmazonにカバー画像と共に購入可能な状態で並ぶようになりました! 諸々 初めての書籍&原稿執筆ということで不慣れな点もありましたが、共著者の方々と協力して形にできたので嬉しい限りです。 スマートフォンサイトの基礎知識 スマートフォンサイトの制作環境 HTML5、CSS3とJavaScript 実装設計とサンプルサイトのトップページ アコーディオンUIの実装 スワイプ操作の実装 地図サービスとGPSの連携 フォームとセキュリティ スマートフォン向けの最適化テクニック サンプルサイトの作成を通して、HTML/CSSJavaScript

    共著しました@HTML5+JavaScript スマートフォンサイト実践講座
    vvakame
    vvakame 2013/02/05
  • 撃ち合いお疲れさまでした(CSS Nite LP26)

    先日のCSS Nite LP, Disk 26「CSS Preprocessor Shootout」でStylusのご紹介をさせていただきました。 Stylus nib - CSS3 extensions for Stylus enja-oss/stylus · GitHub 自分事で恐縮ですが、StylusでSass/LESSという2大巨星と闘いつつ、CyberAgent3人組の共通裏テーマ「ちゃんとCSS書け」というニュアンスを伝えるのは、正直不安な部分もありました。しかしながら、アンケートを見る限りは極端な不評もなく、Twitterを見る限りは概ね好評だったようで当に良かったです。 今回のセッションで、Stylusの魅力はもちろん、CSSとプリプロセッサの関わりや諸問題について、みなさんに伝わるものがあったなら幸いです。 rework visionmedia/rework · Gi

    撃ち合いお疲れさまでした(CSS Nite LP26)
    vvakame
    vvakame 2013/01/17
  • モバイルブラウザのキャッシュとデータストレージについて

    表題の件について情報を漁った 現時点で裏取り検証をまったくしていないので、議論対象の参考程度でお願いします。 これから実際に手元のプロダクトで検証していく予定ですが、誤読や内容などの疑わしきはTwitterとかでマサカリ投げてください。 ここでは海外のイカしたgeekらが調べてくれた、貴重な情報を信じて話を進めて参ります。素直が一番って、ばーちゃんが言ってました。 Browser Cache キャッシュと言っても無限の領域ではなく、むしろ現実的に出回っているモバイルデバイスのリソースは、ごくごく有限です。その上でブラウザの振る舞いを理解できていないことを反省して、ちょっと調べてみた次第。 まずはブラウザキャッシュに依存したストラテジを支える、キャッシュコントロール + ユーザー操作に関するブラウザの基的な振る舞いについて。 Early findings: Mobile browser c

    モバイルブラウザのキャッシュとデータストレージについて
    vvakame
    vvakame 2013/01/07
  • Backbone.jsを使うときに参考になるリソース 2012年末版 (Backbone Advent Calendar 2012 25th day)

    Backboneを使うときの参考情報たち Advent Calendarがネタ切れの折、最終日が冴えない小ネタで終わるよりはマシかということでリストアップしてみた。 日語リソース では早速、日語のリソースから。古い情報はリストから外しているので、いくらか偏りがあるかも。悪しからず。 ビギナー向けにまとまったの CodeGrid - フロントエンドに関わる人々のガイド Backbone.js Advent Calendar 2011 - Qiita CodeGridで連載中のBackbone入門が、ちょうどリアルタイムに更新されているビギナー向け情報でおすすめ。ただし有料。去年のAdvent Calendarも丁寧でおすすめ。 enja-oss/Backbone · GitHub JavaScript MVCフレームワーク Backbone.jsのコメント付きソースコード日語訳が公開

    Backbone.jsを使うときに参考になるリソース 2012年末版 (Backbone Advent Calendar 2012 25th day)
  • Backbone.js コメント付きソースコード日本語訳

    Annotated Sourceのコメントを訳しました 地味に道のりが長い作業でしたが、何とか先々週末にやっつけて、例によって@cssradar氏に確認していただいたりとかして今に至りご紹介する次第。 日語訳コメントがついたソースコード· enja-oss/Backbone · GitHub なんだかんだで全域を網羅する必要があったたので、非常に勉強になりました。ソースコード自体は短く簡潔なので、Backboneをこれから使い始める/もう使ってるを問わず、まだ読んでない方は一度読んでみると良いです。 監訳謝辞 Revert original text for supervise by ahomu · Pull Request #12 · enja-oss/Backbone 上記Pull Request&監訳依頼につきまして、多大なるレビューをしてくださった@cssradar 氏に感謝を。

    Backbone.js コメント付きソースコード日本語訳
  • Gruntによる継続的なビルド環境を求めて 〜 package.jsonと0.4.0のこと

    安定したビルド環境 gruntの広まりを感じる...。みんな...package.jsonをつかうのです...そしてバージョンにも気を遣ってstableな環境を目指すのです....安定して使えないビルド環境はいくらナウくてもゴミです....。 — aho.mu (@ahomu) December 11, 2012 夏前に、nodeでビルドってなんかナウい(∩´∀`)∩ワーイって使い始めて、秋から現職のプロジェクトで実践してみた結果、そんな当たり前な視点を忘れないようにしなければ、と強く思った次第。 今回は下記の2点を紹介します。 Gruntと永く付き合うためのノウハウとして、package.jsonを使った管理について 賞味期限の短いノウハウとして、Grunt 0.4.0への移行に関して Gruntイイヨーの続きとして、今後付き合っていくために必要なことを改めておさらい。 1. packa

    Gruntによる継続的なビルド環境を求めて 〜 package.jsonと0.4.0のこと
  • CSSプリプロセッサのfunctionを拡張してみた (CSS Preprocessor Advent Calendar 8th day)

    CSS Preprocessor Advent Calendar 2012の8日目でございます。飛び道具的な好奇心に基づき、functionの拡張について調べてみた次第。 今回は、下記の2つの関数をサンプルとして扱います。どちらも実用的なものではありませんが、あくまでサンプルということで、、、。 reverse - 与えられた文字列を逆順に並べ直して返す randomColor - ランダムなカラーの16進数を返す Sass編 Sass - Syntactically Awesome Stylesheets Module: Sass::Script::FunctionsにあるAdding Custom Functionsを参考にします。じつは、LESSとStylusは使ってたんですが、Sassって使ったことないんですよね...。 sass_add_func.rb Sass::Script:

    CSSプリプロセッサのfunctionを拡張してみた (CSS Preprocessor Advent Calendar 8th day)
    vvakame
    vvakame 2012/12/11
  • Backbone.jsで今つくっている構成について (Backbone Advent Calendar 2012 1st day)

    Advent Calendar 1日目だよ ってことで、Backbone.js Advent Calendar 1日目を書かせていただきます。当は先日公開したFAQの日語訳を一発目にしたかったのですが、公開したい欲に負けた次第。 何とかして現状を振り返るアウトプットの機会にしたかったので、今やっているプロジェクトで書いたコードの大まかな構成と局所的なパターンの紹介をします。 いま手元で作成しているものは、スマートフォン向けのシングルページなWebアプリケーションです。専任で大量のJavaScriptをスクラッチするの初めて。Backbone自体も割と初挑戦。 ここでいうシングルページは、HTML1枚のみで、ページ遷移はbodyの中をJavaScriptで書き換えていく構成のアプリケーションを指しています。 今のプロジェクトから抽出されたクラス構成 下記のような構成に落ち着き、抜的なリ

    Backbone.jsで今つくっている構成について (Backbone Advent Calendar 2012 1st day)
  • Backbone.js FAQ 日本語訳 - "is a library, not a framework"

    Backbone.js FAQ を日語訳しました Backbone/docs/FAQ.md at master · enja-oss/Backbone · GitHub 上記のGitHubから参照できます。 まずFAQから訳しましたが、最終的にはみんなの力で全訳ドキュメントにするのが目標。ほんとは家をforkすべきだったかもですが、Pull Requestに向けての整備は後で考えます。:) いまは、有志でMarkdownでさくさくと日語ドキュメントを書きためていければいいんじゃないかと思っています。 enja-oss/Backbone ってことでIssueとかPull Request大歓迎です! 詳しくはリポジトリをご覧ください。 Backbone.js の性はMVCでもフレームワークでもない 「クライアントサイドMVCフレームワーク = Backbone.js」というような表現が

    Backbone.js FAQ 日本語訳 - "is a library, not a framework"
  • iOS6 スクロール中のタイマー発火絡みのバグ備忘

    Fxck iOS6!!! と思っている方々も少なからずいらっしゃるのではないでしょうか。ぼくは今わりとそう思っています。 だって、Androidでposition: fixedとか、z-indexとか、怪しげなモノって使わずに避ける、慎重に触れるとかまだ何とかなるじゃないですか。伝家の宝刀「Androidですから…」って言い訳も少なからず使えますし。けれども、AjaxとかTimer周りって、必須すぎて避けようがないんですよ。任意のタイミングで再描画起こすためにsetTimeoutとか使いますよね。遅延描画的な溜め込みとか、ほら、いろいろ。しかもそれ、iOSの最新版ですよ。 そんなわけで、ぼくはiOS6があまり好きではありません。(前置き) でまぁ、Ajaxについては下記によくまとまっていますし、9月ごろの情報ですね。 Understanding the iOS6 AJAX bugs | G

    iOS6 スクロール中のタイマー発火絡みのバグ備忘
  • 続々・PhantomJSで遊びながらHARをYSlowする

    今回は元ネタあり 今回はWeb Performance Power Tool: HTTP Archive (HAR) - igvita.comを元に、HARします。はー。 HTTP Archive 1.2 (frozen) format that can be used by HTTP monitoring tools to export collected data. HAR 1.2 Spec | Software is hard HARというのはHTTPのモニタリングデータの収集結果を表すファイルです。中身は所定のフォーマットに従って書かれた、ただのJSONファイルですね。Request・Responseなどなどが記録されています。 HARの生成 YSlowに.harを渡す パフォーマンス解析の結果を得る のような順序で進めます。 HARの生成 HARの生成については、phantomj

    続々・PhantomJSで遊びながらHARをYSlowする
    vvakame
    vvakame 2012/11/25