- web服务器请求资源的过程
by.by
linux服务器前端网络
web服务器请求资源的过程文章目录web服务器请求资源的过程WEB服务请求步骤1.建立连接2.Web访问响应模型(WebI/O)3.处理请求4.访问资源5.构建响应报文6.发送响应报文7.记录日志WEB服务请求步骤客户端发送一个请求到Web服务器,请求首先是到网卡网卡将请求交由内核空间的内核处理,其实就是拆包了,发现请求的是80端口内核便将请求发给了在用户空间的Web服务器,Web服务器解包发现客
- sap BI webi报表技巧:用户指定(自定义)排序的列
财务老王
WEBI报表
原创文章,转载请注明地址:http://blog.csdn.net/blueskyandwater业务需求:webi报表用户在查询模式,指定特定的列排序;webi报表在查询模式不能对列排序的。解决方法:1.新建一个维度变量inputoptions=""2.新建一个控件(InputControl),关联到变量《inputoptions》,输入值ABC3.新建一个维度变量=If[inputoptins
- spingboot+mybatis 多数据源配置,有坑请绕行
秋天的铁工匠
springboot
spingboot+mybatis三个数据源配置,有坑请绕行首先我们需要注意项目的搭建jdk1.8springboot项目架构mysql和mybatis的依赖按照网上的一些配置我和同事进行多方优化下面是项目的主要架构主要代码首先要将springboot自带的DataSourceAutoConfiguration禁掉packagecom.webi.speakhimidplan;importorg.s
- 在Webi报表中实现超链接
xiaolitnt
有两种方式,一种打开一个完整的页面,另一种是打开一个没有地址栏、菜单栏的页面。(一)打开一个完整的页面=""+[指标名称]+""(二)打开一个没有地址栏菜单栏的页面。在这里,需要对链接中的中文进行编码转换,否则会报参数不正确的错。=""+[指标名称]+""
- Web服务前篇 简单的http请求过程
carl_mylife
一次完整的http请求处理过程:(1)建立或处理连接:接收请求或拒绝请求(2)接收请求:接收来自于网络的请求报文中对某资源的一次请求的过程并发访问响应模型(WebI/O):1.单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个;多个请求被串行响应;2.多进程I/O结构:并行启动多个进程,每个进程响应一个请求;3.复用I/O结构:一个进程响应n个请求;多线程模型:一个进程生成N个线程,每
- Http基础信息
Jaygan
Http基础信息命令类
Http基础信息1、完整的http请求过程1.1建立或处理连接:接收请求或拒绝请求1.2接收请求接收来自于网络的请求报文对某资源的一次请求的过程;并发访问响应模型(WebI/O);单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个:多个请求被串行响应;多线程I/O结构:并行启动多个进程,每个进程响应一个请求;复用I/O结构:一个进程响应N个请求;多线程模型:一个进程生成N个线程,每个线
- My First Lesson in Webi (May 21, 2016)
biorhythmliu
IfeltwonderfulaftertakingthefirstlessoninWebi.Theteacher,calledJammy,wasatypicalAsian,maybefromHongkong.Whenhecameintotheclassroom,Iwassurprised.So,atthebeginningofthelesson,Idirectlyaskedhimwherehewa
- WebIOPi安装使用
高巨龙
一、局域网访问webiopi配置1、必须安装python开发版,即python-dev,不然后面很多软件都会安装不成功,提示目录无法找到之类的。sudoapt-getinstallpython-dev2、安装python的GPIO模块pip3installRPi.GPIO3、安装webopioGoogleCode项目地址:[https://sourceforge.net/projects/webi
- G237践行-90天目标记录20190512
周仲云
90天践行目标:20190509-0809晨跑30次,每月10次;每天英语1小时,webi完成一个level;去四个国家旅行;0512周日今天开贴,保持精进,记录目标的进度1、这两天已经调整了好了生物钟,5点起床,也不觉得困,中午吃完饭,睡半小时-一小时,本月晨跑10/32、英语1小时,完成不够理想,今天要带女儿试听课,在外面等她的时候,学了一会,还是要在高能的时间做重要的事情3、办理好西班牙的签
- Android代码混淆
故事依细腻
常用混淆规则#不混淆某个类-keeppublicclasscom.webi.demo.TestClass{*;}#不混淆某个包的所有类-keepclasscom.webi.demo.**{*;}#不混淆某个类的子类-keeppublicclass*extendscom.webi.demo.TestClass{*;}#不混淆某个接口的实现-keepclass*implementscom.webi.d
- Jerry的通过CDS view + Smart Template 开发Fiori应用的blog合集
JerryWang_汪子熙
S4/HANA里有一个新的UI框架叫做Smarttemplate,配合ABAP后台的CDSview技术,能够让developer以Metadatadriven的方式来开发Fiori应用,这种开发方式几乎不需要或者只需要很少量的JavaScript开发。下面是我写在SCN上的相关13篇blog的链接:StepbySteptocreateCDSviewthroughSmartTemplate+WebI
- HTTP原理
尛尛大尹
Paste_Image.png(1)建立连接:接收或拒绝连接请求(2)接收请求:接收客户端请求报文中对某资源的一次请求的过程Web访问响应模型(WebI/O)(1)单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应(如果访问量小,可以用这种)(2)多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求(缺点:进程消耗资源比较多,成本比较高,一个进程相当于建立
- HTTP 之 一次完整的http请求处理过程
ghbsunny
http请求处理过程如下.1、建立连接:接收或拒绝连接请求,通过三次握手建立.2、接收请求:接收客户端请求报文中对某资源的一次请求的过程.Web访问响应模型(WebI/O)单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应必须处理完前面的请求后才能处理后面的请求,是串行处理的多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求多进程访问比较耗资源,占用的内存
- 使用jdk wsimport 生成 BO Web Intelligence 发布的 webservice 客户端代码小记
damichn
提到webservice想必做过的人感觉应该不是很难吧,但是对于没接触过的初学者来说wsdl/soap这些概念肯定是一头雾水,再加上结合WEBI(这里指WebIntelligence)发布出来的结构比较复杂,刚开始看到的人肯定觉得更不知从何下手。接下来我就分享一下我是如何通过最简单的方法实现调用WEBI发布的webservice接口。工具准备jdk1.6及以上均可。已发布的wsdl文件地址过程详解
- Webi Learning Journal May 20, 2016
biorhythmliu
Today,it'smyfirsttimetohavetheSalonlessoninWEBI.ThefoeignteacherisOK.HejustguidedustospeakEnglish.Anhourpassedquickly.IwasreallyimpressedbyEnglishlearners.OneofthemisawomanworkinginHRdepartment.Shehas
- 攻防世界(XCTF)WEB(进阶区)write up(三)
清心_3389
挑着做一些好玩的ctf题FlatScienceweb2unserialize3upload1wtf.sh-150ics-04webi-got-id-200FlatScience扫出来的login.php查看源码,发现参数debug,传参?debug=1,得到如下代码:query("SELECTid,namefromUserswherename='".$user."'andpassword='".s
- SpringBoot swagger2的使用
@一头雾水@
Java后端swagger接口SpringBootSpringBoot
1、新建项目。2、pom的配置。org.springframework.bootspring-boot-starter-parent2.1.3.RELEASEUTF-81.82.1.95.1.471.2.372.9.2org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-webi
- BI变更/开发、测试与发布升级
kernal77
SAPBIonHANA
变更/开发:1、变更前先从生产机同步webi和universe到测试机,并更改连接,去掉强制权限过滤(如果有)。2、变更前先从测试机导出数据,用于变更后测试机全字段比对。3、在开发完成后,检查计算视图是否有重复数据(havingcount(*)>1)。发布前测试:1、在测试机将变更后数据导出和变更前导出的数据做全字段比对。发布前准备:1、发布前全备份HANA数据库。2、发布前备份要修改的webi和
- webi笔记
kernal77
SAPBIonHANA
如何将表格按某维度分类汇总1、表格按维度拆分,增加合计行,设置“显示拆分头”,此时原整个表的表头会隐藏,每个分类里会显示分类表头2、设置整个表格“显示表头”,“在每一页显示表头”,让整表表头出来3、删除分类里的分类表头那一行4、奇怪的问题:webi中过滤器条件中包含查询2的结果,且先或再与,如果查询1没有过滤条件或者全部是可选条件且没选,会报错,解决方法:查询1加上必选过滤条件5、webi点编辑后
- IDT笔记
kernal77
SAPBIonHANA
1、添加HANA视图时一律采用派生表形式,方便以后添加输入参数或修改过滤条件,更重要的是可进行复杂的数据权限控制。2、由派生表产生业务层(blx)文件时,会把全部列默认成维度,需要手动将数值列改为度量,注意度量需要用聚合函数,并和HANA模型中的聚合函数保持一致,否则在Webi中易碰到未知错误。3、universe中一定要去掉“查询选项”页签中的“结果集大小限制为5000行”的勾选,否则查询数据是
- http请求报文
wx57cc371b854c2
httpd
一,一次完整的http连接1,建立连接:接收或拒绝连接请求2,接收请求:接收客户端请求报文中对某资源的一次请求的过程Web访问响应模型(WebI/O)单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求复用I/O结构:启动一个进程,同时响应N个连接请求实现方法:多线程模型和事件驱动多线程模型:一个进程生成N个
- httpd学习:http基础(续)
echoroot
httphttpdwapachelinux
一次完整的http请求处理过程:(1)建立或处理连接:接收请求或拒绝请求(2)接收请求:接收来自于网络的请求报文中对某资源的一次请求的过程;并发访问响应模型(WebI/O):单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个;多个请求被串行响应;多进程I/O结构:并行启动多个进程,每个进程响应一个请求;复用I/O结构:一个进程响应n个请求;多线程模型:一个进程生成N个线程,每个线程响应
- CSDN学霸课表——学习NodeJS第一天
CSDN官方博客
CSDN学院前端课堂
《学习NodeJS第一天:node.js引言》Node.js是资深C程序员RyanDahl(http://four.livejournal.com/)的作品,依据Google著名的开源JavaScript引擎V8来进行二次开发的WebI/O服务器(http://nodejs.org/)。V8本身是非常快的JavaScript引擎,处理JS执行运行的速度非常高。相关测试表明,FireFox、Oper
- CSDN学霸课表——学习NodeJS第一天
blogdevteam
JavaScript服务器C语言nodejscsdn
《学习NodeJS第一天:node.js引言》Node.js是资深C程序员RyanDahl(http://four.livejournal.com/)的作品,依据Google著名的开源JavaScript引擎V8来进行二次开发的WebI/O服务器(http://nodejs.org/)。V8本身是非常快的JavaScript引擎,处理JS执行运行的速度非常高。相关测试表明,FireFox、Oper
- 关于PHPstorm的字体样式的修改与添加
ITMan_KB
PHP
最近找到一款主题,和vim很相似,用起来也倍爽!.图上分辨是PHPcss和js代码的风格样式。下面是关于资源包的下载地址:http://pan.baidu.com/s/1jIoJmRk,解压文件,然后将里面的Monokai_Sublime.xml拷贝到:C:\Users\Administrator\.WebIde100\config\colors,这个路径中的.WebIde100也可能是.WebI
- 如何地道表达:情感和态度
情感
原文:http://webi.tom.com/2006-11-08/000Q/24764301.html
1.犹豫不定be of two minds
我打算买辆汽车,可心里一直犹豫不定,不知道买那个牌子的好。
I’m thinking of buying a car, but I’m still of two minds .I can hardly decide as to which br
- BW知识问答锦集2
BW
PM面试分为BW、BO两部分,根据顾问的简历和应聘的岗位所侧重的问题不同。
BW包括基础知识、增量、增强、LO抽取、数据源。
BO包括 CR、CR、WEBI、UNI。
一、 基础知识 技术面试
1、 BW中的数据对象有Info Object,Cube,DSO,Info set,Multi-provider,visual provider. 其中IO,Cube,DSO是实际的物理存储对象,I
- AIX下Webi出现30270错误的解决
WebI
开发环境:AIX5.3、Oralce10g、BOE XI R2
基于Universe开发报表,进行水晶报表开发时,一些正常。
但是开发Webi报表时,出现如下错误提示:
(选取好某Universe,拖好字段后,运行查询时出现)
而装在Windows平台的版本却没有出现问题。
问题的解决方法:
启用ccm的跟踪功能:ccm.config
- Webi上的占比计算
WebI
在Webi中常见的占比计算场景如下图,此类计算较为简单,使用公式:=Percentage([人数]) 即可
而在实际项目中会时不时出现一些特别的占比计算需求,如下图
这类占比若是直接使用公式:=Percentage([人数]) ,出现数据如图,并不能满足需求
这里介绍两种计算这类占比的公式:
1.公式:=[人数]/(sum([人数])in [组织])
此公式的关键是理解分母的
- 解决:Ubuntu使用wubi安装时联网下载,不能正常安装的问题
jerval
ubuntu
今天在使用wubi安装ubuntukylin-14.04-desktop-amd64.iso时,老是联网下载,然后就是长时间等待进度基本趋于零。如果断开网络就会出错,如下: 之前也经常安装Ubuntu,DeepIn等Linux系统,每次都正常着,但这次却出现了这个毛病,虽然说传言官方不推荐webi安装,但既然官方仍然把wubi放在里面了,证明还是可以安装的啊。带个这个信心,我认真又尝试了很多次,
- ASM系列六 利用TreeApi 添加和移除类成员
lijingyao8206
jvm动态代理ASM字节码技术TreeAPI
同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。
package asm.core;
/**
* Created by yunshen.ljy on 2015/6/
- Springmvc-权限设计
bee1314
springWebjsp
万丈高楼平地起。
权限管理对于管理系统而言已经是标配中的标配了吧,对于我等俗人更是不能免俗。同时就目前的项目状况而言,我们还不需要那么高大上的开源的解决方案,如Spring Security,Shiro。小伙伴一致决定我们还是从基本的功能迭代起来吧。
目标:
1.实现权限的管理(CRUD)
2.实现部门管理 (CRUD)
3.实现人员的管理 (CRUD)
4.实现部门和权限
- 算法竞赛入门经典(第二版)第2章习题
CrazyMizzz
c算法
2.4.1 输出技巧
#include <stdio.h>
int
main()
{
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
printf("%d\n", i);
return 0;
}
习题2-2 水仙花数(daffodil
- struts2中jsp自动跳转到Action
麦田的设计者
jspwebxmlstruts2自动跳转
1、在struts2的开发中,经常需要用户点击网页后就直接跳转到一个Action,执行Action里面的方法,利用mvc分层思想执行相应操作在界面上得到动态数据。毕竟用户不可能在地址栏里输入一个Action(不是专业人士)
2、<jsp:forward page="xxx.action" /> ,这个标签可以实现跳转,page的路径是相对地址,不同与jsp和j
- php 操作webservice实例
IT独行者
PHPwebservice
首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11 php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;
OK 现在我们来体验webservice
//server端 serve
- Windows下使用Vagrant安装linux系统
_wy_
windowsvagrant
准备工作:
下载安装 VirtualBox :https://www.virtualbox.org/
下载安装 Vagrant :http://www.vagrantup.com/
下载需要使用的 box :
官方提供的范例:http://files.vagrantup.com/precise32.box
还可以在 http://www.vagrantbox.es/
- 更改linux的文件拥有者及用户组(chown和chgrp)
无量
clinuxchgrpchown
本文(转)
http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/
http://ydlmlh.iteye.com/blog/1435157
一、基本使用:
使用chown命令可以修改文件或目录所属的用户:
命令
- linux下抓包工具
矮蛋蛋
linux
原文地址:
http://blog.chinaunix.net/uid-23670869-id-2610683.html
tcpdump -nn -vv -X udp port 8888
上面命令是抓取udp包、端口为8888
netstat -tln 命令是用来查看linux的端口使用情况
13 . 列出所有的网络连接
lsof -i
14. 列出所有tcp 网络连接信息
l
- 我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”
alafqq
mybatis
最近看了
每一个用mybatis的男纸,你伤不起
原文地址 :http://www.iteye.com/topic/1073938
发表一下个人看法。欢迎大神拍砖;
个人一直使用的是Ibatis框架,公司对其进行过小小的改良;
最近换了公司,要使用新的框架。听说mybatis不错;就对其进行了部分的研究;
发现多了一个mapper层;个人感觉就是个dao;
- 解决java数据交换之谜
百合不是茶
数据交换
交换两个数字的方法有以下三种 ,其中第一种最常用
/*
输出最小的一个数
*/
public class jiaohuan1 {
public static void main(String[] args) {
int a =4;
int b = 3;
if(a<b){
// 第一种交换方式
int tmep =
- 渐变显示
bijian1013
JavaScript
<style type="text/css">
#wxf {
FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#97FF98);
height: 25px;
}
</style>
- 探索JUnit4扩展:断言语法assertThat
bijian1013
java单元测试assertThat
一.概述
JUnit 设计的目的就是有效地抓住编程人员写代码的意图,然后快速检查他们的代码是否与他们的意图相匹配。 JUnit 发展至今,版本不停的翻新,但是所有版本都一致致力于解决一个问题,那就是如何发现编程人员的代码意图,并且如何使得编程人员更加容易地表达他们的代码意图。JUnit 4.4 也是为了如何能够
- 【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}
bit1129
gson
如何把如下简单的JSON字符串反序列化为Java的POJO对象?
{"data":{"IM":["MSN","QQ","Gtalk"]}}
下面的POJO类Model无法完成正确的解析:
import com.google.gson.Gson;
- 【Kafka九】Kafka High Level API vs. Low Level API
bit1129
kafka
1. Kafka提供了两种Consumer API
High Level Consumer API
Low Level Consumer API(Kafka诡异的称之为Simple Consumer API,实际上非常复杂)
在选用哪种Consumer API时,首先要弄清楚这两种API的工作原理,能做什么不能做什么,能做的话怎么做的以及用的时候,有哪些可能的问题
- 在nginx中集成lua脚本:添加自定义Http头,封IP等
ronin47
nginx lua
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。
location /{
- java-归并排序
bylijinnan
java
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] a={20,1,3,8,5,9,4,25};
mergeSort(a,0,a.length-1);
System.out.println(Arrays.to
- Netty源码学习-CompositeChannelBuffer
bylijinnan
javanetty
CompositeChannelBuffer体现了Netty的“Transparent Zero Copy”
查看API(
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description)
可以看到,所谓“Transparent Zero Copy”是通
- Android中给Activity添加返回键
hotsunshine
Activity
// this need android:minSdkVersion="11"
getActionBar().setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- 静态页面传参
ctrain
静态
$(document).ready(function () {
var request = {
QueryString :
function (val) {
var uri = window.location.search;
var re = new RegExp("" + val + "=([^&?]*)", &
- Windows中查找某个目录下的所有文件中包含某个字符串的命令
daizj
windows查找某个目录下的所有文件包含某个字符串
findstr可以完成这个工作。
[html]
view plain
copy
>findstr /s /i "string" *.*
上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string&qu
- 改善程序代码质量的一些技巧
dcj3sjt126com
编程PHP重构
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧: 尽量保持方法简短 尽管很多人都遵
- SharedPreferences对数据的存储
dcj3sjt126com
SharedPreferences简介: &nbs
- linux复习笔记之bash shell (2) bash基础
eksliang
bashbash shell
转载请出自出处:
http://eksliang.iteye.com/blog/2104329
1.影响显示结果的语系变量(locale)
1.1locale这个命令就是查看当前系统支持多少种语系,命令使用如下:
[root@localhost shell]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
- Android零碎知识总结
gqdy365
android
1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。
所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高
- HoverTree.Model.ArticleSelect类的作用
hvt
Web.netC#hovertreeasp.net
ArticleSelect类在命名空间HoverTree.Model中可以认为是文章查询条件类,用于存放查询文章时的条件,例如HvtId就是文章的id。HvtIsShow就是文章的显示属性,当为-1是,该条件不产生作用,当为0时,查询不公开显示的文章,当为1时查询公开显示的文章。HvtIsHome则为是否在首页显示。HoverTree系统源码完全开放,开发环境为Visual Studio 2013
- PHP 判断是否使用代理 PHP Proxy Detector
天梯梦
proxy
1. php 类
I found this class looking for something else actually but I remembered I needed some while ago something similar and I never found one. I'm sure it will help a lot of developers who try to
- apache的math库中的回归——regression(翻译)
lvdccyb
Mathapache
这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。
多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。
数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。
基本覆盖了:线代,统计,矩阵,
最优化理论
曲线拟合
常微分方程
遗传算法(GA),
还有3维的运算。。。
- 基础数据结构和算法十三:Undirected Graphs (2)
sunwinner
Algorithm
Design pattern for graph processing.
Since we consider a large number of graph-processing algorithms, our initial design goal is to decouple our implementations from the graph representation
- 云计算平台最重要的五项技术
sumapp
云计算云平台智城云
云计算平台最重要的五项技术
1、云服务器
云服务器提供简单高效,处理能力可弹性伸缩的计算服务,支持国内领先的云计算技术和大规模分布存储技术,使您的系统更稳定、数据更安全、传输更快速、部署更灵活。
特性
机型丰富
通过高性能服务器虚拟化为云服务器,提供丰富配置类型虚拟机,极大简化数据存储、数据库搭建、web服务器搭建等工作;
仅需要几分钟,根据CP
- 《京东技术解密》有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的12月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
12月试读活动回顾:
http://webmaster.iteye.com/blog/2164754
本次技术图书试读活动获奖名单及相应作品如下:
一等奖(两名)
Microhardest:http://microhardest.ite