- Docker 安装 ( Install Docker Engine on CentOS)
shaojiaozld
docker容器运维云计算
1、InstallationmethodsYoucaninstallDockerEngineindifferentways,dependingonyourneeds:YoucansetupDocker’srepositoriesandinstallfromthem,foreaseofinstallationandupgradetasks.Thisistherecommendedapproach.Y
- vue3阻止事件冒泡到父元素
我爱加班、、
前端功能实现以及问题解决前端开发遇到的问题vue.jsjavascript前端
在Vue3中,如果你想在子组件的点击事件中阻止父组件绑定的点击事件触发,可以使用以下方法:1.使用.stop修饰符Vue提供了.stop修饰符,可以阻止事件冒泡到父元素。这是最简单直接的方式。示例代码点击我exportdefault{methods:{handleParentClick(){console.log('父元素被点击');},handleChildClick(){console.log
- 【Python设计模式07】工厂方法模式
一碗姜汤
设计模式python设计模式工厂方法模式
工厂方法模式(FactoryMethodPattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使得一个类的实例化延迟到其子类。通过使用工厂方法模式,可以将对象的创建过程与使用过程分离,从而提高代码的灵活性和可扩展性。工厂方法模式的结构工厂方法模式主要包括以下几个角色:抽象产品(Product):定义产品的接口。具体产品(ConcreteProduc
- 006设计模式--工厂方法模式(Factory Method Pattern)
少年359
设计模式设计模式工厂方法模式
目录一、什么是工厂方法模式二、工厂方法模式的结构三、工厂方法模式的代码实现四、工厂方法模式的优缺点五、工厂方法模式的应用场景六、对比七、总结一、什么是工厂方法模式简单工厂模式存在的问题:类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了开闭原则。工厂方法模式是一种常用的类创建型设计模式,此模式的核心精神是封装类中变化的部分,提取其中个性化善变的部分为独立类,通过依赖注入
- 工厂模式(Factory Pattern)
coding_-_半生
java设计模式简单工厂模式工厂方法模式抽象工厂模式
工厂模式文章目录工厂模式介绍一、工厂模式的几种变体二、工厂模式类图1.简单工厂模式(SimpleFactoryPattern)2.工厂方法模式(FactoryMethodPattern)3.抽象工厂模式(AbstractFactoryPattern)三、总结1.比较三种工厂模式应用场景2.工厂模式总结介绍工厂模式是一种常见的设计模式,用于创建对象而不暴露对象的创建逻辑。在软件开发中,工厂模式通常用
- 【愚公系列】二十三种设计模式(一)-工厂方法模式(Factory Method Pattern)
愚公搬代码
(完)C#版设计模式和原则设计模式工厂方法模式microsoft.netc#.netcore
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。博客内容.NET、Jav
- Java--深入理解字符串的String#intern()方法奥妙之处_intern java string 解释
2401_86372503
java开发语言
*Returnsacanonicalrepresentationforthestringobject.**Apoolofstrings,initiallyempty,ismaintainedprivatelybythe*class{@codeString}.**Whentheinternmethodisinvoked,ifthepoolalreadycontainsa*stringequaltot
- 深入理解Python的@staticmethod和@classmethod装饰器
清水白石008
Python题库python开发语言python开发语言
深入理解Python的@staticmethod和@classmethod装饰器引言在Python的面向对象编程中,类方法和静态方法是除了实例方法之外的两种重要方法类型。它们允许我们在不创建类实例的情况下调用类的方法,或者在调用时直接引用类本身。Python提供了@staticmethod和@classmethod这两个装饰器,用于定义类方法和静态方法。然而,许多初学者可能会对这两种方法感到困惑,
- Python staticmethod
weixin_30449239
python
1@staticmethod静态方法whenthismethodiscalled,wedon'tpassaninstanceoftheclasstoit(aswenormallydowithmethods).Thismeansyoucanputafunctioninsideaclassbutyoucan'taccesstheinstanceofthatclass(thisisusefulwheny
- Python-静态方法(@staticmethod)
lhh_qrsly
Python
@staticmethod静态方法只是名义上归属类管理,但是不能使用类变量和实例变量,是类的工具包放在函数前(该函数不传入self或者cls),所以不能访问类属性和实例属性classcal:cal_name='计算器'def__init__(self,x,y):self.x=xself.y=y@property#在cal_add函数前加上@property,使得该函数可直接调用,封装起来defca
- python中@staticmethod方法
elie813
python基础
python中@staticmethod方法,类似于C++中的static,方便将外部函数集成到类体中,主要是可以在不实例化类的情况下直接访问该方法,如果你去掉staticmethod,在方法中加self也可以通过实例化访问方法也是可以集成。classTest:def__init__(self,num):self.num=num;defcout_num(self):print(self.num)@
- Python 装饰器详解:@staticmethod 与 @classmethod 的区别与用法:中英双语
阿正的梦工坊
Pythonpython开发语言
缘由:今天在看Huggingface的源码的时候,https://github.com/huggingface/transformers/blob/v4.47.1/src/transformers/models/auto/configuration_auto.py#L897对几个装饰器有所疑问,学习一下。Python装饰器详解:@staticmethod与@classmethod的区别与用法在Py
- no such element: Unable to locate element: {“method“:“xpath“,“selector“:“//select[@id=‘nr‘]“}
张某人想退休
fromseleniumimportwebdriverfromselenium.webdriver.support.selectimportSelectfromtimeimportsleepdriver=webdriver.Chrome()driver.implicitly_wait(10)driver.get('http://www.baidu.com')#鼠标悬停至“设置”链接#driver.
- 通过函数创建 ant-design-vue 的 Drawer 组件和 Modal 组件
原由通常在业务中,写抽屉组件或者弹框组件的时候,都是用visible属性来控制是否显示:OpenModalwithasynclogic{{ModalText}}exportdefault{data(){return{ModalText:'Contentofthemodal',visible:false,confirmLoading:false,};},methods:{showModal(){th
- How can I fix my Flask server‘s 405 error that includes OpenAi api?
营赢盈英
AIaipythonjavascriptflaskopenaiapi
题意:解决包含OpenAIAPI的Flask服务器中出现的405错误(MethodNotAllowed,即方法不允许)问题背景:I'mtryingtoaddanAPItomywebpageandhaveneverusedanyFlaskserverbefore,IhaveneverusedJavascripttoosothisisacompletelybrandnewlearningexperie
- 自定义BeanPostProcessor实现自动注入标注了特定注解的Bean
DanceDonkey
windows
定义注解@Target({ElementType.FIELD,ElementType.PARAMETER,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceMyAnno{}定义一个配置类@ConfigurationpublicclassRestConfig{@MyAnno@Beanpu
- java过滤器---用户登陆校验的简单实例
Winston-Tao
javaweb基础serverfilter实例
核心功能:对于用户的访问进行校验,看用户是否已经登陆1.登陆界面代码如下:InserttitlehereServlet/LoginServlet"method="post">username:passsword:2.过滤器代码如下:packageFilter;importjava.io.IOException;importjava.nio.channels.SeekableByteChannel;
- springboot实现webservice的发布和调用
梦星剑魂
springbootmvcjavaspring
springboot使用cxf发布调用webservice发布webservicepom文件org.apache.cxfcxf-spring-boot-starter-jaxws3.2.5webservice接口packagecom.example.webservicedemo.fabu;importjavax.jws.WebMethod;importjavax.jws.WebParam;impo
- 制作动态菜单
大磊程序员(“hello world”)
Java后端javascript开发语言ecmascript
动态菜单的说明什么叫做动态菜单?动态菜单就是根据用户属于不同的角色,每个角色还有不同的菜单,左侧菜单栏会有不同的显示前端加载流程menu.js修改/src/api/menu.js中的请求地址,如下所示://获取菜单exportconstGetMenus=params=>{returnrequest({url:'/admin/system/index/menus',method:'get',para
- JavaScript 高阶函数
BYh_blog
javascript开发语言ecmascript
在JavaScript中,高阶函数(Higher-OrderFunction)是一种特殊的函数它至少满足以下两个条件之一接受一个或多个函数作为参数返回一个函数作为结果高阶函数在JavaScript中非常常见,它们使得代码更加灵活和可重用下面是一些常见的使用高阶函数高阶函数重写(Arraymethod)1.forEachArray.prototype.myForEach=function(callb
- 23种设计模型
踹断瘸子那条好腿.
c#开发语言c++
在C#中,您可以使用各种设计模式来解决不同类型的问题,提高代码的可维护性、可扩展性和可重用性。以下是一些常见的设计模式及其在C#中的应用:创建型模式(CreationalPatterns):工厂方法模式(FactoryMethodPattern):通过定义一个创建对象的接口,但让子类决定实例化哪个类。在C#中,常见的应用包括.NET中的IComparer和IEqualityComparer接口。抽
- python multiprocessing
iteye_20379
python
importmultiprocessingimportmathdeffactorize_naive(n):"""Anaivefactorizationmethod.Takeinteger'n',returnlistoffactors."""ifn=n:factors.append(n)returnfactorselifp>2:#Advanceinstepsof2overoddnumbersp+=2
- 【图像复原】论文精读:Scaling Up to Excellence: Practicing Model Scaling for Photo-Realistic Image Restoration
十小大
超分辨率重建(理论+实战科研+应用)深度学习人工智能计算机视觉图像修复图像处理论文阅读论文笔记
第一次来请先看这篇文章:【超分辨率(Super-Resolution)】关于【超分辨率重建】专栏的相关说明,包含专栏简介、专栏亮点、适配人群、相关说明、阅读顺序、超分理解、实现流程、研究方向、论文代码数据集汇总等)文章目录前言Abstract1.Introduction2.RelatedWork3.Method3.1.ModelScalingUp3.2.ScalingUpTrainingData3
- v-model动态绑定值
努力搬砖的程序媛儿
vue.jselementuijavascript
第{{i}}个获取表单值exportdefault{data(){return{form:{},//传入的参数formLength:6}},methods:{getData(){console.log(this.form)}}}
- 注解不生效之自调用
梦魇星虹
Java记录springjava
注解不生效之自调用1、自调用解释自调用是指在一个类的方法中,直接调用该类的另一个被切面标记的方法,而不是通过Spring容器来调用@ComponentpublicclassMyService{publicvoidmethodA(){//直接调用本类的另一个方法methodBmethodB();}@Transactional//假设这里是一个切面标记,如事务切面publicvoidmethodB()
- elementui table 第一列内容相同 自动合并单元格 el-table第一列内容相同自动合并
weixin_51565477
elementvue
template(:span-method=“objectSpanMethod”){{scope.row.index+1}}data数据结构return{tableData:[{index:0,subjects:'一次性就废',price:'1,200.00元'},{index:1,subjects:'医疗备用金',price:'1,200.00元'},{index:2,subjects:'试住费
- Flutter项目和鸿蒙平台的通信
GY-93
HarmonyOSFlutterflutterharmonyos
Flutter项目和鸿蒙平台的通信前言Flutter和Harmonyos通信MethodChannelBasicMessageChannelEventChannel前言大家在使用Flutter开发项目的时候,Flutter提供了PlatfromChannelAPI来和个个平台进行交互。Flutter官方目前提供了一下三种方式来和个个平台交互:BasicMessageChannel:用于传递字符串和
- 解锁C#编程新姿势:Z.ExtensionMethods入门秘籍
步、步、为营
c#数据库.net服务器
一、引言在C#的开发旅程中,我们常常会遇到各种重复性高、复杂度低的任务,这些任务虽然基础,但却占据了我们大量的开发时间。比如处理字符串时,经常需要进行非空判断、格式转换;操作日期时间时,计算某个月的起始和结束日期;管理集合时,对元素进行遍历、排序等。这些看似简单的操作,若每次都手动编写代码,不仅效率低下,还容易出错。Z.ExtensionMethods的出现,如同为C#开发者们配备了一把万能钥匙,
- HTML表单相关知识
彩虹也说她不可思议.
html前端javascript
表单的基本结构标签名标签语义常用属性单/双标签form表单action:用于指定表单的提交地址(需与后端人员沟通确定)method:用于控制表单的提交方式target:用于控制表单如何打开页面,常用值如下:_self:在本页签打开页面_blank:在新页签打开页面双input输入框type:设置输入框类型name:用于指定提交数据的名字(需与后端人员沟通确定)单button按钮type:用于设置按
- Multi-Head Latent Attention: Boosting Inference Efficiency
连理o
LLM
ContentsIntroductionMethodLow-RankKey-ValueJointCompressionDecoupledRotaryPositionEmbeddingReferencesIntroduction作者提出Multi-headLatentAttention(MLA),通过将KV压缩为CompressedLatentKV,在减小KVcache的同时保持模型精度Method
- 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