- IntelliJ IDEA 路径问题总结:如何配置并显示当前工作目录
2301_79306982
开发语言javaintellij-idea
问题一:如何查看和配置IntelliJIDEA的工作目录工作目录(WorkingDirectory)决定了相对路径的起点当前工作目录究竟是什么?如何在IntelliJIDEA中验证和配置工作目录?解决方法通过代码显示当前工作目录使用以下代码打印运行时的工作目录:System.out.println("Currentworkingdirectory:"+System.getProperty("use
- 【Python系列PyCharm控制台pip install报错】如何解决pip安装报错ModuleNotFoundError: No module named ‘requests’问题
lyzybbs
全栈Bug解决方案专栏pythonpycharmpip开发语言idesklearnpandas
【Python系列PyCharm控制台pipinstall报错】如何解决pip安装报错ModuleNotFoundError:Nomodulenamed‘requests’问题摘要在使用PyCharm开发Python项目时,经常需要在控制台(Terminal)或Run窗口里通过pipinstall安装第三方包。但有时会出现诸如ModuleNotFoundError:Nomodulenamed're
- 嘉为蓝鲸可观测系列产品入选Gartner《中国智能IT监控与日志分析工具市场指南》
嘉为蓝鲸
可观测嘉为蓝鲸智能运维Gartner可观测
直达原文:嘉为蓝鲸可观测系列产品入选Gartner《中国智能IT监控与日志分析工具市场指南》2025年5月,国际研究机构Gartner发布了《中国智能IT监控与日志分析工具市场指南》(MarketGuideforIntelligentITMonitoringandLogAnalysisToolsinChina),嘉为蓝鲸全栈智能可观测中心·鲸眼凭借嘉为蓝鲸日志中心与嘉为蓝鲸应用性能观测中心(APM
- rules写成动态
会点法律的程序员
前端javascriptvue.js
拖拽排序和必填校验联动(rules写到computed里)computed:{rules(){construles={};this.form.feedList.forEach((item,idx)=>{rules[`feedList.${idx}`]=[{required:true,message:`路线评价动态${idx+1}待填写,请填写完毕提交`,trigger:'change'}];});
- IntelliJ IDEA 中 Update Project 与 Git Pull
李少兄
IDEAGitintellij-ideagitjava
前言在IntelliJIDEA的版本控制工具中,UpdateProject和GitPull是两个常被开发者混淆的功能。尽管它们都用于同步远程仓库的代码更新,但两者的底层机制、使用场景及潜在风险存在显著差异。一、概念与原理:GitPull与UpdateProject的本质区别1.GitPull:Git原生的“拉取+合并”操作定义:gitpull是Git的原生命令,其本质是gitfetch+gitme
- python 文件路径
相交的直线
pythonpythonpath
获取运行文件路径@staticmethoddefget_run_dir(): script_path=sys.argv[0] full_path="" ifscript_path[0]!="/": full_path="%s/%s"%(os.getcwd(),script_path) else: full_path=script_path returno
- [SQLSERVER][SQL]监控SQlserver存储过程
awonw
sqlserversqlserversql数据库
USE[master]GO/******Object:StoredProcedure[dbo].[sp_who_run_plus]ScriptDate:2021-09-1016:51:26******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROC[dbo].[sp_who_run_plus]ASBEGINSELECTDB_NAME(er.[
- centos 7 安装NVIDIA Container Toolkit
几道之旅
centoslinux运维
要在CentOS7上离线安装NVIDIAContainerToolkit,需确保已安装NVIDIA驱动和Docker环境。以下是完整步骤及注意事项:⚙️一、环境准备验证NVIDIA驱动运行nvidia-smi确认驱动已正确安装,若未安装需先离线安装驱动:下载对应GPU型号的驱动包(如NVIDIA-Linux-x86_64-xxx.run)。禁用系统自带nouveau驱动(修改/etc/modpro
- 设备管理 -- Udev(二)U盘挂载
273992029
linuxudev
1、检测U盘/etc/udev/rules.d/99-usb-hotplug.rulesACTION=="add",SUBSYSTEM=="block",ENV{ID_BUS}=="usb",ENV{ID_FS_TYPE}=="?*",RUN+="/home/lorentz/usb_hotplug.shadd%k"ACTION=="remove",SUBSYSTEM=="block",ENV{ID
- 写Mybatis没代码提示?试试这个插件!
最强Mybatis代码提示插件——MybatisCodeHelperPro在写Mybatis的时候,XML经常没有代码提示,开发体验很差。最近发现了IntelliJ下的插件MybatisCodeHelperPro,写Mybatis代码时全程代码提示,非常方便!✨#{}语句智能提示,支持复杂类型写SQL时输入#{},插件会自动提示可用参数,支持对象属性的深度提示,极大减少拼写错误和查找参数的时间。✨
- Mac电脑如何搭建基于java后端的开发的各种工具服务
1.确认Mac的CPU架构首先,确认您的Mac是使用Intel还是AppleSilicon(如M1芯片)架构:uname-m如果返回x86_64,表示是Intel架构。如果返回arm64,表示是AppleSilicon架构。2.安装IDEADownloadIntelliJIDEA3.安装mavenDownloadApacheMaven–Maven然而IDEA里一般默认使用其自带的maven也可以配
- Kotlin作用域函数:掌握apply/let/run/with/also精髓
每次的天空
android学习javakotlin
一、作用域函数详解1.apply:对调用对象进行配置或操作,并返回该对象本身。接收者引用:this(可省略,直接调用接收者成员)返回值:接收者对象本身(T)核心用途:对对象进行初始化或配置,返回配置后的对象null安全:不支持(接收者需非null)作用域:接收者作用域(this指向接收者)openvalsessionHandler:Handlerbylazy{Handler(HandlerThre
- el-form 中的rules规则校验validate不起作用的可能原因
不想上班只想要钱
vue前端vue.jsjavascript前端
el-form中的rules规则校验validate不起作用的可能原因错误代码:repeatPassword:{required:true,trigger:'blur',validator:(rule,value,callback)=>{if(value){if(value
- 扣⼦coze智能体开发与应⽤(一)
1.Ai应⽤开发简介,coze注册与初体验1.1Ai应⽤开发简介1.1.1什么是AI应⽤开发⾸先明确⼀下AI应⽤开发的定义。⼴义来说:AI应⽤开发是指利⽤⼈⼯智能(ArtificialIntelligence,AI)技术来设计、构建和维护软件应⽤程序的过程。在我们教程⾥的AI应⽤开发指的是:利⽤⼤语⾔模型(LLM)应⽤开发平台快速搭建⽣产级的⽣成式AI应⽤。例如:如果你是⽂案编辑⼈员,你可以利⽤可
- 分页器封装
牧杉-惊蛰
javascript前端vue.jselementui
项目场景:提示:这里简述项目相关背景:在做项目中,我们对于一般的element组件使用时都会进行二次封装,这个就是对分页器的封装方案:提示:这里填写该问题的具体解决方案:1:组件import{scrollTo}from'@/utils/scroll-to'constprops=defineProps({total:{required:true,type:Number},page:{type:Num
- 2.多线程
一个处女座的暖男程序猿
java
##**一、什么是线程、什么是进程?**进程可以理解为一个应用程序。比如微信,QQ等,而线程是进程的最小调度单位,一个进程有很多线程,至少有一个线程。####**==创建线程有三种方式==**:(1)继承Thread类,重写Run()方法。这种创建方式优点是编写简单,但是扩展性差。(2)实现Runnable接口,重写Run()方法。(3)实现callable接口,重写call()方法,创建Futu
- 基于尤瓦尔·赫拉利AI观点的深度解析
勤奋的知更鸟
人工智能人工智能
引言人工智能(ArtificialIntelligence,AI)正以前所未有的速度从理论构想走向广泛的社会实践。从优化供应链到辅助医疗诊断,从金融风控到内容推荐,AI技术正成为重塑全球经济结构和社会形态的核心驱动力。然而,伴随其巨大潜能而来的,是同等量级、甚至更为复杂的潜在风险与未知挑战。在众多关于AI的讨论中,尤瓦尔·赫拉利凭借其宏大的历史视野和对人性的深刻洞察,提出了一系列极具警示意义的观点
- dockerfile命令及构建
kong@react
后端springbootjavaspring开发语言
一,dockerfile常用命令命令介绍FROM–指定基础镜像LABEL作者信息USER切换运行属主身份WORKDUR切换工作目录ENV用于docker容器设置环境变量RUN用来执行命令行的命令COPY把宿主机文件复制到镜像中去ADD将文件路径复制添加到容器内部路径EXPOSE为容器打开指定要监听的端口以实现与外部通信二,dockerfile命令使用介绍1.FROM(指定基础镜像)FROM:[ta
- 命令行窗口-隐藏黑窗口
肆意飞扬
cmdAndWindowssql数据库database
要想cmd运行时隐藏黑窗口,最好的方法是使用vbs文件实现:1、新建run.vbs,编辑内容:setws=WScript.CreateObject("WScript.Shell")ws.Run"run.bat",0run.bat放到同目录下。运行run.vbs,没有cmd窗口弹出只可以隐藏cmd窗口,但不能隐藏bat中打开的第三方窗口,如yy.bat的内容为:WinRAR.exexD:\mm.ta
- Idea新UI
shine_du
intellij-ideauijavaide
轻松上手Idea新UI:开启高效编程新体验在软件开发领域,IntelliJIDEA一直以其强大的功能和出色的性能深受开发者喜爱。而其推出的newui,更是为我们带来了全新的操作体验,进一步提升了开发效率。今天,就来详细讲讲如何启用Idea的newui。一、为何要启用newuiIdea的newui旨在打造一个更加简洁、高效且美观的开发环境。它重新设计了界面布局,减少了视觉上的繁杂元素,让开发者能够更
- idea如何拉取git仓库新的项目,有git仓库地址
s甜甜的学习之旅
intellij-ideagitjava
在IntelliJIDEA中拉取一个新的Git仓库项目,你可以按照以下步骤操作:打开IntelliJIDEA。如果你还没有打开任何项目(即处于欢迎界面),请选择“GetfromVCS”(从版本控制系统获取)。如果你已经在另一个项目中工作,那么你需要先关闭当前的项目。可以通过File->CloseProject来关闭当前项目,然后在欢迎界面上选择“GetfromVCS”。在弹出的对话框中,你会看到几
- RapidOCR4j项目学习
cmdch2017
学习
https://rapidai.github.io/RapidOCRDocs/install_usage/api/RapidOCR/#_1功能实现多平台OCR识别:支持Windows、Linux、macOS(包括Intel和ARM架构)多种图片输入方式:支持图片路径(Path)、BufferedImage、byte[]、OpenCV的Mat四种输入类型模型推理:通过ONNXRuntime加载和推理
- 海光x86与Intel/AMD x86的差异解析:技术演进、架构博弈与未来之路
tianyuanwo
x86海光AMD
在信息技术领域,x86架构作为计算产业的基石,历经四十余年演进,形成了以Intel、AMD为主导的全球生态,而海光x86的崛起,则标志着中国在自主可控计算赛道上的关键突破。本文将从技术起源、指令集架构、硬件设计、生态兼容性及未来趋势五个维度,深度剖析海光x86与Intel/AMDx86的差异。一、技术起源:授权合作vs.自主创新1.海光x86:AMD授权下的国产化突围海光x86的技术根基源于AMD
- 高效能服务器选择 关键因素
在选择高效能服务器时,需综合硬件性能、扩展能力、场景适配及成本效益四大维度,以下是关键因素分析:一、核心硬件性能指标处理器(CPU)架构与核心数:多核CPU(如AMDEPYC9004系列或IntelXeonPlatinum8480+)支撑高并发任务,AI训练场景需128核以上配置。主频与缓存:高主频(≥4.2GHz)加速单线程任务,大容量L3缓存(如128MB)优化数据密集型应用。内存(R
- 使用Hugging Face的BGE模型进行文本嵌入
lirxx
人工智能langchain
在文本嵌入领域,BGE(BeijingAcademyofArtificialIntelligenceEmbeddings)模型是开源界的佼佼者。由北京智源人工智能研究院(BAAI)开发,BGE模型以其高效的嵌入性能和开放性获得了广泛的认可。本文将通过HuggingFace平台展示如何使用BGE模型进行文本嵌入。技术背景介绍文本嵌入是将文本数据转换为可计算向量的过程,这在自然语言处理(NLP)中具有
- 读取dds和创建成纹理(来自ogl红宝书)
dankokoko
OPENGLc++
文章目录读取dds创建纹理读取dds//Enoughmipsfor16Kx16K,whichistheminumumrequiredforOpenGL4.x#defineMAX_TEXTURE_MIPS14//EachtextureimagedatastructurecontainsanarrayofMAX_TEXTURE_MIPS,对于16Kx16K的纹理也是足够的//ofthesemipmap
- rhel.amd64 和 rhel.arm64两个架构的区别
ma451152002
架构amd64arm64
指令集与设计哲学的区别rhel.amd64基于x86_64(即AMD64)架构,采用复杂指令集计算(CISC)设计,强调高性能计算能力,适合桌面、服务器等对算力要求高的场景。而rhel.arm64基于ARMv8-A架构,采用精简指令集计算(RISC)设计,注重能效比,适合移动设备、嵌入式系统等低功耗场景。359硬件兼容性与应用领域amd64架构由AMD和Intel共同主导,兼容传统x86软件生态,
- MyBatis 的一级缓存导致的数据一致性问题分析
小时候的阳光
javamybatis缓存隔离级别事务
老生常谈的异常问题,这里记录一下,涉及MyBatis的一级缓存和数据库隔离级别目录问题说明问题原因问题解决问题说明下面一段示例的业务逻辑代码:@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)@OverridepublicvoidflushOrderDetail(FlushFormform){//
- C#在Process命令行运行时找不到%PROGRAMFILES%文件夹
Mirralll
c#CLI
最近在写一个小程序,能调用其他程序CLI命令进行自动化输出awaitTask.Run(()=>{ //处理各种文件夹路径 stringexePath=@"%PROGRAMFILES%\JawsetPostshot\bin\postshot-cli.exe";});但是在Process.Start();的时候发现程序报错,提示找不到路径目标。纳闷!我用cmd和文件夹浏览器,都确定了没问题,但在程
- Spring Boot 2.x 项目搭建 (一)
不愿意透露姓名的樊同学
javaspringboot后端java
以下是基于SpringBoot2.x(兼容JDK1.8)的项目搭建指南及Markdown文档生成方案,整合了多个搜索结果中的最佳实践:一、项目初始化1.使用SpringInitializr创建项目步骤:访问start.spring.io或通过IDE(如IntelliJIDEA)的SpringInitializr向导创建项目。选择以下配置:Project:MavenLanguage:JavaSpri
- 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