blog

SEO : The Rel Attribute

After attending the WordPress User Group this week I decided to pay slightly more attention to the SEO elements of the page content on the Cyber Sprocket site. One of the topics they brought up was the importance of the rel tag. Google is putting more emphasis on the linkages between sites since the Panda update (http://www.google.com/search?q=google+panda+update) this past summer. They are not just counting links in/out, that is old school. They are using heuristics to determine the nature of the relationships and assign different weights based on the type of relationship, proximity, and a dozen other metrics. You can use the rel attribute of your links to influence the algorithm. How much weight they give the rel attributes is still unknown, however there is enough weight that most SEO groups recommend you always use rel on links (and often recommend the use of rev). The ...

0 Comment   |   Posted in blog,Tips & Tricks,Web Apps,Wordpress November 10, 2011

Licensing Online Music : ASCAP

One of our current labs projects deals with streaming music online.  During our research into setting up a proper streaming media service we stumbled upon something that is almost as complex as the technology platforms that make this online audio work.   Music licensing. If you are planning to do online streaming you need to think about licensing.  It can account for up to HALF of your expenses.   If you are conducting any sort of "public performance", and the agencies consider streaming audio across the Internet a public performance, you must have a license. To get started you need to speak to ALL of the FOUR licensing agencies:  SoundExchange, SESAC, ASCAP, and BMI. In part 1 of our 4-part series we will take a brief look at the ASCAP license maze. ASCAP Licensing Here is the quote from ASCAP on public licensing: A public performance ...

0 Comment   |   Posted in blog,Streaming Music October 29, 2011
Mobile Apps Presentation

Mobile Apps Presentation

Charleston Digital Corridor invited us to speak at their "Fridays At The Corridor" event this morning. The presentation was an introduction into the world of mobile apps from a business perspective.   Why should you do a mobile app, how to get started, and how to engage the development team.    It was not an in-depth discussion but rather a chance to hit on some of the high points, the recurring topics we discuss when clients ask us to develop an app for them. A copy of the slide show can be found here.    The Digital Corridor will also be publishing the podcast on their website.  When that is done we'll put a link up here to that ...

0 Comment   |   Posted in blog,Gadgets,Mobile Apps October 28, 2011

PostgreSQL – Exclusive Locking On Triggers

We have been working on a client's project and dealing with an especially complex view in a PostgreSQL database. The view has a few tables linked together as well as several sub queries, a case statement, and a number of elements that do aggregate functions to build a single record of the view. After updating the admin panel to allow them to use the database & admin page for processing orders (versus an email + excel system) we ran into several issues. The first issue was a significant degradation in performance whenever the system was under moderate load. This is important to note as our baseline release testing did not uncover the problem. The logic in the app was syntactically and functionally correct. However the application misbehaved under load, causing a bottleneck and essentially shutting down the app. The Table Trigger Loop We implemented a series of update triggers and stored procedures to propagate certain data ...

0 Comment   |   Posted in blog,Database,Performance Optimization,PostgreSQL October 14, 2011

Where Is This Website Hosted?

When I come across one of the many staging or development servers that have not been active in a while I use the following techniques to locate where the website is living. It can be on any one of our servers, a server owned by the client, or a temporary virtual machine. I always do an nslookup when I'm not sure and then look in the Apache config file on the "offending" server... First find the thing I'm looking for... [lcleveland@host ~]$ nslookup mc-mattox.cybersprocket.com Server: 69.16.234.115 Address: 69.16.234.115#53 Non-authoritative answer: mc-mattox.cybersprocket.com canonical name = dev.cybersprocket.com. Name: dev.cybersprocket.com Address: 70.89.150.194 This is easy because it is a CNAME to our dev server, but if it was a standard A record I'd only have the IP address. I usually compare the IP address to an nslookup on dev.cybersprocket.com or live.cybersprocket.com and if it is not on there do a general WHOIS from google on the IP address to locate ...

Log In To Linux Using SSH Keys

Log In To Linux Using SSH Keys

There is an easier way to connect to your Linux box than having to remember and type passwords to gain access. We use git with a secured repository on a remote linux server.   Often we want to push code, but having to answer the password prompts for every submodule can be a pain. There is an easy way to set up a "pre-trusted" handshake between the destination and source boxes using SSH pre-shared keys. In the following examples I am connecting from my Linux user on box "S" to a different user on box "D" via SSH. Client/Source Side Setup First you'll need a key that is unique to your source/originating end of the connection (box "S"). Go to your home directory and use this command: ssh-keygen -t rsa Just press enter for all the defaults. This generates your identity, ...

0 Comment   |   Posted in blog,Security,SSH October 06, 2011
App Inventor First Impressions : Coding An App

App Inventor First Impressions : Coding An App

We finally got our first App Inventor mobile application built and are underway on our second app. Here are our first impressions of building an actual app. First App - The Pat A Cat Tutorial The initial tutorial went very easily, after the fight to get the development environment set up. The first application took less than 5 minutes to create and get working, even in a standalone packaged app sent to my phone. I glossed over the "pet a cat" tutorial then created it without referring to the docs. It was very intuitive. Second App - Barcode Scanner The second attempt was a basic prototype of a far more complex application that was created with Eclipse and the Android SDK combined with the open source Zxing project. The idea is to have a simple bar-code scanner that when it scans ...

0 Comment   |   Posted in Android,App Inventor,blog,Frameworks,SDKs September 04, 2011
App Inventor First Impressions : Setting Up

App Inventor First Impressions : Setting Up

In the previous article I went over some of the notable items on the Terms of Service for Google App Inventor. Here we get into building our first simple app. App Inventor and Java While you don't need to know how to code in Java, you will need Java installed on your computer. Don't worry, your computer probably already has Java on it. If not, it is usually a simple process to install or upgrade Java on your system. It is not any more difficult than installing or upgrading Flash. That said, sometimes getting Flash or Java upgraded and installed can be a challenge depending on your computer security settings, hardware, disk space, memory, and other unique factors that require you to hire a Comp Sci major just to get started. Notes about App Inventory ...

0 Comment   |   Posted in App Inventor,blog,Frameworks,Java,Programming Languages September 04, 2011
App Inventor First Impressions : Signing Up

App Inventor First Impressions : Signing Up

Google App Inventor is a service and development platform provided by Google to make it easier to create and deploy Android mobile applications. I am reviewing the viability of this platform now that the technology has matured a bit and is gaining more acceptance in the community. It appears this project may have some longevity, which is always a concern with any Google endeavor. One of the risk factors of a service like this is that the provider can pull the plug at any time. As many companies have learned along the way, if you rely on a Google Labs project as a core part of any project you may well find yourself re-inventing and re-creating on relatively short notice. Google has a history of dropping anything they consider ...

0 Comment   |   Posted in Android,App Inventor,blog,Frameworks,SDKs September 04, 2011
Apple’s On Top & How They’ll Self-Marginalize

Apple’s On Top & How They’ll Self-Marginalize

Apple Exceeds Exxon's Market Cap An article was shared on a discussion list I am a part of about Apple having the same market cap as Exxon.   I wasn't forwarded the original reference, but I think this story can be attributed to Radio-Info.com.  The excerpt: Apple was actually bigger during part of the trading day, while Exxon pulled slightly ahead by the closing bell. Do you realize what that means? Exxon has long reigned as the world’s largest company ranked by market cap (price per share times the number of shares). By the time 4pm rolled around, Apple was valued at $346.7 billion, about $1.5 billion less than Exxon. Apple (“AAPL”) gained $20.80 on the day to close at $374.01 a share. Remember that Steve Jobs isn’t just into making hardware – he wants to control a lot of the ...

1 Comment   |   Posted in blog,Gadgets August 10, 2011
Joomla: Updating The Text For Categories and Sections

Joomla: Updating The Text For Categories and Sections

In Joomla you often have a page that displays the various categories of articles that appear on your website.   This is especially true for content-heavy sites. The main "category index" page is typically setup as a section on your Joomla site and is typically connected to a top-of-page or sidebar menu item.  Selecting the section from the menu will display the main section, or "category index" as I've called it here, page.   This "category index" will show the header for each category as well as the "lead-in" text, or description, for that category along with the article count. Here is an example from a client site: Here is how you change the section text: Login as an administrative user, typically at http://<siteurl>/administrator/index.php Select Content / Section Manager from the main menu. Click on the title of the section you wish to edit. Update or ...

0 Comment   |   Posted in blog July 27, 2011

Diagnosing “savemail: cannot save rejected email anywhere”

We recently ran into this message on one of our development servers.   There are a number of reasons this may happen and finding the right solution means finding the cause of the error.  These steps will help you isolate the cause of the error so you can start tracking down the proper solution.  In our case an errant application was not sending the from: field in the mail header thus causing the message to fail the basic mail format checks. Checking Aliases First make sure you have the following entries in /etc/aliases: # Basic system aliases -- these MUST be present MAILER-DAEMON:    postmaster postmaster:    root If these entries are present, try running these commands: # sendmail -bv MAILER-DAEMON # sendmail -bv postmaster It should come back immediately with a message like the one below: postmaster@cybersprocket.com... deliverable: mailer relay, host [127.0.0.1], user postmaster@cybersprocket.com If it does not, rebuild the aliases database by running the newaliases command: # newaliases Forcing A Resend With ...

0 Comment   |   Posted in blog,Email,Information Technology,servers July 26, 2011
Upgrade Issues from MooTools 1.2.4 to Mootools 1.3.2

Upgrade Issues from MooTools 1.2.4 to Mootools 1.3.2

This past week we worked on some site updates for Abundatrade.  During the updates we attempted to upgrade Mootools from 1.2.4 to 1.3.2.  Unfortunately this did not go as well as expected.  After 8 hours of trying to get it to work we ended up rolling back to Mootools Core 1.2.4 with Mootools More 1.2.5.1.   Here are some of the pitfalls. $empty Is Not Defined The first problem was with the FormCheck library from floor.ch.   The library requires the "old-school" $empty function definition from MooTools.   This has been deprecated in later versions.   It also turns out it is a pain to replicate, though we were able to patch around this by adding a this.$empty function() {} definition to the JavaScript library.    After doing so we ran into more problems with undefined methods so we ...

Mobile Phones Don’t Play Nice With WiFi

Now that Verizon has dropped their unlimited data plan it is time to follow up on the previous Droid Incredible Crashes WiFi Networks article. Since the Droid Incredible wreaks havoc on the home and office networks I often turn off WiFi on the phone. I do this so often that the WiFi on/off widget is on my home screen and is probably the most-used application on my phone. That is sad. As sad as that may be, a much more troubling issue is now on the horizon... and by horizon I mean arriving TODAY. While I was perfectly happy scanning my email and checking the latest news on my phone via the 3G network this is now going to be  a very costly endeavor. Every megabit has now become very costly and thus I need to make a choice. Crash the entire local network and render it useless or pay a premium to have a network ...

0 Comment   |   Posted in blog,Gadgets July 07, 2011

Is Government Legislation Killing Affiliate Businesses?

Recently I received an email from a customer that had purchased one of our Amazon plugins. The plugin software we sell makes it easier for people to create meaningful web content on their websites based on the Amazon product listings. By connecting this content to their affiliate program (Amazon Associates as they are called) account, many small businesses can either earn a living or at least offset their operating costs. This is a win-win situation for everyone involved. People surfing the web are typically presented with more relevant product placement ads because these small business operators tend to strive for a quality experience on their site over content-spamming. Amazon generates more sales. The site operator earns a small commission on those sales, helping support his website. However these days many state governments have decided that they too want ...

2 Comments   |   Posted in Affiliate Programs,blog,News July 01, 2011