- linux软连接
听风Q
linuxlinux运维服务器
文章目录第1章Linux文件类型1.文件类型与拓展名介绍2.Linux下常见的文件类型说明3.使用file命令查看文件的类型4.Windows和Linux下常见的拓展名说明第2章文件属性概述1.文件属性解释第3章Linux文件存储inode和block1.什么是inode2.什么是block3.目录和文件的关系4.Linux删除文件第4章软链接和硬链接1.什么是软链接2.什么是硬链接3.文件链接练
- python&pygame随机迷宫基于A*算法自动寻路
Siiiiiiiiiiiii
pygamepython开发语言
caidan_youxi.pyimportsysimportpygamefromPyQt5.QtWidgetsimportQApplication,QMainWindowimportloginif__name__=='__main__':pygame.init()pygame.mixer.init()pygame.mixer.music.load('bgm.mp3')#加载歌曲pygame.mix
- python中xpath模块详解!
听风Q
pythonpython开发语言
文章目录xpath1、xpath安装与使用2、解析流程与使用3、xpath语法xpath1、xpath安装与使用安装安装lxml库pipinstalllxml-ipip源2、解析流程与使用解析流程实例化一个etree的对象,把即将被解析的页面源码加载到该对象调用该对象的xpath方法结合着不同形式的xpath表达进行标签定位和数据提取使用导入lxml.etreefromlxmlimportetre
- (完美解决)java文件操作报错:java.io.FileNotFoundException(拒绝访问)
java全套学习资料
java
01-错误信息:Exceptioninthread"main"java.io.FileNotFoundException:e:b(拒绝访问。)atjava.io.FileOutputStream.open0(NativeMethod)atjava.io.FileOutputStream.open(UnknownSource)atjava.io.FileOutputStream.(UnknownSo
- SpringBoot之@Component,@Bean与@Configuration配置
编码博客控
程序员程序员JAVA
目前对于Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。而完成这两个动作有三种方式,一种是使用自动配置的方式、一种是使用JavaConfig的方式,一种就是使用XML配置的方式。接下来我们只是初级的认识它们一.对于XML配置方式如下:<!--使用构造器注入的属性值可以指定参数的类型和参数的位置,以区分重载的构造器如果字面值包含特殊字符
- (1064, “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
m0_74824483
sql数据库
(1064,“YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear‘==‘1’’atline1”)这个错误是由于SQL查询语句中使用了错误的语法或者不被MySQL支持的语法所致。在SQL中,条件判断应该使用单个等号=,而不是双等号==
- 解决 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...警告
克里斯蒂亚诺罗纳尔多阿维罗
hadoop
这个警告意味着Hadoop在加载本地本机库时遇到了问题。通常情况下,Hadoop会尝试加载本地的本机库以提高性能,但是如果找不到适合你的操作系统和架构的本地库,它会退而使用内置的Java类来模拟所需的功能。虽然这个警告会影响Hadoop的性能,但它并不会导致Hadoop无法正常工作。你仍然可以使用Hadoop,但可能会遇到性能上的损失。解决方法:在Hadoop中,配置'java.library.p
- docker 指定配置文件运行springboot项目
梅川酷子哥21岁
dockerlinuxspringbootdockerspringbootjava
1、将项目上传服务器2、使用jdk1.8创建java容器dockerrun-it-d--name=wx--net=host-v/root/wx:/root/wxjdk83、进入容器运行java项目1、dockerexec-itwxbash2、进入目录cd/root/wx3、使用指定配置文件运行项目nohupjava-jar-Dfile.encoding=utf-8wx.jar--spring.pr
- 神经网络常见操作(卷积)输入输出
被放养的研究生
计算机视觉神经网络深度学习机器学习
卷积dim=d的tensor可以进行torch.nn.Convnd(in_channels,out_channels),其中n=d-1,d-2对于torch.nn.Convnd(in_channels,out_channels),改变的是tensor的倒数n+1维的大小全连接使用torch.nn.Linear(in_features,out_features,bias)实现Y=XWT+b,其中X的
- [随笔] uniapp微信小程序端踩坑记2---input监听、点击事件、Wxml中不可使用this
"William'_
uni-app小程序vue.js
在微信小程序端使用watch()监听input标签输入的值时出错。处理:不使用watch()监听,对input标签绑定@input事件,方法中使用e.detail.value获取输入值。<inputclass="lu-input"@input="search"v-model="iuputShow"/
- 简明docker快速入门并实践方法
宇宙计算机
dockereureka容器
简明docker快速入门并实践方法前言:1.什么是Docker?2.Docker的基本概念3.安装配置Docker4.Docker基本命令:5.简单实践:拉取Nginx镜像-自定义配置-推送镜像步骤1:拉取Nginx镜像步骤1.5(可选):运行Nginx容器以熟悉操作步骤2:创建自定义Nginx配置文件步骤3:创建Dockerfile步骤4:构建Docker镜像步骤5:运行Docker容器步骤6(
- element-ui上传图片组件封装
风吹头皮凉
前端vue.js
//上传图片组件定义文件imageUpload=this.limit}">请上传大小不超过{{fileSize}}MB格式为{{fileType.join("/")}}的文件import{getToken}from"@/utils/auth";//接口apiimport{serviceApi}from"@/utils/serviceApi";exportdefault{props:{value:[
- el-tree树结构在名称后面添加其他文字
风吹头皮凉
vue.jsjavascript前端
//在el-tree中使用render-content插槽来展示文件大小exportdefault{data(){return{treeData:{loading:false,data:[{id:1,name:'文件1',fileSize:391055,fileCount:1,children:[]},//更多节点数据...]},defaultProps:{children:'children',
- 微信小程序开发入门教程
天马3798
教程系列整理微信小程序小程序
微信小程序开发入门教程#1、微信小程序的概念、历史、发展微信小程序的概念、历史、发展-CSDN博客#2、微信小程序的开发工具微信官方给出的开发工具:概览|微信开放文档#3、微信小程序的项目结构、创建、发布审核#4、微信小程序开发常见问题整理#5、微信小程序的框架接口#6、微信小程序的wxml基础语法微信小程序数组绑定使用案例(一)_微信小程序绑定一个数组对象list到页面,修改数组中的一个值,在把
- Hive--HiveServer2 命令行代码连接、Hive常用命令、自定义UDF函数、排序
XK&RM
Hivehivehiveserver2udfjava
目录1Hive--HiveServer2命令行代码连接1.1配置HiveServer2WEB参数1.2开启HiveServer21.3使用Beeline连接HiveServer21.4使用代码查询HiveServer21.5使用DBeaver连接Hive2Hive--Hive常用命令2.1Hive命令2.2HiveShell命令3Hive--自定义UDF函数(User-DefinedFunctio
- docker 部署带多种配置文件的 springboot 项目
淘气小姑娘
dockerlinuxjava
准备工作:1、将要制作镜像的Springboot项目打成jar包。2、将jar包和该程序所有配置文件放在同一文件夹下(xml、yml、txt、jar等),我这里文件夹名字为json3、在该文件夹下写Dockerfile.txt文件:#指含有jdk1.8的镜像FROMjava#将当前目录下面的json-0.0.1-SNAPSHOT.jar复制命名为app.jar(复制后的名字可以自定义)。copya
- 微信小程序
ggggyyyyy0928
微信小程序小程序
一、小程序文件结构1.目录结构pages文件夹:存放【页面文件夹】,一个【页面文件夹】就是一个页面,存放着小程序页面文件。即pages中的每一个文件夹都存放着一个小程序页面的文件(js、wxml、json、wxss)页面文件夹一个【页面文件夹】中必须包含以下4个文件,为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名。.json后缀的JSON配置文件.wxml后缀的WXML模板
- centos8怎么安装原版的docker而不是podman
SmallFatMan
#Dockerdockerpodman容器运维服务器dockerce
Itlooksliketheyum-config-managercommandisnotfoundonyoursystem.Thiscouldbebecausetheyum-utilspackage,whichprovidesthiscommand,isnotinstalled.Here’showyoucaninstallyum-utilsandthenaddtheDockerrepository
- Python 遍历文件夹下的文件
码破苍穹
其他
importosdeffindAllFile(base):forroot,ds,fsinos.walk(base):forfinfs:fullname=os.path.join(root,f)yieldfullnamedefmain():base='data\\user00'#当前的相对目录foriinfindAllFile(base):if"sensor_log_0"ini:print(i)if
- Jenkins-Pipeline简述
xiao-xiang
jenkinsjenkins运维
一.什么是Jenkinspipeline:pipeline在jenkins中是一套插件,主要功能在于,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。Pipeline的实现方式是一套GroovyDSL,任何发布流程都可以表述为一段Groovy脚本(jenkinsfile),并且Jenkins支持从代码库直接读取脚本。二.关于pipeline:1.相关概念:Ste
- 媒体资讯视频数据采集-yt-dlp 使用指南 (中文版)
救救孩子把
媒体音视频yt-dlp
yt-dlp使用指南(中文版)开源项目地址https://github.com/yt-dlp/yt-dlpyt-dlp是一款功能丰富的命令行音视频下载器,支持数千个网站。该项目是基于已停止维护的youtube-dlc项目的youtube-dl的分支。yt-dlp可以下载多家流媒体平台的音视频资源,仓库地址为:yt-dlp/yt-dlp:Afeature-richcommand-lineaudio/
- 基于Python读取ZIP和TAR格式压缩包教程
袁袁袁袁满
Python实用技巧大全python前端开发语言ZIP和TAR格式Python读取压缩包
在数据处理和文件管理中,压缩包(如ZIP、TAR等格式)的使用非常普遍。Python提供了多种库来读取和处理这些压缩包。本文将介绍如何使用Python的内置库和第三方库来读取ZIP和TAR格式的压缩包。1、读取ZIP文件Python的zipfile模块提供了处理ZIP文件的功能。以下是一个简单的示例,展示如何读取ZIP文件并提取其中的内容。步骤1:导入zipfile模块pythonimportzi
- python 手动安装第三方库
xiongerbuer
pythonpython库
1.下载对应操作系统的安装包,如lxml包官网有下载,网上也有很多下载地址2.安装wheelpipinstallwheel3.安装lxmlpipinstallF:\Downloads\lxml-3.6.0-cp35-cp35m-win32.whl
- Emgu.CV 报错 Emgu.CV.Util.CvException: OpenCV
Echo_Wish
C#笔记OpenCVopencv计算机视觉人工智能
Emgu.CV报错Emgu.CV.Util.CvException:OpenCV异常信息:Emgu.CV.Util.CvException:OpenCV:在Emgu.CV.CvInvoke.CvErrorHandler(Int32status,IntPtrfuncName,IntPtrerrMsg,IntPtrfileName,Int32line,IntPtruserData)在Emgu.CV.C
- Python调用.dll文件,报错FileNotFoundError: Could not find module ‘xx\....\xx.dll
腿。
python经验分享开发语言
一、代码及报错详情fromctypesimportCDLLimportosdll_path=r"path_to_your_dll\name.dll"#替换为实际的DLL文件路径tmp=CDLL(dll_path)Traceback(mostrecentcalllast):self._handle=_dlopen(self._name,mode)FileNotFoundError:Couldnotf
- [WIN7 Python3.8] FileNotFoundError-- 找不到dll的问题
雅各布_001
python算法
文章目录一、报错二、分析1.按照找不到lib_lightgbm.dll库来分析——失败2.按照缺失依赖查找(***oroneofitsdependencies***)2.1Dependencywalker简介
- python使用pyzbar报错filenotfounderror: could not find module ‘libiconv.dll‘
susu1083018911
python
查了好久的问题,也不知道为什么。记录一下解决办法:libiconv.dll需要安装动态连接库,下载地址:https://download.microsoft.com/download/F/3/5/F3500770-8A08-488E-94B6-17A1E1DD526F/vcredist_x64.exe下载完以后双击安装,安装好就没有问题了。
- Python数值计算(1)——Numpy中数据的保存和加载
C囧囧
Pythonnumpy
这里讨论一下在进行数值计算中,对计算数据的保存和加载。1.文本格式这种方式可以采用文本的方式保存numpy数组,函数原型如下:numpy.savetxt(fname,X,fmt='%.18e',delimiter='',newline='\n',header='',footer='',comments='#',encoding=None)其中fname是文件名称,如果文件名以.gz结尾,numpy
- Android搞机之编译LineageOS内核
android逆向工程
编译环境VMware虚拟机+Kali2022.332GB内存400GB硬盘乐视Max2手机lineageOS18.1源码下载从lineageOS官网上找到LeMax2。在Buildforx2章节找到kernel的Github地址下载kernel源码gitclone--depth=1https://github.com/LineageOS/android_kernel_leeco_msm8996.g
- mysql8查看data目录_windows环境MySQL8.0的data目录变更方法及问题
刘泽宏
mysql8查看data目录
windows环境安装MySQL8.0,默认安装在C盘的。basedir是:C:\ProgramFiles\MySQL\MySQLServer8.0\bindatadir是:C:\ProgramData\MySQL\MySQLServer8.0\data#这是一个隐藏文件夹现在想把datadir迁移到E盘,做法是:1、关闭数据库服务cdC:\ProgramFiles\MySQL\MySQLServ
- [黑洞与暗粒子]没有光的世界
comsci
无论是相对论还是其它现代物理学,都显然有个缺陷,那就是必须有光才能够计算
但是,我相信,在我们的世界和宇宙平面中,肯定存在没有光的世界....
那么,在没有光的世界,光子和其它粒子的规律无法被应用和考察,那么以光速为核心的
&nbs
- jQuery Lazy Load 图片延迟加载
aijuans
jquery
基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载。
对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度。
版本:
jQuery v1.4.4+
jQuery Lazy Load v1.7.2
注意事项:
需要真正实现图片延迟加载,必须将真实图片地址写在 data-original 属性中。若 src
- 使用Jodd的优点
Kai_Ge
jodd
1. 简化和统一 controller ,抛弃 extends SimpleFormController ,统一使用 implements Controller 的方式。
2. 简化 JSP 页面的 bind, 不需要一个字段一个字段的绑定。
3. 对 bean 没有任何要求,可以使用任意的 bean 做为 formBean。
使用方法简介
- jpa Query转hibernate Query
120153216
Hibernate
public List<Map> getMapList(String hql,
Map map) {
org.hibernate.Query jpaQuery = entityManager.createQuery(hql);
if (null != map) {
for (String parameter : map.keySet()) {
jp
- Django_Python3添加MySQL/MariaDB支持
2002wmj
mariaDB
现状
首先,
[email protected] 中默认的引擎为 django.db.backends.mysql 。但是在Python3中如果这样写的话,会发现 django.db.backends.mysql 依赖 MySQLdb[5] ,而 MySQLdb 又不兼容 Python3 于是要找一种新的方式来继续使用MySQL。 MySQL官方的方案
首先据MySQL文档[3]说,自从MySQL
- 在SQLSERVER中查找消耗IO最多的SQL
357029540
SQL Server
返回做IO数目最多的50条语句以及它们的执行计划。
select top 50
(total_logical_reads/execution_count) as avg_logical_reads,
(total_logical_writes/execution_count) as avg_logical_writes,
(tot
- spring UnChecked 异常 官方定义!
7454103
spring
如果你接触过spring的 事物管理!那么你必须明白 spring的 非捕获异常! 即 unchecked 异常! 因为 spring 默认这类异常事物自动回滚!!
public static boolean isCheckedException(Throwable ex)
{
return !(ex instanceof RuntimeExcep
- mongoDB 入门指南、示例
adminjun
javamongodb操作
一、准备工作
1、 下载mongoDB
下载地址:http://www.mongodb.org/downloads
选择合适你的版本
相关文档:http://www.mongodb.org/display/DOCS/Tutorial
2、 安装mongoDB
A、 不解压模式:
将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongod.exe就可以启动服务,默
- CUDA 5 Release Candidate Now Available
aijuans
CUDA
The CUDA 5 Release Candidate is now available at http://developer.nvidia.com/<wbr></wbr>cuda/cuda-pre-production. Now applicable to a broader set of algorithms, CUDA 5 has advanced fe
- Essential Studio for WinRT网格控件测评
Axiba
JavaScripthtml5
Essential Studio for WinRT界面控件包含了商业平板应用程序开发中所需的所有控件,如市场上运行速度最快的grid 和chart、地图、RDL报表查看器、丰富的文本查看器及图表等等。同时,该控件还包含了一组独特的库,用于从WinRT应用程序中生成Excel、Word以及PDF格式的文件。此文将对其另外一个强大的控件——网格控件进行专门的测评详述。
网格控件功能
1、
- java 获取windows系统安装的证书或证书链
bewithme
windows
有时需要获取windows系统安装的证书或证书链,比如说你要通过证书来创建java的密钥库 。
有关证书链的解释可以查看此处 。
public static void main(String[] args) {
SunMSCAPI providerMSCAPI = new SunMSCAPI();
S
- NoSQL数据库之Redis数据库管理(set类型和zset类型)
bijian1013
redis数据库NoSQL
4.sets类型
Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
sadd:向名称为key的set中添加元
- 异常捕获何时用Exception,何时用Throwable
bingyingao
用Exception的情况
try {
//可能发生空指针、数组溢出等异常
} catch (Exception e) {
 
- 【Kafka四】Kakfa伪分布式安装
bit1129
kafka
在http://bit1129.iteye.com/blog/2174791一文中,实现了单Kafka服务器的安装,在Kafka中,每个Kafka服务器称为一个broker。本文简单介绍下,在单机环境下Kafka的伪分布式安装和测试验证 1. 安装步骤
Kafka伪分布式安装的思路跟Zookeeper的伪分布式安装思路完全一样,不过比Zookeeper稍微简单些(不
- Project Euler
bookjovi
haskell
Project Euler是个数学问题求解网站,网站设计的很有意思,有很多problem,在未提交正确答案前不能查看problem的overview,也不能查看关于problem的discussion thread,只能看到现在problem已经被多少人解决了,人数越多往往代表问题越容易。
看看problem 1吧:
Add all the natural num
- Java-Collections Framework学习与总结-ArrayDeque
BrokenDreams
Collections
表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。
这篇要看一下java.util.ArrayDeque。从命名上看
- 读《研磨设计模式》-代码笔记-装饰模式-Decorator
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.Fi
- Maven学习(一)
chenyu19891124
Maven私服
学习一门技术和工具总得花费一段时间,5月底6月初自己学习了一些工具,maven+Hudson+nexus的搭建,对于maven以前只是听说,顺便再自己的电脑上搭建了一个maven环境,但是完全不了解maven这一强大的构建工具,还有ant也是一个构建工具,但ant就没有maven那么的简单方便,其实简单点说maven是一个运用命令行就能完成构建,测试,打包,发布一系列功
- [原创]JWFD工作流引擎设计----节点匹配搜索算法(用于初步解决条件异步汇聚问题) 补充
comsci
算法工作PHP搜索引擎嵌入式
本文主要介绍在JWFD工作流引擎设计中遇到的一个实际问题的解决方案,请参考我的博文"带条件选择的并行汇聚路由问题"中图例A2描述的情况(http://comsci.iteye.com/blog/339756),我现在把我对图例A2的一个解决方案公布出来,请大家多指点
节点匹配搜索算法(用于解决标准对称流程图条件汇聚点运行控制参数的算法)
需要解决的问题:已知分支
- Linux中用shell获取昨天、明天或多天前的日期
daizj
linuxshell上几年昨天获取上几个月
在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年
# 获取昨天
date -d 'yesterday' # 或 date -d 'last day'
# 获取明天
date -d 'tomorrow' # 或 date -d 'next day'
# 获取上个月
date -d 'last month'
#
- 我所理解的云计算
dongwei_6688
云计算
在刚开始接触到一个概念时,人们往往都会去探寻这个概念的含义,以达到对其有一个感性的认知,在Wikipedia上关于“云计算”是这么定义的,它说:
Cloud computing is a phrase used to describe a variety of computing co
- YII CMenu配置
dcj3sjt126com
yii
Adding id and class names to CMenu
We use the id and htmlOptions to accomplish this. Watch.
//in your view
$this->widget('zii.widgets.CMenu', array(
'id'=>'myMenu',
'items'=>$this-&g
- 设计模式之静态代理与动态代理
come_for_dream
设计模式
静态代理与动态代理
代理模式是java开发中用到的相对比较多的设计模式,其中的思想就是主业务和相关业务分离。所谓的代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如我们在进行删除操作的时候需要检验一下用户是否登陆,我们可以删除看成主业务,而把检验用户是否登陆看成其相关业务
- 【转】理解Javascript 系列
gcc2ge
JavaScript
理解Javascript_13_执行模型详解
摘要: 在《理解Javascript_12_执行模型浅析》一文中,我们初步的了解了执行上下文与作用域的概念,那么这一篇将深入分析执行上下文的构建过程,了解执行上下文、函数对象、作用域三者之间的关系。函数执行环境简单的代码:当调用say方法时,第一步是创建其执行环境,在创建执行环境的过程中,会按照定义的先后顺序完成一系列操作:1.首先会创建一个
- Subsets II
hcx2013
set
Given a collection of integers that might contain duplicates, nums, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.
The solution set must not conta
- Spring4.1新特性——Spring缓存框架增强
jinnianshilongnian
spring4
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- shell嵌套expect执行命令
liyonghui160com
一直都想把expect的操作写到bash脚本里,这样就不用我再写两个脚本来执行了,搞了一下午终于有点小成就,给大家看看吧.
系统:centos 5.x
1.先安装expect
yum -y install expect
2.脚本内容:
cat auto_svn.sh
#!/bin/bash
- Linux实用命令整理
pda158
linux
0. 基本命令 linux 基本命令整理
1. 压缩 解压 tar -zcvf a.tar.gz a #把a压缩成a.tar.gz tar -zxvf a.tar.gz #把a.tar.gz解压成a
2. vim小结 2.1 vim替换 :m,ns/word_1/word_2/gc  
- 独立开发人员通向成功的29个小贴士
shoothao
独立开发
概述:本文收集了关于独立开发人员通向成功需要注意的一些东西,对于具体的每个贴士的注解有兴趣的朋友可以查看下面标注的原文地址。
明白你从事独立开发的原因和目的。
保持坚持制定计划的好习惯。
万事开头难,第一份订单是关键。
培养多元化业务技能。
提供卓越的服务和品质。
谨小慎微。
营销是必备技能。
学会组织,有条理的工作才是最有效率的。
“独立
- JAVA中堆栈和内存分配原理
uule
java
1、栈、堆
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static f