タグ

アルゴリズムに関するhigedのブックマーク (19)

  • 第4回 BBRの出現 | gihyo.jp

    バッファサイズ増加とバッファ遅延増大 近年、ルータやスイッチ等のネットワーク機器に搭載されるバッファメモリのサイズが増加してきました。この主な要因としては、メモリの低価格化が進んだことが挙げられます。またネットワーク機器に限らず、メモリサイズは大きい方が良い、という通念が主流となってきたことも大きく影響しているでしょう。ネットワーク機器のバッファサイズが大きくなることで、パケット廃棄が起こりにくくなるという利点があります(図1⁠)⁠。すなわち、ネットワーク機器に一度に大量のパケットが到着した場合にも、それらのパケットをメモリに蓄積しておき、順番に送出することができるようになります。 図1 バッファサイズとパケットロス しかしながら、バッファサイズが大きくなることによる弊害もあり、それがバッファ遅延の増大です。バッファ遅延の増大によって生じる遅延の増加現象はバッファブロート(Bufferbl

    第4回 BBRの出現 | gihyo.jp
  • 1.インフラストラクチャセキュリティ | Internet Infrastructure Review(IIR)Vol.22 | IIJの技術 | インターネットイニシアティブ(IIJ)

    取得ツールの検証 取得ツールの中には、取得時にエンコードされているデバッグ構造体をデコードするものが存在します。IIJではFTK Imager(※51)、Belkasoft Live RAM Capturer(※52)、Windows Memory Reader(※53)、winpmem(※54)、DumpIt(※55)の5つの取得ツールを検証し、デバッグ構造体をデコードするか否かの確認を行いました。その検証結果を表-1に示します。 結果から、DumpItが生成するcrashdump形式のみ、デコードされたデバッグ構造体のデータを含んでいることが分かりました(※56)。エンコードされたデバッグ構造体のデータとデコードされたそれを比較した図を図-12に示します。上がFTK Imagerで取得したエンコードされたデータで、下がDumpItで取得したデコードされたデータです。デコードされたデータ

    1.インフラストラクチャセキュリティ | Internet Infrastructure Review(IIR)Vol.22 | IIJの技術 | インターネットイニシアティブ(IIJ)
  • 安定した大企業に就職するならブラックスワン対策に「バーベル戦略」がお勧め

    キャリアを語るときにクランボルツの計画的偶発性理論が良く引き合いに出されます。 この理論は「個人のキャリアの 8 割は予想しない偶発的なことによって決定される」と説明され、たびたび良い意味の文脈で用いられることが多いように思います。「偶然を活かせ」「飛び込んでみろ」「新しい可能性にチャレンジしろ」と。 ただ、偶然には良い偶然と悪い偶然があります。そして計画的偶発性理論が言及されるときは、良い偶然が強調されがちで、悪い偶然について語られることが少ないようです。 しかし、もし当にキャリアの 8 割が偶然で決まるのであれば、悪い偶然によってキャリアが大きく変わることもありえます。そのとき我々はどうすれば良いのでしょうか。今回考えてみたいのは、そうした悪い偶然がキャリア上で起こりうるときの対策法です。 キャリア上の”悪い偶然”は、予期できないブラックスワンの形で現れることもあるキャリアにおける悪

    安定した大企業に就職するならブラックスワン対策に「バーベル戦略」がお勧め
  • 中年プログラマの競プロ事始 - hydrakecat’s blog

    これはなに 自分がここ2年ほど趣味として競技プログラミングをやった経緯と感想です。いわゆるプログラマの定年と呼ばれる35歳を過ぎてから始めたのですが、思ったよりも楽しめました。自分のようなシニアと呼ばれるプログラマが競プロに興味を持ってくれたらいいなと思って書きました。 競技プログラミング競プロ)とは 競技プログラミング(以後、競プロ)は、プログラミングをして順位を競うコンテストです。コンテストはたいていオンラインで毎週のように開かれており、誰でも参加できます。形式としては、与えられた時間内にいくつかの問題を解くコードを提出して、その正解数と提出までにかかった時間を競うというものです。たいていは、コードの実行時間および使用メモリに制限があり、その制限内で実行できるコードを書く必要があります。またコードが正解かどうかは出題者が用意したテストケースをパスするかどうかで判定されます。 多くのコ

    中年プログラマの競プロ事始 - hydrakecat’s blog
  • 様々なrate limitアルゴリズム - Carpe Diem

    概要 インターネットに晒されているWebサービスでは TV等で紹介されたことによる大量流入 悪意ある人物からの攻撃 クライアントのバグに依る大量リクエスト など、来想定していた以上のトラフィックが来ることはよくあります。 単純にシステムを構築すると大規模トラフィックに対応できずシステムがスローダウンしてしまうため、何かしらrate limitをかけておいた方が良いです。 ただしrate limitと一口に入っても色々あるため、今回は主なrate limitアルゴリズムを紹介します。 Leaky bucket Leaky bucketはデータ転送レートを一定にする(=上限を設定する)アルゴリズムです。 下の図のように、様々な流量の水流がそのバケツに流れ込んでも小さな穴からは一定の水流が流れ出す仕組みです。 ref: What is the difference between token

    様々なrate limitアルゴリズム - Carpe Diem
  • メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ - ももいろテクノロジー

    「ハッシュ」という言葉があいまいに使われている場面をしばしば目にするので、関係する概念とそれらの違いについてまとめてみる。 メッセージダイジェスト(Message Digest; MD) MD5、SHA-1、SHA-256など、あるバイト列(メッセージ)に対し固定長の要約値を求めるアルゴリズム。 メッセージの同一性判定に用いられる。 同一の要約値となる(異なる)メッセージの組を求めることが計算量的に困難(強衝突耐性)なものをメッセージダイジェストと呼び、暗号学的ハッシュ関数とも呼ばれる。 同一の要約値となるメッセージの組が容易に求められるものは、誤り検出符号と呼ばれ区別される。 CRC32は誤り検出符号の一種である。 PythonでSHA-256を用いてメッセージダイジェストを求める例を次に示す。 $ python Python 2.7.5 (default, Oct 2 2013, 22

    メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ - ももいろテクノロジー
  • プログラマだったら当然知ってるよね?という知識一覧

    2019年11月11日追記 ただのタイトルで煽ってるだけの記事に半年経っても未だに大量のアクセスがあるので追記しておきます。 ここで言いたいことは、「プログラマならコンピュータサイエンスを勉強してると役に立つよね」、ということ だけ です。 この一文以上に有用な言葉は以降の文章では出てきません。みなさんの時間を無駄にしないために注意書きをしました。 それでも良いという人は読んでみてください。 Twitterで「〇〇ができるという人が面接に来たけど、『じゃあXXXやYYYって知ってます?』というと知らないという人が多いんだよねぇ」とかいうツイートを見かけて、私はXXXやYYYってのを知らなかったので調べた見たところ、常識とまでは言えない概念だったり、名前は知らなくても誰もが知ってる概念だったり、むしろもっと良いアプローチがあるのではという思想だったりでなんだかなぁと思っていたところ、半日くら

    プログラマだったら当然知ってるよね?という知識一覧
  • ITエンジニアが投票した「ITエンジニア本大賞2018」ベスト10が発表。人工知能の教科書/アルゴリズム図鑑/退屈なことはPythonにやらせよう、などランクイン - Publickey

    翔泳社は「ITエンジニアに読んで欲しい!技術書・ビジネス書 大賞 2018」(ITエンジニア大賞)を開催。ITエンジニアの投票を集計した結果選ばれた技術書とビジネス書の各ベスト10を1月17日に発表しています。 ベスト10のなかで特に投票の多かった上位6冊については、同社が今週木曜日、2月15日に都内で開催する「Developers Summit 2018(デブサミ2018)」において書籍の著者、編集者、翻訳者などによるプレゼン大会が開催され、そこで行われる最終投票によって大賞が決定されます。 当日プレゼンを行うのは、以下の6冊です。 技術書部門 『アルゴリズム図鑑 絵で見てわかる26のアルゴリズム』 『機械学習入門 ボルツマン機械学習から深層学習まで』 『退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング』 ビジネス書部門 『大人の語彙力が使える

    ITエンジニアが投票した「ITエンジニア本大賞2018」ベスト10が発表。人工知能の教科書/アルゴリズム図鑑/退屈なことはPythonにやらせよう、などランクイン - Publickey
  • アルゴリズムを楽しく学ぼう! 独習に役立つWebサイト・参考書・競技プログラミングを紹介〈13選〉 - エンジニアHub|若手Webエンジニアのキャリアを考える!

    アルゴリズムを楽しく学ぼう! 独習に役立つWebサイト・参考書・競技プログラミングを紹介〈13選〉 プログラムの性能を改善して開発スピードを向上させるため、アルゴリズムを気軽に、かつ楽しく学べるWebサイトや書籍など、13種類のさまざまなコンテンツを紹介していきます。 アルゴリズム(algorithm)とは何なのでしょうか? 例えば、 Wikipediaにはこうあります。 アルゴリズムとは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。 「問題を解くための手順を定式化した」とは、ソフトウェアエンジニアにとって「プログラミング」のことです。 みなさんも日々の開発業務において、問題(要件)を解くための手順を考え、その手順を特定のプログラミング言語で表現していませんか? アルゴリズムは、一般に「ソート(整列)」や「探索」と

    アルゴリズムを楽しく学ぼう! 独習に役立つWebサイト・参考書・競技プログラミングを紹介〈13選〉 - エンジニアHub|若手Webエンジニアのキャリアを考える!
  • Amazonの推薦システムの20年

    IEEE Internet Computingの2017年5・6月号に "Two Decades of Recommender Systems at Amazon.com" という記事が掲載された。 2003年に同誌に掲載されたレポート "Amazon.com Recommendations: Item-to-Item Collaborative Filtering" が Test of Time、つまり『時代が証明したで賞』を受賞したことをうけての特別記事らしい 1。 「この商品を買った人はこんな商品も買っています」という推薦で有名なAmazonが1998年にその土台となるアルゴリズムの特許を出願してから20年、彼らが 推薦アルゴリズムをどのような視点で改良してきたのか 今、どのような未来を想像するのか その一端を知ることができる記事だった。 アイテムベース協調フィルタリング 20年前も

    Amazonの推薦システムの20年
  • 分散システムについて語らせてくれ

    NTT Tech Conference #2 にて話した資料 時間が足りなかったので全部は話せなかった。Read less

    分散システムについて語らせてくれ
  • マネーフォワードがfreeeに勝訴--会計ソフト機能の特許訴訟で

    2016年10月にfreeeがマネーフォワードを相手取り、特許侵害で提訴した訴訟について、7月27日に第一審判決が言い渡された。結論として、マネーフォワード側の主張が全面的に認められ、freeeの請求が棄却される形となった。 (左から)マネーフォワード執行役員管理部長の坂裕和氏、同社代表取締役社長CEOの辻庸介氏、日比谷パーク法律事務所代表パートナーの久保利英明氏、同パートナーの上山浩氏 通常、知財訴訟は14カ月程度の期間が必要となるが、今回の場合は9カ月でのスピード判決となった。マネーフォワードでは、freee側がマネーフォワードの持つ技術についての十分な検証を実施せず、特許を侵害していないとする実例に対して具体的な反論もないことから、早期終結につながったと分析している。なお、freeeは提訴の6カ月後に、別特許の侵害も主張したが、タイミングが遅すぎたとのことで裁判所から却下されている

    マネーフォワードがfreeeに勝訴--会計ソフト機能の特許訴訟で
  • TechCrunch | Startup and Technology News

    It’s that time of week again, folks. Welcome to Week in Review (WiR), TechCrunch’s regular digest of the past week in tech. New here? Not to worry — sign up here to get WiR in your i

    TechCrunch | Startup and Technology News
  • RSA暗号運用でやってはいけない n のこと #ssmjp

    論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki

    RSA暗号運用でやってはいけない n のこと #ssmjp
  • ns-3でTCPの輻輳制御を観察する - Qiita

    1. はじめに インターネット上のほとんどのトラフィックは,TCP(Transmission Control Protocol)によって制御されていると言われています.TCPの特徴の一つとして,送信ノードが各々輻輳1制御アルゴリズム(Congestion control algorithm)に基づき,一度に送信するデータ量を調整する,という点があります.記事では,ns-3で各アルゴリズムの動作をシミュレートし,NumPy + matplotlibで視覚化します. TCPの輻輳制御アルゴリズムを比較するために,ns-3にはtcp-variants-comparison.ccというサンプルシナリオが用意されています.しかし,このシナリオスクリプトをそのまま使うと,記事で注目するいくつかの変数をモニタ(ns-3では,トレースと呼びます)できない,という課題がありました.そこで,記事では,シ

    ns-3でTCPの輻輳制御を観察する - Qiita
  • 初心者でもOK!レベル別・アルゴリズムをすぐに学べる書籍とサイト12選 - paiza times

    Photo by Tim Samoff 秋山です。 皆さんはアルゴリズムについてどれくらい知っていますか?というか勉強したことありますか? 私はもともと情報系だったので学校でも習いましたが、paizaのプログラミングスキルチェック問題を作るときなどはいまだにいろいろ調べることもあります。 アルゴリズムについて勉強したことがない人の中には「ずっと気になってはいるものの、各プログラミング言語の書き方やフレームワークの使い方などを学ぶことに手一杯で、アルゴリズムはつい後回しになっている…」という方も多いと思います。 ただ、アルゴリズムを知らないままプログラミングを続けていると、少し複雑な処理を考えなければならなくなったときなどに、力技のやり方しか考えつかなくて「すごい人だったらもっとスマートな書き方ができるんだろうな……」と悶々としてしまうことがあるはずです。 今回はそんな方に向けて、アルゴリズ

    初心者でもOK!レベル別・アルゴリズムをすぐに学べる書籍とサイト12選 - paiza times
  • 経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた

    A* ではゴールへの経路が判明した段階で処理は終了です。 A* はダイクストラ法に比べてゴールに到達するまでに調べるマス目が少ないのが印象的です。 ダイクストラ法と同じように水で例えると、A* では水が少し意思を持っていて、なるべくゴールに近いほうに流れようとするようなイメージです。ここがまさに A* のキモです。ゴールへの近さを加味して、探索するノードの数をなるべく減らそうとします。 A* では、スコアとして f* = g* + h* を用います。各ノードの f* を調べて、f* の値が小さいノードから先に探索していきます。g* はスタート地点からの距離であり、ダイクストラ法で用いるスコアと同じです。h* がゴールへの距離なのですが、実際の最短距離は途中の段階では分からないので、ゴールへの直線距離やマンハッタン距離を利用して計算します。 この、h* の部分がゴールへの近さを加味する部分で

    経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた
  • GolangのGCを追う

    Go1.5とGo1.6でGoのGCのレイテンシが大きく改善された.この変更について「ちゃんと」理解するため,アルゴリズムレベルでGoのGCについて追ってみた. まずGoのGCの現状をパフォーマンス(レイテンシ)の観点からまとめる.次に具体的なアルゴリズムについて,そして最後に実際の現場でのチューニングはどうすれば良いのかについて解説する. GoのGCの今 最初にGoのGCの最近の流れ(2016年5月まで)をまとめる. Go1.4までは単純なStop The World(STW)GCが実装されていたがGo1.5からは新たなGCアルゴリズムが導入された.導入の際に設定された数値目標は大きなヒープサイズにおいてもレイテンシを10ms以下に抑えることであった.Go1.5で新たなアルゴリムが実装されGo1.6で最適化が行われた. 以下は公開されているベンチマーク.まずはGo1.5を見る. Gophe

  • アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」

    アルゴリズムを理解するのにビジュアル化することは非常に有効で、プログラムをビジュアル化することで理解が進むのもまた同じ。そこで、アルゴリズム・プログラミングの理解が進むようにと、アルゴリズムを記述したプログラムコードを一挙にビジュアル化することで、アルゴリズム&プログラミングを同時に学習できる一挙両得なサービス「VisuAlgo」が公開されています。 VisuAlgo - visualising data structures and algorithms through animation https://visualgo.net/en 上記のVisuAlgoサイトで試しにソートアルゴリズムの基プログラム「バブルソート」をビジュアル化してみます。「Sorting」の「bubble」をクリック。 検索窓の下に「bubble」と表示されたのを確認したら「Sorting」の画像をクリック。

    アルゴリズムとプログラミングをビジュアルで一挙に理解できる「VisuAlgo」
  • 1