並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 366件

新着順 人気順

golangの検索結果241 - 280 件 / 366件

  • 2年かけて個人で全く新しいSNSアプリを作ったお話し - Qiita

    こんにちは。歴10年のアプリエンジニア(Best of AppStore🏅受賞歴あり)です。 neeboor🗯という位置情報を使った新しいSNSアプリを作りました。 toC向け&コンテンツ系&モバイルアプリというサービスの特性上、最初からある程度高い完成度のサービスを提供しないとユーザーの手に取ってもらえないなと思い、UI/UX中心にかなりこだわって開発した結果、開発に2年以上かかってしまいました。 今回はサービスの紹介をしつつ、開発で苦労した点や工数をかけた点について記事にしたいと思います。 サービスの紹介 neeboor🗯は、「あなたの生活圏をもっとおもしろくするSNS (Make your living area hackable)」というコンセプトの位置情報系SNSアプリです。従来のローカル系サービス(=地域情報サイト、半径◯メートルでお店や友達探す系、出会い系、ナビ系、トラ

      2年かけて個人で全く新しいSNSアプリを作ったお話し - Qiita
    • TensorFlow で機械学習ゼロからヒーローへ

      .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

        TensorFlow で機械学習ゼロからヒーローへ
      • 検索クエリからファジーにキーワードを抽出する(スミス・ウォーターマン法に基づく実装) - Giftmall Inside Blog

        TL;DR 表記揺れがふくまれる検索クエリにマッチしたコンテンツを表示するための手法として、スミス・ウォーターマン法に基づくあいまい検索を実装して検索精度を向上しました。この手法は機械学習システムを使わないためメンテナンスコストが低く、その一方で速度面でも実用的な性能を持ちチューニングしやすいのが特長です。 はじめに こんにちは、ギフトモールで検索エンジンなどを開発している @samayotta です。 私たちギフトモールはプレゼントに特化したECサービスを提供しています。ギフトECにおいても、ユーザのニーズにマッチする商品を探すための検索機能は重要となります。例えば、弊社が運用しているギフトECサービスの一つであるギフトモールは、ユーザが入力する文字列の検索クエリから関連するキーワードを検出し、そのキーワードに紐づいているコンテンツ(商品、記事、etc.)を提示する検索機能を持っています

          検索クエリからファジーにキーワードを抽出する(スミス・ウォーターマン法に基づく実装) - Giftmall Inside Blog
        • いまさらGoでElasticache Redisの負荷・障害試験をがっつりしてみた

          こんにちは、 株式会社アプリボット、バックエンドエンジニアの小川詩織です。 今回はgolangで開発中の新規プロジェクトのため、ElasticacheRedisに関する検証を行いました。 かなり長くなってしまいましたが、参考にしていただければ幸いです。 以下、検証内容になります。 まえおき 検証のための実装にはgolangを用い、 go-redisによるElasticache Redisについての検証になります。 また、ゲームで良く活用される Ranking機能 の実装を想定した検証を行いました。 Ranking機能実装のためにRedisは ソート済みセット型 を用います。 Ranking機能についての想定なので、同一ランキングはkeyも同一になり、 Shardを増やしても負荷分散できないため全て Shard=1 として検証を行います。 また、Redisの 要素数は1000万件 用意しまし

            いまさらGoでElasticache Redisの負荷・障害試験をがっつりしてみた
          • Better gRPC な Connect に乗り換える - Go言語編

            デジタル認知行動療法アプリ Awarefy は、2022年4月からバックエンドシステムを Go + gRPC / Protocol Buffers を用いて開発・運用しています。現在進行中の Web アプリ開発のために、connect-go への切り替えが事実上必要になったため、grpc-go から connect-go へのマイグレーションを実行しました。 Connect とはそもそも Connect とはなにかですが、Better gRPC と理解するのがよいでしょう。 Getting started | ConnectConnect is a slim library for building browser- and gRPC-compatible HTTP APIs.ConnectConnect is a slim library for building browser- an

              Better gRPC な Connect に乗り換える - Go言語編
            • Concurrency in modern programming languages: Rust vs Go vs Java vs Node.js vs Deno vs .NET 6

              This is part of my "Concurrency in Modern Programming Languages" series Concurrency in modern programming languages: IntroductionConcurrency in modern programming languages: RustConcurrency in modern programming languages: GolangConcurrency in modern programming languages: JavaScript on NodeJSConcurrency in modern programming languages: TypeScript on DenoConcurrency in modern programming languages

                Concurrency in modern programming languages: Rust vs Go vs Java vs Node.js vs Deno vs .NET 6
              • Wantedly における Go 導入にまつわる技術背景 | Wantedly Engineer Blog

                (本記事は Go Conference 2019 Autumn にて無料配布した冊子『WANTEDLY TECHBOOK GoCon Edition vol.2』からの掲載です) 配布した冊子の前半では Go の導入にあたってどのような工夫をしてきたのかを紹介しました。そこに書かれていたように、新しいプログラミング言語を導入するにはそれなりの整備コストがかかります。それではなぜそこまでして Go を導入したのでしょうか。本記事では Go を導入した背景について説明していきたいと思います。 なぜ Go か技術的・事業的背景どのプログラミング言語を採用するかや、どのようなアーキテクチャを選定するかというようなことは非常に影響範囲の大きい決断になるため、会社全体の技術的・事業的なコンテキストと切り離しては語れません。そこでまずは Wantedly の技術的・事業的な背景について、この後の話をする

                  Wantedly における Go 導入にまつわる技術背景 | Wantedly Engineer Blog
                • Goの新しい構造化ロガーを体験しよう | gihyo.jp

                  logパッケージ Goには標準ライブラリとしてlogパッケージが提供されています。logパッケージで行えることはそう多くはありません。たとえば、デフォルトではログは標準エラー出力に出力されますが、log.SetOutput関数で出力先を変更できます。また、利用する関数によってログを出力した後の挙動をコントロールできます。たとえば、log.Print関数はログを出力するだけですが、log.Fatal関数はログ出力後にos.Exit(1)を呼び出します。log.Panicはログ出力後に出力したログと同じ文言を引数としてパニックを発生させます。 logパッケージでは、ログとともに関連するデータを出力したい場合は、log.Printf関数を用います。次のように、書式を指定して出力します。 log.Printf("request_url=%s request_method=%s", r.URL, r

                    Goの新しい構造化ロガーを体験しよう | gihyo.jp
                  • GolangとRustを使い分けるとしたらどのような観点で使い分けますか?

                    回答 (2件中の1件目) Go は GC を使う言語ですので、そもそも利用用途は絞られます。例えばハードウェアのドライバを書くのにはあまり向いていません。以下ではそれ以外の点についてお話します。 プログラムを作る時、完成形に向かって一度もそれることなくコードを書ける人はほぼいません。小さい断片のコードを書き、仮で動かしてみて、それを繋げてプログラムにすると思います。そういった場合の手数がどちらの方が大きいかという点で見るのも良いと思います。 例えば実装途中のコードにパフォーマンス上の問題が見つかり、並行処理をさせたいと思った時に多くのプログラミング言語ですと構造自体を大きく変更しない...

                      GolangとRustを使い分けるとしたらどのような観点で使い分けますか?
                    • VS Code の拡張機能を作ったけどもっと便利なやつがあったどころか標準機能にあった話 - Gunosy Tech Blog

                      こんにちは、ちょっと前に 3 ヶ月半の育児休業から復帰したくらさわです。 なんと今日で生まれてちょうど半年です!早い!! こちらの記事は Gunosy Advent Calendar 2021 の 16 日目の記事です。 昨日の記事は yamaYu さんの『EKS Managed Node Group でカーネルパラメータを変更する 』でした。 今回は Visual Studio Code (以下 VS Code) の拡張機能を開発した話 + α を書きたいと思います。 タイトルが全てです。 はじめに 作成した拡張機能 拡張機能作成の流れ セットアップ Yeoman と VS Code Extension Generator をインストール Yeoman を実行 プロジェクトを開く コード contributes.commands activationEvents activate 関数

                        VS Code の拡張機能を作ったけどもっと便利なやつがあったどころか標準機能にあった話 - Gunosy Tech Blog
                      • メルカリ : TensorFlow Lite で、気付きにくい便利機能をユーザーに提唱

                        .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                          メルカリ : TensorFlow Lite で、気付きにくい便利機能をユーザーに提唱
                        • Amazon Linux 2 の Dockerイメージから開発環境を作り Visual Studio Codeで接続してみる | DevelopersIO

                          Amazon Linux 2 の Dockerイメージから開発環境を作り Visual Studio Codeで接続してみる Amazon Linux 2のDockerイメージから開発環境として使うコンテナを作り、Visual Studio Codeで接続してみました。 コンテナは以下をインストール or 可能としてみました。 AWS CLIをインストールする。かつクレデンシャルはローカルのものをコンテナ内でも使えるようにする。 (開発言語として)Go言語をインストールする。 ローカルマシンとコンテナで共有できるフォルダを作成する。 以下、今回作成した「docker-compose.yml」と「Dockerfile」について書いていきたいと思います。 作成したもの ローカル環境について 本作業はMacで行いました。docker-composeとDockerがインストールされているものとしま

                            Amazon Linux 2 の Dockerイメージから開発環境を作り Visual Studio Codeで接続してみる | DevelopersIO
                          • Go の命名規則

                            本記事は Go Advent Calendar 2019 11 日目の記事です。 Go はシンプルな言語機能・シンタックスが特徴であり、命名規則にもそのシンプルさが表れています。 本記事では、公式や著名な Go エンジニア、OSS などから見られる Go らしい命名規則を紹介します。 今更なテーマかもしれませんが、意外にも公私共々で命名規則が意識されていないコードを時折見かけるので、自戒も込めて記します。 誤った内容があれば Twitter でご指摘いただければと思います。 パッケージ名簡潔にするEffective Go では、short, concise, evocative なパッケージ名が望ましいとされます。 これはパッケージ名に限らずほとんどあらゆる命名において役立つ指針だと思います。 また、「パッケージ名は一言で何をするかを表すエレベーターピッチだ」という Dave Cheney

                            • 『週末レイトレーシング』を読んだ - a.out

                              以前からレイトレーシングをやってみたいと思っていたので、正月の連休を使って『週末レイトレーシング』という本を読んだ。 C++ を使ってフルスクラッチでレイトレーサーを実装していくという内容で、タイトルの通り週末にやりきれる分量にまとめられている。 tatsu-zine.com レイトレーシングのついでに Go の練習もしたかったので、C++ のコードを参考に Go で実装した。 最後まで実装できる確証もないまま始めてしまったが、interface など必要な機能が一通り揃っていたおかげで問題なく実装できた。 ただ、C++ と違って演算子のオーバーロードができないため、ベクトル計算の部分は記述量が多くなってしまい少しつらかった。 以下はレイトレーサーが実装されていく過程。 画像 説明 まずは画像の出力。この本では PPM 形式の画像を扱う。 中身はプレーンテキストなのでプログラムで簡単に生成

                                『週末レイトレーシング』を読んだ - a.out
                              • 【30歳/完全未経験/独学】webアプリを作製しました【Golang, Next.js, MySQL, Docker, GitHub Actions CI, AWS Fargate on ECS】 - Qiita

                                完成物 ER図 画面遷移図 figma, 原寸画像 AWS構成図 ※備考※ GitHub Actions CIは構築済みです。 GitHub Actions CD, apiのprivate subnet化にも取り組んでいます。 EC2インタンスは通常時停止です。 技術選定理由 プログラミング、IT業界ともに未経験で着手し独学で作りました。 Go 比較対象:JAVA、Ruby、Python、PHP コンパイラ言語であり実行速度が高速である 静的型付けであり、コンパイル前にバグを発見しやすい 静的型付けかつ記述自由度が低いことから、以下2点を利点と考えた 開発を中長期まで続けた際にも、加筆・改修しやすい 他人のコードを読んだ際に学びやすい Javaも多少書いてみたが、簡素にかけるGoの方がしっくりきた SHOWROOM、IRIAM、Twitch、AbemaTVといった動画配信サービスにも採用さ

                                  【30歳/完全未経験/独学】webアプリを作製しました【Golang, Next.js, MySQL, Docker, GitHub Actions CI, AWS Fargate on ECS】 - Qiita
                                • Go言語の開発環境セットアップとサンプルプロジェクト作成 | DevelopersIO

                                  Javaのエンジニアだった私がGo言語を始める上で学んだ開発環境のセットアップ方法についてまとめていきたいと思います。 Go言語をインストール後サンプルプロジェクトを作成し、Goのプロブラムの実行/ビルド方法や各種周辺ツールをご紹介していきます。 はじめに Javaのエンジニアだった私がGo言語を始める上で学んだ開発環境のセットアップ方法についてまとめていきたいと思います。 Go言語をインストール後サンプルプロジェクトを作成し、Goのプロブラムの実行/ビルド方法や各種周辺ツールをご紹介していきます。 この記事がこれからGo言語で開発を始めたい方のとっかかりになれば幸いです。 ※他言語で開発経験がある方を想定しております。 動作環境 今回使用した動作環境は以下のとおりです。 PC : Mac M1(Apple Silicon)チップ OS : macOS Big Sir 11.5.2 Go

                                    Go言語の開発環境セットアップとサンプルプロジェクト作成 | DevelopersIO
                                  • golangで作るTLS1.2プロトコル

                                    はじめに 前回自作でTCPIP+HTTPを実装して動作を確認することができました。 しかしご覧頂いた方はおわかりのように、通信はHTTP=平文でやり取りされておりパスワードなど機密情報が用意に見れてしまう状態です。 普段我々がブラウザに安心してパスワードを入力しているのは通信がTLSで暗号化されているからです。ではそのTLSの仕組みはどうなっているのでしょう? 恥ずかしい限りですが僕はわかりません。😇😇😇 ということで以下を読みながらTLSプロトコルを自作してみてその仕組みを学ぶことにします。 マスタリングTCP/IP情報セキュリティ編 RFC5246 プロフェッショナルSSL/TLS 今回の実装方針です。 TLS1.2プロトコルを自作する 暗号化などの処理はcryptパッケージの関数を適時利用する tcp接続にはconnectを使う 鍵交換はまずRSAで作成する TLS_RSA_W

                                      golangで作るTLS1.2プロトコル
                                    • SREチームに入ってからの2年間にチームでやってきたこと - クラウドワークス エンジニアブログ

                                      この記事はクラウドワークス アドベントカレンダー6日目の記事です。 前日の記事は@bugfireのgithub-script は便利でした。GitHub Actionsでのちょっとした作業が捗りますね! SREチームの@kangaechuです。 気がつくと入社から2年が経ちました。2年前のAdvent Calendarでは ぴよぴよSREという記事を書くくらい何もわかっていませんでしたが、ようやく自分なりに動けるようになってきました。 この記事ではcrowdworks.jpのSREチームで、この2年間でどのようなことをやっていたのかを振り返ります。 SREチームの範囲は幅広く、いろいろなことをやっていました。今回はDocker化とTerraformの2つの取り組みについてご紹介します。 なんで1年じゃなく2年かって?去年はaws-vault についてのあれこれを書いたからだよ。 Docke

                                        SREチームに入ってからの2年間にチームでやってきたこと - クラウドワークス エンジニアブログ
                                      • Next.js + NestJS で新サービスを作った話 | EUPHORIA DEV BLOG

                                        はじめに はじめまして、ユーフォリア開発部エンジニアの山本未知彦です! このたび、ユーフォリアではJRFU(日本ラグビーフットボール協会)協力のもと、ラグビー選手の育成・強化のためのフィジカルデータベースシステムSCOTのリリースを行いました。(詳しくはこちらのプレスリリースをご覧下さい) 本記事では、SCOTのWebアプリケーション部分のアーキテクチャ紹介について、その技術選定理由と実際に開発してみて感じた良い点・気になった点をご紹介したいと思います。 SCOTのアーキテクチャ選定 まず技術選定の話をするに際して前提となるユーフォリア開発部の体制を説明します。当時、開発部にはエンジニアが2名しか在籍しておらず、SCOT開発に際しては業務委託の方々に協力いただいての開発となりました。そのため、技術選定においてはコードのレビューのしやすさと、仮にプロジェクト途中で人員の入れ替えが発生した場合

                                        • Nginx+NLBでHTTP/3環境をAWSに作ってみた | Developers.IO

                                          つい最近(2019/10)CloudFlareがQUIC対応のQuicheをNginxで利用出来るパッチを公開したりHTTP-over-QUICがHTTP/3に改名したりで、HTTP/3がかなりアツくなってきています。 このビッグウェーブに乗るべく、CloudFlareのQuicheパッチを適用したNginxを用意して、NLB越しでQUICを喋ってみたいと思います。 もこ@札幌オフィスです。 つい最近、(2019/10)CloudFlareがQUIC対応のQuicheをNginxで利用出来るパッチを公開したりHTTP-over-QUICがHTTP/3に改名したりで、HTTP/3がかなりアツくなってきています。 このビッグウェーブに乗るべく、CloudFlareのQuicheパッチを適用したNginxを用意して、NLB越しでHTTP/3を喋ってみたいと思います。 NLBを利用してHTTP/3

                                            Nginx+NLBでHTTP/3環境をAWSに作ってみた | Developers.IO
                                          • 使い込んで厳選したNeovimプラグインたちをご紹介します

                                            筆者はこれまで、定期的にVimのプラグイン紹介の記事を定期的に投稿していたのですが、2019年のVim AdventCalenaderに投稿したNeovimでモダンなPython環境を構築するv2(LSPを添えて)以降、ほとんどプラグイン紹介記事を執筆していませんでした。 他のかたの記載されるNeovim環境構築記事を見るたびに、筆者も自分の環境を紹介したいと常々思っていました。 ワシの使っているNeovimプラグインは200個近くあるぞ vim沼: NeovimのReact、TypeScript、Tailwind CSS用セットアップ Neovimでのフロントエンド開発環境 2022 しかしNeovim v0.5のリリース以降、増え続けるluaプラグインの洪水に飲まれ、筆者のNeovim環境はプラグインを入れては消しを繰り返し、安定しない日々を過ごしていました。 Neovim v0.5リ

                                              使い込んで厳選したNeovimプラグインたちをご紹介します
                                            • ChatOpsによる運用作業の自動化 - ZOZO TECH BLOG

                                              はじめに こんにちは、技術本部SRE部カート決済SREブロックの遠藤・金田です。 普段はSREとしてZOZOTOWNのカート決済機能のリプレイスや運用を担当しています。本記事では自作のコマンドラインツールをSlack + AWS Chatbot + AWS Lambdaを使用してChatOps化した事例をご紹介します。「日々の運用業務をコマンドラインツールを実装して効率化したものの今ひとつ広まらない」「非エンジニアにも使えるようにしたい」と考えている方の参考になれば幸いです。 目次 はじめに 目次 背景・課題 ChatOpsとは AWS ChatBotとは 構成 AWS ChatBot チャットツール側の設定 Slack Workflow Lambda 実装のポイント ChatBotのアクセス制御 User Roleの運用方法 ガードレールポリシー コマンドラインツールのLambda関数化

                                                ChatOpsによる運用作業の自動化 - ZOZO TECH BLOG
                                              • 役職はどうでもいい、“その時代のエンジニア”であり続けたい 「生涯現役」を志す、ディップ社CTOのエンジニア観

                                                活躍されているプロフェッショナルをお招きし、これからのキャリア、ビジネス論、仕事の考え方、組織論などを教えてもらう勉強会「Meets Professional」。3回目の今回のゲストは、ディップ株式会社 執行役員 CTO (最高技術責任者) 兼 商品開発本部システム統括部長の豊濱吉庸氏。もともと、エンジニアリングマネージャーはやりたくない中で、流れ的にマネージャーになった同氏が、成功や失敗、やらかした経験から気づきを共有しました。全2回。後半は、豊濱氏の仕事観について。前半はこちら。 エンジニアは常に学び、変化し続けなければならない 豊濱吉庸氏(以下、豊濱):次ですね。これはエンジニア観と言ったほうがいいのかもしれませんが、技術力はけっこう必要かなと思っています。僕が今まで言っている「エンジニア」はWeb ITのエンジニアなんですが、やはり常に学び、変化し続けることが必須かなと思っています

                                                  役職はどうでもいい、“その時代のエンジニア”であり続けたい 「生涯現役」を志す、ディップ社CTOのエンジニア観
                                                • コントリビュートで沢山の人が救われる。mattn氏が語る、好循環を実現するアウトプット活動の仕組み

                                                  コントリビュートで沢山の人が救われる。mattn氏が語る、好循環を実現するアウトプット活動の仕組み 2024年8月6日 mattn 大学卒業後、ソフトウェアハウスやSIerなどでソフトウェア開発に携わる。vi派生のテキストエディタVimの日本語化やプラグイン、Go言語などでOSS(オープンソースソフトウェア)の開発・コミュニティ運営に参加し、2019年からGoogle Developers Expert。2021〜2023年 GitHub Stars。著書に『みんなのGo言語』(2016年、2019年に改訂2版、技術評論社、共著)、『Go 言語プログラミングエッセンス』(2023年、技術評論社、単著)がある。関西在住。 X:@mattn_jp GitHub 前回はアウトプットのためのお題選びに際して、巷のエンジニアがよく選びがちな TODO アプリについてお話させていただきました。 いった

                                                    コントリビュートで沢山の人が救われる。mattn氏が語る、好循環を実現するアウトプット活動の仕組み
                                                  • TensorFlow 事例 : Coral を⽤いて回転寿司の会計を⾃動化するくら寿司

                                                    .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                                                      TensorFlow 事例 : Coral を⽤いて回転寿司の会計を⾃動化するくら寿司
                                                    • コーディング不要でGraphQLサーバが作れるPrismaを触ってみて可能性を感じた - SMARTCAMP Engineer Blog

                                                      スマートキャンプのエンジニア瀧川です。 弊社では昨年からエンジニア合宿を企画していまして、今年は10月15日から17日までの2泊3日で実施しました! 合宿のテーマや全体感は別記事でまとめるかなと思いますが、3日の限られた時間で1チーム(4人)1つのプロダクトを作り、成果として発表する必要がありました。 この条件だとあまり技術的なチャレンジもできないな...と感じてはいたのですが、どうしてもチーム内でGraphQL触りたい欲求が高まってしまったので、なんとか負荷があまりかからない形で導入できないか調べて見つかったのがPrismaというツールでした! 本記事ではPrismaを試した際のメモ、Tips、所感を書いていきます! (公式でPrisma2がアナウンスされてますが、ほぼ別物なので今回はPrisma1について書いています) (多分最終的な成果物の進捗は、慣れ親しんだツールを使った場合とほぼ

                                                        コーディング不要でGraphQLサーバが作れるPrismaを触ってみて可能性を感じた - SMARTCAMP Engineer Blog
                                                      • A new Go API for Protocol Buffers - The Go Programming Language

                                                        Joe Tsai, Damien Neil, and Herbie Ong 2 March 2020 Introduction We are pleased to announce the release of a major revision of the Go API for protocol buffers, Google’s language-neutral data interchange format. Motivations for a new API The first protocol buffer bindings for Go were announced by Rob Pike in March of 2010. Go 1 would not be released for another two years. In the decade since that fi

                                                          A new Go API for Protocol Buffers - The Go Programming Language
                                                        • Zigで簡単クロスコンパイル 2022 - k0kubun's blog

                                                          僕は以下の3つのツールを複数プラットフォーム向けにクロスコンパイルしてバイナリ配布しており、以下のように全て異なる言語で開発している。 Go: sqldef Rust: xremap mruby: mitamae クロスコンパイルに苦労している話をするとZigを使ってみたらいいんじゃないかと言われることがあり、周りでもZigが何となく流行り始めた気がするので、これらのツールに実際自分で使ってみてどうだったかという事例を紹介したい。 Zigとは Zigはそもそもプログラミング言語なのだが、C/C++とのinteropがやりやすい言語なようで、おそらくそれに必要でLLVMベースのC/C++ツールチェインが同梱されていて、しかもそれをDrop-In Replacement for GCC/Clangとして売りにしている。 僕はZig言語そのものにはそれほど興味はないのだが、クロスコンパイラとして

                                                            Zigで簡単クロスコンパイル 2022 - k0kubun's blog
                                                          • freee の権限管理基盤マイクロサービスの今を語ろう! - freee Developers Hub

                                                            はじめに こんにちは、freee の 権限管理基盤マイクロサービスを開発するチームでエンジニアリングマネージャーを務めている sentokun と申します。前職ではできることをできる限りやろうというスタンスで開発チームをリードし、アーキテクチャ設計やチームビルディングなどに取り組んでいました。その後 2022 年に freee へ入社し、freee で初めてエンジニアリングマネージャーの役割に。変わらずできることにできる限り取り組むスタンスでチームビルディングに従事しています。 この記事では、我々のチームが担当している権限管理基盤について語っていこうと思います! 権限管理基盤の成り立ち freee では、「スモールビジネスを、世界の主役に。」をミッションに掲げ、統合型経営プラットフォームの開発・提供を進めています。最近では freee Togo Panorama を公開するなど、統合に向け

                                                              freee の権限管理基盤マイクロサービスの今を語ろう! - freee Developers Hub
                                                            • GitHub Actions 上での Go の Docker ビルドを高速化する

                                                              どうも GitHub Actions 上で Docker ビルドを行うと時間がかかるなぁと感じていました。 かなり軽量の Go の Web アプリケーションを Docker イメージにしてプッシュするプロセスなのですが、全体で 3 分ほどかかっています。 今回はその速度改善を行ったので、得た知見を記事にしたいと思います。 最終的に、ケース次第では以下のような結果を出すことができました。 ※ケース = go のソースコードのほんの一部を変更してワークフローを実行する。 go.mod など依存関係に変化はない。 go build: 60秒 → 1秒 docker/build-push-action ステップ: 2分30秒 → 30秒 ワークフロー: 3分 → 1分 前提 go build は Dockerfile のステップで行っており、イメージとして以下のような内容になっています。 FROM

                                                                GitHub Actions 上での Go の Docker ビルドを高速化する
                                                              • DNS改ざん検知ツール(Slack通知付き)で検知速度を爆速にした - Code Day's Night

                                                                暑い夏2020、DNSと戯れていました。 レジストラの脆弱性でDNSが改竄されてサイトがハッキングされる事件を見て、これを防ぐ方法がなかったので7月末にDNS改ざん検知ツール NSchecker を作って公開しました。 blog.ichikaway.com 結論 忙しい方のために結論だけ先に。NSchecker Ver0.03ではDNS改竄検知速度が60秒程度に大幅改善しました!(Ver0.01では最大48時間の検知遅延) NScheckerのソースコードはこちら。 github.com 詳細 このツールはDNSのNSレコードが改竄されるとSlackで通知できる(slack以外も可能)ため便利だったのですが、NSレコードの参照がDNSキャッシュサーバだったため検知が最大で48時間ぐらいかかる問題がありました。(NSchecker Ver 0.01) 無いよりはマシなツール程度になってしまっ

                                                                  DNS改ざん検知ツール(Slack通知付き)で検知速度を爆速にした - Code Day's Night
                                                                • コードの複雑度をあげる Pull Requests を GitHub Actions で止めよう

                                                                  循環的複雑度が閾値を超えた Pull Requests に、自動的に変更をリクエストする 「コードの品質を、維持したいよーーー」 ということで、テストや Linter を GitHub Actions で実行している環境はよくあると思いますが、今回は 循環的複雑度 を継続的に計測して、閾値を超えた場合に自動的に Pull Request に対して Request Changes のレビューをしようという試みです。 Lizard この例では、Lizard を使用して CCN を計測します。 おそらく似たようなツールでも同様に実行することができると思います。 Lizard は Python で開発されている CCN 計測ツールです。(追記:シンプルに書いてしまいましたが、もちろん他の指標も計れます) 以下のようにサポート言語が多いので、大抵の場合で採用できそうです。 サポート言語 (1.17.

                                                                    コードの複雑度をあげる Pull Requests を GitHub Actions で止めよう
                                                                  • Goのtestを理解する in 2019 - My External Storage

                                                                    昨年Go1.10時点でのGoのテストについてまとめた。 Goのtestを理解する in 2018 #go まとめ記事を書いた後にリリースされたGo1.11からGo1.13に含まれるテスト関連の変更をまとめる。 TL;DR Go1.10までのテスト関連の機能、基本的な書き方は以下にまとめてある Goのtestを理解する in 2018 #go Goのtestingを理解する in 2018 - Examples編 #go Goのtestingを理解する in 2018 - quickサブパッケージ編 #go Goのtestingを理解する in 2018 - iotestサブパッケージ編 #go Go1.11に含まれるテスト関連の変更は以下の通り go test実行時のgo vetの挙動の修正 -memprofileオプションがデフォルトでアロケートしたメモリを記録するようになった Go1.

                                                                      Goのtestを理解する in 2019 - My External Storage
                                                                    • Goでスタイリッシュにエラーをラップする方法を学んだ - カミナシ エンジニアブログ

                                                                      こんにちは。カミナシ ソフトウェアエンジニアの @aoman です。 つい先日、Goで有名な@tenntennさんがConnpassで募集していたGopher塾#2に参加させていただきました。 tenntenn.connpass.com 大変勉強になりおすすめです!筆者が参加したのは第一回目ですが、二回目三回目と予定されているようなので、有料講義ではありますが気になる方はぜひ参加してみてください!学生さんであれば無料の抽選枠もあります。 その際に紹介されていたコードで、エラーのラップ関数があったのですが、これが「メッチャアタマイイ!!スタイリッシュ!!」と感動しました。そのコードは、Goの公式ページである https://go.dev/ のWebサイトを実装しているリポジトリ pkgsite 内の internal/derrors パッケージで実装されています(GitHubリポジトリはミラ

                                                                        Goでスタイリッシュにエラーをラップする方法を学んだ - カミナシ エンジニアブログ
                                                                      • GitHub Actions + AWS CodeBuildでPRごとの検証環境を作ってみた

                                                                        はじめに 必要に応じて検証環境の追加・削除などの管理をするのが面倒くさいので、PR作成時に検証環境を構築、PRマージ・クローズ時に検証環境を削除ができないか考えてみました。 今回の作成したGitHub Actions ワークフロー、Terraformなどはこちらのリポジトリにあります。 概要図 どのように実現したか 実現あたり、コンテナイメージのプッシュ、ECS サービスのデプロイはGitHub Actions、Terraformの実行はAWS CodeBuildで行うことにしました。 なぜTerraformの実行はCodeBuildを利用するようにしたかというと、CodeBuildはVPC内のリソース(今回の場合はAurora Serverless)にアクセスできるからです。 これによってアプリケーション、DBマイグレーション時に使用するMySQL ユーザーをTerraformで作成する

                                                                          GitHub Actions + AWS CodeBuildでPRごとの検証環境を作ってみた
                                                                        • The VS Code Go extension joins the Go project - The Go Programming Language

                                                                          The Go team 9 June 2020 When the Go project began, “an overarching goal was that Go do more to help the working programmer by enabling tooling, automating mundane tasks such as code formatting, and removing obstacles to working on large code bases” (Go FAQ). Today, more than a decade later, we continue to be guided by that same goal, especially as it pertains to the programmer’s most critical tool

                                                                            The VS Code Go extension joins the Go project - The Go Programming Language
                                                                          • TensorFlow 事例: から揚げを認識して弁当箱に入れる Foodly

                                                                            .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                                                                              TensorFlow 事例: から揚げを認識して弁当箱に入れる Foodly
                                                                            • DNSの脆弱性の歴史とクラウド

                                                                              This post is also available in: English (英語) 概要 時折、世界中の何十億台ものデバイスを危険にさらす、新たなDomain Name System (ドメイン ネーム システム - DNS)の脆弱性が発見されています。一般に、DNSの脆弱性は重大です。自分の銀行口座のWebサイトを閲覧したときに、DNSリゾルバが銀行のWebサイトのIPアドレスを返す代わりに、攻撃者のWebサイトのアドレスを返すことを想像してみてください。攻撃者のWebサイトは、銀行のWebサイトとそっくりです。それだけではなく、URLバーにも間違いは見当たりません。ブラウザが、銀行のWebサイトであると本当に認識しているためです。これが、DNSキャッシュポイズニングの一例です。 このブログでは、DNSについて説明するほか、過去の脆弱性から最近発見された高度なものまで、DNSキャッ

                                                                                DNSの脆弱性の歴史とクラウド
                                                                              • 3Dモデルの配信サーバーでRustとZstandardを採用して数倍のパフォーマンス向上を実現した - pixiv inside

                                                                                はじめに こんにちは、VRoid部所属のエンジニアのyueです。 この度VRoid Hubで3Dモデルの配信サーバーの見直しを行い、技術選定から始めRustとZstandard (zstd)を採用した実装に切り替えました。 結論から見るに従来のNode.js製サーバーと比べて以下のことを実現しました。 最大のレスポンス時間が 1.5 ~ 2.5s から 300 ~ 400msまで低下 平均のレスポンス時間が 700 ~ 800ms から 150 ~ 200msまで低下 サーバーのCPU使用率が ~ 50% から ~ 10%まで低下 docker image のサイズが ~ 346mb から ~ 21mb程度まで削減 配信されるファイルサイズが平均 10 ~ 20% 軽量化されました レスポンス時間 CPU使用量 (上からAVG(MAX), AVG, AVG(MIN)) メモリー使用量に関し

                                                                                  3Dモデルの配信サーバーでRustとZstandardを採用して数倍のパフォーマンス向上を実現した - pixiv inside
                                                                                • Chrome の User-Agent 文字列削減のオリジン トライアルと今後の計画について

                                                                                  .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                                                                                    Chrome の User-Agent 文字列削減のオリジン トライアルと今後の計画について