草庐IT

苹果的这次失败,让笔记本电脑倒退 15 年

摘要:蝶式键盘为苹果留下了一张5000万美元的「罚单」。苹果终于要为「蝶式键盘」付出代价了。当地时间7月18日,苹果同意支付5000万美元,就一场针对蝶式键盘质量问题的集体诉讼达成和解。和解协议生效后,苹果不仅会为出现故障的蝶式键盘提供免费维修,还要额外支付美国用户一笔现金赔偿,根据不同的MacBook机型,金额为50-395美元。蝶式键盘诞生于2015年,原本是苹果为削减笔记本厚度而采用的一种全新设计。相比传统的剪刀式键盘,蝶式键盘键程更短,更薄,更稳定。之后,苹果将蝶式键盘推广到了整个MacBook产品线。2015年推出的全新MacBook首次搭载了蝶式键盘|Apple但它很快引发了灾难性

苹果的这次失败,让笔记本电脑倒退 15 年

摘要:蝶式键盘为苹果留下了一张5000万美元的「罚单」。苹果终于要为「蝶式键盘」付出代价了。当地时间7月18日,苹果同意支付5000万美元,就一场针对蝶式键盘质量问题的集体诉讼达成和解。和解协议生效后,苹果不仅会为出现故障的蝶式键盘提供免费维修,还要额外支付美国用户一笔现金赔偿,根据不同的MacBook机型,金额为50-395美元。蝶式键盘诞生于2015年,原本是苹果为削减笔记本厚度而采用的一种全新设计。相比传统的剪刀式键盘,蝶式键盘键程更短,更薄,更稳定。之后,苹果将蝶式键盘推广到了整个MacBook产品线。2015年推出的全新MacBook首次搭载了蝶式键盘|Apple但它很快引发了灾难性

这次用户分群模型,终于被评价为【有用】

一听到用户分群呀,很多同学都来劲了,网上写用户分群的文章多如牛毛。可实际工作中,经常做完分群以后被一句话问死:“所以能提升多业绩?不能提升业绩你分它干啥?”质问如此犀利,以至于很多同学自己都怀疑人生:到底分群的意义在哪里?该如何破局?1、用户分群的痛点最大的痛点在于:分群本身不能直接产生价值。无论分群用的是啥模型,最后的结果也只是一个数据标签而已。问题就在于:没有一个用户会为这个标签买单。用户买单的原因永远是:需求:我刚好需要这个渠道:我刚好看到你家在卖价格:你家商品价格很便宜设计:你家商品设计很好看品牌:你家牌子我很喜欢跟风:我看别人都在你家买功能:你家商品功能多,好用……​并且是这些因素综

这次用户分群模型,终于被评价为【有用】

一听到用户分群呀,很多同学都来劲了,网上写用户分群的文章多如牛毛。可实际工作中,经常做完分群以后被一句话问死:“所以能提升多业绩?不能提升业绩你分它干啥?”质问如此犀利,以至于很多同学自己都怀疑人生:到底分群的意义在哪里?该如何破局?1、用户分群的痛点最大的痛点在于:分群本身不能直接产生价值。无论分群用的是啥模型,最后的结果也只是一个数据标签而已。问题就在于:没有一个用户会为这个标签买单。用户买单的原因永远是:需求:我刚好需要这个渠道:我刚好看到你家在卖价格:你家商品价格很便宜设计:你家商品设计很好看品牌:你家牌子我很喜欢跟风:我看别人都在你家买功能:你家商品功能多,好用……​并且是这些因素综

这次 moon 要把 socket 玩的明明白白

微信公众号:「moon聊技术」关注选择“「星标」”,重磅干货,第一时间送达![如果你觉得文章对你有帮助,欢迎「关注,在看,点赞,转发」]前言Socket是什么?Socket运行流程基于TCP基于UDPSocketTCP是如何建立连接的三次握手发生在socket的哪几个函数中SocketTCP是如何断开连接的第四次挥手后为何要等待2MSL前言一说到网络,大家必然会想到TCP、UDP、Http、三握四挥等,但是一说Socket,大家可能会有点模糊了,只知道网络中会用到,但是Socket究竟是什么?套接字又是啥?为啥网络离不开Socket?Socket是什么?Socket其实就是套接字,大部分人对于

这次 moon 要把 socket 玩的明明白白

微信公众号:「moon聊技术」关注选择“「星标」”,重磅干货,第一时间送达![如果你觉得文章对你有帮助,欢迎「关注,在看,点赞,转发」]前言Socket是什么?Socket运行流程基于TCP基于UDPSocketTCP是如何建立连接的三次握手发生在socket的哪几个函数中SocketTCP是如何断开连接的第四次挥手后为何要等待2MSL前言一说到网络,大家必然会想到TCP、UDP、Http、三握四挥等,但是一说Socket,大家可能会有点模糊了,只知道网络中会用到,但是Socket究竟是什么?套接字又是啥?为啥网络离不开Socket?Socket是什么?Socket其实就是套接字,大部分人对于

JS 这次真的可以禁止常量修改了!

本文简介点赞+关注+收藏=学会了ES6推出的const可以定义常量。在JS中,常量是不可改变的。这个“不可改变”指的是常量存放的内存地址不变。众所周知,使用const定义的常量,如果是基础类型的数据,值不能变。但如果是引用类型的数据(比如对象、数组等),是可以修改里面的元素。所以有时候看上去常量并不那么“常量”。但我们还是有办法让常量变成真正的“常量”。“可变”的常量内存分为栈内存(stack)和堆内存(heap)。JS的基础类型数据存在栈内存里;引用类型数据存在堆内存里。但引用类型的数据,比如对象,对象的key是存到栈内存里,栈内存中存放了一个引用地址,这个引用地址指向存放在堆内存的值。所以

JS 这次真的可以禁止常量修改了!

本文简介点赞+关注+收藏=学会了ES6推出的const可以定义常量。在JS中,常量是不可改变的。这个“不可改变”指的是常量存放的内存地址不变。众所周知,使用const定义的常量,如果是基础类型的数据,值不能变。但如果是引用类型的数据(比如对象、数组等),是可以修改里面的元素。所以有时候看上去常量并不那么“常量”。但我们还是有办法让常量变成真正的“常量”。“可变”的常量内存分为栈内存(stack)和堆内存(heap)。JS的基础类型数据存在栈内存里;引用类型数据存在堆内存里。但引用类型的数据,比如对象,对象的key是存到栈内存里,栈内存中存放了一个引用地址,这个引用地址指向存放在堆内存的值。所以