- Jenkins Pipeline(二)
tomorrow.hello
Mavenjenkins运维
1.Pipeline变量在Jenkins管道(Pipeline)中,变量是一种非常有用的功能,它们可以帮助你在构建过程中存储和传递数据。Jenkins管道支持多种方式来定义和使用变量,包括环境变量、脚本变量以及全局变量。1.2脚本变量在pipeline脚本中,你可以使用Groovy脚本来定义和操作变量。pipeline{agentanystages{stage('Example'){steps{s
- CTFSHOW-WEB-36D杯
wyjcxyyy
前端android
给你shell这道题对我这个新手还是有难度的,花了不少时间。首先f12看源码,看到?view_source,点进去看源码location.href=\'./index.php\'');if(!isset($_GET['code'])){show_source(__FILE__);exit();}else{$code=$_GET['code'];if(!preg_match($secret_waf,
- OpenWebUI(8)源码学习-后端utils/telemetry追踪遥测模块
目录目录结构说明`constants.py`核心作用:主要功能:示例代码片段:`exporters.py`核心作用:主要类:`LazyBatchSpanProcessor`特点:技术亮点:`instrumentors.py`核心作用:插桩对象包括:钩子函数(Hooks):Instrumentor类:插桩流程:`setup.py`核心作用:主要功能:典型调用方式:✨总体架构与价值技术亮点总结✅开发建
- linux-权限管理
linux-权限管理一、权限的基本类型二、权限的表示方式1.字符形式(rwx)2.数字形式三、权限管理常用命令1.chmod2.chown3.chgrp四、隐藏权限1.lsattr2.chattr五、权限掩码六、特别权限位1.suid2.sgid3.StickyBit七、权限委托1.授权用户2.授权组里的用户3.使用命令别名授权八、ACL1.getfacl2.setfacl总结一、权限的基本类型读
- jenkins 自动化部署之后,不允许在工具上查看源代码
小疯仔
jenkins自动化运维
先来展示一下最终的效果在没有如何操作之前的时候,这个Jenkins部署完成之后会在工具上留有源代码,能点击进去,部署到甲方的服务器上的时候会被看到,这样就会造成源码泄露解决方案可以在Jenkinsfile文件中加入以下代码pipeline{agentanytools{nodejs'nodejs16.20.2'}//步骤stages{}//新增post阶段:在流水线结束后清理工作区post{alwa
- 实现el-date-picker带时分秒(附默认时间)
htmldatatime:'',pickerOptions:{showTime:true,format:'yyyy-MM-ddHH:mm:ss'//可以根据需要设置日期时间的显示格式},带默认时间,需要到一个插件momentdataCreateTime:[moment().subtract(30,'days').format('YYYY-MM-DD'),moment().format('YYYY-
- ffmpeg下编译tsan
泰勒朗斯
FFmpegffmpeg
如何在ffmpeg下编译tsan,如下配置:./configure\--prefix=/workspace/ffmpeg_gcu\--disable-stripping\--disable-optimizations\--disable-x86asm\--toolchain=gcc-tsan\--enable-pic\--enable-swscale\--enable-static\--enabl
- 探索Spring Batch的终极指南:高效批处理解决方案
水照均Farrah
探索SpringBatch的终极指南:高效批处理解决方案def-guide-spring-batchSourceCodeforTheDefinitiveGuidetoSpringBatchbyMichaelMinella项目地址:https://gitcode.com/gh_mirrors/de/def-guide-spring-batch项目介绍欢迎来到《TheDefinitiveGuideto
- huggingface 笔记: Trainer
UQI-LIUWJ
笔记人工智能
Trainer是一个为Transformers中PyTorch模型设计的完整训练与评估循环只需将模型、预处理器、数据集和训练参数传入Trainer,其余交给它处理,即可快速开始训练自动处理以下训练流程:根据batch计算loss使用backward()计算梯度根据梯度更新权重重复上述流程直到达到指定的epoch数1配置TrainingArguments使用TrainingArguments定义训练
- 科研:diffusion生成MNIST程序实现
Menger_Wen
科研:diffusion人工智能机器学习stablediffusionpython
科研:diffusion生成MNIST程序实现第一部分:填写部分的详细解释1.`diffusion.py`中的`batch_extend_like`方法2.`diffusion.py`中的`ode_reverse`方法3.`sde_schedule.py`中的`sde_forward`方法第二部分:逐行解释两个程序1.`diffusion.py`(Diffusion类)`__init__`方法`b
- (4)设计模式-重构
偶像来了
设计模式单元测试java设计模式编程语言
文章目录1.为什么要重构(why)2.重构什么(what)3.什么时候重构(when)4.如何重构(how)5.保证重构不出错,落地的技术手段--单元测试5.1什么是单元测试5.2为什么要写单元测试6.可测试性代码6.1代码的可测试性6.2编写可测试性代码的最有效手段6.3常见的测试性不好的代码7.解耦7.1解耦为何很重要7.2代码是否需要解耦7.3如何给代码解耦1.为什么要重构(why)重构是一
- MySQL常用操作 查看表描述以及表结构、连接数及缓存和性能指标
查看表描述以及表结构查看数据库名SHOWDATABASES;SELECTDATABASE();SELECTDATABASE()AScurrent_database;查看数据库中表的列表SHOWTABLES;SELECTTABLE_NAME,TABLE_COMMENTFROMINFORMATION_SCHEMA.TABLESWHERETABLE_SCHEMA='your_database_name'
- HarmonyOS NEXT学习——@Builder装饰器自定义构建函数
paipaicui
HarmonyOSNEXT
1.自定义组件内使用@Component//自定义组件修饰器structCom{//自定义组件内使用@Build修饰器@Buildershow(){Text('HelloWorld')}build(){this.show()//使用自定义组件内的需要this}}2全局自定义构建函数如果不涉及组件状态变化,建议使用全局的自定义构建方法。//创建全局需要有----function@Builderfun
- PagedAttention和Continuous Batching
流浪大人
大模型深度学习人工智能机器学习
PagedAttention是什么PagedAttention是一种用于优化Transformer架构中注意力机制的技术,主要用于提高大语言模型在推理阶段的效率,特别是在处理长序列数据时能有效减少内存碎片和提高内存利用率。它借鉴了操作系统中虚拟内存分页机制的思想。工作原理传统注意力机制的局限性:传统的注意力机制在处理长序列时,需要为每个位置计算注意力得分并存储中间结果,这会导致内存占用随着序列长度
- MySQL创建索引与索引失效场景
我叫晨曦啊
MySQLmysql数据库sql
查看索引showindexfrom表名;删除索引dropindex索引名on表名;主键索引主键索引是一种特殊的唯一索引,一个表只能有一个主键,一般以表的id字段为主键ALTERTABLE表名ADDPRIMARYKEY(列名);普通索引可以加速查询,但不能约束数据唯一性,可以在查询和插入操作的时候使用普通索引来提升性能createindex索引名on表名(列名);createindex索引名on表名
- 移动端turn.js挖坑总结
进击的金城武
【1】高版本的jquery会导致turning的过程中page溢出半屏。正确版本:【2】可通过css修改翻书的底部颜色及其透明度,默认为transparent。.flipbook.page{background-color:/*底部色*/}【3】在turn.js的源文件2734行通过修改x,y的值可调整peel的大小与角度。flipMethods._showFoldedPage.call(this
- 一文读懂Python+Pytest+Allure+Jenkins+Gitee自动化测试框架,手把手教你搭建
Python+Pytest+Allure+Jenkins+Gitee自动化测试框架一、框架整体架构1.技术栈分工Python:测试脚本开发语言Pytest:测试用例管理和执行引擎Allure:测试报告生成与展示Jenkins:持续集成和任务调度Gitee:代码版本管理和触发机制2.数据流向Gitee代码提交→Jenkins触发构建→Pytest执行用例→生成Allure结果→Jenkins收集报告
- MongoDB入门操作汇总,java开发从入门到实战pdf
阿里自研院
程序员面试后端java
options是可选参数,包括内存及索引的配置展示库下所有集合showcollections向集合插入一条数据db.[collection_name].insertOne({“key”:“value”})db.[collection_name].insert({“key”:“value”})向集合插入多条数据db.[collection_name].insertMany([{“key”:“valu
- MySQL数据库主从复制
KellenKellenHao
数据库mysql
概述1、master开启二进制日志记录2、slave开启IO进程,从master中读取二进制日志并写入slave的中继日志3、slave开启SQL进程,从中继日志中读取二进制日志并进行重放4、最终,达到slave与master中数据一致的状态,我们称作为主从复制的过程。基础环境设置防火墙和上下文#主从[root@slave~]#systemctldisable--nowfirewalldRemov
- web渗透sql注入1之access
合作小小程序员小小店
计算机网络性能优化网络攻击模型网络安全安全性测试
web渗透sql注入1之access环境搭建:win2003+asp+access数据库特性:access数据库没有root,不能读写文件,不能执行命令,只能借助字典得到数据注入方式:联合注入偏移注入注入过程:1)判断当前表有多少列,Howmushcolumnsnumber?id=1orderby23?id=1orderby52)获取数据库Getdatabase?id=1unionselect1,
- Github 2024-05-07 开源项目日报 Tp10
老孙正经胡说
github开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,今日(2024-05-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量TypeScript项目4JupyterNotebook项目2Python项目1Batchfile项目1非开发语言项目1Java项目1HTML项目1C#项目1从零开始构建你喜爱的技术创建周期:2156天Star数量:253338个Fork数量:240
- 运维系列&Linux系列【仅供参考】:Ubuntu 16 永久修改ulimit中的max file open限制
坦笑&&life
运维运维linuxubuntu
Ubuntu16永久修改ulimit中的maxfileopen限制Ubuntu16永久修改ulimit中的maxfileopen限制摘要正文Ubuntu16永久修改ulimit中的maxfileopen限制摘要本文介绍如何在Ubuntu16系统中增加最大文件打开数限制,通过修改系统配置文件来实现对nginx等服务中worker_connections参数的有效提升。正文Ubuntu16–howto
- jenkins启动报错,一直无法启动
jenkins启动报错,一直无法启动问题背景服务器:阿里云ECS操作系统:Centos7Jenkins版本:2.405通过添加jenkins仓库进行安装,安装成功,但是未能启动成功,一直处于失败状态解决方式1、检查用户权限sudopasswd-Sjenkins#提示信息如下,说明jenkins用户被锁定了jenkinsLK2024-09-13-1-1-1-1(Passwordlocked.)2、检
- 查看mysql表_mysql怎么查看表
碃凡瑶
查看mysql表
mysql中查看表的方法:1、查看当前数据库中的表SHOWTABLES;2、查看表结构showcolumnsfrom表名;show命令可以提供关于数据库、表、列,或关于服务器的状态信息。常用show命令:#显示二进制文件以及文件大小(需要开启二进制日志记录功能)SHOW{BINARY|MASTER}LOGS#显示二进制文件的执行过程SHOWBINLOGEVENTS[IN'log_name'][FR
- 破解FPS主线程阻塞的终极方案
你一身傲骨怎能输
FPS射击游戏高级技术专栏性能优化
文章摘要FPS游戏中主线程等待其他线程(如物理、AI等)会引发性能瓶颈,导致帧率下降和卡顿。常见原因包括同步点过多、任务分配不均、锁滥用和数据依赖过强。优化方法包括:1)减少硬等待,采用异步处理;2)任务分解和负载均衡;3)使用无锁同步;4)流水线分阶段处理;5)设置超时降级策略。引擎层面可利用Unity的JobSystem或Unreal的TaskGraph系统进行优化。关键是通过Profiler
- Visual Studio 代码折叠快捷键(摘要)
简单的绿竹
VisualStudiovisualstudioide
https://www.likecs.com/show-205302341.html#sc=365.3333435058594代码编辑器的展开和折叠代码确实很方便和实用。以下是展开代码和折叠代码所用到的快捷键,很常用:Ctrl+M+O:折叠所有方法Ctrl+M+M:折叠或者展开当前方法Ctrl+M+L:展开所有方法工具箱的的不见的问题:按快捷键Ctrl+Alt+X全屏:Shift+Alt+Ente
- 1.线性神经网络--线性回归
温柔济沧海
深度学习神经网络线性回归python
1.1从零实现线性回归importrandomimporttorch#fromd2limporttorchasd2limportmatplotlib.pyplotaspltdeftrain_data_make(batch_size,X,y):num_examples=len(X)idx=list(range(num_examples))#生成0-999random.shuffle(idx)#样本需
- Subversion简单常用问题解决方案列表
lddongyu
maven/ant/svnsubversiontortoisesvnsvn服务器apacheeclipse
----------------------------------------eclipse使用subclipse导致jvm崩溃将环境变量APR_ICONV_PATH改为APR_ICONV1_PATH或者下载Subversion1.4.3的zip包,将环境变量APR_ICONV_PATH指向解压后的iconv文件夹。http://doc.iusesvn.com/show-35-1.html---
- 条件渲染 v-show与v-if
v-show和v-if的区别1、渲染的机制不同v-show是通过控制css的display元素也决定元素是否要显示,而v-if则是完全销毁与重建该元素及其子元素,当v-if条件为true时则渲染该元素并将其留在dom中,当条件为false时则将其元素及其子元素从dom中移除。2、渲染的开销不同v-if时惰性的,如果初始条件为false则什么也不做,也不会触发组件的生命周期钩子;只有当首次条件为tr
- finalshell连不上VM创建的centos7,centos7也 ping不通网关问题检查
三阶码叟
网络centos7
1、centos7ping不通,用ipaddrshow命令检查ipaddrshow[root@localhostatguigu]#ipaddrshow1:lo:mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet127.0.0.1/8sco
- 对于规范和实现,你会混淆吗?
yangshangchuan
HotSpot
昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:
JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So
- android 网络
百合不是茶
网络
android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来 方便查找 , 服务器使用的是TomCat
服务器代码; servlet的使用需要在xml中注册
package servlet;
import java.io.IOException;
import java.util.Arr
- [读书笔记]读法拉第传
comsci
读书笔记
1831年的时候,一年可以赚到1000英镑的人..应该很少的...
要成为一个科学家,没有足够的资金支持,很多实验都无法完成
但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......
- 随机数的产生
沐刃青蛟
随机数
c++中阐述随机数的方法有两种:
一是产生假随机数(不管操作多少次,所产生的数都不会改变)
这类随机数是使用了默认的种子值产生的,所以每次都是一样的。
//默认种子
for (int i = 0; i < 5; i++)
{
cout<<
- PHP检测函数所在的文件名
IT独行者
PHP函数
很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。
代码:
[php]
view plain
copy
// Filename: functions.php
<?php&nbs
- 银行各系统功能简介
文强chu
金融
银行各系统功能简介 业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系
- Python学习1(pip django 安装以及第一个project)
小桔子
pythondjangopip
最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上!
第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy!
第二部:解压这个压缩文件,会看到一个setup.p
- php 数组
aichenglong
PHP排序数组循环多维数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,
- 安装python2.7
AILIKES
python
安装python2.7
1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
2、复制解压
#mkdir -p /opt/usr/python
#cp /opt/soft/Python-2
- java异常的处理探讨
百合不是茶
JAVA异常
//java异常
/*
1,了解java 中的异常处理机制,有三种操作
a,声明异常
b,抛出异常
c,捕获异常
2,学会使用try-catch-finally来处理异常
3,学会如何声明异常和抛出异常
4,学会创建自己的异常
*/
//2,学会使用try-catch-finally来处理异常
- getElementsByName实例
bijian1013
element
实例1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/x
- 探索JUnit4扩展:Runner
bijian1013
java单元测试JUnit
参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。
文章地址:http://www.blogjava.net/jiangshachina/archive/20
- [MongoDB学习笔记二]MongoDB副本集
bit1129
mongodb
1. 副本集的特性
1)一台主服务器(Primary),多台从服务器(Secondary)
2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作
3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来
2
- 【Spark八十一】Hive in the spark assembly
bit1129
assembly
Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners:
1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)
- Nginx问题定位之监控进程异常退出
ronin47
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。
1. 在error.log中查看是否有signal项,如果有,看看signal是多少。
比如,这是一个异常退出的情况:
$grep signal error.log
2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s
- No grammar constraints (DTD or XML schema).....两种解决方法
byalias
xml
方法一:常用方法 关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version=
- Netty源码学习-DefaultChannelPipeline
bylijinnan
netty
package com.ljn.channel;
/**
* ChannelPipeline采用的是Intercepting Filter 模式
* 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现
*
* 下面对ChannelPipeline作一个模拟,只模拟关键代码:
*/
public class Pipeline {
- MYSQL数据库常用备份及恢复语句
chicony
mysql
备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。
mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > ba
- 小白谈谈云计算--基于Google三大论文
CrazyMizzz
Google云计算GFS
之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。
我先说说GFS
&n
- hadoop 平衡空间设置方法
daizj
hadoopbalancer
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description&g
- Eclipse程序员要掌握的常用快捷键
dcj3sjt126com
编程
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得
- Android学习之路
dcj3sjt126com
Android学习
转自:http://blog.csdn.net/ryantang03/article/details/6901459
以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。
下面说说我学习Android的感受,我学Android首先是看MARS的视
- java 遍历Map的四种方法
eksliang
javaHashMapjava 遍历Map的四种方法
转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
- 【精典】数据库相关相关
gengzg
数据库
package C3P0;
import java.sql.Connection;
import java.sql.SQLException;
import java.beans.PropertyVetoException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBPool{
- 自动补全
huyana_town
自动补全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml&quo
- jquery在线预览PDF文件,打开PDF文件
天梯梦
jquery
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
- ViewPager刷新单个页面的方法
lovelease
androidviewpagertag刷新
使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面
- 利用按位取反(~)从复合枚举值里清除枚举值
草料场
enum
以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
- Linux系统新手学习的11点建议
刘星宇
编程工作linux脚本
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu
- hibernate dao层应用之HibernateDaoSupport二次封装
wangzhezichuan
DAOHibernate
/**
* <p>方法描述:sql语句查询 返回List<Class> </p>
* <p>方法备注: Class 只能是自定义类 </p>
* @param calzz
* @param sql
* @return
* <p>创建人:王川</p>
* <p>创建时间:Jul