IDOMエンジニアの開発環境（物理）のご紹介


# これはなに？
そんなIDOMのエンジニアの開発環境を垣間見ることでどのくらい挑戦しているかが見えてくるかも？ということで各エンジニアの開発環境（物理）を紹介していきたいと思います。

# ガリバーフリマチームのエンジニアたち
それでは早速ですが、[ガリバーフリマ](https://gulliver-frima.com/)の開発を担当しているチームのエンジニアたちの開発環境（物理）を見ていきたいと思います！

![IMG_7915.JPG](https://qiita-image-store.s3.amazonaws.com/0/216136/a60c1cb9-ff0a-e35c-3322-ca9580d4c8b4.jpeg)
綺麗に整頓されていて、しっかり仕事をこなしてくれそうです。

![IMG_2183.JPG](https://qiita-image-store.s3.amazonaws.com/0/216136/09e05dcc-cec4-14e3-bd33-a6c82a765a26.jpeg)
こちらは逆に物が少なくて綺麗にされてますね！

見て頂いたとおり、性格が出ているといいますか、綺麗な感じで素敵ですね！

# クルマコネクトチームのエンジニアたち
続きまして、[クルマコネクト](https://221616.com/connect/)の開発を担当しているエンジニアたちの開発環境（物理）をご紹介します！

![IMG_8797.JPG](https://qiita-image-store.s3.amazonaws.com/0/216136/c4677990-4031-69d8-68ab-a8e59a6ab2e8.jpeg)
クルマコネクトはエンジニアが集まって開発をしています。

![IMG_9859.JPG](https://qiita-image-store.s3.amazonaws.com/0/216136/93e58d98-f48d-72f5-a3d0-a259f9cf427a.jpeg)
クルマコネクトのエンジニアのリーダーは複数台のマシンを使って開発の指揮をしています。

密集している分少し狭いですが、チームでの開発が捗りそうな環境です！

# NORELチームのエンジニアたち
そして最後は、自分が担当している[NOREL](https://norel.jp)というサービスのエンジニアたちの生息地（一部遠隔）について見ていきたいと思います。

![IMG_3735.JPG](https://qiita-image-store.s3.amazonaws.com/0/216136/93324f4b-a883-979a-5f11-950c20bca27a.jpeg)
NORELは会議室の一室でエンジニア/非エンジニア関係なくわいわい作業しています。ホワイトボードが自由に使えるので重宝しています（消し忘れは激しいです…）。

![IMG_9033.JPG](https://qiita-image-store.s3.amazonaws.com/0/216136/48f0d82c-e7dc-1246-8c8a-271edc84be02.jpeg)
チームの中でも整頓されたデスクです。飲み物がいっぱいあるのはご愛嬌ですね！

![IMG_8527.JPG](https://qiita-image-store.s3.amazonaws.com/0/216136/da562b3d-6dd0-f623-42e4-8b95f5ce3cc8.jpeg)
最近ジョインしてくれたエンジニアなんですが、良いキーボード使ってますねー。うらやましい…！！

![Pasted image at 2017_12_07 03_04 PM.png](https://qiita-image-store.s3.amazonaws.com/0/216136/1660af33-42c0-3723-1cfb-6946078f2d0e.png)
![Pasted image at 2017_12_07 03_05 PM.png](https://qiita-image-store.s3.amazonaws.com/0/216136/535221ad-886f-f1d0-fdfe-e7917f9c072d.png)
こちらは風景が一変していますが、遠隔で開発に参加してくれているメンバーの写真です。外の風景とは一変して部屋の写真がシンプルでかっこいい！（ただしいまは寒くてリビングで作業している模様）。

![IMG_2967.JPG](https://qiita-image-store.s3.amazonaws.com/0/216136/1386d4cb-ab96-885c-2cd3-0f60d3bbe024.jpeg)
これは自分の机なんですがエルゴノミクスキーボードに憧れつつも手が出てないので、MacBook ProのキーボードとHappyHackキーボード（lite）とを合わせて疑似エルゴノミクスして肩こり防止を試してみてます。

# まとめ
いかがだったでしょうか。だいぶ弊社エンジニアたちの働きっぷりが想像できるのではないでしょうか。
今回紹介しきれなかった開発環境（物理）もあるのですが、時間が取れずうまく写真が抑えられませんでしたのでそのあたりは次回にさせてください。

以上です。お粗末さまでした。

# おまけ
と、このままでは技術的な内容が不足していると思いますので、今回投稿した画像の加工プログラムについてご紹介させて頂きたいと思います。

### きっかけ
このブログを投稿するにあたり、画像の縮小をしたくなりまして、気がついたらJavaで実装していました。何かの参考になればと思い公開させて頂きます。

### プロトタイプ
まずは、簡単に `java.awt.Graphics#drawImage` をコールする形で縮小をしようとしました（手抜き）。

```
public static void main(String[] args) throws Exception {
	final String inputPath = %入力画像のパス%;
	final String outputPath = %出力画像のパス%;

	BufferedImage org = ImageIO.read(new File(inputPath));
	BufferedImage dist = new BufferedImage(600, 800, org.getType());

	Graphics g = dist.getGraphics();
	g.drawImage(org, 0, 0, dist.getWidth(), dist.getHeight(), null);
	g.dispoise();

	ImageIO.write(dist, "jpg", new File(outputPath));
}
```

処理内容は単純で、 `javax.imageio.ImageIO#read()` で画像を読み込んで、画像を加工して `javax.imageio.ImageIO#write()` で出力する形にしています。

（参考画像をアップロードしようとしたのですがQiita制限に引っかかってしまったので割愛）

これでも出力できるのですが、ジャギがひどくて納得いかず、ちょっと工夫をすることにしました。

### もうちょっとちゃんと
続きまして、 `java.awt.image.BufferedImage#getScaledInstance()` を使用することで画像のリダクションをしてから画像を書き出してみます。

```
public static void main(String[] args) throws Exception {
	final String inputPath = %入力画像のパス%;
	final String outputPath = %出力画像のパス%;

	BufferedImage org = ImageIO.read(new File(inputPath));
	BufferedImage dist = new BufferedImage(800, 600, org.getType());

	Graphics g = dist.getGraphics();
	g.drawImage(org.getScaledInstance(dist.getWidth(), dist.getHeight(), BufferedImage.SCALE_AREA_AVERAGING), 0, 0, dist.getWidth(), dist.getHeight(), null);
	g.dispose();

	ImageIO.write(dist, "jpg", new File(outputPath));
}
```

これでジャギがなくなって綺麗に縮小されるようになりました。
他の言語でも、数行で同じような処理をかけると思うのですが、Javaの場合はRuntimeだけ（開発する場合はSDKも）インストールしておけばオールインワンなので簡単に実行できるところが素敵ですね！