タグ

ブックマーク / petitviolet.hatenablog.com (66)

  • 2023年度振り返り - petitviolet_blog

    恒例のやつ petitviolet.hatenablog.com めっきり筆が遠のいてしまって一年ぶりになってしまっていた。 仕事 はりきってライブゲーム開発やっていたが、紆余曲折を経てサ終してしまった。 いろいろなことを経験できたプロジェクトだったのでわりと感慨深い。 前々職では新規事業開発、すなわち0からの開発というのは何度か経験があるものの、企画段階から携わって運用ならぬサービス運営もひっくるめて全部関わるというのは初めてだった。 技術的な観点での話は会社noteに残してあるのでもし興味があればそちらをどうぞ。 note.com ゲーム開発が一段落してからは継続してポチコの開発はしつつも、大きめな受託開発案件が進行している。 機能的な開発はインフラから実装までほぼ全て1人で自由にやっているしスケジュールにも比較的余裕もある(今のところ)しでのびのびとやらせてもらっている。 受託開発と

    2023年度振り返り - petitviolet_blog
  • TGS2022にいってきた - petitviolet_blog

    標題の通り、Tokyo Game Show 2022 に参加してきました(ビジネスデイ1日目) tgs.nikkeibp.co.jp 初TGS! まさかビジネスデイに来ることになるとは思わなかったな pic.twitter.com/jv1BqzorTw — kom (@petitviolet) 2022年9月15日 ちなみに直近では会社としてゲームの開発をしているから、ありがたいことに伝手があってビジネスデイに参加することが出来ました。 会場の様子 3年ぶりのオフライン開催ということで大盛り上がりでした。 スクエニのブース。FF16のトレーラーが流れてて心奪われた。久しぶりにFF買うことを心に決めた。 Fignny社のhttps://fignny.co.jp/service/magic-stone-guardians/|Magic Stone GuardiansというVRタワーディフェンス

    TGS2022にいってきた - petitviolet_blog
    petitviolet
    petitviolet 2022/09/22
    書いた
  • 2021年度振り返り - petitviolet_blog

    2021年度の振り返り。 昨年度のはこれ 仕事 2022年1月に転職した。 前職ではCDPというとても複雑なアプリケーションの開発をしていた。 退職前は↓みたいなことも。書き残していったアレらはどうなったのか果たして。 https://www.treasuredata.co.jp/press_release_jp/20210914_cdp_for_sales/ 現職では受託開発がメインではあるものの自社サービスのポチコの開発なんかも少しずつ始めている。 オフィスに集まって(2人だけど)わいわいやるの楽しいし最高。 それはそうとオフィスが出来た話は近いうちにきっと公開されるはず。 エンジニアとして 前職では自分が触ることが多かったのはRuby, Ruby on Rails, AWS, Terraformくらいで後は内製のツール群だったり別チームが担当しているPresto, Hive, dig

    2021年度振り返り - petitviolet_blog
    petitviolet
    petitviolet 2022/03/31
    書いた
  • 株式会社Play Technologiesで働き始めました - petitviolet_blog

    2021年末でTreasure Dataを退職しました。お世話になった皆様、ありがとうございました! Today is my last working day at TreasureData.— kom (@petitviolet) October 26, 2021 そして2022年1月から表題の通りPlay Technologiesで働いています。 前々職(Fringe81, 現Unipos)での先輩である@pitownが立ち上げた会社の1番目の正社員として入社しました。まさかこんなことになるとは人生面白い。 続編がいずれあがってくると期待していますが、最新の状況としてはこの記事を参照。 自身がやっていること・やっていくこととしては主に受諾開発・自社サービスをソフトウェアエンジニアとして開発していくという、まあ特に変なことはないです。 受諾開発、若かりし頃は正直あまりポジティブなイメージ

    株式会社Play Technologiesで働き始めました - petitviolet_blog
  • 2020年度振り返り - petitviolet_blog

    2020年度の振り返り。 昨年度のはこれ 仕事 転職して1年と9ヶ月になる。思いの外、生き延びてる。内部的なことがようやく分かってきて美味しい感じのプロジェクトを任せてもらったりしていい思いをしていた。 その結果もあり2020年10月には昇格(?)してSenior Software Engineerというタイトルになりめでたい。 技術的にはやっていることは昨年度までと特に変わることはないが、いかんせん理解が要求されるレベルとなにより範囲が大変なので相変わらずヒイヒイ言いながらコード書いてる。 そして残念ながらCOVID-19の影響によりオフィスに行かなくなって1年以上が経過してしまった。US社にもついに行くことが出来ないまま...果たして次の海外出張はいつになることやら。 バンクーバーにいるチームの同僚の半分以上、さらにはマネージャも会ったことがないので一回くらいはオフラインで会ってみた

    2020年度振り返り - petitviolet_blog
    petitviolet
    petitviolet 2021/03/31
    書いた
  • 2019年度振り返り - petitviolet_blog

    社会人5年目の振り返り。 昨年度の。 転職した 大きなイベントとしてはまずこれ。 4年ちょっと在籍したFringe81株式会社からトレジャーデータ株式会社に。 現状、何とか死なずに済んでいるという状態。 入社してしばらくは無力感に打ちひしがれていたものの9月にはバンクーバーに出張に行き、何やかやで少しずつ理解が進んできたので冬の間はお金になりそうな機能を作っていた。 やっていることもそうだし、働き方とか仕事の進め方が前職と前提から異なっている感じで、新鮮で楽しいには楽しい。 ここ最近はCOVID-19の影響でしばらくオフィスには通っていない。オフィスランチが恋しい...。 そして英語は相変わらずボトルネックだが実際どれくらいなんだろうと思ってTOEFL受けてみたら73点だったのでわりとアカンことが判明してしまった。 というか大学院入試の頃(TOEIC760くらい?)と英語力的にはほぼ変わっ

    2019年度振り返り - petitviolet_blog
    petitviolet
    petitviolet 2020/03/31
    書いた
  • RstructuralにOptionとEitherを追加した - petitviolet_blog

    前にRstructuralというGemを作ったという記事を書いた。 それの続編としてOptionとEitherを実装した、というだけの話。 Option Scalaやってる人にはOption、HaskellとかならMaybeで伝わるはず。 「要素があるかも知れないし無いかも知れない」を表現するための型で、Rubyだとすぐにnilが出てきてあらゆるオブジェクトがnilの可能性もあり大変なのでもう少し安全に扱いたいなということで実装した。 しかしそうなるとすべての要素をOptionにする必要があり大変だが、名前の通りオプショナルな値をOptionで包んでおくと便利に扱えるのではないかなと。 Option.ofがファクトリになっていて、mapとかflat_mapが生えている。 x = Option.of(100).flat_map do |v| Option.of(v * 2) end #=>

    RstructuralにOptionとEitherを追加した - petitviolet_blog
    petitviolet
    petitviolet 2020/03/03
    書いた
  • リッチなデータ構造を扱うためのGemを作ってみた - petitviolet_blog

    以前、StructをRubyで実装するというのをやった。 じゃあ次は、ということでEnumとAlgebraic Data Type(ADT)に相当するようなものが欲しいな〜と思ってGemとして作ってみた。 EnumはRuby言語標準としては用意されていないが、RailsにはActiveRecord::Enumというものがあり、カラムをenum的に管理しつつ便利メソッドを山程生やしてくれるものがあるが、そういうのじゃなくてデータ構造としてenum欲しいんだよねという気持ち。 そうなるといわゆるADTみたいなやつ、Scalaでいうところのsealed trait + case class(object)のあれがわりと好きなので欲しくなる。 といっても静的にパターンマッチの網羅性チェックとか出来ているわけでもないしどれくらい嬉しいかは不明。 EnumをEnumとして、ADTをADTとして明示でき

    リッチなデータ構造を扱うためのGemを作ってみた - petitviolet_blog
    petitviolet
    petitviolet 2020/02/03
    書いた
  • RubyのStructをRubyで実装する - petitviolet_blog

    RubyのStructはこういうやつ。 $ irb irb(main):001:0> Point = Struct.new(:x, :y) irb(main):002:0> Point.new(1, 2) => #<struct Point x=1, y=2> irb(main):003:0> Point.class => Class Structという名前だけあり、データを持たせておくのに便利なクラスを作ることができる。 実装はここ。 ruby/struct.c ぼくCよめないのでRubyで実装してみよう!ということでやってみた。 やってみた実装はこんな感じ。 module Rstruct def self.new(*attributes) begin names = caller.map do |stack| # ".../hoge.rb:7:in `<module:Hoge>'" i

    RubyのStructをRubyで実装する - petitviolet_blog
    petitviolet
    petitviolet 2020/01/27
    書いた
  • RailsとReact hookでGistみたいなWebアプリを作りかけた - petitviolet_blog

    Ruby(Rails)の練習がてらGistみたいなやつを作ろうとしていた(過去形)。 https://github.com/petitviolet/acoder モチベーションはこの辺 Ruby on Rails 6を触ってみたかった ActionTextとか React hooks触ってみたかった TypeScript RubyでもGraphQLやってみたかった Getting Startedくらい 作りかけた? 飽きた。 個人開発だし真面目にcommitしたりしなかったりPR作ったり作らなかったりでめっちゃ雑なプロセスだったと反省している。 以下メモと感想。 API Ruby on Rails 6.0で動いている。 ActionTextを捨てた 目玉機能っぽいActionTextを使ってコードスニペットのエディタを作ろう!と思っていたがReactで書いているクライアントに対してActi

    RailsとReact hookでGistみたいなWebアプリを作りかけた - petitviolet_blog
    petitviolet
    petitviolet 2020/01/21
    書いた
  • Railsでdevise_token_auth使ってトークン認証する - petitviolet_blog

    Railsで認証を実装するのに有名なGemであるplataformatec/deviseを使ってトークン認証を実装するためのGemであるlynndylanhurley/devise_token_authを使ってトークンによる認証を実装する。 +αで少しカスタマイズする方法も書く。 ちなみにdeviseにもかつてはTokenAuthenticatableがあったらしいがなくなった。 バージョンはこちら。 $ bundle list | grep -e 'devise' -e ' rails ' * devise (4.7.1) * devise_token_auth (1.1.3) * rails (6.0.0) インストールと初期設定 公式ドキュメントとかを見れば良い。 $ echo "gem 'devise_token_auth'" >> Gemfile $ bundle install

    Railsでdevise_token_auth使ってトークン認証する - petitviolet_blog
    petitviolet
    petitviolet 2020/01/13
    書いた
  • ReactからAceEditorを使ってリッチなエディタを表示する - petitviolet_blog

    これはなに リッチなエディタとしてajaxorg/aceというものがあり、Reactから使おうとするとsecuringsincity/react-aceが便利。 react-aceが提供するコンポーネントをラップするような独自のコンポーネントを実装する。 具体的には、以下の三点。 ファイルタイプに応じて動的にrequireする React hooksを使う readonlyモードを用意する 実装 大した量でもないので実装を貼り付ける import * as React from 'react'; import AceEditor from 'react-ace'; // AceEditor周りで使うデータ export type EditorProps = { fileType: string; contents: string; readOnly: boolean; onChange?:

    ReactからAceEditorを使ってリッチなエディタを表示する - petitviolet_blog
    petitviolet
    petitviolet 2020/01/05
    書いた
  • HTTPリクエスト/レスポンスを記録してリプレイするためのruby gem作った - petitviolet_blog

    RubyGem作ってみよう、Rackミドルウェア書いてみよう、の習作。 RackミドルウェアがHTTPリクエストとレスポンスを記録 Rack::Rreplay Rubyスクリプトで記録されたリクエストをリプレイしてレスポンスを突き合わせる bin/rreplay みたいな使い方。 実用上は、Goで書かれたgoreplayなど、もっと便利なツール群がある。 名前はこれをオマージュしてつけた。 どんなものか 使い方は大体こんな雰囲気でconfig.ruとかに書く。 use Rack::Rreplay.Middleware(directory: './tmp', format: :json), { sample: 5, extra_header_keys: %w[X-ACCESS-TOKEN], debug: true } HTTPリクエスト/レスポンスのdumpを吐き出すdirectoryとf

    HTTPリクエスト/レスポンスを記録してリプレイするためのruby gem作った - petitviolet_blog
    petitviolet
    petitviolet 2020/01/05
    書いた
  • react-routerで同じComponentにLinkで遷移したときにstateがリフレッシュされない - petitviolet_blog

    まとめ Routeに異なるkeyを設定する <Route exact key={'new'} path={'/posts/new'} component={EditPostComponent} /> <Route exact key={'edit'} path={'/posts/:id/edit'} component={EditPostComponent} /> <li>などでリストを表示したときにkeyを設定してないとwarningが表示されるが、それと同じことが起きていると思えばよい。 https://reactjs.org/docs/lists-and-keys.html#keys サンプル コードを貼り付けるとこんな感じ。 import * as React from 'react'; import {Link, Route, Router, Switch, useLocatio

    react-routerで同じComponentにLinkで遷移したときにstateがリフレッシュされない - petitviolet_blog
    petitviolet
    petitviolet 2019/12/08
    書いた
  • Reactのカスタムhookで作るフォーム - petitviolet_blog

    何番煎じかわからないが実装してみたから残しておく。 やりたいこと Reactのカスタムhookとして実装する フォームのバリデーションをする フォームをなるべく共通化する onSubmitとかonChangeについては共通化する JSXやスタイルについては共通化せず個別に実装できるようにする 流れとしてはReact hooksを自分で定義してフォームをそれっぽく扱えるようにし、そのhookを使ってログインフォームを実装する。 バージョンとか package.jsonからTypeScript, Reactあたりを抜粋するとこんな感じ { "dependencies": { "@types/react": "^16.9.1", "@types/react-dom": "^16.8.5", "@types/react-router-dom": "^5.1.2", "react": "^16.9.

    Reactのカスタムhookで作るフォーム - petitviolet_blog
    petitviolet
    petitviolet 2019/11/25
    書いた
  • 近況 - petitviolet_blog

    2019/07/01にArm Treasure Data株式会社に入社していました。 シュッ pic.twitter.com/jX9qq54Ygs— こむ (@petitviolet) 2019年7月1日 丸4ヶ月経ったところです。 経緯とか 転職を考えていた頃にタイミングよくスカウトメールが来てオッてなって応募してみたら受かってしまったという流れです。 スカウトメールきっかけで転職が決まることがあるもんですね。 とはいえ話聞くまではサービスとかもよくわかってなくて、インターネット上の存在として知っている人が沢山いてOSSも作っててなんかビッグデータ()扱ってる会社なんでしょ、という雑な認識でした。 入社を決めた理由は色々ありますが、雑に箇条書きにするとこのあたり。 でかいデータを扱うサービスをやってみたかった 自分の持っていないスキルを持った人がたくさんいる ユニークな経験ができそう 多

    近況 - petitviolet_blog
    petitviolet
    petitviolet 2019/11/01
    書いた
  • fzfで快適なターミナルライフ - petitviolet_blog

    以前こんなエントリを書いた。 petitviolet.hatenablog.com が、最近はpecoからfzfに大体を移行している。 主な理由はfzfについているpreview機能が気に入ったからで、ファイルやGitをインタラクティブに選択する際にpreviewが出来ると助かることが多いため。 逆にpreview機能を必要としないhistory検索とかはpecoを使っているままだったりはする。 fzfで快適なターミナルライフ どんな感じになるのか 事前準備とか 環境 Zsh Line Editorについて fzfのグローバル設定 ディレクトリ移動 treeコマンドからファイルを選択する docker psからプロセスを選択する git statusで変更のあるファイルから選択する git branchとtagから選択する どんな感じになるのか fzfの--previewオプションを使って

    fzfで快適なターミナルライフ - petitviolet_blog
    petitviolet
    petitviolet 2019/07/08
    書いた
  • 近況 - petitviolet_blog

    2019/06/30を持ってFringe81株式会社を退職します。 最終出社でした。ありがとうございました! pic.twitter.com/YRvrLUhBXn— こむ (@petitviolet) May 24, 2019 2015/04/01で新卒入社したので4年と3ヶ月の在籍ということになりました。 お世話になった方々、当にありがとうございました。 以下は振り返りのためのチラ裏。 なんでやめるの 4年間仕事して慣れてきた+自分のライフステージが変わり、自分の成長速度が鈍化してきていることにふと気付いたので環境を変えたいなというのが大体の理由。 もちろん完璧な企業はないので細かいのも挙げ始めればないとは言わないが、自分にとっては些末なことが多い。 給与とか待遇は不満ないし、人間関係で悩んだとかも少なくとも自分にはなくて居心地の良い会社だった。 巷でいわれるような給与アップを転職理由

    近況 - petitviolet_blog
    petitviolet
    petitviolet 2019/06/30
    書いた
  • ScalaMatsuri2019で発表してきました - petitviolet_blog

    「ピュアなドメインを支える技術」というタイトルで発表してきました。 2019.scalamatsuri.org ScalaMatsuriは2017で発表して以来だったので楽しみにしてました。 petitviolet.hatenablog.com 資料 内容としては関数型プログラミング + CQRSという感じでDDDをどうやってピュアに保って推進するか、というもの。 MonadとかKleisliとかCQRSみたいなウッとなりやすい言葉を出しつつどうやってわかりやすく伝えるかに腐心したので、何かしら伝わっていると嬉しい。 感想 大変ありがたいことにScalaMatsuriに応募したトークが当選したので準備がんばるぞ— こむ (@petitviolet) March 11, 2019 だめだ緊張する— こむ (@petitviolet) June 28, 2019 発表だん!嬉しいコメントが多く

    ScalaMatsuri2019で発表してきました - petitviolet_blog
    petitviolet
    petitviolet 2019/06/29
    書いた
  • いい感じにオブジェクトのdiffを取るライブラリ作った - petitviolet_blog

    Scalaのオブジェクト同士を比較する際に、==を使って比較することは出来るが、同値かそうでないかしかわからない。 そこで、具体的に何がどう変わったのかをジェネリックに取得するライブラリを作ってみた。 こんな雰囲気で使える。 $ amm Loading... Welcome to the Ammonite Repl 1.6.7 (Scala 2.12.8 Java 1.8.0_192) If you like Ammonite, please support our development at www.patreon.com/lihaoyi @ import $ivy.`net.petitviolet::generic-diff:0.6.0-RC2`; import net.petitviolet.generic.diff._ import $ivy.$ ; import net.pet

    いい感じにオブジェクトのdiffを取るライブラリ作った - petitviolet_blog
    petitviolet
    petitviolet 2019/05/31
    書いた