DockerでRedmineを動かす

概要

自分のMac Book ProでDockerを使ってRedmineを起動させるところまでやってみた。
(とりあえずやってみた系の記事)

portの指定に注意。

手順

Docker for Macをダウンロード&インストール

f:id:maetoo11:20170220125316p:plain

起動して「Docker is running」になっていることを確認。

コンソールを開いてdockerコマンドが使えることを確認。

$ docker -v
Docker version 1.13.1, build 092cba3

Redmine用のDockerイメージがあるかを確認。

$ docker search redmine
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
redmine                            Redmine is a flexible project management w...   369       [OK]
sameersbn/redmine                                                                  232                  [OK]
bitnami/redmine                    Bitnami Docker Image for Redmine                14                   [OK]
74th/redmine-all-in-one            Redmine includes hosting SVN & Git , backl...   9                    [OK]
vpetersson/redmine                                                                 2                    [OK]
eeacms/redmine                     EEA Redmine docker setup                        2                    [OK]
inspiredgeek/redmine-alpine        Simple Docker images to run Redmine tracke...   2                    [OK]
commonms/redmine                   Docker image for Redmine.                       1                    [OK]
fjudith/redmine                    Dockerized Redmine based on redmine:3.3 of...   1                    [OK]
starfox/redmine-plugin-dashboard   A container designed to install redmine-da...   1                    [OK]
puffinrocks/redmine                Redmine - project management and issue tra...   0                    [OK]
zhusj/redmine                      Customized Redmine                              0                    [OK]
openfrontier/redmine               Redmine docker plus the agile plugin.           0                    [OK]
ppschweiz/redmine                                                                  0                    [OK]
liumiaocn/redmine                  redmine alpine image                            0                    [OK]
thiagorider/redmine                Redmine Docker Image Automated Build Repo.      0                    [OK]
honsiorovskyi/redmine              Official Redmine + Git + Mercurial              0                    [OK]
abcfy2/redmine                     redmine docker image forked from official ...   0                    [OK]
thooams/redmine                    Fork docker redmine                             0                    [OK]
tukiyo3/redmine                    redmine                                         0                    [OK]
mikroways/redmine                  redmine passenger image                         0                    [OK]
miko2u/redmine                     Redmine                                         0                    [OK]
enderson/redmine                   Dockerized Redmine application                  0                    [OK]
shiratamag/redmine                 openshift redmine test                          0                    [OK]
speed/redmine                      Redmine                                         0                    [OK]

今回は公式のRedmineイメージを使います。([OFFICIAL]が[OK]になっているもの)

$ docker pull redmine
Using default tag: latest
latest: Pulling from library/redmine
5040bd298390: Pull complete
596ec0bfbfe7: Pull complete
330c0f0b9895: Pull complete
759aaf3bf184: Pull complete
44da9d770a4e: Pull complete
a9b8139f979b: Pull complete
e10cd3a7c32c: Pull complete
7a316ad832a5: Pull complete
aeacba04b652: Pull complete
45ac9e0e8f38: Pull complete
5fca085ddfc6: Pull complete
969036701fdc: Pull complete
a08e120d50ea: Pull complete
d26197c612f3: Pull complete
cf0ff0b2dba2: Pull complete
Digest: sha256:e59bcba1a77fe25c84ee7d536ff6e23ded685846cfa91e4c02854d57391a52de
Status: Downloaded newer image for redmine:latest

Dockerを起動する。
※-pはローカルとDockerのポートの紐付け。これをやらないとアクセスできない。

$ docker run -p "3000:3000" redmine

warning: missing REDMINE_DB_MYSQL or REDMINE_DB_POSTGRES environment variables

*** Using sqlite3 as fallback. ***

Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Using rake 12.0.0
Using i18n 0.8.0
Using json 1.8.6
・・・(略)・・・
Using rails 4.2.7.1
Bundle complete! 32 Gemfile dependencies, 56 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into /usr/local/bundle.
/usr/local/bundle/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
/usr/local/bundle/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
== 1 Setup: migrating =========================================================
-- create_table("attachments", {:force=>true})
   -> 0.0053s
-- create_table("auth_sources", {:force=>true})
・・・(略)・・・
== 20160529063352 AddRolesSettings: migrated (0.0014s) ========================

/usr/local/bundle/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
[2017-02-19 14:40:57] INFO  WEBrick 1.3.1
[2017-02-19 14:40:57] INFO  ruby 2.2.6 (2016-11-15) [x86_64-linux]
[2017-02-19 14:40:57] INFO  WEBrick::HTTPServer#start: pid=1 port=3000

これで localhost:3000にアクセスして、Redmineの画面が表示されればOK

エンジニア交流会のススメ

この記事はSupership株式会社 Advent Calendar 2016の25日目の記事です。

私はSupershipの社員ではありませんが、グループ会社のSocketという会社の社員です。
Supership株式会社 Advent Calendar 2016企画者の @astapi さんからお誘いいただき、参加することになりました。

概要

  • エンジニア交流会はいいぞ
  • 会社・チーム・使っている技術などなど、いろいろなエンジニアが集まると面白いぞ

エンジニア交流会とは?

いろいろな会社・チームのエンジニアが集まって発表しあうイベントです。
今までにSyn.、Supsership、AppVador、Connehito、Socket、medibaのエンジニアが参加しています。

2ヶ月〜3ヶ月に1回のペースで開催していて、この記事を書いている時点で4回開催しました。

社内のエンジニアが集まって「勉強会」を開催している話はよく聞きますが、私たちが開催しているのは「交流会」です。

何かを学ぶという堅苦しいものではなく、技術的な話題に限らず興味のあることを発表し、お互いのことを知ってほしいという想いで開催しています。

実際、技術系のLTだけでなく深圳のスマートシティの話や、各社CTOを集めたぶっちゃけパネルディスカッションなど、コンテンツの幅も広げています。その話を肴に、懇親会では社やチームをまたいでエンジニア同士が交流しています。

f:id:maetoo11:20161225233825j:plain

背景

@yamaz さんと @inayuta さんの「何かエンジニアで集まってやりましょう」という雑な発言から、エンジニア交流会は始まりました。

ただ、この2人に任せていても話が進まない危険性があります。私自身はこの人たちのように、すごく尖った技術を持っているわけではありません。ですが、みんなの苦手な日程調整・事前準備・書類作成などは得意なので、自分ができることで貢献したいという想いで実行委員長を務めることにしました。

当時は社内にどんなエンジニアがいるのかも分からない・そもそも需要があるのかも分からないという状態だったので、「まずはゆるく開催してみよう」と考えていました。

実際に第1回を開催してみると、参加者数は30名超え、事後アンケートでも好評だったので、今でもゆるく継続して開催しています。
12月に開催した第4回のエンジニア交流会では、50名以上の参加者が集まりました(∩´∀`)∩ワーイ

運営のポイント

  • 準備はちゃんとする(場所・予算・社内調整など)
  • 仲間を見つけて準備や運営業務を分担する
  • メインコンテンツだけ事前にお願いしておくと良い(集客しやすい)

人を集めるので、集まった人たちが困らないように事前準備や社内調整はきちんとしておいたほうがいいと思います。
また、懇親会を開催するのであれば、参加者から費用を集めるよりも、会社からお金を出してもらって飲食物を準備するほうが楽かもしれないですね。
私達の会社ではこのイベントについて、会社側が費用を負担してくださっています。(いつもありがとうございます)

f:id:maetoo11:20161225235206p:plain

↑これは会場設営が完了したタイミングの写真です。

まとめ

いくつかの会社がくっついたり、子会社になったり、事業部ごとにチームが分かれてしまったり。優秀なエンジニアは集まっているけど、交流がないという組織もあると思います。

「エンジニアが大勢いるけど他チームがどんな技術を持っているのかわからない」「子会社があるけどまったく交流がない」という状況にモヤモヤしている方は、人を集めてゆるく「エンジニア交流会」を開催してみてはどうでしょうか。

実は私は、自分の所属している会社が子会社化されることに良いイメージを持っていませんでした。
しかし、エンジニア交流会を通して、違う文化・技術を持ったエンジニアたちの話を聞いたことにより「私の知らない面白いがそこにあるじゃん!」と前向きにとらえることができるようになりました。

この記事を読んだあなたもエンジニア交流会を開催して、「自分の知らない、誰かが知っている面白いこと」でワクワクしてみては?


いつもありがとうございます🙏

  • 実行委員のみんな
  • 広報、人事、総務のみなさん(取材協力、事前準備サポートなど)
  • 登壇者のみなさん
  • 参加者のみなさん

SHIROBAKOの細かすぎて伝わらない気がするけど好きなシーン(13話〜24話)

この記事は SHIROBAKO Advent Calendar 2016 15日目の記事です。
前回の記事 に反応があったのが嬉しかったです!
りーちゃん可愛いですよね!

13話〜24話まで、1話ずつ「細かすぎて伝わらない気がするけど個人的に好きなシーン」について書きます。
SHIROBAKOをまだ観ていない方には、ネタバレになる&何を言っているのか分からないであろう内容が含まれます。

13話

キャラクターデザインを打診され驚く井口さん。
「あーしが?!」のあーしの言い方がサバサバしてる感じで好きです。

http://livedoor.4.blogimg.jp/anico_bin/imgs/f/6/f6bc5184.jpg

出典:http://anicobin.ldblog.jp/archives/42800307.html

14話

サンジョの声優を決める会議のシーン。
ナベP、眉間にしわ寄ってますよ!
(その顔もかっこいいですよ!!!)

http://livedoor.4.blogimg.jp/anico_bin/imgs/6/a/6aed26b0.jpg

出典:http://anicobin.ldblog.jp/archives/42910069.html

15話

絵コンテできたのを褒め合う監督・円さん・山田さんにりーちゃんが微笑むシーン。
右側から振り返るのが可愛い!!
左側にサイドテールあるからだよね。
顔が見えていいよね!

http://livedoor.4.blogimg.jp/anico_bin/imgs/7/b/7ba6aa2c.jpg

出典:http://anicobin.ldblog.jp/archives/43022041.html

16話

井口さんの気分転換のためにみんなでバッティングセンターに行った後のシーン。
ファミレスっぽい場所なんだけど、ガストじゃなくてロイヤルホストっぽくて、小笠原さんの雰囲気に合ってるのがいいですよね。

http://livedoor.4.blogimg.jp/anico_bin/imgs/4/0/40c2f9c1.jpg

出典:http://anicobin.ldblog.jp/archives/43130579.html

17話

ボロボロになった新人制作の帰りをみゃーもりが出迎えるシーン。
弁当掲げる動作が可愛いです。
首のかしげ方とか、ちょっとおねーさんぽいのが良いのです。

http://livedoor.4.blogimg.jp/anico_bin/imgs/d/a/da50008a.jpg

出典:http://anicobin.ldblog.jp/archives/43240658.html

18話

矢野さんが戻ってくるシーン。
ドアが開く音の後、脚から移すんですよね。
脚だけで矢野さんってわかる!
そして超ホッとしました。
万策尽きない(๑•̀ㅂ•́)و✧

http://livedoor.4.blogimg.jp/anico_bin/imgs/d/c/dc94f6d5.jpg

出典:http://anicobin.ldblog.jp/archives/43350126.html

19話

矢野さんがヒゲ仙人に仕事を依頼しに行くシーン。
パピコのくわえ方とクールな表情のギャップがたまりません。

http://livedoor.4.blogimg.jp/anico_bin/imgs/0/7/07c0d46e.jpg

出典:http://anicobin.ldblog.jp/archives/43457486.html

20話

最終話(13話)の内容について打ち合わせをするシーン。
監督の「がんばるっ!!!」という発言に呆れる舞茸さん。
「軽いなぁ…このデブ」という台詞のチョイスもサラッと言っちゃう感じも超好きです。
傷つけるためにデブって言ってるわけじゃなくて、会話のテンポの中の綺麗なツッコミなのがまたいいです。

http://livedoor.4.blogimg.jp/anico_bin/imgs/0/7/07115fc3.jpg

出典:http://anicobin.ldblog.jp/archives/43561584.html

21話

瀬川さんから平岡さんをはずしてくれと依頼されるシーン。
「瀬川さんのおっしゃっていることはわかりました。一度平岡と話をさせてください。」と言うみゃーもり。
私の中では「えぇ?!」みたいな焦る感じになると思っていましたw
ちゃんと腹くくって自分がやらなきゃって思ってるのが表情から伝わってきて良いです。

http://livedoor.4.blogimg.jp/anico_bin/imgs/d/1/d15096d4.jpg

出典:http://anicobin.ldblog.jp/archives/43669708.html

22話

「これは下着ですか?!」の名シーン。
久乃木さんが「これは…」って言い出して後の山田さん・監督・円さん・みゃーもりの驚いた表情が好きです。

http://livedoor.4.blogimg.jp/anico_bin/imgs/d/f/df6d0ba8.jpg

出典:http://anicobin.ldblog.jp/archives/43778856.html

23話

社長が監督に監督という仕事について話すシーン。
とってもいいことを言った後に、おっさん2人で(((((((((((っ・ω・)っ ウィーン ってする、その落差がいいです。
この作品、監督の動き可愛いですよね。

http://livedoor.4.blogimg.jp/anico_bin/imgs/4/b/4b6f92ab.jpg

出典:http://anicobin.ldblog.jp/archives/43886435.html

24話

乾杯の挨拶を振られたみゃーもりにナベPがマイクを投げ渡すシーン。
「ほら行け、エース」って言葉がまたいい!!!
この後のみゃーもりの挨拶も素敵なんだけど、それを演出した監督とナベPナイス!って思いました。

http://livedoor.4.blogimg.jp/anico_bin/imgs/5/7/57d80974.jpg

出典:http://anicobin.ldblog.jp/archives/43988621.html

まとめ

SHIROBAKO、ほんとにいいアニメですよね。
アドベントカレンダーをとおして、SHIROBAKOは色んな人に色んな視点から愛されているんだなぁ、と感じることができました。
書く機会をくださったくぎゅさんに感謝です。

SHIROBAKOの細かすぎて伝わらない気がするけど好きなシーン(1話〜12話)

この記事は SHIROBAKO Advent Calendar 2016 7日目の記事です。
皆さんが素敵な記事を書いているので、初参加の私なんかが記事を書いていいのか、ドキドキしています。

1話〜12話まで、1話ずつ「細かすぎて伝わらない気がするけど個人的に好きなシーン」について書きます。
SHIROBAKOをまだ観ていない方には、ネタバレになる&何を言っているのか分からないであろう内容が含まれます。

1話

瀬川さん宅に勝負カットを依頼しに、本田さん、みゃーもり、太郎の3人で訪問するシーン。
太郎の「しゃーっす!」、腹が立つけど、勢いが好きです。
(SHIROBAKO1周目のときは太郎が大っ嫌いだったのですが、5週目あたりから良さがわかるようになりました)

http://livedoor.4.blogimg.jp/anico_bin/imgs/b/9/b9ab3802.jpg http://anicobin.ldblog.jp/archives/41269962.html

2話

あるぴんの設定を見直す会議でのワンシーン。

宮森「そういえば、素朴な疑問なんですけど、あるぴんってドーナツ派ですかね?羊羹派ですかね??」
矢野「え、何?その二択問題」

矢野さんの突っ込みつつも聞くスタンス!
何かアレなことを言ってシーンとなると気まずいですが、先輩がすぐにツッコんでくれると気まずい想いもしないし話も進みますよね。

http://blog-imgs-57-origin.fc2.com/k/a/g/kagano443/20141016-s052.jpg http://kagano443.blog.fc2.com/blog-entry-755.html

3話

矢野さんがやるべきことを付箋に書いてくれるシーン。
すごーく綺麗な字というわけではないんだけど、気遣い屋さんっぽ字な気がしてときめきます!
あと付箋が可愛いですよね。

http://livedoor.4.blogimg.jp/anico_bin/imgs/3/c/3c7605fb.jpg http://anicobin.ldblog.jp/archives/41518586.html

4話

矢野さん、みゃーもり、太郎が話すシーン。
宮森のめんどくさそうな顔と、その後に出てくる矢野さんの毒舌ツッコミがたまらないです。

太郎「おいおい宮森!大変ですね、くらいは言ってよぅ」
宮森「大変ですね(棒」
太郎「いーんだ、いーんだ。どうせ俺なんて孤高の虎ですよー」
矢野「虎に謝れ」

http://livedoor.4.blogimg.jp/anico_bin/imgs/1/a/1a6438c9.jpg http://anicobin.ldblog.jp/archives/41644190.html

5話

遠藤さんが作監を降りる!と怒って自宅に帰るシーン。
クイックルワイパーを持っている遠藤さんの奥さんがたまらなく可愛いです。
生活感というか、仕事してる人にも家庭があるのよねぇ…と思えるシーンでした。

http://cdn-ak.f.st-hatena.com/images/fotolife/r/rikio0505/20141111/20141111220927.png http://d.hatena.ne.jp/rikio0505/20141111/1415715159

6話

脱走後に会社に戻ってきた監督がコンテを描きに牢獄(?)に戻るシーン。

監督「でも本田君待ってるから」
監督「じゃ、行ってくる」

監督の決意した表情と声が好きです。
いつもふざけている監督の真面目な感じと、温かく見守る円さんが良いです。

http://livedoor.blogimg.jp/aaieba149/imgs/9/1/91bcb1f8.jpg http://aaieba.livedoor.biz/archives/41884789.html

7話

寝起きのりーちゃん!!!
可愛い!!!
夜更かしの理由が「罪と罰を読んでたから」って!!!!!
興味があることに時間をガンガン使って、自分に栄養をたくさん入れているっていうのがわかるいいシーンですよね。

http://livedoor.4.blogimg.jp/anico_bin/imgs/5/a/5a49157a.jpg http://anicobin.ldblog.jp/archives/42002913.html

8話

エマの手から飛び出したドーナツをもぐもぐ食べながら「どうした?」を聞く井口さん。
後輩を心配する気持ちはありつつも、ヘンに重い空気にせずたずねる感じがたまりません。

http://livedoor.4.blogimg.jp/anico_bin/imgs/3/d/3db219e4.jpg http://anicobin.ldblog.jp/archives/42119924.html

9話

サンジョのアニメ化を編集長相手にナベPが切り出すシーン。
ナベPの脱力系なのに、ここぞというところで力が入るところがいいですよね。
(あと、全くアニメの内容に関係ないのですが、個人的にタレ目の男性が大好きです)

http://livedoor.4.blogimg.jp/anico_bin/imgs/d/1/d190e1ae.jpg http://anicobin.ldblog.jp/archives/42240273.html

10話

アフレコが終わった後の打ち上げで、ビールを注文しようとする監督の指をみゃーもりが掴むシーン。
焦り→怒り→冷静に変わっていった後のみゃーもりが、物理攻撃(?)に出た!!!
いいぞみゃーもり!と思ったシーンでした。

http://livedoor.4.blogimg.jp/anico_bin/imgs/4/6/46e836b4.jpg http://anicobin.ldblog.jp/archives/42359003.html

11話

みゃーもりがムサニの採用面接を受けたときを振り返るシーン。
あたふたするみゃーもりに吹き出すナベP!!!
この後みゃーもりを採用するかどうかを決めるときに、絶対思い出してニヤついただろ!と思いました。

http://livedoor.4.blogimg.jp/anico_bin/imgs/b/9/b9545baf.jpg http://anicobin.ldblog.jp/archives/42472392.html

12話

杉江さんが打ち上げを断るシーン。
ちゃんとマイルールがあって、「えくそだすっ!」の原画を手伝っている間はそのマイルールを一時的に我慢して全力投球してたんだなぁ、と思いました。

http://livedoor.4.blogimg.jp/anico_bin/imgs/2/5/254be865.jpg http://anicobin.ldblog.jp/archives/42584529.html


後半(13話〜24話)は来週、2016年12月15日の記事で書きます(๑•̀ㅂ•́)و✧

「会社と自分がお互いハッピーな状態」について考えてみた

転職しようかと悩んでいました。

会社への不満があるから・・・ではなく、会社と自分、お互いがハッピーになるのが難しいと思うようになったからです。
(不満がないわけではありませんが、どんな会社にいても大なり小なり不満はあるものだと私は思っています)

会社と自分がお互いハッピーな状態とは?

お互いハッピーとかふわふわしたことを言ってもしょうがないので、定義できるように図にしてみました。

f:id:maetoo11:20161107225302p:plain

②に入るタスクが多いのが「会社と自分がお互いハッピーな状態」だと定義しました。

なぜ悩んでいるのか?

今の自分は①と④のタスクが多い状態なのでしょうか?
もしかしたら③のタスクにも着手してしまっているかもしれません。

判断ができないのです。

「判断ができない」から悩むんだと思います。

これからやること

もし②に入るタスクが多いなら転職したいわけではなく、何か解決したい課題があるはずなのでそれを見つける。

①と④に入るタスクが多いなら、会社のビジョンと自分のやりたいことを考えて転職するか判断する。
転職しないなら②に入るタスクを増やす方法を考える。

③が多かったら、引き受ける際に自分が判断ミスをしているはずなのでその原因を分析して対策を練る。

Scala再入門メモ:その1

挫折したままにしておくのはもったいない気がしてきたので。
超・基礎の基礎から再入門する。

資料: https://dwango.github.io/scala_text/

sbt consoleの起動

初回起動はとても時間がかかった。

$ sbt console
Getting org.scala-sbt sbt 0.13.9 ...
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.9/jars/sbt.jar ...
    [SUCCESSFUL ] org.scala-sbt#sbt;0.13.9!sbt.jar (3893ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main/0.13.9/jars/main.jar ...
    [SUCCESSFUL ] org.scala-sbt#main;0.13.9!main.jar (8053ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.9/jars/compiler-interface-bin.jar ...
    [SUCCESSFUL ] org.scala-sbt#compiler-interface;0.13.9!compiler-interface-bin.jar (4261ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.9/jars/compiler-interface-src.jar ...
    [SUCCESSFUL ] org.scala-sbt#compiler-interface;0.13.9!compiler-interface-src.jar (4059ms)
・・・略・・・
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/cross/0.13.9/jars/cross.jar ...
    [SUCCESSFUL ] org.scala-sbt#cross;0.13.9!cross.jar (4000ms)
downloading https://jcenter.bintray.com/org/scala-sbt/ivy/ivy/2.3.0-sbt-c5d1b95fdcc1e1007740ffbecf4eb07abc51ec93/ivy-2.3.0-sbt-c5d1b95fdcc1e1007740ffbecf4eb07abc51ec93.jar ...
    [SUCCESSFUL ] org.scala-sbt.ivy#ivy;2.3.0-sbt-c5d1b95fdcc1e1007740ffbecf4eb07abc51ec93!ivy.jar (1982ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/cache/0.13.9/jars/cache.jar ...
    [SUCCESSFUL ] org.scala-sbt#cache;0.13.9!cache.jar (4282ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/test-agent/0.13.9/jars/test-agent.jar ...
    [SUCCESSFUL ] org.scala-sbt#test-agent;0.13.9!test-agent.jar (4725ms)
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/apply-macro/0.13.9/jars/apply-macro.jar ...
    [SUCCESSFUL ] org.scala-sbt#apply-macro;0.13.9!apply-macro.jar (4058ms)
:: retrieving :: org.scala-sbt#boot-app
    confs: [default]
    52 artifacts copied, 0 already retrieved (17785kB/527ms)
Getting Scala 2.10.5 (for sbt)...
downloading https://jcenter.bintray.com/org/scala-lang/jline/2.10.5/jline-2.10.5.jar ...
    [SUCCESSFUL ] org.scala-lang#jline;2.10.5!jline.jar (1155ms)
:: retrieving :: org.scala-sbt#boot-scala
    confs: [default]
    5 artifacts copied, 0 already retrieved (24493kB/211ms)
[info] Set current project to work (in build file:/Users/maetoo11/work/)
[info] Updating {file:/Users/maetoo11/work/}work...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.10.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_45).
Type in expressions to have them evaluated.
Type :help for more information.

scala>

Visual Studio Codeのシンタックスハイライトプラグイン

Visual Studio CodeでScalaを書くなら、下記プラグインを入れるとよい。
Scala | Visual Studio Marketplace

フォールスルーとは?

Switchの「フォールスルー」って何?
JavaとかCではフォールスルーの動作があると記載されていた。

こういうやつのことらしい。

int value = 0;
switch (value) {
case 0:
case 10:
  // 処理1
  break;
default:
  // 処理2
}

参考:Java の switch 構文落とし穴 - Status Code 303 - See Other

「束縛される」とは?

var i = 0 というのは、"iという変数に0というIntのオブジェクトをbind(束縛)した" ということになる
scalaでは、なぜインクリメントやデクリメントができないのか? - scalaとか・・・ より

確かにインクリメント書いたらエラーになったな…。
「代入以外の方法で束縛できない」という部分で納得できた。

Listを引数でとるとき

下記のように書くと type List takes type parameters というエラーが出る。

def func(list: List) = {
  // 処理
}

型を指定しなさいということ。

def func(list: List[String]) = {
  // 処理
}

いま働いている環境について

一緒に働いてくださる方をTwitterで募集したので、今私が働いている環境をまとめてみました。

やっていること

社内請求システムの開発をしています。
2016年5月にリリースしており、請求担当者や営業担当者の要望を聞きながら機能追加を行っています。

テクニカルなことはしていないRuby on Railsでつくられたシンプルなシステムです。
システムの名前は 秩序 です。
これは社内に秩序をもたらせるように頑張ろうという想いが込められています。
下の画像はボツになったロゴです。

f:id:maetoo11:20160624201653j:plain:w400

弊社のメインのプロダクトは現在1つで、私以外のエンジニアは基本的にその製品の機能追加・改良を行っています。
私も現在のプロジェクトに着手する前はそのプロダクトの開発をしていました。

女性のエンジニアは2016/6/24時点で1人です。
同じ会社のコンサルタントチーム、バックオフィスチームには女性がいます。

環境・雰囲気について


◆出社時間は自由
(一応10:00〜19:00が就業時間らしいです。)
早めに出社して早めに帰る人、14:00頃から出社する人、早めに帰る人、など色々な勤務時間の人がいます。
打ち合わせがある場合などは、皆さんきちんと時間にあわせて出社します。


◆気が向いた日は自宅でお仕事したりカフェでお仕事したりもOK
自宅でお仕事ができます。
私自身も朝は自宅で洗濯機をまわしつつ仕事をして、お昼前から出社したりします。
カフェで集中して仕事をする人や海辺で仕事をする人もいます。


◆グループ会社のエンジニアとも交流できる
グループ会社の企業3社が同じオフィスビル内にいるので他社のエンジニアと交流できます。
グループ会社が開発しているサービスやアプリは自分の会社とは全然違うものもあるので、色々な技術に触れられます。
社内のエンジニア交流会(LT大会のようなもの)も開催しています。


◆エンジニアがそれぞれ特定分野に尖っていて面白い
静的型付けの力を信じている人、Rubyに詳しい人、インフラを見守り操る人、文書作成が得意な人などそれぞれ何か自分の得意なことを持っています。
もちろん、修行中のエンジニアの卵もいます。


◆チーム間での雰囲気が悪くない
エンジニアだけではなく営業、コンサルタントの人も社内にはいますが、お互い協力して仕事をすすめています。


◆喧嘩や言い争いではなく議論ができる
「私はこう思う」を言いやすい雰囲気です。
お互い自分の意見を言った上で最適解をさがしたり、相手の意見のほうがいいアイデアだと思えばそちらを採用したりします。
もちろん、怒鳴るような人はいません。
(笑い声が大きい人は何人かいます)


◆チャレンジウェルカム
特定の言語やツール、フレームワークに縛られていません。
例えば、現在社内ではRubyを採用していたプロダクトの一部をScalaに書き換えるプロジェクトが進んでいます。


◆レジャーや飲み会を強制しない
会社のメンバーでキャンプや登山などをしている人もいますが、参加していない人もいます。
無理やり誘う雰囲気がなくて私は好きです。
飲み会も参加できる人だけ参加すればいいよね、という感じです。


◆それぞれが大切にしているものを尊重している
奥さまの体調が悪いときは自宅でお仕事をする、お子さんの体調が悪いときはお休みする、勉強会に参加するのが好きだから早めにあがる、など色々な働き方をしていますがお互いに文句をいうことはありません。
それぞれが大切にしているものを尊重しあっています。


おまけ

弊社のCTOについてLTでお話したときのスライドです。

www.slideshare.net

このスライドの最後のほうに書いてある「請求フローを整理するプロジェクト」が発展して、社内システムを開発することになりました。
手を挙げたことに対して責任をもって取り組むことができていて、とても楽しいです!!

補足

ゆるい会社というわけではなく、成果を出すために自分にとってやりやすい働き方を選んだほうがいいよね、という考えのチームだと思います。
やるときはやります。

ただ、働き方を自分で決められるおかげで、忙しい時期に洗濯物を溜めずに済むのはなんと嬉しいことか…!!
家事のことを忘れ、集中してプログラムを書くのが私にとってはとても成果が出しやすいと思っています。