りゃまログ

いろいろ書きます

rubykaigi2023に参戦つむり【day0】

rubykaigi初参戦したぜ!!

というわけで見た発表をまとめたり感想をつらつら書いてみたりします。

とりあえず初日のお話を。

day0

前乗りして美味しい食事を食べた!!!

rubykaigi2023、会場は長野県松本市。 色々名物らしいものがありまして...

  • そば
  • わさび
  • 日本酒
  • 馬刺し
  • 山賊焼
  • ジビエ
  • えとせとらえとせとら...

お水が美味しそうなラインナップですよね。

というわけでrubykaigi前日入りして居酒屋へgo!

スケジュール

day0に履修した発表です。(大嘘)

  1. 松本からあげセンター
  2. 長野の郷土料理と地酒 手打ち蕎麦 和利館(わりかん)
  3. 創作居酒屋いざなみ

松本からあげセンター

場所はこちら

東京では見たことがない気がするからあげセンター。 揚げ物がたくさん食べられてお酒も飲めるチェーン店らしい。

上で挙げた

山賊焼

なるものが推しメニューな模様。

山賊焼

とてもジューシーで美味しゅうございました。

飲み放題も60分1000円ほどでお安い。ビールうまい。

長野の郷土料理と地酒 手打ち蕎麦 和利館(わりかん)

場所はこちら

2次会です。

美味しいご飯とお酒がいただける居酒屋。

名物らしい馬刺しの盛り合わせをいただきました!

馬刺し盛り合わせ

それとジビエ

ジビエ

どれも美味しくいただきました。

創作居酒屋いざなみ

場所はこちら

3次会!

りゃまは沖縄出身なんですが、そのつながりで参加。

大学の先輩、okinawa.rb、そのお知り合いの方々とお酒をいただきました。

あまり飲めないらしい日本酒を飲めてにっこり。マジで美味かった。

大吟醸幻舞と何か(名前忘れたので知ってる方教えてください)

まとめ

そんなこんなで美味しいを堪能したりゃまつむり。

day1を楽しむことができるのか!?

(そもそも朝起きられるのか?)

次回、りゃま眠すぎる!デュエルスタンバイ!!

道徳力あふれるプリキュアの世界

まえがき

12月22日(に投稿される予定だった)アドベントカレンダーです。

https://adventar.org/calendars/6732

Twitterでネタ募集したら技術以外になりました。

困ったりゃまはプリキュアネタに走るのであった……。

(※タイトル準拠で書いておりますので内容は皆無です。)

概要

皆さんご存知プリキュアシリーズ。

主人公をはじめとして、その世界は道徳で満ちています。

りゃまが履修した作品に触れつつ、その世界を少しだけ感じていただきましょう。

ネタバレは極力避ける方針ですが、一部説明のための外部リンクがあるのでお気をつけて。

伝説の道徳心プリキュア

目覚めよ、その魂

伝説の戦士であるプリキュアの方々はその心も伝説級。

家族関係、友人関係ともに素晴らしいものです。

しかし、道徳は一日にして成らず。彼女らは物語の中で成長していくのです。

まだ伝説ではなかった時代

人間性が完成されており、成績は良くスポーツも得意、そして容姿端麗である。なんて人間はいないのです。それは伝説の戦士も同じでした。

「友達でもなんでもない」「他に友達いないの?」と仲間を罵るなど、相手を傷つけることもあります。*1

他に人がいないから嫌々仕方なく。そんな投げやりな思いでプリキュアの世界に入門しかけることも。

そう、決して優しさに満ちた完璧人間の集いではないのです。

成長を支える環境

最終的に伝説級の心を手に入れるキュアの方々。物語を通して成長するのですが、その要因は一体何なのか。

そこには生活環境が大きく関わっていると考えます。

家族、学校、妖精など。彼女らの周囲には伝説的な心を支える伝説的なサポーターが存在するのです。

休日にキャンプへと連れて行き、自然の怖さを教えてくれる父親。将来への不安に適切な言葉をかける教師。常に大切な仲間として対等に接してくれる相棒の妖精。その存在が心を育む環境となるのではないでしょうか。

そして伝説へ

最終話になるとキュアの方々は大いなる希望の力で邪悪な心を打ち砕き、阿漕な真似をやめさせます。

その表情は物語の冒頭に比べるとまるで別人のようで、心強さを感じます。

人生様々なことがございます。その壁ひとつひとつと向き合い、信念を持って破壊する完成された道徳がそこにはあるでしょう。

そんな姿が女児先輩、そして大きなお友達の背中を力強く押しているのです。

とある2つの特徴

数多いキュア作品

2021年12月現在、18作品のプリキュアが放送されています。

各キュアで人数も異なれば性格も異なり、日朝王道でありながら常に新しい楽しさがあります。

それぞれの特徴を分類するための視点はそれだけ多くありますが、りゃま視点で感じたものをここで書かせていただければと思います。

なお、『ふたりはプリキュア』から『Yes!プリキュア5GoGo!』、『ハートキャッチプリキュア!』のみの履修を元に記事を作成しています。

「このキュアもこの部分あるぞ!!」などがあれば、そっとDMでおすすめしていただけると盛り上がりますのでよろしくお願いいたします。

2年キュアと1年キュア

毎年新たなプリキュアが放送されていることは皆さんご存知のことだと思います。

ですが、多くの方の記憶にこのようなものがあるでしょう。

「あれ?ふたりはプリキュアって2, 3種類なかった?」

その通りです。

ふたりはプリキュア』、『Yes!プリキュア5』の2作品は2年続いて放送されていました。

正確には以下のように同じ登場人物が活躍する別作品として放送されています。

ここではこの2年に渡って放送された作品とその他の作品という観点からお話いたします。

※『ふたりはプリキュア Splash☆Star』は他2作品と登場人物が異なります。こちらも非常におすすめです。

美しき余白

伝説の道徳心プリキュアで触れました通り、このシリーズは成長の物語となります。

1年間の放送を通して成長した時、2年目が存在する場合どうなるのか。そこに良さがあるのです。

それは「十分に道徳が出来上がったキャラたちを楽しめる」ということ。

1年目で大喧嘩したコンビは2年目で決して喧嘩しないし、1年目で勇気をもらったキュアは2年目から登場した新キャラに勇気を与えます。

完成されたキュアの振る舞いをまるまる1年間楽しむことができるのです。

これはその他1年キュアではあり得ないことで、最後の十数話でほんのり楽しめるかどうかというところでしょう。

もはや2年目を楽しむための伏線として1年目があったのだと、そのように捉えても良いのかもしれません。

まとめ

以上、タイトルからでっちあげた道徳で語るプリキュアでした。

何はともあれ履修しましょう。話はそれからです。

dアニメストアへgogo〜〜。

 

もう少しで見られなくなりますが、クリスマス企画で歴代キュアのクリスマス回がYouTubeで見られるそうです。(2021/12/25 23:59まで)(おわりました)

 

React Tutorial やってみた

これは 琉大 Advent Calendar 2020 13日目の記事です。

概要

こんにちは、りゃまです。

今回は React Tutorial を雑にやってみたので実況プレイ的な感じで書いていきます。

やること

React Tutorial を通してみるだけなのでへんなことはしません。

ゴールとしては

「ほぇ〜〜こういうやつね、完全に理解したね」

と言えること。

フロント知識皆無で大人気 React くんのことも名前しか知らない程度なので指摘コメント大募集です。

この記事の記述内容は次のようにする予定です。

  • 公式が詳しく説明してるところは流したりします。
  • 動作的に関わらないところも説明しない箇所があります。

取り組む方は公式読みながらやってみてください。

取り組み方

React Tutorialに沿って取り組みます。

ブラウザで実行できる環境も提供されていましたが、今後手元で React 環境使って行きたかったので雑に Docker にします。

最終的に動いたものは一応githubにありますが、公式でもコード見られるのでこっち見る必要なさそうです。

React Tutorial 開始

どうやらマルバツゲームを作る内容になっているようです。

環境構築からゲーム基盤づくり、細かな機能追加の流れでやっていきましょう。

環境構築

やるぞ!となって最初にぶつかる環境構築の壁。今回も一番時間かかった気がするような。 こういうところもちゃんと勉強しないとなぁ。

Docker書き書き

まずは Docker まわりを書きます。

今回は React 単体で良いですが、今後どこかとつなぎたいので docker-compose も一緒に書いていきます。

(知識がなさすぎて不足部大量にあると思うので誰か教えて下さい)

目指すディレクトリ構成はこんな感じ。app の下に React app が配置されるイメージです。

ReactTutorial
├── app
├── docker-compose.yml
└── dockerfile

node の image を使って、お気持ち程度に Working directory を設定してあげました。

FROM node:15.3.0-alpine3.12
WORKDIR /app

素晴らしき Docker、これで node 環境は多分オーケー。

続いて docker-compose.yml を。

version: '3'
services:
  app:
    build: .
    volumes:
      - ./app:/app
    ports:
      - 3000:3000
    command: sh -c "yarn install && yarn start"

これで最低限の環境ができたはず。

今後サーバーサイドいい感じに追加していけば、docker-compose でまとめて管理できるでしょう。

build から create-react-app

Docker まわり書き終えたので、続いて build。

> docker-compose build

それっぽく build されます。

ここから React のファイルを作っていきます。

公式が用意してるセットアップ説明に沿ってやっていきましょう。

こちらで公式がいい感じに説明してくれてますが、どうやら create-react-app というもので生成できるらしいです。

node のパッケージ管理は多分今回何でも良いんですが、なんとなく yarn 使ってみます。

> docker-compose run --rm app yarn create react-app .

これでコンテナの /app に react app が生成され、volume でつながってるローカルの app directory にも反映されました。

これで React が立ち上がるはず……!

> docker-compose up

localhost:3000 にアクセス……

f:id:RyumaRyama:20201213151240p:plain

完璧ですね。

まぁ今回は Tutorial ように用意されているコードに置き換えるので、説明に沿って src の下を全削除、サンプルコードを配置します。

ここまでできれば準備完了。 こんな画面が表示されて Tutorial を進めていけそうな予感がします。

f:id:RyumaRyama:20201213154429p:plain

コード確認

サンプルで与えられたコードの中身を見ておきましょう。

先程用意した src/index.js を確認。どうやら3つの class で構成されているようです。

React では Component というものを用意して、それを呼び出すことで描画するみたいです。

Component は関数や class で用意することができ、class を Component にするには React.Component を継承させるようです。

そして今回すべての class が React.Component を継承していています。

  • Square class
    • マス1つ分
    • 現状 button を描画するようになっている
  • Board class
    • おそらくマス目全体の class
    • 9個の Square を呼び出してあのマス目を描画するっぽい
  • Game class
    • 一番上
    • Board を呼び出したりするっぽい

Game を呼び出すとマルバツゲームが表示されるようになるみたいですね。

ゲーム基板づくり

まずはボードをクリックするとそこにXが置かれるようなところから作っていくようです。

とりあえず描画

まずは四角の中に数値が表示されるようにしてみましょう。

Props とやらを使うことで Component に値を渡すことができるそうです。引数みたいなものかな。

公式に従って Board にコードを追記。

// 変更前
<Square />

// 変更後
<Square value={i} />

なるほど、こうやると Square 内で value の中身を取り出せるんですね。これが props か。

早速取り出す側も書いてみましょう。Square に追記。

// 変更前
<button className="square">

</button>

// 変更後
<button className="square">
  {this.props.value}
</button>

ほぇ〜、this.props.valueでさっきのやつが取り出せると。 class が props を持っていて、Component の呼び出し時に書いたものが入るのかな。

これで数値が描画できました。

クリックで描画

マルバツゲームなので選んだ場所に印をつけられるようにしたいです。

そこで button に onClick を記述し、関数を渡すようです。 更に何やら state というものを使っていくみたいです。

とりあえず公式に従って Square に追記。

// constructor を作成
constructor(props) {
  super(props);
  this.state = {
    value: null,
  };
}
// onClick を追加して表示も state を使用
<button
  className="square"
  onClick={() => this.setState({value: 'X'})}
>
  {this.state.value}
</button>

描画する値を props から state に変更し、onClick によって state の値が変化することで表示内容が変わるという仕組みでしょう。

これでクリックした場所に X がつけられるようになりました。 最低限の動きが整い、ゲーム基板の完成です。

f:id:RyumaRyama:20201213182005p:plain
ずっと俺のターン

ゲーム完成まで

現状だと X しか置くことができません。 これを O X 交互におけるようにして、勝敗判定をすることでゲーム完成となります。

盤面情報の管理

今の設計だと勝敗判定がやりづらいでしょう。 なんたって何が表示されているかは9個の Square 単体がそれぞれ管理してしまっています。

そこで state の値を Board で管理するようにします。この子から親への管理移行をリフトアップというみたいですね。

先程 Square に作成した constructor を Board に移します。 そして Board は9個分の情報を管理したいので、先程の value は必然的に Array で管理することになりました。

class Board extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      squares: Array(9).fill(null),
    };
  }
// 以下略

そして Square を描画するときにこの squares からデータを引っ張り出すようにすれば完璧です。

renderSquare(i) {
  // 変更前
  return <Square value={i} />;

  // 変更後
  return <Square value={this.state.squares[i]} />;
}

このままだと Square から Board の情報を更新できないのでクリックしてもだめですね。 そこで Square に定義した関数を呼び出せるように props で渡しておきます。

// Boardで
<Square
  value={this.state.squares[i]}
  onClick={() => this.handleClick(i)}
/>

// Square で
<button
  className="square"
  onClick={() => this.props.onClick()}
>

これでこれから Board で定義する handleClick() を Square のクリックで呼び出せるようになりました。

handleClick()はこんな感じになります。

handleClick(i) {
  const squares = this.state.squares.slice();
  squares[i] = 'X'; // X で固定されてる状態
  this.setState({squares: squares});
}

現状クリックされたら X が入るようになってますね。

動作は先程と変わりませんが、盤面情報を完全に Board で管理できるようになりました。 リフトアップ完了です。

マルバツ交互に

のこりは O X 交互にする部分。

単純な実装で行きましょう。boolean で True なら X、False なら O、一回置くごとに反転してしまえばいいです。

state に情報を追記します。

this.state = {
  squares: Array(9).fill(null),
  xIsNext: true, // こいつ追加
};

そして先程のhandleClick()で毎回反転させます。O X は三項演算子でまとめてます。これぐらいだと便利ですね。

handleClick(i) {
  const squares = this.state.squares.slice();
  squares[i] = this.state.xIsNext ? 'X' : 'O'; // スマート、これで X 固定じゃないね
  this.setState({
    squares: squares,
    xIsNext: !this.state.xIsNext, // not にしてて毎回反転されるね
  });
}

これで O X 交互に置くことができるようになってます。 ついでに Board で誰の手番なのかも出しておきます。

const status = 'Next player: ' + (this.state.xIsNext ? 'X' : 'O');

完成

あとは勝敗判定ができれば完成です。

まぁマルバツゲームの勝敗判定は筋肉で縦横斜めの8パターン揃っている箇所がないかを判定してしまえばわかるので、公式のやつをコピペするなりして実装します。

ただ今のままだと相手の印の上に上書きできたり勝敗付いてるのに続けられちゃったりと色々すごいのでそこの処理まで実装。

印をつける処理はhandleClick()となっているので、そちらでわちゃもちゃします。

勝敗がついているか、もしくはすでに印がある場合は return してしまえば解決しますね。

handleClick(i) {
  const squares = this.state.squares.slice();
  // calculateWinner() は勝者がいなければ null を返すので、その場合 false
  // squares には O、X、null が入ってるので、何もなければ false
  if (calculateWinner(squares) || squares[i]) { 
    return;
  }

これで完成。楽しくマルバツゲームで遊ぶことができます。

f:id:RyumaRyama:20201213181848p:plain

おわり

ほぇ〜〜こういうやつね、完全に理解したね。

サクッと React を体験しながらマルバツゲームを作成しました。

Component の扱い、props・state を用いたデータのやり取りなどの空気感を感じることができた気がします。

実はこの Tutorial 続きがあってもう少し機能追加したんですが、思ったより記事が膨らみそうなので書くのはやめておきます。

React あたりの技術が使えればロードのないヌメヌメ更新されるかっこいいもだんなやつが作りやすそうなので、次は何かしら作ってみます。

ie生観察日記

さよなら学生,こんにちは社会

とうとう今日で学生が終わってしまい,明日から社会人らしいです。ほんとかなぁ(ほんとです

というわけで記念に大学四年間で見てきた学生の生態だったり思いつくことを書いてみようかと思います。

ie生とは

うちの学科に所属する学生の総称です。Twitterに住んでる人が多い印象でしたが,住まない人はアカウント作るだけで一切出てこないので観測できないのであって,現実世界には実在するそうです。

なんと我々の代で情報工学科が終わってしまったので,1個下からは工学科のち脳情報コースらしいです。詳しくはホームページ見てください。名前は変わってもリンクはieでした。

ie生の生態

なんとなくこんなだったなーということをまとめます。本編です。

自習室勢とその他

学年に一部屋(だったのは過去のお話,今は1年次の部屋,2年3年次共用の部屋)割り当てられる自習室ですが,そこに毎日来る人と3年間で数回しか来ない人に分かれるような気がします。

来るからどうだ,来ないからどうだという話ではないですが,学年が上がるごとに全員必修の授業が減ってくるので全く会えない人が何人もいたように思えます。気づいたら学科,学校が変わってた,そもそも学生やめて自分の夢を頑張っていた,という人も少なくない印象でした。

聞いた話によると自習室に来ないメンバーは図書館だったりで勉強していたらしく,大学の使い方は様々だなと感じます。

朝起きられない

ie生に限らず人間朝には弱いものです。1限なんて拷問レベル,遅刻欠席により単位を落としていく者たちを何人も見てきたような気がします。

授業を取るときの指標の一つとして朝の授業でないかどうかは重要なもので,1限だと気合はいるから起きられるけど2限だと無理といったジンクスもあったようななかったような。

これは一生の課題となりそうです。

グループワークガチャ

グループで作業を行う講義がいくつかあり,そのメンバーが事前アンケートによって決まるものがいくつかありました。そうやって作られたグループの中にはメンバーの数人しか動かない,ひどいときには1人で頑張っていた環境があったそうです。怖い話ですね。

上で述べたように事前アンケートによって決まるので,グループメンバーの分布はある程度一定になるようにしていたそうです。 例えば,

  • 出席をしっかりする
  • 意見を言う
  • コードが書ける

といったものです。 これは憶測ですが,きっとマイナス方向の評価もあったのでしょう。

  • 出席があやしい
  • 意見を言うタイプではない
  • あまりコーディングが得意ではない

つまり一人で頑張った方は優秀すぎてグループに必要な要素が一人で足りるのでプラス面の割り振りが終了,それどころかこいつらも面倒見てくれ〜と余った枠に心配な方々を入れられたのでしょう。教授の愛ですね。幸い平和なグループだったので助かりましたが辛かったところ,ほんとにお疲れさまでした。

ゲームたのしい

学科柄というのか,ゲーム好きが多かった気がします。

格ゲー,音ゲー,パズルゲー,シューティングゲー……といった様々なジャンルが好きでやり込んでいる方々がいて,ゲームが苦手(嫌いじゃなくて弱すぎる)な身としてはぽかーんとみているしかない世界でした。

多少マナーだったりで問題になる場面もありましたが,現在はどうなっているのやら。ゲームをやってる人もやってない人も楽しめるような環境を作って楽しんでもらえると良いですね。

GPA戦争

主に研究室を決めるときに武器となるGPAで争いが勃発した覚えがあります。 あれだけ仲良く話していた友達とも関係がギスギスし,一切口を聞かなくなった……といったことはなく学年担当の教授が数値を規準に一発で出してくれました。平和でした。

この戦争を知ってか知らずか入学当初は雑に講義を取り,出席したせいで戦争時に後悔する者,また慎重に講義を取り続け,Bをもらってもへこむ者と人それぞれ個性が出るものだったと思います。

Bの時点で優れている判定のはず,それどころかCでも良い判定な規準でしたが,気づくとちゃんとやればAもらえるよねみたいな世界観になっていたのが怖かったです。GPA4で卒業するひとを見てみたい。

ちなみに学内GPA平均は2.6ぐらいらしいですね。

OS

この2文字を見るだけで震え上がるものもいると噂されているとか。

課題の量が割と多くて無限にやることがあったように思えます。内容は様々で多すぎるので書きませんし書けと言われても書けませんが,興味深いものが多かったのではないかなという印象です。

基礎の技術からいま出てきているものまでとりあえず手を動かしてみて!という気持ちが全体を通して伝わってきて,まずは手を動かす,調べるという考え方を身につける場としてよかったのかなと思います。

LT文化

何かとLTが開かれていたような気がします。 高校生,1年次から院生,技術職員の方まで多くの人たちが気軽に参加できる場で,何かをアウトプットするという挑戦の入門編として楽しめる良い場だったのかなと思います。

内容も様々で大学についてを1年次に教えるような真面目な内容もあれば,好きなゲームの紹介,最近作ったもの,このアニメ,アーティストを推せなどなど,どれも楽しめるものばかりでした。

今年はコロナが出てるので新入生歓迎LT大会は難しいのかもしれませんが,Twitterであったように動画配信して行ってみても楽しいのかなと思います。タイミング合えばみたいです。

おわり

雑に思い出して書きました。多分こんなもんでしょう(?)

やりたいことを全てできたかと言われるとそうでもないんでしょうが,少なくとも楽しめた4年間だったんじゃないかなと思っています。これ大事。

多分どんなことも後から見れば改善点が見えるもので,今は大学生活についてそれが発見できる時期なのだと思います。こんな思い出振り返りを考えながら心のなかで社会人生活について考えることができたので頑張っていきたいです。

Okinawa.pm #8

琉球大学で行われたOkinawa.pm #8に参加してまいりました〜〜

参加と言っても特に発表したわけでもなく空気になってお話をお聞きしたので感想やらなんやらを雑に残していきます.

Okinawa.pm #8

#8ということで第8回目らしいOkinawa.pmですが,今回初参加でした.

YAPC::Tokyoに参加してその存在を知ったのでそのまま勢いで参加することにしました.つまりPerl系イベント2回目ということになりますね(実は2016年Perl入学式に参加していたという事実があるらしいが時効)

流れとしては

  1. トーク
  2. LT
  3. 懇親会

というものでした.

トーク

CodeHexさん

YAPC::Tokyoで配られたメルカリタオルに書かれていたコードの解説でした.コード書いてあったんですね

gist.github.com

なんとワンライナーでわちゃもちゃされてJust another Perl hacker,と出るコードだったらしいです.

どうやらJAPHと呼ばれるPerlでは有名な遊びらしく,置換やらv-stringやらPerlの力を駆使して出力している様子.変態でした(褒め言葉

papixさん

Perlをスイスアーミーナイフとして便利に使おうのお話でした.

どんな環境にも大概入っているPerl,シェルの上位互換のような扱いで書き捨てるコードをサクッと書いてしまうのに便利だということでした.

まともにPerlを書いたことがあるわけではないですが,正規表現が強いとよく聞くので勉強してちょこちょこ活用して行きたいと思いました.

後半はいろいろと草を生やせるPixelaとやらのお話やブログを書く上での注意点などもお話されていてためになりました.Pixela楽しそう.

LT

LTは予定されていた3名の他に飛び入りで参加していて細かい内容覚えてるか微妙ですが覚えてる分だけ書きます.

kanekouさん

ともにYAPC::Tokyoに飛び込んだkanekou.その感想やらなんやらの発表でした.

シュタゲ聖地巡礼もといYAPC::TokyoはPerlのカンファレンスだが他の言語などの話も多くPerl知らなくても楽しめたらしいです.

確かにGoだったりRubyだったりVRだったりPerlと絡めながら幅広く話されてる印象で,Perl知らないと全く楽しめないようなイベントではありませんでした.

それでもやっぱりPerlのイベントでありPerlの知識があったほうが楽しいと思うので,ちょいちょい勉強しながら楽しむ準備しておきたいです.

sdさん

Perlの話ではなく,純粋に大学生活でのこれまでとこれからとというお話でした.

興味のある分野を持って勉強していくことの大切さを考えさせられるエモいお話でした.

Okinawa.pmでは人生相談も請け負っているのかとう驚きもありましたが()こういう場で意見が聞けるのは良いと思ったので機会があれば技術だけでなく現状を話すことでこれからの行動を考えていけるようなLTも良いものだと感じました.

Intelさん

PerlPythonを絡めたお話でした.

PerlPythonを動かそうしていたが上手くいかなかったということで最終的にはPythonPerlを実行するというどちらにせよ変態思考でした(褒め言葉

YAPCでもありましたがPerlのイベントでPythonを話すというこのカオス感がやっぱり面白いですね.

tompngさん

FizzBuzzでした.

しかしやはりOkinawa.pm,変態しかいませんでした(褒め言葉

なんとRubyでもPerlでも実行できるFizzBuzzのコードを錬成.動いていました.

一体どこからこの発想が生まれるのか……

Ryuさん

jsで顔文字を錬成するお話でした.

こちらも変態でした(褒め言葉

なんと文字と数字を使わずにコーディングするというあまりにも闇な実装でBrainfuckを思い出す変態さでした.怖かったです.

懇親会

Okinawa.pmの聖地らしいいぶし銀次郎というお店へ.馬刺しがあって最高でした.

Perlイベントの懇親会ですが大半は機械学習のお話を聞いていたような……

横ではライブコーディングでシダフラクタルとやらを実装.早すぎて体感2秒ぐらいで実装していたと思います(大嘘

また音ものさしとやらも見せてもらい,イヤホンとマイクを使ったものさしが面白かったです.

知識量少なすぎて会話についていけていたかと言われると少し怪しいですが空気感を楽しむことはできたので良いということにしておきましょう,勉強します.

まとめ

エモい話も聞けて良いイベントでした.

やっぱり普段から何かしら勉強してネタ作って発表出来たほうが楽しめると思うので,次回はLT出られるようにしたいです. 見た感じPerlはおまけ程度の発表でも怒られなそう

YAPC::Tokyo 2019

2019/1/26に行われたYAPC::Tokyo 2019に参加しました.せっかくの初参加なのでブログという形で残してみようと思います. f:id:RyumaRyama:20190131234543j:plain

参加動機

YAPCPerlのカンファレンス.普段Perlを書くわけでもないのになぜ参加したのか,この謎は宇宙より広いので迷宮入り.おそらく周りで「PerlPerlはいいぞ!」と盛り上がっていたのでなんかノリで見に行ってみようぐらいの気持ちだった気がしなくもない……?

もしかしたらこのカンファレンスを機会にPerlに興味を持って書き始めるかもしれないという気持ちも少しあったので脳死で参加申し込み.学生は参加無料でしかも企業さんのご厚意により旅費の補助までいただけることになったのでPerlを知らないで参加することに申し訳無さを覚えながらも謎のお祭りに参加することが決まっちゃいました.

結局参加前にできたことと言えばPerl入学式の資料を読んで基礎的な文法を確認するレベル.無知状態での飛び込みとなってしまった……そんな日もあるよね.

前夜祭

前日の夜に行われるという伝説のお祭り,前夜祭! 当日には聞くことができないレアなお話が聞けるチャンスらしい!!

ですが大学の講義が終わって空港にダッシュ,飛行機に飛び乗って東京の宿につく頃には21時頃になっているという機関の罠……今回は参加することができませんでした.

なんとなく飛行機から撮れたきれいっぽい写真を載せておきます. f:id:RyumaRyama:20190131234529j:plainf:id:RyumaRyama:20190131234537j:plain

当日

会場に入ると企業さんのブースがあり,発表ホールでは多くの人が着席.話によると300人を超える参加者の模様.一つの言語をテーマとしたカンファレンスに集まる人数として多い少ないの判断はできないが,個人的な感想としては盛り上がっているように感じました.

というのもなんとYAPCどころかカンファレンスというものに参加すること自体が初めてだったり.

11時から19時頃までのプレゼン,その後21時までの懇親会まで戸惑いながらも多くの話を聞くことができたので,うろ覚えながら内容と感想をまとめてみます.

  • 2019年冬のPerl(charsbarさん)

YAPCでお馴染みのプレゼンということを聞いていたのでこのトークを聞いてみた.内容としてはPerlの最新情報をまとめ,次バージョンでの変更点などを話されていました.

正直Perlについて初心者中の初心者である自分には理解できず……

なんとなくMojave問題があるっぽいことを聞き取れたので沼が深そうだなぁとか.あと平行・並列化の安全化が進むとか進まないとからしいので,研究でPerl使ってみるとかも面白いかも?(適当

  • Perl to Go(xaicronさん)

なんとPerlカンファレンスでGoでした.

噂には聞いていましたがYAPCPerl以外の話題が多く出るのはお約束?普通らしいですね. Goは最近流行ってるらしく,Perl使ってた人がGo使うとこんなのに気づけたよ的なお話でした.

謎の$GOPATH問題があるらしくこれからGoやってみようとか思ってたので覚悟して取り組みたいです.

Railsとかいう単語出てきました.Rubyじゃん()

Perlがメインで使われている環境にRubyを投げ込んだお話でした.Railsの便利機能を使いたい,周りにもRubyの良さを布教すべく心理戦を繰り広げたらしいです.

最近Railsを使ってwebアプリ開発をしていたので他のトークに比べてなんとなく理解しやすかったです.比較的であって理解できてはいないです()

  • レガシーPerlビルド 〜現代に蘇るPerl[1..5].0とPerl6〜(八雲アナグラさん)

大学の先輩です(自分がヒキニート精神の人見知りすぎてほとんど話したことないですこんど挨拶します)

なんとなんと今ではversion 5にもなるPerlですが,1から5までビルドて動かそうぜな考古学のお話でした(もう理解できてない

何やらPerl 1はみんなから愛されてテストが完全に通る状態が保たれているとかで最近のPerlになればなるほどビルドが難しいらしいです.

  • WebVRで作品を作って展示しよう(hitode909さん)

web系エンジニアもVRしようぜ的なお話でした

どうやらweb開発の知識や経験がwebVRに活かせるようで,Oculus Goを端末にすることでだいぶVRVRしてるVRが作れるとのこと.最近はVRの話題もよく耳にしますが,改めて技術が発達しているのだと実感しました.

というか会場で回してたOculus Go初めて覗いたんですけど感動モノですねあれ,椅子に座ってるのに下があるんですよ(語彙力

  • 多くのCPAN Authorに育てられ、息をするようにCPANモジュールを書けるようになり、そして分かったこと(Songmuさん)

エモい話でした.

なんとなくの印象としてはこれまでのエンジニア人生の振り返りみたいなものを感じました.

YAPCをはじめとした人とのつながりであったり,OSSとしてアウトプットしていくことでpull requestに反応してもらえるであったり,やはりエンジニアは外部とのつながりが重要になる生き物なのだと再認識できる内容でした.

最後らへん

正直LTからはスピード感ありすぎて内容が頭にあんまり残っていないとか言えないです.

ただエモいと感じた話が

コミュニティは「利用するもの」であり,かつまた「貢献するもの」

というもの.

コミュニティ的な人が集まるやつものすごい苦手なのでなんとかせねばとか思わせられるお話でした.

そしてスライドによるとこれからのPerl Communityを作るのは客席の私たちらしいです

f:id:RyumaRyama:20190131234558j:plain

おまけ

ものすごい量のノベルティ頂きましたやったぜ f:id:RyumaRyama:20190131234554j:plain

夜の秋葉原で引いた鬱ガチャがゴミとか折れた消しゴムとかそんなんじゃなくて普通に知らないキャラが出てきて鬱でした.一生引きません. f:id:RyumaRyama:20190131234603j:plain

まとめっぽいやつ

Perl知らずに参加しましたがなんとなくこういうイベントなんだな〜ぐらいの空気感を感じられました. ただPerlという言語のカンファレンスであり,無知の人間が参加しても???になっちゃってイベントの100%を楽むことはできなかったので,次参加するときには少しでも知識を持ってお話を聞いてみたいです.

あとやっぱりGoとDocker流行ってるっぽいです.勉強します.Perlもします.