- 前端表格数据导出为 Excel 的简单方法
June·DD
JavaScriptWebjavascript前端excel导出
方法一/***导出表格数据到Excel文件*@param{Array}tableData-表格数据*@param{Array}fieldLabels-表头组成的数组*@param{Array}fieldKeys-列属性名组成的数组*@param{String}fileName-导出的文件名*/functionexportExcel(tableData,fieldLabels,fieldKeys,f
- 力扣HOT100 - 23. 合并K个升序链表
_OLi_
力扣HOT100算法题合集leetcode链表算法java
解题思路:只要会合并两个升序链表,合并K个做法类似。classSolution{publicListNodemergeKLists(ListNode[]lists){ListNoderes=null;for(inti=0;i
- 聊聊Spring AI的RetrievalAugmentationAdvisor
hello_ejb3
spring人工智能restful
序本文主要研究一下SpringAI的RetrievalAugmentationAdvisorBaseAdvisorspring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/api/BaseAdvisor.javapublicinterfaceBaseAdvisorextendsCallAroundAdvisor,
- 聊聊Spring AI的EmbeddingModel
hello_ejb3
spring人工智能windows
序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingModel.javapublicinterfaceEmbeddingModelextendsModel{@OverrideEmbeddingResponsecall(
- 计算机毕设-基于springboot的考研互助平台的设计与实现(附源码+lw+ppt+开题报告)
计算机毕设孵化场
Java毕设项目课程设计springboot计算机毕业设计如何选题计算机毕设论文计算机毕业设计选题推荐java考研互助平台
博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫+大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战项目。主要内容:系统功能设计、开题报告、任务书、系统功能实现、功能代码讲解、答辩PPT、文档编写、文档修改、文档降重、一对一辅导答辩
- 循环嵌套优化,代码耗时从 13721ms 优化到了 862ms
y_bccl27
数据结构java
在两份数据里面找相同ID的数据,很多人会写两个for循环嵌套。这个写法效率比较低,今天来看一个提高速度的优化案例。场景示例:比如现在有两个List数据,一个是UserList集合,另一个是UserMemoList集合。我们需要先遍历UserList,然后根据userId从UserMemoList里面取出这个userId对应的content值,做数据处理。User实体类:importlombok.D
- Java IO流 实现文件复制
肃清万里,总齐八荒
IO流java开发语言
JavaIO流实现文件复制思路1、将指定文件转换成输入流2、创建数组接收输入字节3、将文件复制想要存放的轮径创建输出流4、将输入流的字节输出出去实现//创建输入和输出流FileInputStreamfis=newFileInputStream("D:11.mp4");FileOutputStreamfos=newFileOutputStream("D:1212.mp4");//创建字节接收数组by
- Ansible进阶:优化重复任务执行的技巧与实例
t0_54manong
编程问题解决手册ansiblelinux运维个人开发
在使用Ansible进行应用部署和配置管理时,我们常常会遇到一个问题:当需要重新运行某个特定的阶段时,Ansible会花费大量时间去验证之前已经执行过的任务。今天我们来讨论如何优化这个过程,使得Ansible能够跳过已执行的任务,从而提高效率。问题背景假设我们有一个名为general.pb.yml的Ansible剧本,用于在Linux机器上安装和配置Java应用。这个剧本通过导入多个阶段的子剧本来
- Unity射击游戏手榴弹笔记
WarPigs
unity游戏笔记
数据在物品系统增加一个新的物品类,手榴弹类,定义手榴弹依附物体的类、配表数据类、背包内物品数据类、新建配表、在背包增加手榴弹数组;手榴弹的预制体需要可拾取的、扔出的;背包界面增加背包内的手榴弹、场景里的手榴弹、别人背包的手榴弹格子;人物有一个intgrenadeIndex记录当前拿着的手榴弹在背包手榴弹列表的索引,没拿手榴弹时是-1;逻辑在交互系统的拾取物品分支增加对手榴弹类的判断;GetNext
- 第十五届蓝桥杯Java大学b组(解)
FENG.Lxj
蓝桥杯职场和发展
1.报数游戏思路:第1-10个:2024404860728096100120第11-20个:140144160168180192200216220240第21-30个:260264280288300312320336340360第31-40个:380384400408420432440456460480思路一:发现第10个数,第20个数,第30个数,第40个数......(每十个数为一轮)等等都是
- 2024年蓝桥杯Java B组省赛真题超详解析-分布式队列
烂白菜@
计算机基础蓝桥杯java职场和发展
问题:你需要回答在某个时刻,队列中有多少个元素具有可见性方案:跟踪每个副节点已经同步到主节点队列的元素数量,并找出所有副节点中同步到的最少元素数量,这个数量即为所有副节点都已经同步的元素数量。解析:只需要总数量数据的建立和维护,从而进行抽象操作处理(1)初始化维护主节点队列的长度mainQueueSize,初始为0对于每个副节点,维护一个数组followerSync,记录每个副节点已经同步到主节点
- 【Cython教程】通过Cython编写Python的C++拓展库
卖女孩的小火柴คิดถึง
pythonc++开发语言windows
前言官方的Python是由C语言编写,所以就像我之前发布的文章那样,Python可以调用动态链接库(在Windows中是dll格式)实现通过Python执行C代码逻辑。但dll的弊端在于,导出类型应该为c类型,但凡涉及字符串或者数组,你就要使用指针,而且要在写Python中写显示调用的代码,还是设置指针类型,这无疑增加了使用者的难度。另外,你使用C语言这样的中级语言编写代码,也会让你有巧妇难为无米
- 【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的文件上传与下载:实现文件管理功能
Foyo Designer
springspringbootjava后端改行学it
点击此处查看合集https://blog.csdn.net/foyodesigner/category_12907601.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=12907601&sharerefer=PC&sharesource=FoyoDesigner&sharefrom=from_link一、开篇整活儿今儿个咱唠唠Spr
- Echarts 折线图折线渐变、折线添加阴影
初级见习猿工
Echartsecharts前端javascript
实例图效果要求线条渐变并指定颜色,线条实现阴影效果增加层次感。主要部分线条渐变使用lineStyle内的color给线条设置渐变色。用echarts的渐变内置生成器:echarts.graphic.LinearGradient()设置渐变色。newecharts.graphic.LinearGradient((渐变方向参数)右,下,左,上,[(渐变位置及颜色配置,可多个){offset:位置参数,
- Go语言深度解析:从Java到Go的范式革命与实践指南
唯一为空
golang开发语言后端
引言:编程范式的十字路口在软件工程领域,编程语言的选择往往代表着技术路线的抉择。当Java开发者第一次接触Go时,常会陷入两种思维范式的激烈碰撞:一面是传承20年的面向对象正统,一面是追求极简主义的新锐语言。本文基于笔者主导的三个大型系统重构项目(Java转Go)的实战经验,深度剖析两种语言的核心差异,揭示Go语言的独特优势,并为转型开发者提供万字避坑指南。第一部分:哲学根基——两种世界观的对撞1
- Echarts折线图设置折线阴影
每一天,每一步
EChartsecharts前端javascript
series中lineStyle添加阴影相关的属性:option={......series:[{......lineStyle:{normal:{width:4,shadowColor:'rgba(0,0,0,1)',shadowBlur:10,shadowOffsetY:10,shadowOffsetX:0,......}},......}]};未添加阴影效果:添加阴影效果:
- Java并发编程:CountDownLatch核心原理与实战应用
啥都不懂的小小白
JUCjava开发语言并发
一、CountdownLatch是什么CountdownLatch(闭锁/倒计时锁),是Java中用于多线程协作的工具类,核心功能是让一个或多个线程等待其他线程完成操作。初始化计数器:newCountDownLatch(intcount)进行初始化,count参代表需要等待完成任务的数量。线程阻塞:当一个线程调用await()方法时,如果计数器的值不为0,该线程会被阻塞,进入等待状态,直到计数器变
- golang中make和new的区别
菜鸟要加油!
golang开发语言后端
参考链接https://worktile.com/kb/ask/38441.html在Go语言中,make和new都是用于创建数据结构的内置函数,区别:分配内存的区别返回类型的区别初始化的区别分配内存的区别make用于创建切片、映射和通道等引用类型的数据结构。new用于创建结构体、数组和基本数据类型等值类型的数据结构。返回类型的区别make的返回类型与其参数的类型相同,而不是指向它的指针,因为这三
- 深入浅出:JIT优化技术如何让Java运行更快
qian_qh
面试八股文java开发语言jvm
深入浅出:JIT优化技术如何让Java运行更快?1.什么是JIT?JIT(Just-In-TimeCompilation,即时编译)是Java虚拟机(JVM)的核心优化技术之一。它的核心思想是:在运行时将热点代码(频繁执行的代码)从字节码编译成本地机器码,从而大幅提升执行效率。为什么需要JIT?Java程序默认是解释执行的,即JVM逐条读取字节码并解释成机器指令运行。这种方式虽然跨平台,但执行速度
- JavaScript 中 filter() 和 find() 的区别对比
胡歌1
javascript前端开发语言
filter()和find()都是JavaScript数组的高阶函数,用于搜索数组元素,但它们有几个关键区别:1.基本区别特性filter()find()返回值新数组(包含所有匹配元素)第一个匹配的元素(不是数组)空结果返回空数组[]返回undefined用途筛选多个符合条件的元素查找第一个符合条件的元素2.代码示例对比示例数组constusers=[{id:1,name:'Alice',acti
- go语言new和make的区别?
byteinit
GO语言开发语言golang后端
Go语言中的new和make都是用来分配内存的内置函数,但它们之间有一些区别:1.作用类型不同new用于分配基本类型(如int、string、bool等)和指针类型的内存空间。make用于分配切片、map和channel类型的内存空间。2.初始化方式不同new分配的内存空间会被初始化为零值。make分配的内存空间会根据类型进行初始化:切片会被初始化为空切片。map会被初始化为空map。channe
- 简述ForkJoinPool.commonPool()
for62
JUC并发commonPool
前言在有些并发工具类中,如果我们没有传递线程池,那么将使用默认的公共池。如下:ForkJoinPool.commonPool()是Java中ForkJoinPool的一个公共静态实例,它与传统的线程池(如ThreadPoolExecutor)在一些概念上既有相似之处,也有不同之处,下面来详细分析其是否有最大线程数、队列、拒绝策略的概念。最大线程数有类似概念:ForkJoinPool.commonP
- go语言中的for range
fbbqt
golang
通过forrange遍历的返回值有一定的规律:数组、切片、字符串返回索引和值。map返回键和值。通道(channel)只返回通道内的值。funcmain(){c:=make(chanint)wg:=sync.WaitGroup{}wg.Add(2)gofunc(){deferwg.Done()fori:=0;i<10;i++{c<-rand.Intn(50)}close(out)}()gofunc
- 【java】网络编程——URL统一资源定位符
6<7
java网络开发语言
URL统一资源定位符:定位资源的,定位互联网上的某一个资源。DNS域名解析:以www.baidu.com为例,其实这个是域名,其本质应该是IP地址,那为什么我们通过域名就可以访问网站呢,因为存在DNS域名解析,会帮我们把域名解析为IP,然后再根据IP去访问网站。URL通常的组成:协议://ip地址:端口/项目名/资源简单示例示例代码packageprotocol;importjava.net.Ma
- Go语言中make和new的区别
神奇萝卜头
go语言golang
主要有两点1.返回值不同,make返回的是分配的内存空间本身。而new返回的是指向分配的内存空间的指针2.适用类型的不同make仅适用于map,channel,slice,而new适用于基本类型(如int、string、bool等)和指针类型
- Java 基础-30-单例设计模式:懒汉式与饿汉式
落榜程序员
java开发语言
在软件开发中,单例设计模式(SingletonDesignPattern)是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式通常用于管理共享资源(如数据库连接池、线程池等)或需要全局唯一实例的场景。本文将详细介绍两种常见的单例实现方式:懒汉式和饿汉式,并分析它们的优缺点及适用场景。1.单例模式的核心要素要实现单例模式,需要满足以下三个条件:私有化构造方法:防止外部通过n
- LeetCode 94. 二叉树的中序遍历
YGGP
程序设计算法leetcode算法
LeetCode94.二叉树的中序遍历这是一道非常基础的模版题,因此就不放出题目描述及输入输出示例和数据范围了。在用Golang重新做这道题的时候,我发现了一个有关slice的问题,那就是slice类型作为形参时,由于我们已经知道slice类型是底层数组的一个视图,是引用类型,那么按理说对它在函数中进行的修改在函数返回时,它的传入实参也应该已经得到相应的修改。但事实却与预期不符,如果直接以slic
- 从对象数组中筛选符合条件的值
爱编译也爱吃肉的喵
js学习笔记
遍历当前数组中的键拿到另一个数组中包含相同键的当前数组对象constarr=[1,2,3,4,5,6,7]constlist=[{openId:1,timelineId:1,showNo:1,uid:1},{openId:2,timelineId:1,showNo:1,uid:1},{openId:9,timelineId:1,showNo:1,uid:1},{openId:4,timelineI
- 手写GIS二三维地理空间几何计算GeoTools工具类
泰山AI
付费粉丝专栏javagisgeogeotools
简介为了丰富网络上javagis空间计算的技术文章,我费了不少功夫,看了第三方开源工具geotools包的源码,发现jts包里几何计算很多都是二维的计算,但是我需要的是三维的几何计算,于是把常用的几个计算封装成了一个工具类。目前工具类提供的方法有:polylineDivide折线等分方法,就是把线段分成若干相等的点,求出分割点的坐标。pointAlong根据某点占比线段的比例,求出该点的坐标。on
- JavaBean类
bilibia_1372
Javajava
文章目录标准的JavaBean类如何编写JavaBean类(附注册表单Java代码)标准的JavaBean类①类名:需要见名知义②成员变量:使用private修饰③提供至少两个构造方法(无参构造方法,带全部参数的构造方法)④成员方法:提供每一个成员变量对应的setXXX()和getXXX()方法如何编写JavaBean类(附注册表单Java代码)代码如下(示例):publicclassUser{/
- 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