- Docker如何以配置文件方式安装nginx
小白写代码hh
dockernginxjava
目录1准备挂载目录2拉去nginx镜像3启动命令1准备挂载目录mkdir-p/temp/nginx/html#创建nginx的html挂载目录mkdir-p/temp/nginx/conf#创建nginx的配置文件挂载目录自定义nginx配置文件放在conf目录下#usernobody;worker_processes1;#error_loglogs/error.log;#error_loglog
- 使用multiprocessing实现进程间共享内存
培根芝士
Pythonpython
在Python中,可以使用多种方法来实现几个进程之间的通信。简单消息传递:使用multiprocessing.Queue或multiprocessing.Pipe。共享简单数据:使用multiprocessing.Value或multiprocessing.Array。共享复杂数据:使用multiprocessing.Manager。进程间信号控制:使用multiprocessing.Event。
- python nginx部署_nginx部署python应用
weixin_39611070
pythonnginx部署
2.nginx配置文件如下:#位于/nginx/conf/nginx.conf#usernobody;worker_processes1;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout185;server{l
- 《Operating System Concepts》阅读笔记:p389-p407
操作系统
《OperatingSystemConcepts》学习第33天,p389-p407总结,总计19页。一、技术总结1.virtualmemeory(1)定义Atechniquethatallowstheexecutionofaprocessthatisnotcompletelyinmemory.Also,separationofcomputermemoryaddressspacefromphysic
- 使用Python来执行Shell脚本
代码编织匠人
linux运维服务器python
使用Python来执行Shell脚本Shell脚本可以在Linux系统下用于自动化执行一些命令或者程序,而Python可以很好地与Shell脚本进行交互,可以方便地通过Python脚本来执行Shell脚本。以下是一个简单的Shell脚本示例:#!/bin/bashecho"HelloWorld"该脚本会输出"HelloWorld"。我们可以使用Python的subprocess库来执行该脚本:im
- 深入GPU渲染流水管线:从顶点到像素的微观世界
晴空了无痕
图形学GPU渲染管线
现代图形硬件的架构解密与优化实践一、渲染流水线全景解析1.经典渲染管线阶段划分应用阶段几何阶段光栅化阶段像素处理阶段输出合并阶段2.现代GPU架构演进SIMT架构特性:NVIDIASM(StreamingMultiprocessor)vsAMDCU(ComputeUnit)硬件管线并行度:顶点着色器:32线程/Warp像素着色器:8x8像素/Quad延迟渲染革命:Tile-BasedDeferre
- 征程 6 VP简介与单算子实操
自动驾驶算法
1.如何理解VPVP,全称VisionProcess,指UCP中的视觉处理功能模块。Backends,指UCP框架中的可分配处理单元。VP模块主要用于模型的前后处理环节,在地平线统一架构中,多种硬件均已搭载了图像处理的算子,而VP模块将图像处理相关的硬件调用进行了封装,通过设置backend来选择不同的硬件方案(若不指定backend,UCP会自动适配负载更低的处理单元),从而平衡开发板负载。VP
- 【C++动态库】DLL动态库加载失败导致程序启动报错以及DLL库加载失败的常见原因分析与总结
dvlinker
C/C++实战专栏C/C++软件开发从入门到实战dll动态库隐式加载动态加载加载失败LoadLibraryEx动态库找不到接口找不到
目录1、问题说明2、dll库的隐式加载与动态加载2.1、dll库的隐式加载2.2、dll库的显式加载3、使用ProcessExplorer查看进程加载的dll库信息以及动态加载的dll库有没有加载成功3.1、使用ProcessExplorer查看进程加载的dll库信息3.2、使用ProcessExplorer查看动态启动的库有没有加载成功4、dll库加载失败原因详细分析与说明4.1、dll位数与依
- 使用Multiprocessing模块创建子进程,需要放到__main__中
Karl_zhujt
Pythonpython
1场景说明在Python中,使用multiprocessing模块创建子进程时,将创建子进程的代码放在if__name__=='__main__':块之外,如下面代码:importmultiprocessingimporttimedeftest_func(name):print(f"子进程{name}开始运行")time.sleep(2)#模拟任务执行print(f"子进程{name}结束运行")
- VLLM专题(三十五)—多模态数据处理
AI专题精讲
大模型专题系列人工智能
为了在vLLM中实现各种优化,例如分块预填充和前缀缓存,我们使用BaseMultiModalProcessor来提供占位符特征标记(例如)与多模态输入(例如原始输入图像)之间的对应关系,基于HF处理器的输出。以下是BaseMultiModalProcessor的主要特性:提示更新检测HF处理器的主要职责之一是使用占位符标记更新提示。例如:在字符串的开头插入特征占位符标记(例如…,其数量等于特征大小
- 实战领域:脱壳操作手册
xixixi77777
脱壳动态脱壳红队安全
一、环境准备(必须项)硬件隔离用一台物理机(非虚拟机)安装Windows10/11,关闭所有安全防护(Defender、防火墙)。硬件要求:至少16GB内存+SSD(防止内存转储卡顿)。工具包下载调试器:x64dbg(自带插件Scylla)内存分析:ProcessHacker2(监控内存分配)自动化脱壳:Unipacker(支持常见压缩壳)反反调试:TitanHide(内核级隐藏调试器)虚拟化执行
- Spring容器初始化之BeanFactoryPostProcessor和BeanPostProcessor
eighthspace
Spring源码分析记录javaspring
本文仍然以ClasspathXmlApplicationContext为入口进行记录,通过之前对Spring的学习,我们已知ClasspathXmlApplicationContext构造方法中调用的this.refresh()方法是整个Spring容器初始化的核心方法,refresh()方法调用过程如下:publicvoidrefresh()throwsBeansException,Illega
- Spring组件初始化扩展点:BeanPostProcessor
冬天vs不冷
springspringjava后端
目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessBeforeInitialization2、postProcessAfterInitialization四、实战案例案例1:实现简单的属性打印案例2:动态代理增强(模拟AOP)五、常见应用场景六、注意事项七、总结一、概述 在Spring框架中,BeanPostProcessor是一个强大的扩展接口,
- Qt中打开windows的cmd窗口并显示
c1s2d3n4cs
qt开发语言
在windows上,用Qt的GUI程序打开另一个程序,使用QProcess即可,并且被打开的程序通常也会显示出来,但是如果想要打开dos窗口并显示,并执行其中的命令或者批处理,则需要使用QProcess提供的windows特有的函数QProcess::setCreateProcessArgumentsModifier该函数可以在打开程序之前,对CreateProcess的参数进行设置,因为QPro
- Python 基础知识整理笔记
chuanauc
笔记
闹麻了,因为各种原因,现在需要重新回顾一下Python,话不多说,开始吧1.Python是解释型语言&&Python与C++代码执行过程的区别:(1)C++源码(Source):C++的源码文件是.cpp文件预处理(PreProcess):生成.i文件预处理的操作有处理#include、#define等宏指令,编译(Compile):将.cpp文件编译为.s文件,此时的.s文件是汇编文件,无法被C
- Biobank genetic data探析(三)
想摸鱼的生信小白
GWAS自学历程大数据
Biobankgeneticdata探析(三)——GenotypingprocessandsampleQC一.总览Category100313这类数据包含了Affymetrix做Genotypecalling的pipeline的流程信息(后续分析中可能用不到),以及样本质量控制的信息(下游分析中估计是必用了)。二.数据集描述2.1Genotypingprocess查看之后发现这部分不是很重要,毕竟
- Markdig:强大的.NET Markdown处理器
牧爱颖Kelvin
Markdig:强大的.NETMarkdown处理器markdigAfast,powerful,CommonMarkcompliant,extensibleMarkdownprocessorfor.NET项目地址:https://gitcode.com/gh_mirrors/ma/markdig项目基础介绍和主要编程语言Markdig是一个快速、强大且符合CommonMark标准的可扩展Markd
- AJAX PHP:深入理解与实际应用
wjs2024
开发语言
AJAXPHP:深入理解与实际应用引言随着互联网技术的不断发展,前端与后端交互变得更加频繁。AJAX(AsynchronousJavaScriptandXML)和PHP(HypertextPreprocessor)作为两种流行的技术,在实现动态网页和应用程序方面扮演着重要角色。本文将深入探讨AJAXPHP的工作原理、应用场景以及实际开发中的注意事项。AJAXPHP概述AJAXAJAX是一种基于Ja
- 2025版自动控制流程_工业级连接_智能重连监控系统_增强型工业连接协议 ‘s Vision+Robot EPSON
资深设备全生命周期管理
python
importtimeimporttkinterastkfromtkinterimportmessageboxfromPILimportImage,ImageTkimportsocketimportthreadingfromdatetimeimportdatetimeimportloggingimportsubprocess#确保导入subprocess库importosimportpyautogu
- 实验六 多cache一致性——监听协议_多核Cache一致性
weixin_39576336
实验六多cache一致性——监听协议
经过这么多篇文章的介绍,我们应该已经对Cache有一个比较清晰的认识。Cache会面临哪些问题,我们该怎么处理这些问题。现在我们讨论多核Cache一致性问题。在摩尔定律不太适用的今天,人们试图增加CPU核数以提升系统整体性能。这类系统称之为多核系统(简称MP,Multi-Processor)。我们知道每个CPU都有一个私有的L1Cache(不细分iCache和dCache)。假设一个2核的系统,我
- vscode--工作区和相对路径
一头大学牲
程序--编程记录vscodeide编辑器
vscode的相对路径使用vscode编辑python项目时发现,它的相对路径是相对于当前工作根目录来定位的,也就是从工作文件夹的最顶级目录开始查找,而非是从当前执行文件开始查找。例子:根目录:F:\deep-learning-for-image-processing执行文件路径:F:\deep-learning-for-image-processing\pytorch_classificatio
- COMP 315: Cloud Computing
后端
Assignment1:JavascriptCOMP315:CloudComputingforE-CommerceFebruary20251IntroductionAcommontaskwhenbackendprogrammingisdatacleaning,whichistheprocessoftakinganinitialdatasetthatmaycontainerroneousorinco
- COMP 315: Cloud Computing
后端
Assignment1:JavascriptCOMP315:CloudComputingforE-CommerceFebruary20251IntroductionAcommontaskwhenbackendprogrammingisdatacleaning,whichistheprocessoftakinganinitialdatasetthatmaycontainerroneousorinco
- webpack-bundle-analyzer分析打包文件
闰土月下追猹
前端webpack-bundlebundle-analyzerwebpackvue.js前端
安装:npminstall--save-devwebpack-bundle-analyzer在vue.config.js中配置:constBundleAnalyzerPlugin=require('webpack-bundle-analyzer').BundleAnalyzerPlugin;module.exports={chainWebpack:config=>{//打包分析if(process
- Python 进程和线程-进程 vs. 线程
赔罪
Python系统学习python开发语言
目录ThreadLocal小结进程vs.线程线程切换计算密集型vs.IO密集型异步IOThreadLocal在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦:defprocess_student(name):std=Student
- Assembly语言的自然语言处理
花韵婷
包罗万象golang开发语言后端
Assembly语言在自然语言处理中的应用引言自然语言处理(NaturalLanguageProcessing,NLP)作为人工智能的一个重要分支,致力于实现计算机与人类语言之间的互动。随着计算能力的提升以及大数据的蓬勃发展,NLP在各个领域的应用如火如荼。从语音识别、机器翻译到情感分析等,NLP正在改变我们与信息之间的互动方式。不过,当前主流的NLP研究通常是用高级编程语言(如Python、Ja
- android webview 高度随内容改变,android app内置webview,随android版本升级进程关系的变化...
大圣南佳境
androidwebview高度随内容改变
Q最近遇到一个问题:多个应用打不开,闪退。A调查发现闪退的应用都在首屏加载了webview,而在androidp上webview的渲染是在另外一个进程上进行的,进程名字类似webview:sandboxed_process0,这个进程是由webview_zygote这样一个进程fork出来的,而webview_zygote由于缺少权限runtime崩溃,从而导致webview加载失败,应用闪退。S
- HIVE开窗函数
Cciccd
sqlhive
ETL,SQL面试高频考点——HIVE开窗函数(基础篇)目录标题ETL,SQL面试高频考点——HIVE开窗函数(基础篇)一,窗口函数介绍二,开窗函数三,分析函数分类1,排序分析函数:实列解析对比总结2.聚合分析函数3.用spark自定义HIVE用户自定义函数后续更新中~一,窗口函数介绍窗口函数,也叫OLAP函数(OnlineAnallyticalProcessing,联机分析处理),可以对数据库数
- 数据处理的革命性引擎
绿算技术
DPU架构介绍硬件工程科技缓存
随着数据量的爆炸式增长和计算需求的多样化,传统的CPU和GPU已经无法完全满足现代数据中心和高性能计算的需求。在这样的背景下,DPU(DataProcessingUnit,数据处理单元)应运而生。DPU是一种专为数据处理和网络加速设计的处理器,正在成为数据中心和云计算架构中的重要组成部分。接下来,由绿算技术与大家一起学习DPU有哪些功能、技术、原理等等内容。DPU的功能:数据处理的“全能选手”DP
- 【图像处理】ISP(Image Signal Processor) 图像处理器的用途和工作原理?
AndrewHZ
图像处理基石图像处理智能手机影像系统算法深度学习人工智能ISP
ISP(图像信号处理器)是数字影像设备的“视觉大脑”,负责将传感器捕获的原始电信号转化为我们看到的高清图像。以下从用途和工作原理两方面通俗解析:一、ISP的核心用途:让照片“更像眼睛看到的”提升画质:降噪:去除暗光下的噪点(如手机夜景模式,通过多帧合成+算法抑制噪点)。色彩还原:校正传感器偏色(例如索尼传感器常偏黄,ISP通过白平衡算法还原真实色彩)。动态范围优化:保留高光和暗部细节(类似HDR,
- 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