並び順

ブックマーク数

期間指定

  • から
  • まで

401 - 440 件 / 2563件

新着順 人気順

golangの検索結果401 - 440 件 / 2563件

  • 深層学習モデルの実装を爆速にするVSCodeの設定メモ - May the Neural Networks be with you

    こんにちは。@shunk031です。 新型コロナウイルスが猛威を奮っていますね。 不要不急の外出は控えるのが大切そうです。 こういう時は引きこもって論文を読むのが一番です。 今回はコードエディタであるVSCodeで、深層学習モデルの実装を爆速にするための設定についてメモします。 深層学習モデルの実装をする際にはリモート上にあるGPUを搭載したサーバで実装をしたりデバッグすることが非常に多いです。 VSCodeはこうしたリモートでのコード編集およびデバッグを簡単に行える仕組みを多数揃えています。 本記事では、深層学習モデルの実装に頻繁に利用されるPythonを対象に、以下の観点からモデルの実装を爆速にする設定や機能について紹介します: Pythonの開発環境の構築 リモートのGPUサーバに接続するための設定 深層学習モデルの実装・デバッグを簡単にする機能 おすすめのショートカットキー・拡張機

      深層学習モデルの実装を爆速にするVSCodeの設定メモ - May the Neural Networks be with you
    • 中身が不定のJSONオブジェクトをGo言語で扱うのに mattn/go-jsonpointer が便利だった - えいのうにっき

      今日書くのは、先日Go言語の個人プロジェクトである Pixela に手を加えた際に実感したことについて。 先日手を加えたものの一部に、以下のようなものがあった。 > 以下のようなコマンドを実行してみましょう。 > > curl -X GET https://pixe.la/v1/users/a-know/graphs/stopwatch-test/20200504 -H 'X-USER-TOKEN:thisissecret' > > Pixela では、各日付ごとのデータを pixel と呼んでいるのですが、その詳細を取得できるコマンドです。`20200504` のところは詳細を確認したい日付を指定します。このコマンドの実行がうまくいけば、以下のような結果が表示されると思います。 > > {"quantity":"0.50","optionalData":"{\"stopwatchUsag

        中身が不定のJSONオブジェクトをGo言語で扱うのに mattn/go-jsonpointer が便利だった - えいのうにっき
      • Golangのパッケージ名はどうするのが正解か

        https://go.dev/blog/package-names を訳してみる Introduction Go code is organized into packages. Within a package, code can refer to any identifier (name) defined within, while clients of the package may only reference the package’s exported types, functions, constants, and variables. Such references always include the package name as a prefix: foo.Bar refers to the exported name Bar in the imported pack

          Golangのパッケージ名はどうするのが正解か
        • Redis Clusterとgo-redisの深刻な性能劣化を解決した話 - ゆううきブログ

          さくらインターネット Advent Calendar 2020の23日目です。 現時点では最新版のRedis 6.0のRedis Clusterに対して、Go言語の代表的なRedisクライアントライブラリであるgo-redisからアクセスしたときに、性能が深刻なレベルで劣化しました。 この記事では、ミドルウェアを利用したGo言語アプリケーションの性能劣化に関する問題調査の事例として、この性能劣化を修正するまでの話をまとめました。 go-redisへのPull Requestはhttps://github.com/go-redis/redis/pull/1355です。 はじめに 半年ほど前の論文の締め切りに追われていたある日、評価実験のためにRedisを使った時系列データベースのプロトタイプを開発していました。 ベンチマークツールでプロトタイプの性能を測定したところ、単一インスタンスのRed

            Redis Clusterとgo-redisの深刻な性能劣化を解決した話 - ゆううきブログ
          • Go 1.16連載が始まります | フューチャー技術ブログ

            VSCodeも1.53でInsiderでない安定板もM1対応になりますし、GoLandもネイティブ版がリリースされました。Rosetta2でも快適だった環境はますます快適になっています。 それ以外だとlinux/riscv64対応が改良されていて、個人的には気になっています。 ランタイムの変化runtime/metricsパッケージが導入されました。runtimeとかdebugとかさまざまな場所に散っていったメトリックス収集機能が集約されました。今サポートしているのはGC関連のメトリックスと、メモリ関連のメトリックス、goroutine数ですね。 あとは、GODEBUG環境変数にinittrace=1を設定すると、各パッケージのinitで消費している時間やメモリの情報が標準出力に表示されます。Google App EngineやらCloud RunやらCloud FunctionsやらAW

              Go 1.16連載が始まります | フューチャー技術ブログ
            • Go 1.19リリース連載始まります GoDoc/ツール周りのアップデート | フューチャー技術ブログ

              まずは、GoDocと、その他ツール周りのアップデートの紹介です。 Docコメントの更新以前、Qiitaの方に、チョットできるGoプログラマーになるための詳解GoDocという記事を掲載しました。 https://qiita.com/shibukawa/items/8c70fdd1972fad76a5ce GoDocの書き方の詳細ですが、以前は空行をあけて段落、インデントをしてフォーマット済みテキスト、URLがあればリンク、という程度のマークアップしかなく、とてもシンプルでした。GitHub FlavorなMarkdownとまでもいかなくても、もうちょっとマークアップが高機能になってほしい、せめてリストだけでも・・・と思っていた日本全国1億2000万のGoプログラマーにとって待望のアップデートが1.19で入りました。 セクションタイトル リンク リスト また、gofmtが改善され、Docコメン

              • Goのdefer文を使うときに気をつけること - Yappli Tech Blog

                サーバーサイドエンジニアの @shuymn です。 Yappliではサーバーサイド領域で利用するプログラミング言語のうちの1つとしてGoを採用しています。 Goには様々な言語機能がありますが、その中の1つにdefer文(defer statement)と呼ばれる機能があります。 本記事ではdefer文の簡単な紹介と実際にプロダクトコードで利用する際に気をつけるべきことを紹介します。 defer文の紹介 defer文を使う時に気をつけること defer文の中身が実行される順番を把握する os.Exitするとdefer文は実行されない defer文で発生するエラーをどうするか defer文に渡した関数の引数は即時評価される forループでループごとにdefer文を実行する方法 defer文はエラー処理より先に書かない さいごに 参考記事 defer文の紹介 defer文はifやforなどの制御

                  Goのdefer文を使うときに気をつけること - Yappli Tech Blog
                • Webアプリケーションにおけるレートリミット、サーキットブレーカー、リトライの役割を調べて実装してみた - RAKUS Developers Blog | ラクス エンジニアブログ

                  はじめに Webアプリケーションにおけるレートリミット、サーキットブレーカー、リトライの役割 リトライ サーキットブレーカー レートリミット レートリミット、サーキットブレーカー、リトライの実装 サンプルアプリケーションの実装 リトライ、サーキットブレーカー、レートリミットを追加 まとめ 年に1度の技術イベント「RAKUS Tech Conference」を開催します!! はじめに こんにちは!エンジニア2年目のTKDSです。 今回は、レートリミット・サーキットブレーカー・リトライについて調べた内容を紹介し、ライブラリを使ってGoで実装してみます。 Webアプリケーションにおけるレートリミット、サーキットブレーカー、リトライの役割 リトライ リクエストが失敗した場合に再試行します。 リトライは、一時的な障害に対して効果を発揮します。 ネットワークの瞬断やサービスの一時的な過負荷など、やり直

                    Webアプリケーションにおけるレートリミット、サーキットブレーカー、リトライの役割を調べて実装してみた - RAKUS Developers Blog | ラクス エンジニアブログ
                  • 【第6回】Go言語(Golang)入門~Twitter API利用編~ – 株式会社ライトコード

                    TwitterAPIとは「ツイート」や「タイムラインの取得」、「リツイート」や「いいね」といったTwitterのサービスを、APIから利用できるサービスです。 今回は、TwitterAPIの「登録方法」や「初期設定」などは紹介しません。 そちらについては、以下の記事で詳しく説明されているようなので参考にしてみてください。 【Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ】 https://qiita.com/kngsym2018/items/2524d21455aac111cdee この記事では、すでにTwitterAPIの利用登録が済んでいる前提のもと、進めていきたいと思います。 Anacondaを入れてOAuth認証をしてみよう!TwitterAPIを利用するにあたって、まずは「OAuth認証」が必要となります 今回は、自前でOAuth認証の実装を

                      【第6回】Go言語(Golang)入門~Twitter API利用編~ – 株式会社ライトコード
                    • フォローしておきたいエンジニア一覧 - One Step Ahead

                      2019/11/27に勉強会の一環で、エンジニアが活用したい情報リソースまとめというタイトルで、情報の取捨選択方法や、情報収集先一覧を紹介させてもらいました。 その中で、「Twitterでフォローしている人おいた方がいい人はいますか?」という質問を受けたので、自分がフォローしているエンジニアのまとめ (Qiitaにそのまま書いてしまうのは、違う気がしたのでブログにまとめておきます。そして、随時更新されていきます。) C# ◆ 岩永信之さん 恐らくC#で検索すれば真っ先に検索上位にあがるサイト『++C++; // 未確認飛行 C』の管理さんです。 情報収集力の高さにただただ驚かされます。 働き始めてから一番助けてもらったであろうサイトの管理人さんなので、もし会う機会があれば誠心誠意お礼を言いたい。 ◆Atsushi Nakamura Twitterの紹介文にあるように「持続可能なソフトウェア

                        フォローしておきたいエンジニア一覧 - One Step Ahead
                      • 【GraphQL × Go】gqlgenの基本構成とオーバーフェッチを防ぐmodel resolverの実装 - LayerX エンジニアブログ

                        こんにちは。SaaS事業でLayerX ワークフローの開発を担当している@sh_komineです。 この記事は、LayerX Advent Calender 2021の16日目の記事です。 LayerX ワークフローではGoとGraphQLをフル活用して開発を行なっています。 www.layerx.jp GraphQLの良さはいろいろと語られていますが、「Goで実際にどう実装するんだ?」と言うところは、gqlgenの簡潔なGet Startedがあるくらいでなかなか手で動かさないと理解できないなという思いがありましたので、graphqlのプロジェクトの基本構成に触れながら、オーバーフェッチを防ぐ実装の仕方について書いていきたいと思います。 本記事は実際の事例ではなく、gqlgen 初学者の全体把握、gqlgenの仕組みについての理解に焦点を当てた記事になります。 以下の流れで話をします。

                          【GraphQL × Go】gqlgenの基本構成とオーバーフェッチを防ぐmodel resolverの実装 - LayerX エンジニアブログ
                        • 【Go/GCP】ライブゲーム「あてっこ!ぷにまるず」を支えるバックエンド技術 - Mirrativ Tech Blog

                          バックエンドエンジニアの makino です。本日は、先日リリースしたライブゲーム「あてっこ!ぷにまるず」のバックエンド技術について紹介します。 ライブゲーム「あてっこ!ぷにまるず」について ライブゲームとは、Mirrativアプリ上で遊べるゲームであり、配信中のゲームに視聴者が介入できることが特徴です。 「あてっこ!ぷにまるず」では、配信中に視聴者を招待して一緒にGvGバトルを楽しむことができます。 開発スタッフがプレイした動画をご紹介📺✨ バウンド数に注目👀⁉ こんなに連鎖できたら気持ちよさそう…🐰💕 動画を参考にレッツ❗チャレンジ💁 SNSスタッフは2回バウンドできました🙌 まだまだ道のりは険しい…🏔 pic.twitter.com/YdZMRKxbgv— 【公式】あてっこ!ぷにまるず (@punimals_jp) 2023年7月18日 Mirrativのライブゲームは

                            【Go/GCP】ライブゲーム「あてっこ!ぷにまるず」を支えるバックエンド技術 - Mirrativ Tech Blog
                          • GitHubリポジトリ作成時の定形作業をTemplate Repositoryで省力化する - BASEプロダクトチームブログ

                            こんにちは。BASE BANK株式会社 Dev Division にて、 Software Developer をしている東口(@hgsgtk)です。Stay Homeで仕事していく中で、ちょっとした面倒事を解消するような小ネタが溜まってきたので、一つお届けします。 TL;DR リポジトリ作成時には、毎回CIの設定・.editorconfig・.gitignoreの配置、最低限のHello Worldコードの作成など、定形作業が存在する 自分たち用のボイラープロジェクトを作成するCLIを用意するのも一つの手だが、気軽にサクッと出来る方法として、GitHubのTemplate Repositoryがある Goプロジェクト作成時に実際に活用しているTemplate Repositoryをご紹介する 背景 BASE BANKでは、「YELL BANK(エールバンク)」というサービスの開発・運営を

                              GitHubリポジトリ作成時の定形作業をTemplate Repositoryで省力化する - BASEプロダクトチームブログ
                            • ブラウザと Tensorflow.js を使った BERT の活用方法を考える

                              .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.js を使った BERT の活用方法を考える
                              • Rails+PostgreSQL+Apartmentでたった1行の変更がレスポンスタイムを3倍速にした話 - KAYAC engineers' blog

                                こんにちは! Tech KAYAC Advent Calendar 2023 11日目を担当する荒賀(@ken39arg)です。 在籍期間15年と弊社の中でかなり古参になってしまった私ですが、アドベントカレンダーを年に2本書くのは初めてです。1 今回の内容は、今年7月に無事に成功したお仕事の話で、完了したらブログに書くように言われていたものです。 が、どうしても筆が進まず、のらりくらりと逃げていたのですが、良い年越しをするためにいい加減書いておくか〜という内容です。 TL;DR Rails + PostgreSQL + Apartment という構成のサービスで下記の1行の設定変更コミットを取り込んだ結果・・・ $ git log -n1 -p 64b39f258e9adde2e55752e4f1d5b6be12bcb216 commit 64b39f258e9adde2e55752e4f

                                  Rails+PostgreSQL+Apartmentでたった1行の変更がレスポンスタイムを3倍速にした話 - KAYAC engineers' blog
                                • Golang でスマートに標準出力テストを行う

                                  Golang で標準出力テストの方法の調査 最近Golangで標準出力をテストする際にどのような方法を取れば良いのか情報も少なく、しばらく迷走していたので、ここで一旦メモとしてまとめておく。 標準出力をテストする方法を模索した結果 今回調査した方法は主に以下の2つ os.Pipe() を駆使して出力先を切り替えて値をキャプチャする Testable Examples を利用する os.Pipe() を駆使して出力先を切り替えて値をキャプチャする まず初めに、標準出力を受け取る関数を定義して、出力先を切り替えて値をキャプチャする方法が妥当であろうと考え、以下のような共通関数を定義して呼び出すことにしました。 func PickStdout(t *testing.T, fnc func()) string { t.Helper() backup := os.Stdout defer func(

                                    Golang でスマートに標準出力テストを行う
                                  • コンテナイメージのlazy pullingをcurlで試してみる - knqyf263's blog

                                    はじめに 参考 Stargz 概要 詳細 HTTP Range 互換性 Stargzまとめ eStargz 概要 最適化 TOC, TOCEntry Footer Stargz Snapshotter eStargzまとめ 実験 トークン取得 インデックス取得 マニフェスト取得 Footer取得 TOC取得 ファイル取得 実験まとめ 余談 応用例 自作ライブラリ 計測 まとめ はじめに コンテナイメージのlazy pullingが各ツールで利用可能になりつつあるようです。以下は stargz-snapshotter のメンテナである @TokunagaKohei さんによるブログです。 medium.com lazy pullingが何かを簡単に説明しておくと、コンテナイメージ全体を最初にpullせずにコンテナ実行後に必要なファイルのみを遅延でpullするものです。docker runしよ

                                      コンテナイメージのlazy pullingをcurlで試してみる - knqyf263's blog
                                    • An Introduction To Generics - The Go Programming Language

                                      The Go 1.18 release adds support for generics. Generics are the biggest change we’ve made to Go since the first open source release. In this article we’ll introduce the new language features. We won’t try to cover all the details, but we will hit all the important points. For a more detailed and much longer description, including many examples, see the proposal document. For a more precise descrip

                                        An Introduction To Generics - The Go Programming Language
                                      • Go1.17における go get の変更点 | フューチャー技術ブログ

                                        The Gopher character is based on the Go mascot designed by Renee French. TIGの辻です。 Go 1.17連載の5日目の記事です。本記事ではGo1.17の go get に関するアップデートの詳細をお伝えします。 go get に関する変更点サマリ モジュール外からの go get におけるコマンドインストール時に、警告を出力する go get の -insecure フラグは使えなくなった、代わりに環境変数 GOINSECURE を使う モジュール外からの go get におけるコマンドインストール時に、警告を出力するgo get 時の警告Go1.16のリリースノートでも、コマンドのインストールで go get を使うのは非推奨、とお知らせがありましたが、Go1.17では、モジュール外からコマンドのバイナリを go

                                          Go1.17における go get の変更点 | フューチャー技術ブログ
                                        • 欲しかったのはGoが使えてセキュリティが確実なミドルウェア 「とりあえず作りたい」から完成した認証リバースプロキシ

                                          「golang.tokyo」は、プログラミング言語のGoの導入企業のメンバーが集まり、Goの普及を推進するコミュニティです。ここで、フューチャー株式会社の渋川氏が登壇。GoでWebサービスを作る時の悩みから、認証リバースプロキシを作成した話を紹介します。 自己紹介 渋川よしき氏:フューチャー株式会社の渋川が発表します。まず「お前誰よ?」ですが、2017年からフューチャーで働いています。いろいろ本を書いています。『Real World HTTP』のほか、昔のものですが『つまみぐい勉強法』『Goならわかるシステムプログラミング』もあります。最近はよくJavaScriptというか、TypeScriptとGoとPythonを書いています。ほかに仕事でFlutterもやっています。 著書の『Real World HTTP』はちょこちょこ増刷もされています。買ってくれた方、ありがとうございます。実は今

                                            欲しかったのはGoが使えてセキュリティが確実なミドルウェア 「とりあえず作りたい」から完成した認証リバースプロキシ
                                          • マルチアーキテクチャ対応イメージのビルドをどうにか早くしたかった - ぽよメモ

                                            マルチアーキテクチャ対応イメージって何? どうやって作るか docker manifestコマンドを使う docker buildxコマンドでビルドする buildxとQEMUによるビルドは遅い CIでのビルドを速くしたい アーキテクチャごとに別ジョブでビルドする クロスビルドを活用する buildxに対する雑感 結論 参考 マルチアーキテクチャ対応イメージって何? 最近ではApple Siliconの登場や、Oracle CloudのAmpere A1 Computeインスタンスなど、ARMアーキテクチャ採用のプロセッサに実際の開発などで触れる機会も増えてきました。 現在広く流通するx86_64に対応するIntelやAMD製のプロセッサと比べて、ARM系のCPUには高い省電力性能などに期待が集まっています。趣味開発レベルの話をすると、Oracle CloudのAlways FreeなA1

                                              マルチアーキテクチャ対応イメージのビルドをどうにか早くしたかった - ぽよメモ
                                            • Ruby Parser開発日誌 (1) - かねこにっき

                                              Error Tolerant parserに関するアイデア 9月半ばに行われたRubyKaigi 2022以来、3ヶ月くらいError Tolerant parserについて調べたり考えたり実装をしたりしています。 途中でもいいからなにかにアウトプットしておくとよいというアドバイスをもらったので、今現在の状況や考えていることを書いておこうと思います。 Error Tolerant parserとは? どうしてそれが欲しいの? 通常parserはユーザーの入力を受け取り その入力がそのプログラミング言語にとって、validなものか否かをチェック validな場合、その後の工程にとって都合のいいデータ構造(例えばAST)に変換し、後工程に渡す invalidな場合、Syntax Errorをレポートする といった処理を行います。 しかしIDEやLSP(Language Server Proto

                                                Ruby Parser開発日誌 (1) - かねこにっき
                                              • PubSub/Redisを用いたGoによるスケーラブルなworkerの構築と運用 | メルカリエンジニアリング

                                                こんにちは。メルカリのNotification teamでソフトウェアエンジニアをしている@naruseです。 この記事は、Mercari Advent Calendar 2021 の19日目の記事です。 はじめに 私が所属しているBusiness Platform Notification teamでは、2つの役割で通知周りの基盤を担当しています。 1つ目はアプリケーションとしての役割の通知です。メルカリでは、アプリ内でのお知らせや個別メッセージ、やることリストなどを提供しています。私たちはそれらの膨大なデータを管理し、作成や取得のリクエストに応えています。これらの膨大なデータに対する私たちのチームの過去の記事として、昨年のAdvent calenderの一部である本番稼働中の Spanner にダウンタイム無しに57時間かけてインデックスを追加して得た知見をぜひご覧ください。 2つ目は

                                                  PubSub/Redisを用いたGoによるスケーラブルなworkerの構築と運用 | メルカリエンジニアリング
                                                • 2020 年 2 月の SameSite Cookie の変更: 知っておくべきこと

                                                  .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

                                                    2020 年 2 月の SameSite Cookie の変更: 知っておくべきこと
                                                  • WebAssemblyとは

                                                    こんにちは、HashHubエンジニアの白井です。 本日のTech Blogは「WebAssemblyについてゆーるく調べてみた」です! ブロックチェーン業界にいる方であれば、Ethereum 2.0ではWebAssembly(WASM)でコントラクトが書けるということを聞いたことがあるかと思います。 今回はブロックチェーンのことは少なめで、そもそもWebAssemblyって何ってことを説明しようと思います。 WebAssemblyとはプログラミング言語やライブラリの名前ではなく、ブラウザでプログラムを高速実行するための、「ブラウザ上で動くバイナリコードの新しいフォーマット(仕様)」です。 Google, Microsoft, Mozzila, Appleによって仕様が策定され開発が進められています。 WebAssembly (abbreviated Wasm) is a binary in

                                                      WebAssemblyとは
                                                    • ISUCON12予選 スコア4位相当でしたが失格になりました - Classi開発者ブログ

                                                      TL;DR こんにちは。Classi開発部のminhquang4334です。 今年は開発支援部のhenchiyb先輩と一緒に 2回目でyasuoチームとして ISUCON12の予選に参加しました (参考: 1回目で参加したブログ)。 最終結果は予選通過スコアを超えて、 4位/700チーム相当でしたが、SecurityGroupの TCP:8080 ポートがオープンされていたため、レギュレーションに引っ掛かって失敗しました。 以下のチームは予選通過スコアを記録していましたが、追試において失格となっています。 yasuo 環境チェックにおいて、SecurityGroupの TCP:8080 ポートがオープンされていた このブログでは積極的に自分の感想やチームがやったことを共有したいと思っています。 全体的な感想 正直、悲しい気持ち半分、嬉しい気持ち半分で戸惑っています。予選の実施前には、ここま

                                                        ISUCON12予選 スコア4位相当でしたが失格になりました - Classi開発者ブログ
                                                      • Rustのスレッドとチャネルと共有メモリの話

                                                        この記事ではRustのスレッドとチャネルについてご紹介します。最後に共有メモリについても少しだけ触れます。対象としてはgolangを書ける程度の中級者レベルを想定しています。 公式ドキュメントについて Rustの公式ドキュメントはとても良く書けており英語の勉強にもなります。プログラミング・チュートリアルは圧巻ですのでぜひ原文で読んでみてください。 スレッド RustのスレッドはOSスレッド(1:1 threading)になります。GolangやJavaはグリーンスレッドです。 This model where a language calls the operating system APIs to create threads is sometimes called 1:1, meaning one operating system thread per one language thr

                                                          Rustのスレッドとチャネルと共有メモリの話
                                                        • SlackでクイズができるSlack Appsを作った - Lento con forza

                                                          こんばんは! id:kouki_dan です! この記事は、はてなエンジニア Advent Calendar 2019の8日目の記事です。 昨日は id:hokkai7go さんのはてなSREチームにおけるスクラムの実践というタイトルでJuly Tech Festa2019に登壇しますでした。July Tech Festa2019はちょうど今日行われているみたいなので、どんな発表が行われるか楽しみですね。 今日はSlackで遊ぶ話をします。 僕とSlack 僕はSlackで遊ぶのが好きで、これまでSlack上で将棋ができるようにしたり、Slack上でボンバーマンで遊べるようにしたりしてきました。今日はSlackで遊ぼうシリーズ第三弾として、最近作ったものの紹介と技術的な話をします。 ところで、僕は最近クイズにハマっています。みんなで早押しクイズという早押しクイズのアプリでは、Aランクまでや

                                                            SlackでクイズができるSlack Appsを作った - Lento con forza
                                                          • Golangを用いた様々な計算の高速化 - Qiita

                                                            0.はじめに 競技プログラミングでは制限時間内に解を求めるようなプログラムが求められます。競技プログラミングでなくとも、必要に応じてプログラムを高速化したい場面は無数にあります。逐次処理のプログラムを並行化することで処理を高速化する、並行プログラミング/マルチスレッドプログラミングを活用できる機会は多いのではないでしょうか。1 本記事は Golang で逐次処理で計算できる処理を並行化/高速化することで、並行処理の威力や Golang の並行化の書きやすさを体感することを目標とします。 1.様々な計算の高速化 Go at Google: Language Design in the Service of Software Engineering にもあるように Golang の並行処理は CSP をベースにしており、並行処理が書きやすい言語と言えます。 Golang に組み込まれている g

                                                              Golangを用いた様々な計算の高速化 - Qiita
                                                            • Google は皆さんが使わなくなったアカウントも保護しています

                                                              .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 #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 71 Ads API 11

                                                                Google は皆さんが使わなくなったアカウントも保護しています
                                                              • SBOM in Action: 「ソフトウェア部品表」で脆弱性を見つける

                                                                .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

                                                                  SBOM in Action: 「ソフトウェア部品表」で脆弱性を見つける
                                                                • How Docker Desktop Networking Works Under the Hood | Docker

                                                                  Modern applications make extensive use of networks. At build time it’s common to apt-get/dnf/yum/apk install a package from a Linux distribution’s package repository. At runtime an application may wish to connect() to an internal postgres or mysql database to persist some state, while also calling listen() and accept() to expose APIs and UIs over TCP and UDP ports. Meanwhile developers need to be

                                                                    How Docker Desktop Networking Works Under the Hood | Docker
                                                                  • A Pure HTTP/3 Alternative to MQTT-over-QUIC in Resource-Constrained IoT の備忘録 - neko--suki’s blog

                                                                    HTTP3 でpub-subとMQTT-over-QUICの比較をIoTの観点から行った論文の備忘録です。 IoTという文脈で、ネットワークエミュレータに遅延と帯域を設定して、性能(最初のデータが到達するまでの時間、通信終了までの時間やスループット)、ネットワークへのオーバーヘッド(バイト量とパケット数)、リソースの使用状況(CPU使用率、RAM使用量)、の3つを比較しています。 性能面では、H3 pub-subのほうが優れた結果が得られていますが、ネットワークのオーバーヘッドやリソースの使用状況はHTTP3 pub-subのほうが MQTT-over-QUICよりも多くのリソースを使用する結果となったようです。 これらの結果から、IoTという文脈を考えた場合、トレードオフが存在しているということを示唆しています。 元論文は下で読めます。 arxiv.org 実装について H3 pub-s

                                                                      A Pure HTTP/3 Alternative to MQTT-over-QUIC in Resource-Constrained IoT の備忘録 - neko--suki’s blog
                                                                    • ハードシングスを引き起こしたHype Driven Development(HDD) | HiCustomer Lab - HiCustomer Developer's Blog

                                                                      Hype Driven Development(HDD) シード・アーリーステージのスタートアップの開発者のみなさん、こんにちは。突然ですが、ソフトウェア開発していますか?毎日設計しコードを書いていますか?私は毎日しています。毎日ビジネスドメインと向き合っております。今日はそんなみなさんに、弊社のソフトウェア開発の失敗談( ハードシングスへの突入と脱出 の「根の深い技術的負債」を掘り下げる内容になっています)を共有します。この失敗からなにか参考になるものがあれば幸いです。 実際に起ったこと 2018年初頭にサーバレスとDDDの導入 弊社のHiCustomerサービスのアーキテクチャはサーバーレスとDDDを軸に設計されました。サーバーレス環境としては、AWS APIGateway、AWS Lambda、AWS DynamoDBを使ったAWS推奨の構成を採用しました。DDDはGolangを使用

                                                                        ハードシングスを引き起こしたHype Driven Development(HDD) | HiCustomer Lab - HiCustomer Developer's Blog
                                                                      • go-cmpを使う理由とTipsの紹介 - 技術メモ

                                                                        はじめに これは Go 4 Advent Calendar 2020 8日目の記事です。 Goのテストにおいて、構造体を含めて型の値を比較したいという場合は往々にしてあります。ロジックの結果はなんらかの値として作用することが多いですから、型の値を比較したい、というのは自然です。私は型の値が等価であるかどうか判定するために、go-cmp というライブラリを使うことが多いです。 github.com しかしGoにおける等価性の仕様は決まっていますし、標準ライブラリの reflect パッケージにも DeepEqual という deeply equal, かどうか判定するメソッドがあります。そこで本記事ではなぜわざわざ go-cmp を使っているのかという理由と、go-cmp を使ったときにどのようにして使うか?という go-cmp の使う上でよく使う以下のTipsを提供したいと思います。 Ti

                                                                          go-cmpを使う理由とTipsの紹介 - 技術メモ
                                                                        • 【第2回】Go言語(Golang)入門~Firestore導入編~ – 株式会社ライトコード

                                                                          Firestoreを利用してみるこれから何を書いていくか…? 迷ったのでTwitterでアンケートを取ってみました! 今日入門編書いたけど、次のGolangの記事どんなのがいいかな — 笹のり (@sasa_nss_app) September 5, 2019 結果、「Fire Storeを使ったNoSQLの何か」が1位に! 今回は、Firestoreでなにかやってみようかと思います! Firestoreとは? FirebaseやGCPが提供しているサービスの1つで、いわゆるNoSQLのクラウドデータベースです モバイルアプリケーションなどでは、各ローカルにデータベースを持ったりすることも多いですが、API側でデータを保存することも多いはずです。 本来ならば自分たちでデータベースを用意し、APIとしてのエンドポイントを用意しなければいけません。 しかし、Firestoreを利用するとGUI

                                                                            【第2回】Go言語(Golang)入門~Firestore導入編~ – 株式会社ライトコード
                                                                          • Cloud FunctionsをGoで書く。またはFirebaseのためのマイクロサービスアーキテクチャ - laiso

                                                                            Firebase Advent Calendar 2019 の17日目です。16日目はKesin11さんの「Firebase Emulator Suiteをフル活用してTDDで開発しよう」でした。 はじめに FirebaseプロジェクトでCloud Firestoreを利用する時は通常Node.jsによるCloud Functionsでトリガーとなる処理を記述します。その他には関連するAPIサーバー、WebアプリのフロントエンドのSSR、バックエンドの非同期処理など、多くの場面でCloud Functionsが活用されています。 この開発→デプロイサイクルをお手軽に行ってくれるのがfirebase-toolsというnpmモジュールです。JavaScriptでFunctionを実装し、firebase deployコマンドを実行するだけでFirebaseプロジェクト用のCloud Funct

                                                                              Cloud FunctionsをGoで書く。またはFirebaseのためのマイクロサービスアーキテクチャ - laiso
                                                                            • GoでgRPCのAPIテスト環境を構築する - enechain Tech Blog

                                                                              はじめに JCEXで実践しているAPIテストについて 単体テスト 負荷テスト なぜAPIの単体テストを行っているのか API単体テストで使用するパッケージ 実例によるAPI単体テストの環境構築 前提 ステップ1: テストしたいAPIの定義 ステップ2: テストの作成 ステップ3: APIの実装 ステップ4: DBを使ったテスト ステップ5: ヘルパー関数化 ステップ6: テーブル駆動テストに変える ステップ7: フィクスチャを使ったテスト まとめ おわりに はじめに こんにちは、enechainのGXデスクでエンジニアをしている@ejiです。 GXデスクは、『日本気候取引所 - Japan Climate Exchange』 (以下 JCEX) のサービス開発を担当しており、 私は主にBFFとバックエンドのAPIをGoで開発しています。バックエンドのAPIは gRPC を使用しています。

                                                                                GoでgRPCのAPIテスト環境を構築する - enechain Tech Blog
                                                                              • 【第3回】Go言語(Golang)入門~Firestoreデータ操作編~ – 株式会社ライトコード

                                                                                package main import ( "context" "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) func main() { // 初期化 ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } // データ追加 _, _, err = client.Collecti

                                                                                  【第3回】Go言語(Golang)入門~Firestoreデータ操作編~ – 株式会社ライトコード
                                                                                • smartcache ~ プリフェッチするインメモリキャッシュ | おそらくはそれさえも平凡な日々

                                                                                  https://github.com/Songmu/smartcache smartcacheというGoのインメモリキャッシュライブラリを書いた。 一般的に、キャッシュを実装する場合以下のような問題が起こりがちです。 キャッシュ更新時にリクエストが殺到してしまう(いわゆるThundering Herd問題) キャッシュ生成に時間がかかる場合、キャッシュ更新時に処理がブロックしてしまう smartcacheは上記の問題を以下のアプローチで解決しています。 キャッシュ更新処理を一本化する Goの場合 golang.org/x/sync/singleflight を使えば簡単! キャッシュ期限切れ前に内部的に更新処理をおこなう いわゆるプリフェッチ的な処理 使い方 コンストラクタにキャッシュの実際の有効期限、softな有効期限、そしてキャッシュ生成関数を渡します。 // コンストラクタ ca :

                                                                                    smartcache ~ プリフェッチするインメモリキャッシュ | おそらくはそれさえも平凡な日々