xu's profileiCream@NirvanaPhotosBlogListsMore Tools Help

Blog


    28/09/2006

    郁闷的这2天

    笔记本到新疆去旅游了,家里的电脑显示器坏掉了,公司的电脑也坏掉了,郁闷啊,今天下班的时候才修好,公司又在忙着展览,大部分人都去展会了,不少外地的都回家,商业项目现在变成都要我来操作,一下子忙起来,狂晕,这几天没电脑用实在是不爽快,kb.nirvanastudio.org的修改根本无法进行,商业项目中一个该死的客户本来可以早就结束了,但是他们的速度实在是太慢了,导致很多事情明明已经可以结束,但是就是不能画句号,还有一个客户,最最最可恶,10月4日或者10月5日要我们过去,晕,10.1休假少了一天,忙到则,今天这篇blog在鸡鸡家写的,郁闷无比,明天晚上一定要把笔记本拿回来,不然真的什么事情都做不了了,555~
    24/09/2006

    Explaining User Experience

    转载:Xiaoxiao's Weblog
    原文:Jeremy Johnson
      Jeremy Johnson在他的Blog里对用户体验进行了一些解释,在经得Jeremy的同意后,我把“他对用户体验的看法 Insert External Link ”的主要部分翻译成了中文。请允许我翻译成“宇宙”,可能用户体验还会有更多的“行星”参与到其中。
      本图版权归JeremyJohnson所有  

    http://static.flickr.com/88/249709076_936fe3cfd1_o.jpg


      Jerey指出:Managing the Project (管理项目)、Defining the Problem (定义问题所在)、Designing the Experience (设计体验)、Architecting the Technology (后台架构技术)、Delivering the Experience (前台提供体验)是用户体验的五个重要组成部分。在五个组成部分里又包含着各自的工作方向。
      中文已经很清楚了,我想没必要来解释这些工作方向有什么不同。我想谈一下国内对用户体验的理解,可能在一个普通的公司,根本就没有一个公司投入至少五个人(针对五个部分)来作一个项目,所以才有了“体验:设计不能承受之重 Insert External Link ”这样的帖子。OK,我们可以针对五个部分来衡量一下哪些部分影响了设计师的情绪。

    引用
    • 商业定位、市场推广、产品需求是否精准;
    这一条属于项目管理PM来完成,同时,用户研究和问题归纳、需求整理与此同时进行,PM应该主导产品。
    引用
    • 系统是否稳定、快速、高效;
    系统的高效,快速管理应该有前台开发提供优秀的表现形式,后台作为技术架构,前台后台共同完成产品的开发过程。有人会问网站产品类的网站制作是属于什么,我想应该属于前台开发。
    引用
    • 色彩和风格是否对业务需求有强化和固化的作用
    色彩和风格的定义这个不用说了,HCI和GUI前后共同配合完成。但主要是HCI决定交互,GUI表现图形,不论什么形式,应以内容为主。

    然后,Angel Insert External Link 提到影响到用户体验的包括:
    引用
    • 网站的内容是否契合期望值;
    • 文字措词是否得体;
    • 下载速度是否可以忍受;
    • 功能是否实用;
    • 信息提示是否及时;
    • 布局是否清晰
      Angel指出的这一个部分是属于Jeremy在图中左上角体验设计部分,但产品的用户体验是一个小团队,设计师在曾担用户体验中,我想左上角和左下解的两个部分是目前国内分得最不清楚的一点,设计师承担了Defining the Problem和Designing the Experience 两个部分全部的工作,可能还要生成一下HTML [angry] 。我所了解到有的小型公司,一个开发和一个设计师承担了所有的工作,这个是可怕和恐怖的。
     
      这些问题有的与GUI相关,有的与前台开发相关,有的和信息构架相关,有的和措词相关。但有一点肯定的是,PM没有发挥出应有的作用,整个项目的运作项目经理应该贯穿始终,哪里有问题了就应该到哪里去,协调几个部分的工作。如果把所有的问题都归究于设计师,显然这样是不对的。当然,国内的公司有的可能没有人力和财力组成小团队去做用户体验,但我觉得,Jeremy提到的五个部分,我们可以分成三个部分,三个角色来做:一、设计师,承担左上角和左下角的设计和调研工作;二、工程师,承担前台和后台的开发工作;三、项目经理,主导整个项目的时间进度和协调。如果这样还不行的化,那么项目经理由老板来作。其实这里面讲究的是一个配合,“宇宙”中的分支项目可多可少,主要的是哪一方面,核心的是那一方面可以放在第一期来作,其余的在进行第二期运营,这样就会好一些。
    14/09/2006

    谈论 《JavaScript 高级程序设计》

     

    引用

    《JavaScript 高级程序设计》

    很好的一本书推荐一下!

    引用

    [ShiningRay @ Blogger] JavaScript高级程序设计
    来源:http://www.nirvanastudio.org/javascript/professional-javascript-for-web-developers.html profession-javascript-cover.jpg

    基本信息

    • 【英文名】Professional JavaScript for Web Developers
    • 【作者】Nicholas C. Zakas
    • 【译者】曹力 张欣
    • 【ISBN】7115152098
    • 【出版时间】2006-9-15
    • 【页码】670
    • 【原出版社】Wrox
    • 【简介】本书从最早期Netscape浏览器中的Javascript开始讲起,直到当前它对XML和Web服务的具体支持,展示了如何充分利用这种功能强大的语言开发自己的应用程序,以解决当今Web开发者面对的商业问题。
    • 活动主页

    译者序

    亲爱的读者:

    当您从书架上拿出这本书的时候,我想您肯定对Ajax技术有着浓厚的兴趣,而本书也正是您的正确选择。本书的作者Nicholas C. Zakas用通俗易懂的语言,将JavaScript的诞生、现在的状况、未来的发展和与其紧密相关的各种技术一一详尽地叙述出来,刚学 JavaScript的朋友,可以按部就班成为高手,而已经是高手的朋友,则可以将本书作为参考手册。

    第1章讲述了JavaScript的起源,给大家一个关于JavaScript正确的认知。

    第2~5章详细介绍了JavaScript语言本身,揭示了一些JavaScript不为认知的语言特点。

    第6~9章介绍了JavaScript和浏览器进行交互的一些基础知识和一些进阶知识,如DOM的基础、正则表达式。

    第10~13章介绍了一些更加高级的JavaScript技巧,这些技巧可以构建良好的客户端逻辑,包括表格排序、拖动等。

    第14章关于错误处理的内容,既有如何编程处理JavaScript错误,也包含了如何调试JavaScript的方法,而调试一直是JavaScript的弱项。

    第16、17章讲述了利用JavaScript进行客户端到服务器的同学,不仅仅介绍了现在的Ajax技术的基础XML HTTP Request,还介绍了曾经出现过的一些方法。第17章更明确的介绍了如何调用Web服务。

    第19章,介绍了如何考虑生产环境中JavaScript所需要注意的一些事情,如安全性、性能等。

    第20章,展望了JavaScript未来的发展。

    本书除了介绍了JavaScript的各个方面外,更难得的是,作者更涵盖了现今各个流行浏览器之间在这些方面的区别,并帮助读者,解决这些问题。

    本书第1~5章由张欣翻译,第6~20章由曹力翻译,全书由张欣统稿、润色及审校。还要感谢全体工作人员的努力才将本书完成。

    我们深深地感我们的家人和朋友。在翻译过程中,他们给予了我们莫大的关心、支持和帮助。

    限于我们的水平,翻译过程中的疏漏和错误再作难免,请广大读者批评指正。

    曹力
    2006年于东南大学

    目录

    第1章  JavaScript是什么 1
    1.1 历史简述 1
    1.2 JavaScript实现 2
    1.2.1 ECMAScript 3
    1.2.2 DOM 5
    1.2.3 BOM 8
    1.3 小结 8
    第2章 ECMAScript基础 9
    2.1 语法 9
    2.2 变量 10
    2.3 关键字 12
    2.4 保留字 12
    2.5 原始值和引用值 13
    2.6 原始类型 13
    2.6.1 typeof运算符 14
    2.6.2 Undefined类型 14
    2.6.3 Null类型 15
    2.6.4 Boolean类型 15
    2.6.5 Number类型 15
    2.6.6 String类型 17
    2.7 转换 18
    2.7.1 转换成字符串 18
    2.7.2 转换成数字 19
    2.7.3 强制类型转换 20
    2.8 引用类型 22
    2.8.1 Object类 22
    2.8.2 Boolean类 23
    2.8.3 Number类 23
    2.8.4 String类 24
    2.8.5 instanceof运算符 28
    2.9 运算符 28
    2.9.1 一元运算符 28
    2.9.2 位运算符 32
    2.9.3 Boolean运算符 37
    2.9.4 乘性运算符 40
    2.9.5 加性运算符 41
    2.9.6 关系运算符 42
    2.9.7 等性运算符 43
    2.9.8 条件运算符 45
    2.9.9 赋值运算符 45
    2.9.10 逗号运算符 46
    2.10 语句 46
    2.10.1 if语句 46
    2.10.2 迭代语句 47
    2.10.3 有标签的语句 48
    2.10.4 break语句和continue语句 48
    2.10.5 with语句 50
    2.10.6 switch语句 50
    2.11 函数 51
    2.11.1 无重载 53
    2.11.2 arguments对象 53
    2.11.3 Function类 54
    2.11.4 闭包 56
    2.12 小结 57
    第3章 对象基础 58
    3.1 面向对象术语 58
    3.1.1 面向对象语言的要求 58
    3.1.2 对象的构成 59
    3.2 对象应用 59
    3.2.1 声明和实例化 59
    3.2.2 对象引用 59
    3.2.3 对象废除 59
    3.2.4 早绑定和晚绑定 60
    3.3 对象的类型 60
    3.3.1 本地对象 60
    3.3.2 内置对象 70
    3.3.3 宿主对象 75
    3.4 作用域 75
    3.4.1 公用、受保护和私有作用域 75
    3.4.2 静态作用域并非静态的 76
    3.4.3 关键字this 76
    3.5 定义类或对象 78
    3.5.1 工厂方式 78
    3.5.2 构造函数方式 80
    3.5.3 原型方式 80
    3.5.4 混合的构造函数/原型方式 81
    3.5.5 动态原型方法 82
    3.5.6 混合工厂方式 83
    3.5.7 采用哪种方式 84
    3.5.8 实例 84
    3.6 修改对象 86
    3.6.1 创建新方法 86
    3.6.2 重定义已有方法 87
    3.6.3 极晚绑定 88
    3.7 小结 88
    第4章 继承 89
    4.1 继承机制实例 89
    4.2 继承机制的实现 90
    4.2.1 继承的方式 90
    4.2.2 一个更实际的例子 96
    4.3 其他继承方式 100
    4.3.1 zInherit 100
    4.3.2 xbObjects 104
    4.4 小结 108
    第5章 浏览器中的JavaScript 109
    5.1 HTML中的JavaScript 109
    5.1.1 〈script/〉标签 109
    5.1.2 外部文件格式 110
    5.1.3 内嵌代码和外部文件 111
    5.1.4 标签放置 111
    5.1.5 隐藏还是不隐藏 113
    5.1.6 〈noscript/〉标签 113
    5.1.7 XHTML中的改变 114
    5.2 SVG中的JavaScript 116
    5.2.1 SVG基础 116
    5.2.2 SVG中的〈script/〉标签 117
    5.2.3 SVG中的标签放置 118
    5.3 BOM 119
    5.3.1 window对象 119
    5.3.2 document对象 130
    5.3.3 location对象 133
    5.3.4 navigator对象 135
    5.3.5 screen对象 136
    5.4 小结 137
    第6章 DOM基础 138
    6.1 什么是DOM? 138
    6.1.1 XML简介 138
    6.1.2 针对XML的API 141
    6.1.3 节点的层次 141
    6.1.4 特定语言的DOM 144
    6.2 对DOM的支持 145
    6.3 使用DOM 145
    6.3.1 访问相关的节点 145
    6.3.2 检测节点类型 146
    6.3.3 处理特性 147
    6.3.4 访问指定节点 148
    6.3.5 创建和操作节点 150
    6.4 HTML DOM特征功能 155
    6.4.1 让特性像属性一样 155
    6.4.2 table方法 156
    6.5 遍历DOM 158
    6.5.1 NodeIterator 158
    6.5.2 TreeWalker 163
    6.6 测试与DOM标准的一致性 165
    6.7 DOM Level 3 166
    6.8 小结 166
    第7章 正则表达式 167
    7.1 正则表达式支持 167
    7.1.1 使用RegExp对象 168
    7.1.2 扩展的字符串方法 169
    7.2 简单模式 170
    7.2.1 元字符 170
    7.2.2 使用特殊字符 170
    7.2.3 字符类 172
    7.2.4 量词 174
    7.3 复杂模式 177
    7.3.1 分组 177
    7.3.2 反向引用 178
    7.3.3 候选 179
    7.3.4 非捕获性分组 180
    7.3.5 前瞻 181
    7.3.6 边界 182
    7.3.7 多行模式 183
    7.4 理解RegExp对象 184
    7.4.1 实例属性 184
    7.4.2 静态属性 185
    7.5 常用模式 186
    7.5.1 验证日期 187
    7.5.2 验证信用卡号 188
    7.5.3 验证电子邮件地址 192
    7.6 小结 193
    第8章 检测浏览器和操作系统 194
    8.1 navigator对象 194
    8.2 检测浏览器的方式 194
    8.2.1 对象/特征检测法 194
    8.2.2 user-agent字符串检测法 195
    8.3 user-agent字符串简史 196
    8.3.1 Netscape Navigator 3.0与 IE3.0 196
    8.3.2 Netscape Communicator 4.0与IE 4.0 197
    8.3.3 IE 5.0及更高版本 198
    8.3.4 Mozilla 198
    8.3.5 Opera 200
    8.3.6 Safari 201
    8.3.7 结语 201
    8.4 浏览器检测脚本 201
    8.4.1 方法学 202
    8.4.2 第一步 202
    8.4.3 检测Opera 204
    8.4.4 检测Konqueror/Safari 206
    8.4.5 检测IE 208
    8.4.6 检测Mozilla 209
    8.4.7 检测Netscape Communicator 4.x 210
    8.5 平台/操作系统检测脚本 211
    8.5.1 方法学 211
    8.5.2 第一步 212
    8.5.3 检测Windows操作系统 212
    8.5.4 检测Macintosh操作系统 214
    8.5.5 检测Unix操作系统 214
    8.6 全部脚本 215
    8.7 例子:登录页面 219
    8.8 小结 224
    第9章 事件 225
    9.1 今天的事件 225
    9.2 事件流 226
    9.2.1 冒泡型事件 226
    9.2.2 捕获型事件 227
    9.2.3 DOM事件流 228
    9.3 事件处理函数/监听函数 229
    9.3.1 IE 230
    9.3.2 DOM 231
    9.4 事件对象 232
    9.4.1 定位 233
    9.4.2 属性/方法 233
    9.4.3 相似性 235
    9.4.4 区别 238
    9.5 事件的类型 240
    9.5.1 鼠标事件 240
    9.5.2 键盘事件 244
    9.5.3 HTML事件 246
    9.5.4 变化事件 251
    9.6 跨平台的事件 252
    9.6.1 EventUtil对象 252
    9.6.2 添加/删除事件处理函数 252
    9.6.3 格式化event对象 254
    9.6.4 获取事件对象 258
    9.6.5 示例 259
    9.7 小结 260
    第10章 高级DOM技术 261
    10.1 样式编程 261
    10.1.1 DOM样式的方法 263
    10.1.2 自定义鼠标提示 264
    10.1.3 可折叠区域 265
    10.1.4 访问样式表 266
    10.1.5 最终样式 270
    10.2 innerText和innerHTML 271
    10.3 outerText和outerHTML 273
    10.4 范围 274
    10.4.1 DOM中的范围 274
    10.4.2 IE中的范围 284
    10.4.3 范围在实际中的应用 288
    10.5 小结 288
    第11章 表单和数据完整性 289
    11.1 表单基础 289
    11.2 对〈form/〉元素进行脚本编写 291
    11.2.1 获取表单的引用 291
    11.2.2 访问表单字段 291
    11.2.3 表单字段的共性 292
    11.2.4 聚焦于第一个字段 292
    11.2.5 提交表单 293
    11.2.6 仅提交一次 294
    11.2.7 重置表单 295
    11.3 文本框 295
    11.3.1 获取/更改文本框的值 296
    11.3.2 选择文本 297
    11.3.3 文本框事件 298
    11.3.4 自动选择文本 298
    11.3.5 自动切换到下一个 299
    11.3.6 限制textarea的字符数 300
    11.3.7 允许/阻止文本框中的字符 301
    11.3.8 使用上下按键操作数字文本 306
    11.4 列表框和组合框 308
    11.4.1 访问选项 309
    11.4.2 获取/更改选中项 309
    11.4.3 添加选项 310
    11.4.4 删除选项 311
    11.4.5 移动选项 312
    11.4.6 重新排序选项 313
    11.5 创建自动提示的文本框 313
    11.5.1 匹配 314
    11.5.2 内部机制 314
    11.6 小结 316
    第12章 表格排序 317
    12.1 起点——数组 317
    12.2 对单列的表格排序 319
    12.2.1 比较函数 320
    12.2.2 sortTable()函数 320
    12.3 对多列表格进行排序 323
    12.3.1 比较函数生成器 323
    12.3.2 修改sortTable()方法 324
    12.3.3 逆序排列 325
    12.3.4 对不同的数据类型进行排序 327
    12.3.5 高级排序 330
    12.4 小结 334
    第13章 拖放 335
    13.1 系统拖放 335
    13.1.1 拖放事件 336
    13.1.2 数据传输对象dataTransfer 341
    13.1.3 dragDrop()方法 345
    13.1.4 优点及缺点 346
    13.2 模拟拖放 346
    13.2.1 代码 347
    13.2.2 创建放置目标 349
    13.2.3 优点及缺点 352
    13.3 zDragDrop 352
    13.3.1 创建可拖动元素 352
    13.3.2 创建放置目标 353
    13.3.3 事件 353
    13.3.4 例子 354
    13.4 小结 355
    第14章 错误处理 356
    14.1 错误处理的重要性 356
    14.2 错误和异常 357
    14.3 错误报告 358
    14.3.1 IE(Windows) 358
    14.3.2 IE(MacOS) 359
    14.3.3 Mozilla(所有平台) 359
    14.3.4 Safari(MacOS) 360
    14.3.5 Opera 7(所有平台) 361
    14.4 处理错误 362
    14.4.1 onerror事件处理函数 362
    14.4.2 try...catch语句 365
    14.5 调试技巧 370
    14.5.1 使用警告框 370
    14.5.2 使用Java控制台 371
    14.5.3 将消息写入JavaScript控制台 (仅限Opera 7+) 372
    14.5.4 抛出自定义错误 372
    14.5.5 JavaScript校验器 373
    14.6 调试器 374
    14.6.1 Microsoft Script Debugger 374
    14.6.2 Venkman 376
    14.7 小结 383
    第15章 JavaScript中的XML 384
    15.1 浏览器中的XML DOM支持 384
    15.1.1 IE中的XML DOM支持 384
    15.1.2 Mozilla中XML DOM支持 388
    15.1.3 通用接口 393
    15.2 浏览器中的XPath支持 403
    15.2.1 XPath简介 403
    15.2.2 IE中的XPath支持 404
    15.2.3 Mozilla中的XPath支持 404
    15.3 浏览器中的XSLT支持 408
    15.3.1 IE中的XSLT支持 410
    15.3.2 Mozilla中XSLT支持 413
    15.4 小结 415
    第16章 客户端与服务器端的通信 416
    16.1 cookie 416
    16.1.1 cookie的成分 416
    16.1.2 其他安全限制 417
    16.1.3 JavaScript中的cookie 417
    16.1.4 服务器端的cookie 419
    16.1.5 在客户端与服务器端之间传递cookie 422
    16.2 隐藏框架 423
    16.3 HTTP请求 426
    16.3.1 使用HTTP首部 428
    16.3.2 实现的复制品 429
    16.3.3 进行GET请求 430
    16.3.4 进行POST请求 430
    16.4 LiveConnect请求 431
    16.4.1 进行GET请求 431
    16.4.2 进行POST请求 433
    16.5 智能HTTP请求 435
    16.5.1 get()方法 435
    16.5.2 post()方法 438
    16.6 实际使用 439
    16.7 小结 439
    第17章 Web服务 440
    17.1 Web服务快速入门 440
    17.1.1 Web服务是什么? 440
    17.1.2 WSDL 441
    17.2 IE中的Web服务 443
    17.2.1 使用WebService组件 444
    17.2.2 WebService组件例子 445
    17.3 Mozilla中的Web服务 447
    17.3.1 加强的特权 447
    17.3.2 使用SOAP方法 448
    17.3.3 使用WSDL代理 451
    17.4 跨浏览器的方案 454
    17.4.1 WebService对象 454
    17.4.2 Temperature 服务 456
    17.4.3 使用TemperatureService对象 458
    17.5 小结 458
    第18章 与插件进行交互 459
    18.1 为何使用插件 459
    18.2 流行的插件 460
    18.3 MIME类型 460
    18.4 嵌入插件 461
    18.4.1 加入参数 461
    18.4.2 Netscape 4.x 462
    18.5 检测插件 462
    18.5.1 检测Netscape式插件 463
    18.5.2 检测ActiveX插件 467
    18.5.3 跨浏览器检测 469
    18.6 Java applet 470
    18.6.1 嵌入applet 470
    18.6.2 在JavaScript中引用applet 471
    18.6.3 创建applet 471
    18.6.4 JavaScript到Java的通信 472
    18.6.5 Java到JavaScript的通信 475
    18.7 Flash动画 477
    18.7.1 嵌入Flash动画 477
    18.7.2 引用Flash动画 478
    18.7.3 JavaScript到Flash的通信 478
    18.7.4 Flash到JavaScript通信 481
    18.8 ActiveX控件 483
    18.9 小结 485
    第19章 部署问题 486
    19.1 安全性 486
    19.1.1 同源策略 486
    19.1.2 窗口对象问题 487
    19.1.3 Mozilla特有的问题 488
    19.1.4 资源限制 490
    19.2 国际化 491
    19.2.1 使用JavaScript检测语言 491
    19.2.2 策略 492
    19.2.3 字符串的思考 492
    19.3 优化JavaScript 495
    19.3.1 下载时间 495
    19.3.2 执行时间 499
    19.4 知识产权的问题 512
    19.4.1 混淆 512
    19.4.2 Microsoft Script Encoder(仅IE) 513
    19.5 小结 514
    第20章 JavaScript的未来 515
    20.1 ECMAScript 4 515
    20.1.1 Netscape的提案 515
    20.1.2 实现 521
    20.2 ECMAScript for XML 522
    20.2.1 途径 522
    20.2.2 for each..in循环 524
    20.2.3 新的类 524
    20.2.4 实现 532
    20.3 小结 532
    索引


    --
    Posted By ShiningRay to ShiningRay @ Blogger at 9/14/2006 02:31:00 下午
    13/09/2006

    从网上银行看用户体验

    由于需要,办理了一张建设银行的银行卡,开通了网上帐号,我本来拥有工商银行的帐号,但是在使用过程中,发现,建设银行的网上银行服务实在是不爽。就一个极其简单的帐户余额查询功能,工商银行很方便的只需点击3次按钮就可以了,而且按钮位置明显,容易被发现,而建设银行却非常糟糕,首先,网上银行打开的是小窗口,其次,其需要先选择帐户,然后点击下方的按钮才能够察看余额,建设银行的想法是一个网上银行用户可能在建行拥有多个帐户,因此选择帐户这一点可以理解,但是他把常用按钮安放在页面底部,首先,按照人的正常浏览网页的习惯来看,从上至下,从左至右,它把常用按钮安放在浏览器下发不太会注意到,而且,按钮比较小,不易发现,页面中没有明显的提示语句,或者帮助语句,我为了查帐,其实已近到帐2天了,但是我愣是没有查出,还有一点,建行在遍列帐户的时候,将什么余额等其他信息已表格形式列出,但是,在标题下方,却只有一个帐号,其他表格为空,往往使使用的人误以为帐上没钱,特别是第一次使用的人,相比较而言,工商银行做得比较好,正页浏览,左右框架页面,左边有详尽的说明,按钮位置醒目,且突出,易发现,方便使用,容易上手。我以为,建行如果需要为了方便用户选择帐户,应当只把账户,即帐号做一次遍列,无须其他相关信息,调整常用按钮位置,账号遍列不需要采用列表形式,可以使用多选框或者单选框实现,一目了然,最好以醒目的文字在附近,进行附加说明,引导使用者,特别是第一次使用的人员。
    以上只是使用网上银行的一些感受,欢迎大家讨论。
    03/09/2006

    这就是命啊

    我现在越来越相信命了,虽然昨天做梦做到好多次拿回了我想那会的东西,但是,每次睁开眼睛,都是骗人的,当我在梦中满心欢喜的时候,张开眼,依旧是郁闷,就犹如她把戒指掉了,但是最终还是找回来一样,就是这样,这就是命,所以,命是怎么说的,那么我就是什么样子,但是真的很郁闷,毕竟如此贵重的礼物,毕竟是她送的,都是我自己的错,不该喝酒,不该抽烟,抽什么烟阿,喝什么酒啊,靠,TM是不是人啊,要不然怎么会弄成这样子呢,一个晚上梦醒了好多次,除了失望还是失望,郁闷,人难过极了,不愿意去回想,但是当事情发生的时候,我总会不自觉地去回想,不知道是坏习惯还是好习惯,我会郁闷很长时间的,请各位不要找我,丢了就是丢了,在多少钱也是买不回一样的了,就像该死的人不可能两次都踏进同一条河里,请不要来烦我,我会火的。
    02/09/2006

    命,这就是命

    如题,最近请勿和我联系,如有疑问,我会发火!!