サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
mask.hatenadiary.com
自分が作っているアプリケーションで、バックグラウンド(最前面でない状態)でもキーボードが押された、あるいはマウスが動いたかを判定したいことがあったが、参考にできる文献が少なかったのでメモがてらに共有。 僕がやりたかったこと teratail.com 簡単に言うと上のteratailの記事と同じで、最前面の状態でなくてもkeyDownやMouseMoveのイベントを検知したかったのですが、記事にもある通り バックグラウンドでキーボードのイベントを受け取る事は基本的に難しいです。簡単にできてしまえば、パスワードを盗み取るキーロガー(キーボード入力を記録するソフト)が簡単に作成できてしまいます。そのため、最前面の時のみ受け取れるようになっているウィンドウ管理システムが多いように思います。 ということで実現は難しいように思えた。ただ、BetterTouchToolのようにどうにかすればキーの動作を
新しくDBを作ってデータを挿入しようとしたら Note: #1265 Data truncated for column 'created' at row 1 というエラーが起きた。 調べてみるとどうやら挿入されようとしたデータがなんか想定してたより長いよ。的なエラーらしい。 僕の場合はレコードが作成された日時を入れるカラムにDATE型を指定していたのですが、そこに突っ込むデータはNOW()で取っていてTIMESTAMP型だったので、カラムの型指定をTIMESTAMPにしたら直りました。
ajaxで生成された部分に対して、普通のclickイベントなどではイベントを効かせることはできません。 例えば何かしらの事情でajaxで ...という要素を生成したとして、普通に $('#test').click(function{...}); と書いてもclickイベントは検知されません。 ajaxで生成した部分に対してclickイベントを発火させるには $(document).on('click', '#test', function(){...}); と書く必要があります。 これはjQuery1.9以降の場合で、1.8以前の場合、.live()を使うことになります。
諸事情で特殊記号(☆)とかが文字列に入っていたら、排除してちゃんとした文字列に直したい、ということがあって調べたので共有。 $address = '東京都☆渋谷区'; $formated_address = preg_replace("/[^ぁ-んァ-ンーa-zA-Z0-9一-龠0-9\-\r]+/u",'' ,$address); echo $formated_address; // 東京都渋谷区 って感じらしいです。 特殊記号以外の文字(普段使ってる漢字とか英数字)って正規表現だと[ぁ-んァ-ンーa-zA-Z0-9一-龠0-9\-\r]って表現できるんですね。 なので^を使ってそれ以外が合ったら空文字に変換していると。 なるほどなぁ( ´_ゝ`)
git add したら CRLF will be replaced by LF in [ファイルパス] みたいになって、なんやねんと思ったら、改行コード勝手に変えちゃうぞ!的なやつだった。 いろいろ調べた結果 git config --global core.autocrlf inputすればいいらしい。 git config core.safecrlf falseしたらいいって情報もあったんですが、先輩に聞いたら「falseだとcrlfはcrlfのままになってしまうので! inputだとcrlfを上げようとするとlfになるけど、lfをwindowsに落としてもlfのままなので、windowsで見る人以外は困らないはず!」 らしいです。 なるほど( ´_ゝ`)
gitでconflictが起きて、一方を全部優先する方法 自分のコードを優先したい場合 git checkout -ours . マージした側のコードを優先したい場合 git checkout -theirs . 今まで一個一個コンフリクト直してたんですが、やっぱり僕程度のエンジニアが困るような内容は他の誰かが既に困っているはずなので、調べれば何かしらの方法ありますよね笑
LaravelでorWhereを使って A and (B or C) の条件を作る方法 を探していろいろ試行錯誤していたんですが、方法が分からず四苦八苦していました。 で、いろいろ試しまくって見つけた方法がこちら $user_list = $UserModel::where('sex' , 'male') ->where(function($query){ $query->where('age', '<', 10) ->orWhere('score', '>', 70); }) ->get();これで性別が男の子で、10才以下かscoreが70以上のユーザーリストが取得できます。 クロージャーで書く発想は無くて、何かしらの専用メソッドがあると思っていたのでびっくりしました笑 参考にさせていただいたのが以下のサイトです。 Laravel where条件の使い方 | Webエンジニアブログ
Laravelでsqlから吐き出されたやたら長いオブジェクトをきれいな連想配列にしてくれるtoArrayメソッドですが、たまにTrailing dataというエラーが出ます。 これ、なんなのかなーと思っていたらsql文でselectしたカラムの中に小数点以下の秒数を持つtimestamp型のデータがあるとこれが出る。 なので、テーブルの日付のカラムを作る際は timestamp without timezone▶︎timestamp(0) without time zoneにするといいです。 pgadminでこれを行う場合、timestamp without timezone型を選択し、長さを0にするとできます。
vimで x とかでもコピー(ヤンク)されるのが気になったのでなんとかならないか探してたら、ちゃんと方法があったので共有。 ~/.vimrcに以下を記入 " 削除キーでyankしない nnoremap x "_x "nnoremap d "_d nnoremap D "_D
Laravelでテーブルをjoinで結合してテーブル間でカラム名が被ったときの対処法 usersテーブル id, name, class_id classesテーブル id, name というカラムを持っていたとすると、 $users = DB::table(‘users') ->select(‘users.id', ‘users.name', ‘classes.name') ->leftJoin(‘classes', ‘users.class_id', '=', ‘classes.id') ->get(); こうやった場合、echo $users->name; すると「桜組」みたいな結果が返ってきて本当に欲しかった「太郎」のようなユーザー名がclassesテーブルのnameに上書きされてしまいます。 本来のSQL文ならclasses.name as class_nameとするのですが、L
WEBサービスを作っていると、「これに関する行があるなら上書き、無いなら新規登録したい!」という時がありますが、MySQL歴の短い僕はその方法が分からず、毎回 特定の行が存在するかチェック➡あればUPDATE、無ければINSERT という面倒な処理を書いていましたが、どうやら(もちろん)そんなことはする必要がなかったみたいです笑 基本的に僕みたいな初心者が欲しいと思ったようなことは、探せば便利な関数が既にあるか、サンプルコードが落ちてますね。Googleさんありがとう。 注意しなければならないのは、指定するカラムの中にPrimaryキーまたはUniqueキーがなければいけません。 mysql> insert into table_name (id, name ) values ('1000', 'MasK') on duplicate key update id='1000', name=
このページを最初にブックマークしてみませんか?
『mask.hatenadiary.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く