这一次带来了一系列新特新,同时我们将会从商业智能的角度讨论软件的需求

一. 批量任务向导

一个常用的需求是完成处理多个任务,可能是同一个需求以不同的参数完成多次,这类似批量分析某一问题;或者是不同的需求顺次完成,比如系统功能级测试。因此非常有必要加入该功能。由于系统有对“任务”级功能的支持,所以添加该功能很容易,加入一个任务队列,当上一任务完成时自动配置和启动下一任务即可。

我们以批量执行同一任务为例,看下下面的操作。点击“任务”菜单的“启动批量任务”向导,即可实现如下配置:选择要批量执行的任务:

选取要修改的参数,

我们此处选择“ScaleSize”参数。以一行一个参数的形式填写下面的表格:

点击完成之后,系统会自动按照不同的ScaleSize参数,完成循环,并输出所需结果。

至于对于顺次执行多个任务的需求,目前可以从外部加载任务配置单,并可按任务配置顺次执行,该任务配置保存了详细的任务参数和模块名称,以XML格式存储。

二.加强的数据浏览器

系统原先内置的数据浏览器是ListView表格控件,目前使用了功能更强大的DataGrid,效果如图:

通过延迟加载和动态绑定的特性,该控件可以获得相当好的性能,同时可以方便的对数据列做排序,分组等操作:

同时,该控件还可以方便的修改数据属性,包括字符串,时间和数字等。并将修改保存到数据库中。

三. 插件式的界面替换

对WPF程序来说,换肤是一件很普通的功能,但如果完全替换成另外一个View,还是需要一定的技巧的。由于本系统在设计时,没有充分考虑到标准MVVM的需求,而采用了插件式的Model管理View的方式(可c参考我的MVVM 开发的几种模式讨论(WPF))。这导致了动态替换View变得更为困难。

经过了长久的考虑,我决定不对框架做伤筋动骨的改变,对View也采用插件的方式,通过一个新加插件接口 ICustomView,系统在加载包含View的插件时,会在插件集合中查找实现该接口,且与原插件名字一致的界面控件,并将原插件的界面动态替换成新插件。这样就实现了启动时动态界面替换。

打了比方说,如果我觉得目前的界面和控件不符合需求,可以写一个新的界面库,将该界面库的dll文件拷贝到插件目录下,即可自动替换掉原来的View.删除该dll后,就会恢复成原有的View,非常简单方便。

四. 思考:对“无类型”数据的处理

由于数据类型也是插件的一份子,因此可以方便的添加新的数据类型,但依旧有麻烦的事情。

比如对“人”,有的数据是面对普通微博用户的,有些是面对企业和政府高官的,有些是面向学生教师的,他们都具有各自的特性和自定义字段。随着要处理的数据变多,这种问题变得更加尖锐。

为了处理一次数据,我们没有必要去为其新建一个数据类型(而且还是重复的)。但我们也不可能做到把所有可能的属性都添加到队列中。而系统现在只能处理“类型”数据,依赖它去存储,可视化,分析,计算…

如何解决这一问题呢?这一点可以向Excel学习,Excel本身不需要定义数据类型,通过表格的X,Y坐标命名变量并实现功能。这是一种很好的思路。但如果我也按照这样的方式处理,那么软件也成了Excel,反而丧失了它的价值。而统计这一类简单的功能还好说,对于更复杂的数据挖掘功能,如何处理这种无类型的数据呢?这真是个复杂的问题!

五. 说好的“算法”呢?

所有的读者可能都有这样的疑问,楼主你们做的是一个数据挖掘工具啊,怎么只见你更新“工具”的功能,却没有更新“数据挖掘”的功能啊?那些牛逼的算法呢?这个问题我也知道,如果没有精巧的机器学习/数据挖掘的算法模块,就算打造成一个超牛的数据可视化工具,又如何呢? 只是作者目前时间有限,做工具比做算法的实践性更高一些。我马上要找工作了啊亲!

之后的时间,关联规则,自动推荐,高级的聚类和分类算法,语义分析。。。这些模块才是最重要的,要做的事情多着呢。。。加油!

ITTC数据挖掘系统(六)批量任务,数据查看器和自由文档的更多相关文章

  1. CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案

     最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决.    方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如 ...

  2. python实用小技巧自问自答系列(一):查看类中函数文档doc的方法

    问题:如何查看某个类的方法文档说明或者是函数的参数列表情况? 答: 方法一:直接在需要查询的方法后面加上".__doc__"即可以打印出该方法的文档说明(需要先导入该方法所属模块) ...

  3. 从多个XML文档中读取数据用于显示webapi帮助文档

    前言: 你先得知道HelpPageConfig文件,不知道说明你现在不需要这个,所以下文就不用看了,等知道了再看也不急.当然如果你很知道这个,下文也不用看了,因为你会了. 方法一: new XmlDo ...

  4. Nemo Documents – 给文件添加标签 以日历的形式将文件呈现出来,很像 Outlook,你可以根据年、月、日来查看不同类型的文档

    Nemo Documents – 给文件添加标签   scavin(Google+) on 2012.03.28. Nemo Documents 是款文件组织管理工具(文档管理器),不是街道大妈胜似大 ...

  5. 【C#】获取当前系统桌面、我的照片、我的文档等路径

    获取当前系统桌面.我的照片.我的文档等路径   using System; using System.Collections.Generic; using System.ComponentModel; ...

  6. [Swift通天遁地]七、数据与安全-(1)XML文档的创建和解析

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. 从隔壁兄弟那爬点网页数据,整理成word文档

    package com.parse_report; import com.report.utils.ParseUrl; /** * Create by JIUN 2018/7/14 */ public ...

  8. 在Outlook中查看预览SharePoint文档库的文档

    本文概况 阅读时间: 约2分钟 适用版本:SharePoint Server 2010及以上 面向用户:普通用户,管理员 难度指数:★★☆☆☆ 在日常工作中,总有一些常用的文档需要经常打开查看,其实我 ...

  9. Storm项目:流数据监控1《设计文档…

    博客公告: (1)本博客全部博客文章搬迁至<博客虫>http://blogchong.com/ (2)文章相应的源代码下载链接參考博客虫站点首页的"代码GIT". (3 ...

随机推荐

  1. [APUE]进程控制(上)

    一.进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper).该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程.进程ID 1是init进程,在自举(bootstr ...

  2. SQL Server on Linux 理由浅析

    SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...

  3. 干货分享:让你分分钟学会 JS 闭包

    闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理

    系列目录 前言 回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 你也可以按自己所分析的情形结构来建表 必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较 ...

  5. UWP开发之ORM实践:如何使用Entity Framework Core做SQLite数据持久层?

    选择SQLite的理由 在做UWP开发的时候我们首选的本地数据库一般都是Sqlite,我以前也不知道为啥?后来仔细研究了一下也是有原因的: 1,微软做的UWP应用大部分也是用Sqlite.或者说是微软 ...

  6. android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!从此在andrid中自由使用 图像匹配、识别、检测

    目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. (原创:转载声明出处:http://www.cnblogs.com/lin ...

  7. SDWebImage源码解读 之 UIImage+GIF

    第二篇 前言 本篇是和GIF相关的一个UIImage的分类.主要提供了三个方法: + (UIImage *)sd_animatedGIFNamed:(NSString *)name ----- 根据名 ...

  8. jquery屏幕滚动计算事件总结

    获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度: $(docume ...

  9. C++随笔:.NET CoreCLR之corleCLR核心探索之coreconsole(2)

    这篇文章是上篇的续集,本文将会继续介绍coreconsole.cpp里面的逻辑.也许大家会看一些CLR的书,我承认我没有看过,因为我觉得一个人,他再NB,那也是他自己的眼光,而且说句难听的,CLR也不 ...

  10. 趣说游戏AI开发:曼哈顿街角的A*算法

    0x00 前言 请叫我标题党!请叫我标题党!请叫我标题党!因为下面的文字既不发生在美国曼哈顿,也不是一个讲述美国梦的故事.相反,这可能只是一篇没有那么枯燥的关于算法的文章.A星算法,这个在游戏寻路开发 ...