エンジニアのひよこ_level10

【毎日更新!】新卒3年目エンジニアブログです!

このブログは? 毎日更新エンジニアブログです【更新:2019/08/16】

このブログは?

毎日新卒3年目が学んだことを記事にしているブログです。
ターゲットを広めに、簡単な記事を書いていることが多いです。

あなたは?

  • 新卒3年目のエンジニア
  • 新卒2年目でLaravelにコントリビュート。
  • 新卒2年目でLaravelJPConference2019に30分トークで登壇
  • 趣味はVROculus Rift等。

使用技術

Docker,HTML,CSS,JavaScript,PHP等々...

こいつ面白いな?

そう思ったら、渋谷で良ければランチでもいかがですか!
twitterかメールで連絡していただければ、いつでも歓迎です!(メアドはgithub参照)

klack710 (Masaki Obata) · GitHub

https://twitter.com/nyamucoro

おすすめ記事

willow710kut.hatenablog.com

willow710kut.hatenablog.com

クッキーポリシーについて

このブログは、分析のためにクッキーを使用するような外部ツールを使っていますφ(・

クッキーの使用に関してブロックしていただいても、ブログは正常に閲覧することが可能です。
各ツールに関しては、以下のポリシーをご参照ください。

Google Analytics

support.google.com

■LogRocket logrocket.com

【jQuery】追加プラグインの読み込み順で無効化されてしまう【900日目】

なぜか追加プラグインが動かない

jQueryプラグインを新しく入れた。

しかし、今まで入れたプラグインが全て急に動かなくなった。
どうやら、プラグインを入れたせいなのまではわかったが、原因がわからなかった。

jQuery本体入りのJSだった

今回入れたプラグインが、jQuery本体入りのプラグインだった。

それが良くなかったらしく、プラグイン単体であれば問題なく動いた。
だが、なぜだろう。バージョンも同じなので、上書きしても問題なさそうに見える。

上書きすると、過去のプラグインが消える

答えは、あくまでプラグインjQueryの『拡張』であるために、
本体を再度読み込むと、それまでのプラグインが消えてしまうというのが原因だった。

  1. jQuery読み込む
  2. プラグイン読み込む
  3. jQuery読み込む
  4. プラグイン読み込む

この順番でやっていたのが私の今回の問題。
2.のプラグインが、3.の時点でなかったことにされてしまったのだ。

ファイルの読み込み順と、上書きというものを改めて考えさせられましたφ(・

【シェルスクリプト】文字列の列数を調べるコマンドwcとgrepの応用【899日目】

文字列の列数を調べたい

何列あるかを調べたい。

りんご

ごりら

これを3と取得したい

wcコマンド

wc -l

これで、改行の数を計測して、列数を調べる。
ちなみに、最後の行に改行がないと、2列と読み取ります。

grepコマンド

grep -c ""

grepは、各列に対して探索を行う関数。

無の文字を探索することで、全ての列を合致させることにより、
結果的に列数を調べることが出来ます。

この場合、最後の行に改行がなくても、3列と読み取ります。

使い分けよう

最後の行に列があるかどうかで、どちらかを使うべきか考えましょう。

仕組みを知ると、どんな違いがあるかわかっていいですねφ(・

【一週間振り返り】自分の状態に気づけた一週間【898日目】

克服した!って思ったら、実は出来てなかったとかありますよね。

そして、何も知らない人はそれを見てびっくりしちゃう。
うーん、難しいって思います。

1. 先週からの目標

  1. 楽しく生きる!

2. 目標に対して行ったアクション

  1. ゲームを多めに。
  2. お酒にも挑戦。

3. 次のアクション

  1. 楽しく生きる!

4. 今週良かったこと(新規・挑戦系)

特になし

5. 今週良かったこと(平時・生活的なところ)

  1. 他の人を遊びに誘った!

6. もっとこうしたかったこと

自分が異常な状態になったとして、
大事にしないためには、もう少し周りに見えないようにうまく隠すなりなにかしたいと思いました(´・ω・`)

7. 新しく気づいたこと

克服したかなーって思っても、克服できてないものがあったことに気がつけました。

8. その他

と、とりあえず一旦何事もなく過ごすのを頑張ってみたい?

9. 体重

101.0kg

なーにも変わらない/(^o^)\

ちなみに、VRで遊ぶのが増えたおかげて少しまし?

【OracleDB】GROUP BYで文字列を結合していくLISTAGG【897日目】

特定のグループの文字列を結合したい

id, group_id, name
1, 1, apple
2, 1, grape
3, 2, banana
4, 3, orange

こんなテーブルがあって、

group_id, name
1, apple.grape
2, banana
3, orange

こうしたい

LISTAGG

SELECT
 LISTAGG(name, '.') WITHIN GROUP (order by null) listagg_name

区切り文字と対象グループを指定する。

MySQL等と集約関数の名前が違うので注意φ(・

【OracleDB】GROUP BYしようとしたら、構文エラーが出る【896日目】

Group Byが出来ない

 SELECT
  id,
  SUM(num)
 FROM
  table
 GROUP BY
  table.id

これでエラーが出る

OracleDBだと、エラー

MySQLとかだと動くこの文。

OracleDBの場合、GROUP BYしたカラム以外のカラムを普通にSELECTしようとするとエラーが出る。
なので、SELECT文のIDを消すと動く。

集約関数と、GROUP BYで使用したカラムのみ使えるらしい。

使うDBによって仕様が違うことがある勉強になりましたφ(・

【正規表現】列検索において、AND、OR、NOTの表現【895日目】

正規表現でAND、OR、NOTをしたい

検索でAND、OR、NOTをしたい。

検索機能を実装するにあたって、そのベースとなる正規表現を作りたい。
(本当はそんなことしたくないが)

書き方

OR: 検索A|検索B

AND: ^(?=.*検索A)(?=.*検索B)

NOT: ^(?!.*検索文字列)

仕組み

ORは省略

AND

^(?=.*検索A)(?=.*検索B)

^ この部分は、『先頭の位置』を指す。

(?=) は、直後にその後の文字列が来る『位置』を探す。
文字ではないのが重要。

先頭から、その後の文字列が来る『位置』を探すのにあたって、
検索Aの左はワイルドカードで任意の文字となるために、探査が成功した場合は先頭の位置を指す。
文字自体に干渉していないために、検索Bの検索範囲は先頭からになる。

従って、両方の文字列を満たす場所を探査することになる。

また、『直後に該当文字列が来る』位置を探すので、検索文字の後に .*を書く必要がない

NOT

^(?!.*検索文字列)

^ この部分は、『先頭の位置』を指す。

(?!) は、選択した文字を含まない検索を行います。

先頭から選択した文字を含まないものを探索するので、NOT検索になります。

【jQuery】表示・非表示のものをすべて指すセレクタ【894日目】

非表示のものを対象にしたい

非表示に対して、特定の動作をしたくない。
あるいは、表示させているものにだけjQueryの対象にしたい。

:hidden :visible

:hidden で非表示のものを対象にする。
:visible で非表示ではないものを対象とする。

従って、

$(":hidden").show();

すると、非表示のものをすべて表示することが出来ます。
非表示のものに対してJSを走らせたくないとかなら、このセレクタを使えば良さそうです。

逆に

$(":visible").hide();

こうすると、すべての要素が消えて、真っ白な画面が出来上がります。

【jQuery】フロントエンドでバリデーションをするプラグイン【893日目】

クライアント側でバリデーションをしたい

サーバー側でも入力値を確認してバリデーションをかけるが、
出来れば通信を使わずにエラーが出せる部分は出したい。

であれば、クライアント側でバリデーションをかけたい。

jQuery Validation

jqueryvalidation.org

概要

submitすると、指定したname属性に対したバリデーションを用いて入力項目に対するエラーを表示する。

バリデーションのとき、入力内容のすぐ下にエラーメッセージを出すなどが簡単に出来ます。

バリデーションも、『require』や『email』などのプリセットがあるので非常に楽です。