Updated: March 15th, 2021

image

Introduction

I don't know about you, but I can't imagine doing my PHP development without an IDE with a debugger anymore.

It autocompletes for me, it lets me step through each line of code, jumping around the project, execute and change the code flow on the fly, and does many other things that make me feel cozy, comfortable, and efficient at PHP development (as opposed to, say, CPP which makes me feel cold and lonely).

There are many PHP IDEs out there and I've tried most of them (including the free PHPEclipse and PDT for Eclipse) but kept coming back to NuSphere's PHPEd every time. The other ones just don't do as good of a job and don't have the …

Read the rest of this article »

Updated: July 21st, 2020

Today I was setting up a new machine (running OpenSUSE 12.1, but it's not really important), and after switching the network configuration from DHCP to static IP, lost all connectivity, in and out. /etc/init.d/network restart seemed to list the right IP, yet I was getting

"unknown host"

and

"Network is unreachable"

errors while pinging. I double and triple checked all the settings – DNS and gateway were set up right. I even rebooted, but nothing worked.

Then I vaguely remembered that I ran into the same issue a few years prior and also spent hours trying to figure out what was going wrong. The solution was so incredibly simple that my geek cred should have been docked 10 points. But …

Read the rest of this article »

13

How To Fix Incomplete WordPress (WXR) Exports


Posted by Artem Russakovskii on April 13th, 2012 in PHP, Programming, Tips, Wordpress

Having spent way more time on this problem than I really should have, I'm going to make sure everyone can actually find a solution instead of useless WordPress support threads.

The Problem

I wanted to export all the data from WordPress using its native export mechanism (located at http://YOURBLOG/wp-admin/export.php), but since the blog I was working on was pretty large (6k posts, 120k comments), I kept getting XML files that ended prematurely and for which xmllint spit out this error:

Premature end of data in tag channel

Upon closer inspection, I saw the XML file ended with a random, yet always fully closed, </item> tag, but was missing the closing </channel> and </rss> tags, as well as a whole …

Read the rest of this article »

7

How To: Disable/Block External HTTP Requests In WordPress


Posted by Artem Russakovskii on November 16th, 2011 in PHP, Wordpress

One thing that's been continuously annoying me when doing WordPress development on the go is when something somewhere inside WordPress decides to send requests to external urls when I don't even have Internet connection or it's slow and flaky (tethering, slow Wi-Fi, etc). This results in random lag when loading pages, especially if I haven't opened my dev WordPress instance for a long time.

Turns out there's an easy and undocumented (other than in code) solution. To block external HTTP requests right in WordPress's core itself, open up wp-config.php and add WP_HTTP_BLOCK_EXTERNAL like so:

1
define('WP_HTTP_BLOCK_EXTERNAL', true);

Whenever this variable is present, external requests will be ignored, unless you specify your own comma-separated whitelist …

Read the rest of this article »

imageThere used to be a time when you couldn't imagine your life without Microsoft's Outlook – web email clients were pathetic and non-functional, Internet access was scarce, and access to certain advanced features was only possible with a desktop application like Outlook.

Then, Gmail arrived and exploded the whole notion of desktop email clients forever, almost overnight. It was fast, robust, logical, and integrated – many things Outlook still isn't to this day (Outlook 2010 + IMAP is pure hell).

Slowly, Google brought out more and more features that made the fine line between web and desktop emailing thinner and thinner, and today, it finally disappeared, at least for me.

The final nail in the coffin turned out to be …

Read the rest of this article »

Updated: May 17th, 2012

imageWell, this one took ages. And whenever something takes me ages, rather than write it down in my personal notes, I prefer to put it out online for everyone with the same problem to easily find and benefit from.

The problem I'm talking about today is trying to upgrade your Windows 7 installation to SP1 by applying Microsoft's update KB976932, called "Windows 7 Service Pack 1 for x64-based Systems" and getting nothing but a failure every time. The same problem may affect 32-bit systems as well, and I'm not sure what the update number for that would be, but the solution should work for either one.

SNAGHTML3837080

The update starts just fine, chugs along for 10 minutes or so, then reboots …

Read the rest of this article »

Updated: August 27th, 2012

Today's snippet is tremendously helpful if you are using an XML-RPC WordPress interface to read and publish your articles and are running into 500 Server Error issues due to running out of memory, manifesting themselves in something like this error message: "Invalid Server Response – The response to the metaWeblog.newMediaObject method received from the weblog server was invalid".

For example, my regular PHP memory allocation is 32MB or so, but if I load up Windows Live Writer, my favorite publishing tool, and ask it to load 1000 of the latest blog posts, I will undoubtedly get a server error back.

One solution would be to increase the memory allocated to PHP to something higher, like 256MB, which is how …

Read the rest of this article »

Updated: February 2nd, 2011

WordPress has a great way of letting you use simple text tags called shortcodes to provide a whole bunch of functionality, including custom PHP code. In this article, I'm assuming that you already know what shortcodes do and how they operate (if you don't, head over here: Shortcode_API).

One glaring omission in the way shortcodes are set up by default is that they only get triggered in the content of your post, leaving the sidebar and comments out. I'm sure this is done for security, so that your readers can't screw something up by posting shortcodes they're not supposed to – after all, shortcodes are PHP snippets on the backend.

However, let's assume you really know what you're doing …

Read the rest of this article »

Updated: December 25th, 2011

imageAs a developer, I both love and hate Eclipse for its chaotic nature, buggy and sometimes unusable interface, but at the same time incredible usefulness and ability to serve as a single tool for all of my development, be it C++, PHP, Java, Android, Perl, etc.

One of the biggest problems with Eclipse is that there is no clear upgrade path from major versions, for example 3.5->3.6. What I ended up having to do for years is back up the old release, download and unpack the new release, and then try to migrate all the settings by importing and exporting left and right. Not so pleasant.

Turns out, as of Eclipse 3.3 (though I've only tried it with Eclipse 3.5), …

Read the rest of this article »

26

How To Display Just The HTTP Response Code In Command Line Curl


Posted by Artem Russakovskii on June 10th, 2010 in Linux, Tips

Updated: July 21st, 2020

Today, I was looking for a quick way to see HTTP response codes of a bunch of urls. Naturally, I turned to the curl command, which I would usually use like this:

curl -IL "URL"

This command would send a HEAD request (-I), follow through all redirects (-L), and display some useful information in the end. Most of the time it's ideal:

curl -IL "http://www.google.com"
 
HTTP/1.1 200 OK
Date: Fri, 11 Jun 2010 03:58:55 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Server: gws
X-XSS-Protection: 1; mode=block
Transfer-Encoding: chunked

HTTP/1.1 200 OK
Date: Fri, 11 Jun 2010 03:58:55 GMT
Expires: -1
Cache-Control:

Read the rest of this article »

35

How To Diagnose And Fix Incorrect Post Comment Counts In WordPress


Posted by Artem Russakovskii on March 21st, 2010 in Wordpress

Updated: September 16th, 2012

image

Introduction

If your WordPress comment counts got messed up, whether because of a plugin (I'm talking about you, DISQUS) or you messed with your database manually and did something wrong (yup, that's what I just did), fear not – I have a solution for you.

But first, a little background.

Comment Counts In WordPress

Here's how comment counts work in WP:

  • Posts live in a table called wp_posts and each has an ID.
  • Comments reside in a table called wp_comments, each referring to an ID in wp_posts.
  • However, to make queries faster, the comment count is also cached in the wp_posts table, rather than getting calculated on every page load.
    If this count ever gets out of sync with
  • Read the rest of this article »

http://media.smashingmagazine.com/cdn_smash/images/shortcuts/total-commander-logo.pngToday I have 2 tips for Total Commander users:

  • how to display hidden local directories and files and
  • how to display hidden FTP directories and files

Really, Total Commander should just control this setting in one place but, unfortunately, it is not the case.

I usually prefer when my file manager shows me everything I have, so that I can be more in control and see the hidden directories, such as .svn or $Recycle.Bin, and files, such as .bashrc or pagefile.sys.

How To Display Hidden Local Directories And Files

  • go to Configuration -> Options… -> Display
  • put a check next to the "Show hidden/system files (for experts only)"

local show hidden files total commander

How To Display Hidden FTP Directories And Files

This one is a …

Read the rest of this article »

VPN This tip can also be filed in the "post with the longest title that kind of makes sense but needs more explanation" category.

If you use a VPN (Virtual Private Network), this tip is for you.

 

The Problem

  • you connect to a VPN to get access to your work/whatever network
  • your connection is fast but the VPN connection is balls slow
  • you try to stream a bit of online radio, go to a website, watch a video, or do anything, which is automatically routed through the VPN connection but everything TAKES AGES because the VPN connection is the limiting factor
  • so not only are you frustrated by hiccupping radio, stuttering video, and a never disappearing progress bar but you're
  • Read the rest of this article »

I got a new development machine at work – a 24" iMac. Since I am not an OSX fan at all, I immediately installed Windows 7 x64 on it and initiated a search for a fitting background image.

And then I found it:

image

Right click here and Save As to download the 1920×1200 version

And that's how you set up your iMac people.

Credit goes to Jonzy from DeviantArt….

Read the rest of this article »

8

How To View A Specific SVN Revision In Your Browser


Posted by Artem Russakovskii on February 20th, 2010 in SVN, Tips

Updated: July 26th, 2010

image This is a quick recipe that I found pretty interesting and relatively unknown.

Everyone who uses SVN knows that most repositories are set up to allow viewing of their contents via a web browser. For example, here's the trunk of WP Plugins SVN: http://plugins.svn.wordpress.org/ and here is the current trunk version of a specific file, let's say http://plugins.svn.wordpress.org/stats/trunk/readme.txt.

The Problem

However, what if you wanted to view a specific revision of a file or directory in your browser?

Let's say I wanted revision 100,000 of http://plugins.svn.wordpress.org/stats/trunk/readme.txt

Normally, on a command line, you'd do something like

svn co http://plugins.svn.wordpress.org/stats/trunk/readme.txt stats
cd stats;
svn up -r100000 readme.txt

or simply