The world first learned of Sophie Zhang in September 2020, when BuzzFeed News obtained and published highlights from an abridged version of her nearly 8,000-word exit memo from Facebook.
Before she was fired, Zhang was officially employed as a low-level data scientist at the company. But she had become consumed by a task she deemed more important: finding and taking down fake accounts and likes that were being used to sway elections globally.
Her memo revealed that she’d identified dozens of countries, including India, Mexico, Afghanistan, and South Korea, where this type of abuse was enabling politicians to mislead the public and gain power. It also revealed how little the company had done to mitigate the problem, despite Zhang’s repeated efforts to bring it to the attention of leadership.
After installing and learning more about the Jupyter Notebook and doing data processing with Python, I think that is the way forward for much of the data analysis I do. Spreadsheets and pivot tables are fine but memorizing a few commands means that I can write code that can be automated and reused unlike things that I do drag and drop in the spreadsheet.
Jupyter is neat because it allows you to edit and execute a few lines of python in your browser, get the results than independently execute additional lines of code. Then display the results as formatted tables, graphs or graphics right in the browser. The more I learn about it, the neater it is.
The more I use Python every day, the better I will get at it and eventually I’ll be able to whip together new analysis without much struggle. So much of Python is optimized towards minimal typing, so it really is the quickest way to process data. And when I’m using Python daily rather than a spreadsheet I’m learning the language and getting better at it.
Some of the ways I think I could use Jupyter:
Processing the dataset I use from time to time to create graphs of the 7 day rolling average of COVID-19 positivity cases
Processing data for graphs from the Energy Information Office or any other agency where i can get a CSV or Excel file to manipulate
Using machine learning looking at weather data over the past 10 or 20 years to make Farmers Almanac style forecasts for fun – here’s your Thanksgiving Weekend forecast in July.
Process election results programmatically without all those hairy excel formulas, turn into maps and graphs
Basically any other project that I can imagine that I would normally do with a spreadsheet but probably could do faster and more repeatly with Python
Learn lots of programming languages – it’s easy and good for your brain! π§
One afternoon a few years back I got a book out of the library and taught myself Python and graphical programming using Qt using the online documentation mostly for writing plugins for my own use in QGIS for map making. Then one day I realized that once you understand the signals and slots of Qt, you can write apps pretty easily on it using C++.
I use Python on and off, although I am lazy and do a lot more PHP than I probably should including PHP on the command line for scripting. Been studying up more though on Python as it is a very compact and powerful language to use. Python doesn’t require a lot of typing. Years ago I used to do a Perl for writing CGI scripts for websites, and lately I’ve been reading up on Perl for remembering the old days.
I sometimes program microprocessors like the Arduino and ESP32 to control the lighting and other purposes in C. Microprocessor programming is fun because every bit of memory is precious, you have think about efficiency constantly and how you allocate memory. Plus you can end up with a lot of odd bugs that are fun to swat because your often are manually allocating memory.
For fun one afternoon a few years back I taught myself x86 Assembler and also the legacy languages FORTRAN and COBOL. While I’m no expert at any of those languages, with the help of the internet for documentation I could write, debug and edit those languages somewhat competently. I kind of like COBOL, it’s kind of hillarious on how you have to tell the computer every step you want it to do in great detail. Kind of like driving a Model T with manual spark retard.
How did I learn so many computer languages? Well I only took Computer Science 1 and a Data Structures class in college. But it turns out that computer programming is a lot like driving a car. You can learn how to drive on a Ford, but you can hop in a Toyota and drive it. When you hop in the Toyota, you’ll have to look around to see where the gear shifter and defroster button is but with a good look and maybe a peek at the owner manual, you’ll be pretty competent driver.
Learning multiple programming languages isn’t hard once you get the basic concepts of computer programming. π₯οΈ
After all, you are doing essentially the same thing regardless of the language – it will be compiled into Assembler and ultimately opcodes for the processor to consume. So just like an automobile at a fundamental level they all work basically the same way.
In addition to those principles, Levy also described more specific hacker ethics and beliefs in chapter 2, The Hacker Ethic:[11] The ethics he described in chapter 2 are:
1. "Access to computers—and anything which might teach you something about the way the world works—should be unlimited and total. Always yield to the Hands-On Imperative!"
Levy is recounting hackers' abilities to learn and build upon pre-existing ideas and systems. He believes that access gives hackers the opportunity to take things apart, fix, or improve upon them and to learn and understand how they work. This gives them the knowledge to create new and even more interesting things.[12][13] Access aids the expansion of technology.
Linking directly with the principle of access, information needs to be free for hackers to fix, improve, and reinvent systems. A free exchange of information allows for greater overall creativity.[14] In the hacker viewpoint, any system could benefit from an easy flow of information,[15] a concept known as transparency in the social sciences. As Stallman notes, "free" refers to unrestricted access; it does not refer to price.[16]
3. "Mistrust authority—promote decentralization"
The best way to promote the free exchange of information is to have an open system that presents no boundaries between a hacker and a piece of information or an item of equipment that they need in their quest for knowledge, improvement, and time on-line.[15] Hackers believe that bureaucracies, whether corporate, government, or university, are flawed systems.
4. "Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, sex, or position"
Inherent in the hacker ethic is a meritocratic system where superficiality is disregarded in esteem of skill. Levy articulates that criteria such as age, sex, race, position, and qualification are deemed irrelevant within the hacker community.[13] Hacker skill is the ultimate determinant of acceptance. Such a code within the hacker community fosters the advance of hacking and software development. In an example of the hacker ethic of equal opportunity,[17]L Peter Deutsch, a twelve-year-old hacker, was accepted in the TX-0 community, though he was not recognized by non-hacker graduate students.
5. "You can create art and beauty on a computer"
Hackers deeply appreciate innovative techniques which allow programs to perform complicated tasks with few instructions.[18] A program's code was considered to hold a beauty of its own, having been carefully composed and artfully arranged.[19] Learning to create programs which used the least amount of space almost became a game between the early hackers.[13]
6. "Computers can change your life for the better"
Hackers felt that computers had enriched their lives, given their lives focus, and made their lives adventurous. Hackers regarded computers as Aladdin's lamps that they could control.[20] They believed that everyone in society could benefit from experiencing such power and that if everyone could interact with computers in the way that hackers did, then the hacker ethic might spread through society and computers would improve the world.[21] The hackers succeeded in turning dreams of endless possibilities into realities. The hacker's primary object was to teach society that "the world opened up by the computer was a limitless one" (Levy 230:1984)[13]