2010年10月19日 星期二

Get OpenBSD/NetBSD Latest Install ISO/sets via Rsync

The performance, maybe not a good way to get iso.

OpenBSD
One big install iso




rsync -avz --progress rsync://ftp.estpak.ee/openbsd/snapshots/amd64/install48.iso .

install48.iso
240121856 100% 206.91kB/s 0:18:53 (xfer#1, to-check=0/1)

Number of files: 1
Number of files transferred: 1
Total file size: 240121856 bytes
Total transferred file size: 240121856 bytes
Literal data: 139474432 bytes
Matched data: 100647424 bytes
File list size: 47
File list generation time: 2.846 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 108569
Total bytes received: 139521735

sent 108569 bytes received 139521735 bytes 115159.01 bytes/sec
total size is 240121856 speedup is 1.72



NetBSD
boot iso and install sets




VER=`rsync rsync://nyftp.netbsd.org/NetBSD-daily/HEAD/|tail -n1|cut -d ‘:’ -f 3|cut -d ‘ ‘ -f 2`
rsync -avz --progress rsync://nyftp.netbsd.org/NetBSD-daily/HEAD/$VER/amd64/binary/sets/ ./sets/
rsync -avz --progress rsync://nyftp.netbsd.org/NetBSD-daily/HEAD/$VER/amd64/installation/cdrom/boot.iso .

Number of files: 20
Number of files transferred: 5
Total file size: 223682054 bytes
Total transferred file size: 69074290 bytes
Literal data: 67497874 bytes
Matched data: 1576416 bytes
File list size: 730
File list generation time: 30.022 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 96373
Total bytes received: 67522725

sent 96373 bytes received 67522725 bytes 162741.51 bytes/sec
total size is 223682054 speedup is 3.31


The performance is not so good if you want to keep in sync often.
Possible reason see http://svana.org/kleptog/rgzip.html
http://samba.anu.edu.au/rsync/rsync-and-debian/rsync-and-debian.html

2010年10月15日 星期五

2010年10月10日 星期日

Synology NFS Server

Synology CS407e

Samba is too slow, AFP does not reconnect after network error.

Using NFS, tcp or udp, while playing HD contents on the server, and try to access the nfs volume, it blocks for a while.

Solution, create more nfsd daemon.

/usr/syno/etc/rc.d/S83nfsd.sh

#To create 16 nfs servers
/usr/sbin/nfsd 16

To see server loading

/proc/net/rpc/nfsd

th 16 261 2.256 2.056 3.144 1.404 3.564 3.820 1.556 2.408 1.696 14.924

16 threads, used the last thread 261 times.
2.256 seconds uses 10% of the 16 threads
2.056 seconds uses 20% of the 16 threads
...

2010年10月8日 星期五

Yahoo 斷章取義 API

原文

哥哥安唷 我叫小樂 目前讀大二
民國78年次 身高165cm 47kg 34c
最近家里經濟不好 出來做兼職
希望好心ㄉ哥哥可以援助
見面滿意約 ,ㄅ滿意可以ㄅ約* 愛愛 伴游 聊天 逛街 鐘點情人
ㄞㄞ 3000 2h全套服務 現金交易 ㄅ轉賬刷卡
ㄞㄞㄉ時候要帶套套ㄛ 單純交易.各取所需
有需要ㄉ哥哥加我MSN: @hotmail.com
我ㄉ相簿http://www.wretch.cc/album/
可以在我相簿留電話給我, 我會第一時間聯絡妳ㄉ
期待哥哥約

關鍵字擷取

鐘點##人 203.61894582528
哥哥 124.68604562448
滿意 98.457096577591
聊天 96.000808858899
小樂 94.645411353588
兼職 87.775598642351
希望 86.83604180972
援助 86.090431693226
愛愛 81.748683909361
單純 72.878584750222

鐘點情人的情不知道為什麼變成##,其他都還蠻準的。

另外有一個問題是,如果整篇文章只是把上面關鍵字擷取出來的再傳回去,一樣會傳回這些關鍵字。

希望 185.71838296432
聊天 170.81425651791
小樂 169.63149462119
兼職 162.70161315737
援助 161.0193089944
滿意 148.33799007289
單純 147.81485462203
哥哥 124.63040966573
鐘點 118.08395440453
愛愛 81.748683909361

有些順序變了,但是沒有變的像是”愛愛”分數還是一樣,鐘點情人因為##不見了。
所以說,只要有這些零散的字,就算沒有意圖也一樣會被判斷是怪怪的文章。

再另外,yahoo會刪掉符號,☎之類的,應該是跟標點符號一起一開始被處理掉的,但是,如果在關鍵字裡面加入中文,例如援乂交。☎兼☎職這樣符號太多的也不會被抓出來,阿...就插入一堆電話就可以通過了。

需要python範例程式請留言。
sourceforge上面有java api可以用,提供中研院斷詞跟yahoo斷詞,但是沒有關鍵字這一項。

2010年9月14日 星期二

NetBSD 新的防火牆NPF

http://mail-index.netbsd.org/netbsd-announce/2010/09/13/msg000110.html

The NetBSD Foundation is pleased to announce NPF, a new packet filter
by Mindaugas Rasiukevicius. NPF is designed for high performance on
multiprocessor machines, and for easy extensibility.

Highlights of NPF features include

* MP-safety and locklessness for scalable MP performance: no longer is
the packet filter the bottleneck in your multicore router

* Fast hash-table and red-black tree lookups

* Stateful packet filtering, Network Address Port Translation (NAPT),
and Application-Level Gateways (ALGs) for, e.g., traceroute

* The N-Code processor, a packet-inspection engine inspired by BPF:
the N-Code processor is programmed to match packets using generic,
RISC-like instructions and a few CISC-like instructions for common
patterns such as IPv4 addresses

* Familiar configuration syntax and utilities

* Modularity and extensibility: users extend NPF by loading a kernel
module. NPF provides developers with an extensions API. NPF rules
can embed a hook that invokes an extension

By the end of January, NPF should have all of the capabilities that
NetBSD users have come to expect by using the other filters in the
kernel:

* IPv4 reassembly support
* Bi-directional NAT and port forwarding (re-direction)
* FTP proxy support
* IP header flags cleansing
* ICMP packets and TCP RST packet blocking
* Save/restore state
* Packet logging, configurable using filter rules

Rasiukevicius will also write documentation and configuration examples.

Beyond that, NPF needs code for IPv6 support. Rasiukevicius agrees to
provide technical support to developers who will add IPv6 support to
NPF. An outline of the steps to IPv6 support will be forthcoming.

NPF is the third packet filter in NetBSD, after IP Filter and PF. NPF
is unique for using a bytecode interpreter in its packet-inspection
engine, and for answering the question, "What does a packet filter
designed from the bottom up for multiprocessor systems look like?"

NPF development is sponsored by the NetBSD Foundation.

2010年9月2日 星期四

蘋果產品發表會 串流

http://events.apple.com.edgesuite.net/1009qpeijrfn/event

這個網址。

要怎麼同時讓全世界這麼多人收看呢?
看一下它的ip位址。

mac:~ adolf$ nslookup events.apple.com.edgesuite.net
Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:
events.apple.com.edgesuite.net canonical name = a314.g.akamai.net.
Name: a314.g.akamai.net
Address: 139.175.236.72
Name: a314.g.akamai.net
Address: 139.175.236.74

哇,太巧了,正好是seednet的ip,蘋果也用seednet嗎?

mac:~ adolf$ nslookup events.apple.com.edgesuite.net 168.95.1.1
Server: 168.95.1.1
Address: 168.95.1.1#53

Non-authoritative answer:
events.apple.com.edgesuite.net canonical name = a314.g.akamai.net.
Name: a314.g.akamai.net
Address: 203.69.113.8
Name: a314.g.akamai.net
Address: 203.69.113.48

單位不明的ip,不過用hinet的traceroute只有四個節點。



每個不同的isp會被導向到apple請akamai搞apple(後面是Akamai的技術)跟isp搞的伺服器去。
連giga和信超媒體也有。


新的ipod touch更接近iphone了。
新的apple tv很便宜,三千塊,可是在台灣.....應該不會有人要租0.99的影片,可不可以跟thepiratebay的東西sync也還不清楚。

2010年8月24日 星期二

免螢幕 免鍵盤 免網路線? 一條電線設定好Mac Mini Server

如果你的無線網路環境是沒有密碼的話,也許可以免網路線。

不過反正我有網路線。

環境
分享器一台,或是可以配發dhcp的東西,用macbook的網路分享也可以。
另外一台mac系統,安裝server admin tools用。(server光碟第二片)
網路線一條,接上去。


  1. 打開mini server

  2. 去分享器的地方看,目前的dhcp client,看一下mini server盒子上面的ethernet mac address,找到對應的ip是192.168.200.142

    • Voila_Capture54-2010-08-24-23-00.png



  3. 安裝server admin tools,打開server assistant。

    • Voila_Capture60-2010-08-24-23-00.png



  4. 加入一台新的server,密碼,盒子上面的serial前八位數字。

  5. 連線成功,開始之後的設定。

    • Voila_Capture61-2010-08-24-23-00.png

2010年7月25日 星期日

nfsd privileged port

http://mars.netanya.ac.il/~unesco/cdrom/LDP/NFS/HTML_FORMAT/NFS-HOWTO-6.html

Another important thing is to ensure that nfsd checks that all it's requests comes from a privileged port. If it accepts requests from any old port on the client a user with no special privileges can run a program that's is easy to obtain over the Internet. It talks nfs protocol and will claim that the user is anyone the user wants to be. Spooky. The Linux nfsd does this check by default, on other OSes you have to enable this check yourself. This should be described in the nfsd man page for the OS.

Another thing. Never export a file system to 'localhost' or 127.0.0.1. Trust me.

新版的說
http://nfs.sourceforge.net/nfs-howto/ar01s06.html
The TCP ports 1-1024 are reserved for root's use (and therefore sometimes referred to as "secure ports") A non-root user cannot bind these ports. Adding the secure option to an /etc/exports means that it will only listed to requests coming from ports 1-1024 on the client, so that a malicious non-root user on the client cannot come along and open up a spoofed NFS dialogue on a non-reserved port. This option is set by default.

舊的版本說,只要相信從1024以下來的client,而且不要給localhost連線。這有點道理,如果相信從localhost來的1024以上的連線,可能是假造的。
但是應該只要做其中一項就好了吧,外部的連線不管是不是1024以下的都有可能會是假的。

不知道為什麼linux的實作還是這樣。

在mac上面mount_nfs要加上
-o resvport
Use a reserved socket port number. This is useful for mounting
servers that require clients to use a reserved port number on the
mistaken belief that this makes NFS more secure
. (For the rare
case where the client has a trusted root account but untrustwor-
thy users and the network cables are in secure areas this does
help, but for normal desktop clients this does not apply.)

意思就是說這樣根本沒什麼用就對了。

如果沒有加這個的話,會出現 /Volumes/nfs: Permission Denied

或是在nfs server /etc/exports 加上 insecure

2010年7月19日 星期一

AAC+/eAAC/AAC plus/Enhanced AAC

Shared library libaacplus
http://tipok.org.ua/node/17

with patch for ffmpeg, need to download source code from 3GPP.


3GPP Reference encoder
Floating Point: http://www.3gpp.org/ftp/Specs/html-info/26410.htm
Fixed Point: http://www.3gpp.org/ftp/Specs/html-info/26411.htm



aacplusenc
http://teknoraver.net/software/mp4tools/#download
Also with binary for Win/Linux/Mac platform.


NeroAAC
http://www.audiocoding.com/nero_aacenc.html
No source code


DarkGiank's enhAacPlusEnc
http://dgaapenc.berlios.de/en/#ins




To support 80kbps encoding, edit sbr_main.c

{ 64000, 80001, 24000, 2, 12, 9, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 80 kbit/s 48khz*/
{ 64000, 80001, 22050, 2, 12, 9, 3, 0, -3, SBR_SWITCH_LRC, 2 }, /* nominal: 80 kbit/s 44.1khz*/


不知道為什麼不要乾脆都用AAC+ 80kbps來存音樂就好。thepiratebay上面有人分享48kbps的AAC+音樂, 可是種子太少沒有下載來聽。iTunes也支援最高到80kbps。

另外, Ogg Vorbis @48kbps 聽起來其實也不錯。

2010年7月17日 星期六

新酷音測試




/* 
 * File:   main.cpp
 * Author: adolf
 *
 * Created on 2010年7月17日, 上午 1:11
 */

#include <stdlib.h>

#include <stdio.h>
#include <chewing/chewing.h>
#include <chewing/global.h>
#include <chewing/chewingio.h>
#include <string.h>

using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {

    if (0 != chewing_Init("/Users/adolf/chewing/0.3.2/share/chewing/", ".")) {
        fprintf(stderr, "chewing_Init failed\n");

        exit(-1);
    }
    ChewingConfigData config;

    ChewingContext * ctx = chewing_new();

    chewing_set_maxChiSymbolLen(ctx, 16);
    chewing_set_candPerPage(ctx,10);

    char * str0 = "w96j0 eji6 g wu3 au4z/ ";
    //char * str = "1";
    for (int i = 0; i < strlen(str0); i++) {

        //printf("%d\n",i);
        chewing_handle_Default(ctx, str0[i]);
        chewing_cand_Enumerate(ctx);

        if (chewing_cand_TotalChoice(ctx) >0) {
            while (chewing_cand_hasNext(ctx)) {

                char* str = chewing_cand_String(ctx);
                if (str) {

                    //converted_string = utf8_mbstowcs( str );
                    printf("candidates %s\n", str);
                    chewing_free(str);
                }
            }
        } else {

            if (chewing_buffer_Check(ctx)) {
                char * str = chewing_buffer_String(ctx);

                if (str) {
                    printf("buffer %s\n", str);
                    chewing_free(str);
                }
            }
        }

        if (chewing_commit_Check(ctx)) {
            char* str = chewing_commit_String(ctx);

            if (str) {
                printf("%s\n", str);
                chewing_free(str);
            }
        }
    }

    chewing_handle_Left(ctx);
    chewing_handle_Left(ctx);
    /*
    chewing_handle_Down(ctx);
    chewing_handle_Down(ctx);
    chewing_handle_Enter(ctx);*/
    chewing_handle_Default(ctx,'v');

    chewing_handle_Default(ctx,'u');
    chewing_handle_Default(ctx,'l');
    chewing_handle_Default(ctx,'3');

    if (chewing_buffer_Check(ctx)) {
                char * str = chewing_buffer_String(ctx);

                if (str) {
                    printf("buffer %s\n", str);
                    chewing_free(str);
                }
            }

    return 0;
}

2010年7月8日 星期四

android超級好用注音輸入法 1.0.2

1.0.3 新增功能說明

輸入'中'的時候,會出現

文,文系,了,共,區,午,原,古,和,國....樞神經,正大學,正機場,氣不足,泰賓館...

很多以中開頭的詞彙。

要一直翻到最後一頁的話乾脆就自己打完了。

這時候只要打注音ㄍ,就會出現中之後注音開頭ㄍ的詞彙前三個,例如 共,古,廣

如果打ㄍㄨㄛ... 就會出現 國人,國城,國菜...

不用打聲調, 打ㄍㄨㄛㄖㄣ,就會變成國人了。同理,打ㄊㄞㄅ一,就會出現泰賓館。

不喜歡的請到開發者網頁下載舊版1.0.2

不喜歡1.0.3的選詞功能的請下載這個

另外

會在背景時候清理資料庫(vacuum), 最多一天一次。

某些rom會擋掉廣告,這些不能切換成中文鍵盤。

2010年6月24日 星期四

android超級好用注音輸入法

只是名字而已...。

Based on

http://code.google.com/p/android-traditional-chinese-ime/

使用gcin的注音字碼,詞典庫。

現在開始30天之後失效。

PastedGraphic-2010-06-24-03-19.jpg

台鐵的挖土機繼續挖鐵軌ing...。

一個平交道挖了半年還挖不完。

2010年5月30日 星期日

Motorola Droid 輸入法

Motorola輸入法比較麻煩, 他有檢查裝置, 也有多個螢幕解析度的設定。

所以, 就算跳過了檢查機制, 也可能因為螢幕解析度不符合, 而載入錯的(480x320)螢幕設定, 弄出一個超小鍵盤。或是手寫輸入法, 根本找不到正確的設定而掛掉...。

DisplayMetrics

2010年5月29日 星期六

蒙恬輸入法 for Acer Liquid

蒙恬輸入法 for Acer Liquid Android
網路上流傳的是1.0版的, 有些地方不是很好用。例如, 按enter的時候他不會自動變成瀏覽器的Go, 或是搜尋的Search, 所以都要自己去按畫面上的按鈕。
新版的1.0.4在Acer的網站可以下載, 除了修正bug以外, 多了檢查機器的機制, 只能在Acer Liquid上面執行。
當然, 搜尋一下關鍵字Acer Liquid Model MODEL ...
...
...
...
...
然後就能在任何機器上面執行了。

2010年5月28日 星期五

HamiAPP for Android 驗證機制

HamiApp開放第一天的晚上, 下載了遠流字典通安裝之後卻沒辦法通過認證, 所以根本不能執行, 所以...。
Android的軟體都是Java語言編譯成Dalvik VM的bytecode然後交由虛擬機器來執行。每支程式都會有各自的VM環境互不影響。
也可以呼叫binary .so 。
不過中華電信Hami App 的認證機制是做在Java裡面, 所以破解起來非常容易, 因為bytecode很容易disassemble。
  1. 機器應該要先root, 才能把安裝在系統上的apk讀出來。
  2. 解開apk,裡面有一些resource檔, manifest, 跟classes.dex 主程式。
  3. classes.dex是所有class包裝在一起, 有點像是jar檔。可以用 baksmali 解開還原成assembly code, 修改完之後用smali包裝回去.dex
  4. net/emome/hamiapps/sdk/utility/LicenseUtility.smali 裡面有一個method checkValidLicense, 會連線檢查你的IMEI, 軟體授權等等, 只要有一項不通過的話, 就會丟出一個exception。要讓他通過的話, 想辦法讓這個method不會送出任何exception就好了。
  5. 之後就用smali打包成classes.dex。
  6. 丟回去原本的apk, 這邊不能直接用zip壓縮, 因為需要修改manifest裡面的簽章跟每個檔案的hash, 直接壓縮可以安裝, 但是是不能執行的。
  7. 就按照這裡的教學, 隨便生出一個key pair, 然後用signapk 去簽章就可以了。
我沒有教你怎麼破解, 也沒有教你怎麼不付錢就下載, 千萬不要自己想出來然後把軟體變成免費版的放到網路上到處給人家下載。
軟體既然都要線上認證了, 就不要單純的只用signature有沒有通過來認證, 這樣太好破解了。

2010年5月21日 星期五

Google IO 2010

說了很多東西,到底有什麼呢...。

我對技術的比較有興趣, 例如新的JIT加速程式運行, 新的API讓瀏覽器可以使用手機裝置, 相機...。

然後就是一堆很複雜的東西, 可以怎麼樣搜尋商店啦, 新的廣告形式啦, 甚至Google TV啦...。 雖然這些很多再台灣都弄不太起來啦, 有鑑於台灣的網路跟科技環境。

資訊整合是一件好事, 可是我們真的需要這麼多資訊嗎?

如果我要在嘉義找聚餐的餐廳, 可以上ptt, 當然也可以用google map, 然後就可以找到一家看起來不錯的, 不一定是最好吃的, 不過誰知道什麼是最好的呢。

如果住在一個地方久了, 就變成會有習慣去的地方了。

Google TV, 今天如果我想看House, 我去打開電腦, 連上CBS, 看線上免費串流, 這樣真的還不夠好嗎。電腦可以自動出現Amazon, Hulu, CBS, ... 很多選擇, 可是最後我還是只會選一個阿, 而且是選平常常用的那個。

(圖) Google Voice Search 很酷, 有很多功能的遙控器很酷, 有一天是不是連遙控都不用, 坐在輪椅上面就可以操控一切了呢。

PastedGraphic-2010-05-21-00-51.jpg

歐巴馬批媒體 淪為娛樂形式

【聯合晚報╱國際新聞組/綜合報導】        2010.05.10 02:42 pm

美國總統歐巴馬9日感嘆,在iPad和Xbox產品充斥的時代,資訊已讓人轉移焦點,對民主政治造成新的傷害。這是歐巴馬對當今媒體最新的批評。

歐巴馬過去經常痛批記者和有線電視新聞網沉迷政治惡鬥,而不重視議題的報導;他向一群大學畢業班學生致詞時表示,教育才是進步的關鍵。

歐巴馬在維吉尼亞州漢普敦大學(Hampton University)表示:「你們置身於媒體一周7天、每天24小時輪番報導的環境中,被各種新聞疲勞轟炸,接觸到所有的爭辯,但有些內容根本不值得過度報導。」

歐巴馬說:「在iPod、iPad、Xbox和PlayStation使用普及之際,我不懂得如何運作其中任何一項產品,而資訊已成為分散注意力、轉移焦點的主因,並且淪為一種娛樂形式,而非增長智慧的工具。」

歐巴馬並且感嘆,當前「一些最瘋狂的聲明常會快速引發注意」,並在某些部落格和電子媒體談話性節目中大肆渲染。他說:「所有這些報導不僅給你們新的壓力,同樣也對我們的國家和民主政治形成新的壓力。」

歐巴馬警告,這個世界已處在驚人改變的時刻。他說:「我們不能停止這些改變,但要適應改變。」他還指出,美國勞工已面臨接受良好教育的外國勞工的挑戰。

歐巴馬說:「教育能讓你更堅強,就如同前輩一樣,以因應時代的考驗。」

不知道歐巴馬到底是念什麼的, 不知道他念書到底好不好, 不過他講的真的是有道理...。

2010年5月3日 星期一

Garbage Collection in GraphicsMagick

Using GraphicsMagick, when you want to rotate, scale, normalize... or doing anything to the image.




/* A line to fill table x-axis in html A line to fill table x-axis in html A line to fill table x-axis in html*/
InitializeMagick(argv[0]);
ImageInfo *info=new ImageInfo;
ExceptionInfo * excp=new ExceptionInfo;

GetImageInfo(info);
GetExceptionInfo(excp);
strcpy(info->filename,argv[1]);
Image * ii = ReadImage(info,excp);

ii=RotateImage(ii,270,excp);
/* The original ii is lost!!! */

Using a tmp variable




/* A line to fill table x-axis in html A line to fill table x-axis in html A line to fill table x-axis in html*/
Image * tmp = RotateImage(ii,270,excp);
DestroyImage(ii);
ii=tmp;
/* To much trouble... */

Using Boehm Garbage Collector


/* A line to fill table x-axis in html A line to fill table x-axis in html A line to fill table x-axis in html*/
#define GC_DEBUG
#include <gc/gc.h>
#define CHECK_LEAKS() GC_gcollect()

GC_init();
/*for GM*/
MagickAllocFunctions(GC_free,GC_malloc,GC_realloc);
/*for IM*/
SetMagickMemoryMethods(\
(AcquireMemoryHandler)GC_malloc,\
(ResizeMemoryHandler)GC_realloc,\
(DestroyMemoryHandler)GC_free);
        
/* Set Memory Alloc/Dealloc function to GC before calling any IM/GM function */
InitializeMagick(argv[0]);

/* Call GC anytime you like */
CHECK_LEAKS();


2010年5月1日 星期六

static reference to vector->head,tail

#include <vector>

#include <iostream>

using namespace std;

template<class T>

class myvector:public vector<T>{

public:

T tail;

T head;

void push_back ( const T& x ){

std::vector<T>::push_back(x);

head=this->front();

tail=this->back();

}

void pop_back (){

std::vector<T>::pop_back();

head=this->front();

tail=this->back();

}

};

int main(){

class myvector<int> myv;

int & i=myv.head;

int & j=myv.tail;

myv.push_back(100);

cout<<i<<","<<j<<endl;

myv.push_back(200);

cout<<i<<","<<j<<endl;

myv.push_back(300);

cout<<i<<","<<j<<endl;

myv.pop_back(300);

cout<<i<<","<<j<<endl;

return 0;

}

2010年3月24日 星期三

Develop with git, on svn repository

With mplayer svn tree, for example.

1. Check out mplayer source
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

2.Init git
git init
git add .
git rm --cached -r .svn
git rm --cached -r */.svn
git rm --cached -r */*/.svn
...
git commit -a -c "svn 30936"

3.Coding and commit with git

4.git log
commit 2714b3e5893e4fa72714839cc6e3b7b0c841f596
Author: Gung Shi Jie <adolf@gung-shi-jiede-macbook.local>
Date:   Wed Mar 24 18:33:29 2010 +0800

    Fix visualize buffer crash.
    Restore mp_msg in draw_arrow
.....
commit 74b2ef7c90a3c06191c87b1c2cef037f394bfa31
Author: Gung Shi Jie <adolf@gung-shi-jiede-macbook.local>
Date:   Fri Mar 19 15:32:31 2010 +0800

    mplayer-svn  rev. 30936.

5.generate a patch
git diff 74b2ef 2714b3 > my.diff

6.reverse the patch
patch -p1 -R < my.diff

7.commit for svn update
git commit -a -C "reverse to svn 30936"

8.svn update
9.patch
patch -p1 < my.diff
10.check for error and commit
Blogged with the Flock Browser

pkgsrc.se

CVSROOT=anoncvs@anoncvs.se.netbsd.org/cvsroot
CVS_RSH=ssh

cvs checkout wip
cvs checkout othersrc

2010年3月9日 星期二

DKIM,Domainkey

Yahoo真的有在用。

 _domainkey.yahoo.com txt  "t=y\; o=~\; n=http://antispam.yahoo.com/domainkeys"

還不清楚他的格式,不過像我的。

netbsd._domainkey.netbsd.pfctl.info TXT "v=DKIM1\; g=*\; k=rsa\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWv8fdQDN1FUJJxeZ6NMdOy8tAEwuTEzpsk1wYfxtYFwz1hHPiuOhF/KJSR2gvR8JuVAC92sI7RupEmBafscJdcqwepb2IVV+4GCZMNUfDpWtmXcoLQ+DZabZvpdlo9xLnZ5nR/oXiM00DlUlS2wI6nrF0Zf44Ib8eCJAo1x/+JQIDAQAB"

DNS record的格式是

selector._domainkey.domain
selector是在dkim-milter裡面指定的,可以有很多不同的selector,簽名的時候會標記說是用哪個selector簽名的。

2010年3月6日 星期六

DKIM,DomainKeys,SPF

之前有寫過SPF
現在發現Yahoo喜歡檢查DKIM/DomainKeys,這兩個好像是不一樣的東西啦,DKIM據說是Yahoo跟Cisco弄出來的。

跟SPF不一樣的就是,他是用來對發出去的郵件做簽章,沒有簽章的就是垃圾郵件。
public key則是放再dns的txt欄位。

目前還不是很清楚怎麼弄。
也不知道有誰家的郵件有加這個,yahoo自己也沒有。而且每封信都要驗證太麻煩了吧。那乾脆對身分驗證好了ksc91u@ksc91u.info 變成自己放一個txt ksc91u.at.ksc91u.info到dns去。

2010年3月2日 星期二

Build XNU Kernel

http://shantonu.blogspot.com/2009/09/mac-os-x-kernel-source-xnu-has-been.html

The Mac OS X kernel source (xnu) has been released for Mac OS X 10.6 Snow Leopard: here

Building xnu requires some open source (but not pre-installed) tools. Darwinbuild is the most reliable way for building these dependencies and xnu itself. Until that is ready, you can build the tools manually as follows:

  1. Download the build tools source(s)

    $ curl -s -O http://www.opensource.apple.com/tarballs/cxxfilt/cxxfilt-9.tar.gz
    $ curl -s -O http://www.opensource.apple.com/tarballs/dtrace/dtrace-78.tar.gz
    $ curl -s -O http://www.opensource.apple.com/tarballs/kext_tools/kext_tools-177.tar.gz
    $ curl -s -O http://www.opensource.apple.com/tarballs/bootstrap_cmds/bootstrap_cmds-72.tar.gz
  2. Unpack the tools

    $ tar zxf cxxfilt-9.tar.gz
    $ tar zxf dtrace-78.tar.gz
    $ tar zxf kext_tools-177.tar.gz
    $ tar zxf bootstrap_cmds-72.tar.gz
  3. Build cxxfilt

    $ cd cxxfilt-9
    $ mkdir -p obj sym dst
    $ make install RC_ARCHS="i386 x86_64" RC_CFLAGS="-arch i386 -arch x86_64 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
    ...
    $ sudo ditto $PWD/dst/usr/local /usr/local
    Password:
    $ cd ..
  4. Build dtrace

    $ cd dtrace-78
    $ mkdir -p obj sym dst
    $ xcodebuild install -target ctfconvert -target ctfdump -target ctfmerge ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
    ...
    $ sudo ditto $PWD/dst/usr/local /usr/local
    Password:
    $ cd ..
  5. Build kext_tools

    $ cd kext_tools-177
    $ mkdir -p obj sym dst
    $ xcodebuild install -target kextsymboltool -target setsegname ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
    ...
    $ sudo ditto $PWD/dst/usr/local /usr/local
    Password:
    $ cd ..
  6. Build bootstrap_cmds

    $ cd bootstrap_cmds-72
    $ mkdir -p obj sym dst
    $ make install RC_ARCHS="i386" RC_CFLAGS="-arch i386 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst
    ...
    $ sudo ditto $PWD/dst/usr/local /usr/local
    Password:
    $ cd ..
  7. Download the xnu source

    $ curl -s -O http://www.opensource.apple.com/tarballs/xnu/xnu-1456.1.26.tar.gz
  8. Unpack xnu

    $ tar zxf xnu-1456.1.26.tar.gz
  9. Build xnu

    $ cd xnu-1456.1.26
    $ make ARCH_CONFIGS="I386 X86_64" KERNEL_CONFIGS="RELEASE"
    ...
    $ file BUILD/obj/RELEASE_*/mach_kernel
    BUILD/obj/RELEASE_I386/mach_kernel: Mach-O executable i386
    BUILD/obj/RELEASE_X86_64/mach_kernel: Mach-O 64-bit executable x86_64

原來,blogspot沒有引用的功能...

2010年2月22日 星期一