- python 实现 延时队列
独壹@无贰
python开发语言
python实现延时队列#延时队列importthreadingimportfunctoolsimportqueueimportdatetimedeftest():print("执行成功")defseconds_chagne(dt):returndt.seconds+dt.days*24*60*60#延迟任务类classDelayTask:#delay_time即将过期的时间#task参与延迟的任
- python中用docx将doc文件转换为docx文件
小X天天向上
python开发语言
importosfromwin32comimportclientdefdoc_to_docx(path):ifnotos.path.isabs(path):print("不是绝对路径")returnifnot
- Python 删除文件与文件夹 - 奇客谷教程
八狐云|酷画册|二维码生成
pythonPython教程python
Python教程Python介绍Python开发环境搭建Python语法Python变量Python数值类型Python类型转换Python字符串(String)Python运算符Python列表(list)Python元组(Tuple)Python集合(Set)Python字典(Dictionary)PythonIf…ElsePythonWhile循环PythonFor循环Python函数Pyt
- 【Python】爬虫实战03:自动化抢票脚本【某麦网】
m0_74825152
python爬虫自动化
1.脚本介绍1.1背景介绍在这个数字化时代,演唱会、体育赛事和各种活动的门票销售往往在线上进行。由于热门活动的高需求和门票的有限供应,抢票成为了一场激烈的竞争。许多粉丝和爱好者经常因为手速不够快或网络延迟而错失购票机会。为了提高抢票的成功率,自动化抢票脚本应运而生。以下这个脚本是一个用Python编写的自动化抢票程序,利用Selenium库来模拟用户在网页上的操作。下面是脚本的详细功能和结构介绍:
- 批量将.doc文件转换为.docx文件的Python脚本优化
袁公白
pythonc#microsoft
在本篇博客中,我将分享如何使用Python编写一个脚本,可以批量将一个文件夹中的所有.doc文件转换为.docx文件。这个脚本利用了Python的win32com库来操作Word应用程序进行文件格式转换,并通过tkinter库中的filedialog模块实现文件夹选择对话框,让用户选择需要转换的文件夹路径。首先,我们定义了两个函数:doc_to_docx用于将单个.doc文件转换为.docx文件,
- 在 Python 中等待 5 秒
迹忆客
Python实用技巧pythonjava前端
Python具有各种功能和库来创建交互式应用程序,用户可以在其中提供输入和响应。我们可以创建需要暂停应用程序执行的情况。本篇文章将讨论如何在Python中等待5秒。在Python中使用time.sleep()函数等待5秒Python的time模块提供了存储和操作时间的功能和对象。该库中的sleep()函数增加了执行延迟;该函数接受以秒为单位的时间。例如,importtimeprint("Befor
- [转载]Python量化交易平台开发教程系列0-引言
dijiesa4351
c#操作系统c/c++
原文出处:http://vnpy.org/2015/03/04/20150304_Python%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93%E5%B9%B3%E5%8F%B0%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B%E7%B3%BB%E5%88%970-%E5%BC%95%E8%A8%80/为什么用Python来开发量化交易平台目前本人所
- os模块
datbgd1130
python
os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径os.path.abspath(path)返回path规范化的绝对路径os.path.split(path)将path分割成目录和文件名二元组返回os.path.dirname(path)返回path的目录。其实就是os.path.split(path)的第一个元素os.path.basename(path)返回path最
- python 快速拆分含有多种分隔符的字符串
风陵苑主
python
importres='ab;cd|efghij,lmn;opq,rst,uvwx\yz're.split(r'[,;\\|]+',s)
- 华为OD机试 -TLV解码(Java & Python& JS & C++ & C )
算法大师
最新华为OD机试c++java华为od华为华为od机试pythonjavascript
最新华为OD机试真题目录:点击查看目录华为OD面试真题精选:点击立即查看题目描述TLV编码是按[TagLengthValue]格式进行编码的,一段码流中的信元用Tag标识,Tag在码流中唯一不重复,Length表示信元Value的长度,Value表示信元的值。码流以某信元的Tag开头,Tag固定占一个字节,Length固定占两个字节,字节序为小端序。现给定TLV格式编码的码流,以及需要解码的信元T
- 股票量化交易进阶:构建回测框架backtrader
InUnix
python开发语言
在量化交易领域,回测是一个重要的环节。回测框架可以帮助我们验证投资策略的有效性,并评估其在历史数据上的表现。backtrader是一个功能强大且灵活的Python回测框架,它为量化交易提供了丰富的工具和功能。本文将介绍如何使用backtrader构建一个简单的回测系统,并给出相应的源代码示例。首先,我们需要安装backtrader库。可以使用pip命令进行安装:pipinstallbacktrad
- Python延时函数详解及实例代码
HackDyno
pythonjava前端Python
Python延时函数详解及实例代码在Python编程中,有时我们需要在程序中添加延时,以便在执行特定操作之前等待一段时间。延时函数允许我们在代码中创建一个暂停的时间间隔。本文将详细介绍Python中的延时函数,并提供一些实例代码供参考。Python中的延时函数可以通过time模块来实现。time模块是Python标准库中的一部分,提供了与时间相关的函数和方法。我们可以使用time.sleep()函
- Python中删除文件和目录
湫兮之风
pythonjava开发语言
python中分别提供os包下的os.remove()与shutil包下的shutil.rmtree()函数,其中os.remove()的主要作用是删除一个具体的文件,shutil.rmtree()主要作用是删除一个具体的目录。os.remove()这个函数需要一个参数,即要删除的文件的路径。importosfile_path="/path/to/your/file.txt"#将此处的路径替换为你
- python os.path.basename()方法
Arthur-Ji
python
返回path最后的文件名。如果path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。?12345>>>importos>>>path='/Users/beazley/Data/data.csv'>>>#Getthelastcomponentofthepath>>>os.path.basename(path)'data.csv'
- Python path模块
倾听冷暖
python策略模式开发语言
在Python中,你可能说的是os.path模块(它属于os模块下专门处理路径相关操作的部分)或者是pathlib模块(Python标准库中用于面向对象风格的路径操作模块),以下分别为你详细介绍这两种与路径相关的内容:os.path模块os.path模块提供了一系列用于处理文件路径的实用函数,能帮助开发者方便地操作路径、获取路径相关信息等,且可以适配不同的操作系统(Windows、Linux、ma
- 差分进化算法(Differential evolution,DE)(附详细注释的Python代码)
XijueJa
算法python开发语言
概念与基本原理差分进化算法(DifferentialEvolution,简称DE)是一种基于种群的随机优化算法,由Storm和Price在1995年提出。它主要应用于解决非线性、非凸、连续和离散的优化问题。DE算法以其简单性、鲁棒性和高效性而受到广泛关注。差分进化算法的基本思想是通过模拟自然进化过程中的遗传和变异机制来寻找问题的最优解,类似于遗传算法。通过变异、交叉与选择,使得初始化的种群不断朝最
- Python常用OS库之path模块学习
风陵苑主
python学习
学习python没有太多捷径,有也只有技巧,更重要的是要多学多练,个人觉得练更重要,读万卷书不如行万里路。编程是一门技能,所以除了看还要多实践,写得多了自然也就有了路。如果看全部的标准库文档,可以访问这个链接os---多种操作系统接口—Python3.12.3文档接下来就来敲敲OS库下的path方法,这里只是记录一下,搬运工作,加深印象。那就开始吧。os.path常用方法一、os.path.abs
- python 删除文件、目录(文件夹)
2301_78094384
pythonpython
最近使用python进行文件,目录的操作,实在难以相信,python这么简单,易用的语言,竟然没有一个库很好的支持删除文件、目录(文件夹),于是把最近收集到的一些信息做下整理。删除文件:Pathlib:file_path.unlink()os:os.remove(file_path)删除目录(文件夹):空目录(Path库):dir_path.rmdir()非空目录(shutil):shutil.r
- python与mysql的交互(一)
xiaoking32
Pythonpython
python与mysql的交互(一)在mac上装mysqlpython操作mysql的步骤解析sql注入什么是sql注入?怎么防止?在mac上装mysql下载mysqlformac:https://dev.mysql.com/downloads/mysql/解压dmg文件,点击pkg文件进行安装Continue->Continue,Agree->Install->输入管理员密码->设置root用户
- 手把手教你 AI 顾投:在 Ollama 中使用 Python 调用金融 API 服务
老余捞鱼
AI探讨与学习人工智能python金融llama
作者:老余捞鱼原创不易,转载请标明出处及原作者。写在前面的话:尽管Ollama本身不是一个大型语言模型(LLM)开发工具,而是一个LLM的平台。但它最近宣布了其系统中直接使用工具调用的功能,本文主要介绍了最新版本的主要更新,特别是关于功能调用的使用,并演示了如何在Ollama中使用Python调用外部API服务。一、部署Ollama在本地运行1.1设置开发环境在开始编写代码之前,最好的做法是建立一
- 水位监测系统|远程水位监测|水位自动监测
Susie酱
科技自动驾驶物联网
计讯物联水位监测系统,远程自动化全方位实时监控。监测点部署包括:目标因子采集传感器及仪器仪表、无线采集通信终端-水利RTU、数据实时采集自动上报,管理人员可通过监控中心平台远程监控,动态掌握监测点水位信息,数据分析处理,为政策规划提供决策依据,异常数据告警提示避免水生态灾害。远程水位自动监测系统组成感知层:水位计、雨量计、流量计、工业摄像头、(水质检测仪)网络传输层:计讯物联水利RTU遥测终端应用
- “AI 自动化效能评估系统:开启企业高效发展新征程
上海拔俗网络
java团队开发
在当今数字化飞速发展的时代,企业面临着日益激烈的市场竞争,如何提升效率、降低成本成为了企业生存与发展的关键。AI自动化效能评估系统应运而生,它如同一把智能钥匙,为企业开启了高效发展的新征程。AI自动化效能评估系统,简单来说,就是利用人工智能技术对企业的各项业务流程、生产环节以及员工工作表现等进行全方位、自动化的评估。它能够快速收集海量的数据,并通过先进的算法模型对这些数据进行深度分析,从而精准地判
- 基于深度学习的推荐系统构建:Movielens 数据集
fresh的转码之路
深度学习人工智能机器学习推荐算法
基于深度学习的推荐系统构建:Movielens数据集依赖环境代码语言:python3.11.5开发平台:pycharmtensorflow版本:2.18.0MovieLen1M数据及简介MovieLens1M数据集包含包含6000个用户在近4000部电影上的100万条评分,也包括电影元数据信息和用户属性信息。下载地址为:http://files.grouplens.org/datasets/mov
- 深入剖析:Unix 系统管理的高级实践与技巧
Echo_Wish
让你快速入坑运维运维探秘unix服务器
深入剖析:Unix系统管理的高级实践与技巧作为一名系统管理员,掌握Unix系统的基础操作只是起点。高级实践要求你不仅能够高效处理复杂任务,还需优化系统性能、自动化日常操作,并确保系统的安全性与可靠性。本文将带你探讨Unix系统管理的一些高级实践,结合实际案例与代码,帮助你提升技能。一、系统性能优化:从监控到调优1.性能监控:识别瓶颈性能优化的第一步是监控系统,找出瓶颈所在。Unix提供了一些强大的
- PyMySQL 详解
一只猪皮怪5
SQL数据库mysqlpython
PyMySQL是一个纯Python实现的MySQL客户端操作库,支持事务、存储过程、批量执行等。PyMySQL遵循Python数据库APIv2.0规范,并包含了pure-PythonMySQL客户端库。安装pipinstallPyMySQL创建数据库连接importpymysqlconnection=pymysql.connect(host='localhost',port=3306,user='
- python界面小游戏贪吃蛇_用Python实现童年小游戏贪吃蛇
weixin_39627052
python界面小游戏贪吃蛇
贪吃蛇作为一款经典小游戏,早在1976年就面世了,我最早接触它还是在家长的诺基亚手机中。尽管贪吃蛇的历史相对比较久远,但它却有着十分顽强的生命力,保持经久不衰,其中很重要的原因便是游戏厂家不断的对其进行更新迭代。现在,这款游戏无论是游戏场景、规则等都变得十分丰富。接下来,我们看一下如何通过Python简单的实现这款小游戏。规则要有游戏主界面、贪吃蛇、食物能够控制贪吃蛇移动并获取食物贪吃蛇吃了食物后
- python怎么安装pymysql_Python中操作mysql的pymysql模块详解
weixin_39634876
前言pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。本文测试python版本:2.7.11。mysql版本:5.6.24一、安装pip3installpymysql二、使用操作1、执行SQL#!/usr/bin/envpytho#-*-coding:utf-8-*-importpymysql#创
- 用python操作浏览器的三种方式_经验 | python 操作浏览器的三种方式
weixin_39642619
第一种:selenium导入浏览器驱动,用get方法打开浏览器,例如:importtimefromseleniumimportwebdriverdefmac():#browser=webdriver.Chrome()#browser=webdriver.Firefox()browser=webdriver.Ie()browser.implicitly_wait(5)browser.get("htt
- python与mysql交互_Python和Mysql交互
weixin_39703561
python与mysql交互
安装引入模块~安装mysql模块sudoapt-getinstallpython-mysqldb~在文件中引入模块importMySQLdbConnection对象用于建立与数据库的连接,创建对象:调用connect()方法conn=MySQLdb.connect(参数列表)其中参数列表有:host:连接的mysql主机,如果本机是'localhost';port:连接的mysql主机的端口,默认
- python中redirect如何传值_传递参数时重定向 - python
叫我柴先生
在烧瓶中,我可以这样做:render_template("foo.html",messages={'main':'hello'})如果foo.html包含{{messages['main']}},则页面将显示hello。但是,如果有一条通往foo的路线怎么办:@app.route("/foo")defdo_foo():#dosomelogicherereturnrender_template("f
- Java实现的简单双向Map,支持重复Value
superlxw1234
java双向map
关键字:Java双向Map、DualHashBidiMap
有个需求,需要根据即时修改Map结构中的Value值,比如,将Map中所有value=V1的记录改成value=V2,key保持不变。
数据量比较大,遍历Map性能太差,这就需要根据Value先找到Key,然后去修改。
即:既要根据Key找Value,又要根据Value
- PL/SQL触发器基础及例子
百合不是茶
oracle数据库触发器PL/SQL编程
触发器的简介;
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用,
一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行,
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发
- [时空与探索]穿越时空的一些问题
comsci
问题
我们还没有进行过任何数学形式上的证明,仅仅是一个猜想.....
这个猜想就是; 任何有质量的物体(哪怕只有一微克)都不可能穿越时空,该物体强行穿越时空的时候,物体的质量会与时空粒子产生反应,物体会变成暗物质,也就是说,任何物体穿越时空会变成暗物质..(暗物质就我的理
- easy ui datagrid上移下移一行
商人shang
js上移下移easyuidatagrid
/**
* 向上移动一行
*
* @param dg
* @param row
*/
function moveupRow(dg, row) {
var datagrid = $(dg);
var index = datagrid.datagrid("getRowIndex", row);
if (isFirstRow(dg, row)) {
- Java反射
oloz
反射
本人菜鸟,今天恰好有时间,写写博客,总结复习一下java反射方面的知识,欢迎大家探讨交流学习指教
首先看看java中的Class
package demo;
public class ClassTest {
/*先了解java中的Class*/
public static void main(String[] args) {
//任何一个类都
- springMVC 使用JSR-303 Validation验证
杨白白
springmvc
JSR-303是一个数据验证的规范,但是spring并没有对其进行实现,Hibernate Validator是实现了这一规范的,通过此这个实现来讲SpringMVC对JSR-303的支持。
JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。
登录需要验证类
public class Login {
@NotEmpty
- log4j
香水浓
log4j
log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, HTML, DATABASE
#log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, ROLLINGFILE, HTML
#console
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4
- 使用ajax和history.pushState无刷新改变页面URL
agevs
jquery框架Ajaxhtml5chrome
表现
如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。
是什么有这么强大的功能呢?
HTML5里引用了新的API,history.pushState和history.replaceState,就是通过
- centos中文乱码
AILIKES
centosOSssh
一、CentOS系统访问 g.cn ,发现中文乱码。
于是用以前的方式:yum -y install fonts-chinese
CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。
后来,终于找到以下方法可以解决,需要两个中文支持的包:
fonts-chinese-3.02-12.
- 触发器
baalwolf
触发器
触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before 
- JS正则表达式的i m g
bijian1013
JavaScript正则表达式
g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。 i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。 m:表示
- HTML5模式和Hashbang模式
bijian1013
JavaScriptAngularJSHashbang模式HTML5模式
我们可以用$locationProvider来配置$location服务(可以采用注入的方式,就像AngularJS中其他所有东西一样)。这里provider的两个参数很有意思,介绍如下。
html5Mode
一个布尔值,标识$location服务是否运行在HTML5模式下。
ha
- [Maven学习笔记六]Maven生命周期
bit1129
maven
从mvn test的输出开始说起
当我们在user-core中执行mvn test时,执行的输出如下:
/software/devsoftware/jdk1.7.0_55/bin/java -Dmaven.home=/software/devsoftware/apache-maven-3.2.1 -Dclassworlds.conf=/software/devs
- 【Hadoop七】基于Yarn的Hadoop Map Reduce容错
bit1129
hadoop
运行于Yarn的Map Reduce作业,可能发生失败的点包括
Task Failure
Application Master Failure
Node Manager Failure
Resource Manager Failure
1. Task Failure
任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被A
- 记一次数据推送的异常解决端口解决
ronin47
记一次数据推送的异常解决
需求:从db获取数据然后推送到B
程序开发完成,上jboss,刚开始报了很多错,逐一解决,可最后显示连接不到数据库。机房的同事说可以ping 通。
自已画了个图,逐一排除,把linux 防火墙 和 setenforce 设置最低。
service iptables stop
- 巧用视错觉-UI更有趣
brotherlamp
UIui视频ui教程ui自学ui资料
我们每个人在生活中都曾感受过视错觉(optical illusion)的魅力。
视错觉现象是双眼跟我们开的一个玩笑,而我们往往还心甘情愿地接受我们看到的假象。其实不止如此,视觉错现象的背后还有一个重要的科学原理——格式塔原理。
格式塔原理解释了人们如何以视觉方式感觉物体,以及图像的结构,视角,大小等要素是如何影响我们的视觉的。
在下面这篇文章中,我们首先会简单介绍一下格式塔原理中的基本概念,
- 线段树-poj1177-N个矩形求边长(离散化+扫描线)
bylijinnan
数据结构算法线段树
package com.ljn.base;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/**
* POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177
- HTTP协议详解
chicony
http协议
引言
- Scala设计模式
chenchao051
设计模式scala
Scala设计模式
我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的。基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论。翻译
- 安装mysql
daizj
mysql安装
安装mysql
(1)删除linux上已经安装的mysql相关库信息。rpm -e xxxxxxx --nodeps (强制删除)
执行命令rpm -qa |grep mysql 检查是否删除干净
(2)执行命令 rpm -i MySQL-server-5.5.31-2.el
- HTTP状态码大全
dcj3sjt126com
http状态码
完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request
- asihttprequest上传图片
dcj3sjt126com
ASIHTTPRequest
NSURL *url =@"yourURL";
ASIFormDataRequest*currentRequest =[ASIFormDataRequest requestWithURL:url];
[currentRequest setPostFormat:ASIMultipartFormDataPostFormat];[currentRequest se
- C语言中,关键字static的作用
e200702084
C++cC#
在C语言中,关键字static有三个明显的作用:
1)在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。
一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访
- win7/8使用curl
geeksun
win7
1. WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。 下载地址:
http://curl.haxx.se/download.html 请选择不带SSL的版本,否则还需要安装SSL的支持包 2. 可以给Windows增加c
- Creating a Shared Repository; Users Sharing The Repository
hongtoushizi
git
转载自:
http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ Commands discussed in this section:
git init –bare
git clone
git remote
git pull
git p
- Java实现字符串反转的8种或9种方法
Josh_Persistence
异或反转递归反转二分交换反转java字符串反转栈反转
注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客:
http://josh-persistence.iteye.com/blog/2205768
/**
*
*/
package com.wsheng.aggregator.algorithm.string;
import java.util.Stack;
/**
- 代码实现任意容量倒水问题
home198979
PHP算法倒水
形象化设计模式实战 HELLO!架构 redis命令源码解析
倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C
- Druid datasource
zhb8015
druid
推荐大家使用数据库连接池 DruidDataSource. http://code.alibabatech.com/wiki/display/Druid/DruidDataSource DruidDataSource经过阿里巴巴数百个应用一年多生产环境运行验证,稳定可靠。 它最重要的特点是:监控、扩展和性能。 下载和Maven配置看这里: http
- 两种启动监听器ApplicationListener和ServletContextListener
spjich
javaspring框架
引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器
ServletContextListener
特点: 依赖于sevlet容器,需要配置web.xml
使用方法:
public class StartListener implements
- JavaScript Rounding Methods of the Math object
何不笑
JavaScriptMath
The next group of methods has to do with rounding decimal values into integers. Three methods — Math.ceil(), Math.floor(), and Math.round() — handle rounding in differen