- C++ 第四阶段 STL 容器 - 第七讲:详解 std::vector 与 std::deque —— 动态数组与双端队列的深度解析
目录一、std::vector与std::deque概述二、std::vector详解1.核心特性2.常用函数解析3.动态扩容机制三、std::deque详解1.核心特性2.常用函数解析3.性能优势四、std::vector与std::deque对比五、性能优化建议1.std::vector优化2.std::deque优化六、常见陷阱与解决方案1.std::vector的扩容陷阱2.迭代器失效问题
- 【C++ STL】 容器——unordered_set详解
RichardK.
C++STLc++数据结构开发语言学习
在C++标准库(STL)中,unordered_set是一个无序集合,它底层采用哈希表实现,提供快速的查找、插入和删除操作。与set不同,unordered_set不会自动排序元素,而是依据哈希函数存储元素,因此其操作的时间复杂度通常为O(1)。1.unordered_set的基本特点底层实现:基于哈希表(通常是哈希桶+链表或开放地址法)。元素唯一性:不允许存储重复元素。无序存储:元素的存储顺序不
- C++ 第四阶段 STL 容器 - 第五讲:详解 std::set 与 std::unordered_set
程序员弘羽
C++从入门到入土连载c++开发语言哈希算法算法
目录一、std::set与std::unordered_set概述二、std::set详解1.核心特性2.常用函数解析3.自定义比较函数三、std::unordered_set详解1.核心特性2.常用函数解析3.自定义哈希与比较函数四、性能对比与优化建议1.性能对比表2.优化建议五、常见陷阱与解决方案1.修改std::set中的元素2.std::unordered_set的rehash3.自定义类
- 实践篇:09-构建标准化的 OS 基础镜像
企鹅侠客
dockerdockerfile镜像docker构建基础镜像
在设计篇:04-Dockerfile设计原则与镜像管理规范中,我们探讨了镜像逻辑分层策略,其中系统层(OSLayer)是整个体系的基石。本篇将指导你如何选择合适的Linux发行版作为基础,并构建一个标准化、精简且安全的系统层镜像,为后续的所有应用镜像打下坚实基础。如何选择基础OS镜像?选择合适的基础OS镜像至关重要,它直接影响后续镜像的大小、安全性、稳定性和构建效率。以下是几种常见选择及其特点:主
- AlpineLinux安装docker
山岚的运维笔记
Linux运维及使用docker容器运维
或许你在docker中使用AlpineLinux的镜像使用得多,但是有没有想过在AlpineLinux上安装Docker来使用呢?默认情况下,Docker包位于社区仓库中,因此在使用包管理来安装docker之前建议更换为国内源,并开启社区仓库的链接。下面的操作是在root用户下运行的,如果要使用非root用户,请先确保该用户有sudo的权限配置为国内源并开启社区源:修改AlpineLinux的仓库
- centos7下docker安装postgresql+postgis
环境:centos7/docker最初直接拉取的postgresql数据,在导入.bakup文件时始终会报错,最后才想到该数据库默认不带postgis空间组件###一、拉取镜像这里我们拉取postgres和gis组合的镜像目前组合的版本有如下几个-11.0-2.5-10.0-2.4-9.6-2.4这里以拉取postgresqlv11.0和postgisv2.5的镜像为例dockerpullkart
- dockercompose 安装postgresql+postgis
小橘快跑
dockerpostgresql数据库
前提:安装好docker及docker-compose1、编写docker-compose.yml文件version:'3'services:pgsql:image:postgres:14.8container_name:pgsqlrestart:alwaysenvironment:POSTGRES_DB:chargePOSTGRES_USER:postgresqlPOSTGRES_PASSWOR
- 离线安装 Docker 和 Docker Compose 教程
海洋猿
云原生docker运维linuxubuntu
一、离线安装(一)安装Docker下载Docker安装包访问Docker官方静态安装包页面:https://download.docker.com/linux/static/stable/x86_64/Indexoflinux/static/stable/x86_64/解压安装包并移动文件tar-xvfdocker-27.1.0.tgzmvdocker/*/usr/bin/将Docker注册为sy
- 电容器保护测控装置:原理与功能解析
电容器保护测控装置是电容补偿系统的核心设备,适用于非直接接地或小电阻接地系统。其采用保护测控一体化设计,集成通信接口,支持组屏或就地安装,实现对并联电容器组的全方位监控与故障防护。电容器保护测控装置通过多维度保护逻辑(电流/电压/零序/非电量)、高精度测控及强抗干扰设计,保障电容补偿系统安全运行。一、核心保护原理1.电流类保护三段式定时限过流保护动作逻辑:任一相电流>定值且持续>延时时间→跳闸出口
- 银河麒麟服务器迁移运维管理平台(接口文档)
RZer
麒麟软件运维服务器androidKylinsoft
银河麒麟高级服务器操作系统V10系统管理员手册文章目录CVE下发接口获取CVE接口获取主机接口获取批次接口获取父日志接口获取子日志接口CVE下发接口功能描述:CVE下发接口调用接口URL:/cve/issue接口类型:POST请求头:API-KEY:your_API_key(内容为APIKey值,需要通过登陆平台,在个人信息处获取)参数:参数名类型含义targetType字符串传入类型(二选一):
- docker-compose启动mysql一直提示挂载目录存在文件
version:"3.8"services:mysql:image:mysql:8.0.33container_name:mysqlrestart:unless-stoppedenvironment:MYSQL_ROOT_PASSWORD:123456MYSQL_DATABASE:sample_dbTZ:Asia/Shanghaiports:-"3306:3306"volumes:-/exampl
- Linux系统管理:服务器运维与安全防护
教IT的小王A
服务器运维linuxweb安全安全网络
Linux系统管理:服务器运维与安全防护Linux系统管理:服务器运维与安全防护一、Linux系统管理基础系统架构与组成是一种自由和开放源代码的类UNIX操作系统,它是基于POSIX和UNIX的多用户、多任务操作系统。Linux的核心是Linux内核,其基本组成部分包括Shell、文件系统、系统库等。常用Linux命令文件与目录管理在Linux系统中,文件和目录的管理是非常重要的,例如用户常用的l
- Linux 系统管理:高效运维与性能优化
代码老y
运维linux性能优化
一、Linux系统管理基础(一)用户与权限管理用户和权限管理是Linux系统管理的基础。通过合理配置用户和权限,可以确保系统的安全性和稳定性。用户管理使用useradd、usermod和userdel命令管理用户账户。使用passwd命令设置用户密码。使用groups和gpasswd命令管理用户组。权限管理使用chmod命令设置文件和目录的权限。使用chown和chgrp命令更改文件和目录的所有者
- ali PaddleNLP docker
大熊程序猿
AI大模型docker容器运维
一、添加文件nano /root/projects/paddlenlp_similarity_server.pyfromflaskimportFlask,request,jsonifyimportpaddlefrompaddlenlpimportTaskflowimportjsonimportuuidapp=Flask(__name__)#初始化文本相似度模型similarity=Taskflow
- 16.6 《3分钟扩容20实例!LanguageMentor容器化部署实战:高并发下的负载均衡与自动扩展方案》
少林码僧
负载均衡运维人工智能语言模型机器学习langchainllama
LanguageMentorAgent容器化部署与发布:高并发场景下的负载均衡与自动扩展关键词:KubernetesHPA,AWSAutoScaling,会话亲和性,监控指标,滚动更新1.高并发场景下的架构挑战LanguageMentor作为对话式Agent需要处理多用户同时在线会话,容器化部署需解决两个核心问题:
- 使用 SQLite 和 Brighter 实现发件箱模式
actor_dev
c#.netbrightersqlite
简介本指南演示如何使用SQLite和.NET8,结合Brighter库实现**发件箱模式(OutboxPattern)**,以确保数据库更新与消息发布之间的事务一致性。项目目标处理CreateNewOrder命令,在事务成功时发布两个事件(OrderPlaced,OrderPaid)。如果发生错误(例如业务规则冲突),则回滚数据库更改和消息发布。要求.NET8+使用Podman(或Docker)运
- 使用 MySQL 和 Brighter 实现出站箱模式
actor_dev
.netc#brighterrabbitmqmysql发件箱模式
简介本指南演示了如何使用Brighter库在MySQL和.NET8中实现Outbox模式(出站箱模式),以确保数据库更新和消息发布之间的事务一致性。项目目标处理一个CreateNewOrder命令,并且只有在事务成功时才发布两个事件(OrderPlaced,OrderPaid)。如果发生错误(例如业务规则冲突),则数据库更改和消息发布都将回滚。要求.NET8+Podman(或Docker)运行本地
- 信创适配实践:ARM64 架构 KylinOS 系统下 Docker 部署 Nginx 及跨架构数据迁移全攻略
H03004
架构dockernginx
目录一、信创背景与实践价值二、环境筹备:ARM64+KylinOS基础配置(一)系统预检:锁定架构与版本(二)Docker安装:适配KylinOS的踩坑指南1.依赖预处理(解决KylinOS源差异)2.配置ARM64专属镜像源3.安装与加速优化4.验证安装三、Nginx容器全流程:从镜像到运维(一)镜像选择:ARM64适配的核心逻辑(二)容器启动:参数解析与权限踩坑1.启动命令(含持久化挂载)2.
- docker安装gitlab
weixin_43991457
dockergitlab
下面是GitLab17.11(CE版)的完整Docker安装步骤,适用于Linux系统(包括ARM64架构)。将包含启动命令、端口映射、数据卷挂载、外部访问配置等完整说明。一、前提条件安装好Docker(推荐版本≥20.10)可用磁盘空间≥10GB(建议30GB+)主机名解析正确(推荐设置hosts或DNS)系统架构支持ARM64或x86_64二、拉取镜像这个镜像有时由于众所周知的原因无法pull
- 如何在宝塔面板中配置SSL证书?
奔跑吧邓邓子
高效运维ssl服务器网络协议
提示:“奔跑吧邓邓子”的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如IBMSystem3650M5)、云服务平台(如腾讯云、华为云)、服务器软件(如Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker等)、开发工具(如Git、HBuilder)以及网络安全(如挖矿病毒排查、SSL证书配置)等多个方面。无论
- 【DevOps工具篇】Gitlab Runner设置(使用Docker in docker作为Runner)
小涵
DevOps企业级项目实战devopsgitlabdocker
【DevOps工具篇】GitlabRunner设置(使用Dockerindocker作为Runner)目录【DevOps工具篇】GitlabRunner设置(使用Dockerindocker作为Runner)DockerinDocker更新DockerCompose文件添加自定义docker网络的更改注册DockerinDocker执行器DockerinDocker的已知问题Docker执行器的替
- docker安装gitlab并配置ssl证书
段帅龙呀
dockerdockergitlab容器
本篇安装环境Docker版本:Dockerversion28.3.0域名:test.disallow.cn自签证书:/etc/gitlab/ssl(已经存放在该目录)一、拉取镜像dockerrun-itd\--privileged=true\--hostnamegitlab.test.disallow.cn\--publish443:443--publish80:80--publish2222:2
- ffmpeg 环境变量和新版本替换
珊珊而川
ffmpeg
进入容器里面:拷贝新版ffmpeg到系统路径cp/app/roop/ffmpeg-7.0.2-amd64-static/ffmpeg/usr/local/bin/cp/app/roop/ffmpeg-7.0.2-amd64-static/ffprobe/usr/local/bin/修改PATH变量,确保优先使用/usr/local/binexportPATH=/usr/local/bin:$PAT
- 一文读懂Kubernetes:架构、优势与应用
t0_54program
大数据与人工智能kubernetes架构容器个人开发
在当今的云原生计算领域,容器和Kubernetes的应用极为广泛。尽管Kubernetes是一项相对较新的技术,但众多全球企业已在生产环境中用它来管理关键业务应用程序。它之所以广受欢迎,得益于其一系列强大的功能,如增强的安全性、更出色的微服务管理能力、更高的可观测性,以及更高效的扩展和资源利用。什么是Kubernetes?Kubernetes,常简称为k8s,是谷歌实验室于2014年开发的开源容器
- Docker 搭建 GitLab-ssl
qq_36381626
mdgitlabdockergit
参考正确使用Docker搭建GitLab只要半分钟sudomkdir-p/home/data/gitlab/config然后在该文件目录下,新建自签名的证书:sudoopensslreq-new-x509-days36500-nodes-outconfig/nginx.pem\-keyoutconfig/nginx.key-subj"/C=US/CN=gitlab/O=gitlab.com"git
- frp内网穿透及sshuttle
段帅龙呀
Linuxlinux
frpssh配合sshuttle可以真实模拟,直接访问内网vmwareip地址FRP内网穿透一、所需环境:服务端:1台有公网ip并且安装有docker的服务器、域名客户端:有1台或者多台安装docker的服务器如果有域名需要添加对应的解析有防火墙或者安全组需要开放对应端口,frps监听7000,frpsdashboard监听7500,client本次示例是6000,根据实际情况修改本篇笔记均使用u
- docker安装nginx并配置ssl证书,代理宿主机服务
Blueeyedboy521
开发工具nginxssldocker
目录1、拉取镜像2、创建映射目录3、先启动一个nginx容器用于cp对应的文件夹类型,用于后期挂载使用4、映射容器文件5、停止当前nginx容器,并删除7、拷贝ssl证书8、配置nginx.conf9、运行10、进入容器11、查看日志12、代理宿主机服务查看宿主机在docker中的ip配置docker上安装的nginx1、拉取镜像dockerpullnginx2、创建映射目录#首先,创建目录ngi
- 【docker】如何正确拉取langgraph-api
等风来不如迎风去
AI入门与实战docker容器运维
加这些配置都没用#设置代理环境变量exportHTTP_PROXY=http://127.0.0.1:7890exportHTTPS_PROXY=http://127.0.0.1:7890#设置更长的超时时间exportDOCKER_CLIENT_TIMEOUT=
- C++ STL常用二分查找算法
basketball616
C++基础算法c++数据结构
lower_boundlower_bound是C++标准库算法,通常用于有序序列中查找第一个不小于给定值的元素。它属于头文件,并且是基于二分查找实现的,因此要求输入序列必须是有序的。基本语法#include//引入算法库Iteratorlower_bound(Iteratorfirst,Iteratorlast,constT&value);first和last是迭代器,分别表示容器的起始位置和结束
- Redis可视化管理工具选型指南:7款主流软件深度对比测评
redis
Redis作为高性能的内存数据库,在现代应用开发中扮演着重要角色。为了更好地管理和监控Redis实例,选择一款合适的可视化工具至关重要。本文将为您推荐7款优秀的Redis可视化管理软件,帮助您提升开发和运维效率。RedisInsightRedisInsight是Redis官方推出的免费可视化工具,提供了全面的数据库管理功能。该工具支持多种数据结构的可视化展示,包括字符串、哈希、列表、集合和有序集合
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http