写点什么

聚焦.NET 开源世界里的奇葩:Beagle

2007 年 8 月 17 日

就 Beagle 这款著名的开源.NET 应用,InfoQ 采访了 Joe Shaw 和 Pierre Ostlund。 Beagle 是目前 Linux 平台上最为著名的 Mono 应用之一,为 Linux 社区提供了桌面搜索功能。

InfoQ:是什么推动了 Beagle 项目的创建?

Joe Shaw:Beagle 其实起源于一个称为 Dashboard 的项目, 是我和 Nat Friedman、Alex Graveley、Jim Krehl 和其他一些朋友在 2003 年夏天做的。Dashboard(比属于 Apple 自己迥异的 Dashboard 还要早)背后的思想是让计算机了解某 个给定的时间里你在做的事情,比如阅读邮件、和朋友聊天、写文档等,它应该能显示那时和你所做的事情相关的一些信息。我们所做的很多工作是基于人的:如果 我在和 Nat 聊天,系统就会显示给我 Nat 最近更新的博客,或者我从他那儿收到的最新的邮件,以及他的邮件地址和 IM 昵称、电话号码等。另外如果他在窗口 上输入了某个人的电话号码,系统就能进行搜索并提供给我相关的信息等。

在做 Dashboard 的时候,我们发现平台有两个不足的地方:(1)由于各种原因很难访问到数据(和微数据),(2)我们丢失了大量能确定不同数据间关系的微数据。

Beagle 的创建很大程度上是为了解决问题 1。它能索引到文字内容和微数据,因此能被高效地搜索到,而应用只需要到一个单独的地方找到它并快速地取到它即可。

InfoQ:Beagle 的开发是如何赞助的?

Joe Shaw:最初的 时候,Novell 赞助了至少一个全职开发者。开始是 Joh Trowbridge,晚一些的时候是 Dave Camp,我是兼职代码贡献者。Dave 后来去了 Hula,我就变成了全职,和 Joh 一起工作,在 Joh 去年一月份离开后,就是我自己了。曾经有一段时间 Dan Winship 以兼职的形式和我一起工作。 除了这些,Google 还通过它的夏日代码计划(Summer of Code program)在去年和今年的夏天间接地赞助了开发。

但是当然,Beagle 的力量源泉是因为它是一个开源的项目。很多努力都是由个体贡献者提供的,如果没有他们,Beagle 不可能有今天。一年前我列出了所有参与其中的贡献者,数目已经超过了100。

InfoQ:Beagle 目前进展如何?

Joe Shaw:到目前为止,我认为 Beagle 是今天 Linux 平台上功能最强、最可用的桌面搜索系统。我们支持超过 20 种数据源(文件系统、邮件、IM 记录等)和超过 60 中数据格式(MS Office、ODF、PDF、MP3 等),这是任何一款操作系统上的桌面搜索所不可比拟的。 在大多数 Linux 发行版中都包含了 Beagle,有一些还相当好地在 Beagle 中整合了桌面体验。

对于项目本身,我们正在为 0.3.0 而努力——对我们 0.2.x 系列的一个重要更新——它会支持更快的索引、对存档内容更完全的索引、对像 Tag 和标记等外部存储的微数据更好的支持。

InfoQ:Beagle 和 Google Desktop、MS Desktop Search 等的竞争点在哪里?Joe Shaw:呵呵,MS Desktop Search 不能运行于 Linux,而 Beagle 还不能运行于 Windows,所以我不认为它们是竞争关系。

Google Desktop 是刚支持 Linux,尽管它索引了 Gmail(我们还没有),但它没有 Beagle 已有的其他类型文件。它不能索引 IM 会话,或者不能和除 Thunderbird 以外的邮件客户端整合地很好。在它索引的时候它降低系统的性能,和现有的桌面应用没有整合。另外它的非开源基本上限制了它的扩展能 力,从而不能够支持新的或者已存在的数据类型,同时也意味着它永远不会和 Linux 桌面绑定的很紧。而 Beagle 的许可开源协议在这一领域是个优势。

GDL 有很多很好的功能:它能做一些版本控制和对缓存数据的存储;能更好地在硬盘上处理空邮箱文件;支持对 Gmail 的索引等,但是所有的这些功能没有一个是 Beagle 所不能实现的。

InfoQ:Beagle 的目标用户是谁?Joe Shaw:Beagle 既面向最终用户,也面向开发人员。对于开发人员,我们提供一些真正好用的 API 以扩展 Beagle 能索引到的数据类型和搜索到这些索引。这意味着开发人员能将索引和搜索整合到他们的应用中,或者围绕搜索构建全新的用户接口。

面向最终用户,Beagle 的目标只是让发现数据变得更简单。对用户而言,文件系统就是一个必须要面对的神秘咒语,很多情况下人们是直接忽视它们了事。他 们只是将所有的文件放到“我的文档”文件夹。某种程度上我自己也是这样,我所下载的所有东西都放到一个指定的文件夹,日积月累,文件堆积如山,最终的情况 就变成如果你要找某个东西就像要从一个干草垛里找一根针那么困难。然后将邮件存档到文件系统或者一个服务器上,且只能通过邮件系统访问这些邮件。对地址簿 里的联系人或者日历事件也是一样。从前在 Linux 平台上,用户根本没有办法(非命令行)访问 IM 聊天日志。你的浏览器缓存了 Web 页,但你却基本上访问 不到。

通过一个图形的搜索界面,Beagle 解决了这些问题,使得它们功能完备而且易于访问。你再也不需要浏览一层一层的文件夹,再也不需要在目录里面一个一个 地查找那些可能自己已经忘记名字的文档。你所有的邮件、IM 日志、RSS 种子、Web 历史和地址簿联系方式和其他文件一起变得唾手可得。

当然,那是一个理想境界。有些人,比如我,因为组织能力不足,这样的工具对我就非常有帮助。而有些人,组织能力特别好,钟情于文件夹,那么桌面搜索也许对 他们完全是多余的。事实就是如此,Beagle 不是针对所有人的。但是,在将来我们也许能看到一些基于桌面搜索的更多创新应用,对那些组织能力很强的个人 也非常有帮助,就像我刚才提到的 Dashboard 项目。

InfoQ:对 Beagle 的未来设想是什么?

Joe Shaw:总是有更多的数据需要索引,更多的性能优化需要处理等。那是一个令人头疼的未来:

除了上述的两点,我们正在计划增加网络搜索,这样你就可以在多台机器上允许搜索。在这儿我们想使用具有多点传输 DNS 和服务查找功能的 Zeroconf, 使得用户能在不需要任何配置的情况下在本地网络上进行搜索。另外一个潜在的功能是通过对文档做一些状态分析,自动识别文档的语言……针对这些功能,我们会 提供一些补丁。

我乐意看到 Linux 桌面上的平台能扩展到用 del.icio.us 样式的标签标注所有数据,包括文件、邮件和网页等,使得这些数据让 Beagle 可以索 引到;我乐意看到更多的应用能够进步,不再固步自封,将数据开放给其他的应用,包括 Beagle;我乐意看到应用能存储数据间固有的关系,比如当我保持一 个邮件附件的时候,能够在磁盘上存储发给我邮件的这个人的相关信息,从而使得 Beagle 能够索引得到;我乐意看到更多的应用将 Beagle 作为它们的内 部搜索引擎使用等。对 Beagle 自己来讲,所有的这些都不是必须要改变的,我们要做得是更好地提高用户的体验。

欢迎访问 InfoQ 网站上的其他 Mono 相关报道

查看英文原文:.NET Spotlight on Open Source: Beagle

2007 年 8 月 17 日 00:14668

评论

发布
暂无评论
发现更多内容

现在Php、Java、Python横行霸道的市场,C++程序员们都在干什么呢?

ShenDu_Linux

c++ 程序员 编程语言 C语言 软件工程师

今年最火的 Golang 云原生开源项目,可能就是它了!

孙健波

Kubernetes k8s OAM KubeVela CloudNative

苹果开始告别英特尔

罗燕珊

macOS Big Sur 芯片 苹果 MacBook 英特尔

架构师训练营第一期-第十周课后作业

卖猪肉的大叔

极客大学架构师训练营

阿里云在应用扩缩容下遇到的挑战与选型思考

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生

1. 揭秘Spring类型转换 - 框架设计的基石

YourBatman

Spring Framework 类型转换 Converter

anyRTC 11月SDK更新

anyRTC开发者

flutter uni-app WebRTC RTC sdk

不要再满世界找linux命令了,常用的我都给你整理了

北游学Java

Linux 程序人生 C/C++ 后端开发 linux命令

阿里内部“高并发通关秘籍”曝光,看完带给你独一无二的认知!

比伯

Java 编程 架构 面试 计算机

京东11.11大促背后,那些系统架构经历了些什么?

京东科技开发者

数据库 云计算 云服务

前嗅教你大数据:常见几种编码介绍

前嗅大数据

大数据 编码 编码指南 前嗅大数据

盘点c++几种常见的设计模式及具体实现

linux大本营

c++ Linux 后台开发

消防物联网,为逆行英雄守住第一道生命线

华为云开发者社区

物联网 控制 消防

5分钟学会6个阿里内部编程的方法

Java架构师迁哥

【经验分享】打破CMDB认知误区,掌握建设关键!

嘉为蓝鲸

运维 运维自动化 数据可视化 CMDB 配置信息

蘑菇街Java大牛熬夜纯手写肛出的Spring AOP/IOC思维导图及源码笔记,赶紧收藏学习!

Java成神之路

Java 编程 程序员 架构 面试

牛批!阿里P8Java架构师总结整理了一份Spring MVC详细教程。真香系列!

Java成神之路

Java 程序员 架构 面试 编程语言

SpringBoot有多重要?面试用SpringBoot把面试官唬住了要30k都行!

Java成神之路

Java 程序员 架构 面试 编程语言

阿里技术专家熬夜一个月肛出内部“微服务学习笔记”,太完美了

小Q

Java 学习 编程 面试 微服务

微博和B站屏蔽马保国相关信息:自媒体蹭热度要适可而止

石头IT视角

《华为数据之道》读书笔记:第 8 章 打造“清洁数据”的质量综合管理能力

方志

数字化转型 数据质量管理

根治可扩展、高可用、高性能“神器”:SpringCloud+Nginx高并发编程手册

Java架构追梦

Java nginx 架构 面试 微服务

架构师训练营第一期-第十周学习总结

卖猪肉的大叔

极客大学架构师训练营

完了!这57道面试题(美团、BAT、携程),我咋一个都不会?

比伯

Java 程序员 架构 面试 计算机

软件架构指南

信码由缰

软件架构

小白也能看懂!教你如何快速搭建实用的爬虫管理平台

华为云开发者社区

Python Docker jenkins

40 张图带你搞懂 TCP 和 UDP

云流

编程 程序员 前端 后端 网络

shell脚本的使用该熟练起来了,你说呢?(篇二)

良知犹存

Shell

优秀商业可视化大屏(BI)设计演示

Marilyn

UI 商业智能

阿里P8Java大牛总结的MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒!

Java成神之路

Java 程序员 架构 面试 编程语言

面试大厂被MyBatis源码问到“哑口无言”?这份《MyBatis源码学习笔记+面试真题》助你吊打面试官!

Java成神之路

Java 程序员 架构 面试 编程语言

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

聚焦.NET开源世界里的奇葩:Beagle-InfoQ