- 第八篇:node模版引擎Handlebars及他的高级用法(动态参数)
江城开朗的豌豆
Node从小白到独立开发者expresshandlebarsnode.js
江城开朗的豌豆:个人主页个人专栏:《VUE》《javaScript》个人网站:《江城开朗的豌豆》⛺️生活的理想,就是为了理想的生活!目录引言:介绍Handlebars第一步:安装对应的模版引擎第二步:创建views文件夹,并且新建一个index.hbs文件和about.hbs文件第三步:在serve.js中配置和使用模版。配置使用高级用法(动态参数)第一步:创建views文件夹,并且新建一个ind
- 第九章认识Express模板
无限好运101
express
基本概述Express模板是指Express框架中用于渲染视图的文件,可以包含HTML、CSS、JavaScript等内容,用于构建Web应用程序的用户界面。使用Express模板可以快速、方便地创建Web应用程序,并且可以轻松地将动态数据注入到模板中,以便于动态地呈现信息给用户。常见的Express模板引擎包括EJS、Pug、Handlebars等。基本分类Express模板可以分为静态模板和动
- Template Engine-06-模板引擎 Handlebars 入门介绍
老马啸西风
tools测试用例开发语言java
拓展阅读java表达式引擎logstash日志加工处理-08-表达式执行引擎AviatorScript+MVEL+OGNL+SpEL+JEXL+JUEL+JaninoQLExpress阿里表达式引擎系统学习什么是Handlebars?Handlebars是一种简单的模板语言。它使用模板和输入对象生成HTML或其他文本格式。Handlebars模板看起来像带有嵌入的Handlebars表达式的常规文
- Template Engine-01-模板引擎 FreeMarker、Thymeleaf、Velocity、Handlebars、Mustache 对比
老马啸西风
tools模板自动生成java
拓展阅读java表达式引擎logstash日志加工处理-08-表达式执行引擎AviatorScript+MVEL+OGNL+SpEL+JEXL+JUEL+JaninoQLExpress阿里表达式引擎系统学习SpringBoot-07-thymeleaf模板引擎整合使用模板引擎的概念模板引擎是一种用于生成动态内容的工具,它通过将模板和数据结合,生成最终的文本输出。模板通常包含静态文本和占位符,这些占
- Ambari 基本架构
cpuCode
Ambariambari架构前端hadoop大数据
Ambari利用了已有的优秀开源软件,并结合起来:agent端,采用了puppet管理节点在web端,采用ember.js作为前端MVC框架和NodeJS相关工具,用handlebars.js作为页面渲染引擎,在CSS/HTML方面还用了Bootstrap框架在Server端,采用了Jetty、Spring、JAX-RS等同时利用了Ganglia、Nagios的分布式监控能力Ambari框架采用的
- 【Microsoft Azure 的1024种玩法】六十.通过Azure Virtual Machines快速搭建个人Ghost博客系统
一只特立独行的兔先森
【MicrosoftAzure的1024种玩法】azuremicrosoftdevops
【简介】Ghost是一套基于Node.js语言开发构建的开源博客系统,它的整体架构为前端管理系统基于Ember.js,后端的模板引擎采用的handlebars,数据库是基于MySQL的,本篇文章主要介绍了如何通过AzureVirtualMachines快速搭建个人Ghost博客系统【前期文章】【MicrosoftAzure的1024种玩法】一.一分钟快速上手搭建宝塔管理面板【MicrosoftAz
- Html Webpack Plugin: Error: Child compilation failed:
眼☄ฺ(◣д◢)☄ฺ眸
报错
参考:https://stackoverflow.com/questions/39217320/error-in-error-child-compilation-failed-cannot-find-module-handlebars/39217412解决npmihandlebars--save-dev
- 模板语言-Handlebars
悠悠~飘
handlebarsHandlebars模板语言
Handlebars是什么Handlebars是一种简单的模板语言。它使用模板与传入的对象来生成HTML或者其他文本格式。Handlebars模板看起来像是嵌入了handlebars表达式的普通文本。{{firstname}}{{lastname}}一个handlebars表达式是使用两对尖括号包裹一些内容:{{somecontet}}。当模板被执行时,表达式中的内容将被来自输入的对象中的值所替换
- node 第十六天 模板引擎handlebars
飞衡、如日之升
node.js前端
handlebarshandlebars文档Handlebars是一种简单的模板语言。它使用模板和输入对象来生成HTML或其他文本格式。Handlebars模板看起来像常规的文本,但是它带有嵌入式的Handlebars表达式。这里我们要注意模板引擎的定义模板引擎是对一串字符串结合数据编译后生成另外一串字符串本质上和html没什么关系,只不过可以用来渲染html模板,其编译语言也是多样的,javas
- Node模板引擎学习(3)--EJS
majun00
jade虽然简洁受很多大神推崇并且也是官方推荐,但我个人觉得可读性太差了,个人倾向朴实的EJS,这里两者都进行学习,至于Handlebars,Swig如果公司要用再学习吧EJSEJS几乎不要学习成本,举两个例子差不多就能用了,如下'>注意:普通的结束标签-%>Trim-mode('newlineslurp')标签,移除随后的换行符在Express中设置模板引擎app.set('views','./
- 支持20种开发语言50种语法格式的在线代码解析器 AST 插件示例集合【含源码】
承诺一时的华丽
非常棒的在线AST浏览器https://astexplorer.net/源码:https://github.com/fkling/astexplorer一、支持开发语言CSS:cssomcsstreepostcss+postcss-safe-parser&postcss-scssreworkGraphQLGraphviz:redotHandlebars:glimmerhandlebarsember
- <%=%>模板写法
m0_67992720
前端html
这种写法通常称为"内嵌式模板"或"模板标记",在前端开发中,这种标记语法用于将动态数据嵌入HTML模板中。这种写法通常与模板引擎一起使用,这些模板引擎会根据提供的数据动态生成HTML。不同的模板引擎可能使用不同的标记语法,但通常遵循类似的原理,其中标记之间的内容是用于插入动态数据的代码。这些标记的具体形式和语法会因所使用的模板引擎而异。一些流行的前端模板引擎,如EJS、Pug、Handlebars
- Express模板引擎定制—hbs
一点金光
Express模板引擎定制—hbs(注意hbs不是handlebars)添加依赖://package.json"dependencies":{"body-parser":"~1.13.2","cookie-parser":"~1.3.5","debug":"~2.2.0","express":"~4.13.1","hbs":"~3.1.0","less-middleware":"1.0.x","m
- node中用的一些工具库记录
小小了墨
handlebars模板引擎nodemailer邮件分发constparams={host:'smtp.163.com',//设置服务smtp.qq.comport:465,//端口sercure:true,//是否使用TLS,true,端口为465,否则其他或者568//使用发送服务的邮箱auth:{//发送服务邮箱user:'
[email protected]',pass:'sdfsdf'//这
- 5.handlebars(registerHelper--索引二)
唐人不自醉
增加需求,一个班级人员众多,分成了很多的小组,每个小组有小组长,小组长的成员标号以组长编号开头往下顺,比如1.1、1.2这样,这样的需求怎么实现呢?怎么获父元素的索引呢?用类似{{../name}}这种语法访问父级循环中的属性,但是这样访问父级索引是不可以的,例如:{{../@index}},这样写是不正确的。一:引入1.引入jquery2.引入handlebars二:写handlebars模板注
- 从零搭建脚手架详细记录(一) - 修改模板文件
woodccc
上篇文章主要记录了从GitHub上下载模板文件,这次主要记录用Metalsmith和Handlebars修改模板文件。参考基于node.js平台的脚手架开发经历模板文件之前的模板文件是静态的,下载下来后直接就使用了。现在我想根据用户输入,将package.json的name改了。很简单,使用handlebar的语法,将package.json的name改成如下:……"name":"{{projec
- weex create报错Error: Cannot find module 'metalsmith'/Cannot find module 'handlebars'
泊多前端
y原文链接地址:https://blog.csdn.net/zemprogram/article/details/100173823使用weexcreate时报错觉得是包没有安装,于是在全局安装了metalsmith,结果没用将weex-toolkit更新到最新版本,还是没用将node和npm更新到最新版本,还是没用结果使用weex-help找了以下里面的命令,发现里面有个可以下载插件给自己使用使
- ember*3.5(定义一个组件)
wodelu
为了定义一个组件,运行:embergcomponentcomponent-nameember组件用来将标记文本和样式转换为可重用内容。组件包含两块:一个用来定义行为的Javascript组件文件,及其附随的Handlebars模板,用于定义组件UI的标记。组件的名字必须含有至少一个划线,所以blog-post是符合规范的名字,但post不是。这可以防止与当前或未来的HTML元素名字冲突,将Embe
- 4.handlebars(registerHelper--索引一)
唐人不自醉
继续增加需求,在学生的管理列表中需要加入序号,这里用到了registerHelper这个方法。在Handlebars.js中,可以通过{{@index}}来获取当前的索引,也就是说@index这个变量就代表了当前索引。一:引入1.引入jquery2.引入handlebars二:写handlebars模板注意:因为我们要实现的需求就是给每个学生增加序号,我们要多增加一列名叫mumber。{{#eac
- node搭建自定义cli
假小胖
nodehtmljsvue.jsnode
自定义cli搭建本文介绍简单的nodecli的搭建,可以通过简单的cli我们去延伸多功能,深度的自定义cli的搭建,搭建的同时我们还可以去掌握node一些常见的插件和api,这篇文章主要介绍自动化路由的搭建(简单的路由)。搭建cli1.下载需要用到的npm包npmichalkclearcommanderdownload-git-reopfiglethandlebarsopenorawatchuti
- 教你用 Node 创建 CLI 工具
ronghua_yang
javascriptnodejsnode创建cli工具
准备工作创建工程mkdirmy-clicdmy-clinpminit-ynpmicommanderdownload-git-repoorahandlebarsfigletclearchalkopenwatch-S创建bin目录package.json添加bin字段,将自定义的命令软连到全局环境,同时执行npmlink创建链接。"bin":{"wbiao":"./bin//index.js"}在根目
- My New Bicycle
紫气东来2019
图片发自AppMybirthdayisalmosthere!Myfatherboughtmearoadracingbike.Itisskyblue,ascoolasacucumber,anditstiresarenarrow,thehandlebarsarebent.我的生日就要到了,爸爸给我买了一辆超级酷的蓝色公路赛车。车胎很窄,车把是弯的。Ican’twaittorideonit!“Ok,ok
- js实现发布订阅模式
我的昵称好听吗
发布订阅模式指的是希望接收通知的对象(Subscriber)基于一个主题通过自定义事件订阅主题,被激活事件的对象(Publisher)通过发布主题事件的方式通知各个订阅该主题的Subscriber对象。订阅发布模式需要有:订阅、发布、移除订阅三个方法;classPubSub{constructor(){this.handleBars={};//保存监听事件}//订阅subscribe(eventN
- nodejs i18n国际化(通过浏览器切换语言)
sanguing
说明该内容作为自己学习过程中和项目中的一次使用记录,方便以后查看。如果内容有错误(那就是项目中使用错误啦)的地方,欢迎指正。开发环境前端:nodejs+express+Handlebars后段:随便使用环境说明因为项目中需要在浏览器web端做国际化,通过切换按钮来达到切换语言。所以在nodejs端采用了i18n作为语言环境。代码流程说明1、初始化i8n配置2、nodejs在login页面通过切换语
- 搭建cli命令行脚手架
sayid760
js
文章目录node知识常用到的几个库commander命令行界面yargs处理命令行参数inquirershelljsora加载工具chalk和tracer颜色工具download-git-repo和git-clone下载远程模板Handlebars模板引擎metalsmith读取所有文件,实现模板渲染log-symbols显示出√或×等的图标ini格式转换简单的cli实现类似vue-cli脚手架发
- 从零开始搭建一个自己的前端脚手架(一):基础篇
Sophie_U
生产力工具vue.js脚手架从零开始
文章目录前言1.1脚手架本质1.2脚手架工作流程1.3依赖工具库1.4脚手架目录结构一、功能拆分1.1创建bin目录全局调试1.2引入commander简化命令解析1.3引入download-git-repo实现模板下载的过程1.4引入inquirer实现交互问询1.5引入handlebars替换package.json中项目元信息二、简单优化&发布2.1代码优化1、新增generator.js2
- 组件开发-tab页新建,删除
云桃桃
主要工具,jq,handlebars,上移下移改天继续写。1.gifjsfunctionTab(elm,strOpt){this.parents=$(elm);this.parents.html('');this.parents.append('');this.parents.append('');this.menuParents=$(".tab-menu-box");this.conParent
- 创建和发布自己的cli
key君
mkdirvue-auto-router-clicdvue-auto-router-clinpminit-y安装handlebarsnpminstallhandlebars-S打开项目创建基础命令新建bin/kkb注册解析器用node语言选择JavaScriptreact语言#!/usr/bin/envnodeconstprogram=require('commander')//创建命令progr
- 创建自己的脚手架
lyn911
1.初始化工程npminit2.安装插件npmicommanderdownload-git-repoorahandlebarsfigletclearchalkopenwatchinquirer3.新建bin目录,创建js文件!/usr/bin/envnodeimport{Command}from"commander";importdownloadfrom"download-git-repo";im
- 从零开始使用nodejs+ejs模板轻松搭建web网站
什么是ejs类比handlebars.js、artTemplate、jade这些模板引擎等,ejs也是一个javascript模板引擎,这里就不比较它与其他模板引擎的性能做对比了,ejs语法过于朴实,如果你会写html和简单的JavaScript,或者你用jsx写过react,那么ejs对你来讲将轻而易举。只需简单的两步:将%标签包裹的js语法写在html里将html后缀的文件后缀名替换成ejs它
- ASM系列五 利用TreeApi 解析生成Class
lijingyao8206
ASM字节码动态生成ClassNodeTreeAPI
前面CoreApi的介绍部分基本涵盖了ASMCore包下面的主要API及功能,其中还有一部分关于MetaData的解析和生成就不再赘述。这篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。
在介绍前,先要知道一点, Tree工程的接口基本可以完
- 链表树——复合数据结构应用实例
bardo
数据结构树型结构表结构设计链表菜单排序
我们清楚:数据库设计中,表结构设计的好坏,直接影响程序的复杂度。所以,本文就无限级分类(目录)树与链表的复合在表设计中的应用进行探讨。当然,什么是树,什么是链表,这里不作介绍。有兴趣可以去看相关的教材。
需求简介:
经常遇到这样的需求,我们希望能将保存在数据库中的树结构能够按确定的顺序读出来。比如,多级菜单、组织结构、商品分类。更具体的,我们希望某个二级菜单在这一级别中就是第一个。虽然它是最后
- 为啥要用位运算代替取模呢
chenchao051
位运算哈希汇编
在hash中查找key的时候,经常会发现用&取代%,先看两段代码吧,
JDK6中的HashMap中的indexFor方法:
/**
* Returns index for hash code h.
*/
static int indexFor(int h, int length) {
- 最近的情况
麦田的设计者
生活感悟计划软考想
今天是2015年4月27号
整理一下最近的思绪以及要完成的任务
1、最近在驾校科目二练车,每周四天,练三周。其实做什么都要用心,追求合理的途径解决。为
- PHP去掉字符串中最后一个字符的方法
IT独行者
PHP字符串
今天在PHP项目开发中遇到一个需求,去掉字符串中的最后一个字符 原字符串1,2,3,4,5,6, 去掉最后一个字符",",最终结果为1,2,3,4,5,6 代码如下:
$str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;
- hadoop在linux上单机安装过程
_wy_
linuxhadoop
1、安装JDK
jdk版本最好是1.6以上,可以使用执行命令java -version查看当前JAVA版本号,如果报命令不存在或版本比较低,则需要安装一个高版本的JDK,并在/etc/profile的文件末尾,根据本机JDK实际的安装位置加上以下几行:
export JAVA_HOME=/usr/java/jdk1.7.0_25  
- JAVA进阶----分布式事务的一种简单处理方法
无量
多系统交互分布式事务
每个方法都是原子操作:
提供第三方服务的系统,要同时提供执行方法和对应的回滚方法
A系统调用B,C,D系统完成分布式事务
=========执行开始========
A.aa();
try {
B.bb();
} catch(Exception e) {
A.rollbackAa();
}
try {
C.cc();
} catch(Excep
- 安墨移动广 告:移动DSP厚积薄发 引领未来广 告业发展命脉
矮蛋蛋
hadoop互联网
“谁掌握了强大的DSP技术,谁将引领未来的广 告行业发展命脉。”2014年,移动广 告行业的热点非移动DSP莫属。各个圈子都在纷纷谈论,认为移动DSP是行业突破点,一时间许多移动广 告联盟风起云涌,竞相推出专属移动DSP产品。
到底什么是移动DSP呢?
DSP(Demand-SidePlatform),就是需求方平台,为解决广 告主投放的各种需求,真正实现人群定位的精准广
- myelipse设置
alafqq
IP
在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的数倍。因此项目的可维护性、可复用性是衡量一个项目好坏的关键。而注释则是可维护性中必不可少的一环。
注释模板导入步骤
安装方法:
打开eclipse/myeclipse
选择 window-->Preferences-->JAVA-->Code-->Code
- java数组
百合不是茶
java数组
java数组的 声明 创建 初始化; java支持C语言
数组中的每个数都有唯一的一个下标
一维数组的定义 声明: int[] a = new int[3];声明数组中有三个数int[3]
int[] a 中有三个数,下标从0开始,可以同过for来遍历数组中的数
- javascript读取表单数据
bijian1013
JavaScript
利用javascript读取表单数据,可以利用以下三种方法获取:
1、通过表单ID属性:var a = document.getElementByIdx_x_x("id");
2、通过表单名称属性:var b = document.getElementsByName("name");
3、直接通过表单名字获取:var c = form.content.
- 探索JUnit4扩展:使用Theory
bijian1013
javaJUnitTheory
理论机制(Theory)
一.为什么要引用理论机制(Theory)
当今软件开发中,测试驱动开发(TDD — Test-driven development)越发流行。为什么 TDD 会如此流行呢?因为它确实拥有很多优点,它允许开发人员通过简单的例子来指定和表明他们代码的行为意图。
TDD 的优点:
&nb
- [Spring Data Mongo一]Spring Mongo Template操作MongoDB
bit1129
template
什么是Spring Data Mongo
Spring Data MongoDB项目对访问MongoDB的Java客户端API进行了封装,这种封装类似于Spring封装Hibernate和JDBC而提供的HibernateTemplate和JDBCTemplate,主要能力包括
1. 封装客户端跟MongoDB的链接管理
2. 文档-对象映射,通过注解:@Document(collectio
- 【Kafka八】Zookeeper上关于Kafka的配置信息
bit1129
zookeeper
问题:
1. Kafka的哪些信息记录在Zookeeper中 2. Consumer Group消费的每个Partition的Offset信息存放在什么位置
3. Topic的每个Partition存放在哪个Broker上的信息存放在哪里
4. Producer跟Zookeeper究竟有没有关系?没有关系!!!
//consumers、config、brokers、cont
- java OOM内存异常的四种类型及异常与解决方案
ronin47
java OOM 内存异常
OOM异常的四种类型:
一: StackOverflowError :通常因为递归函数引起(死递归,递归太深)。-Xss 128k 一般够用。
二: out Of memory: PermGen Space:通常是动态类大多,比如web 服务器自动更新部署时引起。-Xmx
- java-实现链表反转-递归和非递归实现
bylijinnan
java
20120422更新:
对链表中部分节点进行反转操作,这些节点相隔k个:
0->1->2->3->4->5->6->7->8->9
k=2
8->1->6->3->4->5->2->7->0->9
注意1 3 5 7 9 位置是不变的。
解法:
将链表拆成两部分:
a.0-&
- Netty源码学习-DelimiterBasedFrameDecoder
bylijinnan
javanetty
看DelimiterBasedFrameDecoder的API,有举例:
接收到的ChannelBuffer如下:
+--------------+
| ABC\nDEF\r\n |
+--------------+
经过DelimiterBasedFrameDecoder(Delimiters.lineDelimiter())之后,得到:
+-----+----
- linux的一些命令 -查看cc攻击-网口ip统计等
hotsunshine
linux
Linux判断CC攻击命令详解
2011年12月23日 ⁄ 安全 ⁄ 暂无评论
查看所有80端口的连接数
netstat -nat|grep -i '80'|wc -l
对连接的IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
查看TCP连接状态
n
- Spring获取SessionFactory
ctrain
sessionFactory
String sql = "select sysdate from dual";
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
String[] names = wac.getBeanDefinitionNames();
for(int i=0; i&
- Hive几种导出数据方式
daizj
hive数据导出
Hive几种导出数据方式
1.拷贝文件
如果数据文件恰好是用户需要的格式,那么只需要拷贝文件或文件夹就可以。
hadoop fs –cp source_path target_path
2.导出到本地文件系统
--不能使用insert into local directory来导出数据,会报错
--只能使用
- 编程之美
dcj3sjt126com
编程PHP重构
我个人的 PHP 编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考 PHP 手册。希望下面的代码,会更有利于对递归以及静态变量的理解
header("Content-type: text/plain");
function static_function () {
static $i = 0;
if ($i++ < 1
- Android保存用户名和密码
dcj3sjt126com
android
转自:http://www.2cto.com/kf/201401/272336.html
我们不管在开发一个项目或者使用别人的项目,都有用户登录功能,为了让用户的体验效果更好,我们通常会做一个功能,叫做保存用户,这样做的目地就是为了让用户下一次再使用该程序不会重新输入用户名和密码,这里我使用3种方式来存储用户名和密码
1、通过普通 的txt文本存储
2、通过properties属性文件进行存
- Oracle 复习笔记之同义词
eksliang
Oracle 同义词Oracle synonym
转载请出自出处:http://eksliang.iteye.com/blog/2098861
1.什么是同义词
同义词是现有模式对象的一个别名。
概念性的东西,什么是模式呢?创建一个用户,就相应的创建了 一个模式。模式是指数据库对象,是对用户所创建的数据对象的总称。模式对象包括表、视图、索引、同义词、序列、过
- Ajax案例
gongmeitao
Ajaxjsp
数据库采用Sql Server2005
项目名称为:Ajax_Demo
1.com.demo.conn包
package com.demo.conn;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;
//获取数据库连接的类public class DBConnec
- ASP.NET中Request.RawUrl、Request.Url的区别
hvt
.netWebC#asp.nethovertree
如果访问的地址是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree%3C&n=myslider#zonemenu那么Request.Url.ToString() 的值是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree<&
- SVG 教程 (七)SVG 实例,SVG 参考手册
天梯梦
svg
SVG 实例 在线实例
下面的例子是把SVG代码直接嵌入到HTML代码中。
谷歌Chrome,火狐,Internet Explorer9,和Safari都支持。
注意:下面的例子将不会在Opera运行,即使Opera支持SVG - 它也不支持SVG在HTML代码中直接使用。 SVG 实例
SVG基本形状
一个圆
矩形
不透明矩形
一个矩形不透明2
一个带圆角矩
- 事务管理
luyulong
javaspring编程事务
事物管理
spring事物的好处
为不同的事物API提供了一致的编程模型
支持声明式事务管理
提供比大多数事务API更简单更易于使用的编程式事务管理API
整合spring的各种数据访问抽象
TransactionDefinition
定义了事务策略
int getIsolationLevel()得到当前事务的隔离级别
READ_COMMITTED
- 基础数据结构和算法十一:Red-black binary search tree
sunwinner
AlgorithmRed-black
The insertion algorithm for 2-3 trees just described is not difficult to understand; now, we will see that it is also not difficult to implement. We will consider a simple representation known
- centos同步时间
stunizhengjia
linux集群同步时间
做了集群,时间的同步就显得非常必要了。 以下是查到的如何做时间同步。 在CentOS 5不再区分客户端和服务器,只要配置了NTP,它就会提供NTP服务。 1)确认已经ntp程序包: # yum install ntp 2)配置时间源(默认就行,不需要修改) # vi /etc/ntp.conf server pool.ntp.o
- ITeye 9月技术图书有奖试读获奖名单公布
ITeye管理员
ITeye
ITeye携手博文视点举办的9月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 9月试读活动回顾:http://webmaster.iteye.com/blog/2118112本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《NFC:Arduino、Andro