Language Selection

English French German Italian Portuguese Spanish

Reviews Guy

Syndicate content
My Thoughts on Science, Technology, Freedom, and Stuff
Updated: 8 hours 47 min ago

Classical Phase Space Densities for One or a Few Particles

Wednesday 1st of July 2020 06:18:00 PM
This is the first time in several years that I've done a post about physics that didn't have to do with my research. This came about from thinking about applying techniques in statistical physics to game theory; although I still have a lot more to learn about that and need to do more to flesh out those ideas, it occurred to me in the process that I never had such a good intuition for the phase space density in classical mechanics, and notes that I've found online focus almost exclusively on the phase space density of a large number of particles in an explicitly statistical treatment. I intend to use this post to shed light on why this may be the case, help build intuition for how things like the Liouville equation work for simple systems of one or a few particles, and reinforce the notion that there is no classical analogue to the phenomenon of a multi-particle entangled quantum state yielding a mixed single-particle state under a partial trace. Follow the jump to see more.

Read more »

Book Review: "The Social Contract" by Jean-Jacques Rousseau

Tuesday 23rd of June 2020 07:42:00 PM
Now that I have been able to properly enjoy the summer, having essentially finished my PhD work, I've recently read the book The Social Contract by Jean-Jacques Rousseau (translated from French to English by Willmoore Kendall); this was a book that I got from a friend who moved away a few years ago, but never got around to reading until now. This is one of the classic texts of political philosophy from the European Enlightenment era, and came before many of the seminal events of world history, including the American & French Revolutions and the European colonization & subsequent independence of much of Asia, Africa, Australia, and South America. The author provides his own refutations of many of the arguments for hereditary monarchy and instead forcefully argues for a legislature, separate from the executive, that is conducted as a direct democracy, even while acknowledging that different circumstances for different states may suggest different forms & sizes for the executive. The book includes many examples from ancient & medieval European history, and while much of the discussion of cultures outside of Europe seems antiquated or racist to modern eyes, I imagine it was typical of its time & place.

It was really interesting to see such broad imagination of democratic & republican societies before they came to be in Europe & North America. However, the book itself is not an easy read: it basically feels like a polemical political treatise written in the terse style of the textbooks by the physicists Landau & Lifshitz, in which every definition and proposition must be carefully parsed & understood individually and also as part of a broader whole. The arguments are built up slowly, so patience is required too; frequently, I found myself wondering how the author could fail to acknowledge certain seemingly-elementary rebuttals to his arguments, only to find such acknowledgments after several pages. Originally, I thought the translator's introduction about how to read the book were basically excuses meant to cover for bad writing, but as I read through more of the book, I came to appreciate it more.

There are a few comments that I have about the contents. The first is that it isn't clear to me how citizens, in the author's view, are supposed to resume the exercise of natural rights, which have been pooled into the sovereign & redistributed as civil rights, when the social contract is thought to be violated, especially as it also isn't clear to me how to distinguish a violation of the social contract from an individual's unhappiness with the general will going against that individual's private will. Related to this, it isn't clear to me how a citizen, acting to debate & make laws for the sovereign to further the general will, is supposed to act completely separately, as a sort of Jekyll/Hyde situation, from that person's thoughts as an individual, because the execution of laws furthering the general will may affect that individual and others perhaps not particularly naming those people but naming a certain group affiliation, and it becomes hard then to define the general will in that context. The second is that so many of the author's arguments regarding the formation of a new state seem to depend on their being a full vacuum of power beforehand, with only the barest acknowledgment that new societies & nations don't emerge from a vacuum; to be fair, many of the great upheavals that figure prominently in my imagination regarding this point came after the publication of this book, but enough had happened which the author mentioned that this sparing treatment of the issue seems odd. I also have some more minor comments, namely that I'm not sure if the author's specific claims about the intertwined nature of politics & religion in ancient societies would be validated by modern scholarship, and the author's claims about there being no "true" Christian soldiers seems to rely too much on a no-true-Scotsman fallacy.

I would certainly need to reread this book carefully to better appreciate it, and perhaps that could address at least some of my comments. In any case, I'd only recommend this book to people with a serious deeply-rooted interest in political philosophy, who can appreciate the book and the context of its time & place, as opposed to novices like myself.

Reflection: My Graduate Experiences at Princeton University

Thursday 28th of May 2020 08:26:00 PM
Please note: there will be mentions of the current global public health crisis in this post. I have no background in medicine, public health, or closely-related fields. Please consult public health agencies and other governmental agencies for guidance regarding responses to this crisis, and please consult actual professionals as appropriate for individual problems in this context.

This post is the third in a series of three posts about the end of my time as a PhD student in Princeton University (in this post henceforth referred to simply as "the university" when there is no ambiguity). As a write this, I have successfully defended my PhD thesis! Furthermore, I will officially be graduating this coming weekend. This post follows the first, which was meant as a reflection of the events of this public health crisis that led to my premature physical departure from the university campus combined with a paean to the friends I made over the course of 6 years in the PhD program, and the second, which explained the experiences & thought processes that led to my decision to change careers from research in physics to transportation policy. This post is a broader reflection of my time and experiences at the university, with all of its ups and downs, and a message of gratitude toward the people in the university and elsewhere who meant so much to me during my time in the program; a lot of it is taken from the acknowledgments in my thesis, though for privacy reasons, I won't be giving explicit names. Additionally, there will undoubtedly be many comparisons over the course of this post to my undergraduate experiences at MIT, for which I wrote a post around the time of graduation 6 years ago. Follow the jump to see more.

Read more »

Reflection: Starting a Shift to a New Career in Transportation Policy

Tuesday 28th of April 2020 06:42:00 PM
This post is the second in a series of three posts about the end of my time as a PhD student in Princeton University (in this post henceforth referred to simply as "the university"). As a write this, I am still technically a PhD student enrolled full-time in the university, working on topics in nanophotonics & fluctuational electromagnetics. Next fall (assuming the current public health crisis abates to an extent that it is safe for me to do so — please note that I am not a public health expert or epidemiologist, so I am not making predictions in this regard), however, I will start a postdoctoral research position in the University of California Davis analyzing transportation policy, with a particular eye toward the effects of such current & future policies on the mobility and resulting socioeconomic opportunities for those who have been marginalized by current transportation systems, including people who are poor or have disabilities (like myself). This is a fairly drastic, and arguably surprising, change of career; I have told many friends and relatives about this, but not all of them, so I'd like to use this space to explain my thought process over the years leading up to this decision. Follow the jump to see more.

Read more »

Reflection: A Week of Downward-Spiraling Public Health News Culminating in Unexpected Adjustments

Tuesday 17th of March 2020 09:10:00 PM
Please note: this is about the current widespread disease outbreak that is dominating the news. I will not mention the name of this disease or other common words used to describe its spread, because for good reason, popular search engines are cracking down on articles and videos other than those from official public health agencies and related well-established organizations to stop the spread of misinformation. I have no background in epidemiology or public health. This post is merely my musings about the last week, and the implications for my near-future plans. Please consult public health agencies and other governmental agencies for guidance regarding responses to this crisis.

This post is the first in a series of three posts about the end of my time as a PhD student in Princeton University (in this post henceforth referred to simply as "the university"). As a write this, I am still technically a PhD student enrolled full-time in the university. The second and third posts will be somewhat more traditional reflections for the end of my time, but this first one has been precipitated by the current public health crisis. Follow the jump to see more; it is effectively a chronological history of the developments of this crisis from my very narrow perspective, and my own (in hindsight, arguably delusional) reactions to these developments.

Read more »

More in Tux Machines

Programming Leftovers

  • DevOps Tools: Why We Don't Need More CI/CD Suites
  • How to install the Go language on Linux

    Go is one programming language that's on the rise. In fact, according to Popularity of Programming Languages, Go is at No. 14 and steadily climbing up the ranks. Go is used specifically for distributed systems and highly-scalable network servers and has replaced C++ and Java in Google's software stack. Chances are, you'll be using Go sometime soon. For those who develop on Linux, you can't just install it from the standard repositories. So how do you install this popular programming language on the open source operating system? Fear not, I'm going to show you.

  • What if? Revision control systems did not have merge

    A fun design exercise is to take an established system or process and introduce some major change into it, such as adding a completely new constraint. Then take this new state of things, run with it and see what happens. In this case let's see how one might design a revision control system where merging is prohibited.

  • What you need to know about hash functions

    There is a tool in the security practitioner's repertoire that's helpful for everyone to understand, regardless of what they do with computers: cryptographic hash functions. That may sound mysterious, technical, and maybe even boring, but I have a concise explanation of what hashes are and why they matter to you. A cryptographic hash function, such as SHA-256 or MD5, takes as input a set of binary data (typically as bytes) and gives output that is hopefully unique for each set of possible inputs. The length of the output—"the hash"—for any particular hash function is typically the same for any pattern of inputs (for SHA-256, it is 32 bytes or 256 bits—the clue's in the name). The important thing is this: It should be computationally implausible (cryptographers hate the word impossible) to work backward from the output hash to the input. This is why they are sometimes referred to as one-way hash functions. But what are hash functions used for? And why is the property of being unique so important?

  • GStreamer 1.17.2 unstable development release

    The GStreamer team is pleased to announce the second development release in the unstable 1.17 release series. The unstable 1.17 release series adds new features on top of the current stable 1.16 series and is part of the API and ABI-stable 1.x release series of the GStreamer multimedia framework. The unstable 1.17 release series is for testing and development purposes in the lead-up to the stable 1.18 series which is scheduled for release in a few weeks time. Any newly-added API can still change until that point, although it is rare for that to happen. Full release notes will be provided in the near future, highlighting all the new features, bugfixes, performance optimizations and other important changes. The autotools build has been dropped entirely for this release, so it's finally all Meson from here on.

  • Qt Design Studio - Sketch Bridge Tutorial Part 1

    Welcome to this Qt Design Studio Sketch Bridge Tutorial, to follow along with this you will need the commercial Qt Design Studio 1.5 Package and Sketch Bridge, macOS and Sketch installed (I'm using 66.1). With this tutorial I want to show you how to build up a sketch project that creates a clean export and import into Qt Design Studio (which i will refer to as qds for the rest of the tutorial), uses symbols and instances for proper componentization and goes back and forth from Sketch to qds in iterative loops building up a more complex scene from simple building blocks. I'll also cover some of the most common issues i come across from other users and the tips and tricks I've developed while working with the Bridge Plugin. I think it's important before we start to clarify that although Sketch allows designers to achieve their design concepts in a flexible and open ended manner, in order to have a pixel perfect design built around developer friendly components in qds, it is very important to structure and prepare your project in a certain manner, and although that is not overly complex to learn it does take some time and knowledge to do it well. My hope is this tutorial will provide you with the necessary experience to bring your designs much closer to this point. With this caveat out the way let's dive right in and start designing. [...] Now we have the default background state for the button let’s create the other two states we want to use for this tutorial, a hover and pressed state. We can do this by duplicating our original rectangle, renaming the layers and then putting them side by side for now so we can see the design changes in parallel, to make this a bit easier we can drag the symbol width out so we can fit our buttons side by side, we will be resizing this after we are done with the design.

  • Excellent Free Tutorials to Learn Solidity

    Solidity is an object-oriented, high-level language for implementing smart contracts. Solidity lets you program on Ethereum, a blockchain-based virtual machine that allows the creation and execution of smart contracts, without requiring centralized or trusted parties. Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features. With Solidity you can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets. Solidity was influenced by C++, Python and JavaScript. Like objects in OOP, each contract contains state variables, functions, and common data types. Contract-specific features include modifier (guard) clauses, event notifiers for listeners, and custom global variables.

Linux kernel coders propose inclusive terminology coding guidelines, note: 'Arguments about why people should not be offended do not scale'

In the light of the 2020 "global reckoning on race relations" the Linux kernel developers have stepped up with proposed new inclusive terminology guidelines for their coding community. The proposal came from Intel principal engineer Dan Williams and won support from other Linux maintainers including Chris Mason and Greg Kroah-Hartman. Words to be avoided include "slave", with suggested substitutions such as secondary, subordinate, replica or follower, and "blacklist", for which the replacements could be blocklist or denylist. The proposal has allowed for exceptions when maintaining a userspace API or when updating a code for a specification that mandates those terms. The existing Linux kernel coding style, described here, and has made no mention of inclusive language. The proposal is to add a new document, to be called Linux kernel inclusive technology, which will give the rationale for the changes. Referencing the fact that "the African slave trade was a brutal system of human misery deployed at global scale," the document has acknowledged that "word choice decisions in a modern software project does next to nothing to compensate for that legacy." Read more

Games: SpringRTS, OneShot and OpenXR

  • Playing SpringRTS games on Linux gets easier with Flatpak

    SpringRTS, the free and open source game engine for playing various real-time strategy games is now even easier to get running on Linux. If you've never heard of SpringRTS: it originally started to bring the classic Total Annihilation into proper 3D and since has expanded over years to become a full game engine with all sorts of games made for it. The developers recently announced a new official Flatpak package up on Flathub, enabling users across many different Linux distributions to easily grab the official SpringLobby and keep it nicely up to date. SpringLobby is the official UI for playing online and offline, plus it has a built-in feature to download missing content while trying to play with others.

  • Unique puzzle-adventure 'OneShot' now has a Linux build on itch

    If you've been itching to play the surreal puzzle adventure OneShot since it arrived on itch.io, we've got good news for you. While OneShot is not exactly a new game being originally released in 2016, it only gained Linux support last year in April 2019. Back in March 2020, the developer then went further and released it onto game store itch.io but it was missing the Linux build. It became part of the massive itch.io charity bundle that happened recently, so I've no doubt plenty of you who picked it up didn't even realise you owned it. Thankfully, on June 19 the developer added the standalone Linux build too so you can go ahead and play it on Linux.

  • Khronos Group open sources the OpenXR Conformance Test Suite for VR & AR

    In another important step forwards for free and open standards, plus the future of Virtual Reality and Augmented Reality, the Khronos Group have open sourced their OpenXR testing suite. What is OpenXR? It's an open standard for Augmented Reality (AR) and Virtual Reality (VR), collectively known as XR. It's picking up wide industry adoption, and hopefully means developers won't have to repeatedly rewrite code as they can support a single standard across platforms—something vitally important for the future of XR. It's gotten to the point where even Valve have decided to go all-in with OpenXR in their SteamVR.

  • OpenXR Conformance Tests Open-Sourced

    The Khronos Group today continued with their relatively recent trend of the past few years of open-sourcing their conformance tests. The OpenXR conformance tests are now open-source. The Conformance Test Suite for this industry-standard for AR/VR is now available as open-source under an Apache 2.0 license. This makes it easier for those developing OpenXR implementations to test against this publicly available set of tests, including the likes of the open-source Monado OpenXR runtime.

Raspberry Pi 4, now running your favorite distribution!

With lots of help (say, all of the heavy lifting) from the Debian Raspberry Pi Maintainer Team, we have finally managed to provide support for auto-building and serving bootable minimal Debian images for the Raspberry Pi 4 family of single-board, cheap, small, hacker-friendly computers! The Raspberry Pi 4 was released close to a year ago, and is a very major bump in the Raspberry lineup; it took us this long because we needed to wait until all of the relevant bits entered Debian (mostly the kernel bits). The images are shipping a kernel from our Unstable branch (currently, 5.7.0-2), and are less tested and more likely to break than our regular, clean-Stable images. Nevertheless, we do expect them to be useful for many hackers –and even end-users– throughout the world. The images we are generating are very minimal, they carry basically a minimal Debian install. Once downloaded, of course, you can install whatever your heart desires (because… Face it, if your heart desires it, it must free and of high quality. It must already be in Debian!) Read more