タグ

signalに関するmuddydixonのブックマーク (14)

  • ややこしかったモールス信号を簡単に覚えられる1枚の斬新な図とは

    「トントントン、ツーツー」というふうに、長さの異なる符号を組み合わせて文字や数字を表すのが「モールス信号」です。たった2つの符号しか使わないモールス信号ですが、文字ごとのパターンを覚えるのが大変なもの。そんなモールス信号を簡単に覚えるためのイラストが公開されています。 Just Learn Morse Code ( Download ) http://qrznow.com/just-learn-morse-code-download/ そんなモールス信号を覚えるのに役立ちそうなのが以下の図。各アルファベットを表す符号がどういった短点と長点の組み合わせなのかがひと目で分かるようになっています。 図では各アルファベットをモールス信号で表す際にはどのような点の組み合わせになるのかが示されており、どの点からスタートするのかは「1」という数字で表されています。「S」は短点3つで表し…… 「O」は長点

    ややこしかったモールス信号を簡単に覚えられる1枚の斬新な図とは
  • Fluentd 入門 〜運用に必要な基礎知識〜

    最近業務で Fluentd を触ることが出てきて入門したんですが、最初のうちはトラブルが起きた時に何が起きているのか、どう対処したら良いのかがさっぱりわからなかったので、「Fluentd ってログの収集とかに使われるやつでしょ?」程度の知識しかなかった過去の自分に向けて「とりあえずこれぐらいは知っておけ!」と言いたい内容をまとめてみました。 トラブルが起きた時にどの処理で問題が起きているのか素早くコードを追うことができて、データの消失を最小限に抑えつつ適切に対処できるようになることを目的としています。 なお、現時点で最新版の Fluentd v0.14.21 を対象にしています。 アジェンダ Getting Started Fluentd のアーキテクチャ Processes Supervisor process Worker process Threads Input thread En

    Fluentd 入門 〜運用に必要な基礎知識〜
  • スレッドセーフなmruby-signal-threadを書いた | ten-snapon.com

    スレッドセーフなmruby-signal-threadを書いた | ten-snapon.com
  • Linux シグナルの基礎

    TLPI (The Linux Programming Interface) 再々。 TLPI の輪読の際に @matsumotory よりシグナルセットあたりをまとめるようにと指令が出たので、拙遅な感じでまとめました。 シグナルとは プロセス間通信の一種。「プロセスにシグナルを送信すると、そのプロセスの正常処理に割り込んで、シグナル固有の処理(シグナルハンドラ) が実行される」プロセス側では、シグナルを受信した際の動作(シグナルハンドラ) を設定することや、シグナルをブロックすることも可能。 コンソールで、プロセスを終了させるためにkill -9 <PID>とかCtrl+Cとかした際にも、対象プロセスにシグナルが送信されている。 ちなみに、PID「1」の initsystemd にkill -9 1しても何も起らない。(そういえば昔、oom-killer に init を殺された覚

    Linux シグナルの基礎
  • Unixプロセスとシグナルの基礎をRubyで再確認した - えいのうにっき

    前回までの続き。なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 - 達人出版会をまだ読んでいる。遅読。 Unixプロセスとリソースの基礎を再確認した - えいのうにっき プロセスとの情報のやりとりについて再確認した - えいのうにっき プロセスの適切な扱い方を再確認した - えいのうにっき 今回は、Unixプロセスとシグナルの基礎について再確認していく。 Unixシグナル・事始め Unixシグナルの「いろは」 シグナルを再定義する シグナルハンドリングの注意点 Unixシグナル・事始め 前回、子プロセスの終了を待ち受けるのに用いた Process.wait は、実行するとそこで自身(親プロセス)の処理を止めて子プロセスの終了を待った。これは ブロッキング呼び出し と呼ばれる。 では「親は親で何か別の仕事をしたいとき」はどうするかというと、これから見ていくシグナルを上手に使うと実

    Unixプロセスとシグナルの基礎をRubyで再確認した - えいのうにっき
  • Pythonで音声信号処理 - 人工知能に関する断創録

    今年の目標(2011/1/1)の1つに音声認識技術の深耕というのを立ててます。いきなり音声認識をやるのは知識不足でかなり大変だということが分かったので、まずは音声のいろんな性質や信号処理の技術を一つ一つ試しながら習得していくことにしました。 音声信号処理ではよくMatlabが使われるようなのですが、 Matlabは高くて買えない(フリーのOctaveってのもあります) すでに使っているPython、Rと文法が似ていて混乱する というわけでMatlabはやめてPythonを使います。SciPyにフーリエ変換の機能があったのでたぶん同じようなことができるでしょう。Pythonのいろんな音声関係のライブラリなんかも紹介できればと思います。 当面の目標は、簡単な類似楽曲検索システムを作ることです。その後は、いろんなツール(HTKなど)を駆使して音声認識システムを作りたいと思ってます。 このページは

    Pythonで音声信号処理 - 人工知能に関する断創録
  • ServerEngine at RubyKaigi 2014 - Go ahead!

    RubyKaigi 2014でServerEngineについて発表してきました. 最初はFluentdで発表しようかと思ったんですが,別の有用なプロジェクトの話もそろそろした方がいいかな,ということでServerEngineにしました. @sonotsさんがFluentdの発表をしてくれたので,被らなくて良かった… 画像は技評さんから. 以下がスライドです.書いてないことも発表では色々と話したので,動画もセットで見た方が良いです. fluent/serverengine ServerEngineはTreasure Dataで開発・運用されている分散キューや分散スケジューラ,それとFluentdなどの経験を元に,汎用的な部分を抽出してフレームワークにしたプロダクトです.発表で言及した機能の他にもBlockingFlagなどのユーティリティがあるので,Rubyでデーモンやバッチワーカーを書くと

    ServerEngine at RubyKaigi 2014 - Go ahead!
  • fork()は失敗するんだぜ、覚えときな

    fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。

  • Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して

    しばらくLinuxネタが続く・・。 近いうちに最近出たJava8ネタを書いてみようと思います。が、もう少しLinuxネタにお付き合いください。 前回はsshdを対象に親プロセスをkillした場合の動作を確認した。 killされたプロセスの子プロセスは孤児プロセスとなり、カーネルによって自動的にinitプロセスの子として扱われる事を説明した。(この動作を「リペアレンティング」と呼ぶ) 今回はこの続き。 Linuxで作業していてCtrl+Cしてプロセスを終了した場合、フォアグラウンドのプロセスやその子プロセスも一緒に終了する。 ということは、子プロセスは孤児として扱われず、リペアレンティングされていないことになる。 今回の記事ではこの振る舞いの違い(リペアレンティングされるか否か)に着目し、kill -SIGINTコマンドとCtrl+Cの違いについて考えていく。 そもそもkillコマンドやCt

    Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して
  • 「モザイクで隠された読めない文字」を復元・解読する方法!? | 雑学界の権威・平林純の考える科学

    右の運転免許証の写真のように、一部の文字を読むことができないように(判別できないように)モザイク処理をして、(公開できない情報が一部含まれている)機密文章や個人情報が含まれた写真などを公開することがあります。今回はそんな「モザイクで隠された読めない文字」を復元し、解読する方法について考えてみることにします。 モザイク処理にも色々ありますが、今回対象にするのは「文字サイズより大きいモザイク」です。たとえば、実例を作ってみたのが、たとえば下のような画像です。こんな秘密メッセージ、モザイクが掛かっていて肝心な部分を読み取れない秘密文章の内容を、解き明かすことができるでしょうか? まず、一見して、このモザイク部分には全部で5文字が隠されているということが明らかです。そして、その前に書かれた「一番最初は」という部分を見ると、ヒラギノ ゴシックの(画面解像度上で)18ポイントの大きさで書かれている、と

  • SIGNALを考慮してないTheSchwartz Job workerをなるべく安全に停止する - 酒日記 はてな支店

    TheSchwartz の worker はシグナルに対してデフォルトでは何もしないので、再起動させようと SIGHUP を送信したりすると job 処理の途中で割り込まれて死ぬ可能性があります。 自前でトラップして安全に再起動する方法は過去に TheSchwartz の worker を安全に停止する で書きました。3年前の記事ですが。 今回は、シグナルへの対処がなされていない古いスクリプトを修正したものの、既に動いている worker を安全に止めないと入れ替えられないのでどうするか、というお話。 安全な停止法を twitter で緩募したところ、以下のようなアドバイスを頂きました。しかし別の queue DB 使うのは確実そうだけどちょっと面倒ですよね…… 緩募: signal trapしてないTheSchwartzのjob workerを安全に止める方法 2011-04-25 11

  • memologue - UNIX上でのC++ソフトウェア設計の定石 (2)

    鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正

    memologue - UNIX上でのC++ソフトウェア設計の定石 (2)
  • Manpage of SELECT_TUT

    SELECT_TUT Section: Linux Programmer's Manual (2) Updated: 2007-12-18 Index JM Home Page roff page 名前 select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - 同期 I/O の多重化 書式 /* POSIX.1-2001 に従う場合 */ #include <sys/select.h> /* 以前の規格に従う場合 */ #include <sys/time.h> #include <sys/types.h> #include <unistd.h> int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *utimeout

  • Super Technique 講座〜シグナルとコールバック

    この文書ではまず、関数ポインタとその型チェックについて述べた後で、UNIXのシグナル機能について解説する。そして、ウィンドウシステムのプログラミングで多用される「コールバック」について解説する。 ちなみにシグナルの機能は質的には UNIX に固有である。他のOSにもないわけではないが、その異同については筆者は関知しない。また、UNIXでのシグナルの実装については Linux を基準に解説をしていく。UNIX シグナルは、実は具体的な実装において大変差がある機能なのだが、一応 POSIX で「こう実装しなさい」という風に決まってはおり、後発の Linux は比較的マジメにそれを実装しているので、まあ、Linux を基準にするのが無難というものであろう(ユーザ比の問題を別にしても)。勿論、伝統的に重要ないわゆる「SysVシグナル」「BSDシグナル」についてもしっかりと解説しているが、もはや「

  • 1