EnjoyText·文星·自述

文星从诞生日起,经历了十多年的维护开发,其间软件的名称也由最初的PDManage经过TWStar的演变最终固定为EnjoyText。本记录记下我与文星的这十二年生活,是为梳理,也为纪念自己将逝的青春….

 

 

1 前言 我的人生

 

 

我,文星软件的作者,是一名软件工程师,非典型IT人。

 

从事软件开发并不是自己为自己设定的人生目标,在一个僻静单位朝九晚五的从事与自己专业息息相关的研究才是自己规划的理想人生。只是一次别无选择的机缘把自己推到了软件这一行业, 1999年随着我研究生学业的终结,我开始了IT业的职业生涯,那一年我不到26岁…

 

文星,只是我所写的其中一份软件…

 

 

2.文星雏形的诞生

PDM 文本资料的记录者

 

 

文星的诞生最早可追溯于2000年之末,当时出于工作上方便的考虑,急需一份可置顶的文本编辑器用来记录和粘贴复制一串串的密钥。随后文星的第一份雏形PDM 1.0诞生。这个看似练手的工具却为后来一个完美软件的奠定了最基础的框架,即数据库文件为载体,以目录树视图方式展显库中文本结构实现随机访问并以口令为安全手段的访问控制机制。紧接着PDM 1.5又确立了文星的又一个基本特色,文本主题风格布局。

 

PDM和固定名称的数据库进行了绑定,为方便同一机器上不同用户使用,它采用了标识符来界定个人数据,每个标识符都对应着数据库里一堆带有目录层次结构的数据。切换标识符需键入对应的口令以防非法访问。

 

当时互联网刚刚兴趣,小清新的散文流行于网间,我用PDM记录了一位网友的数十篇散文以及和一笔友的来往通信。

 

 

3.个人数据管理时代的到来

PDManager 安全的文本数据管理器

 

 

PDM毕竟太简单了,由于和单一数据库的绑定,使得不同标识符(对应不同人)的数据共同保存在同一数据库里。在个人电脑及移动存储介质还并不普及的当时,使得PDM对个人数据管理的方式亟待提升。

 

个人数据管理最核心的问题是安全性。即个人数据随身携带,即使丢失,也不被非法访问。

 

2002年初,PDM 转身为 PDManage 迎来个人数据管理的时代。在PDManage 1.0这一全新升级里采用了多文档框架并解除了和数据库的绑定,使得不同的操作者不再借助于标识符就能直接管理操作不同的数据库文件;同时也确立了口令下以密钥分散为手段的数据加密机制,做到一文一密,有力的确保了数据的安全。此外劈山问天工作室的标志开始被正式使用。

 

相对于文星的发展而言,PDManager最重要的革新并不在安全性上的突破,而是在文本写作观念的形成,即“以纯文本为文稿存储格式,以文字为唯一表达方式的写作创造”。

 

在这一观念下, PDManager 2.0 确立了文章的组成要素由标题作者导读及正文组成,规范了数据库文件结构,并和后缀名为pdb的文件进行关联。

 

紧接着PDManager 2.35进一步发展了文本写作管理的相关功能,提供了回收站,数据导入导出等相关操作,开放系统设置,同时增加了多个文本风格主题的实现,在打印输出方面更是开启了多版面打印和批操作打印的先河,加上InstallShield专业的安装包及图文并茂排版精美的使用手册,PDManager经过此完善,已具备一个共享软件的基本素质并迎来了最初的注册用户。

 

在这个期间里,生活的际遇及心性的有感而发让我开始领悟了散文形散神不散的真谛,陆续里开始了散文的写作并因之结缘了不少朋友。我将所写的十来篇文章用PDManager整理完毕打印输出并装订成册,一日友人来访,送与对方做了纪念。

 

一灯如豆,静夜似歌,伴着半段箫声,是文字陪我度过了人生最艰难的时刻。

十年后,依然有人来信请求注册PDManager.

 

 

4. 非典中的思索与TWStart文星的蕴育待发。

我们需要什么样的文本写作

 

 

2003是许多人无法抹去记忆的一年,非典无疑是人类的灾难,身处非典中心的我更是难以置身事外,歇业在家2月余。当时的北京城,商贾闭户行人稀少,恐惧和不安弥漫其中,也就那时我有了一段从业来少有的自我放松,早起到毗邻的菖蒲河公园晨练散步,随后去菜市场里买菜,午间小憩后开始自我工作,待快要日暮时骑车出门到前门一带的胡同里转耍,其悠闲状态颇有大隐于市之风。

 

得益于这份闲散,让我有了时间和空间去思索着“我们需要什么样的文本写作”。这不单是功能层面的事情,更是一种久蓄待发精神支撑气柱的召唤。

 

在那两个月里我完成了诸多功能的设计和实现,包括语音输入与朗读,加密解密与压缩的互转,文库与文章的只读切换,其中多页同屏打印预览以及多级撤销重做最复杂的两项功能也在那段时间得到了实现。特别是后者,那是我与面向对象设计的一次深度的对话,若干年后当设计模式一度被推崇后,我发现自己早已力行了命令模式的应用实践。

 

经历非典的沉淀与思索,文星直书蕴育中待发。

 

 

5.文星时代的开启。技术与人文的并举

TWStar 秉笔直书文本写作理念的倡导者

 

 

伴随非典的结束,我进到国内又一著名的软件企业。新工作环境让自己感悟最深的一点就是有了学习才有自我的提高。在那里我明白了代码规范的重要,版本控制的必要,设计模式的需要,于是我向前人学向好的设计学向已有的代码学。在看似枯燥的学习中感受着技术不断提升的快乐,也将不断提升的技术用于文星的实践。

 

2004年5月4日,TWStar 文星迎来非典之后的正式亮相,相比PDManager2.35无论功能还是界面都有了长足的增强和提升。酷炫的动画特技,插件的无缝集成,平面菜单,背景音乐,精灵助手,以及版式文件阅读器的加盟,文库检索,诸多文本转换等等,让文星告别了一个小工具的历史,充实丰盈了起来。

 

然而相比功能的扩展与技术的进步,文星更钟情于人文的自我梳理。它在最醒目的地方明确地表达了自身所奉直书的人文内涵, 首开同类软件先河并再无来者。“铁肩担道义,真情著文章”,“为天地立心,为生民立命,为往圣继绝学,为万世开太平”,此刻的文星已不单是一工具软件,更是秉笔直书的为文理念的倡导者和力行人。文星执拗地要求每位使用者都必须作为直书的承诺,共同关注社会,关注每个个体生命的权益与情感,呼唤每一份的文字,都能面对千年人文历史作出无愧的回答。

 

和文星直书个性相关的一点故事,因嫌我转正报告字数太少,这家企业人力资源总监拒绝批准我转正,于是我执笔写信给了她,讲叙了一个真实的故事并直言道“字少是因为尊重,和大家一样多是敷衍,比大家多是鄙视”,于是得以顺利通过。

 

此刻的文星,恰似一名适时而生的热血青年….

 

这是个人文与技术并举的时期,文星在快速的成长。

 

 

6. 一次严重错误的提醒

痛定思痛后,文星得到更稳定的发展

 

 

文星2004秉笔直书版的发布,迅速得到了文字爱好者们的关注,一月内下载量近万,最多的一天曾接到8个注册请求。当自己作品被多人肯定后多少都有一种成就感,于是又有了更多的热情投身其中,在随后的5个月里,紧密的推出了多个版本,对诸多功能进行了增补修改和完善。

 

过快的更新,仓促的测试,终于导致了一次严重错误的发生。网友小武反馈书写半年的日记经文星6.7版后成为乱码,当接到这份乱码文件并在自己机器上复现同样错误后,内心一片愧疚懊悔。通过连夜排查,确认是自己设计疏忽导致加密数据库在执行过整理之后密码信息丢失所致,于是2天后紧急发布了补丁程序,呼吁大家做好备份并在出现异常时第一时间联系作者。

 

小武是名在平面设计领域里卓有建树的北漂大男孩,也是自己忠实的粉丝并几度专程从南城跑来与我见面。朋友的信任是无可推却的责任,我专程写了个程序,结合他提供的密码信息,逐一尝试从一堆乱码里恢复出了大部分内容。

 

回想自己写作的艰辛,不可想象同样乱码厄运的发生。

痛定思痛后,文星加强每一版发布前的测试,开始了更稳健的发展。

 

 

7. 沉寂4年后文星又一全新的亮相。

EnjoyText 尽享文字乐趣的轻松文本书写

 

随着TWStar 7.1的稳定发布,文星开始了三年的沉寂。此刻买房交友,新的奋斗课题相继给出,于是空间逐渐被一些现实的作业塞满。庆幸赶上房价上涨前的末班车,三年下来贷款已还得七七八八,生活开始趋于安定。有感于提高有限,07年初我来到了一家外企谋求新的发展。

 

时逢外企也正处于转型时期,一年后被临时划入自己兴趣与所长都不具有的web组,其时的web组自身也是飘摇不定,我也只得练手度日。生活的安定,待命的无所事事,于是趁着这间隙,文星开始了新一轮变革的酝酿…

 

有人说过,不在沉默中爆发,就在沉默中灭亡。

但文心不灭,文星就不会消亡。

沉寂只是给了文星一次平静的审视自己从而超越自我的机遇。

 

文星确立让文本写作回归自然的变革方向,一面在精简自身,一面又引入新的功能完善自己,附注,在位预览,文章备份,新插件……

 

为彰显不同以往的变革,文星着力于一个清新的界面设计。在沉稳低调的主色调指导下,大部分操作界面完成了统一的平面化和皮肤化,帮助也重新编排,另每一份版权页底图及文本风格插件还精心设计了隽永的话语,既赏心悦目,也余味耐寻。为解决界面中部分编程中遇到的难点我还第一次写信向国外同行请教,虽然最终还是自己完成了问题的解决。

 

09年之初,我也正式编入图像组开始了数年的人机交互课题的研究…

 

同年5月,TWStar正式更名为EnjoyText,悄然复出了。如同一种命定,竟和4年前TWStar一样定在青年节亮相发布。新作8.0沿袭了文星的中文名称,但近三百多处的更新,证实着文星品质的进一步提升, 也代表着文本写作的自然回归。 "直书人生尽享文字快乐" ,崭新的人文理念赋予了文星新的生命活力,也诠释着文星不断超越自我的决心。

 

如果说04版的文星是名洋溢着书生气息的热血青年,那么08版的文星则是位德言行共立的沉稳中年。经历过生活风雨的洗礼和自我再梳理,文星迎来了它生命中又一次的重生。

 

随着工作有条不紊的进行,文星也开始了不紧不慢的一路更新到9.2,Word及PDF矢量输出,图像视图,文件打开及打印前的预览,多剪贴板,备份差异比对,歌词下载与同步显示,对Vista及Win7的兼容……。其中PDF输出技术有意申请专利保护,但经专利查新后获知另一家知名公司已于半年前递交过了类似申请,因而放弃了。

 

 

8. 行云流水,后 EnjoyText 时代。

纯净的文本,纯净的心灵,纯净的书写,我有我的坚持

 

2010年,文星十年之期,这一年里我带着科研成果圆满完成去国外的技术展示与交流,也是这一年里女友博士毕业却无法留京去了外地。多年情感难以为继,人生不得以又是一段转折的命运。情感生活的缺失,内心难以排挤的惆怅,让自己更加的寄情文字,文星一时占据了自己大半个生活。

 

相比几年前,移动互联终端大规模的兴起,短平快信息得到流行。坚守文字完整书写的人数已大不及之前了。然而文星并不是为迎合流行而生的,这样的境遇反倒促进了文星潜心修正所有遗留错误,致力于品质的提升,力求处处精细不留一丝遗憾,是以“行云流水”,回馈给一如既往钟爱它的人并作为文星十年完美收官而存影。

 

2011年春节前夕,以“行云流水”主题为标志的10.0发布,文星开启了EnjoyText“不为利诱不为名动,我有我的坚持”的后时代生活。此后相继保持着半年一更新的步伐,继续着自己的存在。在多次更新里,修正,完善,规范,调整成为与新增并举的关键词,其中不乏微小的如快捷键操作改进,也包括基础而重大的排版引擎的全新设计。

 

文星直书独具一格的唯美风范,逐步得到用户的接受与认可。2011年初香港国际软件大赛组委会发来邮件,希望获得该软件的收录许可并推荐到官网展示参与网络投票;此后云端平台也完成对它的虚拟化改造开放给用户;而后又相继收到一封封软件广告商发来的捆绑获利邀约。但文星始终不曾心动过也不曾改变着啥,一如继往的沿着自己的路行径着…

 

纯净的文本,纯净的心灵,纯净的书写,这才是文星不懈的追求。

行云流水,正是这追求极致的体现,也是其依然存在的价值所在。

 

 

9. 后序,文星依然有梦

 

 

走过昨天,走过今天

记录着昨天,也书写着今天,

文星就这样和自己以及一群钟情于文字完整书写的坚守者们一路走来。

平实说,文星并不是什么潮流应用或技术创新的领先者,只是书案前一文字工具。没了用户需求的调研,甚至它连现代意义上的软件开发都不算,唯一需要考虑的“用户”即是自己。然而这并不妨碍它的成长,更无碍于它的静默无声却也坚定无比的执著于自己直书的信念。古人歌咏道“桃花坞里桃花庵,桃花庵下桃花仙。 桃花仙人种桃树,又摘桃花换酒钱”,这种自耕自娱的生活,恰似我与文星十二年的写真叙说。

 

文星是我业余生活主要内容之一,犹如传说中的桃花源,在我心里它是片自由耕耘的乐土,没有名利的纠扰,也没框套的束缚,完全忠实于自我,也超越着自我。十二年的时光,寒来暑往,几多灯下夜战,是很难用几句话表达出是什么力量的支撑与驱使,生活总是有很多契机在默默的引导着你一点点的朝向自己所秉持的人文理想前行。这是每个人固有的坚持,如同自己,有技术的坚持,有价值取向的坚持,也有爱好的坚持。是坚持造就了文星的今日,也是坚持在诉说着更为美好的未来。

 

“车尘马足富者趣,酒盏花枝贫者缘”,无论物质科技怎样的丰盈进步,这世间总是不乏真相的记录者以及愿静心下来作单纯文字倾诉的人们。文字承载着世界的文明,也抒发着人们许多内心朴实而深邃的情感。2012年在父亲去世后我写下了篇简短祭文,不久,一位素味平生的文星用友看过存放于我空间里的这篇祭文后发来长长邮件,写到“寥寥文字却我感受了一位父亲的宽厚与可敬,天国里为他祝福”。犹如一座跨越时空的内心桥梁,不经意间一阙阙朴实的文字便温暖着你我,也继续温暖着更多的人。

 

温暖,也让文星感受到了它的并不孤独。

 

文星依然怀揣着梦想沿着自己的路前行着

日趋完善并不是文星的终结----那只是曾走过的路。

文星早已超越了单纯软件的范畴,成为着一种生活态度。伴随着文星一路前行的将不单有我,有你,更有一种有条不紊,一种从容大度,一种怡然自得……

 

 

 

 

劈山问天文化传播工作室

KillCJSpace Studio .Copyright(C)2000--2013

 

时间: 2024-11-01 17:05:00

EnjoyText·文星·自述的相关文章

紫薇斗数---第十二节、太阳星

在紫微斗数的体系中,力量最大的有十四颗星:紫微.天机.太阳.武曲.天同.廉贞.天府.太阴.贪狼.巨门.天相.天梁.七杀.破军.这十四颗星,统称“十四正曜”.在十四正曜中,还可以细分出四大主星:紫微.天府.太阳.太阴. 紫微是北斗的主星,天府是南斗的主星,太阳是白天的主星,太阴是夜晚的主星.这四颗星都是各自领域的主宰,所以称为“主星”.其中又以北斗主星紫微的地位最高,力量最大. 除了中州学派以外,其余派别往往滥用“主星”的称谓,将贪狼.七杀.天机之类也称作主星,这种说法很不严谨.我们在学习的过程中

JanusGraph文档整理

目录 JanusGraph调研 结论 Intro Basics Configuration 数据模型(Schema) Gremlin JanusGraph Server 服务部署 ConfiguredGraphFactory Multi-node Indexing Transaction 事务 缓存机制(JanusGraph Cache) 事务日志(Transaction Log) 其他常见问题 技术上的限制(Technical Limitations) 后端存储(Storage Backend

JQUERY省、市、县城市联动选择

JQUERY 插件开发——CITYLINKAGE(省.市.县城市联动选择) 第一部分:背景   开发源于需求,本次城市联动选择插件算是我写插件的一个特例吧,不是我目前工作需要些的,算是兴趣驱使吧.之前呢,一直想写这个插件,然后错过了一个写这个插件的机会(这个得回顾到很久以前了...此处省去N个字).然后最近“瘾”又犯了,呵呵,随手就拿这个“欠”了很久的插件开刀了.大家都应该知道“某宝”的这个插件写的还是很强大的,支持到街道(镇)级别...可见他们维护的前端数据有多大...不过呢,临渊羡鱼,不如退

全国三级城市联动 js版

/* * 全国三级城市联动 js版 * author: mrasong * E-mail: mrasong#163.com * version: 1.0.2 * data: tencent **/ function Dsy(){ this.Items = {}; } Dsy.prototype.add = function(id,iArray){ this.Items[id] = iArray; } Dsy.prototype.Exists = function(id){ if(typeof(t

【转】国际GNSS服务组织IGS

国际GNSS服务组织The International GNSS Service,简称IGS,前身为国际GPS服务组织.IGS提供的高质量数据和产品被用于地球科学研究等多个领域. IGS组织由卫星跟踪站.数据中心.分析处理中心等组成,它能够在网上几乎实时地提供高精度的GPS数据和其它数据产品,以满足广泛的科学研究及工程领域的需要. IGS收集.归档.分配足够精度的GPS观测数据以满足一系列的试验及应用需要.IGS利用这些数据形成一些列的数据产品,这些数据产品可以通过因特网获得.值得一提的是,IG

QQ JS省市区三级联动

如下图: 首先写一个静态的页面: <!DOCTYPE html> <html> <head> <title>QQ JS省市区三级联动</title> <!-- 使用QQ的省市区数据 --> <!-- <script type="text/javascript" src="http://ip.qq.com/js/geo.js"></script> --> <

CSDN学霸课表——从应用解析到基础实战,大数据入门、晋级课程推荐

[大数据]Splunk企业级运维智能&大数据分析平台新手入门视频课程 讲师:张文星 本课程系Splunk入门系列课程,实战为主,实战中穿插相关概念和理论.课程包括Splunk基础知识.安装部署.数据采集和存储.数据可视化.创建Splunk应用等.数据分析和可视化部分基于两个案例,边动手边讲解. [Hadoop]Hadoop2.X 应用解析 讲师:李锋 通过学习Hadoop2.X的教程,使学员能够掌握Hadoop2的应用原理,对Hadoop2的体系结构有清晰的认识,并能够熟练部署Hadoop2的高

界形势动荡不断,全球r

垃圾分类关系到13亿多人生活环境改善,关系垃圾能不能减量化.资源化.无害化处理.在此背景下,相关NGO组织和企业对相关问题进行了深入交流和探讨,内容涵盖垃圾分类.垃圾终端处置及资源化产物利用等环节. 业内专家建议,2017年,在供给侧结构性改革的背景下,实体经济提质增效对商业银行的信贷经营提出了更高要求,商业银行应真正渗透到消费升级.产业升级和结构升级的进程中去,加快信贷和服务模式创新,尽快转变为基于主动经营风险的全面风险管理机制. 近年来,永州市持续开展"三下乡"活动,组织有关部门深

Jquery实现两级联动

最后结果如下: 关键代码如下: <select name="customerCondition['credibilityBegin']" id="credibilityBegin" class="ui_select01" style="width:90px" onchange="changeCredibility();"> <option value="" select