- 推送项目到GitHub
chet666
gitgithub
查看git版本(检查是否下载git成功)git--version在当前文件及gitbashhere,创建代码仓库gitinit这时,可以看到文件夹下多了一个.git文件,证明仓库创建成功。这时,可以自己创建一个.gitignore文件,将node_modules等不需要上传的文件写在.gitignore里面。为什么不需要上传node_modules?因为node_modules里面的依赖已经全部记
- 配置cri-docker使kubernetes1.24以docker作为运行时
萌褚
Linux
镜像下载、域名解析、时间同步请点击阿里云开源镜像站从kubernetes1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作为kubernetes的容器运行时了,即从kubernetesv1.24开始不再使用docker了。但是如果想继续使用docker的话,可以在kubel
- 运行c程序报preLaunchTask“C/C++: gcc 生成活动文件“已终止,退出代码为 -1。
如若123
c语言c++开发语言
出现preLaunchTask“C/C++:gcc生成活动文件"已终止,退出代码为-1错误,意味着编译任务在运行时失败。为了解决这个问题,我们可以从以下几个方面检查和修复问题:1.检查tasks.json配置确保tasks.json配置正确,尤其是源文件路径、编译命令和选项。你可以参考以下完整的tasks.json示例:{"version":"2.0.0","tasks":[{"type":"cp
- 【windows Docker desktop】在git bash中报错 docker: command not found 解决办法
ragga-time
windowsdockergit
【windowsDockerdesktop】在gitbash中报错docker:commandnotfound解决办法1.首先检查在windows中环境变量是否设置成功2.检查docker在gitbash中环境变量是否配置3.重新加载终端配置4.最后在校验一下是否配置成功1.首先检查在windows中环境变量是否设置成功启动dockerdesktop打开cmddocker--version2.检查
- 深度解析 Git 的使用:版本控制的核心工具
qq_39279448
git
1.Git的基本概念1.1什么是版本控制?版本控制系统(VersionControlSystem,VCS)是一种用于记录文件内容变更历史的工具。多人开发者可以在不同的时间编辑同一个文件,而不必担心覆盖或丢失他人的修改。Git作为一种分布式版本控制系统,允许开发者在本地操作代码的同时,确保所有更改都可以被追踪和协同。1.2分布式与集中式的差异集中式版本控制(例如SVN):所有代码和版本信息都存储在中
- rockylinux9.4单master节点k8s1.28集群部署
大白菜和MySQL
k8s集群kubernetes容器云原生
kubernetes集群部署常见的k8s部署方式包括:二进制包、kubeadm工具、云服务提供商、或通过一些开源的工具搭建,例如:sealos、kuboard、Runcher、kubeSphere。本文使用kubeadm的部署方式,部署k8s1.28版本我本地安装资源规划如下:IP地址主机名称角色操作系统主机配置参考192.168.3.92master1masterrockylinux9.4(最小
- 华为云云原生王者之路集训营(黄金-第五章)
※网络笨猪※
云厂商-公有云华为云云原生
华为云云原生王者之路集训营(黄金-第五章)1.11.1Kubernetes工作负载(Workload)介绍工作负载是在Kubernetes上运行的应用程序。无论你的负载是单一组件还是由多个一同工作的组件构成,在Kubernetes中你可以在一组Pods中运行它。在Kubernetes中,Pod代表的是集群上处于运行状态的一组容器。四种负载:无状态工作负载:管理的Pod集合是相互等价的,需要的时候可
- 修改 Go 版本后不生效?深入排查与解决方案
阿狸远翔
golang开发语言后端
Mac修改Go版本后不生效?深入排查与解决方案问题背景在使用Mac开发时,我们经常需要切换不同版本的Go语言环境。通过工具goenv设置全局版本后,执行goversion却发现版本未改变:goenvversionssystem*1.19.13(setby/Users/xxx/.goenv/version)goversiongoversiongo1.21.3darwin/amd64#实际版本与预期不
- Rust入门实战 编写Minecraft启动器#4下载资源
首发于Enaium的个人博客首先我们需要添加几个依赖。model={path="../model"}parse={path="../parse"}reqwest={version="0.12",features=["blocking","json"]}file-hashing={version="0.1"}sha1={version="0.10"}reqwest用于发送请求,file-hashin
- AirSim学习(3)AirSim的PythonAPI基本操作——环境配置与VehicleClient类
睡觉狂魔er
AirSim虚幻自动驾驶python
文章内容AirSim学习笔记汇总AirSim的PythonAPI的安装AirSim的坐标系统classVehicleClient1.成员变量2.构造函数3.连接与仿真启停resetpinggetClientVersiongetServerVersiongetMinRequiredServerVersiongetMinRequiredClientVersionenableApiControlisAp
- 10-2.Android BuildConfig 之获取版本号与版本名(通过 BuildConfig 类方式获取、通过 PackageInfo 方式获取)
我命由我12345
Android-简化编程开发语言java-eejavaandroidandroid-studioandroidstudioandroidruntime
一、版本号与版本名版本号(versionCode)是一个整数,用于内部版本控制,每次发布新版本时,版本号必须递增,Android系统使用版本号来判断应用的更新版本名(versionName)是一个字符串,通常用于向用户展示应用的版本信息,它可以是任意格式,常见的格式是主版本号.次版本号.修订号(例如,1.0.0)二、定义版本号与版本名在模块级build.gradle文件中,定义版本号与版本名and
- Linux系统:第十章:服务器环境搭建
2501_90243308
服务器linux运维
JAVA_HOME=/opt/jdk1.8.0_152PATH=JAVAHOME/bin:JAVA_HOME/bin:JAVAHOME/bin:PATHexportJAVA_HOMEPATH然后保存退出:按Esc+:wq执行当前连接刚刚配置的脚本文件使配置文件生效:source/etc/profile或者reboot重启查看jdk版本:java-versionjavaversion“1.8.0_1
- 【阅读总结】AlphaFold3 unedited version 通读 + 服务器使用总结
Lasgalena
论文阅读软件使用论文阅读服务器
省流:AlphaFold3能做什么:预测蛋白质、DNA、RNA与允许的配体/离子/共价修饰的复合物结构为什么要用AlphaFold3:有强大的泛化性和准确率,除了RNA结构略差于AIchemy_RNA2外,预测精度高于现有方法(包括Vina和RosettaFold-All-Atom)AlphaFold3怎么用:代码不开源,网站https://alphafoldserver.com/需注册使用,每日
- Rust入门实战 编写Minecraft启动器#2建立资源模型
首发于Enaium的个人博客我们需要声明几个结构体来存储游戏的资源信息,之后我们需要将json文件解析成这几个结构体,所以我们需要添加serde依赖。serde={version="1.0",features=["derive"]}资源相关asset.rsuseserde::Deserialize;usestd::collections::HashMap;#[derive(Deserialize)
- redis清空缓存
奔跑吧邓邓子
高效运维缓存redis数据库
提示:“奔跑吧邓邓子”的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如IBMSystem3650M5)、云服务平台(如腾讯云、华为云)、服务器软件(如Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker等)、开发工具(如Git、HBuilder)以及网络安全(如挖矿病毒排查、SSL证书配置)等多个方面。无论
- Helm Chart 实现 Kubernetes 应用多环境部署实战
ivwdcwso
运维kubernetes容器Helmk8s云原生
在现代软件开发中,通常需要将应用部署到多个环境(如开发环境、测试环境、生产环境)。每个环境的配置可能不同,例如数据库连接、资源限制、镜像版本等。HelmChart提供了强大的模板化和参数化功能,可以轻松实现多环境部署。本文将详细介绍如何使用HelmChart实现Kubernetes应用的多环境配置,并通过实战演示完整的部署流程。©ivwdcwso(ID:u012172506)1.多环境部署的需求在
- Windows Server 2022 中文版、英文版下载 (2024 年 12 月更新)
windows-server
WindowsServer2022中文版、英文版下载(2024年12月更新)WindowsServer2022x64,Version21H2(updatedDec2024)请访问原文链接:https://sysin.org/blog/windows-server-2022/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgWindowsServer2022采用先进的多层安全机制、A
- DigitalOcean Kubernetes现已支持VPC natvie集群
DO_Community
kubernetes
DigitalOceanKubernetes(DOKS)的VPCnatvie集群功能现已正式上线!这一新功能实现了DOKS集群与虚拟私有云(VPC)资源之间的无缝集成,提升了工作负载的网络灵活性和可扩展性。什么是VPCnatvie集群?VPCnatvie集群支持Kubernetes集群与VPC资源之间进行原生路由。这意味着你的DOKS集群可以作为现有VPC网络架构的自然扩展,提供更流畅的连接和更好
- web开发工具之:一、UUID的介绍,java如何产生UUID,作为数据库的主键和加密算法的盐
java冯坚持
web开发java数据库
文章目录前言一、UUID是什么二、java如何产生UUID1.生成随机UUID(Version4)2.通过指定的字符串生成UUID三、UUID作为数据库主键1.优点2.缺点四、UUID作为加密的盐总结前言现在web开发中,很多使用UUID作为主键和加密的盐的,其实很简单,这里学习和介绍一下。一、UUID是什么UUID(UniversallyUniqueIdentifier,通用唯一标识符)是一种1
- YOLO 安装 并且命令行指定配置文件
ELI_He999
python人工智能YOLO人工智能深度学习
pipinstallultralyticssettings.yaml保存到当前目录,data参数yolo命令行指定配置文件{"settings_version":"0.0.6","datasets_dir":"xxxx\\datasets","weights_dir":"xxxx\\weights","runs_dir":"xxxx\\runs","uuid":"xxxx","sync":true
- k8s namespace绑定节点
mumu2lili
k8s云计算kubernetesjava容器
k8snamespace绑定节点1.apiserver启用准入控制PodNodeSelector2.namespace添加注解scheduler.alpha.kubernetes.io/node-selector3.labelnode1.apiserver启用准入控制PodNodeSelectorvim/etc/kubernetes/manifests/kube-apiserver.yamlspe
- 【Java】阿里云OSS上传、删除文件
PlanOne_A
java阿里云数据库
阿里云OSS上传、删除文件编写AliOssConfig:importlombok.Data;/***DESC:*VERSION:1.0.0*/@DatapublicclassAliOssConfig{privateStringendpoint;privateStringaccessKey;privateStringaccessSecret;privateStringbucket;privateSt
- Package ‘importlib-metadata‘ requires a different Python: 3.6.10 not in ‘>=3.7‘
zy_whynot
pythonpython开发语言后端
报错ERROR:Package'importlib-metadata'requiresadifferentPython:3.6.10notin'>=3.7'WARNING:Youareusingpipversion20.0.2;however,version21.3.1isavailable.Youshouldconsiderupgradingviathe'/usr/local/bin/pytho
- docker-compose篇---创建jupyter并可用sudo的创建方式
心惠天意
dockerjupyter容器
docker-compose篇—创建jupyter并可用sudo的创建方式version:'3'services:jupyter:image:jupyter/scipy-notebook:latestports:-"8888:8888"-"9000:8000"-"2223:22"volumes:-./notebooks:/home/jovyan/workenvironment:-NB_UID=0#
- Maven修改默认编码格式UTF-8
程柯梦想
mavenjava
文章目录查看当前编码格式修改编码格式查看修改后编码查看当前编码格式cmd命令C:\Users>mvn-vApacheMaven3.9.9(8e8579a9e76f7d015ee5ec7bfcdc97d260186937)Mavenhome:D:\develop\apache-maven-3.9.9Javaversion:1.8.0_421,vendor:OracleCorporation,runt
- 【Docker】 privileged: true:允许容器获得比默认更高的权限
roman_日积跬步-终至千里
Dockerdocker容器运维
文章目录一.启用`privileged`模式二.`privileged:true`的作用三.安全隐患与处理privileged:true是Docker中一个特殊的配置,允许容器获得比默认更高的权限。虽然它可以解决一些特定问题,但也带来了安全风险。一.启用privileged模式DockerCompose示例:version:"3.8"services:myservice:image:myimage
- VIM实用指南(5)和系统相互复制粘贴
奇妙之二进制
嵌入式/Linux#VIM实用指南vim编辑器linux
文章目录依赖检查vim复制到系统剪切板系统剪切板复制到vim中映射快捷键依赖检查要完成vim中的内容复制到系统剪切板,需要vim支持+clipboard,检查的方法(ubuntu16.04为例):打开terminal(ctl+alt+t)输入vim--version|grepclipboard你会得到这样的结果:查看clipboard和xterm_clipboard前面的符号加号(+),表示支持减
- kotlin gradle踩过的坑
112479
随手记kotlin开发语言android
Nocachedversionofcom.android.tools.build:gradle3.6.1availableforofflinemode解决方法-CSDN博客配置文件里的gradle版本,需要和gradle环境版本一致Gradle入门初探_gradle环境变量配置-CSDN博客java历史版本,附账号密码JDK历史所有版本下载地址(附Oracle帐号)_能下载任何版本jdk的软件-C
- 构建一个rust生产应用读书笔记四(实战6)
编码浪子
Rust学习rust网络oracle
本节我们开始使用tracing来记录日志,实际上在生产环境中,更推荐使用tracing作为日志记录的首先,它提供了更丰富的上下文信息和结构化日志记录功能。tracing不仅可以记录日志信息,还可以跟踪函数调用、异步任务等,适用于复杂的分布式系统和微服务架构。添加配置依赖#Cargo.tomltracing="0.1.19"tracing-subscriber={version="0.3",feat
- pub.flutter.org 国内镜像站
allanGold
Flutter
直接可访问的站点:https://pub.flutter-io.cnwindows设备系统属性->高级->环境变量:添加下面中的某一对mac设备UsingFlutterinChinaTheFluttercommunityhasmadeaSimplifiedChineseversionoftheFlutterwebsiteavailableathttps://flutter.cn.Ifyou’dli
- 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