タグ

2017年12月6日のブックマーク (15件)

  • 6日目: [CPU] bit拡張と数値演算 - しかくいさんかく

    bit拡張と数値演算 この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の6日目の記事です。 昨日は変数(レジスタ)の数を4個に増やして、mov命令が実行できるCPUを設計した。 しかしmov命令だけでは大したことができない。 そこで今日は(浮動小数点を含む)四則演算ができるように回路を拡張する。 bit拡張 昨日はレジスタの種類を増やしたが、各レジスタの桁数は1bitのままだった。 2進数1桁の変数では計算もへったくれもない1ので、まずはbitを拡張しよう。 拡張方法は極めて簡単。 例えばmov a, bを考えると、aの1の位はbの1の位で上書きされ、10の位は10の位で上書きされる。 つまりmov命令は各桁毎に独立に実行される。 これを実現するには、昨日の回路と全く同じものを並べればいい。 当然だが、マルチプレクサに入る線Sx, Syは各

    6日目: [CPU] bit拡張と数値演算 - しかくいさんかく
    hiroyukim
    hiroyukim 2017/12/06
  • CLUI - CUIアプリケーションを使いやすくするUIライブラリ MOONGIFT

    GUIがどれだけ普及したとしても、CUIがなくなる訳ではありません。むしろサーバサイドに注目が集まる度にCLIを使った操作が増えていきます。そうした時にすべてオプションで指定したりするのはナンセンスです。 そこで使ってみたいのがCLUIです。まるでGUIのようなユーザインタフェースを提供するライブラリです。 CLUIの使い方 こんな感じのボックスも。 テーブル。 棒グラフ。 ダイナミックにカスタマイズできます。 テーマ機能があります。 こちらはSpark型のグラフデモです。 CLUIはCUIの中で便利なUIを実現できます。Goで作られているので、Go製のコマンドアプリケーション向けになりますが、最近Goで作られたCLIツールは数多いので、さらにユーザビリティを高めるためにCLUIを使ってみるのは良さそうです。 CLUIGo製のオープンソース・ソフトウェア(MIT License)です。

    CLUI - CUIアプリケーションを使いやすくするUIライブラリ MOONGIFT
    hiroyukim
    hiroyukim 2017/12/06
  • The Go Memory Model - The Go Programming Language

    Introduction The Go memory model specifies the conditions under which reads of a variable in one goroutine can be guaranteed to observe values produced by writes to the same variable in a different goroutine. Advice Programs that modify data being simultaneously accessed by multiple goroutines must serialize such access. To serialize access, protect the data with channel operations or other synchr

    The Go Memory Model - The Go Programming Language
    hiroyukim
    hiroyukim 2017/12/06
  • GitHub - cayleygraph/cayley: An open-source graph database

    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

    GitHub - cayleygraph/cayley: An open-source graph database
    hiroyukim
    hiroyukim 2017/12/06
    へー “An open-source graph database ”
  • Linuxでネットワークの監視を行えるモニタリングコマンド20選 | 俺的備忘録 〜なんかいろいろ〜

    今回は、Linux上でネットワークトラフィックの監視を行えるモニタリングコマンドについて、数あるコマンドから20個を紹介する。 1.iftop 以前にこちらでも書いているiftopは、個別のソケットで受信・送信パケットをひと目で見る事が出来るコマンド。 通信ごとに個別のプロセスを表示させることは出来ないが、どのホストとの接続がどの程度の帯域を使用しているのかはひと目で分かるだろう。 以下のコマンドでインストールが出来る。 sudo apt-get install iftop # Debian/Ubuntuの場合 sudo yum install iftop # RHEL系の場合 2.bmon 『bmon』は、グラフでトラフィックの負荷を表示してくれるモニタリングコマンドだ。 どのNICのトラフィックを表示させるかを上下キー、モニタリングを行うパケットの種類を左右キーで選択する。 このコマン

    hiroyukim
    hiroyukim 2017/12/06
  • Elasticsearchのインデックス開きすぎによるヒープメモリ枯渇 - n-agetsumaの日記

    この記事はElastic stack Advent Calendar 2017の12/6分の記事です。 ElasticスタックによるApacheアクセスログやsar情報などのメトリクス収集を初めて導入した後の頻出トラブルとして、インデックスのオープンしすぎによるJavaヒープメモリ枯渇がある。 検索エンジン用途や、運用監視業務に組み込むような「気の」運用では、事前にサイジングが行われる。しかし、まずはシステム状況が可視化できるかお試しで導入を始めると、とりあえず運用を始め、インデックスのクローズや削除、スナップショットの定期取得などの運用管理計画はどうしても漏れがちとなる。 では、具体的にElasticsearchはだいたい何ヶ月分のメトリクスが保存できるのが次の疑問になるが、以下のような多様な要素が作用するため、要件に合わせて実機検証が必要となる。 登録するメトリクスの種類 Apach

    Elasticsearchのインデックス開きすぎによるヒープメモリ枯渇 - n-agetsumaの日記
    hiroyukim
    hiroyukim 2017/12/06
  • 今更X-Rayに入門してみた - Qiita

    はじめに X-Ray使うとApplication中心に各サービス間の通信をトレースあれこれできていいと聞いたが、どういうものか?仕組みがピンと来てなかったのでチュートリアルをやったよ、というチュートリアル。 AWS X-Ray とは何ですか X-Ray SDK (Java/Node.js/Python/Go/.NET)を自分のアプリケーションに組み込んで、 X-Ray デーモンと通信すると、 GUIでかっこいいService mapとかTrace見れる、 やつ。 チュートリアルやってみた まんまAWS X-Rayの開始方法をやっただけです... まだの人はちゃんと読もう、公式チュートリアル! 流れとして、 EBでjava web server立てて、 必要なrole権限をiamから設定して、 EBにサンプルX-RayアプリDeployすると、 X-RayでかっこいいService map/

    今更X-Rayに入門してみた - Qiita
    hiroyukim
    hiroyukim 2017/12/06
  • Go製のUnique ID Generator「xid」について - Qiita

    この記事は Go3 Advent Calendar 2017 の6日目の記事です。 はじめに DBに保存するデータのIDやセッションIDなどの一意なIDを、分散したWebアプリ上で発行することで、発行処理をスケールさせたいといったケースがあります。 そういったケースでは、UUIDやSnowflakeなどの使用例が良く紹介されています。 この記事では、Go製のライブラリで、Goアプリから簡単に使用できるID Generatorである「xid」について紹介します。 このxidは自分が仕事で開発しているシステムでも採用しています。 GitHubリポジトリ: https://github.com/rs/xid xidについて 詳しくはGitHubのREADMEの書かれていますが、その中から一部抜粋して紹介します。 binaryのformat 全体で12bytesで、先頭から以下のように構成されてい

    Go製のUnique ID Generator「xid」について - Qiita
    hiroyukim
    hiroyukim 2017/12/06
  • ビスケットの中身の話

    これは「言語実装Advent Calendar 2017」の12月6日に向けて書いています.普段の投稿とちがって少し専門家向けに書いています. 最近はプログラミング教育ブームですが,ビスケットはそんなブームになる前からコツコツと作ってきた教育向けビジュアル言語です.一線の研究者から身を引いてからは,あまりビスケットの中身について書くことは無かったのですが,いい機会なのでこのカレンダーに参加しました. ビスケットは絵を動かすために絵でプログラムを作る言語です.これはたとえば,数値計算のためにFORTRANが生まれたり,知識表現のためにLISPが生まれたり,という背景と同じです.なにかを計算対象とするプログラミング言語はその対象と近い表現形式を取るべきであるということです. たとえば,絵が動くアニメーションのためには普通の言語でしたら move(10, -50) というように表記しますよね.X

    ビスケットの中身の話
    hiroyukim
    hiroyukim 2017/12/06
  • RustでミニTensorFlowを作った - Qiita

    Rust Advent Calendar 2017 6日目の記事です。 rust-autograd というライブラリを作りました。https://github.com/raskr/rust-autograd もともとニューラルネットのライブラリのつもりだったんですが、GPUの知識がなさすぎて無理だと気づき、一般的な名前にしました。一応ドキュメント(兼テスト)もあります。例えば行列積の計算はこんな感じです: extern crate autograd as ag; let a: ag::Tensor = ag::zeros(&[4, 2]); let b: ag::Tensor = ag::zeros(&[2, 3]); let c: ag::Tensor = ag::matmul(&a, &b); println!("{}", c.eval(&[]).unwrap()); // [[0,

    RustでミニTensorFlowを作った - Qiita
    hiroyukim
    hiroyukim 2017/12/06
  • Compact Directed Acyclic Word Graphを定義する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? これは「文字列アルゴリズム Advent Calendar 2017」4日目の記事です. 3日目の記事は@itomomotiによる「周期性補題」でした. 5日目の記事は@kazu0x17による「木の同型性判定」です. 昨年の文字列アルゴリズム Advent Calendar では「Suffix Tree + Suffix Array = Suffix Tray」という記事を書きました. はじめに 文字列アルゴリズム,特に文字列に対する索引が好きです. 古典的な全文索引であるCompact Directed Acyclic Word Gr

    Compact Directed Acyclic Word Graphを定義する - Qiita
    hiroyukim
    hiroyukim 2017/12/06
  • 木の同型性判定のお話 - kazu0x17’s diary

    この記事は文字列アドベントカレンダー5日目の記事です. qiita.com はじめに 文字列Advent Calendarと言いつつ,木について書いていこうかなと思います. まあ,文字列ガチ勢から見れば,根付き木は実質文字列なので,このCalendarで書いてもみんな喜んでくれると信じています. あと,実際ここで紹介する手法でも木を文字列に変換してから色々やって,木の同型性を判定します. 紹介内容 今回紹介するのはタイトル等にもあるように,木の同型性判定問題を線形時間で解くアルゴリズムの紹介をします. 木のお話をする前にグラフの同型性判定問題について説明します.グラフの同型性判定問題とは,2つのグラフ$G$と$H$が与えられた時,$G$と$H$の頂点間に辺の有る無し関係を変えないような頂点の対応付けがありますか?というYes/No問題に答える問題です. 木の同型性判定問題とは,この入力グラ

    木の同型性判定のお話 - kazu0x17’s diary
    hiroyukim
    hiroyukim 2017/12/06
  • メモリーイメージをライブダンプで取得する手順 - Qiita

    # /path/to/crash crash 7.2.0++ Copyright (C) 2002-2017 Red Hat, Inc. Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation Copyright (C) 1999-2006 Hewlett-Packard Co Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited Copyright (C) 2006, 2007 VA Linux Systems Japan K.K. Copyright (C) 2005, 2011 NEC Corporation Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc. Copyright (C) 1999, 2000, 2001, 20

    メモリーイメージをライブダンプで取得する手順 - Qiita
    hiroyukim
    hiroyukim 2017/12/06
  • goddd とは何か? - pospomeのプログラミング日記

    これは Go Advent Calendar 2017 その2 6日目の記事です。 https://qiita.com/advent-calendar/2017/go2 みなさん、こんにちは。 pospome です。 普段は GAE/Go でサーバサイドの開発をしています。 twitter では 実装パターン, DDD, golang, GCP についてつぶやくことが多いので、 同じような分野に興味があれば、 フォローしてマサカリ投げてもらえると嬉しいです。 https://twitter.com/pospome ということで題に入ります。 golang.tokyo #9 で goddd という github リポジトリを知りました。 https://golangtokyo.connpass.com/event/65921/ ちょっと興味があったので、 goddd に対する自分の感想を書

    goddd とは何か? - pospomeのプログラミング日記
  • 5日目: [CPU] レジスタの複数化とマルチプレクサ - しかくいさんかく

    この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の5日目の記事です。 昨日は1bitCPUを導入した。 要するにCPUとは、クロックが立ち上がるたびに、計算した値を変数に代入するループであった。 変数はDフリップフロップを用いて実装されており、そのように情報を記録する素子をレジスタと呼ぶのだった。 昨日はCPUの簡単な例を出すのが目的だったので、1bitレジスタ1個のCPUを考えた。 変数はaしかなかった。 今日はレジスタ4個、つまりa,b,c,dの4変数が扱える回路を考える。だいぶCPUらしくなるぞ~ 1bitレジスタ4個のCPU 今日の目標はこの回路を理解することだ。 実はこの回路、4個のレジスタに対しmov命令が実行可能な回路になっている。 予告通り、Dフリップフロップが4個左側に並んでいる。このレジスタを上から順にa,b,c,dと

    5日目: [CPU] レジスタの複数化とマルチプレクサ - しかくいさんかく
    hiroyukim
    hiroyukim 2017/12/06