- CentOS7 python安装Ta-lib 0.6.x【talib不能直接安装,必须先安装ta_lib之c++库才可以】
weixin_43343144
服务器运维
正常流程:CentOS7python安装Ta-lib【talib不能直接安装,必须先安装ta_lib之c++库才可以】_centos7安装ta-lib-CSDN博客不同的版本参考如下!参考官方文档:ta-lib·PyPI务必下载匹配版本的【ta-lib-0.6.4-src.tar.gz】才可以正常安装$wgethttps://github.com/ta-lib/ta-lib/releases/do
- Centos 7 安装 supervisor
qq_50977952
Linuxcentoslinux服务器
方式1:yuminstall-yepel-releaseyuminstall-ysupervisor启动systemctlstartsupervisord其他命令supervisorctlreload#重启修改了supervisord.conf,需要执行来重新加载配置文件supervisorctlstatus#查看所有进程的状态supervisorctlstopdemo#停止supervisorc
- CentOS7 安装Supervisor
IChen.
Linux服务器运维
安装epel-releaseyum-yinstallepel-release安装supervisoryum-yinstallsupervisor开机自启systemctlenablesupervisord启动supervisord服务systemctlstartsupervisord重启supervisord服务systemctlrestartsupervisordSupervisor常用命令#重
- CentOS 7 64位安装Docker
咯拉咯啦
Dockerdocker
以下是在已有的CentOS764位虚拟机上安装Docker并配置华为镜像源的详细步骤:1.备份原有Yum源(可选,建议操作)#备份原有仓库文件sudomv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup2.更换CentOS7Yum源为华为源#下载华为云CentOS7的仓库文件sudocurl-o/et
- CentOS 7 下 Supervisor 安装与配置
OUDKE
centoslinux运维服务器
Supervisor是一个用于管理和监控进程的工具,它可以在CentOS7服务器上轻松地启动、停止和重启进程。在本文中,我将向您展示如何安装和配置Supervisor。步骤1:安装Supervisor首先,我们需要使用yum包管理器安装Supervisor。打开终端并执行以下命令:sudoyuminstallepel-releasesudoyuminstallsupervisor这将安装Super
- 在CentOS上安装Supervisor进行进程监控
张3蜂
软件安装部署centoslinux运维
安装EPEL存储库:sudoyuminstallepel-release安装Supervisor:sudoyuminstallsupervisor启动并启用Supervisor服务:sudosystemctlstatussupervisordsudosystemctlstartsupervisordsudosystemctlenablesupervisord配置Supervisor:Supervi
- 利用docker部署单节点milvus并实现图像化管理
听说唐僧不吃肉
Linuxdockermilvus
Docker部署单机版milvus使用DockerCompose安装Milvusstandalone(即单机版),进行一个快速milvus的体验。1.前提条件系统可以使用centos或者ubuntu系统已经安装docker和docker-composemilvus版本这里选择2.3.12.启动etcd、minio、milvus由于milvus依赖etcd和minio,因此需要先启动这2个组件。同样
- Docker build 报错 “ Cannot find a valid baseurl for repo: base/7/x86_64 ” 解决
EricLi404
linuxDockercentosyumdockercentos7linux
错误内容dockerbuild阶段报错如下:SendingbuildcontexttoDockerdaemon2.048kBStep1/3:FROMcentos:7--->8652b9f0cb4cStep2/3:RUNyum-yupdate--->Runningin4e4e11d880f3Loadedplugins:fastestmirror,ovlDeterminingfastestmirror
- 解决Centos使用yum命令报错“Cannot find a valid baseurl for repo: base/7/x86_64”问题
牛奶咖啡13
运维/测试centoslinux解决Centos仓库源失效InfluxDB作服务失败问题[Errno256]HTTPSError404
一、问题描述我们在使用Centos7.9使用【sudoyuminstallinfluxdb2】命令安装influxDB数据库的时候提示“LoadingmirrorspeedsfromcachedhostfileCouldnotretrievemirrorlisthttp://mirrorlist.centos.org/release=7&arch=x86_64&repo=os&infra=stoc
- centos 7 安装docker-compose
1.下载docker-compose#官方推荐(太慢)curl-L"https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose#国内(更快)curl-Lhttps://get.daocloud.io/do
- linux+docker安装常见中间件+shell学习笔记
芦屋花绘
linuxdocker中间件
初始设置下载虚拟机软件:选择适合的虚拟机软件(如VirtualBox或VMware)。下载操作系统ISO映像文件:选择并下载你想安装的Linux发行版(例如Ubuntu、CentOS等)的ISO文件。ISO映像文件:是包含了完整光盘内容的文件,包含引导记录、文件系统、数据文件和目录结构。导入ISO文件到虚拟机,并进行相关配置,如分配内存、硬盘空间等。了解基本linuxLinux常见目录及其用途Li
- Squid 代理服务器应用
Z__Cheng
linux服务器网络
Squid代理服务器应用一、Squid服务基础1.1缓存代理概述(一)代理的工作机制(二)代理的基本类型1.2编译安装及运行步骤(理论)1.3编译安装及运行具体操作(实操)二、构建代理服务器2.1传统代理2.1.1搭建传统代理的步骤(理论)2.1.2搭建传统代理的具体操作步骤(实操)2.2透明代理2.2.1搭建透明代理的步骤(理论)2.2.1搭建透明代理的具体实验步骤(实操)2.3ACL访问控制2
- pigz is needed by docker-ce-18.03.1.ce-1.el7.centos.x86_64 问题
清风的BLOG
问题锦集pigzisneededbydocker-ce-18
出现问题[root@centos74~]#rpm-ivhdocker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm error:Faileddependencies: pigzisneededbydocker-ce-18.03.1.ce-1.el7.centos.x86_64解决问题由上可以看出安装docker需要pigz这个包所以安装这个依赖pigz下载网址:可
- 记录:(error) NOAUTH Authentication required...【解决方案】
bug菌¹
全栈Bug调优(实战版)#CSDN问答解惑(全栈版)redis连接报错Authentication
作者:bug菌✏️博客:CSDN、掘金等公众号:猿圈奇妙屋特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。一、前言环境版本:centos7.6+redis6.2.6+xshell5二、排错通过xshell5远程连接阿里云服务器,内核是cent
- sudo apt-get install package时出现E:无法定位软件包
God.v
ubuntulinuxcentos
sudoapt-getinstallpackage时出现E:无法定位软件包在Ubuntu上安装openssl-devel时遇到无法定位软件包的问题,查阅文章,大多是换源和在“软件和更新”中更换下载地址的方法,而我尝试过后并无卵用,如果接下来的方法不适用你的情况,你也不妨考虑以上两种办法。其实很简单,区分centos和Ubuntu等在安装文件时的名称差别,对于这两种图形界面来说,将openssl-d
- 环境准备系列——使家里的工作站在公网上也可以通过ssh进行访问
music&movie
工具ssh运维
一、基础配置:启用SSH服务与端口开放安装SSH服务•Ubuntu/Debian系统:sudoaptupdate&&sudoaptinstallopenssh-server•CentOS系统:sudoyuminstallopenssh-server•启动服务:sudosystemctlstartsshd&&sudosystemctlenablesshd修改默认端口(推荐)•编辑配置文件:sudov
- Linux 上安装 PostgreSQL
lsx202406
开发语言
Linux上安装PostgreSQL引言PostgreSQL是一款功能强大、性能卓越的开源关系型数据库管理系统。它支持多种操作系统,包括Linux。本文将详细介绍如何在Linux系统上安装PostgreSQL,帮助您快速入门。准备工作在开始安装之前,请确保您的Linux系统满足以下条件:系统版本:Linux发行版,如Ubuntu、CentOS等。网络连接:确保您的系统可以访问互联网。用户权限:具有
- 全网最细!CentOS 7极速部署MySQL 8.0.23实战手册(附最佳参数模版)
从不删库的DBA
Mysqlcentosmysqllinux
一、部署前准备1.1环境检查清单在进行MySQL部署前,请确认以下基础条件已满足:检查项标准要求操作系统版本CentOS6/7(推荐7.6+)内存建议≥4GB(生产环境≥16GB)磁盘空间/分区≥30GB,数据盘按需求规划网络连通性确保yum源可访问二、操作系统基础配置2.1关闭网络管理服务根据系统版本选择相应操作:▶CentOS6#serviceNetworkManagerstop停止Netwo
- redis搭建一主一从+keepalived(虚拟IP)实现高可用
qq_36984017
redislinuxkeepalived主从高可用
redis搭建一主一从+keepalived(虚拟IP)实现高可用前提有两台机器:如10.50.3.14110.50.3.142,虚拟ip如:10.50.3.170安装redis(两台机器执行):#启用Remi仓库(CentOS7)sudoyuminstall-yhttps://rpms.remirepo.net/enterprise/remi-release-7.rpm#安装Redis6.xsu
- centos环境安装swoole后,php7无法加载swoole.so时出现nable to load dynamic library 'swoole.so'
yyfx2010
swoolephp7swoolephp7.2
先贴上错误提示[
[email protected]]#php-vPHPWarning:PHPStartup:Unabletoloaddynamiclibrary'swoole.so'(tried:/usr/lib64/php/modules/swoole.so(/usr/lib64/php/modules/swoole.so:undefinedsymbol:php_sockets_le_socket)
- 关于swoole的初步了解记录
snacy
swoolephp服务器
今天初步了解了一下关于swoole的相关知识,在这里记录一下。关于swoole的初步了解记录安装swoole扩展swoole扩展需要在Linux环境下安装,目前还不支持在Windows环境下安装,当前操作系统为centOS系统安装swoole需要:PHP、php-pear(这个是为了稍后可以使用pecl来安装swoole)、php-devel、gcc先执行更新操作:yumupdate(已更新过的可
- CentOS7下安装python3.8
讓丄帝愛伱
Linux编程语言
查看系统版本#查看系统版本cat/etc/centos-release>CentOSLinuxrelease7.2.1511(Core)uname-a>Linuxlocalhost.localdomain3.10.0-327.el7.x86_64#1SMPThuNov1922:10:57UTC2015x86_64x86_64x86_64GNU/Linux#查看python版本python-V>Py
- Linux系统中安装各种常用中间件
Vic2334
运维linux中间件运维
Linux安装docker安装docker定制软件源yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装最新版dockeryumlistdocker-ce--
- 云计算赛题私有云服务搭建题目
春生黎至1005
云计算全国职业技能竞赛样题云计算私有云
【任务1】私有云服务搭建[5分]【题目1】1.1.1基础环境配置[0.2分]1.控制节点主机名为controller,设置计算节点主机名为compute;2.hosts文件将IP地址映射为主机名。使用提供的用户名密码,登录提供的OpenStack私有云平台,在当前租户下,使用CentOS7.9镜像,创建两台云主机,云主机类型使用4vCPU/12G/100G_50G类型。当前租户下默认存在一张网卡,
- VMWare Centos7虚拟机安装并运行MongoDB
Jay_Wooz
经验数据库环境搭建mongodblinux数据库
虚拟机:CentOS-7-x86_64-Minimal-2009MongoDB:mongodb-linux-x86_64-rhel70-5.0.5运行起来#Step1.安装依赖yuminstalllibcurlopenssl-y#Step2.下载mongoDB压缩包wgethttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.
- 【已解决】将CentOS7系统安装至U盘(四):安装Qt5.14.2(解决#error qt requires c++11 support问题)
pyengine
qtc++开发语言centos
目录1下载安装文件2安装Qt5.14.2和QtCreator3解决编译问题1下载安装文件从Qt官网或清华大学镜像站https://mirrors.tuna.tsinghua.edu.cn/gnu/gcchttps://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.14/5.14.2/下载Qt安装文件。以清华大学镜像站为例,下载如下:wgethttps:/
- 腾讯云Centos Stream 9 yum源
☆凡尘清心☆
腾讯云centos云计算
1.CentOS-Stream-BaseOS.repo#CentOS-Stream-BaseOS.repo##ThemirrorlistsystemusestheconnectingIPaddressoftheclientandthe#updatestatusofeachmirrortopickcurrentmirrorsthataregeographically#closetotheclient
- CentOS7 平滑升级 MariaDB 5.5 到 10.x 新版本实践
weixin_34318272
运维数据库
前言自从CentOS7开始,自带的数据库就变成MariaDB了,yum安装之后的默认版本是5.5,但是这个数据版本已经比较老了,无论是安装全新的Percona还是升级MariaDB第一步始终是不要忘记备份。CentOS7平滑升级MariaDB5.5到10.x新版本实践更新历史2018年11月14日-初稿阅读原文-https://wsgzao.github.io/post...扩展阅读MariaDB
- Linux中的yum和vim工具使用总结
yi个名字
linuxvim运维
在Linux系统管理和文本编辑中,yum和vim是两个非常重要的工具。yum作为包管理器帮助我们轻松安装和管理软件,而vim则是一个功能强大的文本编辑器。下面我将对这两个工具进行详细介绍。一、YUM包管理器1.YUM简介YUM(YellowdogUpdaterModified)是一个在Fedora、CentOS和RedHat等基于RPM的Linux发行版中的开源命令行包管理工具。它允许用户自动下载
- 网页编辑器能否满足Word公式与图片的直接复制粘贴?
2501_90699800
编辑器wordumeditor粘贴wordueditor粘贴wordueditor复制wordueditor上传word图片ueditor导入word
要求:开源,免费,技术支持编辑器:百度ueditor前端:vue2,vue3,vue-cli,react,html5用户体验:Ctrl+V快捷键操作功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏平台:Windows,macOS,Linux,RedHat,CentOS,Ubuntu,中标麒麟,银河麒麟,统信UOS,
- 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