タグ

goに関するmanabouのブックマーク (105)

  • GitHub - zetako/cwl.go: CWL Parser and Runner.

  • 鍵生成には暗号論的に安全な乱数を使おう

    SSHの鍵生成には暗号論的に安全な疑似乱数を使おうという話。 暗号論的に安全ではない疑似乱数がどれだけ危険かというのを、簡単なCTFを解くことで検証してみました。 背景 SSH公開鍵に自分の好きな文字列を入れる、という記事を読みました。 かっこいいSSH鍵が欲しい 例えばこのSSH公開鍵、末尾に私の名前(akiym)が入っています。 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFC90x6FIu8iKzJzvGOYOn2WIrCPTbUYOE+eGi/akiym そんなかっこいいssh鍵が欲しいと思いませんか? かっこいい!真似してみたい! そこまではいいんですが、問題は実装です。 秘密鍵を生成する際の乱数生成には高速化のために Goのmath/randを使っていますが、乱数が用いられるのは公開しない秘密鍵自体であり、このアルゴリズム自体はLagged Fib

  • Go testにおける可読性を保つ方法を考える - every Tech Blog

    はじめに TIMELINE開発部の内原です。 日はGo言語のテストにおける可読性について考えてみます。この記事を読んでいただいている皆さんにも、テストを書いていて以下のような問題を感じた経験があるのではないでしょうか。 既存のコードに機能追加をするためテストコードにもテストケースを追加しようとしたが、テストコードが複雑で読み解きづらく、テストを追加するのに苦労した テストケースの種類が多く、少しデータを追加しただけでも既存のテストが動かなくなる テストデータの登録方法が複雑で、テストコードの実装以前に手間取る 上記のような問題に対処するべく、実践的なシナリオに従ってGo言語のテストコードを実際に書きつつ都度改善していくことにします。 仕様(ver.1) ユーザ情報には名前、状態(有効、無効)とがある 有効なユーザ一覧を返却する関数 LoadActive() を実装する。その際並び順はID

    Go testにおける可読性を保つ方法を考える - every Tech Blog
  • Goのテスト安定性向上のためにFlakyなテストを再試行する機能を導入する提案 - tomato3713’s blog

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

    Goのテスト安定性向上のためにFlakyなテストを再試行する機能を導入する提案 - tomato3713’s blog
  • Go Secure Coding Practice の日本語翻訳を公開します - Techtouch Developers Blog

    はじめに Go Secure Coding Practice とは コンテンツ一覧 良かったところ 注意すべきところ 最後に はじめに こんにちは。SRE の izzii です。 テックタッチのエンジニア規模もそれなりに拡大し、若手の採用も進んできたため、セキュアコーディングを徹底していきたいという思いがあり、まずは意識改革ということで勉強会を実施しました。セキュアコーディングを目的とした場合には教育だけでなく Static application security testing (SAST) の導入といった方法もあるのですが、まずは自分を含めた開発メンバーにノウハウをインストールすることにしました。セキュアコーディングへの意識が高まれば、いづれ SAST の導入の際に抵抗感も少ないだろうと考えています。いきなり SAST を導入しても、誤検知が煩くて浸透しないリスクもありうると考えてい

    Go Secure Coding Practice の日本語翻訳を公開します - Techtouch Developers Blog
  • なんとなくプレイしてもそこそこ囲碁のルールがわかるようになる「ぷよ碁」

    世の中には将棋やチェスなどさまざまなボードゲームがありますが、これらが駒を動かして「王(キング)を取った方の勝ち」であるのに対して、囲碁は石を置いて「多くの陣地を取った方が勝ち」というルールであるため、素人目では盤上で何が起きているのか理解するのが難しいもの。そんな囲碁の詳細なルールを理解していなくても、プレイするだけでなんとなくルールがわかるようになるのが「ぷよ碁」です。初心者が囲碁を楽しみながら理解するにはピッタリなゲームということで、さっそく囲碁初心者がプレイしてみました。 ぷよ碁 - 無料囲碁ブラウザゲーム https://puyogo.app/ 「ぷよ碁」の画面は以下の通り。上部に5×5の盤面が配置されており、その下に白石と黒石の数が表示されています。さらにその下には「パス」と「降参」というボタンが配置されており、文字通りパスと降参が可能。 初期状態だと白石の下に「対 AI」と表

    なんとなくプレイしてもそこそこ囲碁のルールがわかるようになる「ぷよ碁」
  • 囲碁のルールをこれ以上ないくらい分かりやすく解説してみる。その1 - 遊びの教室とまとくんブログ

    囲碁のルールは簡単だけど謎なところが多い 「ヒカルの碁」連載当時から、ずっと囲碁を続けている囲碁好きのねずみです。 囲碁って難しそう・・とは、よく言われますが 決してそんなことはないのです。基ルールはすごく簡単なのです。 実は囲碁の分かりにくさは、基ルールの1歩先のところにあります。 そこで今回は、ねずみが全力を尽くして 囲碁の基ルールから1歩先の分かりにくいところまでを、分かりやすく解説してみます。 ねずみは勉強も運動も遊びも「分かりやすく教える」ということを ずっと専門にしてきた、教えるプロフェッショナルです。 まかせといてくださいヾ(^▽^) 基ルールは2つだけ 基ルールは、たったの2つだけです。 この2つさえ知ってしまえば、今すぐにでも囲碁を打つことが出来ます。 囲碁は一度覚えると一生の趣味として役に立つので、ぜひ覚えていってください。 「ここまでは知ってる」という人も多

    囲碁のルールをこれ以上ないくらい分かりやすく解説してみる。その1 - 遊びの教室とまとくんブログ
  • gore 0.4.0をリリースしました! - プログラムモグモグ

    Go言語のREPL、goreの0.4.0をリリースしました。 id:motemenさんに連絡をとって、goreのコミット権をいただきました。 最初はpull requestが溜まっていたので片付けて、細かいバグ修正などを行いました。 しばらく触っていると慣れてきたので、新機能も実装して入れました。 かなり便利になっているので、ぜひアップデートして (またはインストールして) お使いください。 go get github.com/motemen/gore/cmd/gore バグ修正 特定のケースで Evaluated but not used というエラーが出ることがあるのを修正しました 例えばlen(fmt.Sprint(1)) を二回評価すると出ていた おかしなトークンが入力されたらエラーを表示するようにしました 例えば foo # bar と入力すると invalid token: "

    gore 0.4.0をリリースしました! - プログラムモグモグ
  • 囲碁AIブームに乗って、若手棋士の間で「AWS」が大流行 その理由とは?

    囲碁AIブームに乗って、若手棋士の間で「AWS」が大流行 その理由とは?:週末エンプラこぼれ話(1/4 ページ) 人間の能力をAIが完全に上回りつつある「囲碁」の世界。最近では、AIを活用した研究を行う棋士も増えているそうだが、その裏側でAWSが若手棋士の中で大流行しているという。一体何が起こっているのだろうか。 ここ数年、将棋や囲碁といったボードゲームの世界では、AI人工知能)の能力が人間を上回りつつある。特に、Alphabet傘下のDeepMindが開発した囲碁AIAlphaGo」は、世界のトップ棋士を次々と破ったことで、昨今の人工知能ブームの“火付け役”となったのは記憶に新しい。 最近では、プロ棋士たちも研究にAIを使い始めているが、その影響で、若い囲碁棋士たちの間で今「AWSAmazon Web Services)」を利用する人が急速に増えているのだという。一体何が起きている

    囲碁AIブームに乗って、若手棋士の間で「AWS」が大流行 その理由とは?
  • ゲームを解く!Educational DP Contest K, L 問題の解説 - Qiita

    0. ゲームを解くとは 世の中には将棋や、囲碁や、オセロのような複雑で難しいゲームから、マルバツゲームや、割りばしゲームや、立体三目並べのような比較的単純なゲームまで、たくさんの種類のゲームがあります。 この種の二人プレイのボードゲームにはある共通の特徴があります。それは 双方が最善を尽くした場合において、「先手必勝」か「後手必勝」か「引き分け」かが予め決まっている。 そして無限の計算時間と計算機資源さえあれば、それを容易に解析できる。 という点です。このように 「先手必勝」か「後手必勝」か「引き分け」なのかを解析する その必勝手順を求める できれば + α として初期盤面だけでなく、すべての局面について「先手勝ち」か「後手勝ち」か「引き分け」かも特定して最善手も求める という営みが「ゲームを解く」ということであり1、それができたならばそのゲームを「完全に理解した」ということができます。

    ゲームを解く!Educational DP Contest K, L 問題の解説 - Qiita
  • cakes(ケイクス)

    cakesは2022年8月31日に終了いたしました。 10年間の長きにわたり、ご愛読ありがとうございました。 2022年9月1日 ※クリエイターの方へ ・支払調書に関する情報はこちら。 ・過去連載移管先のリンク掲載ご希望や各種お問い合わせは、こちらのフォームから情報をお寄せください。 ※読者の方へ ・そのほかお問い合わせはこちら ※よくあるご質問 ・FAQはこちら クリエイターの作品リンク集 cakesで連載していたクリエイターの作品は下記からご覧いただけます(50音順) ※過去連載の転載先についてリンク集への追加を希望される場合、こちらから作品名やお名前をお知らせください。

    cakes(ケイクス)
  • How a Go Program Compiles down to Machine Code

    Here at Stream, we use Go extensively, and it has drastically improved our productivity. We have also found that by using Go, the speed is outstanding and since we started using it, we have implemented mission-critical portions of our stack, such as our in-house storage engine powered by gRPC, Raft, and RocksDB. Today we are going to look at the Go 1.11 compiler and how it compiles down your Go so

    How a Go Program Compiles down to Machine Code
  • GitHub - ymgaq/Pyaq: PyaqはPythonのみで実装された囲碁プログラムです。深層学習を学ぶための教育目的のコードです。

    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 - ymgaq/Pyaq: PyaqはPythonのみで実装された囲碁プログラムです。深層学習を学ぶための教育目的のコードです。
  • AlphaGo Zero Explained In One Diagram

    Update! (2nd December 2019)I’ve just released a series on MuZero — AlphaZero’s younger and cooler brother. Check it out 👇 How to Build Your Own MuZero Using Python (Part 1/3) How to Build Your Own MuZero Using Python (Part 2/3) How to Build Your Own MuZero Using Python (Part 3/3) Update! (26th January 2018)I’ve just released a post on how you can build AlphaZero using Python and Keras. Check it o

    AlphaGo Zero Explained In One Diagram
  • AlphaGo Zeroの論文を読む その4(自己対局) - TadaoYamaokaの開発日記

    その3の続き 自己対局パイプライン 自己対局パイプラインは、3つの主要な部分から構成される。 最適化 評価 自己対局 これらは並行で実行される。 最適化 ミニバッチサイズ:2,048 (32バッチずつ別々のGPUで実行) ミニバッチデータは直近50万の自己対局のすべての局面からランダムでサンプリング モーメントありのSGDで最適化(モメンタムパラメータ=0.9) 学習率は以下の通り徐々に下げる 1000ステップ 学習率 0-400 400-600 >600 損失関数には、policyの交差エントロピーとvalueの平均二乗誤差の和を使用 policyの交差エントロピーとvalueの平均二乗誤差は等しく重み付けする L2正則化を行う(c=) 損失関数を式にすると以下の通り zは勝敗(-1,1)、vはvalue、はモンテカルロ木探索で求めた局面の遷移確率、はpolicyの遷移確率、はネットワー

  • LLイベント2017の「第2プログラミング言語鑑定団」で鹿野が話したことまとめ

    プログラミング好きにもいろいろあって、仕事で使ってる道具をもっと知りたいという人もいれば、自分が使ったことない道具の話を知りたいという人もいれば、道具はなんでもいいから面白い話がしたいという人もいます。 久しぶりに参加したLLイベントは、そんな多様なプログラミング好きが「全員がアウェーな立場」で交流するという、貴重で面白い機会でした。 実際、「LL」の1つめのLには去年までは「Lightweight」という意味があり、その単語が示す特徴をもった言語のイベントのようにどうしても見えてたんですが、今年からはそういう区切りも公けになくし、Lは「Learn」の意味になったとのことです。 そのLLイベント2017で、「第2プログラミング言語鑑定団」というセッションに出させてもらいました。 司会の小山さんが「Teratail, Yahoo知恵袋などから、それらしい質問をかき集めてマージ」した6パターン

  • GoでとあるAPIサーバを実装し直した話 | メルカリエンジニアリング

    サーバサイドエンジニアの @b4b4r07 です。この記事は Go Advent Calendar 2016 の 19 日目です。今回は Go (Revel フレームワーク) で書かれていた API サーバをフルスクラッチで書き直したお話をします。 Revel とは A high productivity, full-stack web framework for the Go language 公式の説明にあるように、Revel は高機能でフルスタックな Web フレームワークです。 複雑なルーティングや、パラメータのパーシング、テンプレート機能など、Web アプリケーションを作ろうとなったときに必要な手段はたいてい兼ね揃えているようです。公式ドキュメントに詳しく書かれています。 Revel 以外にも Go 製の Web フレームワークは多数あり、有名どころだと以下のようなものが挙げられ

    GoでとあるAPIサーバを実装し直した話 | メルカリエンジニアリング
  • Go で始める JSON-RPC 入門

    Gopher artwork is taken from gophericons. Created by Olga Shalakhina, based on original work by Renée French. Licensed under Creative Commons 3.0 Attributions.この記事は、 Go Advent Calendar 2016 の 15 日目の記事です。 みなさんは、JSON-RPC を使ったことがありますか? この記事では、 Go で JSON-RPC を使用する方法をレクチャーしたいと思います。(※ この記事は、 golang.tokyo #2 での LT 内容をベースに加筆修正を加えたものになります。) JSON-RPC とは概要JSON-RPC は、 JSON を媒体とした Remote Procedure Call です。 そのた

    Go で始める JSON-RPC 入門
  • 型と名前によるGoのコード探索 ― gofind - 詩と創作・思索のひろば

    思いつきでツールを作ってはリスのように忘れ、再発見しては新鮮な気持ちで便利に使う日々です。 一般にプログラミングにおいては、ソースコードを読むことに意外とばかにならない時間を使うもの。特に Go ではデフォルトで標準ライブラリのソースコードが手元にあり、コードを書く際よい教科書になるので、これを読むことも多いはず。 Go は静的に型付けされる言語なのでその点コードは読みやすいけれど、データ構造が不変ではないので、ある構造体のフィールドがどこで書き換わるのかを知るには、処理を追っていくしかない。名前で grep するのもひとつの手ではあるけど、精度はあまり期待できない。 そこで gofind。簡単に言うと、型やパッケージを含めた名前でもって Go のソースコードを検索するツールです。 go get github.com/motemen/gofind/cmd/gofind 使い方は以下の通り。

    型と名前によるGoのコード探索 ― gofind - 詩と創作・思索のひろば
  • goa tips : swagger-ui を使って手っ取り早く API を試す - 押してダメならふて寝しろ

    はじめに 折角 API を作ったら,簡単に試して,仕様も俯瞰的に確認したいものです. そんなわけで,今回は開発環境で使える swagger-ui の tips です. swagger-ui は swagger ドキュメントを閲覧するためのサービスを提供してくれます. しかも API コンソールがついているので,ドキュメントを確認しながらその場で API を試すことが出来ます. github.com これをサービスとして立ち上げて,goa で生成した swagger ドキュメントをセットするというのもまどろっこしいので, goa で生成したサービスを立ち上げると,swagger-ui も一緒にサービスするようにしてしまおう.というのが今回の目標です. swagger-ui を配置 swagger-ui の distフォルダをコピーしてきます. 以下の説明では,作業ディレクトリの swagge

    goa tips : swagger-ui を使って手っ取り早く API を試す - 押してダメならふて寝しろ