- 在 Azure 100 学生订阅中新建 Ubuntu VPS 并部署 Mastodon 服务器
shelby_loo
服务器azureubuntu
今天想和大家分享一下如何在Azure的100学生订阅中,创建一台UbuntuVPS,并通过Docker部署Mastodon服务器。Mastodon是一个开源的社交网络平台,允许用户创建自己的实例,类似于Twitter,但更加去中心化。Docker则是一个容器化技术,能够让我们轻松地打包和运行应用程序,使得部署和管理变得简单高效。使用到的Docker和Mastodon软件简介Docker是一种开源平
- 【Python】读取elf文件,更新a2l文件中变量地址
kook 1995
python汽车
前言a2l文件是汽车行业常见的用于标定的数据库文件。在开发过程中,通常由MATLAB或者Excel生成a2l文件,但变量的地址是需要loadelf文件去更新的,一般使用的是Vector的CANape工具。下面记录和分享一下通过脚本去更新a2l文件。1使用CANoe中的ASAP2Updater1.1ASAP2Updater工具路径一般在CANoe安装路径下,比如:C:\ProgramFiles\Ve
- macos 一直报错 XXX 将对你的电脑造成伤害。你应该将它移到废纸篓
名字忘了取了
经验macos
Docker将对你的电脑造成伤害。你应该将它移到废纸篓今天碰到一个神奇的问题,Docker忽然运行不了了,然后将Docker卸载重装,接着就出现了这个问题,电脑一直弹框这个错误,将Docker卸载也不行,重启之后就一直弹出这个错误解决步骤卸载应用,卸完之后要清到废纸篓删除开启启动项ls~/Library/LaunchAgentsls/Library/LaunchAgentsls/Library/L
- (双系统)Ubuntu+Windows解决grub引导问题和启动黑屏问题
testtraveler
ubuntuwindowslinux
Introduction解决双系统的Windows的启动项失踪和grub正常的情况下启动Windows系统出现黑屏的问题。Note:我的系统是Ubuntu24.04LTSdesktop,安装了双系统(先安装Win,再安装Ubuntu)文章目录IntroductionStage1:我看不到任何让我选择系统的界面Stage2:对GRUB的文件的介绍,了解和编辑对GRUB文件的概要介绍深入了解G
- MAC AndroidStudio模拟器无网络
Cui晨
网络服务器运维
先确认PC端是正常访问网络的;模拟器端修改Wifi设置:设置-网络和互联网-WALN设置按照上图修改;IP设置:从DHCP修改为静态,IP地址:10.0.2.16,网关:10.0.2.2,DNS:自己电脑端的DNS或114.114.114.114;
- mac配置 iTerm2 使用lrzsz与服务器传输文件
YAIMZA
Linuxmacos服务器lrzsz
mac配置1.安装支持rz和sz命令的lrzszbrewinstalllrzsz2.下载iterm2-send-zmodem.sh和iterm2-recv-zmodem.sh两个脚本#克隆仓库gitclonehttps://github.com/aikuyun/iterm2-zmodem~/iterm2-zmodem#进入到仓库目录cd~/iterm2-zmodem#设置脚本文件可执行权限chmo
- pycharm python pyqt5
qq_24158561
python开发语言
#-*-coding:utf-8-*-#Formimplementationgeneratedfromreadinguifile'UI1.ui'##Createdby:PyQt5UIcodegenerator5.13.0##WARNING!Allchangesmadeinthisfilewillbelost!#PyCharm,从Tools->ExternalTools->QtDesigner打开Q
- redis.call()和redis.pcall()的区别
荆州克莱
面试题汇总与解析springcloudspringbootspring技术css3
redis.call()与redis.pcall()很类似,他们唯一的区别是当redis命令执行结果返回错误时,redis.call()将返回给调用者一个错误,而redis.pcall()会将捕获的错误以Lua表的形式返回redis.call()和redis.pcall()两个函数的参数可以是任意的Redis命令:eval"returnredis.call('set','foo','bar')"0
- 在MacOS上怎样远程调试PC的内核驱动程序
捕鲸叉
软件调试和诊断macos软件调试诊断调试
在macOS上远程调试Windows或LinuxPC的内核驱动程序是一个复杂的过程,因为macOS并没有直接支持内核调试的工具。通常需要借助交叉调试工具链和虚拟化技术来实现。以下是详细的步骤和方法,分为远程调试Windows内核驱动程序和远程调试Linux内核驱动程序两部分。1.远程调试Windows内核驱动程序(从macOS)由于Windows内核调试工具(如WinDbg)不直接支持macOS,
- C#关于架构框架与的CRUD思考
Daniel的万事通杂货铺
Winform应用开发c#架构开发语言
在C#中进行CRUD(创建、读取、更新、删除)操作时,选择合适的架构框架对于项目的可维护性、扩展性和性能至关重要。以下是一些关于CRUD操作和架构框架的思考点:1.架构模式MVC(Model-View-Controller):这是一种广泛使用的Web应用架构模式,特别是在ASP.NETMVC中。它将应用程序分为三个主要部分:模型(数据和业务逻辑)、视图(用户界面)和控制器(处理输入并响应)。这种分
- Java ee 文件操作和IO
5xidixi
java-eejava
字节输入流字节输入流通过FileInputStream实现对文件的读取操作。通过文件路径来创建一个输出流,通过一个byte数组来接受读取到的文件内容,用read方法进行循环读取。当返回-1时则表示读取完成。关闭输入流。importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException
- 大数据框架之kafka详解
xingchensuiyue
大数据zookeeperkafkakafka
目录1kafka介绍1.1kalka是什么?1.2Kafka内部原理1.3为什么需要消息队列?2Kafka的消息系统语义3Kafka生产过程分析3.1写入方式3.2分区(Partition)3.3副本(Replication)3.4Producer写入流程3.5消费者组3.6消费方式扩展:纠删码技术1kafka介绍1.1kalka是什么?可以简单的将kafka看做是一种消息队列,启动生产者与消费者
- v10 server 安装EPEL、PowerTools 存储库【1】
风儿你慢慢吹
Linuxlinux
步骤1:启用PowerTools存储库要设置滚动,启动终端并安装核心DNF插件如下。$sudodnfinstalldnf-plugins-core安装后,转到下一步并启用EPEL存储库。第2步:启用EPEL存储库下一步是安装EPEL。EPEL是ExtraPackagesforEnterpriseLinux的首字母缩写词,是一个存储库,提供一组来自Fedora默认情况下不包含在RedHat和RedH
- python调用window库全屏截图生成bmp位图学习
myzzb
python学习图像处理算法windows
importioimporttimeimportstructimportctypess=time.time()gdi32=ctypes.windll.gdi32user32=ctypes.windll.user32#定义常量SM_CXSCREEN=0SM_CYSCREEN=1#缩放比例zoom=1screenWidth=int(user32.GetSystemMetrics(SM_CXSCREEN
- python双端监控屏幕传输显示
myzzb
python服务器图像处理网络学习前端
importioimporttimeimportsocketimportpyautoguidefcapture_and_send_image():whileTrue:try:#截图screenshot=pyautogui.screenshot()#缩小图片new_size=(screenshot.width//10,screenshot.height//10)resized_screenshot=
- 红队工具使用全解析:揭开网络安全神秘面纱一角
渗透小白鼠
web安全安全
红队工具使用全解析:揭开网络安全神秘面纱一角B站红队公益课:https://space.bilibili.com/350329294学习网盘资源链接:https://pan.quark.cn/s/4079487939e8嘿,各位网络安全爱好者们!在风云变幻的网络安全战场上,红队宛如一支神秘且精锐的特种兵部队,手持一系列超厉害的工具,冲锋陷阵在虚拟世界,挖掘系统潜藏漏洞,模拟实战攻击情境,为筑牢网络
- JPA使用原生SQL实现分页查询、排序
weixin_45834569
sqlhibernate数据库
1.使用PageRequest.of静态方法创建一个PageRequest对象或者Pageable接口;PageablepageRequest=PageRequest.of();2.传入分页和排序的参数;intpage=10;intsize=5;PageRequestpageRequest=PageRequest.of(page,size,Sort.by("account"));3.使用@Quer
- 消息中间件的基础概念入门
全镇人的希望
概念消息平台kafka
目录一、什么是消息中间件1.1、简介1.2、消息中间件的主要作用解耦合异步通信负载均衡可靠性与持久性消息路由与调度削峰事务支持监控与审计跨平台和跨语言支持二、常用消息中间件对比2.1、RabbitMQ2.1.1、特点2.1.2、适用场景2.2、ApacheKafka2.2.1、特点2.2.2、适用场景2.3、ActiveMQ2.3.1、特点2.3.2、适用场景2.4、Redis(使用Pub/Sub
- 域名不变根据系统判断手机和端脑h5pc自动转发不同请求
快乐小运维
智能手机
同一个域名,手机端和电脑端请求的页面不一样,但是域名要求不变,现在有两个前端代码,分别跑在两个docker里面,一个为app1另外一个是app2,暴露的端口分别是8080,8081,通过nginx将请求反代到两个docker容器中,后端接口端口8082nginx配置如下配置一upstream.confupstreamapp1{server127.0.0.1:8080weight=10;}upstr
- python html解析查找字符串_python爬虫之html解析Beautifulsoup和Xpath
邓凌佳
pythonhtml解析查找字符串
BeautiifulsoupBeautifulSoup是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据。BeautifulSoup用来解析HTML比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支持lxml的XML解析器。BeautifulSoup3目前已经停止开发,推荐现在的项目使用BeautifulSoup4。Beautii
- mac地址是用来做什么的
毛毛的毛毛
macos网络
MAC地址(MediaAccessControlAddress)是一个唯一的硬件地址,用于在网络中标识设备。每个网络接口卡(NIC)都有一个唯一的MAC地址。MAC地址是数据链路层(OSI模型的第二层)使用的地址,主要用于局域网(LAN)内设备之间的通信。MAC地址的作用:设备标识:MAC地址在局域网(LAN)中唯一标识设备,类似于设备的身份证号。每个网络设备(如计算机、路由器、交换机、手机、打印
- oracle同步数据adg_oracle11g ADG主备切换
weixin_39536630
Oracle数据库主备切换日志实时应用备库切换状态
1、主库操作将主库切换成备库点击(此处)折叠或打开selectopen_mode,database_role,protection_mode,protection_level,switchover_statusfromv$database;altersystemswitchlogfile;altersystemarchivelogcurrent;alterdatabasecommittoswitc
- mysql rr实现原理_MySQL 锁 ——No.4 当前读、快照读、快照读实现原理及RC|RR 隔离级别下的 InnoDB 的非阻塞读如何实现...
weixin_39740346
mysqlrr实现原理
当前读诸如select...lockinsharemode、select...forupdate、update、delete、insert均为当前读;当前读本质上是加了锁的增删该查语句,无论上的是共享锁还是排他锁均为当前读.这些语句被称为当前读的根本原因是因为它读取的是记录的最新版本,并且在读取之后,还需保证其他事务不能修改当前记录,对读取的记录加锁;上面的除select语句加的是共享锁外,其他的
- 初探 OpenTelemetry
程序员Live
golang分布式
什么是OpenTelemetryOpenTelemetry由OpenTracing和OpenCensus项目合并而成,是一组规范、工具、API和SDK的集合。使用它来检测、生成、收集和导出遥测数据(Metrics、Logs和Traces),以帮助运维开发人员分析软件的性能和行为。为众多开发人员带来Metrics、Traces、Logs的统一标准,三者都有相同的元数据结构,可以轻松实现互相关联。Op
- linux dns劫持转发,linux的dns被劫持(解决方案)
Beyond Imp
linuxdns劫持转发
如何解决linuxdns被劫持?1.首先如何确定是否被劫持:那么查询一个并不存在的域名nslookupmmmmm.happy如果返回了一个ip地址,说明dns被劫持了,假设此ip地址为:123.34.5.6那么用8.8.8.8域名服务器解析一下此错误域名试试:nslookupmmmmm.happy8.8.8.8输出的内容如下:[root@masteretc]#nslookupmmmmm.happy
- Docker容器管理实战:从入门到精通
docker
在当今的软件开发与部署中,Docker作为一种流行的容器化技术,极大地简化了应用的打包、分发和运行过程。接下来,就带你深入了解Docker容器管理的实战技巧。安装Docker非常简单,以Ubuntu系统为例,只需在终端执行几条命令,就能快速完成安装。安装完成后,便可以开启容器之旅。首先是镜像的获取,通过dockerpull命令,如dockerpullubuntu,就能从DockerHub上拉取Ub
- AI赋能Flutter开发:用AI写代码工具ScriptEcho加速你的学习之旅
前端
Flutter凭借其跨平台、高性能和美观的UI而备受青睐,成为越来越多开发者的首选框架。然而,对于新手而言,Flutter的学习曲线相对陡峭,UI设计和代码编写效率是常见的痛点。学习Flutter,你可能会面临繁琐的代码编写、复杂的布局管理以及对各种组件的理解等挑战。但别担心,现在有了AI写代码工具,例如ScriptEcho,可以显著降低学习门槛,加速你的学习进程。AI赋能Flutter开发:Sc
- 从头到尾快速学习一遍Linux,高级工程师多年实践实战经验精华总结和实例示例,第七章:Linux精通学习路线及各个大厂优秀的学习资料
代码讲故事
服务器学习linux服务器运维网络资料教程
从头到尾快速学习一遍Linux,高级工程师多年实践实战经验精华总结和实例示例,第七章:Linux精通学习路线及各个大厂优秀的学习资料。Linux精通学习路线及各个大厂优秀的学习资料看见好东西先收集起来,待时间充裕集中消灭他们。tcp_wrappers################################Linux系统下的防火墙主要分为两层:第一层是对IP进行过滤的iptables,第二层
- Linux安装docker,安装配置xrdp远程桌面
代码讲故事
服务器linuxdockerrdpxrdp远程桌面远程连接图形化
Linux安装docker,安装配置xrdp远程桌面。1、卸载旧版本docker卸载旧版本docker命令yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine现在就是没有旧版本的dock
- 【YashanDB知识库】YCM Monit进程频繁误告警
数据库
本文内容来自YashanDB官网,原文内容请见https://www.yashandb.com/newsinfo/7919222.html?templateId=171...【问题分类】功能使用【关键字】YCM、Monit【问题描述】频繁收到告警邮件:Monit进程停止服务【问题原因分析】服务器资源占用较高情况下Monit进程检测的动作失败了。【解决/规避方法】调整Monit进程检测间隔时间,由默
- 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