技術ブログを書いたほうがいいということで書き綴ってみた

技術ブログを書いたほうがいいということで書き綴ってみた

ものの言い方

お客さんに誤解されるよ。別の言い方のほうがいいんじゃない

念のため、確認お願います。

ご検討していただけないでしょうか。

時間取れますか?

今、大丈夫ですか →今、お忙しいですか?

スケジュールを死守するには、これを前倒しにしてほしいです。

当方に落ち度があったのでしょうか。

うちの見積もりを見直していただける余地はありますか。

うちだけの努力では限界がありまして。。

これならば、お引き受けできるという条件はありますか。

★人は、間違った情報を与えると、それを正しい情報に訂正するため、  よくしゃべる。意見をいうことで、それに対して反対なのか賛成なのか  引き出す。漠然と「どうですか?」と聞かない。

Dockerでjenkins入れてみた

DockerでJenkinsを入れてみる

環境

CentOS release 6.7 Docker version 1.7.1 jenkins-war:1.642.1

Dockerのインストール

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install docker-io

Dockerは、EPELリポジトリで配布されてるんで、追加が必要

Transaction Summary
================================================================================
Install       7 Package(s)c

Total download size: 5.1 M
Installed size: 20 M
Downloading Packages:
(1/7): docker-io-1.7.1-2.el6.x86_64.rpm                  | 4.6 MB     00:03
(2/7): libcgroup-0.40.rc1-16.el6.x86_64.rpm              | 129 kB     00:00
(3/7): lua-alt-getopt-0.7.0-1.el6.noarch.rpm             | 6.9 kB     00:00
(4/7): lua-filesystem-1.4.2-1.el6.x86_64.rpm             |  24 kB     00:00
(5/7): lua-lxc-1.0.8-1.el6.x86_64.rpm                    |  16 kB     00:00
(6/7): lxc-1.0.8-1.el6.x86_64.rpm                        | 122 kB     00:00
(7/7): lxc-libs-1.0.8-1.el6.x86_64.rpm                   | 255 kB     00:00
--------------------------------------------------------------------------------
Total                                           1.0 MB/s | 5.1 MB     00:05

起動

chkconfig docker on
service docker start

Starting cgconfig service:                                 [  OK  ]
Starting docker:                                           [  OK  ]

jenkinsのインストールと起動

これでインストールできるんだって簡単な世の中になったもんだ。

docker run -p 8080:8080 -p 50000:50000 jenkins

開発環境の構築がお手のものだね。他にもいろいろコンテナ作ろっと

jbossで引っかかったところの備忘録

その1 warファイルを入れ替えたのに、画面が更新されない。 /JBOSS_HOME/server/default/workに jspを変換したjavaファイルやclassファイルが入っているため、workフォルダごと削除した。 /JBOSS_HOME/server/default/tmpも同様に削除した。

その2 Windows上の誰かのPCでJBOSS起動したが、アクセスできない。 起動パラメータに以下を追加 run.bat -b 0.0.0.0

その3 DataSourceは、/JBOSS_HOME/server/default/deploy/に置く。 ファイル名は、*-ds.xml 複数配備可能

その4 ロードバランシングは、mod_proxy_balancerで制御する。

その5 セッションレプリケーションするには、 jboss-web.xmlで以下の設定をする。 <replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger> デフォルト <replication-granularity>SESSION</replication-granularity>

クラスは、Serializableクラスをimplementsする

 public String checkDate(String argDate ){
        String retDate = null;
        DateFormat dateFormatter = new SimpleDateFormat("yyyyMMdd");
        Calendar cal = Calendar.getInstance();
        TimeZone jst = TimeZone.getTimeZone("JST");
        cal.setTimeZone(jst);
        if( argDate == null || "".equals(argDate)){
            cal.add(Calendar.DAY_OF_MONTH,-this.mBeforeday);
            retDate = dateFormatter.format(cal.getTime());
        }else{
            try {
                dateFormatter.setLenient(false);
                Date tmpDate = dateFormatter.parse(argDate);
                if(!dateFormatter.format(tmpDate).equalsIgnoreCase(argDate)){
                    return null;
                }
                cal.add(Calendar.DAY_OF_MONTH,-1);
                String yesterday = dateFormatter.format(cal.getTime());
                retDate = argDate;
                if(yesterday.compareTo(retDate)<0){
                    return null;
                }
                convertGMTTime(argDate);
            } catch (ParseException e) {
                return null;
            }
        }
        return retDate;
    }
    public void convertGMTTime(String argDate ) throws ParseException{
        DateFormat dateFormatter = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
        dateFormatter.setTimeZone(TimeZone.getTimeZone("JST"));
        String strStart = argDate + " 00:00:00";
        Date startDate = dateFormatter.parse(strStart);

        Calendar nextCal = Calendar.getInstance();
        nextCal.setTime(startDate);
        nextCal.add(Calendar.DAY_OF_MONTH, 1);
        Date endDate = null;
        endDate = nextCal.getTime();

        DateFormat dateFormatter2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        dateFormatter2.setTimeZone(TimeZone.getTimeZone("GMT"));

        String mStart = dateFormatter2.format(startDate);
        String mEnd = dateFormatter2.format(endDate);
        System.out.println(mStart);
        System.out.println(mEnd);
    }
    public void convertGMTTime2(String argDate) throws ParseException {
        // パーサー
        DateFormat parser = new SimpleDateFormat("yyyyMMdd");
        parser.setTimeZone(TimeZone.getTimeZone("GMT"));
        // フォーマッター
        DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        formatter.setTimeZone(TimeZone.getTimeZone("GMT"));

        // 開始日時取得
        Date startDate = parser.parse(argDate);
        String mStart = formatter.format(startDate);

        // 終了日時取得
        Calendar nextCal = Calendar.getInstance();
        nextCal.setTime(startDate);
        nextCal.add(Calendar.DAY_OF_MONTH, 1);
        nextCal.add(Calendar.MILLISECOND, -1);
        String mEnd = formatter.format(nextCal.getTime());

        System.out.println(mStart);
        // => 2015/10/12 00:00:00
        System.out.println(mEnd);
        // => 2015/10/12 23:59:59
    }

MySQLのマルチインデックスとIEのエンジンEdgeについて

マルチインデックスは、WHERE句に書く条件の順番とインデックスの順番があっていないとindexが使われない。

cssやjsファイルよりも前に記述するようにしましょう。

バッチ環境変数設定用ソース

バッチ環境変数設定用ソース バッチで共通的に呼び出すバッチを作った。

call setenv.bat のように、callで呼び出して使うこと。

@echo off
set time2=%time: =0%
set DATETIME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%%time2:~9,3%
set ROOTDIR=%~dp0
set LOGDIR=%ROOTDIR%log\%DATETIME%
mkdir %LOGDIR% || echo "dir create fail"

for /F "eol=; tokens=1 delims=" %%i in (app.conf) do @set %%i
echo %IP_ADDRESS%