• 2019-04-03

    苹果 MacBook Pro 屏幕缺陷导致蓝色显示异常条纹

    Views: 1605 | 3 Comments

    最近我的 MacBook Pro 因为屏幕涂层脱落, 让苹果 Genius Bar 免费更新之后, 我发现更换后的屏幕显示效果很差, 像素颗粒非常明显, 没有苹果引以为傲的 Retina 屏幕的那种细腻效果. 我甚至一度怀疑给我更换的是一个 10 年前技术的 PC 显像管显示器. 这个问题还好, 只要不抠像素, 眼睛离屏幕稍微远一点, 就察觉不到像素了.

    前几天, 在做 Keynote 和表格的时候, 我突然发现 MacBook Pro 的显示器竟然在显示蓝色的时候出现细微的灰色条纹. 这个问题是怎么发现的呢?

    在 Keynote 里添加一个默认颜色(蓝色)的方框, 然后靠近仔细观察, 你就会发现蓝色的纯色在一条一条的灰色条纹, 像是像素之间的间隙透光. 这个蓝色不是纯蓝(#0000ff), 而是带有绿色和黄色的蓝色(大概是 #3388ff).

    blue

    之后, 对比了多台同型号同年份且没有更新过涂层脱落屏幕的 MacBook Pro, 最终确认新的苹果给换的屏幕确实不够细腻, 可以认定是低品质的.

    特别是在看 Firefox 浏览器的 LOGO 图标时, 你会发现火狐抱着的中间那个蓝色的地球, 条纹最明显!

    firefox

    我外行地分析了一下, 苹果屏幕用的 LED 屏, 每个像素由三个分别是红(R)绿(G)蓝(B)颜色的灯管组成, 通过三个颜色的灯管的不同亮度叠加, 产生不同的颜色. 如果三个灯管全部最亮, 就是白色了. 这个原理就是 Additive Color .

    RGB_illumination

    可能的原因

    有了上面的基本原理之后, MacBook Pro 低档屏幕显示蓝色出现白色条纹的原因就可以分析出来了.

    1. 生产工艺太差, LED 灯管排列间距太大.

    这个原因是很有可能. 苹果用的屏幕的品牌和型号等, 不像 PC 那么透明, 无法直观的对比不同型号的品质差异. 如果真是这个原因, 那么便是生产工艺缺陷, 导致两行像素之间的间隔太大.

    不过, 为什么蓝色(#3388ff)那么明显的. 应该涉及到单个像素的 RGB 三个灯管的排列方式.

    2. RGB 分组排列导致 R 和 G 出现在同一行

    我觉得屏幕生产厂商不太可能这么蠢, 除非有特殊考虑. 如果真的出现这种状况, 不同组的红灯和绿灯刚好组成了一条黄线, 那么出问题的蓝色(#3388ff)中的 R(33) G(88) 组成一条绿线, 同时受蓝色灯管影响, 就会变成浅白色的条纹了.

    外行分析, 如果有专业人数, 欢迎提供信息.

    Posted by ideawu at 2019-04-03 20:54:58
  • 2016-05-22

    到底是谁没有契约精神?

    Views: 5070 | No Comments

    前几天, 某个农产品网店做生意赔了几十万, 然后指责农民没有契约精神的事在知乎上讨论挺火. 但是, 约超过一半的人指责"农民没有契约精神", 当然, 也有不少人指出这个网店做生意赔钱的本质在于其不尊重市场规律而且没有现代商业所应有的品控体系导致的.

    不过, "农民没有契约精神"这样的字眼比较扎人, 而且, 我看到网络社交网站上不少莫名其妙的朋友也在附和, 基于完全没有道理的依据来附和, 这让我十分不爽.

    提到某个支持"农民没有契约精神"的言论, 这个言论漏洞百出, 但有些读过书的人竟然因为偏见而不认识其中的错误. 这个言论大致如下:

    某商家与农民群体签定合同, 不过, 合同细节没提, 从后来事情的发展来看, 应该是框架合同, 所以合同本身估计没有商定细节. 合同大体如言论中提到, 约定商家按2毛每斤的价格在第一年收购农民的蔬菜.

    第一年, 市场供给过剩, 价格大幅下跌至1毛每斤, 于是商家决定"慢慢地", "陆续地"履行合同, 价格仍按合同价. 很明显, 由于合同标的物是蔬菜, 具有严重的时间敏感性特点, 所以, 此商家已经毁约. 后来, 在农民的维权和当地部门强力之下, 商家不得不对自己的毁约行为进行补救, 按合同价格立即收购. 这个结果似乎给了商家错觉, 让他认为他已毁约这个行为并不存在, 并且他自己"很有契约精神", 事实上, 整个事情是商家先违约, 然后被惩罚, 后面的履约行为不过是对其违约行为的惩罚过程.

    基于某些考虑, 新合同继续. 条款和旧合同应该类似.

    第二年, 市场供给不足, 价格大幅上涨至3毛. 商家合理地要求农民按合同价格履约, 但农民故意违约.

    于是, 那个言论轻易地单方面指责农民"没有契约精神", 引得不少低级的知识分子赞同, 这是十分可笑的. 整个事情几年下来, 商家既没有契约精神, 农民也没有契约精神. 而且, 如果先后顺序对结论有决定性影响的话, 还是商家"先"不要脸单方毁约.

    有朋友提到, 这个事情其实反映的是市场不成熟, 这也是我的观点.

    一是当事双方不成熟. 商家只考虑价格, 不考虑供给数量, 这完全丧失了市场的基本要素. 农民没文化, 只能跟商家签定不成熟的合同, 最后导致合同违约. 从商业的角度, 这类合同根本就不应该出现, 哪有只定价格, 不定交易数量的远期交易合同? 这种合同严格意义上就是道德约定, 和古代社会的私下口头约定没有区别. 而且, 这个合同的标的是时间极度敏感的生鲜食品, 应当根据交易标的物的特点, 制定完善的交收步骤以及应对市场变化的措施等等, 但都没有.

    二是管理部门和法律不成熟. 商家违约被处罚要求继续履约, 而农民违约则无法被追究. 由于商家是一个, 而对应的农民成百上千, 每个农民的违约金额不过几百(原文如此), 显然, 追回损失的成本太高, 这也是农民违约而不被追究这种事实出现的客观原因.

    所以, 单方面指责"农民没有契约精神"是不科学的, 不符合事实的. 而且, 在面对没有契约精神的商家时, 农民出现了违约, 只单方面指责农民也是不道德的, 是滥用基本知识优势, 是非常虚伪的.

    Posted by ideawu at 2016-05-22 16:15:58
  • 2013-11-07

    git 常用操作

    Views: 14453 | 1 Comment

    创建分支

    git branch abc
    

    切换分支

    # 本地
    git checkout abc
    # 远端
    git fetch
    git checkout abc
    或者
    git branch abc origin/abc
    

    删除分支(本地)

    git branch -d abc
    

    删除服务器上的分支(远端)

    #git push origin :abc
    #或
    #git push origin --delete abc
    然后, 其它人必须调用 git fetch -p 同步状态
    

    合并分支到主干

    git checkout master
    git pull
    git merge --no-ff abc
    

    对比分支

    git diff master abc
    

    列出远程分支

    git branch -a
    

    修改 commit log

    git commit --amend
    

    查看文件变动历史

    git log --name-status
    

    git 回滚

    # 查看历史
    git log
    git reset --hard comit_id
    git push -f origin branch_name
    

    如果遇到类似 "The requested URL returned error: 401 Unauthorized while accessing" 的错误提示.

    Instead of:
    git clone https://github.com/org/project.git
    do:
    git clone https://username@github.com/org/project.git
    or
    git clone https://username:password@github.com/org/project.git
    

    git diff 忽略掉新文件

    --diff-filter=M
    

    分支覆盖

    用 dev 分支覆盖 master 分支(删除 master, 然后重建).

    git checkout dev
    git merge --strategy=ours master    # keep the content of this branch, but record a merge
    git checkout master
    git merge dev             # fast-forward master up to the merge
    

    git tag

    git tag abc
    git push origin abc
    
    git tag -d abc
    git push origin :refs/tags/abc
    

    git log

    git log
    git log -p file
    

    git diff

    git diff origin/master
    git diff commit_1 commit_2 file
    
    Posted by ideawu at 2013-11-07 13:39:48 Tags:
|<<<1>>>| 1/1 Pages, 3 Results.