- Nginx配置反向代理不成功的原因(Docker安装版)
程序员迪迦
项目实战nginxdockerlinux
问题背景在linux服务器中使用docker下载了Nginx,然后根据网上的教程来配置反向代理的时候发现80端口无法访问server块的配置server{listen80;server_name127.0.0.1;#access_log/var/log/nginx/host.access.logmain;location/{proxy_passhttp://127.0.0.1:8080;#inde
- Centos7 搭建 Jupyter + Nginx 服务
某龙兄
pythonnginxlinuxcentos
JupyterNotebook(此前被称为IPythonnotebook)是一个交互式笔记本,支持运行40多种编程语言。JupyterNotebook的本质是一个Web应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和markdown。用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。本文讲述如何搭建Jupyter+Nginx服务,仅供学习与交流,请勿用于商业用途一
- nginx反向代理jupyter
jerry-89
jupyterlabnginxjupyterpython
1.jupyter配置打开配置文件/home/jack/.jupyter/jupyter_notebook_config.py2.反向代理配置这个/jack/与上面添加的对应location/jack/{proxy_passhttp://192.168.196.164:8888/jack/;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$re
- c#编程:基于C#+Access的学生信息管理系统 课程设计报告撰写提纲
gu20
C#c#课程设计开发语言数据库开发
1.摘要简述系统目标、技术选型(C#+Access)、核心功能及数据库设计亮点。关键词:学生信息管理系统;数据库原理;C#;Access;事务处理。2.引言背景与意义:信息化管理需求、数据库技术在教育领域的应用价值。设计目标:实现学生信息的高效管理,体现数据库规范化、安全性等原理。技术路线:C#(WinForm)、Access数据库、ADO.NET数据访问技术。3.需求分析3.1功能需求:1.学生
- YashanDB访问约束
数据库
本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%A6%82%E5%BF%B5%...访问约束是YashanDB特有的一种关系数据结构,基于有界计算理论的访问约束模型(AC,AccessConstraint)实现:通过在数据源上建立AC,实现大数据变小的模型变换。在查询时,通过访问AC数据,缩小查询代价和提升查
- CCNP350-401学习笔记(351-400题)
殊彦_sy
CCNP题库学习
351、WhichnewenhancementwasimplementedinWi-Fi6?A.4096QuadratureAmplitudeModulationModeB.ChannelbondingC.Wi-FiProtectedAccess3D.UplinkandDownlinkOrthogonalFrequencyDivisionMultipleAccess352、HowdoesIGMPf
- Java集合之ArrayList(含源码解析 超详细)
&星辰入梦来&
Java集合javapython开发语言
1.ArrayList简介ArrayList的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于AbstructList,实现了List,RandomAccess,Cloneable,Java.io.Serializa
- DeepSeek 助力 Vue 开发:打造丝滑的导航栏(Navbar)
宝码香车
#DeepSeekvue.js前端javascriptecmascriptDeepSeek
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦目录DeepSeek助力Vue开发:打造丝滑的导航栏(Navbar)前言页面效果指令输入属性定义1.导航栏样式相关2.导航项相关3.响应式相关4.对齐方式相关事件定义1.导航项点击事件2.菜单折叠切换事件其他建议1.可访问性2.动画效果3.图标支
- 跟我一起学Python数据处理(七十四):数据处理工具与网页抓取入门
lilye66
pythonjupyter开发语言爬虫
跟我一起学Python数据处理(七十四):数据处理工具与网页抓取入门大家好!一直以来,我都坚信在学习的道路上,相互交流和共同进步是非常重要的。在Python数据处理这片充满挑战与机遇的领域,我也在持续学习和探索,希望借由这一系列的博客,能和大家一起深入钻研,共同成长。在上一篇博客中,我们学习了Jupyternotebook的相关知识,今天咱们接着来了解Python数据处理中的其他关键内容,包括一些
- DMSD1 2433A Principles of Marketing
后端
Course:DiplomainManagementStudies(DMSD12433A/2434A/2535A)ModuleTitle:PrinciplesofMarketingAssessment:IndividualAssignmentDate/DueDate:28February2025Weighting:30%(100marks)Note:SubmissionofSoftandHardc
- GSND 5345Q, Fundamentals of Data Science
后端
Homework4GSND5345Q,FundamentalsofDataScienceDueWednesday,February19th,2025Nowitstimetopracticewhatwehavelearnedinclassandlearnevenmore!NotethatfromnowonyourhomeworkshouldbewritteninRMarkdown.Turninyou
- List获取指定位置元素
mini宝儿
arraylist
ArrayList中怎么获取指定第几个元素,例如获取第5个元素,可以通过list.get(4)得到。源码如下:publicclassArrayListextendsAbstractList implementsList,RandomAccess,Cloneable,java.io.Serializable{ privatestaticfinallongserialVersionUID=8683
- 利用cuda加速图像处理—实现sobel边缘检测
我不会打代码啊啊
cuda编程图像处理计算机视觉opencvc++gpu算力
利用cuda加速图像处理—实现sobel边缘检测#include#include#includeusingnamespacecv;/***@brief对图像进行Sobel滤波*@paraminput输入图像*@paramoutput输出图像*@paramwidth图像宽度*@paramheight图像高度*@returnvoid*@note该函数使用CUDA进行加速*@note该函数使用Sobel
- OSPF协议五种网络类型中DR和BDR选举说明
路星辞*
网络网络智能路由器运维ospf
OSPF协议五种网络类型中DR和BDR选举说明OSPF链路类型有3种:点到点,广播型,NBMA(非广播-多路访问网络(Non-BroadcastMultipleAccess,NBMA))。在3种链路类型上扩展出5种网络类型:点到点,广播,NBMA,点到多点,虚链路。其中虚链路较为特殊,不针对具体链路,而NBMA链路对应NBMA和点到多点两种网络类型。以上是RFC的定义,在Cisco路由器的实现上,
- 数据权限校验实践
fengdongnan
数据库前端网络
数据权限控制实践最近在实习中为公司项目完成一个文件数据权限校验代码的转换重构,写这篇博客来记录前后两种权限校验的实现方案与相关概念原实现方案:RBAC-基于角色的访问控制RBAC(Role-BasedAccessControl)RBAC是一种常见的访问控制模型,它通过角色来分配权限。在RBAC模型中,角色是一组权限的集合,用户通过被分配角色来获得相应的权限。RBAC的主要特点包括:角色分配:用户被
- 小米红米手机澎湃2.0解锁BL 绕澎湃社区验证 救砖以及9008授权
我叫小特
智能手机电脑经验分享手机
2025年小米降级刷机系统政策,小特刷机科技写高通处理器:澎湃2.0或者K50/K50Pro/Note11TPro/Note12Tpro的最新澎湃1.0就是代表高版本小米红米高版本无法解锁bl的,无法绕过绑定的,免解锁降级的,黑砖救砖的,可邮寄拆字库进行物理层面的底层刷写。物理刷写支持手机降级,救砖等,修复基带小米14系列,K70至尊你要降级的话,你就不用看了,让你邮寄你肯定也没有备用机。小米13
- Notepad++ 还原Find result窗口的正确方法,100%成功。
BrainZou
notpad++findresult
缩小Notepad++窗口,不要全屏。点击Findresult窗口不放,一直往下拖,直到鼠标位置对准Notepad++的主窗口的下边缘。如下图:重点:缩小窗口,一直往下拖。
- 用conda虚拟环境解决py+torch环境问题
SevenZS
Noteanacondapython
要事先安装wheelpipinstallwheelcondainstallnb_conda安装nb_conda这样可以在shell切换虚拟环境启动jupyternotebook后切换到虚拟环境创建虚拟环境condacreate-npython36python=3.6condaactivatepython36加载后再pip安装torch1.4+cu101所有版本torch放在某个文件夹,比如桌面后p
- AI智能碰碰卡/碰一碰发视频源码如何开发接入
张晓_za898668
碰一碰碰碰卡碰碰卡源码音视频矩阵linuxc语言c#
一、智能碰碰卡系统技术能力如何接入?使用场景需要用户授权后,才能调用相应的权限接口。例如:视频权限、用户权限等。背景信息网站应用抖音登录是基于OAuth2.0协议标准构建的授权登录系统,让抖音用户可以使用抖音账号身份安全登录第三方应用或网站,在抖音用户授权登录第三方网站应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行抖音开放平台授权关系接
- 尚硅谷爬虫note007
CSDNy666999
爬虫
一、urllib—异常1.urllib.error.HTTPError2.urllib.error.URLError#_*_coding:utf-8_*_#@Time:2025/2/1411:33#@Author:20250206-里奥#@File:demo26_异常#@Project:PythonProject10-14importurllib.requestimporturllib.error
- C语言-note004
CSDNy666999
c语言开发语言
1.内存函数1-1memcpy内存拷贝memcpy(参数1【目的】,参数2【源】,参数3【无符号整型】)memcpy函数不能用来处理重叠的内存空间的数据拷贝使用memmove实现重叠内存空间的数据拷贝void*memcpy(void*dest,constvoid*src,size_tnum){}void*:通用类型指针1-2memmove内存拷贝分两种情况拷贝:(1)从前向后拷贝destsrc示例
- 【linux numa】 NUMA 绑核
Dayu_log
linuxlinux
1.NUMA的前世今生NUMA(NonUniformMemoryAccess)和UMA(UniformMemoryAccess)是两种CPU相关的硬件架构。在早期的UMA架构中,CPU通过前端总线(FSB,FrontSideBus)连接到北桥芯片,然后北桥芯片连接到内存,即内存控制器集成在北桥芯片中。外部IO设备与南桥芯片相连,南桥芯片与北桥芯片通过内部总线相连。下图为UMA架构图下图为早期的UM
- Debian/Ubuntu云服务器配置最速实践笔记[1]
打磨怪
最速实践linuxdebianubuntu腾讯云
在腾讯云购买了一台轻量云服务器跑几个机器人用,一篇基础配置的实践笔记系统是Debian11,理论上Ubuntu等衍生版本基本可以无修改地参考添加普通用户安装Docker安装Node.js安装miniconda安装JupyterNotebook及后台启动Q&A参考资料先关机;重置密码(设定root密码);开机添加用户//先切换到rootsuroot//添加一个普通用户sudoadduser//确定该
- Spring Cloud微服务生产级容量评估实战
power-辰南
java专栏springcloud微服务spring容量评估
一、容量评估体系架构业务需求分析流量建模环境仿真分级压测瓶颈分析容量计算配置推荐验证优化二、流量建模与数据模拟2.1流量建模四步法步骤1:生产流量分析#分析Nginx日志获取真实流量特征awk'{print$4,$7,$9}'access.log|awk-F'[:]''{print$1,$5,$7}'|sort|uniq-c|sort-nr>api_distribution.txt#输出示例:14
- 机器学些|实战?
dami_king
随笔机器学习
机器学习实战:从零到%1…今天聊聊机器学习(MachineLearning,ML),这个听起来高大上的技术其实并没有那么神秘。跟着我的节奏,咱们一起来探索一下如何从零开始!准备工作:安装和导入必要的库在开始我们的房价预测项目之前,我们需要准备好开发环境并导入所有必要的库。这些库将帮助我们处理数据、构建模型、评估性能以及可视化结果。安装Python和JupyterNotebook首先,确保你已经安装
- Jupyter notebook和 Jupyter lab内核死亡问题的原因和解决方案
Y1nhl
软件安装算法竞赛数据处理jupyteridepythonpandas数据挖掘机器学习
写在前面:之前也遇到过几次内核死亡的问题,也一直没有想解决办法。这里总结一下并提出几个解决办法。首先明确一下jupyter出现内核死亡的原因:jupyterlab或者jupyternotebook本身是一个web服务,无法支持高并发和频繁的计算任务,对于大规模运行或高并发是不够能力处理,所以机会内核死亡。所以如果平时也习惯用pycharm,移植代码到pycharm运行就没问题了。我是因为很少用py
- DMA原理,步骤超细详解,一文看懂DMA
2401_87198107
java开发语言
什么是DMA(DMA的基本定义)DMA,全称DirectMemoryAccess,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。我们知道CPU有转移数据、计算、控制程序转移等很多功能,系统运作的核心就是CPU,CPU无时不刻的在处理着大量的事务,但有些事情却没有那么重要,比方说数据的复制和存储数据,如果我们把这部分
- sql not in 优化
dingchengyu
数据库mysqlsql
sql优化1、notin的优化notin和notexists不会命中索引,可以优化为通过leftjoin实现;例如要查询存在于a表但不存在与b表的数据,比较容易理解的sql写法:SELECT*FROMtable_aWHEREidNOTIN(SELECTaidFROMtable_b)1可以利用leftjoin保左、不保右的特性,改为如下sql,效果是一样的,但是如果b表的aid有索引,那么下面的方法
- SpringBoot中实现WebMvcConfigurer,配置跨域无效
TNTnine
Springspringbootjava后端
跨域配置如下:@ConfigurationpublicclassCorsConfigimplementsWebMvcConfigurer{/***跨域配置*-Access-Control-Allow-Origin的介绍:*-https://blog.csdn.net/MicroAnswer/article/details/102913571*-SpringMVC路径匹配规则:*-1、https:/
- RAM与ROM的区别
云墨丹青
系统ramrom
[参考链接】(https://blog.csdn.net/tectrol/article/details/80638457)随机存取存储器(RandomAccessMemory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留数据。如果需要保存数据,
- 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