- 基于TLS双向验证的java模拟FTPS的Server端和client端
海洋猿
https服务器ssljava
基于TLS双向验证的java模拟FTPS的Server端和client端一、首先实现加密的Ftp需要创建证书1、利用jdk自带的keytools工具生成为了实现消息认证。Server需要:1)KeyStore:其中保存服务端的私钥2)TrustKeyStore:其中保存客户端的授权证书同样,Client需要:1)KeyStore:其中保存客户端的私钥2)TrustKeyStore:其中保存服务端的
- 探索工业自动化:C开发OPC Server开源项目推荐
翟俭妙
探索工业自动化:C#开发OPCServer开源项目推荐去发现同类优质开源项目:https://gitcode.com/项目介绍在工业自动化领域,OPC(OLEforProcessControl)标准是实现设备间数据交换的关键技术。为了帮助开发者更轻松地进入这一领域,我们推荐一个由社区贡献的C#开发OPCServer开源项目。该项目不仅提供了完整的源码,还包含了详细的使用文档和配置指南,适用于32位
- opc server 开发心得
carelg
serverserviceinputoutputtagsmfc
这段时间公司项目上需要把数据通过OPCSERVER开放接口,在网上及CSDN上SEARCH了好久,感觉CSDN上的资料还是比较专业的,但也有做广告的,我摸索了一周时间,有点心得,并用在工程上,一下是一周体会;一:WINTECH的开发包WINTECH网站上可下载开发包,WTOPCSVR.DLL有VBVCVC#的例程,但是DEMODLL,可运行30分钟,比较容易上手,但对开发者来说不能从内核上了解OP
- 基于C#的OPCServer应用开发,引用WtOPCSvr.dll
操作流程:1.引入WtOPCSvr.dll文件2.注册服务:使用UpdateRegistry方法注册,注意关闭应用时使用UnregisterServer取消注册。3.初始化服务:使用InitWTOPCsvr初始化4.使用CreateTag方法,创建标签5.读写参数使用下面三个方法:StartUpdateTagsUpdateTagEndUpdateTags6.当发生客户端写操作的时候,服务器执行下面
- GitHub 趋势日报 (2025年06月26日)
qianmoQ
GitHub项目趋势日报(2025年)github
由TrendForge系统生成|https://trendforge.devlive.org/本日报中的项目描述已自动翻译为中文今日获星趋势图今日获星趋势图716free-for-dev677Self-Hosting-Guide618Best-websites-a-programmer-should-visit565dioxus411edit337awesome-mcp-servers310lea
- 现代C++ 文件系统库
mxpan
c++c++
一、std::filesystem的前世今生C++11之前,文件系统操作依赖于平台特定的API(如Windows的CreateFile或POSIX的open),缺乏统一接口。C++17正式将std::filesystem纳入标准库,该库最初由Boost.Filesystem演化而来,提供了跨平台的文件系统操作能力。核心优势:跨平台兼容性:一次编写,支持Windows、Linux、macOS等主流平
- ali PaddleNLP docker
大熊程序猿
AI大模型docker容器运维
一、添加文件nano /root/projects/paddlenlp_similarity_server.pyfromflaskimportFlask,request,jsonifyimportpaddlefrompaddlenlpimportTaskflowimportjsonimportuuidapp=Flask(__name__)#初始化文本相似度模型similarity=Taskflow
- windows隐藏与克隆账号
进击的木头
渗透windows隐藏用户
1.使用命令提示符建立简单的隐藏用户点击“开始”→“运行”,输入“CMD”运行“命令提示符”,输入“netusertest$123456/add”,回车,成功后会显示“命令成功完成”。接着输入“netlocalgroupadministratorstest$/add”回车,这样我们就利用“命令提示符”成功得建立了一个用户名为“test$”,密码为“123456”的简单“隐藏账户”,并且把该隐藏账户
- 十八、windows系统安全---利用Hydra获得账号密码
midsummer_woo
Windows系统安全安全windows
环境靶机:windowsserver2012攻击机:kalilinux靶机环境密码为弱口令设定登录失败的次数锁定用户账号,关闭密码复杂度步骤1.在kali上探测目标主机(可在目标主机通过ipconfig查看目标主机IP)是否开启445端口nmap192.168.99.105-p4452.使用hydra对已知的administrator账号进行爆破(注意pass.txt的路径)hydra-ladmi
- Windows 权限维持-后门隐藏
蟹老板6
windows后门排查权限维持后门隐藏
交流使用,请勿做非法用途攻击者在获取服务器权限后,通常会用一些后门来维持权限,如果你想让你的后门保持的更久些,那么请隐藏好它,使之不易被管理员发现隐藏文件1、利用文件属性最简单的一种隐藏文件的方式,文件右键属性,勾选隐藏,点击确定后,在这个文件里看不到刚刚的文件了如果要让文件显示出来,就点击查看,勾选显示隐藏的文件,文件就显示出来。如何真正隐藏文件?使用Attrib+s+a+h+r命令就是把原本的
- Windows Server 2012-等保三级基线
DK_Allen
安全windows安全
一、身份鉴别1.1、应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换描述检查是否创建了除默认管理员之外的普通用户账户;是否启用密码复杂性配置,密码最小长度设置为8以上;以及是否设置密码使用期限策略,最长使用期限设置为30-180之间,最短使用期限设置为1-14之间;是否将强制密码历史设置为5-24之间;启用自动登陆策略为已禁用;无克隆帐户。检查提示--加固
- MCP 中间件机制正式发布:FastMCP 的「责任链」进化
Code Agent
中间件mcp人工智能AI编程
大家好,这里是CodeAgent为了让AgentService具备更强的扩展性与可维护性,FastMCP在2.9.0版本中正式引入了MCPMiddleware(中间件)机制。MCPmiddlewareisapowerfulconceptthatallowsyoutoaddcross-cuttingfunctionalitytoyourFastMCPserver.Unliketraditionalw
- Elixir 中的状态管理:进程、Agent 与 GenServer 实践
actor_dev
elixirerlangstate
简介当我第一次学习Elixir时,我曾困惑于如何管理状态。与通过可变全局变量实现状态管理的命令式语言不同,Elixir的不可变数据模型和基于BEAM虚拟机的并发设计要求采用不同的方法。本文将探讨Elixir中状态的处理方式。上下文:BEAM虚拟机与并发Elixir运行在专为高并发和容错设计的BEAM虚拟机上。受Actor模型启发,BEAM将进程视为通过消息传递通信的轻量级实体。由于数据不可变,状态
- 在Brighter中通过PostgreSQL实现出站箱模式
actor_dev
c#.netbrighterpostgresqloutbox
介绍在我们之前对SQLServer使用出站箱(Outbox)模式的探索基础上,本文将该模式适配到PostgreSQL,并探讨其局限性。目标是确保数据库更新与消息发布之间的事务一致性。我们将使用.NET8、Brighter和PostgreSQL实现跨分布式系统的订单创建与事件发布。项目本项目的核心是发送一个创建订单的命令。当订单成功创建后,会发布两条消息OrderPlaced与OrderPaid。若
- 安装MySQL数据库
H03004
adb
学习过程与安装步骤下载MySQL:访问MySQL官网(https://dev.mysql.com/downloads/mysql/)。根据你的操作系统选择合适的版本下载。对于Windows用户,推荐下载带有图形界面安装向导的版本;对于Linux用户,则可以选择基于命令行的安装包。安装MySQL:对于Windows用户,运行下载的安装文件,按照向导提示完成安装。在安装过程中,需要设置root用户的密
- Neo4j 图数据库安装教程(2024最新版)—— Windows / Linux / macOS 全平台指南
2501_91537435
图数据库neo4j数据库windows
Neo4j图数据库安装教程(2024最新版)——Windows/Linux/macOS全平台指南Neo4j是目前最流行的图数据库(GraphDatabase),广泛应用于社交网络、推荐系统、知识图谱等领域。本文将详细介绍Windows、Linux和macOS三大平台的Neo4j安装方法,并包含配置优化、基础使用示例和常见问题解决。一、Neo4j简介1.什么是Neo4j?Neo4j是一个高性能的No
- mysql主从表配置文件_mysql主从复制配置
代土
mysql主从表配置文件
#以下是mysql5.6及5.7版本的,其他版本不知是否一致目的:1.为了冗余备份,主库挂了,切换到从库使用2.为了实现读写分离,主从复制是实现读写分离的前提主从复制的原理图:配置步骤:1.修改配置文件vim/etc/my.cnf#不同mysql的server-id需要不同主库添加配置信息:[mysqld]server-id=1log-bin=z-mysql-bin从库添加配置信息:[mysqld
- ShardingProxy-分库分表
菜逼の世界
ShardingSphereShardingSphereShardingProxy分表分库
ShardingProxy获取资源包下载地址ShardingProxy当前使用版本4.1.1安装apache-shardingsphere-4.1.1-sharding-proxy-bin.tar.gz解压即可目录说明bin:启动脚本start.bat:window启动脚本start.sh:linux启动脚本stop.sh:linux停止脚本conf:配置文件server
- 数据库搭建集群之主从复制
gardenia_a
初级程序猿
数据库搭建集群之主从复制安装数据库去官网https://www.mysql.com/在linux系统下修改配置my.conf(windows是my.ini)主服务加上server_id=1一台从服务器是server_id=2,一台从服务器server_id=3重启数据库linux命令servicemysqldstart在进行数据库配置主数据执行:让从库来找到GRANTREPLICATIONSLAV
- VRRP协议-IP地址冗余配置
melonbo
网络通信tcp/ip网络协议网络
有两个服务器172.16.42.1和172.16.42.121,通过VRRP协议使两台设备共用一个虚拟地址172.16.42.100,当172.16.42.1可用时,它会作为主路由器使用虚拟IP地址;当它不可用时,172.16.42.121会接管虚拟IP地址,确保网络的高可用性。这样,无论主服务器是否可用,虚拟IP地址始终保持可访问。以下是配置VRRP的步骤:假设和前提条件Server1:172.
- python | vscode | cursor | 使用uv快速创建虚拟环境(实现一个项目一个虚拟环境,方便环境管理)
让我安静会
配置与安装pythonvscodeuv
从笨重的pycharm转到vscode/cursor。vscode是编辑器,虽然可以安装各种extension,还是需要安装python解释器。安装python,实现基本代码运行:去python官网下载python的windows安装包(python解释器)安装时记得选择customized,安装非C盘中(比如D盘)将python添加到PATH中:把刚刚安装python的路径添加到系统环境变量中(
- C++基础(FreeRDP编译)
安装先安装openssl保姆级OpenSSL下载及安装教程,OpenSSL下载及安装教程-CSDN博客vcpkgintegrateinstall安装vcpkginstallzlibvcpkginstallffmpeg:x64-windows编译指令PSD:\freerdp\FreeRDP\build>cmake..-G"VisualStudio172022"-Ax64-DCMAKE_TOOLCHA
- 深度C盘清理技巧
nightunderblackcat
基础项目开发语言windows
大家好!C盘空间告急几乎是每个Windows用户都会遇到的“成长烦恼”。系统运行缓慢、更新失败、软件无法安装……这些问题的元凶往往就是被塞满的C盘。今天我们就来一场彻底的“大扫除”,不仅清理表面垃圾,更要深入系统释放宝贵空间!第一步:基础清洁-扫除显性垃圾磁盘清理工具(最基础但有效!)操作:打开“此电脑”->右键点击C盘->选择属性->点击磁盘清理。重点清理:Windows更新清理:这是大头!系统
- 【WinSCP 安装与使用】
岁月玲珑
linuxwindowslinuxwindows
WinSCP是一款完全免费且开源的Windows图形化文件传输工具,基于SSH协议实现安全的SFTP和SCP文件传输,特别适合在Windows与Linux服务器间进行文件管理。以下从安装到使用的完整指南:✅一、WinSCP的核心特性(免费开源验证)开源协议采用GPL许可证,源码托管于GitHub。零费用无广告、无功能限制,所有版本均可免费使用。安全传输支持SFTP(SSH-2)、SCP协议,全程加
- 腾讯云文件上传流程
从未、淡定
前端领域腾讯云httphttps
文件上传流程actoruseras"用户"participantClientas"浏览器"participantServeras"服务端"participantCOSas"腾讯云"autonumberCOSClient:点击上传按钮user->Client:选择上传文件Client->Server:向服务端发起请求需要上传的文件名Server->COS:结合密钥,向COS请求生成__临时密钥__S
- CMSIS应用于研究指南图文教程
硬小二
《ST32从入门到就业》单片机stm32armKeil
欢迎点击浏览更多高清视频演示0,概述本文旨在帮助大家理解什么是CMSIS标准和CMSIS标准的基本内容,并为大家深入研究CMSIS提供途径。目录0,概述1,什么是CMSIS标准2,CMSIS文件获取方法3,总结1,什么是CMSIS标准CMSIS英文全程为:CortexMicrocontrollerSoftwareInterfaceStandard可翻译为“微控制器表层软件接口标准”。由于ARM是制
- 深入解析privacy.sexy项目的应用层架构与实现
郁蝶文Yvette
深入解析privacy.sexy项目的应用层架构与实现privacy.sexyOpen-sourcetooltoenforceprivacy&securitybest-practicesonWindows,macOSandLinux,becauseprivacyissexy项目地址:https://gitcode.com/gh_mirrors/pr/privacy.sexy项目概述privacy.
- 阿里云Ubuntu服务器上安装MySQL并配置远程连接
一条破秋裤
个人笔记adb
1.安装MySQL首先连接到你的Ubuntu服务器,然后执行:#更新软件包列表sudoaptupdate#安装MySQL服务器sudoaptinstallmysql-server#启动MySQL服务sudosystemctlstartmysql#设置MySQL开机自启sudosystemctlenablemysql#检查MySQL状态sudosystemctlstatusmysql2.配置MySQ
- Windows下利用RegisterWindowMessage函数实现进程间通信
程间通信的方法有很多,比如使用注册消息,内存映射,WM_COPYDATA等,下面先讲使用注册消息实现的方法。使用注册消息比较简单,核心是消息的接收端和消息的发送端(接收端和发送端在两个不同的进程)必须注册相同的消息,这样发送消息才能识别。功能:定义一个新的窗口消息,该消息保证在整个系统中是唯一的。发送或发布消息时可以使用消息值。UINTRegisterWindowMessageA([in]LPCS
- linux部署Java项目流程
呆萌IT少女
linux项目部署mysqllinuxjava服务器nginx
项目部署流程开始准备需要的包,我用的是openJDK8,Mysql8,nginx0.6.361.搭建Linux环境若操作系统为windows环境,首先安装虚拟机并搭建对应的linux操作系统。2.安装Openjdk1.81.创建jdk目录mkdir-p/usr/local/javacd/usr/local/java2.解压tar-zxvfjdk包3.配置环境变量vim/etc/profileexp
- 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