OS X 10.6.2 Update
11/10/2009, 12:28 - Apple


發表回應 發表回應 ( 319預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 2.5 / 40 )

OS X server 10.4.11 upgrade to 10.6 問題解決
11/06/2009, 21:35 - Apple
看來是 Apache 和 PHP5 之間的問題,Snow Leopard Server 的 PHP 是

root# php -v
PHP 5.3.0 (cli) (built: Jul 19 2009 00:34:29)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies


但是在系統中並沒有 Zend,而查看 Sample CPU load of httpd 時,發現 load 是在作 zend debug 時最多,所以在 /etc/php.ini 中加上兩行:

report_zend_debug = 0
mbstring.script_encoding=""


CPU load 就下來了。不過要試個幾天確定一下!

root# uptime
21:41 up 5 days, 10:57, 2 users, load averages: 0.03 0.08 0.52


發表回應 發表回應 ( 380預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 2.9 / 37 )

Snow Leopard hosts.allow and hosts.deny
11/06/2009, 15:00 - Apple
新裝好的 Snow Leopard Server, 一直收到有人用字典攻擊,在測試密碼. 先用 /etc/hosts.allow 和 /etc/hosts.deny 過濾掉沒有正確 IP 正反解的連線, 到時再用 sshdfilter 來擋!

/etc/hosts.allow

#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
#in.identd:ALL:ALLOW
#
smtpd:KNOWN,LOCAL,192.168.0.0/255.255.242.0:ALLOW
smtpd:UNKNOWN,PARANOID:DENY
#
httpd:KNOWN,LOCAL,192.168.0.0/255.255.2242.0:ALLOW
httpd:UNKNOWN,PARANOID:DENY
#
vsftpd:LOCAL,KNOWN,192.168.0.0/255.255.242.0:ALLOW
vsftpd:UNKNOWN,PARANOID:DENY
#
##in.telnetd:LOCAL,KNOWN,host,192.168.0.0/255.255.242.0:ALLOW
##in.telnetd:KNOWN,UNKNOWN,PARANOID:DENY
#
ipop3d:KNOWN,LOCAL,192.168.0.0/255.255.242.0,:ALLOW
ipop3d:UNKNOWN,PARANOID:DENY
#
imapd:KNOWN,LOCAL,192.168.0.0/255.255.242.0,:ALLOW
imapd:UNKNOWN,PARANOID:DENY
#
sshd:KNOWN,LOCAL,192.168.0.0/255.255.242.0:ALLOW
sshd:UNKNOWN,PARANOID,173.183.250.38:DENY
#
named:ALL:ALLOW
#
ALL:KNOWN,LOCAL,192.168.0.0/255.255.242.0:ALLOW
ALL:UNKNOWN,PARANOID:DENY
#


/etc/hosts.deny

#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
#ALL:UNKNOWN,PARANOID:DENY

發表回應 發表回應 ( 504預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 2.8 / 39 )

OS X server 10.4.11 upgrade to 10.6 問題暫解
11/03/2009, 11:59 - Apple
最近將原本在 iMac G5 上的 OS X Server 從 Tiger 10.4.11 昇級並換裝至 Mac Mini 的 Snow Leopard Server 10.6. 從 PowerPC 換成 Intel 的 CPU, 因為 Apple 在這兩種 CPU 上使用的 HDD Partition 格式不同, 無法直接以原來PowerPC的硬碟在Intel機器上開機. 所以將 iMac G5 放到 Target Disk Mode, 用 Firewire 連至 MacMini, 當成資料硬碟, 就可以無痛昇級,Snow Leopard Server 系統在一安裝好之後,第一次開機會有 Server Migration 可以自動作昇級,並自動作資料的搬移及轉換, 不過時間要等有點久, Snow Leopard Server 安裝約一個小時,但需要3個小時作 migration, 最多時間用在作原本的 user 所存放的 mail 格式轉換. 10.6 server 的 postfix 己經由原本的 UNIX mailbox 格式, 換成 QMail 的 maildir 可以加快信件的處理速度. 經過 Server Migration 之後, 所有的的資料都在, 密碼及SSL的CA設定也都沒有改變, 在外部的人根本無法察覺到 Server 己經換了.

跑了兩天發現系統的 loading (uptime) 會上昇到 40 以上, CPU 100% 滿載, (一般的 UNIX 系統在 3 至 5 就不得了了), 讓系統反應變慢. 檢查的結果應該是 apache2 的關係, 原因還不明, 因為有使用 Squirrel webmail, 無法停掉 apache, 先作一個 shell script 放在 crontab 中定時檢查若 load 大於 8, 就重新起動 apache. 作為暫時解決的方案.


#!/bin/sh
AP_PS=`ps -ax|grep httpd|grep -v grep|wc -l|awk '{printf("%d\n",$1)}'`
LOAD=`uptime|awk '{printf("%d\n",$11)}'`

if [ $LOAD -ge 8 ]; then
if [ $AP_PS -ge 10 ]; then
/usr/sbin/apachectl restart
fi
fi




發表回應 發表回應 ( 598預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 3.1 / 33 )

Parallels Windows 7
10/30/2009, 16:08 - Apple
用 Parallels4 在 Snow Leopard 上跑 Windows 7,得到的測試結果,Graphics 還要再加強啊!

發表回應 發表回應 ( 244預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 3.1 / 26 )

Apple Store updating
09/29/2009, 15:28 - Apple
新東西要來了吧!


4 回應 4 回應 ( 328預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 2.4 / 21 )

rpm2targz
09/16/2009, 13:26 - Open Source
我使用 Slackware Linux作為工作平台,但要找應用程式時,經常看到只有 Debian或是只有rpm的格式。今天要用Google Desktop時,就發現 Linux 版本,只有包裝成 rpm 及 deb,所以就想到用 rpm2targz/rpm2tgz 這個工具轉檔一下,再自已搬到 /usr 下,就可以用了。為何最簡單的格式反而沒有人要用呢?
2 回應 2 回應 ( 431預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 2.9 / 48 )

好讀 PDB 檔案轉 TXT
09/07/2009, 16:37 - Open Source
因為想要用 BeBook電子書讀一些從好讀網站的繁體中文電子書。但好讀的檔案格式是用Palm Pilot 的 pdb 格式,BeBook正好就沒有支援pdb,也沒有好的轉換程式可以在Macintosh及Linux上作pdb至text的檔案轉換,用過pdb2txt,但是中文好像有問題,所以呢?男子漢要看電子書就自已作個轉換程式吧。

程式非常簡單,所以就不加說明了。這個程式可以將好讀的電子書轉成純文字格式,並將原來直式的標點符號改成橫式,其他的像是章節分段等好像用不到,所以就不管了。網路上說好讀的格式有加密,不過現在看來是沒有,只是加 pdb的表頭及分段而已。這個程式應該可以用任何版本的 C compiler,若要大量轉換的話,請自已作個 batch script吧。


/*
Translate Palm Document pdb to text in zh_TW.Big5
Programmer : Tasuka Hsu
Date : 2009/Sep/04
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define DoubleWord(a) \
a[0]*256*256*256+ \
a[1]*256*256+ \
a[2]*256+ \
a[3]

#define SingleWord(a) \
a[0]*256+a[1]

struct pdbHeader {
unsigned char name[32];
unsigned char attributes[2];
unsigned char version[2];
unsigned char creationDate[4];
unsigned char modificationDate[4];
unsigned char lastBackupDate[4];
unsigned char modificationNumber[4];
unsigned char appInfoID[4];
unsigned char sortInfoID[4];
unsigned char type[4];
unsigned char creator[4];
unsigned char uniqueIDseed[4];
unsigned char nextRecordListID[4];
unsigned char numberOfRecords[2];
} PDB;

int main(int argc, char *argv[])
{
FILE *fp;
int i=0,j=0;
unsigned char c;
char *filename;

if(argc>=2){
filename=(char *)malloc(sizeof(char)*(strlen(argv[1])+1));
strcpy(filename,argv[1]);
}else{
printf("PDB Filename is required.\n");
return(1);
}

if((fp=fopen(filename,"r"))==NULL){
printf("Can not open %s file\n",argv[1]);
return(1);
}

while(!feof(fp)){
c=fgetc(fp);

if(i<32)
PDB.name=c;

if(i>=32 && i<34)
PDB.attributes[i-32]=c;

if(i>=34 && i<36)
PDB.version[i-34]=c;

if(i>=36 && i<40)
PDB.creationDate[i-36]=c;

if(i>=40 && i<44)
PDB.modificationDate[i-40]=c;

if(i>=44 && i<48)
PDB.lastBackupDate[i-44]=c;

if(i>=48 && i<52)
PDB.modificationNumber[i-48]=c;

if(i>=52 && i<56)
PDB.appInfoID[i-52]=c;

if(i>=56 && i<60)
PDB.sortInfoID[i-56]=c;

if(i>=60 && i<64)
PDB.type[i-60]=c;

if(i>=64 && i<68)
PDB.creator[i-64]=c;

if(i>=68 && i<72)
PDB.uniqueIDseed[i-68]=c;

if(i>=72 && i<76)
PDB.nextRecordListID[i-72]=c;

if(i>=76 && i<78)
PDB.numberOfRecords[i-76]=c;

if(i>=78 && i<78+(SingleWord(PDB.numberOfRecords)*8));

if(i>=78+(SingleWord(PDB.numberOfRecords)*8)){
if(c!=0x0d){
if(c==0x1b)
c=0x0a;
if(c==0x00){
c=0x0a;
printf("\n");
j--;
}
if(c==0xa1){
i++;
printf("%c",c);
c=0;
if(!feof(fp)){
switch(c=fgetc(fp)){
case 0x55:c=0x56;break;
case 0x56:c=0x55;break;
case 0x57:c=0x58;break;
case 0x58:c=0x57;break;
case 0x59:c=0x5a;break;
case 0x5a:c=0x59;break;
case 0x5b:c=0x5c;break;
case 0x5c:c=0x5b;break;
case 0x5d:c=0x5f;break;
case 0x5e:c=0x60;break;
case 0x5f:c=0x5d;break;
case 0x60:c=0x5e;break;
case 0x61:c=0x63;break;
case 0x62:c=0x64;break;
case 0x63:c=0x61;break;
case 0x64:c=0x62;break;
case 0x65:c=0x67;break;
case 0x66:c=0x68;break;
case 0x67:c=0x65;break;
case 0x68:c=0x66;break;
case 0x69:c=0x6b;break;
case 0x6a:c=0x6c;break;
case 0x6b:c=0x69;break;
case 0x6c:c=0x6a;break;
case 0x6d:c=0x6f;break;
case 0x6e:c=0x70;break;
case 0x6f:c=0x6d;break;
case 0x70:c=0x6e;break;
case 0x71:c=0x73;break;
case 0x72:c=0x74;break;
case 0x73:c=0x71;break;
case 0x74:c=0x72;break;
case 0x75:c=0x77;break;
case 0x76:c=0x78;break;
case 0x77:c=0x75;break;
case 0x78:c=0x76;break;
case 0x79:c=0x7b;break;
case 0x7a:c=0x7c;break;
case 0x7b:c=0x79;break;
case 0x7c:c=0x7a;break;
case 0x7d:c=0x5f;break;
case 0x7e:c=0x60;break;
case 0x1b:c=0x0a;break;
case 0xa1:ungetc(c,fp);c=0;i--;break;
default:break;
}
}
}
if(c!=0)
printf("%c",c);
}else {
j++;
}
}
i++;
}
printf("\n");
fclose(fp);

printf("\n\nFilename : %s\n",filename);
printf("\nPDB Header\n");
printf("Name : %s\n",PDB.name);
printf("Attributes : %d\n",SingleWord(PDB.attributes));
printf("Version : %d\n",SingleWord(PDB.version));
printf("Creation date : %ds\n",DoubleWord(PDB.creationDate));
printf("Modification date : %ds\n",DoubleWord(PDB.modificationDate));
printf("Last backup date : %ds\n",DoubleWord(PDB.lastBackupDate));
printf("Modification number : %d\n",DoubleWord(PDB.modificationNumber));
printf("Application Info ID : %d\n",DoubleWord(PDB.appInfoID));
printf("Sort Info ID : %d\n",DoubleWord(PDB.sortInfoID));
printf("Type : %d\n",DoubleWord(PDB.type));
printf("Unique ID Seed : %d\n",DoubleWord(PDB.uniqueIDseed));
printf("Next Record List ID : %d\n",DoubleWord(PDB.nextRecordListID));
printf("Number of records : %d\n",SingleWord(PDB.numberOfRecords));
printf("File Size : %d bytes\n",i-78-(SingleWord(PDB.numberOfRecords)*8)-j);

free(filename);
return(0);
}


有了這個程式就可以用 BeBook 的電子紙看書,而不用再用小小的 iPod Touch 看小小的字了。
下次再來作個修改文章的程式給Macintosh用吧,前提是如果我想要作的話。
4 回應 4 回應 ( 982預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 3 / 78 )

Snow Leopard Upgrade 但這一切都是 Apple 的陰謀啊
09/01/2009, 14:08 - Apple
先用 DiskUtility 或 Yasu 等工具對硬碟作清除及檢查。


一開始先作備份到TimeMachine,但因為沒有作過,所以用了很長的時間,
大約是四個小時,備份了134GB吧,TimeMachine是不備份系統及開機的部份。


上圖是安裝Snow Leopard前,可以看到剩下大約14GB的空間。


昇級完 Snow Leopard之後變成了32GB,多了大約18GB出來。


系統已經是Snow Leopard 10.6 了。


因為Snow Leopard預設是開在32bit模式下,要修改成64bit模式。
用以下的指令檢查

ioreg -l -p IODeviceTree | grep firmware-abi


是 EFI64。


重開之後發現有些奇怪的地方,就是OS X好像有進64Bit模式,但是Kernel是用32Bit的Kernel。
用 uname -a

Darwin MacBook-Pro.local 10.0.0 Darwin Kernel Version 10.0.0:
Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25~1/RELEASE_I386 i386 i386

若是64bit kernel,就不會是i386而是X86_64了。


看到已經有64bit的程式在跑了。

後來查了才發現,原來MacBookPro3,1的BootRom是不可以用64bit Kernel的。
http://netkas.org/?p=127
當然也有方法可以強開到64bit Kernel,不過看來這一切都是Apple的陰謀啊。

順便作一下OpenCL的測試,看來若程式有用到OpenCL,會加快很多,從30秒變成10秒。
不過有那些程式有支援呢?還是說程式不用修改就可以用到呢?


OpenCL 測試

...................OpenCL Bench V 0.1 by mitch.............
.......C2D 3GHz = 30 sec vs Nvidia 9600GT = 3.10 sec.......
....... .......
........My test code (simple adds) is cpu friedly..........
.more gpu friedly+complexer code (raytracing/video encod.).
....may give much more speed advantage - at least on C2Ds..
...........................................................
CL_DEVICE_NAME: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz
CL_DEVICE_VENDOR: Intel
Now computing - please be patient....
time used: 38.048489
Number of elements computed: 2097152
CL_DEVICE_NAME: GeForce 8600M GT
CL_DEVICE_VENDOR: NVIDIA
Now computing - please be patient....
time used: 10.664221
Number of elements computed: 2097152
Now checking if results are valid - please be patient....
:) Validate results test passed - GPU=CPU :)


整體而言這次的昇級,表面上真的看不到大改變,不過感覺真的有變快。不過那個被限制不能用到64bit Kernel還是令人不爽,因為有一大堆的華碩、Acer的機器都可以,而Apple原廠的機器反而不行。
再來是Duck加上Expose,真的很爛,我原來都直接在Mail 的 Duck Icon上按選一下就可以寫信、收信,現在要多配合Ctrl鍵才可以,或是Mouse按右鍵,還是說這是Apple放棄單鍵Mouse的測試? 不過若是MacBook等有Trackpad的話,可以用兩指按在Trackpad上,再Click就會變成按右鍵了,這需要在Preferences中的Trackpad設定打開。

發表回應 發表回應 ( 634預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 2.9 / 32 )

Engadget的Snow Leopard Review
08/27/2009, 13:29 - Apple
Engadget 所作的 Snow Leopard Review

文中特別指出了這次Apple Snow Leopard 和 Windows 7最不同的地方是“不需要對整個系統重新安裝,只要更新“。
事實上Apple從OS9至OS X時也提供了類似的方式,可以在OS X下執行OS 9的程式,不過還是要重裝或是兩顆硬碟的方式,不過這次的Snow Leopard升級更方便而已。而且在去年就說過Snow Leopard只是升級及調整Performance,可能因為這樣所以價格才會只需要$29,也因為是升級,所以還是需要10.5 Leopard配合。還有就是安裝之後佔用空間變小,這對Windows系統來說是不可能的事。
而在安裝中不用先用DVD開機到Snow Leopard,這也很特別,可見真的只是更新版本。
而且PowerPC模擬器 Rosetta default是不安裝,所以要記得安裝,不然就不能再執行PowerPC only的程式了。
反正就是說Snow Leopard就像是Leopard的64 bit Services Pack。
不相容的部份有InputManager plugins in 64-bit,有可能會讓用到原來32bit的程式無法使用,不知道可以繼續使用Open Vanilla Input method 嗎?

美國加州時間Aug/28,加上時差還有兩天吧!

剛收到了 Apple Snow Leopard 的出貨通知了!不過運送日期是8/31。出貨商是TNT Internatiional Express,可能是和上次的Leopard一樣,從新加坡出貨,軟體的話,應該不會是中國吧。





發表回應 發表回應 ( 329預覽 )   |  [ 0 引用 ]   |  permalink   |   ( 2.9 / 54 )


<<開始 <前一頁 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 下一頁> 最後>>