Goビギナーズ/ Go合宿2017のでGoBot使ってBLE制御 ・パロットミニドローン ・iTag -> 木下さん目覚まし
![GoBotでBLE制御してみたよ! #golangjp](https://cdn-ak-scissors.b.st-hatena.com/image/square/c0d8b6162f12d82fd42caf678798363435d84c9b/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F0d60f6d0b9f5495a9173b50e47e1cf4d%2Fslide_0.jpg%3F7865224)
(編注:誤訳、意味の分かりづらい訳を修正しました。リクエストありがとうございました。) 毎日、Pusherは数十億のメッセージをリアルタイム、つまり送り元から宛先まで100ms未満で送信しています。どのようにしてそれを可能にしているのでしょうか。重要となる要因はGoの低レイテンシのガベージコレクタです。 ガベージコレクタはプログラムを一時停止させるものであり、リアルタイムシステムの悩みの種です。そのため、新しいメッセージバスを設計する際には慎重に言語を選びました。Goは 低レイテンシを強調している ものの、私たちは懐疑的でした。「本当にGoを使えば実現できるのか? もしできるならどうやって?」 このブログ記事ではGoのガベージコレクタを、どのように機能し(トリコロールアルゴリズム)、なぜ機能し(こんなに短いGCによる一時停止時間の実現)、そして何よりも、それが機能するのかどうか(GCによる
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
やりたいこと 全世界のAWSのEC2からだけ許可するsecurity groupを作りたいとかそんな感じのやつ それにどれくらいの嬉しさがあるかと言うと、まぁ人それぞれだよね 以下のテンプレート部分を少し変えると、AWS WAFの定義で全世界のAWSのEC2からのアクセスを拒否するとかそういうのにも使えるよね 方法 以下のスクリプト使うとSecurity Groupの定義が一個ペロッと出力されるので後は勝手に使うといいと思います。 最大の問題は、このIPレンジは当然そのうち変わるので、本来はJSONファイルの変更を検知してlambdaを動かして最新の情報に追随させるみたいなことをやる必要があるんですが、まぁ何か雑にやりたい時はこういうのでもいいんじゃないですかね。 ちゃんとやりたい場合は以下クラスメソッドさんのエントリ参照 dev.classmethod.jp プログラム GitHub -
人事の小澤です。今回は昨年インターンに参加してくれた中西さんの記事です。 はじめに こんにちは!技術本部サービスファシリティーグループの中西です。 今回はCyberAgentのインターンシップ事業の一環である「WORKコース」を利用して、2ヶ月間インターン生として業務させて頂きました。 本記事では業務内容の紹介と、インターンの様子についてご紹介します! インターンでの業務内容 「Golangを用いたロードバランサーコンフィグ収集ツール"mirumiru"の開発」を行いました。 私はプログラミングの経験が浅く、1つのプロダクトを完成まで昇華させた経験がなかったのですが、メンターの皆様の力を借りながらなんとか完成させることが出来ました。 動作例 初めに設定例と動作例を示したいと思います。 最初に、ロードバランサーにSSHを行うための設定を記載します。 TOMLというミニマムな言語仕様に則って
What's this? 普段携わっている、 「圧倒的にいちばん速く覚えられる 英単語アプリmikan」 を作っているスタートアップ でGo言語の社内勉強会を開きましたので資料を共有します。 iOS版 App Storeページ Android版 Google Playページ What's Go? 2009年11月にGoogleが公開 特徴 オープンソース シンプル コンパイルが早い 並列処理をサポート ガベージコレクションによるメモリ管理 安全性が高い 継承がない 容易なエラーハンドリング C言語Like HP https://golang.org/ (見たほうが良い!) Goを利用したOSS Docker: https://github.com/docker/docker Kubernetes: https://github.com/kubernetes/kubernetes Hashi
Go Conference 2017 Spring で Lightening Talk で話し足りなかったことを書いておく。 Go で書いたと話すと「Go っていいの?」と聞かれることがある。まともに伝えたい相手であれば、この質問には直接答えずに「どんな課題があって、Go はどのようにその解決に役立ったのか」を答えている。 要素技術の選択には、かならず文脈が影響する。Matz がウェブアプリを作るのと、私がウェブアプリを作るのでは、そもそもの前提が大きく違う。あと、スキルが低い奴の話なんて、みたいな言われ方をされることもある。それはまあ正しいんだけど、そのスキルアップに1年かけてたら預金がなくなってしまうのだ。いや、半年ももたないか。いずれにしても、現時点でのスキルをスタート地点として、納期までに成果物を仕上げて、現金を獲得する必要がある。そういうのも文脈のひとつだ。 私は Python
General-purpose Programming Language implemented with Go and LLVM. Presentation at Go Con Spring 2017
こんにちは、メルカリアッテのAPIチームでGoエンジニアをしている@sonatardです。 この記事は弊社ソウゾウの社員である@tenntennが運営しているgolang.tokyo #4のブログ枠として書いています。 golang.tokyo #4では、ゲストスピーカーとしてJetBrains社のSergey Ignatov氏にご登壇いただきGoglandをライブデモ形式で紹介して頂きました。 メルカリアッテではGoogle App Engine for Go (GAE/Go) を全面的に採用しており、サーバサイドエンジニアの中でもGoglandの利用者が増えています。そこでSergey Ignatov氏に紹介して頂いた機能とソウゾウ エンジニアたちが利用しているお気に入りの機能をまとめてご紹介したいと思います。 ソウゾウがGAE/Goを採用した経緯は@ttsuruokaのatte 開発
概要 ANTLR ってのは,いわゆるパーサジェネレーターです. 去年の年末に出たバージョン 4.6 からターゲットに Go が追加されました 🙌 . かなり昔に使ったことあったんですが,v4 になってだいぶ整理されて洗練された感じになってました. この記事は結構適当にやってしまっていると思うので,ちゃんとやりたいならリファレンスを読んだ方がよさそうです(ぉ. The Definitive ANTLR 4 Reference 作者: Terence Parr出版社/メーカー: Pragmatic Bookshelf発売日: 2013/01/22メディア: ペーパーバックこの商品を含むブログを見る ANTLR の簡単な紹介 入力のあるプログラム書いていると,入力が well-formed であるかどうかをチェックする必要があることがあります. 正規表現とか使って自分で入力が正しいかどうかチェ
タイトルに煽りが足りない!と指摘を受けたので頑張って変えてみました。 pet というツールを作ったら公開して3日でStarを1000も頂きました。本当に感謝です。 対象の方 「あーあのコマンド何だっけ。前も調べたけど忘れちゃったからまた調べよう...」 となる人 対象じゃない方 「Ctrl-rで検索すればすぐ見つかるし、よく使うコマンドはaliasに登録してるから全然問題ない」 という人 デモ 色々と書く前に動画を見てもらえれば雰囲気がつかめると思います。 詳細は以下のREADMEに書いてあります。ちなみにDescriptionは日本語でも動きます。 https://github.com/knqyf263/pet 概要 僕はいつも「あのコマンドなんだっけ...」となってしまいます。 もちろんpecoとか利用させていただいているのでコマンド履歴からの検索はしやすくなっているのですが、以下のよ
以下の記事は Java について触れていますが、Java を dis っている訳でもありませんし、冗長に見える例を意図的に使っています。 最近 Twitter で golang に Generics が無い事についてずいぶんと盛り上がったのですが、僕の意見をこのブログにも書いておこうと思います。 golang に多相が無いのはアレだとか開発者の怠慢だみたいな話はだいたい他の言語を覚えた人から出る感想で、静的型付言語である golang を見ると確かにそう見えるかもしれない。ただ golang は Java や他の言語と違って Duck Type を採用している。 — Vim芸人 (@mattn_jp) March 7, 2017 スクリプト言語の多くに多相が求められないのと同じ様に golang を深く触る人達から多相が欲しいという意見がそれほど出ないのは golang の型が Duck
吾はGoでGenericsがないことに関してはわりと肯定的な立場ではあるのだが、流石に「golang と Generics と私 」の記事の例はどうかと思ったので、畳み込みfold関数を例にGenericsが解決する問題を例示してみようと思う。 なぜfoldかというと、 List<T> の要素を加算して集約する処理を書くなら普通はfoldで実装するし、foldがあればmapもfilterも実装できるので。 javaで畳み込み Stream APIで用意されてるreduceで一発です List<Integer> list = Arrays.asList(1, 2, 3); // listの加算とか畳み込みで一発ですよ int result = list.stream().reduce((a, b) -> a + b).get();
Go1.8ではdatabase/sqlのcontextサポートが入ります。 (きっと今日のGo 1.8 Release Partyで詳しく説明があるはず、たぶん) それにともないGo言語でSQLのトレースをするで紹介した shogo82148/go-sql-proxyでもcontextを扱えるようにしました。 Go1.8新機能のサポート Golang 1.8 でやってくる database/sql の変更点で mattnさんが紹介しているように、Go1.8ではdatabase/sqlにいくつか新機能が追加されます。 (mattnさんの対応が早すぎて、メソッド名とか微妙に変更が入っているので注意) 特に大きなのがcontextのサポートでしょう。以下のようなコードでクエリのキャンセルが可能になります。 ctx, cancel := context.WithCancel(context.Bac
こんにちは。 2016新卒でLobiのサーバーサイドエンジニアをやっているmorikuniです。 今回は、mdqというGo製のツールを作ったので、その紹介をします。 mdqは複数のデータベースに並列にクエリを投げて、結果をJSONで出力してくれるというものです。 github.com mdqに近いコンセプトのツールとして、弊社の荒賀(@ken39arg)が作ったshard_promptがあります(#6「Shardingマジ怖い」tech.kayac.com Advent Calendar 2012)。 こちらはSQLを解析し、複数データベースにまたがる集約関数を一部サポートしていますが、MySQL専用かつ直列にクエリを投げるというものでした。 mdqでは複数データベースにまたがる集約関数はサポートしませんが、PostgreSQLなどMySQL以外のデータベースへのクエリや、並列処理による速
Go 言語で Apache Bench (ab) を実装してみた。 https://github.com/takatoshiono/go-ab なぜか 以前、wc コマンドを実装した。その時に ab も候補に入っていたけど、ab は http 通信をするプログラムなので、より単純な wc を選択したのだった。その次に何やるか、ということで http クライアントのコードを書く練習になりそうな ab を実装してみることにした。 期間は2016年10月から1ヶ月くらいやったあと、2ヶ月くらいブランクがあって、2017年1月に再開して一ヶ月くらいやっていた。コツコツとよく続いたと思う。 Apache Bench (ab) とは Apache Bench (ab) は HTTP サーバーの性能を測定するためのプログラムでシングルスレッドで動作する。Apache HTTP サーバーのソースコードに含
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く