#the unnatural selector
Explore tagged Tumblr posts
deepdreamnights · 1 year ago
Text
Tumblr media
Classic Comic Villains: The Unnatural Selector
Pinup scan from TyrannoMax #21, Cocytus Comics, 1977
Born in a lost corner of the cosmos, the cosmic demigod known as the Unnatural Selector has but one driving concern: life and its propagation. For millions of years he has wandered the cosmos, transplanting populations and terraforming worlds to seed life in new corners of space and in his time-accelerated Genesis Engines, where he can study evolution in all its forms.
Part of this study is the "Tournament of Life," a cruel experiment where champions of a given world face a series of deadly trials and battles against disasters and the Selector's prized monstrosities. The biospheres of those that fail are scoured in a mass extinction event.
The Unnatural Selector was a regular foe of TyrannoMax, and showed up in several Cocytus Comics titles including Johannes Factotum: Professor of Practically Everything, True Life Tales of Science Fiction, and Barton's Mix-Ups!
-
A little sneak peek of a panel from an upcoming multi-page TyrannoMax comic I'm working on, reworked into a pinup. Bonus points if you can guess what the Selector is an anthro of (its not an animal, exactly.)
The Selector is a heavy edit, the main components of which are here.
As with most of my Tyrannomax stuff, the images are first composited, then reverted back to B&W lines, edited and inked, before being recolored from scratch.
Tumblr media Tumblr media Tumblr media Tumblr media
I accidentally saved over the unedited background image, and Dall-E 3 is bad at archival.
I probably won't be going into this kind of detail on my process for the full pages, because this here is just one panel.
The Selector is a character concept I've had for awhile, this is just the first time I solidified a visual concept. A mysterious space god with a taste for trials and tournaments is a classic comic villain archetype, after all, and the evolution-obsessed villain fits nicely with dinosaur characters.
Might do a whole Coctyus Character Catalogue entry for him if the druthers hit me.
Prompts:
A cobra standing on a chunk of rock floating in in the cosmic void, it is reared up, threatening, facing toward the viewer, comic panel by jack kirby and john byrne, 1977, angled view
a cosmic nebula in the vague shape of a DNA double helix, comic inks by jack kirby, 1968, trippy, in the style of syd mead
A robed creature stands, one hand outstretched, palm up, toward the camera, he has a lion's head with a mane made of green flames, wearing cosmic-tech gauntlets, imposing, mysterious, foreboding, standing on a rock floating in the starry void, wide stance, standing tall, comic panel by jack kirby and wally wood, 1968, in the style of 1960s marvel comics, eerie cosmic coloration, wide angle, full body. The mood is dramatic.
46 notes · View notes
therobotmonster · 2 years ago
Text
Tumblr media
Early stages, but I'm turning one of my AI "This Toy Does not Exist" creations into a real sculpt. Might do the central shell as hard geometry rather than clay-sculpting it, and the final version will of course be rather different from the rough render, and not just from an actual sculpt needing a back.
I may take some inspiration from my first attempt at remastering my LookingGlass generations with midjourney, but I prefer the cuter, more retro version, so it might not be much.
I am going to use the name I came up with for the latter version, however, which is ZelShock.
Tumblr media
I have a vague idea of a faction of AI-inspired sculpts in my FuryZone-A concept. The idea being that they were created by the Unnatural Selector based on data from thousands of years of competitors. They're quest-givers, shopkeeps, guards, etc. Basically video game NPCs.
47 notes · View notes
dorleco · 8 months ago
Text
Throttle-By-Wire
March 25, 2024
 by dorleco
with no comment
 Autonomous Vehicle Technology
Edit
Tumblr media
Understanding Throttle-By-Wire
The sophisticated electronic control technology known as throttle-by-wire (TBW) is set up in numerous contemporary buses, exchanges, motorbikes, and other motorized vehicles. In discrepancy to conventional mechanical throttle systems, which depend on a factual physical connection between the throttle body and the accelerator pedal, TBW backup’s electronic detectors, and selectors for this mechanical liaison.
Unnaturally, the TBW workshop converts the accelerator pedal input from the motorist into electrical impulses, which are later reused by a vehicle control unit (VCU). To calculate the proper throttle position based on variables including machine speed, cargo, and driving circumstances, the VCU interacts with several detectors located throughout the auto.
One of the technologies that has gained wide acceptance within the automotive sector is throttle-by-line. Trustability in enterprises is being raised by mechanical element wear and tear, gash, inefficiency, and growing complexity.
Automakers have started replacing crucial essential rudiments in the traditional vehicle, including the thickets, steering, throttle control, and shifter, with electromechanical or indeed entirely electronic factors. We concentrate on” throttle by line” technology in this essay. When compared to an electronically controlled steering or retardation system, this is one of the safer designs to use. This system, also called electronic throttle control (ETC), takes the place of the mechanical link that formerly connected the machine’s throttle stopcock and pedal.
Rather, there are two detectors along with a control unit.
The throttle pedal position detector is the main detector used, and its job is to measure how important it is when the motorist depresses the pedal. This detector may be a resistive position detector or a pressure detector. Because they’re less susceptible to noise, pressure detectors are generally used over resistive position detectors. The vehicle control unit (VCU) receives the gathered data, computes the necessary energy or current, and also sends this information to the Electronic Throttle Control (ETC) system. The control unit also controls how important the throttle stopcock is in response to the motorist’s requests for acceleration.
There is also another detector that keeps an eye on the throttle opening and feeds back information to the regulator so that commands to open the throttle stopcock are accurate. The pinion gear, intermediate gear, and sector gear are responsible for controlling the drop from the motor actuation angle to the throttle opening angle. This regulator is generally included within the VCU, and the CAN machine protocol is used to simplify communication between factors.
Advantages compared to mechanical control
By integrating numerous safety measures, an electronic throttle regulator can greatly ameliorate riding dynamics. Electronic throttle control systems can do more than just dissect accelerator pedal impulses, unlike mechanical systems that can modify the throttle based on motorist input.
To help correct motorist crimes and save vehicle stability, they also cover inputs from retarding movements, steering responses, and slipping and gripping the bus. The smooth integration of electronically controlled systems with other vehicle systems is one of the main benefits of these systems over their mechanical counterparts. The electronic throttle control (ETC) is an illustration of this point.
Electronic throttle control makes it easier for automakers to include other systems in the design of the auto, similar to machine operation, traction control, electronic stability control, and voyage control.
Crucial safety features in the electronic throttle regulator
Several fail-safe features are included in the electronic throttle control system, making it incredibly robust and reliable for use in any kind of vehicle. Generally, when the system notices something strange in the electronic signals that are being transferred back and forth between different corridors, it closes the throttle and keeps the machine or motor running. This safety measure is essential for avoiding unintentional acceleration, which may result in disastrous mishaps. The detector arrangement also has numerous redundancies, with one or more backup detectors allocated to each position. This ensures that the safe operation of the vehicle isn’t compromised in the event of a single detector malfunction.
Likewise, there’s concern about the possibility of mobile phone signals snooping into electronic control and communication systems. It’s essential to duly insulate the distribution of signal frequency for colorful purposes to reduce this threat. In addition, an Electronic Throttle Control (ETC) system adds a boscage-throttle override function that can be acclimated according to the driving mode, which further improves vehicle safety. For illustration, when both are engaged coincidentally during normal driving conditions on paved roads, the system gives preference to the boscage instruction.
But specialist modes like drag and drift bear certain conditions for throttle and boscage commands. Both commands may be inversely important in drift mode, whereas the throttle command takes priority in drag mode. When the motorist applies pressure to the thickets during an unintentional acceleration, this becomes further pivotal. Creating electronic connections between mechanical corridors makes it easier to put an override protocol in place, which improves productivity and guarantees dependable and responsive control.
The throttle position detector is an essential element of unrestricted-circle control, and its responsibility is increased by several fail-safe measures. Numerous original outfit manufacturers (OEMs) have formerly included this technology in their buses, and there’s presently a lot of exploration being done to ameliorate the safety and responsiveness of electronic throttle control.
Future Trends and Innovations in Throttle-By-Wire Technology
As technology advances, throttle-by-wire systems are expected to evolve with new features and integrations.
Integration with Autonomous Driving Systems
Throttle-by-wire technology plays a key role in autonomous driving by facilitating seamless vehicle control.
Sustainability and Environmental Impact
Efforts to improve fuel efficiency and reduce emissions are driving innovations in throttle-by-wire technology.
potential for Customization and Performance Tuning
Enthusiasts can explore tuning options to modify throttle-by-wire systems for enhanced performance, always considering safety implications.
Summary
Throttle-by-Wire technology has revolutionized the automotive industry, offering precise control and enhanced driving experiences. Understanding its functions, safety measures, maintenance procedures, and future developments is crucial for drivers and enthusiasts alike.
Our main goal at Dorleco is to advance control sense by exercising a tackle setup that consists of a throttle pedal, a control module, and detectors that are used to describe the position of the pedal as well as the opening of the throttle. We use feed-forward and feedback control methods in tandem to efficiently handle faults and produce extremely accurate labor.
FAQs
1. Is throttle-by-wire only found in modern vehicles?
Throttle-by-Wire technology is predominantly used in newer vehicles, but some older models may also have implemented this system.
2. Can throttle-by-wire systems be modified for increased performance?
While it is possible to tune throttle-by-wire systems for enhanced performance, it is recommended to consult with professionals to avoid compromising safety and reliability.
3. Are there any potential drawbacks to using throttle-by-wire technology?
Like any electronic system, throttle-by-wire technology can be susceptible to malfunctions or failures, which is why regular maintenance and proper troubleshooting are essential.
0 notes
avnid · 2 years ago
Text
Innovations that could shape the future of rail travel
What will the future of public transport look like? The major systems being planned moment, similar as the UK’s HS2 high- speed rail network, are n’t unnaturally different to what’s been erected over the last 30 times. Rail wagons are largely confined to niche systems in China. Hyperloop remains an unproven hint in Elon Musk and Richard Branson’s eyes.
The likes of HS2 can deliver considerable advancements in network capacity but through incremental changes in conventional designs, from tracks to train bugbears. Yet while the rail sector is warily slow at introducing new technologies due to the long time it takes to plan and make new lines and vehicles, there are a number of specialized inventions in development that, if espoused, could make the trains of hereafter both briskly and safer.
1. Mechatronic switches Switch or points failure is responsible for nearly 20 of the total detention endured by passengers on UK railroads. This occurs when there’s a problem with the medium that enables trains to move from one track to another at a junction. Despite the frequence of the problem, the technology used in these mechanisms has hardly changed since the first design nearly 200 times agone.
But a cooperative exploration design has explored radical volition technologies. For illustration, one innovative design called Repoint has three independent motors that can lift and shift the rails, counting on graveness to lock them back into place and furnishing redundancy in case one or two of the motors fail.
This contrasts with being switches that slide the rails sideways and can get wedged interior, so have expensive fresh layers of detectors and protocols to alleviate the threat. The coming- generation “ mechatronic ” switches aim to work briskly, ameliorate ease of conservation and reduce the threat of failure through their backup motors.
2. Active suspense Conventional suspense systems circumscribe a train’s speed as it travels on twisted track, limiting how numerous trains you can run on a route. These suspense systems basically work like large springs, automatically changing the distance between the bus and the carriage as the train travels over uneven ground to make the lift feel smoother. Active Suspense systems are now being developed which introduce new detectors, selectors and regulators to more precisely alter the distance between bus and carriage. This offers advanced lift comfort and enables the train to travel round angles with lesser speed and stability. This can be combined with systems to laboriously cock the train as it rounds the corner, offering increased benefits.
3. laboriously steering In a conventional wheelset, both bus are interlocked and connected with a fixed axle, precluding any relative gyration between them. When a train enters a wind or a divergent route at a junction, it must decelerate down to insure the bus are guided over the track and to help unwanted vibration of the bus.
road experimenters are now developing singly rotating bus to include a separate actuation medium that can help steer the wheelsets on the twisted route.
4. Active pantograph High- speed electric trains need to maintain good contact with the overhead powerlines via the pantograph that sits on top of the vehicle. On the UK mainline, pantograph height generally varies by about 2m to secure the connection in different areas similar as in coverts, position crossings and islands. Experimenters are starting to develop active pantographs that have their height and the convinced vibration involved in power transfer controlled by an selector. These active pantographs can ameliorate the contact force and exclude contact loss problems due to rapid-fire changes in the overhead line height and other environmental disturbances( similar as wind).
5. Virtual coupling The number of trains that can run on a route( and so the capacity of the line) depends in part on the signalling system. utmost railroads use a fixed- block system, which divides the tracks into sections. Only one train at a time can be in each section so there has to be a significant gap between the trains.
But some railroads are now starting to use a moving- block signalling system, which determines the necessary gap between trains grounded on the distance it takes for them to come to a stop in an exigency. But this gap could be reduced further if it’s grounded on real time information about what the train in front is doing and where it'll stop if it hits the thickets.
This is known as “ virtual coupling ” and involves the two trains communicating information about their changing speed and boscage exertion so that they can drop or increase the gap between them to the minimal necessary. With shorter gaps between them, further trains could run safely on a route, adding overall network capacity.
0 notes
sweet-curried-powder · 4 years ago
Text
so I joined a sk8 server recently, and @lo9lziz shared a headcanon involving the sk8 boys doing karaoke, and even though i hadn't been in said server for very long and wasn't very active, i felt like i just HAD to write this fic. i just had to. so here you go dudes
here's the ao3 link if anyone's interested in that!
~~
The karaoke place was loud.
There were a lot of people in the lobby that night, their ages ranging around about late teens to early to mid-twenties. Some of them were squealing and shouting, others were just talking loudly. There was music playing on some sort of speaker that didn’t seem visible to the eyes of the public, some sort of loud, denpa music playing loudly.
It was all way too much, so much noise. It made Langa’s brain hurt, with the loud noises echoing through his skull. He gripped his arms tightly, his fingernails digging into his pale skin.
“Langa?”
The Canadian felt a familiar hand on his shoulder. Reki.
“Are you okay? Is it too loud?” Reki’s voice was reassuring, with a caring tone, that reminded Langa of his mother, yet was still his best friend and crush. When Langa nodded, Reki dug in his hoodie pockets, putting some earbuds in his friend’s ears. Music started playing through the buds, one of the songs that Reki would play while they were skating. It might not be relaxing to others, but it was to Langa.
“Better?” Reki asked, taking Langa’s hands in his own, smiling as Langa nodded. “Good. I just don’t want you to be uncomfortable.”
Langa mumbled a thank you in English before looking around. “I didn’t know there were places like this here in Japan.”
“Oh yeah, there’s tons of karaoke joints here,” Miya chimed in, glancing up from a sort of menu with bright neon colors on it. “This particular place is part of some karaoke lounge chain. Karaoke is a really big deal here for some reason.”
Langa nodded, looking around the lobby. There were lots of neon colors and bright lights, and the carpeting looked like it belonged in an 80s style roller rink.
“Okay kids, does anyone want any drinks before we go up to the room?” Cherry called out, adjusting his glasses slightly. “Feel free to get any drink you want, provided it doesn’t have alcohol.”
“I’m cool with whatever,” Miya mumbled, staring at a poster on the wall.
“I’ll have a cola!” Reki shouted, grinning widely.
“I’ll have what Reki’s getting.” Langa held on tightly to Reki’s hand, which felt warm and comforting.
“Ewww, get a room you two.” Miya teased, smirking as Reki shot a look at the younger boy.
“We are. The karaoke room.” Langa shifted his weight from side to side, still holding Reki’s hand.
“You’re fucking with me, aren’t you.”
“Language, Miya,” Cherry scolded, handing the boys their drinks. “C’mon. We have the room on the top floor for the next hour and a half.”
The earbuds came off once Langa was in the elevator.
~~
The room had plenty of open space, most likely because Cherry didn’t want the gorilla (Joe) to take up a tiny ass karaoke room. There were couches and some tables, and some sort of phone that looked like a common landline on the wall, with a laminated copy of the menu from downstairs hanging on the wall. There were several microphones on the table, which was near a small yet decently sized stage in the front of the room, next to a large TV on the wall. Langa noticed some sort of tablet-like object on a table, and picked it up, staring at the screen.
“How does this…” Langa mumbled in his native language, tapping on the screen. He didn’t even know what did what, he was just pushing buttons, since everything was in Japanese, and reading it was in no way his strong suit.
“Hold on, bud. I’ll show you the ropes.” He scooted over to Langa, pointing out the buttons and translating them for the Canadian. “This button shows you what songs are most popular, and if you click here, you can filter them by language and genre. And this button shows you all the songs they have in that specific language.”
“Wow, you’re really familiar with this, Papa,” Miya noted, sipping his drink.
“Of course he does. The thirsty gorilla probably drags girls here all the time,” Cherry muttered, shaking his head as he sipped his cherry cocktail. Of course, this spiraled into a fight, which proceeded as normal, aside from the fact that Cherry was already slightly tipsy.
“Should we do something?” Reki asked. “I mean, I’m used to them fighting, but I don’t want us getting kicked out…”
“Eh, I’m pretty sure they’ll settle things after—”
“Reki. Miya.”
The sudden, unnatural tone change in Langa’s voice caused the both of them to turn their heads. Langa showed the screen to them, where bright as day, the song Sk8r Boi was highlighted.
“Oh my God, they have it on here!” Reki’s smile was so wide, you would have thought his face was going to split in half. “Miya, c’mon! We gotta sing it!”
“You think I was gonna pass it down?” Miya grabbed a microphone and bounced onto the stage. Langa queued up the song, going onto the stage next to Reki, the opening notes of the song beginning to play. Joe and Cherry stopped fighting, glancing at the small stage. Reki was doing a dorky little air guitar riff, Langa awkwardly trying to copy him while Miya bounced on his toes.
“Oh God, not this song again,” Cherry groaned, rubbing his temples. “I was hoping they didn’t have it here… fuck, are we going to be hearing this for the next hour?”
“God, I hope not.” The muscled man looked at his kids. “Don’t tell Reki I said this just now, but his singing’s kind of awful.”
“I mean, we’ve heard worse,” Cherry sighed, tilting his head back and chugging the rest of his drink. “Remember our freshman year of college? We went to a party in one of the bigger karaoke bars, I think somewhere in Tokyo, and we had a singing contest?”
“Do I? Man, that guy sounded horrible. I wanted to throw up five seconds in.”
Cherry chuckled, leaning back. “That was fun. We were fun.”
“Hey! I’m still fun!” Joe shoved Cherry playfully.
“Yeah. But we have kids now. And two out of three of them are dumber than you.”
Joe decided to let that one go for now, glancing back at the boys.
“I’M WITH THE SKATER BOY!”
“I SAID ‘SEE YOU LATER, BOY’!”
“I’LL BE BACKSTAGE AFTER THE SHOW!”
The three of them were dancing around wildly as they sang, bumping into each other and nearly falling off the stage. Langa clearly had two left feet, his dancing making it look like he was having some kind of seizure, while Reki was fairly coordinated in his movements, though it clearly looked like he was trying to match up with Langa, even somewhat.
Miya sat down on the stage after the song was over, panting softly from the intense singing and dancing. Langa took the little song selector thing, swiping through the songs, looking for something to sing.
“Let’s join the kids.” Cherry announced to Joe, standing up and stumbling slightly, tugging Joe’s giant arms, trying to pull his childhood best friend to his feet. “C’mon, you big assed gorilla.”
“You’re drunk off your ass, aren’t you Karou?” Joe stood up, trying to support Cherry as best as he could.
“I’m just tipsy. And I can be fun again,” Cherry pouted, pulling Joe to the boys. “Boys! We wanna sing.”
“...you’re drunk, mom,” Langa commented.
“A brilliant observation, snow slime,” Miya scoffed.
“C’mon, what’re we singing?” Cherry smirked, grabbing a microphone and flipping it in his hand.
“I was thinking something like—”
“NEVER GONNA GIVE YOU UP!” Reki shouted, loud enough to make the room shake, maybe. Langa jumped slightly, Miya returning the shit-eating grin that took up almost all of Reki’s face.
“I’ll sit this one out,” Miya giggled. “I wanna record this.” He pulled his phone out, hitting record as Langa searched up the well-known rickroll and pressed play. The familiar tune played through the speakers, and nobody looked at the TV. They knew the words by heart, thanks to a certain snow-haired teenage boy.
“WE’RE NO STRANGERS TO LOOOOOOOOOOOOOOOOOOOOOOOOVE, YOU KNOW THE RULES, AND SO DO IIIIIIIIIIIIIIIIIIIIIIIIIIIIII!”
It was pure chaos on the stage. Langa was doing his weird seizure-like dancing, Joe was taking up a good portion of the stage, and Cherry and Reki were tied for the loudest voice in the room, though the latter was singing horribly, and the former had no shame, being drunk.
Miya was trying his hardest to not laugh his cat whispering ass off. This was going to be pure gold when he showed this to Cherry the next morning, especially if the calligrapher didn’t remember jack shit.
23 notes · View notes
whump-tr0pes · 4 years ago
Text
Honor Bound/The Collection Box AU collab - part 1
Omg folks, @whump-it is letting me use her darling boy Callum for this AU. We had this idea to make a short collab featuring Isaac, Sam, and Callum as an adult. If you haven’t read her Collection Box series, it’s a box boy AU where people can donate themselves to an Appointed Person where they can then be Selected by anyone who wants them. Anyone. You have no more rights, no protection, no documentation. 
Callum donated himself when he was around 20. He was selected by some dick who made Callum call him Master Hayden, and then proceeded to torture him for 3 years before Rory (Callum’s Appointed Person and soulmate) was finally able to get him back. Years later Callum is a doctor, and uses his training and authority to help other Donations.
In this universe, Sam themself is a Donation. Isaac (and Vera, mentioned) are a duo that goes around saving Donations from abusive Selectors. It just so happens that Sam may not have been of age when they Donated themself... or were Donated by someone else. Now they’re injured, confused, and just want to be back with their Selector... or they might pay the price. 
Cw: underage whump (not shown, but talked about and aftermath shown)
~
Isaac panted as he carried the young kid through the emergency room doors. Kid. They had to be eighteen at the most. And from the marks on their body, Isaac could tell the kid had been in that basement for a long time.
Years. This could have been years, and we failed to save them.
The kid whimpered softly and pulled away from Isaac’s grip. “Please,” they whispered. “N-no…”
“Shh,” Isaac murmured to them as he carried them to the front desk. The nurse’s eyes went wide and he shot up out of his chair when he saw the kid lying limp in Isaac’s arms. A moment later, the nurse’s eyes narrowed. His mouth pressed into a thin line.
“We don’t treat Donations here,” the nurse said with a hint of disgust in his voice. His nose wrinkled at the smell that permeated the kid’s clothes, the smell of sickness and damp and blood.
Isaac’s lip curled. “They’re not a, a fucking, Donation,” he hissed. “Do they look like they’re of age? Do they look like they’re old enough to donate?”
The nurse glanced at the kid, his eyes lingering for a moment longer on the marks on their throat, their arm held tight against their chest, twisted at an unnatural angle. The tears and grime that stained their face and matted their hair. The way they cried piteously for their Selector.
“Please,” the kid sobbed. “Please, please, take me back. He’ll… please take me back, I can’t be gone for this long. He… he’s going to, to punish me, and I can’t, I can’t, I c-can’t… please…”
Isaac’s arms ached from holding the kid. Vera was still in the car in the parking lot, keeping it running. Keeping an eye out. Ready to drive away without Isaac if the Programme showed up. That was the risk he was willing to take, if it meant this fucking kid got the care they needed to survive.
“We can’t treat them,” the nurse said, his voice shaking. He held out his hands, half-beseeching, half-guiding Isaac towards the doors. “I’m sorry. You’ll just have to—”
“Is Dr. Callum here today?” Isaac gasped, leaning in closer. “Please. Is he here? We were told that… um…” He pulled the kid close against his chest as they writhed in his grip, mewling softly. “Hey, shh, you’re alright,” he soothed. He turned back to the nurse. “Please. Please. We were told he treats, um, victims of the Programme. Please. This kid is gonna die without medical attention and I know we won’t get it anywhere else…”
The nurse sniffed. “Dr. Callum is off today,” he said unsteadily. He gestured towards the door with a glare at the kid in Isaac’s arms.
“No, please,” Isaac whimpered. “Look at them. Look. They’re not old enough to donate. This was… this was torture, of a kid. Can’t you see that? Can’t you just…? Please…?”
The nurse slowly shook his head and set his jaw. “Sorry,” he said through his teeth. “I can’t. I—”
“Brian?” came a voice to Isaac’s right. Isaac’s head snapped up. The voice belonged to a tall man in green scrubs and curly, almost-gold hair that he had combed away from his face. He approached Isaac with his hands out, his eyes fixed on the kid. “What’s this?”
“D-Doctor—” The nurse cut himself off and pressed his lips together. “Um. Doctor. I, um… t-told him we couldn’t—”
“Please,” Isaac whimpered, on the edge of desperation. “Please, are you… are you Dr. Callum? Please, I… they…” Isaac lifted the kid in his arms, and they cried out raggedly. “Please. We… we just dragged them out of a fucking basement. They’re not a Donation. They’re too fucking young. They—”
“Brian,” the doctor interrupted. “Take room three off the board and open up a chart.”
The nurse ducked his head and shot the kid a look of disgust. “Yes, sir,” the nurse muttered.
The doctor guided Isaac back through the doors of the emergency room and turned a corner. “In here,” the doctor said softly.
Isaac laid the kid down as gently as he could on the hospital bed. They wailed and clutched at his shirt.
“Please!” they screamed. “Please take me back! If I’m gone and he finds out he’ll… please, please, I have to be good, I have to be good!”
The doctor took a step back, his eyes sliding shut for a moment. He dragged his hand through his hair, rubbing at a spot on the right side of his head. He drew in a deep breath and blew it out. He pulled the curtain shut and got to work.
“Are you Dr. Callum?” Isaac asked desperately. “We were told to ask for you. That you… um…” Isaac trailed off as the doctor stepped close to him and Isaac noticed a ring of scars around the doctor’s neck. Exactly like the ones the kid had. “Oh,” he said softly.
“Yes,” the doctor said steadily, his voice deep and even. His eyes wrinkled at the corners, and they carried a piercing heaviness that made Isaac feel completely exposed. Isaac shifted uncomfortably. “I’m Dr. Callum,” the doctor said. “You heard right, I do treat Programme victims here.”
“So you’ll—”
“Yes.” Dr. Callum quickly stripped the kid of their clothes. Isaac turned away at the sight of the bruises that littered their chest and abdomen.
“Oh, god,” Isaac whimpered. He leaned against the cabinet, feeling sick.
“Is their, umm, S-Selector still alive?” Dr. Callum said.
Isaac noticed the doctor’s hands shaking. Then he noticed the twin scars on the backs of the doctor’s hands, and shuddered. “Y-yes,” he said with a shiver. I couldn’t get to him fast enough, and the fucker got away.
“I’ll need the address,” Dr. Callum said, his voice stronger as he covered the kid with a blanket.
Isaac’s brow furrowed. “Why?”
“Because,” Dr. Callum said heavily. “I have a friend to whom I need to make a call.”
~
just ask to be tagged! this won’t be a long one, but it’ll be fun! 
@pepperonyscience
54 notes · View notes
randomts2finds · 6 years ago
Text
Resources
List of the custom content that I use in my game!
Face Templates:
Default: Butterflies and Hurricanes
Non-defaults: Dominiquex, Drew-cricket, Voleste, Revolvertrooper, Figs
Default skin:
Leh’s new skinset
Vampire default by Maranatah
Default eyes:
Easy/Lucky/Free by Pithy (Blue: 5, Brown: 4, Green: 2, Gray: 4, Light blue: 4) I use the custom colors too + add-ons by myself
Alien eyes: Eagle on a Pole by Kinemortophobia
Pet eyes by Moonlitowls
Other defaults:
Clothes variously from the Default Database
Eyebrows by Poppet
Floor edge by Feenwald
Neighborhood terrain by CuriousB
Neighborhood trees by Silent-Dragon
Roof trim by Phaenoh
Hair:
Chocolatemilkbag
Hemfbg
Letthemplaysims
Simgaroop
Skoogy LJ - Simblr
Voleste
Me :)
- Unnatural hair:
Alienpod
Berrynooboos
Hemfbg
Lesyasun
Nyren
Olivemuenda
Sookie
Taylors-simblr
Clothes:
Amaryll
Anna
Bunhead
Dustfinger
Eltanin
Fakepeeps7
Fanseelamb
Kayleigh
Keoni
Letthemplaysims
Migamoo
Misomoso-no
Needlecream
Nekosayuri
Nyren
Radio Gnome Invisible
Rented-Space
Sanneke94
Sentate
Skell
Trapping (Links here), new stuff here
TSLD
Veranka
WeBluePeace
Yandereplum
Yuichen
and a bunch of others
Makeup:
AlfredAskew
Bruno
Jesstheex
Lilith
Skell
Other Bodyshop Stuff:
Eyebrows by Trapping
Eyeglasses by FreezerBunny
Eyeglasses by HC
Eyeglasses by Rented-Space
Eyeglasses by Tamo
Facial Hair by Poppet
Facial Hair by Skoogy
Lots of sliders
Build & Buy mode:
Amovitamsim
Buggybooz
Crisps&Kerosene
Hafiseazale Dreamwidth - Simblr
Honeywell
HugeLunatic - Sims2Artists
Leefish - MTS
Limonaire
Mary-Lou
Misty-Fluff
MsBarrows
Mutske
Nekosayuri
Tbudgett
Veranka
Object recolors / walls:
Anna
Biffy
Hafiseazale
Lesyasun
Lipe2k
Luasims
Kahlena
Michelle
Poppet
SelenaQ13 LJ - Simblr
Shasta
Vimpse
Other Stuff:
Body Hair Overlay and Tattoos fixed by Rikkulidea
Castaway Stories Build Bundle
Life Stories Build Bundle
Neighborhood Deco by Criquette (also on tumblr)
Neighborhood Deco by CuriousB
Neighborhood Deco by Delonariel
Neighborhood Deco by Hafiseazale
Sky by Lowedeus and iCad
Sc4 Maps
Hacks & Mods:
ACR by Twojeffs
Adults Go Steady by Syberspunk
Antiredundancy by Pescado
Bigger Families by Cyjon
Bodyshop Brightening by WesHowe
Breadfruit Tree Fix by Cyjon
Build/Buy mode/Inventories enabled on community lots by Cathair2005
Business Controller by Pescado
Camera mod by Tom Duhamel
Community Skilling by Pescado
Community Time Project by Crammyboy
Computer Screen Replacement by Eddysims
Customer Selector by Pescado
Day Setter by Neder
Donate Lot by Cyjon
Downtownie Walkbys by Cyjon
Easels by AnoeskaB
Exercise Equality by iCad
Exercise Tweaks by Cyjon
Faster University Education by Dave Luv
Hacked Computer by Monique
Lighting Mod by Spookymuffin (old)
Lighting Mod by Dreadpirate (new)
Lot Debugger “Batbox” by Pescado
Lot Sync Timer by Pescado
LTW Variety by Pescado
M&G Physiology Fix by Gummilutt
Macrotastics by Pescado
Maxis Modular Stairs Passage Fix by Lord Darcy
Money Order Hack by Pescado
More Employees For Hire by Squinge
More Slots by Hafiseazale
Multi PT set by Alleliua
Neighborhood Deco can be placed anywhere by Saramkirk
No 20K Handouts by Pescado
No Eat Crap by Pescado
No Inheritance by Dickhurt
No Memory Uneducated by Chaavik
No More Leafy Plantsim Hair by Poifectly_poiple
No Neutral Spell Alignment Shift by Cyjon
No Quitting by Cyjon
No Red Lines During Pause by BeosBoxBoy
No Secret Society Respawn by Pescado
No Stray Respawn by Pescado
No Townie Memory Loss by Squinge
No Townie Regen by Pescado
No Want Satisfy Uneducated by Chaavik
No Witch Overlay by Simsbaby
OMSPs by SilentLucidity
Park in the car park by MogHughson
Perfect Plants by Twojeffs
Pet Coats Enabled All Ages by Kitteninthewindow
Pets and Children share Bed by MogHughson
Pond & Sea Water Overhaul by Voeille
Pregnant Sims Wear Any Outfit by Squinge
Rod Humble to Mystery Man by Crisps&Kerosene
Romance Mod by Pescado
Roof Shader by Niol
Rug Fix by HugeLunatic
Same Sex Mods by Twojeffs
School Mods by Simlogical
Seasons and Weather Controller by Simwardrobe
Select Your Cemetery by Arek_91
Sellable Novels by Faiuwle
Shiftable Photos by Neder
Shop-at-home Hacked Coat by MaryLou & Numenor
Sim Blender by Twojeffs
Simply Leftovers by MogHughson
Sim Shadow Fix by Nopke
Sky Fix by Nopke
Sleep On Community Lots by Numenor
Slot Enable Package by Numenor
Smarter EP Check by Cyjon
Stay Things Shrub by Simlogical
Television Placement Mod by An_dz
Throw Massive Parties by Simwardrobe
Townie Apartment Residents by Cyjon
Use Inaccessible Beds by Simlogical
Wallet Token Controller by Christianluv
Watch TV from all chairs by MogHughson
Ya Visitors Outside Uni by Twojeffs
And a bunch of little annoyance fixes
3 notes · View notes
dynoguard · 7 years ago
Text
Story Chunk: In the Laboratory of the Unnatural Selector.
Kyle stood at the edge of the railing. The room sent a chill through him, a constant low nervous thrum that he felt, for lack of a better term, through phantom sensations in his left arm. Brach, at the furthest point from the door was speaking with their host, their voices pitched lower than normal, their body movements just a fraction slower than they ought to be.  Beyond the railing was a constellation of thirteen stars, arranged in the vague shape of an eel or fish, and around each was an assortment of spinning hoops of faint light, the reflected images of planets and asteroids hurtling around the stars. It would be easier to take if their host were tricking them with a holographic display, but Kyle could feel the tug at space-time in his lost limb, and the purpose of the projectors that lined the chamber’s spherical interior were unmistakable.  These stars were real, captured into a bubble of warped space-time, experiencing years for every second that passed on Earth.
“I don’t trust him.” Kyle looked down at Lynn.  Lynn ran a claw through her mane of feathers. “I dunno Kyle, he seems like can do what he promised. I mean, he has a constellation in his study.”
“No, he can do what he says. This tech is advanced enough that I don’t doubt he could stabilize the time slip and rescue... well, everybody. And it sure looks like he can give us a world of our own, but what does he get out of it? If we’ve learned anything from the humans, its that anything that sounds too good to be true probably is.”
“I think it might be worth the chance to trust him.”
Kyle’s eyes ran over the control panel the Selector had used during the demonstration. “Orr... I can check things out.” 
“What?” 
“He told us he made this console compatible with our tech so he could download our time-slip data.” Kyle said, the first finger of his artificial hand opening to lock into a port on the console’s surface. “Language is language, spoken or programming, so... there.” 
The portal built into the railings opened just as it had when the Selector had sent one of his probes into the collapsed star cluster. “I’ll pop onto one of the inhabited worlds, take a look around, and be back literally before anyone realizes I was gone.”
Lynn wanted to protest, but each step that Kyle took toward the hazy gray void beyond the doorway was quicker than the last, as the strange doorway brought him in synch with the tiny worlds beyond.
Lynn breathed in, and by the time she breathed out, the door had snapped closed, and reopened, and Kyle was charging through, his prosthetic arm replaced with a crude construct of brass and wood, his form fitting uniform gone, replaced with armor of hide and fur. Behind him charged a strange mammalian beast easily as large as Kyle. Lynn recognized it as “cow”, one of the ingredients of hamburgers. Only, the cow walked upright, was thickly muscled, and had hands in place of forehooves. and carried a brass short sword in each. It wore hides similar to the ones Kyle wore, though the creature left its broad, barrel chest bare. 
“There, Unglar, it is as I say! There is the man behind your dark gods.” Kyle shouted, pointing at Selector.
“Unglar sees him, Wizard Lizard.” The creature’s voice was proud and bellowing. “Stand, dark one, and we shall see if gods bleed!”
“You just said you were going to take a look around!” Lynn shouted, as the creature called Unglar let loose a bellowing howl and charged their alien host.
“Quick for you.” Kyle said. “About a year in I got bored and started a revolution. Long story short, he’s evil, those worlds are being tortured to accelerate evolution and that makes Unglar very, very angry.”
10 notes · View notes
johnwalshonline · 5 years ago
Link
Date: 2019-05-16 14:35:34
On today’s #TBT episode of Live Lean TV, I’m answering the following viewer question: how do I break the habit of eating carbohydrates? ✔ Live Lean Program Selector Quiz: ✔ Live Lean 20 Diet including 20 Lower Carb Recipes: ✔ Free Live Lean Starter Guide: OTHER AWESOME LIVE LEAN VLOGS: ✔ Is The Paleo Diet Good Or Bad For You? (ARE SWEET POTATOES PALEO?) #TBT: ✔ Healthy Lunch Ideas | Make Vegetables Taste Good | #AskLiveLeanTV Ep. 073: ✔ How To Lose Belly Fat | Fasted Cardio | Divorce #AskLiveLeanTV Ep. 072: READ OR LISTEN TO THIS EPISODE: ✔ Blog Post: ✔ Podcast: Subscribe and Live Lean 365 days a year with us: Before I share my thoughts on the #1 tip to cut back on eating processed carbohydrates, this is a post from our #TBT Q&A series. Every Thursday, we will be uploading one #TBT question to our YouTube channel, from our old #LLTV Q&A series that I filmed in 2012. Here is today’s viewer question on carbohydrates: I love carbs in general. How do I break the habit? Not all carbohydrates are bad. Vegetables, including sweet potatoes, and fruits are good sources of carbohydrates. It’s the refined carbohydrates, such as sugar and the unnatural carbohydrates found in packaged products that are bad. These are the types of carbohydrates that you should limit and stay away from. Here’s how to break the habit of eating bad sources of carbohydrates. Don’t bring these unhealthy, refined carbohydrate, food products into your house. It’s such a simple concept. I have the strongest willpower of probably anyone that I know. However, if I bring ice cream or processed pizza into my house, I guarantee that I will eat it. What about cheat meals? If you earn a cheat meal once a week, enjoy your refined carbohydrates at that time. But make sure you leave your house to get them. Don’t bring junk food into your house. That’s the number one tip to cut back on consuming bad food. Don’t bring it into your house. WANT MORE DAILY TIPS ON HOW TO LIVE LEAN?: ✔ INSTAGRAM: ✔ INSTAGRAM: ✔ INSTAGRAM: ✔ SNAPCHAT: ✔ SNAPCHAT: ✔ FACEBOOK: ✔ TWITTER: ✔ TWITTER: ✔ TWITTER: Welcome to Live Lean TV. The online fitness and nutrition show, hosted by Brad Gouthro and Jessica Gouthro, teaching you how to LIVE THE LEAN LIFESTYLE 365 days a year. Watch hundreds of fat blasting & muscle building workouts, easy and delicious recipes, as well as fitness and nutrition tips to get you your dream body (and maintain it 365 days a year). Make sure you click the SUBSCRIBE button for new fitness and nutrition shows every week! Business Enquiries: [email protected]
0 notes
kristablogs · 5 years ago
Text
Strapping into the 2020 Chevrolet Corvette Stingray to take turns at 1.3 Gs
The 2020 Corvette Stingray. (Chevrolet/)
On the street, the eighth-generation Chevrolet Corvette Stingray—aka the C8— draws waves and shouts like no Corvette in memory. The vehicles also fulfills a long-explored switch to a mid-engine layout, like the configuration of exotic European supercars from Ferrari and Lamborghini.
At the track at Spring Mountain Motor Resort in Nevada, we were able to lap behind instructors from the Ron Fellows driving school who were in 2019 Corvette ZR1s. Before I slid into that seat, the Fellows crew hands me a black balaclava to line the white open-face helmet, while they lock the helmet into a chest-wrapping hybrid Head And Neck Support (HANS) device in anticipation of my high-speed laps. With the HANS cinched tight, I get in.
I power the seat all the way back with its electric adjuster. Then I pull the seat belt all the way out to activate the ratcheting adjuster, which in most cars is used for tightening the belt onto an infant seat. By locking the belt in place and then powering the seat forward into the correct position, it pulls the regular three-point seat belt tight, providing a quick alternative to a racing harness to help hold the driver in position.
The Corvette will pull 1.3 Gs of cornering force on this track, and while the car is equipped with competition seats, tightening the belts down like this helps hold the driver in position to focus on the steering, rather than using the steering wheel to hold on.
That ratcheted-down seat belt also helps better secure the HANS device, so it will be more effective in the event of a crash. Not that we’d crash Chevy’s $83,330 test car. That was the bottom line cost for our track vehicle, with its 3LT premium equipment package, Z51 performance package and magnetic ride adjustable shock absorbers.
Pressing the Start button brings the ‘Vette’s 495-horsepower, 470 lb.-ft., LT2 6.2-liter small block V8 to life. The engine’s sound is muscular and menacing at all speeds, with the rumbling threat of power to come at idle, and the ferocious blast of Nascar thunder as revs climb to the 6,500 rpm redline.
But some of this superbly inspiring soundtrack is, alas, actually electronically enhanced. Assistant chief engineer Mark Stheiner goes to lengths to explain that it isn’t really fake sound, because it is sound that the engine can and does make. However, the reality of requirements such as catalytic converters in the exhaust stream take a chunk out of the small block’s aural spectrum, producing a less satisfying voice at the exhaust pipes. So in the cabin, the car’s stereo system puts those frequencies back in place to produce a true V8 sound, but the sound of one without pollution-scrubbing catalysts.
Away from the track, the V8’s fuel consumption is EPA-rated at 15 mpg in city driving and 27 mpg on the highway, which is good for a supercar. On the track, we have to guess the fuel economy is, um, worse.
In the mid-engine C8, the compact pushrod V8 is located behind the cabin, visible to the passenger if they twist around in their seat and crane their neck to spot it. The driver can see a little bit out the back through the rearview mirror.
The mirror doubles as a display for a rearview camera that is mounted atop the engine cover to provide an expansive view behind the car that isn’t possible from anywhere inside the cockpit. This is helpful for visibility, but the camera’s unfamiliar wide field of view and unnatural video-camera brightness make it feel odd in regular driving. Maybe we’ll get used to such devices over time, but for now, I prefer the plain mirror, restricted view and all.
The Corvette’s center console is anchored by a rotary selector wheel that is mostly covered by a wrist rest that keeps the driver’s hand stable while adjusting the knob. Sitting stationary in the pit lane, I scroll through the car’s drive modes to select Track, and then dial up Sport 2 for the electronic stability control mode.
The Corvette has a unique shifter solution, with a compact row of buttons along the car’s longitudinal axis. It employs conventional push buttons for Park and Neutral, and lift buttons that you curl your finger beneath (like with many power window switches) for Reverse and Drive. The ability to feel these different buttons and their different actuation methods makes the Corvette’s shifter an above-average execution of the push-button shifter concept.
With the car in Drive, I begin to edge toward the pit exit to start lapping behind my lead driver ahead. Creeping forward, the 8-speed Tremec dual-clutch transmission exhibits some shuddering as the clutches slip, trying to do their best impersonation of a planetary automatic’s buttery smooth and torque-multiplying torque converter. Stheiner says this issue was resolved in the final software programming for the first true production models for customers. “We made some calibration changes that address that,” he says.
Underway, the computer-controlled dual-clutch transmission can shift itself, like an ordinary automatic transmission, or the driver can take manual control of upshifts and downshifts using the steering column-mounted shift paddles.
We roll out onto the track and my lead driver reminds me on the radio that the Michelin Pilot Sport 4S tires are still cold, so we steer into the sweeping, medium-speed first turn at a modest pace to begin bringing the tires to operating temperature. The run-flat Pilot Sport 4S tires come with the Stingray’s $5,000 Z51 performance package, which also includes an electronic limited slip differential and aerodynamic upgrades.
When the tires are warm, the Z51-equipped Stingray can launch to 60 mph from a standstill in 2.9 seconds, and thanks to an automatic launch control system, it can do it time after time.
Powering through the ensuing curves, grip starts to build and I can push the car harder. Even in its new, improved mid-engine configuration, the 495-hp C8 Stingray is no match for the lead driver’s 755-hp C7 ZR1. This was exacerbated by the C8 Stingray’s use of Michelin’s Pilot Sport 4S tires rather than the maximum-performance Pilot Sport Cup 2 tires on the ZR1. The ZR1’s power and grip advantage, combined with its driver’s intimate knowledge of the track, left my lead driver the surplus bandwidth to lap while seemingly only looking in his mirrors to provide feedback and coaching to help me learn the circuit over the walkie-talkies.
The practical run-flat PS 4S tires have presumably longer tread life in street driving, but on the track they produce noticeably more squeal in turns that more performance-focused Cup 2 rubber. The slightly lower grip threshold of these tires provides ample opportunity to experience the Stingray’s improved balance, thanks to the 40/60 front/rear weight distribution that lets the driver steer and point the Corvette precisely using the accelerator. The benefits are even more clear on corner exit, where front-engine Corvettes demanded delicacy to accelerate without sliding the rear of the car.
I’d have had more latitude to slide the car around a bit with the stability control in Track mode, but in the Sport 2 setting the ‘Vette is still able to build slip angles in turns and wiggle under braking and turn-in. I am never able to identify any interventions by the computer, unlike in the bad old days when such systems clamped down on the car’s performance intrusively. However, in the data overlay from the Performance Data Recorder, you can see the flicker of imperceptible mid-corner stability control activation once or twice.
The Stingray’s Brembo brakes are impressive, with a firm, communicative pedal, demonstrating strong friction but not gripping so abruptly as to upset the car. Hammering the pedal with strong initial application at the end of the track’s one straight helps shed speed quickly so the driver turns the car into the subsequent mid-speed right and keeps it balanced before eventually slowing more as the turn tightens. The benefit of having its mass centralized by the mid-engine layout gives the Corvette a fundamentally benign character that invites balancing the sliding car at its limit.
While driving in Track mode, the transmission makes mostly faultless decisions about gear changes, banging off redline upshifts and clicking down through the gears while braking smoothly enough to avoid upsetting the car. There were occasional two-gear downshifts while accelerating out of slower corners that seemed to have the potential to disturb the Corvette’s balance, so in those instances I’d have probably clicked it down only one when shifting manually on the paddles.
Those paddles are nice ones, which, like Ferrari’s and Lamborghini’s, are mounted to the steering column where they can always be found in the same places even while turning. Previous-generation Corvettes were frequently criticized for the delay between a pull on the shift paddle and the transmission’s response.
This time, engineers wired the buttons directly to the transmission’s shift controller, bypassing the car’s Controller Area Network, which can get clogged with traffic, to send shift requests straight to the transmission. It works. This Corvette responds instantly to shift requests. The paddles also shift to Neutral when you pull both of them at the same time. This is important, because as much as the Corvette lives up to its exotic new appearance with its racy on-track performance, there are also calls from bystanders who are hoping to hear a bit of the LT2’s exhaust note, which is easy to deliver with a quick shift to Neutral.
Passers-by are fired up about America’s new sports car, and it’s nice to give them a quick acknowledgement. If these fans can’t visit Spring Mountain themselves to pilot ���Vettes from the Fellows school on track, at least they can imagine doing so, courtesy of a quick blast of exhaust sound.
0 notes
scootoaster · 5 years ago
Text
Strapping into the 2020 Chevrolet Corvette Stingray to take turns at 1.3 Gs
The 2020 Corvette Stingray. (Chevrolet/)
On the street, the eighth-generation Chevrolet Corvette Stingray—aka the C8— draws waves and shouts like no Corvette in memory. The vehicles also fulfills a long-explored switch to a mid-engine layout, like the configuration of exotic European supercars from Ferrari and Lamborghini.
At the track at Spring Mountain Motor Resort in Nevada, we were able to lap behind instructors from the Ron Fellows driving school who were in 2019 Corvette ZR1s. Before I slid into that seat, the Fellows crew hands me a black balaclava to line the white open-face helmet, while they lock the helmet into a chest-wrapping hybrid Head And Neck Support (HANS) device in anticipation of my high-speed laps. With the HANS cinched tight, I get in.
I power the seat all the way back with its electric adjuster. Then I pull the seat belt all the way out to activate the ratcheting adjuster, which in most cars is used for tightening the belt onto an infant seat. By locking the belt in place and then powering the seat forward into the correct position, it pulls the regular three-point seat belt tight, providing a quick alternative to a racing harness to help hold the driver in position.
The Corvette will pull 1.3 Gs of cornering force on this track, and while the car is equipped with competition seats, tightening the belts down like this helps hold the driver in position to focus on the steering, rather than using the steering wheel to hold on.
That ratcheted-down seat belt also helps better secure the HANS device, so it will be more effective in the event of a crash. Not that we’d crash Chevy’s $83,330 test car. That was the bottom line cost for our track vehicle, with its 3LT premium equipment package, Z51 performance package and magnetic ride adjustable shock absorbers.
Pressing the Start button brings the ‘Vette’s 495-horsepower, 470 lb.-ft., LT2 6.2-liter small block V8 to life. The engine’s sound is muscular and menacing at all speeds, with the rumbling threat of power to come at idle, and the ferocious blast of Nascar thunder as revs climb to the 6,500 rpm redline.
But some of this superbly inspiring soundtrack is, alas, actually electronically enhanced. Assistant chief engineer Mark Stheiner goes to lengths to explain that it isn’t really fake sound, because it is sound that the engine can and does make. However, the reality of requirements such as catalytic converters in the exhaust stream take a chunk out of the small block’s aural spectrum, producing a less satisfying voice at the exhaust pipes. So in the cabin, the car’s stereo system puts those frequencies back in place to produce a true V8 sound, but the sound of one without pollution-scrubbing catalysts.
Away from the track, the V8’s fuel consumption is EPA-rated at 15 mpg in city driving and 27 mpg on the highway, which is good for a supercar. On the track, we have to guess the fuel economy is, um, worse.
In the mid-engine C8, the compact pushrod V8 is located behind the cabin, visible to the passenger if they twist around in their seat and crane their neck to spot it. The driver can see a little bit out the back through the rearview mirror.
The mirror doubles as a display for a rearview camera that is mounted atop the engine cover to provide an expansive view behind the car that isn’t possible from anywhere inside the cockpit. This is helpful for visibility, but the camera’s unfamiliar wide field of view and unnatural video-camera brightness make it feel odd in regular driving. Maybe we’ll get used to such devices over time, but for now, I prefer the plain mirror, restricted view and all.
The Corvette’s center console is anchored by a rotary selector wheel that is mostly covered by a wrist rest that keeps the driver’s hand stable while adjusting the knob. Sitting stationary in the pit lane, I scroll through the car’s drive modes to select Track, and then dial up Sport 2 for the electronic stability control mode.
The Corvette has a unique shifter solution, with a compact row of buttons along the car’s longitudinal axis. It employs conventional push buttons for Park and Neutral, and lift buttons that you curl your finger beneath (like with many power window switches) for Reverse and Drive. The ability to feel these different buttons and their different actuation methods makes the Corvette’s shifter an above-average execution of the push-button shifter concept.
With the car in Drive, I begin to edge toward the pit exit to start lapping behind my lead driver ahead. Creeping forward, the 8-speed Tremec dual-clutch transmission exhibits some shuddering as the clutches slip, trying to do their best impersonation of a planetary automatic’s buttery smooth and torque-multiplying torque converter. Stheiner says this issue was resolved in the final software programming for the first true production models for customers. “We made some calibration changes that address that,” he says.
Underway, the computer-controlled dual-clutch transmission can shift itself, like an ordinary automatic transmission, or the driver can take manual control of upshifts and downshifts using the steering column-mounted shift paddles.
We roll out onto the track and my lead driver reminds me on the radio that the Michelin Pilot Sport 4S tires are still cold, so we steer into the sweeping, medium-speed first turn at a modest pace to begin bringing the tires to operating temperature. The run-flat Pilot Sport 4S tires come with the Stingray’s $5,000 Z51 performance package, which also includes an electronic limited slip differential and aerodynamic upgrades.
When the tires are warm, the Z51-equipped Stingray can launch to 60 mph from a standstill in 2.9 seconds, and thanks to an automatic launch control system, it can do it time after time.
Powering through the ensuing curves, grip starts to build and I can push the car harder. Even in its new, improved mid-engine configuration, the 495-hp C8 Stingray is no match for the lead driver’s 755-hp C7 ZR1. This was exacerbated by the C8 Stingray’s use of Michelin’s Pilot Sport 4S tires rather than the maximum-performance Pilot Sport Cup 2 tires on the ZR1. The ZR1’s power and grip advantage, combined with its driver’s intimate knowledge of the track, left my lead driver the surplus bandwidth to lap while seemingly only looking in his mirrors to provide feedback and coaching to help me learn the circuit over the walkie-talkies.
The practical run-flat PS 4S tires have presumably longer tread life in street driving, but on the track they produce noticeably more squeal in turns that more performance-focused Cup 2 rubber. The slightly lower grip threshold of these tires provides ample opportunity to experience the Stingray’s improved balance, thanks to the 40/60 front/rear weight distribution that lets the driver steer and point the Corvette precisely using the accelerator. The benefits are even more clear on corner exit, where front-engine Corvettes demanded delicacy to accelerate without sliding the rear of the car.
I’d have had more latitude to slide the car around a bit with the stability control in Track mode, but in the Sport 2 setting the ‘Vette is still able to build slip angles in turns and wiggle under braking and turn-in. I am never able to identify any interventions by the computer, unlike in the bad old days when such systems clamped down on the car’s performance intrusively. However, in the data overlay from the Performance Data Recorder, you can see the flicker of imperceptible mid-corner stability control activation once or twice.
The Stingray’s Brembo brakes are impressive, with a firm, communicative pedal, demonstrating strong friction but not gripping so abruptly as to upset the car. Hammering the pedal with strong initial application at the end of the track’s one straight helps shed speed quickly so the driver turns the car into the subsequent mid-speed right and keeps it balanced before eventually slowing more as the turn tightens. The benefit of having its mass centralized by the mid-engine layout gives the Corvette a fundamentally benign character that invites balancing the sliding car at its limit.
While driving in Track mode, the transmission makes mostly faultless decisions about gear changes, banging off redline upshifts and clicking down through the gears while braking smoothly enough to avoid upsetting the car. There were occasional two-gear downshifts while accelerating out of slower corners that seemed to have the potential to disturb the Corvette’s balance, so in those instances I’d have probably clicked it down only one when shifting manually on the paddles.
Those paddles are nice ones, which, like Ferrari’s and Lamborghini’s, are mounted to the steering column where they can always be found in the same places even while turning. Previous-generation Corvettes were frequently criticized for the delay between a pull on the shift paddle and the transmission’s response.
This time, engineers wired the buttons directly to the transmission’s shift controller, bypassing the car’s Controller Area Network, which can get clogged with traffic, to send shift requests straight to the transmission. It works. This Corvette responds instantly to shift requests. The paddles also shift to Neutral when you pull both of them at the same time. This is important, because as much as the Corvette lives up to its exotic new appearance with its racy on-track performance, there are also calls from bystanders who are hoping to hear a bit of the LT2’s exhaust note, which is easy to deliver with a quick shift to Neutral.
Passers-by are fired up about America’s new sports car, and it’s nice to give them a quick acknowledgement. If these fans can’t visit Spring Mountain themselves to pilot ‘Vettes from the Fellows school on track, at least they can imagine doing so, courtesy of a quick blast of exhaust sound.
0 notes
jessicakmatt · 5 years ago
Text
Sample and Hold: Modular Synth, Field Recording and Gated Reverb
Sample and Hold: Modular Synth, Field Recording and Gated Reverb: via LANDR Blog
Welcome to Sample and Hold, the series on the LANDR Blog where we highlight one unique crate-digging session and the digger’s gold we came back with using Selector—the world’s first AI sample recommendation tool.
Starter Loop: Modular Synth
Today on Sample and Hold I’ll start with modular synth.
After a bit of digging I uncovered this filtered, undulating percussive loop with the signature drippy resonance of a modular rig:
Modular synthesis means that individual parts of a synthesizer like the oscillators, filters and envelopes are arranged as separate components.
To create sounds on a modular you have to make the connections between modules physically using patch cables.
To create sounds on a modular you have to make the connections between modules physically using patch cables.
The learning curve for modular synthesis is steeper than with integrated synths, but the payoff is that the signal routing is limited only by your imagination.
Modular synthesis has been steadily growing in popularity since the introduction of the Eurorack standard in the late 90s.
Before Eurorack, modular synth builders had different conventions for patching, power supplies and module size that prohibited musicians from using modules from different manufacturers in the same rig.
Eurorack standardized those conventions and created a massive boom in the development and adoption of modular synthesis.
Today some of the wildest rigs you can find online belong to hardcore modular enthusiasts.
And with the number of creative Eurorack devices growing by the day, it’s hard not to get sucked into the craze. Get your wallet ready!
Selection 1: Field Recording
Right there in the first few recommendations for the modular loop I found an eerie, realistic soundscape.
There’s no doubt—this is a field recording of a real environment.
Using field recordings in your music is one of our favourite creative techniques at LANDR.
We’ve created a full guide to using them in your workflow and done a rundown of the best field recorders available to capture your own.
There’s something amazing about how a well-rendered soundscape can immediately transport you to a different place.
There’s something amazing about how a well-rendered soundscape can immediately transport you to a different place.

It’s important to remember that real people in real places are the ones listening to your tracks. Actual environmental sounds are one powerful way to acknowledge this in your production.
LANDR Samples has an amazing library of ambience and field recordings—just click on this Selector session to browse through a fraction of what’s out there on the platform.
Don’t get too caught up in them though, there’s always something slightly creepy about eavesdropping on real life as a disembodied listener…
Selection 2: Gated Reverb
On page 3 of the field recording session I found a lively snare with rich gated reverb:
https://samples.landr.com/recommendations/d8bbc4c5-39fc-45e2-aaac-994621d1f684
Gated reverb is one of the signature production techniques from the 80s.
Gated reverb is one of the signature production techniques from the 80s.
Some consider it a cliche, but gated reverb is a fun bit of sound design with a distinctive flavor that can radically change the timbre of some sources.
Here’s how it works. Gated reverb is essentially a combination of a reverb and an expander/gate.
Gated reverb is essentially a combination of a reverb and an expander/gate.
Once the level of a reverb tail drops below the gate’s threshold, the gate will cut the decay off sharply.
The effect is a disorienting unnatural reverb that’s great for emphasizing percussive hits.
The effect was made famous by Phil Collins and Peter Gabriel—almost by accident. Sophisticated 80s studio consoles had dedicated listenback systems for artists to communicate more easily with engineers in the control room.
Since the listenback microphones were often mounted far away from the musicians, these systems needed an aggressive compressor in the chain to bring up the level enough to be heard.
With all that compression the noise floor was naturally much higher. To solve it the engineers implemented a gate that would kick in whenever the artist stopped speaking.
When the engineer accidentally monitored Collins drumming through the listenback system, the gated reverb effect took everyone by surprise
The compressor would bring up the ambience of the room drastically and the gate would cut off the trails much quicker than the natural decay.
This effect became popular enough to be implemented in the newly developed digital reverbs of the time. The most famous of these is the AMS RMX 16, where it was called “Nonlinear.”
The AMS RMX 16s non-linear presets were used on some of the most famous recordings of the 1980s.
Selection 3: Synth Sequence
Finally, on page 3 of the gated reverb sound I found another undulating synth sequence to bring things back to where we started.
There’s no way of telling if this clangy burbling rhythm was created on a modular, but it doesn’t sound too far off.
This sound has a uniquely effective use of rhythmic delay to emphasize the sense of action in the pattern.
The cascading delays multiply the clicky onsets of the synth and spread them around satisfyingly in the stereo field.
This is a classic technique for creating enveloping ambient textures that’s been used by famous delay users like David Gilmour and The Edge.
That’s it for today’s Selector deep dive!
The post Sample and Hold: Modular Synth, Field Recording and Gated Reverb appeared first on LANDR Blog.
from LANDR Blog https://blog.landr.com/sample-and-hold-modular-synth/ via https://www.youtube.com/user/corporatethief/playlists from Steve Hart https://stevehartcom.tumblr.com/post/189703068649
0 notes
aracecvliwest · 7 years ago
Text
We Write CSS Like We Did in the 90s, and Yes, It’s Silly
As web developers, we marvel at technology. We enjoy the many tools that help with our work: multipurpose editors, frameworks, libraries, polyfills and shims, content management systems, preprocessors, build and deployment tools, development consoles, production monitors—the list goes on.
Our delight in these tools is so strong that no one questions whether a small website actually requires any of them. Tool obesity is the new WYSIWYG—the web developers who can’t do without their frameworks and preprocessors are no better than our peers from the 1990s who couldn’t do without FrontPage or Dreamweaver. It is true that these tools have improved our lives as developers in many ways. At the same time, they have perhaps also prevented us from improving our basic skills.
I want to talk about one of those skills: the craft of writing CSS. Not of using CSS preprocessors or postprocessors, but of writing CSS itself. Why? Because CSS is second in importance only to HTML in web development, and because no one needs processors to build a site or app.
Most of all, I want to talk about this because when it comes to writing CSS, it often seems that we have learned nothing since the 1990s. We still write CSS the natural way, with no advances in sorting declarations or selectors and no improvements in writing DRY CSS.
Instead, many developers argue fiercely about each of these topics. Others simply dig in their heels and refuse to change. And a third cohort protests even the discussion of these topics.
I don’t care that developers do this. But I do care about our craft. And I care that we, as a profession, are ignoring simple ways to improve our work.
Let’s talk about this more after the code break.
Here’s unsorted, unoptimized CSS from Amazon in 2003.
.serif { font-family: times, serif; font-size: small; } .sans { font-family: verdana, arial, helvetica, sans-serif; font-size: small; } .small { font-family: verdana, arial, helvetica, sans-serif; font-size: x-small; } .h1 { font-family: verdana, arial, helvetica, sans-serif; color: #CC6600; font-size: small; } .h3color { font-family: verdana, arial, helvetica, sans-serif; color: #CC6600; font-size: x-small; } .tiny { font-family: verdana, arial, helvetica, sans-serif; font-size: xx-small; } .listprice { font-family: arial, verdana, sans-serif; text-decoration: line-through; font-size: x-small; } .price { font-family: verdana, arial, helvetica, sans-serif; color: #990000; font-size: x-small; } .attention { background-color: #FFFFD5; }
And here’s CSS from contemporary Amazon:
.a-box { display: block; border-radius: 4px; border: 1px #ddd solid; background-color: #fff; } .a-box .a-box-inner { border-radius: 4px; position: relative; padding: 14px 18px; } .a-box-thumbnail { display: inline-block; } .a-box-thumbnail .a-box-inner { padding: 0 !important; } .a-box-thumbnail .a-box-inner img { border-radius: 4px; } .a-box-title { overflow: hidden; } .a-box-title .a-box-inner { overflow: hidden; padding: 12px 18px 11px; background: #f0f0f0; }
Just as in 2003, the CSS is unsorted and unoptimized. Did we learn anything over the past 15 years? Is this really the best CSS we can write?
Let’s look at three areas where I believe we can easily improve the way we do our work: declaration sorting, selector sorting, and declaration repetition.
Declaration sorting
The 90s web developer, if he or she wrote CSS, wrote CSS as it occurred to them. Without sense or order—with no direction whatsoever. The same was true of last decade’s developer. The same is true of today’s developer, whether novice or expert.
.foo { font: arial, sans-serif; background: #abc; margin: 1em; text-align: center; letter-spacing: 1px; -x-yaddayadda: yes; }
The only difference between now and then: today’s expert developer uses eight variables, because “that’s how you do it” (even with one-pagers) and because at some point in their life they may need them. In twenty-something years of web development we have somehow not managed to make our CSS consistent and easier to work on by establishing the (or even a) common sense standard to sort declarations.
(If this sounds harsh, it’s because it’s true. Developers condemn selectors, shorthands, !important, and other useful aspects of CSS rather than concede that they don’t even know how to sort their declarations.)
In reality, the issue is dead simple: Declarations should be sorted alphabetically. Period.
Why?
For one, sorting makes collaborating easier.
Untrained developers can do it. Non-English speakers (such as this author) can do it. I wouldn’t be surprised to learn that even houseplants can do it.
For another reason, alphabetical sorting can be automated. What’s that? Yes, one can use or write little scripts (such as CSS Declaration Sorter) to sort declarations.
Given the ease of sorting, and its benefits, the current state of affairs borders on the ridiculous, making it tempting to ignore our peers who don’t sort declarations, and to ban from our lives those who argue that it’s easier—or even logical—not to sort alphabetically but instead to sort based on 1) box dimensions, 2) colors, 3) grid- or flexbox-iness, 4) mood, 5) what they ate for breakfast, or some equally random basis.
With this issue settled (if somewhat provocatively), on to our second problem from the 90s.
Selector sorting
The situation concerning selectors is quite similar. Almost since 1994, developers have written selectors and rules as they occurred to them. Perhaps they’ve moved them around (“Oh, that belongs with the nav”). Perhaps they’ve refactored their style sheets (“Oh, strange that site styles appear amidst notification styles”). But standardizing the order—no.
Let’s take a step back and assume that order does matter, not just for aesthetics as one might think, but for collaboration. As an example, think of the letters below as selectors. Which list would be easiest to work with?
c, b · a · a, b · c, d · d, c, a · e · a c · b · a, b · a · c, d · a, c, d · a · e a, b · a, c, d · a · b, c · c, d · e
The fact that one selector (a) was a duplicate that only got discovered and merged in the last row perhaps gives away my preference. But then, if you wanted to add d, e to the list, wouldn’t the order of the third row make placing the new selector easier than placing it in either of the first two rows?
This example gets at the two issues caused by not sorting selectors:
No one knows where to add new selectors, creating a black hole in the workflow.
There’s a higher chance of both selector repetition and duplication of rules with the same selectors.
Both problems get compounded in larger projects and larger teams. Both problems have haunted us since the 90s. Both problems get fixed by standardizing—through coding guidelines—how selectors should be ordered.
The answer in this case is not as trivial as sorting alphabetically (although we could play with the idea—the cognitive ease of alphabetical selector sorting may make it worth trying). But we can take a path similar to how the HTML spec roughly groups elements, so that we first define sections, and then grouping elements, text elements, etc. (That’s also the approach of at least one draft, the author’s.)
The point is that ideal selector sorting doesn’t just occur naturally and automatically. We can benefit from putting more thought into this problem.
Declaration repetition
Our third hangover from the 90s is that there is and has always been an insane amount of repetition in our style sheets. According to one analysis of more than 200 websites, a median of 66% of all declarations are redundant, and the repetition rate goes as high as 92%—meaning that, in this study at least, the typical website uses each declaration at least three times and some up to ten times.
As shown by a list of some sample sites I compiled, declaration repetition has indeed been bad from the start and has even increased slightly over the years.
Yes, there are reasons for repetition: notably for different target media (we may repeat ourselves for screen, print, or different viewport sizes) and, occasionally, for the cascade. That is why a repetition rate of 10–20% seems to be acceptable. But the degree of repetition we observe right now is not acceptable—it’s an unoptimized mess that goes mostly unnoticed.
What’s the solution here? One possibility is to use declarations just once. We’ve seen with a sample optimization of Yandex’s large-scale site that this can lead to slightly more unwieldy style sheets, but we also know that in many other cases it does make them smaller and more compact.
This approach of using declarations just once has at least three benefits:
It reduces repetition to a more acceptable amount.
It reduces the pseudo need for variables.
Excluding outliers like Yandex, it reduces file size and payload (10–20% according to my own experience—we looked at the effects years ago at Google).
No matter what practice we as a field come up with—whether to use declarations just once or follow a different path—the current level of “natural repetition” we face on sample websites is too high. We shouldn’t need to remind ourselves not to repeat ourselves if we repeat code up to nine times, and it’s getting outright pathetic—again excuse the strong language—if then we’re also the ones to scream for constants and variables and other features only because we’ve never stopped to question this 90s-style coding.
The unnatural, more modern way of writing CSS
Targeting these three areas would help us move to a more modern way of writing style sheets, one that has a straightforward but powerful way to sort declarations, includes a plan for ordering selectors, and minimizes declaration repetition.
In this article, we’ve outlined some options for us to adhere to this more modern way:
Sort declarations alphabetically.
Use an existing order system or standardize and follow a new selector order system.
Try to use declarations just once.
Get assistance through tools.
And yet there’s still great potential to improve in all of these areas. The potential, then, is what we should close with. While I’ve emphasized our “no changes since the 90s” way of writing CSS, and stressed the need for robust practices, we need more proposals, studies, and conversations around what practices are most beneficial. Beneficial in terms of writing better, more consistent CSS, but also in terms of balancing our sense of craft (our mastery of our profession) with a high degree of efficiency (automating when it’s appropriate). Striving to achieve this balance will help ensure that developers twenty years from now won’t have to write rants about hangovers from the 2010s.
http://ift.tt/2H6YyWz
0 notes
pattersondonaldblk5 · 7 years ago
Text
We Write CSS Like We Did in the 90s, and Yes, It’s Silly
As web developers, we marvel at technology. We enjoy the many tools that help with our work: multipurpose editors, frameworks, libraries, polyfills and shims, content management systems, preprocessors, build and deployment tools, development consoles, production monitors—the list goes on.
Our delight in these tools is so strong that no one questions whether a small website actually requires any of them. Tool obesity is the new WYSIWYG—the web developers who can’t do without their frameworks and preprocessors are no better than our peers from the 1990s who couldn’t do without FrontPage or Dreamweaver. It is true that these tools have improved our lives as developers in many ways. At the same time, they have perhaps also prevented us from improving our basic skills.
I want to talk about one of those skills: the craft of writing CSS. Not of using CSS preprocessors or postprocessors, but of writing CSS itself. Why? Because CSS is second in importance only to HTML in web development, and because no one needs processors to build a site or app.
Most of all, I want to talk about this because when it comes to writing CSS, it often seems that we have learned nothing since the 1990s. We still write CSS the natural way, with no advances in sorting declarations or selectors and no improvements in writing DRY CSS.
Instead, many developers argue fiercely about each of these topics. Others simply dig in their heels and refuse to change. And a third cohort protests even the discussion of these topics.
I don’t care that developers do this. But I do care about our craft. And I care that we, as a profession, are ignoring simple ways to improve our work.
Let’s talk about this more after the code break.
Here’s unsorted, unoptimized CSS from Amazon in 2003.
.serif { font-family: times, serif; font-size: small; } .sans { font-family: verdana, arial, helvetica, sans-serif; font-size: small; } .small { font-family: verdana, arial, helvetica, sans-serif; font-size: x-small; } .h1 { font-family: verdana, arial, helvetica, sans-serif; color: #CC6600; font-size: small; } .h3color { font-family: verdana, arial, helvetica, sans-serif; color: #CC6600; font-size: x-small; } .tiny { font-family: verdana, arial, helvetica, sans-serif; font-size: xx-small; } .listprice { font-family: arial, verdana, sans-serif; text-decoration: line-through; font-size: x-small; } .price { font-family: verdana, arial, helvetica, sans-serif; color: #990000; font-size: x-small; } .attention { background-color: #FFFFD5; }
And here’s CSS from contemporary Amazon:
.a-box { display: block; border-radius: 4px; border: 1px #ddd solid; background-color: #fff; } .a-box .a-box-inner { border-radius: 4px; position: relative; padding: 14px 18px; } .a-box-thumbnail { display: inline-block; } .a-box-thumbnail .a-box-inner { padding: 0 !important; } .a-box-thumbnail .a-box-inner img { border-radius: 4px; } .a-box-title { overflow: hidden; } .a-box-title .a-box-inner { overflow: hidden; padding: 12px 18px 11px; background: #f0f0f0; }
Just as in 2003, the CSS is unsorted and unoptimized. Did we learn anything over the past 15 years? Is this really the best CSS we can write?
Let’s look at three areas where I believe we can easily improve the way we do our work: declaration sorting, selector sorting, and declaration repetition.
Declaration sorting
The 90s web developer, if he or she wrote CSS, wrote CSS as it occurred to them. Without sense or order—with no direction whatsoever. The same was true of last decade’s developer. The same is true of today’s developer, whether novice or expert.
.foo { font: arial, sans-serif; background: #abc; margin: 1em; text-align: center; letter-spacing: 1px; -x-yaddayadda: yes; }
The only difference between now and then: today’s expert developer uses eight variables, because “that’s how you do it” (even with one-pagers) and because at some point in their life they may need them. In twenty-something years of web development we have somehow not managed to make our CSS consistent and easier to work on by establishing the (or even a) common sense standard to sort declarations.
(If this sounds harsh, it’s because it’s true. Developers condemn selectors, shorthands, !important, and other useful aspects of CSS rather than concede that they don’t even know how to sort their declarations.)
In reality, the issue is dead simple: Declarations should be sorted alphabetically. Period.
Why?
For one, sorting makes collaborating easier.
Untrained developers can do it. Non-English speakers (such as this author) can do it. I wouldn’t be surprised to learn that even houseplants can do it.
For another reason, alphabetical sorting can be automated. What’s that? Yes, one can use or write little scripts (such as CSS Declaration Sorter) to sort declarations.
Given the ease of sorting, and its benefits, the current state of affairs borders on the ridiculous, making it tempting to ignore our peers who don’t sort declarations, and to ban from our lives those who argue that it’s easier—or even logical—not to sort alphabetically but instead to sort based on 1) box dimensions, 2) colors, 3) grid- or flexbox-iness, 4) mood, 5) what they ate for breakfast, or some equally random basis.
With this issue settled (if somewhat provocatively), on to our second problem from the 90s.
Selector sorting
The situation concerning selectors is quite similar. Almost since 1994, developers have written selectors and rules as they occurred to them. Perhaps they’ve moved them around (“Oh, that belongs with the nav”). Perhaps they’ve refactored their style sheets (“Oh, strange that site styles appear amidst notification styles”). But standardizing the order—no.
Let’s take a step back and assume that order does matter, not just for aesthetics as one might think, but for collaboration. As an example, think of the letters below as selectors. Which list would be easiest to work with?
c, b · a · a, b · c, d · d, c, a · e · a c · b · a, b · a · c, d · a, c, d · a · e a, b · a, c, d · a · b, c · c, d · e
The fact that one selector (a) was a duplicate that only got discovered and merged in the last row perhaps gives away my preference. But then, if you wanted to add d, e to the list, wouldn’t the order of the third row make placing the new selector easier than placing it in either of the first two rows?
This example gets at the two issues caused by not sorting selectors:
No one knows where to add new selectors, creating a black hole in the workflow.
There’s a higher chance of both selector repetition and duplication of rules with the same selectors.
Both problems get compounded in larger projects and larger teams. Both problems have haunted us since the 90s. Both problems get fixed by standardizing—through coding guidelines—how selectors should be ordered.
The answer in this case is not as trivial as sorting alphabetically (although we could play with the idea—the cognitive ease of alphabetical selector sorting may make it worth trying). But we can take a path similar to how the HTML spec roughly groups elements, so that we first define sections, and then grouping elements, text elements, etc. (That’s also the approach of at least one draft, the author’s.)
The point is that ideal selector sorting doesn’t just occur naturally and automatically. We can benefit from putting more thought into this problem.
Declaration repetition
Our third hangover from the 90s is that there is and has always been an insane amount of repetition in our style sheets. According to one analysis of more than 200 websites, a median of 66% of all declarations are redundant, and the repetition rate goes as high as 92%—meaning that, in this study at least, the typical website uses each declaration at least three times and some up to ten times.
As shown by a list of some sample sites I compiled, declaration repetition has indeed been bad from the start and has even increased slightly over the years.
Yes, there are reasons for repetition: notably for different target media (we may repeat ourselves for screen, print, or different viewport sizes) and, occasionally, for the cascade. That is why a repetition rate of 10–20% seems to be acceptable. But the degree of repetition we observe right now is not acceptable—it’s an unoptimized mess that goes mostly unnoticed.
What’s the solution here? One possibility is to use declarations just once. We’ve seen with a sample optimization of Yandex’s large-scale site that this can lead to slightly more unwieldy style sheets, but we also know that in many other cases it does make them smaller and more compact.
This approach of using declarations just once has at least three benefits:
It reduces repetition to a more acceptable amount.
It reduces the pseudo need for variables.
Excluding outliers like Yandex, it reduces file size and payload (10–20% according to my own experience—we looked at the effects years ago at Google).
No matter what practice we as a field come up with—whether to use declarations just once or follow a different path—the current level of “natural repetition” we face on sample websites is too high. We shouldn’t need to remind ourselves not to repeat ourselves if we repeat code up to nine times, and it’s getting outright pathetic—again excuse the strong language—if then we’re also the ones to scream for constants and variables and other features only because we’ve never stopped to question this 90s-style coding.
The unnatural, more modern way of writing CSS
Targeting these three areas would help us move to a more modern way of writing style sheets, one that has a straightforward but powerful way to sort declarations, includes a plan for ordering selectors, and minimizes declaration repetition.
In this article, we’ve outlined some options for us to adhere to this more modern way:
Sort declarations alphabetically.
Use an existing order system or standardize and follow a new selector order system.
Try to use declarations just once.
Get assistance through tools.
And yet there’s still great potential to improve in all of these areas. The potential, then, is what we should close with. While I’ve emphasized our “no changes since the 90s” way of writing CSS, and stressed the need for robust practices, we need more proposals, studies, and conversations around what practices are most beneficial. Beneficial in terms of writing better, more consistent CSS, but also in terms of balancing our sense of craft (our mastery of our profession) with a high degree of efficiency (automating when it’s appropriate). Striving to achieve this balance will help ensure that developers twenty years from now won’t have to write rants about hangovers from the 2010s.
http://ift.tt/2H6YyWz
0 notes
waltercostellone · 7 years ago
Text
We Write CSS Like We Did in the 90s, and Yes, It’s Silly
As web developers, we marvel at technology. We enjoy the many tools that help with our work: multipurpose editors, frameworks, libraries, polyfills and shims, content management systems, preprocessors, build and deployment tools, development consoles, production monitors—the list goes on.
Our delight in these tools is so strong that no one questions whether a small website actually requires any of them. Tool obesity is the new WYSIWYG—the web developers who can’t do without their frameworks and preprocessors are no better than our peers from the 1990s who couldn’t do without FrontPage or Dreamweaver. It is true that these tools have improved our lives as developers in many ways. At the same time, they have perhaps also prevented us from improving our basic skills.
I want to talk about one of those skills: the craft of writing CSS. Not of using CSS preprocessors or postprocessors, but of writing CSS itself. Why? Because CSS is second in importance only to HTML in web development, and because no one needs processors to build a site or app.
Most of all, I want to talk about this because when it comes to writing CSS, it often seems that we have learned nothing since the 1990s. We still write CSS the natural way, with no advances in sorting declarations or selectors and no improvements in writing DRY CSS.
Instead, many developers argue fiercely about each of these topics. Others simply dig in their heels and refuse to change. And a third cohort protests even the discussion of these topics.
I don’t care that developers do this. But I do care about our craft. And I care that we, as a profession, are ignoring simple ways to improve our work.
Let’s talk about this more after the code break.
Here’s unsorted, unoptimized CSS from Amazon in 2003.
.serif { font-family: times, serif; font-size: small; } .sans { font-family: verdana, arial, helvetica, sans-serif; font-size: small; } .small { font-family: verdana, arial, helvetica, sans-serif; font-size: x-small; } .h1 { font-family: verdana, arial, helvetica, sans-serif; color: #CC6600; font-size: small; } .h3color { font-family: verdana, arial, helvetica, sans-serif; color: #CC6600; font-size: x-small; } .tiny { font-family: verdana, arial, helvetica, sans-serif; font-size: xx-small; } .listprice { font-family: arial, verdana, sans-serif; text-decoration: line-through; font-size: x-small; } .price { font-family: verdana, arial, helvetica, sans-serif; color: #990000; font-size: x-small; } .attention { background-color: #FFFFD5; }
And here’s CSS from contemporary Amazon:
.a-box { display: block; border-radius: 4px; border: 1px #ddd solid; background-color: #fff; } .a-box .a-box-inner { border-radius: 4px; position: relative; padding: 14px 18px; } .a-box-thumbnail { display: inline-block; } .a-box-thumbnail .a-box-inner { padding: 0 !important; } .a-box-thumbnail .a-box-inner img { border-radius: 4px; } .a-box-title { overflow: hidden; } .a-box-title .a-box-inner { overflow: hidden; padding: 12px 18px 11px; background: #f0f0f0; }
Just as in 2003, the CSS is unsorted and unoptimized. Did we learn anything over the past 15 years? Is this really the best CSS we can write?
Let’s look at three areas where I believe we can easily improve the way we do our work: declaration sorting, selector sorting, and declaration repetition.
Declaration sorting
The 90s web developer, if he or she wrote CSS, wrote CSS as it occurred to them. Without sense or order—with no direction whatsoever. The same was true of last decade’s developer. The same is true of today’s developer, whether novice or expert.
.foo { font: arial, sans-serif; background: #abc; margin: 1em; text-align: center; letter-spacing: 1px; -x-yaddayadda: yes; }
The only difference between now and then: today’s expert developer uses eight variables, because “that’s how you do it” (even with one-pagers) and because at some point in their life they may need them. In twenty-something years of web development we have somehow not managed to make our CSS consistent and easier to work on by establishing the (or even a) common sense standard to sort declarations.
(If this sounds harsh, it’s because it’s true. Developers condemn selectors, shorthands, !important, and other useful aspects of CSS rather than concede that they don’t even know how to sort their declarations.)
In reality, the issue is dead simple: Declarations should be sorted alphabetically. Period.
Why?
For one, sorting makes collaborating easier.
Untrained developers can do it. Non-English speakers (such as this author) can do it. I wouldn’t be surprised to learn that even houseplants can do it.
For another reason, alphabetical sorting can be automated. What’s that? Yes, one can use or write little scripts (such as CSS Declaration Sorter) to sort declarations.
Given the ease of sorting, and its benefits, the current state of affairs borders on the ridiculous, making it tempting to ignore our peers who don’t sort declarations, and to ban from our lives those who argue that it’s easier—or even logical—not to sort alphabetically but instead to sort based on 1) box dimensions, 2) colors, 3) grid- or flexbox-iness, 4) mood, 5) what they ate for breakfast, or some equally random basis.
With this issue settled (if somewhat provocatively), on to our second problem from the 90s.
Selector sorting
The situation concerning selectors is quite similar. Almost since 1994, developers have written selectors and rules as they occurred to them. Perhaps they’ve moved them around (“Oh, that belongs with the nav”). Perhaps they’ve refactored their style sheets (“Oh, strange that site styles appear amidst notification styles”). But standardizing the order—no.
Let’s take a step back and assume that order does matter, not just for aesthetics as one might think, but for collaboration. As an example, think of the letters below as selectors. Which list would be easiest to work with?
c, b · a · a, b · c, d · d, c, a · e · a c · b · a, b · a · c, d · a, c, d · a · e a, b · a, c, d · a · b, c · c, d · e
The fact that one selector (a) was a duplicate that only got discovered and merged in the last row perhaps gives away my preference. But then, if you wanted to add d, e to the list, wouldn’t the order of the third row make placing the new selector easier than placing it in either of the first two rows?
This example gets at the two issues caused by not sorting selectors:
No one knows where to add new selectors, creating a black hole in the workflow.
There’s a higher chance of both selector repetition and duplication of rules with the same selectors.
Both problems get compounded in larger projects and larger teams. Both problems have haunted us since the 90s. Both problems get fixed by standardizing—through coding guidelines—how selectors should be ordered.
The answer in this case is not as trivial as sorting alphabetically (although we could play with the idea—the cognitive ease of alphabetical selector sorting may make it worth trying). But we can take a path similar to how the HTML spec roughly groups elements, so that we first define sections, and then grouping elements, text elements, etc. (That’s also the approach of at least one draft, the author’s.)
The point is that ideal selector sorting doesn’t just occur naturally and automatically. We can benefit from putting more thought into this problem.
Declaration repetition
Our third hangover from the 90s is that there is and has always been an insane amount of repetition in our style sheets. According to one analysis of more than 200 websites, a median of 66% of all declarations are redundant, and the repetition rate goes as high as 92%—meaning that, in this study at least, the typical website uses each declaration at least three times and some up to ten times.
As shown by a list of some sample sites I compiled, declaration repetition has indeed been bad from the start and has even increased slightly over the years.
Yes, there are reasons for repetition: notably for different target media (we may repeat ourselves for screen, print, or different viewport sizes) and, occasionally, for the cascade. That is why a repetition rate of 10–20% seems to be acceptable. But the degree of repetition we observe right now is not acceptable—it’s an unoptimized mess that goes mostly unnoticed.
What’s the solution here? One possibility is to use declarations just once. We’ve seen with a sample optimization of Yandex’s large-scale site that this can lead to slightly more unwieldy style sheets, but we also know that in many other cases it does make them smaller and more compact.
This approach of using declarations just once has at least three benefits:
It reduces repetition to a more acceptable amount.
It reduces the pseudo need for variables.
Excluding outliers like Yandex, it reduces file size and payload (10–20% according to my own experience—we looked at the effects years ago at Google).
No matter what practice we as a field come up with—whether to use declarations just once or follow a different path—the current level of “natural repetition” we face on sample websites is too high. We shouldn’t need to remind ourselves not to repeat ourselves if we repeat code up to nine times, and it’s getting outright pathetic—again excuse the strong language—if then we’re also the ones to scream for constants and variables and other features only because we’ve never stopped to question this 90s-style coding.
The unnatural, more modern way of writing CSS
Targeting these three areas would help us move to a more modern way of writing style sheets, one that has a straightforward but powerful way to sort declarations, includes a plan for ordering selectors, and minimizes declaration repetition.
In this article, we’ve outlined some options for us to adhere to this more modern way:
Sort declarations alphabetically.
Use an existing order system or standardize and follow a new selector order system.
Try to use declarations just once.
Get assistance through tools.
And yet there’s still great potential to improve in all of these areas. The potential, then, is what we should close with. While I’ve emphasized our “no changes since the 90s” way of writing CSS, and stressed the need for robust practices, we need more proposals, studies, and conversations around what practices are most beneficial. Beneficial in terms of writing better, more consistent CSS, but also in terms of balancing our sense of craft (our mastery of our profession) with a high degree of efficiency (automating when it’s appropriate). Striving to achieve this balance will help ensure that developers twenty years from now won’t have to write rants about hangovers from the 2010s.
http://ift.tt/2H6YyWz
0 notes
jeanshesallenberger · 7 years ago
Text
We Write CSS Like We Did in the 90s, and Yes, It’s Silly
As web developers, we marvel at technology. We enjoy the many tools that help with our work: multipurpose editors, frameworks, libraries, polyfills and shims, content management systems, preprocessors, build and deployment tools, development consoles, production monitors—the list goes on.
Our delight in these tools is so strong that no one questions whether a small website actually requires any of them. Tool obesity is the new WYSIWYG—the web developers who can’t do without their frameworks and preprocessors are no better than our peers from the 1990s who couldn’t do without FrontPage or Dreamweaver. It is true that these tools have improved our lives as developers in many ways. At the same time, they have perhaps also prevented us from improving our basic skills.
I want to talk about one of those skills: the craft of writing CSS. Not of using CSS preprocessors or postprocessors, but of writing CSS itself. Why? Because CSS is second in importance only to HTML in web development, and because no one needs processors to build a site or app.
Most of all, I want to talk about this because when it comes to writing CSS, it often seems that we have learned nothing since the 1990s. We still write CSS the natural way, with no advances in sorting declarations or selectors and no improvements in writing DRY CSS.
Instead, many developers argue fiercely about each of these topics. Others simply dig in their heels and refuse to change. And a third cohort protests even the discussion of these topics.
I don’t care that developers do this. But I do care about our craft. And I care that we, as a profession, are ignoring simple ways to improve our work.
Let’s talk about this more after the code break.
Here’s unsorted, unoptimized CSS from Amazon in 2003.
.serif { font-family: times, serif; font-size: small; } .sans { font-family: verdana, arial, helvetica, sans-serif; font-size: small; } .small { font-family: verdana, arial, helvetica, sans-serif; font-size: x-small; } .h1 { font-family: verdana, arial, helvetica, sans-serif; color: #CC6600; font-size: small; } .h3color { font-family: verdana, arial, helvetica, sans-serif; color: #CC6600; font-size: x-small; } .tiny { font-family: verdana, arial, helvetica, sans-serif; font-size: xx-small; } .listprice { font-family: arial, verdana, sans-serif; text-decoration: line-through; font-size: x-small; } .price { font-family: verdana, arial, helvetica, sans-serif; color: #990000; font-size: x-small; } .attention { background-color: #FFFFD5; }
And here’s CSS from contemporary Amazon:
.a-box { display: block; border-radius: 4px; border: 1px #ddd solid; background-color: #fff; } .a-box .a-box-inner { border-radius: 4px; position: relative; padding: 14px 18px; } .a-box-thumbnail { display: inline-block; } .a-box-thumbnail .a-box-inner { padding: 0 !important; } .a-box-thumbnail .a-box-inner img { border-radius: 4px; } .a-box-title { overflow: hidden; } .a-box-title .a-box-inner { overflow: hidden; padding: 12px 18px 11px; background: #f0f0f0; }
Just as in 2003, the CSS is unsorted and unoptimized. Did we learn anything over the past 15 years? Is this really the best CSS we can write?
Let’s look at three areas where I believe we can easily improve the way we do our work: declaration sorting, selector sorting, and declaration repetition.
Declaration sorting
The 90s web developer, if he or she wrote CSS, wrote CSS as it occurred to them. Without sense or order—with no direction whatsoever. The same was true of last decade’s developer. The same is true of today’s developer, whether novice or expert.
.foo { font: arial, sans-serif; background: #abc; margin: 1em; text-align: center; letter-spacing: 1px; -x-yaddayadda: yes; }
The only difference between now and then: today’s expert developer uses eight variables, because “that’s how you do it” (even with one-pagers) and because at some point in their life they may need them. In twenty-something years of web development we have somehow not managed to make our CSS consistent and easier to work on by establishing the (or even a) common sense standard to sort declarations.
(If this sounds harsh, it’s because it’s true. Developers condemn selectors, shorthands, !important, and other useful aspects of CSS rather than concede that they don’t even know how to sort their declarations.)
In reality, the issue is dead simple: Declarations should be sorted alphabetically. Period.
Why?
For one, sorting makes collaborating easier.
Untrained developers can do it. Non-English speakers (such as this author) can do it. I wouldn’t be surprised to learn that even houseplants can do it.
For another reason, alphabetical sorting can be automated. What’s that? Yes, one can use or write little scripts (such as CSS Declaration Sorter) to sort declarations.
Given the ease of sorting, and its benefits, the current state of affairs borders on the ridiculous, making it tempting to ignore our peers who don’t sort declarations, and to ban from our lives those who argue that it’s easier—or even logical—not to sort alphabetically but instead to sort based on 1) box dimensions, 2) colors, 3) grid- or flexbox-iness, 4) mood, 5) what they ate for breakfast, or some equally random basis.
With this issue settled (if somewhat provocatively), on to our second problem from the 90s.
Selector sorting
The situation concerning selectors is quite similar. Almost since 1994, developers have written selectors and rules as they occurred to them. Perhaps they’ve moved them around (“Oh, that belongs with the nav”). Perhaps they’ve refactored their style sheets (“Oh, strange that site styles appear amidst notification styles”). But standardizing the order—no.
Let’s take a step back and assume that order does matter, not just for aesthetics as one might think, but for collaboration. As an example, think of the letters below as selectors. Which list would be easiest to work with?
c, b · a · a, b · c, d · d, c, a · e · a c · b · a, b · a · c, d · a, c, d · a · e a, b · a, c, d · a · b, c · c, d · e
The fact that one selector (a) was a duplicate that only got discovered and merged in the last row perhaps gives away my preference. But then, if you wanted to add d, e to the list, wouldn’t the order of the third row make placing the new selector easier than placing it in either of the first two rows?
This example gets at the two issues caused by not sorting selectors:
No one knows where to add new selectors, creating a black hole in the workflow.
There’s a higher chance of both selector repetition and duplication of rules with the same selectors.
Both problems get compounded in larger projects and larger teams. Both problems have haunted us since the 90s. Both problems get fixed by standardizing—through coding guidelines—how selectors should be ordered.
The answer in this case is not as trivial as sorting alphabetically (although we could play with the idea—the cognitive ease of alphabetical selector sorting may make it worth trying). But we can take a path similar to how the HTML spec roughly groups elements, so that we first define sections, and then grouping elements, text elements, etc. (That’s also the approach of at least one draft, the author’s.)
The point is that ideal selector sorting doesn’t just occur naturally and automatically. We can benefit from putting more thought into this problem.
Declaration repetition
Our third hangover from the 90s is that there is and has always been an insane amount of repetition in our style sheets. According to one analysis of more than 200 websites, a median of 66% of all declarations are redundant, and the repetition rate goes as high as 92%—meaning that, in this study at least, the typical website uses each declaration at least three times and some up to ten times.
As shown by a list of some sample sites I compiled, declaration repetition has indeed been bad from the start and has even increased slightly over the years.
Yes, there are reasons for repetition: notably for different target media (we may repeat ourselves for screen, print, or different viewport sizes) and, occasionally, for the cascade. That is why a repetition rate of 10–20% seems to be acceptable. But the degree of repetition we observe right now is not acceptable—it’s an unoptimized mess that goes mostly unnoticed.
What’s the solution here? One possibility is to use declarations just once. We’ve seen with a sample optimization of Yandex’s large-scale site that this can lead to slightly more unwieldy style sheets, but we also know that in many other cases it does make them smaller and more compact.
This approach of using declarations just once has at least three benefits:
It reduces repetition to a more acceptable amount.
It reduces the pseudo need for variables.
Excluding outliers like Yandex, it reduces file size and payload (10–20% according to my own experience—we looked at the effects years ago at Google).
No matter what practice we as a field come up with—whether to use declarations just once or follow a different path—the current level of “natural repetition” we face on sample websites is too high. We shouldn’t need to remind ourselves not to repeat ourselves if we repeat code up to nine times, and it’s getting outright pathetic—again excuse the strong language—if then we’re also the ones to scream for constants and variables and other features only because we’ve never stopped to question this 90s-style coding.
The unnatural, more modern way of writing CSS
Targeting these three areas would help us move to a more modern way of writing style sheets, one that has a straightforward but powerful way to sort declarations, includes a plan for ordering selectors, and minimizes declaration repetition.
In this article, we’ve outlined some options for us to adhere to this more modern way:
Sort declarations alphabetically.
Use an existing order system or standardize and follow a new selector order system.
Try to use declarations just once.
Get assistance through tools.
And yet there’s still great potential to improve in all of these areas. The potential, then, is what we should close with. While I’ve emphasized our “no changes since the 90s” way of writing CSS, and stressed the need for robust practices, we need more proposals, studies, and conversations around what practices are most beneficial. Beneficial in terms of writing better, more consistent CSS, but also in terms of balancing our sense of craft (our mastery of our profession) with a high degree of efficiency (automating when it’s appropriate). Striving to achieve this balance will help ensure that developers twenty years from now won’t have to write rants about hangovers from the 2010s.
http://ift.tt/2H6YyWz
0 notes