Why Use Google Chrome?
Google Chrome is the web browser introduced by Google. Firefox is steadily dominating near 50% of the web browsers for over a year, and Internet Explorer (versions 6, 7 and 8) all fall a bit behind FireFox.
The Chrome Browser is picking up at about 10% of all web users -- as it was at only 3% a year ago. The reason for such success, I believes, is due to the simplicity and light browsing.
If you use FireFox for web development, I suggest you stay with it. There aren't good enough replacement for plugins such as FireBug, Web Developer ToolBar, and the Ad Blocking. However some of Google Chromes built in tools are decent, you can see them by pressing CTRL+SHIFT+I on a PC, or simply go to the "Page" icon on the right > Developer > Developer Tools.
com/wp-content/uploads/2010/04/chrome-dev-tools.jpg">
The best reason to switch to Chrome, in my opinion, is speed. Although Firefox is a fantastic browser, the load-up and page load times pale in comparison to Google Chrome. Chrome is extremely light-weight, and has a very pretty GUI.
I've been using Chrome lately for Facebook, Checking email, and researching sites. For web development I stick to FireFox. I believe in the next year we will see Chrome have all the plugins which make FireFox so great yet with a faster, more crash-resistant browser.
It takes a little while to get used to switching browers, or forming the habit of using two different ones. But I highly suggest you try out Chrome for a few weeks and see what you think!
7 Cool JQuery Form Plugins
Here is a collection of several great Jquery Form Plugins.. They are quite easy to install and spice your site up to life, give it some flavor.
JQuery Checkbox Plugin
This JQuery plugin is pretty cool, it allows a Light-Switch type of button to toggle buttons.
JQuery Fancy Form
This form effect gives checkboxes different styles, it also formats Radio buttons.
Bassistance Autocomplete
This is a nice JQuery AJAX Autocomplete which can be useful for PHP/MySQL.

JQuery Image Dropdown
Every wanted images in your drop down menus? Now you can -- this ought to spice up your form!

JQuery Nice Forms
This formats your forms and makes the inputs pretty
JQTransform
Like the Nice Forms plugin this one also styles your forms.

BaseCamp Alternative | ActiveCollab Alternative
Looking for a BaseCamp alternative? BaseCamp is a popular project management solution yet has a fairly hefty price tag after using it a few months. This is known as Saas (Software as a Service), meaning you never have a license.
There is also, ActiveCollab which is a Project Management system that you can purchase for your web-host which gives you the ability to collaborate with clients and empoyees on projects, much like freelancerKit. If you are looking for an affordable alternative to both ActiveCollab and BaseCamp, check out freelancerKit.
A great alternative to Basecamp is freelancerKit -- The software quality of freelancerKit is amazing with its sexy Graphical User Interface (GUI), and smooth operation flow. Cost savings pays off instantly, you don't need to keep coming back to upgrade your clients or increase users -- everything is run on yoursite, and freelancerKit can be easily branded to look as if you made it yourself!
Compare Yourself:
- freelancerKit BaseCamp Alternative
- ActiveCollab
- BaseCampHQ



With all of the same features as the others but for a lower cost..
Here are some of the freelancerKit aka BaseCamp Alternative and ActiveCollab Alternative features:
- Users: Master Admin, Admin, Employee, Client
- Projects: Project Tracking, Status/Progress/Priority
- Collaboration on Projects
- User Management
- File Management
- Newsletter Sender
- Mail Sender
- Note/Document Management
- Attach Files/Notes to Projects
- Invoicing/Quotes
- Lots of others.
There is also a freelancerKit affiliate program if you blog.
BaseCamp is no longer the only PM Solution. There are many alternatives to Basecamp, but we feel freelancerKit fits the bill with quality and price, ready to check out the BaseCamp Alternative?
AJAX in PHP for fresh $_GET’s
If you are having trouble showing fresh content from PHP/MySQL in AJAX, try this out!
First, you must obviously include JQuery lib.
Then, using Jquery set an AJAX load in your View or Template:
<script type="text/javascript"> <span>(document).ready(function(</span>) { <span> $("#element").load("stuff.</span>php?idea"); }); </script> <div id="element"></div>
Then get the php file you are loading, in this case its stuff.php, and create a get request for the value passed in the URL, which is 'idea'.
if (isset($_GET['idea'])) { echo 'Ajax is working'; // // All your functions in here // exit; // Make sure to exit so nothing else processes. }
Validation: Problem Solving, 90% of the Work
When you program you'll quickly learn how fun it is, but the biggest lesson anyone will learn is the importance of validation. A good programmer is someone that foresees events that could possibly take place and cause an issue -- that doesn't mean they'll find every issue, but many. You have to play with what you create to invent possibilities of bugs seeping out so they won't happen.
Alternatively, there are design patterns that give you a nice clue how to handle this, but that's a little more advanced for someone less than 4 years in I think. There are also options of using application frameworks that will make this easier (like Symfony, CodeIgniter, and other MVC frameworks). At this juncture I prefer doing it by my own objects and functions rather than learning how a separate framework functions, though they are all fairly similar.
90% of Work in programming is validation in my opinion. It's easy to write procedural code, difficult to thoughtfully break it down into Object Oriented code, either way there must be validation. For example an unvalidated field that processes a query could be bad news if your MySQL strings don't escape correctly and someone intentionally or unintentionally breaks the database query and destroys a table, possibly the entire database. Safe queries wherever data is stored is one of the most important things, also checking for digits, regular expressions, and such are required in order to get an application run reliably and track issues fast. Even one field that processes a query incorrectly can disable an entire application, and running a complete system update is more work than having it taken care of in the first place.
I made a simple relational table to assign users to projects with an ID, project_id, and user_id.
Instead of breaking content into an array from one row like I previously had using an explode by ',', I went with new inserts per user/project assignment -- and must avoid duplicates since it's an insert.
Problems always arise with dirty strings, invalid strings, and duplicate content. I had to remove any potential to a duplicate so I figured these steps:
1. The creation only happens one time, so this can only apply to editing.
2. This will apply to the Edit section, so I have to pass a hidden variable to store the project ID, so I can chain it to this project ID. (Note: Not the same as project_id).
3. Since mysql_insert_id() would not work because this is an UPDATE not an INSERT I had to use the hidden variable I posted to find a relationship between the current project and the existing relational table. There is also no mysql_update_id() feature, which I wish there was!
// Process more users if (isset($_POST['assign_users'])) { foreach ($_POST['assign_users'] as $add_user) { // First Check for Duplicate Assignments $check_duplicates = mysql_query(" SELECT * FROM project_users WHERE `project_id`='$selectedProject' AND `user_id`='$add_user'"); // Count Total Matches $count = mysql_num_rows($check_duplicates); // If No Duplicates, Proceed. if ($count == 0) { $add_user = clean($add_user); mysql_query("INSERT INTO project_users SET `project_id`='$selectedProject', `user_id`='$add_user'"); } } }
As you can see before the final query which loops (the one most tabbed over), a lot of validation goes into it. This is very minor considering the outside functions. It's easy to write a block of code, but if it's not protected correctly there is nothing good about it.




