上京エンジニアの葛藤

都会に染まる日々

MySQL の SELECT 文を見やすくするぞ

自分用に tips として残しておこうと思います。

Webエンジニアの皆さんは、業務で MySQL を使用することがよくとあると思います。 DB の中を見たい時はどのように確認していますか。

僕はコンソールが苦手な情弱エンジニアなので、前職では PHPMyAdminMySQL Workbench などの GUI ツールを使用していました。

このような類のツールはすごく便利で使い勝手がいいと思いますが、現職で GUI ツールを使用している人がチーム内にはおらず、これを機に僕も CUI でやるか!と気合いを入れて挑みました。

普通に以下のように SELECT 文を打ちます。

SELECT * FROM demo;

レコード数が多かったり、カラム内のデータが多かったら以下のような結果になります。

+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+-------+-------+-------+-------+-------+-------+-------+--------+
| id | test1                                                                                                                                                                                                                                    | test2 | test3 | test4 | test5 | test6 | test7 | test8 | test9 | test10 |
+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+-------+-------+-------+-------+-------+-------+-------+--------+
|  1 | hoge                                                                                                                                                                                                                                     | hoge  | hoge  | hoge  | hoge  | hgoe  | hoge  | hoge  | hoge  | hoge   |
|  2 | hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge                                                                                                                     | hoge  | hoge  | hoge  | hoge  | hgoe  | hoge  | hoge  | hoge  | hoge   |
|  3 | hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge | hoge  | hoge  | hoge  | hoge  | hgoe  | hoge  | hoge  | hoge  | hoge   |
|  4 | hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge | hoge  | hoge  | hoge  | hoge  | hgoe  | hoge  | hoge  | hoge  | hoge   |
|  5 | hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge | hoge  | hoge  | hoge  | hoge  | hgoe  | hoge  | hoge  | hoge  | hoge   |

通常ディスプレイのサイズで折り返しされて見にくい・・・ってなりますね。

そういう時は、以下のようにクエリを書きます。

SELECT * FROM demo \G;


*************************** 1. row ***************************
    id: 1
 test1: hoge
 test2: hoge
 test3: hoge
 test4: hoge
 test5: hoge
 test6: hgoe
 test7: hoge
 test8: hoge
 test9: hoge
test10: hoge
*************************** 2. row ***************************
    id: 2
 test1: hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge
 test2: hoge
 test3: hoge
 test4: hoge
 test5: hoge
 test6: hgoe
 test7: hoge
 test8: hoge
 test9: hoge
test10: hoge
*************************** 3. row ***************************
    id: 3
 test1: hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge
 test2: hoge
 test3: hoge
 test4: hoge
 test5: hoge
 test6: hgoe
 test7: hoge
 test8: hoge
 test9: hoge
test10: hoge
*************************** 4. row ***************************
    id: 4
 test1: hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge
 test2: hoge
 test3: hoge
 test4: hoge
 test5: hoge
 test6: hgoe
 test7: hoge
 test8: hoge
 test9: hoge
test10: hoge
*************************** 5. row ***************************
    id: 5
 test1: hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge
 test2: hoge
 test3: hoge
 test4: hoge
 test5: hoge
 test6: hgoe
 test7: hoge
 test8: hoge
 test9: hoge
test10: hoge

こんな感じで縦に表示されます。

ということで、最後に「 \G 」をつけるだけでとても見やすくなります。

Devalopers.IO 2017に行ってきた

昨日クラスメソッドさんの「Devalopers.IO 2017」に行ってきましたので、ざっくり感想を書きます。

5月に上京をしてちょうど2ヶ月経過しましたが、東京での勉強会は初参加だったので、楽しみにしていました。
(毎日の業務に追われていてなかなか行く余裕がなかったという言い訳・・・)

経緯

クラスメソッドさんの技術ブログにはいつもお世話になっており、技術力の高さ・アウトプットの多さにとても興味を持っていました。
なので、一度生でパッパっと聞けそうな場だったので参加した感じです。

感想

会場に到着したのは、ちょうど12時頃。
すみません、朝一間に合いませんでした・・・

昼食のお弁当が配られていたので、お茶とお弁当をいただき着席。
ご馳走様でした。
お腹がすいていたので、とてもありがたかったです。

ランチセッション

代表の横田さんがクラスメソッドのご説明をされていました。
イメージとしては以下のように感じました。

  • リモートワークが多い
  • 事業としては近年急上昇
  • 社員・社員の家族をとても大切にされている
  • 社員絶賛募集中 てな感じで、すごいホワイト企業やん!って思いました。

そして午後から各セッションに分かれて移動を行います。
だいたい一コマ45分のセッションなのでいい感じのボリュームですねー。

クラメソの請求を支える技術

dev.classmethod.jp

植木さんという方のお話です。
経歴がなかなかおもしろかったです。
内容としては、請求書の発行までの複雑な業務フローをIT化し、効率化を図り素晴らしいエンジニアだと思いました。

  • 糊付けエンジニア
  • 「半径5メートルの人間を幸せにする」 この二つの言葉は印象に残っています。

「糊付けエンジニア」は自分にも当てはまるなあと思います。

「半径5メートルの人間を幸せにする」
これに関しては、現状全然自分はできていないなと感じました。
尚且つエンジニアリングにおいてとても大切なことだと思いますので、良いこと聞けたと思います。

基礎からの OAuth 2.0

www.slideshare.net

都元さんという方でファンキーな雰囲気の方でした。

内容は、OAuth2.0の概要を一から詳しく説明していただいて、丁寧な内容でした。
スライドもわかりやすくよかったです。

OAuth2.0曖昧なまま使用していることが多く、間違って認識している部分もありよくないなと感じたのでこれを機に勉強します!

開発環境での Docker 活用事例と本番運用に向けて考えたこと

西田さんという方で、普段大阪で勤務されているそうです。
個人的に関西出身なので、久しぶりに生の関西弁が聞けて和みました!

スライドが・・・見つかりませんでした。

今回このセッションが結構楽しみにしていて、皆さんがどのような開発環境で開発されているのか気になっていました。
自分は業務でも個人のプロダクトでもVagrantで開発していますが、PCのスペックもあまり高くないのでVagrant立てると重いなあと結構感じていました。
今回Dockerでの構築を聞き一度個人のプロダクトからDocker使っていこうかなーって感じです。

Amazon ElasticSearch Serviceの使いドコロ

dev.classmethod.jp

最後は藤本さんという方です。

恥ずかしながらElasticSearchは現職で初めて知り、絶賛勉強中でした。

実例を交えた比較がわかりやすかったです。

セッション内容も一番のボリュームで最後ということもあり、特別に45分も過ぎても話されていて気迫を感じました!

まとめ

前日急遽予約したので予約時点ではいくつも満席になっていましたが、実際行ってみると意外とそこまで満席感を感じませんでした。
また基礎部分をしっかり話してもらえるセッションも多くありとっつきやすく良かったと思います。

スポンサーブースでは、ノベルティが配られていたり、めそ子Tシャツが売っていたり、めそ子ステッカーが貰えたり・・・などなど
この内容で、昼食+懇親会もありで1000円はお得だなーと思いました。
(今回夜に予定があり、懇親会に行けなかったのが残念。。)

といったような感じ簡単にまとめましたが、来年も開催されるのであれば行きたいなと思いました!

クラスメソッドさんありがとうございました!

変数の値の出力(PHPとPerlの比較)

変数出力

新しい言語を始めて言語を習得していく上で必要な変数出力について少し書いていきます。
今までPHPをメインに書いていたので、Perlと比較してみます。
まずはPHPはこんな感じ。

文字列

$str = 'hoge';
var_dump($str);
string(4) "hoge"

配列

$array = ('hoge', 'bar', 'foo');
var_dump($array);
array(3) {
  [0]=>
  string(4) "hoge"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "foo"
}

一方Perlではこんな感じ。

文字列

my $str = 'hoge';
use Data::Dumper;
warn Dumper $str;
$VAR1 = 'hoge';

配列

my @array = ('hoge', 'bar', 'foo');
use Data::Dumper;
warn Dumper @array;
$VAR1 = 'hoge';
$VAR2 = 'bar';
$VAR3 = 'foo';

簡単ですね。
慣れの問題だと思いますが、ただPHPの方が見やすい気がします。。

もう1ヶ月が終わってしまった

上京をして、もう1ヶ月が終わってしまった。
早いものですねー。
てことで、毎日を生活していて感じたことをさくっと書いてみます。

私生活

  • 電車の本数がすごい多く、とにかく便利
    ただ平日の真昼間なのに混んでる・・・
  • やっぱり物価が高い
    場所にもよると思いますが、ランチに1000円は驚きます
  • お洒落な人が多い
    みんな芸能人みたい
  • テレビが面白くない
    テレビっ子なのでこれが一番辛い

仕事

  • 技術力が前職と比べ桁違い
    技術者の方の技術力が基本的に高いです
  • 未だにPerlに慣れていない・・・
    演算子が多数あって、頭の中がごちゃごちゃになる
  • そもそもPerlだけではダメ
    ElasticSearchとかHadoopとかゴリゴリ使っているのでその辺の概念を叩き込んで設計に盛り込んでいかないといけない

とりあえず今はこんな感じ・・・
勉強することが多くて、かなり苦戦していますが、ただ言えるのは、エンジニアとして毎日がとても充実しています。
今はとにかくがむしゃらにもがき苦しみます!

そして、そろそろいい加減技術的なアウトプットしていきます。

上京しました

初めまして、おっくんです。

5月も3週間ほど経ちましたが、上京しました。

これを機にブログを開設し、色々発信していこうかなあと思います。
今まであまり自分から文章を書いて、発信することがなかったので不慣れですが、皆さんお手柔らかにお願いします。

まずは簡単に僕の自己紹介させていただきます!

とあるWebサービスの営業職 最近結構話題にはなってます。(6ヶ月)

Webエンジニア兼デザイナー小規模のWeb制作会社 (2年6ヶ月)

自社サービスメインの会社でサーバーサイドエンジニア(今ここ)

てことで、よくある営業職からエンジニアに転職した感じですね。

前職ではPHPをメインで開発を行ってきたわけですが、現職ではPerlメインで開発することになりました。。
なかなか苦戦してます・・・

  • まずPerlに慣れていないので、言語仕様を覚えるのに苦戦
  • 今までトラフィックの高いサービスを設計・開発したことなかったので苦戦
  • 東京という街に苦戦

そんな感じで、毎日過ごしてます。

てことで、これから基礎中の基礎から色々書いていきます。
温かい目で見守ってください。