<?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>Power Prose</title>
	<atom:link href="http://kpower.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://kpower.me</link>
	<description>The Power of K</description>
	<lastBuildDate>Mon, 20 Feb 2012 14:36:45 +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>GIving Sparrow a try</title>
		<link>http://kpower.me/2012/02/giving-sparrow-a-try/</link>
		<comments>http://kpower.me/2012/02/giving-sparrow-a-try/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 14:36:44 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[musing]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://kpower.me/?p=79</guid>
		<description><![CDATA[Sparrow is an email client for Mac OS X that attempts to bring the experience of gmail to a desk top client. In that it succeeds. The interface is minimal, devoting most of the interface to the primary use: reading and composing messages. I like the interface. Visually it is more appealing than Mail.app&#8217;s interface, [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Sparrow is an email client for Mac OS X that attempts to bring the experience of gmail to a desk top client. In that it succeeds. The interface is minimal, devoting most of the interface to the primary use: reading and composing messages. I like the interface. Visually it is more appealing than Mail.app&#8217;s interface, even with the advertisement in the message list.</p>
<p>All is not well though.</p>
<ul>
<li>It lacks support for digital IDs, or indeed any signing such as GPG. To be fair Mail.app does not support GPG out-of-the-box, but it does support digital IDs.</li>
<li>There is no capability for defining message rules or filters.</li>
<li>The focus is on &#8220;Inbox Zero&#8221; which is a methodology that treats your inbox as a task list.</li>
<li>It does not display IMAP folders in the sidebar by default. See above point.</li>
<li>When changing IMAP folders it forgets which message was selected last. This can cause the message list to be improperly focused (e.g. the newest messages are not displayed in the view)</li>
<li>The folder message count updates for incoming messages, but the headers are not retrieved until switching to the folder.</li>
<li>When accessing a folder for the first time, all messages are downloaded. This is a good thing. However it does not focus the view to either the newest or oldest message. Rather the view focus is somewhere in the middle.</li>
<li>It tends to forget that it downloaded newer messages. Thus if I switch to folder A, then return to the Inbox (or any other folder), for a split second the messages it already downloaded, and I read, are not displayed. This appears to be a strange caching problem.</li>
<li>It doesn&#8217;t appear to offer a way to remap special folders, such as Sent, to the proper IMAP folder. This can be very important if the special folders are different, server-side, than expected.</li>
</ul>
<p>
 I could go on and on, however I will conclude here by saying Sparrow is not designed for people with &#8220;Advanced&#8221; email needs. It appears optimized for this work flow:</p>
<ol>
<li>Receive mail to Inbox</li>
<li>Read mail in Inbox</li>
<li>Delete mail in Inbox</li>
</ol>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2012/02/giving-sparrow-a-try/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing checkperlmodules on cPanel server</title>
		<link>http://kpower.me/2011/06/managing-checkperlmodules-on-cpanel-server/</link>
		<comments>http://kpower.me/2011/06/managing-checkperlmodules-on-cpanel-server/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 13:17:20 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[cPanel]]></category>
		<category><![CDATA["cPanel with Debian"]]></category>

		<guid isPermaLink="false">http://kpower.me/2011/06/managing-checkperlmodules-on-cpanel-server/</guid>
		<description><![CDATA[The script checkperlmodules is used on cPanel servers to manage a set list of perl CPAN modules. These modules are used by cPanel scripts, applications like SpamAssassin and to provide a nice set of modules for perl web developers. During each run of scripts/upcp, checkperlmodules is executed. If any modules were updated on the CPAN [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>The script <strong>checkperlmodules</strong> is used on cPanel servers to manage a set list of perl CPAN modules. These modules are used by cPanel scripts, applications like SpamAssassin and to provide a nice set of modules for perl web developers. During each run of scripts/upcp, checkperlmodules is executed. If any modules were updated on the CPAN mirror, then the local installation will be updated.</p>
<p>There are quite a few problems with this tack, some of which will change in cPanel version 11.34. CPAN moduels have no quality guarantees. They also have poor standards as far as dependency definition and resolution.</p>
<p>When using cPanel on a Debian system it makes sense to use the Perl distribution provided by Debian, especially the CPAN modules. This allows you to benefit from the more stringent standards of Debian and it&#8217;s community. Also it allows you to use a newer version of perl then the standard provided by cPanel. Debian currently provides version 5.10.1 while the cPanel Perl installer gives you 5.8.8. How though does one disable the behavior of checkperlmodules?</p>
<p>It&#8217;s quite simple actually. The checkperlmodules script builds a list of CPAN modules to check and install. It then refines this list according to a custom black list you can create. This black list is the file /var/cpanel/perl_module_update_exclude. To blacklist a module, add the module name to the file. Each module must be on it&#8217;s own line.</p>
<p>Here is the contents of my&nbsp;perl_module_update_exclude:</p>
<pre>
CDB_File
DB_File
HTTP::Date
Scalar::Util
MIME::Base64
URI
Net::FTP
HTML::Tagset
HTML::Parser
HTML::HeadParser
LWP
Bundle::LWP
DBI
Data::ShowTable
Mysql
DBD::mysql
Bundle::DBD::mysql
Crypt::SSLeay
CPAN::SQLite
Data::Dumper
Digest::MD5
Digest::SHA1
Encode
ExtUtils::Constant
ExtUtils::ParseXS
File::Touch
Filesys::Df
Filesys::Virtual
Filter::Util::Call
Getopt::Long
Getopt::Param::Tiny
Compress::Raw::Zlib
Authen::Libwrap
Net::FTPSSL
Net::SSL
Net::SSLeay
IO::Compress::Gzip
IO::Scalar
IO::Socket::SSL
IO::Stty
IO::Uncompress::Gunzip
Lchown
List::Util
MD5
Net::DNS
Net::OSCAR
Pod::Perldoc
Storable
Sys::Syslog
Term::ReadKey
Term::ReadLine::Perl
Time::HiRes
Tree::MultiNode
Unix::PID
Unix::PID::Tiny
XML::LibXML::Common
XML::LibXML
XML::Parser
XML::SAX
XML::Simple
lib::restrict
YAML::Syck
Crypt::Passwd::XS
Crypt::GPG
Class::Accessor
Class::Accessor::Fast
File::MMagic::XS
Email::Valid
File::ReadBackwards
ExtUtils::MakeMaker
Mail::SRS
Acme::Spork
Archive::Tar
Archive::Tar::Streamed
Archive::Zip
Encode::Guess
MIME::Lite
Business::OnlinePayment::AuthorizeNet
Business::UPS
CGI
Class::Std::Utils
Compress::Bzip2
Compress::Zlib
DBIx::MyParsePP
DBD::SQLite2
Date::Parse
File::Tail
GD::Graph
GD::Text::Align
Memoize
Geo::IPfree
HTML::Parser
HTTP::Daemon::App
IO::Socket::ByteCounter
Image::Size
MIME::Base64
Mail::DomainKeys
Error
NetAddr::IP
Net::DNS::Resolver::Programmable
Mail::SPF
Mail::SPF::Query
Mail::DKIM
IP::Country
Graph::Easy
Graph::Flowchart
Mail::SpamAssassin
URI::Escape
File::Find::Rule::Filesys::Virtual
File::Slurp
Net::DAV::Server
Net::Daemon
Net::Daemon::SSL
Net::LDAP
Net::LDAP::Schema
Net::LDAP::Server
Net::Daemon
Net::Daemon::SSL
Net::LDAP
Net::LDAP::Schema
Net::LDAP::Server
Net::IP::Match::Regexp
OLE::Storage_Lite
GD::Graph
Parse::RecDescent
Quota
SVG::TT::Graph
Safe::Hole
Text::CSV
Spreadsheet::ParseExcel
Spreadsheet::WriteExcel
String::CRC32
SQL::Statement
Set::Crontab
Tie::IxHash
Tie::ShadowHash
Tie::DBI
URI::URL
Bundle::Interchange
version
Encode::Locale
Curses::UI
XML::SAX::Expat
Locales
ExtUtils::Install
Filesys::Statvfs
Devel::PPPort
Linux::Inotify2
</pre>
<p>With that list in place, you can install those modules via apt and not worry about checkperlmodules. Each time checkperlmodules runs it will skip all the modules you blacklisted.</p>
<p>Is this safe? Well cPanel doesn&#8217;t modify those modules. Most of the them are installed directly fro CPAN. cPanel scripts don&#8217;t rely on specific versions of the modules. Occassionally cPanel will effect a &#8220;holdback&#8221; wherein a module is not allowed to update beyond a specific version. This is done to prevent problems in a CPAN module from causing problems on a cPanel &amp; WHM server. As of cPanel &amp; WHM version 11.30 though, all holdbacks were removed.</p>
<p>&nbsp;</p>
<p>Note: cPanel &amp; WHM version 11.34 will deliver perl 5.14, a tremendous step up in the perl world.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2011/06/managing-checkperlmodules-on-cpanel-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Management Musing: the budget</title>
		<link>http://kpower.me/2011/04/project-management-musing-the-budget/</link>
		<comments>http://kpower.me/2011/04/project-management-musing-the-budget/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 02:07:15 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[musing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://kpower.me/2011/04/project-management-musing-the-budget/</guid>
		<description><![CDATA[According to the standard definition, a project must consist of &#8220;a sequence of unique, complex, and connected activities that have one goal or purpose and that must be completed by a specific time, within budget, and according to specification.&#8221; [epm5e]. The requirement of a budget is what captures my attention. This requires the calculation of [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>According to the standard definition, a project must consist of &#8220;a sequence of unique, complex, and connected activities that have one goal or purpose and that must be completed by a specific time, within budget, and according to specification.&#8221; [<a title="Effective Project Management: Traditional, Agile, Extreme" href="http://www.wiley.com/go/epm5e" class="aga aga_1" target="_blank">epm5e</a>]. The requirement of a budget is what captures my attention. This requires the calculation of some up front cost, which requires one be in an organization that captures or defines many of the costs that go into a project&#8217;s budget. For example the cost of the people that will work on the project.</p>
<p>It seems to me (without having completed full rsearch on the matter) the requirement of the budget serves two purposes:</p>
<ol>
<li>an indicator of cost</li>
<li>an indicator of success</li>
</ol>
<p>These two items are really views of the same thing. The <em>cost</em>&nbsp;is to have an idea before starting the project of the investment required by the project sponsors. The <em>cost</em>&nbsp;also gives you an idea of what needs recuped, when it comes to something that will be offered for sale (e.g. a commercial software product).</p>
<p>As a <em>success</em>&nbsp;indicator, the budget is used to measure how well the project performed (this is not the only measurement, just one), Under, at and over are the <em>success</em>&nbsp;indicators.</p>
<p>Anyway, what has me musing is this: what if the organization does not define, or even care about, the budget? What does that mean for project management?</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2011/04/project-management-musing-the-budget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Daily Notes +Todo &#8211; A Review</title>
		<link>http://kpower.me/2011/03/daily-notes-todo-a-review/</link>
		<comments>http://kpower.me/2011/03/daily-notes-todo-a-review/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 18:15:00 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://kpower.me/?p=66</guid>
		<description><![CDATA[Within a few days, or weeks, of acquiring an iPad for day-to-day work activities, it became readily apparent that my most used applications are Notes and Omnifocus. Usually when I notice patterns like that in my work flow, the minimalist side of me begins to desire a merging of the functionality (to cut down on [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Within a few days, or weeks, of acquiring an iPad for day-to-day work activities, it became readily apparent that my most used applications are Notes and Omnifocus. Usually when I notice patterns like that in my work flow, the minimalist side of me begins to desire a merging of the functionality (to cut down on process overhead). After searching the app store and trying various things, I believe I have satisified that desire with the application <a href="http://www.fluidtouch.biz/dailynotes/" class="aga aga_3" target="_blank">Daily Notes +Todo</a> (http://www.fluidtouch.biz/dailynotes/).</p>
<p>This application gives me the ability to log various things about my work day (e.g. meeting notes, conversation snippets, etc) while at the same time direct access to:</p>
<ul>
<li>my tasks</li>
<li>a calendar</li>
</ul>
<p>The desire to look like a physical leather bound journal is a pointless distraction in my mind (and somewhat ugly also). But it&#8217;s quite easy to ignore.</p>
<p>There are three things I&#8217;d like to see as future improvements:</p>
<p>1. Access to iCal from the calendar. A simple sliding tab, similar to the tasks tab, would be nice. A single day view would suffice.</p>
<p>2. Ability to hide the calendar in landscape mode. When using the on-screen keyboard, landscape mode gives the best layout for typing. However the display of the calendar removes valuable screen real estate from the task at hand: typing a journal entry. Hiding the calendar would allow the journal entry more space, resulting in a more pleasing experience and more of the entry viewable.</p>
<p>3. Some kind of desktop equivalent. Ideal would be cross-platform, but at least something on my OS X desktop wherein I can view and modify the journal and tasks would be great.</p>
<p>Wish list items 1 and 2 would move this from a great app to an excellent app; item 3 would move this app into a class unto itself.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2011/03/daily-notes-todo-a-review/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Appocrisy</title>
		<link>http://kpower.me/2011/02/appocrisy/</link>
		<comments>http://kpower.me/2011/02/appocrisy/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 01:50:17 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://kpower.me/2011/02/appocrisy/</guid>
		<description><![CDATA[Why does mobile safari not come with an NC-17 rating? There are a number of alternative web browsers available in the Apple app store. All are given a scary NC-17 rating in thr description. If you install one, you must acknowledge that NC-17 content is available via the application. In comparison, there is no such [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Why does mobile safari not come with an NC-17 rating?</p>
<p>There are a number of alternative web browsers available in the Apple app store. All are given a scary NC-17 rating in thr description. If you install one, you must acknowledge that NC-17 content is available via the application.</p>
<p>In comparison, there is no such scary message describing Safari. Nor did I have to click through an NC-17 acknowledgment the first time I ran Safari.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2011/02/appocrisy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presentation: Secure Coding Practices</title>
		<link>http://kpower.me/2010/10/presentation-secure-coding-practices/</link>
		<comments>http://kpower.me/2010/10/presentation-secure-coding-practices/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 13:44:00 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[security]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[cPanel]]></category>

		<guid isPermaLink="false">http://kpower.me/?p=60</guid>
		<description><![CDATA[Well my presentation went off OK, although there were only about 20-30 people present. I hope all truly enjoyed the presentation. To the person that asked &#8220;doesn&#8217;t the use of an interpreted language make race conditions more difficult to address?&#8221; I must apologize as I totally mis-handled that question. No, an interpreted language doesn&#8217;t make [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Well my presentation went off OK, although there were only about 20-30 people present. I hope all truly enjoyed the presentation.</p>
<p>To the person that asked &#8220;doesn&#8217;t the use of an interpreted language make race conditions more difficult to address?&#8221; I must apologize as I totally mis-handled that question.</p>
<p>No, an interpreted language doesn&#8217;t make race conditions more difficult to address (although the specific language implementation might, which I noted in my talk). The most used interpreted languages, PHP, Perl, Python, go through a cycle like:</p>
<p>&nbsp;&nbsp; &nbsp;Parse Code</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Compile to intermediate stage (e.g. byte code)</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Interpreter executes the intermediate stage</p>
<p>The last stage is where race conditions occur, but is no different than executing a code written in C, or Assembly, and compiled to a binary. In that case, the final step is replaced with:</p>
<p>&nbsp;&nbsp; &nbsp;Kernel Loader executes the binary</p>
<p>Focusing on interpreted versus non-interpreted misses the point, which is: make your operations as atomic as possible. The second point is: do as much of your operations as the user as possible (meaning not root).</p>
<p>You can download my <a href="http://kpower.me/wp-content/uploads/2010/10/Secure-Coding-Practices-conference-version.pdf" class="aga aga_5">presentation</a>.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2010/10/presentation-secure-coding-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preventing cPanel from managing the web service (httpd) process &#8211; Part 1</title>
		<link>http://kpower.me/2010/10/preventing-cpanel-from-managing-the-web-service-httpd-process-part-1/</link>
		<comments>http://kpower.me/2010/10/preventing-cpanel-from-managing-the-web-service-httpd-process-part-1/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 14:00:54 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[cPanel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA["cPanel with Debian"]]></category>

		<guid isPermaLink="false">http://kpower.me/?p=53</guid>
		<description><![CDATA[Part of the core design of cPanel is to install and fully manage the web service process. By default this process is Apache as provided by EasyApache. For various reasons1 a server admin may not want to use that installation of Apache, or even use a different web service. In such situations it is advantageous [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Part of the core design of <a href="http://cpanel.net" class="aga aga_8">cPanel</a> is to install and fully manage the web service process. By default this process is <a href="http://httpd.apache.org" class="aga aga_9">Apache</a> as provided by EasyApache. For various reasons<sup>1</sup> a server admin may not want to use that installation of Apache, or even use a different web service. In such situations it is advantageous to disable cPanel&#8217;s management of the web service.</p>
<h2>Disabling Restarts</h2>
<p>There are several ways to disable Apache restarts on a cPanel server. We&#8217;ll look only at the manual method. This involves touching one of the following files:</p>
<ul>
<li>/etc/httpddisable</li>
<li>/etc/apachedisable</li>
<li>/etc/httpdisable</li>
</ul>
<p>If any of those files exist Apache restarts handled by <strong>/scripts/restartsrv_httpd</strong> will not occur. That script will silently exit. However that script is not the only method cPanel has of restarting Apache. The other ways cPanel &#038; WHM can restart Apache are:</p>
<ul>
<li>Executing <strong>/usr/local/cpanel/bin/safeapacherestart</strong></li>
<li>Calling the <em>Cpanel::HttpUtils::ApRestart::safeaprestart</em><sup>2</sup> function</li>
</ul>
<p>Before cPanel &#038; WHM version 11.28 neither of the above methods will observe the flag files. This means you cannot effectively disable cPanel-managed restarts, at least with an unmodified product.</p>
<p>On my Debian-cPanel server the problem was exacerbated by the behavior of <em>Cpanel::HttpUtils::ApRestart::safeaprestart</em>. This function first looks for a process named <em>httpd</em> in the process table. Debian names the Apache process <em>apache2</em>. Since the function cannot found what it is looking for it switches to <em>force</em> mode. In <em>force</em> mode the function kills anything bound to port 80.</p>
<p>As noted above the good news is this is address in cPanel &#038; WHM version 11.28. For older systems though, you may accomplish this via a patch to <em>Cpanel::HttpUtils::ApRestart::safeaprestart</em>:</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p53code3'); return false;">View Code</a> DIFF</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p533"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
</pre></td><td class="code" id="p53code3"><pre class="diff" style="font-family:monospace;">Index: Cpanel/HttpUtils/ApRestart.pm
===================================================================
<span style="color: #888822;">--- Cpanel/HttpUtils/ApRestart.pm       <span style="">&#40;</span>revision 49669<span style="">&#41;</span></span>
<span style="color: #888822;">+++ Cpanel/HttpUtils/ApRestart.pm       <span style="">&#40;</span>revision 49672<span style="">&#41;</span></span>
<span style="color: #440088;">@@ -1,6 +1,6 @@</span>
 package Cpanel::HttpUtils::ApRestart;
&nbsp;
<span style="color: #991111;">-# cpanel12 - Cpanel/HttpUtils/ApRestart.pm        Copyright<span style="">&#40;</span>c<span style="">&#41;</span> 2008 cPanel, Inc.</span>
<span style="color: #00b000;">+# cpanel12 - Cpanel/HttpUtils/ApRestart.pm        Copyright<span style="">&#40;</span>c<span style="">&#41;</span> 2010 cPanel, Inc.</span>
 #                                                           All rights Reserved.
 # copyright@cpanel.net                                         http://cpanel.net
 # This code is subject to the cPanel license. Unauthorized copying is prohibited
<span style="color: #440088;">@@ -28,9 +28,7 @@</span>
 <span style="">&#125;</span>
&nbsp;
 sub bgsafeaprestart <span style="">&#123;</span>
<span style="color: #991111;">-    eval <span style="">&#123;</span></span>
<span style="color: #991111;">-        Cpanel::ServerTasks::queue_task<span style="">&#40;</span> 'apache_restart' <span style="">&#41;</span>;</span>
<span style="color: #991111;">-    <span style="">&#125;</span>;</span>
<span style="color: #00b000;">+    eval <span style="">&#123;</span> Cpanel::ServerTasks::queue_task<span style="">&#40;</span>'apache_restart'<span style="">&#41;</span>; <span style="">&#125;</span>;</span>
     if <span style="">&#40;</span> $@ <span style="">&#41;</span> <span style="">&#123;</span>
         $logger-&gt;warn<span style="">&#40;</span>&quot;Could not restart apache: $@&quot;<span style="">&#41;</span>;
         return <span style="">0</span>;
<span style="color: #440088;">@@ -49,6 +47,11 @@</span>
         $force = $args_ref-&gt;<span style="">&#123;</span>'force'<span style="">&#125;</span>;
     <span style="">&#125;</span>
&nbsp;
<span style="color: #00b000;">+    if <span style="">&#40;</span> -e '/etc/httpddisable' || -e '/etc/apachedisable' || -e '/etc/httpdisable' <span style="">&#41;</span> <span style="">&#123;</span></span>
<span style="color: #00b000;">+        $logger-&gt;info<span style="">&#40;</span>'Apache httpd is disabled, cannot be restarted.'<span style="">&#41;</span>;</span>
<span style="color: #00b000;">+        return wantarray ? <span style="">&#40;</span> <span style="">0</span>, 'Apache httpd is disabled, cannot be restarted.' <span style="">&#41;</span> : <span style="">0</span>;</span>
<span style="color: #00b000;">+    <span style="">&#125;</span></span>
<span style="color: #00b000;">+</span>
     local %ENV = %ENV;
     Cpanel::Env::cleanenv<span style="">&#40;</span>'http_purge' =&gt; <span style="">1</span><span style="">&#41;</span>;
&nbsp;
<span style="color: #440088;">@@ -317,10 +321,7 @@</span>
     <span style="">&#125;</span>
&nbsp;
     if <span style="">&#40;</span> !$restart_status <span style="">&#41;</span> <span style="">&#123;</span>
<span style="color: #991111;">-        $our_restart_message .=</span>
<span style="color: #991111;">-            &quot;\n\nIf apache restart reported success but it failed soon after, it may be caused by oddities with mod_ssl.&quot;</span>
<span style="color: #991111;">-          . &quot;\n\nYou should run /scripts/ssl_crt_status as part of your troubleshooting process. Pass it --help for more details.&quot;</span>
<span style="color: #991111;">-          . &quot;\n\nAlso be sure to examine apache's variouse log files.&quot;;</span>
<span style="color: #00b000;">+        $our_restart_message .= &quot;\n\nIf apache restart reported success but it failed soon after, it may be caused by oddities with mod_ssl.&quot; . &quot;\n\nYou should run /scripts/ssl_crt_status as part of your troubleshooting process. Pass it --help for more details.&quot; . &quot;\n\nAlso be sure to examine apache's variouse log files.&quot;;</span>
     <span style="">&#125;</span>
&nbsp;
     return <span style="">&#40;</span> $restart_status, $our_restart_message <span style="">&#41;</span>;
<span style="color: #440088;">@@ -348,7 +349,8 @@</span>
&nbsp;
     if <span style="">&#40;</span>$main_http_pid &amp;#038;&amp; $current_pid_in_file eq $main_http_pid &amp;#038;&amp; kill<span style="">&#40;</span><span style="">0</span>,$main_http_pid<span style="">&#41;</span><span style="">&#41;</span> <span style="">&#123;</span>
         @pids = <span style="">&#40;</span>$main_http_pid<span style="">&#41;</span>;
<span style="color: #991111;">-    <span style="">&#125;</span> else <span style="">&#123;</span></span>
<span style="color: #00b000;">+    <span style="">&#125;</span></span>
<span style="color: #00b000;">+    else <span style="">&#123;</span></span>
         @pids = httpdpids<span style="">&#40;</span>'root'<span style="">&#41;</span>;
     <span style="">&#125;</span>
&nbsp;
<span style="color: #440088;">@@ -358,7 +360,8 @@</span>
         while <span style="">&#40;</span>$reading<span style="">&#41;</span> <span style="">&#123;</span>
             if <span style="">&#40;</span>$conf_fd<span style="">&#41;</span> <span style="">&#123;</span>
                 last if <span style="">&#40;</span> readlink &quot;/proc/$pid/fd/$conf_fd&quot; ne $conffile <span style="">&#41;</span>;
<span style="color: #991111;">-            <span style="">&#125;</span> else <span style="">&#123;</span></span>
<span style="color: #00b000;">+            <span style="">&#125;</span></span>
<span style="color: #00b000;">+            else <span style="">&#123;</span></span>
                 $reading = <span style="">0</span>;
                 if <span style="">&#40;</span> opendir my $fd_dh, &quot;/proc/$pid/fd&quot; <span style="">&#41;</span> <span style="">&#123;</span>
                     while <span style="">&#40;</span> my $fd = readdir $fd_dh <span style="">&#41;</span> <span style="">&#123;</span></pre></td></tr></table></div>

<p>With the patch in place, you&#8217;ll want to exclude <em>Cpanel::HttpUtils::ApRestart::safeaprestart</em> from updates:</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p53code4'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p534"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p53code4"><pre class="bash" style="font-family:monospace;"> <span style="color: #666666; font-style: italic;"># echo &quot;/usr/local/cpanel/Cpanel/HttpUtils/ApRestart.pm&quot; &gt;&gt; /etc/cpanelsync.exclude</span></pre></td></tr></table></div>

<p><strong>CAUTION:</strong> Once the system is upgraded to cPanel 11.28, or newer, you&#8217;ll want to remove the exclusion. Otherwise the server will not receive further updates to this functionality.</p>
<p>Next time we&#8217;ll examine modifying the Web service monitoring provided by <strong>chkservd</strong></p>
<h3>Footnotes</h3>
<p>1. Some of these reasons include: running a different Web service, such as nginx; using the Apache install provided by the Operating System vendor; having a specialized monitoring and uptime guarantee service; etc.</p>
<p>2. This function is called by various scripts, notably <strong>/scripts/checkerrorlogsafe</strong> which is called during <strong>upcp</strong>. It is also called from within the various cPanel binaries.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2010/10/preventing-cpanel-from-managing-the-web-service-httpd-process-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian does not provide a wheel group</title>
		<link>http://kpower.me/2010/10/debian-does-not-provide-a-wheel-group/</link>
		<comments>http://kpower.me/2010/10/debian-does-not-provide-a-wheel-group/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 14:00:13 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[cPanel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA["cPanel with Debian"]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[GNU]]></category>

		<guid isPermaLink="false">http://kpower.me/?p=50</guid>
		<description><![CDATA[This caught me by surprise. Debian does not provide a wheel group. Apparently it&#8217;s because the GNU version of su does not work with the normal usage of the wheel group. According to the info page on coreutils:  22.5.1 Why GNU `su&#8217; does not support the `wheel&#8217; group &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; (This section is by Richard [...]
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>This caught me by surprise. Debian does not provide a wheel group. Apparently it&#8217;s because the GNU version of <strong>su</strong> does not work with the normal usage of the wheel group. According to the info page on coreutils:</p>
<blockquote><p>
22.5.1 Why GNU `su&#8217; does not support the `wheel&#8217; group<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>(This section is by Richard Stallman.)</p>
<p>   Sometimes a few of the users try to hold total power over all the<br />
rest.  For example, in 1984, a few users at the MIT AI lab decided to<br />
seize power by changing the operator password on the Twenex system and<br />
keeping it secret from everyone else.  (I was able to thwart this coup<br />
and give power back to the users by patching the kernel, but I wouldn&#8217;t<br />
know how to do that in Unix.)</p>
<p>   However, occasionally the rulers do tell someone.  Under the usual<br />
`su&#8217; mechanism, once someone learns the root password who sympathizes<br />
with the ordinary users, he or she can tell the rest.  The &#8220;wheel<br />
group&#8221; feature would make this impossible, and thus cement the power of<br />
the rulers.</p>
<p>   I&#8217;m on the side of the masses, not that of the rulers.  If you are<br />
used to supporting the bosses and sysadmins in whatever they do, you<br />
might find this idea strange at first.
</p></blockquote>
<p><a href="http://cpanel.net" class="aga aga_11">cPanel</a> requires the presence of the <em>wheel</em> group for the adminbin system to work. Lack of the <em>wheel</em> group will cause odd errors in some of the cPanel UI. Resolving this is simple:</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p50code6'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p506"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p50code6"><pre class="shell" style="font-family:monospace;"> # addgroup --system wheel</pre></td></tr></table></div>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2010/10/debian-does-not-provide-a-wheel-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rrdtool part another</title>
		<link>http://kpower.me/2010/10/rrdtool-part-another/</link>
		<comments>http://kpower.me/2010/10/rrdtool-part-another/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 16:58:44 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[cPanel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA["cPanel with Debian"]]></category>

		<guid isPermaLink="false">http://kpower.me/?p=48</guid>
		<description><![CDATA[It appears the path to the rrdtool executable is hard-coded in more than one place. A second location is in /usr/local/cpanel/Cpanel/Bandwidth/RRD.pm. The fix is the same as before: Change the rrdtool path to /usr/bin/rrdtool Exclude the file from updates: ?View Code SHELL1 2 # echo &#34;/usr/local/cpanel/Cpanel/Bandwidth/RRD.pm&#34; &#62;&#62; /etc/cpanelsync.exclude &#60; No related posts. Related posts brought to you by Yet Another Related Posts Plugin.
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>It appears the path to the <strong>rrdtool</strong> executable is hard-coded in <a href="http://kpower.me/2010/10/fixing-rrdtool/" >more than one place</a>. A second location is in <em>/usr/local/cpanel/Cpanel/Bandwidth/RRD.pm</em>. The fix is the same as before:</p>
<ol>
<li>Change the rrdtool path to <em>/usr/bin/rrdtool</em></li>
<li>Exclude the file from updates:

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p48code8'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p488"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p48code8"><pre class="shell" style="font-family:monospace;"> # echo &quot;/usr/local/cpanel/Cpanel/Bandwidth/RRD.pm&quot; &gt;&gt; /etc/cpanelsync.exclude
    &lt;</pre></td></tr></table></div>

</pre>
</li>
</ol>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2010/10/rrdtool-part-another/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now on Debian</title>
		<link>http://kpower.me/2010/10/now-on-debian/</link>
		<comments>http://kpower.me/2010/10/now-on-debian/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 16:48:02 +0000</pubDate>
		<dc:creator>kpower</dc:creator>
				<category><![CDATA[cPanel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA["cPanel with Debian"]]></category>

		<guid isPermaLink="false">http://kpower.me/2010/10/now-on-debian/</guid>
		<description><![CDATA[Due to hardware issues, the migration to the Debian-based cPanel server was expedited. Welcome to the Debian-based cPanel server. No related posts. Related posts brought to you by Yet Another Related Posts Plugin.
No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Due to hardware issues, the migration to the <a href="http://debian.org" class="aga aga_14">Debian</a>-based <a href="http://cpanel.net" class="aga aga_15">cPanel</a> server was expedited.</p>
<p>Welcome to the Debian-based cPanel server.</p>
<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://kpower.me/2010/10/now-on-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
