- Cannot resolve com.suntools1.8解决方法
rkmhr_sef
前端html面试javagithubmaven
解决办法最下面。我是引入阿里的druid启动器,druid-spring-boot-starter-1.2.6.pomcom.alibabadruid-spring-boot-starter1.2.6启动器应用的druid,druid-1.2.6.pomcom.alibabadruid1.2.6重点是里面的profiles,会根据系统选择。这里只选择windows的jconsoletrue-->$
- C语言——宏定义,宏函数
小新努力学编程
c语言前端
宏定义宏常量:#defineSIZE20#include#definePI3.14intmain(){floatr=0;printf("inputr:");scanf("%f",&r);floatarea=PI*r*r;printf("area=%.2f\n",area);return0;}宏使用时,采取的是原样替换。宏函数#define宏函数名(参数1,参数2)表达式#includevoid
- Redis学习笔记--Redis安装
Etaon
Redisredis数据库database
下载安装地址:https://redis.io/download在该页面也给出了安装方法:Download,extractandcompileRediswith:$wgethttps://download.redis.io/releases/redis-6.2.6.tar.gz$tarxzfredis-6.2.6.tar.gz$cdredis-6.2.6$makeThebinariesthatar
- 找不到元素mysqlforexcel_mysql,_mysql报出找不到目标数据源为啥? 同一个方法在其他地方调用正常,mysql - phpStudy...
weixin_39596668
mysql报出找不到目标数据源为啥?同一个方法在其他地方调用正常INFO10:18:00,126com.zhuzher.common.util.UtillocalQuartzScheduler_Worker-2-SQLSTARTTIME:1480472280126ENDTIME:1480472280126USETIME:0Exceptioninthread"Thread-13"com.zhuzhe
- 力扣-回溯-39 组合总和
夏末秋也凉
力扣#回溯leetcode算法数据结构
思路和之前几道组合的题目差不多,不同的是允许元素重复,所以要求单层递归里的for循环从当前的index开始即可代码classSolution{public:intcurSum;vectorpath;vector>result;voidbacktracking(vector&candidates,intcurIndex,inttarget){if(curSum>target)return;if(cu
- springboot实现自定义注解的方式及简单应用
stone.eye
springboot后端java
本文章重在实现自定义注解获取参数的方式,仅仅作为自定义注解的入门,对其他自定义注解的使用不会过多介绍,如有其他使用需求,可继续寻找其他文章。实现方式首先创建一个注解类@Target(ElementType.PARAMETER)@Retention(RetentionPolicy.RUNTIME)public@interfaceLoginType{}其中@Target注解指当前注释能够被应用的元素。
- SpringBoot3+Springdoc:v3api-docs可以访问,html无法访问的解决方法
m0_74825746
面试学习路线阿里巴巴html前端
项目环境springboot3.3.4pom.xml引用如下(springdoc相关的只有这一个,理论上说,要跑springdoc或者叫它swagger3,除了springboot,加这个就可以了,不需要任何配置类配置、application.properties/yaml配置!!)(当然,你跑通了之后需要自定义配置了再配)org.springdocspringdoc-openapi-starte
- Django项目 - 全栈开发 - 基于Django+DRF+Vue+ElementUI的企业级项目开发流程 - 后台主页模块设计
UysqOperands
djangovue.jselementui
在本篇文章中,我们将详细介绍如何使用Django、DRF、Vue和ElementUI进行全栈开发,重点是设计和实现后台主页模块。我们将从项目的搭建开始,逐步展示相关的源代码和实现过程。项目搭建首先,我们需要搭建Django项目的基本结构。打开终端(或命令提示符),执行以下命令:$django-adminstartprojectbackend$cdbackend接下来,我们创建一个名为"home"的
- 组合总和II力扣--40
嘻嘻哈哈樱桃
算法回溯算法leetcode算法职场和发展
目录题目思路代码题目给定一个候选人编号的集合candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。注意:解集不能包含重复的组合。示例1:输入:candidates= [10,1,2,7,6,1,5],target= 8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]示
- Django 表单使用示例:数据格式校验
ivwdcwso
运维开发djangopython
在本文中,我们将使用Django的表单(Forms)功能来创建一个添加角色的页面,并对用户提交的数据进行格式校验。创建Django项目和应用首先,我们创建一个名为form_demo的Django项目和一个名为app01的应用:django-adminstartprojectform_democdform_demopythonmanage.pystartappapp01然后,我们需要在setting
- [杂学笔记]STL容器简单介绍、高并发原理、数据库索引
北顾南栀倾寒
笔记c++开发语言sqlmysql数据库
目录1.STL容器简单介绍2.高并发实现原理3.MySQL数据库索引介绍底层原理注意事项1.STL容器简单介绍vector容器vector容器底层管理了一个动态开辟的空间,有三个指针start、finish以及end_of_storage费别指向开头,存储数据的结尾以及开辟的动态内存空间的结尾处。该容器可以自动的管理内存空间,当内存不足的时候,会自动的申请更大的空间,然后将数据拷贝到新的空间,并释
- Oracle 12c 中的 CDB和PDB的启动和关闭
安呀智数据
Oracleoracle数据库多租户管理PDB启停pdb12c
一、简介Oracle12c引入了多租户架构,允许一个容器数据库(ContainerDatabase,CDB)托管多个独立的可插拔数据库(PluggableDatabase,PDB)。本文档旨在详细描述如何启动和关闭CDB及PDB。二、容器数据库(CDB)2.1启动和关闭CDB启动和关闭容器数据库的操作与传统的实例相同。通过SQL*Plus中的STARTUP和SHUTDOWN命令来完成这些操作,当以
- golang的数组、slice和map
相信美好的事情即将发生 ᅟᅠ
golanggolang数据结构开发语言
golang的复合数据结构包括:数组、切片、结构体、函数、map、channel、接口等1.数组1.1数组的初始化import"fmt"funcmain(){//数组的初始化1vararr1[3]intarr1[0]=1arr1[1]=2arr1[2]=3fmt.Println(arr1)//数组的初始化2vararr2=[4]int{1,2,3,4}fmt.Println(arr2)//数组初始
- leetcode 1.两数之和
lyx142606
#leetcode.1--100leetcode算法职场和发展
classSolution{public:vectortwoSum(vector&nums,inttarget){intn=nums.size();for(inti=0;i<n;++i){for(intj=i+1;j<n;++j){if(nums[i]+nums[j]==target){return{i,j};}}}return{};}};
- 荒野大镖客救赎1-v10.29 pj免付版
asd9871a
学习方法游戏程序
荒野大镖客10月29上线steam荒野大镖客steam下载教程分享荒野大镖客:救赎备受玩家喜爱的游戏,最初是在2010年5月于PS3和Xbox360平台上推出的。作为Rockstar旗下《荒野大镖客》系列的续作以20世纪北美殖民拓荒和工业革命的宏大背景,为玩家们呈现了一段主人公JohnMarston在西部荒野上充满冒险与挑战的故事。而游戏及其DLC《不死梦魇》即将在2024年10月29日登陆PC平
- 将SSM(Spring + SpringMVC + MyBatis) + JSP项目中的Spring重构为Spring Boot
Pan's pidr
Java后端springspringbootjava
整体思路参考这篇博客:https://blog.csdn.net/xiaocxyczh/article/details/78681374SpringMVC到SpringBoot的简化之路https://juejin.cn/post/6844903573453537294SpringBoot与SpringMVC是两种不同的配置方式,一种是使用starter启动器来完成自动配置,另一种是在xml中进行
- Cesium中级开发教程之四十:迁徙图
CesiumMaster
Cesium开发教程前端javascriptCesiumhtml着色器算法
Cesium迁徙图能够直观地展示物体(如动物、人类、交通工具等)在地理空间中的移动路径和趋势,在生态研究、交通规划、物流管理等领域具有广泛应用一、效果图二、代码1、实体绘制和数据汇总createMigrationMap(){constpoints={start:{四川:[104.06,30.67]},end:{甘肃:[103.73,36.03],青海:[101.74,36.56],河北:[114.
- npm启动vue报错 Error: listen EACCES: permission denied 0.0.0.0:8085
arvin_baichuan
vuevue.jsnpmjavascript
报错日志:D:\****\***>npmrundev>vue-ytd-cli-project@0.0.1dev***>node--max_old_space_size=4096build/dev-server.js。。。。。。>startingdevserver...events.js:292thrower;//Unhandled'error'event^Error:listenEACCES:pe
- SpringCloud03—服务治理:SpringCloud Eureka
m0_75011249
程序员springcloudeurekajava
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!spring-boot-starter-parent2.5.1org.springframework.cloudspring-cloud-starter-eureka1.4.7.RELEASEorg.springframework.cloudspring-cloud-dependencies2020
- springboot2.x整合jpa
灬Change
springbootmysql后端jpajava
前言为了以后需要使用jpa的时候,可以快速搭建好项目,这个例子不会玩的很全,只是为了能玩起来。源码地址:GitHub-ChangeSu/springboot-jpa-demo:springboot2.0整合jpa示例1.版本org.springframework.bootspring-boot-starter-parent2.5.6org.springframework.bootspring-bo
- docker—私有仓库搭建
Stride Max Zz
blogs云原生dockerdocker云原生
docker—私有仓库搭建HTTP部署dockerrun-d\-p5000:5000\--restart=always\--nameregistry\-v/opt/data/registry:/var/lib/registry\registry:2使用官方的registry镜像来启动私有仓库。默认情况下,仓库会被创建在容器的/var/lib/registry目录下。你可以通过-v参数来将镜像文件存
- 栈和队列-滑动窗口最大值
Hasno.
算法leetcode数据结构
代码随想录-刷题笔记239.滑动窗口最大值-力扣(LeetCode)内容:这道题给我的收获真的很大,主要是学会了一个新的数据结构。单调队列:单调-从名字就可以知道,要么单调递增,要么单调递减。单调队列是从队首开始递减的一个队列,并且一定是单调递减队首应该是第一大,依次是第二大,第三大....针对滑动窗口,无非是进行遍历,使用双指针,一个为start,一个为end二者分别代表窗口的起点和终点,距离是
- C语言学习,插入排序
五味香
c语言学习排序算法算法开发语言android数据结构
C语言,插入排序是一种简单直观的排序算法,插入排序是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。示例://插入排序函数voidinsertionSort(intarr[],intn){for(inti=1;i=0&&arr[j]>key){arr[j+1]=arr[j];j=j-1;}arr[j+1]=key;}}//打印voidprintArray(inta
- HTML 新手易犯的标签属性设置错误
神明木佑
html前端css
滥用target="_blank"属性:将所有链接的目标设为_blank会在新标签页中打开链接,这可能会导致用户在不知情的情况下打开大量新标签页,影响用户体验。正确的做法是只在需要新标签页打开的链接上使用该属性,并在标签中添加适当的提示,让用户知道链接会在新标签页打开。错误地设置required属性:required属性用于标记表单元素为必填项,但错误地设置此属性可能导致用户在提交表单时遇到问题,
- Vue.js组件开发深度解析:从原理到最佳实践
星鬼123
框架相关vue.jsjavascript前端
Vue.js组件开发深度解析:从原理到最佳实践一、Vue组件核心运行机制1.1响应式数据驱动原理//Vue3的响应式实现constreactiveMap=newWeakMap();functionreactive(obj){constproxy=newProxy(obj,{get(target,key,receiver){track(target,key);//依赖收集returnReflect.
- JavaScript&ES6----数组去重的多种方法
方法一---双层for循环利用双层for循环,前一个循环前一项,后一个循环后一项,两两比对,如果发现重复的就用splice()属性,把重复的元素从数组arr中删除letarr=[2,5,1,5,3,2,'hello','1',4]letunique=(arr)=>{//第一层for循环循环数组前一项for(i=0;i{//声明一个新数组letnewArr=[];for(i=0;i{//声明一个新数
- 40个JS常用使用技巧案例
javascript
大家好,我是V哥。在日常开发中,我们经常会使用JS解决页面的交互,在JS使用过程V哥总结了40个小技巧,分享给大家,废话不多说,马上开干。先赞再看后评论,腰缠万贯财进门。JS常用技巧案例以下是40个常用的JavaScript使用技巧,包含案例代码和解释:1.数组去重constarr=[1,2,2,3,4,4,5];constuniqueArr=[...newSet(arr)];console.lo
- bazel 常用命令
code-ranger
CPPc++
以下是一些常用的Bazel命令及其说明。1.bazelbuild构建指定的目标(target)。语法:bazelbuild//路径/到:目标示例:bazelbuild//src/main:app构建位于src/main目录下名为app的目标。示例:bazelbuild-cdbg//src/main:app使用-c参数知道构建类型。当需要在开发过程中快速构建时,使用-cfastbuild。当需要调试
- 【练习】【回溯:一个集合 元素可重复】力扣 39. 组合总和
柠石榴
回溯输入输出leetcode算法回溯
题目组合总和给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。你可以按任意顺序返回这些组合。candidates中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target的不同组合数少于150个。示例1:输入:can
- H3C和华为产品定期将配置文件保存到FTP服务器的配置步骤
normanhere
服务器华为网络
H3C产品配置:sysschedulerjobsaveconfigcommand1saveforcecommand2copystartup.cfgftp://username:password@1.1.1.1/filenamequitschedulerschedulesaveconfigjobsaveconfigtimerepeatingat14:30week-daySatquitsaveforc
- 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