流程图绘制软件介绍

    因为工作中经常需要用到流程图软件,上网仔细挑选了几款相对比较优秀的软件,一一介绍。
注意:流程图也叫Flowchart,不是思维导图Mind Map。不过有的软件既能绘制Mind Map,也能绘制Flowchart,如Edraw Mind Map(也称亿图图示专家),不过亿图如今有了专门的Flowchart了。

1.Diagram Designer


免费软件,windows平台,最新版本 1.25.下载地址:http://meesoft.logicnet.dk/
Diagram designer
安装包体积:1.3M
可以画一些简单的流程图,GUI示意图(Diagram Designer的特色就在这里),主要的图元有:简单图形,流程图,GUI窗口和元素,UML类图。
优点和特色:体积小,可画GUI示意图,展示窗口,表格等。
缺点:图元样式不够丰富,太少了。属性和文本编译不够直观,另外导出的图像质量不是很好,特别是曲线图形锯齿比较明显。导出时,不会智能的选择指导出可见部分。因此使用前需要预先设置好画布大小。
输出效果:diagram Designer.png

2.Dia


免费软件,跨平台,最新版本0.97.2,下载地址:http://projects.gnome.org/dia/
WINDOWS安装包 19M.由于dia最初是linux平台下的软件,所以发扬了linux桌面软件bug比较多,用户不友好,难适应的传统。

阅读剩余部分...

windows下架设svn服务器及与apache的结合

    因为自己工作时需要频繁修改文件,老把文件弄乱了,而且电脑常崩溃,就想自己搭个SVN服务器,这样就不怕丢文件了。下面的内容大部分来自于网络,少了些修改和补充。
一、准备工作
1、获取 Subversion 服务器程序

到官方网站(http://subversion.apache.org/packages.html)下载最新的服务器安装程序。目前最新的是1.7.2版本,有好几个人维护的SVN,可以随便选一个下载,就选http://sourceforge.net/projects/win32svn/这个吧,我也没比较哪个好,反正也差不多。

2、获取 TortoiseSVN 客户端程序

从官方网站 http://tortoisesvn.net/downloads获取最新的 TortoiseSVN 。TortoiseSVN 是一个客户端程序,用来与 subvers 服务器端通讯。Subversion 自带一个客户端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。

二、安装服务器端和客户端

安装 Subversion(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个 zip 压缩包,直接解压缩即可,比如我解压到 E:\svns 。客户端安装就不说了。

三、建立版本库(Repository)

运行Subversion服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。

开始建立版本库。首先建立 e:\svn 空文件夹作为所有版本库的根目录。然后,进入命令行并切换到subversion的bin目录。输入如下命令:

svnadmin create E:\svn\repos1
此命令在 E:\svn 下建立一个版本库 repos1 。repos1 下面会自动生成一些文件夹和文件。
我们也可以使用 TortoiseSVN 图形化的完成这一步:
先建立空目录 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here...”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。

阅读剩余部分...

转:理解inode

一、inode是什么?

理解inode,要从文件储存说起。

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

二、inode的内容

inode包含文件的元信息,具体来说有以下内容:


  * 文件的字节数

  * 文件拥有者的User ID

  * 文件的Group ID

  * 文件的读、写、执行权限

  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

  * 链接数,即有多少文件名指向这个inode

  * 文件数据block的位置


可以用stat命令,查看某个文件的inode信息:


  stat example.txt


总之,除了文件名以外的所有文件信息,都存在inode之中。至于为什么没有文件名,下文会有详细解释。

阅读剩余部分...

PHPStorm 3.0 发布,PHP 集成开发工具

    PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具。此IDE是基于java的,但是占用内存和速度等方面都做得很好。JetBrains公司的软件都是精品,如开发java的IntelliJ IDEA,开发python的pycharm等。

PhpStorm 3.0 给我们带来了很多新功能和修复,一共有700改动让这个IDE变得更加易用,更加智能。


PHP UML


phpstorm uml

Profiler


New PHP formatting options


支持Zend,Pear和其他标准的PhpDoc格式化。


VCS News


Platform Improvements


支持MAC OS X LION

阅读剩余部分...

转:用Vmware Server搭建多虚拟环境 便于浏览器兼容性测试

目前正在梳理整个前端开发的流程及环境,也看了d2大家分享的关于前端各种自动化的演讲,便开始动手了
第一项是希望解决大家兼容性测试的问题,之前已经用虚拟机替换掉了ietester
但本地的虚拟机还是会出现团队成员不一致的情况,并且占用本地资源比较严重
在 美团 潘魏增 老兄帮助下,了解到美团目前在用的vmserver是很好的解决方案,再次感谢

同时参考了很多大家分享的东西,把自己遇到的问题也放出来和大家分享

下一步打算做一些前端自动化方面的脚本,希望和大家多学习,共进步

vmserver是vmware旗下的一款虚拟机服务器,可以通过web管理和操作虚拟机,同时支持多平台 windows、linux、macos等,免费的 可以在官网申请到授权码

这次我们选择的是linux版的vmware server

服务器环境:centos 5.5

vmserver版本:VMware-server-2.0.2-203138.i386

安装过程不详细叙述了 参考下面这篇文章即可,我也复制到最后给大家参考了

安装后通过web可以访问,进入管理端,在里面安装虚拟机即可

阅读剩余部分...

让你的32位WIN7突破3GB的可用内存限制

Though machines with 4GB are not yet the typical purchase for home or business use, they are readily available from major manufacturers and it won’t be long before they are the typical purchase. But there are problems. You don’t have to stand for long in a computer shop to hear a sales assistant talk of 4GB as some sort of limit for 32-bit operating systems, and it won’t be long before this sales patter develops into outright promotion of 64-bit Windows as the only way to get past this limit. Some sense of this can be seen already in manufacturers’ advertising materials, as in the following fine print from Dell:


The total amount of available memory will be less than 4GB. The amount less depends on the actual system configuration. To fully utilise 4GB or more of memory requires a 64-bit enabled processor and 64-bit operating system, available on selected systems only.

Let me stress now that I do not complain about Dell’s statement. Its first two sentences are correct for all 32-bit editions of Windows Vista exactly as configured by Microsoft and installed by Dell. In the last sentence, I might quibble that the talk of a 64-bit processor is superfluous since the machine on offer does have such a processor, but otherwise the sentence is correct because of the word fully. Yet although Dell’s statement is true, it is not the whole truth: there is something that Microsoft does not tell you, and perhaps does not tell Dell.

Well, to say it that way is perhaps to put words in Microsoft’s mouth. I say the restriction to 4GB is a licensing issue because that’s how Microsoft’s programmers evidently have thought of it. The 4GB limit is retrieved from the registry by calling a function named , which is itself called from an internal procedure which Microsoft’s published symbol files name as MxMemoryLicense. If you remove this check for the licensed memory limit then a restriction to 4GB is demonstrably not enforced by other means. Yet I must admit that I have not found where Microsoft says directly that 32-bit Windows Vista is limited to 4GB only by licensing. The supposed License Agreement doesn’t even mention the word memory. What, really, is going on?

阅读剩余部分...

转:用WinHex制作无法修改的AutoRun.inf文件

    在我们日常工作中,经常需要使用闪存(也称为U盘或者优盘)主要是AutoRun.inf文件在起作用,我们可以使用WinHex解决这一问题。首先 格式化闪存,文件系统选择默认的FAT32格式即可(由于格式的通用性比较好,所以最好选择FAT32)。然后在闪存根目录下手工新建一个名为 AutoRun.inf的文件(可以新建任何一个文件,然后改名为Autorun.inf就可以了。),接着打开WinHex,按下F9功能键,或者从 “工具”菜单下选择“磁盘编辑器”,打开需要处理的闪存(如果你插了多个,请确定那个闪存的盘符),定位到AutoRun.inf文件,可以看到文件名中 间有一个空格,文件名的后面也有一个空格,现在请将后面的空格(20)直接修改为“E5”,确认后保存再退出就可以了。
看起来AutoRun.inf的文件名没有发生任何变化,但这个时候,任何人都不能再打开它或者修改它了。或者,也可以将“20”更改为“E2”,这样可以将AutoRun.inf文件隐藏起来,使你不会每次都看见它而纳闷。
        (注:未验证,这种属于MBR的修改,危险性较大,勿轻易尝试)

Linux利器 strace

    strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
   strace使用参数

-p 跟踪指定的进程
-f 跟踪由fork子进程系统调用
-F 尝试跟踪vfork子进程系统调吸入,与-f同时出现时, vfork不被跟踪
-o filename 默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件中
-ff 常与-o选项一起使用,不同进程(子进程)产生的系统调用输出到filename.PID文件
-r 打印每一个系统调用的相对时间
-t 在输出中的每一行前加上时间信息。 -tt 时间确定到微秒级。还可以使用-ttt打印相对时间
-v 输出所有系统调用。默认情况下,一些频繁调用的系统调用不会输出
-s 指定每一行输出字符串的长度,默认是32。文件名一直全部输出
-c 统计每种系统调用所执行的时间,调用次数,出错次数。
-e expr 输出过滤器,通过表达式,可以过滤出掉你不想要输出


应用场景

#1.跟踪你的web服务器系统调用
系统调用优化,也是web性能优化的一个较为重要的方向,尤其是在I/O密集型web应用的情况。我们这里的测试环境是CentOS5.4+Nginx+FastCGI。

<?php
//file:hello.php
define('DOCUMENT_ROOT', dirname(__FILE__));
include("hello.inc");
include("./hello.inc");
include(DOCUMENT_ROOT . "/hello.inc");
?>
#strace -f -F -o strace_nginx strace /wwwchroot/nginx/sbin/nginx -c /wwwchroot/nginx/nginx.conf
... (有部分不重要的数据影响排版,在这里使用...代替)
//--接受来自客户端的http请求
4165  recv(16, "GET /hello.php HTTP/1.1\r\nHost: f"..., 32768, 0) = 391
4165  epoll_ctl(9, EPOLL_CTL_MOD, 16, {EPOLLIN|EPOLLOUT|EPOLLET, {u32=3081162952, u64=698098541354471624}}) = 0
//--进行DNS查找
4165  getsockname(16, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("222.73.211.214")}, [16]) = 0
//--新建一个socket,连接Fast-CGI,端口号为9000
4165  socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 17
4165  ioctl(17, FIONBIO, [1])           = 0
4165  epoll_ctl(9, EPOLL_CTL_ADD, 17, {EPOLLIN|EPOLLOUT|EPOLLET, {u32=3081163048, u64=697886249710965032}}) = 0
4165  connect(17, {sa_family=AF_INET, sin_port=htons(9000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 )
4165  epoll_wait(9, {{EPOLLOUT, {u32=3081163048, u64=697886249710965032}}, {...}, 5\
12, 300000) = 2
4165  gettimeofday({1295420285, 130967}, NULL) = 0
4165  recv(16, 0xbfdd7d8b, 1, MSG_PEEK) = -1 EAGAIN (Resource temporarily unavailable)
4165  getsockopt(17, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
//--将用户http请求交给Fast-CGI
4165  writev(17, [{"\1\1\0\1\0\10\0\0\0\1\0\0\0\0\0\0\1\4\0\1\3\30\0\0\21\7GATEWA"..., 832}], 1) = 832
4165  epoll_wait(9, {{EPOLLIN|EPOLLOUT, {u32=3081163048, u64=697886249710965032}}}, 512, 300000) = 1
4165  gettimeofday({1295420285, 131559}, NULL) = 0
//--接收Fast-CGI响应
4165  recv(17, "\1\6\0\1\0V\2\0X-Powered-By: PHP/5.2.10"..., 65536, 0) = 112
4165  readv(17, [{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65424}], 1) = 0
4165  mmap2(NULL, 274432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7514000
4165  close(17)                         = 0
4165  munmap(0xb7514000, 274432)        = 0
//-- 响应客户端http请求,即http响应
4165  writev(16, [{"HTTP/1.1 200 OK\r\nServer: nginx/0"..., 228}, {"22\r\n", 4}, ..., 5) = 273
4165  write(5, "116.66.34.82 - - [19/Jan/2011:14"..., 191) = 191
4165  setsockopt(16, SOL_TCP, TCP_NODELAY, [1], 4) = 0
4165  recv(16, 0x9b024e8, 32768, 0)     = -1 EAGAIN (Resource temporarily unavailable)

阅读剩余部分...

    Page :
  1. 1
  2. 2
  3. 3
  4. 4