- antd vue 表格排序升序
Ciito
前端vue.jsjavascript前端
1、按照中文首字母排序{title:'乡镇',width:100,align:'center',dataIndex:'village',//antdv表格,按中文首字母排序;升序,降序;sorter:(a,b)=>a.village.slice(0,1).charCodeAt(0)-b.village.slice(0,1).charCodeAt(0)},2、按照时间排序{title:'时间',wi
- Go基础学习-数组与切片
wzbwzt
GO语言golang
数组固定长度同一种数据类型元素的集合//数组声明:vara[2]int//var数组名[长度]存放的类型//数组初始化://1,使用初始化列表来设置数组元素的值vara[3]int//数组会初始化为int类型的零值varb=[3]int{1,2}//使用指定的初始值完成初始化//2,使用指定索引值的方式来初始化数组c:=[2]int{1:1,3:5}//3,根据设置的数组元素来自行确定数组长度va
- Go基础之切片大集合
死嗑到底
Go语言实战笔记golang算法数据结构go
一、切片是长度可变的数组,切片由三部分组成1、指针,指向切片第一个元素指向的数组元素的地址2、长度,切片元素的数量3、容量,切片开始到结束位置元素的数量二、声明切片声明需要指定组成元素的类型但不需要指定存储元素的数量(长度)在切片声明后,会被初始化为nil,表示暂不存在的切片//[]string,true,[]varnames[]stringfmt.Printf("%T,%t,%v\n",name
- Go语言数组与切片详解
sillyfoxzero
GO语言开发学习golang算法
一.数组数组的定义:相同类型的数据集合go语言中数组的索引从0开始没有赋值的数值型数组,默认值为0数组一旦被创建,它的大小就是不可改变的(1)声明数组与打印var变量名[大小]变量类型//数组的声明varnums[4]int//数组的赋值nums[0]=1nums[1]=2nums[2]=3nums[3]=4/***************数组的打印*************/fmt.Printf
- go 切片,集合简单讲解
码农竟在我身边
gogolang开发语言后端
go切片,集合简单讲解arr:=[]int{1,2,3,4,5,}//添加arr=append(arr,0,1)//翻转arr=reverse(arr)//切片会自动取址所以需要copy函数arr2:=arrarr[0]=99//example//申明初始长度和最大容度可以复制arr3:=make([]int,10,10)//普通申明的复制失败vararr4[]intcopy(arr3,arr2)
- 组合数据类型:字符串
muxue178
python前端开发语言
1.字符串的输入输出name=input('请输入字符串:')print(name)print(type(name))运行结果请输入字符串:qwerqwer即用input()函数来进行输入,print()函数进行输出。2.字符串下标与切片str1='abcdef'print(str1[0])print(str1[1])print(str1[0:2:1])运行结果abab即从前往后下标从0开始依次增
- arcgis制作瓦片地图_利用ArcGISDesktop制作【地图瓦片包(TPK切片包)】的技术流程及优化...
weixin_39814393
arcgis制作瓦片地图
1概述ArcGIS地图瓦片包,俗称TPK格式切片,已经广泛应用于涉及野外电子调绘的测绘项目中。作为底图,它可以承载影像以及作为辅助信息的栅格化后的矢量,并将他们打包封。该格式数据本质为栅格数据,针对移动端的加载速度和显示效果均有明显优化,具有灵活的多级比例尺控制机制,实际使用体验好。貌似该格式为ESRI的原创,但按照切片的基本原理来看,这个格式和其他切片相比并没有实质性的区别或优势,但是依托于Ar
- Python学习笔记 - 探索正则表达式re元字符
Mr数据杨
Python编程基础正则表达式python编程基础元字符
在Python编程中,正则表达式(RegularExpressions,简称re)是一种强大的工具,用于匹配字符串中的特定模式。无论是在数据清洗、文本解析,还是在日常脚本编写中,正则表达式都可以极高的效率完成复杂的字符串操作任务。然而,正则表达式的语法略显复杂,尤其是其中的元字符(Metacharacters),初学者在使用时往往感到困惑。本教程旨在通过详细的概念解释、操作指导以及实际应用示例,帮
- 【ARMv9 DSU-120 系列 6 -- Power management】
主公讲 ARM
#ARMv9DSU-120专栏DSU-120POWERDSU-120ppu
请阅读【Arm®DynamIQ™SharedUnit-120专栏】文章目录PowermanagementInDSU-120PowerDomainsPDTopPDClusterPDCorePDComplexPDSlicePDL3RAM0和PDL3RAM1Clusterpowermode在线模式(On)关闭模式(Off)功能保留模式(Func_Ret)集群完全保留模式(Full_Ret)内存保留模式(
- Golang 基本类型数组切片 拼成 字符串 方法
卖女孩的小火柴คิดถึง
golang开发语言后端
1.对于字符串型数组切片import"fmt"funcmain(){s:=[]string{"1","3","jjj"}str:=strings.Join(s,",")fmt.Println(str)}//输出:1,3,jjj2.对于数字型数组切片内置的join方法只支持字符串型切片,可以通过fmt.Sprintf方法,将数组切片直接转成字符串,再用正则转成字符串切片,最后用join方法拼接pac
- 【JavaScript爬虫记录】记录一下使用JavaScript爬取m4s流视频过程(内含ffmpeg合并)
Luxine.
前端分享javascript爬虫音视频
前言前段时间发现了一个很喜欢的视频,可惜网站不让下载,简单看了一下视频是被切片成m4s格式的流文件,初步想法是将所有的流文件下载下来然后使用ffmpeg合并成一个完整的mp4,于是写了一段脚本来实现一下,电脑没有配python环境,所以使用JavaScript实现,合并功能需要安装ffmpeg,没有的小伙伴自行安装哦前置知识m4s文件(复制百度)M4S文件是使用MPEG-DASH流技术通过Inte
- react和react-native中redux @reduxjs/toolkit的使用
九段刀客
ReactNativereact.jsreactnativejavascript
下面的示例是在react-native中使用yarnaddreact-redux@reduxjs/toolkit一、store中store/module/dict.jsimport{createSlice}from'@reduxjs/toolkit';import{api_dict_biz}from'~/api/dict'
- react-redux和@reduxjs/toolkit应用案例
前端小云儿
React技能大全react.js前端javascript
1首先安装npminstall@reduxjs/toolkitreact-dedux或者pnpminstall@reduxjs/toolkitreact-dedux2新建文件夹,写模块内容3tab.jsimport{createSlice}from"@reduxjs/toolkit";consttabSlice=createSlice({name:"tab",initialState:{isCol
- 学习笔记-三维超声相关知识
May_ZhaoHM
基础知识学习
三维超声相关知识三维超声成像本质是断层成像,和CT与磁共振不同的点在,CT等通常是以缓慢的速度来获取切片的获取。超声高速率,且图像方向可变。二维超声的局限性:依赖于诊断医生的经验和知识来操作超声换能器,将二维图像完全转换成三维组织结构,并进行诊断或执行介入过程。这种困难主要是由于使用空间灵活的二维成像技术来观察三维解剖结构造成的。超声引导的治疗过程尤其受到影响,因为在手术过程中或在一段时间内量化和
- Python Cookbook-1.13 访问子字符串
我不会编程555
#Python学习python开发语言
任务获取字符串的某个部分。解决方案切片是个好方法,但是它一次只能取得一个字段;如果还考虑字段的长度,struct.unpack可能更适合。importstructdeffields(baseformat,theline,lastfield=False):#theline超出的长度也由这个base-format确定#(通过struct.calcsize计算确切的长度)numremain=len(th
- Tenserflow学习笔记 【一:Python入门】
邪魔小屁屁
神经网络与深度学习python数据结构机器学习
Python序列数据结构初习一.前言Python的两种主要的序列数据类型二.关于序列的相关操作1.索引2.切片[开始位置:结束位置]3.获取长度len()4.添加元素①append()②insert(a,b)5.合并列表①extend()②‘+’6.删除元素del6.排序7.遍历序列8.字典①遍历②添加、修改指定元素的取值③合并字典update()④删除字典中的元素9.集合(略)总结一.前言Pyt
- 【Python】元组
Guiat
Pythonpython
个人主页:GUIQU.归属专栏:Python文章目录1.元组的本质与基础概念1.1不可变序列的意义1.2元组与数学概念的联系2.元组的创建方式详解2.1标准创建形式2.2单元素元组的特殊处理2.3使用`tuple()`函数进行转换3.元组的基本操作深入剖析3.1索引操作的边界与异常处理3.2切片操作的高级用法3.3拼接与重复操作的性能分析4.元组的内置方法深度探究4.1`count()`方法的性能
- 【04】RUST特性
憨憨2号
RUSTrust开发语言
文章目录隐藏shadowing所有权ownership堆区&栈区所有权规则变量&数据CopyTrait与DropTraitCopyTraitDropTrait移动克隆函数参数与返回值的所有权参数引用可变引用悬垂引用slice生命周期隐藏shadowing有点像同名覆盖letmutguess=String::new();letguess:u32=guss.trim().parse().expect(
- Java- Stream API
石刻春秋
Java基础java
目录StreamApi特点一、Stream实例化三种方式二、中间操作1.筛选与切片2.映射3.排序三、终止操作1.匹配与查找2.归约3.收集四、Optional1.Optional描述2.常用方法StreamApi特点*使用StreamAPI对集合数据进行操作,就类似于使用SQL执行的数据库查询。*也可以使用StremAPI来并行执行操作。*StreamAPI提供一种高效且易于使用的处理数据方式。
- vue+mars3d叠加影像服务
xzfbxncn
vue.js3d前端
前提:叠加发布的影像切片服务,我的数据坐标系是4528需要注意type属性值需要根据数据去选择对应的类型,默认展示要设置show:true具体Map属性可参见下表type类型如下:属性名称类型描述信息tdtstring天地图在线地图,对应类为:TdtLayerbaidustring百度在线地图,对应类为:BaiduLayergaodestring高德在线地图,对应类为:GaodeLayertenc
- python学习笔记
pitch_dark
pythonpython
python注释注释注释在程序开发的过程起着非常重要的作用,往往在一个优秀的项目中,注释的行数不比代码少为什么需要注释方便自己一段时间后再回头看或修改代码多人开发同一个项目的时候,使别人能读懂你的代码单行注释#这是一个注释多行注释"""这里面可以注释多行代码"""Pycharm里快速注释多行代码ctrl+/python变量和数据类型变量什么是变量什么是变量,变量名,变量值变量:容器变量名:名字变量
- 从零到一学习Pyhton(基础篇--入门期二序列)
羡鱼肘子
学习python数据结构算法
入门期核心理念:以代码为镜,理解Python设计哲学温馨提示1:本篇仅仅是记录个人的学习历程,会有不少片面的理解,万分期待您的指教。温馨提示2:为了知识的完整性可以看看前篇的内容哦从零到一学习Pyhton(基础篇--入门期一数据模型)-CSDN博客Python序列:从基础到实践序列(Sequence)是Python中最基础且最重要的数据结构之一。它表示一组有序的元素,支持索引、切片、迭代等操作。第
- python 九九乘法表
网罗开发
python集Python技术汇总python九九乘法表
python学习笔记,特做记录,分享给大家,希望对大家有所帮助。九九乘法表定义了一个函数multiplicationOne,其思路同C/C++语言通用实现方法类似,使用两层for循环,外层控制行的转换,内层控制列的口诀输出,代码如下:defmultiplicationOne():foriinrange(1,10):forjinrange(1,i+1):print(u'{}*{}={}\t'.for
- Centos/Debian 占用CPU100%挖矿病毒清理
EruruI
运维linux运维
Cetnos/Debian占用CPU100%挖矿病毒清理①top命令查看病毒进程,现在它一般由十位数随机字符串组成找到进程ID,例如7538,执行:systemctlstatus7538其一般会有一个守护进程,如:'cgroup…/system.slice/cron.service7542xxx7538xxx’在/tmp/.X11-unix/下一般会有记录守护进程id的文件,不为空的里面好像有加密
- Python学习笔记(十二)——处理CSV文件和JSON数据
Mq_Go
Python
CSVReader对象>>>importcsv>>>exampleFile=open('example.csv')>>>exampleReader=csv.reader(exampleFile)>>>exampleReader>>>exampleData=list(exampleReader)>>>exampleData[['4/5/201413:34','Apples','73'],['4/5/
- 在线免费 HTML 预览导出为图片,并且支持水平切割
后端java
在线体验作用:可以直接预览html的页面效果,导出为图片,支持指定切割的数量,等高水平切割。https://houbb.github.io/tools/html-preview.html创作背景有时候希望给一段html导出为长度,或者水平切分,感觉人工比较麻烦,就想着实现一个。核心代码导出的核心代码asyncfunctionexportAsImage(){constsliceCount=Math.
- arcgis for js 4.x加载百度地图切片
合抱阴阳
jsarcgisforjsarcgisforjs百度地图切片arcgis加载百度地图
一、加载方式通过'esri/layers/WebTileLayer'重写getTileUrl函数加载百度地图切片二、实现源码Basemapswithdifferentprojections|Sample|ArcGISAPIforJavaScript4.23html,body,#viewDiv{padding:0;margin:0;height:100%;width:100%;}#srDiv{hei
- 在线免费 HTML 预览导出为图片,并且支持水平切割
后端java
在线体验作用:可以直接预览html的页面效果,导出为图片,支持指定切割的数量,等高水平切割。https://houbb.github.io/tools/html-preview.html创作背景有时候希望给一段html导出为长度,或者水平切分,感觉人工比较麻烦,就想着实现一个。核心代码导出的核心代码asyncfunctionexportAsImage(){constsliceCount=Math.
- Golang的引用类型和指针
星星点点洲
Gogolang
在Golang中,引用类型和指针是两个容易混淆的概念,但它们有本质的区别。理解它们的区别对于编写高效、正确的Go代码至关重要。1.引用类型引用类型是Go语言中某些内置类型的统称,它们的值在传递时共享底层数据,而不是复制数据。Go中的引用类型包括:Slice(切片)Map(映射)Channel(通道)Function(函数)Interface(接口)特点:共享底层数据:传递引用类型时,传递的是对底层
- python模拟登陆抖音_抖音模拟登陆的实现
weixin_39819671
python模拟登陆抖音
抖音爬虫-登陆参数加密登陆参数加密错误码登陆成功的效果主逻辑代码,工具方法未贴出登陆参数加密Python实现对应的异或操作:defencpyptwithXor(param):return[i^0x5foriinparam.encode()]然后return的时候调用了一个方法点进去查看源码如下,即进行一些转换,最后进行一次类似于python切片的逻辑:a为常量:接下来用python实现:defby
- 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