Code

A collection of 16 posts
PHP小工具连接Twitter API V2
以兴趣为工作

PHP小工具连接Twitter API V2

清明假期后突然来了一个需求:要在一个PHP服务器环境中,连接推特API获取数据,筛出一批有过特定行为的关注者名单。看推特文档,这个事按理该用Account Activity API,通过自定义webhook来实现对这些特定行为的即时处理,但这个API貌似要申请Enterprise权限,还挺麻烦。于是决定还是用已经有的开发者权限,连接Twitter API v2,跑通拿到数据就齐活了。 Twitter API的文档相当完备,条分缕析、详尽规整。但如果完全没有相关经验也很容易迷失其中,茫然无从下手。建议挑一个最核心的需求做为突破点,直接看具体细节。对我来说这个点就是获取关注者,这部分文档可以在左侧导航栏中依次点击Twitter API->Twitter API v2->Users->Follows进入。在这个数据点(endpoint)的文档页中,右侧上方有四个内容标签,分别是Introduction(简介)、Quick Start(快捷上手)、Migrate(从版本1.1迁移到2的说明)以及API reference(API参考)。简介部分都是blah blah的废话,快捷上手部分有很明
7 min read
Python批量处理GoodGen压缩文件
一起学习

Python批量处理GoodGen压缩文件

爷青回 回想大四上学期在广告公司实习,这辈子头回挣到笔稍像样的收入,感觉终于能花自己的钱买游戏机了,真是心花怒放:) 当时在世嘉Mega Drive和任天堂Super Famicom之间犹豫了很久,最终还是因为超任要玩的痛快还要配磁碟机,花费太高,而跑到帝都景山后街一家电游店买了台世嘉MD兼容机。 一眨眼二十多年过去,某天从箱子里翻出这台主机,擦擦灰接上一台14吋小CRT电视,插进游戏卡,居然还能完美运作,感觉真是爷青回了!之后稍稍折腾了一下,把家里一个带脚轮的置物架改成怀旧游戏中心,最上面一层放小电视,下面两层分别是2002年买的Play Staion One和这台世嘉MD,时不时拉出来玩一会儿收藏的老游戏,也是个乐事。最近则加了个新设备:一个乌克兰团队开发出来给MD用的烧录卡——表面上看跟普通世嘉黑卡没什么区别,但顶部有个槽可以插TF卡。只要把你想玩的游戏ROM文件存入TF卡,放回烧录卡再插入世嘉主机,就可以玩几乎所有的MD主机游戏了! 而玩老游戏ROM的玩家一般都知道GoodTools,这是一个整理、压缩、打包、发布各种主机游戏ROM文件的工具软件、数据库和管理规则的组合。
7 min read
周末DIY之神奈川冲浪里画框魔改
生活碎碎念

周末DIY之神奈川冲浪里画框魔改

“神奈川冲浪里”(神奈川沖浪裏/The Greate Wave off Kanagawa)是日本浮世绘画家葛饰北斋制作的木版画,做为其富岳三十六景(冨嶽三十六景)系列作品中最著名的一幅,描绘了神奈川外海(神奈川冲)的滔天巨浪、在海浪中苦苦挣扎的渔船和远处的富士山。国内厂商ATI Studio将这幅名作制作为拼贴立体画,在摩点上众筹,看到如此国产尖儿货,哪有不动心的道理,即刻下单支持! 开箱和制作 没等多久,产品送到,开箱开箱! 包装盒(左侧)和附送的小礼物(右侧蓝色卡片),右上角是很早以前何D君送的卡片相机,做个大小比较。 盒子底部 盒子内部 这个画框的产品形态为DIY套件,也就是说包装盒里是零件和基本工具(刻刀、胶水和砂纸),需要自己组装。用手机微信扫描说明书上的二维码,关注公众号后进入网页,上面有详细步骤,制作难度不高,但比较繁琐,需时40分钟左右。 基本流程就是按说明将木零件从框架上切割下来,然后将不同颜色的纸零件一层层用胶水粘好,最后把所有零件拼插成形。制作时最好多准备几根棉签,粘贴时将挤出来的胶水尽快擦掉。 完成效果图,
6 min read
少儿编程课05提纲
一起学习

少儿编程课05提纲

作业点评 点评上周的数七游戏作业。 使用数据 * 什么是数据 Scratch在执行期间收集、处理和存储的各种类型的信息。 * 数据类型 * 字符串 * 布尔 * 整数 * 实数 使用变量 * 什么是变量 就是变化的内容,也可以理解为计算机中放东西的小盒子,但是是用来放前面提到的程序需要的各种信息。 * 变量的命名 Scratch中可以使用字母,数字,特殊字符,空格(问题:大小写),要尽量有意义的情况下,短小精悍。 * 变量监视器 * 变量的范围 * 局部变量 * 全局变量 * 云变量 * 删除变量 * 使用不同角色/舞台的变量 * 给不同的角色/舞台建立局部变量 * 侦测其他角色的变量 * 学生编程 给数七游戏增加记分功能 课后作业 给爸爸妈妈编写一个计数器程序,计数器一开始是零,每次按键盘上的一个键(或鼠标按钮)计数器就加一。
1 min read
少儿编程课04提纲
一起学习

少儿编程课04提纲

作业点评 互动活动 条件编程 * 什么是条件 用孩子身边的生活例子讲解什么是条件 * 条件控制功能块 * 如果……那么…… * 如果……那么……否则…… * 重复执行,直到…… * 在……之前一直等待 * 什么是布尔值 真或假,0或1,有或无…… * 布尔值功能块 * 碰到…… * 碰到颜色 * 颜色X碰到颜色Y * 按键 * 按鼠标按钮 * 数字比较 * 与AND * 或OR * 否NOT * 学生编程 制作FizzBuzz游戏 课后作业 * 作业内容:编写“数七”游戏程序,舞台上要有至少两个角色,玩家控制其中一个。从一个角色开始从1开始轮流数数,碰到7或7的倍数要输入”G”,其他情况应输入相应的数字。当出现错误时游戏结束。 * 提示: 1. 轮到玩家输入时,要用到“侦测”类功能模块下的“询问…
1 min read
少儿编程课02
一起学习

少儿编程课02

Scratch软件 * Scratch 2.0程序界面 * 什么是界面 * 窗口 * 菜单栏 * 工具栏 * 显示模式 * 分类区域 * 命令块区域 * 角色区域 * 脚本区域 * 舞台 * 角色列表 * 使用帮助 * 项目文件操作 * 新建 * 保存 * 打开 * 项目说明、备注和感谢 角色 角色(sprite)是在透明的背景上绘制的二维图像。可以移动,并和其他角色互动。 * 脚本 * 造型 * 声音 * 学生:修改角色属性 舞台 * 什么是坐标 * 舞台的坐标 * 背景 * 学生:绘制新背景 角色的移动 * 位置 * 移动方向 * 旋转模式 * 动作类功能块 * 学生:实践各种移动 课后作业 编写一个让角色绕着舞台跑一圈的程序。
1 min read
少儿编程课01
一起学习

少儿编程课01

今天是少儿编程课的第一课,所谓”编程”,就是编写程序——我们人类使用电脑能够理解的语言(程序),让电脑为自己服务。所以,我们第一节课的内容,先讲什么是电脑,然后介绍我们要学习的程序语言,并编写我们的第一个程序。 认识电脑 电脑是美国人发明的,她的英文名称是computer,直接翻译就是计算机。 用电的机器 首先,电脑要用电,这里的电可能是电池,也可能是从墙上的插座里来的。电是什么呢,大家现在只要知道有一种叫电子的,很小很小的小球球,从电源里跑出来,沿着电线在各种用电的零件之间跑来跑去就可以了。 进行计算的机器 这种电子小球,跑的速度非常快,有多快呢?(提问体育课50米跑成绩)好,那就是说,你们跑步的速度大约是每秒 米。老师知道,世界上跑得最快的人是牙买加的博尔特,他跑100米只用9.58秒,也就是1秒钟跑10米多。而汽车在高速公路上每秒钟可以跑33米,最快的民航飞机(协和)是647米/秒。电子呢?电子每秒钟可以跑30万公里,也就是300,000,000米/
7 min read
PHP程序猿成军训练营之开发环境搭建
以兴趣为工作

PHP程序猿成军训练营之开发环境搭建

新年伊始,有幸给刚入职的PHP开发小伙伴们主持成军训练,为此写了本文,方便大家一步步用Vmware虚拟机搭建起CentOS+Nginx+MariaDB+PHP7+Git的开发环境。因为主要在开发者个人计算机中运行,因此在安全和性能调优方面完全没有涉及。 CentOS7 1. 下载CentOS 7.5 64位操作系统光盘安装镜像文件,在Vmware Workstation Player中建立新虚拟机,使用前述镜像文件安装操作系统,将虚拟磁盘拆分成多个文件,内存1G,处理器1个,网络适配器选“桥接模式”; 2. 进入CentOS安装向导后,选择最小配置软件、设置国内时区、时间、语言支持增加中文、设置主机名、配置局域网,设置root用户密码; 3. 完成系统安装后使用root用户登录,更新系统; yum update 4. 安装网络工具。 yum install net-tools Nginx 1.12.2 1. 安装依赖项;
6 min read
新国产尖儿货——猛兽匣之程序猿
生活碎碎念

新国产尖儿货——猛兽匣之程序猿

百分百国货的52Toys创建了猛兽匣品牌,从小恐龙DIO开始,推出了一系列可变形为方块收入匣内的机甲猛兽玩具。编号为BB-03的大猩猩JOJO是此系列第二款作品(BB-01和BB-02都是小恐龙),前一阵儿他们和小米有品商城合作,在此基础上推出了一款程序猿涂装和附件的,包爸看到后即刻种草,马上下单领了一只回家。 照片 JOJO改名JOJOBS,是向乔布斯致敬么,感觉好冷……黑白线稿的大猩猩很带感! 透明部分露出来的是变形状态下的程序猿。 侧面有猛兽匣和有品的LOGO。 从顶部看看不出是什么东西,感觉更有神秘机械感。 变形状态下塞入收纳箱,再摆上无线键鼠配件,感觉像个终端,和程序猿的主题很搭。 感觉大猩猩好憋屈…… 所有组件摆在一起。 变形为猩猩后开始cosplay金刚大电影…… 虽然脚很小,但是设计的很好,可以稳定站立。 愚蠢的人类!不堪一击的双翼机! 英雄救美…… 有小美女助阵,什么都不怕了! 警视厅版小恐龙也来一起玩,别太入戏,把下巴吼脱臼就麻烦了。 和Matrix的名场面也很搭配。 实
3 min read
魔改Zippo打火机为番茄计时器
生活碎碎念

魔改Zippo打火机为番茄计时器

好久没写和开源硬件有关的内容了,绞尽脑汁想了半天,感觉还不如自己动手做个什么。拿出年初在Adafruit网站9.95美刀买的硬币大小的Arduino Gemma单片机琢磨了一会儿,觉得这个大小再加上颗3V纽扣电池,应该可以塞进我珍藏的一个Zippo打火机里,做个有趣的项目。 于是赶紧翻箱倒柜,把那个火机找了出来。说起来包爸也曾是个烟民,九几年白猴君回国探亲,送了我这个经典款的Zippo打火机。结婚后包爸就不再抽烟了,这个火机也束之高阁。一晃八九年过去,今天拿出来再次把玩,感觉机械部件运转灵活,声音清脆,闲放着真是可惜了。又回想了一会儿以前用这个火机打着火苗的情形,灵感有了:决定把火机内部储油的棉花取出,放Gemma和纽扣电池,灯芯换成LED,做成一个番茄工作法的计时器。 所谓番茄工作法,是一种旨在提高工作效率的方法,即每次只选择一个特定的工作项目,专注持续工作25分钟,休息5分钟,然后再工作25分钟,休息5分钟,以此循环…… 所需材料 * Zippo打火机 * Gemma单片机 * 发光二极管LED * 220欧姆电阻 * CR2032纽扣电池 * GP
6 min read
Scratch编程计算奥数机器人克隆问题
一起学习

Scratch编程计算奥数机器人克隆问题

为了教包子学习编程,包爸给包子装了一台树莓派电脑,里面有图形化的Scratch。然后从图书馆借了两本书(《Scratch少儿趣味编程》,《Scratch 2.0趣味编程指南》),扔给包子让他看了一阵儿。包子照着书里面的例子,自己拖拖拽拽,算是入了门。下一步要怎么教,包爸也有点迷茫。 周四爸爸陪着包子上奥数课的时候,老师出了这样一道题: 博士发明的机器人“大食1号”在生产出来1小时内要吃废铁,之后每1小时将自身克隆,做出来的克隆也和“大食1号”做相同的行动。现在,有1台刚刚生产出来的“大食1号”,那么12个小时时,有多少个机器人? 包爸突然想到,可以用Scratch做一个程序,让它帮着包子计算自己喜欢的数学问题。从兴趣入手,解决自己遇到的实际问题,应该是一个不错的途径。 等到了周末,包爸打开包子的树莓派电脑,打算用Scratch1.4做一个这样的程序出来。本来以为这种循环累加问题是小菜一碟儿,没想到还是废了一些周折。主要是包爸一开始在Scratch里盲目找了半天数组类型的变量未果,还好包子自己弄过一些程序了,拖出来一个列表,可以起到同样作用。最后终于有了下图的程序
4 min read
生成汉字卡牌的PHP小应用
一起学习

生成汉字卡牌的PHP小应用

上初中时,班里曾经有人发明了一套用化学元素信息做卡牌的游戏,风靡一时。可惜现在已经完全想不起来当时的玩法了。包子上小学后,包爸就想着也效仿这种模式,让包子和小伙伴们有的玩。于是断断续续花了一个学期的时间,在包妈的协助下,和包子一起琢磨制作出大脑锛儿汉字卡牌游戏。临近期末时,规则基本定型,需要做一套汉字卡了,为了省事,自己写了一个PHP web app,到汉典网站上抓取所需的汉字信息,生成可打印的HTML文件。下面就是程序代码,有类似需求的可以省去再造车轮了。当然,不懂代码的话,也可以到我们的大脑锛儿汉字卡牌游戏网站上直接生成。 应用的基本流程是:检查是否有提交的汉字post数据,没有就展示填写汉字的表单网页。如果有数据,就先到使用序列化保存的文本数据文件中寻找是否已有这个汉字的信息,没有就到汉典网站中抓取,并保存到数据文件中。最后组成汉字卡牌数据,使用html模板进行展示。 需要说明的一个是费了一些功夫才搞明白的汉典单个汉字网页url的生成规则(代码第131行),举例来说,“汉”字的网页url是: http://www.zdic.net/z/1c/js/6C49.htm
7 min read
在CentOS 7.2上安装Ghost
以兴趣为工作

在CentOS 7.2上安装Ghost

最近准备在一个项目中使用一个轻量级的博客做项目的公开文档平台,项目文档本身是用markdown格式写的,因此使用Ghost就是顺理成章的了。花了一个小时在项目服务器(阿里云ECS,操作系统CentOS 7.2 64位)上完成了初始安装,步骤如下: 1. 登录到服务器,更新软件,确认wget,unzip,node,npm这些软件都有 yum update -y 2. 下载最新版Ghost wget https://ghost.org/zip/ghost-latest.zip 3. 创建准备安装Ghost的目录,zip压缩包解压缩到这里 mkdir /yourGhostPath/ghost unzip -d /yourGhostPath/ghost ghost-latest.zip 4. 安装Ghost cd /yourGhostPath/ghost npm install --production
2 min read
Arduino主控板程序[翻译]
生活碎碎念

Arduino主控板程序[翻译]

本文全文译自开发者Jonathan发表在lvl1.org上的介绍文章。 简述: Arduino主控板(ArduinoDashboard)是用来实时查看Arduino模拟和数字输入输出接口数值的程序,可以在任何Arduino小程序(Arduino sketch)中引用,同时还提供已编译的版本,这样即使你没有安装Processing语言的集成开发环境也可以使用,下载包中还包括了源代码。 更多细节: Arduino主控板程序包括了Processing语言的小程序和桌面应用程序,目前仍是初期测试版本,只提供了基本的功能。当前的版本可以让用户获得A0-A6模拟接口,以及1-13数字接口的数据。 使用指南: 即使你的计算机中没有Processing的集成开发环境,也可以使用Arduino主控板的编译版本,针对不同平台的每一个版本内都有一个单独的文件夹,包含了Arduino小程序文件,里面是需要引入到你自己小程序内的函数代码,下面是具体的步骤: 1. 根据你的系统下载已编译的版本:Win32,Win64,Linux32,Linux64,MacOSX 2. 将压缩
4 min read
利用Linux虚拟主机打造自己的网络信息传送门
生活碎碎念

利用Linux虚拟主机打造自己的网络信息传送门

最近完成了一个日本公司的库存管理系统,开发费很准时的汇到了我的中行账户里。收日元是件很有成就感的事,那一堆零,看着就爽……不过这都是浮云啊,不换成人民钱怎么给我家包子买奶粉啊。最近日本受灾,日元汇率波动挺大,听某些专家讲,因为要筹集重建资金,日元总体还是要涨的。所以我给自己定了一个门槛,打算等汇率过了8.09才去兑换。可是要为了这个每天都要想着上网刷新中行的外汇牌价页面,感觉很麻烦,错失良机的可能性极大。所以就想做一个定时抓取网上汇率信息的web service,时时刻刻帮我盯着,一旦超过阙值,就用短信通知自己。感觉这个服务就象Portal–传送门,网上信息从一头儿扎进去,转啊转的,从另一头儿的个人短信端(email也行)就钻出来了。虽然我玩Portal游戏玩到头晕要吐,到第17关再也坚持不下去认输放弃了,但是自己做这个服务还是没什么问题的,花了周末一天时间搞定,也算是个实用的weekend project,记录下来给有类似需求的人做个参考。 事前准备 1. 要获取的信息是互联网上公开的,信息展现页面格式基本固定无变化,以便机器按照一定的规律定时抓取; 2. 有管理员权限的
6 min read