- 【Node.js】Express 框架及其基本使用详解
Peter-Lu
#NodeJSnode.jsexpressjavascript前端npm
文章目录一、Express概述1.Express是什么?2.为什么选择Express?二、安装与项目初始化1.环境准备2.初始化Express项目三、Express的基本使用1.创建一个简单的服务器2.路由管理3.使用中间件4.处理静态文件四、处理请求数据1.解析JSON数据2.解析URL编码的数据五、错误处理六、总结Express是Node.js生态中最受欢迎的web框架之一,广泛用于构建服务器
- Java面试题汇总-集合篇+JUC篇
泰山小张只吃荷园
java哈希算法开发语言后端面试springboot
其他面试题Java面试题汇总-Java基础篇(共50道题)-CSDN博客Java集合目录1.请你说说java中hashmap的原理2.HashMap的put(key,value)和get(key)过程3.在使用hashmap时,有哪些提升性能的技巧?4.什么是哈希碰撞?怎么解决哈希碰撞?5.谈一谈hashmap的扩容操作?6.hashmap的初始容量和负载因子越大越好吗?7.为什么jdk1.8之后
- Java基础:Iterator迭代器
重生之Java开发工程师
java开发语言
一、什么是Iterator:迭代器(Iterator)是一个对象,它的工作是遍历并目标序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素的方法,把访问逻辑从不同类型的集合类中抽象出来,又不必暴露该对象内部细节。通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。由于创建迭代器的代价小,因此迭代器通常被称为轻量级的容器。常常使用JDK提供的迭代接口进行Ja
- 【Linux网络编程】第九弹---深入解析TCP服务、IOService与Jsoncpp的应用与实现
小林熬夜学编程
Linux网络编程linux网络运维tcp/ipC语言c++服务器
✨个人主页:熬夜学编程的小林系列专栏:【C语言详解】【数据结构详解】【C++详解】【Linux系统编程】【Linux网络编程】目录1、TcpService.hpp1.1、TcpServer类基本结构1.2、构造析构函数1.3、Loop()1.3.1、内部类1.3.2、Execute()2、Service.hpp2.1、IOService类基本结构2.2、构造析构函数2.3、IOExcute()3、
- 初学者如何用 Python 写第一个爬虫?
王子良.
python经验分享python开发语言爬虫
欢迎来到我的博客!非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。博客内容包括:Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Fli
- MoonBit 双周报 Vol.58:原生后端支持、多行字符串插值、json.inspect 功能等多项关键特性取得显著进展!
编程语言
MoonBit更新MoonBit支持native后端Wasm-gc后端支持Js-string-builtinsproposal当通过编译选项-use-js-builtin-string开启使用Js-string-builtins之后,Moonbit面向wasm-gc后端时,会使用JavaScript中的字符串类型表示MoonBit中的字符串,这时生成的wasm可执行文件中将需要从JavaScrip
- MongoDB简介
张飞光
mongodb数据库
MongoDB是一个文档型数据库,数据以类似JSON的文档形式存储。MongoDB的设计理念是为了应对大数据量、高性能和灵活性需求。MongoDB使用集合(Collections)来组织文档(Documents),每个文档都是由键值对组成的。数据库(Database):存储数据的容器,类似于关系型数据库中的数据库。集合(Collection):数据库中的一个集合,类似于关系型数据库中的表。文档(D
- TypeScript新增接口和更新接口传参定义差异的问题
interfaceUser{id?:string;name:string;age:number;}//新增用户时,id不是必须的,name和age必须,如何给data定义呢?exportconstaddUser=(data:User)=>fetch('/api/user/add',{method:'POST',body:JSON.stringify(data)})//更新用户时,id是必须的,na
- JAVA:Spring Boot 集成 JWT 实现身份验证的技术指南
拾荒的小海螺
JAVAjavaspringboot开发语言
1、简述在现代Web开发中,安全性尤为重要。为了确保用户的身份,JSONWebToken(JWT)作为一种轻量级且无状态的身份验证方案,广泛应用于微服务和分布式系统中。本篇博客将讲解如何在SpringBoot中集成JWT实现身份验证,并列出具体代码示例和常见应用场景。2、什么是JWT?JWT是一种开放标准(RFC7519),定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息作为JSON对象
- js-判断一个object(对象)是否为空
岂不闻
jsjavascript前端vue.js
1.Object.keys()方法constobj={};if(Object.keys(obj).length===0){console.log('Objectisempty');}else{console.log('Objectisnotempty');}Object.keys()方法返回一个包含对象自身可枚举属性名称的数组。如果这个数组为空,那么对象就是空的。2.JSON.stringify(
- 高赞 GitHub 项目盘点:中国 Web 开发者路线图
逛逛GitHub
pythonjava编程语言大数据vue
推荐最近很火的6个开源项目,本期所有推荐都已经收录到AwesomeGitHubRepo,欢迎各位读者Star。欢迎Star:https://github.com/Wechat-ggGitHub/Awesome-GitHub-Repo本期推荐的开源项目是:1.中国Web开发者路线图2.一个简单的绘图应用程序3.通过JSON配置就能生成各种后台页面4.针对直播、语聊、视频通话等推出的低代码解决方案5.
- VLM 系列——Qwen2 VL——论文解读——前瞻(源码解读)
TigerZ*
AIGC算法AIGC人工智能transformer计算机视觉图像处理
一、概述1、是什么是一系列多模态大型语言模型(MLLM),其中包括2B、7B、72B三个版本,整体采用视觉编码器+LLM形式(可以认为没有任何投射层)。比较创新的是图像缩放方式+3DLLM位置编码+(预估后面的训练方式也不太一样)。能够处理包括文本、图像在内的多种数据类型,具备图片描述、单图文问答、多图问对话、视频理解对话、json格式、多语言、agent、高清图理解(代码编写和debug论文暂时
- 大数据学习记录,Java基础(3)
灵敏的迅捷蟹
大数据学习java
面向对象面向对象的特征:封装随着系统越来越复杂,类会越来越多,那么类之间的访问边界必须把握好,面向对象的开发原则要遵循“高内聚、低耦合”,而“高内聚,低耦合”的体现之一:高内聚:类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用,尽量方便外部调用封装可以认为是一个保护屏障,防止该类的代码和数据被其他类随意访问,加强了代码的安全性。隐藏对象内部的复杂性,只对外公开简单和
- 黑马程序员 大事件
vue.js前端
在写黑马程序员大事件中,出现eslint配置不生效,prettier不生效问题一、eslint配置无法生效1、eslint配置无法生效:vscode的setting.json,"source.fixAll":true提示错误,要字符串,修改为"always"即可。"editor.codeActionsOnSave":{"source.fixAll":"always"},"editor.format
- 关于商品详情 API 接口 JSON 格式返回数据解析的示例
csrfweb3php
以下是一个关于商品详情API接口JSON格式返回数据解析的示例,不同的电商平台或者业务场景下具体数据结构会有所差异,大致的解析思路可以参考以下内容:一:示例JSON数据结构假设我们有如下一段模拟的商品详情API接口返回的JSON格式数据:{"product":{"id":"123456","name":"示例商品","description":"这是一款很实用的示例商品,具备多种功能。","pri
- 发布工具包 到npm 服务
pzpcxy520
npm前端node.js
操作步骤如下:1.创建文件夹,并创建文件index.js,在文件中声明函数,使用module.exports暴露2.npm初始化工具包,package.json填写包的信息(包的名字是唯一的)3.注册账号https://www.npmjs.com/signup4.激活账号(一定要激活账号)5.修改为官方的官方镜像(命令行中运行nrmusenpm)6.命令行下npmlogin填写相关用户信息7.命令
- pip工具安装第三方库
nfenghklibra
pippython
使用pip+cmd引入第三方库pip是Python包管理工具,提供了对Python包的查找、下载、安装、卸载的功能。注意:pip已内置于Python3.4和2.7及以上版本,其他版本需另行安装常规命令:pipinstall安装第三方库的库名(以json为例)pipinstalljson指定版本号:pipinstall库名==库的版本号pipinstalljieba==0.42.1卸载库:pipun
- requests库的安装和使用指南
Requests库安装与使用指南Requests是一个简洁且功能强大的Python库,用于发送HTTP请求。它广泛应用于数据采集、API调用等场景。本文将详细介绍Requests库的安装与基本使用方法,并通过实例和图表帮助您快速掌握其核心功能。目录安装Requests库导入Requests库发送GET请求发送POST请求添加Headers处理响应处理JSON响应异常处理附加参数会话管理文件下载工作
- json相关内容(python)
大哥喝阔落
jsonpython开发语言
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。Python提供了json模块来处理JSON数据。以下是关于Python中JSON的详细内容:1.导入json模块importjson2.将Python对象转换为JSON字符串使用json.dumps()函数可以将Python对象(如字典、列表、字符串、数字等)转换为JS
- 框架选型:Kratos、Go-Zero、GoFrame、Sponge 对比分析
框架开发工具web微服务
框架比较特性/框架kratosgo-zerogoframesponge设计理念微服务框架,强调模块化和可扩展性高性能、简洁易用,面向微服务后端开发框架,强调开发效率和易用性基于sql、protobuf、json逆向生成模块化代码来组成项目所需的服务代码,强调易用性、开发效率、可扩展性,面向web和微服务HTTP服务支持支持支持支持(gin、gin+protobuf结合)RPC服务支持(gRPC)支
- 认识包管理工具: npm、yarn和pnpm
前端npm工程化
包管理工具的发展2010年1月,一款名为npm的包管理器诞生。它确立了包管理器工作的核心原则。npm的发布诞生了一场革命,在此之前,项目依赖项都是手动下载和管理的。npm引入了文件和元数据字段,将依赖项列表存储在package.json文件中,并且将下载的文件保存到node_modules文件夹中。后来因为npm的缺陷或者旧版本的不足,又出现了一个个替代npm来进行包管理的轮子,例如:yarn,y
- Java基础面试:Java中的方法
Java中的方法什么是方法方法是Java中的一段可重用的代码块,用于执行特定的任务,是程序中的最小执行单元。参数:方法可以接受一个或多个参数,这些参数是传递给方法的值,用于方法内部的逻辑运算。返回值:方法可以返回一个值,叫做方法的返回值,返回值的类型在方法声明中指定,无返回值使用关键字void声明。方法的声明:修饰符返回值方法名(参数数据类型参数名称){方法体}方法有哪些种构造方法:构造方法是一种
- 如何修改被添加到git中的文件,但是又不想将修改提交?
场景例如多人工程中,.vscode/settings.json被管理者提交到了git中,但是我本地又有自己想修改的配置,如果直接修改git就会检测到,然后不小心就commit了。解决方案使用gitupdate-index--assume-unchanged命令来忽略本地对.vscode/settings.json的修改:gitupdate-index--assume-unchanged.vscod
- 手撸Webpack自定义Loader
前言我们知道webpack只能处理JavaScript和Json文件,面对CSS、图片等资源是无能为力的,它需要通过loader将这些资源转换为可处理的模块。loader的本质是一个解析资源的函数模块,该函数对接受到的内容进行转换,然后返回webpack可处理的资源。loader的执行顺序loader可根据执行顺序区分为:pre:前置loadernormal:普通loaderinline:内联lo
- 【9.1】Golang后端开发系列--Gin快速入门指南
不知名美食探索家
Golang系统性学习golanggin开发语言
文章目录一、引言二、Gin框架概述(一)什么是Gin(二)为什么选择Gin三、安装Gin框架(一)安装Go语言环境(二)使用GoModules安装Gin四、路由基础(一)基本路由定义(二)路由参数(三)查询参数五、请求处理和响应(一)处理JSON数据(二)处理表单数据六、中间件的使用️(一)内置中间件(二)中间件的执行顺序七、模板渲染(一)使用HTML模板(二)模板语法和数据传递八、错误处理❌(一
- Go 语言 JSON 与 Cache 库 调研与选型
gojson缓存
JSON基本上从以下两种角度进行分析性能方面,如是否使用反射;是否支持Unmarshal到map或struct,未涉及灵活性与扩展性方面,下面报告中只考虑最简单的反序列化,不会提及每个库的灵活性,如提供的一些定制化抽取的API;相关库GO1.14标准库JSON大量使用反射获取值,首先go的反射本身性能较差,其次频繁分配对象,也会带来内存分配和GC的开销;valyala/fastjsonstar:1
- docker
igotyback
eureka云原生
Docker容器的文件系统是隔离的,但是可以通过挂载卷(Volumes)或绑定挂载(BindMounts)将宿主机的文件系统目录映射到容器内部。要查看Docker容器的映射路径,可以使用以下方法:查看容器配置:使用dockerinspect命令可以查看容器的详细配置信息,包括挂载的卷。例如:bashdockerinspect在输出的JSON格式中,查找"Mounts"部分,这里会列出所有的挂载信息
- 在Ubuntu中编译含有JSON的文件出现报错
芝麻糊76
Linuxkill_buglinuxubuntujson
在ubuntu中进行JSON相关学习的时候,我发现了一些小问题,决定与大家进行分享,减少踩坑时候出现不必要的时间耗费截取部分含有JSON部分的代码进行展示char*str="{\"title\":\"JSONExample\",\"author\":{\"name\":\"JohnDoe\",\"age\":35,\"isVerified\":true},\"tags\":[\"json\",\"
- Xinference如何注册自定义模型
玩人工智能的辣条哥
人工智能AI大模型Xinference
环境:Xinference问题描述:Xinference如何注册自定义模型解决方案:1.写个model_config.json,内容如下{"version":1,"context_length":2048,"model_name":"custom-llama-3","model_lang":["en","ch"],"model_ability":["generate","chat"],"model
- JAVA·一个简单的登录窗口
MortalTom
java开发语言学习
文章目录概要整体架构流程技术名词解释技术细节资源概要JavaSwing是Java基础类库的一部分,主要用于开发图形用户界面(GUI)程序整体架构流程新建项目,导入sql.jar包(链接放在了文末),编译项目并运行技术名词解释一、特点丰富的组件提供了多种可视化组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、下拉列表(JComboBox)等,可以满足不同的界面设计
- 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