- 电机的机械特性曲线
见你背影
单片机
电机的机械特性曲线物理意义:电机输出转矩T和转速n的关系:T=f(n)当电机工作在额定转速和额定转矩点时,当需要的负载转矩增加时电机的转速下降。当需要的负载转矩减小时,转速增加。在最大输出转矩Tk时,对应的转速为临界转速。此时无论转速升高或降低转矩都将下降。当电机的负载大于最大转矩Tk时,此时电机将带不动负载了,电机的转速和转矩都将持续下降,最终电机的转速将下降为零。此时的电机堵转,电流相当于是启
- 论文笔记-Contrastive Learning for Unpaired Image-to-Image Translation
kingsleyluoxin
计算机视觉论文笔记深度学习python计算机视觉机器学习人工智能深度学习
论文信息标题:ContrastiveLearningforUnpairedImage-to-ImageTranslation作者:TaesungPark,AlexeiA.Efros,RichardZhang,Jun-YanZhu机构:UniversityofCalifornia,Berkeley;AdobeResearch代码链接https://github.com/taesungp/contra
- KV 缓存简介
dev.null
AI缓存
以下是关于KV缓存(Key-ValueCache)的简介,涵盖其定义、原理、作用及优化意义:1.什么是KV缓存?KV缓存是Transformer架构(如GPT、LLaMA等大模型)在自回归生成任务(如文本生成)中,用于加速推理过程的核心技术。其本质是:在生成序列时,缓存历史token的Key和Value矩阵,避免重复计算,从而显著减少计算量。2.为什么需要KV缓存?传统自注意力计算的问题在生成第t
- 鸿蒙Next,图片上传01(扩展02截图保存到相册)-组件截图另通过沙箱保存到相册
harmonyos
1.componentSnapShot组件截图的get方法,得到PixelMap像素图像数据@ohos.arkui.componentSnapshot(组件截图)-UI界面-ArkTSAPI-ArkUI(方舟UI框架)-应用框架-华为HarmonyOS开发者//进行截图constpixelMap=awaitcomponentSnapshot.get('share')2.ImagePacker打包P
- python gridfs_【已解决】用Python去连接本地mongoDB去用GridFS保存文件
weixin_39622225
pythongridfs
折腾:期间,命令行方式的mongofiles去putgetdeletedelete_id等,已经基本上搞清楚了。接着就是去用Python代码,通过driver:的方式,调用API,去保存数据了。pythonmongodbgridfs需要先安装:pymongo就是这些API了。通过:发现,对于此处:➜英语资源mongod--versiondbversionv3.6.3gitversion:9586e
- 基于粒子滤波与卡尔曼滤波的锂离子电池放电时间预测与使用特征研究
算法如诗
电池建模(RULBC)粒子滤波锂离子电池放电时间预测
基于粒子滤波与卡尔曼滤波的锂离子电池放电时间预测与使用特征研究一、研究背景与意义锂离子电池作为现代储能系统的核心组件,其放电时间(End-of-DischargeTime,EOD)的准确预测对电池管理系统(BMS)的可靠性和安全性至关重要。传统方法(如安时积分法)易受噪声、温度漂移等因素干扰,而基于状态估计的滤波算法(粒子滤波/PF、卡尔曼滤波/KF)通过动态更新模型参数,能显著提升预测精度。二、
- 哇!5.2秒进入应用界面!Linux快速启动方案分享,基于全志T113-i国产平台
Tronlong创龙
工业级核心板全志T113嵌入式开发国产ARM工业核心板
本文主要介绍基于创龙科技TLT113-EVM评估板(基于全志T113-i)的系统快速启动显示Qt界面、LVGL界面案例,适用开发环境如下。Windows开发环境:Windows764bit、Windows1064bit虚拟机:VMware15.5.5Linux开发环境:Ubuntu18.04.464bitU-Boot:U-Boot-2018.07Kernel:Linux-5.4.61、Linux-
- CentOS下安装ElasticSearch(日志分析)
墨痕诉清风
安全建设elasticsearch大数据日志分析
准备目录搞一个自己喜欢的目录mkdir/usr/local/app切换到该目录cd/usr/local/app下载wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz选择其他版本点击进入官网
- ubuntu20.04 zookeeper安装
Yue9v
zookeeperlinux分布式
安装ZooKeeper之前,请确保你已经安装了Java,因为ZooKeeper需要Java运行环境。java安装sudoapt-getupdatesudoapt-get-yinstallopenjdk-11-jdkjava--version设置JAVA_HOME环境变量gedit~/.bashrc添加如下行来设置JAVA_HOME:exportJAVA_HOME=/usr/lib/jvm/java
- Uni-app 笔记二 (项目笔记)
天籁晴空
#vue3#TS#小程序--uni-appuni-app笔记
/***@authorwn*@date2023/07/2610:14:15*@description:uniapp笔记*//*1安全区域屏幕去掉状态栏+刘海剩余展示内容的区域--可通过uni.getSystemInfoSync()获取屏幕上边界到安全区顶部的距离。safeAreaInsets={top:59,left:0,right:0,bottom:34}"navigationStyle":"c
- Qt选择文件路径,并写入文件
水瓶丫头站住
Qtqt开发语言
以下是使用Qt的QFile和QFileDialog选择路径并写入文件的示例代码:#include#include#include#includevoidwriteFileExample(){//1.获取保存路径QStringfileName=QFileDialog::getSaveFileName(nullptr,//父窗口"保存文件",//对话框标题QDir::homePath(),//默认目录
- 【网络爬虫】(2) requests模块,案例:网络图片爬取,附Python代码
立Sir
网络爬虫爬虫python
1.基本原理1.1requests模块requests是Python中一个非常流行的HTTP客户端库,用于发送所有的HTTP请求类型。它基于urllib,但比urllib更易用。中文文档地址:Requests:让HTTP服务人类—Requests2.18.1文档(1)requests.get(url,**kwargs)requests.get()函数是requests库中用于发送HTTPGET请求
- laravel框架查询数据集转为数组
小浮夸
框架laravel
$website_data=DB::table('fb_website')->where('website_status',1)->get()->map(function($value){return(array)$value;})->toArray();
- CAS单点登录-微信企业号单点登录(二十)
悟空_
cas微信企业号单点登录sso
CAS单点登录-微信企业号登录(二十)背景在企业号得开发中,无法避免登录的问题,多个系统前端交互可能会设计到单点登录,若多系统已单点登录,那sso如何支持呢?概述查看企业号开发者接口文档我们看完文档后总结如下:1.企业号接口采用密码认证获取access_token2.企业号认证后通过code以及access_token获取用户信息,并不是两个标准的oauth2认证,也不是通过双方的access_t
- JG/T 331-2011建筑幕墙用氟碳铝单板制品检测
Tongyongtest88
建筑材料检测铝单板检测氟碳铝单板检测检测报告
幕墙氟碳铝单板制品是指以铝合金板为基材,经加工成型,装饰面为氟碳涂层,用于建筑幕墙的单层板,按照涂装工艺的不同,分为辊涂和液体喷涂。JG/T331-2011建筑幕墙用氟碳铝单板制品检测项目:测试项目测试方法涂层厚度GB/T4957光泽度偏差GB/T9754涂层附着力GB/T9286铅笔硬度GB/T6739耐盐酸JG/T331耐硝酸JG/T331耐砂浆JG/T331耐溶剂JG/T331耐磨GB/T2
- Debian:apt-get命令汇总
apt-get命令是DebianLinux发行版中的APT软件包管理工具。所有基于Debian的发行(常见的10个基于Debian的Linux发行版)都使用这个包管理系统。deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件。语法apt-get[OPTION]PACKAGE选项apt-getinstall#安装新包apt-getremove#卸载已安装的包(保留配置文件)ap
- Linux使用cpulimit对CPU使用率进行限制
云服务器linux运维cpu
介绍cpulimit是一款可以对CPU使用率进行限制的软件,既可限制单个特定程序,也可以对整个CPU使用率进行限制,安装使用都很方便,需要的朋友可以试试。源安装(推荐)Centos:yuminstallcpulimitDebian/Ubuntu:apt-getinstall-ycpulimit编译安装cd/tmpwget'https://www.02405.com/wp-content/uploa
- 意境级讲解二分查找算法、python
炫云云
大数据算法和数据结构机器学习数据结构算法python人工智能
文章目录问题定义模版一查找一个数寻找第一个的满足条件的位置寻找最后一个的满足条件的值二分查找的问题变种把待搜索区间分成两个部分搜索插入位置模版二寻找第一个的满足条件的位置寻找最后一个的满足条件的值x的平方根方法二:牛顿迭代猜数字大小搜索旋转排序数组搜索旋转排序数组II第一个错误的版本寻找峰值寻找旋转排序数组中的最小值模板三在排序数组中查找元素的第一个和最后一个位置查找最接近且小于target的元素
- 深度学习框架PyTorch——从入门到精通(4)数据转换
Fansv587
Torch框架学习深度学习pytorch人工智能python经验分享
转换(Transforms)很多时候,数据并不总是以训练机器学习算法所需的最终处理形式出现。所以我们需要使用变换对数据进行一些处理,使其适合训练。所有TorchVision数据集都有两个参数——transform来修改特征,target_transform来修改标签——接受包含转换逻辑的可调用项。torchvision.transform模块提供了几个开箱即用的转换。FashionMNIST数据集
- oracle中的user函数,Oracle 系统变量函数用法指南
Fayyy Li
oracle中的user函数
Oracle函数多种多样,系统变量函数就是其中之一,介绍三种最常见的系统变量函数。Oracle系统变量函数:1)SYSDATE该函数返回当前的日期和时间。返回的是Oracle服务器的当前日期和时间。selectsysdatefromdual;insertintopurchasevalues(‘SmallWidget','SH',sysdate,10);insertintopurchasevalue
- 设计模式-适配器模式
小九没绝活
设计模式设计模式适配器模式java
适配器模式是一种结构型设计模式,用于将一个类的接口转换为客户端期望的另一个接口,使得原本不兼容的类可以协同工作。它的核心思想是通过中间层(适配器)解决接口不匹配的问题,类似于电源插头转换器。核心思想适配器模式通过以下方式实现接口的兼容:定义目标接口(Target):客户端期望使用的接口。引入适配者类(Adaptee):需要被适配的现有类(接口不兼容)。创建适配器类(Adapter):将适配者的接口
- 【SpringMVC】_简单示例计算器
_周游
SpringJavaEEjava-eemvcspring
目录1.需求分析2.接口定义3.请求参数4.响应数据5.服务器代码6.前端页面代码7.运行测试为阶段性总结与应用,现将以SpringMVC项目创建一个可以实现加法的计算器为例1.需求分析加法计算器功能,对两个整数进行相加,需要客户端提供参与计算的两个数,服务器返回这两个整数计算的结果。2.接口定义(1)请求路径:cala/sum(2)请求方式:GET/POST(3)接口描述:计算两个整数相加3.请
- vscode使用ssh同时连接主机CentOS:user和ubuntu20.04:docker
李卓璐
学习笔记vscodesshcentos
主机为CentOSdocker为Ubuntu20.04两者可以使用一个vscode远程链接1.使用已拉取好的Ubuntu镜像建立docker容器2.进入容器内,下载一些关于ssh的安装包apt-getinstallvimapt-getinstallopenssh-clientapt-getinstallopenssh-serverapt-getinstallsshpasswd#更改密码3.启动ss
- 用SpringMvc做一个简易计算器
little 源
springmvc
用SpringMvc做一个简易计算器一.domain类packagessm1.domain;publicclassJiSuan{privateintnumOne;privateintnumTwo;privateStringyunSuan;privateintresult;publicintgetNumOne(){returnnumOne;}publicvoidsetNumOne(intnumOne
- Oracle转化为MySQL数据库
袅沫
点兵之经数据库mysql
使用HttpClient调用Post方法的时候,EntityUtils.toString(response.getEntity());响应数据只能读取一次,读取多次会出现,Attemptedreadfromclosedstream错误。Oracle转化为MySQL数据库OracleMySQLORDERBYCREATED_TIMEDESCNULLSLASTORDERBYCREATED_TIMEDES
- Python的路径pathlib库
活跃家族
python开发语言
1、读取文件默认只会从当前代码操作文件的目录下读取文件。找不到就会报错。解决方式:1、方式一:绝对路径是指:电脑里从根目录开始的一个完整的路径--不推荐注意事项:路径特殊符号\t一定要转义在路径前面加一个r绝对路径弊端:1)移植给其他人电脑上用,文件前面的目录不对,要手动修改。2)\/不同平台路径分隔符不一样,绝对路径不能兼容不同平台。2、相对路径:不会写死每一级的路径,相对层级管理,找文件路径借
- uniapp 实现微信小程序电影选座功能
鹤鸣的日常
uni-app微信小程序javascriptvue.js前端小程序
拖动代码/***获取点击或触摸事件对应的座位位置*通过事件对象获取座位的行列信息*@param{Event|TouchEvent}event-点击或触摸事件对象*@returns{Object}返回座位位置对象,包含行(row)和列(col)信息,若未找到有效位置则返回{row:-1,col:-1}*/getSeatPosition(event){//统一处理触摸事件和点击事件//触摸事件时从to
- 没有接口文档,该怎么进行接口测试?
海姐软件测试
接口测试测试工具面试职场和发展
想获取更多软件测试干货和实战技巧?欢迎扫码关注我的小红书【海姐的测试星球】,一起交流学习,解锁更多测试秘籍!在面试中如何回答好“没有接口文档,该怎么进行接口测试”,可按以下要点阐述,全面展现你的应变能力和专业素养:沟通协调-与开发人员沟通:主动与开发人员交流,了解接口的基本信息,如接口的用途、请求方法(GET、POST等)、大致的请求参数和响应格式。例如,询问该接口是用于用户登录、数据查询还是其他
- 安卓环境脚本
nb的码农
linux杂项linux
sudoapt-getinstalluuiduuid-devzlib1g-devliblz-devliblzo2-2liblzo2-devlzopgit-corecurlu-boot-toolsmtd-utilsandroid-tools-fsutilsopenjdk-8-jdkdevice-tree-compiler\gdiskm4libz-devgitgnupgflexbisongperfli
- 安装(python 版)
C-haidragon
mysql
安装安装sudoapt-getinstallmysql-servermysql-client然后按照提示输入管理服务启动servicemysqlstart停止servicemysqlstop重启servicemysqlrestart允许远程连接找到mysql配置文件并修改sudovi/etc/mysql/mysql.conf.d/mysqld.cnf将bind-address=127.0.0.1注
- 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