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

星期六, 六月 29, 2019

[Youtube] 常用外用消炎药全解析,了解外用药的主要成分,别在乱用药啦

tags: 消炎药,外用,类固醇,甾类,氢华可的松, 氢羟肾上腺皮质素,激素皮质醇,hydrocortisone,neomycin,natamycin,Miconazole Nitrate,crotamiton,Choline salicylate,Sodium Fusidate,Fusidic acid

市 面上外用消炎药很多, 很多不同品牌的的药其实里面的主要成分是一样的,你可能换来换去,其实都是在用一样的药。这个视频教你认识几种常用的外用消炎药的主要成分,以后看到不同品牌的外用消炎药也不会晕啦,一看主要成分就了然了。


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

本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用KODI看电影等等. 同时我也会分享一些编程的教程, 如编写Telegram机器人, 建站等。 点击进入我的频道: goo.gl/5tyxcf

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

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

星期一, 六月 24, 2019

【一分钟进化系列】巧用Google Chrome 对PDF文件进行解密,分割, 无需任何插件

Tags: PDF分割, PDF解密


Hello 大家好, 欢迎来到峰哥分享,我是峰哥

有时候我们的PDF文件太大,我们会想把它分割成几个小的PDF文件,有的PDF文件进行了加密处理,让你无法复制甚至搜索里面的文字内容。

使用Google Chrome 的打印功能我们就能很容易的对PDF文件进行分割,分割出来的文件也是没有加密的。幸运的是, 大部分加密的PDF文件都没有禁止打印。

把PDF文件拖到Google Chrome 浏览器, 然后点打印, 选择要打印的页面, 再点 Save as PDF, 随便启个名字保存,保存下来的文件就是没有加密的PDF文件啦!如果是要分割文件的话, 只要多打印几次就好啦。

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

本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用KODI看电影等等. 同时我也会分享一些编程的教程, 如编写Telegram机器人, 建站等。 点击进入我的频道: goo.gl/5tyxcf

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

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



--
Feng

星期一, 六月 17, 2019

[Youtube]峰享列编辑神器官方使用说明 - 强大的列提取和编辑功能

taqgs: 在线编辑,列编辑,column editing, online column editing, online column editor 

这个工具写了有一年多了, 功能其实是相当的强大,可以很快的操作。 它可以把有规律的文本非常快的分割成列, 再针对列进行编辑。 也可以用它来提取文本里面的内容。 还有自动填充数字, 字母, 字符转换等功能, 是一款不可多得的列编辑神器。这个视频是它的官方说明文档。


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

本频道旨在分享生活中各种小技巧, 如用小米盒子看国内视频, 如何使用KODI看电影等等. 同时我也会分享一些编程的教程, 如编写Telegram机器人, 建站等。 点击进入我的频道: goo.gl/5tyxcf

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

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


--
Feng

星期六, 六月 15, 2019

[网络技术]Use mongo shell to batch update mongo db

Updated 9000 records in a few seconds.

By mistake, I log message.chat.id as LongNumber in mongodb. I need to convert them string. With mongo shell, this can be done quite easily.

First, Login to my mongo shell

[bash]
sudo docker exec -it mongo-fengdrawbot mongo --username restheart
#Enter password to login
#switch to db collection
use messages
[/bash]

Then I used this script to save the data needs to be converted in to another collection
[javascript]
db.messages.find({"message.chat.id": {"$lt": 0}}).forEach( function (x) {
    x.message.chat.id = x.message.chat.id + "";
    db.messages_bk.save(x);
});
[/javascript]

I verified the converted data with mongo express, everything looks good. then I run the following script to update the original records.

[javascript]  

db.messages.find({"message.chat.id": {"$lt": 0}}).forEach( function (x) {
    x.message.chat.id = x.message.chat.id + "";
    db.messages.save(x);
});
[/javascript]





--
Feng

星期二, 六月 11, 2019

[网络技术]Node ExpressJS - Becareful! A global variable will be shared between requests

tags: nodejs, expressjs, singleton, global variable

We all know that HTTP server is stateless, every time a request is processed, new instance of server handler will be created to serve the request. Each request is served by different handler instance, they don't share context.

This is kind of true in C#.net, JAVA and other compile language unless static class and/or variable are used.  You can create session to share the user context, that's a different thing.

But in javascript, you have to pay extra attention.

I have a telegram bot called @fengfaqbot, which is used to auto reply/handle messages matched by rules. It sometimes will send auto response to another group which doesn't have the rule setup. After tons of effort of investigation, I found that the problem is just caused by a missing let.   



This lead to the payload variable become a global variable. And in some other place, this variable is modified, so something funny can just happened.

To prove that the global variable is shared between requests.  I defined a global variable  and increased it's number every time a new request is received by expressjs. 




Then I proved it. The count doesn't get reset for each request, it keeps increasing. It tell us that node expressjs use the same V8 JavaScript runtime engine instance (thing carefully, it should). 

You have to be very careful when a new variable is introduced, don't forget to declaration word. You may use let, var or const. This article will not discuss the difference between them.

Can you use a global variable as a singleton?




--
Feng

星期一, 六月 10, 2019

在Squirrel 五笔输入法中默认使用半角标点符号(可选字符)

刚才把鼠须管的默认输入状态改成了英文, 觉得真不错。 所以我就想实现另一个我一直想要的输入法功能, 就是在中文输入法状态下输入半角的符号。因为在很多程序里面只认半角逗号, 比如说我在youtube 上输入标签的时候是用半角逗号来分的,如果是打了全角逗号, 就会连成一个很长的标签。所以每次一个一个的改逗号非常麻烦。

好吧,不得不承认,这个输入法的设置, 你不谷歌是找不到的。于是我又找到了这个文章。


其实设置也很简单, 如下图, 加入这两行就可以啦。我也不懂是啥意思, 依葫芦画瓢, 复制粘贴再改一下。 设置完后, 我在五笔的半角状态就能出半角逗号了, 原来默认的设置是无论全角还是半角设置, 在中文状态下就只出全角标点。 当然, 英文状态是会出半角标点的。 当然,英文状态切换到全角也可以输出全角英文和标点


half_shape:
    ",": {commit: ","}



设置完后,别忘了重新Deploy 生效



--
Feng

设置鼠须管输入法的默认输入状态为英文

我前两天介绍了鼠须管输入法。


这个输入法有个我一直在寻找的功能,就是可以设置默认的输入状态。我在Windows 下使用的手心输入法没有这个功能。所以我每次要打字之前都需要先按一下右SHIFT键切换到英文状态。 这边所说的英文状态并不是指英文输入法,因为大多数输入法都有英文状态,所以并不需要切换到专门的英语输入法。

而鼠须管可以很方便的把默认输入状态切换成英文,这样,我每次切换到新的应用程序的时候,默认打出的字就是英文了。因为我第一个字打英文的频率比较高一点,这个功能对我就非常有用。

当然,一如既往的,Squirrel 的设置界面可以说是没有, 要找到这个设置还要谷歌一翻。所以我找到了以下博文。


如果知道了在哪里设置,还是很简单的。首先你要找到你的输入法的设置文件,我这边是一个极点五笔的设置文件, 然后按下图把 Switches -name reset 改成 1 就可以了。
 







--
Feng

星期日, 六月 09, 2019

[Youtube] Telegram聊天软件 如何用机器人自动回复,回答常见问题, 删除脏话,踢人,禁言,警告用户等 (支持图片和动图)

tags: Telegram, bot, auto response, auto kick, auto delete, auto silent, 电报,机器人,自动回复,自动启动,自动删除,自动禁言




群主秘书:@FengFaqBot
统计秘书:@FengStatsBot

这个机器人其实写了很久了, 一直没空给它写一个教程。 这个机器人比它表面上看去要强大得多, 所以出个视频教程是非常有必要的。 


今天这个视频会演示以下几个功能:

  • 简单的匹配关键词
    • 单个关键字
      • /addrule 峰哥===>江湖上一直流传着峰哥的传说
    • 多个关键字(或关系)
      • /addrule 峰哥|||Feng===> 江湖上一直流传着峰哥的传说
    • 多个关键字 (与关系)
      • /addrule Feng&&&Deng===> 江湖上一直流传着峰哥的传说
    • 多个关键字  (混合或关系和与关系,与关系优先)
      • /addrule 峰哥|||Feng&&&Deng===> 江湖上一直流传着峰哥的传说
  • 复杂的匹配关键字 - 正则表达式
    • 匹配阿拉伯语 - 反清真发言
      • /addrule regex:[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufbc1]|[\ufbd3-\ufd3f]|[\ufd50-\ufd8f]|[\ufd92-\ufdc7]|[\ufe70-\ufefc]|[\uFDF0-\uFDFD]===>看不懂,请去隔壁群!
      • العَرَبِيَّة  
    • 精确匹配,防误伤
      • /addrule 日===>请不要说脏话
      • 日本
      • /addrule regex:^日$===>请不要说脏话
    • 正则或关系
      • /addrule regex:峰哥|Feng|峰神===>  江湖上一直流传着峰哥的传说
    • 正则与关系
      • /addrule regex:(?=.*国外)(?=.*苹果)(?=.*ID)(?=.*返佣).*===>请不要发广告
    • 正则混合关系
      • /addrule regex:((?=.*国外)(?=.*苹果)(?=.*ID)(?=.*返佣).*)|暴利===>请不要发广告
      • 国外的朋友,有苹果ID的, 跟我合作, 返佣
      • 暴利
  • 回复图片
  • 删除
    • 删除消息
      • /addrule 卧槽===>delete
    • 删除消息并警告
      • /addrule 卧槽===>delete:请别说脏话
  • 踢人
    • 踢人
      • /addrule  卧槽===>kick
      • /addrule  卧槽===>kick~60
    • 踢人并警告
      • /addrule  卧槽===>kick:请别说脏话
  • 删完踢人
    • 删除消息并踢人
      • /addrule  卧槽===>kickdelete
    • 删除消息并踢人然后警告
      • /addrule  卧槽===>kickdelete:说脏话,已踢
  • 禁言
    • 禁言并回复
      • /addrule  卧槽===>ban~60:说脏话,你已经被禁言60秒
      • 不加时间就是永久禁言
    • 和踢人一样可以加delete
  • 查看规则
    • /listrule
    • /listrule 1
  • 删除规则
    • /remove rule 1
  • 规则匹配顺序说明
    • 机器人只会执行最先找到的规则,找到后执行,然后就忽略后面的规则了。 机器人检索规则是按倒序检索,也就是说,最后加的规则会最先找到。


--
Feng

[网络技术]两分钟用上鼠须管(macOS) 输入法

苹果自带的五笔输入法我实在是用不习惯。 因为我比较习惯用右SHIFT键切换中英文, 而苹果五笔用的是CAPS Lock键。当然不只这个。

所以今天我本来是想安装手心五笔的, 我在WINDOWS下用它, 但是当我下载的时候, 发现它在MAC OS 下只有一个2015年出的体验版 ,会不会太旧了点。 

所以我就稍微找了一下, 发现一个被称为神器的输入法 RIME。在MAC OS下, 它被称作鼠须管, 而在windows 下面, 大家叫它小狼毫。具说它的功能非常强大,但是配置及其麻烦。

根据我用VIM还有Proxomitron的经验,配置麻烦的东西总是有大神提供配置好的文件下载,所以自己根本不需要配置。这不,我马上就找到了一个配置好的五笔方案。


这个方案使用的是极点五笔86版 , 正好我以前也用过极点,而且我挺喜欢它的,用的时间还不短。而且我只会打86版五笔,不会98版 。

把这个站的文件下载下来,放在以下的目录就可以了



好了,零设置,直接可以用了。

当然,我是播了它的配置文件才发现切换到拼音输入法用的是CTRL+0。

如果要切换到英文则是使用右SHIFT。

这篇文章就是用Squirrel 输入的, 体验到现在来说还是很不错的。



--
Feng

星期五, 六月 07, 2019

Dymo LMPNP on Mac OS Mojave

After upgrading my mac mini to Mojave, my dymo LMPNP Label Printer stop working with the building Dymo Label Light 1.0. 

I can still launch the app and print screen captures,  but it won't accept  anything I type. I tried 2.1 2015 version, doesn't work either.

After trying quite a few different version. I finally found the following one works. This is the full version rather than the light version, which is better.




Another little trick, my LMPNP's battery is dead, it won't recharge. I connect two 3.7V laptop battery into the LMPNP machine, then it works. Don't bother buying a new battery, you  b  new machine with the same money.


--
Feng

星期三, 六月 05, 2019

如何查询域名是哪里买的

如果你买了个域名却忘了购买域名的网站,不知道去哪里管理你的域名, 那么下面这个网址可以帮助你。






--
Feng

星期六, 六月 01, 2019

[Youtube]如何批量下载Youtube 视频和MP3

tags: Youtube,mp3,download,batch,下载,批量

我之前因为需要下载一些歌曲放在U盘里,然后放在车上听, 然后就研究了一下, 发现可以很方便的在youtube 上把整个播放列表扒下来, 而且可以直接转成 mp3, 不转也可以, 需要视频文件的就可以先择不转。批量下载和mp3转换会用到两个工具,youtube-dl 和 ffmpeg, 而提取视频文件的ID则会用到两个在线工具, 一个是 Youtube  官方的  data API 页面, 另一个是我写的列编辑器 http://cc.dengnz.com


以下是下载好工具后的使用方法, 
[bash]
set path=%path%;c:\gre\youtube-dl
set path=%path%;c:\gre\ffmpeg\bin\
[/bash]

如果要转成 mp3, 这样使用
[bash]
youtube-dl --extract-audio --audio-format mp3 https://youtu.be/Y2ge3KrdeWs
[/bash]

要转mp4可以试下这个
[bash]
youtube-dl --recode-video mp4  https://youtu.be/hgIDXTmmgDg 
[/bash]

Youtube 官方 Data API V3, 这个用来提取Youtube 播放列表里面的视频 ID

Youtube-dl 下载地址

ffmpeg 下载地址



附 Linux 下载最新版 youtube-dl 的方法

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

sudo chmod a+rx /usr/local/bin/youtube-dl

/usr/local/bin/youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=w0dMz8RBG7g
 

--
Feng

其它博客地址

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