- YAML基础使用教程(单引号和双引号的区别)
奔跑吧邓邓子
工具使用YAML单引号双引号
提示:“奔跑吧邓邓子”的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如IBMSystem3650M5)、云服务平台(如腾讯云、华为云)、服务器软件(如Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker等)、开发工具(如Git、HBuilder)以及网络安全(如挖矿病毒排查、SSL证书配置)等多个方面。无论
- springboot配置mybatis-config.xml、mybatis-mapper.xml模板
luvJie-7c
SpringBootJavaspringbootxmlintellij-idea
模板配置:mybatis-config.xmlmybatis-mapper.xmlmybatis-config.xml中setting属性配置:使用:
- springboot 不加载mybatiesPlus的mapper.xml文件 的解决方法
奇纳尼
mapper.xmlmybatiesPlusspringboot
1:在pom.xml中加入src/main/java**/*.xmlfalse2:在application.properties中加入#配置mapperxml文件的路径,这个配置以后mybaties的xml文件就能被编译加载,还需要在pom.xml中配置,这个项目是父工程service#的pom.xml加的配置,,两个配置缺一不可mybatis-plus.mapper-locations=clas
- Kafka单条消息长度限制详解及Java实战指南
在分布式消息系统中,Kafka以其高吞吐、低延迟的特性成为主流选择。但很多开发者在使用时会遇到一个常见问题:单条消息长度限制。本文将深入剖析Kafka的消息大小限制机制,并提供Java解决方案。一、Kafka消息长度限制核心参数Kafka通过多级配置控制消息大小,关键参数如下:配置项作用范围默认值说明message.max.bytesBroker1MB(1048588)Broker允许的最大消息尺
- Here-Document的`<<` 与 `<<-` 与 `<<<` 多解说笔记250722
kfepiza
#Linux#控制台命令行Shellbashcmd等笔记linuxbash
Here-Document的poem.txt静夜思床前明月光疑是地上霜FORMATTED#2.空格敏感的配置catconfig.ymlindentation:level:4#必须4空格SPACE何时用tabs.txt重要制表符:→这里Tab会被保留但行首Tab会被移除TABS#2.空格缩进的环境#(如Python脚本)技术原理图解HereDocumentquery.sqlSELECT*FROM${
- Byobu
胖大和尚
byobu
Byobu是一个基于tmux或screen的终端复用工具,提供了更友好的用户界面和更多的功能。以下是如何使用Byobu进行分屏、会话管理和其他常用操作的详细步骤:安装Byobu在Debian/Ubuntu系统上:sudoapt-getinstallbyobu在Fedora系统上:sudodnfinstallbyobu启动Byobu启动Byobu:打开终端并输入以下命令启动Byobu:byobu常用
- LazyVim 加载顺序
胖大和尚
lazyvim
在LazyVim中,加载顺序是精心设计的,遵循特定的层次结构。理解这个顺序对于解决配置问题至关重要:LazyVim加载顺序详解(从先到后)init.lua核心初始化位置:~/.config/nvim/init.lua作用:设置基本路径和全局选项典型内容:vim.g.mapleader=""require("config.lazy")Lazy插件管理器设置位置:~/.config/nvim/lua/
- 达梦数据库监控观测最佳实践
概述达梦企业管理器简称DEM,架构如下:概略来说,每个数据库主机安装代理程序DMAgent,在监控方面,它将指标发送至DEM服务端,用户可访问DEM控制台查看数据主机和实例的监控指标,在DEM进行配置后可通过http://:8080/dem/metrics端点暴露主机和数据库的Prometheus指标,观测云DataKit可从此端点采集指标完成达梦数据库集成。前提条件监控目标可通过DMAgent上
- kafka--基础知识点--5.4--max.in.flight.requests.per.connection
一、参数定义max.in.flight.requests.per.connection是Kafka生产者客户端配置参数,用于控制生产者与单个Broker连接中未确认请求的最大数量。简单来说,它限制了生产者在等待之前发送的消息确认(ACK)时,可以同时向同一个Broker发送的未完成请求数量。二、核心作用吞吐量与延迟的平衡:高值(如5):允许生产者并行发送多个请求,提高吞吐量,但可能增加延迟(因需要
- 开启MySQL慢日志方法
angushine
mysql数据库
提供两种开启MySQL方法查询慢SQL配置:showVARIABLESlike‘%slow_query_log%’;showVARIABLESlike‘%long_query_time%’;方法一(可能提示没有权限):SETGLOBALslow_query_log=‘ON’;SETGLOBALslow_query_log_file=‘/data/mysql/data/mysql-0001-slow
- Android-Compose初步学习总结
一、JetpackCompose的生命周期JetpackCompose中,组合是由可组合项构成的树状结构,用于描述应用界面。它通过初始组合生成,并仅能通过重新组合更新——当应用状态变化时,Compose会安排重新组合,仅重新执行受状态变化影响的可组合项,而非整个UI树。可组合项的生命周期包含三个阶段:进入组合、经历0次或多次重新组合、最终离开组合。组合中可组合项的实例由其调用点(即调用可组合项的源
- Android-jetpack之DataBinding实战应用
一、DataBinding基础配置1.启动流程在build.gradle中启用:android{dataBinding{enabled=true}}这会让编译器为每个布局文件生成对应的绑定类(如ActivityMainBinding、DetailsFragmentBinding)。2.布局文件转换将普通布局文件转换为DataBinding布局,需要在根标签外包裹标签:二、绑定基础操作1.绑定基本数
- Python 库手册:xml.etree.ElementTree 处理 XML 数据模块
xml.etree.ElementTree(简称ElementTree)是Python标准库中用于解析、创建和操作XML数据的模块。它提供了一种轻量、易用的方式来读取、修改和写入XML文件,适用于配置文件处理、数据交换、网络通信等应用场景。常见应用场景:(1)读取XML配置文件并提取参数。(2)修改XML数据结构(如节点属性、内容)。(3)创建新的XML文档并保存。(4)从WebAPI获取的XML
- Shell实现服务检查看门程序
angushine
shell
最近在项目中碰到Kafka自己关闭的事件,为保证Kafka的高效可用,因此考虑使用Shell加系统定时任务检查,保证服务的高可用检查Zookeeper#!/bin/bash#配置参数TARGET_PORT=2181#监控端口SERVICE_NAME="zookeeper"#服务名称(用于日志记录)CHECK_INTERVAL=5#检测间隔(秒)LOG_FILE="/data/public/kafk
- vSphere开发指南1——vSphere Automation API
H_00c8
前言VMwarevCenterServer是VMware虚拟化管理平台,广泛的应用于企业私有云内网中。站在渗透测试工具开发的角度,我们需要通过命令行实现vCenterServer同虚拟机的交互。本系列文章将要比较多种不同的API,介绍实现细节,开源代码,实现以下功能:·读取虚拟机的配置·查看虚拟机文件·删除虚拟机文件·向虚拟机上传文件·从虚拟机下载文件·在虚拟机中执行命令简介本文将要介绍以下内容:
- 在ubuntu下安装vscode
好学近乎知o
ubuntuvscode
ubuntu22.04下通过命令安装vscode1、为什么不用应用市场直接下载?最近下载ubuntu22.04版本,不知道为啥里面的应用软件下载不了vscode,尝试在网上解决–>卸载自带的应用市场,安装另外的一种,结果失败了,导致原有的应用市场也打不开。最后想到可以通过命令安装vscode,本方法可用,亲测有效。注:在查询教程过程中,有人说通过自带的应用市场下载vscode可能会遇到小问题,不如
- 从 0 到 1 搞定nvidia 独显推流:硬件视频编码环境安装完整学习笔记
lxmyzzs
图像算法之音视频编解码音视频学习笔记
笔记用于安装和配置一套完整的媒体处理工具链,包括NVIDIA编码头文件、带CUDA加速的FFmpeg以及ZLMediaKit流媒体服务框架,适用于需要进行视频编解码、流媒体推流/拉流等场景的开发与部署。标题核心组件及版本说明nv-codec-headers来源:Gitee仓库jario-jin/nv-codec-headers版本:n11.1.5.0(对应NVIDIAVideoCodecSDK接口
- FFMPEG 解码流程 硬解码
ImTryCatchException
ffmpeg音视频
关键流程概述初始化阶段av_register_all():注册所有编解码器新版本可以不调用了avformat_network_init():网络初始化avformat_alloc_context():创建封装格式上下文avformat_open_input():打开媒体文件流信息解析avformat_find_stream_info():获取流信息av_find_best_stream():查
- EP 设备间P2P 与 基于pcie switch 的p2p区别
zly8865372
p2p网络协议网络
在PCIe(PeripheralComponentInterconnectExpress)系统中,Endpoint(EP)设备之间的P2P通信和通过PCIeSwitch的P2P通信是两种不同的直接数据传输方式,它们在路径、性能、配置和适用场景上存在显著差异。以下是详细对比分析:1.基本概念(1)EP设备直接P2P定义:两个PCIeEndpoint(如GPU、NVMeSSD、网卡)不经过Switch
- Unity 新旧输入系统对比
死也不注释
unity游戏引擎
Unity新旧输入系统全面对比与选型指南一、核心架构对比特性旧输入系统(InputManager)新输入系统(InputSystem)架构模型基于轮询的单体式架构基于事件的模块化架构配置方式Edit>ProjectSettings>InputInputActionAssets(可视化编辑)核心组件Input静态类InputAction,PlayerInput组件多平台支持需要手动配置不同输入轴设备
- Spring Boot 和 Netty
Hao4K影音
springboot后端javaspring
SpringBoot和Netty是两个强大的工具,它们各自有不同的用途和优势,但可以结合使用来构建高性能的网络应用。下面将详细介绍SpringBoot和Netty,以及它们如何结合使用。SpringBoot简介SpringBoot是一个开源框架,基于Spring框架,用于简化Spring应用的开发过程。它通过以下方式简化开发:自动配置:根据类路径中的依赖自动配置Spring应用程序。开箱即用的设置
- 鞍山钢铁公司环市铁路
4f0c244847bb
一百年前,一个名叫于冲汉的中国人秘密会见了日本南满铁路株式会社总裁中村雄次郎,建议与他辽东半岛上合资成立一家铁矿企业,以满足南满铁路及日本控制下的其他地区的钢材需要。7月,这家所谓中日合办振兴铁矿无限公司总局在奉天(今沈阳)成立,初始资本为14万日元。从表面上看,是中日投资各半,实则由满铁全额出资。在千山设采矿总局,两年后采矿总局迁往鞍山。然而光靠满铁的主干线显然不能满足矿区(郊区)与主厂区(市中
- 扫雷游戏介绍和代码
二进制person
游戏c语言
一.介绍游戏可以通过菜单实现继续玩或者退出游戏扫雷的棋盘是9*9的格子默认随机布置10个雷可以排查雷如果位置不是雷,就显⽰周围有⼏个雷如果位置是雷,就炸死游戏结束把除10个雷之外的所有⾮雷都找出来,排雷成功,游戏结束二.界面1.初始界面2.游戏界面3.退出界面和选择错误三.代码text2.c:#define_CRT_SECURE_NO_WARNINGS1#include"game.h"voidme
- docker 中安装 ONLYOFFICE 服务
两点王爷
docker容器运维
由于需要在线编译word文件,所以安装ONLYOFFICE服务(已知Linux机器中有docker环境)具体如下:1️⃣Linux中创建目录若是没有docker,可先在线安装docker,具体如下:Ubuntu在线安装docker命令如下:通过apt安装apt-getinstalldocker.io运行和使用docker命令systemctlstartdockersystemctlenabledo
- springboot集成Netty
墨_风
开发笔记springbootjavanetty
一、Netty介绍Netty的系列文章,正在更新中二、Netty集成io.nettynetty-all2.1、配置文件#netty配置netty:boss:1#boss线程数量默认为cpu线程数*2worker:4#worker线程数量默认为cpu线程数*2timeout:6000#连接超时时间默认为30sport:7000#服务器主端口默认7000portSalve:7001#服务器备用端口默认
- 闲鱼助手——监控解析
importrequestsfrombs4importBeautifulSoupfromseleniumimportwebdriverfromapscheduler.schedulers.blockingimportBlockingScheduler#配置Chrome驱动路径chrome_options=webdriver.ChromeOptions()chrome_options.add_arg
- Nginx 如何解决单页应用 History 模式路由的 404 难题?
wsj__WSJ
nginx
在现代前端开发中,单页应用(SPA)已经成为主流架构。无论是React、Vue还是Angular,都广泛使用History模式路由来实现无刷新页面跳转。但这个看似流畅的体验背后,却隐藏着一个容易被忽视的服务器配置问题——当用户直接访问路由地址或刷新页面时,往往会出现404错误。今天我们就来聊聊Nginx是如何通过简单配置解决这个问题的。一、History模式路由的“陷阱”先来看一个常见场景:当我们
- Spring AI核心技术面试指南:从大模型集成到生产级部署,9轮深度技术拷问(含架构解析)
面试官:cc程序员,聊聊SpringAI的那些事儿?场景背景互联网大厂AI平台部面试官老周,与自称"SpringAI源码贡献者"的cc程序员展开深度技术探讨。面试过程第一轮:基础架构面试官:SpringAI的架构分层是怎样的?cc:(推眼镜)顶层是Model接口!中间层适配OpenAI/Ollama等实现,底层整合SpringBoot自动配置!@ConfigurationpublicclassOl
- Kubernetes存储入门
付出不多
kubernetes容器云原生
目录一,Kubernetes存储概念1,volume的概念2,volume的类型二,配置volume存储1,通过emprydir共享数据2,使用hostpath挂载宿主机文件3,使用nfs挂载至容器三,配置pv持久卷1,pv回收策略2,pv访问策略3,pv的配置方式4,PersistentVolumeclaim(Pvc,持久卷声明)5,创建基于hostpath的pv6,创建基于nfs的pv一,Ku
- 阿里云服务器2核4G5M带宽1年多少钱?最低1128.53元最高4035.04元(附购买教程)
阿里云最新优惠和活动汇总
阿里云服务器2核4G配置目前有AMD计算型c6a、AMD计算型c8a、通用算力型u1、计算型c7等多种实例规格可选,不同实例的阿里云服务器收费价格是有很大差别的,同时带宽越高价格也越高,以2核4G5M带宽配置为例AMD计算型c6a实例的收费标准为2781.60元1年,AMD计算型c8a实例的收费标准为3322.27元1年,二者相差了540.67元1年。不过好在阿里云对2核4G5M带宽的云服务器有活
- 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