大家不妨组织一些开源项目,或者面向具体应用的兴趣小组(个人想法)

简介:
实践出真知。提高技术的关键是作出一些东西。看起来有用,看起来伟大的产品都是你我能做出来的。

偶结合自己近来的一些想法,提出几个项目,供大家参考讨论。感兴趣的一起探讨探讨。有时间的兄弟姐妹们可以尝试写一写。

这些项目有这些特点:(1)有用;(2)可行;(3)有意思;(4)做好了都能作大;(5)适合.net开发;(6)可出名(开源)或可卖钱(不开源);(7)和asp.net无关;

一,geotools的.net版

GIS会越来越火。目前GIS中间件都是数万到数十万人民币之间。但开源2D GIS技术现在已经比较成熟了。数据库有postgresql/postgis,Server端有c写的mapserver和java写的 geotools。mapserver的缺点就是开发和扩展不如geotools灵活,geotools的缺点就是性能。用.net来改写 geotools比较有意义,难度不大。涉及到的内容主要是OGC规范,多维索引,缓存等技术。写好后应该不比国内几万块钱的GIS差。轻量一点的是写一 个map控件,支持小型地图,支持有限的数据各式,适用于小型gis应用。

gis的原理很简单,找本书看看就行了。英文好的,直接看OGC规范,然后对照geotools源代码,就可以开写了。sourceforge上有一个 geotools.net项目,那个不是geotools的.net版本。只是geotools中用到的java拓扑套件JTS的.net实现.

预计规模:
GIS控件:50-100个类;
geotools的.net版:500-1000个类;

偶在sourceforge上申请了一个项目:agilegis,本来想写geotools的.net版的。没业余时间。有人写的话偶把这个让给他。

二,visio的.net版

visio好用但是也挺贵的。看过sourceforge上Netron Graphic Library的人可能会觉得,有了Netron Graphic Library,要写一个有visio 80%功能的东西不会很难。写UML设计软件,都不是很难。你要是写出一个java的这东西,永中可能会来要。不过有一点,这东西写出来没什么难度,要写 得好用,就有很大的难度了。

预计代码规模:300-1000个类

三,luma qq的.net版

luma qq是luma用java写的qq client。有兴趣的人可把它用.net改写。这一块是值得做的,拿电话为例,我们不单需要电话机,还需要交换机,还需要客服中心。随着企业业务纷纷向 网上迁移,一个集成Web,IM,音频,视频,数据库,知识管理系统的企业门户2.0应该是需要的。这一块难度也不算很大,不过开发量较大。

四,web挖掘基础件

主要的可能就是spider,parser,中文分词,索引技术,文本分类,自动排重。这些东西,单独写出来不算难,写好有点难。不过对一般应用来说,写 得过得去就行了。spider有很多。parser主要是两种类型的,一种是把页面解析成xml文件,一种是解析成对象。中文分词写起来也简单,关键是词 库的维护。索引和文本分类偶还没写过,但也没有什么难度。

目前java那边的东西比较多,.net还比较少。象字符串测量,这些东西,写起来应该很有意思的。

我觉得需要解决的一个问题就是网页的重复抓取,假设1000个人抓某一个网站,一天抓一次,那么100天就要抓100000人次了。这样会给别人带来很大 的流量压力。如何使只抓更新的数据,只抓一次。这可能得认真设计,得对网页行为建模,用好hash,甚至引入一套p2p机制。

可能的用途:大型网站的自身管理;行业用户的网站订阅(比如订阅10000个左右的网站,每天及时报告更新,用户之间交换订阅,订阅别人的订阅......可参考Nullgate在zixia bbs上关于p2pBBS的一些文章);数据采集(全自动的不好写啊!)

五,web实体与行为挖掘

论坛,bbs 上的用户,blog的主人,IM的ID,网络游戏的ID都是虚拟实体。找到虚拟实体,这些虚拟实体有什么样的特征,有什么样的关联,有什么样的特点是一个 挺有趣的东西。进一步,由这些实体实现的行为有什么样的特征。举例子说,网络现象分析--一个有50万人阅读的帖子存在什么规律。需求挖掘--现实中人的 需求如何通过网络挖掘出来,如,在XX地的青年对XX有什么样的要求?

采用的工具基本上是四中的东东,但是需要特殊的算法和特殊的模型。做这个需要有很强的建模能力。

六,高性能.net服务器端开发

对实时性要求不是很高的高性能服务器端开发。高性能Server端图形应用开发(如GIS应用),3D应用,这些传统C++的优势领域,用C# + C(<1%的代码用C写)到底能不能替代?如果能的话,那实在是太好了。随着未来多核处理器的普及,内存价格下降,.net的优势越来越大。研究研 究未来系统软件的架构。

七,代码阅读

代码阅读是提高水平的捷径。阅读代码,感觉有兴趣的写个case,交流交流,很好玩的。比天天捣鼓模式有趣多了。

组织建议:

(1)开源,但有不超过3个人的控制者,控制结构和功能

(2)迭代开发,从最小的来。拿第一个举例,写一个GIS控件用不了多长时间。

本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2006/01/07/312858.html如需转载请自行联系原作者


xiaotie 集异璧实验室(GEBLAB)

相关文章
|
6月前
|
Cloud Native Linux Go
如何从开源项目中受益?
如何从开源项目中受益?
40 0
|
10月前
|
存储 安全 Devops
开放原子开源基金会联合阿里云发布AtomGit代码协作平台
AtomGit基于阿里云云效研发的分布式多副本架构,所有存储和服务节点均为无状态设计。
开源社区需要为开源软件的安全负责吗?
开源社区不是法律上的主体,因此在法律上并没有直接的责任。
|
Kubernetes JavaScript Java
如何去参与一个开源项目
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
144 0
|
安全 测试技术 API
开放原子开源基金会发布孵化项目毕业标准 v1.0
开放原子开源基金会发布孵化项目毕业标准 v1.0
|
消息中间件 运维 前端开发
做一个优秀的开源项目,需要注意哪些方面?
如果你想发布一个开源库,请确保它有以下特点: 清晰的依赖性和安装说明 至少有一个简要的文档指南 修改日志和仓库中的标签 关于支持的语言、运行时、工具版本的信息和项目的成熟度 一个可以让用户提问和交流的邮件列表 缺少任何一项都会造成一些用户的愤怒和沮丧,当然同时也浪费了时间。
308 0
|
Kubernetes Cloud Native Linux
如何参与开源项目
本文根据作者参与开源项目的经验,介绍了如何参与到开源项目中贡献自己的力量。
3069 1
|
编解码 Java API
揭秘!开源软件背后的神秘组织
Flink 社区将分享“走进 ASF”系列内容,先从宏观介绍 ASF 是如何运作的,然后详细解说如何参与 Apache 具体项目做贡献,如何成为某个项目的 Committer、PMC 成员,如何选择多个 Apache 项目进行多领域贡献并成为 ASF Member 等,希望有助于你真正了解开源、参与开源。
|
Java Linux 持续交付
阿里云成为开源组织CDF创始成员,积极推动软件生态构建
美国时间3月12日,CDF (Continuous Delivery Foundation)持续交付基金会正式成立。全球第三、中国第一的云服务商阿里云代表阿里巴巴加入CDF,成为CDF基金会创始成员。
2513 0
|
Web App开发 应用服务中间件 nginx
利用开源软件打造一个团队贡献平台
0x00 前言   最初的想法是打造一个团队内部社区,方便进行技术交流、沉淀、分享。在网络上,找到了一款开源系统,开源团队内部贡献平台Mooder,很大程度上满足了这样一个需求。Mooder的核心理念的“贡献知识“,是我最认可的地方,系统简约、强大,以及它的邀请码机制、奖励机制,一句话来说,就是很wooyun的样子。
1485 0

热门文章

最新文章