並び順

ブックマーク数

期間指定

  • から
  • まで

441 - 480 件 / 2563件

新着順 人気順

golangの検索結果441 - 480 件 / 2563件

  • WindowsアップデートでLinuxカーネルもアップデートされる時代に - Qiita

    このたびラップトップを新調しました。6年ほど前に中古のノートにLinuxを入れてつかってましたが、新品のWindowsノートに乗り換えました。そこで以前から気になっていたWindows Subsystem Linuxを使って、Windows上にLinuxの開発環境を用意してみたところ、セットアップもすごく簡単かつ快適な開発環境になったので、詳細を少し調べてみました。その結果と実際の開発現場における利用シーンについて紹介します。 ※現段階ではPreview版OSへのアップデートが必要。WSL2を利用するにはbuild 18917以上のOSバージョンが必要です。それにはthe Windows Insider Programというプログラムに登録した上で、OSをPreview版にアップデートする必要があります。 ターミナルを開くとそこはもうLinuxでした 近頃の私が個人的なLinux環境でやる

      WindowsアップデートでLinuxカーネルもアップデートされる時代に - Qiita
    • Webシステム開発で関わる技術のまとめ(2022年に知った物) - Qiita

      はじめに Webシステムの開発に携わりたくて転職して9か月,知らない事ばかりで日々勉強しております。 自分の勉強用メモとして知っておくべき技術をまとめようと思いました。 (こちらの記事にインスパイアされたものです) 技術用語について,なるべく2~3行で概要を説明できる事を目指しています。 情報が多過ぎるので,主流な技術は見出しを赤字にしています。(主観強め) また,今後需要が増えそうな技術は青字にしています。(かなり主観強め) とはいえ,新しい技術が登場すれば,数年でトレンドが変わってしまう事も多々あると思います。 ほとんどはあくまでも初心者がネットで情報をかき集めた程度のものです。 誤りがあればご指摘,ご意見など頂きたいです。 ※2023/2/6追記 不正確・不十分だと思った記載はひっそりと随時修正しています。 また,「そういえばこんなんあったな」という項目も追記しています。 あと,自分

        Webシステム開発で関わる技術のまとめ(2022年に知った物) - Qiita
      • SIerからベンチャーへの転職を通して自分と向きあった話 - SMARTCAMP Engineer Blog

        はじめまして!2021年7月にスマートキャンプに中途社員として入社した井上です! 入社時から現在まで、BOXILの開発業務に携わっています。前職はSIerで顧客のシステム開発や新規プロダクトの開発などをしていました。スマートキャンプ、前職ともにフロント・バックエンド問わず開発をしていますが、スマートキャンプでは使用技術や開発するサービスの形態が前職と大きく異なり、新鮮な気持ちで業務に取り組めています。 今日は入社エントリーとして、私の経歴を含めた自己紹介と、なぜスマートキャンプに入社したか、そして入社後のギャップをメインに書いていこうと思います。 これまでの経歴 スピード感のある開発がしたい 技術的なチャレンジ なぜスマキャンを選んだか プロジェクト運営 技術的なチャレンジ 面接 入社してみて 前職との違い コミュニケーションが「密接」 開発スタイル 入社して感じたギャップ コミュニケーシ

          SIerからベンチャーへの転職を通して自分と向きあった話 - SMARTCAMP Engineer Blog
        • つくってまなぶ静的解析のすすめ - LayerX エンジニアブログ

          はじめに こんにちは、LayerXの id:convto です。 そしてこれは LayerX アドベントカレンダー (概念) の1日目の記事です。 アドベントカレンダー盛り上げていくぞ〜ということで11月から始まるらしいです。だいぶフライングしてるけど枠もかなり埋まっててすごい。 せっかくなのでお祭り参加したいぞ〜ということで一発目です。よろしくお願いします。 静的解析つくろうとしたきっかけ ちょうどつい最近記事になった下記の輪読会がきっかけでした。 tech.layerx.co.jp このなかで、mapのrange accesssについて、元mapのcopyを取らないから破壊するとループ挙動が壊れる可能性がある旨が言及されていました。 そのときは雑談で「range accessしてるmapに再代入してたら怒る!みたいな考え方で整理したら静的解析できそうっすよね〜」みたいな話をしたんですが

            つくってまなぶ静的解析のすすめ - LayerX エンジニアブログ
          • Go Generics Overview

            サンプルコード: - https://go.dev/play/p/z5Sv88yHAqs 参考文献: - https://go.googlesource.com/proposal/+/refs/heads/master/design/generics-implementation-gcshape.md - https://zenn.dev/syumai/articles/77bc12aca9b654 - https://speakerdeck.com/dqneo/go-language-underlying-type 準標準系ライブラリ: - https://pkg.go.dev/golang.org/x/exp/slices - https://pkg.go.dev/golang.org/x/exp/maps - https://pkg.go.dev/golang.org/x/exp/c

              Go Generics Overview
            • ISUCON10予選で12位になり本選進出を決めました - Gマイナー志向

              TL;DR ISUCON10の本選出場が決定しました。わいわい。 予選12位、最終スコアは2837でした。 毎年素晴らしいコンテストを開催してくださる運営様には、本当に頭が下がります。いつもありがとうございます。 本選もがんばるぞ! 体制 チーム名 ウー馬場ーイーツ あいこん なまえ やくわり matsuu バリバリ実装する前衛 netmarkjp 司令塔 ishikawa84g SELinuxAppArmorとレギュレーションやコードやDiscordを見るセキュリティ&情報官 今回は3人が同じ場所に集まらずすべてリモート体制としました。 3人だけのDiscordサーバを用意し、Discord上で画面共有と音声チャットで進めています。 方針 毎年同じですが sshで接続してtmux上でvimで直接編集 isuumo配下でgit initを実行するが履歴保存用でbranchは作成しない 毎年

                ISUCON10予選で12位になり本選進出を決めました - Gマイナー志向
              • Secure DNS によるプライバシーの高い安全なウェブ ブラウジング

                .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

                  Secure DNS によるプライバシーの高い安全なウェブ ブラウジング
                • Govulncheck v1.0.0 is released! - The Go Programming Language

                  Julie Qiu, for the Go security team 13 July 2023 We are excited to announce that govulncheck v1.0.0 has been released, along with v1.0.0 of the API for integrating scanning into other tools! Go’s support for vulnerability management was first announced last September. We have made several changes since then, culminating in today’s release. This post describes Go’s updated vulnerability tooling, an

                    Govulncheck v1.0.0 is released! - The Go Programming Language
                  • Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ

                    前置き 以前、BuildInfoからバージョンを取得する方法を紹介しました。 blog.lufia.org go installで正規の公開されたバージョンをインストールした場合は、以下の出力においてmodの行が示すように、sum.golang.orgでチェックサム等が検証されてバイナリのメタデータに埋め込まれます。 $ go version -m dotsync dotsync: go1.22.2 path github.com/lufia/dotsync mod github.com/lufia/dotsync v0.0.2 h1:JWm92Aw8pSKJ4eHiQZIsE/4rgwk3h5CjEbJ/S30wiOU= build -buildmode=exe build -compiler=gc build -trimpath=true build DefaultGODEBUG=ht

                      Go製バイナリを配布するためのGitHubワークフロー - Plan 9とGo言語のブログ
                    • 私のコード履歴書 - それが僕には楽しかったんです。

                      satoru-takeuchi.hatenablog.com ↑この記事が Twitter の TL に流れてたから読んでみたら面白かったのでコードを書き始めた7年前*1から振り返りながら書いてみる。 コードが残っていたりするものは載せていきたい。思い出せる限りなるべく時系列順で書いていく。多少前後する。 「独学でプログラミングを始めるなら C 言語から」という文言に載せられ Windows のコマンドプロンプト*2で動く簡単のプログラムをいくつか作った。ほとんど入門書の写経 + αだった。例によってポインタがわからず、もっと酷いことに return もわからなくて*3一旦距離を置く。return がわからなかったので関数を使うことを割けていたので全部 main 関数に書いていた気がする。初めて黒い画面にバババーっと文字が出てきたときはめちゃくちゃ楽しかった。 Java とかいう言語を使い

                        私のコード履歴書 - それが僕には楽しかったんです。
                      • distrolessのnonrootイメージを使おう - Re:cohalz

                        この記事は はてなエンジニア Advent Calendar 2021 11日目の記事です。 コンテナのベースイメージとしてdistrolessを選択肢にするということがここ最近増えてきました。 そんなdistrolessを非rootユーザで使おうとしたらとても簡単だったのでその紹介です。 どのくらい簡単かというと、Goのアプリケーションであれば以下のように変えるだけで対応できます。(コメントアウト部分は元々のrootユーザで動かしていた場合のもの) FROM golang:1.17 as builder WORKDIR /go/src COPY go.mod go.sum . RUN go mod download COPY . . RUN go build -o /out/myapp . # FROM gcr.io/distroless/static:latest FROM gcr.i

                          distrolessのnonrootイメージを使おう - Re:cohalz
                        • proto定義や成果物の管理用レポジトリを構築した話 - Kyash Product Blog

                          こんにちは、Fundsチームの @convto です。Kyashでは銀行入金やコンビニ入金などの残高の入出金に関わる部分の開発をしています。 Fundsチームではその業務の性質上多数の外部ベンダとやり取りをしています。 それぞれベンダごとに仕様なども異なるため、その接続部分のいくつかはマイクロサービスとして切り出されています。 Fundsチームの管理しているサービス間の通信でgRPCを導入する際、今後の社内の別サービスなどにも汎用的に使えるようなproto管理レポジトリを構築したのでその紹介をしたいと思います。 proto管理レポジトリで満たしたい要件について はじめに、他社の事例も参考にしつつ、自分たちがprotoを管理するにあたってどのような要件を満たせれば良いのか整理しました。 他社の事例を調査したところ、以下のような構成が多かったように思います。 名称は app-proto や p

                            proto定義や成果物の管理用レポジトリを構築した話 - Kyash Product Blog
                          • 自作protocプラグインで実現するスキーマベースの認可処理 - enechain Tech Blog

                            はじめに なぜprotobufに認可設定を組み込もうと思ったのか? 前提知識 protobufのプラグインの仕組み protocコマンドのインターフェース 実装 今回のお題 プラグインの開発 拡張プラグインの実行 生成したmapを使った認可処理 最後に はじめに こんにちは、enechainのApplication Platform Deskでエンジニアをしているendoです。 Application Platform Deskは、全プロダクトが横断で抱える課題を解決するチームです。 ※「開発者体験の向上を目指す」という意味ではPlatform Engineeringチームと近い位置づけですが、もう少しアプリケーション開発寄りの領域を担当しています。 私達のチームでは、protobufで自動生成したGolangコードを使ってAPI Endpoint毎にロール単位の認可処理ができる仕組みを構

                              自作protocプラグインで実現するスキーマベースの認可処理 - enechain Tech Blog
                            • 【Golang】VSCodeで自動生成されるテストコードをカスタマイズする - magamingのブログ

                              こんにちは。Goのテスト、書いていますか? 私はめちゃめちゃ書いています。 VSCodeに拡張機能(vscode-go)を入れることで、テストコードを自動生成することができることを最近知ったのですが、これがとても便利です。 使い方は以下の記事でまとめられています。 kdnakt.hatenablog.com これはめちゃめちゃ便利なのですが、デフォルトだと少し物足ないところがあったので、カスタムテンプレートを作成しました。 GitHub - Magaming/gotests-templates vscode-goは内部でgotestsを使っているので、それ用のテンプレートを用意している形です。 具体的には次のようなことをしています。 go-cmpを使う 標準だと reflect.DeepEqualで比較しているが、これだとtime.Time型を含んだ構造体の比較とかで死ぬ go-cmpは、

                                【Golang】VSCodeで自動生成されるテストコードをカスタマイズする - magamingのブログ
                              • Go公式の構造化ロガー(として提案されている)slogを触ってみたメモ

                                Go言語ではながらく公式のロガーとして log パッケージがありました。これは非常にシンプルなもので構造データをうまく表現できなかったりログレベルを分けるということができません。CLIで使うシンプルなインタラクションであればこれで十分なのですが、クラウド上のバックエンドで動かすサービスにとっては構造化ロギングやログレベルの出し分けは事実上必須であり、そのための機能は十分と言えませんでした。 これに対して様々なロガーが3rd party packageとして公開されてきましたが、一方で公式に導入されようとしているロガーもあります。それがslogです。まだ提案の段階ではありますが、現状で使える実装を触ってみたところかなり実用的な段階だなと感じたので、自分用の備忘録を兼ねてメモを残してみます。 サンプルコードはここにも置いてあります。 基本的な使い方 まず基本的な使い方を見てみます。ログ出力用に

                                  Go公式の構造化ロガー(として提案されている)slogを触ってみたメモ
                                • 【GraphQL × Go】 N+1問題を解決するgqlgen + dataloaderの実装方法とCacheの実装オプション - LayerX エンジニアブログ

                                  こんにちは。バクラク事業部でバクラク申請の開発を担当している@sh_komineです。 この記事は、6月から始まっている #LXベッテク月間 9日目の記事です。 前回はPrivacyTech事業部の@cipepserさんによる 合成データとは - 統計的な有用性を維持する架空のパーソナルデータ でした。 ものすごくBet Technologyな合成データのお話で読んでいてワクワクする記事です。気になる方は是非読んでみてください! 本日は、一般的なWebアプリケーション開発の技術で、バクラク事業部の開発で実際に使っているgqlgenとdataloaderの実装について紹介したいと思います。 gqlgen + dataloaderの記事自体は巷にだんだんと出揃ってきていると思いますが、弊社が使っている技術として改めてご紹介できたらと思います。 前提の話 今回の記事は自分が前回のエンジニアブログ

                                    【GraphQL × Go】 N+1問題を解決するgqlgen + dataloaderの実装方法とCacheの実装オプション - LayerX エンジニアブログ
                                  • Go1.23で導入予定のイテレータを完全理解する✌️

                                    イテレータについて完全理解するぞ!!!! 皆さん、Go1.23で導入予定のイテレータすごい楽しみですよね? 筆者はすごい楽しみです。Go1.18でジェネリクスが導入されて書き方の幅が広がったように、今回のイテレータもGoの書き方の幅を広げる機能になるのではと予想しております! https://github.com/golang/go/issues/61405 を見ると分かるように「add range over int, range over func」の機能はGo1.23のマイルストーンに積まれています。 「range over int」の機能についてはGo1.22で既に実装されています[1] 。「range over func」は来たるGo1.23に実装予定だと思われます。このブログでは、導入予定の型/関数とその使い方を深ぼっていきたいと思います! このブログの中では「range ove

                                      Go1.23で導入予定のイテレータを完全理解する✌️
                                    • The Next Step for Generics - The Go Programming Language

                                      Ian Lance Taylor and Robert Griesemer 16 June 2020 Introduction It’s been almost a year since we last wrote about the possibility of adding generics to Go. It’s time for an update. Updated design We’ve been continuing to refine the generics design draft. We’ve written a type checker for it: a program that can parse Go code that uses generics as described in the design draft and report any type err

                                        The Next Step for Generics - The Go Programming Language
                                      • 株式会社はてなに入社しました - Acme::AnaTofuZ->new;

                                        はい blog.sushi.money 本題 ということで2021年4月1日より株式会社はてなに新卒入社しました。 職種はアプリケーションエンジニアで、勤務地は京都*1です。 チームはノベルチームなので、カクヨムなどのインターネットサービスに関わることになると思います。 はてなはPerlのアプリケーションがもりもりあるので、合法的にPerlを書くことができる環境で仕事をすることになります。(以前のインターン先では脱法Perlをキメていた) はてなとの関わり はてなとは2017年のサマーインターンに参加したりといろいろな関わりがありました。 サマーインターンでは近年まれに見る途中リタイアだったので、終わった後は色々とありました。 「自分はIT業界でやっていけるのだろうか。。。プログラミングしていけるのだろうか。。。」みたいなものですね。 YAPC::Tokyoや大学・大学院の学生生活を経たり

                                          株式会社はてなに入社しました - Acme::AnaTofuZ->new;
                                        • Puma の内部構造やアーキテクチャを追う

                                          Extended outer memory module for my poor native memory. Posts: 2022/02/13 クラビスの CTO になりました 2020/09/28 gendoc という YAML からドキュメントを生成するコマンドを作った 2020/09/13 ISUCON10 の予選を 7 位で通過した 2019/12/01 Puma の内部構造やアーキテクチャを追う 2019/05/27 Golang の正規表現ライブラリの処理の流れをざっくり掴む 2019/04/29 InnoDB の B+Tree Index について 2019/04/29 InnoDB における index page のデータ構造 2019/04/28 InnoDB はどうやってファイルにデータを保持するのか 2019/01/06 Designing Data-Intens

                                          • Core Web Vitals によるビジネス インパクト

                                            .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

                                              Core Web Vitals によるビジネス インパクト
                                            • リアルタイム検索最適化:Reactアプリにdebounce処理を組み込む - Techtouch Developers Blog

                                              はじめに そもそも debounce 処理って? 本題 今回作りたかったもの 検討したこと useDebounce useDebouncedValue 実装したもの 最後に はじめに テックタッチのフロントエンドエンジニアの ozaan (@shzawa) です。関西 (兵庫県姫路市) 在住のため、普段はフルリモートのメンバーとしてサービス開発に取り組んでいます。 最近はスクラム開発の一環でバックエンドのコード (golang) を触らせてもらっていました。golang だと書き方が統一されているためか GitHub Copilot の補完機能がかなり効くので書いていて面白かったです。 そもそも debounce 処理って? 対象のイベントが発生してから指定した時間が経過するまでは、同じイベントの発生を抑制する仕組みです。 input 要素の onChange イベントのような短い間隔で連

                                                リアルタイム検索最適化:Reactアプリにdebounce処理を組み込む - Techtouch Developers Blog
                                              • さくらインターネット株式会社を退職して博士後期課程に進学します - 水底

                                                いわゆる退職エントリってやつですね、せっかくなので。とはいえ技術書典で文章を書くことに飽きたので簡単にしか書きません。 まだ有給消化中ですが1年半勤めたさくらインターネットを10月で退職し、大阪大学大学院情報科学研究科で博士後期課程に進学します。出戻りみたいな感じです。東京から大阪に移りました。 やっていたこと さくらインターネットには修士新卒で入社し、主に2つのプロジェクトを担当していました。 1つ目のメインで稼働していたプロジェクトですが、こちらはまだリリースされていないので詳細は伏せます。レイヤ的には要件定義・全体設計・DevOps・実際のアプリ開発といったところを担当していました (溢れ出るふるすたっく感!)。最近k8sのイベントや執筆をすることが多かったですが、主にこのプロジェクトで活かしてきたものになります。技術スタックの中でもgolang・k8s・gitops辺りを中心的に扱

                                                  さくらインターネット株式会社を退職して博士後期課程に進学します - 水底
                                                • Dockerfiles now Support Multiple Build Contexts | Docker

                                                  The new releases of Dockerfile 1.4 and Buildx v0.8+ come with the ability to define multiple build contexts. This means you can use files from different local directories as part of your build. Let’s look at why it’s useful and how you can leverage it in your build pipelines. When you invoke the docker build command, it takes one positional argument which is a path or URL to the build context. Mos

                                                    Dockerfiles now Support Multiple Build Contexts | Docker
                                                  • Golang is evil on shitty networks

                                                    This adventure starts with git-lfs. It was a normal day and I added a 500 MB binary asset to my server templates. When I went to push it, I found it interesting that git-lfs was uploading at 50KB per second. Being that I had a bit of free time that I’d much rather be spending on something else than waiting FOREVER to upload a file, I decided to head upstairs and plug into the ethernet. I watched i

                                                      Golang is evil on shitty networks
                                                    • Chrome のフォーム コントロールとフォーカスのアップデート

                                                      .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 のフォーム コントロールとフォーカスのアップデート
                                                      • 🌕 moonでのmonorepo管理とpackemonでのCJS/ESMのdual package

                                                        🌕 moonでのmonorepo管理とpackemonでのCJS/ESMのdual package 🌕 moon 一貫性を持ったmonorepo管理ツール for JavaScript ハッシュを使ったファイルキャッシュ プロジェクトのパッケージ間の依存関係の分析とタスク実行 Node.js/npmパッケージマネージャーのバージョン管理と一貫性 TypeScriptのProject Referendcesの一貫性 比較 Nx: The Framework + Pluginで拡張する Lerna: Nx傘下、ライブラリ公開向け Turborepo: タスク実行の最適化をする moon: monorepoでの一貫性を提供する Packemon: moonと同じ作者。ESM/CJSのライブラリ公開向け 比較(言語) Nx: TypeScript + C++[^1] Turborepo: Go

                                                        • 形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳

                                                          2019年が終わろうとしています あけおめ~さて2020年になりました。歴史が長い形式手法の今後を占うため、過去と直近の出来事を振り返りたいと思います。 ツッコミやタレコミは私のTwitter宛かあなたのブログかその他経路でお願いします~ シンボリック実行は形式的であるため本稿では形式手法に含めることにします。 Fuzzing関連はサーベイが甘いので漏れが多いかもしれません。 形式手法・形式検証とは 形式検証とは、厳密に定義された意味論の下で仕様やプログラムが所定の性質を満たすことを形式的に検証するための手法をいいます。「形式的に」とは、検証が事前に定義された知識だけに基づいており、検証手順が決定的であることをいうと私は理解しています。 形式手法は、形式検証に加えて、形式的にプログラムの仕様を厳密に定義するための手法を包含します。 本記事では形式手法を以下の通り大きく3つに独自に分類します

                                                            形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳
                                                          • 【第12回】Go言語(Golang)入門~MySQL接続編~ – 株式会社ライトコード

                                                            package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jinzhu/gorm" ) func main() { _, err := sqlConnect() if err != nil { panic(err.Error()) } else { fmt.Println("DB接続成功") } } // SQLConnect DB接続 func sqlConnect() (database *gorm.DB, err error) { DBMS := "mysql" USER := "go_example" PASS := "12345!" PROTOCOL := "tcp(localhost:3306)" DBNAME := "go_example" CONNECT := USER + ":"

                                                              【第12回】Go言語(Golang)入門~MySQL接続編~ – 株式会社ライトコード
                                                            • pipeエラーのハンドリング - Carpe Diem

                                                              概要 write: broken pipeといったクライアント側の強制的なコネクション切断でのエラーハンドリングをする際の知見まとめ。 環境 golang/go 1.13.3 事前知識 知っておくと良い知識を先に説明します。 そもそもpipeとは pipeはプロセス間通信をするための単方向のデータチャネルです。IOストリームを扱います。 読み出し側と書き込み側それぞれのfdを経由してプロセス間の通信を可能にします。 例えば親子プロセスで通信を行いたい場合、親プロセスでpipeを開きそれをforkして子プロセスを用意します。 ref: https://inzkyk.github.io/ocamlunix-jp/pipes.html そして親プロセスの書き込みfd・子プロセスの読み出しfdをそれぞれクローズすれば、以下のように子プロセス→親プロセスへ通信することができます。 pipeはシンプル

                                                                pipeエラーのハンドリング - Carpe Diem
                                                              • LGTM でリポジトリ・ソースコードを分析しよう | DevelopersIO

                                                                LGTM とは LGTM は、コードを分析するためのツールです。 https://lgtm.com/ CodeQL という技術を使って、ソースコードに対してクエリを投げることで、例えば脆弱性のありそうなコードのパターンや、不具合のありそうなコード、規約を満たしていないコードなどを検査することができます。 コードに対して検査をかけたり、もしくは以下のサービスと連携してプルリクエストに対して毎回検査を行うことが可能です。 Bitbucket Cloud GitHub.com GitLab.com 言語については以下に対応しているとのことです。 C and C++ C# Go, also known as Golang Java JavaScript/TypeScript Python CodeQL について CodeQL is the code analysis platform used b

                                                                  LGTM でリポジトリ・ソースコードを分析しよう | DevelopersIO
                                                                • API認証基盤の改善について - メドピア開発者ブログ

                                                                  今月の一日でメドピアに入社してちょうど1年になったCTO室の内藤(@naitoh) です。 主にやっていることはAPI認証基盤の改善です。 この1年でやってきた事を技術ブログで紹介させて頂きます。 背景 メドピア で採用されているバックエンドの言語(フレームワーク)は本 blog のタイトルにもあるように PHP から Rails に移行が行われているのですが、 実は上記以外に Golang(以下 Go) も使用しています。 このあたりの当時の開発背景は下記の記事に書かれておりますのでご参考にして頂ければと思います。 tech.medpeer.co.jp 私が昨年入社した時点でこのAPI認証基盤(API ゲートウェイ)の保守が難しく、Go のわかる開発者がほぼいなかったため機能追加が行えない状態になっていました。 このAPI認証基盤へのユーザーログイン処理時のアクセス負荷が朝方に集中し、メ

                                                                    API認証基盤の改善について - メドピア開発者ブログ
                                                                  • GoのCLIで標準入力とファイル読み込みの両方に対応する - Carpe Diem

                                                                    概要 Goでは簡単にコマンドラインツールが作れますが、人によって引数やオプションといったインタフェースがバラバラになりがちです。 POSIX Utility Syntax Guidelinesというガイドラインがあるので、これに則るとUnixライクな統一されたインタフェースのCLIツールになります。 環境 golang/go v1.15.1 インタフェースのイメージ 例えば文字列の入ったファイルがあり $ cat sample.txt hogefuga 入力文字列をすべて大文字にするコマンドcapitalizeを作る場合、以下の3つのインタフェースをサポートするイメージです。 $ cat sample.txt | capitalize HOGEFUGA $ cat sample.txt | capitalize - HOGEFUGA $ capitalize sample.txt HOGE

                                                                      GoのCLIで標準入力とファイル読み込みの両方に対応する - Carpe Diem
                                                                    • Goのビルドタグの書き方が// +buildから//go:buildに変わった理由

                                                                      ざっくり言うと // +buildは、一般的な&&や||を使う論理式の書き方じゃないので分かりにくかった 複数行書くこともできたので暗黙的な論理演算になり、意図しないビルド条件になることがあった だから、より身近で明確な書き方ができる//go:buildへ置き換えることになった(記述位置の条件とかも見直してる) Go1.17でビルドタグの書き方が変わることがアナウンスされた 2021年8月のGo1.17から//go:buildが使えるようになりました。 後でも触れるのですが、もちろん後方互換性が維持されているので// +buildも使えます。 // +buildだけが指定されているファイルに対してgo fmtを実行すると、同等の//go:buildがすぐ上の行に追加されるようになっています。 // +buildはいくつかの問題を抱えていた もともと// +buildに指定できるのはOS名か

                                                                        Goのビルドタグの書き方が// +buildから//go:buildに変わった理由
                                                                      • 🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)

                                                                        This is part of my "Memory Management" series 🚀 Demystifying memory management in modern programming languages🚀 Visualizing memory management in JVM(Java, Kotlin, Scala, Groovy, Clojure)🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)🚀 Visualizing memory management in Golang🚀 Visualizing memory management in RustAvoiding Memory Leaks in NodeJS: Best Practic

                                                                          🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)
                                                                        • WebAssembly がネットワーク プロキシにもたらす拡張性

                                                                          .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

                                                                            WebAssembly がネットワーク プロキシにもたらす拡張性
                                                                          • vim-goを使わず、LSP(gopls)を使ってVimのGo開発環境を構築する - My External Storage

                                                                            2020年にもなったので、vim-goを卒業して、vim-lsp(gopls)を使ったVimの開発環境を構築する。 TL;DR vim-goを卒業してgoplsとvim-lspを使った開発環境を構築する VimでLSP(とその他プラグイン)を使えば以下のことができる リアルタイムで静的解析の結果をエディタ上に反映する ポップアップで静的解析のエラーを表示する ポップアップで関数定義などのコメントを表示する 定義元へジャンプができる。 package名.などを入力IDEのような補完候補が表示さえる funcと入力してタブを押下するとスニペットが展開される。 &http.Client{}と書いたあと:LspCodeActionで構造体のフィールドをゼロ値で初期化する importをよしなに解決する(goimport) :wによる自動ソースコード整形、およびそのエラー表示 Vim上からテストを実

                                                                              vim-goを使わず、LSP(gopls)を使ってVimのGo開発環境を構築する - My External Storage
                                                                            • Goのテスト安定性向上のためにFlakyなテストを再試行する機能を導入する提案 - tomato3713’s blog

                                                                              Go言語にFlakyなテストへのサポートを追加する提案が面白かったので紹介します。 概要 Flakyなテストとは、コードに変更がないにもかかわらずテストが成功したり失敗したりと不安定な実行結果になるテストのことです。 テスト結果は本来なら全て成功ならリリース可能、1つでも失敗すればバグがあるのでリリース不可のようにリリースの可否を判断するための情報です。 そのため、不安定なテストは書かないようにすることが大前提です。 しかし、実際にはflakyであるとわかっていても修正が難しかったり、修正するための時間がないのでそのまま残すという判断をすることもあります。 Flakyなテストは削除するというのも手ではありますが不安定であってもテストが無いよりはマシとして残すこともあると思います。 github.com この提案では、Flakyなテストを扱うための機能を追加するものです。 初めの提案内容は、

                                                                                Goのテスト安定性向上のためにFlakyなテストを再試行する機能を導入する提案 - tomato3713’s blog
                                                                              • More powerful Go execution traces - The Go Programming Language

                                                                                The Go Blog More powerful Go execution traces Michael Knyszek 14 March 2024 The runtime/trace package contains a powerful tool for understanding and troubleshooting Go programs. The functionality within allows one to produce a trace of each goroutine’s execution over some time period. With the go tool trace command (or the excellent open source gotraceui tool), one may then visualize and explore t

                                                                                  More powerful Go execution traces - The Go Programming Language
                                                                                • Goの準々標準ライブラリの探索 - Qiita

                                                                                  フューチャーアドベントカレンダー21日目のエントリーです。全25話中、神回が25回あったウルトラマンZが終わってしまいましたね。全日本人のうちの1億2000万人ほどがウルトラマンZロスでうちひしがれているころかと思います。 Goでは、Goをインストールしたときに一緒にインストールされるライブラリを「標準ライブラリ」と呼びます。また、golang.org/xなパッケージ群は準標準ライブラリと呼ばれます。準標準ライブラリには多彩なライブラリが含まれます。今ではもう本家に入ってしまって、後方互換性のためだけに残っているパッケージも一部ありますが・・・ これ以外にも https://github.com/golang/ にはたくさんパッケージがあります。一部はgolang/xのものも入っているのですが、それ以外のものをここでは仮に準々標準ライブラリと呼ぶことにします。 golang.org/xのも

                                                                                    Goの準々標準ライブラリの探索 - Qiita