- 【HarmonyOS NEXT应用开发】案例1:基于Navigation的路由管理
青少年编程作品集
harmonyos华为华为云
Navigation介绍Navigation简介Navigation:路由导航的根视图容器,一般作为页面(@Entry)的根容器去使用,包括单页面(stack)、分栏(split)和自适应(auto)三种显示模式。Navigation组件适用于模块内和跨模块的路由切换,通过组件级路由能力实现更加自然流畅的转场体验,并提供多种标题栏样式来呈现更好的标题和内容联动效果。一次开发,多端部署场景下,Nav
- PostgreSQL 触发器
wjs2024
开发语言
PostgreSQL触发器引言PostgreSQL是一款功能强大的开源关系型数据库管理系统。在数据库管理中,触发器是一种重要的机制,它可以自动执行预定义的操作,以响应特定数据库事件的发生。本文将详细介绍PostgreSQL触发器的概念、类型、创建方法以及应用场景。触发器概述定义触发器是一种特殊类型的存储过程,它在数据库表中特定事件发生时自动执行。触发器通常用于保证数据的完整性和一致性,以及实现复杂
- MOMENTUM: 2 vulnhub walkthrough
xdeclearn
vulnhub
信息Momentum2.ova(Size:698MB)Download(Mirror):https://download.vulnhub.com/momentum/Momentum2.ovaDownload(Torrent):https://download.vulnhub.com/momentum/Momentum2.ova.torrent(Magnet)端口扫描和目录扫描PORTSTATESE
- Day02Java基础语法
Angelyb
java开发语言
方法:可操作的代码块,代表一个功能,接收数据进行处理,并返回一个处理后的数据方法的完整格式修饰符返回值类型方法名(形参列表){方法体代码(需要执行的功能代码)return返回值}调用方法名(参数)publicclassMethodDemo1{publicstaticvoidmain(String[]args){//掌握方法的定义和调用System.out.println(getSum(10,20)
- day04面向对象高级
Angelyb
java开发语言
1.代码块类的五大成分之一(成员变量,构造器,方法,的代码块,内部类)静态代码块static{}特点:类加载时自动执行,由于类只会加载一次,所以静态代码块也只会执行一次作用:完成类的初始化,对静态变量的初始化publicclassStaticCodeDemo{//静态代码块static{System.out.println("静态代码块");}publicstaticvoidmain(String
- 石头迷阵Java
Angelyb
javapython服务器
AI结合GUI开发一个石头迷阵的游戏准备环节创建一个模块用于开发石头迷阵游戏,模块名称取名为:stone-maze导入项目需要的资源包到src目录下:主要是一些图片文件,在image文件夹下。创建项目包:com.itheima.1、创建石头迷阵的界面定义主界面类,MainFrame继承JFrame.自定义窗口。初始化窗口大小初始化界面图片初始化界面菜单:系统退出,重启游戏。publicclassM
- kimi文献综述超绝指令
Angelyb
AIGC文心一言AI写作
kimi文献综述生成指令1.确定主题并生成关键词我正在写一遍关于[主题]的文献综述,请帮我生成一些与该主题相关的关键词和同义词,这些关键词可以用于在学术数据库如(GoolgeScholar,知网)中查找文献,提供5-10个关键词2.文献检索请帮我查询关于[关键词]的最新学术文献,需要找到5篇2021年以后发表的,相关性较高的文献3.生成文献综述的初步大纲请帮我根据[主题]生成一个详细的大纲,用于撰
- hive-sql高频命令总结
summer_dai
hive-sqlmysqlhive
COUNTcount(*):所有行进行统计,包括NULL行count(1):所有行进行统计,包括NULL行count(column):对column中非Null进行统计ROW_NUMBER()语法形式:ROW_NUMBER()OVER(PARTITIONBYCOL1ORDERBYCOL2)解释:根据COL1分组,在分组内部根据COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的
- html+css转pdf,HTML转成PDF的4个方法介绍
柔粟
html+css转pdf
在本文中,我将展示如何使用Node.js、Puppeteer、headlessChrome和Docker从样式复杂的React页面生成PDF文档。背景:几个月前,一个客户要求我们开发一个功能,用户可以得到PDF格式的React页面内容。该页面基本上是患者病例的报告和数据可视化结果,其中包含许多SVG。另外还有一些特殊的请求来操纵布局,并对HTML元素进行一些重新排列。因此与原始的React页面相比
- 【数据仓库】数仓维度建模中的事实表核心概念与实践案例
小技工丨
大数据随笔数据仓库大数据spark
数仓维度建模中的事实表核心概念与实践案例在数据仓库的维度建模中,事实表(FactTable)是分析系统的核心,用于存储业务过程的量化度量(如销售额、订单数量),并通过外键关联维度表(如时间、产品、客户),支撑多维分析。其设计直接决定数据仓库的查询性能和分析灵活性。以下从核心概念、设计原则、实践案例及优化策略展开解析。一、事实表的核心概念1.事实表的定义与组成定义:记录业务过程的具体度量值,是维度建
- Dify知识库-RAG流程解析
AI航海家(Ethan)
Dify项目后端框架pythonpython设计模式
Dify知识库RAG代码流程图源码解析document_indexing_task代码目录:dify/api/tasks/document_indexing_task.py主要做了以下两件事1.查询dataset的文章限制是否超出限制,超出抛出异常,将所有document_ids状态改为error如果正常,则更新所有文章状态为“解析中”parsing@shared_task(queue='data
- SQL中关于WHERE子句与HAVING短语的区别
V&神
数据库数据库开发
where子句与having短语的区别在于作用的对象不同where:作用于基本表或者是试图表示的是个体存在的条件是分组统计前对个体进行的筛选where不能使用聚集函数having:是对于分组以后对统计量进行的判断条件作用于组,从中选择满足条件的组having可以使用聚集函数用比较形象的解释来说就是,当全校的学生在操场上你需要将人聚集你的面前,当你叫全体男生来到主席台面前是你需要用的是wherese
- 酷黑简洁大气体育直播自适应模板赛事直播门户网站源码
知名站长
源码软件
源码名称:酷黑简洁大气体育直播自适应模板赛事直播门户网站源码开发环境:帝国cms7.5安装环境:php+mysql支持PC与手机端同步生成html(多端同步生成插件)带软件采集,可以挂着自动采集发布,无需人工操作!演示地址:http://demo51.52muban.cc/模板特点:1、程序伪静态版本,实时采集更新,无人值守,省心省力。2、百度权重5高权重内容展示平台详情查看源码名称:酷黑简洁大气
- 仿《Q极速体育》NBACBA体育直播吧足球直播综合体育直播源码
知名站长
源码软件
码名称:仿《Q极速体育》NBACBA体育直播吧足球直播综合体育直播源码开发环境:帝国cms7.5空间支持:php+mysql仿《Q极速体育》NBACBA体育直播吧足球直播综合体育直播源码+自动采集-我爱模板网源码名称:仿《Q极速体育》NBACBA体育直播吧足球直播综合体育直播源码开发环境:帝国cms7.5空间支持:php+mysql支持PC与手机端同步生成html(多端同步生成插件)带软件采集,可
- SQL HAVING子句
黄名富
数据库数据库sqlmysql
SQL是一种基于“面向集合”思想设计的语言。HAVING子句是一个聚合函数,用于过滤分组结果。1实践1.1缺失的编号图连续编号记录表t_seq_record需求:判断seq列编号是否有缺失。SELECT'存在缺失的编号'ASresFROMt_seq_recordHAVINGCOUNT(*)!=MAX(seq);需求:查询缺失编号的最小值。SELECTCASEWHENCOUNT(*)=0ORMIN(
- SQL中where与having
小应的每天进步史
数据分析/数据开发数据结构sqlleetcode
where和having的执行顺序where早于groupby早于havingwhere子句在聚合前先筛选记录,也就是说作用在groupby子句和having子句前,而having子句在聚合后对组记录进行筛选where不能使用聚合函数、having中可以使用聚合函数
- core-v-verif系列之cva6 verilator Model编译
CDerL
cva6core-v-verif
编译命令单个case执行日志Wed,19Mar202511:18:28DEBUGmkdir-p/cva6/verif/sim/out_2025-03-19-5966/directed_testsWed,19Mar202511:18:28DEBUGWed,19Mar202511:18:28INFOCompilingtest:/cva6/verif/tests/riscv-arch-test/risc
- wx小程序 显示和隐藏(hidden)
iCrazyTimor
wx小程序
wx小程序显示和隐藏(hidden)1、wx.wxml页面部分点击//这是显示隐藏的部分隐藏显示部分2、wx.jsjs部分page({data:{hiddenName:true},click:function(e){this.setData({hiddenName:!this.data.hiddenName})}})hidden用于频繁切换
- 微信小程序之 wx.showToast延时跳转页面实例
gyuei
小程序小程序微信
需求:wx.showToast显示成功后返回上一级页面微信小程序返回上一级页面,代码如下:wx.navigateBack({delta:1})微信小程序wx.showToast延时跳转页面,代码如下:wx.showToast({title:'成功',icon:'success',duration:2000,//显示透明蒙层,防止触摸穿透mask:true,success:function(){se
- MarsCode AI为什么适合教育场景
test猿
人工智能
MarsCodeAI在教育场景中展现出独特优势,其技术架构与功能设计精准契合教学需求,具体优势如下:一、个性化学习支持动态难度调节根据学生代码提交历史自动调整题目难度(新手→专家模式),匹配不同学习阶段需求13利用LSTM神经网络预测知识盲点,推荐针对性练习(准确率92%)38智能题库系统集成近千道编程题目,含字节跳动等大厂面试真题56通过GAN网络生成新型题目,避免重复训练导致
- MySQL WHERE与HAVING子句:理解与运用的艺术
DTcode7
sql数据库相关数据库mysqlSQL数据库开发sql
MySQLWHERE与HAVING子句:理解与运用的艺术基本概念与作用WHERE子句HAVING子句代码示例示例一:基础使用使用WHERE子句使用HAVING子句示例二:组合WHERE与GROUPBY示例三:复杂的HAVING子句示例四:WHERE与HAVING的综合应用功能使用思路与实战经验数据筛选策略性能优化安全性考虑实际工作开发中的使用技巧技巧一:灵活运用子查询技巧二:性能优化技巧技巧三:利
- Postgresql无法连接问题汇总
宇宙超级无敌天下第一雷霆霹雳爆龙战士
postgresql数据库
一.数据库服务未启动❌报错信息:[postgres@k8s-node2~]$psqlpsql:couldnotconnecttoserver:NosuchfileordirectoryIstheserverrunninglocallyandacceptingconnectionsonUnixdomainsocket"/var/run/postgresql/.s.PGSQL.5432"?✅解决方案1
- dz社区模板源码手机自适应
Abbbbb11
程序源码
简介:这是一个简约社区的源码这个应该不用我发搭建教程吧主机就可以搭建网盘下载地址:http://www.bytepan.com/1WvybZ2qCh8
- Angular中的LocalStorage与SSR的兼容处理
t0_54program
编程问题解决手册angular.jsjavascript前端个人开发
在开发Angular应用程序时,常常会遇到一些与浏览器环境相关的挑战。特别是在涉及到服务器端渲染(SSR)时,localStorage的使用会带来一些问题。本文将通过一个实际的例子,详细探讨如何在Angular应用中兼容处理localStorage与SSR。问题描述假设我们正在开发一个用户认证服务(AuthService),目的是管理用户的登录状态。服务中使用了localStorage来存储用户的
- HTML图像
倒霉男孩
html+css学习笔记html前端
在HTML中,图片使用标签定义。标签是空的,它只包含属性,并没有关闭标签。通过src属性指定图像的URL:alt属性alt属性提供了一种图像的替换文字,如果用户因为某些原因不能查看,浏览器找不到一个图像它就会显示alt属性的值:alt是必须的,没有它的网页无法正确验证。HTML屏幕阅读器屏幕阅读器是一个软件程序,读取HTML代码,转换为文本,并允许用户“听”这些内容。屏幕阅读器对盲人、视力受损或学
- 每天一道leetcode——《一最多的行》
每天一道leetcode
leetcode算法数据结构
第一天开始写leetcode,今天是一道简单的编程题——一最多的行。下面是具体的题目:给你一个大小为mxn的二进制矩阵mat,请你找出包含最多1的行的下标(从0开始)以及这一行中1的数目。如果有多行包含最多的1,只需要选择行下标最小的那一行。返回一个由行下标和该行中1的数量组成的数组。刚开始是用Python写的,因为最近在学Python,所以打算用Python试试:classSolution:de
- HarmonyOS NEXT 组件状态管理的对比
kirk_wang
鸿蒙开发harmonyos华为
在HarmonyOSNEXT开发中,组件状态管理是构建动态用户界面的核心。本文将深入探讨@State、@Prop、@Link和@ObjectLink这四种常见的状态管理装饰器,并通过示例代码进行对比分析,以帮助同学们更好地理解和选择合适的状态管理方式。一、装饰器概述@State:用于定义组件内部的状态变量,其变化会驱动UI的更新。@State装饰的变量与子组件中的@Prop装饰变量之间建立单向数据
- SQL 中 WHERE 与 HAVING 子句的使用
leo_厉锵
数据库算法数据库
在编写SQL查询时,数据过滤是常见需求。WHERE和HAVING子句虽然都用于筛选数据,但实际用法大不相同。本文通过具体示例对比两者的核心区别,并结合实际场景演示联合使用技巧,助力快速掌握这两个关键工具的正确用法。一、数据表结构假设存在sales表,其结构如下:sale_idproduct_idsale_datesale_amount11012024-01-0110021012024-01-022
- python中的open函数
wencai_
python爬虫学习0基础python开发语言
在Python中,open()是一个内置函数,用于打开文件并返回一个文件对象,通过该对象可以对文件进行读取、写入、追加等操作。1.函数签名open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)2.参数说明file:必需参数,表示要打开的文件的路径(字符串或路径对
- mysql
wjm041006
mysqloracle数据库
知识介绍:基础篇SQLmysql数据库中关系型数据库:是建立在关系模型基础上的,由多张相互连接的二维表组成的数据库SQL通用语法SQL可以单行或多行书写,以分号结尾SQL可以使用空格或者缩进来增强语句的可读性MySQL数据库的SQL语句不区分大小写注释的使用:单行注释:--注释内容或者#注释内容多行注释/**/SQL分类分类说明DDL数据定义语言,用来定义数据库对象DML数据操作语言,用来对数据进
- 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