拿来即用:用C+JS结构来处理JSON数据

【面对的问题】 在物联网产品的开发过程中,对JSON格式的数据处理是一个强需求,例如亚马逊的 AWS IOT平台,设备与后台之间的通讯数据都是JSON格式,先瞄一眼大概的样子: 这是一个真实产品的通讯数据,设备端的代码C代码中利用cJSON这个开源工具来完成JSON字符的解析和组装工作。代码我这里就不贴了,解析函数很长,要滚动好多次鼠标滑轮。而且一不注意释放资源就会发生内存泄漏! 那么,是否有更好的方式来解决这个问题呢? 答案就是这篇文章介绍的duktape引擎! 【Duktape简介】 这里
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

Spark学习-spark常见问题

spark内容 https://sq.163yun.com/blog/article/186627375740239872 1、Spark与MR的对比 MR中要完成数据处理,需要写入多个MR程序并且需要反复的读取磁盘中的文件,Spark中处理任务是使用多个job连续在内存中运行。 1、spark把运算的中间数据存放在内存,迭代计算效率更高;mapreduce的中间结果需要落地,需要保存到磁盘,这样必然会有磁盘io操做,影响性能。 2、spark容错性高,它通过弹性分布式数据集RDD来实现高效容
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

vi/vim 设置.vimrc(/etc/vim | $HOME)

转载请注明来源:https://www.cnblogs.com/hookjc/ "========================================================================= " DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console " windows下未测试 " Last Change: 2014年04月23日 10时55分 " " Version: 1.80 " "====
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

rabbitmq实现指定消费者才能消费 rabbitmq 自定义消费者,定向消费实现!

本地开发环境与测试环境共用一套rabbitmq。当项目部署到测试环境提测后,如何保证mq队列里的消息只被测试服务器上的consumer消费,避免本地环境误消费? rabbitmq手动ack rabbitmq 自定义消费者,定向消费实现!
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

scons: 使用 SCons 轻松建造程序

转载请注明来源:https://www.cnblogs.com/hookjc/在软件项目开发过程中,make 工具通常被用来建造程序。make 工具通过一个被称为 Makefile 的配置文件可以自动的检测文件之间的依赖关系,这对于建造复杂的项目非常有帮助,然而,编写 Makefile 本身却不是一件容易的事情。SCons 是一个用 Python 语言编写的类似于 make 工具的程序。与 make 工具相比较,SCons 的配置文件更加简单清晰明了,除此之外,它还有许多的优点。 前言 mak
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

Java List集合取交集 使用retainall 报错:UnsupportedOperationException

代码如下: String[] nameArrays = fileLabelNames.split(","); //查询所有的文件标签 List<FileLabel> fileLabelList = this.selectList(new EntityWrapper<FileLabel>().eq("type", type).eq("status", 1)); List<String> hasSaved = new ArrayList<>(); for (FileLabel fl: fileLa
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

天融信复现joker靶机

复现joker靶机 会用到的反弹shell的链接http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet arp扫描,确定目标主机ip nmap扫描端口 22、80、8080 扫描敏感路径 http://ip/phpinfo.php http://ip/css/ http://ip/img/ http://ip/secret.txt
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

NASM汇编学习系列(3)——多汇编文件间函数调用

说明 本学习系列代码几乎完全摘自:asmtutor.com,如果英文可以的(也可以用谷歌浏览器翻译看),可以直接看asmtutor.com上的教程 本学习系列目录地址:https://www.cnblogs.com/whuwzp/p/nasm_contents.html 系统环境搭建:(我用的是ubuntu18.04.4 server,安装gcc、g++) sudo apt install nasm sudo apt install gcc-multilib 0. 概览 承前:上一节,我们实
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

SVN的安装与三大指令(Checkout 检出、Commit 提交、 Update 更新)

SVN使用教程总结【转载】:https://blog.csdn.net/hunhun1122/article/details/83506839   SVN服务器下载地址: https://www.visualsvn.com/ SVN客户端下载地址: https://tortoisesvn.net/downloads.html 在window中使用SVN客户端连接SVN服务器 第一次操作,我们把它叫做checkout(检出)操作 1、首先在你的项目目录鼠标右键,选择” TortoiseSVN”,
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

并发编程 —— 线程池

概述 在程序中,我们会用各种池化技术来缓存创建昂贵的对象,比如线程池、连接池、内存池。一般是预先创建一些对象放入池中,使用的时候直接取出使用,用完归还以便复用,还会通过一定的策略调整池中缓存对象的数量,实现池的动态伸缩。 由于线程的创建比较昂贵,随意、没有控制地创建大量线程会造成性能问题,因此短平快的任务一般考虑使用线程池来处理,而不是直接创建线程。 那么,如何正确的创建并正确的使用线程池呢,这篇文章就来细看下。 线程池 虽然在 Java 语言中创建线程看上去就像创建一个对象一样简单,只需要
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

初学 Python 笔记【二十二】案例:士兵突击

【封装】 封装是面向对象编程的一大特点 面向对象编程的第一步,将属性和方法封装到一个抽象的类中 外界使用类创建对象,然后让对象调用方法 对象方法的细节都被封装在类的内部 一个对象的属性可以是另外一个类创建的对象 【需求】 士兵许三多有一把AK47 士兵可以开火 枪能发射子弹 枪装填子弹,增加子弹数量 【开发士兵类】 假设每个新兵都没有枪 定义没有初始值的属性,可以用None: None关键字表示什么都没有 表示一个空对象,没有方法和属性,是一个特殊的变量 可以将None赋值给任何一个变量 【小
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

Embedded Python应用小结

转载请注明来源:https://www.cnblogs.com/hookjc/ (1)初始化Python脚本运行环境 Py_Initialize(); (2) 脚本的编译 bytecode = Py_CompileString(script.c_str() , "active" , Py_file_input) python有多种embeded的形式,我最喜欢的是用Py_CompileString来编译一个.py的脚本文件,这样有下面几个好处,引用方便,调试方便,灵活。 编译好后会返回一个Py
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

vue系列教程-04vue数据处理和页面渲染

本内容为系列内容,全部内容请看我的vue教程分类 我的个人博客 本节仓库地址 视频教程地址 vue定义数据 还记得前面说的mvvm的 model层吗?也就是数据层 在vue中我们如何定义我们需要使用到的数据呢 <script> let vm = new Vue({ el: '#app', data() { return { // 定义字符串 name: 'lili',
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

C++ XML解析之TinyXML

转载请注明来源:https://www.cnblogs.com/hookjc/ 使用TinyXML进行C++ XML解析,感觉使用起来比较简单,很容易上手,本文给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方法来完成。以后的文章里会讲解使用Xerces进行C++ XML解析的例子,希望大家一起交流。 TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DO
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

解决 React Native Android:app:validateSigningRelease FAILED 错误

RN 运行的时候报这个错这咋办: 这是找不到 测试的 秘钥了 debug.keystore 看app目录下有没有这个文件,如果没有.新建一个项目.拷贝进去就可以了.一般这是在编辑器创建的时候是会自动生成的!
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

「网易官方」极客战记(codecombat)攻略-沙漠-诅咒谷-cursed-valley

(点击图片进入关卡) 这太热了,太热了。 专注在你的任务上,不要被炎热分心。 简介 炎热的太阳正在耗尽英雄的生命值! 保存你的力量! 只有在 enemy.team 是 "ogres" 和 enemy.type 是 "skeleton" 时才会被攻击。 除非 item.type 是 "potion" 并且 hero.health 小于 hero.maxHealth / 4 ,否则不要收集任何项目。 默认代码 # 炎热的太阳正在耗尽英雄的生命值! while True: enemy = hero.
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

SqlCommandBuilder的作用

最近看一个案例,关于如何向数据库传数据,颇有发现。 以前我的数据都是采用Sql代码用SqlCommand一条一条语句的传入数据库。 但是今天发现有更好的方法。 代码如下: SqlConnection cn=new SqlConnection(ConStr); DataSet DS=new DataSet(); SqlDataAdapter Sda=new SqlDataAdapter("Select * from Table1",cn); try { Sda.Fill(DS,"Table1")
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

nginx proxy_pass同时支持http/https的小技巧

个人学习笔记,谢绝转载!!! 原文:https://www.cnblogs.com/wshenjin/p/13183929.html nginx在配置http/https代理,最开始比较麻烦的写法: upstream example { server 1.1.1.1:80; server 2.2.2.2:80 backup; } upstream example_https { server 1.1.1.1:443; serve
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

lua语言:string

转载请注明来源:https://www.cnblogs.com/hookjc/ 字符串库函数 string.len(s) 返回字符串s的长度; string.rep(s, n) 返回重复n次字符串s的串;你使用string.rep("a", 2^20)可以创建一个1M bytes的字符串(比如,为了测试需要); string.lower(s) 将s中的大写字母转换成小写(string.upper将小写转换成大写)。如果你想不关心大小写对一个数组进行排序的话,你可以这样: table.sort(
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0

编译器设计-自下而上分析器-误差恢复-语义分析

编译器设计-自下而上分析器-误差恢复-语义分析 Compiler Design - Bottom-Up Parser Compiler Design - Error Recovery Compiler Design - Semantic Analysis 一.Compiler Design - Bottom-Up Parser 自底向上的解析从树的叶节点开始,向上工作直到到达根节点。在这里,我们从一个句子开始,然后以相反的方式应用产生式规则,以达到开始符号。下面给出的图像描述了可用的自下而上的
分类: 其他 发布时间: 06-23 19:41 阅读次数: 0