- 彻底搞懂Cache-Control
qu木木
网络http缓存
文章目录一、是什么?二、核心作用三、指令详解(常用)四、常见场景配置示例五、重要注意事项一、是什么?Cache-Control是HTTP头部中最关键、最灵活的控制缓存的字段,用于定义在客户端(浏览器)和代理服务器(如CDN)上的缓存策略。它取代了HTTP/1.0时代较为简单的Expires和Pragma头部,提供了更精细的控制。二、核心作用是否缓存:明确支出响应是否可以缓存,以及可以被谁缓存(浏览
- ubuntu qt环境下出现No suitable kits found解决方案
1.清理QtCreator缓存QtCreator会缓存项目配置、索引等数据,可能导致某些异常。清理方法:(1)删除QtCreator配置目录bashrm-rf~/.config/QtProject/(Ubuntu/Linux)或Windows:cmdrmdir/s/q"%APPDATA%\QtProject"(2)清除QtCreator的编译缓存bashrm-rf~/.cache/QtProjec
- Ubuntu安装LAMP
L_h1
测试ubuntulinux
在安装vim时遇到了一个问题:E:无法获得锁/var/lib/dpkg/lock-frontend-open(11:资源暂时不可用)E:无法获取dpkg前端锁(/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?解决办法:强制解锁sudorm/var/lib/dpkg/lock-frontendsudorm/var/cache/apt/archives/locksud
- 常见的未授权访问如:Redis,MongoDb,Memcached,Jenkins,Jupyter NoteBook,Elasticsearch,Kibana等二十四个靶场复现
终焉暴龙王
安全网络web安全
前言这这篇文章中我会记录24种常见的未授权访问漏洞的靶场复现,如果有错误,欢迎大家指正。在本文中,漏洞复现的靶场完全是靠自己搭建的vulhub-master以及一系列的靶场以及fofa搜索,如果之前没有用过vulhub-master靶场,请先搭建好vulhub-master靶场并且安装docker和docker-compose。另外,其中一些涉及到敏感信息的漏洞复现我就不截图了,大家切记要树立好法
- RocketMQ常见问题梳理
kk在加油
rocketmq
MQ常见问题深度剖析:消息不丢失、顺序性、幂等性与积压处理本文基于RocketMQ核心原理,结合Kafka/RabbitMQ对比,深入分析MQ四大核心问题解决方案一、消息不丢失保障机制消息丢失风险点跨网络传输:生产者→Broker、Broker→消费者、主从同步Broker缓存机制:PageCache异步刷盘导致数据未持久化极端故障:整个MQ集群宕机生产者保证方案1.发送确认机制//RocketM
- 【leetcode】146.LRU 缓存机制 (Java)
待别三日
Leetcodeleetcode
题目描述运用你所掌握的数据结构,设计和实现一个LRU(最近最少使用)缓存机制。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否则返回-1。voidput(intkey,intvalue)如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键
- LeetCode 146 LRU缓存机制 题解
NJU_lemon
JavaLeetCode刷题记录缓存leetcodejava
LeetCode146LRU缓存机制题解运用你所掌握的数据结构,设计和实现一个LRU(最近最少使用)缓存机制。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否则返回-1。voidput(intkey,intvalue)如果关键字已经存在,则变更其数据值;如
- 【ET8框架入门】4.ECS设计范式解析
Jack Yan
ET框架unity游戏引擎游戏程序
设计范式的演变标准ECS的缺陷1.组件过于扁平化,生命周期不好管理。比如一个人的身体、手臂、手指、指甲的关系。直观思维的这应该是一个层级结构,上一级没了,下一级自动没了。如果扁平化。生命周期管理很麻烦。2.数据和逻辑分离也就代表着数据彼此之前已经无法隐藏,也就是没有了Private的概念,只剩Protect和Public了。3.高Cache命中带来的性能优势无法抵消它对业务开发中造成的麻烦,组件粒
- 机器学习资源
SimpleUmbrella
以下是根据不同语言类型和应用领域收集的各类工具库,持续更新中。C通用机器学习Recommender-一个产品推荐的C语言库,利用了协同过滤.计算机视觉CCV-C-based/Cached/CoreComputerVisionLibrary,是一个现代化的计算机视觉库。VLFeat-VLFeat是开源的computervisionalgorithms库,有Matlabtoolbox。C++计算机视觉
- httpd安装、虚拟主机配置以及相关访问控制
佐岸的咖啡
(一)、Centos7系统下实现httpd-2.2的安装,并分别实现prefork、worker、event等几种工作方式.尝试直接yum安装httpd程序[root@CentOS7~]#yuminstallhttpd-2.2Loadedplugins:fastestmirror,langpacksLoadingmirrorspeedsfromcachedhostfile*base:mirrors
- Apache Ignite扫描查询
lang20150928
其他apacheIgnite扫描查询
这段内容讲的是ApacheIgnite中的ScanQuery(扫描查询)的使用方式,以下是对内容的详细中文解释:一、ScanQuery概述IgniteCache提供了多种查询方法,其中ScanQuery是一种简单的分布式查询方式,可以用来遍历缓存中的所有条目(key-value)。如果不加过滤条件,它会返回整个缓存的数据。二、Query和QueryCursorQuery:代表一个分页查询任务,可以
- 携程机票token1001 分析
wx a15018601872
pythonjavanodetoken携程tokentoken1001携程机票
声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!部分Python代码headers={'accept':'application/json','accept-language':'zh-CN,zh;q=0.9','cache-control':'no-cache','rms-to
- flutter 进阶 GetX系列教程---Cli使用以及常用命令
Warning:Pubinstallsexecutablesinto$HOME/Flutter_Mac/flutter/.pub-cache/bin,whichisnotonyourpath.Youcanfixthatbyaddingthistoyourshell’sconfigfile(.bashrc,.bash_profile,etc.):exportPATH=“PATH":"PATH":"P
- Oracle 块大小(默认8KB)
johnson58
ORACLE技术
参数db_block_size;这个参数只能设置成底层操作系统物理块大小的整数倍,最好是2的n次方倍。如WINDOWS下4KB,8KB,16KB且该参数需要在建库的时候指定,一旦指定不能更改。虽然在ORACLE9I以上可以指定表空间的数据库大小,允许同时使用包括非默认大小在内的数据库块大小。不过需要设置指定大小数据块的buffer_cache.小的块:小的块降低块竞争,因为每个块中的行较少.小的块
- Linux系统之lvcreate 命令详解
门前灯
运维linux运维服务器lvcreate
lvcreate命令详解一、命令概述lvcreate是LVM(逻辑卷管理)工具集中用于创建逻辑卷(LV)的核心命令,支持创建多种类型的逻辑卷,包括线性卷、条带化卷、镜像卷、RAID卷、快照卷、瘦池(thinpool)及缓存池(cachepool)等。其核心功能是从卷组(VG)中分配物理扩展(PE),为新逻辑卷分配空间,并根据指定类型配置存储策略(如条带化提升性能、RAID提供冗余),适用于灵活管理
- 【VScode】Ubuntu下更改vscode字体
yuxuan22222
vscodeubuntuide
vscode字体Ubuntu设置系统字体以及设置Vscode字体下载ttf格式的字体https://dtinth.github.io/comic-mono-font/创建字体,并且更新mkdir-p~/.local/share/fontssudocpyour_path_to_comic/ComicMono.ttf~/.local/share/fonts/fc-cache-fvVscode中:添加字
- npm i 时,报错4048
香喷喷啦啦啦66
查找结果是,是缓存问题,把缓存清掉即可。找到了两种清除的指令:指令1:npmcacheclean--force指令2:npmcacheverify
- 阿里云宝塔Linux面板相关操作记录
宇宙浪子
linux阿里云服务器
1、清空nginx缓存使用Nginx时,静态图片文件会出现缓存,所以需要清空缓存,方法如下:sudorm-rf/www/server/nginx/proxy_cache_dir/*2、Windows启动springbootjar脚本@echooffsetlocalenabledelayedexpansion::配置项目名setprojectName=test-1.0.0.jar::设置代码页为UT
- 《整合Spring Cache:本地缓存、Redis与Caffeine对比实践》
整合SpringCache:本地缓存、Redis与Caffeine对比实践前言在高并发、高性能的系统设计中,缓存始终扮演着不可替代的角色。SpringCache作为Spring框架原生提供的缓存抽象层,极大简化了缓存接入的复杂度。然而,如何选择合适的缓存组件?如何支持多级缓存?如何处理缓存一致性和失效问题?这些才是“实战”真正的挑战。文章目录整合SpringCache:本地缓存、Redis与Caf
- Django 数据库迁移:makemigrations 和 migrate 命令详解及常见问题解决
码农研究僧
Python数据库djangoBug迁移
目录1.问题所示2.pythonmanage.pymakemigrations3.pythonmanage.pymigrate4.拓展1.问题所示最初始的状态是遇到这个问题由于刚开始跑pythonweb项目,开源项目附带的Readme,个别命令不太懂,对此详细研究其基本知识最终的解决方案如下:清理迁移文件:删除迁移目录中的.pyc文件和pycache目录,然后重新运行makemigrations检
- 【详解】高并发GuavaCache
目录高并发GuavaCache1.GuavaCache简介2.主要特性2.1线程安全2.2自动加载2.3过期策略2.4内存回收3.使用示例3.1基本使用3.2异常处理3.3手动加载和删除4.性能优化4.1并发级别4.2软引用与弱引用场景描述依赖引入示例代码代码解释总结1.基本概念2.创建GuavaCache3.使用LoadingCache4.高级特性5.注意事项高并发GuavaCache在现代互联
- 高并发场景下的缓存问题与一致性解决方案(技术方案总结)
遥不可及~~斌
缓存
高并发场景下的缓存问题与一致性解决方案(技术方案总结)1.引言在高并发系统中,缓存是提升性能的关键组件,但不当的缓存使用可能导致缓存穿透、雪崩、击穿等问题,同时缓存与数据库的数据一致性也是常见挑战。本文将总结高并发环境下的缓存问题及解决方案,并提供技术选型建议。2.高并发缓存问题及解决方案2.1缓存穿透(CachePenetration)问题:大量请求查询不存在的数据,绕过缓存直接访问数据库,导致
- Hugging Face 模型的缓存和直接下载有什么区别?
SugarPPig
人工智能缓存人工智能
HuggingFace模型的缓存和直接下载(下载到本地文件夹)是两种不同的模型管理方式,它们在使用场景、存储结构和效率上各有优劣。以下是它们之间的主要区别:HuggingFace缓存(Cache)当您通过transformers库中的from_pretrained()方法或huggingface-clidownload命令(不带--local-dir参数)下载模型时,文件会被存储在一个全局的、按版
- 力扣146题:LRU缓存
瀛台夜雪
力扣刷题leetcode缓存数据结构
力扣146题:LRU缓存题目描述请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否则返回-1。voidput(intkey,intvalue)如果关键字key已经存在,则变更其数据值value;
- pip关于缓存的用法
lagrahhn
pip缓存
pipcacheinfo查看pip缓存的大小,运行示例Packageindexpagecachelocation(pipv23.3+):c:\users\xxx\appdata\local\pip\cache\http-v2Packageindexpagecachelocation(olderpips):c:\users\xxx\appdata\local\pip\cache\httpPackag
- 2024.12软考-高级系统架构师-真题回忆
vidi19
系统架构
论文1.多源异构数据集成2.SOA3.软件维护4.分布式案例案例一质量属性关于人工智能系统的需求分析,给出十几个需求。【问答题】(1)从质量属性的角度分析属于功能性,稳定性,安全性等。(2)对于pingecho和心态模式,从节约资源的角度分析心跳模式的优点。案例二数据库cache-aside【问答题】(1)填空流程图说明缓存读写的过程。(2)填空流程图说明写缓存的过程(3)回答问题,线程1负责写数
- Nginx + ModSecurity + OWASP CRS + Lua + GEOIP2 构建传统WAF
Nginx+ModSecurity+OWASPCRS+Lua+GEOIP2构建传统WAF一、环境介绍二、编译工具安装三、编译安装ModSecurityv3四、ModSecurity-Nginx连接器下载五、编译安装LuaJIT六、ngx_devel_kit下载七、lua-nginx-module下载八、编译安装lua-resty-core九、编译安装lua-resty-lrucache十、OWAS
- 线程池
陈沐恩_
线程池时间2018年6月13日23:03:06;复习了一下基础的JAVA线程池知识SingleThreadExecutor:只有一个线程的线程池,因此所有提交的任务是顺序执行。Executors.newSingleThreadExecutoCachedThreadPool:线程池里有很多线程需要同时执行,老的可用线程将被新的任务触发重新执行,如果超过60S没有执行,那么将被终止并将从池中删除。Ex
- 【ASP.NET Core】内存缓存(MemoryCache)原理、应用及常见问题解析
ArabySide
#ASP.NETCoreasp.net缓存后端asp.netcorec#
系列文章目录链接:【ASP.NETCore】REST与RESTful详解,从理论到实现链接:【ASP.NETCore】深入理解Controller的工作机制文章目录系列文章目录前言一、ASP.NETCore中的内存缓存——MemoryCache1.1内存缓存的结构1.2MemoryCache的注册1.3MemoryCache的配置项1.3.1缓存时间的过期策略1.3.2缓存的优先级1.4Memor
- 【ASP.NET Core】ASP.NET Core中Redis分布式缓存的应用
ArabySide
#.NETCoreRedis缓存redis分布式缓存asp.netasp.netcore
系列文章目录链接:【ASP.NETCore】REST与RESTful详解,从理论到实现链接:【ASP.NETCore】深入理解Controller的工作机制链接:【ASP.NETCore】内存缓存(MemoryCache)原理、应用及常见问题解析文章目录系列文章目录前言一、Redis1.1Redis简介1.2常用数据结构1.3Redis的持久化1.3.1RDB1.3.2AOF1.4常用应用场景1.
- 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