Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Discord はゲーマー向けのボイスチャットサービス。テキストチャットもできるし最近ではビデオチャットや画面共有もできるようになった。 UI はかなり Slack に似ている、モダンなデザインということなんだろう。 WebRTC 技術を利用しているということで、とても気にはなっていたが使うタイミングがなかったことからあまり追いかけていなかったが、先日ビデオチャットと画面共有が追加されたということで色々調べてみることにした。 ElectronWindows/Mac/Linux 向けのデスクトップクライアントには Electron を採用している。かなり早い段階から採用しているイメージ。Electron は Chromium ベースなので WebRTC が利用できる。WebSocket もバリバリ使ってる模様。 Electron を使うことでブラウザとほぼ変わらぬ動き、UI を再現している。
試したいから、作る。ghq、goreの作者motemenの開発は「自分本位」で駆動する 次々とOSSを送り出す株式会社はてなのCTO、大坪弘尚さん。連続開発を支える、発想の源、そしてモチベーションをご本人に伺いました。 エンジニアにとっての強みとは何でしょうか。その答えはさまざまですが、「プロダクトを完成させるスピード」という要素は、“強み”の一つの指標と考えていいでしょう。 「エンジニアの会社」として見られることの多い株式会社はてなの中でも特に「作るスピードが早い」と一目置かれる人物がいます。CTOの大坪弘尚(おおつぼ・ひろなお/ @motemen )さんです。 大坪さんはghqというツールを20代で公開し、コミュニティから高い評価を受けました。それにとどまらず、GoにおけるREPLを実現するツール、goreも続けてリリースし、GitHubで2000以上のスターを獲得しています。常にオー
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ネストの深いプログラムを書くとき、 プログラム全体で共有したいオブジェクトをどうやって引き回すかというのはいつも悩む問題です。 グローバル変数 小さなプログラムの場合は雑にグローバル変数に入れてしまうのも悪くはないですが、 プログラムが大きくなるにつれ、このやりかたはつらくなります。 シングルトン シングルトンは基本的にはグローバル変数と同じことです。 ただしファクトリ関数をうまく使えばグローバル変数をそのままつかうより柔軟な取り回しが可能になるかもしれませんが。 グローバル変数にせよシングルトンにせよプログラム全体で状態を共有しますが
良いスライドなのに肝心のミリオンPからしたらちんぷんかんぷんな内容だったので未来ちゃに説明するつもりで噛み砕いていこうと思います。そこそこ長くなってしまった。 件のスライド ミリシタを支える GAE/Go from Google Cloud Platform - Japan www.slideshare.net 既に目を通したPも多いかと思いますが、4ページ目で一般人バイバイです。テクニカルタームの嵐です。 ミリシタの話をするのならせめてフリガナを振ってくれよな!カタカナにも! GAEってなんだろ〜(●・▽・●) Googleとあるように、天下のGoogle様が提供する「アプリケーションを運営するためのプラットフォーム」です。 本来何らかのサービスを運営するためには、アプリ本体を置くサーバーやそれを配信するためのインフラ環境、大量アクセスへの対応、セキュリティ対策、データ解析、そしてアプリ
はじめに こんにちは、キーボード自作おじさんです。このエントリはGo Advent Calendar 2017の4日目の記事です。 今年のエントリーは大作が並ぶアドベントカレンダーの休憩用のエントリーと思っていただければ幸いです。 Advent Calendar、小ネタでいいのよ。頑張り過ぎてネタ思い浮かばなくて穴開けるくらいなら575でもいいのよ。— mattn (@mattn_jp) 2017年11月29日 Goの並列処理のパターン Goが公開されてからもう8年になり、Goが得意とする並列処理にもGo特有のパターンなどがコミュニティ内で蓄積されてきました。 その中でもよく聞くものとしては for-select loop or-channel or-done-channel tee-channel fan-in, fan-out などがあります。今日はその中でも or-done-chan
イントロダクション¶ Goは新しい言語です。既存の言語からいろいろなアイディアを借りてきていますが、効果的なGoプログラムは、関連するような言語のプログラムとはかなり異なる性質を持っています。C++やJavaなどのプログラムをそのままGoに変換しても、満足できるような結果にはなりません。所詮はJavaで書かれたプログラムであって、Goらしいプログラムにはなりません。一方、Goの視点からプログラムについて考えてみると、うまくいく可能性はありますが、既存のプログラムとは違う結果になるでしょう。言い換えると、Goらしいプログラムをうまく書くためには、Goの特性やイディオムを理解することが重要になります。また、命名規則、フォーマット、プログラムの構造などの、Goでプログラミングをするための適切な習慣を知ることも大切になります。そうすることで、他のGoプログラマが簡単にあなたのプログラムを読むことが
Google、Dockerイメージに対するテスト自動化フレームワーク「Container Structure Tests」オープンソースで公開 Container Structure Testは、コンテナ内部でコマンドを実行することで正しい出力やエラーが帰ってくるかどうかや、コンテナ内部のファイルが正しく格納されているかなどの検証を実行できるフレームワークです。 具体的には下記のテストをサポートしていると説明されています。 Command Tests コンテナイメージ内部でコマンドを実行し、正しい出力やエラーが返ってくるかを検証する。 File Existence Tests コンテナイメージ内部に、あるファイルがファイルシステム内の適切な位置に存在しているかどうかを検証する。 File Content Tests コンテナイメージ内のファイルシステムにあるファイルのコンテンツとメタデータ
最近は仕事でも新しくGoのプロジェクトをイチからはじめることが増えてきて、コピペ元が欲しくなるので、スナップショットとして残しておきます。とくに Go でウェブアプリケーションを書くような場合を想定していて、npm エコシステムにも乗っていきます。 大まかな方針としては、 self-contained である グローバルな環境を汚染しない コマンド一発で開発環境が再現できる ……というところを目指します。 motemen/prchecklist がこれを達成しているつもりなので、以下、これを例に見ていきます。 依存ライブラリは dep なり何かしらのツールと Go 標準の vendoring で管理すればよい一方、そのツール自体であったり、他の開発中に必要なツール(golint とか gobump とか)であったりのインストールをどうするかという話。 npm であれば devDepende
Amazon Web Services(AWS)は、米ラスベガスで開催中のイベント「AWS re:Invent 2017」で、サーバレスコンピューティングを提供するAWS Lambdaの機能強化を発表しました。 API GatewayとVPCとの統合機能、3GBメモリサポート、コンカレンシー制御の強化などに加え、.NET Core 2.0のサポートおよびGo言語のサポートが発表されました。 Amazon.com CTOのWerner Vogels氏がGo言語のサポートを発表すると、会場からは大きな拍手があがりました。「たくさんの人から、Go言語はサポートしないのかと聞かれた」(同氏) さらにサーバレスアプリケーションを再利用可能にする公開リポジトリの「AWS Serverless Application Repository」が登場。 AWS コンソールからサーバレスアプリケーションの登録
github-markdown-toc.goでMarkdown文書の目次を自動生成 By raimon, 2017-11-27(月), in category Go README.md をはじめとするMarkdown文書に、見出しへのページ内リンク付きを目次を作りたくなる時が多々ある。 そのような用途に、自分は今までgithub-markdown-tocというツールを利用してきた。ただ、このツールはシェルスクリプトで実装されており、各種UNIXツールに依存している。 調べてみたところ、Goで実装され、各種UNIXツールへの依存が無くバイナリをインストールするだけで利用できるgithub-markdown-toc.goが存在することを知った。今回こちらに乗り換えたので、使い方もまとめておく。 インストール github-markdown-toc.goのインストールはGitHubのReleas
最近勉強を始めたコンテナ技術に関する基礎的な知識をまとめました。 [訂正と注釈] p.27-30: 「Deployment」内の「Version: 1」 => 「Version: 2」 p.37: 「終了コードをから」 => 「終了コードから」 p.39: 「HTTPSが利用できない」=> AWS上では、SSL終端するLBがサポートされています。https://kubernetes.io/docs/concepts/services-networking/service/#ssl-support-on-aws p.40: 「ユーザがingress controllerをmaster上にセットアップする必要」 => master上にセットアップしなければならないという制約はありません。例えばGCEのingress controller(GLBC)はPodとして動作します。https://gi
3/25に行われたGoConで"How Communicating Sequential Goroutines Work"という発表をしてきました。 当初僕はCommunicating Sequential Processesについての話しをする予定だったのですが、時間内にとても発表できそうな内容ではなかったため、Concurrency全般についての話をしました。 そのため、ここではその際触れられなかったgoroutineの実装の話しやCSPの話しなどを含めてGoのruntimeについて何回かに分けてまとめていきたいと思います。今回は主にgoroutineについてです。 GoのConcurrency goroutineの説明に入る前にざっくりGoのConcurrencyについて説明します。 以下、GoConでの発表スライドにざっくりと沿いながら書いていきます。 speakerdeck.co
アプリケーションのパフォーマンス問題の解決やチューニングで大切なのは問題のコアやボトルネックに最短パスで到達することである. 基本的なパフォーマンス分析の入り口はアプリケーションのスレッドがon-CPUで時間を消費しているかoff-CPUで時間を消費しているかを理解するところから始まる.on-CPUの場合はそれがuserモードかkernelモードかを特定し,さらにCPUプロファイリングによってどのcode pathがCPUを消費しているのかの分析に向かう.off-CPUの場合はI/OやLock,pagingといった問題の分析に向かう. Flame Graphはon-CPUでのパフォーマンスの問題が発覚した時に行うCPUプロファイリングを助ける.どのcode pathがボトルネックになっているのかを1つのグラフ上で理解できる.本記事ではFlame Graphとは何か? なぜ必要なのか? を解
NGINX Unit ホームページは以下 www.nginx.com もしくはミラーだけどGitHubが以下となる github.com RestAPIやJSONで設定できる、phpのPHP-FPMやpythonのwsgiサーバーなど言語ごとのアプリケーション・サーバーを集約したアプリケーションサーバーという感じ。なのでNginxの後ろで動くサーバーという認識で大丈夫なのかな? まだversionは0.1なので、今後どんどん成長していくはず。 現状は以下に対応しているとのこと Python 2.6, 2.7, 3 PHP 5, 7 Go 1.6 or later ざっくりとした所感 プロダクトに関して 言語ごとのミドルウェア運用がNGINX Unitに集約されて嬉しい可能性がある Docker + NGINX Unit も嬉しいが、NGINX Unitだけでも十分に嬉しいかも ベンチマーク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く