タグ

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

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

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

    tanukirpcというWebフレームワークを作っています - ぱいぱいにっき
  • Goで複数の引数を取る関数やメソッドをどう書くのがいいのか - ぱいぱいにっき

    普段Go書いているときにそこまで気にしてなかったが、ふと気になったので色々パターンを挙げてみる。なおこの記事には「答え」が書かれてないので、みなさんの意見を聞かせてください。 複数の引数を取るパターン一覧 そのまま引数を羅列する 複数の引数をまとめたstructを取る Functional Options Pattern そのまま引数を羅列する 例えばHTTPリクエストを行うような関数があったとして、 func Request(ctx context.Context, method http.Method, _url string, query url.Values, formValues url.Values) error { // do something } というシグネチャが考えられる。 実際にnet/http.NewRequsetWithContext は func NewReq

    Goで複数の引数を取る関数やメソッドをどう書くのがいいのか - ぱいぱいにっき
    mackee_w
    mackee_w 2023/10/02
  • Firebase AuthenticationのSafari 16.1で動作しなくなる問題の解決過程 - ぱいぱいにっき

    みなさん2022年いかがお過ごしですか。macopyです。 この記事はPerl Advent Calendar 2022の9日目です。 追記: Firebase Advent Calendar 2022の9日目も空いていたので入れておきました。 今回はFirebase Authenticationを使っていたら、何もしていないのにログインできなくなったと言われて一心不乱で直した話をします。 Firebase Authenticationとは Firebase Authentication(以下Firebase Auth)とは、Googleのアプリケーション開発プラットフォームであるところのFirebaseの中にある、認証サービスです。 競合サービスとしてはAuth0で、つまりIDaaSとして使えます。専用品のAuth0よりは機能は少ないですが、複数のIdPを組み合わせてユーザの認証管理をし

    Firebase AuthenticationのSafari 16.1で動作しなくなる問題の解決過程 - ぱいぱいにっき
    mackee_w
    mackee_w 2022/12/09
    事件があったので解決編まで書きました
  • Backends for Frontendsはあるが、Frontends for Backendsはなぜ無いのか - ぱいぱいにっき

    この記事では僕の以下の疑問について書き出して、思索し、議論を喚起するものであり、何らかの答えが書かれているものではありません。 Webフロントエンドエンジニアに向けたバックエンドサーバーを構築する仕組みは様々提案されているものの、その逆であるバックエンドエンジニアに向けたフロントエンドを構築する仕組みがあまり提案されていない この記事を書くきっかけ 以下の記事を読んで、フロントエンド技術スタック内でサーバサイドアプリケーションの一部の責務を負うような動きがどんどん加速している現状であるが、我々バックエンドエンジニアはどういう動きをすればいいか考えている。 zenn.dev zenn.dev 筆者の立場 自社開発のWebサービスのバックエンドアプリケーション開発を担当している 現代フロントエンドに関しては、社内ツール程度はNuxt.jsを用いて書いたことがある。2C向けのプロダクションコー

    Backends for Frontendsはあるが、Frontends for Backendsはなぜ無いのか - ぱいぱいにっき
  • 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と使った黒魔術の紹介 - ぱいぱいにっき
  • 右手にペンタブ持っている人向けの左手用 #自作キーボード を作っています #builderscon - ぱいぱいにっき

    こんばんわ。今日から30歳です。祝ってくれ。 pulsarっていう左手キーボード作っているって話 これです できたヨー! #自作キーボード スペック 9キー + 親指ダイヤル + 親指が届くところに左右のレバースイッチ 小型OLED キー配列(これ押したらこれが入力されるとか)を自由に設定可能 - ダイヤルやレバースイッチも設定可能 microUSB接続 - ゆくゆくはType-C化や無線化もしたいが youtu.be キーごとにフルカラーLEDを搭載 - 配色も設定可能 上記動画はダイヤルで色変え、レバースイッチで点灯パターン切り替えを割り当てたデモ キースイッチはメカニカルキースイッチ - ソケット接続なので自由に違うキースイッチに差し替えることができる - LEDの形状の関係でkailh BOXやkailh Speedしか使えるのを確認できてない。Gateronは浮くのでダメだった

    右手にペンタブ持っている人向けの左手用 #自作キーボード を作っています #builderscon - ぱいぱいにっき
    mackee_w
    mackee_w 2019/07/23
    やっていってます
  • YAPC::Tokyo 2019で静的解析の話をしてきました #yapcjapan - ぱいぱいにっき

    こんにちはこんばんわ、トーカナイザの守護霊ことmacopyです。 YAPC::Tokyo 2019に参加してきたので、そのご報告です。 喋ったトークについて speakerdeck.com 「Perl5の静的解析入門 機械と人間双方の歩み寄りによる平和編 」と題して発表しました。喋ったこととしては 一般的に静的解析とは Perl5における静的解析ソリューション PPRというモジュールの使い方の例 静的解析がしやすいコードを書こう という感じです。スライド的にはこの後に PPR.pmの巨大正規表現を読み解くために、PPRと正規表現をAST化するPPIx::Regexpを使って可視化する Function::ParametersとFunction::Returnを使って引数の型を書いたメソッドを静的解析して型情報を取り出す ということが書かれています。事前の練習通りのところで終わったので、想定

    YAPC::Tokyo 2019で静的解析の話をしてきました #yapcjapan - ぱいぱいにっき
  • そろそろ正式サービスが始まる#arukas でkuiperbeltを動かしてみる - ぱいぱいにっき

    arukas.io これで github.com を動かす話 要約と言うか感想 Arukasは簡単だけれど、その裏返しで制限が厳しい private registryにはまだ対応予定状態だとか VPNっぽい仕組みがないとか kuiperbeltが想定している環境ではない 特定のコンテナに対する通信がしたい コントロールパネルやAPIからはホスト名とポートを取れる コンテナ自身が割り当てられている環境を知る方法はなさそう? 環境変数とかで知れるようにしてほしいと要望メールした 追記: Twitter眺めてたら取る方法を発見した。下の方に追記してます データストアとArukasは非常に相性が悪い と言うかストレージが無い MySQLだとレプリ組んでなんとかするとかRedisでもそうするとかそういうレベル そもそもDocker自体とも相性が悪いのだけれど 海外のContainer as a Se

    そろそろ正式サービスが始まる#arukas でkuiperbeltを動かしてみる - ぱいぱいにっき
    mackee_w
    mackee_w 2018/03/22
    書いていた
  • WebSocketをいい感じに扱ってくれるミドルウェアkuiperbeltのDockerfileを作ってDockerHubに上げた - ぱいぱいにっき

    要約 WebSocketをいい感じに扱ってくれるミドルウェアkuiperbeltのDockerfileを作った Docker対応のために幾つかの事柄をやった オプションを環境変数で渡せるようにするとか あとまあいろいろやった 経緯 YAPC::Okinawaで結構大々的に宣伝をした(つもり)なんだけれど、いろいろ残念なところを直しておきたいと思ったのでいろいろやっていた README.md のインストール方法が腐っているとか Goは基go getでコマンドインストールできる。けれどkuiperbeltはdepで依存ライブラリのバージョン固定をしており、go getはそんなの無視して最新バージョン取ってきたりローカルにすでにあるバージョンを使おうとして、インターフェイスが変わるとコンパイルに失敗する あと単体コマンドで動くやつはGoコンパイラは要らないので、release binaryを用

    WebSocketをいい感じに扱ってくれるミドルウェアkuiperbeltのDockerfileを作ってDockerHubに上げた - ぱいぱいにっき
    mackee_w
    mackee_w 2018/03/19
    ミドルウェアでDockerに対応するにはみたいな話も書きました
  • YAPC::Okinawa 2018 ONNASONに(行っ|喋っ)てきました #yapcjapan - ぱいぱいにっき

    こんばんわ、みなさんのYAPCは終わりましたか? 俺はこれを書ききったら終わるからみんなも書いてくれ!!! というわけでYAPC::Okinawa 2018 ONNASONに行ったりトークをしてきたりしました。 yapcjapan.org 前夜祭 前夜祭は国際通りのバーのようなところで開催されました。モニタが壁の至る所にあり、結構奇妙な場所でした。 同僚の@jigyakkuma_さんがspacemacsの話をされました。おそらくneovimでめんどくさい人はワタクシだと思われます。 YAPC::Okinawa 2018 ONNASON に参加できて最高だった話 - 俺イケ!!! あとAliCloudの話をされていた方は確かに知らない世界!!!という感じでした。中国リージョンだと強そう。というか最近中国の方がOSS界でも目立ってきたねという話を近くにいたしんぺいさんと話していました。Vue.

    YAPC::Okinawa 2018 ONNASONに(行っ|喋っ)てきました #yapcjapan - ぱいぱいにっき
    mackee_w
    mackee_w 2018/03/09
    感想ブログ書いたので僕のYAPC::Okinawaは終わり
  • 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 - ぱいぱいにっき
    mackee_w
    mackee_w 2018/03/02
    機上からセルクマ
  • #builderscon tokyo 2017に行ってきました, 階差機関と3Dプリンタの話をしてきました - ぱいぱいにっき

    書こう書こうと思っていたのですが遅れました。ちなみに2016の記事も眠っております。今更出す訳にはいかないやろ……。そんな感じで自分の中のワナビー属性を再確認しました。 さて去る8/3〜8/5にかけてbuilderscon tokyo 2017というものが行われたのでそれに行ってきたり、トークをしてきたりしていたのでその感想ブログというわけです。 builderscon.io 印象に残ったトークの感想 複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ builderscon.io ベストトーク投票3位のトークです。内容としてはGUIアプリケーションでいい感じにレイヤーを分けつつきれいに設計するには? みたいな話です。 僕は仕事ではまさにアーキテクト的な立ち回りをする事が多いのですが、設計に関しては他人のコードを読んで実践するという感じであんまりに当たったことはあ

    #builderscon tokyo 2017に行ってきました, 階差機関と3Dプリンタの話をしてきました - ぱいぱいにっき
    mackee_w
    mackee_w 2017/08/14
    感想やっと書きました
  • 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 - ぱいぱいにっき
    mackee_w
    mackee_w 2017/03/13
    感想ブログ書いたのでやっと終わりです
  • 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ビルダーを書きました。 - ぱいぱいにっき
    mackee_w
    mackee_w 2015/09/16
    書きました
  • YAPC::Asia Tokyo 2015に参加&トークしてきました #yapcasia - ぱいぱいにっき

    どうもマコピーです。 昨年に引き続きトークしてきました。 yapcasia.org togetter.com しゃべったこととしては、以下の2つ。 過去に行ったプロポと呼ばれるラジコンのコントローラの信号を模倣することで自動制御を行う MultiWiiというオープンソースのフライトコントローラが喋るプロトコルをPerlで実装して通信して自動制御を行う またデモできなかったし、ソースコードは毎度のごとく整理してからアップしますが、去年は12月に公開という遅いスピードでしたので、欲しい方は催促をお願い致します。 聞いたトーク メリークリスマス! yapcasia.org Larry WallによるPerl6の機能紹介かなと思いきや、概念トークの香りがしつつ、概念が実体化されてPerl6へと消化されていく過程の話 時折ジョークがだいぶ混入してきて同時通訳の人も戸惑っていた気がするw 主軸はトール

    YAPC::Asia Tokyo 2015に参加&トークしてきました #yapcasia - ぱいぱいにっき
    mackee_w
    mackee_w 2015/08/24
    感想めっちゃ書いた
  • GoでMySQLを使ったテストをする - ぱいぱいにっき

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

    GoでMySQLを使ったテストをする - ぱいぱいにっき
    mackee_w
    mackee_w 2015/05/07
    こんなかんじでDBのテストを書いていこうかと思っておりますが皆様どうされていますでしょうか
  • Perlで手っ取り早くArduinoを操作するの巻 - ぱいぱいにっき

    どうもこんばんわ。マコピーことマコピーです。 この記事は Perl Advent Calendar 2014の9日目の記事です。 YAPC::Asia 2014で話したことの復習です そういえばスライドに書きはしたんですが、詳細なコードなどを晒していなかったのでここいらでまとめてみようかという感じになりました。 何をしたか ミクさんの紙を切り貼りしてネギふりをしました。Perlで。 どうやってしたか 材料は以下のものになります。 Arduino(DuemilanoveでもUnoでもLeonardoでもなんでも) 大体以下を読めば良い Device::Firmata PerlでFirmataプロトコルをしゃべるためのモジュールです。 FirmataはArduinoみたいなマイコンとPCなどのデバイスや他のマイコン同士で通信しあうモジュールで、 ArduinoだとArduino IDEにサンプ

    Perlで手っ取り早くArduinoを操作するの巻 - ぱいぱいにっき
    mackee_w
    mackee_w 2014/12/10
    デモ動画も上げたことをお伝えします
  • YAPC::Asia 2014に行ってきました&喋ってきました #yapcasia - ぱいぱいにっき

    はい、時間オーバーつらい、マコピーです。 さて、去年一昨年とYAPC::Asiaはこちらに来てからずっと行っていたのですが、今年も行ってきました。 あと喋ってきましたので、スライドは以下。 Perl meets Real World Perl meets Real World 〜ハードウェアと恋に落ちるPerlの使い方〜 - YAPC::Asia Tokyo 2014 Perl meets Real World // Speaker Deck 結構初歩的な内容とか入り口的な内容をメインにしてどちらかと言うと布教する感じでした ネギ振り出来なかったので何らかの形で皆様にお見せしたい GeekDojoも開いておりますので、興味がある方とかツッコミがある方はTwitterかこちらに是非 その他やらなかったネタ 自作Arduino ラジコンをArduinoで乗っ取る 標準ロジックICでソフトウェア

    YAPC::Asia 2014に行ってきました&喋ってきました #yapcasia - ぱいぱいにっき
    mackee_w
    mackee_w 2014/09/03
    書きました
  • モジュール世界観考 - ぱいぱいにっき

    とりあえずメモがてらに記述しておく。 対象読者 LLを使ったサーバサイドWebアプリケーションエンジニア tl;dr この記事に結論はない。思いを馳せたことを記述するのみである。 あと長いのでだらだらしたのを読みたくない方はブクマせず閉じるボタンをどうぞ。 ポエムなのでそういう苦手な方はブクマせず閉じるボタンをどうぞ。 ポジション 仕事ではPerlを使ったネイティブアプリケーションのサーバサイドAPIを書く。 趣味ではPerlを使ったWebアプリケーションやGolangを使ったライブラリやミドルウェア等々 Ruby on Railsは触ったことがない。 rapid developmentというコンテキスト 僕がWebアプリケーションフレームワークなるものを初めて触ったのはCakePHPで、それまではPHPでベタッと書いていたのを覚えている。Traditional PHPと言われる手法である

    モジュール世界観考 - ぱいぱいにっき
  • #初めてのArduino ワークショップ#00というイベントをやった - ぱいぱいにっき

    どうもマコピーです。ページャnightの話は皆さん書かれると思うので良いかなと思いました。あとGoとかleveldb使って特化したDBつくるというソリューションはいいのでは。言いたかったのはそれぐらい。 さてページャnightの翌日にArduino初心者向けのワークショップを開いてみたのでそのご報告です。 初めてのArduino�ワークショップ #00 - connpass 見学のかたも含めて7人ほど来てくださって良い会が出来たかなと思った次第です。今度はもくもく会をやるという話もあるのでその時はお知らせしますね。 使った資料は以下のものになります。 あとこれのmarkdown版をgistに貼っているのでそれもご活用ください。画像とかはないのでそれはスライドの方で。 #初めてのArduino https://t.co/5RDk11tOXW 日の資料です— マコピー (@mackee_w)

    #初めてのArduino ワークショップ#00というイベントをやった - ぱいぱいにっき
    mackee_w
    mackee_w 2014/07/06
    やりました