Sprite Starter Tutorial

digg del.icio.us TRACK TOP
By Eric Downing | Filed in CSS, html, Uncategorized, Web Design | No comments yet.

There are times that you are going to want to add some imagery to your site. This would normally mean using many different image files which will increase the load time for your site. What if you could use a single image and display portions of that image throughout your site.

You could use use a single image called a sprite sheet. This single image file can hold many different images in different tiles for use through out your website. This allows you to load a single file to your page and adjust the viewport in different locations throughtout your site to display the images or icons you are using. Many major websites use this technique.

Let’s use an image like the following:
smiley_sad

The size of this image is 220px x 110px. Each tile of the grid is then a 110px x 110px image. So we need to allow for a viewport to this image that is the size of the tile.

The method we are going to use is a simple div element with the class of “sprite”.

<div class="sprite >
</div>

The CSS for this element will use height and width to define the size of the div. You could also create a placeholder image of the size you want your image to be that is a transparent png and place that inside the div, but that is not necessary.

This snippet is the CSS that we require to show the first image with the smiley face in the div. We specify a height and width for the div to create a viewport into a segment of the image. Next set the background of the div to the image url. The last step is to make sure that the image does not repeat.

.sprite {
width: 110px;
height: 110px;
background: url("http://etechtips.com/wp-content/uploads/2017/04/smiley_sad.png");
background-repeat: no-repeat;
}

In order to display the next image in the sequence you need to use the position properties of the background property. Using the hover pseudo class will allow us to demonstrate the change image update. In the hover property we only need to override the background property with a position offset of -110px in the x direction. Notice that we have used a negative to move the image to the left. The origin of this image is considered 0,0.

.sprite:hover {
  background: url("http://etechtips.com/wp-content/uploads/2017/04/smiley_sad.png") -110px 0;
}

If you used a larger image with more tiles you could scale in both horizontal and vertical directions to show more images.

Example:

If the example doesn’t show in the article, either visit the single page post or checkout this codepen: Smiley Sample

Due to a minor adjustment, I used an offset of -109px for this image or I got a slight shift of the image when I hovered. You should only see the shift of smile to frown when you mouse over the image.

The tiles can be uniformly the same size or you could try packing in many images of different sizes and shapes. Just make sure that you allow for the viewport to not display overlapping images.

Tags: ,

Useful Git Aliases

digg del.icio.us TRACK TOP
By Eric Downing | Filed in Programming, Uncategorized, Utilities | No comments yet.

When you use git often, it is helpful to implement some aliases for frequent commands. Git has config options to allow for shortening commands or allowing you to use a simple command instead of a line of text that is difficult to remember.

Some simple shortcuts:
To make checkout shorter

git config --global alias.co checkout

This will allow you to just type:

git co

To make status shorter:

 
git config --global alias.st status

This will let you see the log with branch indicators and a graph of the branches:

git config --global alias.mylog "log --pretty=format:'%h %s [%an]' --graph"

This is similar to the mylog alias but is useful on a color terminal as it will highlight useful items in the comments:

git config --global alias.lol "log --graph --decorate --pretty=oneline --abbrev-commit ==all"

The results will be the following lines in your .gitconfig file:

[alias]
        st = status
        co = checkout
        mylog = log --pretty=format:'%h %s [%an]' --graph
        lol = log --graph --decorate --pretty=oneline --abbrev-commit --all

Tags:

MySQL: Connect from remote host

digg del.icio.us TRACK TOP
By Eric Downing | Filed in MySQL, Programming | No comments yet.

I have been working on some projects and using my home server to complete some initial testing. I continually have issues connecting from my pc to the database. The remote IP on my VPN changes and I have the server pretty well locked down so need to add the current IP address to the access list.

The database name, user, remotehost ip address, and password are required to use the following command. One note, that you should probably not use the ‘root’ user or admin user when setting this command and insure that you do not leave the access on servers where there could be issues with security.

GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'remotehost'
IDENTIFIED BY 'password';

This command has made it possible to connect using DB Visualizer which makes accessing the database very easy.

How to stop XfinityWifi from automatically connecting

digg del.icio.us TRACK TOP
By Eric Downing | Filed in Utilities | No comments yet.

I take the train to the city every day and I have been seeing my connection suddenly switch to ‘xfinitywifi’. This was getting very frustrating as I didn’t want to be on a public wifi and it was switching off of my hotspot or home network. It was not in the list of managed networks either. I found out that Comcast was automatically registering your Hardware MAC address and it would try to connect anytime it was in range.

The following steps helped to remove my Hardware MAC address from there system.

Login to Xfinity.com

  1. Click “My Account”
  2. Sign in — You must have access to billing to do this —
  3. Click “My Services” tab
  4. Click on “Xfinity Internet” on the subtab under “My Services & Equipment.”
  5. Select the “Manage devices for hotspot access” option
  6. Manage or remove the devices from your account by clicking “remove” next to each one you want to disconnect.

Tags:

I have been working to up my skills in the web development arena and have to say that The Odin Project is a great place to get started. The lesson plan directs you to not just learn the different languages required to create for the web, but also what is going on in the computer when you do things. It also gives you information about how to connect with other developers and how to progress your skills.

Some of the projects teach you to create images with a group of divs and pure CSS like this example of the Dancing Android character.

Also learning to re-create the basic display of the Google Home Page helps to learn styling techniques, using sprites and how to position objects.

Some of the best ways to learn HTML design are to take a web page that you like and try to re-create it without looking at the styling. Once you have a good approximation, see where you differed from the original.

OCR: Convert image to text

digg del.icio.us TRACK TOP
By Eric Downing | Filed in Uncategorized | No comments yet.

So I had a colleague receive a list of cities to import to a database in an excel spreadsheet. It turned out that someone had placed an image of the data in the spreadsheet instead of the text. This was looking to be a long day of typing when I happened upon the following awesome site: Online OCR . I was able to convert the image to text in MS Word, MS Excel or plain text.

All you have to do is take the image and use Paint or any image software, copy it from the document and save it as a png or jpeg. Then Save the file and you have the text ready to go. I did have a few mis-recognized letters, but changing a few keystrokes was better than the hour I would have wasted typing out all the cities.

And all this without registration. When I registered it gave a few more options for output such as PDF, different versions of Excel and Word, and RTF. Also multi page support, convert to black and white and creating zips.

There is also multi-language support and even an email service to send in the your docs and receive an email with the converted doc. There is a limit to the amount of pages you are allowed with the login service and you can purchase sets of pages in chunks if you use the service regularly.

Great Service and I was able to convert the list in just a few minutes.

Thanks Online OCR!

Windows GodMode folder

digg del.icio.us TRACK TOP
By Eric Downing | Filed in OS, Software, Uncategorized, Utilities, Windows | No comments yet.

I just found a way to create a settings folder in Windows 7. This God Mode folder can be created by:

1) Create a new Folder
2) Rename the folder to : GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}

Then the folder will change its icon and give you access to the settings for your computer in one place.

Postgres: Create table if it doesn’t already exist

digg del.icio.us TRACK TOP
By Eric Downing | Filed in Uncategorized | No comments yet.

I have a script that uploads a series of data into tables and occasionally I have an alternate table that is not part of my company template so I need to create the table at run time.  I do not want try to create the table if it exists already.  I also did not want to have to write a table check query and run that separately each time.

I looked into creating a function to do this but I found that with the release of Postgres 9.1 there was an addition of the “if exists” or in my case, “if not exists” that allowed me to run one query that would only create the table if the table does not exist already.

CREATE TABLE IF NOT EXISTS {schema}.{table_name}

(

sku character varying(100) not null,

product_image character_varying(300) not null

);

SQL: Shorten string to length

digg del.icio.us TRACK TOP
By Eric Downing | Filed in SQL | No comments yet.

I had a project the other day that required me to shorten a description down to a certain length and add an elipsis. The problem I encountered was making sure that the truncation did not happen in the middle of a word.

So using a Postgres database, I used the following query to return the shortened description without ending in a partial word.

select 
    case when length(long_description)>= 100
    then reverse(substring(reverse(left(long_description,100)),position(' ' in reverse(left(long_description,100))))) || '...'
    else long_description
    end
    from data_feed

The steps involved were to

  1.  Check if the field is over 100 characters,  if >100, then continue to step 2
  2.  Use left function to get 100 characters of the string
  3.  Reverse the string returned from left
  4.  Get a substring of the reversed truncated string from the first space (‘ ‘) to the end of the reversed truncated string
  5. Reverse the final string (So it is back to the correct direction of text)
  6. Append the ellipsis to the string ( or add a link or leave off if no extra chars are required)

 

Tags: ,

Invalid JPEG when uploading to photo service

digg del.icio.us TRACK TOP
By Eric Downing | Filed in Uncategorized | No comments yet.

I create cards in Adobe Illustrator or Photoshop on occasion and have had issues with getting my prints made at on-line or in-store photo services (such as Walgreens, Walmart or Target). I have received invalid JPEG errors.

You will need to make sure that your color mode is set to RGB for your files and not CMYK.

Ironically, even though most printers do better with CMYK, the RGB format is required for your JPEGS at these services.