- 账本 1.01 版本:样式优化升级分享
烂蜻蜓
html前端css
在开发账本应用的过程中,持续的样式优化对于提升用户体验起着至关重要的作用。本次账本1.02版本着重对样式进行了全面优化,让应用在视觉上更加美观、操作上更加便捷。下面就为大家分享一些关键代码及优化思路。话不多说,先上效果图。一、整体布局优化在index.vue和add.vue中,整体布局都采用了flex布局方式。以index.vue为例:.container{display:flex;flex-di
- 809政府平台H5无插件播放1078URL
毛三仙
视频播放vue.js
809政府平台视频播放器接入指南背景政府平台播放JT/T1078-20166.2音视频流URL大都是通过Flex开发一个播放器完成,但Flash支持已经被大多数浏览器移除或阻止,需要一个新的方案来解决播放问题。我们开发了一个播放器,引用一个js即可简单实现H5无插件播放此URL,最少仅需3行代码。控件地址https://lib.cvtsp.com/video/CVNetVideoJs/1.3.0/
- 鸿蒙开发:自定义一个搜索模版
前言代码案例基于Api13。在之前的文章中,我们简单分析了弹性布局Flex,并使用Flex实现了一个简单的流式布局,今天这篇文章,我们就结合搜索框,完成一个常见的搜索页面,具体的效果如下图所示:这样的一个模版,可以简单的分为,三个部分,分别是上边的搜索框,中间的历史搜索和下边的热门搜索,搜索框,我们直接可以使用系统的组件Search,历史搜索,由于是内容不一的搜索的内容,这里使用弹性布局Flex,
- HarmonyOS鸿蒙开发实战(5.0)(Flex) 组件布局>图片九宫格封装
让开,我要吃人了
OpenHarmonyHarmonyOS鸿蒙开发harmonyos华为鸿蒙移动开发开发语言鸿蒙系统android
鸿蒙HarmonyOS开发实战往期必看文章:(持续更新......)HarmonyOSNEXT应用开发性能实践总结(持续更新......)HarmonyOSNEXT应用开发案例实践总结合集(持续更新......)一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!最新版!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)介绍本示例介绍使用(
- 前端 - uniapp - - 滚动容器scroll-view实现横向滚动
cv高级工程师YKY
uniapp前端uni-app
微信开放平台scrol-view的官方文档说明https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.htmlscrollview相当于给div加上了overflow-x:auto;属性想要实现横线滚动官方文档有说明需要配置scroll-x和enable-flex为true并其需要给高度和flex-directi
- chrome内核大版本升级涉及核心事项
ปรัชญา แค้วคำมูล
chromec++性能优化
Chrome内核(Chromium)大版本升级涉及多个核心事项,需要从技术、兼容性、安全、性能等多维度进行系统规划。以下是关键核心事项及应对策略:1.技术架构调整V8引擎升级:JavaScript引擎优化可能引入新语法支持(如ES新特性)、性能改进或GC机制调整,需验证业务代码兼容性。渲染引擎变更:Blink引擎的渲染逻辑调整可能导致页面布局差异(如CSSFlexbox/Grid实现变化),需全面
- 网上发现的一个 《Flash&flex大全》
merryken
as3flash/flexflashflexactionscript引擎游戏adobe
官方在线帮助(没标英文的都是中文)用于AdobeFlashPlatform的ActionScript3.0参考更多参考使用这样的链接下载离线版:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/standalone.zip中文离线版将上面的en_US改为zh_CN(注意大小写)用于AdobeFlashProfess
- Flash&flex大全
gebizhihu
Flexflashflexactionscript引擎游戏adobe
官方在线帮助(没标英文的都是中文)用于AdobeFlashPlatform的ActionScript3.0参考更多参考使用这样的链接下载离线版:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/standalone.zip中文离线版将上面的en_US改为zh_CN(注意大小写)用于AdobeFlashProfess
- flex布局
数据潜水员
前端css3html5
1.媒体查询```css body{ display:flex; } div{ width:100px; margin:20px; height:100px; background-color:palevioletred; } @media(max-width:500px){ body{ dis
- 仓储系统货位优化毕业论文【Flexsim仿真】
aikelele
人工智能
一、内容简介由堆垛机、货架、输送系统、管理系统、控制系统等组成的传统堆垛式仓储系统因为其成熟的技术和推广方式、高效等特点广泛的应用在物流、车间、制造等行业。但是堆垛机仓库每个巷道都会拥有一台堆垛机,其作业方式受到限制,鲁棒性比较差,一个巷道堆垛机出现问题题将导致整个巷道作业停止。同时,堆垛机立体仓库的可协调性比较差,企业的产品有旺季、淡季之分,在旺季时可能满足正常的出入库需求;在淡季时,可能会出现
- 【HarmonyOS NEXT】swiper中图片高度不一致时,如何设置居中
Mayism123
harmonyos
【问题描述】在swiper中设置image,当图片高度不一致时,无法居中显示。【解决方案】可以在image外嵌套一层Flex,设置居中,且高度为100%。示例代码如下:Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}){Image($r('app.media.app_icon')).width('100%')}.h
- 在windows上通过idea搭建doris fe的开发环境(失败案例,很多报错都是因为我是离线环境编译,还是得联网可能会顺利点)
fzip
DorisDoris在CentOS7编译
以下是基于Windows10+CentOS环境通过IntelliJIDEA搭建DorisFE开发环境的完整指南,整合多份部署文档的关键步骤和避坑要点:一、前置环境准备1.准备Linux环境,可以使用CentOS7或者8•操作步骤:更新系统包:yumgroupinstall-y"DevelopmentTools"yuminstall-yautomakebisonflexboost-devellibe
- 迈向数据科学的第一步:在Python中支持向量回归
weixin_26746401
python机器学习人工智能深度学习大数据
什么是支持向量回归?(WhatisSupportVectorRegression?)Supportvectorregressionisaspecialkindofregressionthatgivesyousomesortofbufferorflexibilitywiththeerror.Howdoesitdothat?I’mgoingtoexplainittoyouinsimpletermsby
- flex布局中flex-shrink的使用
Absorbed-
html
12345在给他子元素不加flex-shrink且父盒子中不加flex-wrap=“wrap”的情况下,超出父盒子的宽度,父盒子会自动压缩子盒子的宽度。当给子盒子加上flex-shrink:0,子盒子不会被压缩宽度;
- CSS flex-shrink 属性
shengyin714959
笔记csscss3前端
实例A,B,C设置flex-shrink:1,D,E设置为flex-shrink:2:菜鸟教程(runoob.com)#content{display:flex;width:500px;}#contentdiv{flex-basis:120px;border:3pxsolidrgba(0,0,0,.2);}.box{flex-shrink:1;}.box1{flex-shrink:2;}div总宽
- 27-flex-grow,flex-shrink,flex-basis,flex复合写法,order,flex-wrap
吴椰啵
Web前端HTML+CSS笔记前端javascripthtml
1.flex-grow:弹性元素的放大比例,默认值为0,即如果存在剩余空间,也不放大/*伸张系数:所有元素平分剩余空间*/flex-grow:1;2.flex-shrink:弹性元素的缩小比例,默认值为1,即如果空间不足,该项目将缩小/*flex-shrink收缩系数*//*大小相同的时候收缩的比例是一样的,否则反之*//*总结:剩余空间*弹性系数/弹性系数之和=分配空间本身的宽度+分配空间=最终
- css使用flex-shrink调整flex布局超出宽度
crayon-shin-chan
surprise#csscss
1.简介flex-shrink属性指定了flex元素的收缩规则。flex-shrink仅在flex布局的子元素中起作用flex元素仅在默认宽度之和大于容器的时候才会发生收缩,其收缩的依据是flex-shrink的值。相反的,flex-grow定义了子元素的扩展比例,在默认宽度之和小于容器宽度时发生扩展。2.使用.container{overflow-x:scroll;overflow-y:hidd
- HarmonyOS NEXT组件深度全解:十大核心组件开发指南与实战
北辰alk
鸿蒙harmonyos华为
文章目录引言:组件化开发的未来趋势第一章:基础UI组件精要1.1Button:交互设计的基石1.1.1多态按钮实现1.1.2高级特性1.2Text:文字渲染的进阶技巧1.2.1富文本混排1.2.2性能优化第二章:布局组件深度解析2.1Flex:弹性布局的工业级实践2.1.1复杂布局构建2.1.2响应式设计2.2Stack:层叠布局的魔法2.2.1悬浮层实现2.2.2高级应用第三章:容器类组件开发秘
- 第二章:基础概念精讲 - 第五节 - Tailwind CSS Flex 和 Grid 布局实战
Flex布局基础1.Flex容器设置Item1Item2Item3行布局列布局允许换行禁止换行2.主轴对齐左对齐居中对齐右对齐两端对齐环绕对齐均匀对齐3.交叉轴对齐顶部对齐居中对齐底部对齐拉伸对齐基线对齐Flex实战案例1.导航栏布局首页产品服务关于登录2.卡片网格布局卡片标题卡片描述内容Grid布局基础1.Grid容器设置Item1Item2Item32.网格列配置跨越4列跨越8列Grid实战案
- css动画实现铃铛效果
木心操作
CSScss前端css3
代码*,*::after,*::before{margin:0;padding:0;box-sizing:border-box;}body{width:100%;height:100vh;background-color:#1d1d1d;display:flex;justify-content:center;align-items:center;}.notification{width:200px
- 鼠标拖动元素实现移动滚动条+实战
伊泽瑞尔.
前端开发实践javascript前端
横向滚动条,选择隐藏滚动条ul{list-style-type:none;display:flex;border:1pxsolidred;width:200px;padding:0px;margin:5%;user-select:none;overflow-x:auto;/*添加横向滚动*/white-space:nowrap;/*防止标签换行*//*禁止文字复制*/}/*隐藏Webkit浏览器的
- 移动WEB开发流式布局
Lindsay_Jie
移动端学习笔记前端
目录一.移动端基础二.视口三.二倍图四.移动端开发选择五.移动端技术解决方案六.移动端开发之流式布局(百分比布局)七.移动端开发之flex布局八.rem单位九.媒体查询(@media)一.移动端基础1.常见移动端屏幕尺寸:数据参照MaterialDesign2.调试方式:利用chrome浏览器模拟手机浏览器进行调试。二.视口视口(viewport)是浏览器显示页面内容的屏幕区域,视口可以分为布局视
- Laravel 多图片上传
—Qeyser
HtmlLaravellaraveljavascript前端
Laravel+htmljs图片上传实现前端代码多图片上传(最多5张).image-preview{display:flex;flex-wrap:wrap;margin-top:20px;}.image-previewimg{max-width:100px;max-height:100px;margin:5px;border:1pxsolid#ccc;border-radius:5px;}.upl
- 前端开发中如何使用ChatGPT辅助开发?
破碎的天堂鸟
学习教程chatgpt
以下是前端开发中使用ChatGPT辅助开发的完整指南,涵盖核心应用场景、实践方法及注意事项:一、代码生成与优化基础代码生成HTML/CSS/JS框架搭建:通过自然语言描述需求(如"生成带导航栏的响应式页面"),ChatGPT可快速生成结构清晰的代码骨架。例如,输入“用Flexbox实现垂直水平居中布局”,可得到包含justify-content和align-items属性的代码[1][32]。组件
- 一二和布布和好网页
九月の约定
javascript前端css
效果类似和好神器一二版_哔哩哔哩_bilibili直接上代码宝宝我们和好吧body{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background-color:#ffe6e6;font-family:"MicrosoftYaHei",sans-serif;}.container{text
- css实现梯形tab切换
一只快乐的小青蛙
cssjavascript前端
{{item.name}}consttabList=ref([{id:1,name:'认证车辆',},{id:2,name:'临时加车',},])constcheckNum=ref(1).tabs{display:flex;width:100%;gap:20px;height:40px;background-color:#f0f4f8;.tabs_item{display:flex;width:5
- css 梯形tab标签页
有脾气的程序媛
css
现在越来越时尚化,tab标签页已经不像原来的那么传统格式化了,现在给大家实现一个简约美观的tab标签页比较简约的梯形tabDocument.nav{display:flex;width:300px;align-items:flex-end;}.nav.item{flex:1;height:40px;background:#eee;border-radius
- 【Javascript网页设计】产品展示 JavaScript 设计案例
Netsuite + 影刀
Javascript案例javascript前端html
代码如下:产品展示页面body{font-family:Arial,sans-serif;margin:20px;text-align:center;}.product-container{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;}.product-card{border:1pxsolid#ddd;padding:15
- 如何快速的用pdfjs建立一个网页可以在线阅读你的PDF文件
宇凡网络
pdfpdfjs
#如何快速的用pdfjs建立一个网页可以在线阅读你的PDF文件#也许很多人都用过这个pdfjs,我之前也用过,但是每次配置也是挺麻烦的,于是就写了一个页面远程调用CDN文件,这样一个页面就可以搞定,话不多说直接上代码:PDFViewer#pdf-container{width:100%;height:100vh;overflow:auto;display:flex;flex-direction:c
- X-LoRA:高效微调 LoRA 系列,实现不同领域知识专家混合模型
yumuing blog
前沿论文解读llama人工智能语言模型
文献卡X-LoRA:MixtureofLow-RankAdapterExperts,aFlexibleFrameworkforLargeLanguageModelswithApplicationsinProteinMechanicsandMolecularDesign作者:EricL.Buehler;MarkusJ.BuehlerDOI:10.48550/arXiv.2402.07148摘要:We
- 解读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