こんにちは、斉藤です。 ITエンジニアと切っても切れない関係なのが英語ですね。 ライブラリの公式ドキュメントを読むとき、Github上でやり取りするときには避けては通れません! そう思って英語を勉強している訳ですが、英単語と格闘することが多いです。 という訳で、今回は”英単語を覚えること”に焦点を当てて、いくつか方法を紹介します。 そもそも”英単語を覚えよう”と至った経緯について いままでこんな方法で英単語を調べてきました。
こんにちは、古見澤(コミザワ)です。 今回は、前回記事にした node-webkit が透過をサポートし始めたので、HTML5やJavascript、CSSなどのWeb系の言語でガジェットのようなモノを作ってみようという内容となります。 ↓ツイッターから情報を取得して表示するだけの単純なものですが、こんな感じのものを作れます。 動画 node-webkitって何?という方は、前回の記事も合わせてお読みください。 HTML5+CSS3+JSでネイティブGUIアプリが作れる、node-webkitを触ってみる ※本エントリーはWindows環境(Win7 Professional x64)での話になります。 (透過機能はMacやLinuxでも使えます、後述するマニュアルを参照ください。) また、Windows環境では、デスクトップウィンドウマネージャーが有効である必要があるため、 Aero機能
シャワー後の水切りでヘドバンしてたら頸椎を痛めてしまいました。あれは絶対やめた方がいいです。と周囲に広めているたきゃはしです。急に本題ですが今回はPHPで簡単にできるWebスクレイピングをご紹介します。 ◯ Webスクレイピングとは Webサイトからデータを抽出するソフトウェア技術のことです。 RSSやWebAPIが公開されていないサイトからでもデータ抽出が出来るようなイメージです。 早速クローラーの Goutte(グットゥ) を使って紹介していきたいと思います。 Goutte は Symfony や Twig、Pimple等の開発者として知られるFabienが手がける人気ライブラリです。 ◯ インストール
こんにちは、吉田です。 アプリの開発にはテストがつきものですよね。 納品前に最終的なテストを行うのはもちろんですが、それに加えて開発中も気軽にテストを実行できる環境があれば、既存コードのリファクタリングや使用しているフレームワークのバージョンアップなども安心して行えます。 内部のロジックをクラスやメソッド単位で内側からテストするユニットテストの自動化は行われている場合も多いかと思いますが、アプリの場合は画面遷移や要素の表示・挙動が占めるウエイトもかなり大きいので、「Aのボタンを押したらBの画面に遷移し、Cという要素が表示されている」といったような外側からのテストも大事になってきます。 その辺りのテストは手動で行う場合もあるかもしれませんが、フレームワークのバージョンアップやリファクタリングのたびに手動で全ページを表示して動作確認を行うのはつらすぎる。。 外側からのテストも自動化したい・・!
ようやくアシアルに馴染んできました坂本です。 今回はWebアプリケーションのセキュリティのお話です。 Webアプリケーションのセキュリティと聞くとサーバサイドスクリプトの脆弱性と思われがちです。 年々攻撃手法は多様化しHTML5とJavascriptだけのWebアプリケーションでも脆弱性は発生します。 例としてありがちなリダイレクトページとその問題です。 リダイレクトの方法はいくつかありますが簡易的なものの一つにリダイレクト先のURLをハッシュパラメータ(#マーク以降のパラメータ)で渡し、Javascriptを使ってリダイレクトさせる方法があります。 下記が脆弱性を含むリダイレクトするコードです。 <script type="text/javascript"> var redirectUrl = decodeURIComponent(window.location.hash.slice(w
こんにちは、浦本です。 今回はロバストネス図からシーケンス図を描く方法について、順を追って解説します。 シーケンス図の立ち位置 シーケンス図は、詳細設計の成果物の中で最も重要な図です。描く際はいきなりゼロから描くのではなく、ロバストネス図を参考にしながら描きます。下図に、開発プロセス全体におけるシーケンス図の立ち位置を示します。 ICONIX Processでは、設計プロセスを予備設計と詳細設計の2段階に分けて行います(これを2パス設計と呼びます)。まずは予備設計で、実際のクラスを気にせずに「システム全体としてどのような処理・対話をすべきか」を先に決めます。次に詳細設計で、具体的にどういったクラスにそれらの処理を割り振るかを決めていきます。事前にロバストネス図さえ描いていれば、要件定義にきちんと結びついたシーケンス図を描くことができます。詳細設計ではシーケンス図の他にも、必要に応じてクラス
はじめに 今回はSelenium WebDriverをご紹介します。ブラウザ操作を自動化する際には最適な仕組みです。Webシステムのend-to-endテストを自動化する際には、ブラウザ操作が必要になることがあります。そんな時にSelenium WebDriverはとても便利です。 Selenium Seleniumとは、ブラウザをプログラムで動かすフレームワークです。この仕組みを使うことで、ユーザーテストなど、様々な処理を自動化できます。現在のところ、Seleniumは以下のWebブラウザを制御できます(公式サイト)。 Internet Explorer Firefox Chrome Opera Android標準Webブラウザ Safari (iPhone標準Webブラウザ) 実際に使用する際には、以下の2つの仕組みのどちらかを使用します。
■ つかいかた(基礎編) ダウンロードした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オブジェクトか
こんにちは、斉藤です。 前々回はTDDというユニットテストを使った開発方法、前回はユニットテスト実行の自動化と、触れてきました。 今回もやっぱりユニットテストについてということで、方法論などをtips形式でお送りします。 * プライベートメソッドのテスト ユニットテストでは、公開されているメソッドを呼び出して実行します。 クラスを書いたことがある方なら知っている通り、プライベートメソッドを外部から呼び出すことは出来ません。 そのため一般的にこれは、避けた方が良いと言われていますが・・・自分はテストしたい派なので、以下の方法をご紹介します。 – パブリックメソッドでプライベートメソッドを呼び出す 一番簡単な方法ですね。 ただしこの場合だと、公開APIと非公開APIの区別が出来なくなってしまいます。 クラスに手を入れることになり、テストのためだけのコードが混じってしまうことがデメリットです。
はじめに 今回はPHPでの例外の扱い方、特にSPL (Standard PHP Library)の例外クラスの使い方を見ていきます。例外を投げる際には、エラー種別により例外クラスを切り替え、受け取る側での処理も分けます。Javaなどではごく当たり前です。しかし、PHPプログラマの中には、そこまで切り分けない人も意外といます。Exceptionクラスだらけのコードもしばしば見かけます。 SPLの例外クラス アプリケーションによっては、例外クラスを独自に作成することもあります。とはいえ、いきなり例外クラスを複数定義して使いまわすことは、若干ハードルが高いかもしれません。まずは、SPL (Standard PHP Library)の例外クラスを使ってみましょう。SPLでは以下の例外クラスを提供しています。 SPL 例外クラスツリー LogicException (extends Exceptio
チョーシドウダ?カラダァ?どうも、高橋です! 今朝、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のセットアップについて
こんにちは、久保田です。 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); }
皆さん、こんばんは。笹亀です。 先日、MacBookProの13インチでRetinaディスプレイを搭載したとっても魅力的なモデルが発表されました。 自分のMacBookProが13インチでもう3年くらい使用しているので、買い替えたいと悩んでます。 PCはエンジニアの商売道具ですから、多少のわがまましても購入してもバチはあたらないかと思ってます^^; 本日はレコメンドエンジンについてご紹介したいと思います。 主にPHPで利用できるという目線で使ったことがあるもの、使ったことがないものの両方をご紹介します。 レコメンドというのはよく「この商品を買った人はこの商品も買ってます」とか見受けるかと思いますが、商品などをおすすめするような機能のことを言います。 ただ、一般的に無料(オープンソース)で提供されている独自のロジックにより複雑な計算などをさせてレコメンド機能を実装したい場合などにはあまりむか
nginxと言えば、言わずと知れた高速なwebサーバ+ロードバランサです。 とにかく軽量で高速なので、apacheをこれに置き換えて高速化という話もよく聞くようになって来ました。 先日、このnginxとmemcacheを組み合わせてセッション認証サーバを構築したので、それについて書こうと思います。 今回作るシステムは、静的コンテンツを配信するサーバがすでにあり、 ・認証機構(ログイン画面)を追加 ・変更を最小限に抑えて開発 ・スケールアウトしやすい ・アクセス数が多いので、できるだけ処理を軽くする ことを目的とします。 この手のシステムは、既存システムに手を入れるのが普通ですが、既存システムでプログラムが動かないことには話になりません。 という事で、認証機構を追加したプロキシサーバを作成することで実現したいと思います。 仮に、PHPのみを使用して実装する場合は、下記のように出来ます。 ・ロ
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
(いろいろな方々から指摘をいただき、記事を修正しました。ありがとうございます。 "went" -> "gone") こんにちは、斉藤です。 弊社には、海外生まれ or 海外暮らし経験ありの方が何人か出入りしています。 今の自分の席の周りにも、英語を喋ることが可能な方が二人ほど。 自分は、つたない英語で彼らと会話していますが、何とかもっとコミュニケーションしたい。 というわけで今回は、そんな彼らに教えてもらったエンジニアならではの一言英会話をご紹介します! Check it out! *「30分経って分からなかったら、別の問題を考えよう」 ある問題が解決できなくて、こう考えることはよくありますね。 英語ではこう言います。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く