// The Comment #3: Gerrymander

#GrabbingABrew

The Comment is a weekly digest of the stuff that grabbed my attention or occupied some part my mind during the past week. Normally, it’ll be one thing that’s really been on my mind, followed by a handful of things that I found interesting. The Comment will be published each Monday at 10:30AM EST. 

Thanks for reading.

## Redistricting in North Carolina

North Carolina is home to some of the worst racially gerrymandered congressional districts in the nation.

Seriously, check out NC Congressional District #12 (NC-12 for short).

NC Congressional District #12 – Source: NCSBE

If you are unfamiliar with NC-12, it follows I-85 from Greensboro to Charlotte (hitting Winston Salem) and contains large populations of African-Americans and other minorities.  It’s no secret that African-Americans and minorities tend to vote for Democratic candidates.  This effectively creates a voting district that is overwhelmingly Democratic leaning.  This is called “packing” (where you pack all the voters from one party into as few districts as possible) and is bad because it wastes votes.  A wasted vote is every vote more than is required to elect an official into office.  For example, if candidate A beats candidate B, 78-22 (only need 51 votes to win), there are 49 (27 wasted votes for candidate A and 22 wasted votes for candidate B).  A wasted vote isn’t necessarily a bad thing and there are wasted votes in most elections.  However, a system where large quantities of votes are consistently wasted results in a diminished voice for those voters.  In gerrymandered districts, there tend to be a lot of wasted votes.

Another strategy used by those wishing to gerrymander is a tactic called “cracking” where the desire is to split up a concentrated voting bloc (ie. urban Democrats into many Republican leaning, rural districts).  This dilutes the voting power of the “cracked” bloc.  Both “cracked” and “packed” districts lead to situations where a legislative chamber is more extreme leaning despite demographics that state otherwise. I should add gerrymandering is not illegal and is an effective political tactic to extend or magnify (or reduce) the legislative strength of a political party.  It becomes very problematic when those tasked with drawing congressional districts explicitly desire to diminish the voting power of a group of people because of race or ethnicity.

The North Carolina GOP has a hard time drawing districts that aren’t racially gerrymandered.  They recently redrew congressional maps that do not satisfactorily eliminate the racial gerrymander exacerbated in the maps submitted in 2011.

Federal judges announced their plans on Thursday to ask a Stanford University law professor to look at nine North Carolina legislative districts as they weigh the constitutionality of election maps adopted in August.

The news came in an order filed in federal court by the three-judge panel asked to decide whether the new maps correct 28 districts drawn in 2011 and later found to be unconstitutional racial gerrymanders.

The judges raised questions about seven state House districts and two state Senate districts that “either fail to remedy the identified constitutional violation or are otherwise legally unacceptable.” One Senate district was in Guilford County; the other was in Hoke and Cumberland counties. The House districts were in Wake County, Mecklenburg County and Guilford County.

As unaffiliated (also known as independent) voter, I’m of the opinion that a non-partisan independent commission should be the one drawing our congressional districts.  The North Carolina GOP is unable to draw suitable voting districts, so the federal courts have decided to have a handful of districts analyzed (and possibly redrawn) by Nathaniel Persily, a Stanford professor who has drawn districts for other states.  I just wanted to highlight this step in a journey that, hopefully, leads to more equitable maps.  More equitable maps would help North Carolina to return to a more moderated state of governance that has been absent for some time.

Stanford law professor could help draw NC legislative districts

// In Rotation: Uncivil

The Uncivil podcast, from Gimlet Media, explores interesting and untold stories about the American Civil War.

A new history podcast from Gimlet Media, where we go back to the time our divisions turned into a war, and bring you stories left out of the official history.

The latest episode, “The Spin”, goes deep into how the defeated Confederacy effectively spun a story of treason and protection of a barbaric slave system into one of pride, “state’s rights”, and the continuation of near slavery conditions for freed African-Americans.

// The iPhone X w/ TechMeOut

The iPhone X went on sale over the past few weeks.  I’ve been checking out a few reviews because I’m interested in the tech.  I like this one from YouTube creator, TechMeOut.

/* fini */

// The Comment #2: “Forever is a mighty long time”

#WoopWoop

The Comment is a weekly digest of the stuff that grabbed my attention or occupied some part my mind during the past week. Normally, it’ll be one thing that’s really been on my mind, followed by a handful of things that I found interesting. The Comment will be published each Monday at 10:30AM EST. 

Thanks for reading.

// Things That Matter with Big K.R.I.T.

Big K.R.I.T. was interviewed on The Breakfast Club.  It highlights the cool part about becoming a fan of an artist and watching them grow as you grow and age.  I’ve been a huge K.R.I.T. fan since I heard “Return of 4eva”.  I went to a Big K.R.I.T. show at the Cat’s Cradle (Freddie Gibbs was one of the artists that opened up for K.R.I.T.).  That show was crazy.  K.R.I.T. talks through the moments he realized that the superficial stuff (fame, fortune, accumulation of status symbols) does not lead to happiness. Comparing his music from then to now, I can appreciate the growth in his sound and material because it reflects how things have changed and matured in my life.

// Secret Sauce Behind Deep Learning

Deep learning is a very complicated subject, but changing so much of the world around us and a very valuable skill to have under one’s belt.  Read everything you need to know about deep learning.

Everything you need to know about neural networks

// In rotation: The Midnight Snack w/ DJ Ill Digitz and Charlie Smarts

/* fini */

// The Comment #1: Pixelization

#TeamPixel

The Comment is a weekly digest of the stuff that grabbed my attention or occupied some part my mind during the past week. Normally, it’ll be one thing that’s really been on my mind, followed by a handful of things that I found interesting. The Comment will be published each Monday at 10:30AM EST. 

Thanks for reading.

## The Google Pixel 2

Right: Pixel 2 XL, Left: Pixel XL

I’m not a tech reviewer, but I got my hands on the Google Pixel 2 in XL form. I’ve been using it for about 5 days. I’m coming from a Pixel XL “OG”. The Pixel 2 XL is pretty great for reasons that are important to me. Here’s why:

Camera

Washington Memorial, shot on a Galaxy Nexus, cameras have made big leaps since then

Phones from Google, first the Nexus line and now the Pixel line, haven’t always been great at taking pictures. Starting with the Nexus 5X & Nexus 6P, that changed and continued with the original Pixel. Things have taken a serious step forward on the Google Pixel 2. The images that come off of the sensor and processed through Google’s algorithms are nothing short of incredible. It’s the primary reason I upgraded. I take a lot of pictures, mostly of my daughter, so having the best possible quality, so conveniently, is a huge plus. I enjoy how effortless it is to get some pretty fantastic pictures. Portrait mode is also great, though not perfect. Sometimes, edges around faces or hair aren’t blurred consistently or light causes some distortion.

The video quality is fine, but the audio quality is so disappointing. It sounds “canny” or super compressed. It’ll probably be fixed in a software update, but in the meantime, any precious memories captured on video will have pretty bad audio.

Finally, Google Photos continues to be a great complement to the Pixel line and one of Google’s greatest products.

Portrait mode with the front facing camera

 

Software

I’ve used Android since 2010, when I failed to buy an iPhone 4 and bought a Samsung Captivate (the carrier bloated version of the original Samsung Galaxy S) running Android 2.1 “Eclair”.  Side note, how different would my life be if I would have bought an iPhone 4? It was because of that phone that I overwhelmingly prefer “clean” versions of Android. No weird theming, terrible customizations, and useless features.  I just want fast software and quick updates. The Pixel 2 checks all of those boxes. Finally, the software experience is consistently quick, as it was on OG Pixel.

Front Facing Speakers

When I jumped from the Nexus 6P (and from the Nexus 6 before that) to the original Pixel, I gave up the front facing stereo speakers. They are back on the Pixel 2 and sound great. I no longer need to cup my phone to hear music, podcasts, and videos from the OG Pixel’s single down firing speaker.  The Pixel 2’s speakers get pretty loud, have decent stereo separation, and even a teeny bit of bass.

Machine Learning

Sometime between the official Pixel 2 announcement and the device becoming available, Google announced that the Pixel 2 has a special purpose machine learning chip embedded in it capable of 3 trillion operations per second (for comparison’s sake, the iPhone 8/X’s “Neural Engine” peaks at 600 million operations per second).  The chip is comprised of 8 compute cores or what Google is calling IPUs (Image Processing Units), on-die memory, and a smaller processing core to keep data fed to the 8 IPUs.  This chip’s purpose is to offload the HDR+ from the CPU and to accelerate machine learning.  Introduced in the Nexus 5X/6P, Google’s HDR+ algorithms quickly take a stack of photos (the last 10 or 15) and uses the combined data to drastically reduce noise and increase the dynamic range.  This gives you great looking pictures where the shadows have a pretty good amount of detail and the lightest parts of the photo aren’t blown out.  On OG Pixel, some portion of this algorithm was accelerated by the Hexagon DSP in Qualcomm’s Snapdragon 821 with the rest running on the CPU.  The same is happening on the Pixel 2, but over the next few months Google will run these algorithms on the Pixel Visual Core which will speed up HDR processing by a factor of 5 while reducing power usage by 90%.

Google is also opening this chip up to developers of camera apps who want to run their Halide image processing code and those who want to run their trained TensorFlow neural network models on the Pixel.  The latter is the part that intrigues me.  I’ve been toying around with machine learning and getting close to having something deployable.  The ability to do inference (inference is using an already training neural network to make an estimate on new data) is entirely on the device, with decent performance is valuable to making the user experience better for apps that make use of machine learning.

Display “Drama”?

It’s fine. The colors are noticeably less saturated than the Pixel XL, but I’d rather have a properly calibrated display.  Otherwise, it looks like any other competent smartphone display.

 

Left: Pixel 2 XL, Right: Pixel XL

Random thoughts

The texture on the back of Pixel 2 is an improvement over the slippery-ness of the Pixel. It’s more grippy.

The fingerprint sensor is noticeably quicker at recognizing my fingerprint than the OG Pixel.

The ambient music recognizing is pretty cool, though it wasn’t consistent. It recognized music in loud bars and restaurants, music in movies, and sometimes music on the radio. It even correctly recognized a remixed Rihanna track (Rihanna vocals for “Work” over a different beat).

The body and display are more rounded than the OG Pixel XL. Using the Pixel 2 XL feels more comfortable in hand than the OG Pixel XL.

The always-on ambient display is super useful. It’s easy to glance at without having to do the double tap dance needed on the OG Pixel XL.  A couple of subtle things about the ambient display.  It adjusts its brightness depending on the lighting in your environment and it’s not always on.  If the proximity sensor detects that something is right in front of it (ie. the phone is in your pocket or upside down on a table), the screen shuts off.

Ambient music recognition of one of the greatest southern beats of all time

The Pixel 2 XL is a worthy upgrade over the OG Pixel. It’s expensive. I had an almost pristine OG Pixel XL, so I got a pretty good deal on the trade in that helped bring the cost down.

// Alpha Go Zero learns the rules

In 2015 and 2016, Google’s AI division, DeepMind, trained an artificial intelligence to play and master the ancient game of Go. They training method they used a lot of different machine learning techniques, including, learning from amateur and professional Go players. AlphaGo mastered Go and surprisingly beat the best Go players in the world in 2016.

The next version of AlphaGo, AlphaGo Zero takes things further. This time around, AlphaGo Zero just learned the rules to game. It then trains itself by playing itself millions of times, leveraging reinforcement learning. As a result Alpha Go Zero, not only master Go more quickly, it did so with fewer compute resources, and attained a higher level of expertise in the game of Go. This is fascinating because it shows how efficient computers can be if they aren’t restricted to human level understanding, as was the earlier versions of AlphaGo.  To me, this is a breakthrough.

Alpha Go Zero

// Three Step Guide to Blockchain

I’m still wrapping my head around the technology that enables Bitcoin and Ethereum, Blockchain.  Thijs Maas lays out 3 fundamental technologies that makes Blockchain so awesome.

The Quick, 3-Step Guide to Blockchain Technology

// In rotation: “Laila’s Wisdom” from Rapsody

This album is so so so dope. There are a handful of albums that have been memorable and still in my rotation to this day years after their release date. Off the top of me head, a few of them are J. Cole’s “The Warmup”, Katrynada’s “99.9%”, Little Brother’s “The Minstrel Show”, and Wiz Khalifa’s “Kush & Orange Juice”. I’m 100% sure “Laila Wisdom” is going to end up in this list. It’s such a smooth listen from beginning to end. I’m also a huge fan of the midtrack beat switch up.

/* fini */

// The Comment #0: Twitter-a-little-less

#NotMyStreet

The Comment is a weekly digest of the stuff that grabbed my attention or occupied some part my mind during the past week. Normally, it’ll be one thing that’s really been on my mind, followed by a handful of things that I found interesting. The Comment will be published each Monday at 10:30AM EST.  The Comment #0 is a trial run so I can see what works and what doesn’t.

Thanks for reading.

## Going Twitter (app) – less

I’ve wasted  a lot of time on Twitter reading news. Some of the feelings experienced included rage at the news, bewilderment at the hot takes, and ultimately apathy. This has been a pretty vicious cycle that’s rather exhausting. So I’m clear, there are very serious problems in our world today, a lot of them appear on Twitter.  There are a lot of issues with abuse on Twitter.  Those problems need solutions, a few of which can be found by having open discussions on Twitter.  I’ve been listening to few podcasts and a common theme has emerged, social media and specifically Twitter, and to a lesser extent Facebook, tends to be detrimental to one’s mood. So I decided to just fallback for a bit and just focus on other aspects of the life.

“By changing your surroundings, you can place a hurdle in the way of bad behaviors and remove the barriers to good ones. I like to refer to this strategy as environment design.”

-James Clear, “Environment Design

In order to really fallback, I needed to setup my environment (my phone) to put a hurdle in the way of bad behaviors, ie. wasting time on Twitter. I still hop on Twitter from time to time, using the mobile website, but it’s just bad enough where I don’t really want to spend a lot of time on it. I still read some news on Twitter, but not being able to access Twitter as easily forces me to think more logically about, really form a perspective on it, and gives me a chance to get all of the facts before reacting. Essentially, I let my thoughts breath a bit before attempting to form a response. Consequently, this has led to me desiring to do more writing. I don’t want to come off as uneducated or ignorant in my writing, so I’ve also been doing a lot more reading.

With that said, Twitter is still a great place for news. I use Nuzzel to aggregate the news that the people I follow share on Twitter. This is a great app for people who really don’t want to dive into Twitter’s realtime stream, but still want to be aware of relevant events and news.

// Entropy & Life

“Here’s the crucial thing about entropy: it always increases over time.  It is the natural tendency of things to lose order. Left to its own devices, life will always become less structured. Sand castles get washed away. Weeds overtake gardens. Ancient ruins crumble. Cars begin to rust. People gradually age. With enough time, even mountains erode and their precise edges become rounded. The inevitable trend is that things become less organized.”

This piece from James Clear, on the surface seems very obvious, but I think he buttons it up nicely in the conclusion.

“It is nobody’s fault that life has problems. It is simply a law of probability. There are many disordered states and few ordered ones. Given the odds against us, what is remarkable is not that life has problems, but that we can solve them at all.”

When you think of the obstacles that can prevent you from being your ideal self, the ability to find a way around them is pretty miraculous. Given how chaotic life is, I find it amazing that I am where I am. There were a few decisions that I made that could have led me down a very different path. There are things, systems, made decisions, I didn’t even think about or have knowledge of, that were constructed in a way to that led me to where I am. Yes, things could be much better, but things could definitely be a lot worse. It’s this mindset that keeps pushing me forward, despite of all the things that introduce chaos into my journey.

https://jamesclear.com/entropy

// Ta-Nehisi Coates needs a title

Ta-Nehisi Coates has a new book out entitled, “We Were in Power for Eight Years”. He sat down with Ezra Klein from Vox where he discusses his career, how he views journalism in Obama vs. Trump eras, and the scenarios in which we overcome the racial wealth gap. I’ve read two of Ta-Nehisi Coates’ pieces, My President is Black and The First White President. I am absolutely a fan of his writing and I look forward to reading some of his earlier work.

// The Teachable Machine by Google

This is a neat website that perfectly demonstrates machine learning. Essentially, you teach the machine to recognize three things, faces, actions, or movements and you assign each of those things to an output. The output is either a funny cat gif, sound, or speech. After you train it, re-enacting your thing or action will evoke that output. It’s no flying car, but it’s pretty cool to play with.

Teachable Machine

// Gucci Mane “feels like he can’t fail”

His story is interesting because it’s a story of transformation and redemption. He goes to jail in 2014 on a felony gun charge, overweight, and on drugs and leaves in 2016 with a new attitude, in shape, sober, and with a new perspective. He has a new book out, “The Autobiography of Gucci Mane”, so Gucci has been making his rounds in the media. Checkout this 6 part interview with Malcolm Gladwell on YouTube.

/* fini */

A Factoid: The Enforcing-Inheritance-Generic-Thing-in-Kotlin

I learn a Kotlin thing everyday.  Today’s thing, “Enforcing-Inheritance-Generic-Thing-in-Kotlin” (I’m terrible with names and terms, there’s an official term for this that I cannot remember).

I have a function that starts an activity for a result.  I want to limit this function to only be able to start activities extending an abstract class, FooActivity.

In Java:

private void start(Activity activity, Class<? extends FooActivity> cls) {
   // some stuff with intents
}

In Kotlin:

fun start(activity: Activity, cls: Class<out FooActivity>) {
    // some stuff with intents
}

That’s it.  Read more about generics in Kotlin here.