Dust and Stars - 1992 | Chapter 142 | Magnetic Head and Scale | English
The Phillips-head screwdriver pressed against the screw on the case's side panel, turning counter-clockwise. The gritty resistance
Chapter 142: Magnetic Head and Scale
The Phillips-head screwdriver pressed against the screw on the case's side panel, turning counter-clockwise. The gritty resistance of metal grinding against metal traveled from his fingertips up to his wrist bones. Lin Chen held his breath and pried the side panel off. A wave of heat hit him, carrying a mix of dust, oxidized thermal paste, and the smell of aged plastic. The motherboard's indicator light still glowed a faint green, while the Seagate 80GB SATA drive in the drive bay emitted a rhythmic click-click. It was the sound of the read/write head repeatedly failing to seek and resetting. With every click, the data on the platters faced a slightly higher risk of irreversible scratching.
He didn't unplug the cables right away. With his left hand steadying the edge of the case, his right hand rummaged through the bottom of a drawer to pull out a spare SATA data cable, followed by a long-prepared Ubuntu Live USB drive. In a county town in 2010, data recovery shops started at three hundred yuan—a price he couldn't afford. He had to do it himself.
Outside the main room, the night wind lifted a corner of the bamboo blind. Wang Guiying's footsteps paused in the kitchen, followed by the soft sound of firewood settling into the ashes. Xiaoman's breathing was even and deep. Lin Chen straightened his left leg; the numbness at his knee had already spread down to his calf. He clenched his back teeth, braced his right leg against the table leg, and freed both hands. He disconnected the power cable, swapped in the new data cable, and moved the hard drive from the primary SATA port to the secondary one. He plugged in the USB drive and pressed the power button.
The BIOS POST screen flashed by. He quickly tapped F12 and selected boot from USB. A black-and-white GRUB boot menu popped up on the screen. He selected Try Ubuntu without installing. The system loading progress bar crawled forward slowly, punctuated by the hard drive's clicking. The fans spun wildly, and the case temperature climbed. He stared at the screen, fingers hovering over the keyboard, ready to cut the power at any moment.
The desktop finally loaded. He opened a terminal and typed sudo fdisk -l. It was recognized: /dev/sdb. The capacity displayed normally. He created a new mount point, formatted the remaining space on the USB drive to ext4, and set it up as a temporary backup drive. Next, he entered the ddrescue command. The parameters were set conservatively: -n to skip bad sectors, -r3 to retry three times, and -d for direct reading. He hit Enter.
The terminal began scrolling logs. [INFO] Starting recovery... The progress bar advanced at a visible pace. The first 20% went smoothly. At 30%, the speed plummeted. [ERROR] I/O error at sector 419200. The clicking grew rapid and dense. Cold sweat beaded on Lin Chen's forehead. He didn't stop. The logic of ddrescue was to read all the good sectors first, then go back and tackle the hard parts. He had to save the source code and the raw data. Log files could be lost, V2.0 test cases could be rewritten, but the core cleaning logic in the src/ directory and the original CSV Old Zhao had given him were his lifeline.
He watched the skipped sector counter in the terminal. skipped: 142. Each number represented dozens of kilobytes lost. He picked up the ledger on the desk, flipped to a blank page, and wrote: 02:15. Bad sectors spreading. Prioritize saving src/ and data/raw/.
3:40 AM. The progress bar was stuck at 87%. The hard drive's clicking had turned into a sharp scraping sound, like fingernails dragging across glass. Lin Chen knew the read/write head was on the verge of complete failure. He decisively pressed Ctrl+C to terminate the process. He checked the backup drive. src/ was intact. data/raw/ was missing its last two files, roughly ten thousand records. But the V3.0 framework code, logging module, and class encapsulation structure were all there. He let out a long breath, his shoulders instantly slumping. Only then did the dull ache in his left knee crawl up along his nerves. He leaned back against the chair, closed his eyes, and rested for half a minute.
Shut down. Unplug cables. Remove the faulty drive and seal it in an anti-static bag. The movements were slow, but steady.
The phone screen lit up on the desk. The same text message: Please pay the training fee of 800 yuan before August 15...
Lin Chen sat up straight. The ledger lay open. Balance: 1539.3. Minus 200 reserved for medicine, minus 150 for food over the next two weeks, leaving 1189.3. Pay 800, leaving 389.3. A single room in the urban village required a one-month deposit and three months' rent upfront, totaling 600. Not enough money.
He stared at the words "Training Camp." Backed by the Provincial Institute of Technology, with internal referrals to top-tier tech giants. In 2010, this was the shortest path to bridge the information gap. But an internal referral was only an "opportunity," not a "guarantee." What was truly valuable were those seven days in a closed environment, the instructors' course materials, and the people he could connect with. The county town's internet cafes couldn't handle big data workloads, and the main room at home couldn't provide quiet. He needed a desk, and a machine that could run stably.
The pen tip hovered over the paper. He crossed out "rent a single room" and changed it to: Pay training fee 800. Postpone renting. Borrow computer at county library lab / back room of Old Zhao's teahouse.
Technology could be borrowed, but time could not wait. He closed the ledger and tucked the faulty drive and USB drive into a compartment of his laptop bag. When he lay down, his left leg was already too stiff to bend. He stayed flat on his back, staring at the roof beams. Outside the window, the sky shifted from pitch black to a dull blue-gray. The cicadas had stopped singing, and early-rising birds began to call.
At exactly six o'clock, the alarm didn't go off; he woke up on his own.
Wang Guiying was already at the stove, simmering congee. Seeing him come out, she handed him a bowl of warm water. "Does your leg still hurt?"
“Much better.” Lin Chen took it and downed it in one go. He went back inside, changed out of his sweat-soaked T-shirt, and pulled on a long-sleeved shirt to cover the scrapes on his elbows. He slung his computer bag over his shoulder and checked for his USB drive, screwdriver, and ledger. Before heading out, he pulled an envelope from the drawer. Inside was a flyer for the Provincial Institute of Technology’s training camp, which he’d carefully extracted from an old book the night before. The paper was coarse, but the registration address and payment account details were printed clearly.
The minibus to town left at seven. He arrived at the village entrance twenty minutes early. The morning mist hadn’t yet lifted, and the yellow dirt road still held the tire ruts from a tractor that had passed the night before. He walked slowly, putting his weight on his right foot while his left barely grazed the ground, his stride cut to half its usual length. But his spine remained straight.
The bus wasn’t crowded. He took a window seat and spread Python Data Analysis in Practice across his knees. The book was open to the chapter on “Data Persistence and Exception Handling.” He watched the fields roll past outside, running code in his head. try...except...finally. Life offered no rollbacks, only exception handling and moving forward.
At nine o’clock, he arrived at the County Agricultural Bank. The queue was short. Lin Chen stepped up to the counter and handed over his passbook and payment slip. The teller, a middle-aged woman, tapped at her keyboard and glanced up. “Provincial Institute of Technology? Quite a few people paying tuition these days.”
“Yeah.” Lin Chen kept it brief.
A sharp beep confirmed the transaction. Passbook balance: 739.3. He folded the receipt and tucked it into his inner pocket. Stepping out of the bank, the sunlight was already sharp enough to sting. He ducked into a corner newsstand and bought a copy of that day’s Computer World. The headline read “The Dawn of Cloud Computing and Big Data.” He skimmed it, rolled the paper up, and tucked it under his arm.
Next stop was Lao Zhao’s teahouse. The source data for the weekly report was still missing two final files; he’d need to grab the backups or rerun the V3.0 fault-tolerance logic. Lao Zhao had promised him the use of an idle storage room on the second floor—a desk and an Ethernet cable, provided the reports were submitted on time.
He pushed open the teahouse’s glass door, and a wind chime gave a single clear ring. Lao Zhao was sitting behind the counter, tallying accounts. He looked up and set his pen down. “You’re here. I’ve copied the data drive onto an external hard disk. The boss looked at your script yesterday. Said the pivot tables were sharp. But…” Lao Zhao paused, pulling a printed sheet from his drawer. “Finance flagged a mismatch in the return data from three stores. In the raw system export, returns are flagged with an ‘R’. But during your cleaning process, it looks like they were all processed as ‘normal sales.’”
Lin Chen took the sheet. It listed the SKUs and amounts for the three locations. The monetary discrepancy was minor, but the underlying logic was flawed. The V2.0 fallback logic had indeed standardized all non-standard characters, inadvertently stripping out the special business-field markers.
“The raw data has ‘R’s and ‘S’s mixed in the same column.” Lao Zhao watched him. “The boss wants next week’s report to split returns out into a separate appendix table. Can you add that?”
Lin Chen studied the numbers on the page. A dull ache throbbed faintly in his left knee. He nodded. “Yes. The V3.0 class structure has extension interfaces built in. I’ll send you the patch before close of business today.”
“Alright.” Lao Zhao slid the external drive across the counter. “Your USB drive’s in there. Password is six eights.”
Lin Chen took the drive. The metal casing was cold against his palm. He turned and headed upstairs. The wooden stairs groaned under his weight, a familiar sound. He pushed open the storage room door; dust motes drifted in the shafts of light. An old desk, a folding chair, and an Ethernet port in the corner. He set his bag down and plugged in the drive.
The screen flickered to life. He created a new script file and named it: patch_v3.1.py.
He typed the first line: def parse_return_flag(row):
Through the window came the steady hum of traffic on the county’s main thoroughfare. The training camp registration date was August 15. Four days away.
He hit save. A progress bar ran quietly in the background. The road ahead was long, but every step had to be planted firmly.
His phone vibrated. A new text from an unfamiliar number at the institute: “林尘同学,实训营分组名单已出。你被分配至‘底层架构与数据清洗’组。导师:周砚。请提前准备个人技术简历,报到首日进行实操摸底。”
Lin Chen stared at the name “Zhou Yan.” His fingers hovered over the keyboard for a second.
Assessment. He opened a browser and searched the name. Results were sparse—just a single technical blog post from three years ago, titled “On Dirty Data Governance in Distributed Environments.”
He closed the tab and dragged the raw data from the external drive into his working directory.
The patch wasn’t finished yet. But the real exam had already been handed out.
More from WayDigital
Continue through other published articles from the same publisher.
Comments
0 public responses
All visitors can read comments. Sign in to join the discussion.
Log in to comment