星期六, 1月 02, 2010
七十危危乎房地產信託基金
夜籣人靜,我隨便brainstorming 一下:
1. 基金要用private equity trust 的形式建立。在書仔中要開宗明義列明基金的objectives;
2. 要有議事規則,會議adjourn以後吹水一律不予正視;
3. 股東彼此必需是摯友,並且品格高尚;
4. 要有反敵意收購條款;
5. 派年息之餘須為基金保留一定資本,一來作日後投資本金,二來作備用現金回購要求退股之股東的股份;
6. 每月/季舉行knowledge-sharing sessions,由股東或嘉賓主持,分享自己領域知識,既可凝聚情誼,又何增進知識。
7. 可加入社會責任原素,例如把「眾人的傘」這個概念引入中環。
當基因研究長足發展
科學不斷進步,當我們是否身負癌症、心臟病,遺傳病症的基因都被實驗室裡的陌生人看個透澈時,是否意味有一撮人會因為這個原因而買不到或需要付出高昂代價才能購得保險?未來社會安全網又可如何趕上商家的步履,填補這個可能出現的漏洞?
生活對人類來說,真的越來越尖刻。
星期五, 1月 01, 2010
星期六, 12月 19, 2009
白武士
稍為意料之外的是由於金管局收緊樓按,收租那間要引入白武士注資。
興漢雷蒙律師是我的白武士。我和他這兩個 strangers in equity 今天往銀行去開聯名戶口,並且 outline 了未來該如 streamline 收租供樓的行政事項。
白武士說他資金的融資成本是五年後還五萬元利息給銀行。我們這房子月租九千,月供五千,他兩年已經返本......
白武士雖然也有利潤,但他這次出手實在是及時雨。
今午在中環我與他繞臂前行,我對他說:「見你對我咁好,我就贈送你半年秘書服務啦!」
律師果然是律師:「半年後會收幾錢架如果我用慣左想繼續用?」
驚險星期一
1100 同事:「七十姐你個中文版script快d譯好佢。老板見客等住用呀。」
1200 中區地產:「七十小姐我幫你收左買家票啦,你今日向邊?我拎份約你簽。快d攪掂件事算數...」
1600 髮型師:「七十你不要愁眉深鎖,我很擔心呀。我冇野幫到你,不過我一定幫你整靚個頭。」
1800 低密度地產:「七十小姐有實客問價,今晚睇樓得唔得?下?九點?好,我約一約買家。」
1900 測計師行:「七十小姐你叔叔話你要撻訂,果間樓既資料你俾我,睇下我有冇辦法幫你。」
2000 醫生:「你當09年係俾學費既一年啦。」
2100 七十:「你地一個二個欺負我!」
地產:「別這樣說啦,我佣金唔駛你俾全數啦。」
我因為要deal駁deal,所以低密度房子僅連雜費平手離場咋。
呢個遊戲太刺激啦,我以後都唔會玩。
星期五, 12月 18, 2009
購物狂尋找白武士
十個。
知道09年我買了多少間房子嗎?
三間。
幸好現在成功售出了其中一間,並且在金管局突然收緊樓按的情況下找到白武士與我共同投資收租物業。
購物狂的角色我扮演夠了,2010年我要踏踏實實做人。
我跌低,我爬起來。
星期三, 12月 09, 2009
Gadget
What is a gadget?
Google gadgets are HTML and JavaScript mini-webpages, mostly served in iFrames that can be embedded in web pages and other apps. Gadgets may be embedded in iGoogle, Google Desktop and any page on the web. Gadgets that can work on iGoogle, Google Desktop, and other pages across the Web are created using the Universal Gadgets API, and they are as easy to develop as a webpage.
While simple gadgets can be created in a few minutes, in order to develop a useful gadget with interesting functionality and an appealing look and feel we suggest learning about HTML, JavaScript and Google's Gadget API.
A gadget is described in an XML file. This XML file defines the gadget look and feel as well as its functionality.
Here is an example "Hello World" gadget:
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title=“Hello World" />
<Content type="html”><![CDATA[
<b>Hello World!</b>
]]></Content>
</Module>
A gadget is defined in an XML document containing a module root element. In this example the module contains a ModulePrefs element and a Content element. The ModulePrefs element describes general gadget preferences, such as its title ("Hello World" in this example) and may also contain other gadget preferences, such as Description, Author and more. The Content element is the heart of the gadget and it describes the actual HTML displayed by the gadget (the >Hello World!</b> string in this example). The Hello World gadget in this example is very simple - it has very limited functionality and will just display a "Hello World!" text - but more advanced gadgets will use the Content element to put their JavaScript and HTML code. The <![CDATA[..]]> markers are XML standard way of embedding data strings within XML elements. Learn more about CDATA here.
Developing gadgets does not require special development tools. You may either use the online Google Gadgets Editor tool (GGE), or use your favorite text editor to edit the gadget and upload it using GGE.
Some gadget examples
Gadget functionality runs from simple static HTML pages to very sophisticated HTML, JavaScript, AJAX with Server Side functionality gadgets, such as a virtual keyboard that lets you type in your own locale even if you are are using a kiosk computer that does not have that locale installed, and lets you also email the text you type using an email server.
To get a good sense of what gadgets can do let us review some gadgets examples.
In this section we will introduce some gadgets and in the next section we will review more gadgets, view their source code and learn how they operate.

A Dictionary gadget:
Allows you to lookup keywords in Dictionary.com, Thesaurus.com, or Reference.com
Some Code Examples
To learn how gadgets work, let's go through some gadget code examples:
A Hello World
As a reminder let's look at the Hello World gadget presented before.
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title=“Hello World" />
<Content type="html”><![CDATA[
<b>Hello World!</b>
]]></Content>
</Module>
A Better Hello World
The following example also displays a Hello World message, but also introduces the ModulePrefs and the UserPref sections.

In this example we see a module named "My First Gadget".
The first section (green) describes the gadget preferences in the ModulePrefs XML element. The ModulePrefs section describes the gadget name, description, height, author's name and a category. All these attributes are used by Google when the gadget is published to the gadgets directory.
The second section (blue) describes user preferences. The set of user preferences used by the gadget is really up to the gadget developer. In this example we chose Color, Toggle and Locations. The developer of the gadget chooses the set of user preferences that make sense to the gadget. After publishing the gadget the user of the gadget selects the preferred values for the gadget preferences and saves them as her own preferences. An example would be color. A gadget developer creates a Color UserPref XML element and the user of the gadget may chose her favorite color, such as "blue". The Color is saved by iGoogle and next time she logs in to iGoogle the value "blue" is restored.
The third section (red) is the content of the gadget. In this case, it's the same HTML string seen before containing the "Hello World" text. This time the "Hello World" text is colored in red. Note that, in this example, even though user preferences were introduced they were not actually used by the gadget content (e.g. in this example, the color of the "Hello World" text is always red). In the next example, however, we demonstrate how they can be used.
Notes example - Storing State
The notes example allows a user to create a note and save it.
The next time the user visits iGoogle the note will be restored.
It also lets the user set a different background color for the gadget.

The color is selected by a user and stored into the "color" user preference. Note the <UserPref name="color" element. In this example a user may choose 3 different colors: Yellow, Blue and Green.
In the content section you may notice there is a <style> block. This block determines the look and feel of the gadget using CSS. CSS is a widely used standard for controlling HTML look and feel. Inside the style block you'll find the textbackground-color: __UP_color__;
This means that the value of the background-color CSS property is replaced for each user of the gadget with the value of the user preference color selected by the user from the UserPref section. This is done automatically by iGoogle.
Another example of user preferences usage would be the text UserPref highlighted in red.
In this example we use a hidden text UserPref. Since user preferences are stored by Google, the text UserPref lets us save the content of the note. We use JavaScript to populate the test UserPref with the value of the note textarea.
The <Require feature="setprefs"/> element provides us with programmatic access to the user preferences object using JavaScript. Programmatic access to user preferences is an optional feature, this is why we include the Require section. To learn more about optional features see http://code.google.com/apis/gadgets/docs/reference.html#Feature_Libs
The <UserPref name="text" default_value="Type text here.” datatype="hidden"/> element defines a hidden user preference. The hidden user preference is used to store the content of the note. However, this is not done automatically. We do it by calling the JavaScript save() function.
The JavaScript save() function is called whenever a user clicks the "Save Note" button. The method uses the __IG_Prefs() object to set the value of the user preference keyed "text" with the content of the "note" textarea element. _gel() is just a simple replacement for JavaScript's document.getElementById(), which gets a reference to an HTML element using its ID.
This example is simple, yet demonstrates the power of gadgets using Google Gadgets API.
Before You Start
The Google Gadgets API uses a few simple building blocks: XML, HTML, and JavaScript. Here are some resources that could help you get familiarized with building your own gadget. As a starting point, all you need is a basic understanding of HTML. Later, as you write more sophisticated gadgets, you will probably want to learn some JavaScript if you're not familiar with it already.
- HTML is the markup language used to format pages on the Internet. The static content of a gadget is typically written in HTML. HTML looks similar to XML, but it's used to format Web documents rather than to describe structured data.
- JavaScript is a scripting language you can use to add dynamic behavior to your gadgets.
- Google Gadgets API is the JavaScript library developed by Google used for implementing the more sophisticated gadgets features, such as controlling user preferences programatically, tabs, remote server communication and more.
- In addition, it would be useful to understand some basic XML concepts and syntax. XML is a general purpose markup language. It describes structured data in a way that both humans and computers can read and write. XML is the language you use to write gadget specifications. A gadget is simply an XML file, placed somewhere on the internet where Google can find it. It may be hosted by Google as well as on your own server. As demonstrated before, the XML file that specifies a gadget contains instructions on how to process and render the gadget. The XML file can contain all of the data and code for the gadget, or it can have references (URLs) for where to find the rest of the elements. References (URLs) were not discussed on this page. To learn more about them read http://code.google.com/apis/gadgets/docs/fundamentals.html#URL
- Gadgets are open-source by design. A immediate consequence is that if you see a gadget with interesting functionality, you may simply open the the gadget module definition file with your browser and examine its source code. For example, the source code for the Date & Time gadget is here: http://www.google.com/ig/modules/datetime.xml. This is the best way to learn about gadgets development.
Gadget Hosting and Placement
As a gadget developer you have two options for hosting your gadget - you may host the gadget on Google's servers or you may host the gadget on your own server. Hosting the gadget on Google's servers is very convenient since you don't need to have administrative access to a web server. If, however, you do have access to a web server, you can use it to host your gadget as well.
Follow these steps to publish a gadget using Google hosting service:
- Use the Google Gadgets Editor (GGE) or any text editor to write your gadget specification, and host it on a public Web server. The easiest way to do this is through GGE. When you save a gadget in GGE, it is automatically hosted in the GGE environment.
- In GGE, choose File > Publish. This step will put your gadget on Google's servers, available on the internet.
- You may grab the URL to your published gadget. In the Publish dialog use the link that reads "Your gadget is located here".
Gadgets may be placed on iGoogle, as well as on any other blog or Web site such as http://blogger.com, http://orkut.com or your own website.
To add your gadget to your iGoogle page use the following procedure:
- Use the Google Gadgets Editor (GGE) or any text editor to write your gadget specification, and host it on a public Web server. The easiest way to do this is through GGE. When you save a gadget in GGE, it is automatically hosted in the GGE environment.
- In GGE, choose File > Publish.
- In the Publish Your Gadget dialog, choose Add to my iGoogle page. If you don't already have an iGoogle page, you must create one as described in Getting Started.
- Go to http://www.google.com/ig, and make sure you are logged in. You will see the gadget you just published to iGoogle.
For more details visit http://code.google.com/apis/gadgets/docs/basic.html
To place gadget on your website use the following procedure:
- Create a gadget using GGE or your favorite text editor
- Publish the gadget, by choosing File > Publish in GGE
- In the publish dialog select the Add to a web page option. This action is also referred to as Syndication.
- Select your preferred color, width etc, click the Get the Code button and copy the code in the text box. This is a short JavaScript code that will display your gadget on any Web site.
- Paste the copied code on your blog or Web site.
Gadgets you create may be used by other users (if you choose to publish them), and any gadgets that you see and like can be added to your personalized iGoogle page, blog or Web site.
To add gadgets created by others to your iGoogle page go to http://www.google.com/ig and click Add Stuff. Browse the gadgets directory and add which ever gadget you like.
To add gadgets created by others to your website go to http://www.google.com/ig/directory?synd=open, select your gadget and click Add to your webpage.
Internationalizing a Gadget
After implementing a useful gadget you may extend its reach by making it available to users speaking different languages by internationalizing the gadget.
Localizing a gadget is simple. Let us start with an example:

In this example we see the Hello World example from previous sections, in different languages: The title and the "Hello, World!" messages are externalized and translated into two languages, English and Japanese.
In the gadget module definition the "Hello, World!" string was replaced with __MSG_hello__ and the title was replaced with __MSG_title__. In addition to this change, there are now two message bundles that go along with the gadget: the en.xml message bundle, which translates __MSG_hello__ to "Hello, World!" and ja.xml which translates __MSG_hello__ to the "こんにちは、世界" Japanese string.
When a user uses your gadget, Google will make sure that the gadget automatically uses the user's own language, where available, as indicated by the user's domain and language preferences.
We recommend that you to prepare the gadget for internationalization and start with English. This requires from you to externalize all strings in your HTML by using __MSG_ variables and creating an English message bundle.
If you speak another language, you can also translate the English message bundle to this other language and include it with the gadget.
If your gadget becomes popular enough, you may want to consider translating it into even more languages. But the important thing is that you make your gadget ready for internationalization in the first place by using __MSG_ strings rather than the actual English strings in the module definition.
To learn more about internationalization visit here.
Where to Go Next
You're ready to start writing your first gadget. Here are some resources to help you:
For additional information consult the resources below:
- YouTube iGoogle Video
- Developer Guide
- Gadget Design Guidelines
- Internationalization
- Google Gadget Editor
- Gadget Developer FAQs
- HTML Tutorial
- JavaScript Tutorial
- XML Information
- CSS Tutorial
Third party gadgets and links are listed for your convenience. Google does not make any representation, endorsement or warranty regarding their content.
©2008 Google -
星期一, 11月 16, 2009
爆房
上星期四清晨我趕不上公司車,很有點this is not my day的感慨。輾轉抵達辦公室,在洗手間攬鏡自照,覺得自己消瘦了太多,亦無心打扮,便想起「長門盡日無梳洗,何必珍珠慰寂寥」兩句詩。復又想起我既不是江采蘋,也未有皇上寵幸,心裡便更添悵然。
中午找梁小姐想她陪陪我,但不巧梁小姐公私兩忙。我不忍太過纏擾她,便坐在她身旁畫了一幅畫,然後開會去。
六時半下班,悲傷竟如舊患襲來,我一邊走下電梯,一邊流淚。出了辦公大樓,竟下起一場瀟瀟雨,我沒有傘,便一邊啜泣一邊找計程車,我需要醫生的耳朵。
七時半,不停哭了一小時後,弄濕了一整包tempo後,我終於坐在醫生身邊。但我只能夠哭泣,我說不出任何說話。我失去了我的組織能力。醫生於是命令我立即回家休息,並且要好好進食。我哭著往配藥處,藥劑師有點擔心,但還是放我走了。
哭哭哭哭哭,我在計程車上一直哭回我的低密度新家。我忍不住打電話 ,向你求救。
其後。
其後,當我睜開眼,我看見了你的笑臉。你陪我走出客廳,白色實木大門已經被爆開,而高大威猛的男子,站滿一屋。他們是:消房員,救護員,警察及屋苑護衛。
我只是哭得累極,睡得深了。抱歉令你這樣擔心,抱歉驚動了這麼多人。
我失去了一道門,但也因此,看見了另外一條路。
閒話家常
妹妹評說:「d 人真係賤格...你又係既,著衫咪咁低啦!」
梁小姐說:「下次小心d...你又係既,行路咪咁扭啦!」
我問妹妹:「乜我好扭咩?有幾扭呀?!」
妹妹不屑:「七十樓啦你!」
還是 wai lim 疼我,他一收到消息,便辦妥公務,立即到警署接我,然後好好安慰我。
星期一, 11月 09, 2009
SOFINA Beaute 高滲透保濕精華霜
扮存在主義的我常常掛在口邊的一句說話是年歲長了可不要是甚麼大不了的事,只要對人生的閱歷同步增長,年紀都不是活到狗身上去,便無悔過去的每一天。再次拾我崇拜的錢鍾書先生的牙慧:人生據說是一部大書。而世上有一種人。他們覺得看書的目的,並不是為了寫書評或介紹。他們有一種業餘消遣者的隨便和從容,他們不慌不忙地瀏覽。每到有什麼意見,他們隨手在書邊的空白上注幾個字,寫一個問號或感嘆號,像中國舊書上的眉批,外國書裡的Marginalia。
寫在人生的邊上。
見諸日常,我很願意生活的痕跡在我人生的書眉上留下深深淺淺的腳印;但說到容貌身材,我卻瀟灑不起,因為做了三十年女人,我非常明白眉眉目目一顰一笑, 可以令人一念之天堂,一念之地獄。
張愛玲說出名要趁早,我說保養都要趁早。早些開始尋找適合的保養方法,就不用書到用時方恨少,末了只有無奈依靠天價產品。
用了SOFINA Beaute 高滲透保濕精華霜三星期,我認為這可以成為我的super cream之一。睡前把一茶匙的面霜用掌心搓暖,然後在面部及頸項打圈按摩,眼圈週邊則用點推手勢,而唇部則塗上薄薄一層。翌日一覺醒來,肌膚極為柔潤。
如果你像我一樣愛保養卻沒有耐性時間每天出門前花一小時塗塗抹抹,建議你在早上潔面後淋浴前再把一茶匙的SOFINA Beaute 高滲透保濕精華霜塗在面上,包括眼圈及嘴唇。淋浴後你會發然蒸氣已經幫助你的皮膚把面上的精華霜完全吸收,此時你只要塗上防曬便可出門。這個方法既簡便而且有助你整天維持水潤。
寫在人生的邊上。我但願能繼續帶著這種業餘消遣者的隨便和從容,體味人生,品味小資產階級的生活。我上網研究了一番SOFINA Beaute 高滲透保濕精華霜的主要成份,也是抱這種好奇好玩的心態。





