2011年7月11日 星期一

[轉]MFC 學習筆記,Invalidate()、RedrawWindow()、UpdateWindow()的差異

出處:http://zhirong.blogspot.com/2009/06/mfc-invalidateredrawwindowupdatewindow.html

 

Invalidate()是強制系統進行重繪,但是不一定就馬上進行重繪。因為Invalidate()只是通知系統,此 時的視窗已經變為無效。強制系統調用WM_PAINT,而這個消息只是Post(寄送)就是將該消息放入訊息佇列。當執行到WM_PAINT消息時才會對 視窗進行重繪。
  UpdateWindow只向表單發送WM_PAINT消息,在發送之前判斷GetUpdateRect(hWnd,NULL,TRUE)看有無可繪製的 用戶端區域,如果沒有,則不發送WM_PAINT。發送即不經過訊息佇列,直接發送到對應視窗,因此此函數可以立即更新視窗。
  RedrawWindow()則是具有Invalidate()和UpdateWindow()的雙特性。聲明視窗的狀態為無效,並立即更新視窗,立即調用WM_PAINT消息處理。

 

2010年8月4日 星期三

Bib in WinCE

CE用*.bib來决定(reloade?) memory layout。
一般的project中會包含兩個 image : bootloader , OS,所以Project中會有 boot.bib和config.bib。
bib文件是用来指导WinCE的编译系统产生可执行二进制文件的,其中使用的地址都是虚拟地址。

必须在Config.bib中设置ROMSIZE参数。
如ROMSIZE=02000000,设置NK.NB0的大小为32M,若Image的大小超过32M,则还会产生NK.NB1,NK.NB2…


RAMIMAGE - 所有Kernel, conpoment都會被放置在這個區域。(大概就是code,const region?)
RAMIMAGE – This is the virtual address region that the kernel and any other components you select for your image will be placed in. This can be RAM or linearly addressable flash. Your config.bib file should have exactly one RAMIMAGE section. It needs to be virtually contiguous, and it needs to be large enough to hold whatever components you’ve selected.

RAM - Kernel 會利用這部份的區域作為application或kernel自己需要的RAM 空間(data,stack ?)
RAM – This is the virtual address region of RAM that the kernel can allocate to applications and RAM-based file systems. It needs to be virtually contiguous. (If you need a non-contiguous section, you can allocate another, non-virtually-contiguous section at run-time by implementing the OEMGetExtensionDRAM function, but that’s outside our scope)

RESERVED - Kernel 不會使用這部份區域。programmer可以用hard-coded對此 區域位址存取。
RESERVED – These are virtual address regions that are set aside – the kernel won’t allocate memory in these addresses and components won’t be placed in these addresses.

AUTOSIZE - 這是一個option,當設定ON時,builder會把RAMIMAGE和RAM合
併成一個region
AUTOSIZE - In the CONFIG section, we have the AUTOSIZE=ON (or OFF) variable. If this variable is on, it will treat the RAMIMAGE and RAM regions as a single region, allocating just enough space to hold all of the components to the RAMIMAGE section and making the rest of the space available as RAM. This is a pretty convenient and easy way to make sure you’re getting maximal use out of your RAM. One thing autosize won’t do is interfere with reserved or unallocated regions.






OEMAddressTable

Before we look at the .bib files themselves, it’s important to understand the OEMAddressTable. This table defines the mappings between physical and virtual addresses. For MIPS and SH processors, this table is hard coded into the processor. For x86 and ARM, the mapping is defined in a variable called OEMAddressTable. Since .bib files operate largely on virtual addresses, we need to remember to reference the OEMAddressTable to address any confusion about what is happening at a particular physical address.



2010年6月5日 星期六

tem

http://bbs.weiphone.com/read-htm-tid-775783.html

2010年5月27日 星期四

[轉]nk.bin和nk.nb0文件格式分析

作者:wogoyixikexie@gliet

借用别人的解释:
这里提到的bin是一种二进制镜像格式,以片断(section)为单位组织数据,每个片断都包括一个头,头里指定了起始地址,长度,校验值。 Platform Builder调用工具将WINCE内核所有文件以bin格式合并成一个文件,默认文件名为nk.bin。BootLoader又以同样的格式将 nk.bin分解成多个文件放到RAM中。可以在命令行中键入“viewbin nk.bin”来查看bin文件中具体包括了哪些内容。键入Cvrtbin命令转换.bin格式文件为.sre格式或者.abx格式。
nb0格式是原始的二进制镜像,它不包括头,一般情况下将内核下载到设备的RAM中运行都采用nb0格式。要生成nbx格式的文件,需要在相关.bib文 件中确定如下值:ROMSTART、ROMWIDTH、ROMSIZE

那么nk.bin是如何生成的?

Romimage.exe is a locator application that creates Windows CE binary image (.bin) files, usually limited to a single file called Nk.bin. This means that Romimage

  • Reads Ce.bib to determine which %_FLATRELEASEDIR% binaries and files to include in the run-time image.
  • Assigns physical memory addresses to these binaries and files. (这部是如何实现的?)
  • Creates the run-time image Nk.bin.

For more information about Ce.bib, see Make Binary Image Tool.

最近想搞multi bin后来发现我的bootloader是优龙的,不支持binfs分区格式化, 我想把eboot下的代码移植过来,应该可以的。

但是我对则个binfs有点疑惑。按照道理说,binfs是针对nk.bin的,但是我们下载的时候却是nk.nb0,有些人下载nk.bin,但是下载 完还是要解压成nk.nb0的。
我想问,binfs是怎么和nk.nb0联系起来的?
==============================来看看bin文件的格式=========================

一个bin 文件在存储上是按下面的结构存储的

组成:标记(7)+Image开始地址(1)+Image长度(1)
记录0地址+记录0长+记录0校验和+记录0内容(文件内容)
记录1地址+记录1长+记录1校验和+记录1内容(文件内容)
......
最后一条记录是表示结束,Start = 0x00000000, Length = 0x8C072C3C是StartUp地址, Chksum = 0x00000000

bin 文件的头部(不包括记录)可以用下面的结构表示
struct BinFile{
BYTE signature[7]; // = { ''B'', ''0'', ''0'', ''0'', ''F'', ''F'', ''\a'' }
DWORD ImageStart
DWORD ImageLength
};


一般xipkernel.bin,nk.bin 都符合正常bin文件格式,包含记录开始0,1,2 记录为特殊记录,2做为cece的标记,其后4byte表示 TOC地址(指向ROMHDR结构的数据),3记录开始都是文件记录,
———但是,我们实际用到却是nk.nb0文件,这个文件才是和文件系统帮顶起来的。我等下要找出他的格式来。先去吃午饭。

再借别人的解释

首先,NK.BIN中的内容是被压缩过的,NK.NB0中的内容是没有压缩的。 两者大小的区别是因为在生成过程中BIN会将你设定的后面的NULL自动去掉,而NB0就不会。

现在来用微软自带工具来看看这两个文件的格式到底有什么不同。

这幅图结合上面的解释可以知道,这个NK.bin文件的标志是BOOOFF,nk.nb0是没有这个标志的,要知道具体的信息,还是看MSDN好。

At the end of the boot loader development process described in the topic How to Develop a Boot Loader, you will have two different binary images for the boot loader: a .bin file and an .nb0 file. The Microsoft Windows® CE binary image data format (.bin) file is the most common format for Windows CE binary images. It is a binary file that consists of a number of individual records with associated per-record bookkeeping data. The format is convenient for minimizing the amount of data to be downloaded to the target device by removing the need to pad between records. For more information about the .bin file format, see Windows CE Binary Image Data Format (.bin).

The .nb0 file format is a raw binary image of the boot loader. The image is as it appears in the memory on the target device and does not contain the header information that the .bin file includes. The .nb0 file is typically larger than the .bin file. The .nb0 file is useful for placing the initial boot loader image on the target device. This is usually done with a built-in monitor program provided by the board manufacturer. You can also place the initial boot loader image on the target device through a JTAG connection using a JTAG probe. Once the .nb0 image is stored on the device, it should be able to download and update itself using the .bin file format from then on.

我使用的是ADS开发的bootloader,这个bin文件不存在什么段的问题吧,应该和微软不一样的,全局变量的问题在哪里呢?但是现在造成偶 尔不能启动是什么原因呢?最后发现又回到了原点。看来ADS下的bin文件格式也要搞清楚才行哦。

2010年5月24日 星期一

MAC 好用程式

BBEdit
好用的文字編輯軟體,還可以比code

FileMerge
高級Mac版的beyond compare

Adium
代替msn的軟體

MP3Tag
解決iTunes中文字亂碼的問題
http://www.mobile01.com/topicdetail.php?f=482&t=447185&p=1
http://www.anytag.de/forums/index.php?showtopic=57


NTFS3G
解決 mac 下讀取NTFS 檔案
http://www.macuknow.com/node/107

2010年5月21日 星期五

[轉] SLC and MLC

http://stenlyho.blogspot.com/2008/08/nand-flash-slcmlc.html

NAND Flash SLC、MLC技術解析

許多人對Flash Memory的SLC和MLC區分不清。就拿目前熱銷的MP3隨身聽來説,是買SLC還是MLC Flash Memory Chip的呢?在這裏先告訴大家,如果你對容量要求不高,但是對機器質量、數據的安全性、機器壽命等方面要求較高,那麽SLC Flash Memory Chip的首選。但是大容量的SLC晶片成本要比MLC晶片高很多,所以目前2G以上的大容量,低價格的MP3多是採用MLC晶片。大容量、低價格的 MLC晶片自然是受大家的青睞,但是其固有的缺點,也不得不讓我們考慮一番。

什麽是SLC?
SLC英文全稱(Single Level Cell——SLC)即單層式儲存 。主要由三星(samsung)、海力士(Hynix)、美光(Micron)、東芝(toshiba)等使用。

SLC技術特點是在浮 置閘極與源極之中的氧化薄膜更薄,在寫入數據時通過對浮置閘極的電荷加電壓,然後透過源極,即可將所儲存的電荷消除,通過這様的方式,便可儲存1個信息單 元,這種技術能提供快速的程序編程與讀取,不過此技術受限于Silicon efficiency的問題,必須要由較先進的流程强化技術(Process enhancements),才能向上提升SLC制程技術。

什麽是MLC?
MLC英文全稱(Multi Level Cell——MLC)即多層式儲存。主要由東芝、Renesas、三星使用。
英特爾(Intel)在1997年9月最先開發成功MLC,其作用 是將兩個單位的信息存入一個Floating Gate(Flash Memory存儲單元中存放電荷的部分),然後利用不同電位(Level)的電荷,通過内存儲存的電壓控制精准讀寫。MLC通過使用大量的電壓等級,每一 個單元儲存兩位數據,數據密度比較大。SLC架構是0和1兩個值,而MLC架構可以一次儲存4個以上的值,因此,MLC架構可以有比較好的儲存密度。

SLC 比較MLC的優勢:
目前市場主要以SLC和MLC儲存為主,我們多了解下SLC和MLC儲存。SLC架構是0和1兩個值,而MLC架構可以一次 儲存4個以上的值,因此MLC架構的儲存密度較高,並且可以利用老舊的生産程備來提高産品的容量,無須額外投資生産設備,擁有成本與良率的優勢。
與 SLC相比較,MLC生産成本較低,容量大。如果經過改進,MLC的讀寫性能應該還可以進一步提升。

SLC比較MLC的缺點:
MLC 架構有許多缺點,首先是使用夀命較短,SLC架構可以存取10萬次,而MLC架構只能承受约1萬次的存取。
其次就是存取速度慢,在目前技術條件 下,MLC晶片理論速度只能達到2MB左右。SLC架構比MLC架構要快速三倍以上。
再者,MLC能耗比SLC高,在相同使用條件下比SLC要 多15%左右的電流消耗。
雖然與SLC相比,MLC缺點很多,但在單顆晶片容量方面,目前MLC還是占了絶對的優勢。由于MLC架構和成本都具 有絶對優勢,能滿足未來2GB、4GB、8GB甚至更大容量的市場需求。 

SLC與MLC的識別:
一、看傳輸速度
比 如有兩款採用Rockchip晶片的産品,測試時寫入速度有2、3倍優勢的應該是SLC,而速度上稍慢的則是MLC。即使同様採用了USB2.0高速接口 的MP3,也不能改變MLC寫入慢的缺點。
二、看FLASH型號
一般來説,以K9G或K9L為開頭型號的三星Flash Memory則是MLC,以HYUU或HYUV為開頭型號的現代Flash Memory應是MLC。具體晶片編號以三星和現代為例:三星MLC晶片編號為:K9G****** K9L*****。現代MLC晶片編號為:HYUU**** HYUV***

簡單總結:
如果説MLC是一種新興的 Flash Memory技術,那麽它的“新”就表現在:成本低!
雖然MLC的各項指標都落後於SLC Flash Memory。但是MLC在架構上取勝SLC,MLC肯定是今後的發展方向,而對于MLC傳輸速度和讀寫次數的問題已經有了相當多的解决方法,例如採用三 星主控晶片,wear leveling技術,4bit ECC校驗技術,都可以在採用MLC晶片的時候同様獲得很好的使用效果,其性能和使用SLC晶片的没有什麽差別,而會節省相當多的成本.


=================================


NOR和NAND是現在市場上兩種主要的非易失閃存技術。Intel於1988年首先開發出NOR flash技術,徹底改變了原先由EPROM和EEPROM一統天下的局面。緊接著,1989年,東芝公司發表了NAND flash結構,強調降低每比特的成本,更高的性能,並且象磁盤一樣可以通過接口輕鬆升級。但是經過了十多年之後,仍然有相當多的硬件工程師分不清NOR 和NAND閃存。

  相「flash存儲器」經常可以與相「NOR存儲器」互換使用。許多業內人士也搞不清楚NAND閃存技術相對於 NOR技術的優越之處,因為大多數情況下閃存只是用來存儲少量的代碼,這時NOR閃存更適合一些。而NAND則是高數據存儲密度的理想解決方案。

   NOR的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中。

NOR的傳輸效率很高,在 1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。

  NAND結構能提供極高的單元密度,可以達 到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於flash的管理和需要特殊的系統接口。



性 能比較

   flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數 情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為0。

   由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進 行的,執行相同的操作最多只需要4ms。

  執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,對 於給定的一套寫入操作(尤其是更新小文件時更多的擦除操作必須在基於NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。

   ● NOR的讀速度比NAND稍快一些。

  ● NAND的寫入速度比NOR快很多。

  ● NAND的4ms擦除速度遠比NOR的5s快。

  ● 大多數寫入操作需要先進行擦除操作。

  ● NAND的擦除單元更小,相應的擦除電路更少。



接口差別

  NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內部的每一個字節。

  NAND器件使用複雜的I/O口來串 行地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。

  NAND讀和寫操作採用512字節的塊, 這一點有點像硬盤管理此類操作,很自然地,基於NAND的存儲器就可以取代硬盤或其他塊設備。



容量和成 本

  NAND flash的單元尺寸幾乎是NOR器件的一半,由於生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。

   NOR flash佔據了容量為1~16MB閃存市場的大部分,而NAND flash只是用在8~128MB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合於數據存儲,NAND在CompactFlash、 Secure Digital、PC Cards和MMC存儲卡市場上所佔份額最大。



可靠性和耐用性


   採用flahs介質時一個需要重點考慮的問題是可靠性。對於需要擴展MTBF的系統來說,Flash是非常合適的存儲方案。可以從壽命(耐用性)、位交 換和壞塊處理三個方面來比較NOR和NAND的可靠性。

壽命(耐用性)

  在 NAND閃存中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND存儲器除了具有10比1的塊擦除週期優勢,典型的NAND塊尺寸要 比NOR器件小8倍,每個NAND存儲器塊在給定的時間內的刪除次數要少一些。

位交換

   所有flash器件都受位交換現象的困擾。在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特位會發生反轉或被報告反轉 了。

  一位的變化可能不很明顯,但是如果發生在一個關鍵文件上,這個小小的故障可能導致系統停機。如果只是報告有問題,多讀幾次就可能 解決了。

  當然,如果這個位真的改變了,就必須採用錯誤探測/錯誤更正(EDC/ECC)算法。位反轉的問題更多見於NAND閃 存,NAND的供應商建議使用NAND閃存的時候,同時使用EDC/ECC算法。

  這個問題對於用NAND存儲多媒體信息時倒 不是致命的。當然,如果用本地存儲設備來存儲操作系統、配置文件或其他敏感信息時,必須使用EDC/ECC系統以確保可靠性。

壞 塊處理

  NAND器件中的壞塊是隨機分佈的。以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不划 算。

  NAND器件需要對介質進行初始化掃瞄以發現壞塊,並將壞塊標記為不可用。在已製成的器件中,如果通過可靠的方法不能進行這項處 理,將導致高故障率。



易於使用


  可以非常直接地使用基於NOR 的閃存,可以像其他存儲器那樣連接,並可以在上面直接運行代碼。

  由於需要I/O接口,NAND要複雜得多。各種NAND器件的存取方 法因廠家而異。

  在使用NAND器件時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND器件寫入信息需要相當的技巧,因為設計 師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進行虛擬映射。



軟件支持

   當討論軟件支持的時候,應該區別基本的讀/寫/擦操作和高一級的用於磁盤仿真和閃存管理算法的軟件,包括性能優化。

  在NOR器件上 運行代碼不需要任何的軟件支持,在NAND器件上進行同樣操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND和NOR器件在進行寫入 和擦除操作時都需要MTD。

   使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用於NOR器件的更高級軟件,這其中包括M-System的TrueFFS驅動,該驅動被 Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所採用。

   驅動還用於對DiskOnChip產品進行仿真和NAND閃存的管理,包括糾錯、壞塊處理和損耗平衡。

[轉]iPhone OpenFlow

http://fajkowski.com/blog/2009/08/02/openflow-a-coverflow-api-replacement-for-the-iphone/

2010年5月19日 星期三

NSoperation

http://icodeblog.com/2010/03/04/iphone-coding-turbo-charging-your-apps-with-nsoperation/

[轉]iPhone be a wifi router

from iPhone4.TW
因為擷取網址的時候出現一堆亂碼,只好暫時不附上網址了 @@

iPhone 3G 網路分享測試 (PdaNet vs NetShare)

PdaNet 與 NetShare 這兩套軟體,都是可以把 iPhone 網路分享給電腦的好工具
可樂羊今天心血來潮想試試看,到底哪一套比較猛?

首先說到 PdaNet,可以透過 Cydia 下載、免費。
使用方式就是由點對點無線網路,讓電腦連接 iPhone,然後打開軟體後,開啟網路分享就可以開始使用了,非常容易!

再來是 NetShare,是透過 App Store 下載購買,但已經買不到(別問我從哪弄的)。
使用方式幾乎與 PdaNet 一樣,但多了一個步驟,必須手動設定 SOCKS 代理伺服器、輸入 iPhone 的 IP 位址,但其實也不會太難就可以開始了。

測試硬體:MacBook Pro + iPhone 3G
網路來源:遠傳 3G

[01 Google 首頁網頁開啟測試]
PdaNet: 8-16 KB/S,資料連續性佳。
NetShare: 8-24 KB/S,資料連續性尚可。

[02 Apple 首頁網頁開啟測試]
PdaNet: 4-12 KB/S,資料連續性佳。
NetShare: 5-18 KB/S,資料連續性尚可。

[03 iTunes 安裝檔案單點下載測試]
PdaNet: 38-46 KB/S,資料連續性佳。
NetShare: 42-64 KB/S,資料連續性佳。

[04 iTunes 安裝檔案 15 點分割下載測試]
PdaNet: 63-131 KB/S,資料連續性佳。
NetShare: 96-148 KB/S,資料連續性尚可。

結論是 NetShare 勝出,不過 PdaNet 跟它的差距也不算大。
至於 Ping 值懶得測試了,光看選到網頁連結後的反應速度,就知道要拿來玩網路遊戲應該很不實際,尤其若是玩像 CS 這類的遊戲絕對是出去當肉靶的。
而且重點是,同時開啟 Wi-Fi 與 3G,iPhone 3G 耗電的速度比充電的速度還快!iPhone 是插著電源供應的,電池卻一直往下掉...

JSON & iPhone

http://changyy.pixnet.net/blog/post/26106020

[轉]10 Tips to Succeed on iPhone

http://www.industrygamers.com/galleries/industry-insights-10-tips-to-succeed-on-iphone/1/

2010年5月17日 星期一

Dump classes out of iPhone SDK

http://www.codethecode.com/projects/class-dump/

[轉]iPhone 第三方 game engine

from http://www.inside.com.tw


隨著iTunes Store的經濟圈越來越繁盛,越來越多的遊戲開發商從既有的平台轉入iPhone的開發,而這同時間很多遊戲引擎也隨之推出了iPhone版本,本篇文 章將針對一些常見的iPhone遊戲引擎做一個初步的介紹。

所謂的遊戲引擎,其實是扮演一個中介的角色,將一些比較複雜的開發細節(像是3D圖形的顯示)包裝成容易使用的介面。而也是因為透過遊戲引擎的幫 助,很多底層的細節也都可以被抽象化,所以除了方便使用之外,也增加了可移植性。

SIO2

SIO2為iPhone遊戲引擎中較為著名的,使用Bullet物 理引擎搭配Blender的3D物件、場景。超過一百套已上架的App使 用這套引擎。引擎套件有免費版和付費版,而在官網上也有提供部份App Store上軟體的原始碼付費下載

Oolong Engine

開放原始碼的遊戲引擎,也是使用Bullet物理引 擎,但文件較不完整。用此引擎開發出來的遊戲包含:Kids VS. Zombies

Unity

跨平台的遊戲引擎,但也提供了iPhone的整合,價格不低但是功能也相當完整。這幾個月在台灣也有一些相關的課程。

ShiVa 3D

也是跨平台的遊戲引擎,只有PC版的編輯器,功能強大但價格也較為昂貴。

cocos2d

開放原始碼的2d遊戲引擎,如果沒有要設計複雜的遊戲,算是一個很不錯的選擇。比較特別的是,他有提供server可以處理高分排行榜的功能。

Ogre

PC上著名的繪圖引擎,目前也正在著手進行iPhone的移植工作,估計在下個版本將會把iPhone納入官方支援平台。

除了以上這些已經釋出的遊戲引擎之外,許多現有的遊戲引擎也正在進行移植的工作。最著名大概就是Unreal遊戲引擎了,前幾天他們有釋出了移 植成功的Demo影片

對於未來的iPhone App,個人估計將會變得兩極化。越來越多重量集開發商,像是Electronic ArtsSquare Enix將會加入戰局,透過 這些跨平台的重量級遊戲引擎開發出聲光效果十足的遊戲,而一般的獨立開發者也會透過有趣的小點子崛起,就讓我們拭目以待。

[轉]Bonjour !

from wiki百科 http://zh.wikipedia.org/zh-tw/Bonjour

Bonjour,原名Rendezvous,是蘋果電腦公司在其開發的作業系統Mac OS X10.2版本之後引入的伺服器搜索協議所使用的一個商標名。 適用於LAN, Bonjour使用多點傳送域名系統服務記錄來定位各種設備,比如印表機或者其他電腦,以及另外設備上的服務。

概要

Bonjour是在LAN(區 域網)中尋找服務的一個主要方法。這項技術廣泛用於Mac OS X,允許用戶不用在任何設置下建立一個網路連接。目前用於在Mac OS X和其他作業系統上尋找印表機和檔案分享伺服器。還可以用於在iTunes中尋找 共享音樂,在iPhoto尋 找共享照片,在iChatProteusAdiumFireSkypeGizmo Project中尋找本地網路中的其他用 戶,在TiVo桌面上 尋找視頻錄製器,在SubEthaEditE中尋找文件協作,在Contactizer中尋找、共享聯繫人、任務和活動消 息。另外還可以用於在Safari中 尋找當地網路伺服器和當地設備的設置頁面,用Asterisk來推廣電話服務,設置參數VoIP電話 和撥號。 Bonjour Browser 可以用來瀏覽所有設備和這些程序的服務。

沒有特別的DNS設置,Bonjour只能在一個單一子網上 運行。

有人對Bonjour有一些誤解,認為它會將個人電腦的一些服務(如檔案分享)等變成公開的網際網路服務,引發安全危機問題。而實際上Bonjour並不提供其他額外的接入服務,甚至在用一個區域網(LAN) 上;它很少宣稱("推廣")他們的存在。比如,一個用戶可以瀏覽附近電腦上共享文件的列表——這些電腦上的Bonjour 已經告訴用戶這個服務可以使用,但是他必須進一步提供密碼才能接入那些機器上的保密文件。而且,Bonjour 只在一個封閉的範圍內工作,默認設置中,它的信息只能傳給同樣子網的其他用戶。

命名

Bonjour在2002年8月作為Mac OS X v10.2一部分發布的時候,原來的名字是 "Rendezvous",在法語中 意思是「約會」。在2003年8 月27日Tibco Software Inc 聲稱這個名字已經是他們的註冊商標[1]1994 年起 Tibco公司已經有一個商用軟體集成產品名叫TIBCO Rendezvous面市,該公司 稱試圖和蘋果公司商討此事但無果而終。2004年7月,蘋果公司和 Tibco發布和解方案,[2] 此前廣有傳聞稱新名字可能是 OpenTalk,但是最後沒被採用(可能是由於類似 LocalTalkPowerTalk)。 在2005 年 4月12日,蘋果公司宣布 Rendezvous 改名為 Bonjour,[3] ,仍是一個法語詞彙。

iPhone App

2009 fun iphone 最推的十大iphone軟體 實用程式篇
http://funiphone.pixnet.net/blog/post/30120833

2009 fun iphone 最推的十大iphone軟體game篇
http://funiphone.pixnet.net/blog/post/30119995

AR搖控直昇機
http://funiphone.pixnet.net/blog/post/30462897

AR : gunman, 真實版CS Game
http://funiphone.pixnet.net/blog/post/30215891

Taiwan AR : ARGo
http://funiphone.pixnet.net/blog/post/30174075

性愛羅盤
http://dev.iphonetw.net/redirect.php?tid=2246&goto=lastpost#lastpost

BBS : Nally Touch
http://www.goston.net/2009/04/26/2223/

2010年5月16日 星期日

[轉] 簡單的數字辨識

http://ace136.auto.fcu.edu.tw/scteach/scteach88/text/3-1.htm

基本概念就是類似七節顯示器的概念,原理簡啦,正確性有待驗證吧

[轉]如何使用 GoodReader/Air Sharing/FileMagnet USB 傳檔

from http://iphone4.tw/forums/showthread.php?t=86652

如何使用 GoodReader/Air Sharing/FileMagnet USB 傳檔

Apple 並不準使用者在 GoodReader/Air Sharing/FileMagnet 之類的 app 中使用 USB 來傳輸檔案,只能使用 Wifi 傳檔。即使 GoodReader 有秘計可以開啟相關功能,但是一昇級 iPhone OS 4.0 beta 2 以及 GoodReader 2.7.3 之後,這個秘計好像也沒用了。所以,只好,山不轉,路轉。

方法如下(無法附圖,因為 4.0 beta 2 的螢幕抓取功能有問題):

1. 先關閉 Wifi
設定->Wi-Fi->關閉

2. 開啟網路共享
設定->網路->Internet 共享->開啟->僅用 USB

3. iPhone 插上 PC/Mac 的 USB 連接

4. 開啟 GoodReader/Air Shareing 的 Wifi sharing 功能(FileMagnet 則開啟 PC/Mac 端的 App)。
5. 開啟 PC/Mac 上的瀏覽器,在網址列打上,http://172.10.20.1:8080/
(port 視不同 app,略有不同,ip 要是找不到,可以在 cmd 下打 ipconfig 找到 PC 端的 ip,若 PC 端是 x.x.x.2,iPhone 則是 x.x.x1)

6. 開啟傳輸檔案

[轉]防止iPhone App 糟盜版

http://auauau.javaeye.com/blog/658973

原文: http://b.imi.im/?p=356

先澄清一下, 我也是盗版用户(先自己抽两嘴巴, 但是我已经花了$200买app, 买觉得值得的程序, 而不是apple推崇的冲动式购买, 装盗版是先预览一下这个程序是不是值得买). 在中国做软件, 想不被盗版, 不太现实.
不想自己辛辛苦苦写出来的程序被盗版? 接着看.

首先简单介绍一下原理:

现在大多数的破解苹果验证安装app的办法都会动一个文件, 就是在.app文件夹下的”Info.plist”, 也就是那个程序信息文件.

代码很简单, 不再详细解释什么意思了

1. 检查Info.plist 是否存在 SignerIdentity这个键名(Key).
未破解的程序是不会有这个键名的, 苹果没给你加, 你自己没有加, 如果有, 那是哪儿来的呢?? 嘻嘻….

Java 代码
  1. if ([[[NSBundle mainBundle] infoDictionary] objectForKey: @”SignerIdentity”] != nil) {
  2. // 这就是被破解过的app
  3. }


2. 检查3个文件是否存在

Java 代码
  1. NSString* bundlePath = [[NSBundle mainBundle] bundlePath];
  2. BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:(@”%@/_CodeSignature”, bundlePath)];
  3. if (!fileExists) {
  4. // 这就是被破解过的app
  5. }
  6. BOOL fileExists2 = [[NSFileManager defaultManager] fileExistsAtPath:(@”%@/CodeResources”, bundlePath)];
  7. if (!fileExists2) {
  8. /// 这就是被破解过的app
  9. }
  10. BOOL fileExists3 = [[NSFileManager defaultManager] fileExistsAtPath:(@”%@/ResourceRules.plist”, bundlePath)];
  11. if (!fileExists3) {
  12. // 这就是被破解过的app
  13. }

3. 对比文件修改时间是否一致, 看看你的程序是不是被二进制编辑器修改过了

Java 代码
  1. NSString* bundlePath = [[NSBundle mainBundle] bundlePath];
  2. NSString* path = [NSString stringWithFormat:@"%@/Info.plist", bundlePath];
  3. NSString* path2 = [NSString stringWithFormat:@"%@/程序名字", bundlePath];
  4. NSDate* infoModifiedDate = [[[NSFileManager defaultManager] fileAttributesAtPath:path traverseLink:YES] fileModificationDate];
  5. NSDate* infoModifiedDate2 = [[[NSFileManager defaultManager] fileAttributesAtPath:path2 traverseLink:YES] fileModificationDate];
  6. NSDate* pkgInfoModifiedDate = [[[NSFileManager defaultManager] fileAttributesAtPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@”PkgInfo”] traverseLink:YES] fileModificationDate];
  7. if([infoModifiedDate timeIntervalSinceReferenceDate] > [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {
  8. //Pirated
  9. }
  10. if([infoModifiedDate2 timeIntervalSinceReferenceDate] > [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {
  11. //Pirated
  12. }

Mac timezone syncs with Bootcamp's windows

先说两个概念吧:
UTC即Universal Time Coordinated,协调世界时
GMT即Greenwich Mean Time,格林尼治平时
在这里,你可以把UTC认为是GMT+0。

Windows(XP和 VISTA)和(Linux/Unix/Mac)缺省看待系统硬件时间的方式是不一样的:
* Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。
* Linux/Unix/Mac把硬件时间当作UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬 件时间+8。

这样,当PC中同时有多系统共存时,就出现了问题。假如你的Ubuntu和WindowsXP中设置的时区都为北京时间 东八区,而你在Ubuntu中把当前系统时间更改为9:00AM。则此时硬件中存储的实际是UTC时间1:00AM。这时你重启进入Windows后,你 会发现windows系统中显示的时间是1:AM,比Ubuntu中慢了八个小时。同理,你在Windows中更改或用网络同步了系统时间后,再到 Ubuntu中去看,系统就会快了8小时。在实行夏令时的地区,情况可能会更复杂些。

原因知道了,那怎么来解决这种冲突呢。一种就是 让Windows把硬件时间当作UTC,与Linux/Unix/Mac保持一致。另一种就是让Linux/Unix/Mac把系统时间当作本地时间,与 Windows保持一致。

1. 让Windows把硬件时间当作UTC
开始 ->运行->CMD,打开命令行程序(Vista则要以管理员方式打开命令行程序方可有权限访问注册表),在命令行中输入下面命令并回车
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

2. 如何让Linux/Unix把硬件时间当作本地时间(以Ubuntu为例,其它Unix类系统与之类似)
修改 /etc/default/rcS,
将UTC=yes
改为UTC=no

3. 让Mac把硬件时间当作本地时间
据说是有个时间补丁,自己到网上找找看吧。

引用自

http://conner-wang.spaces.live.com/Blog/cns!568D1F7F9D97C059!658.entry?wa=wsignin1.0&sa=946611942

2010年5月14日 星期五

iPad 相關

有人說:
当我用installous安装破解ipa软件,全部白图标; 用install0us 安装,图标全部正常显示。

http://www.wretch.cc/blog/MCUDESIGNER/22732986&page=2
看起來比較正常的教學

http://bbs.weiphone.com/
一個找軟件的好網站

http://iphone.tgbus.com/

http://www.dooland.com/ishare/
外文pdf雜誌

http://www.coay.com/
免費 epub下載,但是內容常常是不完整的

http://apps4u.webs.com/apps/blog/
free apps

http://www.cnepub.com/discuz/?fromuid=31954
epub 掌上書苑

台灣電子書: www.book11.com.tw

comic reader mobi
2.2需要先安装软件,然后打开软件再关闭,你的itunes里的 comic添加框就多出一个Shared文件夹,漫画就必须传到这个文件夹才能正常使用
shared文件夹位置:/var/mobile/Applications/XXXX/Documents /Shared/
XXXX是指一些数字和字母组成 的文件名,找到其中有comic reader mobi.ipa的

上传漫画的方法最好是在cydia里头安装afc2add并配合ifunbox使用。将shared设定为喜好文件夹,直接 usb上传,非常方便。

ifunbox绿色版:
http://u.115.com/file/f29b1dd505