PHPStorm 2018.1.7 に更新
PHPStormを2018.1.?(2018.1.1だったか2018.1.3だったか)から2018.1.7に更新した。前に更新した時は「設定を引き継ぐか?」と聞かれたと思うのだが今回は聞かれなかった。
とりあえずプロジェクトは引き継がれているが、エディタやCode Styleなどの設定が引き継がれているかはよくわからん。どこを変えたか覚えてないので^^;
PHPStormを2018.1.?(2018.1.1だったか2018.1.3だったか)から2018.1.7に更新した。前に更新した時は「設定を引き継ぐか?」と聞かれたと思うのだが今回は聞かれなかった。
とりあえずプロジェクトは引き継がれているが、エディタやCode Styleなどの設定が引き継がれているかはよくわからん。どこを変えたか覚えてないので^^;
関連記事:正規表現メモ
正規表現で複数回のマッチングを指定するとできるだけたくさんマッチングする(強欲、欲張り)。
指定の範囲内でできるだけ少なくマッチングさせる(ものぐさ、最小)にはメタ文字 "?" を使う。
正規表現 | 意味 | 文字列 | マッチする部分 |
---|---|---|---|
(ab)+ | "ab" が1回以上繰り返し (強欲マッチング) |
ababababababc | abababababab |
(ab)+? | "ab" が1回以上繰り返し。 (ものぐさマッチング) |
ababababababc | ab |
(ab){2,4} | "ab" が2回以上4回以下繰り返し。 (強欲マッチング) |
ababababababc | abababab |
(ab){2,4}? | "ab" が2回以上4回以下繰り返し。 (ものぐさマッチング) |
ababababababc | abab |
関連記事:certutilでBASE64エンコード/デコード
certutilコマンドでバイナリファイルをBASE64のテキストファイルにしたり、逆にデコードしてテキストをバイナリにするバッチファイル。
毎回「引数なんだっけ?」となるのでバッチファイルを作った。
BASE64でエンコードするバッチファイル
第1引数で指定したファイルをエンコードして第2引数で指定したファイルに出力する。
@echo off if "%1" equ "" ( goto :FAILURE ) if "%2" equ "" ( goto :FAILURE ) else ( certutil -f -encode %1 %2 goto :END ) :FAILURE echo parameter error. :END exit/b
BASE64でデコードするバッチファイル
第1引数で指定したファイルをデコードして第2引数で指定したファイルに出力する。
@echo off if "%1" equ "" ( goto :FAILURE ) if "%2" equ "" ( goto :FAILURE ) else ( certutil -f -decode %1 %2 goto :END ) :FAILURE echo parameter error. :END exit/b
参考ページ
バッチファイルでif文をトラブルなく使う - Qiita
Windowsコマンド集 - exit:ITpro
Tech TIPS:バッチファイルの基本的な使い方 (1/2) - @IT
Windows10が出たというのにWindows7の話^^;
エクスプローラの検索ボックスでフォルダを除外して検索したい場合、次のように指定したが思ったような結果を得られなかった。
種類:~!フォルダー
次のようにすればJPEGファイルは除外されるのに。
種類:~!JPEG
正解は以下でした。2つのうちどっちでもOK。
-kind:folder -種類:フォルダー
「-<プロパティ>:<値>」とすると、「プロパティ=値」の否定という検索条件になるらしい。
また、検索条件を "AND" や "OR" でつないで検索することもできる。"AND"、"OR" は大文字でなければならない。
以上を踏まえて、例えば「2015/8/1~2015/8/3 に更新されたbakフォルダ配下ではないファイル」という条件で検索する場合は以下のようになる。
更新日時:2015/08/01 .. 2015/08/03 AND -kind:folder AND -folder:bak
他に、下記でもほぼ同じ検索結果を得られる。ただし、上の検索条件と違って testbak.txt のようなファイル名に "bak" を含む場合など、パスに "bak" が含まれるものも除外されてしまう。
更新日時:2015/08/01 .. 2015/08/03 AND -kind:folder AND パス:~!bak
また、「2014年中に更新されたテキストファイルまたはPDFファイル」という条件は、次のようになる。
更新日時:2014/01/01 .. 2014/12/31 AND (*.txt OR *.pdf)
参考ページ
エクスプローラでのファイルの検索方法 | Windows 7 Tips
Learn How to Use Windows 7’s Advanced Search Operator
会社のPCでは TortoiseGit を使っているが、PCを渡された時点で既にインストール済みだった。なので自宅のPCには git for windows と TortoiseGit を自分でインストールしてみた。その時のメモ。
git for windows→TortoiseGit→TortoiseGitのLanguage Pack
の順番でインストール。
よくわからないので全部「next」、「next」、...で、デフォルトのままでインストールした。
バージョン管理をしたいフォルダで右クリックしてコンテキストメニューから「Git ここにリポジトリを作成(Y)」をクリックする。するとダイアログが開く。
そのダイアログには「Bareを生成」というチェックボックスがあるが、そのままにして(チェックせず)OKボタンを押下。
これでこのフォルダ以下がバージョン管理の対象になる。
Bareリポジトリというのは作業用ファイルを持たないリポジトリのこと(参考ページ4)。
リポジトリの作成は、実際はすんなり行かなかった。何も設定せずにリポジトリを作成すると「ユーザー情報を設定しろ」と言われて TortoiseGit の設定画面が開く。
ユーザー情報のところに名前とメールアドレスの入力欄、その上に「設定のでどころ」というのがある。
これはようはユーザー情報を保存する場所らしい。
ローカル:このリポジトリのみこのユーザー情報を使う。
グローバル:現在ログインしているユーザーについてはこのユーザー情報を使う。
システム:このマシンではログインしているユーザーにかかわらずこのユーザー情報を使う。
ということだとたぶん思う。
で、グローバルで保存しようと思ったのだが、ユーザー情報を入力してOKボタンを押すとエラーになる。
ユーザー環境変数の HOME が "/home/<ユーザー名>" だったのを
"C:\users\<ユーザー名>" に変更したところ問題が解消した(参考ページ2)。C:\users\<ユーザー名>に .gitconfig ファイルが作成されて、以下のようにユーザー情報が保存された。
[user] name=into email=into@test.com
この環境変数HOMEの設定はリポジトリを作る前にやっておくべきことなんだろう。
この HOME は誰が最初に設定したんだろう。git for windows なり TortoiseGit なりが設定して環境に合わせて変えることが前提ならいいんだが、なんか別のアプリケーションが設定したもので、今まで "/home/<ユーザー名>" で動作していたのなら、そのアプリケーションで今後なにか問題が発生するかもしれない。
日本語ファイル名のファイルがコミットできない。コミット以前に追加することもできない。
追加のダイアログで日本語ファイル名が化けていて、無視してOKを押下すると「指定されたファイルが見つかりません」というエラーになる。
参考ページ
1.TortoiseGitのWindowsへのインストール - tanaka's Programming Memo
2.Windows で Git の環境設定 (msysgit, TortoiseGit) - ngの日記
3.Git(2)TortoiseGitでGitの設定を行う
4.TortoiseGit の基礎勉強 ~ TortoiseGit によるバージョン管理 ~ - バージョン管理システム入門(初心者向け)
会社の就業時間の計算ルールが変わった。
今までの就業時間の計算は割りと簡単で
退勤時間-出勤時間-昼休みの1時間
の結果を5分単位で端数処理をしていた。
新しいルールは以下のようになった。
・就業時間のスタートは9:30。9:30より早く出勤しても9:30までは就業時間に入らなくなった。
・12:00~13:00の昼休み1時間に加えて18:00~18:15が休憩時間になった。
・15分単位で端数は切り捨て。
就業時間の計算方法が変わったのは、残業したときの割り増し賃金が導入されたから。今まで残業しても休日出勤しても時給が変わらなかった。
#法律違反だったわけだ。
社労士に意見されたそうで、残業した分の割増賃金を導入することになった。でも人件費を増やしたくない。だからルールを変えて就業時間を減らそうと会社は考えたのかなと、想像できる。
で、残業の割増賃金で増える分とルール変更で就業時間が短くなって減る分、合算して給料が増か減かというと、まず間違いなく減です。ええ。最近はあまり残業してないし。
今までは9:20に出勤すればその時点から就業開始だったが、今後は始業時間の9:30から就業開始になる。これだけで毎日マイナス10分。
また、定時の後に15分の休憩ができたので、18:00~18:29に退勤しても18:00退勤と変わらない。これで1日当たり10~15分くらい従来より就業時間が減ることになる。
出勤が20日/月と考えるとざっくり計算で1月あたり
20分×20=3時間40分
くらい就業時間が減って、その分給料も減るかなーと予想。
で、これをEXCELで計算する式を考えた。セルC2が退勤時刻とすると下記のようになった。
冗長な括弧があるが、これは多少でもわかりやすくするため。わかりやすくなってないか^^;
FLOOR((C2-TIME(9,30,0)-(IF(C2<=TIME(12,0,0),0,IF(C2<=TIME(13,0,0),(C2-TIME(12,0,0)),IF(C2<=TIME(18,0,0),1/24,IF(C2<=TIME(18,15,0),(1/24+(C2-TIME(18,0,0))),(1/24+1/24/4))))))),"0:15")
やってることは
15分単位で切り捨て(退勤時間-始業時間の9:00-休憩時間)
である。
よりわかりやすくいように適当に改行、インデント、コメントを入れてみた。
#EXCELの式の中にコメントなんて書けないが、分かりやすくするために入れた。
FLOOR( // 切り捨て // 切り捨て前の生の就業時間 ( C2 // 退勤時間 - TIME(9,30,0) // 始業時間 - // 休憩時間 ( IF(C2<=TIME(12,0,0), // 12:00以前の場合 0, // 休憩時間なし IF(C2<=TIME(13,0,0), // 13:00以前の場合 (C2-TIME(12,0,0)), // 12:00を超えた部分 IF(C2<=TIME(18,0,0), // 18:00以前の場合 1/24, // 昼休み1時間 IF(C2<=TIME(18,15,0), // 18:15以前の場合 (1/24+(C2-TIME(18,0,0))), // 昼休み1時間+18:00を超えた部分 // それ以降 (1/24+1/24/4) // 昼休み1時間+夕方の休憩時間15分 )))) ) ), "0:15" // 切り捨ての単位 )
関連記事:
UbuntuサーバのApache2でURLリライトを試してみる
URLリライトの復習とIE11のUser-Agent
.htaccessの有効化とサブディレクトリのアクセス制御
以前、URLリライトについての記事を書いた時は動作確認に Ubuntu Server を使っていたが今はCentOS(6.6)を使っているので、URLリライトが使えるか調べてみた。
/etc/httpd/conf/httpd.conf を見ると
LoadModule rewrite_module modules/mod_rewrite.so
という記述があるのでデフォルトでURLリライトが有効になっている。あとは .htaccess を使えるようにすれば .htaccess でURLリライトが可能になる。
RewriteRuleは書式は以下である。
RewriteRule <Pattern> <Substitution>
いろいろ試してわかったことを以下に箇条書き。
具体例として、以下のようなディレクトリ、ファイル構成を考える。
/(ドキュメントルート) ├abc.html ├sub │├.htaccess │├abc.html ・・ ・・ ・・
/sub/.htaccess(RewriteBaseとRewriteRurleのみ抜き出したもの)とその場合にURLリライトの結果の表を以下に示す。
例1
RewriteBase /sub/ Rewrite ^test\.html$ abc.html
元のURLのパス名 | URLリライトへの 入力 |
URLリライトの 出力 |
書き換えられた URLのパス名 |
---|---|---|---|
/sub/test.html | test.html | abc.html | /sub/abc.html |
/sub/sub2/test.html | sub2/test.html | パターンに 一致しない |
- |
例2
RewriteBase /sub/ Rewrite ^.*test\.html$ abc.html
元のURLのパス名 | URLリライトへの 入力 |
URLリライトの 出力 |
書き換えられた URLのパス名 |
---|---|---|---|
/sub/test.html | test.html | abc.html | /sub/abc.html |
/sub/sub2/test.html | sub2/test.html | abc.html | /sub/abc.html |
例3
Rewrite ^test\.html$ /abc.html
元のURLのパス名 | URLリライトへの 入力 |
URLリライトの 出力 |
書き換えられた URLのパス名 |
---|---|---|---|
/sub/test.html | test.html | /abc.html | /abc.html |
関連記事:
.htaccessでBASIC認証
BASIC認証の設定のAuthNameとRequire
/var/www/html がドキュメントルートの場合、
ただし All にすると .htaccess で何でも出来てしまうので、.htaccess で許可する内容に応じた値にするべきである(参考ページ3,4)。
<Directory "/var/www/html"> AllowOverride All </Directory>
あるディレクトリにBASIC認証がかかっていて、サブディレクトリやサブディレクトリ内の特定のファイルは認証なしにしたい場合の例を以下に示す。
以下のディレクトリ構成・ファイル配置で、testディレクトリには .htaccess でBASIC認証がかかっている。
test ├.htaccess ├sub1 │└sub1_1.html ├sub2 │├.htaccess │└sub2_1.html ├sub3 │├.htaccess │└sub3_1.html ├sub4 │├.htaccess │├sub4_1.html │└sub4_2.html └sub5 ├.htaccess ├sub5_1.html │sub5_2.html └sub5_3.html
sub1 は .htaccess がなく、親ディレクトリと同様にBASIC認証がかかる。 sub1以外のtestのサブディレクトリにはそれぞれ .htaccess がある。
test/sub2/.htaccess
Satisfy any Order Allow,Deny Allow from all
test/sub2 は認証無しになる。
1行目が "Satisfy any" なので、
・「testディレクトリで設定されているBASIC認証」または「"Satisfy any" の下に記述された条件」
を満たせばアクセスが許可される。
2行目以下ですべてのアクセスを許可しているので、結果として test/sub2 は認証がかからない。
test/sub3/.htaccess
Deny from all
test/sub3 はアクセスが許可されない。
Satisfyディレクティブがないので Satsify all と同じ意味となり、
・「testディレクトリで設定されているBASIC認証」かつ「test/sub3/.htaccess に記述された条件」
を満たせばアクセスが許可される。
test/sub3/.htaccessではすべてのアクセスを拒否しているので、結果として test/sub3 にはアクセス不可となる。
test/sub4/.htaccess
<Files "sub4_1.html"> Satisfy any Order Allow,Deny Allow from all </Files>
test/sub4ディレクトリの sub4_1.html は認証なし、sub4_2.html は認証ありとなる。
<Files>ディレクティブで指定されたファイルに対して内部に書かれたディレクティブが適用される。
この場合、sub4_1.html だけ無条件でアクセス許可となる。
test/sub5/.htaccess
<FilesMatch "sub5_[12]\.html"> Satisfy any Order Allow,Deny Allow from all </FilesMatch>
test/sub5ディレクトリの sub5_1.html と sub5_2.html は認証なし、sub5_3.html は認証ありとなる。
<FilesMatch>ディレクティブは<Files>ディレクティブと同様に適用範囲を制限する。違いは指定に正規表現を使う点である。
参考ページ:
1..htaccessを有効にする-独学!未経験からWebデザイナーになる!!
2.特定のファイル・ディレクトリのアクセスを拒否する-独学!未経験からWebデザイナーになる!!
3.DokuWikiのインストール (CentOS 6.5) : Unix系技術情報備忘録
4.Apacheサーバー構築法 - 第5回 設定を上書きする「.htaccess」:ITpro
5..htaccessでアクセス制限
6.core - Apache HTTP サーバ バージョン 2.2
7.サブディレクトリで特定のファイル以外のBasic認証を解除する - IMPOV::In My Point Of View
8.ミケネコの htaccess リファレンス
9.コンテナ指示子
関連記事:
[CentOS 6.6]PHP5.5のインストール準備(EPEL、REMIリポジトリの追加)
EPEL、REMIリポジトリを追加したのにいよいよインストール。
既存のリポジトリを無効にしなければいけないと書いてあるサイトもあったが、そんなこともなく、以下のようにインストールできた。
# yum --enablerepo=remi --enablerepo=remi-php55 install php php-gd php-pdo php-xml 読み込んだプラグイン:downloadonly, fastestmirror, refresh-packagekit インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * remi: remi.kazukioishi.net * remi-php55: remi.kazukioishi.net * updates: www.ftp.ne.jp 依存性の解決をしています (中略) 依存性を解決しました ================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================ インストールしています: php x86_64 5.5.21-1.el6.remi remi-php55 2.6 M php-gd x86_64 5.5.21-1.el6.remi remi-php55 72 k php-pdo x86_64 5.5.21-1.el6.remi remi-php55 112 k php-xml x86_64 5.5.21-1.el6.remi remi-php55 208 k 依存性関連でのインストールをします。: gd-last x86_64 2.1.1-1.el6.remi remi 135 k libXpm x86_64 3.5.10-2.el6 base 51 k php-cli x86_64 5.5.21-1.el6.remi remi-php55 3.7 M php-common x86_64 5.5.21-1.el6.remi remi-php55 1.0 M php-pear noarch 1:1.9.5-3.el6.remi remi 375 k php-pecl-jsonc x86_64 1.3.6-1.el6.remi.5.5.1 remi-php55 47 k php-pecl-zip x86_64 1.12.4-1.el6.remi.5.5 remi-php55 269 k php-process x86_64 5.5.21-1.el6.remi remi-php55 57 k t1lib x86_64 5.1.2-6.el6_2.1 base 160 k トランザクションの要約 ================================================================================ インストール 13 パッケージ (中略) 完了しました!
とりあえずphp本体の他に php-gd、php-pdo、php-xml をパラメータとして指定した。依存関係からpearなどもインストールされた。
Laravelには php-mcrypt が必要というのでインストールしようとしたが、すんなりとはいかなかった。
php本体と同様にインストールしようとしたら、「libmcryptが必要」というエラーが出た。
# yum --enablerepo=remi --enablerepo=remi-php55 install php-mcrypt (中略) エラー: パッケージ: php-mcrypt-5.5.22-1.el6.remi.x86_64 (remi-php55) 要求: libmcrypt.so.4()(64bit) 問題を回避するために --skip-broken を用いることができません これらを試行できます: rpm -Va --nofiles --nodigest
標準のリポジトリやREMIに libmcrypt はなかったが、EPELにあったのでインストール。
何かワーニング出たけどインストールできた。
# yum --enablerepo=epel install libmcrypt.x86_64 (中略) 依存性を解決しました ================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================ インストールしています: libmcrypt x86_64 2.5.8-9.el6 epel 96 k (中略) パッケージをダウンロードしています: libmcrypt-2.5.8-9.el6.x86_64.rpm | 96 kB 00:00 警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 Importing GPG key 0x0608B895: Userid : EPEL (6) <epel@fedoraproject.org> Package: epel-release-6-8.noarch (@extras) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 (中略) インストール: libmcrypt.x86_64 0:2.5.8-9.el6 完了しました!
それからphp-mcryptをインストールする。今度はエラーとならずに完了。同時にphp自体も5.5.21から5.5.22にアップデートされた。
#PHP5.5のインストールは実は先週行ったので、1週間の間に新しいバージョンが出たようだ。
libmcryptのインストール時の警告は気になるが、とりあえずこの状態からlarabelのインストールを目指そう。
# yum --enablerepo=remi --enablerepo=remi-php55 install php-mcrypt (中略) 依存性を解決しました ================================================================================ パッケージ アーキテクチャ バージョン リポジトリー 容量 ================================================================================ インストールしています: php-mcrypt x86_64 5.5.22-1.el6.remi remi-php55 43 k 依存性関連での更新をします。: php x86_64 5.5.22-1.el6.remi remi-php55 2.6 M php-cli x86_64 5.5.22-1.el6.remi remi-php55 3.7 M php-common x86_64 5.5.22-1.el6.remi remi-php55 1.0 M php-gd x86_64 5.5.22-1.el6.remi remi-php55 72 k php-pdo x86_64 5.5.22-1.el6.remi remi-php55 112 k php-process x86_64 5.5.22-1.el6.remi remi-php55 57 k php-xml x86_64 5.5.22-1.el6.remi remi-php55 208 k (中略) インストール: php-mcrypt.x86_64 0:5.5.22-1.el6.remi 依存性を更新しました: php.x86_64 0:5.5.22-1.el6.remi php-cli.x86_64 0:5.5.22-1.el6.remi php-common.x86_64 0:5.5.22-1.el6.remi php-gd.x86_64 0:5.5.22-1.el6.remi php-pdo.x86_64 0:5.5.22-1.el6.remi php-process.x86_64 0:5.5.22-1.el6.remi php-xml.x86_64 0:5.5.22-1.el6.remi 完了しました!
2015/05/07追記
Laravelにはphp-mbstringも必要だった。php-mbstringをインストールしたときの記事は以下。
Laravelのインストール
参考ページ:
CentOS6.x - CentOS6.6に php5.5をインストールしてみる。 - Qiita
【CentOS, PHP】CentOSへのPHP5.5, MySQL5.6環境の構築 - Qiita
CentOS 6.5 にphp5.5とMySQL5.6をyumでインストールする - Qiita
CentOS6.5にPHP5.5をインストールする - inari blog (@inari111)
CentOS 6.6 LAMPサーバ インストールメモ【CentOS6.6+Apache+MySQL+PHP】 | あぱーブログ
Laravel - The PHP Framework For Web Artisans
CentOSでlibmcryptをインストール | Me-ISM
Advanced/W-ZERO3[es] Androidアプリ開発 FF11 Java JavaScript Jリーグ Linux MySQL PC PHP PostgreSQL SQL Xperia ray アニメ・コミック アルビレックス新潟 ウェブログ・ココログ関連 グルメ・クッキング ゲーム サッカー サッカーW杯 サーブレット・JSP スポーツ セキュリティ ニュース パソコン・インターネット プログラミング、技術情報 外国為替証拠金取引 学問・資格 将棋 心と体 携帯・デジカメ 旅行・地域 日記・コラム・つぶやき 映画・テレビ 書籍・雑誌 株式投資 秀丸エディタ 経済・政治・国際 芸能・アイドル 趣味 釣り 開発環境 音楽
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Recent Comments