年终总结!?
换了工作,搬了家。
开始带小团队,产品经理入室。
开始做一个动漫周边的业余项目,找小伙伴,找支持,用业余时间做点运营。也有了一些小小的成果。最初夸下的『两年内转行做动漫』,说不定真有实现的可能。
学了 HTML CSS,在 JS 上遇到了一些小挫折。
匆匆又是一年。
换了工作,搬了家。
开始带小团队,产品经理入室。
开始做一个动漫周边的业余项目,找小伙伴,找支持,用业余时间做点运营。也有了一些小小的成果。最初夸下的『两年内转行做动漫』,说不定真有实现的可能。
学了 HTML CSS,在 JS 上遇到了一些小挫折。
匆匆又是一年。
目录性质的软件推荐目录。网站目标是:“一个门类,只推一个软件,不给你选择”。
纯手工编辑,美工弄好看一点,弄个邮箱然后装高冷只收不回。如果数量多了,数据库还是得要一份的。
怎么推荐呢?
当你需要一个软件实现某个功能时,我只推荐一项。
比如 OCR 识别,就选 ABBYY 了,不需要考虑其它的;
图像处理,就选 Photoshop 了,我不管你是怎么弄到 Photoshop,反正我就推荐它了。大而全,功能都能实现,其它都是小意思;
自拍就美图秀秀了;
邮件,嘛,Outlook 和 Foxmail 都挺好的,但如果只推荐一项,我就推荐 Foxmail 了;
家谱软件,我看的最好的就是 Mac 下的 FamilyTree,再找找 Windows 下有什么好软件;
架博客,就用 WordPress 吧,功能较全,架设方便,甚至也有 VPS+Wordpress+域名 的打包解决方案。什么 Ghost、PivotX、Jekyll 都让 Geek 们自己折腾去;
等等。
可以理解作软件推荐版的好 123。
选择原则大概就是功能较全,或者效果最好。以不选择为前提,给出的就更倾向于较多功能的东西。效果好,指核心功能简单易用,上手顺利。
原因有二:
一、作为一个强迫症患者,我在需要软件解决一个问题时,往往会搜索该需求下的所有软件全部都试一遍,然后挑出我认为最舒适的一个软件,并为自己精妙的选择骄傲不已。后来发现,为了体验每一个软件,消耗掉的时间往往比实际使用软件能节约下来的时间更多。
比如我尝试过至少十来款记账软件,或者是主打简洁,或者是主打同步,但用来用去实足半年,真正的记帐这事却每次换 app 都重来一遍。最后买了个随手记,就不再去关心别的软件了,管它有多少功能,反正我就按天记个帐就行。
作为一个产品经理,去尝试很多软件,可以说是职业素养的一部分。但作为一个普通人,生活还是应当节省时间去做爱做的事情的。
二、实际工作中经常扮演救火兵的角色,有时也需要去解决并不擅长的问题,使用甚至没有听说过的软件的。这种时候有一个合适的推荐就很重要了。
所以这是一个“推己及人”的个人项目,虽然我一直说产品经理不是正常人,产品经理的自身需要往往不是正常需求。但在这个项目上,还是可以尝试一下普通人的角度看待问题的。
所以你看,再怎么着,这也是一份主观的选单,反映的倒不一定是我的个人口味,而更像是通过一份软件的表单,反过来表达我在产品经理这个身份上的选择直觉。
先记一笔,寒假大概就有时间去设计了。
断续写了三周多,一共一万一千字。
这个写起来比脑残水文之类的累多了,几乎每一句都要考证一下。
即使是今天号称写完了也还是有好多条并没有验证过。
尽管如此,WordPress 后台的版本记录都已经有 85 条了。
所以其实是终于基本完成,然后不想写了,不想修补完善了。
本来还想写第二篇,数学模型下的战争分析,借星际讲点人类战争中的数学分析。
其实这第二篇才是最本意想写的东西,还是先放一段时间吧。
链接:《 星际争霸 2 攻防数值研究 》
Hi, 我又来发文耽误大家阅读时间了。C 酱小组最近又有了很多进展,只是暂时还没有在界面上体现出来。正因为如此,更要好好地讲讲。
国庆七天长假是秋天以下的又一波 cosplay 大高峰。C 酱作为 cosplay 的二手交易搜索站,也很直接地体会到了 coser 们『展前急求购,展后苦出售』的种种悲剧,对此 C 酱只能说……吃不上饭的都是真爱 (≖ ‿ ≖)✧
言归正传。
目前 http://cosjiaoyi.com/ 过去 30 天数据依然保持大约 5500 PV,UV 略有下降,900 多不到 1K。但回头客(回访率)有所上升,到了 31%。
大致的结论是,我们『真正的』用户数依然在稳定增长。我一直在做一些简单的运营,也偶尔与用户有私下的交流,对网站的『有用』有比数据更直观的感受。这些大多来自于用户的直接反馈,有赞美,也有抱怨。每次我都很开心,那并不是罗列数据所能展现的,但却是更本质的东西……因为用户八成都是萌妹子……≖‿≖✧
言归正传。
因为 cosplay 本身的周期因素——也就是天气冷了、要考试了、漫展少了等因素,总访问量受到一些影响,没有如预期一样继续稳步增长。另一个因素是,用来做微博转发推广的帐号遭遇了一些小困难,导致大约半个月时间微博无法如以往一样进行常规推广,也损失了一些访问数。
单从数据上讲,微博粉丝日平均增长量和日 PV 数较为相关。在微博帐号异常的那几天,粉丝数量停滞不前,日 PV 数也日渐下降,当重新开始转发后,PV 数也回升到正常情况。更详细的分析没有什么意义,毕竟一天一两百的 PV,随机波动影响较大,难说跟国庆后退潮期有什么关系。
常规的每天半到一小时的微博转发,大致能带来的流量基本稳定。如果没有活动和奖励刺激,会保持一个稳定缓慢增加的状态。我一开始就有计划做一些活动,但目前网站已经上线的部分仍显单薄,强行推活动当然也会带来增长,只是未必能稳定留存用户,我们还是先来谈谈别的。
从发过招募后,我又各处去拉了壮丁。现在算上神隐的已有九人,可以骄傲地称之为小团队了。如招募时所说,因为是业余社团性质,有团员暂时处于离线状态,主程战力三人,运营一人,外加酱油三人。当然,都是周末贡献一天时间。如前所言,每周预期四小时,最多八小时,如果忙,请先忙。
凑几个人,做一点事情。我没有宏大理想和甚高逼格,只要能做好一个小站,让它可以自己循环养活自己,就够了。我觉得这是我的优点。有无穷多的资源,可以做无限大的事情,如果没有,我们也能做点东西出来。
我们现在依然缺设计和前端,很遗憾地,虽然我鼓动过两三位,但也许是不得法吧,最后还是没了回应。所以设计还是我自己在做,(`・ω・´),前端小团队配合着做。摆在列表上的工作有:新版界面、网站 Logo、三大功能界面、手机版界面、网站吉祥物等等,顺序分先后,嗯。
我在鼓动萌妹子、设计师、萌妹子+设计师方面实在是很手足无措智商捉急,所以如果你愿意来,能不能先教我一下怎么鼓动你,你会愿意来?我们的用户大多都是非常可爱的萌妹子,剩下的也都是非常可爱的伪娘妹子……我们小社团自己也有两周一次的女仆餐厅聚餐,我们还有……呃……我大概明白为什么木有设计师了(>_<。)。
哦对,我现在实在是没法提供全职工作机会,我真没想到会有朋友向我投简历求工作,(=゚Д゚=),非常抱歉,希望将来有缘。
我们做了很多工作,只是暂时没有在界面上体现出来。
我们做的,现在是 cosplay 二手服装道具的搜索,短期定位为『好用的工具』,中期是为 coser 服务的优质功能小站,长期不提。
星际争霸里的数值平衡是挺有意思,值得仔细咀嚼的东西。
预备知识: 虽然星际显示的所有数值都是整数,但在内部绝大部分则使用了更精确的小数计算形式。而只在结果上进行了向上/向下取整处理。在不同场景下,这个计算特性也造成了一些数据结果的特性。比如:
等等……
对于战斗中的任意一次攻击行为,都是通过以上三项得到最后的伤害计算结果,计算公式为:
伤害 = max { 攻击力 – 护甲值, 0.5 }
直观的公式,攻击力被护甲抵消掉一部分,剩下的对单位造成实际的伤害。
- 人类枪兵默认 6 点伤害;
- 人类地堡,默认 1 点护甲;
则人类枪兵每次攻击对地堡造成 5 点伤害。
当护甲值大于等于攻击力时,每次攻击至少造成 0.5 点伤害。
- SCV 攻击力 5;(战五渣)
- 行星要塞,升级建筑护甲,护甲值 5。
结果:SCV 每次攻击造成 0.5 伤害,由于显示数值均为向上取整的整数,所以实际上需要两次攻击以后才能看见 HP -1。
虫族的所有单位均有一个持续的回血速率,为 0.27 血/秒。个别兵种,例如飞龙,或者埋地蟑螂,会有更高的回血速率。这一回血不受任何外界因素影响,也与是否战斗无关,永不停止,直到满血。
星际的血量计算是存在小数数值的,包括伤害下限的 0.5 血,包括虫族回血的 0.27/秒。但这属于内部数据,对外展示出来的最终结果,依然是整数。从真实的小数值到实际呈现的整数值,中间的取数办法是向上取整。也就是说,在任何情况下,只要血量真实值存在小数点,则显示数值均向上取一位。
例如虫族所有单位均有 0.27 血/秒的回血速率(部分特殊兵种更高)。那么任何一个虫族兵种被攻击一次以后,只要不死,则会立刻启动回血过程,在小于半秒的时间内回复了 0.1 的血,在最终数值显示上便回了一点血。这也是那些初级数值研究文章里常说的,虫族在被攻击一次以后会回复一点血的原因。其真实原因如下:
某些人认为的“1 点隐藏护甲”,则是完全完全错误的。尝试:
- 零攻攻城坦克:攻城模式 35 点攻击力,重甲 +15;
- 零防跳虫:35 血,0 护甲值,轻甲;
- 一防跳虫:35 血,1 护甲值,轻甲;
零防跳虫就是一炮死。因为来不及回血,也不存在什么隐藏护甲值。但是如果虫族升了一防,则坦克一炮轰上以后跳虫会有两格血,事实上是 35-1 = 34 点伤害,剩余 1 血,同时虫族回血机制启动,极短时间回复 0.1 血(每秒是 0.27,开始回血时还不到 1 秒,几乎瞬间),由于数值向上取整,我们就会见到回复了 2 滴血。再尝试:
- 一攻女妖:13×2 攻击力;
- 三攻机枪兵:9 点攻击力
- 零防跳虫:35 血,0 护甲值;
则零防跳虫在经受了女妖和机枪兵的一轮攻击后,正好还剩下一点血。本来伤害量是正好 35 点的,但由于女妖和枪兵无法做到完全同时产生伤害,使得跳虫有短暂的时间回复零点几的血,从而在第一轮攻击中幸存下来。需要机枪兵额外一次攻击才能杀死。从这些数值可以明显地看出,虫族的 “第一次受攻击秒回一血” 只是一个结果,并不是原因,而 “隐藏护甲” 则简直是瞎扯。另外,虽然从结果上看 “受到攻击后立刻回 1 血” 有时候也正确,但由此衍生出来的什么 “回 1 血隐藏 CD” 也是错误的,单纯只是持续回血过程中是否正好巧合地遇上整数断点罢了。
由于正常情况下伤害值都是整数,故虫族的小数点血量在实际效用上确实等同于整数 1 血。虽然真实血量是个斜线,但效用血量却是阶梯横线。
除了护甲大于等于攻击情况,只有非零攻异龙的弹射攻击是小数点伤害数值,腐化者的腐化技能通过 debuff 加成可能产生大量的小数点伤害数值。奇葩都出在虫族。
每个种族都有针对绝大部分单位的攻防升级科技,可升级三次。攻防升级对已经在战场上的单位同样有效,因此可以利用刚升级完成的时间让大部队发动一次有攻防优势的进攻。
三个种族的攻防升级具体影响的单位并不一样。人类分为生物部队攻防和机械部队攻防;星灵分陆军和空军攻防,另有所有单位的离子盾升级;虫族没有离子盾,但地面部队的近战攻击和远程攻击是分别升级的。
此外,还存在针对个别单位的单独攻防升级项目。人类的建筑护甲升级(+2 甲),雷兽的硬化甲壳升级(+2 甲),人类的恶火对轻甲的伤害加成等。
同一层攻击升级对不同单位的影响也不一。例如虫族地面近战攻击升级,跳虫是每层升 1 点,而雷兽则是每层 3 点。而三族所有防御升级却全是 +1,专项升级除外。因此三攻三防的枪兵内战,和零攻防的枪兵内战效果一模一样,但三攻三防的坦克对打起来却比零攻防的对打死得更快。高级兵种在攻防加成上享受到的比初级兵种更多一些。
在游戏中,“多重攻击”可以理解作“左右开弓”。也就是每次攻击有双份,每份独立进行攻防计算。游戏中除了星灵母舰是 6 重攻击以外,别的拥有多重攻击属性的都是双重攻击。
大部分双重攻击的单位都可以从外观上直观地看出来,收割者是双枪党,显然是双重攻击;女妖导弹有明显的相互缠绕的轨迹,也是双重攻击,导弹塔也类似;狂热者是帅气的幽能双刀;巨像和凤凰的两道激光那么明显,女皇表示她也有两只爪子……
例外的是行星要塞和不朽者。游戏中说明文字上写的行星要塞是加装了双管“伊比克斯”加农炮,外形上也很霸气,却不是双重攻击。不朽者的游戏背景资料写道,他们是仅存的龙骑士们加装了双重相位分裂炮,但实际游戏中也不是双重攻击。
双重攻击意味着 “一轮攻击,两份效果”。通常来说,双重攻击的特性主要是为了数值平衡,“打了一半”的情况极少出现,但如果你刻意制造还是能做出来的,比如狂热者的两刀就是有先后的。
在多重攻击下,伤害计算公式依然简单而符合逻辑:
伤害 = max { 攻击力-护甲值, 0.5 } x 多重攻击数
例如:
- 零攻收割者,攻击力 4×2;
- 三防雷兽,护甲 4。
每一轮攻击会造成 0.5×2 的伤害,也就是 1 点。而不是 0.5 点。通常来说,双重攻击在攻防优势时的收益更大,而劣势时的差距也更大。
双重攻击存在完全同步的两次攻击(收割者),以及有先后的双重攻击(狂热者)两种情况,两者在极端情况下的表现会有微小的不同,但大致没有区别。
很多兵种对特定属性的对象的攻击力会有额外加成。例如劫掠者的普通伤害是 10,而对重甲单位的伤害是 20。被加成的属性通常有轻甲、重甲、生物单位等。目前还没有兵种对两种以上的属性有加成伤害。攻防升级对加成伤害同样有效,升级变化数值有些高于基础伤害的增加值。
但加成伤害的具体数量并没有明确的规律可寻,孢子爬虫对生物单位的伤害高达基础伤害的 3 倍。(15→45),而执政官则只加成约 40%(25→35)。通过特定属性加成并且分别微调,暴雪给自己留了个方便的平衡性改动的口子。
这些加成的计算优先级最高,只和攻击者及被攻击者的属性有关,计算时可以直接视为基础伤害。这造成了非常明显的兵种相克的链条,使用针对性的兵种能有效扩大优势夺取胜利。
每个可进行直接攻击的单位都有两次攻击间的时间间隔设置,数值也是游戏里的秒。不少资料简单理解为攻击频率,严格地说是不对的。频率定义的是每秒多少次,而不是两次间隔;
星际中的长度单位以“格”为基础单位,游戏中各种涉及到距离、长度、速度的数据,均以格为基础数据,用精确的小数衡量。“格”的范围在建造建筑时体会非常明显。
尽管建筑占地为 2×2、3×3 之类,但建筑实际挤占的空间却略小于占地面积。在两个对角建造的建筑缝隙间,依然可以穿过体积小于 1 的兵种,比如机枪兵或者小狗。需要错一格才能严格封堵。对于 5×5 的主基地则更为特殊,错两格都依然能通过 1 体积兵种,错一格时甚至能通过一个追猎者。
每个单位都有自己的体积,以指定半径的圆形描述,属于一个内部数据,与玩家选中单位时脚下的圆形没有关系,只能通过解析客户端数据获得。所有的占位、可穿过等与体积相关的特征,都与这个内部数据相关。当两个单位的圆形最近处宽度小于兵种自身直径时,寻路算法便不把两单位之间的缝隙视作一条通道了。部分单位在切换形态时,例如攻城坦克切换到攻城模式时,其体积会发生变化。另一个更实际的例子是星灵机械哨兵的力场,通过从某个特定坐标 “膨胀” 出一个圆形,从而对部队分布产生影响。
而在建筑摆放时,则无视圆形体系这套系统,单纯以建筑网格判断是否可以建造。因此两个相邻建筑的碰撞体积圆周可能是相交的。所以有时候会出现攻城模式的坦克挡住了气矿,气矿无法建造的情况。
空中单位也存在体积,区别在于空中单位并不强制碰撞,而是缓慢地相互分离,直到达到最后互不重合为止。
每个兵种与建筑都有自己的视野范围,呈圆形,在视野内才能看见敌方的动静,视野外则覆盖有战争迷雾,只能看见地形:
有距离的衡量单位以后,射程也就可以确定了。在游戏中射程的重要性受操作的影响非常大,更经常与地形、视野配合,获取更大的战斗优势。
移动速度是建立在游戏内距离和游戏内时间双重数值下的的一个兵种动态属性。速度的作用在于快速接近敌人、逃跑、追击、巡图、捡漏等,以建立整个对战过程中的战术优势。速度并不影响攻防数值,但却可能影响兵种相克。速度的衡量标准单位为 1 格/秒,可以简写为 1。
很多兵种发射的子弹都有明确的行进轨迹,人类的各种飞弹,星灵的蓝色激光,虫族的绿色喷吐。弹道并不仅仅是一个视觉效果上的设置,在数据方面也会产生一些变化。
星灵护盾是星灵特有的属性,覆盖所有的建筑和兵种,甚至包括生产过程中的单位。在任何情况下,星灵单位受到伤害时,都优先扣除护盾值,到护盾为 0 时,再扣除 HP。星际 1 中存在蝎子毒血无视护盾直接伤害 HP,星际 2 不存在。
护盾和护甲的防御是分别计算、单独升级的,所有单位的护盾防御初始值是 0,每级 +1。计算公式和护甲完全相同,即:
伤害 = max { 攻击力-护盾值, 0.5 } x 多重攻击数
在最极端的情况下:
- 零攻收割者,攻击力 4×2;
- 机械哨兵,守护者之盾,使光环内友方单位受到的远程伤害减少 2 点;
- 二盾狂热者,护盾防御 2 点。
收割者每轮攻击为 (4-2)x2,而护盾防御也为 2,实际伤害为 0.5×2,即 1 点。当未开启守护者之盾时,则每轮实际伤害为 4 点。守护者之盾开启与否效果很明显。
当护盾的总量不足以抵挡单次伤害时,则护盾防御与护甲防御同时起作用。比如:
- 零攻掠夺者,对重甲伤害 20;
- 一防一盾追猎者,护盾剩余 10 点,护盾防御 1 点,护甲防御 2 点,重甲;
则掠夺的下一发伤害计算为:
- 护盾防御减伤: 20-1=19 点伤害;
- 全部剩余护盾抵挡掉 10 点伤害,19-10=9,剩余 9 点伤害传递给 HP 承受;
- 9 点伤害被护甲抵消 2 点,剩余 7 点伤害实际作用于追猎的血量上。
但当该临界点下的伤害被护甲完全防御时,并不造成额外 0.5 的伤害。比如:
- 零攻狂热者,伤害 8×2;
- 一防一盾机械哨兵,40 护盾 40 血,护盾防御 1 点,护甲防御 2 点;
- 零防一盾机械哨兵,40 护盾 40 血,护盾防御 1 点,护甲防御 1 点;
由于狂热者双重攻击有先后,则攻击过程为:
- 前两轮打在护盾上,造成两次 (8-1)x2 =14 伤害,哨兵剩余 12 盾 40 血;
- 第三轮前一刀 8-1 点伤害盾完全吸收,后一刀 8-1 点伤害盾吸收 5 点,剩余 2 点打到护甲上;
- 零防哨兵 1 护甲会损失 1 点血量,39 HP,一防哨兵 2 护甲则未损失血量,40HP;
- 等待哨兵回复满盾后,再重复以上过程,零防哨兵再减 1 点血量,38HP,一防哨兵依然未损失 HP,40HP;
- 两次过程积累后可看出,每次破盾后打在护甲上的伤害为 2 点,被护甲 2 点抵消后,不再产生额外 0.5 点伤害。
零防哨兵的掉血曲线间接证明了狂热者双刀有先后,而一防哨兵未掉血,表明在临界点上,一次伤害如果已经对盾造成实际损伤,则即使剩余伤害被护甲完全抵消,也不会额外计算 0.5 伤害。理由大概是已经存在伤害,不需要再考虑伤害下限了。
护盾会在最后一次伤害结算后 10 秒开始回复,回复速度为每秒 2 点。有些说明写的是脱战后 10 秒恢复,从语言表述上来说是不正确的。星际跟 WOW 不一样,并没有明确的“战斗状态”,也就没有进战脱战这种说法。只要 10 秒不受到伤害,在战头中也是可以回复的,下次用闪烁追猎记得多操作。
建造中的建筑或折跃中的单位的护盾行为例外。建筑在放下的一瞬间就有 10% 的血量与护盾,而后按建造总时间与总护盾值匀速增长,没有 10 秒的结算时间,没有护盾防御加成,也没有额外的回复。例如:
- 星灵枢纽:1000 血 1000 盾,建造时间 100 秒,放下的一瞬间有 100 血 100 盾,之后每秒增加 9 血 9 盾;
- 零攻追猎者对重甲每次攻击 14 点伤害,1.44 秒攻击一次,100 秒攻击 69 次,造成 966 伤害;
也就是说,只靠一个追猎者,在主基地建造过程中完全无法造成实质伤害……
折跃兵种的过程也是一样,初始状态 10% 血量 10% 盾,因为折跃刷新的时间很短,兵种很快就会结束折跃满血满盾进入战斗。实战中不如集中火力打击水晶或运输船更合算。
所有建筑的护盾和血量都相同,绝大部分的兵种血量都大于等于护盾,但黑暗圣堂和执政官除外。考虑到升级时间与升级费用,在对抗虫族时升级三防有时不如升级一盾更合算,尤其是队伍内有大量执政官时。对抗人类……因为有 EMP……还是算了吧。
刚毅护盾是星灵不朽者特有的被动技能,当护盾存在时,所有攻防结算伤害高于 10 点的攻击效果都降低为 10 点。这一上限是先由攻防结算后再作限定的,也就是说是 min{攻击力-护盾防御值, 10}。比如:
零攻追猎者,普通伤害 10 点,对重甲伤害 14 点;
三盾不朽者,重甲,护盾防御 3 点,护盾满,刚毅护盾有效。
则追猎打不朽,以重甲结算,攻击力为 14 点,不朽护盾防御力为 3 点,则攻防结算伤害为 11 点,触发了刚毅护盾,减少为 10 点,所以最终结果是不朽减 10 点盾,并发出刚毅护盾视觉效果。当不朽的护盾不足 10 点时,刚毅护盾效果依然存在,将高于 10 点的攻击伤害降为 10 点,剩下计算和普通的分界线计算一致,再次受到护甲减免。因此即使只有 1 点护盾,也可以抵抗一次高攻伤害。
但刚毅护盾对固定伤害的技能性攻击是无效的。尽管星际2是个科幻背景游戏,不过把以下这些技能理解作是“魔法攻击”,会更方便一些。
星际2是个科幻背景游戏,但把这些技能理解作是“魔法攻击”,理解上会更方便一些。
以上为伤害性技能,其特点是:
基于这些特性,认为是“魔法攻击”也并无不妥。是的,毒暴的伤害并不属于此类,毒暴的伤害是受攻防加成的。
能量值是大部分兵种和单位施放特殊技能的消耗性资源,在游戏中以紫色条显示。大部分有能量单位的能量上限为 200 点,并且永久地以每秒 0.5625 点回复能量,刚生产出来的单位初始拥有 50 能量,一些单位可以研发升级让初始技能变为 75 点。但有三个单位例外:
- 星灵枢纽初始能量 0 点,上限 100 点;
- 皇后初始能量 25 点;
- 定点防御靶机初始能量 200 点,每秒回复 1 点能量。
和血量相反,能量是向下取整的。
没有任何方式改变能量的增长速度与技能消耗,但依然有两个技能可以影响敌方能量:
特定的技能也会影响伤害数据:
守护者之盾:
星灵机械哨兵的主动技能,展开一个范围为 4 的力场,范围内所有友军单位受到的远程伤害降低两点。守护者之盾属于临时的、有限制的防御提升。要注意的几点是:
腐化:
腐化者主动技能,使目标在 30 秒内受到的伤害提升 20%。注意的点是:
定点防御靶机:
铁鸦主动技能,在目标区域投放一个定点防御靶机,击落范围内所有向友方发射的弹道类攻击,每次防御消耗 10 点能量。防御机的工作原理是利用激光破坏飞向友方单位的弹道类攻击,包括人类导弹类攻击、星灵慢速弹道激光等等。注意点包括:
参考以下事实:
- 掠夺者,对重甲 20 点伤害;
- 不朽者,重甲,拥有刚毅护盾,任何超过 10 点的伤害降低为 10 点,且站在守护者之盾范围内;
- 掠夺者射出一枪,进入守护者之盾,对不朽造成 8 点伤害。
关于腐化,也有类似的事实:
- 掠夺者,对重甲 20 点伤害;
- 不朽者,重甲,拥有刚毅护盾,任何超过 10 点的伤害降低为 10 点,但处于被腐化状态,受伤害增加 20%;
- 掠夺者射出一枪,对不朽造成 12 点伤害。
更复杂的:
- 掠夺者,对重甲 20 点伤害,开兴奋剂增加 50% 攻速;
- 不朽者,重甲,拥有刚毅护盾,任何超过 10 点的伤害降低为 10 点,但处于被腐化状态,受伤害增加 20%;
- 附近的机械哨兵展开了守护者力场保护不朽者,所有的远程伤害减少 2 点;
- 掠夺者射出一枪,对不朽造成 10 点伤害。
根据这一事实,我们得出一个伤害结算顺序的概念:
比如上述例三:
如果结算时是先哨兵后腐化,那么不朽的每次伤害只有 (10-2) x 1.2 = 9.6 点,考虑到血/盾的数值向上取整,我们就会见到单次伤害为 9 点,而非 10 点了。
尽管未作测试,但可以大胆断言,在盾血边界的那次伤害上,星灵可以享受盾防御和护甲防御的双重减免,同时腐化也不会影响到转移到血量上的剩余伤害部分。因为在“伤害企图值→受伤害企图值”那次计算中,腐化的技能已经结算完毕。盾血边界的计算,其实是 “受伤害企图值” 与盾、血数值上的计算,而“受伤害企图值”本身已经包含了腐化的结算。否则就变成了一技能两次结算,属于 bug 了。也就是说三防 200 血 1 盾 4 护甲腐化不朽者,被三攻坦克轰了一炮以后,只也掉 7 滴血,而不会出现 (12-1) x 1.2 – 4 = 9.2 血这种复杂的情况。
通常来说 HTML 和 CSS 中引用图片都用的是 <img src=”…”> 和 url(…) 的引用办法。有时为了节约连接数,在诸如图标库等特殊用途 css 中,也会使用一张大图片通过 position 定位到不同位置的办法,来把所有图标放在同一张图片上。
不过还有一种办法是直接把图片通过 base64 编码以后写到文本中。对于非常静态化的需求,比如电子书、自制在线简历、email 投递、网络隐私安全病患者等等,或者各种原因在输入端只支持文本的场合,有时也是一种不错的选择。
这种办法其实很简单,就是把原来写 url 的位置替换成图片 base64 编码以后的文本。
比如我有一张图片,,把它用 base64 编码以后就成了一长串文本:(编译工具用百度一搜就行,在线的,本地的多得去了,在 Github 上还能搜到完全基于 JS 的。)
1 | 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b+AAAAAAAAAAAABCbCAgZG91YkBv4AAAAAAAAAAAAEJyZFRVbnRGI1JsdAAAAAAAAAAAAAAAAEJsZCBVbnRGI1JsdAAAAAAAAAAAAAAAAFJzbHRVbnRGI1B4bEBywAAAAAAAAAAACnZlY3RvckRhdGFib29sAQAAAABQZ1BzZW51bQAAAABQZ1BzAAAAAFBnUEMAAAAATGVmdFVudEYjUmx0AAAAAAAAAAAAAAAAVG9wIFVudEYjUmx0AAAAAAAAAAAAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAAAAAAQY3JvcFdoZW5QcmludGluZ2Jvb2wAAAAADmNyb3BSZWN0Qm90dG9tbG9uZwAAAAAAAAAMY3JvcFJlY3RMZWZ0bG9uZwAAAAAAAAANY3JvcFJlY3RSaWdodGxvbmcAAAAAAAAAC2Nyb3BSZWN0VG9wbG9uZwAAAAAAOEJJTQPtAAAAAAAQASwAAAABAAIBLAAAAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAAM9AAAABgAAAAAAAAAAAAAAMAAAADAAAAAEAGIAbwBhAHQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAwAAAAAFJnaHRsb25nAAAAMAAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAMAAAAABSZ2h0bG9uZwAAADAAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAACP/AAAAAAAAA4QklNBBEAAAAAAAEBADhCSU0EFAAAAAAABAAAAAY4QklNBAwAAAAAA4gAAAABAAAAMAAAADAAAACQAAAbAAAAA2wAGAAB/9j/7QAMQWRvYmVfQ00AAv/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIADAAMAMBIgACEQEDEQH/3QAEAAP/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AO2qxTkdJLmD9JS98DxEy4KrjhwcC35+C2ejiMd4/NLyWj7gUDIxG41+jf0Vx9p7A/uK2MnqnE97H7XOlg9GPIOwjL/uZNZ92pH4oBaXuOmnij5LWtEAaqOKAZJ4HZPGgsMUgTLhJQWDYNdAFGlr73T2CvXY7Hska+IT4tDWN3NOg5S9wcPir2Txgfov/9D0TpdhNFJ2wHl4+YM/wV62tlrCx4lpVPGYW4TSOan7o+B93/RV9PyfMSO5YsI9AidfSPyedzqsnFs22++t30LPHyd/LVduQ8aALp7K67WFljQ5h5BWNfhVV2Ftbt7fyeRU+PKJCpDVqZ+XlA8UTcT3+aLTOZYOB80m9QvAILBr4aI/2XyTfZvJSXDswcOXuX//0fUKGBrC3tP5VIexsH83QKUeCUBEm0AUGvZvs0JhvgEP7OFc2hLaEROtlhx3qdWn6Pkm9FXNoS2hHjR7Qf/ZOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwA2AAAAAQA4QklNBAYAAAAAAAcACAAAAAEBAP/hDXpodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iIHhtcE1NOkRvY3VtZW50SUQ9InV1aWQ6RUNGQzc3Mjg4MDQxREMxMUJDNDVBODNDNjIyRTJGRTkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjU2RTNBMDhERjRERTQxMUI5OTJDQzc3NTY4MTA1MkUiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0idXVpZDpFQ0ZDNzcyODgwNDFEQzExQkM0NUE4M0M2MjJFMkZFOSIgeG1wOkNyZWF0ZURhdGU9IjIwMDctMDgtMDNUMTM6MDk6MjUrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE0LTEwLTA3VDEzOjAxOjQzKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE0LTEwLTA3VDEzOjAxOjQzKzA4OjAwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzIgV2luZG93cyIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6TGVnYWN5SVBUQ0RpZ2VzdD0iMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6RjU2RTNBMDhERjRERTQxMUI5OTJDQzc3NTY4MTA1MkUiIHN0RXZ0OndoZW49IjIwMTQtMTAtMDdUMTM6MDE6NDMrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+4ADkFkb2JlAGRAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQEBAQEBAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAMAAwAwERAAIRAQMRAf/dAAQABv/EAaIA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 |
这串文本很长,不过相比于图片本身的体积,其实并没有大多少。这种体积的变化详细涉及到信息论和压缩原理,这篇文章先不写了。
然后我们在长串文本前再添加一些说明文字,供浏览器识别:
1 | data:image/jpg;base64, |
然后就可以直接替换原 url 了,就像这样:
1 | <img src=" |
编码头的标准格式是
1 | data:[<mime type>][;charset=<charset>][;base64],<encoded data> |
理论上方括号是可以省略的,同时也可以看到还有其它编码形式,比如base85、base16 等,尽管没有什么实际意义甚至有反效果。(比如有浏览器兼容性、超出合法字符区间等情况)。
最后是 php 版的 base64 图片生成:
1 | <?php |
用的也是现成库,别的代码版本就不写了。
昨天下午,某银行信用卡给我打了半小时电话,推销他们的一项保险业务。一如所有的推销电话一样,最后都只能强行挂机,没办法礼貌地互相结束通话,唉,可怜那业务员。(ノへ ̄、)
这个业务很简单,每月交差不多 140来块钱,直接从信用卡上扣,全年 12 期,总长 5 年,可提前结束。价格据说是根据我的年龄、职业等测算出来的,每个人还不一样。小年青们会便宜一点,老头子们更贵一点。然后收益是什么呢,在业务员啰啰嗦嗦不断夸耀优点的情况下,我总结出来以下几项:
其实就是个无理由住院额外险,无论是天上掉流星砸到脚,或者被加班逼到内出血,反正只要躺医院了,就按价赔偿。……不知道自残算不算。( ̄△ ̄;)
然后我拒了。在电话录音说您是否确认现在通过语音确认开通时及时地拒了。
嗯,这个业务本身其实还可以,如果是我玩轮滑狂热的年代我还真就说不定买了,只不过在现在的境况下,核算了一下成本,基于我的逻辑,最后还是回绝掉了。
首先,其实要知道,保险其实永远是越买越亏的。从逻辑上说,保险是以集合众人的付出,给一些人的损失兜底。如果保险运营不需要成本,理论上对于一个人来说,整体的付出大约等于各种损失乘以机率以后的期望值。但实际上,考虑到保险还要支付销售提成、运营成本、赔付审核、股东分红、物业建设等等,对于一个保险客户而言,单纯考虑支出和损失期望,是肯定不合算的。只有考虑到对损失赋以一个额外的权重,也就是考虑到 “损失超出了你的承受能力” 的情况时,购买保险才是一个合算的行为。
换句通俗的话说,就是我明知道不出意外或者出点小意外都是亏的,出大意外,从概率乘以损失来说我还是亏的,但因为我实在承受不起大损失,万一呢?所以还是买点保险用小损失代替吧。比如汽车保险,其实出事的机率,乘以出事要赔的钱,整体而言还是比汽车保费低,但因为真要出点什么事几十万的钱还是会对个人造成极大的甚至是不能承受的打击,那就还是买吧。
我们举另外一个极端的例子。大家在生活中经常会丢失钢磞儿,几毛一块的,积累下来也有不少,比如每年少则十块,多则一百。现在我推出一项保险,“钢磞丢失险”,每月交五块钱,只要丢钢磞就给你等额赔付。假如不考虑实际执行难度,就假设一点不麻烦,说赔就赔,也没有骗保,你会买么?
如果你说,不买,丢了就丢了吧,说不定丢的还没保险费多,只丢钢磞再多也丢不成穷光蛋的。相信大家都完全能理解这种想法。
事实上,大部分人从保险得到的赔付都是不及保费支出的。也就是说,丢的确实不及保费多的。你每月可能丢一个,可能丢五个,可能丢十个,但参保了就相当于稳定丢五个了。全年一统计,你最多的一个月丢了 8 个,有两个月没丢,大多丢三四个,你就发现自己明显赔了。明年就不必参保了。
但假如我们加一个额外限制,『在丢到某一数量以后,这个巨大损失个人承担不了』。比如开开国国王规定如果国民某个月丢硬币损失超过 10 块要杀头。那显然这份保险就变成了买命钱了,五块?太便宜了。
再举一个极端例子。如果你的全部收入全部交了保险,不管你当前交了多少,付给你的保费永远是固定值。过一两年你肯定就会发现亏大了,还不如自己存钱合算。你觉得呢?
也就是说,保险主要针对的是你自己不能承受的重大损失,对于一些承受无压力的小损失,完全可以考虑自行承担,并不一定需要保险,当然也不是不可以考虑,还是看你的承受能力和损失厌恶度。
所以土豪们是不需要常规保险的。是嘛,汽车三方险最多也就到一百万,对于豪车还是杯水车薪,基本都靠土豪自己兜。
其次,这个险号称最长可达 500 天,20 万上限。其实吧……那是住院啊,谁能住院 500 天啊。就算 5 年 500 天,那也是每年住院三个多月啊……这种情况下,医疗保险、扩展医疗保险,甚至是亲朋好友都比这个保险靠谱。当然,两险是不冲突可以同时用的,但归根结底,这个保险反而更像是一种锦上添花而不是真正可以兜底保障的险种。在收益上其实比不上按比例赔付的常规保险类。
那么如何核算支付与收益呢?很简单,每月不是扣 140 来块钱么?全年 1700 块,每年需要住 5-8 天院才能收回保费。这就是一个比较合适的可比较尺度了,就算出了轻伤车祸,在北京这种常规情况下也很难住够五天院,大多都会让你回家休养。而如果重伤到需要超过 8 天,无差别的每天 200-400 也是杯水车薪,我需要更强的保险覆盖。
只有像我学生时代那样,经常没事出个小伤,进医院擦个药打个板,医生也好说话,总能腾出闲天住院的那种状态,才比较合算。而这个保险又是要审核职业、收入等等因素的,想找他们的 “优质客户”,估计在我学生年代就是劣质客户吧。如果我是他们的“优质客户”,那么他们基本就不是我的“优质保险”。
在保险收益预估时,不能以最高保障额度计算,而是应该以个人实际和保险本身赔付方式决定的“常规”意外预期计算。保险公司算得比你精得多,但只要你从“可收回保费所需要的意外程度”进行反向计算,就比较容易得到可感知可衡量的收益标准了。
再次,当然还有心理上的因素,人们对小概率事件的估计总是偏离常规的,我也是。唯一常见例外的也就是车险了,人们还是很认可驾车意外的概率的。
人们对幸运的小概率总是高估,要不然也没有人大把大把地买彩票了。——你可以认为买小额是图个别的心理幸福感之类的,可幸福感不也是心理因素么?
而对厄运的小概率却偏向于低估,就好比真的计算车祸概率,或大或小几十人里也能摊上一个,相当于一个班级、一个小公司、一个小团体中间总能遇上一项,但每个人都不认为是自己。我也是。作为理性青年,在作必要决策时会考虑到这种情况,而在改善性决策时,这种心理就又会占上风了。就好比我如果需要自费购买人生意外、大病医疗院,和需要自费购买这种改善性医疗险,在决策时的“意外概率”是不一样的……
最后,我非常讨厌这种持续性延后性的扣款,利用的又是人们的遗忘心理和小额支付决策时的心理偏差。个人喜恶,冷暖自知。
哦,在这里还有一个奇葩的部分,就是反还 25%。一开始我也被绕进去了。要注意这个反还只有在你不产生保费的情况下会出现,被推销员包装成了“实际保费仅 110几元”。
别傻了,如果不出意外没有保险赔偿,多少钱都是白付给保险公司的,保险成本还是应该按出事的计算。换句话说,这个只有银行在核算净收入时有影响,对你核算出意外时的成本与收益是完全没有任何关系的。因为这项条款只有在“不出意外”的情况下才生效,而“不出意外”你拿不到赔付,多少钱都是白送给银行。
而且反过来想想,如果真出了事要住一两天院,你如果去索保,虽然能拿到 ¥200-400,却失去了返还部分近 ¥400 块。这反而会导致你即使真的入院,在两天以内的也不会去找银行赔付,银行照样是净赚。这还真不如直接把保费降一点好呢。这跟车险动态调整保费还不一样,车险意外发生的概率和个人的驾车行为安全意识有很大相关性,而对于住院而言,个人可控制的因素则少很多。另一方面,车险是下一年费用变化,也不涉及历史费用的返还,并且各公司还通用。两者的差距巨大,从这个策略中我更多地看见的是恶劣的算计,而不是对客户的善意。
其实话说回来,如果真的到了个人不能承受的意外,通常一个家庭也就完了。目前看见的保险制度,绝大部分也都有个吝啬的上限,或者有严苛的赔付标准。做得到锦上添花,却做不到雪中送炭。只有市场化的车险好点,医疗保险也只能说呵呵。农业险,包括农业期货,以我外行的角度看来似乎也不错。只是不知道农民兄弟们,身在此间多有经验,是会说哈哈,还是呵呵。
今天刚看了知乎一篇文章,里面是从业人员吐槽人民没有保险意识。
我呸。
少几个推销,少几份算计,少几段夸张措辞,多来点真货。
Adobe 公司宣布研发部门撤离中国,仅保留销售部门。不过这篇写的不是新闻评论。新闻只是个引子,想写的……可以认为是评论的评论吧。
老有人以 Adobe 各系东西卖得太贵为借口,总说如果能减个零或者减两个零就好了。
……别傻了,好像卖几十块他们就真会买似的。
定价策略这东西,很复杂,但也很简单。简单在于,最后的收益无非是售价乘以销量减掉成本,让收益最大化就行了。而复杂则在于,定价到底在多大程度上会影响销量,进而影响到最大收益,则是要靠商业智慧与决断的。Adobe 的全系列产品不是免费(Flash、Adobe Reader、Creative Suite 2),就是死贵,看起来似乎不合理,但实际上这个定价差不多已经是最优的策略了。
我们通常说的薄利多销,其实并不一定正确 。这句话有一个先验的假设,就是薄利会引发销量的成倍增加。这在传统实物生产中,在某些场景下可能是正确的。在这个成语产生的年代,大部分商品都是小规模作坊式生产的生活必须品。这使得第一对顾客而言,生活必需品是一定需要经常购买的,自然会在过得去的情况下选择更便宜的。第二是对具体的某个商家而言,市场是近乎无穷大的,更便宜意味着有更多顾客会选择他家的商品,只要产量跟得上,他总能卖出去。第三是,更大的产量意味着基于规模效应,单件成本也更低,依然可以腾出足够的利润空间。
也就是在个人作坊向产业规模化集约化发生的过程中,某个商家通过降低售价,一方面扩展自己的市场范围,一方面惠福顾客。这确实是经济学意义上,也是生活意义上的社会改善。……除了那些被竞争挤倒破产的其它商家以外。
但这几点在 Adobe 身上都不存在。
首先,其实对大部分人而言,Adobe 系列软件都称不上是必须品级别的软件,它的市场并没有大家想像的那么大,相反,是个很小的市场。
并不是因为你在家用了盗版 Photoshop,你就也能被计算为市场份额之一。比如假如苹果手机也能盗版,五块一个,那么大街上肯定差不多也是人人都拿着肾6+,可你能就此认为苹果的市场是 99.99% 么?
不是的,因为定价在那里,苹果的市场就是 3 成左右,这是他利润最大化的定价方式。再降,它的市场就算扩大,也比较有限,还不如降价造成已占市场收入减少的损益大。Adobe 软件实际上是“生产力软件”,简单地说,是拿来做生产的工具之一。影楼、设计所、出版业,这些才是 Adobe 家软件瞄准的市场。对于这些市场的用户而言,几乎是固定而没有选择的。反过来就是说,Adobe 的市场真没有大家想像的那么大,那些鼓吹如果便宜就买的,最后只有两种选择,用盗版,或者不用。他们是不会成为 Adobe 家正版用户的。对真正的市场用户来说,Adobe 家的软件真不贵,几千块钱,还没一个相机镜头贵,没一次书籍制版费贵,没一次比稿的路费贵,真心不贵的。
其次,它已经是市场上的王者了,占据了几乎所有的中高端出版软件市场,实际上并不存在可以被挤倒的“其它商家”以让他成倍地扩大市场份额。
有句话是说,所有你觉得 Photoshop 不好用的功能,都是因为你不会用。——这句话依然阐述的是同一个事实:大部分人并不需要 Photoshop 这样级别的软件,没一点臂力,牛刀使起来还不如指甲刀。而另一个事实则是,在针对的市场里 Adobe 则是毫无疑问的王者,他已经把能拿到的市场差不多都拿到了。
最后,软件成本几乎完全是固定成本,少量边际成本也主要出在营销费用、光盘、下载带宽这类上面。也就是说,单纯的销量带不来规模化导致的成本节约。软件的特殊就在于,它的利润完全就等于销量乘以单份售价,那么在市场容量固定,市场份额近乎百分百的情况下,降低售价只能导致更多的损失。你以为¥5000降到¥50,销量就能提升 100 倍?真要降到 ¥50,那帮人依然会抱怨说别的软件都是免费了,为什么 Adobe 要收费,然后依然用着他们的免费盗版。WPS 就是个活生生的例子,坚持到最后也只能靠免费广告流氓手段来推动。
额外一点,如果 Adobe 真在中国降价,你打算让别的国家市场如何推动?Adobe 是序列号授权,并不是云服务,几乎很难以国别定出悬殊的价格差。如果真这样,最后结果只会导致其它国家的用户通过互联网购买最便宜国家的序列号。只会导致 Adobe 的损失更大。现在它退出一个赚不到钱的国家,顶多通过不出对应的语言版本就可以解决(其实也解决不了,因为新加坡用的也是简体中文)。他也想推过云服务,估计也是想做差别定价(比如暴雪就给中国大陆单独架服务器单独定价,其它国家通过信用卡等方式差别定价),但显然正版用户们并不太接受。
无奈。
软件盗版已经是个老生长谈的话题了,而且观点已经趋向一致,即如果没有那么严重的盗版,中国的软件环境和互联网环境也不至于像现在这么恶劣。盗版伤害的不光是大型软件厂家,更是直接导致中国软件梯度被抹杀,没有了中小企业的生存空间。在这种情况下,依然有那么多人把 Adobe 给出的 “收益不及预期” 的原因,归罪到 Adobe 定价太贵上面,有时候真觉得刁民两字,用得不假。
题外话:即使 WPS 目前已经如此,我依然尊敬珠海 WPS 小组,稻壳儿是我在软件相关费用中第三大的一项,仅次于山口山和 App Store。
chocolatey 是 Windows 下的包管理器,类似于 Linux 下的 apt,mac 下的 homebrew。
没错,windows 下的。
官方网站是 http://chocolatey.org/ ,已经写在标题里了。
虽然其实大部分可以 choco install 的包都是像 notepad++、Filezilla、Putty 等本身就可以下载安装包或者本身就是绿色软件,但也许也有一些像 Python、Ruby、Nodejs 之类让从 Linux/Mac 转过来的程序员们倍感亲切的软件包。不过要注意的是保持网络畅通,也就是说你还是需要一个 VPN,而不像 linux 那样可以方便地寻找到镜像源。
说实在的我在用了一段时间以后觉得有点行为艺术……o( ̄ε ̄*),其实最大原因是 CMD 窗口本身并不能提供太多的功能,不像 Linux/Mac 那样通过 ln 可以自定义命令,添加 Path 也比 linux 麻烦。
在图形操作系统下,用命令行去管理一大堆本身就有安装包有图形界面,可以双击图标调用关联程序打开,这些关联程序也大多有图形界面,实在有点违和。
所以最后我的结论是,如果你非要在 Windows 下尝试一下包管理器,Chocolatey 是个不错的选择。
安装方法:用管理员权限打开 CMD,输入以下字符(CMD 窗口的粘贴操作是 Alt+Space→E→P)
1 | @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin |
很有可能会开始下载一个 .msu 的安装包,应该是 PowerShell,安装完以后重启系统,用管理员权限打开 CMD,输入以下字符(CMD 窗口的粘贴操作是 Alt+Space→E→P)
1 | @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin |
…… 没错我写了两遍,实践证明确实需要两遍……ㄟ( ▔, ▔ )ㄏ
如果已经安装了 PowerShell,可以在 PS 里输入以下命令:
1 | iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')) |
恭喜你,蛋疼去吧。
这段时间来,我逐渐认识到一个道理。
要做好一件事情,最不能的就是藏着掖着。曝晒在阳光下,让众人评判,让有兴趣的人一起努力,才是最好的办法。靠着私下时有时无的业余时间,没法快速推进。
讲道理都会,真落到自己身上,还是要花费许多时光去接受。即使是现在,也还是有很多担忧。
如果招募连一个回应都没有怎办?如果主意被别人抄走了怎办?付出了辛苦却回报不了大家怎办?如果做不成辜负了大家怎办?如果理解不同争执冲突怎办?如果做得不够完美到不了自己的预期怎办?如果期望太高伤害了大家怎办?如果最后连朋友都做不成怎办?……
有太多不能保证的东西,让人害怕承诺。我总能侃谈构思想法,却每每在盈利模式前语塞。并不是因为没有想过,只是在通往终点的路上有太多太多可能的变数,让我自己都觉得吐出口的,都会变成谎言。
你要知道,有 99% 的项目都会以失败告终,我只能保证我会坚持到最后。
所以请原谅我,然后请帮助我,最后,请再原谅我。我甚至不能保证你们的劳动会有相应的物质金钱回报,我只能说,希望一起来做一件我自觉有趣、有希望、也许还有那么一点点前途的事情。我想靠这个就把你们骗上船,希望能成功。
http://cosjiaoyi.com 现在版本
http://bs.cosjiaoyi.com 未上线版本的 HTML+CSS 原型,还在一点点添加。
使用 Github 管理代码库(私有库),使用 trello 管理任务,使用 SSH 公私钥登录服务器。
目前是淡季,每月大约 5000 PV,高峰也曾到过 600pv/d。新访:回访为 7:3。对一个只有微博转发简单推广,无抽奖无大V互动无漫展现场挂易拉宝的个人小站来说,我觉得已经不错了。这个网站真的是有人在用的,我们也已经真的小小做到了一些事情。这已让我欣喜不已,因此也更加迫不及待。
现在在做的是 Cosplay 服装与周边二手信息的采集与搜索。整体定位是 cos 同好者手边的一个“好用的工具”。作为工具,不需要什么消磨时间的特性,只要需要时被想起就够了。
就像见到雨雪想起的折伞,见到脑残想起的板砖。
主要是 QQ 群交流。之前需要实时语音时,会在 YY 开房间。对的,就是上市公司欢聚时代的里面有好多美女妹子半夜不睡觉卖萌吼歌的著名语音视频聊天工具 YY ——当然,我们不需要视频。不过 YY 用得真的很少,不装也没事,我会打电话给你。
每两周周日晚聚餐一次,聊聊近况,我买单。这个属于每周四小时的部分。也就是说,如果你时间有限,请先安排给聚餐。
每隔一周,我都为找好吃的店头痛不已。这句话的意思是地点每次都会变,不是说一定有多好吃。
如果你不在北京,我会在幸运的日子去找你,无论你在奥兹国,还是在永无岛。
“我希望你能为我白干活,还不损害我们的交情,也没法给什么对结果的承诺。”
居然胆敢真的提出这样的要求,实在还是惶恐忐忑,纠结不安。
希望读到这文字的每一个你,都能给我一个机会,让我彻彻底底地忽悠你一次。(* ̄3 ̄)╭ 这样,也许你会想着“反正闲着也是闲着,听着还算靠谱,干吧”。如果你觉得累了,决定彻底退出以前,也麻烦务必再让我忽悠一次,也许就能多坚持两周。
说不定呢,谁知道呢,阿里都搞出史上最大 IPO 了。
但还是希望你能把它当成是像同好社团一样的玩艺儿。我们会有贡献名单,会有定期的聚餐。更重要的是,会有偶而打开看看,咦,现在做得不错了的小小感叹。这样的微小的愉悦,我想我还是能坚持着保证的。当然,万一真的搞大了,自然会尽量让大家更满意。只是在我自己也看不到终点时,还是诚实地说,但尽其事,莫问前程吧。
每个想做一些事情的人都必须有自己的忽悠风格,我把我的风格称之为“诚实的忽悠”,希望你能上当。
我曾发起过一些公益性项目,大多惨淡收场,但也偶有成功。
虽然这次不算公益,但还是希望运气也能不错。
上船吧,水手。
开开
企鹅:151493994
微信:kaikaiiiiiii