2015年9月22日火曜日

Ubuntu 15.04のRAMディスク作成について

Ubuntu15.04でRAMディスク作成する場合、/etc/fstabの書き方がこれまでとちょっと違う様子。 コメント行を見てみると
# <file system> <mount point> <type> <options> <dump> <pass>
となっているので 1GBのRAMディスクを作成するには
tmpfs /ramdisk tmpfs size=1g 0 0
という感じになる。 RAMディスク作ったらとりあえずMOZCの動作が快適になってかなりストレス軽減

2015年9月20日日曜日

apt-getでインストール可能なバージョンをリストアップする

Ubuntuにcasperjsをインストールしようとしたところ、casperjsはphantomjsの1.x系が必要らしいが、普通にapt-getでphantomjsをインストールしてしまうとphantomjs2.0系がインストールされてしまう。

そこで

sudo apt-cache showpkg phantomjs

でインストール可能なバージョンをリストアップし、

sudo apt-get install phantomjs=1.9.0-1

とバージョンを指定してインストールした。

FreeBSDにphantomjsをインストールしたらlibfreetype.so.6がないと怒られた

某FreeBSDのレンタルサーバーでphantomjsをインストールしたところ、 libfreetype.so.6がないと怒られたのでportsでprint/freetype2 をインストール。



2015年9月1日火曜日

WindowsでIPアドレスからホスト名を調べるには
nbtstat -A IPアドレス

2015年8月25日火曜日

MySQLのポート番号を確認するには

MySQLのポート番号を確認するには show variables like 'port'

2015年8月23日日曜日

ubuntu 15.04にSymfony 2.7をインストールしてみた

いつの間にやらSymfony2のインストール方法いろいろ変わってるのね・・・ 1)curlのインストール sudo apt-get install curl 2)Symfonyインストーラのインストール sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony sudo chmod a+x /usr/local/bin/symfony 3)プロジェクトを作成 symfony new PROJECT_NAME 4)開発用サーバーを起動 cd PROJECT_NAME php app/console server:run ↑これでlocalhost:8000でアプリが起動する

2015年3月24日火曜日

GrassFish ServerのパラメータのデフォルトエンコーディングをUTF-8に変更するには

GrassFish Serverでパラメータが文字化けする。
これはGrassFish ServerのパラメータのデフォルトエンコーディングがISO-8859-1だから。
grassfish-resources.xmlに以下を追加することで、デフォルトエンコーディングをUTF-8に変更できる。

<parameter-encoding default-charset="UTF-8" />

2015年3月23日月曜日

MySQLのload dataでテーブルの特定のカラムにのみファイルの内容をインポートするには

MySQLのload dataでテーブルの特定のカラムにのみファイルの内容をインポートするには、以下のようにファイル内のフィールドをマッピングする列をset句で指定する。

load data infile 'c:/temp/stocks.csv' into table stocks
       fields terminated by '\t' (@code,@name,@sector1,@sector2)
       set code=@code,name=@name,sector1=@sector1,sector2=@sector2;

2015年3月17日火曜日

GlassFish Server 4.1でJSF2.2+Bootstrapのアプリケーションを作成中、サーバのコンソールに以下のようなメッセージが表示されていることに気が付いた。


警告:   JSF1091: ファイル fonts/glyphicons-halflings-regular.woff2 の MIME タイプが見つかりませんでした。これを解決するには、アプリケーションの web.xml に MIME タイプのマッピングを追加します。


どうやらweb.xmlにMIMEタイプマッピングを追加しないといけないらしい。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
                                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
    <mime-mapping>
        <extension>woff</extension>  
        <mime-type>application/x-font-woff</mime-type> 
      </mime-mapping>
    <mime-mapping>
        <extension>woff2</extension>  
        <mime-type>application/x-font-woff2</mime-type>  
    </mime-mapping>
</web-app>


JSF2.2でバリデーションエラー時のメッセージをカスタマイズするには

1.以下のjarファイルを任意のディレクトリにコピー
javax.faces.jar



2.上記1でコピーしたjarファイルの拡張子をzipに変更して展開し、Messages_ja.propertiesファイルをソースパッケージ内の任意のフォルダにコピーする
(例:xxxx/messages/Messages_ja.properties)


3.WEB-INFフォルダ内にfaces-config.xmlを作成し、上記リソースファイルを読み込むように指定する

<?xml version='1.0' encoding='UTF-8'?>
    <faces-config version="2.2"
             xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
             http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
        <application>
            <message-bundle> stocks/messages/Messages </message-bundle>         </application>
</faces-config>


4.xxxx/messages/Messages_ja.propertiesのメッセージをカスタマイズする

(参考書籍:秀和システム わかりやすいJavaEE ウェブシステム入門 川場隆・著)

2015年3月3日火曜日

Selenium2でPHPUnit_Extensions_Selenium2TestCaseを使ってプルダウンやラジオボタンを操作する

PHPUnit_Extensions_Selenium2TestCaseを継承したテストクラスで、 Yahoo!ファイナンスにアクセスし、ヤフー(株)を検索→検索結果のリンクをクリックして プルダウンやラジオボタンを操作し、2014年1月1日~2014年12月31日の週間時系列データを 表示させるサンプルです。
<?php
require_once 'phpunit.phar';

/*
 * PHPUnitとSelinum2を使って、Yahoo!ファイナンスのサイトにアクセスし、
 * ヤフー(株)の株価時系列情報の2014年1月1日~2014年12月31日までの
 * データを表示します。
 */
class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
    protected function setUp()
    {
        // http://finance.yahoo.co.jp/にアクセス
        $this->setBrowser('chrome');
        $this->setBrowserUrl('http://www.google.com');
    }

    public function testTitle()
    {
        // Yahoo!ファイナンスにアクセス
        $this->url('http://finance.yahoo.co.jp/');
        // 銘柄名でヤフーを検索
        $this->byId('searchText')->value('ヤフー');
        sleep(5);
        // 銘柄検索ボタンをクリック
        $this->byId('searchButton')->click();
        sleep(5);
        // 検索結果からヤフーをクリック
        $this->byLinkText('ヤフー(株) [4689] - 東証1部')->click();
        sleep(5);
        // 「時系列」をクリック
        $this->byLinkText('時系列')->click();
        sleep(5);
        // 2014年1月1日~2014年12月31日、「週間」を選択
        $this->select($this->byId('selYear'))->selectOptionByValue('2014');
        $this->select($this->byId('selMonth'))->selectOptionByValue('1');
        $this->select($this->byId('selDay'))->selectOptionByValue('1');
        $this->select($this->byId('selYearT'))->selectOptionByValue('2014');
        $this->select($this->byId('selMonthT'))->selectOptionByValue('12');
        $this->select($this->byId('selDayT'))->selectOptionByValue('31');
        $this->byId('weekly')->click();
        sleep(5);
        // 表示ボタンをクリック
        $this->byClassName('submit')->click();
    }
}
?>
PHPUnitとselenium2でブラウザの自動テスト

Selenium ServerはOSを通してブラウザのタスクを自動実行するテストツールです。
ここではPHPによるSeleniumの使い方を解説しています。

インストール

1.seleniumのサイトからSelenium Serverをダウンロードします。

    http://docs.seleniumhq.org/download/




2.下記のサイトからテストで使用するブラウザのDriverをダウンロードする
 (今回はChromeを使用する)
 
    https://sites.google.com/a/chromium.org/chromedriver/



3.上記2でダウンロードしたzipファイルの中身を1でダウンロードしたselenium-server-standalone-2.9.0.jarと同じフォルダに展開する

4.PHPUnitのpharファイルをダウンロードする

    https://phar.phpunit.de/phpunit.phar

5.テスト用のクラス作成
 (以下のクラスではwww.google.comにアクセスして、ページのタイトルが'Google'である場合は成功です)

        <?php
        class WebTest extends PHPUnit_Extensions_Selenium2TestCase
        {
            protected function setUp()
            {
                $this->setBrowser('chrome');
                $this->setBrowserUrl('http://www.google.com');
            }

            public function testTitle()
            {
                $this->url('http://www.google.com');
                $this->assertEquals('Google', $this->title());
            }

        }
        ?>

6.selenium2サーバーを起動する
 (ダウンロードしたjarファイルのバージョンに読み替えてください)

    selenium2を使用する際に上記3で展開したDriverにパスが通っている必要があるので、以下のようなBATファイルを作成してSelenium Serverを起動するとよいでしょう。
 
        SET PATH=%PATH%;.\

        java -jar .\selenium-server-standalone-2.45.0.jar

7.テストケースの実行
    以下のようにして上記5で作成したWebTestクラスを実行します。
 
        php phpunit.phar WebTest


なおPHPUnitに関しては以下のサイトを参照してください。

https://phpunit.de/manual/current/ja/installation.html

2015年2月26日木曜日

PHPでTwitterからTweetするまでを日本語で解説

PHPでTwitterからTweetするまでを日本語で解説

1.Twitterのアプリケーション管理のサイトへアクセス
  https://apps.twitter.com/



2.[Create New App]をクリック




3.[sign in]をクリック

4.メールアドレスとパスワードを入力してサインイン



5.とりあえず必須入力項目なのでName, Description, Websiteを入力

    ・Name・・・あなたのアプリケーション名。これは、つぶやきのとユーザ側の認証画面でソースの属性に使用されます。 32文字以内。
    ・Description・・・ユーザー向けの認証画面に表示され、アプリケーションの説明、。 10と200文字以内の間。
    ・Website・・・ユーザーは、ダウンロードを利用するか、あなたのアプリケーションの詳細情報を見つけるために行くことができ、アプリケーションのパブリックにアクセスホームページ、。この完全修飾URLは、あなたのアプリケーションで作成されたつぶやきのソース帰属で使用され、ユーザ側の認証画面に表示されます。
(あなたはまだ、URLをお持ちでない場合は、ちょうどここプレースホルダーを入れて、後でそれを変更することを忘れないでください。)



    Developer Agreementに同意するなら[Yes, I agree]にチェックを入れて[Create Your Twitter application]をクリック
 
6.以下のErrorが表示された場合、https://twitter.com/settings/add_phone にアクセスして携帯電話番号を登録する。
    ここで登録した携帯電話宛てに認証コードが送られてくるが、設定によっては迷惑メールに分類されたりするので注意。
    送られてきた認証コードを入力してモバイルアプリの登録を完了させる。

7.認証が完了するとアプリケーション管理の画面にアクセスできる。

8.Accessレベルを[Read and Write]に変更する。
    Access LevelがデフォルトではRead-onlyになっており、このままではTweetできないので、[modify app permissions]をクリックして、
    [Read and Write]を選択し、[Update Settings]をクリックする


 
    とりあえずアプリケーションの登録がここまで。実際にコードを書くよりも、登録作業が面倒臭い感じ。

9.次にtwitteroauthのソースをダウンロード。これはアプリケーションの認証に使用する。

    ・https://github.com/abraham/twitteroauth にアクセス
    ・[Download Zip]をクリック
    ・ダウンロードしたZipを展開して適当なフォルダ名に変更。(例:twitteroauth)

10.アプリケーションに必要な情報を取得する。

    ・https://apps.twitter.com/ にサインインする
    ・さきほど作成したアプリケーション名をクリックする
    ・[Keys and Access Tokens]のタブをクリックし、[Regenerate My Access Token and Token Secret]をクリックしてAccess Tokenを発行する
      以下の情報がアプリケーションを作成するのに必要となるのでコピーしておく

        Consumer Key (API Key)
        Consumer Secret (API Secret)
        Access Token
        Access Token Secret

11.コードはこんな感じ?
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

$consumer_key           = "XXXXXXXXXXXXXXXXXXXXXXXXX";
$consumer_secret        = "XXXXXXXXXXXXXXXXXXXXXXXXX";
$access_token           = "XXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX";
$access_token_secret    = "XXXXXXXXXXXXXXXXXXXXXXXXX";

$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

$res = $connection->post("statuses/update", array("status" => "こんにちは Twitter"));

echo print_r($res, true);


2015年2月22日日曜日

SSHでログインしてvimで作業するときに、日本語が文字化けするのでvimを置き換えてみた

さくらインターネットのサーバーを利用しているのだが、SSHでログインしてソースを修正するときにコメントなどの日本語が文字化けするので、.cshrcを編集して日本語を正しく表示できるようにしてみた。


alias vi "jvim3 -K TTT -k t"
#setenv EDITOR vi
setenv EDITOR jvim3
setenv LANG ja_JP.UTF-8
jvim3がインストールされていたので、jvim3のエイリアスにviを割り当てて、ついでにデフォルトの言語をja_JP.UTF-8に変更。 一旦、ログアウトしてログインしなおしたら無事日本語が文字化けせずに表示された。

2015年2月21日土曜日

XAMPPをインストール

久しぶりにPHPでアプリケーションを作りたくなり、手っ取り早く開発環境を整えるためにXAMPPをインストールしました。 

XAMPP は最も人気のある PHP 開発環境です。 XAMPP は、完全に無償で MySQL、PHP、および Perl を含んだ、簡単にインストールできる Apache ディストリビューションです。XAMPP オープン ソース パッケージは、インストールと利用が非常に簡単できるよう設定されています。

1.ダウンロード
   https://www.apachefriends.org/jp/download.html から今回は5.6.3 / PHP 5.6.3をダウンロード。

2.ダウンロードしたインストーラを実行します

3.アンチウィルスソフトが動作していると下のような質問が表示されますが、「Yes」をクリックして次へ進みます。

  


4.今度は下のような警告が表示されますが、「OK」をクリックして次へ進みます。


5.ようやくインストールが始まります。



6.必要なコンポーネントを選択します。とりあえずデフォルトで全部チェック入っているので、そのまま「Next」でいいでしょう。


7.インストール先も特に問題がなければそのままで「Next」をクリック。


8.Bitnamiからのお知らせもそのまま「Next」をクリック。


9.ここで「Next」をクリックすると後は待つだけ。


10.XAMPPのControl Panelを開始するか聞いてくるので、チェックボックスをONにして「Finish」をクリック。


11.サービスとして動作させたいアプリケーションを設定します。
   サービスとしてインストールしておくと、Windowsの起動時に自動的に実行されるので、手動で動かす手間が省けます。反面、Windowdsの起動に時間がかかったりする場合もあるので、ここはお好みで。

   私の場合はApacheとMySQLをサービスとしてインストールしたいので、この2つのチェックを有効にしました。


12.最後にApacheとMySQLの「Start」ボタンをクリックします。


13.動作確認してみましょう。

  ブラウザを起動して http://localhost にアクセスして以下の画面が表示されればインストールは成功です。