- flutter Image.network()网络图片加载失败,404错误的异常处理和解决方法初探
jp192021
flutterdebugflutter
今天碰到一个让人异常头疼的错误:在使用Image.network()的时候,有个图片网址404了,flutter真机调试一直卡死,绝对是一个大BUG。网上找了各种方法:一:Imageimage=Image(image:newCachedNetworkImageProvider(''));Imageimage=Image.network('');finalImageStreamstream=imag
- lambda表达式Stream流学习十—Stream操作练习题
头真的好重好重Y
javalambdastream
lambda表达式Stream流学习十—Stream操作练习题,map、sorted、collect、filter、forEach、max、min一,map与reduce复习/*1)给定一个数字列表,如何返回一个由每个数平方构成的列表呢,给定[1,2,3,4,5],应该返回[1,4,5,16,25]map—接收Lambda,将元素转换为其他形式或提取信息,接收一个函数作为参数,该函数会被应用到每个
- Stream 流 【学习笔记】Java 基础
燕赵韩魏555
Java基础学习#javajava学习
若文章内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系博主删除。写这篇博客旨在制作笔记,方便个人在线阅览,巩固知识,无其他用途。学习视频【黑马Java基础教程】Stream流从入门到精通】【黑马程序员Java零基础视频教程】(上部)【黑马程序员Java零基础视频教程】(下部)Java基础(查缺补漏)Java集合【学习笔记】Java基础:https://blog.csdn
- Stream.of()用法示例
爆米花9958
Java8新特性java
Stream.of用于为给定元素创建顺序流。我们可以传递单个元素或多个元素。查看java文档中的Stream.of方法声明。staticStreamof(Tt)参数:传递单个元素。返回值:该方法返回一个包含一个元素的流。staticStreamof(T...values)参数:传递多个元素。返回值:该方法返回包含给定元素的流。Stream.of创建有限元素流。为了创建一个无限元素流,我们可以使用S
- Spark数据倾斜的问题
冰火同学
Sparkspark大数据分布式
Spark数据倾斜业务背景Spark数据倾斜表现Spark的数据倾斜,包括SparkStreaming和SparkSQL,表现主要有下面几种:1、Excutorlost,OOM,Shuffle过程出错2、DriverOOM3、单个Excutor执行器一直在运行,整体任务卡在某个阶段不能结束4、正常运行的任务突然失败数据倾斜产生的原因以Spark使用场景为例,我们再做数据计算的时候会涉及类似coun
- 在 UniApp 中实现stream流式输出 AI 聊天功能,AI输出内容用Markdown格式展示
Echo-潔
uniappuni-app前端AIstream流式输出
在UniApp中实现流式AI聊天功能介绍在现代Web开发中,流式API响应能够显著提升用户体验,尤其是在与AI聊天接口进行交互时。本文将介绍如何在UniApp中使用FetchAPI实现一个流式响应的AI聊天功能,包括实时更新聊天内容和滚动到底部的功能。实现用Markdown格式展示AI输出的内容//用Markdown格式展示//使用showdown插件importshowdownfrom'show
- Flink-DataStreamAPI-生成水印
隔着天花板看星星
flink大数据分布式
下面我们将学习Flink提供的用于处理事件时间戳和水印的API,也会介绍有关事件时间、流转时长和摄取时间,下面就让我们跟着官网来学习吧一、水印策略介绍为了处理事件时间,Flink需要知道事件时间戳,这意味着流中的每个元素都需要分配其事件时间戳。这通常是通过使用TimestampAssigner从元素中的某个字段访问/提取时间戳来完成的。时间戳分配与生成水印密切相关,水印告诉系统事件时间的进度。我们
- 技术干货 | i.MX 8视频开发案例全集
Tronlong创龙
工业级核心板嵌入式ARM软硬件原理图规格资料平台案例fpgaarmnxp嵌入式
前言:本文主要介绍基于NXPi.MX8MMini处理器的视频开发案例,主要包含:(1)基于GStreamer的USB摄像头视频采集、软件解码、边缘检测、显示案例。(2)基于GStreamer的网络摄像头视频采集、H.264解码、显示案例。(3)基于GigE工业相机的图像采集、显示、保存案例。(4)基于MIPICameraOV4689摄像头演示Linux子系统V4L2的使用案例。(5)H.265视频
- AI-大模型中的流式输出与非流式输出
岂不闻
AI人工智能开发语言AI编程
1.前言在大模型API开发中,流式与非流式输出对应着两种不同的数据交互,在代码中stream中通过参数true与false来进行设定。2.流式输出与非流式输出的原理2.1.非流式输出-请求一次响应返回完整数据非流式输出,传统的请求-响应模式,发起请求-等待完整内容生成后一次性返回给客户端。完整性:返回经过处理和验证的完整响应。单次传输:采用标准HTTP请求与响应模式,一次传输所有数据。等待时间:用
- java进行图片压缩
后端
图片压缩添加依赖com.siashantoolkit-image1.1.9使用Thumbnails来进行图片压缩publicstaticvoidcompressImage(Stringpath,intwidth,intheight,Stringsuffix,StringoutputFilename){try{ByteArrayOutputStreamout=newByteArrayOutputSt
- Excel 后缀竟成 “拦路虎”?POI 读取报错原因大揭秘
后端
POI读取excel报错由于有时候上传的是xls文件有时候上传的是xlsx文件,使用POIFSFileSystem来读取文件POIFSFileSystempoifsFileSystem;try{poifsFileSystem=newPOIFSFileSystem(newFileInputStream(file));}catch(IOExceptione){LOGGER.error("openxls
- Excel百万数据导入内存溢出(OOM)解决方案,以及HSSFworkbook,XSSFworkbook,SXSSFworkbook失败分析
冰糖码奇朵
解决问题JAVAjava
一.问题背景Excel百万数据导入,每行50+列,出现内存溢出,尝试HSSFworkbook,XSSFworkbook,SXSSFworkbook均未解决。查阅资料,采取StreamingReader的方式,问题解决。二.HSSFworkbook,XSSFworkbook,SXSSFworkbook分析序号类版本限制描述1HSSFworkbookExcel2003及以前,扩展名为.xls65536
- 数据实时增量同步之CDC工具—Canal、mysql_stream、go-mysql-transfer、Maxwell
caihuayuan4
面试题汇总与解析springsqljava大数据课程设计
@TOC[Mysql数据实时增量同步之CDC工具—Canal、mysql_stream、go-mysql-transfer、Maxwell:https://blog.csdn.net/weixin_42526326/article/details/121148721什么是CDC?CDC(ChangeDataCapture)是变更数据获取的简称。可以基于增量日志,以极低的侵入性来完成增量数据捕获的工
- TCP服务端、客户端模型
凌晨四点起,海棠花未眠
通信协议tcp/ip网络网络协议
Socket的基本概念Socket,中文常称为“套接字”,是计算机网络中应用程序之间进行通信的一种方式。在网络通信中,Socket提供了端对端的通信接口,使得不同主机上的应用程序可以相互通信。Socket通常分为两类:流式套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM),其中流式套接字基于TCP协议,而数据报套接字则基于UDP协议。下面我们将详细解释基于TCP的流式套接字(即
- AWS AppStream 2.0:开启云端应用交付新范式(实战解决方案剖析)
AWS官方合作商
aws云计算系统架构
导言:数字化转型中的"最后一公里"挑战当企业加速上云进程时,CAD设计软件、财务系统等专业工具受制于终端性能、数据安全与跨平台难题。AWSAppStream2.0作为全托管应用流服务,正为2000+企业破解这一困局——无需代码改造,将Windows应用转化为云服务。一、为什么AppStream2.0成为技术决策者新宠?1.1技术架构革命(对比传统VDI)去终端化部署:3D渲染/CAD等GPU应用在
- kafka + flink +mysql 案例
angen2018
javakafkaflink
假设你有两个Kafka主题:user_activities_topic和product_views_topic,并且你希望将user_activities_topic中的数据写入到user_activities表,而将product_views_topic中的数据写入到product_views表。mavenorg.apache.flinkflink-streaming-java_2.121.14
- Java知识点——IO流
小布不吃竹
java
目录一、IO流基础概念二、常见的IO流类三、字符流1.字符输入流(Reader)与字符输出流(Writer)2.常用实现类3.实例四、字节流1.字节输入流(InputStream)与字节输出流(OutputStream)2.实例一、IO流基础概念在Java中,IO流被抽象为一系列类和接口,主要分为两大类:输入流(InputStream/Reader)和输出流(OutputStream/Writer
- C/C++语言 String转long long 和int转string
游迹AI
笔记c语言String类型转换int类型
string类型转longlong类型stringstreamstrIn; strIn>q1;int转stringstringgetstring(constintn){stringstreamnewstr;newstr<<n;returnnewstr.str();}
- Java Stream reduce()详解
Ben_F
java
reduce()是JavaStreamAPI中的一个终端操作,它用于将流中的元素逐个结合起来,生成一个值。换句话说,reduce()通过对流中的元素应用二元运算(一个接收两个输入参数并返回一个结果的操作),将多个元素“归约”成一个值。1.reduce()方法的作用reduce()用于从流中生成单一结果,常见的用途有:计算总和、乘积计算最大值、最小值将字符串、对象等组合成一个结果reduce()操作
- C++文件读写操作(自学笔记三)
zgdk0204
c++
C++中对文件的操作的三个大类:写操作:ofstream读操作:ifstream读写操作:fstream要想实现对文件的读写操作,头文件中需要包含#include文件操作中的mode对于文件操作的mode有多种,分别为以下几种:文件操作手段对应mode代码为读文件而打开文件ios::in为写文件而打开文件ios::out初始位置,文件尾ios::ate追加方式写文件ios::app如果文件存在先删
- [C/C++笔记] 文件读写操作fstream
LPS爱玩Linux
C/C++c语言c++
[C/C++笔记]文件读写操作fstream1.简介2.打开文件3.写入文件4.读取文件4.1getline()和fstream.getline()1.简介fstream是C++标准库中用于文件读写的类。它提供了比底层C语言库更为高级的文件读写接口,因此使用起来更为方便和安全。在使用fstream时,需要包含头文件。fstream类有三个派生类:ifstream:用于从文件中读取数据。fstrea
- C++笔记 01文件流操作
nedaf
C++c++
1基本概念文件(file)存储在磁盘上的数据集合,可以是文本、二进制等格式,具有名称、大小、类型等属性。流(stream)一连串的字节,是一种抽象的数据传输方式。在C++中,文件操作是基于流的概念,有3种主要类型的流:输入流(istream):允许程序从源(如键盘、文件)读取数据。输出流(ostream):允许程序将数据发送到目标(如显示器、文件)。输入/输出流(iostream):结合了输入流和
- C++文件操作笔记
无衣秦风
c++
笔记:C++程序产生的数据保存文件文章目录一、C++文件读写打开关闭文件读写文件检测EOF读写文件状态标识符验证文件指针定位二、例子一、C++文件读写fstream可同时读写的文件类ofstream写操作(out输出)文件类ifstream读文件(in输入)文件类打开关闭文件voidopen(constchar*filename,openmodemode,intaccess);filename:要
- TCP通信-支持服务端与多个客户端同时通信
冷眼热眸
JAVA语言tcp/ip网络服务器网络协议java
在上一篇文章中,我展示了基于TCP通信协议的客户端与服务端进行通信,但是只能有一个客户端与服务端进行通信,详情请点击括号内的文章(UDP传输协议和TCP传输协议的解释和实例)。本篇文章讲述;基于多线程实现多个客户端与服务端同时通信,且附有代码的注解。客户端代码如下(Client)packagecom.itheima_tcp;importjava.io.DataOutputStream;import
- git clone 时,出现“error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)”错误
dushky
git
将Git的HTTP传输切换到HTTP/1.1,有可能会绕过此问题。使用下面的命令设置:gitconfig--globalhttp.versionHTTP/1.1上面的错误下面一般还会有别的错误提示,如:“error:2991bytesofbodyarestillexpected”,说明传输的大小超了。使用下面的命令增加时长、大小等方面的设置。gitconfig--globalhttp.postBu
- 【android开发-16】android中文件和sharedpreferences数据存储详解
孤舟簔笠翁
android应用开发android
1,文件读写方式的数据存储下面是一个简单的示例,演示如何在Android中使用内部存储来保存和读取文件:保存文件:try{Stringdata="这是要保存的数据";FileOutputStreamfos=openFileOutput("myFile",Context.MODE_PRIVATE);
- Nginx 代理 Redis 实现通过域名连接数据库
逢生博客
数据库nginxredis
文章目录Nginx模块介绍Stream模块配置Redis配置文件连接RedisNginx、Redis安装这里不做介绍。域名默认已经解析到服务器公网IP。Nginx模块介绍HTTP模块:HTTP模块提供了处理HTTP请求的功能,包括反向代理、负载均衡、缓存、HTTP代理等。例如:proxy模块用于反向代理和负载均衡,fastcgi模块用于处理FastCGI请求。Stream模块:Stream模块用于
- Nginx代理Redis哨兵主从配置
Rewloc
springbootredisRedis主从复制哨兵模式redisnginxnginx
Nginx代理Redis哨兵主从配置一、环境Nginx版本:1.21.6Center7.5及以上或MasOS搭建Redis哨兵主从模式Springboot集成Redis哨兵主从模式提示:Nginx必须安装upstream模块二、配置Nginx配置有三个方案(详见后续内容),其中:方案一将哨兵所有节点使用一个端口对外映射;方案二是每个哨兵端口配置一个对应的映射端口,总体和正常哨兵配置方式无差别;方案
- nginx代理mysql和redis
Blueeyedboy521
开发组件mysqlredisnginx
目录MysqlredisMysql这里监听另外一台B虚拟机中的192.168.0.44:3306,并通过A虚拟机的3306端口开放出去之后,只要外部连接A虚拟机ip:3306,并使用mysql的用户名、密码,就可以访问内部的#mysql了stream{upstreammysql{server192.168.0.44:3306;}server{listen3306;proxy_connect_tim
- stream 流的优势
Klong.k
java开发语言
在Java8及以上版本中,stream提供了一种更简洁、高效、可读性更强的方式来处理集合数据,比如遍历、筛选、映射、归约(reduce)、聚合等操作。相比传统的for循环或迭代器,stream具备以下优势:1.代码简洁,提高可读性传统方式(for循环):Listnumbers=Arrays.asList(1,2,3,4,5);intsum=0;for(intnum:numbers){sum+=nu
- 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