Create a custom WordPress theme: Step 1


There are many different WordPress themes available, but sometimes you just cannot find the one that will fit your needs. When that happens, it is time to create your very own custom theme. I will show you in a series of six steps how to do just that.

Step 1.

First of all, we should start off knowing how themes work. The theme works off of a series of template files. However, only two files are needed to get you going: style.css and index.php, both of which will be discussed in this series.

There are other template files used, too:

  • rtl.css
  • comments.php
  • front-page.php
  • home.php
  • single.php
  • single-<post-type>.php
  • page.php
  • category.php
  • tag.php
  • taxonomy.php
  • author.php
  • date.php
  • archive.php
  • search.php
  • attachment.php
  • image.php
  • 404.php

Before you begin, you should know what you want your theme foundation will look like. The foundation usually includes a header, main content, sidebar and footer.

In order to start creating, you need to use a text editor like Notepad, eMacs or TextMate. The first file I usually create is the index.html file, which would look something like this:

<html>

<head>

<title>Your Custom Theme</title>

</head>

<body>

<div id=”wrapper”>

<div id=”header”>

header

</div>

 

<div id=”content”>

 

<div id=”main”>

main

</div>

 

<div id=”sidebar”>

sidebar

</div>

</div>

 

<div id=”footer”>

footer

</div>

</div>

</body>

</html>

This should now be saved as index.html

As you can see, there are several div ids that will be connected later when we create the template files that will correspond to each.

So, this is the very first step in creating your own custom theme for WordPress. Stay tuned for step 2.


Posted on January 15, 2015 and filed under Custom Wordpress Themes.

The five qualities of a good project manager


P is for Project

There are certain skills inherent to project management excellence. Of course, real-world experience and outcomes are one measure of a successful project manager. More often than not, small businesses and start-ups “anoint” a PM to manage their projects. If this sounds familiar, I would like to offer up the following five traits to look for when assigning a project manager. It might seem straightforward to reach out to the person closest to the operational side of your project. On the other hand, it might make even more sense to look more subjectively at the people within your team and seek out a PM with many, if not all of, the following qualities:

  • Prepared: Who shows up with their research done, ready to ask questions, prepared to contribute?
  • Precise: Which member of your team shows the most attention to detail?
  • Proactive: Who is the most assertive member of your team? Who communicates well?
  • Persevere : PMs clearly need to be persistent and demonstrate follow-through, with an innate ability to seek alternate solutions to complex problems.
  • Perpetual Learner: One of the most overlooked qualities, an avid learner will actively strive to grow and develop their knowledge, skills and abilities.

Without overlooking experience and a proven track record of success, it is always wise to consider less tangible, more personality driven factors when assigning a member of your team to the role of PM. By that same token, it is naïve to assume that the person who is closest to the project – or the team member who seems most willing – should be handed this strategic position. Over the next five blog posts, I will examine each distinct quality, discuss why each one is important, and explore why the obvious choice for PM is often not the best choice. P is not only for Project, P is for Person! My next blog post will discuss the unique planning and preparation skills required to set the framework for project success.


Posted on January 15, 2015 and filed under 5 Qualities of a Good PM.

Using Microsoft’s Entity Framework: Part 1 of 6

Getting Started

In this first installment of the Using Microsoft's Entity Framework series, we will start with the basics.

Entity framework (EF) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. EF’s main goal is to help developers focus on the business domain, rather than writing database plumbing code (e.g connections, commands, etc, data tables and datasets).

For years, I have worked with classic ADO.NET and have created my own utility libraries to push and pull data from the database. Although this worked flawlessly, writing repetitive data access code got old and boring. EF is also Microsoft’s preferred data access layer with projects moving forward. ADO.NET and LINQ to SQL are not going away anytime soon (there are still a lot of applications that uses these), but both technologies will no longer receive or have little investments from Microsoft.

So, let’s dive in and get started on how to start using entity framework on a project.  The latest version of EF (as of this writing) is 6.01.

Install Nuget via Visual Studio Extension Manager

If you have the Nuget package manager already installed in Visual Studio, skip this step otherwise referred to Nuget Package Manager installation instructions.

Installing EF via Nuget

The fastest and easiest way to install entity framework is to download and install it from Nuget. On your project, you may simply right click on References and click on Manage Nuget Packages.  Alternatively, you may also use the Package Manager console (Tools -> Library Package Manager -> Package Manager console) to run the EF powershell installation command.  To get more help on how to run the package manager console, see Nuget Package Manager Console PowerShell Reference

One key thing to remember is that if your application is targeting to run on .NET 4.0, then the default EF assembly version will be 4.4.  Applications running on .NET 4.5 and above will use the default assembly version 5.0.

Visual Studio.NET FrameworkDefault EF versionEF after NUGET

VS 20104.04.0

VS 20124.04.46.0

VS 20124.55.06.0

 

Create A Model Of An Existing Database (Database First Approach)

After EF is installed, some entries will be added on the web.config/app.config file related to Entity Framework.  Now that EF is installed, let’s see how we can add a model of an existing database.  Note that there is also a Code-First approach where you typically build the database from scratch in C#, but for simplicity’s sake, let’s just start with an existing database.

1.  Right click on your project and click on Add New Item

2.   Select the ADO.NET Entity Data Model option from the templates list

3.   Follow the steps on the Entity Data Model Wizard and specify the connection string to your database

4.  Select all database objects you want to include in your model


Posted on January 15, 2015 and filed under Using Entity Framework.

Domestic IT Outsourcing – FAQs


In this first installment of the “Domestic IT Outsourcing” series, we will examine what outsourced IT consulting is, why it’s a valuable resource for companies with IT needs, where to find IT consulting firms, and how they solve temporary IT needs.

What is outsourced IT consulting?

IT consulting is the practice of advising companies on the best use of technology to enhance, automate, or streamline their business operations and/or the development of computer software to meet these demands. When IT consulting is outsourced, the work involved is assigned to a freelance individual or an IT consulting firm, like Extra Nerds. Such entities exist worldwide, but it’s often expensive and inefficient to work with companies in other countries due to differences in time zones, language, culture, currency, or any number of other factors. Domestic IT consulting is the practice of limiting these business relationships to companies and individuals based in the same country. Though this is often more expensive in terms of hourly rates, it’s often less expensive when factoring in the efficiency gains and legal protections. It’s for this reason that many U.S.-based companies are now looking to outsource their IT work to U.S.-based IT consulting firms. In addition, many IT consulting firms based on rural U.S. towns, like Extra Nerds, offer the same quality of service as metropolitan-based IT consulting firms at a fraction of the cost due to the lower cost of living. There is a significant growth in the prevalence and use of rural outsourced IT consulting firms, especially in small college towns across the U.S. where the income level is low compared to the education level. These low-to-medium income areas that are dense with college-educated tech professionals are ideal places to contract with IT consulting freelancers and  firms.

Why is outsourced IT consulting a valuable resource?

Companies with overburdened, understaffed, or ill-equipped IT professionals often have a need to hire freelance software developers to meet their goals. Most IT departments are overburdened with new projects tasked to them by other departments or coming down from the CEO. New software must be created on an ongoing basis in order to remain efficient, take advantage of market opportunities, and integrate with distinct and evolving systems. On top of this, IT departments must continue to support and improve existing software applications. It’s not unusual for an IT department to have a backlog of requested software development, and many of those projects cannot be started until the right staff becomes available to work on the project. Finally, the skills required for work on the project may not be present in-house. If no one in the IT department has experience integrating with Authorize.net, for example, then IT departments must either hire a new developer with experience in online payment systems… or they can outsource this temporary work to a developer with specific experience in the skill set required. The latter is often much cheaper and results in a much higher quality end product in less time.

How do outsourced IT consulting firms meet the needs of companies?

The process of completing a project with an outsourced IT consulting firm is similar to most other contract relationships but with a few important differences. One important difference is the term of the contract. Typically, a contract position for another type of job is based on a number of months (eg. 12-month contract). In software development, contracts are usually framed by a project… a discrete set of requirements (definition of scope) clearly detailing what the final product is expected to be, when it will be delivered, and the price to be paid for the completed project. Other types of IT consulting contracts are those that provide IT consulting services at an hourly rate for support and ongoing maintenance. These are typically open-ended, and the IT consulting firm usually bills their client by the hour or fraction of an hour, sending invoices on a bi-weekly or monthly basis. Another important difference in IT consulting firm contracts is that they usually accompany a very detailed non-disclosure agreement. This is necessary since the consultant will often have access to sensitive company information. Once a contract and non-disclosure agreement are signed, the consulting firm begins working on the project, which is usually broken up into milestones, and provides periodic updates/demos to the client demonstrating their progress and perhaps invoicing for completed work along the way. Once the final product is delivered, the consulting firm can remain available for future updates and/or support as needed. Companies should require of the consultant to provide complete backup of the source code involved as well as documentation on how to use the new software developed. Some companies may be able to take over the support and future development of the software, in which case the consultant is no longer required.

Where can my company find and outsource work to an IT consulting firm?

IT consulting firms are all over. The trick is finding a good one. If you’re new to outsourcing IT work you might start with online freelance marketplaces such as Elance.com, oDesk.com, Freelancer.com, and Guru.com. These services take care of a lot of the headaches involved in outsourcing IT work, such as handling the invoicing and payment as a third party, providing features to communicate with the the consultant, resolving client/contractor disputes, handling currency exchanges, and so on. They provide a pool of IT consultants, each with their own rating based on client reviews. Of course, the traditional methods of searching for IT consultants are also available. Googling “IT consultant Athens OH,” for example, will provide some useful results. And, of course, word-of-mouth recommendations are always a great way to find out about IT consultants recommended by colleagues. Asking contacts in other companies who they use for outsourced IT work could be a great way to find out about IT consultants you didn’t know existed.

Stay tuned for part 2 of the “Domestic IT Consulting” series. In the next installment, we’re going to discuss “Domestic and overseas IT outsourcing,” which will examine the differences between outsourcing IT work to U.S.-based IT firms and outsourcing to common foreign countries, such as India and the United Kingdom.



Posted on January 15, 2015 and filed under Domestic IT Outsourcing.

Common third-party ASP.NET web controls: Grid


This post will review some of the most popular form controls used in ASP.NET development – Grid control.

The biggest problem web developers and designers must tackle is how to display as much data as possible to the user without cluttering up the screen or ruining the design flow. Along with this age-old dilemma, we must now also take into consideration responsive mobile-ready layouts. Today, web users are more demanding than ever; they want eye-catching designs, easy flowing form entry and above all performance. It seems impossible that a user can expect to retrieve a set of 1 million data records in a matter of milliseconds. But, indeed, this is the expectation that we strive to achieve.

Previously, developers could easily display their data using the goo-old ASP.NET GridView control, which did provide us with a good template and the capability to redesign, although it meant coding in much of the navigation like paging, sorting, etc. As time moved on, as it always does, things change. For the web-user experience, things have changed drastically. Grid controls need to be first and foremost fast and easy to navigate. Other features that are popular are grouping, filtering, nested data and ability to add/edit/delete.

Compared to several years ago, we now have so many options. This is far from a complete list, as there are many, many controls available. I have had the opportunity to work with each of these :

1. JQGrid – The Frugal Choice

jqgrid-300x99.jpg

Everyone loves JQuery, and rightfully so, as it helps us achieve rapid application development by not having to recreate the wheel. The JQGrid control is no exception. It is the most popular plugin used for Grid controls. The control is an Ajax-enabled JavaScript control. Since the grid is a client-side solution loading data dynamically through Ajax callbacks, it can be integrated with any server-side technology, including PHP, ASP, Java Servlets, JSP, ColdFusion. JQGrid is licensed under the most permissive and free MIT license or GPL. The JQGrid has great community support. Do a quick search on stackoverflow, and you will find your answer. Because it is based on Jquery, it will pick up your Jquery theme, so it is easy to update your color scheme. Try it yourself: www.trirand.com/blog/?page_id=

2. DevExpress – Similar to GridView

For those who are comfortable with the ASP.NET GridView syntax, the DevExpress Grid will make them feel right at home. This control includes all of the normal bells and whistles and also a built-in printing engine for instant ad-hoc reporting. DevExpress Themes implementation is based on Microsoft’s themes and skins technology. There are many rebuilt themes to choose from, as well as the ability to customize. I felt that making theme customizations was a bit too involved and could be made simpler. Overall, it’s a good product with many features. Demos available here: https://demos.devexpress.com/ASPxGridViewDemos/Default.aspx

3. Telerik – The All-in-One

Telerik offers products ala carte; however it is a better value to purchase the DevCraft bundle, which takes care of many of your needs and also has extra goodies for developers like JustMock, JustTrace. The ASP.NET AJAX RadControls have been around awhile and are used widely, therefore the support and community has a lot to offer. The Grid control boasts all of the required functionality plus a slick look and feel. My experience with support has been very responsive.   Check it out: http://demos.telerik.com/aspnet-ajax/grid/examples/overview/defaultcs.aspx

Kendo UI – HTML5 / Javascript

Kendo UI has paired-up with Telerik to offer .NET MVC, PHP, and JSP wrappers for their web controls along with the pure JavaScript implementations. This makes it a win-win for all developers and needs. With Kendo UI, you can target desktop and mobile devices using the cross-platform power of modern HTML5, CSS3 and JavaScript, while never actually hand-coding HTML/JS. Performance is super fast and flexible. Kendo theming is similar to JQuery, where you can chose pre-selected themes or roll your own, and they’re easily tweaked. Since the server wrappers are fairly new, the support at times has difficulty keeping up with demand but is responsive with great examples. Worth checking out: http://www.kendoui.com/web.aspx

Selecting the appropriate plug-in or product can mean a real savings in development time.

As technology moves forward so must we as developers!


Posted on January 14, 2015 and filed under Other.

WebForms vs. MVC?


As an ASP.NET developer, how do you know whether to pick ASP.NET WebForms over MVC  (Model, Controller, View) when developing new web projects?  I tend to follow these 5 simple rules to help me determine which platform suits me best.

Are you working with a team?
You are only as strong as the weakest link.  The skill level of each team member is an important factor in choosing what development platform to use.  MVC has a steep learning curve involved (Yes! I had to go through these grueling stages as well). And if the majority of your team isn’t comfortable working with MVC, it is probably smarter to choose WebForms.

Data Intensive vs. Rich Client Project
If the web project involves a lot of data, data grids and filtering/sorting/grouping options and maintenance pages, then WebForms is the way to go.  If the web project requires a lot of client-side manipulation and ultimate control over the rendered HTML, I would certainly choose MVC.  Implementing Ajax, JSON and Jquery is a breeze in MVC.

Rapid Application Development
If the project has a tight budget and/or deadline, WebForms has a slight advantage over MVC.  ASP.NET Webforms was created with reusability in mind. The familiar drag and drop controls are very helpful in rapidly creating web pages in a few clicks.  However, you lose control over the rendered HTML and more importantly there is a performance hit with the added VIEWSTATE.

Ultimate control over HTML
One of the main advantages to using MVC over WebForms is complete control over the rendered HTML.  Although you tend to type more when creating the web elements manually, you have complete control on styles, properties, etc.  With WebForms, the HTML is automatically generated for you.  This even gets more complicated when using third-party controls, since they have their own different implementation and rendering.  Although it is possible to create HTML elements manually using repeater controls or data item templates, MVC has a cleaner way of doing so.

Testability
MVC was created with testability in mind.  The MVC pattern has clean separation of concerns and fits well with Test Driven Development.  Although possible, it’s really hard to implement automated testing in WebForms with its coupled behavior and event-based model.

Good luck, and happy coding!


Posted on January 14, 2015 and filed under Other.

Can a WordPress theme be customized?


A common scenario I encounter in my work is when a client picks out WordPress theme, but it’s not exactly what he or she wants. The first question clients have is, “Can it be customized?”

The short answer is, yes, WordPress themes can be customized. How it’s done depends on the clients’ comfort level with coding.

In WordPress, it is the theme that determines how the website will look and behave.  It is not the same as the content that is added to the website after the theme is installed and configured with your customizations.

Within the theme exist several files. The two main files are called index.php and style.css. The index file determines what is displayed and where; and the style.css file determines the colors, sizes and shapes of the theme. Without these two files, the theme would cease to exist. You will also find several other files in the theme folder.

To customize your theme, you will need to access the files and edit the code found on the style sheet and header and index files. At this point, you may or may not feel comfortable editing code. If you do not feel comfortable, contact an expert in WordPress to make the edits for you (Like me. I’m a WordPress Nerd, afterall!).  Be sure the person speaks your native language fluently or you will surely have a very difficult time trying to get them to understand exactly what you want. Websites are designed with pixel perfection. Your WordPress developer should be able to speak your language with that same amount of clarity.

After you have made or had someone make your customizations, you are ready to add content to your website and go live!


Posted on January 14, 2015 and filed under Other.

TeamworkPM – Affordable, comprehensive and the simplest solution


TeamworkPM (TWPM) is one of the most intuitive and useful project management tools on the market today. TWPM is a web-based, comprehensive project management solution. I use it nearly every day and decided to share my enthusiasm with the world. It’s a sentiment I share with tens of thousands of users who login and use the program to manage their projects.

Development on TeamworkPM started back in 2007. In addition to providing out-of-the-box applications, it has a developer API that allows third-party developers to more easily  integrate TeamworkPM with existing software.

One of the most appealing things about TWPM can be found in its versatility. The Extra Nerds team, and especially the Project Nerd (me!), wholly rely on TWPM internally for business management and communication, and externally for managing diverse and multi-layered client development projects. TWPM is simple to learn, adapts well to all types of business requirements, and is accessible because of its intuitive and adaptive design. Most importantly, the development team behind TWPM consistently fine-tunes the form and function, based on user feedback.

A key feature of TWPM is that it’s web-based, making it simple for project managers to access their active projects online, in real time. Even better, there is a downloadable application for both Apple and Droid users, making it simple to review and update projects anytime, and anywhere! Combine that level of accessibility with a budget conscious, tiered pricing model and excellent user support – and you have a project management solution that really works. TWPM includes a basic Customer Relationship Management (CRM) tool rounding out its excellent suite of features for small and mid-size business management. If you are cost conscious and looking for a scalable, affordable, and well-supported cloud-based PM tool, you might want to try TeamworkPM.

It’s fair to assume that most business owners prefer to spend time successfully completing lucrative projects, not searching for the perfect PM tool. Sometimes the simplest solution is the best solution. TWPM helps you organize your projects, leaving you with the time to do the most important things in your business and your life.


Posted on January 14, 2015 and filed under Other.

What is the best way to price a project?


Like any good IT company, we are faced with the question of how to fairly price project requests that come to us. We want to provide a good value to the customer, yet be able to pay our employees and keep the business viable. So, how do you price projects that will be of value to the company AND provide value to the client?

To answer that question, one needs to understand the cost of completing a project. Like most manufacturing projects, IT jobs comprise direct cost and overhead costs. In this case, the direct cost is for the developer. Overhead costs include the sales department, project management, any brick-and-mortar costs, etc.

Direct costs are usually determined by the developer. Finding a good developer who works at a competitive rate is a rarity and is something every company is working to find more of. Read Sid’s blog post here for a great strategy on finding reliable and cost-effective talent. If you are able to find a good developer who works at a good rate, then your company can deliver even more value to your clients.

Overhead cost may fluctuate somewhat, but every company needs to understand what their overhead costs are going to be. Once you understand your overhead cost, you need to be able to project what your sales will be. Then, you can split your overhead across all of your sales.

Our deep understanding of these two key elements of project pricing results in proposals that benefit everyone. We work with our developers to come up with an estimate of their direct cost; we apply the overhead cost; the total is what we submit to our client. It’s a recipe for success that Extra Nerds has consistently provided. It results in a satisfied client, a happy developer and a healthy IT firm.

This is the ideal win-win-win.


Posted on January 14, 2015 and filed under Other.

Looking for affordable talent? Consider sourcing from rural U.S.


Outsourcing your IT projects to a third party can be challenging, but the benefits can far outweigh the risks if you know what you’re getting into and are prepared to deal with some of the common pitfalls.

Most companies are familiar with the concept of outsourcing. A basic unit of work (a project) requires completion, and the best option for completing that project is to hire an outside contractor. In some cases, a company doesn’t have the necessary resources or skill set to complete the project in-house, or it’s more affordable to assign the project to an outside agency. It’s for these reasons that companies seeking help with IT projects typically look to outsource projects to India, where labor is cheap and skilled IT professionals are abundant. Unfortunately, many companies learn the hard way that you get what you pay for, and dealing with cheap IT talent in foreign countries can be fraught with a slew of management headaches, such as coordinating efforts in differing time zones, overcoming language barriers, and ensuring legal and tax requirements are met.

Rural sourcing in the U.S. aims to retain the benefits of providing businesses with outsourced, skilled IT professionals at an affordable price while also eliminating the woes of dealing with IT professionals in foreign countries. Highly skilled IT professions located within the U.S. in rural areas are available if you know where and how to look, and they charge hourly rates that are typically on par with workers in foreign countries. These rural areas are often located near college towns and thus consist of highly skilled college graduates who are experienced with remote IT work and charge a low hourly rate. Their rates are low because of the low cost of living in their rural areas, yet their abilities are on par with IT professionals in larger cities because of their quality university training.

In many ways, rurally sourced IT professions are a better choice over city-dwelling IT professionals because of their vast experience working remotely as a necessity of their location. Rural IT professionals rely heavily on good communications with their clients and are thus very responsive to emails and phone calls; they are able to easily utilize other communication technologies such Skype, Google Hangouts, and screen sharing tools such as Join.Me. This provides companies with an opportunity to employ highly available, highly skilled IT professionals who are native English speakers, registered with their state governments, able to provide necessary tax forms, and work in the same time zone as the businesses that employ them. Further, organizations exist that facilitate the search for these contracted professionals and even facilitate communications, invoicing and payments.

Businesses interested in rural U.S.-based sourcing should have a look at websites like ExtraNerds.comElance.com, and Freelancer.com. These services provide skilled IT professionals and simplify the process of outsourcing projects to U.S.-based IT professionals. Companies should be sure to have their project scope documented well and in as much detail as possible. This is true not just for rurally sourced projects but for any project being outsourced to a third party. Doing so will eliminate or at least minimize the amount of confusion between the business and the contractor over what the specific deliverables are. These finer points are what can kill a project, and it’s yet another reason why U.S.-based companies would do well to contract with native English speakers. When outsourcing any project, clear communications on project goals is vital. To eliminate as many obstacles as possible and maximize the likelihood of a successful project outcome, sourcing in the rural U.S. is a highly recommended option for many businesses.


Posted on January 14, 2015 and filed under Other.