タグ

ブックマーク / mackee.hatenablog.com (10)

  • tanukirpcというWebフレームワークを作っています - ぱいぱいにっき

    最近の盆栽ですけれど、tanukirpcというGoのWebフレームワークを書いています。ある程度やりたいことができはじめてきたので、どんなフレームワークかを紹介します。 github.com TL;DR Webアプリケーションでよくやるようなことを、最短手順で自然に書けるように設計したフレームワーク リクエストをパースして構造体にマッピングする リクエストの内容をバリデーションする レスポンスの構造体をエンコードしてレスポンスとして書き込む グローバルスコープもしくはリクエストスコープでの構造体のコントローラーへの依存性注入 DBコネクションやAPIクライアントの保持などに使う 現在の責務範囲はWebアプリケーションのコントローラーだが、Webアプリを作る時によくやるようなことはできるだけやれるようにしてく tanukiup 開発サーバー起動用コマンド。ファイル更新を監視してビルドおよびサ

    tanukirpcというWebフレームワークを作っています - ぱいぱいにっき
    sfujiwara
    sfujiwara 2024/08/29
  • 大コンテナ時代における.gitを使うワークフローの難点を解決するためにGitHubDDLを作った - ぱいぱいにっき

    こんにちは、この記事はPerl Advent Calendar 2021の4日目の記事です。 3日目は@yoku0825さんのPerlで作られたMySQL用の何かについてでした。日々お世話になっている、pt-query-digestがPerlで作られているのは知っていたのですが、他にもいろいろPerl製ツールがあるんですね。 さて、最近仕事で発生した課題を解決するためにGitHubDDLというCPANモジュールを作ったので紹介させていただきます。 TL;DR コンテナ環境において、プロジェクトの.gitをコンテナイメージに焼いたり、volume mountを行うのはいくつかの面で望ましくない 仕事ではDBスキーママイグレーションに.gitを用いるGitDDLを使用していた 以上のために、ECSでEFSマウントで.gitをマウントして構成が複雑になったり、.gitをイメージに焼いてpullが

    大コンテナ時代における.gitを使うワークフローの難点を解決するためにGitHubDDLを作った - ぱいぱいにっき
  • Webサービスの障害対応のときの思考過程 - ぱいぱいにっき

    起こってほしくはないのですが、あらゆるWebサービスは完璧に動作する状態を維持することは難しく、やはり障害対応・トラブルシューティングといった作業が発生します。 筆者は普段仕事で障害対応を不幸なことによくやるのですが、障害対応のスキルというのはスピードや判断の正確さが求められるせいか、今までやったことがある人・ノウハウがある人に集中し、それ以外の人は眺めるだけ・あとからログを見返すだけの状態によく陥ることがあります。 これはWebサービスを開発・運用するチームとしてみたときにそういった苦労が特定の人に集中するのは良くないので、それを緩和する目的として、筆者が障害対応時に考えていることを記述してみます。なお、これが唯一の正解ではないとは思っているので、ツッコミや、自分はこう考えているよというのを教えていただければ幸いです。 具体的な手法を避けて思考の方法を述べているのは、障害というのはパター

    Webサービスの障害対応のときの思考過程 - ぱいぱいにっき
  • GitHub AppsでPithubを使うためのモジュールGitHub::Apps::Authと使った黒魔術の紹介 - ぱいぱいにっき

    こんにちは、おげんきですか。最近体がバキバキなので良い整体を探しております。川崎近辺でお願いします。 この記事は、Perl Advent Calendar 2019の14日目の記事です。13日目はomokawa_yasuさんのTie::Fileで大容量ファイルを処理する - Qiitaでした。今回もtieの話を少しします。 GitHub Appsって何? なんで使いたいの? 同日の会社のAdvent Calendarに記事を書いたのでこれを読んでほしい。 techblog.kayac.com つまり、要約すると、 GitHub APIを叩くときに、管理とか諸々の理由で個人のGitHub Token使うやつから、GitHub AppsのTokenを使いたい 個人のGitHub Tokenと違ってGitHub AppsのTokenは1時間で有効期限が切れる よりセキュアであると言えるし、たぶん

    GitHub AppsでPithubを使うためのモジュールGitHub::Apps::Authと使った黒魔術の紹介 - ぱいぱいにっき
    sfujiwara
    sfujiwara 2019/12/15
    これはいい黒魔術(?)
  • YAPC::Okinawa 2018でWebSocketを喋るミドルウェアを作って本番投入した話をします & 予告編 #yapcokinawa - ぱいぱいにっき

    ハイサ〜イ! 最近また入院したマコピーです。 今沖縄に行く飛行機に乗り込んだところなんですけれど、明日のYAPC::Okinawaの予告です。 High (Availability|Performance) WebSocket for Perl Real-Time Application どういうことやねんって感じですけれど、kuiperbeltの話です。やっと番投入しているっていうのを胸はって言えるようになったので、番投入するまでの話をします。 で、なんで作ったかとか経緯の話を盛り込んだらスライド枚数が爆発してしまいとてもじゃないけれど収まらないので、経緯やHTTPに関する前提知識を入れた第1章を公開します。これで「ああ、なんか興味ある話ししてる」って思ったら沖縄まで来てトークを聞いてくれ!!!! speakerdeck.com この内容の再演は可能です。

    YAPC::Okinawa 2018でWebSocketを喋るミドルウェアを作って本番投入した話をします & 予告編 #yapcokinawa - ぱいぱいにっき
    sfujiwara
    sfujiwara 2018/03/02
    予告編だ
  • YAPC::Kansai 2017 OSAKAに(行っ|喋っ)てきた #yapcjapan - ぱいぱいにっき

    ジャパーン!! 皆さんいかがお過ごしですか。 去る3月4日に行われたYAPC::Kansai 2017に行ってきたのでその感想です。雑多です。 yapcjapan.org 見たトークと感想 前夜祭: 突撃!隣の開発環境! Vimmer(neovim)としてはVimmerの人が多くてほっこり。逆にEmacs勢が少ない。ひとでくんさんとかは昔はEmacsだったけれど、今はおもしろ拡張書きやすいから(という解釈でいいのか)Atomに移っていてナルホドなあと思いました。あとquartz composerでスクリーンセーバーを作るのウケる。ああいうビジュアルプログラミング環境だったのか。 papixのalias設定し放題はウケる。僕もちょっとやってみたけれどこりゃ覚えられないなと思ったので、git statusやgit checkout git push origin master すら全部手で打ち

    YAPC::Kansai 2017 OSAKAに(行っ|喋っ)てきた #yapcjapan - ぱいぱいにっき
  • sqllaというSQLビルダーを書きました。 - ぱいぱいにっき

    github.com sqllaというSQLビルダーを書きました。特徴はある程度型安全であること、リフレクションを使用していないこと、既存のクエリビルダよりある程度高速であることです。 使い方 インストールはごく簡単で、goが入っている環境で以下のコマンドを打ちます。 $ go get github.com/mackee/go-sqlla/cmd/sqlla まず以下の様なテーブル構造を表したstructを用意します。 そして、sqllaに必要なタグを付加していきます。 また後述のgo generateで必要なコメントも足しましょう。 user.go //go:generate sqlla //+table: user type User struct { ID uint64 `db:"user"` Name string `db:"name"` } そしてこのファイルが置かれているディレ

    sqllaというSQLビルダーを書きました。 - ぱいぱいにっき
    sfujiwara
    sfujiwara 2015/09/16
  • GoでMySQLを使ったテストをする - ぱいぱいにっき

    前提 Perlというか、周りの人たちだけなのか、はたまた所属している会社の文化なのかもしれないんですけれど、MySQLを使うWebアプリケーションのテストを書くときに、それ専用のDBを立てるわけでございます。都度立てると重いし、上げたり下げたりスキーマ流しこんだりとかまあそのへんのケアが必要なんですけれど、モックとかやらなくていいし、インデックス張ってなくて重いとかもまあ検知できて便利。賛否両論はあるとは思います。 さて、その時に使うTest::mysqldというモジュールがあり非常に便利なわけですが、さてGoMySQLを使うWebアプリケーションを書く際に、似たような感じでテスト書けないかなと思っていろいろやってみた次第です。 Go触りはじめてあんまり時間立ってないのでそれ違うとかあればコメントなどで教えていただきたいと思っております。 材料 Go 1.4以降 後述するfunc Tes

    GoでMySQLを使ったテストをする - ぱいぱいにっき
  • #isucon で fail して きました(チームぽわわ2) - ぱいぱいにっき

    どうもマコピーだよ。 そんなことはさておき前回の予選から引き続き戦のISUCONに行ってきたので報告させていただきます。 チームぽわわ2のメンバー紹介 @shogo82148氏 我がチームのリーダー。主にアプリケーションを担当。Redis::Fastなどのモジュールを書くも今回の懇親会で「もうXSは嫌です〜」と言う。 彼の戦の記事 ISUCON3の戦に参加してきた - Shogo's Blog @9re氏 今回はnginxを担当。普段はAndroidのアプリを書いているそうです。 ぼく( @mackee_w ) インフラ周りを担当。 時系列を追って説明 10時 @shogo82148 in train— マコピー (@mackee_w) 2013, 11月 9 ギリギリまで寝てた— マコピー (@mackee_w) 2013, 11月 9 渋谷着— マコピー (@mackee_w)

    #isucon で fail して きました(チームぽわわ2) - ぱいぱいにっき
    sfujiwara
    sfujiwara 2013/11/11
    完走して欲しかった…!
  • #isucon2 に参加してきてました - ぱいぱいにっき

    おはようございます、マコピーです。 さて、昨日 ISUCON2 なる何でもありのWebアプリケーションチューニングイベントに参加してきてました。詳細や全体の様子は以下のリンクからどうぞ。 livedoor Techブログ : #isucon2 リアルタイムフォトレポート 更新終了 我らがチームぽわわのメンバーは、 isuconの予習とか考えてない。ただ当日全てを委ねるだけよ、私のゴーストに— kenjiskywalkerさん (@kenjiskywalker) 11月 1, 2012 チームメンバーに高度な情報戦をしかけておりました #isucon2— Masatoshi Kawazoeさん (@acidlemon) 11月 3, 2012 新卒が一人で待っておりますので諸先輩方におかれましては、会場に早く到着されるようお願い申しあげます #isucon2— マコピーさん (@mackee

    #isucon2 に参加してきてました - ぱいぱいにっき
  • 1