- android 时间的格式化问题
Shawn_LX
android中经常遇到要格式化时间,下面记录一下"yyyy-MM-dd”类型和”kk:mm:ss”类型的时间格式化方法:“staticSimpleDateFormatdateFormat=newSimpleDateFormat("yyyy-MM-dd");//只取年--月--日publicstaticintdiffDays(StringcompareTime){Calendarnow=Calen
- 2025-03-15 学习记录--C/C++-PTA 练习3-4 统计字符
小呀小萝卜儿
学习-C/C++学习c语言
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。一、题目描述⭐️练习3-4统计字符本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。输入格式:输入为10个字符。最后一个回车表示输入结束,不算在内。输出格式:在一行内按照letter=英文字母个数,blank=空格或回车个数,digit=数字字符个数,other=其他字符个数的格式输出。输入样例:a
- 别猜了!华为新机竟把屏幕“拉面式”展开?这波操作连余承东都憋不住了!
国货崛起
华为
家人们,今天数码圈集体翻车了!之前全网都在赌华为3月20日要发“小胖子折叠屏”,结果人家余承东反手甩出个泳池变宽的视频,配文“1610大开想象”——好家伙,这哪是折叠屏啊?分明是让手机玩起了瑜伽,直接把屏幕“抻面条”式展开啊!一、折叠屏?我们都猜错啦!之前数码博主们信誓旦旦说新机是3:2比例小折叠,连苹果定制4:3屏的冷知识都搬出来了。结果华为反手一个泳池拉宽特效,把网友整不会了:合着这屏幕不是叠
- python的格式转换库_3个Python PDF库,提取信息、转换格式、分割剪裁有它就够了!...
来朝三博士
python的格式转换库
PDFMiner:PDFMiner是一个从PDF文档中提取信息的工具。与其他PDF相关的工具不同,它只用于获取和分析文本数据。PDFMiner能获取页面中文本的准确位置,以及字体或行等其他信息。它还有一个PDF转换器,可以将PDF文件转换成其他文本格式(如HTML)。还有一个可扩展的解析器PDF,可以用于文本分析以外的其他用途。(地址https://github.com/euske/pdfmine
- SpringBoot实践(三十二):5分钟搭建springboot单体应用开发框架
A叶子叶
#SpringBoot与微服务java开发语言
熟悉语言和开发工具上基础快速使用框架构建应用是个机械工作,5分钟完成开发准备工作,没有冗余动作。目录准备工作开发框架搭建spring初始化常规依赖其他依赖规范化开发目录结构依赖适配代码生成器响应体封装github代码准备工作后端开发需要数据持久化,数据库使用mysql,这也是生产环境大部分的选择,本地开发如果没有mysql可以直接在idea上创建h2数据库,具体创建方式可以参考:使用IDEA创建H
- Feign性能调优
௸྄ིོུ倾心ღ᭄ᝰꫛꫀꪝ
Feign性能调优测试demo地址:https://gitee.com/bjrts/spring-cloud-study-demo/tree/feign/父项目pom4.0.0com.baojiarenfeignpom1.0-SNAPSHOTeureka-servereureka-server02service-providerservice-provider02service-consumers
- Agora-Uniapp-SDK 使用指南
章瑗笛
Agora-Uniapp-SDK使用指南Agora-Uniapp-SDK项目地址:https://gitcode.com/gh_mirrors/ag/Agora-Uniapp-SDK1.项目目录结构及介绍Agora-Uniapp-SDK是一个基于Uni-app与AgoraAndroid和iOS视频SDK实现的集成库,它专门设计用于简化在uni-app项目中集成Agora音视频功能的过程。以下是其主
- 探索未来架构:基于AWS的响应式微服务框架
柏赢安Simona
探索未来架构:基于AWS的响应式微服务框架reactive-refarch-cloudformationReactiveMicroservicesArchitectureswithAmazonECS,AWSLambda,AmazonKinesisStreams,AmazonElastiCache,andAmazonDynamoDB项目地址:https://gitcode.com/gh_mirror
- blockly二次开发
刘阿去
目前有的问题1.文档少,主要是因为谷歌的网站上不去,2.BlocklyDevelopTools使用有问题,预览有问题,暂时无法解决.目前源码下载难度较大github下载速度慢,自己在gitee上弄了一份.https://gitee.com/liuaqu/blockly
- python提取excel数据批量生成固定格式的word文件的问题
鱼弦
【HOT】技术热谈excelword
鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)使用Python从Excel中提取数据并生成固定格式的Word文档1.介绍本项目旨在介绍如何使用Python从Excel中提取数据并生成固定格式的Word文档
- 100.HarmonyOS NEXT跑马灯组件教程:实际应用与场景示例
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT跑马灯组件教程:实际应用与场景示例1.跑马灯组件应用概述跑马灯组件在HarmonyOSNEXT应用中有着广泛的应用场景,特别是在需要在有限空间内展示较长文本内容的情况下。本文将介绍跑马灯组件的实际应用场景和使用方法,帮助开发者更好地理解
- 94.HarmonyOS NEXT动画系统实现教程:深入理解FuncUtils
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT动画系统实现教程:深入理解FuncUtils1.动画系统基础1.1核心概念概念说明应用场景动画持续时间动画执行的时长控制动画速度动画曲线动画的变化规律定义动画效果动画回调动画执行的具体内容实现状态变化1.2动画执行函数解析exportf
- 97.HarmonyOS NEXT跑马灯组件教程:基础概念与架构设计
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT跑马灯组件教程:基础概念与架构设计1.跑马灯组件概述跑马灯(Marquee)是一种常见的UI组件,主要用于在有限的空间内展示超出显示区域的文本内容。当文本内容过长无法在固定宽度内完整显示时,跑马灯组件会使文本自动滚动,以便用户可以查看全
- 85.HarmonyOS NEXT 网络请求与数据处理:构建可靠的数据层
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT网络请求与数据处理:构建可靠的数据层1.网络请求基础1.1基本概念概念说明使用场景HTTP请求基本的网络通信API调用WebSocket双向实时通信即时消息数据序列化数据格式转换请求/响应处理1.2HTTP请求封装classHttpCl
- 82.HarmonyOS NEXT 性能优化指南:从理论到实践
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT性能优化指南:从理论到实践1.性能优化概述1.1性能指标指标类型关键指标目标值启动时间首屏渲染=[];privatepageSize:number=20;//2.使用虚拟列表build(){List(){LazyForEach(this
- C 语言取绝对值
dzdesigned
c语言算法linux
在C语言中,你可以使用库函数`abs()`来取得一个数的绝对值。`abs()`函数属于``头文件,并且可以处理多种类型的数据。以下是一个示例:```c#include#includeintmain(){intnum=-5;intabsNum;absNum=abs(num);//使用abs()函数获取绝对值printf("绝对值:%d\n",absNum);return0;}```另外,你也可以自己
- 单向链表中间节点
无限码力
算法刷题笔记链表算法笔试真题华为ODA卷数据结构
单向链表中间节点真题目录:点击去查看A卷100分题型题目描述求单向链表中间的节点值,如果奇数个节点取中间,偶数个取偏右边的那个值。输入描述第一行链表头节点地址后续输入的节点数n后续输入每行表示一个节点,格式节点地址节点值下一个节点地址(-1表示空指针)输入保证链表不会出现环,并且可能存在一些节点不属于链表。输出描述单向链表中间的节点值用例1输入000104000003-10001051230911
- RISC-V指令集架构的形式语义——基于Haskell的实现
富珂祯
RISC-V指令集架构的形式语义——基于Haskell的实现riscv-semanticsAformalsemanticsoftheRISC-VISAinHaskell项目地址:https://gitcode.com/gh_mirrors/ri/riscv-semantics项目介绍本项目RISC-VSemantics在GitHub上托管,提供了一个使用Haskell编写的RISC-V指令集架构(
- 探索高效Arduino编程:FRP与Haskell的完美结合
管吟敏Dwight
探索高效Arduino编程:FRP与Haskell的完美结合frp-arduinoArduinoprogrammingwithoutthehassleofC.项目地址:https://gitcode.com/gh_mirrors/fr/frp-arduino在众多开源项目中,有一个项目以其独特的技术栈和创新的理念脱颖而出,它就是基于Haskell的FRP(FunctionalReactivePro
- 探索Haskell开发的新境界:利用haskell.nix与Nix构建高效生态系统
计蕴斯Lowell
探索Haskell开发的新境界:利用haskell.nix与Nix构建高效生态系统haskell.nixAlternativeHaskellInfrastructureforNixpkgs项目地址:https://gitcode.com/gh_mirrors/ha/haskell.nix在快速演进的软件开发世界中,Haskell以其严谨的类型系统和高度表达性脱颖而出。而当结合强大的Nix工具链时,
- 引领高效开发:基于Haskell与Polysemy的纯净架构实现
幸俭卉
引领高效开发:基于Haskell与Polysemy的纯净架构实现PolysemyCleanArchitectureShowcasinghowthePolysemylibrarycanbeusedtoimplementaRESTapplicationconformingtotheguidelinesoftheCleanArchitecturemodel.项目地址:https://gitcode.co
- kube-prometheus-stack部署prometheus全栈监控k8s
时空无限
Kuberneteskubernetes
添加源helmrepoaddprometheus-communityhttps://prometheus-community.github.io/helm-charts更新源helmrepoupdate成功输出Hangtightwhilewegrabthelatestfromyourchartrepositories......Successfullygotanupdatefromthe"prom
- k8s-06-prometheus-stack
多懂一些
kubernetes实战nginxlinuxcentosprometheus
安装#下载yaml#[下载](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack)#镜像下载dockerlogin--username=xxxx registry.cn-shanghai.aliyuncs.comdockerpullregistry.cn-shangha
- prometheus-helm的使用
weixin_43806846
prometheus
1、部署Prometheus监控平台1、下载安装Prometheus(当前集群版本1.26.3)gitclonehttps://github.com/prometheus-operator/kube-prometheus.git-brelease-0.12安装:cdkube-prometheus/创建命名空间和crd:kubectlapply--server-side-fmanifests/set
- 如何在github上参与开源项目
这个懒人
github开源软件
1.创建GitHub账号如果你还没有GitHub账号,首先需要注册一个:访问GitHub官网。点击右上角的“Signup”按钮,填写注册信息并完成注册。2.找到感兴趣的项目GitHub上有成千上万的开源项目,你可以通过以下方式找到感兴趣的项目:搜索项目:在GitHub首页的搜索框中输入关键词,例如“机器学习”、“Web开发”等。使用高级搜索功能,通过语言、标签等过滤条件找到合适的项目。浏览Tren
- 玩转github
黄白柴柴
githubgithub
megithub可以给仓库添加开发人员吗4o是的,GitHub允许仓库管理员为仓库添加开发人员,并设置这些开发人员的角色和权限。这里是一个简单的步骤指导,教你如何给一个GitHub仓库添加开发人员:前提条件你必须有这个仓库的权限(通常是Owner或Maintainer)。对于私有仓库和组织仓库,你需要确保对方有一个GitHub账户。步骤1:前往仓库的设置页面打开你的GitHub仓库。点击页面右上角
- 95.HarmonyOS NEXT 图片约束处理教程:深入理解Constrain
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT图片约束处理教程:深入理解Constrain1.图片约束基础1.1核心概念概念说明应用场景图片适配类型定义图片如何适应容器图片展示方式偏移约束限制图片移动范围拖拽和缩放边界检测判断是否超出显示范围图片浏览1.2图片适配类型定义expor
- 92.HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质量应用
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT开发学习路径与最佳实践总结:构建高质量应用1.学习路径指南1.1基础知识阶段阶段重点内容相关教程学习目标入门基础开发环境、基本语法01-03搭建环境,理解基础概念组件开发UI组件、生命周期04-06掌握组件开发和状态管理数据处理状态管理
- 89.HarmonyOS NEXT 应用安全与隐私保护指南:构建安全可靠的应用
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT应用安全与隐私保护指南:构建安全可靠的应用1.应用安全基础1.1安全威胁分析威胁类型风险级别防护措施实现方式数据泄露高加密存储数据加密网络攻击高HTTPS/SSL安全传输代码注入中输入验证参数检查未授权访问高权限控制访问控制1.2安全配
- docker 拉取镜像报错 Error response from daemon: Get ‘https://registry-1.docker.io/v2/ ‘: context deadline
江西谢霆锋
docker容器运维
阿里云服务器:docker拉取镜像报错Errorresponsefromdaemon:Get'https://registry-1.docker.io/v2/':contextdeadline遇到“Errorresponsefromdaemon:Get'https://registry-1.docker.io/v2/':contextdeadlineexceeded”这个错误,通常表示您的网络连接
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http