Skip to content

Instantly share code, notes, and snippets.

@rsky
rsky / gist:1909305
Created February 25, 2012 16:12
ドリランド in BrainF*ck
++++[>++++>++++<<-]>
[<++++++++>-]>
[<->-]<<
[>++>+>+<<<-]+++
[>---->+>+++<<<-]>-
<++
[>.>.>.<<.>..<<-]>
.>.>.+<<<++++++++
[>>>++++<<<-]>
.>.>.-<<.>.>.<<<++
@rsky
rsky / memcache.c.diff
Created March 2, 2012 07:47
https://github.com/zynga/pecl-memcached にLZO圧縮済データを展開する関数を追加
diff --git a/memcache.c b/memcache.c
index d283ad9..c4016f5 100644
--- a/memcache.c
+++ b/memcache.c
@@ -59,6 +59,8 @@ static int memcache_lzo_enabled;
ZEND_DECLARE_MODULE_GLOBALS(memcache)
+static PHP_FUNCTION(memcache_uncompress_lzo);
+
@rsky
rsky / prowl-test.php
Created March 22, 2012 17:00
Example of sending message to Prowl with PHP.
<?php
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance()
->unregisterNamespace(array('Zend_', 'ZendX_'))
->setFallbackAutoloader(true);
$apiUri = 'https://api.prowlapp.com/publicapi/add';
$apiKey = '0000000000000000000000000000000000000000';
@rsky
rsky / Flexy.diff
Created March 25, 2012 18:30
HTML_Template_FlexyをPHP 5.3/5.4+で使うための適当なパッチ
diff -ur a/HTML/Template/Flexy/Compiler/Flexy.php b/HTML/Template/Flexy/Compiler/Flexy.php
--- a/HTML/Template/Flexy/Compiler/Flexy.php
+++ b/HTML/Template/Flexy/Compiler/Flexy.php
@@ -516,17 +516,18 @@
$suffix = '';
$modifier = strlen(trim($element->modifier)) ? $element->modifier : ' ';
+ $charset = empty($GLOBALS['_HTML_TEMPLATE_FLEXY']['currentOptions']['charset']) ? 'ISO-8859-1' : $GLOBALS['_HTML_TEMPLATE_FLEXY']['currentOptions']['charset'];
switch ($modifier) {
@rsky
rsky / gist:2413478
Created April 18, 2012 13:14
Blocksをtypedefする、あるいはせずに変数を宣言するときのsnippet
typedef NSComparisonResult (^comparator)(id, id);
comparator myComparator = ^NSComparisonResult(id obj1, id obj2) {
return NSOrderedSame;
};
NSComparisonResult (^myComparator2)(id, id) = ^NSComparisonResult(id obj1, id obj2) {
return NSOrderedSame;
};
- (NSComparisonResult)compareA:(id)a withB:(id)b usingComparator:(comparator)theComparator;
@rsky
rsky / retina2normal.sh
Created May 8, 2012 05:15
RetinaサイズのPNG画像を半分にリサイズするシェルスクリプト
#!/bin/bash
if [ $# -eq 0 -a -z "$NO_RECURSION" ]; then
export NO_RECURSION=1
find . -name \*@2x.png -depth 1 -print0 | xargs -0 "$0"
else
for src in "$@"; do
base="${src%%@2x.png}"
dst="${base}.png"
if [ -f "$src" -a "$src" != "$base" ]; then
echo "$src -> $dst"
@rsky
rsky / anext.c
Created May 14, 2012 19:41
配列のポインタを変更せずに前後の要素にアクセスする関数を提供するPHP extension
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <php.h>
#include <Zend/zend_extensions.h>
static PHP_MINFO_FUNCTION(anext);
static PHP_FUNCTION(anext);
@rsky
rsky / cmyk2srgb.php
Created July 10, 2012 13:42
PHP ImagickでCMYK色空間のJPEGファイルをsRGBに変換する
<?php
$im = new Imagick('CMYK.jpg');
$cs = $im->getImageColorspace();
if ($cs !== Imagick::COLORSPACE_RGB && $cs !== Imagick::COLORSPACE_SRGB) {
$icc = null;
try {
$icc = $im->getImageProfile('icc');
} catch (ImagickException $e) {
if ($cs === Imagick::COLORSPACE_CMYK) {
$icc = file_get_contents('JapanColor2001Coated.icc');
@rsky
rsky / git-euc-grep.py
Created July 25, 2012 02:52
UTF-8のShellでEUC-JPのキーワードでgit grepするプラグインgit-euc-grep
#!/usr/bin/python
# vim: syn=python fileencoding=utf-8 ai et ts=4 sts=4 sw=4
import sys, subprocess
args = ['git', 'grep']
argv = sys.argv[1:]
if argv[0] == 'grep':
argv = argv[1:]
for arg in argv:
args.append(unicode(arg, 'utf-8').encode('euc-jp'))
@rsky
rsky / Portfile.diff
Created August 22, 2012 00:06
Add utf8mac variant to MacPorts zsh-devel
--- shells/zsh-devel/Portfile.orig
+++ shells/zsh-devel/Portfile
@@ -35,6 +35,8 @@
sourceforge:${my_name} \
http://deb.grml.org/pool/main/z/${my_name}-lovers/:love
+patch_sites https://raw.github.com/gist/1403346/49d9fff3a3a136f7c26fdabbaf965315a7e0adaa
+
# Some love for zsh: http://grml.org/zsh/zsh-lovers.html
set love_distname zsh-lovers_0.8.3