Regular Expressions: Greedy vs Lazy Specifiers

Let’s say you want to match all href values in <a> tags in an HTML document. You might do something like

href=”.*”>

2

But that doesn’t work because the * is greedy and gets everything up until that last closing bracket on the first line. To fix this, make the * lazy but adding a question mark (?) after it.

href=”.*?”>

1

Notice now that we correctly get 3 matches instead of 2.

 

Fix CSV Files & Import/Export Them Using MySQL & Excel

Recently I had to do my taxes and having an online store, I had to go through 9000 transactions in Paypal that I needed categorize. Paypal lets you download your transaction history as a csv (comma-delimited text) file with double quotes (“) as a text qualifier which is a standard format. Unfortunately, you can still run into problems if you have double quotes and commas in a field’s value as follows:

“Confirmed”,”8″”, 10″”, 12″” AR550 Gong Round Steel Shooting Target Set 1/2″” Thick ( AR500)”,”300977807743″,”0.00″,”0.00″,”0.00″,””,””,””,””,”Ebay”, ….

Notice that the 2nd field contains double quotes and commas as follows:

8″”, 10″”, 12″” AR550 Gong Round Steel Shooting Target Set 1/2″” Thick ( AR500)

The original text for this field is

8″, 10″, 12″ AR550 Gong Round Steel Shooting Target Set 1/2″ Thick ( AR500)

where the double quotes represent inches as a unit of measure and the comma indicates that there are multiple sizes (8 inch, 10 inch, and 12 inch). The double quotes were escaped with double quotes to indicated that the double quotes are part of the field’s value. However, a double quote followed by a comma messes everything up because there’s no way to know whether that comma is part of the field value or a field delimiter.

The fact that this field contains double quotes and commas breaks the csv format because it appears now that this row has more columns that those in other rows. This is one of many things that can break a csv file. To fix this and other issues, I have found that it is most easy to use a tool called CSV Easy. It’s fast and shows you clearly which rows need to be fixed. Here’s an example of the problem I faced earlier.

csv-easy-1

Continue reading Fix CSV Files & Import/Export Them Using MySQL & Excel

Healthy, Tasty, High Protein Meal Replacement Smoothie for Weight Loss

When it comes to losing weight, the formula is quite simple. The amount of calories your body burns each day must be greater than the amount of calories you consume each day.

Calories Burned – Calories Consumed > 0

Calories are burned as you  go about your day to day and if you exercise (primarily cardiovascular).

Calories are consumed when you eat.

You have three options for satisfying the above formula:

  1. Eat as you normally do but exercise A LOT so as to burn more calories than you consume
  2. Don’t exercise at all but eat very little or very low fat / low calorie foods
  3. Do a combination of the above

Continue reading Healthy, Tasty, High Protein Meal Replacement Smoothie for Weight Loss

Document Ready VS Load Events

$(document).on(‘ready’, handler)

// executes when HTML-Document is loaded and DOM is ready. Assets like images maybe still are missing. The DOMContentLoaded event is fired.

$(window).on(“load”,handler)

// executes when complete page is fully loaded, including all frames, objects and images;

You can see what assets are loaded before and after a document is ready by viewing the Network panel in Chrome’s inspector. The Load event is fired.

network

The blue line indicates when the document is ready and the red line when the window (page / document) has loaded.

At the bottom, you can see how long it took for the document to be ready (614 ms) and how long for the window to load (3.81 s).

 

Photoshop: Content-Aware Fill to Fill Areas with Neighboring Pixels

Every now and then, you may come across an image with a spot or two that doesn’t look right. Consider the image below.

before

It has a red square in the middle of a textured background. While you can clone neighboring pixels and paste them over the red square, an easier way is to use Photoshop’s Content-Aware Fill option. Just select the area (red square, in this case) and then do Edit > Fill as follows:

Continue reading Photoshop: Content-Aware Fill to Fill Areas with Neighboring Pixels

Virtual Machine / Host File Settings to Test Web Pages Served on Host Machine

Many developers install virtual machines on their local development machines in order to test their web pages in different versions of IE. On your local machine, you may run a local server and test pages on localhost (http://localhost). If you’ve installed VirtualBox and a VM like Win 7 with IE 8, then you’ll probably want to be able to open IE 8 in that VM and go to localhost to see your pages. The default Network Adapter settings in VirtualBox is NAT as shown below.

ie8-network-adapter

While you’ll be able to access pages on the internet like www.google.com, you won’t be able to go to localhost to see pages on your host machine. One way to solve this is by editing your host file in your VM to point to the IP address of your host. On your host machine, open a command prompt and enter ipconfig to get your host machine’s IP address.

Continue reading Virtual Machine / Host File Settings to Test Web Pages Served on Host Machine

CSS Double Borders Using Box-Shadow

Every now and then you may come across a design that calls for double borders around an element. The “border” CSS property only gives you one border. Instead of wrapping your element in a div and applying another “border” property to it to give the effect of two borders, you can use the “box-shadow” CSS property and setting the thickness of one border to be larger than the other. Copy and paste the code below and adjust accordingly.
[cc lang=”css”]
box-shadow: 0 0 0 1px #ededed, 0 0 0 2px #dfdfdf;
[/cc]
Note: The “box-shadow” property doesn’t work in IE 8.

 

Email-Safe Fonts for HTML Email

There are two jokes in the web design community. The first one goes like this:

 A web designer walks into a bar and immediately leaves in disgust upon noticing all of the tables.

And here is the second.

HTML Email.

Basically, HTML emails are a b@#4ch!  If you want your fonts to look as you’d expect in your HTML emails, use one of the following.

email-safe-fonts