Tamanyan.me | たまにゃんのエンジニアブログ

ちょっとネガティブな話になってしまっているが、キャリアアップ視点での東南アジア就職に関して私が感じている事を話す。

MORE

JAMStackなアプリを開発するには動的コンテンツの表示も可能にしなくてはならない。そのためにはマイクロAPIからデータを取得してくる必要がある。Netlifyはその機能を実現するためにFunctionsを機能として備えている。また、NetlifyはサードパーティのライブラリをインストールすることなくSplit TestingでA/Bテストを行う事ができる。しかもGitのブランチレベルでのトラフィックの振り分けが可能だ。

Netlifyのチュートリアルについて知りたければ以前のNuxt.js (TypeScript) on Netlifyの良さを広めたいの記事を参照してほしい。

MORE

最近JAMStackに関して調べる事が多く、Netlifyの簡単さに感動したので紹介する。Nuxt.jsは動的Webサイトでも利用される事も多いが、静的Webサイトジェネレーターとしても優秀で柔軟性がある。今回はNuxt.jsが正式なTypeScriptサポートがアナウンスされたので、nuxt-tsを用いて、GithubのプロジェクトをNetlifyにページ公開する所まで辿る。

Netlifyとは?

静的WebサイトホスティングサービスのSaaS。Github/GitLab連携、自動ビルド・デプロイ、Functions、A/B Testingなど様々な機能がAll-In-Oneで入った凄いやつ。

MORE

最近フリーランスがageられている事が多いので、公平性を考えて主にキャリアの面での会社員エンジニアの良い所を話す。

結論

  • 会社員だとエンジニアの中でジョブチェンジが比較的容易い
  • 会社員だと異なる分野のエンジニアになっても、基本的に給与は下がらない
  • 次に目指すべきエンジニアになるための、実績になる仕事ができる
  • フリーランスだと、得意な分野への仕事が多くなりがち
MORE

本橋智光さん著の「前処理大全 データ分析のためのSQL/R/Python実践テクニック」を読み終えたのでレビューする。 感想を述べると「機械学習のモデルはなんとなく理解できたけど、モデルをどのようなデータを渡して訓練すれば良いか分からない人に良い」。

良いと思った点

駄目なコードと良いコードが併記されている

本書ではSQLとRとPythonの3つの言語で各前処理のコードの書き方が分かる。個人的にはRは必要なかったが、読む対象を広げているのだなという印象を受ける。

MORE

線形回帰を用いて過学習(オーバーフィッティング)と未学習(アンダーフィッティング)について学ぶ。プログラムは以下に置いておく。

tamanyan.net/Overfitting and Underfitting of Linear Regression.ipynb Tamanyan Blog is powered by Gatsby. Contribute to tamanyan/tamanyan.net development by creating an account on GitHub. github.com

線形回帰と過学習と未学習

線形回帰とは入力XXに対して、フィットするようなθθを決定する事である。ここでは、一次元の入力サンプルデータに対して、単回帰・多項式回帰を用いて、予測モデルを作成してみる。

hθ(X)=θ0x0+θ1x1+...+θnxn=θTXh_θ(X) = θ_0 x_0 + θ_1 x_1 + ... + θ_n x_n = θ^T X

scikit-learnの LinearRegression 線形回帰を使って、それぞれ1次、4次、16次多項式関数のModelを求めた。また、Samplesのデータは以下の関数で生成される。なお、サンプルデータは以下の関数で出力される。

Overfitting Underfitting

def rand_func(x, error=0.5, random_state=0):
    '''Return y'''
    np.random.seed(random_state)
    return np.random.normal(10 - 1. / (x + 0.1), error) # mean (平均値), standard deviation (標準偏差)
MORE

バンコクでソフトウェアエンジニアとして働き始めて約一年間経過した。この一年間行った事、バンコクの生活、感じた事を振り返る。

仕事について

一年前までは日本経済新聞社でiOSエンジニアをやっていた。日経電子版アプリ等をフルスクラッチで開発したりと、良い経験をさせてもらった。

なぜバンコクへ来たのか?日本人のソフトウェアエンジニアがバンコクで働く姿を想像できる人は少ないだろう。転職した経緯はバンコク駐在中の大学時代の友人からヘッドハントを受けたというシンプルなもの。仕事で英語を使いたい、ゼロからのプロジェクト立ち上げができる等、様々な理由はあったが、「バンコクに住むと楽しそう」と当時の私は考え、そのオファーを受理した。

MORE

Google Apps ScriptとGoogle Chartsを使って、チャート画像を生成、メールに添付し送信する手法を説明する。

この記事で分かる事

  • clasp の使い方
  • Google ChartsをGoogle Apps Scriptから使用する方法
  • Google AnalyticsのデータをGoogle Apps Scriptから引っ張ってくる方法
  • E-MailをGoogle Apps Scriptから送信する
  • Google Apps ScriptをTypeScriptで書く方法

完成形は以下な感じ

MORE

10分でローカルのKubernetesクラスタにNode.jsで構築したWeb Appをデプロイする。

この記事で分かる事

  • Node.js Web AppをKubernetesクラスタ上に構築する方法
  • Docker for Mac Kubernetesの使い方
  • Kubernetes Dashboardのインストール方法

今回使ったサンプルは tamanyan/k8s-node-sample にある。

Kubernetes を知る

Dockerは触っていてもKubernetesは初めてという人は結構多いのではないだろうか?

「Kubernetesは、コンテナ化したアプリケーションのデプロイ、スケーリング、および管理を行うための、オープンソースのコンテナオーケストレーションシステムである」

と書かれていても全くピンと来ない。まずオーケストレーションってなんだよ、曲でも作るのか?と冗談のように考える人もいるだろう。

MORE

(追記)Nuxt.jsが2.4.0から公式でTypeScriptをサポートし始めた。コードの中身はそのまま使えるが、ビルド部分の設定はこの記事のレポジトリなど参考にした方が良い。

Firebase + Nuxt.js + TypeScript を用いて、SSR に対応した Web アプリを構築する上での知見を共有する。

この記事でわかる事

  • TypeScriptでNuxt.jsを書く方法
  • Jestを利用したNuxt.jsのテスト
  • FirebaseでNuxt.jsのアプリをSSR(サーバサイドレンダリング)する方法
  • Firebaseの開発環境と本番環境の分け方

今回作成したサンプルはtamanyan/nuxtjs-firebaseに公開しておくので、必要であれば見てほしい。

作成したサンプルアプリへのリンク

MORE

日本のエンジニア界隈を見ると Web 系や SIer 系の話題はよく見かけるが、非 IT 企業で働くエンジニアの話は聞こえてこない(そもそも数が少ないからね…)。

非 IT 企業のエンジニアというと社内 SE を想像する人もいるだろう。ここでは、従来的な社内の業務システムの管理を行うエンジニアではなく、 企業のデジタルトランスフォーメーションを進める事ができるエンジニアの話をする。

デジタルトランスフォーメーションとは企業のビジネスモデルやビジネスプロセスに IT を適用させていく事だ。 全世界の人々がインターネットに接続できる現代において、無視することはできなくなってきている。

MORE