1、判断点是否在矩形内部boolpointInRect(Point2fpt,Rectrect){if((pt.x>rect.x)&&(pt.y>rect.y)&&(pt.x=x3&&x1=x1&&x3=y3&&y1=y1&&y3out.x&&in.y>out.y&&in.x+in.width
“考完兴奋了一秒,怀念了一世”
ahaschool第二课堂
读着这些考生的留言,“考完兴奋了一秒,怀念了一世”、“毕业照是我们唯一照过很丑却没有扔掉的照片”、“你总说毕业遥遥无期,转眼就各奔东西”、“考完试,这辈子,这个班,基本是聚不齐了……”仿佛回到了梦萦魂牵的高三时光,亲爱的老师和同学们,你们好吗?01还记得当初最后一门考完离开考场,回头看大家的表情,一个个如此平静,心里突然失望了一下,高考就这么结束了,没有想象中拥抱痛哭的同学,也没有扔书扔本的庆祝活
每日一梦(2018.12.24)
咕噜咕噜鱼籽
梦见了橘猫和白猫,都在我奶奶家,白猫怀了橘猫的孩子。还有零碎的几段,记不住了。不行,无论如何也要写够一百字,已经坚持23天了,我不能在今天断掉。虽然有复活卡,可是我还不想用。还有二分钟,啊,我马上就要够一百字了。
第十二章〈一〉
汝此一生1985
接下来的运动会时光便是和东美一起度过。两人时不时就去超市买上一大袋东西,提着一大袋东西然后坐在操场上看着比赛消磨时光。下午两三点时刻,太阳很大,笼罩了整个操场,晒得人只想睡觉。秦嘉杨在篮球场挥洒热汗,东美躺在林召航腿上和林召航一起听着歌。拒绝去看秦嘉杨比赛,“我可不想看见他和他那个情人的亲密互动。”说着忿忿填进嘴里一个薯片。林召航拔下耳机,“哪来的情人?”东美:“姓篮名球”东美的嘴巴变成了“0”形
C++多线程的简单使用
好学松鼠
C++C++多线程asyncpromise
多线程的使用,本文主要简单介绍使用多线程的几种方式,并使用几个简单的例子来介绍多线程,使用编译器为visualstudio。一、AsyncFuture使用的知识点有std::async和std::future1、std::async函数原型templatefuture::type>async(launchpolicy,Fn&&fn,Args&&...args);功能:第二个参数接收一个可调用对象(
C++ 如何判断一个类型是STL容器的类型
好学松鼠
C++STL容器的类型
一、定义是否是容器类型#include#include#include//std::enable_if#include//std::pair#include#include#include#include#include#include#include#include//默认类型为falsetemplatestructIsContainerType{staticconstboolvalue=fal
关于玖玖屋的故事
顺其自然121
今天上午九点多,提前和我联系好的艳萍同学如约而至,接到她的电话,我在笃行楼门厅等她。老远就看见她,我喊她并向她招手,她看见我立马活蹦乱跳的奔向我,还想当年在这里上初中那会的活泼爱动。走到我跟前,她很自然地揽着我的腰,我引领她奔向二楼学校办公室,她揽着我的腰的手,捏着我腰里的肉,还和我开玩笑:老师,你腰里的肉肉呀,你胖了呀。我自我解嘲说:我今天穿的衣服比较显胖。艳萍和我上周五下午艳萍就给我打电话,说
离职风波:说好大家一起走,你却最终逗了留
房晓明
朋友小刚的公司突然搞了个改革:老板调低了底薪,增加了动态激励的部分。几个老员工对这件事情很不满意,于是约好了一起离职,结果小刚提交了辞职信之后,发现另外几个同事,根本没有提出离职!说好一起到白头,你却偷偷焗了油,这事要怎么办?一、吐槽之后,约定离职提起这场离职风波,还源自于老板去参加了一个培训。培训上的老师说:对于销售,不能给太高的底薪,要采取“低底薪、高提成”的模式来激励销售人员。老板听了这个建
紫砂壶养着养着养残了,专家一招让你的紫砂壶光彩照人!
阿南说
紫砂壶,由于其泥料的特殊性,泡茶经过茶汤是滋养,会变得油润起来,也就是包浆,把玩性很强。同时,也很容易被养残了,紫砂壶需要呵护,实在是已经残了,那就只有想办法补救了最常见的是茶垢,有的壶泡茶时间实在太久,又没注意打理,积累了很深的茶垢,这时候想清理,还是比较难的,拿湿毛巾蘸盐擦拭,多洗几遍,如果还是难清理,就用点牙膏吧,虽然不太建议使用牙膏,但牙膏去污能力还是很强的,如果用了牙膏,紫砂壶多用清水洗
Vue插槽:提升Vue组件灵活性的利器
anyup_前端梦工厂
Vue.js前端javascriptvue.js
一.介绍什么是插槽插槽是Vue.js中一种强大的组件封装机制,用于在组件间复用可以动态填充的内容。简而言之,插槽允许我们在组件的模板中定义一些可变的区域,在使用组件时,可以灵活地填充不同的内容进入这些区域。当我们的组件有一些需要在使用组件时才能确定的内容时,比如按钮、文字、图标等,使用插槽可以非常方便地将这些内容传递给组件。二.基础插槽1.单个插槽单个插槽也可以称为默认插槽(DefaultSlot
参松养心胶囊(转)
三闲居士a
参松养心胶囊胡洋上海三甲医院呼吸内科副主任医师参松养心胶囊是一种中成药,其主要成分为桑寄生、山茱萸、酸枣仁、龙骨、人参、土鳌虫、甘松、黄连、独活、丹参、赤芍。其临床上主要作用为治疗心律失常。参松养心胶囊治疗由于冠心病、心肌炎、风心病、高心病等心脏病引起的室性早搏显著优于慢心律,治疗由于劳累过度、酗酒、情绪激动等引起的功能性早搏效果显著,治疗阵发性房颤效果与心律平相当。目前公认的心律失常治疗药物,仍
Dev-C++头文件小Bug
蒟蒻pzjdsg666
bugc语言c++
Dev-C++应该是大家最常用的C++软件了吧,但它有几个小Bug。1、“万能头”众所周知,“万能头”在官方比赛中不能使用(你要用没人拦着你~呵呵),但在Dev-C++可以使用。所以,我们可以省掉好多头文件!如下:#includeusingnamespacestd;2、C语言头文件在Dev-C++中,你竟然可以使用C语言头文件(惊不惊喜~意不意外~)如下:#include3、iostream竟然包
如果面试官问你CAS,你还这么答,可能就要回去等通知了
爱玛士
程序员面试Javajava面试开发语言程序员架构
前言大家好,我是JAVA高级开发之路,一个总在为粉丝解决面试题的程序员。最近有几个粉丝说在面试面试中遇到了CAS的问题,连着几次面试都没有让面试官满意,区区CAS底层源码,怎能难倒咱们这届程序员们呢?都支棱起来,跟我一起来搞定CAS底层源码。什么是CASCAS的全称是Compare-And-Swap,它是CPU并发原语。它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原
GO Govaluate
qq_17280559
golang开发语言后端go
govaluate是一个用于在Go语言中动态求值表达式的库。它允许你解析和评估字符串形式的表达式,这些表达式可以包含变量、函数以及逻辑、算术和比较操作。它非常适合在运行时处理复杂的逻辑规则和条件表达式,而不需要重新编译代码。安装govaluategogetgithub.com/Knetic/govaluate基本使用govaluate的核心是Evaluate方法,它接受表达式字符串和变量值,并返回
不要再自作多情
静若小猴
自作多情的人呀,所有苦都是自讨苦吃。爱自作多情的那个人,总是害怕自己被忽略。在自作多情的时候,总是心有余悸而假装淡定。你想要的那些生活,只有你自己才明白,为什么想要。我永远忘不了一些画面,有温和的,有被迫的,有害羞的,有内心砰砰的,有伤痛的画面。自作多情的人呀,你的付出你的放低架子,你的热情,在别人眼里可能是一个小丑。爱自作多情的人呀,你的好你的真你的用心,在别人那里只会觉得你傻好欺负。在自作多情
第一次作业(请老师点评)
小九儿_y
姓名:小九儿_y日期:20180422作业:图片发自App心得:以前我特别羡慕那些在公共场合可以随意自如的人,很期待活成那样真实敢想敢做的人,正好听了北北老师的课,我知道我下决心的时候到了,打破舒适的自己,逼着自己入绝境。之前也曾独自改变过,不过一直停留在“想”的阶段,第1课,让我找到了自信,敢说,会说,爱说,相信这次有了这么多优秀的伙伴的陪伴,我能成为那个敢于真实表达自己的人。我坚信改变思维,提
武夷山之旅:天游峰
三七会萍海临风
天游峰来武夷山必爬的一座山峰。也称武夷山第一险峰。它海拔408.8米,共有484个台阶。相传是彭祖活到848岁时,殷纣王拿到长寿秘诀后想杀害彭祖。彭祖便逃到闽地武夷山,隐居在天游峰,后生二子取名彭武和彭夷。二子孝顺,为方便父亲上下山,凿出了848个台阶。天游峰有不走回头路的说法。前锋地势陡峭险峻,有几段路几乎是直上直下,需手足并用方可安全抵达。因整座山峰不高,爬着不累,但因建在悬崖峭壁上,整个攀爬
读贺新郎
光阴和遇见
贺新郎苏轼乳燕飞华屋,悄无人、桐阴转午,晚凉新浴。手弄生绡白团扇,扇手一时似玉。渐困倚、孤眠清熟。帘外谁来推绣户?枉教人梦断瑶台曲。又却是、风敲竹。石榴半吐红巾蹙,待浮花浪蕊都尽,伴君幽独。秾艳一枝细看取,芳心千重似束。又恐被、西风惊绿。若待得君来向此,花前对酒不忍触。共粉泪、两簌簌。译文:小燕子在大堂间欢快的飞来飞去,屋里静悄悄的,我看着飞来飞去的小燕子,十分惬意,梧桐树的影子渐渐地东移,太阳快
封装better-scroll
你喜欢吃青椒吗_c744
安装npminstallbetter-scroll--save-dev创建一个scroll.vue组件importBScrollfrom'better-scroll';//引入better-scroll//详细参数可以了解better-scroll的文档exportdefault{props:{probeType:{//probeType为3的时候,不仅在屏幕滑动的过程中,而且在momentum滚
橘子郡每天读《论语》第175天/共270天
橘子郡的天空
橘子郡每天读《论语》第175天/共270天14.4:子曰:“有德者必有言,有言者不必有德。仁者必有勇,勇者不必有仁。”14.5:南宫适问于孔子曰:“羿善射,奡荡舟,俱不得其死然。禹稷躬稼而有天下。”夫子不答。南宫适出,子曰:“君子哉若人!尚德哉若人!”注:“南宫适”也作“南宫括"。精华解读仁者必有勇:爱就是你的铠甲如果一个人有仁爱之心,爱家人,爱朋友,爱他人,那么在他关心的这些人陷入困局之时,他一
2021年1月写作复盘:1月的失败给2月的警醒
发发执笔
统计了1月的写作字数:55584。以前都没有这样统计过一个月的写作字数,所以也无法判定,这是多是少。这是目前每天千字文的积累。群里每周周报日更字数的榜首,一星期的字数都有5万了,是我一个月的字数。不与他人比较。1月的写作,作为今年坚持写作的基石。以后每个月,都要争取在此基础上有所进步。纵向对比,每个月进步一个方面,就好了。贪多嚼不烂,一步跨太远会摔跤。1月的写作情况并没有达到预期目标,表现在5个方
年
明_xj
还是一月凉意覆盖小城如荒晨初起大雾茫茫霜雨雪如泪萋悄新热闹人家初上淡日争吵雪霁树梢红布条手执书信微微笑淡红染蕴姿态好小河塘冰封他日融消最是一月花书信灯火人家有团聚亦有别茶一点心两滴雪一抔土两地书白日念年年今年不停缀安适少年游待明年依旧墙头欢颜在人心不旧寄飞鸟南渡北归游他日重逢不教菱花瘦白云载一口酒等归日花开重楼
实时监控或查看系统资源使用情况的工具——TOP
summer@彤妈
linux
top命令可以显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率(MEM)、CPU占用率等。默认进程以CPU的占用率进行排序。输入大写M可以切换成使用内存占用率排序;输入大写P可以切换为使用CPU占用率排序。top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法:(实时监控系统资源使用情况图)统计
python的map(如何印出来)
summer@彤妈
python
num=[1,2,3,4,5,7,9]#res=[]#foriinnum:#res.append(i**2)#print(res)#defnum1(array):#res=[]#foriinnum:#res.append(i**2)#returnres#print(num1(num))#终级版本#defmap_test(func,array):#ret=[]#foriinarray:#res=fu
韦世豪比肩武磊 留洋指日可待 捧杀国足未来该叫停了
体坛消息
尤记得当年武磊出国前,网上争议不断。当时还曾写过多篇文章期待武磊留洋。如今武磊在西甲表现平平,尽管没有特别亮眼的成绩,但当时的热度可以说是无人能及。尽管争议颇多,但是武磊留洋之旅带着无数期盼和关注的。财大气粗的恒大如今恒大的韦世豪再次站在了国内球迷的眼前。恒大队的球衣数量一直庞大,实力也在中超可以说是无人能出其右。无论是的当初的潜力股球员,还是后面规划球员,都让很多人感叹,真是有钱任性,哪个俱乐部
让一个男人崩溃到底有多容易?
糖墩儿_
帝都,夜已深,4个许久未见面的90后男人,在一个僻静的小餐馆,喝酒聊天。聊着聊着,有人怒发冲冠,一连干了好几杯;有人表情管理已经失去控制,想大哭一场;有人躲到角落接了个电话,一脸无奈地想要离开;有人全程只说了简短的几句话,瞬间震惊全场。他们身上究竟发生了什么呢?往下看1.秃然:英年早秃,经常加班,很凶的那种。我的领导不到下班点,不组织开会,开完会事儿也接二连三地来了,不加班活儿就干不完。一周5个方
HBase介绍
mingyu1016
数据库
概述HBase是一个分布式的、面向列的开源数据库,源于google的一篇论文《bigtable:一个结构化数据的分布式存储系统》。HBase是GoogleBigtable的开源实现,它利用HadoopHDFS作为其文件存储系统,利用HadoopMapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务。HBase的表结构HBase以表的形式存储数据。表有行和列组成。列划分为
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