- linux 远程文件同步(shell)
黑暗的笑
shellexpect远程传文件while
1.首先安装tcl和expect(先安装tcl,再安装expect,自行百度),sshpass2.我想把本地文件同步到其他几台机器上,因此,需要知道机器的ip,username,password,我用一个文件来存放这些内容machine_info,内容如下:127.0.0.1usernamepassword192.168.12.12usenamepassword编写expectshell#!/us
- Shell:控制脚本 - 信号量
二进制杯莫停
#Shell编程bashlinux
1.处理信号1.1重温Linux信号Linux系统和应用程序可以生成超过30个信号。表16-1列出了在Linux编程时会遇到的最常见的Linux系统信号。通过SIGINT信号,可以中断shell。你可能也注意到了,shell会将这些信号传给shell脚本程序来处理。而shell脚本的默认行为是忽略这些信号。它们可能会不利于脚本的运行。要避免这种情况,你可以脚本中加入识别信号的代码,并执行命令来处理
- Shell:呈现数据
二进制杯莫停
#Shell编程bash
1.标准文件描述符Linux系统将每个对象当作文件处理。这包括输入和输出进程。Linux用文件描述符(filedescriptor)来标识每个文件对象。文件描述符是一个非负整数,可以唯一标识会话中打开的文件。每个进程一次最多可以有九个文件描述符。出于特殊目的,bashshell保留了前三个文件描述符(0、1和2)1.1重定向STDINshell从STDIN文件描述符对应的键盘获得输入,在用户输入时
- Ubuntu系统下交叉编译libpng
linux运维
一、交叉编译libpng1.下载源码下载libpng:http://www.libpng.org/pub/png/libpng.html下载并解压源码。tar-xvzflibpng-1.6.45.tar.gzcdlibpng-1.6.452.设置环境变量设置交叉编译工具链的bin路径:exportPATH=/home/yoyo/360Downloads/toolchains/arm-linux-g
- 深入解析/etc/hosts.allow与 /etc/hosts.deny:灵活控制 Linux 网络访问权限
XMYX-0
linux网络服务器
文章目录深入解析/etc/hosts.allow与/etc/hosts.deny:灵活控制Linux网络访问权限引言什么是TCPWrappers?工作原理什么是/etc/hosts.allow和/etc/hosts.deny?匹配规则配置语法详解配置示例允许特定IP访问SSH服务拒绝整个子网访问FTP服务允许内网,拒绝外网记录非法访问尝试注意事项高级配置与技巧允许特定IP地址访问服务拒绝某个网段的
- linux shell脚本用while read逐行读取文本的问题
weixin_34060741
shell运维
转自:https://zhidao.baidu.com/question/432126157616850964.html问题:我现在是想用一个脚本获取一定列表服务器的运行时间。首先我建立一个名字为ip.txt的IP列表(一个IP一行),再建好密钥实现不用密码直接登录。然后写脚本如下:#!/bin/bashwhilereadips;doecho$ips;done
- WSL2上下载安装ns3.43教程
李小夭
linux开源软件经验分享
介绍WindowsSubsystemforLinux(简称WSL),这是一个可以让你的电脑不用安装虚拟机,便可以运行Linux系统的平台,WSL2不仅支持Ubuntu,还支持多种其他Linux发行版。以下是一些常见的发行版:DebianKaliLinuxopenSUSELeapopenSUSETumbleweedSUSELinuxEnterpriseServer(SLES)FedoraRemixf
- .NET日志库:Serilog、NLog、Log4Net等十大开源日志库大盘点!
编程乐趣
.netc#
盘点10个第三方.Net日志开源库,你都用过哪几个?1、SerilogStar:225项目地址:https://github.com/serilog/serilog-sinks-console简介:Serilog的一个接收器,通过标准输出将日志事件写入Windows控制台或ANSI终端。它支持颜色和自定义主题,包括在macOS、Linux和Windows10上的ANSI256色主题。默认输出是纯文
- Swift语言的Web开发
邵晨熙
包罗万象golang开发语言后端
Swift语言的Web开发引言随着移动互联网的快速发展,Web开发的需求日益增长。传统上,Web开发主要使用JavaScript、Python、PHP等语言,但近年来,Swift作为一种新兴语言,也逐渐进入了Web开发的视野。Swift最初由苹果公司推出,主要用于iOS和macOS的应用开发。随着它的开源化,Swift逐步被应用于服务器端开发,形成了一种新的Web开发趋势。在本文中,我们将深入探讨
- phpcms v9文件上传漏洞复现
熬夜且瞌睡
网络php开发语言
1.压缩包文件无递归删除$file=$_FILES['file'];#检查文件是否为空文件if(!$file){exit("请勿上传空文件");}$name=$file['name'];$dir='upload/';$ext=strtolower(substr(strrchr($name,'.'),1));functioncheck_dir($dir)#检查文件格式{$handle=opendir
- CentOS搭建Apache服务器
化尘归一
apache服务器运维linux
安装对应的软件包[root@hds~]#yuminstallhttpdmod_ssl-y查看防火墙的状态和selinux[root@hds~]#systemctlstatusfirewalld[root@hds~]#cat/etc/selinux/config若未关闭,则关闭防火墙和selinux[root@hds~]#systemctlstopfirewalld[root@hds~]#syste
- 网络编程 day03
李倚墨
网络编程网络
网络编程day039.三次握手,四次挥手1.三次握手过程状态练习四次挥手过程状态转换练习10.LinuxIO模型阻塞IO非阻塞IO非阻塞IO的设置IO多路复用select特点流程函数接口9.三次握手,四次挥手1.三次握手第一次握手只能由客户端发起过程服务器处于监听状态,称为被动打开,服务器状态:listen第一次握手由客户端发起,客户端调用connect进行主动打开,客户端向服务器发送SYN数据包
- 笔记-Python图片处理 (OpenCV-Python )
大白砌墙
笔记pythonopencv
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV-Python是OpenCV的Python的API接口,它拥有OpenCVC++API
- 【安装Linux on Windows with WSL】包括 VS Code 和 Git
灯火穿透了
linuxwindowsgitvscode
1.安装WSL环境打开PowerShell(或Windows命令提示符)并输入:wsl--install如果下载速度太慢,请连接到手机热点重试。安装完成后重启计算机。2.安装Linux本体再次在PowerShell(或Windows命令提示符)输入:wsl--install此时会安装下载并安装UbuntuLinux发行版(可能需要重新启动)。打开开始菜单上的企鹅头像的WSL,能打开就直接跳转到5.
- Linux 日志处理
1:find1.find基本语法find[path][expression][path]:指定从哪个目录开始搜索(默认为当前目录)。[expression]:定义搜索条件和操作。它可以包含测试条件(如文件名模式)、动作(如删除文件)以及操作符(如AND和OR)示例:查找当前目录及其子目录下的所有.txt文件:find.-name"*.txt"2.常见使用场景及示例(1)按名称查找文件查找特定名称或
- 2025校园私域攻略开源PHP源码分享/校园生活系统/校园服务平台/智慧校园程序
越来越多的人开始做校园表白墙,朋友圈影响力下降,校园小程序校园社区崛起。今年大家可以明显感觉到做校园社区的人更多了,一方面是做教学助教的,再不断地招学员,一方面各家社区、平台也有自己的加盟。导致本来小众的校园私域市场变得热闹起来了,目前各大社区平台累积加盟的校园数量已经有4000-5000家了,带来了更多的连锁反应,很多去年有用的方法现在都不管用了。比如某音某书,其他人也可以做甚至做的更加精致,开
- java 批量查询es_java操作ES的简单查询和bool查询
weixin_39831567
java批量查询es
导入包org.elasticsearch.clienttransport5.2.2org.apache.logging.log4jlog4j-api2.7org.apache.logging.log4jlog4j-core2.7junitjunitRELEASEViewCode2.Java操作基本操作通过client客户端对象获得客户端然后通过preparIndex等方法传入index,type,
- Linux C 语言结构体高级用法
repinkply
#C语言深度剖析linuxc语言运维
话题引入在Linux内核中很多C语言结构体的写法是下面这样的。结构体成员变量之前为什么有这么多.?,其实这样的写法是为了引用一个函数指针,可以看一下下面这个demo就明白了。#include#include#include#includestructDemo{int(*add)(inta,intb);int(*sub)(inta,intb);int(*mul)(inta,intb);};intte
- qt.network.ssl: QSslSocket: cannot call unresolved function 问题解决
清海风缘
Qtqt.network.ssl
转:Qt5.4.2实现一个简单的浏览器及相关问题的解决首先,介绍一下我使用的Qt版本:QtCreator3.4.1(opensource)BasedonQt5.4.2(MSVC2013,32bit)BuiltonMay28201519:07:19运行平台为Windows。至于linux平台,以后再说吧。主要使用的是Qt中的QtWebKit和QWebView。这里Qt5做了相应的调整,可视化的QWe
- 海思视觉Hi3516CV610运行sample
pride.li
海思视觉linux视觉检测
使用前先提前,请使用nfs将开发板和ubuntu进行共享,共享目录为nfs编译samplecdHi3516CV610_SDK_V1.0.1.0/smp/a7_linux/source/mpp/sample/vencmakeallcp sample_vencnfsnfs:ubuntu和开发板共享的目录移植ko如果需要重新编译kocdHi3516CV610_SDK_V1.0.1.0/smp/a7_li
- Github 2024-08-16Java开源项目日报 Top10
老孙正经胡说
github开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,今日(2024-08-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Java项目10TypeScript项目1Ruby项目1ApacheDubbo:高性能的Java开源RPC框架创建周期:4441天开发语言:Java协议类型:ApacheLicense2.0Star数量:40303个Fork数量:26383次关注人数
- Caddy 你的下一个web服务器
码刀攻城
后端前端服务器运维
企业级的Web服务器非常多,Nginx、Tomcat、Apache等。今天的主角是另一个开源的Web服务器,这款服务器具备自动HTTPS功能和高度可配置性,它的名字是:CaddyCaddy是一个Go编写的Web服务器,轻量简单,类似于Nginx,Caddy提供了更加强大的功能,随着v2版本发布,Caddy已经可以作为中小型站点Web服务器的另一个选择。相较于Nginx来说使用Caddy的优势如下:
- 服务器显示检测不到内存,服务器检测不到内存
如椽巨笔
服务器显示检测不到内存
服务器检测不到内存内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。服务器检测不到内存相关内容当前创建的Linux云服务器,均不支持内存使用
- linux 下利用MQTT进行数据传递
土拨鼠不是老鼠
Qtlinux服务器运维MQTT
一,安装MQTT服务1.安装MQTT服务器sudoapt-getinstallmosquitto2.安装MQTT客户端sudoapt-getinstallmosquitto-clients3.配置MQTT服务器sudonano/etc/mosquitto/mosquitto.confallow_anonymoustruelistener18834.重启服务sudoservicemosquittor
- 访问Linux文件系统
上邪o_O
RedhatLinux知识点linux
存储设备是什么?怎么理解分区和格式化?存储设备是用于保存数据的硬件设备,在计算机系统中起着至关重要的作用。常见的存储设备包括硬盘驱动器、固态硬盘、U盘、磁带驱动器等。这些设备可以长期保存数据,即使计算机断电,数据也不会丢失。分区是将存储设备(如硬盘)划分为多个独立区域的过程。每个分区可以被看作是一个独立的逻辑存储单元,具有自己的文件系统和访问权限。格式化是对存储设备或分区进行初始化的过程,它会在存
- Linux 定时清理buff/cache
fyhju1
运维linux运维服务器缓存
总所周知,linux系统下的内存一直都不够用,特别是对于一些WEB网站而言,特别是针对一些小型服务器,内存一下子就占满了通过我们用free-h查询内存的占用大小时,总会发现buff/cache暂用过大解决的方法一般可以直接清理或者定时清理1:直接清理#这个drop_caches文件可以设置的值分别为1、2、3\echo1>/proc/sys/vm/drop_caches#表示清除pagecache
- linux命令十分钟速通,看看你几个没有掌握
平凡灵感码头
linux学习linux
1.useradd功能:创建新用户账户常用参数:-m:创建用户的家目录(如/home/username)-s/bin/bash:指定用户的默认Shell-g:指定用户的主组-G:指定用户的附加组案例:sudo useradd -m -s /bin/bash -G developersjohn2.passwd功能:修改用户密码常用参数:-l:锁定用户账户-u:解锁用户账户-d:删除用户密码(使其无密
- 5个GitHub热点开源项目!!
架构文摘JGWZ
github学习工具
1.自托管Moonlight游戏串流服务:Sunshine主语言:C++,Star:14.4k,周增长:500这是一个自托管的Moonlight游戏串流服务器端项目,支持所有Moonlight客户端。用户可以在自己电脑上搭建一个游戏流服务,通过局域网或互联网串流PC游戏到其他设备,实现跨设备的游戏共享和远程操控。它还提供了Web管理界面,方便进行配置和客户端配对,适用于Windows、Linux和
- Linux命令行使用技巧
万贯
运维
关于虚拟机:虚拟机管理:westos-vmctlcreatewestos创建虚拟机westoswestos-vmctlstartwestos开启虚拟机westos-vmctlviewwestos显示虚拟机westos-vmctlpoweroffwestos关闭虚拟机如何解决虚拟机问题:在虚拟机westos里,破坏系统:超级用户root登录,1.什么是Linux?linux是指Linux内核(系统的
- 使用SAXReader以XML方式解析excel
tkgup
业务开发常见问题解决
使用SAXReader方式解析excelimportorg.apache.poi.openxml4j.opc.OPCPackage;importorg.apache.poi.openxml4j.opc.PackageAccess;importorg.apache.poi.ss.usermodel.BuiltinFormats;importorg.apache.poi.ss.usermodel.Da
- 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