技术相关

Featured, MacOSX, 随笔

Mac OS X使用体验:邮件Mail.app

用Mac办公已经有段时间了,Mail是我每天必须用的功能,在MacBook上我用的是Mail.app,今天想说说关于这部分的体验。

对照之前用的FoxMail和Outlook,先说不好的:(依据是否提高工作效率)

1、默认多信息文本发信,正文贴图几张间隔文字几段,结果Outlook的用户会看到第一段文字和无数个附件(如下图),我说怎么以前发信会有人看不全。暂未找到解决办法,请知道的回复一下~

2、邮件列表和预览窗的摆放很Outlook Express,我更喜欢FoxMail和Thunderbird那种可以自定义布局的设置。最后搞了一个叫Letterbox的Mail插件解决了,现在看着很顺眼。

3、邮件模板定义不大方便,变量和自定义的粒度比Foxmail差太远了。没什么好的解决办法

4、粘贴表格的支持太差,Mac上的表格拷贝到Mail里肯定乱掉,原有格式、设计全没了。解决办法还没找到

5、按主题组合邮件,这本来是很好的点子,但是它不像Gmail一样包括所有收件和发件,而是分开的,导致整个邮件主题残缺不全。不知道怎么才能解决~

03/11 Update:

6、收Outlook发来的附件有时是个winmail.dat的文件,不知原因是什么。重新发一遍基本就解决

7、联系人姓名地址的编辑还要依赖外部的地址簿,直接修改一点都不方便,西方使用方法是姓、名分开,Mac的地址簿还没能很好的本地化,导致Mail.app在引用的时候也很怪异。习惯问题自己适应吧

也许很多问题都不是Mail造成的,但是体现在它上面也让我很不爽,改变自己容易,改变别人没戏呀。

其实Mail.app还是挺好用的,最起码它够简洁,邮件搜索效果也不错,智能邮箱秉承Mac的一贯高端~

p.s.本来都想贴图来着,后来是实在懒了,有空再补~

Facebook, Ruby on Rails, 闲言, 随笔

近期流水账:我和ROR的简单接触

Ruby On Rails

前一段时间一直在研究ROR,就想开发一些小应用,简单记一下这段心路历程:

  1. 想做一个部门内分享资讯的webapp,用来分享图片、网页、文字,基本是想做个简单的twitter类应用。
  2. 鉴于我本人对Ruby On Rails很感兴趣,twitter就是用它开发的,而且好像可以快速开发,就决定用它实现,版本是1.2.6。
  3. 不动手不知道,ROR表面的地方真是很简单,可以快速做出一个原型,但是越深入越复杂,想全面点实现出来需要注意的地方还真不少。
  4. ROR的学习资料还算挺多的,就是高质量的中文内容太少,我其实不是做技术的,只能用部分业余时间写代码,连学带练的拖拖拉拉写了1个多月才像点样子。
  5. 就像《用户体验的要素》里提到的”永远不能发布的项目”一样,因为前期缺少足够的用户分析和功能需求,过程中还过分修改细节,不断加入特性,导致该项目一直不能正常使用。
  6. 看到xdite用ROR快速开发Facebook App,使用CSS库做界面布局,心又乱了,想拿进行中的项目改。殊不知,需要做的事情很多,要装rfacebook的gem和plugin,要到Facebook申请key,又要熟悉Facebook专用的标记语言FBML,很多设置需要在虚拟主机上调试,Dreamhost又诸多不便,最后只能作罢。
  7. 注意到Joyent提供免费的Facebook App空间,就去申请,若干天后通过审核。进入管理界面,傻眼了,超级复杂(如果有人觉得Dreamhost的panel已经很复杂就不用去试了),虚拟服务器配置好后,开始调试FBML。
  8. 没有将现有进行中的小项目转换成Facebook App,只是简单测试了下,做了一个显示所有好友的列表,发现Facebook提供的接口很有限,同时也推翻了我的一个设想”开发通用应用,分别用Facebook、Google等开放平台优化,做成跨平台的应用”,因为有很多功能(如邀请、好友搜索/选择等)只能通过FBML实现,除非其他平台也有对等的实现,否则这个应用只能是FB专用,不是我需要的通用了。
  9. 还是回到我想做的webapp上,考虑到时效性和同事的用户习惯,最后决定还是使用QQ群解决,之后公司又推广wiki协作方式,这个东东就不了了之了。
  10. 我最后把这个webapp发布在Dreamhost上了,没人知道,也不打算公开,也许下次再想做什么的时候可以先看看这个,作为警示自己的工具。

是我太随意,总想用复杂的方式解决本来很简单的事情,好像是挑战自己的极限其实最多算没事找事吧。

其实还没有结束,这件事情的后传是这样子地:

  • 想在公司的Wiki里发网摘,觉得每条链接又要拷贝又要手写代码太麻烦,就用ROR做了个抓Google Reader阅读共享feed并转换成wiki格式的小应用。
  • 结果Google用的是Atom,只能引入了Feedtools,结果页面编码出了问题,绕了个弯子才知道是Feedtools本身的问题,手动打补丁后,终于解决。
  • 其实这个功能完全可以用PHP的lilina或MagpieRSS解决,我又多此一举了~
  • Ruby On Rails 2.0.2出来了,颠覆了1.2系的很多用法,很多特性更加吸引我,又想以后都把小工具用2.0去写,先从这个功能开始,有点无法自拔……

<

p class=”zoundry_bw_tags”> Technorati : , , , , ,

Facebook, UX, 开放平台, 网站应用, 网站运营, 随笔

开放平台还是开放应用,这是个问题

所谓开放,是一种分享态度,开放平台是自有平台与外部应用共享用户(不一定包含数据)、流量,开放应用是把自己业务打包成模块,通过其它平台分享使用体验。

我在上篇Blog里曾表述过”单纯应用类和社区类的网站,现在有且仅有两个选择,要不自己做大做平台,要不就做成适合开放平台的纯应用“的观点(除上述类型网站外其实还包括资讯类的),大多数网站现在都面临同样的问题: 开放平台还是开放应用?

随着最近Facebook PlatformGoogle OpenSocial搜狐博客开放平台等的出现并逐渐发展,SlideRockyou!等应用提供商的崛起,网站运营人员不得不去面对上述的问题。

后Web2.0的思想,使资讯类、应用类网站在逐渐增强社区氛围,社区类网站在不断增强互动资讯部分,趋势是互相融合的,成为趋向交互的网站。

这也造成网站系统的重复劳动过多,几乎每个网站都有自己单独定制开发的用户系统 、好友系统、交友网络等等,使得网站操作复杂,用户永远需要去适应体验上的差异。

不管开放平台还是开放应用,都可以解决很多问题,同时精简自己的应用结构,根据网站定位更好的发挥自己的特长。

当然,开放平台并不那么好做的:

  • 首先平台网站需要有颗包容的心,允许别人的应用借你的平台发展。
  • 需要提供功能全面的接口,让应用可以很容易结合到平台上。
  • 需要有良好的用户基础,用户数量级够大且用户素质有一定保证,要不没有应用会来。
  • 像Facebook、Google这样本身就很强大的平台并不在多,还没有跳出来的也屈指可数了。
  • 用户数据的所有权成了最大的死穴,平台如果不能照顾应用的利益,早晚被应用放弃。
  • 受应用欢迎的平台标准也会逐渐提高。
  • ……(想到再补充)

开放应用稍微容易实现一点,但也有好处有坏处:

  • 最大的优点,可以跨平台吸收用户,让不同平台的用户存在于同一个应用下。
  • 不影响现有网站运行,可以为特定平台开发定制应用。
  • 因为要适应各平台接口特点,用户体验可能与源网站不统一,或各平台间体验存在差异。
  • 应用的模块化标准有待整合,现存标准缺乏通用性。
  • 怎么将平台用户转化为应用用户将成为网站运营的主要研究课题。
  • ……(想到再补充)

话说回来,不管开放什么,多平台鼎立的形势已经出现,在应用数量相当的情况下,主要看用户对平台的喜好,而应用已经不能再左右用户的选择了。

对个人用户而言,在熟悉的平台下使用感兴趣的、新的应用,将成为平台网站的主要体验,哪个平台相关方面做得好就可以脱颖而出。

还有一个可能发展的方向,用户基于现有个人网站(Blog)自建平台,维系用户的(社交)关系,将开放应用自行整合。用现有工具已经可简单实现,例如OpenPNE等开源软件、老冒的OPSN项目(我最感兴趣~)等等。

最后,借用一句互联网的名言收尾:未来是如此的不可知,互联网的发展更是如此,也许事与愿违,就当是2008年第一个月的某个白天的胡思乱想吧~

最最后,洋洋洒洒的写了一大片,一篇东西居然写了几个小时,中间经过很多琐碎的事情,可能会觉得驴唇不对马嘴,我还是感谢您能坚持看到本文的最后~^_^~

<

p class=”zoundry_bw_tags”> Technorati : , , , , , , , ,

互联网, 交友网络, 分享体系, 即时通信, 微格式, 桌面软件

研究笔记:Pownce的分享体系

除了不能使用中文,我觉得Pownce还是很不错的。

今天粗浅的整理了一下,画了张图:

Pownce架构简析

然后随便说说Pownce的产品架构:

  • 分享是Pownce的核心功能,并依据用户间的关系来限制分享内容的范围、权限。
  • 支持文本(twitter类碎碎念)、超链接、文件、事件日程格式的分享。
  • 文本方面并不如twitter那么好用,而且因为不支持中文(我英文又很菜),用得很少。
  • 超链接分享应该是一个亮点,除了文本链接这种形式,还支持引用FlickrYoutube等图片/视频/音乐站的内容,可以直接将该内容显示在页面上。
  • 文件方面就马马虎虎了,对10M以下的文件支持还可以,使用的是Amazon文件存储服务S3,所以并不适合大量文件的共享,因为超出的容量是要花钱的。
  • 使用微格式(MicroFormats)完成个人信息(地址等)、好友信息(hCard)、事件日程(hCalendar)等信息的发布,并支持XFN来用网页形成关系网络,好像很方便日后的数据导出。
  • Server端,Pownce可谓LAMP架构的典型代表,使用Debian+Apache+Mysql+Python和django。
  • 客户端使用比较先进的(还在测试中的)Adobe Air,感觉还不错。 p.s.不过Air的应用有通病,就是点击关闭就直接关闭,我好像还没看过最小化到任务栏的应用。
  • Pownce开放API方便第三方开发基于客户端、Web的mashup产品。

看上去很简洁,其实Pownce表现出的精简只是暂时的表面现象,Pownce未来可以扩展得更全面、更复杂。

扯开一点说,Pownce抓住的是网络功能一个比较重要的部分,内容的分享,且是小型内容的分享。为什么这么说呢?大容量内容完全可以使用FTP、BT、emule解决,但是小文件呢?网络硬盘很好,但是要分享需要操作的步骤比较多:找地方上传、找地方发布、把URL通过IM发给需要的人……实情可能更繁琐,但是现在微网志应用满街飞的情况下,越来越多的人通过微网志分享自己的内容,用Pownce基本可以一步到位。

扯回来,Pownce的分享体系值得研究,国内有不少有实力可以做到Pownce的应用(这里并不是指复制),就看他们愿不愿意了。

ok,今天的笔记结束~

Update:Pownce分享类型其实很明确,无论是文字、链接、文件还是日程安排,这些类型基本上都是唯一的,用户只用考虑分享内容的格式就好了,例如链接是图片、视频还是音乐的都无所谓,全部由系统来特定呈现。

<

p class=”zoundry_bw_tags”> Technorati : , , , , , , , , ,

UX, 搜索引擎, 网站运营, 闲言, 随笔

搜索结果和Web差体验

最近碰到一些因为Web差体验导致的不爽事情,让我产生近几年少有的要骂街的负面情绪:

  • 老早开了个Wealink的帐号,申请了个Web档案,后来发现显示了一些不太想被别人看到的信息,年初对其做过修改和关闭的操作,结果到现在还在网上,而且还被百度索引了,我已经在Wealink提交过问题,到现在还没有得到解决。
  • 那个Web档案前几天被单位的好事之徒通过百度图片搜出来,拿那个头像在QQ里做成表情图,在我单位里都传遍了,我这叫一个郁闷呀。
  • Chinaren校友录也有类似的问题,不多说了,百度可以搜出来。
  • 两个方面的想法:1、跟个人隐私有关的内容是不是应该禁止搜索引擎抓取?更不应该进行搜索引擎优化。2、搜索引擎选择信息来源的时候是不是应该对可能产生隐私问题的内容进行屏蔽呢?
  • Google在这些方面比百度做得出色,使我更加信赖Google,更加讨厌百度。

也许是我太暴躁,但是我很讨厌别人总拿我的头像说是,而且我也并不想因为这样而成为一个”名人”。

<

p class=”zoundry_bw_tags”> Technorati : , , , , , , ,

互联网, 娱乐, 搜索引擎, 随笔

midomi,终于可以用声音找歌了

不知道其他人有没碰过这样的事情:偶尔听到一首歌,很好听,但就是不知道歌名,只记得一段旋律或一个片断的点点歌词,你怎么找到它呢?

听到歌词还好办,到百度MP3去搜索歌词片断,运气好的话就可以知道歌名,然后就可以搜索歌曲的MP3,但歌词要是没有搜到呢?或者歌词根本没有记住只记得旋律怎么办?

前几年还做梦,以为通过旋律搜索歌曲很容易就能实现,试过几个感觉都不好,已经死心了,直到最近知道midomi,才让我重新燃起了希望~

midomimidomi官方说明说:”midomi 基于您的声音搜索,因此是终极乐曲搜索工具。唱歌、哼歌或者吹口哨就可以立即找到您喜爱的乐曲,并连接到与您的音乐兴趣相同的社区。”

midomi哼了几首歌,《K歌之王》、《其实不想走》和《真的爱你》等几首歌都认得相当准确,当然自恋地说也可能是因为我哼得音比较准;-)~

如果你也有只知道旋律不知道歌名的歌要找,可以去midomi试试,没准有收获。

<

p class=”zoundry_bw_tags”> Technorati : , ,

UX, 搜索引擎, 随笔

MP3搜索算法还需完善

前几天看电视,听到电视剧《星苹果乐园》的一首插曲:范逸臣的《Walk Away》,很好听,于是跑到百度用关键字”范逸臣 walk away”去搜MP3类型的,搜出一堆文件大小不一的歌,下载了几个发现里面根本没有我要找的歌,全是其他人的同名歌、英文歌。

除了百度MP3,我还试了雅虎MP3搜狗MP3,搜索结果都跟百度的情况类似,差别只在数量上,最后还是用emule解决了问题。

话说回来,准确率对于搜索应该是最基本的可用性指标,像这种歌手、歌名乃至歌词都显示正确,但歌曲不准确的搜索结果,怎么会让用户觉得满意呢?

搜索引擎将数量庞大的歌名、歌词、歌曲爬回来,经过一定的数据对应,合并出各自的音乐(MP3)数据库,这些数据应该是可以被用户正常的检索出来,但如果数据对应本身就存在问题,搜索结果肯定正确不了,也许这就是搜索引擎的算法该去完善的地方。

扯完~

<

p class=”zoundry_bw_tags”> Technorati : , , , , ,

互联网, 搜索引擎, 搜索引擎优化, 社区, 随笔

天涯问答和来吧,谷歌终于动手了

天涯问答天涯来吧谷歌终于在社区上动手了~

昨天早些时间,天涯社区发布了由谷歌做技术支持的问答和来吧,对应的是百度产品线的知道和贴吧。

天涯问答 天涯来吧

昨天下午Google黑板报发布了相关说明,称这一切都是为了搜索引擎的完善,引入对用户信息用户使用习惯的采集。

谷歌确实要在社区上大展拳脚了,但发展路径是不是跟百度太接近了?据说百度的IM也将和邮件捆绑,也跟Gmail和Talk的情况是一样的?竞争原来就是这么互相复制的,除了热闹没别的。

另外,因为是谷歌提供的技术支持,那Google对天涯问答、来吧数据的收录是不是有特别的帮助呢?会不会成为继百度贴吧和百度知道后的又一个SEO专用Link Farm呢?

扯完~

p.s.小道消息,谷歌在天涯驻资高达60%以上(不知道算不算外资入驻),这次操作如此干脆利落是不是也能说明他们的关系?那就不得而知了……

<

p class=”zoundry_bw_tags”> Technorati : , , , , , , , ,

Windows, 操作系统

寻求Win2000Pro版的帮助

有个Win2000Pro的故障,请知道的不吝赐教~

今天回家打开电脑,用原来的用户名/密码登录Win2000,正常登录,但是发现我的桌面、我的文档、开始菜单、快捷菜单都不见了,取而代之的是一个新建用户的桌面。

检查Documents and Settings的文件夹发现,原来的用户名文件夹还在,但是当前这个用户使用的是一个新文件夹:我的用户名是smart,原来的文件夹也是smart,但是现在新生成了一个smart.SMART的文件夹。

不知道我说清楚了没有,这个问题很烦人,系统还是好好的,就是用户出现故障,我死活不知道原因。

精通Windows的达人能告诉我怎么恢复吗?同时也想知道这是怎么搞的。

Technorati :

Javascript, 内容管理系统, 随笔

小试Prototype:为静态文章列表加上标志

昨天,用Prototype.js解决了一个以前一直解决不了的问题,即静态文章列表加上New标志。

工作上一直使用静态的CMS(内容发布系统),好处是发布的内容全部都有静态页面、唯一地址,访问速度也比较稳定,缺点是放弃了动态的效果,比如文章动态链接、列表更新等等,以及今天要说的根据文章发布时间给标题加New标志。

原理是用Javascript分析列表代码里面带有时间的条目,时间是不是在时间限制之后,如果是,就在这个条目的时间代码段前面加上New的标志代码。

首先对文章列表进行改造,发布系统生成<ul>,每篇文章都是一个<li>,每个<li>里面用<a>包含标题,用<samp>来包含发布时间(还可以选择<span>或其他标签,我特意选了不常用的<samp>),最外层用<div>包含(看具体使用来定,也可以使用<table>等),并增加ID属性。以下是列表的代码:

<div id="News">
<ul>
<li><a href="link" target="_blank">Title</a><samp>2006-07-26 10:20</samp></li>
<li><a href="link" target="_blank">Title</a><samp>2006-07-25 10:20</samp></li>
<li><a href="link" target="_blank">Title</a><samp>2006-07-25 10:20</samp></li>
<li><a href="link" target="_blank">Title</a><samp>2006-07-24 10:20</samp></li>
<li><a href="link" target="_blank">Title</a><samp>2006-07-23 10:20</samp></li>
</ul>
</div>

Javascript脚本部分,我设定的时间限制是前天0点,也就是说前天发的内容都会加上New的标志。shownew.js代码如下:

//shownew.js
//email: 94smart(AT)gmail.com
//url: http://blog.94smart.com

var TheDay = new Date(); //初始化时间
TheDay.setDate(TheDay.getDate()-2); //将时间设定为前天,看实际需要而定
TheDay.setHours(0,0,0); //将时间设定为前天0点
var newImage = '<img src="images/icon_new.gif" border="0" alt="New" />'; //New字样图片的代码

function showNew(listId){ //参数listId是要处理列表的ID
var thisList = $(listId).getElementsByTagName('li');
var listArray = $A(thisList);
listArray.each(function(listItem){
theSamp = listItem.getElementsByTagName('samp'); //取li里面的samp标签的内容
theSamp = theSamp[0];
theTime = theSamp.innerHTML; //得到文章的发布时间
theTime = new Date(theTime.replace(/\-/g, "/")); //替换时间格式为yyyy/mm/dd h:m:s,如果正好是Javascript的时间格式就不需要这行
if (theTime>=TheDay) {
new Insertion.Before(theSamp, newImage); //如果发布时间比设定的时限晚就在samp标签前面插入New图片代码
}
});
}

使用的时候在<head>区插入代码:<script src="prototype.js" type="text/javascript"></script>
<script src="shownew.js" type="text/javascript"></script>,在列表的HTML代码下方加入:<script type="text/javascript">showNew('News');</script>,ok,刷新你的页面,看到New了吗?没有的话看这里

上面的代码还可以再挖掘一下,这里就不继续了,希望我的代码对其他人有所帮助。

需要说明的是,用的Prototype是Prototype v1.4.0,别的版本没试,应该也可以。Prototype库真的很强大,尤其是对于我这样的懒人,懒得自己写底层的业余JS人员。

Technorati : , ,