- ST332 & ST409 Medical Statistics
后端
ST332&ST409MedicalStatistics:2024-2025Assignment[20%]Deadline:13:00Thursday13thMarch2025BackgroundColleaguesatUniversityofWarwickandUniversityHospitalsCoventry&Warwickshire(UHCW)NHSTrusthaveundertaken
- Java 第八章 异常(2)
点纭
java前端开发语言
目录编辑异常处理捕获异常基本语法实例声明异常注意:实例抛出异常实例运行期异常和编译期异常自定义异常定义基本语法注意实例异常处理●Java的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws捕获异常try执行可能产生异常的代码catch捕获异常finally无论是否发生异常,代码总能执行基本语法1.try{可能会发生异常的代码}catch(异常类型引用名)
- Python中的生成器表达式(generator expression)
Java资深爱好者
pythonpython开发语言
Python中的生成器表达式(generatorexpression)是一种类似于列表解析(listcomprehension)的语法结构,但它返回的是一个生成器(generator)对象,而不是一个完整的列表。生成器对象是一个迭代器,它可以逐个产生元素,而不是一次性生成所有元素,从而节省内存空间。生成器表达式在形式上与列表解析非常相似,但是它们使用圆括号()而不是方括号[]。当你迭代生成器表达式
- Ollama部署大模型,本地调用
居7然
android人工智能chatgpt爬虫开发语言AI编程
Ollama简单介绍Ollama是一个强大的大型语言模型平台,它允许用户轻松地下载、安装和运行各种大型语言模型。在本文中,我将指导你如何在你的本地机器上部署Ollama,并展示如何使用Python进行简单的API调用以访问这些模型最近很多人在学习大模型的时候,也遇到这个问题了,Ollama下载的模型,如果不想在命令行里面直接使用,而是想用Python去调用大模型该如何去使用?这是Ollama的官网
- PyInstaller参数大揭秘:一文读懂打包神器的核心密码
Abossss
Pythonpython
一、引言在Python开发的广阔领域中,我们常常会面临这样一个问题:如何将自己精心编写的Python脚本,分享给那些没有Python环境的小伙伴,或者部署到生产环境中呢?这时候,PyInstaller库就如同一位救星,闪亮登场。PyInstaller是一个功能强大的跨平台打包工具,它可以将Python脚本及其所有依赖项,打包成一个独立的可执行文件。这意味着,无论目标系统是否安装了Python环境,
- Swift:KeyPath
陌上心
Swiftswift
Swift中可以使用KeyPath来获取属性值,语法为\Type.property.property.....。官方给出的示例:classAnimal:NSObject{@objcvarname:Stringinit(name:String){self.name=name}}letllama=Animal(name:"Llama")letnameAccessor=\Animal.nameletna
- 《Cell》期刊作者提交指南
TigerZ 生信宝库
科研技能程序人生
❝写在前面在投稿论文前,阅读目标期刊的政策要求是非常必要的。本文为《Cell》期刊提供给作者的提交指南,包含了提交论文的相关信息和政策要求。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。目录1期刊介绍(Aboutthejournal)2编辑评估时间表(Editorialevaluationtimeline)3CellPress期刊之间的关系(Relationshipbetwee
- Swift之深入解析KeyPaths的工作原理 | CSDN创作打卡
weixin_41165271
swiftios开发语言
一、前言自从Swift刚开始就被设计为是编译时安全和静态类型后,它就缺少了那种经常在运行时语言中的动态特性,比如Objective-C,Ruby和JavaScript。举个例子,在Objective-C中,我们可以很轻易的动态去获取一个对象的任意属性和方法,甚至可以在运行时交换它们的实现。虽然缺乏动态性正是Swift如此强大的一个重要原因,它帮助我们编写更加可以预测的代码以及更大的保证了代码编写的
- swift keypath_我使用Swift KeyPath进行实验的故事
weixin_26638123
python
swiftkeypathUnsplsh.comUnsplsh.comKeyPathreferstoapropertyitselfinsteadofproperty’svalue.They‘reusefulwhenyouwanttoperformoperationsonproperty,ratheronthevaluebehindit.KeyPath是指属性本身而不是属性的值。当您要对属性(而不是属
- 我在electron vue的项目中,loadURL的路径为/auth/login,但是实际加载的是/。并且在网页端打开发现,不管地址栏怎么变换,实际的路由地址总是/
小浩~
vue.jselectronjavascript
我在electronvue的项目中,loadURL的路径为/auth/login,但是实际加载的是/。并且在网页端打开发现,不管地址栏怎么变换,实际的路由地址总是/。在router中设置了指定的routervue在我的app中:可以发现是下面的main被使用了,而非auth,并且在导航栏中无论地址栏怎么变化,实际的路由却没发生变换。解决办法:最后排查出来是createMemoryHistory不适
- Windows本地部署Ollama+qwen本地大语言模型Web交互界面并实现公网访问
叨叨爱码字
语言模型人工智能自然语言处理
要在Windows系统上部署Ollama和qwen本地大语言模型的Web交互界面,并实现公网访问,你需要按照以下步骤进行操作:安装Ollama:前往Ollama的GitHub仓库下载源代码或预编译的可执行文件。根据README或相关文档的说明,安装Ollama并确保它能够在本地正常运行。安装qwen:如果还没有安装qwen,你需要前往其GitHub仓库下载源代码或预编译的可执行文件。安装qwen并
- 量化交易策略都有哪些?怎么运用?
股票程序化交易接口
Python股票量化交易股票API接口量化交易量化交易策略均值回归动量策略风险控制股票量化接口股票API接口
Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>均值回归策略:寻找价格的回归点均值回归的原理均值回归策略是基于一种市场现象,即价格不会永远偏离其长期的平均值。从市场的历史数据来看,无论是股票、期货还是其他金融资产,价格总是围绕着一个均值上下波动。这就像一个有弹性的绳子,当价格被拉伸
- 企业级RAG开源项目分享:Quivr、MaxKB、Dify、FastGPT、RagFlow
Ainnle
开源人工智能
企业级RAGGitHub开源项目深度分享:Quivr、MaxKB、Dify、FastGPT、RagFlow及私有化LLM部署建议随着生成式AI技术的成熟,检索增强生成(RAG)已成为企业构建智能应用的关键技术。RAG技术能够有效地将大型语言模型(LLM)与企业私域知识库连接,在保证数据安全和模型可控性的前提下,释放LLM的强大能力。本文将深入探讨GitHub上五个备受瞩目的开源企业级RAG项目:Q
- 飞书二维码联合登录,对接起来太简单了
王念博客
飞书
1.先创建一个飞书应用2.引入JS库3.自定义jsconstgoto="https://passport.feishu.cn/suite/passport/oauth/authorize?client_id=cli_&redirect_uri=httindex&response_type=code&state=STATE";constQRLoginObj=QRLogin({id:"login_co
- FLUX本地Lora训练
王念博客
前言目前Flux出现了3个训练工具SimpleTunerhttps://github.com/bghira/SimpleTuner,X-LABS的https://github.com/XLabs-AI/x-fluxai-toolkithttps://github.com/ostris/ai-toolkit待支持:https://github.com/kohya-ss/sd-scripts/目前前两
- java等待所有子线程执行完毕再执行
王念博客
多线程javathread并发编程多进程
前言:在工作项目中,有很多耗时处理都需要开多线程运行。简单的接口可以直接异步处理解决,但是对于一些业务逻辑复杂需要同步返回的这时候就需要用到以下三个多线程等待方法了。1.thread.join()主线程等待子线程的终止。也就是说主线程的代码块中,如果碰到了t.join()方法,此时主线程需要等待(阻塞),等待子线程结束了(Waitsforthisthreadtodie.),才能继续执行t.join
- 【全栈】SprintBoot+vue3迷你商城-细节解析(2):分页
杰九
vue.jsspringbootjava
【全栈】SprintBoot+vue3迷你商城-细节解析(2):分页往期的文章都在这里啦,大家有兴趣可以看一下后端部分:【全栈】SprintBoot+vue3迷你商城(1)【全栈】SprintBoot+vue3迷你商城(2)【全栈】SprintBoot+vue3迷你商城-扩展:利用python爬虫爬取商品数据【全栈】SprintBoot+vue3迷你商城(3)【全栈】SprintBoot+vue3
- 有需要2025年参加蓝桥杯比赛的同学往下看!!!
岱宗夫up
教程蓝桥杯职场和发展
有需要2025年参加蓝桥杯比赛的同学往下下看!!!以下是关于近两年(2023年和2024年)蓝桥杯Python组考点的详细总结:一、2023年蓝桥杯Python考点分析在2023年的蓝桥杯Python竞赛中,考点主要集中在基础算法、数据结构、动态规划、数学、高精度计算以及二分查找等方面。(一)基础算法基础算法是竞赛的基石,包括枚举、排序(如冒泡排序、选择排序、插入排序等)、搜索(如BFS和DFS)
- CTF解题技能之MISC基础(持续更新)
l2xcty
网络安全
CTF解题技能之MISC基础文章目录CTF解题技能之MISC基础前言一、文件类型识别二、文件分离1.binwalk分离2.foremost分离3.dd4.fcrackzip5.010editor总结前言本篇主要介绍杂项基础题目的知识点以及所需的工具以及案例。通过百度网盘分享的文件:第二次小组活动链接:https://pan.baidu.com/s/1p02AwZDKCPyGeBbh1YhmDg?p
- Ubuntu22 安装多个版本的python
莫忘初心丶
python数据库开发语言
前言使用pyenv是一个很好的选择,尤其是在需要管理多个Python版本时。它提供了一个简单的方法来安装、切换和管理多个版本的Python,而不必依赖系统的包管理器或update-alternatives。特别是当你需要在同一系统中频繁切换Python版本时,pyenv会显得更加方便。目录前言为什么使用`pyenv`安装`pyenv`1.安装依赖2.安装`pyenv`3.配置shell环境4.安装
- Swift 的 KeyPath 是什么?
打工人你好
swift
Swift的KeyPath是什么?一、语法解析二、KeyPath的核心作用1.类型安全的属性引用2.动态访问属性3.函数式编程与数据驱动三、SwiftUI中的典型应用场景1.动态UI组件配置2.与`@dynamicMemberLookup`结合3.动画与状态管理四、对比其他技术五、进阶技巧1.类型擦除的KeyPath2.KeyPath组合总结在Swift中,KeyPath>是一种类型安全的属性路径
- mysql8.4+mysql router读写分离
Alex_z0897
mysql数据库
以下为容器环境内搭建准备工作:拉取镜像:镜像版本mysql8.4container-registry.oracle.com/mysql/community-router8.4下载mysql_shellmysql-shell-9.0.1-linux-glibc2.17-x86-64bit.tar.gz下载地址:https://downloads.mysql.com/archives/shell/参考
- python的继承
zhangbeizhen18
L01-基础
记录:备忘录。1.继承classPerson(object):def__init__(self,p_name,p_addr,p_age):self.name=p_nameself.addr=p_addrself.age=p_ageclassGirl(Person):def__init__(self,g_name,g_addr,g_age,g_bra_cup):Person.__init__(sel
- 如何将模型长度扩展到100万:Llama 3的NTK-aware插值技术解析 小学生都懂的
从零开始学习人工智能
llama
好的,以下是对Llama3如何通过NTK-aware插值调整位置编码以扩展上下文长度到100万的详细原理解释:1.RoPE(旋转位置编码)的原理RoPE是一种用于Transformer模型的位置编码方法,它通过旋转向量来注入位置信息。具体来说,RoPE将每个位置的嵌入向量拆分为实部和虚部,并根据位置和频率进行旋转。其核心公式如下:假设嵌入维度为dim,位置为pos,频率由theta决定,那么旋转角
- mysql 异常宕机 ..InnoDB: Database page corruption on disk or a failed,,InnoDB: file read of page 8.
wangchaoqi1985
MySQL
mysql异常宕机..InnoDB:Databasepagecorruptionondiskorafailed,,InnoDB:filereadofpage8.参考文章:(1)mysql异常宕机..InnoDB:Databasepagecorruptionondiskorafailed,,InnoDB:filereadofpage8.(2)https://www.cnblogs.com/yhq13
- 主要空间数据挖掘方法
CodeYoung7
总结归纳数据挖掘地理信息
文章出自:http://blog.csdn.net/shaoz/article/details/6847925张新长马林兵等,《地理信息系统数据库》[M],科学出版社,2005年2月第二章第二节空间数据空间数据挖掘是多学科和多种技术交叉综合的新领域,其挖掘方法以人工智能、专家系统、机器学习、数据库和统计等成熟技术为基础。下面介绍近年来出现的主要空间数据挖掘方法。1、空间分析方法利用GIS的各种空间
- aop解决 防重复提交
小羊炒饭
javaspring
背景描述虽然前端控制了按钮不能连续点击,但是在网络信号弱的情况下,仍然会出现第一次点击,请求A网络信号弱,这个时候前端按钮仍然可以点击,然后用户点击第二次。结果两次请求全部成功,数据库生成了两条除了ID以外一模一样的数据。(业务上不允许这种数据出现)解决方式采用AOP,对于不能重复提交的接口在后端加上控制。第一步自定义注解/***@Authorztc*@Description防止重复提交自定义注解
- Visual Studio Code使用ai大模型编成
大得369
vscodeide编辑器
1、在VisualStudioCode搜索安装roocode2、去https://openrouter.ai/settings/keys官网申请个免费的配置使用
- 在 Vue 2 中使用 Three.js 导入本地 3D 模型
cherryzm88
webvue2javascriptvue.js前端3d
引言Three.js是一个流行的JavaScript库,它能够帮助开发者轻松地在Web页面上创建3D内容。而Vue.js作为前端框架,可以与Three.js结合,构建交互式3DWeb应用。本篇博客将介绍如何在Vue2中使用Three.js加载本地3D模型。1.初始化Vue2项目如果你的项目还没有Vue2环境,可以使用VueCLI初始化:```shvuecreatemy-threejs-appcdm
- 【MySQL】表空间丢失处理(Tablespace is missing for table 错误处理)
m0_74824823
面试学习路线阿里巴巴mysql数据库
问题背景最近,我在运行一个基于Python爬虫的项目时,爬虫需要频繁与MySQL数据库交互。不幸的是,在数据爬取过程中,Windows系统突然强制更新并重启。这次意外中断导致MySQL数据库的三个表格(2022年、2023年和2024年的数据表)出现了“Tablespaceismissing”的错误。起初,我尝试了常规的CHECKTABLE和REPAIRTABLE方法,但这些都没有解决问题。最终,
- 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