- vercel.json中redirects与rewrites的区别
rock——you
jsonvercel
在Vercel中,redirects和rewrites都是用于处理URL请求的功能,它们提供了对请求的不同操作方式。虽然它们的工作原理相似,但它们有不同的行为和用途。下面是它们的区别:1.Redirects功能:redirects用于将用户的请求从一个URL重定向到另一个URL。这意味着浏览器会收到一个HTTP响应(通常是3xx状态码),并且会告诉浏览器去访问新的URL地址。行为:当一个请求被重定
- 数据仓库、数据湖和数据湖仓
阿湯哥
数据仓库spark大数据
数据仓库、数据湖和数据湖仓是三种常见的数据存储和管理技术,各自有不同的特点和适用场景。以下是它们的详细比较:1.数据仓库(DataWarehouse)定义:用于存储结构化数据,经过清洗、转换和建模,支持复杂的查询和分析。特点:结构化数据:主要处理关系型数据。预定义模式:数据在加载前需要定义模式(Schema-on-Write)。高性能查询:优化用于复杂查询和报表生成。数据治理:提供强大的数据治理和
- Java CopyOnWriteArrayList 源码分析及使用案例
铁甲小宝摸鱼
Java面试八股文javawindows开发语言
CopyOnWriteArrayList是Java中一种线程安全的List实现,它通过在每次修改时复制底层数组来实现线程安全。本文将详细分析CopyOnWriteArrayList的源码,并结合具体使用案例来展示其使用场景和优缺点。一、CopyOnWriteArrayList简介CopyOnWriteArrayList是java.util.concurrent包中的一个类,适用于读多写少的场景。它
- Android 13 通过修改 AOSP 禁用扬声器
Shigq-droid
Android系统定制开发Aospandroidaosp
需要深入修改音频系统的路由策略和硬件抽象层。以下是具体实现方案:核心实现路径修改音频路由策略(AudioPolicyManager)控制音频硬件输出(AudioHAL)强制静音系统音量(AudioService)方案一:禁用扬声器路由策略修改文件:frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp代码修改
- java使用递归获取geojson(json)数据
迷茫的小猿
javajavajson
需要导入的包:org.json-chargebee-1.0.jarpackageparse;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.Arra
- 在AMLOGIC android14 平台上使用adb
Keep Coding...
adblinux运维
1.修改bootloader编译:添加--fastboot-writecdbootloader/uboot-repo./mks7d_bm201--vab--avb2--fastboot-write#./mks7_bh201--avb2--vab--fastboot-writeecho"compiledbootloadersuccess!!!"cpbuild/u-boot.bin.signed../
- 强化学习在连续动作空间的应用:DDPG与TD3
AI天才研究院
计算AI大模型应用入门实战与进阶大数据人工智能语言模型AILLMJavaPython架构设计AgentRPA计算AI大模型应用
1.背景介绍1.1强化学习简介强化学习(ReinforcementLearning,简称RL)是一种机器学习方法,它通过让智能体(Agent)在环境(Environment)中与环境进行交互,学习如何根据观察到的状态(State)选择动作(Action),以最大化某种长期累积奖励(Reward)的方法。强化学习的核心问题是学习一个策略(Policy),即在给定状态下选择动作的映射关系。1.2连续动
- 蓝桥杯篇---串行EEPROM AT24C02
Ronin-Lotus
蓝桥杯篇嵌入式硬件篇蓝桥杯职场和发展c嵌入式硬件AT24C02
文章目录前言1.写字节时序(ByteWrite)特点时序步骤1.起始条件(StartCondition)2.发送设备地址(DeviceAddress)3.发送内存地址(WordAddress)4.发送数据(Data)5.停止条件(StopCondition)时序图代码示例2.写页面时序(PageWrite)特点时序步骤1.起始条件(StartCondition)2.发送设备地址(DeviceAdd
- python小白的word转excel
W~J~L
pythonpython
大概流程为:一、首先导入docx库以及xlwt库二、需要用到的文档的名称三、设置一个函数来写入excel,转为可识别通用的“utf8”,然后创建一个表格来将文档里的内容写入到表里去四、利用for循坏来设置表里多少个为一行五、在最后设置表的保存路径以及提示是否创建成功importdocximportxlwtdocFile="青年大学习.docx"defwrite_excel(path):doc=do
- 【云原生进阶之数据库技术】第四章-GaussDB-关键技术-2.4.1-GaussDB存储引擎层关键技术方案
江中散人
云原生进阶-数据库专栏云原生进阶-PaaS专栏后台开发专栏数据库云原生gaussdbdatabase存储引擎
1存储引擎概览早期计算机程序通过文件系统管理数据,到了20世纪60年代这种方式就开始不能满足数据管理要求了,用户逐渐对数据并发写入的完整性、高效的检索提出更高的要求。由于机械磁盘的随机读写性能问题,从20世纪80年代开始,大多数数据库一直围绕着减少随机读写磁盘进行设计。主要思路是把对数据页面的随机写盘转化为对WAL(WriteAheadLog,预写式日志)的顺序写盘,WAL持久化完成,事务就算提交
- Mybatis Plus 真正批量插入
癸酉金鸡
mybatis
一、MybatisPlus默认批量插入saveBatch方法在IService中,是使用同一个sqlSession,这相比遍历集合循环insert来说有一定的性能提升,但是这并不是sql层面真正的批量插入。二、jdbc添加rewriteBatchedStatements=true无法改变本质三、真正批量插入继承DefaultSqlInjector自定义sql注入器publicclassMySqlI
- 5、pod 详解 (kubernetes)
Sundayday47
k8skubernetes容器云原生harbor
pod详解(kubernetes)Pod的基础概念pause容器Pod的分类与创建自主式Pod控制器管理的Pod静态PodPod容器的分类基础容器(infrastructurecontainer)初始化容器(initcontainers)应用容器(Maincontainer)镜像拉取策略(imagePullPolicy)k8s部署harbor创建私有项目部署harbor仓库harbor登录凭据资源
- 【DeepSeek】一文详解GRPO算法——为什么能减少大模型训练资源?
FF-Studio
DeepSeekR1算法
GRPO,一种新的强化学习方法,是DeepSeekR1使用到的训练方法。今天的这篇博客文章,笔者会从零开始,层层递进地为各位介绍一种在强化学习中极具实用价值的技术——GRPO(GroupRelativePolicyOptimization)。如果你是第一次听说这个概念,也不必慌张,笔者会带领你从最基础的强化学习背景知识讲起,一步步剖析其来龙去脉,然后再结合实例讲解GRPO在实际应用中的思路和操作示
- 探索远程睡眠控制新境界:Sleep-On-LAN
史姿若Muriel
探索远程睡眠控制新境界:Sleep-On-LANsleep-on-lanMulti-platformprocessallowingtosleeponLANalinuxorwindowscomputer,throughwake-on-lan(reversed)magicpacketsorthroughHTTPRESTrequests.项目地址:https://gitcode.com/gh_mirro
- Leetcode 1035. Uncrossed Lines
小白菜又菜
Leetcode解题报告动态规划(DP)leetcode算法
ProblemYouaregiventwointegerarraysnums1andnums2.Wewritetheintegersofnums1andnums2(intheordertheyaregiven)ontwoseparatehorizontallines.Wemaydrawconnectinglines:astraightlineconnectingtwonumbersnums1[i]
- <Attention Is All You Need>:全网首次提出Transformer模型论文中英文对照学习
kingking44
transformer学习人工智能
论文摘要英文Thedominantsequencetransductionmodelsarebasedoncomplexrecurrentorconvolutionalneuralnetworksthatincludeanencoderandadecoder.Thebestperformingmodelsalsoconnecttheencoderanddecoderthroughanattenti
- Linux c语言中的IO -- 文件IO
ぃ未来可期
CLinuxlinuxc语言
文章目录1.文件IO2.文件描述符什么是文件描述符?文件描述符何时产生?3.文件IO常用函数open()close()对比fopen()与open()打开文件权限read()write()memset/bzero设置一片内存区域的值lseek()stat()获取文件信息opendir()/readdir()/closedir()对目录操作1.文件IO文件IO不涉及缓冲区,每执行一次,都会调用Lin
- linux--关于Linux的文件IO、虚拟地址空间概念、文件描述符
Bruce Jue
linuxlinux服务器
标准C库IO函数C库的IO函数时跨平台的,它是先通过例如fopen、fread这样的函数去调用对应系统内核例如windows、linux的write或者是read函数进而实现跨平台读写文件。那么一般都是要获取一个FILE*fp的内存地址,这个实际上是一个结构体,包含三个部分。在Linux中,IO是针对内存来说的。在FILE*fp来说,文件描述符其实是由linux内核给出的。C库IO的优点:存储效率
- 【一文读懂】浏览器跨域访问问题及其解决方案
Bl_a_ck
通讯协议网络协议信息与通信前端网络安全httptcp/ip
简介浏览器的跨域访问问题(Cross-OriginResourceSharing,CORS)是指在一个网页中,来自不同协议、域名或端口的请求会被浏览器视为跨域请求。浏览器的同源策略(Same-OriginPolicy)出于安全性考虑,默认会阻止网页向不同源的资源发送请求。同源策略(Same-OriginPolicy)同源策略是指:如果两个URL的协议、域名和端口完全相同,它们就被认为是“同源”。浏
- .NET-随机数Random(.NET 8)
code-Study
C#.NETc#.net开发语言
一、线程安全的RandomRandomrandom=Random.Shared;二、从数组中随机获取几个值int[]ints=newint[]{1,2,3,4,5};Randomrandom=Random.Shared;varresults=random.GetItems(ints,2);foreach(variteminresults){Console.WriteLine(item);}三、乱序
- FFMpeg源码分析-io_open_default()
坚持不懈z
ffmpeg
主要函数调用关系如下图所示/**s:传进去的AVFormatContext结构体pb:函数调用成功之后创建的AVIOContext结构体。url:输入输出协议的地址(文件也是一种“广义”的协议,对于文件来说就是文件的路径)。flags:打开地址的方式。可以选择只读,只写,或者读写。取值如下。AVIO_FLAG_READ:只读。AVIO_FLAG_WRITE:只写。AVIO_FLAG_READ_WR
- AMBA-CHI协议详解(十一)
数字硬鉴
AMBA-CHI协议AMBA协议CHI协议总线设计ARM架构CPU设计
AMBA-CHI协议详解(一)-IntroductionAMBA-CHI协议详解(二)-Channelfields/ReadtransactionsAMBA-CHI协议详解(三)-WritetransactionsAMBA-CHI协议详解(四)-OthertransactionsAMBA-CHI协议详解(五)-TransactionidentifierfieldsAMBA-CHI协议详解(六)-T
- AMBA-CHI协议详解(八)
数字硬鉴
AMBA-CHI协议AMBA协议CHI协议CPU总线设计CPU设计总线设计
AMBA-CHI协议详解(一)-IntroductionAMBA-CHI协议详解(二)-Channelfields/ReadtransactionsAMBA-CHI协议详解(三)-WritetransactionsAMBA-CHI协议详解(四)-OthertransactionsAMBA-CHI协议详解(五)-TransactionidentifierfieldsAMBA-CHI协议详解(六)-T
- AMBA-CHI协议详解(九)
数字硬鉴
AMBA-CHI协议AMBA协议CHI协议CPU总线设计CPU设计总线设计
AMBA-CHI协议详解(一)-IntroductionAMBA-CHI协议详解(二)-Channelfields/ReadtransactionsAMBA-CHI协议详解(三)-WritetransactionsAMBA-CHI协议详解(四)-OthertransactionsAMBA-CHI协议详解(五)-TransactionidentifierfieldsAMBA-CHI协议详解(六)-T
- AMBA-CHI协议详解(四)
数字硬鉴
AMBA-CHI协议AMBA协议CHI协议CPU总线设计
《AMBA5CHIArchitectureSpecification》AMBA-CHI协议详解(一)-IntroductionAMBA-CHI协议详解(二)-Channelfields/ReadtransactionsAMBA-CHI协议详解(三)-WritetransactionsAMBA-CHI协议详解(四)-OthertransactionsAMBA-CHI协议详解(五)-Transacti
- AWS Service Catalog Terraform 参考架构常见问题解决方案
陆骊咪Durwin
AWSServiceCatalogTerraform参考架构常见问题解决方案aws-service-catalog-terraform-reference-architectureApplyTerraformconfigurationsusingCloudFormationthroughaproxylambda项目地址:https://gitcode.com/gh_mirrors/aw/aws-s
- 如何避免redis长期运行持久化AOF文件过大的问题:AOF重写
学会了没
redisaofAOF重写
一、AOF重写的核心作用通过重建AOF文件,解决以下问题:体积压缩:消除冗余命令(如多次修改同一key),生成最小操作集合。混合持久化支持(若启用aof-use-rdb-preambleyes):生成RDB头部+增量AOF命令。数据一致性:确保AOF文件仅包含有效数据集的完整操作记录。二、触发AOF重写的方式1.自动触发通过redis.conf配置触发条件:auto-aof-rewrite-per
- 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第五节】
车端域控测试工程师
ISO14229-1:2023UDS诊断测试用例全解析测试用例网络学习汽车经验分享学习方法
ISO14229-1:2023UDS诊断服务测试用例全解析(WriteDataByIdentifier0x2E服务)作者:车端域控测试工程师更新日期:2025-02-13关键词:UDS协议、0x2E服务、DID写入、ISO14229-1:2023、ECU测试一、服务功能概述0x2E服务(WriteDataByIdentifier)用于通过数据标识符(DID)向ECU写入数据记录值,该服务需要安全访
- 【cmd】Win10家庭版找不到 gpedit.msc (组策略)的解决方法
顾三殇
Win服务器部署/cmd命令组策略
目录一、创建cmd文件二、以“管理员身份”运行“gpedit.cmd”文件三、运行“gpedit.msc”命令查看组策略一、创建cmd文件(1)新建一个文件名为“gpedit.txt”的txt文本文档:(2)文本中写入以下内容:@echooffpushd"%~dp0"dir/bC:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-C
- 找不到“本地策略”,没有“本地策略”的解决办法
Bawei_
windows
本文提供找不到本地策略的解决办法只需4步,结果如下图:1.首先打开记事本,并输入以下内容@echooffpushd“%~dp0”dir/b%systemroot%\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum>gp.txtdir/b%systemroot%\servi
- 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