自言自语

I'm Wang Xianyuan, writing for myself, more studying, more experience…

How To Mount /SDCard2 as /SDCard

By

What this will do is mount /sdcard2 as /sdcard and your phone storage /sdcard, to /sdcard2. 

Okay, so I started playing around in the vold.fstab, thanks to some inspiration form this thread : http://forum.xda-developers.com/show….php?t=1625238,
and I managed to change to get the internal memory show as the external sdcard, and my 32GB sdcard to show as the phone storage. 

If you would like to try this, then use an app like root explorer and navigate to /system/etc and open up vold.fstab. 

You’ll see two lines:
dev_mount sdcard /mnt/sdcard emmc /devices/platform/msm_sdcc.1/mmc_host
dev_mount sdcard2 /mnt/sdcard/ext_sd auto /devices/platform/msm_sdcc.3/mmc_host

Change them to this:
dev_mount sdcard2 /mnt/sdcard/ext_sd emmc /devices/platform/msm_sdcc.1/mmc_host
dev_mount sdcard /mnt/sdcard auto /devices/platform/msm_sdcc.3/mmc_host

Then reboot. 

Both mount points are accessible through file explorers, and both are accessible using an MTP connection (Media Sync) when connecting to the computer.

 

Transfer from:http://forum.xda-developers.com/showthread.php?t=1716166

Posted in Digests, Study | Comments Off on How To Mount /SDCard2 as /SDCard

为什么美国有那么多肌肉极其强大的肌肉男?

By

题主说的基本上是客观存在的事实,除了以下这句:

我想知道为啥中国人练成肌肉这么难

这是误区,嗯,根本不存在中国人/亚洲人练“肌肉难”这一说法,我放到最后再讲。
为什么美国有那么多肌肉极其强大的肌肉男?对这个问题,我就不谈什么文化差异了,单纯从客观的角度说说。

一、肌肉增长的原理

首先我要说一下肌肉生长的原理。
这个原理我在知乎上的健身话题的各种回答里已经复制黏贴了7、8次了 。因为这玩意不搞清楚,大多数问题无从谈起。
实际上肌肉并不是在锻炼过程中长出来的。在锻炼时,你的训练会使肌肉纤维被破坏,而回家补充的蛋白质就是用来补充被破坏的肌肉的,在补的过程中,原先的肌肉纤维会慢慢变大,使得你下次训练时肌肉纤维能够承受更大的重量,这就是肌肉生长的基本原理。
所以其实肌肉增长,无非两点,一是锻炼,二是饮食
如果一个不锻炼的人,那么她/他拥有强大的肌肉的可能性为0%,除非他/她使用类固醇和睾酮这类激素。而一个只锻炼,却没有补充足够蛋白质的人,他拥有大量肌肉的可能性也是微乎其微。
二、我国青少年绝大多数蛋白质摄入缺乏/运动不足
我个人经历的这二十几年周围的人的习惯,给我的普遍感觉就是,我国瘦的人一般就真的只是瘦,都没肌肉。即使很经常运动的人感觉也都不注重肌肉的维持不注重蛋白质的摄入,所以肌肉很容易就流失。绝大部分人饮食上完全没有蛋白质、碳水化合物的概念。
也正因为没有蛋白质的概念,所以那些肌肉只能算是正常水准、蛋白质摄入量足够的人,往往是体脂含量超标的人,也就是俗称的微胖界人士,或者真正的胖纸……
因此,我国大部分人都是处在蛋白质缺乏状态。
这样即使有足够的锻炼,也很难能够得到足够的肌肉。
三、大量的健身误区
我想这是除了运动不足以外最重要的因素了。以下随便举几个:

  1. 认为肌肉的增长会降低身体灵活度和速度。
  2. 以为肌肉是随便就可以练出来的。——“我不想去健身房啊,到时候一不小心就练成肌肉男就完蛋了”巴拉巴拉……
  3. 分不清脂肪和肌肉的区别。——“怎么减掉肌肉啊?手臂好粗小腿好粗好难看”巴拉巴拉……
  4. 以为跑步会增加小腿肌肉。——“最近跑步小腿都跑出肌肉了……”
  5. 根本不懂碳水化合物、脂肪、蛋白质的区别是什么。很多人以为减肥=绝食。——“我有个朋友一个月只吃苹果瘦了20斤”哎,我已经听到过无数这种神迹了。
  6. 有腹肌的人腹部力量会比没腹肌的人强。

归根到底,是我们从教科书上学习了各种生物知识自己却不懂得运用到生活中,对于这类人体的生理知识不了解,锻炼的方法也不得体。
四、这里来对比一下吧

  1. 美国人很早就开始系统的健身。 对于美国人而言,他们大多数人很早就开始接触健身房——这还是由于社会和文化因素,一般在学校内受欢迎的学生往往是体育方面好的,而不是成绩好的geek。这里不多谈了。 不要说几年,其实只要系统地在健身房练了一年的人,和没练过的完全是天壤之别。一个人只要17岁开始接触健身,到20岁,那身板虽然不能算彪悍,但是也能算得上非常非常结实了。美国人从15、6岁开始健身锻炼其实是很常见的。
  2. 锻炼的长期性。我看《心灵捕手》的时候,印象很深的是,主角和那个心理咨询师有在谈论健身的问题,那个心理咨询师老头说自己有长期练举重(奥运会那种举重)——其实在美国的电影和电视剧里看看就会发现,里面的老头大多数身体很壮实,很少有那种身形单薄的老年人出现。这完全是他们长期锻炼注重身材的结果,而不是天生的。 
  3. 抛开锻炼,在饮食方面,这个就更不能比了,大部分中国人对于鸡蛋的认识还停留在“一天只能吃一个”,对蛋白粉的认识还停留在“吃多了会把身体搞坏”“吃多了伤肾”上——这个对身体的副作用完全被夸大了好几个数量级。而美国人……都开始为了追求绝对力量和身材吃类固醇类激素了——即使他们确定这个对身体真的有副作用。
  4. 氛围。中国的健身房,能开上5年以上,能够大量盈利的,微乎其微。整个行业很混乱,有的健身房开两年就卷钱跑了,很多教练其实就是推销员,中国人更喜欢去运动场或者大街上跑步,也不愿意去健身房。
  5. 健身知识的匮乏。不应该忽视的一点是。即使在我国大学体院的学生或者中学体校的学生,很多也没有系统的健身知识。

五、根本不存在中国人/亚洲人练“肌肉难”这一说法
这是绝对的错觉。
不是练中国人练肌肉难,而是练肌肉本身就难,比减肥难很多。
拿高考作比喻,练肌肉像是学语文,无法在短期内获得大量的肌肉,而且往往用功了却不见效果,但是减肥却像是学数学,只要你肯努力用题海战术肯定有用功就有收获。

  1. 肌肉增长是一个长期的过程。 正常人一个月内能够增长0.23kg的肌肉,已经算是极限。 (数据出自《无器械健身》) 楼主你看到的那些在健身房练的人,如果是青年人基本上健身的年龄不会超过3年。时间、饮食上都跟美国人没得比。
  2. 增肌过程中有非常多需要注意的事项在,这是一个技巧性的项目。比如用分化的训练方法,比如哪个动作刺激哪块肌肉?比如在瓶颈期如何快速突破?比如如何增加肌肉的纬度?如何增加肌肉的耐力?如何增加肌肉的爆发力和力量?这些都是你要知道的。(更详细的参见本人回答《为什么说增加肌肉是技术活,难道不是体力活嘛?》http://www.zhihu.com/question/20589558/answer/15571966
  3. 更关键的是,肌肉如果不练,就会萎缩。 肌肉主要成分是蛋白质。蛋白质的基础代谢率是脂肪的数倍,在几百万年的进化过程中,食物还在匮乏阶段,人类要以最小的代价去适应自然,因此如果肌肉没有运用,那么会很快消失,无它,只是因为肌肉组织消耗的热量比一切身体组织都高。它就像军队一样,军费开销太大,国库是受不了的。

最后的最后,扯一句,把一切归结到人种和基因上是不对的——虽然基因确实有差异,但还是那句话,“以绝大多数人的努力程度之低,根本轮不到去拼天赋”。基因是一代代遗传的结果,如果你从现在开始好好锻炼,未来也能够造福子孙……
我爷爷的祖上都是农民,我爷爷也是劳动人民无产阶级,所以身体很好。65岁一个人从福建骑车去海南,现在快70多岁了看上去身体依然很结实。
我爸年轻时候兵乓球羽毛球篮球排球各种运动都上,从小到大都是体育委员。我18岁的时候他一个40多岁的人爬山比我还快……50岁还在学打网球。
然后我发现,确实他们给了我一个很棒的体质。

Posted in Digests | Tagged: | Comments Off on 为什么美国有那么多肌肉极其强大的肌肉男?

哪些魔鬼细节反映出你是 PM 或者 UX 新手?

By

我是做用户体验的,但是如果有人跟我说某某产品/设计“体验很好”或者“满足用户需求”这样的话,我就不免皱起眉头来,心里想这人一定是个初学者或者门外汉。
因为一个用户体验的专业人士是不大会用“体验”、“需求”这样宽泛笼统的词汇的,他们会使用更加精细和精确的表达,把他们的想法毫不含糊地展现出来。
如果在一个领域里,你无法洞察和辨析各种细微的差别,或者无法把这些差别精准地表达出来,那么多半是个新手。
这个道理几乎在所有领域都适用。一个优秀的品酒师,轻呷一口,就能立马说出该酒的年代、香型、产地和品牌,展现的就是这种精准的辨析力。而这种精确需要长时间的积累和打磨。
原研哉《设计中的设计》中最击中我的一句话是,“生活跟时间就好像是一系列整数——1,2,3,4——顺序地进行,顺序地过去,但我却认为生活可以是点数——2.1、2.2、2.3……当中有着无尽可能。”从习以为常的整数型生活中洞察出分数的存在,展现的就是大师对细微之处的敏锐度和穿透力。
所以,为了避免被人一眼认准是新手的尴尬,或者出于想成为领域专家的自觉,你必须有意识地去追求精确的知识、精确的思考和精确的表达。相反,如果你沉醉在各种庞杂、臃肿、流行、模糊的词汇中沾沾自喜,基本上就永远只能是个新手。
— 完 —

转自:http://www.zhihu.com/question/20594164/answer/15583806

Posted in Digests | Tagged: | Comments Off on 哪些魔鬼细节反映出你是 PM 或者 UX 新手?

博客整理并升级

By

昨天晚上去BE官网看还是2.7 RC版,今天上午再看就是正式版了。下载下来跑了一下,比我接触的上一个版本(2.5)完善了许多,包括增加了在线管理上传文件,隐去URL中的.aspx后缀,完善的在线安装主题、Widget等。但还有很多地方大概是兼容性不好,我没有调试成功。例如新的附件上传,多博客的控制台会出现错误页面,WWW的强制移除等。

BE目前的设计和2.0相比调整了太多,而兼容性问题导致可用性低,搞得我有点无所适从了。博易中文版已经一年都没有动作了,如果2.7能够经过小的修改就能修正这些兼容性的问题,我想年内发布一个版本会是一个不错的决定。但如果要大刀阔斧去调试修改,恐怕得等到可用性有明显提升之后,中文版才会跟进了。

这周整理了博客的文章,主要是删除了一些时效性不高的博文。目前本博客已经直接从2.0升级到2.7,升级依然很方便。

囧马的重生

By

最近天气热,电脑不关机不行。但是之前电脑上一直运行着囧马的蜘蛛,采用C/S模式向服务器发送同步信息。24小时开机就是为了及时同步各站点的内容。而一旦关机,囧马就没法及时同步了。

再加上囧马之前基于ASP.NET开发,现在已不太愿意在ASP.NET下面做什么了,一直想转到LNMP。终于在一个周末,下决心把这事给办了。下面就是囧马的新版,仅保留了最必要的功能。

jm

这次是服务器定时同步,虽然更新频率不及之前“分布式”的高,但也足够了。最重要的是,给我自己的电脑减负了。最后再缅怀下旧版本。

 

跨站请求伪造(CSRF)的防范方法

By

跨站请求伪造(即CSRF)被Web安全界称为诸多漏洞中“沉睡的巨人”,其威胁程度由此“美誉”便可见一斑。我们谈谈“跨站请求伪造”(CSRF / XSRF)(Cross Site Request Forgery)。而这种脆弱性在网络上是十分的普遍,许可证是通过一个受害者在发送一个HTTP请求到网站,然后以这种方式记录和信任该用户。

以这种方式攻击须要构造一些恶意的HTML和JAVASCRIPT代码。用途是一个受害者访问了这个网站后会做到我们之前所放置的一些行为。而这种形为就是一种复杂性证明的CSRF攻击!

而这种会话传输能够很轻易的被Html的行为和标记语言所接受,BBcode也是如此。

伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。这种攻击常见的表现形式有:

伪造表单,引诱用户提交。表单可以是隐藏的,用图片或链接的形式伪装。

伪造链接,引诱用户点击,或是让用户在不知情的情况下访问

比较常见而且也很廉价的防范手段是在所有可能涉及用户写操作的表单中加入一个随机且变换频繁的字符串,然后在处理表单的时候对这个字符串进行检查。这个随机字符串如果和当前用户身份相关联的话,那么攻击者伪造请求会比较麻烦。

yahoo对付伪造跨站请求的办法是在表单里加入一个叫.crumb的随机串;而facebook也有类似的解决办法,它的表单里常常会有post_form_id和fb_dtsg。

随机串代码实现

其实,我们也可以山寨一个crumb的实现,代码:

<?php
class Crumb {                                                                                                   
 
    CONST SALT = "your-secret-salt";                                                          
 
    static $ttl = 7200;                                                                                            
 
    static public function challenge($data) {
        return hash_hmac('md5', $data, self::SALT);
    }                                                                                                              
 
    static public function issueCrumb($uid, $action = -1) {
        $i = ceil(time() / self::$ttl);
        return substr(self::challenge($i . $action . $uid), -12, 10);
    }                                                                                                              
 
    static public function verifyCrumb($uid, $crumb, $action = -1) {
        $i = ceil(time() / self::$ttl);                                                                            
 
        if(substr(self::challenge($i . $action . $uid), -12, 10) == $crumb ||
            substr(self::challenge(($i - 1) . $action . $uid), -12, 10) == $crumb)
            return true;                                                                                           
 
        return false;
    }                                                                                                              
 
}

代码中的$uid表示用户唯一标识,而$ttl表示这个随机串的有效时间。

应用示例

构造表单

在表单中插入一个隐藏的随机串crumb

<form method="post" action="demo.php">
<input type="hidden" name="crumb" value="<?php echo Crumb::issueCrumb($uid)?>">
<input type="text" name="content">
<input type="submit">
</form>

处理表单 demo.php

对crumb进行检查:

<?php
if(Crumb::verifyCrumb($uid, $_POST['crumb'])) {
    //按照正常流程处理表单
} else {
    //crumb校验失败,错误提示流程
}
?>

Posted in Study | Tagged: | Comments Off on 跨站请求伪造(CSRF)的防范方法