- (新手友好)MySQL学习笔记(11):索引(前缀索引,聚簇索引,覆盖索引,最左前缀原则,索引设计原则,索引使用原则,索引失效的常见场景)
李白洗一夜
学习笔记
目录前缀索引聚簇索引覆盖索引(索引覆盖)最左前缀原则索引设计原则索引使用原则索引失效的常见场景前缀索引索引开头的部分字符,可以大大节约索引空间,提高索引效率。如TEXT数据类型必须使用前缀索引,因为MySQL不允许索引这些列的完整长度。InnoDB索引最大长度为767字节。最简单的理解就是在索引表中存储的不是索引字段的完整字段值,而是索引字段的前一部分字段值,比如:createindexIn_sn
- MySQL远程无法连接(1130)
欧阳晓
事情背景最近琢磨着迁移数据库,想通过自己的电脑连接服务器,遇到两个问题,一是在这台WindowServer2008上根本找不到Mysql,二是自己的电脑连接不上,提示:1130-host...isnotallowedtoconnecttothisMySqlserver解决这个提示就证明这台服务器上是有Mysql的。费劲周折,终于找到了一个命令行运行Enterpassword:*******Welc
- Python:勾股数
Dominick_Su
Python编程python开发语言后端
找出一定范围内的勾股数a,b,c(均为正整数),而且三个数互质。importmathMAX=100#设定范围,a,b,c都在100以内PN=[]#PythagoreanNumber勾股数forainrange(2,int(MAX//math.sqrt(2))+1):forbinrange(a+1,int(math.sqrt(MAX*MAX-a*a))+1,2):c=int(math.sqrt(s:
- Rovo Dev CLI Windows 安装与使用指南
执剑走天涯xp
windows
RovoDevCLIWindows安装与使用指南(修订版)前提条件与准备工作1.Atlassian账号注册访问注册页面:AtlassianAIInnovation注册这里我使用的是Google账号登录2.安装必备软件Git(必需组件)GitforWindows官方下载VisualStudioCode(推荐终端环境)VSCode官方下载3.管理员启用RovoDevAgents需组织管理员在Atlas
- mysql 清除事物_mysql事物处理
mysql事物主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等。这样,这些数据库操作语句就构成一个事物。注意一下几点:在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务。事物处理可以用来维护数据库的完整性,保证成批的sql语句要么全部执行,要么全部不执行。事物用来管理insert,
- nginx+nacos集群配置模版
cherishSpring
SpringCloudnginxnginx运维
worker_processes1;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;upstreamnacoscluster{server127.0.0.1:10003;server127.0.0.1:1
- OpenCV学习(二)-二维、三维识别
香蕉可乐荷包蛋
#OpenCVopencv学习人工智能
OpenCV是一个功能强大的计算机视觉库,可以用于识别和处理二维图像和三维图像。以下是关于二维图像和三维图像识别的基础知识和示例代码。1.二维图像识别二维图像识别通常包括图像分类、对象检测、特征提取等任务。以下是一些常见的操作:1.1图像分类使用预训练模型对图像进行分类,例如使用深度学习模型(如ResNet、MobileNet等)。importcv2#加载预训练的深度学习模型net=cv2.dnn
- 【人工智能之深度学习】6. 卷积核工作原理:从边缘检测到特征抽象的逐层演进(附可视化工具与行业实战代码)
AI_DL_CODE
人工智能深度学习卷积核特征提取卷积神经网络边缘检测特征可视化
摘要:卷积核是卷积神经网络(CNN)的核心组件,其通过局部感受野与参数共享机制实现高效特征提取。本文从数学本质出发,揭示卷积操作的空域-频域对偶性:空域卷积等价于频域乘积(F{f∗g}=F{f}⋅F{g}F\{f*g\}=F\{f\}⋅F\{g\}F{f∗g}=F{f}⋅F{g}),解释边缘检测核(Sobel、Laplacian)的频域响应特性。通过特征可视化实验表明,CNN特征呈现逐层抽象规律:
- 使用什么工具测试昇腾 NPU卡的性能和使用情况
alankuo
人工智能
测试昇腾NPU卡的性能和使用情况可以借助华为提供的官方工具和第三方工具。以下是常用的工具及其功能介绍:1.CANN工具链(华为昇腾计算架构)CANN(ComputeArchitectureforNeuralNetworks)是昇腾AI处理器的基础软件平台,提供以下核心工具:AtlasDeviceManager(ADM)系统级监控工具,支持可视化管理集群和设备。功能:实时监控NPU温度、功耗、利用率
- 模型移植实战:从PyTorch到ONNX完整指南
慕婉0307
神经网络pytorch人工智能python
一、认识ONNXONNX(OpenNeuralNetworkExchange)是一种开放的模型表示格式,由微软和Facebook(现Meta)在2017年共同推出,旨在解决深度学习模型在不同框架之间的互操作性问题。ONNX的主要优势包括:跨框架兼容性:支持主流深度学习框架间的模型转换,包括PyTorch、TensorFlow、MXNet、CNTK等例如,可以将PyTorch训练的ResNet模型导
- python3.9安装tensorflow-gpu 2.6.0和torch-gpu版本各依赖包的版本对应关系
首先使用的cuDNN(8.1)、CUDA(11.2)、tensorflow-gpu(2.6.0)、python(3.9)之间对应版本Window环境下安装pytorch下载地址tensorflow官网CUDA下载官网cuDNN下载官网注意:cuDNN需要注册absl-py0.15.0astunparse1.6.3cachetools5.3.2certifi2023.7.22charset-norm
- XSS Game
Earnestfu
xss前端
hugoserver--bind0.0.0.0--baseURLhttp://192.168.239.128:1313/MaSpaghet!spaghet.innerHTML=(newURL(location).searchParams.get('somebody')||"Somebody")+"TouchaMaSpaghet!"没有什么过滤,直接输入就行payload:http://192.16
- 【Netty实战】基于Netty+WebSocket的IM通信后台服务代码详解
一、引言二、技术选型与前提条件三、核心代码实现服务的启动类ChatServer初始化器类WSServerInitializer心跳Handler类HeartBeatHandlerOkHttpUtil工具类json实体转换工具类JsonUtils发送消息的类型/动作枚举类MsgTypeEnum消息实体类ChatMsg自定义通信Handler类ChatHandler会话用户id和channel的关联处
- 回归损失函数2 : HUber loss,Log Cosh Loss,以及 Quantile Loss
均方误差(MeanSquareError,MSE)和平均绝对误差(MeanAbsoluteError,MAE)是回归中最常用的两个损失函数,但是其各有优缺点。为了避免MAE和MSE各自的优缺点,在FasterR-CNN和SSD中使用SmoothL1SmoothL1损失函数,当误差在[−1,1][−1,1]之间时,SmoothL1SmoothL1损失函数近似于MSE,能够快速的收敛;在其他的区间则近
- 基于深度学习的目标检测:从基础到实践
Blossom.118
机器学习与人工智能深度学习目标检测人工智能音视频语音识别计算机视觉机器学习
前言目标检测(ObjectDetection)是计算机视觉领域中的一个核心任务,其目标是在图像中定位和识别多个对象的类别和位置。近年来,深度学习技术,尤其是卷积神经网络(CNN),在目标检测任务中取得了显著进展。本文将详细介绍如何使用深度学习技术构建目标检测模型,从理论基础到代码实现,带你一步步掌握目标检测的完整流程。一、目标检测的基本概念(一)目标检测的定义目标检测是指在图像中识别和定位多个对象
- 分治算法---归并
1、排序数组classSolution{vectortmp;public:vectorsortArray(vector&nums){tmp.resize(nums.size());mergeSort(nums,0,nums.size()-1);returnnums;}voidmergeSort(vector&nums,intleft,intright){if(left>=right)return;
- 415.字符串相加
粉蒸妹
LeedCode每日一题
给定两个字符串形式的非负整数num1和num2,计算它们的和。注意:num1和num2的长度都小于5100.num1和num2都只包含数字0-9.num1和num2都不包含任何前导零。你不能使用任何內建BigInteger库,也不能直接将输入的字符串转换为整数形式。publicclassQuestion1{publicstaticvoidmain(String[]args){Scannerin=n
- 全球50+亿下载、狂揽200+亿美元的《糖果传奇》被曝荒诞一幕:超200人被自己造的AI逼到失业!
CSDN资讯
人工智能
整理|郑丽媛出品|CSDN(ID:CSDNnews)投稿或寻求报道:
[email protected]还记得那个让全球数亿人上瘾的三消游戏吗?2012年诞生的《糖果传奇》(CandyCrush),曾是移动游戏界当之无愧的王者——全球下载量突破50亿,累计总营收突破200亿美元,多次占据AppStore和GooglePlay下载榜和收入榜前列。而它的开发商King,也因此一跃成为全球最赚钱的手游公司之
- python 连接数据库
小鱼拉灯
mysql数据库python
一.连接MYSQL1.下载PyMySql模块2.在MYSQL中创建数据库并连接importpymysqlconn=pymysql.connect(host='localhost',user='root',password='123456',database='ikun',charset='utf8',port=3306)3.创建表importpymysqlconn=pymysql.connect(
- 【二分答案】P3743 小鸟的设备
前言九月应该是人生中最后一次CSP了,已经7个多月没碰编程的我显然已经有些力不从心,达到一年前的水平更是不可能。只能写点简单的题目来提升一下。祝我CSPRP++。题意小鸟有nnn个可同时使用的设备。第iii个设备每秒消耗aia_iai个单位能量。能量的使用是连续的,也就是说能量不是某时刻突然消耗的,而是匀速消耗。也就是说,对于任意实数,在kkk秒内消耗的能量均为k×aik\timesa_ik×ai
- WEB:DOM (二)核心操作 —— 内容
文章目录一、innerHTML二、innerText与textContent2.1innerText2.2textContent2.3对比与选择三、表单元素的值操作获取和修改元素的内容是DOM操作中最常见的需求,JavaScript提供了多种方式来操作元素的内容。一、innerHTMLinnerHTML属性用于获取或设置元素的HTML内容,设置时会解析HTML标签。原始内容constcontent
- python基础笔记
大大的大大
笔记python前端数据库
输入就是print();#括号里面双引号(“xxxx”)=单引号('xxxx')必须在一行;但是三引号"""xxxx"""='''xxx'''可以换行输出;#'''xxxnnn'''xx=open(('C:\py\py笔记.txt','a+')print('hello',file=xx)xx.close()可以在python中新建文本文本档等(看后缀):"xx"=open('C:\py\py笔记.
- Java 匿名内部类详解:简洁、灵活的内联类定义方式
大葱白菜
java合集开发语言后端java学习个人开发
作为一名Java开发工程师,你一定在开发过程中遇到过这样的场景:需要实现一个接口或继承一个类,但这个类只使用一次想简化代码结构,避免创建过多无意义的“一次性”类在事件监听器、线程任务、函数式编程中需要快速定义行为逻辑这时候,匿名内部类(AnonymousInnerClass)就派上用场了!本文将带你全面理解:什么是匿名内部类?匿名内部类的语法结构与执行流程使用场景与实际案例解析匿名内部类与Lamb
- Java 常用 API 详解:掌握核心类库,提升开发效率
大葱白菜
java合集开发语言java后端学习个人开发
作为一名Java开发工程师,你每天都在与各种Java标准库打交道。熟练掌握Java中的常用API是提高代码质量、提升开发效率的关键技能之一。本文将带你全面了解Java开发中最常用的API类和接口,包括:java.lang包中的核心类(如String,Object,Math,System)集合框架(Collection,List,Set,Map)多线程相关类(Thread,Runnable,Exec
- 【k8s学习】Kubernetes新手学习,4小时视频笔记总结
伊丽莎白2015
【学习视频地址】KubernetesTutorialforBeginnersFULLCOURSEin4Hours视频不一定打得开,不过我笔记也很详细了。【笔记内容】1-【k8s学习】Kubernetes学习——核心组件和架构2-【k8s学习】minikube、kubectl、yaml配置文件的介绍3-【k8s学习】在minikube上布署MongoDB和MongoExpress4-【k8s学习】k
- Gradle:Cannot add task ‘clean‘ as a task with that name already exists.
海阔天空6688
开发工具Androidgradleandroid
Gradle编译项目报错:Cannotaddtask'clean'asataskwiththatnamealreadyexists.提示的是gradle中的clean方法已经存在了,冲突了,把项目中build.gradle的clean方法注释掉或者删掉重新编译就也可以了。buildscript{repositories{}dependencies{classpath'com.android.too
- U3复盘
庄新妍
复盘1.从本单元中我学到的最重要的理念精读:ManagingPersonalFinances2.我在本片文章/音频/视频中学到的怦然心动的单词精读:entertainnotoriousimpulseprepaiddebitreloadallowancesparinglyornateresidencecomposerscorecopyistmisspendbeabouttogorgeousstrik
- 接口测试框架3之httprunnerV3入门以及HttpRunner安装详解
吃喝玩乐秀起来
#接口测试接口
这里写目录标题一、HttpRunner简介二、HtttpRunner安装详解1.环境准备2.脚手架生成项目三、幕布登录的演练1.抓包2.脚本生成一、HttpRunner简介参考文案:https://mubu.com/doc/2vXRWPx5i3c密码:hogwarts1.为什么要开发HttpRunner(1).工具多而且杂接口测试工具,性能测试工具(2).学习成本高(3).团队协作难风格迥异,整合
- 【Java-多线程】如何提交一个线程到线程池?
Java自学之旅
大白话说Javajava开发语言
要将线程提交到线程池,主要通过Java的ExecutorService接口实现。以下是具体步骤和原理说明:一、核心步骤创建线程池ExecutorServiceexecutor=Executors.newFixedThreadPool(4);//创建固定4线程的池定义任务//Runnable接口(无返回值)Runnabletask=()->System.out.println("Runnable任务
- DETR革命:目标检测的Transformer时代
加油吧zkf
目标检测YOLOpython开发语言人工智能图像处理
《DETR从0到1:目标检测Transformer的崛起》为什么会有DETR?在深度学习目标检测发展史上,2014~2019年几乎被基于卷积神经网络(CNN)的检测器统治:两阶段:FasterR-CNN、MaskR-CNN单阶段:YOLO、SSD、RetinaNet这些检测器虽然效果强大,但背后依赖:✅Anchor(先验框)✅NMS(非极大值抑制)✅特征金字塔、手工设计问题:结构复杂、调参困难、不
- 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