- Python模块化开发让你告别“屎山”
聪明的墨菲特i
Pythonpython开发语言djangofastapivisualstudiopycharm
Python模块化开发:让代码更优雅、更高效Hey,小伙伴们!在编程的世界里,代码的可读性和可维护性是至关重要的。如果你的代码像是一团乱麻,不仅自己难以维护,别人接手时也会感到头疼。今天,就让我们一起探索如何通过Python模块化开发,让代码变得井井有条,提升开发效率,同时减少错误。什么是模块化开发?模块化开发是一种将复杂系统分解为可管理的、独立的模块的方法。在Python中,模块(module)
- vue2和vue3项目打包添加时间戳
曾不错吖
笔记部分vue.js前端javascript
Vue2添加时间戳constTimestamp=newDate().getTime()module.exports={transpileDependencies:true,productionSourceMap:false,publicPath:"./",configureWebpack:config=>{config.output.filename=`js/[name].${Timestamp}
- Linux下Nginx安装SSL、配置SSL模块,支持https配置
爱吃面条的猿
linuxnginxssl
1、查询是否已经配置SSL模块在nginx的安装目录下的./sbin/nginx-V命令,注意是大写V,查看配置是否包含“-with-http_ssl_module”,包含则表示已经配置好SSL,如果不含,需要安装SSL模块。[root@localhostsbin]#./nginx-Vnginxversion:nginx/1.19.5builtbygcc4.8.520150623(RedHat4.
- pytorch-lightning使用笔记
真炎破天
深度学习基础知识nlppytorch深度学习
LightningDataModuleAPI定义5个方法:prepare_data(howtodownload(),tokenize,etc…)在这个方法中处理需要写入磁盘或者需要单进程完成的任务setup(howtosplit,etc…)一些dataoperations希望在每块GPU上运行。包括但不限于:(1)countnumberofclasses(2)buildvocabulary(3)p
- Pytest学习(二)——fixture的详细使用
欲游山河十万里
#测试开发pytest学习
目录前言Fixture定义fixture的优势fixture参数列表1.function(默认)2.class每个测试类调用一次fixture,所有测试方法共享同一个fixture实例。3.module每个测试模块调用一次fixture,模块内的所有测试方法共享同一个fixture实例。4.session:在整个测试会话期间只调用一次fixture,适合用于全局资源配置。fixure常用用法参考文
- 报错Deprecation Warning: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.
确实菜,真的爱
sass前端css
项目里有标题里的警告信息,原因是sass的版本太高,虽然package.json里版本是低版本,但是实际上在node_modules里可以找到版本是高的,原因在于package.json里sass:1.50.1这个符的意思是版本自动更新最新的,要么把去掉,要么改成"~"只更新小版本,重新下载依赖就好了。参考链接:https://blog.csdn.net/weixin_68340504/artic
- AWS CloudFormation CLI:云资源管理的利器
龙子旋
AWSCloudFormationCLI:云资源管理的利器cloudformation-cliTheCloudFormationProviderDevelopmentToolkitallowsyoutoauthoryourownresourceprovidersandmodulesthatcanbeusedbyCloudFormation.项目地址:https://gitcode.com/gh_m
- HarmonyOS 编译器遇到错误信息 “Cannot find module ‘@ohos.rooter‘ or its corresponding type declarations.“ 解决办法
A懿轩A
HarmonyOSharmonyos华为
错误信息"Cannotfindmodule'@ohos.rooter'oritscorrespondingtypedeclarations."的中文含义是“找不到模块'@ohos.rooter'或其对应的类型声明。”这意味着在你的项目中,TypeScript编译器无法找到指定的模块及其类型定义。这个问题通常发生在你使用HarmonyOS(鸿蒙系统)的ArkTS框架开发应用时,因为@ohos.roo
- Nginx负载均衡配置、限流配置、Https配置详解
Linux服务器开发
后端开发Linux服务器开发Nginxnginx负载均衡https后端开发中间件
一.负载均衡1.用法通过proxy_pass可以把请求代理至后端服务,但是为了实现更高的负载及性能,我们的后端服务通常是多个,这个是时候可以通过upstream模块实现负载均衡。使用的模块为:【ngx_http_upstream_module】,具体配置可以根据模块名去查找文档。负载均衡的算法有:ll:轮询ll+weight:轮询加权重ip_hash:基于Hash计算,用于保持session一至性
- Seq2Seq - 编码器(Encoder)和解码器(Decoder)
风筝超冷
人工智能深度学习seq2seq
本节实现一个简单的Seq2Seq(SequencetoSequence)模型的编码器(Encoder)和解码器(Decoder)部分。重点把握Seq2Seq模型的整体工作流程理解编码器(Encoder)和解码器(Decoder)代码本小节引入了nn.GRUAPI的调用,nn.GRU具体参数将在下一小节进行补充讲解1.编码器(Encoder类定义classEncoder(nn.Module):def
- windows 系统使用nvm安装某些版本的node时 npm没有安装上
君子木
npm前端node.js
安装某个版本的node时node自带的npm包管理器提示下载失败,导致无法安装。解决方法:另外下载一个对应版本的node的zip压缩包,解压后可以整体替换nvm目录下对应版本的node文件夹中的文件(主要是node_modules下的npm和node.exe同级别目录下的npm文件)之后使用nvm切换到对应版本的node即可Node.js—Node.js版本版本列表
- uniapp-商城-2-uView组件以及uniapp组件的引入
七七小报
uni-app
该库是一个ui组件库,也可以结合阿里巴巴矢量图使用。iconfont-阿里巴巴矢量图标库1uview地址uView2.0-全面兼容nvue的uni-app生态框架-uni-appUI框架2uview组件安装到项目(通过uni_modules形式引入uView)进入uview点击组件,点击安装安装|uView2.0-全面兼容nvue的uni-app生态框架-uni-appUI框架然后选中比较简单的方
- python multiprocessing 共享内存_multiprocessing.shared_memory
weixin_39710991
pythonmultiprocessing共享内存
3.8新版功能.该模块提供了一个SharedMemory类,用于分配和管理多核或对称多处理器(SMP)机器上进程间的共享内存。为了协助管理不同进程间的共享内存生命周期,multiprocessing.managers模块也提供了一个BaseManager的子类:SharedMemoryManager。Inthismodule,sharedmemoryrefersto"SystemVstyle"sh
- electron安装, node install.js报错RequestError: read ECONNRESET问题解决方案
光亮的程序猿
nodejsjavascript
其实就是网络连接出错了,electron包下载不下来,可以换成淘宝镜像地址就可以解决。具体解决方法如下:1.npminstallelectron执行后,当运行到nodeinstall.js时,中断执行(windowscmd用ctrl+c)2.进入node_modules/electron文件下,编辑install.js3.修改downloadArtifact这段代码,添加淘宝镜像地址https:/
- Go 模块--开始使用Go Modules
kevin_tech
pythonjava编程语言数据库linux
Go的1.11和1.12版本包括对模块--新的Go依赖管理系统的初步支持,使依赖版本信息变得明确且更易于管理。这篇博客文章介绍了开始使用模块所需的基本操作。模块是存储在根目录有一个go.mod文件的文件树中的Go包(package)的集合。go.mod文件定义了模块的modulepath(也是模块根目录的导入路径)以及模块依赖的其他模块的要求,满足了依赖要求模块才能被成功构建起来。每个依赖模块的要
- ERROR in [eslint] Cannot use import statement outside a module.
Cow manure
eslint前端javascript开发语言
一、出错原因:是因为在模块文件之外使用了es6语法中的import,因为js运行环境无法解析es6语法,所以报错了二、解决方法1、使用CommonJS语法例如://import{defineConfig,globalIgnores}from"eslint/config"//importjsfrom"@eslint/js"//importglobalsfrom"globals"const{defin
- 在android的JNI中调用第三方 so文件的android.mk配置
it_rober
linux运维服务器
1配置成如下格式:#设置当前路径LOCAL_PATH:=$(callmy-dir)#包含预构建库的Android.mkinclude$(CLEAR_VARS)#定义cryptoauthLOCAL_MODULE:=cryptoauthLOCAL_SRC_FILES:=libcryptoauth.soinclude$(PREBUILT_SHARED_LIBRARY)#include$(BUILD_PR
- BERT - Bert模型框架复现
风筝超冷
bert人工智能深度学习
本节将实现一个基于Transformer架构的BERT模型。1.MultiHeadAttention类这个类实现了多头自注意力机制(Multi-HeadSelf-Attention),是Transformer架构的核心部分。在前几篇文章中均有讲解,直接上代码classMultiHeadAttention(nn.Module):def__init__(self,d_model,num_heads,d
- JavaFX配置问题及解决措施:报错“缺少JavaFX组件”
刘西瓜快乐的单飞生活
提出问题:Java11版本之后,JavaFX组件被剥离出来,我们在调用JavaFX库及相关组件时,会出现如下图所示的异常爆报错情况:解决措施:点击RUN>EditConfiguration...到如下界面进行VM选项的配置:在上图所示的位置输入配置代码:--module-path"C:\ProgramFiles\Java\javafx-sdk-11.0.2\lib"--add-modulesjav
- AndroidStudio编译报错 Duplicate class kotlin
大秦樗里疾
AndroidAndroidStudio编译kotlinandroid
具体的编译报错信息如下:Duplicateclasskotlin.collections.jdk8.CollectionsJDK8Ktfoundinmoduleskotlin-stdlib-1.8.10(org.jetbrains.kotlin:kotlin-stdlib:1.8.10)andkotlin-stdlib-jdk8-1.6.21(org.jetbrains.kotlin:kotlin
- Python中的 if __name__ == ‘__main__‘:
俊昭喜喜里
python
一.if__name__=='__main__':的作用if__name__=='__main__':的作用其实是用来判断运行的程序是否是主程序。具体来说就是当一个python文件被直接运行时,其内置变量__name__的值就会被设置成'__main__',当这个文件被另一个文件作为模块使用时,__name__的值就会被设置成这个文件的模块名。#mymodule.pydefmy_function(
- PM2用配置文件管理多个Node.js项目
Learn-anything
PM2node.js服务器前端
一、问题简介有多个Node.js进程需要一起管理时,各自需要的参数也不同时,创建一个配置文件来管理是最好的方案。二、解决方案1、生成基础版本配置文件pm2initsimple:可以生成基础版本的配置文件:ecosystem.config.js//ecosystem.config.jsmodule.exports={apps:[{name:"app1",script:"./app.js"}]
- js的es6模块中 暴露的使用方法简介
小何…
javascript前端开发语言
在JavaScript的ES6模块系统中,一个模块文件只能有一个exportdefault。exportdefault用于导出一个默认值,这个默认值在导入时可以使用任意名称。示例:导出默认值://myModule.jsexportdefaultfunctiongreet(){console.log("Hello,world!");}导入默认值://main.jsimportgreetfrom'./
- 使用指南:深入理解terraform-aws-ec2-instance项目
仰书唯Elise
使用指南:深入理解terraform-aws-ec2-instance项目terraform-aws-ec2-instanceTerraformmoduleforprovisioningageneralpurposeEC2host项目地址:https://gitcode.com/gh_mirrors/ter/terraform-aws-ec2-instance项目概述本项目terraform-aw
- [WIP] einops版GQA MSA
taoqick
python深度学习机器学习
GQAimporttorchimporttorch.nnasnnimportmathfromeinopsimportrearrangeclassMyGQA(nn.Module):def__init__(self,nheads,dim,ngroups):super().__init__()self.head_dim=dim//nheadsself.nheads=nheadsself.dim=dims
- module软件管理工具的使用
moyu5021
linux服务器运维
module软件管理工具的使用1.简介Typicallyusersinitializetheirenvironmentwhentheyloginbysettingenvironmentinformationforeveryapplicationtheywillreferenceduringthesession.TheEnvironmentModulespackageisatoolthatsimpl
- Linux 下 Module 工具的介绍与使用
计算机辅助工程
linux运维服务器
参考:https://www.fasteda.cn/post/22.htmlhttps://modules.readthedocs.io/en/latest/module.htmlLinux下Module工具的介绍与使用一、前言在Linux中,当同一款编辑器、运行库、软件存在多个版本且多个版本都需要在不同的场景或人员使用时,配置这些内容的环境变量是一个非常繁琐的过程,而Module工具则提供了一个
- vue2/3 - 解决报错Error: Cannot find module ‘babel-plugin-import‘(vue2/vue3报错无babel-plugin-import模块详细解决教程
十一猫咪爱养鱼
前端常见问题解决前端组件与功能(开箱即用)l-plugin-importvue2vue3vue找不到import模块运行打包build时出现报错重装install依赖还是报错安装axios后没有解决报错
问题描述在vue2、vue3项目开发中,项目编译运行、打包、组件库等等,突然出现报错Error:Cannotfindmodule'babel-plugin-import’错误提示,并且奇怪的是删包重装、修改配置都不好使无效。如果你和我报错差不多,使用文章内提供的方法完美解决。问题描述在vue2、vue3项目开发中,项目编译运行、打包、组件库等等,突然出现报错Error:Cannotfindmodu
- python inspect模块
weifexie
Pythonpython前端开发语言inspect
Pythoninspect模块核心功能解析inspect是Python标准库中用于运行时自省(introspection)的模块,主要用于分析代码结构、检查对象属性、提取函数签名等场景。核心功能概览功能类别典型应用场景关键函数/方法示例类型检查判断对象类型(类、函数、模块等)ismodule(),isclass(),isfunction()源代码提取获取函数/类的源代码或文档字符串g
- python导包错误“no module named xx“
后起 悲落
python开发语言
确认模块名是否正确:检查是否有拼写错误。安装缺失的模块:使用pip命令安装缺失的模块。例如,如果错误是"nomodulenamednumpy",则可以使用pipinstallnumpy来安装。检查Python环境:确保你在正确的Python环境中工作,特别是如果你使用了虚拟环境。检查模块的安装位置:如果模块已安装但Python无法找到,可能是因为模块安装在了不同的Python版本中,或者安装路径不
- 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