Jan 24 PDFmyURL – Convert Your Web Pages to PDF Written by: Curtiss | No Comments »

Anyone who’s spent time looking for solutions to allow their Web site visitors to convert pages to PDF has most likely discovered that the majority of the tools available for doing so are lacking in one way or another. Trying to build one in PHP from scratch is an extremely daunting and unsatisfying task. Using a pre-built library in PHP always seems to carry with it some disappointment (most of the time related to either the CSS implementation or the usage of images on your pages) and using a hosted solution usually means long processing and waiting times or does not allow for any decent customization.

However, a new hosted resource has come onto the scene that seems to do an extremely effective job, allows for a great deal of customization and is fast and efficient. A team known as OpenTracker has put together a resource called PDFmyURL. On the surface, PDFmyURL looks like just another site that allows visitors to enter a URL and get a PDF of that page in return. Even in that task, PDFmyURL does a much better job than most of its competitors (there are a few other sites that claim to allow users to do that, but many of them require you to save the page in Microsoft’s packaged HTML format before you can convert the page). However, by clicking a small link on the PDFmyURL home page, you can expand a list of advanced options that show you some code you can place on your own Web site to seamlessly allow your visitors to convert your pages to PDF. Continue Reading »

Jan 21 Firefox 3.6 Released Written by: Allen | No Comments »

Firefox 3.6 was released today – the company notes a 20% speed improvement over version 3.5.  Apparently over 350 million users use Firefox as their browser of choice.

Here’s a list from Firefox of the new features in 3.6:

  • Personas: Personalize the look of your Firefox by selecting new themes called Personas in a single click and without a restart
  • Plugin Updater: To keep you safe from potential security vulnerabilities, Firefox will now detect out of date plugins
  • Stability improvements: Firefox 3.6 significantly decreased crashes caused by third party software – all without sacrificing our extensibility in any way
  • Form Complete: When filling out an online form, Firefox suggests information for fields based on your common answers in similar field
  • Performance: Improved JavaScript performance, overall browser responsiveness, and startup time
  • Open Video and Audio: With the world’s best implementation of HTML 5 audio and video support, now video can be displayed full screen and supports poster frames

And here’s an updates list from the developer side: 

  • Support for the latest HTML5 specification, including the File API for local file handling
  • Font Support: In addition to OpenType and TrueType fonts, 3.6 now supports the new Web Open Font Format WOFF)
  • CSS gradients: Supports linear and radial CSS gradients which allow for a smoother transition between colors
  • Device orientation: Firefox 3.6 exposes the orientation of the laptop or device to Web pages

Jan 19 Chrome Improves Auto-Complete Written by: Curtiss | 1 Comment »

A few days ago, I opened Chrome on my Vista 64-bit computer and noticed something different when I went to fill in a form. The auto-complete feature was different than it had been in the past; different than any other browser I’ve used. Now, the auto-complete (or auto-suggest, I guess, is more appropriate) feature on Web forms is now more inline with the way the browser address/search bar works in Chrome.

When you begin typing, instead of simply loading a list of suggestions, it automatically selects the most appropriate item from the list of suggestions. Therefore, if the selected suggestion is correct, you can simply hit the tab key to move onto the next form field. No longer do you have to choose an option using the mouse pointer or the cursor keys, it automatically chooses one for you.

Today, I updated Chrome on my Linux Mint installation, as well, and noticed that the feature has been implemented there, too. Therefore, this feature is definitely available in the latest “unstable” (or “developer’s”) versions of Chrome for Ubuntu and Windows, at least. Is anyone else seeing this in their versions of Chrome? Any idea when this feature was added? I don’t see it in any of the official release notes from Google.

Jan 16 Finding the ID of a Newly Inserted MySQL Row Written by: Curtiss | No Comments »

If you’re anything like me, you generally set up an auto-incrementing integer field in most of your MySQL tables that can be used as the primary key for your records. A lot of times, after inserting new information into the database, you need a way to find out what ID was assigned to your data when you created the new row. With MySQL, it’s really simple to get that information. MySQL offers a function called “LAST_INSERT_ID” that does just that.

As soon as you finish inserting the new row, if you run another SQL query that looks like “SELECT LAST_INSERT_ID()” on your database, the result you get back will be the most recently added auto-increment number in your MySQL installation.

PHP also has a built-in function to perform this operation. Instead of setting up a separate MySQL query, executing it and retrieving the results from it, you can simply use the mysql_insert_id() function, which will automatically perform those steps and simply return the ID number.

Jan 14 Adding and Removing Items in PHP Arrays Written by: Curtiss | 1 Comment »

When working with arrays, you may often find yourself in a position where you need to add a few extra items to the array or remove some of the items you already added. PHP has a few functions that are designed to help you with this process, allowing you to add new elements to the beginning or end of the array or to remove elements from the beginning or end of the array. Continue Reading »

Jan 13 Redesigning The Airplane Boarding Pass Written by: Allen | No Comments »

Tyler Thompson was frustrated with the way that Delta issued boarding passes. Tyler notes, “It was like someone put on a blindfold, drank a fifth of whiskey, spun around 100 times, got kicked in the face by a mule (the person who designed this definitely has a mule living with them inside their house) and then just started puking numbers and letters onto the boarding pass at random (yes, I realize that a human didn’t lay this out, if a human had, judging by the train-wreck of design, they would have surely used papyrus). There was nothing given size or color importance over anything else, it was a mess.”

Tyler decided to start working on a new layout for the Delta boarding pass. You can check out all of his thoughts on how he went through a variety of iterations before arriving at his final design and layout.

A number of designers provided their attempts at new boarding passes for a variety of other airlines.

After nearly 20 years in the business, it’s amazing how many times things are done the way they are done because that’s how they are done. Only until a person like Tyler (and the others) create better ways do we clearly see how much better things can be done. It would take Delta a spot of time to change the way their boarding passes look to make them so much more rich and practical. Will Delta reply to Tyler? Our bags will probably arrive on the luggage carousel first. Helmut Granda takes a look into what it would actually take to change the Delta boarding pass.

I like Yoni De Beule’s Delta revision the best followed by Matt Davey’s Germanwings redesign.

Jan 8 Wordpress: Style Top Level Pages Differently Written by: Curtiss | No Comments »

Recently, I needed to figure out how to apply different styles to the top level pages on a Wordpress site than those applied to child pages. After a little digging, I figured out a fairly easy way to determine which is which.

Granted, I could easily create a custom page template and assign it to each of my top level pages, but that would require anyone creating new pages to recognize whether or not the custom template is supposed to be applied, and that change would have to be made any time a page is moved.

Instead, I wrote some simple functions to check whether or not a page is a child page or not. I then use that function to assign a specific class to the elements that need to be styled differently. Continue Reading »

Jan 6 Styling a Definition List Nicely Written by: Curtiss | No Comments »

Definition lists (dl) can be somewhat of a bear when trying to style them nicely. Because of the fact that the term/definition sets don’t have any kind of wrappers, you can’t successfully and reliably float them to place the terms on the left and the definitions on the right (however, once CSS2 and CSS3 selectors become more widely supported, you should be able to get more control).

However, you can do some nice things with definition lists. This article will show two examples of how definition lists could be used on your site and how to style them nicely. Continue Reading »

Jan 4 WordPress 2.9.1 Released Written by: Allen | No Comments »

Wordpress has announced the release of Wordpress 2.9.1 today. There were a bunch of major fixes and you can read the full list of changes here. Apparently some hosts weren’t able to properly handle the trackbacks and scheduled post changes in the overall 2.9 release.

You should be able to upgrade by selecting the Tools menu on the left side of the admin interface and then selecting Upgrade from the menu. If you have been using the beta release you should upgrade as well.

Jan 2 Choosing Random Items from a MySQL Table Written by: Curtiss | No Comments »

At one time or another, most of us find the need to display a random item from a batch of items on our Web site. Whether you are displaying a random banner or promotional item on your home page, or displaying a random post on your blog, you need to know how to do so effectively and efficiently. This article will show you two ways to do so. Continue Reading »