Today I present some simple-yet-tasty spice mixes that make great gifts. For an extra pretty presentation, layer the ingredients in a decorative container without mixing. Make sure you include instructions to mix thoroughly before using!
But, wait, there’s more! Scroll down for a special bonus chai spice mix from Webdominatrix.
SP's Taco Seasoning
2 tbsp powdered chiles (I use a mix of aji amarillo and smoked red savina)
1-1/2 tbsp ground cumin
1-1/2 tbsp paprika (smoked or plain, hot or not)
1 tbsp onion powder
1 tbsp garlic powder
1/4 tsp ground cayenne pepper
To make: In a small bowl, combine all ingredients thoroughly.
Store in an airtight container.
To use: Add 2 tbsp (or to taste) to season one pound of a protein for taco filling.
SP's Creole Inspired Seasoning
2-1/2 tbsp paprika (I like to use smoked, hot paprika)
2 tbsp garlic powder
2 tbsp salt
1 -1/4 tbsp ground black pepper
1 tbsp onion powder
1 tbsp ground habanero pepper (or drop the heat with cayenne or premade chili powder)
1 tbsp dried thyme
1 tbsp dried oregano
To make: Combine all ingredients thoroughly. Store in an airtight container.
To use: Sprinkle on proteins or sandwiches, to taste.
Old Harbor Seasoning
2 tablespoons bay leaf, powdered
2 tablespoons celery salt
1 tablespoon dry mustard
2 teaspoons ground black pepper
2 teaspoons ground ginger
2 teaspoons smoked paprika
1 teaspoon white pepper
1 teaspoon ground nutmeg
1 teaspoon ground cloves
1 teaspoon ground allspice
1/2 teaspoon crushed red pepper flakes
1/2 teaspoon ground mace
1/2 teaspoon ground cardamom
1/4 teaspoon ground cinnamon
To make: Combine all ingredients thoroughly.
Store in an airtight container.
To use: Add to seafood and other dishes to taste.
SP's Rosemary Lemon Seasoning
1/4 cup dried rosemary
1 tbsp kosher salt
1 tbsp garlic powder
1-1/2 tsp dried lemon zest
1/2 tsp black pepper
To make: Place all ingredients in a spice grinder or blender jar. Process until finely ground. (If layering for presentation, grind the rosemary and lemon peel.)
Store in an airtight container.
To use: Sprinkle on proteins or vegetables to taste.
Webdominatrix's Chai Spice Mix
4 tsp ground cardamom
3 tsp ground ginger
3 tsp ground cinnamon
2 tsp vanilla powder
1.5 tsp ground allspice
1 tsp ground nutmeg
1 tsp ground cloves
1/8 tsp sea salt
1/8 tsp ground black pepper
To make: Mix thoroughly and store in an airtight container.
I’m out of work starting in 3..2..1.. just kidding. I have a 4:00 meeting. But after that its gonna be like Khayser Shozhe at work. I’m ghosting harder than that time I figured out I had my hot/crazy coordinates backwards on a woman.
Juries continue to not find Cliven Bundy and others involved in an armed standoff with the Bureau of Land Management guilty. I’m sure its white privilege.
The EU continues to hate the Poles for not being properly servile to their German and French masters.
I know we love to hate Elon Musk here, but there’s just something about that much thrust in one place that makes the Falcon Heavy pretty. STEVE SMITH SAY “YOU KNOW WHO ELSE HAD 5M LBS OF THRUST?”
For music, I offer this throwback about a red rocket.
This is an open thread to discuss your favorite podcasts. Below I’ve listed some of my recent favorites. As you can see I stay away from the political and instead enjoy history and true crime.
History on Fire – Daniele Bolelli is an author, history professor, and martial artist who was influenced heavily by Dan Carlin’s Hardcore History. If you want your history fix, and can get by Bolelli’s noticeable Italian accent, then History on Fire is a good place to go. Based on the podcasts I’ve listened to he doesn’t veer off from historical sources but still doesn’t come off as unbearably dry. Instead he explores the bloodier chapters of the past without fear of offending modern sensibilities.
A History of the World in 100 Objects – this is aural popcorn, short 14 minute episodes about the meaning of objects along with the hows and whys they were constructed. Neil MacGregor, the presenter, has a stuffy (as in head cold) British accent that hustles through the material, along with a few short interviews. The material spans the very ancient to the modern day.
Casefile True Crime – if you like Australian accents, then Casefiles is for you. This anonymous podcaster touches on cases all over the English speaking world, going through evidence including available recordings that are presented to the listener. Some of the material is chilling, especially the 911 calls. The cases range from old historical pieces, to well-known serial killers, and even child abductions. Not for the faint of heart.
True Crime Garage – Nic and the Captain explore cases both old and new, all while consuming a reviewed beer. Some very rare anti-gun proselytizing does occur, but the musings on the suspects and motives is always interesting. The focus is mostly on American crimes, and sometimes the episodes veer into odd tangents of humor, but it’s never a boring ride. I rate this a little lower than Casefile but still worth a listen, especially for the deep dives into modern cases that have only just faded from the headlines.
Breakdown – Over the course of a season, Breakdown will concentrate on one case. The listener will hear the evidence, including the police interviews, and opinions of lawyers not directly associated with the case. Given the title name the podcast mostly concentrates on wrongful convictions with improper police procedures and evidence tampering. Since it is produced by the Atlanta Journal Constitution, journalistic standards (remember those?) are high.
The Pro Bowl selections are out. No real surprises on the list. Early signing day today for college football. Let’s see if the Buckeyes maintain their staggering lead for top recruiting class. College basketball produced nothing but ranked winners last night. The Lane Train kept rolling for FAU in the Something Something Something Boca Raton Bowl. And hockey winners were: Detroit, Toronto, the NY Rangers, the MINNESOOOOODA WIIIIIILD, the Bruins, the Jets, the Crapitals, the Panthers, les Canadiens and Las Vegas.
“What in the wide, wide world of sports is going on here?” I’ll tell you what’s going on here, Mr Taggert. Its called…the links!
Well yesterday was relatively quiet. Nothing really big happened except for the tax bill vote, which literally killed 30 million people, it is being reported by sources close to the matter.
Tax Bill almost through!
And not only that, but there’s this as well. These people will probably be in the street if the GOP get through another tax cut. Then where would our nation be, huh? Fucking lazy ass grifters. Read and see (emphasis mine):
To earn a salary, Mike Vincent, 32, works as a graduate student assistant at the University of Florida, a position that guarantees nine months of work, as he completes his doctoral degree in musicology. His wife, Rebecca Pethes, was unable to secure a similar job this year to supplement her own graduate degree, so the couple has struggled to raise their 1-year-old child, Isobel, on Mr. Vincent’s annual salary — $16,000 for nine months, $18,000 if he can finagle an extra semester of work.
“I don’t know what it means to pay taxes on a normal income,” he said. “I can’t even imagine making that much money right now.”
and
In pursuing a political science degree, Ms. Hernandez, 29, a Mexican-American whose grandmother has a third-grade degree, is defying what statistics say is possible. She recalled one congressional aide who forthrightly told her that “people elect to go to graduate school.”
“It’s an elective degree for some people — like white men, those who come from wealthy backgrounds,” Ms. Hernandez said. “But for people like me, it’s not an elective degree; it’s a struggle, not just for me but for my community. We have to get these degrees because we need to make it more normal for us to be in these fields and be at the table.”
Its assholes all around! These people should be the poster children for abolishing the tax deduction for grad students. And for abolishing any sort of loan forgiveness for people with an advanced degree in anything other than a STEM field. Also noticeably absent from the article were those STEM students bitching. Instead we get musicology majors and poli-sci griefer assholes. (H/T to OMWC)
Rememeber Debbie Wasserman-Shitforbrains’s kick-ass IT staff? Looks like they were in the car business as well. And by “car business”, I mean the money-laundering business. And that idiot gave them her laptop passwords and access to basically all of the classified information she had access to.
The EU is saying Brexit will be completed by 2020. Which probably leaves time for something else to delay it forever while the country is flooded with more euros and “refugees” that will manage to secure another vote to stop it. Because elections really don’t have consequences when the losers hold a nation hostage in the aftermath.
Today excuse was something about getting a VD test. It didn’t make much sense to me, but hey, one can always claim that Chlamydia is a character from Roman mythology. Anyway, enough mit deh kvetching, let’s link.
Silicon Valley is a hotbed of perversion and toxic rape culture. Even the fictional one. Sigh, the bonfires are only getting fiercer.
And in “the pattern repeats itself repeatedly,” another narrative collapses. Just remember who kept pointing out the bits that weren’t making the news. Ahem.
And the delightfully transparent grifter Jill Stein is now sucked into the Neverending Story. Two things stand out to me- first, she’s dumping the documents in public since, hey, they’ll be leaked anyway and may as well not have the leaking be carefully curated. Second, this observation, with which I heartily concur:
Even Mother Jones admits there’s nothing to desperate Russia smear spread by Maddow, Reid & fellow neo-McCarthyists.
Speaking of grifters, Harry Reid is vociferously defending the pelf he mulcted for his buddy because it’s necessary for our national security that we be prepared for the imminent Klingon invasion and there’s Really Serious UFO Science out there. He saw it on TV!
In a statement Monday, Reid continued to defend the program. “I’m proud of this program and its ground-breaking studies speak for themselves,” the statement read. “It is silly and counterproductive to politicize the serious scientific questions raised by the work of this program, which was funded on a bipartisan basis.”
An in depth perspective on how blockchain and cryptocurrencies work, along with a running commentary on social value, libertarianism, and whatever the heck fits my fancy. I’m attempting to write this at a high school comprehension level so that those who haven’t sat through 4 years of computer engineering classes can make sense of all of this.
What this isn’t
A primer on Bitcoin, an economic treatise, or a how-to. (Although, elements of all of those things will appear)
For those who don’t feel like scrolling through pages and pages of my ramblings, here’s the TL;DR. Blockchain is a bunch of messages with security built into them. The security isn’t perfect, but each message is increasingly secure as time passes. The list of messages is saved on every computer that participates in the blockchain, and the lists are constantly being compared for agreement. Blockchain relies on a bit of a gambit. They essentially say “you may be able to break the security on one node, or even a few, but after a few the increased security that comes with time passing will catch up with you, and you’ll be stuck well before you come close to succeeding in fraud.”
A Survey of Computer Science
Numbers in an Array
Computers are complex and simple at the same time. It takes millions of lines of code and tens of thousands of man-hours to put together the latest Windows or OSX version, and yet everything a computer does is simply a whole bunch of numbers saved in an array called memory.
Let’s look at an example computer memory:
Let’s ignore all of the writing for a moment and discuss what we’re looking at. Memory is “byte-addressable,” which means that you can access information 8 bits (there are 8 bits in a byte; a bit is a single value of “1” or “0”) at a time. If I want to access the byte at address 0, I write some code that properly references address 0, and I have access to the value in that address of memory. If all data was 8 bits long (e.g. a number between 0 and 255), then we’d have a pretty easy go of accessing data. Just remember the order you put it in, and you just call the number that you put it in (minus 1 because the addresses start at 0).
However, as shown in the above image, data can be much larger than 8 bits. The yellow 2-byte data is a short integer (e.g. a value between 0 and 65,535). The purple 4-byte data is an integer (e.g. a value between 0 and ~4.3 billion). There are other types of data that are even longer, like decimal numbers (called floating point numbers). Here’s more info on memory and how it works. Now it gets a bit more complicated to remember where things are in memory.
Arrays: A Simple Way to Store Large Amounts of Data
When dealing with simple data, like an integer, storing it in memory is relatively simple. As long as you know what address it starts at and how long that type of data is, you can access and retrieve the data. However, what are we to do when there is a bunch of related data?
For example, what if we want to store the daily profits for the week from our monocle and top hat shop? Now we don’t have just one piece of data to deal with, but seven. We could just toss each day’s profit into memory as we encounter it, but the accounting program we’re running may store additional info in memory: temporary values, user credentials, and other information needed by the program will also reside in memory.
We can remember each address for each individual day’s profit data, but these values are related, and it’s hard to manage access information on seven values, let alone 70 or 700 or 700,000. Treating each value individually doesn’t scale.
As shown above, Sunday’s Profit is separated from Monday’s Profit (both in red) by intervening unrelated data (in green). In order to access the week’s profit, you need to know the address of each and every day’s profit, and you have to individually retrieve each data point.
In comes a better way to handle such data: Arrays! Much like memory is an array with addresses referencing each byte, array data structures store related information sequentially so that each piece of information can be referenced with an array address.
The difference is clear. The array groups the related data together, and you can simply reference the array to get to any of the data. Array address 0 is Sunday’s profit, which is located in memory addresses 0-3. Array address 1 is Monday’s Profit and is located in memory addresses 4-7. Rather than needing to remember all of the memory addresses for each day’s profit, you can simply remember the starting memory address of the array, and use the array address to calculate where each piece of information in the array is located. For example, array address 1 translates to the array starting memory address (0) plus one array element (which is 4 bytes long), resulting in a memory address of 4. If you look at the above image, array address 1 starts at memory address of 4. NOTE: I haven’t included all 7 days of profit in the above image so that it won’t get too complicated and confusing. Here is some additional information on arrays.
However, you can also see a limitation in the above image. It works great if you know exactly how much data you need to store, but look at where the Temporary Data and User Credentials are stored. If you need to include one more piece of information in the array, you’re hosed. Either you have to start moving a bunch of stuff around in memory to make room (which is not ideal), or you have to continue the array somewhere else in memory and keep track of 2 array portions (which is also not ideal).
Linked Lists: Good for dynamic data
You may be wondering what the point of all of this is. We’re talking about blockchain, not about memory management, right? I promise, this is where we connect to blockchain.
Let’s see if we can combine the best of both worlds. Writing each day’s profit to memory separately allows you to add additional days without having to shuffle data around in the memory. On the other hand, preserving the relationship between all of the days’ profits without having to keep track of each day’s memory address allows you to scale up to large amounts of data without overcomplicating things.
One of the “best of both worlds” solutions is called a linked list. A linked list operates much like writing each day’s profit to memory separately, but preserves the relationship between the different days by including an additional bit of information pointing to the location of another day’s profit in memory.
As you can see, we have expanded Sunday’s profit and Monday’s profit from 4 bytes to 5 bytes. The additional byte (in yellow) points to the previous node. Since Sunday’s profit is the first node, its previous node is NULL (meaning it doesn’t have a previous node). Since Monday’s profit is the second node, it points back to Sunday’s profit. Previous Node 0 points to the starting memory address of Sunday’s profit.
Visualized another way, the linked list looks like this:
This is the basis of blockchain. A data structure with a payload and a reference to the previous block in the chain. Now let’s talk about security.
Hashes: Breakfast for the Masses
I dunno about y’all, but I’m sick of reading. Let’s take a quick break before getting into hashes by enjoying some pictures
Alright, back out of your bunks. Time for some more learnin’. Hashes are conceptually simple, but mathematically complicated. Since we’re not diving into the math, this section should be a breeze!
No, not that kind of Brees!
Let’s take a look at the array again:
If we call Array[0] we get Sunday’s Profit, and if we call Array[1] we get Monday’s profit. However, we don’t always have a situation where we know exactly what order the data will be put into the array. Imagine, for a moment, that instead of 3 days of profits, we have 3 years of profits, entered manually by an employee who isn’t guaranteed to get everything perfectly in order. How do we find Monday’s Profit in that deluge of data?
The traditional way is to search for the data in the array. Here is some more information on searching.
The fun way is to use hashing! How about we use some relevant characteristic of the data to access the data instead of the array index (“index” is another term for array address number). All you need is two math equations: one to determine the hash from the data, and another to determine a memory location from the hash.
As you can see, Sunday’s Profit data was hashed to “Sunday”, which is a characteristic of the data (specifically, the day of the week), and “Sunday” was computed to be connected to array address 0. Now, instead of accessing Sunday’s Profit data by loading Array[0], you can access Sunday’s Profit data by loading HashArray[“Sunday”].
If this is a bit confusing, another simple hashing algorithm that appears in everyday life may clarify things. Placing medical records in alphabetical order by the first letter of the last name is another hashing algorithm. If the last name is SMITH, the “algorithm” for obtaining the hash involves looking at the first letter of the last name, “S”. Then, the hash “S” points to a specific shelf in the fileroom (the “S” shelf, for lack of a better name). SMITH’s folder is placed on the “S” shelf. When I want to retrieve a folder starting with “S”, I pull a folder off the “S” shelf, and I have SMITH’s folder.
But there are many people with a last name starting with “S”. What happens when SMITH’s folder is stored on the “S” shelf and I want to store Slaver’s folder? This is called a “hash collision.” Depending on the specific situation, a hash collision is either an inevitability or a disaster. In cases where hash collisions are expected, we could simply change the data stored. Rather than just storing one piece of data for each hashed value, we can store the data for each hash in a linked list. Now, the “S” shelf looks like this (pointer is just a fancy term for the memory address):
This is great for categorization hashes like the alphabetical sorting of medical records, but isn’t the best for cryptographic hashes like are used in blockchains. Instead, cryptographic hashes rely on another protection from hash collisions, small data density.
Bitcoin and most other cryptocurrencies use what is called SHA-256 hashing. In SHA-256, a message of any* size is hashed using really fancy math into a 256 bit number, which means there are 2^256 possible hashes (1.1×10^77 for you scientific notation folks, or roughly 1/10 of the total number of atoms in the universe). Hash collisions are so rare under SHA-256 as to be practically nonexistent.
*Technically, there is a maximum length of message, but it’s enormous.
But I mentioned above that hashes are based on characteristics of the data. “S” is the first letter of SMITH, and it’s fairly easy to see the relation. What is the relation between some seemingly random 256 digit number and a Bitcoin block? Well, it has to do with math well beyond my ken, but you can go here for a bit of an explanation (as well as a look ahead). In essence, the math takes all of the data, divides it into chunks, and does a mathematical transformation on each chunk before assembling the results into the hash.
Okay, assuming you’re following along so far, you understand how categorization hashes work and that cryptographic hashes are different, but how do cryptographic hashes work?
Cryptographic hashes work on the principle that it’s much easier to do the math to hash the data than to derive the data from the hash. Let’s look again at the medical records example for a picture of how this works. If you’re given the last name SMITH and told that the hashing function (fancy term for the math to calculate the hash) is the first letter of the last name. It’s trivial to calculate a hash of “S” from the data “SMITH.” However, let’s go the other direction… if all I give you is “S”, you have thousands of last names to choose from. The chance of you guessing “SMITH” is extremely low.
The same principle applies to SHA-256 hashes. It’s relatively easy for a computer to calculate the hash from the original data, but (practically) impossible to derive the original data from the hash.
We’ll discuss the specific way cryptographic hashes are used in blockchains later on.
Let’s take another break. Things are getting a bit intense. In the spirit of the glib baby pics from a while back, here’s me in a sombrero.
Cultural Appropriation from a Young Age
How about some relaxing pics from a backpacking trip I took a long time ago?
Public Key Cryptography
Alright, back to talking security! We’ve laid the groundwork for explaining the structure and security of the blocks in a blockchain, but let’s talk about individual currency transactions and how they’re secured. If I want to send 50 bitcoins to ZARDOZ, we create a transaction to transfer the bitcoins from my wallet to his. The details will be covered later, but it’s important to notice that without any security, STEVE SMITH could read the transaction, and use the information contained in the transaction to create a fake transaction to send the 50 bitcoins to him instead of ZARDOZ.
What sort of security is used on these transactions? Public key cryptography! Public key cryptography uses the same concept of “one way” algorithms, just like the cryptographic hashes. In fact, in some cases, the mathematics for generating cryptographic hashes is used in public key cryptography.
How does it work? Let’s assume I want to send a secret message to ZARDOZ. I’m sending it over the Internet, which isn’t a particularly trustworthy place. I can’t just send the text in the open. ZARDOZ decides to generate two “keys.” In this context, one of the keys is used in combination with fancy math to encrypt the message so that it can’t be read by STEVE SMITH. The other key is used in combination with more fancy math to decrypt the message. The cool thing about public key cryptography is that you can’t figure out the decrypting key by looking at the encrypting key or at an encrypted message. This is called asymmetric cryptography.
In contrast, symmetric cryptography can be “broken” by looking at the encryption key and the encrypted message. Of course, that means you shouldn’t broadcast your symmetric encryption key on an insecure channel. For example, if my encryption algorithm is addition of the encryption key to the data, and my encryption key is 4, then if my data is the number 10, the encrypted data is the number 14 (10+4 = 14). I send 14 across the unsecured network to ZARDOZ, who uses the symmetric decryption key (the number 4), and the decryption algorithm of subtraction of the decryption key from the data, and ZARDOZ gets the original data, the number 10 (14 – 4 = 10).
Seems secure enough, especially when we use something more complicated than “add 4” as an encryption. But why are we talking about asymmetric cryptography instead? Well, because we have a problem. The Internet isn’t particularly secure, and we’re not gonna VPN with the entire bitcoin network, most of whom we don’t trust, to send them our secret key. With asymmetric cryptography, the encryption key (called the public key) can be known by everybody. It doesn’t matter if half the world can encrypt messages intended for you. As long as they’re not able to decrypt those encrypted messages, the system is secure. That’s why the decryption key is called the private key. The private key must be kept secret by the receiver of the message.
As shown above, I have sent ZARDOZ the message “Molon Labe!” ZARDOZ has vomited forth (published) his public key, which allowed me to encrypt my message and send it across the Internet securely. As you can see, STEVE SMITH can try his hardest to intercept my message to ZARDOZ, but all he gets is a bunch of gibberish. Then, once ZARDOZ receives the encrypted message, he uses his private decryption key (secreted away in the Vortex where nobody can access it except ZARDOZ) to decrypt the message and read “Molon Labe!”
Now, this is great and all, but isn’t blockchain about publicly accessible data and verification instead? Well, yes. Let’s take this public key encryption and flip it around. Now, instead of keeping the data secret, we want to make sure the data is from the right person. I’m expecting a message from ZARDOZ, and want to make sure that it’s legitimately from ZARDOZ and not from STEVE SMITH.
As you can see, the message stays public the entire time, but there is extra data added based on ZARDOZ’s private key. This is called a signature. Upon receipt, anybody can verify the authorship of the message by using the public key.
What happens when STEVE SMITH tries to meddle again?
As you can see, STEVE SMITH, in his ham fisted way, has altered the message before I have received it. When I try to verify the message’s authorship, I find out that it’s not from ZARDOZ, and thus it’s a suspect message to be ignored.
This is the basis for verifying cryptocurrency transactions. We’ll put all of this book learning together into a workable model in the next article or two, but this article explains most of the theoretical underpinnings of blockchain and cryptocurrencies.
Just a few basketball games yesterday. All of the ranked teams won, including Michigan State who appears to be on an absolute tear. Everton is making all the Big Sam haters eat their words after another easy win. They’re undefeated since he came onboard, and they’ve earned every point except the one they stole in the Liverpool derby with what can only be described as a simulated penalty late in the match. But whatever. payback for that is coming on Jan 5th.
I’ve been negligent by not giving the hockey scores much recently. And although it was done to placate those sports-averse Glibs out there, I can’t go on like that forever. So here they are: Columbus got mauled by the Bruins. The Devils cursed the Anaheim Mighty Ducks. The Avalanche smothered the Penguins. The Kings royally pounded the Flyers. And the Oilers greased the Sharks.
Cole Hamels (open the link and you’ll see that he deserves a pic today)
That’s pretty much it for sports. You Darvish is thinking about going to Chicago. The Cowboys are being coy about how they might use Zeke this week. Oh yeah, and then there’s this sports story. Which deserves about 100 times as much coverage as its getting. Especially this time of year. Damn, it got dusty in here all of a sudden.
See? I don’t always give shitty news. Although I usually do once we get past sportsball and step into…the links!
MATT DAMON!!!!!! Seriously, now he’s just trolling people for his buddy Harvey. Nevermind that he’s probably right for the first time in a long time about a hot button issue (::cough::school choice::cough::)
This seems legit. Ah, who am I kidding? They’ll pay double this the next time a cop plants evidence on somebody and walks away with his pension intact when the truth comes out a couple years later.
Doctor says John McCain’s setback is normal for patients with brain cancer. Well, that’s a relief. But you know what isn’t normal? Someone with brain cancer occupying a Senate seat when he’s incapable of performing the duties of his job. Thanks for denying Arizonans their right to a Senator who is actually able to represent them in the way they should expect, you selfish, arrogant ass.
Listen, don’t get too close. The two year old is sick and has been clinging to me like a tiny, sick little ape. Luckily, this is not a gut-distress sickness. Poor guy. I like our doctor’s nurse’s advice to my wife on the phone. “Don’t worry unless you give him medicine and doesn’t perk up at least a little.” Clear, easy-to-follow and doesn’t depend on trying to get a two-year old to hold still for a thermometer that isn’t that accurate.
Is there anyone who doesn’t have to resign? There’s the ESPN President stepping down over drug addiction — which in retrospect makes total sense. And I’m guessing young kids and/or actual rape given how fast Kozinsci pulled the eject handle. I like how this attack on Teflon Don and the Hair has done more to discourage sexual harassment and punish harassment than anything since the personal audio recorder.
Is something really homeopathic if it contains enough of a dose to injure or kill you? I’d think there’s a fraud complaint waiting to happen.
Germans make strong bid for Central Asian, Welsh sex tourists. Meanwhile, in other sexual news…