execute sql sentences to update table in wordpress database to recover blog views and likes reset by uninstall WP-Postviews plugin. 通过在MariaDB中执行SQL语句修改Wordpress数据表来恢复丢失的日志访问信息(阅读数量和点赞次数)。

2018年04月25日 0Comments 1732Browse 4Like Read more

2048这个小游戏最初在微信上玩过,游戏规则简单,大致如下: 游戏面板为4*4共16格 初始化时随机产生一个数字2或4,将这个数字随机放到16格的一格之中 通过上、下、右、四个方向键朝一个方向移动面板中的数字使其靠拢或合并,这些数字: 每次操作不能交叉移动、只能在同行或同列根据按键方向做单方向平行移动 在移动的方向中,当每行/列中的数字存在相邻的重复项、或数字之前存在空格时,才可移动 在一次移动中:遇空格直接移入、最先相邻的2个相同的数字直接合并成一个新数字(并消除之前2个相同的数字),该行/列中后面其他数字再按该方向移动,直至该行/列数字间没有空格 在一次移动中:合并新生成的数字将不再与其他相同的数字合并消除 每按方向键一次,如有数字被移动(含合并消除),则随机在某个空格中产生一个数字2或4 已合并生成的最大的数字为当前游戏得分 当游戏面板中布满非0数字、且不可再合并时,格子中数据将无法移动,游戏结束 安装 python 3.6 安装第三方库 pygame Windows上在cmd中安装: Centos上在终端中安装: Ubuntu上在终端中安装: 用python编写游戏算法类,实现游戏数据操作:cls2048.py 用二维列表(4*4数组/矩阵)来操作游戏数据 将游戏面板中的空格单元在列表元素中的数据值设为0 每按键一次对应所有行/列的数据单方向移动 以单行和列移动为最小操作单元 如对应的数据在该按键方向上不能产生移动或数据合并,那么不随机产生新的数据 当有数据合并产生或者数据移动位置时,随机在空格处产生一个数据 向左移动或向右移动是对行数据操作、向上或向下移动是对列数据进行操作 向上移动等价于将二维列表先转置后的向左移动、然后再将数组转置还原的效果 向下移动等价于将二维列表先转置后的向右移动、然后再将数组转置还原的效果 在空格单元中随机生成2或4的数据:需要选择随机的位置和随机产生的值 当列表4*4全部非0值,且无相邻两个数值相同时,游戏结束 用pygame绘制游戏棋盘界面、控制按键操作、数据展示:pygame2048.py 初始化游戏棋盘,分为两个区域:标题游戏状态区(得分、计时),游戏棋盘区 利用捕获按键、操作游戏数据 显示游戏数据:画线用 ,写字用,渲染图形至界面用、刷新surface上新数据 Windows上在IDLE中打开pygame2048.py,按运行 或在cmd中执行: Linux中(该截图来自Ubuntu 14.04)在Terminl里执行: 说明:如想UI更好看,设计UI后用pygame针对背景色、字体、游戏格子等进行调整即可。 2048小游戏python代码

2018年04月10日 0Comments 3693Browse 11Like Read more

前言 首先个人声明一下,此文不是纯软广,我也不是叮咚的托,我推荐这款APP只是根据自己的使用体验而来的。 很多人都为自己拥有一个美国电话号码而自豪,所以一般来讲,都会想方设法去弄一个GV号码。放在几年前,GV也许是不二选择,但到了今天,我更推荐使用Dingtone——叮咚网络电话。 我个人近年也尝试过比较多的网络电话,手头也申请了好几个Google Voice号,在某些场合下我也会使用GV,但在国内,我基本上不会用它来打国际电话。 定位你的需求 每个人的需求不一致,所以对“好”的定义就不同,而我认为的“更好”或“最好”,是目前基于以下个人情况及电话需求的: 你来自或生活在中国大陆 你需要一个真实的国际化电话号码(能接打电话、发送短信,并显示真实号码) 你需要高质量的语音通话,且通话资费并不昂贵 你如果也是这样的(其他使用场景我们有很多可选择的产品)状况,我推荐你使用叮咚网络电话,而不是Google Voice或其他,Why? 叮咚的优势在哪(对比Google Voice)? 首先,你很容易花较少的时间和金钱便可顺利获得一个或多个国际电话号码(目前支持5个国家的电话号码,不限于美国号:目前官网宣传免费赠送一个美国号,我注册那会还没有赠送)。在叮咚APP上注册了账号,即可去申请购买国际电话号码,so easy。你并不需要像申请GV号那样费劲(我知道你也可以从马云家购买GV,但你在马云家买GV号的钱和到叮咚这里买一个国际号码相差无几)。 第二,叮咚所支持的回拨通话体验非常好:显真号、通话清晰、接通率高、从不掉线。你只需要在手机上使用APP接入网络即可拨打电话(有人说Google Voice也完全可以,但关键的问题是你在使用中国大陆的网络环境): GV曲径通幽不如Dingtone直接了当来得酸爽:由于Google服务目前在中国大陆地区无法正常使用,所以国内大部分安卓手机在出厂时,甚至连一个Google服务框架都不会给预装。当然,这些你也可能都会弄好、而且你还能通过科学上网等方式来拨打GV电话。但是如果没有很6的VPN,那么其通话质量肯定是大打折扣的。但如果当你选择使用叮咚,这一切都简单粗暴,不是问题。 GV没有可用性高的APP来承载。尽管Google目前提供两款软件(Google语音和Hangouts—中文名环聊)来关联GV号码实现打电话发短信的功能,但软件好不好用、接通率有多高、通话质量如何、会不会掉线,只有用过才知道(目前,我只能使用某个特定版本的Hangouts并采用科学上网才可使用GV,关键是Google对这两款软件并无下一步的开发计划)不好用,而叮咚软件却一直在不断维护和更新版本,目前来看,趋势是越做越好。 GV仅是一个纯粹的虚拟美国电话号码、不支持回拨通话。采用回拨方式通话最能保证通话质量,只需耗费极少的接通流量,通话全程不消耗流量。通过叮咚,你可以选择回拨至你国内的实体手机号上来通话,音质极为清晰。可以说,使用叮咚在手机上用回拨方式打国际电话——它相当于给你国内的手机号码增加了一个国际号码的副卡或小号的功能,但却不占用你手机的卡槽! 第三,叮咚的资费也非常良心,且可以通过花时间来赚取(以至实现免费)。我个人总结的一句话:任何的免费都是有代价的!所以,在此我也不替叮咚宣传其免费的功能(叮咚好友间发送信息和基于Wifi/流量的通话确实是免费的,但通话质量不如回拨电话,而市面上能做到这一点、甚至做得更好的软件比比皆是,所以这个免费功能不算个事,没什么可宣传的)。购买叮咚币即可获得相应的通话时长,叮咚的国际长途的通话资费比国内三大运营商低廉多了(根据通话的国家和地区而不同,资费折合成人民币大概是0.1-0.3元每分钟,比GV高)。 GV提供美国和加拿大的免费通话和短信,但与其他国家和地区的通话也是需要先充值的(充值并不方便),同时它不能用于给其他国家和地区发送短信。 叮咚支持与(各个国家和地区)真实电话号通话或收发短信,但均双向内部计费(指接与打电话、收或发短信都在叮咚账户内计费),尽管价格比GV贵,但比运营商的收费便宜很多、可以承受。充值也非常方便,支持微信和支付宝支付。 叮咚币可以通过花时间来赚取,是指你可以通过签到、观看广告、下载推广APP、购买叮咚彩票等方式来获得额外的叮咚币(但叮咚的广告,在软件中的放置设计非常合理,它们不会在你使用电话和短信功能时蹦出来,完全不影响主打功能!在使用过程中,我也没发现叮咚存在诱导或强迫用户去做这做些事情的倾向!总之,花不花时间去看广告和做任务赚币,it's up to you! )所以,如果个人的空闲时间较多,你完全可以实现不花钱、而通过赚取足够多的叮咚币来拨打国际长途,实现真正免费使用叮咚电话!如果不想花时间,那就直接购买叮咚币吧! 第四(2019-07-14 补充):叮咚号比较容易保号,而GV号更易被回收。3年前本人特费劲手工申请了几个GV号(非常好的靓号),这两年基本上逐渐被Google回收(除了其中一个充值了$10的没问题),而叮咚中的几个国际号码依然完好无损。因为叮咚的电话号码以一年为周期、固定缴纳一次叮咚币即可保号,而并不检测你是否打了电话等。由于这个时间间隙较长,你只需在一年的周期到达之前刷到足够的叮咚币即可自动保号(很容易,因为叮咚支持通过签到等方式,可比较轻松地获取和累计叮咚币);而GV则是3个月 or 6个月检测一次号码的使用动态,如果这段时间不用、一不小心就被回收了(除非你充值,不少于$10)!虽然有一些工具可以辅助GV保号,如使用IFTTT中的Keep GV Alive,但我发现不好用、号码如果不主动使用、依然会被Google提示号码即将过期! 一句话总结 叮咚网络电话是一款通话质量高、可用性高、具备最接近国外实体电话卡号功能的虚拟电话! 其他说明 叮咚网络电话还有很多其他的小功能,如语音信箱、呼叫转移、匿名电话、传真、对讲机等等,也都非常实用,毫不花哨,只有亲自体验了才知道! 叮咚币完全可以用时间来赚取,但赚取的技巧也非常多(我一般每天撸50-100个币)。如何高效的赚取叮咚币,在这篇文章中先不描述; 关于采用叮咚电话号码注册微信、接码等需求不在这里讨论,我主要关注通话功能; 另外还有款网络电话软件叫说道,也是跟叮咚来自同一个公司开发的产品,UI和功能都差不多,具体我没使用过,所以不在此做描述和对比。 奉上官网(如使用建议看看FAQ) English Site、FAQ 中文网址、中文FAQ 写在后面的话 评价一款产品,尽量用质量和时间来验证,叮咚电话我用过已两三年了,好或不好我心里还是有数,绝对不会xjb推荐。当然,它也有一些不足之处,但问题不大。 我调研过这家公司,它是一家新兴的互联网公司,产品运营团队在美国硅谷,在杭州有分公司(腾展科技),虽然规模不大、完全无法与Google,BAT等大企业相提并论,但从其对开发的产品质量要求和公司成长轨迹来看,该公司应该比较可靠谱,不会跑路! 当然,世界上没有任何绝对的事情,作为用户,我们自身也应养成良好稳健的消费习惯。如果购买叮咚币充值,建议根据自己的电话量来规划购买。 如何下载? 目前叮咚提供Android版和IOS版分别在Google和苹果商店中发布,登陆软手机中对应商店搜索"dingtone"下载安装即可。写文章时是2年前,版本是2.x,目前官方版本已经更新到4.x(2020年1月),我在下面和评论区留了一个安卓4.13的版本下载链接,可供大家在无法访问Google商店的情况下下载。 官网链接 4.13安卓版本,非官网链接,可直接下载

2018年03月28日 14Comments 14024Browse 8Like Read more

闲来无事,看了下访问本主机的日志信息,结果不看不知道,一看虽没吓一跳,但至少没让我意外。好家伙,这么多记录,先来看看他们的行为: #cat /var/log/secure | grep Failed |wc -l 3393 一共发现接近3400条登陆失败的记录!!不到一天时间,不少了吧? #cat /var/log/secure | head -n 100 | grep Failed Mar 12 04:22:46 sshd[21607]: Failed password for invalid user 1 from 212.15.99.53 port 45244 ssh2 Mar 12 04:26:06 sshd[21637]: Failed password for invalid user 2 from 212.15.99.53 port 41958 ssh2 Mar 12 04:29:23 sshd[21659]: Failed password for invalid user 3 from 212.15.99.53 port 38680 ssh2 Mar 12 04:32:35 sshd[21685]: Failed password for invalid user teamspeak from 212.15.99.53 port 35402 ssh2 Mar 12 04:35:50 sshd[21713]: Failed password for invalid user teamspeak from 212.15.99.53 port 60350 ssh2 Mar 12 04:39:10 sshd[21739]: Failed password for invalid user teamspeak from 212.15.99.53 port 57078 ssh2 Mar 12 04:42:37 sshd[21774]: Failed password for invalid user teamspeak from 212.15.99.53 port 53790 ssh2 Mar 12 04:43:34 sshd[21788]: Failed password for root from 5.188.203.113 port 7002 ssh2 Mar 12 04:43:39 sshd[21791]: Failed password for invalid user mcserver from 5.101.0.51 port 57443 ssh2 Mar 12 04:45:59 sshd[21809]: Failed password for invalid user teamspeak from 212.15.99.53 port 50510 ssh2 …… 212.15.99.53这个家伙从今天凌晨三点开始,几乎没有间断过采取不同的用户名和密码尝试登陆我的主机。 从日志记录信息不难看出,所有尝试登陆Failed记录的最后三个字串是port 端口号 ssh2这个形式,利用这个特性非常方便提取入侵者的IP。通过强大的awk命令即可列出所有入侵者登陆失败的IP地址: #cat /var/log/secure|awk '/Failed/{print $(NF-3)}' 将提取出来的IP结合sort命令进行排序,就可将同一IP的尝试记录排列放在一起。输出放至ip1.tmp文件中: #cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort > ip1.tmp 结合uniq -c命令的重行计数功能,删除ip1.tmp文件中接连相同的重复行。我用awk将其格式化成IP tried times: count的形式输出至ip2.tmp文件中: #cat ip1.tmp | uniq -c|awk '{print $2 "\t" "tried times: "$1;}' > ip2.tmp 再用sort做一次按照入侵失败次数从多到少的排序,排序结果输出至hacker.iplist文件之中: #sort -nrk 2 -t: ip2.tmp > hacker.iplist 删除两个临时文件: #rm -f *.tmp 现在看一下hacker.iplist文件中统计出来的ssh非法访问数据: 数据1:有多少IP尝试通过ssh非法登陆本机,但失败了?数据是:70个 #cat hacker.iplist | wc -l 70 数据2:尝试次数top 10。 114.32.120.181这个IP尝试了1400多次!! #head hacker.iplist 114.32.120.181 tried times: 1462 218.65.30.53 tried times: 840 145.249.106.78 tried times: 424 5.135.167.146 tried times: 308 212.15.99.53 tried times: 49 173.249.15.111 tried times: 45 103.99.0.205 tried times: 30 5.188.10.156 tried times: 24 188.166.218.235 tried…

2018年03月13日 0Comments 2117Browse 8Like Read more

SS服务不能被访问 在vultr建站的前半年时间内,SS代理一直运行得很好,对于自己Google,收发Gmail等很有帮助。这比起使用免费的代理软件及其他公司提供的VPN服务(免费的服务很难稳定,收费的服务圈钱跑路现象严重,再个故障了自己一点招都没有)省心多了。但自从2017年11月开始代理就只能建立连接、无上下行的数据流量,客户端测试连接提示:无互联网连接。我的第一反应就是自己的SS代理被Great Wall给墙了。开始以为是IP被Ban掉了,那么我就不得不更换服务器的IP地址,而自己选择的服务商vultr无法直接重新分配IP,所以只能选择重装。但最关键的是我搭建的网站和一些网络服务都是基于原主机IP的,一旦重装换了IP,那么各服务的应用端都不会正常了,需要重新逐一配置,工作量不算少。 于是,我就有些退却。停顿下来想了想,兴许IP并没有被封,而被封的是端口呢?因为自己搭建ShadowSocks代理时用的就是一个常用端口。很可能GFW只是将这些常用端口全给封掉了!所以,我就想先改动一下端口试试看能否正常运行。 更换SS服务端口 编辑ShadowSocks配置文件:# vi /etc/shadowsocks.json 修改"server_port": xxxx为一个非常用端口,保存。格式如下: { "server":"0.0.0.0", "server_port": xxxx, "local_address":"127.0.0.1", "local_port":1080, "port_password":"mypassword", "timeout":600, "method":"aes-256-cfb", "fast_open":false } 重启服务:# ssserver -c /etc/shadowsocks.json -d restart 查看端口:# lsof -i: xxxx新端口号 发现服务器已经在修改的新端口上监听连接。 然后我重新在手机和PC端修改SS连接的端口,发现OK了!速度依然不赖! 更进一步,配置支持多端口 为了防止新修改的端口再次被墙,我们可以在ShadowSocks的配置文件中将ss服务配置成多用户/端口模式,该模式的配置格式是这样的(注意与上面单用户单端口格式的差别): { "server":"0.0.0.0", "local_address":"127.0.0.1", "local_port":1080, "port_password":{ "AAAA":"password1", "BBBB":"password2", "CCCC":"password3" }, "timeout":600, "method":"aes-256-cfb", "fast_open":false } 如果全是给自己用,各服务端口对应的密码配成一样的就好了,能给客户端配置省事,随时切换。 总之,上有政策,下有对策,咱也不干违法勾当。到问题不怕,怕的是缺少折腾的精神和解决问题的决心! PS:我选择建站的主机是vultr提供的每月5刀的主机,服务稳定、可选机房16个!遇到问题联系客服回复也很迅速。如需要建站,欢迎通过我的邀请码来注册。vultr对来自中国的客户审查比较严格,而通过老用户的推荐注册更容易通过审查,更通畅快捷! 补充:检测IP是否被封的方法 方法1:Windows中使用tracert IP/Linux中traceroute IP,看能否到达目的地,如果不能,在IP138网站上查询最后一跳IP的位置是否在国内,如果在国内,那么说明IP被封了。不熟悉命令,可以使用BestTrace这个可视化的路由跟踪工具,非常直观。 方法2:用站长测试工具http://ping.chinaz.com/,选择海外服务器进行ping检测。查看国内和国外的监测点,如果海外监测点通,而国内监测点不通,那说明IP被封了。采用Ping检测前提是服务器主机没有禁ping。 后记(2018-4-10) 敏感时期SS被特征识别是很容易的,非敏感时期政府并不主动封锁个人IP 个人使用的代理尽量不要跟他人分享和传播,也不去做商业的推广 使用科学上网也要做合法有意义的事情,政府要封锁的原因大家想一想就知道了 SS项目目前已不再维护,如有更强烈的科学上网需求建议使用V2Ray

2018年02月26日 2Comments 24196Browse 6Like Read more