タグ

Goに関するkyabのブックマーク (12)

  • 「Mirai」ソースコード徹底解剖-その仕組みと対策を探る

    Miraiボットネットとは Miraiは、2016年9月13日夜、米国のセキュリティジャーナリストBrian Krebs氏のWebサイト「Krebs on Security」に対して行われた大規模なDDoS攻撃に使用されたとして話題になったボットネットです(関連記事)。Miraiは主にWebカメラやルーター、デジタルビデオレコーダーなどのIoTデバイスを踏み台としてDDoS攻撃を仕掛けます。 参考:セキュリティ用語事典:DDoS攻撃 攻撃を受けた後に投稿されたKrebs氏のブログ記事によれば、同サイトを保護していたAkamaiが、ピーク時にはそれまでに経験した最大規模の攻撃の2倍近いトラフィックを観測したそうです。 また、2016年10月21日にTwitterNetflixなどが利用するDNSサービスへ行われたDDoS攻撃でも、Miraiボットネットが利用されていたのではないかと推定され

    「Mirai」ソースコード徹底解剖-その仕組みと対策を探る
  • Golang で Shared Library を出力する。 - Qiita

    Go 1.4 で android に対応していたのでもしかしてそろそろできるんじゃないかなぁとか思いながら githubgo レポジトリを眺めていたら Go 1.5 から buildmode なんていうオプションが追加されていて、そこに c-shared なるものががが。 これは間違いないだろうと試してみました。 (ちなみに試すためには Go 1.5 が必要なので git clone して Go 1.4 でビルドしてください。記事では Go 1.5 の準備は割愛します。) サンプルコードは gist にも上げておきました。 package main import ( "C" "log" ) //export fib func fib(n int) int { if (n < 2) { return n } return fib(n - 2) + fib(n - 1) } func

    Golang で Shared Library を出力する。 - Qiita
    kyab
    kyab 2015/06/10
    きたー
  • (翻訳)Goでのパイプラインとキャンセル - Qiita

    この記事はGo Concurrency Patterns: Pipelines and cancellation - The Go Blogを自分の勉強用に翻訳したものです。 Go Concurrency Patterns: Pipelines and cancellation Introduction(最初に) Go's concurrency primitives make it easy to construct streaming data pipelines that make efficient use of I/O and multiple CPUs. This article presents examples of such pipelines, highlights subtleties that arise when operations fail, and intr

    (翻訳)Goでのパイプラインとキャンセル - Qiita
    kyab
    kyab 2014/12/09
  • goyaccで構文解析を行う - Qiita

    go toolにはyaccというものがある。 これはunixの言語処理系で広く使われるyaccというパーサジェネレータのGoバージョンである。 稿はその使い方を説明するチュートリアルである。 対象読者 goyaccを使う - Qiitaという記事があって、これはgoのyaccを使って簡単な言語の構文解析をして使い方を説明している。 しかし、yaccについての基的な説明が完全ではなく(例えば%%とか)、yaccを触ったことがない人には若干難しい。 従って、私のようなGoの文法は理解しているがyaccを使ったことがない人向けにごく簡単な使い方を説明する。 参考資料 yacc - The Go Programming Languageが公式のドキュメントっぽいが、これもyaccの文法自体は他に任せている。 RHGの速習yaccがとても参考になると思う。 稿はあくまで取っ付き易いチュートリア

    goyaccで構文解析を行う - Qiita
  • Go言語からmrubyのDSLを読み込んでよしなに使う - ローファイ日記

    Go言語便利だけど、文法をこねくり回して内部DSLを作るとかには向いていないので、ルビー風にDSLを読み込ませて設定と替えさせていただきます、と言うのが少し難しい。 いっそGo内部でRubyを組み込んで実行したい。mrubyならできるんじゃね? と思ってやってみたらそれっぽいのができた。 Vagrant、Packer、Consulなど、DevOps対応界隈でその名を知らない者はいない mitchellh さんの mitchellh/go-mruby · GitHub をつかう。 多分だけど、ハシモト氏も同じようなこと考えてたんじゃないだろうか。結局 hashicorp/hcl · GitHub を使われてるけれど。 完成したそれっぽいの.go package main import ( "fmt" "io/ioutil" "os" "github.com/mitchellh/go-mrub

    Go言語からmrubyのDSLを読み込んでよしなに使う - ローファイ日記
    kyab
    kyab 2014/09/18
    これはナイスだなぁ。goランタイム上のRubyで並列もできると!ってのは凄い良さそう。
  • Go の interface 設計 - Block Rockin’ Codes

    history 13/3/31 Tag について追加 intro Go を触ってて interface を用いた設計がまだまだよくわかってなかったので、一旦まとめることにしました。 Go には明示的な継承の機能は無く、 interface も例えば Java のそれとはかなり毛色が違うので、(Class ではなく) Struct の設計に結構癖があると感じます。 Go の interface は言語設計的にもかなり尖っていて、 Go という言語を強く特徴付けていると同時に、 Go 言語自体の開発者たちもこの機能をかなり重要視しています。 例えば、 Go の開発者の一人である Russ Cox 氏によれば Go's interfaces―static, checked at compile time, dynamic when asked for―are, for me, the most

    Go の interface 設計 - Block Rockin’ Codes
    kyab
    kyab 2014/08/16
    構造体とインターフェイス
  • Google グループ

    Google グループでは、オンライン フォーラムやメール ベースのグループを作成したり、こうしたフォーラムやグループに参加したりすることで、大勢のユーザーと情報の共有やディスカッションを行うことができます。

    kyab
    kyab 2014/02/14
    “Well first, all I/Os that can be multiplexed using epoll/kqueue/... will be multiplexed by the runtime.It includes all network/pipe related I/Os.”
  • goroutineがスイッチされるタイミング - Qiita

    goroutineがスイッチされるタイミングについて調べていました。 結論 Go言語で、goroutineは 必ずしも スイッチされるわけではない。 スタックに触れないような、「for(){}」みたいなビジーループをGOMAXPROCSの指定数以上に含ませるとスイッチされなくなる。 goroutineがスイッチされる(主な)条件はこれらと思われる。 - goroutineの関数が最適化でinline化されていない - スタックを操作するような処理を行った - (その他の契機もあるようなので「経緯」で書く) 経緯 処理のないビジーループが有ると、goroutineがスイッチされず処理が止まることに気づきました。 # 処理の中身を全部コメントアウトしてデバッグしていたら気づいた package main func busy() { for { } } func main() { go busy

    goroutineがスイッチされるタイミング - Qiita
    kyab
    kyab 2014/02/12
    goroutineでビジーループを書いた場合とコンテキストスイッチ発生のタイミング。
  • 見えないチカラ: 【翻訳】アクターによる並列性、そしてRubyでGoroutine

    Ilya Grigorikさんの "Concurrency with Actors, Goroutines & Ruby" を翻訳しました。 元記事はこちら: http://www.igvita.com/2010/12/02/concurrency-with-actors-goroutines-ruby/ (翻訳の公開と画像の利用は人より許諾済みです) 翻訳の間違い等があればブログコメントやTwitter(@oshow)などで遠慮無くご指摘ください。 アクターによる並列性、 そしてRubyGoroutine 並列コンピューティングの世界は複雑なものだ。私たちはハードウェア、ランタイム、そして半ダースもの異なるモデルとプリミティブから選択することを考えなければならない: fork / wait、スレッド、シェアードメモリ、メッセージパッシング、セマフォ、そしてトランザクションなど。ゆえに

    見えないチカラ: 【翻訳】アクターによる並列性、そしてRubyでGoroutine
    kyab
    kyab 2014/02/08
    並列処理。スレッドモデルとアクター/goroutineモデル
  • The Go scheduler - Morsing's blog

    30 June 2013 The Go scheduler Introduction One of the big features for Go 1.1 is the new scheduler, contributed by Dmitry Vyukov. The new scheduler has given a dramatic increase in performance for parallel Go programs and with nothing better to do, I figured I'd write something about it. Most of what's written in this blog post is already described in the original design doc. It's a fairly compreh

  • Is Go suitable for building DSL?

    kyab
    kyab 2010/04/20
  • Goでドメイン特化言語も作成可能?(1/3)- @IT

    第6回 Goでドメイン特化言語も作成可能!? 赤坂 けい チームWordProgress 2010/4/19 Cよりはるかにお気軽なGo。クロージャーや無名関数、インターフェイスによる動的結合を使いこなせば内部DSL作成にも使えるかもしれない。 GoでDSL(ドメイン特化言語)? 昨年秋の登場から、Goのメーリングリスト(リンク)では活発な議論が続けられている(2010年3月時点で、累積投稿数は10,000件を超え、メンバー数も3000人超)。近時の投稿を見ると、Genericの導入やオブジェクト指向など言語仕様の議論に加えて、C言語との連携手法、モバイルサポートなど、実際の活用を意識した質問も多く寄せられている。 そうした議論の中で、『GoはDSL(ドメイン特化言語)の構築に適しているのか(Is Go suitable for building DSL?)』という問いかけ(リンク)に始ま

    kyab
    kyab 2010/04/20
  • 1