- FastD:高性能PHP API框架
钟冶妙Tilda
FastD:高性能PHPAPI框架fastD:rocket:AhighperformancePHPAPIframework.项目地址:https://gitcode.com/gh_mirrors/fa/fastD项目介绍FastD是一个专为高性能API场景设计的PHP框架,它充分利用了Swoole的高性能特性,为开发者提供了一个轻量级且易于扩展的开发环境。FastD不仅支持快速构建API服务,还提
- Go与PHP性能对比分析
大0马浓
golangphp开发语言
以下是Go1.22版本和PHP8.3版本+Swoole的性能对比一、核心性能指标对比指标Go(1.22版本)PHP(8.3版本+Swoole)差距倍数单请求响应时间0.8ms(JSON序列化)2.5ms(Swoole协程模式)3.1倍并发吞吐量18万QPS(4核8G)5.2万QPS(Swoole+OPcache)3.5倍内存占用50MB/协程(百万级并发)180MB/进程(协程池模
- 【黑科技】:Laravel 项目性能提升 20 倍
frandiy
laravelphpthinkphp
令人激动的黑科技:Laravel项目性能提升20倍这个项目能够在无需修改任何代码且无需第三方扩展的前提下,将你的Laravel项目性能提高20倍。它仅依赖于PHP原生的pcntl、posix、fiber和sockets。项目灵感起因是看到官方发布的PHP8.1更新中引入了fiber特性,看到这则消息时我非常激动,我仿佛看到了PHP的更多可能性。再结合我对Swoole和Workerman的工作流程了
- [黑科技]无需修改任何代码和扩展将你的Laravel项目性能提高20倍
frandiy
laravel
我要分享一个令人激动的黑科技:这个项目能够在无需修改任何代码且无需第三方扩展的前提下,将你的Laravel项目性能提高20倍。它仅依赖于PHP原生的pcntl、posix、fiber和sockets。项目灵感起因是看到官方发布的PHP8.1更新中引入了fiber特性,看到这则消息时我非常激动,我仿佛看到了PHP的更多可能性。再结合我对Swoole和Workerman的工作流程了解得出结论:它能够完
- WebSocket私信聊天(无群聊天)
大白d98
phpwebsocketswoole
//php后端on('open',function(Swoole\WebSocket\Server$server,$request){//$server->push($request->fd,'欢迎进入我们的聊天室~');});//接收客户端发送的信息//$frame是Swoole\WebSocket\Frame对象,包含了客户端发来的数据帧信息//$frame->fd代表客户端的唯一标识客户id
- docker 构建 lnmp 环境
dockerlnmp
使用docker-compose编排的一套lnmp环境,并补充了nginx/php/mysql/redis的配置文件,补充了php的常用扩展。给到了fpm/swoole的部署、运行示例。可以方便大家快速搭建开发、生产环境、学习docker技能(涉及了镜像打包、Entrypoint、yml高大上的写法extends&引用)。github完整示例:docker-lnmpdocker-lnmp.envC
- Swoole 如何理解,能解决你项目中的哪些痛点
ac-er8888
swoole后端
Swoole是一个面向生产环境的PHP异步网络通信引擎,它使得PHP开发人员能够编写高性能的异步并发TCP、UDP、UnixSocket、HTTP、WebSocket服务。以下是对Swoole的理解以及它能解决的项目痛点:对Swoole的理解异步非阻塞:Swoole支持异步非阻塞I/O操作,这意味着它可以在不阻塞主线程的情况下处理I/O操作,如文件读写、网络请求等。这大大提高了程序的并发处理能力和
- PHP 高性能框架 Workerman 凭什么能硬刚 Swoole ?
A码农先森
技术杂谈phpswooleworkerman
大家好,我是码农先森。一次偶然看到了国外某机构针对PHP周边生态框架及扩展的性能测试排行榜,看到Workerman竟遥遥领先Swoole。在我们PHP程序员现有的认知里,Swoole作为一个基于C/C++语言编写的扩展程序,性能居然落后了。第一眼看到这个结果的时候,我的心情久久不能平复,脑子里不经的浮现着「难道C/C++比PHP的性能还差了?」。说到Workerman和Swoole,就想起了那不争
- Swoole vs Workman
河南云和数据
互联网PHP编码
目前php通信服务框架最流行的有wwoole与workerman,swoole是有C语言开发的php扩展类,而workerman是纯PHP开发框架,可能swoole比workerman出名,在百度、腾讯公司都有在使用,使用频率也比较高,但workerman也有很多项目在用,哪到底谁能更胜一筹呢?首先我们一起来了解一下swoole:Swoole是面向生产环境的PHP异步网络通信引擎使PHP开发人员可
- php workman 和swoole,workerman和swoole的区别
weixin_39530647
phpworkman和swoole
workerman和swoole都是phpsocket服务器框架,都支持长连接、tcp和udp、websocket、异步、分布式部署等workerman纯php写的,swoole是php的c扩展,性能肯定更高,百度、腾讯不少产品的server就是基于swoole的workerman上手更快,文档更丰富,社区活跃,社区基本做到有问必答。(推荐学习:workerman教程)性能上Swoole毕竟是C语
- php workerman和swoole,workerman和swoole的区分_PHP开发框架教程
我吃掉了一辆奔驰
php
workerman和swoole都是phpsocket服务器框架,都支撑长衔接、tcp和udp、websocket、异步、分布式布置等workerman纯php写的,swoole是php的c扩大,机能一定更高,百度、腾讯不少产物的server就是基于swoole的workerman上手更快,文档更雄厚,社区活泼,社区基础做到有问必答。(引荐进修:workerman教程)机能上Swoole毕竟是C言
- workerman和swoole性能对比分析
csdndddsd
swoolephp后端
在大多数情况下,swoole具有更好的总体性能,因为它在并发能力、内存消耗、i/o吞吐量和网络吞吐量方面都胜过workerman。其性能优势归功于c扩展、高效的i/o事件循环和内存管理技术,使其适用于高并发、高吞吐量的web应用程序、实时应用程序和微服务架构。Workerman和Swoole性能对比结论:在大多数情况下,Swoole具有更好的总体性能。详细对比:Workerman和Swoole是两
- Swoole的MySQL连接池实现
ac-er8888
swoolemysql后端
在Swoole中实现MySQL连接池可以提高数据库连接的复用率,减少频繁创建和销毁连接所带来的开销。以下是一个简单的SwooleMySQL连接池的实现示例:首先,确保你已经安装了Swoole扩展和PDO_MySQL扩展(或mysqli,但在这个示例中我们使用PDO)。config=$config;$this->maxConnections=$maxConnections;$this->pool=n
- PHP+RabbitMQ+Swoole实现简单的消息推送
Marhal
PHPRabbitMQphp+rabbitmq消息中间件php实现异步任务php+swooleswoole进程池
消费者comsumer.phpon("WorkerStart",function($pool,$workerId){echo"Worker#{$workerId}isstarted\n";//单个进程必须独占一个连接rabbitMqServer($workerId);});//进程关闭$pool->on("WorkerStop",function($pool,$workerId){echo"Wor
- thinkphp6+swoole使用rabbitMq队列
伟大的python程序员
swoolerabbitmq后端
安装think-swoole安装composerrequirephp-amqplib/php-amqplib,以支持rabbitMq使用安装rabbitMq延迟队列插件安装rabbitmq_delayed_message_exchange插件,按照以下步骤操作: 下载插件:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/r
- CyberWin.聊天室-C#、php 聊天 屏幕共享————未来之窗跨平台操作
未来之窗软件服务
数据库
on('open',function(swoole_websocket_server$server,$request){echo"server:handshakesuccesswithfd{$request->fd}\n";$connection_info=$server->connection_info($request->fd);if($connection_info){$client_ip=
- 【无标题】
飞羽殇情
服务器
failedtolistenserverport[0.0.0.0:8324],Error:Addressalreadyinuse[98]swoole端口被占用实在没办法重启服务期
- 关于使用Easyswoole 自定义MYSQL 连接池,一段时间后,操作接口,报数据库连接错误,然后在请求接口,就正常了
树下水月
数据库mysqloracle
关于使用Easyswoole自定义MYSQL连接池,一段时间后,操作接口,报数据库连接错误,然后在请求接口,就正常了首先我们来看看对应的easyswoole数据库注册Config/Mysq.php$mysql['mysql']=[];$mysql['mysql']['default']=['name'=>'default','host'=>'127.0.0.1','port'=>3306,'use
- thinkphp5支持php,如何让swoole完美支持ThinkPHP5呢
坎布里奇大脸猫
thinkphp5支持php
视频教程推荐TP5与workerman实战在线客服首先开启swoole的http服务开启swoole的http服务并设置提供给url访问页面的文件的根目录,代码如下。这样在浏览器只能访问…static下面的文件,而无法访问其他目录下的文件。http.serverset(['enable_static_handler'=>true,'document_root'=>"/usr/local/openr
- 如何通过Docker搭建一个swoft开发环境
八重樱。
Dockerswooleswoftphp
本篇文章给大家分享的内容是关于如何通过Docker搭建一个swoft开发环境,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们。Swoft首个基于Swoole原生协程的新时代PHP高性能协程全栈组件化框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的PHP-FPM,全异步非阻塞IO实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的yield,
- 社群扫码进群完整可运营源码
酷爱码
phpPHP
源码介绍社群扫码进群完整可运营源码,对接免签约支付接口,推广正常绑定下级。1.安装上宝塔在配置这些环境就可以了2.搭建环境NginxMySQL5.6php7.23.php7.2安装扩展fileinforedisSwoolesg114.服务器需要安装linux的系统下载地址:社群扫码进群完整可运营源码
- 社群扫码进群完整可运营源码
CSDN专家-微编程
PHP源码PHP
源码介绍社群扫码进群完整可运营源码,对接免签约支付接口,推广正常绑定下级。1.安装上宝塔在配置这些环境就可以了2.搭建环境NginxMySQL5.6php7.23.php7.2安装扩展fileinforedisSwoolesg114.服务器需要安装linux的系统下载地址:社群扫码进群完整可运营源码
- 全开源免费的客服系统来了
new_一个对象
独立客服系统全开源CRMChatphp
aboutCRMChat是采用Swoole4+Tp6+Redis+Vue+Mysql开发的独立高性能客服系统,客服系统用户端支持Pc端、移动端、小程序、文章中接入客服,利用超链接、网页内嵌、二维码、定制对接等方式让网上所有通道都可以快速通过本系统联系到商家,商家端支持Pc端、移动端(App)随时随地接收到用户的各种咨询,商家可以添加话术库、也可以对用户进行分组、加标签、加备注进行管理,是一款互联网
- 开发业务(5)-crmeb电商系统开发前置梳理
大梁来了
开发业务教育电商
1…国内比较有名的一套电商系统二次开发相关手册https://doc.crmeb.com/mer/merchant/9198代码是使用thinkphp6.0为主体开发。PHP的运行版本要求7.1-7.4(相关插件和运行环境的支持)swoole4(使用的是swoole自建HTTP服务器,运行的模式同时系统封闭掉了正常public/index.php的代码入口)需要搭建一个反向代理的nginx。也就是
- 2018年swoole实战5-异步mysql
闲睡猫
继上篇2018年swoole实战4-异步io读写本篇演示swoole的异步mysql模拟数据在本地test数据库中新建book表,写入模拟数据CREATETABLE`book``id`int(11)NOTNULLAUTO_INCREMENT,`content`text,(`titlle`varchar(255)NOTNULLCOMMENT'标题',PRIMARYKEY(`id`))ENGINE=I
- 【Swoole 的生命周期,文件描述符,协程数量,以及默认值】
WishYouAFortune
php高并发开发语言phphyperf协程高并发swoole
目录Swoole的生命周期Swoole文件描述符(FD)缓存Swoole设置协程的数量Swoole默认值Swoole是一个基于PHP的高性能网络通信引擎,它采用C++编写,提供了协程和高性能的网络编程支持。Swoole支持多种网络服务器和客户端模块,能够轻松快速地实现TCP/UDP服务、高性能Web、WebSocket服务、IoT、实时通信、游戏和微服务等,打破了PHP在传统Web领域的限制1。S
- 学习用网址 自留
lsswear
学习学习
Swoole4文档PHP:PHP手册-Manualshell学习教程(超详细完整)_路人甲的博客-CSDN博客_shell学习Python基础-廖雪峰的官方网站Python爬虫100例教程导航帖(已完结)_梦想橡皮擦,专栏100例写作模式先行者-CSDN博客_python爬虫100例教程蓝桥杯算法全家桶(终极完结版)_JohnnyLin-CSDN博客_蓝桥杯算法Python爬虫100例教程导航帖(
- Laravel-swoole扩展包的使用
周星星的学习笔记
如何在Laravel简单快速地使用swoole呢?下面就简单给大家介绍一下。Github地址:https://github.com/swooletw/laravel-swoole。一、确认PHP安装了swoole扩展/var/www/html/backend#php-m|grepswooleswoole二、进入Laravel工程中,安装Laravel-swoole扩展#首先进入到你的Laravel
- php8.2 安装swoole扩展 (mac m1)
coder~
swoolemacos后端
php8.2安装swoole扩展发现报错此处记录使用pecl安装sudopeclinstallswoole...#发现报错/opt/homebrew/Cellar/
[email protected]/8.2.15/include/php/ext/pcre/php_pcre.h:23:10:fatalerror:'pcre2.h'filenotfound#include"pcre2.h"^~~~~~~~~1errorg
- swoole使用4种服务器【tcp/udp/web/websocket】
yichen_china
TCP服务器//创建Server对象,监听127.0.0.1:9501端口$serv=newswoole_server("127.0.0.1",9501);//监听连接进入事件$serv->on('connect',function($serv,$fd){echo"Client:Connect.\n";});//监听数据接收事件$serv->on('receive',function($serv,
- ASM系列六 利用TreeApi 添加和移除类成员
lijingyao8206
jvm动态代理ASM字节码技术TreeAPI
同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。
package asm.core;
/**
* Created by yunshen.ljy on 2015/6/
- Springmvc-权限设计
bee1314
springWebjsp
万丈高楼平地起。
权限管理对于管理系统而言已经是标配中的标配了吧,对于我等俗人更是不能免俗。同时就目前的项目状况而言,我们还不需要那么高大上的开源的解决方案,如Spring Security,Shiro。小伙伴一致决定我们还是从基本的功能迭代起来吧。
目标:
1.实现权限的管理(CRUD)
2.实现部门管理 (CRUD)
3.实现人员的管理 (CRUD)
4.实现部门和权限
- 算法竞赛入门经典(第二版)第2章习题
CrazyMizzz
c算法
2.4.1 输出技巧
#include <stdio.h>
int
main()
{
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
printf("%d\n", i);
return 0;
}
习题2-2 水仙花数(daffodil
- struts2中jsp自动跳转到Action
麦田的设计者
jspwebxmlstruts2自动跳转
1、在struts2的开发中,经常需要用户点击网页后就直接跳转到一个Action,执行Action里面的方法,利用mvc分层思想执行相应操作在界面上得到动态数据。毕竟用户不可能在地址栏里输入一个Action(不是专业人士)
2、<jsp:forward page="xxx.action" /> ,这个标签可以实现跳转,page的路径是相对地址,不同与jsp和j
- php 操作webservice实例
IT独行者
PHPwebservice
首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11 php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;
OK 现在我们来体验webservice
//server端 serve
- Windows下使用Vagrant安装linux系统
_wy_
windowsvagrant
准备工作:
下载安装 VirtualBox :https://www.virtualbox.org/
下载安装 Vagrant :http://www.vagrantup.com/
下载需要使用的 box :
官方提供的范例:http://files.vagrantup.com/precise32.box
还可以在 http://www.vagrantbox.es/
- 更改linux的文件拥有者及用户组(chown和chgrp)
无量
clinuxchgrpchown
本文(转)
http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/
http://ydlmlh.iteye.com/blog/1435157
一、基本使用:
使用chown命令可以修改文件或目录所属的用户:
命令
- linux下抓包工具
矮蛋蛋
linux
原文地址:
http://blog.chinaunix.net/uid-23670869-id-2610683.html
tcpdump -nn -vv -X udp port 8888
上面命令是抓取udp包、端口为8888
netstat -tln 命令是用来查看linux的端口使用情况
13 . 列出所有的网络连接
lsof -i
14. 列出所有tcp 网络连接信息
l
- 我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”
alafqq
mybatis
最近看了
每一个用mybatis的男纸,你伤不起
原文地址 :http://www.iteye.com/topic/1073938
发表一下个人看法。欢迎大神拍砖;
个人一直使用的是Ibatis框架,公司对其进行过小小的改良;
最近换了公司,要使用新的框架。听说mybatis不错;就对其进行了部分的研究;
发现多了一个mapper层;个人感觉就是个dao;
- 解决java数据交换之谜
百合不是茶
数据交换
交换两个数字的方法有以下三种 ,其中第一种最常用
/*
输出最小的一个数
*/
public class jiaohuan1 {
public static void main(String[] args) {
int a =4;
int b = 3;
if(a<b){
// 第一种交换方式
int tmep =
- 渐变显示
bijian1013
JavaScript
<style type="text/css">
#wxf {
FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#97FF98);
height: 25px;
}
</style>
- 探索JUnit4扩展:断言语法assertThat
bijian1013
java单元测试assertThat
一.概述
JUnit 设计的目的就是有效地抓住编程人员写代码的意图,然后快速检查他们的代码是否与他们的意图相匹配。 JUnit 发展至今,版本不停的翻新,但是所有版本都一致致力于解决一个问题,那就是如何发现编程人员的代码意图,并且如何使得编程人员更加容易地表达他们的代码意图。JUnit 4.4 也是为了如何能够
- 【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}
bit1129
gson
如何把如下简单的JSON字符串反序列化为Java的POJO对象?
{"data":{"IM":["MSN","QQ","Gtalk"]}}
下面的POJO类Model无法完成正确的解析:
import com.google.gson.Gson;
- 【Kafka九】Kafka High Level API vs. Low Level API
bit1129
kafka
1. Kafka提供了两种Consumer API
High Level Consumer API
Low Level Consumer API(Kafka诡异的称之为Simple Consumer API,实际上非常复杂)
在选用哪种Consumer API时,首先要弄清楚这两种API的工作原理,能做什么不能做什么,能做的话怎么做的以及用的时候,有哪些可能的问题
- 在nginx中集成lua脚本:添加自定义Http头,封IP等
ronin47
nginx lua
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。
location /{
- java-归并排序
bylijinnan
java
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] a={20,1,3,8,5,9,4,25};
mergeSort(a,0,a.length-1);
System.out.println(Arrays.to
- Netty源码学习-CompositeChannelBuffer
bylijinnan
javanetty
CompositeChannelBuffer体现了Netty的“Transparent Zero Copy”
查看API(
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description)
可以看到,所谓“Transparent Zero Copy”是通
- Android中给Activity添加返回键
hotsunshine
Activity
// this need android:minSdkVersion="11"
getActionBar().setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- 静态页面传参
ctrain
静态
$(document).ready(function () {
var request = {
QueryString :
function (val) {
var uri = window.location.search;
var re = new RegExp("" + val + "=([^&?]*)", &
- Windows中查找某个目录下的所有文件中包含某个字符串的命令
daizj
windows查找某个目录下的所有文件包含某个字符串
findstr可以完成这个工作。
[html]
view plain
copy
>findstr /s /i "string" *.*
上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string&qu
- 改善程序代码质量的一些技巧
dcj3sjt126com
编程PHP重构
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧: 尽量保持方法简短 尽管很多人都遵
- SharedPreferences对数据的存储
dcj3sjt126com
SharedPreferences简介: &nbs
- linux复习笔记之bash shell (2) bash基础
eksliang
bashbash shell
转载请出自出处:
http://eksliang.iteye.com/blog/2104329
1.影响显示结果的语系变量(locale)
1.1locale这个命令就是查看当前系统支持多少种语系,命令使用如下:
[root@localhost shell]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
- Android零碎知识总结
gqdy365
android
1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。
所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高
- HoverTree.Model.ArticleSelect类的作用
hvt
Web.netC#hovertreeasp.net
ArticleSelect类在命名空间HoverTree.Model中可以认为是文章查询条件类,用于存放查询文章时的条件,例如HvtId就是文章的id。HvtIsShow就是文章的显示属性,当为-1是,该条件不产生作用,当为0时,查询不公开显示的文章,当为1时查询公开显示的文章。HvtIsHome则为是否在首页显示。HoverTree系统源码完全开放,开发环境为Visual Studio 2013
- PHP 判断是否使用代理 PHP Proxy Detector
天梯梦
proxy
1. php 类
I found this class looking for something else actually but I remembered I needed some while ago something similar and I never found one. I'm sure it will help a lot of developers who try to
- apache的math库中的回归——regression(翻译)
lvdccyb
Mathapache
这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。
多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。
数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。
基本覆盖了:线代,统计,矩阵,
最优化理论
曲线拟合
常微分方程
遗传算法(GA),
还有3维的运算。。。
- 基础数据结构和算法十三:Undirected Graphs (2)
sunwinner
Algorithm
Design pattern for graph processing.
Since we consider a large number of graph-processing algorithms, our initial design goal is to decouple our implementations from the graph representation
- 云计算平台最重要的五项技术
sumapp
云计算云平台智城云
云计算平台最重要的五项技术
1、云服务器
云服务器提供简单高效,处理能力可弹性伸缩的计算服务,支持国内领先的云计算技术和大规模分布存储技术,使您的系统更稳定、数据更安全、传输更快速、部署更灵活。
特性
机型丰富
通过高性能服务器虚拟化为云服务器,提供丰富配置类型虚拟机,极大简化数据存储、数据库搭建、web服务器搭建等工作;
仅需要几分钟,根据CP
- 《京东技术解密》有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的12月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
12月试读活动回顾:
http://webmaster.iteye.com/blog/2164754
本次技术图书试读活动获奖名单及相应作品如下:
一等奖(两名)
Microhardest:http://microhardest.ite