並び順

ブックマーク数

期間指定

  • から
  • まで

561 - 600 件 / 2512件

新着順 人気順

goの検索結果561 - 600 件 / 2512件

  • Go言語でつくるインタプリタがグランドフィナーレを迎えました - ゆーすけべー日記

    いよいよ「Go言語でつくるインタプリタ」がグランドフィナーレを迎えた。 そして、これで終わりだ。やり遂げた。これまでは私が誘う小さなお祝いを軽くあしらってきたとしても、いよいよ愉快なパーティ帽を被ってよい時間だ。 抜粋:: Thorsten Ball “Go言語でつくるインタプリタ” やったー。パーティーだ! なんでこの本を読んだの? 今までコンピュータサイエンをまともに学んだことがなかった。 大学生の時分、授業では「プログラミング」と銘打つものがあるくらいで、 Javaでアプレットを作ったり、Cでシステムプログラミングをしたりという程度だった。 あとは独学。あくまで目的達成のための学習。 GUIやWebアプリの高レイヤーの実装ばかりで、 中がどうなってるのかあんまり理解できてなかった(いわゆる電子工作は好きだったけど)。 で、なんとかやってきたんだけど、 コンピュータサイエンスを学んでい

      Go言語でつくるインタプリタがグランドフィナーレを迎えました - ゆーすけべー日記
    • 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
        • GoのAPIが厳格でない訳

          Windows対応の曖昧なAPIを非難する記事 この記事はGoが曖昧に扱うAPIについて非難していて、より厳格に扱うことのメリットを解説しています。 Goのこれらの指摘の挙動が実際にどの様なものかを解説していきます。 無視する挙動 Goの標準ライブラリのAPIはどちらかというとUnix/Posixに寄せていて、一部のWindowsに無い概念に関する処理(ファイルのパーミッション操作など)は黙って無視したりする。 これはUnix/Posix用の実装が同じソースコードのままWindowsでも動作するために必要なダミーです。ここでそのようなダミー実装をアプリケーション作成側の責任にすると実装やテストが大変面倒になってしまう。 逆に、GoではUnix/Posixにあるforkやthreadに関するAPIをサポートしません。特にforkというAPIはWindowsには全くない概念であり、互換性を取る

            GoのAPIが厳格でない訳
          • CUEを試して見る | フューチャー技術ブログ

            前回のエントリー、一周回って、人間が読み書きする設定ファイルはJSONが良いと思ったの続きです。 設定ファイルをどうするか問題はいろいろ悩ましい問題であります。そんな中、設定ファイル用言語という触れ込みのCUEがリリースされました。 すでに、NSSOLの方が、Linterとして使うという紹介記事をすでに書かれています。これはユースケースの一部(これでも有用ですが)です。まだ使い込んだわけではなく、チュートリアルとドキュメントを一通り読みつつ軽く試した程度ですが、全体的な紹介をしようと思います。 yamlやJsonのチェック(Lint)ができるCUEの紹介 CUEによってできるようになること主な特徴としては次のような感じです。 人が書く設定ファイル(JSON/YAML/TOML/iniあたりがライバル)のための言語 スキーマ定義が書けて、バリデーションが可能 テンプレート機能で一部が違うデー

              CUEを試して見る | フューチャー技術ブログ
            • Go言語でElectronアプリケーションの高速化を実現した話 - DMM inside

              |DMM inside

                Go言語でElectronアプリケーションの高速化を実現した話 - DMM inside
              • Go言語を採用して開発をしている会社一覧 - Qiita

                日本ではRubyが流行り、ほとんどの会社がRubyを採用しています。現在は開発言語は拘らずサービスやリソースに合わせて開発言語・環境を決めますが、一部のエンジニアの中では言語に強いこだわりを持つ方もいるのと、グローバルエンジニアを目指すにあたりRubyは世界で使われていないため、GoやPythonを学ぶ方も一定数いらっしゃいます。 最近Go言語の人気も出てきたため、今回は上記のような方やGo言語にチャレンジをしたい方向けにGo言語をメインに取り入れている企業様一覧を紹介します。 ■Gunosy 言わずと知れてキュレーションアプリの先駆者です。解析とアルゴリズムで情報過多な現代において、最適な情報をユーザーに届ける事をミッションとし、情報の非対称さを正す企業です。 メインサービス「グノシー」はDL数2000万を超え、それ以外にもKDDIとの共同開発サービス「ニュースパス」女性向けバーティカル

                  Go言語を採用して開発をしている会社一覧 - Qiita
                • ガードレールを整備して、安心・安全な「Go」ライフを コードをセキュアに保つために解決すべき3つの課題

                  Go Conferenceは半年に1回行われるプログラミング言語Goに関するカンファレンスです。米内氏は、Goを使用するときにセキュリティを高める仕組み作りについて発表しました。 日々コードを書く中で起こり得るインセキュアなコード 米内貴志氏:米内です。今日は「Goをセキュアに書き進めるための『ガードレール』を整備しよう」という題で、組織としてGoを使うときにセキュリティを底上げするための仕組み作りについて話をしようと思います。よろしくお願いします。 まず簡単に自己紹介をさせてください。私は米内貴志と申します。株式会社Flatt Securityでセキュリティプロダクトの開発、今は特にeラーニング事業の開発をしています。社内でもけっこうGoを使っています。 もともとWebブラウザーとセキュリティが好きで、最近『Webブラウザセキュリティ』という本をラムダノートさんから出版しました。気になる

                    ガードレールを整備して、安心・安全な「Go」ライフを コードをセキュアに保つために解決すべき3つの課題
                  • GolangとRustを使い分けるとしたらどのような観点で使い分けますか?

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

                      GolangとRustを使い分けるとしたらどのような観点で使い分けますか?
                    • Faster MySQL with HTTP/3

                      Most of what I will be discussing is not publicly documented and is entirely experimental. The background# As a part of some of our infrastructure initiatives, we demanded new APIs and connectivity features for our database. To support features that weren’t available over the MySQL protocol, we decided to start bolting on a publicly accessible HTTP API. This API is not documented for public consum

                        Faster MySQL with HTTP/3
                      • GitHub - francoismichel/ssh3: SSH3: faster and rich secure shell using HTTP/3, checkout our article here: https://arxiv.org/abs/2312.08396 and our Internet-Draft: https://datatracker.ietf.org/doc/draft-michel-ssh3/

                        SSH3 is a complete revisit of the SSH protocol, mapping its semantics on top of the HTTP mechanisms. It comes from our research work and we (researchers) recently proposed it as an Internet-Draft (draft-michel-ssh3-00). In a nutshell, SSH3 uses QUIC+TLS1.3 for secure channel establishment and the HTTP Authorization mechanisms for user authentication. Among others, SSH3 allows the following improve

                          GitHub - francoismichel/ssh3: SSH3: faster and rich secure shell using HTTP/3, checkout our article here: https://arxiv.org/abs/2312.08396 and our Internet-Draft: https://datatracker.ietf.org/doc/draft-michel-ssh3/
                        • 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プロトコル
                          • GoとJSON

                            GoとJSON merpay Architect goccy 2021/8/20 Go 1.17 Release Party

                              GoとJSON
                            • Gopher道場の動画コンテンツを完全に公開しました

                              はじめに Gopher道場は、tenntennがメルペイ在職時に始まったGoを学ぶ人のための学習の場です。tenntennがメルペイを退職後、著作権周りの整理などが行われ、Go Conferenceなどを運営する一般社団法人Gophers Japanに運営が移管されました。メルペイのみなさまありがとうございました。 動画コンテンツを完全に公開しました 移管にあたり、Gopher道場のSlackに入った方にだけ公開していた動画コンテンツを一般公開することにしました。以下の再生リストからご覧いただけます。 なお、資料はこちらの古いスライドではなく、プログラミング言語Go完全入門をご覧ください。 古い資料はアップデートされませんが、プログラミング言語Go完全入門は今後もアップデートをしていきます。 動画は10時間以上あり、以下の内容を扱っています。 Goに触れる 基本構文 型と関数 パッケージ

                                Gopher道場の動画コンテンツを完全に公開しました
                              • 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
                                • 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 Slice Tricks Cheat Sheet

                                    Web site created using create-react-app

                                      Go Slice Tricks Cheat Sheet
                                    • 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
                                      • Go の命名規則

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

                                        • 絶対に落とせない!友人の結婚式の余興用アプリケーションをエラーゼロで突破した - エムスリーテックブログ

                                          エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。 今回は友人の結婚式の余興用に作ったアプリケーションの実装とエラーゼロで突破するための工夫などを紹介します。 どんな余興をしたの? アーキテクチャ 結婚式で使う回答システム実装のポイント 本番直前1ヶ月は動作確認ができないことを考慮したスケジューリング 本番以外の時間はなるべく料金を安く済ます。 絶対に落とせないアプリケーションのための負荷試験、Fuzz testing 負荷試験 Fuzz testing 結果 まとめ We are Hiring! どんな余興をしたの? 友人とは毎年夏の旅行で「格付けチェック」をやっていて、高い肉や酒を当てられるかなどのゲームをしているので、今回の友人の結婚式の余興では「格付けチェック」と題して、新婦はプロに混じった新

                                            絶対に落とせない!友人の結婚式の余興用アプリケーションをエラーゼロで突破した - エムスリーテックブログ
                                          • ジュニアエンジニアとして入社してからの1年半を振り返る

                                            こんにちは。Finatextでエンジニアをしている塚本です。 証券プラットフォーム「BaaS」や、それを利用して開発されたアプリケーションのフロントエンドを担当しつつ、現在はバックエンドの実装も行っています。 Finatextに入る前は大手メーカーでSEを3年ほど、その後フリーランスを1年ほどしておりました。フリーランスになってからエンジニアを目指すことを決め、独学でコーディングの勉強を始めています。 ジュニアエンジニアとしてFinatextに入社した私が、約1年半でどの程度成長したのかを振り返りたいと思います。 まず入社当時と現在でどう変わったかがこちらです。 Finatext入社当時コーディングは1人でするのは到底無理。。デベロッパーツールどうやって開くの?rebaseって何?Laravelなら少しだけ知っているVue.js, Go(弊社使用言語)書いたことない ↓1年半経った現在ヘル

                                              ジュニアエンジニアとして入社してからの1年半を振り返る
                                            • クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ

                                              最近はZX-25Rが気になっている菅原です。4気筒250ccといえば、以前バリオス2に乗っていたんですが、あれもよく回るよいバイクでした。足つきの良さが懐かしいです。 この記事では、クエリログを使ったAurora MySQLの負荷テストの話を書きます。 MySQLの負荷テスト サービスに使われているデータベースは、Webサーバと比べて自動的なスケールアップ・スケールアウトが簡単ではないためキャパシティプランニングは非常に重要です。サービスへのアクセス増による負荷増大の結果、急激に性能が低下するためなるべく事前にキャパシティを把握しておきたいところです。 クックパッドではサービスのデータベースとして主にAurora MySQLを利用しているのですが、キャパシティを把握するための負荷テストには以前から苦労してきました。 1. シナリオを書くのが大変 サービスで使われているデータベースの負荷テス

                                                クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ
                                              • GitHub - ImVexed/muon: GPU based Electron on a diet

                                                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 - ImVexed/muon: GPU based Electron on a diet
                                                • 『週末レイトレーシング』を読んだ - a.out

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

                                                    『週末レイトレーシング』を読んだ - a.out
                                                  • 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
                                                    • Protocol BuffersでgRPCとGraphQL両対応のコードを生成するプラグイン書いた - blog::wnotes.net

                                                      gRPC、あるいはGraphQL 昨今のAPI開発にgRPC、またはGraphQLを採用するケースは増えてきていて、ドメインロジックをgRPCで実装して、フロントエンド(BFF)はGraphQL経由のHTTP一本で取得するのはベストプラクティスの一つだと思っています。 とはいえ人的リソースや管理の問題から、ProtobufとGraphQLスキーマを両方メンテナンスしていくのはとてもつらくて、 他のエントリでも結果としてどちらかに寄せました、というケースをよく目にしました。 実際自分もやってはみたものの、両方のメンテナンスをしていくのは相当辛くて、Protobufを直してgRPCのI/Fを変更、合わせてGraphQLのSchemaにも手を入れてフロントに渡して…というのは管理コストに見合わないな、ってことで諦めました(今は grpc/grpc-web 、または grpc-ecosystem/

                                                      • Goのなぜ問答

                                                        はじめに Goはできるだけ冗長な機能セットを増やさずに応用の効くシンプルで強力な機能セットに絞り込んだ設計であることを目指した言語処理系です。なのでリッチな機能を持つ言語処理系経験者からするとたくさんの「なぜ?」を感じると思います。 しかし、Goの開発者たちは他の言語処理系にある機能だからGoにも採用しようとは一切考えません。あくまで大きなゲイン(デメリットをメリットが大きく上回る)を示されるまでは採用しません。特に言語仕様についてはより変更を嫌う傾向があります。「Go1の約束」というものがあり、Go1.0向けに書かれたコードはGo1.xでも動くもしくは機械的にコードにパッチを当てることで移行可能にするということをずっと守っています(約9年?)。 最近になりGo2プロポーザルがたくさん書かれ、それらの提案のうち言語仕様に関するものは最終的に2〜3個に絞り込まれ順次採用されていくという計画で

                                                          Goのなぜ問答
                                                        • Go1.21 New Features

                                                          Go1.21 が 2023年8月9日(JST) にリリースされ、そのリリースノートやブログが公開されています。この記事では前回の Go1.20 New Features に引き続き、Go1.21 の新機能の中から気になった機能を解説していきます。 spec Go1.20 までは、メジャーリリースの一番最初のバージョンの末尾にパッチバージョンが付いておらず、次のバージョンからはパッチバージョンが付くようになっていました。 例えば Go1.20 の最初のバージョンは go1.20 で、次のバージョンからは go1.20.1, go1.20.2, ... のようにパッチバージョンがついていました。 Go1.21 からは、一番最初のバージョンが go1.21.0 のようにパッチバージョンの .0 が付くようになります。 import している package を初期化する順序が Spec に明記さ

                                                            Go1.21 New Features
                                                          • SNAKE(EKANS)ランサムウェアの内部構造を紐解く | 技術者ブログ | 三井物産セキュアディレクション株式会社

                                                            ここ数日ホンダがサイバー攻撃を受けたというニュースが世界各国で報じられています。 本記事では、一部で関連性が指摘されているVirusTotalにアップロードされたSNAKEランサムウェアの検体(※)について解析を行い、現時点までに判明した内容を簡単ですが共有します。海外ではすでにいくらか情報は出ているものの、日本語での解析記事はあまりないと思われるため何かの参考になれば幸いです。 ※ハッシュ値:d4da69e424241c291c173c8b3756639c654432706e7def5025a649730868c4a1 なお弊社では、本検体がホンダに対するサイバー攻撃と関連があるかどうかは把握しておらず、本記事はあくまで上記ハッシュ値の検体の解析結果に終始している点をご了承ください。 ■検体調査 まず、当該検体は以下の通り、日本国内から6/8頃にVirusTotalにアップロードされてい

                                                              SNAKE(EKANS)ランサムウェアの内部構造を紐解く | 技術者ブログ | 三井物産セキュアディレクション株式会社
                                                            • GitHub - conwnet/github1s: One second to read GitHub code with VS Code.

                                                              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 - conwnet/github1s: One second to read GitHub code with VS Code.
                                                              • フィーチャーフラグを管理するためのOpenFeature | フューチャー技術ブログ

                                                                はじめにTIG DXユニット真野です。 CNCF連載の2本目はクラウドネイティブなフィーチャーフラグの標準とAPI、SDKを提供するOpenFeatureについてです。 フィーチャーフラグとはフィーチャーフラグとはコードを変更せずに、フラグを使って機能を有効/無効化する開発/デプロイ手法のことです。一般的なユースケースとしては、特定のユーザーに対して再起動とか再デプロイをせずに、新機能を有効化したいといった場合に役立ちます。信頼度が高くなったらより段階的に広範囲に対象を広げていくと安心ですね。この使い方だけであれば、カナリアリリースを想像しますが、他にも次のようなユースケースが考えられます。 初期から契約している特別な顧客(あるいはプレミアムプランに契約している顧客)に向けて開発した機能を提供する バグが見つかったので、該当機能を無効化してアプリの振る舞いをロールバックする 繁忙期にシステ

                                                                  フィーチャーフラグを管理するためのOpenFeature | フューチャー技術ブログ
                                                                • ポートが閉じてることを外部から監視するポートスキャナー(slack通知付き) - Code Day's Night

                                                                  IP制限しているTCP 22(sshd)や3306(MySQL)のようなポートが空いていないかチェックするツールを作りました。 たとえば設定ミスで22番ポートがすべてのIPを許可している状態になってしまっていたというケースがありそうで、サーバ台数が数百台になってくるといちいち気にしているのが面倒なのでチェックする簡易ポートスキャナーを作りました。 github.com 外部監視ツールだとポートが空いてるか、任意の文字列が返るかなどのチェックはできますが、ポートが閉じられてることというのを簡単に管理するのが意外と手間だと感じたのがきっかけです。 Go言語で作ってるのでバイナリにして実行もできます。 使い方 goが動く環境を用意して、 echo "example.com\nexample.net" | go run aite9 -tcp 22,3306 のようにすると次のように一気にポートをス

                                                                    ポートが閉じてることを外部から監視するポートスキャナー(slack通知付き) - Code Day's Night
                                                                  • Goのカバレッジツールを使いこなす | gihyo.jp

                                                                    はじめに テストでコード品質を担保していくことは、継続的インテグレーションの観点などで必要不可欠です。そして、十分なテストコードが書かれているかどうかの指標として、よく使われるものといえばテストカバレッジがあります。 Goではgo testコマンドと、go tool coverコマンドがカバレッジ計測の機能を担っています。今回は、これらのツールをより深く使い込んでいくために、既存機能の一歩進んだ使い方や最新機能について紹介します。 なお、本記事で紹介しているコマンドなどはmacOSで実行した場合の例となります。 オリジナルのカバレッジ統計データを集計する まずは既存のカバレッジの統計データを取得する方法を振り返り、より詳細な情報を集計するアプローチについて紹介します。 Goのカバレッジツールで出力できる統計データ 既存のgo testコマンドおよびgo tool coverコマンドで出力で

                                                                      Goのカバレッジツールを使いこなす | gihyo.jp
                                                                    • 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
                                                                      • What it was like working for GitLab

                                                                        I joined GitLab in October 2015, and left in December 2021 after working there for a little more than six years. While I previously wrote about leaving GitLab to work on Inko, I never discussed what it was like working for GitLab between 2015 and 2021. There are two reasons for this: I was suffering from burnout, and didn't have the energy to revisit the last six years of my life (at that time)I w

                                                                        • 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
                                                                            • Goアセンブリ入門 - Qiita

                                                                              この記事は Chapter I: A Primer on Go Assembly を翻訳、加筆したものです。 この記事では以下のような人を想定しています。 Go言語の文法を理解している サブルーチンコール時の一般的なスタックの挙動を理解している 環境 擬似アセンブリ Goコンパイラが出力するアセンブリは、抽象化されたものであり、実際のハードウェアにマッピングされていません。 Goアセンブラはこの擬似アセンブリを対象のハードウェアに沿った機械語に変換します。 Javaのバイトコードのようなものを想像するとわかりやすいかもしれません。 このような中間層を設けることの最大の利点は新しいアーキテクチャに対応するのが楽になることです。 詳細を知りたい場合は、Rob Pike氏著の The Design of the Go Assemblerを見てください。 Goアセンブリを知るためにもっとも重要なこ

                                                                                Goアセンブリ入門 - Qiita
                                                                              • 軽量版Googleアプリ「Google Go」、日本を含む世界で公開 音声読み上げ機能も

                                                                                米Googleは8月20日(現地時間)、主に新興国市場向けに展開している「Android Go」の軽量検索アプリ「Google Go」を世界で公開したと発表した。日本でもGoogle Playストアからダウンロードできる。 Google Goは、2017年12月に発表したローエンド端末向けOS「Android Oreo(Go edition)」のGoogleアプリとして登場した。アプリ容量が約7MBと軽量で、ネットワークが不安定な環境でも検索が可能という。通常のGoogleアプリでも可能な、オフラインでの検索をネットに接続できてから表示する機能も備える。 Google Goには検索の他に、音声検索、画像およびGIFの検索、翻訳、「Google Lens」、Webページの読み上げ機能もある。Google Lensについては、Google I/O 2019で予告されていた。 Webページの読み

                                                                                  軽量版Googleアプリ「Google Go」、日本を含む世界で公開 音声読み上げ機能も
                                                                                • Visual Studio Codeで使えるリモート環境のdevcontainerが意外と便利そうだったのでまとめ

                                                                                  試してたらたまたまVisual Studio Code(vscode)のdevcontainer(Remote Container)が、Remote SSH経由でリモート環境でも使えることを知ったので、devcontainer用の環境構築方法やdevcontainerの構築方法についてまとめてみた 今まではローカル環境のdockerか、codespaceでしか利用できないのかなと思っていたのだけど、リモート含めて利用できるとかなり便利そうな印象だったので一通り試してみました 最近はRemote SSHでリモート環境を利用するケースが多いのでリモート環境で使えないならそんなに使えないかなと思ってたんだけど、普通にRemote SSH経由でdevcontainer使えたのでかなり便利そうだった devcontainerについてはこちらを参照してもらえればと はじめに 結論から言うと以下のような

                                                                                    Visual Studio Codeで使えるリモート環境のdevcontainerが意外と便利そうだったのでまとめ