- Flutter权限插件详解:permission_handler使用指南
AI移动开发前沿
AI移动端开发宝典flutterai
Flutter权限插件详解:permission_handler使用指南关键词:Flutter、权限插件、permission_handler、权限管理、移动开发摘要:本文围绕Flutter开发中常用的权限插件permission_handler展开详细介绍。首先阐述了在Flutter应用开发中处理权限的背景和重要性,接着深入解析permission_handler的核心概念、架构以及工作原理,通
- Java 笔记 lambda
五行缺弦
Java笔记java笔记
✅Lambda基本语法(parameters)->expression或(parameters)->{statements}//无参数Runnabler=()->System.out.println("Hello");//单个参数(小括号可省略)Consumerc=s->System.out.println(s);//多参数+多语句Comparatorcomp=(a,b)->{System.out
- 从0到1学PHP(二):PHP 基本语法:构建代码的基石
奔跑吧邓邓子
项目攻略php开发语言基本语法
目录一、PHP标记与注释1.1PHP的起始和结束标记1.2单行注释和多行注释二、变量与数据类型2.1变量的定义、命名规则和使用方法2.2数据类型详解2.3数据类型的转换三、运算符与表达式3.1各类运算符的使用3.2表达式的组成和运算规则一、PHP标记与注释1.1PHP的起始和结束标记在PHP编程中,起始标记是极为重要的基础概念。当PHP解析器处理文件时,一旦识别到结束标记,标记之外的内容会被忽略。
- Python函数全攻略:参数传递、作用域LEGB及高阶特性详解
在Python中,函数不仅仅是代码的组织单元,它们被视为“一等公民”,这意味着函数可以像其他任何对象(如数字、字符串、列表)一样被赋值给变量、作为参数传递给其他函数,以及作为其他函数的返回值。这种特性为Python带来了强大的灵活性和表达力,是理解高阶函数、闭包和装饰器等高级概念的基础。一、函数定义与调用基础<aname="1-定义与调用"></a>1.1基本语法与self使用def关
- Layui核心语法快速入门指南
bemyrunningdog
layui前端javascript开发语言
Layui基本语法学习指南Layui是一个经典的模块化前端框架,以其轻量易用、组件丰富著称。以下是Layui的核心语法结构和使用方法:一、模块加载机制(核心基础)//标准模块加载语法layui.use(['module1','module2'],function(){//回调函数中获取模块varmod1=layui.module1;varmod2=layui.module2;//模块功能调用mod
- [JAVAEE] Thymeleaf 基本语法: form相关标签
CN-Dust
JAVAEEspringjava-ee
th:action指定表单提交地址th:value给value属性赋值th:field能自动生成id、name和value属性form表单示例运行结果更改数据点击保存控制器代码:TestController.javapackagecom.example.demo.controller;importcom.example.demo.bean.Student;importorg.springframe
- Python YAML文件处理完全指南:从入门到精通
Yant224
python#文件操作与异常处理pythonYAML配置文件处理数据序列化PyYAMLruamel.yaml
一、YAML基础与Python环境搭建1.YAML简介YAML(YAMLAin’tMarkupLanguage)是一种人类可读的数据序列化格式,特点:使用缩进表示层级关系支持复杂数据结构包含注释功能跨语言兼容2.核心特性对比特性YAMLJSONXML可读性★★★★★★★☆☆☆★★★☆☆注释支持✅❌✅数据类型丰富基本基本语法复杂度简单简单复杂3.安装PythonYAML库#安装PyYAML(基础库)
- Image
小懒豆
Image.asset("images/flutter.png",fit:BoxFit.cover,),Image.network(url):从网络加载显示图片、这里需要传入图片的url,Image.file(file):从本地文件加载显示图片、这里需要传入图片的本地地址Image.asset(name):从FlutterAPP的资源文件里加载显示图片、这里需要传入FlutterAPP图片资源文件
- 音视频流媒体开发【七十四】- WebRTC1-WebRTC入门
AlanGe
音视频流媒体开发-目录iOS知识点-目录Android-目录Flutter-目录数据结构与算法-目录uni-pp-目录1WebRTC入门1.1什么是WebRTCWebRTC(WebRealTimeCommunication)是Google于2010以6829万美元从GlobalIPSolutions公司购买,并于2011年将其开源,旨在建立一个互联网浏览器间的实时通信的平台,让WebRTC技术成为
- 【Python】pandas.cut()函数的用法
pandas.cut()函数是一个非常有用的工具,用于将数值型数据按照指定的分箱或区间进行分割,从而将连续的数值变量转换为离散的类别变量。这在数据分析和机器学习的特征工程中尤其有用,因为它可以帮助揭示不同区间内的数据分布特征,或者简化模型的输入。基本用法pandas.cut()的基本语法如下:pandas.cut(x,bins,right=True,labels=None,retbins=Fals
- 音视频流媒体开发【七十二】- RTSP流媒体7-SDP协议分析
AlanGe
音视频流媒体开发-目录iOS知识点-目录Android-目录Flutter-目录数据结构与算法-目录uni-pp-目录SDP(SessionDescriptionProtocol)完全是⼀种会话描述格式―它不属于传输协议―它只使⽤不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME扩展协议的电⼦邮件以及超⽂本传输协议(HTTP)。SDP协议是也
- Java泛型
一念&
Javajava
在Java中,泛型(Generics)是一种允许在定义类、接口或方法时使用类型参数的特性。它的核心目的是增强类型安全性、减少类型转换错误,并提高代码复用性。下面通过关键概念和示例详细解释:一、泛型的核心作用类型安全:编译时检查类型错误,避免运行时ClassCastException消除强制类型转换:代码更简洁代码复用:一套逻辑可处理多种数据类型二、基本语法1.泛型类//T是类型参数(可自定义名称)
- HarmonyOS Flutter Boost完全接入手册:爬完所有坑的实战指南
二蛋和他的大花
flutterharmonyharmonyosflutter华为
FlutterBoost在做混合开发非常实用,但官方文档的不清晰。本文将基于实战经验,帮助大家避开那些常见的坑,快速上手并高效开发。前言:为何要写这篇手册在开发过程中,我发现官方文档对于FlutterBoost的集成描述不够清晰,按照官方文档操作会遇到诸多问题。因此,我决定结合自己的实战经验,为大家提供一份详细且实用的集成手册,希望能帮助大家少走弯路。一、集成问题:从源码到har包的抉择在开发初期
- Linux vimgrep 详解
我是唐青枫
Linuxlinux运维
简介:vimgrep是Vim提供的「直接在指定文件集里用正则查找」的命令与外部grep不同,vimgrep在查到结果后会将匹配行写入快速修复列表(quickfixlist),并可通过:copen、:cnext、:cfirst等命令逐条跳转支持Vim的正则引擎,允许灵活使用Vim正则、分组、魔法模式等基本语法:vimgrep[!]/{pattern}/[g][j]{file_pattern}[...
- 【Python面试笔记】1.9.1 基础语法 文件操作 打开文件(open)
Python中处理文件的操作非常直观和方便,主要通过内置的open()函数来进行文件的打开、读取、写入等操作;下面是对文件操作的详细介绍1.打开文件open()open()函数用于打开一个文件,并返回一个文件对象;它的基本语法如下:file_object=open(file_name,mode)file_name:表示文件名或路径,可以是相对路径或绝对路径绝对路径是从文件系统的根目录开始的完整路径
- Python中的 filter() | 函数详解
2401_87650616
python开发语言
目录前言一、基本概念基本语法二、使用方式1.使用lambda函数2.使用普通函数3.使用None过滤假值三、filter()与列表推导式对比1.filter()方式2.列表推导式方式3.选择建议四、常见应用场景1.过滤偶数2.过滤空字符串3.过滤None值4.过滤质数五、注意事项与最佳实践1.惰性求值:filter()返回的是迭代器,只在需要时计算,节省内存2.性能考虑:对于大数据集,filter
- Flutter状态管理之Provider的使用和架构分析
JonnyLan
FlutterAndroidiOS
状态管理在Flutter中非常重要,但是它包含的内容又非常的广泛。本文我们首先了解下什么是状态和状态管理呢?然后我们来了解官方的状态管理库Provider的使用,最后分析下Provider背后的秘密。状态管理状态Flutter是声明式编程,Widget定义的UI都是在build()函数中实现的,这个函数的功能就是将状态转换成UI。UI=f(state)官方对状态的定义如下:whateverdata
- Flutter _ 状态管理指南篇——Provider
2401_89694064
flutter前端javascript
runApp(Provider.value(value:textSize,child:ChangeNotifierProvider.value(value:counter,child:MyApp(),),),);}通过Provider.value能够管理一个恒定的数据,并提供给子孙节点使用。我们只需要将数据在其value属性中声明即可。在这里我们将textSize传入。而ChangeNotifie
- dart和python哪个好学_最近学习 Dart 语言,分享一下心得 (入门级)
每隔一段时间,总有一种新(或较新)的语言进入大家的视线,比如Kotlin,Rust,Go等,我查了一下它们的“出生日期”:Rust(2011自举,2015v1.0)Go(2012,v1.0)Kotlin(2012开源,2016v1.0)TypeScript(2014,v1.0)Swift(2014,v1.0)Dart/Flutter(2018,Dartv2.0)由于Dart1实质上已经被放弃,Da
- 实现段落文字两端对齐的css样式
有时候网站中的文字比较多,虽然为父元素设置了宽度,但是总是会出现两端参差不齐的情况,看起来不整齐。其实实现段落的两端对齐,只需要设置两个css样式即可。.demo{text-align:justify;text-justify:inter-ideograph;/*IE*/}text-justify基本语法语法:text-justify:auto|inter-word|newspaper|distr
- 使用 Dart 库轻松进行时间序列预测 - 立即执行多元预测
krishnaik06
深度学习AI写作pythonAI作画神经网络
这个视频介绍了名为Darts的Python库,它可以简化时间序列数据处理和预测。主要内容:解决时间序列预测难题:Darts库提供了多种模型,包括经典的ARIMA、SARIMAX,以及深度学习模型,可以轻松处理单变量和多变量时间序列预测。简化操作:Darts库使用统一的fit和predict函数,类似于scikit-learn,让用户可以轻松地使用各种模型。支持多种模型:Darts库包含ARIMA、
- Flutter开发实战之测试驱动开发
老Lin头
Flutter开发flutter驱动开发
第11章:测试驱动开发-让代码更可靠的艺术在Flutter开发中,测试不仅仅是一个可选项,更是保证应用质量的必要手段。本章将带你深入了解Flutter的测试世界,从基础的单元测试到完整的集成测试,让你的应用像经过精密检验的工艺品一样可靠。11.1Flutter测试框架概述为什么测试如此重要?在开始学习具体的测试技术之前,让我们先理解测试的价值。想象你开发了一个计算器应用,用户在使用时发现"2+2"
- 《Python 函数:编程世界的魔法工具》
在Python编程的广袤世界中,函数就像是一个个神奇的魔法工具,它们赋予了我们组织和重复利用代码的强大能力。今天,让我们一同深入探索Python中函数的奥秘。一、函数的定义在Python中,函数是一段可以被重复调用的代码块,用于执行特定的任务或计算。通过使用def关键字来定义函数,其基本语法如下:deffunction_name(parameters):#函数体returnresult例如,我们可
- Python解析Yaml配置文件
对许
#Python#自动化python
Python解析Yaml配置文件1、Yaml模块2、Yaml基本语法3、Python处理Yaml文件1、Yaml模块Yaml不是一种标记语言,而是一种易读的序列化语言Yaml通常被用作配置文件,后缀是.yaml或.yml;主要用于数据存储与传输Python的PyYaml模块是Python的Yaml解析器和生成器安装:pipinstallpyyamlimportyaml#Python处理Yaml文件
- Flutter 提取图像主色调 ColorScheme.fromImageProvider
愿天深海
flutter
从图像中提取主色调,用于动态适配颜色主题或者界面颜色。之前在Flutter应用里一直用的palette_generator插件,可以分析图像颜色,从中提取一系列主要的色调。最近发现这个谷歌官方的插件竟然不维护了,后续没有更新计划了。查找了一系列资料之后,才发现原来在Material3设计规范中有ColorScheme.fromImageProvider这么一个功能,用于从图像的主色调生成配色方案,
- Flutter开发实战之网络请求与数据处理
老Lin头
Flutter开发flutter网络
第6章:网络请求与数据处理“数据是应用的血液,网络是连接世界的桥梁。”在移动应用开发中,与服务器进行数据交互是必不可少的功能。无论是获取用户信息、提交表单数据,还是上传图片、下载文件,都离不开网络请求。本章将带你深入掌握Flutter中的网络编程技巧。6.1网络请求基础概念6.1.1什么是HTTP请求?想象一下,你走进一家餐厅点餐的过程:你告诉服务员想要什么(发送请求)服务员把你的需求传达给厨房(
- Flutter控件归纳总结
Bryce李小白
flutter
Flutter的控件(Widget)是构建UI的基础,分为无状态(StatelessWidget)和有状态(StatefulWidget)两大类。以下是Flutter核心控件的系统归纳:一、基础布局控件Container通用容器:支持装饰(颜色、边框、阴影)、内外边距、尺寸约束。示例:Container(color:Colors.blue,padding:EdgeInsets.all(16))Ro
- C#(基本语法)
慢慢沉
C#c#
数据类型C#是一种强类型语言,变量必须声明类型。基本数据类型包括整型(int、long)、浮点型(float、double)、布尔型(bool)、字符型(char)和字符串型(string)。引用类型包括类、接口、数组等。intage=25;doubleprice=19.99;boolisActive=true;chargrade='A';stringname="John";变量与常量变量用于存储
- (77)FPGA时序违例及解决办法-面试必问(一)(第16天)
宁静致远dream
FPGA初级课程fpga开发面试职场和发展
(77)FPGA时序违例及解决办法-面试必问(一)(第16天)1文章目录1)文章目录2)FPGA初级课程介绍3)FPGA初级课程架构4)FPGA时序违例及解决办法-面试必问(一)(第16天)5)技术交流6)参考资料2FPGA初级课程介绍1)FPGA初级就业课程共100篇文章,目的是为了让想学FPGA的小伙伴快速入门。2)FPGA初级就业课程包括FPGA简介、VerilogHDL基本语法、Veril
- c#基本语法
1.C#中的命名空间是namespace,类似于Java中的package(包),在Java中导入包用import而c#中用using;2.c#和Java都是从main函数入口的,但是c#中的main函数的首字母必须大写,而且有4种写法;3.数据类型:Java跟c#基本都差不多,但是Java的String类型的首字母必须大写,而c#中可以小写也可以大写;还有布尔型,Java中是boolean,c#
- 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