Skip to content

Instantly share code, notes, and snippets.

@rsky
rsky / kMDItemWhereFroms.php
Created June 25, 2010 15:49
Safari等でダウンロードしたファイルのメタデータからダウンロード元URLを取得する関数
<?php
function get_item_where_froms($filename)
{
$command = '/usr/bin/xattr -p "com.apple.metadata:kMDItemWhereFroms" '
. escapeshellarg($filename) . ' 2>&1 | sed "s/ //g"';
$line = exec($command, $output, $retval);
if ($retval === 0) {
$len = hexdec(substr($line, -2));
$str = '';
@rsky
rsky / ext-sqlite3-for-php-5_2.diff
Created June 25, 2010 20:40
php-5.3/ext/sqlite3をPHP 5.2で使うためのパッチ
diff -ur sqlite3-0.7-dev/php_sqlite3.h sqlite3-0.7-dev-php-5.2/php_sqlite3.h
--- sqlite3-0.7-dev/php_sqlite3.h 2010-01-03 18:23:27.000000000 +0900
+++ sqlite3-0.7-dev-php-5.2/php_sqlite3.h 2010-06-26 05:58:21.000000000 +0900
@@ -40,6 +40,17 @@
#define PHP_SQLITE3_NUM 1<<1
#define PHP_SQLITE3_BOTH (PHP_SQLITE3_ASSOC|PHP_SQLITE3_NUM)
+#define MAKE_COPY_ZVAL(ppzv, pzv) \
+ *(pzv) = **(ppzv); \
+ zval_copy_ctor((pzv)); \
@rsky
rsky / dv_to_wide.php
Created June 29, 2010 17:35
DVファイルのアスペクト比を4:3から16:9に書き換える
<?php
// アスペクト比が4:3になっているDVファイルのヘッダを書き換えて16:9に変更する
define('SEARCH_BEGIN', 0x1C0);
define('SEARCH_END', 0x1D0);
define('FLAG_4_3', "\xC8");
define('FLAG_16_9', "\xCA");
if ($argc < 2) {
fwrite(STDERR, "Too few arguments.\n");
@rsky
rsky / pixelate.css
Created July 11, 2010 08:15
HTML5 Canvasで画像をモザイク化してみた
body {
margin: 0;
padding: 0;
font-family: sans-serif;
font-size: 14px;
line-height: 100%;
background-color: #fff;
color: #000;
}
#compdef phpman
_search_word () {
_wanted test expl 'search_word' compadd \
$(command ls $(pear config-get data_dir)/phpman/php-chunked-xhtml \
| sed -e 's/\.html$//' \
| sed -e 's/^.*\.//' \
| sed -e 's/-/_/g' \
| sort | uniq)
}
@rsky
rsky / channel-himeji.plist
Created September 12, 2010 15:42
Friio Viewer用チャンネル構成ファイル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>channel</key>
<array>
<dict>
<key>NHK (総合)</key>
<integer>22</integer>
</dict>
@rsky
rsky / xattr-clean.c
Created January 23, 2011 15:44
HFS+の拡張属性を取り除くコマンドラインツール
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/errno.h>
#include <sys/xattr.h>
#include <sys/param.h>
#include <libgen.h>
/*
cc -Wall -Wextra -Os -std=c99 -o xattr-clean xattr-clean.c
@rsky
rsky / cli-do-not-echo-password.php
Created January 23, 2011 23:07
PHPのコマンドラインツールでパスワードを要求するときの定番コード
<?php
// STDOUT or STDERR は場合に応じて
fwrite(STDERR, 'Password: ');
if (strncasecmp(PHP_OS, 'WIN', 3) === 0) {
// WindowsではエコーバックをOFFにできない?
@flock(STDIN, LOCK_EX);
$password = fgets(STDIN);
@flock(STDIN, LOCK_UN);
} else {
system('stty -echo'); // エコーバックをOFFにする
@rsky
rsky / fizzbuzz-no-notice.php
Created January 24, 2011 21:38
PHP FizzBuzz
<?php for($i=0;$i++<100;)echo$i%3?($i%5?$i:"Buzz"):"Fizz".($i%5?"":"Buzz"),"\n";
@rsky
rsky / brew-install-name-change.sh
Created January 26, 2011 01:31
Homebrewでインストールした共有ライブラリにリンクしているバイナリのリンク先を/usr/local/Cellar/Formula/Version/libから/usr/local/libに変更するシェルスクリプト
#!/bin/sh
otool -L "$1" \
| grep -F '/usr/local/Cellar' \
| perl -pe 's!^[ \t]+(/usr/local/Cellar/[^/]+/[^/]+/(.+?\.dylib)) \(.+$!install_name_tool -change "$1" "/usr/local/$2" "'"$1"'"!' \
| sh