タグ

golangに関するmasayoshinymのブックマーク (174)

  • プライバシー重視のシンプルなオープンソースのGoogle Analytics代替・「Fathom Lite」

    Fathom Liteはプライバシー重視のシンプルなオープンソースのGoogle Analytics代替となるWeb解析ツールです。 FathomはOSS版のLiteとは別にサービスとしても展開しています。違いはCookieの使用の有無やゴールの設定、デバイスやブラウザ、国などのデータの取得、安定稼働、大量アクセスの処理などなど有料版ならではのメリットを提供しています。 月額14ドルと安価とは言えませんがツールはむしろGAが無料である点にフォーカスしており、無料である対価としてWebサイトのオーナーやその顧客の個人データを払っていると伝えています。 Lite版は有料サービス版と比較するとどうしても見劣りしますが、GAを使いたくないけどアクセス解析は必要不可欠、という方の選択肢の一つにはなるかなぁと思います。同様にGA代替のOSSは以前ご紹介したPlausibleやumamiなどほかにも選

    プライバシー重視のシンプルなオープンソースのGoogle Analytics代替・「Fathom Lite」
  • glauth - 開発や個人利用に最適なLDAPサーバ

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました 個人的に認証統合は好きで、一つのIDでシステム全体を管理したいと考える派です。そのベースとしてよく使われるのがLDAPです。Active DirectoryもLDAPをベースとしており、社内外における認証統合に一役買っています。 そんなLDAPサーバですが、ちょっと立てるのが面倒に感じていました。しかしglauthであれば開発用途や個人で簡単に使えそうです。 glauthの使い方 設定ファイル指定して起動するだけです。とても簡単です。 $ glauth -c sample-simple.cfg 15:18:52.896862 doConfig ▶ DEBU 001 Debugging enabled 15:18:52.896892 startService ▶ DEBU 002 W

    glauth - 開発や個人利用に最適なLDAPサーバ
  • なぜDiscordはGoからRustへ移行するのか - MISONLN41's Blog

    DiscordGoで書かれていたコンポーネントをRustに移行しているらしい。Windowsの低レイヤ層の一部で採用されるなど、近年どんどん注目を集めているRustだが、DiscordはなぜRustを選んだのか。その最大の特徴である「パフォーマンスを妨げる要素であるGCを排した上でメモリセーフな言語」であることにクローズアップした面白い内容だったので、えっちらおっちら和訳してみた。英語が得意というわけでもなく、無理やり翻訳しているところも多いのであしからず。ほとんどGoogle翻訳のままというのは内緒。 追記: 7/31にはてブでいっぱいブックマークされたみたい。気になったブコメへの返信を末尾に追記した。 原文: Why Discord is switching from Go to Rust - Discord Blog Rustは様々な分野において第一級の言語になりつつあります。Di

    なぜDiscordはGoからRustへ移行するのか - MISONLN41's Blog
  • GoでWebアプリ開発時にあるあるだったレビューコメント | フューチャー技術ブログ

    The Gopher character is based on the Go mascot designed by Renée French. はじめにTIG DXユニット 1の真野です。 コードレビューについては3,4年ほど前に、コードレビューにおけるレビュアー側のアンチパターン って記事を書いたりもしました。当時はレビュアーの伝え方って大事だよなって話をしてました。いつしかレビュイーからレビュアーに比重が変わることが増えてきました。相互レビューは当たり前にしていますがが、比較的こうしたらもっと良くなるんじゃないかな?と提案される回数より、自分が提案する回数の方が増えてくるタイミングってありますよね? そういうわけで、最近Goで主にバックエンドのWebAPIや、AWS Lambdaで動くETLアプリ、たまにCLIツールを開発する時に、2回以上同じ指摘したコメントをまとめてます。Go言語

    GoでWebアプリ開発時にあるあるだったレビューコメント | フューチャー技術ブログ
  • Go言語を採用して開発をしている会社一覧 - Qiita

    ではRubyが流行り、ほとんどの会社がRubyを採用しています。現在は開発言語は拘らずサービスやリソースに合わせて開発言語・環境を決めますが、一部のエンジニアの中では言語に強いこだわりを持つ方もいるのと、グローバルエンジニアを目指すにあたりRubyは世界で使われていないため、GoPythonを学ぶ方も一定数いらっしゃいます。 最近Go言語の人気も出てきたため、今回は上記のような方やGo言語にチャレンジをしたい方向けにGo言語をメインに取り入れている企業様一覧を紹介します。 ■Gunosy 言わずと知れてキュレーションアプリの先駆者です。解析とアルゴリズムで情報過多な現代において、最適な情報をユーザーに届ける事をミッションとし、情報の非対称さを正す企業です。 メインサービス「グノシー」はDL数2000万を超え、それ以外にもKDDIとの共同開発サービス「ニュースパス」女性向けバーティカル

    Go言語を採用して開発をしている会社一覧 - Qiita
  • MOV タクシー配車アプリ RubyからGolangへ刷新 マイクロサービス化 | BLOG - DeNA Engineering

    RubyからGolangへの移行を進める過程で、システムアーキテクチャがマイクロサービス化していくという稀有な体験をしたので記事を書きました。 次世代タクシー配車アプリMOV(モブ)及び、タクシー車両内の乗務員向けアプリに係る WebAPI 50前後をRailsからGolang net/http に刷新しました。その過程でマイクロサービス化が進んだ事例を紹介します。MOV サーバエンジニア池田 周平です。サービスを継続しつつシステム刷新するために、なぜその判断を行ったかについてお伝えできれば幸いです。 MOV(旧タクベル)ご存知でしょうか?神奈川、東京でサービス提供中のタップ操作でタクシー配車ができる配車アプリです。 実証実験を繰り返しサービスリリースしました。 立ち上げ初期段階から居たメンバーに話を聞くとRailsで高速にプロトタイピングを繰り返していたそうです。 リリース直前にGAE

    MOV タクシー配車アプリ RubyからGolangへ刷新 マイクロサービス化 | BLOG - DeNA Engineering
  • Go言語のイケてない部分 - ぐるぐる~

    最近色々あって仕事Go言語を使っています。 色々割り切っている言語なので、こんなこと言ってもしゃーないんですが、言語設計はミスってるんじゃなかなぁ、と思わざるを得ない点が多々あります。 使い始めて1か月くらいなので間違ったことを書いているかもしれませんので、何かあれば指摘していただけるとありがたいです。 文ではネガばかり羅列していますが、ランタイムとツール周りは気に入っています。 Goのランタイムを使う、もっと洗練されたAlt Go的なものがあるといいのに(もしくはジェネリクスのったGo2を早くリリースしてほしい)、と思う日々です。 追記: なんか意図とは違った受け取られ方をしている方もいるので追記します。 この記事はあくまで、「Go言語を学ぶにあたって躓いた点」を列挙し、まとめ、理由を考えてみる(教えてもらう)ために書いたものです。 Go言語自体はDisってますが、Go言語ユーザーを

    Go言語のイケてない部分 - ぐるぐる~
  • さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 一般的な Web アプリケーションがそうであるように、サイボウズのグループウェアにも画像をサムネイルで表示する機能があります。サイボウズでは日々数万件やそれ以上のサムネイルを生成しており、それらは全て ImageMagick によって生成されていました。 そこで得た知見はこちらの記事で公開されています。 blog.cybozu.io しかし現在、サイボウズから ImageMagick は消え去りました。その理由と、我々が取った代替手段について紹介します。 ImageMagick を外した理由 言うまでもなく ImageMagick は優秀なツールで、画像変換に関する何らかのサービスやツールを作る場合には採用の第一候補になることでしょう。あらゆる画像フォーマットに対応し、出力画像をきめ細かに制御できる膨大なオプシ

    さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang | メルカリエンジニアリング

    はじめに メルペイ エキスパートチームのtenntennです。 メルカリグループでは、毎週金曜日にGo Fridayという社内勉強会を開催しています。 毎週やっているとそれなりに知見が溜まってくるので、定期的に”こぼれ話”としてブログを書こうという話になりました。 今回の記事では、先日のGo Fridayで話題にあがった非公開な機能を使ったテストについて扱いたいと思います。 なお、Goにおけるテストの手法やテストしやすいコードの書き方については、GopherCon 2017でも発表があったmitchellhさんの”Advanced Testing with Go”(スライド/動画)が参考になります。テーブル駆動テストやテストヘルパーなど非常に勉強になるので、まだ見たことのない方はぜひスライドや動画をご覧ください。 TL;DR Goのテストではテスト対象とテストコードを別パッケージにできる

    Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang | メルカリエンジニアリング
  • Go言語でWebアプリを書くときにオートリロードどうするといいの問題 - yasuhisa's blog

    Go言語を書く際、成果物がシングルバイナリになるのは便利です。deployするときや他人に使ってもらうときに、それだけ渡せば使ってもらえるので。cliツールやapiサーバーを書くときにはこの方式で困っていなかったのですが、いわゆるWebアプリをGo言語で書くときのベストプラックティスが分からなかったのでエントリにしておきます。 前提 Go言語側は重厚なフレームワークは特に使わない net/httpやhtml/templateといった標準ライブラリを使う フロント側はVue.js シングルバイナリを作るまでの過程 以下の過程をMakefileに書いてmake buildとやってシングルバイナリを作っていました。 webpackJavaScript関係をbundle.jsという感じで一つのファイルにまとめる go-assets-builderを使って、index.htmlbundle.js

    Go言語でWebアプリを書くときにオートリロードどうするといいの問題 - yasuhisa's blog
  • Google App EngineでGoのバージョンアップを行う #golang #gae - Qiita

    はじめに メルペイ エキスパートチームの@tenntennです。 この記事は技術書典4で頒布した"こうして僕らは、書籍を売るアプリを作った 2.0.1"の一部を少し改定したものです。 Google App Engine for Go (GAE/Go)で開発する上で付き合っていかないといけない問題として、GAEのSDKのバージョンやそこで使用されるGo自体のバージョンアップが挙げられます。 GAE/Goはクラウドサービスであるため、SDKや言語のバージョンアップは必ず追従して行く必要のある問題です。 バージョンアップしなくても、一定期間はそのまま使えることが多いでしょう。 しかし、場合によっては非推奨になり、その後使えなくなる可能性もあり得ます。 そのため、特に大きな問題がない場合は積極的にバージョンアップをしていくとよいでしょう。 Goのバージョンを上げることによって、次のような恩恵を受け

    Google App EngineでGoのバージョンアップを行う #golang #gae - Qiita
  • Go製のPocketクローンとして公開されたオープンソースのブックマークマネージャ・「shiori」

    shioriはGoで書かれたPocketクローンです。Pocket同様に任意のWebページをブックマーク及び管理、さらにPocketの特徴でもあるオフラインでの確認も可能、というもの。Netscape Bookmarkフォーマットのファイルのインポート/エクスポートもサポートしているそうです。MITライセンスの元、OSSとして公開されています。 shiori

    Go製のPocketクローンとして公開されたオープンソースのブックマークマネージャ・「shiori」
  • Goへの誤解について

    よくGoで誤解されるポイントについて個人的な見解を書いておきます。 今回の記事はGoアドベントカレンダー2017 その3の20日目の記事です。 使ってないパッケージがコンパイルエラーって面倒じゃね? さっさとgoimportsかgoreturnsを保存時に自動実行するエディタ環境を使いましょう。 gofmtも一緒に実行されていいことずくめですよ! インターフェースがnil判定出来ないパターンがあるのダメじゃん? 最初は私もそう思いました。しかし、typed-nilがnilリテラルと比較できなくなったのは 「nil判定サボったままinterface型に変換した」からでサボらなければ全く問題にならないのです。 map,sliceが不便? map,sliceはメソッドが一切ありません。 極論をいうとGoのプリミティブ型みたいなものなのです。 ユーザーが欲しいものはmapやsliceを駆使して各自

  • なぜ私達は Python から Go に移行したのか - Frasco

    新しい言語に移行するのは常に大きな決断です。その言語をよく知る人がチームメンバーに1人しかいない時などは特にそうです。今年の初め、我々は Stream の主要言語を Python から Go に切り替えました。この記事では、なぜ私達が Python から Go に移行しようと決断したのか、その理由を説明します。 Go を使う理由 理由1 - パフォーマンス Go は速いです! Go は極端に速い。そのパフォーマンスは Java もしくは C++ に匹敵します。私達のユースケースでは、GoPython より30倍速いです。GoJava を比較したベンチマークはこちらです。 理由2 - 言語パフォーマンスの問題 多くのアプリケーションにとって、プログラミング言語は、単にアプリとデータベースを繋ぐものにすぎません。言語そのもののパフォーマンスは通常あまり重要ではありません。 しかしな

    なぜ私達は Python から Go に移行したのか - Frasco
  • Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える - pospomeのプログラミング日記

    devfest 2017 tokyo の発表資料です。 Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える from pospome 当日は入室できない人もいたらしい & 機材トラブルで10minほど開始が遅れてしまった ということで申し訳なく思っています。 また、立ち見する価値がある内容を提供できたのだろうか? とも思っています。 スライドは単体でも発表内容が伝わるように文章を多めに載せているので、 是非確認してみてください。 100ページ越えていますが・・・。 #DevFest_room2 入れなかった。。— t.junichi (@tjun1) 2017年10月9日 ものすごい立ち見人数 #Devfest17 #DevFest_room2— バトルプログラマー柴田智也@少女終末旅行 (@tomoya_shibata) 2017年10月9日 ルーム2これから並ぶ方はま

    Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える - pospomeのプログラミング日記
  • crontabを多少読みやすくするcrontocを作った - ariarijp’s blog

    個人的に欲しくなったので作った。crontab(CRON TABle)を読むためのツールなので、crontoc(CRON Table Of Contents)という名前。 github.com 導入方法などはREADMEのとおり。 使い方 crontab -lを見やすくするツールなのでどこで動かしてもいいけど、個人的には「あのサーバー、直近で動くバッチってなんだっけ」というのをサクッと確認したくて作ったので、sshコマンドでcrontab -lを実行し、その結果を標準入力として渡すと良い。 $ ssh remote-server crontab -l | crontoc Next: 2017-09-19 23:33:00 +0900 JST # * * * * * vmstat >> /tmp/vmstat.log Next: 2017-09-20 00:10:00 +0900 JST #

    crontabを多少読みやすくするcrontocを作った - ariarijp’s blog
  • GAE/Go コトハジメ

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GAE/Go コトハジメ
  • GoのWebアプリケーションフレームワーク

    はじめに ここまでGoの概要と、具体的なGoの記法についてご紹介しました。 3回目となる今回は、GoのWebアプリケーションフレームワーク(Web Application Framework、以後WAF)の中から代表的なものをいくつかご紹介し、さらにRevelというフルスタックなWAFをピックアップして、実際に動作する環境を作成します。 前回から引き続き、LinuxMacでの作業を想定して記述していますので、Windowsやその他の環境の方は適宜ご自分の環境に置き換えて実行してください。 また、紹介しているすべてのフレームワークは、GitHubでOSSとして運用されています。最新の活動状況については、各プロジェクトGitHubリポジトリをご参照ください。 GoのWAF紹介 RubyにおけるRuby on RailsPythonにおけるDjangoのようなフルスタックなWAFは、Go

    GoのWebアプリケーションフレームワーク
  • Go言語 - HTMLテンプレートの使い方 - 覚えたら書く

    GolangでのHTMLテンプレート記述方法や値の展開方法等について学ぶために、html/templateを試してみました。 変数をそのまま展開 コード内の変数をhtmlのテンプレートに展開する例です ■htmlテンプレート(template000.html.tpl) <!DOCTYPE html> <html> <body> msg: {{.}} </body> </html> ■サンプルコード package trial import ( "html/template" "log" "net/http" ) func htmlHandler0(w http.ResponseWriter, r *http.Request) { // テンプレートをパース t := template.Must(template.ParseFiles("templates/template000.html.

    Go言語 - HTMLテンプレートの使い方 - 覚えたら書く
  • go-mp3: Pure Go な MP3 デコーダー - Qiita

    tl;dr (要約) GoMP3 デコーダー実装がなかったので、既存の C のものを移植し、 go-mp3 というライブラリを作りました。 背景 Pure Go な実装の MP3 デコーダーを探したのですが、自分の探す限りでは見つかりませんでした。 tcolgate/mp3 が最も近かろうと思われましたが、これはどうやらコンテナをデコードするのみのようです。 ないものはしょうがないので、自分で実装することにしました。フルスクラッチで実装するモチベーションはなかったため、既存の別言語の物を転用することにしました。今回は PDMP3 という Public Domain なデコーダーを採用しました。 PDMP3 は C で書かれていますが、これを手で Go に移植したわけです。できあがったものが go-mp3 です。 移植 移植にあたっては cgo を使って、まず PDMP3 素の状態で

    go-mp3: Pure Go な MP3 デコーダー - Qiita