Why the Experience of Online Reading Is So Awful?

Now, if you frequently read some articles by the way of online Web in the browser, the experience can be horrible.
I think it may be caused by tree reasons:

  • Fragmented reading.
    The emergence of mobile applications has led to a fragmented reading habit , according to the latest report on Internet use.
    People become to grow less patience for during suffering on the internet
    when the title didn’t attract him or the length was too long to surpassed 1600 characters(or 800 chinese characters)
    ref the-ideal-length-of-everything-online-according-to-science
    and their updater
  • The dirty use Enviorment of domestic browsers.
    1. left and right side bar
    2. ad bar
    3. status bar
      such as 360 browser/ sogou browser and so on.
  • The internet Problem.
    1. Jitter
    2. blocked

What Is Testing & QS in My Mind?

我理解的测试及质量保证

测试是保证软件质量的下策

可以从两方面验证一个软件正确性:

  • Formal Verification(形式证明)
    给出一个描述,软件应该怎么样,通过逻辑分析或数学推理,证明我这个功能是100%不会出错的,没有特例。
  • 测试
    根据预设的条件,选取一些正常的,特殊的或边际点,看能否得出预期的正确的或错误的结论,肯定有一些路径是没有测试到的,只有一部分测到的地方把握没错。

可知,这两者在覆盖度是不可同日而语的,做Formal Verification更加严谨。
但是经常做Formal Verification 花时间或不可能,比如:规则不明,需求不明确,只有通过测试,在快速迭代过程中,书写足够多的单元测试以及进行回归测试,来尽可能保证相对稳定的产品质量。
总之,测试虽然是下策,但能够给你一个清晰的客观的指标,给你信心进行下一个迭代。

Read More

A Ragbag of Bitcoin

To Be Continued

Block Chain and Byzantine Generals’ Problem

all come from Paul Bohm‘s answer on quora question
It inspired me.

Bitcoin is a theoretical and practical breakthrough that makes it possible to decentralize services we couldn’t previously decentralize.

To elaborate: Bitcoin isn’t just a currency but an elegant universal solution to the Byzantine Generals’ Problem[1] in computing, one of the core challenges in reaching consensus in distributed systems. Until recently the problem was thought not to be solvable at all, much less on a global scale. Regardless of its currency aspects, many experts believe Bitcoin is brilliant, in that it technically makes possible what was previously thought to be impossible.

The Byzantine Generals’ Problem goes roughly as follows: N Generals have their armies camped outside a city they want to invade. They know their numbers are strong enough that if at least half of them attack at the same time, they’ll be victorious. But if they don’t coordinate the time of attack, they’ll be spread too thin and will all die. They also suspect that some of the Generals might be disloyal and will send fake messages. Since they can only communicate by messenger, they have no means to verify the authenticity of a message. How, then, can such a large group reach consensus on the time of attack without mutual trust or a central authority, especially when faced with adversaries intent on confusing them?

itcoin’s solution is this: All of the Generals start working on a mathematical problem that statistically should take 10 minutes to solve if all of them work on it. Once one of them finds the solution, she broadcasts that solution to all the other Generals. This solution then becomes the next problem. Everyone then stops to work on the previous problem, and proceeds to use the previous solution as the next problem—which again should take another 10 minutes. Every General always starts building upon (using as the problem) the longest chain of solutions he’s seen. After a solution has been built upon (extended) 12 times, every General can be certain that no attacker controlling less than half the computational resources could have created another chain of similar length, because it took a lot of computational resources to extend the chain 12 times. The existence of the 12-block chain of solutions is proof that a majority of Generals have participated in its creation. This is called a proof-of-work scheme.

If this sounds confusing, don’t worry. What it means is simply that consensus is reached because computational resources are scarce. You vote with work. So to rig the vote, an attacker would need to control more computational power than the honest participants have. Also, to ensure that it’s more expensive for an attacker to purchase the computational power needed to attack the system, Bitcoin adds an incentive scheme. Users who contribute computational power get rewarded for their work. Thus, if the value of a Bitcoin rises and attacking the system becomes more profitable, it also becomes more profitable for honest users to add computational resources. Here’s an example of how this works: At any given point, one would expect miners to invest as many resources into mining as is profitable for them. Bitcoin then also is a currency, because it needs incentives to protect the consensus process from attackers. This computational process (“mining”) is not wasteful, but an incredibly efficient way to make attacks economically unprofitable. Bitcoin never uses more computational resources than necessary to protect the integrity of its interactions.

Now let’s return to discussing the value provided by Bitcoin. Essentially it’s a means to make consensus in highly distributed large-scale systems that would otherwise never be able to accomplish that. The value of this is, that it’s now possible to build applications in a decentralized fashion that we previously thought could not be built without a central authority. The most obvious example is of Bitcoin as a medium of exchange for goods and services that can’t be easily bought or sold using cash issued by a central authority. But there’s more. Bitcoin also makes it possible to fully decentralize the DNS (Domain Name System). Every Bitcoin Domain Name comes with a cryptographic key pair, which also allows us to solve the PKI (Public Key Infrastructure) problem: every name you connect to, has an encryption key associated with it that can be verified without having to trust a central authority. Moreover, in case network traffic monitoring prevents people from accessing information either at all or anonymously, Bitcoin makes it feasible to pay for internet relays that anonymize or reroute traffic—that is, it makes it easier to remove central control and fight censorship. The list of benefits goes on, and I’ve been hard-pressed to find any decentralization schemes that would not benefit from Bitcoin integration.

The pattern here is that almost all of these applications can already be built in centralized form. But often the centralized solution comes with many weaknesses. In the PKI case, you have to trust over 300 Certificate Authorities every time you make an https:// connection, many of which are located in countries with repressive governments. If any of those 300 entities are compromised, malevolent attackers will be able to read your email, access your bank account, and violate your privacy. DNS is being censored by governments simply because they can do it. And every time you store value in currency, you’re trusting a central authority to ensure that it isn’t mismanaged and won’t depreciate in value.

So is there really value in Bitcoin? The answer depends entirely on your perspective. Let me ask a counter question: Is decentralization valuable? If you think we’ll increasingly lose trust in the central authorities that manage the infrastructure we rely on, you might expect Bitcoins to rise a lot in value. If, however, you believe that authorities will be able to tackle the challenges of the future better in centralized form, then from your perspective Bitcoins don’t add value. Time will tell which viewpoint is correct.

Something About Lawrence Li

The following infomation completely come from lawrencelry’s answers on zhihu
Now, let’s go:

China

我們在中國用不上好東西的原因。一切只要「有」,不要「好」。所有事情,做到就好,姿勢好不好看一概不理,甚至好看還會被鄙視。

为什么外国人特别喜欢晒太阳?

不記得在哪裏看的了,歐洲人古代以白爲美,因爲白表示他們不是勞動人民而是貴族,不需要頂着太陽工作。現代社會情況不同,大家都在辦公室裡待着,能曬表示「我能到處去玩」,反而是財富象徵了,因此古銅色成了時髦。

Read More

How to Store Hexo Source and Theme on Github

When you have the ability to use hexo, you may be wonder what should we do if my device lost or
broken, how to store and transfer my source of hexo, now you need follow below these steps:

  1. init git and create branch from your blog repository

    1
    2
    3
    cd Hexo 
    git init
    git branch source
  2. edit .gitignore and add hexo source

    1
    2
    3
    4
    git  status
    git add * or git add .
    git add .gitignore
    git commit -m "add source"
  3. add themes/minos
    if you wants to add themes/minos source,it failed, you will see:

    1
    fatal: Pathspec 'xxxx' is in submodule 'themes/minos'

    because .git dir exist in themes/minos, you should do this:

    1
    2
    git rm --cached themes/minos/
    git add themes/minos/
  4. push branch

    1
    2
    3
    git branch -a
    git remote add origin https://github.com/geoxing/geoxing.github.io.git
    git push --set-upstream origin source
  5. first store over

  6. update when source changed

    1
    2
    3
    git status
    git add source/_posts/how-to-store-hexo-source-and-theme-on-github.md
    git push -u origin source
  7. enjoy

Add Local Images Using Github as Imagebed in Markdown

In the post How to develop commercial production
I get a problem,like the expression shown:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
- Project Architecture diagram  
![image](file:E:\geoxing.github.io\ci1.png)
- develop process diagram
![image](file:E:\geoxing.github.io\ci1p.png)
- Quality Assurance
hand-test
#### multi-projects, one build for mid business
Module num > 20
develop num > 100
- Project Architecture diagram
![image](file:E:\geoxing.github.io\ci2.png)
- develop process diagram:
commit role: from dev to bundle
commit way: from committing code to repositories
![image](file:E:\geoxing.github.io\ci2p.png)
![image](file:E:\geoxing.github.io\ci2d.png)
- Quality Assurance
make code review platform
make bundle platform
make buider platform
make test platform
make insepection platform
make gray release process
![image](file:E:\geoxing.github.io\ci2q.png)
#### multi-projects, multi-build, pluginization for large business
every Module is individual on the develp,code review,integration,test
- Project Architecture diagram
![image](file:E:\geoxing.github.io\ci3.png)
- develop process diagram:
![image](file:E:\geoxing.github.io\ci3p.png)
bundle dev phase
integration phase
release phase
- Quality Assurance: CI,CD
![image](file:E:\geoxing.github.io\ci3q.png)

and,after it is be generated, deployed, and tested , all the images gone.
finally, I figure out the imagebed must be used, and github may be available
so, the steps is:

  1. create a repositories named photos on github
  2. make dir named photos
  3. git bash on dir
  4. add images into the github

    1
    2
    3
    4
    5
    git init
    git add *.png,*.jpg
    git commit -m "add some markdown photos"
    git remote add origin https://github.com/geoxing/photos.git
    git push -u origin master
  5. replace the local path by the raw path of image on the github

  6. enjoy!

Order of Last Name/family Name/surname and First Name From Chinese Name

In china, the last name/family name/surname is placed before a person’s given name/first name, for example, Wang Ming and Zhang sifeng,
but if you send email or introduce youself on your business card, what kind of order is more formal?
In my opinion:

Surname must be upper-case

1
2
3
WANG
CAI
XING

The given name’s first character must be capital

1
2
Ming
Sifeng

So, I recommend this format should be better: first name+,+space+last name

1
2
3
4
Ming, WANG
Sifeng, ZHANG
Huifeng, XING
Weiwei, CAI

Mind Punctuation Mark

No.1 switch into english punctuation mark status

Punctuatiion mark like comma, semicolon, colon, exclamation mark, and the following characters have a space, and the previous characters is adjacent

1
2
error: Hi,I'm an entrepreneur.Can you make this app for me for free?Because,you know,I have this brilliant idea but I don't know how to code.
right: Hi, I'm an entrepreneur. Can you make this app for me for free? Because, you know, I have this brilliant idea but I don't know how to code.

Brackets and both front and back characters have spaces, but in the inside of Bracket, no spaces

1
2
error: Byte Press(née Tangcha ) is the best Chinese-language eBook app. Period.
right: Byte Press (née Tangcha) is the best Chinese-language eBook app. Period.

Read More

Hexo Tips

Markdown engine sucks

When the post “Build static blog using github & hexo on windows” was generated,I privew in the
brower, it sucks,many element of markdown can’t be rightly compiled,for instance,”quote”,
but in the issue of github,it’s ok(finally i choosed the issue)
So,I try to replace the “hexo-renderer-marked” by “hexo-renderer-markdown-it”,but the same result,
how could it be ?

Add tags

In hexo , the tags’s format is:

1
2
3
4
5
6
7
8
tags: 
- Requirements;
- Develop
- Design
- Integration
- Operation
- Analysis
- Cycle

the separator is not semicolon or comma

Add Categories

like “add tags”

Read More