- 博客(327)
- 资源 (33)
- 收藏
- 关注
原创 AWS Lambda 中使用 Python 并发编程
无论在何处,有多重任务要处理时,并发编程总是要得到考虑的。比如有 IO 等待时的并发或 CPU 密集型时的并行计算,并发通常是指在同一个 CPU 上按时间片轮换执行,并行是任务在不同的 CPU 上执行。能有效使用 CPU 多核的语言可以让线程运行在不同的核上实现并行,如果是启动的子进程能由操作系统运行在其他 CPU 核上。这时候就必须要考虑多进程并行的方式,同时应知晓当前选择的 Lambda 运行环境有多少个 CPU 内核,因为如果是单核的话再多进程也无济于事,没必要启动多于核心数的进程。
2023-05-30 10:57:55
10
原创 实测 AWS Lambda 不同内存配置下的 CPU 核心数
目前(2023-05-25) AWS Lambda 的内存选择区间是 128MB ~ 10240MB, 最长运行时间为 15 分钟,但没有 vCPU 个数的选择。vCPU 的数量是基于所选内存大小而有不同的,如果我们在 Lambda 中需使用多进程充分发挥 CPU 性能的话,有必要了解当前 Lambda 所在运行环境的 CPU 内核数,甚至是单核的频率。组件的方法,可把 psutil 做成 Lambda 层以引用,或与 Lambda 函数代码一同打成 zip 包。
2023-05-30 10:57:13
3
原创 Spring 5 响应式编程研究
Spring 5.0 发布之时(2017-09-28) WebFlux 是它的一大亮点,即响应式 Web 编程。于是多线程编程大致两种模式。Akka Actor 比 CompletableFuture, RxJava,以及本文将要讨论的 Reactor 更高级的是 Akka System 可以分布式部署,Actor 分布在不同的进程,主机上。然而随着云计算的普及,基于消息系统解耦合的任务分解让代码变得更清晰,编码中甚至不用考虑多线程的行为,部署方式能解决任务执行的效率。
2023-05-30 10:56:31
3
原创 配置 FastAPI/Uvicorn/Hypercorn 的访问日志
性能方面普遍是 FastAPI 比 Flask 高,编程方面就各取所好吧,使用 Flask 的时候还是 1.x 的版本,最近用 FastAPI 较多,所以无法对比。FastAPI 本身没提供启动 Web 服务的代码,不像 Flask 还能通过 Flask 对象 或 flask 命令启动一个开发用途的 Web 服务,而 FastAPI 必须用其他的组件(ASGI server)来启动,比如各种 *corn 或 Daphne。
2023-05-30 10:55:52
3
原创 应用 AWS Lambda 部署 FastAPI
比如说 AWS Lambda 收到请求时快速启动 FastAPI 服务,该服务绑定到 TCP 端口或 Socket 文件都行,然后 Lambda 请求代理到 FastAPI 服务,最后关闭 FastAPI 服务,但是想来都不那么容易实现。又由于是 Rest API, 所以实现部分用了 FastAPI 的装饰器,但不实际启动 FastAPI 的 Web 服务,Lambda 的 handler 方法根据 routeKey 手动映射到 FastAPI 的装饰方法。
2023-05-02 11:05:58
26
1
原创 理解 Java 线程池 ThreadPoolExecutor
使用 JDK 5 的线程池实现有近 20 年的时间了,快速创建一个线程池经常是调用 Executors 中的工厂方法。但是涉及过更精细的线程池管理控制时不得不用 ThreadPoolExecutor 的构造方法,这也就是为什么有些公司不建议用 Executors 的工厂方法创建线程池,而应该直接创建 ThreadPoolExecutor 或 ForkJoinPool 实例。OL, TimeUnit.MILLISECONDS 表示线程创建后只要线程池还在就是永生的;
2023-04-22 13:35:03
21
原创 体验 Python FastAPI 的并发能力及线, 进程模型
对于每一种类型 Web 服务基本的测试是每秒发送 2 个请求,连续发送 1000 个,500 秒发送完所有请求,程序中 API 方法接受到请求后 sleep 800 秒,保证在全部 1000 个请求送出之前一直占着连接,并有充足的时间对连接进行分析。在测试极端并发数时,由于在 Mac OS X 尽管设置了 ulimit 最多也只能创建 4000 多一点线程,所以在模拟更多用户数时,JMeter 在远程 Linux(Docker 或虚拟机) 上运行测试用例。以及它是如何运用线程或进程来处理请求。
2023-04-05 06:48:38
302
原创 学习使用 AWS Cognito 并 OAuth2 验证
因此通过对 Cognito 的学习的另一个目的是由此了解 OAuth 2.0 协议的相关内容。OAuth 是 Open Authorization 的缩写,是一种开放的可为 Web 或桌面应用进行用户验证和授权的协议。例如,在互联网上的许多应用,可不用额外注册帐户而采用第三方的帐户(Gmail, Apple Id 等)登陆并完成授权,这就有 OAuth 身影。当我们提到 OAuth 的时候,常常会碰到 OAuth 1.0, OAuth 2.0, OpenID, 和 Auth0.
2023-04-05 06:46:52
436
原创 Python __slots__ 的用法笔记
Python 是一个动态语言,可以动态的给实例或类增减属性或方法,给类添加的属性会影响到前后所有创建的实例。属性可以限定类或实例属性和方法,如果没有。的话实例的属性和方法包含在实例的。字典中,类的属性和方法包含在类的。按常规写法可能会出现的问题大概有。
2023-03-01 13:06:24
19
原创 Python Flask 框架的并发能力及线,进程模型
从 JMeter 每半秒发送一个请求,连续发送 1000 个,程序中 API 方法接受到请求后 sleep 800 秒,保证在全部 1000 个请求送出之前一直占着连接,以此来找到同时被处理的请求数目,并且有足够的时间统计当前的 TCP 连接数。在测试极端规模的并发数时,由于在 Mac OS X 很难突破 5000 个线程的限制,这时就让 JMeter 分布到远程 Linux(Docker 或虚拟机) 上执行。虽然网上或许很容易找到它们的默认并发数,但通过实验的方式可以得到更感性的认识。
2023-02-24 22:37:14
226
原创 AWS SNS 订阅到 HTTP 的过程及消息报文
同邮件列表一样,订阅 SNS 消息也是需要确认的,不然 SNS 消息就可能恶意满天飞。本文试验如何用 HTTP 端点订阅 SNS 消息,订阅确认,以及发送消息到 SNS 主题后消息推送到 HTTP 端点的细节,重点是了解订阅及被推送过来消息时的 HTTP 报文内容。SNS 的 HTTP 端点订阅需要一个公网上的 HTTP URL, 对 SNS 可见,所以我在本地测试时在家中路由器上加一个端口映射,对 Modem 获得的公有 IP 的 8080 端口访问转发到写此文用所用机器的 8080 端口上。
2023-02-24 22:36:42
71
原创 远程方式执行 JMeter 测试
如果能够远程运行 JMeter 的测试就能突破单机上的线程限制了,比如 Mac OS X 不行,找个 Linux 远程机器(可以是虚拟机)来执行,一台机器不够,找多个。想要模拟 15000 个并发用户,测试可分配到 5 台机器上执行,每个节点跑 3000 个用户并发就行,有点操控肉机的感觉。(它也能远程运行测试)。JMeter 的测试可以在本地模拟并发用户,那么为什么要远程执行 JMeter 测试呢?JMeter 是一个极好的测试 Web API 及压力测试的工具,另一个的话就是 Python 版的。
2023-02-24 22:36:15
35
原创 使用 ECS Exec 直通 ECS 容器会话(适用于 Fargate 和 EC2)
基于 EC2 的 ECS 服务,要看看容器内的状态,一直以来都是先 SSM(Simple System Manager) 或 SSH 进到 EC2 实例,然后再。. 但是对使用 Farget 的 ECS 服务就无能为力了,因为找不到 SSM 或 SSH 的主体, 只能通过程序日志来大概了解容器内发生的事了。,连接过程中唯一的不同就是容器中也运行了一个 SSM Agent, 所以这个容器也就无所谓是在 EC2 实例还是在 Fargate 中。允许我们直接连接 Fargate 或 EC2 中的容器会话,见。
2023-02-24 22:33:43
469
原创 Python 基于多环境的配置方式
第一种方式是本人推荐的,其他的方式只是在不同格式的配置文件中,按环境组织不同的配置值,其他方式的不同配置读入内存中基本是体现为字典变量。部署到不同环境的应用会使用到各自的配置,如 Dev, QA, Stg, Prod 有自己的数据库等资源。Spring Boot 可采用 Profile 对应不同的环境,不同 Profile 选择自己的配置文件。本人还是偏爱在同一个文件中分组配置,容易查错与编辑,类如在 application.properties 文件中以下面的方式。
2023-01-18 13:31:08
321
原创 升级到 Spring Boot 3 后 javax.inject.Named 不可用
Spring 6 要求用 JDK 17+, Spring Boot 3 自然也要上 JDK 17+ 才能使用,对于一直死死抱住 JDK 8 不放的要升级到 Spring Boot 3 就是个比较大的挑战。Spring Boot 1 的项目还得老老实实的先升级到 Spring Boot 2,如果是早期的 Spring Boot 2,第一步是升级到 Spring Boot 2.7.x, 一步步来,免得步子大了扯到X。从 Spring Boot 2.x 升级到 Spring Boot 3 的指南请阅官方的文档。
2023-01-18 13:30:18
62
原创 Spring Boot Web 输出 Tomcat 的访问日志到控制台
属性文件中的配置针对的是如何输出访问日志到文件,而我们有时候需要输出访问日志到控制台而不非文件,比如 AWS 上的 ECS 应用,控制台的输出可直接发送到 CloudWatch,这样便于分析日志。在 Spring Web 中可以用 Interceptor 或 Filter 来记录访问日志,但在请求出错时无法准确显示出响应时间和状态码,毕竟 Tomcat 的访问日志在代码的外层,进出 Controller 方法的输入输出信息也就掌握的更清楚。
2022-12-31 00:04:29
296
原创 HDFS 分布式文件系统的搭建与使用
HDFS 沿袭了传统的 Master/Slave 系统架构,但因目前像传统的计算机名词 PC, CRT 被恶意使用的当下,Master/Slave 相应的更名为 NameNode 和 DataNode。在通常的系统中, Master 兼具协调与数据存储的功能,而 Slave 只存储数据,而 HDFS 的 NameNode 仅保管文件的元信息,数据块存储在 DataNode 中。由于数据块从多个节上存取,也就能突破单点的网络带宽和硬件资源的限制而获得更好的性能;能处理更大的数据,和克服单点故障的问题。
2022-10-11 00:03:57
723
原创 细数 DB2 数据库的 Identity 字段
每种数据都有自己独特的自增列的声明方式,如 Oracle 的 Sequence, SQL Server 的 Identity, MySQL 的 auto_increment, PostgreSQL 的 Sequence 或 Serial。和 PostgreSQL 类似,DB2 也提供两种自增列的声明方式,它们是 Sequence 和 Identity。而本文主要着墨于 DB2 的 Identity 字段,并讲述它与 Sequence 的某种联系,以及它对数据表的导入的影响。
2022-10-11 00:03:15
325
原创 向量间距离/相似度及用 Python 进行计算
计算距离的目的也是为了确定两个向量的相似度,这里的向量可以是纯数学的数组,或者是一系列带有某些可量化特征值的物件。写作本文的原由是需要用 Numpy 计算两个实际对象的相似度,实现代码非常简单,因此更不能满足于此,借此机会多多了解下向量之间距离和相似度的概念,还回顾下一些相关的数学知识。本文主要关注到欧氏距离和余弦相似度这两个数值的求解上。计算两个向量的相似度有许多的方法,如。
2022-10-11 00:00:52
1028
原创 为 S3 中的 CSV 文件创建带 Partition 的 Athena 表
S3 Select 只能针对单个 S3 文件查询,如果要对一组 CSV 文件同时进行查询的话就要用到 Athena。把相同 Schema 的一系列 CSV 文件放到 S3 的某一个目录中,我们可为它们创建一个 Athena 表,然后查询该 Athena 表就会从对应 S3 目录中扫描所有的 CSV 文件。CSV 文件是纯文本的,对人阅读和编辑来说是最友好的描述表格数据的格式。当然 S3 Select 查看任意的文本文件也行,只是把它当成一个不规则的 CSV 文件来对待。如 S3 Select 查询语句。
2022-10-11 00:00:12
105
原创 《HTTP/2 in Action》阅读笔记(二)
HTTP/1.1 的 Pipeling 像 Redis 那样的 pipeline, 通过一个连接传递多个 HTTP 请求,再依次返回结果,但这种方案并未得到支持与应用。显示了使用 HTTP/2 的趋势,和其他数据,如 HTTP/3 的应用趋势。随着互联网的发展,展示一个网页请求的资源越来越多,传输的总字节数在变大,平均近几M -HTTP/1.1 效率较低下,只能同步发送处理请求,即请求,得到响应后才能发下一个请求,一个网会加载许多的资源,如图片, js, css 等。要开始步入 HTTP/2 的,
2022-10-10 23:59:19
541
原创 SpringBoot 启用 GZIP 对响应进行压缩
SpringBoot Web 应用默认是不启用响应数据的压缩,对大的文本类型的响应数据进行压缩是十分必要的,如 JSON, XML 等应用数据,甚至是 JS, CSS 等。(或 application.yml) 配置就行。于是查阅 SpringBoot 2.7.x 的帮助文档。在使用了 SpringBoot 之后,在碰到有压缩响应的需求的时候,第一件事情应该要想到是否能通过在。早先的 Web 应用基本是要配置一个叫做。之类的东西,然后判断请求的。响应类型的数据进行压缩。, 介绍了三个配置项。
2022-10-10 23:58:20
149
原创 Python 实现 RSA 非对称加解密
而非对称加密是用一把钥匙反锁门,但只能用另一把特定的钥匙才能打开它,锁门的叫做公钥,开门的叫做私钥。, 大致就是通过互质的两个数,计算欧拉函数, 模反元素,最终算法公钥和私钥,公钥加密的数据只能用用私钥解密,以当前的算力,只要 RSA 的密钥足够长,如 1024 位以上,私钥是无法通过公钥推断出来的。1977 年三位数学家 Ron。在此之前我理解的非对称加密以为是像 MD5 那种摘要(Digest), 由明文生成的 MD5 摘要信息是无法还原出原始数据的,谬以为那就是所谓的非对称。
2022-10-10 23:57:47
291
原创 《HTTP/2 in Action》阅读笔记(一)
版本 0 ~ 3 是留给实验用的,5 设计为 Intenet 流协议的,例如实时音视频,像 VoIP, 实际上也因为地址数量的限制没被使用。后续的 IP 协议版本 7, 8, 9 都被预定了(比如中国的 IPv9 - 冷),所以再有新的 IP 协议版本的放丈是 IPv10。本书买来有一段时日了,一直还未开始阅读,关于网络上 HTTP/2 的真实使用状态查到以下信息。本书首先介绍的是关于 HTTP 协议从 0.9 到 1.0, 再到 1.1 的变迁史。于此同时,HTTP/3(gQUIC) 也上了议程,作为。
2022-08-23 21:43:19
121
原创 Spring Boot 如何选择 Cache 实现的
来选择自己的 Cache 实例,但对 Spring 是如何确定具体 Cache 实现未作展开。本文将介绍选择 Cache 实现的几种方式。一文的补充,该文中提到了自定 CacheManager 及配置。
2022-08-16 11:09:33
154
原创 Diagram as Code -- 用 Python 画框架图
继一系列 X as X, 如 PaaS, SaaS, IaaS, CaC(Configuration as Code), IaC(Infrastructure as Code) 等,Diagrams 喊出了 Diagram as Code 的口号。熟练的程序员大概不喜欢用可视化设计器来生成 GUI 代码,那会让代码变得极不简洁,而是直接写,眼中看到的是代码,头脑中即时产生映像。Diagrams 就是这样一款写 Python 代码产生架构或流程图的库,它绘制的架构图支持主要的云服务提供商,如。...
2022-08-11 23:24:39
670
原创 学习 Airflow 第一篇章
Airflow 起初是由 Airbnb 开发的, 用于调度和监控工作流的平台,后来开源了, 并于 2019 年 1 月成为了 Apache 的顶级项目。而 Airflow 功能就厉害了, 它可动态管理工作流,易于扩展,可集群化进行伸缩,更有一个漂亮的 UI 用于实时监控任务。基于以上特性 Airflow 是很适于执行数据的 ETL(Extract, Transform, Load) 操作的。除了商业的 Control-M 有调度和监控工作流的功能外,其他的基本只用来调度任务,监控全靠自己的日志。...
2022-08-10 07:31:39
54
原创 Spring 使用 Cache 解析及使用不同类型的 Cache
要在一个Spring应用中开启缓存方法返回结果的功能很简单,不需要额外的依赖,相关的的注解@Cacheable,@CacheConfig,@CachePut,@CacheEvict,@EnableCache等来自spring-context包。实际进行数据缓存时会有更复杂的策略,如元素个数,占用内存,过期时间,何时使用磁盘等,而且不同的数据类型应有不同的缓存策略。因此,除了使用默认的ConcurrentMap作为缓存外,还可通过配置属性。...
2022-07-15 13:45:01
783
原创 自定义 Spring Web Controller 方法的参数
在 Spring Web Controller 方法中的参数可用 org.springframework.web.bind.annotation 下的各种注解来说明参数值从哪儿获得,比如我们熟知的 @PathVariable, @RequestParam, @RequestHeader, @RequestBody, 还有较少使用的 @ReqeustAttribute, @SessionAttribute, @RequestPart, @MatrixVariable, @ModelAttribute, @Au
2022-07-09 01:33:27
142
原创 Python 中泛型的实现
在学习 Python 3.10 新特性时,其中有个类型别名(TypeAlias), 所举的例子是可写成这让 StrCache 更像是一个类型别名,而不是一个看起来明显就是 的字符串变量(实际上它确实是)。本文不在 TypeAlias 本身,而是从 能看出 Python 似乎也能支持像 Java 那样的泛型, 就像 Python 内置支持的 List[str] 或 list[str] 那样。那么来看 Python 怎么去实现一个只能放入字符串的 Cache, 而不能放入别的类型。 阅读全文 >>...
2022-07-05 13:36:15
306
原创 深度理解 Spring Boot Security + JWT Token 的简单应用
项目中有用到 Spring Security 来控制 API 的访问权限,但对于配置应用它基本上是照葫芦画瓢。至于为什么要调用方法并且能从 HttpServletRequest 中得到 Authentication。还有,只要在 Controller 的方法中添加一个带 @AuthenticationPrincipal 注解的参数之后,decodedJWT 便自动有了值,诸如此类的,此前一概模糊不清。早先配置 spring-security-config 是通过继承 WebSecurityConfigure
2022-07-05 13:33:36
214
原创 Java 调用本地动态库的组件(javah, JNA, JNR-FFI)
还是很 久很久以前,当初有 Java 调用本地动态库需求的时候,尝试过用 javah/native 原生的方式在 Java 中使用动态库,再就是小试了 JNative,它调用动态库只需 Java 端的动作, 它最后的更新日期是 9 年前 2013-04-26,基本是应该选择放弃了。关于 JNative 的使用写过两篇如今想继续发掘下是否有别的更好的调用本地库的 JNI 组件,找到有...
2022-07-05 13:32:25
235
原创 Python 3.10 关键新特性
Python 3.10 于 2021-10-04 发布,至今已大半年,目前 AWS 的 Lambda 尚未直接支持,但用 Docker 镜像的方式使用 AWS Lambda 是可以使用 Python 3.10。Python 一年一发布的节奏比 Java LTS 还紧密。下一个版本 Python 3.11 预计在 2122-10-03 发布。在学习 Python 3.10 之前先回顾一下 Python 3.7, 3.8, 3.9 的特性(不想关心之前版本的变迁可直接跳跃到下方的 Python 3.10 新特性
2022-07-05 13:31:08
207
原创 Python 函数重载实现
Python 不支持函数重载,在同一个模块中声明同名方法不会报错,只会不停的覆盖,无论参数个数是否不同,最终只会保留最后一个函数1234567891011121314foo = 100def foo(a): print('foo(a)')def foo(a, b): print('foo(a, b)')def foo(a: str): print('foo(a: str)')foo([8])print(globals()['foo'])foo(3, 5)输出 阅读全文 >>...
2022-07-05 13:29:11
204
原创 Python 3.9 新特性回顾
Python 3.10 虽已于 2021/10/04 发布,但目前主要使用的 Python 版本仍然是 3.9。之前有两篇介绍了 Python 3.7 和 3.8带来的新特性Python 3.7所带来的新特性 体验一下 Python 3.8带来的主要新特性于此,再补充一下 Python 3.7 和 3.8 各自的发布日期是 2018/06/27 和 2019/10/14。Python 3.9 是在 2020/10/05 发布,由此看出 Python 是每年一发布。每个版本的主要新特性就是它...
2022-07-05 13:27:26
132
原创 构建 AWS AMI 镜像(EC2 Image Builder + Terraform)
使用到 AWS 的 EC2 服务时,选择一个基础镜像后,要定制的话需要在 userdata 中写上一堆脚本。如果不想每次重复 userdata,或者要更快速的初始化一个虚拟机,就应该定制自己的 AMI,特别是在 Batch, ECS, EKS 选择的基础镜像还不方便使用 userdata。定制一个 AMI, 我们可以用aws create-image命令,或是 HashiCorp 提供的Packer(它不仅支持 AWS, 还能为 阿里云,Azure, Google 云,vmware, docker...
2022-04-13 09:02:41
1777
原创 macOS 如何定位 JAVA_HOME
多数的 Java 入门教程都是要求同时设置 JAVA_HOME 和 PATH(包含 $JAVA_HOME/bin) 两个环境变量,反正两个都有了就保险。其实一般情况下系统能在 PATH 中找到 java 程序时就知道 JAVA_HOME, 基本上只要配置 PATH 就行,而 JAVA_HOME 环境变量是可选的。但也有例外,比如 TOMCAT 就可能要求有 JAVA_HOME 环境变量。在 macOS 下,JAVA_HOME 与 PATH 的关系又显得有点微妙了。一个新的 macOS 系统,它自带有 j
2022-04-13 09:01:26
2026
原创 使用原生的 Windows Docker 容器
一谈到 Docker 容器,按照以往的惯性思维,那就是 Linux 容器(LXC),和 Windows 没多大关系,顶多也就是在 Windows 的 Linux 虚拟机中跑 Docker 容器。不过自从 Windows Server 2016 开始,出现了 Windows 原生的 Docker 容器,它再也不只是 Linux 下的专利了。Docker 容器中可以运行 Windows 系统了, 每个 Windows 容器共享宿主机的 Windows 内核(--isolation=process,),或使用
2022-03-03 13:04:04
1344
原创 Python 连接和操作 DB2 和 Oracle 数据库
使用 Python 就难免要应对到不同数据库连接的问题,Python 目前也没有 Java 使用 JDBC 瘦客户端驱动那么方便。本人在用 Python 连接 SQL Server 时经常还是会有些问题,此文只着力于如何用 Python 连接 DB2 和 Oracle 数据库。从本文中我们将会学到Python 围绕着 ibm_db 来操作 DB2 以 Python DB-API 2.0 规范来操作 DB2 cx_Oracle Python 库 + Oracle Instant Client 操作
2022-03-03 13:02:51
660
原创 DB2 “The transaction log for the database is full“ 问题的解决
在使用 DB2 的 Community 版本的 Docker 镜像ibmcom/db2进行测试,启动 Docker容器的命令是$ docker run -name db2server --privileged=true -p 50000:50000 \ -e LICENSE=accept \ -e DB2INSTANCE=db2user \ -e DB2INST1_PASSWORD=password123 \ -e DBNAME=test \ ibmcom...
2022-03-03 13:02:12
627
Play for Scala.pdf
2014-04-04
Play.for.Java.Covers.Play.2
2014-04-04
Quartz Job Scheduling Framework 中文版 V1.0.0.pdf
2010-10-13
Quartz Job Scheduling Framework 中文版 V1.0.0.chm
2010-10-11
远程桌面批量登陆器,3389 RemoteDeskTop
2010-06-07
nantpad.2.0_with_Crack
2010-06-04
Quartz_Job_Scheduling_Framework_V0.9.5_中文版.pdf
2009-10-08
Quartz Job Scheduling Framework 中文版 V0.9.5.chm
2009-02-05
Quartz Job Scheduling Framework 中文版 V0.9.2.chm
2008-10-07
精通 Groovy.chm
2008-09-09
Quartz Job Scheduling Framework 中文版 V0.9.1.chm
2008-08-26
Quartz Job Scheduling Framework 中文版 V0.8.2.chm
2008-08-25
程序开发技巧集(Unmi整理)
2008-05-02
Visual.Assist.X.10.4.1619 + Crack
2007-12-01
华为代码统计工具CCT V2.0
2007-11-22
Perl 语言编程.chm
2007-11-15
CN-DOS批处理精华贴(2007-A)(IE6)
2007-10-16
DOS批处理经典入门教程
2007-10-16
APort
2007-10-15
fport
2007-10-15
Quartz Job Scheduling Framework
2007-10-11
JavaDOCHelper1.5.1_Viewer
2007-10-11
reilly.jboss.a.developers.notebook.jun.2005
2007-10-09
Spring程序高手秘笈--英文原版
2007-10-09
SWT程序高手秘笈--英文原版
2007-10-09
Hibernate:程序高手秘笈--英文原版
2007-10-09
Java 5.0 Tiger程序高手秘笈--英文原版
2007-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人