410-696-4690

E-mail Us

Archive for the ‘Development’ Category

UWEMP - A Web Site to Network Interesting and Inspirational People

Thursday, October 2nd, 2008

We are proud to announce the launch of a project we have been working on over the past couple of months…Uwemp (http://www.uwemp.com).

Jordan Wolfe, founder of Uwemp says, “Uwemp is an open-source, online community focused on building out a network of interesting and inspirational people to share their success stories and accomplishments with an emphasis on ‘The Journey’ and the wisdom and insight people have gained from their experiences. The content can touch on any topic that you find interesting. We are excited about changing lives every day, and what better forum to do it then through inspirational stories that provides others with the necessary support and resources to fulfill their dreams and goals in life.” (more…)

Riddle Brothers Unveil a New Christian / Church Web Site with WordPress Integration

Wednesday, September 3rd, 2008

Josh and I were approached a few weeks ago about the possibility of creating a church Web site that could be easily updated by the pastor and staff members. Having no knowledge of HTML or Web coding whatsoever, it was important that the church’s Web site feature an easy-to-use content management system that could enable church members to edit text and post new photographs on the Web site. The church (Living Hope Grace Brethren Church in Saxton, Pennsylvania) had no budget for a Web site project, so we made the decision to do this project free-of-charge as a gesture of good will towards a non-profit organization.

(more…)

Automate Your Gmail Backups

Wednesday, August 13th, 2008

Yesterday Gmail was down for a short period of time though to some it was an eternity. We recommend Google Apps (with Gmail) to a lot of clients due to the incredible reliability, unbeatable price (free for most purposes) and normally near 100% up-time.  Due to the mayhem that ensued across the blogosphere we decided to run some internal backups so we have a fallback in case Gmail ever explodes or disappears suddenly, which would probably have more adverse affects on the economy than on our petty email threads.

If you use Gmail for your primary email provider I would suggest scheduling your own backup if you do not already do so. Lifehacker.com has a great tutorial to get you started on a Windows machine as well as a Linux-based machine (you can just follow the command line steps to configure and run fetchmail). Better safe than sorry.

As an aside - does anyone know of a PHP-based script that can accomplish this same task? Being a Web developer it would be great to run this from our Web server without installing Cygwin.

Managing and Developing Large Projects

Friday, March 14th, 2008

Large projects are great because it not only gives you a guaranteed income for the next few months, but also because it allows you to test your current management skills and learn a bit more about your strengths and weaknesses. While every project is a learning experience, I have found that larger projects teach you 10 times as much as a basic front-end-only site. In this post I would like to go over a few strategies we used in our most recent project, SocialRoster.com, and how they benefited our schedule and final product. Rather than give you the generic “here is how you should do this” soap-box talk, I will just review some key points that I recommend you try in your next project. (more…)

Tips on Creating a Personal Framework

Monday, January 28th, 2008

Web sites have come a long way even in the past couple of years. I can’t even remember the last time I created a static HTML/CSS site. Now online applications are the next step in the connected world, and as a result it is necessary for developers to learn a back-end language in addition to keeping up with updated front-end languages. One thing that I have found necessary in being an efficient developer is creating a custom library (or framework) that fits your commonly used modules.

(more…)

Five Things I Wish I Knew When Becoming a Web Developer

Tuesday, January 8th, 2008

They say every day is a learning experience. I continually repeat that to myself after every hitch or problem I come across during the development process. There have been times I have held my head in my hands and asked why I ever decided to purchase a computer. However, in the end it always works out and everything is back to normal.

So I would like to go over five of the most important ideas, concepts, or general programming tips I have learned over the years, and how they have helped me along the way.

1.    Browser CSS inconsistencies
Every browser has its own way of causing you pain until you learn how to cater to it’s needs. Anyone that has touched CSS knows that Internet Explorer (though IE7 is an improvement) is a nightmare when it comes to CSS. The list of CSS hacks to make everything display perfectly between browsers is longer than the Bible, so it is tough to learn what they all are and how to use them. After creating enough layouts though I have realized that the style sheets I am creating are cross-browser supported (in Firefox, Safari, and IE at least) without requiring any hacks. This comes from continuous practice, heartache and tears. If I had the knowledge I do now in CSS when I started, I would have had a lot more fun with creating my earliest sites.

2.    Why I would end up preferring PHP over ASP.NET

I learned development in PHP and nose-dived into .NET soon before I took on an Application Developer position at an advertising agency (Planit) in Baltimore. I absolutely loved developing in .NET due to the massive library that is embedded in the language, the Intellisense support, and the tight integration with Windows IIS. This passion soon died when I went solo with Riddle Brothers and had to convince customers that the $20 extra each month for Windows-based hosting was advisable, and that their SQL Server license costs were worth the money over MySQL.  Then I soon started finding out that the different Web hosting companies limited certain functionality of .NET such as .DLL support and COM installations. Even the explanation is confusing!

When I jumped back over to LAMP (Linux, Apache, MySQL and Perl/Python/PHP) I welcomed the ability to just upload a site and be done with it. No more configuring the Web.config file, verifying the IIS version, and hoping the hosting company allowed me to use a custom module. Of course there are problems with LAMP configurations as well (I hate compiling applications on Linux), but I will deal with these problems any day over the .NET horror.

3.    The YUI library
YAHOO released a library some time ago that makes JavaScript development enjoyable. Yes, I used “enjoyable” and “JavaScript” in the same sentence. From animations to Asynchronous request the YUI library has it all. I went through about 5 other frameworks (including Dojo, Scriptaculous, jQuery) which all have their advantages, but I felt the Yahoo library had the most extensive features. Not to mention their developers are continually updating the framework so there are always new functions to play with!

4.    Zend Framework
Great, another PHP frameworks. There are so many PHP frameworks for database, templates and security it is overwhelming. Why do I love the Zend framework? Well, since PHP3 the language parser was created by Zend so the developers obviously know the language. It is a personal preference, but I also feel that the ease of use for the framework makes it the best choice for developers. Just upload the entire system and include whatever module you will be using, and you’re done.

5.    Great programming practices
To some people programming books are dull and boring, but you should follow their suggestions. One of my favorite books is Code Complete: A Practical Handbook of Software Construction. No matter what language you develop it, you must read this book. It covers everything from testing to estimating to commenting. Anything you want to know about general development practice is in this book. I pretty much live by the book’s recommendations - so much that my little brothers says I “comment like a textbook”. Great programming practices not only make it easier for other developers you are working with, but it makes a defined system of how your code is built between the many sites you develop. Consistency is a great thing to have when you are working on more than one project, and good practices will give you the groundwork to create a usable, streamlined system of your own to build over time.

If you are a beginning developer or have not heard of some of the items I mentioned above I suggest taking some time to check them out. These are a few of the many concepts I have learned from over time and now use them with most of my larger projects. Experience is the best way to learn so be sure to try out new systems and ideas whenever you can.

Sending E-mail on GoDaddy

Wednesday, December 19th, 2007

While GoDaddy is a great hosting server (reliable, flexible and secure from what I’ve experienced) they have always been a bit tight with what features are enabled on their servers. I can’t blame them - I’ve experienced two hacked shared servers (non-GoDaddy) in the past two years due to a security exploit that went unnoticed. The one issue I consistently have is sending email from a Web site, most commonly for a contact form. In this post I will go over configuring a module named PHPMailer in order to accomplish sending an e-mail from GoDaddy’s servers.PHP Who?
PHPMailer is an open-source component from CodeWorxTech that is one of the easiest pieces of code I’ve used in a long time. Configuration is short and simple and they provide plenty of documentation on using it. Just searching “PHPMailer” on Google is like an entire API resource due to it’s widespread use.

Setup
I won’t go over how to setup PHPMailer since there is enough out there to get you started. This post is more about configuring it to work with GoDaddy. If you want to know how to install it and include it in your project, look here: http://phpmailer.codeworxtech.com/tutorial.html#2.

GoDaddy’s Relay Host

While GoDaddy has disabled the mail() command for security reasons, they do allow you to connect to their SMTP relay server to send emails. In this configuration it is a very minimal modification as simple as specifying the correct host. Unfortunately it took me 5 hours to find this information before I knew it existed. Here is the code:

// This code assumes you have already include class.phpmailer.php in your project.
// Instantiate new PHPMailer
$mail = new PHPMailer();
// Configuration
$mail->Host = “relay-hosting.secureserver.net”; // GoDaddy’s relay server
$mail->From = “name@your-domain.com”;
$mail->FromName = “John Doe”;
$mail->Subject = “Sample Email From GoDaddy”;
$mail->Body = “Hello, World!”;
$mail->AddAddress(”recipient-email@their-domain.com”, “Recipient Name”);
if (!$mail->Send()) {
$err = “Oops, couldn’t send the email: ” . $mail->ErrorInfo;
} else {
// Email sent successfully
}

Pretty simple, huh? You don’t even need to send your email login information which is good if you are sharing the file with a lot of subcontractors and don’t want to give them access to your account information.

OpenSocial - Another Great Google Invention

Saturday, November 10th, 2007

Who would have thought that sitting in front of your computer would become more social of an activity than visiting your friends on the weekend? With the increasingly popular social Web 2.0 applications, Google has foreseen the need to accomodate developers with their OpenSocial API.Open who?
OpenSocial is essentially an abstract layer that allows developers of Web sites to create a standardized API that other OpenSocial users will be familiar with. Right now if you wanted to develop apps for a site, you would have to use the specific Flickr API, Facebook API, Twitter API, and so on for every site you wanted to use. Now with the OpenSocial API, you will be able to retrieve and update data from all of the sites that support it. Currently there are only a handful as it is a new product, but in time you will be able to draw whatever data you want using the same functions and the same API.

Who is using it?
According to Google’s site: “There are many websites implementing OpenSocial, including Engage.com, Friendster, hi5, Hyves, imeem, LinkedIn, MySpace, Ning, Oracle, orkut, Plaxo, Salesforce.com, Six Apart, Tianji, Viadeo, and XING”. I imagine this is only going to grow exponentially as more sites notice an increase in the number of developers using the API for their modules. There is a debate over whether or not the OpenSocial platform will become more popular than the current Facebook platform. 20bits.com has a great article covering some thoughts on this as well as the weight of success of OpenSocial being based on it’s distribution.

How is it used?
The OpenSocial API is based entirely upon JavaScript and HTML. Using the API you make asynchronous calls to whichever site you would like to retrieve or update data from, and the response is returned to you as an object which you are then able to format and output to the DOM. There are a few API’s that you can incorporate depending on your purpose:

  • People and Friends data API which allowsyou to retrieve and update Friends lists and People-related data.
  • Activities data API for user-based actions (think the Facebook feed or Twitter-esque “what I’m doing now” actions).
  • Persistent data API allowing you to view and update global application data, domain feeds, and other key/value pairs.

Note that even though the API is based on JavaScript and HTML, the site that provides the back-end for the API will obviously be using other languages such as PHP, .NET, Coldfusion, etc.

Will it be a success?

Nobody can know for sure, but its popularity depends on the developing community using it, and third party sites supporting it. My only concern is that as social applications become increasingly more in-depth the ability for the API to support it may be limited. The generalized People/Acitivites/Feeds appears to encompass all current social apps, however down the road who knows what new sites will be doing to make our digital lives more “friendly”. The most comforting aspect however is that Google is developing the API, which means they have some of the best developers working on it. Plus I doubt Google is going to be going away any time soon.

Quick Tip: PHP5 Autoload Function

Monday, October 22nd, 2007

There are a lot of new features in PHP5 that are somewhat neglected and unpopular. The __autoload() function is one of these features that can be useful to any object-oriented developer.

According to php.net’s site:

Many developers writing object-oriented applications create one PHP source file per-class definition. One of the biggest annoyances is having to write a long list of needed includes at the beginning of each script (one for each class).

Utilizing the __autoload() function is easy: simply define the function somewhere in your script (I commonly use a configuration file that includes this function and any other site-wide settings). Here is a sample function:

function __autoload($className) {
  require_once $className . ‘.php’;
}

…and that’s it! Now instead of including a list of your classes at the top of the page, you can simply create a new class object and it will load the appropriate file.

$foo = new MyClass();

Assuming you have named the class file “MyClass.php” the autoload function will intervene and load in the file automatically.You can be creative with the function and even check if the file exists or other error checking methods (however you cannot use a try-catch block in the autoload function).

What You Should Know About SEO and SEO Companies

Monday, October 1st, 2007

If you are considering or are currently having a Web site developed for you, there is a good chance you may have come across the term SEO (search engine optimization). If not, Wikipedia has a very in depth article with everything you need to know and more. In basic terms this means using specific methods in order to make your site appear higher in the list of sites when you search on Google, Yahoo or any other popular search engine. This includes the structure of your site, the coding of the pages, and even file and page names.  There are many companies that specialize in assisting you to create a site that is highly visible to search engines, and drive more traffic to your site. However, if you are planning on contracting the services of such a company please read on for some insight into why this may be a bad idea.Assumed Solutions
The first thing a client should know about search engine optimization is that nobody is 100% sure how sites are indexed. Rankings used to be determined solely upon keywords and descriptive meta-tags on your pages, however over time these were abused by spammers and now they do not have the pull that they used to. Now, the methods and algorithms change consistently and thus a site that had a high rank last week may not be doing as well this week. Many SEO companies will work over a contracted period of time (months to years) on researching newer methods and determining if you page needs updating. That is, if you have hired a reliable company. Many clients are not up to speed with SEO and thus have no idea or understand of what is happening beneath the curtains. In a sense you are trusting this company is doing the work you are paying for, but have nothing to prove that they are helping since you are most likely not a technical professional.

No Guarantees
Since nobody is sure of the exact methods used to determine page ranks, many SEO companies will have a “No Guarantee” clause in their contract. This is like saying “we aren’t confident in our quality of work”. Can you imagine purchasing a product and not being able to return it even if it never worked? It is like gambling except the only two possible results are breaking even and losing it all. I will stick to blackjack.

Advertising vs. Page Rank
So you contract an SEO company that either develops your Web site, or works with another development company you have selected. Each month this company works on updating your site, trying new methods, and seeing if there are any new ways to increase your site rank. New links are posted referring to your site, blogs comments and articles are written, etc. Then you receive the bill for $3,000 each month for their services. What if you had used that $3,000 and bought advertising space on a site, sponsored an event, or even placed an ad in an offline publication? After a year this could total up to be over $20,000 in “optimizing” your Web site! Of course this is an example, as there are many SEO companies that charge far less although I cannot speak for their quality of service.

Disregard for Human Interaction
SEO companies can become very focused on developing a site and catering specifically for search engines. However they can also lose focus of your primary goal: customers and profits. If your site is #1 on all search engines but when a user visits it cannot navigate easily and does not feel that overall sense of trust in your site, then you have wasted your resources on having a highly searchable but unusable site. Remember that your developer should focus on your goals not on theirs. There should be an understanding of what you wish to achieve, and there should be no sacrifice just to bump your site up a listing or two.

Site-By-Site Basis

If you are a smaller company that does a majority of it’s business offline, and your site is used specifically to drive traffic to your store, I do not believe hiring a professional SEO company is worth your time, effort, and money. If you have hired a good Web developer they should already be using the necessary tactics in order to make your site visible to search engines and online visitors. Remember that most developers in an SEO company are just like any other Web developer, only they cater to a specific service and will market themselves accordingly. Why pay the extra money for a service that is already included in your Web development package?

I am by no means saying that all SEO companies are a sham and should not be used. I am merely pointing out that they may not be necessary if you are already receiving the same services with your current or future developer. As with any investment of time or money, do your research and gain a basic understanding of what the underlying work includes so that you are not persuaded into purchasing an unnecessary product or service.