- qgis加载天地图
AllBlue
GISqgisgis
一、点击TileServer(XYZ),选择NewConnection二、在弹出的输入框中输入天地图的url此处以影像底图为例,url为http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles
- B/S架构和C/S架构概述与优缺点
此方konata
架构php开发语言
B/S架构(Browser/Server架构)定义B/S架构是一种通过浏览器访问服务器的架构模式。客户端(通常是浏览器)与服务器之间通过HTTP/HTTPS协议进行通信。优点易于部署和维护:客户端只需要安装浏览器,无需单独安装客户端软件。服务器端的更新和维护只需在一个地方进行,客户端自动生效。跨平台性:只要支持HTTP协议的浏览器,就可以访问应用程序,不受操作系统限制。提高了应用程序的可用性和灵活
- IPsec+预共享密钥的IKE野蛮模式
leo·li
IPSecVPNH3C路由交换网络路由器网络协议
目标配置IPsec+预共享密钥的IKE野蛮模式步骤一、配置各接口IP地址步骤二、配置默认路由[RTB]iproute-static0.0.0.002.2.2.2步骤三:配置公网连接在SWA上配置DHCPServer。设置RTA从SWA动态获得IP地址和默认路由。[SWA]dhcpenable[SWA]dhcpserverip-pool1[SWA-dhcp-pool-1]network1.1.1.0
- SQL Server 数据表模糊查询(like 用法)以及查询函数
m0_74824592
数据库服务器oracle
文章目录一、模糊查询(like)二、查询函数一、模糊查询(like)在SQLServerManagementStudio(SSMS)中,进行模糊查询主要是通过使用like操作符来实现的。like操作符用于在where语句中搜索列中具有指定模式的数据。我们在简单例子中来了解:%通配符:表示任意数量的字符。select*fromtable_namewherecolumn_namelike'%patte
- 深入探索 Linux 权限维持之 SSH 后门与公私钥技术
阿贾克斯的黎明
网络安全linuxssh运维
目录深入探索Linux权限维持之SSH后门与公私钥技术SSH后门:开启隐藏访问通道利用软链接创建SSH后门SSHServerRapper方法公私钥:实现免密登录与权限维持生成与部署公私钥隐藏公私钥操作痕迹其他相关技巧与注意事项SSH键盘记录器SSH隐身登录总结在Linux系统安全领域,权限维持是攻击者在获取初始访问权限后,为长期控制目标系统所采用的关键技术手段。其中,SSH后门的建立以及公私钥的巧
- SQL Server 中SQL语句执行顺序
冷漩
SQLServer学习sqlserver
SQLServer中SQL语句执行顺序我们需要对SQL语句的执行顺序了若指掌,才能更好的理解SQL。SQL不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理。但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入(需要理解这一概念)。这些虚拟表对调
- 开源游戏服务器框架NFShmServer 简介(一)
gaoyi445
游戏C++游戏服务器共享内存游戏服务器lua游戏服务器插件游戏服务器
一、NFShmServer是什么?NFShmServer是一个使用C++开发的轻量级,敏捷型,弹性的,分布式的共享内存(C++热更)/多进程lua(lua热更)的插件开发框架,让你更快更简单的开发服务端应用.部分思路来自UE4和Ogre.(当前主要用在游戏领域).实现了一款unity3d捕鱼demo游戏和一个MMO(目前还在完善中)游戏,有兴趣的可以加群762414765学习二、特征可以做到分布式
- 【DevOps】Jenkins+Kubernetes:K8S集群外部署的Jenkins,设置动态Jenkins-slave工作节点到K8S集群中
运维归一
DevOpsjenkinsdockerkubernetes
视频教程视频教程:https://edu.csdn.net/learn/38191/604447?spm=1003.2001.3001.4143Jenkins部署,设置动态agent到K8S集群中centosdockerjenkinskubernets7.920.102.28919.10通常情况下jenkins单节点自己可以工作,但是一旦发布任务量巨大,server端自己肯定是靠不住的。为了解决这
- 利用R语言irr包计算ICC值(组内相关系数)
mlhylzqwxli
r语言
ICC值是一个较为陌生的概念,在统计学中应用较多,引用百度百科的介绍:组内相关系数(ICC)是衡量和评价观察者间信度(inter-observerreliability)和复测信度(test-retestreliability)的信度系数(reliabilitycoefficient)指标之一。它最先由Bartko于1966年用于测量和评价信度的大小。ICC等于个体的变异度除以总的变异度,故其值介
- 盛讯美恒usbserver ukey本机 rpa自动化配置与使用
孤独的程序员dis1500
usbserver行业应用rpa自动化运维
1.启动rpa客户端配置2.启动本地自动化服务3.调用本地http协议接口管理盛讯美恒远程usbserver端口设备功能:http://localhost:8001/usbapi/usbpower端口上电断电http://localhost:8001/usbapi/sync/connectusb设备连接断开http://localhost:8001/usbapi/getDeviceList获取设备
- kafka+zk三台集群问题排查
未竟
大数据组件消息队列kafkazookeeperbigdata
问题描述:项目中人大金仓同步工具同步数据增量到kafka集群,无法自动创建topic,以及出现同步到topic时连接失败的问题,经过排查修改配置参数最终解决。重新安装zk和kafka操作步骤1、先把zk和kafka都停掉三台都执行zookeeper/bin/zkServer.shstop三台都执行kafka/bin/kafka-server-stop.sh2、把之前的目录文件都备份删除mv/dat
- SQL SERVER 多表关联更新
letisgo5
服务器运维生涯sqlserversql
目前使用比较多的数据库:MYSQL与ORACLE而SQLSERVER用的比较少,查询大致都差不多,但是更新与删除有些不一样(单表操作这里就不说了,也差不多)SQLSERVER多表关联更新:更新tab_1表code,当name为空并且存在tab_2中,更新为tab_2中code的值updatepsetp.t1_code=r.t2_codefromtab_1p,tab_2rwherep.t1_id=r
- C语言操作MySQL从入门到精通
cmysqlsql数据库
大家好,我是V哥。今天给大家整理的内容是关于使用C语言操作MySQL数据库的详细介绍,从入门到精通,并配有案例代码和注释,帮助小白快速上手。基本操作1.环境准备在开始之前,你需要安装MySQL数据库和MySQLConnector/C开发库。以Ubuntu系统为例,可以使用以下命令进行安装:sudoapt-getupdatesudoapt-getinstallmysql-serverlibmysql
- 内网激活JRebel插件(无网络环境)
Cynicism_Smile
后端javaideajrebel
1.官网下载安装包,JRebelandXRebelJRebelandXRebel-IntelliJIDEsPlugin|Marketplace2.以IInstallPluginfromDisk的方式读取3.运行JrebelServer.jar终端输入:java-jarJrebelServer.jar-p8080(默认8080端口)服务会自动打开浏览器至http://localhost:8080/点
- Java Web 中的 Server-Sent Events (SSE) 入门介绍
zru_9602
前端java前端开发语言
JavaWeb中的Server-SentEvents(SSE)入门介绍Server-SentEvents(服务器发送事件,简称SSE)是一种用于实现服务器向客户端推送实时更新的技术。与WebSocket不同,SSE是一种单向通信技术,适用于只需要从服务器到客户端的数据流场景。1.基本概念SSE的特点:单向通信:数据只能从服务器发送到客户端。长连接:客户端与服务器保持一个长时间的HTTP连接。自动重
- PXE批量安装服务器
helpme流水
服务器运维
KickStart自动化安装部署PXE原理PXE(prebootexecuteenvironment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivialfiletransferprotocol)或MTFTP(mul
- springboot webflux webclient 使用示例
o_瓜田李下_o
webflux
springbootwebfluxwebclient使用示例************************示例HelloController@RestControllerpublicclassHelloController{@RequestMapping("/hello")publicMaphello(ServerWebExchangeexchange){exchange.getRequest(
- 前端流式输出深度解析:技术原理、实战应用与性能优化
斯~内克
前端网络前端性能优化
一、流式输出的革命性意义1.1传统数据加载的痛点白屏等待:根据Google核心性能指标统计,页面加载时间超过3秒会导致53%的用户流失内存压力:单次加载10MBJSON数据会使内存占用飙升300MB+响应延迟:金融行业实时行情系统要求数据延迟{renderTableRow(data);});3.2Server-SentEvents(SSE)//客户端consteventSource=newEven
- Mysql8主从复制(兼容低高版本)
热心市民运维小孙
adbandroid
Mysql主从复制理论知识主从复制必要前提主从复制必要的条件:主库开启binlog日志(设置log-bin参数)主从server-id不同从库服务器能连同主库实现原理原理:实现整个主从复制,需要由slave服务器上的IO进程和Sql进程共同完成;要实现主从复制,首先必须打开Master端的binarylog(bin-log)功能,因为整个MySQL复制过程实际上就是Slave从Master端获取相
- sysbench手动测试OceanBase v4.2.4集群
king_harry
oceanbasesysbench数据库
环境:1、ocp(sysbench节点)192.192.103.1282、ob集群1-1-1observer192.192.103.125、192.192.103.126、192.192.103.127,primary_zone:randomhaproxy192.192.103.125、192.192.103.126、192.192.103.127一、安装sysbench(128)源码安装:JDK
- pycharm ssh 远程连接docker 容器 进行debug调试代码
Panesle
pycharmsshdocker
pycharmssh远程连接docker容器进行debug调试代码1.用镜像启动好一个容器2.安装ssh工具aptupdateapt-getinstall-yopenssh-server3.配置ssh的config文件vim/etc/ssh/sshd_config配置修改好(端口、登陆权限):Port3210PermitRootLoginyesPasswordAuthenticationyes4.
- python: DDD using postgeSQL and SQL Server
geovindu
Pythonpythonjava前端数据库postgresqlsqlservermssql
postgreSQL注意:#psycopg2驱动的连接字符串#engine=create_engine('postgresql://post:geovindu@localhost:5433/TechnologyGame')#Session=sessionmaker(bind=engine)#使用psycopg3驱动的连接字符串#engine=create_engine('postgresql+ps
- mysql新手常见问题解决方法总结
微刻时光
笔记mysql数据库人工智能影刀证书影刀RPApyhonrpa
1.安装与配置问题1.1无法安装MySQLServerMySQLServer安装失败是新手常见的问题之一,以下是具体原因及解决方案:系统要求不满足:MySQL对操作系统有最低版本要求,如Windows7SP1及以上、macOS10.13及以上。若系统版本过低,安装程序可能无法正常运行。例如,在WindowsXP系统上安装MySQLServer8.0,会直接提示系统不兼容,无法进行安装。安装包选择错
- 达梦数据库备份
huazhixuthink
数据库oraclesql
达梦数据库联机在线备份操作指南一、基础条件与准备开启归档模式:联机备份必须处于归档模式下,否则无法执行。需通过disql工具执行以下操作:alterdatabasemount;alterdatabaseARCHIVELOG;例子:[dmdba@server~]$cd/opt/dmdbms/bin[dmdba@serverbin]$./disqlSYSDBA/'"Dameng@123"':5236
- Webpack常见配置实例
码上跑步
webpack前端node.js
webpack实例打包构建流程对应的常见配置1.mode:'development'2.entry:'./src/index.js'3.output4.module.rules5.Loader6.Plugin7.devServerwebpack.config.jswebpack常见配置实例配置详解mode:‘development’:设置Webpack运行模式,可以是developme
- React + TypeScript + Axios + Ant Design + JSON Server 实现 TodoList 效果
碧海蓝天·
react.jstypescriptjsonJavaScript
在本篇文章中,我们将使用React、TypeScript、Axios、AntDesign和JSONServer来实现一个简单的TodoList应用。我们将使用React来构建用户界面,TypeScript来提供静态类型检查,Axios来进行与后端的HTTP请求交互,AntDesign来美化界面,而JSONServer则用于模拟后端数据。在开始之前,请确保你已经安装了Node.js和npm(或者使用
- Azkaban其一,介绍、体系架构和安装
出发行进
#AzkabanAzkabanlinux
目录一、简介二、Azkaban的体系结构三、Azkaban的安装步骤1、上传,解压2、生成mysql的元数据3、配置web-server4、配置exec-server5、修改所有的.sh的执行权限一、简介遇到了什么问题才会使用Azkaban?比如:想启动hadoop集群先启动zk集群,再启动hdfs,再启动yarn,再启动日志系统工作过程中总会遇到多个脚本执行的时候有顺序。任务可以有一个编排的工具
- Python连接SQL SEVER数据库全流程
web13508588635
数据库pythonsql
背景介绍在数据分析领域,经常需要从数据库中获取数据进行分析和处理。而SQLServer是一种常用的关系型数据库管理系统,因此学习如何使用Python连接SQLServer数据库并获取数据是非常有用的。以下是Python使用pymssql连接SQLServer数据库的全流程:安装pymssql库本地账号设置脚本连接数据导入函数实现一、安装pymssqlpymssql是Python连接SQLServe
- 实时数据推送:Spring Boot 中两种 SSE 实战方案
微特尔普拉斯
javaSpringBoothtml5前端服务器springhttp交互
在Web开发中,实时数据交互变得越来越普遍。无论是股票价格的波动、比赛比分的更新,还是聊天消息的传递,都需要服务器能够及时地将数据推送给客户端。传统的HTTP请求-响应模式在处理这类需求时显得力不从心,而服务器推送事件(Server-SentEvents,SSE)为我们提供了一种轻量级且高效的解决方案。本文将介绍两种基于SpringBoot实现SSE的方案,并结合代码示例,帮助你快速掌握实时数据推
- OceanBase数据库常用巡检SQL
数据库sqloceanbase
本文为墨天轮数据库管理服务团队原创内容,如需转载请联系小墨(VX:modb666)并注明来源。一、版本信息select*frominformation_schema.GLOBAL_VARIABLESWHEREVARIABLE_NAMElike'version%';二、集群状态select*fromoceanbase.v$ob_cluster;三、服务器状态检查所有服务器的状态,包括这个Server
- 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