- Python中os.path模块的使用详解
幻想世界中的绚丽色彩
python开发语言Python
os.path模块是Python标准库中的一个模块,提供了用于处理文件路径和名称的函数。它是处理操作系统相关的路径的理想选择,无论是在Windows、Linux还是其他操作系统上。本文将详细介绍os.path模块的常用函数及其用法,并提供相应的源代码示例。获取文件名和目录名os.path模块提供了一些函数来获取文件路径的各个部分,如目录名、文件名和扩展名等。importospath='/path/
- Linux安装Python3
培根芝士
PythonLinuxpythonlinux
1.下载python3编译的依赖包yuminstall-ygccpatchlibffi-develpython-develzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel2.安装openssl1.1.xyu
- Linux C++ 开发9 - 手把手教你使用gprof性能分析工具
c++
1.什么是gprof?2.gprof的用法2.1.编译程序2.2.运行程序2.3.生成分析报告2.4.gprof常用参数说明2.5.分析报告解读2.5.1.Flatprofile各个字段的含义2.5.2.Callgraph各个字段的含义3.Demo演示3.1.demo04.cpp源码3.2.编译、运行和分析3.3.查看分析报告1.什么是gprof?gprof这是一个GNU的性能分析工具,它是GCC
- linux下编译安装python3.10亲测可行!
致命扼腕
环境安装服务器使用linuxpython运维
方法简单两部步就可以啦apt-getupdate&&apt-getupgrade-yapt-getinstall-y--no-install-recommendsgccg++makepython3python3-devpython3-pippython3-venvpython3-wheelespeak-nglibsndfile1-dev测试命令行输入python3即可看到安装成功安装python包
- linux 安装python3.7.10
多财多亿,凭亿近人
python随手笔记Python安装编译依赖Linux
apt-getupdateapt-getupgradeaptinstallbuild-essential-yaptinstalllibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-devlibffi-dev-yaptinstallzlib1g-devaptinstallwgetaptinstallopensslaptinstallc
- Linux下安装python3.10.12环境
爱思考的李MAX
linux运维服务器python
安装python3编程环境检查是否安装python3python3-V安装python3依赖sudoyum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibffi-devel下载pyt
- linux 安装python 3.10
处女座_三月
pythonlinux运维服务器
1下载对应的安装包下载地址:https://download.csdn.net/download/weixin_43401380/885196692上传服务器1步骤1:解压文件tar-xzfPython-3.10.13.tgz2步骤2:创建安装目录mkdirlocal3开始安装1安装gcc:你需要安装gcc,这是GNU编译器集合的一部分,用于编译C程序。执行以下命令来安装gcc:sudoaptup
- linux 常用长命令
三境界
操作系统驱动开发linux
搜索时,排除某个目录搜索名为libc的文件,但是排除/mnt目录sudofind/-path"/mnt"-prune-o-typef-name"libc"-print
- KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机
weixin_30794499
数据结构与算法运维操作系统
一.KVM简介KVM(名称来自英语:Kernel-basedVirtualMachine的缩写,即基于内核的虚拟机),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上。KVM在具备IntelVT或AMD-V功能的x86平台上运行。它
- Ubuntu16.04环境下安装cuda10+pytorch1.2
小楼昨夜,东风
pytorch深度学习神经网络
1、背景环境:Ubuntu16.04&titanx作为新一代的人工智能训练平台的PYTORCH,有其独特的优势,为此,完整的安装这一平台,是开展所有工作的首要条件,一开始,笔者认为应该轻松的完成,但是发现实际上要从零完成这一工作,尤其是在NVIDIATITANX下,是需要3~4天的摸索的,为了便于后续的工作,也为了后面使用的童鞋,写下这篇文章,闲话少说,先上最终完成shell输出。xxx@xxxU
- linux 配置Java环境变量
找个栗子
linuxjavapython
要在Linux上配置Java环境变量,可以按照以下步骤进行操作:首先,打开终端。确认是否已安装Java。在终端中运行以下命令:java-version如果已安装Java,则会显示Java的版本信息。如果没有安装Java,请先安装Java。找到Java的安装路径。在终端中运行以下命令:sudoupdate-alternatives--configjava这会显示Java的安装路径。记下此路径,后续会
- docker 中安装 zerotier
AlenTech
docker容器运维
目录Ubuntu中群晖中创建持久性TUN在NAS上安装docker设置容器用法升级ZeroTierUbuntu中创建Zerotier应用容器:dockerrun-d\--namezt\--restart=always\--device=/dev/net/tun\--net=host\--cap-add=NET_ADMIN\--cap-add=SYS_ADMIN\-v/var/lib/zerotie
- 【PyQt】学习PyQt进行GUI开发从基础到进阶逐步掌握详细路线图和关键知识点
shanks66
pyqtpython
学习PyQt的必要性PyQt是开发跨平台GUI应用的强大工具,适合需要构建复杂、高性能界面的开发者。无论是职业发展还是项目需求,学习PyQt都具有重要意义。1.跨平台GUI开发跨平台支持:PyQt基于Qt框架,支持Windows、macOS、Linux等多个平台,开发的应用可以轻松移植。统一代码库:只需维护一套代码,减少跨平台开发的复杂性。2.丰富的UI组件多样化控件:PyQt提供按钮、文本框、表
- 使用Linux,龙芯不算弱
rainandtear
嵌入式经验分享linuxwindowsmotorolasununix工作
在美国,这里实研室用167MHz的Sun工作站设计卫星。另外,在Austin的Motorloa工作的同学用300MHz的Sun工作站设计做,芯片仿真运算。我所在的实研室做的机器人用Linux和200Mhz的CPU。你以为美国人没钱买什么3Ghz的奔腾吗?很多科学运算领域没人用Windows,用Intel的也很少。主要是windows系统老死机。以前的Win98,每天差不多得死个三,四次。而这些科学
- LoongArch32 指令集探索学习1:初入龙芯
星林湖月
龙芯学习
1.1.发现问题1.1.LoongArch是个啥?龙芯这个名字一听就是咱这龙的传人该用的东西,这是从MIPS指令集中新设计的指令集,官方名字叫LoongArch,简称LA。这个指令集分为开放的LoongArch32精简版和LoongArch64,前者的32位指令集全部开源,后者64位只开放基础指令集,高级部分的二进制翻译暂且没有详细文档,而是由开发者在对GCC、Linux等基础软件贡献中露出。为何
- Ubuntu 下 nginx-1.24.0 源码分析 ngx_debug_init();
若云止水
nginx运维
目录ngx_debug_init()函数:NGX_LINUX的定义:ngx_debug_init()函数:ngx_debug_init()函数定义在src\os\unix目录下的ngx_linux_config.h中#definengx_debug_init()也就是说这个环境下的main函数中的ngx_debug_init()这行代码其实什么都没有做在nginx.c的开头引入了#include而
- 如何安装kubernetes1.29.2
卍逝去&夜的星空卍
k8skuberneteslinux运维bash
如何在Ubuntu22.04上安装kubernetes1.29.2一、前提要求1.1.Ubuntu22.041.2.代理节点1.3.提供思路1.4.版本注意二、安装前准备2.1关闭防火墙2.2.关闭selinux2.3.关闭swap交换分区2.4.根据部署规划设置主机名2.5.设置时区(每个节点时间同步)2.6.添加hosts规则(保证每个节点网络畅通)三、开始安装3.1.安装kubeadm,ku
- ubuntu22.04安装k3s, kuboard
LogicLancer
docker持续集成
直接安装方式更新系统包列表sudoaptupdate安装所需的依赖sudoaptinstall-ycurl下载k3s安装脚本curl-sfLhttps://get.k3s.io|sh-验证k3s安装sudosystemctlstatusk3s获取k3s的tokensudocat/var/lib/rancher/k3s/server/node-token设置kubectl配置mkdir-p$HOME
- Ubuntu 下 nginx-1.24.0 源码分析 - ngx_strerror_init()函数
若云止水
nginx运维
目录ngx_strerror_init()函数声明ngx_int_t类型声明定义intptr_t类型ngx_strerror_init()函数实现NGX_HAVE_STRERRORDESC_NPngx_strerror_init()函数声明在nginx.c的开头引入了:#include在ngx_core.h中引入了#include在ngx_errno.h这个文件中声明了ngx_strerror_i
- tensorflow和python不兼容_tensorflow与numpy的版本兼容性问题的解决
li旭旭
tensorflow与numpy的版本兼容性问题的解决,版本,站长站,错误,文章,较高tensorflow与numpy的版本兼容性问题的解决易采站长站,站长之家为您整理了tensorflow与numpy的版本兼容性问题的解决的相关内容。在Python交互式窗口导入tensorflow出现了下面的错误:root@ubuntu:~#python3Python3.6.8(default,Oct72019
- 2024年AWS服务全总结
因_果_律
aws云计算
AWS有很多服务,但为了更好地理解每个服务的具体作用,我整理了这份总结。我是按照打开管理控制台,根据“服务”列表进行的汇总。因此,未列入列表的预览版等服务不包括在内。目前,服务总数为247个。计算服务AmazonEC2(亚马逊弹性计算云)正式名称是AmazonElasticComputeCloud,是AWS的IaaS(基础设施即服务)之一。用户可以创建并运行Linux/UNIX、Windows、m
- 在Ubuntu 20.04上安装Node.js 16和npm
电子木头
node.jsubuntunpm
1.更新系统包列表首先,确保你的系统包列表是最新的。sudoaptupdatesudoaptupgrade2.安装Node.js16和npm使用NodeSource提供的安装脚本来安装Node.js16及其附带的npm。添加NodeSource仓库:curl-fsSLhttps://deb.nodesource.com/setup_16.x|sudo-Ebash-安装Node.js16:运行以下命
- Linux C++ 开发5 - 一文了解CMake构建
c++
1.什么是CMake?1.1.CMake的定义1.2.CMake有哪些优势?1.3.CMake的特点1.4.Cmake、CMakeLists.txt、Make、Makefile之间的关系2.应用案例2.1.项目概述2.2.CMakeLists.txt2.2.1.基本用法2.2.2.完整内容2.2.3.构建执行上一篇《LinuxC++开发4-入门makefile一篇文章就够了》我们讲解了通过Make
- 博客建站7 - hexo博客独立服务器如何自动部署?
c++
1.本网站的系统架构2.安装git3.配置git用户3.1.为什么要创建git用户3.2.创建git用户3.3.设置git用户的密码3.4.创建公钥-私钥对3.5.服务器配置公钥4.hexo配置自动化部署4.1.配置Git仓库4.2.hexo站点配置1.本网站的系统架构网站示例:sunlogging.com服务器:阿里云ECS服务器系统:Ubuntu24.04LTS博客框架:Hexo网站主题:Vo
- Linux C++ 开发4 - 入门makefile一篇文章就够了
c++
1.make和Makefile1.1.什么是make?1.2.什么是Makefile?1.3.make与Makefile的关系2.Makefile的语法2.1.基本语法2.2.变量2.3.伪目标2.4.模式规则2.5.自动变量2.6.条件判断3.示例演示3.1.编译HelloWorld程序3.2.编译多文件项目3.2.1.项目概述3.2.2.需求分析3.2.3.MakefileV1.03.2.4.
- 在 Ubuntu 上安装 Node.js 23.x
engchina
LINUXubuntunode.jslinux
在Ubuntu上安装Node.js23.x前提条件安装步骤1.下载设置脚本2.运行设置脚本3.安装Node.js4.验证安装参考链接总结在现代web开发中,Node.js是一个不可或缺的工具。它提供了一个强大的JavaScript运行时环境,使得开发人员可以在服务器端使用JavaScript。本文将详细介绍如何在Ubuntu上安装Node.js23.x。前提条件在开始安装之前,请确保你的系统上已经
- C语言实现检测Linux网络状态(附带源码)
Katie。
cc++实战项目网络c语言linux
项目介绍:C语言实现检测Linux网络状态背景与需求在现代操作系统中,网络状态监控是保障系统稳定性和性能的重要环节。特别是在Linux系统中,作为服务器和嵌入式设备广泛应用的操作系统,网络的畅通与否直接影响到服务的质量和可用性。尤其是在多设备、高负载的网络环境中,实时监测和检查网络状态对于维护系统的稳定性至关重要。因此,开发一个能够实时检测和分析Linux网络状态的工具具有重要的实践意义。本文将通
- ️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206
Narutolxy
技术干货分享智浪初航windows语言模型人工智能
️在WindowsWSL上部署Ollama和大语言模型的完整指南引言随着大语言模型(LLM)和人工智能的飞速发展,越来越多的开发者尝试在本地环境中部署大模型进行实验。然而,由于资源需求高、网络限制多以及工具复杂性,部署过程常常充满挑战。本指南基于实际经验,详细讲解如何在WindowsWSL(WindowsSubsystemforLinux)上部署Ollama和大语言模型,同时解决端口转发等常见痛点
- Linux 系统上安装 Docker 方法详解与比较
嵌入式Jerry
Dockerlinuxdocker运维
Docker是现代DevOps和容器化应用开发的重要工具,它简化了应用的部署和管理流程。本文将详细介绍在Linux系统上安装Docker的多种方法,并对它们的适用场景、优缺点进行对比,确保读者能够根据自身需求选择最优方案。1.官方推荐的安装方法Docker官方提供了基于APT(Debian/Ubuntu)、DNF/YUM(RHEL/CentOS/Fedora)和Zypper(openSUSE)的安
- Linux网络知识详解以及demo(Centos6、7)——OSI、TCP、UDP、IP、子网掩码/划分、网关、路由、广播、虚拟网络、网卡、交换机、DNS、ARP
Pert-
linux
ip地址:网络通讯标识信息子网掩码:在局域网中可以有多少个主机网关:从一个局域网到另一个局域网的必经之路网络号:主机位全为0广播地址:主机位全为1子网掩码:网络位全为1,主机位全为0虚拟软件网络配置仅主机模式宿主机可以访问外网,虚拟主机不能访问外网,只能和宿主机或其他虚拟主机建立通讯优缺点:优点:更加安全缺点:不能连接外网NAT模式宿主机和虚拟主机都可以访问外网但是虚拟主机访问外网的时候ip地址是
- 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