Category: 程序设计

软件工程师面试技巧之: 使用哈希表降复杂度

最近在刷题, 倒不是为了找工作, 主要是为了练练脑子, 日子过得太舒服, 人脑不动容易变笨. 程序员应该都了解并能熟悉使用 Hash 哈希表, 哈希表的插入和查找时间复杂度是O(1), 空间复杂度是O(N). 我们来看一道简单的面试题: 给定一个数组,找出相差为2的数对,比如: {1, 3, 5, 6, 9} 输出为: (1, 3), (3, 5) 拿到这题的时候 第一感觉是 暴力是否可行? 暴力搜索 复杂度为 O(N2), 大概代码如下: …

通过例子学写 PHP单元测试来确保API功能正常

在昨天我们说到可以通过调用这个API来检查你的哪些Steem粉丝没有点赞你的文章, 那我们怎么确保这个API的功能是正常能用的呢? 万一服务器挂掉了又或者之后更新代码不小心改错了. 这些都是可以通过单元测试来确保功能可以用的并且以前能用的功能和行为并没有发生改变. 特别是我提供了四台API服务器: 美国东部, 美国西部, 日本东京和英国伦敦, 那我需要每天定时跑些测试来确保API一切正常. 可以通过 Crontab 每天定时跑, 一旦有错误就发邮件提醒或者记录到事件中. PHP是世界上最好的语言, 通过phpunit 测试API的调用, 首先, 你需要安装 phpunit (官网安装说明), 安装完后可以运行以下命令来确认: $ which phpunit /usr/local/bin/phpunit 然后我们可以开始写一个简单的 PHP单元测试, 代码如下: <?php …

WordPress 博客使用 AMP 移动加速的技术和技巧

早在去年2月份的时候 当时 Google 推出AMP技术的时候我就小试了一把, 可是当时并不是很理解 AMP技术的原理和格式规范, 在使用了同样的AMP WordPress 插件后在 Google Webmaster 后台显示了很多错误 结果就是AMP不被索引 于是我就删除了AMP插件. 这几天 受土木坛子的怂恿和无私的帮助, 我先是在我的小站(英文 CodingForSpeed.com) 上试验和调试与不断调整, 总算解决了我能容忍AMP的底线, 就是: 简要的文章内容, 支持 Google Analytics 跟踪代码, 并且能在文章前后添加广告 (没广告收入我就没动力写文章). AMP …

如何在指定的文章里不显示Adsense广告? Adsense真是矫情

Adsense 真是矫情 又给我发警告说哪些文章上不能放广告 因为违反了条例. 目测是机器人抽查, 因为我收到过一次或二次误判, 但是也无法主动联系谷歌 只能登陆Adsense然后选择 解决了问题并给出解决问题的办法: 修改文章, 去掉广告. 这一次的问题只在 这个页面 上, 说是不能在 以下主题相关的帖子上放广告, 因为不是 Family-safe. 以下内容都不被允许放广告, 即使打打擦边球都很有可能被机器人抓到. 一些Adsense广告禁止的博文内容 关于性表现的提示或建议 一些性健康问题的治疗 与怀孕,分娩或计划生育有关的一些性健康建议 关于性传播疾病的讨论 好吧, 我又不想删掉那篇文章, 只能选择不在那篇文章上显示Adsense广告了. 去掉文章前后或者文章中间的广告 …

如何在 Slack 聊天里同步 Visual Studio Team Services?

之前提到 公司内部推广使用 Slack 聊天工具, 有一个好处就是 Slack 提供API接口, 可以很方便的整合到其它服务中, 比如就可以绑定 Visual Studio Team Services 的一些事件: 代码提交, 代码审核 Pull Requests, 新的工作项目 new work item 等等. 虽然也可以通过邮件提醒, 但是邮件多了很自然就被过滤掉 或者很容易被遗忘. 还是整合到聊天工具里方便 人性化. 在Slack里添加Visual …

如何在 Vultr 主机余额不足的情况下自动邮件提醒?

Vultr 主机是先付钱再扣费, 如果帐号里没有钱的话 是很有可能会自动停机并且帐号被停用的 (当然你可以设置PAYPAL或者信用卡自动授权扣款). 所以最好的建议就是 及时检查余额并一次性多充了几个月的. 当然有时候事情忙的话仍然会忘记. Vultr API 支持 Vultr 提供了很多API 我们需要先在控制面板里设置可以访问API (你可以只填你主机的IP地址) 或者全部打开. 解释 JSON 由于 Vultr API 返回是 JSON 格式, 我们需要装一个 jq 解释器. apt-get install …

比较污的代码 – 有点意思的小程序

能看懂就说明你不纯洁了, 哈哈. 不过这也是一种程序员的幽默, 总比那些直接在代码或注释里各种fuck来fuck去的更能让人心情愉快了. Python 不要停 这里还用到了Unicode变量: for ♂ in ♀: print ("Don't Stop!") SQL 强势插入 之后还能不能让人好好写SQL代码了.. insert into teachers ... Javascript In/Out 英文有一首儿歌 In, Out, In Out .. …