タグ

ブックマーク / blog.asial.co.jp (116)

  • Chrome Dev Summitで披露された高速化のテクニックの数々(所感を含む) - アシアルブログ

    こちらのブログではご無沙汰しています。田中です。今週はサンフランシスコにて開催されたChrome Dev Summitに参加させていただいていました。今年はweb.devの発表や新しいPageSpeed Insightsなど、例年にも増して盛りだくさんの発表が行われましたが、特に「スピードの改善テクニック」が数多く披露されたように思います。 Chrome Dev Summitのプレゼンテーションはすべて濃厚で、しかも多くの内容は「web.dev」に詳しく説明されています。ここでは、2日間にわたって行われたセッションを振り返りながら、高速化に関する内容をざっくりと追っていきたいと思います。 以前と比べて、WebサイトのJavaScriptコード量は8倍に膨れ上がっている V8の言語機能を今後も最適化していく:Promise、Async & await、フレームワーク対応等 ReactのHoo

    Chrome Dev Summitで披露された高速化のテクニックの数々(所感を含む) - アシアルブログ
    aki77
    aki77 2018/11/20
  • Canvas Fingerprintingというトラッキング技術

    var fingerprint = new Fingerprint({canvas: true}).get(); これだけでトラッキングIDを取得できます。 ※試しに利用して何かあっても責任は取れませんので注意してください。 当に危ないのか? 今のところ追跡をされても問題はないと考えられていますが当のところどうなのでしょう? 悪用されてしまうとしたらどのようなものになるか考えてみます。 ダミーアカウントの無意味化 アカウントを複数持って怪しいサイトではダミー情報を入力して試すなんてことがあると思います。 Canvas FingerprintingのトラッキングIDと個人情報をどこかから取得できれば個人は特定されてしまいます。 こんな事になればメールを入力していないのに怪しいサイトからスパムメールが飛んでくることになりかねません。 個人情報問い合わせサービスの出現 トラッキングIDをキー

    Canvas Fingerprintingというトラッキング技術
  • ダミーデータをhogehogeしないでFakerで生成する

    こんにちは、高橋です。 最近はLaravel4を使った開発をしています。テストやシーダーでダミーデータを扱う際には、Fakerというライブラリを使っているので、今回はそのFakerについて簡単に紹介したいと思います。 Faker(https://github.com/fzaninotto/Faker)とは様々なフォーマットでデータ(数値や文字列)を生成できるライブラリです。「hogehoge」といった汎用データより意味のあるデータで検証したい時にとても便利です。PerlのData::FakerやRubyのFakerから影響を受けているようです。 インストール composer.json

    ダミーデータをhogehogeしないでFakerで生成する
    aki77
    aki77 2014/06/11
  • PHP5.6.0alphaリリース!新機能を試す

    こんにちは、久保田です。PHP5.6.0alpha1が1月23日付けでリリースされました。 この記事では5.6に搭載される以下の新機能や変更を紹介します。 phpdbgデバッガ 可変長引数のための文法の追加 定数定義での計算のサポート その他NEWSファイルに記述されている変更 PHP5.6.0をビルドして試してみる PHP5.6の新機能を紹介する前に、まずはMacOSXやLinux環境にPHP5.6をビルドして試す方法を紹介します。Windows環境の場合にはビルド済みのバイナリが用意されているのでそれをダウンロードして下さい。 まず5.6.0alpha1リリースの記事にあるリンクから、PHP5.6.0alpha1のパッケージをダウンロードして解凍します。次に解凍したパッケージのディレクトリに進んでconfigureスクリプトを叩きます。

    PHP5.6.0alphaリリース!新機能を試す
    aki77
    aki77 2014/03/25
  • 非エンジニアにもオススメ。数学が苦手な統計初心者がR言語を触ってみる。

    こんにちは。海原です。 ここ最近、統計学が流行していますね。「統計学が最強の学問である」がきっかけになっているのでしょうか。数年前に比べてマーケティングが重要視される今日、統計の需要が増えたのかもしれません。私はまだこのを読んでいませんが、読もうと思った矢先にたまたま統計ツールRに出会いまして、調べながら少しいじってみました。Rを使った感触から申し上げますと、SQLを叩いて好きなデータをピックアップするよりもずっと簡単で小気味良いのです。 他の統計ツールには色々な種類があるようですが、よく知られるものとしてIBMのSPSS (IBM)(有償)があります。 その点、RはMac/Win両方に対応しており無償です。またSPSSに劣らない機能を備えており、統計学者の間でデファクトスタンダードとなっているようです。 Rに関して検索すれば丁寧な解説サイトがたくさんありますので、インストールから何の心

    非エンジニアにもオススメ。数学が苦手な統計初心者がR言語を触ってみる。
    aki77
    aki77 2013/07/20
  • PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回

    こんにちは、久保田です。 皆さん正規表現は使っていますか? PHPに限らずどんな言語を使っていても、正規表現にお世話になっていないプログラマはいないと思います。しかし、その正規表現がどのように実装されているかについては知らない方が多いのではないのでしょうか。 この記事では、その正規表現エンジンの実装方法の一つである仮想マシンによる正規表現エンジンの実装方法を解説しつつ実際に簡単な正規表現エンジンを作っていきたいと思います。 正規表現エンジンの実装方法 正規表現エンジンの実装方法はいくつかあるのですが、それの一つに仮想マシンによって正規表現のマッチング処理を実行するやり方があります。PHPで利用している正規表現エンジンであるPCREはこの方式を採用しています。 仮想マシンによる実装方法は、正規表現というよりもプログラミング言語の実装方法の一つとして知られています。Rubyの最もメジャーな実装

    PHPで仮想マシンベースの正規表現エンジンを作ってみる 第一回
  • JavaScriptで日付を扱うならこれ!「moment.js」

    ■ つかいかた(基礎編) ダウンロードしたmoment.jsをscriptタグで読み込ませたら準備完了です。 あとは下記のような実装で使用できます。 // momentオブジェクトを初期化して・・・ var m = moment(); // formatで出力! var output = m.format("YYYY年MM月DD日 HH:mm:ss dddd"); console.log(output);  // => 2013年05月15日 12:34:56 Wednesday // 現在時刻 moment(); // ミリ秒で指定 moment(1368543600000); // タイムスタンプ(秒)で指定 moment.unix(1368543600); // Date.parseで解析可能な文字列を指定 moment("May 15, 2013"); // Dateオブジェクトか

    JavaScriptで日付を扱うならこれ!「moment.js」
  • PHP+Kestrel+Supervisorでお手軽タスクキューイング

    こんにちは、久保田です。 ウェブサービスでは、ユーザのアクションに従ってバッチ処理を行わなければならないケースがままあります。この記事では、バッチ処理の手法の一つであるタスクキューイングをPHPとKestrelとSupervisorを利用して行うやり方の導入を紹介します。 なぜなにタスクキューイング ウェブサービスでは、ユーザのアクションに従って非同期にバッチ処理を行うようなケースがよくあります。 例えばflickrのような写真を共有するウェブサービスで言えば、ユーザが写真をアップロードしたあとに非同期でその画像の複数のサムネイル生成や加工をしなければならないケースがあります。 よく見られるのは、DBにバッチ処理のためのタスクデータを入れておいて、後でcronで定期的に起動するワーカープロセスからバッチ処理を行う方法です。このやり方には、ワーカーを複数プロセスで扱いづらい、処理がリアルタイ

    PHP+Kestrel+Supervisorでお手軽タスクキューイング
  • 成功するPhoneGapアプリを開発するための高速化&UXテクニック

    興味深いブログ記事が海外で掲載されていました。拙訳で恐縮ですが紹介したいと思います。 内容はPhoneGapアプリを高速化するための手法の解説で、具体的な事例とともに、いくつかのテクニックの紹介が行われています。少し長い記述になりますが、是非PhoneGapやMonacaを用いた開発の参考にしてください。 成功するPhoneGapアプリを開発するための高速化&UXテクニック Performance & UX Considerations For Successful PhoneGap Apps PhoneGapアプリを開発する方から、下記のような質問をよく尋ねられます。 ・アプリを高速化する方法は? ・どうやってネイティブアプリのような質感を出せるか? ・プラットフォームに違和感のないアプリを作るためのテクニックは? ・OSのルック&フィールとマッチさせるためには? この記事では、素晴らし

    成功するPhoneGapアプリを開発するための高速化&UXテクニック
  • 簡単にブラウザに埋め込めるWebテキストエディタ “Ace” を使ってみる

    次に、AceをHtmlに埋め込みます。 適当なHtml(仮に ace.html とします)を作成し、先ほどのsrcディレクトリと同じ位置に置きます。 そして、ace.htmlを以下のように編集します。 <html> <head> </head> <body> <div id="editor-div" style="height: 500px; width: 500px">ここがエディタになります</div> <script src="src/ace.js" type="text/javascript" charset="utf-8"></script> <script> window.onload = function() { var editor = ace.edit("editor-div"); }; </script> </body> </html>

    簡単にブラウザに埋め込めるWebテキストエディタ “Ace” を使ってみる
  • PHP5.5 Alpha1リリース! 新機能を俯瞰する

    こんにちは、久保田です。 PHP5.5 Alpha1が11/15日付けでリリースされました。この記事では以下のような新機能や変更を紹介します。 ・ジェネレータとコルーチンの追加 ・finallyキーワードの追加 ・配列や文字列のデリファレンスのサポート ・foreachの中でのlist表現 ・PCRE正規表現での/e修飾子が非推奨化 ・NEWS翻訳 ジェネレータとコルーチンの追加 PHP5.5での一番大きな新機能は、ジェネレータとコルーチンの追加です。文法にyield構文が追加されました。 まずは、ジェネレータを説明します。例えば以下の様なコードが動きます。 <?php function hoge() { yield "hoge"; yield "fuga"; yield "piyo"; } foreach (hoge() as $str) { var_dump($str); }

    aki77
    aki77 2012/11/21
  • JavaScriptでうっかりやってしまいそうなこと色々

    こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。

  • symfonyでMongoDBを使ってみました

    こんにちは。笹亀です。 最近でも無いですが、なにかと注目を浴び続けているのがkey-valueストアです。TokyoTyrant, kumofs, ROMA, Flareなど種類も豊富で使用する用途によって使い分けするのがよいです。そんな中で自分がご紹介したいのはMongoDBです。 MongoDBはドキュメント指向データベースでNoSQLです。ご紹介理由としてはRDBMSから入るkey-valueストアとしてとてもわかりやすいからです。後はサポート言語が大量にあってWEBアプリケーションとして使用するのにとても相性がよいことです。 ※PHPPythonRubyPerlなどなど その他にたくさんの特徴があります。詳細については、下記のドキュメントにてご確認ください。 http://www.mongodb.org/display/DOCSJP/Home ※日人なら日語のドキュメント

    symfonyでMongoDBを使ってみました
  • MongoDBのWeb管理ツール「mViewer」

    db.users.find(); { "_id" : ObjectId("506b958fb9e8c7cfc57cce86"), "firstname" : "aaa", "lastname" : "xxx", "age" : 20 } { "_id" : ObjectId("506b959fb9e8c7cfc57cce87"), "firstname" : "bbb", "lastname" : "yyy", "age" : 30 } { "_id" : ObjectId("506b95a7b9e8c7cfc57cce88"), "firstname" : "ccc", "lastname" : "zzz", "age" : 40 } >>BOXNC > db.users.find().forEach(printjson); { “_id” : ObjectId(“506b958fb

    MongoDBのWeb管理ツール「mViewer」
  • Twitter BootstrapでさくさくWeb開発 : アシアルブログ

    新年度です! 新入学、新入社を迎えるみなさん、おめでとうございます。 エンジニアのみなさんがWebアプリケーションを作るとき、一番悩むのはデザインではありませんか? カッコよくって統一的なデザインがほしい!でもデザインセンスないし…実は私もそうでした。 ですが、2月にメジャーバージョンアップしたTwitter Bootstrapを使うと、簡単にカッコいいサイトが作れます! Twitter Bootstrapとはなにか Twitter Bootstrap CSSのフレームワークです。 Web上に使ってみた!スゲー!等、たくさんのドキュメントが存在していますが、中には2月以前のバージョン(v1.4)について言及しているものもありますので、2系を使う方はバージョンの違いに気をつけて下さい(クラス名など結構ガラっと変わっています)。 今回ご説明しているのは、Twitter Bootstrap 2に

    Twitter BootstrapでさくさくWeb開発 : アシアルブログ
  • 【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(後編)

    こんにちは、橋です。 前回にひきつづき、Safari、ChromeのWebインスペクターやFirefoxのFireBugで使えるconsoleオブジェクトの使い方について書いてみたいと思います。 consoleオブジェクトには以下の19個(logを除くと18個)のメソッドがあります。 assert count debug dir dirxml error group groupCollapsed groupEnd info log markTimeline profile profileEnd time timeEnd timeStamp trace warn そのうち前回は、assertメソッドからgroupEndメソッドまで見て行きました。 今回はinfoメソッドからwarnメソッドまでの使い方について書いていきたいと思います。 infoメソッド console.info(messa

    【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(後編)
  • 【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)

    こんにちは、橋です。 今回と次回の2回にわたり、Safari、ChromeのWebインスペクターやFirefoxのFireBugで使えるconsoleオブジェクトの使い方について書いてみたいと思います。 Javascriptのコードをデバッグする際に、console.logを使ってメッセージやオブジェクトの内容をログに表示することがあるかと思いますが、 この「console」オブジェクト、実はlogメソッド以外にも複数のメソッドがあります。 まずは、consoleオブジェクトにどのようなメソッドがあるか、console.logを使って表示してみたいと思います。 consoleオブジェクトの中身を見てみると、__proto__オブジェクトに以下のメソッドが定義されています。 assert count debug dir dirxml error group groupCollapsed g

    【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)
  • JavaScriptのコーディング規約を気軽にチェック

    こんにちは、中川です。 今回は「Google JavaScript Style Guide」を気軽にチェックできるClosure Linterをご紹介したいと思います。 http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml Google JavaScript Style Guideのいいところですが、 規約だけでなく、しっかりしたツールも揃っているところが素晴らしいと思います。 コーディング規約はあったとしても、それに従っているか定期的に簡単にチェックする方法がないと、 いつしか守られないまま開発されてしまうことになりますね。 ※今回の内容はMacにて動作確認を行なっています。

    JavaScriptのコーディング規約を気軽にチェック
  • 使えるとちょっと便利なSSHのTIPS

    こんにちは、牧野です。久々の、9か月以上ぶりのブログです。。 仕事では、ここ1年近くずっっとインフラ関係のことをやっていました。 今日は、SSHに関するTIPSを紹介します。 1. 特定のサーバーにSSHログインする時に、特定の設定を使用する ホームディレクトリ/.ssh/configファイルに設定を書いておくと、特定のサーバーにログインする時に、自動的に特定の設定を使うようにできます。 SSHのオプションをサーバーによって分けたい時に入力が楽になります。 以下は、xxx.yyy.zzz.aaaでアクセスする時に使う秘密鍵をid_rsa_testに設定しています。 .ssh/config Host xxx.yyy.zzz.aaa IdentityFile /home/asial/.ssh/id_rsa_test 2. ホストキーをチェックしないようにする LinuxからサーバーにSSH接続

    使えるとちょっと便利なSSHのTIPS
    aki77
    aki77 2012/04/05
  • Cordova(PhoneGap)のプラグインの作り方

    こんにちは、橋です。 今日はCordova(PhoneGap)のプラグインの作り方について書いていきたいと思います。 Cordovaは、HTML, CSS, Javascriptを組み合わせて、iOSやAndroidのネイティブアプリが作れるというものです。 Cordovaで用意されたJavascriptAPIを用いることで、ネイティブの機能を使用することができるようになっています。 「HTMLCSSJavascriptでネイティブアプリが作れるとは!ネイティブの機能も使えるし!これはお手軽!!素晴らしい!!!」 と、思うかもしれませんが、Cordovaの内部では、ネイティブのWebviewの上でHTMLを動かし、JavascriptAPIを通じて予め用意されたネイティブの機能を使っているだけなので、実際にアプリを作り始めると、痒いところに手が届かない場面がしばしばあります。 た

    Cordova(PhoneGap)のプラグインの作り方