- [python]poetry安装和使用
FL1623863129
Pytorchpython
Python新建Poetry环境一、安装Poetry:1、windows直接安装:(Invoke-WebRequest-Urihttps://install.python-poetry.org-UseBasicParsing).Content|python-2、pip安装pipinstallpoetry二、创建项目1、指定虚拟环境存放目录poetryconfigvirtualenvs.pathD:
- 39【内存条与硬盘的架构逻辑】
学编程的闹钟
从零开始学编程语言学习
内存和硬盘大家应该并不陌生,不过要以文字的形式表述2者的关系难度还是很大的,我们这节课就来讲解这个问题,本节课非常重要,本节课讲的点便是几乎所有的逆向工具研发的理论框架(由于本文是知识手册,因此在后面会有专门的帖子来引用本帖)解下来我使用玄幻小说的情节为大家讲解,有一个功法叫灵体转换,就是可以将自己的身体变成灵魂形态大家把硬盘想象成一个身体,内存想象成灵魂,也就是说一个软件要想运行,windows
- 开发者交流平台项目部署到阿里云服务器教程
独自破碎E
阿里云服务器云计算java后端开发语言
本文使用PuTTY软件在本地Windows系统远程控制Linux服务器;其中,Windows系统为Windows10专业版,Linux系统为CentOS7.664位。1.工具软件的准备maven:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gztomcat:https
- python入门教程jupyter_Jupyter Notebooks的安装和使用介绍
weixin_39953618
最近又开始重新学习Python,学习中使用到了一款编辑器JupyterNotebooks,非常想安利给初学python的同学。注:本文内容仅针对windows环境下安装和配置JupyterNotebooks。1.JupyterNotebooks简介国际惯例还是来一段官方的介绍:Notebooks其实就像是你的python笔记本一样,不仅可以运行书写的python代码,同时还支持markdown格式
- python调用git在windows,ImportError在Windows 10 Git Bash上使用Anaconda Python导入_ssl
Kuchiki Touko
ContextIamworkingbehindacorporateproxywithaself-signedcertificate.Ihavedocumentedthisextensively.TheissuenowisthatTLS/SSLmoduleisnotloadingcorrectlytoevenverifythecertificates.Windows10Anaconda2018.12
- windows注册表详解
ywwow
计算机科学与技术windowsmicrosoftsystem磁盘dos网络
偶尔得转点文章。空格键坏了,想用修改键盘映射的方法来代替一下,于是就找到了注册表。然后在不断的搜索中,发现了这篇有点收藏价值的文章,转过来保存下。windows注册表详解http://blog.donews.com/converter/archive/2004/09/16/100404.aspx注册表对有的人还是比较陌生的,因为现在第三方软件太多了,如优化大师、魔法兔子等等,但个人觉得改善系统的第
- 【Windows】修改C盘下用户名
weixin_30872867
操作系统
假设原用户名为Icon,需改为Ping。先新建一个管理员账户,然后注销当前用户,以新建的管理员账户登录;重命名C:\Users\Icon为C:\Users\Ping;打开注册表编辑器(win+R输入regedit),定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList的某一子项,将“数据名称”为P
- 安装Anaconda之后,Anaconda Navigator打不开
阿尔法星球
pythonpython
如果安装Anaconda之后无法打开AnacondaNavigator,可以尝试以下步骤来解决问题:重新启动计算机:有时候,简单的重新启动计算机可以解决安装后的一些问题。检查Anaconda安装:打开命令行窗口(Windows的CMD或PowerShell,macOS和Linux的终端),输入以下命令来检查Anaconda的安装情况:conda--version如果Anaconda安装正确,这将显
- 安装openssl报错:openssl: symbol lookup error: openssl: undefined symbol: EVP_mdc2, version OPENSSL_1_1_0
dg1011
linux
首先,安装网上教程对openssl进行了安装sudowgethttps://www.openssl.org/source/openssl-1.1.1t.tar.gz如果Linux系统没网,可现在windows上下载压缩文件,再传到Linux系统直接在浏览器输入https://www.openssl.org/source/openssl-1.1.1t.tar.gz就可以下载下来然后进行安装#将安装包
- ESP32-C3 VScode开发环境搭建(基于ESP-IDF—Windows和Ubuntu双环境)_esp32只能基于windows平台开发吗
2401_87555613
vscodewindowsubuntu
2.3.1VScode插件配置2.3.2工程编译测试2.3.2烧录一、Windows环境下安装1.1安装Git直接搜索Git,到官方网站下载,地址:Git官方下载地址下载完毕,双击安装:除了开始选择一下安装路径,后面大部分默认就可以:安装完成,点击Finish即可:安装完成以后记得添加一下环境变量(现在软件很多都可以自动添加环境变量,在安装的时候选择一下AddtoPATH,如果没有自动添加环境变量
- Python 3.8 64位安装包:为Windows用户提供高效编程体验
郎磊权Halden
Python3.864位安装包:为Windows用户提供高效编程体验项目地址:https://gitcode.com/open-source-toolkit/061a8项目介绍Python3.864位安装包是一个专为Windows操作系统设计的Python编程语言安装包。Python3.8作为Python编程语言的一个重要版本,不仅继承了Python一贯的简洁易用特性,还引入了许多新功能和改进,使
- Python | python3.8安装教程(Windows环境)
一只野生猿人
python
摘要:本文将介绍python的安装教程,适用于首次安装python的用户官网链接:https://www.python.org/配置说明运行环境:Windows11安装版本:python3.8.01、下载安装程序进入官网,选择Windows版本下载在下载列表中选择64位的安装程序二、安装python3.8.0先勾选下方两个选项,并选择自定义安装勾选下方三个选项,并点击下一步先勾选下方两个选项,再修
- 使用Ollama部署deepseek大模型
使用Ollama部署deepseek大模型前置条件使用英伟达显卡下载cuda驱动https://developer.nvidia.com/cuda-downloadsOllamaOllama官方版:https://ollama.com/我的显卡在Windows电脑上面所以使用Windows的安装方式去安装若你的显卡是在Linux上面可以使用如下命令安装curl-fsSLhttps://ollama
- Python 如何使用访问Windows共享文件夹
蜡笔小新星
pythonwindows开发语言经验分享
文章目录引言前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:列出共享文件夹中的文件与文件夹步骤五:下载与上传文件(可选)步骤六:处理连接错误错误排查指南结论引言本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列举其中的文件与文件夹。此外,我们还将简要介绍如何下载和上传文件
- YOLO系列之训练环境(GPU)搭建篇
w94ghz
YOLO改进系列YOLOv8改进系列YOLO深度学习人工智能python目标检测
YOLOv8专栏导航:点击此处跳转Pytorch环境配置(Windows)Anaconda安装此处下载安装即可⭐温馨提示:安装路径
- windows实用:删除右键菜单功能项
EelBarb
windows
前言当在使用windows,仅仅想要通过右键删除某个文件时,密密麻麻无关甚至不常用的右键菜单功能项往往让你感到厌恶。为了删除右键无用的功能项,这里给将给出一些具体方案。删除右键无用菜单功能项1、更改软件配置,取消软件扩展的右键功能项如果是【还算比较有良心】的软件,一般在设置里有取消右键菜单项的选项,只需要取消勾选即可。2、删除菜单注册表中的栏目有些软件比较无理,设置里也没留解决方案,所以这里只能被
- Acunetix v24.9 发布下载,新增功能概览
web安全
Acunetixv24.9(Linux,Windows)-Web应用程序安全测试Acunetix|WebApplicationSecurityScanner请访问原文链接:https://sysin.org/blog/acunetix/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org重要提示AcunetixPremium现在使用日历化版本命名。请注意,从版本23.6.23062
- HCL AppScan Standard 10.7.0 发布下载,新增功能介绍
web安全
HCLAppScanStandard10.7.0(Windows)-Web应用程序安全测试HCLAppScanStandardv10forWindowsMultilingual请访问原文链接:https://sysin.org/blog/appscan-10/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org市场领先的应用程序安全解决方案(SAST、DAST、IAST、SCA、AP
- 专业绘图软件draw.io安装使用
橘猫.exe
软件安装与使用draw.io
专业绘图软件draw.io安装使用1.Draw.io介绍Draw.io是一个免费的在线图形编辑器,主要用于创建和编辑各种类型的图表和图形。它特别适用于制作流程图、组织结构图、网络图、思维导图等。以下是Draw.io的一些主要特点:多平台支持:Draw.io可以在不同的操作系统上运行,包括Windows、macOS和Linux。易于使用:界面直观,用户可以轻松地拖拽图形和文本,进行编辑和布局。丰富的
- Nexpose 7.4.0 for Linux & Windows - 漏洞扫描
漏洞
Nexpose7.4.0forLinux&Windows-漏洞扫描Rapid7on-premVulnerabilityManagement,releasedJan30,2025请访问原文链接:https://sysin.org/blog/nexpose-7/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgNexposeVulnerabilityScanner您的本地漏洞扫描程序搜
- postgresql数据库备份与还原
JessieHaha
postgresql
第一步:通过cmd进入到postgresql安装目录的bin下:windows:cdC:\PostgreSQL\pg95\binubuntu:cd/etc/postgresql/9.5/main第二步:备份数据库C:\PostgreSQL\pg95\bin>pg_dump-h164.82.233.54-Upostgresdatabasename>C:\databasename.bak-h:数据库服
- 彻底禁用Antimalware Service Executable服务
柯逸骞Ian
彻底禁用AntimalwareServiceExecutable服务系统篇彻底禁用AntimalwareServiceExecutable服务项目地址:https://gitcode.com/Resource-Bundle-Collection/36680简介本资源文件提供了一个详细的指南,帮助用户彻底禁用Windows系统中的AntimalwareServiceExecutable服务。该服务是
- VMware安装win10记录
qq_30362711
设计语言
(1)下载vmware,这个pro现在也免费的,下载地址:https://support.broadcom.com/group/ecx/productfiles?subFamily=VMware%20Workstation%20Pro&displayGroup=VMware%20Workstation%20Pro%2017.0%20for%20Windows&release=17.6.2&os=&
- windows上使用wsl安装ubuntu16.04
b2Superman
windows
1.设置->系统->开发者选项->开发人员模式2.控制面板->程序与功能->启动或关闭windows功能->勾选虚拟机平台和使用与Linux的windows子系统->重启3.win+x终端管理员启用wsl功能dism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux/all/norestart安装WSL2
- pip常见命令合集
漫路寻索
pip
pip相关查看版本pip--version查看帮助pip--help升级pipLinux或macOSpipinstall--upgradepip#python2pip3install--upgradepip#python3Windows平台升级:python-mpipinstall-Upip#python2python-mpip3install-Upip#python3或sudoeasy_inst
- 云服务器wsl2,在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker
FromNowToNow
云服务器wsl2
本文内容:了解WSL和WSL2;案例:在Windows10上开启WSL2并安装Ubuntu;案例:体验在WSL2中的Ubuntu安装Docker并运行nginx;视频讲解:图文讲解:什么是WSL?WindowsSubsystemforLinux,适用于Linux的Windows子系统可让开发人员按原样运行GNU/Linux环境-包括大多数命令行工具、实用工具和应用程序-且不会产生虚拟机开销。在WS
- Windows上安装与使用 Jupyter Notebook
梓仁沐白
pythonwindowsjupyteride
1.了解JupyterNotebookJupyterNotebook是一个交互式计算环境,非常适合进行数据科学和机器学习的研究和实验。可以在Notebook中直接编写代码、运行代码块、保存结果,非常直观。在安装JupyterNotebook时,可以选择全局环境(base环境)或虚拟环境。全局环境指的是安装在Miniconda或Anaconda根目录的Python环境,而虚拟环境是用于隔离不同项目和
- Node.js 中文编码问题全解析
skinGap
node.jsJenkinsandroid-studio
Node.js中文编码问题全解析问题背景在Node.js中执行Gradle命令时遇到中文输出乱码问题。这个问题涉及Windows系统、Java进程和Node.js三个层面的编码处理。问题分析最初的错误代码gradleProcess.stdout.setEncoding('utf-8');//错误:假设输出是UTF-8编码gradleProcess.stdout.on('data',(data)=>
- 【前端】Electron入门开发教程,从介绍Electron到基础引用以及部分深度使用,附带常见的十个报错问题的解决方案和代码优化。
爱上大树的小猪
前端electronjavascript
Electron是一个使用JavaScript、HTML和CSS等Web技术创建跨平台桌面应用程序的框架。它结合了Chromium渲染引擎和Node.js运行时,允许开发者构建高质量的桌面应用。下面是一个简要的Electron开发教程,从基础到深入,并包括一些常见的报错问题及其解决方案。一、介绍ElectronElectron能够使用前端技术栈开发桌面应用,支持Windows、macOS和Linu
- LibreOffice使用感受及兼容性问题
扎量丙不要犟
javac#c++
LibreOffice是一款开源且免费的office程序,能用在Windows,GNU/Linux以及macOS等操作系统上。LibreOffice分为六个模块(我只试用了前三个)1、Writer文本文档:功能和word相似,默认保存格式为odt,同时也能保存为docX等。2、Calc电子表格:功能和excel类似,默认保存格式为ods,同时也能保存为xlsx等。3、Impress演示文稿:功能和
- 解读Servlet原理篇二---GenericServlet与HttpServlet
周凡杨
javaHttpServlet源理GenericService源码
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte
- MySQL性能优化
bijian1013
数据库mysql
性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:
a.优化查询
b.优化数据库结构
- ThreadPool定时重试
dai_lm
javaThreadPoolthreadtimertimertask
项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。
由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。
为了解决不定间隔的重试,选择Timer和TimerTask来完成
package threadpool;
public class ThreadPoolTest {
- Oracle 查看数据库的连接情况
周凡杨
sqloracle 连接
首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根据这些表就可以获得会话信息
select sid,serial#,status,username,schemaname,osuser,terminal,ma
- 类的继承
朱辉辉33
java
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类
- android 悬浮窗特效
肆无忌惮_
android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在styl
- hadoop伪分布式搭建
林鹤霄
hadoop
要修改4个文件 1: vim hadoop-env.sh 第九行 2: vim core-site.xml <configuration> &n
- gdb调试命令
aigo
gdb
原文:http://blog.csdn.net/hanchaoman/article/details/5517362
一、GDB常用命令简介
r run 运行.程序还没有运行前使用 c cuntinue 
- Socket编程的HelloWorld实例
alleni123
socket
public class Client
{
public static void main(String[] args)
{
Client c=new Client();
c.receiveMessage();
}
public void receiveMessage(){
Socket s=null;
BufferedRea
- 线程同步和异步
百合不是茶
线程同步异步
多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法
多线程和异步:多线程可以做不同的事情,涉及到线程通知
&
- JSP中文乱码分析
bijian1013
javajsp中文乱码
在JSP的开发过程中,经常出现中文乱码的问题。
首先了解一下Java中文问题的由来:
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,
- js实现页面跳转重定向的几种方式
bijian1013
JavaScript重定向
js实现页面跳转重定向有如下几种方式:
一.window.location.href
<script language="javascript"type="text/javascript">
window.location.href="http://www.baidu.c
- 【Struts2三】Struts2 Action转发类型
bit1129
struts2
在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configurat
- 【HBase十一】Java API操作HBase
bit1129
hbase
Admin类的主要方法注释:
1. 创建表
/**
* Creates a new table. Synchronous operation.
*
* @param desc table descriptor for table
* @throws IllegalArgumentException if the table name is res
- nginx gzip
ronin47
nginx gzip
Nginx GZip 压缩
Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule
常用配置片段如下:
gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q
- java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交
bylijinnan
java
public class LinkListTest {
/**
* we deal with two main missions:
*
* A.
* 1.we create two joined-List(both have no loop)
* 2.whether list1 and list2 join
* 3.print the join
- Spring源码学习-JdbcTemplate batchUpdate批量操作
bylijinnan
javaspring
Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装
JDBC的batch操作:
String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
- [JWFD开源工作流]大规模拓扑矩阵存储结构最新进展
comsci
工作流
生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........
竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....
- base64编码和url编码
cuityang
base64url
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
- web应用集群Session保持
dalan_123
session
关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
dcj3sjt126com
数据库
public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCo
- solr StatsComponent(聚合统计)
eksliang
solr聚合查询solr stats
StatsComponent
转载请出自出处:http://eksliang.iteye.com/blog/2169134
http://eksliang.iteye.com/ 一、概述
Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能
二、参数
- 百度一道面试题
greemranqq
位运算百度面试寻找奇数算法bitmap 算法
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5} 找出出现次数为奇数的数字.
我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。
还有人觉得应该用算法xxx,我是没想到用啥算法好...!
还有觉得应该先排序...
还有觉
- Spring之在开发中使用SpringJDBC
ihuning
spring
在实际开发中使用SpringJDBC有两种方式:
1. 在Dao中添加属性JdbcTemplate并用Spring注入;
JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度
- JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
justjavac
json
2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&
- 网站项目建设流程概述
macroli
工作
一.概念
网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。
二.需求分析
项目立项
我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。
客户的需求说明书
第一步是需
- AngularJs 三目运算 表达式判断
qiaolevip
每天进步一点点学习永无止境众观千象AngularJS
事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
- Spark算子:统计RDD分区中的元素及数量
superlxw1234
sparkspark算子Spark RDD分区元素
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。
可以利用RDD的mapPartitionsWithInd
- Spring 3.2.x将于2016年12月31日停止支持
wiselyman
Spring 3
Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。
请大家及时准备及时升级到Spring
- fis纯前端解决方案fis-pure
zccst
JavaScript
作者:zccst
FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。
1,fis-pure的安装
$ fis install -g fis-pure
$ pure -v
0.1.4
2,下载demo到本地
git clone https://github.com/hefangshi/f