Category: 程序设计

怎么通过 Javascript/JQuery/Ajax 来调用 API?

本站开始提供一些免费有意思的API让大伙来使用. 所有的API都是在这台主机VPS上实现和运行的. 举这个API为例 fortune 能随机的返回一段(句)话 然后我们就可以通过 Javascript/JQuery/Ajax 来动态的显示在浏览器中: <script type='text/Javascript' src='https://helloacm.com/jquery/jquery-2.1.4.min.js'></script> <script type='text/Javascript'> $(document).ready(function () { $.ajax( { dataType: "json", url: "https://helloacm.com/api/fortune/", cache: false, success: function (response) { document.write(response); …

本站提供 API 使用

以下API绝大多数都是免费使用, 一般来说都有1秒1次访问的限制, 本站不承担任何因使用带来的风险. API的调用地址为 https://helloacm.com/api/API名称/ 有意思的 API 在API调用地址后立马加上 ?cached 就能够缓存API调用结果为1小时, 加快读取速度 (利用了CloudFlare的缓存所有页面规则). 比如: https://helloacm.com/api/pinyin/?cached&s=汉字&t=1 推荐使用缓存版的API调用, 因为这些调用大多会被CloudFlare CDN服务器直接返回结果, 速度更快. 如果使用未缓存的API调用或者是把参数用POST方式传递, 那么API将会由原始服务器执行并返回结果, 所以有可能会比较慢(取决于您的位置). API 服务器 一共有4个API服务器, 请使用最靠近您的那一个来使用. 美国东部: https://helloacm.com/api/ 英国中部: https://uploadbeta.com/api/ …

测测你的幸运 – Linux Fortune-Teller

LINUX 下有很好很好玩的命令,之前已经介绍过: figlet, rig, curl. 现在推荐另一个 命令 fortune 是用来随机显示一段(句)话的.fortune 在英文里就是幸运的意思. 这个命令可以不需要 参数 如果没有 可以通过 apt-get install fortune(Ubuntu) 或者 sudo yum install fortune(CentOS) 来安装. 敲入 fortune 得到一句随机的话 You look like …

PHP 中 Rate Limit 的简单实现

现在很多大型网站(像FB,TWITTER)都 提供 API接口.一般返回格式是JSON. 一般会限制每IP地址访问的频率 比如每小时 600次调用等等. 如果你想提供一个API 但是计算又挺耗时的不想用户频繁的调用,可以通过记录上次调用时间来限制,比如: $data = "Data Returned from API"; header('Content-Type: application/json'); die(json_encode($data)); 然后我们就可以在 session 中记录时间来判断 session_start(); if (isset($_SESSION)) { $last = strtotime($_SESSION); $curr = …

PHP shell_exec 的安全风波

在PHP里有个很牛逼轰轰的函数 那就是 shell_exec.这个函数需要一个字符串,也就是命令.然后就可以在PHP脚本中执行 外部命令了.所以说 非常 强大但同时你需要非常注意因为稍有不谨慎就能导致安全隐患. 我之前就 基于这个函数 搞了两个简单的页面运行 LINUX 小工具: FIGLET 和 CURL 原理如下: $value = $_GET; $cmd = 'figlet $value'; shell_exec($cmd); 三行代码很简单; 变量从URL地址栏里用户 通过 GET方式设置.然后就执行,如果用户给这样的输入: hello | …

代码重构要达到的目的

代码重构 英文是 Refactoring, 简单来说, 就是让代码更好: Make Code Better. 1:简化软件模块 当前软件模块偶合性非常高.重构的过程能使软件结构清楚,模块之间的关系也将进一步理清.重构的目的之一是使软件不再臃肿,而会变得快速和轻巧.稳定性将大大提高.这样能减少后期用户支持的成本. 2:优化代码 很多无用的代码,很多低效的代码将被去除.引入代码审核或者(结对编程 Pair Programming) 能够减少代码的错误. 3:减少开发和维护成本 当前有几种版本.版本之间是用代码 #if 条件编译来区别,这样维护成本高,重构会将四个版本整理成一个版本(编译一次就可以).同一套代码库能减少开发和维护成本. 4:提高软件开发质量 授人鱼不如授人渔.在团队里培训和推广高效,正确,专业的软件开发流程和方法,这是提高软件质量的最有效的途径.保证每一次发布都是精品. 5:敏捷开发 通过重构,不断摸索改进的一个流程,采用敏捷开发,每天8点站会回顾昨天的工作流程,每周一周会提出每周的工作计划.包括CI编译服务器的建立及各项代码指标都能很好的对工作量及其分配做一个很好的计划. 6:代码分支管理 之前所有版本都是从 主分支 (Trunk) 取,这样就不能及大限度的保证质量,重构的过程(本身就是一个很好的例子)引入了SMOKE测试的概念,每天都会给测试团队一个版本,第二天8点就能收到测试结果,这样就能及时发现问题,阶段性的合并回主分支.版本发布也应该遵循这样一个流程. 7:正确的代码理念 …

SVN统计一下谁写的质量差的代码最多[POWERSHELL]

在一个代码开发团队里,有人写代码就是很臭.比如这篇英文博文里, 就讲了关于使用通用异常(GENERAL EXCEPTION)处理代码的问题. 通用异常简单来说就是 try { } catch (Exception anything) { // 隐藏错误 } 不管代码出不出错都加一个保险的处理方式,反正有错误抛出,都会被捕获.改BUG用这种方法实在是效率高. 下面的POWERSHELL脚本能统计出每个开发人员写的通用异常的数目.这样研发经理就可以时不是观察和保证代码的质量.遇到喜欢用TRY-CATCH的开发人员, 需要及时沟通和培训. svn blame, svn praise和 svn annotate 都是一样作用的, 其实就是看当时的心情. # 工程目录 $SolutionDir = …