タグ

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

  • 英単語を覚えるためのいくつかの戦略

    こんにちは、斉藤です。 ITエンジニアと切っても切れない関係なのが英語ですね。 ライブラリの公式ドキュメントを読むとき、Github上でやり取りするときには避けては通れません! そう思って英語を勉強している訳ですが、英単語と格闘することが多いです。 という訳で、今回は”英単語を覚えること”に焦点を当てて、いくつか方法を紹介します。 そもそも”英単語を覚えよう”と至った経緯について いままでこんな方法で英単語を調べてきました。

    hilde
    hilde 2015/05/25
  • 透過がサポートされたnode-webkit(NW.js)でガジェットを作ろう

    エントリーはWindows環境(Win7 Professional x64)での話になります。 (透過機能はMacLinuxでも使えます、後述するマニュアルを参照ください。) また、Windows環境では、デスクトップウィンドウマネージャーが有効である必要があるため、 Aero機能が使えない(もしくは無効化にしている)環境ではお試しいただくことができません。 準備 まずは試してみましょう。 前回Blog執筆時の最新バージョンは 0.10.3 でしたが、ウィンドウ透過は去年11月26日にリリースされた 0.11.2 でサポートされました。 起動の仕方などは前回の記事にも書いてありますので、初めて触る人はそちらもご参照ください。 node-webkit配布元のDownloadsから目的の環境に合わせたファイルをダウンロードします。 私の場合はWindowsの64bitですね。 「v0.1

  • Webスクレイピングが捗るGoutteを使ってみる

    シャワー後の水切りでヘドバンしてたら頸椎を痛めてしまいました。あれは絶対やめた方がいいです。と周囲に広めているたきゃはしです。急に題ですが今回はPHPで簡単にできるWebスクレイピングをご紹介します。 ◯ Webスクレイピングとは Webサイトからデータを抽出するソフトウェア技術のことです。 RSSやWebAPIが公開されていないサイトからでもデータ抽出が出来るようなイメージです。 早速クローラーの Goutte(グットゥ) を使って紹介していきたいと思います。 Goutte は Symfony や Twig、Pimple等の開発者として知られるFabienが手がける人気ライブラリです。 ◯ インストール

    Webスクレイピングが捗るGoutteを使ってみる
    hilde
    hilde 2014/10/06
  • Protractorでハイブリッドアプリを自動テスト!

    こんにちは、吉田です。 アプリの開発にはテストがつきものですよね。 納品前に最終的なテストを行うのはもちろんですが、それに加えて開発中も気軽にテストを実行できる環境があれば、既存コードのリファクタリングや使用しているフレームワークのバージョンアップなども安心して行えます。 内部のロジックをクラスやメソッド単位で内側からテストするユニットテストの自動化は行われている場合も多いかと思いますが、アプリの場合は画面遷移や要素の表示・挙動が占めるウエイトもかなり大きいので、「Aのボタンを押したらBの画面に遷移し、Cという要素が表示されている」といったような外側からのテストも大事になってきます。 その辺りのテストは手動で行う場合もあるかもしれませんが、フレームワークのバージョンアップやリファクタリングのたびに手動で全ページを表示して動作確認を行うのはつらすぎる。。 外側からのテストも自動化したい・・!

    Protractorでハイブリッドアプリを自動テスト!
    hilde
    hilde 2014/09/20
  • DOM-based XSS

    ようやくアシアルに馴染んできました坂です。 今回はWebアプリケーションのセキュリティのお話です。 Webアプリケーションのセキュリティと聞くとサーバサイドスクリプトの脆弱性と思われがちです。 年々攻撃手法は多様化しHTML5とJavascriptだけのWebアプリケーションでも脆弱性は発生します。 例としてありがちなリダイレクトページとその問題です。 リダイレクトの方法はいくつかありますが簡易的なものの一つにリダイレクト先のURLをハッシュパラメータ(#マーク以降のパラメータ)で渡し、Javascriptを使ってリダイレクトさせる方法があります。 下記が脆弱性を含むリダイレクトするコードです。 <script type="text/javascript"> var redirectUrl = decodeURIComponent(window.location.hash.slice(w

    DOM-based XSS
    hilde
    hilde 2013/11/17
  • UMLを描こう – Vol.6 ロバストネス図からシーケンス図を描く

    こんにちは、浦です。 今回はロバストネス図からシーケンス図を描く方法について、順を追って解説します。 シーケンス図の立ち位置 シーケンス図は、詳細設計の成果物の中で最も重要な図です。描く際はいきなりゼロから描くのではなく、ロバストネス図を参考にしながら描きます。下図に、開発プロセス全体におけるシーケンス図の立ち位置を示します。 ICONIX Processでは、設計プロセスを予備設計と詳細設計の2段階に分けて行います(これを2パス設計と呼びます)。まずは予備設計で、実際のクラスを気にせずに「システム全体としてどのような処理・対話をすべきか」を先に決めます。次に詳細設計で、具体的にどういったクラスにそれらの処理を割り振るかを決めていきます。事前にロバストネス図さえ描いていれば、要件定義にきちんと結びついたシーケンス図を描くことができます。詳細設計ではシーケンス図の他にも、必要に応じてクラス

  • http://blog.asial.co.jp/1195

  • 【Winアプリ】ブラウザの自動操作!~Selenium WebDriver~ : アシアルブログ

    はじめに 今回はSelenium WebDriverをご紹介します。ブラウザ操作を自動化する際には最適な仕組みです。Webシステムのend-to-endテストを自動化する際には、ブラウザ操作が必要になることがあります。そんな時にSelenium WebDriverはとても便利です。 Selenium Seleniumとは、ブラウザをプログラムで動かすフレームワークです。この仕組みを使うことで、ユーザーテストなど、様々な処理を自動化できます。現在のところ、Seleniumは以下のWebブラウザを制御できます(公式サイト)。 Internet Explorer Firefox Chrome Opera Android標準Webブラウザ Safari (iPhone標準Webブラウザ) 実際に使用する際には、以下の2つの仕組みのどちらかを使用します。

    【Winアプリ】ブラウザの自動操作!~Selenium WebDriver~ : アシアルブログ
    hilde
    hilde 2013/07/15
  • 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」
    hilde
    hilde 2013/05/26
  • ユニットテスト、ここどうするの?

    こんにちは、斉藤です。 前々回はTDDというユニットテストを使った開発方法、前回はユニットテスト実行の自動化と、触れてきました。 今回もやっぱりユニットテストについてということで、方法論などをtips形式でお送りします。 * プライベートメソッドのテスト ユニットテストでは、公開されているメソッドを呼び出して実行します。 クラスを書いたことがある方なら知っている通り、プライベートメソッドを外部から呼び出すことは出来ません。 そのため一般的にこれは、避けた方が良いと言われていますが・・・自分はテストしたい派なので、以下の方法をご紹介します。 – パブリックメソッドでプライベートメソッドを呼び出す 一番簡単な方法ですね。 ただしこの場合だと、公開APIと非公開APIの区別が出来なくなってしまいます。 クラスに手を入れることになり、テストのためだけのコードが混じってしまうことがデメリットです。

    ユニットテスト、ここどうするの?
    hilde
    hilde 2013/03/19
  • Standard PHP Libraryの例外クラスを活用しよう!

    はじめに 今回はPHPでの例外の扱い方、特にSPL (Standard PHP Library)の例外クラスの使い方を見ていきます。例外を投げる際には、エラー種別により例外クラスを切り替え、受け取る側での処理も分けます。Javaなどではごく当たり前です。しかし、PHPプログラマの中には、そこまで切り分けない人も意外といます。Exceptionクラスだらけのコードもしばしば見かけます。 SPLの例外クラス アプリケーションによっては、例外クラスを独自に作成することもあります。とはいえ、いきなり例外クラスを複数定義して使いまわすことは、若干ハードルが高いかもしれません。まずは、SPL (Standard PHP Library)の例外クラスを使ってみましょう。SPLでは以下の例外クラスを提供しています。 SPL 例外クラスツリー LogicException (extends Exceptio

    hilde
    hilde 2013/01/26
  • CakePHP2で簡単にACLを使う方法

    チョーシドウダ?カラダァ?どうも、高橋です! 今朝、CakePHP2.3.0-beta版がリリースされましたね! 今回のリリースでは、パフォーマンス、セキュリティ、使いやすさを向上させる新機能が追加されました。 また完全に下位互換があるので、2.2系からのマイグレーションは(おそらく)容易でしょう。 というわけで、早速Cake2.3を使ってACLを実現してみたいと思います。 イメージが掴みにくいと思ったのでデモを作成しました。(がんばりました! ログイン:http://s1.asial.co.jp/~yuya/blog/20121029/users/login username: adminuser / password: 0000 ACL管理 :http://s1.asial.co.jp/~yuya/blog/20121029/admin/acl またCakePHPのセットアップについて

    CakePHP2で簡単にACLを使う方法
  • 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); }

  • PHPで使えるレコメンドエンジン

    皆さん、こんばんは。笹亀です。 先日、MacBookProの13インチでRetinaディスプレイを搭載したとっても魅力的なモデルが発表されました。 自分のMacBookProが13インチでもう3年くらい使用しているので、買い替えたいと悩んでます。 PCエンジニアの商売道具ですから、多少のわがまましても購入してもバチはあたらないかと思ってます^^; 日はレコメンドエンジンについてご紹介したいと思います。 主にPHPで利用できるという目線で使ったことがあるもの、使ったことがないものの両方をご紹介します。 レコメンドというのはよく「この商品を買った人はこの商品も買ってます」とか見受けるかと思いますが、商品などをおすすめするような機能のことを言います。 ただ、一般的に無料(オープンソース)で提供されている独自のロジックにより複雑な計算などをさせてレコメンド機能を実装したい場合などにはあまりむか

    PHPで使えるレコメンドエンジン
    hilde
    hilde 2012/11/11
  • nginxで認証用proxyサーバを作成

    今回作るシステムは、静的コンテンツを配信するサーバがすでにあり、 ・認証機構(ログイン画面)を追加 ・変更を最小限に抑えて開発 ・スケールアウトしやすい ・アクセス数が多いので、できるだけ処理を軽くする ことを目的とします。 この手のシステムは、既存システムに手を入れるのが普通ですが、既存システムでプログラムが動かないことには話になりません。 という事で、認証機構を追加したプロキシサーバを作成することで実現したいと思います。 仮に、PHPのみを使用して実装する場合は、下記のように出来ます。 ・ログイン画面はPHP ・rewriteでログイン画面系以外の全てのアクセスをindex.phpに向ける ・認証に失敗したらログイン画面にリダイレクト ・認証成功したら認証状態をセッションに記録(有効期限も記録) ・セッションはmemcacheなどで全サーバ共有 ・セッションの値が有効なときはコンテンツ

    nginxで認証用proxyサーバを作成
    hilde
    hilde 2012/09/24
  • 続・イラストでわかるgit入門の入門:ブランチを切る

    drwxr-xr-x   3 masatoshi  staff  102  6 13 18:29 . drwx------+ 17 masatoshi  staff  578  6 13 18:28 .. drwxr-xr-x  10 masatoshi  staff  340  6 13 18:29 .git

    続・イラストでわかるgit入門の入門:ブランチを切る
    hilde
    hilde 2012/07/03
  • DeleGateを使った送信メールのフィルタリング

    tar xzf delegate9.9.7.tar.gz cd delegate9.9.7 make これで、src内にdelegatedが作成されるので、/usr/local/sbin等にコピーして使用します。 ■DeleGateの起動 delegated に適宜必要なオプションを追加して実行します。 メール送信の中継では、

    DeleGateを使った送信メールのフィルタリング
    hilde
    hilde 2012/06/10
  • emacsを少し便利に使う設定

    /ssh:10.0.0.1: /ssh:www@10.0.0.1: ;もちろん、ユーザ名を入れることも出来ます あとはリモートサーバでemacsを開いたように使えます。 さらに、shell-commandもリモートに送ってくれる優れもの。 例えば、M-!で、php -l をしたらリモートのphpを実行してくれます。 さて、次に踏み台サーバを経由しないとアクセス出来ないサーバのファイルを編集する場合には、.emacsに下記のように追記すれば踏み台サーバも問題なく使えます。

    emacsを少し便利に使う設定
    hilde
    hilde 2012/05/25
  • エンジニアの英会話 〜とっさの一言〜

    「トラブルサム」でなく、「トラボーサム」と発音するのがポイント。 日語の発音だと、伝わりにくい、聞き取りにくい一例。 *「仕方ないね」 時には、上記のような複雑な実装をするしか無いときもあるでしょう。 そんなときはこう言います。

    エンジニアの英会話 〜とっさの一言〜
    hilde
    hilde 2012/05/04
  • gitお悩み相談室

    編集をそのまま残したい箇所ではnを、 編集をパーにしてよい箇所ではyをタイプします。 【Q】 addしたらdiffに何も表示されなくなりました。どうしたら良いでしょうか? 【A】 diffに–stagedを付けましょう。コミット待ちのdiffが見れます。

    gitお悩み相談室
    hilde
    hilde 2011/12/25