タグ

goに関するsimizut22のブックマーク (7)

  • Go言語のリアルタイムGC 理論と実践 | POSTD

    (編注:誤訳、意味の分かりづらい訳を修正しました。リクエストありがとうございました。) 毎日、Pusherは数十億のメッセージをリアルタイム、つまり送り元から宛先まで100ms未満で送信しています。どのようにしてそれを可能にしているのでしょうか。重要となる要因はGoの低レイテンシのガベージコレクタです。 ガベージコレクタはプログラムを一時停止させるものであり、リアルタイムシステムの悩みの種です。そのため、新しいメッセージバスを設計する際には慎重に言語を選びました。Goは 低レイテンシを強調している ものの、私たちは懐疑的でした。「当にGoを使えば実現できるのか? もしできるならどうやって?」 このブログ記事ではGoのガベージコレクタを、どのように機能し(トリコロールアルゴリズム)、なぜ機能し(こんなに短いGCによる一時停止時間の実現)、そして何よりも、それが機能するのかどうか(GCによる

    Go言語のリアルタイムGC 理論と実践 | POSTD
  • Goではじめてみたブラウザの自動操作 - Qiita

    はじめに 面倒なWEBブラウザの定型作業を自動化したくて。 WEBブラウザの自動操作には定番のSeleniumを利用する。 Seleniumは主にウェブブラウザのテストに利用されているが、テスト用途以外でも利用はできる。 なおウェブスクレイピングが目的であれば、scrapeとかgoqueryなどを利用するほうが簡単。 それでもSeleniumを利用するのは、 実際のブラウザが利用できるという点であり、以下のような利点があると思っている。 IEなど特定のブラウザのみをサポートしているサイトの自動操作 ごりごりのJavascriptやFlashを利用されているサイトの自動操作 証跡として画面のスクリーンショットを取得できる 前提知識 WebDriverを介することで、スクリプトとしてJava,C#,Pythonなど多くの言語から利用できる ブラウザごとにWebDriverが用意されており、1つ

    Goではじめてみたブラウザの自動操作 - Qiita
  • Go言語ならたった20行ほど!!HTTP2対応サーバの作り方|TERAKOYA

    Go言語を使ってとっても簡単にHTTP2に対応したWebサーバを構築できる事を知りましたので勉強がてら実装してみました。 当にとっても簡単に実装できます。 作り方の手順作り方は下記の流れです。 証明書・秘密鍵の取得Go標準のimport net/httpでWebサーバを構築http.ListenAndServeの箇所をhttp.ListenAndServeTSLに変更環境ちなみに私は下記の環境で開発しています。 Mac OS 10.12IntelliJ IDEA Community 2016.1go 1.7.1それでは順番に見ていきましょう。 テスト用サーバ証明書・秘密鍵の作成ターミナルで/usr/local/go/src/crypto/tls/にあるgenerate_cert.go --host hostnameを実行します。 ターミナルで実行 sudo go run /usr/loc

    Go言語ならたった20行ほど!!HTTP2対応サーバの作り方|TERAKOYA
  • Go言語を触ったことのない人間がSensorBeeを使ってみた Part1 - のんびりしているエンジニアの日記

    日はさくっとSensorBeeを使ってみました。 皆さんこんにちは お元気ですか。連休でほっとしています。 What is SensorBee Stateful Expressive LightWeight Install Go(Mac) SensorBeeのインストール Tutorial データの取得と初期化 サーバの起動 BQN はじめに SELECT文 WHERE文 GROUP BY ストリームの作成 参考文献 今回はSensorBeeと呼ばれるライブラリを紹介します。 Machine Learningまでは流石に長過ぎるので、word countまでやってみました。 What is SensorBee sensorbee.io SensorBeeは特徴として以下の内容を兼ね揃えます。 Stateful 機械学習に有用な構造化されていない情報を取得し、ユーザが定義した機械学習のモデ

    Go言語を触ったことのない人間がSensorBeeを使ってみた Part1 - のんびりしているエンジニアの日記
  • Excelの話

    This document summarizes Yoshiki Shibukawa's presentation on building multi-platform GUI applications with Go. Shibukawa explored several approaches: wrapping existing toolkits, creating a new toolkit in Go, and a hybrid C++/Go approach. While wrapping toolkits is intuitive, maintaining wrappers is difficult. Creating a new toolkit in Go allows perfect integration but supporting multiple platforms

    Excelの話
    simizut22
    simizut22 2016/03/18
    excelじゃなくて、goの話だった件
  • NAT をやめて、透過 SOCKS プロキシを導入した - Cybozu Inside Out | サイボウズエンジニアのブログ

    以下の記事内容について、奥一穂氏(@kazuho)より、「connectのエラーコードが信頼できなくなるといった欠点もあるのに透過 SOCKS プロキシが汎用的に良いように読めてしまう」というご指摘をいただきました。確かに、下記内容は当社が抱えていた複数の課題を短期間で解消できる「ワークアラウンド」として透過 SOCKS プロキシという技法もあることを紹介したものであり、NAT と比較して常に良いという主張をしたかったわけではありません。また、記事内では解説を省きましたが、従来より HTTP(S) 通信は NAT ではなく HTTP プロキシを利用しています。謹んで補足・訂正とさせていただきます。 が好きだけどアレルギーで近寄ることができない山泰宇です。 先日アーキテクチャ刷新プロジェクトNeco」を紹介しましたが、今回はその活動の一環として実施したネットワークアドレス変換(NAT

    NAT をやめて、透過 SOCKS プロキシを導入した - Cybozu Inside Out | サイボウズエンジニアのブログ
  • An Introduction to LLVM in Go

    An Introduction to LLVM in Go # LLVM is an infrastructure for creating compilers. It was initially created by Chris Lattner in 2000, and released in 2003. Since then it has evolved into an umbrella project that has a wide array of tools such as the LLVM Linker lld, LLVM Debugger lldb, and so on. The banner feature of LLVM is its intermediate representation, commonly referred to as the LLVM IR. The

    simizut22
    simizut22 2016/03/14
    今週の llvm 関係の記事だとやっぱりこれがインパクト大だよなぁ
  • 1