Jiadong's profileGuiding StarPhotosBlogListsMore Tools Help

Blog


    老婆和老妈同时掉在了水里终于有答案了(ZT)

     
    孟子:

    从小死了老爸,老妈拉扯我不容易,为了让我健康成长,又搬了三次的家,给我吃好的穿好的为得就是让我有出息。

    老妈和老婆落水当然先救老妈了,万恶淫为首,百善孝为先嘛!老婆死了我可以再找一个,老妈死了可不能再找一个,再找一个那就是後妈了。听说後妈没几个好的。

    ——————「世上只有妈妈好,没妈的孩子像根草。老妈,我来救你了」。扑通一声孟子跳下了水。

     

    周幽王:

    老婆和老妈落水了当然得先救老婆了。想当年俺为了逗亲爱的褒姒笑一笑,连江山都不要了,连自己的小命都不要了,何况是老妈?

    再说这死老太婆在立太子的时侯老是偏向俺弟弟,害得俺差点都没当成太子。

    ————「情深深雨蒙蒙,我对你的爱很深,褒姒我来救你了。」周幽王扑通一声跳进了水里。

     

    刘备:

    兄弟如手足,老婆如衣服,衣服破尚可补,手足断安可续?只要俺二弟和三弟没掉水里就行了,其它人俺可不管他。

    —————「老婆,老妈。你们死的好惨呀!」刘备一头栽在河边上嚎嚎大哭起来。

     

    曹操:

    宁叫我负天下人,休叫天下人负我。管它是老婆还是老妈了,只要不是我掉水里就行了。

    —————「轻轻的我走了,正如我轻轻的来,我挥一挥手,不带走一片云彩。」曹操哼著诗提著剑慢慢的走远了。

     

    屈原:

    这个世界太黑暗了,这个国家太腐败了,活著也没啥意思,不如都死了乾净,沧浪之水清兮,可以濯吾缨,沧浪之水浊兮,可以濯吾足。

    投身于河水中倒是一个挺好的归宿。

    --------「现在的一片天,是肮脏的一片天,星星在文明的天空里再也看不见老婆,老妈,我和你们一起死」屈原一边唱著一边跳进了水里。

     

    庄子:

    生又何欢,死又何哀?其始而本无生;非徒无生也,而本无形;非徒无形也。

    老妈和老婆死了就死好了,不过是从有形的元气状态回到了无形的元气状态,有啥好伤心的呢?救他们干啥呢?谁都不救啦!

    —————「对面的女孩看过来,看过来,看过来。」庄子分开著双腿像簸箕一样坐著,手中拿著一个瓦缶,边敲边唱,看著老婆和老妈慢慢地淹没在水中,满脸快快乐乐的样子。

     

    和砷:

    老婆和老妈落水就落水吧,反正我爱的是钱,钱就是我的老婆,钱就是我的亲妈。

    我说老婆和老妈呀,你们就不能穿差一点的衣服再掉到河里呀,可惜了你们头上的那些金钗手饰呀!

    -----------「有啥你别有病,没啥你别没钱。」和呻一边看著他老婆和老妈慢慢地沉下去一边叹息著。

     

    王勃:

    手心手背都是肉,老婆是自己最爱的人,老妈是自己最亲的人,怎么办呢?不管它,先跳下去,看看离谁最近就先救谁吧。

    王勃扑通一声跳了下去。

    ---------「不好,我忘了自己不会游泳了。」王勃咕噜噜地喝了几口水,也慢慢地沉了下去。一代才子王勃就是因为此事溺水而死的。

     

    孙悟空:

    俺是从石头缝里蹦出来的,没有老妈。所以不存在老妈落水的问题;俺是个和尚,没有老婆。所以不存在老婆落水的问题。

    不存在老妈落水的问题,也不存在老婆落水的问题,就更不会存在老妈和老婆同时落水的问题。

    这白痴的问题也不知道是哪个猪头想出来的,简直比俺师弟猪八戒还蠢。

     

     

    女友跟人跑了,网友安慰楼主竟成如此!(ZT)

      某论坛有一楼主伤心发贴,竟然引来一批网友安慰,然后形成如此结果……
      原帖如下:
      我和我老婆是大学里认识的,大2的时候,我们在同一个学院,故事很平常,朋友租房子我去帮忙抬东西,朋友的朋友也去帮忙,这样我就认识了朋友的朋友,也就是老婆。
      大学的生活很快,日子过去。我是个穷人,家里没有钱,父母以前是工人,现在下岗了在外打工,虽然穷,但是日子过得很快乐,我和老婆也是一样,最让她感动的是 2003年我节约钱给她买了她很喜欢的那双 NIKE的鞋,她很感动,那时候我也觉得自己很幸福。
      她的家庭情况也一般,她说以后想考公务员,而我刚上大四时去了一个房屋公司兼职做了个小职员,一个月1500。一切看来都很好。我是成都人,老婆重庆的。我在重庆读大学自然就在重庆的工作了,公司在两路口,那时候我和老婆计划着以后奋斗的生活。
      风云突变,就在大四的下学期,在毕业来临的日子里,我们和中国农业大学进行友好学生活动。她认识了里面一个大四的上海人。那天活动我也去了,我见到了那个上海人,带着个傻忽忽的眼睛,可是一看那小样就有点钱。二天后,老婆就搬出了我们租的房子。只是匆匆的来了个电话和一封信,大概意思是对我道歉,还叫我努力,鼓励我去面对未来美好的生活。
      那一时刻我的头都炸了,没有伤心的感觉,只是觉得脑袋空空的,后来她的朋友来告诉我,那个上海人很有钱,有车有房子,家里还有船。那天上海人陪她坐车出去到了,大概是到瓷器口方向有一段路不好,那上海人就出了钱找几个民工买材料把那段路修好,就这一举动彻底征服了我老婆。
      在我看来这纯粹的无聊花钱行为中,老婆没有了,毕业典礼的时候她已经在和那个上海人软语开心的聊天了。我觉得自己很失败,那天晚上我坐在通往到解放杯的公交车上,在最后一排我终于忍不住哭了。
      事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途。有时我常常笑我自己是井底之蛙,1500元要多少年才能买车买房,没有钱哪来的浪漫?让人跟你受穷?人家上海人有钱就该娶美女,我这种穷鬼要是找到了美女那不是阻碍了先进生产力的发展方向?还怎么构建和谐社会? 每当有人提起她,我的心理都这样想着。
       
      以下为其他网友安慰楼主的回帖,请欣赏:

      某网友回复:
      我是上海人,遭遇和 LZ一样.上个月我认识半年的女友和一个香港人跑了. 我收入还可以有房有车,但那HK人不但有房还有辆三菱的跑车,月薪有七八万,够我做大半年的了.最可气的是 ,我1.86她1.70那个矮子才1.60. 事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀. 希望能与LZ共勉
       
      某网友回复:
      我是香港人,遭遇和LZ一样.上个礼拜我认识才半个月的女友和一个日本鬼子跑了.我收入还可以,有房有车,还是三菱的跑车,月薪也有七八万,够 LZ做好几年的了.最可气的是,我1.60那个日本鬼子才1.55。事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀.希望能与LZ 共勉.
       
      某网友回复:
      我是火星人,遭遇和LZ一样.上个礼拜我认识才半个月的女友和哈雷慧星人跑了.我收入还可以,有房有车有飞碟,还有宇宙飞船空间站,月薪也有七八个兆。可是那哈雷慧星人开的是激光束啊!最可气的是,我0.55那个哈雷慧星人才0.5,事后想想也不怪她,人人都有追求幸福的权利 ,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀.希望能与LZ共勉.
       
      某网友回复:
      我是哈雷慧星人,遭遇和LZ一样上个礼拜我认识才半个月的女友和土星人跑了.我收入还可以,有房有车有飞碟,还有激光束,月薪也有七八个亿兆。可是那土星人开的是土星光环啊!最可气的是,我0.5那个土星人才0.05,事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀.希望能与LZ共勉.
       
      某网友回复:
      我是土星人,遭遇和LZ一样.上个礼拜我认识才半个月的女友和M78星云的奥特曼跑了.我收入还可以,有房有车有飞碟,有激光束,我还有土星光环作交通工具,月薪也有七八个万亿兆。可是那M78星云的奥特曼不用坐什么自己就能飞!最可气的是,我0.05那个奥特曼有400多米,事后想想也不怪她,人人都有追求幸福的权利,但作为一个男人只有提高自身的含金量才是正途,不需要自怨自哀.希望能与LZ共勉.
       
      某网友回复:
      我是奥特曼,遭遇和LZ一样 .上个礼拜我认识才半个月的女友和一个重庆人跑了。我收入还可以,有房有车有星球,不用交通工具自己就会飞,翻个身就十万八千里,没有月薪,自己印钞。没办法,女友说我不是人。
     

    Talking about 一 切 為 了孩 子 們

     

    Quote

    一 切 為 了孩 子 們
     
     加入 MSN 彩 虹 行 動 - 送 暖 到 汶 川   按入

    占位符

     Rainbow

    Talking about Research Beyond Google: 119 Authoritative, Invisible, and Comprehensive Resources | OEDb

     

    Quote

    Research Beyond Google: 119 Authoritative, Invisible, and Comprehensive Resources | OEDb

    Research Beyond Google: 119 Authoritative, Invisible, and Comprehensive Resources

    Published on Thursday 26th of October, 2006

    Got a research paper or thesis to write? Want to research using the Internet? Good luck. There's a lot of junk out there — outdated pages, broken links, and inaccurate information. Using Google or the Wikipedia may lead you to some results, but you can rarely be sure of accuracy. And what's more, you'll only be searching a fraction of all of the resources available to you.

    Google, the largest search database on the planet, currently has around eight billion web pages indexed. That's a lot of information. But it's nothing compared to what else is out there. Google can only index the visible web, or searchable web. But the invisible web, or deep web, is estimated to be 500 times bigger than the searchable web. The invisible web comprises databases and results of specialty search engines that the popular search engines simply are not able to index.

    Do you think your local or university librarian uses Google? Sure, but certainly not exclusively. In order to start researching like a librarian, you'll need to explore more authoritative resources, many of which are invisible. Note: Although some of the following resources are visible and indexed, they have all been included here because of their authoritative nature.

    $ = Available only by subscription.

    Topics Covered in this Article

    Deep Web Search Engines | Art | Books Online | Business | Consumer | Economic and Job Data | Finance and Investing | General Research | Government Data | International | Law and Politics | Library of Congress | Medical and Health | Science | Transportation

    Deep Web Search Engines

    To get started, try using a search engine that specializes in scouring the invisible web for results. None of these can search the entire invisible web, but they make some inroads that Google has not as of yet.

    1. Clusty — A metasearch engine that combines the results of several top search engines.
    2. Intute — A searchable database of trusted sites, reviewed and monitored by subject specialists.
    3. INFOMINE — A virtual library of Internet resources relevant to university students and faculty. Built by librarians from the University of California, California State University, the University of Detroit-Mercy, and Wake Forest University.
    4. Librarians' Internet Index — A search engine listing sites deemed trustworthy by actual human librarians, not just a Googlebot.
    5. Internet Archive — A database of tens of thousands of movies, live music, audio, texts, and home of the Wayback Machine that allows you to find old versions of web pages, over 55 billion.
    6. direct search — A list of hundreds of specialty databases and search engines. No longer maintained, but still perhaps the most complete list of the deep web.

    Art

    Hundreds of other museums all over the world have their own databases. This is just a list of the databases for a few of the most popular. Within these databases are descriptions of the work, its location, and an image of the work.

    1. Musée du Louvre — One of the oldest and most famous art galleries in the world. Contains Leonardo da Vinci's Mona Lisa and Alexandros de Antioch's Venus de Milo.
    2. Guggenheim Museum — A collection of over 160 classical and new artists, searchable by artist name, title, date, movement, medium, concept, and museum.
    3. Smithsonian National Portrait Gallery — A searchable database of more than 80,000 portrait records.
    4. The National Gallery of Art — A searchable catalog of all of the museum's 110,000 objects, with images of more than 6,000 available online.

    Books Online

    There are tens of thousands of classic books with full text available online for free. Some authors whose books are available in full text online include Jane Austen, Charles Dickens, and Fyodor Dostoevsky.

    1. The Online Books Page — A searchable database of more than 25,000 English works with full text available for free online.
    2. Bibliomania — A searchable database of free online literature from more than 2,000 classic texts.
    3. Project Gutenberg — A searchable online catalog of more than 19,000 free books with full text available online.
    4. The National Academies Press — A searchable directory of 3,000 free books online and 900 for-sale PDFs.
    5. ebrary — A searchable database of more than 20,000 full-text books.

    Business

    The most accurate quantitative business knowledge often comes from specialty search engines and business directories/databases.

    1. Explorit Now! — A portal allowing searchable access to numerous business journals and databases.
    2. AAAAgencySearch.com — A searchable database of advertising agencies from the American Association of Advertising Agencies.
    3. Agency ComPile — A searchable database of advertising and other marketing agencies.
    4. Kompass — A business to business search engine.
    5. GPO Access Economic Indicators — A portal to economic indicators from January 1998 to present.
    6. CBDNet — A searchable database of materials published by the US Department of Commerce.
    7. Hoover's — A searchable database of businesses.
    8. ThomasNet — An industrial product search directory.
    9. SBA Loan Data — A database of loan program approval activity from the Small Business Administration.
    10. GuideStar.org — A searchable database of non-profit organizations.

    Consumer

    For consumers, authoritative product reviews and pricing information often times are hidden in the deep web or among subscription-based reports.

    1. US Consumer Products Safety Commission Recalled Products — A database of recalled products, sortable by company name.
    2. Melissa Data — A directory of complete demographic data, sortable by ZIP code.
    3. Kelley Blue Book — A guide to pricing new and used vehicles.
    4. Edmunds — Another guide to pricing new and used vehicles.
    5. Consumer Reports $ — A guide to consumer product reviews, including cars, appliances, electronics, computers, personal finance, travel, and more.

    Economic and Job Data

    A wealth of information regarding microeconomic and macroeconomic data is available from government sources and other organizations.

    1. EUROPA Press Release Database — A searchable database of press releases distributed by the European Union.
    2. FreeLunch.com — A searchable directory of free economic data.
    3. Bureau of Labor Statistics — A directory of job-based and consumer economic data from the US Department of Labor.
    4. Salary Wizard Calculator — A tool that shows national average salaries adjusted by location for different jobs.
    5. Economagic — A free economic data directory containing over 200,000 data files.
    6. Penn World Tables — A database of purchasing power parity and national income data for 179 countries for the years 1950-2000.
    7. America's Job Bank — A searchable database of jobs and resumes.
    8. USAJOBS — A searchable database of federal government jobs.
    9. Regional Economic Conditions (RECON) — A database of economic data available by state, county, and MSA.

    Finance and Investing

    A variety of web-based investment analysis tools and financial statistics can only be found in the deep web.

    1. Bankrate.com — A directory of interest rates for different types of loans, mortgages, and savings accounts.
    2. InvestIQ — A database of market data from different world regions.
    3. BigCharts — A searchable database of quotes and performance charts for different stocks and mutual funds.
    4. SmartMoney.com Tools — A portal of different stock analysis tools.
    5. NASDAQ Trader — A database of trading data from the NASDAQ stock exchange.
    6. SEC Info — A searchable database of EDGAR SEC filings searchable by name, industry, business, SIC code, area code, topic, CIK, accession number, file number, date, ZIP code, and more.
    7. EDGAR Online — A database of EDGAR SEC filings searchable by ticker or company name.

    General Research

    These are good places to start researching for background knowledge on any topic. The subscription-based databases will help intensify any research by scouring numerous scholarly journals.

    1. GPO's Catalog of US Government Publications — A searchable database of federal publications, with links to those available online.
    2. Smithsonian Institution Libraries — A collection of 20 libraries from the world's largest museum complex.
    3. The National Archives — A list of all of the National Archives' research tools and databases.
    4. HighWire Press — A searchable catalog of the largest repository of free full-text, peer-reviewed content, from over 900 different journals.
    5. Education Resources Information Center (ERIC) — A catalog of more than 1.2 million bibliographic records, providing links to the full text where available. Sponsored by the US Department of Education and the Institute of Education Sciences.
    6. Encyclopædia Britannica — The authoritative encyclopedia searchable with full text online.
    7. Topix.net — A news search engine.
    8. Internet Public Library — The Internet's public library. Fully searchable.
    9. San Francisco Public Library - A list of all of the databases offered to SFPL library card holders. Not a California resident? This is just one example of many such local public libraries that offer similar services.
    10. Xrefer $ — A searchable database of 236 titles and over 2.8 million entries.
    11. LexisNexis $ — The world's largest collection of public records, unpublished opinions, forms, legal, news, and business information. Over 35,000 individual sources are searchable with full-text available online.
    12. Forrester Research $ — An independent technology and market research company, publishing in-depth research reports on a variety of subjects.
    13. Factiva $ — A searchable collection of over 10,000 individual sources.

    Government Data

    The United States government publishes data on a variety of subjects, some of which is derived from census data or CIA findings.

    1. Copyright Records (LOCIS) — A database of copyright records, searchable by documents, serials, and multimedia (including books, music, films, sound recordings, maps, software, photos, and art).
    2. American FactFinder — A repository of aggregate census bureau data searchable by city, county, or ZIP code.
    3. FedStats — A gateway to statistics from over 100 US federal agencies.
    4. United States Patent and Trademark Office — A database of patent full-text and full-page images.
    5. Historical Census Browser — A data bank of historical US census data dating back to 1790 compiled by the University of Virginia.
    6. Geospatial One Stop — A searchable database of geographic data, displayable on maps.
    7. Grants.gov — A database of grant opportunities, searchable by keyword, funding opportunity number, or CFDA number.
    8. Technology Opportunities Program Grants Database — A database of technology grants, searchable by keyword, state, and year.
    9. United States Government Printing Office (GPO) — A search engine for mutliple government databases, including US budgets, campaign reform hearings, code of federal regulations, congressional bills, unified agendas, and more.
    10. CIA Electronic Reading Room — A searchable database of declassified CIA documents.
    11. POW/MIA Databases and Documents — A datbase of POWs and MIAs information.
    12. ZIP+4 Lookup — A database of US ZIP codes and ZIP+4 codes, searchable by city or address.

    International

    Data on international economic indicators and demographics are available from US government agencies and international organizations such as World Bank.

    1. International Data Base (IDB) — A computerized data bank of statistical tables and demographic information for 228 countries and areas.
    2. FIRST — A database of military aggression and weapons holdings.
    3. Economics of Tobacco Control — A database of information regarding tobacco usage and policy in over 180 countries.
    4. Country Indicators for Foreign Policy — A directory of statistical tables indicating different countries' foreign policies.
    5. World Bank Data — A database of key development data and statistics for different countries and worldwide groups.
    6. CIA Factbook — A reference material published by the CIA, containing information on every country in the world.
    7. US International Trade Statistics — A database of international trade statistics, searchable by country or type of good.
    8. US Foreign Trade Highlights — A database of information on US international trade in goods and services.
    9. Energy Information Administration International Energy Data and Analysis — A data bank of energy balances sorted by country.

    Law and Politics

    Information on Congressional law and other legal and political matters are available online from universities, independent organizations, and the US federal government.

    1. THOMAS (Library of Congress) — A searchable database of legislative information from the Library of Congress.
    2. Law Library of Congress — The largest collection of legal materials in the world, containing over 2 million volumes.
    3. Global Legal Information Network — A searchable public database of laws, regulations, judicial decisions, and other legal sources.
    4. FindLaw — A free legal database with searchable collections of cases and codes, legal news, and an online career center.
    5. Office of Postsecondary Education Security Statistics — A searchable database of college campus crime statistics, sortable by institution type, instructional program, or campus.
    6. Bureau of Justice Statistics — A directory of legal and judicial statistics, ranging from crime to law enforcement to courts and sentencing.
    7. The Avalon Project at Yale Law School — A searchable database of documents in law, history, and diplomacy.
    8. US Congressional Documents and Debates, 1774–1873 (Library of Congress) — A directory of historical Congressional records, bills, statutes, journals, and debates from LOC's American Memory.
    9. Lobbying Database — A searchable database of firms who have spent lobbying money from 1998.
    10. Legislative Activities — A directory of the House of Representatives' bill summary, status, and text, public laws, and roll call votes.
    11. Project Vote Smart — A database of government officials and election candidates, searchable by last name or ZIP code.

    Library of Congress

    The Library of Congress (LOC) is the largest library in the world and offers catalog descriptions and some full text and images of many of its 130 million items.

    1. Library of Congress — A searchable catalog of the world's largest library, containing over 130 million items.
    2. Library of Congress Digital Collections — A searchable database of the LOC's items that have been digitized and fully available online.
    3. Library of Congress Prints and Photographs Reading Room — A searchable catalog of the Library of Congress' prints and photographs. Results include thumbnails of the items.
    4. Library of Congress Online Catalog — The LOC catalog, searchable by title, author, subject, keyword, call number, ISBN, and more.
    5. American Memory — The LOC's digital record of American history.
    6. Sound Online Inventory and Catalog (SONIC) — A portion of the LOC's audio collection, searchable by name, title, subject, and keyword.

    Medical and Health

    Scholarly medical journals as well as government agencies and independent organizations offer a variety of statistical data and other information regarding medicine and health.

    1. PubMed *NEW ADDITION* — A service of the U.S. National Library of Medicine that includes over 16 million citations from MEDLINE and other life science journals for biomedical articles back to the 1950s. Includes links to full-text articles and related resources.
    2. Department of Health National Research Register — A searchable database of records of ongoing or completed project funded by or of interest to the UK's NHS.
    3. National Institutes of Health — A searchable encyclopedia of health topics.
    4. American Hospital Directory — A free searchable directory of US hospital information.
    5. Globalhealthfacts.org — A data bank of world health information, sortable by country, disease, condition, program, or demographic.
    6. Centers for Disease Control and Prevention Data and Statistics — A data bank of statistical health information compiled by the CDC.
    7. New England Journal of Medicine $ — A scholarly medical journal with full text of current and past issues available online.

    Science

    Science journals and databases are searchable through specialty search engines, while real-time geological data is available from the USGS.

    1. ScienceResearch.com — A portal allowing searchable access to numerous scientific journals and databases.
    2. Science.gov — A searchable gateway to authoritative science information provided by US government agencies.
    3. WebCASPAR — A database of science and engineering statistical data resources.
    4. The Complete Work of Charles Darwin — All of Charles Darwin's published texts, fully searchable and available online.
    5. USGS Real-Time Water Data — A map of the United States showing real-time streamflow and water quality data of the nation's rivers and reservoirs.
    6. USGS Earthquake Hazards Program — Maps of California, Nevada, the United States, and the World, showing real-time earthquake data.
    7. Ask.com Recent Earthquake Activity — An interactive map of the world, showing real-time earthquake data.
    8. IEEE Publications $ — For engineers, this is a database of over 1.4 million documents from the Institute of Electronics and Electrical Engineers.

    Transportation

    Real-time aviation data as well as historical and current transportation safety information is available from different US federal government agencies.

    1. FAA Flight Delay Information — A map of the United States with flight delay information from the nation's largest airports.
    2. NTSB Accident Database and Synopses — The National Transportation Safety Board's database of aviation accidents, ranging from 1962 to present.
    3. NTSB Aviation Accident Statistics — A directory of aggregate aviation accident statistics from the National Transportation Safety Board
    4. National Highway Traffic Safety Administration — A database of car and car part defects, searchable by item number or car make and model.
    5. SaferCar.gov — A database of crash test safety ratings for all automobiles since 1990.
    6. fboweb.com — A real-time flight tracking service, with support for Google Earth.
    7. FlightAware — Another free flight tracking service, complete with history, graphs, and maps.

    A special thanks to Gary Price at ResourceShelf for his thoughtful suggestions.


     

    Talking about To Thine Own Self Be True

     

    Originally from Jenny's Space 

    Quote

    To Thine Own Self Be True

    How can you intelligently decide what to do with the rest of your life?  And how can you find an answer that you won’t later change on a whim?

    Many of us face this decision for the first time in our late teens and early 20s.  Some never face it at all and shrink from the magnitude of it, allowing chance to decide.  But this is a decision that can be made consciously — you just have to know how to approach it.

    If you’re a typical reader of this site, then you have a number of long-term career possibilities.  You could succeed at many different things if you put your mind to them.  The problem isn’t that you don’t have a choice — it’s that you have too many choices.  And because of the overload of choices, it’s difficult for you to commit to any of them.  Perhaps you’ve made certain commitments in the past, only to change your mind a short way down the path.

    The problem with outside-in

    Most likely you were raised to make your career choices in an outside-in manner.  Would you rather be a doctor, a lawyer, or an engineer?  Do you want to get a job, go into the family business, or become self-employed?  You scan the available options — even though they seem countless — and do your best to make a reasonable choice.  Many people would consider this an intelligent approach.

    The problem with the outside-in approach, however, is that it’s ultimately circular.

    Suppose you want to make the best choice you can regarding what to do with your life.  If you look outside yourself for the answer, you’ll see an overload of options — way too many for you to consider with any depth.  You can’t make the best choice by scanning all the possibilities.  You’ll die before you get close to finishing, and new career possibilities are being created all the time.

    So instead of best, perhaps you’re willing to settle for a good choice.  In order to know what a good choice is though, you need some kind of evaluation criteria.  How do you define the “should” in “What should you do?”  You need a context.  For example, if you’re playing a game of chess and you want to know what move to make next, you need to know the rules of the game, the current board configuration, and ideally something about your opponent.  If you don’t even know what game you’re playing, then you can’t intelligently answer the question, “What should you do?”

    And that’s the basic problem — you don’t really know what game you’re playing here on earth.  You don’t know the complete rules of the game.  None of us do.  Science and religion attempt to give us answers, but the most brilliant and respected people on both sides often disagree, and each side still has many unanswered questions.  You can jump to conclusions like many people do, but the wisest approach may be to simply admit, “There are some things I just don’t know.”

    You could take this a step further and say that if you don’t know the rules of the game, then your purpose should be to learn them.  Figure out how the world works, and then your role may become more clear.  This line of questioning leads many people into scientific and religious studies.  And that’s fine.  Humanity slowly pushes forward in these areas, but you as an individual still need to decide what piece of the puzzle to work on during your lifetime, and you’re still left swimming in a sea of choices.  But at least this line of thinking gives you a goal – to learn why you exist and what you should do with your existence.

    You’ve come full circle though.  You conclude that what you should do with your life is to figure out what you should do with your life.  Dead end.

    You’re playing a game where you don’t know all the rules, and the exact purpose of the game isn’t clear.  However, you still have to make a move.  You have no choice in that respect.  Even standing still is a valid move in the game of life.  If you look to the game for answers, the ultimate answer will be that you should make moves that will help you figure out the game.  But since you don’t know the game well enough, you still don’t know what move to make right now.  This approach simply isn’t helpful.  It just doesn’t create clarity.  It will only leave you more confused.

    Of course, you could just start making random moves to learn about life through trial and error.  That’s a valid short-term approach, but we can do better than that…

    The inside-out approach

    The inside-out approach means that instead of looking to the game for guidance, look within yourself.  Instead of asking, “What should I do?” or “What move should I make?” or “What career should I select?” just ask yourself, “What kind of player am I?”

    Regardless of what game you’re playing, you bring a unique style to it.  How would you describe that style?  What is the style in which you would most like to play the game of life?

    Are you aggressive, calculating, spontaneous, generous, compassionate, courageous, cautious, exploratory, etc?

    We’re not really talking about values here.  Values can shift around a lot.  Sometimes your career may be more important than your social life, and other times your social life may come first.  In this case we’re talking about deeply imbedded character traits.  What kind of person are you at the core of your being?

    How would you describe the “I” that is you?  What do you love most?

    I love to grow.  It’s such an imbedded part of my psyche that I can’t not grow.  Another attribute of my core self is courage.  I have an almost inborn desire to want to run towards fear instead of away from it.  And a third component is freedom.  I love having tremendous personal freedom, especially when it comes to how I use my time.

    The opposites of these attributes repel me.  The opposite of growth would be stagnation or complacency (not decline because even in a state of decline, you can still learn something from it).  The opposite of courage is cowardice.  And the opposite of freedom is confinement.  Someone who is my opposite would thus be drawn to lead a stagnant, cowardly, and confined existence.

    Once you develop a sense of what kind of player you are, you can then play the game of life by injecting your own character into it.  Whenever you don’t comprehend the rules of the game, supplement them with a part of yourself.  So if it isn’t obvious what career you should pursue, look inward instead of outward for the answer.  This will greatly narrow the field of possibilities and allow you to make a fairly intelligent choice.  The better you come to know yourself, the more intelligently you can narrow that field.  As your inward focus improves, your outer world will become more focused as well.

    Being vs. doing

    Suppose you list your core character attributes.  How do you use those to make a long-term career choice?

    First, let’s redefine the way you think about career.  Just for a moment, forget about job titles, responsibilities, goals, projects, and tasks.  Consider your career as an expression of who you are:  being instead of doing.

    If you’re an artist, your career is to create art.  But what creates a masterpiece?  Is it the brush strokes or the canvas?  Is it the education of the artist?  What creates a masterpiece is the artist.  Really it’s the artist who’s the true masterpiece, and the artwork is the physical manifestation of the artist’s inner self.  The Mona Lisa is Leonardo da Vinci.

    Once you come at this problem from the mindset of beingness, instead of doingness, your real career becomes this:  Your career is to express your inner self through the physical universe.  That’s your job description.

    Your true career is the dynamic expression of your inner being.

    Instead of thinking of your career in such narrow terms as job titles, think of your career as an outward expression of your inner self.

    If I gaze inward and see that I resonate with growth, courage, and freedom, then my career is actually to express these inner qualities out into the world.  My job is essentially just to be myself.

    Now as simplistic as this sounds, it’s actually very practical.  How would you use this mindset to make real-life career decisions?  You make your choices by asking, “Which is the best way to express my inner self?”

    For example, when faced with a career-related choice, I can ask questions like, “Which choice will yield the most growth, require the most courage, and provide the most freedom?”  These parts of my inner being shape my outward doing.  I run a personal development business (growth).  I work hard to increase web traffic (growth).  I like to tackle controversial topics (courage).  I do public speaking (courage).  I work from home and set my own hours (freedom).  I create mostly automated streams of income (freedom).

    I love this approach because it creates clarity.  The outside-in approach just doesn’t work for me.  Should I be a writer, a speaker, an Internet entrepreneur?  I can’t decide – all of them seem interesting.  But when I turn inward, I see that all of these can be parts of my career because they all harmonize with my inner self.  They’re all valid.  I don’t need to choose just one of these narrow bands; in fact, the type of “player” I am dictates that I should include all of these things under the same umbrella.

    To thine own self be true

    Do you hesitate to make a long-term career commitment because you don’t want to limit yourself?  I don’t want to limit myself either.  By using an inside-out approach to career, you don’t have to limit yourself.  You can express the whole you to the world, not just a small piece.

    Do you find your current career too limiting?  Do you enjoy your work while also wondering about all the other things you could be doing?  Why not find a way to do them too?  Stop thinking in terms of A or B, and think A and B.  What would happen if you redefined your career as the outer expression of your inner being?  What parts of your inner being are not enjoying enough outward expression?  Are you incapacitating your intellect?  Curtailing your creativity?  Squelching your sense of humor?

    Don’t turn your career into a prison for your soul.  If your inner self wants to spread out, let it.  To thine own self be true.

     

     

    堆、栈、windows内存结构,以及堆性能问题

     
    (经典转贴,作者不详)
     
    堆和栈的区别

    一、预备知识—程序的内存分配

    一个由c/C++编译的程序占用的内存分为以下几个部分
    1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
    2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
    3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 
    4、文字常量区—常量字符串就是放在这里的。 程序结束后由系统释放
    5、程序代码区—存放函数体的二进制代码。
    **例子程序 
    这是一个前辈写的,非常详细 
    //main.cpp 
    int a = 0; 全局初始化区 
    char *p1; 全局未初始化区 
    main() 

    int b; 栈 
    char s[] = "abc"; 栈 
    char *p2; 栈 
    char *p3 = "123456"; 123456\0在常量区,p3在栈上。 
    static int c =0; 全局(静态)初始化区 
    p1 = (char *)malloc(10); 
    p2 = (char *)malloc(20); 
    分配得来得10和20字节的区域就在堆区。 
    strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。 

    二、堆和栈的理论知识 

    2.1申请方式 
    stack: 
    由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间 
    heap: 
    需要程序员自己申请,并指明大小,在c中malloc函数 
    如p1 = (char *)malloc(10); 
    在C++中用new运算符 
    如p2 = (char *)malloc(10); 
    但是注意p1、p2本身是在栈中的。 

    2.2 申请后系统的响应 
    栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。 
    堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时, 会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。另外,由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。 

    2.3申请大小的限制 
    栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。 
    堆:堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。 

    2.4申请效率的比较: 
    栈由系统自动分配,速度较快。但程序员是无法控制的。 
    堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便. 
    另外,在WINDOWS下,最好的方式是用VirtualAlloc分配内存,他不是在堆,也不是在栈是直接在进程的地址空间中保留一快内存,虽然用起来最不方便。但是速度快,也最灵活。 

    2.5堆和栈中的存储内容 
    栈: 在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。 
    当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。 
    堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。 

    2.6存取效率的比较 
    char s1[] = "aaaaaaaaaaaaaaa"; 
    char *s2 = "bbbbbbbbbbbbbbbbb"; 
    aaaaaaaaaaa是在运行时刻赋值的; 
    而bbbbbbbbbbb是在编译时就确定的; 
    但是,在以后的存取中,在栈上的数组比指针所指向的字符串(例如堆)快。 
    比如: 
    #include 
    void main() 

    char a = 1; 
    char c[] = "1234567890"; 
    char *p ="1234567890"; 
    a = c[1]; 
    a = p[1]; 
    return; 

    对应的汇编代码 
    10: a = c[1]; 
    00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh] 
    0040106A 88 4D FC mov byte ptr [ebp-4],cl 
    11: a = p[1]; 
    0040106D 8B 55 EC mov edx,dword ptr [ebp-14h] 
    00401070 8A 42 01 mov al,byte ptr [edx+1] 
    00401073 88 45 FC mov byte ptr [ebp-4],al 
    第一种在读取时直接就把字符串中的元素读到寄存器cl中,而第二种则要先把指针值读到edx中,在根据edx读取字符,显然慢了。 


    2.7小结: 
    堆和栈的区别可以用如下的比喻来看出: 
    使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。 
    使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。 



    windows进程中的内存结构


    在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。 

    接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 

    首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeister)。每种变量都有不同的分配方式。先来看下面这段代码: 

    #include <stdio.h> 

    int g1=0, g2=0, g3=0; 

    int main() 

    static int s1=0, s2=0, s3=0; 
    int v1=0, v2=0, v3=0; 

    //打印出各个变量的内存地址 

    printf("0x%08x\n",&v1); //打印各本地变量的内存地址 
    printf("0x%08x\n",&v2); 
    printf("0x%08x\n\n",&v3); 
    printf("0x%08x\n",&g1); //打印各全局变量的内存地址 
    printf("0x%08x\n",&g2); 
    printf("0x%08x\n\n",&g3); 
    printf("0x%08x\n",&s1); //打印各静态变量的内存地址 
    printf("0x%08x\n",&s2); 
    printf("0x%08x\n\n",&s3); 
    return 0; 

    编译后的执行结果是: 

    0x0012ff78 
    0x0012ff7c 
    0x0012ff80 

    0x004068d0 
    0x004068d4 
    0x004068d8 

    0x004068dc 
    0x004068e0 
    0x004068e4 

    输出的结果就是变量的内存地址。其中v1,v2,v3是本地变量,g1,g2,g3是全局变量,s1,s2,s3是静态变量。你可以看到这些变量在内存是连续分布的,但是本地变量和全局变量分配的内存地址差了十万八千里,而全局变量和静态变量分配的内存是连续的。这是因为本地变量和全局/静态变量是分配在不同类型的内存区域中的结果。对于一个进程的内存空间而言,可以在逻辑上分成3个部份:代码区,静态数据区和动态数据区。动态数据区一般就是“堆栈”。“栈(stack)”和“堆(heap)”是两种不同的动态数据区,栈是一种线性结构,堆是一种链式结构。进程的每个线程都有私有的“栈”,所以每个线程虽然代码一样,但本地变量的数据都是互不干扰。一个堆栈可以通过“基地址”和“栈顶”地址来描述。全局变量和静态变量分配在静态数据区,本地变量分配在动态数据区,即堆栈中。程序通过堆栈的基地址和偏移量来访问本地变量。 


    ├———————┤低端内存区域 
    │ …… │ 
    ├———————┤ 
    │ 动态数据区 │ 
    ├———————┤ 
    │ …… │ 
    ├———————┤ 
    │ 代码区 │ 
    ├———————┤ 
    │ 静态数据区 │ 
    ├———————┤ 
    │ …… │ 
    ├———————┤高端内存区域 


    堆栈是一个先进后出的数据结构,栈顶地址总是小于等于栈的基地址。我们可以先了解一下函数调用的过程,以便对堆栈在程序中的作用有更深入的了解。不同的语言有不同的函数调用规定,这些因素有参数的压入规则和堆栈的平衡。windows API的调用规则和ANSI C的函数调用规则是不一样的,前者由被调函数调整堆栈,后者由调用者调整堆栈。两者通过“__stdcall”和“__cdecl”前缀区分。先看下面这段代码: 

    #include <stdio.h> 

    void __stdcall func(int param1,int param2,int param3) 

    int var1=param1; 
    int var2=param2; 
    int var3=param3; 
    printf("0x%08x\n",¶m1); //打印出各个变量的内存地址 
    printf("0x%08x\n",¶m2); 
    printf("0x%08x\n\n",¶m3); 
    printf("0x%08x\n",&var1); 
    printf("0x%08x\n",&var2); 
    printf("0x%08x\n\n",&var3); 
    return; 

    int main() 

    func(1,2,3); 
    return 0; 

    编译后的执行结果是: 

    0x0012ff78 
    0x0012ff7c 
    0x0012ff80 

    0x0012ff68 
    0x0012ff6c 
    0x0012ff70 


    ├———————┤<—函数执行时的栈顶(ESP)、低端内存区域 
    │ …… │ 
    ├———————┤ 
    │ var 1 │ 
    ├———————┤ 
    │ var 2 │ 
    ├———————┤ 
    │ var 3 │ 
    ├———————┤ 
    │ RET │ 
    ├———————┤<—“__cdecl”函数返回后的栈顶(ESP) 
    │ parameter 1 │ 
    ├———————┤ 
    │ parameter 2 │ 
    ├———————┤ 
    │ parameter 3 │ 
    ├———————┤<—“__stdcall”函数返回后的栈顶(ESP) 
    │ …… │ 
    ├———————┤<—栈底(基地址 EBP)、高端内存区域 


    上图就是函数调用过程中堆栈的样子了。首先,三个参数以从又到左的次序压入堆栈,先压“param3”,再压“param2”,最后压入“param1”;然后压入函数的返回地址(RET),接着跳转到函数地址接着执行(这里要补充一点,介绍UNIX下的缓冲溢出原理的文章中都提到在压入RET后,继续压入当前EBP,然后用当前ESP代替EBP。然而,有一篇介绍windows下函数调用的文章中说,在windows下的函数调用也有这一步骤,但根据我的实际调试,并未发现这一步,这还可以从param3和var1之间只有4字节的间隙这点看出来);第三步,将栈顶(ESP)减去一个数,为本地变量分配内存空间,上例中是减去12字节(ESP=ESP-3*4,每个int变量占用4个字节);接着就初始化本地变量的内存空间。由于“__stdcall”调用由被调函数调整堆栈,所以在函数返回前要恢复堆栈,先回收本地变量占用的内存(ESP=ESP+3*4),然后取出返回地址,填入EIP寄存器,回收先前压入参数占用的内存(ESP=ESP+3*4),继续执行调用者的代码。参见下列汇编代码: 

    ;--------------func 函数的汇编代码------------------- 

    :00401000 83EC0C sub esp, 0000000C //创建本地变量的内存空间 
    :00401003 8B442410 mov eax, dword ptr [esp+10] 
    :00401007 8B4C2414 mov ecx, dword ptr [esp+14] 
    :0040100B 8B542418 mov edx, dword ptr [esp+18] 
    :0040100F 89442400 mov dword ptr [esp], eax 
    :00401013 8D442410 lea eax, dword ptr [esp+10] 
    :00401017 894C2404 mov dword ptr [esp+04], ecx 

    ……………………(省略若干代码) 

    :00401075 83C43C add esp, 0000003C ;恢复堆栈,回收本地变量的内存空间 
    :00401078 C3 ret 000C ;函数返回,恢复参数占用的内存空间 
    ;如果是“__cdecl”的话,这里是“ret”,堆栈将由调用者恢复 

    ;-------------------函数结束------------------------- 


    ;--------------主程序调用func函数的代码-------------- 

    :00401080 6A03 push 00000003 //压入参数param3 
    :00401082 6A02 push 00000002 //压入参数param2 
    :00401084 6A01 push 00000001 //压入参数param1 
    :00401086 E875FFFFFF call 00401000 //调用func函数 
    ;如果是“__cdecl”的话,将在这里恢复堆栈,“add esp, 0000000C” 

    聪明的读者看到这里,差不多就明白缓冲溢出的原理了。先来看下面的代码: 

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

    void __stdcall func() 

    char lpBuff[8]="\0"; 
    strcat(lpBuff,"AAAAAAAAAAA"); 
    return; 

    int main() 

    func(); 
    return 0; 

    编译后执行一下回怎么样?哈,“"0x00414141"指令引用的"0x00000000"内存。该内存不能为"read"。”,“非法操作”喽!"41"就是"A"的16进制的ASCII码了,那明显就是strcat这句出的问题了。"lpBuff"的大小只有8字节,算进结尾的\0,那strcat最多只能写入7个"A",但程序实际写入了11个"A"外加1个\0。再来看看上面那幅图,多出来的4个字节正好覆盖了RET的所在的内存空间,导致函数返回到一个错误的内存地址,执行了错误的指令。如果能精心构造这个字符串,使它分成三部分,前一部份仅仅是填充的无意义数据以达到溢出的目的,接着是一个覆盖RET的数据,紧接着是一段shellcode,那只要着个RET地址能指向这段shellcode的第一个指令,那函数返回时就能执行shellcode了。但是软件的不同版本和不同的运行环境都可能影响这段shellcode在内存中的位置,那么要构造这个RET是十分困难的。一般都在RET和shellcode之间填充大量的NOP指令,使得exploit有更强的通用性。 


    ├———————┤<—低端内存区域 
    │ …… │ 
    ├———————┤<—由exploit填入数据的开始 
    │ │ 
    │ buffer │<—填入无用的数据 
    │ │ 
    ├———————┤ 
    │ RET │<—指向shellcode,或NOP指令的范围 
    ├———————┤ 
    │ NOP │ 
    │ …… │<—填入的NOP指令,是RET可指向的范围 
    │ NOP │ 
    ├———————┤ 
    │ │ 
    │ shellcode │ 
    │ │ 
    ├———————┤<—由exploit填入数据的结束 
    │ …… │ 
    ├———————┤<—高端内存区域 


    windows下的动态数据除了可存放在栈中,还可以存放在堆中。了解C++的朋友都知道,C++可以使用new关键字来动态分配内存。来看下面的C++代码: 

    #include <stdio.h> 
    #include <iostream.h> 
    #include <windows.h> 

    void func() 

    char *buffer=new char[128]; 
    char bufflocal[128]; 
    static char buffstatic[128]; 
    printf("0x%08x\n",buffer); //打印堆中变量的内存地址 
    printf("0x%08x\n",bufflocal); //打印本地变量的内存地址 
    printf("0x%08x\n",buffstatic); //打印静态变量的内存地址 

    void main() 

    func(); 
    return; 

    程序执行结果为: 

    0x004107d0 
    0x0012ff04 
    0x004068c0 

    可以发现用new关键字分配的内存即不在栈中,也不在静态数据区。VC编译器是通过windows下的“堆(heap)”来实现new关键字的内存动态分配。在讲“堆”之前,先来了解一下和“堆”有关的几个API函数: 

    HeapAlloc 在堆中申请内存空间 
    HeapCreate 创建一个新的堆对象 
    HeapDestroy 销毁一个堆对象 
    HeapFree 释放申请的内存 
    HeapWalk 枚举堆对象的所有内存块 
    GetProcessHeap 取得进程的默认堆对象 
    GetProcessHeaps 取得进程所有的堆对象 
    LocalAlloc 
    GlobalAlloc 

    当进程初始化时,系统会自动为进程创建一个默认堆,这个堆默认所占内存的大小为1M。堆对象由系统进行管理,它在内存中以链式结构存在。通过下面的代码可以通过堆动态申请内存空间: 

    HANDLE hHeap=GetProcessHeap(); 
    char *buff=HeapAlloc(hHeap,0,8); 

    其中hHeap是堆对象的句柄,buff是指向申请的内存空间的地址。那这个hHeap究竟是什么呢?它的值有什么意义吗?看看下面这段代码吧: 

    #pragma comment(linker,"/entry:main") //定义程序的入口 
    #include <windows.h> 

    _CRTIMP int (__cdecl *printf)(const char *, ...); //定义STL函数printf 
    /*--------------------------------------------------------------------------- 
    写到这里,我们顺便来复习一下前面所讲的知识: 
    (*注)printf函数是C语言的标准函数库中函数,VC的标准函数库由msvcrt.dll模块实现。 
    由函数定义可见,printf的参数个数是可变的,函数内部无法预先知道调用者压入的参数个数,函数只能通过分析第一个参数字符串的格式来获得压入参数的信息,由于这里参数的个数是动态的,所以必须由调用者来平衡堆栈,这里便使用了__cdecl调用规则。BTW,Windows系统的API函数基本上是__stdcall调用形式,只有一个API例外,那就是wsprintf,它使用__cdecl调用规则,同printf函数一样,这是由于它的参数个数是可变的缘故。 
    ---------------------------------------------------------------------------*/ 
    void main() 

    HANDLE hHeap=GetProcessHeap(); 
    char *buff=HeapAlloc(hHeap,0,0x10); 
    char *buff2=HeapAlloc(hHeap,0,0x10); 
    HMODULE hMsvcrt=LoadLibrary("msvcrt.dll"); 
    printf=(void *)GetProcAddress(hMsvcrt,"printf"); 
    printf("0x%08x\n",hHeap); 
    printf("0x%08x\n",buff); 
    printf("0x%08x\n\n",buff2); 

    执行结果为: 

    0x00130000 
    0x00133100 
    0x00133118 

    hHeap的值怎么和那个buff的值那么接近呢?其实hHeap这个句柄就是指向HEAP首部的地址。在进程的用户区存着一个叫PEB(进程环境块)的结构,这个结构中存放着一些有关进程的重要信息,其中在PEB首地址偏移0x18处存放的ProcessHeap就是进程默认堆的地址,而偏移0x90处存放了指向进程所有堆的地址列表的指针。windows有很多API都使用进程的默认堆来存放动态数据,如windows 2000下的所有ANSI版本的函数都是在默认堆中申请内存来转换ANSI字符串到Unicode字符串的。对一个堆的访问是顺序进行的,同一时刻只能有一个线程访问堆中的数据,当多个线程同时有访问要求时,只能排队等待,这样便造成程序执行效率下降。 

    最后来说说内存中的数据对齐。所位数据对齐,是指数据所在的内存地址必须是该数据长度的整数倍,DWORD数据的内存起始地址能被4除尽,WORD数据的内存起始地址能被2除尽,x86 CPU能直接访问对齐的数据,当他试图访问一个未对齐的数据时,会在内部进行一系列的调整,这些调整对于程序来说是透明的,但是会降低运行速度,所以编译器在编译程序时会尽量保证数据对齐。同样一段代码,我们来看看用VC、Dev-C++和lcc三个不同编译器编译出来的程序的执行结果: 

    #include <stdio.h> 

    int main() 

    int a; 
    char b; 
    int c; 
    printf("0x%08x\n",&a); 
    printf("0x%08x\n",&b); 
    printf("0x%08x\n",&c); 
    return 0; 

    这是用VC编译后的执行结果: 
    0x0012ff7c 
    0x0012ff7b 
    0x0012ff80 
    变量在内存中的顺序:b(1字节)-a(4字节)-c(4字节)。 

    这是用Dev-C++编译后的执行结果: 
    0x0022ff7c 
    0x0022ff7b 
    0x0022ff74 
    变量在内存中的顺序:c(4字节)-中间相隔3字节-b(占1字节)-a(4字节)。 

    这是用lcc编译后的执行结果: 
    0x0012ff6c 
    0x0012ff6b 
    0x0012ff64 
    变量在内存中的顺序:同上。 

    三个编译器都做到了数据对齐,但是后两个编译器显然没VC“聪明”,让一个char占了4字节,浪费内存哦。 


    基础知识: 
    堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表。允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称为入栈和出栈。有一组CPU指令可以实现对进程的内存实现堆栈访问。其中,POP指令实现出栈操作,PUSH指令实现入栈操作。CPU的ESP寄存器存放当前线程的栈顶指针,EBP寄存器中保存当前线程的栈底指针。CPU的EIP寄存器存放下一个CPU指令存放的内存地址,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行。 


    参考:《Windows下的HEAP溢出及其利用》by: isno 
    《windows核心编程》by: Jeffrey Richter 

    摘要: 讨论常见的堆性能问题以及如何防范它们。(共 9 页)

    前言
    您是否是动态分配的 C/C++ 对象忠实且幸运的用户?您是否在模块间的往返通信中频繁地使用了“自动化”?您的程序是否因堆分配而运行起来很慢?不仅仅您遇到这样的问题。几乎所有项目迟早都会遇到堆问题。大家都想说,“我的代码真正好,只是堆太慢”。那只是部分正确。更深入理解堆及其用法、以及会发生什么问题,是很有用的。

    什么是堆?
    (如果您已经知道什么是堆,可以跳到“什么是常见的堆性能问题?”部分)

    在程序中,使用堆来动态分配和释放对象。在下列情况下,调用堆操作: 

    事先不知道程序所需对象的数量和大小。

    对象太大而不适合堆栈分配程序。
    堆使用了在运行时分配给代码和堆栈的内存之外的部分内存。下图给出了堆分配程序的不同层。

    GlobalAlloc/GlobalFree:Microsoft Win32 堆调用,这些调用直接与每个进程的默认堆进行对话。

    LocalAlloc/LocalFree:Win32 堆调用(为了与 Microsoft Windows NT 兼容),这些调用直接与每个进程的默认堆进行对话。

    COM 的 IMalloc 分配程序(或 CoTaskMemAlloc / CoTaskMemFree):函数使用每个进程的默认堆。自动化程序使用“组件对象模型 (COM)”的分配程序,而申请的程序使用每个进程堆。

    C/C++ 运行时 (CRT) 分配程序:提供了 malloc() 和 free() 以及 new 和 delete 操作符。如 Microsoft Visual Basic 和 Java 等语言也提供了新的操作符并使用垃圾收集来代替堆。CRT 创建自己的私有堆,驻留在 Win32 堆的顶部。

    Windows NT 中,Win32 堆是 Windows NT 运行时分配程序周围的薄层。所有 API 转发它们的请求给 NTDLL。

    Windows NT 运行时分配程序提供 Windows NT 内的核心堆分配程序。它由具有 128 个大小从 8 到 1,024 字节的空闲列表的前端分配程序组成。后端分配程序使用虚拟内存来保留和提交页。

    在图表的底部是“虚拟内存分配程序”,操作系统使用它来保留和提交页。所有分配程序使用虚拟内存进行数据的存取。

    分配和释放块不就那么简单吗?为何花费这么长时间?

    堆实现的注意事项
    传统上,操作系统和运行时库是与堆的实现共存的。在一个进程的开始,操作系统创建一个默认堆,叫做“进程堆”。如果没有其他堆可使用,则块的分配使用“进程堆”。语言运行时也能在进程内创建单独的堆。(例如,C 运行时创建它自己的堆。)除这些专用的堆外,应用程序或许多已载入的动态链接库 (DLL) 之一可以创建和使用单独的堆。Win32 提供一整套 API 来创建和使用私有堆。有关堆函数(英文)的详尽指导,请参见 MSDN。

    当应用程序或 DLL 创建私有堆时,这些堆存在于进程空间,并且在进程内是可访问的。从给定堆分配的数据将在同一个堆上释放。(不能从一个堆分配而在另一个堆释放。)

    在所有虚拟内存系统中,堆驻留在操作系统的“虚拟内存管理器”的顶部。语言运行时堆也驻留在虚拟内存顶部。某些情况下,这些堆是操作系统堆中的层,而语言运行时堆则通过大块的分配来执行自己的内存管理。不使用操作系统堆,而使用虚拟内存函数更利于堆的分配和块的使用。

    典型的堆实现由前、后端分配程序组成。前端分配程序维持固定大小块的空闲列表。对于一次分配调用,堆尝试从前端列表找到一个自由块。如果失败,堆被迫从后端(保留和提交虚拟内存)分配一个大块来满足请求。通用的实现有每块分配的开销,这将耗费执行周期,也减少了可使用的存储空间。

    Knowledge Base 文章 Q10758,“用 calloc() 和 malloc() 管理内存” (搜索文章编号), 包含了有关这些主题的更多背景知识。另外,有关堆实现和设计的详细讨论也可在下列著作中找到:“Dynamic Storage Allocation: A Survey and Critical Review”,作者 Paul R. Wilson、Mark S. Johnstone、Michael Neely 和 David Boles;“International Workshop on Memory Management”, 作者 Kinross, Scotland, UK, 1995 年 9 月(http://www.cs.utexas.edu/users/oops/papers.html)(英文)。

    Windows NT 的实现(Windows NT 版本 4.0 和更新版本) 使用了 127 个大小从 8 到 1,024 字节的 8 字节对齐块空闲列表和一个“大块”列表。“大块”列表(空闲列表[0]) 保存大于 1,024 字节的块。空闲列表容纳了用双向链表链接在一起的对象。默认情况下,“进程堆”执行收集操作。(收集是将相邻空闲块合并成一个大块的操作。)收集耗费了额外的周期,但减少了堆块的内部碎片。

    单一全局锁保护堆,防止多线程式的使用。(请参见“Server Performance and Scalability Killers”中的第一个注意事项, George Reilly 所著,在 “MSDN Online Web Workshop”上(站点:http://msdn.microsoft.com/workshop/server/iis/tencom.asp(英文)。)单一全局锁本质上是用来保护堆数据结构,防止跨多线程的随机存取。若堆操作太频繁,单一全局锁会对性能有不利的影响。

    什么是常见的堆性能问题?
    以下是您使用堆时会遇到的最常见问题: 

    分配操作造成的速度减慢。光分配就耗费很长时间。最可能导致运行速度减慢原因是空闲列表没有块,所以运行时分配程序代码会耗费周期寻找较大的空闲块,或从后端分配程序分配新块。


    释放操作造成的速度减慢。释放操作耗费较多周期,主要是启用了收集操作。收集期间,每个释放操作“查找”它的相邻块,取出它们并构造成较大块,然后再把此较大块插入空闲列表。在查找期间,内存可能会随机碰到,从而导致高速缓存不能命中,性能降低。


    堆竞争造成的速度减慢。当两个或多个线程同时访问数据,而且一个线程继续进行之前必须等待另一个线程完成时就发生竞争。竞争总是导致麻烦;这也是目前多处理器系统遇到的最大问题。当大量使用内存块的应用程序或 DLL 以多线程方式运行(或运行于多处理器系统上)时将导致速度减慢。单一锁定的使用—常用的解决方案—意味着使用堆的所有操作是序列化的。当等待锁定时序列化会引起线程切换上下文。可以想象交叉路口闪烁的红灯处走走停停导致的速度减慢。 
    竞争通常会导致线程和进程的上下文切换。上下文切换的开销是很大的,但开销更大的是数据从处理器高速缓存中丢失,以及后来线程复活时的数据重建。

    堆破坏造成的速度减慢。造成堆破坏的原因是应用程序对堆块的不正确使用。通常情形包括释放已释放的堆块或使用已释放的堆块,以及块的越界重写等明显问题。(破坏不在本文讨论范围之内。有关内存重写和泄漏等其他细节,请参见 Microsoft Visual C++(R) 调试文档 。)


    频繁的分配和重分配造成的速度减慢。这是使用脚本语言时非常普遍的现象。如字符串被反复分配,随重分配增长和释放。不要这样做,如果可能,尽量分配大字符串和使用缓冲区。另一种方法就是尽量少用连接操作。
    竞争是在分配和释放操作中导致速度减慢的问题。理想情况下,希望使用没有竞争和快速分配/释放的堆。可惜,现在还没有这样的通用堆,也许将来会有。

    在所有的服务器系统中(如 IIS、MSProxy、DatabaseStacks、网络服务器、 Exchange 和其他), 堆锁定实在是个大瓶颈。处理器数越多,竞争就越会恶化。

    尽量减少堆的使用
    现在您明白使用堆时存在的问题了,难道您不想拥有能解决这些问题的超级魔棒吗?我可希望有。但没有魔法能使堆运行加快—因此不要期望在产品出货之前的最后一星期能够大为改观。如果提前规划堆策略,情况将会大大好转。调整使用堆的方法,减少对堆的操作是提高性能的良方。

    如何减少使用堆操作?通过利用数据结构内的位置可减少堆操作的次数。请考虑下列实例:

    struct ObjectA {
       // objectA 的数据 
    }

    struct ObjectB {
       // objectB 的数据 
    }

    // 同时使用 objectA 和 objectB

    //
    // 使用指针 
    //
    struct ObjectB {
       struct ObjectA * pObjA;
       // objectB 的数据 
    }

    //
    // 使用嵌入
    //
    struct ObjectB {
       struct ObjectA pObjA;
       // objectB 的数据 
    }

    //
    // 集合 – 在另一对象内使用 objectA 和 objectB
    //

    struct ObjectX {
       struct ObjectA  objA;
       struct ObjectB  objB;
    }

    避免使用指针关联两个数据结构。如果使用指针关联两个数据结构,前面实例中的对象 A 和 B 将被分别分配和释放。这会增加额外开销—我们要避免这种做法。


    把带指针的子对象嵌入父对象。当对象中有指针时,则意味着对象中有动态元素(百分之八十)和没有引用的新位置。嵌入增加了位置从而减少了进一步分配/释放的需求。这将提高应用程序的性能。


    合并小对象形成大对象(聚合)。聚合减少分配和释放的块的数量。如果有几个开发者,各自开发设计的不同部分,则最终会有许多小对象需要合并。集成的挑战就是要找到正确的聚合边界。


    内联缓冲区能够满足百分之八十的需要(aka 80-20 规则)。个别情况下,需要内存缓冲区来保存字符串/二进制数据,但事先不知道总字节数。估计并内联一个大小能满足百分之八十需要的缓冲区。对剩余的百分之二十,可以分配一个新的缓冲区和指向这个缓冲区的指针。这样,就减少分配和释放调用并增加数据的位置空间,从根本上提高代码的性能。


    在块中分配对象(块化)。块化是以组的方式一次分配多个对象的方法。如果对列表的项连续跟踪,例如对一个 {名称,值} 对的列表,有两种选择:选择一是为每一个“名称-值”对分配一个节点;选择二是分配一个能容纳(如五个)“名称-值”对的结构。例如,一般情况下,如果存储四对,就可减少节点的数量,如果需要额外的空间数量,则使用附加的链表指针。 
    块化是友好的处理器高速缓存,特别是对于 L1-高速缓存,因为它提供了增加的位置 —不用说对于块分配,很多数据块会在同一个虚拟页中。

    正确使用 _amblksiz。C 运行时 (CRT) 有它的自定义前端分配程序,该分配程序从后端(Win32 堆)分配大小为 _amblksiz 的块。将 _amblksiz 设置为较高的值能潜在地减少对后端的调用次数。这只对广泛使用 CRT 的程序适用。
    使用上述技术将获得的好处会因对象类型、大小及工作量而有所不同。但总能在性能和可升缩性方面有所收获。另一方面,代码会有点特殊,但如果经过深思熟虑,代码还是很容易管理的。

    其他提高性能的技术
    下面是一些提高速度的技术: 

    使用 Windows NT5 堆 
    由于几个同事的努力和辛勤工作,1998 年初 Microsoft Windows(R) 2000 中有了几个重大改进:

    改进了堆代码内的锁定。堆代码对每堆一个锁。全局锁保护堆数据结构,防止多线程式的使用。但不幸的是,在高通信量的情况下,堆仍受困于全局锁,导致高竞争和低性能。Windows 2000 中,锁内代码的临界区将竞争的可能性减到最小,从而提高了可伸缩性。


    使用 “Lookaside”列表。堆数据结构对块的所有空闲项使用了大小在 8 到 1,024 字节(以 8-字节递增)的快速高速缓存。快速高速缓存最初保护在全局锁内。现在,使用 lookaside 列表来访问这些快速高速缓存空闲列表。这些列表不要求锁定,而是使用 64 位的互锁操作,因此提高了性能。


    内部数据结构算法也得到改进。
    这些改进避免了对分配高速缓存的需求,但不排除其他的优化。使用 Windows NT5 堆评估您的代码;它对小于 1,024 字节 (1 KB) 的块(来自前端分配程序的块)是最佳的。GlobalAlloc() 和 LocalAlloc() 建立在同一堆上,是存取每个进程堆的通用机制。如果希望获得高的局部性能,则使用 Heap(R) API 来存取每个进程堆,或为分配操作创建自己的堆。如果需要对大块操作,也可以直接使用 VirtualAlloc() / VirtualFree() 操作。

    上述改进已在 Windows 2000 beta 2 和 Windows NT 4.0 SP4 中使用。改进后,堆锁的竞争率显著降低。这使所有 Win32 堆的直接用户受益。CRT 堆建立于 Win32 堆的顶部,但它使用自己的小块堆,因而不能从 Windows NT 改进中受益。(Visual C++ 版本 6.0 也有改进的堆分配程序。)

    使用分配高速缓存 
    分配高速缓存允许高速缓存分配的块,以便将来重用。这能够减少对进程堆(或全局堆)的分配/释放调用的次数,也允许最大限度的重用曾经分配的块。另外,分配高速缓存允许收集统计信息,以便较好地理解对象在较高层次上的使用。

    典型地,自定义堆分配程序在进程堆的顶部实现。自定义堆分配程序与系统堆的行为很相似。主要的差别是它在进程堆的顶部为分配的对象提供高速缓存。高速缓存设计成一套固定大小(如 32 字节、64 字节、128 字节等)。这一个很好的策略,但这种自定义堆分配程序丢失与分配和释放的对象相关的“语义信息”。 

    与自定义堆分配程序相反,“分配高速缓存”作为每类分配高速缓存来实现。除能够提供自定义堆分配程序的所有好处之外,它们还能够保留大量语义信息。每个分配高速缓存处理程序与一个目标二进制对象关联。它能够使用一套参数进行初始化,这些参数表示并发级别、对象大小和保持在空闲列表中的元素的数量等。分配高速缓存处理程序对象维持自己的私有空闲实体池(不超过指定的阀值)并使用私有保护锁。合在一起,分配高速缓存和私有锁减少了与主系统堆的通信量,因而提供了增加的并发、最大限度的重用和较高的可伸缩性。

    需要使用清理程序来定期检查所有分配高速缓存处理程序的活动情况并回收未用的资源。如果发现没有活动,将释放分配对象的池,从而提高性能。

    可以审核每个分配/释放活动。第一级信息包括对象、分配和释放调用的总数。通过查看它们的统计信息可以得出各个对象之间的语义关系。利用以上介绍的许多技术之一,这种关系可以用来减少内存分配。

    分配高速缓存也起到了调试助手的作用,帮助您跟踪没有完全清除的对象数量。通过查看动态堆栈返回踪迹和除没有清除的对象之外的签名,甚至能够找到确切的失败的调用者。

    MP 堆 
    MP 堆是对多处理器友好的分布式分配的程序包,在 Win32 SDK(Windows NT 4.0 和更新版本)中可以得到。最初由 JVert 实现,此处堆抽象建立在 Win32 堆程序包的顶部。MP 堆创建多个 Win32 堆,并试图将分配调用分布到不同堆,以减少在所有单一锁上的竞争。

    本程序包是好的步骤 —一种改进的 MP-友好的自定义堆分配程序。但是,它不提供语义信息和缺乏统计功能。通常将 MP 堆作为 SDK 库来使用。如果使用这个 SDK 创建可重用组件,您将大大受益。但是,如果在每个 DLL 中建立这个 SDK 库,将增加工作设置。

    重新思考算法和数据结构 
    要在多处理器机器上伸缩,则算法、实现、数据结构和硬件必须动态伸缩。请看最经常分配和释放的数据结构。试问,“我能用不同的数据结构完成此工作吗?”例如,如果在应用程序初始化时加载了只读项的列表,这个列表不必是线性链接的列表。如果是动态分配的数组就非常好。动态分配的数组将减少内存中的堆块和碎片,从而增强性能。

    减少需要的小对象的数量减少堆分配程序的负载。例如,我们在服务器的关键处理路径上使用五个不同的对象,每个对象单独分配和释放。一起高速缓存这些对象,把堆调用从五个减少到一个,显著减少了堆的负载,特别当每秒钟处理 1,000 个以上的请求时。

    如果大量使用“Automation”结构,请考虑从主线代码中删除“Automation BSTR”,或至少避免重复的 BSTR 操作。(BSTR 连接导致过多的重分配和分配/释放操作。)

    摘要
    对所有平台往往都存在堆实现,因此有巨大的开销。每个单独代码都有特定的要求,但设计能采用本文讨论的基本理论来减少堆之间的相互作用。 

    评价您的代码中堆的使用。


    改进您的代码,以使用较少的堆调用:分析关键路径和固定数据结构。


    在实现自定义的包装程序之前使用量化堆调用成本的方法。


    如果对性能不满意,请要求 OS 组改进堆。更多这类请求意味着对改进堆的更多关注。


    要求 C 运行时组针对 OS 所提供的堆制作小巧的分配包装程序。随着 OS 堆的改进,C 运行时堆调用的成本将减小。


    操作系统(Windows NT 家族)正在不断改进堆。请随时关注和利用这些改进。
    Murali Krishnan 是 Internet Information Server (IIS) 组的首席软件设计工程师。从 1.0 版本开始他就设计 IIS,并成功发行了 1.0 版本到 4.0 版本。Murali 组织并领导 IIS 性能组三年 (1995-1998), 从一开始就影响 IIS 性能。他拥有威斯康星州 Madison 大学的 M.S.和印度 Anna 大学的 B.S.。工作之外,他喜欢阅读、打排球和家庭烹饪。


    我在学习对象的生存方式的时候见到一种是在堆栈(stack)之中,如下  
    CObject  object;  
    还有一种是在堆(heap)中  如下  
    CObject*  pobject=new  CObject();  
     
    请问  
    (1)这两种方式有什么区别?  
    (2)堆栈与堆有什么区别??   
     
    ---------------------------------------------------------------  
     
    1)  about  stack,  system  will  allocate  memory  to  the  instance  of  object  automatically,  and  to  the
     heap,  you  must  allocate  memory  to  the  instance  of  object  with  new  or  malloc  manually.  
    2)  when  function  ends,  system  will  automatically  free  the  memory  area  of  stack,  but  to  the 
    heap,  you  must  free  the  memory  area  manually  with  free  or  delete,  else  it  will  result  in  memory
    leak.  
    3)栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。  
    4)堆上分配的内存可以有我们自己决定,使用非常灵活。  

    THE END

    终于面世了。

     
    在今年3月到7月这将近半年的时间里,我所有的工作都在这里了。最上边的Internet Explorer 6 for Windows Embedded CE这部分。(就是不知道为什么这种文档里居然还有单词拼写、语法等低级错误。确实,不是第一次发现某些老外干的活实在有待商榷。)
     
    做的事很小,能够影响到的人也很少很少,这是我的工作。每天忙忙碌碌,做着微不足道的事情,生活也许就是这样。
     
    无论如何,看着这点东西总还是有安慰的感觉。
     

    几乎忘了这里。

     
    没有时间安静下来好好想想自己所追求的是什么
     
    前面是什么样的生活在等着我,我要将它如何改变。
     
    我为什么还是在这个待了7年还是觉得陌生的城市
     
    为什么我坚持着远离亲人、远离爱人。
     
    梦想之所以成为梦想,因为它永远无法实现
     
    我的梦是不是太多了。
     
    为什么收到promotion mail却一点兴奋的感觉都没有
     
    人说生活总是会时而对你微笑。是我视而不见还是我在拒绝。
     
    --你好吗?想说这句话,想看你的脸。
     
    老板说,工作是做不完的,即使1天给你48个小时
     
    so... don't take your notebook back home, take vacation between whiles, enjoy your family, share life with friends...etc.
     
    可是很多时候根本由不得你。因此某些话挂在嘴边,that's fine. 但不要付诸行动。
     
    那天我忽然发现今年是第十年
     
    是的,我们相识十年了
     
    你说,确实,很多人你认识十年了,还有更多的人你认识二十年了。
     
    那次我躺在海面上,随着海浪起伏,我完全放开了自己,感觉很不错。
     
    很想什么都不去想,什么都不理。可是,
     
    00110100111110110000101111101010000101000...
     

    传说中的IPHONE

     
    前几天老板带过来一个iphone,有机会深刻体验竞争对手的这款so coooool的...不是phone,也不是微型pc, it's an innovation。
     
    毫无疑问当初windows mobile带给我很大震撼。而iphone带给我的决不是“震撼”能形容的。
     
    apple所追求的core values总是能带给我们最好的user experience。apple在告诉我们什么叫AMAZING:
    **horizental/vertical detection
    **multi-touch
    ***Smart & Simple
    *rich web browsing
    zoom everywhere & everything
    iTunes & YouTube built in
    ...
     
    即使我更关心的是结合iphone的safari,但无论如何也没办法bypass其他的一切。
     
     so what should we do next...
     

    _千字文

                                     千字文

                                     周兴嗣
      
                       [粱] 敕员外散骑侍郎 周兴嗣 撰
                      

      天地玄黄 宇宙洪荒 日月盈昃 辰宿列张 寒来暑往 秋收冬藏
      闰馀成岁 律吕调阳 云腾致雨 露结为霜 金生丽水 玉出昆冈
      剑号巨阙 珠称夜光 果珍李柰 菜重芥姜 海咸河淡 鳞潜羽翔
      龙师火帝 鸟官人皇 始制文字 乃服衣裳 推位让国 有虞陶唐
      吊民伐罪 周发殷汤 坐朝问道 垂拱平章 爱育黎首 臣伏戎羌
      遐迩一体 率宾归王 鸣凤在竹 白驹食场 化被草木 赖及万方
      盖此身发 四大五常 恭惟鞠养 岂敢毁伤 女慕贞洁 男效才良
      知过必改 得能莫忘 罔谈彼短 靡恃己长 信使可复 器欲难量
      墨悲丝染 诗赞羔羊 景行维贤 克念作圣 德建名立 形端表正
      空谷传声 虚堂习听 祸因恶积 福缘善庆 尺璧非宝 寸阴是竞
      资父事君 曰严与敬 孝当竭力 忠则尽命 临深履薄 夙兴温凊
      似兰斯馨 如松之盛 川流不息 渊澄取映 容止若思 言辞安定
      笃初诚美 慎终宜令 荣业所基 籍甚无竟 学优登仕 摄职从政
      存以甘棠 去而益咏 乐殊贵贱 礼别尊卑 上和下睦 夫唱妇随
      外受傅训 入奉母仪 诸姑伯叔 犹子比儿 孔怀兄弟 同气连枝
      交友投分 切磨箴规 仁慈隐恻 造次弗离 节义廉退 颠沛匪亏
      性静情逸 心动神疲 守真志满 逐物意移 坚持雅操 好爵自縻
      都邑华夏 东西二京 背邙面洛 浮渭据泾 宫殿盘郁 楼观飞惊
      图写禽兽 画彩仙灵 丙舍傍启 甲帐对楹 肆筵设席 鼓瑟吹笙
      升阶纳陛 弁转疑星 右通广内 左达承明 既集坟典 亦聚群英
      杜稿钟隶 漆书壁经 府罗将相 路侠槐卿 户封八县 家给千兵
      高冠陪辇 驱毂振缨 世禄侈富 车驾肥轻 策功茂实 勒碑刻铭
      磻溪伊尹 佐时阿衡 奄宅曲阜 微旦孰营 桓公匡合 济弱扶倾
      绮回汉惠 说感武丁 俊乂密勿 多士寔宁 晋楚更霸 赵魏困横
      假途灭虢 践土会盟 何遵约法 韩弊烦刑 起翦颇牧 用军最精
      宣威沙漠 驰誉丹青 九州禹迹 百郡秦并 岳宗泰岱 禅主云亭
      雁门紫塞 鸡田赤城 昆池碣石 巨野洞庭 旷远绵邈 岩岫杳冥
      治本于农 务资稼穑 俶载南亩 我艺黍稷 税熟贡新 劝赏黜陟
      孟轲敦素 史鱼秉直 庶几中庸 劳谦谨敕 聆音察理 鉴貌辨色
      贻厥嘉猷 勉其祗植 省躬讥诫 宠增抗极 殆辱近耻 林皋幸即
      两疏见机 解组谁逼 索居闲处 沉默寂寥 求古寻论 散虑逍遥
      欣奏累遣 戚谢欢招 渠荷的历 园莽抽条 枇杷晚翠 梧桐蚤凋
      陈根委翳 落叶飘摇 游鹍独运 凌摩绛霄 耽读玩市 寓目囊箱
      易輶攸畏 属耳垣墙 具膳餐饭 适口充肠 饱饫烹宰 饥厌糟糠
      亲戚故旧 老少异粮 妾御绩纺 侍巾帷房 纨扇圆絜 银烛炜煌
      昼眠夕寐 蓝笋象床 弦歌酒宴 接杯举觞 矫手顿足 悦豫且康
      嫡后嗣续 祭祀烝尝 稽颡再拜 悚惧恐惶 笺牒简要 顾答审详
      骸垢想浴 执热愿凉 驴骡犊特 骇跃超骧 诛斩贼盗 捕获叛亡
      布射僚丸 嵇琴阮啸 恬笔伦纸 钧巧任钓 释纷利俗 竝皆佳妙
      毛施淑姿 工颦妍笑 年矢每催 曦晖朗曜 璇玑悬斡 晦魄环照
      指薪修祜 永绥吉劭 矩步引领 俯仰廊庙 束带矜庄 徘徊瞻眺
      孤陋寡闻 愚蒙等诮 谓语助者 焉哉乎也
     
     
    _:千字文共1000字,只有1个字出现一次重复
     
     
     

    八月飞雪

     
    最近北京一直下雨。昨儿我就和同事念叨这天要下雪就好了。
     
    到下午真下起雪来了。很让我崩溃。
     
    虽然是在很小的范围内下了很小的雪。 有情是肯定的。
     
     

    房地产是谁的噩梦

     

     

    本文以最浅显得道理阐述经济的原理,进而阐述经济的真相。不会有任何所谓的学术妓女们常用来欺骗人民的深奥的学术理论,还事实以清白,真相只有一个,让我们擦亮眼睛,洞观今天发生的一切。
      
      我不是经济学家,但我比经济学诚实,本文在以下几方面阐述中国经济的真相。
      
      1、什么是经济发展?
      
      2、什么是对外贸易?
      
      3、什么是通货膨胀?
      
      4、房价能绑架中国经济吗?
      
      5、房价和通货膨胀有关系吗?
      
      6、房价高涨的原动力是什么?
      
      7、房价一直涨下去,开发商会笑还是会哭?什么情况下会笑?什么情况下会哭?
      
      8、坐在华尔街办公室的财团们是如何吸干中国山区一个农民的血汗的
      
      9、在有关这场围绕房价和通货膨胀之间的各方博弈中可能选择的中庸路线

    ******************************************************************************
      
      1 什么是经济发展?
      
      简单的讲经济发展就是有钱,但钱从何来?钱只能印出来。那么到底是什么使印钞机不停的运转?
      
      假设一个岛上有1000口人,与世隔绝,人与人之间交换物品过活,但有时候你手里用来交换的东西不一定就是对方想要的,怎么办?于是人们就用都喜欢的金银作为交换的东西,于是交换方便了。但金银要磨损,携带也不方便,当交换活动频繁时,发现这个东西太繁琐,限制了交换活动,于是为了解决这个问题,想了一个办法,就是由岛上的管理者发行一种符号,用它来代替金银,于是钞票出现了。
      
      刚开始这种钞票可以随时得兑换金银。大家都很放心,因为钞票就是金银。可是岛上金银的产量太小,当人们的交换活动更加频繁时,钞票不够用了,只能暂停交换。暂停交换的后果就是大家不生产别人想要的东西了,因为虽然别人用,但交换不出去,套用现在的话说就是经济发展减速了。
      
      于是大家想了一个办法,成立一家钱庄,这个钱庄是大家的,由钱庄来发行钞票,印出的钞票借给想用钱的人,然后这个人有钱了再还给钱庄。于是银行就出现了。
      
      银行的出现,能保证交换活动更持续的进行,大家都拼命的生产,岛上的东西越来越多,银行根据产品的生产数量,不停的印制钞票,以保证交换能更深入的进行。
      
      后来人们的交换活动更频繁了,一家钱庄太少了,于是出现了很多钱庄,总要有个管钱庄的吧,于是指定一家钱庄管理其他钱庄,并且钞票只能由这家钱庄印刷,然后通过其他钱庄借给用钱的人,中央银行就这么也出现了。
    ******************************************************************************
       2、什么是对外贸易?
      
      有一天岛上的人发明了船,于是就到处划船跑,发现了另一个岛屿,那上面也有人,也有钞票,也像自己岛上这么活动。但自己岛上生产的东西多,那个岛上生产的东西少,1元钱在自己的岛上能买1斤大米,那个岛上的一元钱只能买半斤大米,于是另外岛上的钱来这个岛上买东西时只能2元换1元才行。于是汇率出现了。算好汇率后,他们开始互相买卖东西到对方岛上,这就是对外贸易。对外贸易丰富了人们的生活生产需要,使交换活动到了一个空前的高潮。
      
      
      3、什么是通货膨胀?
      
      由于岛上生产的产品太多了,以至于没法准确估计到底该发行多少钞票,发行多了的时候,因为没有那么多产品可买,产品就开始涨价,发行少了呢就开始降价,为了保证价格稳定,央行要求各钱庄要把一部分钱放在央行里面用来调节产品的价格,根据价格情况多放和少放。这就是存款准备金率。
      
      可是有一部分聪明人开始怎么才能把钱弄到自己手上,他在海边捡了一颗石子,说这个石子值100万快钱,把它卖给了一个人,这个人觉得整个岛上的钱加一起也没有100万啊,怎么办,于是向钱庄借,钱庄也没有这么多钱,于是把印钞机打开,印了这100万,借给了他买了这个石子。
      
      然后这个人开始卖这个石子,100万卖给了第二个人,由于第一个卖石子的人把钱花了,所以岛上的钱多了,所以这一百万可以筹集到,多买些产品就有了。但当把这个石子以200万转让的时候,钱庄只能又印了100万钞票,就这样钞票越印越多,可是当这个石子不停的流动转让时,大家并不觉得岛上的钱多,产品价格还是原来的那样。可是当这个石子不流通或流通的慢时,大家觉得钱多了,可是如果当持有石子的人把它扔到大海里,那就等于岛上凭空多出N多个100万来,怎么办,央行最害怕的就是这颗石子没了。它没了岛上产品的价格就会飞涨,就会通货膨胀。那么持有石子的人就绑架了岛上的经济。
    ******************************************************************************
       4、房价能绑架中国经济吗?
      
      中国的房地产已经使中国央行发行了太多的人民币,如果房价下降,等于把那颗石子投进了海里,那么多印出来的钱会使中国产品价格飞涨,会发生严重的通货膨胀。
      
      看似房价与石子毫无相干,可是他们的属性是一样的,就是价格和价值严重的背离。实际上房地产的崩盘受害最大的并不是中国的商业银行,而是整个中国经济体系。为什么go-vern-ment迟迟没有把房价降下来,不是降不下来,如果真想降房价,只需要一道政令,房地产价格会在一夜之间土崩瓦解。可是后果谁能承担,严重通货膨胀谁来负责?
      
      房地产业已经绑架了中国的经济,是无可置疑的,是客观实在的,没有人能改变。
      
      不管谁是总理,廉洁也好,贪污也好,都希望社会和谐,可这是一个棘手的问题。
    5
    、房价和通货膨胀有关系吗?
      
      可更棘手的问题还不仅仅在这里。如果降房价,面对的是马上的通货膨胀,可不降房价,那么面对的就是更严重的通货膨胀,何去何从?
      
      所以最可靠的办法就是稳定房价,然后在社会产品增加时,减少货币的投放量,加上其他政策如加息、增加商业银行准备金率、缩小信贷规模等辅助手段,来使中国经济软着陆,这是最好的办法,我们看到的一切政令也是这个逻辑。不信的话,可以查阅一下近年来go-vern-ment发布的一系列调控房地产业的措施。
      
      可是为什么房价不稳定而且更加的疯长呢?难道是KFSgo-vern-ment在博弈吗?告诉你在中国没有人能和D叫板,几个肚子大点的KFS是没有这个实力的。实际上是幕后的另一只黑手在和中国go-vern-ment博弈,这支黑手就是外资,以美国为代表的帝国主义攫取中国人民血汗的黑手。
    ******************************************************************************
      6、房价高涨的原动力是什么?
      
      使房价上涨的动力很多,房价上涨对其有利的人就是动力之一,比如:为了GDP和个人利益的地方go-vern-ment、为了赚钱的KFS、炒房族、以至于买了房的所谓房奴都是是房价上涨的动力,可是最大的原动力不是这些,是外资,是美国的以攫取超额利润的各大财团。
      
       KFS作为商人,为了赚取高额利润不是什么伤天害理的事情,可是各行各业都有商人,难道想赚就有吗?那除非是神话。房地产业的开发商也一样,不是他们想赚多少就有多少的。根据价值规律,当商品的价格和价值严重背离时,会有一种趋向正常价格回归的力量钳制价格的上涨,可是在中国的房地产业,这种规律似乎不起作用,一个重要的原因是忽视了一个参考范围的原因,如果以中国经济本身而言确实打破了这个规律,可是目前的情况是有一股力量在维持着房地产业的价格,即托市,那么谁在托市呢?
      
       谁能在房地产业失控能得到巨额利润的人就是托市的人。
      
      讨论这个问题前,现看一下中国的外汇储备情况。中国的外汇储备在近几年迅速由12千亿突破万亿,并且还在迅速的增长,难道是中国人民奋发图强,挣来的吗?这个不需要证明,看中国的GDP增幅就知道,外汇储备的增长速度明显大于GDP的增幅。显然不是挣来的,那么除了挣来的一部分,那么就是所谓的国际热钱的涌入,而国际热钱的涌入的目的只有一个,就是要取得高额的回报。
      
      国际热钱进入中国市场后,首先要兑换成人民币,那么一下子哪有这么多人民币呢?只有一个办法就是让印钞机没日没夜的工作,然后这笔钱用来托住已是烫手山芋的房地产市场,就是拼命的投资房地产业,当房地产价格因背离价值而向下波动时,通过托市再把它抬高,反复如此,给人的表象就是房产价格决没有偏离价值。导致房价越涨越高。
      
      而KFS呢,他们一到房子将要卖不出去的时候,就有人出高价买下来,他们怎么会降价,如果没有这部分资金在运作,别说是KFS联盟,就是全国只有一个KFS,价格也会降下来,没有人买了,难道等房子发霉吗?
      
       那么外资持有这么多高价房产做什么?不怕砸到手里吗?
      
      不怕!为什么呢?在这个资本运作的过程中,有一个冤大头在最底下接着呢,是谁呢?就是中国的商业银行,由于火爆的房地产市场,一流的流通性,近年来没有看到任何萎缩的迹象,放了贷款就盈利,为什么不贷款呢?没有理由不放贷款。
      
      加之中国老百姓买房的心情,外资可以轻易的把高价房转嫁到中国的银行和消费者身上,连炒房的农民都能赚到一杯羹,职业的外资会赔钱吗?
      
     
      ******************************************************************************
      7、房价一直涨下去,开发商会笑还是会哭?什么情况下会笑?什么情况下会哭?
      
      在中国go-vern-ment近几年来密集的几十道金牌的调控下,房价还是如脱了缰的野马一样狂奔不止。暂且不论何时能停止上涨的势头,毕竟房价在目前还是上涨的,所以我们就看看房价上涨不止会带来什么。
      
      首先:由于GDP上涨,中国go-vern-ment为了维持上文说的保持产品交换的继续要不断地投放人民币,即开动印钞机。只要房地产这个石子还没有投入到大海里去,还有一定的流通性,那么就不会有通货膨胀的发生。
      
      其次:开发商会在这个过程中也赚取巨大的利润。
      
      再次:能看到的是,炒房族会赚钱、所谓的买房的房奴会增值。
      
      都赚钱!可是在这个过程中到底谁亏了呢?钱从哪里来呢?如果你是有炒股的经验就会知道,如果投资价格和价值背离的商品,你赚的钱就是别人赔的钱,那么套用到房地产上,就是买房自住的人,现在看似增值,那是镜中月、水中花,你不变现就不是你的。再有就是当价格完全回归真实价值的时候,有时甚至会到真实价值一下,被高价房套住的投资者。还有一个就是开发商!
      
      为什么说开发商也有赔钱呢?大家知道商人的本性是赚钱,赚取利润。如果一个商人投机一次就永远都不做这个生意了,他是赚钱了,可他不是商人,这种商业行为没有意义。由于商人的本性,所以赚来的钱会继续扩大再生产,在能赚钱的领域不断的加大投资。这个道理从生活中就可看出来,越是做大生意的人总喊没钱,因为要更大的流动资金来维持其扩大再生产的需要。
      
      所以一旦房价回归真实的价值之时,就是有一大批开发商崩溃之日。这个是不以任何人的意志和任何行为为转移的。如果现在有开发商逃离房地产业的角斗场,那么跑得慢的就是最后的输家。如果都不跑,就像击鼓传花一样,最后拿到接力棒的就是接盘者。有句话叫:出来混迟早是要还的。也许只不过是方式不一样,看谁的运气好而已。
      
      可是现在却没有任何的KFS赔钱的迹象,有的是KFS不断的赚钱,老百姓送钱都来不及。只是因为目前房价还在上涨,房产还在不断的流动。
      
      一个巨大的问题来了,这样不断上涨的房价何时是个头啊
      ******************************************************************************
      8、坐在华尔街办公室的财团们是如何吸干中国山区一个农民的血汗的
      
       Mao.ZD说过:帝国主义没有睡大觉,而是天天在蠢蠢欲动,在图谋不轨,想达到他们的罪恶目的。诚然他们的气焰的确没有以前那么嚣张,但他们确实在活动着。是不是冷战结束就代表着人类的和平得以实现呢?一句上帝面前人人平等就能掩盖帝国主义噬血的本质吗?人人平等的理念是对的,但它只不过是帝国主义用来欺骗人们的伎俩罢了,说到和做到永远是两码事。
      
      国际财团通过国际热钱涌入中国,使人民币加大发行量,然后通过房地产炒作,把中国的国内价格水平无限制的提高,GDP的增长又一次使人民币的发行量被迫提高。国际财团心黑手狠,双管齐下,目的就是使中国经济热到烫手,热到让每个中国人为之疯狂。
      
      我们暂不去关心这个过程,我们放眼未来,看看这一过程的结果是什么样呢?换句话说财团的目的是什么呢?
      
      很明显,中国人最不愿意看到的事情,就是财团们最乐见的结果。先做个假设,比如国际热钱在投资的中国房地产领域里上演最后的疯狂后,然后把房产成功解套全部变现,如果此时人民币兑美元的汇率达到美国预期最高时,汇率是热钱逃离时需要相乘的那个倍数,会发生什么谁都能想到,所有热钱会一夜之间全部兑换美元逃离。财团们会赚得沟满壕平,中国市场上除了钱就是钱,能遮住天的大把人民币将成为中国人民的噩梦。
      
      这是中国人最不愿意看到的事情,也是财团最乐见的结果。近期美国不断的通过政治、贸易等手段逼迫人民币升值,而中国go-vern-ment迟迟不升值或小范围的升值,远远没有达到美国go-vern-ment的预期,这是在出口处的中美之间的博弈。美国逼迫人民币升值的狼子野心昭然若揭!
      
      顺便提一句,如果真的这个升值预期达到了,中国楼市将重演日本上世纪90年代崩盘的历史。只是那时中国经济也会像日本一样进入一个连续低迷不振的不归路。
      
      在这种攸关民族生存的问题上,go-vern-ment会坐视不管吗?就算是退一步来讲,一个完全不负责任的go-vern-ment遇到这种情况,因为这个资本运作同时也极大侵犯了go-vern-ment的利益,也会拼命反搏的。
      
      那么中国go-vern-ment会以什么样的方式来化解这一经济危机呢?
    **********************************************************

    9、在有关这场围绕房价和通货膨胀之间的各方博弈中可能选择的中庸路线
      
      我一直相信:物极必反,中庸,是老祖宗留给后人解决棘手问题的杀手锏!
      
      既然是中国房地产绑架了中国的经济,那么我们就从绑架说起。何为绑架,应该是相对弱的一方,拿着相对强的一方的要害,使相对强的一方即便有能力对付弱的一方,但碍于投鼠忌器,无力可施。
      
      我们先来看看绑架双方的阵容和各自手上的筹码。房地产业的主体是KFS,所以KFS算一方,它绑架的要害是中国经济,那中国经济是谁的要害呢?是中国人民的要害,代表中国人民的,目前只能是中国go-vern-ment。中国go-vern-ment算一方。外资呢?它是煽风点火者,划到KFS一方。中国go-vern-ment一方有公权力,可以通过税收、财政、经济政策、行政手段对KFS阵营施力,KFS阵营通过源源不断的后备资金来绑架中国经济,且不断的提高赎金。
      
      问题已经摆在这里,怎么办呢?冲上去一枪击毙,那歹徒非撕票不可,太极端不可行。所以有为go-vern-ment开出药方,只要实现了某某一条既可降低房价的主意,就犹如这一枪击毙一样是不可行的。我们想象如何解救绑架事件的,首先要稳定住对方的情绪,再一步步地靠近,但这种靠近虽会引起歹徒的敌意,但不会导致他撕票,然后再进一步稳定情绪,再靠近,然后条件成熟时,再稳准狠,即保证人质的安全,又要保证歹徒一举拿下。这才是真正的营救。
      
      所以中庸才是解决棘手问题的杀手锏。极端、盲目、冒进是要不得的。
      
      针对如何解决中国房地产市场的绑架问题,就要围绕问题的关键部分一步步地施加反作用力,然后一举成功,才是正道。
      
      第一个关键的部分就是汇率,中国go-vern-ment会严把汇率关,我们可以预期的是,人民币兑灭元的汇率决不会过快升值,但会小幅升值,就是要稳定对方的情绪,如果一点不升,对方会狗急跳墙,如果升的过快,是给自己掘墓,所以为什么中国汇率升幅总是犹抱琵琶半遮面,看看美国go-vern-ment的态度跟一个绑匪是多么的贴切,我要一瓶果汁,为什么拿来半瓶水。可又说不出什么来,毕竟还能暂时解渴。
      
      第二个关键是限制资产流动性,既然房地产能绑架中国经济,说明它举足轻重,限制房产的流通性,就可以限制资产的流动性,注意这里是两个概念,资产流动性房产流通性。两者完全不同,但又息息相关。房产流通性减弱,资产流动性减弱,那么需要印刷的人民币就减少。就像那个石子,不流通马上通胀,不涨价流通没问题,可是行不通,外资也不同意。既然是不断的上涨价格,只能一步步地限制房产流通,只要房产流通性少一点,通胀就会显现一点,然后再通过上调准备金率和加息等柔性政策来调整一点,用柳叶棉丝掌来化解泰森的一记重拳,以绵柔克强刚、化千钧于无形,这就是中国go-vern-ment的策略(这好像是中国人最擅长的事情)。我们从官方媒体就能看到相关的消息,楼市签约率在下降,即流通性在下降,然后物价开始有所涨幅,如猪肉等副食产品,但央行马上上调准备金率和加息,来稳定物价。不知各位看官是否也看出些端倪。可预期的是,到完全化解危机之前,会不断地加息和调高准备金率,同时房产流通性会越来越弱,这个预言是否准确可在以后的央行政策上验证。等完全消除了由于经济过热导致的通货膨胀预期,那么就是房地产价格回归真实价值之时。
      
      不管你看到没看到,这已是最后的疯狂,我们从两方面来分析:
      
      第一,如果这场博弈以外资胜利而告终,那么中国经济将步日本90年代持续下滑的深渊,由于外资撤走,房市赖以生存的支柱坍塌,房价会一落千丈,可到时候不管是KFS还是老百姓都将承受经济下滑之苦,持有的货币迅速贬值,即便房价落下,也不一定买的起。这是中国go-vern-ment和中国人民不可接受的,也是无法接受的。
      
      第二,如果外资以失败而告终,即在汇率上把住出口,让房价回归真实价值,把外资同样套在中国,这才是胜利的前提。那么以美国财团为首的帝国主义噬血者必将疯狂报复,会在投资、出口等各方面对中国施加压力。我们今天人民币升值没有达到美国预期,已经导致中国出口到美国的产品受打压,进而引起了众多的贸易摩擦,由此可见一斑。我们知道,经济发展的三套马车是,投资、出口和消费,在投资、出口领域遭到报复会影响中国经济的发展,但我相信不会影响我们的发展速度,别忘了还有一套马车是消费,房价下降后,如果你是爱国者,请现在保护好你的钱包,到时千万别羞羞答答,要果断地出手买房,中国经济会在消费领域异军突起,继续独占世界经济引擎的鳌头。
      
      
      
      同时还有一个群体是无奈的,就是钢需,因为不得不买房,是他们保证了现阶段所必需的一定流通性,但他们是被迫卷到这台绞肉机里的一群。所以也向钢需们致敬! 

    梦。

     
    昨儿做一梦。
     
    梦见我有了两个儿子,好像刚出生不久,很好玩。
     
    可是很奇怪,两人都很小,我居然把那哥俩放在我口袋里。(我又不是袋鼠,是袋鼠也应该是母袋鼠干的事啊Disappointed
     
    再后来我就带着他们满世界跑。就是没看到他们的妈妈。。

    搬家。

     
    明儿就搬家了。收拾完东西。挺喜欢这个座位。留个影。
     
    图片被我注释掉了,'View Source'可以找到图片

    改革。REVOLUTION。。。

     
    几个好玩的用于Vista上的Gadget:

     

    • 天气预报

     

  • 农历日历



    • 欧洲5大联赛足球同步战报



    • Office快速打开历史纪录



    • MSN Messenger小插件



    最后,送上阿汤哥夫妇,小贝夫妇和他们的小小贝们

     

     

     

      



    #23 Daddy 

     

     

     

     

  • 周末。


    果然又被导游骗了。号称3个半小时的路程走了5个半小时。到宾馆时脖子歪了,四肢麻木,屁股酸疼,总之是兴致大减。
     
    途中遇见两起交通事故,一个擦边球,一个肉夹馍。
     
    还有一倒霉蛋因为把车开到应急车道,而刚好有交警出来处理事故,还大摇大摆地挡着交警不让过,后来被交警把本给扣了。
     
    吃完正餐,向目的地翡翠岛出发。这次导游小姐说半小时就到,哪知又走了超过一个小时,崩溃。
     
    还好传说中的黄金海岸没让人失望。瞅着海浪发呆,很想再游远一点,可惜我这三脚猫的水性,恐怕有去无回。
     
    秦皇岛的空气比北京好多了,气候也很好。也难怪有那么多疗养院。
     
    回去路上看到N框鸡蛋洒在马路上,见过水泥路、沥青路,头一回见鸡蛋路。。估摸是某装鸡蛋的车撞猪了。
     
    第二天先是坐一小破船(美其名曰为豪华游轮)出海。后随渔民打鱼,差点自己成了鱼。
     
    在海边休息片刻后,打点行装回北京。
     
    (又碰到交通事故,确实天天在发生,汽车,,太不安全。。看起来我害怕坐汽车是很符合现实的。)
     

    Let's be friends

     

    Dog, Squirrel and Bird




    "This is my dog Bailey taking care of abby squirrels and her bird Lucky", writes Janine Goodwin.

    Wow, three-way animal friendship, can anyone top that?

     

    Dog and Chicken



    "This is Baxter and Miss Dog (the chicken). She sleeps with Baxter in front of the heater every night until warm weather arrives", informs Susan Farnum.

     

    Hippo and Turtle



    A popular image this, sent in by multiple people including, Nicholas Tucker, Steven-Anderson Smith, Sandy van Veen ("Very pleased to see you're back one your site. I thought it was such a lovely concept, but it appeared to have stopped in 2004."), Candace, Lurena Disney and Tim Rhomberg.

     

    Dog and Fawn



    As sent in by Kevin Jurgens. Yay for Kevin.

     

    Pony and Cat

    Sent in by Gary Buchler, "Enjoy", we writes. And we did. Twice.

     

    Lamb and Dog




    Stacey Keene confides, "This is my dog Petey & my lamb Ewan. They love each other."

     

    Deer and Dog




    Linda Riebel writes, "A lady found the fawn under her step (they think the doe might have been hit by a car) her Ridge Back dog is helping look after it. The family named the fawn Bella."

     

    "Daddy, let's play horsey!"



    Thanks to Steven-Anderson Smith for sending this in. (Although he clearly stole it off stuffonmycat.)

     

    Cat and Turtle




    "Here is a picture of our cat and turtle", informs The Nichols Family, "The cat Jasmine makes a greeeeaaat baby sitter, the kids tie a string around the turtles shell, the turtle walks away, nd the cat pulls him back. The cat sleeps in the box and the turtle sleeps with her."

     

    Cat and Rabbit




    Thanks to Amanda Lee for sending these snaps of her pets.

     

    Max Loves Chelsea




    "Our family thinks this one is a classic. Thanks for offering a place to share", mews Cheri Laser.

     

    Cat and Moose



    "This appeared in the Anchorage Daily News (Alaska, USA) some time ago, moose are so common here, it's a surprise we don't have more photos like this!", emails Ariel De Lormier.

     

    Bird and Mouse

     

     

    Monkey and Kitten



    This picture is COPYRIGHTED to KAZ CAMPBELL.

     

    Cat and Dog

     Funny?

    Hamster and Snake