V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  SwingCoder  ›  全部回复第 17 页 / 共 27 页
回复总数  535
1 ... 13  14  15  16  17  18  19  20  21  22 ... 27  
- 取消: Markdown 表格解析最左侧一列的单元格内容靠右,回复为默认(左对齐)
•优化:预览时的代码流程与相关算法。
@TheKiteRunner 先生,谢谢您对 WDTP 和开源软件的支持!

您说的对,产品的推广营销是一门很深的学问,这方面我一直都不太擅长,急需各方面的大力协助。面对普通用户的文档、教程编撰也一直是 UnderwaySoft 的短板。希望下一步能腾出时间精力把这一块好好加强一下:)

在第二语言习得方面,我感觉您的认识有值得商榷之处。这方面我比较熟悉和了解。海句这款软件的前身,起源于国外一所名校的内部科研项目,团队的第一任管理者就是克拉申大师的高徒。这个项目时间跨度很长,我作为骨干成员之一和软件编程与算法实现方面的负责人,参与并跟进了好几年时间。获益良多,心得体会也很多。这方面如您有问题,欢迎垂询。
•修复: macOS 下快速选择并预览文件树条目时有可能出现的线程死锁及 html 文件不匹配等问题。
•更新:系统界面和文本编辑器默认的字体大小和颜色。
@TheKiteRunner 先生,谢谢您的推荐。因为 WDTP 刚刚添加了“提醒”功能,而您也提到了记忆类软件。我尝试多说两句,如有不妥,请批评指正。话题就从我上午的“双刃剑”开始吧,主要谈谈不好的那面刃。

这类软件比较“老牌”的有 SuperMemo ,后起之秀 Anki 等等, iPad 上也有一款不错的,叫 FlashCards 。我对这类软件做过很深的研究和长时间的使用(包括它们背后的原理、算法与编程实现)。这类基于(强制型)重复刺激、间隔递增(倍增)等古老“成果”的软件,有非常便利和对用户助益巨大的一面,但副作用也相当相当大。这其中,使用场景就是一个非常值得进一步研究的领域。一个最常见的错误用法就是将其用于外语学习(二语习得)方面。结果就是典型的事倍功半、适得其反。

我这么说是因为我曾经设计、开发过一款理念非常先进的科研级二语习得软件:海句。现在 UnderwaySoft 还在提供下载和注册,我所掌握的数据,这个软件的全球用户大概有 2 万多人,其中有上千人至今仍重度使用。效果非常好。这款软件,在核心架构方面就吸收借鉴了强制类型的重复刺激与间隔唤醒,虽然算法是自己的(基于实验室和样本跟踪统计数据),但模式基本不变。“成也萧何,败也萧何”,也正是这一点,让广大重度使用的用户疲惫不堪,对海句是又爱又恨……

归根结底,人类的大脑不喜欢“被强制”……重复刺激与间隔唤醒,大方向是不错的,但前提不是强制,而是偶发……如果前提错了,整个系统的根基轰然倒塌。效果(或说结果)自然朝着相反的方向发展……

也因此, WDTP 的提醒功能深刻吸取了教训,将间隔唤醒(下次提醒时间)的设置权完全交给了用户。我相信,这种模式对大多数明白记忆原理的用户来说,效果会非常好。

************************************
288 楼您的两个问题,我没有看得太明白。尝试理解并答复如下:

WDTP 是开源软件,任何人都可以 Clone 源码,自行编译。如果您有好的想法、新的功能实现、 bug 修复等等,可以自己实现后自用,更欢迎提交 issue 和 PR 。这方面,我可能和其它开源软件的作者有一点不同。如有第三方提交的任何代码,我一定会逐行检视、编译调试后再亲自合并。

WDTP 实现关键词功能,核心函数有三个,均位于 HtmlProcessor 类中。分别是:

Line 451:: extractKeywords():提取 1 参数据模型的所有关键词。算法是多叉树深度遍历,递归实现。

Line 472 : getDocTreeWithKeyword():提取功能的“反功能”。基于给出的关键词,深度遍历多叉树,找到所有包含该关键词的子节点。同样用递归来实现。

Line 375 : getKeywordsLinks():这个函数的实现比较复杂,但原理很简单。基于上面两个函数,先提取所有关键词,接着提取所有关键词所对应的子节点,最后将子节点转换为 html 链接,供渲染时替代[keywords]标志词。
设置为精华的文档,文件树面板中,对应条目的前面出现“五角星”标记。
•新增:文档属性:精华推荐。
“复习 /锤炼 /提醒”三合一功能详解:

复习:适合于笔记和个人知识管理类项目。如配合艾宾浩斯遗忘曲线等记忆领域里的新旧科研成果,酌情、合理、逐次设置下次复习的日期,则可将笔记内容或要点(知识或技能)以最高效的方式形成长期记忆或固化记忆。 i+1 精深训练和学霸必备!注:高效记忆背后的科学原理涉及到认知学与大脑神经学等多个前沿学科及领域,非常复杂,但其中一个主要因素就是:重复刺激、间隔递增。

锤炼:适合于创作精品级的作品,特别是文艺及杂文作品。一篇隽永、不朽的文章往往需要多次修改、反复锤炼。此过程与高效记忆一样,同样需要科学、合理、最优化地任务管理与时间分配。

提醒:适合于所有建站者,特别是发展较快的领域内的技术型博主。相信大家都有这种极度不爽的体验:网上搜索一些技术性的东西,但文章却是 N 年前写的,花大量的时间去读这些内容老化、陈旧不堪的东西简直是浪费生命,这也大大降低了访客对网站的好感与信任度。可能有些负责的博主也会想着定期更新或修补完善,但由于缺乏顺手的工具或更好的控制手段而经常顾此失彼、挂一漏万,实在令人遗憾。鉴于此,我给 WDTP 加上了提醒功能,希望该功能可以让所有建站者意识到“及时更新”这个问题的重要性与必要性,更希望能在此方面为所有负责任的站长(博主)减轻一些负担,提供一点便利。

换个思维方式和分析问题的角度, WDTP 的提醒功能还可用于其它目的……能够发挥更大的实用价值。

从辩证法的角度来看,人类所有的文明、知识与工具都是“双刃剑”。 WDTP 的提醒功能亦不例外。该功能对程序本身的代码品质和实际运行等方面来说没任何负面效应(由于底层架构合理,实现此功能的全部代码不超过 10 行),但是“提醒”这件事本身却有两面性。它能够更高效、更方便、更科学地帮助我们,同时也会给我们带来负担……究竟如何,还有赖于用户的正确认识与合理运用。
•实现:“复习 /锤炼 /提醒”三合一功能。详情:

◦文档属性中增加“提醒日期”设置项。其格式同“创建日期”和“最后修改日期”(年.月.日 时:分:秒)。
◦创建文档时,“提醒日期”自动设置为隔日同一时间。
◦快速修改“提醒日期”的小 tip :双击日期中的某个“字段”,可选中该字段,直接输入合法值即可。
◦如果不想设置该文档的“提醒日期”,也可将此设置项清空。
◦“提醒日期”到期后,文件树中该文档所对应条目的颜色发生改变,以做提醒。
改进:预览模式下修改文档、目录或项目的属性后,实时更新渲染结果(无需手动重新生成并刷新当前页面)。
•更新:标题栏文本由“ WDTP-项目文件名”改为“项目文件名-WDTP ”。
•实现:跨项目复制、粘贴功能。操作方法:

◦文件树面板中右击某个文档,弹出的菜单中点击“跨项目复制”。
◦切换到本程序的另一个实例( WDTP 可同时运行多个程序实例,每个均可加载不同的项目)。
◦在另一个程序实例的文件树面板中右击某个目录,弹出的菜单中点击“跨项目粘贴”。
◦此功能不仅可以复制原文档的全部内容,还包括其所有属性和媒体文件。
◦程序内部会自动处理粘贴时有可能出现的文档 /媒体重名等问题。
网页文字“微”浮雕的实际效果可参见项目主页里的各个文档:
http://underwaysoft.com/works/wdtp/index.html

推荐浏览器:
- Safari 10.0 以上
- Chrome 55.0 以上
- IE 11.0 以上
更新:系统默认的样式表。网页文字采用“类 mac ”的“微”浮雕效果。
@TheKiteRunner 先生,谢谢您的建议。

WDTP 在宽屏和安静模式下,都允许用户调整主窗口大小。左右侧的两个面板,也可以调整其宽度。如果宽屏模式下您感觉编辑区太窄,最可能的原因是:您的显示器分辨率设置的太低,或者需要一个更大的显示器。就目前的主流显示器来说,窗口最大化之后,编辑区已经太宽了。

主界面布局的代码位于: MainComponent.cpp, Line 56~74 ,您可以按自己的需求调整并改写。主界面布局使用了比较另类的 stretched layout 技术,设置 layout 管理器的语句在该类的构造函数中。

项目内部的媒体文件,直接使用相对路径即可。普通的对话框式插入,会将所选的文件复制到项目中。因为 WDTP 有网站生成与管理功能,为防止产生不必要的冗余数据和完全相同的重复数据,这方面做了控制。

列表限制在 2 层以内的原因我在《快速上手》这个文档中做了一点解释。还有其他一些原因……我个人很反感嵌套超过 2 层的文档,这方面同样做了严格限制。如果您感觉 2 层不够,可使用此方面原本不复杂的 html 代码,或者改写 Markdown 解析模块的 Md2Html::orderedListParse(...),文件: MD2Html.cpp , Line 623~680 。有序列表和无序列表的解析都在这一个方法中。 WDTP 的 Markdown 解析是我自己写的,所有解析都是静态方法。 Md2Html 是结构体,没有任何成员数据。

传统的 Markdown 在无序列表方面的标记太多、太乱。对任何计算机语言(语法)来说,这不是好的标准和做法。我对此做了简化和规范。“-”是无序(表示去掉序号,无序号的意思),“+”是有序(代表序号的递增)。如果您打算使用传统的 Markdown 解析,可改写上面给出的那个静态方法。

新建文档后,自动给出一级标题的 Markdown 标记,这样方便用户少敲两下键盘(特别是触摸屏弹出的软键盘。因为有些软键盘的#与字母不在一起,要切换)。新建文档时默认给出日期,是方便匆促情况下的灵感记录(新建文档后两下回车,开始写)。日期与文档的内容与标题,是两码事……文档名称与文档内容、内容标题等等,都不是一个概念,我之前解释过……自动添加标题之后,绝大多数用户还是会删掉。对于判断用户想输入什么内容,标题选择什么最贴切,这方面, AI 算法有比较新的研究,但有限制和上下文环境,其数学模型和实际效果目前还不太理想。这方面不太适合 WDTP 所采用。

新建文档时自动添加标题或任何您想要的内容,可改写 DocTreeViewItem::createDoc(), Line 735 :

thisDoc.appendText ("# " + whateverYouWant...);
实现:声音记录(录音)功能。该功能对 WDTP 来说是一个标志性事件。详情:

- 文本编辑器中右键菜单,点击“录音”菜单项(快捷键“ Ctrl + W ”)。
- 弹出“录音”对话框。此时自动开始录音。对话框中部将实时显示所录制的波形(高精度)。
- 随时可点击停止按钮。
- 停止录音后,可播放试听。试听时,播放指针开始走动。点击或拖拽可实时改变其播放位置。
- 如不满意,可删掉后重录(点击“话筒”图标)。
- 如对本次录音满意,点击“对号”按钮。点击后,录音对话框关闭,文本编辑器中将自动插入已经录制完成的音频文件。


- **注 1**:考虑到 WDTP 的网页生成特色与主流浏览器对 html 5 音频规范的支持现状,目前暂使用遵循 LGPL 开源协议的 Lame 编码器对录制后的音频数据进行 MP3 压缩转换。 Lame 编码器需位于操作系统“文档(文稿)”目录下。可在 WDTP 下载页下载对应平台下的 Lame 编码器。

- **注 2**: WDTP 的录音模块是一个简化版的全功能专业级 GUI 数字音频录制程序。在本机音频硬件支持的前提下,可使用 ASIO 等所有专业级 /主流音频驱动,底层音频处理采用 64 位双精度浮点格式,最高支持 192Khz 采样率,最低延迟可达 1 毫秒(系统菜单-设置音频驱动),音质与长时间工作的恒稳性符合目前世界上最严苛的工业级(广电级)标准。 64 位程序,可突破单次录音的数据大小不能超过 4GB 的限制。

- **注 3**: Lame 并不是这个世界上最优秀的 MP3 数字音频压缩编码器。此外,出于各种兼顾的原因, WDTP 目前暂时采用中低品质的 MP3 VBR 压缩编码设置。以上两点,对原始音质有较大破坏。

- **注 4**:录音模块的 GUI 设计侧重于触摸屏操作。设计原则:简洁、直观、高效。
谢谢 @TheKiteRunner 先生。您的讨论对我启发很大!

确实,用文本的形式体现图形和图示,本身有不可调和的矛盾处,渲染的结果、操作效率和灵活性也很难兼顾。特别是不同的浏览器对 html 5 新增的绘制方面的相关功能,理解与实现也不一致。

这个方面,所见即所得技术确实有得天独厚的优势。

另一个思路就是 WDTP 加入一个新模块,本机作图,随时可以内部转换为图像,贴到文本中。这个工作量不小,相当于全新架构和设计一款新软件了。或者用 JavaScript 技术,写一个类似于 MathJax 这样的图形解析库。后者更有意义。也可能已经有团队开始干了。
对了,如果情况乐观, WDTP 可能会加上简单而另类的“画导图、流程图、思维树”等功能。不过我还没有仔细考虑过,只是模模糊糊有一点想法。

思维树是我在传统思维导图基础上做的一点扩展。传统的导图太发散,适应面看起来很宽,实则窄了。树状则不同,它更明确。更符合人类考虑问题的习惯与大脑神经运作的数学模型。这棵树有根系、主干、枝干、枝叶。最重要的:它有果实。果实“采摘”后,可以种植并成长为另一棵树……它们有继承与复用等特点,就像面向对象编程领域的“继承、封装与多态”……

简单说,就是一棵棵苹果树的样子:)
谢谢 @TheKiteRunner 先生的鼓励。您过谦了:)我用过好几款画思维导图的软件,顺手的还真不多。如果不是太忙,我都想自己弄一个。 2012 年的时候,我设计过一个软件叫“思维树”,极大地扩展了传统的思维导图。可惜由于事情多,最后没有开始编码。

您说的那个排列比较紧密的,可能是 SimpleMind+,是我原来在 iPad 上常用的一个画导图的 app ,很简单,功能不多。这个软件也有 macOS 版的,好像也有 Windows 版本的。
1 ... 13  14  15  16  17  18  19  20  21  22 ... 27  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2841 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 06:50 · PVG 14:50 · LAX 22:50 · JFK 01:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.