#types of testing in software development
Explore tagged Tumblr posts
Text
How to Create Effective Test Cases for Functional Testing
Creating well-structured test cases is essential for ensuring the accuracy and reliability of functional testing. A well-written test case helps testers validate software functionality, detect defects, and improve overall quality.
Steps to Create Effective Test Cases
Understand Requirements – Analyze functional specifications, user stories, and business rules to ensure comprehensive coverage.
Define Clear Objectives – Each test case should focus on a specific function or feature with a clear expected outcome.
Write Detailed Test Steps – Provide step-by-step instructions for execution, including input values, actions, and expected results.
Ensure Test Case Independence – Design test cases that can be executed independently to avoid dependencies and inconsistencies.
Include Positive & Negative Scenarios – Cover both expected behavior (positive testing) and edge cases (negative testing) to improve software testing robustness.
Prioritize Test Cases – Identify critical test cases that address high-risk functionalities and execute them first.
Leverage Automation Where Possible – Automate repetitive test cases to enhance efficiency and accuracy.
Conclusion
Effective test cases enhance functional testing by improving defect detection, reducing rework, and ensuring software reliability. Following best practices and continuously refining test cases helps achieve higher software quality and better user experience.
#functional testing#types of software testing#automated functional testing#functional testing in software testing#functional testing types#types of automation testing#functional testing software#functional testing tool#types of testing in software development
0 notes
Text
#agile development#backend development#conclusion#continuous deployment#continuous integration#deployment#designing#DevOps#DevOps engineer#documentation#FAQs#frontend development#introduction#lean development#maintenance#product manager#Programming Languages#quality assurance engineer#requirement analysis#scrum master#software development#software development jobs#software development life cycle#software engineer#test-driven development#testing#types of software development#user documentation#what is software development
0 notes
Text
What are the types of XPath?
XPath is a query language used for navigating and querying XML documents. XPath provides a way to navigate through elements and attributes in an XML document.
There are two main types of XPath expressions: absolute and relative.
Absolute XPath:
Absolute XPath starts from the root of the document and includes the complete path to the element.
It begins with a single forward slash ("/") representing the root node and includes all the elements along the path to the target element.
For example: /html/body/div[1]/p[2]/a
Relative XPath:
Relative XPath is more flexible and doesn't start from the root. Instead, it starts from any node in the document.
It uses a double forward slash ("//") to select nodes at any level in the document.
For example: //div[@class='example']//a[contains(@href, 'example')]
XPath can also be categorized based on the types of expressions used:
Node Selection:
XPath can be used to select nodes based on their type, such as element nodes, attribute nodes, text nodes, etc.
Example: /bookstore/book selects all <book> elements that are children of the <bookstore> element.
Path Expression:
Path expressions in XPath describe a path to navigate through elements and attributes in an XML document.
Example: /bookstore/book/title selects all <title> elements that are children of the <book> elements that are children of the <bookstore> element.
Predicate:
Predicates are used to filter nodes based on certain conditions.
Example: /bookstore/book[price>35] selects all <book> elements that have a <price> element with a value greater than 35.
Function:
XPath provides a variety of functions for string manipulation, mathematical operations, and more.
Example: //div[contains(@class, 'example')] selects all <div> elements with a class attribute containing the word 'example'.
These types and expressions can be combined and customized to create powerful XPath queries for different XML structures. XPath is commonly used in web scraping, XML document processing, and in conjunction with tools like Selenium for web automation.
#xpath#selenium#automation testing#xpath types#software testing#future trends#software development#software engineer
0 notes
Text
Click here to read more about this.
0 notes
Text

#application development#application development services#app developers#cloud computing company#software testing types and methods#data analytics company
0 notes
Text
The Importance of ETL Testing in Data Integration
What is ETL Testing?
ETL Testing (extraction, transformation, and loading) is a crucial process that helps ensure the accuracy, completeness, and quality of data. For example, consider "Optruc Private Limited" as a retail company. It operates around multiple stores with individual databases for sales, inventory, and customer data. To analyze overall sales performance, Optruc employs the ETL process.
The sales data from each store's database then undergoes the ETL processes. Finally, it is loaded into a centralized data warehouse for comprehensive analysis. So, ETL Testing enables informed decision-making by verifying the:
reliability,
consistency,
analysis readiness of data
Further, let's explore the significance of ETL in data integration and its benefits for businesses.
Importance of ETL Testing in Data Integration
Here are the top 5 reasons why ETL testing is important for data integration:
Data Accuracy: Reliable and trustworthy data allows informed business decisions. That is, ETL Testing is used for:
Verification of extraction correctness
Accurate transformation based on defined rules
Loading data into the target system without loss or corruption
Data Completeness: Complete data sets are crucial for accurate analysis. So, ETL Testing ensures all relevant information is extracted and loaded. It validates no data is missed or omitted during ETL.
Data Quality: ETL Testing ensures the quality of data by identifying and resolving:
Inconsistencies
Duplicates
Errors during extraction or transformation
So, it validates data consistency for reliable analysis and reporting. This ultimately leads to accurate insights.
System Integration: It verifies the compatibility and functionality of ETL processes in data integration with:
Databases
Applications
Systems
This enables a unified view of data and consolidates information from diverse sources for analysis and reporting.
Performance Optimization: ETL Testing optimizes ETL processes and overall data integration system performance. It identifies:
Bottlenecks
Inefficiencies
Performance issues
This optimization enhances data integration efficiency. Thus, enabling more efficient extraction and processing of large data volumes.
Now that you have understood the significance of ETL, exploring a business use case further can encourage you to adopt it..
Business Use Case of ETL Testing
Let’s consider a hypothetical scenario of a healthcare organization that collects patient data from hospitals, clinics, and laboratories. This data needs to be integrated into a centralized system to provide a comprehensive view of patient health records.
In this case, ETL Testing would be crucial for the healthcare organization. It can ensure that patient data is accurately extracted, transformed, and loaded into the centralized system.
By performing ETL Testing, the healthcare organization can ensure the reliability and completeness of patient records. This enables healthcare professionals to:
Make informed decisions
Provide accurate diagnoses
Deliver personalized care
Thus, in today's data-driven world, ETL Testing is essential for the success and effectiveness of data integration projects.
Also, if you're ready to streamline your operations and maximize overall productivity, partner with Nitor Infotech for long-term collaboration and success.
#etl testing#types of etl testing#nitorinfotech#blog#performance testing#etl in testing#etl tool#etl software#software development#software engineering#software services#etl#software
0 notes
Text
Writing Notes: Cookbook

Whether you want to turn your own recipes into a cookbook as a family keepsake, or work with a publisher to get the most viral recipes from your blog onto paper and into bookstores, making a cookbook is often a fun but work-intensive process.
How to Make a Cookbook
The process of making a cookbook will depend on your publishing route, but in general you’ll need to work through the following steps:
Concept: The first step of making a cookbook is to figure out what kind of cookbook this will be. Your cookbook can focus on a single ingredient, meal, region, or culture. It can be an educational tome for beginners, or a slapdash collection of family favorites for your relatives. If you’re looking to get your cookbook published, a book proposal is a necessary step towards getting a book deal, and can also help you pin down your concept.
Compile recipes: If you’ve been dreaming of writing a cookbook, chances are you probably already know some recipes that have to be included. Make a list of those important recipes and use that as a jumping-off point to brainstorm how your cookbook will be organized and what other recipes need to be developed. If you’re compiling a community cookbook, reach out to your community members and assemble their recipes.
Outline: Based on your guiding concept and key recipes, make a rough table of contents. Possibly the most common way to divide a cookbook is into meals (appetizers, breakfast, lunch, dinner) but cookbooks can also be divided by season, raw ingredients (vegetables, fish, beef), cooking techniques, or some other narrative structure.
Recipe development: Flesh out your structure by developing beyond your core recipes, if needed, and fine-tuning those recipes which need a bit more work.
Recipe testing: Hire recipe testers, or enlist your friends and family, to test out your recipes in their home kitchens. Have them let you know what worked and didn’t work, or what was confusing.
Write the surrounding material: Most cookbooks include some writing other than the recipes. This may include chapter introductions and blurbs for each recipe.
Photography and layout: If your book includes photography, at some point there will be photo shoots where the food will have to be prepared and styled for camera. Traditional publishing houses will likely want to hire stylists and photographers who specialize in food photography. Once the images and text are both ready, a book designer will arrange them together and make the cover design, but you can also make your own cookbook design using software like InDesign or old-school DIY-style, with paper, scissors, and a photocopier.
Editing: If you’re working with a publisher, there may be several rounds of back and forth as your editor works with you to fine-tune the recipes and text. The book will then be sent to a copy editor who will go through the entire cookbook looking for grammar and style issues, and indexer for finishing touches. If you’re self-publishing, give a rough draft of your book to friends and family members to proofread.
Printing: After everything is laid out and approved, your cookbook is ready to be printed. If you’re printing your cookbook yourself, you can go to a copy shop to get it spiral bound, or send it off to a printer for more options.
Common Types of Cookbooks
More so than any other kind of nonfiction book, cookbooks lend themselves to self-publishing. Of course, cookbook publishing is also a huge industry, and a professional publisher might be the best route for your book depending on the scope and your reach as a chef.
Self-published: This is a cookbook made of up your own recipes, which you might give as gifts to family and friends. You can easily self-publish a cookbook online as an individual. But if having a print book is important to you, there are many options. You can print and staple together a short cookbook, zine-style. Many copy shops will also offer options for wire-bound cookbooks, and there are resources online that will print bookstore-quality softcover or hard-cover books for a fee.
Community cookbooks: A special subset of self-published cookbook made up of recipes from multiple individuals, usually to raise money for a cause or organization. Working with a group has the advantage of a large pool of recipes and testers, and is a great way to share your recipes with a larger audience while also supporting a cause you believe in.
Through a publishing house: If you think your cookbook has a wider audience, you may want to seek out a mainstream publishing house. Get a literary agent who can to publishers who can connect you with publishers who are interested in your cookbook. Large publishing houses don’t usually accept pitches from individuals, but you can reach out to small, local publishers without an agent as intermediary. To publish a cookbook through a publishing house, you’ll typically need a book proposal outlining your concept, audience, and budget.
Things to Consider Before Making a Cookbook
Before embarking on your cookbook project, it’s a good idea to get organized, and to figure out what kind of cookbook you want to make.
Photography: More so than other texts, cookbooks often include visual accompaniment. Beautiful pages of full-color photos are expensive, which is one reason publishers like to work with bloggers who can style and photograph their own food. Not all cookbooks need photos, however. Some of the most iconic cookbooks rely on illustrations, or words alone. Figure out what role, if any, visuals will play in your book.
Audience: Are you turning recipe cards into a keepsake family cookbook, or selling this cookbook nationwide? Your intended audience will greatly influence how you write and publish your cookbook, whether it’s vegans, college students, or owners of pressure cookers. You’ll need to consider your audience’s cooking skill level, desires, and where they buy their food.
Budget: Once you have a vision for what you want your cookbook to be, budget your time and resources. Do you need help to make this book? The answer is probably yes. Assemble a team of people who understand your vision and know what kind of commitment will be involved.
Source ⚜ More: Notes & References ⚜ Writing Resources PDFs
#cookbook#nonfiction#writing reference#writing tips#writeblr#dark academia#literature#writers on tumblr#spilled ink#writing prompt#light academia#writing ideas#writing inspiration#writing resources
44 notes
·
View notes
Text
Ever since OpenAI released ChatGPT at the end of 2022, hackers and security researchers have tried to find holes in large language models (LLMs) to get around their guardrails and trick them into spewing out hate speech, bomb-making instructions, propaganda, and other harmful content. In response, OpenAI and other generative AI developers have refined their system defenses to make it more difficult to carry out these attacks. But as the Chinese AI platform DeepSeek rockets to prominence with its new, cheaper R1 reasoning model, its safety protections appear to be far behind those of its established competitors.
Today, security researchers from Cisco and the University of Pennsylvania are publishing findings showing that, when tested with 50 malicious prompts designed to elicit toxic content, DeepSeek’s model did not detect or block a single one. In other words, the researchers say they were shocked to achieve a “100 percent attack success rate.”
The findings are part of a growing body of evidence that DeepSeek’s safety and security measures may not match those of other tech companies developing LLMs. DeepSeek’s censorship of subjects deemed sensitive by China’s government has also been easily bypassed.
“A hundred percent of the attacks succeeded, which tells you that there’s a trade-off,” DJ Sampath, the VP of product, AI software and platform at Cisco, tells WIRED. “Yes, it might have been cheaper to build something here, but the investment has perhaps not gone into thinking through what types of safety and security things you need to put inside of the model.”
Other researchers have had similar findings. Separate analysis published today by the AI security company Adversa AI and shared with WIRED also suggests that DeepSeek is vulnerable to a wide range of jailbreaking tactics, from simple language tricks to complex AI-generated prompts.
DeepSeek, which has been dealing with an avalanche of attention this week and has not spoken publicly about a range of questions, did not respond to WIRED’s request for comment about its model’s safety setup.
Generative AI models, like any technological system, can contain a host of weaknesses or vulnerabilities that, if exploited or set up poorly, can allow malicious actors to conduct attacks against them. For the current wave of AI systems, indirect prompt injection attacks are considered one of the biggest security flaws. These attacks involve an AI system taking in data from an outside source—perhaps hidden instructions of a website the LLM summarizes—and taking actions based on the information.
Jailbreaks, which are one kind of prompt-injection attack, allow people to get around the safety systems put in place to restrict what an LLM can generate. Tech companies don’t want people creating guides to making explosives or using their AI to create reams of disinformation, for example.
Jailbreaks started out simple, with people essentially crafting clever sentences to tell an LLM to ignore content filters—the most popular of which was called “Do Anything Now” or DAN for short. However, as AI companies have put in place more robust protections, some jailbreaks have become more sophisticated, often being generated using AI or using special and obfuscated characters. While all LLMs are susceptible to jailbreaks, and much of the information could be found through simple online searches, chatbots can still be used maliciously.
“Jailbreaks persist simply because eliminating them entirely is nearly impossible—just like buffer overflow vulnerabilities in software (which have existed for over 40 years) or SQL injection flaws in web applications (which have plagued security teams for more than two decades),” Alex Polyakov, the CEO of security firm Adversa AI, told WIRED in an email.
Cisco’s Sampath argues that as companies use more types of AI in their applications, the risks are amplified. “It starts to become a big deal when you start putting these models into important complex systems and those jailbreaks suddenly result in downstream things that increases liability, increases business risk, increases all kinds of issues for enterprises,” Sampath says.
The Cisco researchers drew their 50 randomly selected prompts to test DeepSeek’s R1 from a well-known library of standardized evaluation prompts known as HarmBench. They tested prompts from six HarmBench categories, including general harm, cybercrime, misinformation, and illegal activities. They probed the model running locally on machines rather than through DeepSeek’s website or app, which send data to China.
Beyond this, the researchers say they have also seen some potentially concerning results from testing R1 with more involved, non-linguistic attacks using things like Cyrillic characters and tailored scripts to attempt to achieve code execution. But for their initial tests, Sampath says, his team wanted to focus on findings that stemmed from a generally recognized benchmark.
Cisco also included comparisons of R1’s performance against HarmBench prompts with the performance of other models. And some, like Meta’s Llama 3.1, faltered almost as severely as DeepSeek’s R1. But Sampath emphasizes that DeepSeek’s R1 is a specific reasoning model, which takes longer to generate answers but pulls upon more complex processes to try to produce better results. Therefore, Sampath argues, the best comparison is with OpenAI’s o1 reasoning model, which fared the best of all models tested. (Meta did not immediately respond to a request for comment).
Polyakov, from Adversa AI, explains that DeepSeek appears to detect and reject some well-known jailbreak attacks, saying that “it seems that these responses are often just copied from OpenAI’s dataset.” However, Polyakov says that in his company’s tests of four different types of jailbreaks—from linguistic ones to code-based tricks—DeepSeek’s restrictions could easily be bypassed.
“Every single method worked flawlessly,” Polyakov says. “What’s even more alarming is that these aren’t novel ‘zero-day’ jailbreaks—many have been publicly known for years,” he says, claiming he saw the model go into more depth with some instructions around psychedelics than he had seen any other model create.
“DeepSeek is just another example of how every model can be broken—it’s just a matter of how much effort you put in. Some attacks might get patched, but the attack surface is infinite,” Polyakov adds. “If you’re not continuously red-teaming your AI, you’re already compromised.”
57 notes
·
View notes
Text
Solo Mode [1] jackson wang x fem!oc
Masterlist
A/N: I've had this idea knocking around in my brain for a while, never had the push to write it until Jackson started releasing music again. It's my little birthday gift for myself ☺️ Lemme know what you think!
Pairing: jackson wang/fem!oc
Summary: He's an international pop star trying to outrun burnout. She's a sharp-tongued software engineer who doesn't do feelings. What starts as a no-strings arrangement quickly unravels into something messier, softer, and realer than either of them planned. Between chaotic breakfasts, late-night confessions, and breaking every rule they set, Jackson and Heather find themselves in deep — and neither of them knows how to stop it.
Warnings: strong language, alcohol consumption
Word Count: 1.7k
Heather had been staring at her screen so long her eyes felt like they’d been rubbed raw with sandpaper.
A single red error message blinked in the corner of her code editor like a middle finger. She typed something, rewrote it, deleted it, then typed it again with more force—like that would make the compiler less of a bitch.
The fix was so close. She could feel it.
This patent meant everything. Years of development. Her own codebase. Her design. Her algorithm. Her name. She was going to stamp that shit into tech history if it killed her—and given the four hours of sleep she was running on, it might.
Her tea was cold. Again.
She shoved the cup aside and reached for her headphones, already resigned to another night of silence and circuits.
Then came the bass.
A low, rhythmic thump, like a heartbeat made of bad decisions, started pulsing through her wall.
Heather paused, jaw tightening.
She waited. Sometimes it was just a one-song thing—someone testing a speaker. A music cue for a home workout. A tragic attempt at a sex playlist. She could forgive that.
The song ended.
Another one started.
Louder.
This one had more bass. Thicker vocals. A synth loop that could drill straight into her skull.
Heather yanked off her headphones. Waited.
Male voices joined the music—shouting, laughing. Someone belted a high note and knocked straight into a wall. She heard the distinct clatter of something heavy hitting the floor.
Her eye twitched.
She stared at her code like she could will the function to solve itself. She counted to ten. Counted again. Then shoved her headphones back on and turned up her white noise generator until it hissed like static in her skull.
Ten minutes.
Fifteen.
The wall thumped again.
“Fuck me,” she muttered, slamming her laptop shut.
She marched to the wall and slapped it with her palm. “Shut the fuck up!”
A chorus of mocking laughter greeted her back. The music didn’t stop.
Heather turned in a slow, surgical circle, walked to her front door, yanked it open, and stalked barefoot into the hallway like a vengeance demon in a hoodie. The hallway bulb flickered overhead, as always, and the noise spilled clearer from the apartment next to hers.
5D.
Of course it was 5D. The asshole with the luxury vinyl door mat and people shuffling in and out at all hours of the morning. She’d hardly seen his face. She didn’t care to. Whoever he was, he partied too much, wore too much cologne, and had the kind of deep-pocket PR budget that covered noise complaints like napkins on spilled liquor.
She knocked once.
Nothing.
She banged again. Harder.
The music cut mid-drop.
Muffled voices argued. Something about “just open the fucking door, bro, she’s gonna call the super.”
It swung open.
And standing there—shirt undone, chain glinting, black silk clinging to smooth, a jaw line sharp enough to cut glass, inked skin and an expression too drunk to care—was him.
Heather froze. He smiled, lazy and stupid and pretty. One brow quirked like she’d shown up to amuse him.
“Hey,” he said, drawl thick with booze. “You lost?”
“No,” she snapped, arms crossing. “I’m working. Or I was. Until you and your frat house remix session decided 3 a.m. was prime time for a rave.”
He blinked. Then laughed, low and hoarse and a little off-balance.
“You’re the girl next door.”
“And you're my drunken idiot neighbour.”
He leaned against the doorframe like it might start spinning.
“You always this mean?”
“You always this fucking loud?”
“Only when I have a good time.” he shot back. “You should try working during the day like a normal person.”
Heather’s smile went razor-sharp.
“You should try choking on glass.”
He laughed again, like she was a feature not a bug. “You’ve got a mouth on you.”
“You’ve got ten seconds to shut the music off or I make this an HOA issue.”
“Ooh,” he teased, dragging the word. “Miss Murder Eyes wants to file a complaint.”
“Miss Murder Eyes wants to burn your speaker system to ash.”
He looked like he was about to say something else—something smug—but someone inside the apartment yelled his name and he turned halfway, distracted.
Heather didn’t wait.
She turned on her heel and walked back to her apartment, slamming her door so hard the frame shook.
The music didn’t come back on.
But she knew—knew—this wasn’t the last time she’d have to deal with that walking, talking, open-shirted migraine.
The elevator doors creaked open with all the enthusiasm of a Monday hangover. Heather stepped in, hoodie swallowed around her like a fabric shield, socked feet tucked into Adidas slides, legs bare and chilled under the fabric of worn athletic shorts. She looked like what she was: an exhausted, overcaffeinated, over-it woman one microsecond away from flaying the next person who so much as breathed too loudly.
Unfortunately, the next person was already inside the elevator.
Her fucking neighbour.
Slouched in one corner like a cover model for "Too Cool to Care," he wore a zip hoodie hanging open over a rumpled black tank, grey sweats slung too low on hips that had no business being that sculpted, and—of course—sunglasses. Indoors. At 8:07 a.m.
Her eye twitched. “Are you seriously wearing sunglasses inside?”
He tilted his head lazily toward her. “Heather, right? Good morning to you, too.”
“That wasn’t an answer.”
He yawned. Loudly. “I’m hungover. Lights are loud. Your voice is louder.”
Heather jabbed the lobby button harder than necessary. “You're giving 'douchebag' all too well.”
He didn’t blink. Might’ve been the glasses. “That’s funny. Coming from the woman who looks like she woke up after an adderall bender.”
“Fuck you.”
"Not with that attitude."
"Then choke on glass."
He grinned, teeth too white for someone claiming to be that hungover. “Nice go-to. You serving it plain, or should I expect a cube or two for garnish?”
She side-eyed him, deadpan. “I’ll chill the whole damn shard for you.”
He chuckled, low and smug. “Spicy this early in the morning. Adorable.”
She didn’t answer, just crossed her arms tighter across her chest and stared at the floor numbers ticking down too slowly for her liking. The silence stretched thick with mutual annoyance.
“I gotta say though,” Jackson said, breaking it anyway, “you do grumpy better than anyone I’ve met.”
Heather’s jaw tensed. “You’re lucky I don’t code viruses for sport.”
He made a dramatic show of clutching his chest. “Be still, my tragic heart.”
The elevator dinged. Doors opened.
She stepped out first, refusing to look at him.
Behind her, he called out, “Hey, if you want to carve my death sentence into my door, just ask for my full name.”
Heather flipped him off without turning around.
The building lobby was quiet—thankfully. Heather stepped through the glass doors and into the biting morning air, tugging her oversized red hoodie tighter around her. She was barely awake, hair in a high, messy knot, hoodie half zipped over a sports bra, Adidas shorts just peeking beneath the hem, and black crew socks shoved into plastic slides. Not a look she’d ever choose to be perceived in. But caffeine was life or death.
Her phone buzzed. Order dropped off.
She spotted the delivery guy by the curb with a paper bag in one hand and a cardboard drink tray in the other. She moved to intercept, pulling her hoodie hood further over her head like she could disappear into it.
“Hey—Heather?” the delivery guy asked, glancing between the names on the receipt. “And… Jackson?”
Before she could respond, the door behind her swung open with a gust of warm air and the smell of cologne and regret.
“Yo, that’s me,” came the voice she’d already spent too much of her brainpower hating this week.
She didn’t need to look to know.
Then his eyes—well, probably his eyes—shifted toward Heather. “We really gotta stop meeting like this.”
Heather gawked at him. “You order from Mildew?”
Jackson shrugged, plucking his own iced coffee. “Their cold brew's the only thing stronger than my regrets.”
"-- And a protein wrap." the delivery guy read his order receipt.
"Thank you."
Heather grimaced, “God, even your breakfast order is pretentious.”
The delivery guy awkwardly extended both drink trays. “Uh… you guys want to split this up?”
Heather grabbed hers, iced americano with two caramel shots and a tiny pastry bag. Jackson took his with one hand and tore open the bag like it owed him rent.
“You know,” he said, tearing a bite of rap, “you could’ve just told me you wanted to grab coffee together.”
She scoffed. “I’d rather snort sawdust.”
“Hmm.” He chewed slowly, sunglasses tilted as he clearly scanned her from hoodie to socks. “Is that your way of saying this is your morning look? ‘Unapproachable with a hint of homicide’?”
She took a sip of her drink and stared him down over the lid. “This is the look of someone who works. Unlike you, I’m guessing.”
He grinned. “Sweetheart, I work hard enough to afford the noise complaints.”
She turned on her heel. “Try that line again when you’re not dressed like a hungover gym rat.”
Jackson called after her, amused and unapologetic: “Hey! Want me to order you glass with extra ice next time?”
She didn’t bother flipping him off this time. She just hoped the coffee kicked in before she accidentally committed a felony.
Heather cut through the lobby, legs moving with purpose, sipping her coffee like it could save her soul. Her slides slapped the tile with quiet urgency as she beelined toward the elevator. Behind her, she heard Jackson exchange a few pleasantries with the delivery guy—of course he was charming when he wasn’t being a complete walking migraine.
She reached the elevator, thumb jamming the ‘up’ button with a vengeance. A second later, the doors slid open with a slow mechanical sigh.
She stepped inside.
From across the lobby, she heard, “Hold up!”
Nope.
She hit the ‘close door’ button with the kind of speed that could win arcade games. The doors began their slow, deliberate slide inward.
Jackson jogged up, protein wrap still half in his mouth, coffee in hand, sweats slung low on his hips like they were allergic to tension.
“Hey! Heather!” he said around the bite.
She didn’t even look up. Just muttered, “Work hours only, gym rat.”
The doors closed on his groan of disbelief—and, she hoped, his dumb, smug grin.
For the first time that morning, she smiled.
Just a little.
#got7 x reader#got7 scenarios#got7 reactions#got7#got7 jackson#got7 yugyeom#got7 jinyoung#got7 bambam#got7 mark#bambam#jayb#jackson wang#choi youngjae#park jinyoung#got7 smut#jackson wang scenarios#jaebeom#jinyoung#yugyeom#jackson wang smut#jackson wang x reader#jackson wang fanfic#jackson wang fluff#idiots to lovers#enemies to lovers
34 notes
·
View notes
Text

Women pulling Lever on a Drilling Machine, 1978 Lee, Howl & Company Ltd., Tipton, Staffordshire, England photograph by Nick Hedges image credit: Nick Hedges Photography
* * * *
Tim Boudreau
About the whole DOGE-will-rewrite Social Security's COBOL code in some new language thing, since this is a subject I have a whole lot of expertise in, a few anecdotes and thoughts.
Some time in the early 2000s I was doing some work with the real-time Java team at Sun, and there was a huge defense contractor with a peculiar query: Could we document how much memory an instance of every object type in the JDK uses? And could we guarantee that that number would never change, and definitely never grow, in any future Java version?
I remember discussing this with a few colleagues in a pub after work, and talking it through, and we all arrived at the conclusion that the only appropriate answer to this question as "Hell no." and that it was actually kind of idiotic.
Say you've written the code, in Java 5 or whatever, that launches nuclear missiles. You've tested it thoroughly, it's been reviewed six ways to Sunday because you do that with code like this (or you really, really, really should). It launches missiles and it works.
A new version of Java comes out. Do you upgrade? No, of course you don't upgrade. It works. Upgrading buys you nothing but risk. Why on earth would you? Because you could blow up the world 10 milliseconds sooner after someone pushes the button?
It launches fucking missiles. Of COURSE you don't do that.
There is zero reason to ever do that, and to anyone managing such a project who's a grownup, that's obvious. You don't fuck with things that work just to be one of the cool kids. Especially not when the thing that works is life-or-death (well, in this case, just death).
Another case: In the mid 2000s I trained some developers at Boeing. They had all this Fortran materials analysis code from the 70s - really fussy stuff, so you could do calculations like, if you have a sheet of composite material that is 2mm of this grade of aluminum bonded to that variety of fiberglass with this type of resin, and you drill a 1/2" hole in it, what is the effect on the strength of that airplane wing part when this amount of torque is applied at this angle. Really fussy, hard-to-do but when-it's-right-it's-right-forever stuff.
They were taking a very sane, smart approach to it: Leave the Fortran code as-is - it works, don't fuck with it - just build a nice, friendly graphical UI in Java on top of it that *calls* the code as-is.
We are used to broken software. The public has been trained to expect low quality as a fact of life - and the industry is rife with "agile" methodologies *designed* to churn out crappy software, because crappy guarantees a permanent ongoing revenue stream. It's an article of faith that everything is buggy (and if it isn't, we've got a process or two to sell you that will make it that way).
It's ironic. Every other form of engineering involves moving parts and things that wear and decay and break. Software has no moving parts. Done well, it should need *vastly* less maintenance than your car or the bridges it drives on. Software can actually be *finished* - it is heresy to say it, but given a well-defined problem, it is possible to actually *solve* it and move on, and not need to babysit or revisit it. In fact, most of our modern technological world is possible because of such solved problems. But we're trained to ignore that.
Yeah, COBOL is really long-in-the-tooth, and few people on earth want to code in it. But they have a working system with decades invested in addressing bugs and corner-cases.
Rewriting stuff - especially things that are life-and-death - in a fit of pique, or because of an emotional reaction to the technology used, or because you want to use the toys all the cool kids use - is idiotic. It's immaturity on display to the world.
Doing it with AI that's going to read COBOL code and churn something out in another language - so now you have code no human has read, written and understands - is simply insane. And the best software translators plus AI out there, is going to get things wrong - grievously wrong. And the odds of anyone figuring out what or where before it leads to disaster are low, never mind tracing that back to the original code and figuring out what that was supposed to do.
They probably should find their way off COBOL simply because people who know it and want to endure using it are hard to find and expensive. But you do that gradually, walling off parts of the system that work already and calling them from your language-du-jour, not building any new parts of the system in COBOL, and when you do need to make a change in one of those walled off sections, you migrate just that part.
We're basically talking about something like replacing the engine of a plane while it's flying. Now, do you do that a part-at-a-time with the ability to put back any piece where the new version fails? Or does it sound like a fine idea to vaporize the existing engine and beam in an object which a next-word-prediction software *says* is a contraption that does all the things the old engine did, and hope you don't crash?
The people involved in this have ZERO technical judgement.
#tech#software engineering#reality check#DOGE#computer madness#common sense#sanity#The gang that couldn't shoot straight#COBOL#Nick Hedges#machine world
43 notes
·
View notes
Text
It's always "funny" to remember that software development as field often operates on the implicit and completely unsupported assumption that security bugs are fixed faster than they are introduced, adjusting for security bug severity.
This assumption is baked into security policies that are enforced at the organizational level regardless of whether they are locally good ideas or not. So you have all sorts of software updating basically automatically and this is supposedly proof that you deserve that SOC2 certification.
Different companies have different incentives. There are two main incentives:
Limiting legal liability
Improving security outcomes for users
Most companies have an overwhelming proportion of the first incentive.
This would be closer to OK if people were more honest about it, but even within a company they often start developing The Emperor's New Clothes types of behaviour.
---
I also suspect that security has generally been a convenient scapegoat to justify annoying, intrusive and outright abusive auto-updating practices in consumer software. "Nevermind when we introduced that critical security bug and just update every day for us, alright??"
Product managers almost always want every user to be on the latest version, for many reasons of varying coherence. For example, it enables A/B testing (provided your software doesn't just silently hotpatch it without your consent anyway).
---
I bring this up because (1) I felt like it, (2) there are a lot of not-so-well-supported assumptions in this field, which are mainly propagated for unrelated reasons. Companies will try to select assumptions that suit them.
Yes, if someone does software development right, the software should converge towards being more secure as it gets more updates. But the reality is that libraries and applications are heavily heterogenous -- they have different risk profiles, different development practices, different development velocities, and different tooling. The correct policy is more complicated and contextual.
Corporate incentives taint the field epistemologically. There's a general desire to confuse what is good for the corporation with what is good for users with what is good for the field.
The way this happens isn't by proposing obviously insane practices, but by taking things that sound maybe-reasonable and artificially amplifying confidence levels. There are aspects of the distortion that are obvious and aspects of the distortion that are most subtle. If you're on the inside and never talked to weird FOSS people, it's easy to find it normal.
One of the eternal joys and frustrations of being a software developer is trying to have effective knowledge about software development. And generally a pre-requisite to that is not believing false things.
For all the bullshit that goes on in the field, I feel _good_ about being able to form my own opinions. The situation, roughly speaking, is not rosy, but learning to derive some enjoyment from countering harmful and incorrect beliefs is a good adaptation. If everyone with a clue becomes miserable and frustrated then computing is doomed. So my first duty is to myself -- to talk about such things without being miserable. I tend to do a pretty okay job at that.
#i know to some of you i'm just stating the sky is blue#software#computing#security#anpost#this was an anramble at first but i just kept writing i guess#still kind of a ramble
51 notes
·
View notes
Text
The MS-07B Gouf
In preparation for the invasion of Earth, Zeon forces modified a number of MS-06 Zaku-II F-types for use under the effects of the planet's gravity. The new "J-type" Zaku-IIs featured a number of internal hardware and software changes to enhance their viability on the ground.
The Zaku-II J-Type would be used as a testbed for new developments with the goal of creating a new mass-production mobile suit for use on the ground. And where the Zaku was intended for anti-ship and anti-aerospace combat, this new platform would be built to fight other mobile suits.
Zimmad and Zeonic would both begin working on this new project, directly competing with one another, but eventually coming up with very similar designs. Zeonic moved forward with the YMS-07A Prototype Gouf, and Zimmad presented the YMS-08A High Mobility Test Type.


While Zimmad's design failed to show a significant increase in performance from the Zaku-II J-Type, Zeonic's "Gouf" showed immense promise. The prototype would be picked up and would see a limited production run as the MS-07A Gouf.

The MS-07A was a pre-production model intended for data gathering. The final mass-production model would feature several additional weapon systems, such as an in-built 75mm machine gun in the left manipulator, and a retractable "Heat Rod" on the left forearm.


The Gouf was used to great effect by Zeon captain Ramba Ral, who went toe-to-toe with the Earth Federation's infamous RX-78-2 Gundam.

Among the Ace pilots who used the Gouf as their personal units, Viche Donahue, Silas Locke, and Norris Packard were among the most well-known. All three of these aces would become battlefield legends, with Packard's MS-07B-3 Gouf Custom becoming especially infamous. The machine's equipment proved so effective that it became a common alternate loadout for many Gouf pilots.



The MS-07 would be customized for a variety of roles and theaters, with many of these variants seeing further developments of their own.



Notable among these was the MS-07W Gouf Combined Test Type, which featured a miniaturized Dopp fighter serving as its cockpit. The development of the machine was heavily influenced by data gathered from the Federation's RX-series of mobile suits. Namely, their "Core Block" system.


The Gouf would also see another fork, being developed into the MS-07H Gouf Flight Type. While both prototypes made use of thermonuclear rocket engines, the final version used thermonuclear jet engines, allowing for greater efficiency in atmospheric flight.



The MS-07B saw further refinement into the MS-07C. While not much is known about its specifications, there are at least three known variants. A number of Goufs were acquired by Zimmad and used as testbeds for systems to be incorporated into the MS-09 Dom series of mobile suits. These Goufs were MS-07Cs.



And finally, in UC 120, nearly 50 years from the initial deployment of the original machine, Mars Zeon would develop and deploy the OMS-07RF RF Gouf. While externally resembling the MS-07B, the OMS-07-RF was a completely new machine which could also operate in space, unlike its predecessors.

The MS-07B Gouf was originally designed by Kunio Okawara for the 1979 Anime "Mobile Suit Gundam".
This article was a request! Requests are always welcome!
I am so terribly sorry for the delay in getting this post out! It's been a very hectic few months, but I'm hoping to get back in the flow of things!
23 notes
·
View notes
Text
The Creation and Purpose of Porygon
Porygon was a Pokémon created in 1995 through computer programming when the Pokémon Storage System was invented on Cinnabar Island in the Cinnabar Lab, making it the very first artificial manmade Pokémon in history made entirely out of programming code.
It was designed as a prototype in order to test the concept of the Pokémon Storage System as a way to test if converting Pokémon into storable data was possible. By creating this Pokémon, it wouldn’t require testing on any existing Pokémon.
It was created, in essence, to be a ‘generic’ Pokémon, indicated by its simple identifiable geometric design in order to see which parts of a Pokémon are being accurately converted into data and back. It’s Normal-type and possesses the signature moves of Conversion (changes the user’s type to match the type of one of the user’s moves including Conversion itself, unable to copy the type of a move that already matches the user’s current types) and Conversion 2 (will randomly change the user’s or an adjacent Pokémon’s type to any type that either resists or is immune to the type of the move last used by the target, including status moves, excluding types it currently has – will fail if the Pokémon already has all types that resist the type of the last damaging move and bypasses accuracy to always hit unless the target is in a semi-invulnerable turn of a move such as Dig or Fly) in order to test if the system could preserve a Pokémon’s type and contain data to test all of them. It also possessed the Ability of Download (either raises the Attack or Special Attack by one stage depending on the foe’s current lowest defensive stat, otherwise will raise Special Attack) in order to test if Abilities could be preserved as well.
The design inspiration came from depictions of it documented in Hisui, essentially making its existence something of a Grandfather Paradox, given that they were first seen emerging from spacetime distortions.
After the invention of the Pokémon Storage System, Porygon then became useful for use in cybersecurity and software development and became popular among collectors after the fact.
Silph Co. takes credit for the creation of Porygon and became invested in its development, though for a time it became obsolete. They were interested in upgrading it to work in space for planetary devolvement reasons, so Silph Co. gave it a digital drive the likes that they would need to send across to hold in order to test the trading system and test if Pokémon could transfer while holding items as well in case they needed to send Porygon up with important items to the space stations above, surprising them with an evolution and discovering trade evolutions in the process.
Porygon2 is a result of being upgraded from the most cutting-edge technology available at the time and became the project, sporting completely rounded shapes and no sharp edges of its preevolution. Silph Co. invented the Upgrade as an evolutionary item to evolve Porygon into Porygon2 by trading it in order to further develop it for work in space software, though its inability to fly limits this ability. It can survive in the vacuum of space, but cannot move very well in zero gravity.
Unlike Porygon that has an outlined purpose that it does not deviate from, Porygon2 is far more intelligent and is capable of learning new behaviours on its own, including proprietary information, and can speak a language that only other Porygon2 can understand. It is truly a feat of artificial intelligence.
Naturally, the next step in Porygon2’s development would be the final frontier – dimensional travel. If Porygon2 was invented to assist in space travel, then the final feat would be dimensional travel. And so, development was initiated on the next project – Porygon3.
However, this project would not find success like the former. An error in the programming of the next upgrade resulted in corrupting the final form and causing it to act erratic and unstable, making it difficult to work with for research and testing and deeming the development to be labelled a failure and for development to be abandoned. The final result was then named Porygon-Z and the discs responsible for this evolution were disposed of and deemed dubious. Academics can’t seem to agree on whether Porygon-Z should be considered a true evolution of Porygon2 or not.
The Dubious Disc, as it has become known by, still sees underground circulation amongst black market collectors and underground researchers interested in further researching both Porygon-Z and revisiting the possibility of completing development on Porygon3, though no progress or breakthroughs have yet been reported at this time.
Taglist:
@earth-shaker / @little-miss-selfships / @xelyn-craft / @sarahs-malewives / @brahms-and-lances-wife
-
@ashes-of-a-yume / @cherry-bomb-ships / @kiawren / @kingofdorkville / @bugsband
If you'd like to be added/removed from my taglist, please let me know :3
10 notes
·
View notes
Text
A-Café (Update #25) - Community Discussion
Good morning everyone! I know it's been a while since I've posted, but I'm finally back with another community update. In the first part, I'll be giving a brief overview of where we're at in terms of project progress. Then, in the second half, we'll discuss a new development in app accessibility.
Without further ado, let's begin!
1) Where are we at in the project currently?
A similar question was asked in the A-Café discord recently, so I figured I'd include my response here as well:
Right now we’re reworking the design of A-Café, both visually and architecturally. The initial planning and design phase of the project wasn’t done very thoroughly due to my inexperience, so now that I’m jumping back into things I want to ensure we have a solid prototype for usability testing. For us that means we’ve recently done/are doing a few things:
analyzing results from the old 2022 user survey (done)
discussing new ideas for features A-Café users might want, based on the 2022 user survey
reevaluating old ideas from the previous app design
making a new mock-up for usability testing
Once the mock-up is finished, I plan on doing internal testing first before asking for volunteer testers publicly (the process for which will be detailed in an upcoming community update).
2) Will A-Café be available for iOS and Android devices?
Yes! In fact, the first downloadable version of A-Café may no longer be so device-specific.
What do I mean by that? Well, in the beginning, the plan for A-Café was to make two different versions of the same app (iOS and Android). I initially chose to do this because device-specific apps are made with that device's unique hardware/software in mind--thus, they have the potential to provide a fully optimized user experience.
However, I've since realized that focusing on device-specific development too soon may not be the right choice for our project.
Yes, top-notch app performance would be a big bonus. But by purely focusing on iOS and Android devices for the initial launch, we'd be limiting our audience testing to specific mobile-users only. Laptop and desktop users for example, would have to wait until a different version of the app was released (which is not ideal in terms of accessibility).
Therefore, I've recently decided to explore Progressive Web App development instead.
[What is a Progressive Web App?]
A Progressive Web App (or PWA) is "a type of web app that can operate both as a web page and mobile app on any device" (alokai.com)
Much like a regular mobile app, a PWA can be found through the internet and added to your phone's home screen as a clickable icon. They can also have the ability to work offline and use device-specific features such as push-notifications.
Additionally, due to being web-based applications, PWAs can be accessed by nearly any device with a web browser. That means regardless of whether you have an iOS or Android device, you'd be able to access the same app from the same codebase.
In the end, a PWA version of A-Café should look and act similarly to an iOS/Android app, while also being accessible to various devices. And, due to having only one codebase, development of PWAs tends to be faster and be more cost-effective than making different versions of the same app.
To be clear, I haven't abandoned the idea of device-specific development entirely. We could launch iOS/Android versions of A-Café in the future if demand or revenue end up being high enough. But as of right now, I don't believe doing so is wise.
[What Does this Mean for me as a User?]
In terms of app installation and user experience, not much should hopefully change. I'd like to have A-Café available on both the Apple App Store and Google Play Store.
There will also be the option of searching for A-Café via your device's web browser, and then installing it on your home screen (iOS devices can only do so using Safari). We will likely rely on this method until we can comfortably ensure user access to A-Café on the Apple App Store and Google Play Store.
-------------
And that's it for now! Thank you for reading this latest community update. For more insight into the development process, consider joining the A-Café discord. If you have any questions or concerns regarding this post, we would love to hear your input in the comments below. See you later!
26 notes
·
View notes
Text
Write One to Throw Away?
If you're in the software industry for long enough, you'll hear this advice eventually. There's an infamous Catch-22 to writing code:
You don't deeply understand the problem (or its solution space) until you've written a solution.
The first solution you write will have none of that hindsight to help you.
So it naturally shakes out that you have to write it at least one time before you can write it well, unless you're stricken with exceptional luck. And the minimum number of attempts you will need is two: one to throw away, and a second attempt to keep.
It's just math. It's just logic. Write one to throw away. It's got the world's easiest proof. You'd have to be some kind of idiot to argue with it!
Okay, hear me out...
As you work on bigger and older projects, you will continuously be confronted with a real-world reality: that requirements are an input that never stops changing. You can make the right tool for the job today, but the job will change tomorrow. Is your pride and joy still the right tool?
If you're like most developers, your first stage of grief will be denial. Surely, if we just anticipate all the futures that could possibly happen, we can write code that's ready to be extended in any possible direction later! We're basically wizards, after all - this feels like it should work.
So you try it. You briefly feel safe in the corrosive sandstorm of time. Your code feels future proof, right up until the future arrives with a demand you didn't anticipate, which is actually so much harder to write thanks to your premature abstractions. Welcome to the anger stage. The YAGNI acronym (you ain't gonna need it) finally registers in your brain for what it is - a bitter pill, hard-won but true.
But we're wizards! We bargain with our interpreters and parsers and borrow checkers. Surely we can make our software immortal with the right burnt offerings. We can use TDD! Oops, now our tests are their own giant maintenance burden locking us into inflexible implementation decisions. Static analysis and refactoring tooling! Huh, well that made life support easier, but couldn't fix fundamental problems of approach, architecture and design (many of which only came into existence when the requirements changed).
As the sun rises and sets on entire ISAs, the cold gloom eventually sets in. There is no such thing as immortal software. Even the software that appears immortal is usually a vortex of continuous human labor and editing. The Linux kernel is constantly dying by pieces and being reborn in equal or greater measure - it feels great to get a patch merged, but your name might not be in the git blame at all in 2 years time.
I want to talk about what happens when your head suddenly jumps up in astonished clarity and you finally accept and embrace that fact: holy shit, there is no immortal software!
Silicon is sand
... and we're in the mandala business, baby.
I advocate that you write every copy to be thrown away. Every single one. I'm not kidding.
Maybe it'll be good enough (read adequacy, not perfection) that you never end up needing to replace your code in practice. Maybe you'll replace it every couple years as your traffic scales. But the only sure thing in life is that your code will have an expiration date, and every choice you make in acknowledgement of that mortality will make your life better.
People are often hesitant to throw out working code because it represents years of accumulated knowledge in real-world use. You'd have to be a fool to waste that knowledge, right? Okay. Do your comments actually instruct the reader about these lessons? Does secondary documentation explain why decisions were made, not just what those decisions were? Are you linking to an issue tracker (that's still accessible to your team)? If you're not answering yes to these type of questions, you have no knowledge in your code. It is a black hole that consumed and irreparably transformed knowledge for ten years. It is one of the worst liabilities you could possibly have. Don't be proud of that ship! You'll have nowhere to go when it sinks, and you'll go down with it.
When you write code with the future rewriter - not merely maintainer - in mind, you'll find it doesn't need to be replaced as often. That sounds ironic, and it is, but it's also true. Your code will be educational enough for onboarding new people (who would rewrite what they don't understand anyways). It will document its own assumptions (so you can tell when you need a full rewrite, or just something partial that feels more like a modification). It will provide a more useful guiding light for component size than any "do one thing well" handwave. And when the day finally comes, when a rewrite is truly necessary, you'll have all the knowledge you need to do it. In the meantime, you've given yourself permission to shit out something sloppy that might never need replacing, but will teach you a lot about the problem domain.
This is independent of things like test suite methodology, but it does provide a useful seive for thinking about which tests you do and don't want. The right tests will improve your mobility! The wrong tests will set your feet in cement. "Does this make a rewrite easier?" is a very good, very concrete heuristic for telling the two apart.
Sorry for long-posting, btw. I used this space to work through some hazy ideas and sharpen them for myself, particularly because I'm looking at getting into language design and implementation in the near future. Maybe at some future date, I'll rewrite it shorter and clearer.
TL,DR:
Every LOC you write will probably eventually be disposed or replaced. Optimize for that, and achieve Zen.
17 notes
·
View notes
Text
I can't believe I am coming up on the fifth anniversary of starting this project, I had figured I would have something ready and finalized within six months to show you all.
If you're new around here, I am developing a new type modular robotic platform, with hardware and autonomous software, entirely independently (ie, myself) at this time (and, as a "side quest", it's own integrated immutable operating system and systems programming language — I'll get into that at a later date.).
Oh, how much of an idiot novice I was at the time to think this was something doable within a convoluted six month time frame — much less, during a pandemic, and a likely-related near-death complete lung failure/collapse - but we don't really expect that to ever happen.
There is some thought that the metalwork on the project was also a possibly candidate on the lung collapsd, so this is the project that literally *just nearly killed me if that is the case.
The amount of literal blood, sweat, and tears that would be put into this in incredible. I even had an offer to move to Canada to work on this, full-time, at one point, but the pandemic at that time put a damper on travel and immigration, so sadly those plans fell through.
Funny enough, the original design is closer in practice (in the simplest concept) to what I ended up at, not sure what happened between prototypes 3-7, that was kind of crazy.
I remember starting this thinking "I'll build probably three different versions by the end of it" then when I was redesigning for the Mk-II/III, I said "Yeah, it'll probably be ready by the ninth version".
So, here we are, Mk-IX, and it's working beyond my expectations, likely Mk-IX will be something useable before micro-production and more rigorous testing.
The plan is to eventually release a video outlining the project, How it's built, the goals, the history, and possibly open-sourcing the core components before going into production (if we ever make it there).
Just a small update, since it's been quite some time since I spoke about it here.
9 notes
·
View notes