- cmake 编译找不到 Qt5WebKitConfig.cmake
SimpleForest
杂七杂八
用cmake编译时出现如下错误提示:CMakeErroratCMakeLists.txt:313(FIND_PACKAGE):Bynotproviding"FindQt5WebKit.cmake"inCMAKE_MODULE_PATHthisprojecthasaskedCMaketofindapackageconfigurationfileprovidedby"Qt5WebKit",butCMa
- 【学习笔记】李宏毅2021春机器学习课程第2.3节:Adaptive Learning Rate
Harryline-lx
机器学习机器学习人工智能深度学习
文章目录Trainingstuck≠SmallGradientDifferentparametersneedsdifferentlearningrateRootmeansquareAdagradRMSPropAdamLearningRateSchedulingTrainingstuck≠SmallGradient首先要明确的一点是,目前当我们用gradientdescend来做optimizati
- hive spark读取hive hbase外表报错分析和解决
spring208208
hivehivesparkhbase
问题现象使用Sparkshell操作hive关联Hbase的外表导致报错;hive使用tez引擎操作关联Hbase的外表时报错。问题1:使用tez或spark引擎,在hive查询时只要关联hbase的hive表就会有问题其他表正常。“org.apache.hadoop.hbase.client.RetriesExhaustedException:Can’tgetthelocations”问题2:s
- 嵌入式C语言表驱动状态机
@吃了个团子被噎住了
c语言c#开发语言
嵌入式C语言表驱动状态机嵌入式中比较经常使用状态机模式,使用ifelse和switchcase出现比较多的状态时,这种方法实现的状态机可读性和可塑性比较差本章使用表驱动方法解决上述的问题以下代码参考博主:大白白https://zhuanlan.zhihu.com/p/530280333一维数组表驱动状态机实现把currentstate–event–operation()–nextstate的组合作
- HBase的合并操作
b1gx
HBase
compact的作用flush操作会将memstore的数据落地为一个个StoreFile(HFile),那么随着时间的增长在HDFS上面就会有很多的HFile文件,这样对读操作会产生比较大的影响(读操作会对HFile进行归并查询),并且对DataNode的压力也会比较大。为了降低对读操作的影响,可以对这些HFile进行compact操作,但是compact操作会产生大量的IO,所以可以看出com
- java springboot连接sqlserver使用
大得369
javaspringbootsqlserver
pom.xml增加sqlserver驱动com.microsoft.sqlservermssql-jdbc9.4.0.jre8application.yml配置文件server:port:9001#spring:#application:#name:dade01#datasource:#driver-class-name:com.mysql.jdbc.Driver#url:jdbc:mysql:/
- 电脑常用的快捷键
嘵奇
提升自己经验分享电脑快捷键
复制:Ctrl+C粘贴:Ctrl+V全选:Ctr+A撤销:Ctrl+Z保存:Ctr+S剪切:Ctrl+X关闭窗口:Ctrl+F4永久删除:Shift+Del打开运行窗口:Windows+R打开任务管理器:Ctrl+Shift+Esc切换窗口:Windows+Tab常用的基本就是这些,希望对大家有所帮助。
- 含文档+PPT+源码】科技公司人事管理系统设计与实现
小咕聊编程
科技eclipsejavatomcatmavenspring
项目介绍本课程演示的是一款科技公司人事管理系统设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码资料可作为毕设使用该SpringBoot+Vue的人事管理系统设计与实现,后端采用SpringBoot架构,前端采用Vue+ElementUI实现页面的快
- Prometheus+Grafana备忘
dzl84394
springboot学习javaprometheusgrafanalinux
Grafana安装官网https://grafana.com/grafana/download官网提供了几种安装方式,我用最简单的yuminstall-yhttps://dl.grafana.com/enterprise/release/grafana-enterprise-11.2.2-1.x86_64.rpm启动//如果需要在系统启动时自动启动Grafana,可以使用以下命令开启自启动syst
- 利用子问题思路解决二叉树相关Oj题
Excuse_lighttime
算法数据结构java开发语言
目录检查两棵树是否相同:题目链接判断另⼀棵树的子树是否存在:题目链接翻转二叉树:题目链接判断⼀棵二叉树是否是平衡二叉树:题目链接判断对称二叉树:题目链接二叉树的层序遍历二叉树的分层遍历:题目链接判断一棵树是否为完全二叉树:检查两棵树是否相同:题目链接代码实现:publicbooleanisSameTree(TreeNodep,TreeNodeq){if(p==null&&q!=null||q==n
- PrimeFaces实战:IdleMonitor与Ajax的完美结合
t0_54program
ajaxokhttp前端个人开发
在现代的Web开发中,用户交互的实时反馈是一个重要的用户体验环节。PrimeFaces作为一个强大的JavaEEUI库,提供了许多便捷的功能组件,其中之一就是IdleMonitor。通过IdleMonitor,我们可以轻松地检测用户何时处于空闲状态以及何时从空闲状态恢复活跃状态。结合Ajax技术,我们可以在用户状态变化时动态地更新页面内容,而无需重新加载整个页面。接下来,我们将通过一个简单的示例来
- C语言初阶:分支和循环语句,初步认识switch语句以及二分查找法
同途同归
学习记录c语言学习c++
目录:1.分支语句(if...elseswitch)2.循环语句(whilefordowhile)3.二分查找法学习内容:1.分支语句(ifelse语句)://1.if和else语句默认只能执行一行代码,要想执行多行代码需要用大括号括起来(这叫做一个代码块)。在C语言中0为假,非0为真。//2.关于选择语句的错误使用以及解析:在if语句中一个等号是赋值,两个等号才是判断。#includeintma
- 网络安全网格概念及其影响
罗伯特之技术屋
大数据及数据管理(治理)专栏计算机工程的科学与探索专栏web安全安全
摘要:“网络安全网格(CyberSecurityMesh)”是Gartner提出的网络安全技术发展新趋势,近两年连续入选其年度重要战略技术趋势研究报告,成为当前网络安全领域流行的热词,受到网络安全从业者的高度关注。基于Gartner相关报告中对网络安全网格概念的描述,研究了网络安全网格成为重大技术发展趋势的驱动因素,剖析了网络安全网格概念的具体内涵和特点,探讨了其架构方法与实现途径,分析了其优势及
- AWS上基于高德API验证Amazon Redshift里国内地址数据正确性的设计方案
weixin_30777913
python数据仓库云计算aws
该方案通过无服务架构实现高可扩展性,结合分页查询和批量更新确保高效处理海量数据,同时通过密钥托管和错误重试机制保障安全性及可靠性。一、技术栈组件技术选型说明计算层AWSLambda无服务器执行,适合事件驱动、按需处理,成本低数据存储AmazonRedshift存储原始地址数据及验证结果API调用高德地理编码API提供地址标准化及验证能力开发语言Python3.9+使用requests处理HTTP请
- 基于A*算法与贝塞尔曲线的路径规划与可视化:从栅格地图到平滑路径生成
机器懒得学习
pygamepython
引言在机器人导航、自动驾驶和游戏开发等领域,路径规划是一个核心问题。如何高效地找到从起点到终点的最优路径,并且确保路径的平滑性和安全性,是许多应用场景中的关键挑战。本文将介绍一种结合A算法和贝塞尔曲线的路径规划方法,并通过Pygame实现可视化。我们将从栅格地图的加载与处理开始,逐步讲解A算法的实现、贝塞尔曲线的生成,以及如何通过鼠标交互实现动态路径规划。通过本文,你将掌握如何在实际项目中应用这些
- deepseek+python,离线api,持续对话
守着黎明看日出
python
功能:通过start开启新对话,stop结束对话,exit退出程序,并且可持续对话代码fromtransformersimportAutoModelForCausalLM,AutoTokenizer,BitsAndBytesConfigimporttorch#导入torch模块#配置4-bit量化quantization_config=BitsAndBytesConfig(load_in_4bit
- Unity的开发框架
yuhahahhh
unity游戏引擎
一.分析工程结构框架GameObject与ComponentGameObject:游戏对象相当于组件的容器Component:组件附于游戏对象不同的特性二.工程文件夹的管理结构新建一个Unity工程,目录结构:1.Assert文件2.Library文件3.ProjectSettings文件4.运行时还会多出Temp目录5.如果用Monodevelop或VS打开还会生成很多工程文件工程文件夹功能:文
- 探索时间的脉络:Vue.js下的Timeline组件——Timeline Vuejs
房耿园Hartley
探索时间的脉络:Vue.js下的Timeline组件——TimelineVuejs项目地址:https://gitcode.com/gh_mirrors/ti/timeline-vuejs在数字时代,将信息以时间轴的形式展示变得日益重要,它帮助我们清晰地追踪事件的发展和变迁。今天,我们要推荐一个精巧且功能强大的Vue.js组件——TimelineVuejs。这款开源项目专为Vue爱好者设计,旨在优
- Timeline 时间线基础用法
AiGarry
vue.jsjavascriptelementui
1、html内容Timeline可拆分成多个按照时间戳排列的活动,时间戳是其区分于其他控件的重要特征{{activity.updateBy}}{{activity.updateTime}}<divstyle="color:#999;display:flex"v-for=
- C++循环结构:原理剖析与工程实践优化策略
溟海.
c++开发语言
以下是一篇关于C++循环结构的原创技术论文框架及内容示例,包含理论解析与工程实践结合的分析C++循环结构:原理剖析与工程实践优化策略**摘要**本文系统探讨C++语言中循环结构的实现机制、应用场景及优化方法。通过分析for、while、do-while三种基本循环结构在编译器层面的实现差异,结合现代C++11/17标准新增特性,提出面向性能优化和代码可维护性的工程实践方案。实验表明,合理选择循环结
- fread\fwrite、fseek /tell/rewind和缓冲区(20250215)
写代码的猫眼石
算法
fread\fwrite1.freadsize_tfread(void*ptr,size_tsize,size_tnmemb,FILE*stream)ptr--这是指向带有最小尺寸size*nmemb字节的内存块的指针。size--这是要读取的每个元素的大小,以字节为单位。nmemb--这是元素的个数,每个元素的大小为size字节。stream--这是指向FILE对象的指针,该FILE对象指定了一
- 初阶C语言:循环语句
小小月xiao
c语言开发语言
1.while语句(1)while循环的格式while(表达式)循环语句;//while循环中//break是用于永久的终止循环//continue是跳过本次循环后面的代码,直接去判断部分,进行下一次循环的判断///循环打印1-10的数:intmain(){inti=1;//初始化while(iintmain(){inti=1;while(i1234continue:i++在后:while循环执行
- 最小生成树(prim算法)
DanmF--
算法c++
1.朴素prim算法(重在理解prim算法思想)#includeusingnamespacestd;usingll=longlong;constintN=300+9;constllinf=4e18;lla[N][N],d[N],n,m;bitsetintree;voidsolve(){cin>>n>>m;memset(a,0x3f,sizeofa);memset(d,0x3f,sizeofd);f
- 自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )
宝码香车
#DeepSeekvue.js前端javascriptDeepSeek
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦目录自己部署DeepSeek助力Vue开发:打造丝滑的时间线(Timeline)前言进入安装好的DeepSeek页面效果指令输入think代码解释使用示例组件代码代码测试整理后主要代码定义组件Timeline.vue页面效果自己部署DeepSee
- 第2节下:线性表示代码带写【带注释】
人间普通饼饼
深度学习自学记录深度学习python
importtorchimportmatplotlib.pyplotasplt#画图用的importrandom#随机#生成数据,w表示权重,是一维向量(张量),b表示偏置值,是一个标量defcreate_data(w,b,data_num):#torch.normal是用于生成正态分布随机数的函数,它的作用是从指定的正态分布中生成张量,其中每个元素都是从该正态分布中采样的随机数。#语法:torc
- VSCode 光标配置美化
Y & Y
vscodeidevisualstudiocode
VSCode光标配置美化01如何设置Ctrl+Shift+P打开控制面板,输入settings打开设置一定要是JSON!然后在最后直接添加就好了02“editor.cursorStyle”光标样式样式描述block实心块▇block-outline空心块line竖线line-thin细的竖线underline▂underline-thin▁03“editor.cursorBlinking”光标待机
- Go协程goroutine和管道channel
始梦的少年
gogo
1、进程:程序在操作系统的一次执行过程,是系统资源分配和调度的基本单位。2、线程:轻量化进程,是系统调度的基本单位。在同一个进程的线程切换不会导致进程切换,不同进程里的切换会导致进程切换。3、协程goroutine:轻量化线程,一个进程可以轻松开启上万个协程。在用户态,有独立的栈空间共享程序堆空间由用户调度简单易懂的代码1:packagemainimport("fmt""strconv""time
- Centos7将/dev/mapper/centos-home磁盘空间转移到/dev/mapper/centos-root
AnnyYoung
笔记FAQcentoslinux运维
1、查看存储df-h文件系统容量已用可用已用%挂载点devtmpfs126G0126G0%/devtmpfs126G0126G0%/dev/shmtmpfs126G19M126G1%/runtmpfs126G0126G0%/sys/fs/cgroup/dev/mapper/centos-root50G45G5.4G90%//dev/sda21014M187M828M19%/boot/dev/sda
- Go 语言的协程(goroutine)
yymagicer
gogolang算法
Go语言的协程(goroutine)是轻量级的并发机制,可以理解为Go中的线程,但它比线程更轻量,且由Go语言的运行时调度器管理。下面详细说明Go协程的原理、使用方法以及应用场景。1.协程原理Go协程(goroutine)在运行时由Go调度器管理,其运行时模型不同于传统的操作系统线程。Go的调度器采用M模型,即多个goroutine由少量的线程管理和调度。它依赖于两个关键组件:M(Machine)
- 第三章 回归训练实战(以预测新冠感染人数为例)
不吃香菜(扣1复活版)
深度学习入门笔记深度学习人工智能
完整项目代码(预测第三天的新冠感染人数)fromsklearn.feature_selectionimportSelectKBestfromsklearn.feature_selectionimportchi2importcsv#读CSVimportnumpyasnpimporttimeimportmatplotlib.pyplotaspltimportpandasaspdfromtorchimp
- 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