This article will explain our git deployment process using bears and reapers. Our setup assumes that you want separate development and production environments on a webserver in addition to the local repositories for each person on your team.

Git Goin’

The first step is to install git on the server as well as locally, which I will not get into as this has been explained many times before. The first thing to understand is that the development site and the production site will each have 2 repositories. The real home of each site resides in its associated bare repository which lies *outside* the public web root (typically named public_html or httpdocs). A bare repository does not have any actual working files that you can see, just a bunch of compressed git guts. So, create a new directory alongside public_html. You can create a bare repo using git init –bare from your shell on the server. If you are having permissions problems at this point, you can also create two directories within public_html, one for the site and one for the bare repo. You will then need to point the virtual directory for the site to the new site directory within public_html via apache or plesk. I’ve represented the bare repo in the graphic above with a bear.

Connect the dev site to the bear

Next you will want to initialize git in the public web root where the dev site will reside using a standard git init. This is in the same directory where all the working files for the site will reside. You’ll want to add a .htaccess in the .git directory you just created so that nobody can dig through your repo. Simply create webroot/.git/.htaccess and add ‘deny from all’, assuming you are using apache. Now this working repo needs to be able to pull from the bare repo, so type git remote add origin /var/www/path/to/devsite/barerepo.git/, replacing the path to the bare repo as needed. I’ve represented the regular dev site repo using the grim reaper and the working file tree with a tree.

Strength of a Bear

The strength of a bear

At this point you can create a local standard git repository and build your site using whatever software you like. Be sure to add any temporary files or config files to your gitignore. Also run this command to create a blank .gitignore in any empty directories you may want(since git doesnt track empty directories): find . -type d -empty -exec touch {}/.gitignore \;. Note that you and others on you team will want to use the same username on the webserver when adding your remote. This prevents permissions problems on the server, and yet the git log will maintain your names based on how you installed git locally. Add the bare repo as your remote using a regular git remote add origin ssh://username@domain.com/var/www/path/to/barerepo.git/. You can now push to the bare repo. Now if you wanted, you could pull from the bare repo into the working directory of the dev site. After you make sure that works, try using an update hook under barerepo.git/hooks/post-update that looks something like this:

#!/bin/shecho

echo “*** Attempting to update Dev Site ***”
echo cd /var/www/path/to/site || exit
unset GIT_DIR
git pull origin master# You could compile sass stylesheets here if thats yer thing

echo
echo “*** If there are no errors above, the dev site has been updated ***”
echo

exec git-update-server-info

Putting it all together

Make sure that post-update hook is executable by running chmod +x barerepo.git/hooks/post-update. If the post-update file is not executable the hook will very quietly do nothing. Once you get this working, you can pretty much do the exact same thing for the production server except that your local remote will look like this: git remote add production ssh://username@domain.com/var/www/path/to/production/barerepo.git. The only other difference is that the path in the remotes and hook must refer to the production path. Now when you want to push to production, all you do is get a fresh pull from the dev remote with ‘git pull origin master’ and then push to production with git push production master. This helps to prevent accidentally pushing to production since you actually have to type ‘production’. Your teammates can do this too and there shouldn’t be any permissions problems. You can also build a staging server using this same pattern if needbe.

What about the database and user uploaded files?

Of course you will want to keep the database and user uploaded files outside of git, so you’ll need a separate method of pushing this stuff around. We frequently use a CMS called Concrete5 which saves these user uploaded files and has a database. I’ve developed the script below which will put both the source and target sites into maintenance mode briefly, transfer the database and the files directory. It’ll run tests and keep backups, but you should be extremely careful when entering the database connection information and files directories. You can use it to transfer to production or back to development. You may be able to adapt this script to your needs if you aren’t using Concrete5.

Concrete5 database and file migration script

This is the very true and bizarre conclusion to an actual series of events here at Flying Cork. For the sake of covering everyone’s ass, I will not call out anyone unduly or reward anyone with unearned SEO discovery. I’ve also changed the names of some of the companies involved (they are bold). This distinction is important because EVERYTHING else is true. Every word. All the names, numbers and weird little tidbits are real.

The story so far: Flying Cork found out someone had stolen our site. We learned who was responsible for the theft. A whois lookup is good for that. After a series of phone calls, Flying Cork filed a DMCA takedown notice with the host of thatsite. Now for the exciting conclusion to Flying Cork’s experience with content scraping and theft.

A few days had passed since the excitement of Monday. The week ended up being so hectic that I hadn’t found time to check on my takedown request. But that wouldn’t last long because as Friday morning broke the horizon.. s*** got real.

And then I was rewarded…. like Woooooo!

I woke up to the greatest voicemail I have ever personally received. Evar. No lie. Enjoy.

If at first you don’t succeed, try try again, with a bigger stick

By law, hosting providers have 48 hours to respond to a DMCA takedown notice. The overnight voicemail made it clear that we were dealing with a troll. The next morning, I logged into the TRIPLE0 hosting company’s support ticket system to see that my ticket was closed. But the site was still up. Ohhh hell no. Done.

So I began the steps I outlined previously – all over again. Only this time, looking for the host of TRIPLE0. Immediately, I encountered the other aspect of domain registration vs. domain hosting. Many registrars offer privacy add-ons to domain owners to keep their personal information private. It means that I couldn’t tell who was hosting TRIPLE0 just by looking at the whois result.

But luckily, we were still in the game. Taking another look at the source code for thatsite I saw a javascript link – a stat counter for the host of TRIPLE0. That was easy.

stat_counter.jpg

Good thing I had kept a copy of the form from earlier. I was able to easily take the same DMCA notice to the actual host. By the end of the business day – I received a polite and apologetic email from the host of TRIPLE0 informing me that the fake site had been removed. Just like that. Done.

End of story. Flying Cork 1, Odin Wellington 0.

Conclusion: Here’s the long and short of it. Relax and gather the facts, any way you can. Write everything down*. Use the resources I mentioned in the previous post. It will could go along way to helping you resolve the situation yourself without the cost of involving the legal people. But understand, if it doesn’t quickly come to the above resolution in your own case – contact a lawyer as soon as possible.

*you never know when you’ll have to write up a blog post that your big mouth thought was a super idea! And blame my boss for not letting me publish the Wayne’s World-themed version of this same story. Something about copyright material or such stuff… sounds made up to me.

This is the very true and bizarre conclusion to an actual series of events here at Flying Cork. For the sake of covering everyone’s ass, I will not call out anyone unduly or reward anyone with unearned SEO discovery. I’ve also changed the names of some of the companies involved (they are bold). This distinction is important because EVERYTHING else is true. Every word. All the names, numbers and weird little tidbits are real.

The story so far: Flying Cork found out someone had stolen our site. Google Analytics was helpful. We learned who was responsible for the theft. Let’s rejoin the story – just moments after I spoke to the ‘owner’ of thatsite.

Keep Trollin’, trollin’, trollin’

At 4:58pm I received a phone call from a “Richard” who claimed to have found a link on Twitter, that promised some sort of media buy coupon. It was very odd considering he said he had called a (516) number. But that number had somehow reached my personal (724) number. “Richard” indicated that he was interested in doing business and would call back.

When asked for a contact number, he gave the following: richards_phnumber.png, which is registered somewhere in Derby CT; however, he was calling me from a Bakersville, CA number spoofd-number.png. The problem is … it’s a spoofed number. “Richard” wanted to express his frustration at being misled between the two sites. I took his info and thanked him for the call.

Then it got REALLY weird…

Moments later, at 5:06pm, my phone rang again. This time from richards_phnumber.png, which was the same phone number associated with Roger Dowd, the domain contact. Only it wasn’t Roger this time. It was “MR. ODIN WELLINGTON” himself. He took the aggressive stance – parroting the previous concerns and wishes I had expressed to Roger. (i.e., take the site down or else). The thing that made it awesomely weird – Odin had a Southern accent. In my mind, I was picturing a sweaty, adolescent version of Yosemite Sam.

I tried to explain to him that I grew up in the old days of hacking. We used real phones back then. (That’s analog, ya little whippersnappers!). I asked him to please, please acknowledge the fact that he had been busted and drop the accent. But no dice. After several failed attempts to ask him to drop the whole gag – I just went with it.

Odin went on the claim:

  1. That Flying Cork stole his site.

  2. All the team member photos he paid for, well actually ALL the photos had come from iStock. (which is weird since one would assume those are real people on his team?!) He really was not good at this…

  3. His company had been in business since 2006 (even though the domain was registered 11/15/2013)

  4. At one point he tried to tell me that it used to operate as Hai2u and asked if I was familiar. I plead ignorance; fishing more for myself, even though I am aware of what kind of site Hai2u is. WARNING: DO NOT LOOK FOR HAI2U. It is a ‘shock site’ with horrifically graphic photos. Seriously – Don’t. Gross. No.

  5. That ‘Roger’ told Odin someone named Pace Lattin, from Flying Cork Media, had contacted them and threatened to write a negative post on his site: performinsiderDOTcom and that if this ‘threat’ was carried out — Odin would have no choice but to file a lawsuit. I wish I could remember if he said libel or slander. Pace Lattin is actually a real person. And a much maligned and discredited “Affiliate Marketer” who is considered to be the very definition of shady. Be sure to scroll through the first portion of links to more organic content, complaints, etc.

  6. His lawyers had already submitted a DMCA takedown notice with Rackspace as well as some other site.

This is when things really got fun. I tried my best to keep him talking. I wanted to get as much information as I could. At one point it struck me, there was no way I could invent all these details. This was pure comedy gold. It was at this moment that the idea for this multi-part blog story struck me.

So what else? I learned that Odin was from Texas. He owned several horses and was a “pulled-up by my bootstraps” self-made man who didn’t appreciate us stealing from him. ok… yeah. He repeatedly resisted when I asked him to look directly at the source code on the homepage of his supposed site.

Next step, go legal

Several times, I asked him for his legal contact so that I could pass along all information to the appropriate people. He wouldn’t give up that information. At this point, I began to suspect that I was dealing with a single individual. All three calls. Same voice. Same guy. So, I requested that any further correspondence he wished to send to Flying Cork should be submitted through the Flying Cork site form. I didn’t hold my breath for that to happen. Time to file a DMCA takedown notice to the hosting company of the fake site, thatsite.

Realizing that this was going to require a more direct approach, I drafted a DMCA notice of my own referring a great deal on some useful online sources. My father was a big proponent of keeping copies of everything legal and I’m glad I thought of him in this case. I saved that simple text doc to make sure I had a record of everything that I had entered in the form. I visited the host of thatsite, who I’ll call… TRIPLE0. I found the “Contact/Report Abuse” page (Their title, not mine) and I filled out the simplistic form, including my DMCA draft notice. This is how the first Monday of my career at Flying Cork went.

Well… damn. That was different. I couldn’t make that up even if I wanted. But I do respect our troll for one thing – he never cracked. Not once. Tune in tomorrow for Part 3 of Flying Cork’s reaction to plagiarism. Same bat-time. Same bat-channel.

If you haven’t yet read “Our Encounter with Plagiarism” please do so before reading the post below. This is the very true and bizarre conclusion to an actual series of events here at Flying Cork. For the sake of covering everyone’s ass, I will not call out anyone unduly or reward anyone with unearned SEO discovery. I’ve also changed the names of some of the companies involved (they are bold). This distinction is important because EVERYTHING else is true. Every word. All the names, numbers and weird little tidbits are real.

“What is going on here?!”

It was an early Monday morning when Sam asked me if the Interactive team had created a development site for flyingcorkmedia.com. She wanted to know if we were using thatsite as a test site? Perhaps, we had just forgotten to remove the Google Analytics code? She was seeing Twitter traffic that matched up to the imposter site. Heyyyy.

Good questions to ask, but she was asking a guy who started two days prior. I didn’t even know where the printer was. But tell me that someone has stolen our entire site and ripped off all the teams’ hard work?! I forgot about trying to get my email organized and insurance papers completed – this was much more fun! The buzz around the office was amazing to see. Especially the topic of all the fictitious names of our employees. I opened a browser to pull up thatsite… Yep. There it was.

sidebyside_headers.jpg

I looked at the code first to find out how it happened. Tim Snyder noticed it right away. Opening the homepage of thatsite, it was right there in the source code, easy for all to see. The person responsible for ripping off our teams’ code was too lazy and/or foolish enough to remove the proof right there in the code.

scrapcode.jpg

First thing – find out who is responsible

Meanwhile, I went to one of my favorite resources, WhoIs. It is made for this kind of situation. A whois lookup allows you find out who owns, operates and pays for a domain. Many sites offer whois lookup. In this instance, I used the WhoIs Domain Tools and Network Solutions to cross-check the results. It’s the quickest way to get pointed in the right direction.

whois_FAM.png

The first piece of information I saw in the results was cause for concern. It appeared that a Mr. Odin Wellington had registered the domain on the 15th of November, 2013. That was only three weeks before, but Flying Cork was formed in 2010. Odd.

Register vs. Host

You may hear people say they “own” a domain, but that isn’t quite true. Domains are registered. People can claim the right to use them, but ultimately, the governing bodies of the internet own all domains and keep watch over disputes involving domains…. like this one.

Registering a domain and hosting a domain don’t have to be done with the same company. It is actually good practice to keep them separate so that you can easily move between hosts in the event:

  • your site needs have changed and your new agency recommends a better host

  • you get into a tiff with your web developer

  • your hosting company disappears off the face of the earth

Cheap web hosting sites pop up overnight all the time. Not paying attention to who you host with could leave you without a site and without control over your domain.

This is not war, this is the Internet… There are rules

There are steps you must follow when you find a site stealing your content and you want it to come down. The good news is there is an easy way to get it taken down. You can file a DMCA (Digital Media Copyright Act) takedown notice.

After lunch and out of curiosity, I made a “good faith” call to the person listed as the domain contact in whois. I was able to reach an individual by phone, at , who identified himself as “Roger Dowd”.

Mr. Dowd expressed some shock at the news. He said the site design and development was out-sourced. After asking him to view our site flyingcorkmedia.com, he claimed to have no idea what happened. He assured me that he would contact the vendor “when international business hours permitted.” I explained to him that this site needed to come down immediately. I offered him one day before the attorneys get involved. He asked for my email address and phone number. Little did I realize what I had unknowingly initiated. The silliness that would follow. Glad I did though. It makes for a funny story.

Ok, this story is long. So the boss asked me to break it up. So far, everyone is still wondering why all this happened. At least now we know the ‘who’ – that someone is responsible. But we’re just getting started. This story takes a turn toward the bizarre. Check back tomorrow for Part 2 of Flying Cork’s reaction to plagiarism.

“What happens in Vegas, stays in Vegas.” In my case, I hope this isn’t true. No, I didn’t get married by Elvis to a girl I met off the strip after a three day bender. I was there recently for one of the most popular trade shows in my industry, Affiliate Summit. If you’re not familiar, Affiliate Summit is one of the premier marketing conferences where affiliate marketers, advertisers, publishers, media buyers and more come together to talk shop. With thousands of people in attendance, it’s one of the most anticipated shows in our industry.

Three Conference Key Performance Indicators:

Speaking of focus, we’re talking about Vegas, here. No other town has so many things competing for your attention, which is a perfect metaphor for the conference, itself. For the time being, let’s ignore the fact that I probably ate my weight in really good food, met several really interesting cab drivers, and didn’t beat the 9-point spread on the Denver game. Even though my lack of gambling knowledge left me at a loss on the weekend, the actual conference was a big win for all of my clients. I attribute this to my conference strategy, or what I affectionately refer to as my 3 “Conference KPI” (feel free to steal the term). These “conference KPI” are the three main goals I keep in the back of my mind when attending these types of conferences:

Face time

  • Face time is one of the most important pieces to solidifying any working relationship. When you’re managing 20 – 25 lead generation sources, you can email back and forth and talk on the phone all day, but nothing beats a face-to-face meeting to really connect with the other side of the fence. I use this time to share some of my clients’ overall program goals and discuss any pain points that may exist on either side. You never know where there might be additional opportunities. These types of meetings are also great for building trust with your sources.

New Opportunities

  • New opportunities can take many forms at a show like Affiliate Summit. Seeking out new networks or publishers can lead to additional sources of traffic, but so can talking to existing sources about what is in their company pipeline. Keep your clients’ high level goals in the forefront of your mind as you take meetings, and many times you’ll find additional opportunities for program growth.

Exposure

  • From a media buying perspective, exposure can go a long way. Publishers and networks are always looking for good offers to promote, so by getting out and talking to new networks and affiliates, you can spread awareness for your clients’ offers and attract new business. Bring plenty of business cards.

Since this conference was only three days long, making an impact in these three areas can be a challenge. It’s important to create a plan and start scheduling meetings far in advance. Make a list of the people you want to meet with the most, and schedule as many of those meetings as possible, first. Attend the after-hours or sponsored networking events taking place during the conference as well. I get more networking done outside of the conference than I do while I’m there, simply because everyone isn’t on a time crunch off-hours.

In my experience, an effective use of these conferences can have a huge impact on your media buying or lead generation programs, but it’s like most everything else in Vegas: High risk, big reward. It pays to have a partner that knows how to stack the deck.

Mike Perri is the Digital Account Executive at Flying Cork. He is a seasoned digital marketer with over 5 years of experience in media buying, affiliate marketing, account management, e-commerce and SEO.

Flying Cork Media ≠ Flying Ads Media

The unveiling of Flying Cork’s redesigned site was a big deal for the agency. It was a complete rebrand, involving great dedication and effort for everyone involved. Shortly after the official launch we were shocked to learn that someone stole the entire site in order to profit from our work. And what did they decide to name their agency? Flying Ads Media.

flyingadsmedia.png

The copycat site’s logo

The site wasn’t inspired by, or even based on, our site- it was our site. The entire source of flyingcorkmedia.com was copied along with 100% of the content including copywriting and imagery. Even though the page with our team members was identical, fictional names appeared under our headshots.

flyingadsmedia_team.png

Most of us were shocked, but it is a growing trend. Plagiarism on the web is a rampant problem and some websites solely exist to post scraped content. Luckily, we were able to detect our impersonator.

How it was found

Flying Cork uses various platforms for SEO and analytics data. While tracking content metrics, it was apparent that some pages’ titles included “Flying Ads Media” instead of “Flying Cork.” It was an immediate red flag along with the fact that it was under a separate domain. Other than the imaginary names with our photos, the site was identical to ours. At first, I thought there was a small possibility it was a quirky in-house test site mistakenly set public. A discussion with the Director of Interactive and a quick check of the registry information of flyingadsmedia.com showed us that it was, in fact, an attempt to profit off of all the hours of hard work that went into our agency site.

How to catch scraping of your own work

If you’re placing something in a public setting, there’s always a chance it could be stolen. By its nature, the internet enables anonymity so it’s no surprise that plagiarism is so high when the chance of getting caught is so low.

It was unexpected at Flying Cork, but we now have several measures in place to ensure this doesn’t happen again… We chose to highlight a method below that you can use on your own site.

Custom Alert and Segment in Google Analytics

If someone is stealing your entire site, there’s a good chance that they used all of the source code so the Google tracking code remains intact. If you do not check analytics regularly, a custom alert can be set up to send an email when your content is detected by an unknown hostname.

Under the “Admin” area of your Google Analytics property, go to the “Custom Alerts” section in the third column. Create a new alert entitled “Hostname Mismatch.” The conditions of the alert are the following:

alert_conditions.png

This means that if your tracking code is anywhere other than your site, you will get an automated email. Setting up a custom segment is also useful to isolate which pages set off the alert. To set this up in your own profile, you can click the following link and change flyingcorkmedia.com to your own hostname. Custom Segment

Additionally, there are sites dedicated to detecting scraped content like www.copyscape.com, which looks for copies of individual pages of your site.

“Good artists copy, great artists steal.” – Picasso

Picasso, of course, wasn’t referring to photocopying someone else’s artwork and signing your name to it. I’d like to believe he meant to find a style you appreciate and give it your own unique interpretation.

While we wish Flying Ads Media would have used our site for inspiration only, it was a clear case of plagiarism. With the help of the newest Flying Cork team member, we were able to act quickly to shut the site down.

Check back to find out how.

Marketing automation makes a lot of promises.

Essentially, leads come in through traditional channels – paid and organic search, sales calls, etc. Once they enter the pipeline, they begin receiving communications from your company. Their response to a communication dictates what happens next. Do they respond to the email? If so, they take one path. If not, they take another. If they interact with your company on social media, that’s noted as well. Lead scoring helps the sales team identify the hottest prospects and focus their efforts accordingly. Subsequently, that well-placed attention helps drive your company’s bottom line.

Sounds great, right? When executed correctly, it absolutely is. But the key is that it must be executed correctly.


Your Lead Gen

First, it’s important that lead gen not become an afterthought when a marketing automation system launches. The more qualified the leads that come in the door, the more likely they are to be successfully nurtured into paying customers. Make sure you have a good SEO strategy, are deploying a strong paid search plan, and have created landing pages that prominently feature your top offer and are driving leads into your database.

Ideally, marketing automation software will have strong ties to your CRM system through automatic, real-time data transfer. The sales team will know when and how often a prospect engages with your company, and when it’s time to step in and close the deal.

Some legacy CRMs may not have the technical capabilities necessary to integrate with a marketing automation system. Full integration is ideal; however, if that’s not possible, make sure that regular data transfer between the two systems is in place (whether manual or through automated database calls), and that your sales and marketing teams are well-versed on using both.

Your Content

Someone has to write all of the communications the leads receive through your marketing automation system. As with anything written on behalf of your company, it’s critical that every piece be well-written, invoke your overall brand tone and highlight competitive differentiators. But even more, it must be relevant to the lead’s unique needs at their particular place in the customer life cycle.

Your Team

Touch base with your “feet on the street.” Work with your sales and marketing teams to make sure everyone understands how a marketing automation system will impact how they do their jobs.

Your Metrics

Finally, keep tabs on your metrics. How are the automated campaigns working? Do you need to revise strategy or change content? Remember that nothing should be set in stone; adapt to what resonates with your leads and spurs them into action.

At its best, a marketing automation system can maximize efficiencies and help your company increase revenue. But if not executed correctly, it could end up relegated to the graveyard of good intentions. Follow these tips and rely on the metrics to tell you what’s working, and let the system speak for itself.

Betsy Piasente is the Digital Media Supervisor at Flying Cork. She is a copywriter and experienced B2B and B2C account manager, and has worked with such clients as OfficeMax and the National Security Agency.

Many professionals in our industry use “copy” and “content” interchangeably. While we might not make a distinction, they are different.

I need a content strategy stat! (psst, what is that again?)

As a former copywriter, I would get blank stares when I’d say to a client, “If you give me the content I can write copy.” While copy is content, it alone is not content strategy.

Content strategy is the act of ensuring that all of the online content you are producing—copy, graphics, photography, videos—is being shared on the right platforms and targeting the right audiences. Not sure if you’ve got a strategy? Consider the following questions:

  • If you have a website and you’re maintaining a blog and sending email, have you stopped to think about what you’re saying and to whom?
  • Do you know who is most likely to purchase your product or service? Are you speaking to them?
  • Do the messages you’re conveying track back to one of your business objectives?

If you answered “No” to most of them, you don’t have a strategy. You may have some pretty compelling copy though, which is a good place to start.

Copywriting is the actual text that engages or informs.

What you say and how you say it are of equal importance when trying to establish an online identity. Tone and voice should be consistent across your site as well as across mediums. Copy should work with images, graphics and videos to create a brand for your product or service that is recognizable and memorable.

Incorporate your brand into copy when and where it makes sense. For example, if you’re a whimsical brand, feel free to be fun and less formal in your messaging. Just be mindful of complicating the user experience with cute and quirky references when trying to help a user accomplish a task. There are best practices for the instructional text in drop-down menus and in form fields for a reason. Be clear and concise and use familiar wording in these situations to get the user to your call-to-action.

Keep SEO in mind.

While search terms and keywords should be kept in mind when developing copy for the web, organic content tends to appeal to both people and search engines. In fact, the most recent Google search algorithm rewards conversational copy over the old keyword stuffing practices. What this means is that the SEO rules have not really changed. If you’ve been producing original, quality content then keep up the good work!

Alexa Seretti is the Director of Interactive and Content Strategy at Flying Cork. She is a former copywriter and content strategist who has worked with clients such as UPMC, PNC and Nationwide Insurance.