- Linux资源监控:Prometheus + Grafana
熙客
Linuxprometheusgrafanalinux服务器运维
目录一、环境准备1、Linux系统2、关闭防火墙二、安装Prometheus1、下载安装包并解压2、配置Prometheus3、配置Systemd服务(实现开机自启)4、验证三、安装Grafana1、下载并安装2、启动Grafana服务3、修改默认端口4、验证四、配置Grafana连接Prometheus1、添加数据源2、导入仪表板模板五、安装NodeExporter(监控服务器资源)六、注意事项
- Linux:GDB
我真不会起名字啊
c++
在软件开发的漫漫长路上,Bug就像隐藏在黑暗中的“小怪兽”,时不时跳出来给开发者们制造麻烦。曾经,欧洲航天局(ESA)首次发射阿丽亚娜5号火箭,这本是太空探索史上的重要时刻,却因一行代码导致灾难性故障,价值近5亿欧元的火箭在发射37秒后爆炸。经过调查,原来是制导系统存在软件缺陷,一段源于阿丽亚娜4号的死代码中,64位浮点变量转换为16位带符号整数时出现整数溢出问题,最终导致火箭自毁。这样的故事告诉
- Python Playwright库全面详解
老胖闲聊
Pythonpython开发语言
Playwright是Microsoft开发的一个现代化的端到端测试和浏览器自动化库,支持Chromium、WebKit和Firefox浏览器。它提供了跨浏览器、跨平台的自动化能力,且具有高性能和可靠性。一、核心特性多浏览器支持:Chromium(Chrome,Edge)WebKit(Safari)Firefox跨平台支持:WindowsmacOSLinux多语言支持:JavaScript/Typ
- ARM linux开机自启动Qt程序
坚持就有希望
linux
1.将编译好的Qt应用程序window放到/opt/路径下2.在/etc/init.d/rcS文件末尾加入/opt/window-qws&
- Linux操作系统配置本地yum源和定时任务
后青春期的诗go
服务器操作系统实战资料linux运维服务器
操作系统环境:CentOS7.2本地yum源配置1.挂载镜像mount/dev/cdrom/mnt/cdrom2.备份原yum配置mv/etc/yum.repos.d/etc/yum.repos.d.bak3.创建本地yum源配置文件mkdir/etc/yum.repos.dvi/etc/yum.repos.d/CentOS-local.repo添加内容:#本源的名字(不能和其他重复)[base-
- milvus单节点安装教程
AlphaFree_
milvus
安装步骤两步,下载.sh文件,启动。文件下载不下来,可直接用附件的sh文件wgethttps://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.shbashstandalone_embed.shstart官网链接RunMilvusinDocker(Linux)|MilvusDocumentati
- 【Linux】Linux系统增加交换空间swap步骤
你住过的屋檐
Linux技术专栏linux运维服务器
前言 在Linux系统中,交换空间(SwapSpace)是一种虚拟内存机制,用于扩展系统的物理内存(RAM)。当物理内存不足时,操作系统会将部分不常用的内存数据移动到磁盘上的交换空间,从而释放物理内存供其他进程使用。一、检查交换空间情况键入以下指令swapon--show或者free-h如下Swap显示我的服务器没有可用的交换空间:二、创建交换文件 选择一个目录来创建交换文件,通常选择/swa
- 【RabbitMQ】Linux安装RabbitMQ详细步骤
杰肥啊
RabbitMQrabbitMqlinux系统centos消息队列rpm
RabbitMQ安装本次演示的安装步骤是RabbitMQ在Linux上的安装第一步:根据自己的linux版本下载对应的rpm包erlang-18.2-1.el7.centos.x86_64.rpm网址:http://www.rabbitmq.com/releases/erlang首先先安装erlang的包,因为我的版本是centos6.8.x86_64,所以下载的是这个erlang包。rabbit
- 怎么样查看Linux的GPIO子系统中已经被占用的GPIO口的状态?
昊虹AI笔记
嵌入式_LinuxGPIO子系统
可以用下面的命令查看Linux的GPIO子系统中已经被占用的GPIO口的状态:cat/sys/kernel/debug/gpio关于上面截图中GPIO的编号意义,请参考我的另一篇博文https://blog.csdn.net/wenhao_ir/article/details/145444452【搜索“gpiochip0对应于IMX6ULL的GPIO1”】
- Linux的内核配置界面的使用示例累积
昊虹AI笔记
嵌入式_LinuxKernel
第1个https://blog.csdn.net/wenhao_ir/article/details/145822475【搜索“触摸屏驱动移植适配”、“配置内核,使蓝牙驱动变成ko模块”、“某些项配置为M状态”】第2个https://blog.csdn.net/wenhao_ir/article/details/146455604【搜索“配置并编译内核模块”】
- Linux的I2C总线的原理和结构详解
昊虹AI笔记
嵌入式_LinuxLinux系统linux
Linux的I2C总线的原理和结构讲解我前面基本已经吃透了Platform总线,关于Platform总线的原理和结构,详情见下面三篇博文:https://blog.csdn.net/wenhao_ir/article/details/145023181https://blog.csdn.net/wenhao_ir/article/details/145018442https://blog.csdn
- 什么是防火墙链
七贤岭双花红棍
c++
什么是防火墙链(FirewallChains)?防火墙链(FirewallChains)是防火墙规则的组织方式,通常用于Linux的iptables/nftables或云安全组(SecurityGroups)等场景。它允许管理员将多个规则按顺序组合成逻辑链,以实现更精细的网络流量控制。防火墙链的核心概念防火墙链的核心思想是“分类处理流量”,即:不同的链(Chains)负责不同的流量阶段(如输入、转
- elasticsearch-8.7.1 部署手册
蓝萄
elasticsearch
1.创建用户useraddessu-es2.下载最新的包https://www.elastic.co/cn/downloads/elasticsearch3.解压tar-zxvfelasticsearch-8.7.1-linux-x86_64.tar.gzmvelasticsearch-8.7.1elasticsearch4.生成证书./bin/elasticsearch-certutilcaTh
- Python更改为国内源
ZHOUZAIHUI
Python
常见的国内源:清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/豆瓣:http://pypi.douban.com/simple/在Linux系统中,修改~/.pip/pip.conf文件
- Linux常用压缩命令
划过手的泪滴t
云计算运维Linuxlinux服务器运维
常用压缩命令tar命令tar命令用来打包一个目录,它支持三种格式:“.tar”、“.bz2"和”.gz"1.1、压缩tar-cvf[文件名].tar[文件目录]//打包成.tar文件tar-jcvf[文件名].tar.bz2[文件目录]//打包成.bz2文件tar-zcvf[文件名].tar.gz[文件目录]//打包成.gz文件1.2、解压缩tar-xvf[文件名].tar//解压到当前文件tar
- Linux压缩指令
在地球表面艰难爬行
linux服务器
Linux系统提供了多种压缩指令,用于将文件和目录打包成压缩文件,以节省存储空间和方便传输。以下是一些常用的Linux压缩指令及其详细介绍:1.gzipgzip是最常用的压缩工具之一,它通常用于压缩单个文件。压缩后的文件名会以.gz结尾。基本用法:gzipfilename这将压缩filename并生成filename.gz,原文件被删除。解压缩:gunzipfilename.gz这将解压缩file
- linux里安装pip和conda
Monee..
做项目全流程的完整踩坑史linuxpipconda
安装pip1.更新包管理器:打开终端并输入以下命令来更新包管理器:sudoaptupdate2.安装pip:对于Python3,使用以下命令安装pip:sudoaptinstallpython3-pip安装完成后,你可以通过以下命令验证安装:pip3--version安装CondaConda通常通过Anaconda或Miniconda来安装。Miniconda是一个较小的安装包,适合只需要Cond
- VS Code中如何扩大控制台输出行?
MingDong523
vscode
在VSCode中扩大控制台(终端或输出面板)的显示区域,可以通过以下几种方式实现:手动调整控制台高度(最直接)操作步骤:将鼠标移动到控制台(终端或输出面板)与代码编辑器的分界线上。当光标变成↕上下箭头时,按住左键向上拖动即可扩大控制台区域。向下拖动则缩小控制台区域。VSCode控制台拖拽示意图快捷键快速切换(推荐)展开/隐藏控制台:Windows/Linux:Ctrl+``(反引号键)macOS:
- Linux高性能服务器编程学习记录——八、高性能服务器程序框架
qq_20363225
c/c++TCP-IPlinux服务器linux网络
1、服务器模型目前主要是C/S(client/server)模型和P2P(peer2peer)模型,不多说。2、服务器编程框架服务器的基本框架如下图:I/O处理单元一般作为接入服务器,负责处理与客户端的连接,读写网络数据,实现负载均衡逻辑单元,顾名思义,就是处理业务的模块网络存储单元一般指数据库请求队列是各模块之间的通信方式,如果是服务器机群的话,一般是TCP永久连接3、I/O模型辛辛苦苦工作了一
- arm linux 识别新硬盘_ARM首款64位CortexR82实时处理器
weixin_39832965
armlinux识别新硬盘
Arm以其在移动设备中的Cortex系列处理器而闻名,然而主流Cortex-A系列CPU并不是该公司唯一提供的CPU,Arm还提供了用于高性能实时应用的Cortex-R系列"实时"处理器。上一次我们谈到Cortex-R产品是在2016年发布的R8。当时,该公司提出R8将广泛用于调制解调器子系统内部的5G连接解决方案。R系列的另一大市场是存储解决方案,Cortex-R处理器作为主要的处理元件被用于H
- 在kali Linux虚拟机上,运行“binwalk -e 文件名”命令会报错
粤安有我_小曾
linux
文章目录报错解决方法报错ExtractorException:Binwalkextractionusesmanythirdpartyutilities,whichmaynotbesecure.Ifyouwishtohaveextractionutilitiesexecutedasthecurrentuser,use‘–run-as=root’(binwalkitselfmustberunasroo
- GitHub绑定本地计算机以及仓库创建跟推送指南
晚枫~
github
GitHub绑定到本地计算机要在本地计算机上连接到你的GitHub账户,可以通过以下步骤实现:1.检查和安装Git确保你的计算机上已经安装了Git。如果还没有安装,可以从Git官网下载并安装。2.配置Git打开终端(macOS或Linux)或GitBash(Windows),然后设置你的用户信息:gitconfig--globaluser.name"YourName"gitconfig--glob
- 深度解码Linux-0.11内核:完整注释与实践指南
国营窝窝乡蛮大人
本文还有配套的精品资源,点击获取简介:《Linux-0.11内核完全注释》是一本由赵炯老师编写的深入剖析Linux内核的指南书。基于Linux早期版本0.11,本书详细注释了核心代码,帮助读者深入理解Linux内核的工作原理和操作系统设计。书中包含内核结构、进程管理、内存管理、文件系统、设备驱动、中断处理、系统调用、编译调试和源码分析等关键知识点,特别适用于操作系统学习者和软件开发者。1.Linu
- 精通linux内核 姜亚华,精通Linux内核:智能设备开发核心技术
抹韵
精通linux内核姜亚华
《精通Linux内核:智能设备开发核心技术》共五篇,以从易到难的顺序详细剖析了Linux内核开发的核心技术。“知识储备篇”介绍了Linux的数据结构、中断处理、内核同步和时间计算等内容,这些是理解后续章节的前提。之后通过“内存管理篇”“文件系统篇”“进程管理篇”详细介绍了Linux的三大核心模块。最后的“升华篇”则融合了前面诸多模块展示了Linux内核开发在操作系统、智能设备、驱动、通信、芯片以及
- Linux发行版深度解析:从入门到精通的完全指南
寒水馨
Linux问题解决方案linux运维服务器
Linux发行版深度解析:从入门到精通的完全指南文章目录Linux发行版深度解析:从入门到精通的完全指南引言:为什么了解Linux发行版如此重要?1.Linux发行版概述1.1什么是Linux发行版?1.2Linux发行版的历史演变1.3Linux发行版的分类2.主流Linux发行版深度解析2.1Ubuntu:用户友好的Linux先锋2.1.1Ubuntu的特点2.1.2Ubuntu的版本2.1.
- 【C语言指南】循环嵌套的实现基础
倔强的小石头_
C语言c语言java前端
目录引言C语言循环嵌套基础循环嵌套的实现案例引言在编程的广袤宇宙中,C语言无疑占据着举足轻重的地位。它诞生于20世纪70年代,历经岁月的洗礼,至今依然是众多程序员的首选语言之一。C语言以其高效、灵活、可移植性强等特点,广泛应用于操作系统开发、嵌入式系统、游戏开发等众多领域。许多著名的操作系统,如Unix、Linux,其内核部分大量使用C语言编写,这充分彰显了C语言在底层系统编程中的强大优势。在C语
- Linux Shell脚本自动化编程实战【1.3 bash中调用python expect】
wallacegen
bashlinux自动化
在bash中调用python#!/usr/bin/bashping-c1114.114.114.114>/dev/null&&echo"success"/usr/bin/python<<-EOFprint("helloworld")EOFecho"hellobash"1.将python代码交给python解释器来执行2.EOF只是一个标记,换成<
- Linux Shell脚本自动化编程实战【1.4 shell特性 Login Nologin】
wallacegen
linux自动化运维
loginshellsu-alice/etc/profile/etc/bashrc~/.bash_profile~/.bashrcnologinshellsualice/etc/bashrc~/.bashrcshell是用户执行的第一个程序1.!!#再次执行上一条命令2.!$代表了上一条命令的最后一个参数3.!2044#2044是执行history的第n条命令4.alias查看当前shell的别名
- DPDK概述
尘世中迷途小码农
DPDK网络
DPDK是什么DPDK(DataPlaneDevelopmentKit),是一种用户空间数据平面开发工具包,它的主要目标是为开发人员提供一个创建高性能数据平面应用程序的平台。DPDK开发者能够用C语言、汇编与新型Intel架构的linux内核进行交互,使得数据平面应用程序在高度优化的环境中运行。背景随着芯片技术与高速网络接口技术的一日千里式发展,报文吞吐需要处理10Gbps端口处理能力,世面上大量
- 编译qt指定glibc_编译QT4.5
weixin_39664962
编译qt指定glibc
[linux嵌入式方向]交叉编译qt-embedded-linux-opensource-src-4.5.1源码farsight2009发表于2009-7-1314:38:00作者:孙晓明,华清远见嵌入式学院讲师。首先要有配置好的环境,本文使用的编译环境如下:主机系统:Ubuntu8.10主机编译器:gcc版本4.3.2交叉编译器:arm-softfloat-linux-gnu-gcc软件资源:q
- 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