<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MPSHouse Blog</title>
	<atom:link href="http://blog.mpshouse.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.mpshouse.com</link>
	<description>A blog about Linux, Windows, OSX, servers and programming.</description>
	<lastBuildDate>Sun, 15 Apr 2012 01:22:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to Set up SVN with Apache</title>
		<link>http://blog.mpshouse.com/?p=586</link>
		<comments>http://blog.mpshouse.com/?p=586#comments</comments>
		<pubDate>Sun, 15 Apr 2012 01:22:25 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[installing]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=586</guid>
		<description><![CDATA[Introduction This is a tutorial on how to set up SVN with Apache, create users accounts and also disable anonymous viewing of the project from a web browser. Subversion also known as SVN is a tool that remembers versions of a project and takes notes of changes. If someone was to write code or even [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
This is a tutorial on how to set up SVN with Apache, create users accounts and also disable anonymous viewing of the project from a web browser.<span id="more-586"></span> Subversion also known as SVN is a tool that remembers versions of a project and takes notes of changes. If someone was to write code or even a noval and commit changes to SVN and a mistake was made, they could easily go back to a previous revision.</p>
<p><strong>Installing</strong><br />
To install Subversion and the Apache module run the following command:</p>
<pre>sudo apt-get install subversion libapache2-svn</pre>
<p><strong>Setting up SVN</strong><br />
The first that needs to be done is to set up a group for subversion:</p>
<pre>sudo addgroup subversion</pre>
<p>The next thing is to make a directory for the SVN repository. I usually create it in the root directory named repo or svn:</p>
<pre>sudo mkdir /repo</pre>
<p>The premissions and owner of the repo directory have to be changed. The owner of the directory to www-data and the group needs to be subversion:</p>
<pre>sudo chown www-data:subversion /repo
sudo chmod g+rws /repo</pre>
<p>To create the actual SVN repository svnadmin is used with create. You can use any name you like for the SVN repository:</p>
<pre>sudo svn create /repo/YourRepoName</pre>
<p>The owner and permissions have to be changed on the repository:</p>
<pre>sudo chown www-data:subversion /repo/YourRepoName
sudo chmod g+rws /repo/YourRepoName</pre>
<p><strong>Setting up the Apache Module</strong><br />
Edit the file /etc/apache2/mods-available/dav_svn.config with your favourite editor. I like to use nano:</p>
<pre>sudo nano /etc/apache2/mods-available/dav_svn.config</pre>
<p>At the bottom of the file add the following lines:</p>
<pre>&lt;Location /svn/yourrepo&gt;
    DAV svn
    SVNPath /repo/mpshouse
    AUTHType Basic
    AUTHName "Your Subversion Repository"
    AuthUserFile /etc/subversion/passwd
    Require valid-user
&lt;/Location&gt;</pre>
<p>The 2 lines that need attention is the first, the sixth ans the last. The first line:</p>
<pre>&lt;Location /svn/yourrepo&gt;</pre>
<p>has /svn/yourrepo in it which will be the address that you can access your SVN. If your domain is yourdomain.com, you can access the SVN at yourdomain.com/svn/yourrepo. The sixth line:</p>
<pre>AuthUserFile /etc/subversion/passwd</pre>
<p>is where the password file is located. The last line:</p>
<pre>Require valid-user</pre>
<p> will stop anonymous browsing of your projects and force the browser to show an authentication dialog to continue.</p>
<p><strong>Adding a User Account</strong><br />
To add a user account to a new password file the -c flag is used. If the file already exists and a new user needs to be added to an existing file the -c flag is not needed. The password file needs to be created in the directory specified in the dav_svn.config file that was just edited. The command will ask you for the password of the user after pressing enter.</p>
<pre>sudo htpasswd -c /etc/subversion/passwd bill</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=586</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Desktop Switching in KDE Like Gnome</title>
		<link>http://blog.mpshouse.com/?p=576</link>
		<comments>http://blog.mpshouse.com/?p=576#comments</comments>
		<pubDate>Tue, 21 Feb 2012 11:17:45 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=576</guid>
		<description><![CDATA[Introduction I like KDE and prefer it to Gnome but when I was a Gnome user I got used to the Gnome desktop switching. This is a short tutorial on how to set up the shortcut keys in KDE so it feels like Gnome. Opening System Settings Open the system settings: All Applications &#62; Settings [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
I like KDE and prefer it to Gnome but when I was a Gnome user I got used to the Gnome desktop switching.<span id="more-576"></span> This is a short tutorial on how to set up the shortcut keys in KDE so it feels like Gnome.</p>
<p><strong>Opening System Settings</strong><br />
Open the system settings:</p>
<pre>All Applications &gt; Settings &gt; System Settings</pre>
<p>Open up the shortcuts:</p>
<pre>Common Appearance and Behavior &gt; Shorcuts and Gestures &gt; System Settings</pre>
<p>Click Keyboard Shortcuts then select KWin as the KDE component in the drop down menu.</p>
<p><strong>Setting the Shortcuts</strong><br />
You can set any shortcuts you like but the ones in this tutorial are to emulate Gnome desktop switching. To set the shortcut you click on the row you want to edit the shortcut for, click custom, then the button which will record the shortcut. The button with the x will clear the shortcut.</p>
<p>The following shortcuts will move to other desktops:</p>
<pre><strong>Switch One Desktop Down</strong>  &gt;  Ctrl + Alt + Down
<strong>Switch One Desktop to the Left</strong>  &gt;  Ctrl + Alt + Left
<strong>Switch One Desktop to the Right</strong>  &gt;  Ctrl + Alt + Right
<strong>Switch One Desktop Up</strong>  &gt;  Ctrl + Alt + Up</pre>
<p>The following shortcuts will move the current window to other desktops:</p>
<pre><strong>Window One Desktop Down</strong>  &gt;  Ctrl + Alt + Shift + Down
<strong>Window One Desktop to the Left</strong>  &gt;  Ctrl + Alt + Shift + Left
<strong>Window One Desktop to the Right</strong>  &gt;  Ctrl + Alt + Shift + Right
<strong>Window One Desktop Up</strong>  &gt;  Ctrl + Alt + Shift + Up</pre>
<p>Click apply and test it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=576</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting Up an Ubuntu Server</title>
		<link>http://blog.mpshouse.com/?p=565</link>
		<comments>http://blog.mpshouse.com/?p=565#comments</comments>
		<pubDate>Tue, 21 Feb 2012 07:02:23 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[installing]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[proftpd]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=565</guid>
		<description><![CDATA[Introduction This is tutorial on how to set up an Ubuntu server with apache, mysql, proftpd, webmin, setting up a user account and adding it to the sudoers list. In this tutorial the name you want to use will be represented as myname and passwords as mypassword. This tutorial also assumes you are logged in [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
This is tutorial on how to set up an Ubuntu server with apache, mysql, proftpd, webmin, setting up a user account and adding it to the sudoers list.<span id="more-565"></span> In this tutorial the name you want to use will be represented as myname and passwords as mypassword. This tutorial also assumes you are logged in as root to set up the server.</p>
<p><strong>First Update</strong><br />
To load a list of the latest updates into the server:</p>
<pre>apt-get update</pre>
<p>To perform the upgrade:</p>
<pre>apt-get upgrade</pre>
<p>To perform a distribution upgrade:</p>
<pre>apt-get dist-upgrade</pre>
<p><strong>Retrieving Required Packages</strong><br />
These are the packages required for the server setup:</p>
<pre>apt-get install nano libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions libapt-pkg-perl libauthen-pam-perl mysql-server mysql-client proftpd-mod-mysql php5 libapache2-mod-php5 php5-sqlite php5-mysql apache2</pre>
<p>You will be asked to enter a password for mysql and set the startup mode for proftpd as standalone.</p>
<p><strong>Adding Your User Account</strong><br />
To add your user account:</p>
<pre>useradd -d /home/myname -s /bin/bash -m myname</pre>
<p>To set your account password: (It will ask you to type your password)</p>
<pre>passwd myname</pre>
<p>To add your account to the sudoers list use the following command:</p>
<pre>visudo</pre>
<p>In the section &#8220;User privilege specification&#8221; under root add:</p>
<pre>myname    ALL=(ALL:ALL) ALL</pre>
<p>Exit and save the file</p>
<p><strong>Create The FTP Directory</strong><br />
Create the directory and change to it. This is done now so the webmin file can be downloaded into it. I usually create the FTP directory in var:</p>
<pre>mkdir /var/ftp
cd /var/ftp</pre>
<p><strong>Download and Install Webmin</strong><br />
Check for the latest file to download and install <a href="http://webmin.com/download.html">here</a>. The link used in this tutorial may be old. You can download the file like this:</p>
<pre>wget http://prdownloads.sourceforge.net/webadmin/webmin_1.580_all.deb</pre>
<p>Install webmin with:</p>
<pre>dpkg -i webmin_1.580_all.deb</pre>
<p>(remember to change the name of the file if there is a newer one available)<br />
You can log into webmin with:</p>
<pre>https://yourdomain.com:10000</pre>
<p><strong>Installing ProFTPd</strong><br />
Add the user and group for proftpd:</p>
<pre>groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser</pre>
<p>Log into MySQL:</p>
<pre>mysql -u root -p</pre>
<p>create the database and account for the FTP database:</p>
<pre>CREATE DATABASE ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'mypassword';
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost.localdomain' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;</pre>
<p>Select the database ftp to use:</p>
<pre>USE ftp;</pre>
<p>Create the required tables:</p>
<pre>CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '5500',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) TYPE=MyISAM COMMENT='ProFTP group table';

CREATE TABLE ftpquotalimits (
name varchar(30) default NULL,
quota_type enum('user','group','class','all') NOT NULL default 'user',
per_session enum('false','true') NOT NULL default 'false',
limit_type enum('soft','hard') NOT NULL default 'soft',
bytes_in_avail bigint(20) unsigned NOT NULL default '0',
bytes_out_avail bigint(20) unsigned NOT NULL default '0',
bytes_xfer_avail bigint(20) unsigned NOT NULL default '0',
files_in_avail int(10) unsigned NOT NULL default '0',
files_out_avail int(10) unsigned NOT NULL default '0',
files_xfer_avail int(10) unsigned NOT NULL default '0'
) TYPE=MyISAM;

CREATE TABLE ftpquotatallies (
name varchar(30) NOT NULL default '',
quota_type enum('user','group','class','all') NOT NULL default 'user',
bytes_in_used bigint(20) unsigned NOT NULL default '0',
bytes_out_used bigint(20) unsigned NOT NULL default '0',
bytes_xfer_used bigint(20) unsigned NOT NULL default '0',
files_in_used int(10) unsigned NOT NULL default '0',
files_out_used int(10) unsigned NOT NULL default '0',
files_xfer_used int(10) unsigned NOT NULL default '0'
) TYPE=MyISAM;

CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default '',
passwd varchar(32) NOT NULL default '',
uid smallint(6) NOT NULL default '5500',
gid smallint(6) NOT NULL default '5500',
homedir varchar(255) NOT NULL default '',
shell varchar(16) NOT NULL default '/sbin/nologin',
count int(11) NOT NULL default '0',
accessed datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT='ProFTP user table';</pre>
<p>Quit mysql with:</p>
<pre>quit;</pre>
<p>Open up the file /etc/proftpd/modules.conf with: (or use your favorite editor)</p>
<pre>nano /etc/proftpd/modules.conf</pre>
<p>Activate the following modules by removing the # symbol in front of the line:</p>
<pre>LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
LoadModule mod_quotatab_sql.c</pre>
<p>Open the following file:</p>
<pre>nano /etc/proftpd/proftpd.conf</pre>
<p>Add the following lines and remember to change mypassword to the value you used when creating the mysql account for ftp:</p>
<pre># Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use 'mysql' or 'postgres' as possible values.
#
#&lt;IfModule mod_sql.c&gt;
# SQLBackend                    mysql
#&lt;/IfModule&gt;

DefaultRoot ~

SQLBackend              mysql
# The passwords in MySQL are encrypted using CRYPT
SQLAuthTypes            Plaintext Crypt
SQLAuthenticate         users groups

# used to connect to the database
# databasename@host database_user user_password
SQLConnectInfo  ftp@localhost proftpd mypassword

# Here we tell ProFTPd the names of the database columns in the "usertable"
# we want it to interact with. Match the names with those in the db
SQLUserInfo     ftpuser userid passwd uid gid homedir shell

# Here we tell ProFTPd the names of the database columns in the "grouptable"
# we want it to interact with. Again the names match with those in the db
SQLGroupInfo    ftpgroup groupname gid members

# set min UID and GID - otherwise these are 999 each
SQLMinID        500

# create a user's home directory on demand if it doesn't exist
CreateHome on

# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

# Update modified everytime user uploads or deletes a file
SQLLog  STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

# User quotas
# ===========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

RootLogin off
RequireValidShell off</pre>
<p>In the same file comment out the following lines by adding a # symbol in front of them link this:</p>
<pre>#&lt;IfModule mod_quotatab.c&gt;
#QuotaEngine off
#&lt;/IfModule&gt;</pre>
<p>Restart proftpd:</p>
<pre>/etc/init.d/proftpd restart</pre>
<p>Get back into mysqland use the ftp database:</p>
<pre>mysql -u root -p
USE ftp;</pre>
<p>Insert the FTP group into the database:</p>
<pre>INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2001, 'ftpuser');</pre>
<p>The next two inserts can be done multiple times depending on how many user accounts you want to create for your ftp server. The value after &#8216;hard&#8217; can be set (in bytes) to the quota for the user account, 0 is for unlimited. This is for one account:</p>
<pre>INSERT INTO `ftpquotalimits` (`name`, `quota_type`, `per_session`, `limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`, `files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES ('myname', 'user', 'true', 'hard', 0, 0, 0, 0, 0, 0);
INSERT INTO `ftpuser` (`userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES ('myname', 'mypassword', 2001, 2001, '/var/ftp', '/sbin/nologin', 0, '', '');</pre>
<p>And that is it, let me know what you think&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=565</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fun With Video in Linux Using MPlayer</title>
		<link>http://blog.mpshouse.com/?p=560</link>
		<comments>http://blog.mpshouse.com/?p=560#comments</comments>
		<pubDate>Mon, 20 Feb 2012 02:01:48 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=560</guid>
		<description><![CDATA[Introduction MPlayer has some features that you may not have noticed if you only use it to watch your videos or if you use a different video player. I use VLC as my video player because I like to shuffle large playlists and it works well, but if you check in the Bash Programming  category [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
MPlayer has some features that you may not have noticed if you only use it to watch your videos or if you use a different video player.<span id="more-560"></span> I use VLC as my video player because I like to shuffle large playlists and it works well, but if you check in the Bash Programming  category of my blog you will find a post called &#8220;Media Shuffle Bash Script&#8221; which uses MPlayer. It is a very old script but I am sharing it as an example of bash programming, but the script does work.</p>
<p><strong>Installing</strong><br />
I use MEncoder to convert video and it installs MPlayer with it. In an Ubuntu based operating system it can be installed with the following command:</p>
<pre>sudo apt-get install mencoder</pre>
<p>To install MPlayer without MEncoder use the following command:</p>
<pre>sudo apt-get install mplayer</pre>
<p><strong>MPlayer Output Drivers</strong><br />
MPlayer can route the video through different drivers. Some of these will show the video in interesting ways. To list the output drivers available to MPlayer:</p>
<pre>mplayer -vo help</pre>
<p>A list will be displayed like this one:</p>
<pre>mplayer: Symbol `ff_codec_bmp_tags' has different size in shared object, consider re-linking
MPlayer SVN-r33713-4.6.1 (C) 2000-2011 MPlayer Team
Available video output drivers:
        xmga    Matrox G200/G4x0/G550 overlay in X11 window (using /dev/mga_vid)
        mga     Matrox G200/G4x0/G550 overlay (/dev/mga_vid)
        tdfxfb  3Dfx Banshee/Voodoo3/Voodoo5
        3dfx    3dfx (/dev/3dfx)
        vdpau   VDPAU with X11
        xv      X11/Xv
        gl_nosw OpenGL no software rendering
        x11     X11 ( XImage/Shm )
        xover   General X11 driver for overlay capable video output drivers
        sdl     SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
        gl      OpenGL
        gl2     X11 (OpenGL) - multiple textures version
        dga     DGA ( Direct Graphic Access V2.0 )
        fbdev   Framebuffer Device
        fbdev2  Framebuffer Device
        svga    SVGAlib
        matrixview      MatrixView (OpenGL)
        aa      AAlib
        caca    libcaca
        v4l2    V4L2 MPEG Video Decoder Output
        directfb        Direct Framebuffer Device
        dfbmga  DirectFB / Matrox G200/G400/G450/G550
        xvidix  X11 (VIDIX)
        cvidix  console VIDIX
        null    Null video output
        xvmc    XVideo Motion Compensation
        mpegpes MPEG-PES to DVB card
        yuv4mpeg        yuv4mpeg output for mjpegtools
        png     PNG file
        jpeg    JPEG file
        gif89a  animated GIF output
        tga     Targa output
        pnm     PPM/PGM/PGMYUV file
        md5sum  md5sum of each frame</pre>
<p><strong>The Fun Part</strong><br />
You may have seen some ASCII art which is pictures or video displayed using text characters. MPlayer can do this with the videos you want to play.<br />
To display the video using ASCII:</p>
<pre>mplayer -vo caca &lt;video file&gt;</pre>
<p>If you have seen the Matrix you would be familiar with the Matrix effect. This output driver looks really nice and is resizable.<br />
To display the video using the matrix effect:</p>
<pre>mplayer -vo matrixview &lt;video file&gt;</pre>
<pre>(Remember to replace &lt;video file&gt; with the file to play)</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=560</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to the Change Password Complexity Requirements in Windows Server 2008</title>
		<link>http://blog.mpshouse.com/?p=539</link>
		<comments>http://blog.mpshouse.com/?p=539#comments</comments>
		<pubDate>Wed, 19 Oct 2011 21:21:43 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=539</guid>
		<description><![CDATA[To change the password complexity requirements settings in Windows Server 2008: Run &#8220;gpmc.msc&#8221; or click &#8220;Start -&#62; Administrative Tools -&#62; Group Policy Management&#8221; Expand Group Policy Management -&#62; Forest: &#60;domain&#62; -&#62; Domains -&#62; &#60;domain&#62; Right click Default Domain Policy and click edit. Expand Computer Configuration -&#62; Policies -&#62; Windows Settings -&#62; Security Settings -&#62; Account [...]]]></description>
			<content:encoded><![CDATA[<p>To change the password complexity requirements settings in Windows Server 2008:<span id="more-539"></span></p>
<ol>
<li>Run &#8220;gpmc.msc&#8221; or click &#8220;Start -&gt; Administrative Tools -&gt; Group Policy Management&#8221;</li>
<li>Expand Group Policy Management -&gt; Forest: &lt;domain&gt; -&gt; Domains -&gt; &lt;domain&gt;</li>
<li>Right click Default Domain Policy and click edit.</li>
<li>Expand Computer Configuration -&gt; Policies -&gt; Windows Settings -&gt; Security Settings -&gt; Account Policies -&gt; Password Policy</li>
<li>Edit your password complexity.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=539</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Connect to Exchange with the EWS Managed API</title>
		<link>http://blog.mpshouse.com/?p=512</link>
		<comments>http://blog.mpshouse.com/?p=512#comments</comments>
		<pubDate>Thu, 13 Oct 2011 22:51:11 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[C# Programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[dot net]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[email client]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=512</guid>
		<description><![CDATA[Introduction The Exchange EWS managed API is very easy to use but there are some hurdles that may make it a little hard to get started. Download API The API can be downloaded from the Microsoft Website (please contact me if the link is broken) Compiling I had some problems with the Exchange namespace not [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
The Exchange EWS managed API is very easy to use but there are some hurdles that may make it a little hard to get started.<span id="more-512"></span></p>
<p><strong>Download API</strong><br />
The API can be downloaded from the <a>Microsoft Website</a><br />
(please contact me if the link is broken)</p>
<p><strong>Compiling</strong><br />
I had some problems with the Exchange namespace not being recognised and and asking for a reference to be added to the project even though I had added the reference. To overcome this hurdle, the &#8220;.NET Framework 4&#8243; target framework must be used on the project. Do not use the &#8220;.NET Framework 4 Client Profile&#8221;.</p>
<p><strong>Namespace</strong><br />
The namespace that should be added is:</p>
<pre>using Microsoft.Exchange.WebServices.Data;</pre>
<p><strong>Connecting</strong><br />
The best way to connect to the exchange server is using auto discover if the exchange server is clustered:</p>
<pre>ExchangeService es = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
es.Credentials = new NetworkCredential("user", "password");
es.AutodiscoverUrl( "user@mpshouse.com" );</pre>
<p>I do not bother with this as the application I am using is for internal use and I do not have a clustered echange server. To set the URL of the exchange server:</p>
<pre>ExchangeService es = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
es.Url = new Uri("http://192.168.0.100/EWS/Exchange.asmx");
es.Credentials = new NetworkCredential("user", "password");</pre>
<p><strong>Example</strong><br />
To get a list of all the emails from a specific user:</p>
<pre>ExchangeService es = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
es.Url = new Uri("http://192.168.0.100/EWS/Exchange.asmx");
es.Credentials = new NetworkCredential("user", "password");

FindItemsResults findResults = es.FindItems(WellKnownFolderName.Inbox, new ItemView(10));

foreach (Item item in findResults.Items)
    Console.WriteLine("Subject: " + item.Subject + "n");</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=512</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Rename, Delete or Move an Opened or Locked File in Windows</title>
		<link>http://blog.mpshouse.com/?p=501</link>
		<comments>http://blog.mpshouse.com/?p=501#comments</comments>
		<pubDate>Thu, 13 Oct 2011 00:01:07 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=501</guid>
		<description><![CDATA[Introduction If you have experienced the following error in Microsoft Windows: The action can't be completed because the folder or a file in it is open in another program Close the folder or file and try again. There is a very useful program that can help. The Program The program OpenedFilesView can display which programs [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
If you have experienced the following error in Microsoft Windows:</p>
<pre>The action can't be completed because the folder or a file in
it is open in another program

Close the folder or file and try again.</pre>
<p>There is a very useful program that can help.<span id="more-501"></span></p>
<p><strong>The Program</strong><br />
The program <a href="http://www.nirsoft.net/utils/opened_files_view.html">OpenedFilesView</a> can display which programs have which files opened or locked. Closing the right process will solve this problem. optionally, you can also release the file by closing the handle from OpenedFilesView utility. However, be aware that after closing a file in this way, the program that opened the file may become unstable, and even crash.</p>
<p><a href="http://blog.mpshouse.com/wp-content/uploads/2011/10/openedfilesview.gif"><img class="alignnone size-medium wp-image-507" title="openedfilesview" src="http://blog.mpshouse.com/wp-content/uploads/2011/10/openedfilesview-300x156.gif" alt="" width="300" height="156" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=501</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Search for Text in Files Using Linux</title>
		<link>http://blog.mpshouse.com/?p=491</link>
		<comments>http://blog.mpshouse.com/?p=491#comments</comments>
		<pubDate>Wed, 12 Oct 2011 22:34:09 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xargs]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=491</guid>
		<description><![CDATA[Introduction There may be times when the name of a required file is unknown but you may remember some of the content of a file. A search can be performed in a Linux terminal that will display a list of files that contains the text you remember. The Command The command that will be used [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
There may be times when the name of a required file is unknown but you may remember some of the content of a file. A search can be performed in a Linux terminal that will display a list of files that contains the text you remember.<span id="more-491"></span></p>
<p><strong>The Command</strong><br />
The command that will be used is &#8220;find&#8221; with &#8220;xargs&#8221; and &#8220;grep&#8221;. A few options are supplied to the command to only print out file names and also not search in hidden directories. This will result in a neat readable output.</p>
<pre>find &lt;directory to search&gt; -type f | xargs grep -rl '&lt;text to search for&gt;'</pre>
<p>&nbsp;<br />
<strong>Example</strong><br />
If I wanted to search a hypothetical backup directory (/ftp/backup) for the text &#8220;mpshouse&#8221;:</p>
<pre>find /ftp/backup/ -type f | xargs grep -rl 'mpshouse'</pre>
<p>There is more than one way of searching for text in files, this is just one.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=491</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to Dump MySQL Tables Without Data</title>
		<link>http://blog.mpshouse.com/?p=481</link>
		<comments>http://blog.mpshouse.com/?p=481#comments</comments>
		<pubDate>Mon, 10 Oct 2011 03:42:39 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[MySQL Database]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=481</guid>
		<description><![CDATA[Use the mysqldump command with the &#8211;no-data option: mysqldump -u root -p --no-data apsec &#62; C:UsersbillDesktoptables.sql]]></description>
			<content:encoded><![CDATA[<p>Use the mysqldump command with the &#8211;no-data option:<span id="more-481"></span></p>
<pre>mysqldump -u root -p --no-data apsec &gt; C:UsersbillDesktoptables.sql</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=481</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Make Outlook Web App Login Automatically with C#</title>
		<link>http://blog.mpshouse.com/?p=467</link>
		<comments>http://blog.mpshouse.com/?p=467#comments</comments>
		<pubDate>Mon, 10 Oct 2011 03:04:29 +0000</pubDate>
		<dc:creator>bill</dc:creator>
				<category><![CDATA[C# Programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[dot net]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[email client]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[owa]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.mpshouse.com/?p=467</guid>
		<description><![CDATA[Introduction It is easy to place a web browser component into an application and use the features of OWA (Outlook Web Application) as a built in organiser, contacts manager and email client. Creating The Form The first function needed is one to create some HTML with a hidden form to post data to the exchange [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
It is easy to place a web browser component into an application and use the features of OWA (Outlook Web Application) as a built in organiser, contacts manager and email client.<span id="more-467"></span></p>
<p><strong>Creating The Form</strong><br />
The first function needed is one to create some HTML with a hidden form to post data to the exchange server. This function expects a user name, password and a boolean that is set to true if you want to use the OWA basic mode and false for the full version. This is handy as the basic mode does not require popups. Change the IP &#8220;192.168.0.100&#8243; to the IP address of your server.</p>
<pre style="overflow: auto; padding: 4px; margin-left: 2em; font-size: 1.1em;">private string CreateOWAPage(string uname, string pword, bool BasicMode)
{
    StringBuilder strPage = new StringBuilder();
    strPage.AppendLine("&lt;html&gt;");
    strPage.AppendLine("  &lt;head&gt;");
    strPage.AppendLine("    &lt;script language='javascript'&gt;");
    strPage.AppendLine("      function owaLogin(user, pass)");
    strPage.AppendLine("      {");
    strPage.AppendLine("        var ctrlForm = document.getElementById('logonForm');");
    strPage.AppendLine("        ctrlForm.username.value = user;");
    strPage.AppendLine("        ctrlForm.password.value = pass;");
    strPage.AppendLine("        ctrlForm.submit();");
    strPage.AppendLine("      }");
    strPage.AppendLine("    &lt;/script&gt;");
    strPage.AppendLine("  &lt;/head&gt;");
    strPage.AppendLine("  &lt;body onload="javascript:owaLogin('" + uname + "', '" + pword + "');"&gt;");
    strPage.AppendLine("    &lt;form id="logonForm" name="logonForm" target="_self" action="https://192.168.0.100/owa/auth/owaauth.dll" method="post"&gt;");
    strPage.AppendLine("      &lt;input type="hidden" name="destination" value="https://192.168.0.100/owa" /&gt;");
    strPage.AppendLine("      &lt;input type="hidden" name="username" id="username" /&gt;");
    strPage.AppendLine("      &lt;input type="hidden" name="password" id="password" /&gt;");
    strPage.AppendLine("      &lt;input type="hidden" id="SubmitCreds" name="SubmitCreds" value="Connection" /&gt;");
    strPage.AppendLine("      &lt;input type="hidden" id="rdoRich" name="forcedownlevel" value="0" /&gt;");
    strPage.AppendLine("      &lt;input type="hidden" id="rdoPublic" name="trusted" value="0" /&gt;");
    if (BasicMode == true)
        strPage.AppendLine("      &lt;input type="hidden" name="flags" value="5" /&gt;");
    else
        strPage.AppendLine("      &lt;input type="hidden" name="flags" value="0" /&gt;");
    strPage.AppendLine("    &lt;/form&gt;");
    strPage.AppendLine("  &lt;/body&gt;");
    strPage.AppendLine("&lt;/html&gt;");
    return strPage.ToString();
}</pre>
<p><strong>Implementation</strong><br />
The easiest way to imlement the OWA auto login is to use a web browser (WebBrowser) component and navigate to the HTML string. Change the &#8220;MyUserName&#8221; and &#8220;MyPassword&#8221; values to a user name and password of an account that exists on your server.</p>
<pre style="overflow: auto; padding: 4px; margin-left: 2em; font-size: 1.1em;">wbBrowser.NavigateToString(CreateOWAPage("MyUserName", "MyPassword", true));</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mpshouse.com/?feed=rss2&#038;p=467</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

