The adventures of Sam Spade detective brought to you by Wild Root Cream Oil Hair Tonic. The non-alcoholic hair tonic that contains lanolin. Wild Root Cream Oil again and again the choice of men who put good grooming first. Me sweetheart. Sam, how did it go? It was the end, Effie, but the end. Oh Sam, not another one of those society things. Depends on what you mean by society. Well you know Sam, cafe society, cocktails for two, hands across the table, making another old-fashioned pluri. Let's not lose our head, Effie. Nothing but double martinis, very dry, with two olives, sweetheart. Two olives? Oh Sam, isn't that overdoing it? It was all overdone, sweetheart. That's what cracked it. Now stay right where you are. I'll be right down to mix up my report on the dry martini caper. Get it? Dashel Hammett, America's leading detective fiction writer and creator of Sam Spade, the hard-boiled private eye and William Speer, radio's outstanding producer director of mystery and crime drama, join their talents to make your hair stand on end with the adventures of Sam Spade. Presented by the makers of Wild Root Cream Oil for the hair. August is always a great vacation month and for those of you planning to take your vacation soon, let me suggest that when you're packing, be sure you include a bottle and a handy tube of Wild Root Cream Oil Hair Tonic. Or no matter where you go, you can always depend on Wild Root Cream Oil to groom your hair neatly and naturally. Relieve dryness and remove loose dandruff. Yes, you can take it with you on your vacation and you should. Wild Root Cream Oil Hair Tonic. Again and again, the choice of men who put good grooming first. And now with Howard Duff starring as Spade, Wild Root brings to the air the greatest private detective of them all in The Adventures of Sam Spade. Wise as an owl, sober as a judge eff. Oh, well the way you talked on the phone, I thought you drowned the shamrock, kissed the black Betty, spliced the main brace, decorated the mahogany, made a Dutch bargain, or, in a word, gone to give a Chinaman a music lesson. Effie, I wish you'd spend more time with Harper's Bizarre while I'm gone, unless with the thesaurus of slang. Ah. Didn't know I could say that. Are you sober? Well, I've been riding the choo-choo, drinking Adam's Ale. And if you don't believe it, just ask me to walk good chalk. Okay, heelsie-toesie, arms to Kimball, eyes glazed. Yes, Sam. Now, then tip of the forefinger to the tip of the nose. Oh, Sam, it makes me dizzy. Dizzy Gillespie? Dizzy, go old Sam. Exactly. And you are not sewn up, shagged, shellacked, shickered, stuccoed, tap-shackled, stiffo or real crazy. Well, you know best, Sam. Good, now try this one. Yes, Fred. Sitting posture, limbs cruciform. What? Cheesecake style. Oh, Sam. That's it. Now place the notebook. Uh-uh, just a little higher. Good. Now apply the tip of the pencil to the top of the fool's cap and proceed this. This. Date. August 1st, 1948. To Mrs. Netta Martini, 1,000 Marina Boulevard, San Francisco. From Samuel Spade, license number 127-596. Subject, Dear Netta. The first I knew of the caper was the day before yesterday morning when I saw your husband's picture in the paper. It was one of those lovingly retouched executive type photographs of a man in his late 40s or early 50s graying at the temples and wearing an embalmed man of distinction look. The story was headlined, corporation head way-laid by mysterious assailant. Shover, foils, would-be kidnappers at offices of Martini Trading Company. The item under it wasn't as thrilling as the headline. Sounded as if he'd been knocked down for his wallet and the attempted kidnapping had been dreamed up by a board city news reporter. I tossed another wastebasket along with my morning mail and went back to the police cassette. On page 3, the phone rang. Unique garage, Harry speaking. Mr. Spade. One moment, who's calling? Gordon Martini. Not Gordon Martini, the corporation head, way-laid by mysterious assailant. Chairman of the board and there's nothing mysterious about it. Then what are you doing on this phone? I can't talk on the phone. Where are you? In a hospital? I left that pest house this morning. I'm at my residence, 1,000 Marina Boulevard. It'll take you exactly 20 minutes by cab. You will meet me in front of the building and we'll have our conference in my car on route to the office. Where's your office? Downtown Post Street. Why don't I meet you there? I'm a busy man. I have a full calendar. I'm already late due to all that hospital red tape. But I can fit you into my schedule if you'll hurry and I'll look alive, man. Well, it's a little early in the morning, but I'm trying on. Good. What will you want for a retainer? I'll let you know if I decide to take the job. Fair enough. 20 minutes. I'll expect you. I should have looked more alive. It took me two minutes to get out of the street, one minute to flag down a cab and 18 minutes to reach your address letter, a total of 21 minutes. As my taxi drew up to the curb in front of the canopy entrance to the corner apartment house at 1,000 Marina, I saw your husband pacing indignantly up and down in front of the entrance, pausing only to glare at the outsized chronometer on his left wrist. His gray hamberg was perched atop an outsized turban of gauze bandits that decorated his head. Ah, now you've spayed. You're exactly one minute and 22 seconds late. Hours are made of minutes, minutes are made of seconds and killing this seemingly negligible interval of time you have wounded an hour. Oh, I have. Well, I'm sorry. The traffic's pretty heavy out here. There's hour of the morning. You should have started a minute and 22 seconds earlier. I'm sorry there was a bore on the telephone. I kept talking about how valuable his time was. Don't apologize. Only wait some more time. Now, you should check. $100. My car's just around the corner. I pay that chauffeur a large salary. We mustn't keep him waiting. In the meantime, you may as well start earning a fee. I've been earning it for the past 22 minutes and 22 seconds. Uh-huh. I suspect it as much. Do you drive a car? Yeah, you mean one man drives all that? I see him. That rascally chauffeur of mine. Sleep in the back seat. All right, come out of there. Hey, watch it! I was behind him and a little to the right. The shock of the rapid fire, 30 caliber slugs lifted him off his feet and knocked him against me. I went down under his 300 pounds of dead weight. The time I rolled him off of me and got up, the gunman had jumped out of the limousine and into a gray sedan that was double parked alongside. In the welder of traffic on the boulevard, I didn't dare risk drawing a shot after him, but I did get the first three numbers of the license plate before it buried itself in a heavy stream of AM commuters. That's when the air chains were exhaust fumes to something out of a Persian garden. I turned and looked for the first time into your Nile Green Eyes letter and saw you twisting a handkerchief in your pale hands I might have loved beside the shallower, but on Marina boulevard, they looked like hysterics, dead air, dead air, but on Marina boulevard, they looked like hysterics, dead air, who did it? You saw him, don't lie to me. Why don't they come with the ambulance?  Make them go away, make them go away. I can't stand. Stop it, will you? That's better. Now come on over here. Who are you, his wife? Yes, and it was all my fault. This is the end. I called Ernie out the window and asked him to come upstairs. I wanted him to return some lingerie. They sent the wrong color, Pete. Yeah, yeah, who's Ernie? He's our chauffeur. I was looking for the exchange slip when we heard the shots. Is he dead this time? Yeah, don't go to pieces. Poor Gordon, he had so many enemies. He didn't drink well, you know. People dropped us like flies. They certainly dropped your husband. Are you a policeman? No, but I'll do until the real thing comes along, which is right now.  They'll get to you soon enough. Yes, I suppose you're right. I'll get up and stagger on into the elevator. He didn't drink at all well. Go on, will you? Oh, Ernie, where did you go? Down to the garage. I heard a car driving. Poor Mr. Martini. It's all my fault. No, Ernie, it's mine if I only hadn't mislead that exchange slip. What?  Oh, oh, that. What do we got here? Who's the witness? Me. Oh, Spade, lost another client, huh? Not quite. I hadn't cashed the check yet. I don't know what I'm doing anyway. All right, clear a space in there. Let him through with that stretcher. Step over here out of the crotch, Sam. I want to get that statement. Okay, Gary, take it down. Got a pencil? Yeah, and I want it back. Let's have it. This guy is Gordon Martini. He headed up a local firm, the Martini Trading Company. Last night, he was working late at his office. Got buoyed, phoned me this morning. Didn't know why. Thought maybe he wanted a bodyguard anyway. He needed one. He came out of the crotch in the back seat of the limousine, shoved the car bean out when Martini opened the door. Car bean. Didn't get a good look at him. You can see why. The way it's closed in, no side windows. Foreign car, isn't it? Stop drilling. You can't afford one. You getting all this? What about the getaway? Martini fell on top of me. I saw the getaway car in the back of his head. The car was a gray sedan. The back of his head was a standard make-toe. Only got the first three digits of license plate. G9, anything else? Yeah, give me back my pencil. The homicide boys want some help. They know my fee. Mr. Spade. This is Martini. Why aren't you and Ernie upstairs getting your alibis shaped up? Please, I can't fix the questions just yet. Would it be legal if I just avoided them till I can collect myself? I don't know about legal, but it might be smart. Where can we talk? What do you suggest? Well, there's a little cocktail lounge up on Lombard. We're Ernie and I. Well, that's handy. Let's go. Against my mother's advice, I should have listened. But, well, that's why I married Mr. Martini. Well, uh, that brings us up to 1943, and it's only, uh, quarter to 12. You're just like him. Always holding a stopwatch over my head. Always? Well, he drank, you know. You told me that. But it's much more important than you think. He often fell down and bumped his head. You mean that mysterious assailant who was in the pictures before dinner. Ernie had to carry him up to his office. Well, where'd he go up there for? Oh, he had an appointment with the vice president of the firm, Mr. Nesbitt. Something had come up and he wanted Gordon to sign some papers. I don't know what. It wasn't the first time. I waited outside in the car. After Ernie had taken him upstairs, he came back to the car and we talked. Ernie has alibis upstairs, downstairs, and all around the house. Well, then when the others came out and Gordon didn't, Ernie went upstairs to see why. Others? Mr. Nesbitt and who else? Secretary? No, she's an attorney. And if you think everything was legal between those two, well... But after all, who am I to call the kettle black? What are you trying to tell me? That she got him drunk so they could make him sign some papers that he got himself drunk so he couldn't write his name or that he just got drunk and fell down? Between you and me, I think she pushed him down a flight of stairs. In his condition, he never remembered. Why are you putting a finger on the Callaghan thing? What would you think? She was the last one out of the building. Why didn't you want to tell all this to the police? Well, I didn't want to talk about his drinking. Things were bad enough already. That would have been the end. Well, let's just get an answer, Zenny. What do you want me to do for you? Prove that she did it and Ernie didn't. I'll let you take care of Ernie. Oh, no. I don't want to alibi him unless I have to. He might get the wrong idea. You mean I've got the wrong idea? He might think it meant I still care for him and I don't. I can't stand him anymore. The way he chews those two things. And besides, if his alibi is too good, I might have trouble about that car being in the backseat of my car. Pardon me. It sounded as if you said you might have trouble about a car being in the backseat of your car. That's what I said. Where is your car? In the garage. But somebody had it out this morning. They scraped the fender coming back in and they ran into the wall. They must have been in an awful hurry. Tell me this car yours. It wouldn't be a grace of an... Yes. License number? Oh, wait a minute. It's on my key ring. Here. 5D90... That's enough. Why didn't you tell me this before? Well, I couldn't get up the nerve. After I heard you tell that policeman, the gun that killed Gordon was a car being. And the gray sedan and all that, well, it's the end. I hoped you were right, but I didn't think so. When I went to look at the gray sedan in your garage, I knew you were wrong. Dead wrong. It was the getaway car all right and the car being, as you know, was proven later to be the one that killed your husband. But Ernie had turned into a very poor suspect indeed. He was hugging the carpet between the front and rear seats and when I nudged him, he didn't move. He'd been shot at close range in Gordon Martini and the killer had used only one slug. It was planted in the base of his brain, which made him not only a very poor suspect, but a very dead one. The makers of Wild Root Cream Oil are presenting the weekly Sunday adventure of Dashel Hammett's famous private detective, Sam Spade. If you want a well-groomed look that helps you get ahead socially and on the job, listen. Recently, thousands of people from coast to coast who bought Wild Root Cream Oil for the first time were asked, how does Wild Root Cream Oil compare with the hair tonic you previously used? Better than four out of five who replied said they preferred Wild Root Cream Oil. And no wonder, Wild Root Cream Oil grooms the hair neatly and naturally, relieves annoying dryness, and removes loose dandruff. What's more, non-alcoholic Wild Root Cream Oil is the only leading hair tonic that contains soothing lanolin. So ask for Wild Root Cream Oil Hair Tonic. Again and again, the choice of men who put good grooming first. By the way, smart girls use Wild Root Cream Oil too, and mothers say it's grand for training children's hair. Now back to the dry martini caper, tonight's adventure with Sam Spade. I'll see that he gets your message. Well, what can I do for you? I would like to see Miss Callahan. Miss Callahan is in conference with Mr. Nasset. Good. I would like to see them both. But I have orders not to disturb them. You do not have to. I will. Just a minute, you can't go breaking unlike that. Yes, and I'll tell you something else. He won't ever get away with it. Why, everyone in this town knows about your underworld connection.  If I go to the gas chamber, it'll be for killing you, not Gordon. Miss Callahan? Did you hear that? You weren't talking loud enough. I didn't hear a thing. Well, come on in here and I'll tell you a thing or two. Close that door. Now, sit down. Thanks. I listened better on my feet. Oh, so you're the detective, Netta Martinian Freud, eh? What's she paying you? That'll depend on how much I have to do for it. Well, I'll tell you how much you'll have to do for it. You'll have to make a case against me, and that's not going to be easy. Why do you think she's out to get you? Why, indeed. For years, this moth eatin' mouthpiece, this parboiled pusher, has been victimizing poor Gordon, taking advantage of his weakness for drinks. Now that she's liquidated him, she appears with 55% of the common stock. Motive enough, eh? Why, you fraudulent old fool, I simply bought up his debts and threw an attachment on those stocks, unethical but perfectly legal. But you're not even a proper thief.  Now listen here. You ate your books as he was going to call in the auditors. Look over those books of yours. You've paid this for the courtroom scene. Now you've convinced me. You're both crooked.  That's a promise. Mr. Spade, I gave you credit for better sense. You know that this Medusa of the magistrates court, this harpy of the Hall of Justice, tricked him into changing the beneficiary of his insurance the very night she pushed him down the stand.  Answer that to see Mr. Spade. He can't answer that. Good, good. I'm glad one of you is temporarily lost for words. Now, I only want to know one thing and a great answer. And if either one of you starts off in another speech, I'm going to push you into the nearest cloakroom and lock you in together. Why, you wouldn't dare. Try me, sweetheart. Well, what do you want to know about this Amazon ambulance station? This trillby of the traffic course. Watch it. Well, what do you want to know? About Martini's insurance policy. Now, you say he changed the beneficiary. Please answer in ten words or less. Who was the beneficiary and who is the beneficiary now? I'll have to answer that question in two parts. The beneficiary was his wife. He changed it to the Martini Trading Company, a corporation of the state of California. Thank you and goodbye, Mary Callahan. And that letter took the heat off of you for the time being which made things tough for me. Because Callahan and Nesbitt were so horrible I never wanted to see them again even to testify against them in court. I was sure of one thing. None of you would pull the trigger of that car beam. I was in a hired killer behind it and the way he operated, taking crazy chances in broad daylight and a crowded street told me an important thing about it. That night I made the rounds of the joints at a plant called the Bing Room. I found a bouncer who had tossed out a customer that went up a bill and tried to pay it with a thousand dollar check. He sent me to the Atlas Hotel. The Atlas Hotel is off at 3rd Street down near the railroad yards. Not even a plea bay. The pleas sickened and died a long time ago. The guests sprawled out in the mission furniture of the lobby they wouldn't be able to much longer. A half-dead room clerk came back to the land of the living long enough to mutter a room number and wave me feebly toward a flight of crummy stairs. Yeah, what do you want? You, uh, hack Heartland?  Yeah, I got news for you. Get back in the room. I'll tell you all about it. Yeah, well, come on in. Drop the shiv. Yeah, I'll drop it. I'll fix you. I'll cut you good. I'll make it easy for me. Now, get over there. Leave me alone. Leave me alone, huh? I'm not feeling so good. You can feel a lot worse. Who hired you to put the burn on Martini? You don't get nothing out of me. Who gave you that check? Leave me alone. I got all night, hack, and I feel better than you do. What did you do with that check? I'll shake it if your teeth come out with it. Come on. All right. All right. Stop it. Stop it. I don't feel so good. Pocket, my shirt. Don't reach. I'll get it. There was a company check, which is what I'd expected. It was for $1,000 drawn in the Golden Gate Trust alone. But I wasn't expecting to find the signature on the bottom line. It was signed in a bold, firm hand, Gordon Martini. Who was the penman on this? He wrote it himself, right in front of me. What was it supposed to be for? He wanted I should knock off his brother. You get mixed up?  That's what I mean. Gordon Martini's dead. Ah, the papers got it wrong. That was his brother, his twin brother, and that other guy, that chauffeur, kept hanging around the garage so I couldn't get out. I had to, I had to burn him too. You know what you're saying? Yeah, yeah, yeah, yeah. I'm making sense. Now get out of here. I'm getting steamed. Don't let it worry you. I got a nice, cool place all picked out for you. After I turned hack over to the cops, I did what checking I could on my own at that time of night. As nearly as I could learn, Gordon Martini could never have had a brother, twin or otherwise. He was a first child, his mother died in childbirth, and his father died one month later. So I went back to the offices of the Martini trading company, glass keyed my way in, and made a quick frisk of it. There I learned that the signature on the check was indeed Gordon's, but that he had closed out his account at that bank the day he wrote it. I thought about that on the way out to your apartment. Sam, I've been calling and calling, trying to reach you. I've been so worried. It's the end. This time you might be right. Fix me a drink. Well, there's nothing in the house, but those prepared Martini's Gordon used to drink. Is that all right? No, but fix me one anyway. Never mind the ice. It's not morning yet, but I hate myself already. Why don't you just relax and let me get it for you? I'll relax you get the Martini's. She's cute. You're all cute. I put ice in anyway. It's nasty with ice. It's nasty anyway. I hope it doesn't make you fall down the way it did for Gordon. Thanks. What's the matter? Too dry? You open this bottle fresh? Well, yes. What's the matter? Where are they? The rest of the bottles. Oh, yeah. More of the same. Is this all your husband ever drank? Yes, gallons of it. It's a special brand. He even took it with him to bars and people's houses. He'd sit and drink them right out of the bottle like a little child. Then he'd be falling down drunk, of course. And that's how we lost so many friends. They dropped us like flies. Maxie, Sam Spain. Sammy, what can I do on you? On Martini, Maxie. They got around the autopsy in? Yeah, they rushed them through. Got the report handy? Right in front of me. Funny thing, Sam. The doc said they should have saved themselves the trouble. He'd have been dead in a week or two without no help. What from? Brain tumor. Malignant, it says here. Any alcohol in them? None from drinking, Sammy. What about the head wounds? Discondition. Thanks, Maxie. Well, what is it, Sam? Were the Martini's poisoned? No, sweetheart. The Martini's were colored water. Why, they couldn't. What made him get so drunk? He didn't. He was sick. But Sam, who killed him? Killed himself. But he couldn't have. He hired a gunman to do it. He planned his own murder. But why didn't he leave a note or something? He could have ruined us all. Yeah, just what he wanted you to do. He wanted to ruin you. He let Mary Callahan place him out of his interest in the company. He let Nesba juggle the books.  He let all three of you fix yourselves up with as nice a set of motives for murder as a jury could ask for. Oh, couldn't have. The real joker was the check he used to pay off the man he hired to kill him. It bounced. It also proved he planned his own murder. But he still has his revenge. Because the insurance that would have kept the corporation from going broke won't be paid off on account of a self-liquidating cause. Oh, Sam. Darling, what's going to become of us all? Well, uh, Callahan and Nesba will probably sue each other to death. You might have to go to work and earn a living. Well, I have $500. I might invest it in something. You already have. Here's my bill. But, Sam, you didn't help me. What? This is the end? No, it isn't, sweetheart. This is the beginning. Come here. Period. End of the end. Well, you asked me. You helped it. Now, F. Well, I just goes to show you. Show what, F? Man's in gratitude to man. But what did Mr. Martini have against you? Why, uh, nothing, sweetheart. He just needed a smart operator like, uh, well, no, no. I don't know. I don't know. Sam, have you cashed that check Mr. Martini gave you? Well, uh, not yet. I, uh... Sam, any bartender would know better than to take a check from a man who drinks that much? F, you haven't been paying attention. He didn't drink. He didn't. I was able to establish that later on. You haven't been listening. Well, at the time, Sam, for all anybody knew he was a hopeless drunk. He was, Sam. Oh, you're so wonderful and trusting. But I do wish that you'd understand this. He was a hopeless drunk. For the last time, Effie, he didn't really drink. I'll just type this up, Sam, while you call the bank. I'll do that. A final reminder, friends. Whether you're going on a long vacation trip or just a weekend to the beach, be sure you've got a bottle and tube of wild root cream oil tucked away in your suitcase. Do this, and you'll find it's easy and quick to spruce up again after stepping out of the water or off the tennis court. For no matter where or when you use it, wild root cream oil grooms your hair neatly and naturally. Relieves dryness, removes loose dandruff. So, at home and away from home, help yourself to handsome hair with wild root cream oil. And next time you have a chance, ask your barber for a professional application of wild root cream oil hair tonic. Again and again, the choice of men who put good grooming first. Where's the price of the paper and carbon? You made carbon copies of that? An unimportant report like that? It bounced? Well, your state isn't settled yet. Oh, Sam, you're so wonderful and trusting. Effie, I am not wonderful and trusting. I am a hard-boiled, private eye. I know. Just a pity there's no money in it. And I'm also too fisted. Have you ever thought of ceramics? Of what? Ceramics. It takes virtually no capital. All you need is a small furnace and some clay. And if you don't have any talent, you can just make ashtrays. Thanks, I already have one.  You can pot them on a wheel. And you can pot your hat on a wheel on out of here and also take your furnace and clay.    Good night and sue me for your back-salvy sweetheart. Here's one who put good grooming first. This is Dick Joy reminding you to... Get wild root cream oil, Charlie. It keeps your hair in trim. You see, it's non-alcoholic, Charlie. It's made with sooth and ladle in. You better get wild root cream oil, Charlie. Start using it today. You'll find that you will have a tough time, Charlie. Keep an ol' gal's away. Hide your baldy. Get wild root right away. This is CBS, the Columbia Broadcasting System.


My name is Greg Stark. I've been a Postgres developer since about 10 years ago, 2006. And that's about half of Postgres' lifetime. Postgres was released as open source in 1995, 1996. This is the 20th anniversary of Postgres' open source life. So there's another talk by Magnus, the look at the elephant's trunk with the new features. I'm going to present some of the history of Postgres and how it's gotten to where it is today. So I look at the elephant's tail. 20 years, this is the 20th anniversary of Postgres' open source release. So it's a good time to look back. I'm going to look at specifically the sorting code. And that's kind of a narrow little slice of Postgres. It's an interesting slice to look at, I think, because it affects a lot of user queries, a lot of user-visible behavior. It impacts building indexes, it impacts several other parts, as well as, obviously, queries. And it's nicely isolated from the rest of the source base. It's its own module, it's its own module, and it has an API that cleanly separates it from the rest of Postgres. And it's interesting to look at the history because it shows you the people that were involved, the priorities of the day. And you can sort of see how the priorities have changed over time as the usage patterns have changed and the hardware has changed and so on. One of the things I want to highlight, though, is that it's not just about making Postgres faster. Every release there's some notes in the release notes saying the new version is 5% faster or 10% faster or whatever. And it's very easy to be fooled into thinking or to assume that that means everything is 5% faster. And that's not very exciting because if your application is fast enough, you don't really need, you might find it easy to dismiss a 5% speed improvement that's across the board because your application is fast enough today, 5% faster, it will still be fast enough, it's not going to change your business. It's not going to solve any real problems that you have. In reality, many of these changes, and this is the theme that I really wanted to focus on, many of these changes are addressing problems that users had. They're addressing discrepancies where some things were fast and other things were slow, or some things were fast but they couldn't make them any faster because of hardware, the Postgres didn't adapt to the hardware changes. They could increase the amount of memory but Postgres wouldn't use it, things like that. So when you see Postgres got faster, there was some improvement that made Postgres faster, it's really about there was some user that had a problem or many users that had a problem that limited how they could scale their database or how they could use their database and we solved that problem and that means you might have that problem. You might run into this, you might have an outage one day and the new version wouldn't have had that outage. The risks of upgrading, you need to balance against the risk that the new version solved the problem. That the risk of not upgrading means you could be at risk of running into one of these problems and you report it only to discover that well if you'd been on the new version it had been solved already because you're not the first person to run into it. So one day you change your queries, the behavior isn't what you expect or you increase a parameter and you don't see the performance benefit you expect or you improve your hardware and Postgres runs into limitation and you're not the first person to run into that, the new version might have solved that. So that's the introduction. This is the big picture. This is the last 13 years, I couldn't quite go back 20 years for reasons I can get into in Q&A but I managed to check out and build old versions of Postgres with modern tools on modern hardware so all of these results are comparable. The only difference between these data points is the Postgres code. So this is not comparing the way Postgres behaved 13 years ago with the way it behaves today on modern hardware this is comparing the way it would behave today if we hadn't changed the code with the way it behaves today with the new code. And the battery is dying in this. So I can't use the laser pointer but actually the battery. So this starts at 7.3 and you can see the early days there was a lot of fluctuation, the performance improved dramatically and then later on there were very specific increases, very specific versions and a couple things to highlight about this chart. First of all it's a log scale chart so don't be confused. The differences at the top are just as large percentage wise as the differences at the bottom for like a six inch drop is the same percentage improvement as a six inch drop on the faster queries. So the differences that might seem small at the top are actually major, like that's a two fold difference. The difference between those top two lines is a factor of two and the difference lower down between the green and the, well, it's hard. So each of these lines is a different query, most of them are just doing sorting. So the blue line at the bottom is a plain sequential scan. The green, yellow and red above it are sorting binary data, floating point data and integer data. So these are just sorting binary data, sorry, the green is the integer, the yellow is floating point and the red is a binary blob by day. And the top two are sorting text. The blue one is sorting text that doesn't fit in work mem so it needs to do, I'm going to go into details on the algorithm, it needs to do it in repeated passes and the red is if it all fits, it's configured with a very large work mem so it all fits in memory. Unfortunately, all of these, they actually fit in the physical memory of the machine. I did run a benchmark where it didn't and there was a pretty small difference. It actually didn't really illuminate anything in the chart and it made it more cluttered. So I'll repeat this chart after each improvement so you can see what the impact is. So 1995 was the first public release, I couldn't compile it, it's not in that chart, but I did go look at the code, the sorting module was 600 lines of code at that time. It turns out sorting is a difficult intellectual exercise but it doesn't actually require a lot of code. That code is actually fairly similar to what we have today. What we have today is a lot more lines, there's a lot more features and error handling and some optimizations that inflate the size of the code but structurally it's very similar. There's one major change between that and what we have today which is when the code, when the data fits in memory, Vadim in 1998, 1997, sorry, added the change to behavior so when their data fits in memory it uses an algorithm called Quicksort. Now Quicksort is important to understand because it's actually fundamental to a lot of, it's actually what you're using in many cases. Often your data does fit in memory, it has a lot of advantages. One of the main advantages is it doesn't need to be tuned for the size of the CPU cache or it doesn't need to be tuned for the various cache levels actually, not just the CPU cache, because it uses a divide and conquer method it breaks down your data into successively smaller chunks, it eventually reaches a point where it fits in your CPU cache and it always takes advantage of that equally regardless of the more CPU cache you have, the better the performance, the Postgres doesn't need to be tuned to take advantage of it. It has other advantages, it has a very low overhead constant factor, so all these sorting algorithms are N log N, but the factor in front is relatively small in Quicksort. There are some other factors, it has some downsides as well. The code in Postgres is actually used as an example in some discussions online, you can find interesting papers on Quicksort and the Quicksort in Postgres is a good example of which of those downsides need to be addressed. I'm not going to go into detail on how Quicksort works, the important thing to understand is that it's a very efficient algorithm and it makes use of the CPU cache well, but the key point is it only works if your data fits in memory. When your data doesn't fit in memory, we need to do an external sort and I do want to spend a few minutes talking about external sort because a lot of the improvements over the years have been to this algorithm including fairly recently. The algorithm that we use is almost straight out of this book. This book was published in 1973 by Donald Knuth. It's been the Bible for computer programmers for all that time and in fact the comments and the codes refer to specific page numbers and steps of the algorithm in the book. I'm going to try and rush through this because there's some new, recent changes in Postgres at the end of the talk and I want to leave enough time for them. This is fairly technical but it helps to understand the improvements. The basic strategy is that you can only fit some of your data into memory. You want to sort all of it. You're going to fit into memory what you can, generate a sorted subset of your data, the size of your memory or actually hopefully as much larger as you can than memory and then work on the next batch and generate another subset and then once you've generated all of these sorted subsets you need to merge them into one long sorted list and one of the goals is to make these subsets as large as possible and it's actually possible to generate sorted subsets that are larger than you can actually fit in memory at any one time. So the first step is generating this sorted subset and in this example you have to imagine that you can only fit three datums in memory at a time.  So you load the first three into memory, you load it into something called a heap which lets you extract the least element from that subset. It shifts up to the top and then you output that least element to your sorted subset. Then you move on, now you update the heap, things shift upwards and you load the next value which is the fourth value here and now you know what the least element of the first four elements is and that one gets outputted. And you proceed, eventually you reach a point where there's an element that you've missed your chance. It should have been outputted ideally back here but you don't have an infinite amount of memory, you had to output something, you've outputted the B and the C already so you've now discovered oh there's an A, it's too late, it's missed its chance. So you have to mark that A as being part of the next sorted subset. And you proceed, in this case you can output the D and then you have another element B that also missed its chance but you can still output the F and now you discover oh there's actually a G, I can still output that G, that still hasn't missed its chance and eventually you reach a point where the next element belongs to the second set, the second sorted subset. They're actually called runs. So now you start outputting elements to the second run and so on. And you actually have to continue, you might generate hundreds of these runs. And this is, I'm sorry if I'm going too fast but this, as I said, there's recent changes that I've added and I'm worried that it's going to be too long. Is this fairly clear? It kind of depends on the already knowing what a heap is which I didn't want to get too much into. Yeah, I got it. The key point is you're generating these sorted runs and the sorted runs are a subset of your data. And I meant to put that up when I asked if there were any questions. But then the next step is you want to merge all these sorted runs and again that uses a heap. You load the first element of each run, that tells you what the first element that you need to output is and then you need to replace that element. That first element came from run two so we need to replace it with the B so that the heap always has exactly one from each run. It's sort of exactly the way you would merge a pile of name cards at the registration desk.  So we replace it with B, sorry, replace it with B, and that's a bit confusing. We replace it with B2 there which came from the run, output the B that's B1 and then we replace that with C1 and we continue and we merge all of those runs. There's one detail that isn't apparent in this slide. That works fine if you've got three runs and you can fit three things in memory but if you have more runs than you can actually merge in one step you might need to repeat the process and merge repeatedly down to fewer and fewer runs. Knuth actually goes into quite a bit of detail about how to schedule that merging because especially in 1973, tape machines were expensive, tape machines were slow and you spent a lot of time rewinding tapes, a lot of time changing tapes so there's algorithms here for what to do if it's hard to point out but these are each different orderings in which to schedule these merges and this is in the book, it's a fold-out page it's like a picture book. One of these algorithms is if you can run your tape machines backwards then you can write all your things to one tape and then read going back the other direction and then write and it's more efficient than if you have to rewind. Some tape machines couldn't do that so there's an algorithm there if your operator needs to change tapes how long they schedule it's calculated in these factors aren't really that relevant to Postgres these days not many people are running on tape machines so our algorithm, obviously these tapes are just files on disk rewinding is really fast so one of these I think it's the third one is the one we implemented in 1997 Tom so two years later 2000 Tom, actually it's 1999 it was released in 2000 but the code went in in 1999 Tom rewrote some of this code namely the abstraction layer that represents these tapes so that it would reuse space so that instead of having a file for each tape there would be a file with some blocks belonging to one tape and some blocks to the next tape and the key point there was already at this point Postgres is mainly sort of an academic exercise in the early internet days there weren't a lot of big production systems running on it but already people were pointing out that it kind of sucks that you need to store one copy of the data and the copy that you're merging and the copy that you finally output you needed a lot more disk space than the size of data you were actually storing so he solved that problem and this is what I was getting to at the beginning about these aren't just speed improvements these are solving problems so after this change you basically needed as much temporary disk space as the amount of data you were sorting not two, three or the worst in some cases four times as much disk space as you were actually sorting it also removed a limitation so when the data was more than two gigabytes it used to be that none of the tapes could be larger than two gigabytes so he's multiplexing files in a clever way so you could actually sort more than two gigabytes of data on disk at a time and there was a second I've mixed up these two went in these are two steps of the same change the same this is what I was just talking about before about the reusing avoiding the multiplying the storage space these changes were in 7.0 these days it sounds like early days but I wasn't involved yet but this was quite relevant back then oh yeah and then another major change he actually used this code when you're building an index it used to have its own sorting code with its own behaviors so at this point 2000 the code looked very similar to what we have today it quicksorts if it's in memory it uses these tapes on disk if it's doing an external sort it's using this heap in memory to generate these runs and then the heap to merge it until a couple weeks ago that was pretty much exactly what happened when you ran sort in Postgres today it took 6 years before somebody said there was really I mean at this point 2007 people are using this in production on the internet for websites they're using it to run their business this was very usable this was production level code production quality code but in 8.2 Simon Riggs came along and said this stuff from Knuth about tape drives back in 1973 it was a pretty reasonable assumption that you would have some fixed number of tape drives in your data center and you weren't going to go buy more tape drives just to run a sort faster it's a lot easier to buy more hard drive the hard files on your hard drive why are we still merging I showed merging 3 tapes in fact the Knuth algorithm merges I should actually point that out here all of these have the same number all of these algorithms have 7 tape drives it's all about how to make the best use of your 7 tape drives so Simon Riggs pointed out we can have dozens of tape drives or hundreds of tape drives you can have whatever number makes sense for the sort that you want to do and as a result performance dropped in these queries by about a factor of 4 2 to 4 so the sorting sorting I can't see the colors the top ones sorting by day dropped from almost well dropped from about 45 seconds to about 25 seconds some of them were even I think slightly better the idea is you can have you can have as many tape drives as you can merge in memory in one shot the limitation is basically whether you have enough memory to buffer enough I.O. that you're not jumping between tape drives too often so we want to read several kilobytes or about a hundred kilobytes I think from a given tape drive file at a time we don't want to read one record and one record if you have a million you're only going to be able to fit one record from each tape drive if you have a machine with a reasonable amount of memory you can probably have you can have thousands of files and read several hundred K from each file in each step so he implemented that he calculates how many can it read how much can it fit in memory how many tapes can it fit in memory if it's reading several hundred kilobytes from each tape and now it merges typically hundreds of tape drives in one step and the interesting behavior there is usually you can do one merge you don't need to schedule these multiple merge passes though back in 2006 if you're doing data warehousing you still might have needed multiple merges today probably not so just to look at that graph again that's this first big drop here and you'll note it affects it affects all the different data types but it doesn't affect this blue line on the top that's the one where sorry it doesn't affect either of these this this is quicksort it shouldn't affect that blue but I think this I need to look into that this might be the one where that was actually doing I.O. I might have dropped the wrong line there I think I'm going to look into that then this guy came along with a nice shirt there and he noticed that sometimes he was working on a website and he needed to do paging where you display the first 10 results and then go on to the next 10 results and the next 10 results but you have thousands of results and you only want to display a page at a time no it's um oh yes so the way we do I wasn't a committer so I would submit the patch and Tom reviewed it and edited it and probably rewrote it and committed it commit message there may be somewhere I had to cut off the last few lines of the commit message but usually you'll see the credit at the bottom um so the idea was if you only need the first 10 results of your or the second 10 results of your data set you don't actually need to sort the entire result set in order to just get that subset you do need to look at all the rows but you can once you've determined that a row doesn't fit in that subset that you're interested in you can throw it out you don't need to keep moving it around and comparing it to other values um and this works especially well well typically you're doing a small enough subset that we never did implement this for external sort so this only runs when you're sorting in memory because you're probably fetching 10, 20, 100 200 values that are going to fit in memory um but you are going to have to process all the rows the the the biggest win is when sorting the entire data set would have to have been done on disk but now we can sort just pull out those top 100 process all the rows in memory and so you can the performance impact is arbitrarily large depending on how much data you're sorting versus um the size of the page but you can see this impacted just this one it brought this purple line here from basically the same speed as sorting text in on disk god yeah so up here it's the same as the blue line oh I know what the other changed this is the more tapes had a big impact because you're not actually reading all of the the values so more tapes means you're likely to be doing it in a single pass so you're likely to be done very early in the process whereas before you might have to do multiple passes and you'll have to do all but the final one right to the end anyways so it brought it down from similar to other sorting to almost the same as a sequential scan because it does have to process all the data but it's just processing them in memory and so this is 10, 20, 30, 40 seconds and sorry 4 seconds and this sequential scan is about 1 second whereas before it was several minutes and everyone thought that was brilliant for 4 more years until another guy with a striped shirt Peter Gagan became a force for a force for sorting speed and said it's it's crazy that we're using these generic comparison operators that need to go through a lot of overhead to do sorting and we have this generic sorting code that needs to call these generic functions when if we if we implement a special function for each data type and in a way that is visible in C code and this is a very technical change but the important thing is to specialize the quicksort for each data type so that it could be the compiler could inline these functions and could optimize the quicksort to so if you're sorting integers it becomes just straight binary code that will sort the integers in memory and without going through all of these levels of abstractions and one of the nice things about this is that it gives us a place where we can implement optimizations specifically for integers or specifically for floating point or specifically for text whereas right now all we could have is well prior to this change all we had is a comparison operator that we could optimize to the sort and this is a use well this is the specializing the quicksort for each data type and this had a large impact this brought sorting integers and floating points down from in this data set this data set by the way is about a gigabyte so it's not so large that it's like large large data but it's large enough for these benchmarks having to run it hundreds of times brought it down from well you see there's two this is sort support that was the earlier changes it's a bit hard to read there brought it down from about 17 seconds down to it's about a 30% improvement but the important thing is this allowed later changes which I will get to imminently so right now we're up to here and this looks like a small change but when you realize it's a log scale graph so this is 10 seconds that's 20 seconds the next line is double the time incidentally there was an interesting speed improvement here that's because that was a point in time when 64 bit machines became quite common prior to 7.3 Postgres didn't support 64 bits at all that's why I couldn't run these benchmarks but up to here people the 64 bit machines were high end machines they were relatively obscure by 2008 people 2009 people were running 64 bit laptops 64 bit there in a lot of places and somebody commented that really floating point numbers can be passed around in 64 bits we don't need to be passing around pointers to them that was improved and the impact is visible in the sorting code because suddenly sorting didn't need to be passing around pointers and it's faster it's an interesting example of the hardware changes driving the improvements a couple more things in passing problems that users reported was raising their work mem settings I think it was still called sort mem at this time and not finding postgres using all of work mem this was because I think this was because we double the amount of the size of some of the data structures at each step and if you was using 55% of memory it couldn't double it anymore so it would use at worst about 51-55% of your memory and usually somewhat better but people were expecting it to use the amount of memory they had configured these are problems that impacted users and the small release notes that sound technical actually reflected real problems that were fixed and upgrading would mean avoiding running into that problem yourself how much time do I have left this is another such change where you were limited to 2GB for reasons that were internal and not relevant to the user again people were complaining and we was addressed I'm going to I wanted I wanted to talk about this it's relevant this is driven this was users complaining you know they're sorting data prior to about about 2010 or so they text meant ASCII at least in the US but even in most of the world text was really Postgres always had fairly good support for collation but it was non-US collations and non-ASCII encodings but it was slower and people knew it was slower and a lot of people chose to run in ASCII because I think that was the dominant choice but that changed over time most people would just configure Unicode without thinking about it without considering because they need that code, that support but it is a lot slower to compare Unicode text strings in complicated collations people expect it to be comparable to comparing ASCII text they don't expect to see a huge performance it and this was a change to address this unexpected huge performance hit and it is still something we want to support going forward we're going to need to address a problem which is really a problem in the operating systems that and I have slides here showing like how it works you convert the change converts these Unicode text into this big binary blob and then the binary blob can be compared just using an efficient memory compare the problem is that some operating systems, these binary blobs that it generates don't compare in a way that's consistent with the normal collation comparisons and so you would get actually broken indexes and bad results it was only in certain collations and only on certain operating systems so going forward we may be able to identify when it's a problem and when it's not and make sure that we still use the optimization but only when it's not a problem but hopefully we'll have to see about that the main takeaway though is the kinds of problems these changes fix are these discrepancies where you expect two things to behave similarly or you expect your performance to be consistent and there's this inconsistent performance where you're comparing Unicode text and suddenly it's much slower than when you were comparing US addresses and ASCII however there was a big improvement recently and this is why I went into so much detail on the the code the generation of these runs one of the this change was inspired by a sorting a sorting a paper on sorting called AlphaSort which talked in detail about the experiments they did generating these runs using different algorithms and what they settled on and this was the AlphaSort paper was in the late 90s but on large machines these days even on regular server the lessons of that paper are very relevant so AlphaSort well not that AlphaSort AlphaSort a new this is the abstract of the paper and that's gray very respected eminent computer scientists not a Postgres contributor unfortunately but one of the authors of the paper used QuickSort to generate runs and replacement selection to merge the runs replacement selection is the algorithm where we merge those runs using a heap but they talked about how they selected QuickSort to generate the runs they tried using a heap to generate the runs like we did and they found it wasn't really necessary it wasn't it was much slower QuickSort will generate runs just sort what you can fit in memory so it will generate more runs the runs will only be as large as fit in memory but QuickSort is so much faster that the extra runs that you have to merge you don't get back that performance the I'm sorry you're generating more runs so the merge step is slower but QuickSort is so much faster that you save so much time in the initial run generation that the merge doesn't you you don't lose as much as you you saved in the first step and the important observation is as memory has grown the likelihood that you need to do a second pass or a third pass all of those complicated merge scheduling algorithms has gone down dramatically and in fact if you configure a very small work mem 4 megabytes this is actually slower because it has to do these multiple passes so if you're the largest table size with the smallest work mem it is actually noticeably slower but even a halfway reasonable size work mem like 16 megabytes or 32 megabytes you have to be sorting very large data sets to ever go into that second merge pass and this change which is sort of frustrating because it's throwing away all of that complicated algorithm but this change takes like 60% or so as much time as the the old sorting algorithm on a typical server these days for 64 or 120 megabytes you can do you can generate so many you can afford to generate so many runs and still be able to merge them in a single pass so that's it's quite hard to see here because there are so many changes in short time the final drop here is the most visible part where if you look at the green and the orange and the red line they drop quite sharply at the end you can actually see it in the top as well that's why this is the one where it's external sort the red one is quicksort it does drop down to where it's faster than 9.4 significantly faster than 9.4 even after you see the upward line is where we reverted the unicode the SDRX FRM fix it's still faster than 9.4 quite significantly going forward your laptop forwards formats the text differently going forward there's still things coming down the pipeline there is Robert Haas who just left the room is working on parallel infrastructure for parallel query and there's a lot of there's a good possibility we'll be able to use that to implement sorting on multiple CPUs there is talk of using SIMD instructions or GPU cards for sorting there's actually already a contrib module to do use GPU cards for sorting as the hardware changes and the usage pattern the user's usage pattern changes it drives a lot of different priorities as I talked about with the tape drives things change any questions? that's the last slide any questions? that I should I can go back to the chart sorry? I can't hear you oh I see you so I used to be strongly in favor of our current approach because it would be consistent with all the other applications on your system it uses the system collation yeah but those ones are the ones that have to explain why they don't behave the same as the rest of your system but I think this latest incident has probably convinced me that that may be the wrong decision as Peter pointed out that bug we've reported it now to the G-LibC people and there's been no response this is a minor part of G-LibC whereas that bug if it were there in ICU it would be a catastrophic failure of their main goals so I think if we're going if we're going to proceed with that kind of optimization and that kind of feature set and the idea of versioning collations and being able to deal with upgrade if you upgrade your G-LibC and the collation changes today you don't know and your indexes are all broken and you wouldn't know so I think this latest incident has gone a long way to changing my mind we've seen it well across rel releases is a little more reasonable but people expect their database to be intact so I may be changing my mind ICU for those who aren't familiar is a library for doing collation and unicode handling so instead of using the system libraries instead of being consistent with the system libraries it would be consistent with other applications that use ICU one of the main downsides is ICU is several times larger than all of Postgres so having a dependency but anyways there's pros and cons there so these characters are unicode characters they're more than one byte they're not part of ASCII at all so the collation rules well you can have a collation rule for ASCII encoded text as well that's complicated like it could be case insensitive or it can consider case as secondarily to the text so that text that differs only in case compares not equal but next to each other even if like binary so A in capital A might sort in the logical order but together even if the text after them is all different and so rules on how things are sorted rules on how to sort in America are relatively straightforward whereas the rules on how to sort that are substantially more complex and those rules all have to be like we have to call the function for sorting sure call the function for doing the sorting rather than just comparing the bytes of memory once we call strxfrm then we can just call memcomp on these two binary blobs and I guess I was skipping I was making an assumption that back in the day 1996 when the internet first started people were pretty satisfied and there are still websites you can find out there where all capital letters sort before all lowercase letters and people were pretty satisfied with that because that's close enough for a lot of uses well so well the way even the U.S. circle is slower than memcomp because if you have James with a capital J and James with a lower James with a lowercase J rather than have all the capital letters come before all the lowercase letters James and James would sort next to each other the capital letter might still be before the other one but it won't be separated by all the other lowercase letters but that's still relatively simple this is much more you can actually see even though they start with the same letter sorry different letters they both start with the same binary blob and the first three bytes or nibbles rather apparently Cyrillic is notoriously complicated to sort also you need rules on how to compare that with ASCII text which is not obvious


Hey guys, I saw Miss Danielle here and we just got to the archery range and I'm very excited about this one because a few years ago I won a medal at camp for archery, so let's do it Thing about archery that a lot of people don't understand is that it's not this muscle It's this one and that is why women consistently make the best archers


in the studio. My name is Preacher. It's a name out of title and today we get to talk about chemistry. Thank you, Davis Media Access for allowing us to be here. Today we are talking about an event that's happening. We'll tell you what, when and where. The UC Davis Department of Chemistry is hosting a two-day 17th annual R. Brian Miller Symposium. Now, where it's really hard for me to say, but I will say it again on Thursday and Friday, March 16th and 17th at UC Davis Conference Center of Old Davis Road. Say that three times fast. I have some really nice guests today. I'll let me introduce them to you. I have to always read this off the off the paper. First, I have Dr. Sheila Davis. She's a UC Davis chemistry professor and I have Nicole Nunez, a chemistry PhD grad student. So like what I would like to do to start first is ladies of Dr. If you always prefer when you call them doctors, like it's like something you earn. Are you just like, yeah. It depends. Yeah. Sometimes it's like or professor. Professor. Yeah. I always wondered that. Because actually professor is, you know, not everybody can be a professor. That's true. I like that answer. Multiple doctors. Professor Davis. Tell us a little bit about yourself and what you do at Davis. In fact, we talked earlier about maybe talking about research at the end. Tell us just a little bit about yourself and what you do. I'm just throwing you guys on the line right now. Tell us about what you do at Davis. Yeah, sure. So I've been a professor at UC Davis for about 10 years now. And so I teach classes. I teach classes in pharmaceutical chemistry and organic chemistry. That's what I was looking for. Yeah. A periodic table. And pharmaceutical chemistry is really just the chemistry of drugs. So it's a cool class. It's cool stuff. I also run a research group and I have grad students and undergrads that work in my lab. And we work on DNA repair. So we're interested in enzymes that are involved in DNA repair. And Nicole is actually one of my grad students. That's awesome. And Nicole, tell us about yourself. Where are you from? How do you get to Davis and what made you so motivated to be involved in the chemistry department here? Sure. Yeah. Well, I'm a California born and raised. And I actually did my undergrad at UC Davis in the molecular biology department. And then following that, I did my masters and really wanted to come back to UC Davis just because of the rich research environment, all of the resources they offer, the outreach potential that the school is well known for. And also UC Davis, which I think a lot of people probably know in the stories, voted one of the number one school in terms of promoting women to pursue STEM fields. And so for me it was like a lot of desire to go to a school that fosters so much support for their students. And in particular, when I was looking at which research labs I wanted to join, I was particularly drawn to Sheila's lab, Professor Sheila David's lab because of the research that she does in DNA repair. And in particular, I was really drawn to her research because one of the enzymes that we study actually is it's been shown that if you inherit defective forms of this protein, you have a higher chance of developing a particular type of colon cancer known as mutewite associated polyposis. And many individuals are affected by this disease. And we actively do research that can help doctors and patients understand the consequences of these inherited defects of the protein. And so it's been very rewarding for me as a student to be able to not just do research and learn the techniques, but to have so much value in what our research does for society. So it's great. All right, something just hit me like all of a sudden I am like the dumbest person on it. But that's very interesting work. And you got ladies are very, oh, that's important stuff that's going on right here. Well, a lot of people don't realize like, you know, how chemistry just touches on so many different things. And so you wouldn't realize that you have a certain view of chemistry as just like test tubes and numbers and like things. And you got what you're doing is actually great work. You know, it's pretty actually amazing. You just like blew my mind away. I'm just what you're saying right now. And I'm like, I thought we talked about chemistry. Yeah, no, our research directly impacts cancer and medicine and that's awesome. Actually, Nichols has a personal cancer story. I don't know if she wants to share it. Yeah.  And I know that there's a lot of people out there that who have been afflicted by disease. And you know, whether it's cancer or neurological like Alzheimer's or it could be something like a genetic disorder that you're born with. And I feel that that by pursuing stuff science and especially like in our chemistry department, it does this is one of the ways that we can help study these disease and help all those people that are affected by those diseases. I will tell you this and we'll get to why you guys are here. Once again, thanks for being here at Davis Media Center. But I am a cancer survivor. So I believe that as well. That's another story for another day. Yeah, we'd love to hear. Six years, you know, when they get past five and they're all good. You're good. So we are here for a good reason. Let's not bring it down. Then we'll all start crying. What is the Miller Symposium ladies, whichever one you want to start. That's why we're here today. What's the Miller Symposium? If you guys want to give us a brief or detail, you know, whatever you want to say, I'm really struggling. I never I've used the word symposium. I don't know that's how you spell it. So what's the Miller Symposium? Well, so the Miller Symposium is this big two day celebration that we have in the chemistry department. We it focuses on the areas of pharmaceutical chemistry and chemical biology. And we bring in speakers from around from around the US and around the world really that are from industry and in academics that are focused on are you speaking? No, not this year. I actually spoke two years ago. So we do have one of our own faculty speaking, but most of the speakers are we have many people from companies. So we have a professor or not a professor. He's a doctor from from Merck. We have somebody from Genentech coming. We also have the local based pharmaceuticals. And then we also have a young up and coming star from Harvard. So we have a lot of different speakers who are coming that are going to focus on these topics related to this is open to the public. So yeah, anyone can attend. Correct? Yeah, you have to register. And then why is the Miller Symposium so beneficial to students? Do you want to both I'll start with you and then you can piggyback if you would like. Yeah, sure. So one of as a graduate student and this is also open to undergraduate students or even if there's high school students that are interested in the area who might want to see like what kind of research our department and is going on in the field of chemistry and chemical biology. So the in terms of the Miller Symposium one of the most beneficial events that happens at the Symposium besides all the great talks that we have is the poster session and that's actually sponsored by the American Chemical Society the Sacramento chapter. And this poster session I've participated in a couple years now and it's a great way that students are able to get feedback on their research, learn about other research topics that are happening in the department and all this active work that is looking at targeting all of these different types of disease pathways and trying to understand how either ways we can pursue cures or try to just understand the disease. So for a graduate student it's great to have this very almost informal networking event where I can talk to graduate students about their research. I can have professors come talk to me and give me feedback about mine. So in addition to that we also get there's also chances to get research awards for either your poster presentation, there's scholarships that are offered. In particular we have the Francesca Miller undergraduate research award that goes to an undergraduate who was who has shown excellence in research and actually she was a previous undergraduate researcher won an award a couple years ago so that was exciting for our lab and yeah and we also that undergrad is now she's she was working at Novartis a company in the Bay in Boston and now she's going to be going to medical school so she's like so yeah yeah that's all for you yeah so I like to I kind of you know I won't lie some of the things you guys say are a little over my head you know but I'm intrigued and so I would like to maybe just talk briefly on why the educational aspect is important for the people to come and then maybe why the layman's person like myself who's just a poly-side major it would be important and then we'll just kind of go from there and then we'll once again say where it is and the dates and all that good stuff so so why should I as an academia our person come and I'll let the doctor or professor maybe uh yeah well definitely the people that we've chosen to speak are you know the leaders in their fields and they're doing really the cutting-edge research and you know learning about drug development and as well as potential cures that's really exciting and just networking with these people and getting their ideas so for for scientists for the students it's a great opportunity to really just you know see what's out there and to see how people think about science and to learn new things for you know for the lay person you know they might not get everything but I think they might learn something and also just maybe to appreciate like how you know how complicated and just all the various facets of chemistry there are and that how it all comes together to solve sort of big problems um and that it you know takes these small steps and just to learn about you both are gonna be there yeah and there's also yeah oh totally and like definitely you know in terms for the lay person like you know one thing that I mean we've I think we've all noticed recently you know in terms of the media and uh you know we've heard a lot of different like conflicting views on important topics like you know climate change and and I feel like attending conferences like this if the public um pursues avenues of of of rich knowledge like this they're able to get the information from the source from the researchers who are in the fields doing the work and they they'll tell you this is what my findings are they don't put it there the the researchers don't want to you can make decisions on exactly you know our job is not to put a spin on it or to sell you know I have a certain type of opinion I love yeah we just want to present our results to you clearly and then as the public you can make your decision about how do you feel about these topics and I love that because not only can you make it your opinions you can make a educated opinion yes not not based on you know motives or whatever facebook so tell us so I'll I'll once again mention real quick uh you can register at the conference uh you see davis dot edu slash miller and I want to go ahead and say that real again is that the only place or do we have another place that you can uh that's the me yeah best place if you wanted to get some more information is there another place that you guys could go to or is this yeah the chemistry website would also be good I think if you go to the chemistry website and look under um seminars the seminar tab you see davis chemistry website you look under the seminar so once again I'm going to say that real slow because a lot of times people talk fast and we don't know where we're going is ucdavis dot edu slash miller let's once again tell you uh it's the uc davis department of chemistry is it's the 17th annual our brian miller symposium I did not mess up on that word today and it's on Thursday and Friday March 16th and the 17th at the uc davis conference sitter off of old davis road is that close to here where's old davis road is that near the university yeah my guest today is doctor shila david uc davis chemistry professor you have something else or if someone want to get in contact you do you go to uc davis yeah if you go to the our website you can there's a list of faculty so you can find my email if uh okay and once again thank you and once again thank you polo nunia as I had to do you know not any yeah she's a chemistry PhD grad student you know and I like I love uh you ladies passion for this thing and then before we go good if there's anything else that you would just maybe like to share with our audience and share with the program about you know anything it could be a personal experience and why this is just important for the community then that will be appreciated I mean this is one of the things that I one of my favorite events that we have every year and I think it's a great event to celebrate chemistry and all the good things about chemistry and all the the hard work and good things that people are trying to do so um you know love to have people come I can tell you guys like this too you seem like excited good things too sometimes we have um we have some people that will be serving some wine but you have to be you know during the poster session yeah so once again I would like to thank my guest for coming here this is in the studio once again davis media access I'd like to thank these two ladies for being here today this is in the studio once again my name is preacher thanks for letting us talk to you and inform you about the events and what's going on in local and media access thanks again guys


Thanks for checking out this movie review video. So this is for the 1994 film Tami and the t-rex And this is actually a reissued film that's available on shutter streaming right now when this video is up If if I'm putting this video up on the 13th of January then it's available streaming on shutter Yeah, Monday January 13th is when it's dropping on shutter as far as I know I believe that's the first streaming appearance of this film now Like I said, this is a reissue. This is done by vinegar syndrome the original Is a PG-13 film that came out in 1994 and this is the gore cut So this is the R rated version as you would assume for shutter. So I'll talk a little bit about that and No, no spoilers on this one since I mean, I know it's from 1994, but the gore cut is not and this is kind of Well, I'm sure this is the first time that a lot of people be watching the film because I've seen a lot of people Like I've never even heard of this film and since it's just hitting shutter now And I think this is a streaming premiere then no no spoilers for this, but you don't really need spoilers I will I will tell you upfront if you're a fan of Bad movies movie. There's just really bad, but they're super fun This one just just see it But obviously you can watch this whole review because no spoilers. So this one was written and directed by Stuart Sorry Stuart raffle The guy did he directed the ice pirates the Philadelphia experiment and the only one I've even really heard of Mac and me. He's also done a bunch of other ones, but I just you know grabbed a few Stars I was surprised on this one because as soon as I started looking up who's in the cast I was like whoa, okay, so it stars Denise Richards. Now. This is Denise Richards before she became famous It also stars Paul Walker Also before he became famous and it also has Terry Kaiser in it Who is if people don't know him by name Terry Kaiser is the guy who plays the dead body? Bernie Lomax in weekend at Bernie's in weekend at Bernie's too, which is not as good but Ridiculous and still fun. So love weekend at Bernie's by the way, and I will say this all the acting is Appropriate for what the movie is because it's like one of those so bad It's fun, and it was made intentionally to be a horror comedy So the acting is not gonna be like top-notch, and it's fine like it fits within the context So it's all good. I will say my favorite performance was probably Terry Kaiser actually as as more of like a straight-up acting like Performance like his his acting was the best acting for what he was supposed to do in my opinion, but other people may feel differently So yeah, there's no surprise that this was before Denise Richards and Paul Walker got anywhere So Raffles said okay, so this is basically how this happened You would ask yourself why is there a t-rex in this and actually why does the t-rex on this actually looks so good? Because it does the t-rex looks very good in this well It's an actual animatronic t-rex what happened is raffle the director writer was contacted by a friend of his From South America who he said like owns a theater in South America or something So I don't know how this is the case, but his friend contacted him was just like hey I'm going to have access to an animatronic t-rex for about two weeks Like he was going to have it in his possession. He's like I think that'd be a really cool thing to use for a movie Why don't you make a movie involving this animatronic t-rex? So he's like okay, so they had to throw it together real quick because this guy was only going to have it for two weeks So they throw the script together which you can you can tell but it's fine like it works for being a so bad It's good film and being a horror comedy it works for that You can throw that type of stuff together You really can and as long as you have like some good lines in it There are a lot of good one-liners in this that I quite enjoy so but it's Yeah, it's something so so when I read about that that like it's just here's this random animatronic t-rex Such a random weird thing. This just reminds me of how many films you were able to just make in the 80s and 90s Just make them whatever But it's a good thing because now we're unearthing a lot of these like Tammy and the t-rex and enjoying them now So I love it So all the shooting locations for this film were actually within 25 minutes of raffle's house and a lot of that had to do with Timing they need to make sure they kept things moving. They got the film Filmed fast enough because they had to have access to the t-rex Because of the tight time for the movie to be made raffle said the script was thin And he just threw in as much wacky stuff as he could seeing as it was supposed to be a horror comedy He also said that he asked the cast and crew for things that they wanted incorporated into the film And you can kind of tell some of that some of those things you can't necessarily tell what's script and what's you know Improved or added last minute But some of the things you definitely can because they're end up being these moments where like the actors have like these kind Of awkward pauses where it's like they're thinking and they're just like wait and yeah, yeah, that's all I wanted to do Okay. Yeah, we'll stop there. So you can kind of tell some of those moments that were just kind of on the fly But you know what that adds to some of the charm of this film. It's fun So this was originally Shot as an r-rated film with gore and that's why we have the cut that we do right now It's available on shutter and put out on blu-ray through vinegar syndrome So if you like this film enough you can buy it through vinegar syndrome. So It was originally made as an R and then they had it the studio had it cut down to a PG 13 To be shown for family consumption. I Assume it was gonna be on TV. That's my guess, but I just seeing this film I don't know why you would cut it down to a PG 13. It makes no sense The movie would suck so hard at a PG 13. I'm glad I've only seen it as the R version You need that gore you need the inappropriate stuff that's in it because otherwise It's not really fun to be honest like you need it to feel like it's an adult Horror comedy you don't want it to feel like it's this highly edited like no gore kind of no fun Just weird dumb film because that's what the PG 13 must have been. I Don't know like I said, I haven't seen it, but you know So vinegars. Yeah vinegar syndrome restored it for the United States I will say though it was released as a PG 13 in 1994 in the US But Italy actually got the original cut of it So I don't know if that's where they got the original cut. I don't know You can tell from the corny 80s rock music and the opening credit text font That this film is actually meant to be ridiculous now First of all, I know people will feel me on the thing when you have this super corny Like over-the-top music which was kind of like this 80s rock Like over-the-top 80s rock is kind of what it was It's just like okay. These people are trying to have some fun And then on top of that like the the text font for the opening credits I don't know if people know what I mean But like there are certain fonts that were used back in the day to signify like this films trying to have fun Not like classy looking or or straightforward and boring But just like you'll see what I mean when you see it. It's kind of like skewed to the side It's like fun with text Just saying So there's a fight early in this film. This doesn't ruin anything, but there's a fight early in this film that takes a very out of nowhere turn That I thought was pretty funny and I didn't see coming so Enjoy It's one of it is one of those moments that I thought back to Ralph will saying I Put a bunch of wacky stuff in there that it just it's one of those things So when you actually first see the t-rex like I was saying it's impressive like it looks good the way they reveal the t-rex You're like oh Okay, we have like a good-looking t-rex in this thing awesome But the problem then comes that it's an animatronic t-rex not made to be in a film initially It's for like a theme park or something like that. So it can only really do certain things so I think within the confines that they had they did a really good job Getting around any of the issues of things it couldn't do that they needed it to do for the film So some of those things that they make it do they kind of get creative They make it work. It looks kind of wonky and off But once again, it's a horror comedy and it's so bad. It's good. So it kind of adds to the charm once again So it works for that reason But uh, you can tell the moments where they're just like We can't get this to do exactly what we really want to Improv it we'll figure something out and they do Um, they get uh, yeah, I already said that you can tell the parts were done on the fly because it seems like the actors are pausing I already talked about that. Sorry Big shout out to george pilgrim for some amazingly bad acting He plays the role of billy in this and he is the main antagonist Initially it then ends up becoming terry keiser's character, but george pilgrim this guy just look out for billy the character of billy his acting is so like You know, there's like fun bad acting, but then there's like amazing bad acting like tommy weisow I'm not saying that he reaches like the tommy weisow Awesome awful acting status, but he's not super far below that I just really enjoyed the way he brought the the corny cheesiness Great, uh, I also wrote down it was good to see shawn wailin in this He played the role of weasel in it and people might know him from I know him from idle hands But people and myself included most well know him as roach in the people under the stairs Which is a really good film and I did do a full review and analysis of that film on my channel So you can look for that. That was a fun one to do. I dove really deep on that one too. So Check that out a bunch of character interactions are just plain odd in this Hence being able to tell that it was kind of thrown together in the script was then There's a lot of randomness and really off character reactions Yeah, there are a lot of moments where characters react in certain ways Like they say things that are totally disconnected from what's going on or they react in a way that you're just like Huh, that's how you react to this. Okay But once again that kind of adds to the charm of it being so terrible. It's fun Just saying As one could guess The fun ramps up when the t-rex gets loose when the t-rex really starts doing stuff Is when the most fun is had it is fun before that I will say But it's a different type of fun once the t-rex has its time and it's it's a good time The way the t-rex walks is actually kind of painful to watch because it is awful And it's just so awkward and doesn't work when it when they're showing it from afar Whenever they're showing things that are kind of more close up with the t-rex It's actually okay. Like they make it look good. They make it work a lot better It's just when they have like the longer shots and the t-rex is moving. It looks so bad But those are times when you can just you know, just laugh at it Also, uh, at times they make the arms rubber So that someone actually has like an actor actually has their hands in like these rubber t-rex arms And the rubber doesn't actually match The body of the animatronic t-rex.  I guess How how reactive and bendable those are it just it looks so weird because it's so often it doesn't match But once again, it's just another one of those things. It just adds to the funny, you know I just wrote down with a Question mark an exclamation point. Why would you ever cut the gore out of this film? Just reiterates what I said earlier.  It's You'll see what I mean. You will see what I mean if you watch it or if you've already watched it, you'll know Uh and the conclusion of the film actually worked for me I was wondering where they were going to go with it because it was very much meandering towards the end Like a lot of these types of films tend to do Uh, but I was good with it. I liked how they ended it and I was just like, oh, okay I'm down with that So just some wrap up things about the film the music in this is over the top But that adds a fun level of absurdity to the film Uh, there are some audio issues though. This is the worst thing about the film There are actually some audio issues where it sounds like they're like they get so loud that they like blow out the microphone So, um Yeah, I I assume that's that's I mean that has to be an issue from the original audio recording Because otherwise I assume vinegar syndrome would have been able to clean that up, but yeah, it's um At it's not consistent throughout the film, but you're very much aware of it early on in the film It happens a few times within the first Like 20 25 minutes of the movie and then it seems like it kind of goes away. So it got corrected at some point Uh, there's actually a little bit of a theme of science doing something bad With overall good outcome for society in mind This is actually something that's been in films a lot So you would see a film like this and be like I was around really not going to be a theme It's just for fun But no like it kind of goes back to you know, when you have those movies where either it's technology or science or um Science experiments where they're like, oh, we can do these wonderful things for society and advance technology and do all this stuff But then it just You know ends up being more of a problem than anything. So there's that kind of theme Here, but there's also the theme of pure revenge and that's what this movie is really about So I wrote down some inspirational words on that Don't be a jerk because you never know when the person you're messing with will come back as a giant mechanical t-rex and stomp you Keep that in mind and that should keep you a good nice honest person Because you don't want a mechanical t-rex stomping on you just saying Uh, and then the last thing I wrote is this is a good candidate to get the joe bob briggs treatment I could see this one being in season two of the last drive in with joe bob briggs. That would be fun That would be awesome But you never know he throws curves balls. We don't know but all i'm saying is it's on shutter He can have access to it Would be a fun one now. This is a film. I enjoyed it. I had a good time with it It's not my it's not super up there as far as fun Awful films go for me. So I don't think I would buy it per se Because I I need them to be like a particular level of Terrible and fun and this one doesn't quite reach that level for me But it's definitely worth watching once you will definitely enjoy it I know a lot of people will probably see this and be like, oh man, I have to buy this. So that's good buy it from vinegar syndrome Awesome. I bought some stuff from them recently. If you saw my unboxing of that um Already did ice cream man. I'm gonna do the other ones. So Um taming the t-rex. It's a good time. I'm glad shutter got this one glad vinegar syndrome restored it And put it out in this gore cut because that's the way it was meant to be It's kind of writing a wrong from 1994. So good job vinegar syndrome Now my rating system. This is where I have to give two ratings One is a serious rating of rating it amongst all film and the second one is rating it as a so good It's bad film now the first one being serious It's got to be like a Half star because it's terrible if you look at it from a standpoint of I want to watch a legitimately good theatrical movie right now It's awful like one star one star. Maybe okay. Half star One star I'll go one star now if you're looking at it from the perspective of Man, I love movies that are so bad. They're fun I'm gonna go three star on it. I can't go any further than that I am I wouldn't if I did quarters I would go 3.25 because I was kind of between three and three and a half But I put it towards more towards the three than the three and a half But I recommend it if you haven't watched it yet. Check it out and awesome So please help me out right now. Uh, hit that subscribe Help encourage me to keep this going because I'm not making money doing it. I'm just having fun and uh, it's encouraging to see You know that people subscribe put some comments down there Your thoughts on this film or if you haven't watched it yet your thoughts going into the film after watching this video Interested in all that and let's just geek out down there. You can do a thumbs up That's great, but the big things to subscribe But regardless, thank you everyone for checking this out and until next time keep it brutal