りゅうくんの備忘録

徒然なるままに思ったことを書くところ

いろんな熱量の中に自分

みんな目標とかやりたいこととかいっぱい持ってる
すっげー羨ましく感じる
熱量が強くてみんな眩しい

自分のやりたいことってなんなんだろう。目標ってなんだろう。

やりたいこと、したいこと、ほしいもの、すきのもの、自分で自分のことがわからない。自分のこと知ってる人なんて自分だけなのにね

面白いと思ったことしてたら今の自分がいつの間にかここにあったから、今まで意識してこなかったツケが回ってきたのかななんて。

こんな自分じゃダメだなーあなんて思ってたらいつのまにか9月になって、いつの間にか金曜日になってた。このままいつの間にか何年も経っていくんだろうな

そつけん発表で喋らなかった事

11月30日に僕の通う専門学校のそつぎょうけんきゅうはっぴょうがありました。
その際時間が足りなさそうだなぁと端折った話をブログで書いてアドベントカレンダーの足しにしようかなと思います!

うちの学校のアドベントカレンダーです!

speakerdeck.com

発表した時の原文のスライドはこちらからご覧になれます!!! よければご支援お願いします🙇‍♂️  www.pixiv.net

自作の中間言語を全てアロー構文を用いた関数で書くメリットについて

スライドにて自前の中間言語風の定義は500行くらいあるとと言うお話をしました f:id:Ryu1kun:20191205164102p:plain

それらの中間言語っぽい奴らは全て => な関数で定義されています

=> な関数で定義してあるのには大きく2つの理由があって

  • テストのしやすさ
  • 副作用のなさ

が挙げられます。

そもそも関数で定義している理由に、eval時の安全担保と言うのもありますが、今回はそれについては書きません。

テストのしやすさ

関数にするととてもテストがしやすいです。

例を挙げて考えてみましょう

const add = x => y => x+y // addと言う関数があったとします

add(1)(1) // このように使われる事を想定しています。
          // この関数に対する期待する結果は2です!(1+1は2なので)

add(1)(1) === 2 // 期待する結果と実際の出力を比べます
                // この条件式がtrueになれば関数は正しいと証明されます

// 👆上記のように関数で定義すれば条件式に含めるだけで簡単なテストを簡単にすることができます

予想する出力と実際の出力があっているか調べることで後々のバグを潰しておけます

副作用のなさ

副作用のなさを説明する前に、プログラムにおける副作用とは何かと言うお話

プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。代表的な例は変数への値の代入である。

引用 wikipedia

簡単に書くと、同じ構文なのに同じ結果が帰ってこないことを言います

例をあげると

const succ = x => x+1 
let n = 0

console.log(succ(n)) // 1
// ここで副作用のある行為(変数への代入)を行う
n = 1

console.log(succ(n)) // 2
 //同じ形なのに出力結果が変わってしまう

(例などが違ったらご指摘いただけると幸いです🙇‍♂️)

Craftomyでは、基本的な移動や攻撃の関数にターゲットを引数でとるように関数を定義していて、 そのおかげで、敵味方関係なく関数を使いまわすことができてとても便利でした

アトミックデザインについて

コンポーネントを1パーツレベルまで分けて設計する感じの考え方です(ざっくり)

とてもわかりやすい参考の文書です。気になったら読んでみてください design.dena.com

最後に

  • ここ違うよ!って場所は指摘していただければ幸いです!
  • 合わせてコードもみてみたい方向けです github.com

気になること、やってみたいこととか!

僕が今気になってる事柄およびやってみたいことをまとめてみる

〜技術やそれ以外も添えて〜

学内のアドカレ空いてたので埋めるために30分くらいで書きました。

(やりたい || きになってる)ことです

WebRTC

なんかブラウザに生えてるAPI

音声、画像配信なんかに利用できる、P2P的ファイル共有とかも

これ使えば自前でラジオ環境とか配信サイトとかつくれそうじゃね。おもしろそう

モーショングラフィックス

なんかいい感じのかっこいい映像をつくるやつ

定義としてはモーション、回転の錯覚から作るアニメーションの種類を言うらしい

こいつはいろんなところに利用できると思っていて、例えば効果的なプレゼンで強調するために使ったり、動画作る時とか、あとはWeb上でCSSを利用したモーグラなんかもサイトを効果的にカッコよく見せる手法とかして流行りそうな気がしている

フロントエンドマンになるかは知らんけど、できれば覚えておきたい

gRPC

.proto になんかいい感じに書いたら、よしなにAPI生やしてくれる便利なやつ

いろんな言語で出力できるのがいい。あと個人的に.protoは読みやすい

REST Ful API 自分で作りゃいいじゃんってのはあるけど、一回 gRPCは触ってみたい

合わせてGolangも触っていきたいわね

Go

ロスコンパイルとかできるグーグルがつくったいい感じの言語

触ったことはあるんだけど、Goの真の強さが出せそうな並行処理と排他制御とかはまだ書いたことがないので、そこらへんもやっていきたい

JavaScriptJVM実装

これは完全にPHPJVM実装してる人がいらっしゃったのでそれの影響 https://speakerdeck.com/memory1994/php-de-jvm-woshi-zhuang-site-hello-world-wochu-li-surumade

react ,redux + TS 環境でのいい感じの開発

これは実際もうやり始めてるんだけど、まだ勝手が掴めてない感じはある

友達と一緒にこんなの作ってるから使ってみてね https://camera.calmery.moe/

マルコフ連鎖

MLとは違った手法で文章などを生成する方法の1つ

ちょー楽に説明すると、形態素解析した際に、次に来る確率の高い文字を選んで文章を作っていく的な

友達が書いてたブログがおもろい https://muttan1203.hatenablog.com/entry/aiko_lyrics_with_markov_chain

GLSLおよびWebGL

グラフィカルなものはみてて面白いので大概好き

軽めなレイトレーシングあたりは書いたことあるんだけど、まだまだ仕組みを理解して応用できるところまで行ってないので、シェーダーをもっとよしなに使っていきたい

おれはHLSLは書かないぞ

こっからはもっと雑めに

F* (F Star)

型システムがめっちゃ複雑に定義できるいい言語 最近TSにもそう言う機能が入った気もするけど置いておこう

Haskell

まだすごいHな本しかやってないので、もっと極めていきたいしモナドを完全に理解したい

Lisp

関数型言語の祖なのでとりあえず触りたい。

Lazy K

難解言語が大好きなので、Lazy KでFizzBuzzを何もみないで実装できるようになりたい

SKIを覚えればいけそう

Rust

流行ってるしあそびてぇ

梵語

ネタでできるようになりたい。 その前英語できるようになれ?あっはい…

NuxtjsにおけるStoreの最適な運用方法の模索

今探してる最中。暗中模索。だれかいい感じのパターンを教えてくれ

音声の数値データ使って遊ぶ奴

音楽を使って遊びたいってずっと行っている。

音データを256の数字の配列あたりにした後にどうやって活用するかを考えて実装していきたいわね WebAudioAPIをもっと覚えるとかそういうの

Three.jsとかと混ぜてなんかかっこいい映像とか作れたらいいなぁって思ってる

Vtuber

興味が割とある。

LTするのが割と好きなのでLTな動画を上げていきたいなと思っている (やるかわからん)

Live2Dでも3Dモデルの利用でもなんでもいいんだけど、モデルの用意がまじで無理そう…いくらかかるんだよ…

ポケモン

みんなやろうな

エンジニアとしてこれからどうやって立ち回っていくか考える

これまじでどうしようか悩んでいて、それを考えることをしたい

だれか相談にのってくれ


思い出せる範囲でざっと書いてこんな感じ

思い出せたら追記していこうかな

phpcon okinawaがすごい楽しかった

PHPカンファレンス沖縄にいってきたよ

PHPインターンや趣味でちょっと書いたくらいだったけど、沖縄に来てくれるならいくしかないぞと行ってきました

聞いたセッションのはなし(抜粋して書きまs)

聴いてたセッションの中で一番なじみが深いセッションだった。メタプログラミング大好きなので。

ちょいちょい静的解析っぽい話を交えつつ、(闇っぽい)素敵な実装が見れつつ、使い方もしれつつ満足度高めでとてもよかった

この手の話がとてもだいすき。

自分はあまり回路まわりやハードの話などは分からない人間なのですが、それでもなかなかに楽しめるとてもいい話だった。

どうやら各言語でのファミコンエミュレータの実装など探せばあるらしく、僕も読むことを決意しました。

テストちゃんと慣れ親しみたいなと思い聞きに行ったお話。

PHPのテストはあまり書いたことがなく、正直お話聞いてわかるかなぁと不安でしたが、めちゃくちゃプレゼンがわかりやすくて神だった

テスト大事だしselenium使って僕もぶいぶい言わせていこうとおもいました

聞いてないけどすごい良さそうだった話

初学者~中級者にとても良さそうだなと思った

「いきなりプログラムを書くのは難しい。日本語でいったんやりたいことを書いて、プログラムで表現しよう」(原文ではない)

意識していきたいですね

LTとかスポンサートーク面白かった

会社説明にある”ちゅらデータ株式会社です! 弊社では PHP を一切使っていません!! 「何をしにきたのかコイツらは???」"これもとても好き。セッション内容のPHP機械学習もパンチが聞いててよかった

ほかにも、社内ポッドキャストの話だったり、新卒の方のPHPしててよかったっていうお話だったり、えもいはなしもいっぱいあってとてもよかった...

懇親会中の飲みLTの雰囲気がとてもよかった

お酒が入ってからの雰囲気がとてもがやがやワイワイという感じですごくよかった!!!!

懇親会LT寄っていたので言及できるものは少ないですが、オブジェクト指向ガンダムで説明したり、婚活市場の話だったり、ぺちぱーのエディタ事情の話だったり、すっごい盛り上がる話がいっぱいあって空気感がめちゃくちゃによかった

こういう場でだったらLTしたいななどと思ったので、そのうち僕もPHPで記号プログラミングのお話をしたいななどとおもいました。きっと僕もいつかしゃべるぞ~

ハッカーズチャンプルーで喋ったぞ

こんにちは!

はかちゃん公式に黒魔術師認定されたことで黒魔術氏になった人間です!!!

これはちょまどさんから本をもらってうれしいりゅうくん

ブログを書くまでがハッカーズチャンプルーとのことなので、僕のハッカーズチャンプルーを終わらせるためにブログを書きます

当日の様子です

前夜祭のお話

いろんな方のお話を聞いてみたい&&金曜特に予定もないや、と参加した前夜祭、clonekoさんの無茶ぶりで飛び入りLTをすることに

当日スライド作成RTAバリの速さでスライドつくってはかちゃんと僕のお話をしました

speakerdeck.com

僕が面白いエンジニアになりたいなと思ったのは、2年前のハッカーズチャンプルーぺんさんの技巧(?)LTを見て、自分も変なことしたいなぁと思ったのがすべてのきっかけです。
この2年で少しは僕も変なエンジニアになれたかな...

僕がしゃべったLTについて

これが今回のLTのスライドです speakerdeck.com

今回のLTは、僕が1年くらい記号プログラミングをして遊んで出来た物の集大成という感じでした。

ハカチャンでちょまどさんがしゃべっていた言葉を借りると、遊びでやってた点がある種の線になったのかなぁなんて思います

色々準備したり、しゃべるまで死ぬほど緊張したりと多少大変なところはありましたが、カンファレンスでしゃべるといろんな人からレスポンスがもらえてとても良いという知見を皆さんに共有したいですとても!!!!!

引用以外にもたくさんの反応(面白い、やばい、引いた等)がもらえてとてもうれしかった!!!!僕は!!!!!!!
LTした時の反応をあとから追ってすごくにやにやできるのは特権だなぁと思いました

あと記号コーディングしたいなって人はぜひに声をかけてください手とリ足取り教えます!!!!!!!!!!!!!!

他のスピーカーさんのお話もくっそ面白かった

@deeeetさんの開発基盤作るお話

発表資料

なぜこの技術を使うのか、そもそも開発基盤とは?マイクロサービスとは?みたいなところから話してくれてとても最高だった!!!あと資料公開してくれていて神ほんとに

hikaliumさんの自作OS事情のお話

発表資料

ぶっちゃけ低レイヤーなお話を聞くのは初めてだったんですけど、めちゃくそ面白かった(hikaliumさんの熱量もすごくてよかった)
個人的に低レイヤーな部分も学んでみたいなと思えたので、今年中に触ってみたいなーという機運がとても強くなって最高でした

ちょまどさんの好きな事続けるお話

発表資料

エモい話の塊だった。好きな事して突き進んでる身としてはとても刺さる部分が多かった。
あとトーク中にすごい僕の発表を拾ってもらえてひたすらにうれしかった....はかちゃんで喋ってよかった....

ヨガ

Paul McMahonさんのdoorkeeperの道のりのお話

資料は見つけられなかった...

スタートアップは花なお話こそよく聞くけど、苦労なお話は聞かないことが多いので(個人の感想)とても貴重だった

gongoさんEmacsのお話

発表資料

Emacsぶっちゃけ使ったことなかったんですが、やばいですねEmacsEmacsってOSなんですか??
技術をいい感じに変に(いい意味)使うのとても最高で、Emacs僕も始めようかなというお気持ちになれた...Emacsやるか.....

ぺんさん意味不明プログラミングの世界 (LT)

資料

最高ですね。感無量です。感動しました。
ぺんさんのLTを見て僕が園児にあを目指すきっかけになった理由をわかってほしい(?) 

ぼくもいつかぺんさんバリの面白い変なことをするぞ!!!というお気持ちになったのでこれからも変な事していきたいと思います

割愛しちゃったけどあなぐらくんのperl1環境をdocker用意したとかも最高に???という感じでとても好きだった

あとがき

2年前、エンジニアになってみたいなぁと思ったきっかけになったハッカーズチャンプルーという場で、今年LTできたのは大変エモな出来事でございました。
あの時ぺんさんのLT見てなかったら今の自分は黒魔術みたいなことしてないし、通年ハッカーズチャンプルー開いてくれてる運営さんにはほんと感謝です。

f:id:Ryu1kun:20190707223901p:plain
これはちょまどさんに書いてもらった闇落ち(?)したJavaScriptちゃん

来年から就職で沖縄には居ないのですが、ハカチャンの時期はぜひ沖縄に戻ってきて参加したいなぁなんて思うりゅうくんでした。

初めてイベントを主催したぞ!!!!

面白コード見せ合い会ってイベントを主催しました!

初めてイベントを主催した…

めっちゃ緊張したですよ

普段イベントを運営などしてる人はめっちゃすごいんだなぁと学びがありましたね…

#omosiro_code - Twitter Search

当日の様子です

発表してくれたかた

  • ぼく
  • たっどさん
  • ぺんさん
  • じゅえるさん
  • すえさん
  • はなちんさん

発表する順番はJSのワンライナーで決めました!!モブプロ!

話してもらった内容

たっどさん : lispに見せるrubyのお話

無理やりlispっぽく見せる努力すごいやつ 参考

ぺんさん : うごくいかちゃんAA

すごすぎて?となるぞ!

イカちゃんは数式で表現できるし、いかちゃんのうごきもいい感じの数式で表現できるぞ!!!なにそれ おコードです

じゅえるさん : †コードを吐き出すコード†

†シンギュラリティ†

マルコフ連鎖でいい感じなコードを吐かせる話。生成されたコードをみんなで眺めていくの楽しかった 資料

すえさん : 今まで作ったgemの面白コード

こちらは実用的なかっこいいコードの話!プリキュアRuby実装というワードが好きすぎる

あとesaめっちゃ便利そうなので僕も使ってみたい スライド

たっどさんその2 : 関数型言語の関数をオブジェクトに置き換えたオブジェクト言語の話

ぺんさんその2 : Rubyのコードクイズのお話とか

空白が多いコードにはなにか隠蔽されているかもしれないぞ

はなちんさん : 新作Gemのお話

oad_iseqとかコードの実行順序のせいでいろんな場所参照できちゃうかもなどというお話

TracePointはみんな大好きなんですねりゅうくん覚えた

その後

たっどさんがネタの宝物庫すぎて面白い話をめっちゃ聞いてた

無名関数、実は名前があるとか、PHPならではっぽい再起の話とか$抜きPHPとかフォントだけでカレンダーとか、CSSとHTMLはチューリング完全ライフゲームできるだとか、予約語の強さとかとか

僕が喋ったことについて

動的型変換を使った記号プログラミングのお話。 スライドです つくったもの

unicodeでの絵文字を記号で表現する際に、unicodeにおける絵文字の実装、表現方法などを理解した上で、どうやって記号で表現させるかーみたいなとこが結構難しかった!! f:id:Ryu1kun:20190614164936p:plain

ここはその部分のコード!!!かっこいいぽいんと!!!

まとめ

きてくださった皆さんほんとーーーにありがとうございました!!!!!

個人的にいい感じの面白ネタが増えてむふふってなりました。

すーーーーーっごいたのしかった!!!またやりたい!!!!!!!

コードを書き始めて1年が経ちました

がっつりプログラミングを初めて1年が経ったので振り返り

新年号も発表されたし振り返りをば

3月

ryu1kun.hatenablog.com 面白そうだったのでプログラミング講座に行ってみた。
PHPのslimなどで掲示板などを作った

YAPC::okinawaにスタッフで参加した

あとmacbook買った。

4月

ryu1kun.hatenablog.com
ちょこちょこ作っていたreactでポケモン図鑑がかんせいしたのでLTしてきた。人生で初めてLTした
ポケモン図鑑の初号機ができたのはここ

5月

学校の授業で関数型言語っていう物の存在を汁
カリー化楽しい!!こんな書き方あるんだ!!ってJavaScriptで色々な書き方をして遊んでた
ryu1kun.hatenablog.com
授業の解説などを同級生向けにブログにまとめてたりした

この時期から記号プログラミングに目覚め始める。暗黙の型変換大好き

6月

5月の延長な感じ。
がっつりJavaScriptのsyntaxが好きになる
reduceやmapなど新しいものみたらとりあえずそれでFizzBuzzを書いて喜んでた
型変換好きすぎてLTで喋ったら若干引かれた

7月

ハッカーズチャンプルーに同級生を大量に巻き込んで連れて行った
esaのデザインの話とかえもくて良かった。来年ははかちゃんで喋ってみたいなぁなど思う
この辺でインターンシップっていう言葉を知った。(全く知らなかった)

8月

ノリと勢いだけでチームラボのインターンに応募、なぜか受かる
選考や面接は全てポケモン図鑑で乗り切ったはず
事前課題みたいなものでrailsでRESTFulなAPIを作った(すきゃほるど使ってません)
この辺にRuby,Ruby on Rails ,MySQL を覚えて商品を店舗ごとに取り扱う(セキュリティ的にゴミな)api作った
progate,railstutorial同時に進めながら自前でrailsのアプリっぽいものを作って行きながら勉強してたような気がする

9月

チームラボのインターンを満喫してきて ryu1kun.hatenablog.com

ISUCONに参加し(ぼこぼこにやられ) ISUCONに出てみた話 - Ryuの備忘録

Vue.jsを触り始めポケモン図鑑を作った(多分3代目) ちょっとvueを使ってみた&&LTしてきた - Ryuの備忘録

AWSと初めてふれあい、AWSのEC2を2割理解した

サーバーサイド、フロントサイド、どっちもおもしれぇなぁみたいな感じになる

10,11月

TS,go,docker,webpackとかツイッターでよく見かける単語を調べて触ってみたりなどを続けてた
Vueたのしーなどのたまうて、基礎から学ぶ Vue.js、Vue.jsとFirebaseで作るミニWebサービス、などの本を読んではコード書いてみるみたいな生活
voyageのインターン落ちる。面接できょどってしまった…

沖縄でVue.js入門みたいなイベントをしていてメンターみたいな動きをしていた

海行ってハッカソンした!!!
ryu1kun.hatenablog.com
この辺でもrails使ってチャット機能などを実装した記憶がある

12月

かんぼさんの会社で少し働かせてもらう!!!
僕のコミュニケーション能力があまり高くなくて少し迷惑かけてしまったけどいい経験をさせてもらった!!!!!

スマブラが誕生日に発売されめちゃくちゃテンションが上がり無限にプレイする
寒くなり始めてネガる

1月

虚無。息をしていた。
three.jsとwebaudioAPIを合わせて3Dビジュアライザーもどきを作って遊んでた
GitHub - s17001/WEBvisualizar

ebilabさんの案件に少しだけjoinさせてもらっててBI画面のレイアウトなどを少しだけ整えていた

2月

ピクシブインターンに応募する
選考に出すために追いポケモン図鑑を作って、github選考で出した(図鑑5台目)

チームラボに呼ばれて東京に飯を食いにく
goで推しの画像をスクレイピングで取ってきたりして遊んでた

沖縄・宜野湾エンジニア勉強会 #6 in ギークハウス沖縄 - connpassbashさんやさぼさんの話を聞いた、ぺんさんの話はやっぱり好き
自分は黒魔術なコードのお話をしたりした
2/2 LT用 · GitHubその時のコードです
speakerdeck.com

ピクシブインターンにうかる!!!!!!!!!

3月

ryu1kun.hatenablog.com
ピクシブインターンに行ってphpなどでピクシブ百科事典の改修などをごりごりやった
phpかけるか不安だったけど割と書けてしまって楽しくなって最高かよという感じだった
gitをめちゃくちゃ覚えた
pixiv tech salonでGLSLのVJみてシェーダーを書き始める

インターン、記号プログラミングで興味を持ってもらえたみたいで芸に救われた

LTで鍛えたプレゼン力をインターン最終日に発揮できて、プレゼンを褒められたのがめっちゃうれしかった

GLSLとphpで型に慣れてきた

gist.github.com https://gist.github.com/s17001/aa6c4c4e4b9e3b6b4405c96ee51c298b

こんな感じのAAっぽいコードなど書くのにハマっていた

東京にいる間いろんな人に人生相談などをして少しだけ自身がついた
pixivでのインターン中、いろんな方に人生相談をした話 - Ryuの備忘録

ブログが週で2000アクセスなどされビビった

みんなのウェディングにも行った、rails少し書いた

インターンで出会った方にvrchatを布教され、無事友達と沼に頭まで浸かり、unityでワールドなどを作り始める

振り返ってみて

機会をくれたり、色々教えてくれたり…すごい周りの人間に恵まれたなぁとしみじみと思います。
スペシャルサンクスみなみなさまというお気持ち

ポケモン図鑑と記号プログラミングで生を繋いできた感じ

あれもこれもという感じで、きになるものはとりあえず触ってみるスタンスで動いていた、そのおかげで、web系をざーっと学べた一年になったのかなと思います。色々触って物を作ってみるってスタンスはすごい自分にあっていると思ったのでぜひ続けていきたいなぁなんて思いました

でも、いろんなものを触っていたから、1つに注力してきた人には敵わない、というか強い学生が多すぎて僕はまだまだだなぁと思う点が多々。 面白いと自分が感じる技術(謎コード系)ばかり書いていたので、実務で通用するのかなぁって不安がめっちゃある

みんなも一緒につよつよエンジニアになるために今年もなんとかいきていこうな…