- 基于oracle linux的 DBI/DBD 标准化安装文档(二)
oracle
一、安装DBIDBI(DatabaseInterface)是perl连接数据库的接口。其是perl连接数据库的最优方法,他支持包括Orcale,Sybase,mysql,db2等绝大多数的数据库,下面将简要介绍其安装方法。1.1解压tar-zxvfDBI-1.616_901.tar.gz1.2安装依赖yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-Mak
- https证书申请的流程
httpsssl证书
如果你希望自己的网站打开显示HTTPS地址,浏览器可以显示安全标识,这种情况下就需要申请https证书。申请过程需要你拥有网站的一些权限,主要是域名管理权限,如果是自助建站有后台可以直接管理SSL证书或者安装的,自己提供后台登录信息,如果有主机或者独立服务器那么就需要提供相应的远程信息,除非你上传HTTPS证书只要配合域名解析就完事了。HTTPS证书不是申请好,网站打开HTTPS的,而是申请好拿到
- Zabbix监控系统搭建&飞书机器人告警
wdy0078
zabbix
Zabbix监控系统搭建&飞书机器人告警操作系统:CentOS7x64Zabbix版本:5.0LTS参考官网链接:下载Zabbix5.0LTSforCentOS7,MySQL,NGINX安装Zabbix源rpm-Uvhhttps://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpmyumclea
- 在Windows PowerShell中运行Ollama相关的bash命令时,需要注意
晓北斗
IT编程Codewindowsbash开发语言
在WindowsPowerShell中运行Ollama相关的bash命令时,需要注意以下几点:1.Ollama安装命令在PowerShell中直接运行Ollama官方安装脚本(需替换curl为Invoke-WebRequest):irmhttps://ollama.com/install.ps1|iexirm是Invoke-WebRequest的别名,iex是Invoke-Expression的别
- Android 16开发实战指南|锁屏交互+Vulkan优化全解析
Android洋芋
AndroidandroidAndroid16开发架构Vulkan性能优势生物识别APIVulkan渲染锁屏组件原理
一、环境搭建与项目初始化1.安装AndroidStudioLadybug下载地址:AndroidStudio官网关键配置:#安装后立即更新SDKSDKManager→SDKPlatforms→安装Android16(Preview)SDKManager→SDKTools→更新AndroidSDKBuild-Tools至34.0.0#通过命令行安装SDK组件(可选)sdkmanager"platfo
- 基于Python的自然语言处理系列(60):使用 LangChain 构建 Multi-Vector Retriever 进行文档检索
会飞的Anthony
人工智能信息系统自然语言处理人工智能深度学习机器学习
在NLP和AI领域,基于嵌入(Embeddings)进行文档检索已成为一种高效的解决方案。本文介绍如何使用LangChain构建Multi-VectorRetriever,实现对长文档的分块索引和高效检索。1.环境准备首先,我们需要安装相关依赖库。pipinstalllangchainchromadbtorchtransformers2.加载文档并进行预处理我们先使用TextLoader读取多个文
- mac开发环境准备工作
TomatoMomo
macos
Mac开发环境准备工作作者:TomatoMomo对于新入手的macos环境的电脑,很多原win开发环境下的程序员会显得无从下手,不知道从哪里做起。以下是一些推荐的必备的环境配置。网络代理环境配置软件包管理还有docker等诸多环境如果没有优质的外网环境,目前可以说是举步维艰,不分win还是mac还是linux开发环境,对于程序员来说几乎是必需品。这篇文章不提供代理配置教程。安装brew对于程序员来
- 基于 Vue 3 的PDF和Excel导出
Joy T
前端开发vue.js前端javascript
以下是基于Vue3CompositionAPI的完整实现,包括PDF和Excel导出。一、PDF导出(Vue3)安装依赖在项目中安装相关库:npminstallhtml2canvasjspdfVue3代码实现导出为PDF示例序号名称数量{{index+1}}{{item.name}}{{item.count}}导出PDFimport{ref}from'vue';importhtml2canvasf
- DHT11数字温湿度传感器驱动开发全解析(上) | 零基础入门STM32第八十六步
触角01010001
STM32入门教程(100步)stm32驱动开发单片机嵌入式硬件物联网
主题内容教学目的/扩展视频DHT11芯片电路连接,手册分析。驱动程序,读出数据。能读出温湿度值即可。师从洋桃电子,杜洋老师文章目录一、DHT11传感器概述1.1核心特性1.2典型应用场景二、硬件连接规范2.1引脚定义2.2典型接线方案三、核心性能参数3.1测量指标3.2电气特性四、单总线通信协议4.1通信时序全景4.2数据位判定规则五、关键设计注意事项5.1环境适应性5.2安装规范5.3异常恢复六
- Python爬虫:Feapder 的详细使用和案例
数据知道
2025年爬虫和逆向教程python爬虫开发语言
更多内容请见:爬虫和逆向教程-专栏介绍和目录文章目录1.Feapder概述1.1Feapder介绍1.2Feapder核心特点1.3Feapder主要组件1.4Feapder的安装2.基础爬虫编写2.1创建爬虫2.2运行爬虫3.数据采集案例3.1新闻网站采集3.2电商商品采集3.3使用Spider类创建更强大爬虫4.高级功能使用4.1分布式爬虫4.2浏览器渲染4.3文件下载4.4监控与报警5.数据
- MYSQL学习心得
没有网名L
MYSQL学习笔记数据库mysqlmariadb
安装mysql首先找到免安装版的mysql包,之后书写一个.ini文件进行初始化配置,可参考csdn网址MySql的配置——详细教程_二哈喇子!的博客-CSDN博客_配置mysql在控制台输入mysql直接进入mysql操作界面,首先需要找到mysql的目录,如C:\Users\wei\Desktop\mysql-5.7.26-winx64,后在环境变量中的系统变量添加变量名:MYSQL_HOME
- vue2 生成动态二维码
vue2组件化
因为项目使用的是vue2,下面那个组件,大佬没有写canvas的生成二维码+logo的形式。所以跟着大佬的vue3的代码,写了一遍vue2的。vue3直接安装使用npminstallqrcode@1@chenfengyuan/vue-qrcode@2vue2参考下面npminstallqrcode@1组件:QrcodeComponent.vueimport{toCanvas,toDataURL,t
- Linux开发工具使用
大大大蠢驴
linuxc++学习笔记linuxc++后端
Linux开发工具使用2.1Linux软件包管理器yumYUM(YellowdogUpdater,Modified)是Linux系统中的一个软件包管理工具,主要用于安装、更新、卸载和管理RPM软件包。它基于RPM(RedHatPackageManager)进行包管理,并自动处理依赖关系,避免手动安装时出现缺少依赖包的问题。YUM语法格式:yum[options][command][package_
- python系列:一文读懂FastAPI:Python 开发者的福音
坦笑&&life
#pythonpythonfastapi开发语言
一文读懂FastAPI:Python开发者的福音一文读懂FastAPI:Python开发者的福音第一步:安装FastAPI第二步:创建一个FastAPI应用第三步:定义接口第四步:运行应用第五步:查看接口文档总结一文读懂FastAPI:Python开发者的福音FastAPI是一个基于Python的现代化Web框架,它提供了快速、简单和高性能的方式来构建API。它结合了Python的静态类型检查和自
- 一文读懂 Python 开发环境配置
felixmicrospace
Python学习记录python
文章目录Python多版本管理1.多版本使用需求2.Windows下多版本管理[^1]3.Linux系统下多版本管理[^2]Python虚拟环境配置1.原理和配置需求操作系统的环境变量虚拟环境运行和PATH修改Python解释器和虚拟环境关系2.安装&配置使用Virtualenv管理[^3]使用venv管理使用[pipenv](https://pipenv.pypa.io/en/latest/)管
- ssh: Could not resolve hostname you: Temporary failure in name resolution
Agatha方艺璇
Hadoop大数据sshhadoophdfs
安装Hadoop时报错此问题:原因是配置ip时写错了1、配置主机名与IP地址的映射关系:vi/etc/hosts192.168.215.152niit012、主机名称配置:vi/etc/sysconfig/networkniit01
- 第 1 章 Python 入门
___Y1
pythonwindows数据库
各位在学习新技术或新编程语言时,是否对准备工作发过愁呢?往往学习还没有正式开始,就先在准备工作上迷失了方向。好不容易硬着头皮开始准备,却发现安装完一个软件之后又不知道该干什么了。最后自以为准备完毕兴冲冲地要开工时,才注意到应该装好的东西并没有正确安装。到头来,大把的时间花在了准备阶段上,再无心情去学习了。类似这种情况不知道各位遇到过没有。搭建Python开发环境时要考虑OS与版本等诸多组合,所以这
- InDesign软件下载:附最新安装包+详细图文教程(win/mac)
戴宣千Red
InDesign软件下载:附最新安装包+详细图文教程(win/mac)InDesign软件下载附最新安装包详细图文教程winmac项目地址:https://gitcode.com/Resource-Bundle-Collection/66d07软件简介AdobeInDesign是一款由Adobe公司开发的专业级排版设计软件,广泛应用于杂志、书籍、广告等多种印刷材料以及数字出版物的制作。它以其高效的
- VS Code搭建PYQT5环境并创建Helloworld实例
Panstar_
PYQTpythonpyqtvscode
使用Pythonpip安装PyQt5和PyQt5-toolpipinstallPyQt5pipinstallPyQt5-tools在VScode中安装插件PYQTIntegration配置PYQT
- 【Python】matplotlib:Python可视化库,补充:报错处理(安装超时,numpy/pandas/matplotlib版本匹配问题,scipy安装报错)
yannan20190313
Pythonpythonmatplotlib信息可视化
Matplotlib是Python中最基础的可视化模块,主要用于绘制二维平面图。其它可视化库有些是基于matplotlib,例如:seaborn库就是基于matplotlib专用于统计数据可视化。Matplotlib官网:Matplotlib—VisualizationwithPythonMatplotlib是第三方库,需要安装:pipinstallmatplotlib导入Matplotlib库:
- centos7 二进制安装docker和docker-compose(amd64,arch64)
蓝~天~
容器化脚本dockercentoslinux
一、优化系统modprobebr_netfiltercat>>/etc/sysctl.conf/etc/systemd/system/docker.service/etc/docker/daemon.json<
- cmd 运行 c++ .cpp 文件
_painter
c++c++开发语言
进入文件目录执行g++文件名.cpp此时,通过编译之后,会自动生成一个a.exe的可执行文件(Windows下会默认生成a.exe,Linux下默认生成a.out)直接运行a或者a.exe或者双击a.exe'g++'不是内部或外部命令,也不是可运行的程序或批处理文件”的问题下载安装MinGW-w64cdmingw\binmingw-getinstallgccg++在Windows命令行中编译运行C
- Python+Django网页前后端rsp云端摄像头人数监控系统
荷塘月色2
Pythonpythondjango开发语言算法后端神经网络网络
程序示例精选Python+Django网页前后端rsp云端摄像头人数监控系统如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!前言这篇博客针对《Python+Django网页前后端rsp云端摄像头人数监控系统》编写代码,代码整洁,规则,易读。学习与应用推荐首选。运行结果文章目录一、所需工具软件二、使用步骤1.主要代码2.运行结果三、在线协助一、所需工具软件1.Python
- CondaHTTPError: HTTP 000 CONNECTION FAILED for url(借鉴与自身经历总结)
静静的写bug
anaconda
CondaHTTPError:HTTP000CONNECTIONFAILEDforurl(解决方法)一、CondaHTTPError问题condahttperrorhttpnonenoneforurlnoneAnaconda更新失败在conda安装好之后,默认的镜像是官方的,由于官网的镜像在境外,访问太慢或者不能访问,为了能够加快访问的速度,这里选择了清华的的镜像。在命令行中运行(设置清华的镜像)
- AppML 下载指南
wjs2024
开发语言
AppML下载指南引言AppML是一款功能强大的移动应用开发工具,它旨在简化移动应用的开发流程,提高开发效率。本文将为您详细介绍AppML的下载方法、安装步骤以及注意事项,帮助您快速上手这款优秀的应用开发工具。AppML简介AppML是一款基于人工智能技术的移动应用开发平台,它允许开发者通过简单的拖拽操作,快速构建出具有丰富功能的移动应用。AppML支持多种平台,包括iOS、Android和Win
- echarts vue 酷炫图_Vue怎么使用Echarts创建图表
正直boy
echartsvue酷炫图
摘要:在后台管理系统中,我们经常会遇到图表,比如说:柱形图,饼状图,折线图,雷达图等等,而用来写图表插件有很多,我这里主要介绍Echarts在项目里怎么使用,官网地址如下:https://echarts.baidu.com/index.html,详细信息请阅览他们的官网文档和实例,各种图表都比较完善。本文流程:1.安装插件2.引入Echarts3.创建图表4.修改样式5.接入数据一.安装插件方法一
- 记录 Mac M4 安装 RAGFlow 的一次排坑过程
大模型deepseek
先来看看官方文档https://ragflow.io/docs/v0.16.0/,那是相当简单1.下载gitclonehttps://github.com/infiniflow/ragflow.gitcdragflowgitcheckout-fv0.16.02.启动docker-compose-fdocker/docker-compose.ymlup-d啊,报错了nomatchingmanifes
- 关于pycharm 和idea 安装同时破解出现只能使用一个
Lucky GGBond
小Bug专栏pycharmide
项目场景:破解pycharm跟idea的时候只能破解一个,两个一块破解只能使用一个可以说是相当的麻烦。问题描述提示:这里描述项目中遇到的问题:idea跟pycharm的破解不能够两个都使用一种方式进行破解。当时小编两个软件都是使用的这一种方式破解的的,然后就出现了破解成功一个后另外一个就不可以使用了,反正就是两个你只能使用一个。本来两个都是使用的这一种方式进行激活。原因分析:提示:这里填写问题的分
- Vue学习记录之二十 postcss自定义插件及Unocss的使用
LvManBa
vue.js学习postcss
一、实例1使用postCss自定义px转vw插件编写css插件:一、在项目根目录下建立一个plugins文件夹,然后建立一个postcss-px-to-viewport.ts文件。//vite内置了postCss无需安装import{Plugin}from'postcss'//定义一个变量constOptions={viewportWidth:375,//UI设计稿上的宽度,这里我们默认的视口宽度
- 运行git命令出现lf will be replaced by crlf 的解决方法!
CarbenChueng
git
运行git命令出现lfwillbereplacedbycrlf的解决方法!-Win7系统之家
- 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