Database Modeling

ERD

This is an example of an entity relationship diagram for a new mid-size BPM application. The BPM software comes with its own proprietary database; however, an additional database was needed to store certain application data, separate from BPM data. This ERD was created in October 2007 using Microsoft Visio.

Entity Relationship Diagram Example (PDF)


Data Dictionary

Data Dictionary

The data dictionary is a comprehensive inventory of all data elements used by the application. The Data Dictionary includes an alphabetical listing of all data elements and their respective properties (editable, required, data type, data length, data format, UI label, UI control type, default value, sample value, database table, database field, conditions, etc.).

Data Dictionary Example (XLS)


Adobe Flex Application Examples

One of the premier technologies for creating rich internet applications (RIAs) is Adobe Flex. The technology was initially developed by Macromedia in 2004 and rolled out by Adobe in 2005 as the answer to designers and developers who were ready to take Flash to the next level and create rich, data-heavy, user-centered applications. Here’s a list of some great Flex applications on the market today. Of the list below, I worked on the WeightWatchers Plan Manager weight management application and McGraw-Hill Primis custom book builder application.

Sumo Paint

Sumo Paint

Sumo Paint is a powerful, free, online image editor. It includes an amazingly complete set of editing tools and effects that will be familiar to Photoshop users.

Sprout Builder

Sprout Builder

Sprout provides users a well-designed, uncluttered workspace and intuitive toolset to create, publish, and manage interactive rich media widgets.  


SEO Best Practices

Here’s a basic checklist of SEO best practices every site should be employing. It’s 2009 and there’s no excuse for not having a site optimized for the major search engines (namely, Google and Yahoo!).

1. URL Structure
All URLs should follow the naming convention: http://www.[domain].com/[category]/[page-name].com. The general rule is that the URL structure should not go too deep (i.e., try to avoid going more than 4 levels deep on the URL structure on the majority of pages). Also, the terms used in the URL structure should be logical from a navigation perspective, but should also take keywords into account. There’s a certain finesse to achieving this balance. The best way to achieve this is to make a list of all URLs for the site in a page inventory spreadsheet, and then examine the list for structure, consistency, and keywords. Additionally, always use hyphens to separate each word (do not use underscores or other notation). Special characters such as apostrophes should not be part of the URL. This is the responsibility of the Information Architect.

2. Browser Window Title
The browser window title should also be managed in page inventory spreadsheet. Consistency and the right keywords is key. This is the responsibility of the Information Architect.

3. Meta Description and Meta Keywords
The tags for meta description and meta keywords (visible only to crawlers and not to users) should be carefully crafted to include keywords. Read more about meta elements before you begin writing these for each HTML page. This is the responsibility of the Copy Writer.

4. Breadcrumbs
Breadcrumbs are excellent from a usability perspective and from an SEO perspective. Make sure breadcrumbs are implemented in a consistent manner across all pages of your site, otherwise you will not reap either the usability benefits or SEO benefits.  Here’s an example of a well-structured breadcrumb: Home > Furniture > Tables > Coffee Table
This is the responsibility of the Information Architect.

5. H1, H2, H3
The heading tags for a page — particularly the H1 tag — should be optimized with the correct keywords. When determining the best copy for the H1, H2, and H3 for a page, think about the types of phrases a user might enter in Google or Yahoo to arrive at that particular page on your site. This is the responsibility of the Copy Writer.

6. Image ALT Tags
Every image that appears on HTML pages should have an ALT tag. Additionally, the ALT tag should match the image Use the following naming convention: [image-name].png. Always use hyphens to separate each word (do not use underscores or other notation). Special characters such as apostrophes should not be part of the URL. This is the responsibility of the Site Producer.

7. Keyword-Rich Content
For main body content (i.e., content that lives within the <p> tags), be sure to research the top five keywords relevant to the page topic and include these keywords within the first 100 words of content that appear on the page. This is the responsibility of the Copy Writer.

8. Vertical Linking
In terms of the information architecture of the site, good IA will lead to good vertical linking from an SEO perspective. This simply means establish a logical system for your primary navigation and secondary navigation structure. Primary navigation refers to the top-level navigation categories that appear on every page of the site (usually located in the masthead). Secondary navigation generally appears just below the masthead in a horizontal or vertical format. This is the responsibility of the Information Architect.

9. Horizontal Linking
Wherever possible, link to other content pages on your site that appear at the same hierarchical level. This is the responsibility of the Copy Writer.

10. In-Bound Links
Try to get other sites to link to your company/organization’s site whenever possible. When possible, simply post a link to your site in the comments section of another site’s article or in a forum. For example, if your site sells furniture, post a link to your site in the comments section of Apartment Therapy and Dwell to start with. The more in-bound links your able to get to your site, the more “link juice” you will generate. This is the responsibility of Copy Writer.


Salesforce-DART Implementation and Integration

Salesforce

About the Project

In February 2008, I began work on the implementation of DoubleClick’s DART Sales Manager (DSM). The first step of the process required interviewing the ad operations and analytics team. The ad ops team was already using DoubleClick’s DART for Publishers (DFP) for approximately one year. In order to best implement DSM to fit the needs of the ad ops team, I had to first understand how they were using DFP, what worked well, and what they grappled with most. The second major set of requirements were gathered from senior management regarding their workflow requirements and reporting requirements.  


Finding the Right Design Firm for Your Business

Here are some of the questions I ask when interviewing design firms or design consultants. Don’t be shy. The worst thing is a bad fit. And you don’t want to get stuck with ugly branding. It’s your entire corporate identity after all, and millions of dollars will eventually be resting on it. The firm or consultant should be able to handle your entire corporate identity system from logo to stationery to polished website.

1. Portfolio

Please show me examples of your work that include branding, print design, and digital design.  I don’t expect you to be equally strong in all three, but I would like to see where your strong suits are.

2. Design Process

Give me an example of the design process you might take a client through.

3. Creative Brief

How do you generally go about gathering information from a client to put together the creative brief? A good brief is half the success with an identity project. If you have all the information and an in-depth understanding of the client’s brand, you will have the basis for a great logo and striking identity. Without it you’re just shooting in the dark and can only rely on your luck to find the right solution.

4. Brands You Love, Brands You Hate

What brands/aesthetics do you love the most? What is it about their execution that makes them successful? Were they always great? What brands do you hate the most? What is it that makes them abhorrent/shameful/unsuccessful?

5. Projects You Loved, Projects You Hated

What projects have you loved? What projects have you hated working on?

6. Formal Training

Did you receive formal training in design? Which school?

7. Staying Current

How do you stay current on design movements and trends? What are your favorite design blogs and design magazines?

8. Guiding Principles

What do you feel are the guiding principles of design? No need for use of fancy terms, just in your own words. Swiss grid system? Bauhaus? What else?

9. Inspiring Designers

Who inspires you? Give me specific names, and don’t be trite. This can be anyone from graphic design, typography, architecture, furniture design, industrial design, etc.

10. The Client

What do you look for in a client? Have you ever fired a client? What were the circumstances?


Keyboard Shortcuts for Mac OS X

If you’re a Mac user, it would be wise to know the following default keyboard shortcuts.

Mac OS X Applications

Command-Tab: Cycle through all open applications

Command- ~: Cycle through all open files within current application

Command-O: Open application

Command-P: Print current file

Command-Q: Quit current application

Command-Tab-Q: Cycle through and quit all open applications

Mac OS X Screen Capture

Command-Shift-3: Take a screenshot of the screen, and save it as a PNG on desktop

Command-Shift-4, then select an area: Take a screenshot of an area and save it as a PNG on desktop

Command-Shift-4, then space, then click a window: Take a screenshot of a window and save it as a PNG on desktop

Command-Control-Shift-3: Take a screenshot of the screen, and save it to the clipboard

Command-Control-Shift-4, then select an area: Take a screenshot of an area and save it to the clipboard

Command-Control-Shift-4, then space, then click a window: Take a screenshot of a window and save it to the clipboard


How to Set Up a WordPress Site

In just 12 easy steps, you too can have a WordPress site set up and ready to use in less than an hour. If you have any questions or find any issues with the steps below, please contact me.

1. Register Domain

Select a web host and register your domain. Make sure the format is http://www.[domain].com. Once you’ve registered a domain, your web host will send you information on how to access the server via FTP.

2. Select an FTP Client

There are many FTP clients to choose from. For the Mac, I recommend Transmit. For PC, I recommend the Firefox add-on FireFTP. Once you’ve selected and installed an FTP client, enter the FTP information provided by your web hosting service. Test out the FTP connection to make sure it works.

3. Download Latest WordPress Files

Download the latest WordPress installation files from the official WordPress site. Unzip and save to your desktop. You can delete these files from your desktop after you’re finished with the installation.

4. Copy Files to Root Folder on Server

Using the FTP client, locate the public root directory for your site. Most web hosting services call this public_html. Please note, however, that this name will vary from host to host. Upload all of the contents of the local WordPress folder to the server’s public_html folder. This will take a few minutes.

5. Create htaccess.txt File

Create a new .txt file by opening TextEdit on your Mac or opening Notepad on your PC. Name this file htaccess.txt. Paste the following contents into this .txt file and be sure to insert a hard return where shown. Save the file to the server’s public_html folder.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

6. Save File As .htaccess

In order to secure the file, you will need to rename from htaccess.txt to .htaccess. This will make the file invisible.

7. Configure WordPress

Now open a new browser tab and type in your domain (http://www.[domain].com). You should see a WordPress welcome/configuration page. Follow the steps listed on that page.

8. Create WordPress Database via Web Host Control Panel

Navigate to the control panel provided by your web host. The URL for this is usually contained within the welcome email they send to you when you first registered your domain. Locate the icon to create a MySQL database, complete the fields indicated, and make careful note of all usernames and passwords. I generally write these down in a safe place. It will be difficult to recover lost username and password for this part. You will also need to create a user and add this user to the database. Be sure to give this user all read/write privileges.

9. Configure WordPress Admin > Settings > General

Navigate to the WordPress Admin panel for your site (http://www.[domain].com/wp-admin). In the left nav, click Settings > General and complete all information.

10. Configure WordPress Admin > Settings > Permalinks

In the left nav, click Settings > Permalinks and enter the following custom structure for permalinks: /%category%/%postname%/. This is the optimal structure from both a usability point of view and SEO point of view.

11. Configure WordPress Admin > Appearance

Do a Google search for WordPress themes (there are literally hundreds to choose from). Download themes that you like to your desktop and then use your FTP client to place themes in the public_html/wp-content/themes folder. Make sure you upload the correct folder structure of the theme, otherwise it won’t work (nested folders are often the biggest problem). In the WordPress admin panel, click Appearance and select one of the themes you’ve installed. You can change the look and feel of your site that quickly! Any fine-tuning to the theme will need to be done directly in the .css file or various supporting files. Tinker with these files only if you know what you’re doing!

12. Start Posting!

Start creating pages and posts on your new WordPress site!


15 Easy Steps to Independent Consulting

Step 1: Choose Company Name and Register Domain

The toughest part is coming up with a name for your company. You’ll want it to be professional, interesting, hip, and not something that paints you into a corner. I spent two months brainstorming names for my company, and even enlisted the help of friends. I kept running into the problem where if the name was available with the state of New York, then the domain name was already taken, or vice versa.  I finally settled on Mod01, LLC (I wasn’t thrilled with it), and am now considering doing a name change.

Step 2:  Determine Incorporation Type

The three main types of incorporation are LLC, S-Corp, and C-Corp (listed in order of easiest to most difficult).  After doing some research online, looking at various comparison charts, and speaking with a few accountants and attorneys, I weighed out the pros and cons of each, and went with an LLC. An LLC will be the easiest to manage in terms of pass-through taxation, annual paperwork, and fees.

Step 3:  Incorporate

Based on extensive research, my own personal experience, and the experience of friends, I would highly recommend Biz Filings to handle all of the paperwork required for incorporation.  The service was great and they have a terrific website that shows the requirements and cost breakdown by state and the status of your filing.  They were incredibly reliable and expedient.  My incorporation was completed and I had EIN in hand after five business days (and I did standard processing, not expedited)! The total cost of incorporation for an LLC in New York comes to $2,478.00. The most expensive piece of this is the newspaper publication requirement ($1,750.00).  It’s a lot of money, but it’s required by the state of New York, so there’s no way around it.  It feels like a big chunk of change but you’ll make all of this money back in no time. Here are the specific items you should select when placing your order:
biz-filings-llc-incorporation-fees-new-york

Step 4: Establish Branding

It would be well worth hiring a designer to do your branding for a professional logo, letterhead, envelopes, and site design. You get exactly one shot to make a first impression, so it better be damn good. I’m currently in the process of hiring a designer, as my current branding is non-existent. Also, do not underestimate the importance of a well-designed business card, printed on professional-grade paper. It’s a bit of an expense, but well worth it.

Step 5:  Set Up Website

As soon as you’ve figured out a name for your company, register the domain. Many people have a personal website (http://www.yourname.com) and a professional website (http://www.yourcompany.com). You can cross-link from one to the other, but be careful not to have any redundancy in content. One of the most important considerations when setting up your site is search engine optimization (SEO). I get a huge number of visits from people who have searched by certain keywords that can be found in my resume, work samples, recommendations, etc. Follow SEO best practices when setting up your site — you’ll be amazed by the number of people who find you!

Step 6: Get an Accountant

Since the taxes are a bit more complicated with an LLC, I had to get an accountant.  After extensive research, I found Jonathan Medows, CPA (http://www.medowscpa.com/). He’s an incredibly smart, meticulous, and professional individual, and is conveniently located in Manhattan. I had received recommendations for CPAs outside of NYC, but I find it incredibly important to be able to sit down and have a face-to-face conversation, especially on matters as important as one’s financial accounts. His rates are also quite competitive. I very much value his attentive services for my LLC, taxes, and general financial recommendations.

Step 7: Carefully Track All Income and Expenses

You’ll need to keep careful track of all of your income and expenses in a spreadsheet or program, and hand it over to your accountant at the end of the tax year.  As a small business owner, there’s a whole host of deductible expenses that will benefit you come tax time. There are many fancy programs out there that you can use to track your income expenses.  I’ve tried several, but haven’t found anything as simple and reliable as a good old Excel spreadsheet.  I organize my spreadsheet into the following tabs and have formulas that span multiple tabs: (1) Basic Information, (2) Income Summary, (3) [Client], (4) [Client], (5) [Client], (6) Deductible Expenses, and (7) Non-Deductible Expenses. The tabs labeled “[Client]” allow you to track the specific hours spent on a client and you can copy and paste that directly into the invoice you’ll be sending them.

[Will post spreadsheet template shortly]

Step 8: Set Up Business Banking Accounts and Business Credit Cards

I opened a small business checking account for my LLC at Citibank. It’s free as long as you (1) maintain a minimum balance of $5,000 and (2) sign up for one of their small business credit cards. I would highly recommend Citibank for all of your business accounts and personal accounts, not because I think they’re an exceptional bank, but because you’ll be able to build up an incredible amount of ThankYou Points.  I would highly recommend getting the Citibank PremierPass Elite credit card (one for business and one for personal), as it allows you to rack up points for use on just about any airline around the world with no blackout periods.  The same applies for hotels.  The other advantage of having your personal accounts and business accounts with Citibank is that you’ll be able to instantaneously transfer money back and forth between the business checking account and personal checking account from the comfort of your own home. Most other banks do not offer this service and it’s a surprisingly inconvenient process.

citibank-premier-pass-elite-credit-card

Step 9: Write Your First Contract

It’s important to start putting together a contract prior to getting that first client, as you’ll need to move fairly quickly once the ball gets moving. Feel free to email me and I’ll send you a contract template to help get you started.

Step 10: Set Up Your Invoices

As a corp-to-corp consultant, you’ll have to submit an invoice to the company on the 1st of every month. It seems like a hassle, but it’s actually pretty easy as long as you update the spreadsheet mentioned above with your tasks and hours once a day.  I round to the nearest 15-minute increment, as that is most fair to the client and also gives you an accurate sense of how long things actually take.  Checks should be made payable to your LLC. I deposit the check into my business checking account for accounting purposes, and then transfer money out of that account into my personal checking account as needed. Feel free to email me and I’ll send you an invoice template to help get you started.

Step 11: Set Aside 40% for Taxes

For every check that you receive, be sure to set aside 40% of it for taxes.  You won’t actually be paying that much in taxes every quarter, but it’s a good rule of thumb to follow.  Taxes aren’t as bad as they say for an independent consultant.  It’s a shock when you write your first check to Uncle Sam, but remember that you are coming out on top in the end (waaaay on top).

Step 12: Join Freelancers Union

Be sure to join the Freelancer’s Union in order to cash in on great benefits like health insurance, life insurance, disability insurance, discounts, and networking opportunities.  The Freelancer’s Union in New York is a reputable organization and is worth the small membership fee.  You need to show proof of working as an independent consultant for at least eight weeks before you’re eligible for various benefits.

Step 13: Get Health Insurance

Universal healthcare is still a long ways off. Until then, you can get insurance through Freelancers Union. As an individual, you’ll pay about $300 per month. I’ve been really happy with the choice of doctors and plan offerings — it’s better than some of the plans offered by the full-time employers I’ve had.

Step 14: Post on Job Boards

Post your resume on Monster, Dice, and any other popular job boards and leave it there.  You’ll be amazed at the number of calls you get out of the blue because your resume came up on a keyword search.  Once you get a call, be sure to keep the hiring manager or recruiter’s info and contact them once your current engagement has ended. It’s all about staying fresh in their minds.

Step 15: Network, Network, Network

Be sure to get onto professional networks like LinkedIn.  You’ll be amazed at the number of links you get through LinkedIn.  Be sure to create a direct link to your profile (e.g., http://www.linkedin.com/in/MunawarAhmed). Join as many relevant groups as you can on LinkedIn and receive the weekly digest of opportunities. There are a ton of projects and people are more likely to talk to you because you’re part of their LinkedIn group. Almost 90% of the leads I’ve gotten over the last few years have been through personal and professional contacts. Walk into a place, do an amazing job, and you’ll be sure to get called back again.


2008 NYS LLC/LLP Filing Fee

If you’re a freelancer incorporated as either an LLC or LLP in the state of New York and you’re not being treated as a corporation for federal income tax purposes, then you’ll need to file form IT-204-LL by January 30, 2009.

Single-Member LLC or LLP:

If you have a single-member LLC or LLP, then you will need to pay a flat fee of $25.

Multi-Member LLC or LLP:

If you have a multi-member LLC or LLP, then you will need to pay based on the following schedule:

# LLC or LLP Income in 2008 Fee Due
1 Between $0 – $100,000 $25
2 Between $100,000 – $250,000 $50
3 Between $250,000 – $500,000 $175
4 Between $500,000 – $1,000,000 $500
5 Between $1,000,000 – $5,000,000 $1,500
6 Between $5,000,000 – $25,000,000 $3,000
7 Over $25,000,000 $4,500

2008 NYS IT-204-LL Form (PDF)
2008 NYS IT-204-LL Instructions (PDF)