技术文章

iOS Abort问题系统性解决方案

做~自己de王妃 提交于 2021-02-18 08:55:34
一、背景 崩溃(Crash),即闪退,多指移动设备(如iOS、Android设备)在打开/使用应用程序的过程中,突然出现意外退出/中断的情况。如果App线上版本频繁发生崩溃,会极大地影响用户体验,甚至导致用户流失,以及收益减少。因此,崩溃问题是客户端稳定性团队需要重点解决的问题。 然而,对于所有崩溃场景,仅25%的崩溃可通过信号量捕获,实施相应改进;另有75%的崩溃则难以识别,从而对App的用户体验,造成了巨大的潜在影响。 Facebook的工程师将App退出分为以下6个类别: 1.App内部主动调用exit()或abort()退出; 2.App升级过程中,用户进程被杀死; 3.系统升级过程中,用户进程被杀死; 4.App在后台被杀死; 5.App在前台被杀死,且可获取堆栈; 6.App在前台被杀死,且无法获取堆栈。 对于第1~4类退出,属于App的正常退出,对用户体验没有太大影响,无需进行相应处理;对于第5类退出,可通过堆栈代码级定位崩溃原因,对此业界已形成比较成熟的解决方案,推荐免费试用 阿里云的崩溃分析服务 ,即可快速定位、解决此类崩溃问题;对于第6类退出,可能的原因很多,包括但不限于:系统内存不足时继续申请内存、主线程卡死20s以上、CPU使用率过高Stack Overflow等,在此我们统一称之为iOS客户端的“Abort问题”。 Abort问题无法被堆栈捕获

风生水起的GitLab & 争议不断的GitHub

会有一股神秘感。 提交于 2021-02-18 08:54:34
来源:CNBC 译者:Jhonny 编辑:Mickey 01 风生水起的GitLab GitLab最新估值超60亿美元,或将于明年公开上市。 GitLab 创始人 Dmitriy Zaporozhets (左) 和 Sid Sijbrandij (右) GitLab 是一个帮助开发人员共享和管理代码的网站 ,据 CNBC 报道,GitLab 正允许一些员工出售其部分股权,而此次股票出售对公司的估值 超过了 60 亿美元 。 此估值是2019年9月 GitLab 估值27亿美元的两倍多,当时该公司在由高盛和 Iconiq Capital 领投的一轮融资中筹集了近 2.7 亿美元。知情人士说,此次股票出售使 GitLab 员工能够在明年 GitLab 的公开市场上市之前获得一些流动性。由于此次股票交易是秘密性的,知情人士不愿透露姓名。 对此,GitLab 公司发言人拒绝置评。 GitLab 与 GitHub 以及 Atlassian 之间的竞争最为直接,GitHub 在 2018 年被微软以 75 亿美元的价格收购。这三家公司都受到了软件和 app 经济蓬勃发展的推动,这推动了科技行业的大规模发展,并迫使零售、金融和医疗保健等各个领域的公司雇用程序员来对他们的产品服务进行现代化和数字化转型。 据了解,包括 Ticketmaster (美国票务公司) 、Siemens (西门子) 和

ESP8266 AT指令开发(基于STC89C52单片机): 关于上一节MQTT底层封包解包源码使用说明

我怕爱的太早我们不能终老 提交于 2021-02-18 08:53:19
前言   请先看这一节了解一下MQTT    https://www.cnblogs.com/yangfengwu/p/11762642.html (了解MQTT)   如果自己有兴趣可以自己去安装MQTT软件   然后让自己的设备通过自己的服务器进行通信   或者根据文章直接连接阿里云物联网平台    说明   用户看完上面的文章以后,需要明确,MQTT软件就是一个TCP服务器   然后在TCP服务器的基础上封装了一套协议   只要是咱的模块可以实现TCP,那么就可以实现连接MQTT   本人这节的MQTT包底层封装的非常全面,   用户可根据自己对MQTT的理解合理的运用.   由于本节的开发板使用的是89C58,其容量受到限制   故只能提供以消息等级0进行通信的基础例子   如果想了解封装的更加全面的代码请点击链接    https://www.cnblogs.com/yangfengwu/p/12540710.html    先说一下程序的流程   一,配网(控制wifi模块连接上路由器)   配网采用的SmartConfig      SmartConfig流程就是上一节的APP绑定设备的流程   具体流程请看上一节   模块配网以后便连接上了路由器,那么便可以访问广域网 控制模块连接MQTT   1.请用户自行打开一下函数      2.获取了MAC地址  

Shiro 免密登录

故事扮演 提交于 2021-02-18 08:52:56
最近做接入SSO单点登录,需要从别的系统返回的用户然后直接登录,所以需要用到免密登录,其实很简单,自己写一个类继承HashedCredentialsMatcher类,然后重写doCredentialsMatch,判断免密登录规则可结合实际业务需求更改,符合规则的return true就代表密码校验通过,代码如下: import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; public class CybHashedCredentialsMatcher extends HashedCredentialsMatcher { @Override public boolean doCredentialsMatch(AuthenticationToken authcToken, AuthenticationInfo info) { UsernamePasswordToken token = (UsernamePasswordToken) authcToken; if(StringUtils.isNotBlank

Linux下针对服务器网卡流量和磁盘的监控脚本

送分小仙女□ 提交于 2021-02-18 08:52:20
1)实时监控网卡流量的通用脚本: [root@ceph-node1 ~]# cat /root/net_monit.sh #!/bin/bash PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export PATH function traffic_monitor { OS_NAME=$(sed -n '1p' /etc/issue) eth=$1 if [ ! -d /sys/class/net/$eth ];then echo -e "Network-Interface Not Found" echo -e "You system have network-interface:\n`ls /sys/class/net`" exit 5 fi while [ "1" ] do STATUS="fine" RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}') TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}') sleep 1 RXnext=$(cat /proc/net/dev | grep $eth | tr : " " |

科大讯飞工程机械核心部件寿命预测挑战赛冠军方案分享

狂风中的少年 提交于 2021-02-18 08:50:48
本次分享从以下几个方面展开,尽可能做到有理有据,希望对读者有所帮助:赛题简介、赛题难点、数据预处理、特征工程、数据增强、模型构建、其他、总结。 1.赛题简介 预测性维护是工业互联网应用“皇冠上的明珠”,实现预测性维护的关键是对设备系统或核心部件的寿命进行有效预测。对工程机械设备的核心耗损性部件的剩余寿命进行预测,可以据此对于相关部件的进行提前维护或者更换,从而减少整个设备非计划停机时间,避免因计划外停机而带来的经济损失,比如导致整个生产现场其他配套设备等待故障设备部件的修复。本赛题由中科云谷科技有限公司提供某类工程机械设备的核心耗损性部件的工作数据,包括部件工作时长、转速、温度、电压、电流等多类工况数据。希望参赛者利用大数据分析、机器学习、深度学习等方法,提取合适的特征、建立合适的寿命预测模型,预测核心耗损性部件的剩余寿命。 2.赛题难点 针对数据量以及划分构造训练集的问题采用以下方案解决: 训练集与测试集的构造: a.一个训练样本按照寿命的一定比例进行构造多个小样本; 这里有两种方法,一是采用固定的比例列表,例如[0.45,0.55,0.63,0.75,0.85]。 二是采用多次选取随机比例构造。 b.测试集不变。 (队友周杰曾尝试过测试集也进行比例划分,有提升) 比如说一个样本的寿命为1000,我们截取450前的数据作为一个训练样本,其剩余寿命为550; 然后截取550前的数据

简单的整数划分问题

与世无争的帅哥 提交于 2021-02-18 08:49:39
总时间限制: 100ms 内存限制: 65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整数n 的这种表示称为正整数n 的划分。正整数n 的不同的划分个数称为正整数n 的划分数。 输入 标准的输入包含若干组测试数据。每组测试数据是一个整数N(0 < N <= 50)。 输出 对于每组测试数据,输出N的划分数。 样例输入 5 样例输出 7 提示 5, 4+1, 3+2, 3+1+1, 2+2+1, 2+1+1+1, 1+1+1+1+1 解题思路: 该问题是求出n的所有划分个数,即f(n, n)。下面我们考虑求f(n,k)的方法; 根据n和k的关系,考虑以下几种情况: (1)当 n = 1 时,不论k的值为多少(k > 0 ),只有一种划分即 { 1 }; ( 2 ) 当 k = 1 时,不论n的值为多少,只有一种划分即 n 个 1,{ 1, 1, 1, …, 1 }; (3) 当 n = k 时,根据划分中是否包含 n,可以分为两种情况: (a). 划分中包含n的情况,只有一个即 { n }; (b). 划分中不包含n的情况,这时划分中最大的数字也一定比 n 小,即 n 的所有 ( n - 1 ) 划分。 因此 f(n, n) = 1 + f(n, n-1); (4) 当 n < k 时

跳转引用、禅模式...VS Code 中 11 个快捷键/操作,让你的效率与舒适度翻倍!

时光怂恿深爱的人放手 提交于 2021-02-18 08:32:07
在本文之前,我们已经连续在两篇文章中讨论了 VS Code 中的快捷键: 你真的会用 VS Code 的 Ctrl、Shift和Alt吗?高效易用的快捷键:多光标、跳转引用等轻松搞定 VS Code 中的 Vim 操作 | 无需修改 VSC 默认快捷键 | 常用组合与逻辑 本文我们继续讨论 VS Code 中的快捷键。实际上,相比前两篇文章,本文更加注重介绍“操作”,快捷键不是重点,重点是功能的探索与应用。 F12 跳转引用 如上图: F12 跳转到变量、函数、类的定义处 Shift + F12 跳转到其引用处;多个引用时,可以选择具体哪个 reference 使用 F12 也可以跳转到环境库的源码中,如下图,我跳转到了库 gym (使用 conda 安装到 lib)的 core.py 。 查找与替换 使用 Ctrl + F 可以进行查找;使用 Ctrl + H 则弹出替换窗口。如上,我将 foo 替换为 foobar ,使用 Alt + R 支持正则语法。 Ctrl + Shift + P Ctrl + Shift + P 恐怕是各个编辑器、调试器中最常用的操作了:弹出命令窗口,然后我们输入相关命令的名称,回车则执行该命令。 如上图,我使用 Ctrl + Shift + P ,执行 View: Split Editor Right 命令,接着,使用 Ctrl + P

跨屏建站系统2021.2.17发布更新

耗尽温柔 提交于 2021-02-18 08:31:41
跨屏网打造“无印良品”版建站系统,在传统建站系统都习惯性的保留建站平台的信息(版权),以至于形成了一个固有的现象,当一个建站平台上线的时候,往往都会带上平台的一些logo或者版权信息,然而这一个细节却是作为用户不太想看到的,尽管只是小事情,以至于很多用户往往也不会在过在意这个问题。 不过,在跨屏建站系统发布更新以后,这个传统级别现象将有望被改写,在新的后台中可以将平台的信息定义为自己的,这样可以让用户在使用后台更加舒心。 跨屏建站系统2021.2.17发布更新 1,增加了发布文章定时功能 2,增加了发布文章的关键字、描述定义 3,修改了后台排版布局等 来源: oschina 链接: https://my.oschina.net/u/2000968/blog/4953434

百练 04 简单的整数划分问题

不想你离开。 提交于 2021-02-18 08:27:58
原文地址:http://www.cnblogs.com/wanghetao/archive/2013/11/25/3442192.html 描述 整数划分是一个经典的问题。请写一个程序,完成以下要求. 输入 每组输入是两个整数n和k。(1 <= n <= 50, 1 <= k <= n) 输出 对于输入的 n,k; 第一行: 将n划分成若干正整数之和的划分数。 第二行: 将n划分成k个正整数之和的划分数。 第三行: 将n划分成最大数不超过k的划分数。 第四行: 将n划分成若干个 奇正整数之和的划分数。 第五行: 将n划分成若干不同整数之和的划分数。 第六行: 打印一个空行 样例输入 5 2 样例输出 7 2 3 3 3 提示 样例输出提示: 1.将5划分成若干正整数之和的划分为: 5, 4+1, 3+2, 3+1+1, 2+2+1, 2+1+1+1, 1+1+1+1+1 2.将5划分成2个正整数之和的划分为: 3+2, 4+1 3.将5划分成最大数不超过2的划分为: 1+1+1+1+1, 1+1+1+2, 1+2+2 4.将5划分成若干 奇正整数之和的划分为: 5, 1+1+3, 1+1+1+1+1 5.将5划分成若干不同整数之和的划分为: 5, 1+4, 2+3 本题使用动态规划( Dynamic Programming)方法解决 一 求将 n划分为若干正整数之和的划分数 1.