読者です 読者をやめる 読者になる 読者になる

根性駆動開発

備忘録とか日記とか

インターンに行ってきた

5日間のIoTインターンに参加してきた。

ほとんどサーバとかバックエンドの開発しかしなかったけど叩いたAPIのレスポンスをラップするAPIサーバとか変なものが作れたので良い経験になったと思う。

15人しかいないメンバーで3人ずつチーム開発だったけどどのインターン生もかなりレベルが高い雰囲気でなんで自分がその場にいれたのか不思議でならなかったけど最終的にいい結果と知見が得られたので良かった。

昨日、一昨日とその開発に関連する記事をかいたけど得た知見はまだあるのでちまちま備忘録として記録していくつもり。

反省点としてはgitのブランチ壊したりクラウドサーバとかの自前意外の環境での開発経験が乏しかったことからかなりそのあたりでハマってしまい、クライアントサイドにあたるネイティブのアプリ開発の手伝いが出来なかったところと、アジャイルによるスクラムでの開発だったはずだけど完全分業でハード部分を全く触らなかったところとか。

それにもっと生産能力が高ければせっかくAPIサーバ書いたのだからwebアプリケーションに拡張するといった方向にもいけたと思うし何にしてももっと経験が必要で、生産能力というパワーで殴れるエンジニアになろうと思った5日間だった。

とりあえず疲れたのでもう寝る。

macで動いていたexpressのコードをubuntuのクラウドに挙げたらinvalid ELF headerで動かなくなった

タイトルの内容のエラーで3時間近くハマった。

原因はnode_modulesのビルドシステムとかの問題らしく、maclinuxではそこの違いからエラーが起こるらしい。 解決策としてはnode_modulesを一旦リムーブし、linuxからまたnpm installするのがいいと思う。

これは助言で頂いたもので、実際は

  1. githubにnode_modulesを.gitigunoreにいれてからpush
  2. linuxからpushしたリポジトリをクローン
  3. npm install

という形で解決した。

怒られているモジュールだけを消しても意味はなくて、よくわからなかったらnode_modulesを丸ごと消して環境ごとにインストールしたほうが良さそうだった。

ニフティクラウドでファイアウォールの設定とかしたらubuntuのセキュリティでハマった

元々インフラに近いところの知識はかなり疎いので、ファイアウォールの設定とか何が何やらという具合で、よくわからず設定していたら、上手く外部ネットワークからhttp通信が出来なかった。

よくよく確認してみると、クラウドファイアウォール自体は上手く設定出来ていたのだけれど、サーバに使っていたOSがubuntuで、ubuntuはさらにOS側からファイアウォールの設定が必要との事だった。

簡単に使えるファイアウォール UFWの紹介

上の記事のように、ufwコマンドでファイアウォールで設定をする。たぶん最初から入ってるけどなかったらaptコマンドでインストールする。

一応設定では、

  • 22番ポートを自分のネットワークからsshとかでアクセス出来るように解放
  • 80番ポートをhttp通信出来るように解放
  • 3000番ポートをnode.jsのサーバ用に解放

といった感じ。