Tumgik
#do i have a tag for print articles? i should if i don't - get on that past and future Crystal
kindahoping4forever · 7 months
Text
Galantis and Michael spoke with Rolling Stone about the origins of Lighter and the collaborative process
32 notes · View notes
jinitak · 11 months
Text
Note: This post is translation exercise for me, I wrote this as an article in Thai. No tags because I don't think it deserves to be in the Thai BL tag. If someone were to stumble upon this post, feedback would be appreciated, I will probably be publishing this somewhere and I don't want to get cancelled.
Cultural Analysis: Why we end categorising BL as a genre
By Kathoey Kae
Greetings, dearest readers
I'm a new writer, if I wrote something wrong, something inappropriate, feel free to criticise my writings, I do not mind.
So, as of late I have been obsessed with a series, a series from the company near Asok. This series has the vibe of written by gays, directed by gays, watched by gays. The common vernacular would call this type of series, "BL." From my experience of watching almost a hundred "BL" series, it feels weird to call it "BL," it doesn't fit the tropes of this genre, everything is so gay... I don't know. If I had to categorise it, I'd probably categorise it as "Queer Media." But after much thought, I came to the conclusion that the issue isn't how "BL" this series is but rather that BL is useless as a genre.
But my dear readers, before you bring the cancel caravan, I would like you to understand how I came to that conclusion. The story of this series focuses on the love life of queer people, 5 gay, 2 Lesbian, 1 Bi/Pan and 1 Trans. They each have varying levels of questionability, there is no puppy love, some characters are open to showing their sexual arousal, some do not commit to tradition relationships etc. I don't think this really fits the bill for BL, which I think sparked some controversy because some people believe that this series present people in the community negatively by presenting them as more sex-crazed than the rest of society.
Although this genre is already heavily criticised for not being able to present an accurate picture of queer people, but I believe that that criticism is valid because the definition of BL as a genre is so encompassing. Some BL may want to present the sex life of queer people (like this one), some wants to present the coming of terms with one's sexuality and coming of age, some may want to present a romance akin to post-evening news lakhons. We can see that the goal of each BL is so vastly different that we cannot expect the same representation of the community.
In the past, "BL" may be easy to group together, as they shared some clear common characteristics which is; developing from sexually explicit gay media made by women for women, usually set in an education institution, with plot centred around puppy love with some hints of sexually content (this is especially clear in print media). But in contemporary times, "BL" has moved away from those characteristics that the only thing most BL share is their same-sex male lead characters.
We should not expect the same kinds of queer representation from media with vastly different purpose of presentations. Imagine this situation, a film wants to present the life of a female spy, whilst another film is a documentary about the feminist movement, would you expect them to present women in the same way? Probably not, because these 2 films have 2 different aims when presenting women. We cannot set the same standard for all films, we have to look at the context behind each story to determine whether that representation is problematic or not.
I understand that queer representation in media is still limited, but policing which type of media presents queerness "correctly" is no different from defining what queer people can and can't do. Isn't placing all media with queer leads in the same genre actively countering the normalisation of queer people in media? We should stop expecting queer representation to fit to one's believes the same way we don't expect progressiveness from Christmas movies from Hallmark.
I understand that some portrayals of queer people is inappropriate (such as the "He isn't gay, he likes the main character") but BL has long progressed pass those tropes. The issue with queer media in Thailand isn't the representation but rather the culture associated with said media; the obsession with positions on the bed, the questionable support for the community by actors, the discrimination against actors in the community etc. Those are issues of media media in the present, rather than queer media not fitting what you, my dear readers envisioned.
4 notes · View notes
Text
I feel like explaining what went down with the latest MtG bans to my non-MtG mutuals. For some reason.
So, what is likely to be the single most controversial ban announcement in Magic the Gathering history just dropped. They banned four cards: Mana Crypt, Jeweled Lotus, Dockside Extortionist, and Nadu, Winged Wisdom.
All these bans are for the Commander format, which for our purposes if you don't play just means "the actual popular format where if some rando asks if you play Magic this is probably what they mean."
Let's start with the one that ISN'T controversial. Nadu, Winged Wisdom was a design mistake. It came out in a set aimed at one specific tournament format (Modern), immediately turned out to be both wildly overpowered, unfun to play against, and caused games to drag out into these slogs where the Nadu player is sitting there twiddling with their thumbs doing the same one or two game actions over and over again but targeting a different one of their guys. It was quickly banned in the very format that set was designed for, and that banning came with an article explaining that he was straight up a mistake and they hadn't tested the version of the card as it went to print before they had to push the set out the door. The ban yesterday was banning it in MtG's most popular format, Commander, where basically anyone who hadn't gone out of their to buy the card wanted it gone for the same reasons Modern wanted it gone. He was overpowered, but the actual problem is just if you're looking to play a one or two hour 4-player game, the Nadu player took an hour and a half of it to themself and didn't necessarily win because of it.
Now, into the controversial ones. Mana Crypt. Mana Crypt is a staple of the highest power decks in the Commander format. Many, many people have said if your deck has this card in it, it cannot possibly be below a 8 or 9/10 on the power scale. The cheapest printing of this card, before the bans, was roughly $200. It was one of the biggest gates you had to pass through to play "big kid" competitive Commander is getting one of these fuckers. This card has no in-game cost to play, and effectively reads "immediately accelerate your game plan two turns forward or more, but there's a 50/50 chance you take a trivial amount of damage every turn." It's pretty good. If you play any turn based game, you can probably guess how good skipping past the need for setting up for later more powerful turns can be. It's now banned, and has lost more than half of that price tag immediately and is still dropping. A lot of people's collections just had a chunk of their value go up in smoke. There's gonna be a LOT of people for whom this was the most valuable card they owned.
Jeweled Lotus. This card is very similar to Mana Crypt. A little more context about the Commander format: it's named that way because every deck has a "commander" that you can always play, and your gameplan is generally centered around that commander. Jeweled Lotus essentially says "play your commander specifically three turns early one time." Obviously, this is good for the same reason Mana Crypt above is good. Skipping the setup and getting straight to the action while your opponents are still getting into gear? Obviously good. It was about $100 before the ban, and is now about $40 and dropping.
And lastly, Dockside Extortionist. Dockside comes down sometime around turn 2 or 3 based on his cost to play, and basically says "when I come into play if your opponents are doing okay in their gameplan, put your gameplan ahead by about 4 turns. If your opponents are doing WELL, blast off on a jet of value so insane that you should probably quit Magic if you fumble this win." So it's both a punishment for your opponents' having dared play the game, AND good for the same reasons as the previous two cards. It was about $90 before the bans and I'll be honest I can't be bothered to check now.
These three cards were, collectively a few vertebrae in the spine of competitive Commander decklists, which probably tells you a lot of what to expect in that space: decks looking to win fast or die trying, willing to throw absolutely any card at you regardless of how much that card COSTS. There's plenty of other cards that do similar things to this, but these were three BIG deals in that space, which means that players now need to seek alternatives to fill the holes in these deck lists. High power Commander decks, as a whole, just got a LOT slower in how many turns they take to win the game on average.
And I couldn't be happier. To be clear, I own a copy of every single one of these cards besides Nadu. I have competitive Commander decks. My collection has lost value and I have had to try and figure out replacements in the decks running these cards. But forcing the foot slamming down on the gas pedal to lighten up a little bit sounds like something the game could actually use. I'm eager to see what the competitive meta looks like in the coming days. What do people gravitate towards? The meta isn't basically solved anymore. (I mean, it kind of is because the cards that actually WIN the game in the most efficient way didn't get banned, but hey they at least take longer to do it now.)
1 note · View note
fathi1708 · 1 year
Text
How photography changed world.
Whatever you were thinking before, you could be wrong. Appreciating how photography changed the world and how we remember modern history is essential for society.
Photography is the ultimate tool for capturing our surroundings with a realistic approach. Due to the very nature of capturing evidence, it has impacted the way we remember things from our past.
From global-scale events to domestic and familiar occurrences, photography has shaped the way we remember things.
1. Photography Changes History
And It Alters our Perspective of the Past!
The instant and immediate viewing of events is one of the most important things photography has given to humanity. Each day that passes, we get closer in terms of globalization.
Images reach a broader and wider audience each day, and history is reducing its gaps in terms of time intervals.
Major events in our modern and contemporary times are widely known and remembered thanks to photography.
Photography has helped history to be reinforced with visual evidence that provides more objectivity than illustrations ever did. It goes further yet from the oral tradition of previous historical times.
We can remember the past, not only because of our great and lucid memories, which I don't doubt some people have but because of photography.
We even experience feelings of nostalgia when we see images from previous times that can be completely unknown and almost foreign to us. It's bringing a tangible feeling (especially printed photographs) back from a picture in our mind.
2. Photography Changes Social Events And Family History
From weddings to funerals, photography has been present and shaped the way we do things.
Wedding photography is the ultimate form of social event photography, and the risk of failure has such dramatic consequence! The fear of failing at it is one of the main reasons why this photographic niche isn’t as highly saturated as one might think.
Domestic photography is a beautiful, intimate and genuine act of vernacular documentation. Almost all families treasure their photographs because they tell their story – it’s as simple as that.
Some photographers have taken this discipline into the artistic realm, like Sally Mann with intimate family photos, or Nicholas Nixon with his Brown Sisters series.
Sally Mann is best known for her project called Immediate Family.  It was first exhibited in 1990 by Edwynn Houk Gallery in Chicago and published as a monograph in 1992. This controversial project consists of 65 black-and-white photographs of Mann’s three children, all under the age of 10. Many of the pictures were taken at Mann's summer cabin along the river, where the children played and swam in the nude. These photos explore not only typical childhood themes, but also darker topics such as  insecurity, loneliness, sexuality and death.
When it comes to Nicholas Nixon and his project (The Brown Sisters), he started it in 1975. He was taking photos of his wife and her three sisters each year, consistently posed in the same left to right order. He made 40 portraits altogether and the series of these portraits has been shown at the St. Louis Art Museum, Harvard University's Fogg Art Museum, the Cincinnati Art Museum, the Modern Art Museum of Fort Worth, and the Institute of Contemporary Art in Boston.
We can say with certainly that both Mann’s and Nixon’s projects have shaped the history of photography even though they were just intimate family portraits!
3. Photography Changes Privacy With Social Media
Social media wouldn't be what it is today if not for photography. From tags to selfies, photography has helped people to transform their own privacy.
The whole notion of sharing has rocketed to new heights and almost defined a whole sub-genre in photography. The smartphone for one, has transformed what people photograph.
In one of my previous articles, why you should always carry a camera with you, it has become apparent over recent years that mobile photography is only gaining more momentum!
Erik Kessels did something in 2011 called 24Hrs in Photos. The performance consisted of filling an Amsterdam gallery with pictures uploaded to Flickr in 24 hours. Then he completely drowned the place with the printed images! Kessel is best known as a book publisher specializing in absurdist found photography. He collects photographs he finds on flea markets, fairs or online, and then re-contextualizes them in a humorous way.
This may be considered as a protest against the endless river of images uploaded to the internet. Or perhaps a statement about how photography has evolved in terms of resources and availability.
Many of these images were considered as domestic and vernacular, both key elements of private imagery.
Summary
Each of these three points may seem simplistic in their nature, but in fact, they hold monumental significance about how society has evolved. Cultures are changing – where is the future of photography taking us?
Every now and then it's good to pause, realize what's going on around us and consider taking a picture – whether it's with your smartphone or any camera you have on you.
No matter how “boring” the subject is, capturing a moment in history to one person may just be that indulgent moment of nostalgia for someone in years to come.
Remember to look back over your family photos and photos of your local area. It's a great way to appreciate what can happen over time as it flashes before our eyes.
1 note · View note
concerningwolves · 3 years
Note
Hej, I actually have three questions: How do you handle plotbunnies? I currently have 14 - more or less fleshed out. But they are mere notes. Secondly: I'm in a bind with some of my pieces. The introduction is more or less there and I have a cornerstone (an important scene) but I don't know how to get there. Thirdly: Is there a tag or so for beat readers and how much research is good? I can sink week into research a single detail. Thanks.
(A note before I begin: as of 02.04.21, asks like this violate my ask guidelines. This isn’t a personal scolding, @quamatoc, but I just want to make you and readers aware that I won’t take multiple unrelated topics in a single ask anymore. More on this AG update here.)
Handling Plot Bunnies
Honestly, the most helpful thing I've learned is that it's okay to just... let your plot bunnies be. Leave them grazing on your metaphorical mental lawn. You don't have to do something with them straight away – in fact, managing which projects you work on and when, instead of chasing down every plot bunny you see, is an important skill to learn.
I like to keep an Evernote notebook for each plot bunny, so I can update it whenever I get a new idea but don't feel like I'm abandoning the ideas or like I have to work on them Right Now. You could keep a physical notebook, a file, a digital folder full of word documents – it doesn’t matter what you use, so long as it’s something you can access easily and keep relatively organised. Sometimes fresh inspiration will strike and I'll realise that an apparently unrelated plot bunny is actually really useful for a current project, or I'll get struck with a full plot for a previously fragmented idea. Either way, it’s been really liberating to realise that I can just keep plot bunnies safe somewhere for later on.
Getting from Point A to Point B (Building the Plot)
► PLOT STRUCTURES & GENERAL NOTES
To get from place to place in a story, you need to think about what makes it tick. You don’t need to write scenes in order, though! For me, figuring out a plot is really just me asking myself a very, very long series of questions. If I know what the Big Scene is, I’ll work backwards, asking myself things and seeing how the answers could get me from point A to B.
You don’t have to figure out a plot freehand, either. If you’re struggling, you might find it useful to use a pre-made plot structure outline such as the. There are loads available online. Print out several different ones and see which fits best, put your important scene where you think it goes and work backwards, write all over them, use a giant whiteboard, write on the wall – if it helps, use it. Here’s a blog article on different types of plot structure.
I also think it's important to actually write. It's so easy to get caught up in plotting that you don't put your thoughts to paper. Make sure you don’t fall into that trap! I'm a plantser, meaning I like to do a mixture of pre-plotting and flying through drafts by the seat of my pants. Even if you’re a rigid planner, be sure to see how your ideas look in action by drafting out scenes.
► “WHAT IF?” QUESTIONS
“What if character A and B discover a secret? What if they have different opinions on what to do about the secret? What if this becomes a friends to enemies to friends to lovers plot?? – wait, no, what if they’re already enemies and this secret forces them to work together? What if—”
Brainstorm  "what if...?" questions and explore various options. You don’t have to make any final decisions – that’s the beauty of drafting! The point is to put together subplots and main plots, and see which one works best in getting you to where you want to go.
► GOALS, WANTS & AMBITIONS
A character’s ambitions, wants and goals are very important to a story. They help hook the audience in by giving them something to root for. Knowing what a character wants and what lengths they would go to to get it is crucial to driving a plot forwards, especially if your story is character-driven.
What does a character want? → A character can have multiple desires, but it’s helpful to pick one key thing that undercuts most of their actions. Maybe they want to find out who killed their mother, or escape from somewhere. Perhaps they want to steal a pretty gem. Maybe they want to be king, or they want to escape from their responsibilities as a ruler.
What steps is a character willing to take? → Some characters are willing to do anything to achieve their goals. Maybe they commit a crime, end up in prison, get nudged towards more heinous actions, and find themself in a situation they never would have expected. Other characters are more cautious, but get pushed to breaking point – and then make a Bad Decision that bring about a major plot point. The steps a character makes are what puts them on the path of your plot.
Could anything change a character’s desires, or influence them to take different/more drastic measures? If so, what, and how would this change plot events? → Let’s say that your cornerstone scene is when character A steals from character B, but A starts the story unfailingly loyal to B and only wants to protect them. In order to get to that cornerstone, you’d need to work out what could happen to change A’s priorities. Change is invaluable in getting from plot point to plot point. If something happens that changes what a character wants – i.e., a betrayal, a sudden exile, or a change in fortunes – it can push them down paths they wouldn’t have otherwise considered.
► CONFLICT & OBSTACLES
Just as characters need to want something; plots need conflict and obstacles to make them interesting.
What could go wrong? How would the character(s) try to solve the problem? → “How can I create problems?” is probably the most valuable question an author can ask when building the plot; asking yourself how the characters try and solve said problem just pushes it even further, like this:
Does the attempted solution work? Whether it succeeds or fails, does it have any unexpected consequences? → Say that your Important Scene takes place in a different location to where your characters start out. So, the thing that goes wrong means your characters need to flee (the solution), and it works! They’ve escaped! Only now, they don’t have anywhere safe to go, and so they end up going into the place where Important Scene happens. Or maybe they don’t escape, and their attempt means that they’re transported to a more secure location, which in turn gives them an opportunity to get to Important Scene Location.
Do A’s goals conflict with another character’s goals? What would the other character do to protect their own interests? → If your cornerstone scene involves a clash of two armies, you need to think about what could ramp up the tension between the two sides, and conflicting interests is a great way to do this. Maybe your protagonist is trying to save the world from impending doom, but the queen of a neighbouring land is blinded by hunger for more land and riches. Or, the protagonist is a queen-in-exile trying to wrestle the throne back from the tyrannical relative who usurped her. Think about how each characters’ moves against the other could drive the plot.
The key is to think of it as building a structure out of bricks or slabs. You have your cornerstone – great! – now you need to work out what parts go where.
Research and Beta Readers
Research is something I wholeheartedly and unironically love. I will actually give myself research days a treat for reaching certain writing goals! So, naturally, I'm going to say that there's no limit on how much research one should do to create a story. That said, there is one caution to keep in mind: research is good, so long as you don't let it stop you from actually writing OR let it turn your writing into something akin to an instruction manual. In early drafts, try replacing any specific information you need with a code such as [ELEPHANT] or [KX] – basically, something you can find easily with the search function later on when you’ve researched it.
To find beta-readers, I recommend using the writeblr tag. It's where the bulk of the community puts their stuff. Make a post like "call for beta readers" with information about your project and use the buzzword tags like "writeblr" "writers on tumblr" "writers of tumblr" "beta readers" and whatever genre is applicable. Avoid external links in the post, otherwise it won't show up in the tags.
[ASK GUIDELINES | KO-FI]
34 notes · View notes
apocalypseornaw · 4 years
Text
Always be Yours-5
Tumblr media
Word Count:4,476
Story Summary: Inspired by the 2 part I did of the same title. Follows Dean and Reader through season 9 into season 10
Chapter Summary: During a hunt a spell results with Dean tapping into his more k-9 nature
Warnings: ridiculousness along with the usual
After the interruption by Sam the night after Charlie left you expected Dean to find a moment to ask you whatever it was but it seemed as if he intended to act as if that moment had never happened between the two of you. Your bruises healed and with Kevin's mini vacation being over life in the bunker went back to as normal as it ever was.
You had just walked into the map room where Sam was sitting at the table when Dean walked in from the hall "Wow" you cut your eyes at him as you handed Sam a cup of coffee than sat across from him with your own "What?" Sam asked turning to look at his brother. "Kevin, I just poured some buffalo milk down his gob twice" you stifled a laugh. Poor kid was still recovering from Branson. "Buffalo milk?" Sam asked and without thinking you spoke over Dean "Hangover cure-all. Has everything in it except buffalo milk" Dean raised one eyebrow at you knowing what he meant and Sam not but luckily before he could comment on it Sam said what you were thinking "How is that kid still recovering from Branson?" "What can I say he's an amatuer. The slippery nipple shots at the Dolly Parton dixie stampede nearly killed the guy" "Not the slippery nipples" you muttered into your coffee and made both boys look your way with matching smirks before Sam told Dean he may have found a case.
"Are you sure you're up for a case Sammy?" Dean asked and you braced yourself for the ongoing back and forth where Sam would assure you and Dean both he was feeling fine and Dean would express his and yours concerns because the two of you actually knew what Sam's insides were like. "I am Dean. Look, Kevin's back on the heaven spell. Crowley's locked up so we should be out there doing what we do best. Plus we have Y/N here so three hunters are better than two"
Dean glanced your way but you kept your eyes trained on the coffee swirling around in your cup when Sam asked him "Are you at least going to listen?" Dean finally looked away from you and waved a hand "Go ahead" You turned to look at Sam as he started reading from the article "Taxidermist named Max Alexander crushed to death. Nearly every joint in his body dislocated, every bone broken. Poor guy is a human pretzel. You tell me what's got that kind of strength" "A demonic luchador?" Dean offered and the eye roll Sam gave him was deep enough you were certain Sam saw his own brain. "Shop's a couple hours away in Enid Oklahoma. We should at least check it out. Y/N you in?"
You looked up and shrugged "Sure, why not" Dean still hadn't said yes or not so Sam pushed "Unless there's some reason you think we shouldn't Dean" When you stayed quiet Dean finally let out a breath "Meet you both in the garage in twenty"
------
You sat in the backseat of the impala doing your best not to look Dean's way so you busied yourself with talking to Sam,double checking emails from other hunters and even fussing with your suit jacket. When baby finally came to a stop outside of Mounted Treasures Taxidermy you were relieved to get out of close quarters. Maybe you needed a break from the bunker too? You'd decide after this case.
You fell in step behind Sam and let out a low whistle when you saw the words "DIE SCUM" written in what you hoped was just red paint on the side of the building. Dean cut his eyes at you "Subtle isn't it?" Sam pointed out a symbol on the end of the letter M. It was an upside down triangle with a paw print inside. "I don't recognize it" you said before Sam took a photo "We'll look it up later"
Dean opened the door and motioned for you to go ahead so you smirked "Age before beauty" he rolled his eyes but stepped inside so you walked in between him and Sam. The interior of the building was even less welcoming than the message on the wall "The creep factor just skyrocketed" Dean muttered and you nodded in agreement glancing around at all the mounted animals lining the walls.
When Dean spoke the officer who you were assuming was in charge of the scene turned and spotted the three of you "Woah woah woah" You knew the drill so you had your badge out before Sam did the introductions "Agents Michaels, Deville and Jameson" motioning to Dean, himself than you in turn. The officer immediately turned a lot friendlier "The body's already went to the morgue just wrapping it up with Dave Stephens" then explained that Mr Stephens was who discovered the body. You glanced at the back room then back to the officer when he added "Sure a shame. I used to go hunting with Max. He was a real good egg"
"Sorry for your loss" Dean told him and you nodded in agreement. The officer thanked you both so Dean then said "Mind showing my partners around? I just got a couple questions for Mr Stephens" The officer nodded "Ok, Come on"
You walked in behind Sam and spotted the "Game of thrones" themed animals on the desk and nudged Sam. He picked one up and turned getting Dean's attention. If looks could actually scold anyone the look Dean threw at you and Sam was Bobby level scolding so you smirked then took the animal from Sam and replaced it with the others. You turned back to Sam "So emf? Hex bags?" he shrugged "You take emf, I'll look for the bags"
After a few minutes with no luck you and Sam headed back to the front room. Dean excused himself from Mr Stephens and the officer when he saw the two of you coming. "Excuse us"
"So?" Sam asked. "We got a thief jonesing for animal parts, a pagan symbol and a human pretzel" Dean said so you replied "Yeah it sounds all witchy but there's no hex bags or proof of anything we normally deal with every being here" So Dean shrugged "Well let's keep digging" then you noticed him look up at an owl that was on the wall before he added "Just not here" You looked at the owl then back at Dean "Did he insult you? Should I defend your honor here?" he smirked "I just don't like the way that thing's looking at me"
You were walking back to baby when Dean cut his eyes at you "Y/N, you good with one room or do we need two?" you shrugged "I'm fine with one" so he nodded "One it is"
------
Dean was going through his bag and you were coming out of the bathroom when Sam said "The symbol in the graffiti..It's not wiccan, It's copywritten" You walked over to where he was sitting on the foot of one of the beds and leaned over his shoulder to look at the screen then up at Dean "Local animal rights group, Enid's answer to PETA" Sam turned the screen around and Dean read over the screen "S.N.A.R.T? You got to be kidding me" "Well it makes sense that an animal right's group would have an axe to grind with a taxidermist" you offered pushing off Sam's shoulder to stand back up.
"Why? The animal's already dead" Dean asked and Sam responded "Yeah but hunters are what keeps them in business" Dean rolled his eyes and Sam added "Now the question is are those bleeding hearts actually witches or just hippies?" "What's the difference?" Dean asked and you laughed under your breath "We can shoot the witches?"
------
Gentle Earth Vegan Bakery was listed on S.N.A.R.T'S website so that was where you all headed. When you stepped in the door Dean looked around then said "Always knew I'd find the source of all evil at a vegan bakery" you tilted your head then said "Just wish I would've packed my leather jacket just to screw with them" and was rewarded with a wink from Dean and an eye roll from Sam.
Sam sniffed and his nose scrunched up "What's that smell?" "Patchouli" Dean answered and when you and Sam both looked his way he added "Mixed with depression from meat deprivation" you shook your head then noticed that the guy behind the counter was wearing sunglasses so you nudged Dean who followed your line of sight "Know who wears sunglasses inside?" You asked and he answered "Blind people and douchebags?" you shrugged "Point for the eldest Winchester. Sammy try to keep up"
You followed the boys to the counter then spoke "Olivia and Dylan Camrose?" the man and woman behind the counter looked your way "Yes ma'am?" "You two are members of S.N.A.R.T.? correct?" you asked and Olivia smiled "Founders and Co Presidents actually" then held up a pamphlet "Can we interest you in some literature?" Sam shook his head politely so Dylan offered a flax seed scone that was wheat, gluten and sugar free. "I'm gonna stop you right there" Dean interrupted "We're here to investigate the death of Max Alexander, local taxidermist" "He's dead?" Olivia choked out and appeared to be genuine. "You knew him?" you asked and she looked at Dylan before answering "Ish. Small town"
"Well he was murdered last night and a S.N.A.R.T. logo was found at the crime scene" you told her and wished she'd take those damn glasses off so you had a chance of catching a reaction of some sort. "You two wouldn't happen to know anything about that would you?" Sam pushed looking between the two of them.
------
Olivia and Dylan were a bust. Turned out while they were tagging the taxidermy place the night before they got spooked by a hissing sound and ran into the alley where they ended up getting maced. You didn't miss the irony of it but remained quiet when they removed their sunglasses to show their faces.
With no other leads you headed back to the motel to change and dig a little deeper because the "mace" on Dylan and Olivia didn't look like any macing you nor Sam had ever seen.
-------
You sat across from Sam while he typed into his laptop and took the beer Dean offered you. "Necrosis" Sam announced so Dean asked "Necrosis?" "Premature death of tissue, that's why their eyes were all messed up and it's not caused by mace" "Then what caused it?" you asked while Dean leaned over Sam to look at the screen.
"Blunt force, radiation, venom" Dean read off. "As in snake?" you asked and Sam shrugged "Taxidermist was constricted. Olivia and Dylan heard hissing and they were sprayed in the eyes" "By venom" you finished and took a sip of the beer.
"So we talking some sort of freaky ass snake monster?" Dean guessed sitting next to you on the chair and you shook your head at him but refused to move. Sam looked between you two then shrugged "Maybe but the weird thing is, snakes either envenomate or constrict. No snake does both" "Correction, freaky ass mega snake monster. Awesome" you scoffed which made Sam chuckle and offer "Could be a vetala?" "Yeah but they're not afraid to sink their fangs in" Dean brushed off the suggestion and you agreed "Taxidermist was bite free. Doesn't fit the profile"
Sam sighed "So we call Kevin? get him to look some stuff up?" "Best option we have at the moment" Dean agreed.
-------
With nothing else to do for the day Dean went to grab some food so all of you could eat and attempt to get a little sleep. You were sitting at the table in the room and Sam cleared his throat so you glanced up "Yeah?" you could tell he was wanting to say something but also not risk you getting upset at whatever it was so you stared at him expectantly "Just say it Sam"
He scratched behind his ear as he stood up and walked over to sit across from you "Is there something going on between you and Dean?" you didn't have to act in that moment because you were honestly confused "Huh?" he shrugged "Lots of conversations just from looks being passed back and forth. Dean worried about you leaving the bunker. The couple times I've walked into a room and the two of you jump apart.." You shook your head "There's nothing like that going on Sam. Just when you got so sick after the trials I guess it just pushed me back fully into your lives and then after the two of you talked me into moving into the bunker we're close quarters and all" He didn't look too awfully convinced but nodded nonetheless "Ok, I mean I just wanted to say I wouldn't have an issue with it. You both deserve someone to make you happy and if that happens to be each other.." you held up a hand to cut him off "We're friends Sam. That's it" about that time the door opened and Dean walked in carrying bags of food and soda and looked over at you and Sam "You two good?" you nodded "If you got my cheeseburger we are" and Dean grinned and held the bag out "Got your one and my three"
--------
You ended up sleeping in the same bed as Sam with you under the blanket and him sleeping on top of it. When you woke up Dean was making coffee and looked over "Sleep good?" you glared at Sam's side of the bed since he was already in the shower "Fucker snores, next time you're scooting over"
He smirked at that "Anytime you want in my bed just say the word" you bit the inside of your cheek to stop the warmth from spreading through your face, caused by his words then climbed out of the bed "Can I have a cup?" Dean held out the one in his hand "Here, we take it the same and I'll just grab me another one" you took it with a smile and teased "Dean Winchester dances and gives his coffee to a damsel in distress" He laughed "Sweetheart you may be a damsel, there may be times you are in distress but I haven't seen a lot you can't handle"
------
By the time you made it out the shower Dean was knocking on the door to tell you to go with the fed suit instead of usual jeans and t-shirt. There was another body on the ground at the animal shelter.
The body was of the guy who worked the front counter at the shelter. He had claw marks down the side of his face and according to the cops all the cats that had been registered at the shelter were now missing. "So yesterday snake monster, today killer kitty?" Dean scoffed and you cut your eyes at Sam who said "I don't know" Dean stopped both of you and pointed at a pen "Doesn't that mutt look familiar?" "He's from the first crime scene isn't he?" you asked and Sam doubled checked the clipboard on the pen and nodded.
"So he's been at both crime scenes, suspect?" you asked looking at Dean who agreed with you by saying "Could be a skinwalker or a shapeshifter" "Doesn't really look like a monster to me" Sam was looking at the dog but Dean had already dug a silver coin out of his pocket "One way to find out" Dean squatted and called the dog to the gate. He rubbed the coin behind the dog's ears but there was no reaction. "Well at least the pooch isn't the killer?" you said about the time the officer from the first crime scene walked up and the taxidermist's dog started barking until the officer took his hat off. He spoke to Sam but Dean noticed what you did especially when the dog once again started barking when the officer put his hat back on.
"Can we borrow your hat?" you asked and he handed it over. You held it right over Dean's head and the dog started barking until you pulled the hat down. You cut your eyes at Dean then handed the hat back. The officer snarled "Good luck getting adopted" at the dog and you had the strongest urge to punch the damn cop.
Sam read the clipboard again "So Colonel's not a suspect" "He's a witness" Dean confirmed. You squatted down and scratched Colonel's head "You speak sign language buddy?" he whined at you and tilted his head so you could scratch further. Sam perked up "No but there may be another option" and pulled his phone out. You curiously looked at Dean who shrugged until Sam said "Hey Kevin, it's me.. how do we speak to a dog?"
The shelter let you take Colonel with you so you sat in the backseat of baby with him laid across your lap back to the motel.
------
Kevin called back with the spell about the same time you made it back to the motel so Sam was currently combining the ingredients? while Dean sat across the table and you sat on the floor next to the table with Colonel. "So it's an Inuit spell?" you asked. Sam looked up from the bowl "Yeah, who knew the men of letters had its own eskimo section?"
"And it's supposed to let us communicate with the Colonel?" Dean asked looking at the dog who had his head laying in your lap where you were sitting leaned against Dean's chair. "Yeah..well that's the plan" Sam plucked a few hair from the Colonel then explained that it was a sort of animal/human mind meld which meant if it worked whoever drank it would be able to read the Colonel's thoughts.
You watched Sam pour the foul looking concoction and was glad when Dean grabbed it "I'll do it" he looked into the cup and at the face you were making "Doesn't look so bad" he downed it in a gulp and his entire face twisted for a moment "I was wrong"
Dean read off the spell but the Colonel barely moved. Dean tried to talk to him but to no avail so it was decided to get some lunch then call Kevin for more ideas.
------
You were sitting on the foot of one of the beds when Dean looked at the Colonel "What?" "What?" you and Sam echoed. "Shut up! It's working" Dean clarified then looked back at the Colonel "Say that again" after a moment Dean said "Dennis DeYoung's not a punk" you were more than a little lost but amused that the dog was apparently arguing with Dean. "Dean! Focus!"
"Oh yeah" he looked back at the Colonel "Hey boy, what were you trying to tell us about the coyboy hat?" you and Sam sat watching the scene unfold which even though the two of you could only hear one side it was clear there was a full conversation happening. "and the pothead too?" Dean asked and Sam glanced at you then turned his attention back to them. Sam threw a balled up napkin in the trash and told Dean to ask about the cats. Dean threw the paper back to Sam then asked about the cats. "I don't want this" Sam told him then chunked the napkin again.
You laughed when you realized that the mind meld was more than talking when Dean once again retrieved the napkin and said that the guy who was doing the killings smelled like ground chuck, soap suds and old lady cream. Sam finally held up the napkin "Dean, what are you doing?" Dean scratched his head in the same spot the Colonel had kept urging you to scratch on his "I don't know"
When Dean started beating on the window yelling at the mailman you fell over on the bed laughing "Dean's a dog dude!"
------
While Sam called Kevin to check side effects on the spell you sat between Dean and the Colonel. You weren't really paying attention to either until the Colonel bumped your knee so you absentmindedly scratched his head. It made you freeze when Dean let out a light whimper and you looked to see he was looking at your other hand "Are you serious?" he looked at the colonel "He's being smug that you're scratching his head" The colonel looked up at you and if you'd ever seen a dog laugh it was in that moment so you scooted over so you scratch Dean's head too. He let out a contented sigh and laid his head over on your thigh.
Sam hung up and arched an eyebrow at your current position so you stopped scratching both of them despite the whimpers so he could explain the spell's side effects which was what Dean was experiencing.
A few words were passed between Dean and the Colonel and you had to laugh again when Dean announced "I don't have the urge to sniff butts" "Dean?" you asked and he seemed offended "No! Sam how long will this last?" "Kevin doesn't know" he replied and you ran a hand across your face, as if your life could get weirder.
Dean pulled a candy bar out of his jacket pocket and you grabbed it out of his hand "Woah! What the hell Y/N?" you motioned to the Colonel "Dogs can't have chocolate Dean. Do you really want to test it?" the Colonel looked at you and let out a sharp bark so you looked back at Dean "What'd he say?" Dean glared at the dog then answered "He said you're cute for a human and smart" "Aww, thank you" you cooed rubbing the Colonel's back and could've sworn Dean let out a light growl of all things? Sam looked between the three of you then said "Let's head back to the shelter to see if we can find more clues because I swear Dean's getting jealous over a dog" "Am not" Dean argued but cut his eyes at the Colonel as he spoke.
------
After you and Sam having to de escalate an argument between Dean and a pigeon you were in tears from laughing as you climbed in the backseat with the Colonel and it only got worse when they both wanted to hang their head out of the windows.
------
When you got the shelter Dean argued with the Colonel for a second before saying "Y/N, he wants you to hold his leash" you winked at the Colonel then grabbed his leash as you climbed out and held the door open for him "C'mon big guy" he climbed out behind you and looked up at Dean who glared at the dog. "Quit being smug you asshole"
Watching Dean interrogate dogs was somewhere between just weird and the absolute best entertainment you'd had in years. A yorkie turned out to be a star witness and wanted a belly rub from Sam in return for information. You stood there watching Sam scratch the yorkie while chewing your bottom lip to not laugh. Apparently the whatever you were after had a sweet tooth for cats according to the yorkie.
The burlap sack the guy had taken the cats from the shelter in had "Avant-Garde Cuisine" written on it so that was finally a solid lead along with a vague description of the guy.
When you were about to leave Dean said "Hold up" and passed you the Colonel's leash then went back and opened all the cages. You shook your head with a laugh when he said "Ok, now let's go"
------
You were once again herded between Sam and Dean as the three of you walked into the restaurant after Sam picked the lock. In the first office you found a photo of "Chef Leo" who wore a cowboy hat like the yorkie had described along with a frickin pharmacy worth of pain meds.
You were going through a drawer when Dean said "Did you hear that?" you glanced at Sam the shook your head "No?" "Sounded like little kids" Dean explained so you stood up straight and strained your ears to no avail.
It turned out to be a cage of rats who lead Dean to the fridge that contained everything from cheetah liver to grizzly heart while Sam found a shamanism spell book. According to the book whatever animal organ you ingested along with the right mix of hoodoo and spices resulted in the temporary gain of the power of that said animal.
Meaning owl brains for IQ, Cheetah liver for speed..etc
A clanging drew all of your attention so Sam killed the only light in the room and you all pulled your guns and flashlights then headed out into the hall.
-------
The hall was empty so you moved into the kitchen clearing each corner carefully. There was a lone cook so when he asked who you were Dean said you were all from the health department for a surprise inspection.
He told you all that the reason the restaurant was closed was due to the chef having a private party and would be there any minute. "In that case you're shut down" you ordered and glanced at Sam who added "You're clearly in violation of penal code eight fourteen" "You heard em! Out Now" Dean barked out and they quickly moved to comply.
Dean took the front, you took the halls and Sam took the back to try to find the chef. Working plan was to simply empty a clip into his head and hope for the best.
------
After a fight with the good chef Leo resulting in Sam getting knocked out, you getting slashed on the arm and Dean calling in an entire pack of dogs as assistance the good chef got exactly what he had coming.
When Dean ran back into the kitchen you were crouched over Sam trying to wake him up. "C'mon Sam!" "Y/N!" Dean hollered so you shouted "OVER HERE" he slid to a stop at your side and crouched next to you "He's alive Dean" he let of a breath of relief when Sam finally stirred. "Thank god" Dean helped Sam to his feet then looked at your arm "Do you need stitches?" you shook your head "I don't think so"
The three of you made it outside in enough time to see some bloody dogs running away from the heap that had been chef Leo.
------
After getting the Colonel adopted out to Olivia and Dylan you hit the road back to the bunker. The only unfortunate thing was chef Leo had put some doubt in Sam's head by asking what Sam was. From what you and Dean could piece together Leo had slit Sam's throat and Zeke healed him. Wasn't like the two of you could tell him that so instead you convinced him that Leo was simply out of his head.
When Dean pulled out onto the road he shot you a look in the mirror and you met his gaze fully. "It'll be ok" you mouthed and he smiled then turned his eyes to the road.
Tags: @facadeformyrealblog @akshi8278
85 notes · View notes
wixibaby · 3 years
Text
A Little Information on my Post+ Policy
I think post+ is the stupidest shit to ever be conceived by the tumblr staff. From the shitty UI changes to their shitty... everything. Search system, NSFW policy, tag blockage, user blockage, and everything in between, I have begrudgingly put up with all of it. However, post+ is where I draw the line and actively point out what I will do about it.
I will NEVER use post+ for a number of reasons. Mostly, I have 3 reasons:
1: I don't want lawsuits
I'm sure you are aware that I draw things related to Five Night's at Freddy's, Pokemon, and a myriad of fan work. Because these fan works are copyrighted properties I do not have the rights to, posting my work is technically copyright infringement. My FNaF AU may fall into a weird niche with fair use because it is a re-interpretation of the canon lore. However, I don't have the rights to any of the properties I draw.
For those of you wondering, no. Making money off of something doesn't automatically mean it's not fair use. Something like a parody is fair use, which is why South Park was able to recreate bits of the "What What in the Butt" video. The episode was considered a transformative work, and, therefore, fair use.
I won't go into harsh detail as to why fair use cases are not determined by monetization, but there is a great video by YourMovieSucks and an easy to read article elaborating on fair use.
Post+, in my case, would be the monetization of intellectual properties, which may not be the reason why a fair use case occurs, but it would attract attention.
Say I use post+ and charge $10 for my supporters to view this Pokemon fanart I am in the midst of making:
Tumblr media
If I got, like, four people to pay the $10 then, even though I am infringing on the Pokemon Company's market by drawing their properties and selling it, and I am not really transforming or making a parody of Pokemon, it is very unlikely they will notice, let alone care, as I just made $40. It's not worth their time or money to sue me.
HOWEVER, if I made $1,000,000, (which is very very unlikely but let's say I did) then the Pokemon Company would probably see/hear of it and could very easily sue me for copyright infringement and could demand a lot of money; money I don't have and will probably never have.
2: My work is for everyone to enjoy
I already have means of people supporting me if they so choose. I have a redbubble and I have commissions. If someone wants to pay for a print or a sticker of my art or pay me to draw something for them, that is their choice to make and it is not mandatory. If you would like to support me, all the information can be found on my carrd. You can support me, but you do not have to.
I make art for fun. I have been drawing since I was young and I find art an enjoyable talent of mine I want to pursue as a career when I am older. However, my social media is free because I do not believe someone should be forced to pay to see my stuff. I do it for fun, and while making money is nice, whether or not someone chooses to support me, that is entirely their decision. Whether it be they don't have the money, are saving up for something they really want, or simply don't want to purchase anything, that is their choice. Not mine.
If you really want to support me without spending cash, reblogging stuff is a HUGE help. The algorithm will boost my art and will get my work out to other people. It really does help.
I do not believe in charging people to enjoy my blog, which is why I hate post+. Although some people may want to use it, post+ is not like Patreon where there are additional benefits for paying, be it a discount on commissions or something like that. The perk for paying money is to be able to see my fucking blog, and that goes against what I stand for.
3: There are better alternatives:
If I really did want to do something like post+, which I have no intentions of at the moment, then there are better alternatives that I trust, like Patreon. Patreon would allow me to offer perks for supporting me, like tutorials, discounts, first dibs on prints and merch, etc. More importantly, I trust them. As much as I enjoy Tumblr, I do not trust a site that can't even get its fucking search tool right with my bank account information.
Furthermore, if someone supports you on post+, you can't block them. I block people for the integrity of my blog, and even though Tumblr's block system barely works at all, it makes me feel better when I know I am blocking shit I do not support. I don't support hateful crap, trashing anyone for their color or their heritage or size or shape or appearance or disabilities or really any superficial feature you can think of is annoying, pretentious, and y'know, just yucky in general and I will block it. If someone were to be someone who I would block, but they pay me $1 a month, I literally wouldn't be able to fucking block them and I don't like that thought.
TL;DR: I don't want to get wrapped up in lawsuits, I don't believe in charging people to see my stuff (buying something is their choice), and I wouldn't be able to block blogs that I don't want on my page. I will not be using post+ ever! You can always support me on my redbubble or by buying a commission, but I'm not offended if you don't!
5 notes · View notes
nightshadeshadow123 · 5 years
Text
Paw prints on the Agent's heart🐾part 2:
Alex Danvers x reader🔫🐾
Second part of fic series-Paw prints on the agent's heart🐾🐺
Tag list:
@retro-aesthe @blackluthxr @samustar @aznblossom @ibe-anne @lezzzbehonesthere
🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾
Tumblr media Tumblr media
Alex and Kara were in the DEO facility along with J'onn when Winn came running up to them frantically, sparing a grateful smile at Kara's strong arm shot out to stop him from falling over.
"What's with the running Winn?" J'onn asked, eyeing his tired state.
Winn held up his tablet towards Alex and J'onn. "It's that wolf again. People have reported they've seen her again....and guess what. Cat Grant even named the wolf, Midnight." Winn explained showing them the news article with the wolf picture and the words MIDNIGHT written in bold letters above it.
"What wolf? That one everyone is talking about?" Kara grabbed Winn's tablet to look at it.
"HEY!" Winn glared at her.
"Mhm...the wolf seems kinda familiar." Kara pondered aloud, making Alex and J'onn look at her.
"Maybe you've seen it on the news." Alex suggested.
"No, I don't think so. Maybe? But that would be impossible." Kara studied the picture closely, muttering under her breath.
"What can't be possible?" J'onn asked curiously.
Kara looked up at them. "It looks like one of the werewolves from Krypton, we had a werewolf species that grew that big but that can't be, Krypton was destroyed."
"Anything is possible Kara, this won't be the first time Kryptonians have survived." J'onn remined her.
"True. Oh, I gotta get back to CatCo before Cat will hang me." Kara rolled her eyes and hugged her sister before taking off into the air.
"Winn, keep an eye out for any information of the wolf and report back to us if you think you might have found something important." J'onn patted Winn on the shoulder, motoining for Alex to follow him.
"Will do Sir." Winn said and set off for work.
🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾
Upon arriving back at CatCo, Kara quickly fixed her glasses and could already here Cat yelling for her.
"Keira!"
"Keira! Heavens where's that bimbo?!"
Kara rolled her eyes and rush to Cat's office.
"Yes miss Grant?" Kara asked when entering her office, seeying her sitting at her desk in front of the big screens portraying diffrent news of Supergirl, headlines, and also of the wolf.
"Ugh, I should just fire you. You are never on time." Cat groaned, sneering at Kara.
"Sorry Miss Grant." Kara looked down, akwardly fixing her glasses.
"It's fine, now take a look at this." Cat threw a file in front of Kara.
Kara looked to see it's news and a few pictures of the wolf.
"Go get that printed and published, I want it done in an hour." Cat didn't even bother to look up, too busy writing down things.
"But Miss Gra-" Kara went to argue but Cat only waved her off with a hand.
"No buts Keira. It won't print itself. Chop chop!"
Kara sighted in annoyance and turned to leave.
"Oh and by the way make sure that photo of the wolf is on CatCo front cover." Cat called after her.
"Will do Miss Grant." Kara forced a smile.
"That woman is so unbelievable." Kara said to James once he caught up to her.
James chuckles at her. "Yeah. She is at times." He took notice of the file in her arms.
"Assinged with the Midnight wolf case. I took the photos of the wolf, managed to catch a good glimpse at it when I was near a place where they tried to rob a store. Good thing the wolf managed to stop them."
"So I heard. Glad to hear that too, was a little too busy to handel that so I'm glad she took care of the thieves." Kara smiled, looking down at the photo of the wolf.
"And nice photos by the way." Kara added.
"Thanks, just whised I could've get even closer up photos...and wait, how do you know the wolf is a female?" James looked at Kara curiously as Kara sat down at her deck.
"Alex saw her shapeshift once and could tell it was female by the voice before she shifted." Kara explained, starting on the task at hand.
"Oh, that's cool. Heard she helped Alex from getting killed."
"Less talking! More working lovebirds!" Cat yelled from her office, shooying James away with a hand.
"Well then, talk later again. Good luck with this." James wished her luck before leaving.
Kara once again looked down at the photo's of the wolf, blue eyes squanting."Why do you seem so familiar?"
🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾
"Sir!" Winn rushed over to where J'onn and Alex were talking.
J'onn looked over at him."What is it Winn?"he asked, arms folded over his chest.
"It about Midnight." Winn said.
This caught both J'onn and Alex's attention.
"What about her?" He asked curiously, all attention on him now.
"Well, I've managed to slip past CADMUS security system to see what they've been up to and discovered that they are after Midnight too." Winn explained nervously.
"Why would they be after her?" Alex asked.
"Apparetly she was one of their expiriments that have escape, she can cause major damage and was their best secret weapon." Winn explained further.
J'onn nodded at this. "Interesting. We can't let them get their dirty hands on her."
Alex agreed with J'onn, giving him a worried look.
"And wanna know a fun fact?" Winn asked and continued without waiting for an answer.
"Someone helped her escape but I couldn't get the name who, it was classified."
"Mhm, I wonder who would that be? Who would be brave enough to betray CADMUS?" J'onn podered aloud.
"Probably someone with a death wish." Winn joked.
"Alex, call Kara, we need to set out on a search mission. We just have to get that wolf soon before CADMUS succeed with that first." J'onn left the room, getting a few agents and Lucy Lane.
Alex looked to Winn."Keep your eyes open for anymore information and let us know." With that Alex got her phone out, immediately dailing her sister.
"Kara, it's me. Get over here if you can get a chance to slip away without getting noticed."
🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾🐺🐾
Just gonna leave on a cliffhanger, sorry it's short, still getting a hang on the plot of the story and figuring out where I want to go with the whole idea. I'm adding gifs and pictures in this multipart fic. And just using Cat's bitchy side for this but I still like her though.
132 notes · View notes
xxisxxisxxis · 5 years
Text
Gateway Drug | Part Fifty-Three
Words: 4.5K
Warning(s): explicit language, sexual situations, mentions of drug abuse
Tag List: @unknownoblivion  @sinningsixx  @edwardtriggerhandzz  @lemmyjelly  @haileynicoleseavey17  @cierrasixx19  @oskea93  @mgkobsessed  @vamprlestat  @sharon6713  @itsametaphorbriansblog  @miriampraez  @allie-mcginn  @rebeccaphillips14  @nicholeh7  @fandomshit6000  @lilmou5ie  @tamedhearts  @divaanya  @kingbouji3 @evrsncnewyork @6ixx6ixx  @ratedrkohardychick91  @floregrohlssard  @oldschoolimagineblog  @thanks2pete  @abaldboi  @swoopygorl @justjodeye @liith-ium  @caos18blog  @ytwahsog  @shamlessobsession  @scarecrowmax  @toadspleen @random-internet-user-4471  @solohqrry  @loveofmyloif  @sparxx27  @kaitieskidmore1  @xpoisonousrosesx  @cruecifymesixx  @ijustwanttokiss70srogertaylor  @emmaelizabeth2014 @meetthesixxter  @sixxsixxsexx @sublimeprincesswasteland @arianareirg  @girlnight-terror  @mcnibberachi
@fancywasmyname1  @teller258316  @ggorehorror  @blowinmeupwithherlove  @xrosegoldwolfx  @mylifeisjustafeverdream  @redlipscrystalskies14 @str4nge-haze
LET ME KNOW IF YOU WANT TO BE TAGGED
Tumblr media
I wake up to the smell of coffee drifting in under the bedroom door, and I stretch, seeing Nikki on his side of the bed, snoring softly.
Pulling the covers off of myself, I get up and throw on my robe to cover my naked body and step into the kitchen to see Karen at the counter.
Karen was Doc's best solution he could muster up to try to keep Nikki straight off drugs.
After calling Doc and Bob Timmons that night Nikki shot out our ceiling, Doc asked Karen, who worked at the Mötley office, to move in.
Hats off to her because she didn't argue, and Nikki did calm down a little when she was there because he was convinced she was a spy for Doc and was telling him what Nikki was doing at all times.
Nikki didnt want to hear shit from Doc, so he tried to hide his drug use from Karen when she was home.
"Good morning." She greets me, patiently waiting for the coffee to get done. "Sorry if I woke you up."
"No, no, it's fine, I needed to get up anyway, uh...what time is it?" I ask her, rubbing my eyes.
"About 9:00." She replies.
"Okay, I'm gonna wake him up and get ready and that reporter should be here around--"
I'm cut off by the doorbell and I look at her.
"You go wake him up, get him showered, I'll stall." She assures me, shooing me with her hand as she steps to open the door."
I rush to our bedroom and shut and lock the door, walking over to wake Nikki up.
"Babe, c'mon."  I nudge at him several times until he's groaning a little. "Nikki, wake up."
"Just climb on and get off when you're finished. I'm sure it'll still get up without me being awake." He mumbles tiredly, about to drift back off before I'm hitting his arm sternly.
"Nikki, you need to wake up. That reporter came early. We need to get dressed."
"Jesus." He lets out, frustrated, and I rub my lips together. His hazel eyes open to look at me and he smirks. "You're actually talking to me today?"
I've been ignoring him for nearly a week now ever since he broke our ceiling and embarrassed me in front of our friends.
"I'm getting into character so he doesn't write that I'm not talking to you in the article. Doc said to be as lovey as possible." I add. "So hurry up."
I walk to our bathroom and start the shower, quickly discarding my clothes and climbing in as he trudges into the bathroom.
By the time I'm rinsing shampoo from my hair, he's getting in, his eyes wandering up and down my naked body that currently has soapy water running down it.
"Don't get any ideas, Sixx, I'm still mad at you."
"What kind of man do you think I am?" He puts a hand over his heart as if he's hurt and I roll my eyes, finishing rinsing my hair.
"Move." I say so I can put conditioner in my hair and he grins, about to switch places with me, and his hands hold at my body as we trade spots and I glare at him.
"What? I was helping you move." He innocently states, the slightest hint of a smirk on his lips, and I cut my eyes at him.
He just wets his hair as I get the tangles out of mine with conditioner and we change once more.
By the time he's rinsing his hair again and I'm lathering up in body wash, I feel his finger trace down my spine.
"Nikki." I say in warning and I hear his faint chuckling.
"Sorry." He mumbles, taking his fingers off of me.
When I'm done, about to tell him I need to get under the water, his hands are sliding up my sides and he's getting closer to me, pulling me against him, taking my ear between his teeth in a nip.
"Nikki, we don't have time for this." I let out in a soft giggle.
"So?" He asks, pressing a kiss to my neck, his hands moving up to hold at my chest, rolling his thumbs over my nipples, causing me to take a sharp breath and push my ass against him.
He lets out a soft moan, and I turn to face him, our lips, teeth and tongues meeting in a rough, passionate, kiss, as my body is pulled against his.
"Are you still mad at me?" He says, running his thumb across my bottom lip, looking like he's confident that I'm not still upset with him.
"Get finished, we have stuff to do." I tell him, giving him one last kiss before sliding past him to rinse off.
"Change it to cold water before you leave." He grumbles and I smile to myself, changing the temperature of the water before getting out of the shower.
Once I get my hair towel dried and finish getting ready, I'm cautiously stepping into the hallway, walking where I hear Karen and the reporter talking at the dinner table. 
"Yeah, they..." Karen trails off, seeing me. "...Oh, here she is." She states.
He turns around to face me and I rub my lips together, extending my hand to him.
"Len Donoghue." He tells me, shaking my hand.
"Vivian Sixx." I reply, politely. "Um, Nikki's getting some clothes on now, he'll be here in a minute."
"Oh, starting Valentine's Day off right, huh?" He chuckles and I feel my face go red with embarrassment as Karen attempts to curve the conversation.
"You were saying earlier you attend night classes? What degree are you pursuing?" She asks him and I take the opportunity to step to the kitchen and grab a cup of coffee.
Nikki's already there, seeming to be stalling as he takes his time examining the array of coffee cups in our cupboard.
"You don't drink coffee, baby." I remind him and he glances at me before handing me a cup.
"I was supposed to wake up this morning to a blow job. Not a fucking hotshot know-it-all scribe jotting down every last syllable of shit I say only to fabricate and cut it up before printing it in a way that makes me look bad." He mumbles and I give him a soft smile, my fingers running through the ends of his hair.
"It will be okay, Nikki. Just smile and it'll be over before you know it." I encourage him.
He sighs out, kissing me briefly before I pour my coffee and we step to the dinner table, where Len is lighting up at the site of Nikki.
"Hey, man, Nikki." Nikki introduces himself, shaking Len's hand.
"Len Donoghue, it's a pleasure." He smiles enthusiastically at him and Nikki nods before motioning to the kitchen.
"I'm gonna cook some breakfast if you wanna start your interrogation in the kitchen." Nikki says in a joking tone, but in know he means "interrogation" literally.
"Sure." Len nods, the three of us stepping to the kitchen as Karen gets up and heads to her bedroom to hangout until we're done.
I hoist myself onto the counter, watching as Nikki pulls the eggs from the fridge and I tense up as I multiple paper bags on the shelves before he closes the fridge.
I hope Len didn't notice.
"You've even got that particular detailing in here." Len comments, looking up at the mirrored ceiling.
"Yeah, I read somewhere mirror creates the illusion of a more open room." Nikki tells him, grabbing a bowl to crack the eggs into.
"That's why the place is covered in mirror?"
"Yeah, why else would it be?" He pretends to play dumb, and Len glances at me before shaking his head a little. "No reason."
"When did you move into this place?" He asks us and Nikki starts cracking the eggs.
"Uhh...like..." He looks at me. "...Over a year ago? Year and a half?"
I just nod and he confirms it.
"Yeah, over a year ago."
"Who's idea was it to live out here?" He asks next and Nikki nods towards me.
"She liked the house and I got it once we had the money." He explains.
"That makes me sound like a gold digger." I say.
"Okay, we drove by one day and she said it was a nice house and I went behind her back and got it and surprised her with it once I had the money." He corrects and Len smiles.
"Is he always nice like that?" He asks me.
"Despite how he seems publicly, he's a nice guy." I tell him and Nikki shushes me as if I can't tell his secret, making me chuckle as he grins, pouring the eggs into the heated pan.
"There's a lot of mystery around you two, is that something that's good to you or backfires sometimes?"
"It's good." Nikki states. "It's really nobody's business unless we do stuff like this," he motions to Len, "And let people in on it."
"We don't necessarily understand what the big deal is about, honestly. There's plenty of people dating or married to someone who isn't quite like them. The fact we're in the public eye doesn't make it any more interesting, honestly." I add.
"Yeah, people would be disappointed if they saw how our relationship works just like everyone else's." Nikki puts in next.
"I think you two being together really invokes certain conversations because one of you is a by the book Christian, and the other has been accused of Satanism in the past." Len suggests with a small chuckle. "So you're pretty opposite of each other in that sense but you still manage to get along well enough to feel the need to marry one another."
"We're opposite of each other in every sense, almost." Nikki tells him, finishing on the eggs.
"Really?"
"She's more reserved, conservative, quiet, innocent, sober, religious, organized..." Nikki names off a few things. "...and there's me."
"I wanna touch on that, really, because 'sober' is not something associated with rockstars or really this industry much at all, really, with so much money and access to excess and so on, have you really never had a drink of alcohol or was that an exaggeration? I mean, really, your friends, husband, piers are doing God knows what and you've never at least been curious enough to try something out?" He asks me and I shake my head.
"No. And that's not something I ride through the streets and shout out or project at a party or use to talk down on other people with. I choose not to do that because it doesn't interest me, it interests some people, some people enjoy it, but I've never really been drawn to any of it. And especially the really hard stuff, I've never felt the need or allure to that because I've seen what it does to people. But I don't turn my nose up at people who want a beer after work or have some cocktails with their girl friends on a night out. I don't even think I'm any better than the addicts that claw their eyes out while they're on dope. That's their business." I tell him, and Nikki clears his throat, putting the eggs into a bowl to be scooped out by who ever that wants them as he pulls the package of bacon from the fridge next.
"So you're the trusted D.D. when it's a night out?" Len asks me and I nod.
"Oh, yeah." I nod.
"Back to the 'opposites' topic, how did someone like you, get together with someone like her?" He questions Nikki again and Nikki let's out a breath, smirking.
"The clean version." I warn Nikki and he laughs.
"Oh, c'mon, Viv." He nudges me and I raise my brows. "Okay, fine, we met at a club on the strip, Tommy introduced us, and he had told me she was coming down there to see us and that she was a dancer and her mom was super strict, and just telling me and Mick some things about her because he and Vince had grown up with her, but we'd never met her. So she comes down there, and she's dressed like a fucking--I don't even know, nothing like what I was use to seeing on the Strip. And we just couldn't stand each other, honestly. We would aggravate the piss outta each other, I'd harrass her and purposely do and say stuff that I knew would gross her out and she would pick at me and deliberately say shit to get under my skin and piss me off. I called her 'Saint Viv' and 'Virgin Viv' and she'd call me 'Devil Spawn' and we just really got on each other's nerves, man."
"What changed that?" He asks and I wait to see how Nikki's going to say "I screwed her into my ratty mattress" in a PG way.
"There was this one night, I don't even know what happened, but I just realized I was really, really into her, and I guess she realized the same because we've been together ever since." He tells him.
"So, it's worth all the criticism about you not being the real deal because you've 'settled down'?"
"I'm not an idiot, I know people dont talk shit because I've 'settled down', they talk shit about who I've 'settled down' with. And if being with someone who's got my back, and strives to push me be the best in can be, and supports me and helps me up when I need it, then I will loud and proud shout from the hills that I've 'settled down.' I write music based off what inspires me, some of Mötley's best songs have been inspired by the very girl I'm criticized for being with because they either think she's boring or isn't bad enough for me or whatever bullshit they drum up. But I don't need someone who's bad through and through, that would be a disaster. She's bad wear it counts." He informs him and I squeeze my eyes shut.
"Nikki!" I scold.
"I'm just saying." He shrugs. "And I'd hate being with someone who's exactly like me because then I wouldn't be learning new things, or having engaging conversation that challenges my views, or see a different perspective, and she wouldn't have that, either. So I think all the street rock posers downing on me for being with a 'goody goody' and the holier-than-thou Tipper Gore carbon copies that give Viv shit for being with a 'satan worshiper' can all kiss our asses and fuck off."
Len nods, looking impressed but not shocked with Nikki's words.
"Wanna add anything to that?" He asks me.
"Ditto." I reply and Nikki smiles at me for a moment.
After Nikki's finished cooking, we're sitting at the table, and get on the topic of music.
"Is there any idea when the new music will be coming out?" He asks Nikki and Nikki nods, taking a sip of his orange juice.
"Sometime this year." He says.
"Is it gonna have a 'Theater of Pain' feel to it or is it gonna hold the same change that, that album did compared to 'Shout at the Devil'?"
"Well, we change our sound because we grow. I don't think it's too far off, I think it's all still rock 'n roll, but the sound differs a little bit with each album because we evolve." He replies.
"Any album in particular that you've made so far that's a favorite or is the best yet to come?"
Nikki gets a happy, proud grin on his face.
"The best is yet to come." He states. "Some really cool stuff is in the works."
"I'm glad to hear that because I actually am a fan of you guys' so that's a good word from you." He tells him.
"Great." Nikki says, his bare foot kicking at mine under the table.
I kick back as Len is oblivious and continues asking questions.
"Are you into their music, too, or are you just along for the ride because you kind of have to be?" He nods to me as Nikki and I are now in a kicking war, despite acting like nothing's happening.
"Yeah, I like their music."
He looks a little taken back by my answer.
"You listen to Mötley Crüe without obligation?"
"Well, yeah." I tell him.
"She looks like a frilly flower girl so you don't expect that, right?" Nikki asks, and I kick him under the table and he kicks me back, again.
"What else do you listen to?" Len asks me.
"A little bit of everything. If it's catchy or has a good groove to it, it doesn't matter the artist, I'll buy it. I listen to ABBA, Chaka Khan, Hank William's Jr, Deep Purple, BeeGees..."
"And everything in between?"
"And everything in between." I chuckle. "I also have Bon Jovi but Nikki's always trying to steal it and get rid of it."
"You don't like Bon Jovi?" Len asks, seemingly insulted and Nikki looks at me with cut eyes and a devious smirk, like he's gonna get even with me, later.
"I like Jon, I've hung out with him several times, he's a cool guy. Vocally, he nails it every time. Lyrically, musically, I can't fucking stand it. It's like being stuck on the tea cups at Disney. You wanna get off before you throw up."
"So, you don't mind ABBA, but Bon Jovi's a no-go?"
"...Basically..." He rubs his eye. "But, I mean, I might tolerate some of it if she put it on and started doing a little strip tease or something. I'd consider it, then."
I glare at him and Len laughs, as Nikki smiles innocently at me.
Once we're done eating, we offer a tour of the house, which Len eagerly accepts.
"Obviously, living room." Nikki motions.
"What happened to the ceiling?" He asks, noticing the empty ceiling space.
"Nikki thought it would be smart to throw a baseball in the house. The whole ceiling suffered." I lie and Len raises his brows.
"I bet that was fun to clean up."
"We wouldn't know, we paid someone to come out here and do it for us." Nikki mumbles. "Alright, awards and achievements." He says next, motioning to his freshly reframed gold and platinum disc awards, and my ballet trophies I've racked up from childhood to the beginning of senior year, that Nikki practically made me put on display when we moved in because he thinks it's something I should be proud of enough to showcase to people.
"Guest bedrooms, and bathroom down here." Nikki motions down the hall. "Garage, here." We walk down a couple of steps to the garage door and open it up, switching on the light.
His bike, his Corvette and mine, greet us and Len nods.
"Nothing too extravagant." He voices to us.
"I'm looking at a blacked out Mercedes right now, I might end up getting it soon." Nikki tells him.
"Oh, really?" I ask, crossing my arms.
"I was gonna tell you about it later, babe." He assures me.
"Right, like you told me about the Jeep and the Harley?"
"Ha. Ha." He let's out sarcastically. "We have a pool." He quickly discards our disagreement, leading Len back up the steps and into the house to take him to the pool.
By the time the interview is at a closing, it's almost 1:00pm, and I hope he has enough material to make a decent article.
"Thanks for letting me come by, I really do appreciate it." Len thanks us, shaking my hand before shaking Nikki's hand one last time. "It was really an honor get to talk to you, man, good luck with the album. Can't wait to hear it."
"Thanks." Nikki replies.
"Alright, you two take care, have a good evening." He tells us, turning to walk to his car.
"You, too." Nikki says before shutting the door.
When it's shut, he's turning to look down at me.
"What is it?" I ask him.
"I'm probably gonna go get some stuff from town." He states and I nod.
"Okay, I'm probably about to hangout by the pool with Karen for a few minutes." I tell him, heading to our bedroom to put my swimsuit on.
I hear the fridge open and shut--he's grabbing some of his heroin--before he's telling me he'll be back in a few minutes.
Once the garage door shuts, I'm stepping out to find Karen in her bedroom.
"Hey," I start and she looks up from where she's laying on her bed, reading. "I was gonna go lay out for a few minutes, do you wanna come?"
"Yeah, I'll be out there in a second. Let me get changed."
The phone starts ringing and I head to answer it, hoping it's not someone calling to tell me Nikki's been in an accident.
"Hello?" I answer.
"Happy Valentine's Day!" Steven's voice happily declares on the other end of the line.
"Happy Valentine's Day." I reply, stepping to the kitchen to grab a Pepsi from the fridge.
"I-Is Sixx around?"
"Not right now, he's running errands in town." I explain to him.
"Oh...well when he gets back can you get him to call me back?"
"Yeah. Is everything alright?"
"It's perfect. Love you. Gotta go." He abruptly hangs up and I furrow my brows a little, hanging the phone back up.
A few minutes into sunbathing, I'm laying on my stomach with my bikini string untied as Karen chats away while I drift in and out of sleep.
"I'm gonna go use the bathroom." Karen tells me, getting up off her pool chair, heading into the house.
I give her a wave of my hand without opening my eyes, letting out a relaxed breath.
My body tenses for a moment at the feeling of Nikki's lips pressing the center of my spine, working their way up to my hair.
"Hi." I say, sitting up, tying my top back into place as he sits on my chair beside me. "Steven called and wanted you to call him back."
"He called again just when I got in so I already talked to him." He tells me and I nod. "I was out getting stuff for tonight." He wiggles his brows for a second and I try not to laugh.
"Really?"
"Yeah. Some more wine for me, the fizzy grape juice for you, and some more candles."
"You don't like just screwing around with a candle on because you can't see everything." I point out and he smirks.
"I didn't buy them for light." He says and I raise my brows, a lusty feeling washing through me at the thought.
"Race you to the bedroom!" I shout, about to take off but he grabs at my hips and pulls me down to his lap, laughing at my eagerness. "Nikki, we don't have time to waste. I have carbonated grape juice to sip on and hot candle wax to be dripped in, and that's not even including the sleazy stuff that follows, so c'mon." I struggle to pull his arms from around my waist so I can get free.
"Viv, we'll get to that later tonight, you gotta get ready for your surprise." He tells me.
"I have a surprise?"
"Yeah."
"What is it?"
"A surprise."
"Nikki."
"Viv."
"...Fine." I huff and he let's me out of his lap, handing me the roses he got me. "Where is this surprise?"
"Can't tell you. Just get changed, dress up a little bit if you want to." He tells me.
I guess he thought since he had died the year before, he should put his all into making up for it the following year.
I have to give it to him, he outdid himself that Valentine's Day...but he had some help.
"Okay, no peeking." Nikki says to me after securing the blindfold around my eyes and I grin, my hand in his as he helps me out of his Corvette.
I'm taken off guard by him suddenly picking me up, shutting the passenger side door with his foot.
"What are you doing?" I chuckle out.
"I don't want you to walk and hear your steps because it'll spoil the surprise."
"I feel you struggling to keep me up." I say to him, poking fun.
"I'm not struggling."
"Okay but if you drop me, I'm kicking your ass." I add.
"I'll kick your ass right back." He scoffs.
"Okay, then put me down and let's go, Sixx. Best two out of three."
"You're like a baby bird: all mouth." He taunts me.
"You're a baby bird: all whining."
"Virgin Vivian."
"Devil Spawn."
"Are you ready to see your surprise or are you gonna keep running your mouth?" He asks and I roll my eyes behind the blindfold and exhale.
"Fine."
He sets me down, and my heels click against the sound of wood.
"Alright, ready?"
"Yes."
The blindfold comes off, and Steven's firing off one of those tiny confetti poppers as he, Nikki and Duff all saying, "Tada!" at the same time.
We're standing inside of Mandy's old rehearsal space, except it's not shitty looking anymore.
The holes in the ceiling are patched up, it's got new lights, the floors are fresh and the once scratched up and worn down mirror is replaced, completely brand new.
I can't even form words, my eyes watering, my hand grasping Nikki's tightly.
"What do ya think?" Duff asks me.
"I-I..." I try to talk, but can't.
"Do you like it?" Nikki asks next and I'm turning to face him, wrapping my arms around his waist, hugging him tightly, nearly knocking him off balance. "Woah." He laughs, his hand rubbing up and down my back.
I'm wiping my tears when I pull away, catching his lips with mine when he leans down to kiss me for a second.
Knowing Duff was the one who bought the place from Mandy to begin with, I hug him to me next.
"Thank you." I sniffle out to him, giving him a tight squeeze before pulling away.
"It wasn't a problem, Viv." He assures me as Steven clears his throat.
"I wiped the finger prints off the mirror." He tells me and I smile, hugging him, too.
"Thank you." I say, ruffling his fluffy blonde hair.
Duff's grasping my hand, turning it over so my palm is facing upward before he's putting a key in it, closing my fingers around it.
I give him a genuine, grateful, closed-lip smile, and he returns it, his kind eyes seeming to have a spark of extra liveliness from being in his element of doing good things to make people happy.
I swear I can see Nikki scowling at us from the corner of my eye, but the look is gone from his face as soon as it arrives.
78 notes · View notes
scifigeneration · 6 years
Text
Protecting human heritage on the moon: Don't let 'one small step' become one giant mistake
by Michelle Hanlon
Tumblr media
Neil Armstrong took this photograph of Buzz Aldrin during the Apollo 11 extravehicular activity on the moon. NASA
Why did the hominin cross the plain? We may never know. But anthropologists are pretty sure that a smattering of bare footprints preserved in volcanic ash in Laetoli, Tanzania bear witness to an evolutionary milestone. These small steps, taken roughly 3.5 million years ago, mark an early successful attempt by our common human ancestor to stand upright and stride on two feet, instead of four.
Nearly 50 years ago, Neil Armstrong also took a few small steps. On the moon. His bootprints, along with those of fellow astronaut Buzz Aldrin, are preserved in the lunar soil, called regolith, on what Aldrin described as the “magnificent desolation” of the moon’s surface. These prints, too, bear witness to an evolutionary milestone, as well as humankind’s greatest technological achievement. What’s more, they memorialize the work of the many individuals who worked to unlock the secrets of space and send humans there. And those small steps pay homage to the daring men and women who have dedicated – and those who lost – their lives to space exploration.
The evidence left by our bipedal ancestors are recognized by the international community and protected as human heritage. But the evidence of humanity’s first off-world exploits on the moon are not. These events, separated by 3.5 million years, demonstrate the same uniquely human desire to achieve, explore and triumph. They are a manifestation of our common human history. And they should be treated with equal respect and deference.
I’m a professor of aviation and space law and an associate director of the Air and Space Law Program at the University of Mississippi School of Law. My work focuses on the development of laws and guidelines that will assist and promote the successful and sustainable use of space and our transition into a multi-planet species. During the course of my research, I was shocked to discover that the bootprints left on the moon, and all they memorialize and represent, are not recognized as human heritage and may be accidentally or intentionally damaged or defaced without penalty.
Tumblr media
One of Buzz Aldrin’s first bootprints from his Apollo 11 moonwalk on July 20, 1969. NASA
Heritage gets no respect
On Earth, we see evidence of this type of insensitivity all the time. The Islamic State has destroyed countless cultural artifacts, but it’s not just terrorists. People steal pieces of the Pyramids in Gaza and sell them to willing tourists. Tourists themselves see no harm in grabbing cobblestones that mark roads built by ancient Romans or snapping the thumbs off terra cotta warriors crafted centuries ago to honor a Chinese emperor.
And, just last year, Sotheby’s auctioned off a bag – the first bag that Neil Armstrong used to collect the first moon rocks and dust ever returned to Earth. The sale was entirely legal. This “first bag” ended up in the hands of a private individual after the U.S. government erroneously allowed it to be included in a public auction. Rather than return the bag to NASA, its new owner sold it to the highest bidder for US$1.8 million. That’s a hefty price tag and a terrible message. Imagine how much a private collector would pay for remnants of the first flag planted on the moon? Or even just some dust from Mare Tranquilitatis?
The fact is if people don’t think sites are important, there is no way to guarantee their safety – or the security of the artifacts they host. Had the first bag been recognized as an artifact, its trade would have been illegal.
Tumblr media
The taller Buddha of Bamiyan before (left) and after (right) destruction. UNESCO/A Lezine, CC BY-SA
Introducing ‘For All Moonkind’
That’s why I co-founded the nonprofit For All Moonkind, the only organization in the world committed to making sure these sites are protected. Our mission is to ensure the Apollo 11 landing and similar sites in outer space are recognized for their outstanding value to humanity and protected, like those small steps in Laetoli, for posterity by the international community as part of our common human heritage.
Our group of nearly 100 volunteers – space lawyers, archaeologists, scientists, engineers, educators and communicators from five continents – is working together to build the framework that will assure a sustainable balance between protection and development in space.
Here on Earth, the international community identifies important sites by placing them on the World Heritage List, created by a convention signed by 193 nations. In this way, the international community has agreed to protect things like the cave paintings in Lascaux, France and Stonehenge, a ring of standing stones in Wiltshire, England.
There are no equivalent laws or internationally recognized regulations or even principles that protect the Apollo 11 landing site, known as Tranquility Base, or any other sites on the moon or in space. There is no law against running over the first bootprints imprinted on the moon. Or erasing them. Or carving them out of the moon’s regolith and selling them to the highest bidder.
Between 1957 and 1975, the international community did dedicate a tremendous amount of time and effort to negotiating a set of treaties and conventions that would, it was hoped, prevent the militarization of space and ensure freedom of access and exploration for all nations. At the time, cultural heritage in outer space did not exist and was not a concern. As such, it is not surprising that the Outer Space Treaty, which entered into force in 1967, doesn’t address the protection of human heritage. Today, this omission is perilous.
Because, sadly, humans are capable of reprehensible acts.
Back to the moon
Currently there are a comparative trickle of companies and nations with their sights on returning to the moon. China landed a rover on the far side in January. An Israeli company hopes to reach the moon in March. At least three more private companies have plans to send rovers in 2020. The U.S., Russia and China are all planning human missions to the moon. The European Space Agency has its sights on an entire Moon Village.
But as history shows, this trickle of explorers could soon become a rush. As we straddle the threshold of true space-faring capability, we have an extraordinary opportunity. We have time to protect our common heritage, humanity’s first steps, on the moon before it is vandalized or destroyed.
If our hominin ancestor had a name, it is lost to history. Conversely, English novelist J.G. Ballard suggested that Neil Armstrong may well be the only human being of our time remembered 50,000 years from now.
If we do this right, 3.5 million years from now, not only will his name be remembered, his bootprint will remain preserved and the story of how Tranquility Base became the cradle of our space-faring future will be remembered forever, along with the lessons of tumultuous history that got us to the moon. These lessons will help us come together as a human community and ultimately advance forward as a species.
To allow anything else to happen would be a giant mistake.
Tumblr media
About The Author:
Michelle Hanlon is a Professor of Air and Space Law at the University of Mississippi.
This article is republished from our content partners at The Conversation under a Creative Commons license.
22 notes · View notes
lavegasvibes702 · 2 years
Text
Ryan Hogue Redbubble Print on Demand Course Review and Results
⭐️⭐️⭐️⭐️⭐️
If you are looking to make sales on Redbubble in 2022 there's a lot that you need to know that is not being shared. I started my print on demand journey in 2012. I established the LAVEGASVIBES shop by doing SEO, watching YouTube videos, using sites like skillshare to find what works through trial and error.
I want to share with you an experiment I did putting my Redbubble shop in the hands of YouTubers and their tactics that claim to make sales. I am going to share with you exactly what you should to do once you establish your niche or if you are following trends and evergreen niches.
I recommend having a dedicated shop specific to one three layer niche. Three layers will allow you to have less competition and targeted traffic. When creating designs, go to Amazon.com and search for tshirts, stickers, bedding and wall art in your niche.
To the left of the screen, click the four star customer reviews. From here search the designs on the front page. The front page will have the top selling designs on it. You can also use sites like ahrefs, ubbersuggest, demrush, monitor backlinks, mangools, Moz Pro, Majestic, BuzzSumo, or Serpstat. Create designs similar to the all the ones on the front page changing something to make it unique so that you are not directly copying.
Create designs quickly and easily by making text based tees. You can even add ornamental features like flowers or patterns to add a little flare. A secret to getting your Redbubble title is on Amazon as well. Simply copy and paste it from the Amazon design to Redbubble.
Your description should describe how the product feels or how it can be used. Don't fill your description with text describing the material, but do take advantage of this area to place any links that you may have. This could be to your linktree, YouTube, Instagram etc. Speaking of descriptions, your artist bio should be short, concise and include a link. This description should be the same on all your platforms.
This is how you can drive traffic to your site. You may not want to hear this, but tags are only half the battle. Because of tag spamming and people doing tag research like everyone else, it is very easy to get lost in the wave of designs that flood in every time people notice a trend start. Use your shop as a tag and create long tail key word tags. These will have less competition and targeted traffic.
Sell Your Parents old CDs, books and broken phones 💲📈
💻💲📈 Check out this app⏬
https://bit.ly/3qa4V3P
Take advantage of the sites that Redbubble partners with and post your content to these sites as well such as Facebook, Twitter, Instagram, Tumblr, Dribble, Behance, Deviantart, Pintrest, Flickr, Google, and you personal website if you have one. When posting to these sites do not use the images from Redbubble, only use the links. You will want to use Smart Mock Ups to create unique designs that will allow you to stand out if your design is ranking with another in a similar niche. You can choose from many different mockups like office decor, clothing and more.
The best way to rank is to write articles about your own work and post them to any platforms you are on. You could create a "Top 10 Summer Tees for nurse moms", or "5 Things every office space needs", feature your products and links to them.
You could also go to news.google.com and search articles related to your niche. Filter by time to see the newest articles. This can give you ideas for emerging topics and trends. You can save topics so that you are alerted when new articles come out. If you don't feel like writing articles, you can use Quillbot.com to paraphrase articles. When posting your articles be sure to create ads to layer between the paragraphs and embed links.
If you want your shop to have likes and look credible when people click on it, simply create 3-4 additional Redbubble accounts just to like the designs you post to your shop. Or if you have multiple shops, you can cycle between them liking all your designs. You can do this free in your spare time, just as you would on social media sites.
Now it's time to let people see your creations.
Guerrilla marketing can be a risky tactic and you'll want to check you local and state laws before participating. The easiest way to market for nearly free is to use a QR code generator that links to your site. Go to ebay.com and grab a few sticker packs. You can use clear tape to put these creative stickers up with your code. You can also target areas related to your niche to advertise. If you create products related to home goods and decor, you could frequent your local Ross, Marshalls, Walmart etc. and slip your QR code into related packages. If they are adhesive, you can place them on the bottom of boxes or merchandise.
Now imagine being stung by one bee. Unless you have an allergy, chances are that you'll be uncomfortable at the injection site, but you will be okay. Imagine being stung by one bee a month. It's very unfortunate, no? But you'd be okay. Imagine being stung by all 12 bees at the same time. That's the same concept that you want to apply to marketing.
For tees and apparel, you can slip your QR into the clothes you try on at stores, or place them in the pockets of pants that are for sale. Remember you are trying to get your shop or featured product in the eyes of as many people as possible.
Tumblr media
Want to keep selling old junk and make over $7,000 🤑
Sign up for Mercari and get up to $30. Here's my invitation link :
💰😭🙏🏽https://merc.li/YyHWa4SFb
HERE IS A FREE EBOOK TO LEARN ALL THE HACKS ON MERCARI 😈
🤑👉🏼HERE
Ask your friends to use their cellphone. Go to Redbubble.com from their phone and search for your shop. Click on it and browse for a while. Do this with all your friends or just message them all and ask them to check out your shop. Using different devices, different locations, at different times will help you rank better. It shows that people are active on your shop.
Now for the good stuff. The review. I deleted my entire Shop in April and started over to try out Ryan Houges Redbubble Course for print on demand. I had to delete all my designs so that none of the previous SEO linked to my site didn't alter the results. I don't want to be biased, but after sharing my before and after results using Ryan Houges course, I'd like to know what you think. Before using Ryan's methods I was averaging 1,000 visitors a months and $105 a month. After Ryan Houges program I was averaging 0 visitors and $0.
Tumblr media
It was so bad I thought that I would try to help Ryan's methods with targeted traffic from Fiverr. I had never used Fiverr so I was skeptical. I purchased targeted traffic, but my experience was not the best. I was given a link to monitor the traffic updates, but the traffic was not reflected in my Redbubble analytics or through my google analytics even though their link said that it was. Maybe it was just my experience, but I felt it was definitely not worth paying for.
Tumblr media
Ryan's techniques didn't offer anything unique that you couldn't find for free on YouTube on your own. It is well organized and put together in one specific spot so you don't have to scroll through hours of video listening to everyone say the same thing.
And let's face it, we want to make sales. There is a reason why so many people quit Redbubble before even getting started. It's because no matter how good the design is, if people do see it they can't buy it.
In summary, Ryan's methods are a great basic starter kit, but you can find all this and more on YouTube.
To see how to really make sales, SUBSCRIBE to the YouTube channel and stay tuned.
Check out this free content on How To Make Money
Learn How To Make Money Online
_____________________________________________
Tumblr media
_____________________________________________
_____________________________________________
https://www.redbubble.com/people/veganzombie/shop?asc=u
_____________________________________________
Tumblr media
youtube
Tumblr media
youtube
_____________________________________________
Tumblr media
youtube
Tumblr media
_____________________________________________
Other ways to make money
youtube
https://youtu.be/rlauJeAZnXI
Tumblr media
👇🏼 https://youtu.be/HCJQuL01Jqw
👇🏼 https://youtu.be/5tAamX7iFPs
Tumblr media
youtube
youtube
1 note · View note
Note
Hi, please tag this as Dante. I'm still unsure of where I want to go in life, or who I even am. It seems like I adapt myself to situations and people, where I act in favor of someone else or make myself what I think they'd like best. I don't want to do that, but I don't know how I really am, how I'd really react I guess without just faking it. Because that's what I do. I fake not being depressed or anxious or anything. I just want to figure myself out and don't know how. It sucks.
Hey Dante!
Fun fact: A simple Google search finds 1,010,000,000 results for the declarative, “I don’t know what to do with my life.”
This is, naturally, followed by an array of articles and self-help programs that all promise to do the same thing: reveal your life purpose.
Not gonna lie, self-help programs are fantastic. I am not trying to shit on anyone’s desire to better themselves. By all means, print out, pin, or do whatever you want, your way, through whatever program you feel will take you to the next level of this fun game we call life.
Self-help programs and those who create them are not the enemy. We are. We have turned words like “passion,” “purpose,” and “success,” into buzzwords. We make people feel less than if they aren’t passionate about what they choose to do for a living. Personally, it’s always been set in stone for what I would do with my life. I would graduate as Valedictorian, go to a prestigous university, become a surgeon of some variation and make heaps of money to support my parents in their old age. And in truth, I’m pretty happy with that. But for some it’s so difficult to find something that they can imagine waking up every day to do. We are so engrossed with this idea that you must have a job that reflects your “passion.” We’re shocked when we hear someone say they don’t really have anything they’re passionate about or when they say that they don’t want to do the thing they’re passionate about every single day.
I love Piano, I am a passionate polyglot and I am obsessed with skincare. Does this mean that I will live on to become a concert pianist? I’ve recieved offers, but I know that it’s simply not for me. Would I become a linguist? Not really. I speak several languages but I don’t feel that I could have a prosperous career within the field. My point is: I am passionate about things. The thing I’m most passionate about? Supporting my family. They have had the dream that their daughter will grow up and become a great surgeon since before I was born. Am I particularly passionate about surgery? Eh… It’s alright. I enjoy the aspects that I have encountered thus far and I can see myself enjoying it. Passion is great. Purpose is great. Success is also great. And to those who have found a career in the field you are passionate about, that’s awesome! 
As for feeling that you simply adapt yourself to suit your situation and audience, this is actually a marketable skill! As much as you feel awful about it, the kind of people reading skills required to do this are pretty hard to master!
If you’re feeling depressed, I implore you to speak to a mental health care professional. Not only will they help you in the sense of alleviating the feelings of depression, but they may be able to help you with a myriad of other things! 
You are wonderful just the way you are. Becoming a better person should not be a never-ending task. However, being a better person doesn’t always equate to finding the perfect job (you don’t have to have a career in something you’re passionate about). Volunteer. Go kill it at the gym. Give a homeless person some of your lunch money and potentially change their life. Or, if all you can do right now is muster up enough energy to brush your hair, you brush that damn hair. You won’t “figure it all out,” because there’s nothing to “figure out.” Life isn’t a Sudoku puzzle. It is not stagnant. It is ever-changing. There will be days, weeks, months, even years, that will knock you down. Life isn’t about the perfect job. It isn’t about getting that 4.0 GPA. It’s about growing and learning how to stand back up every time you fall.
Love, 
Inka
Here are some links for your consideration:
Mark MansonTiny BuddhaThe MuseZen HabitsWTF Should I Do With My Life?The Perfect JobForbesLifeHack
4 notes · View notes
laurelkrugerr · 5 years
Text
How Should Designers Learn To Code? Git, HTML/CSS, Engineering Principles (Part 2)
About The Author
Paul Hanaoka is a Design Manager at Liferay, based in the suburbs of Los Angeles, and serving the North American teams. His passion is at the intersection of … More about Paul …
In Part 1, Paul explained the basics of the terminal, shared a few productivity hacks to get you started, and how to choose a code editor. In this part, he’ll continue with the topics of version control (Git), HTML and CSS, semantic code, and a brief introduction to some key engineering principles.
Literally, tomes have been written on version control. Nevertheless, I will start by sharing a brief explanation and other introductory content to whet your appetite for further study.
Version control (not to be confused with version history) is basically a way for people to collaborate in their own environments on a single project, with a single main source of truth (often called the “master” branch).
I’ll go over today is the bare minimum you’ll need to know in order to download a project, make a change, and then send it to master.
There are many types of version control software and many tools for managing and hosting your source code (you may have heard of GitLab or Bitbucket). Git and GitHub are one of the more common pairs, my examples will reference GitHub but the principles will apply to most other source code managers.
Aside:
Collecting Data, The Powerful Way
Did you know that CSS can be used for collecting statistics? Indeed, there’s even a CSS-only approach for tracking UI interactions using Google Analytics. Read a related article →
Your First Contribution
Before doing these steps, you’ll need a few things set up:
A GitHub account,
Node and NPM installed on your computer,
A high tolerance for pain or a low threshold for asking others for help.
Step 1: Fork (Get A Copy Of The Code On Your GitHub Account)
On GitHub, you will fork (fork = create a copy of the code in your account; in the following illustration, the blue, orange, red, and green lines show forks) the repository (repo) in question.
By creating branches off of the master, it’s possible for multiple people to contribute to different areas of a project and then merge their work together. (Large preview)
You do this by navigating to the repo in GitHub and clicking the “Fork” button, currently at the top right-hand corner of a repo. This will be the “origin” — your fork on your GitHub account.
As an example, navigating to https://github.com/yourGitHubUsername/liferay.design should show your fork of the Liferay.Design repo.
This is victorvalle’s GitHub fork. (Large preview)
Step 2: Clone (Download The Code To Your Computer)
In your terminal, navigate to where you’d like to store the code. Personally, I have a /github folder in my /user folder — it makes it easier for me to organize it this way. If you’d like to do that, here are the steps — after typing these commands into your terminal window, press the ↵ key to execute:
cd ~/ ## you'll usually start in your root directory, but just in case you don't this will take you there mkdir github ## this creates a "github" folder — on OSX it will now be located at users/your-username/github cd github ## this command navigates you inside the github folder
Now that you’re in the /github folder, you will clone (download a copy of the code onto your computer) the repo.
clone https://github.com/yourGitHubUsername/liferay.design
Once you enter this command, you’ll see a bunch of activity in the terminal — something like this:
Cloning into 'liferay.design'... remote: Enumerating objects: 380, done. remote: Total 380 (delta 0), reused 0 (delta 0), pack-reused 380 Receiving objects: 100% (380/380), 789.24 KiB | 2.78 MiB/s, done. Resolving deltas: 100% (189/189), done.
Step 3: Install (Get It Running On Your Machine)
Navigate into the /project folder. In this case, we’ll enter cd liferay.design. Most projects will include a README.md file in the /root folder, this is typically the starting place for installing and running the project. For our purposes, to install, enter npm install. Once it’s installed, enter npm run dev.
Congratulations! You now have the site available on your local computer — typically projects will tell you where it’s running. In this case, open up a browser and go to localhost:7777.
Step 4: Commit (Make Some Changes And Save Them)
A commit is a collection of changes that you make; I’ve heard it described as saving your progress in a game. There are many opinions on how commits should be structured: mine is that you should create a commit when you’ve achieved one thing, and if you were to remove the commit, it wouldn’t completely break the project (within reason).
If you aren’t coming to a repo with a change in mind, a good place to go is the ‘Issues’ tab. This is where you can see what needs to be done in the project.
If you do have an idea for some change, go ahead and make it. Once you’ve saved the file(s), here are the steps required to create a commit:
git status ## this will print out a list of files that you've made changes in git add path/to/folder/or/file.ext ## this will add the file or folder to the commit git commit -m 'Summarize the changes you've made' ## this command creates a commit and a commit message
Tip: The best recommendation I’ve ever seen for commit messages is from Chris Breams’s “How To Write A Git Commit Message”. A properly formed Git commit subject line should always be able to complete the following sentence: “If applied, this commit will [your subject line here].” For more info on commits, check “Why I Create Atomic Commits In Git” by Clarice Bouwer.
Step 5: Push (Send Your Changes To Your Origin)
Once you’ve made some changes on your computer, before they can be merged into the master branch (added to the project), they need to be moved from your local to your remote repo. To do this, enter git push origin in the command line.
Step 6: Pull Request (Ask For Your Changes To Be Merged Into Upstream)
Now that your changes have gone from your fingers to your computer, to your remote repository — it’s now time to ask for them to be merged into the project via a pull request (PR).
The easiest way to do this is by going to your repo’s page in GitHub. There will be a small message right above the file window that says “This branch is X commits ahead repo-name:branch” and then options to “Pull request” or “Compare”.
Clicking the “Pull request” option here will take you to a page where you can compare the changes and a button that says “Create pull request” will then take you to the “Open a pull request” page where you’ll add a title and include a comment. Being brief, but detailed enough in the comment, will help project maintainers understand your proposed changes.
There are CLI tools like Node GH (GitHub also recently released a beta of their CLI tool) that allow you to initiate and manage pull requests in the terminal. At this point you may prefer to use the web interface, and that’s great! So do I.
The ‘Pull request’ and ‘Compare’ options will appear once your fork has diverged from the upstream repo. (Large preview)
Bonus Step: Remote (Link All The Repos)
At this point, we have three repository references:
upstream: the main repo that you’re tracking, often it’s the repo that you forked;
origin: the default name of the remote that you clone;
local: the code that is currently on your computer.
So far, you have #2 and #3 — but #1 is important because it’s the primary source. Keeping these three things in-line with each other is going to help the commit history stay clean. This helps project maintainers as it eliminates (or at least minimizes) merge conflicts when you send pull requests (PR’s) and it helps you get the latest code and keep your local and origin repositories up-to-date.
Set An Upstream Remote
To track the upstream remote, in your terminal enter the following:
git remote add upstream https://github.com/liferay-design/liferay.design
Now, check to see what remotes you have available — enter git remote -v into your terminal, you should see something like:
origin and upstream are the most common labels for remotes — ‘origin’ is your fork, ‘upstream’ is the source. (Large preview)
origin https://github.com/yourGitHubUsername/liferay.design (fetch) origin https://github.com/yourGitHubUsername/liferay.design (push) upstream https://github.com/liferay-design/liferay.design (fetch) upstream https://github.com/liferay-design/liferay.design (push)
This will allow you to quickly get the latest version of what is upstream — if you haven’t worked in a repo in a long time and don’t have any local changes that you want to keep, this is a handy command that I use:
git pull upstream master && git reset --hard upstream/master
GitHub Help is a great resource for this and many other questions you might have.
HTML And CSS: Starting With Semantics
On the web, there is an endless supply of resources for learning HTML and CSS. For the purposes of this article, I’m sharing what I would recommend based on the mistakes I made how I first learned to write HTML and CSS.
What Are HTML And CSS?
Before we get any further, let’s define HTML and CSS.
HTML stands for HyperText Markup Language.
Hypertext:
“Hypertext is text displayed on a computer display or other electronic devices with references (hyperlinks) to other text that the reader can immediately access.”
— “Hypertext” on Wikipedia
Markup Language:
“…a system for annotating a document in a way that is syntactically distinguishable from the text.”
— “Markup Language” on Wikipedia
In case you also don’t know what a lot of those words mean — briefly put, HTML is the combination of references (links) between documents on the web, and tags that you use to give structure to those documents.
There’s an HTML5 tag for pretty much any basic element — otherwise you can always use a div! (Large preview)
For a thorough introduction to HTML and CSS, I highly recommend the Introduction to HTML and CSS first steps, both on the Mozilla Developer Network (MDN) web docs. That, along with the excellent articles that websites such as CSS Tricks, 24 Ways and countless of others provide, contain basically everything you’ll ever need to reference with regards to HTML/CSS.
There are two main parts of an HTML document: the <head> and the <body>. – The <head> contains things that aren’t displayed by the browser — metadata and links to imported stylesheets and scripts. – The <body> contains the actual content that will be rendered by the browser. To render the content, the browser reads the HTML, provides a base layer of styles depending on the types of tags used, adds additional layers of styles provided by the website itself (the styles are included in/referenced from the <head>, or are inline), and that is what we see in the end. (Note: There is often also the additional layer of JavaScript but it’s outside of the scope of this article.)
CSS stands for Cascading Style Sheets — it is used to extend the HTML by making it easier to give documents a custom look and feel. A style sheet is a document that tells the HTML what elements should look like (and how they should be positioned) by setting rules based on tags, classes, IDs, and other selectors. Cascading refers to the method for determining which rules in a sheet take priority in the inevitable event of a rule conflict.
“‘Cascading’ means that styles can fall (or cascade) from one style sheet to another, enabling multiple style sheets to be used on one HTML document.”
— Cascade — Max Design
CSS often gets a bad reputation — in sites with lots of style sheets it can quickly become unwieldy, especially if there aren’t documented, consistent methods used (more on that later) — but if you use it in an organized fashion and following all the best practices, CSS can be your best friend. Especially with the layout capabilities that are now available in most modern browsers, CSS is not nearly as necessary to hack and fight as it once was.
Rachel Andrew wrote a great guide, How To Learn CSS — and one of the best things to know before you start is that:
��You don’t need to commit to memorizing every CSS Property and Value.”
— Rachel Andrew
Instead, it’s far more vital to learn the fundamentals — selectors, inheritance, the box model, and most importantly, how to debug your CSS code (hint: you will need the browser developer tools).
Don’t worry about memorizing the syntax for the background property, and don’t worry if you forget about how exactly to align stuff in Flexbox (the CSS Tricks Guide to Flexbox is possibly one of my top-10 most visited pages, ever!); Google and Stack Overflow are your friends when it comes to CSS properties and values.
Some code editors even have built-in autocomplete so you don’t even need to search on the web in order to be able to figure out all the possible properties of a border, for example.
One of my favorite new features in Firefox 70 is the inactive CSS rules indicator. It will save you hours of time trying to figure out why a style isn’t being applied.
Kids these days have it so easy! (Large preview)
Semantics
Let’s start with semantic code. Semantics refers to the meanings of words, semantic code refers to the idea that there is meaning to the markup in any given language.
There are many reasons why semantics are important. If I could summarize this, I would say that if you learn and use semantic code, it will make your life a lot easier because you will get a lot of things for free — and who doesn’t like free stuff?
For a more complete introduction to semantic code, see Paul Boag’s brief blog post on the topic.
Semantics gives you many benefits:
Default styles For example, using a headline tag <h1> for the title of your document will make it stand out from the rest of the document’s contents, much like a headline would.
Accessible content Your code will be accessible by default, meaning it will work with screen readers and will be easier to navigate with a keyboard.
SEO Company benefits Semantic markup is easier for a machine to read, which makes it more accessible to search engines.
Performance benefits Clean HTML is the foundation for a high-performing site. And clean HTML will also likely lead to cleaner CSS which means less code overall, making your site or app faster.
Note: For a more in-depth look into semantics and HTML, Heydon Pickering wrote “Structural Semantics: The Importance Of HTML5 Sectioning Elements” which I highly recommend reading.
Engineering Principles And Paradigms: The Basics
Abstraction
There are tons of applications, tangents, and levels we could explore over the concept of abstraction — too many for this article which is intended to give you a brief introduction into concepts so that you are aware of them as you continue to learn.
Abstraction is a foundational engineering paradigm with a wide variety of applications — for the purposes of this article, abstraction is separating form from function. We’ll apply this in three areas: tokens, components, and the Don’t Repeat Yourself principle.
Tokens
If you’ve used a modern design tool for any length of time, you’ve probably encountered the idea of a token. Even Photoshop and Illustrator now have this idea of shared styles in a centralized library — instead of hard-coding values into a design, you use a token. If you’re familiar with the concept of CSS or SASS variables, you’re already familiar with tokens.
One layer of abstraction with tokens is to assign a name to a color — for example, $blue-00 can be mapped to a hex value (or an HSL value, or whatever you want) — let’s say #0B5FFF. Now, instead of using the hex value in your stylesheets, you use the token value — that way if you decide that blue-00 is actually #0B36CE, then you only have to change it in a single place. This is a nice concept.
Tokens for colors in the Lexicon Alerts component helps keep things DRY. (Large preview)
If you take this same paradigm of abstraction and go a layer further, you can token-ception — and assign a variable to a functional value. This is particularly useful if you have a robust system and want to have different themes within the system. A functional example of this would be assigning a variable like $primary-color and map that to $blue-00 — so now you can create markup and instead of referencing blue, you’re referencing a functional variable. If you ever want to use the same markup, but with a different style (theme), then you only need to map $primary-color to a new color, and your markup doesn’t need to change at all! Magic!
Components
In the past 3-4 years, the idea of components and componentization has become more relevant and accessible to designers. The concept of symbols (pioneered by Macromedia/Adobe Fireworks, later expanded by Sketch, and then taken to the next level by Figma and Framer), is now more widely available in most design tools (Adobe XD, InVision Studio, Webflow, and many others). Componentization, even more than tokens, can separate the form of something from the function of it — which helps to improve both the form and the function.
One of the more notable early examples is Nicole Sullivan’s media object component. At first glance you might not realize that a whole page is essentially composed of a single component, rendered in different ways. In this way, we can re-use the same markup (form), modifying it slightly by passing in options or parameters, and styles — and have it provide a variety of value (function).
Don’t Repeat Yourself
DRY (Don’t Repeat Yourself) is one of my favorite principles — creating things that can be reused over and over is one of the small victories you can have when coding.
While you often can’t (and arguably shouldn’t) strive to apply the DRY principle 100% of the time, every time — it’s at least beneficial to be aware of this so that as you’re working, you can consider how you can make whatever you’re working on more reusable.
A note on the Rule of Three: A corollary to the DRY principle is the rule of three — essentially, once you re-use (copy/paste) something three times, you should rewrite it into a reusable component. Like the Pirate’s Code, it’s more of a guideline than a hard and fast rule, and can vary from component to component and from project to project.
CSS And Styling Methodologies: Atomic vs. BEM
There are a lot of different ways to organize and write CSS code — Atomic and BEM are only two of the many that you’re likely to come across. You don’t have to “pick” a single one, nor do you have to follow them exactly. Most of the teams I’ve worked with usually have their own unique blend, based on the project or technology. It is helpful to be familiar with them so that over time, you can learn which approach to take depending on the situation.
All of these approaches go beyond “just” CSS and styling, and can often influence the tooling you use, the way you organize your files, and potentially the markup.
Atomic CSS
Not to be confused with Atomic Web Design — atomic (perhaps more aptly referred to as “functional”) CSS, is a methodology that essentially favors using small, single-purpose classes to define visual functions. A few notable libraries:
Atomic CSS by Steve Carlson;
Tachyons by Adam Morse;
Tailwind CSS by Adam Wathan.
What I like about this method is that it allows you to quickly style and theme things — one of the biggest drawbacks is that your markup can get pretty cluttered, pretty fast.
Check John Polacek’s article on CSS-tricks for a full introduction to Atomic CSS.
BEM
The BEM philosophy is a great precursor to a lot of the modern JavaScript frameworks like Angular, React, and Vue.
“BEM (Block, Element, Modifier) is a component-based approach to web development.”
— BEM: Quick Start
Basically, everything that can be reused is a block. Blocks are comprised of elements, something that can’t be used outside of a block, and potentially other blocks. Modifiers are things that describe the status of something or the way it looks or behaves.
Personally, I like the theory and philosophy of BEM. What I do not like is the way that things are named. Way too many underscores, hyphens, and it can feel unnecessarily repetitive (.menu, .menu__item, etc).
Recommended reading: BEM For Beginners written by Inna Belaya
Thank U, Next(.js)
After you have sufficiently mastered these topics, don’t worry, there is still plenty to learn. Some suggestions:
Functional and object-oriented programming We touched on it lightly, but there’s plenty more to learn beyond CSS.
Higher-level languages and frameworks Typescript, Ruby, React, Vue are the next things you’ll tackle once you have a strong grasp of HTML and CSS.
Querying languages and using data Learning about GraphQL, MySQL, REST APIs will take your coding ability to the next level.
Conclusion: Designers Who Code != Software Engineers
Hopefully, this article has shown you that learning to code isn’t as difficult as you may have previously thought. It can take a lot of time, but the amount of resources available on the internet is astounding, and they’re not decreasing — quite the opposite!
One significant point that I want to emphasize is that “coding” is not the same as “software engineering” — being able to fork a repo and copy/paste in code from Stack Overflow can get you a long way, and while most, if not all, software engineers that I know have done that — you must use your new-found skills with wisdom and humility. For everything you can now access with some engineering prowess, there is that much more that you don’t know. While you may think that a feature or style is easy to accomplish because — “Hey, I got it working in devtools!” or “I made it work in Codepen.” — there are many engineering processes, dependencies, and methods that you probably don’t know that you don’t know.
All of that is to say — don’t forget that we are still designers. Our primary function is to add business value through the lens of understanding customer or user problems and synthesizing them with our knowledge of design patterns, methods, and processes. Yes, being a “designer who writes code” can be very useful and will expand your ability to add this value — but we still need to let engineers make the engineering decisions.
Anything Amiss?
There’s a good chance that something in this post was obscure, obtuse, and/or obsolete and I’d love the opportunity to make it better! Please leave a comment below, DM me, or @mention me on Twitter so I can improve.
Further Reading
Coding Bootcamps vs. Computer Science Degrees: What Employers Want and Other Perspectives (Kyle Thayer)
How To Start Using Sketch And Framer X (by Martina Pérez, Smashing Magazine)
Introduction To Linux Commands (by Paul Tero, Smashing Magazine)
Become A Command-Line Power User With Oh My ZSH And Z (by Wes Bos, Smashing Magazine)
A list of the common cmd.exe and Unix commands that you can use in PowerShell (Microsoft Docs)
regular-expressions.info (by Jan Goyvaerts)
regexone.com (learn regular expressions with simple interactive exercises)
Batch Resizing Using Command Line and ImageMagick (by Vlad Gerasimov, Smashing Magazine)
Shortcuts And Tips For Improving Your Productivity With Sublime Text (by Jai Pandya, Smashing Magazine)
Visual Studio Code Can Do That? (by Burke Holland, Smashing Magazine)
Why version history is not version control (by Josh Brewer)
Modern Version Control With Git (by Tobias Günther, Smashing Magazine)
“Hello World” (a GitHub step-by-step guide)
How to Install Node.js and NPM on a Mac (by Dave McFarland)
How to Install Node.js and NPM on Windows (by Dejan Tucakov)
Why I Create Atomic Commits In Git (by Clarice Bouwer)
How to Write a Git Commit Message (by Chris Breams)
Semantic code: What? Why? How? (by Paul Boag)
Structural Semantics: The Importance Of HTML5 Sectioning Elements (by Heydon Pickering, Smashing Magazine)
Designing for Performance: Chapter 4. Optimizing Markup and Styles (by Lara C. Hogan, O’Reilly Media)
The media object saves hundreds of lines of code (by Nicole Sullivan)
Let’s Define Exactly What Atomic CSS is (by John Polacek, CSS Tricks)
BEM For Beginners: Why You Need BEM (by Inna Belaya, Smashing Magazine)
Javascript for Cats: An Introduction for New Programmers
Roadmap.sh: Frontend Developer
Functional Programming vs OOPS : Explain Like I’m Five
Why, How, and When to Use Semantic HTML and ARIA (by Adam Silver, CSS Tricks)
HTML Semantics (an eBook by Smashing Magazine)
The Fundamentals – HTML + CSS (on Syntax.fm)
Cascade and inheritance (westciv.com)
CSS Tricks (by Chris Coyier)
Getting Started With CSS Layout (by Rachel Andrew, Smashing Magazine)
Introduction to HTML (MDN web docs)
CSS first steps (MDN web docs)
JavaScript First Steps (MDN web docs)
24 Ways (by Drew McLellan)
(mb, yk, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/how-should-designers-learn-to-code-git-html-css-engineering-principles-part-2/ source https://scpie1.blogspot.com/2020/03/how-should-designers-learn-to-code-git.html
0 notes
douglassmiith · 5 years
Text
How Should Designers Learn To Code? Git HTML/CSS Engineering Principles (Part 2)
About The Author
Paul Hanaoka is a Design Manager at Liferay, based in the suburbs of Los Angeles, and serving the North American teams. His passion is at the intersection of … More about Paul …
In Part 1, Paul explained the basics of the terminal, shared a few productivity hacks to get you started, and how to choose a code editor. In this part, he’ll continue with the topics of version control (Git), HTML and CSS, semantic code, and a brief introduction to some key engineering principles.
Literally, tomes have been written on version control. Nevertheless, I will start by sharing a brief explanation and other introductory content to whet your appetite for further study.
Version control (not to be confused with version history) is basically a way for people to collaborate in their own environments on a single project, with a single main source of truth (often called the “master” branch).
I’ll go over today is the bare minimum you’ll need to know in order to download a project, make a change, and then send it to master.
There are many types of version control software and many tools for managing and hosting your source code (you may have heard of GitLab or Bitbucket). Git and GitHub are one of the more common pairs, my examples will reference GitHub but the principles will apply to most other source code managers.
Aside:
Collecting Data, The Powerful Way
Did you know that CSS can be used for collecting statistics? Indeed, there’s even a CSS-only approach for tracking UI interactions using Google Analytics. Read a related article →
Your First Contribution
Before doing these steps, you’ll need a few things set up:
A GitHub account,
Node and NPM installed on your computer,
A high tolerance for pain or a low threshold for asking others for help.
Step 1: Fork (Get A Copy Of The Code On Your GitHub Account)
On GitHub, you will fork (fork = create a copy of the code in your account; in the following illustration, the blue, orange, red, and green lines show forks) the repository (repo) in question.
By creating branches off of the master, it’s possible for multiple people to contribute to different areas of a project and then merge their work together. (Large preview)
You do this by navigating to the repo in GitHub and clicking the “Fork” button, currently at the top right-hand corner of a repo. This will be the “origin” — your fork on your GitHub account.
As an example, navigating to https://github.com/yourGitHubUsername/liferay.design should show your fork of the Liferay.Design repo.
This is victorvalle’s GitHub fork. (Large preview)
Step 2: Clone (Download The Code To Your Computer)
In your terminal, navigate to where you’d like to store the code. Personally, I have a /github folder in my /user folder — it makes it easier for me to organize it this way. If you’d like to do that, here are the steps — after typing these commands into your terminal window, press the ↵ key to execute:
cd ~/ ## you'll usually start in your root directory, but just in case you don't this will take you theremkdir github ## this creates a "github" folder — on OSX it will now be located at users/your-username/githubcd github ## this command navigates you inside the github folder
Now that you’re in the /github folder, you will clone (download a copy of the code onto your computer) the repo.
clone https://github.com/yourGitHubUsername/liferay.design
Once you enter this command, you’ll see a bunch of activity in the terminal — something like this:
Cloning into 'liferay.design'...remote: Enumerating objects: 380, done.remote: Total 380 (delta 0), reused 0 (delta 0), pack-reused 380Receiving objects: 100% (380/380), 789.24 KiB | 2.78 MiB/s, done.Resolving deltas: 100% (189/189), done.
Step 3: Install (Get It Running On Your Machine)
Navigate into the /project folder. In this case, we’ll enter cd liferay.design. Most projects will include a README.md file in the /root folder, this is typically the starting place for installing and running the project. For our purposes, to install, enter npm install. Once it’s installed, enter npm run dev.
Congratulations! You now have the site available on your local computer — typically projects will tell you where it’s running. In this case, open up a browser and go to localhost:7777.
Step 4: Commit (Make Some Changes And Save Them)
A commit is a collection of changes that you make; I’ve heard it described as saving your progress in a game. There are many opinions on how commits should be structured: mine is that you should create a commit when you’ve achieved one thing, and if you were to remove the commit, it wouldn’t completely break the project (within reason).
If you aren’t coming to a repo with a change in mind, a good place to go is the ‘Issues’ tab. This is where you can see what needs to be done in the project.
If you do have an idea for some change, go ahead and make it. Once you’ve saved the file(s), here are the steps required to create a commit:
git status ## this will print out a list of files that you've made changes ingit add path/to/folder/or/file.ext ## this will add the file or folder to the commitgit commit -m 'Summarize the changes you've made' ## this command creates a commit and a commit message
Tip: The best recommendation I’ve ever seen for commit messages is from Chris Breams’s “How To Write A Git Commit Message”. A properly formed Git commit subject line should always be able to complete the following sentence: “If applied, this commit will [your subject line here].” For more info on commits, check “Why I Create Atomic Commits In Git” by Clarice Bouwer.
Step 5: Push (Send Your Changes To Your Origin)
Once you’ve made some changes on your computer, before they can be merged into the master branch (added to the project), they need to be moved from your local to your remote repo. To do this, enter git push origin in the command line.
Step 6: Pull Request (Ask For Your Changes To Be Merged Into Upstream)
Now that your changes have gone from your fingers to your computer, to your remote repository — it’s now time to ask for them to be merged into the project via a pull request (PR).
The easiest way to do this is by going to your repo’s page in GitHub. There will be a small message right above the file window that says “This branch is X commits ahead repo-name:branch” and then options to “Pull request” or “Compare”.
Clicking the “Pull request” option here will take you to a page where you can compare the changes and a button that says “Create pull request” will then take you to the “Open a pull request” page where you’ll add a title and include a comment. Being brief, but detailed enough in the comment, will help project maintainers understand your proposed changes.
There are CLI tools like Node GH (GitHub also recently released a beta of their CLI tool) that allow you to initiate and manage pull requests in the terminal. At this point you may prefer to use the web interface, and that’s great! So do I.
The ‘Pull request’ and ‘Compare’ options will appear once your fork has diverged from the upstream repo. (Large preview)
Bonus Step: Remote (Link All The Repos)
At this point, we have three repository references:
upstream: the main repo that you’re tracking, often it’s the repo that you forked;
origin: the default name of the remote that you clone;
local: the code that is currently on your computer.
So far, you have #2 and #3 — but #1 is important because it’s the primary source. Keeping these three things in-line with each other is going to help the commit history stay clean. This helps project maintainers as it eliminates (or at least minimizes) merge conflicts when you send pull requests (PR’s) and it helps you get the latest code and keep your local and origin repositories up-to-date.
Set An Upstream Remote
To track the upstream remote, in your terminal enter the following:
git remote add upstream https://github.com/liferay-design/liferay.design
Now, check to see what remotes you have available — enter git remote -v into your terminal, you should see something like:
origin and upstream are the most common labels for remotes — ‘origin’ is your fork, ‘upstream’ is the source. (Large preview)
origin https://github.com/yourGitHubUsername/liferay.design (fetch)origin https://github.com/yourGitHubUsername/liferay.design (push)upstream https://github.com/liferay-design/liferay.design (fetch)upstream https://github.com/liferay-design/liferay.design (push)
This will allow you to quickly get the latest version of what is upstream — if you haven’t worked in a repo in a long time and don’t have any local changes that you want to keep, this is a handy command that I use:
git pull upstream master && git reset --hard upstream/master
GitHub Help is a great resource for this and many other questions you might have.
HTML And CSS: Starting With Semantics
On the web, there is an endless supply of resources for learning HTML and CSS. For the purposes of this article, I’m sharing what I would recommend based on the mistakes I made how I first learned to write HTML and CSS.
What Are HTML And CSS?
Before we get any further, let’s define HTML and CSS.
HTML stands for HyperText Markup Language.
Hypertext:
“Hypertext is text displayed on a computer display or other electronic devices with references (hyperlinks) to other text that the reader can immediately access.”
— “Hypertext” on Wikipedia
Markup Language:
“…a system for annotating a document in a way that is syntactically distinguishable from the text.”
— “Markup Language” on Wikipedia
In case you also don’t know what a lot of those words mean — briefly put, HTML is the combination of references (links) between documents on the web, and tags that you use to give structure to those documents.
There’s an HTML5 tag for pretty much any basic element — otherwise you can always use a div! (Large preview)
For a thorough introduction to HTML and CSS, I highly recommend the Introduction to HTML and CSS first steps, both on the Mozilla Developer Network (MDN) web docs. That, along with the excellent articles that websites such as CSS Tricks, 24 Ways and countless of others provide, contain basically everything you’ll ever need to reference with regards to HTML/CSS.
There are two main parts of an HTML document: the <head> and the <body>. – The <head> contains things that aren’t displayed by the browser — metadata and links to imported stylesheets and scripts. – The <body> contains the actual content that will be rendered by the browser. To render the content, the browser reads the HTML, provides a base layer of styles depending on the types of tags used, adds additional layers of styles provided by the website itself (the styles are included in/referenced from the <head>, or are inline), and that is what we see in the end. (Note: There is often also the additional layer of JavaScript but it’s outside of the scope of this article.)
CSS stands for Cascading Style Sheets — it is used to extend the HTML by making it easier to give documents a custom look and feel. A style sheet is a document that tells the HTML what elements should look like (and how they should be positioned) by setting rules based on tags, classes, IDs, and other selectors. Cascading refers to the method for determining which rules in a sheet take priority in the inevitable event of a rule conflict.
“‘Cascading’ means that styles can fall (or cascade) from one style sheet to another, enabling multiple style sheets to be used on one HTML document.”
— Cascade — Max Design
CSS often gets a bad reputation — in sites with lots of style sheets it can quickly become unwieldy, especially if there aren’t documented, consistent methods used (more on that later) — but if you use it in an organized fashion and following all the best practices, CSS can be your best friend. Especially with the layout capabilities that are now available in most modern browsers, CSS is not nearly as necessary to hack and fight as it once was.
Rachel Andrew wrote a great guide, How To Learn CSS — and one of the best things to know before you start is that:
“You don’t need to commit to memorizing every CSS Property and Value.”
— Rachel Andrew
Instead, it’s far more vital to learn the fundamentals — selectors, inheritance, the box model, and most importantly, how to debug your CSS code (hint: you will need the browser developer tools).
Don’t worry about memorizing the syntax for the background property, and don’t worry if you forget about how exactly to align stuff in Flexbox (the CSS Tricks Guide to Flexbox is possibly one of my top-10 most visited pages, ever!); Google and Stack Overflow are your friends when it comes to CSS properties and values.
Some code editors even have built-in autocomplete so you don’t even need to search on the web in order to be able to figure out all the possible properties of a border, for example.
One of my favorite new features in Firefox 70 is the inactive CSS rules indicator. It will save you hours of time trying to figure out why a style isn’t being applied.
Kids these days have it so easy! (Large preview)
Semantics
Let’s start with semantic code. Semantics refers to the meanings of words, semantic code refers to the idea that there is meaning to the markup in any given language.
There are many reasons why semantics are important. If I could summarize this, I would say that if you learn and use semantic code, it will make your life a lot easier because you will get a lot of things for free — and who doesn’t like free stuff?
For a more complete introduction to semantic code, see Paul Boag’s brief blog post on the topic.
Semantics gives you many benefits:
Default styles For example, using a headline tag <h1> for the title of your document will make it stand out from the rest of the document’s contents, much like a headline would.
Accessible content Your code will be accessible by default, meaning it will work with screen readers and will be easier to navigate with a keyboard.
SEO Company benefits Semantic markup is easier for a machine to read, which makes it more accessible to search engines.
Performance benefits Clean HTML is the foundation for a high-performing site. And clean HTML will also likely lead to cleaner CSS which means less code overall, making your site or app faster.
Note: For a more in-depth look into semantics and HTML, Heydon Pickering wrote “Structural Semantics: The Importance Of HTML5 Sectioning Elements” which I highly recommend reading.
Engineering Principles And Paradigms: The Basics
Abstraction
There are tons of applications, tangents, and levels we could explore over the concept of abstraction — too many for this article which is intended to give you a brief introduction into concepts so that you are aware of them as you continue to learn.
Abstraction is a foundational engineering paradigm with a wide variety of applications — for the purposes of this article, abstraction is separating form from function. We’ll apply this in three areas: tokens, components, and the Don’t Repeat Yourself principle.
Tokens
If you’ve used a modern design tool for any length of time, you’ve probably encountered the idea of a token. Even Photoshop and Illustrator now have this idea of shared styles in a centralized library — instead of hard-coding values into a design, you use a token. If you’re familiar with the concept of CSS or SASS variables, you’re already familiar with tokens.
One layer of abstraction with tokens is to assign a name to a color — for example, $blue-00 can be mapped to a hex value (or an HSL value, or whatever you want) — let’s say #0B5FFF. Now, instead of using the hex value in your stylesheets, you use the token value — that way if you decide that blue-00 is actually #0B36CE, then you only have to change it in a single place. This is a nice concept.
Tokens for colors in the Lexicon Alerts component helps keep things DRY. (Large preview)
If you take this same paradigm of abstraction and go a layer further, you can token-ception — and assign a variable to a functional value. This is particularly useful if you have a robust system and want to have different themes within the system. A functional example of this would be assigning a variable like $primary-color and map that to $blue-00 — so now you can create markup and instead of referencing blue, you’re referencing a functional variable. If you ever want to use the same markup, but with a different style (theme), then you only need to map $primary-color to a new color, and your markup doesn’t need to change at all! Magic!
Components
In the past 3-4 years, the idea of components and componentization has become more relevant and accessible to designers. The concept of symbols (pioneered by Macromedia/Adobe Fireworks, later expanded by Sketch, and then taken to the next level by Figma and Framer), is now more widely available in most design tools (Adobe XD, InVision Studio, Webflow, and many others). Componentization, even more than tokens, can separate the form of something from the function of it — which helps to improve both the form and the function.
One of the more notable early examples is Nicole Sullivan’s media object component. At first glance you might not realize that a whole page is essentially composed of a single component, rendered in different ways. In this way, we can re-use the same markup (form), modifying it slightly by passing in options or parameters, and styles — and have it provide a variety of value (function).
Don’t Repeat Yourself
DRY (Don’t Repeat Yourself) is one of my favorite principles — creating things that can be reused over and over is one of the small victories you can have when coding.
While you often can’t (and arguably shouldn’t) strive to apply the DRY principle 100% of the time, every time — it’s at least beneficial to be aware of this so that as you’re working, you can consider how you can make whatever you’re working on more reusable.
A note on the Rule of Three: A corollary to the DRY principle is the rule of three — essentially, once you re-use (copy/paste) something three times, you should rewrite it into a reusable component. Like the Pirate’s Code, it’s more of a guideline than a hard and fast rule, and can vary from component to component and from project to project.
CSS And Styling Methodologies: Atomic vs. BEM
There are a lot of different ways to organize and write CSS code — Atomic and BEM are only two of the many that you’re likely to come across. You don’t have to “pick” a single one, nor do you have to follow them exactly. Most of the teams I’ve worked with usually have their own unique blend, based on the project or technology. It is helpful to be familiar with them so that over time, you can learn which approach to take depending on the situation.
All of these approaches go beyond “just” CSS and styling, and can often influence the tooling you use, the way you organize your files, and potentially the markup.
Atomic CSS
Not to be confused with Atomic Web Design — atomic (perhaps more aptly referred to as “functional”) CSS, is a methodology that essentially favors using small, single-purpose classes to define visual functions. A few notable libraries:
Atomic CSS by Steve Carlson;
Tachyons by Adam Morse;
Tailwind CSS by Adam Wathan.
What I like about this method is that it allows you to quickly style and theme things — one of the biggest drawbacks is that your markup can get pretty cluttered, pretty fast.
Check John Polacek’s article on CSS-tricks for a full introduction to Atomic CSS.
BEM
The BEM philosophy is a great precursor to a lot of the modern JavaScript frameworks like Angular, React, and Vue.
“BEM (Block, Element, Modifier) is a component-based approach to web development.”
— BEM: Quick Start
Basically, everything that can be reused is a block. Blocks are comprised of elements, something that can’t be used outside of a block, and potentially other blocks. Modifiers are things that describe the status of something or the way it looks or behaves.
Personally, I like the theory and philosophy of BEM. What I do not like is the way that things are named. Way too many underscores, hyphens, and it can feel unnecessarily repetitive (.menu, .menu__item, etc).
Recommended reading: BEM For Beginners written by Inna Belaya
Thank U, Next(.js)
After you have sufficiently mastered these topics, don’t worry, there is still plenty to learn. Some suggestions:
Functional and object-oriented programming We touched on it lightly, but there’s plenty more to learn beyond CSS.
Higher-level languages and frameworks Typescript, Ruby, React, Vue are the next things you’ll tackle once you have a strong grasp of HTML and CSS.
Querying languages and using data Learning about GraphQL, MySQL, REST APIs will take your coding ability to the next level.
Conclusion: Designers Who Code != Software Engineers
Hopefully, this article has shown you that learning to code isn’t as difficult as you may have previously thought. It can take a lot of time, but the amount of resources available on the internet is astounding, and they’re not decreasing — quite the opposite!
One significant point that I want to emphasize is that “coding” is not the same as “software engineering” — being able to fork a repo and copy/paste in code from Stack Overflow can get you a long way, and while most, if not all, software engineers that I know have done that — you must use your new-found skills with wisdom and humility. For everything you can now access with some engineering prowess, there is that much more that you don’t know. While you may think that a feature or style is easy to accomplish because — “Hey, I got it working in devtools!” or “I made it work in Codepen.” — there are many engineering processes, dependencies, and methods that you probably don’t know that you don’t know.
All of that is to say — don’t forget that we are still designers. Our primary function is to add business value through the lens of understanding customer or user problems and synthesizing them with our knowledge of design patterns, methods, and processes. Yes, being a “designer who writes code” can be very useful and will expand your ability to add this value — but we still need to let engineers make the engineering decisions.
Anything Amiss?
There’s a good chance that something in this post was obscure, obtuse, and/or obsolete and I’d love the opportunity to make it better! Please leave a comment below, DM me, or @mention me on Twitter so I can improve.
Further Reading
Coding Bootcamps vs. Computer Science Degrees: What Employers Want and Other Perspectives (Kyle Thayer)
How To Start Using Sketch And Framer X (by Martina Pérez, Smashing Magazine)
Introduction To Linux Commands (by Paul Tero, Smashing Magazine)
Become A Command-Line Power User With Oh My ZSH And Z (by Wes Bos, Smashing Magazine)
A list of the common cmd.exe and Unix commands that you can use in PowerShell (Microsoft Docs)
regular-expressions.info (by Jan Goyvaerts)
regexone.com (learn regular expressions with simple interactive exercises)
Batch Resizing Using Command Line and ImageMagick (by Vlad Gerasimov, Smashing Magazine)
Shortcuts And Tips For Improving Your Productivity With Sublime Text (by Jai Pandya, Smashing Magazine)
Visual Studio Code Can Do That? (by Burke Holland, Smashing Magazine)
Why version history is not version control (by Josh Brewer)
Modern Version Control With Git (by Tobias Günther, Smashing Magazine)
“Hello World” (a GitHub step-by-step guide)
How to Install Node.js and NPM on a Mac (by Dave McFarland)
How to Install Node.js and NPM on Windows (by Dejan Tucakov)
Why I Create Atomic Commits In Git (by Clarice Bouwer)
How to Write a Git Commit Message (by Chris Breams)
Semantic code: What? Why? How? (by Paul Boag)
Structural Semantics: The Importance Of HTML5 Sectioning Elements (by Heydon Pickering, Smashing Magazine)
Designing for Performance: Chapter 4. Optimizing Markup and Styles (by Lara C. Hogan, O’Reilly Media)
The media object saves hundreds of lines of code (by Nicole Sullivan)
Let’s Define Exactly What Atomic CSS is (by John Polacek, CSS Tricks)
BEM For Beginners: Why You Need BEM (by Inna Belaya, Smashing Magazine)
Javascript for Cats: An Introduction for New Programmers
Roadmap.sh: Frontend Developer
Functional Programming vs OOPS : Explain Like I’m Five
Why, How, and When to Use Semantic HTML and ARIA (by Adam Silver, CSS Tricks)
HTML Semantics (an eBook by Smashing Magazine)
The Fundamentals – HTML + CSS (on Syntax.fm)
Cascade and inheritance (westciv.com)
CSS Tricks (by Chris Coyier)
Getting Started With CSS Layout (by Rachel Andrew, Smashing Magazine)
Introduction to HTML (MDN web docs)
CSS first steps (MDN web docs)
JavaScript First Steps (MDN web docs)
24 Ways (by Drew McLellan)
(mb, yk, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
Via http://www.scpie.org/how-should-designers-learn-to-code-git-html-css-engineering-principles-part-2/
source https://scpie.weebly.com/blog/how-should-designers-learn-to-code-git-htmlcss-engineering-principles-part-2
0 notes
riichardwilson · 5 years
Text
How Should Designers Learn To Code? Git, HTML/CSS, Engineering Principles (Part 2)
About The Author
Paul Hanaoka is a Design Manager at Liferay, based in the suburbs of Los Angeles, and serving the North American teams. His passion is at the intersection of … More about Paul …
In Part 1, Paul explained the basics of the terminal, shared a few productivity hacks to get you started, and how to choose a code editor. In this part, he’ll continue with the topics of version control (Git), HTML and CSS, semantic code, and a brief introduction to some key engineering principles.
Literally, tomes have been written on version control. Nevertheless, I will start by sharing a brief explanation and other introductory content to whet your appetite for further study.
Version control (not to be confused with version history) is basically a way for people to collaborate in their own environments on a single project, with a single main source of truth (often called the “master” branch).
I’ll go over today is the bare minimum you’ll need to know in order to download a project, make a change, and then send it to master.
There are many types of version control software and many tools for managing and hosting your source code (you may have heard of GitLab or Bitbucket). Git and GitHub are one of the more common pairs, my examples will reference GitHub but the principles will apply to most other source code managers.
Aside:
Collecting Data, The Powerful Way
Did you know that CSS can be used for collecting statistics? Indeed, there’s even a CSS-only approach for tracking UI interactions using Google Analytics. Read a related article →
Your First Contribution
Before doing these steps, you’ll need a few things set up:
A GitHub account,
Node and NPM installed on your computer,
A high tolerance for pain or a low threshold for asking others for help.
Step 1: Fork (Get A Copy Of The Code On Your GitHub Account)
On GitHub, you will fork (fork = create a copy of the code in your account; in the following illustration, the blue, orange, red, and green lines show forks) the repository (repo) in question.
By creating branches off of the master, it’s possible for multiple people to contribute to different areas of a project and then merge their work together. (Large preview)
You do this by navigating to the repo in GitHub and clicking the “Fork” button, currently at the top right-hand corner of a repo. This will be the “origin” — your fork on your GitHub account.
As an example, navigating to https://github.com/yourGitHubUsername/liferay.design should show your fork of the Liferay.Design repo.
This is victorvalle’s GitHub fork. (Large preview)
Step 2: Clone (Download The Code To Your Computer)
In your terminal, navigate to where you’d like to store the code. Personally, I have a /github folder in my /user folder — it makes it easier for me to organize it this way. If you’d like to do that, here are the steps — after typing these commands into your terminal window, press the ↵ key to execute:
cd ~/ ## you'll usually start in your root directory, but just in case you don't this will take you there mkdir github ## this creates a "github" folder — on OSX it will now be located at users/your-username/github cd github ## this command navigates you inside the github folder
Now that you’re in the /github folder, you will clone (download a copy of the code onto your computer) the repo.
clone https://github.com/yourGitHubUsername/liferay.design
Once you enter this command, you’ll see a bunch of activity in the terminal — something like this:
Cloning into 'liferay.design'... remote: Enumerating objects: 380, done. remote: Total 380 (delta 0), reused 0 (delta 0), pack-reused 380 Receiving objects: 100% (380/380), 789.24 KiB | 2.78 MiB/s, done. Resolving deltas: 100% (189/189), done.
Step 3: Install (Get It Running On Your Machine)
Navigate into the /project folder. In this case, we’ll enter cd liferay.design. Most projects will include a README.md file in the /root folder, this is typically the starting place for installing and running the project. For our purposes, to install, enter npm install. Once it’s installed, enter npm run dev.
Congratulations! You now have the site available on your local computer — typically projects will tell you where it’s running. In this case, open up a browser and go to localhost:7777.
Step 4: Commit (Make Some Changes And Save Them)
A commit is a collection of changes that you make; I’ve heard it described as saving your progress in a game. There are many opinions on how commits should be structured: mine is that you should create a commit when you’ve achieved one thing, and if you were to remove the commit, it wouldn’t completely break the project (within reason).
If you aren’t coming to a repo with a change in mind, a good place to go is the ‘Issues’ tab. This is where you can see what needs to be done in the project.
If you do have an idea for some change, go ahead and make it. Once you’ve saved the file(s), here are the steps required to create a commit:
git status ## this will print out a list of files that you've made changes in git add path/to/folder/or/file.ext ## this will add the file or folder to the commit git commit -m 'Summarize the changes you've made' ## this command creates a commit and a commit message
Tip: The best recommendation I’ve ever seen for commit messages is from Chris Breams’s “How To Write A Git Commit Message”. A properly formed Git commit subject line should always be able to complete the following sentence: “If applied, this commit will [your subject line here].” For more info on commits, check “Why I Create Atomic Commits In Git” by Clarice Bouwer.
Step 5: Push (Send Your Changes To Your Origin)
Once you’ve made some changes on your computer, before they can be merged into the master branch (added to the project), they need to be moved from your local to your remote repo. To do this, enter git push origin in the command line.
Step 6: Pull Request (Ask For Your Changes To Be Merged Into Upstream)
Now that your changes have gone from your fingers to your computer, to your remote repository — it’s now time to ask for them to be merged into the project via a pull request (PR).
The easiest way to do this is by going to your repo’s page in GitHub. There will be a small message right above the file window that says “This branch is X commits ahead repo-name:branch” and then options to “Pull request” or “Compare”.
Clicking the “Pull request” option here will take you to a page where you can compare the changes and a button that says “Create pull request” will then take you to the “Open a pull request” page where you’ll add a title and include a comment. Being brief, but detailed enough in the comment, will help project maintainers understand your proposed changes.
There are CLI tools like Node GH (GitHub also recently released a beta of their CLI tool) that allow you to initiate and manage pull requests in the terminal. At this point you may prefer to use the web interface, and that’s great! So do I.
The ‘Pull request’ and ‘Compare’ options will appear once your fork has diverged from the upstream repo. (Large preview)
Bonus Step: Remote (Link All The Repos)
At this point, we have three repository references:
upstream: the main repo that you’re tracking, often it’s the repo that you forked;
origin: the default name of the remote that you clone;
local: the code that is currently on your computer.
So far, you have #2 and #3 — but #1 is important because it’s the primary source. Keeping these three things in-line with each other is going to help the commit history stay clean. This helps project maintainers as it eliminates (or at least minimizes) merge conflicts when you send pull requests (PR’s) and it helps you get the latest code and keep your local and origin repositories up-to-date.
Set An Upstream Remote
To track the upstream remote, in your terminal enter the following:
git remote add upstream https://github.com/liferay-design/liferay.design
Now, check to see what remotes you have available — enter git remote -v into your terminal, you should see something like:
origin and upstream are the most common labels for remotes — ‘origin’ is your fork, ‘upstream’ is the source. (Large preview)
origin https://github.com/yourGitHubUsername/liferay.design (fetch) origin https://github.com/yourGitHubUsername/liferay.design (push) upstream https://github.com/liferay-design/liferay.design (fetch) upstream https://github.com/liferay-design/liferay.design (push)
This will allow you to quickly get the latest version of what is upstream — if you haven’t worked in a repo in a long time and don’t have any local changes that you want to keep, this is a handy command that I use:
git pull upstream master && git reset --hard upstream/master
GitHub Help is a great resource for this and many other questions you might have.
HTML And CSS: Starting With Semantics
On the web, there is an endless supply of resources for learning HTML and CSS. For the purposes of this article, I’m sharing what I would recommend based on the mistakes I made how I first learned to write HTML and CSS.
What Are HTML And CSS?
Before we get any further, let’s define HTML and CSS.
HTML stands for HyperText Markup Language.
Hypertext:
“Hypertext is text displayed on a computer display or other electronic devices with references (hyperlinks) to other text that the reader can immediately access.”
— “Hypertext” on Wikipedia
Markup Language:
“…a system for annotating a document in a way that is syntactically distinguishable from the text.”
— “Markup Language” on Wikipedia
In case you also don’t know what a lot of those words mean — briefly put, HTML is the combination of references (links) between documents on the web, and tags that you use to give structure to those documents.
There’s an HTML5 tag for pretty much any basic element — otherwise you can always use a div! (Large preview)
For a thorough introduction to HTML and CSS, I highly recommend the Introduction to HTML and CSS first steps, both on the Mozilla Developer Network (MDN) web docs. That, along with the excellent articles that websites such as CSS Tricks, 24 Ways and countless of others provide, contain basically everything you’ll ever need to reference with regards to HTML/CSS.
There are two main parts of an HTML document: the <head> and the <body>. – The <head> contains things that aren’t displayed by the browser — metadata and links to imported stylesheets and scripts. – The <body> contains the actual content that will be rendered by the browser. To render the content, the browser reads the HTML, provides a base layer of styles depending on the types of tags used, adds additional layers of styles provided by the website itself (the styles are included in/referenced from the <head>, or are inline), and that is what we see in the end. (Note: There is often also the additional layer of JavaScript but it’s outside of the scope of this article.)
CSS stands for Cascading Style Sheets — it is used to extend the HTML by making it easier to give documents a custom look and feel. A style sheet is a document that tells the HTML what elements should look like (and how they should be positioned) by setting rules based on tags, classes, IDs, and other selectors. Cascading refers to the method for determining which rules in a sheet take priority in the inevitable event of a rule conflict.
“‘Cascading’ means that styles can fall (or cascade) from one style sheet to another, enabling multiple style sheets to be used on one HTML document.”
— Cascade — Max Design
CSS often gets a bad reputation — in sites with lots of style sheets it can quickly become unwieldy, especially if there aren’t documented, consistent methods used (more on that later) — but if you use it in an organized fashion and following all the best practices, CSS can be your best friend. Especially with the layout capabilities that are now available in most modern browsers, CSS is not nearly as necessary to hack and fight as it once was.
Rachel Andrew wrote a great guide, How To Learn CSS — and one of the best things to know before you start is that:
“You don’t need to commit to memorizing every CSS Property and Value.”
— Rachel Andrew
Instead, it’s far more vital to learn the fundamentals — selectors, inheritance, the box model, and most importantly, how to debug your CSS code (hint: you will need the browser developer tools).
Don’t worry about memorizing the syntax for the background property, and don’t worry if you forget about how exactly to align stuff in Flexbox (the CSS Tricks Guide to Flexbox is possibly one of my top-10 most visited pages, ever!); Google and Stack Overflow are your friends when it comes to CSS properties and values.
Some code editors even have built-in autocomplete so you don’t even need to search on the web in order to be able to figure out all the possible properties of a border, for example.
One of my favorite new features in Firefox 70 is the inactive CSS rules indicator. It will save you hours of time trying to figure out why a style isn’t being applied.
Kids these days have it so easy! (Large preview)
Semantics
Let’s start with semantic code. Semantics refers to the meanings of words, semantic code refers to the idea that there is meaning to the markup in any given language.
There are many reasons why semantics are important. If I could summarize this, I would say that if you learn and use semantic code, it will make your life a lot easier because you will get a lot of things for free — and who doesn’t like free stuff?
For a more complete introduction to semantic code, see Paul Boag’s brief blog post on the topic.
Semantics gives you many benefits:
Default styles For example, using a headline tag <h1> for the title of your document will make it stand out from the rest of the document’s contents, much like a headline would.
Accessible content Your code will be accessible by default, meaning it will work with screen readers and will be easier to navigate with a keyboard.
SEO Company benefits Semantic markup is easier for a machine to read, which makes it more accessible to search engines.
Performance benefits Clean HTML is the foundation for a high-performing site. And clean HTML will also likely lead to cleaner CSS which means less code overall, making your site or app faster.
Note: For a more in-depth look into semantics and HTML, Heydon Pickering wrote “Structural Semantics: The Importance Of HTML5 Sectioning Elements” which I highly recommend reading.
Engineering Principles And Paradigms: The Basics
Abstraction
There are tons of applications, tangents, and levels we could explore over the concept of abstraction — too many for this article which is intended to give you a brief introduction into concepts so that you are aware of them as you continue to learn.
Abstraction is a foundational engineering paradigm with a wide variety of applications — for the purposes of this article, abstraction is separating form from function. We’ll apply this in three areas: tokens, components, and the Don’t Repeat Yourself principle.
Tokens
If you’ve used a modern design tool for any length of time, you’ve probably encountered the idea of a token. Even Photoshop and Illustrator now have this idea of shared styles in a centralized library — instead of hard-coding values into a design, you use a token. If you’re familiar with the concept of CSS or SASS variables, you’re already familiar with tokens.
One layer of abstraction with tokens is to assign a name to a color — for example, $blue-00 can be mapped to a hex value (or an HSL value, or whatever you want) — let’s say #0B5FFF. Now, instead of using the hex value in your stylesheets, you use the token value — that way if you decide that blue-00 is actually #0B36CE, then you only have to change it in a single place. This is a nice concept.
Tokens for colors in the Lexicon Alerts component helps keep things DRY. (Large preview)
If you take this same paradigm of abstraction and go a layer further, you can token-ception — and assign a variable to a functional value. This is particularly useful if you have a robust system and want to have different themes within the system. A functional example of this would be assigning a variable like $primary-color and map that to $blue-00 — so now you can create markup and instead of referencing blue, you’re referencing a functional variable. If you ever want to use the same markup, but with a different style (theme), then you only need to map $primary-color to a new color, and your markup doesn’t need to change at all! Magic!
Components
In the past 3-4 years, the idea of components and componentization has become more relevant and accessible to designers. The concept of symbols (pioneered by Macromedia/Adobe Fireworks, later expanded by Sketch, and then taken to the next level by Figma and Framer), is now more widely available in most design tools (Adobe XD, InVision Studio, Webflow, and many others). Componentization, even more than tokens, can separate the form of something from the function of it — which helps to improve both the form and the function.
One of the more notable early examples is Nicole Sullivan’s media object component. At first glance you might not realize that a whole page is essentially composed of a single component, rendered in different ways. In this way, we can re-use the same markup (form), modifying it slightly by passing in options or parameters, and styles — and have it provide a variety of value (function).
Don’t Repeat Yourself
DRY (Don’t Repeat Yourself) is one of my favorite principles — creating things that can be reused over and over is one of the small victories you can have when coding.
While you often can’t (and arguably shouldn’t) strive to apply the DRY principle 100% of the time, every time — it’s at least beneficial to be aware of this so that as you’re working, you can consider how you can make whatever you’re working on more reusable.
A note on the Rule of Three: A corollary to the DRY principle is the rule of three — essentially, once you re-use (copy/paste) something three times, you should rewrite it into a reusable component. Like the Pirate’s Code, it’s more of a guideline than a hard and fast rule, and can vary from component to component and from project to project.
CSS And Styling Methodologies: Atomic vs. BEM
There are a lot of different ways to organize and write CSS code — Atomic and BEM are only two of the many that you’re likely to come across. You don’t have to “pick” a single one, nor do you have to follow them exactly. Most of the teams I’ve worked with usually have their own unique blend, based on the project or technology. It is helpful to be familiar with them so that over time, you can learn which approach to take depending on the situation.
All of these approaches go beyond “just” CSS and styling, and can often influence the tooling you use, the way you organize your files, and potentially the markup.
Atomic CSS
Not to be confused with Atomic Web Design — atomic (perhaps more aptly referred to as “functional”) CSS, is a methodology that essentially favors using small, single-purpose classes to define visual functions. A few notable libraries:
Atomic CSS by Steve Carlson;
Tachyons by Adam Morse;
Tailwind CSS by Adam Wathan.
What I like about this method is that it allows you to quickly style and theme things — one of the biggest drawbacks is that your markup can get pretty cluttered, pretty fast.
Check John Polacek’s article on CSS-tricks for a full introduction to Atomic CSS.
BEM
The BEM philosophy is a great precursor to a lot of the modern JavaScript frameworks like Angular, React, and Vue.
“BEM (Block, Element, Modifier) is a component-based approach to web development.”
— BEM: Quick Start
Basically, everything that can be reused is a block. Blocks are comprised of elements, something that can’t be used outside of a block, and potentially other blocks. Modifiers are things that describe the status of something or the way it looks or behaves.
Personally, I like the theory and philosophy of BEM. What I do not like is the way that things are named. Way too many underscores, hyphens, and it can feel unnecessarily repetitive (.menu, .menu__item, etc).
Recommended reading: BEM For Beginners written by Inna Belaya
Thank U, Next(.js)
After you have sufficiently mastered these topics, don’t worry, there is still plenty to learn. Some suggestions:
Functional and object-oriented programming We touched on it lightly, but there’s plenty more to learn beyond CSS.
Higher-level languages and frameworks Typescript, Ruby, React, Vue are the next things you’ll tackle once you have a strong grasp of HTML and CSS.
Querying languages and using data Learning about GraphQL, MySQL, REST APIs will take your coding ability to the next level.
Conclusion: Designers Who Code != Software Engineers
Hopefully, this article has shown you that learning to code isn’t as difficult as you may have previously thought. It can take a lot of time, but the amount of resources available on the internet is astounding, and they’re not decreasing — quite the opposite!
One significant point that I want to emphasize is that “coding” is not the same as “software engineering” — being able to fork a repo and copy/paste in code from Stack Overflow can get you a long way, and while most, if not all, software engineers that I know have done that — you must use your new-found skills with wisdom and humility. For everything you can now access with some engineering prowess, there is that much more that you don’t know. While you may think that a feature or style is easy to accomplish because — “Hey, I got it working in devtools!” or “I made it work in Codepen.” — there are many engineering processes, dependencies, and methods that you probably don’t know that you don’t know.
All of that is to say — don’t forget that we are still designers. Our primary function is to add business value through the lens of understanding customer or user problems and synthesizing them with our knowledge of design patterns, methods, and processes. Yes, being a “designer who writes code” can be very useful and will expand your ability to add this value — but we still need to let engineers make the engineering decisions.
Anything Amiss?
There’s a good chance that something in this post was obscure, obtuse, and/or obsolete and I’d love the opportunity to make it better! Please leave a comment below, DM me, or @mention me on Twitter so I can improve.
Further Reading
Coding Bootcamps vs. Computer Science Degrees: What Employers Want and Other Perspectives (Kyle Thayer)
How To Start Using Sketch And Framer X (by Martina Pérez, Smashing Magazine)
Introduction To Linux Commands (by Paul Tero, Smashing Magazine)
Become A Command-Line Power User With Oh My ZSH And Z (by Wes Bos, Smashing Magazine)
A list of the common cmd.exe and Unix commands that you can use in PowerShell (Microsoft Docs)
regular-expressions.info (by Jan Goyvaerts)
regexone.com (learn regular expressions with simple interactive exercises)
Batch Resizing Using Command Line and ImageMagick (by Vlad Gerasimov, Smashing Magazine)
Shortcuts And Tips For Improving Your Productivity With Sublime Text (by Jai Pandya, Smashing Magazine)
Visual Studio Code Can Do That? (by Burke Holland, Smashing Magazine)
Why version history is not version control (by Josh Brewer)
Modern Version Control With Git (by Tobias Günther, Smashing Magazine)
“Hello World” (a GitHub step-by-step guide)
How to Install Node.js and NPM on a Mac (by Dave McFarland)
How to Install Node.js and NPM on Windows (by Dejan Tucakov)
Why I Create Atomic Commits In Git (by Clarice Bouwer)
How to Write a Git Commit Message (by Chris Breams)
Semantic code: What? Why? How? (by Paul Boag)
Structural Semantics: The Importance Of HTML5 Sectioning Elements (by Heydon Pickering, Smashing Magazine)
Designing for Performance: Chapter 4. Optimizing Markup and Styles (by Lara C. Hogan, O’Reilly Media)
The media object saves hundreds of lines of code (by Nicole Sullivan)
Let’s Define Exactly What Atomic CSS is (by John Polacek, CSS Tricks)
BEM For Beginners: Why You Need BEM (by Inna Belaya, Smashing Magazine)
Javascript for Cats: An Introduction for New Programmers
Roadmap.sh: Frontend Developer
Functional Programming vs OOPS : Explain Like I’m Five
Why, How, and When to Use Semantic HTML and ARIA (by Adam Silver, CSS Tricks)
HTML Semantics (an eBook by Smashing Magazine)
The Fundamentals – HTML + CSS (on Syntax.fm)
Cascade and inheritance (westciv.com)
CSS Tricks (by Chris Coyier)
Getting Started With CSS Layout (by Rachel Andrew, Smashing Magazine)
Introduction to HTML (MDN web docs)
CSS first steps (MDN web docs)
JavaScript First Steps (MDN web docs)
24 Ways (by Drew McLellan)
(mb, yk, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/how-should-designers-learn-to-code-git-html-css-engineering-principles-part-2/ source https://scpie.tumblr.com/post/613627004767649792
0 notes
scpie · 5 years
Text
How Should Designers Learn To Code? Git, HTML/CSS, Engineering Principles (Part 2)
About The Author
Paul Hanaoka is a Design Manager at Liferay, based in the suburbs of Los Angeles, and serving the North American teams. His passion is at the intersection of … More about Paul …
In Part 1, Paul explained the basics of the terminal, shared a few productivity hacks to get you started, and how to choose a code editor. In this part, he’ll continue with the topics of version control (Git), HTML and CSS, semantic code, and a brief introduction to some key engineering principles.
Literally, tomes have been written on version control. Nevertheless, I will start by sharing a brief explanation and other introductory content to whet your appetite for further study.
Version control (not to be confused with version history) is basically a way for people to collaborate in their own environments on a single project, with a single main source of truth (often called the “master” branch).
I’ll go over today is the bare minimum you’ll need to know in order to download a project, make a change, and then send it to master.
There are many types of version control software and many tools for managing and hosting your source code (you may have heard of GitLab or Bitbucket). Git and GitHub are one of the more common pairs, my examples will reference GitHub but the principles will apply to most other source code managers.
Aside:
Collecting Data, The Powerful Way
Did you know that CSS can be used for collecting statistics? Indeed, there’s even a CSS-only approach for tracking UI interactions using Google Analytics. Read a related article →
Your First Contribution
Before doing these steps, you’ll need a few things set up:
A GitHub account,
Node and NPM installed on your computer,
A high tolerance for pain or a low threshold for asking others for help.
Step 1: Fork (Get A Copy Of The Code On Your GitHub Account)
On GitHub, you will fork (fork = create a copy of the code in your account; in the following illustration, the blue, orange, red, and green lines show forks) the repository (repo) in question.
By creating branches off of the master, it’s possible for multiple people to contribute to different areas of a project and then merge their work together. (Large preview)
You do this by navigating to the repo in GitHub and clicking the “Fork” button, currently at the top right-hand corner of a repo. This will be the “origin” — your fork on your GitHub account.
As an example, navigating to https://github.com/yourGitHubUsername/liferay.design should show your fork of the Liferay.Design repo.
This is victorvalle’s GitHub fork. (Large preview)
Step 2: Clone (Download The Code To Your Computer)
In your terminal, navigate to where you’d like to store the code. Personally, I have a /github folder in my /user folder — it makes it easier for me to organize it this way. If you’d like to do that, here are the steps — after typing these commands into your terminal window, press the ↵ key to execute:
cd ~/ ## you'll usually start in your root directory, but just in case you don't this will take you there mkdir github ## this creates a "github" folder — on OSX it will now be located at users/your-username/github cd github ## this command navigates you inside the github folder
Now that you’re in the /github folder, you will clone (download a copy of the code onto your computer) the repo.
clone https://github.com/yourGitHubUsername/liferay.design
Once you enter this command, you’ll see a bunch of activity in the terminal — something like this:
Cloning into 'liferay.design'... remote: Enumerating objects: 380, done. remote: Total 380 (delta 0), reused 0 (delta 0), pack-reused 380 Receiving objects: 100% (380/380), 789.24 KiB | 2.78 MiB/s, done. Resolving deltas: 100% (189/189), done.
Step 3: Install (Get It Running On Your Machine)
Navigate into the /project folder. In this case, we’ll enter cd liferay.design. Most projects will include a README.md file in the /root folder, this is typically the starting place for installing and running the project. For our purposes, to install, enter npm install. Once it’s installed, enter npm run dev.
Congratulations! You now have the site available on your local computer — typically projects will tell you where it’s running. In this case, open up a browser and go to localhost:7777.
Step 4: Commit (Make Some Changes And Save Them)
A commit is a collection of changes that you make; I’ve heard it described as saving your progress in a game. There are many opinions on how commits should be structured: mine is that you should create a commit when you’ve achieved one thing, and if you were to remove the commit, it wouldn’t completely break the project (within reason).
If you aren’t coming to a repo with a change in mind, a good place to go is the ‘Issues’ tab. This is where you can see what needs to be done in the project.
If you do have an idea for some change, go ahead and make it. Once you’ve saved the file(s), here are the steps required to create a commit:
git status ## this will print out a list of files that you've made changes in git add path/to/folder/or/file.ext ## this will add the file or folder to the commit git commit -m 'Summarize the changes you've made' ## this command creates a commit and a commit message
Tip: The best recommendation I’ve ever seen for commit messages is from Chris Breams’s “How To Write A Git Commit Message”. A properly formed Git commit subject line should always be able to complete the following sentence: “If applied, this commit will [your subject line here].” For more info on commits, check “Why I Create Atomic Commits In Git” by Clarice Bouwer.
Step 5: Push (Send Your Changes To Your Origin)
Once you’ve made some changes on your computer, before they can be merged into the master branch (added to the project), they need to be moved from your local to your remote repo. To do this, enter git push origin in the command line.
Step 6: Pull Request (Ask For Your Changes To Be Merged Into Upstream)
Now that your changes have gone from your fingers to your computer, to your remote repository — it’s now time to ask for them to be merged into the project via a pull request (PR).
The easiest way to do this is by going to your repo’s page in GitHub. There will be a small message right above the file window that says “This branch is X commits ahead repo-name:branch” and then options to “Pull request” or “Compare”.
Clicking the “Pull request” option here will take you to a page where you can compare the changes and a button that says “Create pull request” will then take you to the “Open a pull request” page where you’ll add a title and include a comment. Being brief, but detailed enough in the comment, will help project maintainers understand your proposed changes.
There are CLI tools like Node GH (GitHub also recently released a beta of their CLI tool) that allow you to initiate and manage pull requests in the terminal. At this point you may prefer to use the web interface, and that’s great! So do I.
The ‘Pull request’ and ‘Compare’ options will appear once your fork has diverged from the upstream repo. (Large preview)
Bonus Step: Remote (Link All The Repos)
At this point, we have three repository references:
upstream: the main repo that you’re tracking, often it’s the repo that you forked;
origin: the default name of the remote that you clone;
local: the code that is currently on your computer.
So far, you have #2 and #3 — but #1 is important because it’s the primary source. Keeping these three things in-line with each other is going to help the commit history stay clean. This helps project maintainers as it eliminates (or at least minimizes) merge conflicts when you send pull requests (PR’s) and it helps you get the latest code and keep your local and origin repositories up-to-date.
Set An Upstream Remote
To track the upstream remote, in your terminal enter the following:
git remote add upstream https://github.com/liferay-design/liferay.design
Now, check to see what remotes you have available — enter git remote -v into your terminal, you should see something like:
origin and upstream are the most common labels for remotes — ‘origin’ is your fork, ‘upstream’ is the source. (Large preview)
origin https://github.com/yourGitHubUsername/liferay.design (fetch) origin https://github.com/yourGitHubUsername/liferay.design (push) upstream https://github.com/liferay-design/liferay.design (fetch) upstream https://github.com/liferay-design/liferay.design (push)
This will allow you to quickly get the latest version of what is upstream — if you haven’t worked in a repo in a long time and don’t have any local changes that you want to keep, this is a handy command that I use:
git pull upstream master && git reset --hard upstream/master
GitHub Help is a great resource for this and many other questions you might have.
HTML And CSS: Starting With Semantics
On the web, there is an endless supply of resources for learning HTML and CSS. For the purposes of this article, I’m sharing what I would recommend based on the mistakes I made how I first learned to write HTML and CSS.
What Are HTML And CSS?
Before we get any further, let’s define HTML and CSS.
HTML stands for HyperText Markup Language.
Hypertext:
“Hypertext is text displayed on a computer display or other electronic devices with references (hyperlinks) to other text that the reader can immediately access.”
— “Hypertext” on Wikipedia
Markup Language:
“…a system for annotating a document in a way that is syntactically distinguishable from the text.”
— “Markup Language” on Wikipedia
In case you also don’t know what a lot of those words mean — briefly put, HTML is the combination of references (links) between documents on the web, and tags that you use to give structure to those documents.
There’s an HTML5 tag for pretty much any basic element — otherwise you can always use a div! (Large preview)
For a thorough introduction to HTML and CSS, I highly recommend the Introduction to HTML and CSS first steps, both on the Mozilla Developer Network (MDN) web docs. That, along with the excellent articles that websites such as CSS Tricks, 24 Ways and countless of others provide, contain basically everything you’ll ever need to reference with regards to HTML/CSS.
There are two main parts of an HTML document: the <head> and the <body>. – The <head> contains things that aren’t displayed by the browser — metadata and links to imported stylesheets and scripts. – The <body> contains the actual content that will be rendered by the browser. To render the content, the browser reads the HTML, provides a base layer of styles depending on the types of tags used, adds additional layers of styles provided by the website itself (the styles are included in/referenced from the <head>, or are inline), and that is what we see in the end. (Note: There is often also the additional layer of JavaScript but it’s outside of the scope of this article.)
CSS stands for Cascading Style Sheets — it is used to extend the HTML by making it easier to give documents a custom look and feel. A style sheet is a document that tells the HTML what elements should look like (and how they should be positioned) by setting rules based on tags, classes, IDs, and other selectors. Cascading refers to the method for determining which rules in a sheet take priority in the inevitable event of a rule conflict.
“‘Cascading’ means that styles can fall (or cascade) from one style sheet to another, enabling multiple style sheets to be used on one HTML document.”
— Cascade — Max Design
CSS often gets a bad reputation — in sites with lots of style sheets it can quickly become unwieldy, especially if there aren’t documented, consistent methods used (more on that later) — but if you use it in an organized fashion and following all the best practices, CSS can be your best friend. Especially with the layout capabilities that are now available in most modern browsers, CSS is not nearly as necessary to hack and fight as it once was.
Rachel Andrew wrote a great guide, How To Learn CSS — and one of the best things to know before you start is that:
“You don’t need to commit to memorizing every CSS Property and Value.”
— Rachel Andrew
Instead, it’s far more vital to learn the fundamentals — selectors, inheritance, the box model, and most importantly, how to debug your CSS code (hint: you will need the browser developer tools).
Don’t worry about memorizing the syntax for the background property, and don’t worry if you forget about how exactly to align stuff in Flexbox (the CSS Tricks Guide to Flexbox is possibly one of my top-10 most visited pages, ever!); Google and Stack Overflow are your friends when it comes to CSS properties and values.
Some code editors even have built-in autocomplete so you don’t even need to search on the web in order to be able to figure out all the possible properties of a border, for example.
One of my favorite new features in Firefox 70 is the inactive CSS rules indicator. It will save you hours of time trying to figure out why a style isn’t being applied.
Kids these days have it so easy! (Large preview)
Semantics
Let’s start with semantic code. Semantics refers to the meanings of words, semantic code refers to the idea that there is meaning to the markup in any given language.
There are many reasons why semantics are important. If I could summarize this, I would say that if you learn and use semantic code, it will make your life a lot easier because you will get a lot of things for free — and who doesn’t like free stuff?
For a more complete introduction to semantic code, see Paul Boag’s brief blog post on the topic.
Semantics gives you many benefits:
Default styles For example, using a headline tag <h1> for the title of your document will make it stand out from the rest of the document’s contents, much like a headline would.
Accessible content Your code will be accessible by default, meaning it will work with screen readers and will be easier to navigate with a keyboard.
SEO Company benefits Semantic markup is easier for a machine to read, which makes it more accessible to search engines.
Performance benefits Clean HTML is the foundation for a high-performing site. And clean HTML will also likely lead to cleaner CSS which means less code overall, making your site or app faster.
Note: For a more in-depth look into semantics and HTML, Heydon Pickering wrote “Structural Semantics: The Importance Of HTML5 Sectioning Elements” which I highly recommend reading.
Engineering Principles And Paradigms: The Basics
Abstraction
There are tons of applications, tangents, and levels we could explore over the concept of abstraction — too many for this article which is intended to give you a brief introduction into concepts so that you are aware of them as you continue to learn.
Abstraction is a foundational engineering paradigm with a wide variety of applications — for the purposes of this article, abstraction is separating form from function. We’ll apply this in three areas: tokens, components, and the Don’t Repeat Yourself principle.
Tokens
If you’ve used a modern design tool for any length of time, you’ve probably encountered the idea of a token. Even Photoshop and Illustrator now have this idea of shared styles in a centralized library — instead of hard-coding values into a design, you use a token. If you’re familiar with the concept of CSS or SASS variables, you’re already familiar with tokens.
One layer of abstraction with tokens is to assign a name to a color — for example, $blue-00 can be mapped to a hex value (or an HSL value, or whatever you want) — let’s say #0B5FFF. Now, instead of using the hex value in your stylesheets, you use the token value — that way if you decide that blue-00 is actually #0B36CE, then you only have to change it in a single place. This is a nice concept.
Tokens for colors in the Lexicon Alerts component helps keep things DRY. (Large preview)
If you take this same paradigm of abstraction and go a layer further, you can token-ception — and assign a variable to a functional value. This is particularly useful if you have a robust system and want to have different themes within the system. A functional example of this would be assigning a variable like $primary-color and map that to $blue-00 — so now you can create markup and instead of referencing blue, you’re referencing a functional variable. If you ever want to use the same markup, but with a different style (theme), then you only need to map $primary-color to a new color, and your markup doesn’t need to change at all! Magic!
Components
In the past 3-4 years, the idea of components and componentization has become more relevant and accessible to designers. The concept of symbols (pioneered by Macromedia/Adobe Fireworks, later expanded by Sketch, and then taken to the next level by Figma and Framer), is now more widely available in most design tools (Adobe XD, InVision Studio, Webflow, and many others). Componentization, even more than tokens, can separate the form of something from the function of it — which helps to improve both the form and the function.
One of the more notable early examples is Nicole Sullivan’s media object component. At first glance you might not realize that a whole page is essentially composed of a single component, rendered in different ways. In this way, we can re-use the same markup (form), modifying it slightly by passing in options or parameters, and styles — and have it provide a variety of value (function).
Don’t Repeat Yourself
DRY (Don’t Repeat Yourself) is one of my favorite principles — creating things that can be reused over and over is one of the small victories you can have when coding.
While you often can’t (and arguably shouldn’t) strive to apply the DRY principle 100% of the time, every time — it’s at least beneficial to be aware of this so that as you’re working, you can consider how you can make whatever you’re working on more reusable.
A note on the Rule of Three: A corollary to the DRY principle is the rule of three — essentially, once you re-use (copy/paste) something three times, you should rewrite it into a reusable component. Like the Pirate’s Code, it’s more of a guideline than a hard and fast rule, and can vary from component to component and from project to project.
CSS And Styling Methodologies: Atomic vs. BEM
There are a lot of different ways to organize and write CSS code — Atomic and BEM are only two of the many that you’re likely to come across. You don’t have to “pick” a single one, nor do you have to follow them exactly. Most of the teams I’ve worked with usually have their own unique blend, based on the project or technology. It is helpful to be familiar with them so that over time, you can learn which approach to take depending on the situation.
All of these approaches go beyond “just” CSS and styling, and can often influence the tooling you use, the way you organize your files, and potentially the markup.
Atomic CSS
Not to be confused with Atomic Web Design — atomic (perhaps more aptly referred to as “functional”) CSS, is a methodology that essentially favors using small, single-purpose classes to define visual functions. A few notable libraries:
Atomic CSS by Steve Carlson;
Tachyons by Adam Morse;
Tailwind CSS by Adam Wathan.
What I like about this method is that it allows you to quickly style and theme things — one of the biggest drawbacks is that your markup can get pretty cluttered, pretty fast.
Check John Polacek’s article on CSS-tricks for a full introduction to Atomic CSS.
BEM
The BEM philosophy is a great precursor to a lot of the modern JavaScript frameworks like Angular, React, and Vue.
“BEM (Block, Element, Modifier) is a component-based approach to web development.”
— BEM: Quick Start
Basically, everything that can be reused is a block. Blocks are comprised of elements, something that can’t be used outside of a block, and potentially other blocks. Modifiers are things that describe the status of something or the way it looks or behaves.
Personally, I like the theory and philosophy of BEM. What I do not like is the way that things are named. Way too many underscores, hyphens, and it can feel unnecessarily repetitive (.menu, .menu__item, etc).
Recommended reading: BEM For Beginners written by Inna Belaya
Thank U, Next(.js)
After you have sufficiently mastered these topics, don’t worry, there is still plenty to learn. Some suggestions:
Functional and object-oriented programming We touched on it lightly, but there’s plenty more to learn beyond CSS.
Higher-level languages and frameworks Typescript, Ruby, React, Vue are the next things you’ll tackle once you have a strong grasp of HTML and CSS.
Querying languages and using data Learning about GraphQL, MySQL, REST APIs will take your coding ability to the next level.
Conclusion: Designers Who Code != Software Engineers
Hopefully, this article has shown you that learning to code isn’t as difficult as you may have previously thought. It can take a lot of time, but the amount of resources available on the internet is astounding, and they’re not decreasing — quite the opposite!
One significant point that I want to emphasize is that “coding” is not the same as “software engineering” — being able to fork a repo and copy/paste in code from Stack Overflow can get you a long way, and while most, if not all, software engineers that I know have done that — you must use your new-found skills with wisdom and humility. For everything you can now access with some engineering prowess, there is that much more that you don’t know. While you may think that a feature or style is easy to accomplish because — “Hey, I got it working in devtools!” or “I made it work in Codepen.” — there are many engineering processes, dependencies, and methods that you probably don’t know that you don’t know.
All of that is to say — don’t forget that we are still designers. Our primary function is to add business value through the lens of understanding customer or user problems and synthesizing them with our knowledge of design patterns, methods, and processes. Yes, being a “designer who writes code” can be very useful and will expand your ability to add this value — but we still need to let engineers make the engineering decisions.
Anything Amiss?
There’s a good chance that something in this post was obscure, obtuse, and/or obsolete and I’d love the opportunity to make it better! Please leave a comment below, DM me, or @mention me on Twitter so I can improve.
Further Reading
Coding Bootcamps vs. Computer Science Degrees: What Employers Want and Other Perspectives (Kyle Thayer)
How To Start Using Sketch And Framer X (by Martina Pérez, Smashing Magazine)
Introduction To Linux Commands (by Paul Tero, Smashing Magazine)
Become A Command-Line Power User With Oh My ZSH And Z (by Wes Bos, Smashing Magazine)
A list of the common cmd.exe and Unix commands that you can use in PowerShell (Microsoft Docs)
regular-expressions.info (by Jan Goyvaerts)
regexone.com (learn regular expressions with simple interactive exercises)
Batch Resizing Using Command Line and ImageMagick (by Vlad Gerasimov, Smashing Magazine)
Shortcuts And Tips For Improving Your Productivity With Sublime Text (by Jai Pandya, Smashing Magazine)
Visual Studio Code Can Do That? (by Burke Holland, Smashing Magazine)
Why version history is not version control (by Josh Brewer)
Modern Version Control With Git (by Tobias Günther, Smashing Magazine)
“Hello World” (a GitHub step-by-step guide)
How to Install Node.js and NPM on a Mac (by Dave McFarland)
How to Install Node.js and NPM on Windows (by Dejan Tucakov)
Why I Create Atomic Commits In Git (by Clarice Bouwer)
How to Write a Git Commit Message (by Chris Breams)
Semantic code: What? Why? How? (by Paul Boag)
Structural Semantics: The Importance Of HTML5 Sectioning Elements (by Heydon Pickering, Smashing Magazine)
Designing for Performance: Chapter 4. Optimizing Markup and Styles (by Lara C. Hogan, O’Reilly Media)
The media object saves hundreds of lines of code (by Nicole Sullivan)
Let’s Define Exactly What Atomic CSS is (by John Polacek, CSS Tricks)
BEM For Beginners: Why You Need BEM (by Inna Belaya, Smashing Magazine)
Javascript for Cats: An Introduction for New Programmers
Roadmap.sh: Frontend Developer
Functional Programming vs OOPS : Explain Like I’m Five
Why, How, and When to Use Semantic HTML and ARIA (by Adam Silver, CSS Tricks)
HTML Semantics (an eBook by Smashing Magazine)
The Fundamentals – HTML + CSS (on Syntax.fm)
Cascade and inheritance (westciv.com)
CSS Tricks (by Chris Coyier)
Getting Started With CSS Layout (by Rachel Andrew, Smashing Magazine)
Introduction to HTML (MDN web docs)
CSS first steps (MDN web docs)
JavaScript First Steps (MDN web docs)
24 Ways (by Drew McLellan)
(mb, yk, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/how-should-designers-learn-to-code-git-html-css-engineering-principles-part-2/
0 notes