なぜこんな事を? Windows のパッケージマネージャ Chocolatey 向けにパッケージを作ったりしてるわけなんですが、パッケージは一度作ったらバージョン番号を変えるだけの定型作業になります。これが面倒なので golang で定型作業をやってくれるツールを作りました。 Windows 向けのツールですが、 x86/x64 向けにビルドする必要があるので、 gox を使おうとしたわけです。ところが Windows では gox を使えるようにするのも一筋縄ではいきません。 Vagrant 等で linux 環境を整えれば簡単ですが、 Windows 向けツールをビルドするためにそれはあまりにアホらしい。そこで CI ツールで楽にできないか検討してみました。 参考URL Wercker で Go のプロジェクトをクロスコンパイルし、GitHub にリリースする - 詩と創作・思索のひろ
先日、HTTP/2とProtocol BuffersをベースにしたRPCフレームワーク、gRPCがリリースされた。 Google Developers Blog: Introducing gRPC, a new open source HTTP/2 RPC Framework Microservicesがなんちゃらいわれる昨今だが、その実現のためには、設計面におけるベストプラクティスはもとより、実装面においても課題がある。すなわち、サービス間でどのようにオーバーヘッドが少なく、帯域を浪費しない通信を実現するかということ。そんな折Googleが、上記のリンク先にある通り「うちらめっちゃMicroservicesだし」ってんで、まさに「これだ!」という技術スタックでいい感じのものを出してくれた。 gdbmにRPCしてみる とりあえず試してみたいので、簡単にできそうな例として、gdbmにネットワ
AI21 Labs develops human-centered AI solutions for enterprises through its Jamba models and RAG Engine, offering cost-effective deployment options and extensive technical support for developers. EchoFox revolutionizes WhatsApp communication through AI-powered transcription and summarization, supporting over 98 languages and integrating with multiple messaging platforms for enhanced productivity an
Feb 26, 20158 likes4,468 viewsAI-enhanced description The document discusses building a custom Mesos scheduler in a simple way. It provides an example of a basic "CommandScheduler" in Go that implements the main Scheduler interfaces of ResourceOffers and StatusUpdate. The scheduler launches tasks in response to resource offers from Mesos masters and handles task status updates. It demonstrates the
エンジニアの吉田です。「GOPHERCON INDIA 2015」という、今年の2月20日、21日にインドのベンガルールで開催されたGo言語のカンファレンスへ、スピーカーとして参加してきました。 会場の様子です。発表が始まると、およそ300名の方が参加され、会場は満席となっていました。 このカンファレンスでは、世界中から集まった約30名のスピーカーにより、Go言語に関する様々な発表が行われました。私は、「Tips for Creating a Good Package」というタイトルで、初心者向けに、Go言語でパッケージを作成する際のコツのようなものを紹介しました。私の発表の様子はこちらに記載されています。他の方々の発表を聞くことで、並行処理のAPI設計のパターンを深く学ぶことができたり、30万人以上のユーザを抱えるチャットアプリケーションの開発・設計事例を知ることができたりし、今後、Go
GoはPythonのようなLLと比べると実行速度は速いのですが、GCは特別速いわけではないので、相対的にGCがパフォーマンスに与える影響は大きくなります。 また、Java に比べると、一時オブジェクトなどのために頻繁にヒープアロケーションを行うとGCの停止時間が長くなりがちですが、一方でヒープアロケーションを避けたプログラミングがしやすい言語でもあります。 MySQL ドライバのような低レイヤーのライブラリを作る場合、アプリケーション側の性能要件を勝手に決めることができないので、現実的な範囲でアロケーションを減らす努力をするべきです。 ということで、前回の記事 で紹介したプレースホルダ置換を実装するにあたって経験した、アロケーションに気を使ったプログラミングについて、チューニングする手順やコード上のテクニックを紹介したいと思います。 1. まずは正しく動くものを作る go-sql-driv
The State of Go Where we are in February 2015 Andrew Gerrand Go 1.4 Released in December 2014. A few important things: Android support. Canonical import paths. The go generate command. Lots of behind-the-scenes work: Prep work for new garbage collector. Prep work for C to Go tool chain conversion. Source tree re-organization. go.dev/doc/go1.4 2 Transition to Git 3 Transition to Git In December we
よく訓練されたアップル信者、都元です。最近社内のメンバーがみんなGo言語の世界で楽しそうなので、私も混ざってみることにしました。最初のセットアップや基礎文法等は、私も平行して急いで学ぶGo langシリーズで勉強中です。 コマンドラインツールが作りたい と思っています。ちょっとしたものを作るとしたらPythonなのかな、と思って友達のPythonistaにインタビューをしたところ、「ちょっとしたツール作るとかって用途の人は Golangに移行した(えっ」という衝撃的なコメントを貰い、もうこの際だからGo勉強すっかという空気になった次第。 具体的な環境構築 基本的には急いで学ぶGo langシリーズを読めばいいのですが、一点迷ったのがディレクトリ構成です。 Go言語で幸せになれる10のテクニックでは「GOPATHは一つだけ (Use a single GOPATH)」という指針が紹介されてい
I've been using Go since several months. It's a pleasant language, even though it has its own drawbacks. In our Nixpkgs repository we have support for several programming languages: perl, python, ruby, haskell, lua, ... We've merged a better support for Go. What kind of support are we talking about? In Nix, you never install libraries. Instead, you define an environment in which to use a certain l
Google グループでは、オンライン フォーラムやメール ベースのグループを作成したり、こうしたフォーラムやグループに参加したりすることで、大勢のユーザーと情報の共有やディスカッションを行うことができます。
概要 Goでテストを書く際にt.Errorfなどで問題を表示することは多々ある。しかし、テストがいくつかあった際にダンプをズラズラと表示されたときは、一概でどのテストが失敗したのか追うのがめんどくさいと感じることもあるだろう。そういう時は、recoverとdeferをうまく使えばよいらしい。 具体的にはテストに以下ようなコードを足せば、うまく省略できる。 1 2 3 4 5 defer func() { if r := recover(); r != nil { t.Error("Too lazy to show stack trace. This test has failed. Fix it.") } }() 問題 たとえば、以下のようなテストを考える。例ではStackという型を定義したパッケージでも作ったこととしよう。 1 2 3 4 5 6 7 8 9 10 11 12 packa
7 minute read On the surface, Panda is a pretty simple piece of software – upload a video, encode it into various formats, add a watermark or change frame rate, and deliver it to a data store. Once you spend some time with it, it begins to show how complex each component can be – and how important it is to continuously improve each one. When Panda was first built, it worked beautifully, and it was
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く