- 使用 nodejs 和 ElasticSearch 快速搭建全文检索
dbLenis
数据库java编程语言大数据linux
点击蓝色“有关SQL”关注我哟加个“星标”,天天与10000人一起快乐成长上次群友问我,Python怎么学,我说四个小时足够了,你们不信。这次,我用2个小时,仅仅用Google,快速搭建了一个nodejs+Elasticsearch的小Demo.足可见,在有搜索的年代,快速上手一门技术,已经不是什么难事。1安装1.1下载地址https://nodejs.org/en/download提供windo
- Vue 系列之:基础知识
程序员SKY
VUEvue.js
什么是MVVMMVVM(Model-View-ViewModel)一种软件设计模式,旨在将应用程序的数据模型(Model)与视图层(View)分离,并通过ViewModel来实现它们之间的通信。降低了代码的耦合度。Model代表数据模型,是应用程序中用于处理数据的部分。在Vue.js中,Model通常指的是组件的data函数返回的对象,或者Vue实例的data属性。View是用户界面,是用户与应用
- 前端架构 —— 脚手架的开发流程
mask-li
前端
一、脚手架开发流程详解开发流程创建npm项目创建脚手架入口文件,最上方添加:#!/usr/bin/envnode配置package.json,添加bin属性编写脚手架代码将脚手架发布到npm使用流程安装脚手架npminstall-gyour-own-cli使用脚手架your-own-cli二、脚手架开发难点解析分包:将复杂的系统拆分成若干个模块命令注册:vuecreatevueaddvueinvo
- Nodejs基础使用Elasticsearch(二)
小黑前端攻城狮
elasticsearchnode.jsvue.jsjavascript
/*链接到elasticsearch数据库*/varelasticsearch=require('elasticsearch');varclient=newelasticsearch.Client({host:'192.168.1.107:9200',log:'error'});1.统计索引数据:client.count({index:['telegram_message','telegram_u
- 学习dify第二天-web下篇
一直走下去-明
next.jsdify源码学习学习前端react.js前端框架
学习dify第二天-web下篇引言web目录结构配置入口文件分析下怎么封装的请求最后总结:参考阅读:React基础用next.js写个页面跳转的应用seo搜索引擎优化引言react:ReactFoundations:AboutReactandNext.js|Next.js如果不会next.js可以先看看这个,不看其实也没关系,学下思路也可以。next_web小demoweb目录结构*mocks*:
- 在nodejs中使用ElasticSearch(一)安装,使用
konglong127
nodejselasticsearch大数据搜索引擎
使用docker安装ElasticSearch和Kibana1)创建相应的data文件夹和子文件夹用来持久化ElasticSearch和kibana数据2)提前创建好elasticsearch配置文件data/elasticsearch/config/elasticsearch.yml文件#========================ElasticsearchConfiguration====
- 在nodejs中使用ElasticSearch(二)核心概念,应用
konglong127
nodejselasticsearch大数据搜索引擎
核心概念1、索引(index)索引在Elasticsearch7之后,相当于关系型数据库中的表,之前相当于关系型数据库中的数据库。#创建索引PUT/my_index#获取指定索引GET/my_index#获取所有索引GET/_cat/indices?v#模糊匹配索引POST*index*/_search#删除索引DELETE/my_index#创建索引,同时指定索引结构#number_of_sha
- 深入理解 JSP:从基础知识到实战技巧的全面解析
CarlowZJ
java开发语言
JSP(JavaServerPages)是一种基于Java的服务器端技术,用于开发动态Web应用。它通过将Java代码嵌入到HTML页面中,简化了Web开发的复杂性。JSP是JavaWeb开发的重要组成部分,与Servlet、JavaBean等技术紧密集成,广泛应用于企业级Web应用开发。本文将从基础知识、核心特性、生命周期、与Servlet的关系、框架支持、最佳实践等方面对JSP进行详细解析,帮
- JDK活化石复活:setStream()抢救指南,看完想给Applet开追悼会
筱涵哥
Java基础入门java
一、时空错乱现场:当我试图用Applet传2024年的数据1.1来自侏罗纪的SOS"把这个2003年的数据采集Applet改造成能对接新系统!"——看着要传输的JSON数据,我仿佛听到硬盘在哀嚎:"臣妾做不到啊!"1.2现代程序员的降维打击//试图传输JSON数据时try{InputStreamjsonStream=newByteArrayInputStream("{\"data\":1}".ge
- React - 兄弟互传 - 消息订阅 - 发布机制
来一碗刘肉面
Reactreact.js前端javascript
pubsub-js是一个轻量级的JavaScript库,用于实现发布-订阅(Pub/Sub)模式。该模式使得组件间的通信变得简单和高效,特别适用于React中的兄弟组件之间通信。通过pubsub-js,一个组件可以发布消息,其他组件可以订阅这些消息以获得更新。1.安装pubsub-jsnpminstallpubsub-js//或者yarnaddpubsub-js2.基本概念发布(Publish):
- 在nodejs中使用ElasticSearch(三)通过ES语义检索,实现RAG
konglong127
nodejselasticsearch搜索引擎node.js全文检索后端
RAG(Retrieval-AugmentedGeneration)是一种结合了信息检索和生成模型的技术,旨在提高生成模型的知识获取和生成能力。它通过在生成的过程中引入外部知识库或文档(如数据库、搜索引擎或文档存储),帮助生成更为准确和丰富的答案。RAG在自然语言处理(NLP)领域,特别是在对话生成、问答系统和文本摘要等任务中,具有非常重要的应用。它的核心思想是,生成模型不仅依赖于模型内部的知识,
- MySQL数据库(触发器,视图,函数)
可儿可爱
数据库mysqldatabase
触发器视图函数分配用户和权限以及远程登录索引三大范式1.触发器Trigger触发器:数据库中的一个对象,相当于JS中的监听器,触发器可以监听增删改三个动作比如说我想监听一张表,只要我增删改了这张表中的数据,我就可以触发这个触发器,去往另外一张表中记录一下日志。语法:DELIMITER$$CREATETRIGGER`mytestdb`.`myTriger`BEFORE/AFTERINSERT/UPD
- 如何解析配置文件
啊念着倒嘛干
pythonpythonjson
如何解析配置文件什么是配置文件?在计算机科学领域,配置文件(英语:configurationfile)是一种计算机文件,可以为一些计算机程序配置参数和初始设置。一个项目中,为什么要设置一个配置文件呢?方便修改参数设置和逻辑代码分离(解耦)(高内聚,低耦合)常见的配置文件格式:aaa.inixxx.xmlxxxxx.jsonxxfada.yaml什么是json文本、字符串、有固定的格式,格式长得像p
- javaScript-系统知识点【 常见问题及其解决办法】
大麦大麦
2025前端面经javascript开发语言ecmascript前端面试
会造成内存泄漏的情况(中级)setTimeout的第⼀个参数使⽤字符串⽽非函数的话,会引发内存泄漏。//setTimeout的错误使用setTimeout('666',100)//setTimeout的正确用法setTimeout(()=>{console.log('666')},1000)前端常见内存泄漏及解决方案如何捕获JS程序的异常?两种方式trycatchwindow.onerror//手
- Flutter鸿蒙项目—如何添加对华为鸿蒙系统的支持
不入流HarmonyOS开发
鸿蒙HarmonyOSOpenHarmonyflutterharmonyos华为OpenHarmony鸿蒙应用开发鸿蒙开发鸿蒙
1.DevEcoStudio4.0Release版鸿蒙环境安装打开IDE,按照引导,安装环境即可,注意,nodejs选择v16.20。Mac下,在.bash_profile配置如下环境变量exportPATH=/Users/用户名/Documents/DevEcoProjects/dev/bin:$PATHexportNODE_HOME=/Users/用户名/nodejsexportPATH=$N
- RabbitMQ复习
SJLoveIT
rabbitmq分布式
消息中间件的作用:(1)异步处理(2)应用解耦(3)流量削峰消息中间件的缺点:引入了新的东西,也就增加了新的故障点。比如消息中间件挂了,影响系统的可用性。两种框架:JMS和AMQP最大的区别是JMS是是javaapi,对跨平台的支持较差,但在纯java技术栈内首选。AMQP是跨平台的,序列化方式选json,不管你是java,php,C/C++,python,都能处理RabbitMQ实现的事AMQP
- API,URL,Token,XML,JSON是干嘛的
Frank牛蛙
数据结构xmljson
API,URL,Token,XML,JSON是干嘛的API的作用API(ApplicationProgrammingInterface,应用程序编程接口)是一组定义和协议,用于构建和交互软件应用程序。API允许不同的软件系统之间进行通信,它定义了软件组件应该如何交互。具体到网络服务中,API通常是指一组HTTP请求和响应的规则,通过这些规则,开发者可以从外部访问某个服务的数据或功能。例如,Yaho
- Flutter&JSON
ClaNNEd@
FlutteriOS应用构建flutterjson
JSON和序列化-Flutter中文网移动应用程序通常需要与Web服务器通信或存储结构化数据,而JSON是最常用的数据交换格式之一。而在Flutter开发中,我们主要会用到两种JSON序列化方式:手动序列化代码生成自动序列化1.哪种JSON序列化方法适合我?1.1小项目:手动序列化特点优点:使用Dart内置的dart:convert库,无需额外依赖。对于简单JSON或模型较少的小项目非常方便。缺点
- 使用 PM2 部署和管理 Node.js 应用
JJCTO袁龙
Node.jsnode.js
使用PM2部署和管理Node.js应用在现代Web开发中,Node.js已经成为了后端开发的主流选择之一。无论是构建RESTfulAPI,还是实时通讯应用,Node.js都能以优异的性能和丰富的生态体系满足我们的需求。然而,当应用越来越复杂,如何高效地部署和管理Node.js应用就显得尤为重要。在这篇博文中,我们将探讨如何使用PM2来部署和管理Node.js应用,同时提供一些示例代码以便更好地理解
- Windows用pm2部署node.js项目
秦时明月之君临天下
Node.jsNext.jswindowsnode.js
Windows上pm2启动命令不生效按照常规启动命令应该如下,但是发现不生效pm2startnpm--name"project-name"--start具体如下,可以看到状态都是stopped$pm2startnpm--name"chatgpt-next-web"--start[PM2]StartingF:\PROGRAMFILES\NODEJS\NPM.CMDinfork_mode(1insta
- Node.js 内置模块简介(带示例)
浪九天
node.jsnode.js开发语言前端
目录1.fs(文件系统)模块2.http模块3.path模块4.os模块5.events模块6.crypto模块1.fs(文件系统)模块fs模块提供了与文件系统进行交互的功能,包括文件的读写、删除、重命名等操作。它有同步和异步两种操作方式,异步操作能避免阻塞事件循环,在处理大量文件或高并发场景中更常用。示例:异步读取文件内容constfs=require('fs');//异步读取文件fs.read
- Node.js学习01-初识Node.js与内置模块
Meowmow
nodejsnode.js学习javascript
目录初识Node.js在Node.js环境执行js代码内置模块fs文件系统模块路径动态拼接问题path路径模块http模块request请求对象初识Node.jsNode.js是基于ChromeV8引擎的JavaScript运行环境,无法调用DOM和BOM等浏览器内置API。使用Node.js可以:基于Express框架快速搭建web应用基于Electron框架构建跨平台的桌面应用基于restif
- 部署 Node.js 应用之 PM2
7 号
Node.jsnode.js
什么是pm2PM2是一个非常流行的Node.js应用进程管理工具,它帮助你管理和保持Node.js应用的高可用性。PM2提供了进程守护、日志管理、负载均衡等功能,非常适合生产环境使用。安装pm2npminstallpm2-g验证是否安装成功pm2--versionPM2常用命令启动Node.js应用(启动打包后的)pm2startapp.js停止Node.js应用(启动打包后的)pm2stopap
- 序列化--jackson与hutool对比
小达人Fighting
序列化与反序列化java数据库服务器
场景描述:1、经过web层处理的序列化【以jackson为例】2、纯工具的序列化【以hutool为例】代码演示1)POJO@Builder@Data@JsonIgnoreProperties(ignoreUnknown=true)publicclassTrRegistryVO{/***主键ID*/@JsonProperty("id")privateStringid;/***登记单号*/@JsonP
- 使用Windows系统进行Node.js离线安装
YOUFDJ
windowsnode.js编程
Node.js是一个基于ChromeV8引擎的JavaScript运行时,广泛用于服务器端开发。通常情况下,我们可以通过官方网站下载安装程序进行Node.js的安装,但有时候在没有网络连接的情况下,我们需要进行离线安装。本文将详细介绍如何在Windows系统下进行Node.js的离线安装。以下是进行Node.js离线安装的步骤:第一步:下载Node.js安装包首先,我们需要从官方网站或其他可信来源
- 鸿蒙 ArkUI实现地图找房效果
儿歌八万首
鸿蒙开发开发语言鸿蒙ArkUI华为
常用的地图找房功能,是在地图上添加区域、商圈、房源等一些自定义marker,然后配上自己应用的一些筛选逻辑构成,在这里使用鸿蒙ArkUI简单实现下怎么添加区域/商圈、房源等Marker.1、开启地图服务在华为开发者官网,注册应用,然后在我的项目-我的应用-ApI管理中开启地图服务MapKit;2、地图相关配置在工程中entry模块的module.json5文件中配置client_id,client
- Node.js 发展史
ivanfor666
node.js
自从Node.js诞生以来,它经历了许多版本的演进和改进。Node.js于2009年首次发布,由RyanDahl创建,从那时起,它经历了许多重要版本和里程碑。在这篇文章中,我将为你介绍Node.js从发布至今的一些重要版本,包括它们的主要特性和变化。Node.js0.1.0(2009年5月27日):Node.js的首个公开版本。支持基本的网络通信和文件系统操作。Node.js0.4.0(2010年
- 【数据挖掘】Pandas
dundunmm
数据挖掘数据挖掘pandas人工智能
Pandas是Python进行数据挖掘和数据分析的核心库之一,提供了强大的数据清洗、预处理、转换、分析和可视化功能。它通常与NumPy、Matplotlib、Seaborn、Scikit-Learn等库结合使用,帮助构建高效的数据挖掘流程。1.读取数据Pandas支持多种数据格式,如CSV、Excel、JSON、SQL、Parquet等。importpandasaspd#读取CSV文件df=pd.
- path 路径模块
咖啡の猫
node.js后端
在Node.js开发中,处理文件路径是一项常见的任务。为了简化路径操作并避免跨平台兼容性问题,Node.js提供了一个名为path的核心模块。本文将详细介绍path模块的基础知识、主要功能以及如何利用它来实现路径操作。什么是path模块?path模块提供了实用工具来处理和转换文件路径,使得开发者能够编写出跨平台兼容的代码。无论是构建动态文件路径还是解析现有路径,path模块都能大大简化这些操作。跨
- js 数字千分位格式化
SHIZHK
前端
functionformat(num){return(num.toFixed(2)+'').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g,'$&,');}
- 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