- java实体中返回前端的double类型四舍五入(格式化)
婲落ヽ紅顏誶
java
根据业务,需要通过后端给前端返回部分double类型的数值,一般需要保留两位小数,使用jackson转换对象packagecom.ruoyi.common.core.config;importcom.fasterxml.jackson.core.JsonGenerator;importcom.fasterxml.jackson.databind.JsonSerializer;importcom.f
- DCGAN中的生成器和识别器代码详解
YYLin-AI
DCGAN深度学习celebatensorflow
#DCGAN中的生成器我自己写的有一个封装好的用于生成器和识别器的卷积操作但是在这个代码中我没有使用我自己的代码#原因想绍一下tensorflow自带的函数所以找了一个以前在书上的代码申明一下这个不是原创但是原来代码中有几处不符合DCGAN的要求所以就做了一些修改转载链接没有就直接写成原创建议看代码之前先看看DCGAN的特点,然后再看代码中如何实这些特点的这样会更有帮助DCGAN(深度卷积的对抗生
- 《论文阅读》EmpDG:多分辨率交互式移情对话生成 COLING 2020
365JHWZGo
情感对话论文阅读共情回复回复生成对话系统多分辨率对抗学习
《论文阅读》EmpDG:多分辨率交互式移情对话生成COLING2020前言简介模型架构共情生成器交互鉴别器损失函数前言亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~无抄袭,无复制,纯手工敲击键盘~今天为大家带来的是《EmpDG:Multi-resolutionInteractiveEmpatheticDialogueGeneration》出版:COLING时间:2020类型:共情回复关
- 关于yeoman报错:requires yeoman-environment at least 3.0.0-beta.1解决方案
KK_boy
最近在学习yeoman的使用,在运行创建自定义generator的命令时候遇到一个问题yo2021022221365862.png解决办法将yeoman-generator的版本降到4.0或者全局安装yeoman-environment,并且使用yorun————————————————版权声明:本文为CSDN博主「Mr.M先生」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接
- 设计模式学习笔记 - 规范与重构 - 7.实践:通过一段ID生成器代码,学习如何发现代码质量问题
陈建111
设计模式-实战代码质量重构
前言前面讲了重构相关的知识点。用一句话总结:重构就是发现代码质量问题,并且对其进行优化的过程。今天借助一个ID生成器代码,给你展示以下重构的大致过程。背景介绍在软件开发中,ID常用来表示一些业务信息的唯一标识,比如订单的单号、数据库中的唯一主键。假设你正参与一个后端业务系统的开发,为了方便在请求出错时排查问题,在写代码的时候会在关键路径上打印日志。某个请求出错后,希望能搜索出这个请求对应的所有日志
- 设计模式学习笔记 - 规范与重构 - 8.实践:程序出错返回啥?NULL、异常、错误吗、空对象?重构ID生成器,处理各函数的异常
陈建111
设计模式-实战程序出错时返回内容
概述我们可以把函数的运行结果分为两类。一类是预期结果,也就是正常情况下输出的结果。一类是非预期的结果,也就是函数在异常(或出错)情况下输出的结果。在正常情况下,函数返回数据的类型非常明确,但是在异常情况下,函数的返回数据类型确非常灵活,有多种选择,比如异常(Exception)、错误码、NULL值、特殊值(比如-1)、空对象(比如空字符串、空集合)等。在异常情况下,函数到底该返回什么样的数据类型,
- spring boot 验证码源代码,直接复制使用
古猿写代码
springbootspringbootjava前端
使用springboot实现验证码源代码,直接复制使用publicvoidgetCodeImage(HttpServletResponseresponse){//随机生成4位验证码RandomGeneratorrandomGenerator=newRandomGenerator("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW
- Bluesky数据采集框架-7
EPICS Technical
Blueskybluesky
内建预处理程序每个名为_wrapper的以下函数对一个生成器实例进行操作。名为的对应函数对一个生成器函数进行操作。1、bluesky.preprocessors.baseline_decorator#在open_run后,积累一个所有设备的baseline的预处理程序bluesky.preprocessors.baseline_decorator(plan,devices,name='baseli
- 生成对抗网络——cgan
尼古拉斯·two_dog
生成对抗网络——GAN深度学习gan
GAN:生成对抗网络(GenerativeAdversarialNetworks[4])主要由生成器(generator)和判别器(discriminator)组成。它的原理也比较清晰,generator负责输入随机噪声z,输出一个图片G(z),而真实样本x,判别器D则用尽全力希望把真实样本和虚假样本区分开来。而G则希望产生的G(z)以假乱真,欺骗判别器,让其判断不出来。从而有了这么一种对抗的关系
- python推导式
电商人学python
python基础及进阶python开发语言经验分享
python推导式是一种简洁且强大的内建语法结构,它允许我们以一种极其紧凑和易于理解的方式创建新的列表、字典、集合或生成器对象,能够更高效地操作和转换数据结构。列表推导式基本语法如下图:其他推导式的语法也基本相似,看着有点lambda的感觉,上面图片遍历一个名为oldlist的列表,并将大于0的元素逐一进行双倍运算后,添加至新列表newlist中。接下来我们逐一分析各个推导式:目录一、列表推导式二
- 从零使用Python 实现对抗神经网络GAN
算法channel
神经网络python生成对抗网络开发语言人工智能
你好,我是郭震这篇从零使用Python,实现生成对抗网络(GAN)的基本版本。GAN使用两套网络,分别是判别器(D)网络和生成器(G)网络,最重要的是弄清楚每套网络的输入和输出分别是什么,两套网络如何结合在一起,及优化的目标即costfunction如何定义。通俗来讲,两套网络结合的方法,就是G会从D的判分中不断提升生成能力,要知道G最开始的输入全部是噪点,这个思想也是文生图,文生视频的基石。下面
- 微信小程序Code获取
m0_68138958
微信微信小程序
1.官方开发文档wx.login可以获取code2.微信PC端内存HOOK获取小程序Code3.抓PC包{微信小程序基本都是基于HTTPS的,在开发调试小程序时,普通的抓包软件是抓不到的,所以我们想要抓包首先需要配置证书SSL推荐软件fiddler或Charles1.fiddler配置抓取Https包1.下载最新版fiddler2.下载并安装Fiddler证书生成器3打开Fiddler,点击工具栏
- python生成器和迭代器 装饰器,Python 生成器、迭代器和装饰器
平胸爱吃梨
python生成器和迭代器装饰器
1生成器定义(1)采用惰性计算的方式(2)无需一次性存储海量数据(3)一边执行一边计算,只计算每次需要的值(4)实际上一直在执行next()操作,直到无值可取生成器表达式(返回值for元素in可迭代对象if条件)生成器函数——yield在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行2迭代器可迭代对象可直接作用于for循环的对象统称为可迭代对
- 大疆的raw图噪声合成:Towards General Low-Light Raw Noise Synthesis and Modeling
tony365
降噪pytorch计算机视觉人工智能
文章目录TowardsGeneralLow-LightRawNoiseSynthesisandModeling1dd2信号相关噪声建模3信号无关噪声:生成器和一致性损失(L1和vgg内容损失)4判别器5总结TowardsGeneralLow-LightRawNoiseSynthesisandModeling1dd作者说极暗场景下物理方法仿真不好。作者提出的方法,对于信号相关的噪声使用物理方法建模,
- python的for语句有几种写法_Python循环迭代的高效写法,亲测对比让你的代码速度更快...
weixin_39775106
Python的循环迭代有多种写法,我们实际常用的主要是for循环,列表推导,生成器函数和Map函数实现等四种:列表推导式书写形式:[表达式for变量in序列]或者[表达式for变量in列表if条件]multiples=[表达式(i)foriin序列]生成一个名为multiples的列表保存推导结果2.for循环推导书写形式:tmplist=[]foriin序列:templist.append(表达
- 【python】密码字典生成器
HarryXYC
我的Python朋友python网络安全密码字典生成
项目源码仓库:harry-passwd-dict-creator:根据简单的表达式生成密码字典文件(gitee.com)一、介绍harry-passwd-dict-creator(下简称pdc)集合了一些哈里自写的密码字典生成工具。二、安装确保已安装gitgitclonehttps://gitee.com/harryxiaocn/harry-passwd-dict-creator.gitcdhar
- 67-生成器基础
凯茜的老爸
生成器也是函数,只是常规函数通过return返回一个值,而生成器可以通过yield返回很多中间结果。defmygen():yield'hello'a=10+20yieldayield[1,2,3]if__name__=='__main__':m=mygen()foriinm:print(i)foriinm:print(i)#无值,因为生成器对象只能用一次
- 分布式ID选型对比(2)
qq_35255384
框架部分特定功能springboot分布式分布式ID
数据库号段模式一,引入依赖:mysqlmysql-connector-java8.0.19org.mybatis.spring.bootmybatis-spring-boot-starter2.2.2二,新建表CREATETABLE`id_generator`(`id`intNOTNULL,`max_id`bigintNOTNULLCOMMENT'当前最大id',`step`intNOTNULLC
- 分布式ID选型对比(4)
qq_35255384
框架部分特定功能springboot分布式分布式ID
百度UIDgenerator一,创建表:worker_node(在项目启动时初始化生成workId)CREATETABLE`worker_node`(`ID`bigintNOTNULLAUTO_INCREMENTCOMMENT'autoincrementid',`HOST_NAME`varchar(64)NOTNULLCOMMENT'hostname',`PORT`varchar(64)NOTNU
- android实现真随机数生成器(物理随机)
远方235
Android随机随机数
原理:通过设备内置传感器生成随机散列字串,再通过取余等操作获取最终数字,这种方法不同于传统的伪随机数生成器,而是依赖于硬件,需要硬件支持。以下模块实现每隔0.5秒随机生成数字0和1。privateSensorManagersm;privateinteventCount;privateintflagCount;privateStringBuffermKeyBuffer=newStringBuffer
- java springcloud 微服务设计方案
IT祖师爷
springcloud+springcloudAlibaba+flowable流程引擎1.代码生成器:[正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池druid,安
- RapidJson开源库使用
不朽の燃梦
QtC++开源库开源c++qt
1.下载GitHub-Tencent/rapidjson:AfastJSONparser/generatorforC++withbothSAX/DOMstyleAPIAfastJSONparser/generatorforC++withbothSAX/DOMstyleAPI-Tencent/rapidjsonhttps://github.com/Tencent/rapidjson官方使用手册:Ra
- 【python】return和yield的区别
福多多的福
pythonpythonpytest
return和yield都表示返回的意思,return的后面不能有代码,返回值之后不再执行后续的代码;yield返回后,可以接代码,会继续执行。yield是个生成器,可以多次返回数据返回值类型和使用场景:`return`通常用来将函数内部的某个变量的值传递给调用者。它的返回值类型可以自由指定,但通常与它前面的表达式类型一致。当使用`return`时,函数会立即退出,后续的代码不会被执行。`yiel
- 推荐超好用的 6 款 Laravel Admin 管理模版
码匠官方账号
低代码前端后端laravel
全文3440字阅读时间约11分钟目录LaravelAdmin管理后台模板的不同类型脚手架CRUD可视化编程主题和组件库付费/开源码匠LaravelAdmin管理后台模板推荐LaravelNovaOrchidBackpackVoyagerInfyOmLaravelGeneratorArgon写在最后如果您正在为您的企业调研开发Admin管理后台的最佳方案,那么基于PHP的Laravel框架会是一个不
- Vitepress 的实现原理
什么是Vitepress?Vitepress是由Vite和Vue驱动的静态站点生成器,通过获取Markdown编写的内容,并可以生成对应的静态HTML页面。我们经常使用Vitepress构建博客等静态网站,本文主要解析一下Vitepress的实现原理,下面就开始吧!原理初始化项目根据官方文档推荐,我们执行以下命令初始化项目:npxvitepressinit执行完命令便会进入一个设置界面,通过设置项
- C++之随机数
老歌老听老掉牙
C++学习与记录c++算法学习
在C++中可以使用库中的rand()函数和库中的time()函数来生成随机数。rand()函数返回一个在0到RAND_MAX范围内的随机整数,而srand()函数用于设置随机数生成器的种子。在代码中,srand((unsigned)time(NULL));语句用当前时间作为种子来初始化随机数生成器,这样每次运行程序时都会生成不同的随机数序列。接下来,代码展示了如何生成不同范围的随机整数和随机浮点数
- idea+gradle6+MybatisGenerator 生成mapper和dao(留着自己看)
hello_realWorld
ideamysqljavaintellij-idea
生成实体+mapper.xml+dao层映射。generator.xml(星号替换为自己项目具体路径)gradle增加相关插件信息plugins{id"com.thinkimi.gradle.MybatisGenerator"version"2.4"}applyplugin:"com.thinkimi.gradle.MybatisGenerator"mybatisGenerator{verbose
- linux的密码生成器,Linux 密码生成器
weixin_39586395
linux的密码生成器
现在应用越来越多,经常要输入密码,有的对密码的健壮性没有要求,有的需要大小写,特殊字符,数字,至少多少位等等,绞尽脑汁想不到好一点的密码。好在在Linux系统下,我们有很多方式可以生成符号要求的密码。普通方式随机生成。~opensslrand-base6415q7X/UN7SL+yEcIYRxacE使用专业的密码生成工具pwgenpwgen在各个linux平台上都可以通过包管理器安装,在mac上则
- qt-交通路口仿真
进击的大海贼
qt数据库开发语言
qt-交通路口仿真一、演示效果二、核心代码三、程序链接一、演示效果二、核心代码#include"generator.h"Generator::Generator(SimulationScene*scene):m_scene(scene),m_mode(VEHICLEMETHOD::GO_THROUGH),m_running_state(false),m_VisionOn(false),m_IsIn
- Opencv中的RNG-随机绘图
忙什么果
opencvC&C++opencv人工智能计算机视觉
在OpenCV中,RNG是一个随机数生成器类,用于生成各种类型的随机数,包括均匀分布或高斯分布的整数和浮点数。RNG类的实例化时可以接受一个无符号整数作为种子值,这个种子值决定了随机数生成序列的起点,相同的种子值将产生相同的随机数序列。这在需要可重复的实验或测试时非常有用。RNGrng(100);这行代码创建了一个RNG对象rng,并以100作为种子值。有了这个对象,你就可以使用它来生成随机数了。
- 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