- Hadoop相关面试题
努力的搬砖人.
java面试hadoop
以下是150道Hadoop面试题及其详细回答,涵盖了Hadoop的基础知识、HDFS、MapReduce、YARN、HBase、Hive、Sqoop、Flume、ZooKeeper等多个方面,每道题目都尽量详细且简单易懂:Hadoop基础概念类1.什么是Hadoop?Hadoop是一个由Apache基金会开发的开源分布式计算框架,主要用于处理和存储大规模数据集。它提供了高容错性和高扩展性的分布式存
- oracle cdc logminer与oracle xstream
24k小善
java大数据flink
以下为OracleCDC技术中XStream与LogMiner的核心差异解析,结合技术背景、实现原理、性能表现等维度进行系统化对比。一、技术背景与定位差异LogMiner:官方日志分析工具的非正式应用最初设计用于数据库管理员(DBA)审计和分析历史日志,非专为CDC场景优化[1][9][16]。通过解析归档日志(ArchiveLog)或在线日志(OnlineRedoLog)提取变更记录,采用轮询机
- csv转为utf8编码_中文的csv文件的编码改成utf8的方法
John Sheppard
csv转为utf8编码
直奔主题:把包含中文的csv文件的编码改成utf-8的方法:啰嗦几句:在用pandas读取hive导出的csv文件时,经常会遇到类似UnicodeDecodeError:'gbk'codeccan'tdecodebyte0xa3inposition12这样的问题,这种问题是因为导出的csv文件包含中文,且这些中文的编码不是gbk,直接用excel打开这些文件还会出现乱码,但用记事本打开这些csv则
- 企业信息化整体架构图
weixin_33937913
系统架构
今天无意间发现一张企业信息化的图,放在这里以后参考。CollaboraticeCommerce转载于:https://www.cnblogs.com/Masterpiece/archive/2004/12/29/83696.html
- Hive函数大全:从核心内置函数到自定义UDF实战指南(附详细案例与总结)
一个天蝎座 白勺 程序猿
大数据开发从入门到实战合集hivehadoop数据仓库
目录背景一、Hive函数分类与核心函数表1.内置函数分类2.用户自定义函数(UDF)分类二、常用函数详解与实战案例1.数学函数2.字符串函数3.窗口函数4.自定义UDF实战三、总结与优化建议1.核心总结2.性能优化建议3.常问问题背景Hive作为Hadoop生态中最常用的数据仓库工具,其强大的函数库是高效处理和分析海量数据的核心能力之一。Hive函数分为内置函数和用户自
- dcm4che
jamie_zhengmin
dcm4chearchivejboss工具服务器
dcm4che工具包DICOMtoolkitDICOM工具包dcm4chee归档服务器器IHE影像管理器和影像归档执行器(dcm4jbossarchive影像归档器,影像扫描检查和报告的管理)dcm4che2重架构dcm4che的重架构实现
- 将Hive数据导出为CSV和Excel格式的方法
翠绿探寻
hiveexcelhadoop编程
将Hive数据导出为CSV和Excel格式的方法在Hive中存储和处理大规模数据是一项常见的任务。有时候,我们需要将Hive中的数据导出为CSV或Excel格式,以便进行进一步的分析或与其他工具进行集成。本文将介绍如何使用编程的方式将Hive数据导出为CSV和Excel格式,并提供相应的源代码。Hive数据导出为CSV格式要将Hive数据导出为CSV格式,我们可以使用Hive的内置函数INSERT
- debian11安装MongoDB
韩搏
Linux基础mongodb数据库
debian11bit64安装MongoDB6.0安装必要的包sudoaptinstallgnupgcurl导入MongoDB公钥curl-fsSLhttps://www.mongodb.org/static/pgp/server-6.0.asc|sudogpg--dearmor-o/usr/share/keyrings/mongodb-archive-keyring.gpg创建MongoDB源列
- linux 安装anaconda与jupyter notebook配置
土豆土豆,我是洋芋
python
一、anaconda安装在官网或清华镜像下载anaconda在载前看一下自己的系统版本,下载对应的anaconda版本。在系统中输入:cat/proc/version,如下图所示##下载地址1)官网:https://www.anaconda.com/distribution/2)清华镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/安
- Hive 与 SparkSQL 的语法差异及性能对比
自然术算
Hivehivehadoop大数据spark
在大数据处理领域,Hive和SparkSQL都是极为重要的工具,它们为大规模数据的存储、查询和分析提供了高效的解决方案。虽然二者都致力于处理结构化数据,并且都采用了类似SQL的语法来方便用户进行操作,但在实际使用中,它们在语法细节和性能表现上存在诸多差异。了解这些差异,对于开发者根据具体业务场景选择合适的工具至关重要。语法差异数据定义语言(DDL)表创建语法Hive:在Hive中创建表时,需要详细
- Oracle V$SESSION详解
雨的遐想
oracle数据库
V$SESSION是SYS用户下面对于SYS.V_$SESSION视图的同义词。在本视图中,每一个连接到数据库实例中的session都拥有一条记录。包括用户session及后台进程如DBWR,LGWR,arcchiver等等。1.V$SESSION中的常用列V$SESSION是基础信息视图,用于找寻用户SID或SADDR,及检查用户的动态:(1)SQL_HASH_VALUE,SQL_ADDRESS
- Spark任务读取hive表数据导入es
小小小小小小小小小小码农
hiveelasticsearchsparkjava
使用elasticsearch-hadoop将hive表数据导入es,超级简单1.引入pomorg.elasticsearchelasticsearch-hadoop9.0.0-SNAPSHOT2.创建sparkconf//spark参数设置SparkConfsparkConf=newSparkConf();//要写入的索引sparkConf.set("es.resource","");//es集
- Redis 安装详细教程(小白版)
小小鸭程序员
springjavaAI编程springcloudredis
一、Windows系统安装Redis方法1:直接安装(推荐新手)下载RedisforWindows访问微软维护的Redis版本:https://github.com/microsoftarchive/redis/releases下载Redis-x64-3.2.100.msi(或最新版本)安装包。安装Redis双击下载的.msi文件点击下一步,勾选“AddRedisinstallationfolde
- Hive SQL 精进系列:REGEXP_REPLACE 函数的用法
进一步有进一步的欢喜
HiveSQL精进系列hivesqlhadoop
目录一、引言二、REGEXP_REPLACE函数基础2.1基本语法参数详解2.2简单示例三、REGEXP_REPLACE函数的应用场景3.1去除特殊字符3.2统一字符串格式四、REGEXP_REPLACE与REPLACE函数的对比4.1功能差异4.2适用场景五、REGEXP_REPLACE与REGEXP函数的对比5.1功能差异5.2适用场景六、总结一、引言字符串处理是数据处理中的常见需求,Hive
- Hive SQL 精进系列:SUBSTR 函数的多样用法
进一步有进一步的欢喜
HiveSQL精进系列hivesqlhadoop
目录一、引言二、SUBSTR函数基础介绍2.1基本语法2.2参数详解2.3简单示例三、SUBSTR函数常见应用场景3.1提取日期中的年份、月份或日期3.2隐藏部分敏感信息四、SUBSTR函数高级用法4.1结合条件判断动态截取4.2处理复杂字符串模式五、总结一、引言SUBSTR函数是HiveSQL中一个用于字符串截取的重要函数,在处理文本数据时发挥着关键作用。本文将全面且深入地介绍HiveSQL中S
- Hive----Hive进阶操作(三) HIVE 特殊分隔符处理
XiaodunLP
Hive
HIVE特殊分隔符处理补充:hive读取数据的机制:1、首先用InputFormat的一个具体实现类读入文件数据,返回一条一条的记录(可以是行,或者是你逻辑中的“行”)2、然后利用SerDe的一个具体实现类,对上面返回的一条一条的记录进行字段切割Hive对文件中字段的分隔符默认情况下只支持单字节分隔符,如果数据文件中的分隔符是多字符的,如下所示:01||huangbo02||xuzheng03||
- hive-进阶版-1
数据牧马人
hivehadoop数据仓库
第6章hive内部表与外部表的区别Hive是一个基于Hadoop的数据仓库工具,用于对大规模数据集进行数据存储、查询和分析。Hive支持内部表(ManagedTable)和外部表(ExternalTable)两种表类型,它们在数据存储、管理方式和生命周期等方面存在显著区别。以下是内部表和外部表的主要区别:1.数据存储位置内部表:数据存储在Hive的默认存储目录下,通常位于HDFS(HadoopDi
- NVIDIA下载老版本驱动/CUDA/Video Codec SDK的链接,以及一些解码参数说明
landihao
linux
NVIDIA下载老版本驱动/CUDA/VideoCodecSDK的链接从别的网站抄过来的CUDA:https://developer.nvidia.com/cuda-toolkit-archive老驱动:https://www.nvidia.cn/geforce/drivers/VideoCodecSDKhttps://developer.nvidia.com/video-codec-sdk-ar
- hive split 函数转义问题
进一步有进一步的欢喜
HiveSQL精进系列大数据
语法split(strstring,regexstring)--使用regex分割字符串str基本用法selectsplit('a,b,c,d',',')fromtemp_cwh_test;--分割--结果为数组>["a","b","c","d"]截取字符串中某个值selectsplit('a,b,c,d',',')[0]fromtemp_cwh_test;--提取第1个值>a特殊字符的处理针对特
- Hive SQL 精进系列:解锁 Hive SQL 中 KeyValue 函数的强大功能
进一步有进一步的欢喜
HiveSQL精进系列hivesqlhadoop
目录一、引言二、KeyValue函数基础2.1语法结构详解形式一:`keyvalue(string,[string,string,]string)`形式二:`keyvalue(string,string)`2.2参数详解2.3返回值规则三、丰富的应用场景3.1解析学生成绩信息3.2处理员工考勤数据3.3分析网站访问参数3.4提取设备配置信息四、使用注意事项4.1分隔符的准确性4.2空值处理4.3多
- 大数据手册(Spark)--Spark安装配置
WilenWu
数据分析(DataAnalysis)大数据spark分布式
本文默认在zsh终端安装配置,若使用bash终端,环境变量的配置文件相应变化。若安装包下载缓慢,可复制链接到迅雷下载,亲测极速~准备工作Spark的安装过程较为简单,在已安装好Hadoop的前提下,经过简单配置即可使用。假设已经安装好了hadoop(伪分布式)和hive,环境变量如下JAVA_HOME=/usr/opt/jdkHADOOP_HOME=/usr/local/hadoopHIVE_HO
- 关于stable diffusion的lora训练在linux远程工作站的部署
回天一梦
stablediffusionpython经验分享
在学校Arc中部署loratraining,一大问题就是依赖缺失和冲突。可以利用miniconda或者anaconda建立虚拟环境来解决。安装anaconda或者miniconda(官网上也有教程):wgethttps://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.shchmod+xAnaconda3-5.3.0-Linux-x8
- Hive SQL 精进系列:一行变多行的 LATERAL VIEW EXPLODE
进一步有进一步的欢喜
HiveSQL精进系列hivesqlhadoop
目录一、引言二、`LATERALVIEWEXPLODE`概述2.1基本概念2.2单词解析2.2.1`LATERAL`2.2.2`VIEW`2.2.3`EXPLODE`三、语法详解3.1基本语法结构3.2完整语法示例(针对映射情况)四、使用场景4.1数组数据展开4.2映射数据展开五、案例分析5.1展开数组示例5.1.1数据准备5.1.2使用`LATERALVIEWEXPLODE`展开数组5.1.3结
- sql获取某列出现频次最多的值_业务硬核SQL集锦
金渡江
sql获取某列出现频次最多的值
戳上方蓝字关注我这两年学会了跑sql,当时有很多同学帮助我精进了这个技能,现在也写成一个小教程,反馈给大家。适用对象:工作中能接触到sql查询平台的业务同学(例如有数据查询权限的产品与运营同学)适用场景:查询hive&mysql上的数据文档优势:比起各类从零起步的教程教材,理解门槛低,有效信息密度大,可以覆盖高频业务场景。文末有一些常见的小技巧,希望帮助同学们提升工作效率。SQL的基础结构:做一个
- Hive SQL 精进系列: JSON_TUPLE 快速提取多键值
进一步有进一步的欢喜
HiveSQL精进系列hivesqlhadoop
目录一、引言二、json_tuple函数基础2.1基本语法参数解释返回值简单示例三、应用场景3.1数据提取与分析3.2数据集成与转换3.3复杂JSON数据处理四、json_tuple、get_json_object和from_json的对比4.1功能特点4.2语法和使用复杂度4.3性能表现4.4示例对比使用json_tuple使用get_json_object使用from_json五、使用注意事项
- hive sql报错
进一步有进一步的欢喜
大数据HiveSQL精进系列
1.hivesql报错FAILED:ParseExceptionline22:0cannotrecognizeinputnear''''''insubquerysource2.解决select*from(select...fromtable_1where...)table_outer嵌套的内层的表一定要有别名,也就是示例代码中的表名table_outer。
- HIVE开窗函数
Cciccd
sqlhive
ETL,SQL面试高频考点——HIVE开窗函数(基础篇)目录标题ETL,SQL面试高频考点——HIVE开窗函数(基础篇)一,窗口函数介绍二,开窗函数三,分析函数分类1,排序分析函数:实列解析对比总结2.聚合分析函数3.用spark自定义HIVE用户自定义函数后续更新中~一,窗口函数介绍窗口函数,也叫OLAP函数(OnlineAnallyticalProcessing,联机分析处理),可以对数据库数
- hive开窗函数总结
weixin_46134848
大数据hivemysql
文章目录概要整体架构流程示例1示例2小结概要hive开窗函数总结整体架构流程1.窗口函数的基本用法函数名()over()over关键字来指定函数执行的范围,包含三个分析子句:分组(partitionby)子句,排序(orderby)子句,窗口(rows)子句函数名(字段名)over(partitionbyorderbyrowsbetween)窗口大小可以通过rowsbetween…and…来限定,
- Hive MR & Spark & Yarn参数优化总结
大数据侠客
hive相关问题汇总及解决hivesparkmryarn参数优化
一、hivemr参数调优:sethive.optimize.ppd=true;--开启谓词下推。--动态分区参数sethive.exec.mode.local.auto=true;sethive.exec.dynamic.partition.mode=nonstrict;--默认是strict,表示至少有一个静态分区,nonstri
- hive 中优化性能的一些方法
闯闯桑
hivehadoop数据仓库
在ApacheHive中,性能优化是一个重要的课题,尤其是在处理大规模数据时。通过合理的优化方法,可以显著提升查询速度和资源利用率。以下是一些常见的Hive性能优化方法:1.数据存储优化1.1使用列式存储格式推荐格式:ORC和Parquet。优点:列式存储格式具有更高的压缩率和查询性能。支持谓词下推(PredicatePushdown)和列裁剪(ColumnPruning)。示例:CREATETA
- 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