- How Spark Read Sftp Files from Hadoop SFTP FileSystem
IT•轩辕
CloudyComputationsparkhadoop大数据
GradleDependenciesimplementation('org.apache.spark:spark-sql_2.13:3.5.3'){excludegroup:"org.apache.logging.log4j",module:"log4j-slf4j2-impl"}implementation('org.apache.hadoop:hadoop-common:3.3.4'){exc
- 《AI医疗系统开发实战录》第4期——医疗数据安全合规实战指南
骆驼_代码狂魔
程序员的法宝人工智能
核心主题:如何构建符合HIPAA/GDPR标准的医疗数据安全体系?最大痛点:90%的医疗AI项目因数据合规问题无法通过临床验收!一、合规框架设计(ISO27001+HIPAA/GDPR融合方案)python示例:Django中间件实现HIPAA合规审计日志fromdjango.utils.deprecationimportMiddlewareMixinimportloggingfromdateti
- QT框架中使用easylogging日志库报错重定义排查办法:error: multiple definition of `el::base::elStorage
8年老菜鸡
C++报错解决QTqteasylogging日志库开发语言
报错内容:error:multipledefinitionof`el::base::elStorage'error:multipledefinitionof`el::elCrashHandler'error:multipledefinitionof`el::base::elStorage'error:multipledefinitionof`el::elCrashHandler'一般会在很多cpp
- Spring Boot 启动报错:Field testMapper in *** required a bean of type ‘***‘ that could not be found.
测试开发小白变怪兽
服务端
SpringBoot工程构建时报错:ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug'enabled.2021-03-2310:10:52.451ERROR55881---[main]o.s.b.d.LoggingFailureAnalysisReporter:**
- 使用FastAPI部署bge-base和bge-reranker
MoyiTech
fastapipython开发语言RAGrerank
最近在做RAG项目,会频繁使用到本地embedding模型和rerank模型,但是每次跑demo都要用10来秒加载模型,非常慢,所以就封装了接口用于直接调用importosimportnumpyasnpimportloggingimportuvicornimportdatetimefromfastapiimportFastAPI,Security,HTTPExceptionfromfastapi.
- CVE-2017-5645(使用 docker 搭建)
JM丫
网络安全
介绍:是一个与ApacheLog4j2相关的安全漏洞,属于远程代码执行,它可能允许攻击者通过构造恶意的日志信息在目标系统上执行任意代码Log4j2介绍Log4j2是Apache的一个日志记录工具,属于Java应用的日志框架,它是Log4j的升级版,性能更好,功能更多.它被广泛的适用于Java应用程序中,帮助开发者记录程序运行的时候的日子信息,是Java生态系统中最重要的一个日志框架之一漏洞编号:C
- 2025版自动控制流程_工业级连接_智能重连监控系统_增强型工业连接协议 ‘s Vision+Robot EPSON
资深设备全生命周期管理
python
importtimeimporttkinterastkfromtkinterimportmessageboxfromPILimportImage,ImageTkimportsocketimportthreadingfromdatetimeimportdatetimeimportloggingimportsubprocess#确保导入subprocess库importosimportpyautogu
- 创建数据/采集数据+从PI数据到PC+实时UI+To PLC
资深设备全生命周期管理
ui
Get_Data----------importcsvimportosimportrandomfromdatetimeimportdatetimeimportloggingimporttime#配置日志记录logging.basicConfig(filename='D:/_Study/Case/Great_Data/log.txt',level=logging.INFO,format='%(asc
- SpringBoot使用@Slf4j注解实现日志输出
pan_junbiao
SpringBoot我の原创springbootjavaspring
日志框架的使用,系列文章:《SpringBoot使用Logback日志框架与综合实例》《SpringBoot使用@Slf4j注解实现日志输出》《Log4j2日志记录框架的使用教程与简单实例》《SpringBoot使用AspectJ实现AOP记录接口:请求日志、响应日志、异常日志》《SpringBoot使用AspectJ的@Around注解实现AOP全局记录接口:请求日志、响应日志、异常日志》@Sl
- python连接clickhouse两种方法
dair6
sql相关问题python数据库sql
1.使用Client类importloggingfromapscheduler.schedulers.blockingimportBlockingSchedulerfromclickhouse_driverimportClientlogger=logging.getLogger(__name__)#操作日志对象classCkClient():"""数据库连接的公共类,初始化连接,自定义查询,删除等
- 《一文讲透》第4期:KWDB 数据库运维(6)—— 容灾与备份
KaiwuDB 数据库
KaiwuDB技术博客数据库运维分布式多模数据库kaiwudb
一、KWDB容灾WAL概述KWDB采用预写式日志(Write-AheadLogging,WAL),记录每个时序表的模式变更和数据变更,以实现时序数据库的数据灾难恢复、时序数据的一致性和原子性。KWDB默认会将保存在WAL日志缓存中的日志条目实时写入日志文件,每5分钟通过后台线程更新WAL文件和数据文件的CHECKPOINT_LSN(检查点日志序列号),写入CHECKPOINTWAL日志,然后同步数
- Python常用函数及常用库整理
Nicholson07
python
简单整理一下一些常用函数,方便自己查阅。目录文件操作文件夹/目录文件数据格式链表类特殊函数一些常用函数常用库tqdm进度条库tqdm模块参数说明常用函数使用方法yacs参数配置库简介使用方法logging日志库使用方法文件操作文件夹/目录importos1、os.path.exists(path)判断一个文件/目录是否存在,只要存在相匹配的文件或目录就返回True,因此当目录与文件同名时可能报错2
- SpringCloud 打包的 .jar 运行时,不能按日志配置进行输出日志
tvrddmss
springcloudjarspring
1、问题:springcloud打包的.jar文件在运行时,不能按日志配置进行输出日志文件2、查到问题来自nacos,与springcloud的日志冲突,在运行时指定日志配置文件即可。java-Dlogging.config="logback-spring.xml"-jardemo-1.0-SNAPSHOT.jar
- logger入门(基于Python3)
弱冠少年
android
目录简介核心优势基础用法常用配置与标准库logging对比简介在Python中,fromloguruimportlogger是用于导入Loguru库的核心日志记录工具logger。Loguru是一个第三方日志库,旨在简化Python日志记录(相比标准库logging更简洁易用),提供开箱即用的功能,如彩色输出、文件轮转、异常自动捕获等。核心优势基础用法直接记录日志fromloguruimportl
- Python 日志组件Loguru快速入门
ftpeak
Pythonpython开发语言
Python自身具有默认的日志组件-loggin,功能强大且专业度强,正因如此,要真正的用好logging组件的复杂度可不低。你是否曾因懒配置logging组件而只是对其简单配置一下或直接使用print()?……我曾有过,但日志记录是每个应用的基础,能极大简化调试过程。然而,可以通过Loguru组件来极度轻松的使用日志,你没有任何理由不从项目伊始就使用它——只需fromloguruimportlo
- 【Agent】owl 案例-分析宁德时代的投资价值
非晓为骁
AIagentaimanusowlcamel-ai
owl案例-分析宁德时代的投资价值用deepseek-R3,不过里面数据应该就到23年,所有有滞后性,看个用例就好了。owl复现过程见:分析过程2025-03-1108:31:28,689-camel-INFO-Camellibrarylogginghasbeenconfigured.2025-03-1108:31:43,283-camel.camel.models.deepseek_model-
- slf4j导入那个依赖_复杂Spring项目中SLF4J最佳使用姿势
weixin_39955421
slf4j导入那个依赖
一、Java日志体系概述图1-1Java日志体系概况图1-1展示了Java日志体系的三个主要部分:日志门面接口(SLF4J、JCL)一系列绑定和桥接具体的日志实现先来两个例子:Spring项目中通过CommonsLogging直接使用log4j图1-2通过CommonsLogging使用log4j本例中由于spring-core中原生依赖commons-logging,所以只需要添加log4j和l
- Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource could
clownAdam
JavaJavaspringboot
问题:SpringBoot启动类时报错信息如下:ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug'enabled.2025-03-1000:52:29.412ERROR36776---[main]o.s.b.d.LoggingFailureAnalysisRepor
- log4j2 滚动删除日志文件(最后访问时间&大小)
log4j2日志
有时我们需要滚动删除日志,不然日志会越积越多。从log4j22.5之后,在日志滚动的时候可以自定义删除操作,比如我们希望保留3天的日志,可以这么配置:-name:FileAppenderfileName:/tmp/log/test.logfilePattern:/tmp/log/test.log.%d{yyyy-MM-dd}"PatternLayout:pattern:%-d{yyyy-MM-dd
- MyBatis使用log4j打印日志相关配置
劲雨波
MyBatismavenjavaintellij-idealog4jmybatis
目录一、环境二、依赖三、配置1、log4j.properties2、配置信息一、环境maven:3.6.3ideal:2020MyBatis:3.5.4二、依赖org.slf4jslf4j-log4j121.7.5三、配置1、log4j.properties在resources中新建log4j.properties2、配置信息在log4j.properties中输入以下信息log4j.rootLo
- Java连接Zookeeper,创建监听通知机制
永旗狍子
SpringLinuxzookeeperjava
目录一.Java连接Zookeeper1.创建Springboot工程,导入依赖1.1排除log4j和桥接包2.配置application.yml3.编写连接Zookeeper的工具类4.监听通知机制4.1在zookeeper容器内部新增节点一.Java连接Zookeeper1.创建Springboot工程,导入依赖org.springframework.bootspring-boot-start
- Could not initialize Logback Nacos logging from classpath:nacos-logback.xml
顽皮小书生
java开发语言
搭建网关服务,使用Nacos作为注册中心,服务启动时警告:WARNcom.alibaba.nacos.client.logging.NacosLogging-LoadLogbackConfigurationofNacosfail,message:CouldnotinitializeLogbackNacosloggingfromclasspath:nacos-logback.xml服务的pom.xm
- Python 记录日志报警的方式
Tipriest_
Python学习python前端logging报警alarmmail
在Python标准库中,可以列举出如下常见场景日志报警解决方案:方案1:简单日志告警(推荐基础方案)importloggingdefsend_alert(message):logging.error(f"ALERT:{message}")#可扩展:同时写入文件/发送到日志服务器#配置日志格式logging.basicConfig(level=logging.ERROR,format='%(asct
- 跨平台 日志库 log4cpp :使用指南
恋恋西风
C/C++java前端开发语言
1.log4cpp日志介绍log4cplus是一个灵活的日志库,不仅仅可以跨平台,功能强大,受到了Java的log4j库的启发,并为C++设计。它提供了丰富的日志级别、日志格式和输出目标的配置选项,使得开发者能够根据应用程序的需要灵活地记录信息。2.特点灵活性:log4cplus提供了多种日志级别和输出选项,支持异步和同步日志记录。易用性:它的API简单直观,易于集成到现有项目中。可配置性:可以通
- java 批量查询es_java操作ES的简单查询和bool查询
weixin_39831567
java批量查询es
导入包org.elasticsearch.clienttransport5.2.2org.apache.logging.log4jlog4j-api2.7org.apache.logging.log4jlog4j-core2.7junitjunitRELEASEViewCode2.Java操作基本操作通过client客户端对象获得客户端然后通过preparIndex等方法传入index,type,
- Spring Boot Gradle 项目中使用 @Slf4j 注解
曹天骄
springboot后端java
SpringBootGradle项目中,如果想使用@Slf4j注解来启用日志记录,首先需要添加Lombok和SLF4J的依赖。可以通过以下步骤来添加它们:1.添加Lombok依赖在build.gradle文件中添加以下Lombok依赖:dependencies{implementation'org.springframework.boot:spring-boot-starter-logging'/
- 黑马头条项目微服务启动时控制台给出警告信息SLF4J Class path contains multiple SLF4J bindings
聂 可 以
JavaSpringBoot黑马头条javaspringboot微服务
文章目录1.错误呈现2.错误产生的原因3.解决办法(可应用于其它微服务)3.1排除Log4j2的依赖3.2引入Logback的依赖3.3重启项目视频教程:Day1-12-app端登录-功能实现1.错误呈现SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/F:/MavenRepository/ch/
- 如何判断系统是否使用 Log4j,并检测漏洞的存在?
Aishenyanying33
log4j
前言Log4j的漏洞(Log4Shell)是近年来网络安全领域非常严重的问题,它的影响范围极广。为了保护系统安全,我们需要判断自己的系统是否使用了Log4j,以及是否存在相关漏洞。本文将详细介绍如何检测Log4j的使用,并通过输入测试字符串的方式来判断漏洞是否存在。1.如何判断系统是否使用了Log4j?方法1:检查系统代码或依赖查看代码库:在代码中搜索是否引用了Log4j,特别是类似org.apa
- Spring Boot 整合 log4j2 日志配置教程
m0_74823317
面试学习路线阿里巴巴springbootlog4j单元测试
文章目录前言一、常用日志框架二、配置参数介绍1.日志级别2.输出形式3.日志格式3.1PatternLayout自定义日志布局三、Log4j2配置详解1.根节点Configuration2.Appenders节点2.1Console节点2.2File节点2.3RollingFile节点2.3.1ThresholdFilter节点2.3.2Policies节点2.3.3ThresholdFilter
- 【Java】日志框架
茉菇
javapython开发语言
一、概述Java日志框架是开发中记录和管理日志的重要工具,合理选择和使用日志组件能提升项目的可维护性和灵活性。1、核心概念日志门面(LoggingFacade)作用:提供统一的API接口,解耦业务代码与具体日志实现。优势:允许灵活切换底层日志库,无需修改代码。常见门面:SLF4J、JCL(ApacheCommonsLogging)。日志实现(LoggingImplementation)作用:实际处
- 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