#how to use del tag in html
Explore tagged Tumblr posts
Text
PODFICCER (and fic author) RESOURCE: things i learned about HTML today
-> from this reference work on ao3: A Complete Guide to 'Limited HTML' on AO3 by CodenameCarrot (please go leave a comment if you find anything here useful !!!)
EDIT: OMG Y'ALL I HAVE BEEN HAVING SO MUCH NERDY GEEKY FUN TWEAKING MY PODFIC HOW-TO GUIDE WITH THIS STUFF
headings, blockquote, div
----
-----
html currently allowed by ao3 html sanitizer
a. abbr. acronym. address. b. big. blockquote. br. caption. center. cite. code. col. colgroup. details. dd. del. dfn. div. dl. dt. em. figcaption. figure. h1. h2. h3. h4. h5. h6. hr. i. img. ins. kbd. li. ol. p. pre. q. rp. rt. ruby. s. samp. small. span. strike. strong. sub. summary. sup. table. tbody. td. tfoot. th. thead. tr. tt. u. ul. var.
-----
in-line (text) formatting tags supported by ao3
-----
OMG LOOK AT THIS !!! IDK WHEN I WOULD EVER USE THIS BUT LOOK HOW COOL !!!
-----
paragraphs & p formats: archiveofourown.org/works/5191202/chapters/161901154#AddParagraphs
-----
omg I'VE ALWAYS WONDERED HOW TO GET THAT LINE BREAK THINGY IN THE MIDDLE OF THE PAGE !!!
-----
end post
#podfic resource#podficcer resource#fic author resource#ao3 writer resource#ao3 fanfic#ao3#html resource#html reference#html#reference#resource#html tutorial#basic html guide#CodenameCarrot
6 notes
·
View notes
Video
youtube
Papercraft Aliens Versus Predator 2 – Alien Drone Modelo Personalizable ...
¡Llamado a todos los fans de Aliens Versus Predator 2! Presentamos un modelo papercraft personalizable del letal Alien Drone, disponible en formato PDO para que lo modifiques, ajustes y adaptes a tu gusto con Pepakura.
Este modelo no está desarrollado completamente, lo que significa que puedes optimizarlo como prefieras, eligiendo el tamaño, la disposición de las piezas y los detalles finales. ¡Un desafío perfecto para los entusiastas del papercraft que buscan algo único!
Detalles del Modelo:
✔ Personaje: Alien Drone (Aliens Versus Predator 2) ✔ Formato: PDO (editable en Pepakura) ✔ Texturas incluidas ✔ Modelo personalizable: Ajusta la escala, las partes y el diseño según tu preferencia
Este papercraft te permite explorar diferentes configuraciones, desde un diseño más sencillo hasta una versión ultra detallada. ¡Tú decides cómo armarlo!
📥 Descarga el archivo PDO aquí: 🔗 https://tiendajossorio.blogspot.com/2025/02/papercraft-aliens-versus-predator-2.html
🔹 Cómo personalizarlo:
Usa Pepakura Designer para modificar la estructura y distribución de las piezas.
Elige el tamaño ideal según tu preferencia antes de imprimir.
Personaliza las texturas para darle un aspecto más realista o estilizado.
Usa cartulina gruesa o papel de 200 g/m² para mayor estabilidad.
Experimenta con efectos de pintura y barniz para un acabado profesional.
✨ Comparte tu versión única en redes sociales y etiqueta a Recortables Ossorio. ¡Nos encantaría ver cómo personalizas tu Alien Drone!
#Papercraft #AliensVersusPredator #AlienDrone #DIY #Modelismo #Pepakura #PapercraftPersonalizado
Attention Aliens Versus Predator 2 fans! Here’s a customizable papercraft model of the terrifying Alien Drone, available in PDO format for you to modify, adjust, and adapt using Pepakura.
This model is not pre-prepared, meaning you can optimize it as you like, adjusting the size, part layout, and final details. A perfect challenge for papercraft enthusiasts looking for a unique and personalized creation!
Model Details:
✔ Character: Alien Drone (Aliens Versus Predator 2) ✔ Format: PDO (editable in Pepakura) ✔ Textures included ✔ Fully customizable: Adjust the scale, parts, and design to your preference
This papercraft gives you the freedom to explore different setups, from a simple version to a highly detailed one. You decide how to assemble it!
📥 Download the PDO file here: 🔗https://tiendajossorio.blogspot.com/2025/02/papercraft-aliens-versus-predator-2.html
🔹 How to customize it:
Use Pepakura Designer to modify the structure and part layout.
Choose your ideal size before printing.
Customize textures for a more realistic or stylized look.
Use thick cardstock or 200 g/m² paper for better stability.
Experiment with paint and varnish effects for a professional finish.
✨ Share your unique version on social media and tag Recortables Ossorio! We’d love to see how you personalize your Alien Drone!
#Papercraft #AliensVersusPredator #AlienDrone #DIY #ModelBuilding #Pepakura #CustomPapercraft
https://youtu.be/te8JznZMETc
0 notes
Text
What?
I would far rather it stripped the decorative elements out and committed to styling being a separate, modular thing that is device-aware.
HTML did do this. That's why HTML5 was a breaking change.
HTML5 split the semantic and presentation layers.
(The only non-semantic elements left are <div> and <span>. If you wanted to get rid of those, you'd need to add a whole fourth language to webdev, which is obviously absurd.)
Everything else has an actual meaning. Even <p> has a meaning, "this is a paragraph of text", which is a concept that is important in most human languages. <b> has legacy bold styles for backwards compatibility, but also because generally speaking that's how you bring attention to text, and that's a different meaning from <strong>. When I'm hand-writing HTML, I use <em> and <i> both, because <i> is correct for book titles and <em> is appropriate for emphasis. <u> is different from <mark> and <ins>, and <strike> is different from <del>. And so on. <table> isn't a presentational element; it defines a data structure that can be styled however you want.
Device-awareness is all up to CSS3 (as most recently revised), and its media queries and container queries. You can turn a <table> from something with two scrolling dimensions into something with one scrolling dimension, using CSS.
It is very not hard to write:
<p class="poem">This is a poem. <br/> it is centered. </p>
<style> .poem {text-align: center;} </style> and then when you want to make al poems on the page use a fancy font, instead of adding twelve bajillion <font> elements, you just change the style tag:
<style> .poem {text-align: center; font-family: cursive;} </style>
Exactly!
To phrase it wrong but also kind of right: If I can do it in naive Microsoft Word,* - if all I want to do mark up my hypertext - I should be able to do it in pure HTML. I don't want to "style" my home page with "cascading sheets," I'm writing text here. Text that I want underlined and centered.
*(I'm aware Word Skill is a deep and subtle river)
37 notes
·
View notes
Text
HTML ins Tag
The HTML <ins> tag is used to define a newly inserted text in an HTML document. The web browser renders this inserted text as an underline and you can also change it through the text-decoration property of CSS. The <del> element defines the part of the text that has been deleted and <ins> defines the part of the text that has been inserted to the…

View On WordPress
#del and ins tag in html#del tag#del tag in html#del tag in html5#how to use del tag in html#how to use ins tag in html#how to use ins tag in html 5 | learn html in urdu - hindi#html#html del tag#html in hindi#html ins tag#html insert tag full tutorial#html tags#html tutorial#html tutorials#html5#ins html tag#ins tag#ins tag in html#ins tag in html in hindi#ins tag in html5#insert tag#learn html#s tag in html#tag#what is ins tag in html
3 notes
·
View notes
Quote
There are no theorems in category theory.
Emily Riehl, Category Theory In Context
Mathematicians often tell her this; hence the book.
If I had to summarise her views in one sentence, it would be:
Everything is an adjunction.
I also like the division these mathematicians are making to her: essentially, a theorem is anything that solves Feynman’s challenge: by a series of clear, unsurprising steps, one arrives at an unexpected conclusion.
Examples for me include:
17 possible tessellations
6 ways to foliate a surface
27 lines on a cubic
1, 1, 1, 1, 1, 1, 28, 2, 8, 6, 992, 1, 3, 2, 16256, 2, 16, 16, 523264, 24, 8, 4 ways to link any-dimensional spheres.
the existence of sporadic groups
surprising rep-theory consequences of Young diagrams, Ferrers sequences, and so on (you could say the strangeness of integer partitions is really to blame here…)
59 icosahedra
8 geometric layouts
Books which are bristling with mathematical ideas of this kind include Montesinos on tessellations, Geometry and the Imagination (the original one), and Coxeter’s book on polyhedra (start with Baez on A-D-E if you want to follow my path). Moonshine and anything by Thurston or his students, I’ve found similarly flush with shockng content—quite different to what I thought mathematics would be like. (I had pictured something more like a formal logic book: row by row of symbols. But instead, the deeper I got into mathematics, the fewer the symbols and the more the surnames thanking the person who came up with some good idea.)
Note that a theorem is different here to some geometry — as in The Geometry of Schemes. The word geometry used in that sense, I feel, is to have a comprehensive enough vision of a subject to say how it “looks” — but the word theorem means the result is surprising or unintuitive.
This definition of a theorem, to me, presents a useful challenge to annoying pop-psychology that today lurks under the headings of Bayesianism, cognitive _______, behavioural econ/finance, and so on.
Following Buliga and Thurston to understand the nature of mathematical progress, within mathematics at least (where it’s clearer than elsewhere whether you understand something or not—compare to economic theory for example), there is a clear delination of what’s obvious and what’s not.
What is definitely not the case in mathematics, is that every logical or computable consequence of a set of definitions is computed and known immediately when the definitions are stated! You can look at a (particularly a good) mathematical exposition as walking you through the steps of which shifts in perspective you need to take to understand a conclusion. For example start with some group, then consider it as a topological object with a cohomology to get the centraliser. Or in Fourier analysis: re-present line-elements on a series of widening circles. Use hyperbolic geometry to learn about integers. Use stable commutator length (geometry) to learn about groups. Or read about Teichmüller stuff and mapping class groups because it’s the confluence of three rivers.
Sometimes mathematical explanations require fortitude (Gromov’s "energy") and sometimes a shift in perspective (Gromov’s (neg)"entropy").
This view of theorems should be contrasted to the disease of generalisation in mathematical culture. Citing two real-life grad students and a tenured professor in logic (one philosophical, one mathematical, the professor in computer science):
I like your distinction between hemi-toposes, demi-toposes, and semi-toposes
I care about hyper-reals, sur-reals, para-consistency, and so on
Abstract thought — like mathematicians do — is the best kind of thought.
(twitter.com/replicakill, the author of twitter.com/logicians, ragged on David Lewis by saying “What do mathematicians like?” “What do mathematicians think?” —— And Corey Mohler has done a wonderful job of mocking Platonism, which is how I guess the thirst for over-generalisation reaches non-mathematicians.)
Paul Halmos knew that cool examples beat generalisations for generalisation’s sake, as did V. I. Arnol’d. And it seems that the people a Harvard mathematician spends her time with make reasonable demands of a mathematical idea as well. It shouldn’t just contain previous theories; it should surprise. In Buliga’s Blake/Reynolds dispute, Blake wins hands down.
#category theory#theorems#J P May#J. P. May#Emily Riehl#topos theory#toposes#topoi#mathematics#maths#math#adjunctions#adjoint#adjoint functor#functors#Daniel Kan#Kan extensions#tensors#tensor product#⊗#1958#algebra#analytic philosophy#logicians#logic#William Blake#Joshua Reynolds
70 notes
·
View notes
Text
music tag game + questions + phone photo meme
a month ago the sweetest @somekeepsakes tagged me in this. I'm so sorry I took a month to do it but here I go, thank you!!! <3
rules: we’re snooping in your playlist, put your entire music library on shuffle and list the first 10 songs, then choose 10 victims.
1) добрая песня by Ploho 2) Patchouli by Muzz 3) Madness by Muse 4) Weekend Wars by MGMT 5) Disintegration by The Cure 6) Suck It And See by Arctic Monkeys 7) Love Song by Lana Del Rey 8) You Are The Right One by Sports 9) Trauma by Foxygen 10) Take You On A Cruise (Live at Electric Lady) by Interpol
why did you choose your url? it's a song by Tame Impala called Endors Toi which means "you sleep" (I love sleeping and I'm always sleepy). I love the lyrics because it basically says "go to sleep, tomorrow will be a better day" and I do it a lot hah
any side-blogs? if you have them, name them and why you have them nope, none! I can barely manage my own blog, I would be worse with a second. also there's nothing I would side-blog about hah
how long have you been on tumblr? I signed in on June 2011 and my blog (and I) changed A LOT since then hah
do you have a queue tag? no... I tried to once but it's too complicated for me, so I just open the app, reblog and leave hah
do you have a queue tag? I guess I just wanted something different to do on the internet. I wouldn't have a proper blog, but I wanted to have a website where I could have all stuff I like and customize it the way I wanted to, without having to be an HTML expert. turned out I discovered a very good place here and stayed, made really good friends and yeah :)
why did you choose your icon/pfp header? I keep changing them, but these current ones are lasting long. I have this dark green fabric pic as icon because I didn't know what to use and I wanted just a color, so I picked a nice green. and for header it's a version of The Great Wave made by a brazilian cartoonist called Mauricio de Sousa - there was an expo about his work and I went there, it was awesome. then I found this version he made and obviously I loved it! so I took this pic and here it is :D
what’s your post with the most notes? pfff I have no idea... I don't post stuff myself, I mostly reblog. however, maaaaybe it's this one?
how many people do you follow? 2073, but I need to check them cause many of the are inactive or just... weird
have you ever made a shitpost? hum... not exactly?? I mean, if my tags or captions on posts are considered, then check the ones I wrote on pictures of Paul Banks HAHAHAHAH
how often do you use tumblr? everyday, I guess. but not insanely as I used to back in 2015/2016 (tbh I miss that time very very much, but also I'm ok with my current situation)
how do you feel about “you need to to reblog this post”? i just scroll down hah
do you like tag games? absolutely!!! I love them <3 any kind of tag games, challenges, whatever, I looove!
which of your mutuals do you think is tumblr famous? nobody I think hah (but I would say you, @somekeepsakes, cause you make posts that interpals share a lot hahahah)
do you have a crush on a mutual? mutual on tumblr? no hah
phone photo meme game: choose one photo from your camera roll without downloading to sum up your personality
no need to explain lmao
I'll tag only 5: @man-age-ment, @lastflowerss, @fireache, @onlyhavetimeforcoffee and @nn-knws (but only if you want to!)
4 notes
·
View notes
Text
Character Designs (Part 1)
I started by creating a quick sketch of the player character, in order to get my thoughts on paper.
Then, I used a rough sketch that I had made of someone holding a sword as a base, and created various silhouette ideas for the character based on the sketch above
After getting feedback from Leo and the Concept art students, option 5 was the most liked, so I decided to go with that one. I also created some Christmas themed weapon props; a candy cane sword, a Christmas light grappling hook gauntlet and exploding Christmas ornaments,
Then, I sketched some ideas for Krampus' design. I played around with some of the shapes for the body and the horns.
After getting feedback from Leo and the rest of the class, I decided to that concept number 2 was the best one, and I should expand on that one.
I created a silhouette of the second concept, and following Scott Flanders's shape carving technique, I created some more designs by modifying the silhouette. The process was helpful for expanding on the design, but also for creating readable designs
After discussing it with the class, I decided to merge together elements of designs 6 and 7, since I preferred the overall silhouette and design of 7 but liked the idea of incorporating a britch (which is a visual that is associated with Krampus) to Krampus's tail.
As I was watching a video of Jen Zee (art director at Supergiant Games) describe how she went about designing the characters for the game , she mentioned how an important part of the process was checking if the characters would be readable in isometric view.
youtube
So, I added some sketched of Krampus from an isometric point of view in order to check if he worked on that perspective
I also created some sketches for Krampus after his transformation, but he looked too much like a beholder, so I decided I should take it in a different direction.


Another concept for Krampus phase 2. here I decided that he should increase in scale and gain more horns, compared to phase 1.
Bibliography
How Supergiant Games Create Music & Art - Developing Hell #03 (2019) YouTube. Available at: https://youtu.be/oQPk9J7spw0 (Accessed: May 3, 2023).
Bibliography for Krampus research post:
Boes Maschere Tipiche del Carnevale di Ottana alla cavalcata di sassari!!!: Fantasy character design, character design inspiration, character design (2013) Pinterest. Available at: https://gr.pinterest.com/pin/309411436869542700/ (Accessed: May 3, 2023).
Changeling (no date) Changeling posted by Brittany Joseph. Available at: https://cutewallpaper.org/21/changeling/view-page-21.html (Accessed: May 3, 2023).
Derow, D. (no date) Artstation - Dominik Derow. Available at: https://www.artstation.com/pencilhands (Accessed: May 3, 2023).
Figandthewasp (2018) The fig & the wasp, Tumblr. Available at: https://figandthewasp.tumblr.com/post/180982353468/helenmask-here-is-what-it-looks-like-with-my-two (Accessed: May 3, 2023).
It's Beginning to Look A lot Like Halloween... (no date) Pinterest. Available at: https://www.pinterest.co.uk/pin/613052568043943713/ (Accessed: May 3, 2023).
IrenHorrors (2016) Merry krampus by Irenhorrors on DeviantArt, by IrenHorrors on DeviantArt. Available at: https://www.deviantart.com/irenhorrors/art/Merry-Krampus-653255916 (Accessed: May 3, 2023).
Krampus Night is Dec 5th (no date) Pinterest. Available at: https://www.pinterest.co.uk/pin/AbllGPPRSP3_-_PjbJfusZDjwJezjbeqWdTmftumg_PfbFWVCj_NIXA/ (Accessed: May 3, 2023).
Krampuslosangeles (2013) Gruß vom Krampus Los Angeles, Tumblr. Available at: https://krampuslosangeles.tumblr.com/post/40759028410 (Accessed: May 3, 2023).
Krampus the Christmas Demon | Dark Mythologies (2022) YouTube. Lady of the Library. Available at: https://youtu.be/5VjPG3YEE54 (Accessed: May 3, 2023).
"krampusnacht" (no date) Metal Shock Finland (World Assault ). Available at: https://metalshockfinland.com/tag/krampusnacht/ (Accessed: May 3, 2023).
Mizejewski, D. (2014) Krampus was the best thing about Christmas 2014, Boing Boing. Available at: https://boingboing.net/2014/12/30/krampus-was-the-best-thing-abo.html (Accessed: May 3, 2023).
Monstieur Krampus by JRCOFFRONIII on DeviantArt (no date) by JRCoffronIII on DeviantArt. Available at: https://www.deviantart.com/jrcoffroniii/art/Monstieur-Krampus-825530682 (Accessed: May 3, 2023).
Muncy, J. (no date) Jefferson Muncy. Available at: https://www.jeffersonmuncy.com/ (Accessed: May 3, 2023).
Nataliehall (2016) Bonjour., Tumblr. Available at: https://nataliehall.tumblr.com/post/154415353910/krampus-bleh (Accessed: May 3, 2023).
1 note
·
View note
Text
Pygame and AsyncIO Part V: Twitch Integration
In the last part of this tutorial sequence, we will implement twitch.tv integration in a pygame game. If you have previously thought that all this async stuff was a bit too elaborate for too little gain, then you might be pleasantly surpised by a real-world example of two-way online interaction. This is not exactly netcode for a fighting game, or a MMORPG, or a lock-step simulation you can use in an RTS game or a MOBA, but it is what asyncio is good for.
To run the examples, you need pygame, python 3.6, asyncio, and the irc module (https://pypi.org/project/irc/). Install it with python3 -m pip install irc
Some of the code in here will be twitch-specific, but twitch chat is based on good old IRC, and you can take out these bits and add chat interaction with any IRC network if you want to. Also, I won’t explain to you how to stream your gameplay to twitch, but I used OBS to test out my examples and they work.
Twitch Plays Wormy.py
This is based on https://inventwithpython.com/pygame/chapter6.html.
import pygame import asyncio import irc, irc.client_aio import sys if len(sys.argv)!=3: print("please get a twitch auth token from https://twitchapps.com/tmi/") sys.exit(1) username=sys.argv[1] token=sys.argv[2] irc_pw=token.strip() irc_user=username.strip() assert(irc_pw.startswith("oauth:"))
To start the game, you pass your twitch username to the game, like so python3 game.py myusername oauth:tokenstringfromtwitch You can get the IRC password from this oauth token generator here. If you are using another IRC network, you might want to change the code here already.
Let’s continue with the code. In the next part, we set up the IRC connecting and message handling
def parse_tags(event): """helper function to parse tags and twitch-specific user name field""" if hasattr(event,"tags_dict"): return event.tags_dict tags={} for tag in event.tags: tags[tag["key"]]=tag["value"] event.tags_dict=tags try: event.display_name=tags["display-name"] except: pass class AsyncIRC(object): """Wrapper for irc functionality, with chat command decorators""" def __init__(self, loop, prefix=">"): self.loop = loop or asyncio.get_event_loop() self.reactor=irc.client_aio.AioReactor(loop=self.loop) self.connection=self.reactor.server() self.commands=dict() self.prefix=prefix self.msgs=[] def dispatch_cmd(connection, event): """message handler for chat commands""" content=event.arguments[0] if content.startswith(self.prefix): sans_prefix=content[len(self.prefix):] try: cmd, *args = sans_prefix.split() except: cmd = sans_prefix args=[] cmd=cmd.lower() if cmd in self.commands: parse_tags(event) return self.commands[cmd](connection, event, *args) else: print('invalid command: ' + cmd) self.reactor.add_global_handler("pubmsg", dispatch_cmd, -1) def handle(self, event_type, *args, **kwargs): """decorator for callbacks to handle generic IRC events""" def decorator(fun): self.reactor.add_global_handler(event_type, fun, *args, **kwargs) return fun return decorator def broadcast(self, message): self.connection.privmsg(self.channel, message) def command(self, command): """decorator for callbacks to handle chat >commands""" def decorator(fun): self.commands[command]=fun return fun return decorator def connect(self, server, nickname, join_channel, password=None, port=6667): def on_connect(connection, event): connection.cap('REQ', ':twitch.tv/membership') connection.cap('REQ', ':twitch.tv/tags') connection.cap('REQ', ':twitch.tv/commands') connection.join(join_channel) if join_channel: self.channel=join_channel self.reactor.add_global_handler("welcome", on_connect) self.channel=join_channel coro=self.connection.connect(server=server, port=port, nickname=nickname, password=password) self.loop.run_until_complete(coro)
We create an IRC client now, and add callbacks for chat events:
loop = asyncio.get_event_loop() bot=AsyncIRC(loop) def run_once(loop): loop.call_soon(loop.stop) loop.run_forever() @bot.command("left") def command_left(connection, event): pygame.event.post( pygame.event.Event(pygame.KEYDOWN, key=pygame.K_LEFT, unicode=None, mod=None)) @bot.command("right") def command_right(connection, event): pygame.event.post( pygame.event.Event(pygame.KEYDOWN, key=pygame.K_RIGHT, unicode=None, mod=None)) @bot.command("up") def command_right(connection, event): pygame.event.post( pygame.event.Event(pygame.KEYDOWN, key=pygame.K_UP, unicode=None, mod=None)) @bot.command("down") def command_right(connection, event): pygame.event.post( pygame.event.Event(pygame.KEYDOWN, key=pygame.K_DOWN, unicode=None, mod=None)) @bot.command("newgame") def command_left(connection, event): pygame.event.post( pygame.event.Event(pygame.KEYUP, key=pygame.K_SPACE, unicode=None, mod=None)) @bot.handle("pubmsg") def on_pubmsg(connection, event): content=event.arguments[0] parse_tags(event) bot.msgs.append(f"{event.display_name}: {content}") print("#", bot.msgs)
The first five handlers translate chat commands into pygame events, while the last one takes every chat message and logs the logs the content into a list. This way we can display chat history in the game.
Now we can connect to the IRC like so:
bot.connect(server='irc.chat.twitch.tv', nickname=irc_user, password=irc_pw, join_channel="#"+irc_user)
and when we call run_once(loop), then the whole async IRC machinery will start looking for messages, handle them if there are any, and return.
Here comes the actual game part, based on wormy:
# Wormy (a Nibbles clone) # By Al Sweigart [email protected] # http://inventwithpython.com/pygame # Released under a "Simplified BSD" license # some IRC features added by Robert Pfeiffer import random, pygame, sys from pygame.locals import * FPS = 15 WINDOWWIDTH = 640 WINDOWHEIGHT = 480 CELLSIZE = 20 assert WINDOWWIDTH % CELLSIZE == 0, "Window width must be a multiple of cell size." assert WINDOWHEIGHT % CELLSIZE == 0, "Window height must be a multiple of cell size." CELLWIDTH = int(WINDOWWIDTH / CELLSIZE) CELLHEIGHT = int(WINDOWHEIGHT / CELLSIZE) # R G B WHITE = (255, 255, 255) BLACK = ( 0, 0, 0) RED = (255, 0, 0) GREEN = ( 0, 255, 0) DARKGREEN = ( 0, 155, 0) DARKGRAY = ( 40, 40, 40) BGCOLOR = BLACK UP = 'up' DOWN = 'down' LEFT = 'left' RIGHT = 'right' HEAD = 0 # syntactic sugar: index of the worm's head def main(): global FPSCLOCK, DISPLAYSURF, BASICFONT, CHATFONT pygame.init() FPSCLOCK = pygame.time.Clock() DISPLAYSURF = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT)) BASICFONT = pygame.font.Font('freesansbold.ttf', 18) CHATFONT = pygame.font.Font('freesansbold.ttf', 8) pygame.display.set_caption('Wormy') showStartScreen() while True: runGame() showGameOverScreen()
Here, CHATFONT was added to the original wormy game to display chat in a different font.
In the game loop, we added chat messages when a new game is started, and we now call run_once(loop) before clock.tick(), like in the previous examples. To make the game playable with streaming lag (chat will usually be way ahead of the stream), the variable keydown_this_frame will ensure that the game state is only advanced when either a key has been pressed, or a keypress has been sent over a chat command.
def runGame(): bot.broadcast("new game") bot.broadcast(">UP >DOWN >LEFT >RIGHT to play") # Set a random start point. startx = random.randint(5, CELLWIDTH - 6) starty = random.randint(5, CELLHEIGHT - 6) wormCoords = [{'x': startx, 'y': starty}, {'x': startx - 1, 'y': starty}, {'x': startx - 2, 'y': starty}] direction = RIGHT # Start the apple in a random place. apple = getRandomLocation() while True: # main game loop keydown_this_frame=False for event in pygame.event.get(): # event handling loop if event.type == QUIT: terminate() elif event.type == KEYDOWN: keydown_this_frame=True if (event.key == K_LEFT or event.key == K_a) and direction != RIGHT: direction = LEFT elif (event.key == K_RIGHT or event.key == K_d) and direction != LEFT: direction = RIGHT elif (event.key == K_UP or event.key == K_w) and direction != DOWN: direction = UP elif (event.key == K_DOWN or event.key == K_s) and direction != UP: direction = DOWN elif event.key == K_ESCAPE: terminate() if keydown_this_frame: # BEGIN MOVEMENT CODE # check if the worm has hit itself or the edge if wormCoords[HEAD]['x'] == -1 or wormCoords[HEAD]['x'] == CELLWIDTH or wormCoords[HEAD]['y'] == -1 or wormCoords[HEAD]['y'] == CELLHEIGHT: return # game over for wormBody in wormCoords[1:]: if wormBody['x'] == wormCoords[HEAD]['x'] and wormBody['y'] == wormCoords[HEAD]['y']: return # game over # check if worm has eaten an apply if wormCoords[HEAD]['x'] == apple['x'] and wormCoords[HEAD]['y'] == apple['y']: # don't remove worm's tail segment apple = getRandomLocation() # set a new apple somewhere bot.broadcast("apple eaten") else: del wormCoords[-1] # remove worm's tail segment # move the worm by adding a segment in the direction it is moving if direction == UP: newHead = {'x': wormCoords[HEAD]['x'], 'y': wormCoords[HEAD]['y'] - 1} elif direction == DOWN: newHead = {'x': wormCoords[HEAD]['x'], 'y': wormCoords[HEAD]['y'] + 1} elif direction == LEFT: newHead = {'x': wormCoords[HEAD]['x'] - 1, 'y': wormCoords[HEAD]['y']} elif direction == RIGHT: newHead = {'x': wormCoords[HEAD]['x'] + 1, 'y': wormCoords[HEAD]['y']} wormCoords.insert(0, newHead) #END MOVEMENT CODE DISPLAYSURF.fill(BGCOLOR) drawGrid() drawWorm(wormCoords) drawApple(apple) drawScore(len(wormCoords) - 3) pygame.display.update() run_once(loop) FPSCLOCK.tick(FPS)
Logic to read IRC and run the event loop was added to the other game screens, and to the game termination function:
def terminate(): while len(asyncio.Task.all_tasks(loop)): run_once(loop) pygame.event.pump() loop.shutdown_asyncgens() loop.close() print("Thank you for playing!") pygame.quit() sys.exit() def getRandomLocation(): return {'x': random.randint(0, CELLWIDTH - 1), 'y': random.randint(0, CELLHEIGHT - 1)} def showGameOverScreen(): gameOverFont = pygame.font.Font('freesansbold.ttf', 150) gameSurf = gameOverFont.render('Game', True, WHITE) overSurf = gameOverFont.render('Over', True, WHITE) gameRect = gameSurf.get_rect() overRect = overSurf.get_rect() gameRect.midtop = (WINDOWWIDTH / 2, 10) overRect.midtop = (WINDOWWIDTH / 2, gameRect.height + 10 + 25) bot.broadcast("game over") DISPLAYSURF.blit(gameSurf, gameRect) DISPLAYSURF.blit(overSurf, overRect) drawPressKeyMsg() pygame.display.update() pygame.time.wait(500) checkForKeyPress() # clear out any key presses in the event queue while True: run_once(loop) if checkForKeyPress(): pygame.event.get() # clear event queue return
In drawScore, we also draw the last 3 lines of chat. in a small font. This way you know how big the lag in the stream is, and whose last chat command is currently shown on the screen.
def drawScore(score): scoreSurf = BASICFONT.render('Score: %s' % (score), True, WHITE) scoreRect = scoreSurf.get_rect() scoreRect.topleft = (WINDOWWIDTH - 120, 10) DISPLAYSURF.blit(scoreSurf, scoreRect) topleft=scoreRect.bottomleft for msg in bot.msgs[-3:]: IRCSurf = CHATFONT.render(msg, True, WHITE) IRCRect = IRCSurf.get_rect() IRCRect.topleft = topleft topleft= IRCRect.bottomleft DISPLAYSURF.blit(IRCSurf, IRCRect) def drawWorm(wormCoords): for coord in wormCoords: x = coord['x'] * CELLSIZE y = coord['y'] * CELLSIZE wormSegmentRect = pygame.Rect(x, y, CELLSIZE, CELLSIZE) pygame.draw.rect(DISPLAYSURF, DARKGREEN, wormSegmentRect) wormInnerSegmentRect = pygame.Rect(x + 4, y + 4, CELLSIZE - 8, CELLSIZE - 8) pygame.draw.rect(DISPLAYSURF, GREEN, wormInnerSegmentRect) def drawApple(coord): x = coord['x'] * CELLSIZE y = coord['y'] * CELLSIZE appleRect = pygame.Rect(x, y, CELLSIZE, CELLSIZE) pygame.draw.rect(DISPLAYSURF, RED, appleRect) def drawGrid(): for x in range(0, WINDOWWIDTH, CELLSIZE): # draw vertical lines pygame.draw.line(DISPLAYSURF, DARKGRAY, (x, 0), (x, WINDOWHEIGHT)) for y in range(0, WINDOWHEIGHT, CELLSIZE): # draw horizontal lines pygame.draw.line(DISPLAYSURF, DARKGRAY, (0, y), (WINDOWWIDTH, y)) if __name__ == '__main__': main()
This is the end of “twitch plays wormy”. You can copy all the segments into a python file together and run the game now. If you compare this code to the original wormy.py, you will see that it’s mostly the same, the changes are very limited - you can easily add the code to different games, as long as they aren’t quick-reaction-skill action games. If they are action games, you need to slow down the game to handle the lag. The code that reads chat only runs inside the event loop, so only when run_once(loop) is called, and interacts with the rest of the game by posting ordinary pygame events.
That’s one rather famous type of twitch integration out of the way. But another type is far more common:
Twitch Voting
Most of the time, chat doesn’t play the game - the streamer plays it, and chat comments on gameplay or talks to the streamer. Chat integration is not about sending button presses to the game, or about moment-to-moment gameplay, but about asking chatters to help make occasional, high-level decisions: Which hat should I wear? Should I go left or right? Which card should I add to this deck?
So here is a simple poll/voting pygame app. It’s not integrated into an existing game this time. Asking twitch chat to vote on decisions is something that needs to fit into the game UI and overall game design, and I did not want to retrofit a complex game for this tutorial.
We start with the same imports:
import pygame import asyncio import irc, irc.client_aio import sys import collections # we need collections this time too if len(sys.argv)!=3: print("please get a twitch auth token from https://twitchapps.com/tmi/") sys.exit(1) username=sys.argv[1] token=sys.argv[2] irc_pw=token.strip() irc_user=username.strip() assert(irc_pw.startswith("oauth:"))
This time, the AsyncIRC class is more complex. In addition to a handler for chat commands, there is also a handler for poll votes. In addition to a list of chat messages, there are also fields for counting votes, counting voters, voting options, and so on.
def parse_tags(event): if hasattr(event,"tags_dict"): return event.tags_dict tags={} for tag in event.tags: tags[tag["key"]]=tag["value"] event.tags_dict=tags try: event.display_name=tags["display-name"] except: pass class AsyncIRC(object): def __init__(self, loop, command_prefix=">", poll_prefix="#"): self.loop = loop or asyncio.get_event_loop() self.reactor=irc.client_aio.AioReactor(loop=self.loop) self.connection=self.reactor.server() self.commands=dict() self.command_prefix=command_prefix self.poll_prefix=poll_prefix self.msgs=[] self.has_voted=[] self.poll_votes=0 self.poll_count={} self.poll_options=[] self.poll_running=False def dispatch_cmd(connection, event): content=event.arguments[0] if content.startswith(self.command_prefix): sans_prefix=content[len(self.command_prefix):] try: cmd, *args = sans_prefix.split() except: cmd = sans_prefix args=[] cmd=cmd.lower() if cmd in self.commands: parse_tags(event) return self.commands[cmd](connection, event, *args) else: print('invalid command: ' + cmd) def count_poll(connection, event): content=event.arguments[0] if self.poll_running and content.startswith(self.poll_prefix): sans_prefix=content[len(self.poll_prefix):].strip().lower() if sans_prefix in self.poll_options: if not event.source in self.has_voted: self.poll_count[sans_prefix]+=1 self.poll_votes+=1 # self.has_voted.append(event.source) #commented out for testing #so you can vote twice self.reactor.add_global_handler("pubmsg", dispatch_cmd, -1) self.reactor.add_global_handler("pubmsg", count_poll, -1) def start_poll(self, title, options): self.poll_votes=0 self.has_voted=[] self.poll_count=collections.defaultdict(int) self.poll_options=[str(option).strip().lower() for option in options] self.poll_running=True self.poll_title=title message=f"Poll: {title} - " message+=", ".join([self.poll_prefix+option for option in options]) self.connection.privmsg(self.channel, message) self.connection.privmsg(self.channel, "voting starts NOW") def stop_poll(self): self.poll_running=False best_option=None for option in self.poll_options: if self.poll_count[option] > self.poll_count[best_option]: best_option=option nvotes=self.poll_count[best_option] percent=int(100*nvotes/self.poll_votes) message=f"poll {self.poll_title} ended - {best_option} won with {nvotes} votes ({percent}%)" self.connection.privmsg(self.channel, message) def handle(self, event_type, *args, **kwargs): def decorator(fun): self.reactor.add_global_handler(event_type, fun, *args, **kwargs) return fun return decorator def broadcast(self, message): self.connection.privmsg(self.channel, message) def command(self, command): def decorator(fun): self.commands[command]=fun return fun return decorator def connect(self, server, nickname, join_channel, password=None, port=6667): def on_connect(connection, event): connection.cap('REQ', ':twitch.tv/membership') connection.cap('REQ', ':twitch.tv/tags') connection.cap('REQ', ':twitch.tv/commands') connection.join(join_channel) if join_channel: self.channel=join_channel self.reactor.add_global_handler("welcome", on_connect) self.channel=join_channel coro=self.connection.connect(server=server, port=port, nickname=nickname, password=password) self.loop.run_until_complete(coro) loop = asyncio.get_event_loop() bot=AsyncIRC(loop)
Again, we log all public messages.
@bot.handle("pubmsg") def on_pubmsg(connection, event): content=event.arguments[0] parse_tags(event) bot.msgs.append(f"{event.display_name}: {content}") #print("#", bot.msgs) bot.connect(server='irc.chat.twitch.tv', nickname=irc_user, password=irc_pw, join_channel="#"+irc_user) def run_once(loop): loop.call_soon(loop.stop) loop.run_forever()
The actual UI for this twitch polling app is rather short. When the user presses Return, the poll starts, if it isn’t already running. The duration of the poll is set by the variable poll_ticks in the game loop, not in the event loop. While the poll hasn’t been stopped, it keeps on counting on the event loop.
Since the vote counting happens only inside run_once(loop), there are no race conditions between polling and game loop, and we don’t need to worry about race conditions for votes that arrive just as the poll ends, or votes that arrive while the UI is being drawn.
poll_ticks=-1 my_options=["A", "B", "C"] pygame.init() screen_size=640,480 screen=pygame.display.set_mode(screen_size) clock=pygame.time.Clock() running=True flying_frames=0 best=0 color=(50,50,50) font=pygame.font.SysFont("Helvetica Neue,Helvetica,Ubuntu Sans,Bitstream Vera Sans,DejaVu Sans,Latin Modern Sans,Liberation Sans,Nimbus Sans L,Noto Sans,Calibri,Futura,Beteckna,Arial", 16) while running: clock.tick(30) events=pygame.event.get() for e in events: if e.type==pygame.QUIT: running=False if e.type==pygame.KEYDOWN and e.key==pygame.K_RETURN: if poll_ticks<=0: bot.start_poll("Test Vote", my_options) poll_ticks=30*45 #FPS*45 seconds screen.fill((255,255,255)) if poll_ticks>=0: if poll_ticks>0: poll_seconds=poll_ticks//30 time_text=font.render(f"{poll_seconds}s remaining", True, (0,0,0)) else: time_text=font.render("results:", True, (0,0,0)) screen.blit(time_text,(10,30)) for i, option in enumerate(bot.poll_options): nvotes=bot.poll_count[option] if bot.poll_votes>0: percent=int(100*nvotes/bot.poll_votes) else: percent=0 option_text=font.render( f"{bot.poll_prefix}{option}: {nvotes} ({percent}%)", True, (0,0,0)) y_pos=100+i*30 screen.blit(option_text,(10,y_pos)) if bot.poll_votes < 20: bar_length=nvotes*20 else: bar_length=percent*5 pygame.draw.rect(screen, color, pygame.Rect(100, y_pos, bar_length,25)) if poll_ticks>0: poll_ticks-=1 if poll_ticks==0: bot.stop_poll() fps=clock.get_fps() pygame.display.update() run_once(loop) while len(asyncio.Task.all_tasks(loop)): run_once(loop) loop.shutdown_asyncgens() loop.close() print("Thank you for playing!")
Now you can add voting to your own pygame games. Maybe you shouldn’t call the options “1”, “2”, and “3”, but give them descriptive names depending on the current situation.
1 note
·
View note
Text
Persian Rug Repair Encinitas
youtube
https://www.youtube.com/watch?v=w8sojAGN2cE
Welcome to Oriental Rug Specialists Expert Oriental Rug Cleaning, Repairing and Restoration Welcome to Oriental Rugs Specialist, San Diego County's best source for Oriental carpet cleaning, repair, and restoration services. In situation back 1929, we have eight decades of experience our customers can include on and excel at maintaining and restoring a expansive range of natural and synthetic fiber rugs and joined textiles, including Afghanistan rugs, Belgium rugs, Bokhara rugs, Chinese rugs, Couristan rugs, Flokati rugs, Indian rugs, Karastan rugs, Kilim Moroccan rugs, Navajo rugs, Pakistani rugs, Persian rugs, Sisal rugs, Stark rugs, Turkish rugs, and more. We never use rasping chemicals or abrasive scrubbing machines; instead, we purposefully and sufficiently hand clean all carpet that enters our facility. Additionally, we are very proficient at unqualified carpet repair and restoration, which includes whatever from dye touch-ups to refringing to hole repair. We stand behind all of our enactment later a 100% satisfaction guarantee and tag each carpet during transit for security purposes. By providing quality workmanship later personalized service, competitive prices, and free pickup and delivery, we have earned a stellar reputation for value among our customers in San Diego County and beyond. At Oriental Rugs Specialist, we always agree to the times to safeguard the integrity of each Oriental rug's fibers and dyes. We purposefully inspect each carpet back treating it and rely on our family's time-tested hand cleaning approach. By using compressed ventilate to sever dirt, grit, sand, and dust, and after that submerging the carpet in a series of baths for decontamination, hand washing, and rinsing, we effectively disinfect, sanitize, and clean it. This process is moreover ideal for removing pet urine stains, food stains, wine stains, mold, mildew, smoke odors, and supplementary substances from antique, semi-antique, and supplementary Oriental rugs. After the carpet cleaning process is complete, our team of master weavers will quarters any carpet damage caused by time, moth infestations, chemicals, pets, improper care, or high pH cleansers. later an average of 35 years of experience, they are experts in carpet reshaping, carpet reweaving, color bleed correction, edge-work blocking, edge binding, re-dying, patching, sleeve casing repair, and many supplementary carpet repair and restoration services. To learn more not quite our San Diego Oriental carpet cleaning, repair, and restoration services, come up with the money for us a call today. We are user-friendly seven days a week and come up with the money for free estimates throughout San Diego County, including Oceanside, Carlsbad, Vista, Encinitas, Del Mar, Solana Beach, tapering off Loma, Coronado Island, Chula Vista, and user-friendly areas. question us not quite our 20% discount on carpet repairs and restoration enactment for large Oriental rugs and tapestries.
https://gwrench.com/
https://www.brothersautocollision.com/
https://a2zhealth.com/
https://persianrugrepairencinitas495.blogspot.com/2022/07/persian-rug-repair-encinitas.html Persian Rug Cleaning Encinitas Persian Rug Restoration Encinitas Persian Rug Repair Encinitas https://persianrugrepairladeraranch973.blogspot.com/2022/07/persian-rug-repair-encinitas_01785712645.html https://persian-rug-repair-sant-hw45x.tumblr.com/post/690310236521873408/persian-rug-repair-encinitas https://persianrugrepairladeraranch973.blogspot.com/2022/07/persian-rug-repair-encinitas.html https://persian-rug-repair-sant-hw45x.tumblr.com/post/690308254904057856/persian-rug-repair-encinitas https://discoverhowtolosethighfat.blogspot.com/2022/06/discover-how-to-lose-thigh-fat.html
0 notes
Text
Persian Rug Repair Lakeside
youtube
https://www.youtube.com/watch?v=w8sojAGN2cE
Welcome to Oriental Rug Specialists Expert Oriental Rug Cleaning, Repairing and Restoration Welcome to Oriental Rugs Specialist, San Diego County's best source for Oriental carpet cleaning, repair, and restoration services. In matter before 1929, we have eight decades of experience our customers can attach upon and excel at maintaining and restoring a spacious range of natural and synthetic fiber rugs and similar textiles, including Afghanistan rugs, Belgium rugs, Bokhara rugs, Chinese rugs, Couristan rugs, Flokati rugs, Indian rugs, Karastan rugs, Kilim Moroccan rugs, Navajo rugs, Pakistani rugs, Persian rugs, Sisal rugs, Stark rugs, Turkish rugs, and more. We never use brusque chemicals or abrasive scrubbing machines; instead, we carefully and thoroughly hand tidy all carpet that enters our facility. Additionally, we are deeply bright at unquestionable carpet fix and restoration, which includes everything from dye touch-ups to refringing to hole repair. We stand at the rear all of our enactment later than a 100% satisfaction guarantee and tag each carpet during transit for security purposes. By providing air workmanship later than personalized service, competitive prices, and pardon pickup and delivery, we have earned a stellar reputation for value in the course of our customers in San Diego County and beyond. At Oriental Rugs Specialist, we always recognize the period to safeguard the integrity of each Oriental rug's fibers and dyes. We carefully examine each carpet before treating it and rely upon our family's time-tested hand cleaning approach. By using compressed let breathe to surgically remove dirt, grit, sand, and dust, and then submerging the carpet in a series of baths for decontamination, hand washing, and rinsing, we effectively disinfect, sanitize, and tidy it. This process is as a consequence ideal for removing pet urine stains, food stains, wine stains, mold, mildew, smoke odors, and extra substances from antique, semi-antique, and extra Oriental rugs. After the carpet cleaning process is complete, our team of master weavers will dwelling any carpet broken caused by time, moth infestations, chemicals, pets, improper care, or high pH cleansers. later than an average of 35 years of experience, they are experts in carpet reshaping, carpet reweaving, color bleed correction, edge-work blocking, edge binding, re-dying, patching, sleeve casing repair, and many extra carpet fix and restoration services. To learn more not quite our San Diego Oriental carpet cleaning, repair, and restoration services, give us a call today. We are affable seven days a week and give pardon estimates throughout San Diego County, including Oceanside, Carlsbad, Vista, Encinitas, Del Mar, Solana Beach, point Loma, Coronado Island, Chula Vista, and affable areas. question us not quite our 20% discount upon carpet repairs and restoration enactment for large Oriental rugs and tapestries.
https://gwrench.com/
https://www.brothersautocollision.com/
https://a2zhealth.com/
https://persianrugrepairplacentia468.blogspot.com/2022/07/persian-rug-repair-lakeside_0387261152.html Persian Rug Cleaning Lakeside Persian Rug Restoration Lakeside Persian Rug Repair Lakeside https://persianrugpros.tumblr.com/post/688577526844538880/persian-rug-repair-lakeside https://famousboutiquepragency.blogspot.com/ https://famousboutiquepragency.blogspot.com/2022/07/famous-boutique-pr-agency.html https://local-carpet-cleaners-v-si68es.tumblr.com/post/688577768375582720/famous-boutique-pr-agency https://thisishowtolosearmfat215.blogspot.com/2022/06/this-is-how-to-lose-arm-fat.html
0 notes
Text
Persian Rug Repair La Mesa
youtube
https://www.youtube.com/watch?v=w8sojAGN2cE
Welcome to Oriental Rug Specialists Expert Oriental Rug Cleaning, Repairing and Restoration Welcome to Oriental Rugs Specialist, San Diego County's best source for Oriental rug cleaning, repair, and restoration services. In thing before 1929, we have eight decades of experience our customers can augment upon and excel at maintaining and restoring a expansive range of natural and synthetic fiber rugs and related textiles, including Afghanistan rugs, Belgium rugs, Bokhara rugs, Chinese rugs, Couristan rugs, Flokati rugs, Indian rugs, Karastan rugs, Kilim Moroccan rugs, Navajo rugs, Pakistani rugs, Persian rugs, Sisal rugs, Stark rugs, Turkish rugs, and more. We never use gruff chemicals or abrasive scrubbing machines; instead, we on purpose and abundantly hand clean every rug that enters our facility. Additionally, we are very adept at total rug fix and restoration, which includes whatever from dye touch-ups to refringing to hole repair. We stand astern every of our action in imitation of a 100% satisfaction guarantee and tag each rug during transit for security purposes. By providing air workmanship in imitation of personalized service, competitive prices, and forgive pickup and delivery, we have earned a stellar reputation for value accompanied by our customers in San Diego County and beyond. At Oriental Rugs Specialist, we always allow the times to safeguard the integrity of each Oriental rug's fibers and dyes. We on purpose inspect each rug before treating it and rely upon our family's time-tested hand cleaning approach. By using compressed freshen to remove dirt, grit, sand, and dust, and then submerging the rug in a series of baths for decontamination, hand washing, and rinsing, we effectively disinfect, sanitize, and clean it. This process is next ideal for removing pet urine stains, food stains, wine stains, mold, mildew, smoke odors, and further substances from antique, semi-antique, and further Oriental rugs. After the rug cleaning process is complete, our team of master weavers will address any rug broken caused by time, moth infestations, chemicals, pets, improper care, or tall pH cleansers. in imitation of an average of 35 years of experience, they are experts in rug reshaping, rug reweaving, color bleed correction, edge-work blocking, edge binding, re-dying, patching, sleeve casing repair, and many further rug fix and restoration services. To learn more not quite our San Diego Oriental rug cleaning, repair, and restoration services, pay for us a call today. We are genial seven days a week and pay for forgive estimates throughout San Diego County, including Oceanside, Carlsbad, Vista, Encinitas, Del Mar, Solana Beach, tapering off Loma, Coronado Island, Chula Vista, and genial areas. question us not quite our 20% discount upon rug repairs and restoration action for large Oriental rugs and tapestries.
https://gwrench.com/
https://www.brothersautocollision.com/
https://a2zhealth.com/
https://persianrugrepairlamesa.blogspot.com/2022/06/persian-rug-repair-la-mesa.html Persian Rug Cleaning La Mesa Persian Rug Restoration La Mesa Persian Rug Repair La Mesa https://httpsgooglmaps1hcufk1sro67ngd59.blogspot.com/ https://httpsgooglmaps1hcufk1sro67ngd59.blogspot.com/2022/06/httpsgooglmaps1hcufk1sro67ngd58.html https://howdoesequityreleasework382.blogspot.com/ https://howdoesequityreleasework382.blogspot.com/2022/06/how-does-equity-release-work.html https://wwwgrowyourrestaurantcouk926.blogspot.com/
0 notes
Text
Works Cited
“Alex Morgan 2020 - Net Worth, Salary and Endorsements.” EssentiallySports, 2020, www.essentiallysports.com/tag/alex-morgan/.
Cater, Franklyn. Federal Judge Dismisses U.S. Women's Soccer Team's Equal Pay Claim. 2 May 2020, www.npr.org/2020/05/02/849492863/federal-judge-dismisses-u-s-womens-soccer-team-s-equal-pay-claim.
Chappell, Bill. “U.S. Women's Soccer Team Members File Federal Equal-Pay Complaint.” NPR, 31 Mar. 2016, www.npr.org/sections/thetwo-way/2016/03/31/472522790/members-of-u-s-women-s-national-team-file-federal-equal-pay-complaint.
Garcia, Michelle. “More Women Compete on Primetime TV at the Olympics than Any Other Point in the Year.” Vox, 19 Aug. 2016.
Hess, Abigail. “US Viewership of the 2019 Women's World Cup Final Was 22% Higher than the 2018 Men's Final.” CNBC, 10 July 2019.
Kaplan, Emily. U.S. Women's Soccer Equal Pay Fight: What's the Latest, and What's next? 9 Nov. 2019, www.espn.com/sports/soccer/story/_/id/27175927/us-women-soccer-equal-pay-fight-latest-next.
Kaufman, Michelle. “How big is the Gender Pay Gap in Sports? It’s Much Better Than You Think. Here’s the Proof.” Miami Herald, 28 Aug. 2019, www.miamiherald.com/sports/article 234425642.html. Accessed 18 Nov. 2020.
Keith, Thomas. The Empathy Gap. Media Education Foundation, 2015. washington.kanopy.com/video/empathy-gap12. Accessed 28 Nov. 2020.
Kiersz, Andy. “30 Jobs in the US Where Men Still Earn Wildly Higher Wages Than Women.” Business Insider, 7 Mar. 2019, www.businessinsider.com/ gender-pay-gap-jobs-2019-3. Accessed 27 Nov. 2020.
Kirk, Gwyn and Margo Okazawa-Rey. “Creating Knowledge: Integrative Frameworks for Understanding.” Gendered Lives: Intersectional Perspectives, by Gwyn Kirk and Margo Okazawa-Rey, 7th ed., Oxford University Press, 2020, pp. 53.
Kirk, Gwyn and Margo Okazawa-Rey. “Identities and Social Locations.” Gendered Lives: Intersectional Perspectives, by Gwyn Kirk and Margo Okazawa-Rey, 7th ed., Oxford University Press, 2020, pp. 90.
Kirk, Gwyn and Margo Okazawa-Rey. “Sexuality.” Gendered Lives: Intersectional Perspectives, by Gwyn Kirk and Margo Okazawa-Rey, 7th ed., Oxford University Press, 2020, pp. 139.
Oh, Daniel. “A Concerning Trend: The Growing Gender Pay Gap in Sports Sponsorships.” Front Office Sports, 3 Nov. 2017.
Rogers, Charlotte. “How Brands Can Level the Playing Field for Women in Sport.” Marketing Week, 4 July 2019, www.marketingweek.com/brands-level-playing-field-women-sport/.
Scheadler, Travis, and Audrey Wagstaff. “Exposure to Women's Sports: Changing Attitudes Toward Female Athletes.” The Sport Journal, 25 May 2018, thesportjournal.org/article/exposure-to-womens-sports-changing-attitudes-toward-female-athletes/.
Totka, By: Ryan. “Christen Press Endorsements.” Athlete Promotions, 2020, www.athletepromotions.com/blog/tag/christen-press-endorsements/.
Tran, Loan. “Does Gender Matter? Notes Toward Gender Liberation (2018).” Gendered Lives: Intersectional Perspectives, by Gwyn Kirk and Margo Okazawa-Rey, 7th ed., Oxford University Press, 2020, pp. 39-41.
United States District Court, Central District of California Western Division. Alex Morgan, Et. Al vs. United States Soccer Federation Inc. 1 May 2020, pp. 1–14.
“USA National Football Team Statistics and Records: Top Scorers.” USA National Soccer Team Statistics and Records: Top Scorers.
Wilber, Del. “Linking Sports and Sponsors.” Journal of Business Strategy, vol. 9, no. 4, 1988, pp. 8–10., doi:10.1108/eb039234.
Zhen, He-Yin. “On the Question of Women’s Liberation.” The Birth of Chinese Feminism: Essential Texts in Transnational Theory, by Lydia H. Liu et al, Columbia University Press, 2013, pp. 60-63.
“2019 Schedule Set as ‘Countdown to the Cup’ Takes WNT on 10-Game, 10-City Tour.” US Soccer. Sponsored by Volkswagen, 6 Dec. 2018.
1 note
·
View note
Text
What Are Meta Tags?
Let’s talk about meta tags — what they are, why they matter, and how to do them better.
First things first — what made you click on this article to read it?
Maybe the title caught your eye, or perhaps it was the short blurb you saw.
You might have clicked simply because this article comes from a source you trust.
If you found this article via a search engine, though, there’s a good chance you found and clicked this article because of meta tags.
Meta tags are the foundation of SEO, and the first thing you’ll find yourself setting up when building a web page.
Without meta tags, you can’t reach readers organically.
It doesn’t take much time to generate meta tags, but it’s more important than you might think.
That’s because 93% of all online experiences begin with a search engine.
This is why so many online marketers are so focused on getting SEO right.
Organic search traffic is the holy grail of SEO, so it can’t be ignored.
Your content needs to be readable and appealing to users on search engines.
There’s a very specific syntax needed.
It’s similar to how bookstores and libraries organize their archives of books — and that’s what meta tags are, essentially.
What are Meta Tags?
Meta tags are a type of HTML tag that provides search engines with information about a website page.
Let’s take a look at the basic elements.
The title and description tags make up almost the entire entry.
If not for these meta tags, all you’d see in Google SERPs would be my URL.
Title and description tags are the two most-used tags for SEO purposes, but SEO isn’t the only part of digital marketing.
Advanced digital marketing requires the use of even more tags that improve page rank and overall user experience.
Just like this search result, you’ll soon find out that these tags control how your entire digital presence is viewed and navigated.
Machines can read URLs just fine. If I wrote for machines, my website would look like this:
Google prioritizes certain tags because they provide context for people.
I built my website for people as well, so it looks like this:
This polish is what marketing is all about.
In this blog post, we will explore meta tags and see how they affect your overall digital marketing efforts.
While simple, the devil is in the details, and every detail counts.
How Meta Tags Affect Brand Image and Click-Through Rates
You absolutely can judge a book by its cover. It’s what covers are designed for.
Your title and meta description tag create the cover for your web page. They’re your first impression on most visitors.
It’s not just about search engines, but how we view the Internet.
Reddit is a basic link-aggregation site that takes away all the bells and whistles.
Reddit depends on the title and image to entice conversations and clicks.
Using meta tags correctly is like using the correct format for a business email.
Sure, you can put whatever you like out there, but there’s a level of professionalism that’s expected at some point.
Even Amazon will only give you a picture, title, and short description to make your point.
Think of these tags as your elevator pitch.
You’re given about as much space as a Tweet to sell your entire brand and product.
Which means you need to nail it.
You can’t just call in this detail and polish everything else. If you do, nobody will ever see the rest of what you polished.
We already know how meta tags affect SEO, but that’s not the only element.
Meta tags will make your email marketing and marketing automation efforts easier by providing information for emailed links.
Tags are a crucial element that determines what my automated social media posts look like.
When other bloggers, YouTubers, and social media influencers (and micro-influencers) share your content, tags make it easier.
Think of meta tags as the packaging for your product.
If your packaging isn’t spot-on, nobody will ever buy your product, no matter how great it is!
So what are some best practices to implement for tags?
Meta Tag Best Practices
There are a TON of different HTML tags that can be used on a web page. We’re only going to focus on a handful of significant tags.
We’ll start with the one that might have brought you here today.
1. Title Tags
It’s not technically a meta tag, but it shows up in the header and is used as one.
As of July 2017, the character limits for title tags in Google search results are 78 on mobile devices and 70 on a desktop.
However, that doesn’t necessarily mean you should use all those characters, and 60 is the generally recommended limit.
Long-tail keywords make a difference.
Here are the top meta titles in the SERPs for “How to make content marketing effective.”
By adding the year, we get an entirely new set of results for “how to make content marketing effective 2017.”
Some users will want basic information, while others will want the most current.
By adjusting our title tag, we can affect which of these searches we rank for.
Ultimately, the goal is to hit both, but that’s not always feasible.
Make sure your keyword is in your title, or you’ll find your articles buried in search results.
For example, when I search for the “best tacos in Tucson,” some restaurants are on page 10 below, even Del Taco.
That’s a wasted opportunity for that taco capital of the country!
These small businesses could greatly improve their search results, sales, and ROI by simply adding “best tacos in Tucson” to their title tags.
Here’s a sample of the HTML required for a title tag located in your header.
<head>
<title>The Best Title Example I Could Come Up With</title>
</head>
In WordPress, it’s as easy as giving your page a title.
You really can’t miss it.
That’s all there is to it!
2. Image Tags
Like title tags, Image tags aren’t labeled “meta.”
But they’re clearly used by search engines, link aggregators, and other sites to identify your site.
There are two image descriptions actually crammed into one tag.
Here’s what the HTML code looks like.
<img src=“image.jpg” alt=“image description” title=“image tooltip”>
Both the alt and title tags should be defined for the best experience.
The title displays on your screen when you hover your cursor over it.
The alt text displays when the image can’t be rendered (or is spoken to the blind and visually impaired).
When uploading an image to WordPress, you’ll be prompted to enter the title, caption, alt text, and description.
The more fields you fill out (even if you use the same information), the more searchable your images become.
Anywhere from 20-60% of all Google traffic goes to sites with well-optimized graphics.
Why wouldn’t you want to be included?
It’s also a matter of ADA website compliance.
There are approximately 58,200 people with some level of visual impairment per million in the U.S. alone.
That’s a huge segment of the population that wouldn’t have a great user experience without alt image tags.
Optimize your images for search engines and users.
3. Description Meta Tags
A meta description tag gives you a chance to provide an overview of the page’s content.
They’re limited to around 160 characters and aren’t directly tied to Google’s search algorithms at all!
Once again, the reason you need description tags is to improve the user experience.
Description tags encourage click-throughs.
Here’s what the HTML looks like:
<head> <meta name=”description” content=”This is an example of the text that will show up in search results. Read on to learn more about description tags.”> </head>
Without a meta description, Google will default to whatever preview sentence it feels best encompasses the content.
This isn’t necessarily a bad thing.
This post doesn’t have a meta description (I rarely use them), and it ranks well.
Of course, my blogs are filled with relevant content in short, sweet sentences. Most of them would work as descriptions on their own.
Still, there’s no harm in adding additional information to make your content more searchable.
4. Robots Noindex and Nofollow Meta Tags
Robot meta tags aren’t always necessary.
By default, all of the pages and links you create on your website are indexed as ‘follow’ by search bots and web crawlers.
Whenever you want to redirect them, you’ll need a robot meta tag.
Here’s the noindex HTML code:
<html><head> <meta name=”robots” content=”noindex” /> (…) </head>
This would be within the header and indicate this page doesn’t need to be indexed.
It’s useful for syndicated and duplicate content that your customers/readers could use, but you don’t want credit in search indexes.
Here’s the HTML for a robot nofollow.
<meta name=”robots” content=”nofollow”>
This is used for links you don’t necessarily want to endorse.
For example, readers leaving links in my comments aren’t exactly endorsed by me, so a nofollow tag above the comments section keeps my site clean for bots.
Here’s a great infographic on when and how to use nofollow tags.
Now we get to one of the most controversial meta tags.
5. Keyword Meta Tags
Keyword tags aren’t used by search algorithms to determine search ranking.
Here’s what the HTML looks like:
<meta name=”keywords” content=”HTML, CSS, XML, JavaScript”>
I coach my SEO clients to ignore keyword tags because they don’t affect SEO.
That doesn’t necessarily make them useless, however. They’re especially useful in WordPress.
Keyword tags and categories can help Google determine which page on your site should rank for a search.
They also create a page in WordPress that provides one more indexed page.
This means that, while your blog posts are focused on long-tail keywords, your tag and category pages have feeds covering the shorter keywords.
Categories can be used for the URL format, providing one more keyword to the page address.
This is accomplished under Settings – Permalinks in WordPress.
Adding this format provides context to your content.
Google loves context for search results!
Keywords also provide a big-picture overview of how many pages you have for each keyword.
You can use them to help plan your editorial calendar.
6. Viewport tags
You don’t spend much time thinking about viewports, but they’re especially important in today’s mobile-first world of search.
On mobile devices, pages are shown in a popup window called a viewport that extends past the device’s border.
Here’s an illustration of what I’m talking about.
Developers can set the viewport size to increase mobile usability.
WordPress users can check this tag to learn this information for their templates.
But you probably didn’t know that unless you’re already a web developer.
Since Google increasingly focuses on mobile-friendly websites, this meta tag could mean the difference between success and mobile failure.
Now that you have a basic understanding of meta tags and why they’re important, I’ll show you some of my favorite tools for manipulating them.
Free Tools to Add and Check Your Meta Tags
Don’t worry if this all sounds overwhelming — there are tons of tools to make it easy to get meta tags right. Here are two of my favorites.
Yoast SEO Plugin for WordPress
Yoast is a powerful SEO plugin for WordPress and one of the most-downloaded SEO and meta tags tools.
With Yoast, all of the pages and posts you publish have back-end options to increase social sharing, optimize SEO, update tags, and other metadata.
With Yoast installed on your WordPress site, a few clicks and a few seconds of your time are all it takes to add meta-tagging to your process.
Yoast also allows you to enter a focus keyword that doesn’t get added to the meta tags, allowing the back-end program to analyze your post.
BuzzStream Meta Tag Extractor
If you need a quick chart of the metadata that’s being used by your competition, BuzzStream’s Meta Tag Extractor is a sleek and simple solution.
Copy and paste a list of URLs, and you’ll be presented with the meta tag information.
There’s even an option to download as a CSV file so that you can scrape large lists quickly.
It’s a quick and easy way to organize this data when you need it.
This free online tool does its job without all the bells and whistles.
Less Popular (But Still Useful!) Meta Tags
So to be fully transparent, here’s a chart of HTML meta tags.
An author meta tag can be used to tell search engines who wrote a piece of content.
Authors have been used in the past for search results, but it’s not a factor anymore. However, you might use author tags if you run a multi-author blog.
WordPress does add this information to blogs when multiple users are contributing content.
It’s more a badge of honor for bloggers than anything else.
Most of the rest define parameters that should already be controlled on a server level.
While I ignored these meta tags, it doesn’t mean you have to. Feel free to add whatever information you’d like.
It doesn’t help search rankings, but it doesn’t hurt them, either.
Conclusion
Meta tags are a basic part of HTML — and can impact SEO.
Back in the early days of the internet, they were a signaling factor for search engines to understand what content is on a page.
The internet (and our relationship with it) has evolved exponentially since then.
Contextual search, AI digital assistants, and mobile devices are changing the way we view content.
Search engines are incentivized to provide the best search results possible, so meta tags are less important.
However, some, such as the titles and meta descriptions, are more important than ever before.
While less metadata is used, it’s still the first impression you’ll make on both robots and people.
What do your website’s meta tags say about you?
The post What Are Meta Tags? appeared first on Neil Patel.
Original content source: https://neilpatel.com/blog/why-meta-tags-are-so-important/ via https://neilpatel.com
See the original post, What Are Meta Tags? that is shared from https://imtrainingparadise.weebly.com/home/what-are-meta-tags via https://imtrainingparadise.weebly.com/home
0 notes
Text
Persian Rug Repair Julian
youtube
https://www.youtube.com/watch?v=w8sojAGN2cE
Welcome to Oriental Rug Specialists Expert Oriental Rug Cleaning, Repairing and Restoration Welcome to Oriental Rugs Specialist, San Diego County's best source for Oriental rug cleaning, repair, and restoration services. In business in the past 1929, we have eight decades of experience our customers can tally on and excel at maintaining and restoring a broad range of natural and synthetic fiber rugs and associated textiles, including Afghanistan rugs, Belgium rugs, Bokhara rugs, Chinese rugs, Couristan rugs, Flokati rugs, Indian rugs, Karastan rugs, Kilim Moroccan rugs, Navajo rugs, Pakistani rugs, Persian rugs, Sisal rugs, Stark rugs, Turkish rugs, and more. We never use argumentative chemicals or abrasive scrubbing machines; instead, we with intent and thoroughly hand tidy all rug that enters our facility. Additionally, we are highly skilled at total rug fix and restoration, which includes everything from dye touch-ups to refringing to hole repair. We stand at the rear all of our comport yourself considering a 100% satisfaction guarantee and tag each rug during transit for security purposes. By providing air workmanship considering personalized service, competitive prices, and release pickup and delivery, we have earned a stellar reputation for value among our customers in San Diego County and beyond. At Oriental Rugs Specialist, we always acknowledge the period to safeguard the integrity of each Oriental rug's fibers and dyes. We with intent inspect each rug in the past treating it and rely on our family's time-tested hand cleaning approach. By using compressed air to sever dirt, grit, sand, and dust, and after that submerging the rug in a series of baths for decontamination, hand washing, and rinsing, we effectively disinfect, sanitize, and tidy it. This process is furthermore ideal for removing pet urine stains, food stains, wine stains, mold, mildew, smoke odors, and additional substances from antique, semi-antique, and additional Oriental rugs. After the rug cleaning process is complete, our team of master weavers will house any rug broken caused by time, moth infestations, chemicals, pets, improper care, or high pH cleansers. considering an average of 35 years of experience, they are experts in rug reshaping, rug reweaving, color bleed correction, edge-work blocking, edge binding, re-dying, patching, sleeve casing repair, and many additional rug fix and restoration services. To learn more not quite our San Diego Oriental rug cleaning, repair, and restoration services, come up with the money for us a call today. We are welcoming seven days a week and come up with the money for release estimates throughout San Diego County, including Oceanside, Carlsbad, Vista, Encinitas, Del Mar, Solana Beach, narrowing Loma, Coronado Island, Chula Vista, and welcoming areas. question us not quite our 20% discount on rug repairs and restoration comport yourself for large Oriental rugs and tapestries.
https://gwrench.com/
https://www.brothersautocollision.com/
https://a2zhealth.com/
https://persianrugrepairplacentia468.blogspot.com/2022/06/persian-rug-repair-julian_01387433385.html Persian Rug Repair Julian Persian Rug Cleaning Julian Persian Rug Restoration Julian https://howtoeasilygetaertcrefund.blogspot.com/ https://howtoeasilygetaertcrefund.blogspot.com/2022/06/how-to-easily-get-ertc-refund.html https://veganpragencyreview.blogspot.com/2022/06/white-plains-divorce-lawyer.html https://your-ertc-eligibility-q-r7f3.tumblr.com/post/688307475920863232/how-to-easily-get-a-ertc-refu https://local-victorville-yoga-wa7j2m.tumblr.com/post/688307620557242368/white-plains-divorce-lawyer
0 notes
Text
Persian Rug Repair Julian
youtube
https://www.youtube.com/watch?v=w8sojAGN2cE
Welcome to Oriental Rug Specialists Expert Oriental Rug Cleaning, Repairing and Restoration Welcome to Oriental Rugs Specialist, San Diego County's best source for Oriental rug cleaning, repair, and restoration services. In business previously 1929, we have eight decades of experience our customers can add together on and excel at maintaining and restoring a spacious range of natural and synthetic fiber rugs and partnered textiles, including Afghanistan rugs, Belgium rugs, Bokhara rugs, Chinese rugs, Couristan rugs, Flokati rugs, Indian rugs, Karastan rugs, Kilim Moroccan rugs, Navajo rugs, Pakistani rugs, Persian rugs, Sisal rugs, Stark rugs, Turkish rugs, and more. We never use unfriendly chemicals or abrasive scrubbing machines; instead, we with intent and thoroughly hand tidy every rug that enters our facility. Additionally, we are highly competent at resolved rug repair and restoration, which includes everything from dye touch-ups to refringing to hole repair. We stand at the back every of our action bearing in mind a 100% satisfaction guarantee and tag each rug during transit for security purposes. By providing air workmanship bearing in mind personalized service, competitive prices, and free pickup and delivery, we have earned a stellar reputation for value along with our customers in San Diego County and beyond. At Oriental Rugs Specialist, we always undertake the get older to safeguard the integrity of each Oriental rug's fibers and dyes. We with intent examine each rug previously treating it and rely on our family's time-tested hand cleaning approach. By using compressed let breathe to cut off dirt, grit, sand, and dust, and later submerging the rug in a series of baths for decontamination, hand washing, and rinsing, we effectively disinfect, sanitize, and tidy it. This process is then ideal for removing pet urine stains, food stains, wine stains, mold, mildew, smoke odors, and new substances from antique, semi-antique, and new Oriental rugs. After the rug cleaning process is complete, our team of master weavers will habitat any rug damage caused by time, moth infestations, chemicals, pets, unsuitable care, or high pH cleansers. bearing in mind an average of 35 years of experience, they are experts in rug reshaping, rug reweaving, color bleed correction, edge-work blocking, edge binding, re-dying, patching, sleeve casing repair, and many new rug repair and restoration services. To learn more about our San Diego Oriental rug cleaning, repair, and restoration services, meet the expense of us a call today. We are within reach seven days a week and meet the expense of free estimates throughout San Diego County, including Oceanside, Carlsbad, Vista, Encinitas, Del Mar, Solana Beach, point Loma, Coronado Island, Chula Vista, and within reach areas. question us about our 20% discount on rug repairs and restoration action for large Oriental rugs and tapestries.
https://gwrench.com/
https://www.brothersautocollision.com/
https://a2zhealth.com/
https://persianrugrepairjulian.blogspot.com/2022/06/persian-rug-repair-julian.html Persian Rug Cleaning Julian Persian Rug Restoration Julian Persian Rug Repair Julian https://persianrugrepairplacentia468.blogspot.com/2022/06/persian-rug-repair-julian_01387433385.html https://persianrugpros.tumblr.com/post/688308064246530048/persian-rug-repair-julian https://doyoueatinghealthy10.blogspot.com/2022/06/do-you-eating-healthy.html https://howtoeasilygetaertcrefund.blogspot.com/ https://howtoeasilygetaertcrefund.blogspot.com/2022/06/how-to-easily-get-ertc-refund.html
0 notes
Text
What Are Meta Tags?
Let’s talk about meta tags — what they are, why they matter, and how to do them better.
First things first — what made you click on this article to read it?
Maybe the title caught your eye, or perhaps it was the short blurb you saw.
You might have clicked simply because this article comes from a source you trust.
If you found this article via a search engine, though, there’s a good chance you found and clicked this article because of meta tags.
youtube
Meta tags are the foundation of SEO, and the first thing you’ll find yourself setting up when building a web page.
Without meta tags, you can’t reach readers organically.
It doesn’t take much time to generate meta tags, but it’s more important than you might think.
That’s because 93% of all online experiences begin with a search engine.
This is why so many online marketers are so focused on getting SEO right.
Organic search traffic is the holy grail of SEO, so it can’t be ignored.
Your content needs to be readable and appealing to users on search engines.
There’s a very specific syntax needed.
It’s similar to how bookstores and libraries organize their archives of books — and that’s what meta tags are, essentially.
What are Meta Tags?
Meta tags are a type of HTML tag that provides search engines with information about a website page.
Let’s take a look at the basic elements.
The title and description tags make up almost the entire entry.
If not for these meta tags, all you’d see in Google SERPs would be my URL.
Title and description tags are the two most-used tags for SEO purposes, but SEO isn’t the only part of digital marketing.
Advanced digital marketing requires the use of even more tags that improve page rank and overall user experience.
Just like this search result, you’ll soon find out that these tags control how your entire digital presence is viewed and navigated.
Machines can read URLs just fine. If I wrote for machines, my website would look like this:
Google prioritizes certain tags because they provide context for people.
I built my website for people as well, so it looks like this:
This polish is what marketing is all about.
In this blog post, we will explore meta tags and see how they affect your overall digital marketing efforts.
While simple, the devil is in the details, and every detail counts.
How Meta Tags Affect Brand Image and Click-Through Rates
You absolutely can judge a book by its cover. It’s what covers are designed for.
Your title and meta description tag create the cover for your web page. They’re your first impression on most visitors.
It’s not just about search engines, but how we view the Internet.
Reddit is a basic link-aggregation site that takes away all the bells and whistles.
Reddit depends on the title and image to entice conversations and clicks.
Using meta tags correctly is like using the correct format for a business email.
Sure, you can put whatever you like out there, but there’s a level of professionalism that’s expected at some point.
Even Amazon will only give you a picture, title, and short description to make your point.
Think of these tags as your elevator pitch.
You’re given about as much space as a Tweet to sell your entire brand and product.
Which means you need to nail it.
You can’t just call in this detail and polish everything else. If you do, nobody will ever see the rest of what you polished.
We already know how meta tags affect SEO, but that’s not the only element.
Meta tags will make your email marketing and marketing automation efforts easier by providing information for emailed links.
Tags are a crucial element that determines what my automated social media posts look like.
When other bloggers, YouTubers, and social media influencers (and micro-influencers) share your content, tags make it easier.
Think of meta tags as the packaging for your product.
If your packaging isn’t spot-on, nobody will ever buy your product, no matter how great it is!
So what are some best practices to implement for tags?
Meta Tag Best Practices
There are a TON of different HTML tags that can be used on a web page. We’re only going to focus on a handful of significant tags.
We’ll start with the one that might have brought you here today.
1. Title Tags
It’s not technically a meta tag, but it shows up in the header and is used as one.
As of July 2017, the character limits for title tags in Google search results are 78 on mobile devices and 70 on a desktop.
However, that doesn’t necessarily mean you should use all those characters, and 60 is the generally recommended limit.
Long-tail keywords make a difference.
Here are the top meta titles in the SERPs for “How to make content marketing effective.”
By adding the year, we get an entirely new set of results for “how to make content marketing effective 2017.”
Some users will want basic information, while others will want the most current.
By adjusting our title tag, we can affect which of these searches we rank for.
Ultimately, the goal is to hit both, but that’s not always feasible.
Make sure your keyword is in your title, or you’ll find your articles buried in search results.
For example, when I search for the “best tacos in Tucson,” some restaurants are on page 10 below, even Del Taco.
That’s a wasted opportunity for that taco capital of the country!
These small businesses could greatly improve their search results, sales, and ROI by simply adding “best tacos in Tucson” to their title tags.
Here’s a sample of the HTML required for a title tag located in your header.
<head>
<title>The Best Title Example I Could Come Up With</title>
</head>
In WordPress, it’s as easy as giving your page a title.
You really can’t miss it.
That’s all there is to it!
2. Image Tags
Like title tags, Image tags aren’t labeled “meta.”
But they’re clearly used by search engines, link aggregators, and other sites to identify your site.
There are two image descriptions actually crammed into one tag.
Here’s what the HTML code looks like.
<img src=“image.jpg” alt=“image description” title=“image tooltip”>
Both the alt and title tags should be defined for the best experience.
The title displays on your screen when you hover your cursor over it.
The alt text displays when the image can’t be rendered (or is spoken to the blind and visually impaired).
When uploading an image to WordPress, you’ll be prompted to enter the title, caption, alt text, and description.
The more fields you fill out (even if you use the same information), the more searchable your images become.
Anywhere from 20-60% of all Google traffic goes to sites with well-optimized graphics.
Why wouldn’t you want to be included?
It’s also a matter of ADA website compliance.
There are approximately 58,200 people with some level of visual impairment per million in the U.S. alone.
That’s a huge segment of the population that wouldn’t have a great user experience without alt image tags.
Optimize your images for search engines and users.
3. Description Meta Tags
A meta description tag gives you a chance to provide an overview of the page’s content.
They’re limited to around 160 characters and aren’t directly tied to Google’s search algorithms at all!
Once again, the reason you need description tags is to improve the user experience.
Description tags encourage click-throughs.
Here’s what the HTML looks like:
<head> <meta name=”description” content=”This is an example of the text that will show up in search results. Read on to learn more about description tags.”> </head>
Without a meta description, Google will default to whatever preview sentence it feels best encompasses the content.
This isn’t necessarily a bad thing.
This post doesn’t have a meta description (I rarely use them), and it ranks well.
Of course, my blogs are filled with relevant content in short, sweet sentences. Most of them would work as descriptions on their own.
Still, there’s no harm in adding additional information to make your content more searchable.
4. Robots Noindex and Nofollow Meta Tags
Robot meta tags aren’t always necessary.
By default, all of the pages and links you create on your website are indexed as ‘follow’ by search bots and web crawlers.
Whenever you want to redirect them, you’ll need a robot meta tag.
Here’s the noindex HTML code:
<html><head> <meta name=”robots” content=”noindex” /> (…) </head>
This would be within the header and indicate this page doesn’t need to be indexed.
It’s useful for syndicated and duplicate content that your customers/readers could use, but you don’t want credit in search indexes.
Here’s the HTML for a robot nofollow.
<meta name=”robots” content=”nofollow”>
This is used for links you don’t necessarily want to endorse.
For example, readers leaving links in my comments aren’t exactly endorsed by me, so a nofollow tag above the comments section keeps my site clean for bots.
Here’s a great infographic on when and how to use nofollow tags.
Now we get to one of the most controversial meta tags.
5. Keyword Meta Tags
Keyword tags aren’t used by search algorithms to determine search ranking.
Here’s what the HTML looks like:
<meta name=”keywords” content=”HTML, CSS, XML, JavaScript”>
I coach my SEO clients to ignore keyword tags because they don’t affect SEO.
That doesn’t necessarily make them useless, however. They’re especially useful in WordPress.
Keyword tags and categories can help Google determine which page on your site should rank for a search.
They also create a page in WordPress that provides one more indexed page.
This means that, while your blog posts are focused on long-tail keywords, your tag and category pages have feeds covering the shorter keywords.
Categories can be used for the URL format, providing one more keyword to the page address.
This is accomplished under Settings – Permalinks in WordPress.
Adding this format provides context to your content.
Google loves context for search results!
Keywords also provide a big-picture overview of how many pages you have for each keyword.
You can use them to help plan your editorial calendar.
6. Viewport tags
You don’t spend much time thinking about viewports, but they’re especially important in today’s mobile-first world of search.
On mobile devices, pages are shown in a popup window called a viewport that extends past the device’s border.
Here’s an illustration of what I’m talking about.
Developers can set the viewport size to increase mobile usability.
WordPress users can check this tag to learn this information for their templates.
But you probably didn’t know that unless you’re already a web developer.
Since Google increasingly focuses on mobile-friendly websites, this meta tag could mean the difference between success and mobile failure.
Now that you have a basic understanding of meta tags and why they’re important, I’ll show you some of my favorite tools for manipulating them.
Free Tools to Add and Check Your Meta Tags
Don’t worry if this all sounds overwhelming — there are tons of tools to make it easy to get meta tags right. Here are two of my favorites.
Yoast SEO Plugin for WordPress
Yoast is a powerful SEO plugin for WordPress and one of the most-downloaded SEO and meta tags tools.
With Yoast, all of the pages and posts you publish have back-end options to increase social sharing, optimize SEO, update tags, and other metadata.
With Yoast installed on your WordPress site, a few clicks and a few seconds of your time are all it takes to add meta-tagging to your process.
Yoast also allows you to enter a focus keyword that doesn’t get added to the meta tags, allowing the back-end program to analyze your post.
BuzzStream Meta Tag Extractor
If you need a quick chart of the metadata that’s being used by your competition, BuzzStream’s Meta Tag Extractor is a sleek and simple solution.
Copy and paste a list of URLs, and you’ll be presented with the meta tag information.
There’s even an option to download as a CSV file so that you can scrape large lists quickly.
It’s a quick and easy way to organize this data when you need it.
This free online tool does its job without all the bells and whistles.
Less Popular (But Still Useful!) Meta Tags
So to be fully transparent, here’s a chart of HTML meta tags.
An author meta tag can be used to tell search engines who wrote a piece of content.
Authors have been used in the past for search results, but it’s not a factor anymore. However, you might use author tags if you run a multi-author blog.
WordPress does add this information to blogs when multiple users are contributing content.
It’s more a badge of honor for bloggers than anything else.
Most of the rest define parameters that should already be controlled on a server level.
While I ignored these meta tags, it doesn’t mean you have to. Feel free to add whatever information you’d like.
It doesn’t help search rankings, but it doesn’t hurt them, either.
Conclusion
Meta tags are a basic part of HTML — and can impact SEO.
Back in the early days of the internet, they were a signaling factor for search engines to understand what content is on a page.
The internet (and our relationship with it) has evolved exponentially since then.
Contextual search, AI digital assistants, and mobile devices are changing the way we view content.
Search engines are incentivized to provide the best search results possible, so meta tags are less important.
However, some, such as the titles and meta descriptions, are more important than ever before.
While less metadata is used, it’s still the first impression you’ll make on both robots and people.
What do your website’s meta tags say about you?
The post What Are Meta Tags? appeared first on Neil Patel.
Original content source: https://neilpatel.com/blog/why-meta-tags-are-so-important/ via https://neilpatel.com
The original post, What Are Meta Tags?, has been shared from https://imtrainingparadise.wordpress.com/2020/11/12/what-are-meta-tags/ via https://imtrainingparadise.wordpress.com
0 notes