slashdot

Child Brides Are American As Apple Pie

My daily routine for Slashdot is to post one or two comments each day, watch my trolls spew forth 25+ comments for each of my comment, and laugh at the dumpster fires. Last week the dumpster fires got serious. My trolls accused me of wanting to marry a child bride from Mexico (a different thread has 50+ comments about child brides). Twisting my past comments about underage marriages — not child brides — out of context. The sad reality is that child brides are as American as apple pie in all 50 states.

Retirement Stories in Silicon Valley

I’ve heard stories of engineers saving enough money to retire to Mexico, build a mansion and marry a sweet young thing. The village elders allowed this with the understanding that the American would leave everything to the village when he dies. A win-win situation for getting the most “bang” out of retirement dollars.

The focus of these stories was always on the low-cost of housing in a foreign country. A million dollars in Mexico can buy a large plot of land for a mansion and a vineyard. I don’t believe that a McMansion — an old house torn down to build a large two-story house on a tiny lot — for $1M in Silicon Valley is possible anymore.

As for the “sweet young thing,” she is just an afterthought. A poor young woman marrying a rich old man is the stuff of telenovelas. None of the stories I’ve ever heard suggested that the retiring engineer was looking for a child bride. Mexican marriage law, like American marriage laws in some states, does allow a 14-year-old girl to marry with parental consent.

Since I started my current job in government IT three years ago, I’ve heard similar stories about ex-military coworkers retiring to the Philippines. Filipino marriage law requires 18- to 21-year-olds need parental consent and 21- to 25-year-olds need parental advice. Since young adults are held to a higher standard than in the U.S., it’s probably not a good idea to ask about child brides.

Child Brides in The U.S.

The general age for marriage in the United States is 18. Most states allow underage marriages with parental consent and/or court reviews for 16- to 18-year-olds. While 25 states have no minimum age at all, allowing children as young as 12 to marry an adult.

As reported by NPR:

Child marriage isn’t just a practice that victimizes girls in poor countries. As this blog has previously reported, it’s also long been an issue in the United States, involving girls from a wide range of backgrounds. Based on state marriage license data and other sources, advocacy groups and experts estimate that between 2000 and 2015 alone, well over 200,000 children — nearly all of them girls — were married. In nearly all cases the husband was an adult.

Lawmakers are reluctant to change state marriage laws. Some believe it would infringe on religious freedom. Others believe that marriage is a solution for teenage pregnancies. Neither statements are true. The problem with many lawmakers is that they are old white men who have nothing in common with today’s society. Only a few states are trying to strike child marriages from the books.

False Narratives on Slashdot

While I have no interest in Russian schoolboys, Bangcock ladyboys, or American/Mexican/Filipino child brides, these are the false narratives that my trolls have pushed so far this year. They believe that Slashdot is my “permanent record” on the Internet. Something that the Real World™ will forever hold against me, as if life was just a continuation of high school. The funny thing is that I never went to high school and I still got two associate degrees.

Special thanks go to the Anonymous Cowards (ACs) on Slashdot who protested this false narrative, posted news article links and tried to raise awareness about this serious issue.

Why I Had My Ten-Year-Old Slashdot Account Deleted

After falsely accusing me of threatening to shoot people, creating fake accounts to mock me, and posting dick pics of Russian schoolboys with my contact info (a situation so vile that I couldn’t write about it in the blog at the time), the trolls pulled a power play that I haven’t seen happen on Slashdot in 15+ years. During the long Labor Day weekend, the mods (moderators) systematically down voted every comment I had to -1 to drag my karma from excellent (50 comments per day) to terrible (two comments per day). So I pulled a power play of my own: I asked management to delete my ten-year-old account.

The DMCA

The deletion of my “creimer” account became inevitable when I used the DMCA (Digital Millennium Copyright Act) takedown notice to have management delete the “cdreimer” account, and subsequently four other fake accounts, that the trolls created to mock me since Anonymous Cowards (ACs) can only post ten comments per day per IP address. (Creating a new user account requires a unique email address, which is easier to do than finding a network with a different IP.) As a content creator who routinely asserted his rights under the DMCA (usually against idiots who reposted free copies of my ebooks on international websites), I made quite a few enemies by using the DMCA on Slashdot.

When the trolls started posting dick picks of Russian schoolboys with my contact info on Russian image websites, I had to issue, somewhat ironically, hundreds of DMCA takedown notices to have the images removed. Using Google Chrome to translate Russian into English on the web page (a feature that the trolls didn’t know about), I’ve noticed most image websites had a drop item on their contact form called “DMCA Notice” to expedite such requests.

The trolls howled bloody murder for six weeks because:

  • I was issuing DMCA takedown notices for dick pics that I didn’t own the copyrights.
  • The foreign image websites honored the takedown notices at face value even though I wasn’t the copyright owner and the DMCA was unenforceable in their jurisdiction.
  • The dick pics came down faster than the trolls could repost them.

At the end of the day, the Russians didn’t want those dick pics on their image websites.

The Author Account

I took possession of the “cdreimer” account by signing up the newly available username to claim as my own. (As for the other user accounts, I’ve signed them up with disposable email addresses from Guerrilla Mail and discarded the password reset emails to render unusable.) I’ve never wanted “cdreimer” (first and middle initials, last name) on Slashdot since I created the “creimer” (first initial, last name) account years before I started writing and publishing under my author name. While the trolls think that both names represent the same person, the personas for each one are quite different.

  • As the trolls found out the hard way, “creimer” was an Internet brawler willing to get down and dirty in a protracted fight. About 8,000 comments — probably more since the comment history before 2009 is no longer available — were written before 2017. As the trolls escalated the conflict, an additional 4,000 comments got written this year.
  • As for “cdreimer,” he’s too busy to post more than one or two comments per day, doesn’t care to argue, and has no use for the trolls.

During the last three months of “creimer,” I’ve carefully built up the karma for “cdreimer” by submitting news stories for consideration. It took ten approved submissions to move the karma from neutral to excellent. Of course, this was all for naught.

Getting Modded Down

Since “creimer” was consistently up voted more times than down voted by the mods, the modding system didn’t matter. Threats to mod my account into oblivion rang hollow for most of the year. After the DMCA episode, it wasn’t unusual for an AC to post a comment and a down vote at the same time. (Although ACs post comments anonymously, many have user accounts to gain mod points for the purpose of punishing logged in users.) When the day of reckoning came, I was ready to react.

Management deleted the “creimer” account without any questions the day after Labor Day.

Like the “cdreimer” account, I signed up the newly available username to prevent someone else from reusing it to mock me. Like the other user accounts, I used a disposable email address and discarded the password reset email. Unless I make a request to management to delete the current incarnation, “creimer” was gone for good.

Two weeks later I started posting comments as “cdreimer” and behaving like a noob (new user). The honeymoon didn’t last long. The trolls started shit posting and the mods started down voting every comment I wrote. In short order, my karma was terrible at -1 and I could only post two comments per day. That’s fine with me. The last six months of playing with the trolls on Slashdot has been an educational experience.

Meanwhile, the trolls are getting desperate. They keep posting the same copy-and-paste comments in response to the one or two comments I’m able to post each day. If anyone disagrees with them, they accuse that AC or user as being “creimer” and copy-and-paste the same comments in response. I don’t even bother to read these comments, being the same drivel posted for months. Most readers find this “following around” comment behavior more annoying than posting links to dick pics.

When Slashdot had a two-day outage from flaming power supplies at their data center last week, I made a comment over at SoylentNews (a Slashdot-clone that came into existence when the code behind Slashdot was open source for a while). Like a pack of Chihuahuas in heat, my trolls came running over to hump legs and tried to get the mods there to mod me into oblivion. It didn’t work. Unlike the mods at Slashdot, the mods at SoylentNews up voted my comment twice for its content and didn’t down vote because someone got their covfefe hurt.

The Original Slashdot F.A.Q. (Circa 2006)

On my author website, I have a Slashdot page with an old joke: “There are 10 kinds of people on Slashdot. Those who see my picture, go back to Slashdot and leave a comment, ‘You’re a fat retard.’ And everyone else.” If you know binary, “10” is actually “2” in decimal. That page was actually a pale imitation of a longer Slashdot F.A.Q. that I had back in 2006. The purpose of these pages was to have a signature link for my website in my Slashdot comments. Twenty years ago, a signature link would have generated 3,000+ clicks from Slashdot (enough to crash a web server via the “Slashdot effect”). Ten years ago, 300+ clicks. Today, 30+ clicks. Slashdot is just a pale imitation of itself these days. While sorting out some old electronic files on my file server, I came across the files for the original Slashdot F.A.Q. from 11 years ago. Reproduced below with some minor editing.


C.D. Reimer in 2006
C.D. Reimer in 2006

I frequently read and comment on Slashdot, a techie news discussion website. Because of the quality of my posts and my article submissions, I’m a highly rated commentator and moderator. I occasionally catch the attention of trolls (Anonymous Cowards). This F.A.Q. answers some of the questions that I’ve gotten over the last several years.

Why are the fat-loving /. retards after you?

Since my homepage link is visible when I post comments on Slashdot, fat-loving /. retards visit my website, see my picture, and go back to Slashdot to leave a comment to insult my appearance. There are several different commentary and/or personality styles.

  • “wow u r fat” — Might be a 14-year-old wanker who never graduated from nursery school and doesn’t know how to use more than seven letters.
  • “I bet you run out of EVERY color trying to draw a self-portrait don’t you fatty?” — A slightly more intelligent 14-year-old wanker.
  • “Hey here’s a joke for you, you fat tub of monkey shit.” — This 14-year-old wanker needs some serious mental help.

The typical fat-loving /. retard thrives on putting people down at every opportunity. The best method to deal with them is to call them out on it. They are like peacock-strutting bullies until someone gets into their face and they run away like the anonymous cowards that they are.

Are the fat-loving /. retards correct that you are “morbidly obese”?

The technical definition of morbidly obesity is being twice or more than your ideal body weight, all forms of dieting has failed to work and suffering from negative health effects. I weighed 400 pounds as a teenager, which was twice my ideal body weight according to doctors at that time. After I got a bicycle for my sixteenth birthday in 1985, I rode all over the county and lost 70 pounds of weight that summer. My riding weight was 325 pounds for 20 years. I then gave away my bicycle and I went to the gym. After a year of weight training, I’ve bulked up to 375 pounds, found it difficult to buy 4XL t-shirts at the stores, and let me weight drop down to 350 pounds. Except for seasonal allergies, I suffer no negative health effects. So, no, I’m not morbidly obese. But there are still plenty of people who love to argue with me on that point.

Isn’t the fat-loving /. retards correct that you’re fat and ugly?

I’m fat and ugly. So what?

Don’t the insults from fat-loving /. retards get on your nerves?

Not really. After living with the nicknames like “Titanic” at school and “Tortuga” (“turtle” in Spanish) at a restaurant job before I started my technical career, and being called everything else under the sun by my mother, it’s very hard for anyone to come up with an original insult that would offend me. Since I’m improving my physical health by dieting and exercise, nobody can say anything that will discourage me or hurt my feelings. One of the things about working out is that you become more confident about who you are as a person. The fat-loving AC /. retards go after me because I have something that they don’t have: confidence, self-respect and a willingness to change.

I saw your Slashdot signature: “Only fat-loving /. retards drool over my website pictures. Perverts.” How come there’s no fat porn on your website?

Sorry, I’m not running that kind of website.  Go find your fat porn somewhere else. Pervert.

The Confessions of Slashdot Asshats

Several weeks ago I wrote about using the DMCA takedown notices to remove my picture from image websites that Slashdot asshats kept posting for shakes and giggles. What I didn’t mention then was that three users accounts — “criemer,” “creinner” and “cremier,” variations of my Slashdot username — got deleted by management, and I subsequently created new accounts with disposable email addresses to prevent the usernames from being reused. End of story, right? Not quite. An extraordinary set of events shortly thereafter caused another user account to get deleted by management that immediately ended three months of unrelenting harassment towards me.

Confession

After I announced in a comment that I’ve successfully taken down all my pictures from various image websites, two users, an Anonymous Coward (or asshat) and “FakeFuck39” (seriously), commented that they “found” more of my pictures in a search result that I failed to notice and provided a new set of image links. What was curious was the very first link had a posted timestamp of 15 minutes earlier. All the links were recently posted. While I copy and pasted a new round of DMCA takedown notices to email, “FakeFuck39” posted a confession about the three deleted user accounts.

those were buddies of mine. one from France, one from Israel, and one of them was from across the table from me. I don’t know who cdreimer was. We had fun for a week or two creating accounts and laughing at you, but posting bullshit on slashdot all day is not what we do, so unlike you we had our fun and stopped creating new accounts. That’s like asking where the basketball players are after the game is over on the playground. They’re at home with their wives in their big house moron.

An asshat confessed to being “cdreimer,” the user account that started this series of events at the beginning of the Memorial Day holiday weekend.

cdreimer was me… I don’t know who struck first, cdreimer or criemer, but I know you guys were a lot funnier than me!

I sent an email to my contact at Slashdot the next morning, pointing out the links to newly uploaded pictures and nostalgic confessions.

Escalation

Later that evening I got a comment posted by an asshat written in the same style as “FakeFuck39”:

your image is all over the internet now, under the filename fatloser.jpg, and a lot of it appears to be coming up on russian hosting sites. have fun “protecting it” -most people would want to hide if they looked like that, from shame of how low they sank. as far as whether it’s legal or not to create accounts making fun of you or spread an image you made available – yes, it is – and no, your opinion is wrong, nor does it count.

have you noticed no one fights your takedown notices? the game we had you playing was issuing notices after you did the first one for cdreimer. you’re Still playing champ.. Once you get the links posted down, we’ll send you the new ones. I gotta warn you though, the next batch had a little photoshop work done. you’ll love it

I sent an email to my contact at Slashdot and went to bed.

“FakeFuck39” commented the next morning with newly uploaded picture links. This was where everything tied together. An asshat promised Photoshoped pictures and “FakeFuck39” delivered the links to the Photoshoped pictures. Could we say that the two were the same person?

Deletion

I sent off another email to my contact at Slashdot the next morning. After lunch I got an email from management that “FakeFuck39” would join the other deleted user accounts. I periodically checked throughout the day to see if the account got deleted. When the “FakeFuck39” username became available again, I created a new account to the prevent from the username from being reclaimed by its former user. Unlike the other fake user accounts that got deleted, “FakeFuck39” had two years of comment history and the last three months focused on replying to my comments. The harassment that got started when someone falsely accused me of threatening to shoot them finally came to an abrupt end.

The asshats, of course, never went away on Slashdot. A dedicated group of Beavis and Butthead types are still replying to my comments for the last two weeks. They’re easy to ignore.

The Slashdot Asshat(s) Who Stole My Pictures

Last week I took back a Slashdot user account under my pen name with a DMCA takedown notice. The quick response by management scared the asshats into silence for 48 hours. A different group of asshats started harassing me towards the weekend. One of them posted a link to my 350-pound picture from my author website. When I clicked on the link and noticed that the picture was from May 2016, I replaced the image with a picture taken last month by saving to the same filename.  That provoked an angry response for not using different filenames. The response puzzled me until I realized that my jowls were puffier in the 2016 picture, the “ten-pound tire” around my neck that the asshats love to moan about. I then implemented a 403 (forbidden) rule in the .htaccess file to prevent the external linking of my images and created a Slashdot page with the 2017 picture on my author website. Those actions provoked even more anger. The retaliation was my 2016 picture appearing on image websites. Out came the DMCA takedown notices to protect my pen name and copyrights.

The first image website was Hosting Pics, a French-based picture website that U.S. law like the DMCA doesn’t apply to. I initially tried the contact form that appears dodgy (i.e., “Unable to find MySQL database.”), tried again successfully, and found a contact email address to send the DMCA takedown notice (just in case the contact form was dodgy after all). The email I got the next morning indicated that the source was the contact form, informing me that my picture got removed. Less than 24 hours later, an asshat uploaded the picture and left me a note in French“I think that’s it. Good morning, Heavy Barbara.” Another request got the picture removed the following morning.

Other locations included 4chan and Imgur. Both had email addresses for sending DMCA takedown notices. I got an email from 4chan the next morning that my picture got removed. Imgur didn’t send out an email notification but they did remove my picture the following afternoon.

An asshat pointed out that Google has cached copies of my pictures that will live forever on the Internet and there was nothing I could do about it. That comment made me laugh.

Google has a help page for removing images from the search results, especially deleted images that are no longer accessible to the web crawlers. By placing a 403 rule to prevent external linking to all my images, the search engine regards those images as deleted. A removal request gets those links out of the search results sooner rather than later. After 4chan removed my picture from their site, I put in a request to remove those links. With a half-dozen open requests, I should have the search results cleaned up in a few days.

I’m once again enjoying the calmness that comes from scaring off the asshats with my awesome powers as a content creator. The few asshats who are still around are sharing a link to my picture, but this time it’s the Slashdot link to my author website. The more exposure that link gets, the more web traffic and ad revenues I get. Since the brouhaha with the asshats got started three months ago, I made $80 in ad revenues as curious readers left Slashdot to visit my websites. As Warren Buffett once said, “When it’s raining gold, reach for a bucket, not a thimble.”

DMCA’ing The Slashdot Asshat Who Stole My Pen Name

I had running battles with the asshats (a.k.a., Anonymous Cowards) on Slashdot for the last three months, starting with the asshat who falsely accused me of threatening to shoot him, the asshats who claim that only “real nerds” making $200,000+ per year in Silicon Valley can read Slashdot, and the other asshats who hound me for being the fat retarded kid on the short bus. For some of these asshats, replying to my comments isn’t enough for them. They started their own comment threads without me, posting how I sucked my cock all day (this is what a $100,000+ university education gets you these days). I took all this in stride as success in life means putting up with all the haters. That is until I noticed a user account in my pen name, “cdreimer” (4974007), replying obscenely to my comments as if they were from me. This was no longer personal, it became business. At the start of the Memorial Day weekend, I filed a DMCA takedown notice to protect my pen name and, indirectly, my copyrights. This morning I “pwned” the account, “cdreimer” (4977441) — and silencing the asshats for a while.

My user account, “creimer” (824291), existed ten years before I started using my pen name for publication and prior to the Dot Com Bust in 2001. I never bothered to create a user account for my pen name as I didn’t consider Slashdot as a platform for attracting a literary audience. With the asshats hounding me day-to-day over my comments that drove traffic to here (my personal blog), Slashdot became a new ad revenue stream for my side business. I read and write my comments as I normally do each day, the asshats make an epic fuss, and curious readers click on my “homepage” to come to this blog and enter my somewhat broken marketing funnel for generating revenues.

Another reason for keeping my venerable user account is that I have accumulated 9,167 karma points (see the output below from my Python scraper script).

Pages Processed: 623, Comments (Accepted/Total): 9319/9336
Oldest Date: 2008-08-04, Newest Date: 2017-05-30
Scores  (9167) | -1: 76, 0: 384, 1: 6969, 2: 1004, 3: 400, 4: 328, 5: 158
Bonuses (1250) | Flamebait: 32, Funny: 298, Informative: 199, Insightful: 331, Interesting: 269, Offtopic: 47, Redundant: 11, Troll: 63
Total Time: 00:12:39.00

That was something that the asshat who created the “cdreimer” user account found out in short order. A new user, or “n00b” in the Slashdot vernacular, starts off with little karma. Moderators (mods) will reward karma points to promote (up vote) a comment or demote (down vote) a comment. Those karma points get added or subtracted to the user’s karma count. Too many negative comments will reduce karma to zero and restrict comment posting to twice a day. After a handful of negative comments, “cdreimer” got sidelined by bad karma. That, of course, prompted another user account, “criemer” (4975517), with the letters “e” and “i” switched around, to come into existence, starting this thread where asshats turned on each other as they thought it was me. When I pointed out elsewhere that it wasn’t me, I got called a liar.

Since I get up voted more than I get down voted each day, and I’m a lifetime away from ever having zero karma again, I don’t have to worry about the mods. If I was posting under “cdreimer”, I would have to cultivate karma points (or “karma whoring”) quite carefully for an extended period of time. Given my “rabid” following on Slashdot, I’m sure they will give me hell all the way.

I haven’t filed a DMCA takedown notice in years. Since I started publishing my ebooks in 2010, I would occasionally receive a Google Alert informing me that one of my FREE ebooks got posted in some obscure corner of the Internet. A DMCA takedown notice  was  easy to prove since I can point to my author website as the authoritative source for my ebooks. Over the last seven years, I’ve never had a DMCA takedown notice rejected.

Technically, a DMCA takedown notice doesn’t apply to user accounts. As an attention getter, a DMCA takedown notice is quite effective. I pointed out that I’ve used my pen name for ten years, the three-day-old “cdreimer” account got created for the express purpose of harassing me, and provided the nine comment URLs that my Python scraper script found. When the account got deleted this morning, I immediately created a new user account and posted a comment to prove that I own it now.

As I tried to explain to the asshats, this is business. I have an obligation to protect my pen name and my copyrights. If I don’t, they become worthless over time.

My “Complicated” Work History At Google

Although the asshat who accused me of threatening to shoot him for six weeks has faded away, other asshats are popping up to replace him on Slashdot. One asshat posted comments not to my comments but to the comments that I replied to, but I periodically rechecked older threads and respond to each of those wayward comments. Another asshat complained about my weight (I’m 350 pounds — think football player), my diet (daily calorie intake is 1,500 calories), and why I haven’t committed suicide yet (I’m too sexy die young). One asshat in particular kept misrepresenting my work history with Google in multiple comments, as if I struck a nerve by working at Google. And perhaps I did. Let’s look at my “complicated” work history at Google.

Most people have the erroneous assumption that Google hires only “the best of the best of the best, sir!” (Men In Black) from the leading universities around the world. That’s true for direct hires like engineers and managers. (But maybe not for long, according to Fast Company, as tech companies hire tech workers without four-year degrees to fill their ranks.) Direct hires are a small part of Google. Everyone else who works at Google are hired through vendors for different functions throughout the company.

After I graduated from San Jose City College with an Associate of Science (A.S.) degree in computer programming and made the president’s list for maintaining a 4.0 GPA in my major, a vendor hired me for what was my first of several assignments in 2007-2008. A different vendor would hire me for several more assignments in 2011-12.

2007-2008

I’ve worked in the Google IT help desk call center for seven months from 2007 to 2008. For the first three months, I was in dispatch and routing 300+ tickets per day to the call center techs, fields techs or other groups like facilities. I’ve worked in the call center for the remaining four months, assisting users when I can, opening tickets when I can’t, and doing whatever I can remotely (i.e., installing software, opening network jacks with the correct VLAN, or adding hostnames to DNS). Since the average Googler gains 26 pounds from eating the free food and move their desk every three months, this was a high-paced environment that kept me busy for eight hours a day.

Since the vendor I worked for lost the call center contract to the Indian firm that managed the call centers for Google in India and Europe, a group of us worked in inventory for a month before transferring to a new assignment at eBay. Google at the time hired 300+ people per week. We got shipments of hardware in on Friday and Monday, got everything unboxed and put away by Tuesday, spent Wednesday prepping 300+ systems to go out the door, and loaded up the vans on Thursday mornings for deployment. Before we could take a breather, the cycle started all over again.

As a reward for my brief stint in inventory, I got a Kensington backpack that Google used to give to their new hires back then. Nine years later I’m still using that backpack, now flaying at the edges and falling apart from working all over Silicon Valley.

The Great Recession

I worked at eBay for 13 months before I got laid off on Friday the 13th, February 2009 (my supervisor let me pick the date from a list). That was the beginning of my journey as 99’er in the aftermath of the Great Recession, spending two years out of work (2009-2010), underemployed for six months (working 20 hours per month at a moving company), and filing for Chapter Seven bankruptcy in 2011. When my bankruptcy got finalized in July 2011, I had $25 left in my checking account and a new full-time job at a different vendor to become the lead tech of a PC refresh project at… eBay.

One of the phone guys at eBay gave me a hero’s welcome: “Jesus Christ, if HR let this guy back in, they will hire anyone off the streets.” 

For the next two years (2011-2013) I would work seven days a week to re-establish my finances. I’ve worked over 30+ assignment for three different vendors that competed for my availability. I had a regular Monday-Friday assignment, and a weekend assignment that sometimes starts on Friday nights. Assignments that lasted a week or more went on my resume, shorter assignment that lasted four hours to several days I didn’t bother to keep track.

That would bite me in the ass in 2014 when the two-hour background interview for the security clearance at my current tech job lasted four hours because I had to list every assignment since 2007. Unlike most Fortune 500 HR departments, government investigators checked out every reference and requested credit reports from all three reporting bureaus. They were quite thorough.

2011-2012

When the PC refresh project at eBay had a six-week lull after the holidays, a different vendor offered a one-month assignment at Google to build out a data center. I started working at Google the day after Christmas in December 2011 and finished at the end of January 2012. Unlike my experiences from working at the call center and in inventory, we sat around waiting for parts — servers, switches, routers, twisted-pair and fiber optics cables, odds and ends — to arrive in the morning and spent the afternoon installing everything into the racks.

When the data center got done, the manager took us over to the Google Store to buy something up to $25 in value (I got a pair of Google running shorts) and we had dinner at Building 51 (the former nickname for a sports bar at the edge of the Google campus). I went back to eBay to finish the PC refresh project.

A few months later I would come back to do a one-week cleanup at the data center. Besides throwing out the trash, consolidating equipment on multiple pallets into fewer pallets, and sweeping the floor, I also had to verify that the port mapping info in the spreadsheet was accurate, remove decommissioned servers from the rack, and relocate severs around the data center. Unlike last time, there was no trip to the Google Store or Building 51.

Sometimes being “the best of the best of the best, sir!” at Google is just rolling up your sleeves to do the jobs that no one else wants to do.

The Python Time Zone Rabbit Hole

Thanks to the recent asshat controversy on Slashdot, and a fellow Slashdotter’s request for the link to the comment that prompted the controversy in the first place, I wrote a Python script to scrap my ~8,000 comments from Slashdot to dump into a spreadsheet for future reference. I’m planning to write essays about my various misadventures in Silicon Valley and my comment history is rich treasure trove of stories I’ve written over the years. While working on the script, I came across a programming rabbit hole for converting the timestamp string into a different timestamp string that kept me up for three nights.

The original timestamp that I extracted from each comment was a text string like this, “on Friday April 04, 2017 @06:03PM” (as it appeared on the website), and got written into CSV (Comma Separated Values) file just like that. After the initial script was working, I opened the 5MB CSV file in Excel to scroll through the data and see what I needed to change in the script. The timestamp string wasn’t in a sortable format. I had to change the timestamp into this format: “2017-04-07 18:03:00”. There’s two ways of doing this in Python: using a datetime object or slice-and-dice the string.

from datetime import datetime

def get_timestamp(string):
    return datetime.strptime(string, "on %A %B %d, %Y @%I:%M%p")

print(get_timestamp("on Friday April 04, 2017 @09:03PM"))

My first attempt (see code fragment above) was quite simple, using the strptime function for the datetime object to parse the timestamp string according to the matching format string (“on %A %B %d, %Y @%I:%M%p”). When I opened up the CSV file and compared the timestamp against the corresponding timestamp on Slashdot, the timestamp was correct except that the hour in 24-hour time was off by three hours. Every timestamps in the CSV file was off by three hours. I quickly learned that Python’s datetime objects are generally time zone unaware (or naive), and, in general, not very easy to use with different time zones.

def convert_timestamp(string):

    months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
              'August', 'September', 'October', 'November', 'December']
    month_number = {x: str(y).zfill(2) for y, x in enumerate(months, 1)}

    # remove "on" and split string into list
    string = string[3:].split(' ')

    # slice and dice into date/time components
    month = month_number[string[1]]                       # '04'
    day = string[2][:-1]                                  # '07'
    year = string[3]                                      # '2017'
    hour, minute = string[4][1:][:-2].split(':')          # '06' / '03'
    period = string[4][-2:]                               # 'PM'
    second = '00'                                         # add missing value

    # convert 12-hour time to 24-hour time
    if period == 'PM':
        if hour < '12':
            hour = str(int(hour) + 12).zfill(2)

    date_str = '-'.join([year, month, day])               # 2017-04-07
    time_str = ':'.join([hour, minute, second])           # 18:03:00
    return ' '.join([date_str, time_str])                 # 2017-04-07 18:03:00

print(convert_timestamp("on Friday April 04, 2017 @09:03PM"))

My second attempt (see code fragment above) was to slice-and-dice the timestamp string into the corresponding string values for month, day, year, hour and minute. The second value got added for completeness. If the period was “PM” instead of “AM”, the hour went from 12-hour time to 24-hour time. Date, “2017-04-07”, and time, “18:03:00”, are join together into one string, “2017-04-07 18:03:00” . When I ran the script and looked at the CSV file, the resulting timestamps was identical to the timestamps created by the datetime object.

Every timestamp was still off by three hours.

When I work on a website scraping script, I always save the scraped data into text files while refining the parsing and output sections to avoid re-scraping the website. That reduces the risk of my IP address being flagged by the website or firewall as a spammer and/or scrapper. The completed script will scrape, parse and write each page directly to the CSV file.

The slice-and-dice function converted the timestamp string as found in those text files. If I viewed the timestamps on the website, the timestamps are correct for the Pacific time zone. If I look at the timestamps in the text files, the timestamps were all off by three hours (“09:03PM” instead of “06:03PM”). So both the datetime object and slice-and-dice functions were working properly. The logical conclusion is the Slashdot server is located in the Eastern time zone and what I thought about the data was wrong. There lies the problem—and the solution.

from datetime import datetime
from pytz import timezone

def set_timezone(ts_str, tz_alt='US/Eastern'):
    ts_format, tz_def = "on %A %B %d, %Y @%I:%M%p", 'US/Eastern'
    tz_obj = timezone(tz_def).localize(datetime.strptime(ts_str, ts_format))
    return tz_obj if tz_alt == tz_def else tz_obj.astimezone(timezone(tz_alt))

timestamp = set_timezone("on Friday April 07, 2017 @09:03PM", 'US/Pacific')

print(timestamp.strftime("%Y-%m-%d %H:%M:%S %Z%z"))

The third and final attempt (see code fragment above) uses the pytz package to add time zone definitions to the datetime object and provide functionality to translate between different time zones. Using the datetime object from the first code fragment, the timestamps get encoded “US/Eastern” and then translated into “US/Pacific” to match the timestamp on the website. The resulting timestamp with time zone info in the CSV file has this format: “2017-04-07 18:03:00 PDT-0700”. A nice thing about the pytz package is that it also handles Daylight Saving Time seamlessly. If you don’t need the time zone info for the timestamp, remove “%Z%z” from the format string.

Have I Threatened To Shoot You Today?

I’ve read and commented on Slashdot since the dawn of the Internet (circa 1998). More so in recent years while waiting for a script to finish running at my tech job. I’ll find a topic that I’m interested in, read and respond to the early comments, and, if I want to torment the trolls, a.k.a, AC (Anonymous Cowards), I’ll write a controversial comment and camp out on the thread for the rest of the day. I don’t take this seriously because I’m just killing time. That is until an asshat accused me of threatening to shoot him. Even though I’ve asked three times for the asshat to explain how I threatened to shoot him, today I confronted the asshat by breaking out the crayons and coloring inside the lines.

What comment provoked this accusation? I asserted my First AND Second Amendment rights.

When talking about the U.S. Constitution, there are two groups that typically talk past each other all the time: the First Amendment people who don’t want the Second Amendment people bearing arms in public because they feel intimidated, and the Second Amendment people who loudly proclaim with obvious display of heavy weaponry that their amendment trumps all other amendments and that the First Amendment people should just shut up.

As a moderate conservative (another controversial statement), my belief is that you can’t have one without the other. The First Amendment grants me the right to speak my mind. The Second Amendment grants me the right to bear arms, and, since California isn’t a strong “stand your ground” state, I don’t have the right to shoot anyone’s sorry ass willy-nilly. This “best of both worlds” position typically pisses off the opposing camps.

One asshat ASSumed that my comment constituted a threat to shoot him.

If I was going to shoot that sorry ass asshat, I wouldn’t announce my intentions to do so under a named account on Slashdot. All the police would have to do is click on the home page link for my Slashdot comments, go to my author website and find my picture. The FBI already has my fingerprints. It wouldn’t take long to track me down.

So why draw attention to this controversy?

A group of Slashdot asshats went to my personal website, saw my picture and started calling me fat (among other explicit things). I collected their comments into an F.A.Q. (Frequently Asked Questions) and posted it on my website. Whenever someone called me fat, I posted the link to the F.A.Q in a reply comment and 3,000+ visitors stampeded to my website. That was 15 years ago and long before I had ads on my websites. This blog post is the new F.A.Q. If the asshat accuses me of threatening to shoot him again, I’ll post the link and collect the ad revenues from 3,000+ visitors.

After a two-year hiatus from blogging on Kicking The Bit Bucket, I’m blowing off the cobwebs and getting back to work.

Friday, 30 March 2017 — By popular request on Slashdot, I added a link to the original comment above. Here’s the link for the parent thread. Read and decide for yourself. That sorry ass asshat is still hounding me six weeks later.