- spark任务运行
冰火同学
Sparkspark大数据分布式
运行环境在这里插入代码片[root@hadoop000conf]#java-versionjavaversion"1.8.0_144"Java(TM)SERuntimeEnvironment(build1.8.0_144-b01)[root@hadoop000conf]#echo$JAVA_HOME/home/hadoop/app/jdk1.8.0_144[root@hadoop000conf]#
- Hadoop 的分布式缓存机制是如何实现的?如何在大规模集群中优化缓存性能?
晚夜微雨问海棠呀
分布式hadoop缓存
Hadoop的分布式缓存机制是一种用于在MapReduce任务中高效分发和访问文件的机制。通过分布式缓存,用户可以将小文件(如配置文件、字典文件等)分发到各个计算节点,从而提高任务的执行效率。分布式缓存的工作原理文件上传:用户将需要缓存的文件上传到HDFS(HadoopDistributedFileSystem)。文件路径可以在作业配置中指定。作业提交:在提交MapReduce作业时,用户可以通过
- 集群与分片:深入理解及应用实践
一休哥助手
架构系统架构
目录引言什么是集群?集群的定义集群的类型什么是分片?分片的定义分片的类型集群与分片的关系集群的应用场景负载均衡高可用性分片的应用场景大数据处理数据库分片集群与分片的架构设计系统架构设计数据存储设计案例分析Hadoop集群Elasticsearch分片性能优化策略集群性能优化分片性能优化挑战和解决方案总结参考资料引言在现代计算系统中,处理大规模数据和提高系统的可靠性已经成为了基础需求。集群和分片是两
- hive spark读取hive hbase外表报错分析和解决
spring208208
hivehivesparkhbase
问题现象使用Sparkshell操作hive关联Hbase的外表导致报错;hive使用tez引擎操作关联Hbase的外表时报错。问题1:使用tez或spark引擎,在hive查询时只要关联hbase的hive表就会有问题其他表正常。“org.apache.hadoop.hbase.client.RetriesExhaustedException:Can’tgetthelocations”问题2:s
- 创建型模式-原型模式
山中毒蘑菇
设计模式原型模式
原型模式是一种创建型模式,用于对已有的类进行克隆复制的操作。适用场景:1、当需要复制一些对象,同时又希望代码能独立于对象所属的具体类,可以使用原型模式。2、如果子类的区别仅在于其对象的初始化方式,那么可以使用该模式来减少子类的数量。创建方式:1、在需要复制的类中,增加clone的方法。如果有层次结构,每个子类中进行添加。2、原型类必须另行定义一个以该类对象为参数的构造函数。构造函数必须复制参数对象
- git父子仓库管理
CodeWielder
gitgit
git父子仓库管理git父仓库如何添加一个子仓库使用gitsubmodule方式添加子模块适用场景:需要独立维护子仓库,允许子仓库单独更新,且主仓库仅跟踪子仓库的特定版本1、添加子模块gitsubmoduleaddgitsubmoduleaddhttps://github.com/xxx/yyy.gitlibs/mylib此操作会克隆子仓库到本地路径2、提交主仓库的变更gitcommit-m'添加
- Java实现SQLite数据库克隆
行云斡
Java实战演练数据库javasqlite
Java实现SQLite数据库克隆题目要求过程整理分步实现完整代码改进空间转载请注明出处题目要求Writeaprogram(inJavaandusingJDBC)thatclonesaSQLitedatabaseandproducesatextual“backup”ofthecontents.ThistextualbackupshouldconsistofSQLstatementsthatwill
- LLaMA-Factory 安装linux部署&conda笔记
jayxlb2
llama笔记ai
第一行代码是我导入https://github.com/hiyouga/LLaMA-Factory.git到我的项目那里的,试过网上随便搜索过相同,估计没更新,安装了几次都运行失败,克隆了最新的就安装成功了。方法1没虚拟环境:不知道成不成功,我使用conda管理安装的gitclonehttps://gitcode.com/wengxiezhen2671/LLaMA-Factory.gitcdLLa
- 将Github项目克隆到本地
Wlq0415
Gitgithubgit
前言提示:前提是自己电脑已经安装Git。安装前往下载链接:https://git-scm.com/如下图:下载完毕,运行安装程序,无脑安装,一直next即可检查安装(Win+R打开命令提示符,输入以下命令),已经安装如下图:命令:git--version5.接下来克隆项目一、选择一个文件夹作为本地仓库进入文件夹,鼠标右键点击:GitBashHere,即可进入此界面如果没有此功能菜单:学习笔记:右键
- Ubuntu下配置安装Hadoop 2.2
weixin_30501857
大数据java运维
---恢复内容开始---这两天玩Hadoop,之前在我的Mac上配置了好长时间都没成功的Hadoop环境,今天想在win7虚拟机下的Ubuntu12.0464位机下配置,然后再建一个组群看一看。参考资料:1.InstallingsinglenodeHadoop2.2.0onUbuntu:http://bigdatahandler.com/hadoop-hdfs/installing-single-
- git常用命令
来吧来吧一起研究
gitgithub
gitclonehttp:www.git.com.cn........克隆git项目gitbranch查看分支gitbranch-r查看远程分支gitpushorigin--delete分支名删除远程分支tmpgitcheckout切换分支gitcheckout-b切换并创建分支gitcheckout-b分支名origin/分支名(如果远程分支已存在最好用此命令,在创建分支时会把远程分支最新代码一
- 2014 6月,比较老了
金金2019
AwesomeBigDataAcuratedlistofawesomebigdataframeworks,resourcesandotherawesomeness.Inspiredbyawesome-php,awesome-python,awesome-ruby,hadoopecosystemtable&big-data.Yourcontributionsarealwayswelcome!Awes
- Hive服务启动 之 metastore配置 和 hiveserver2
龍浮影
hive
Hive服务启动之metastore服务配置和hiveserver2 配置hive的时候都需要配置hive-site.xml,配置过程中可以选择hive直连或者使用metastore服务间接连接,那么他们之间有什么区别呢? 首先贴直连配置代码:javax.jdo.option.ConnectionURLjdbc:mysql://hadoop102:3306/metastore?useSSL=fal
- 5. clickhouse 单节点多实例部署
Toroidals
大数据组件安装部署教程clickhouse单节点多实例伪分布安装部署
环境说明:主机名:cmc01为例操作系统:centos7安装部署软件版本部署方式centos7zookeeperzookeeper-3.4.10伪分布式hadoophadoop-3.1.3伪分布式hivehive-3.1.3-bin伪分布式clickhouse21.11.10.1-2单节点多实例dolphinscheduler3.0.0单节点kettlepdi-ce-9.3.0.0单节点sqoop
- 在本地使用gitbash实现github项目的克隆、创建新分支、修改、合并、冲突解决
2401_84447149
程序员github
步骤3:创建新分支步骤4:修改分支文件步骤5:合并分支步骤6:多人协作,解决冲突1.创建分支,修改分支,下载分支2.模拟分支冲突同一个文件内容多人编辑文件被其他人删除步骤1:创建存储库========================================================================一个库通常用于举办单个项目。储存库可以包含文件夹和文件,图像,视频,电子
- 蓝易云 - HBase基础知识
蓝易云
hbase数据库大数据phppython人工智能
HBase是一个分布式、可伸缩、列式存储的NoSQL数据库,它建立在Hadoop的HDFS之上,提供高可靠性、高性能的数据存储和访问。以下是HBase的基础知识:数据模型:HBase以表的形式存储数据,每个表由行和列组成,可以动态添加列族。每行由唯一的行键标识,列族和列限定符(Qualifier)用于唯一标识列。架构:HBase采用分布式架构,数据被分散存储在多个RegionServer上,每个R
- 【Git 命令大全:从零开始,轻松玩转版本控制】
程序员远仔
gitgitsvngithubide编辑器
Git的基本使用和命令前言Git是目前最流行的分布式版本控制系统,广泛应用于软件开发中。掌握Git的基本使用和命令,对于开发者来说至关重要。本文将详细介绍Git的基本概念、常用命令以及一些实用技巧,帮助您快速上手Git。关键词Git,版本控制,分布式,代码管理,分支管理,合并,冲突解决,提交,推送,拉取,克隆,仓库,远程仓库,本地仓库,工作区,暂存区,版本回退,标签,钩子,协作开发,代码审查,持续
- 【git-hub项目:YOLOs-CPP】本地实现01:项目构建
认识祂
CV计算机视觉gitcppYOLOs-CPP模型部署人工智能
目录写在前面项目介绍最新发布说明Segmentation示例功能特点依赖项安装克隆代码仓库配置构建项目写在前面前面刚刚实现的系列文章:【Windows/C++/yolo开发部署01】【Windows/C++/yolo开发部署02】【Windows/C++/yolo开发部署03】【Windows/C++/yolo开发部署04】【Windows/C++/yolo开发部署05】必须用nividia显卡的
- github与git bash绑定问题
misty youth
githubgitbash
当输入
[email protected]时,返回ssh:connecttohostgithub.comport22:Connectionrefused,解决方法:使用HTTPS代替SSH如果你无法通过SSH连接,你可以改用HTTPS克隆仓库,而不是SSH。使用gitclonehttps://github.com/username/repository.git来替代使用SSH链接的方式。使用G
- 腾讯云大数据套件TBDS与阿里云大数据能力产品对比
奋力向前123
数据库java人工智能腾讯云大数据阿里云
前言博主在接触大数据方向研究的时候是在2016年,那时候正是大数据概念非常火热的一个时间段,最著名的Google的3篇论文。GoogleFS、MapReduce、BigTable,奠定了大数据框架产品的基础。Google文件系统,计算框架和存储框架。往后所有的大数据产品和过程域无一不是在三个模块的基础上进行搭建,迭代,完善。我们最开始使用的都是开源的产品,比如hadoop,HDSF,MAPRedu
- 孤独的vr免费虚拟女友游戏分享,苹果ios+安卓
cpa007
vr游戏
分享文件:手机女友模拟器链接:https://pan.xunlei.com/s/VOFCcvu0yF5B6KsYWx4pH-yLA1提取码:ijwd复制这段内容后打开迅雷,查看更方便《孤独的VR》(WeAreOne)是一款益智设计游戏,玩家可以通过克隆自己和玩时间循环来解决令人费解的谜题。游戏中,你将体验到零重力运动的自由和高能量的竞争,与朋友组队或与AI在Echo竞技场中发生冲突。软件功能克隆与
- Git常用命令总结
Best_Liu~
git
一、git常用命令1、gitfetch取回所有更新分支信息2、gitbranch-a查看所有分支信息3、gitbranch查看当前分支信息4、gitcheckout“分支名”切换分支5、gitinit初始化git仓库6、gitclone“克隆地址”拉取项目7、gitpull拉取代码8、gitstatus查看修改的文件gitstatus-s/gitstatus--short查看更加简洁的状态信息9、
- Git常用指令
香草加冰鸭
编码工具git源代码管理
Git常用指令1.仓库初始化与克隆2.提交与修改3.分支管理4.远程操作5.撤销与回退6.日志与历史7.其他实用命令注意事项Git是一个开源的分布式版本控制系统,可以有效、高效地处理从小型到大型项目的版本管理。Git的优势在于它的分布式架构,它允许用户在本地进行版本控制,同时也可以将更改推送到远程仓库。以下是常用的Git命令列表,按功能分类整理,方便快速查阅:1.仓库初始化与克隆gitinit初始
- DS缩写乱争:当小海豚撞上AI顶流,技术圈也逃不过“撞名”修罗场
数据库
DS缩写风云:从“小海豚”到“深度求索”的魔幻现实曾几何时,技术圈提到DS,人们脑海中浮现的是一只灵动的“小海豚”——ApacheDolphinScheduler(简称DS)。这个2019年诞生的分布式任务调度系统,凭借可视化DAG界面、多租户支持和对Hadoop/Spark生态的深度集成,一度是大数据工程师的“梦中情工”。然而,命运的齿轮在2025年初突然加速转动:杭州AI公司DeepSeek(
- 【04】RUST特性
憨憨2号
RUSTrust开发语言
文章目录隐藏shadowing所有权ownership堆区&栈区所有权规则变量&数据CopyTrait与DropTraitCopyTraitDropTrait移动克隆函数参数与返回值的所有权参数引用可变引用悬垂引用slice生命周期隐藏shadowing有点像同名覆盖letmutguess=String::new();letguess:u32=guss.trim().parse().expect(
- 1. hadoop 1.0.0 source code
小阿小火苗
hadoop
https://archive.apache.org/dist/hadoop/core/hadoop-1.0.0/
- hadoop 1.0 基本概念了解
fenggfa
hadoophadoop大数据mapreduce
hadoop基本概念了解common:hadoop组件公共常用工具类Avro:Avro是用于数据序列化的系统。不同机器之间数据交流的保障。MapReduce:MapReduce是一种编程模型,分为Map函数和Reduce函数。Map函数负责将输入数据转化为中间值,中间值再通过Reduce函数转化成输出数据HDFS:HDFS是一个分布式文件系统。通过一次写入,多次读出来实现。Chukwa:Chukw
- 深入理解Hadoop 1.0.0源码架构及组件实现
隔壁王医生
本文还有配套的精品资源,点击获取简介:Hadoop1.0.0作为大数据处理的开源框架,在业界有广泛应用。该版本包含核心分布式文件系统HDFS、MapReduce计算模型、Common工具库等关键组件。通过分析源码,可深入理解这些组件的设计和实现细节,包括数据复制、任务调度、容错机制以及系统配置管理。本课程旨在指导学生和开发者深入学习Hadoop的核心原理和实践应用,为其在大数据领域的进一步研究和开
- 如何在Java中实现高效的分布式计算框架:从Hadoop到Spark
省赚客app开发者
javahadoopspark
如何在Java中实现高效的分布式计算框架:从Hadoop到Spark大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨如何在Java中实现高效的分布式计算框架,重点介绍Hadoop和Spark这两个在大数据处理领域中广泛使用的技术。一、Hadoop:基础分布式计算框架Hadoop是一个开源的分布式计算框架,最早由Apache开发,旨在处理海量数据。它的核心
- 若依管理系统的环境部署(前后端未分离)
至爱2022
权限管理系统htmljavaspringbootintellijidea
若依管理系统源码下载若依个人网站http://ruoyi.vip/点击立即下载使用git命令将RuoYi项目代码从gitee上克隆到本地(使用克隆的好处是本地代码能跟gitee上代码同步更新)点击复制,在本地选择idea项目路径,右键单击输入命令:gitalonehttps://gitee.com/y_project/RuoYi.git按回车,等待代码克隆到本地如图所示,本地自动生成文件夹RuoY
- 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