首页   注册   登录
 walkinrain 最近的时间轴更新

walkinrain

V2EX 第 293520 号会员,加入于 2018-02-23 15:52:38 +08:00
walkinrain 最近回复了
34 天前
回复了 tamlok 创建的主题 Markdown VNote:一个更懂程序员和 Markdown 的笔记
@tamlok
a. 可否提供同一文件分别展示在分割窗口中?这个需求估计程序员会挺喜欢。(说实话,我就是偷偷打着一个文件分割 2 边,一边预览一边写的主意,O(∩_∩)O )
b. 最大化后,无法创建新的 md 文件。打开菜单默认*文件也不太适合。
c. 关于笔记的设想,设立新的文件后缀,包含笔记所需要的信息,类似 ms 的 sln 文件,这样就无需在配置中记录笔记目录(可考虑记录相对路径增加变动的兼容性)。
d. md 文件拖放到 vNote 中,自动阅读模式,不受配置中打开文件为编辑模式控制。
e. 关于实时预览,我的意思是是否可考虑部分内容(占地方比较严重的内容),提供非实时选项。比如图片,公式,当鼠标指向的时候再浮动显示。这样更加保持文本原有结构和形式,也利于插件扩展。
f. 样式变动基本需要重启程序,这点有点问题。可否优化一下。毕竟前期调优的时候,动辄几十个模板,这么切换来切换去很头疼。虽然程序启动还算快。
g. 能否去掉不建立笔记本,每次打开弹出建立笔记本模式窗口。
h. 绿色问题,按照文档所述,在程序位置建立了配置。发现软件根目录下目录较多,可考虑精简或者归类一下。比如配置放在 User 目录下。如果考虑平台兼容性,可考虑首次运行时提示(本地目录或者默认系统目录下均无配置,提示建立配置)。可能是我个人喜好问题,对默默创建一堆东西的程序,都觉得不爽。

笔记功能有点意思,比较适合代码知识库建立。不过目前我的需求度不够,等日后有机会研究了再出馊主意。
35 天前
回复了 tamlok 创建的主题 Markdown VNote:一个更懂程序员和 Markdown 的笔记
@tamlok 个人提点小的看法,如果觉得有道理,可以考虑考虑。觉得不符合理念,当我乱说好了。

首先,优点,软件整体感觉不错,貌似主题修改刷新存在一些瑕疵,但是一旦配置完全后问题不大。
个人是把 vnote 作为 markdown 编辑器使用的,作为笔记,纯 md 还是局限了点,当然也有不少优点。
看法:
1 预览:其实,程序员也是很懒的,有预览并不一定会反感,特别前期语法不熟练的时候。可以考虑简便方案,不一定非要实时预览,也不一定非要 html 预览。建议搞个 html 预览,一个 png 预览,用保存时刷新即可。至于大小,版面什么,建议 html 预览采用一个标准的 html 文件,png 预览,则采用小的多的侧边栏形式。 既然编辑器本身已经有了分割功能,直接将标准 html 放到分割页,应该不算大改动。而 png 预览,可考虑放在工具栏目中。

2 笔记概念: 笔记本身概念不错,但是和 onenote 以及印象一类的比还是有缺陷的,不妨将其作为辅助概念。既然是使用文件夹作为笔记结构基础,不妨直接指定软件本身某个子目录为默认笔记,不要不配置每次开启都弹出要建立笔记。

3 如果作为一个 markdown 编辑器,文件菜单缺乏新建 md 文件选项。文件菜单最好添加一些编辑器类的菜单,如新建,保存,打开文件夹(比如打开了某个文件夹,就默认为笔记形式,这一个是一种笔记推广形式)

4 笔记侧边栏:建议可以隐藏,如果需要使用笔记功能,可以菜单打开。

5 绿色绿色绿色:不建议配置写在系统目录下,建议直接在本地目录下建立 User 配置。

个人使用 md 主要目的,是写点东西,比如学习笔记,readme 等等,用 md 很方便,显示出来又不难看。本身又是基于文本的形式。

作为个人项目,不建议在所见即所得上花费太多时间,简单的如标题,加粗等不破坏文本结构的增加所见即所得。图片类可考虑快速预览形式,如鼠标指向显示。其他的通过页面预览来实现。一方面保持文本本身的清洁,另一方面在语法不熟的前提下,也能快速修正语法。
个人希望能在 code,样式等方面更易扩展点。毕竟写 md 的很多人,还是对美观又追求的,这种追求也不是无限的,容易找到或者定制自己喜欢的排版即可,不然直接 txt 好了。
尽量用 md 标准语法,其他的靠插件扩展。更容易接入插件,更方便定制样式,再加上本身的笔记辅助功能,我觉得这种定位可能更好一点。

标准语法,速度快,流畅,界面简洁高配置度,插件易扩展,样式易定制,绿色,轻便,启动快。

以上个人拙见,仅供参考。
异步学习阶段,基本上用的都是标准库。
python 3.7
用的是标准库 asyncore
WhoisClient 继承于 asyncore.dispatcher.

class WhoisClient(asyncore.dispatcher):
def __init__(self, q_in, q_out):

q_in 为需要查询的 ip 队列。
q_out 为查询到的结果队列。

通过 conn_count 设置最大连接数(同时连接查询网站的连接数)
主代码就在一楼,也很简单,打开一个文件,每行一条数据读出,压入 q_in 队列。创建 WhoisClient 实例。WhoisClient 异步执行,结果压入 q_out 队列。

代码本意,超过 conn_count 个链接,等待运行完毕 1 个 WhoisClient,继续创建新的 WhoisClient。

本意以为 loop 会循环至 1 个 whoisclient 完成,实际 count=1 并未阻塞。
将 1 楼的 if 换成 while 代码达到预期。

===================================
主要是想大神帮我分析分析 asyncore 中 asyncore.loop 函数具体实现原理与规则。我看了 asyncore.py ,中间 loop 代码段,感觉应该阻塞住到 1 个 whoisclient 完成的啊。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   765 人在线   最高记录 4346   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 10ms · UTC 22:49 · PVG 06:49 · LAX 14:49 · JFK 17:49
♥ Do have faith in what you're doing.
沪ICP备16043287号-1