- vite构建项目中的swc是什么
光影少年
swcreact.jsvue.js
在Vite项目中,swc是一种高性能的编译器,用于替代传统的JavaScript编译工具,如Babel。它以速度和效率著称,可以加速编译和转换JavaScript和TypeScript代码,从而大幅提升开发和构建的效率。1.什么是swc?swc(SpeedyWebCompiler)是一个用Rust编写的编译器,它能够非常快速地编译、转换和优化JavaScript和TypeScript代码。swc的
- node和nest生态及区别和优势
光影少年
node.js后端
Node.js与Nest.js的生态与区别及优势1.Node.js生态Node.js是一个基于V8引擎的JavaScript运行时,支持高性能、非阻塞I/O,用于构建服务器端应用程序。生态特点核心模块:提供基础模块(如fs,http,events等),可以直接用于开发。允许构建高性能网络应用,如Web服务器、API服务等。NPM(NodePackageManager):全球最大的包管理器,提供丰富
- JVM、JRE 和 JDK:深入解析
ㅇㅁㅇ
java基础jvmjava开发语言
在Java编程的世界中,JVM、JRE和JDK是三个关键的组成部分,每个部分在Java的开发和运行中都扮演着重要角色。理解这三者的关系不仅对开发者有帮助,也有助于解决编程过程中遇到的各种问题。下面我们将更详细地探讨它们的具体功能和相互关系。JVM(JavaVirtualMachine)JVM,即Java虚拟机,是Java平台的核心组成部分。其主要功能包括:字节码执行:JVM的主要任务是执行Java
- jdk jre jvm 的区别和联系
小萝卜锃亮
jvmjava开发语言
一、JDK、JRE、JVM分别是什么(一)JDKJDK,全称JavaDevelopmentKit,是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的Java应用程序。JDK是整个Java开发的核心。(二)JREJRE,全称JavaRuntimeEnvironment,是指Java的运行环境,是可以在其上运行、测试和传输应用程序的Java平台。(三)JVMJVM,全称JavaVirtu
- JAVA导入包
aqr95022
java
在package**;下面写入importjava.**.**;1.使用Scanner工具类来获取用户输入的成绩信息Scanner类位于java.util包中,使用时需要导入此包1.1.导入java.util.Scancerimportjava.util.Scanner;1.2.创建Scanner对象Scannerinput=newScanner(System.in);//System.in为指定
- SpringBoot继承JWT token实现权限的验证(从头开始)
CodeGuruInk
springbootjava后端
目录概述前提:我们需要知道的文件的用处第1步:数据库的连接第2步:定义一个标准化响应对象的类第3步:编写请求数据库数据代码第4步:自定义异常处理第5步:导入依赖第6步:自定义拦截器第7步:配置拦截器第8步:生成token第9步:开始测试代码第10步:vue请求示例扩展:自定义注解AuthAccess总结概述在开发后端接口时,数据的直接暴露可能会导致安全问题。为了应对这种情况,我们需要在访问接口时进
- 关于Java中的导包
SherlockWZX
Javajava
导包//静态导入包~importstaticjava.lang.Math.random;importstaticjava.lang.Math.PI;publicclassTest{publicstaticvoidmain(String[]args){System.out.println(random());//可以直接使用random方法System.out.println(PI);//可以直接使
- java导包
乐乐的家长
导包:指明使用的类的位置当使用同一个包中多个内容时,可以使用模糊匹配*降低编译效率,不会降低运行效率静态导入:只能导入静态内容importstatic使用全面信息指定使用内容的位置,当期这一次有限
- Lambda离线实时分治架构深度解析与实战
喜欢猪猪
架构
一、引言在大数据技术日新月异的今天,Lambda架构作为一种经典的数据处理模型,在应对大规模数据应用方面展现出了强大的能力。它整合了离线批处理和实时流处理,为需要同时处理批量和实时数据的应用场景提供了成熟的解决方案。本文将对Lambda架构的演变、核心组件、工作原理及痛点进行深度解析,并通过Java代码实现一个实战实例。二、Lambda架构的演变Lambda架构是由Storm的作者NathanMa
- Java常用类
ufosuai555
javapython开发语言
包装类包装类定义包装类就是将基本数据类型封装到类中,使基本数据类型具有类的特点,方便操作包装类分类byte->Byteshort->Shortint->Integerlong->Longfloat->Floatdouble->Doublechar->Characterboolean->Boolean基本数据类型与包装类之间的转换在JDK5之前,基本数据类型与包装类之间的转换需要手动编写代码实现,在
- 写一个简单的程序
hummhumm
python算法开发语言javajsonjavascriptmaven
思路分析:1.导入必要的库首先,确保你的项目中包含了AWT或Swing库,因为我们将使用它们来创建图形界面。importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Random;2.定义方块形状俄罗斯方块由几种基
- FFMPEG音视频开发: Linux下采集音频(alsa-lib库)与视频(V4L2框架)实时同步编码保存为MP4文件(视频录制)
鱼弦
音视频开发系列实践ffmpeg音视频linux
鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)FFMPEG音视频开发:Linux下采集音频(alsa-lib库)与视频(V4L2框架)实时同步编码保存为MP4文件(视频录制)简介本项目介绍如何在Linux
- 流媒体直播实时视频延迟时间排查和剖析:gop关键帧间隔导致延迟,流媒体和播放器缓存,B帧等导致的延迟
eguid_1
#1.4.3版本)直播延迟视频延迟直播平台播放延迟网络延迟
本章是流媒体直播实时视频延迟时间排查和剖析javaCV系列文章:javacv开发详解之1:调用本机摄像头视频javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
- 用 Docker 搭建 Spark 集群
yeasy
BigdataDockersparkDocker云计算集群分布式计算
简介Spark是Berkeley开发的分布式计算的框架,相对于Hadoop来说,Spark可以缓存中间结果到内存而提高某些需要迭代的计算场景的效率,目前收到广泛关注。熟悉Hadoop的同学也不必担心,Spark很多设计理念和用法都跟Hadoop保持一致和相似,并且在使用上完全兼容HDFS。但是Spark的安装并不容易,依赖包括Java、Scala、HDFS等。通过使用Docker,可以快速的在本地
- 小马模拟器-第三方全街机游戏模拟器
私人珍藏库
游戏
链接:https://pan.xunlei.com/s/VOHSiB6st-f3RWlIK01MS2fUA1?pwd=44v7#1.小马模拟器是一款完全免费的游戏模拟器软件,支持街机(FBA,MAME,PGM2),3DS,WII,NGC,DC,SS,DOS,MD,WSC,NDS,JAVA,PCE,FC,SFC,GBA,GBC,PSP,PS,N64等多种游戏机,后续还将不断增加中。软件内集成了ROM
- springmvc继承Converter格式化时间不起作用
牛十二
oracle数据库mybatis
JSONparseerror:Cannotdeserializevalueoftype`java.util.Date`fromString"2018-10-1921:33:16":notavalidrepresentation(error:FailedtoparseDatevalue'2018-10-1921:33:16':Cannotparsedate"2018-10-1921:33:16":w
- Java多线程与高并发专题——JMM
黄雪超
大数据面试java开发语言JMM
引入上一篇我们讲到在并发场景中,存在结果问题和性能问题,其中结果问题主要是因为没有保障可见性、原子性、有序性等导致的。这三者在编程领域属于共性问题,所有的编程语言都会遇到,Java在诞生之初就支持多线程,所以肯定有保障它们的技术方案。理解Java解决并发问题的方案,对于了解其他语言的解决方案有触类旁通的效果。在Java中,对应的解决方案就是JMM(Java内存模型)。什么是JMM?为了更准确的理解
- 从零开始学设计模式(四):工厂模式(Factory Pattern)
江夏、
JavaJava基础设计模式java工厂模式设计模式
作者平台:|CSDN:blog.csdn.net/qq\_4115394…|掘金:juejin.cn/user/651387…|知乎:www.zhihu.com/people/1024…|GitHub:github.com/JiangXia-10…|公众号:1024笔记本文大概11588字,读完共需25分钟定义工厂模式(FactoryPattern)也是Java中最常用的设计模式之一。这种类型的设
- Linux安装maven仓库软件
大白菜和MySQL
linuxlinuxmaven运维
Linux环境下maven软件的安装由于maven软件需要java环境所以需要先安装java软件包yuminstalljava-11-openjdk-y#安装java11解压下载的maven软件包到/usr/local目录下tar-xfapache-maven-3.6.2-bin.tar.gzmvapache-maven-3.6.2/usr/local/配置Linux系统环境变量vim/etc/p
- JavaScript原型链污染漏洞分析
漏洞安全
原型链污染漏洞CVE:1、yargs-Parser输入验证错误漏洞(CVE-2020-7608)2、tough-cookie安全漏洞(CVE-2023-26136)3、JSON5原型污染漏洞(CVE-2022-46175)漏洞描述:1、yargs-Parser输入验证错误漏洞(CVE-2020-7608):yargs-parser是一款选项解析器。yargs-parser13.1.2之前版本、14
- java poi excel 富文本粗体无效
upcdxlq
excel
javapoiexcel设置单元格富文本粗体无效解决办法_poi设置富文本-CSDN博客问题描述需求:java导出excel模板,单元格需要设置字段名+备注,字段名加粗,备注不加粗。方案:可以采用富文本RichTextString来实现设置部分字体加粗样式。效果:打开下载的xlsx模板表格,没有展示加粗效果,设置部分标红可以,加粗没有效果。原因分析网上查找资料,寻求帮助,看到上述博文,场景确实是w
- Android FFmpeg 实现带滤镜的微信小视频录制功能
攻城狮百里
音视频C/C++C++音视频AndroidFFmpeg
本文将实现对采集的预览帧(添加滤镜)和PCM音频同时编码复用生成一个mp4文件,即实现一个仿微信小视频录制功能。音视频录制编码流程本文采用的是软件编码(CPU)实现,所以针对高分辨率的预览帧时,就需要考虑CPU能不能吃得消,在骁龙8250上使用软件编码分辨率超过1080P的图像就会导致CPU比较吃力,这个时候帧率就跟不上了。音视频录制代码实现Java层视频帧来自AndroidCamera2API回
- 若依拓展开源项目
ProfessorYang_mc
开源
若依后端启动类@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})publicclassRuoYiApplication{publicstaticvoidmain(String[]args){ConfigurableApplicationContextrun=SpringApplication.run(RuoYiAp
- 优雅驾驭 TryParse:技巧与实战全攻略
东百牧码人
c#数据结构
一、引言在编程的世界里,数据类型的转换是我们经常会遇到的操作。而TryParse方法作为一种安全、高效的类型转换方式,在许多编程语言中都有着广泛的应用,比如C#、Java等。它能够帮助我们在将字符串转换为其他数据类型时,避免因格式不正确而引发的异常,使我们的程序更加健壮和稳定。今天,咱们就来聊聊如何优雅地使用TryParse,让你的代码既简洁又高效,展现出编程的艺术之美。二、TryParse基础解
- java设计模式-创建型模式-建造者模式
shuair
java设计模式java设计模式建造者模式
java设计模式-创建型模式-建造者模式场景举例根据表名、每页条数、偏移量等属性进行拼接组装,并且根据不同的数据库类型生成不同的sql脚本观察Lombok@Builder注解生成的代码源码packagexin.yangshuai.basic01.gof23.builder;importlombok.Builder;@BuilderpublicclassDatabaseSqlLombok{/***数
- Github上最热门的11个Java开源项目你会了吗
Java小叮当
项目Github项目java程序员IT
前言4月份GitHub上最热门的Java开源项目排行已经出炉啦,一起来看看吧!1JimuReport(地址见文末)这是一款免费的数据可视化工具,报表与大屏设计!类似于excel操作风格,在线拖拽完成报表设计!功能涵盖:报表设计、图形报表、打印设计、大屏设计等,永久免费!2dolphinscheduler(地址见文末)ApacheDolphinScheduler是一个可视化的分布式大数据工作流任务调
- JS中window.dispatchEvent的原理和使用初识
匹马夕阳
javascript前端开发语言
window.dispatchEvent是JavaScript中用于触发事件的一个方法,它允许开发者在DOM(文档对象模型)中触发特定的事件。这对实现自定义事件或者将事件传递给其他组件或部分的应用非常有用。文章目录使用场景具体代码示例步骤1:创建自定义事件步骤2:触发事件步骤3:监听事件步骤4:集成到页面解释使用场景示例:跨组件通信ModuleA:触发事件ModuleB:监听事件优势注意事项总结使
- 由于直接展示多种编程语言的全套游戏代码会相当冗长,我将为你概述一个简单的小游戏——猜数字游戏,并用几种流行的编程语言(Python, JavaScript, C++, Java)给出其核心逻辑的代码片
IsaacHornby
游戏pythonjavascript
Python版本ftinc.cnPython版本非常直观,适合初学者。pythonimportrandomdefguess_number_game():number_to_guess=random.randint(1,100)guess=Noneattempts=0print("我想了一个1到100之间的数字,你能猜到是哪个吗?")whileguess!=number_to_guess:try:g
- Java--深入理解字符串的String#intern()方法奥妙之处_intern java string 解释
2401_86372503
java开发语言
*Returnsacanonicalrepresentationforthestringobject.**Apoolofstrings,initiallyempty,ismaintainedprivatelybythe*class{@codeString}.**Whentheinternmethodisinvoked,ifthepoolalreadycontainsa*stringequaltot
- 免费开源的后端API服务-supabase安装和使用-简直是前端学习者福音
前端三评
strapiAjax工具开源前端supabase
文章目录它是什么安装和部署关于安装关于部署1、注册用户2、创建组织3、创建项目创建数据库表(填充内容)填充数据库表使用postman联调API它是什么一个开源免费的后端框架,firebase的替代品。可以简单理解类似于headlesscms,但是不仅仅只提供内容,它还集成了服务订阅、即时API,用户身份认证(包括第三方身份认证,比如使用github、Google等账号实现快速登录和注册)、边缘函数
- 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