- Python Sqlite数据库与配置文件的加载、编辑和保存
2201_75335496
数据库sqlitepythonjsonpyqt
一、Sqlite数据库SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如T
- pyinstaller 打包生成.exe 可执行文件报错 “IndexError: tuple index out of range”
静妍
PythonPythonpyqtguiPyinstaller.exe
想把pyqt写的GUI程序打包成.exe文件,以便在Windows下运行,不想因为使用Python3.6,出现兼容问题:IndexError:tupleindexoutofrangePyinstaller官网目前的版本是3.2.1只支持到Python2.7,Python3.3~Python3.5需自己在官网源码里
- Omnissa Dynamic Environment Manager 2412 - 个性化动态 Windows 桌面环境管理
虚拟化
OmnissaDynamicEnvironmentManager2412-个性化动态Windows桌面环境管理Simplifymanagementofuserprofiles,environmentsettings,andpoliciesacrossdesktopsandapps.请访问原文链接:https://sysin.org/blog/omnissa-dynamic-environment-
- 使用vnstat监控网络流量和带宽占用
handsomestWei
运维运维网络
使用vnstat监控网络流量和带宽占用简介vnstat是个Linux下基于shell终端的网络流量监控工具,可帮助用户在不同时间段内监视,记录和查看网络统计信息。它提供了各种网络接口的汇总,允许用户以详细表或命令行统计视图的形式查看小时,每日,每月统计。安装sudoaptupdatesudoaptinstallvnstatsudosystemctlstartvnstatsudosystemctle
- 解决 GitHub 端口连接超时
御风牧云_
Android开发环境配置
一,前言GitHub端口默认使用的本机端口为22,某些情况下如果此端口被占用,就会导致GitHub连接超时错误。ssh:connecttohostgithub.comport22:ConnectiontimedoutWindows下可以通过下面的命令,来查看端口占用情况netstat-ano二,解决方案可以通过SSH命令临时修改端口号为443,测试是否可以连接到GitHubssh-T-p443gi
- [python]windows上安装talib最简单方法TA-Lib安装步骤
萌萌哒240
pythonpythonwindows开发语言
要通过.whl文件安装TA-Lib(即talib,一个广泛使用的技术分析库),你需要先下载与你的Python版本和操作系统架构(32位或64位)相匹配的.whl文件。以下是通过.whl文件安装TA-Lib的详细步骤:一、下载TA-Lib的.whl文件访问https://gitee.com/FIRC/pythonlibs_whl_mirror或其他可靠的源,查找与你的Python版本和操作系统架构相
- 设计模式-生成器模式(建造者模式)-(Builder)
树懒_Zz
设计模式建造者模式
生成器模式是一种创建型设计模式,使你能够分步骤创建复杂对象。该模式允许你使用相同的创建代码生成不同类型和形式的对象。就像流水线的组装机器人一样,一件产品组装分成好几部,每一个工位组装不同的内容。问题:譬如你开了一家公司,专门承接私人建房,建房有的人要求:自带车库的房子、带游泳池的房子、装饰豪华的房子和带花园的房子等等。如果你基于这些创建了一个构造函数:House(windows,doors,roo
- Ubuntu问题集2.0
Glourier
小技巧Linuxubuntulinux
目录1.实时显示网速、内存占用等2.创建虚拟环境3.设置命令走代理4.下载东西时ConnectionRefused5.通过ssh连接到另一台电脑6.Ctrl+C无法终止进程7.结束某个后台进程8.持久化安装9.桌面无反应10.装系统时缺少grub文件11.查看网络情况和本机IP12.令终端命令走代理13.释放缓存和swap14.Windows远程登录ubuntu桌面15.Sogou拼音皮肤安装不了
- 如何快速在Windows 10 + Anaconda 3 中使用Mxnet及gluon
qianchess
mxnet使用mxnetwin10anacondagluon人工智能
如何快速在Windows10+Anaconda3中使用Mxnet及gluon网络上Mxnet的安装以及使用方法很多,自从其作者之一李沐推出了基于Mxnet的深度学习课程之后,我也尝试着去使用了一下Mxnet。首先第一步就是在自己的系统中安装Mxnet及其相关组建。现在的Mxnet常常会跟其虚拟环境Gluon结合在一起,所以下文就一起阐述一下,顺便记录一下自己踩的坑。注意本文的大部分内容都可以在官网
- 蓝易云 - Linux系统中常见的远程管理协议!
蓝易云
linux运维服务器httpnginxhttpsflutter
Linux系统中常见的远程管理协议有以下几种:1.SSH(SecureShell):SSH是一种安全的远程登录协议,用于在网络上安全地远程登录到Linux服务器。它提供了加密的传输和身份验证机制,可以防止数据在传输过程中被拦截和篡改。SSH使用用户名和密码或公钥认证来验证用户身份,并允许用户在远程终端上执行命令。2.Telnet:Telnet是一种不安全的远程登录协议,用于在网络上远程登录到Lin
- Windows Server 如何启用 TLS 1.3 ?
windowstls
传输层安全(TLS)1.3代表了用于互联网通信安全协议的重大进步。随着它在WindowsServer2022和Windows11中的引入,系统大大增强了安全性和连接速度。本指南提供了在WindowsServer2022中启用TLS1.3的详细演练,确保您的服务器受益于最新的安全技术。Step1:VerifySystemCompatibility确保系统正在运行WindowsServer2022或W
- Windows 11安装DeepSpeed报错(Unable to pre-compile async_io)问题解决
happy coding
windowsgpt
Windows11安装DeepSpeed报错(Unabletopre-compileasync_io)问题解决报错如下Preparingmetadata(setup.py)...errorerror:subprocess-exited-with-error×pythonsetup.pyegg_infodidnotrunsuccessfully.│exitcode:1╰─>[17linesofout
- PyInstaller 构建的 Windows EXE 因多处理而失败
潮易
windows
PyInstaller构建的WindowsEXE因多处理而失败PyInstaller是Python一个用于将Python脚本打包成可执行的exe文件的工具,但是它并不支持所有Python库,尤其是那些依赖于C扩展或使用PythonCAPI的库。如果你的程序在使用某些不支持的库时失败了,那么你可能需要寻找其他的解决方案,如使用其他的打包工具或者修改你的代码以适应这些库。以下是一个详细的步骤,说明如何
- 「C/C++」C++关键字 之 mutable 可变变量关键字
何曾参静谧
c语言c++java
✨博客主页何曾参静谧的博客(✅关注、点赞、⭐收藏、转发)全部专栏(专栏会有变化,以最新发布为准)「Win」Windows程序设计「IDE」集成开发环境「定制」定制开发集合「C/C++」C/C++程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」BlockUI集合「Py」Python程序设计「Math」探秘数学世界「PK」Paras
- Windows10解决“远程计算机或设备将不接受连接检测到该设备或资源(Web 代理)未设置为接受端口“7897”上的连接”问题和代理服务器知识科普
m0_74823863
vip1024p前端php开发语言
问题表述:远程计算机或设备将不接受连接检测到检测到该设备或资源(Web代理)未设置为接受端口“7897”上的连接。在教室上课,因为各种原因改了网络设置,以致无法Web联网。但是微信和钉钉收发消息自如。网络诊断后报错这是我遇到的报错。解决方法:左下角“开始”“设置”“网络和Internet”左边栏最下方“代理”关闭“自动检测设置”“使用设置脚本”“手动设置代理”经过上述操作之后,能够正常访问Web(
- 利用python进行wrfout数据后处理
孤墨云起
pythonpythonwindowslinux
1、安装python与conda并配置condaconda相当于python的管理包,通过conda配置多个环境互不干扰参考https://blog.csdn.net/qq_43529415/article/details/1008478872、在windows的终端(win+cmd)创建环境conda--version#可以查看版本condacreate-nmyenvpython=3.7#创建环
- windows.location.href 无法使用post请求的解决办法
BlueSea丶
模拟表单提交的办法核心代码:document.write("");document.write("");document.write("");document.form1.submit();代码:varid=$("#id").val();$.post("login_user/",{'id':id,'password':password},function(ret){if(ret.result=='
- wcferry 微信自动回复、自动保存图片、调用等
运维知多少
python3微信
之前用的那个微信web登录方式,2天就要掉线,所以现在采用wcferry,windows登录方式。目前所有功能以迁移完成,使用正常。docker部署windows系统version:'3'#使用最新版本services:app1:image:dannicool/wechatbot-provider-windows:latestcontainer_name:wechatbot-provider-wi
- Mysql常见问题处理集锦
青木川崎
mysql数据库
Mysql常见问题处理集锦root用户密码忘记,重置的操作(windows上的操作)MySQL报错:ERROR1118(42000):Rowsizetoolarge.或者Rowsizetoolarge(>8126).场景:报错原因解决办法详解行大小限制示例:内容来源于网络,主要用于知识分享,若侵权,请联系博主,会及时删除root用户密码忘记,重置的操作(windows上的操作)1:通过任务管理器或
- go采集注册表
甘北
golang开发语言后端
packagemainimport("fmt""golang.org/x/sys/windows/registry""log""os""strconv""strings")funcUSBSTOR_Enum(){//打开注册表键keyPath:=`SYSTEM\CurrentControlSet\Services\USBSTOR\Enum`k,err:=registry.OpenKey(regist
- 一文搞定postgreSQL
m0_74825172
java
一文搞定postgreSQLPostgreSQL全面指南一、什么是PostgreSQL?二、PostgreSQL的核心概念三、安装PostgreSQL1.在Linux上安装(例如Ubuntu)2.在macOS上安装(使用Homebrew)3.在Windows上安装四、基本操作1.启动和停止PostgreSQL服务2.连接到PostgreSQL3.创建数据库和用户4.基本SQL操作五、高级功能1.事
- 从零创建一个 Django 项目
m0_74825172
djangopython后端
1.准备环境在开始之前,确保你的开发环境满足以下要求:安装了Python(推荐3.8或更高版本)。安装pip包管理工具。如果要使用MySQL或PostgreSQL,确保对应的数据库已安装。创建虚拟环境在项目目录中创建并激活虚拟环境,保证项目依赖隔离:#创建虚拟环境python-mvenvenv#激活虚拟环境#WindowsenvScriptsactivate#Linux/Macsourceenv/
- vscode 极简Linux下 cmake c++开发环境
丘狸尾
vscodelinuxc++
安装这三插件vscode安装插件clangd后报错无法自动下载服务端Failedtoinstallclangdlanguageserver:FetchError:requesttohttps://api.github.com/repos/clangd/clangd/releases/latestfailed,reason:Failedtoestablishasocketconnectiontopr
- Ubuntu系统,root账户设置远程登录
笑醉踏歌行
系统运维ubuntulinux运维
要允许在Ubuntu系统上通过SSH以root用户身份进行远程登录,需要进行如下设置步骤1:设置root用户密码如果尚未设置root用户的密码,首先需要设置一个密码。在本地终端或者通过已有的非root用户SSH登录后执行:sudopasswdroot系统会提示你输入新的密码,并确认一次。步骤2:编辑SSH配置文件打开SSH守护程序(sshd)的配置文件:sudonano/etc/ssh/sshd_
- linux 安装jupyter教程 自定义配置 jupyter忘记密码重置密码
0x8g1T9E
dockerpythonDMMLDL
第一步检查Python环境python-V第二步通过pip安装jupyterpipinstalljupyter 第三步生成jupyter配置文件#root客户:jupyternotebook--generate-config--allow-root#非root客户jupyternotebook--generate-config值得一提的是:windows环境下,并没有jupyter_noteboo
- 海康威视H5player问题汇总大全
前端小码仔
海康视频海康H5player前端
由于除了要支持Windows平台,还要支持国产系统的平台,这时就用到了H5player,但是这个在使用调试的时候会遇到各种各样的问题,便在此分享一下,供大家分享!!!问题一:Unexpectedtoken‘<‘inputover1、检查html页面的引入2、确认szBasePath地址是否正确(注意:微前端乾坤下的路径别忘带子应用的前缀)3、如果以上配置都正确,且后端返回的路径没问题,请重新下载更
- linux系统安全配置教程和安全基线核查教程
o你的昵称o
linux系统安全运维网络安全
文章目录root用户远程登录限制更改ssh默认端口设置安全的用户口令策略设置安全的用户锁定策略登录超时安全设置应用安装运行策略系统日志审计策略设置history时间戳远程连接安全配置恶意代码防范:日志外发配置日志留存设置正确配置防火墙或安全组root用户远程登录限制配置原因:黑客和不法分子经常会利用默认用户进行密码爆破入侵,比如默认的root用户;在云服务器和内网的使用场景必须开启ssh才能方便进
- UI Automation 中所有Patterns
听我俩天
ui
在UIAutomation中,所有的自动化模式(Patterns)都定义在System.Windows.Automation命名空间中。这些模式用于描述控件的行为和交互方式,允许你与应用程序的UI进行自动化操作。每个模式都有其特定的功能,例如点击按钮、输入文本、选择菜单项等。所有支持的自动化模式以下是UIAutomation中所有标准的自动化模式及其简要说明:InvokePattern用途:用于执
- 使用C#进行UI自动化:UIA2与UIA3及FlaUI的介绍
听我俩天
c#ui自动化
使用C#进行UI自动化:UIA2与UIA3及FlaUI的介绍概述UIAutomation(UIA)是微软提供的一个框架,用于使Windows应用程序对辅助技术和自动化测试工具可访问。它允许开发人员和测试人员编写程序来控制和查询用户界面元素。随着技术的发展,UIA也经历了不同的版本迭代,以适应新的需求和技术进步。本文将介绍UIA2和UIA3的主要区别,并探讨如何使用FlaUI这个第三方库来简化UI自
- Oracle 跟 SQL Server 2005 的区别?思维导图 代码示例(java 架构)
用心去追梦
oraclejava架构
Oracle和SQLServer2005是两个不同厂商开发的关系型数据库管理系统(RDBMS),它们在架构、功能特性、性能优化以及使用场景等方面存在显著差异。以下是关于Oracle和SQLServer2005的主要区别、思维导图结构以及Java架构下的代码示例。Oracle与SQLServer2005的区别架构与设计平台支持:Oracle:跨平台,可以在多种操作系统上运行,包括Windows、Li
- 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