2段階認証しているgmail宛のメールをvmwareのcentosで送る手順

CentOSのpostfixでGmail(二段階認証)へのSMTP Authを設定する - uehatsu's tech blogこの記事を参考にすればok 資産形成におすすめのFX口座はこちら。 http://s2fx.com/ranking/856.html安全靴や作業着を買うならこちら。 http://azmaya.jp

php5.2 mb_send_mailを使うと半角カナが文字化けする

php

mb_send_mailって便利だけどその辺注意する事

cakephp1.2 キャッシュエラーになる原因について

cakephp使っているとたまにキャッシュファイルがunlink出来なかったとかtouch出来なかったとか出る時がある。通常アクセスが多い場合等、同時アクセスが起きた時に発生する場合があるらしいが、別にアクセスはほとんど無いのにキャッシュエラーが頻繁に起き…

jquery-ui 1.7.2 datepickerを同じページに複数表示したい場合、setDefaultsが便利だった件

同じページに複数datepickerを表示したかったんだけど、共通の設定を何度も書くのが嫌でどうすればよいか悩んだ挙句、setDefaultsを使えば良いことが分かった。 // 共通設定 $.datepicker.setDefaults({ showOn: "both" }); // 個別設定1 $("#date1").datepi…

cakephp1.2 スマホ判定

appController内でRequestHandler読み込んでbeforeFilterの中で以下のようにする。 RequestHandler->isMobile()) { $this->view = 'theme'; $this->theme = 'mobile'; } こうするとviews/themed/mobile/controller/index.ctpみたいな感じでthemed/mobile内を…

cakephp キャッシュ周りがおかしい場合はキャッシュしないようにすること

モデルで少しトリッキーなことをしたらキャッシュが悪さをしてしまい機能によって動いたり動かなくなったりしてしまった。そういう場合はもうキャッシュ自体を無効にしてしまうことも検討すること。以下で無効にできる。

css display:inline-blockの便利さが分かりました

css

inline-blockすごい便利だった。今日やっと意味が分かった。例えばspanとかのinline要素はwidthとか設定しても適用されないけど、かと言ってdivとか使うと改行されちゃうし困った、ってときにinline-blockを使うとwidthが適用されかつ改行もされないことが分…

cakephp1.2 componentの__constructについてメモ

コンポーネントで初期化処理したい場合は__constructを使えば問題無い。[ステップアップ! CakePHP] Controller で Component を使う | バシャログ。 ただしここにもあるように通常はinitializeかstartupを使う。__constructとの違いはShellとかでcomponent…

php5.3.3 centos6.8 composerインストール手順

インストール curl -sS https://getcomposer.org/installer | phpcomposer.pharが出来るので移動 mv composer.phar /usr/local/bin/composercomposer.jsonを作成する cd /usr/local/bin vi composer.json内容 { "require": { "monolog/monolog": ">=1.0.0" }…

cakephp1.2 Shellからモデルとコンポーネントを呼ぶ方法

コントローラーであれば$usesと$componentsを使うけど、Shellの場合は$usesは使えるけど$componentsは使えない、というなんとも中途半端な感じだったのでメモ。以下のようにする。 Sample = new SampleComponent($this); } } 資産…

mysql group_concatにorder byを指定する時の注意事項

group_concatにorder byを指定しても意図したソートにならないケースがある。 まず以下のように、group_concatに指定したcategory_idをそのカラム順でソートするケースの場合は問題ない。 group_concat(category_id order by category_id)問題となるのは以下…

php csrf対策

php

参考サイト PHPでクロスサイトリクエストフォージェリ(CSRF)対策するときのメモ - Qiitaphp

cakephp1.2 componentの$enabledでNoticeが出る件

本来componentを使うと$enabledがセットされるんだけど、beforeFilter()の中でcomponentをnewしてしまうと、$enabledが定義される前にstarup()とかを呼んでしまい、Noticeが出るのでcomponentをbeforeFilter()の中でnewしないこと。$enabledはcomponentのsta…

mysql テーブル設計 カンマ区切りのカラムについて考察

例えば商品の属性とかレコードに紐づくデータが沢山あってレコード毎にデータ作ると色々面倒なケース。DB設計の基本について 例えば一つのレコードが複数のカテゴリに… - 人力検索はてな MySQLでカンマ区切りの値を登録してみる | シスデイズ技術ブログ まさ…

cakephp1.2 database.phpのdefaultに設定されているDBのテーブルはModelファイルの作成が必須ではない

ClassRegistry::init('ModelName');こんな感じでmodelsフォルダに存在しないModelを読み込んでいた場合に、何故かエラーになる場合とならない場合があって1時間くらいはまってしまったのでメモ。どうやらdatabase.phpで$defaultに設定されたDBのテーブルだと…

php sqlのIN句をarray_fillでキレイにまとめる

以下のようにすれば一行で$idの数だけ?を記述するin句が作れる i.id in ('. implode(',', array_fill(0, count($id), '?')). ')str_repeatを使う方法もあるようだけどこっちの方がキレイ

cakephp1.2 通常のSQLとO/Rマッパーとのselectの結果の違い

今更だけどメモ。cakephpでO/Rマッパーというかfindとかした時の結果と、通常のsql(query)を実行した時の結果の違いについて。通常のsqlを使用した場合 sql $sql =<<<SQL select * from users u inner join posts p on p.user_id = u.id where u.id=1 SQL; pr($this->User->query($sql)); 結果 Array ( [0] => Array ( [u] => Array ( [id] => 1 [user_name] </sql>…

mysql group_concatとfind_in_setのまとめ

group_concatはgroup byで複数行をまとめた際に、まとめられた列のデータをカンマ区切りで表示する機能。find_in_setはカンマ区切りのデータを絞り込む機能。この2つを組み合わせることで、本来なら副問合せ等の複数のSQLに分けないと出来ないようなことが一…

bootstrap ハンバーガーメニューを常に表示する方法

bootstrapのハンバーガーメニューをどのサイズでも常に表示させたい場合Customize and download · Bootstrap @grid-float-breakpoint => 9999pxとか大きい値にする※9999とか気持ち悪いんだけど他に方法が無さそうだったので仕方なくこうする

widows8.1でIonic1.3のサンプルアプリをブラウザとandroid端末で動作させる手順

windows8.1環境で確認Getting Started with Ionic - Ionic Framework こちらの手順に従うhttps://nodejs.org/en/ node.js v6.9.1 インストールコマンドラインで実行 npm install -g cordova ionic(終わるのに15分くらいかかる) ionic start myApp tabspcでの…

CordovaやらIonicやらOnsenUIやらAngularJSやらその辺のまとめ

ここ最近ecサイトをbootstrap&cakephpで作っていて調べものをしている時に表題の技術の事を調べたのでざっくりまとめ。まずAngularJSって何よ。jQueryでいいじゃん。って昨日までは思っていました。しかしAngularJSを使うと今までwebサイトの概念として当た…

php 例外時のデバッグは__toStringが便利

php

__toString実行しておけばエラーの呼び元とか行数とか出してくれるので便利サンプル log($e->__toString()); }

sql joinの条件とwhereの条件の違いについて

ケース1 left join t2 on t2.t1_id = t1.id AND t2.status = 'ERROR' ケース2 left join t2 on t2.t1_id = t1.id 中略 where t2.status = 'ERROR' ケース1の場合は結合前の条件となるため、ERRORでないt2のデータもNULLとしてデータを取得する。 ケース2の場…

css div内のある要素だけ余白を無視したい場合はネガティブマージンを使えばよい

css

例えばdiv内に15pxのpaddingが設定されていてその中にimgタグを入れるケースでimgタグだけ15pxのpaddingの設定を無視したい場合、imgタグに-15pxのmarginを設定してやれば、imgタグにはpaddingが適用されなくなる。

css display:table display:table-cell について

css

floatとか使わなくてもtableのように分割できて便利。vertical-alignも使える。後でまとめること。

jquery slickとphotoswipeを連携する

前記事 jquery bxsliderとphotoswipeを連携する - 技術ブログbxsliderの挙動がスマホだといまいち(スワイプ中にスクロールしてしまう等)だったのでslickに変更。http://kenwheeler.github.io/slick/ slick http://photoswipe.com/ photoswipeslickで画像をス…

centos5.11 vim8インストール手順

centos5.11 vim7.4インストール手順 - 技術ブログ gitからvimを落とすと最新のvim(現時点だとvim8が最新)になるため、このページのvim74をvim8に置き換えてインストールすればok

php fatalエラーの補足方法

バッチがメモリ不足等で落ちた場合にFatalエラーが発生するけど通常fatalエラーはtry-catchはおろか、set_error_handlerでも補足できない。 そのためregister_shutdown_functionを使う必要がある。

cakephp1.2 バッチ(Shell)からControllerのメソッドを呼びたい

Shell側は以下のようになる Users = new UsersController(); } function main() { $this->Users->func(); } } 通常ShellからControllerのメソッドを呼ぶような事はしないんだけど、今回はpro…

cakephp1.2 queryで更新系SQLを実行した時の戻り値はtrueではない

例えば以下のような処理があったとして query($sql, $param); sqlが正常に完了してもqueryの戻り値は【trueにはならず】に【空のarray()】が返る。 はい、1時間はまりました~。貴重な人生の1時間を無駄にしました~。空のarrayなので【if(!$ret)】とかで判…

bootstrap ドロップダウンメニューがパネルの下に隠れてしまう件

z-indexも効かず、1時間はまったので(いや正確には昨日の夜これが分からなくてそのまま寝てしまったので実際は4時間は無駄にした。でもそのおかげで睡眠がとれたから±2時間のマイナスとしておこう。と思ったけど本当はその後8km走るはずだったし損失はそこそ…

brackets 改行時の自動インデントを無効にする方法

デバッグ>環境設定ファイルを開くbrackets.json //以下を追加 "smartIndent": false 低予算で始められるおすすめのFX口座はこちら。 http://s2fx.com/ranking/856.html

bootstrapのカスタマイズ方法

通常、既存のbootstrap.cssをカスタマイズしたい場合、別途custom.css等を作ってそれで上書きをするんだけど、例えばグリッドを12から24に変更したい場合だと、上書きするやり方ではできなそうだったため以下調べたやり方2つ。ビルドをしない方法 Customize…

jquery フォームのコピーについて完全に忘却していたので一生忘れないためのメモ

html <ul> <li>test1</li> <li>test2</li> </ul> こんなhtmlがあって、1つ目のliをコピーしてulに追加したいとする。そこでまずコンソールにコピー元のhtmlを表示する。javascript console.log($("ul li:first")); chromeのコンソールの結果 [li, prevObject: n.fn.init[1], context: do…

cakephp1.2 モデルのリレーションを全解除する

AppModel.php public function unbindModelAll($reset = true) { foreach(array('hasOne','hasMany','belongsTo','hasAndBelongsToMany') as $relation){ $this->unbindModel(array($relation => array_keys($this->$relation)), $reset); } } 参考サイト モ…

jquery bxsliderとphotoswipeを連携する

http://bxslider.com/ bxslider http://photoswipe.com/ photoswipebxsliderで画像をスライド表示させ、画像クリック時にphotoswipeで拡大表示させたい場合の話。 普通に実装すれば問題無くできる。ただ注意するところとして、photoswipeはデフォルトだとfig…

win10 chrome 「ホストを解決しています」でネットが遅くなった時の対処法

DNSのキャッシュはブラウザだけじゃない。PC内にも存在している。 - 技術ブログ まずこれでキャッシュクリアを試してみたけど改善されず。ルーターを再起動してもダメだった。試行錯誤したところ「Google Public DNS」を使うことで解消された。 方法としては…

jquery エレメントのデバッグを分かりやすくする方法

How do I console.log a jQuery DOM Element in Chrome? - Stack Overflow デバッグに関する面白い回答があった。例えば↓のようなhtmlがあったとして、 <div> <label> <input type="radio" class="flat" name="radio1" value="0" />チェック1 </label> <label> <input type="radio" class="flat" name="radio2" value="1" />チェック2 </label> </div> findの結果を見たい場合、…

jquery bootstrapのiCheckでflat指定したradioボタンを選択する方法

はまったのでメモ。html <div> <label> <input type="radio" class="flat" name="radio" value="0" />チェック1 </label> <label> <input type="radio" class="flat" name="radio" value="1" />チェック2 </label> </div> jquery $(function(){ // ↓flat指定ありの場合 $("div").find('input').eq(0).iCheck('check'); // ↓flatを使わない通常の選択方法 //$("di…

bootstrap3 グリッドシステム col-sm やら col-xsの意味について

bootstrapのグリッドシステムを利用する際にcol-smやらcol-xsを指定する。詳細はこちら CSS · Bootstrapグリッドって分かりにくいんだけど、ポイントは12分割がベースってこと。 例えば <div class="col-sm-6 col-xs-12">hoge<div> <div class="col-sm-6 col-xs-12">hoge<div>みたいな指定をした場合、col-sm即ちタブレット以上サイズ(pc</div></div></div></div>…

mysql5.6が突然起動しなくなった件の原因と対策

昨日まで動いてたmysqlが突然起動できなくなった。以下、ログ周りのオプションを変更してみた時のエラーログまとめ # error1 /usr/sbin/mysqld: File './mysql-bin.000023' not found (Errcode: 28 - No space left on device) 2016-09-14 08:52:37 23762 [E…

メールの符号化について

受信したメールをprocmail経由でphpに渡してゴニョゴニョする時に失敗した件のまとめ。まずメール送信の仕組みから分かっていなかった。初期のメールではASCIIの7bitデータのみが想定されていたため、現在でも添付のバイナリやマルチバイトである日本語は7bi…

centos パスワード無しでscpする手順

サーバー1からサーバー2にパスワード無しでscpするための手順■サーバー1の作業 サーバー1鍵作成 ssh-keygen -t rsa保存場所やpassphrase聞かれるけど全部エンターでok デフォルトだと以下の場所に秘密鍵と公開鍵が作成される .ssh/id_rsa .ssh/id_rsa.pub公…

jquery qtip2をレスポンシブ対応する方法

javascript - qTip viewport adjustment not working - Stack Overflow これを見れば分かる。要はpositionにviewportを追加しないといけなかった。低予算で始められるおすすめのFX口座はこちら。 http://s2fx.com/ranking/856.html

awsでmysqlが突然起動しなくなった件

awsでmysqlが突然落ちて再度起動しようとしたときのエラー 160731 16:54:25 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 2016-07-31 16:54:25 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --…

awsのサーバーにrootでログインしたい

aws

centos6.7 普通にrootでログインしようとすると Please login as the user centos rather than the user root と表示されるため以下のようにすればよい。 /root/.ssh/authorized_keys をバックアップ /home/centos/.ssh/authorized_keys を /root/.ssh/autho…

phpmyadmin create_tables.sqlはexamplesからsqlフォルダへ移動している

イラッときたためメモしておく

お名前.comで取得したドメインを使ってAWSサーバーにアクセスする手順

aws

お名前のdns使うのであればaws側の設定は不要。route53も設定する必要はない。手順 お名前にログイン DNS関連機能設定>ドメイン選択>DNSレコード設定を利用する AレコードのVALUEにインスタンスのElasticIPを指定 「DNSレコード設定用ネームサーバー変更確…

更新日が30日前のファイルを別ディレクトリに移動したい

1か月以上前のcsvファイルを別ディレクトリに移動したいんだけど、ファイル数がすごい多いと単純にmvコマンドやwinscp使ってもすごいめんどくさそうな場合、以下のようにする。 find . -mtime +30 -name "*.csv" | xargs mv -t _archive/mvのtオプションにつ…

aws EC2からメールが送信できない件

aws

awsのec2をcentos6で使用すると最初からpostfixが起動していた。 しかしphpからmail()でgmail宛にメールを送信しようとすると何故かメールが送信できない。 mailogを見ると【refused to talk to me: 554-mail.com (mxgmxus005) Nemesis ESMTP Service not av…