並び順

ブックマーク数

期間指定

  • から
  • まで

681 - 720 件 / 2480件

新着順 人気順

goの検索結果681 - 720 件 / 2480件

  • golangで便利ツール作ろうと思ったらos/execでハマった話 - Qiita

    はじめに PoCの初期段階などで、いくつかのシステムを組み合わせて動作させるような場面では、 リポジトリが分散し、開発者ごとに違う言語で小規模なシステムを構築していることがあります。 そんな中で、動作確認をしたり、不具合を再現させたりする際、以下のような手作業が発生していました。 1. システムAを実行してCSVを吐く 2. CSVをシステムB直下にコピーする 3. システムBを実行して結果を得る プログラマーの三大美徳の怠惰担当の私は、手動で何かをすることが嫌いなので、自動化するツールを作成していきます。 シェルスクリプトで書いても良いのですが、実行するデータパターンが複雑だったり、分岐したりすると面倒なので、私はgolangで作成することが多いです。 この記事では、そんな中でハマった出来事と、回避方法をご紹介します。 根本解決していないものが多いので要注意&コメントお待ちしています。

      golangで便利ツール作ろうと思ったらos/execでハマった話 - Qiita
    • GitHub - knsh14/uber-style-guide-ja

      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

        GitHub - knsh14/uber-style-guide-ja
      • 良い加減Goでmysqlに接続するときにDSNを直書きするのはやめない?

        よく見るDB接続例 Go言語を用いてmysqlに接続する際、DBの情報を文字列で直書きしているケースを良くみる import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main(){ db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/db?charset=utf8&parseTime=true") // 以下省略 } import ( "database/sql" "time" "github.com/go-sql-driver/mysql" ) func connectDB() *sql.DB { jst, err := time.LoadLocation("Asia/Tokyo") if err != nil { // エラーハンドリ

          良い加減Goでmysqlに接続するときにDSNを直書きするのはやめない?
        • GraphQLのN+1問題を解決する DataLoaderの使い方 - 一休.com Developers Blog

          こんにちは。宿泊事業本部の宇都宮です。この記事では、GraphQLサーバ実装時に遭遇するN+1問題と、その解決のために使えるライブラリを紹介します。 フィールド単位でresolverを用意する N+1問題 GoのDataLoaderライブラリ DataLoaderの仕組み DataLoaderのサンプルコード DataLoaderとDataDog APM むすび 採用情報 フィールド単位でresolverを用意する GraphQLでは、クライアントのクエリに応じてオンデマンドに結果を取得できます。 たとえば、以下のクエリを投げると… { accommodation(accommodationId: "00001050") { name } } 以下のようなレスポンスが取得できます。 { "data": { "accommodation": { "name": "マンダリン オリエンタル 東

            GraphQLのN+1問題を解決する DataLoaderの使い方 - 一休.com Developers Blog
          • Go言語でのgRPCコード生成(2020年10月以降版)|Dentsu Digital Tech Blog

            でご紹介したGo言語でのgRPCコード生成の状況の続報(2020年末)をお伝えしたいと思います。 概要としては前回の記事に記載した通りで ・Protocol Buffer側のレポジトリは golang/protobuf から protocolbuffers/protobuf-go に移行 ・gPRC側のレポジトリのgrpc/grpc-goに新たにprotoc-gen-go-grpcコマンドができた なのですが、以下が追加になりました。 ・gPRC用のコードを生成するには Protocol Buffersのメッセージやシリアライズに protocolbuffers/protobuf-go のprotoc-gen-go、gPRCのサーバ/クライアントに grpc/grpc-goのprotoc-gen-go-grpc、と両方を使うことになった 以降で詳細をご紹介します。 経緯2020年3月のpr

              Go言語でのgRPCコード生成(2020年10月以降版)|Dentsu Digital Tech Blog
            • 『よみがえるMakefile』という祈り、もしくはJuly Tech Festa 2021 登壇感想 - じゃあ、おうちで学べる

              概要 7月18日に July Tech Festa 2021 が開催されて『よみがえるMakefile』 というタイトルで15:20 から登壇した。今さら聞けないIT技術 というお題だったので今さら聞けないけど… みたいなものが議論の種になればとお題をMakefileに決めました。 docs.google.com connpass はこちら techfesta.connpass.com 文章として大きく離散してるので雑多なまとめになります。 タイムアポン 完全に終わっていて一連のスライドからGo言語のMakefileを育てていくエピソードを登壇資料から抹消した。 正直、資料の中にあったものをシュッとMakefileに落とし込むだけなので特定の言語やツールに依存するかな?と思って排除してしまいました。 何故か、40分だと思ってたので20分資料に再編集した。— nwiizo (@nwiizo)

                『よみがえるMakefile』という祈り、もしくはJuly Tech Festa 2021 登壇感想 - じゃあ、おうちで学べる
              • Clean Architectureを読んだまま実装してみた(TypeScript, Go)

                Why? Clean Architectureを通読してみたが、抽象論が多いのでやっぱり書いてみないとな、と思った次第。 いろいろな方のClean Architectureの記事があるものの、当方Typescripterなので馴染む言語で写経すると理解が深まるだろう。 Assumption フレームワーク・ライブラリ非依存。Clean Architecture の構造だけ再現するので、サーバフレームワークやORMなどは使用しない。 命名はClean Architectureに出てきたままを心がける。一部、原文でも表現がブレているのは都合よく拝借。 Clean Architecture Overview Clean Architectureといえばこの図。 最重要エンティティであるビジネスロジックを中心に、アプリケーションロジック、インターフェースアダプター、フレームワークやDBの順で依存方

                  Clean Architectureを読んだまま実装してみた(TypeScript, Go)
                • Goなどでクロスコンパイルしたワンバイナリなソフトウェアを最小工数でdeb/RPMパッケージにしてくれるNFPMが便利 - Copy/Cut/Paste/Hatena

                  みなさんはdeb/RPMパッケージを作ったことはありますか? 私はtcpdpのパッケージ作成ではじめて作りました。具体的にはここらへんです。 tcpdpはlibpcapに依存していることもあり、DockerでUbuntu/CentOSの環境を作ってその上でコンパイルして、合わせてdeb/RPMパッケージ化までするようにしています。 本来Goはクロスコンパイルができるので、コンパイルしてできたバイナリをdeb/RPMパッケージにできればいいわけです。 ただ、意外にdeb/RPMパッケージをするための前準備が面倒です。 debパッケージであればcontrolファイルを書かないといけないですし、RPMパッケージであればspecファイルを書く必要があります。それぞれ覚えているほど書く機会はないので毎回ググるはめに。 ビルド方法にもお作法があります。これもあまり覚えていませんがディレクトリ構成などい

                    Goなどでクロスコンパイルしたワンバイナリなソフトウェアを最小工数でdeb/RPMパッケージにしてくれるNFPMが便利 - Copy/Cut/Paste/Hatena
                  • Go言語のCLI作成ツールであるcobra のシェル補完の生成があまりにも簡単 - じゃあ、おうちで学べる

                    概要 Goでコマンドラインツールを作成する場合の選択肢としてspf13/cobraがあると思いますが、遂にv1.2.0 がリリースされました👏👏👏。大きな機能追加として completion が追加され、大枠の使い方とシェル補完の生成についてこのブログではやっていくメモ書きになってます。それ以上に言及しようと思ったのですが完全に体力不足でーす。 やっていく install CLIがあるので利用するさまざまな日本語での入門記事がcobra には存在するので詳しくはその辺を参照してください。ちなみに、公式ドキュメントが最高で公式ドキュメントに誤りがあればコントリビューションのチャンス。 $ go get -u github.com/spf13/cobra って思ったら雑な備忘録を自分も書いてましたが一切の参考にならん syu-m-5151.hatenablog.com init コマンド

                      Go言語のCLI作成ツールであるcobra のシェル補完の生成があまりにも簡単 - じゃあ、おうちで学べる
                    • Rustの標準ライブラリは小さいのか? - Qiita

                      はじめに 「Rustの標準ライブラリは小さい」と言われます。実際、正規表現や乱数など多くの言語で標準ライブラリに入っているようなものが、Rustの標準ライブラリにはありません。こうなっている理由は「標準ライブラリに入っていなくても依存関係を簡単に追加できる」「後方互換性を保ちながら大きな標準ライブラリを維持するのは難しい」といったことが挙げられます。もちろん標準ライブラリが小さいと不便なこともあり「サードパーティライブラリの選択が難しい」というのはよく言われるところです。 ところでRustの標準ライブラリは実際に小さいでしょうか?小さいというと、どうしても低機能・できることが少ないというイメージになりますが、個人的な印象としては「Rustの標準ライブラリはカバー範囲は狭いが高密度」というものです。 あまりこういう観点で書かれたものは見たことがないので、この記事ではRustの標準ライブラリの

                        Rustの標準ライブラリは小さいのか? - Qiita
                      • Into the Sunset: Bintray, JCenter, GoCenter, and ChartCenter

                        Deliver Trusted Software with Speed The only software supply chain platform to give you end-to-end visibility, security, and control for automating delivery of trusted releases. Bring together DevOps, DevSecOps and MLOps teams in a single source of truth.

                          Into the Sunset: Bintray, JCenter, GoCenter, and ChartCenter
                        • Goでプログラムを終了するときのお作法 - My External Storage

                          Goにはいくつかプログラムを終了させる手段が存在する。 プログラムを終了させるときにどれを選べばいいか調べてみた。結論から言うとmain関数内でdeferを使わずos.Exit関数を呼ぶ。 TL;DR Goで意図的にプログラムを終了させることができる処理は次のとおり https://golang.org/pkg/os/#Exit https://golang.org/pkg/builtin/#panic https://golang.org/pkg/runtime/#Goexit main関数内でdeferを使わずos.Exit関数を呼ぶのが一番良いと思う panic関数は終了コードを明示的に決めることができない 一方ですべてのゴルーチンを停止してくれるらしい runtime#Goexit関数をmain関数で呼ぶのは行儀が悪そう Calling Goexit from the main g

                            Goでプログラムを終了するときのお作法 - My External Storage
                          • プログラミングにおける「納得」と『Goならわかるシステムプログラミング 第2版』 - golden-luckyの日記

                            「納得」欲 パソコンやブラウザ、あるいはスマホで使うアプリケーションを作っているとき、自分がやっている「プログラミング」という行為にどこまで「納得」できているでしょうか? 「プログラミングという行為への納得」、ちょっと耳慣れない概念ですよね。実をいうと、さっきこの記事を書き始めたときに思いつきました。プログラムを書いていると、エラーみたいな露骨な躓きがない場合でも、なんかもやもやすることがあります。このもやもや、少なくとも自分は、以下のような側面で一定の「納得」に至っていないことが原因であるような気がしています。 アプリケーションの仕組みをデータ構造やアルゴリズムの言葉で説明しきれるぞ、という側面での「納得」 意図通りの挙動になることに設計レビューやユニットテストや動作検証を通じて確信が持てるぞ、という側面での「納得」 コードがコンピュータやネットワークという物理的な装置の上でどう処理され

                              プログラミングにおける「納得」と『Goならわかるシステムプログラミング 第2版』 - golden-luckyの日記
                            • Goアセンブリの書き方 - Plan 9とGo言語のブログ

                              Goアセンブリの書き方からビルド方法までを一通り調べました。Goアセンブリを書いたことのない人がコードを書いてリンクできるところまでは一通り書いているつもりですが、Goアセンブリの言語仕様を網羅してはいないので、興味があれば最後に書いた参考情報も読んでみてください。 この記事ではGo 1.16.xでAMD64命令セットを扱いますが、具体的な命令や値のサイズ以外は、他のアーキテクチャを使う場合でもだいたい同じだと思います。 アセンブリコードの書き方 GoのアセンブリはPlan 9アセンブリを概ね踏襲していて、AT&T記法です。整数を受け取って、それに2を加算した値を返す関数func add2(i int32) int32を書いてみましょう。アセンブリのコードは.sファイルに書きます。また、アセンブリはアーキテクチャに強く依存するので、Goの習慣にしたがってファイル名にはアーキテクチャ名も入れ

                                Goアセンブリの書き方 - Plan 9とGo言語のブログ
                              • [Go] レイヤードアーキテクチャの階層構造を守らないimportを警告するlinterを作った - My External Storage

                                Goでクリーンアーキテクチャ等のレイヤードアーキテクチャを実装するための静的解析ツールを作った。 「webhandlerパッケージからusecaseパッケージを使わずに直接domainパッケージを使わないで!」というような、やってほしくないimportをエラーにできる。 https://github.com/budougumi0617/layer TL;DR クリーンアーキテクチャなどのレイヤードアーキテクチャでは、利用できるパッケージに制限がある レイヤー間の依存関係は一方向のみ 同じ層、あるいは1つ下の層のパッケージしか利用してはいけない https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html Goは循環importができないので、自然に単方向依存は満たしやすい しかし、層を飛び越して、2

                                  [Go] レイヤードアーキテクチャの階層構造を守らないimportを警告するlinterを作った - My External Storage
                                • Go言語で日時と文字列を相互変換するライブラリtimefmtを作りました - プログラムモグモグ

                                  Go言語でstrftime・strptime相当の関数を提供するライブラリを実装しました。 t, _ := timefmt.Parse("2020/07/24 09:07:29", "%Y/%m/%d %H:%M:%S") fmt.Println(t) // 2020-07-24 09:07:29 +0000 UTC str := timefmt.Format(t, "%Y/%m/%d %H:%M:%S") fmt.Println(str) // 2020/07/24 09:07:29 str = timefmt.Format(t, "%a, %d %b %Y %T %z") fmt.Println(str) // Fri, 24 Jul 2020 09:07:29 +0000 なぜ作ったか Go言語の標準ライブラリには日時と文字列を変換する関数がありますが、2006年1月2日の15:04

                                    Go言語で日時と文字列を相互変換するライブラリtimefmtを作りました - プログラムモグモグ
                                  • Big Sky :: Go の struct は小さくできる(fieldalignment のススメ)

                                    動的型付けプログラミング言語や、class を持つようなプログラミング言語を使う場合、そのフィールドメンバの定義順などを意識する事は少ないかもしれません。 Go は struct という、C言語が持っている構造体と同じ様にメモリ配置され、構造体そのものをレシーバとして、メソッドを定義しつつプログラミングを行います。struct はデータ構造そのものを示し、それが大きくなるにつれ、当然ながらメモリ使用量も多くなります。 さて、例えば以下のコードを実行すると、struct 100 個分のサイズは幾らになるでしょうか。 package main import ( "fmt" "unsafe" ) type Account struct { TimeZone struct { Name       string `json:"name"` UtcOffset  int    `json:"utc_

                                      Big Sky :: Go の struct は小さくできる(fieldalignment のススメ)
                                    • Go言語に出したプロポーザルが通った:{bytes,strings}.ContainsFuncの追加 - プログラムモグモグ

                                      今年の夏にGo言語に以下のようなプロポーザルを出していたのですが、それが先ほど承認されました。標準パッケージの関数追加になります。 proposal: bytes, strings: add ContainsFunc · Issue #54386 · golang/go · GitHub Go言語のstringsパッケージとbytesパッケージには、文字列から文字や部分文字列を探す関数がいくつかあります。 探す文字の位置を返す関数、最後から探す関数、そういう文字が含まれるかどうかを返す関数を表にまとめると、次のようになります。 Find what? Index* LastIndex* Contains* substr string Index(s, substr string) int LastIndex(s, substr string) int Contains(s, substr s

                                        Go言語に出したプロポーザルが通った:{bytes,strings}.ContainsFuncの追加 - プログラムモグモグ
                                      • 生きているのならシェルスクリプトにだってなってみせる、そうPerlならね - Sexually Knowing

                                        シェルスクリプトを書くのをやめる - blog.8-p.info これを見て: 夢の可能性が高くなってきたんですが、Perlのプラグマかなにかで、シェルスクリプトと混在できる……というか、存在しないサブルーチン呼び出しを外部コマンド呼び出しにするやつありませんでしたっけ— aereal / 青木華絵 (@aereal) 2021年9月16日 まじだ... https://t.co/IF6SyBR4o8— Kazuyoshi Kato (@kzys) 2021年9月16日 Shell - run shell commands transparently within perl - metacpan.org use Shell qw(cat ps cp); $passwd = cat('</etc/passwd'); @pslines = ps('-ww'), cp("/etc/passwd"

                                          生きているのならシェルスクリプトにだってなってみせる、そうPerlならね - Sexually Knowing
                                        • GoConference2024の資料が集まるスレ #gocon

                                          これはサマリ(ここを更新していきます)情報提供(コメント)歓迎!! イテレータによってGoはどう変わるのか Dive into gomock Data Race Detection In Go From Beginners Eye Go1.21から導入されたGo Toolchainの仕組みをまるっと解説 Cleanup handling in Go Custom logging with slog: Making Logging Fun Again! Goにconst型修飾を期待しなくてよい理由 GoのLanguage Server Protocol実装、「gopls」の自動補完の仕組みを学ぶ バイナリを眺めてわかる gob encoding の仕様と性質、適切な使い方 Unified Diff 形式の差分から Go AST を構築して feature flag を自動計装する Mapのパ

                                            GoConference2024の資料が集まるスレ #gocon
                                          • VSCode の Go extension でよく利用するコマンド 7選 | フューチャー技術ブログ

                                            TIG DX チーム所属の多賀です。また Go についての記事を書きます。 最近 Go 開発本体への加入が発表されるなど、盛り上がっている VSCode の Go extension ですが、私も基本は VSCode + Go extension を利用して開発しています。 開発する際によく利用するコマンドがいくつかありますので、まとめました。 環境 VSCode: 1.45.1 Go extension: 0.14.4 補完やその他機能を利用するために Go の Language Server Protocol の実装である gopls を利用しています。 https://github.com/golang/tools/tree/master/gopls Go extension 設定の go.useLanguageServer を true にしています。 その他の設定は以下の公式設定

                                              VSCode の Go extension でよく利用するコマンド 7選 | フューチャー技術ブログ
                                            • Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita

                                              この記事は MicroAd Advent Calendar 2022 の12日目の記事です。 「Goのポインタは8バイトだから、ちょっとした構造体を値渡しでコピーするよりポインタで渡した方が早くなる」 長らくそう思い込んでいたのですが、以下の記事でポインタ渡しには意外なデメリットが多いことを知り、誤解だと気づきました。 この記事では自分なりにポインタのデメリットをまとめつつ、ポインタ渡しで本当に良いのかを確認すべきパターンを紹介しようと思います。 ポインタが実は高価な理由 ポインタが指す値にアクセスする際にnilかどうかのチェックが必ず入る ポインタがnilの場合、Goはpanic()をおこす必要があるため ポインタは動的メモリアロケーションの原因になりがち ポインタが指す値はヒープ領域に置かれがち(絶対ではないけど一般的に多い) ヒープ領域は確保にまとまったメモリの検索、解放にGCが必要

                                                Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita
                                              • 『Goならわかるシステムプログラミング 第2版』の発売を開始しました

                                                ご来店いただきありがとうございます。 本日より『Goならわかるシステムプログラミング 第2版』が販売となりましたのでお知らせいたします。 本書は、2017年10月に発行された『Goならわかるシステムプログラミング』の改訂版です。改訂にあたり改めて全体を見直し、加筆修正や古い情報の更新のほか、プロセスの実行に関する説明を中心に構成の見直しをしています。また、コンピュータシステムを扱う際に避けて通れないにもかかわらずまとまった説明があまりないシェルやデバッガに関する解説を追加しています。 なお、第1版を直販サイトでお買い上げいただいた方は、カートに入れてクーポンコード「Go2」を指定することで、第2版を15%オフでお求めいただけます(2022年3月末までを予定)。第1版の購入に利用されたメールアドレスでの購入が必要になります。 PDF(紙書籍にも付いてきます)は本日よりダウンロード可能、紙書籍

                                                  『Goならわかるシステムプログラミング 第2版』の発売を開始しました
                                                • Goでステガノグラフィやってみる

                                                  こんにちは、痩せるが口癖の3年目の終わりが近いエンジニアの井村です。 ゲーム事業グループ内でGo勉強会を隔週でやっていまして第4回目の時に担当になったのでその内容を書こうと思います。 勉強会 まず、前提として私のGo言語の経験は勉強会時点で「スターティングGo言語」のChapter5までの基本構文を読んだ程度です。 今回の勉強会ではステガノグラフィをテーマとしました。 画像データに別のデータ(画像・文字列)を埋め込み、その方法を参加者に教えてそれを復元してもらいました。 ステガノグラフィとは ステガノグラフィはデータ隠蔽の一種で画像、音声、テキストなどのデータを別のデータに隠す技術のことです。 今回の勉強会ではLSBステガノグラフィと呼ばれる方法を使いました。 LSB法 各RGB値の最下位ビット(LSB)にデータを埋め込む方法。 RGB値の最下位1bitを使う場合、1ピクセルに3bit使う

                                                    Goでステガノグラフィやってみる
                                                  • Serverspec から Goss に移行してサーバーのテストが 60 秒から 3 秒に! | 株式会社ヌーラボ(Nulab inc.)

                                                    TypetalkのSREの二橋です。今回は、Gossの紹介をしたいと思います。 TypetalkではサーバーのテストにServerspecを利用していました。機能的には申し分なかったのですが、サーバーの台数/環境/テストの項目が増えるにつれて、ツールの実行速度やメンテナンス性に改善が必要になりました。Gossに乗り換えることで問題が解消されました。 サーバーのテストとは? サーバーのテストとは、サーバーの状態が意図したものになっているか検証するものです。例えば、以下のような項目を検証します。 意図したパッケージのバージョンがインストールされているか? 意図したサーバーと通信できるか? 意図したポートが待ち受けているか? 意図したユーザー/グループが存在するか? 意図したプロセスが動作しているか? 意図したファイルに指定した記述が存在するか? Serverspecで困っていたこと ①テスト実

                                                      Serverspec から Goss に移行してサーバーのテストが 60 秒から 3 秒に! | 株式会社ヌーラボ(Nulab inc.)
                                                    • Golang の Generics で使いたいものは大体 samber/lo にあった話 - Qiita

                                                      はじめに 本記事は Go Advent Calendar 2022 の18日目の記事です。 Generics を使った関数でやりたかったことが、samber/lo に大体揃ってたという話をします。 すでに自前で書いてた関数もいくつかあったのですが、このライブラリを知り置き換えていったという体験談です。 ※結果的に「samber/lo のなかでこの辺り使えるかも」というものを私の独断と偏見でピックアップする記事になってます。 samber/lo とは samber/lo は 16日目のアベンドカレンダーの記事 でも取り上げられていまして、そこから説明を引用させていただきました。 samber/loは,多種多様な便利関数を提供するパッケージです。 JavaScriptのライブラリのLodashライクであるとREADMEにも記載があります。 個人的には大好きなパッケージでして,Map,Filte

                                                        Golang の Generics で使いたいものは大体 samber/lo にあった話 - Qiita
                                                      • play-with-go.dev

                                                        Other questions or comments? Find us in the play-with-go channel at the Gopher's community slack. Welcome to Play with Go A series of hands-on, interactive, browser-based guides that introduce the tools required to work with the Go programming language.

                                                          play-with-go.dev
                                                        • GoがApple Siliconにネイティブ対応したのでベンチマークをとってみました | フューチャー技術ブログ

                                                          Goアドベントカレンダーその5です。 ARMなMacが出るとWWDCで発表されてから首を長くしてまっていて、発表と同時にMacBook Proを買って、アプリケーションのARMネイティブ対応がされているかいろいろインストールして試してみたりしています。まだ発売されて2週間足らずですが(といっても、みんな開発キットをつかって以前から準備したようですが)、動作しているアプリケーションは多いです。発売後にも、Erlang、Node.jsあたりはmasterブランチにパッチが入りました。Goも、昨日パッチがマージされました。 業務利用が多い言語のうちの一つということで、手元のPCで軽くベンチマークをとってみました。使った機種は3つです。 2020モデルのM1のMacBook Pro 2020モデルの10th Gen Core i5のMacBook Air Ryzen 9 4900HSのASUSのZ

                                                            GoがApple Siliconにネイティブ対応したのでベンチマークをとってみました | フューチャー技術ブログ
                                                          • ミラティブの社内勉強会の紹介 - Mirrativ Tech Blog

                                                            みなさまこんにちは。@n0mimonoとshirakawaです。今日はミラティブの中で行われている社内勉強について紹介させていただきます。社外に公開しながら社内にも宣伝をする一石二鳥の作戦です。 ミラティブではエンジニアが自身やメンバーのために勉強会や交流会を開くことを奨励しています。 tech.mirrativ.stream その一つとして、毎週木曜日に行われている勉強会を紹介します。 勉強会 以下、社内文書からの転載になります。 なぜやるのか 新しい知識の獲得・技術レベルの向上のため ディスカッションを通してチームビルディング やらないこと 事前資料準備等: 参加者に負担がかかるため どうやるのか 本を決めます 参加者で読みたかった・読んでみたかった本を出す 投票によって選ぶ 週一回、45分集まる曜日・時間(カレンダーは1時間抑える)を決めます 集まった人で本を順番に音読していきます

                                                              ミラティブの社内勉強会の紹介 - Mirrativ Tech Blog
                                                            • ebpf-goによるLinuxカーネルトレース入門

                                                              ebpf-goによるLinuxカーネルトレース入門 ebpf-goを使用したLinuxカーネルトレース(fentry)について紹介します。 ebpf-goは、eBPFのGo向けライブラリです。このライブラリは、libbpfに依存せず(cgoを使用せず)にeBPFプログラムとデータのやり取りが可能であるため、ポータビリティが高くGo言語に適したeBPFライブラリとなります。 fentryは、カーネル関数のエントリポイントにプログラムをアタッチするためのBPFプログラムタイプです。簡潔に言うと、カーネル関数にフック処理を行うことができます。 GitHub: ebpf-go(cilium/ebpf) 公式ドキュメント: The eBPF Library for Go 本記事ではebpf-goのexamples内のtcprttを基に、ebpf-goの開発方法についても説明します。 前提条件として、

                                                                ebpf-goによるLinuxカーネルトレース入門
                                                              • フリーランスのPythonエンジニアが実践する、OSS開発を起点としたキャリア形成 | Offers Magazine

                                                                Pythonとの出会いとOSSのきっかけ はじめまして、フリーランスエンジニアの服部(@hhatto)です。 現在は、ブロックチェーン関連のWebアプリケーション開発やフォント制作販売会社での研究開発・技術顧問をしています。 業務外では、OSSの開発を行っており、Python/PHP/C/Go/Rustで作成したライブラリをオープンソースとして公開しています。特にautopep8というPythonのコード整形ツールは3500以上のStarを集めました。 https://github.com/hhatto/autopep8 ▲autopep8 今回は、OSSに打ち込む理由やメリットを中心に、OSSを起点にしたキャリア形成について紹介できればと思います。 Pythonとの出会い 私がPythonに触り始めたのは、大学時代、『How to Become a Hacker』というサイトを見て影響を

                                                                  フリーランスのPythonエンジニアが実践する、OSS開発を起点としたキャリア形成 | Offers Magazine
                                                                • go.modについての陥りやすい誤解 - ぽよメモ

                                                                  はじめに go.modにおけるGoのバージョン指定 依存先のgoディレクティブの方が古いバージョンを指す場合 依存先のgoディレクティブの方が新しいバージョンを指す場合 goのバージョンよりgoディレクティブが先行する場合 goディレクティブまとめ 1.21以降のgo.modにおけるGoのバージョン指定 require時のバージョンの指定 Minimal version selection モジュールのバージョン replaceの波及先 依存先が別のパスにreplaceしている場合 go.sum まとめ はじめに これはあくあたん工房アドベントカレンダー 2021 11日目の記事です。 ポエムを書いていたら気分が暗くなったので、消して自分の過去のメモを記事にすることにしました。そんな解釈するやつおらへんやろwwと是非笑って読んでください。 2023-09-19追記:Go 1.21からいくつ

                                                                    go.modについての陥りやすい誤解 - ぽよメモ
                                                                  • Go言語で定数として扱いたいmapを毎回アロケートさせて性能劣化した話 | フューチャー技術ブログ

                                                                    はじめに失敗談をテーマにした連載の3本目です。 TIG DXユニットの原です。21年度4月に新卒で入社し、2年目となります。 参加しているプロジェクトで、数百万件のデータを処理する機能を担当したことがありました。 本記事はその際の失敗と、その失敗から得た経験を共有するため、執筆しました。 内容のサマリ 本来フィールドで宣言すべき定数的に扱いたい変数を、関数内で毎回生成しreturnしてしまったので呼び出す度に毎回アロケートが発生し性能劣化してしまった Benchmark Test、Profiling、Escape Analysisでどういう挙動になってしまっていたか調べてみた 内容本記事では、まずどのような状況であったかを説明し、どのような順番で問題を解決したかの順で説明します。 主にGoのテストとProfilingに関した内容です。 Goのテストについての関連記事として、Goのテストに入

                                                                      Go言語で定数として扱いたいmapを毎回アロケートさせて性能劣化した話 | フューチャー技術ブログ
                                                                    • GitHub - tellerops/teller: Cloud native secrets management for developers - never leave your command line for secrets.

                                                                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                        GitHub - tellerops/teller: Cloud native secrets management for developers - never leave your command line for secrets.
                                                                      • GitHub Pagesをメタデータサーバとする簡易インストーラー「binq」をGo言語で作った - progrhyme's tech blog

                                                                        どんなツールか 使い方 なぜ作ったか? メタデータとメタデータサーバ 概念 メタデータの更新について 利用例 今後の予定 パッケージ管理機能 URLフォーマットの自動生成 その他 まとめ 参考 免責事項 ※2020-07-13追記: 各リポジトリをGitHub Org https://github.com/binqry に移しました。*1 どんなツールか ツールのリポジトリ: https://github.com/progrhyme/binq GitHub Pages as メタデータサーバ: https://github.com/progrhyme/binq-index 「簡易インストーラー」と書きましたが、単純にインターネットからソフトウェアをダウンロードして、実行ファイルを指定されたディレクトリに配置します。 圧縮ファイル形式で配布されているものは解凍して、実行ファイルを見つけて配置

                                                                          GitHub Pagesをメタデータサーバとする簡易インストーラー「binq」をGo言語で作った - progrhyme's tech blog
                                                                        • 2019-15 gRPC and Protocol Buffers

                                                                          Exploring Type-Informed Lint Rules in Rust based TypeScript Linters

                                                                            2019-15 gRPC and Protocol Buffers
                                                                          • 月額報酬が高いプログラミング言語 3位「Vue.js」、2位「Go」、1位は?

                                                                            仕事に役立つ調査データ: 消費者の傾向、若者の価値観、働き方の変化――このコーナーでは、ビジネスパーソンの働き方や企業の戦略立案に役立つようなさまざまな調査データを紹介していく。 リモートワーク求人に特化したITフリーランスエージェントのRemogu(リモグ)は、約4000件のITエンジニア向けのフルリモートワーク案件から、職種別・言語別の平均月額報酬をランキング形式で発表した。職種別の1位は「CTO/VPoE/テックリード」の93.7万円、言語別の1位は「Scala」の93.8万円となった。全案件の平均月額報酬は約73.5万円だった。

                                                                              月額報酬が高いプログラミング言語 3位「Vue.js」、2位「Go」、1位は?
                                                                            • Go でモブログシステム作った

                                                                              この記事は Go Advent Calendar 2020 24日目の記事です。 はじめに 皆さんは「モブログ」ってご存じでしょうか。 モブログとは、携帯電話などの携帯通信端末からインターネットに接続して閲覧・投稿ができるブログ(ウェブログ)のことである。 携帯電話などを利用して書き留められた短い文章や、あるいはカメラ機能で撮影された写真などが記事の主な内容となる。常に携帯するものなので、ふと思いついた所感を臨場感が損なわれないうちに記すこと、あるいは街角で見かけた面白い光景や偶然出会った有名人などを逃さず撮影することなどが可能となる。1日のうち特定の時間にパソコンの前に構えて書かれる通常のブログよりも一層、リアルタイム性が色濃く、独特の臨場感や軽快さがある。 ちなみに、モブログはモバイル(mobile)とブログ(blog)が組み合わされた造語である。和製英語ではないので、英語圏でもmob

                                                                                Go でモブログシステム作った
                                                                              • GitHub Actions上でPRを作る時はsecrets.GITHUB_TOKENは使わない方がよさそう - くりにっき

                                                                                事象 GitHub Actions上で使える secrets.GITHUB_TOKEN だと別のジョブを起動できないというのが一番の理由。 https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token 具体的にどういうケースで困るのかというと、GitHub Actions上でPRを作った場合にそのPRに対するビルドが行われません。 普通だったらコミットIDの左側に✔が出るはずなんだけど出ない図 pushやPRなどのビルドをGitHub Actions以外(例:CircleCIなど)で行っている場合には問題ないです。 解決策 いくつか案はあるのですが現状だと GitHub App Token を使

                                                                                  GitHub Actions上でPRを作る時はsecrets.GITHUB_TOKENは使わない方がよさそう - くりにっき
                                                                                • ISUCON9予選で総合4位になり本選進出を決めました - Gマイナー志向

                                                                                  ISUCON9予選1日目に「いんふらえんじにあー as Code」として参加し、1日目に3位(1位が棄権したため2位)で予選通過を勝ち取りました。 予選通過はISUCON4以来、5年ぶりです。なお、総合順位は4位だった模様です。 メンバー紹介 チーム名 いんふらえんじにあー as Code あいこん なまえ やくわり netmarkjp 司令塔 ishikawa84g レギュレーションやコードやログやDiscordを見る情報官 matsuu バリバリ実装する前衛 最終構成 nginx --+-- app(go) --+-- mysql 1台目 | | +-- app(go) --+ 2台目 | | +-- app(go) --+ 3台目 2台目と3台目は /login のアクセスのみ振り分け(bcryptのハッシュ処理のため) nginxとmysqlは初期バージョンのまま変更せず スコアの

                                                                                    ISUCON9予選で総合4位になり本選進出を決めました - Gマイナー志向