水果烂了,剩下的部分还能吃吗?如何储存保鲜? 发布于 四月 24, 2022 疫情期间,除了肉蛋奶的均衡摄入外,适量补充水果也是不错的选择!究竟如何科学储存水果?哪些水果适合冰箱冷藏?快来收下这份关于水果储存的小知识吧↓ 来源:https://mp.weixin.qq.com/s/HTQ34tMEk0T8-uqDstM4tw 评论
远离你身边的煤气灯人 发布于 一月 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,也是宝拉初步对自己产生怀疑。 但是在二人离去之后,两位女佣之间的对话又再次佐证了,宝拉从未体现出任何异常。但是男主人安东,却不断向他们传输“女主人生病了”这一信息。 如果说此时,仆人们还对女主人生病一事尚有所怀疑。那么接下来的事情,就令他们对于这一言论深信不疑了。 当天的游玩结束后,安东便以饰物常年未佩戴、需要修理为由,向宝拉索要胸针。由于安东从一开始就并未将胸针放入宝拉的手包,而是偷偷将其藏在手心转移至别处,... 阅读全文
高可用用户中心设计 发布于 五月 09, 2020 概述 我们公司现在的账户体系比较混乱,每个系统都有一套自己的账户体系,没有办法进行统一的账户管理,比如统计一个人在哪个系统有账号,这样操作是比较麻烦的,还有就是我们如何进行用户行为分析,最终综合用户的信息进行用户的画像。这些都是需要解决的问题。 常规的用户设计是统一账号和统一登录验证,统一注册等信息。但是结合我们公司的实际,发现这样的话我们的系统可能会出问题,我们无法屏蔽很多细节。我们的现状是: 系统需要向用户隐藏是同一个公司的这个事实。也就是说我们做了用户中心的设计,但是不能让用户感知这个系统的存在。也就是说多个系统之间的登录都是需要隔离的。离论上不能做统一账号的登录,但是可以做统一账号的验证。 同一个系统可能有多个马甲app,我想马甲app之间也需要登录隔离,虽然他们调用的是同一个后台系统,那么我们不得不面对一个问题,同一个用户同时下单的逻辑处理,需要后台做这种处理,否则就会出现严重的并发错误,而开发人员可能都没有注意到这个事实的存在,从而导致一些稀奇古怪的事情出现。 web端与app端应该是需要同时登录的,我们好像没有web的要求,但是好像有微信的web端的事情。假如我们有web端的登录,那么问题来了,我们要不要实现二维码登录web。目前看是可以先不实现的,但是作为设计考量我们不得不考虑这些。 第三方账户的登录,我们是通过手机号作为唯一标识,那么不太好实现第三方的登录注册。但是我们可以后期实现,如果实现第三方的登录注册,那么问题来了,我们的设计貌似不支持,需要改动,就是改掉手机作为唯一标识的问题,但是想想好像是不影响的,只要数据能插入问题就不大,因为没有手机号,这些用户是不能登录需要手机的app,但是有的系统可以做特殊处理,从而支持第三方账户的登录注册。但是这样做也有缺点,就是用户利用多种方式进行注册,也就是说我们不得不解决一个问题就是用户可能存在多个账户的可能性。加入用户有微信注册的账户,然后又用手机登录,绑定微信,这个时候我们可能需要去系统中用微信的unionId或者openId查找一下是否有用户,有就不能绑定,没有才能绑定。如果有我们可能也知道了这个人有重复号的可能性。这个可能需要在做的时候处理。 验证保密问题,公司居然都没有人提到这点。不过也对我们是通过手机号进行验证的。但是如果以后我们不在使用手机号,可能我们需要验证问题。还需要判断用户的活动记录... 阅读全文
Matomo API 官方接口详情 发布于 六月 24, 2021 API接口 你可以通过调用Matomo的分析接口将数据集成到其他应用中去。这些数据包括访问数,页面网址、网页标题、用户设置、搜索引擎、关键词、推荐网站、用户浏览器 其中的请求参数和返回值需要对照官方手册来 未定义 ## API `未定义` ## Annotations `未定义` ## Contents `未定义` ## CoreAdminHome `未定义` ## CustomDimensions `未定义` ## CustomJsTracker `未定义` ## CustomVariables `未定义` ## DBStats `未定义` ## Dashboard `未定义` ## Events `未定义` ## Feedback `未定义` ## Goals `未定义` ## ImageGraph `未定义` ## LanguagesManager `未定义` ## Login `未定义` ## Marketplace `未定义` ## MobileMessaging `未定义` ## PagePerformance `未定义` ## Provider `未定义` ## SEO `未定义` ## SitesManager `未定义` ## TagManager `未定义` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Actions 动作(行为) Actions.get 访客分析-概述-访客概览(右边一列) Actions.getPageUrls 行为-页面 Actions.getPageUrlsFollowingSiteSearch Actions.getPageTitlesFollowingSiteSearch Actions.getEntryPageUrls 行为-进入页面 Actions.getExitPageUrls 行为-退出页面 Actions.getPageUrl 行为-通过页面的PageUrl查看详情(获取单条记录) Actions.getPageTitles 行为-页面标题 Actions.getEntryPageTitles 行为-页面标题-进入页面标题 Actions.getExitPageTitles 行为-页... 阅读全文
星际蜗牛安装黑裙(群晖)制作家用nas 发布于 三月 08, 2022 说重点,群晖安装 选哪个型号哪个版本呢? 之前用的5.2版本功能不够多,docker装上去运行个迅雷,隔一段时间就卡死了。download station里的rss订阅时间长了也更新不了。同时考虑到同步办公文件,这次得找个稳定的版本安装。 网上流传一个ds3617的二合一版本,正好可以安装到固态上。装完以后开机显示的画面有乱码 ,虽然乱码不影响使用,可总感觉不够稳定,再加上第一次插上硬盘以后重启了下,发现硬盘损毁,更不敢用了。(现在回过头来发现,应该是我插上去的那块硬盘是从别的nas上拆下来的,系统不识别造成的吧 ) nas论坛上走一遭发现还是乖乖用优盘引导安装吧。 网上最多的是918、916、3617、3615四种型号,群晖版本一般是6.1.7、6.2、6.2.1,选来选去选了6.1.7版本的3615,网友说这个版本稳定运行几年了。希望它稳定运行到天荒地老 小白注解 : 群晖安装文件分两部分,引导文件和系统安装文件,黑群晖为啥黑就是引导文件是大神破解的。系统安装文件都是官方的,不用修改。 软件下载 逛坛子发现有两个好东西,一个是XPEnology多功能工具箱V1.2,软件长这样,首页就是引导文件 第二页是系统安装文件 需要用到的工具也都集成在里面了, 但是我从这里面下载下来的引导文件解压不了。于是找到了第二个神器——黑群晖工具获取器。 打开软件点下加载,然后依次选择型号,版本就全出来了。这里面也带了工具软件,不过我没用。用黑群晖工具获取器下引导文件挺快的,浏览器下载就行,但是系统安装文件就不行了,没速度 ,换迅雷就OK了。 我把引导文件、系统安装文件还有其他工具软件一起放网盘里,大家可以直接下载。 所有文件我都是上传的压缩包,解压以后使用 。 百度网盘链接 : 提取码:sle3 工具准备 一台电脑,一个独立的 显示器 、显示器与NAS的连接线,usb接口键盘。 上面的安装的时候需要,安装完就不用了。 找个闲置的64m优盘,没有的话大一点也可以,就是浪费容量而已。这个优盘以后一直要插nas上了 你们准备完了吗? OK,正式开始折腾 制作引导优盘 大致流程是 先记录优盘VID和PID 删除原优盘分区, 往优盘上写引导文件 修改引导文件。 首先,拿出64m的优盘,插电脑上,打开XPEnology多功能工具箱,去制作工具栏里找到ChipGenius, 打开,我装了360,... 阅读全文
顶级程序员的百宝箱 发布于 十二月 10, 2019 前言 这期是被人才群交流里,还有很多之前网友评论强行顶出来的一期,就是让我介绍自己常用的一些工具给他们安利一下,我一听很高兴呀,帅丙我这么乐于奉献的人是吧。 主要是能水一篇文章就很开心,不过写下来发现花的时间完全不比写技术少, 点赞 !!! 千万不要白嫖, 真香警告 ⚠️。 但是我在构思这篇文章的时候发现我贴个标题,然后发下软件信息会不会太乏味了,于是创作鬼才我呀,准备用一个产品的研发流程,是的就是 用这样的一个思路 去写这个工具集的介绍文章。 因为读者很多还是学生,还有很多应届生,对一个需求的研发流程都不是很熟悉,还有可能对于以后自己需要使用到的工具都不是很熟悉,那我就一一罗列一下,帅丙我作为一个还算有点小经验的程序员都使用哪些工具呢? 那下面就跟随 暖男 的脚步,走进 顶级程序员的百宝箱 吧(我所有的标题都是噱头就为了夸大其词,我是低级程序员,大家看了也不能吊打面试官,笑笑就好了)。 正文 既然都说了 帅丙 是要用一个产品的研发流程角度去介绍软件,那我们先看看一个产品有哪些研发流程,帅丙就用自己接触的阿里系的研发流程举例了,这也基本上是互联网大厂的研发流程了,可能细节有出入,但是绝对大同小异。 Tip :我从开发的视角去介绍的话我就会 跳过一些 软件,比如提出需求这个其实一般都是文档类的, wiki 呀这样的形式。 我就不介绍那种流程工具了,公司很多自研的,大家工作了再去熟悉也很快的。 概要设计: 概要设计 ,这个是大厂程序员需求下来之后基本上都会做的一步,不过看需求大小,可能很多小需求直接就 详细设计了 。 很多不了解的同学可能会问,需要设计什么呢?为什么要设计呢? 问得好,经常看我文章的都知道, 技术是把双刃剑 ,你用了技术之后你是不是需要 列出他的优点缺点 ,出问题之后的 解决方案 ,还有 可能出现的问题 , 注意点 等等。 这么是为了让你能有把控力,比如你用了个 Es ( Elasticsearch )你什么都不管你就是要接入它,你把他开发好了上线了,但是有啥坑你知道么?上线崩了怎么办? 帅丙我做 Es 设计的时候设计被老大打回N次,不过成长真心大,对 Es 的了解也飞速进步。 其实远远不止这些问题,这就是我们做设计的主要原因,也是大家工作里面能成长的途径之一,你以为大佬们的经验是怎么来的? 工具... 阅读全文
关于博客内嵌入bilibili视频 发布于 九月 23, 2021 一、原理 使用iframe标签,更改其中src对应bilibili视频的aid和cid,组装新的HTML源码,即可在文章内嵌入bilibili视频。 二、获取aid和cid aid为视频的av号,但是每个av号下不一定只有1p,所以B站用cid来管理视频的真正id,那么也可以说如果视频只有1p,那么cid就无用了,我测试直接填1也是可以的。 这里介绍两种获取aid和cid的方法: 方法一 先观察视频的URL 1 https: //www.bilibili.com/video/av84267566?from=search&seid=13400362594908841480 其中84267566就是av号。 或者直接点右键——查看网页源代码——ctrl+f——搜索'aid='、‘cid=’ 就可以了。 方法二(推荐) 我们在转发视频的时候直接可以看到嵌入代码 这是官方准备的嵌入代码,可以直接拿来用,但是显示效果不是很理想,样式不是我们希望的,需要调整一下。 < iframe src ="//player.bilibili.com/player.html?aid=84267566&cid=145147963&page=1" scrolling ="no" border ="0" frameborder ="no" framespacing ="0" allowfullscreen ="true" > </ iframe > 从嵌入代码中我们直接得到了aid和cid 我们重新设置一下功能、大小、样式,得到可用的HTML代码 < iframe src ="//player.bilibili.com/player.html?aid=84267566&cid=145147963&page=1" frameborder ="no" scrolling ="no" width ="95%" height ="600" ></ ifr... 阅读全文
图像识别在测试中的应用 sikuli 发布于 十一月 25, 2019 提起 ui 自动化大家首先想到的就是基于控件的自动化,比如常见的 xpath、id、css 选择器等手段进行元素定位并进行结果判断。但是在实际应用中,无论是 web 端还是移动端,仍有很多时候需要根据页面内容、页面中的图像进行定位及判定,是这些手段所达不到的,这里我们来介绍一下关于图像识别在测试中的应用。 在具体进行讲解之前先介绍一下图像识别在测试中能够想到的引用场景: 测试过程中,通过对待测软件进行屏幕截图,采用图像识别算法识别截图中是否包含预定义的可操作控件,如果存在,则触发控制指令,达到了图像识别引导测试过程的目的; 测试结果的验证,通过对待测软件的界面进行截图操作,利用图像识别技术将截图与期望的结果进行匹配,从而自动获取测试结果。 通过图像识别对比来进行性能测试,比如 app 测试中常见的响应时间的测试 首先分享一下图形识别在自动化测试中的应用,目前比较流行的就是 sikuli, 其中关于 sikuli 的安装在这里就不多说了,官网有具体的介绍( https://launchpad.net/sikuli/+download) 原理 Sikuli 脚本是由 jython 通过图像识别的方式来模拟键盘和鼠标事件,从而实现 ui 层面的自动化测试。Sikuli 脚本的核心是一个 java 库主要由两部分组成: java.awt.Robot 这个部分主要是讲键盘和鼠标事件传送给指定的位置,具体的位置是由 c++ 引擎(基于 opencv 模块)通过脚本中的目标图片去屏幕上搜索并定位。C++ 引擎与 java 的 JNI 链接并且进行编译来适应不同的平台。在 java 的上层是一个简单的应用层就是我们开发脚本用的,这层给最终用户提供了一套简单易用的命令。 函数介绍 Find(x) 在屏幕上找到相对于的图片,比如选定一个手机 示例代码: findall(x) 在屏幕上找到所有的相同图片 x,比如可以关注多个手机(一次性把所有的图片的坐标选定,如果选定后再刷新桌面背景有可能出现之前的坐标和之前的功能点对应不上,达不到测试效果) 示例代码: wait(x,10) 等待图片 x 在屏幕上或者指定的区域中出现,超时时间 10 秒 示例代码: waitVanish(x,10... 阅读全文
小程序自动化测试总结 miniprogram-automator 发布于 四月 20, 2021 一、缘起-为什么要进行小程序自动化测试 微信小程序生态日益完善,很多小程序项目页面越来越多,结构越来越复杂,业务逻辑也更加多样。以腾讯课堂小程序为例,目前腾讯课堂小程序部分页面结构和不同业务场景下的表现如下图所示: 可以看到在核心功能上主要页面对于不同业务场景有众多不同的表现,因此在开发与发布的过程中需要手动验证大量测试用例以保证小程序按预期表现运行,善于利用工具的程序员当然会想: 这种重复的工作能不能交给程序自动进行呢? web开发中对于这类测试问题已经有了很多自动化解决方案比如Selenium、Puppeteer,思路大体相同,都是让浏览器按照指定顺序自动在页面上完成点击、输入等操作,再将操作后的页面表现与想要得到的结果进行比较得到测试结论(断言)。那小程序中有没有一种方案能够按照这种思路实现自动化操作并提供页面信息用于断言呢?为了微信底层安全考虑,小程序环境一直比较封闭,留给开发者操作的余地很小,自动化操作基本无法实现,但5月底出现了 miniprogram-automator 工具,给了小程序开发者希望。 二、缘遇-初试miniprogram-automator 基于miniprogram-automator的文档描述简单总结一下,当通过命令打开开发版微信开发者工具的自动化接口并连接自动化接口后,此工具可提供以下能力: MiniProgram :获取小程序信息(页面堆栈、系统信息、页面内容),控制小程序(跳转页面、切换tab、调用方法) Page :获取页面信息(路径、元素、数据、结构),控制页面(设置渲染数据、调用方法) Element :获取元素信息(属性、样式、内容、位置),操控元素(点击、长按、调用方法) 所以小程序自动化控制的实现依赖于开发版小程序开发者工具以及miniprogram-automator工具。小程序开发者工具命令行用来打开指定自动化操作服务端口。(开发者工具版本需高于v1.02.1906042)。miniprogram-automator工具用来操作开发者工具中运行的小程序并获取所需的信息。对于测试需求可以结合jest框架进行测试用例的组织和断言。 不多废话,看完文档用一下: Ø 调用开发者工具命令行打开项目与指定自动化操作服务端口 PS D:\programs\内测\微信web开发者工具> ./c... 阅读全文
终极学习法:费曼学习方法 发布于 一月 07, 2021 像我们这种,孩子要N年以后才会高考的,也忍不住掺和一下。伸着脖子,想打听一点学霸的成功经验。 听来听去,除了天赋、努力之外,反复被提到的一个关键词即是:学习方法。 之前,分享过写的超好的一篇文章,反复强调的也是类似的观点,排名前 1% 的学生靠的不是天赋也不是努力,而是更高阶的思维和学习习惯…… 那究竟什么才是好的学习方法? 带着这样的疑问,开始了搜寻,后来找到了它。 先说说它的神奇。 一个叫Scott Young的加拿大人,用它在几天之内学完了线性代数,一年的时间里自学完成了麻省理工全部计算机学课程。一共33门课程,这意味他平均通过一门课程也就花了一周半左右。 不卖关子啦,它就是 著名的费曼学习法。 知乎上很多人怒赞“费曼学习法”,还将其称为是“终极学习法”。 P.S.,它还能解释,为啥相比老二、老三,老大更加聪明,很神奇吧? 1费曼,你是谁? “费曼学习法”来源于20世纪美国物理学家、 教育 家、音乐家——理查德·费曼。 “男神”费曼是不是很帅~ 如果说20世纪全世界第一伟大的科学家是爱因斯坦,那么排名第二的可能就是费曼先生了。 他不仅获得1965年的 诺贝尔 物理学奖,还参与过美国的原子弹项目”曼哈顿计划“,同时也是第一位提出纳米概念的人。 这样一位史诗级人物,对学习方法他有着自己的独特一面:学完了,再教一下他人。 这个方法伴随了他一生,也成就了他一生,而要追溯到他最开始的学习,则是归功于他的父亲对他思维方式的引导和积淀。 费曼和 爸爸妈妈 的合影。 费曼的父亲是一位推销制服的销售,文化程度并不高,但就是这样一位普通人,却在跟费曼一起读书的时候,逐渐教会了他怎样去理解和思考。 比如,一起读《大英百科全书》,父亲不是照本宣科,而是用更加形象的方式让小费曼真正理解。 有一次,他们讲到了霸王龙。书上说:”霸王龙有20英尺高,头有6英尺宽。“很准确,但是很抽象的表述。 父亲很巧妙地用“它的头想伸到窗户外,但是却伸不出去,因为它的头太宽了”的话语,让抽象变的具象。 这让费曼不仅理解了霸王龙的庞大,更加理解了20英尺高、6英尺宽是一个什么概念。 正是通过这种方式,小费曼不仅对科学产生了浓厚的兴趣,还认识到无论学什么,都要去理解它背后真正的含义,而不仅仅停留在表面。 不要小看这句话,因为这也正是“费曼学习法”的精髓所在。 2费曼学习方法的精髓是啥? 在介绍“费曼学习法”之前... 阅读全文
微信小程序小总结 发布于 十月 30, 2019 微信小程序使用起来感觉像写h5一样,对于新手估计会有比较多疑惑,如果撇去这些想法应该是很快就能上手的一套开发方案。 但是它自身的限制也比较大,如不提供window对象会导致一些功能实现起来比较麻烦。我这次开发的小程序就遇到了,虽然比较快找到解决办法(可能都是比较标准化的东西),希望之后不会有其他大坑。 需要其实比较简单,就是两页文章列表及文章详情页,刚上手却遇到下面的坑: 无法利用window对象解析xml 不支持HTML标签的使用 怎样兼容Promise和generator异步 刚开始一脸懵逼...后来赶紧去github看看各大牛例子及一些工具就解决了。 解析xml问题 由于比较多的解析插件都是基于 window.DOMParser 处理的,在小程序却无用武之地。找到问题就好解决,我要的是 DOMParser 而不是window找找应该有代替品,然后找到这个 xmldom 引入代替掉 DOMParser 就解决,然后把xml转成json处理了。 评论有问道如何改,这里我已经把这个整合到 这库 了。 解析html问题 现在比较成熟的是 wxParse 这货,的确大部分的html标签均能解析渲染,但是我这边程序录入的富文本内容却掺杂了些奇奇怪怪的标签,解析时还是会出错,内容解析到一半就停了...既然它做不到忽略,咋整?那把那些垃圾都过滤掉吧!!!马上用上 js-xss 这个来处理问题,能控制过滤的标签及标签能拥有的属性,方便得很。 const xss = require ( '../lib/js-xss/xss' ) const WxParse = require ( '../../lib/wxParse/wxParse.js' ) //把style及class添加到白名单。 Object .keys(xss.whiteList).forEach( name => xss.whiteList[name] = xss.whiteList[name].concat([ 'style' , 'class' ])) let content = xss( '<div>HTML文本</div>' , ... 阅读全文
评论