Friday, April 29, 2011

Stuck Using Antiquated Technology? Use It Wisely and Plan Ahead...My DTS Story

OK, so, I was forced into creating DTS packages to use on a legacy system that I know darn well we are going to upgrade in the next couple years at some point. The boss' reasons were sound, from his vantage point, at this juncture we didn't have resources to learn SSiS, or upgrade from our current database, SQL Server 2000, I get it, so, I have to get over my personal opinion and do what I am told to do.

Having been a long time since I messed with DTS, as well as SQL Server, really, so I had a couple hours of poking around to do, to kind of familiarize myself with it again. DTS is quite simple in it's most basic level, what makes it difficult to migrate off of is that some folks use it wrong (in my opinion) by living totally within it and not relying on other tools within SQL Server, like views, stored procedures and user defined functions. Using such things make the DTS a bit more portable, and you can then use the DTS, more than anything, just as a framework with which to schedule the tasks to be run, and not have the tasks hold the business logic itself.

So, that is what I decided to do with this project, all the business logic I needed, that was able to be, I wrote into large queries and created stored procedures with them, so when I needed those steps to be done, the DTS steps simply called the stored procedure, and had no specific SQL in the step itself.

The only thing I couldn't really handle that way was an initial step of importing data from an outside data source, in this case it was a dBase 5 file, that is created by another in house data manipulation/cleansing application, for that I needed only one simple data transformation step to throw that data, as it is, into a matching table in SQL Server, so it isn't really transforming anything, just moving it as it. From that point everything is done within SQL Server so it's not spending time looping through an open *.dbf file, which increased the speed, and if something does fail, it is handled within the following stored procedures and logged in an error logging table.

Over all, I am hoping, once it's time to upgrade away from SQL Server 2000 and we have the resources to move to SSiS or other platform, creating these packages in this manner will make the move much less painful and time consuming.

Any other thoughts and I ideas are welcomed in the comments.

Thursday, April 28, 2011

New Ad System Available



Well all know there are hundreds of ad systems out there, and very rarely does any system have a new spin that is worthy of any real note, but this one is kind of cool. VigLink is a new system with a cool twist that makes covering a lot of ground very simple. VigLink was founded by, and is financially backed by, some big players in the industry.


The concept is a good one. Your average ad publisher could spend his entire life subscribing to every affiliate program around, building links and stores and all that, which makes for time consuming tasks of building them, watching reports, managing to keep ads current and all that. What VigLink does is affiliate themselves with these people, and a bit of code on your web site tracks all site-exiting clicks and action that results from it. If the visitor clicks through to a site that VigLink is affiliated with it tracks and pays out according to actions, purchases and the like.

I have been using it for a few weeks now, and while it isn't something that is going to make me a fortune, it is a cool way for a few extra dollars in backfill money from links that would otherwise just be a visitor leaving the site. I really don't have the time or interest in affiliating with every site that my site has an exit link for, for the measly few cents it would get me, but, combine many of these "not worth it for a few cents" affiliates into one tracking code and one reporting system, suddenly it ads up to a few dollars from one place.

The final beauty of the system is that it is completely transparent to the visitor, no ads, no popups, no interstitial ads or anything, just a quiet background script watching them click around.

If it sounds good to you, check it out for yourself, VigLink.

Friday, April 22, 2011

Ad Publishing Strategy with AdSense and OpenX

I have, in my time on the AdSense support forum where I am a Top Contributor, seen many, many publishers that throw up AdSense and forget about ads, expecting they'll get rich, or, at least make money. After they don't, a predictable series of events ensues.

  • They come to the AdSense support forum ion one of two frames of mind, either asking what they can do to improve things, or angry and kicking and kickin n' screamin' that AdSense is fraud, yada yada yada...
  • They then realize that in order to make money you actually need traffic to your web site in order to make money, following that they either maintain their anger and are sure AdSense is still a fraud, or they think about it, understand, and ask how to do that.
  • Following that they learn they need to create content, and LOTS of it and learn some SEO strategies.
  • They then either give up or trudge on.
For those the trudged on, this article is for you.

Once you accept the challenge, create content, start getting traffic and see the money start trickling in, there is yet another step, and that is the step toward maximizing revenue...and that is realizing the advertising world does not exist with AdSense alone.

You need to realize that, for the average successful site, AdSense is the best paying generic ad system, but there are still ways to improve on it. I will share my personal theory with you.

First, you need to sign up at OpenX and use it. OpenX is an ad server that you can ad your AdSense ads to, without violating TOS (I asked AdSense specifically, and they told me so directly) and run your ads thru their system to display on your web site.

The part of this that is beneficial is that OpenX also has a very large ad network as well, and you can set up your AdSense ads to be "remnant" ads, which means they are fallbacks that display only when nothing else fills it. Likewise, in the AdSense "campaign" within your OpenX system, you can set it up to display AdSense ads up until there is an OpenX network ad thatis offering more money for the space.

Fortunately, your AdSense reports tell you, on average, how much each channel is earning, so you can set that threshold price, within OpenX as high as you want related to that value.

This will help you maximize each channel/campaign within your web site and ad variety to your ad pool.

Controlling Spam on Your Forum or Blog Comments

So, I have, for the last few months, been dealing with an increasing amount of spam on one of my more popular forums. After yet another posting for knock-off Ugg boots, I finally had enough and started investigating options for controlling this mess.

I found, during my investigation, a site that aggregates spammer information from a community of people like me, this wek site is Stop Forum Spam. This web site accepts submissions from forum and blog owners about people that have spammed their site, and keep track of the info.

Spammers often use automated systems, or, predictable behavior, when putting out their spam. Stop Forum Spam tracks usernames, email addresses and IP addresses, and tracks how many time each is reported by unique site owners. Then, when people are registering at your web site, you can check their database with a very simple to use API and get an XML formatted result for each bit of data you submit,

Example, I have somebody registering at my site, during registration, I submit the username, email address and IP address to their system, the API returns, for each piece of info, the last time it was seen and the frequency of it being reported, and you can choose how to handle the registration based on that returned data.

My own scheme, I submit all three of the bits, and if at least two of them are found in the database, I immediately flag the profile as "banned". With that flagging, they never have a "last logged in" date set, since they'll never be able to log in, so, by querying my user database for banned members that have never logged in I can see how many people my system has trapped, determine any false positives, and further tweak the system.

The very first night I caught over a dozen very obviously spammer registrations, since then I have a list of about 30 I have caught, while dozens and dozens have continued to successfully register. Only one spammer has gotten through, and I promptly submitted that user to the database to stop him from getting into other sites.

I have found since there are plugins and addons for many forum and blog open source tools that work with Stop Forum Spam's service as well, so if you run such a system, it might be worth looking for before going and custom coding anything.

Hope this helps a few people, and happy spam stopping!

Thursday, April 21, 2011

Guide to Web Development on OS X for Windows Users

So, back in November I took a job (actually full time, real job for the first time in a long time) doing PHP/MySQL development for a company that thrust me into the world of Mac. I was sure I'd be in for days or weeks of getting up to speed and worried about disappointing my new employer, so I was nervous, which is kind of foreign territory for me. As they were also into open source freeware and shareware tools due to the low cost and typically better support of the open source community...like me.

I was very pleasantly surprised, and have really grown to become a fan of Mac development. I have learned a few things in the mean time that I thought might be worth documenting to help others stuck in my situation.

Many of the applications I was used to using are Windows only applications, my new coworkers helped guide me to find decent Mac equivalents for, which has been uber-helpful. If anyone reading this post have other useful options, I'd love to hear about them in the comments.

Graphics

For simple graphic work, typical of a developer (not designer) such as quick resizing, slicing and such things, I was happy to find that GIMP has a Mac version as well, so that was a painless transition.

Coding

I have used many apps over the years for this task on Windows, NoteTab, EditPlus, Aptana (which does have a Mac version), Dreamweaver (which has a Mac version and costs a lot), but, in the interest of maintaining a standard application base across development, I went with a suggestion from the others, and rolled with TextMate, an somewhat inexpensive text editor for the Mac. At $59 for a single license, I was surprised at it's power user feature set. There is no WYSIWYG editing, for which I was OK with, being a hand coder anyway, but the code coloring, project management, keyboard shortcuts for commenting out, code formatting, quick syntax checking and other tool sets is outstanding. It also integrates into the command line, making it possible to leave the world of nano and vi, and use TextMate for the code editing.

I have found a Windows application that is supposedly "the power of TextMate for Windows", called E, but I have not tried it yet. If anyone has used it, I love to hear about the experience. The license fee is $46.95.

Version Control

Being the standard small lower budget shop, the company uses Subversion SVN for it's version control, with which I am familiar. I was always used to using the Tortoise SVN shell that integrates directly into Windows Explorer, for the control. Well, no longer having Windows Explorer, I needed another option. A nice, simple options that we use is Versions, which is somewhat limited. It's great for everyday tasks such as check in, checkout, comparisons, updating repos and stuff like that, but, unlike Tortoise, it has no UI for merging, branching, tagging and other such functions. All that must still be done from the command line.

FTP

For a while I was using Fugu for my SCP, SFTP and SSH work, but was soon annoyed by it's lack of functionality, not having real profile management or ability to move multiple files at once...so, I dropped back, whenever possible, to the FireFox addon, FireFTP, which is a great FTP client that lives within it's own tab of FireFox.

Debugging

The same tools apply for debugging if you use FireFox, as I do, for development. Web Developer Toolbar, FireBug and the FireFox console work great as a team for following JavaScript requests through their lifecycle.

Database Management

MySQL has the same desktop tools for Mac as they do for Windows. The MySQL Workbench is primarily what I use. For SQL Server work, the free version of DbVisualizer is what I use for simple stuff, the pay version, which is costly, does much more. For SQL Server work you are far better off adding some Windows VM to your Mac, which can be resource costly, and doing it with SQL Studio Manager or some such MS tool, but DbVisualizer is a cool tool for typical development work, if you are forced into using SQL Server.

Command Line

For those developers that have been used to using command line for a lot of work, you'll feel right at home on Mac OS X, it's a Unix based structure and the terminal is a great tool to get around in quickly. However, there is a great, free, SourceForge project called iTerm that puts the Mac native terminal to shame. You can bookmark different servers with commands to log into them. Click the bookmark, and if the command is passed right, boom, you are right at the command prompt. Very useful tool for developers that frequently need to SSH into development, staging and production servers and need to remember all those login credentials.

The administration utility "Keychain Access" that comes with OS X is a great way to store passwords on your local machine for later reference as well.

Simple Shortcuts

Mac and Windows are different (duh), but there are some simple things you can learn to make things easier. By and large, Windows and Mac have different control keys, with Windows, most keyboard shortcuts base off the lowest, left hand control key (Ctrl), with Mac, that key is usually a couple keys to the right, and has a Command Modifier icon on it (and/or and apple). So, the cut, copy and paste are still control > X, C and V, but the control key is a couple keys over. A hard habit to get into, but it'll save you loads of time.

The Mac's "System Preferences" (little icon with gears) has Mouse preferences that can be set to simulate Windows right click functionality, that really helps the native Windows user.

I hope these little tips get you off in the right direction.

Handling Your Media

Since I have acquired a lot of audio and video from various artists, as I do run a music web site for independent home recording musicians that make great tunes, and my daughter has purchased an iPod, I have grown to have increasing interest in efficient media management.

I have really gained a shining for Media Monkey, ot is a very capable, very powerful, and very easy to use, media management tool. Ir does a lot more thn simply tag and label audio tracks and play lists, it also rips to multiple options of bit depths, stores multiple playlists, stores by artist and genre labels, has templated options for tagging, syncs to your devices to keep everything up to date, and even searches your media library for duplicate files, which is inevitable as your library grows out of control.

It also supports mp3, aac, flac, ogg, wav, wma, cda and many other formats. Much of that is just in the free features, "gold" edition features include dividing your colection into multiple "collections" for syncing different tastes for different people for different devices, which is great for families. Auto conversion features for format conversion also includes auto leveling, which is very handy for creating playlists from different sources that are digitized at different levels. Gold version also includes CD burning capabilities.

There are also many addons available to make Media Monkey work in different ways, plugins for DSP effects, skins to change appearance, visualization and much more are available.

For a very reasonable price you can also upgrade to a lifetime license. This is what I did, you get a lifetime of unlimited upgrades, so you can always stay current, even across major version upgrades.

If you are looking for a media management application, give the free Media Monkey a try, I'm pretty confident you'll dig it.

Wednesday, April 20, 2011

Final View of the Chrome Notebook

I really need to get back into the habit of posting on a regular basis, I've been slacking in that department with starting a new job and such. The whole time I have been beta testing the new Chrome notebook.

Overall, while I like the idea, and I do use it a lot (when the networking works) there are some real annoyances, and some poor design decisions on the part of Google.

My number 1 complaint is poor networking, for one, it's only wireless/cellular connectivity, not even a hard wired ethernet jack. I can get by with that, but the wireless is very poor, and sometimes takes many, many attempts to log in. I have reported it many times, discussed my router, encryption type, etc, and over all the months have not seen a fix.

In fairness, however, they have fixed a few bugs that annoyed me, such as an oddly behaving touchpad, which was trouble for bit. I am still not a fan of the relatively simple touchpad, but have gotten used to it, and how it works with other keys to simulate the "right click" on better touchpads.

The battery life is superb...a full charge lasts about 8 hours, which is awesome, I love it.

Since much of my computer work is cloud based, I can actually get a lot done on this little device, it's been handy (again, when it connects), but I do think going for a tablet type of format would give the device a great chance of success in the current market, but, I suspect the touch screen would bring the device to a higher price point than they are shooting for.

While Chrome does not allow installation of other desktop programs, Google does have the web store that has a lot of cool applications, some for free, some for a charge. I have found some cool little apps. A guitar tuner and chord charter, radio streamer and other such things. One does have to be careful though, Google does a poor job of filtering out what works on the device you are browsing with. I installed a couple radio streamers that wound up not being able to work because it needed a plugin that I could install. I found that very sloppy

In the end, the Chrome notebook is just another netbook, no better or worse than any of the other dozens of netbooks available.