- [点点搬家]初试mod_perl+apache 之二
promenade
perlapache
[四年前的博客了,学习apache的纯真年代]学习practicalmod_perl中关于apache的配置,章节连接如下http://www.modperlbook.org/html/4-1-1-Configuration-Files.html1,".htaccess"文件,可以看到httpd.conf中有这样的模块AllowOverrideNoneOptionsNoneOrderallow,d
- 企业微信获取用户信息
C18298182575
微信企业微信
在企业微信开发中,cgi-bin/user/getuserinfo是一个重要的API接口,用于根据OAuth2授权码(code)获取用户的基本信息。这个接口通常用于在企业微信的网页中,通过OAuth2授权流程获取当前访问用户的身份信息。接口说明接口地址:复制GEThttps://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=AC
- NUMA架构介绍
兴趣使然HX
架构微服务spring
NUMA架构详解NUMA(Non-UniformMemoryAccess,非统一内存访问)是一种多处理器系统的内存设计架构,旨在解决多处理器系统中内存访问延迟不一致的问题。与传统的UMA(UniformMemoryAccess,统一内存访问)架构不同,NUMA架构中每个处理器访问不同内存区域的速度可能不同。以下是NUMA架构的详细介绍,包括架构细节、CPU和内存的组合方式、缓存层次、涉及的硬件及其
- 使用SAXReader以XML方式解析excel
tkgup
业务开发常见问题解决
使用SAXReader方式解析excelimportorg.apache.poi.openxml4j.opc.OPCPackage;importorg.apache.poi.openxml4j.opc.PackageAccess;importorg.apache.poi.ss.usermodel.BuiltinFormats;importorg.apache.poi.ss.usermodel.Da
- 谈谈 Node.js 中的文件系统(fs)模块,如何进行文件读写操作?
程序员黄同学
node.js前端开发JavaScriptnode.js
Node.js文件系统(fs)模块深度解析与实践指南一、模块基础与核心能力Node.js的fs模块提供了完整的文件系统操作能力,涵盖50+个方法,主要分为以下类型:文件读写:基础CRUD操作目录操作:创建/删除/遍历目录文件监控:watch/watchFile方法文件信息:stat/access等方法流式处理:createReadStream/createWriteStream//基础引入方式co
- 解锁 ES6 访问器属性 Getter & Setter
代码里的小猫咪
前端访问器属性GetterSetter
在JavaScriptES6及其后续版本中,可以使用访问器属性(AccessorProperties)来定义getter和setter,从而拦截对象属性的访问和赋值。这种机制不仅提供了更灵活的属性管理方式,还能增强数据的封装性和安全性。1.访问器属性(Getters和Setters)在ES6的class语法中,可以使用get和set关键字定义访问器属性,这样可以像访问普通属性一样调用方法,而不需要
- 后端有没有开“跨域通行证”,对前端有什么影响?—— 一看就懂的对比指南
劲雨波
前端前端javascript
一、快递员的规矩:跨域问题的核心想象浏览器是个严格的快递员,遵守一个规矩:“只送同小区快递,除非对方小区开了通行证!”这里的“通行证”就是后端的CORS配置。后端有没有开这个通行证,直接影响前端能不能顺利发送请求。二、两种场景对比:后端开没开通行证?场景1:后端没开通行证(没配置CORS)对前端的影响:开发时:快递员(浏览器)直接拒单!#控制台报错Accesstofetchat'http://ap
- MySQL的 int , bigint字段与java的 int , long 字段反射/映射时,产生的问题
劲雨波
MySQLJavamavenjavamysql开发语言
针对java连接mysql数据库映射时产生的问题java.lang.IllegalArgumentException:argumenttypemismatchatsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)总结了一下是字段类型不匹配的问题,整理了一下表格intMySQL无符号(unsigned)Javaint原本(未选择无符号
- 测试类中无法注入(找不到此bean)
一个想打代码的yebadi_
错误点单元测试springboot
今天打开了一个项目进行方法测试的时候出现了一个错误。java.lang.NullPointerExceptionattest.example.Test1.test2(Test1.java:29)atjava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atjava.base/jdk.internal
- 什么是vlan
Steve lu
计算机网络华为网络网络协议
vlan划分原理一.vlan的的概念及优势二.vlan的种类三.静态vlan的配置一.概念二.配置三.Trunk介绍与配置一.Trunk的作用二.Trunk端口与access端口的区别三.配置Trunk模式命令一.vlan的的概念及优势vlan(虚拟局域网)是一个逻辑设备上的设备和用户,这些设备和用户不受物理位置的限制,可以根据功能、部门及应用等因素将他们组织起来,相互之间的通信就好像他们在同一网
- linux桌面qt应用程序UI自动化实现之dogtail
测试盐
python自动化python
1.前言Dogtail适用于Linux系统上进行GUI自动化测试,利用Accessibility技术与桌面程序通信;Dogtail包含一个名为sniff的组件,这是一个嗅探器,用于GUI程序追踪;源码下载:dogtail·PyPI可通过sudopythonsetup.pyinstall安装或sudopipinstalldogtail安装,但是有用户反馈pip安装不能使用sniff命令,自己选择。还
- 遭遇黑客攻击?3步紧急止血 + 5个代码级防护方案
群联云防护小杜
安全问题汇总服务器运维人工智能网络安全
一、判定攻击存在的关键迹象当服务器出现以下异常时,很可能正在被攻击:流量突增:带宽使用率超过日常3倍#实时监控带宽(示例:每2秒刷新)ifstat-ieth0-T2资源耗尽:CPU/内存长期满载#快速查看资源消耗排名top-o%CPU-c|head-n20异常日志:大量重复错误请求#分析Nginx日志中的高频错误码(如499/500)awk'{print$9}'access.log|sort|un
- nvm安装 node版本报错npm命令不存在
m0_67392661
前端html前端javascriptvue.js
因为项目需要用低版本的node,所以采用了nvm来切换node版本,想装v10.13.0版本的node,但是直接nvminstallv10.13.0时,报以下错误(已经没有截图了),如下:ErrorwhilecreatingC:ProgramFiles(x86)vm14.exe-openC:ProgramFiles(x86)vm10.13.0ode64.exe:Accessisdenied.Cou
- SoapUI 结合 Postman 测试 WebService 协议
那片海还在吗
testpostmanphp测试工具
SoapUI结合Postman测试WebService协议一、WebService协议概述WebService是一种基于标准的Web应用程序接口,允许不同系统之间通过网络进行通信和数据交换。常见的WebService协议有SOAP(SimpleObjectAccessProtocol),它使用XML格式进行消息传递,并且通常基于HTTP或HTTPS进行传输。接下来将介绍如何使用SoapUI和Pos
- ARM裸机-1.ARM体系结构和简单的汇编指令
poi_carefree
嵌入式嵌入式技术物联网arm汇编
一、一些专业术语ROM:readonlymemory只读存储器RAM:ramdomaccessmemory随机访问存储器IROM:internalrom内部ROM,指的是集成到SoC内部的ROMIRAM:internalram内部RAM,指的是集成到SoC内部的RAMDRAM:dynamicram动态RAMSRAM:staticram静态RAM二、ARM的编程模式和7种模式1、ARM有7个基本工作
- 批量下载arXiv论文数据的Python脚本
hajungong007
python
arXiv-toolsPrerequisitesArXivprovidesbulkdataaccessthroughAmazonS3.YouneedanaccountwithAmazonAWStobeabletodownloadthedata.Youalsoneedpython2.DownloadingarXivdocuments1-Installs3cmdwhichisacommandlinet
- asp.net mvc 到 asp.net core3.1 mvc 迁移
ironinfo
dotnetasp.netcorewebapimvcgRPC迁移
目标把以前的asp.netwebapi网站迁移到asp.netcore3.1,过程很不平滑,磕磕绊绊。1.HttpContent.Current找不到了core里面需要先在Startup.cs的ConfigureServices方法里加一句services.AddHttpContextAccessor(),再通过HttpContextAccessor.HttpContext获得这个HttpCont
- HttpClient替换HttpWebRequest--以GET和POST请求为例说明
aidx48924
javajson
首先说一下HttpRequest、WebClient和HttpClient的关系:HttpRequest是基层的请求方式,WebClient是对HttpRequest的简化封装,在WebClient中有对HttpRequest的默认设置;HttpClient是重写的请求方式,相对于HttpRequest更简单实现异步请求,是.NetCore中更推崇的方式。说明:以下代码中在GetAccessTok
- Token相关设计
总是学不会.
系统设计场景java开发前端
文章目录1.双Token机制概述1.1访问令牌(AccessToken)1.2刷新令牌(RefreshToken)2.双Token认证流程3.SpringBoot具体实现3.1生成Token(使用JWT)3.2解析Token3.3登录接口(返回双Token)3.4刷新Token接口3.5退出登录4.总结在微服务架构中,Token认证是保障系统安全性的重要手段,常见的方式包括JWT(JSONWebT
- 跨域问题中获取不到响应头header中的token
HPF_99
springbootajax前端jwtspringbootajax跨域问题
在前后端分离项目整合springboot于jwt的过程中遇到后端在请响应头header中添加token前端进行验证的时候只能获取部分header中的数据而获取不到token解决方法就是在jwt生成token存入header中的时候添加header数据Access-Control-Expose-headers:值为想让前端获取的数据,如token之后在后端就可获取到header中的数据测试:前端获取
- ROM和RAM的区别
羊羊一洋
智能路由器
ROM(Read-OnlyMemory,只读存储器)和RAM(RandomAccessMemory,随机存取存储器)是计算机系统中两种不同类型的存储技术,它们在功能、用途和特性上有显著的区别:1.存储数据的持久性:-ROM:通常用于存储固件或系统软件,这些数据在断电后依然可以保留。ROM中的数据是预先写入的,用户通常无法修改或只能在特定条件下修改(如固件升级)。-RAM:用于存储计算机运行时的数据
- Qt Http文件下载功能实现
秋の水
C++QtWidgetqthttpc++
最近工作中有个通过Http下载文件的需求,于是参考Qt的官方例程,做了个工具类。可灵活应用于各种Qt项目。文章末尾贴出代码和注释。1,基础知识1.1QNetworkAccessManager网络访问API是围绕一个QNetworkAccessManager对象构建的,该对象包含它发送的请求的通用配置和设置。它包含代理和缓存配置,以及与此类问题相关的信号,以及可用于监控网络操作进度的回复信号。一个Q
- 案例34在华为设备上配置访问控制列表
BinaryStarXin
交换机技术汇总智能路由器网络运维华为设备上配置访问控制列表ACL的基本原理网络协议信息与通信
访问控制列表简书1.ACL的基本原理访问控制列表(AccessControlList,ACL)使用包过滤技术,在路由器上读取第三层及第四层包头中的信息,如源地址、目的地址、源端口、目的端口等信息,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。2.ACL的功能网络中的节点包括资源节点和用户节点两类,其中资源节点提供服务或数据,用户节点访问资源节点所提供的服务与数据。ACL的主要功能就是一
- 如何用Python 3调用ArXiv API查询ArXiv论文元数据
诸神缄默不语
编程学习笔记python开发语言ArXivAPIXMLurllib
诸神缄默不语-个人CSDN博文目录ArXivAPI文档:arXivAPIAccess-arXivinfoarXivAPIBasics-arXivinfoarXivAPIUser’sManual-arXivinfo文章目录1.调包2.获取数据1.简单入门2.XML返回值示例3.添加分类信息,获取最新论文4.ArXiv查询入参详解3.解析XML数据1.调包importurllibfromurllib.
- 通过Bedrock Access Gateway解决方案快速访问Amazon Bedrock的多种大语言模型
国外VPS测评
gateway语言模型人工智能aws
BedrockAccessGateway(BAG)解决方案提供了开箱即用、兼容OpenAI的代理功能,帮助用户轻松无缝地从OpenAI迁移到AmazonBedrock。1.概述亚马逊云科技的AmazonBedrock服务支持一系列领先的基础模型,为客户提供多种选择,满足不同业务场景的需求。其中,Anthropic公司的Claude3是在AmazonBedrock新上线的大型语言模型(LargeLa
- fortify安全扫描Access Control: Database问题解决
飘零未归人
java安全fortify
概述AccessControl:Database说白了就是权限控制。在访问数据库(sql和nosql)需要加入当前用户的权限控制。不然会被fortify扫描出来,认为客户端可能不挟持和假冒,从而导致数据被泄露。但是这个并不是任何时候都需要的,有的接口本来就是可以任意访问的。还有就是我们本来就是微服务,可能用户数据拦截已经在其他的前置拦截服务中做了处理等等,但是这种情况,这个fortify扫描是不会
- MySQL 两种存储引擎: MyISAM和InnoDB 简单总结
诸葛钢铁云
Mysqlmysql
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(IndexedSequentialAccessMethod:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM。InnoDB,是MyS
- ArrayList 源码分析
2401_85327573
java开发语言
ArrayList简介ArrayList的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.Serializabl
- Composer如何通过GitHub Personal Access Token安装私有包:完整教程
lihuang319
composergithubphp
使用Composer安全管理您的PHP私有依赖包一、前言在PHP开发中,我们经常需要将内部工具包托管为私有仓库。传统的账号密码验证方式存在安全隐患,而GitHubPersonalAccessToken(PAT)提供了一种更安全的鉴权方案。本文将通过4个核心步骤+3个避坑指南,手把手教您在Composer中优雅地使用PAT安装私有包。二、为什么要用PAT?安全性:细粒度权限控制(可设置过期时间/单仓
- C++ | 面向对象 | 类
拟墨画扇_
C++c++类深拷贝友元函数静态成员类拷贝构造函数类构造析构函数
类语法格式classclassName{Accessspecifiers://访问权限DataTypevariable;//变量returnTypefunctions(){}//方法};访问权限classclassName{public://公有成员protected://受保护成员private://私有成员};公有成员public公有成员在类外部可访问,可不使用任何成员函数来设置和获取公有变量
- 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