Language Selection

English French German Italian Portuguese Spanish

Reviews Guy

Syndicate content
My Thoughts on Science, Technology, Freedom, and Stuff
Updated: 1 week 2 days ago

Book Review: "The Evolution of Cooperation" by Robert Axelrod

Monday 7th of January 2019 09:44:00 PM
I've recently read the book The Evolution of Cooperation by Robert Axelrod. (Note: this is somewhat of a technical book, so I will dive right into the review with jargon, with more on this point at the end of the review.) It's a primer on results from that time showing how in an iterated prisoners' dilemma, tit-for-tat strategies are remarkably robust for their combination of simplicity, clarity, tendency toward cooperation and forgiveness, and prompt & effective retaliation when needed, and that such strategies can effectively propagate environments even where other strategies are in place, provided that those who play the tit-for-tat strategies can find & cluster around each other to interact often enough, and provided that the value each player places on the next round compared to a given round in an iterated game is not too small. The author also uses examples from trench warfare in World War I, biological evolution, and international trade policy to illustrate the seeming universality of the principles of the prisoners' dilemma and its iterated variant.

Although this book was written in the 1980s, making it a little dated in terms of the complexity of models that could be tested on computers and the formalism of game theory itself, it was great to see the author anticipate a lot of more recent developments by discussing the importance of clustering, stereotypes, reputation, regulations, et cetera. Additionally, while the author stresses that cooperation can take place even among egotistical (non-altruistic) or antagonistic individuals in the absence of central authority, the author does take care to convey the nuance that this is not always a good thing per se, rather than taking the utopic view of libertarian philosophy; such cooperation is detrimental to the public at large in situations like economic collusion in an oligopoly, while the incentives to cooperate or not change such that government (or other societal) intervention is needed to do things like collect taxes & deter evaders to fund public goods, correct historical (and present) racist marginalization of minority groups, mediating conflicts among heterogeneous populations in large cities, et cetera. It was also cool for me to understand that any iterated game where the players are unsure of when the game will end but others controlling the game know it will end after a finite number of rounds can be rewritten as a similar game where the players believe the repetition will be infinite but with a different discount factor. My only minor complaints are that while the author does acknowledge that changing parameters of a social interaction can change the prisoners' dilemma into a different sort of game altogether, it would have been nice to see a more nuanced discussion of the degree to which the prisoners' dilemma is really a universal feature of human interactions as opposed to being culture-specific, given its seeming universality in other domains, and that the author rather glibly claims that sequential versus simultaneous play by players in each round of an iterated prisoners' dilemma doesn't make much of a difference, which I find suspicious in the absence of further explanation/context in the book itself. Overall, I enjoyed reading this and could read it quickly because of my minor in economics in college & interest in the subjects of economics, game theory, and network science, so it may be appropriate to others with similar interests & backgrounds as myself; it is a fairly technical book, so it may not be appropriate to general readers without this background, while specialists in the fields of evolution, game theory, or complexity science may find this book to be too dated.

Second Laptop: ASUS ZenBook UX331UN

Monday 3rd of December 2018 10:48:00 PM
I was hoping that a post from when I got my first laptop, an ASUS U30JC, would provide a template for how to review my new, second laptop. Sadly, that post was from over 8 years ago, when this blog was just a year old, I had not yet started college, and my writing was much worse. With that in mind, I now provide a review of my new laptop; this review will be by no means a thorough review of hardware, but will be more of a summary of my experiences installing Linux on it and using it for around a month.

A few months ago, I noticed that part of the plastic frame around the screen of my old laptop, along with the hinge below it, had partially detached. A little over a month ago, that detachment had become much more noticeable, to the point of becoming a liability for me: the laptop would no longer close properly (without me risking breaking it altogether), so I would not be able to take it anywhere outside. Up until that point, I had experienced no major hardware issues with that laptop, and only minor issues such as the optical drive occasionally being unresponsive; I could tell that it was struggling a little more with newer software, but on the whole, it was performing quite well, so while I had from time to time over the last couple of years been looking casually into replacing it, this sudden development forced the issue. Given my disability, I wanted something a bit more lightweight, because my old laptop was 4.5 pounds, which was a bit heavy for me; that said, I still wanted something that would offer a reasonable amount of computational power, and while I didn't anticipate requiring a high-performance graphics card for gaming as I am not a serious gamer, I figured there may be some casual games as well as the possibility of getting into GPU programming for my work for which I may want a reasonable dedicated graphics card. Luckily, I found the ASUS ZenBook UX331UN, which seemed on paper to fit the bill on all counts, and I found only a few left in stock online for a reasonable price (just over $1000), so I went ahead and bought one. Follow the jump to read more.

Read more »

My Time at the 2018 SHPE Convention

Tuesday 20th of November 2018 12:51:00 AM
About 4 weeks ago, I got an email asking me to help Princeton University's School of Engineering & Applied Science (SEAS, of which my department, the Department of Electrical Engineering, is a constituent) recruit undergraduate students attending the 2018 Society of Hispanic Professional Engineers (SHPE) Convention to apply for graduate school in SEAS; that convention happened the previous weekend in Cleveland, Ohio. I first thought it was a little strange that I should get this email, given that it was somewhat short notice and especially given that I am not Hispanic nor have I done anything with SHPE in the past. However, after clarifying these details, I decided to go, because I do care about increasing representation of people from marginalized & underrepresented backgrounds in graduate education & academia, especially given my disability (as disability is just another aspect of diversity and too often leads to societal marginalization).
I had a lot of fun at the convention. I went with our SEAS diversity chair, a postdoctoral researcher in my department, and 13 undergraduate students; the former two people and I were there primarily to recruit, while the undergraduate students were there for their own benefit to meet corporate or academic recruiters and learn about (and hopefully secure) positions after graduation. It was definitely nice to see so many enthusiastic undergraduate students from all over the country coming with so many questions about graduate school, and I enjoyed getting to know those in my travel group more, such that I didn't feel left out even though I was essentially the only one among them who hadn't previously done anything with SHPE. There were some events that may have been more relevant to me that I missed due to the travel schedule, and I didn't find that many companies of interest to me when I explored the giant career fair (the focal point of the convention) on my own, but I did take solace in finding a few. Plus, it was nice to get out of Princeton and briefly explore a city that I hadn't really seen before (barring a short trip when I was very young, which I barely remember). Overall, I'm glad I went, and hope to have similar opportunities in the future.

FOLLOW-UP: Sexual Harassment, Power Dynamics, and Institutions

Monday 1st of October 2018 10:05:00 PM
Last year, I wrote a post motivated by a case of sexual harassment and assault committed by a professor in my department against a student in his group. The incidents happened in the spring of last year, but the news about the incidents and the nominal punishment only came at the end of the year. Since then, there have been further developments, as described in this article (by Marcia Brown in The Daily Princetonian), so I am writing this post as a follow-up regarding the specific developments of this case and our department's response, even as my post last year was my attempt at exploring the broader issues at stake. Essentially, Princeton University had reason early this year to investigate further claims of past consensual relationships between that same professor and other direct professional dependents (students & postdoctoral associates), and suspended him for the spring semester and summer as they conducted their investigation. The university concluded the investigation with findings of guilt on his part of having engaged in at least one such consensual relationship, and as that is a violation of university rules, he was fired. Follow the jump to read more about my thoughts regarding this; as mentioned above, compared to my previous post on this subject, this post will have more of my raw emotional reaction to this whole process and to the specifics of this case rather than a more measured take on the broader issues at stake.

Read more »

More in Tux Machines

Android Leftovers

Programming: Flask, Agile, Rust and Python

  • How to build an API for a machine learning model in 5 minutes using Flask
    As a data scientist consultant, I want to make impact with my machine learning models. However, this is easier said than done. When starting a new project, it starts with playing around with the data in a Jupyter notebook. Once you’ve got a full understanding of what data you’re dealing with and have aligned with the client on what steps to take, one of the outcomes can be to create a predictive model. You get excited and go back to your notebook to make the best model possible. The model and the results are presented and everyone is happy. The client wants to run the model in their infrastructure to test if they can really create the expected impact. Also, when people can use the model, you get the input necessary to improve it step by step. But how can we quickly do this, given that the client has some complicated infrastructure that you might not be familiar with?
  • What is Small Scale Scrum?
    Agile is fast becoming a mainstream way industries act, behave, and work as they look to improve efficiency, minimize costs, and empower staff. Most software developers naturally think, act, and work this way, and alignment towards agile software methodologies has gathered pace in recent years. VersionOne’s 2018 State of Agile report shows that scrum and its variants remain the most popular implementation of agile. This is in part due to changes made to the Scrum Guide’s wording in recent years that make it more amenable to non-software industries.
  • This Week in Rust 269
  • Async IO in Python: A Complete Walkthrough
    Async IO is a concurrent programming design that has received dedicated support in Python, evolving rapidly from Python 3.4 through 3.7, and probably beyond. You may be thinking with dread, “Concurrency, parallelism, threading, multiprocessing. That’s a lot to grasp already. Where does async IO fit in?” This tutorial is built to help you answer that question, giving you a firmer grasp of Python’s approach to async IO.

Security: Updates, Reproducible Builds and More

  • Security updates for Wednesday
  • Reproducible Builds: Weekly report #194
    Here’s what happened in the Reproducible Builds effort between Sunday January 6 and Saturday January 12 2019...
  • ES File Explorer Has A Hidden Web Server; Data Of 500 Million Users At Risk
  • The Evil-Twin Framework: A tool for testing WiFi security
    The increasing number of devices that connect over-the-air to the internet over-the-air and the wide availability of WiFi access points provide many opportunities for attackers to exploit users. By tricking users to connect to rogue access points, hackers gain full control over the users' network connection, which allows them to sniff and alter traffic, redirect users to malicious sites, and launch other attacks over the network.. To protect users and teach them to avoid risky online behaviors, security auditors and researchers must evaluate users' security practices and understand the reasons they connect to WiFi access points without being confident they are safe. There are a significant number of tools that can conduct WiFi audits, but no single tool can test the many different attack scenarios and none of the tools integrate well with one another. The Evil-Twin Framework (ETF) aims to fix these problems in the WiFi auditing process by enabling auditors to examine multiple scenarios and integrate multiple tools. This article describes the framework and its functionalities, then provides some examples to show how it can be used.
  • KDE Plasma5 – Jan ’19 release for Slackware
    Here is your monthly refresh for the best Desktop Environment you will find for Linux. I just uploaded “KDE-5_19.01” to the ‘ktown‘ repository. As always, these packages are meant to be installed on a Slackware-current which has had its KDE4 removed first. These packages will not work on Slackware 14.2. It looks like Slackware is not going to be blessed with Plasma5 any time soon, so I will no longer put an artificial limitation on the dependencies I think are required for a solid Plasma5 desktop experience. If Pat ever decides that Plasma5 has a place in the Slackware distro, he will have to make a judgement call on what KDE functionality can stay and what needs to go.

MongoDB "open-source" Server Side Public License rejected

MongoDB is open-source document NoSQL database with a problem. While very popular, cloud companies, such as Amazon Web Services (AWS), IBM Cloud, Scalegrid, and ObjectRocket has profited from it by offering it as a service while MongoDB Inc. hasn't been able to monetize it to the same degree. MongoDB's answer? Relicense the program under its new Server Side Public License (SSPL). Open-source powerhouse Red Hat's reaction? Drop MongoDB from Red Hat Enterprise Linux (RHEL) 8. Red Hat's Technical and Community Outreach Program Manager Tom Callaway explained, in a note stating MongoDB is being removed from Fedora Linux, that "It is the belief of Fedora that the SSPL is intentionally crafted to be aggressively discriminatory towards a specific class of users." Debian Linux had already dropped MongoDB from its distribution. Read more