- mysql 双主 脑裂_mysql双主+keepalived
weixin_39789206
mysql双主脑裂
环境OS:centos7Mysql版本:mysql5.7Keepalived:keepalived-1.2.20Mysql-vip:192.168.41.100Mysql-master1:192.168.41.10Mysql-master2:192.168.41.11实验环境关闭防火墙规则firewall-cmd一、配置两台mysql互为主从该过程的第一部分就是master记录二进制日志。在每个事
- centos7安装node.js
0981b16f19c7
安装step1:下载node.jswgethttps://npm.taobao.org/mirrors/node/v8.0.0/node-v8.0.0-linux-x64.tar.xzstep2:解压tar-xvfnode-v8.0.0-linux-x64.tar.xzstep3:配置环境变量,便于全局使用ln-s/usr/opt/node-v8.0.0-linux-x64/bin/node/us
- centos7安装pyenv与pip来管理不同python环境
心软且酷丶
pythonlinuxpythonvirtualenv
概述:pyenv是一个Python版本管理工具,它能够进行全局的Python版本切换,也可以为单个项目提供对应的Python版本。使用pyenv后,可以在服务器上安装多个不同的Python版本,也可以安装不同的Python实现,不同Python版本之间的切换也非常简单。pyenv安装:1、安装git工具[root@devops~]#yuminstallgit2、安装pyenv首先把项目从githu
- heidisql linux 安装_CentOS mysql GUI图形化数据库管理工具Heidisql的安装Navicat
俄罗斯一只战斗鸡
heidisqllinux安装
在Windows下有用过Navicat和Heidisql,都是很强大的工具。因为Navicat是收费的,转到Linux环境下就一下使用Heidisql了。安装:系统环境:Centos7.2一、首先修改yum的源为阿里云:1、备份mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup2、下载新的CentO
- MHA+MYCAT 高可用架构
第九系艾文
linuxLinuxtools服务器数据库mycatmhalinux
架构图如下:本次是4服务器架构如下环境:centos7.2x64mariadb10.4MHA5.7MyCat1.6.7IP规划IP功能10.1.41.166VIP10.1.41.167master,mycat,mha.node10.1.41.168slave(master),mha.node10.1.41.165slave,mycat,keepalived10.1.41.169slave,myca
- Linux:从入门到放弃
Monly21
Linuxlinux
目录一、基础巩固Linux:常用命令二、实战应用Linux:CentOS7基础配置Linux:CentOS7安装MySQL三、常见问题Linux:yum源失效问题一、基础巩固Linux:常用命令二、实战应用Linux:CentOS7基础配置Linux:CentOS7安装MySQL三、常见问题Linux:yum源失效问题
- CentOS 7 上安装 NVIDIA Docker
ManchiBB
centosdockerlinux
在CentOS7上安装NVIDIADocker需要几个步骤。以下是安装NVIDIADocker的基本步骤:安装NVIDIA驱动:确保您的系统已经安装了NVIDIA驱动。如果没有,请先安装驱动。添加NVIDIADocker仓库:添加NVIDIADocker的官方仓库,以便安装最新版本的NVIDIADocker。distribution=$(./etc/os-release;echo$ID$VERSI
- CentOS 7 上安装 Docker
库库林_沙琪马
dockercentosdockerlinux
Docker已经成为了现代软件开发和部署不可或缺的一部分,它提供了一种简便的方式来打包、运行和管理应用程序。本教程将指导你如何在CentOS7系统上安装Docker并进行一些基本配置。系统要求在开始之前,请确保你的CentOS7系统是最新的,并且满足以下条件:CentOS7或更高版本至少2GB内存(虽然Docker官方推荐至少4GB)根据需要的存储空间步骤1:卸载旧版首先更新你的系统以确保所有现有
- “Jmeter-InfluxDB-Grafana“常见错误有哪些如何解决?
神即道 道法自然 如来
jmetergrafana
常见错误:1.网络不同,检查网络IP是否写对,端口号有没有放开(Centos7端口号命令),防火墙是否关闭firewall-cmd--add-port=3000/tcp--permanentfirewall-cmd--add-port=3000/udp--permanentfirewall-cmd--reload2.Jmeter里面的influxDB地址里面的db=jmeter,和在influxd
- centos7时间同步教程
回家吃月饼
#性能环境搭建linuxgitcentos
针对问题:在我们使用虚拟机配置好centos7后,发现服务器时间和当前时间对不上第一种方法,命令有点多通过命令查看时间不同步date或者date-R修改/etc/sysconfig/clock文件如下内容,保存vi/etc/sysconfig/clockZONE="Asia/Shanghai"UTC=trueARC=false重写/etc/localtime,执行如下,回车rm/etc/local
- 如何在虚拟机中安装部署K8S?
桃林春风一杯酒
kubernetesjavadocker
教程参考:centos7安装k8s1.28版本,基于科学-CSDN博客环境准备:准备三台机器,都做以下操作,或者只准备一个机器,最后再克隆两台。yum:换源,这是阿里云的源sudowget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo然后清缓存,建立元数据yumcleanallyumma
- Linux(Centos7.9)实现硬盘挂载并实现自动挂载
BQ-Code
云计算篇linux运维服务器
安装完Centos系统后,添加一块数据磁盘,使用lvm分区,挂载到/mnt/data目录下,并实现自动挂载挂载虚拟机设置中,新增10G磁盘,由于新装系统,无法使用lvm相关命令,需要使用yumupdate更新yum后下载lvm过程遇到报错,因为更新源被弃用,所以先更改YUM仓库源更新YUM仓库源为阿里云镜像源:sudovi/etc/yum.repos.d/CentOS-Base.repo原有内容删
- linux7.6安装telnet服务,CentOS 7.6 Telnet服务搭建过程(Openssh升级之战 第一任务备用运输线搭建)...
Ronald Wang
有不明的问题的时候,都来博客园转转,总能找到答案或者灵感,开博3个月都没发一篇帖(不晓得管理员有何感想,不会封我的号吧),不能只是索取没有付出。小白一枚琢磨了半天才扒拉明白Telnet服务搭建(照葫芦画瓢,也要知道葫芦从哪里来的),去繁就简,简单整理一下,分享一下。Linux上的ssh那么好用为什么还要用Telnet这么老旧的东东呢?最近被SSH暴力枚举漏洞弄得头疼,奈何CentOS7最后版本是7
- telnet yum linux安装,CentOS 7 LINUX下安装telnet服务
WebWarrior
telnetyumlinux安装
在CentOS7下升级了openssl和openssh,顺便装了下telnet服务。#安装telnet避免ssh无法登录yum-yinstallxinetdtelnettelnet-server在telnet情况下root登录提示loginincorrectlinux默认情况下root用户使用telnet是登录不了的,需要修改/etc/secruetty文件#允许root账号登陆vi/etc/se
- CentOS7 安装Docker,并配置阿里云镜像
JBryan
1、安装Docker1.1、安装gccyum-yinstallgccgcc-c++1.2、安装需要的软件包yuminstall-yyum-utilsdevice-mapper-persistent-datalvm21.3、设置stable镜像仓库yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/
- CentOS 7 将YUM源更换为国内源的保姆级教程
一个代码猎人
linuxcentoslinux运维
CentOS7将YUM源更换为国内源的保姆级教程在使用CentOS7的过程中,默认的YUM源可能会导致下载速度较慢或连接不稳定。为了提高下载速度,您可以将YUM源更换为国内的镜像源。本文将提供一个简单的教程,帮助您轻松完成这一过程。1.备份原有的YUM源配置在更换YUM源之前,建议先备份原有的YUM源配置文件,以防万一需要恢复。打开终端。备份YUM源配置文件:sudocp-r/etc/yum.re
- mysql8.0使用MHA实现高可用
Fish_1112
mysqlMHA
1.环境配置本实验环境共有四个节点,其角色分配如下(实验机器均为centos7.x)机器名称IP配置服务角色manager172.16.90.211manager控制器master172.16.90.212数据库主服务器slave1172.16.90.213数据库从服务器slave2172.16.90.214数据库从服务器为了方便我们后期的操作,我们在各节点的/etc/hosts文件配置内容中添加
- linux 磁盘分区 磁盘格式化 挂载磁盘
whiletrue_aed4
系统centos7.6磁盘分区先执行fdisk-l查看未分区的磁盘,比如有磁盘/dev/vdb磁盘未分区,执行下面命令分区:fdisk/dev/vdb磁盘格式化mkfs-text4/dev/vdb1挂载磁盘1.新建要挂载到的目录mkdir/mnt/disk12.执行挂载命令mount/dev/vdb1/mnt/disk13.永久挂载使用blkid命令查看对应分区的uuid编辑/etc/fstabv
- linux 上安装及配置 salt-minion
anbusha
IT平台linuxcentos运维
下面是salt-minion的安装记录########################################################################在centos6或centos7上安装salt-minionrpm--importhttps://repo.saltstack.com/yum/redhat/6/x86_64/archive/2018.3.2/SALT
- DevOps实战:使用GitLab+Jenkins+Kubernetes(k8s)建立CI_CD解决方案
北京少女的梦
devopsgitlabjenkins
一.系统环境本文主要基于Kubernetes1.21.9和Linux操作系统CentOS7.4。服务器版本docker软件版本Kubernetes(k8s)集群版本CPU架构CentOSLinuxrelease7.4.1708(Core)Dockerversion20.10.12v1.21.9x86_64CI/CD解决方案架构图:CI/CD解决方案架构图描述:程序员写好代码之后,向gitlab代码
- 【centos7】中完全卸载Python3
小涂的知识库
Pythoncentos7系统python开发语言
如何在centos7中完全卸载Python3?逻辑很简单,具体的操作代码,记录下来。卸载Python3的三步骤1、卸载python3rpm-qa|greppython3|xargsrpm-ev--allmatches--nodeps2、删除所有残余文件whereispython3|xargsrm-frv3、查看现有安装的python,验证是否删除干净whereispython
- CLION+gdbserver远程调试C项目
shulu
C项目c语言开发语言
CLION+gdbserver远程调试C项目CLION版本:2023.3.5gdb、gdbserver版本:13.2cmake版本:3.27.9操作系统版本:centos7.9x64gcc版本:4.8.5(系统自带)cmak安装以下是下载二进制安装包:https://cmake.org/files/v3.27/cmake-3.27.7-linux-x86_64.tar.gzgdb安装下载源码:ht
- Centos7安装RabbitMQ
leafseelight
rabbitmqcentos安装教程
文章目录Centos7安装RabbitMQ第一步、安装任何软件包之前,建议使用以下命令更新软件包和存储库第二步、Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库第三步、RabbitMQ是基于Erlang(面向高并发的语言)语言开发,所以在安装RabbitMQ之前,需要先安装Erlang语言第四步、检查Erlang版本,默认是最新版本第五步、下载RabbitMQ第六步、安装R
- linux7webmin,如何在CentOS 7上安装Webmin
东京不太热
linux7webmin
Webmin是用于Linux/UNIX系统管理的开源Web控制面板。Webmin允许您管理用户,组,磁盘配额以及配置最受欢迎的服务,包括Web,FTP,电子邮件和数据库服务器。本教程介绍了如何在CentOS7服务器上安装Webmin。先决条件在CentOS上安装Webmin在CentOS机器上安装Webmin的最简单和推荐的方法是启用Webmin存储库并通过命令行安装Webmin软件包。完成以下步
- 关于centos7下的nginx配置https
因帅被判入狱
前段时间配备https,在网上找了很资料,结合自己的实际需求,在这分享一下配备https的一些步骤①.下载好所需要的https证书,笔者用的是阿里云,所以直接在上面下载nginx的证书,然后把下载好的证书上传到安装nginx目录里面的conf目录,笔者的是:cd/usr/local/nginx/conf/②.进入自己安装nginx的文件目录进入配置文件,由于笔者是源码安装,所有我的目录是vi/us
- 【Python】案例介绍Pytest进行压力测试
田辛 | 田豆芽
Python自动化测试pythonpytest压力测试
在现代Web应用程序中,性能是至关重要的。为了确保应用程序能够在高负载下正常运行,我们需要进行性能测试。今天,应小伙伴的提问,田辛老师来写一个Pytest进行压力测试的简单案例。这个案例的测试网站我们就隐藏了,不过网站的基本情况是:阿里云服务器:CentOS7,宝塔面版,PHP7.4,MySQL5.7数据库开发框架:FastAdmin.net1程序说明1.1设置测试参数首先,田辛老师做的第一件事情
- 腾讯云 Spring Boot 安装 SSL 证书
阳光正好2024
腾讯云springbootssl
linux和windows下,因为有ngxin,所以安装ssl证书都感觉比较容易,毕竟通过代理方式能够胜任大多数的https安全问题。但是有些情况下,ngxin可能无法安装什么的,可能需要在springboot下直接安装ssl,咋办?这么办:1、说明:文档以证书名称cloud.tencent.com为例。SpringBoot版本以3.0.2为例。当前服务器的操作系统为CentOS7,由于操作系统的
- powerdns配置
weixin_33701251
php数据库运维
系统:centos7组成软件:epel仓库、mariadb数据库、powerdns步骤1:安装epel仓库yum install epel-release.noarch2:安装mariaDByum -y install mariadb-server mariadb3.设置服务开机启动和启动Mariadbsystemctl enable mariadb.servicesystemcatl start
- 关于centos7仓库归档导致yum源更新失败问题Could not retrieve mirrorlist http://mirrorlist.centos.org?arch=x86_64
飘然渡沧海
自己新建项目遇到问题linuxcentos
关于centos7仓库归档导致yum源更新失败问题,报错Loadedplugins:fastestmirrorDeterminingfastestmirrorsCouldnotretrievemirrorlisthttp://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rherrorwas14:curl#6-"Couldnotreso
- k8s安装test
qBeautifulBoy
kubernetes容器云原生
k8s集群部署准备工作三台centos7虚拟机(内存每个节点4G)[root@master~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)三个机器分别设置主机名hostnamectlset-hostnamemasterhostnamectlset-hostnamenode1hostnamectlset-hostnamenode2三台
- 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