Contact Info.
contacting us couldn't be easier
Please use the form here to shoot us a quick message. Please give us as much detail as possible.* = required fields
Or, use one of the methods below. If we do not get back to you right away, please make sure to leave us a message with your email or phone number.
Quick Message
Contacting o7th Web Design for Web, SEO, Database, Software Design, Development, and Management
Our Latest Works
The Notah Begay (NB3) ... more
Notah Begay III, the ... more
Trade shows and expos ... more
The U.S. Army ... more
Our Latest Articles
-
APR 01
Simple PDO Wrapper Class and Functions
Hey folks, since PDO is taking over, I figured it was prime time for me to jump the bandwagon of direct db access, and take the plunge into PDO. As a result, I have built myself a nice and simple PDO Wrapper class and some extra functions to do all the work that one would need to do against a database. Now, unfortunately, I am unable to test certain database, however, I have included the connections for them just in case someday I get to be rich and am able to purchase all needed softwares ... more -
MAR 20
Quick Way to Speed up Your ModX Site
Hey folks time for another quick article to get your ModX site running tip-top. This one will allow you to 'prefetch' your sites pages for a faster browsing experience. Now ModX has a pretty fantastic caching mechanism already built in, but I find that if your site has a lot of pages, sometimes that can take a bit on the initial load. This will take care of that issue. First and fore-most you will need to make sure to include the latest jQuery library in your templates. This can be ... more -
MAR 04
YUI Compressor GUI part Deux
I've made some major modifications to the YUI Compressor GUI I posted a while ago. This one no longer uses the Java library that was previously needed in order to run it. I updated all code to .Net 4, added in a progress bar, and converted the entire application from a WinForm projects into a WPF Solution. Here is the Installer... already compiled for your out-of-the-box usage. o7th YUI Compressor - Installer Here is the complete Visual Studio 2010 solution. o7th YUI Compressor ... more -
MAR 01
Clearing Your Browsers Cache
Here's a question and an issue I see all the time... ME: "Ok, your site has been re-designed and is up and running. Please make sure to clear out your web browsers cache so you can see the latest version." CLIENT: "I still can't see the latest version, how do I clear my web browsers cache, and what is it?" Of course, to me this seems like a simple thing to do, but most people don't even know what your browser cache is. Simply put, (and I say these exact words to my clients) "It's ... more -
FEB 20
Nano in Ubuntu Server - Copy/Paste
Since I forget about this all the time, and continually have to look it up, I thought I would post this priceless resource. Here is how to Copy/Paste while in a Ubuntu Server Shell (or command), while using the text editor 'Nano' Use the Alt-6 key combination to copy text to the "cut buffer". Similarly, use the Ctrl-K key combination to delete text (it is cut to the "cut buffer"). If no text is marked, these two commands copy or cut the entire line of text. Use the Ctrl-U key ... more -
FEB 14
Highlight First Sentence in Each Paragraph
I recently worked on a custom CMS project, where one of the requirements was to make the first sentence of each paragraph on each page render bold. While there is no 100% sure-fire way to do this, I found the following very helpful in achieving what I was after. First and Foremost, the function that does the dirty work: function bold_first_sentence($string) { $retStr = ''; preg_match_all('/(?<=[.?!]|^).*?(?=([.?!]).{0,3}[A-Z]|$)/s', $string[1], $matches); $mCt = ... more -
JAN 29
Wordpress 3.5 Plugin Update Issue
I've uncovered an issue when recently attempting to update a plugin in a Wordpress install on a windows hosting environment. For some reason, the WP update has tweaked the temp directory it uses to download and install plugin updates (and actually any other update for that matter) As a work-around you can add in the following code to your /your/path/wp-config.php file, and it should do the trick, so long as the path you enter is writable define('WP_TEMP_DIR','/your/path/to/temp'); // ... more -
JAN 15
Linux Video Conversion
I have recently made the transition from Windows to the latest Ubuntu distro. After being a long time Micro$oft user/abuser I figured it was time :) As a result I am finding that things are much different now that I am on this platform and recently came up against converting a *.mp4 video to multiple other formats for use in embedding it in a web page. As a result, I wanted to make sure that I got these out here for all to use in case they ever need an easy place to find it. (actually, ... more -
DEC 28
PHP Send email with Attachment
The following code will allow you to send an email, with a file attachment without the need for a 3rd party library. This code assumes that you already have the upload and form fully operational. function XMail( $from, $fromname, $to, $subj, $text, $filename) { //Open our file, rb = windows machine, you may need to change this to r for linux $f = fopen($filename,"rb"); //let's get a uniqueidentifier $un = strtoupper(uniqid(time())); //Set the from name ... more -
DEC 28
Quick PHP year Select Populator
I recently needed to add in a credit card expiration date year selector, and just wanted to share the code I used to populate the options. As always, please use this as you see fit. function ExpYear(){ //Get today's Year $curYear = date("Y"); //Just in case it's needed, get 2 years ago $sYear = $curYear - 2; //Now let's add 10 years $eYear = $curYear + 10; $ret = ''; //For $1 = 2 years ago, to 10 years from now, increment 1 year and populate our return variable for($i = ... more -
NOV 01
Simple PHP CAPTCHA
Here is a little snippet for anyone who needs it. What it does? Generates a random character string, stores it to a session variable (for verification), then renders a png image with a white background and random colors of the random characters. Change any variables you need. And call is using a simple <img> tag. Here's the code: <? $string = ''; // String of characters to randomly render $chars = ... more -
JUN 05
.Net Page Routing Without Global.asax
I found myself recently needing to get rid of the Global.asax file. In building a CDN for myself, having a global.asax file forces cookies to be sent with requests, and for the static content I am serving through my CDN, this is a no-no So what to do? I still need to do some page routing for a URL shortening service that is tied directly into this cdn (o7t.in is a shor url =)) The answer was pretty much staring me in the face, I just did not realize it, for about 2 days staring at it. ... more -
JUN 01
Speed Up The Web Part III
Boy oh boy, it's about time we go another one of these "Speed Up The Web" articles out here. As with our last article we showed you how you can develop your ASP.Net website and automatically concatenate your scripts and stylesheets. This article will show you a nice and easy caching mechanism for all your static content. This of course, assumes you do not have use of a CDN (Content Delivery Network). Now, here at o7th Web Design, we have built ourselves a CDN, and for the purposes of this ... more -
APR 18
IIS WarmUp Part II
I explained in my earlier post the importance of "warming up" your sites in IIS, especially using the latest .Net frameworks. Here is a major update to the code posted in that post. This one will allow you to "warm up" every site in IIS on your server. All you have to do is set the version of IIS to 7 or 6 depending on your install, and then run the program. You could also set the allApplications flag to false and put in the selected sites to "warm up". Please understand, because of the ... more -
APR 13
IIS Site Warmup
Hey folks, 'bout time for me to come around with a little tip. Thanks to IIS 7.5 Extensions and Microsoft (well... really Windows 8, and IIS 8 I guess...), we can now prime our Application Pools, when IIS starts. Now, though it would be nice to be able to simply plug it in and go, unfortunately this is not the case, and there is some configuring to do. Please see here: http://learn.iis.net/page.aspx/1089/iis-80-application-initialization/ Now, this article is not about the IIS ... more -
MAR 01
URL Rewriting without 3rd Party Add-Ons
.Net 3.5 Brought to developers of MVC applications the wonderful world of Page Routing. This allows us .Net developers to not have to worry about SEO friendly URLs (pretty much) any more, as we can simplify the URL rewritting process and get rid of those pesky 3rd party add-ons. .Net 4 brings this Page Routing to web forms. Which allows the same thing, however, now we do not have to be developing an MVC application in order for it to be utilized. Yes, there is a little extra code that is ... more -
OCT 04
YUI Compressor Windows GUI
Well, I finally broke down and decided I was sick and tired of having to type in a command prompt what I needed done with the YUI Compressor for my CSS and javascripts. This is sort-of a beta version, but I would like to know if anyone comes across any bugs in it... maybe someday (after it's perfected), I'll post up the source code for it, but for now... SUFFER! :) Nah, Enjoy, it's already saved me tons of hours! p.s. it requires the .Net 4 framework to be installed. Here it is: YUI ... more -
AUG 02
For the Visitors
Finally, in fairness, dear pets, I have posted the following message on the front door: TO ALL NON-PET OWNERS WHO VISIT AND LIKE TO COMPLAIN ABOUT OUR PETS: (1) They live here. You don't. (2) If you don't want their hair on your clothes, stay off the furniture. That's why they call it 'fur'-niture. (3) I like my pets a lot better than I like most people. (4) To you, they are animals. To me, they are adopted sons/daughters who are short, hairy, walk on all fours and don't speak ... more -
AUG 02
For the Pets
Dear Dogs and Cats: The dishes with the paw prints are yours and contain your food. The other dishes are mine and contain my food. Placing a paw print in the middle of my plate and food does not stake a claim for it becoming your food and dish, nor do I find that aesthetically pleasing in the slightest. The stairway was not designed by NASCAR and is not a racetrack. Racing me to the bottom is not the object. Tripping me doesn't help because I fall faster than you can run.. I cannot buy ... more -
JUL 21
7 Basic Rules of Great SEO
1. Understand User-Intent Keyword research is the cornerstone of any SEO campaign. Understanding user-intent when conducting and selecting your keywords is critical to getting your SEO off on the right foot and helping the right audience find your site. For instance, are "gym shoes," "sneakers" and "tennis shoes," the same thing? For some consumers those three words are completely interchangeable. But if a tennis player were looking for a new pair of shoes, they would search using "tennis ... more -
JUL 12
5 Common SEO Mistakes
SEO (search engine optimization) is the way to boost your online presence by getting better search engine rankings. Google has been doing a lot to improve the search quality. If you are not on google, you are not on the Internet. In this post I will outline the methods you in order to comply with Googles new algorithm. 1. Duplicate Content Some of the new blogger come to the blogging world and think that blogging is so easy "but if you write your whole blog and update it regularly by typing ... more -
JUN 09
Speed Up The Web - Part II.I
Welcome my friends to a second installment and follow-up to our Speed Up The Web series. In this installment we will be discussing another similar technique that was previously discussed in Part II. Minifying and Concatenating your stylesheets and javascripts. The previous process discussed a method to do this for your .Net website automatically by parsing the outputted HTML for your stylesheets and scripts, combining them into one string each, saving the strings to server cache and ... more -
JUN 01
Quick Way to Get Rid of Duplicates
What a great thing .Net 3.5+ is. Thanks to the advent of Linq, we can now get rid of duplicated values from an array extremely easily without having to code your brains out. [crayon lang="vb"] Dim TmpArray() As String = New String() {"VW", "Audi", "BMW", "Chevy", "VW", "Audi"} Dim Qry = (From n In TmpArray.Distinct Select n).ToList() [/crayon] ... more -
MAR 09
Speed Up The Web - Part II
Welcome my friends to this next installment of the 'Speed Up The Web' series. Today boys and girls we'll be delving deep into the mysteries of optimizing your scripts and stylesheets. There are a couple things to bear in mind as you develop a website. Place all your .css stylesheets in your head tag. This will make sure the styling for the site is rendered before anything else. Place all your .js javasctipt files at the bottom of the page, right before your ending body tag. This will ... more -
JAN 03
Speed Up The Web - Part I
Today is an age of broadband. More and more people are going this route determined to experience the web and it's multitude of services as quick and painless as possible. Coupled with the move to broadband, more and more people are experiencing the web via their mobile devices, and it is this, that most developers/designers forget about. With mobile devices becoming more and more mainstream, it is more important than ever that we as designers, and developers imply the importance of optimized ... more -
DEC 03
Do Your Own SEO
Does the whole idea of Internet marketing intimidate you? Are you thinking of hiring a professional? Well, we've got great news for you. It's really not difficult to do search engine optimization (SEO) yourself - you can save hundreds of dollars, and get the same results as the professionals do. You will probably get better results from highly qualified professionals, but you should definitely perform these do-it-yourself actions first. Once you've done some of this kind of work it will be ... more -
NOV 11
Dynamic Parameterized Queries
In my mind there is no more efficient method to programming and development that organizing your code into re-usable chunks. Any time you can re-use something you have already developed, it should be placed in an include file (php, and classic asp) and called when the chunk of code is needed.Thus said, I had a need to make some serious database calls and as everyone knows, simply cleaning the input is not the most effective way to query a database. It is always better to force the data ... more -
OCT 02
Reasons Why You Should Choose an SEO Friendly Website
When you think of designing a website for yourself, chances are that you dream of a website with all the bells and whistles – flash movies, stunning images, streaming audio – the works! But, unknown to you, these elements may actually be damaging your business prospects because what appears attractive on the surface is detractive when it comes to search engines rankings. If your website includes these elements, it is automatically relegated to a much lower rank even though the content is ... more