推荐一个正则表达式测试/验证工具

这几天代码里用到很多正则表达式,需要验证,直接在程序里调试太麻烦。

比如:C#中用正则表达式取页面下拉菜单(select)中的值 – http://bohu.net/blog/8815

找到了这个验证工具:

正则表达式测试器 – http://deerchao.net/tools/regex_tester/index.htm
说明:该工具允许你测试和分析正则表达式。

解决 webBrowser DocumentCompleted 的多次调用

winform中使用webBrowser抽取页面中的一些数据。断点“webBrowser1_DocumentCompleted”发现,跑进来了好多次。

DocumentCompleted执行多次,跟踪发现ReadyState状态不一样,分别是Intercative和Complete。

而MSDN对这两种状态值的解释是:

  • Complete该控件已完成新文档及其所有内容的加载;
  • Interactive该控件已经加载足够的文档以允许有限的用户交互,比如单击已显示的超链接。

增加判断“ReadyState”之后继续,DocumentCompleted仍然执行了两次,但ReadyState状态一样都是Complete。再查原因。

MSDN对其解释是在多个的帧的情况下DocumentComplete获取触发多次。并非每个框架将触发此事件,但触发DownloadBegin事件的每个框架将触发相应的DocumentComplete事件。

 

最后webBrowser1_DocumentCompleted中的代码是:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            string BrowserUrl = webBrowser1.Url.ToString();

            if (String.IsNullOrEmpty(BrowserUrl)) //检查未赋值或空值
                return;
            if (BrowserUrl.Equals("about:blank")) //是否为空白页
                return;
            if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)  //状态为完成
                return;
            if (e.Url.ToString() != BrowserUrl)  //检查事件url和webBrowser的url
                return;
            if (webBrowser1.DocumentText == "")
                return;

            ... ...
        }

 

还有一点,就是窗体打开就加载webBrowser1,如放在 Form_Load 会使程序界面加载很慢,建议放在 Form_Shown中(每当窗体第一次显示时发生)。

 

解决DirectAdmin(DA) 中 WordPress 更新失败的问题

在DirectAdmin下更新WordPress版本,主题或插件时, 经常出现: “下载失败。 文件流的目标目录不存在或不可写。”的错误提示.

或者是模板,插件”无法删除xxx。”等问题。

这跟文件权限的设置有关,处理方法如下:.

先进入DirectAdmin后台,选择域名站点,在进入”File Manager”.

然后进入“wp-content”文件夹下,勾选”plugins“,”themes“,”upgrade“,”uploads“等有问题的文件夹。

在下面的”set Permission“后设置权限”777“或者”755“, 勾选后面的”Recursive“遍历选项,再点击”set Permission“按钮。

然后可以尝试下更新或删除是否正常。

如果还不行, 可能是文件权限的所有者改变了,可以点击”Reset Owner“,

重置文件所有者再试一次。

一般问题都可以解决了。

—————————————————

再者就是主机服务商的一键脚本安装wordpress时引发的 在DirectAdmin或者cPanel虚拟主机通常带的快速安装wp脚本,如果不进行特殊设置会在wp-config.php文件里面加入 “WP_TEMP_DIR” 属性,此属性虽然有助于确定wordpress下载升级包或者插件时所用的路径但是也有缺点。 也就是说如果你在更换空间时忘记修改了此属性的绝对路径就会出现以上的错误

解决办法是:空间更换完毕后自行修改wp-config里的此项属性所对应的缓存目录的绝对路径,目标文件夹权限设为777。 或者删除类似这样的代码define('WP_TEMP_DIR',      '/home/xxx.com/wp-content/uploads');

另一种:

通过wordpress后台,无法删除插件。甚至通过FTP也无法删除。也就是说删除之后,仍然显示在后台插件列表内。

解决方法: 通过Secure Shell (SSH)删除

这主要是因为插件有隐藏/嵌套的文件,没有出现在FTP.

使用 SSH 访问博客

  1. 通过SSH登录站点。
  2. 使用 SSH 命令浏览 “../wp-content/plugins/”。
  3. 使用 ls -al 查看文件的完全列表。
  4. 通过 rm (文件名)删除部分文件.

Linux下查询端口占用的进程pid

 

今天在CentOS下安装学习Jexus, 装好启动失败.  发现80端口占用了,才想起已经安装了amh.

于是按照windows下”netstat -a”, 查看网络端口连接.  但是显示的列表十分长, 不好查找…

加参数 , 发现几个容易查看的参数命令.
1. 不过滤显示

netstat -lnp

2.过滤. 最方便的,只显示80

netstat -lnp | grep "80"

3.使用 lsof 查询. 没有的话先安装

#yum install lsof #[安装lsof]
lsof -i:80

知道占用端口的进程后修改,可以终止进程:kill pid. 或者修改启动端口.

 

 

CentOS 桌面 + VNC 安装脚本

CentOS下的一段脚本.  直接一起安装桌面,XWindows,VNC远程控制,和支持中文.

#!/bin/bash

yum -y groupinstall "Desktop" #[安装桌面 ]
yum -y groupinstall "X Window System" #[安装XWindows]
yum -y groupinstall "Chinese Support" #[增加中文支持]

#echo 'LANG="zh_CN.UTF-8"' >> /etc/sysconfig/i18n #[设置中文]

startx #[启动XWindows]

#echo 'id:5:initdefault' >> /etc/inittab #[开机自动运行]

yum -y install tigervnc tigervnc-server #[安装VNC远程控制]

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/vncservers #[设置服务权限]
echo 'VNCSERVERARGS[1]="-geometry 1024x768"' >> /etc/sysconfig/vncservers #[设置服务参数]

vncpasswd #[这一步将会提示你设置VNC的密码]

#service vncserver restart #[重启]
service vncserver start #[启动]
#chkconfig vncserver on #[开机启动]

#后的注释项, 可以自己参考是否使用.  比如是否开机自动启动VNC.

桌面环境相关命令:

# 从命令行切换到桌面环境
startx

# 获取当前启动模式
systemctl get-default

# 修改启动模式为图形化
systemctl set-default graphical.target

# 修改启动模式为命令行
systemctl set-default multi-user.target

默认启动桌面环境后以 root 用户自动登录:

 
# 修改配置文件
vi /etc/gdm/custom.conf


# 增加如下配置
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=root
远程服务设置
# Windows 远程登录需要安装 Xrdp,需要 epel 源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y xrdp

# Xrdp 会调用 VNC,安装 tigervnc-server
yum install -y tigervnc-server

# 修改 Xrdp 最大连接数
vim /etc/xrdp/xrdp.ini
max_bpp=32

# 启动 Xrdp 并设置开机启动
systemctl start xrdp
systemctl enable xrdp

# 开放 3389 端口,或者关闭防火墙
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload
# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld
VNC 登录设置

用 VNC 客户端连接登录还需做一些设置

VNC 客户端下载:https://www.realvnc.com/en/connect/download/viewer/

# 为当前用户设置 VNC 密码,不然服务无法启动。此密码和系统密码不一样,这是使用 vnc viewer 登陆时使用的密码
vncpasswd

# 复制服务设置的模板
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
# 修改配置,以 root 用户为例,每个用户都需要单独设置
vim /etc/systemd/system/vncserver@\:1.service

# 将 <USER> 换成用户名,[Service] 下增加 User=root
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=root

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target



# 让服务文件修改生效
systemctl daemon-reload

# 启动服务
systemctl start vncserver@:1
# 设为开机启动
systemctl enable vncserver@:1

# 查看服务端口,用于客户端连接地址
netstat -lnpt|grep Xvnc

# 放行连接端口,每个用户端口不同。也可直接关闭防火墙
firewall-cmd --add-port=5901/tcp --permanent
firewall-cmd --reload

一些适合学习/服务器/VPS和开发的 Linux, BSD 发行版本


发行归类: Other OS

  • 基于何种发行: Independent
  • 来源: Netherlands
  • 处理器架构: i386
  • 桌面: EDE, JWM
  • 类型: Education
  • 状态: 活跃发展中

MINIX是一份像UNIX的计算机操作系统,它基于微内核架构。它极其地小,运行于内核模式的部分仅约5000行可执行代码,而运行于用户模式的部分被分解为小型且独立的模块,从而提高系统可靠性。它最初被设计为一份教学工具,但最新版本的MINIX也面向嵌入式系统及低端笔记本电脑。据其声称,MINIX仍在开发中,并且还远不及BSD或Linux那样成熟。它遵循一份BSD类型的许可证来发布。


  • 发行归类: Linux
  • 基于何种发行: Independent (originally forked from Damn Small)
  • 来源: USA
  • 处理器架构: armhf, i486
  • 桌面: Fluxbox, flwm, Hackedbox, IceWM, JWM, Openbox
  • 类型: Desktop, Live Medium, Old Computers
  • 状态: 活跃发展中

Tiny Core Linux是一份12兆字节的图形化Linux桌面。它基于Linux 2.6内核、BusyBox、Tiny X、Fltk、Flwm。其核心完全运行于内存中并且启动非常快。用户对需要支持哪些应用程序和/或额外硬件拥有完全的控制,无论系统是面向台式机、上网机、应用服务器;这可以从该项目的在线软件仓库中进行选择。


  • 发行归类: Linux
  • 基于何种发行: Fedora, Red Hat
  • 来源: USA
  • 处理器架构: i386, x86_64
  • 桌面: GNOME, KDE
  • 类型: Desktop, Live Medium, Server
  • 状态: 活跃发展中

作为一个团体,CentOS是一个开源软件贡献者和用户的社区。典型的CentOS用户包括这样一些组织和个人,他们并不需要专门的商业支持就能开展成功的业务。CentOS是Red Hat Enterprise Linux的100%兼容的重新组建,并完全符合Red Hat的再发行要求。CentOS面向那些需要企业级操作系统稳定性的人们,而且并不涉及认证和支持方面的开销。


  • 发行归类: Linux
  • 基于何种发行: Arch
  • 来源: Austria, Germany, France
  • 处理器架构: i686, x86_64
  • 桌面: Cinnamon, Enlightenment, KDE, LXDE, MATE, Openbox, Xfce
  • 类型: Desktop, Live Medium
  • 状态: 活跃发展中

Manjaro Linux是快速的、用户友好的、面向桌面的、基于Arch Linux的操作系统。它的一些显著特性包括:一份直观的安装程序、自动硬件检测、稳定的滚动式发布模式、对安装多个内核的支持、用于管理图形卡的特别Bash脚本、高度的桌面可配置性。Manjaro Linux提供Xfce和Openbox桌面作为核心选项,并为高级用户提供一份最小主义的Net版本。用户还可以获得社区支持的GNOME 3/Cinnamon及KDE版本。Manjaro的社区论坛可提供帮助并充满活力,用户受益其中。


  • 发行归类: BSD
  • 基于何种发行: FreeBSD
  • 来源: France
  • 处理器架构: i386, x86_64
  • 桌面:
  • 类型: NAS
  • 状态: 活跃发展中

FreeNAS是一份基于FreeBSD的小型操作系统,它提供免费的网络附加存储(NAS)服务(CIFS、FTP、NFS)。


  • 发行归类: BSD
  • 基于何种发行: FreeBSD
  • 来源: Switzerland
  • 处理器架构: i386
  • 桌面:
  • 类型: Firewall
  • 状态: 活跃发展中

m0n0wall计划的目标是创建一份完整的、内置的防火墙软件包,当它配合PC使用时,能够提供商用防火墙机器的所有重要功能(连同易用性在内),而其价钱却只是后者的一小部分(因为m0n0wall是自由软件)。m0n0wall基于FreeBSD的一个精简版本,并带有一个web服务器(thttpd)、PHP以及其他一些实用工具。整套系统配置存储于单个的XML文本文件以对系统透明。m0n0wall很可能是首个拥有用PHP实现的启动配置的UNIX系统,而通常这是依靠shell脚本的,此外,它把整个系统配置都用XML格式存储。

 


  • 发行归类: BSD
  • 基于何种发行: FreeBSD
  • 来源: Netherlands
  • 处理器架构: i386, x86_64
  • 桌面:
  • 类型: NAS
  • 状态: 活跃发展中

NAS4Free是基于FreeBSD的嵌入式开源NAS(网络附属存储)发行。NAS4Free支持跨越多种操作系统的共享,包括Windows、Apple、类UNIX系统。NAS4Free在多数家庭及企业环境中都易于安装,并且能在网络上方便地管理和共享海量数据。NAS4Free还集成了很多不同的流特性,以与网络上的其他设备共享多媒体数据。NAS4Free包含ZFS v28(RAIDZ、RAIDZ2、RAIDZ3),软件RAID(0、1、5),磁盘加密,S.M.A.R.T或邮件报告,并支持以下的多种协议:CIFS(samba)、FTP、NFS、TFTP、AFP、RSYNC、Unison、iSCSI(发起者及目标)、HAST、CARP、Bridge、UPnP、BitTorrent。所有功能都可通过网页界面来高度定制。

 


  • 发行归类: Linux
  • 基于何种发行: Debian
  • 来源: Germany
  • 处理器架构: i686, x86_64
  • 桌面:
  • 类型: NAS
  • 状态: 活跃发展中

OpenMediaVault是基于Debian GNU/Linux的网络连接存储(NAS)解决方案。它包含SSH、(S)FTP、SMB/CIFS、DAAP媒体服务器、rsync、BitTorrent等很多种服务。得益于模块化的设计,它可以通过插件来扩展。OpenMediaVault主要被设计用于家用环境或小型家庭办公室,但却不局限于此类。它是一份简单和易于使用的、开箱即用的解决方案,能让所有人无需很深的知识就能安装并管理一套网络连接存储。


  • 发行归类: Linux
  • 基于何种发行: Independent
  • 来源: United Kingdom
  • 处理器架构: i686, x86_64
  • 桌面:
  • 类型: Firewall
  • 状态: 活跃发展中

Smoothwall是一系列的Internet安全产品,它被设计用来保护你的用户和网络免受外来的攻击。Smoothwall Express基于Linux操作系统。对安全系统而言Linux是一个理想的选择,它是可信赖的、安全的、具有高度可定制性并可免费获得其开放源码。Smoothwall包含一套经过加固的GNU/Linux操作系统,因此,无需再单个地安装其他系统。Smoothwall被设计为易于使用,并通过基于web的图形用户界面来进行配置。它并不要求用户具有Linux方面的知识就能安装和使用。


  • 发行归类: Linux
  • 基于何种发行: Debian (Stable)
  • 来源: USA
  • 处理器架构: i386, x86_64
  • 桌面:
  • 类型: Server
  • 状态: 活跃发展中

TurnKey Linux是基于Debian的虚拟应用程序库,它将一些最好的开放源码软件集成到完备可用的解决方案中。每一个虚拟应用程序都为易用性进行了优化,并能在数分钟内就部署在裸机、虚拟机及云中。每一个虚拟应用都可以光盘镜像或是虚拟机镜像的形式获得,而这份仍在增长的应用列表包括Bugzilla、Django、Drupal、File Server、Joomla、LAMP、Magento、Mantis、MediaWiki、MoinMoin、Moodle、MovableType、MySQL、Openbravo、phpBB、PostgreSQL、ProjectPier、Rails、Revision Control、StatusNet、Apache Tomcat、Torrent Server、Trac、TWiki、vtiger、WordPress、Zimra及其他。


  • 发行归类: Linux
  • 基于何种发行: Arch
  • 来源: Canada
  • 处理器架构: i686, x86_64
  • 桌面: i3, Openbox
  • 类型: Desktop, Live Medium
  • 状态: 活跃发展中

ArchBang Linux是基于Arch Linux的轻量级发行。使用Openbox窗口管理器,它快捷并保持最新,既适合于桌面又适合于便携式系统。


  • 发行归类: Linux
  • 基于何种发行: Fedora, CentOS
  • 来源: USA
  • 处理器架构: i386, x86_64
  • 桌面:
  • 类型: Server
  • 状态: 活跃发展中

SME Server(最初叫作e-smith)由Joseph和Kim Morrison创立于1999年1月。同年4月公司推出了他们旗舰软件产品的首个版本——e-smith服务器及网关。到年底时,已经有数千的e-smith服务器运行在从斐济到芬兰的各个国家。关于e-smith的消息很快地流传在开发人员和系统集成人员中,而他们需要的正是面向小型企业用户的牢固易用的服务器。2001年7月,e-smith公司被Mitel Networks收购,2004年9月又被Lycoris收购,并且该项目目前还得到了Resource Strategies公司的赞助。


  • 发行归类: Linux
  • 基于何种发行: Debian
  • 来源: Germany
  • 处理器架构: i386, x86_64
  • 桌面: GNOME, KDE
  • 类型: Desktop, Live Medium
  • 状态: 活跃发展中

Tanglu是基于Debian的Linux发行,它旨在向普通用户和发烧友提供最佳的桌面体验。与Debian GNU/Linux相比,Tanglu计划提供大量用户友好的、面向桌面的特性,比如可用的新软件、对额外固件的缺省包含,以及基于时间的、规律化的发布周期。


  • 发行归类: Linux
  • 基于何种发行: Independent
  • 来源: Germany
  • 处理器架构: i586, x86_64
  • 桌面: Blackbox, GNOME, IceWM, KDE, LXDE, Openbox, WMaker, Xfce
  • 类型: Desktop, Server, Live Medium, Raspberry Pi
  • 状态: 活跃发展中

openSUSE项目是Novell公司资助的社区计划。为在方方面面促进Linux的普及应用,该计划提供了对openSUSE这份完整Linux发行的免费、简便的获取访问。openSUSE项目有三个主要目标:让openSUSE成为任何人都能最容易获得且最广泛使用的Linux发行,利用开源软件的联合来使openSUSE成为世界上可用性最强的Linux发行及新手和资深Linux用户们的桌面环境,显著地简化并开放其开发及打包过程以使openSUSE成为Linux开发人员及软件提供商所选择的平台。


  • 发行归类: Linux
  • 基于何种发行: Debian (Stable)
  • 来源: United Kingdom
  • 处理器架构: i486, i686, x86_64
  • 桌面: Openbox
  • 类型: Desktop, Netbooks, Old Computers
  • 状态: 活跃发展中

CrunchBang Linux是一份基于Debian的发行,其特色在于轻量级的Openbox窗口管理器和GTK+应用程序。该发行从一份最小的Debian系统创建,并被定制为可以提供速度和功能两方面的一个良好均衡。CrunchBang Linux目前可以一份自启动运行光盘获得,然而为获得其最佳性能建议还是安装到硬盘上使用。


  • 发行归类: Linux
  • 基于何种发行: Independent
  • 来源: Australia
  • 处理器架构: i386
  • 桌面: JWM, Openbox
  • 类型: Desktop, Old Computers, Live Medium, Netbooks
  • 状态: 活跃发展中

是的,Puppy Linux是另外一种Linux发行。它的不同之处在于,Puppy是格外的小,然而又充满了特性。Puppy能从64M的存储设备启动,并且,整套系统都能在内存中运行。有很多自启动运行光盘的Linux发行,它们需要不停地从光盘读取数据才能运行,Puppy与它们不一样,Puppy整个装载在内存中。这意味着,所有的应用程序一眨眼的功夫就能启动,并且立即对用户的输入作出响应。Puppy Linux能从flash卡或者是任何的USB存储设备启动(这是flash-Puppy),或者光盘(这是live-Puppy),或者Zip disk及LS/120/240 Superdisk(这是zippy-Puppy),或者软盘(这是floppy-Puppy),或者硬盘(这是hard-Puppy)。它甚至可以使用一张多区段烧录的CD-R/DVD-R以将所有内容保存回CD/DVD中。


  • 发行归类: Linux
  • 基于何种发行: Debian, KNOPPIX
  • 来源: USA
  • 处理器架构: i386
  • 桌面: JWM, Fluxbox
  • 类型: Old Computers, Live Medium
  • 状态: 活跃发展中

Damn Small Linux是一套基于业务卡(50M字节)可启动光盘的Linux发行。尽管它的个头如此之小,它努力成为一份可用并且易用的桌面。Damn Small Linux的桌面几乎是完整的一套,包括xmms(支持mp3和mpeg)、FTP客户端、基于links的web浏览器、电子制表软件、电子邮件程序、英语拼写检查、字处理器、三个编辑器(nedit、nvi及类似emacs的zile)、xpdf阅读器、worker文件管理器、naim(支持AIM、ICQ和IRC)、VNCviewer、SSH/SCP服务器和客户端、DHCP客户端、PPP及PPPoE、web服务器、计算器、Fluxbox窗口管理器、系统监视软件、USB支持,并且它很快就将拥有PCMCIA支持。如果你喜欢Damn Small Linux,你可以安装到你的硬盘上。由于所有的软件都是小巧型的,所以它对老旧的硬件会是一个很好的选择。


  • 发行归类: Linux
  • 基于何种发行: Independent
  • 来源: Switzerland
  • 处理器架构: armhf, i386, x86_64
  • 桌面: XBMC Media Centre
  • 类型: Multimedia, Raspberry Pi
  • 状态: 活跃发展中

OpenELEC是基于Linux创建的嵌入式操作系统,其专用目的在于运行XBMC,而这是开放源码的娱乐媒体中心。OpenELEC的理念是让人们在使用他们的家庭影院个人电脑(HTPC)时,就像使用任何其它连接到电视机的设备一样,比如DVD播放器或者Sky box。OpenELEC并不需要人们去维护一套完整的操作系统、进行系统设置并安装软件包以成为一套综合多媒体中心;它被设计为易于安装、管理和使用,从而使用它更像运行一台机顶盒而不是一部功能完善的计算机。


  • 发行归类: Linux
  • 基于何种发行: Fedora
  • 来源: Global
  • 处理器架构: i586, i686, x86_64
  • 桌面:
  • 类型: Server, Security
  • 状态: 活跃发展中

Openwall GNU/*/Linux(简称Owl)是一份小型的安全增强的Linux发行,它面向服务器、电器以及虚拟电器。支持SSH远程访问的Owl自启动运行光盘可用于修复或者安装系统(哪怕安装的不是Owl)。其另一种次要的应用场合则在于操作系统和/或计算机安全课程培训,这些课程可以从Owl的简单结构及完整环境得益。

多种常见软件系统缩写

BPM(Business Process Management):业务流程管理

也称做商业流程管理。一套达成企业各种业务环节整合的全面管理模式。其中的Business并不局限于商业,它泛指各种组织中的活动:从商业企业到政府机构、非营利团体等等,因此,普遍共识是对应于更加中性的“业务”一词,例如:业务流程管理(Business Process Management, BPM)、业务流程再造(Business Process Reengineering, BPR)等。Business Process Modeling,即业务流程建模,是对业务流程进行表述的方式,它是过程分析与重组的重要基础。

 

CRM(Customer Relationship Management):客户关系管理

是一个不断加强与顾客交流,不断了解顾客需求,并不断对产品及服务进行改进和提高以满足顾客的需求的连续的过程。其内含是企业利用信息技(IT)术和互联网技术实现对客户的整合营销,是以客户为核心的企业营销的技术实现和管理实现。客户关系管理注重的是与客户的交流,企业的经营是以客户为中心,而不是传统的以产品或以市场为中心。为方便与客户的沟通,客户关系管理可以为客户提供多种交流的渠道。

 

CMS(Content Management System):内容管理系统

它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本。CMS的功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档案。

 

EIP(Enterprise Information Portal): 企业信息门户

是指在Internet的环境下,把各种应用系统、数据资源和互联网资源统一集成到企业信息门户之下,根据每个用户使用特点和角色的不同,形成个性化的应用界面,并通过对事件和消息的处理、传输把用户有机地联系在一起。

 

ERP(Enterprise Resource Planning):企业资源计划系统

又译企业资源规划,简单地说,ERP是“一个大型模块化、集成性的流程导向系统,集成企业内部财务会计、制造、进销存等信息流,快速提供决策信息,提升企业的营运绩效与快速反应能力。”它是e化企业的后台心脏与骨干。任何前台的应用系统包括EC、CRM、SCM等都以它为基础。
一般ERP软件强调如下之系统集成。
ERP主要的模块有:
生产管理:工程、材料清单(Bill Of Material)、调度、产能、工作流管理、质量控制、成本管理、生产过程、生产工程、生产流程、生产配置
进销存货管理:库存、订单输入、采购、供应商调度、货物检查、付款请求处理、佣金计算
财务管理及会计项目:总帐、现金管理、应付帐款管理、应收帐款管理、票据资金管理、固定资产管理
成本管理:账单、时间和支出、活动管理
人力资源管理:人力资源、薪金名册、培训管理、员工班别和出勤管理、津贴、劳健保、绩效考核
供应链管理:和客户、供应商、员工之间的各种自服务接口

 

GIS(Geographic Information System):地理信息系统

又称为“地学信息系统”。它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。

 

MIS(Management Information System):管理信息系统

是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。

 

OA(Office Automation):办公自动化

是现代利用电脑进行全自动的办公,目的是提高效率。

 

SCM(Supply Chain Management):供应链管理

把公司的制造过程、库存系统和供应商产生的数据合并在一起,从一个统一的视角展示产品建造过程的各种影响因素。对整个供应链(从供货商,制造商,分销商到消费者)的各个环节进行综合管理,例如从采购、物料管理、生产、配送、营销到消费者的整个供应链的货物流、信息流和资金流,把物流与库存成本降到最小。供应链是企业赖以生存的商业循环系统,是企业电子商务管理中最重要的课题。

 

WfMS(Workflow Management System):工作流管理系统

工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流管理系统(Workflow Management System, WfMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。

 

WMS(Warehouse Management System):仓储管理系统

对物料存放空间进行管理的软件,区别于库存管理。其功能主要有两方面,一为通过在系统中设定一定的仓库仓位结构对物料具体空间位置的定位,二为通过在系统中设定一些策略对物料入库\出库\库内等作业流程进行指导。有利于仓库资源使用。

 

Arch (及衍生版Gentoo,Manjaro) 中使用pacman更新的相关命令

在 Arch/ArchBang/Gentoo 中使用的 pacman 更新时如果报错,一般都是gpg签名不可信的问题.

需要选初始化gpg keys. 已经初始化过签名key的, 直接更新就可以了.

  1. 初始化 key:
    pacman-key --init

    验证已存档使用的 keys:

    pacman-key --populate archlinux

     

  2. 软件版本更新:
    pacman -Syy

     

    内核版本更新:

    pacman -Su
    pacman -Suy

     

    缓存中移除所有其他包吗?

    pacman -Syc

使用 .NET Framework 的跨平台开发

(相关参阅)可移植类库 –  http://msdn.microsoft.com/zh-cn/library/gg597391(v=vs.100).aspx

.NET Framework 4.5         

Visual Studio 2012 中的 可移植类库 项目支持 .NET Framework 应用的跨平台开发。

使用此项目编写和生成的可移植程序集,无须在多个平台的修改即可运行,例如 Windows 7,Windows 8,Silverlight ,Windows Phone 和 Xbox 360。             例如,可以创建在桌面应用程序、Windows 应用商店应用程序和移动应用程序中包含共享业务逻辑的类,然后从不同类型的应用程序中引用这些类。

可移植类库项目支持 .NET Framework、Silverlight、适用于 Windows 应用商店应用的 .NET、Windows Phone 和 Xbox 360 中的部分程序集,并提供可用于生成不在这些平台上进行修改也可运行的程序集的 Visual Studio 模板。             如果没有使用可移植类库项目,您必须先指定单个应用程序类型,然后手动修改其他应用程序类型的类库。  可移植类库 项目,可以通过生成在不同设备上的应用程序之间共享的可移植程序集来减少开发和测试代码的时间和费用。

                 说明
如果您使用的是 Visual Studio 2013,则可用的选项和菜单可能与本文中的描述有所不同。

以下各节对 可移植类库 的功能进行了介绍:

  • 先决条件
  • 目标平台
  • 支持的功能
  • 受支持的类型和成员
  • 平台抽象
  • 支持模型-视图-视图模型 (MVVM) 模式
  • 创建可移植类库项目。
  • 选择目标平台
  • 使用可移植类库
先决条件


如果将 Visual Studio 2012 的多平台版本用作开发环境,则您所需的用于开发可移植类库项目的几乎所有内容均可供您使用。               值得注意的是,可移植类库在某些 Visual Studio 单平台版本中不可用,例如 Visual Studio Express for Windows 8。  Windows Phone SDK 8.0 in addition to the version of Visual Studio 2012 that you already have installed.’>此外,如果要面向 Windows Phone 8 进行开发,除了您已经安装的 Visual Studio 2012 版本,还必须安装 Windows Phone SDK 8.0。Portable Library Tools, and save the download file (PortableLibraryTools.exe) on your computer.’>若要在未安装 Visual Studio 2012 的情况下在生成计算机上安装可移植类库工具,请下载 Portable Library Tools (可移植库工具),并将下载的文件 (PortableLibraryTools.exe) 保存到您的计算机上。               /buildmachine switch on the command line.’>从命令提示符窗口运行安装程序,并包括命令行上的 /buildmachine 开关。
目标平台


当您创建 可移植类库 项目时,可以选择要针对的两个或多个平台。               下表显示可用平台。

平台 版本
.NET Framework .NET Framework 4 和更高版本.NET Framework 4.0.3 和更高版本.NET Framework 4.5
Silverlight Silverlight 4 和更高版本(默认选中)。Silverlight 5
Windows Phone Windows Phone 7 和更高版本(默认选中)Windows Phone 7.5 和更高版本Windows Phone 8

                           重要事项
Windows Phone SDK 8.0 for the Windows Phone 8 option. ‘>如果选择 Windows Phone 8,则必须安装 Windows Phone SDK 8.0。
适用于 Windows 应用商店应用的 .NET (*) 不可用
Xbox 360 不可用

该表标识默认情况下处于选中状态的四个平台或版本。               Project Properties dialog box, as shown in the section Selecting the Platforms to Target.’>如 选择要面向的平台 所示,可以通过使用“项目属性”对话框来更改这些默认平台。

支持的功能


在指定目标平台时,在 可移植类库 项目中,仅在您的项目中自动引用这些平台支持的程序集。               您不必添加或移除程序集。  如果您更改目标平台,则自动更新引用的程序集。如果您只以 .NET Framework 4.5 和 适用于 Windows 应用商店应用的 .NET 为目标,那么您就有权访问比其他平台组合中更大的程序集。               此较大程序集的集合与 适用于 Windows 应用商店应用的 .NET 几乎是相同的,但是不包括 Windows.UI.Xaml 命名空间中的类。  .NET for Windows Store apps – supported APIs in the Windows Dev Center.’>有关详细信息,请参见 Windows 开发人员中心中的 .NET for Windows Store apps – supported APIs(用于 Windows 应用商店应用程序的 .NET–受支持的 API)。下表显示了可用平台和版本上支持的功能。

功能 .NET Framework Windows 应用商店 Silverlight Windows Phone Xbox 360
核心
LINQ
IQueryable 7.5 和更高版本
动态关键字 仅限 4.5
Managed Extensibility Framework (MEF)
网络类库 (NCL)
序列化
Windows Communication Foundation (WCF)
模型视图视图模型 (MVVM) 仅限 4.5
数据批注 仅 4.0.3 和 4.5
XLINQ 仅 4.0.3 和 4.5
System.Numerics
受支持的类型和成员


在 可移植类库 项目中可用的类型和成员受若干兼容性因素约束:

  • 它们必须在所选的目标平台之间共享。
  • 必须行为与平台上的这些行为类似。
  • 它们不得是要弃用的候选项。
  • 它们必须在可移植环境中才有意义,特别是在支持成员时是不可移植时。

例如,可移植类库项目不包含任何 UI 相关类型或成员,原因是不同设备的 UI 的行为不同。               如果您的目标是在 可移植类库 引入之前发布的平台(如 Xbox、.NET Framework 4 和Windows Phone 7),那么您可能会遇到限制。

.NET Framework Class Library.’>可查找 可移植类库 支持的成员,在 .NET Framework Class Library(.NET Framework 类库)的参考主题中查找。               在类的成员表中,受支持的成员旁边会显示以下可移植类库图标。

Chars property in the String class is supported in the Portable Class Library.’>例如,下面的图像显示,在 String 类中的 Chars 属性在 可移植类库 中支持。

Version Information section of a reference topic for a note indicating that a type or member is supported in the Portable Class Library project, as shown below.’>按如下显示,还可以查看参考主题的“版本信息”节,了解指示在可移植类库项目中受支持的类型或成员的注释。

平台抽象


通常,您需要从可移植类中调用不可移植的成员。               无法直接调用不可移植的成员,因为这些成员不适用于 可移植类库 项目。  相反,您可以在 可移植类库 项目中创建一个抽象类并可以从所有可移植代码中使用该类。  在特定于平台的项目中,创建抽象类的子类并实现特定于平台的行为。以下示例显示与本地设置一起使用的可移植类。               在 Windows 应用商店 应用程序和 Silverlight 应用程序中处理本地设置的方式各不相同,因此可移植类不提供任何实现详细信息。

C#
using System;

namespace ExamplePortableLibrary
{
    public abstract class ExampleLocalSettings
    {
        public abstract void SetLocalValue(string name, object value);

        public static ExampleLocalSettings Instance { get; set; }
    }
}

在 可移植类库 项目中,可以按以下方式使用。

C#
ExampleLocalSettings.Instance.SetLocalValue("ExampleSetting", "New value to add");

在您的 Silverlight 项目中,添加引用到可移植的程序集,然后创建实现特定于 Silverlight 环境的本地设置操作的子类。  ExampleLocalSettings class.’>下面的示例演示 ExampleLocalSettings 类的 Silverlight 实现。

C#
using System;
using System.IO.IsolatedStorage;
using ExamplePortableLibrary;

namespace SilverlightApplication1
{
    class SilverlightImplementation : ExampleLocalSettings
    {
        public override void SetLocalValue(string name, object value)
        {
            IsolatedStorageSettings.ApplicationSettings.Add(name, value);
        }
    }
}

在您的 Windows 应用商店 应用程序中,添加引用到可移植的程序集,然后创建实现特定于 Windows 应用商店 应用程序的本地设置操作的子类。  ExampleLocalSettings class for a Windows Store app.’>下面的示例演示 Windows 应用商店 应用程序的 ExampleLocalSettings 类的实现。

C#
using System;
using Windows.Storage;
using ExamplePortableLibrary;

namespace App1
{
    class AppImplementation : ExampleLocalSettings
    {
        public override void SetLocalValue(string name, object value)
        {
            ApplicationData.Current.LocalSettings.Values[name] = value;
        }
    }
}

Instance property.’>在 Silverlight 应用程序和 Windows 应用商店 应用程序两个中,必须初始化子类的特定实现并将其设置为 Instance 属性。  通常,您在该应用程序开始时创建此示例。  以下示例显示如何初始化 Silverlight 实现。

C#
ExampleLocalSettings.Instance = new SilverlightImplementation();

以下示例显示如何为 Windows 应用商店 应用程序初始化实现。

C#
ExampleLocalSettings.Instance = new AppImplementation();
支持模型-视图-视图模型 (MVVM) 模式


如果您的目标是 .NET Framework 4.5、适用于 Windows 应用商店应用的 .NET、Silverlight 和 Windows Phone,则可以在解决方案中实现视图 MVVM 模式。               实现此模式的类包括以下:

  • System.Collections.ObjectModel.ObservableCollection<T>
  • System.Collections.ObjectModel.ReadOnlyObservableCollection<T>
  • System.Collections.Specialized.INotifyCollectionChanged
  • System.Collections.Specialized.NotifyCollectionChangedAction
  • System.Collections.Specialized.NotifyCollectionChangedEventArgs
  • System.Collections.Specialized.NotifyCollectionChangedEventHandler
  • System.ComponentModel.DataErrorsChangedEventArgs
  • System.ComponentModel.INotifyDataErrorInfo
  • System.ComponentModel.INotifyPropertyChanged
  • System.Windows.Input.ICommand

Using Portable Class Library with Model-View-View Model.’>有关如何在 可移植类库 项目中实现 MVVM 模式的更多信息,请参见 将可移植类库与模型-视图-视图模型配合使用。

创建可移植类库项目


Portable Class Library template under Visual C# or Visual Basic.’>若要创建 可移植类库 项目,需要在 Visual Studio 2012 中创建一个新项目,然后在 Visual C# 或 Visual Basic 下选择“可移植类库”模板。
选择目标平台


默认情况下,可移植类库项目面向以下平台:

  • .NET Framework 4.5
  • Silverlight 4 及更新版本
  • Windows Phone 7 及更高版本
  • 适用于 Windows 应用商店应用的 .NET

该项目只引用受这些平台支持的程序集。               Solution Explorer, open the shortcut menu for the Portable Class Library project, and then choose Properties.’>若要更改目标平台,则在“解决方案资源管理器”中,打开 可移植类库 项目的快捷菜单,然后选择“属性”。

Library tab specifies the platforms that are currently targeted.’>在项目属性页上,“库”选项卡指定当前面向的平台。

Change button, and then select the appropriate check boxes.’>若要添加或移除目标平台,请选择“更改” 按钮,然后选择相应的复选框。

更改目标平台时,该项目中可用的程序集会发生更改以匹配您所选平台支持的程序集。               如果您的项目引用的程序集不受某个所选平台支持,必须移除对相应程序集的引用或更改目标平台。

使用可移植类库


在您生成 可移植类库 项目后,只是从其他项目引用该项目。               可以引用该项目或包含您要访问的类的特定程序集。若要运行引用 可移植类库 程序集的应用程序,必须在计算机上安装所需版本(或更高版本)的目标平台。               Visual Studio 2012 包含所有必需的架构,因此您可以运行该应用程序,而无需在用于开发应用程序的计算机上进行进一步修改。

部署 .NET Framework 应用程序

部署引用 可移植类库 程序集的 .NET Framework 应用程序时,必须在正确版本的 .NET Framework 上指定一个依赖项。                 通过指定此依赖项,可确保与您的应用程序一起安装所需的版本。  update, Update 4.0.3 for the .NET Framework 4, or the .NET Framework 4.5 installed.’>如果面向的是 .NET Framework 4 或更高版本,则必须已安装含 update(更新)的 .NET Framework 4、.NET Framework 4 的更新 4.0.3 或 .NET Framework 4.5。

  • Solution Explorer, choose the project node for the project you want to publish. (This is the project that references the Portable Class Library project.) On the menu bar, choose Project, Properties, and then choose the Publish tab.’>若要使用 ClickOnce 部署创建依赖项,请在“解决方案资源管理器”中,选择您要发布的项目对应的项目节点。(这是引用可移植类库项目的项目。)在菜单栏上,依次选择“项目”、“属性”,然后选择“发布”选项卡。                     Publish page, choose Prerequisites.’>在“发布”页上,选择“系统必备”。  选择所需 .NET framework 版本(或 .NET framework 4 更新)作为系统必备组件。
  • Solution Explorer, choose the setup project.’>若要创建安装项目的依赖项,请在“解决方案资源管理器”中,选择此安装项目。                     Project, Properties, Prerequisites.’>在菜单栏上,依次选择“项目”、“属性”、“系统必备组件”。  选择所需 .NET Framework 版本作为系统必备组件。

.NET Framework Deployment Guide for Developers.’>有关部署 .NET Framework 应用程序的更多信息,请参见 .NET Framework 部署指南(针对开发人员)。

部署基于 Silverlight 的应用程序

部署引用 可移植类库 程序集的基于 Silverlight 的应用程序时,您必须确保该应用程序所需的最低运行时版本匹配其目标版本。                 如果面向的是 Silverlight 4,则版本必须是 4.0.60129.0 或更高版本。  &lt;param name=”minRuntimeVersion” value=”4.0.60129.0″ /&gt; in the webpage that hosts the Silverlight-based app, as follows:’>通过在承载基于 Silverlight 的应用程序的网页中包括,可设置 <param name=”minRuntimeVersion” value=”4.0.60129.0″ /> 参数值。

XAML
<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," 
           type="application/x-silverlight-2" width="100%" height="100%">
    <param name="source" value="ClientBin/SilverlightApplication.xap"/>
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.60129.0" />
    <param name="autoUpgrade" value="true" />
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" 
             style="text-decoration:none">
      <img src=http://go.microsoft.com/fwlink/?LinkId=161376
             alt="Get Microsoft Silverlight" style="border-style:none"/>
    </a>
  </object>
   <iframe id="_sl_historyFrame" 
              style="visibility:hidden;height:0px;width:0px;border:0px">
   </iframe>
</div>

可移植类库中的 API 差异

为了使可移植类库程序集在所有支持的平台中兼容,稍微更改了可移植类库中的部分成员。                 API Differences in Portable Class Library.’>有关对哪些成员进行了更改以及进行了怎样的更改的详细信息,请参见可移植类库中的 API 差异。

原文连接: http://msdn.microsoft.com/zh-cn/library/gg597391(v=vs.110).aspx#feedback

关于修复WordPress固定链接的改变/迁移 (Change Permalink Migration)

当服务器迁移,需要更换WordPress地址路径时,或是导入了新数据时,会遇到固定链接 改变,文章ID也不正确的情况。

我们需要修正这个问题,以我一些经验为例:

 

例如,我在迁移服务器后,且又多次导入了几个时期分别备份的数据后:

(原URL):http://bohu.net/wp/2006/07/197,orz-and-wtf/  变成了 (新URL)http://bohu.net/blog/197

原文件夹是 wp 新文件夹为 blog

 

设置转发(Redirect)

那么首先设置web服务器的重定向类型(Redirect Type),一般web服务器都支持一下3种Redirect:
301 – Permanent(永久)
302 – Temporary(临时)
303 – Replaced (替换)
详细参数说明,查看 维基百科 HTTP状态码 :3xx重定向
用   303 ,  Replaced  redirected (303)  重定向 wp 到 blog,
Local URL Path Type Redirect URL
/wp 303 http://bohu.net/blog

 

303 – Replaced 顾名思义,就是可以替换URL中的地址,而且正确的响应所传递的参数。? 号之后的参数不会丢失。

如: http://bohu.net/blog/post.php?post=1234&action=edit  303 替换为 http://bohu.net/wp/post.php?post=1234&action=edit

这样设置之后 访问 bohu.net/wp 就可以 转到 bohu.net/blog 了。

 

手动修复ID

但是元文章ID是197, 现在变为了2553,你如果用插件修复固定连接的话那么,可以忽略这一部分。

我尝试手动修复了ID。先下载插件 ”ShowID

下载插件:ShowID for Post/Page/Category/Tag/Comment – http://ounziw.com/2010/02/05/showid/

启用之后就可以在文章列表看到每篇文章的 ID 了。我没找到自动更改ID的插件,进数据库自己修改的。

这样 http://bohu.net/blog/197 就可以恢复访问到了。

 

修复固定链接改变/迁移

但是之前的固定连接 ”197,orz-and-wtf“ 为两个参数组合的,所以原URL还不能直接访问。

需要使用插件转发到新固定连接,我最先用的是 ”Advanced Permalinks“

下载插件:Advanced Permalinks – http://urbangiraffe.com/plugins/advanced-permalinks/

可以完成转发效果,不过发现设置有点不太简单化,而且我的翻页有问题。

下面是附带解决固定连接修改后翻页的问题。

翻页有问题     有时候翻到第二页或其他页不能正常工作,地址如下:
 http://www.example.com/page/2/  http://www.example.name/category/categoryname/page/2/  http://www.example/year/month/day/page/2/  http://www.example/year/month/page/2/
    访问上面的任何一个链接,出现提示说: “Sorry, no posts match that criteria.”
    这是.htaccess造成的,删掉,重新生成就好了。

看到”Advanced Permalinks“已经是2年未更新了,最后还是更换了插件为 ”Permalink Finder“。

下载插件:Permalink Finder –  http://www.blogseye.com/

启用”Permalink Finder“Permalink-Finder Options”菜单,我按照默认设置。

这样就自动化完成修复固定链接的改变/迁移了。设置基本上不需要多少的改变。