タグ

mano-junkiのブックマーク (2,346)

  • PostgreSQLを本当に高速化したい人のための10のポイント | 独り言v6

    空気を読まずにPostgreSQLのを高速化する10のポイント - 象と戯れ -空気を読まずにPostgreSQLのを高速化する10のポイント - 象と戯れ - postgresqlグループ.の元エントリを読んで思うところがあったのだが、 PostgreSQLを高速化する16のポイント だからそんなせまっくるしいところでトンチンカンにdisる暇あるんだったら自分のブログでお好みの議論を書くかさもなきゃ/dev/nullにでも吐けとやんわりと言ってるんだよハゲ。 というわけでw。 だよねw。 まあ正直、上記元ネタのほうには色々突っ込みどころ満載なのだが、それは置いておくとしてL.starなりの高速化ポイントを一度書いておかないと、と思ったので記す。ただ、L.starはもうPostgreSQL界隈から離れて久しいので、必ずしも最新の内容を網羅していないことに注意されたし。また、出来るだけPos

  • go testの時だけ時刻を固定する - newmo 技術ブログ

    はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 newmoには2024年8月に入社しました。この記事を書いているのは2024年9月なので、入社してだいたい1ヶ月ちょっとが経過したところです。 なお、筆者が入社した経緯などは次の記事を読んでください。 note.com 入社した当初、newmoのバックエンドコードのコードを眺めていると、次のように宣言された関数を見つけました。 func Now(_ context.Context) time.Time { return time.Now().In(time.UTC) } 単にtime.Now関数を呼び出して、LocationをUTCに設定しているだけです。 しかも、引数はブランク識別子になっているので使用していません。 しかし、筆者はこれを見て、これは後々のことを考えているなと感心しました。 ちな

    go testの時だけ時刻を固定する - newmo 技術ブログ
  • Tips on naming boolean variables - Cleaner Code

    Michael Z Posted on Oct 3, 2019 • Updated on Jan 9, 2022 • Originally published at michaelzanggl.com Originally posted at michaelzanggl.com. Subscribe to my newsletter to never miss out on new content. There is a convention to prefix boolean variables and function names with "is" or "has". You know, something like isLoggedIn, hasAccess or things like that. But throughout my career I have seen and

    Tips on naming boolean variables - Cleaner Code
    mano-junki
    mano-junki 2024/09/15
    命名
  • 人生3回目のCSVエディタを作っている話

    私は今、人生で3回目のCSVエディタを作っています。もはや狂気です。 なぜ作り始め、なぜ今また作り直しているかみたいな話を書きたいと思います。 About Me 株式会社ヘンリーでソフトウェアエンジニア & アーキテクト的なことをしつつ、個人開発してます。 Social accounts: kohii on GitHub @kohii00 on X 今までに作ったCSVエディタたち 初代SmoothCSV(2011年〜) 私は新卒で入った会社で公共系のシステム開発に従事しており、CSVを扱う機会が多くありました。(今は医療スタートアップにいますがこの業界もよくCSVが現れます。) 既存のCSVエディタをいろいろ試してみたのですが、どれも求めるものと違うと感じ自分で作るしかないと思い、作りました。 SmoothCSV。時代を感じるUI Java / Swingで作成 (当時Javaくらいしか

    人生3回目のCSVエディタを作っている話
    mano-junki
    mano-junki 2024/09/13
    生き方が格好いい。
  • boardというSaaSのリリースから10年が経ったので、経営者・事業責任者・開発者としての個人的な振り返り - ヴェルク - IT起業の記録

    boardというサービスが、2024年8月で正式リリースから10周年を迎えたので、振り返ってみたいと思います。 これまでも、有料導入社数1000社刻みで振り返りのブログを書いてきており、今年の頭に5000社の記事も書いたばかりなので、今回はどちらかというと、個人的な視点で思い返したことなどを書いていきます。 boardとは 見積書・請求書の作成から業務管理・経営管理などを行うことができるサービスで、主に数人〜数十人規模の小規模な会社をメインターゲットとしています。自分自身が会社を経営する上で欲しかったものを作るというところからスタートして、10年経った今でも、メイン開発者の1人として開発を続けています。 2024年9月現在の有料登録社数は5300社を超えており、以下は有料5000社突破時の振り返りです。 tamukai.blog.velc.jp また、先日、10周年のインフォグラフィックス

    boardというSaaSのリリースから10年が経ったので、経営者・事業責任者・開発者としての個人的な振り返り - ヴェルク - IT起業の記録
  • 太一のコードの読み方メモ

    太一のコードの読み方メモ 全体として太一が感覚的に実践している事を論理的に説明しようと試みている為、 説明の粒度が適切でなかったり一貫性が無いように見える部分があるかもしれない。 普段やっているけども書ききれていない事も多分きっとある。 コードを読むとは何か コードを嗜む コードを学ぶ 武器を手に入れる これは武器を手に入れるコードリーディングの話 武器とは何か プロジェクトで戦う為の道具となる知識 プロジェクト内における技能を示す為の道具となる知識 プロジェクトのやり方を自ら決められる様になる為の道具となる知識 権限と責任がバランスよく割当てられた時モチベーションは最大化する 何と戦うのか プロジェクトリスク プロジェクトをより良い状態にする為の基礎的な根拠となるのがコードである コードが全てではないが適切に動作するコードが無ければプロジェクトは終わらない これはつまり理想を体現する為の

    太一のコードの読み方メモ
  • 月一LTのすすめ 〜楽しみながら成長するLT登壇の魅力〜

    こんにちは!プロダクトエンジニアのshinokuです。 SmartHRでは、2023年の年末から定期的に社内のLT大会を開催しています。 テックブログでも毎回の内容を紹介しており、記事の執筆時点だと6月に開催した第6回のブログが最新です。 tech.smarthr.jp 私も記念すべき第1回で登壇をしており、そのときの体験がとても良かったためLTが好きになりました。 記事では、このLT大会がキッカケになって外部のLT会にも月一ペースで登壇するようになった話を紹介します。 なぜ月一ペースで外部のLT会に登壇するようになったのか 社内LT大会がキッカケとなって外部のLT会にも参加するようになった理由はいくつかあります。 理由1:知識・経験の棚卸の機会になる 社内LT大会への参加を通じて、LTの準備は自分が学んだことや経験したことを振り返り、それを体系的に整理する機会になると感じました。 さ

    月一LTのすすめ 〜楽しみながら成長するLT登壇の魅力〜
  • Software Design 2024年9月号 Goのエラーハンドリングと向き合う ベストな設計戦略を徹底解剖を寄稿しました | フューチャー技術ブログ

    はじめに2024年8月17日に発売された、Software Design 2024年9月号の第二特集である、「Goのエラーハンドリングと向き合う ベストな設計戦略を徹底解剖」 の2章を後藤、3章を渋川で執筆し寄稿させていただきました。 このような貴重な機会をいただいた栗木さんをはじめ技術評論社の方々には、心からお礼申し上げます。 みどころGo言語初心者から熟練者まで楽しんでいただける内容になっていると思います。 Go言語を利用する上でエラーハンドリングは必須の知識になるので、ぜひご一読ください。Goに馴染みのない方でもGo特有のエラー処理の方法を知ることで、普段触れている言語の理解を深めることができると思います。他言語と比較した、Go言語のエラーの特徴もみどころの一つです。 【第2特集】Goのエラーハンドリングと向き合う 第1章 Goのエラー処理を理解する/mattnさん 第2章 失敗しな

    Software Design 2024年9月号 Goのエラーハンドリングと向き合う ベストな設計戦略を徹底解剖を寄稿しました | フューチャー技術ブログ
    mano-junki
    mano-junki 2024/08/30
    レビューがんばりました
  • OpenAPIでOAuth認可周りのサーバサイドコード生成を比較 | フューチャー技術ブログ

    夏の自由研究連載2024 の5日目です。 はじめにTIG 真野です。 夏といえばコード生成というわけで、HTTP API仕様を定義するOpenAPIsecurity schemes(認証認可を定義するための箇所)で、Bearer/OAuth2/OpenID Connect (OIDC) 認証を設定すると、各コードジェネレータはどういったコード生成をしてくれるかを調べました。 なお、OpenAPIについてはOpenAPI Specification v3.0.3のコーディング規約を公開しましたの記事も参考ください。 この記事で利用した openapi.yaml や生成したサーバサイドのコードは以下のリポジトリにまとめています。 https://github.com/ma91n/summer2024コード生成の対象Go言語のみサーバサイドのみ(※クライアントコードは対象外)比較ツールGo

    OpenAPIでOAuth認可周りのサーバサイドコード生成を比較 | フューチャー技術ブログ
    mano-junki
    mano-junki 2024/08/29
    書きました!
  • フレームワークを作れる人に憧れながら、ユーティリティを作る - 右上↗

    エンジニアとして働くにあたって、無意識に気をつけていたことを自覚するたびに、言語化しておきたいなと思うようになりました。 今日はフレームワークを作らないようにしている話を書いてみます。 (個人ブログを育てていたのですが、なんとなくはてなブログに復帰することを検討しているので、こっちに書いてみる) なぜフレームワークを作らないのか フレームワークの定義は正直いまだに厳密にはよくわかっていませんが、ここでは「その仕組みの上に乗っかってプロダクトコードが書かれるような基盤となる仕組み」全般をフレームワークと呼びます。(Reactは自称libraryですが、このブログではあれはフレームワーク扱いしたい、くらいのふわっとした独自定義でいきます。そもそもグラデーションなので、あまり厳密なものでもありません。) なぜ僕がフレームワークを作らないようにしているかというと、すごく単純な話で、自分でフレームワ

    フレームワークを作れる人に憧れながら、ユーティリティを作る - 右上↗
    mano-junki
    mano-junki 2024/07/29
    わかる。最近はDSLを作るくらい開発対象に対する広い知識と深い洞察がフレームワーク作りに求められそう
  • エンタープライズJavaで使えるORM「uroboroSQL」まとめ(リバイバル) | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を7年ぶりに改訂したものです。 筆者自身もコミッターとして関わるJavaDB永続化ライブラリ「uroboroSQL」の紹介です。 https://github.com/future-architect/uroborosql はじめにエンタープライズシステム開発では、まだまだJavaで作られていることが多く、システム特性上、やはりRDBを利用するケースが多いですよね。 Amazon AuroraやCloud Spannerといったプロダクトに注目が集まるのも、時代の変化とともにDBも並列分散型でスケールアウトはしたいけれども、トランザクションもSQLも使いたいというCAP定理を覆す特徴を持っていることが要因だと思います。 2016/12/24にクリスマス・イブにCockroachDB

    エンタープライズJavaで使えるORM「uroboroSQL」まとめ(リバイバル) | フューチャー技術ブログ
  • Dev Containersの始め方(1) : 仕組み編 | フューチャー技術ブログ

    VDIでもGitHub Codespacesなんかだとエディタはローカルのブラウザで動いたり、検証用ブラウザはポートフォワードでローカルのブラウザが使えたり、というのはありDev Containersとだいぶ近いのです。 ソースコードなどもローカル側が主で、そのコピーがDockerにコピーされます。実際にエディタが編集するのはコンテナ内部にコピーされたファイルだったりする(変更はローカルに同期される)のですが、基的に通常のローカル開発と感覚はほとんど変わりません。⌘ + JとかCtrl + Jでターミナルを開くと、Docker内部に繋がっている以外は操作感覚は変わらないです。 いくつかネットで記事を見ると、いろいろコンテナを作り込んでいる記事とかも見かけるのですが、さぞ、特別なコンテナなんだろう、といくつかMicrosoft謹製のDev Containers用のコンテナ定義を辿ってみたの

    Dev Containersの始め方(1) : 仕組み編 | フューチャー技術ブログ
  • Go 1.23リリース連載 range over funcとiterパッケージ | フューチャー技術ブログ

    はじめにこんにちは。CSIG 所属の棚井です。 Go 1.23 Release Notes の内容を紹介する「フューチャー技術ブログ Go 1.23 リリース連載」の記事です。 今回は2つの反復(Iterator、イテレーション)処理を取り上げます。 range over funciter パッケージRelease Note, Discussion, Proposal, Issuerange over func と iter パッケージ のリリース内容を確認していきます。 range over func がデフォルトで有効にGo1.22 では GOEXPERIMENT とされた range over func が、Go1.23 からはオプション指定なしで利用可能となりました。 Go 1.23 makes the (Go 1.22) “range-over-func” experiment

    Go 1.23リリース連載 range over funcとiterパッケージ | フューチャー技術ブログ
  • Go 1.23リリース連載 archive/tar | フューチャー技術ブログ

    はじめにTIG 真野です。Go1.23連載の2目です。 Go 1.22のマイナーアップデートarchive/tar を取り上げます。 アップデートサマリ新しく追加された FileInfoNames インターフェースを利用することで、FileInforHeader() がUname/Gnameの値をシステム依存から、アプリケーション側で制御可能になった #50102私のようにGoDBから値を取って来てJSONを返す典型的なWebAPIを実装する生活を送っていると、tarの文脈におけるUname, Gnameといった用語に触れることが少ないかなと思います(そうじゃない人はごめんなさい!)。そのため、基礎的な部分から説明していきます。 tarとはtape archivesの略で、複数のファイルやディレクトリを1つにまとめる(アーカイブする)ことです。アーカイブしたファイルはTarball

    Go 1.23リリース連載 archive/tar | フューチャー技術ブログ
    mano-junki
    mano-junki 2024/07/18
    書きました!
  • GoLand の WSL2 対応状況を見てみる | フューチャー技術ブログ

    https://www.jetbrains.com/go/ はじめにTIG真野です。 IntelliJ IDEAで有名なJetBrains社による、Go開発者向けIDEであるGoLandの、Windows WSL2サポートを試しました。結論はWSLサポートが良い感じにバッチリ動いたということです(そのため、Windows側からWSL配下へプロジェクトのパスを引っ越しました)。 WSLに寄せるモチベーション\\wsl$ 配下に .go などのファイルを配備したいモチベーションですが、Windows側の C:\\ 配下のファイルに対して、WSLで処理すると、I/O速度の違いから体感できるほど各種コマンドの実行速度が低下するためです。 Goのアプリ開発においても、 C:\\ 配下のファイルに対して、WSL上で go buildgo test などのコマンドを実行すると、おそらくファイルI/

    GoLand の WSL2 対応状況を見てみる | フューチャー技術ブログ
    mano-junki
    mano-junki 2024/07/12
    書きました!
  • go-smtp-mockをSMTPのモックサーバにして単体テストする | フューチャー技術ブログ

    はじめにTIG真野です。 バックエンドのアプリケーションの上で、メール送信するコードがある場合の単体テストをどう実現するか悩みました。 メールには、タイトル・文・From・TO・CC・BCCなど複数の設定値がありますし、SMTPサーバの接続情報もあります。これらを表現する構造体のモデルだけに絞った検証に留めることは、気が進みませんでした。時代はインフラレベルでダミーサーバを動かしモックする方向で動いています。SMTPでメール送信し、その送信結果をテストコード上で取得&検証する一連の流れを行って動作を確かめたいと思いました。 方法として、澁川さんのMailSlurperを使って6桁のコードの送信コードのテストをするで紹介されたMailSlurperを使うか迷いましたが、以下の点で牛刀だなと感じました。 メール送信するのはごく一部の機能(私の場合は1機能。今後増える見込みは現時点で見えなかっ

    go-smtp-mockをSMTPのモックサーバにして単体テストする | フューチャー技術ブログ
    mano-junki
    mano-junki 2024/07/10
    書きました!
  • AWS SDK for Go でエンドポイントの向き先を httptest.NewServer() にしてテスト | フューチャー技術ブログ

    はじめにTIG真野です。 AWS SDK for Go を使ったコードをクラウドサービスに依存無しでローカルにてテストするとき、次のような手法が考えられます。 外部アクセス部分をインターフェースにしてテスト時はモックコードに差し替えよく見る手法だが、テスト目的のみでインターフェースを作る手間があるSDKのmiddlewareを使用詳細はAWS SDK for Go V2でinterfaceのモック”無し”でテスト - 365歩のテックを参考くださいインターフェースの作成を抑えられるメリットがあるLocalStackなどのモックサービスを利用別プロセス(いわゆる、テストサイズはMedium)になるため。実行時間は1,2より増える。実環境に近い環境でテストできるため品質を上げやすい利点があるhttptest.NewServer() でモックするフューチャーで実績が多いのはLocalStackで

    AWS SDK for Go でエンドポイントの向き先を httptest.NewServer() にしてテスト | フューチャー技術ブログ
    mano-junki
    mano-junki 2024/07/09
    描きました!
  • 画像生成AIは医療の未来を創れるのか?(リバイバル) | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を一部ブラッシュアップしたものになります。 はじめに最近は鶏胸肉弁当のバリエーションを増やすことに情熱を捧げている、HealthCare Innovation Groupの山です。 今回はリバイバル企画ということで、2022年12月に書いた「画像生成AIは医療の未来を創れるのか?」の記事から、時代の流れを追ってセルフリバイバルします。 2年弱の時が過ぎ去ったわけですが、果たして画像生成AIは医療の未来を作れたのでしょうか?あるいは、より広い医療の未来を作れるようになったのでしょうか? 画像生成AI歴史医療における画像生成の話をする前に、直近の画像生成AIのトレンドを振り返ってみます。 以下に、代表的なものを一部だけ抜き出してみました。 時系列技術・サービス名称概要2013.12VA

    画像生成AIは医療の未来を創れるのか?(リバイバル) | フューチャー技術ブログ
  • アルゴリズムで実社会を捉える~評価関数の作り方~ | フューチャー技術ブログ

    記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事をフューチャー技術ブログに転載したものになります。 はじめに普段は会社のAIチームで特定のAI分野に属さない問題や、最適化問題を担当しています。 記事では、競技プログラミングにおける所謂ゲームAI系のコンテストを起点に、評価関数を作成する際に私が意識していることを紹介します。 そこから波及して、実社会の問題をアルゴリズムで解く際に、人間の感覚を如何に評価関数に落とせばよいのかについて言及します。 良し悪しを量ったことのないあなたへ記事は、ゲームAIコンテスト1を主とした、計算量爆発により最善手は求められない問題に取り組んだ経験がないという人に向けた記事です。学術的に体系立てられるようなものではありませんが、コンテストや実業務を通じて得た実践的な知見をお伝えできればと思います。 「ゲ

    アルゴリズムで実社会を捉える~評価関数の作り方~ | フューチャー技術ブログ
  • 書かせると、仕事の能力がすぐにわかる

    昔、面接官をやっていた時のこと。 我々は「どうすればコンサルタントの適性を持つ人材を集められるか」を追求していた。 長くても30分ほどの面接で、適切に候補者の選別を行うこと。 それは、「面接官の思いつきの質問」をするだけでは非常に難しかった。 我々は面接のやり方を試行錯誤した結果、「書かせること」で、かなり正確に候補者の能力を選別できることに気づいた。 一般的には面接では「話してもらうこと」を中心にすることが多いと思う。 が、我々はその場で「書いてもらう」ことにした。 * そのやり方は、以下のようなものであった。 まず、お題を出す。 多くは現場の状況を切り取ったもので、次のような趣旨のこと書かれたいくつかの「資料」と「質問」を渡す。 背景 オーガニックカフェ「ナチュラルテイスト」は、都市部で成功を収めている小規模カフェチェーンです。(財務諸表・組織図・現状調査表は別添資料)新鮮で健康的な

    書かせると、仕事の能力がすぐにわかる