astamuse Lab

astamuse Labとは、アスタミューゼのエンジニアとデザイナーのブログです。アスタミューゼの事業・サービスを支えている知識と舞台裏の今を発信しています。

31歳、元バンドマンのエンジニア転職

皆さん初めまして、2月に入社しましたgucciと申します。
入社して4ヶ月…ついに、私の元にあの白い悪魔が…!

f:id:astamuse:20180612233551j:plain

タンクネコさんです。
自分のデスクに回ってきたタンクネコさんの画像を載せる、というのを一回やってみたかったので大満足です。
ホワイトバランスもいい感じ。

さて、
私がどんな人間かと申しますと、アスタミューゼに入社するまでは約10年間音楽活動をしてきました。
とはいえ、音楽だけで食べていけるほど活躍できてはいなかったので、アルバイトをしながらバンドでドラムを叩いておりました。元ドラマーです。
大学は法学部を卒業しましたので、ずっと文系の道を歩んできましたし、
アルバイトもエンジニアなどのIT業界とは全く無縁のところで働いていました。

…ん?ということは?
そうです、文系卒・31歳・フリーター・元バンドマンのエンジニア転職です。

今回はそんな私の、
エンジニアになろうと思ったきっかけや、
なぜアスタミューゼを選んだのか実際にアスタミューゼに入社してみて感じたこと
などを紹介させて頂きたく思います。
普段の弊社エンジニアたちによる素晴らしい技術ブログとは少し趣が異なりますので、
箸休めのような気持ちで読んで頂けたらと思います。
また、私のように異業種からのエンジニア転職を考えている方の参考になれたら幸いです。
よろしくお願い致します。

f:id:astamuse:20180613010200p:plain

バンドが解散、転職活動スタート

1年前の春、30歳の時に10年間ずっと活動していたバンドが解散することになりました。
その際の選択肢として、他のバンドで音楽を続けるという選択肢もありましたし、実際にいくつかお話も頂いてましたが、
「年齢的にも、タイミング的にも、他のことに挑戦するのはラストチャンスかもしれない」
という思いから「新たなやりたいこと探し」として就職活動を始めることを決意しました。

しかし、いざ就職活動を始めたものの、すぐにはやりたいことというのは見つけられません。
ハローワークに通い担当の方から色々な職種を紹介してもらっても、どれもピンと来ず。
色々な職種の友人に話を聞いても、これだ!と思えるものにはなかなか巡り会えず。
もどかしい日々が続きました。

エンジニアという仕事との出会い

「エンジニア向いてそうだよね〜」
ある友人に言われた言葉がきっかけでした。
その友人は今はコンサルタントを行なっているが、元エンジニア。
私の性格をよく知る友人からの何気ない一言でした。
文系でずっと生きてきたこともあり、エンジニアという選択肢自体が頭にありませんでしたが、
この時初めてエンジニアという選択肢が浮上したのです。
そして、調べれば調べるほどエンジニアという仕事に惹かれていきました。

なぜエンジニアだったのか

私が音楽活動をしていた10年間において、
担当パートがドラムだったので、もちろんドラムを叩くことが仕事ではありましたが、それ以外にも以下のような様々なタスクを行なっていました。

  • Pro tools、Wavelabを用いた音源のミックス・マスタリング
  • Photoshop、Illustratorを用いたフライヤー・CDジャケット作成
  • Premiere Pro、After Effectsを用いた動画制作・動画編集

こういったパソコンを使ってモノ作りをする様々なタスクを行なってきて、
パソコンと向き合ってトライ&エラーを繰り返しながら何かモノ作りをするというが、自分の性分にすごく合っているなぁと漠然と感じていました。
それゆえ、エンジニアという仕事に親和性を感じ、
パソコンを駆使し、様々な人々・領域に影響を与えることができるエンジニアという仕事に「これだ…!」と思ったのです。

さぁエンジニアになるぞ

エンジニアにおれはなる!と決めたものの、未経験からのエンジニア就職はとてもハードルが高く一筋縄では行かなそうだな、と思った矢先、
友人が、とあるプログラミングスクールの存在を教えてくれて、その学校に通うことを即断即決しました。
10週間の短期集中コースの受講を決めたのですが、なぜその選択をしたかというと、
集中的にみっちりやってみて、もし自分に向いてないと思ったらその時はきっぱり諦めがつくと思ったからです。
中途半端にトライするのが嫌で、全力で向かっていってダメならその時考えようの精神でした。

学習を進めていくと、様々なエラーに悩まされ思うように行かないことも多々ありましたが、
それを一つ一つ乗り越えて、少しずつ形になっていくのがとても楽しく、
「エンジニアというのを仕事にしたい」とより強く思うようになりました。
プログラミングスクールでは、同期の友人にも恵まれ、キャリアアドバイザーの方にも全力で支えられ、
晴れて、複数の会社から内定を頂くことができました。

なぜアスタミューゼを選んだのか

会社で扱っているサービス内容ももちろん企業を選ぶ際に重要です。
扱うコンテンツやサービスに興味がなければ、モチベーションは上がりにくいと思います。
私はそれに加えて、31歳という少し遅い年齢から新社会人になるということで、目標となる人がその会社にいるかというのがとても大事でした。
つまり、「この人みたいになりたい!」と思える上司の存在です。
アスタミューゼには最もそれを強く感じていましたので、アスタミューゼからもらった内定が一番嬉しかったです。
しかしその思いと同時に、一番やっていく自信がないと感じたのもアスタミューゼでした。
面接していただいた白木さんや並河さん、さらに今ご覧になられているこのブログから漂う、『スーパーエンジニア集団アスタミューゼ』という雰囲気についていける自信がありませんでした。

そこで決め手となったのは、アスタミューゼを選択する勇気が出ない私に、
「内定を承諾でも辞退だとしても、一度ご飯行きませんか」と言ってくださり、
さらに、10年の音楽活動からエンジニアになろうとしていることに対し、
継続する根性と、変化に立ち向かう勇気がある』と評価してくれたことです。
ずっと音楽をしていたことは、社会的には良く思われないだろうと自分の中で覚悟していた部分があったので、胸を打たれました。
そして、この会社にお世話になろうと決意したのです。

アスタミューゼに入って感じたこと

想像していた社会人とあまりにも違い、本当に驚きの連続でした。
具体的にどんなところに驚きを感じたかを簡単に挙げてみますと、

  • フレックス制で勤務時間の融通がきく
  • リモートワークが可能
  • 残業がとても少ない
  • コミュニケーションが活発
  • 子育てや家庭の事情への理解が凄い
  • 服装が結構自由
  • 挨拶をしっかりしている
  • 困っている人がいると皆で助け合う
  • 外部カンファレンスへの積極的参加の推奨

といったところです。つまり、良い意味で想像とは全然違ったのです。
パフォーマンスがあがるなら、基本的に何でも自由に取り入れて結構です
という上司の言葉は衝撃でした。
椅子ではなくバランスボールの人もいますし、
PCもWindowsとMacを選択可能、プラスでモニターも2台支給され、これ以上ない環境が整っております。
お子さんが熱を出したり、奥さんの体調が悪いというのを理由に早退しても、
「お大事になさってください」とみんなが言えるのもまた、衝撃でした。
分からないことは、先輩たちが優しく丁寧に教えてくれて、いつも本当に助けられています。
隔月で会社全体の懇親会(任意参加)も開かれていて、他部署の方とお酒を飲みながら話をする機会があるのもとても新鮮です。
他部署にもユニークな人がたくさんいて、面白い会社だなぁと日々感じております。

最後に

いかがだったでしょうか。
個人的な話が多くなってしまい恐縮ですが、
エンジニアになろうか悩んでいる人や、転職を考えているエンジニアの方の参考に少しでもなれたら嬉しいです。

最後に一つだけ、
入社前に想像通していた、
「スーパーエンジニア集団アスタミューゼ」というのは間違っていませんでした。
皆さん本当に凄いエンジニアであり、人間としても尊敬できる人ばかりです。
私も早くその一員になるべく、日々精進して参ります。
最後まで読んでいただき、ありがとうございました。

アスタミューゼでは、エンジニア・デザイナーを募集しています。
ご興味のある方は是非、こちらのバナーから気軽にご応募ください。
また、wantedlyにも色々な面白い記事がありますのでご覧になって頂けたらと思います。
それではまた!

「絶対フォント感」を身につけようとすると新たな扉が開く話 - その1 -

どうも。フロントエンジニアやっている僕です。

f:id:astamuse:20180606115854j:plain

弊社には「書籍購入補助制度」があり、各々がこの制度を利用してスキルアップに勤しむ。

素晴らしい会社だ。

たぶん。

ブログに書くネタにも事欠かない。

この本を見てほしい。

f:id:astamuse:20180606120045j:plain

「絶対フォント感」

なんかよくわかんないけどかっこいい。

文字を見ただけで何のフォントを使用しているかわかる能力らしい。

これはすごい能力だ。

想像してみてほしい。

意中の女性と初めてのデートで、あなたは見栄はってワインをボトルで注文した。

このワインの種類なんかわからない。

話も途切れ途切れだ。

そんな時、あなたに「絶対フォント感」があったらどうなるか。

あなたの口からはごく自然にこう出てくる。

「このワインのラベルに使われているフォントはフランスの伝統的なロンド体だね。フランスワインにフランスのフォント。こだわりを感じるなぁ。あ、ちなみにこれはLino Scriptって名前ね!」

「かっこいい!抱いて!」

~Fin~

となるか知らんがとにかく響きがかっこいい。

身につけねばならない。

私はエレガントな男になりたいのだ。

なにより外に出れば文字だらけだし、お金も時間もかからない。エレガントな男はエコなのである。

さあ、外に出よう。

その一歩がエレガント。

ポイ捨てサイン

f:id:astamuse:20180605202241j:plain

ビルを出ると早速エレガントへの道が開かれていた。中央区役所・作「ポイ捨てサイン」だ。

私にはMdN2016年11月号の付録、665書体も載っている見本帳を持っている。

恐れることはない。

f:id:astamuse:20180605181719j:plain

月刊MdN 最新刊|株式会社エムディエヌコーポレーション

どれどれ。

f:id:astamuse:20180605204703j:plain

  • 太さが同じで角が尖っている
  • 「き」の3画、4画目が離れている
  • 「は」が跳ねてない
  • 「こ」が「クィン」ってなってる
  • 「ポ」の2画目が跳ねてない

これをキーワードに探していく。

  • 太さが同じで角が尖っている

これは「ゴシック体」というやつだ。ふむ、ゴシック体だけで29P。

つれぇわ・・・。

64P、ついに見つけた、お前か!!

f:id:astamuse:20180605204723j:plain

モリサワフォントの「新ゴ」。たぶん合ってる。

www.morisawa.co.jp

これを見つけたら「このサインのフォントは、モリサワ社のゴシック体アップデート系・「新ゴ」ですぜ!」と言ってやりましょう。

僕はただ微笑され「へー」で終わりましたけど。

まだエレガントな男になれてないからね。しょうがないね。

散水栓

f:id:astamuse:20180605181659j:plain

お次に出会ったのは散水栓。外の水まきなんかに使う用。らしい。

分析

f:id:astamuse:20180605181731j:plain

  • 丸くなってて、跳ねがない
  • のぶん(散の部首)の箇所がちょっと離れてる
  • 「水」の「フ」と「l」の間にスペースアリ
  • 「栓」の「王」の上二つの横線が揃ってる

あと、一番の特徴は「栓」のデザインが「入」みたいになってる箇所だ、こんなの見たことない。

どれどれ。「丸ゴシック体」ってカテゴリーに絞って調べてみますかね。 私には見本帳がある。恐れることはない。

どれどれ。

どれどれど・・・・

参った、一つも該当する漢字が載ってない。

2つ目で挫折するわけにはいかない。任意の文字で確認できるフォントメーカーのサイトも駆使して力作業でねじ伏せてやる。

www.morisawa.co.jp

fontworks.co.jp

www.vdl.co.jp

どれどれ。

f:id:astamuse:20180605185010j:plain

f:id:astamuse:20180605185018j:plain

ない!

「散」も「水」もニアピンで歯がゆいところまで来てる気がするのだが、「栓」が全然ない。上が「入」みたいになってるフォントは一つもない。「王」の上二つの横線が揃ってるのもない。

Googleで検索だ。迷ったらすぐ検索。

「栓 入 漢字」っと・・。

Google >「それ旧字やで^^」

 現行常用漢字の「全」「栓」は、旧字体は上部が入屋根(いりやね)ですが、現在使われている新字体は人屋根(ひとやね)。一方、今回追加される「詮」は入屋根のままです。表外漢字字体表もこの形で掲げており、JIS2004で「詮」の例示字体が人屋根から入屋根に変更されました。改定常用漢字表は「詮」の人屋根の字体を「デザイン差」には掲げておらず、この字の印刷文字は入屋根で設計しなくてはなりません。

 「人屋根←→入屋根」の揺れは、「詮」以外でも日常生活のなかで時々見かけているはずです。さすがに「全」は当用漢字以来の表内字なので新字体(人屋根)が広く定着していますが、「栓」は1981年に常用漢字入りした95字のひとつで歴史が浅い?ため、今でも駅などの「消火栓」の表示で旧字体(入屋根)が使われていることがあります。

「改定常用漢字表」解剖 5 - ことばマガジン:朝日新聞デジタル

漢字面倒すぎるだろ、いい加減にしろ。

4時間ほど調べてみたがお手上げだ。

わからないことをわからないと認めるのもまた勇気。

エレガントな男は挫けない。

次のサインを探し再び歩き始める。

Apache Spark 2.3 Vectorized ORC Reader 性能検証

こんにちは!データ周りをやってる朴です。

先日ご紹介があったとおり「開発・デザイン部」はついに独立?!して違うフロアに移動しました。
つい先日まで冷蔵庫も電子レンジもなく少し寂しい感じがしたのですが、本日ついに必需品が揃い、
みんながテンション上々↑↑です。

そして冷蔵庫にはチームメンバーの福田さんが自腹でガリガリ君をフル補充!何という太っ腹!
いつもありがとうございます!
f:id:astamuse:20180529174138j:plain

で!今日は先日リリースされたApache Spark 2.3 でORCのファイルの読み込みが性能向上した内容が
含まれていたので、それについて検証してみたいと思います。

該当リリースはSPARK-16060
以下本文引用
Adds support for new ORC reader that substantially improves the ORC scan throughput through vectorization (2-5x). To enable the reader, users can set spark.sql.orc.impl to native.

これに関連したリリースとしてApache ORC 1.4.0がサポートされるようになり、
Apache Spark2.3からはHive ORCとApache ORC2種類のORCデータフォーマットが読み書きできるようになりました。

検証内容

ORCデータフォーマット 2種類(Hive ORC, Apache ORC) と readerの2種類(hive, native=Vectorized ORC Reader)でそれぞれ4パターンの確認を行います。

テストデータ

日本国特許公報の書誌データ(特許の概要と出願日などの情報)約100万件(snappy圧縮したparquetフォーマットで容量は約775 MB)
上記のテストデータをそれぞれHive ORCフォーマットとApache ORCフォーマットで保存します。

  • Apache ORCフォーマットで保存する
scala> val _research = spark.read.parquet("/user/s.paku/gazette_data_parquet/published_research/*")
scala> _research.write.format("org.apache.spark.sql.execution.datasources.orc").save("/user/s.paku/gazette_data_orc/research_native")

Apache ORCフォーマットで保存するにはwrite.format("org.apache.spark.sql.execution.datasources.orc")指定するか、 spark.conf.set("spark.sql.orc.impl","native")にしてdf.write.orc(path)で保存できます。

  • Hive ORCフォーマットで保存する
scala> val _research = spark.read.parquet("/user/s.paku/gazette_data_parquet/published_research/*")
scala> _research.write.format("orc").save("/user/s.paku/gazette_data_orc/research_hive")

SparkSQLのORCがHiveの状態で Hive ORC フォーマットと Apache ORCフォーマットの読み込み性能検証

※Spark 2.3までのデフォルトのORC はhiveとなります

  • hiveフォーマットをhive readerで読み込む
scala> spark.conf.get("spark.sql.orc.impl")
res0: String = hive

scala> spark.time(spark.read.orc("/user/s.paku/gazette_data_orc/research_hive").count)
Time taken: 21662ms                                                            
res0: Long = 1121565


  • Apache ORCフォーマットをhive readerで読み込む
scala> spark.conf.get("spark.sql.orc.impl")
res0: String = hive

scala> spark.time(spark.read.orc("/user/s.paku/gazette_data_orc/research_native").count)
Time taken: 20698 ms                                                            
res1: Long = 1121565

上記の結果からはSpark sqlのORC設定がhiveの場合、新旧ORCフォーマットでパフォーマンス的にそんなに変わらないことが分かります。

SparkSQLのORCがnativeの状態で Hive ORC フォーマットと Apache ORCフォーマットの読み込み性能検証

spark.conf.set("spark.sql.orc.impl","native")

scala> spark.conf.get("spark.sql.orc.impl")
res2: String = native

scala> spark.time(spark.read.orc("/user/s.paku/gazette_data_orc/research_native").count)
Time taken: 16773 ms                                                            
res0: Long = 1121565
scala> spark.conf.get("spark.sql.orc.impl")
res0: String = native

scala> spark.time(spark.read.orc("/user/s.paku/gazette_data_orc/research_hive").count)
18/05/29 12:19:43 WARN util.Utils: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.debug.maxToStringFields' in SparkEnv.conf.
Time taken: 18544 ms                                                            
res1: Long = 1121565

Spark SQLのORCをnativeに設定した、結果新旧orcフォーマットでいずれも高い性能が出てます。

上記結果表にまとめると

orc reader data format count time (ms)
native Apache ORC 16773
native Hive ORC 18544
hive Apache ORC 20698
hive Hive ORC 21662

リリースドキュメントとおりの性能は出てないものの新ORCフォーマットでspark.sql.orc.implをnativeに設定したときに最も性能が発揮されてることが分かります。
データ量とデータサイズによって性能の差は広がるかも知れません。
その辺SparkとORCの歴史と取り組みを良く纏めた資料がこちらORC improvement in Apache Spark 2.3にあります。

ちなみに上記同様のデータをparquetで読み込むと12649 msという結果でparquetの読み込み性能が最優位である結果となりました。

最後に

いつものことですが、SparkとかHadoopとかMongoとかElasticSearchとかゴリゴリいじる仲間を募集してますので、ご応募お待ちしております。

Copyright © astamuse company, ltd. all rights reserved.