KARMA RONIN
TRIVIA
Friends
I fully acknowledge that it is distracting to have a main character named Matthew Perry. It is nearly impossible for me to read my own book without conjuring images of Chandler Bing, running around, being an asshole. And theoretically I could change the name, and could have always changed the name. But there’s more to it than that. This tragedy of association is nothing more than a historical coincidence. I knew that there was some guy, an American explorer, that ended the Isolationist period of Japanese history. He was a Commodore of the U.S. Navy, and threatened to destroy the Bay of Edo with four warships if they didn’t open up trade with him. I didn’t remember his name, but I told myself that, whatever his name was, he’d be the character that travelled to Kaishin to force them to submit to Karma’s will or face destruction. Unfortunately, the man’s name was Matthew Perry. But, as a man of principle, I stuck with my original intention. The other names are fortunately less distracting, and most of them are borrowed from Murakmi books. Reiko is from Norwegian Wood, Noboru is from the Wind-Up Bird Chronicle, Toru is from Kafka on the Shore. Those were the books I read to mentally prepare myself to write a book set in Japan. I like to pretend that such efforts—reading books by a random, popular author that ostensibly represents their culture—are enough to get me by. Rabbit Holes
So there's a part in Karma Ronin, Chapter 11 if you like numbers, where everyone in Kaishin's mind is joined together. Spoiler alert. And, being an artist or whatever, I wanted to be creative about it. Kaishin, minus Toru, consists of two biomedical engineers, two electrical engineers, a programmer, a marketer, and a psychologist. So instead of writing the parts myself, I asked my college friends—the engineers, the business major, the programmer—to write it for me. My prompt for was vague—I told them what the Karma Chip was, and that they should give me some stream-of-consciousness piece in their field. And they wrote their pieces. My biomedical engineer in particular gave me something that will always make me smile—an essay on why she loves engineering. I’m still not sure whether she just wasn’t satisfied with a vague prompt, so made her own, or if the stream of her consciousness couldn’t refrain from expressing its all-too-coherent joy for its future career. I never asked, but I hope it’s the latter. And I wrote Reiko’s piece myself, even though I’m a philosopher engineer and not a psychologist. As a writer, I find myself lying a lot. But you can't really tell who wrote what, because I cut them up into fragments, and mixed them with intentional randomness. So what I’ve done here is to separate them back out for you, if only for academic interest. The most apparent thing you’ll see is that the programmer wrote too much. Jude Fawley, Psychologist (Reiko)
I’m not as confident as I used to be. It’s not that I stopped trying, it’s that everyone else is doing better than they used to. I would spend hours and hours just reading, but where did that time go? If dreams are somehow representative of who we are as people, I’m a boring, silent, hour-long descent into darkness, followed by waking. Sometimes apples look better than they taste. There should be some sort of inherent law, connecting appearance to essence. There never will be. They used to think you could tell everything about a person, just by watching their behavior. Behaviorists. Nothing else matters, nothing else describes who you are as a person. Only the observable bends to science, only behavior is observable. Because what’s actually happening in your mind? It’s entirely inaccessible. Is an orchard a field, or does a field require flatness? Half the words you think you know the exact definition of, you’re probably wrong about. Look it up. The behavior of an apple must in some way disclose its flavor, because a flavor is the essence of an apple. A tree only exists to bear fruits—that’s telos. That’s what Aristotle would have told you, if you would have asked. A human only exists to bear children, that’s what a biologist would have told you, if you would have asked. Isn’t it scary to think that your every emotion, your every thought, no matter how complicated and disinterested it might be, is essentially presupposed by some sort of survival instinct, some sort of sexual instinct? We only learned how to talk to better facilitate reproduction. We only cured cancer to better facilitate reproduction. I would eat a cow that I had previously made friends with, every time. Cannibalism makes more sense than you think it does. Nut proteins, and fruit proteins, and cellulose and all of that indigestible stuff are much farther removed from your necessary protein uptake than a human arm would be. You just won’t eat them because a lifetime of making human friends has made you hypersensitive to our original carnal nature. Alison Bailey, Biomedical Engineer (Nami and Saori)
Biomedical engineering… I’ve majored in it for three years now and still struggle to explain exactly what it is, or what it means. From my impression of the field, it’s essentially where the medical world meets engineering, including (but certainly not limited to) drug development, device development and saving lives. It’s a field I think is often glamorized due to its inherent inclusion of innovation aimed to reduce human suffering, but the behind-the-scenes efforts involved in making that innovation happen are remarkably difficult. I chose it because I liked math and science and had a strong desire to develop things that would be beneficial to others, particularly related to disability and/or disease, in addition to the challenge. I’ve found that on paper, I enjoy calculating blood flow rates, vessel shear stresses and mechanical stresses, but in reality the number of variables involved in biological systems puts your answers nowhere close. It’s astounding how much seemingly negligible variables, like parts-per-million metabolite concentrations, can have such a huge effect on biological systems as a whole, which makes the research experiences both extremely frustrating and rewarding. Working in a biomed research lab for a year and a half highlighted both aspects for me, and most importantly reinforced the idea of passion for what you do. Brett Marshbanks, Marketer (Noboru)
Ads and consumerism, they consume you. Everything is surrounding you always and you can’t turn it off. Walking down the street, reading a book, it feels like my dreams are even ads. It’s everything, life. I wonder who the mark is and what KPIs are involved, who created this muck? Why did they choose freemium? What were the pivots that led them here? When I think about it I am a product and can’t turn it off. I worry about engagement, reach, influence, Google Juice, how’s my dashboard look. It’s about presentation and I can see how American Psycho was written. I’ve practiced my elevator pitch. It’s not even about TV ads anymore, that’s too obvious, it’s more subtle now. The brands are as dense as can be and it’s impossible to know who you’re really buying from and what they are actually selling you. What’s the hidden agenda, maybe I’m the product. Maybe not. Is this product a flanker? A Cash Cow? A star? Is this coupon just to get me to buy a new line extension or will this product really make me better, faster, stronger? Maybe we should adopt guerrilla marketing for this campaign. After all the competition plays dirty too. If that gets our conversion up it will be worth it. Of course eCommerce is the game now and your friends are even part of the machine. The ads and products are you. And for you. We know you. We know what you want. We now can give it to you wherever you go. To you, your segment, your market. Anonymity is gone. My fear isn’t that we’ve over stepped our bounds. My fear is we are giving you what you want. The decision making process is now dumbed down to discovery and decision. There isn’t even any thought into whether it was a good decision. Satisficing is the act of choosing your first best option that meets your minimum criteria and boy howdy it’s at an all-time low. Really boosts the margin in an age when we know what you want and how to tell you about it. Search for something once? Let’s show it to you for the next two weeks, even if you bought it, you could use two! I mean, what happens if the first breaks. We wouldn’t want you to be inconvenienced from lack of foresight. Either way we’ll always be here for you. With the bait and the switch. Ponzi was a chump. Bassist Will, Electrical Engineer (Hideo and Ichiro)
Wow. That is a terrible noise result. Is this simulator even working? If it were up to me we’d be using a SAR Converter instead of this terrible Sigma-delta converter. And I still need to start that decimation filter. It’s going to be a long week. Yes, I’d love to check and save this file before netlisting. Woo! Finally running an accurate simulation now that I have the updated model files. I guess that’s what you get with a 10 nanometer process - terrible device modeling and crappy output impedance. Got to keep Mr. Moore’s laws in motion. Oh, the simulation finally finished. Let’s see here… INL is good… DNL, not so much. Seriously? I’m getting 20mV of droop over a two-hundred nanometer transistor? Three-hundred better work in this next test, we’re cramped for space as is. Mr. Miyagi isn’t going to like the news if these devices keep expanding. That guy is out of his mind thinking we can fit eight-thousand electrodes on a two hundred micron die. With a die area like that, and this silicon’s terrible inductor modeling, we’ll be lucky if the wireless interface works from six inches away. Ah, can’t forget. I need to get the updated amplifier spec from Jeff. Hope they didn’t change the architecture… I was almost finished with that layout when the revised spec. Adding offset cancellation is one thing, but chopper stabilization is going to be risky. I need to make sure they run a full monte carlo analysis on that circuit. Don’t want them blaming the layout guy when their offset is through the roof and the complicated cancellation scheme fails due to clock jitter. Oh, It’s already 2:50… I need to get on the conference call with the tsmc reps… they’re not going to be happy when we let them know we need both silicided and non-silicided poly connections. If their DRC rules weren’t so ridiculous this circuit would be a breeze, but this double-patterning is kicking my butt. Dialed in… where’s everybody else? They better not miss this meeting. Poly spacing violations everywhere… forgot to add in the medium thickness oxide. That ought to fix the problem… Yes, check and save before exporting… like I have a choice. Why is that even a feature? Ok… Compiling layout netlist…. Compiling schematic netlist… Cross referencing device instances… woohoo! Passed LVS on the first try. Hopefully the ADC layout goes this smooth. Oh hey, Jeff just joined the conference call. And tsmc reps joined in. Let’s get this call over; I want to get this design done, then go home and get some sleep. Forrest Heller, Programmer (Haru)
I wrote this 3 different ways: 1. Stream of consciousness as though I were talking to myself late at night and reflecting 2. Stream of consciousness over a longer period of time 3. Stream of consciousness in the moment as I'm debugging a problem or working on something. If you pick your favorite style, I'll iterate on it. One thing I wanted to capture was the feeling of "This thing I just wrote is terrible. I'm going to hell for this. But actually, time-wise, this is the most productive thing to do." For the Karma chip, I thought of having a breakthrough in hardware + software. The character invents a special compiler that compiles the hardware and the software at the same time, and optimizes both of them as much as possible. I've never seen one of these before, and it's what I imagine we would need to actually build a hyper-optimized chip like Karma. He builds a really shitty prototype, shows it to his boss, who then gradually gives him more funding and a team. The team start taking his shitty prototype and making it production-ready. Attempt 1: Talking to myself I’m going to hell for this. I’m going to get to engineer heaven, and they’re going to ask me about the “full_generator.sh”. And I will confess. It’s 50,000 lines. It’s an incomprehensible monstrosity that generates other shell scripts, which generate some other programs, which then get executed on our1024-machine cluster, all to generate and execute simulation Verilog for our custom processors. The interns hate it. But the senior guys get it—they know it was the fastest way we could get what we want. You know the programs that run the trains and planes are all monsters? Every time I meet a programmer that works on a piece of critical human infrastructure I get the same story: “It’s a giant mess! We have stuff from the 80’s still in there. Once a night we have a screen scraper…” And now I’m making the most advanced, most critical piece of humanity. Surely my sins, like “full_generator.sh”, can be forgiven? It’s almost as messy as the new transport protocol I invented. But it’s just a prototype, we’ll rip it out and replace it later I promise! More like the interns will do it, haha! Just kidding, they would fuck it up big time. Oh how I love mixing hardware and software. This chip is beautiful. See the thing is, everyone tries to write their hardware and software at different layers. They think that hardware and software are different – they’re not. What we found is that really you just need to make a smarter compiler. I made the prototype compiler, and then we hired real compiler people and real hardware people, and some interns. They rewrote it from scratch. Now it’s wicked fast. We can write C programs, they compile into the optimal hardware-software implementation mix for a given power and size requirement. Because at the end of the day, what is a program? It’s just information fed to hardware. Attempt 2: INCOMPLETE Alright, it’s whiteboard time. Pie in the sky. I think I might be able to produce a little prototype compiler for C. But instead of just compiling the C to software, it will also compile to hardware. It will be a funny April fools joke. It’s April 22nd now. I can’t stop working on it. I will probably get fired for this, especially because I’m supposed to be writing the firmware for the new PornPrime. Huh, it actually worked! Right now I have this really crappy back-end generator for LLVM that turns LLVM into Verilog for my spare Xilinx FPGA. (Side note: It’s way far in the future and Xilinx tools still suck) This is going to be the best lunch grab-bag presentation ever. I’ll show them my little prototype. My manager loves it! The VP of Engineering loves it! He says he wants a working prototype soon. I get two interns. This project is super-top secret. I finally rename it from “ass balls” to “chip generator”. I’m going to hell for this. I’m going to get to engineer heaven, and they’re going to ask me about the “full_generator.sh”. And I will confess. Or maybe I’ll repent by rewriting it. But right now I really just need the parent job servers to be able to respawn dependent jobs, and it’s 1:00am, so now full_generator.sh will just login as root to child job servers. kill -9 “$childpid”. Gotta make that demo for my funding! This is the most advanced project I have ever seen. They want to put a chip in a human head? Attempt 3: A normal day I’m going to hell for this. I’m going to get to engineer heaven, and they’re going to ask me about the “full_generator.sh”. And I will confess. It’s 50,000 lines. It’s an incomprehensible monstrosity that generates other shell scripts, which generate some other programs, which then get executed on our 1024-machine cluster, all to generate and execute simulation Verilog for our custom processors. The interns hate it. But the senior guys get it—they know it was the fastest way we could get what we want. You know the programs that run the trains and planes are all monsters? Yeah, you know it. So it looks like the last simulation run failed to converge on a solution? Hmm let me take a closer look. What was the new diagnostic tool called? I hate when people make cute names for software. It should be called “simulation_diagnostic.sh” Oh that’s right, it’s called “peeper”. Wait it calls a file that’s not checked in to the repo? It’s time for some “xit blame”. Tyler the intern. Extension 3141, “Hi Tyler, I’m trying to run the new peeper script here. I’m on commit a5421b. Oh you already pushed a fix? No you didn’t. Because I can see it on the internal web interface. Yeah 10.1.10.55:8080. It’s ok Tyler, these things happen. You know I use the Perforce visual tools before commit to inspect everything before I commit it. I’m syncing to the latest. Alright peeper is running better now—thank Tyler” People make mistakes, but I hate it when people act indignant. They know they’re wrong and they won’t admit it. That’s the thing about working with engineers – they think they are the smartest people alive. And they are. But only about thing dumbest things. |