Monday, March 21, 2016

CUNY's Women in Technology Initiative...

We all hope that on some rare occasion we will be fortunate enough to work on something more meaningful, more impactful, than the day-to-day routine aspects of our jobs.  This past January I was fortunate enough to be given the opportunity to co-teach a pilot course with Professor Zachary Dodds that aimed to tackle the challenge of why there are so few female students in Computer Science, and then set out to do something about it.  This effort has now been officially launched as the Women in Technology and Entrepreneurship in New York Initiative.

Please check out the good work the initiative is pursuing at the link above, and check out the video embedded here - you'll not only watch video testimonials from our former students (who represent themselves extremely well, if I may say so), but you'll also catch a fleeting glimpse of yours truly giving a lecture.

It is an honor to be part of this program, and it's the type of thing that I'm grateful that my kids will one day see that I was a part of.


Thursday, March 17, 2016

Who is Anonymous Fighting For in Their War Against Donald Trump?

The hacker group Anonymous has declared "total war" on Donald Trump, urging hackers to expose personal information about him and his staff and to disable various websites associated with him including,,,, etc.

Even though #OpTrump mentions April 1st as its target date, the collective has already posted unverified personal information about the candidate and his staff, including social security numbers.  Trump was also previously targeted by Anonymous last December following his comments about banning Muslims from entering the country.

The reason for the "call-to-arms", as stated in the Anonymous YouTube video, is that “Your inconsistent and hateful campaign has not only shocked the United States of America, you have shocked the entire planet with your appalling actions and ideals".

This action shouldn't surprise anyone because this is basically what Anonymous does.  What's interesting is that this time, rather than go after targets affiliated with the Ku Klux Klan or ISIS, or even Mastercard or Visa, as they have done in the past, they're going after an American presidential candidate who's currently in the process of winning the nomination based on the popular vote.

You don't need to be a Trump supporter to take issue with the fact that, whereas in the past Anonymous has chosen institutional targets like multi-national corporations or terrorist organizations, here they are going after an individual who is being democratically elected.  Rather than being an agent of The People, as they like to perceive themselves, they are actually fighting against what The People are voting for (on the Republican side).

Is Anonymous exposing itself as ideologically liberal, or perhaps even outright partisan?  If they seek to fight and resist the valid results of democratic elections then Anonymous is now showing itself to be anti-democratic in addition to anti-capitalist and anti-free speech (at least, anti-any-speech-that-they-disagree-with).  If that's the case, can someone please explain who exactly they are fighting for?


Thursday, March 03, 2016

The Python Elections Library and Other Programming Tools for Election Analysis...

During this campaign season, many political scientists are conducting research experiments that use online datasets as their primary units of analysis.  For instance, in this blog's previous post, real-time Twitter data was collected and then analyzed to get a sense of popular sentiment about Chris Christie's endorsement of Donald Trump.  Scraping data from social media sites is an increasingly common focus of statistical research.

To this end, there are numerous programming tools available to political scientists.  Let me start by saying that, personally, my language of choice for tasks of this sort has long been Java, although this year I've migrated over to Python.  Meanwhile, Web APIs have been around for years so that researchers can easily access the data on Twitter, Facebook, Google, Reddit, etc. Also, for this 2016 election cycle there are a few notable new additions to our collective toolkit that, combined with some useful already-existing tools, really improve a researcher's capabilities.  Here's what I'm using...

  • Tweepy - still the best Python-based library for accessing the Twitter API.
  • Alchemy and NLTK - the most common APIs for language sentiment analysis.
  • The Python Elections Library - a pay-for library that provides access to all federal, state, and local election results, as well as delegate estimates for the presidential nomination contests.
  • Elex - the Associated Press' brand new command-line tool for accessing current election data.
  • The Watson Emotion Analysis API - IBM's brand new API that was just released in Beta. Whereas Alchemy analyzes language sentiment as positive, negative, or neutral, the Emotion Analysis API detects joy, fear, anger, sadness, and disgust, and rates them by order of magnitude.
  • Matplotlib - the common Python library for visualizing the data with charts and graphs (although I'm currently searching for a better visualization tool, if you have recommendations).

These tools are a great starting point for collecting and analyzing social media data.  Now if only you didn't have to pay a fee for some of these large datasets, or for a sentiment analyses of them, then we'd really be cooking.