Welcome to my online portfolio, the complement/substitute for my resume. The opinions included herein are my own and do not reflect those of any client or employer, past or present. Please check out the new site: http://danieljohnsonjr.com

Tuesday, November 6, 2007

05 Nov 2007 - Utterz from the road



Three topics discussed:

  1. Effects of Daylight Savings Time ending one week later this year, especially on the commute home.
  2. New Media Cincinnati: http://www.newmediacincinnati.com or http://danieljohnsonjr.com/2007/11/new-media-cincinnati-meetup-november.html
  3. Dashboard-types of reporting I've been doing to provide a good pulse on the company. I love doing this kind of marketing-type of analysis.


Hear all my Utterz: http://www.utterz.com/~h-danieljohnsonjr/list.php

-----
Check out my other blogs:
Journey Inside My Mind Blog
Journey Inside My Mind Podcast
Get That Job!
QuotesBlog
Twitter.com/danieljohnsonjr

Related tags:

Monday, November 5, 2007

New Media Cincinnati Meetup, November 2007


New Media Cincinnati meetup:


When: November 17, 2007 4-6 PM EST
Where: Panera Bread Company, 9444 Civic Centre Blvd, West Chester, OH 45069 (map)
This is an informal meetup for people in the Greater Cincinnati, Northern Kentucky, and Dayton areas involved with or who have an interest in new media (podcasting, video podcasting, blogging, Twitter, social networking, etc.).

Everyone is welcome to come.

For more information on the store, please visit their local website: http://www.panera-centralohio.com/

The restaurant management has reserved the meeting room for us and politely requests that the group collectively spend at least $25 while we're there. I don't think this will be a problem.

The store has free wi-fi, so feel free to bring your recording equipment. There is currently no single topic of discussion planned. However, if you have something that you'd like to share with the group, please contact Daniel Johnson, Jr.

If you have any questions about this event, please contact:
Daniel Johnson, Jr.
(513) 373-4442
danieljohnsonjr@newmediacincinnati.com

Facebook: http://www.newmediacincinnati.com
Google Calendar: http://tinyurl.com/2caxxp
Twitter: http://twitter.com/newmediacincy
Jaiku: http://jaiku.com/channel/newmediacincy
Flickr: http://www.flickr.com/groups/newmediacincy/

Facebook Event: http://www.facebook.com/event.php?eid=6146127822

If you have a Facebook account, please RSVP over there; otherwise, you can send an email or RSVP in the comments below.

-----
Check out my other blogs:
Journey Inside My Mind Blog
Journey Inside My Mind Podcast
Get That Job!
QuotesBlog
Twitter.com/danieljohnsonjr

Related tags:

Saturday, October 20, 2007

New Media Cincinnati Meetup, October 2007

New Media Cincinnati Meetup, October 2007
How was your Saturday? I and about 11 others met up today, the first New Media Cincinnati meetup, at the Golden Corral just off exit 32 at I-75.

Some big thanks go out to people for helping inspire and organize and otherwise contribute to making the event possible:

It was so great meeting other people, most of whom I'd only known online, and some that I'd met for the first time. I was so engaged in the conversations that I barely ate anything!
New Media Cincinnati Meetup, October 2007
Here are the people I met, with links to their websites/podcasts/online presence:
I am definitely inspired by the depth of talent and diversity in the group, and I look forward to meeting up next month. More details on that to come soon. Be sure to check out newmediacincinnati.com!

-----
Check out my other blogs:
Journey Inside My Mind Blog
Journey Inside My Mind Podcast
Get That Job!
QuotesBlog
Twitter.com/danieljohnsonjr

Related tags:

Monday, October 8, 2007

Daniel Johnson, Jr. Interview on Post It Cast Live on Tuesday


Post It Cast Live
Host: Michael W. Moss
Episode: Interview With Dan Johnson Jr.
Host Of The Journey Inside My Mind Podcast: http://jimmpodcast.blogspot.com/
Also huge promoter of a great cause: http://onevoicewalk.org/
Tuesday, 09 October 2007
6:15 pm Eastern
live podcast
724.444.7444
Talkcast ID 32555
Answers Here

-----
Check out my other blogs:
Journey Inside My Mind Blog
Journey Inside My Mind Podcast
Get That Job!
QuotesBlog
Twitter.com/danieljohnsonjr

Related tags:

Monday, September 24, 2007

Keeping upper management knowledgeable and salespeople paid

This is another post where I share technical details about a project I have been working on.

SITUATION

Sales executives within the company receive monthly commission checks based on active client employee counts and gross payroll, for clients that they have brought on. In addition, upper management needs to see high-level numbers such as active clients, active employee counts, and gross payrolls - dashboard-type information.

A easy-to-use tool to generate this information did not exist at a user level. Previously, upper management relied on IT or the Controller to generate this information and send it to them.

Through some personnel reorganization, the process for generating this report fell through the cracks. Salespeople were waiting for their commission checks for the previous month, so the project was both urgent and important.

As usual, this information needs to come from the multiple SQL Server databases the company uses to manage client information through the Darwin PEO System, a customized, version of Microsoft Great Plains for the Professional Employer Organization (PEO) industry.

TASK

I was asked to develop a tool that upper management can use to generate information themselves. Some of the application requirements and thoughts that guided the development:

  • Let users pick the date range, click a button, and have the system produce a report.
  • Develop the application quickly to meet the immediate needs of the organization, yet with the ability to be reused whenever upper management so desires.
  • Since upper management is most comfortable with Microsoft Excel and will want the data in a workbook anyway, use Excel Visual Basic for Applications (VBA)) and ActiveX Data Objects (ADO) within a single Excel workbook to produce the results.
  • Choose Excel over Access because the application overhead is low (i.e., no need for tables, forms, reports, etc.).
  • Since the company doesn't mark employees and clients as inactive in the system immediately when they are terminated, define an active employee during a date range as a paid employee.
  • In addition to a paid employee count, obtain a total check count and gross payroll amount for each client during the date range.
  • If an employee received a check and it wasn't voided, it counts.
  • Take advantage of server-side processing to achieve the best performance.
ACTIONS TAKEN

I first developed the SQL statement to unite data across the twelve SQL databases, based on prior knowledge of where to find information. Then I wrapped the SQL statement up in a stored procedure, with start and end dates as parameters.

After testing the procedure with different date ranges to make sure the information was accurate and made sense, I moved on to the Excel piece. I wrote code in Excel VBA and ADO to execute the stored procedure and output the results to a worksheet in the workbook.

Once I had tweaked the completed application to make sure everything ran smoothly, I e-mailed it to the director who requested it.

RESULTS

Within a few minutes I received a phone call from her, telling me how awesome I am. She also sent the application to the owner of the company so that he can run the report as often as he wants.

Now they are able to generate the information in a matter of seconds themselves, versus waiting for the Controller or someone else in IT to generate it for them; or, even worse, spend hours compiling the information themselves.

-----
Check out my other blogs:
Journey Inside My Mind Blog
Journey Inside My Mind Podcast
Get That Job!
QuotesBlog
Twitter.com/danieljohnsonjr

Related tags:

Friday, September 21, 2007

Reaching the point of diminishing returns on a project


Over the past month, I have been working on a project to automate payroll entry for a client that has close to 300 employees and is growing. Naturally, it is the company's best interest to get this payroll automated as much as possible.

To do this I've been developing an application to bridge the payroll info to Microsoft Great Plains Integration Manager.

One of the criteria I've used to evaluate a client's payroll is a consistent layout in a good format, so that I can tell the program where to map regular hours, overtime, cash reimbursements, etc. In some cases I'm able to tweak the payroll to make it into a layout that is consistent enough for me to automate.

This particular client is a construction company, and the only electronic version of the payroll is a text file that is not delimited. The file is basically a report from the client's system, and it has page headers and department footers, as well has breakdowns of withholding, etc. Most of that I can ignore in the program.

My colleague was able to import it into Microsoft Excel, using spaces as the delimiter. From there I saved the file as tab-delimited text, the format used in the other bridge applications I've developed.

The big problem is the inconsistent layout, which has come from using spaces to delimit the text, depending largely on how much detail is on a particular line of text. Look at the following 3 lines of text:

  • E 22 Per Diem - C AZ 3 99
  • E 22 Per Diem - C AZ 3 XYZ111 99
  • E 22 Per Diem - C 99
In each of these lines, the payroll item is Per Deim, and the amount is 99. When you space-delimit the lines the amounts are in different columns.

This is just one major aspect of complexity that has come from my attempt to automate the payroll. After talking it over with my boss, we realize that we've come to the point of diminishing returns.

I'm off this project until there is another way to parse the payroll information and am able to move on to another project that's in the queue.

Related tags:

Sunday, September 9, 2007

One Voice Walk 2007

crossposted to Journey Inside My Mind Blog


One Voice Walk 2007
Originally uploaded by danieljohnsonjr
Have you've been wondering where I've been this past month? I've been doing some online publicity as a New Media Consultant for the 4th Annual One Voice Domestic Violence Community Awareness Walk, which was held in Cincinnati, Ohio this morning. I took lots of pictures and recorded lots of audio from the event.

Hearing personal stories really moved me. I honestly felt a flood of emotions ranging from sadness, outrage, hurt, compassion, and more. It was really a lot to take in. And rightfully so. Domestic violence is an anathema to our society and must be stopped.

I really enjoyed interviewing people from the various local organizations and finding out what they are doing to help raise awareness for and to prevent domestic violence.

During the walk, I talked with other participants. In nearly all the interviews, I asked folks why they came. Really great discussions.

Do a Google search (aka 'google') "onevoicewalk", and you'll find this content as it all becomes available. For now, I encourage you to check out these specific websites:

http://onevoicewalk.org - the official website, with information about how to donate
http://flickr.com/groups/onevoicewalk - pictures taken during the event, with more to come
http://twitter.com/onevoicewalk - microblog of updates from before, during, and after the event
http://myspace.com/onevoicewalk - MySpace page
http://jimmpodcast.com - Journey Inside My Mind Podcast, where audio content from the walk will be posted

Speaking of the Journey Inside My Mind Podcast, head over there for the recent episode, Music for the One Voice Walk.

Related tags: , , , , , , , , , ,

Wednesday, August 22, 2007

Server-side processing rocks the house!

I've spent the last couple of weeks learning how to optimize the search tool we built. The short story is that we're now using a pass-through query in Access to pass parameters to stored procedures on SQL Server. Processing time has gone from about 2 minutes to less than 2 seconds.

Now that I know how to work with stored procedures, I'm thinking of how else to implement them with other types of applications.

BACKGROUND

The company has clients spread across multiple databases for various reasons; namely specific business rules (e.g., worker's comp rate, state tax rate, unemployment insurance, etc.) apply across an entire database.

Quite often someone in the company receives paperwork from an agency or client with nothing but the client employee's name or their SSN. Searching for this employee has been trial and error, going through each database at a time. Also, in many cases the person in our company just needs to see some basic information about the employee. For example, during tax season we just needed to verify a client employee's address and phone number. Hence the reason for such a tool.

We had initially designed the tool to have individual pass-through SELECT queries, uniting and applying criteria to them in Access. It was the uniting and applying criteria that has been slowing things down.

OPTIMIZING

So, I created two stored procedures with parameters: one that searches for an SSN one one that searches on a name. Each stored procedure unites the individual SELECT queries on a database separate from the other 12 that were being searched.

In VBA code, based on which criteria the user enters, we determine which stored procedure to run. We create a pass-through query to EXECUTE the stored procedure. This pass-through query then contains the search results, which is what we had with the earlier version of the tool.

PREVENTING SQL INJECTION

While reading the literature, I came across the concept of SQL injection and the need to prevent it. Since users are passing text to a SQL statment, we need to prevent the intentional or unintentional insertion of code that would prematurely terminate a text string and append a new command.

I wrote one procedure that scans what users enter in the first and last name fields for "--", "CREATE", and other such items. My coworker gave me some code to prevent users from entering other illegal characters. This double-barreled approach will prevent any SQL injection from occurring.

COMMUNICATING WITH THE MASSES

I enjoyed sharing the news of the updated tool with the rest of the company. I knew many had not even heard of it. I constructed the email the way I would a friendly blog post, including pictures.

One user immediately replied: "Awesome! Works very fast. Good job." I was contacted by two people in Accounting and Payroll who asked that I put the tool on their machines as well.

Much joy all around, I tell you. And IT looks good.

----------------
Now playing: Tim Hawkins - KidsRock
via FoxyTunes

Monday, August 13, 2007

How do you draw the line between effective promotion and spam?

This is a question I've asked my LinkedIn network, and I also ask here:

How do you draw the line between effective promotion and spam?

When marketing a brand or doing some other type of publicity for someone or something, there are effective ways to promote, and there are not so effective ways. How do identify, especially in the digital age in which we live, where the line between effective promotion (self- or otherwise) is and where you've crossed it?
Comments are open and genuinely appreciated!

Related tags:

crossposted to http://getthatjob.blogspot.com

Thursday, August 9, 2007

JIMM 90 - Crazy Busy Sticky Hot

Listener feedback about past episodes and such. Police and ER visits, Twitter tools, AMP, the upcoming One Voice Walk. Music with a country feel. 2-year anniversary in podcasting coming up this month. Other warm, juicy goodness.

Head over to the Journey Inside My Mind Podcast to listen and read more.

Related tags: