不好归类
文章平均质量分 71
不好归类
菜爷面馆
大家好,
我叫青菜,
原阿里巴巴资资深软件工程师,
原梵帝IT技术总监,
45岁转行学厨师,
你们愿意看我怎么学厨师,
然后一步步走上创业之路吗?
展开
-
SMTP发送邮件
是为SMTPS(SMTP-over-SS)协议开放的,使用SSL加密信息,可以防止黑客截取邮件,但并未得到IETF机构的认证,SMTP/SMTPS之间关系类似于HTTP/HTTPS。TLS/STARTTLS,基于身份验证的,使用该端口的SMTP服务 客户端必须要登录验证身份才能发送邮件,有效的避免垃圾邮件。SMTP即简单邮件传输协议,基于TCP提供可靠的邮件传输,它是一个推协议,如果使用邮件客户端收取邮件则需要用POP3协议。通过代码发送邮件是程序最基本的功能,比如监控程序告警邮件,客户营销邮件等。原创 2024-03-27 19:32:08 · 1187 阅读 · 0 评论 -
IDEA MyBatisX插件介绍
一般在项目中通过该方法生成基础的增、删、改、查基础代码,复杂的查询还是要自己写,一般对于一张表可以通过生成器生成一套代码,然后自己再根据需求扩展一套代码(XML和Mapper类),比如再加一个MapperExt类里边放你自己编写的代码,这样在数据库新增字段的时候原来那套(XML和Mapper)可以重新生成直接覆盖。在这里可以配置各种数据的连接,配置好后点测试连接会自动下载对应数据库的驱动。然后就可以生成对应的代码,在Database中选中表。代码生成后,我们可以在DAO和XML中快速进行跳转。原创 2023-10-31 08:08:44 · 2105 阅读 · 0 评论 -
Facebook广告效果数据获取
公司每年在Facebook和Google上投放了大量的广告,我总不能让老板登录Facebook广告投放平台上去看广告效果,其实老板只关注每天花了多少钱引来了多少客户,每个客户平均花费多少钱,其它的他才不关心,有Facebook开放平台我们就可以通过API直接获取广告效果的数据,然后短信发给老板,下面讲一下用Python requests库简单快速实现该功能。1、用个人Facebook账号注册开放平台。2、创建一个应用,应用可以不上架,得到应用编号和应用密钥。原创 2023-10-27 21:53:49 · 1043 阅读 · 0 评论 -
CSRF防范介绍之二
《CSRF防范介绍之一》我们介绍了使用Flask搭建CSRF攻击的钓鱼网站,主要是利用Form表单能跨域提交获取cookie值的漏洞,这节我们再来介绍一下使用Flask_wtf的自带的一套CSRF防护体系。最基础防护方法的是检测Refer值,但Refer值是极其容易被伪造,一般采用随机生成Token的方式来防范,逻辑如下,这个与你的代码是哪一门语言没有关系。1、后端生成一个token存放在session或redis中。2、将token返回给前端。3、前端表单提交时携带上该token。4、后端校验提交的tok原创 2023-10-27 15:40:13 · 65 阅读 · 0 评论 -
CSRF防范介绍之一
CSRF是Cross Site Request Forgery的缩写,即跨站请求伪造,CSRF攻击是借助受害者的Cookie骗取服务器的信任,以受害者名义伪造请求对服务器进行攻击,一直以来有个疑问,前后端分离使用LocalStorage存储用户令牌token是否还存在CSRF漏洞?注:这里action指向网站A,然后页面做得很炫,用色情或者领取优惠券等吸引眼球的效果诱导你去点击链接,如果这时你在正常网站A登录成功没有退出,然后点了恶意网站B的链接。A网站登录没有退出的情况下,在B网站点击链接。原创 2023-10-27 15:29:51 · 95 阅读 · 0 评论 -
Android加载SO包
这几天用Android整合开源的RTMP推拉流都没成功,好几年没玩Android了碰到好多坑,在Android中为了效率难免需要调用C语言编写生成的SO文件,比如图片渲染加速,视频编解码等插件,今天我们就先聊一下在Android中如何加载SO文件。注:上面例子我是引入vitamio开源想实验一下RTMP拉流播放,现在SO库是能正常加载了,但播放不了,报错误信息如下,估计是SO版本的兼容性。armeabi:第五代、第六代ARM处理器,使用软件浮点运算,很古老的手机是这架构。USB连上手机打开开发者模式。原创 2023-10-26 12:06:14 · 550 阅读 · 0 评论 -
用VLOOKUP快速合并两个表格
上周五微信收到运营提过来的需求,第一句话:帮我提取一下1号门店的库存数据,马上登录系统下载一份库存数据给到他然后专心读代码,过一会微信第二句话:帮我提取一下1号门店商品半年/一年的销量数据,又登录系统下载一份销量数据给到他接着专心读代码,过一会来了第三句话:需要把库存数据和销量数据合并在一个表格里,尼玛,话说你的需求不能一次说清楚吗,遇到这种情况怎么办,作为程序员第一想法是将两个表格导入两张临时表然后关联查询导出,但这样挺折腾。注:EXCEL真的是很强大,作为一个程序员是需要好好学学EXCEL的使用。原创 2023-10-24 18:55:08 · 619 阅读 · 0 评论 -
系统对接-验签机制
消息摘要算法加密过程不需要密钥,加密的数据无法解密。只有输入相同的明文并且使用相同的摘要算法才能得到相同的结果。原创 2023-10-16 07:56:25 · 208 阅读 · 0 评论 -
稀里糊涂的转义
是&在HTML中的转义,那为什么要进行转义呢,因为在HTML中有些字符是预留的(注:每种语言都有预留关键字),比如在HTML中不能直接使用小于号(<)、大于号(>)等,因为浏览器会认为它们是HTML标签,如果希望正确显示预留字符,我们必须在HTML代码中使用对应的字符实体。怀疑后端程序基础框架中有代码进行转义,直接创建一个最简单的SpringBoot项目(与工程版本一致),用postman提交含&的字符串,后端接收到的数据是正常的,这说明与SpringBoot框架不相关。结论:后端拦截器问题。原创 2023-10-16 07:38:16 · 170 阅读 · 0 评论 -
库存管理与策略模式
上面各业务模块都涉及到库存的变更,抽像出来主要有两种类型的库存变更,一种是实际库存和有效库存的变化,另外一种是预售单会额外涉及到预留库存的变化,这个如果写判断逻辑去处理,代码就会比较混乱,所以我们采用策略模式来解决这个问题。PS:今天看了一篇文章讲到库存管理要分层:分成 销售层、调度层、仓库层,好复杂,我们这样垂直行业应该不需要做得这么复杂。策略模式:策略模式是针对一组算法(行为),将每一组算法(行为)封装到具有共同接口的独立的类中,降低代码耦合度。门店占用(预留)库存:虚拟库存,预售单占用库存。原创 2023-10-07 21:13:23 · 395 阅读 · 0 评论 -
几行代码提高文章访问量
1、浏览量的计算一般与用户是否登录无关,对非登录用户网站要识别是否是同一用户,无外乎检测你的IP地址、检测User-Agent、通过Cookie(你第一次访问就给你的Cookie设置一个标记)这些手段,基本上都可以绕过去,不过我访问一个平台,这些应该都没做好或者不愿意做,那这些手段我也不用管了。想办法把浏览量搞上去,浏览量到一定数量平台自然就会给你展现的机会,其实我写这些文章很多是学习笔记类,也有些是经验总结,虽然不指望能挣钱,但总是花时间写出来的,还是希望能够得到更多人的阅读。赋值=号前后不能有空格。原创 2023-10-07 20:45:51 · 104 阅读 · 0 评论 -
读新乌合之众
从众的现象:如在街道两边有两家奶茶店,其中一家门口排长队,另外一家门口比较冷清,当你路过想买奶茶的时候,你对两家店奶茶的口味价格都不清楚,这个时候你是极有可能到排长队的那家奶茶店去买,听说以前有知名品牌奶茶店找托排队的事情,另外很多楼盘开盘的时候也会找一些托,哄托气氛,这都是利用人们从众心理挖的一些陷阱。当你与所在的群体大多数人的意见或想法不一致时,会放弃自己的立场而与群体保持一致,因为人是群体性动物,为了提高生存效率,必须和大家行动保持一致才不会被排斥,从而省心省力,容易得到归属感。原创 2023-10-07 20:29:42 · 87 阅读 · 0 评论 -
电子签名介绍
淘宝有一个开源项目叫GCanvas,是一个移动端跨平台渲染引擎,最主要是解决Android平台图形渲染性能问题,底层用C++编写的,那还是13年时候的事情,我印象比较深的Android4.X版本的时候如果直接用H5的Canvas,H5小游戏上有几条鱼就游不动了,换成运行在GCanvas可以跑好几千条鱼都能很欢快地游动。最近在做一个报价系统,业务方要求报价单上的签名可以直接在PAD上手写完成,这个一般用Canvas画出来就可以,但是否具有法律效应,现在我还没搞清楚,先了解一下Canvas签名是怎么做的吧。原创 2023-10-07 17:37:21 · 81 阅读 · 0 评论 -
从一坨代码说起
解析模板,如果模板已经加载到缓存直接使用,否则读取模板文件,最终会调用TemplateHandlerAdapterMarkupHandler去解析HTML文档,并且将数据渲染到HTML文档上,这个解析器和以前用的DOM4J什么看起来很像,也是以事件的方法触发,比如handleOpenElementStart、 handleOpenElementEnd这种方法。讲了邮件发送图片用base64编码避免远程图片地址因安全问题被邮件服务器限制,今天我们来讲一下怎么使用模板引擎构建邮件正文内容。原创 2023-10-07 09:19:28 · 78 阅读 · 0 评论 -
从半张残缺的图片说起
最近元宇宙很火,昨天小扎同志把Facebook改名叫Meta,真是连脸都不要了,元宇宙是人们娱乐、生活乃至工作的虚拟时空,整合了AR/VR,区块链,AI等技术,都很高大上,很遗憾这些技术我都不懂,那么我还是讲讲我能讲明白的技术吧,事情是这样的,昨天一同事在重构邮件发送功能的时候,要将图片显示在邮件正文中,收到邮件后发现图片是残缺的,如下图左侧所示,右侧是原图。如果是汉字,它本身有多种编码格式,如GBK、UTF-8编码生成的Base64值是不同的。4、根据Base64编码表,得到每个字节对应的符号。原创 2023-10-07 09:07:47 · 102 阅读 · 0 评论 -
快速开发微信小程序之二-微信支付
在面试程序员的时候,有两项经历会带来比较大的加分,第一你是否做过支付金融相关的业务,第二你是否写过底层框架中间件代码,今天我们聊一下微信支付是如何对接的。要使用微信支付,第一步就是要先入驻微信商户平台,准备好你的企业营业执照、法人身份证等完成入驻,平台就会给你生成 MCH_ID(商户ID)、MCH_KEY(商户密钥)、然后申请开通支付产品类型、操作证书、绑定银行卡等等。商家自行开发系统对接微信支付进行交易,微信支付将资金结算到商户的结算账户.原创 2023-10-02 23:08:49 · 297 阅读 · 0 评论 -
快速开发微信小程序之一登录认证
案例说明:牛奶应用开始是开发公众号-服务号,这个时候用户注册到我们表里会有一个openid_1,然后小程序火起来了,我们决定开发小程序,但小程序会重新给同一个用户分配一个openid_2,这就不好了,你不能让一个用户在公众号上可以看到他自己的订单,然后跑到小程序后找不到订单是吧,咋整呢,微信还有一个开放平台,你再申请一个邮箱去注册一下开放平台,然后把公众号和小程序都在里边绑定一下,这样他就会给你分配一个统一的unionid。获取临时登录凭证CODE,有效时间为5分钟,使用后就立即失效。原创 2023-10-02 23:00:07 · 1096 阅读 · 0 评论 -
给奶牛做直播之四
注:在写这个文章的时候才想起还在淘宝同学这个项目组呆过一段时间,不过视频是来自迅雷一个同事负责和淘宝视频组的人做对接,我当时好像在维护VSearch数据,对视频一直没去了解,话说前后不同项目组里共事过三个做视频的,一个来自快播,一个来自盛大,当时和他们在一起聊得最多的是妹子,没怎么聊技术,好像做视频技术都好色哈。注:基于HLS搭建的播放首次加载接近10秒,而RTMP3秒左右,但HLS不受防火墙影响,并且HLS除了首次加载,后续因为有m3u8索引文件会预先通过多个线程把小的TS文件下载下来.效率还是不错的。原创 2023-10-01 08:49:49 · 312 阅读 · 0 评论 -
给奶牛做直播之三
重启Nginx,输入http://118.31.5.244/stat,该页面可以监测直播一些参数数据,如果有Live就表示你配置成功了,在图上也可以看到Video和Audio是分开的,音频流是用AACLC编码,而视频流就是用我们。主要讲用RTMP搭建点播服务器,整了半天直播还没上场,今天不讲太多理论的玩意,奶牛今天放假了也不出场,就由本人亲自上场来个直播首秀,见下图,如果有兴趣的话,可以联系我,我会把直播打开,和你吹吹牛。1、RTMP是应用层协议,默认使用1935端口号,网络层依赖于TCP来保证可靠传输。原创 2023-09-30 22:22:46 · 352 阅读 · 0 评论 -
给牛奶做直播之二
主要讲了视频的编解码,我们今天接着往下聊,主要介绍一下视频流的网络应用层协议,先简单讲一下视频文件格式与编码,视频文件格式有很多比如以前的AVI、RMVB、MP4等等无数种,视频文件格式和前一篇讲的视频编码是两回事情,视频文件格式可以理解为一个容器,里边要放视频流和音频流,视频编码是对容器里视频流数据进行压缩,主要也就是前一篇讲到的MPEG和H.26X这两个系列。搭建RTMP服务器,播放时实时连接服务器,播放的是服务器上的文件,视频文件不会缓存在客户端,版权更安全。原创 2023-09-30 22:12:28 · 176 阅读 · 0 评论 -
给奶牛做直播之一
前几天看了薇亚写的一本书《人生是用来改变的》,和同事聊的时候同事问我这本书讲了什么,我回想了一下说主要是讲:我很辛苦,我很上进,我很牛逼,我很善良!话说成功人士放个屁都是香的,但也不可否认成功人士确实有其优秀的品质,言归正传,所以我们今天来讲一下直播,这还是2018年那个秋天的事情,有一天老板说我们有这么漂亮的牧场有这么丰满的奶牛我们要做直播,然后给了两个方案让我调研考虑一下(一听就不靠谱,老板经常脑洞大开,然而这也正是他是老板,我是员工的一个重要原因之一)。原创 2023-09-30 20:50:53 · 172 阅读 · 0 评论 -
二维码那点事
,但NFC支付毕竟还是比较小众,主要是因为二维码实在是太强大太深入人心了,有个大佬在很早的时候就说过二维码是连接线上线下的桥梁,是连接现实与虚拟最得力的一个工具,到今天街头卖烤串的,人人都有二维码,今天我们就来简单了解一下。QRCode是最常见的二维码编码格式,我们在开发时可以引用Google的ZXing包来生成和识别二维码,Java和Android有对应的包,下面的例子是引用Java的两个包ZXing-core和ZXing-j2se。另外,我通过上面读取的代码读取我微信的付款码,读取的结果如下。原创 2023-09-30 20:21:02 · 167 阅读 · 0 评论