watermark

升级Node版本RN项目运行报错cb.apply is not a function

丶灬走出姿态 提交于 2020-08-11 12:31:37
今日打算安装一下ReactNative官方推荐的脚手架工具Ignite。 Ignite 是一套整合了 Redux 以及一些常见 UI 组件的脚手架。它带有一个命令行可以生成 app、组件或是容器。 在安装的过程中,提示当前系统安装的node版本过低,无法安装,于是就想升级一下node的版本。 因为系统中早就安装了node的管理器nvm,所以使用了nvm来升级node的版本 @[toc] node版本升级 1.查看可以安装的node版本 nvm ls-remote 2.选择一个版本进行安装 nvm install v12.18.3 3.查看已安装的版本 nvm ls 遇到报错 担心会影响原有项目,所以编译启动了当前项目,编译build success,完美,but,APP启动直接就把报错了。 package服务直接提示了如下错误: Loading dependency graph, done. DELTA [android, dev] ../../index.js ░░░░░░░░░░░░░░░░ 0.0% (0/1)/Users/fantuan/ares/node_modules/graceful-fs/polyfills.js:285 if (cb) cb.apply(this, arguments) ^ TypeError: cb.apply is not a function

php7.2安装redis扩展

不打扰是莪最后的温柔 提交于 2020-08-11 12:24:49
centos7 以上版本php7.2安装redis扩展,使php能和redis进行通信。 一、使用oneinstack安装php7.2 二、下载php7的phpredis扩展库 php官网下载redis扩展页面:http://pecl.php.net/package/redis wget http://pecl.php.net/get/redis-4.0.2.tgz 三、解压phpredis扩展库 tar -xzvf redis-4.0.2.tgz cd redis-4.0.2 四、通过phpize生成编译configure配置文件 [root@zixuephp redis-4.0.2]# /mnt/php7/bin/phpize Configuring for: PHP Api Version: 20170718 Zend Module Api No: 20170718 Zend Extension Api No: 320170718 五、进行编译前的配置 ./configure --with-php-config=/mnt/php7/bin/php-config 六、编译和安装 make && make install 七、修改配置文件 在php.ini增加扩展extension=redis.so vim php.ini #文件尾增加下面代码 extension=redis

Mqtt开发笔记:Mqtt服务器搭建

℡╲_俬逩灬. 提交于 2020-08-11 10:38:26
若该文为原创文章,未经允许不得转载 原博主博客地址: https://blog.csdn.net/qq21497936 原博主博客导航: https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址: https://blog.csdn.net/qq21497936/article/details/106539703 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) Qt开发专栏:开发技术(点击传送门) 《 Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建 》 《 Mqtt开发笔记:Mqtt服务器搭建 》 <br> 前话   使用到mqtt服务器(中间件)。 <br> MQTT协议 简介   MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽

小师妹学JVM之:JIT中的PrintCompilation

你。 提交于 2020-08-11 07:42:34
简介 上篇文章我们讲到了JIT中的LogCompilation,将编译的日志都收集起来,存到日志文件里面,并且详细的解释了LogCompilation日志文件中的内容定义。今天我们再和小师妹一起学习LogCompilation的姊妹篇PrintCompilation,看看都有什么妙用吧。 PrintCompilation 小师妹:F师兄,上次你给讲的LogCompilation实在是太复杂了,生成的日志文件又多,完全看不了,我其实只是想知道有哪些方法被编译成了机器码,有没有什么更加简单的办法呢? 真理的大海,让未发现的一切事物躺卧在我的眼前,任我去探寻- 牛顿(英国) 当然有的,那就给你介绍一下LogCompilation的妹妹PrintCompilation,为什么是妹妹呢?因为PrintCompilation输出的日志要比LogCompilation少太多了。 老规矩,上上我们的JMH运行代码,文章中使用的代码链接都会在文末注明,这里使用图片的原因只是为了方便读者阅读代码: 这里和上次的LogCompilation不同的是,我们使用:-XX:+PrintCompilation参数。 其实我们还可以添加更多的参数,例如: -Xbatch -XX:-TieredCompilation -XX:+PrintCompilation 先讲一下-Xbatch。

使用Blink CEP实现差值聚合计算

∥☆過路亽.° 提交于 2020-08-11 07:03:14
使用Blink SQL+UDAF实现差值聚合计算 介绍了如何使用Blink SQL+UDAF实现实时流上的差值聚合计算,后来在与@付典就业务需求和具体实现方式进行探讨时,付典提出通过 CEP 实现的思路和方法。 本文介绍通过CEP实现实时流上的差值聚合计算。 感谢@付典在实现过程中的指导。笔者水平有限,若有纰漏,请批评指出。 一、客户需求 电网公司每天采集各个用户的电表数据(格式如下表),其中data_date为电表数据上报时间,cons_id为电表id,r1为电表度数,其他字段与计算逻辑无关,可忽略。为了后续演示方便,仅输入cons_id=100000002的数据。 no(string) data_date(string) cons_id(string) org_no(string) r1(double) 101 20190716 100000002 35401 13.76 101 20190717 100000002 35401 14.12 101 20190718 100000002 35401 16.59 101 20190719 100000002 35401 18.89 表1:输入数据 电网公司希望通过实时计算(Blink)对电表数据处理后,每天得到每个电表最近两天(当天和前一天)的差值数据,结果类似如下表: cons_id(string) data_date

cpu故障定位 top strace pstack

吃可爱长大的小学妹 提交于 2020-08-11 06:31:09
一次服务器CPU占用率高的定位分析 推荐 背景 :通过性能监控发现上线服务器cpu某核占用率已经达到了100%,而且是由我们的某个核心服务导致的。幸亏由于我们的服务进程由多个相同worker(线程)调度承担的,所以除了CPU占用率高之外,并没有对服务造成影响。随着 上次我们找到那个吃IO的罪犯 ,这次我们要追捕的是潜伏在团体中的特务,更加惊险刺激哟! 系统环境 用 top 命令很容易定位到是谁占用CPU最高。 以我们的这个业务进程(imDevServer)举例,为什么说这货是个潜伏者呢?因为这是个多线程的进程,我们要知道实际上占用cpu的最小单位是线程,所以肯定是众线程中的某一个或几个占用CPU过高导致的。 top -H -p pid 命令查看进程内各个线程占用的CPU百分比 如上图所示我们可以看出id为8863的线程cpu占用率最高。好,我们现在只要能找到他偷走的cpu就好了,虽然这小子嘴巴严,但是我们有一套完善的审问流程,不怕他不招。首先出马的是 strace -T -r -c -p pid 命令 它的作用是查看系统调用和花费的时间,epoll_wait虽然占用的调用时间多,但是他本身是个正常的阻塞调用。 我们接着让 pstack pid 出马 可以看到每个线程的调用堆栈,找到已经找出的占用CPU最高的那个线程,然后看他的调用堆栈,很容易看出在哪一步逻辑上导致了busy

产品/项目经理,有效提高效率的11种方法

那年仲夏 提交于 2020-08-11 05:51:15
产品 / 项目经理由于所处的环境,面对的情况和接触的人群复杂多变,往往需要具备较为全面的能力。与能力匹配的就是拥有不同的思维方式。 许多个微不足道的反射神经所产生的思想,最终导向到某个结果或决策。如果能够明确,很显然是可以事半功倍,走向成功的。 当你真正具备了这些思维,面对下一个五年甚至十年,你还会恐慌吗? 1 、 先考虑他人感受 拥有一颗同理心 说到同理心,大部分人都知道要体恤用户感受,并以此指导产品功能设计。比较常见的一种说法是,你认为的≠用户认为的,因此我们需要站在用户的角度考虑问题,要变成傻瓜来体验流程,抛弃自己的主观意识等等。 我们都知道,PM的一个重要的职责就是沟通协作,过程中你需要和内部的产品、设计、运营人员沟通;你也需要和外部的客户、甲方、供应商沟通……过程中小到某个需求的摇摆,大到整个项目的延期难免有突发状况。而同理心思维的运用就应当出现在这个时候。 试着用同理心思维来解决问题吧。即使这背后你知道由于各种不可控(或非你)原因,不如站在对方的角度,审视对面这个你。你会期待他(也就是你自己)做些什么呢?是不是可以勇敢点承认问题,给对方造成的影响致歉,让情绪有出口。这样冷静下来之后是不是也知道这背后的原因非对方个人所致,可以给对方一个台阶下呢。由此一来,双方的关系开始缓和,一切也又开始推动了。 核心思路:注重顺应及理解,而不是抵抗。 2 、 不抱怨 思考解决方案

springboot发送邮件任务入门(qq邮箱代码实现)

孤街浪徒 提交于 2020-08-11 04:04:03
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 2.找到qq邮箱,开启smtp服务,这里生成你的密码,复制第三步用 3.password里输入你获取到的密码(重点:这里一定不能错) spring.mail.username=1550213743@qq.com spring.mail.password=******** spring.mail.host=smtp.qq.com #开启加密验证 spring.mail.properties.mail.smtp.ssl.enable=true 4.EmailApplicationTests类里进行测试, contextLoads为简单的发送,仅限于文本。contextLoads2为复杂,可以发送图片,html格式 package com.xyj; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context

OpenCV开发笔记(六十):红胖子8分钟带你深入了解Harris角点检测(图文并茂+浅显易懂+程序源码)

半腔热情 提交于 2020-08-11 02:28:08
若该文为原创文章,未经允许不得转载 原博主博客地址: https://blog.csdn.net/qq21497936 原博主博客导航: https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址: https://blog.csdn.net/qq21497936/article/details/106367317 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) OpenCV开发专栏(点击传送门) 上一篇:《 OpenCV开发笔记(五十九):红胖子8分钟带你深入了解分水岭算法(图文并茂+浅显易懂+程序源码) 》 下一篇:持续补充中… <br> 前言   红胖子,来也!   做识别,有时候遇到需求,比如识别一个三角形,并求得三角形三个顶点的角度,这种属于教育场景类似的,还有其他场景,那么检测角点就显得很重要了,检测出角点并且求出其角度。 <br> Demo                   <br> 图像特征三大类型 边缘:图像强度发生突变的区域,其实就是高强度梯度区域; 角点:两个边缘相交的地方,看起来像一个角;

伙伴系统分配内存

江枫思渺然 提交于 2020-08-11 00:49:49
内核中常用的分配物理内存页面的接口函数是alloc_pages(),用于分配一个或者多个连续的物理页面,分配页面个数只能是2个整数次幂。相比于多次分配离散的物理页面,分配连续的物理页面有利于提高系统内存的碎片化,内存碎片化是一个很让人头疼的问题。alloc_pages()函数有两个,一个是分配gfp_mask,另一个是分配阶数order。 [include/linux/gfp.h] #define alloc_pages(gfp_mask, order) \ alloc_pages_node(numa_node_id(), gfp_mask, order) 分配掩码是非常重要的参数,它同样定义在gfp.h头文件中。 /* Plain integer GFP bitmasks. Do not use this directly. */ #define ___GFP_DMA 0x01u #define ___GFP_HIGHMEM 0x02u #define ___GFP_DMA32 0x04u #define ___GFP_MOVABLE 0x08u #define ___GFP_WAIT 0x10u #define ___GFP_HIGH 0x20u #define ___GFP_IO 0x40u #define ___GFP_FS 0x80u #define ___GFP