2007年8月27日星期一

Why am I having trouble taking the address of a C++ function?

[33.4] Why am I having trouble taking the address of a C++ function?

Short answer: if you're trying to store it into (or pass it as) a pointer-to-function, then that's the problem ― this is a corollary to the previous FAQ.

Long answer: In C++, member functions have an implicit parameter which points to the object (the this pointer inside the member function). Normal C functions can be thought of as having a different calling convention from member functions, so the types of their pointers (pointer-to-member-function vs. pointer-to-function) are different and incompatible. C++ introduces a new type of pointer, called a pointer-to-member, which can be invoked only by providing an object.

NOTE: do not attempt to "cast" a pointer-to-member-function into a pointer-to-function; the result is undefined and probably disastrous. E.g., a pointer-to-member-function is not required to contain the machine address of the appropriate function. As was said in the last example, if you have a pointer to a regular C function, use either a top-level (non-member) function, or a static (class) member function.

Is the type of "pointer-to-member-function" different from "pointer-to-function"?

[33.1] Is the type of "pointer-to-member-function" different from "pointer-to-function"?

Yep.

Consider the following function:

 int f(char a, float b);

The type of this function is different depending on whether it is an ordinary function or a non-static member function of some class:

  • Its type is "int (*)(char,float)" if an ordinary function
  • Its type is "int (Fred::*)(char,float)" if a non-static member function of class Fred

Note: if it's a static member function of class Fred, its type is the same as if it were an ordinary function: "int (*)(char,float)".

Holding a Program in One's Head

Holding a Program in One's Head


A good programmer working intensively on his own code can hold it in his mind the way a mathematician holds a problem he's working on. Mathematicians don't answer questions by working them out on paper the way schoolchildren are taught to. They do more in their heads: they try to understand a problem space well enough that they can walk around it the way you can walk around the memory of the house you grew up in. At its best programming is the same. You hold the whole program in your head, and you can manipulate it at will.

That's particularly valuable at the start of a project, because initially the most important thing is to be able to change what you're doing. Not just to solve the problem in a different way, but to change the problem you're solving.

Your code is your understanding of the problem you're exploring. So it's only when you have your code in your head that you really understand the problem.

It's not easy to get a program into your head. If you leave a project for a few months, it can take days to really understand it again when you return to it. Even when you're actively working on a program it can take half an hour to load into your head when you start work each day. And that's in the best case. Ordinary programmers working in typical office conditions never enter this mode. Or to put it more dramatically, ordinary programmers working in typical office conditions never really understand the problems they're solving.

Even the best programmers don't always have the whole program they're working on loaded into their heads. But there are things you can do to help:

  1. Avoid distractions. Distractions are bad for many types of work, but especially bad for programming, because programmers tend to operate at the limit of the detail they can handle.

    The danger of a distraction depends not on how long it is, but on how much it scrambles your brain. A programmer can leave the office and go and get a sandwich without losing the code in his head. But the wrong kind of interruption can wipe your brain in 30 seconds.

    Oddly enough, scheduled distractions may be worse than unscheduled ones. If you know you have a meeting in an hour, you don't even start working on something hard.

  2. Work in long stretches. Since there's a fixed cost each time you start working on a program, it's more efficient to work in a few long sessions than many short ones. There will of course come a point where you get stupid because you're tired. This varies from person to person. I've heard of people hacking for 36 hours straight, but the most I've ever been able to manage is about 18, and I work best in chunks of no more than 12.

    The optimum is not the limit you can physically endure. There's an advantage as well as a cost of breaking up a project. Sometimes when you return to a problem after a rest, you find your unconscious mind has left an answer waiting for you.

  3. Use succinct languages. More powerful programming languages make programs shorter. And programmers seem to think of programs at least partially in the language they're using to write them. The more succinct the language, the shorter the program, and the easier it is to load and keep in your head.

    You can magnify the effect of a powerful language by using a style called bottom-up programming, where you write programs in multiple layers, the lower ones acting as programming languages for those above. If you do this right, you only have to keep the topmost layer in your head.

  4. Keep rewriting your program. Rewriting a program often yields a cleaner design. But it would have advantages even if it didn't: you have to understand a program completely to rewrite it, so there is no better way to get one loaded into your head.

  5. Write rereadable code. All programmers know it's good to write readable code. But you yourself are the most important reader. Especially in the beginning; a prototype is a conversation with yourself. And when writing for yourself you have different priorities. If you're writing for other people, you may not want to make code too dense. Some parts of a program may be easiest to to read if you spread things out, like an introductory textbook. Whereas if you're writing code to make it easy to reload into your head, it may be best to go for brevity.

  6. Work in small groups. When you manipulate a program in your head, your vision tends to stop at the edge of the code you own. Other parts you don't understand as well, and more importantly, can't take liberties with. So the smaller the number of programmers, the more completely a project can mutate. If there's just one programmer, as there often is at first, you can do all-encompassing redesigns.

  7. Don't have multiple people editing the same piece of code. You never understand other people's code as well as your own. No matter how thoroughly you've read it, you've only read it, not written it. So if a piece of code is written by multiple authors, none of them understand it as well as a single author would.

    And of course you can't safely redesign something other people are working on. It's not just that you'd have to ask permission. You don't even let yourself think of such things. Redesigning code with several authors is like changing laws; redesigning code you alone control is like seeing the other interpretation of an ambiguous image.

    If you want to put several people to work on a project, divide it into components and give each to one person.

  8. Start small. A program gets easier to hold in your head as you become familiar with it. You can start to treat parts as black boxes once you feel confident you've fully explored them. But when you first start working on a project, you're forced to see everything. If you start with too big a problem, you may never quite be able to encompass it. So if you need to write a big, complex program, the best way to begin may not be to write a spec for it, but to write a prototype that solves a subset of the problem. Whatever the advantages of planning, they're often outweighed by the advantages of being able to keep a program in your head.
It's striking how often programmers manage to hit all eight points by accident. Someone has an idea for a new project, but because it's not officially sanctioned, he has to do it in off hours―which turn out to be more productive because there are no distractions. Driven by his enthusiasm for the new project he works on it for many hours at a stretch. Because it's initially just an experiment, instead of a "production" language he uses a mere "scripting" language―which is in fact far more powerful. He completely rewrites the program several times; that wouldn't be justifiable for an official project, but this is a labor of love and he wants it to be perfect. And since no one is going to see it except him, he omits any comments except the note-to-self variety. He works in a small group perforce, because he either hasn't told anyone else about the idea yet, or it seems so unpromising that no one else is allowed to work on it. Even if there is a group, they couldn't have multiple people editing the same code, because it changes too fast for that to be possible. And the project starts small because the idea is small at first; he just has some cool hack he wants to try out.

Even more striking are the number of officially sanctioned projects that manage to do all eight things wrong. In fact, if you look at the way software gets written in most organizations, it's almost as if they were deliberately trying to do things wrong. In a sense, they are. One of the defining qualities of organizations since there have been such a thing is to treat individuals as interchangeable parts. This works well for more parallelizable tasks, like fighting wars. For most of history a well-drilled army of professional soldiers could be counted on to beat an army of individual warriors, no matter how valorous. But having ideas is not very parallelizable. And that's what programs are: ideas.

It's not merely true that organizations dislike the idea of depending on individual genius, it's a tautology. It's part of the definition of an organization not to. Of our current concept of an organization, at least.

Maybe we could define a new kind of organization that combined the efforts of individuals without requiring them to be interchangeable. Arguably a market is such a form of organization, though it may be more accurate to describe a market as a degenerate case―as what you get by default when organization isn't possible.

Probably the best we'll do is some kind of hack, like making the programming parts of an organization work differently from the rest. Perhaps the optimal solution is for big companies not even to try to develop ideas in house, but simply to buy them. But regardless of what the solution turns out to be, the first step is to realize there's a problem. There is a contradiction in the very phrase "software company." The two words are pulling in opposite directions. Any good programmer in a large organization is going to be at odds with it, because organizations are designed to prevent what programmers strive for.

Good programmers manage to get a lot done anyway. But often it requires practically an act of rebellion against the organizations that employ them. Perhaps it will help to understand that the way programmers behave is driven by the demands of the work they do. It's not because they're irresponsible that they work in long binges during which they blow off all other obligations, plunge straight into programming instead of writing specs first, and rewrite code that already works. It's not because they're unfriendly that they prefer to work alone, or growl at people who pop their head in the door to say hello. This apparently random collection of annoying habits has a single explanation: the power of holding a program in one's head.

Whether or not understanding this can help large organizations, it can certainly help their competitors. The weakest point in big companies is that they don't let individual programmers do great work. So if you're a little startup, this is the place to attack them. Take on the kind of problems that have to be solved in one big brain.

host blogspot



# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

127.0.0.1 localhost

72.14.219.190 mycdn.blogspot.com
72.14.207.190 198910.blogspot.com
72.14.207.190 siny1978.blogspot.com
72.14.207.190 sunewer.blogspot.com
72.14.219.190 baogao.blogspot.com
72.14.219.190 bloger.cqun.com
72.14.219.190 rokcyhams.blogspot.com
72.14.219.190 mycdn.blogspot.com
72.14.219.190 myners-days.blogspot.com
72.14.219.190 myners.blogspot.com
72.14.219.190 kasolbar.blogspot.com
72.14.219.190 blogspot.com
72.14.219.190 indigoblogger.blogspot.com
72.14.219.190 fklen.blogspot.com
72.14.219.190 fklcs.blogspot.com
72.14.219.190 pennylqy.blogspot.com
72.14.219.190 cnjelly.blogspot.com
72.14.219.190 comeintomydreamhouse.blogspot.com
72.14.219.190 macally.blogspot.com
72.14.219.190 netw1nd.blogspot.com
72.14.219.190 lu-zhi.blogspot.com
72.14.207.190 janglecn.blogspot.com
72.14.219.190 gotoxiaoqi.blogspot.com
72.14.219.190 gdrealm.blogspot.com
72.14.219.190 azazf.blogspot.com
72.14.207.190 tareking.blogspot.com
72.14.219.190 kisser9126.blogspot.com
72.14.219.190 gongjushu.blogspot.com
72.14.219.190 wanyancan.blogspot.com
72.14.219.190 mecoding.blogspot.com
72.14.219.190 google-au.blogspot.com
72.14.219.190 zhang-bruce.blogspot.com
72.14.219.190 tonyspace2007.blogspot.com
72.14.219.190 6applesdream.blogspot.com
72.14.207.190 jackytan1986.blogspot.com
72.14.207.190 cyril-is.blogspot.com
72.14.207.190 amy0530.blogspot.com
72.14.207.190 qq0526.blogspot.com
72.14.207.190 fenglucn.blogspot.com
72.14.207.190 blog.fenglu.name
72.14.207.190 dopobo.blogspot.com
72.14.207.190 delehe.blogspot.com
72.14.207.190 dilihi.blogspot.com
72.14.219.190 intergirleva.blogspot.com/
72.14.219.190 laohao.blogspot.com
72.14.207.190 ibmainframe.blogspot.com
72.14.207.190 lyoo.blogspot.com
72.14.207.190 human-lyoo.blogspot.com
72.14.207.190 cat-lyoo.blogspot.com
72.14.207.190 bear-lyoo.blogspot.com
72.14.207.190 ppeddy.blogspot.com
72.14.207.190 flyfnes.blogspot.com
72.14.219.190 pengkelee.blogspot.com
72.14.219.190 ij4u.blogspot.com
72.14.219.190 tinxon.blogspot.com
72.14.219.190 gogous.blogspot.com
72.14.219.191 shadowleaves.blogspot.com
72.14.219.190 jerryvim.blogspot.com
72.14.207.191 bestjovi.blogspot.com
72.14.207.191 wheniamfree.blogspot.com
72.14.219.190 sisea.blogspot.com
72.14.219.190 flatfox.blogspot.com
72.14.219.190 googledex.blogspot.com
72.14.219.190 icasual.blogspot.com
72.14.219.190 271121.blogspot.com
72.14.219.190 rongqing21.blogspot.com
72.14.219.190 dexterjiang.blogspot.com
72.14.219.190 jianwen32.blogspot.com
72.14.219.190 janegle.blogspot.com
72.14.219.190 singeeser.blogspot.com
72.14.219.190 shuhe.blogspot.com
72.14.207.191 cherio2002.blogspot.com
72.14.207.191 zihecg.blogspot.com
72.14.219.190 zhangjiansheng.blogspot.com
72.14.219.190 wjgyiming.blogspot.com
72.14.219.190 bosdumia.blogspot.com
72.14.219.190 sanhex.blogspot.com
72.14.219.190 jackaylee.blogspot.com
72.14.219.190 fuzzyshot.blogspot.com
72.14.219.190 liove.blogspot.com
72.14.219.190 tastefair.blogspot.com
72.14.219.191 slqqqq.blogspot.com
72.14.219.190 slogoo.blogspot.com
72.14.219.190 aetherx.blogspot.com
72.14.219.190 hoogi.blogspot.com
72.14.207.191 booksthinker.blogspot.com
72.14.207.191 allentian.blogspot.com
72.14.207.191 privatemax.blogspot.com
72.14.207.191 saimoe.blogspot.com
72.14.207.191 cnsunbin.blogspot.com
72.14.219.190 forcode.blogspot.com
72.14.219.190 shehuixue.blogspot.com
72.14.219.190 shumadaogou.blogspot.com
72.14.219.190 800719.blogspot.com
72.14.219.190 sea-b.blogspot.com
72.14.219.191 fengchenming.blogspot.com
72.14.219.190 silvialee99.blogspot.com
72.14.219.190 sepkin.blogspot.com
72.14.219.190 iloveearth99.blogspot.com
72.14.219.190 biquan.blogspot.com
72.14.219.190 dramaticsoul.blogspot.com
72.14.219.190 smallwrite.blogspot.com
72.14.219.190 leanpicturecollector.blogspot.com
72.14.219.190 aerol-adora.blogspot.com
72.14.219.190 work-physics.blogspot.com
72.14.219.190 penghaibin.blogspot.com
72.14.219.190 adora-adora.blogspot.com
72.14.219.190 songalbatros.blogspot.com
72.14.219.190 yuhc.blogspot.com
72.14.219.190 fangjieshi.blogspot.com
72.14.219.190 pjzhuo.blogspot.com
72.14.219.190 zwblogger.blogspot.com
72.14.219.190 happy1919.blogspot.com
72.14.219.190 arjunadreaming.blogspot.com
72.14.219.190 520blogger.blogspot.com
72.14.219.190 llxxxq.blogspot.com
72.14.219.190 uaresmiling2.blogspot.com
72.14.219.190 nanshaner.blogspot.com
72.14.219.190 looleeid.blogspot.com
72.14.219.190 freelived.blogspot.com
72.14.219.190 ring3.blogspot.com
72.14.219.190 mmdaban.blogspot.com
72.14.219.190 liubinjob.blogspot.com
72.14.219.190 pengbin.blogspot.com
72.14.219.190 stanleyxu.blogspot.com
72.14.219.190 langyin.blogspot.com
72.14.219.190 BehindGFW.blogspot.com
72.14.219.190 co-think.blogspot.com
72.14.219.190 jackyren501.blogspot.com
72.14.219.190 cnjelly.blogspot.com
72.14.219.190 only4john.blogspot.com
72.14.219.190 dmiao.blogspot.com
72.14.219.190 beta.blogger.com
2.14.219.190 kunshou.blogspot.com
72.14.219.190 ggpi.blogspot.com
72.14.219.190 chenbo.blogspot.com
72.14.219.190 dugangs.blogspot.com
72.14.219.190 zwblogger.blogspot.com
72.14.219.190 sz-iris.blogspot.com
72.14.219.190 golax.blogspot.com
72.14.219.190 arjunadreaming.blogspot.com
72.14.219.190 tigerthb.blogspot.com
72.14.219.190 mylovegarden.blogspot.com
72.14.219.190 bearjess.blogspot.com
72.14.219.190 jijian91-tec.blogspot.com
72.14.219.190 xcchris.blogspot.com
72.14.219.190 nufeng.blogspot.com
72.14.219.190 wqbloodsky.blogspot.com
72.14.219.190 shooven.blogspot.com
72.14.219.190 helloworld-world.blogspot.com
72.14.219.190 blueiris4.blogspot.com
72.14.219.190 ccyx.blogspot.com
72.14.219.190 hguei.blogspot.com
72.14.219.190 huiranfu.blogspot.com
72.14.219.190 china-pj.blogspot.com
72.14.219.190 jerry-forzamilan.blogspot.com
72.14.219.190 googlef.blogspot.com
72.14.219.190 cnbetasun.blogspot.com
72.14.219.190 piratecb.blogspot.com
72.14.219.190 jijian91.blogspot.com
72.14.219.190 varyakk.blogspot.com
72.14.219.190 iyubao.blogspot.com
72.14.219.190 botaowu.blogspot.com
72.14.219.190 eflyingsd.blogspot.com
72.14.219.190 cyishere.blogspot.com
72.14.219.190 xiaolongzhang.blogspot.com
72.14.219.190 tiaozaoshichang.blogspot.com
72.14.219.190 iwfwcf.blogspot.com
72.14.219.190 umsn.blogspot.com
72.14.219.190 racklin.blogspot.com
72.14.219.190 ibenjamin.blogspot.com
72.14.219.190 sunr.blogspot.com
72.14.219.190 findyou.blogspot.com
2.14.219.190 showr.blogspot.com
72.14.219.190 gxv.blogspot.com
72.14.219.190 avxx.blogspot.com
72.14.219.190 kylexycn.blogspot.com
72.14.219.190 showr.blogspot.com
72.14.219.190 520blogger.blogspot.com
72.14.219.190 maixiaotian.blogspot.com
72.14.219.190 zihecg.blogspot.com
72.14.219.190 tiaozaoshichang.blogspot.com
72.14.219.190 ygker.blogspot.com
72.14.219.190 lcwbk.blogspot.com
72.14.219.190 lcwyl.blogspot.com
72.14.219.190 allofrss.blogspot.com
72.14.219.190 shimengfei.blogspot.com
72.14.219.190 ikoomi.blogspot.com
72.14.219.190 gotoup.blogspot.com
72.14.219.190 stanleyxu.blogspot.com
72.14.219.190 phrankiechen.blogspot.com
72.14.219.190 mwly.blogspot.com
72.14.219.190 zhcn.blogspot.com
72.14.219.190 yuhc.blogspot.com
2.14.219.190 bloooooooogger-beta.blogspot.com
72.14.219.190 cnfans.blogspot.com
72.14.219.190 vanilla1223.blogspot.com
72.14.219.190 vaneswh.blogspot.com
72.14.219.190 vanilladd.blogspot.com
72.14.219.190 haiyang416.blogspot.com
72.14.219.190 seansimon.blogspot.com
72.14.219.190 friendsgang6.blogspot.com
72.14.219.190 mooncake3680.blogspot.com
72.14.219.190 wongc.blogspot.com
72.14.219.190 mingqing.blogspot.com
72.14.219.190 zephyr4435.blogspot.com
72.14.219.190 hixj.blogspot.com
72.14.219.190 dukefeng.blogspot.com
72.14.219.190 silentnowcn.blogspot.com
72.14.219.190 xqmy.blogspot.com
72.14.219.190 fuckww.blogspot.com
72.14.219.190 indymediacn.blogspot.com
72.14.219.190 klaiceps.blogspot.com
72.14.219.190 gayocn.blogspot.com
72.14.219.190 nihla.blogspot.com
72.14.219.190 jar1002.blogspot.com
72.14.219.190 edoos.blogspot.com
72.14.219.190 googlemagazine.blogspot.com
72.14.219.190 kuruan.blogspot.com
72.14.219.190 janoldschool.blogspot.com
72.14.219.190 ybbybb.blogspot.com
72.14.219.190 windwithstorm.blogspot.com
72.14.219.190 oosun.blogspot.com
72.14.219.190 law-thinking.blogspot.com
72.14.219.190 5zcjian.blogspot.com
72.14.219.190 ku6.blogspot.com
72.14.219.190 piece-on-shits.blogspot.com
72.14.219.190 zonzonzon.blogspot.com
72.14.219.190 googlesysytem.blogspot.com
72.14.219.190 googleblog.blogspot.com
72.14.219.190 labnol.blogspot.com
72.14.219.190 shuiziliu.blogspot.com
72.14.219.190 cookiesimple.blogspot.com
72.14.219.190 apoollo.blogspot.com
72.14.219.190 mylovegarden.blogspot.com
72.14.219.190 nullidaho.blogspot.com
72.14.219.190 billrain.blogspot.com
72.14.219.190 starryheavens4u.blogspot.com
72.14.219.190 dedoli.blogspot.com
72.14.219.190 dedoli-beta.blogspot.com
72.14.219.190 vistaero.blogspot.
72.14.219.190 utsing.blogspot.com
72.14.219.190 hasumi.blogspot.com
72.14.219.190 my1996.blogspot.com
72.14.219.190 aminghome.blogspot.com
72.14.219.190 rogerljq.blogspot.com
72.14.219.190 tomclarence.blogspot.com
72.14.219.190 platoer.blogspot.com
72.14.219.190 boostguy.blogspot.com
72.14.219.190 43com.blogspot.
72.14.219.190 urlshow.blogspot.com
72.14.219.190 xxyl.blogspot.com
72.14.219.190 jk-sh.blogspot.com
72.14.219.190 sskj.blogspot.com
72.14.219.190 skycn.blogspot.com
72.14.219.190 iiwhisper.blogspot.com
72.14.219.190 firmamenter.blogspot.com
72.14.219.190 huzhigangcn.blogspot.com
72.14.219.190 51la.blogspot.com
72.14.219.190 97city32.blogspot.com
72.14.219.190 97city31.blogspot.com
72.14.219.190 97city28.blogspot.com
72.14.219.190 97city34.blogspot.com
72.14.219.190 97city08.blogspot.com
72.14.219.190 97city01.blogspot.com
72.14.219.190 97city26.blogspot.com
72.14.219.190 97city15.blogspot.com
72.14.219.190 97city.blogspot.com
72.14.219.190 97city11.blogspot.com
72.14.219.190 97city04.blogspot.com
72.14.219.190 97city13.blogspot.com
72.14.219.190 97city07.blogspot.com
72.14.219.190 97city20.blogspot.com
72.14.219.190 97city05.blogspot.com
72.14.219.190 97city30.blogspot.com
72.14.219.190 97city22.blogspot.com
72.14.219.190 97city23.blogspot.com
72.14.219.190 van12345.blogspot.com
72.14.219.190 ki98.blogspot.com
72.14.219.190 qiyue.blogspot.com
72.14.219.190 dexvip.blogspot.com
72.14.219.190 douziblog.blogspot.
72.14.219.190 sanqiang.blogspot.
72.14.219.190 itwrite.blogspot.
72.14.219.190 browseworld.blogspot.com
72.14.219.190 crazy-horror.blogspot.com
72.14.219.190 bodily-beauty.blogspot.com
72.14.219.190 bodilyart.blogspot.
72.14.219.190 bodilybeauty.blogspot.com
72.14.219.190 freebieforyou.blogspot.com
72.14.219.190 hotbabe4u.blogspot.com
72.14.219.190 sep30.blogspot.
72.14.219.190 softv.blogspot.com
72.14.219.190 vbig.blogspot.com
72.14.219.190 sqqd.blogspot.com
72.14.219.190 codeplayer.blogspot.com
72.14.219.190 xiangnan.blogspot.com
72.14.219.190 shimengfei.blogspot.com
72.14.219.190 world2flat.blogspot.com
72.14.219.190 majin1987.blogspot.com
72.14.219.190 nanshaner.blogspot.com
72.14.219.190 keired.blogspot.com
72.14.219.190 zhihuai1982.blogspot.com
72.14.219.190 congel.blogspot.com
72.14.219.190 adrianzl.blogspot.com
72.14.219.190 vaneswh.blogspot.com
72.14.219.190 52bloger.blogspot.com
72.14.219.190 doggie8009.blogspot.com
72.14.219.190 gfanscn.blogspot.
72.14.219.190 neo-b.blogspot.com
72.14.219.190 sam0724.blogspot.com
72.14.219.190 jchdd1.blogspot.com
72.14.219.190 xxck.blogspot.com
72.14.219.190 deadstorehouse.blogspot.com
72.14.219.190 neil.blogspot.com
72.14.219.190 lujiacn.blogspot.com
72.14.219.190 dzh4268.blogspot.com
72.14.207.190 loverlava.blogspot.com
72.14.219.190 perichr.blogspot.com
72.14.219.190 huyix.blogspot.com
72.14.219.190 qingsegengzi.blogspot.com
72.14.219.190 clavinkpb.blogspot.
72.14.219.190 7eaven.blogspot.com
72.14.219.190 little-dust.blogspot.com
72.14.219.190 storyxxx.blogspot.com
72.14.219.190 yinster.blogspot.com
72.14.219.190 bryant0315.blogspot.com
72.14.219.190 chen-yvxin.blogspot.com
72.14.219.190 ooi-chin-leong.blogspot.com
72.14.219.190 angjs.blogspot.com
72.14.219.190 master-the-idioms.blogspot.com
72.14.219.190 coffee-addiction.blogspot.com
72.14.219.190 mtxt.blogspot.com
72.14.219.190 nophoebe.blogspot.com
72.14.219.190 seafire112.blogspot.com
72.14.219.190 szjinggong.blogspot.com
72.14.219.190 kelven1978.blogspot.com
72.14.219.190 igogogo.blogspot.com
72.14.219.190 zhangdonghai.blogspot.com
72.14.219.190 bloooooooogger.blogspot.com
72.14.219.190 geekynewbie.blogspot.com
72.14.219.190 googlebk.blogspot.com
72.14.219.190 geekynb.blogspot.com
72.14.219.190 montrealsimon.blogspot.com
72.14.219.190 urmeritspace.blogspot.com
72.14.219.190 stormflower.blogspot.com
72.14.219.190 7beta.blogspot.com
72.14.219.190 kelewang.blogspot.com
72.14.219.190 jianrongchen.blogspot.com
72.14.219.190 han-1016.blogspot.com
72.14.219.190 chase4wind.blogspot.com
72.14.219.190 ideal-k.blogspot.com
72.14.219.190 kinkia.blogspot.com
72.14.219.190 ipiszhang.blogspot.com
72.14.219.190 seanhoo.blogspot.com
72.14.219.190 onecube.blogspot.com
72.14.219.190 superwhs.blogspot.com
72.14.219.190 centeur.blogspot.com
72.14.207.191 lymons.blogspot.com
72.14.219.190 sweetxyy.blogspot.com
72.14.219.190 duborz.blogspot.com
72.14.219.190 laknock69.blogspot.com
72.14.219.190 adventluna.blogspot.com
72.14.219.190 yaoyaocz.blogspot.com
72.14.219.190 cnyellow.blogspot.com
72.14.219.190 gloriaaaaaa.blogspot.com
72.14.219.190 guoyilau.blogspot.com
72.14.219.190 jiasizhang.blogspot.com
72.14.219.190 quanthr.blogspot.com
72.14.219.190 readitblog.blogspot.com
72.14.219.190 yiwuwx.blogspot.com
72.14.219.190 zgd101.blogspot.com
72.14.219.190 blele.blogspot.com
72.14.219.190 brainhu.blogspot.com
72.14.219.191 thebeatlesguru.blogspot.com
72.14.219.190 neilsun.blogspot.com
72.14.219.190 mojunkai.blogspot.com
72.14.219.190 jmanen.blogspot.com
72.14.219.190 cranecn.bolgspot.com
72.14.219.190 g--2.blogspot.com
72.14.219.190 meiwentiya.blogspot.com
72.14.219.190 zjuzheng.blogspot.com
2.14.219.191 onetoots.blogspot.com
72.14.219.190 linxuan1986.blogspot.com
72.14.219.190 changee99.blogspot.com
72.14.219.190 yinanyaxia.blogspot.com
72.14.219.190 nncyc.blogspot.com
72.14.219.190 baiyuncun.blogspot.com
72.14.219.190 otter668.blogspot.com
72.14.219.190 neoliu.blogspot.com
72.14.219.190 secserver.blogspot.com
72.14.219.190 neoallison.blogspot.com
72.14.219.190 lazycatxp.blogspot.com
72.14.219.190 zlbruce.blogspot.com
72.14.219.190 allofrss.blogspot.com
72.14.219.190 xiaolongzhang.blogspot.com
72.14.219.190 siuloongzhang.blogspot.com
72.14.219.190 nforcex.blogspot.com
72.14.219.190 lonefay.blogspot.com
72.14.219.190 yaoxuchen.blogspot.com
72.14.219.190 lizaib.blogspot.com
72.14.219.190 dowellnow.blogspot.com
72.14.219.190 liemessa.blogspot.com
72.14.219.190 pastanjauhantaa.blogspot.com
72.14.219.190 tommy-chuh.blogspot.com
72.14.219.190 0uterheaven.blogspot.com
72.14.219.190 alexwu2300.blogspot.com
72.14.219.190 china-week.blogspot.com
72.14.219.190 punymice.blogspot.com
72.14.219.190 marcher233.blogspot.com
72.14.219.190 weixiaozx.blogspot.com
72.14.219.190 sissinie.blogspot.com
72.14.219.190 dao.blogspot.com
72.14.219.190 andegg.blogspot.com
72.14.219.190 lkksdgod.blogspot.com
72.14.219.190 newspawnshop.blogspot.com
72.14.219.190 9q.blogspot.com
72.14.219.190 hitooc.blogspot.com
72.14.219.190 zhumintao.blogspot.com
72.14.219.190 zhang00000.blogspot.com
72.14.219.190 qzjackie.blogspot.com
72.14.219.190 piglet-eriol.blogspot.com
72.14.219.190 pyechanstudio.blogspot.com
72.14.207.191 okwww.blogspot.com
72.14.219.190 caohe910.blogspot.com
72.14.219.190 linghucong.blogspot.com
72.14.219.190 windancer15.blogspot.com
72.14.219.190 all-about-haze.blogspot.com
72.14.219.190 the-galle-family.blogspot.com
72.14.219.190 the-language-exchange.blogspot.com
72.14.219.190 natsplace2.blogspot.com
72.14.219.190 dailotus.blogspot.com
72.14.219.190 celerycelery.blogspot.com
72.14.219.190 nufeng.blogspot.com
72.14.207.191 hufranklin.blogspot.com
72.14.219.190 sallyzhouhan.blogspot.com
72.14.219.190 dtses.blogspot.com
72.14.219.190 zhbird.blogspot.com
72.14.219.190 vivn.blogspot.com
72.14.219.190 sharemax.blogspot.com
72.14.219.190 katezhang.blogspot.com
72.14.219.190 santhem.blogspot.com
72.14.219.190 xiaote.blogspot.com
72.14.219.190 777728.blogspot.com
72.14.219.190 jackyofchina.blogspot.com
72.14.219.190 prisg.blogspot.com
72.14.219.190 moonlightring.blogspot.com
72.14.207.191 zho0ohz.blogspot.com
72.14.219.190 eq86.blogspot.com
72.14.219.190 100shop.blogspot.com
72.14.219.190 cicinini.blogspot.com
72.14.219.190 iancn.blogspot.com
72.14.219.190 4zhu.blogspot.com
72.14.207.190 11-22-33.blogspot.com
72.14.219.190 houlb.blogspot.com
72.14.219.190 chenqj.blogspot.com
72.14.219.190 kenssinc.blogspot.com
72.14.207.191 mushixu.blogspot.com
72.14.219.190 51shine.blogspot.com
72.14.219.190 hooxi.blogspot.com
72.14.219.190 libraloft.blogspot.com
72.14.219.190 nottingham15.blogspot.com
72.14.219.190 blogpipeline.blogspot.com
72.14.219.190 moodoor.blogspot.com
72.14.219.190 emstrong.blogspot.com
72.14.219.190 hexuezhongmembrane.blogspot.com
72.14.219.190 my1860.blogspot.com
72.14.219.190 mail158.blogspot.com
72.14.219.190 swdwonder.blogspot.com
72.14.219.190 dqie.blogspot.com
72.14.219.190 myggblog.blogspot.com
72.14.219.190 city9.blogspot.com
72.14.219.190 hairuo.blogspot.com
72.14.219.190 ipole.blogspot.com
72.14.219.190 liwupu.blogspot.com
72.14.219.190 wusicheng.blogspot.com
72.14.219.190 kootublog.blogspot.com
72.14.219.190 hello-matsen2326.blogspot.com
72.14.219.190 Cloudyoung.blogspot.com
72.14.219.190 shuven.blogspot.com
72.14.219.190 QQLover.blogspot.com
72.14.219.190 GoogleGarden.blogspot.com
72.14.219.190 fujianwzh.blogspot.com
72.14.219.190 popmiracle.blogspot.com
72.14.219.190 wubuyu.blogspot.com
72.14.219.190 ichigo100p.blogspot.com
72.14.219.190 forwilson.blogspot.com
72.14.207.191 misterzeta.blogspot.com
72.14.219.190 scys77.blogspot.com
72.14.219.190 holaeurope.blogspot.com
72.14.219.190 avxjl.blogspot.com
72.14.219.190 alei1002.blogspot.com
72.14.207.191 lccl1115.blogspot.com
72.14.207.190 dhyanawu.blogspot.com
72.14.219.190 F1rs.blogspot.com
72.14.219.190 F2rs.blogspot.com
72.14.219.190 F3rs.blogspot.com
72.14.219.190 thandre.blogspot.com
72.14.207.190 finestone.blogspot.com
72.14.219.190 suneng.blogspot.com
72.14.219.190 sishugang.blogspot.com
72.14.219.190 shoresky.blogspot.com
72.14.219.190 yangming2256.blogspot.com
72.14.219.190 phonybug.blogspot.com
72.14.219.190 sexypress.blogspot.com
72.14.219.190 huajianchang.blogspot.com
72.14.219.190 fesaro.blogspot.com
72.14.219.190 jianpinglee-livelifelove.blogspot.com
72.14.207.191 2004paris.blogspot.com
2.14.219.190 tiggerwinnie.blogspot.com
72.14.219.190 egon2008.blogspot.com
72.14.219.190 xiugeng.blogspot.com
72.14.219.190 voguewantsme.blogspot.com
72.14.219.190 yunshanlau..blogspot.com
72.14.219.190 keapt.blogspot.com
72.14.219.190 saimoe2007.blogspot.com
72.14.219.190 cgshare.blogspot.com
72.14.219.190 psreiko.blogspot.com
72.14.219.190 aliennecessary.blogspot.com
72.14.219.190 marsko.blogspot.com
72.14.219.190 twelve-l.blogspot.com
72.14.219.190 hao123liu.blogspot.com
72.14.207.190 sharefortune.blogspot.com
72.14.207.191 weiyezhou.blogspot.com
72.14.207.191 mybizzfree.blogspot.com
72.14.207.191 mybizzblog.blogspot.com
72.14.207.190 mahbin.blogspot.com
72.14.207.190 huangxiaojun.blogspot.com
72.14.207.190 happycubbyhouse.blogspot.com
72.14.207.190 vizofan.blogspot.com
72.14.207.190 mifengtd.blogspot.com
72.14.207.190 wanzhong.blogspot.com
72.14.207.190 beiwei39.blogspot.com
72.14.207.190 noahlin.blogspot.com
72.14.207.190 marscast.blogspot.com
72.14.207.190 shiximedia.blogspot.com
72.14.207.191 netzoe.blogspot.com
72.14.207.191 lvpinyi.blogspot.com
72.14.207.190 hmguo.blogspot.com
72.14.207.190 djxiong.blogspot.com
72.14.207.190 chinacm.blogspot.com
72.14.207.190 ycj03.blogspot.com
72.14.207.190 shoujia.blogspot.com
72.14.207.190 cnlwl.blogspot.com
72.14.207.190 axisking.blogspot.com
72.14.207.190 iuei.blogspot.com
72.14.207.190 xaxinn.blogspot.com
72.14.207.190 deepseasprite.blogspot.com
72.14.207.190 buddcn.blogspot.com/
72.14.207.190 supermzone.blogspot.com
72.14.207.190 soguchina.blogspot.com
72.14.207.190 yk1983.blogspot.com
72.14.219.190 iveney.blogspot.com
72.14.219.190 baisiyoujie.blogspot.com
72.14.219.190 yurenbo.blogspot.com
72.14.219.190 liyisw.blogspot.com
72.14.219.190 baisiyoujie.blogspot.com
72.14.219.190 lvbin2006.blogspot.com
72.14.207.191 midiking.blogspot.com
72.14.207.191 eqilin.blogspot.com
72.14.219.190 moodysspace.blogspot.com
72.14.207.191 firefoxchn.blogspot.com
72.14.219.190 cloverzxl.blogspot.com
72.14.207.190 realmyself.blogspot.com
72.14.207.190 real-china.blogspot.com
72.14.219.190 oovip.blogspot.com
72.14.219.190 designerwilliam.blogspot.com
72.14.219.190 lu-isabelblog.blogspot.com
72.14.219.190 97city001.blogspot.com
72.14.207.190 happy20040017.blogspot.com
72.14.207.190 sinbinho.blogspot.com
72.14.207.190 bobofamily.blogspot.com
72.14.207.190 travis917.blogspot.com
72.14.219.190 2qq.blogspot.com
72.14.219.190 peihuishao.blogspot.com
72.14.219.190 orientalmotor.blogspot.com
72.14.219.190 alyzq.blogspot.com
72.14.219.190 feyn-lever.blogspot.com
72.14.219.190 hexilou.blogspot.com
72.14.219.190 vono.blogspot.com
72.14.207.190 goberl.blogspot.com
72.14.219.190 bsphackers.blogspot.com
72.14.219.190 ariesrabbit.blogspot.com
72.14.207.191 lky137.blogspot.com
72.14.207.191 goomoo.blogspot.com
72.14.219.190 daisyhaiming.blogspot.com
72.14.219.190 nicbeta.blogspot.com
72.14.219.190 qistp.blogspot.com
72.14.219.190 iwalkin.blogspot.com
72.14.219.190 jim19770812.blogspot.com
72.14.219.190 mi79.blogspot.com
72.14.219.190 jiangzerui.blogspot.com
72.14.219.190 jinbaihong.blogspot.com
72.14.219.190 bexscar.blogspot.com
72.14.219.190 ttist.blogspot.com
72.14.219.190 petermksweetdeath.blogspot.com
72.14.219.190 warren1930.blogspot.com
72.14.219.190 shellbeachdesign.blogspot.com
72.14.219.190 mischachen.blogspot.com
72.14.219.190 breastcancerroject.blogspot.com
72.14.219.190 smelllikeablog.blogspot.com
72.14.219.190 yezhimu.blogspot.com
72.14.219.190 only4sabrina.blogspot.com
72.14.219.190 alexsar.blogspot.com
72.14.219.190 theworldwillliveasone.blogspot.com
72.14.219.190 olnyfish.blogspot.com
72.14.219.190 wind-quan.blogspot.com
72.14.219.190 ybbswc.blogspot.com
72.14.207.190 ybbswc.blogspot.com
72.14.219.190 ggkandy.blogspot.com
72.14.219.190 thisiscelineli.blogspot.com
72.14.219.190 mjwjay.blogspot.com
72.14.219.190 shooven.blogspot.com
72.14.219.190 pzy84.blogspot.com
72.14.219.190 j8ckm.blogspot.com
72.14.219.190 shiningdd.blogspot.com
72.14.219.190 sexee.blogspot.com
72.14.219.190 beijingolympics-2008.blogspot.com
72.14.219.190 pengkuny.blogspot.com
72.14.219.190 newhite.blogspot.com
72.14.219.190 jingjingjie.blogspot.com
72.14.219.190 sammybeta.blogspot.com
72.14.219.190 itissing.blogspot.com
72.14.219.190 julianchoi.blogspot.com
72.14.219.190 nnlaura.blogspot.com
72.14.219.190 itissing1.blogspot.com
72.14.219.190 ariesrabbit.blogspot.com
72.14.219.190 alexcqz.blogspot.com
72.14.219.190 einimi.blogspot.com
72.14.219.190 arcqiushi85.blogspot.com
72.14.207.190 dany-ld.blogspot.com
72.14.207.190 forever1228.blogspot.com
72.14.207.190 5392521.blogspot.com
72.14.207.190 inmusicdecc.blogspot.com
72.14.207.190 imfv.blogspot.com
72.14.207.190 tatakar-studio.blogspot.com
72.14.207.190 xuzx-007.blogspot.com
72.14.207.190 unioceanoliver.blogspot.com
72.14.207.190 xqnian.blogspot.com
72.14.207.190 shoucaixia.blogspot.com
72.14.207.190 xyz.blogspot.com
72.14.207.190 natsumereiko.blogspot.com