タグ

2020年12月16日のブックマーク (8件)

  • 結局、Go言語をやめる理由はなかった件 - Qiita

    この記事は Go 2 Advent Calendar 14日目の穴埋め記事です。 はじめに @okdyy75 さんによる Go 5 Advent Calendar 14日目の の記事「だから僕はGo言語を辞めた」 が「ベンチマークっていうのはこうやるんだよ」というのを説明するために反面教師的な意味で良い教材だと思ったので、反証記事を書きたいと思います。 ベンチマークを取りながらコードを改善して、最終的にGoは遅くないからやめる必要はないということ、そして、なぜ遅いという結論になってしまったのかを掘り下げていきたいと思います。 下準備 幸いなことに、ベンチマークのソースコードがGitHubにある ので、こちらを実行しながら問題点を改善していきましょう。 ちゃんとコードが上がっているのは素晴らしいですね! 一方で、元記事には測定環境が明記されていませんでしたので、同じ環境で測定することはできま

    結局、Go言語をやめる理由はなかった件 - Qiita
    castaneai
    castaneai 2020/12/16
    “Goの標準ライブラリである database/sql には fetchall のような一度に全部の結果を読み込むためのAPIがありません。したがって、Goでは一度にすべてを読み込むことは(標準の方法では)不可能なのです。”
  • AWS・GCPとKubernetesの権限まわりの用語を具体例から理解する - JX通信社エンジニアブログ

    はじめに TL; DR; 社内の普段はインフラ以外のところを主戦場にしている人向けに、AWSGCPの権限に関する用語と概念を説明するために書いたものを加筆訂正して公開します AWSGCPの権限管理は、基的な概念は似ているが同じ英単語が別の意味でつかわれているのでややこしい 書いてあること 概念の説明と、関係を表す図 EKS・GKEからクラウドリソース *1 を使う時の考え方 書いてないこと 設定のためのコンソール画面のスクショや手順 Kubernetesからクラウドリソースを操作する方法は、以前のブログ「GitHub Actionsで実現する、APIキー不要でGitOps-likeなインフラCI/CD」でTerraformによるコードの例も紹介しているので、あわせて参考にしてみてください 想定読者 AWSはそこそこ使って慣れているけど、GCPにおける権限管理を理解したい人(またはその

    AWS・GCPとKubernetesの権限まわりの用語を具体例から理解する - JX通信社エンジニアブログ
    castaneai
    castaneai 2020/12/16
    “AWS・GCPの権限管理は、基本的な概念は似ているが同じ英単語が別の意味でつかわれているのでややこしい”
  • gRPCのkeepaliveで気をつけること - Carpe Diem

    概要 gRPCでは1つのHTTP/2コネクション上でstreamを多重化します。 しかしidleなコネクションは、LBなど間に介在するネットワーク機器によって気づいたら切断されているケースがあります。 そうならないよう、定期的にパケット(PINGフレーム)を流して「idleではないよ」とコネクションを維持しようとするのがいわゆるkeepaliveという仕組みです。 gRPCではデフォルトの設定では無効になっている&地味に設定が細かいので1つ1つ説明します。 gRPCのkeepaliveの役割 大きく2つあります。 1つ目は先に述べたようにidleコネクションを維持するためです。 2つ目は死んだコネクション(TCPハーフオープン)があったら切断し、再接続するためです。 例えばNLBでは350秒以上idleなコネクションが切断される仕組みがあり、これによって普段あんまりトラフィックの無いサービ

    gRPCのkeepaliveで気をつけること - Carpe Diem
    castaneai
    castaneai 2020/12/16
  • HTTP クライアントを作ろうとして学ぶ、使いやすいインタフェース / #GoCon_Sendai 2020

    Go Conference 20' Autumn SENDAI - https://www.youtube.com/watch?v=7SdxaKurDOc - How to design a good API and why it matters https://research.google/pubs/pub32713/ - gRPC の話 https://speakerdeck.com/south37/real-world-migration-from-http-to-grpc-in-ruby-number-grpcconf - https://github.com/izumin5210/hx

    HTTP クライアントを作ろうとして学ぶ、使いやすいインタフェース / #GoCon_Sendai 2020
    castaneai
    castaneai 2020/12/16
    使いやすいhttp.Clientを目指して
  • GitHub - jonatasbaldin/awesome-awesome-awesome: Awesome list of repositories of awesome lists 🤷‍♀️

    castaneai
    castaneai 2020/12/16
    “Awesome list of repositories of awesome lists 🤷‍♀️”
  • 2020年に作ったソフトウェアや開発技術をふりかえる - laiso

    概要 よくある年末っぽい日記の記事です。 だいだいこれどうりのバランスでソースコードも書いてる 言語はなんでもいい時はNode.jsで書く。移植性が高いので。複数人でメンテしそうな時はTypeScriptを採用し、プライベートの時は型を完全に無視する PHPはほぼLaravel。ビジネスのみの関係 Swiftはそんなに書いた記憶がないけどアプリのメンテをしてたと思う Vue仕事で使っていたけど最近はReactに傾いてる Objective-Cは書いてない グラフに含まれてない部分だとAndroidアプリでKotlinを使って、データ分析Pythonを書いた このグラフは GitHub Profile Summary Cards っていう便利ツールを使わせてもらって自動生成している。 記録方法 コードを書く時はおもむろに ~/tmp 以下にディレクトリ掘ってIDEを開きはじめるので実質そ

    2020年に作ったソフトウェアや開発技術をふりかえる - laiso
    castaneai
    castaneai 2020/12/16
    “この記事を自分で読んでて思ったけどこのまま行くと「町の変人発明家」ポジになってしまうのでは????”
  • Winsock Programmer's FAQ: Articles: The Lame List

    ザ・間違いリスト はじめに 「ザ・間違いリスト」(The Lame List)は、非常に有用なものであ るので、ここに再掲することにします。この文章は、Windows Sockets 2 アプリケーションプログラミングインターフェースバー ジョン 2.2.2 の付録C から直接カット&ペーストしたものです。このリ ストはもともと、Winsock スタックベンダ達が、お馬鹿なアプリケーショ ンの数々(名前を出すことは控えておきます)について文句を並べたもの が始まりです。にも関わらずこれらの内容は非常に有用なものです。と いうのは、新米の Winsock 屋さんは、やはり同じお馬鹿な間違いをし でかしてしまうからです。このリストに載っている内容を避けるように することが、あなたを Winsock の超プロに向かう長い道へと導くので す。 このリストのもともとのはしがき: このリストを始めた功

    castaneai
    castaneai 2020/12/16
    さまざまな形の間違いがある
  • ソケットプログラミングのTips

    概要 ソケットプログラミングに関するTipsをメモレベルで記載する。 切断検知と経路切断 TCPコネクションの切断検出 対向がclose()、shuttdown()、プログラム終了等をしたときの切断検出について。 OSをシャットダウンさせた場合も通常はアプリケーションの終了処理が走り、正常な切断が動く。 受信側の切断検出は、recv()がlength==0で返ってきたとき、または、errno==ECONNRESETとなる。(ECONNRESETはRSTによって切断された場合) 送信側の切断検出は、切断された後2回目のsend()がエラーとなる。 ※相手がclose()→こちらがsend()→相手にパケットが飛ぶが待ち受けプログラムがいないためRST応答が来る→もう1度send()→エラー ※send()自体はカーネルの送信バッファにデータコピーするだけなので、TCPレベルの応答(送信完了)

    ソケットプログラミングのTips
    castaneai
    castaneai 2020/12/16
    “※相手がclose()→こちらがsend()→相手にパケットが飛ぶが待ち受けプログラムがいないためRST応答が来る→もう1度send()→エラー”