申请Google Adsense, 结合Hugo配置

申请Google Adsense终于审核通过了, 哈哈哈, 容我大笑一下下. 毕竟只是一个小小博客, 没什么访问量, 多数访问量还是这篇文章提供的. 主要记录以下从Hexo迁移至Hugo后Google Adsense的配置. 申请Google Adsense 网站不符合Google合作规范 讲真, 没什么技巧. Google拒我千百遍, 我待Google如初恋. 申请了多次均以 网站不符合Google合作规范 为由拒掉了, 翻阅互联网以这个关键词的博文, 也没有什么好的建议, 继续提交申请, 大约连着四五次, 竟然过了… 要说有什么建议, 还真没啥, 不过以下几点不确定是否有帮助: 1. 接入了Googel Aanalytics 2. 接入了Google Search Console, 有一定的Google收录(本博客截止本文写成只有约120个结果) 3. 网站稳定运行, 有一定的访问量(这个博客放在GitHub Pages, 会话数每天只有约20) 4. 不要有敏感的文字 5. … 结合Hugo even 配置 自动广告 & 广告单元 第一用Google Adsense, 瞎配置玩玩. 我用的是Even主题, 这个主题没有提供便捷的配置方式, 需要自己手动配置. 自动广告 我全局配置了自动广告, 这个可以修改themes/even/layouts/partials/head.html 文件, 添加如下代码, 记得修改为你的自动广告代码哟 <!-- Google Adsense --> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script> (adsbygoogle = window.……

阅读全文

Hexo 迁移至 Hugo

终于还是忍受不了Hexo那繁多的依赖和一片飙红, 换了使用GoLang编写的Hugo. 使用感觉良好, 生成速度很快, 文件结果也比较清晰. 值得花一点儿时间迁移一下. 坑… 迁移并不是无痛的, 有些不兼容的地方, 主要是下面几点. title 需要在title上一行加一行---. date 需要是2018-09-01T01:00:00+08:00这样的格式的. tags和categories 与hexo不同, hugo使用的是类似于数组的形式的, 例如本篇的tags就是["hexo", "hugo"], 而在hexo中则是 Hexo中配置 tags: - hexo - hugo Hugo中配置 tags: ["hexo", "hugo"] 需要注意的是, 如果使用tags和categories, 需要在根配置文件里添加下列配置 [taxonomies] tag = "tags" category = "categories" URL 因为使用hexo已经收入了一些文章, 为了保持原url, 我的原hexo的配置是 /:year/:month/:day/:title/, 需要配置一项 Hexo中配置 /:year/:month/:day/:title/ Hugo中配置 [permalinks] post = "/:year/:month/:day/:filename/" 另外, 视情况可能还需要开启区分大小写的开关 DisablePathToLower = true 差不多就是这么多了, 欢迎留言交流………

阅读全文

Dropbear/极路由 免密码登录

极路由每次ssh登录都需要密码, 配置一下免密码登录 与sshd不同, Dropbear的配置文件在 /etc/dropbear/authorized_keys, 类似于sshd的 ~/.ssh/authorized_keys。同样需注意文件的权限。 欢迎留言交流………

阅读全文

自己动手写一个极路由内网穿透插件

市面上那么多极路由内网穿透插件,为了可控和安全,为何不自己动手写一个呢? 事出有因 也很简单,懒的说明。直接上源码咯 源码: https://github.com/xu42/hiwifi-frpc/ 如果对源码没兴趣, 直接下载插件在极路由后台上传即可. 与其他frpc极路由插件不同的是 - 开源 - frpc 版本可控(因为未上架 需要自己打包上传2333) 欢迎留言交流………

阅读全文

Charles Client SSL handshake failed certificate_unknown

抓包 Android App HTTPS Charles Client SSL handshake failed 问题解决. 相关背景 使用Charles抓包时, 有些APP使用https的可以解开但有些就报这个错,放谷歌查了一些资料,放上解决方案,有类似问题的可以参考一下。 解决方案 确保已正确安装证书, Charles已配置好 使用apktool对apk进行反编译 apktool d example.apk 修改AndroidManifest.xml配置文件, 在application节点添加一行代码: android:networkSecurityConfig="@xml/network_security_config" 新增res/xml/network_security_config.xml配置文件, 内容为下(替换example.com为你要对此APP进行抓包的域名): <network-security-config> <domain-config> <domain includeSubdomains="true">example.com</domain> <trust-anchors> <certificates src="user"/> </trust-anchors> </domain-config> </network-security-config> 使用apktool进行编译 apktool b example 使用ApkSign对第4步编译后的apk进行签名 java -jar signapk.jar certificate.pem key.pk8 example.apk example.sign.apk 安装第5步的apk进行抓包吧~ 参考 CSDN MrgcXia的博客 Charles Android 抓包失败SSLHandshake: Received fatal alert: certificate_unknown CharlesProxy SSL Certificates 欢迎留言交流~……

阅读全文

记一次伪并发引起的bug

一次较典型的问题排查过程, 分享一下, 欢迎指正和交流. 相关背景 内网有两个应用A和B, 其中B提供两个服务化接口B1和B2, 外网有一个应用W提供两个HTTP接口W1和W2. 内网的A通过RPC与B通信、B通过HTTP与W通信. 画了个简图如下 应用A:A首先调用B1(设置了一定的超时时间), 若超时则调用B2. 应用B:B1调用W1(设置了一定的超时时间), 调用W1成功后写入记录供B2调用W2时需要. 问题表象 观察应用B的日志发现, 有少量的B2被调用的 “记录不存在的” 业务异常日志. 根据这些异常日志分析出可能的一种情况: B1与B2 “同时” 由A发起调用, B2先行到达被处理, 引起这个异常. 从日志中也确实发现了 “记录不存在的” 的异常日志与B1的被调用日志在同一秒钟被记录到. 真的是并发引起的么? 问题追踪 理论上来说, A发起调用B1与B2, 即使是同一秒钟, 也不大可能是同一时刻. 这是因为A的逻辑决定的, 在调用B1超时后才会调用B2, 至少也是相隔了个超时时间段. 而后与A的负责人沟通得知, 调用B1的超时时间是300ms, 且找了几条异常日志对应的B1调用记录发现, 都存在同一个共同点: 耗时较长超过了300ms. 从这里可以分析出来, B2的调用至少隔了300ms才会被调用. 再次观察对应的B1调用链发现: 耗在调用W1的时间基本都在300ms以上. 这样疑问就很清晰了: A发起调用B1(超时500ms), B1发起调用W1(超时300ms). W1响应时间超过约300ms后A认定超时继而发起调用B2, 而此时B还在等待W1的响应因而没有写入记录导致A调用B2引发 “记录不存在的” 业务异常日志. 解决方案 为避免外网系统对接的超时问题, 其实内部已经有了一套较为完善的隔离方案, 这个隔离方案简单来说就是在白名单内的走单独一套超时限制较宽松的系统. 因为上面说的案例比这个隔离方案出来的时间早且比较仓促, 没有设计隔离方案且一直没有进行接入. B2接口的实时要求不高, 可以异步处理, 暂时把B2的逻辑处理延迟1s后处理. 欢迎留言交流~……

阅读全文

个人网站即时到账收款解决方案

[更新 2018-10-22] 支付成功的状态码变更了,PAID变为了TRADE_PAID,建议兼容处理,详情看兼容代码 [更新 2018-09-05] 收到有赞云邮件(如下),交易相关的消息和接口已更新且旧版本即将下线,这个Demo代码长久没有更新,也借此机会更新一把。 有赞开放平台已正式推出V3版推送服务,原有的商品V1和交易V1/V2版推送 ,包含的内容较单一,无法满足不同业务场景下的开发需求,如您正在使用,请在9月底之前完成V3版本切换,切换期后,我们将停止老版本的维护和开放。 同时,推送的数据采用最新的订单详情4.0接口,开放平台推出了交易4.0接口,后续也会停止对老接口(3.0版本)的维护,请开发者在9月底之前完成交易接口的对接切换。 新增的消息版本和相关接口列表: 1. 交易消息V3 2. 订单详情4.0 升级 后台消息推送配置 ,勾选交易消息V3的你需要的消息事件。对于创建二维码收款的,至少要勾选交易支付(支付完成会收到该消息, 原PAID事件)。如果需要等待支付的状态, 需要勾选交易创建(用户点击支付但未付款状态, 原WAIT_BUYER_PAY事件)。其他消息可自行根据实际需求进行勾选。 同样是在消息推送配置页面,去掉交易消息的所有勾选,因为已经勾选了V3的且V1和V2即将废弃,没有接收的必要了。 对于之前收到订单支付回调消息再取订单详情拿到qr_id的逻辑,可以直接移除掉。qr_id可以从回调消息中直接获得(测试发现,并不是所有消息中都有该字段,但测试中也同样注意到PAID事件一定会有该字段),该字段位于回调消息中的msg.qr_info.qr_id。 其实这次升级很简单的,但是一定要测试过再在生产环境跑哟~ 有什么问题可以留言交流… 个人开发者要想给自己的产品(网站、APP等)接入支付宝、微信的即时到账接口,是有一定的门槛的,一般是需要公司资质,这也就阻碍了不少个人开发者的兴趣。市面上也有一些第三方聚合支付,但往往费率较高或是信赖度低。本文要介绍的就是一种个人可以接入的基于有赞云的解决方案。 前置条件 注册开发者 只需在 有赞云 进行个人开发者身份注册就可以了。 店铺授权 创建可授权店铺: 微商城店铺 或者 有赞微小店 都可以。前者面向商家提供功能完善的线上商城,后者面向个人提供分销商品和自营工具可免费使用; 应用授权: 创建完店铺后,再登录到有赞云控制台创建自用型应用并授权刚创建的店铺; 设置推送网址: 在有赞云控制台-推送服务 进行推送网址的设置,有赞云会将支付信息推送到这里设定的网址; 至此,完成前置条件,下面是开发相关的。 开发 依赖接口 依赖有赞云的两个接口和消息推送. 1. 创建收款二维码 2. 获取单笔交易信息 3. 交易信息推送 简要流程 简单介绍下开发流程/思路。 1. 开发者在需要向用户展示收款链接或二维码的时候,调用创建收款二维码接口(可创建可多次使用和仅能使用一次等多类型二维码),接口返回二维码信息(唯一id、链接和二维码),开发者需要自行创建用户身份和该二维码之间的关联关系; 2. 当用户扫码后点击微信支付/支付宝支付,会收到WAIT_BUYER_PAY等待支付事件消息,待用户完成支付会收到TRADE_SUCCESS支付成功事件消息(更多事件消息可点击交易信息推送进行了解); 3. 开发者收到的交易信息中的id可理解为订单号,接着用此id调用获取单笔交易信息接口,该接口返回的信息TradeDetail 比较多,我们需要关心的是qr_id字段,对应到第一步创建的收款二维码的唯一id,开发者即可关联到用户的支付状态并进行后续处理; 至此,了解了开发的流程,下面是一个简单的Demo。 Demo 基于上述分析,开发了一个简单的收款Demo。……

阅读全文

造了个轮子 XML 2 JSON

如何让命令行提高我们的工作效率?如何快速的用命令行解析出xml文档中需要的字段? 事出有因 周末折腾无人问津的博客,发现Google几乎每篇文章都收录了,然而百度只收录了首页。。为啥只收录了首页呢?网上搜了搜发现用Github Page的很多都存在这个问题,猜测是因为N年前的百度JS DDOS Github… 虽然平时百度用的也少,但重在折腾嘛。在百度站长后台提交索引其实也没什么卵用,因为百度🕷️抓托管在Github Page的站点很大几率会被403… 折腾起来就是这样,本来托管在GitHub Page很省事儿,这下又搞了个CDN,也算是加速下吧。https://xu42.github.io/blog/ 转到了 https://blog.xu42.cn/ 之后,想要在百度站长后台提交站点地图,总不能一个链接一个链接的打开复制粘贴吧,用的是Hexo,有个自动生成RSS订阅用的atom.xml文件,里面包含了所有的文章列表,当然也包括了url,怎么提取这部分url呢?这就是这个轮子的来因了。 造轮子 Github: https://github.com/xu42/xml2json 轮子造好了就提取个试试吧,一并在推给百度站长后台。 curl https://blog.xu42.cn/atom.xml | xml2json | jq -r '.entry[].id' > urls.txt curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=https://blog.xu42.cn&token=YOURTOKEN" ok,完事~ 怎么高效就怎么来……

阅读全文

网页嵌入Bilibili HTML5视频播放

Bilibili好在无广告,速度也挺快,无奈B站官方的视频嵌入是Flash的形式,但B站又是支持HTML5播放的,那么问题来了,外站如何嵌入HTML5的播放形式呢? 参考了这篇文章 http://www.jianshu.com/p/205385febcae ,但这篇文章的问题在于嵌入的视频并非“全屏”,右半边是弹幕什么的东西,这些我们并不需要,需要的仅仅是播放页。 在网页源代码中查找到cid和aid 拼接下面的URL(替换为你的cid和aid) https://player.bilibili.com/player.html?aid=11200262&cid=18527724&page=1 https://player.bilibili.com/player.html?aid=11200262&cid=18527724&page=1 在你需要嵌入的地方粘贴下面这段代码即可(替换为你的cid和aid) html <iframe id=sbrxp src="//player.bilibili.com/player.html?aid=11200262&cid=18527724&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="width: 640px; height: 430px; max-width: 100%"> </iframe> 美中不足的两点是,没有找到办法禁止视频的自动缓冲、禁止发送弹幕栏的显示。如果你找到了更好的办法,欢迎留言交流~ 效果……

阅读全文

我的毕业设计:基于新媒体技术的校园信息平台

很low的名字,但跟众多的某某系统相比个人觉得还是很有新意的,这里的新媒体技术指微信公众平台的服务号和小程序。这个信息平台包括了教务新闻、成绩、课表、考试安排和一卡通、网络自助以及快递追踪等信息。 先来看看视频演示吧 再来看看最后的输出吧(开源) 1. 完整的项目 微信服务号 小程序 2. 开发的组件 2.1 英语四六级 xu42/mydlpu 2.2 教务新闻 dlpu-news 2.3 物流追踪 xu42/express-tracking 2.4 网络自助 xu42/dlpu-network 2.5 一卡通 xu42/dlpu-ecard 最后来说说开发过程吧 没什么好说的,很简单,核心技术就是模拟登陆和正则解析。快递追踪挺好用的,实时推送最新动态到微信,欢迎使用。小程序的测试账号密码是1305040000/00000000 ……

阅读全文