上京エンジニアの葛藤

都会に染まる日々

上京エンジニアの2017年振り返り

今日で仕事納めでした、おっくんです。

今年の振り返りをさらっと書きます。

気がつけば、上京をして約半年が経った。
東京生活はもう慣れてきて標準語も板についてきた気がする。

さて、エンジニアとしてに振り返りをします。

良かったこと

  1. 優秀な会社で優秀なエンジニアの方と働ける環境を得ることができた
  2. Perl を習得してきた

1つ目

今年の3月まで大阪で勤めていた受託会社を退職し、東京の自社サービス中心の会社に勤めることができたことで、社内には優秀なエンジニアの方も多く素晴らしい環境を得ることができてよかったと思った。
もともと技術力に自信があるわけではなかったが、実際業務に携わると自分の技術力に低さをものすごく感じて刺激的な毎日を送っている。
この環境を存分に利用して自分自身成長していきたいと思う。

またこれって受託開発会社あるあると思うんですけど、作っては納品をするというサイクルをひたすら繰り返しており、品質ももちろん重要だがいかに早く納品することに注力し開発していた。
だから運用に携わることが少なかったので、自社サービスは作って終わりではなく我が子のような感覚ですごくやりがいを感じている。

2つ目

今まで PHP のみで開発を行ったことしかなくて、初めて違う言語をメインに業務を行った。
PHPPerl の影響を受けたとはいえど、習得するのにすごく苦戦した。
そしてまだ苦戦している。。

改善すべき点

  • 技術的なことや自分の考えのアウトプットが不足してしまった
  • 自身が運営しているサービスを成長させることができなかった
  • ネイティブアプリへの理解度が著しく低い

1つ目

とにかく技術ブログや Twitter を初めてみたがアウトプットが少ないのでもっとしないとあかんなあって思う。
特に来年は規模問わず登壇して自分の考えを発信したりしようと思う。

2つ目

趣味でもある Web サービスの開発でいくつかサービスを公開しているが悲しいことにほとんどアクセスがない。もちろんアイデア自体にも問題があるのかもしれないが来年こそは使われるサービスにしたい。
今は月々500円程度の超低スペックの VPS で複数サービス運用していてもなんら問題が起きないのが非常に悲しい!

3つ目

業務ではネイティブアプリの運用をメインに行っているが、ネイティブアプリの理解度が低く開発を進める上で困ることが多い。
今は個人のサービスを全て Web 作っているが、ネイティブアプリを作るなどしてみてもいいかもしれへんなーって思う。
理想は、Web サービス利用者増える → ネイティブアプリ版を作るという流れがええかな。

総括

振り返ってみるとなかなか濃い一年でした。
エンジニアとしての環境はすごく整っているので、生かすも殺すも自分次第やなって感じです。

うん、やっぱり文章を書くのが苦手! 来年は更新頻度を上げます。

年末年始は、ひたすら Perl 書きます。

良いお年をー

bash から fish に変えてみた

経緯

会社で使っている Mac が突如お亡くなりになり、bash の設定を一からまたするのがめんどくさかったので、「めんどくさいな〜」とボヤいてたら、先輩に「fish にすればいいじゃん」と言われた。

そもそも情弱な僕は fish なんか知らなくて「fish・・・なんやそれ」ってなってググりながら興味本位で入れてみたところから僕の fish は始まった。

感想

結論から言うと・・・
「すごくいい!!!」

なにがいいかと言うと、コンソールが三流な僕にも使いやすいです。
補完がきいたりして直感で操作できます。

あとは、何よりプラグインマネージャーである fisherman がかなり優秀です。
下記にもコマンドを紹介しようと思いますが、プラグイン管理がすごく簡単で三流な僕でも簡単に扱えちゃいます。

またテーマがかなり豊富にあるので色々選ぶのが楽しい!

では、簡単に導入手順を書いていきます。

導入手順

fish のインストール

brew install fish

シェルを登録

sudo vi /etc/shells

以下を追加
/usr/local/bin/fish

fish にシェルを変更

chsh -s /usr/local/bin/fish

fisherman をインストール

curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisher

ちなみに削除は以下
fisher self-uninstall

以上!!!
導入も簡単です。

プラグイン等々

最後にプラグインを紹介しておきます。

テーマ

以下の URL から適当に選んで入れちゃってください。
github.com
僕は godfather を選びました!

fisher install omf/theme-godfather

エイリアス

エイリアスは、 balias ってのがあるので入れちゃってください。

fisher balias

まだまだ便利なのがたくさんあるのですが、以下の URL に僕のより丁寧に書かれているので、参考にしてください。
ちなみにクラスメソッドさんのブログを参考に導入してみました。
いつも良記事をありがとうございます!感謝しています!

dev.classmethod.jp

futurismo.biz

それでは、皆さん fish 生活を楽しんでください!!!

【書評】「エンジニアとして世界の最前線で働く選択肢」を読んでみた

どうもこんにちは。
最近 Kindle 買いましたおっくんです。

ずーっと通勤中とか出先で技術書読みたいなーと思うことが場面が結構あったんですけど、
技術書って分厚いし重いし、持ち歩きに不便やなーって思ったのでついに買っちゃいました Kindle Paperwhite!(端末割引のために Prime 会員にまでなりました)
なんで今まで買わんかったんやろ?って思うぐらい便利です。

そんな感じで、技術書だけでなく色々な本を良い漁ってます。
ですので、今回こちらの本の書評を書いてみたい思います。

読んだきっかけ

エンジニアの方でシリコンバレーで働くことに憧れを持っている人はたくさんいると思います。 僕もその中の一人で将来シリコンバレーでエンジニアとして活躍してみたいなあと思っていたので読みました。

シリコンバレーのエンジニア事情をググると、
- エンジニアは給料が高い
- サンフランシスコは物価が高い
- 突然のクビを言い渡されることがある

などの情報が多いと思います。
僕もシリコンバレーのイメージってそんな感じだったのですが、今回この本を読んで具体的にイメージすることができました。(僕が無知すぎなだけかもしれません・・・)

良かった点

全体的な章の構成や文章は読みやすく、さくさく読み進めることができました。
また、著者である「竜さん」の実体験を書かれているので読んでいてイメージがしやすかったです。

この本を読むまでは、向こうで働いてみることを考えた時に特に不安に感じるのが以下の 3点でした
- 英語力
- 技術力
- 面接フロー

しかし、もっと大切なことがありました。
そう。「ビザ」です。
恥ずかしながら「ビザ」については全く頭になかったので勉強になりました。

また、特にレイオフやファイアなど現場の経験に基づくリアルな話が貴重でおもしろかったです。

物足りない点

物足りなかった点を強いて挙げるとするのであれば、
以下ことをもう少し掘り下げてほしかったです
- 技術的な内容(困った体験談等)
- 勉強会やカンファレンスはどのように開催されているかなど
- スタートアップ界隈の情報

まとめ

ネット上の情報より細かく書かれており、このような書籍は少ないので、
シリコンバレーに少しでも興味があるエンジニアの方にはぜひオススメした一冊です。
読んでいるとなぜかワクワクしてすごくモチベーションが上がりました。

Perl で Amazon の Product Advertising API を叩いた話

AmazonProduct Advertising APIPerl で叩かないといけないことがあったのでその時のことをまとめておく。

初めに、cpan に何かモジュールがあるだろうと漁ってみたところ・・・
Net::Amazon metacpan.org

あたりが良さそうだったので、とりあえず入れてみた。

cpanm Net::Amazon  

早速叩いてみた。
Product Advertising API 用のアカウントを事前に作成する必要があります

今回は、ISBN を元に商品を取得したのでソースはこんな感じ。

#!/usr/bin/perl

use strict;
use warnings;

use Net::Amazon;
use Data::Dumper;

my $ua = Net::Amazon->new(
    associate_tag => '%ASSOCIATE_TAG%',
    token         => '%TOKEN%',
    secret_key    => '%SECRET_KEY%',
    locale        => 'jp',
);

my $item = $ua->search(
    isbn => '9784873110967'
);

unless ($item->is_success()) {
    print "$item->message() \n";
    exit;
}

warn Dumper $item;

1;

はい、めっちゃ簡単でした。
token はアクセスキーを入れてもらえば問題ないです。

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 」をつけるだけでとても見やすくなります。