李玫瑾讲座合集 发布于 九月 26, 2021 来源:https://www.bilibili.com/video/BV1UE411g7kv来源:https://www.bilibili.com/video/BV1b7411q7ev 评论
nginx中location的顺序(优先级)及rewrite规则写法 发布于 七月 03, 2019 一、location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/Abc 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration CC ] } location ^~ /images/ { # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。 [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 结尾的请求 # 然而,所有请求 /images/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则 [ configuration E ] } location /images/ { # 字符匹配到 /images/,继续往下,会发现 ^~ 存在 [ configuration F ] } location /images/abc { # 最长字符匹配到 /images/abc,继续往下,会发现 ^~ 存在 # F与G的放置顺序是没有关系的 [ configuration G ] } location ~ /images/abc/ { # 只有去掉 config D 才有效:先最长匹配 config G 开头的地址,继续往下搜索,匹配到这一条正则,采用 [ configuration H ] } l... 阅读全文
如何防止Cloudflare CDN背后的图片被盗连(Hotlink Protection)? 发布于 十月 14, 2021 「Hotlink Protection」(直接链接保护)是经营网站经常需要去注意的一块,但为什么我们会需要「Hotlink Protection」呢?身为图文并茂的网络文章作家,最担心得就是自己的文章被别人整篇连文带图地拷贝粘贴到其它地方了。此时如果图片有套用「Hotlink Protection」的话,就可以让被盗用的图片在其它网站上「不被正常显示」出来,如此一来,就能使其它误入盗文页面的访客可以知道该篇文章是篇被盗用的文章。不同的网站架构有不同的「Hotlink Protection」的设置方式,如果您的网站有打开Cloudflare的CDN服务的话,可以参考这篇文章,来实现「Hotlink Protection」的功能。 我的网站服务器是用Nginx或Apache,难道不能直接对它们做设置吗? 很遗憾,只要我们有激活Cloudflare的CDN服务,就无法有效地通过自己的服务器程序来设置Hotlink Protection。这是因为网页浏览器在打开您网站的图片时,会去链接Cloudflare的CDN服务器,而非我们自己的服务器,所以就算我们有在自己的服务器上制作Hotlink Protection的功能,也根本不会被触发到。 既然有Cloudflare CDN,为什么还要Hotlink Protection?被盗连的图,其流量不是不会算在我们头上吗? 的确,有了Cloudflare CDN之后,就算图片被盗连,它主要也还是会去吃Cloudflare CDN服务器的流量。但是,您真的愿意让您文章中的图片原封不动地在盗文网站上显示出来吗?所以还是设置一下Hotlink Protection吧! Cloudflare内置的Hotlink Protection开关 Cloudflare的控制后台中,其实就有提供一个一键套用Hotlink Protection的开关,只要打开来,就可以让有激活CDN功能的网域拥有Hotlink Protection的功能。这个开关藏在Cloudflare控制后台的「Scrape Shield」分页中。 这个Hotlink Protection一旦打开,整个有打开Cloudflare CDN服务的网域(包含子网域)下的图片链接,就只能在这整个网域(包含子网域)下打开,否则的话会直接回传HTTP的403... 阅读全文
“不建议跟李玫瑾教授学育儿”惹争议:对留言的集中答疑 发布于 九月 26, 2021 01 当孩子出现“问题行为” 许多家长朋友高度焦虑如何教育孩子的问题,是在孩子表现出“问题行为”之后。比如: 孩子长时间看手机、看电视;孩子写作业磨蹭,学习上不自律;孩子不停要新玩具,不给买就哭闹、耍赖;甚至,稍大一些的孩子还会因为一些不如意用自杀威胁父母。 面对孩子的“问题行为”,父母的第一个想法往往会是“怎么能让他别看手机了”“怎么能让他别磨蹭了,赶紧把作业做完”“怎么能让他停止哭闹、耍赖、自杀”……总之,是让“问题行为”尽快消除。 从这一想法出发,就进入了解决眼前问题模式,自然会去寻求能快速解决眼前问题的种种方法。 强硬点的方法一般会是:训斥、打骂,没收手机、电脑,强行关掉电视,把孩子按在椅子上监督他学习等。 “温柔”点的方法一般会是:苦口婆心讲道理,谈条件,诱使孩子签订协约,或李玫瑾教授所提供的“四个不要”法( 把孩子带进卧室,不打,不骂,不说教,不离开,笑眯眯地看着孩子哭,直到孩子自己“缴械”)。 这些方法表面看起来不同,目的相同,都是让孩子快速听话,让他的“问题行为”快速消失。对这些方法的“有效性”我没有任何异议。 我想谈的是面对同样问题的另一种思维模式——先想一想: 孩子出现了“问题行为”,具体原因是什么?孩子选择采取“问题行为”,他的心理需求是什么?在“问题行为”出现之前,父母的教养方式是什么样的?父母哪些教养方式可能导致孩子出现“问题行为”——而这些教养方式需要改变? 两种思维模式的不同在哪呢? 如果说孩子的“问题行为”是种结果,那么第一种思维模式是采取行动,直接作用于结果本身,让结果快速消失;而第二种思维模式是先去寻找导致该结果的原因,在改变原因上做努力,结果自然会跟着发生改变。 举例说明: 采取第一种思维模式,用或强硬、或“温柔”的手段让孩子停止磨蹭,去写作业了。父母会以为是自己的手段起效了,以后会重复使用该手段,如不停地催促。孩子习得的是什么呢?是把父母当成“闹钟”,自己什么时候去做作业,取决于父母这种“闹钟”什么时候铃声大作。 孩子停留在了“他律”阶段,没有机会练习“自律”。然后会出现新的“问题行为”——从某一天没有自觉写作业,变成长期不能自觉写作业——就是家长抱怨的“孩子不自律”。 采取第二种思维模式看待孩子学习不自律的问题,会怎么样呢? 我们会去思考:孩子不爱写作业,是作业对孩子来说有点多、有点难吗?是某位老师讲课枯燥,破坏了孩子的学习... 阅读全文
设计师别担心,微软雅黑这样使用不侵权 发布于 八月 27, 2019 这几天设计圈都被一条字体侵权消息刷屏,一公司在没有获得字体版权的情况下使用微软雅黑做印刷品,样稿印刷厂印了5000万张已经全国商用,公司损失2860万,裁员42人,含8个主管。 现在各位设计师都知道,微软雅黑版权是属于方正的,并不能免费使用!在大家惊叹赔偿金额的时候,方正官方出来辟谣: 这次事件,方正字体给我们间接地上了一课:想安全使用我们的字体?乖乖付费吧。同时还告诉那些没有买过版权的公司:该交保护费了。目前事件已在百度热点搜索排名第三,也让中国很多非设计行业人员了解了方正。 不过在大家都在聚焦新闻本身的时候,有没有想过,什么样的字体行为会受到侵权呢? 在设计行业中,常见的微软雅黑字体侵权主要表现在线上的banner、广告、页面、电影等,线下的印刷品、户外广告、书籍等。各位设计师对这些都非常清楚:无版权,不可商用。 UI前端和微软雅黑 但是在UI设计这块,我们在电脑网页中显示的微软雅黑有版权吗?公司官网显示的文章字体都是微软雅黑,这样会侵权吗?我们再回顾下微软雅黑的历史。 “微软雅黑”字体是“北大方正电子有限公司”设计开发的字体作品。该字体与著名的“方正兰亭黑系列字体”(该系列字体共有十一个不同粗细版本,共十一款字体)系出同源,前者针对屏幕显示,后者针对印刷用。方正公司拥有“方正兰亭黑系列字体”的全部版权。但微软雅黑的版权分为两个部分,在Windows系统的内嵌使用,包括屏幕输出和个人使用为目的的打印,这部分微软已经向方正支付了版权授权费用,所有正版Windows用户均可放心使用。但是以商业发布为目的的微软雅黑版权,仍由北大方正保留。 微软公司在开发新一代操作系统时,为了改善屏幕字体的视觉效果,委托方正公司设计两款字体。微软公司将此两款字体命名为“微软雅黑”和“微软雅黑 Bold”。 这里我们可以看到一个关键词“屏幕输出”,即电脑屏幕上显示和我们关系最大。设计师设计完网页之后,前端需要进行代码制作,这时候使用的微软雅黑字体,其实就是属于屏幕输出。 如果要深入搞清楚这个,我们就要了解网页中是如何显示字体的。前端网页字体的定义主要有两种方式:font-family和@font-face。关于这些前端基础知识,各位UI设计师必须要了解下。 font-family font-family属于前端css属性中最基础... 阅读全文
保持你的口腔健康的技巧 发布于 八月 27, 2020 最近有几位公司同事深受牙齿问题之苦,以至于向编辑部提出了「写个牙齿健康选题」怎么样的提议。于是我们互相对了对眼,确认都是在牙科诊室耗过上百个小时的人,这篇文章也就应运而生。 据研究表明,牙齿健康与基因的关系相当密切,有些人天生拥有一口更坚固和健康的牙齿,而很多人(例如我们)在生活中饱受各种口腔问题的困扰。不过更容易受到各种牙齿问题困扰的我们也没有轻易放弃,在长达十数年的就医经历中,我们渐渐「久病成医」,想向你介绍这些护理牙齿的小技巧。 在这篇文章中,我们将从日常护理和就医指导两个方面来分享我们的经验。 日常护理类 Part 1. 好好刷牙 建立科学的刷牙习惯 刷牙是每个人必做的日常清洁,但就我对身边亲朋好友的观察来看,大多数人依然未能建立良好的刷牙习惯。刷牙这件事本身不难,但也有许多细节需要你留意—— 1. 使用巴氏刷牙法(The Bass Method) 坊间关于刷牙方法的讨论大多集中在「应该横刷还是竖刷」上,但其实这个悬案早有定论——无论横竖,效果都差不多。你真正应该关心的是掌握更科学的刷牙方案——巴氏刷牙法。 简单来说,巴氏刷牙法是一套能够更全面地刷到每颗牙齿的刷牙流程,你需要以二到三颗牙为一组进行口腔清洁,让每颗牙齿的每个面都能刷到。具体的操作过程可以 点击这个 3D 影片 查看和学习,各视频平台也都有类似的教学。 巴氏刷牙法,动图来自上文提到的影片 顺带一说,许多人刷牙都达不到「至少 2 分钟」这条底线,拿起牙刷随便刷刷就结束了,导致口腔清洁效果不佳。使用巴氏刷牙法可以延缓你刷牙的速度(但也不会让刷牙过程慢到漫长),侧面提升清洁效果。 为了满足刷牙时限的要求,我的手表上有一个常驻的 3 分钟计时器,每次刷牙时就走一轮倒计时。为了配合这三分钟,我会进行「干刷」,即在刷牙前不用牙刷沾水,而是用口腔中的唾液让牙膏一点一点发泡,一般中间只要吐一次多余的泡泡就可以。这样在三分钟内就可以满屋子遛达、去阳台看看月亮、收拾收拾晾干的碗碟,而不必要死守在盥洗池前等待时间的流逝。 2. 除了刷牙齿,还要刷舌苔 舌苔是导致口腔异味的重要原因之一,即使你没有病理性(譬如牙齿或消化系统发炎)的口腔异味问题,清洁舌苔也依然可以极大改善你的口气。 大部分人刷舌苔时遇到的最大问题是牙刷刺激舌根部会导致恶心,但慢慢尝试之后就能逐渐适... 阅读全文
远离你身边的煤气灯人 发布于 一月 04, 2022 今天讲个煤气灯人的故事,这可不是一个关于张牙舞爪的喷火小木偶的恐怖故事。 我想说的远比恐怖故事惊悚多了。 它毁人心智,杀人于无形。 何为煤气灯人?如果你感觉这个词很陌生,那么朋友,你听说过PUA吗? PUA(Pick-up Artist,把妹达人),一个近年来广为人知的群体,与其相关的理论亦称为“泡学”。 大量不善交际的尝试者,几经辗转购入高价PUA课程,并将其珍若江湖两性秘笈。但同时在更多人眼中,PUA群体也沦为过街之鼠,人人喊打。甚至还有人故意在人际交往中,突显自己的直男直女本性,与“套路”二字划清界限。 但你真以为自己能摆脱PUA吗——Nope,甚至也许 你就是正在进行“情感操纵”的PUA本A 。 01. PUA,其实就是一种煤气灯人 现今意义上的PUA,上可追溯至1944年,由美国导演乔治·库克执导的一部惊悚片 《煤气灯下》(Gaslight) 中的主角安东。 在电影中,钢琴师安东(CharlesBoyer饰)为了将妻子宝拉(Ingrid Bergman饰)所要继承的大额财产据为己有,一面将自己伪装成潇洒体贴的丈夫,另一面又不断使用各种心理战术,联合家中的女佣企图将妻子逼疯。 在丈夫缜密的心理操纵下,宝拉逐渐变得神经兮兮,怀疑现实、质疑自己,最后在精神上几乎完全依附于安东。 这种试图破坏他人对现实的感知的情感操纵,也因该电影而得名为 Gaslighting(煤气灯操纵) 。下面我挑选了几个经典的Gaslighting片段让大家品品: Part 1 信息封锁:在一段时间内不断重复强调某一信息 安东和宝拉新婚满三个月时,外出去伦敦塔游玩。出门前安东送给妻子一枚小巧的白色胸针,声称是母亲去世前留给他的,并嘱咐宝拉把它收好。 此时安东略显刻意地强调了一句: “你可能会弄丢,你知道的,你经常丢三落四” 。这是电影中安东第一次对宝拉实施Gaslighting,也是宝拉初步对自己产生怀疑。 但是在二人离去之后,两位女佣之间的对话又再次佐证了,宝拉从未体现出任何异常。但是男主人安东,却不断向他们传输“女主人生病了”这一信息。 如果说此时,仆人们还对女主人生病一事尚有所怀疑。那么接下来的事情,就令他们对于这一言论深信不疑了。 当天的游玩结束后,安东便以饰物常年未佩戴、需要修理为由,向宝拉索要胸针。由于安东从一开始就并未将胸针放入宝拉的手包,而是偷偷将其藏在手心转移至别处,... 阅读全文
kubernetes中部署mysql高可用集群 发布于 四月 21, 2020 很多软件后端使用的存储都是mysql,当这些软件系统在生产环境部署时,都会面临一个严峻问题,需要在生产环境中部署一个高可用的mysql集群服务。刚好在最近一周的工作中,需要在kubernetes环境中搭建mysql高可用集群,这里记录一下。 搭建MySQL集群 MySQL的主从半同步复制方案、Galera集群方案以前都也实践过,感觉都不是太友好,配置比较麻烦,而且发生故障转移时经常需要人工参与。所以这里还是采用MySQL官方推荐的Group Replication集群方案。关于MySQL Group Replication集群的架构设计可以看 官方文档 ,懒得看英文的话,也可以看我之前整理出的 资料 。另外kubedb网页上也有介绍 MySQL几种高可用方案的构架方案 ,也比较有意思。 之前的博文 也讲过在非容器环境搭建MySQL Group Replication集群,现在在Kubernetes的容器环境配合kubedb,搭建更方便了,命令如下: 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 # 添加appscode的helm仓库 $ helm repo add appscode https://charts.appscode.com/stable/ $ helm repo update # 部署kubedb $ helm install appscode/kubedb --namespace kube-system --name kube... 阅读全文
分布式定时任务对比 发布于 十一月 09, 2020 1. 什么是分布式定时任务 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。叫做分布式定时任务。 2. 常见开源方案 elastic-job , xxl-job , quartz , saturn, opencron , antares elastic-job elastic-job 是由当当网基于quartz 二次开发之后的分布式调度解决方案 , 由两个相对独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成 。 Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务。 Elastic-Job-Cloud使用Mesos + Docker(TBD)的解决方案,额外提供资源治理、应用分发以及进程隔离等服务 亮点: 基于quartz 定时任务框架为基础的,因此具备quartz的大部分功能 使用zookeeper做协调,调度中心,更加轻量级 支持任务的分片 支持弹性扩容 , 可以水平扩展 , 当任务再次运行时,会检查当前的服务器数量,重新分片,分片结束之后才会继续执行任务 失效转移,容错处理,当一台调度服务器宕机或者跟zookeeper断开连接之后,会立即停止作业,然后再去寻找其他空闲的调度服务器,来运行剩余的任务 提供运维界面,可以管理作业和注册中心。 elastic-job结合了quartz非常优秀的时间调度功能,并且利用ZooKeeper实现了灵活的分片策略。除此之外,还加入了大量实用的监控和管理功能, 以及其开源社区活跃、文档齐全、代码优雅等优点,是分布式任务调度框架的推荐选择。 由于elastic-job-lite 不支持动态添加作业,此处仅贴上elastic-job-Cloud架构图 xxl-job 由个人开源的一个轻量级分布式任务调度框架 ,主要分为 调度中心和执行器两部分 , 调度中心在启动初始化的时候,会默认生成执行器的RPC代理 对象(http协议调用), 执行器项目启动之后, 调度中心在触发定时器之后通过jobHand... 阅读全文
Yaf framework 相关项目骨架 发布于 八月 06, 2019 在 yaf 的源码目录,附带了一个工具 tools 目录, 下面有个 cg/yaf_cg 工具,是通过模版生成 yaf 项目骨架的工具。 Usage: ./yaf_cg ApplicationName [ApplicationPath] 项目目录 ├── application │ ├── Bootstrap .php │ ├── controllers │ ├── library │ ├── models │ ├── plugins │ └── views ├── conf │ └── application .ini └── index .php index.php 程序的入口文件 application 主要的应用程序代码目录。 2.1 可以通过 application.directory 这个配置来修改。 2.2 application 目录下的目录(controllers、models、plugins、views)是默认的代码结构目录,yaf 会根据相关的类名称,去相关目录下加载相关的文件,例如 IndexController extends Yaf\Controller_Abstract 这个文件,yaf 就会到 controllers 目录下查找 Index.php、类 UserModel 就会到 models 目录下查找 User.php(可以定制文件后缀或前缀模式,如 ModelUser 就是前缀模式)。 2.3 除了 library 目录以外,其它目录都是在框架编译的时候确定的,library 目录主要是存放一些本地库文件例如我有个 Helper_Html (名称空间模式 Helper\Html) 类,通过注册本地类名称空间 Yaf_Loader::registerLocalNamespace("Helper") 来加载,文件的存储结构是 library/helper/Html.php 需要注意的就是要开启名称空间,使用 namespace 的类名称和不使用 namespace 的 classname 有些差异。 2.4 Bootstrap.php 是框架的引导类 (可以没有),继承自 Yaf\Bootst... 阅读全文
也谈SpringCloud:假如 《复仇者联盟4》是一个微服务 发布于 九月 11, 2019 “ 《复仇者联盟 4》将于 4 月 24 号上映,漫威迷们是不是迫不及待了?我虽然不是漫威迷,没有看过相关漫画,但是电影确实一步都不落。 不过我在想一个问题: 假如《复联 4》是一个微服务,那么电影院就是一个应用。在这个微服务如此火爆的前提下,影院如何做好管理呢? 我们以此为背景,一起来趣谈 Spring Cloud 的工作原理! 想要更加深入了解Spring Cloud 底层原理的网友也可以看之前分享的文章《 拜托!面试请不要再问我Spring Cloud底层原理 》。 影院开张 老王开了一家影院,刚开始影院规模很小,只有一个售票员小李。老王将《 复 联 4》即将上映的广告打出去之后,来咨询的人络绎不绝。 这下小李不干了,说道: 老板,这么多人咨询已经打乱了我的正常工作了,影院这么多电影,我哪记得住它们什么时候上映啊。 老王因此犯了愁, 小李又说: 老板,我给你引荐一个人吧,他们公司专门做这个业务的,他叫 Eureka 。 服务注册和发现:电影的上映和下架 Eureka 来了之后,首先在影院装了一个大显示屏幕。老板告诉 Eureka :我们要准备上映《 复 联 4》了。 于是 Eureka 便把《 复 联 4》上线了。显示屏幕展示着最近上线的电影。这样,来电影院看电影的观众们就不用在咨询售票员了。 显示屏幕如下: 客户端负载均衡:观众去哪个厅观看电影? ... 阅读全文
评论