- 【网络安全 | 渗透工具】IIS 短文件名枚举工具—shortscan安装使用教程
秋说
渗透工具web安全漏洞挖掘渗透工具
未经许可,不得转载。文章目录shortscan安装使用Shortutil工具shortscanShortScan是一种用于在MicrosoftIIS(InternetInformationServices)Web服务器上进行短文件名枚举的工具。该工具可以帮助攻击者利用IIS的文件名处理特性,通过预测性扫描枚举服务器上的文件和目录名称。背景:在早期的Windows文件系统(如FAT和NTFS)中,每
- Ubuntu22 CMake安装使用教程
小朱在敲代码
linuxc++c语言ubuntu
1.CMake简介CMake是一个跨平台的自动化构建系统工具,它被用来管理和控制软件构建过程。CMake使用一个称为CMakeLists.txt的文本文件来描述项目的构建过程。这个文件包含了项目所需的各种设置和指令,比如源文件的位置、编译选项、链接器选项等。CMake并不是一个编译器,而是一个前端工具,它可以生成不同构建系统的脚本,如UnixMakefiles、Ninjabuildfiles、MS
- Kettle发送邮件功能如何配置以实现自动化?
DengHua2203
邮件群发服务器邮件营销邮件接口Kettle发送邮件API接口触发式邮件
kettle发送邮件如何设置?Kettle配置发送邮件的方法?Kettle发送邮件功能能够帮助用户在数据处理过程中自动发送电子邮件,极大地提高了工作效率。AokSend将详细介绍如何配置Kettle发送邮件功能,以实现自动化操作。Kettle发送邮件:设置对象需要在Kettle中明确指定邮件的收件人和发件人地址。这样,当Kettle发送邮件时,系统就能准确无误地将邮件发送给指定的收件人。这一步骤确
- 2020-08-20 Kettle 无法正常启动 报错:does not exist, please create it ;Unable to create the database cache
迷光
缓存数据库经验分享
当我启动etl的时候出现报错找不到指定文件Lockacquired.Settingstartlevelto100E:\data-integration\system\karaf\deploydoesnotexist,pleasecreateit.于是我进行了百度根据文章我知道是缓存文件导致的这个问题缓存文件造成的错误,只需要找到..\pdi-ce-6.0.1.0-386\data-integrat
- JAVA基础 - HTTRACK安装使用教程
cloneme01
其他技术博文JAVA基础知识网页抓取
写在前面工作中经常需要查看在线文档,在没有网络的情况下如何查看在线文档呢?计划使用HTTRACK将文档克隆到本地,然后离线查看。CENTOS7安装A.HTTRACK的官网:https://www.httrack.comB.下载:wgethttps://download.httrack.com/cserv.php3?File=httrack.tar.gzC.按如下4条命令执行:#tar-xzvfht
- 第三章 可视化ETL平台——Kettle
okbin1991
etl数据仓库数据库
第三章可视化ETL平台——Kettle课程目标能够理解Kettle的主要用途能够搭建Kettle开发环境能够掌握Kettle输入组件的使用能够掌握Kettle输出组件的使用能够掌握Kettle转换组件的使用1.Kettle介绍1.1数据仓库数据仓库是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建的,对多样的业务数据进行筛选与整合。它为企业提供一定的BI能力,指导业务流程
- 从零到一建设数据中台 - 关键技术汇总
我码玄黄
数据中台数据挖掘数据分析大数据
一、数据中台关键技术汇总语言框架:Java、Maven、SpringBoot数据分布式采集:Flume、Sqoop、kettle数据分布式存储:HadoopHDFS离线批处理计算:MapReduce、Spark、Flink实时流式计算:Storm/SparkStreaming、Flink批处理消息队列:Kafka查询分析:Hbase、Hive、ClickHouse、Presto搜索引擎:Elast
- Redis 详细介绍及安装使用教程(含 C# 示例)
一个代码猎人
RedisASP.NETCoreredisc#数据库
Redis详细介绍及安装使用教程1.Redis介绍Redis(RemoteDictionaryServer)是一个开源的、基于内存的数据结构存储系统。它可以用作数据库、缓存和消息代理。Redis支持多种数据结构,如字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sortedsets)及范围查询、bitmaps、hyperloglogs和geospat
- Telegram安装使用教程
无情冰雨
先安装Telegram软件,苹果手机直接去AppStore商店搜索下载,安卓上不了谷歌商店的,可以去apkpure,或者百度网盘下载:https://pan.baidu.com/s/18PwP6fSzye34rfVoCoAy0Q代理地址:tg://proxyserver=45.77.97.94&port=400&secret=5788c35845a9d6c9e8a0db182c60765e代理地址
- MATLAB 编程风格指南
DeepLearning
Matlab学习matlab编程文档语言测试documentation
转载自:http://blog.csdn.net/chenyusiyuan/archive/2007/11/19/1892378.aspxMATLAB编程风格指南——RichardJohnsonVersion1.5,Oct.2002版权;Datatool所有翻译:Genial@USTC“Languageislikeacrackedkettleonwhichwebeattunedtodanceto,
- AutoRuns下载安装使用教程(图文教程)超详细
士别三日wyx
《网络安全快速入门》安全机器学习人工智能网络安全
「作者简介」:CSDNtop100、阿里云博客专家、华为云享专家、网络安全领域优质创作者「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》AutoRuns是微软提供的一款「启动项管理」工具,可以检查开机自动加载的所有程序,比系统自带的msconfig.exe更全。常在应急响应时查找启动项留下的后门。AutoRuns1、下载安装2、功能使用2.1、界面字段2.2、可疑项目2.3
- Process Explorer下载安装使用教程(图文教程)超详细
士别三日wyx
《网络安全快速入门》网络安全机器学习人工智能
「作者简介」:CSDNtop100、阿里云博客专家、华为云享专家、网络安全领域优质创作者「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》ProcessExplore是微软的一款「进程资源管理器」,比Windows系统自带的任务管理器更加详细。ProcessExplorer1、下载安装2、页面功能介绍2.1、展示树形结构2.2、显示列设置2.3、识别进程2.4、查看进程状态2
- 二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断)
天地风雷水火山泽
Kettlehiveclickhousekettle
一、目的需要用Kettle从Hive的DWS层库表数据增量同步到ClickHouse的ADS层库表中,不过这次的增量判断字段是day字段,不像之前的create_time字段因为day字段需要转换类型,而create_time字段字段不需要转换类型,因此两者的Kettle任务配置有所不同,也踩了一些坑,因此再写一篇博客整理一下,根据day字段判断的情况下kettle如何配置才能从Hive增量导入到
- ETL数据集成工具DataX、Kettle、ETLCloud特点对比
RestCloud
ETL数据集成dataxkettle
ETL数据集成工具对于数据仓库,大数据集成类应用,通常会采用ETL工具辅助完成。ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至的端的过程当前的很多应用也存在大量的ELT应用模式。常见的ETL工具或类ETL的数据集成同步工具很多,以下对开源的datax、Kettle、ETLClou
- ETL数据集成工具DataX、Kettle、ETLCloud特点对比
etlkettle
ETL数据集成工具对于数据仓库,大数据集成类应用,通常会采用ETL工具辅助完成。ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至的端的过程当前的很多应用也存在大量的ELT应用模式。常见的ETL工具或类ETL的数据集成同步工具很多,以下对开源的datax、Kettle、ETLClou
- SQLyog安装配置(注册码)连接MySQL
晴友读钟
装装装!数据库mysql数据库SQLyog
下载资源博主给你打包好了安装包,在网盘里,只有几Mb,防止你下载到钓鱼软件快说谢谢博主(然后心甘情愿的点个赞~)SQLyog.zip安装流程①下载好压缩包后并解压②打开文件夹,双击安装包③选择语言Chinese,你想练练外语的话选其它三个也可以④按下面的步骤,途径6个窗口,进行10步操作,完成SQLyog的安装使用教程1.注册第一次打开,肯定会让你注册,注册码博主也放在压缩包里面了2.连接MySQ
- Linux下删除n天前的文件2019-01-16
dataHunter
#!/bin/bashfind/opt/kettleLogs-mtime+10-typef-name"JOB_H-*.log"-execrm-rf{}\;find/opt/kettleLogs-mtime+30-typef-name"JOB_D-*.log"-execrm-rf{}\;
- Kettle发送邮箱并在正文中以表格形式展示内容[升级版]
GuangHui
在上一篇关于Kettle发送邮件并在正文中以表格形式展示内容的文章中,已经提到Kettle邮箱正文中支持HTML格式,要在邮箱正文中展示表格,那就行拼出HTML,然后扔到邮箱正文中.方法就是这么简单直接,上一篇文章中拼接HTML是在数据库SQL查询时完成的,而这次咱尝试使用Kettle支持的JavaScript脚本来完成.下面就结合一个小的需求案例,来说明一下.一.需求说明结算系统每天实时接收积分
- Kettle 导入优化指南
Kassadar
在“表输出”的“上一个步骤“的组件上右键选择”数据发送……”的方式为”Round-Robin”。在”表输出”组件上右键选择“改变开始复制的数量……”填入并发数量“{d}”。第一次时注意调大弹出框,默认是看不到”确定”按钮的。配置完成后,“表输出”组件左上角会有“x{d}”字样。配置目标”数据源”,在”选项”中配置”命令参数”。
- ubuntu22安装和部署Kettle8.2
在Ubuntu22上安装和部署Kettle8.2,你可以按照以下步骤进行:安装Java环境:Kettle需要Java环境来运行。在终端中输入以下命令安装Java:sudoaptupdatesudoaptinstallopenjdk-8-jdk安装完成后,你可以通过命令java-version来验证Java是否安装成功。下载并解压Kettle:从Pentaho官网或者其他可信赖的源下载Kettle8
- 时区设置引起的一系列问题
flexitime
linux
这几天都在一直研究如何使用metabase和Kettle的事,我在一台Centos上使用Docker安装了metabase是,并用Docker部署一个Postgresql作为数据库,在另一台Centos上安装了Kettle当我大概知道如何使用后,我把使用kettle把我们一个Oracle业务数据库连上,通过脚本采集数据到Postgresql上面,后来在写SQL的过程中发现PG上的数据与Oracle
- app逆向-android-studio安装使用教程
我是花臂不花
app逆向随笔androidstudioandroidide
AndroidStudio是谷歌推出的一个Android集成开发工具,基于IntelliJIDEA.类似EclipseADT,AndroidStudio提供了集成的Android开发工具用于开发和调试。android-studio下载地址:https://developer.android.com/studio/archiveandroid-studio安装教程:https://blog.csdn
- kettle--文本文件输出有空格解决方案
刀鋒偏冷
etl
在kettle文本文件输出时,不管如何设置字段类型和长度,导出的数据都会有空格,遇到这一问题,可以在文本文件输出控件中勾选这一项,即可解决这一问题。文本文件输出:
- sublime text3/4格式化json插件安装使用教程
Hero.Lin
工作技巧开发sublimetextmacos编辑器
工作原因,笔记本从windows换成了mac,好多之前熟悉的工作软件都不能用,得用mac最优的,文档编辑器也从notepad++换成了sublimeText3。那在sublime里面该怎么把数据进行json格式化呢,自然也是靠插件了。首先,安装插件管理器-Packagecontrol方法一:按Command+Shift+p打开命令搜索框,输入PC,点击图中条目安装,如下图:安装完成后,重启Subl
- kettle控件-复制记录到结果/ 从结果获取记录的使用
刀鋒偏冷
大数据etl
在数据采集过程中,遇到对方数据传送不及时的情况,导致数据漏采集,需要手工反复补采。为了解决这一问题,可以利用kettle的复制记录到结果/从结果获取记录控件。job的整个流程如下:设置变量:创建目录:get_time_id转换:此时的表输入:构建的的时间段的这些时间在表中不存在,即是没有采集到的数据文件。复制记录到结果:这时就是将表输入查询出来的时间复制到结果。load_file是一个job。在高
- 大数据系列—数据迁移(Sqoop,Flume,DataX)对比学习(stage3)
道-闇影
bigdata大数据sqoopflume
Boys,Grils,Friends!MynameisJinsuo.Shi.一个不正经的大数据开发工程师,目前从事在公司主要进行CDP平台的数据接入、数据的ETL、数据的融合与事件的展开工作。个人大数据技术栈:DataX,Sqoop,Hadoop,Hive,Spark,Flink,Hbase,Kafka,Kettle,Azkaban,Airflow,Tableau…个人在学习领域:Python,P
- scrcpy 的安装使用教程
糖心荷包蛋°
macosandroidandroidstudiokotlin摸鱼scrcpy
一、scrcpyscrcpy是一个开源的应用程序,允许您显示和控制连接到电脑的Android设备。它不需要在Android设备上进行根访问,但需要至少API21(Android5.0)。简而言之,手机和电脑不用下载任何应用,通过scrcpy可以直接把Android手机屏幕投屏到你的电脑上,是Android开发,办公摸鱼(bushi)的必备呀!window和mac都不需要下载,执行几行命令就搞定,非
- 【kettle】pentaho/data-integration 报错:org.apache.http.NoHttpResponseException: failed to respond
lisacumt
apache大数据
一、版本说明kettle版本:8.2.0.0-342【kettle】pentaho/data-integrationdebug查看日志方法二、报错说明:核心报错内容:org.apache.http.NoHttpResponseException:xxx.com:80failedtorespond执行到某一个请求时候报错,内容:2024/01/1815:24:06-获取json.0-Connecti
- 【kettle】pentaho/data-integration debug 查看日志方法
lisacumt
大数据
kettle版本:8.2.0.0-R修改console打印日志级别:修改root打印日志级别:使用SpoonDebug.bat,根据提示,依次输入nyn。cmd窗口即可打印详细日志。UI显示详细日志方法:
- 手机appium 手机抓包 模拟器 xposed
幻影七幻
pythonappiumxposed
1.appium安装使用教程b站:白夜黑羽python搜索手机模拟器链接appium2.手机安装xposedhttps://www.secshi.com/31267.htmlhttps://blog.csdn.net/xiangshangbashaonian/article/details/802306643.抓包工具charles和手机模拟器模拟器https://www.cnblogs.com/
- 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