- ❤️ 美娟 感恩福记 32/365
让一切都成为你的助力
感恩信守承诺完成✅的一天感恩连睡梦中都惦记着“感恩”,夜晚睡的香甜,好感恩,谢谢感恩好手艺,营养早餐,开启了美好的一天感恩感恩健身,让自己的身体肌肉变得结实,painisweaknessleavingthebody!痛苦会让软弱离开身体!好棒的,渐渐爱上燃烧脂肪的感觉,喜欢精气神饱满的自己感恩感恩奶奶的夸赞,把堉哥哥买给奶奶的蚕丝被邮寄回去了,奶奶很高兴,有人惦记着她,也是因为奶奶智慧的规劝,才遇
- ThreadLocal本质及脏数据、内存泄漏问题
王侦
1.WeakReference的referent指向ThreadLocal的原因ThreadLocal作为WeakReference的referent,只要ThreadLocal对象引用被置为null,Entry的key(referent)就会在下一次YGC时被回收。在使用ThreadLocal的get()和set()时,会将失效的Entry(key==null)的value置为null,使val
- linux基础学习,java中间件、数据库与spring框架
疯狂Android讲义
Javajavalinux学习
蚂蚁金服一面:先自我介绍,讲讲自己基础掌握情况,以及项目经历平时会用到哪些数据结构?链表和数组的优缺点?解决hash冲突的方法有哪些?讲讲自己对HashMap的理解,以及和Weakhashmap的区别?你刚才讲的是JDK1.7版本的实现,知道JDK1.8做了哪些改动么?你们在微服务中用RPC通信还是REST?RPC和HTTP的关系是什么?谈谈什么是HTTP的长连接和短连接?TCP的三次握手和四次挥
- weak的实现原理
猴叻鳢
iOS核心知识点objective-cweak原理面试内存管理
iOS在运行时维护着一个全局的弱引用表,该表是一个hash表,hash表的key是对象本身,value是指向该对象的所有weak指针的地址数组。/**全局的弱引用表,本质是一个hash结构,对象本身作为key,存储weak修饰的指针地址的weak_entry_t作为value*/structweak_table_t{//保存了所有指向特地对象的weak指针集合weak_entry_t*weak_e
- C++智能指针_C++回顾
工业废气
C++c++开发语言后端
发展历史C++98中产生了第一个智能指针auto_ptr;C++boost给出了更实用的scoped_ptr和shared_ptr和weak_ptr;C++TR1,引入了shared_ptr等,不过TR1并不是标准版;C++11引入了unique_ptr和shared_ptr和weak_ptr。需要注意的是unique_ptr对应boost的scoped_ptr,并且这些智能指针的实现原理是参考b
- 《白话C++》第10章 STL和boost,Page98 10.4.6 std::weak_ptr
yanzhenxi
《白话C++》智能指针专辑《白话C++》学习《白话C++》第10章STL和boostc++
1.问题分析打开Excel软件,随便找三个格子(cell),在A格输入公式让其内容等于B格,让B格等于C格,让C格等于A格……,就会看到一个“循环引用”警告框。shared_ptr的设计“命中注定”有一个重大的“缺陷”,那就是它也会产生“循环引用”问题。shared_ptr之间会发生循环引用,问题就在于“引用计数”:structC2;//前置声明C2类,因为C1中药用到structC1{~C1()
- 《白话C++》第10章 STL和boost,Page101 10.4.6 std::weak_ptr
yanzhenxi
《白话C++》智能指针专辑《白话C++》学习《白话C++》第10章STL和boostc++开发语言
2.基本功能“柔弱的”weak_ptr专门用来解决上述设计中必须面对的循环指向问题。weak_ptr并不是真正的智能指针,它必须依附于shared_ptr存在。对应前面的C1、C2,我们写一个弱引用版本的C3和C4的例子:structC4;structC3{~C3(){cout_c4;};structC4{~C4(){cout_c3;};voidtest_weak_reference(){shar
- ThreadLocal原理与内存泄漏问题
根号小麻雀
Java中的引用类型:强软弱虚1)强引用:我们平时用到的引用Objecto=newObject();2)软引用:是一个由SoftReference定义的数据,当强引用对象所需内存不足的时候,GC会回收掉软引用对象。软引用非常适合做缓存。//newbyte[1024*1024*10]这个是软引用SoftReferencem=newSoftReferencem_weak=newWeakReferenc
- 掘根宝典之C++智能指针模板类(auto_ptr,unique_ptr,shared_ptr,weak_ptr)
掘根
c++c++开发语言
什么是智能指针说白了,智能指针就是类似于指针的类对象,但是功能比指针多。智能指针是一种在程序中管理动态分配的内存的工具。智能指针提供了一种机制来自动分配和释放内存,从而减少内存泄漏和悬挂指针的风险。智能指针通过将内存的所有权转移到指针对象本身,可以在对象不再需要时自动释放内存。智能指针通常会在构造函数中分配内存,并在析构函数中释放内存。此外,智能指针还提供了一些额外的功能,如拷贝构造函数和移动构造
- 现在领悟还不晚——SWOT原来是这么用的
培训爱好者
在一次《个人品牌打造》的培训课程上,我向在座的学员们提问:“你们听说过SWOT分析法吗?”几乎所有的同学都是异口同声的回答知道。然后我接下来问:“你们知道S、W、O、T分别代表着什么吗?“反应快的同学们已经脱口而出了:”S代表着优势(Strengths)、W代表着劣势(Weaknesses)、O代表着机会(Opportunities)、T代表着(Threats)。“借着他们的回答,我让他们做了一个
- 精读《What‘s new in javascript》
可口可乐Vip
前端javascript开发语言ecmascript
1.引言本周精读的内容是:GoogleI/O19。2019年GoogleI/O介绍了一些激动人心的JS新特性,这些特性有些已经被主流浏览器实现,并支持polyfill,有些还在草案阶段。我们可以看到JS语言正变得越来越严谨,不同规范间也逐渐完成了闭环,而且在不断吸纳其他语言的优秀特性,比如WeakRef,让JS在成为使用范围最广编程语言的同时,也越成为编程语言的集大成者,让我们有信心继续跟随JS生
- 「全局命令」& robotjs 体验桌面自动化
前端node.js运维
本文主要介绍如何实现全局命令,如何使用robotjs实现桌面自动化以及踩坑经验分享。旨在经验和灵感交流,篇幅有限,点到为止。原文可参考我的公众号文章《全局命令」&robotjs体验桌面自动化》实现全局命令的步骤1.创建一个新项目,并生成package.json文件比如新建项目weakup,并在项目根目录下执行npminit-y生成package.json文件。2.创建一个bin文件夹,并在bin文
- Java的强、软、弱、虚引用介绍与分析
XHLeee
Java引用类型Java引用主要分为4种(其实似乎是5种):StrongReference强引用,直接引用SoftReference软引用,间接引用WeakReference弱引用,间接引用PhantomReference虚引用,几乎无引用Final引用,这里不介绍强引用ObjectstrongReference=newObject();我们平常使用最多的就是强引用。按照JVM规范,在GC时通过可
- iOS内存管理01-定时器
阿召
这一阶段我们主要来讲讲iOS内存管理方面的知识,面试的时候可能大家多多少少都会被问及这方面的问题,那我们就从常见的面试题开讲使用CADisplayLink、NSTimer有什么注意点?介绍下内存的几大区域讲一下你对iOS内存管理的理解ARC都帮我们做了什么?weak指针的实现原理autorelease对象在什么时机会被调用release方法里有局部对象,出了方法后会立即释放吗?我们一个一个来,今天
- iOS 底层面试题
木扬音
【面试-1】通过Asssociate方法关联的对象,需要在dealloc中释放当对象释放时,系统会自动调用deallocdealloc释放步骤1、C++函数释放:objc_cxxDestruct2、移除关联属性:_object_remove_assocations3、将弱引用自动设置nil:weak_clear_no_lock(&table.weak_table,(id)this)4、引用计数清空
- 不安全的weak变量
Colla
对于存在多线程释放并且并发访问的对象,不建议使用weak修饰或访问。因为weak的底层实现并不完全是线程安全,否则较容易导致over-release而crash。一、问题每次版本升级初期总是有少部分会遇到如下的crash请在这里填写图片描述虽然量很少,但总是有也很是烦人。没办法只能看下到底是怎么回事。二、问题描述很明显,这是一个over-release的问题;挂在objc_release里;业务代
- redis 未授权访问 弱口令批量扫描工具
5wimming
工具安全redis未授权访问弱口令
redis未授权访问弱口令批量扫描工具项目地址github输入:input_data.txt,格式为ip:port命令:1、redisunauthorizedaccessscanpython3redis_scan.py-u2、redisweakpasswordscanpython3redis_scan.py-w扫描方式:多线程,每个弱口令扫描一遍所有ip,类似密码喷洒
- 弱监督时间动作定位的等效分类映射Equivalent Classification Mapping for Weakly Supervised Temporal Action Localization
六个核桃Lu
视频动作定位计算机视觉python人工智能算法视频
该论文介绍了用于弱监督时间动作定位的等效分类映射(ECM)方法。它将预分类和后分类两种分类流程结合到一个统一的框架中。该方法强调等价机制,确保两个管道之间的分类分数和聚合权重一致。它还提出了一个权重转换模块和等效的训练策略来提高性能。ECM在基准数据集上的动作定位方面显示出有希望的结果,而无需详细的帧级注释。先分类(Pre-classification)和后分类(Post-classificati
- iOS Swift Timer的销毁问题以及优化
程序员june
IOSiosswifttimer定时器
最近在同事的代码里看到了一些定时器使用上的问题,其实Timer虽然用起来看似很简单,但是稍不注意就会出现问题,造成一些偶发性的崩溃。下面这个是常见的写法,看似没问题,其实deinit方法是不会被调用的,Timer自然不会被销毁。classTimerTestViewController:UIViewController{@IBOutletweakvarlabelText:UILabel!varmyT
- Be more stronger
光辉岁月无声
Bemorestronger发表于网易博客2010-01-2321:50:02Yes,Iamweak.Iwanttobemorestrong.Please,letmefree.Don'tthinkabouteverythingforme.Yes,youlovemeallthetime.But,thelovemakesmyheartheavyandmakesmeweak.Yes,Itisjustmy
- 2018-12-10
冯大发
Charlottes'sWeb(ChapterⅠ)Words:hoghouse][hɔɡhaʊs]n.猪圈hogn.猪(供食用的)runt[rʌnt]n.(一胎中)最弱小的动物shriek[ʃrik]v.尖叫yell[jɛl]v.大喊sob[sɑb]v.抽噎;啜泣sopping[ˈsɑ:pɪŋ]a.湿透的=verywetweakling[ˈwiklɪŋ]n.瘦弱的人或动物carton[ˈkɑ:rt
- C++11:智能指针
BU冰糖雪梨里的梨PT
C/C++/C#基础c++智能指针
文章目录whatis智能指针?四种智能指针auto_ptrunique_ptrshared_ptrweak_ptr头文件memory名称空间stdwhatis智能指针?诸如auto_ptr以及C++11新增的shared_ptr和unique_ptr等智能指针模板使得管理由new分配的内存更容易。它们是类。如果使用这些智能指针(而不是常规指针)来保存new返回的地址,则不必在以后使用删除运算符。智
- 智能指针、左值引用右值引用、lambda表达式
是蜗牛骑士丫
c++
文章目录1.智能指针(shared_ptr、unique_ptr、weak_ptr)1.1智能指针用来解决什么问题1.2shared_ptr1.2.1shared_ptr内存模型1.2.2shared_ptr的基本用法1.2.3使用shared_ptr要注意的问题1.3unique_ptr1.4weak_ptr1.4.1weak_ptr的基本用法1.5智能指针的安全性问题2.左值引用与右值引用2.
- 《影响力》读书笔记(一)
Doney_8993
写在前面数次从不同的地方听闻这本书的书名,到了书店,一楼右拐,第一家书店的老板就说有,那么刚好。翻开这书,引言的第一个小标题是:影响力的武器。(我的脑海里划过这样的念头,OK,Ineednothingbutaweapon,causeIfeelsomuchweaknow.)从我考研失败两次的经验里面,我深深地体会到心态的重要性,你的心理感受如何直接作用于你当下的所作所为甚至是以后每一天的所作所为。而
- 实践-小效果 V
進无尽
1.搜索关键字高亮显示搜索关键字高亮显示Domeimage.png2.动态改变tableHeaderView的高度表头展开折叠.gifheadAllView.tapChangeFrame=^(void){[weakSelf.TbbeginUpdates];[weakSelf.TbsetTableHeaderView:weakHeadAllView];[weakSelf.TbendUpdates];
- Python设计模式(十八)【享元模式】
风神.NET
Python开发python设计模式class
即然选择了脚下这条路,就算是跪着都要把他走完。#-*-coding:utf-8-*-"""享元模式"""importweakrefclassFlyweightMeta(type):def__new__(mcs,name,parents,dct):"""name:类名parents:父类dct:包括类属性,类方法,静态方法等的字典:return:新类"""#设置实例池#创建value为弱引用对象的字
- C++:智能指针(共享指针,唯一指针,弱指针)
你那里下代码雨了吗
c++javajvm
//智能指针:在堆上分配时,可以自动销毁,不需要再搭配delete//作用域指针:unique_ptr唯一参考(指向这块内存的指针唯一,如果有两个指向同一个(复制),则后一个会指向释放的内存块,死掉,因此不能copy)//共享指针shared_ptr:实现复制,或者多个指针指向同一块内存最后一个指针的作用域生存期结束才会摧毁//弱指针:weak_ptr将shared_ptr赋值给weak_ptr,
- STM32F1 - 源码解析SystemInit()
零号-轩工
STM32F1-外设驱动stm32单片机嵌入式硬件
SystemInit1>SystemInit()调用位置2>SystemInit()函数3>SetSysClock()函数4>SetSysClockTo72()函数1>SystemInit()调用位置startup_stm32f10x_hd.s文件中:;ResethandlerReset_HandlerPROCEXPORTReset_Handler[WEAK]IMPORT__mainIMPORTS
- 使用Serializable接口来自定义PHP中类的序列化
ZyBlog
关于PHP中的对象序列化这件事儿,之前我们在很早前的文章中已经提到过__sleep()和__weakup()这两个魔术方法。今天我们介绍的则是另外一个可以控制序列化内容的方式,那就是使用Serializable接口。它的使用和上述两个魔术方法很类似,但又稍有不同。Serializable接口classAimplementsSerializable{private$data;publicfuncti
- lua weak表与gc
xiangjie256
lua
locala={}localb={}setmetatable(a,b)--这个table中的vaules就是weakb.__mode="k"--now'a'hasweakkeyslocalt1={}localt2={}--createsfirstkeya[t1]=0a[t2]=1--t2isempty,canbegct2={}collectgarbage()fork,vinpairs(a)dopr
- 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