Skip to content

Instantly share code, notes, and snippets.

@mugyu
mugyu / gist:2181603
Created March 24, 2012 12:04
AzDrawing2フォーマットのプレビューをbitmapフアイルに吸出し
#!/usr/bin/env ruby
# vim: fileencoding=utf-8
# AzDrawing2フォーマットのプレビューをbitmapフアイルに吸出し
require 'zlib'
module AZDWDAT
FILEHEADER = "a7c"
FILEHEADER_LENGTH = 8
PREVIEW = "SSI"
@mugyu
mugyu / gist:2181611
Created March 24, 2012 12:05
RubyでAzPainterフォーマットのプレビューをbitmapフアイルに吸出し
#!/usr/bin/env ruby
# vim: fileencoding=utf-8
# AzPainterフォーマットのプレビューをbitmapフアイルに吸出し
module AZPDATA
FILEHEADER = "a7c"
FILEHEADER_LENGTH = 8
INFOHEADER = "ISSSSS"
INFOHEADER_LENGTH = 14
PREVIEW = "SSI"
@mugyu
mugyu / gist:2430055
Created April 20, 2012 16:15
C言語でAzPainterフォーマットのプレビューをbitmapフアイルに吸出し
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
char type[7];
char version;
} AZPDATA_FILEHEADER;
typedef struct{
@mugyu
mugyu / gist:2594193
Created May 4, 2012 11:19
Rubyで無名再帰(Zコンビネータ)
# Zコンビネータ
def Z(func)
lambda do |f|
lambda{|x|lambda{|y| f[x[x]] [y]}}[
lambda{|x|lambda{|y| f[x[x]] [y]}}]
end[func]
# .callメソッドで書くとこう
# lambda do |f|
# lambda{|x|lambda{|y| f.call(x.call(x)).call(y)}}.call(
# lambda{|x|lambda{|y| f.call(x.call(x)).call(y)}})
@mugyu
mugyu / gist:2943269
Created June 17, 2012 03:04
gauche で クラス定義
(define-class <hoge> ()
((foo :init-value "FOO" :setter set-foo!)
(bar :init-value "BAR" :setter set-bar!)))
(define hoge (make <hoge>))
(print hoge) ; => #<<hoge> 021b7398>
(define-method write-object ((hoge <hoge>) port)
(format port "#<<hoge> \"~a\" (~a)>"
(slot-ref hoge 'foo)
(slot-ref hoge 'bar)))
@mugyu
mugyu / gist:2988457
Created June 25, 2012 13:03
Gaucheでニコ動のタイトルやサムネ画像URLを取得したりとか(クラス版)
(use rfc.http)
(use rfc.uri)
(define-constant *getthumbinfo-url* "http://ext.nicovideo.jp/api/getthumbinfo")
(define-constant *ok-string* "<nicovideo_thumb_response status=\"ok\">")
(define-constant *fail-string* "<nicovideo_thumb_response status=\"fail\">")
(define-constant *elements* '(title description thumbnail_url watch_url))
(define (getthumbinfo video-id)
(receive (code status body)
@mugyu
mugyu / gist:3028406
Created July 1, 2012 13:18
google chrome api を利用してurlの一部がタブっているブックマークを削除
//自己責任的な方向で
chrome.bookmarks.search("アイドルマスター シンデレラガールズ",
function(nodes){
var re = /(?:Fbattle_check%2F|show%2F)(\d+)/;
var arr = [];
for(i in nodes){
if (nodes[i].url.match(re)){
arr.push([nodes[i], RegExp.$1]);
}
};
@mugyu
mugyu / gist:3068646
Created July 8, 2012 00:06
chrome で DOMから値を参照し計算結果をDOMに追加する
// コスト比を計算して表示を追加
// いろいろと自己責任の方向で
var tdNodes = $('div#top > table tbody tr td + td');
for(i in tdNodes){
if (tdNodes[i].childNodes &&
tdNodes[i].childNodes.length > 12 &&
tdNodes[i].childNodes.length < 25){
var cost = parseInt(tdNodes[i].childNodes[6].nodeValue);
var attack = parseInt(tdNodes[i].childNodes[10].nodeValue);
var defence = parseInt(tdNodes[i].childNodes[12].nodeValue);
@mugyu
mugyu / gist:3380723
Created August 17, 2012 17:14
JavaScript の apply() の使い方メモ
fnc = function(str){console.log(this.name + ": " + str)};
obj = {name: "HOGE"};
arg = ["hi!"];
fnc.apply(obj, arg); // => HOGE: hi!
// fnc(arg) を obj に適用するって意味かなぁ
fnc.apply({name: "FOO"}, ["hello!"]); // => FOO: hello!
fnc.apply({name: "BAR"}, ["bood by!"]); // => BAR: bood by!
@mugyu
mugyu / gist:3394632
Created August 19, 2012 12:33
nyaos3kの動的プロンプトでsvnのurlやgitのbranch名をプロンプトに出力
-- svnの作業dirでurlを、そしてgitの作業dirでbranch名をプロンプトに出力
function nyaos.prompt(prompt)
local current = nyaos.eval('__pwd__')
if nyaos.access(current .. '/.svn/entries', 0) then
local svn_url = string.match(nyaos.eval('svn info --xml'), '<url>(.*)</url>', 1)
return true, '$e[36;40;1mSVN[' .. svn_url .. ']' .. prompt
else
local git_path = current
repeat
if nyaos.access(git_path .. '/.git', 0) then