- 【动手学深度学习】#1PyTorch基础操作
-一杯为品-
机器学习深度学习人工智能
主要参考学习资料:《动手学深度学习》阿斯顿·张等著【动手学深度学习PyTorch版】哔哩哔哩@跟李牧学AI目录1.1数据操作1.1.1入门1.1.2运算符1.1.3广播机制1.1.4索引和切片1.1.5节省内存1.1.6转换为其他Python对象1.2数据预处理1.2.1读取数据集1.2.2处理缺失值1.2.3转换为张量格式1.3线性代数1.3.1标量1.3.2向量1.3.3矩阵1.3.4张量1.
- Android广播限制Background execution not allowed: receiving Intent { act=
趋势大仙
异常题库android
“Backgroundexecutionnotallowed:receivingIntent”这个错误信息通常出现在Android应用开发中,特别是在处理后台任务或接收广播(Broadcast)时。这个错误表明应用试图在后台执行某些操作,但Android系统出于电池优化和用户体验的考虑,限制了后台任务的执行。可以尝试以下二种方法:1.把targetSdkVersion设置为25及以下的版本号,重新
- IP系统中的SDP会话描述协议深度解析(一)
一个广电工程师
广播电影电视专业技术tcp/ip网络协议网络
SDP核心概念会话描述协议(SessionDescriptionProtocol,简称SDP)作为多媒体会话的元数据载体,其规范定义详见RFC4566标准文档("https://datatracker.ietf.org/doc/html/rfc4566")。该协议作为跨平台会话描述的通用语法框架,广泛应用于SIP通信系统、RTSP流媒体传输、电子邮件服务及Web服务体系,在广播电视行业的IP化进程
- 什么是SDI信号?SDI信号的分类、特点及应用
度纬仪器
信息与通信
引言在视频传输领域,SDI(SerialDigitalInterface,串行数字接口)信号是一种广泛应用的数字视频传输标准。它以其高速、高保真度和低延迟的特点,在广播、电影制作、视频监控等多个领域发挥着重要作用。本文将详细介绍SDI信号是什么、分类、特点优势以及常见的应用案例。SDI信号是什么?串行数字接口(serialdigitalinterface,简称SDI)是一种用于传输高质量、未压缩的
- 黑板模式(Blackboard Design Pattern)。
软件求生
黑板模式设计模式
意图黑板模式是观察者模式的一个扩展,知名度并不高,但是我们使用的范围却非常广。黑板模式的意图如下:允许消息的读写同时进行,广泛的交互消息。简单的说,黑板模式允许多个消息读写者同时存在,消息的生产者和消费者完全分开。这就像一个黑板,任何一个教授(消息的生产者)都可以在其上书写消息,任何一个学生(消息的消费者)都可以从黑板上读取消息,两者在空间和时间上可以解耦,并且互不干扰。黑板模式确实是消息的广播,
- 特殊 IP 地址
tyustli
计算机网络受限广播地址直接广播地址多播地址环回地址本网络本主机
文章目录特殊IP地址概述受限广播地址(LimitedBroadcastAddress)直接广播地址(DirectedBroadcastAddress)多播地址(MulticastAddress)环回地址(LoopbackAddress)本网络本主机(0.0.0.0)总结参考特殊IP地址概述在IP地址体系中,除了用于分配给主机和网络的常规IP地址外,还存在一些特殊用途的IP地址。这些地址具有特定的功
- ENSP学习day3
vegetable\chicken
ENSP实验学习智能路由器网络
静态路由实验路由器划分成3个广播域,如图192.168.1.0/24192.168.2.0/24192.168.3.0/241.PC必须配置网关地址:网关地址是网段中连接其他网段的路由器的接口上的接口地址2.AR1配置:[Huawei]sysnameAR1[AR1]intg0/0/0[AR1-GigabitEthernet0/0/0]ipaddress192.168.1.25424[AR1-Gig
- 华为路由器配置DHCP服务以及配置端口网关IP
百里清风20190301
华为tcp/ip网络协议
实验拓扑结构:前提:HTTP服务器已启动http服务和配置好ip地址,client1与client2已配置不同网段的IP,路由器两端接口已预设IP实验需求:除平板服务器外,电脑自动获取IP配置子网掩码和DNS域名解析服务并且能实现全网通信步骤一:为两个不同的广播域配置网关IPsystem-view#进入系统视图[Huawei]interfaceg0/0/0#进入系统视图[Huawei-Gigabi
- 一个完整的python webSockets游戏服务器,每100ms接收并广播玩家位置
小宝哥Code
Python基础及AI开发python游戏服务器
PythonWebSockets游戏服务器下面是一个完整的PythonWebSockets游戏服务器实现,它每100ms接收并广播玩家位置信息。这个服务器使用websockets和asyncio库来处理WebSocket连接和异步操作。完整代码#!/usr/bin/envpython3"""实时游戏位置广播服务器每100ms接收玩家位置并广播给所有连接的客户端"""importasyncioimp
- ospf的内容解析
ZHGJX-春分时节爱中分
智能路由器网络
当然,以下是您提供的OSPF(开放最短路径优先)接口配置信息的翻译:---**OSPF进程1,路由器ID为12.1.1.2****接口信息**区域:0.0.0.0(未启用MPLSTE)**接口:12.1.1.2(千兆以太网0/0/1)**-成本:1-状态:BDR(备份指定路由器)-类型:广播-最大传输单元(MTU):1500-优先级:1-指定路由器:12.1.1.1-备份指定路由器:12.1.1.
- 环路广播风暴演示图
违章的王
智能路由器网络
以下是环路广播风暴的演示图及其说明:环路广播风暴演示图+-----------------++-----------------+|SwitchA||SwitchB||||||[Port1]--------+----------+--------[Port1]||[Port2]--------+----------+--------[Port2]|||||+-----------------++-
- Spring Cloud Alibaba RocketMQ 消息队列
AI天才研究院
Python实战自然语言处理人工智能语言模型编程实践开发语言架构设计
作者:禅与计算机程序设计艺术1.简介RocketMQ是一款开源、高性能、分布式消息中间件,它具备以下主要特征:支持海量消息堆积能力,支持发送10万+TPS,且不受单机容量限制;提供灵活的消息过滤机制,支持按照标签,SQL92标准的过滤语法进行消息过滤;丰富的消息订阅模型,包括广播消费,集群消费,事务消费等多种模式;内置丰富的管理控制台,通过WebUI来方便地对集群进行管理、监控及报警;高吞吐量,单
- MPV Player(MPV播放器)
fhfhgfdgdsgi1
tornado
链接:https://pan.quark.cn/s/a6b4b644bb16MPVPlayer(MPV播放器)是mplayer2和MPlayer的一个分支,支持多种视频文件格式、音频和视频编解码器以及字幕类型。它通过FFmpeg提供硬件加速,支持VDPAU和VAAPI以及Windows上的DXVA2,以及VDA和VideoToolbox视频。mpv可以播放互联网广播流、视频流、“实时”应用各种音频
- Android Low Storage机制(DeviceStorageMonitorService)
wd623894174
CommonFrameworkAndroid
文章目录1.lowstorage简介(DeviceStorageMonitorService)2.DeviceStorageMonitorService代码介绍2.1服务初始化2.2DeviceStorageMonitorInternal提供的接口2.3check()/data分区3监听lowStorage广播1.lowstorage简介(DeviceStorageMonitorService)D
- 172.16.1.0/16划分6个网段
ZwZ12123
笔记
172.16.00000001.0网段地址:172.16.0.0直接广播地址:172.16.31.255网络范围:172.16.0.1-172.16.31.254172.16.00100001.0网段地址:172.16.32.0直接广播地址:172.16.63.255网络范围:172.16.32.1-172.16.63.254172.16.01000001.0网段地址:172.16.64.0直接广
- BroadcastChannel 通讯原理
A-Kamen
前端前端javascript开发语言
BroadcastChannel是一种用于在同一来源(同一协议、主机名和端口号)下不同浏览器上下文(如标签页、iframe、Worker、ServiceWorker)之间进行消息广播的API。它提供了一种简便、可靠的方法来实现跨上下文的实时通讯。BroadcastChannel的基本概念广播频道:BroadcastChannel创建的实例代表一个特定的广播频道,所有监听该频道的上下文都能接收该频道
- 【计算机网络】UDP
字节源流
计算机网络udp网络协议
1.基本概念UDP全名叫做用户数据报协议,它是存在于传输层的一个协议2.核心特点无连接它不用像TCP那样每次发送数据之前都需要建立连接,不可靠传输这也叫尽最大努力交付,也就是UDP无法保证数据的完整和有序传输,只能尽自己最大努力进行传输。开销小UDP的头部的字节数仅仅只有8个字节,而TCP最少有20个字节多播与广播支持UDP天然支持一对多传输模式,适用于流媒体分发或网络发现协议。而TCP只支持单播
- 世界超高清大会发布重大技术成果:博冠自主创新推动8K摄像机攻关
8K超高清
人工智能vr5G科技超分辨率重建
一、世界超高清大会背景介绍:近日,由工业和信息化部、国家广播电视总局、中央广播电视总台、广东省人民政府主办的2023世界超高清视频产业发展大会在广州·越秀国际会议展览中心盛大召开。自2018年创办以来,大会已成功举办四届,成为全球超高清视频产业领域规模大、规格高、影响力强、带动性广的年度盛会。本次大会以“超高清视界高质量发展”为主题,并向全球正式发布一批超高清视频显示产业重大技术创新成果和超高清视
- ENSP综合实验题
JioJio~z
网络
1.关于192.168.1.0/24的广播域有14个,所以,192.168.1.00000000/28由2的4次方=16种,分配如下:2.根据以上分配配接口IP,配环回接口IP;3.根据静态路由配置非直连路由,每一个路由器配置其他路由信息,例如R1配置完毕的路由表:4.此时几个路由器间可以Ping通了,根据要求3得知,R1—R4需要配置一个指向5.5.5.0/24的缺省路由,例如Ping通后如下:
- RHCE——笔记
tan &
笔记linux服务器
Web服务器1,web服务器简介(1)什么是www是全球信息广播的意思。通常说的上网就是使用www来查询用户所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的方式将信息以Internet传递到世界各处去(2)网址及HTTP简介web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网
- (Pytorch)动手学深度学习:基础内容(持续更新)
孔表表uuu
神经网络深度学习pytorch人工智能
深度学习前言环境安装(Windows)安装anaconda使用conda或miniconda创建环境下载所需的包下载代码并执行(课件代码)关于线性代数内积(数量积、点乘)外积关于数据操作X.sum(0,keepdim=True)和X.sum(1,keepdim=True)广播机制(broadcast)Softmax函数和交叉熵损失函数Softmax函数交叉熵损失函数感知机多层感知机前言之前看吴恩达
- 二层网络类型及协议
wuqing_5450
华为数通路由交换HCIPp2p网络网络协议
数据链路层网络类型(根据协议及规则划分):P2P:在一个网段内只能存在两个节点。点到点MA多路访问:在同一个网段内,节点的数量不限制正常需要存在二层地址,否则无法单播。多点接入。有以下两种BMA--广播型多路访问NBMA--非广播型多路访问网络类型基于数据链路层选用的技术进行区分:部分虚拟技术以太网BMA帧中继MGRE(虚拟)NBMAPPP/HDLCPPPOE、GRE(虚拟)点到点
- 简要分析Netlink协议
TJ_Dream
基础内核函数分析网络
Netlink协议是Linux内核中用于内核态与用户态进程间通信(IPC)的一种机制,基于套接字的通信接口,提供高效、灵活的双向数据传输能力,常用于内核模块与用户程序之间的实时交互。Netlink协议的核心内容协议基础通信模式:基于消息的通信,支持单播(unicast)、多播(multicast)和广播。协议族(Family)Netlink不是单一协议,而是一组协议族,每个协议族通过唯一的协议号(
- android的广播详解,Android的Service和广播的讲解
任我说车
android的广播详解
前言:我们都知道Android的四大基本组件:Activity、ContentProvider、Service以及BroadcastReceiver,前面的两个我们在前几篇已经具体讲解了,今天这一天我们就把后两者的使用具体说一下,由于Service和BroadcastReceiver常常一起使用,所以我们一起来学习。一.Service的使用Service是Android系统的后台服务组件,没有用户
- android 广播给指定app,封装一个广播工具类 —— AppReceiver
乔一帆丶
android广播给指定app
###前言在日常开发过程中,用得比较多的是手动注册方式的广播,为了方便广播的使用,我封装了一个手动注册的广播工具类——AppReceiver,这节就来讲讲它的使用吧。今天涉及的内容:1.手动注册广播一般使用流程2.封装类AppReceiver的基本介绍3.AppReceiver在MainActivity中的使用4.效果图与项目结构图先来波效果图
Big Skipper
Androidframework
概述广播(Broadcast)机制用于进程或线程间通信,广播分为广播发送和广播接收两个过程,其中广播接收者BroadcastReceiver是Android四大组件之一。BroadcastReceiver分为两类:静态广播接收者:通过AndroidManifest.xml的标签来声明的BroadcastReceiver动态广播接收者:通过AMS.registerReceiver()方式注册的Bro
- Android Broadcast广播封装
tangweiguo03051987
android开发语言
在Android高版本(尤其是Android8.0及以上)中,Broadcast的使用受到了一些限制,例如隐式广播的限制和后台执行限制。为了适配高版本并简化Broadcast的使用,可以封装一个工具类,支持动态注册、静态注册、权限控制等功能。以下是Broadcast工具类的封装,支持高版本适配,并提供简洁的API。Broadcast工具类封装importandroid.content.Broadc
- freeswitch-esl 实现广播功能
小gpt&
qt音视频c++
使用场景:发起广播时候,只有发起者可以发出声音,下面设备都只听到发起者声音,其他人不能发声代码如下:#include#include#includeclassFreeSwitchManager{public:FreeSwitchManager(conststd::string&host,intport,conststd::string&password):host_
- 清结算系统架构设计
CRUD的程序员
系统架构
前言清结算系统我认为是比较难设计的一类系统,近年来有幸参与该方向的系统设计和开发,接下来就拿我个人的开发经验来和大家分享。不足之处请大家包含并指正!清结算系统架构设计话不多说,直接上图。接下来针对这张图结合我个人实际情况进行分析每个模块及环节的作用和运行机制。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