Archive for the ‘Technology’ Category

Knowledge Nuggets

Friday, January 20th, 2012 by Christian Mattix

Anyone who has done development, design, or IT knows that over the course of working on a project, you collect various “nuggets” of knowledge that you ever learn or find. Here I’m going to share some of what I’ve discovered that may be able to help you in your own projects. I have cited the original source of the information if I have that available. If there is something that I’ve left out, feel free to add it in the comments.

“Fatal error: Out of memory…” occurring when PHP and Apache memory limits seem fine

This problem drove me crazy for a little while. I did everything that I thought I needed to do, I changed the php.ini file to increase the php memory available until I ran across this link which provided the answer. We are using WiredTree as our hosting provider, for their servers, the problem was fixed by simply adding: RLimitMem 128000000 to the .htaccess file in the www root directory. After doing this, it fixed everything.

I keep getting Notice: Undefined offset: 1 in views_block_view() in Drupal 7

After doing a bunch of operations during prototyping a Drupal 7 site we kept this error. There wasn’t anything that we seemed to be able to do to eliminate it from the Drupal administrative interface. After searching the web for quite some time I came across this page: http://objitsu.com/node/29 which gave me all of the information I need. From the article:

It’s caused by stale records in the block table that then fail to resolve. There’s plenty of reading material out there and suggested fixes etc. that I am sure work but once I knew what the problem was I applied *my process* for all Drupal problems like this.

  1. Find the code that issues the message..
  2. Trap the code and drupal_set_message() the offending item
  3. Use that information to fix-up the database / code as required.

Here’s how the fix works for this particular problem. In my case I edited views.module, line 569, here’s the code that was causing the notice to be show:

list($name, $display_id) = explode('-', $delta);

and here is what I added to the code to find out what the duff delta in question was…

if (count(explode('-',$delta)) == 1) {
  drupal_set_message($delta);
}
list($name, $display_id) = explode('-', $delta);

All I did then was refresh the page, take a note of hash value that was displayed and then cutting-and-pasting it into a command line MySQL session I issued this query:

mysql> DELETE FROM block WHERE delta = 'd98a0bfa5a33e7d8bab0fc0670bdc9fd';
Query OK, 4 ROWS affected (0.01 sec)

Which took out all four problem pages at once.

What are the command line commands for git?

We use git for source control of our iOS projects. I found a great cheat sheet of git commands here:
Git Cheat Sheet.

The Cost of Free

Thursday, June 16th, 2011 by Butch Whitmire

I emailed a respected marketer and he made a statement that was quite profound.  He said, “Free stuff we’ll take all day long.  But I also don’t want to work with somebody who gives away their products or services too cheap – if they can’t sell their own stuff, how can they help me sell mine?”

I loved his perspective in a time when open source code, free downloads, Groupons, free newsletters, “kids eat free,” are running rampant.  People seem to crave “free” and statistically, they move in big numbers when the see the word “free” attached to a marketing campaign.  However, I have big concerns with “free” (or the ridiculously reduced.)

As I wrote in an earlier post about scarcity, for things to be valuable people must perceive them as both a) useful and b) scarce.  So, when we say something is “free” (meaning zero monetary value) people intuit that the service or good is either not very useful to them or it is abundantly available to all.  Free lowers perceived value.

Another reason I am concerned about free is that people intrinsically intuit that “nothing is free.”  So, clients assume there are strings or other cost attached.  For example, our developers utilize an amazing open-source CMS/CMF called Drupal.  This PHP-based code is available to us and everyone for no cash outlay.  However, learning Drupal has been anything but free to Force 5.  Our team has invested scores and scores of unbillable R&D hours to learn this protocol.  “Free” usually has a cost attached – somewhere.

So, why are so many sales people and marketers using  “free” (or ridiculously under-priced)  to gain business?  For me, there are only four plausible explanations:

1) You are lowering the barrier to entry.  Free trials can lead to sales but they must be made scarce; meaning they are limited.  Free one time to get to know your product or service.  After that, it’s time to charge – drug dealers have known this for years.

2) You are relying on the social norm of reciprocity.  (You scratch my back, I’ll scratch yours.)  This is a risky approach.  As I mentioned, people usually assume “nothing is for free” so they will take and take from you with little compulsion to give you anything in return.

3) You don’t believe your product or service is really very valuable.  If this is the case, it’s time for a gut check.  It’s time to evaluate and change your product or service to meet the demands of a crazily competitive market.

4) You’re a little lazy or at least not very creative.  Free is easy.  Free is fast.  Free is simple. Free creates a lot of activity.  Free doesn’t require you to make a compelling case for your product.  Maybe it’s time to work on your marketing or selling skills, at least a little. 

So the question must be asked:  Are you overusing “free” and at what cost?

Is the Twitter nest getting crowded? Speculating Twitter’s next move

Thursday, June 2nd, 2011 by Nevin McElwrath

Hungry Twitter

Recent news of Twitter purchasing Tweetdeck and cutting off third-party development of Twitter clients has me wondering where Twitter is headed. Twitter has no doubt proved itself as a contender in the online service arena. But can it prove it’s well-carved niche with the likes of Google and Facebook?

With the limitation of additional third-party clients and Twitter themselves gobbling up the big names in the client space, it’s clear that Twitter is aiming to consolidate and make the Twitter experience more consistent. Is that the only reason? Maybe. Maybe not.

With Twitter’s success comes eyeballs, and lot’s of them. Lately, Twitter has been monetizing the size of their audience with promoted tweets, or purchased tweets that appear on every search and trending topic. It’s a method that has worked so far, but it’s not targeted. Even Facebook will tell you, targeted advertising is where the revenue is.

Maybe their next step is more relevant ads; ads that are based the content of your lists and what you are tweeting and retweeting. Sound familiar? Facebook uses a similar method to target ads on your Facebook profile. It’s a strategy that requires plenty of infrastructure. If we look close enough, some of that infrastructure is already in place with the “Who to Follow” feature.

What is the benefit to Twitter of having users choose a Twitter-branded client instead of the many third-party offerings? My guess is to measure front-end metrics. Fragmentation among clients could make it difficult to truly measure front end user activity. Back end activity is already being captured through the current client calls to the API. This all only makes sense if Twitter jumps into the targeted ad space.

What are your thoughts? Would it affect how you use Twitter if they moved to targeted advertising?

Netflix takes over the Internet

Wednesday, May 18th, 2011 by Christian Mattix

According to a report by Sandvine, Netflix is now the largest source of internet traffic in North America during peak hours. Netflix streaming video service now accounts fro about 29% of peak traffic, overtaking P2P, Bittorrent, and Social Networking.

Network Traffic Graph

Almost half of internet traffic is Real-Time Entertainment

Internet Application Traffic Sources

Netflix accounts for 29.7% of Downtream traffic (provided by Sandvine)

These numbers show a distinct shift in media consumer behavior. More and more of people’s entertainment is coming from OnDemand sources. Below is an interview with Netflix CEO given by TechCrunch talking about the future of his company. He says “Streaming is at the core of our business,” and it seems that he is very much correct.

Source: TechCrunch.com

While this is great for consumers, where does it leave advertisers? The rise of on-demand media has made the time honored tradition of a “time slot” in advertising more and more obsolete.

What do you think? Is the internet going to fully replace our TVs? Is the generation that grew up with “on-demand” entertainment at their fingertips going to continue to consume media like the cable and networks provide? Where exactly do advertisers fit? We at Force 5 would love to speak with you about video opportunities, cutting edge marketing, or internet strategies to bring your brand to new customers. Just give us a call or fill out our Force 5 contact form and we will be happy to speak with you.

Now pass the popcorn. . . . lets see what is on the Internet.

Web of One

Tuesday, May 17th, 2011 by David Morgan

The Filter bubble by Eli Pariser

I was listening to a TED talk yesterday from Eli Pariser, who just wrote the book “The Filter Bubble”.In his talk, he tells of the personalization taking place on the web. Everything is filtered before it gets to us. I have an interest in sailing, and listed that on my facebook. And lo and behold, I see ads and articles on Sailing. Google Ad words looks at blogs, and then show ads linked to key words found in the article.

In fact, Google uses 57 different criteria to filter content to you. This might include your location, you age, gender, and whatever else they know about you.

Is personalization a good thing? In most cases, sure. I don’t mind seeing ads on sailing, but what am I missing? Eli’s premise is that you start to see only your filter—a filter that’s not necessarily controlled by you. So if I’m conservative, I may not see liberal points of view. If I like dogs, I might not see cats…Get the picture?

Some argue that most people lack the time, motivation and self-knowledge to customize their filter, if they are given the chance. But others think that automatic personalization severely limits the power of the net to stretch our minds.

Do you want to see opposing views on a subject? Do you want to see challenging and contrary viewpoints? Is your filter relevant, important, uncomfortable, challenging, other points of view? Again, as we’ve noted in previous blogs, its all about data mining.

As a brand development and marketing communications firm, Force 5 is always interested in metrics. We want to know if our target audience for any given product or service is seeing (and responding to) our message. But has data mining and filtering gone too far—limiting our selections, making a “web of one”—instead of a “web of many”? What do you think?

Plymouth Indiana Riverside Intermediate School 6th Graders rank #1 in the nation on FBI contest

Friday, May 13th, 2011 by Christian Mattix

FBI-SOS Internet Challenge Seal

In a world where we often hear about “these kids these days” it is great to hear about those doing very well. This spring the 6th graders from Riverside Intermediate School in Plymouth, IN for scoring highest in the nation for April 2011 on the FBI-SOS Internet Safety Challenge. From the FBI-SOS Internet Safety Challenge website:

The mission of the FBI-SOS Internet Challenge is to promote cyber citizenship among students by engaging them in a fun, age-appropriate, competitive online program where they learn how to safely and responsibly use the internet.
Source: www.fbi-sos.org

Amy Gerard, the Computer Applications teacher at the school should be very proud of her accomplishments with her students.

“They had the highest score in the nation for the month of April,” said Gerard. “The FBI office in Indianapolis will be sending a representative later in the month to talk to the students about internet safety, about what it’s like to work at the FBI and present us with a trophy.”

“That technology offers all sorts of exciting opportunities but our kids need to be aware that it also has possible dangers. You see news stories all the time about bad things that can happen to kids who aren’t careful. It’s very important they be aware of possible dangers and make good decisions.”
Source: Plymouth Schools’ Alumni Association

With the commitment to security that we have at Force 5 it is great to see area schools instilling the same values into their students. What to all you readers think? Should computer security and and online safety be added to the core curriculum of our schools?

How-To: Create a Simple Slideshow Header in Drupal 7

Thursday, May 5th, 2011 by Christian Mattix

UPDATE: Since the posting of this article there has been dramatic improvements by the community and now this is no longer the best way to implement this feature. We now use the “Views Slideshow,” found at: http://drupal.org/project/views_slideshow. We have used this method to create the various slideshows for the City of South Bend at www.SouthBendOn.com.


One of the more common design elements of modern webpage design is a large content area on the landing page of a website. Though there are some Drupal 7 themes that have this feature already (Marinelli comes to mind), what if you want to use a different base theme (like Zen)? In this How-To I will discuss how to create a simple slideshow that can be used in any theme.

The first thing that needs to be done is to ensure that your Drupal 7 environment is set up to support the slideshow. The following Drupal 7 modules need to be installed:

The WYSIWYG module (http://drupal.org/project/wysiwyg) also can be installed to make editing the content easier, but it is not necessary.

Theme “.info” and supporting files

In order to incorporate the slideshow into your theme you will need to reference some external resources in your theme.info file. You will need to add a stylesheet that defines the UI and the JavaScript libraries necessary to make it work. First obtain the following jQuery libraries and place them in the “js” directory of your theme (or other directory that holds the themes external JavaScript files):

  • jquery.cycle.all.min.js
  • jquery.easing.1.3.js

Once you have those files where they need to be, then create a new JavaScript file in the “js” directory. For the purpose of this article, we will name it utility.js. In that file place the following code:

jQuery(document).ready(function() {
	jQuery('.slides').cycle({
		fx: 		'fade',
   		speed:       500, 
    	        timeout:     6000, 
    	        pager:      '.slidenav', 
   		pagerEvent: 'click', 
   		pauseOnPagerHover: true,
		pause:		true
	})
});

Once those files have been placed where they need to go, add the following to your themes “.info” file (assuming the files are in the “js” directory):

scripts[] = js/jquery.cycle.all.min.js
scripts[] = js/jquery.easing.1.3.js
scripts[] = js/utility.js

Now that you have the necessary JavaScript linked, you need to define the visual appearance and structure of the slideshow. The following is in the file slides.css that is located in my theme’s css directory.

@charset "UTF-8";
/* CSS Document */
 
.slideshow-container {
	height: 340px;
}
 
.slides {
	width: 970px;
	height: 340px;
	overflow: hidden;
	position: absolute;
	background: white;
}
 
.slides .slide {
	height: 340px;
}
 
.sdw-l, .sdw-r {
	background-repeat: no-repeat;
	width: 30px;
	height: 485px;
	position: absolute;
	z-index: 99;
}
 
.sdw-r {
	background-image: url(../images/sdw-r.png);
	margin: -155px 0 0 978px;
}
 
.sdw-l {
	background-image: url(../images/sdw-l.png);
	margin: -155px 0 0 -30px;
}
 
.slides .slide .text {
	float: left;
	width: 450px;
	padding: 10px 15px;
}
 
.slides .slide .text p {
	line-height: 1.5em;
}
 
.slides .slide .text p a {
	color: #4a64aa;
	text-decoration: none;
}
 
.slides .slide .text p a:hover {
	text-decoration: underline;
}
 
.slides .slide .photo {
	overflow: hidden;
	width: 480px;
	height: 280px;
	text-align: center;
	vertical-align: middle;
	float: right;
}
 
.slides .slide .photo img {
	margin: 20px auto;
}
 
.slideshow-container .slidenav {
	position: relative;
	margin: 280px 55px 0 0;
	z-index: 100;
	float: right;
}
 
.slideshow-container .slidenav a {
	display: block;
	height: 30px;
	width: 30px;
	text-align: center;
	margin: 0 8px;
	float: left;
	background-color: #e5e2df;
	color: #a1988c;
	text-decoration: none;
	line-height: 30px;
}
 
.slideshow-container .slidenav a:hover {
	background-color: #4a64aa;
	color: white;
}
 
.slideshow-container .slidenav a.activeSlide {
	color: #4a64aa;
}
 
.slideshow-container .slidenav a.activeSlide:hover {
	color: white;
}

Of course the colors and other design related items will be changed to match the visual look and feel of the theme that you are creating. Once the CSS file is created and in the necessary directory, the theme needs to be informed of its existence. Simply add the following line to your themes “.info” file.

stylesheets[all][]        = css/slides.css

One last item needs to be added to the themes “.info” file. The region needs to be defined for the location of the slideshow. I have created a region named “slideshow”. To add this add the following in the regions section of the .info file.

regions[slideshow]      = Slideshow

The final structural item that needs to be modified is the page.tpl.php template file. The template needs to be modified to render the slideshow content. Below is a snippet of the template that is necessary. Notice that the only thing necessary to display the slideshow contents in the print render... call for the slideshow region.

<div class="sdw-l"></div><div class="sdw-r"></div>
<?php print render($page['slideshow']); ?>

Slide Show Content type

Once the structural elements are taken care of now you need to create a “Slide Show Content” content type so that the items can be easily added.

  1. In the “Content Types” section of the Drupal administrative interface create the type. In this type a 3 fields:

    • Title
    • Body Text
    • Slide Image
  2. In the “Manage Display” tab move both “Body Text” and “Slide Image” to be hidden. Also, the comments for this content type should be disabled.
  3. Once you have the content type, you can create a new slide using the “Add Content” links and populating the form fields.

Creating the Slideshow View

Much of the power of this approach comes from the View module. In order to correctly gather the slides that are to be displayed and then render them on the properly a new view needs to be created. In the administrative interface select Structure->Views and create a new view. I named mine “Front Page Slide Show Content”. Do the following to create the view block:

  1. Create a “Block” display for the view
  2. Under Format, select “Unformatted list”
  3. Under Format -> Settings, select “None” for the Grouping Field, and enter “slide” for the Row Class
  4. Under Show->Settings check all “Content: Title”, “Content: Body”, and “Content: Slide Image” as inline fields
  5. In order for the correct XHTML to be generated the output of the fields needs to be added and then modified. User the Views admin UI to add the Title, Body, and Slide Image fields within the “FIELDS” section. Once you have done so make the following changes to the fields.
    • Content: Title=> Under “Rewrite Results,” check the “Rewrite the output” box and use the following in the text:

      <div class="text"><h2>[title]</h2>
    • Content: Body=>Under “Rewrite Results,” check the “Rewrite the output” box and use the following in the text:
      <p>[body]</p></div>
    • Content: Slide Image=>Under “Style Settings,” check the box for “Wrap field in HTML,” choose “DIV” for the HTML element. Check the “Create a CSS class” box and enter “photo” for the CSS class.
  6. Add “Content: Type = Slide Show Conent” to the View’s filter criteria.
  7. Under Block Name enter a name that you will reference when you add the block to the page’s structure
  8. Save the view

View Block Template File

Now that we have the view and the content type for the slideshow, we need to make sure that the block will render properly within the page. To do that I have a custom template file for this view’s block. For this article the name of this file is views-view--slide-show-content.tpl.php. Below is the contents of the file:

<div class="<?php print $classes; ?>">
<div class="slideshow-container">
<div class="slidenav"></div>
<div class="slides">
  <?php if ($rows) { ?>
      <?php print $rows; ?>
  <?php } ?>
</div> <!-- //slides -->
</div> <!-- //slideshow-container -->
</div> <!-- //classes -->

Adding the Slideshow and wrapping up

The final step is adding the block to the page design. To do that, go to the Structure->Blocks section of the Administrative interface. From there add the View Block that you just created to the “Slideshow” region that you defined earlier. Now once you refresh your cache and look at your page you will see the slideshow.

We at Force 5 are always looking for ways to improve, so I welcome any comments or suggestions that you might have. Since Drupal 7 is so new and there is little documentation on many of the features I look forward to hearing the community’s voice for suggestions. If you would like to hear more about Force 5 Drupal development, feel free to Contact us and we would be happy to discuss them with you. In the meantime feel free to read our blog or read other How-Tos

Why Facebook launched the Send button

Wednesday, April 27th, 2011 by Nevin McElwrath

Facebook on Monday launched a new way to share content online – the Send button. While the functionality is nothing new, how you share content with friends may change with this new process of sharing. Facebook’s goal is to be that “pipe” in which you share more and more information, ultimately learning much more about you so it can deliver specific and targeted advertising down the road.

Let’s look at Facebook’s point of view for a minute. Why do you share links now? You know someone who would find a use for that content, right? Here’s an example scenario: You thought your friend would like this new recipe on a cooking site because she is into gluten free cooking. You send the web address to your friend(s) through the Send button, Facebook takes note of who you send it to, what the link is, the content of the page you sent, and your message. Before your friend knows it, they are seeing ads for gluten free cooking in the right hand column of your Facebook profile. This is exactly what advertisers are after – user relevance. Would you pay more to know that your product or service is being seen by your exact target audience? Absolutely. Targeted ads sell at a premium and Facebook is upping the relevance factor on it’s users.

The difference here is that your friends are helping create your interest profiles for advertisers. In some instances, in bulk thanks to Facebook’s group features.

What are your views on targeted ads? Creepy? Useful? Reminds you of the annoying eCards from a few years back? Let us know in the comments below – or better yet, “Send” this story to a friend. :)

Where in the world are you?

Tuesday, April 26th, 2011 by David Morgan
Iphone location map

A peek at location data sorted on an Iphone

For the last week, the tech news has been reporting that Apple has secret files on the iPhone that track user location and store it on the device, without the permission of the device owner. It’s unclear what the data is used for and why Apple has been collecting it in iOS products that carry a 3G antenna for nearly a year now.

There’s no evidence of that information being sent to Apple or anybody else. Even so, the data is unencrypted, giving anyone with access to your phone or computer where backups may be stored a way to grab the data and extrapolate a person’s whereabouts and routines.

Soon after this announcement, Microsoft and Android fessed up as well—stating that their devices collected records of the physical locations of customers who use their mobile operating system. Microsoft does say, however, that location histories are not saved directly on the device. That’s different from Apple’s practice of recording the locations of visible cell towers on iPhone and iPad devices, which can result in more than a year’s worth of data being quietly logged. Google’s approach, by contrast, records only the last few dozen locations on Android phones.

All of these practices have come under scrutiny by members of congress and several attorneys General of some states.
Note this isn’t the data that you allow to happen—like our Ipad asking whether or not it can use location services to see if I’m close to a gas station. This is data being recorded without permission. To make applications like maps work, of course, it’s necessary for a smartphone Ipad to transmit its GPS coordinates to a remote server–and, in exchange, receive nearby restaurant reviews, or driving directions, and so on.

Privacy concerns begin to arise when a unique device ID is transmitted, which allows a company to track a customer’s whereabouts over an extended period of time. That’s the privacy issue.

As marketers at Force 5, we’re always interested in how our advertising or marketing campaigns are doing—are they reaching the right audiences, are we getting responses? However, the unauthorized location services on smartphones is going too far. Tracking minute by minute locations is certainly an invasion of privacy. This will be in the news for a while as a good balance of location services for convenience and safety versus invasion of privacy issues are debated. Stay tuned. To read more, check out cnet.com

New Research Shows Mobile Internet Usage a Daily Habit for One in Five Americans

Tuesday, April 19th, 2011 by David Morgan

Going Mobile? -Listen to this projection….

A recent study by Morgan Stanley projects mobile internet users to exceed desktop internet users within the next few years. (2015)
Yikes! – - Powerful stat.

Believe it or not, the question isn’t “Should you go mobile?” but rather “Can you afford not to…?”
Here are some more mobile stats for our Force 5 friends to ponder:
• U.S. is the #1 country using mobile web — taking up over 30% of the global mobile web market.
• 87% of mobile users access the mobile web more than once a day, with more than half accessing 5 times per day.
• Over 50% of males between 18-34 are using mobile media, making a mobile web presence a must for advertisers (and over 37% of females between 18-34.)
• 85% year over year increase in overall smartphone ownership.
• Mobile Media Users (mobile browsers, application users, and downloaders) are growing 24% year over year.
• 80.1 million mobile users browse, use applications, or download via the mobile web.
• 35% of all U.S. mobile phone users (and 78% of all smartphone users) are browsing the mobile Internet to visit their favorite companies.
• mobile payments via PayPal are up nearly 650% over the previous year.
• mobile page views for U.S. retailers increased an average of 388% over the previous year.

Now, listen to this…
According to the 2011 Mobile Internet Attitudes Report from Antenna, 27 percent of American and 27 percent of British consumers that can access the internet on their mobile phone are discouraged from using the mobile Internet by websites that don’t display properly or function properly on their mobile screens.
A mobile website gives your customers and potential customers the freedom to interact with your brand at their convenience. And nothing is more convenient than their mobile phone. Without a mobile site, this great opportunity is lost.

My friend, Brant Kelsey (Kelsey Design) explains it this way: “Think of your website as a convenience store and your mobile site as a vending machine. Your mobile site needs to have your most popular goods and services front-and-center and easily accessible.”
I love the analogy. The smart phone is small—the content area is limited so your content must be specific. Mobile users aren’t just surfing-they go to the web for concise and direct content – They have a reason to visit – They find the information and move on. Most importantly, they won’t waste time trying to find information on a site that hasn’t been built for the mobile web.

If your site hasn’t been optimized for the mobile web, viewers may see content out of order, missing images, links and tabs not formatted—in short…a mess.
Having a mobile site adds to your contact with the customer—and it empowers them to visit you wherever and whenever they need you.
And hey, there’s nothing wrong with being in your client’s pocket.

Source:
(Marketwire – February 24, 2011) –
www.antennasoftware.com