- 从阿里云EDM到美团云:典型微服务治理平台的实战经验分享
码农老起
微服务架构云原生
目录一.阿里云EDM(EnterpriseDistributedApplicationService)二.腾讯云TSF(TencentServiceFramework)三.华为云FusionStage四.京东云JDC(JDCloudMicroservicePlatform)五.百度智能云CloudStack六.字节跳动Tinker七.小米云平台八.美团云服务平台随着微服务架构的广泛应用,微服务治理
- 深入解析 Vue 3 编译宏:揭开 `<script setup>` 的魔法面纱
斯~内克
vue知识点前端vue.js前端javascript
一、编译宏的本质与设计哲学1.1什么是编译宏在Vue3的CompositionAPI生态中,编译宏(CompilerMacros)是一组特殊的语法结构,它们在代码编译阶段被Vue编译器处理,最终转换为标准的JavaScript代码。这些宏函数是Vue3语法糖的核心组成部分,主要包含:defineProps:声明组件propsdefineEmits:定义自定义事件defineExpose:暴露组件公
- C语言 第一章 认识C语言
点纭
c语言开发语言
目录C语言的发展史为什么要学习C语言常用的IDE工具Dev-C++MicrosoftVisualStudioCLion第一个编程程序C语言的程序运行机制C语言的程序结构C语言的发展史1960年,ALGOL60语言诞生,它的块结构、数据类型等概念为C语言奠定了基础。1969年,美国贝尔实验室的肯·汤普森在开发UNIX系统时,为了克服汇编语言编程的不便,基于BCPL语言开发了B语言,这是C语言的前身。
- ORB_SLAM2编译build_ros.sh时报错([rosbuild] Error from directory check: /opt/ros/kinetic/share)
Spider_man_
linux
参考:https://www.pianshen.com/article/8679352229/编译build_ros.sh时报错在ros上编译build_ros.sh时报错,出现如下信息:BuildingROSnodesmkdir:cannotcreatedirectory‘build’:Fileexists[rosbuild]BuildingpackageORB_SLAM2[rosbuild]E
- elasticsearch添加kerberos认证完整操作流程
鸡蛋可好吃了
elasticsearchjenkins大数据java
kerberos认证的教程网上有很多,但是es的真的找遍全网都很少有详细的教程!我苦读官网,到处搜罗零碎信息,才终于完成es的kerberos认证。文章目录一、elasticsearch升级白金版1.下载对应版本源码,修改相关类2.编译后替换jar包中的class文件3.更新license二、搭建kerberos服务1.安装kerberos服务端2.安装kerberos客户端3.服务端配置文件kd
- Flink连接kerberos认证的hive 并使用table API
lisacumt
flinkhive大数据
有个问题flink的kerveros通过配置设置。但是HiveCatalog还需要再次使用UserGroupInformation再次认证。直接上代码:importcom.amihaiemil.eoyaml.*;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importorg.apa
- Java连接ES的多种方式
dkjhl
elasticsearchelasticsearch大数据
前言本篇文章主要介绍:使用Basic、Transport、Kerberos三种方式连接ESBisic方式/***Basic方式(带用户名和密码方式访问)*@paramuser用户名*@parampassword密码*@paramindex索引名*/privatestaticvoidbasicConnect(Stringuser,Stringpassword,Stringindex){try{Sys
- Java | 基于Kerberos认证对接华为云Elasticsearch
yinbp
bbosselasticjava华为云elasticsearchbboss
可以通过华为官方提供的Java客户端,来实现基于Kerberos认证访问和操作华为云Elasticsearch;亦可以使用更加通用的开源ElasticsearchJava客户端bboss,来实现基于Kerberos认证访问和操作华为云Elasticsearch。本文介绍使用bboss实现基于Kerberos认证访问和操作华为云Elasticsearch的方法。1.bboss介绍bboss是一个高性
- kafka的ACL配置的sasl.kerberos.principal.to.local.rules配置解释
tkgup
常见问题解决方案kafka分布式
kafka配置acl认证的用户名转换规则1、Kerberos中的介绍2、自定义saslusername3、自定义ssl的用户名4、关于kafka配置kerberos以及开启acl的实践1、Kerberos中的介绍Kerberos关于此配置项的解释https://web.mit.edu/Kerberos/krb5-latest/doc/admin/conf_files/krb5_conf.html中
- 关于CMAKE中查找自定义路径OpenCV的问题
gxsHeeN
opencvopencvcmake多版本
关于CMAKE中查找自定义路径OpenCV的问题前段时间在机器上(ubuntu16.04)安装了ROS_kinetic,因此机器上散布着opencv2.4.9、opencv3.0.0以及ros引入的opencv3.2.0。删掉机器上的opencv2.4.9之后,发现使用cmake编译opencv程序时,总是找到3.2.0的opencv,而不能找到3.0.0(opencv3.0.0make时的CMA
- XTDrone 无人机仿真平台使用教程
杭战昀Grain
XTDrone无人机仿真平台使用教程项目地址:https://gitcode.com/gh_mirrors/xt/XTDrone1.项目的目录结构及介绍XTDrone是一个基于PX4、ROS和Gazebo的无人机仿真平台。以下是项目的主要目录结构及其介绍:XTDrone/├──communication/#通信模块├──control/#控制模块├──coordination/#协同模块├──im
- 编译 Linux 4.15.11 内核并增加系统调用
Isolarae
编译Linux4.15.11内核并增加系统调用实验日期;2018年3月21日-2018年3月22日实验环境:主机:操作系统:MicrosoftWindows10.0.16299Build16299处理器:
[email protected]物理内存:8.00GB虚拟机软件:OracleVMVirtualBox5.2.6r120293虚拟机:操作系统:openSUSE201
- npm : 无法加载文件 D:\dev\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=1
学不完@根本学不完
npm前端node.js
vscode终端npminstall提示:npm:无法加载文件D:\dev\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.microsoft.com/fwlink/?LinkID=1解决:
- Bioinformatics exercise
后端
MolecularNutrition:ApplicationofBioinformaticstotheanalysisofgeneexpressionby5’deletionanalysisofpromoterregionsBioinformaticsexercise:Introsession9amMon17/02/2025(A07SB-Gateway).Mon,24/02/2025(14:00–
- Sqlserver安全篇之_隐藏实例功能和禁用SQL Server Browser服务
lusklusklusk
sqlserversqlserver安全数据库
总结:1、隐藏实例功能和禁用SQLServerBrowser服务的功能一样,对应非默认实例(且这个默认实例是1433端口)的情况下,都是需要在连接字符串中提供端口号才能连接到实例2、隐藏实例功能后,就算开启了SQLServerBrowser服务,SQLServerBrowser服务也无法识别计算机上的所有SQLServer实例的端口和命名管道隐藏实例https://learn.microsoft.
- 人工智能深度学习系列—深入探索KL散度:度量概率分布差异的关键工具
学步_技术
自动驾驶人工智能人工智能深度学习自动驾驶机器学习
人工智能深度学习系列—深度解析:交叉熵损失(Cross-EntropyLoss)在分类问题中的应用人工智能深度学习系列—深入解析:均方误差损失(MSELoss)在深度学习中的应用与实践人工智能深度学习系列—深入探索KL散度:度量概率分布差异的关键工具人工智能深度学习系列—探索余弦相似度损失:深度学习中的相似性度量神器人工智能深度学习系列—深度学习中的边界框回归新贵:GHM(GeneralizedH
- Java:实现导出报表到Excel表格(附带源码)
Katie。
javaexcel开发语言
项目背景在许多企业应用中,生成报表并将其导出到Excel表格是一项常见需求。Java通过第三方库,如ApachePOI,可以实现将数据导出到Excel格式。ApachePOI提供了对MicrosoftExcel文件(.xls和.xlsx格式)的支持,可以让我们在Java程序中轻松生成Excel报表。本项目的目标是实现一个Java程序,生成一个简单的报表,并将其导出为Excel表格(.xlsx格式)
- Mac M1芯片通过源码安装Python2.7.x
乌萨奇敲代码
macospython
文章目录MacM1芯片通过源码安装Python2.7.x1.下载源码2.安装依赖3.配置环境4.配置编译选项5.编译6.验证安装MacM1芯片通过源码安装Python2.7.x首先,由于AppleM1芯片使用的是ARM架构,已经不支持Python2.7.x了,所以需要利用Rosetta手动编译Python2.7.x,这里以安装Python2.7.17为例。1.下载源码首先,从Python官方网站下
- python如何将PDF文件转换为word文档
小九不懂SAP
我的Python日记pythonpdfword
以下有几种常用的方法:使用pdfminer.six和python-docx结合自定义逻辑:pdfminer.six是一个用于从PDF文档中提取文本和元数据的工具。python-docx是一个用于创建、更新MicrosoftWord(.docx)文件的Python库。但是,这种方法需要你自己处理文本的布局和格式,因为PDF和Word在格式表示上有很大的不同。使用命令行工具并通过Python调用:有些
- vue : 无法加载文件 D:\软件安装\nodejs\node_global\vue.ps1,因为在此系统上禁止运行脚本。(解决办法)
云边的快乐猫
#前端BugBug大全解决vue.jsjavascript前端node.jsvscode
一、遇到问题在vscode的终端里面执行vue-V。会出现这个报错:vue:无法加载文件D:\软件安装\nodejs\node_global\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.microsoft.com/fwlink/?LinkID=135170中的about_Execution_Policies。所在位置行:1字符:1+vue-v+~~~+Cat
- yarn : 无法加载文件 D:\ProgramFiles\nodejs\yarn.ps1,因为在此系统上禁止运行脚本
JackieDYH
ERRORhtmljavascript前端
错误信息yarn:无法加载文件D:\ProgramFiles\nodejs\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.microsoft.com/fwlink/?LinkID=135170中的about_Execution_Policies。所在位置行:1字符:1+yarnrunserve+~~~~+CategoryInfo:SecurityError:
- 机器学习02
天行者@
机器学习人工智能深度学习
三、模型选择与调优1交叉验证(1)保留交叉验证HoldOutHoldOutCross-validation(Train-TestSplit)优点1.简单高效操作简便:这种方法的实现非常直接,只需要将原始数据集按照一定比例(常见的如70:30、80:20等)随机划分为训练集和测试集。例如,在Python的scikit-learn库中,使用train_test_split函数可以轻松完成划分,代码简洁
- 插件总算是上架到Edge商店了
前端
插件总算是上架到Edge商店了,谷歌商店刚注册完开发者账号,而且审核比Edge严格多了,已经被打回来好几次了(/=_=)/~┴┴今天根据反馈刚改完提交,看网上介绍的说,估计得审核一周吧。最后附上Edge插件体验地址:https://microsoftedge.microsoft.com/addons/detail/%E6%A9%99%E...今天水一篇,马上月底了,炉石还没上传说呢๑乛◡乛๑
- rpm、yum、编译安装
zai.zai
linuxnginxcentos运维
1、软件包系统不同的Linux发行版用的是不同的软件包系统,并且原则上,适用于发行版的软件包与其他版本是不兼容的。多数Linux发行版采用不外乎两种软件包技术阵营软件包系统发行版本(部分)Debian类Debian、Ubuntu、Xandros、LinspireRedHat类Fedora、CentOS、RedHatEnterpriseLinux2、软件包工作方式软件包:软件包是包含应用程序及器元数
- AccountsRt.dll出现0xc0000020未被指定在Windows运行
用户7756535831965
windows
AccountsRt.dll为MicrosoftWindows的一个动态链接库。由于很多常用软件都是采用MicrosoftVisualStudio编写的,所以这类软件的运行需要依赖微软VisualC++运行库,比如像QQ、迅雷、Adobe软件等等,如果没有安装VC++运行库或者安装的版本不完整,就可能会导致这些软件启动时报错,提示缺少库文件。下面从解决实际问题的角度上,推荐几种有效方法!方法1:下
- Qt读写Excel文件的各种常用的方法
elikang
qtQtQXslxEXcel
https://wiki.qt.io/Handling_Microsoft_Excel_file_format里面总结了Qt读写Excel文件的各种常用的方法,包括一些第三方的插件。通常,在windos系统操作Excel上,QT有两种方式,一是通过COM组件,二是通过QODBC(数据库的方式)。网上推荐是使用QAxObject通过COM组件读取,QODBC读取100MB的Excel文件的时候需要十
- 离线安装IE 11(Internet Explorer 11)/脱机安装IE11
brian0031
windowsie11脱机版离线安装
离线安装IE11(InternetExplorer11)/脱机安装IE11如果电脑需要在不联网的情况下安装IE11(InternetExplorer11),需要提前安装好6个补丁程序,请看微软的官方说明https://docs.microsoft.com/zh-cn/troubleshoot/developer/browsers/installation/prerequisite-updates-
- 阅读笔记:ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Task
Araloak
论文阅读笔记深度学习自然语言处理
阅读笔记:ViLBERT:PretrainingTask-AgnosticVisiolinguisticRepresentationsforVision-and-LanguageTasksContribution提出ViLBERT模型(twostreamsmodel),由两个BERT结构分别对text和image进行学习,通过cross-attention进行信息交流,在两个预训练任务(proxy
- SQL Server 导入EXCEL数据
akhdjkrhyiewbhgj
一、导入本地的excel数据到本地数据库,流程如下:1、--启动OpenDataSourceexecsp_configure'showadvancedoptions',1reconfigureexecsp_configure'AdHocDistributedQueries',1RECONFIGURE2、--查询excel的数据SELECT*FROMOpenDataSource('Microsoft
- CORS跨域问题及解决方案详解
前端跨域cors
大家好,我是V哥,跨域问题是应用开发中比较常见的问题,比如前端应用和后端业务的端口不同,前端要向后端发送请求来获取数据,这个时候就会产生跨域问题,V哥先从跨域问题的产生开始,来详细介绍跨域问题及解决方案。CORS跨域问题的产生原因CORS(Cross-OriginResourceSharing,跨域资源共享)跨域问题源于浏览器的同源策略。同源策略是浏览器的一种安全机制,它要求浏览器在访问一个资源时
- 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