[UNIX]
Interprocess Communication
ctime(3)の最後には改行文字が付く
iface eth 0 wireless_essid <essid> wireless_key s:<16文字>これでifup eth0でいけた。
#!/bin/sh sed -e s/$1/$2/ $3 > /tmp/tmp-replace mv /tmp/tmp-replace $3そして、これを使ってdirectory以下のファイルを全て書き換える。
for file in $* do if test $file != ""; then replace-word old-domain new-domain $file fi doneこれを replace-word-all で保存し、次のコマンドを実行。
$find . -depth -print | xargs replace-word-all新しいdomainへの移行完了であります。
#! /usr/bin/tclsh package require html html::init puts [html::author "kzk"] puts [html::head "TITLE"] puts [html::bodyTag] #link puts [html::minorMenu "Mover http://mover.cool.ne.jp/"] #form puts [html::openTag "form" "value=\"aiueo\""] puts [html::checkbox "a" "i"] puts [html::closeTag] #table puts [html::tableFromList {a {i u} e o}] puts [html::end]
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
class TestImageIO {
public static void main(String[] args) throws Exception {
// 読み込むことの出来るフォーマット名
String[] names = ImageIO.getReaderFormatNames();
System.out.println("ReaderFormatNames:");
for(int i=0; i<names.length; i++) {
System.out.println(names[i]);
}
// 書き込むことの出来るフォーマット名
names = ImageIO.getWriterFormatNames();
System.out.println("WriterFormatNames:");
for(int i=0; i<names.length; i++) {
System.out.println(names[i]);
}
BufferedImage bi = ImageIO.read(new File("foo.jpg"));
ImageIO.write(bi, "png", new File("foo.png")); // OK!
ImageIO.write(bi, "gif", new File("foo.gif")); // ムリ
ImageIO.write(bi, "bmp", new File("foo.bmp")); // ムリ
ImageIO.write(bi, "xpm", new File("foo.xpm")); // ムリ
ImageIO.write(bi, "jpg", new File("foo.jpg")); // OK!
}
}
ReaderFormatNames:#include <sys/mman.h> void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset); int munmap(void *start, size_t length);


%include "default.mgp" %page ここがタイトル ここから本文 あはは ふぇふぇふぇ ふぇふぇふぇ あふぉふぉ %page 2ページ目です。 %size 7, fore "yellow" この行は大きくて黄色です %right, fore "red" この行は右詰めですtabでitemize出来るのが便利。
AuthUserFile フルパス/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-userフルパスは管理者に問い合わせるしかないっぽぃ。次に.htpasswdに暗号化されたユーザー名とパスワードをリスト表示する。
#!/usr/bin/perl
$| = 1;
$pass = $ARGV[0];
$encpass = &encrypt_passwd($pass);
print "before : $ARGV[0]\n";
print "after : $encpass\n";
exit;
sub encrypt_passwd {
my($pass)=@_;
my(@salt_set)=('a'..'z','A'..'Z','0'..'9','.','/');
srand;
my($seed1) = int(rand(64));
my($seed2) = int(rand(64));
my($salt) = $salt_set[$seed1] . $salt_set[$seed2];
return crypt($pass,$salt);
}
$./encrypt.pl passwdkzk:kxJFNMl0p/GwE kzk1:/UsfKwYUkEVpw
More than one method matched your request. You can refine your search by asking for information on one of: File::join, Array#join, Pathname#join, ThreadsWait#join, ThreadsWait#join_nowait, Thread#join$ri File::join
------------------------------------------------------------- File::join
File.join(string, ...) -> path
------------------------------------------------------------------------
Returns a new string formed by joining the strings using
+File::SEPARATOR+.
File.join("usr", "mail", "gumby") #=> "usr/mail/gumby"
-Tオプションでstdoutに出力出来る。int a = 0; a = (do_some(a), do_some(b), 10)この時a == 10で有る。
// before free(p1); p1 = NULL; // after p2 = (free(p2), NULL)ま、個人的好みですわな。
module SymbolType
@i = 0
def symbol_id(name)
return const_get(name)
end
module_function :symbol_id
def add_symbol(name)
name = name.id2name if name.kind_of?(Symbol)
const_set(name.upcase, @i)
@i += 1
end
module_function :add_symbol
end
SymbolType::add_symbol("a_constant")
p SymbolType::symbol_id("A_CONSTANT")
という感じか。SymbolType::add_symbolの最初の行でString#upcaseを使って大文字で定義するようにしてある。
module ModuleA
def noinst_puts(str)
puts str
end
module_function :noinst_puts
end
ModuleA::noinst_puts("aiueo")
定義した関数をmodule_functionメソッドで公開するのがミソ。class Test1 private def private_puts(str) puts str end end t1 = Test1.new t1.send(:private_puts, "aiueo")しっかし何でこんなカプセル化を妨げるようなメソッドが有るんだろ。しばし考えるもあんまり良い解答が浮かばず。
class Object def public_send(name, *args) name = name.id2name if name.kind_of?(Symbol) if self.public_methods.include?(name) send(name, args) puts "dispatched!" else puts "not public method" end end end class Test1 public def public_puts(str) puts str end private def private_puts(str) puts str end end t1 = Test1.new puts "Test1#public_puts" t1.public_send(:public_puts, "aiueo") puts "Test1#private_puts" t1.public_send(:private_puts, "aiueo")実行結果
Test1#public_puts aiueo dispatched! Test1#private_puts not public methodこっちの方が気持ち良い。
def method(arg1, *arg2) endarg2は配列としてアクセス可能
debian% ./gsi ~/90-min-scc.scm ~/test1.scm -------------------------- AST: (begin (set! square (lambda (x.1) (%* x.1 x.1))) (%+ (square 5) 1)) -------------------------- AST AFTER CPS-CONVERSION: (let ((r.5 (lambda (k.6 x.1) (k.6 (%* x.1 x.1))))) (let ((r.3 (set! square r.5))) (square (lambda (r.4) (let ((r.2 (%+ r.4 1))) (%halt r.2))) 5))) -------------------------- AST AFTER CLOSURE-CONVERSION: (lambda () (let ((r.5 (%closure (lambda (self.7 k.6 x.1) ((%closure-ref k.6 0) k.6 (%* x.1 x.1)))))) (let ((r.3 (set! square r.5))) ((%closure-ref square 0) square (%closure (lambda (self.8 r.4) (let ((r.2 (%+ r.4 1))) (%halt r.2)))) 5)))) -------------------------- C CODE: case 0: /* (lambda () (let ((r.5 (%closure (lambda (self.7 k.6 x.1) ... */ BEGIN_CLOSURE(1,0); END_CLOSURE(1,0); PUSH(LOCAL(0/*r.5*/)); GLOBAL(0/*square*/) = TOS(); PUSH(GLOBAL(0/*square*/)); BEGIN_CLOSURE(2,0); END_CLOSURE(2,0); PUSH(INT2OBJ(5)); BEGIN_JUMP(3); PUSH(LOCAL(2)); PUSH(LOCAL(3)); PUSH(LOCAL(4)); END_JUMP(3); case 2: /* (lambda (self.8 r.4) (let ((r.2 (%+ r.4 1))) (%halt r.2))) */ PUSH(LOCAL(1/*r.4*/)); PUSH(INT2OBJ(1)); ADD(); PUSH(LOCAL(2/*r.2*/)); HALT(); case 1: /* (lambda (self.7 k.6 x.1) ((%closure-ref k.6 0) k.6 (%* x.... */ PUSH(LOCAL(1/*k.6*/)); PUSH(LOCAL(2/*x.1*/)); PUSH(LOCAL(2/*x.1*/)); MUL(); BEGIN_JUMP(2); PUSH(LOCAL(3)); PUSH(LOCAL(4)); END_JUMP(2);
pobj = Proc.new { |i|
print "pobj called with ", i, ".\n"
}
pobj.call(5)
実行結果
QListViewItem *item = listview->selectedItem();
if( item )
{
// 何らかの処理
}
IO.foreach(filename) { |line|
print line
}
#! /usr/local/bin/ruby -T
require 'kconv'メソッド
/.*:/で指定すると80の直前のすべてにマッチしてしまう。そこで
/.*?:/とすると ":" が最初に出てくる位置を捉えてくれるので "protocol:" の部分をめでたく取り出せる。
#include <stdio.h>
#include <ruby.h>
VALUE hello(void);
Init_Hello() {
VALUE cHello;
cHello = rb_define_class("Hello", rb_cObject);
rb_define_method(cHello, "hello", hello, 0);
}
VALUE hello(void) {
printf("Hello World!\n");
return Qnil;
}
このファイルをコンパイルして拡張ライブラリを作成し、それをrequireして使用する。この時最初にInit_hogehogeという関数が最初に呼ばれるので、その中でクラスの作成(rb_define_class), クラスにメソッドを追加(rb_define_method)する。
require "mkmf"
create_makefile("Hello")
そしてMakefileを自動生成し、makeする。
.someclass {
background-color: inherit;
}
print <<"EOF" EOFこれだと最後のEOFをインデントするとエラーになるので次の様にすると良い。
print <<-"EOF" EOFヒアドキュメント内では式展開も行える
x = 50
print <<-"EOF"
x = #{x}
EOF
if test "$1" = ""; then echo "Bytecompiling All" find . | grep elc$ | xargs rm -f find . | grep el$ | xargs emacs -batch -no-site-file -q -f batch-byte-compile else echo "Bytecompiling File: $1" emacs -batch -no-site-file -q -f batch-byte-compile $1 fiロードするには、拡張子無しで指定するのが便利。例えば