- 【跟着博主安装地震数据处理seismic unix】
南瓜胖胖
seismicSUmacoslinux
如何在mac系统安装seismcunix准备工作查看brew版本安装gcc&cmake准备工作要求安装make,gcc,使用brew安装,第一要求安装brew,mac默认是没有这个组件,开始干活/bin/bash-c“$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”复制上面代码,在mac终
- golang 入门
weixin_34102807
golangphpffmpeg
缘起之前下载视频用的you-get,但是b站一直下不了,优酷也经常出问题,所以接触到luluhttps://github.com/iawia002/Lulu这个也是基于you-get直接pipinstalllulu,但是作者不维护了,新出了个https://github.com/iawia002/a...这个不是python开发的,而是go,通过gogetgithub.com/iawia002/a
- error Command failed with exit code 1
泡泡Java
前端html后端asp.netjavascript
从传统JQuery转变到Node.js最烦的就是一接手新项目就得npminstall,浪费大量时间不说还总会报莫明其妙的错误,这次又遇到了一个errorCommandfailedwithexitcode1。因为它的相关处报的问题可能和npm本身有关,我就用yarninstall规避,并且也确实能yarnstart跑通项目。但就在我想把它打包成dist的时候,yarnbuild就又抛出了这么一个问题
- 第一章:认识Tailwind CSS - 第三节 - Tailwind CSS 开发环境搭建和工具链配置
1.必备环境准备Node.js(v14.0.0或更高版本)npm或yarn包管理器代码编辑器(推荐VSCode)2.项目初始化方式方式一:在新项目中使用#创建项目目录mkdirmy-tailwind-projectcdmy-tailwind-project#初始化package.jsonnpminit-y#安装必要依赖npminstall-Dtailwindcsspostcssautoprefix
- webstorm 创建vue3 vite 项目
Lan.W
webstorm前端javascript
打开Webstorm,创建一个空项目直接在当前项目执行创建vue3项目指令,打开主页terminal回车后输入项目名字全部小写字母字打开创建项目项目插件安装npminstall运行:npmrundev
- DIG 命令并启用 EDNS(扩展的DNS协议,EDNS0)
查里王
运维
安装dig命令:dig是由bind-utils(在CentOS/RHEL中)或dnsutils(在Ubuntu/Debian中)软件包提供的工具。支持EDNS的dig版本:现代的dig工具默认支持EDNS,无需额外配置。确保使用最新版本的dig。安装dig命令对于CentOS/RHEL:sudoyuminstall-ybind-utils对于Ubuntu/Debian:sudoaptupdates
- Dapper.Rainbow使用
山歌寥哉
C#Dapper.Rainbow
Dapper.Rainbow使用使用NuGet安装程序包继承Dapper.Rainbow的数据库实现基类获取数据库操作对象DbContext,MSSqlServer为例接下来即可使用使用NuGet安装程序包Install-PackageDapper.Rainbow-Version1.50.5最新安装包在这个链接查看:https://www.nuget.org/packages/Dapper.Rai
- Python机器学习库之scikit-llm使用详解
Rocky006
python开发语言
概要Pythonscikit-llm库是一个用于机器学习的强大工具,它基于scikit-learn库并扩展了一些机器学习算法和功能,可以帮助开发者更轻松地进行机器学习模型的训练和评估。安装可以使用pip工具来安装Pythonscikit-llm库:pip install scikit-llm安装完成后,就可以开始使用scikit-llm库进行机器学习任务了。特性支持多种机器学习算法,如线性回归、逻
- SSH连接虚拟机被拒绝
装B且挨揍の
ssh运维服务器linux经验分享
可能1:虚拟机未下载sshsudoaptinstallopenssh-server可能2:防火墙sudoufwdisable或者sudoufwallow22放行22端口
- FISCO BCOS 区块链浏览器 fisco-bcos-browser
阿祥~
区块链fisocbocs运维
目录环境要求PyMySQL部署CentOSUbuntu拉取安装脚本修改配置部署访问检查问题存在问题环境要求环境版本JavaJDK8或以上版本MySQLMySQL-5.6或以上版本PythonPython3.5+PyMySQL使用python3时需安装PyMySQL部署CentOSsudoyum-yinstallpython36-pipsudopip3installPyMySQLUbuntusudo
- 关于Vue3中使用Echarts,详细指南、常见问题及最佳解决方案
繁若华尘
vueechartsvue.js前端
一、基础集成步骤1.安装依赖npminstallechartsvue-echarts#推荐使用官方维护的vue-echarts组件库#或npminstallecharts--save2.基础使用(CompositionAPI)import{ref,onMounted,onBeforeUnmount,watch}from'vue';import*asechartsfrom'echarts';cons
- 使用LAMP(httpd+php+mariadb)架构搭建zabbix监控系统,已编译安装的形式来安装zabbix,zabbix是监控各种网络参数以及服务器健康性和完整性的软件。
喜欢研究新东西
phpmariadbzabbix
1.首先,准备一台虚拟机,关闭防火墙,setenforce0。#关闭防火墙systemctlstopfirewalld#关闭setenforce0setenforce02.安装php模块#安装phpyuminstall-yphp-cliphp-fpmphp-gdphp-mbstringphp-bcmathphp-xmlphp-ldapphp-mysqlnd3.安装httpd,配置文件(前端),修改
- 如何在已经存在python2的linux环境上安装python3
大胖丫
python
python3终究会成为主流,但是呢如果在在linux中把python2卸载掉,会造成系统中其他需要python执行的程序异常。所以今天,我们教大家怎么在已经存在python2的linux环境上安装python3。享受l新潮更简洁的的python3,也保留python2。python3.4的安装方法[root@localhostinstall]#wgethttps://www.python.org
- Ubuntu 部署ChatGLM3-6B模型_ubuntu 23 chatglm3本地部署(1)
2401_83817971
程序员ubuntulinux运维
sudoubuntu-driversautoinstall安装anacondaanaconda官网下载安装包anaconda下载链接Anaconda3-2024.02-1-Linux-x86_64.sh选择正确的版本进行下载,本次选择Linux版本下载,得到Anaconda3-2024.02-1-Linux-x86_64.sh文件#因为我这里创建好了/root/anaconda3的目录,所以加了-
- 【deepseek】本地部署后api接口的封装
Neo很努力
大模型深度学习自然语言处理AIGCllamalangchainAI-native
文章目录前言一、安装必要的库二、创建FastAPI应用三、运行FastAPI应用四、使用API五、客户端api调用前言本文内容包含如何将Deepseek本地模型的RAG知识库文件读取、对话选择、对话回复和历史对话封装成API供其他应用调用的具体步骤,本地Deepseek模型部署及知识库挂载请参考上篇博客《【deepseek】本地部署+RAG知识库挂载+对话测试》一、安装必要的库pipinstall
- 让浏览器AI起来:基于大模型Agent的浏览器自动化工具
深度学习机器
优质项目大语言模型计算机杂谈人工智能自动化语言模型开源
最近有个非常火的项目,利用大模型Agent驱动浏览器完成各种操作,如网页搜索、爬虫分析、机票酒店预定、股票监控等,号称全面替代所有在浏览器上的操作,试用方式还是比较简单的,以下将进行简单介绍。快速开始通过pip安装:pipinstallbrowser-use安装web自动化框架:playwrightinstallPlaywright微软开源的一个浏览器自动化框架,主要用于浏览器自动化执行web测试
- 基于 Flask 与 MySQL 构建简单的博客系统
lozhyf
工作面试学习flaskmysqlpython
引言在互联网时代,博客是人们分享知识、记录生活的重要平台。借助Python的Flask框架与MySQL数据库,我们可以快速搭建一个简单的博客系统。本文将详细介绍如何从零开始构建这样一个系统,涵盖环境搭建、数据库设计、后端接口实现以及前端页面展示等方面。环境准备安装依赖首先,我们需要安装Flask和MySQL驱动。在命令行中运行以下命令:收起bashpipinstallflaskmysql-conn
- python 使用curl_cffi绕过指纹识别解决ja3指纹
whyyzs
python
初识指纹遇到一个网站,忽然发现无论如何如何更换UA和代理请求都是403curl_cffi可模拟真实浏览器的TLS|JA3指纹。支持JA3/TLS和http2指纹模拟;比requests/tls_client快分开,和aiohttp/pycurl的速度比肩。1.安装库命令pipinstallcurl_cffi2.使用示例fromcurl_cffiimportrequests #Noticetheim
- iperf3 测试云服务性能
查里王
运维
要使用iperf3测试百度云主机的实际带宽,您可以按照以下步骤操作:安装iperf3:首先,您需要在云主机上安装iperf3。在CentOS系统中,可以使用以下命令安装:yum-yinstalliperf3Ubuntu安装命令:sudoapt-getinstalliperf3对于Windows系统,您需要下载并安装iperf31。运行iperf3服务端:在云主机上运行以下命令以启动服务端:复制ip
- Speedtest 测试客户的上/下行带宽
查里王
chrome前端
使用speedtest-cli或ooklaspeedtest命令行工具测试客户的上/下行带宽。以下是两种实现方式的安装和使用方法。方法1:使用speedtest-cli1.1安装speedtest-cli对于大多数Linux系统:curl-shttps://install.speedtest.net/app/cli/install.rpm.sh|sudobashsudoyuminstallspee
- 在Angular项目使用socket.io实现通信
陈仙生
angularsockettypescriptangularnode.js
step1、为项目安装依赖在终端输入以下命令为我们的angular项目安装express、socket.io、socket.io-clientnpminstallexpresssocket.iosocket.io-client本人安装的各版本信息如下:"express":"^4.17.1","socket.io":"^3.0.4","socket.io-client":"^3.0.4",step2
- fedora RTL8821CE 无线网卡驱动安装
only火车头
linux
更新fedora38后,demsg中会报大量的日志:rtw_8821ce0000:02:00.0:unhandledfirmwarec2hinterrupt如果遇到上面的信息,需要更新无线网卡驱动,方法参考:https://github.com/tomaspinho/rtl8821ce1.安装编译工具及依赖sudodnfinstallgitbckernel-develmakegccdkms-y2.
- Flask flash() 消息示例
魔尔助理顾问
PythonFlaskWeb开发案例flaskpython后端
目录安装Flask入门:Flaskflash()基本示例进阶:使用Flask-WTFFlash登录结果消息详解:get_flashed_messages()详解:flash()消息的完整生命周期Flask提供flash()用于向用户传递临时消息,通常用于:•表单提交成功或失败•用户登录、注册、退出提醒•系统通知(如权限不足、错误信息)安装Flaskpipinstallflask入门:Flaskfl
- Python Selenium网页自动化
AixXiang
pythonselenium自动化
Selenium是一个自动化测试工具,主要用于模拟用户在Web应用程序中的交互操作。虽然它最初被设计用于自动化测试,但也被广泛用于网页数据抓取、网页自动化操作和网页测试。1.安装和设置Selenium首先,需要安装Selenium库。使用pip来安装Selenium:pipinstallselenium此外,需要下载并安装一个浏览器驱动程序,以便Selenium可以与浏览器进行通信。Seleniu
- 常用 Webpack Plugin 汇总
懒羊羊我小弟
前端工程化webpack前端node.jsnpmyarn
一、HtmlWebpackPlugin⭐⭐⭐⭐⭐作用自动生成HTML文件,并将打包后的JavaScript、CSS等资源自动注入到生成的HTML文件中。当打包文件名包含哈希值时,能避免手动引入资源的繁琐。使用场景单页或多页应用开发中,只要需生成HTML并引入打包资源即可使用。语法介绍npminstallhtml-webpack-plugin--save-devconstHtmlWebpackPlu
- 基于Ubuntu坏境下的Suricata坏境搭建
yyytucj
ubuntulinux运维
在Ubuntu环境下搭建Suricata环境的步骤如下:更新系统:首先,需要更新Ubuntu系统的软件包列表,可以使用以下命令:sudoapt-getupdate安装依赖:Suricata的安装需要一些依赖,可以通过以下命令进行安装:sudoapt-getinstalllibpcre3libpcre3-dbglibpcre3-devbuild-essentiallibpcap-dev\libnet
- 如何在MacOS上安装JMeter
Kinno酱
测试macosjmeter压力测试
国外文章教程:https://tejaksha-k.medium.com/a-step-by-step-guide-how-to-install-apache-jmeter-on-macos-6a9eb8bf3463老师课程主页:https://automationstepbystep.com/逐步指南:如何在macOS上安装ApacheJMeter介绍ApacheJMeter是一个功能强大的开源
- 基于Python开发的海关报表自动识别系统的示例代码
go5463158465
python深度学习算法python开发语言
以下是一个基于Python开发的海关报表自动识别系统的示例代码,该系统包含输入报表、预处理、分类识别、文本检测和生成报表的基本功能。本示例主要使用了pytesseract进行文本识别,opencv-python进行图像预处理,同时简单模拟了报表分类的逻辑。环境准备在运行代码之前,需要安装以下库:pipinstallopencv-pythonpytesseractpandas此外,还需要安装Tess
- 基于深度学习进行呼吸音检测的详细示例
go5463158465
算法深度学习深度学习人工智能
以下是一个基于深度学习进行呼吸音检测的详细示例,我们将使用Python语言以及一些常见的深度学习库(如TensorFlow、Keras)和数据处理库(如numpy、pandas),同时会用到音频处理库librosa。整个流程包括数据加载、预处理、模型构建、训练和评估。步骤1:安装必要的库在开始之前,确保你已经安装了以下库:pipinstalltensorflowlibrosanumpypandas
- 本地私有jar发布到maven本地仓库
rosyouth
mavenjarjava
如果不是开源的第三方jar,又需要在maven中导入,为了方便,可以将本地私有jar发布到maven本地仓库。比如oracle数据库的jar包,或自己编写的私有jar包。安装好maven后,配置M2_HOME为其bin目录。执行如下命令:mvninstall:install-file-Dfile=jar包的位置-DgroupId=上面的groupId-DartifactId=上面的artifact
- 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