YAPC::Okinawa 2018 ONNASONに弊社から2名登壇します!!

ハイサ〜イ!!!! 最近骨折した技術部の谷脇です。このブログは負傷した右手を気遣い左手のみで記述しています。

さて、来る3月3日に開催されるYAPC::Okinawa 2018 ONNASONに弊社から2名登壇予定ですので宣伝させていただきます。

YAPCって??

いわゆるプログラミング言語系のカンファレンスの一つで、Yet Another Perl Conferenceの略です。日本ではYAPC::Asiaという名前で2006年から2015年まで行われ、2016年からはYAPC::Japanということで北海道・大阪・福岡と行われてきました。

そして、3月3日に沖縄は恩納村の沖縄科学技術大学院大学で行われるのがYAPC::Okinawa 2018 ONNASONというわけです!

でもPerlなんでしょ?

ではタイムテーブルを見てみましょう。

もちろん、最近のPerl5/Perl6みたいな話もあるわけですが、Perlに限らないWeb技術に関連した話題も聞けるのがYAPCの醍醐味です。例えばHTTP2のトークやサービス監視に関する話題もあります。Webに関わる人であればPerlを使っていなくても損しないと思います!

弊社からの登壇者の紹介

A Spacemacs Journey -果てしないエディタの旅-

by 山田

那覇市内で行われる前夜祭でトーク予定です。

あらすじ

5年ほど情シスをやってきたおじさんがひょんなことから部署異動した先はゲーム開発の事業部、そしてサーバサイドで使用している言語はな、な、なんとぱっ、ぱっPerl!? 仕事では1行もPerlを書いたことのないおじさんが宇宙の名を冠したエディタ「Spacemacs」を片手に奮闘する壮大な宇宙SF冒険活劇が今はじまる!!!

本編

コードを書く人なら一度は耳にしたことのあるエディタ「Spacemacs」。 導入におけるブログや記事はみかけるものの、他の著名なエディタに比べるとインターネット上での情報が少ないのも現実。 そこで、このセッションでは「Perlにおける開発」を題材に数あるエディタの中でも筆者が愛用しているSpacemacsの機能やPerlならではの設定など、Spacemacsの魅力を存分にお伝えしながらメインで使えるエディタであるという実力を知っていただければと思います。

セッションのキーワード

  • Basics of Spacemacs
  • .spacemacs customize
  • Layer
  • Mnemonic
  • Syntax checking
  • Auto-completion
  • Snippet
  • Buffer
  • Window
  • Macro
  • Input method(japanese)
  • Git
  • plenv
  • ERD(Entity-relationship Diagram)

More Tips..

High (Availability|Performance) WebSocket for Perl Real-Time Application

by 谷脇

私です。当日のA会場の14:20から喋ります。

実は難しい大規模WebSocketサーバ、だけれどミドルウェアとアプリの役割を分離すればうまくいくよって話をします。

このトークでは、WebSocketをスケール可能にし、従来のPerl製Webアプリケーションからも容易に扱うために生まれたOSSミドルウェア「kuiperbelt」を通して得られた知見や、リアルタイム通信を含んだゲームアプリに適用する際のハードルや解決方法について話していきます。

このトークの対象者

  • PerlやRubyなどのPrefork型アーキテクチャだけれどWebSocketを簡単に扱いたい
  • どの部分を切り出してマイクロサービスとして適用するとうまくいくかを知りたい

このトークで話さないこと

  • kuiperbeltのGo特有の苦労したことあれこれ

このトークでは以下の内容が含まれます。

  • 永続的接続に対するPrefork型アプリケーションの限界
  • なぜkuiperbeltはPerlアプリケーションのために生まれてきたか
  • プロセスを分離してデプロイやスケールイン時にも切断しない方法
  • WebSocketサーバの先行研究と比較
  • 土管としてのミドルウェア, コアを小さく周辺ミドルウェアを増やす戦略

実はTシャツスポンサーもしております!

今回も弊社はスポンサードしております。なんとTシャツスポンサーです。当日配布されるTシャツに注目です! 私は色を決めました。

チケットのご案内

魅力的なトークが多いYAPC::Okinawaですが、チケットの購入期限は1/31(水)までとなっています! 買ってない人は急ぎましょう。

おわりに

登壇する2名以外にも何人か弊社の社員が沖縄に行きます! トークで興味を持っていただけたり、面白法人カヤックってそもそも何でご飯食べてるの? と思っている方は会場や懇親会などで話しかけていただけるとうれしいです!

カヤックではエンダーで飲むルートビアが大好きなエンジニアも募集しています!

関連記事

techblog.kayac.com

techblog.kayac.com

フロントエンド開発に Babel も Webpack も必要ない ※

f:id:umai_bow:20180116124333j:plain

できらぁ!
面白法人カヤックのエンジニアのごんです。

昨今のフロントエンドといえば、
Todo アプリを作るにも Webpack やら Babel やら必要だと脅され、
始める前にうんざりしてしまうと話題ですが、
実は、最新のブラウザに限って言えば、そんなことはなく、
ECMAScript の新しい構文や JavaScript Modules など、
多くの機能がネイティブの状態でも使えます。

もちろん、古いブラウザのサポートや、通信パフォーマンスのことを考えると、
ビルドツールを使ったほうが良いのは間違いないのですが、
JavaScript の新しい機能に触れてみたり自分用のツールを作るぶんには十分でしょう。

ソースコードはこちら!

そんなわけで、今回はビルドツールなしでウェブアプリを作ってみました
ECMAScript に関するクイズゲームです。
最新版の Google Chrome や iOS Safari で動作します。
プリコンパイラなどは、一切使用していません

以下、利用した新しい構文や機能を紹介します。

import, export (JavaScript Modules)

import Vue from './vue.esm.browser.js';
import shuffled from './shuffled.js';

グローバルを汚染することなく、別ファイルを読み込める機能です
かつては require.js などもありましたが、import の場合は、実行前に全てのモジュールが読み込まれます。
ライブラリによっては、JavaScript Modules 形式のビルドを提供しているものもあるので、そのまま使えます。
今回は Vue.js も利用しました!

Async / Await

async mounted() {
  const res = await fetch("data/quizzes.json");
  this.originalQuizzes = await res.json();
  this.changeView('title');
}

JS をコールバック地獄から救う救世主です。
関数宣言で async という修飾子をつけると、関数内部で await 演算子を使うことができます。
Promise オブジェクトに対して await 演算子をつけることで、
新たなコールバックを作ることなく、平易な形で非同期処理を扱うことができます。
今回は fetch(これも割と新しいメソッド)と組み合わせることで、非常に簡単に通信処理を書くことができました。

分割代入

const { correctChoices, id } = quiz;

分割代入は、オブジェクトから値を取り出すときに便利です。
今回は使いませんでしたが、Spread Operator なども多くのブラウザで使えます。

const foo = { ...bar };

アロー演算子

return shuffled(this.originalQuizzes).map(quiz => {
  return Object.assign({}, quiz, { choices: shuffled(quiz.choices) });
});

this の扱いが格段に楽になるアロー演算子ももちろん使えます。

テンプレートリテラル

resultMessage() {
  return `${this.quizzes.length}問中${this.score}問でした!`;
}

なぜ今までなかったのか不思議なテンプレートリテラルも使えます。

map, forEach, reduce, includes など……

if(correctChoices.includes(this.answers.get(id))) {
  return score + 1;
}

配列の各種便利メソッドも使えます。

注意点

良いことばかりではないので、注意点も書いておきます。

  • JavaScript Modules が読み込み時に解決されるため、通信回数が増える
  • npm モジュールはそのまま使えない
  • JSX や TypeScript のようなトランスコンパイルはできない

おわりに

いかがでしたでしょうか。
これならメモ帳でも開発できますね。
いざビルドしたくなったときも、percel などを使えば(たぶん)手軽にできます。

より本格的なビルドツールに移行したくなったとしても、
ECMAScript ベースで書かれていれば、移行はそれほど難しくないはずです。

環境構築を恐れず、どんどん新しい技術に挑戦しましょうლ(´ڡ`ლ)

採用募集中です!

面白法人カヤックでは、
React とか Vue とか最新の ECMAScript とか使って
ガンガン開発したいエンジニアを大募集中です。

興味のある方は下記リンクからどうぞ!

中途採用 | 面白法人カヤック