サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
suu-g.hateblo.jp
人間、生きているとIPアドレスを持つけれど、そのIPアドレスは果たして個人情報やそれに類するものに相当するのだろうか、という話。 結論から言うと、「即座には」個人情報であるとは言えない、というのが EU の現在*1の状況だ。これは多分カリフォルニアとかでも同じ。 TL;DR あるいは FAQ GDPR のもと、 IP アドレスは個人データになりうるが、それは国のような ISP からデータを引き出しうる存在か、 Tech Giants のように大量のデータを保有していてそれにより個人を特定可能な存在が保有している場合のみ。一般人やそこらの Web ページ管理者には本来そこまで関係はない 個人データに相当する場合であっても、外部からの攻撃への対処など、正当な事由があれば、IPアドレスを保持することはできる CDN については今のところNGとなる事例は見てない(知ってたら教えてください) Web
BLM の関係でコンピュータ業界の Master / Slave という言葉遣いにもメスが入ろうとしているいま、 DNS ではどうなっているんだっけ、というのがふと気になった。 というのも mattn さんの blacklist/whitelist master/slave に関する情報集め を見たから。あとコメントもしたから。 で、調べて行ったところ、ひとことで言えば既に Primary / Secondary になってるんだけど、そもそもこの用語自体そんな使わないよな、と思ったのだけど、そのあたりを解説するのは元記事の関心ごとと全く違うってことで、改めて自分のブログの記事にしてみたというわけ。 DNS は趣味でしかないので、ツッコミ大歓迎です。 Primary/Secondary が正しい用語です 用語に困ったら RFC 8499 (Jan, 2019) が正しい参照先。こう書いてある
以前の同期の友人と、そういえば数字だけのドメイン名って許されてるんだっけ?という話題で一通り盛り上がった。なかなか面白いことがわかったのと、イマイチよーわからんなーということが出てきたので、せっかくなので記事にしておこうと思う。 TL;DR 数字のみのホスト名は RFC 的に OK アンダースコアはホスト名的には NG だがドメイン名的には OK 数字だけのドメイン https://0.30000000000000004.com/ というサイトが Twitter で回ってきた。 こういうドメインって RFC 的にどうなんだっけ。数字だけのドメインって大丈夫なんだっけ? ホスト名の定義(大元) host name については、元々は RFC952 に記載がある。以下、関係のある部分だけ抜き出し。 GRAMMATICAL HOST TABLE SPECIFICATION <official h
久々に Aironet をきちんとMBSSIDにて設定した。公式の設定例を見ながらだいたいできたのだけど、最後の最後でひとつうまく行かないことがあって、40分くらいはそれで浪費してしまった。 学生のころはこんなもんだろと思っていた設定が、今となってみるとずいぶん不合理に見えてきて、「どこに何が必要か」について把握するのが難しいと感じるのは自分の能力不足とか以上にその設定が分かりにくいからだ、そしてその設定を筋を通して説明するページがないからだ、という考えに至ったので、今回行った設定の考え方をなんとなく記録として残しておく。 無線を落とす AP をつけたとき、最初にすべきことは、コマンドを打っている最中も容赦なく出力されてくるエラーメッセージを黙らせること。無線を止めることで実現できる。 en conf t int dot11 0 shut int dot11 1 shut do wr me
2013年の Ruby on Rails Advent Calendar に参加しようと思ったら、その日のぶんが空いていたので、当日の 23:45 からプログラムを書いてそのまま記事にするというエクストリームアドベントをすることとなりました。プログラマ的には 33 時までは当日だから問題ないよね。 さて今回は Ruby on Rails というか therubyracer というか libv8 の話です。 Ruby on Rails では therubyracer gem をちょくちょく使いますね。therubyracer gem は Ruby から使用できる v8 エンジンで、環境ごとに適切なバイナリパッケージがインストールされるのですが、時折やたらと時間がかかることがあります。*1 この適切なバージョンを見つけ出すためのスクリプトを作成しました。 これを走らせると、 $ ruby li
皆さん、bundler 使用していますか?(はーい!という声)そうですね、とても便利ですね。でも遅い。何より速さが足りない。そう思うことも時折あるのではないでしょうか。bundle install に数分間かかるのはよくある話、ときによっては10分以上も bundle install だけでかかってしまう。しかも遅いときに限って何も表示されない。壊れてる?…と思って放置してごはんを食べて戻ってくるといつの間にか終わってたりする。別に bundler 自体が悪いわけではないですが、不安になります。 「俺の bundler がこんなに遅いわけがない。もっともっと速くなればいいのに」、そう思ったあなたのためにこの記事です。bundle install 時間を短くするただ一つ、いや四つの方法をご紹介します。 rubygems のバージョンを適切にアップデートする あまり知られてない気がしますが、g
GrowthForecast を動かしたい欲がさきほど突然現れたので、さくらのVPSにUbuntuをセットアップしてGrowthForecastを設定してみた。 インストール方法はさておいて、設定するときに注意すべき点が幾つかあったので、それらについて列挙してく。 目的 127.0.0.1:5125 で立てた GrowthForecast を、同ホスト上に立てた Nginx でリバースプロキシし、 http://example.com/growthforecast という URL で見られるようにすること。 サブドメインを使いたくないようなケースね。 想定してるのは、外部に GrowthForecast のグラフを見せ、データの挿入は 127.0.0.1 以外から許さないような用途。 Nginx での基本的な Proxy 設定 とりあえず GET/HEAD だけ許容して 127.0.0.1
ruby で exec するときにソケットや fd のリークを起こさないために。主に自分用の調査結果のメモ。 結論 ruby 1.9.1 以上で exec するときは、何はなくとも :close_others をつける ruby 2.0.0 以降ではこれを設定しなくても fd リークはしない ruby 1.9.0 以前は人力で必死に頑張る 基本的な話 ruby の exec は基本的には POSIX execve のラッパ。execve 前後では多くのものが保持されないが、ファイルディスクリプタは基本的には残る。 デフォルトでは、ファイルディスクリプタは execve() を行った後でもオープンされたままである。 close-on-exec の印が付いているファイルディスクリプタはクローズされる。 http://linuxjm.sourceforge.jp/html/LDP_man-pag
Rails 3.1 以降で良く使われるようになった therubyracer ですが、最近、これを含む bundle install がやたらと時間がかかったり、あるいはそもそも失敗してしまう、という事象が多数報告されています。 解決方法 以下の三つの方法が基本的な解決方法です。 その0 (※ 2013/1/11 追記) Gemfile にて、libv8 3.11 系を使用することを明記します*1 *2 gem 'therubyracer', '0.11.1' gem 'libv8', '~> 3.11.8.13' その1 Gemfile にて、 therubyracer のバージョンを 0.11.0beta8 に戻します gem 'therubyracer', '0.11.0beta8' gem 'libv8' その2 Gemfile にて、 therubyracer のバージョンを 0
まずは関数の仕様から説明。 signal関数は、シグナルをきっかけとして動作する関数を登録するための関数。第一引数に「反応するシグナル番号」を入れ、第二引数には「返す型がvoidで引数がintひとつの関数へのポインタ」を入れる。これをメイン関数などに入れておくことで、シグナルが来たときに反応する関数を指示できたことになる。 関数の詳細は BohYoh.com【C言語講座】標準ライブラリ signal など参照のこと。 waitpid関数は、子プロセスがゾンビになるまで待つ関数。ただし、設定次第で既にゾンビになっているプロセスだけ殺せるようにもなるので、今回はその方法で使う。第一引数は詳細はhttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/wait.2.htmlを参照いただくとして、『子プロセスのいずれかが終了するのを待つ』に対応する"-1"
Perlの正規表現、 \G の項目がどうにも分からん! だって末尾に /g をつけたら最後まで検索しちゃうんでしょ? $html =~ s/\G\s*<h[1-6]>/<span class="dekamoji">/g; みたいなのが何の意味があるのさ? ↑つい二時間前まではこう思ってた。 でも、それは大きなミステイクだった。 \Gもまた、正規表現の能力を単なるマッチや置換から大幅にパワーアップさせてくれる要素だったんだ。 勘違いの始まりは、正規表現を学べば誰もが目にする s///g からだった。 $mojiretsu =~ s/hogehoge/fugafuga/g; とすると、検索文字列 $mojiretsu 中のすべての hogehoge を fugafuga に置換する。 でも、それだけだとあまりよい理解じゃなかったんだ。 s///g と似た形をしている、 m//g というコンテキ
まあ、どのくらいの数のスピッツオタがそういう彼女をゲットできるかは別にして、「オタではまったくないんだが、しかし自分のオタ趣味を肯定的に黙認してくれて、その上で全く知らないスピッツの世界とはなんなのか、ちょっとだけ好奇心持ってる」ような、ヲタの都合のいい妄想の中に出てきそうな彼女に、スピッツのことを紹介するために見せるべき10本を選んでみたいのだけれど。 (要は「90年代ベストヒット」の正反対版だな。彼女にスピッツを布教するのではなく相互のコミュニケーションの入口として) あくまで「入口」なので、時間的に過大な負担を伴うアルバムの丸ごと紹介は避けたい。できれば4分くらい、長くても6分以内にとどめたい。 あと、いくらスピッツ的に基礎といっても古びを感じすぎるものは避けたい。クラシック好きがハイドンの「時計」は外せないと言っても、それはちょっとさすがになあ、と思う。そういう感じ。 彼女の設定は
lea命令は、Load Effective Address命令というもので、メモリ上の場所のアドレス値をレジスタに格納するもの。そのアドレスへのパイプを作っているような具合。なので、 leal 4(%esp), %eax とあったら、「ESPの値に4を足したメモリ位置」のアドレスを、EAXに格納するという意味になる。 端的に言うと、 EAX = ESP + 4 ってこと。 この命令を行うだけなら、二命令使って movl %esp, %eax addl $4, %eax としても同じ結果が得られそうなものだけど、では何のためにLEA命令があるのか。 実は、LEAは計算が目的じゃなくてアドレスを得るための命令なので、通常の計算命令と違ってフラグレジスタに影響を与えない。フラグに影響を与えないので、反復する命令に適している。*1 また足し算が一命令で出来てしまうので、その辺でも使われることがある
IPv6に今のところ非対応のように見えるので、まずはv4アドレスのみ使うように徹底しておくと良いと思う。 私が何かとハマったその間に利用した幾つかのデバッグ方法について、メモ。 つーかね、Hadoop、おかしくなった時の確認がまだまだ難しいわ。v6アドレスを予期してないってのもアレだけど、ちょっと想定から外れた動作をするだけでJavaのExceptionで落ちるのが、ほんと分かりにくくて参る。まだまだver0.20.2だから文句言えたものではないのだけど、現時点ではとても危ういものだという理解は共通のものにしておかなければならないと思う。 ともあれ、動かなかったときのためのデバッグ方法を幾つか。 jps とりあえず、bin/start-all.shした直後はjpsでノードが立ってるか確認すると良い。 > jps 76779 DataNode 76900 JobTracker 76970 T
Hadoop入れて動かしてみたところ、意外と簡単にstandaloneモードで動くところまで持って行けて驚いたのもつかの間、疑似分散モードで動かそうとしたらしたたかにハマってしまった。ハマりから抜け出す途中でHadoopがまだまだ0.20という正式版の出ていないバージョンであるということを強く認識したので、その軌跡をちょっと残しておくよ。 インストール 基本的には、 SunのJREをインストールする FreeBSDの場合、portsのdiablo-jdkが楽(Sunのページで同意とダウンロードは必要) CentOSの場合、Sunの配布しているrpmが楽(以下同文) hadoop-coreを公式ページからダウンロード hadoop-coreを適当なディレクトリに展開 ${HADOOP_HOME}とか名づけられるのはこのディレクトリ 環境変数JAVA_HOMEを適切に設定 FreeBSDの場合
FUSE-pythonを使ってみてる、が情報が少な過ぎる。公式情報はプログラムが載っているだけだし、何をすればいいのやら。 と思いつつ調べてたら、なんかのはずみでこんなページを発掘。 http://blog.koshigoe.jp/archives/2007/04/fuse.html FUSEを使って小さなFSを実装してみた実例。なるほどね、要するにオーバーライドしてしまえばいいんだ。 ファイルに対する保存、読み出し、情報取得等の各種操作全てのコントロールがユーザランドに戻ってくるので、それぞれのシステムコールに対応するメソッドを自分の望む形に実装すればいいわけだ。 さいわいgoogleでmanpage検索すればシステムコールの意味を日本語で知ることが出来る(いやman読めよ)から、あとはその対応を考えるだけ。楽々。 楽々とは言ったものの、ここからが本当の地獄だという話もあって、恐らくはそ
世間では仕分けが話題になっているようなので、私もprocmailを使用してメールの仕分けを行おうかなーなんて思って試してみたところ、どうやら残念ながら研究室のメールサーバではそれが出来ないようなシステム構成になってるようだってことが分かってとても残念だった。代わりにsieveなるものが使用できるということがメールのログ見てて分かったのでためしに使ってみたところ、これが非常に使い勝手がいいのね。さすが未来の標準。ただ問題は資料がRFCしかないことで、これじゃあ誰も使い始めない。 せっかくなので、私がちょっと使った感じの記録を簡単な解説としてここに残しておこうと思う。文法とかそのへんを、RFC5228に準拠して説明するよ。 全体的な設定 簡単な設定ファイルは、こんな感じになる。 require ["fileinto", "reject"]; if address :contains "From
http://fuse.sourceforge.net/:FUSEって言うのはFilesystem on USErspaceの略で、ユーザスペースで動くアプリケーションとしてファイルシステムを実装できる楽しいシステムのことです。Linux2.4x or 2.6xカーネルに対応しており、カーネルモジュール+ライブラリとして提供されてます。*1 ユーザ空間よりVFSを通してFUSEカーネルモジュールに渡ったファイル要求は、再びユーザ空間に戻され、libfuseを用いて実装したアプリケーションに操作が渡ります。FUSEを使ったときに我々が作るのは、このlibfuseを用いたアプリケーション部分だけです。 で、生のFUSEを触るのも良いのですが、このFUSE、各種言語のバインディングがやたらと充実しています。PythonやRubyはもちろん、GaucheやHaskellにもあったりするほど。 バイ
gccによってコンパイルされたアセンブリソースを眺めていると、そこかしこに .text だとか .ascii だとか書かれているのを見かける。これらは一体なんなのさ、ということについて調べた。ピリオドで始まるこれはディレクティブと言うもので、様々な意味を持っている。 まずは、そのディレクティブの一つの用法であるセクションについて説明する。 C言語のプログラムをgccにてコンパイルしたときの動きについて、まずは復習しよう。 はじめにソースコードに対してプリプロセッサが働いてコンパイルできる状態にし、続いてコンパイラによってアセンブリソースが吐かれる。そのアセンブリソースはasというアセンブラによってアセンブルされてオブジェクトファイルになる。最後に、それらのオブジェクトファイルがldというリンカによってリンクされ、実行形式のファイルになる。 これから確認されるように、アセンブラはアセンブリ言
alias emacs="sl" alias vi="sl" alias vim="sl" alias nano="sl" パソコン放置していたら先輩にこんなこと書かれて適用されてしまった>< 解決方法は幾つかあるけど、 $ cat >> .bashrc alias emacs="emacs" alias vi="vi" alias vim="vim" alias nano="nano" [C-d] などとして、.bashrcに直接追記してやれば解決。 また、EDITOR環境変数が上書きされていないならばless ~/.bashrcしてvで編集出来る。 これらを出来なくしたいなら、まずEDITOR環境変数も上書きしてしまい、さらにEDITORにaliasをつけることで再定義できなくし、そのうえでalias上書きを防いでしまえばよい。とおもう。 SL="sl" alias emacs=$SL
x86には8つの汎用レジスタがある。 各レジスタには使用目的があるので、それに応じて使い分けることでコードが分かりやすくなるし、命令も最適化される。また同じ命令がたくさん並ぶことになるので、圧縮の効率も上がる。 って http://www.swansontec.com/sregisters.html が言ってます。 名前 英語名 使用目的 用意されている専用命令 EAX Accumulator Register 戻り値や演算など movやxchgやaddやxorなど、移動やスワップや各種計算 EBX Base Register アドレスを指す 特殊なのは16bit-modeのときだけで、32bit-modeのときはただの汎用レジスタ ECX Count Resister 繰り返しの回数 loopやrepやjcxzなど、繰り返しやジャンプ条件 EDX Data Resister データの一時
アセンブリコードをアセンブルすると機械語になる。こういう説明が世の中じゃされてるけど、でもそれは半分ウソ。アセンブリコードの中でも機械語に直接対応しないものがある。それがディレクティブと呼ばれているもので、ドットから始まる命令がこれにあたる。 疑似命令 (psuedo-ops) とも呼ばれるこのアセンブラディレクティブは、機械語への直接の対応ではなくて、アセンブラ(GNU as)に対する命令。 前回の記事で説明したのはセクションについてだけだったけれども、ディレクティブにはもっといろいろな意味がある。 以下、その具体的な例を挙げていくよ。 文字列を配置する [.ascii .asciz .string] 文字列を配置するディレクティブは三種類ある。 .ascii .asciz .stringの三つだ。 .ascii は、カンマで区切られたゼロ個以上の文字列を、\nや\t、\0などのエスケー
追追記。2008/08/06 ふぁぼったーの大幅な仕様変更によってこの技は(記事を書いてすぐに)使えなくなりましたのでご注意下さい。 さいきんふぁぼったーが良く落ちているのはおそらく、データ更新時の出力を出来なくしているのだと思います。しばらく待てば戻るのでご安心を。 追記。 ono_matope ヒャー、先週対応したので、もうキャッシュ破損は出ないっす><!ちなみに自分はuser.phpをuserrss.phpに書き換えて見てました。(rssはキャッシュしてないので) はてなブックマーク - ふぁぼったーが表示されないときに無理矢理表示させるチョイ技について - 自称すーじー。 というわけで、書いた時点でキャッシュ破損問題は既に解決されておりました!>< ヒャー 「新着」の更新が起こっておらず「注目」とのふぁぼられ数の不一致があるときにでも使ってください>< 本家のコメントのほうで紹介さ
Emacs上でSLIMEを起動するのはかんたん。M-x slime と命令するだけでOKだ。 けど終了させるときはどうだろう。 まず、Emacsじたいの終了は最悪の結末をもたらす。これまで何度か起こっているように、lisp-runプロセスがEmacsという親プロセスを無くして暴走、CPUパワーを食いまくるということになってしまう。これをいちいちkillするのは何とも馬鹿らしい。 じゃあlispを消せば良いじゃん。うん、じゃあやってみる。 CL-USER> (bye) ; Evaluation aborted ==================== Lisp connection closed unexpectedly: exited abnormally with code 256…なるほど。inferior lisp program は殺せても、Emacs上でのバッファは消えない。おま
このページを最初にブックマークしてみませんか?
『suu-g's diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く