昨天,今天,明天,每天的每天,你是否都多懂得一点点...

星期五, 八月 31, 2018

[Youtube] 三星S6 Edge 线刷升级到安卓7.0 Nougat (可救砖)

Tags: Samsung S6 Edge, Flash Rom, Android 7.0 Nougat, Flash, 三星S6 Edge, 线刷, 救砖,



此教程是关于三星S6 Edge线刷安卓7.0固件的方法。 如果你的三星S6 Edge手机变砖了, 或者因为ROOT了不能OTA升级, 或者是什么别的原因要升级到安卓7.0 Nougat, 你都可以使用本教程。

警告:本作者不对使用本教程引起的任何损失负责。

先说说事件的起因吧, 昨天我突然发现微信一键转发朋友圈的功能不见了, 检查了才发现微 X 模块没有工作, 而且整个 Xposed 框架都不工作了. 重装 Xposed Installer 没用. 于是我上网随便找了个看上去像那么回事的 Xposed 框架用 TWRP 就往里刷. 想总不至于变砖吧. 没想到梦想成真, 变砖了. 主要是刷 Xposed 是太久以前的事, 具体用哪个刷机包已经不记得了. 所以, 刷任何东西都要小心呀. 变砖后的现像是手机无法关机, 黑屏, 蓝色指示灯常亮,也看不见充电状态. 用音量上+HOME+电源键的方法无法进入 RECOVERY. 用音量下+电源键可以重启, 重启后黑屏, 蓝色指示灯常亮, 就是关不了机. 但幸运的是, 还是可以用音量下+HOME+电源键的方法进入 DOWNLOAD 模式. 也就是说, 可以用 ODIN 刷机. 刷完机后, 原来 50%多的电量剩 25%, 也不懂电脑的 USB 有没有给手机充到电. 所以刷机前, 充满电呀!  

-~-~~-~~~-~~-~-

本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用KODI看电影等等. 点击进入我的频道: goo.gl/5tyxcf

🔷 订阅我的频道: goo.gl/KuF3bY
🔷 telegram电报群: t.me/fengsharegroup
🔷 我的博客: www.dengnz.com/blog
🔷 Facebook: www.facebook.com/fengnz

觉得我的视频对你帮助很大的话, 请我喝杯咖啡吧
微信赞赏码: goo.gl/uKoE8w
-~-~~-~~~-~~-~-

星期三, 八月 29, 2018

[Wordpress] 如何在Wordpress里面发wordpress代码

Tags: Wordpress, escape code,

我之前发了这么一篇文章

[Wordpress] Git 主题自定义标签BBCODE Shortcode


我原来想发的是代码,可是全部被解析出来, 因为我忘了Esacpe这些特殊符号。实际上我是要想显示以下的效果。 




引用: <blockquote></blockquote>\n
横线: <hr />\n
H2标签: <h2></h2>\n
H3标签: <h3></h3>\n
首行缩进:   
回车: <br />
居中: <center></center>
黄字: <mark></mark>
下划线: <u></u>
代码高亮: <pre class= >\n\n</pre>
链接按钮: [dm href=][/dm]
下载按钮: [dl href=][/dl]
开源按钮: [gt href=]开源地址[/gt]
绿色通知: [v_notice][/v_notice]
红色警告: [v_error][/v_error]
黄色错误: [v_warn][/v_warn]
灰色提示: [v_tips][/v_tips]
蓝色提示: [v_blue][/v_blue]
蓝边文本: [v_act][/v_act]
BS绿色: <div class= role=></div>
BS蓝色: <div class= role=></div>
BS黄色: <div class= role=></div>
BS红色: <div class= role=></div>
绿色按钮: [gb href=][/gb]
蓝色按钮: [bb href=][/bb]
黄色按钮: [yb href=][/yb]
透明按钮: [lhb href=][/lhb]
网易云音乐: [netmusic play=][/netmusic]
视频按钮: [video play=][/video]
音频按钮: [audio play=][/audio]
隐藏收缩: [collapse title=]\n\n[/collapse]
回复可见: [reply][/reply]
登录可见: [vip][/vip]
密码可见: [secret wx=0][/secret]
弹窗下载: [fanctdl filename= filesize= href= filedown=]这里填写的文件的辅助下载链接,A标签即可![/fanctdl]
下载面板: [dltable file= size=]这里留文件下载A标签链接,可以放多个链接[/dltable]
单页下载: [download][/download]
下一页: <!--nextpage-->
代码演示: [demo][/demo]
运行PHP: [phpcode file=]
文章内链: [neilian ids=]
文章外链: [wailian][/wailian]
无序列表: [list][/list]
付费查看: [pay point=][/pay]

但你不能直接把这些代码写在wordpress里面。 你必需把 < 换成 &lt;, 把> 换成 &gt;. 再把[ 换成&#91;, ] 换成 &#93;. 

最后你写入wordpress里的应该是这样的

引用: &amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt;\n
横线: &amp;lt;hr /&amp;gt;\n
H2标签: &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;\n
H3标签: &amp;lt;h3&amp;gt;&amp;lt;/h3&amp;gt;\n
首行缩进: &amp;amp;nbsp;&amp;amp;nbsp;
回车: &amp;lt;br /&amp;gt;
居中: &amp;lt;center&amp;gt;&amp;lt;/center&amp;gt;
黄字: &amp;lt;mark&amp;gt;&amp;lt;/mark&amp;gt;
下划线: &amp;lt;u&amp;gt;&amp;lt;/u&amp;gt;
代码高亮: &amp;lt;pre class= &amp;gt;\n\n&amp;lt;/pre&amp;gt;
链接按钮: &amp;#91;dm href=&amp;#93;&amp;#91;/dm&amp;#93;
下载按钮: &amp;#91;dl href=&amp;#93;&amp;#91;/dl&amp;#93;
开源按钮: &amp;#91;gt href=&amp;#93;开源地址&amp;#91;/gt&amp;#93;
绿色通知: &amp;#91;v_notice&amp;#93;&amp;#91;/v_notice&amp;#93;
红色警告: &amp;#91;v_error&amp;#93;&amp;#91;/v_error&amp;#93;
黄色错误: &amp;#91;v_warn&amp;#93;&amp;#91;/v_warn&amp;#93;
灰色提示: &amp;#91;v_tips&amp;#93;&amp;#91;/v_tips&amp;#93;
蓝色提示: &amp;#91;v_blue&amp;#93;&amp;#91;/v_blue&amp;#93;
蓝边文本: &amp;#91;v_act&amp;#93;&amp;#91;/v_act&amp;#93;
BS绿色: &amp;lt;div class= role=&amp;gt;&amp;lt;/div&amp;gt;
BS蓝色: &amp;lt;div class= role=&amp;gt;&amp;lt;/div&amp;gt;
BS黄色: &amp;lt;div class= role=&amp;gt;&amp;lt;/div&amp;gt;
BS红色: &amp;lt;div class= role=&amp;gt;&amp;lt;/div&amp;gt;
绿色按钮: &amp;#91;gb href=&amp;#93;&amp;#91;/gb&amp;#93;
蓝色按钮: &amp;#91;bb href=&amp;#93;&amp;#91;/bb&amp;#93;
黄色按钮: &amp;#91;yb href=&amp;#93;&amp;#91;/yb&amp;#93;
透明按钮: &amp;#91;lhb href=&amp;#93;&amp;#91;/lhb&amp;#93;
网易云音乐: &amp;#91;netmusic play=&amp;#93;&amp;#91;/netmusic&amp;#93;
视频按钮: &amp;#91;video play=&amp;#93;&amp;#91;/video&amp;#93;
音频按钮: &amp;#91;audio play=&amp;#93;&amp;#91;/audio&amp;#93;
隐藏收缩: &amp;#91;collapse title=&amp;#93;\n\n&amp;#91;/collapse&amp;#93;
回复可见: &amp;#91;reply&amp;#93;&amp;#91;/reply&amp;#93;
登录可见: &amp;#91;vip&amp;#93;&amp;#91;/vip&amp;#93;
密码可见: &amp;#91;secret wx=0&amp;#93;&amp;#91;/secret&amp;#93;
弹窗下载: &amp;#91;fanctdl filename= filesize= href= filedown=&amp;#93;这里填写的文件的辅助下载链接,A标签即可!&amp;#91;/fanctdl&amp;#93;
下载面板: &amp;#91;dltable file= size=&amp;#93;这里留文件下载A标签链接,可以放多个链接&amp;#91;/dltable&amp;#93;
单页下载: &amp;#91;download&amp;#93;&amp;#91;/download&amp;#93;
下一页: &amp;lt;!--nextpage--&amp;gt;
代码演示: &amp;#91;demo&amp;#93;&amp;#91;/demo&amp;#93;
运行PHP: &amp;#91;phpcode file=&amp;#93;
文章内链: &amp;#91;neilian ids=&amp;#93;
文章外链: &amp;#91;wailian&amp;#93;&amp;#91;/wailian&amp;#93;
无序列表: &amp;#91;list&amp;#93;&amp;#91;/list&amp;#93;
付费查看: &amp;#91;pay point=&amp;#93;&amp;#91;/pay&amp;#93;

我为了发上面这段代码,又二次Escape了。


[网络技术] Windows 10 远程桌面突然不让连了, CredSSP 错误

Tags: RDP, Remote desktop, CredSSP

原来用得好好的远程桌面今天突然就不能用了。 出现以下的错误。

This could be due to CredSSP encryption oracle remediation.





以下的官网链接解释了为什么错误。基本上就是说因为客户端打了个安全补丁, 如果服务端没有打同样的补丁的话, 就不让连, 要在服务端一起打补丁。 如果一定要连的话, 在客户端的组策略里可以设置。



官网鸡鸡歪歪半天说不清楚, 我直接上图。

#img1#



#img2#




#img3#

星期二, 八月 28, 2018

[网络技术] 使用你自己的NameCheap DNS 作为动态域名

Tags: NameCheap, DDNS

我之前用过两个动态域名的服务, 当时没有自己的域名, 所以这两个服务是不错的选择。

我第一个用的是no-ip.com, 当然是一个免费的动态域名服务器。 你在这个网站上选择一个自己喜欢的域名,再安装一下它们的客户端就可以了。 而且这个网站还有一个优点, 我的路由器支持这个网站, 我可以直接在路由器里面设置而不需要下载客户端。 但它的缺点也很明显, 这个网站要求你每个月激活一次这个域名, 非常麻烦。

#img1#


第二个我
用过的动态域名服务商是https://www.dynu.com/, 也是个免费的服务商。 它和no-ip.com 一样好用,它们提供免费的域名, 而且没有每个月要激活, 也一样可以用你自己的域名作为动态域名(这种情况你的DNS设置要用它们的).
但我的路由器不支持它(有些可自定义服务商的路由器可以支持). 所以一定要在电脑上运行客户端。


今天我发现其实NameCheap也有自己的DDNS客户端, 也是可以设置动态域名的, 相比于用别人的域名, 用自己的域名多高大尚呀! 而且你不需要改动自己电脑或路由器的的DNS设置。

一步:

首先登录Namecheap 后台加一条DDNS的记录,
这里IP随便填, 因为客户端到时候会更新这个IP。

#img2#


第二步:

到这里下载你喜欢的DDNS客户端。


在局域网的电脑上安装客户端, 然后设置。 我这里用的是苹果电脑上的客户端。
#img3#



设置完后点 Update Now,
然后等几个小时, 你的IP就可以PING 通了。
#img4#


当然, 想要从外网连到你的局域网电脑你还需要设置NAT, 这个就不是这篇文章的主题了。

星期一, 八月 27, 2018

[Youtube] [SSR 翻墙系列] ShadowSocksR 安卓电视盒子客户端设置 [第八集]

Tags: SSR, GFW, ShadowSocks, ShadowSocksR, 科学上网, 梯子, MAC OS,

苹果MAC OS上有两个版本的ShadowSocks R客户端, 界面和功能上是一模一样的, 但设置代理的时候有稍微的区别. 这个视频会同时介绍这两个客户端.



本教程是SSR翻墙系列的第
- [SSR 翻墙系列] ShadowSocksR Windows 10 客户端设置 [第一集] 已发布
- [SSR 翻墙系列] ShadowSocksR 安卓手机客户端设置 [第二集]
- [SSR 翻墙系列] ShadowSocksR SSR://链接, 订阅和二维码的使用 [第三集] 已发布
- [SSR 翻墙系列] ShadowSocksR 如何找到免费的 SSR 节点服务器 [第四集] 已发布
- [SSR 翻墙系列] 如何申请谷歌云 Google Cloud 帐号并免费获得 300 美金一年 [第五集]
- [SSR 翻墙系列] 如何使用谷歌云 Google Cloud 搭建自己的 SSR 服务器保护隐私 [第六集]
- [SSR 翻墙系列] ShadowSocksR 安卓电视盒子客户端设置 [第七集] 
- [SSR 翻墙系列] ShadowSocksR 苹果
电脑
客户端设置 [第八集]
本集
- [SSR 翻墙系列] ShadowSocksR 苹果
手机
客户端设置 [第
集] 制作中...


未完待续…敬请期待
SSR翻墙系列播放列表

-~-~~-~~~-~~-~-

本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用KODI看电影等等. 点击进入我的频道: goo.gl/5tyxcf

🔷 订阅我的频道: goo.gl/KuF3bY
🔷 telegram电报群: t.me/fengsharegroup
🔷 我的博客: www.dengnz.com/blog

觉得我的视频对你帮助很大的话, 请我喝杯咖啡吧
微信赞赏码: goo.gl/uKoE8w
-~-~~-~~~-~~-~-

[网络技术] A workaround to use json data with Google Apps script 如何在谷歌Apps Script里面读本地JSON数据

Tags: Google Apps Script, Json

现在很多API返回的数据都是JSON的格式, 因为他可以很容易的Serialize 转成程序的对象。用谷歌的Apps script 读取JSON的数据不是个问题, 但是有时候我想把JSON数据存在APPs Script本地, 并不想再从Apps Script 里面再发一个请求去拿这个JSON数据。 可惜的是谷歌 APPS script 并不允许新增JSON文件, 也不提供读取本地文件地方法, 除了HTML文件。

但是我发现一个有趣的事, 当我把JSON数据赋给一个变量的时候, 这个JSON数据会被自动的转成Javascript 对象。 如下图, 你会发现我 JSON.parse(members) 这个字符串的结果和我直接把JSON数据赋值给objMember 的结果是一样的。



#img1#




这代表一个非常好的消息, 说明我们只要把Json数据原封不动的复制进来就可以使用。 如下图, 你也可以赋一个Array 进来。


#img2#


[javascript]
function myFunction() {
 var dataAll = JSON.parse(members); 
 Logger.log(dataAll);
 var objM = this.objMembers;
 Logger.log(objM);
  
}

var members='{"testKey": "testValue"}';
var objMembers =[
{"John Li ": ""},
{"vero cheng": ""},
];
[/javascript]


所以我们可以新建很多gs 文件来存JSON数据, 这里有一个问题, 就是在一个文件里面定义的变量不能在另一个文件里使用, 所以你在新建文件里面定义的变量是没有用的。 但你也绝对不会想把所有的数据放在一起。

但我想到了一个好方法, 虽然变量不是全局的, 但是function 是, 只要在这个文件里再加一个function 来返回这个变量, 就可以了。就像下面这张图里表示的一样。

#img3#


[javascript]
function getDataChannels(){
  return dataChannels;
}

var dataChannels =
[
  {
    "kind": "youtube#channelListResponse",
    "pageInfo": {
      "totalResults": 1,
      "resultsPerPage": 1
    }
  }
]

[/javascript]


然后在另一个文件中, 你可以这样访问你的JSON数据。

#img4#


好把, 经过再一次试验, 我发现变量是全局的,并不需要用function来返回。 但我懒得改上面的图片了。用function返回感觉更干净(自我安慰)



星期日, 八月 26, 2018

[Wordpress] Git 主题自定义标签BBCODE Shortcode

Tags: Git主题, wordpress, shortcode

从代码里提取出来的, 方便我自己用邮件发博客哈!



引用: <blockquote></blockquote>\n
横线: <hr />\n
H2标签: <h2></h2>\n
H3标签: <h3></h3>\n
首行缩进: &nbsp;&nbsp;
回车: <br />
居中: <center></center>
黄字: <mark></mark>
下划线: <u></u>
</>: &lt;&gt;
代码高亮: <pre class= >\n\n</pre>
链接按钮: [dm href=][/dm]
下载按钮: [dl href=][/dl]
开源按钮: [gt href=]开源地址[/gt]
绿色通知: [v_notice][/v_notice]
红色警告: [v_error][/v_error]
黄色错误: [v_warn][/v_warn]
灰色提示: [v_tips][/v_tips]
蓝色提示: [v_blue][/v_blue]
蓝边文本: [v_act][/v_act]
BS绿色: <div class= role=></div>
BS蓝色: <div class= role=></div>
BS黄色: <div class= role=></div>
BS红色: <div class= role=></div>
绿色按钮: [gb href=][/gb]
蓝色按钮: [bb href=][/bb]
黄色按钮: [yb href=][/yb]
透明按钮: [lhb href=][/lhb]
网易云音乐: [netmusic play=][/netmusic]
视频按钮: [video play=][/video]
音频按钮: [audio play=][/audio]
隐藏收缩: [collapse title=]\n\n[/collapse]
回复可见: [reply][/reply]
登录可见: [vip][/vip]
密码可见: [secret wx=0][/secret]
弹窗下载: [fanctdl filename= filesize= href= filedown=]这里填写的文件的辅助下载链接,A标签即可![/fanctdl]
下载面板: [dltable file= size=]这里留文件下载A标签链接,可以放多个链接[/dltable]
单页下载: [download][/download]
下一页: <!--nextpage-->
代码演示: [demo][/demo]
运行PHP: [phpcode file=]
文章内链: [neilian ids=]
文章外链: [wailian][/wailian]
无序列表: [list][/list]
付费查看: [pay point=][/pay]

星期六, 八月 25, 2018

[网络技术] 三星s6 edge 线刷安卓7.0 Nougat, 可升级, 可救砖

Tags: Samsung S6 Edge, 三星 S6 Edge, 线刷, 安卓7.0, Nougat, 救砖

上篇教程本来是想写中文的, 但鬼使神差的又写成英文. 以后尽量写中文的, 毕竟类似的英文文章在网上已经不少. 我写的话, 我还是写中文的吧.

警告: 线刷之前一定要记得备份哦. 刷机有风险, 操作需谨慎! 

提示: 如果手机有锁的话是不能刷的哦.


今天这篇文章我来讲讲三星s6 edge 这款手机怎么线刷升级到安卓7.0 Nougat. 线刷和你当前的系统无关,不管是5.0还是6.0 都是可以升级的. 我是从变砖的6.0升上来的. 而线刷还可以用来救砖. 我自己就是因为要救砖才被迫升级的. 

先说说事件的起因吧, 昨天我突然发现微信一键转发朋友圈的功能不见了, 检查了才发现微X模块没有工作, 而且整个Xposed 框架都不工作了. 重装Xposed Installer 没用. 于是我上网随便找了个看上去像那么回事的Xposed 框架用TWRP就往里刷. 想总不至于变砖吧. 没想到梦想成真, 变砖了. 主要是刷Xposed 是太久以前的事, 具体用哪个刷机包已经不记得了. 所以, 刷任何东西都要小心呀.  变砖后的现像是手机无法关机, 黑屏, 蓝色指示灯常亮,也看不见充电状态. 用音量上+HOME+电源键的方法无法进入RECOVERY. 用音量下+电源键可以重启, 重启后黑屏, 蓝色指示灯常亮, 就是关不了机. 但幸运的是, 还是可以用音量下+HOME+电源键的方法进入DOWNLOAD模式. 也就是说, 可以用ODIN刷机. 刷完机后, 原来50%多的电量剩25%, 也不懂电脑的USB有没有给手机充到电. 所以刷机前, 充满电呀!

好, 言归正传, 我们来开始刷机教程.

第一步:

首先你得搞清楚自己的手机的型号. 以下是我的手机的型号, 但现在因为是安卓7.0了, 所以和你们的界面会有不同. 不过不影响我的演示. 

#img1#



从上面那张图你可以看到, 我的手机型号是 SM-G925I. 也就是S6 Edge的国际版. 理论上所有G925I的固件都可以刷. 但我没有试过刷其它国家的固件, 所以这里关于跨国刷固件就不给建议了. 

第二步:

知道了手机型号, 我们就可以下载我们所需要的手机固件了.

到以下这个网址下载对应的手机固件

如图, 有好多925I的手机固件, 我用的是NZC的版本, 因为我的手机是新西兰沃达丰的版本, 所以我选了NZC这个最接近的版本, 因为这里我找不到VNZ的沃达丰版. 但至少国家是一样的.

#img2#

下载后解压出来, 你会得到一个md5为扩展名的文件.

第三步:


下载好固件包后, 我们要下载驱动和刷机软件. 在上面的网址一样可以找到这两个东西, 如果你已经装过了, 就不需要再安装. 当然你也可以在别的地方下载.


下载好后, 记得安装驱动, 而Odin大部分都是解压就可以用的, 不需要安装.

第四步:

现在所有的东西都准备好了, 我们要把手机调到线刷的Download模式. 首先, 关机, 如果你可以的话. 不能关机就不关了. 然后, 同时按住音量下+HOME+电源键, 手指不够的话, 脚趾也可以帮忙的. 记得别放手, 直到你看到一个警告页面, 这时候按音量上就进入了Download模式. Download模式写着不要断开啥的, 看着挺吓人, 但如果你还没有开始用ODin刷机, 你这时候退出还来得急. 用同样的按键重启就可以了.

进入Download界面后,把手机用USB线连上电脑. 然后打开ODin, 如果你看到 <ID:0/003> Added!! 这几个字, 说明ODIN识别出了你的手机, 你可以正常刷机. 如果你没有看到这行字, 说明ODIN没有发现你的手机, 你可能要换根线, 重装驱动或者拜拜神. 

第五步:

现在一切就绪,只差临门一脚了.

去Options 确认一下Auto Reboot 和 F. Reset Time 是勾上的. 而且 Re-Partition 是必需没勾上的. 这个一般是默认设置, 如果不是, 你就按下图勾上.


点击ODIN的AP按钮导入MD5 固件文件. 导入的过程可能有点久, 等一会儿..

导入完后,你的界面又可以动了, 这时候点 Start, 然后, 保护好你的电脑和手机, 不要让任何人碰到他们, 特别是连接线. 刷机失败的话, 听说可能会变成真砖. 然后耐心的等待. 直到你看到如下界面.





好了, 你看到了上面这个界面, 你成功了!!! 这时候, 你可以关闭Odin 软件. 但是刷机还没有完成, 你的手机正在重启, 然后就在三星是LOGO界面停留很久. 你可能以为刷机失败了, 然后并没有, 你要多一点耐心. 好几分钟后, 你的手机终于进入了一个青色背景的界面, 手机开始更新软件, 这个过程又要好几分钟. 最后你的手机终于成功开机了. 

这时候, 你会非常吃惊的发现你所有的软件都在, 几乎所有的设置也都在. 连需要ROOT权限的软件都在, 但它们已经无法用了, 因为没有ROOT权限了. 说实话我也大吃一惊. 之前的备份好像都没用了. 但那本来就是备份, 也就是失败才用的东西.

如果你真的失败了, 那我只能帮你默哀了, 关于让我负责这种事, 你想也别想.

ROOT的话, 是下一步的事.

关于7.0的几个亮点:
双击任务切换键可以快速在两个APP间切换
可以限制APP在后台使用流量
同一个软件的消息推送会被放在一起, 省空间
消息推送有图片, 哪Youtube推送可以看到视频缩略图
在任务切换界面支持分屏的APP上会显示分屏按钮, 点击可以分屏
CHROME浏览器的TAB可以分屏显示
界面语言和OK Google 可以是不同的语言(可能不是新功能)
会在推送中显示耗电大户, 可以优化

刷完后的关于软件界面




星期四, 八月 23, 2018

寄生蟹

今天吃青口吃到小螃蟹. 于是用新买的A6300来一张!

#img1#

[网络技术] Create a HTTP Request Body Log Server within a minute with Docker

Tags: Telegram, Telegram Bot, HTTP Body Log, PHP, Docker

I am playing with telegram bot these two days. I used a google script web app as the web server to handle telegram's request. I would like to see the requests sent by telegram bot. So I forward the content from telegram to my own server.

[javascript]
function doPost(e){
  var body = JSON.parse(e.postData.contents);
  var payload = preparePayload(body);
  var data = {
    "method": "post",
    "payload": payload
  }
  UrlFetchApp.fetch("https://api.telegram.org/botMyBotKEY/", data);
  
  var dataFromTelegram = {
    "method": "post",
    "payload": e.postData.contents
  }
  UrlFetchApp.fetch("http://test.dengnz.com", dataFromTelegram);

}
[/javascript]


So I need my server to log the request body into a log file. The two tools comes into my mind are nginx and php. 

I tried nginx, but to let nginx log HTTP request body, I will either need echo_read_request_body module or fast CGI module. Unfortunately, you cannot add these modules into official nginx docker container.  And you have to use newer version of nginx so that you can do json_escape to make sure you don't see a lot of \x22 in your json log.

I also tried a third party nginx image (nmarus/nginx-full), it worked with some minor config, but it's an old version of nginx which cannot do json escape. 

So I end up with using a docker php server, which is so much easier to setup. It will just take you a minute.

First, create a file call index.php with the following content

[php]
<?php $req_dump = print_r($_REQUEST, TRUE);
$fp = fopen('request.log', 'a');
fwrite($fp, '['.date("c").']'.$req_dump."\n");
fclose($fp);
?>
[/php]

Then run the following command within of folder of above file

[bash]
docker run -it --rm -d -p 80:80 --name phpHTTPLog \
   -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.0-cli php -S 0.0.0.0:80
[/bash]


If you are behind a nginx-proxy, you may run something like this with your own config
 
[bash]
docker run -it --rm -d -p 8080:80 --name phpHTTPLog \
    --network wp-net \
    --network-alias httpLog \
    -e VIRTUAL_HOST=test.dengnz.com,httpLog.dengnz.com \
    -e "LETSENCRYPT_HOST=test.dengnz.com,httpLog.dengnz.com" \
    -e "LETSENCRYPT_EMAIL=soody@qq.com" \
   -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.0-cli php -S 0.0.0.0:80
[/bash]

Now run this command to watch the log file

[bash]
tail -f request.log
[/bash]

Now you can see all the requests send by telegram bot (or whatever you are testing)



#img1#


#imge2#



When you are done, Ctrl+C to exit tail command then run

[bash]
docker stop phpHTTPLog
[/bash]

to stop and delete the docker container


Note that you may need to add sudo before docker command if you are not running under root user.

星期三, 八月 22, 2018

[网络技术] Handling files permission in docker containers with mounted volume

Tags: Docker, mysql, file permssion

I am recently moving away from Azure Mysql server to a local mysql server on VM.

To protect from data losing, I store mysql files on my VM and use -v to mount it to docker container. 

[bash]
 docker run \
            --name mysql \
            --network wp-net \
            --network-alias mysql-host \
            -v $PWD/mysql:/var/lib/mysql
            -e MYSQL_ROOT_PASSWORD=root \
            mysql:5.7.22
[/bash]

I would like to add all this files to git repo so that I can push them to remote regularly. But when I tried to do git init, permission is denied.

The mysql files are created by mysql container, and the user and group are both mysql. But when I view the files from the host machine. both user and mysql are 999.


To resolve this issue, I changed the files' group to my host user's group. 

[bash]
chown -R 999:fennng mysql
[/bash]

Then I updated the files permissions so that the host user can access it.

Within the mysql folder, run
[bash]
            sudo find . -type d -exec chmod 775 {} \;
            sudo find . -type f -exec chmod 664 {} \; 
[/bash]


Now both 999 and user's in fennng group can access these files.

It's not a great solution, but it's much safer than setting everything to 777.



星期日, 八月 19, 2018

海外党如何看西甲联赛直播 (西班牙甲级足球联赛)

Tags: 海外党,西甲, 西甲联赛, 西班牙甲级足球联赛,直播

海外党由于版权原因, 很多国内的直播网站看不了. 今天这里我来介绍一个看西班牙甲级足球联赛的直播的方法. 

相关的网址可以到这个统一资源页面找到


-~-~~-~~~-~~-~- 本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用KODI看电影等等. 点击进入我的频道: goo.gl/5tyxcf 🔷 订阅我的频道: goo.gl/KuF3bY 🔷 telegram电报群: t.me/fengsharegroup 🔷 我的博客: www.dengnz.com/blog 🔷 Facebook: www.facebook.com/fengnz 🔷 Twitter: https://twitter.com/fennng 觉得我的视频对你帮助很大的话, 请我喝杯咖啡吧 微信赞赏码: goo.gl/uKoE8w -~-~~-~~~-~~-~-

[Youtube] 海外党如何看英超直播 (英格兰足球超级联赛)

Tags: 海外党,英超, 英超直播 , 英格兰足球超级联赛,直播


海外党由于版权原因, 很多国内的直播网站看不了. 今天这里我来介绍一个看英格兰足球超级联赛的直播的方法. 

相关的网址可以到这个统一资源页面找到


-~-~~-~~~-~~-~- 本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用KODI看电影等等. 点击进入我的频道: goo.gl/5tyxcf 🔷 订阅我的频道: goo.gl/KuF3bY 🔷 telegram电报群: t.me/fengsharegroup 🔷 我的博客: www.dengnz.com/blog 🔷 Facebook: www.facebook.com/fengnz 🔷 Twitter: https://twitter.com/fennng 觉得我的视频对你帮助很大的话, 请我喝杯咖啡吧 微信赞赏码: goo.gl/uKoE8w -~-~~-~~~-~~-~-

星期六, 八月 18, 2018

[Youtube] [SSR 翻墙系列] ShadowSocksR 安卓电视盒子客户端设置 [第七集]

Tags: SSR, , GFW, ShadowSocks, ShadowSocksR, 科学上网, 梯子, 安卓盒子, TV BOX,
https://youtu.be/lZvEzthVakU

在安卓盒上的对SSR的设置基本上和手机上是一样的, 只是手机版本的ShadowSocksR 客户端在电视上不好操作, 最好使用鼠标来操作.
本教程是SSR翻墙系列的第七集 - [SSR 翻墙系列] ShadowSocksR Windows 10 客户端设置 [第一集] 已发布 https://youtu.be/xMGBUHyWbps - [SSR 翻墙系列] ShadowSocksR 安卓手机客户端设置 [第二集] https://youtu.be/QTRi0k0HXQs - [SSR 翻墙系列] ShadowSocksR SSR://链接, 订阅和二维码的使用 [第三集] 已发布 https://youtu.be/kaPFnn0-wFQ - [SSR 翻墙系列] ShadowSocksR 如何找到免费的 SSR 节点服务器 [第四集] 已发布 https://youtu.be/XNifkINitbw - [SSR 翻墙系列] 如何申请谷歌云 Google Cloud 帐号并免费获得 300 美金一年 [第五集]
https://youtu.be/-tUcTlqiycg - [SSR 翻墙系列] 如何使用谷歌云 Google Cloud 搭建自己的 SSR 服务器保护隐私 [第六集]
https://youtu.be/7mwO7ApMU0A - [SSR 翻墙系列] ShadowSocksR 安卓电视盒子客户端设置 [第七集] - [SSR 翻墙系列] ShadowSocksR 苹果手机客户端设置 [第八集] 制作中... 未完待续…敬请期待 SSR翻墙系列播放列表 https://www.youtube.com/playlist?list... -~-~~-~~~-~~-~- 本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用KODI看电影等等. 点击进入我的频道: goo.gl/5tyxcf 🔷 订阅我的频道: goo.gl/KuF3bY 🔷 telegram电报群: t.me/fengsharegroup 🔷 我的博客: www.dengnz.com/blog 🔷 Facebook: www.facebook.com/fengnz 🔷 Twitter: https://twitter.com/fennng 觉得我的视频对你帮助很大的话, 请我喝杯咖啡吧 微信赞赏码: goo.gl/uKoE8w -~-~~-~~~-~~-~-

星期五, 八月 17, 2018

[网络技术] 在 Windows 10 下装Tensorflow python 版

Tags: AI, Tensorflow

Tensorflow 有多个版本

Tensorflow Python
Tensorflow C
Tensorflow Java
Tensorflow Go
Tensorflow JS - 开发网页应用
Tensorflow Lite - 开发手机应用

今天我来介绍一下在 Windows 10 下搭建 Tensorflow 的 Python 环境。 这个比较简单, 只有两步, 安装Python 3.6.2 , 然后再一条命令就可以安装好 Tensorflow 了。

首先是安装Python 3.6.2, 如果你已经安装过了, 可以直接跳到第二步。 在以下网页下载Python 3.6.2 的安装包。 然后安装在C 盘某个文件夹, 不推荐安装在 Program files, 因为等下安装Tensorflow 的时候, 也要管理员权限。


#img1#



安装Python 非常简单, 就是一直下一步的事, 最多就是改下路径, 这里就不过多介绍了。 

安装完后打开一个新的命令行, 最简单的方法是按CTRL + R, 然后输入 CMD 回车. 如果你的Python 安装在Program Files 下, 你可能要以管理员的方式运行。 


在CMD和图标上点右键 ,然后在 Command prompts 上点右键 , 再然后在 Run as administrator 上点击一下就可以进入管理员模式。

#img2#


如果你的显卡是支持CUDA的话, 输入:

[bash]
pip3 install --upgrade tensorflow-gpu
[/bash]

否则输入:

[bash]
pip3 install --upgrade tensorflow
[/bash]

然后等一会儿, Tensorflow 就安装完成了。

现在来验证一下Tensorflow 是否安装成功

在命令行继续输入 python 回车

然后依次运行以下输令

[python]
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
[/python]

如果你看到 Hello, TensorFlow! 被打印出来了, 那就是一切妥当了。


#img3#




[网络技术] Azure for Students

Tags: Azure for student, Azure,

If you are a student, you are eligible to get Azure for student with $100 credit. Unlike Azure free account which requires credit card, Azure for student doesn't require credit card and the credit is valid for 1 year rather than 1 month.

You will need to have a student email address to prove that you are a student.

The only problem is that $100 credit is too little. What can you do with $100 credit as Azure is such a expensive platform?

#img1#



#img2#


星期四, 八月 16, 2018

家门口的树能不能修呢?


#img1#

家门口有两颗树, 树枝伸进我的院子, 而且严重的掉叶子. 天天扫这个叶子都扫不完, 而且挡住阳光, 连衣服都晒不干.

我可不可以联系 CITY COUNCIL 把这个树枝修一下呢?


其它博客地址

此博客的同步博客地址: http://fengnz.wordpress.com
这里进入我的MSN SPACE.