最近在项目中需要对nodejs的require关键字做解析,并且替换require里的路径.一开始我希望nodejs既然作为脚本语言,内核提供一个官方的parser库应该是一个稳定可靠又灵活的渠道,然而nodejs里面只一个了一个加载js文件并得到对应的module的能力,module能获取export的函数及其对应的源代码的能力,但是代码已经是闭包过后的,实际上能力很有限. 而我实际上需要的是一个官方的js parser,我希望它是用nodejs写的,轻量的,能得到完整的AST.这样我们就可以…
转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇) 0x00前言 吃豆人是耳熟能详的可爱形象,如今我们的TurnipBit也集成了这可爱的图形,我们这就让他来呼吸了~. 0x01效果展示 先一起看下最终的成品演示视频: 0x02准备 TurnipBit一块 数据线一条 TurnipBit可视化编程网站:www.tpyboard.com 0x03代码实现 打开我们的TurnipBit在线图形编辑器. http://www.…
题目链接:吃豆人 比赛的时候写的bfs,纠结要不要有vis数组设置已被访问,没有的话死循环,有的话就不一定是最优解了.[此时先到的不一定就是时间最短的.]于是换dfs,WA. 赛后写了个炒鸡聪明的dfs,TLE,才发现时间复杂度好像是4^(n*m).T_T 依然感觉这个dfs很棒. bfs已AC,怎么解决的这个问题呢,如果当前位置next 被优化了则加入队列,以此优化其他位置,否则不加入队列.T_T好有道理~~~ 感觉bfs和dfs好神奇的说~ dfs TLE代码: #include <stdi…
 Problem 2124 吃豆人 Accept: 134    Submit: 575 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description 吃豆人是一款很经典的游戏,游戏中玩家控制吃豆人在地图上吃光全部豆子,而且避免被怪物抓住. 这道题没有怪物,将游戏的画面分成n*m的格子,每格地形可能为空地或者障碍物.吃豆人能够在空地上移动,吃豆人每移动一格须要1s时间,而且仅仅能朝上下左右四个方向移动,特别的是吃豆人还…
项目展示 Github项目地址:Pacman 涉及知识 切片制作 Animations 状态机设置,any state切换,重写状态机 按键读取进行整数距离的刚体移动 用射线检测碰撞性 渲染顺序问题 单.多路径的实现 协程延时 Button 按键功能 准备工作 Pixels Per Unit:多少像素相当于Unity一个单位,迷宫Maze大小232x256, Pivot:设置贴图的零点,Bettom Left左下角 物理化:墙,import package->custom package,导入已…
本文是用python的turtle作图的第二篇,通过这个例子可以了解动画的原理,用python自带的turtle库制作一些小动画. 1.问题描述 在上一篇"用python的turtle作图(一)静态图"我们介绍了,用python自带的turtle库,制作静态图. 本文将介绍用python自带的turtle库制作动画. 2.原理说明 动画的原理简单来说,就是利用视觉停留效应,每隔一定时间重新绘制图形.这里有三个关键点: 擦除原来的图形 重新绘制图形 时间一般是二十四分之一秒之内 下面以吃…
Description 吃豆人是一款非常经典的游戏,游戏中玩家控制吃豆人在地图上吃光所有豆子,并且避免被怪物抓住. 这道题没有怪物,将游戏的画面分成n*m的格子,每格地形可能为空地或者障碍物,吃豆人可以在空地上移动,吃豆人每移动一格需要1s时间,并且只能朝上下左右四个方向移动,特别的是吃豆人还能吐出舌头,舌头每移动一格需要0.1s时间,舌头只可以走直线.不必考虑吃豆人转身所需要的时间. 举例,吃豆人在(1,1)坐标,而豆子在(1,5)坐标,并且中间没有障碍物,此时朝豆子方向吐舌头-,经过0.8s…
一. Css吃豆人动画 1. 上半圆:两个div,内部一个圆div,外部设置宽高截取半圆 外部div动画:animation: 动画样式 1s(时长) ease(动画先低速后快速) infinite(动画无限播放) 动画样式:@keyframes:设置50%转45度,100%转0度 transform-origin: 50% 100%:定义旋转基点位置,左上角为0% 0% 2. 下半圆:改变旋转动画和基点位置,截取下半圆令外部div向下移动50%:translateY(-50%) 3. 豆子(设…
发售年份 1980 平台 街机 开发商 南梦宫(Namco) 类型 迷宫 https://www.youtube.com/watch?v=dScq4P5gn4A…
大圆盘减去扇形和小圆盘: #include <math.h> #include <stdio.h> int main() { double x, y; ; y >= -; y -= 0.05, putchar('\n')) ; x <= ; x += 0.025) putchar(" *"[ x * x + y * y < && /* disk */ fabs(atan2(y, x)) > 0.5 && /…
2019年2月20日09:18:22 AST语法树自己写代码解析的话就比较麻烦,有现成的库可以解析PHP,就像webpack就是自己解析js的语法代码,编译成各种版本的可用代码 github https://github.com/josdejong/mathjs Extension Description mathsteps A step-by-step math solver library that is focused on pedagogy (how best to teach). Th…
 java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/article/java-hashmap-java-collection.html 签名(signature) public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Se…
如题,今天遇到怎么一个问题, 在理论上代码是不会有问题的,但是还是报了如上的错误,把sql打印出來放到DB中却可以正常执行.真是郁闷,在百度里面 渡 了很久没有相关的解释,到时找到几个没有人回复的 "网站出现Query was empty 报错" 帖子,后来我查阅了 MYSQL常见出错代码解析大全mysql_errno()才知道是 1065:无效的SQL语句,SQL语句为空 导致的错误. 所以我们应该把重点放在sql语句上,最后发现是我的SQL语句的变量用了大写,而执行的时候该变量用了…
一 简介 Shuffle,简而言之,就是对数据进行重新分区,其中会涉及大量的网络io和磁盘io,为什么需要shuffle,以词频统计reduceByKey过程为例, serverA:partition1: (hello, 1), (word, 1)serverB:partition2: (hello, 2) shuffle之后: serverA:partition1: (hello, 1), (hello, 2)serverB:partition2: (word, 1) 最后才能得到结果: (h…
一 简介 spark核心是RDD,官方文档地址:https://spark.apache.org/docs/latest/rdd-programming-guide.html#resilient-distributed-datasets-rdds官方描述如下:重点是可容错,可并行处理 Spark revolves around the concept of a resilient distributed dataset (RDD), which is a fault-tolerant colle…
nodejs开发——require与exports的使用 另一片文章总结:http://www.cnblogs.com/hfultrastrong/p/8036682.html require require函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象.模块名可使用相对路径(以./开头),或者是绝对路径(以/或C:之类的盘符开头).另外,模块名中的.js扩展名可以省略.以下是一个例子. var foo1 = require('./foo'); var foo2 =…
031 删除工作表中的空行 如果需要删除工作表中所有的空行,可以使用下面的代码. Sub DelBlankRow() DimrRow As Long DimLRow As Long Dimi As Long rRow= Sheet1.UsedRange.Row LRow= rRow + Sheet1.UsedRange.Rows.Count - 1 Fori = LRow To rRow Step -1 If Application.WorksheetFunction.CountA(Rows(i…
一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指在一个周期内,信号处于高电平的时间占整个信号周期的百分比,方波的占空比是50%. 2) 调制频率:周期的倒数. 3) 脉冲宽度:信号处于高电平的时间. 二.nRF51822的PWM产生: NRF51822 通过Timer.PPI 和GPIOTE 的配合实现PWM 的功能,由Timer 产生一个事件,…
 一.实验内容: 通过串口发送单个字符到NRF51822,NRF51822 接收到字符后将其写入到FLASH 的最后一页,之后将其读出并通过串口打印出数据. 二.nRF51822芯片内部flash知识: EN-nRF51D 开发板使用NRF51822 芯片为nRF51822-QFAA,如下图所示,共有256KBFLASH,256 页,页大小为1024 字节. NRF51822 内部FLASH 写流程如下: 三.代码解析: main: int main(void) { ... 串口初始化 prin…
一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻转状态, 即指示灯D1 以8Hz 的速率翻转状态 COMPARE0 中断中点亮指示灯D2 二.nRF51822的内部RTC结构: NRF51822 有两个RTC 时钟:RTC0,RTC1.两个RTC 均为24 位,使用LFCLK 低频时钟,并带有12 位分频器,可产生TICK.compare 和溢出…
一.本实验ADC 配置 分辨率:10 位. 输入通道:5,即使用输入通道AIN5 检测电位器的电压. ADC 基准电压:1.2V. 二.NRF51822 ADC 管脚分布 NRF51822 的ADC 共有8 个输入通道,对应的管脚分布入下图: 三.NRF51822 ADC 原理 NRF51822 的ADC 比较简单,如下图所示. 3.1.ADC 通道及预分压系数 NRF51822 的ADC 共有8 个输入通道,在使用ADC 时,要设定ADC 的输入通道.本实验中,因为连接电位器的管脚是P0.04…
Kakfa揭秘 Day8 DirectKafkaStream代码解析 今天让我们进入SparkStreaming,看一下其中重要的Kafka模块DirectStream的具体实现. 构造Stream 首先,从工厂方法开始,在工厂方法createDirectStream中,有两类关键内容: fromOffset:是一个HashMap,指定我们要读取的topic和Partition. Decoder:为什么需要Decoder,是因为Kafka并不对数据有任何的处理,在发送中并不进行解码,需要在接收端…
Linux内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配,被称为slab高速缓存. 内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享.内存管理方法应该实现以下两个功能: 最小化管理内存所需的时间 最大化用于一般应用的可用内存(最小化管理开销) 内存管理实际上是一种关于权衡的零和游戏.您可以开发一种使用少量内存进行管理的算法,但是要花费更多时间来管理可用内存.也可以开发一个算法来有效地管理内存…
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4565    Accepted Submission(s): 2576 Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法.   Input 每行只有一个正整数N,N小于32768.  …
今天我们对postmaster的以下细节进行讨论: backend的启动和client的连接请求的认证 客户端取消查询时的处理 接受pg_ctl的shutdown请求进行shutdown处理 2.与前端的交互 2.1backend的启动和client的连接请求的认证 关于backend的启动,其函数调用栈如下: PostmasterMain() |->ServerLoop() |->initMasks() |->for(;;) |->select() <--监听端口 |-&g…
一.报警自动升级代码解析 发送邮件代码 def action_email(self,action_obj,action_operation_obj,host_id,trigger_data): ''' sending alert email to who concerns. :param action_obj: 触发这个报警的action对象 :param action_operation_obj: 要报警的动作对象 :param host_id: 要报警的目标主机 :param trigger…
结构代码解析 public class FirstSample { public static void main(String[] args) { System.out.println(2.0-1.1); // 0.8999999999999999 } } public: 访问修饰符(access modifier), 用于控制程序的其他部分对这段代码的访问级别. class: 表明Java程序中的全部内容都包含在类中. 类是构建所有Java应用程序和applet的构建块. Java应用程序中…
既然是要编写插件.那么叫做"插件"的东西肯定是具有的某些特征能够满足我们平时开发的需求或者是提高我们的开发效率.那么叫做插件的东西应该具有哪些基本特征呢?让我们来总结一下: 1.JavaScript 插件一些基本特征: 配置一定要简单 插件中定义的变量不污染全局变量: 同一段代码可以在不同的地方复用: 用户可以自定义自己功能参数: 具有销毁变量和参数的功能: 如果按照以上的几个特征来写插件的话,我们可以总结出一个基本的代码结构,我们一个一个的来看: 1.插件配置要尽可能的简单 html…
Babelfish 是一个开源的代码解析服务 参考架构 支持的语言 bash go java javascript php ruby c++ typescript 功能 我们可以使用此工具,进行大规模的代码分析,对于做ci/cd (devops) 很方便 运行 最简单的方式是使用docker 运行 参考:   docker run -d --name bblfshd --privileged -p 9432:9432 -v /var/lib/bblfshd:/var/lib/bblfshd bb…