- 在一个存在的包里面编写msg消息文件
CrimsonEmber
ROS笔记ROS2
前言尽管最佳实践是在专门的接口包中声明接口,但有时在同一个包中完成接口的声明、创建和使用会更为便捷。创建文件创建好msg/AddressBook.msg文件,在你的包的目录下package.xmlrosidl_default_generatorsrosidl_default_runtimerosidl_interface_packagesCMakeList找到生成消息代码的包find_packag
- c# winform 五子棋 人机对战 (详细)
目录1.前言2.人机对战主要功能实现3.其他功能修改4.完整代码1.前言c#winform简单五子棋,支持连续悔棋。-CSDN博客基础版跳链接。建议先阅读。在基础版的界面上增加两个groupBox,并各自放两个radioButton。在基础版上form1.cs中增加变量privateboolisAIThinking=false;//判断是否该ai走privateTimeraiDelayTimer;
- ThreadX 配置入门:CubeMX下的关键参数全解
初生牛犊不怕苦
c语言
本文目标受众:有FreeRTOS或裸机基础的嵌入式开发人员初次接触ThreadX的开发者希望基于STM32+ThreadX构建可维护项目的工程师目录内核配置软件定时器Timer配置配置建议总结后续开发注意事项你是否在使用STM32的ThreadX时,遇到过任务莫名卡死、系统异常重启、资源调度失控的情况?很可能是你在配置ThreadX参数时忽略了这些关键细节!今天我们就基于STM32CubeMX+T
- 三、【ESP32开发全栈指南:ESP32高分辨率定时器接口使用】
爱睡觉的王宇昊
ESP32算法智能手表智能电视程序人生
ESP32高分辨率定时器(esp_timer)应用指南一、为什么需要esp_timer?FreeRTOS软件定时器存在两大限制:最大分辨率受限于RTOS节拍周期(通常1ms)回调函数在低优先级任务中调度ESP32的硬件定时器虽然不受此限制,但直接操作复杂。esp_timerAPI通过以下方式解决了这些问题:✅使用64位硬件定时器(CONFIG_ESP_TIMER_IMPL)✅提供微秒级分辨率(1μ
- 定时器、延时
前瞻:1.软件定时器(如structtimer_list)不占用CPU资源(在等待期间):定时器基于内核的时间轮(timerwheel)机制,由系统时钟中断(tick)驱动。在定时器到期前,CPU可以执行其他任务,定时器只是挂载在队列中。到期时通过中断上下文触发回调函数(如timer_fun),此时会短暂占用CPU。特点:低精度:依赖jiffies(通常1ms~10ms精度)。不阻塞进程:适合延迟
- logrotate&timer使用与介绍
qsjming
linux运维服务器
logrotatelogrotate程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。1、配置文件介绍Linux系统默认安装logrotate工具,它默认的配置文件在/etc/logrotate.conf/etc/logrotate.d/logrotate.conf是主要的配置文件,logrotate.d是一个目录,该目录里的所
- 「iOS」——RunLoop学习
归辞...
ios学习笔记
底层学习iOS--RunLoop学习RunLoop的概念RunLoop与线程的关系RunLoop的结构ModeObserverTimerSourceRunLoop执行流程RunLoop的应用1.AutoreleasePool是什么时候释放的2.触控事件的响应3.刷新界面4.线程保活小知识machPort**Toll-FreeBridging(对象桥接)详解**`CFRunLoopTimer`和`N
- 分布式任务调度实战:XXL-JOB与Elastic-Job深度解析
告别传统定时任务的局限,拥抱分布式调度的强大与灵活在现代分布式系统中,高效可靠的任务调度已成为系统架构的核心需求。面对传统方案(如Timer、Quartz)在分布式环境下的不足,开发者急需支持集群调度、故障转移和可视化管理的解决方案。本文将深入剖析两大主流框架——XXL-JOB和Elastic-Job,从原理到实战,助你构建高可用的分布式调度系统。一、分布式任务调度:为什么需要它?在分布式架构中,
- 150G红外对管计数器
Frizzle_
应广单片机单片机嵌入式硬件
#include"extern.h"#include"counter.h"#include"timer.c"#include"smg.c"#include"sleep.c"#include"gpio.c"voidFPPA0(void){.ADJUST_ICSYSCLK=IHRC/4,Init_RAM,VDD=3.3V;gpio_init();systick_init();ENGINT;show_s
- ARM-定时器-定时器函数封装配置
以TIMER7为例,对定时器函数进行封装注意事项:GD32中TIMER7是高级定时器,相关详细请参考上一篇文章。main.c//main.c#include"gd32f4xx.h"#include"systick.h"#include#include"main.h"#include"Usart0.h"#include"Timer.h"floatduty0=0;floatduty1=0;floatd
- By 2010, mature, don't childish
1.NomatterlessonQQ,towastetoomuchofyourtime2.Gotobedearlyandgotupearlier.3.Everyday,don'tforgettoremindyourself.....4.Havemoretimereading,learnmore,bealiteraryattainment,don'twasteyourtimeonafunnythin
- Zephyr RTOS 中的 k_timer定时器
目录概述1k_timer主要函数1.1k_timer_start函数1.2k_timer_init函数1.3k_timer_stop函数2典型使用方法2.1周期性数据采集2.2看门狗超时2.3精确时间控制3高级用法3.1定时器组合(多速率系统)3.2带用户数据的定时器3.3定时器链(顺序执行)4k_timer主要函数的用法4.1k_timer_init函数4.2k_timer_start函数4.3
- 【服务器】常用PCIe 5.0 Retimer芯片厂家及型号
都给我
服务器云计算
以下是PCIe5.0Retimer芯片的厂家、型号、应用注意事项及关键指标参数的详细分析,结合PCIe协议特性和硬件设计规范:一、常用PCIe5.0Retimer芯片厂家及型号PCIe5.0Retimer芯片能够有效补偿信道损耗、消除信号抖动,显著提升信号完整性并延长高速信号传输距离。以下是主要厂商产品信息及使用注意事项:主要厂商及产品澜起科技:M88RT51632(16通道)支持PCIe5.0/
- jQuery封装轮播图插件
I_am_the_ZL
这是我自己封装的第一个插件,感觉挺好的,嘿嘿~~~先说使用方法把!swiper("banner2")传入轮播盒子的class名就可以了使用页面的基本结构这个盒子你可以无限遍历支持width:100%;js文件:functionswiper(names){varidxs=0;vartimer=null;varobj=$("."+names);obj.parent().css({"overflow":
- 记一次解题经历-中断和锁的应用实例
折木H.O.
linux
中断和锁的应用实例之自己挖的坑自己填:)题目:请指出如下代码缺陷在哪?前提条件:foo1有可能在进程上下文或中断上下文执行,且假设执行该函数之前没有关闭中断。funcfoo1(void){raw_spin_lock(&lock);/*被保护临界区*/raw_spin_unlock(&lock);}foo2是timercallback,如下:funcfoo2(void){raw_spin_lock(
- 2023全国电赛E题-目标控制与自动追踪系统-电控与图像处理代码(国一)
井incloud《stdi0》;
c语言单片机
本方案在2023年获得全国一等奖,红绿激光主控均采用openmv,能准确识别红绿激光,稳定性强,在初测与复测时均能稳定运行。以下是控制红色激光的openmv内置代码:importsensor,image,time,pyb,lcdfrompybimportUART,Pin,Timer,ServofrompidimportPIDpin1=Pin('P1',Pin.IN,Pin.PULL_DOWN)##
- 线上java程序CPU占用过高问题排查
低调_0c1d
top命令查看CPU、内存等使用情况top定位问题线程ps-mppid-oTHREAD,tid,time[root@web-test~]#ps-mp12571-oTHREAD,tid,timeps-mp17480-oTHREAD,tid,timeUSER%CPUPRISCNTWCHANUSERSYSTEMTIDTIMEroot0.5------10:29:26root0.019-futex_--8
- 51单片机 定时器时钟
微芬
51单片机51单片机单片机
本章博客实现在LCD1602上展示定时器时钟部分1.main.c注:Sec,Min,Hour可不进行赋值#include#include"Delay.h"#include"LCD1602.h"#include"Timer0.h"unsignedcharSec=55,Min=59,Hour=23;voidmain(){LCD_Init();Timer0Init();LCD_ShowString(1,
- Linux 定时器应用示例
1.运行结果2.程序#include#include#includeintcount=0;structitimervalt;voidtimer_handler(intsig){printf("timer_handler:signal=%d,count=%d\n",sig,++count);if(count>=8){printf("canceltimer\n");t.it_value.tv_sec=
- linux 4.14 kernel屏蔽arm arch timer的方法
liuluyang530
ARMv8嵌入式硬件arch_timerarmcoretime
在ARMv7架构的单核CPU系统中,完全禁用coretime时钟中断(通常是ARM私有定时器中断)需要谨慎操作,因为这会导致调度器无法工作,系统可能失去响应。以下是实现方法及注意事项:方法1:通过GIC屏蔽中断(推荐)ARM的时钟中断(通常是PPI中断号30)通过GIC(GenericInterruptController)管理:#include//获取时钟中断号(通常是30)#defineTIM
- Qt 图形视图框架4-动画、碰撞检测和图形项组
Zy100Papa
Qtc++开发实战qt开发语言
1.动画1.1.使用QObject包装器1.2.属性动画(QPropertyAnimation)1.3.定时器动画(QTimer)1.4.场景推进动画(QGraphicsScene::advance)2.碰撞检测1.动画在Qt图形视图框架中,实现动画效果有多种常用方法,下面介绍几种主要方式:以下是在Qt5.15.5(MinGW环境)中实现图形视图框架动画的常用方法,代码已亲测可正常运行:1.1.使
- WPF定时器的使用以及其他三种定时器的介绍
Net中为程序员提供了四种定时器:System.Windows.Forms.Timer类型(Winfrom专用)System.Threading.Timer类型System.Timers.Timer类型System.Windows.Threading.DispatcherTimer类型(WPF专用)这4种类型都实现了定时的功能。程序员通常需要做的是为定时器设置一个间断时间,设置定时器到时后的处理方
- PostgreSQL WAL归档与时间点恢复(PITR):完整技术指南
PostgreSQL的WAL(预写式日志)归档是实现时间点恢复(Point-In-TimeRecovery,PITR)的核心机制。本文深入解析WAL归档的工作原理,详细说明配置步骤,并提供完整的PITR操作流程。通过实际案例演示如何从备份恢复到指定时间点,帮助数据库管理员掌握这一关键技能,确保企业数据安全。一、WAL归档与PITR基础概念1.1WAL(预写式日志)的核心作用WAL(Write-Ah
- 定时器和守护线程
(八)定时器标准库中的定时器标准库中提供了一个Timer类。Timer类的核心方法为schedule,schedule包含两个参数:第⼀个参数指定即将要执行的任务代码,第⼆个参数指定多长时间之后执行(单位为毫秒)。Timertimer=newTimer();timer.schedule(newTimerTask(){@Overridepublicvoidrun(){System.out.print
- 从零玩转CanMV-K230(9)-Timer、RTC、ADC、WDT、File
叶与花语
K230人工智能AIK230python
文章目录前言一、Timer构造函数初始化销毁函数示例代码二、RTC构造函数initdatetime示例代码三、ADCAPI示例代码四、WDTAPI示例代码五、File示例代码总结前言本章介绍K230常用外设的使用方法,相关内容的详细介绍可以参考K210的教程,这里主要展示K230的使用代码一、Timer定时器(Timer)的作用在于生成精确的计时,当达到预设的时间点时,提醒我们进行特定的操作。Ti
- 【k230基础教程之ADC,RTC,TIMER,WDT】
k230基础教程之ADC,RTC,TIMER,WDT一,ADC1.read_u16方法2.read_uv方法示例二,RTC1.init方法2.detatime方法示例三,TIMER(定时器)1.init方法2.deinit方法软件定时器控制LED灯四,WDT(看门狗)1.feed方法示例本教程皆来自立创官方教程,为博主学习使用所记录,使用开发板为立创的庐山派,如有需求可自行访问立创官网关于这些外设
- TCP 坚持定时器详解:原理、配置与最佳实践
Dsocc
tcp/ip网络网络协议
一、TCP坚持定时器基础原理1.1坚持定时器的设计目的TCP坚持定时器(TCPPersistTimer)是TCP协议中用于处理接收窗口为零情况的重要机制,其核心设计目的是防止TCP连接在窗口更新ACK丢失时陷入死锁状态。当TCP连接的接收方通告一个窗口大小为0的ACK时,发送方会停止发送数据。如果后续接收方处理了部分数据并发送一个非零窗口通告的ACK报文在网络中丢失,发送方将永远不知道窗口已经重新
- Muduo 定时器
小白书舍
c++网络
TimeQueue定时器图片转载自:muduo网络库源码解析(4):TimerQueue定时机制_李兆龙的技术博客_51CTO博客添加新的定时器TimerIdTimerQueue::addTimer(TimerCallbackcb,//用户自定义回调Timestampwhen,//定时器的超时时刻doubleinterval)//重复触发间隔,小于0则不重复触发{Timer*timer=newTi
- vue 防抖节流
浮桥
scsstypescriptvue.js
//防抖一定时间内事件只执行一次exportfunction_debounce(fn,delay){vardelay=delay||200;vartimer;returnfunction(){varth=this;varargs=arguments;if(timer){clearTimeout(timer);}timer=setTimeout(function(){timer=null;fn.ap
- ros学习之路径规划
许卿768503
学习
一、全局路径规划中的地图1、栅格地图(GridMap)2、概率图(CostMap)3、特征地图(FeatureMap4、拓扑地图(TopologicalMap)二、全局路径规划算法1、Dijkstra算法2、最佳路径优先搜索算法(BFS)3、A*搜索算法双向A*搜索算法重复A*搜索算法AnytimeRepairingA*(ARA*)搜索算法实时学习A*搜索(LRTA*)算法实时适应性A*搜索(RT
- java观察者模式
3213213333332132
java设计模式游戏观察者模式
观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。
在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。
这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。
老鹰会变成观察者,母鸡和小鸡是
- TFS RESTful API 模拟上传测试
ronin47
TFS RESTful API 模拟上传测试。
细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown
模拟POST上传一个图片:
curl --data-binary @/opt/tfs.png http
- PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
dcj3sjt126com
设计模式PHP
// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法
abstract class Tiger {
public abstract function climb();
}
class XTiger extends Tiger {
public function climb()
- hibernate
171815164
Hibernate
main,save
Configuration conf =new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session sess=sf.openSession();
Transaction tx=sess.beginTransaction();
News a=new
- Ant实例分析
g21121
ant
下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。
下面是build.xml的代码:
<?xml version="1
- [简单]工作记录_接口返回405原因
53873039oycg
工作
最近调接口时候一直报错,错误信息是:
responseCode:405
responseMsg:Method Not Allowed
接口请求方式Post.
- 关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别
程序员是怎么炼成的
真正完成类的加载工作是通过调用 defineClass来实现的;
而启动类的加载过程是通过调用 loadClass来实现的;
就是类加载器分为加载和定义
protected Class<?> findClass(String name) throws ClassNotFoundExcept
- JDBC学习笔记-JDBC详细的操作流程
aijuans
jdbc
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。
下面我们就来仔细看一看每一个步骤:
其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。
1、加载数据库驱动并建立到数据库的连接:
Html代码
St
- rome创建rss
antonyup_2006
tomcatcmsxmlstrutsOpera
引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W
- html表格和表单基础
百合不是茶
html表格表单meta锚点
第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,
html是一种标记语言,其实很简单都是固定的格式
_----------------------------------------表格和表单
表格是html的重要组成部分,表格用在body里面的
主要用法如下;
<table>
&
- ibatis如何传入完整的sql语句
bijian1013
javasqlibatis
ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。
解决办法:
<
- 精通Oracle10编程SQL(14)开发动态SQL
bijian1013
oracle数据库plsql
/*
*开发动态SQL
*/
--使用EXECUTE IMMEDIATE处理DDL操作
CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2)
is
sql_statement varchar2(100);
begin
sql_statement:='DROP TABLE '||table_name;
- 【Linux命令】Linux工作中常用命令
bit1129
linux命令
不断的总结工作中常用的Linux命令
1.查看端口被哪个进程占用
通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息
netstat -anp | grep 8085
察看进程ID对应的进程占用的端口号
netstat -anp | grep 进程ID
&
- 优秀网站和文档收集
白糖_
网站
集成 Flex, Spring, Hibernate 构建应用程序
性能测试工具-JMeter
Hmtl5-IOCN网站
Oracle精简版教程网站
鸟哥的linux私房菜
Jetty中文文档
50个jquery必备代码片段
swfobject.js检测flash版本号工具
- angular.extend
boyitech
AngularJSangular.extendAngularJS API
angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数:
- java-谷歌面试题-设计方便提取中数的数据结构
bylijinnan
java
网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。
以下分别用排序数组和大小堆来实现。
使用大小堆:
import java.util.Arrays;
public class MedianInHeap {
/**
* 题目:设计方便提取中数的数据结构
* 设计一个数据结构,其中包含两个函数,1.插
- ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本
Chen.H
ajaxFileUploadie6ie7ie8ie9
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
- [机器人制造原则]机器人的电池和存储器必须可以替换
comsci
制造
机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....
另外,如果一
- Oracle Multitable INSERT 的用法
daizj
oracle
转载Oracle笔记-Multitable INSERT 的用法
http://blog.chinaunix.net/uid-8504518-id-3310531.html
一、Insert基础用法
语法:
Insert Into 表名 (字段1,字段2,字段3...)
Values (值1,
- 专访黑客历史学家George Dyson
datamachine
on
20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来
- 小学6年级英语单词背诵第一课
dcj3sjt126com
englishword
always 总是
rice 水稻,米饭
before 在...之前
live 生活,居住
usual 通常的
early 早的
begin 开始
month 月份
year 年
last 最后的
east 东方的
high 高的
far 远的
window 窗户
world 世界
than 比...更
- 在线IT教育和在线IT高端教育
dcj3sjt126com
教育
codecademy
http://www.codecademy.com codeschool
https://www.codeschool.com teamtreehouse
http://teamtreehouse.com lynda
http://www.lynda.com/ Coursera
https://www.coursera.
- Struts2 xml校验框架所定义的校验文件
蕃薯耀
Struts2 xml校验Struts2 xml校验框架Struts2校验
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 15:54:59 星期六
http://fa
- mac下安装rar和unrar命令
hanqunfeng
mac
1.下载:http://www.rarlab.com/download.htm 选择
RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar
- 三种将list转换为map的方法
jackyrong
list
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String des
- 年轻程序员需要学习的5大经验
lampcy
工作PHP程序员
在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加
- 评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓
nannan408
先来看南方网的一则报道:
再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。
粗暴手术让人发寒
2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。
12月5日,
- 使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件
Everyday都不同
jspinput回车键绑定clickenter
假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:
function search() {
//监听函数略......
}
为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():
//回车绑定
$(".search").keydown(fun
- EXT学习记录
tntxia
ext
1. 准备
(1) 官网:http://www.sencha.com/
里面有源代码和API文档下载。
EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。
(2)帮助文档:
想要查看EXT的官方文档的话,可以去这里h
- mybatis3的mapper文件报Referenced file contains errors
xingguangsixian
mybatis
最近使用mybatis.3.1.0时无意中碰到一个问题:
The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d