Time For A Little Social Media Break

It’s been a while since I last posted something. The truth is, I haven’t had much to say. I haven’t been taking a lot of pictures that I want to post, I haven’t had a lot of random observations or thoughts to bore you with, and I haven’t had a lot of unique Excel stuff going on at work that I can turn into a post. 

(Side note: thinking through the things I’ve posted here, largely lumped into the three categories above, makes this a strangely discordant blog.)

Truthfully, my time has been spent doing a lot of writing, a lot of editing, a fair amount of bass playing (started taking lessons a few months ago), and a lot of news watching. Probably a lot more than is healthy. Anyone who knows me knows that I run on the liberal side of American politics, but regardless of your affiliations, you have to admit that the months since the current president was elected have been a ten for the non-stop entertainment value. Depending on your brand of politics, it’s either been an action movie or a horror movie, but it’s been interesting to watch.

Truth be told, the political climate has been the most contentious I have ever seen. There is no more middle ground in American politics, and there is no more middle ground in the political discussion. Hell, we have ordinary citizens now shooting at the other party simply because they are the other party. We’ve reached that level of crazy. 

I’m sure there have been studies and analysis, but anecdotally, at least as I view it, the chief cause of this seems to be the growing prevalence of social media as the world’s primary choice of media consumption. 

It’s self-fulfilling in its way. Facebook, with all of its fancy algorithms, customizes your news feed to offer you media choices that align to the things you’ve liked or watched before. It’s trying to anticipate other things that you might be interested in reading. Which is fine, I suppose, but limiting. By offering only those things that align to your previous reading, you lose the perspective of the other side of the argument. By reading and/or liking Jacobin, your feed will start to include other similar sites like In These Times, Media Matters, and The Mary Sue. But you’ll never see Reason, The Federalist, and TownHall.com. 

Twitter likewise tries to offer you things that fall into your political spectrum. You follow a few people, and then retweet something that falls into your brand of politics, so then you follow the person who they retweeted, and on and on until you have a bloated list of people you follow who subscribe to the exact same conversations you do, and those who are on the other side of your arguments you lump into Twitter Lists with titles like Tools, or Assholes, or Dipshits. 

There seems to be no more middle ground, with our news and opinions curated for us so that they are no longer really our own, just a regurgitation of the same things we’ve already read, liked, or retweeted. And what’s worse is that the dangerous influence of social media is extends beyond mere politics. It’s a total disconnect from actual human interactions, and so we forget how to connect with actual humans. Yesterday, a girl in Taunton was convicted of pushing her ex-boyfriend into suicide via text messaging because she wanted the attention. How have we reached that point?

So I’m taking a break. I’m dropping off Facebook and Twitter for a while. I’m not flat out deleting my accounts, disabling or deactivating them. I’ll remain a part of the social media world, if not active in it. I’m starting out for just this summer, and I’ll see how I feel come autumn. Because I feel social media is hurting me in some ways. Hurting relationships, hurting how I interact with people, and quite frankly, hurting how I think. I’ve seen first hand how social media posts can trigger anxiety attacks and render a person useless for an entire day, just because of a few words or a picture thrown out in cyberspace. 

Enough already.

If you want to get a hold of me, text me. Or call me. Or Messenger me (I’ll keep Facebook Messenger running). DM me on Twitter if you like. Hell, if you’re feeling industrious, write me a good old fashioned letter. I haven’t gotten one of those since college. I don’t even know if people remember how to write letters. Need my address? Contact me privately. If I know you, I’ll give it to you. Send a postcard if that’s what you’ve got in mind. The point is, if you want to talk to me, then talk to me. 

But mass posts that target a bunch of people at once? I probably won’t see them.

I’m not trying to target anyone with this post, this isn’t about calling anyone out on the mat. This isn’t about anyone but myself. This is how I feel, and the actions I’m taking. I’m not telling you that you have to follow suit. Do what you feel you need to do. 

In the meantime, have a great summer. See you in the fall. 

Maybe. 

Advertisements

Excel Geeking: Extracting Comments Using VBA

A couple of months ago a colleague moved into a new position at work and inherited a big ugly spreadsheet. Happens to the best of us, amiright? The biggest challenge with this spreadsheet is that the previous owner, who has since retired (and good for him!) didn’t update his status notes and comments in a cell or a column. He kept them all in in-cell comments.

In. Comments.

Needless to say, the spreadsheet my colleague inherited had a couple of billion comments, some of which were absolutely enormous. She wanted to know if there was a quick way to extract all of the text out of the comments, and put them in the first available cell to the right. And if the old comments could be deleted as part of the extraction, that would be a bonus.

To which I said, of course that can be done!

And so, I wrote this little routine as a way of pulling the text from comments, placing it in the first available cell to the right, and blowing away the old comments if desired. Enjoy!

Sub ExtractComments()
'*******************************************************************************
' Description:  This iterates through all of the used cells in a worksheet
'               and where comments exist, extracts them and places them
'               in the next free cell to the right in the row where the
'               comment exists.
'
' Author:       Scott Lyerly
' Contact:      scott.c.lyerly@gmail.com
'
' Notes:        None.
'
' Arguments:    None
'
' Returns:      None
'
' Change Log:
' Name:                 Date:           Init:   Modification:
'---------------------------------------------------------------------
' ExtractComments V1    10-APR-2015     SCL     Original development
'
'*******************************************************************************
On Error GoTo ErrorHandler

' Variable declarations.
Dim sh          As Worksheet
Dim rng         As Range
Dim rCell       As Range
Dim rComments   As Range
Dim lAns        As Long
Dim lCalc       As Long

' Set some references to the active sheet and the sheet's used range.
Set sh = ActiveSheet
Set rng = sh.UsedRange

' Check to see if there are any comments in the sheet.
Set rComments = rng.SpecialCells(xlCellTypeComments)
If rComments Is Nothing Then GoTo Exit_Clean

' Ask user if they want to delete the comments as they are extracted.
lAns = MsgBox("Do you want to delete the comments as they are extracted?", vbYesNo + vbQuestion)

' Speed up the processing time.
With Application
lCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

' Iterate through the used range and where there are comments,
' extract their text and add it to the row.
For Each rCell In rng
If Not Intersect(rCell, rComments) Is Nothing Then
sh.Cells(rCell.Row, sh.Range("XFD" & rCell.Row).End(xlToLeft).Column + 1).Value = rCell.Comment.Text
' If the user selected YES above, delete the comments.
If lAns = vbYes Then rCell.Comment.Delete
End If
Next rCell

Exit_Clean:

' Restore the environment.
With Application
.Calculation = lCalc
.ScreenUpdating = True
End With

' Delete objects to memory.
Set sh = Nothing
Set rng = Nothing
Set rComments = Nothing

Exit Sub

ErrorHandler:
MsgBox Err.Number & ": " & Err.Description
Resume Exit_Clean

End Sub