现在的一些工具,越来越大。本来一二十M就能解决问题的,动不动都搞成三四千M——不装满一张DVD誓不罢休。看着头疼。我以前介绍过一些小巧的工具,比如,数据库建模工具Toad Data Modeler。最近老有人问Toad Data Modeler哪里下载。今天就专门写一篇文章,介绍这些轻、快、好、实用、免费的开发工具。
1、编辑器——记事本
出处:操作系统自带
简介:把这个放在第一个。以示对Word党的抗议。
2、编辑器/IDE——vim/gvim
大小:<10M
出处:http://www.vim.org/download.php
简介:短小精悍又无比的强大的编辑器,就算不用它替代VS,至少替代uedit还是绰绰有余的。
3、文本检索——grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)
大小:100k
出处:http://sourceforge.net/projects/gnuwin32
简介:强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。检索文档或源代码还是用grep快。GUI检索工具对那些变态的目录和文件,性能很差。
4、UML建模工具——jude社区版
出处:http://jude.change-vision.com/jude-web/product/community.html
大小:<10M(需要java环境)
简介:短小精悍又非常好用的uml建模工具。如果只是将uml作为沟通工具,jude足够用了。非常好用,非常好用,再重复2遍。和它比,某些商业软件简直像垃圾。
5、数据库管理系统——mysql
大小:几十M
简介:微软的sqlserver越来越大,管理界面越来越慢了,很恶心。还是mysql短小精悍。
6、迷你数据库——db4o
大小:dll+源代码+文档+VS 插件 < 30M,单dll < 1M
简介:db4o是OO数据库,是所有数据库中最易用的数据库。如果数据量只有几百兆,用db4o吧。db4o引擎只有一个dll,几百k。这个引擎是gpl协议的。最近,db4o的对象管理器也可以免费使用了。
7、关系数据库建模工具——Toad Data Modeler Freeware
出处:http://www.casestudio.com/enu/download.aspx
大小:不到 9M
简介:建模->生成sql脚本->生成html文档。支持常见数据库。很好用。2006年以后的 Toad Data Modeler Freeware 都有使用时间限制了。2006年那一版Freeware不好找,我将我收藏的一个版本传上来。
8、数据库管理工具——EMS系列免费版
大小:如果只下载可执行程序,<10M。如,EMS SQL Manager for SQL Server Freeware (executable-file only) 大小是 6.12M。
简介:短小、精悍,好用。免费版差不多就够用了,基本功能都具备。我管理、查询本地的SQLServer、Mysql数据库基本都用的是EMS的Client。和EMS的免费工具比,Mysql的管理工具太土太难看太难用了,SQLServer的又太笨拙太占内存了。
9、单元测试——nunit
大小:<3M
简介:实在忍受不了VS自带单元测试的臃肿与笨拙,还是nunit好用。
10、数学计算——R语言
大小:<30M
简介:现在的Matlab动不动就4个G。需要吗?免费的R语言已经很好用了(我认为它比matlab还好用)。R的语法比matlab的语法优雅。且还有大量的第三方开源库可用。
R Console:
StatET Plugin for Eclipse(http://www.walware.de/goto/statet):
11、抓包与协议分析工具——Wireshark
大小:<20M
简介:Wireshark是极其强悍的协议分析工具,出自名门,其前身是大名鼎鼎的Ethereal。能支持非常多种协议的解码。既可以用它来分析应用层协议(如http),也可以分析底层协议。俺的协议分析首选工具。Wireshark很多人觉得不好用,是它采用的是tcpdump filter语法,熟练了就好了。
您常用哪些实用的精巧工具?
在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:
到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
删除PendingFileRenameOperations
特维斯转会闹剧落幕 曼联官网宣布野兽离队
曼联官网发表了一份声明说道:“昨晚是俱乐部预先设置的结束谈判的最后限期,俱乐部收到来自特维斯顾问的消息,曼联宣布特维斯将不会与俱乐部签订新合同。”
“俱乐部已经同意支付2550万英镑并向特维斯提供一份为期5年的合同使得他成为球队最高薪球员之一,然而,结果令人十分失望,他的顾问通知俱乐部,尽管他很享受在俱乐部的成功时刻,但是他不愿意继续为曼联效力。俱乐部很乐意感谢特维斯过去2个赛季对球队的奉献并祝福他未来好运。”
曼联官网并没有透露特维斯的去向,只是表明阿根廷人将离开老特拉福德,但是根据之前英国媒体的报道,特维斯在新赛季将为曼联的同城死敌曼城效力。
阿森纳官方宣布今夏第一签 阿贾克斯队长终加盟
北京时间今天凌晨,阿森纳俱乐部在其官方网站宣布了今年夏天俱乐部的首笔签约正式完成,在接受队医体检之后,阿贾克斯队长、23岁的比利时后卫托马斯-维尔马伦(Thomas Vermaelen)正式加盟兵工厂,双方将签署一份长期合同,不过俱乐部并未透露合同年限和具体的转会费,有媒体猜测维尔马伦的身价大约在1000万英镑左右。
维尔马伦年少成名,18岁的时候,他便进入了阿贾克斯一队,随后他被短期租借到瓦尔维克俱乐部,在回到阿贾克斯之后,维尔马伦迅速成长,并当上了阿贾克斯队长,如今他已代表俱乐部参加了143场比赛,另外还为比利时国家队出场21次。虽然只有23岁,但维尔马伦显然已是一名经验丰富的后防“老将”。
在签下维尔马伦之后,阿森纳主帅温格高兴的表示:“引进维尔马伦是阿森纳又一笔伟大的签约,我们都很高兴他能加盟阿森纳。他有着丰富的欧冠和联盟杯比赛经验,另外还在比利时国家队有着不俗的发挥。”另外温格还表示维尔马伦是一名后场多面手,他虽然大部分时间都司职左中卫,但也可以踢左后卫。“他有着积极的态度,我丝毫不怀疑他的到来能够增强我们实力。”温格说道。
维尔马伦本人同样对加盟阿森纳充满喜悦。“尽管离开效力了8年之久的阿贾克斯令我多少有些感伤,但我还是很高兴能够转会阿森纳,这是一支由世界级主帅、优秀球星和一座梦幻球场组成的俱乐部。我知道阿森纳在过去几年一直很成功并始终为冠军而战,这也正是我加盟他们的目的。”维尔马伦说道。他也对新赛季的比赛充满期待。维尔马伦表示:“在阿贾克斯我曾参加过欧冠并留下了美好的回忆,我期待能够跟随阿森纳一道再次经历欧冠。另外我也憧憬英超,对我来说这是世界上最好的联赛。我向阿森纳球迷保证我会为俱乐部全力以赴,我也期待下赛季我们能够一道夺得冠军奖杯。”
destructor()
实现继承
clone()
节点构造函数
dhtmlXTreeItemObject(itemId,itemText,parentObject,treeObject,actionHandler,mode)// mode - do not show images
从xml字符串加载树
loadXMLString(xmlString,afterCall)//afterCall - function which will be called after xml loading
从xml文件加载树
loadXML(file,afterCall)
新建子节点,前三个参数为必须的
insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)
insertNewChild(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)
节点展开与收缩:[1-close 2-open]
_HideShow(itemObject,mode)
获取节点状态:0 - 没有子节点, -1 - 节点合拢, 1 - 节点展开
_getOpenState(node)
getOpenState(itemId)
获取选中的节点Id
getSelectedItemId()
选中节点
_selectItem(node,e)
获取节点的index
getIndexById(itemId)
设置鼠标右键点击事件
setOnRightClickHandler(func)
设置鼠标点击事件
setOnClickHandler(func)
设置节点状态改变事件
setOnSelectStateChange(func)
设置允许动态加载xml文件(异步加载)
setXMLAutoLoading(filePath)
设置checkbox点击事件
setOnCheckHandler(func)
设置节点展开/合拢事件
setOnOpenHandler(func)
设置节点开始展/合拢开事件
setOnOpenStartHandler(func)
设置节点展开/合拢结束事件
setOnOpenEndHandler(func)
设置节点双击事件
setOnDblClickHandler(func)
展开节点及下面所有子节点
_xopenAll(node)
//增加了不传递itemId的判断(1494)
openAllItems(itemId)//不传递itemId参数则合拢根节点
根据id获取节点
_globalIdStorageFind(itemId)
合拢节点及其下所有子节点
_xcloseAll(node)
//修改了原来逻辑的一个错误(1521)
closeAllItems(itemId)//不传递itemId参数则合拢根节点
为节点增加用户自定义的数据
//修正一个错误(1548)
setUserData(itemId,name,value)
获取用户自定义的数据
getUserData(itemId,name)
获取节点颜色
getItemColor(itemId)
设置节点颜色
setItemColor(itemId,defaultColor,selectedColor)
获取节点名称--(with HTML formatting, if any)
getItemText(itemId)
获取父节点id
getParentId(itemId)
更改节点id
changeItemId(itemId,newItemId)
标记被剪切的节点
doCut()
粘贴被剪切的节点到新的父节点下
doPaste(itemId)
清空被剪切的节点
clearCut()
移动节点
_moveNode(itemObject,targetObject)
允许三种状态的复选框(全选、不选、部分选中)
enableThreeStateCheckboxes(mode)// 1 - on, 0 - off;
设置鼠标悬浮事件
setOnMouseInHandler(func)
设置鼠标移走事件
setOnMouseOutHandler(func)
设置是否允许显示树图片
enableTreeImages=function(mode)//1 - on, 0 - off
设置是否允许固定模式(对于显示复选框的界面美观一些,但没有水平滚动条)
enableFixedMode(mode)// - 1 - on, 0 - off
是否显示复选框
enableCheckBoxes(mode, hidden)//mode 0/1 hidden 0/1
设置节点图片
setStdImages(image1,image2,image3)//a0 - image for node without childrens a1 - image for closed node a2 - image for opened node
设置是否显示树线
enableTreeLines(mode)
设置图片
setImageArrays(arrayName,image1,image2,image3,image4,image5)//image1 - line crossed image image2 - image with top line image3 - image with bottom line image4 - image without line image5 - single root image
展开当前节点(一节)
_openItem(node)
openItem(itemId)
合拢当前节点(一节)
closeItem(itemId)
获取节点的层节数
getLevel(itemId)
设置节点是否允许被合拢
setItemCloseable(itemId,flag)//flag 0/1
对于展开节点返回子节点数量,对于未加载子节点的节点(异步加载)返回true
hasChildren(itemId)
获取节点下的子节点数
_getLeafCount(itemNode)
设置节点名称
setItemText(itemId,newLabel,newTooltip)
获取节点tip
getItemTooltip(itemId)
刷新节点
refreshItem(itemId)
设置节点图片
setItemImage2(itemId, image1,image2,image3)//image1 - node without childrens image image2 - closed node image image3 - open node image
设置节点图片
setItemImage(itemId,image1,image2)//image1 - node without childrens image or closed node image (if image2 specified) image2 - open node image (optional)
获取节点下所有子节点id以逗号分割
getSubItems(itemId)
getAllSubItems(itemId)
获取节点的所有子节点
_getAllScraggyItems(node)
获取选中节点的名称--(with HTML formatting, if any)
getSelectedItemText()
设置节点的选中状态
setCheck(itemId,state)//state - checkbox state (0/1/unsure)
设置节点及所有子节点的选中状态
setSubChecked(itemId,state)
获取节点的选中状态 return: node state (0 - unchecked,1 - checked, 2 - third state)
isItemChecked(itemId)
删除节点的所有子节点
deleteChildItems(itemId)
删除节点
deleteItem(itemId,selectParent) //selectParent - If true parent of deleted item get selection, else no selected items leaving in tree.
在节点下创建一个节点,前三个参数是必须的
insertNewNext(itemId,newItemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)
根据index获取节点下子节点的id
getChildItemIdByIndex(itemId,index)//itemId 节点id
设置拖动事件
setDragHandler(func)
设置是否允许拖拽
//mode - enabled/disabled [ can be true/false/temporary_disabled - last value mean that tree can be D-n-D can be switched to true later ]
//rmode - enabled/disabled drag and drop on super root
enableDragAndDrop(mode,rmode)
设置是否允许IE缓存
preventIECashing=function(mode)//mode - enable/disable random seed ( disabled by default )
设置是否允许选中节点名称高亮显示
enableHighlighting(mode)//mode - 1 - on, 0 - off
是否允许图片可点击和拖拽(clickable and dragable)
enableActiveImages(mode)// mode - 1 - on, 0 - off
设置节点获得焦点
focusItem(itemId)
获取所有无子节点的节点id
getAllChildless()
getAllLeafs()
获取所有有子节点的节点id
getAllItemsWithKids()
获取所有被选中节点id,不包括第三中状态的节点(部分选中的节点)
getAllChecked()
获取所有被选中节点id,包括第三中状态的节点(部分选中的节点)
getAllCheckedBranches()
获取节点下所有未选中的节点id,不传递itemId表示从根节点开始查找
getAllUnchecked(itemId)
获取所有部分选中的节点id(因部分子节点选中而被选中的节点)
getAllPartiallyChecked()
设置节点样式
setItemStyle(itemId,style_string)
设置是否允许拖拽图片
enableImageDrag(mode)
set function called when tree item draged over another item
setOnDragIn(func)
设置拖拽是是否允许自动滚动
enableDragAndDropScrolling(mode)







