- linux zk服务 关闭_linux – 如何在Ubuntu上停止ZooKeeper?
童广
linuxzk服务关闭
我按照建议here在ubuntu14.04上安装了zookeeperd:不幸的是,这个过程在某种程度上是不可停止的.我甚至试过杀了-9user@node1:/opt/zookeeper-3.4.6$ps-ef|grepzookeeperzookeep+40081801:07?00:00:00/usr/bin/java-cp/etc/zookeeper/conf:/usr/share/java/jl
- 使用multiprocessing实现进程间共享内存
培根芝士
Pythonpython
在Python中,可以使用多种方法来实现几个进程之间的通信。简单消息传递:使用multiprocessing.Queue或multiprocessing.Pipe。共享简单数据:使用multiprocessing.Value或multiprocessing.Array。共享复杂数据:使用multiprocessing.Manager。进程间信号控制:使用multiprocessing.Event。
- ubuntu20.04 zookeeper安装
Yue9v
zookeeperlinux分布式
安装ZooKeeper之前,请确保你已经安装了Java,因为ZooKeeper需要Java运行环境。java安装sudoapt-getupdatesudoapt-get-yinstallopenjdk-11-jdkjava--version设置JAVA_HOME环境变量gedit~/.bashrc添加如下行来设置JAVA_HOME:exportJAVA_HOME=/usr/lib/jvm/java
- GEE下载REMA strip和mosaic数据的python脚本
WiIsonEdwards
pythonwindowslinux
EarthEngineDataCatalog:https://developers.google.com/earth-engine/datasets/catalog搜索REMA:importeeimportgeemapimportosimportwarnings#忽略所有警告warnings.filterwarnings("ignore")#下载REMAStrips数据(2m和8m)defdown
- 一、【脚本命令】build_chain.sh 区块链节点生成(ubuntu18.04/FISCO BCOS)-JAVA
kknacl
FISCOBCOS金联盟区块链区块链javaubuntu
目录环境依赖1、下载【build_chain.sh】2、脚本命令参数3、生成区块链配置文件ip_list:4、调用build_chain.sh脚本构建区块链节点:5、启动节点6、查看节点进程总结:环境依赖名称版本FISCOBCOS2.0openssl>=1.0.2curl未知1、下载【build_chain.sh】执行命令,安装openssl、curl(如果系统上已经安装好了,可以不用安装)apt
- 华为OD机试真题----日志采集(java)
努力努力再努力呐
算法华为od算法数据结构java
华为OD机试真题中的“日志采集”是一个重要的题目,它主要考察的是如何在满足特定条件下,优化日志上报策略以获取最大积分。以下是对该题目的详细解析:一、题目背景日志采集是运维系统的核心组件,日志是按行生成,每行记做一条,由采集系统分批上报。上报策略的设计需要平衡多个因素:上报频率、服务端压力、用户体验以及避免超时失败。二、上报策略根据题目描述,项目组设计了以下上报策略:奖励机制:每成功上报一条日志,奖
- docker 安装elasticsearch kibana,设置密码
biguojun
dockerelasticsearchkibana
安装elasticsearchdockerpulldocker.elastic.co/elasticsearch/elasticsearch:7.17.28dockerrun-d--namedocker-es-e"ES_JAVA_OPTS=-Xms512m-Xmx512m"-e"discovery.type=single-node"-vD:\docker\es\data:/usr/share/el
- 在Ubuntu上安装MEAN Stack的4个步骤
Kaede6
技术文章-Linux服务部署ubuntulinux运维
在Ubuntu上安装MEANStack的4个步骤为:1.安装MEAN;2.安装MongoDB;3.安装NodeJS,Git和NPM;4.安装剩余的依赖项。什么是MEANStack?平均堆栈一直在很大程度上升高为基于稳健的基于JavaScript的开发堆栈。名称的意思是指其组件;MongoDB,ExpressJS,Angularjs和NodeJS。第1步:安装MEAN对于此安装,我们将在本指南中使用
- TypeScript语言的网络编程
俞嫦曦
包罗万象golang开发语言后端
TypeScript语言的网络编程引言随着现代网络应用程序的不断发展,对编程语言的需求也在不断提高。JavaScript作为前端开发的主要语言,凭借其动态特性和广泛的应用,成为了Web开发的中坚力量。而TypeScript作为JavaScript的超集,逐渐在开发社区中获得了越来越多的关注。其静态类型的特性使得开发者在编写大型应用程序时能够更加得心应手。尤其是在网络编程方面,TypeScript展
- 用Python抓取网页标题:使用`requests`库的实用指南
清水白石008
pythonPython题库python开发语言
用Python抓取网页标题:使用requests库的实用指南在数据获取的时代,网页抓取(WebScraping)成为了一项重要的技能。无论是获取新闻标题、产品价格,还是数据分析,网页抓取都能提供丰富的信息。本文将详细介绍如何使用Python的requests库编写一个简单的爬虫,抓取某个网站的标题。我们将通过实例和代码片段,使整个过程清晰易懂,帮助你快速上手网页抓取。一、了解网页抓取网页抓取是指通
- python 使用Nginx和uWSGI来运行Python应用
weixin_33738555
运维python操作系统
参考:http://zmrenwu.com/post/20/uWSGI是一个Web应用服务器,它具有应用服务器,代理,进程管理及应用监控等功能。它支持WSGI协议,同时它也支持自有的uWSGI协议,该协议据说性能非常高,而且内存占用率低,为mod_wsgi的一半左右,我没有实测过。它还支持多应用的管理及应用的性能监控。虽然uWSGI本身就可以直接用来当Web服务器,但一般建议将其作为应用服务器配合
- Uni-app 笔记二 (项目笔记)
天籁晴空
#vue3#TS#小程序--uni-appuni-app笔记
/***@authorwn*@date2023/07/2610:14:15*@description:uniapp笔记*//*1安全区域屏幕去掉状态栏+刘海剩余展示内容的区域--可通过uni.getSystemInfoSync()获取屏幕上边界到安全区顶部的距离。safeAreaInsets={top:59,left:0,right:0,bottom:34}"navigationStyle":"c
- 大疆无人机航点飞行KMZ文件提取航点坐标
程序员南飞
无人机macosjavaspring
一、需要插件jaxenjaxen1.1.4dom4jdom4j1.6.1二、KMZ解压成KMLpackagecom.dji.sample.common.util;importorg.dom4j.Document;importorg.dom4j.io.SAXReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.In
- Java删除特定下标数组元素
程序员南飞
Java数组删除元素字符串遍历
15:16:06publicstaticvoidmain(String[]args){//数组创建以后长度不变,定义新的数组添加长度//删除特定下标数组String[]array1=newString[]{"a","b","b","c","d"};//删除第二个bintkey=2;String[]array2=newString[array1.length-1];for(inti=0;i=key)
- 深度解析ECharts.js:构建现代化数据可视化的利器
斯~内克
WebGLecharts信息可视化前端
引言:数据可视化的新时代挑战在数字化转型浪潮中,数据可视化已成为企业决策和用户体验的关键环节。面对海量数据的呈现需求,传统表格已无法满足用户对直观洞察的渴求。作为百度开源的JavaScript可视化库,ECharts.js凭借其强大的功能和灵活的扩展性,正在成为前端开发者的首选工具。本文将从核心技术解析、实践指南到性能优化,带您全面掌握这个可视化利器。一、ECharts核心技术架构剖析1.1分层渲
- Java基础知识三(运算符)
浪迹天涯的贺
Java基础系列上java开发语言
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档前言更新第三篇文章,这篇文章讲一下Java的运算符相关的知识,对于Java中所有的运算符的种类和内容做一个总结在Java编程中,运算符(Operators)是执行特定操作的符号,它们用于操作变量和数据。本文将详细介绍Java中的运算符种类、用法以及其作用。1.算术运算符(ArithmeticOperators)算术运算符用于执行基本的
- JAVA:网络编程 Socket 的技术指南
拾荒的小海螺
JAVAjava网络开发语言
1、简述JavaNIO(Non-blockingI/O)是一种基于通道(Channel)和缓冲区(Buffer)的I/O模型,支持非阻塞通信和多路复用,适合高并发场景。相比传统的阻塞I/O(BIO),NIO更高效,因为它避免了线程被阻塞,降低了系统资源消耗。代码样例:https://gitee.com/lhdxhl/springboot-example.git核心组件:Channel(通道):数据
- 三分钟让你搞懂云计算中的CDN是什么?
云上的阿七
云计算
随着互联网的快速发展,网站的访问速度和稳定性越来越受到重视。而在众多提升网站性能的技术中,CDN(内容分发网络)无疑是一个非常重要的工具。今天,我们就来聊聊云计算中的CDN是什么,以及它是如何为网站带来显著好处的。CDN是什么?CDN,全称ContentDeliveryNetwork,翻译过来就是“内容分发网络”。它是一种分布式的网络架构,通过将网站的静态资源(如图片、视频、JavaScript文
- laravel框架查询数据集转为数组
小浮夸
框架laravel
$website_data=DB::table('fb_website')->where('website_status',1)->get()->map(function($value){return(array)$value;})->toArray();
- 前端应用更新通知机制全解析:构建智能化版本更新策略
斯~内克
前端前端
引言:数字时代的更新挑战在持续交付的现代软件开发模式下,前端应用平均每周产生2-3次版本迭代。但据Google研究报告显示,38%的用户在遇到功能异常时仍在使用过期版本的应用。如何优雅地实现版本更新通知,已成为提升用户体验的关键技术挑战。本文将深入探讨从基础到进阶的更新通知方案,结合最新Web技术提供完整的解决方案。一、核心检测机制剖析1.1版本标识策略语义化版本控制:采用major.minor.
- 高可用Keepalived在Linux中的应用
「已注销」
linux运维服务器高可用集群keepalivedcentos
目录一、高可用1.高可用介绍(1)普通理解(2)专业理解2.高可用目的3.高可用实现1.介绍2.特点三、Keepalived1.介绍2.Keepalived核心组件(1)VRRPstack(2)NetLink接口(3)IPVSWrapper(4)checkers(5)systemcall(6)SMTP(7)watchDog3.控制组件4.内存管理四、Keepalived核心概念1.虚拟路由器2.m
- pyspark 遇到**Py4JJavaError** Traceback (most recent call last) ~\AppData\
2pi
sparkpython
Py4JJavaErrorTraceback(mostrecentcalllast)~\AppData\Local\Temp/ipykernel_22732/1401292359.pyin---->1feat_df.show(5,vertical=True)D:\Anaconda3\envs\recall-service-cp4\lib\site-packages\pyspark\sql\data
- 吴大仙带你三分钟学会swoole框架
大仙带你飞
phpswoole
前言最近在学习swoole这个东西,就写点心得吧。基于swoole的开源框架很多,优缺点自己百度,凡是有用到websocket和消费队列选择基于swoole的框架是不错的选择。好吧话不多说,吴大仙就介绍一下swoole的一个简单入门吧正文swoole有两个部分。一个是PHP扩展,用C开发的,这是核心。另一个是框架,像yii、TP、Laravel一样,是PHP代码写的。swoole扩展本身提供了we
- 什么是站群服务器?站群服务器应该怎么选?
莱卡云(Lcayun)
服务器github运维linux云计算
站群服务器是专门用于托管和管理多个网站的服务器。通常用于SEO优化、内容分发、广告推广等场景,用户可以通过一个服务器管理多个站点,提升效率并降低成本。选择站群服务器时,需根据业务需求、性能要求、IP资源等因素进行综合考虑。什么是站群服务器?站群服务器是一种支持多个独立网站运行的服务器,通常具备以下特点:多IP支持:每个网站可以分配独立的IP地址,避免IP关联问题。资源隔离:确保每个网站的资源(如C
- MyBatis-Plus整合SpringBoot及使用
kkk1622245
mybatisspringboot后端
MyBatis-Plus是一个为简化开发而生的MyBatis增强工具,在Java开发领域广受欢迎。它继承了MyBatis的所有特性,并且通过引入强大的功能增强,极大减少了开发者的工作量。对于使用SpringBoot开发的项目,整合MyBatis-Plus能够使数据访问层的代码更加简洁,增强开发效率。在本文中,我们将详细探讨如何在SpringBoot项目中整合MyBatis-Plus并简要介绍其使用
- 重发布与路由策略实验
小卓笔记
网络服务器linux
实验拓扑配置接口地址与环回地址R1[r1]interfaceLoopBack0[r1-LoopBack0]ipaddress1.1.1.12[r1]interfaceGigabitEthernet0/0/0[r1-GigabitEthernet0/0/0]ipaddress12.0.0.124[r1]interfaceGigabitEthernet0/0/1[r1-GigabitEthernet0
- 搭建内网DNS服务器
小卓笔记
服务器linux运维
1.1实验目的在内网服务器可以实现使用域名进行上网主机角色系统IPdns-client客户端redhat9.5192.168.33.7dns-server域名解析服务器rocky9.5192.168.33.1001.2环境准备#rocky#安装net-toolsbash-completionvim(rocky未自带这些服务)[root@dns-server~]#dnfinstallnet-tool
- xxl-job 执行器端服务器的简单搭建
一切随缘~~~
xxl-jobxxljob
xxl-job执行器端服务器的简单搭建先讲一下我们平时怎么使用xxl-job的,再引出背后是如何实现的。我觉得对于一款成功的框架来说,好用,是非常重要的一个特性。框架要便于接入,便于使用。对于用户来说,不要有太多的使用成本,最好是能够开箱即用,快速上手的。Java为什么这么流行呢?因为它的生态好。说是生态好,其实就是Spring那一套嘛,后面又有了SpringBoot。你想要使用什么组件,市面上基
- 3.14学习总结
2402_88131930
学习
今天完成了几道关于二叉树的算法题关于二叉树的最小最大深度和数据流中的第k大元素,用到优先队列,学习了有关java的基础知识,学习了双指针法。
- 苏姿丰亮相AMD AI PC创新峰会:AI是50年来最具变革性的技术,AMD赋能下一轮AI创新浪潮
CSDN资讯
人工智能AMD
2025年3月18日,AMD在北京举办“ADVANCINGAI”AMDAIPC创新峰会,展示了其在中国AIPC生态系统中的强劲发展势头,并迎来了性能与智能的新高度。AMD董事会主席及首席执行官LisaSu博士携手AMD高级副总裁、大中华区总裁潘晓明,AMD高级副总裁、计算与图形总经理JackHuynh出席活动。同时,AMD重要合作伙伴包括联想集团执行副总裁兼中国区总裁刘军、华硕电脑全球副总裁石文宏
- 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