postgres 9.3 でjson

postgres 9.3にはjsonがネィティブにサポートされている。json内の値をアクセスしたりインデックスできる。psql (9.3.0) Type "help" for help.# JSON型! yoyodb=> CREATE TABLE publishers(id INT, info JSON); CREATE TABLE# JSON型をインデックス!! yoyod…

htmlでもありjpegでもあるファイル

このURLを開いてソースを見てもらいたい: http://lcamtuf.coredump.cx/squirrel/HTMLソースのコメントの中にJPEGデータが埋め込まれている。 そして、画像リンクは同じURL…ソースをよく見てみるとHTMLタグの前に短いバイナリシーケンスがある。多分JPEGのヘ…

VIペダル

VIのモード切り替えを足でやって編集の高速化を可能にするペダルを自作したやつがいる: https://github.com/alevchuk/vim-clutch ペダルを踏むと「i」が入力され編集モードに。上げると「ESCAPE」でコマンドーモードに。素晴しいハックだ。emacs用の「Contro…

被害妄想症の友人: Pythonでssh

paramikoというpythonのsshライブラリで遠隔マシンの操作が自動化できる。 hello paramiko import paramiko transport=paramiko.Transport( ( 'takao3' , 22 ) ) transport.connect(username='tengu', password='xxxx') c=transport.open_session() c.exec_c…

Flameが世界最高水準の技術によるサイバー兵器であることを証明する機能リスト

f-secureがFlameの凄さを指摘している: http://www.f-secure.com/weblog/archives/00002383.html ユーザ監視 keyloggerとscreengrabberをもつ 暗号化通信 SSH、SSL、LUAライブラリを装備 フルテキスト監視 オフィス、PDF、Autodeskファイルなどのドキュメン…

StuxnetとFlameの関係

Kasperskyの研究者がSuxnetとFlameの関連性を発見したhttp://www.securelist.com/en/blog/208193568/Back_to_Stuxnet_the_missing_link長々と証拠と解説が続くが最後の要約を見るとこういうことらしい: Flameはstuxnet以前にプラットフォームとして存在して…

nginxで広告(HTML断片)をランダムに入れ替える

このようなHTMLで広告を表示するとしよう: <div class="ad"><a href="..."><img src="..." /></a></div>この画像リンクの部分をページロードする度に次のHTML断片の一つに入れ替えたい。 <a href="/redirect?dest=FOO"><img src="/img/FOO.png"></a> <a href="/redirect?dest=BAR"><img src="/img/BAR.png"></a> <a href="/redirect?dest=BAZ"><img src="/img/BAZ.png"></a>高速化のため…

Pythonの式をダイナミックに関数にコンパイルする

# 関数定義の雛形。Trueのexpressionを後で置き換える。 # ここで、string代入してもいいが、ASTのノードを置き換えた方が安全そうな気がする。 >>> defun=""" def foo(num): return True """ ... ... ... >>> # ASTにパースする >>> x=ast.parse(defun, mod…

pythonでマルチキャストを受信する

#!/usr/bin/env python import socket import sys# データを受信するインターフェースをIPアドレスで指定。 # 全てのインターフェースを指定するときはinaddr_any 0.0.0.0にする。 multicast_if_addr='10.0.1.2' # マルチキャストアドレス multicast_group='…

gnumakeで「このファイル」__FILE__を実装する

多くのプログラミング言語が「このファイル」を変数__FILE__で教えてくれる。__FILE__を参照したコードを含むソースファイルのパスが返ってくる。この便利な機能はgnumakeにない。しかし、MAKEFILE_LISTという変数から現ファイルを推測できる。 config.mkに …

求むPython/NLPハッカー

ソーシャルメディアのセンチメントアナリティックススタートアップが日本語ネィティブのエンジニアを探している。 http://www.netbase.com/job-posting/search-quality-engineer-japanese/ 要就労ビザ。実はこの仕事応募して受け入れられたんだけおど、個人…

gnu makeの変数を全てダンプする

hoge=fooprint-vars: @$(foreach v,$(.VARIABLES),$(info $v=$($v)))foreachで.VARIABLESが持つ全ての変数名をinfoで出力する。$($v)は$vという名の変数の値の参照だな。これだと環境変数やdefault,automatic変数も出力してしまう。これらを排除して「普通の…

AppEngineで動くfacebookパーソナル検索エンジン

Facebookでうまく検索できない。自分や友人がつぶやいたことを探しているのに、他人やウェブの検索結果がかえってくる。あと日本語がうまく区切れていないようで引っ掛るべきポストが出てこない。ただ俺が使い方がわかっていないのだろうと思っていたらこん…

MOSH: 反響、覚書など

まとめ: ロカールエコーや接続再開は快適 サーバのfirewallにUDPポートを開けなきゃいけないのが面倒 セキュリティには未知の不安が残る (下の@m_bird氏のコメント参照) MOSHを紹介したところ大反響だった。反応をまとめてみる。 快適 sshからmoshに変える…

mosh: MITからモバイル時代のSSH代替品

http://mosh.mit.edu/ ローミング可能 断続的な接続でも平気 ローカルエコーで快適なレスポンス などの機能をそなえたSSH代替ターミナルソフト。その名も「モッシュ」iPhone/iPadでウロウロしながらサーバ作業をするのを想定しているようだ。ドキュメントや…

Russ Coxの自己複製zipファイル

Quine の圧縮ファイル版のつくりかたをCox氏が種明かしする。http://research.swtch.com/zipなんと次のようなファイルを作ることが可能なのだ: $ gunzip r $ cmp r r.gz $内容 「turtles all the way down」の逸話 「the way down」テーマのユーモラスな画…

お宝発見! Paul Vixieのサイン入り初版K&R

古本屋でK&Rなどの古典書物を見付けると必ず裏表紙を見るようにする。ひょっとしたら有名人のサイン入りかもという淡い期待があるからだ。今日その長年の努力が実った。 バークレーの古本屋で見付けた。「Berkeley Internet Name Domain」(BIND)の開発者だっ…

Python小技: 辞書をプロパティ風にアクセス可能にする機能的ラッパー

foo=dict(bar=42)がある場合、いちいちfoo['bar']など書かず、JavaScriptのようにfoo.barと書きたい。 pythonはこういうことを簡単にさせてくれる: class dotdict(dict): __getattr__ = dict.__getitem_http://odiak.net/blog/post/1618 あるいは class Str…

もろもろハッカーニュースアンケート

プログラミングはじめて何年? Poll: How long have you been programming? http://news.ycombinator.com/item?id=3786926 Less than 6 months (22) 1 year (29) 2 years (48) 3-5 years (180) 7 years (163) 10+ years (500) 20+ years (202) 30+ years (76…

glibcの歴史

普段あまり意識しないしないlibcだが、カーネルの門番とも言える重要なコンポーネントだ。Linuxで標準のlibcはGNU libc、略してglibc。最近このglibcのsteering committeeが解散した。これをうけてlwn.netのJonathan Corbetがglibcの歴史をふりかえる。 http…

ECMAchine: ブラウザのなかでうごくschemeマシン+おもちゃOS

https://github.com/AlexNisnevich/ECMAchine repl: シェルの役割をはたす ファイルシステム: lispコマンドで操作できる JavaScript相互運用: JavaScriptの関数が呼び出せる プロセス管理: ミリ秒毎にコンテキストスイッチするスケジューラでプロセスを…

8ビットマイクコントローラでUbuntuをブートする

「Linuxは最低1メガのメモリ、MMUと32-bitアーキテクチャが必要だ」、「マイクコントローラでは動かない」という定説を粉砕するためにDmitry Grinberg氏がATmega1284pでUbuntuをブートさせた: http://dmitry.co/index.php?p=./04.Thoughts/07.%20Linux%20on…

もうちょっとまともなHN言語人気度グラフ

嫌い好きの投票数の合計をユーザ数と見立てた人気度グラフ http://attractivechaos.github.com/HN-prog-lang-poll.png上のグラフを見るとHNの読者層の使用言語として納得がいく。ノーマライズされた好き投票数を見るとハッカー向けの言語が上位をしめている…

Le*git: 「人間のためのgit」

gitを凡人でも使えるようにするコマンド拡張: http://www.git-legit.org/ サブコマンドの名前を見るだけでその意味が把握できる。これは有望だ。

ハッカーニュース人気言語

「好きな言語は?」というアンケートのページ http://news.ycombinator.com/item?id=3746692 から。 Actionscript Ada Assembly C C++ C# Clojure Cobol CoffeeScript ColdFusion D Delphi Erlang Forth Fortran Haskell Java JavaScript Lisp Lua Objective…

ハッカーニュースで嫌われている言語

http://news.ycombinator.com/item?id=3748961Actionscript Ada Assembly C C++ C# Clojure Cobol CoffeeScript ColdFusion D Delphi Erlang Forth Fortran Groovy Haskell Java JavaScript Lisp Lua Objective C OCaml Pascal Perl PHP Python Rexx Ruby Sc…

gitエラー「refusing to update checked out branch」の回避法

「checked out branch」を「bare repo」に変換することによって「refusing to update checked out branch」などのエラーが出ないようにできる。 $ git push origin master ... error: refusing to update checked out branch: refs/heads/master error: By d…

無SEOサイトに見るページランクの変遷

このシグモイド曲線を見てほしい。 趣味で営んでいるサイトにグーグルから来るユーザ数(オーガニックトラフィック)の変遷だ。一年かけて5%から26%に上昇している。ユーザが増えているのはページランクが上昇しているからだ。このサイトはこの期間全く放棄状…

海外でどういう職種がいくら儲かっているのかわかるリスト

http://jobpoacher.com/listingsハッカーニュースに「俺の週末プロジェクトどう?」とあがってきたサイトだ。自分の現在の職種、給料そして希望を入力することにより匿名投稿できるようになっている。http://jobpoacher.com/色々な肩書、地域、給料などを眺…

YCombinatorがハリウッドに宣戦布告: 「ハリウッドを殺せ」

http://ycombinator.com/rfs9.htmlRFS 9: ハリウッドを殺せハリウッドは全盛期を過ぎた。(カメラフィルムやタイプライターのような)普通の産業なら穏かに20年ほどかけて停滞していくだろう。しかし、これは普通の産業ではない。この産業を動かす連中はかなり…