The Secret to Upgrading osCommerce from 2.2ms2-2006-08-17 to 2.2rc1 – January 20, 2010 (read more)

I've been working with a customer to upgrade his osCommerce installation.  The interesting points of the upgrade are that he has a highly customized installation, both in the template and code.  Subversion comes to the rescue for all of that.  And I got his source code checked in (had to first figure out what version he was running, since it turns out he originally installed 2.2ms1, and had partially upgraded to 2.2ms2-2005 and then partially upgraded to 2.2ms2-2006, so it was pretty confusing as to which files and database tables had already been upgraded.

Procmail Programming – January 07, 2010

I've written a couple procmail scripts over the years, and I thought I should publish them since it might help someone.

The following script goes in /etc/procmailrc which allows users to disable the spam check for whatever reason - perhaps they use a different program or otherwise don't need the spamassassin check. (see next script, where my virtual users use a different spamd, since the user doesn't actually exist, so I need to change the username in spamc, and call a different spamd which is listening on a different port than the default spamd)

:0fw
* ? /usr/bin/test ! -e $HOME/.no-spam-check
| /usr/bin/spamc --headers

I use this next script for my "virtual" users - I now do all email via virtual users (except for the folks who were around before this switch) as it makes e-mail management easier, via PostgreSQL scripts, and a custom PHP customer script that allows them to make their own modifications easily.

This script also supports the username+extension@domain syntax, which is handy for folks who don't have whole domain names to use for email/spam tracking.  My users have an infinite number of email addresses which can be "created" by simply telling someone that their email address is john.doe+spammer@mydomain.com. If the user then creates a folder named "spammer", the mail will be delivered into that folder, and if the folder isn't created, this script will put the mail in the main inbox, and the user could filter it on the client-side using the X-Original-To: header.

##############################
## rename arguments into nice names
## strip out slashes and periods in the extension to avoid
## mis-writing stuff to other directories (like ../../../.procmailrc)
domain=$1
username=$2
extension=$3
extension=`echo "$extension" | sed -e 's/[\/.]/_/g'`

# strange formats, probably errors in the postfix database
:0
*$ ${domain:+!}
! vmail+$domain+$username+$extension+nodomain@xxxx.com
:0
*$ ${username:+!}
! vmail+$domain+$username+$extension+nousername@xxxx.com
# we disabled default spam checking with .no-spam-check
# so now we run it using the virtual spamd
#
# 02/04/2008, added --timeout=100, we are getting some cases
# where the procmail script is taking 1001 seconds to run,
# and postfix bounces the message...
:0fw
* ? /usr/bin/test -d $MAILDIR/$domain/$username
| /usr/bin/spamc --timeout=100 --port=784 --headers --username=$username@$domain

# chuck definitely known spam
:0 h
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*
/dev/null
# deliver to /home/vmail/mail/{domain}/{user}/mail/{extension}
# if they previously created the folder
:0:
*$ ! ${extension:+!}
* ? /usr/bin/test -e $MAILDIR/$domain/$username/mail/$extension
$domain/$username/mail/$extension

# deliver to /home/vmail/mail/{domain}/{user}/mail/mail
# if the directory exists.  if it doesn't, it is an error
:0:
* ? /usr/bin/test -d $MAILDIR/$domain/$username/mail
$domain/$username/mail/mail

# shouldn't ever get here unless there is a missing directory
:0
! vmail+$domain+$username+$extension+missing-dir@xxxx.com

Some spam blocking scripts:

# spammers like forging mail from @daley.snurgle.org
# and I no longer send mail using this address, so anyone
# who says they received mail from this address got spammed,
# and has a poor ISP which bounced the spam to a person who didn't send it.
:0
* ^X-Original-To: [^@]+@daley.snurgle.org
* ^Subject: .*(deliver|failure|returned|autoreply|challenge|blocked)
/dev/null

An old address that Eversave sold to spammers

:0
* ^TO_eversave@jondaley.cjb.net
/dev/null

Paypal Transaction Processed: Thank You!

Thank you for your payment. Your transaction has been completed, and a receipt for your purchase has been emailed to you. You may log into your account at https://paypal.com/ to view the details of this transaction.

Click for support or other questions regarding your purchase.

 

Wordpress: Cache RSS Feeds to Lower CPU Usage – December 09, 2009

I did some work for a client who was having high CPU load issues with their tiny (20 posts, no comments) Wordpress installation.

They already had the super-cache plugin installed (I think that should be shipped by default in wordpress), but the super-cache plugin (as of version 0.9.6.1) doesn't cache RSS feeds, so for each of the ~5000 viewers of the RSS feed, the feed is regenerated each time, causing this tiny site to be the largest CPU usage of all sites on this particular shared server.

It turns out that this is a known problem, so hopefully it will be fixed in later releases of the plugin. Especially since I am asked to fix this for different clients at different times, and I have to relearn how to fix it each time, because I can't keep it in my head...

The changes I made were:

modified wp-cache-phase2.php, line 36:

if ( $wp_cache_not_logged_in && is_user_logged_in() /*&& !is_feed()*/ && !is_admin() ) {

modified wp-cache-phase2.php, line 270:

if( !empty( $_GET ) || /*is_feed() ||*/ ( $super_cache_enabled == true && is_dir( substr( $supercachedir, 0, -1 ) . '.disabled' ) ) )

added to wp-cache-phase2.php, on line 364:

if (is_feed()) {
  $type = get_query_var('feed');
  $type = str_replace('/','',$type);
  switch ($type) {
    case 'atom':
      $mediaType = "application/atom+xml";
      break;
    case 'rdf':
      $mediaType = "application/rdf+xml";
      break;
    case 'rss':
    case 'rss2':
    default:
      $mediaType = "application/rss+xml";
  }
  $htaccess = @fopen ("{$dir}.htaccess", 'w');
  if ($htaccess) {
    fputs($htaccess, "<Files *.html>\n ForceType $mediaType\n</Files>\n");
    fputs($htaccess, "<Files *.gz>\n ForceType $mediaType\n</Files>\n");
    fclose($htaccess);
  }
}

added to .htaccess,top of file

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^feed=rss2?$
RewriteRule ^.*  /feed/?   [R,L]
RewriteRule ^feed$  /feed/   [R,L]

The code now traps /?feed=rss, /?feed=rss2, /feed and redirects them to /feed/ which is now cached appropriately by super-cache.

The changes/additions I made to Michael's fixes:

  1. compressed feeds (.gz extension) work
  2. the client's server required ForceType rather than AddType
  3. I also wanted the "extra" feed URLs captured, so apache would handle the static files, rather than forcing Wordpress to dynamically redirect them

Terms of Service

This User Services Agreement ("Agreement") is an agreement between the customer ("User") and Lime Daley, an internet service provider located at 44 Church Street, Hillsboro, NH ("Lime Daley"). "Services" refers to email and any other services provided to User by Lime Daley. This document may be updated and/or modified at any time.

Service Uptime Guarantee (applies only to Users with a Service Level Agreement)

Lime Daley provides an uptime availability target of 99.99% for Services each calendar month. If Lime Daley fails to meet the availability target for a particular month, User may request a credit for 3% of its monthly recurring charge for each hour of service outage in excess of the availability target. By definition, a server is experiencing an outage if no traffic is exchanged on the line, or if traffic is so slow as to be interpreted as an outage by a reasonable person. Outage hours are rounded to the nearest hour and based on the time a vendor Trouble Ticket is created, indicated by the time stamp on the Trouble Ticket.

Lime Daley's target response time for initializing service restoration following notification of a Services outage is 4 hours. If Lime Daley is unable to meet this target response time, User may request a credit for 10% of the monthly recurring charge. In no case shall the sum of target response time credits and uptime availability target credits during a calendar month exceed the total of the monthly recurring charge.

Spam Filtering

User understands that Lime Daley implements various spam filters, which bounce, delete, and delay e-mail that appears to be spam. User agrees to indemnify and hold not responsible Lime Daley from any claims resulting from action or inaction by the spam filters, including, but not limited to loss of data resulting from delays and non-delivery of information.

Notifications

Lime Daley communicates primarily via email. User agrees that sending a message to its contact email address is the agreed upon means of providing notification. All Services come with at least one email account. It is required that User routinely check this email account. User's contact email account is used to communicate vital information about services, billing, service outages, and enhancements or changes to the existing services. This information is time-sensitive in nature. It is required that User read any email sent to its contact email account to avoid any potential interruptions in your service.

Moderations Of Use

Bandwidth: Lime Daley has provided in the billing terms per-user bandwidth quotas. The rates are based on the assumption that the traffic will be averaged through the month. If User utilizes any of the Services in a manner which consumes excessive bandwidth or affects Lime Daley's core equipment, overall network performance, or other users' services, Lime Daley may require that User cease or alter these activities. Alternatively, User may renegotiate a rate that includes the peak bandwidth usages.

Password Policy

User agrees to protect its account by guarding its passwords carefully. User is responsible for all use of User accounts and for the confidentiality of any password selected by User. Lime Daley will suspend or modify User's accounts as soon as practicable after notification from User that a password has been lost, stolen or otherwise compromised. User must notify Lime Daley immediately if User believes any of its accounts may be compromised.

User Content

Lime Daley considers email transmitted to be the private correspondence of the sender. Lime Daley will not monitor, sell, rent, lease, edit, or disclose the contents of a User's private communications, except that Lime Daley and its third party service providers may do so: (a) as required by law; (b) to comply with legal process; (c) as necessary to enforce this Agreement; (d) to respond to claims that such contents violate the rights of third parties; or (e) to protect the rights or property of Lime Daley, its third party service providers, or others. User acknowledges that content posted by User to public community areas is publicly available and that Lime Daley does not take any responsibility for such content. User understands and agrees that technical, and sometimes manual, processing of email communications, search requests, community postings, and any other information supplied by User is and may be required: (a) to send and receive messages; (b) to conform to the technical requirements of connecting networks; (c) to conform to the limitations of the Services; or (d) to conform to other, similar technical requirements. Lime Daley and its third party service providers do not endorse the content of any User communications and are not responsible or liable for any unlawful, harassing, libelous, privacy invading, abusive, threatening, harmful, vulgar, obscene, indecent, tortious, or otherwise objectionable content, or content that infringes or may infringe the intellectual property or other rights of another.

User Conduct

User is to abide by all applicable local, state, national, and international laws and regulations during use of the Services, and is not to interfere with the use and enjoyment of the Services by other users. User is to be solely responsible for the contents of User's private and public communications, whether uploaded, posted, emailed, or otherwise transmitted through the Services. User is: (a) not to use the Services for illegal purposes; (b) not to interfere with or disrupt the Services or servers or networks connected to the Services; (c) to comply with all requirements, procedures, policies, and regulations of networks connected to the Services; (d) not to resell the Services or use of or access to the Services; and (e) to comply with all applicable laws regarding the transmission of technical data exported from the United States. User is not to upload, post, email, or otherwise transmit: (a) any unlawful, harassing, libelous, privacy invading, abusive, threatening, harmful, vulgar, obscene, indecent, tortious, or otherwise objectionable material of any kind; (b) any material that violates the rights of another, including, but not limited to, the intellectual property rights of another; (c) any material that violates any applicable local, state, national, or international law or regulation; or (d) unsolicited or unauthorized advertisements, promotional materials, "junk mail," "spam," "chain letters," or other forms of solicitation.

User is not to attempt to gain unauthorized access to other computer systems or networks connected to the Services. Lime Daley may ban User from future use of the Services if User does not comply with Lime Daley's standards of conduct, even if User attempts to use the Services through another User or under a different name.

Privacy Policy

Lime Daley upholds your privacy as defined in the privacy policy.

Termination

User agrees that Lime Daley or its third party service providers may terminate User's password, account, or use of the Services if Lime Daley or its third party service providers believe: (a) that User has violated or acted inconsistently with the letter or spirit of this Agreement; or (b) that User has violated the rights of Lime Daley or its third party service providers or other users or parties.

Lime Daley may, at its discretion, suspend User's access to the services for any violation of this Agreement. Lime Daley will make reasonable efforts to notify User of such actions.

Cancellation by User must be made in writing at least 30 days in advance.

Warranties

Lime Daley makes no warranties, either express or implied, as to any matter whatsoever, including without limitation, the services rendered pursuant to this Agreement. Lime Daley also disclaims any warranty of merchantability, fitness for a particular purpose, or any implied warranties of fitness. Lime Daley specifically denies any responsibility whatsoever for the accuracy or quality of information obtained through its services, and use of information is at risk of User. User agrees to defend, indemnify and hold harmless Lime Daley from any and all claims, causes of action or damages of any kind, resulting from User's use of the services provided pursuant to this Agreement. User agrees to indemnify and hold Lime Daley not responsible for any use which constitutes an illegal activity by User or others accessing User's account . Lime Daley is further not responsible for the contents of User's data and/or illegal, obscene or harmful material. Under no circumstances will Lime Daley be responsible for the status, altered or current, of any data stored or transmitted in any of its servers. User agrees to indemnify and hold not responsible Lime Daley from any claims resulting from use of service which causes damage or loss to User, or any other party, including, but not limited to loss of data resulting from delays, non delivery of information, or service interruptions. In addition, User understands that the use of Lime Daley's server includes the possible risk of a damaging event such as weather, electrical surge, theft, line failure, viruses that User gets, etc. that could affect data or access availability. Lime Daley is not liable for any losses caused by such events or occurrences. User hereby releases Lime Daley from any and all claims of liability of any kind as a result thereof, including but not limited to claims for damage to software, or hardware, lost data, lost profit and/or business interruption.

Updated: February 2024

Support Information

Read any recent announcements.

Looking for your invoice or your support tickets? Check the online support system.

Call us on the phone: 412-360-7844

 

Account Management

https://<your-server-name>.limedaley.com:8443/

The final result should look something like: https://orange.limedaley.com:8443/

If you aren't sure what your server name is, email support, and we'll get right back to you.

Email

https://<your-domain>-mail.limedaley.com/

These links are a little harder to show you examples.

To form the correct URL, you should leave the ".com" off of your domain name. A correctly-formed URL would be: https://google-mail.limedaley.com/

Privacy Policy

Lime Daley shares your concerns about privacy on the Internet. In order to better protect your privacy, Lime Daley has provided this notice explaining its online information practices and the choices you can make about the way your information is collected and used on the Site. Furthermore, this Privacy Policy, being part of the Terms, works in conjunction with the Terms and Conditions of Use, but does not modify or supercede them.

Lime Daley's Collection and Use of Your Information

In the course of using the Site, Lime Daley may ask you for your name, e-mail address, postal address, telephone number, as well as other relevant information. Lime Daley also may collect certain non-personally identifiable information when you visit many of our web pages, such as the type of browser you are using (e.g. Firefox, Internet Explorer), the type of operating system you are using, (e.g. Windows Vista, Linux Debian or Mac OS), the domain name of your Internet service provider (e.g. America Online, RoadRunner), aggregate data about the number of visits to the Site and/or aggregate data about the pages visited.

How Lime Daley Uses the Information

Lime Daley uses the non-personally identifiable information ("Aggregate Data") to improve the design and content of the Site and to enable Lime Daley to personalize your Internet experience. Lime Daley may use the Aggregate Data to analyze Site usage as well as create services and/or products to fit your needs. Lime Daley may also use the data to track and report spammer-like activities to the proper authorities and appropriate blacklists.  Lime Daley shall own such Aggregate Data and maintain copies of such as part of its records.

Except as otherwise indicated, Lime Daley uses the personally identifiable information ("Personal Information") you provide about yourself: (a) to respond to any of your inquiries or questions about our services; (b) for internal marketing purposes; (c) to provide you additional and updated information, materials and other advertisements regarding the Lime Daley services; (d) to offer you other materials and/or information that Lime Daley believes may be of interest to you; (e) to cooperate with government officials or parties in litigation under process of law, or as otherwise required by law; (f) to protect the security or integrity of the Site; (g) to protect against a threat to safety or destruction of property; and/or (h) to protect against legal liability. In all cases, however, Lime Daley agents, employees and contractors who have access to Personal Information are required to protect this information in a manner that is consistent with this Privacy Policy. Lime Daley will not use the Personal Information, except as set forth herein, without your permission; provided, however, Lime Daley shall own all such Personal Information and maintain copies of such as part of its records. If you do not wish to receive any such information or to allow Lime Daley the right to use your personally identifiable information as described, please contact Lime Daley in the manner identified in the "Opt Out" section below. The Aggregate Data and Personal Information may be transferred, distributed or sold as part of Lime Daley or its assets.

Opt Out

You may choose not to receive such information and/or to allow Lime Daley to use your information in the manner described above by contacting us directly. Upon receipt and processing of an "opt out" request, Lime Daley will, within its commercially reasonable amount of time, remove your information from any future marketing communications.

Security; No Liability

Lime Daley has implemented security measures to help protect against the risk of loss, misuse, or alteration of any information under Lime Daley's control. Lime Daley protects sensitive information by using Secure Sockets Layer ("SSL") technology. SSL encrypts your order information to avoid the decoding of that information by anyone other than Lime Daley. Nevertheless, such security measures may not prevent all loss, misuse or alteration of information on the Site, and Lime Daley is not responsible for any damages or liabilities relating to any such security failures. You understand that data and communications, including e-mail and other electronic communications, may be accessed by unauthorized third parties when communicated over the Internet. Furthermore, the Site contains links to other web sites. Lime Daley is not responsible for nor can Lime Daley ensure the privacy practices or content of such other sites.

IP Addresses and Cookies

Like other web sites, Lime Daley uses your IP address to help diagnose problems with Lime Daley's servers, to administer the Site and for security purposes.

"Cookies" are pieces of data sent from a Web server to a Web browser that enable a Web server to identify users that visit a site hosted by that server. Lime Daley may use Cookies in order to identify you to our site so that Lime Daley can provide more customized information and services to you. In addition, our site may contain advertisements that may contain Cookies. In general, if you choose, you can disable the use of Cookies by reviewing your browser's preferences and options.

A Special Note about Children 

Lime Daley does not knowingly gather any personally identifiable information from children under the age of 13.  You must be 13 years of age or older to access the Site.  Lime Daley has no interest in collecting information from children under the age of 13.

Modification of Privacy Policy

Lime Daley may change this Privacy Policy at any time, consistent with the terms set forth in the Terms and Conditions of Use, by posting the changed or amended Privacy Policy on the Site. Your continued viewing of or use of this Site following the posting of any changes to this Privacy Policy will signify your assent to any such changes or amendments.

How to Contact Lime Daley for Any Reason

You may contact Lime Daley with questions or comments regarding this Privacy Policy, updating any personally identifiable information or anything else related to Lime Daley and/or this Site at limedaley.com or at 412-360-7844.

Updated April 11, 2009

Welcome to Apollo and AT&T Callvantage customers – August 28, 2009 (read more)

Lime Daley often acquires new customers when they leave a previous provider who either doesn't provide support, or the support that is provided consists of mostly trying to figure out what language they are speaking.   The person doesn't want to have to know technical details of why their site is getting the infamous 503 Internal Server Error, nor why their emails sometimes take 15 or 30 minutes to be delivered, and they are attracted to Lime Daley because they know they will get an engineer on the phone immediately, and problems are taken care of without hassle.

Lime Daley Statistics – August 05, 2009

Total servers: 6
New servers this year: 3
Total customers: 32
New customers this year: 6
Domains: 130
Email addresses: 1858
Monthly Data transferred: 1.6TB
Monthly Emails: 705,000
   84% is definitely spam and thrown away immediately
   3% is possible spam and put in spam folders

Thanks to God and our customers, Lime Daley is continuing to grow strong.

 

SOCKS Proxy Settings

To setup a SOCKS proxy to tunnel traffic through a semi-disagreeable firewall, you can use this command line:

ssh -N -c 3des -D 1080 user@hostname

This is simpler than doing the "regular" static port forwarding by setting up each port separately with the -L option.

Go to page: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17