- Spring Boot 集成 Redisson 实现消息队列
入秋的大橘
SpringBootspringboot后端java
包含组件内容RedisQueue:消息队列监听标识RedisQueueInit:Redis队列监听器RedisQueueListener:Redis消息队列监听实现RedisQueueService:Redis消息队列服务工具代码实现RedisQueueimportjava.lang.annotation.ElementType;importjava.lang.annotation.Retenti
- 工具代码 | 网络联通测试命令
w_3123454
工具和使用技巧网络服务器运维
调用第三方服务时,通常需要先测试下当前服务器能否调通该地址,以通知运维做相关安全组配置。以下是常用方法测试网络端点是否可以调通:一.测试域名(测域名时不可带http等前缀)pingexample.com二、测试ip和端口telnet192.168.1.10080nc-zv192.168.1.10080(使用这个需要Linux上先装netcat)其他:Netcat被称为tcp/ip最好用的工具,nc
- Postgresql 的编译安装与包管理安装, 全发行版 Linux 通用
M·K·T
#linux应用部署postgresqllinux数据库云原生运维服务器
博客原文文章目录实验环境信息编译安装获取安装包环境依赖编译安装安装contrib下工具代码创建用户创建数据目录设置开机自启动启动数据库常用运维操作apt安装更新源安装postgresql开机自启修改配置修改密码实验环境信息Ubuntu20.04Postgre16.1编译安装获取安装包从PostgreSQL官网下载PostgreSQL的安装包$VERSION=16.1$wgethttps://ftp
- vue3-插件
王大可996
vue3vue.jsvue前端javascript
插件插件(Plugins)是一种能为Vue添加全局功能的工具代码。安装一个插件在main.ts或者main.js中的入口文件内import { createApp } from 'vue'const app = createApp({})app.use(myPlugin, { /* 可选的选项 */})一个插件可以是一个拥有install()方法的对象,也可以直接是一个安装函数本身。安装函数会接
- React 安装chrome调试工具
squidbrother
由于chrome无法连接外网,所以需要下载调试工具,到本地进行二次安装安装流程(版本较react脚手架4.0.3过与陈旧,浏览器渲染错误,已经放弃)【见底部4.13.2版本开发工具安装】官网下载开发工具代码包官方链接解压安装包,解压目录下打开命令行工具,修改下载源并安装依赖npm--registryhttps://registry.npm.taobao.orginstall打包chrome调试工具
- 实现屏蔽 Ctrl + Alt + Del 、Ctrl + Shift + Esc 等热键(二)
涟幽516
快捷键机制系列文章windows微软学习方法汇编交互
目录前言一、概述Winlogon的RPC例程二、Handler函数的消息处理机制三、讨论如何安全执行HOOK代码3.1挂钩例程解决方案3.2脱钩例程解决方案3.3钩子例程解决方案3.4地址信息查询函数3.5简单保护加载的模块四、模块如何安全地注入?4.1多进程处理4.2模块重载问题4.3关键注入代码4.4提升进程权限4.5处理句柄和环境检测五、编译代码和测试运行5.1钩子模块代码5.2注入工具代码
- 服务器过多,快速编辑MTPutty登录连接,java工具代码
赵思空
java服务器windows
1.代码***@ClassNameXMLGenerator*@DescriptionTODO*@Authorduckweed*@Date2023/7/209:58*@Version1.0*/publicclassXMLGenerator{/***标识*/privatestaticListdisplayNames=Arrays.asList("-149","-141","-191","-241","
- 前端工程化基础(二):前端包管理工具npm/yarn/cnpm/npx/pnpm
前端大菜鸟_
前端工程化基础前端npmnode.js
前端包管理工具代码共享方案创建自己的官网,将代码放到官网上面将代码提交到GitHub上面,负责让使用者下载将代码提交到npmregistry上面下载比较方便,使用npminstallxxx即可下载相应的代码npm管理的包npm配置文件主要用于存储项目的名称,版本号,描述,用到的依赖等相关信息初始化一个配置文件从零开始一个项目,可以通过npminit-y通过脚手架进行创建(比如vue的vuecrea
- python 工具代码
worxfr
pythonjavalinux
可以使用Python标准库中的shutil模块中的copytree函数来实现复制目录及其子目录中的所有文件。具体操作步骤如下:importshutil#复制src目录及其子目录中的所有文件到dst目录中shutil.copytree(src,dst)其中,src表示要复制的源目录,dst表示要复制到的目标目录。copytree函数会递归地复制src目录及其子目录中的所有文件到dst目录中。如果ds
- 7 CSS字体样式属性
江湖上的程序员
前端0基础学习相关css
目标应用使用css字体样式完成对字体的设置使用css外观属性给页面元素添加样式使用常用的emment语法能够使用开发人员工具代码调试1.font字体1.1font-size:字体大小1.2font-family字体CSSUnicode字体1.3font-weight字体粗细1.4font-style字体风格1.5font:综合设置字体样式(重点)1.6font总结2.CSS外观属性2.1color
- [SNMP]使用widows MGMTAPI 发送SNMP消息
zlllc
SNMPlinux网络tcp/ipc++windows
文章目录Linux开启SNMP功能Windows控制台程序参考文章和工具代码实现结果截图不足我想研究一下,windows怎么通过SNMP协议探测LINUX设备的状态。目前使用WindowsSNMPMGMTAPI来做一个简单的控制台程序,发送SNMPRequest给一个打开了SNMP功能的Linux设备,然后输出SNMP返回信息到控制台窗口。Linux开启SNMP功能按照这篇文章设置即可:Ubunt
- PyQt5_股票K线图相似度工具
程序猿与金融与科技
金融PyQt5pandas基础与金融实例练习python
如果对某一股票K线图了解比较深刻,可以通过相似度找到与该股票相似的K线图,那么对这些相似的K线图,可以借鉴已经深刻剖析过的股票的方法,已达到事半功倍的效果。K线图相似度的计算方法使用的是该博文中的方法。目录效果计算K线图相似度策略代码工具代码工具使用数据效果计算K线图相似度策略代码前置说明:1.必须以“excute_strategy”为方法名2.三个参数,参数1为股票代码股票名键值对;参数2为股票
- 个人网站制作 Part 5 优化网站性能(图片压缩、代码优化) | Web开发项目
冰.封万里
前端前端个人网站制作项目Web开发
文章目录基础Web开发练手项目系列:个人网站制作优化网站性能图片优化步骤1:使用压缩工具代码优化步骤2:压缩CSS和JavaScript步骤3:合并文件步骤4:延迟加载预览与保存下一步计划基础Web开发练手项目系列:个人网站制作欢迎回到基础Web开发练手项目系列!在前六篇博文中,我们已经创建了个人网站的基本结构、样式、导航栏、项目展示、联系信息、表单交互、动画效果、页面滚动效果和响应式设计。在
- 红队专题-Golang工具ChYing
amingMM
web
Golang工具ChYing招募六边形战士队员原chying工具代码分析并发访问控制并发原子写入读取通道嵌套映射结构初始化启动代理服务器重启代理服务器招募六边形战士队员一起学习代码审计、安全开发、web攻防、逆向等。。。私信联系原chying工具代码分析前有Chying后有Tscanplus并发访问控制typeSMapstruct{sync.RWMutex//标准读写锁Mapmap[int]*HT
- Vue3插件开发教程:步步指导如何编写Vue3插件
程序员海军
Vue开发实战总结vue前端前端框架
关注⬆️⬆️⬆️⬆️专栏后期更新更多前端内容文章目录Vue3插件插件注册形式插件主要的场景使用插件Vue3插件插件(Plugins)是一种能为Vue添加全局功能的工具代码。插件注册形式一个插件可以是一个拥有install()方法的对象,也可以直接是一个安装函数本身。install方法对象exportdefault{install:(
- Http请求工具【添加请求头】
YangzaiLeHeHe
【项目总结】Http工具
文章目录一、工具代码:一、工具代码:package*.*;importorg.apache.http.NameValuePair;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.ht
- msckf-vio 跑Euroc数据集,并用evo进行评估
清风微升至
视觉SLAMmsckf笔记
所需材料:Euroc数据集主页:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasetsevo评估工具代码:https://github.com/MichaelGrupp/evo向msckf-vio中添加保存位姿的代码,可参考https://blog.csdn.net/xiaoxiaoyikesu/ar
- CSS:前端基础 & CSS 文字文本样式
jovelin
学习目标应用使用css字体样式完成对字体的设置使用css外观属性给页面元素添加样式使用常用的emment语法能够使用开发人员工具代码调试1.font字体1.1font-size大小作用:font-size属性用于设置字号p{font-size:20px;}单位:可以使用相对长度单位,也可以使用绝对长度单位。相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使用较少。注意:我们文字大小以后,基
- Linux服务器之间迁移资料
Pr 彭儒
linux运维服务器
1.迁移数据,工具代码文件:scp-P端口号源文件路径目标服务器用户名@目标服务器IP:目标文件夹路径示例:scp-P10022/opt/docker/mysql/backup/2021-08-12_01\:00\:01/
[email protected]:/opt/docker/mysql/backup/文件夹:scp-P端口号-r源文件夹路径目标服务器用户名@目标服务器IP:目标文件夹路径示例:
- coco json转xml格式(开箱即用代码)
tangjunjun-owen
toolsjsonxmlcoco格式转xml格式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、整体逻辑1、main函数2、逻辑二、函数介绍三、整体代码总结前言最近使用很多其它模型,大多模型都有自己对应格式,有时其它模型的cocojson格式的数据测试也都要进行数据格式转换,有时候也想看cocojson注释显示在图上。那么,你可能需要一个cocojson格式转xml格式代码,帮助查看,且我总是会把这些工具代码莫名
- Unity编辑器紫色
Dongo2
unity编辑器游戏引擎
紫色原因是因为编辑器内跑了其他平台的shader兼容性导致的,需要动态的去修改shader,主要用到Unity的api:Shader.Find(shaderName);具体的工具代码如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclassSh
- Redis源码精读:准备工作
醉墨居士
Redisredis数据库缓存
文章目录前言拉取源码项目结构源码阅读技巧最后前言我是醉墨居士,未来的一段时间里面我准备写一些关于Redis源码的文章,来帮助大家深入浅出Redis,希望大家多多支持拉取源码gitclonehttps://github.com/redis/redis项目结构deps第三方依赖包src核心代码tests测试代码utils工具代码源码阅读技巧阅读源码,不是一件简单的任务如果看的太细腻,可能会陷入无尽的代
- 小程序使用腾讯API定位的全过程(详细)
00008795
小程序微信小程序
文章目录一、获取腾讯API的key二、小程序代码编写1.引入前面下载的文件,解压后放入2.代码编写微信开发工具代码片段示例提示:以下是本篇文章正文内容,下面案例可供参考一、获取腾讯API的key腾讯官方文档详细步骤进入腾讯服务官网如果没有账号就注册一个进入控制台,如果没有应用就创造一个key的名称最好能让自己以后区分清楚,其他框住需要勾选保存之后就会生成后面需要的key了下载微信小程序JavaSc
- 【随笔】MD5加密字符串、文件commons-codec、springframework实现
爱码少年
Java技术随笔javaspringMD5
文章目录一、引入依赖二、工具代码三、测试代码四、输出结果一、引入依赖commons-codeccommons-codeccommons-codec1.13二、工具代码importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importorg.apache
- Python爬虫分析唯品会商品数据 +数据可视化
python_小曼
信息可视化python爬虫
目录前言数据来源分析1.明确需求2.抓包分析:通过浏览器自带工具:开发者工具代码实现步骤:发送请求->获取数据->解析数据->保存数据发送请求解析数据保存数据数据可视化先读取数据泳衣商品性别占比商品品牌分布占比各大品牌商品售价平均价格各大品牌商品原价平均价格唯品会泳衣商品售价价格区间前言大家好我是小曼呐!唯品会是中国领先的在线特卖会电商平台之一,它以“品牌特卖会”的模式运营,为会员提供品牌折扣商品
- python相关工具代码之网络图片下载并显示出下载图片保存到的地址
墨鱼丸家
python学习相关python开发语言
#coding=utf-8fromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt5.QtWidgetsimport*importtimeimportrandomimportosimporturllib.requestfrombs4importBeautifulSoup'''信号传参类型pyqtSignal()#无参数信号pyqtSignal(in
- 小程序简易教程
frank_yuanxiaogang
小程序
起步进入微信公众平台注册小程序注册成功后在设置中找到appId(该appId相当于小程序的身份证)下载开发者工具代码构成.json后缀的JSON配置文件.wxml后缀的wxml模板文件.wxss后缀的wxss样式文件.js后缀的js脚本逻辑文件1、JSON配置{"pages":["pages/index/index","pages/logs/logs"],"window":{"background
- go使用aes加密算法
超维Ai编程
golang开发语言后端
工具代码packagetoolimport("bytes""crypto/aes""crypto/cipher")//AES加密函数varkey[]byte=[]byte("0@#3456789ABCDEF")//todo记住这个长度只能是162432如果不是的话话会报错funcEncrypt(data[]byte)([]byte,error){block,err:=aes.NewCipher(k
- KMP基础架构
李小白lt
kotlinandroidioskmp架构跨平台desktop
前言Kotlin可以用来开发全栈,我们所熟悉的各个端几乎都支持(除了鸿蒙)而我们要开发好KMP项目需要一个好的基础架构,这样不仅代码更清晰,而且能共享更多的代码正文我们可以先将KMP分为前端和服务端它们两端也能共享一些代码,比如接口声明,bean类,基础工具类等前端和服务端共享基础工具类首先是基础工具类,module可以命名为stdUtil这些工具类应该是可以仅使用Kotlin基础库的一些工具代码
- C语言实现Linux下TCP Server测试工具
秦剑
network工具linuxtcp/ipgit
LinuxTCPServer测试工具代码实现了接受数据并输出文本和十六制字符串#include#include#include#include#include#include#include#include#include#include#defineSERVER_PORT8081#defineSERVER_IP"0.0.0.0"voidByteToHexStr(constunsignedchar
- 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