suyjuris | 4 years ago | on: More than 1M fewer students are in college, the lowest numbers in 50 years
suyjuris's comments
suyjuris | 4 years ago | on: Mullvad: Diskless infrastructure using stboot in beta
suyjuris | 4 years ago | on: Charge, Baby, Charge for Parking
It would allow the developer to choose the appropriate amount of parking spaces for their building, instead of being forced to follow the requirements resulting from central planning by the city administrators.
They cannot simply rely on on-street parking instead, since (per the second bullet point) the prices would for those parking spaces would increase dramatically, providing the developer with a competitive disadvantage.
I could see this working out perfectly fine for businesses who compete for customers, as those will likely be very sensitive to the cost of a parking space. However, for buildings where people do not have a choice of whether to travel there, this seems more problematic. Imagine e.g. a courthouse – missing parking spaces would just impose a negative externality on the unfortunate “customers”. I guess the question is in which category office buildings and residential areas fall into, arguments could be made either way.
suyjuris | 4 years ago | on: A common mistake involving wildcards and the find command (2020)
puts {Hello!}
# or even
{puts} {Hello!}
? But I do not see an advantage either way. I think you attribute to quoting issues that are caused by type-punning. The quoting rules of Tcl are simple. I mostly encountered problems when people do things like # x is not actually a list, but may appear that way if a and b are nice
set x "$a $b"
# Proper way:
set x [list $a $b]
But I fail to see how quoting could address or alleviate this.suyjuris | 4 years ago | on: An Epic future for SPJ
~0.31% according to the Steam hardware survey [1] If you are including 8-core machines with simultaneous multithreading (so 16 logical cores, 8 physical), then you would be at ~17%, however.
suyjuris | 4 years ago | on: OpenAI Sold its Soul for $1B
suyjuris | 4 years ago | on: First batch of student’s washing machines shipped to Iraq
> Although the physical labor of laundry was lessened somewhat by the machines, the actual time housewives allocated to their family laundry increased.
(This is claimed to be the result of housewives being responsible for the entirety of laundry, instead of employing help, however.)
suyjuris | 4 years ago | on: Space Station incident demands independent investigation
suyjuris | 4 years ago | on: Striking new Beeping Busy Beaver champion
If you consider a finite-state automaton, you might define a similar problem: What is the longest word that automaton accepts, provided that it accepts only finitely many words? This you can answer directly: it is n-1, where n is the number of states. And finite-state automata are not very powerful.
Here is another system: I give you a list of transactions, where each transaction consists of multiple instructions of the form “add/remove x units from account y”. You may only execute a transaction if no account goes negative. Here, a Busy Beaver-type question would be “What is the longest sequence of transactions that move one unit from the first account to the second, where all the others must start and end empty?” This is actually a somewhat powerful system, and here the answer grows at the rate of the Ackermann function – extremely fast (and, if you have never heard of it, probably faster than any computable function you can think of), but still computable. [1]
Recently we have shown a Busy Beaver-type result for a certain distributed computation model, where many (very limited) participants interact to compute things as a group. There the question was about counting how large the group is, but each participant can only count to n. So given a protocol that reliably recognises certain group sizes, what is the largest size it accepts? (Again, provided that it accepts only finitely many.) We proved that it is at most 2^(2^(2^n)) – so in some sense that model is very weak, but nevertheless much more powerful that finite state automata.
[1] I did not think to carefully about this, some details might be wrong.
suyjuris | 4 years ago | on: Our lawsuit against ChessBase
suyjuris | 4 years ago | on: Tencent deploys facial recognition to detect minors gaming at night
This information is outdated and misleading. Since 2020, licenses for public broadcast are only required for broadcasts which, averaged over six months, exceed 20000 viewers and have significant importance for the formation of public and private opinion [1].
Prior to this change, some streamers had indeed been forced to acquire such a license (although there were more conditions than just regularly having 500 viewers). Also, licenses for streamers actually cost around 1000-2500 €, instead of the 10000 € you claimed. In addition, there was an exception for cases where this would be an undue hardship [2]. The regulator basically agreed that this was pretty silly, but that it planned to enforce the law as written (as is its job), until it was changed (which it has been).
[1] (german) § 54 MStV, https://www.gesetze-bayern.de/Content/Document/MStV-54
[2] (german) https://t3n.de/news/livestreams-rundfunklizenz-1175321/
suyjuris | 4 years ago | on: Linux with “memory folios”: a 7% performance boost when compiling the kernel
suyjuris | 4 years ago | on: Remove left turns for less dangerous city traffic
One issue is, as you say, that shortest-path routing can overload individual roads. There is an interesting and related concept in theoretical CS: oblivious routing. Instead of solving “What is the shortest route to my target?” locally, you try to determine a selection of routes that, if followed by every participant, minimise congestion (the maximum amount of vehicles over any road, relative to its capacity). Surprisingly, it is always possible to determine such routes, even if they are not allowed to depend on traffic conditions (how many vehicles try to go from A to B, how many from C to D, etc) ― this is what the “oblivious” refers to.
Of course, that does not solve the problem of route complexity.
suyjuris | 5 years ago | on: Unsplash is being acquired by Getty Images
A (somewhat dated) example at [1] (german).
[1] https://www.lawblog.de/archives/2009/11/17/abmahnanwalte-ver...
suyjuris | 5 years ago | on: UK 'Right to repair' law to come in this summer
suyjuris | 5 years ago | on: UK 'Right to repair' law to come in this summer
suyjuris | 5 years ago | on: UK 'Right to repair' law to come in this summer
suyjuris | 5 years ago | on: Thoughts Around Naming Variables
(A brief aside on what I mean by inherent complexity: solving some partial differential equation or writing 'I must turn in my homework' one hundred times might both take the same amount of time, but the latter is less complex. Similarly, Dijkstra's algorithm to compute shortest paths might be easier to implement than a form to add a new employee to the database, but it is nevertheless more complex.)
When writing a program, one usually has to juggle lots of balls that move in simple ways. You can make a career out of writing programs that convert data between various mostly equivalent representations (table in database, packet on the network, Python object in RAM, pixels on the screen). I do not want to claim that this is easy: the details of what data ends up where, of how to deal with the not-quite-equivalent representations, of who is able to see what, etc., matter. But solving complex problems of which code to write does not mean that the code solves complex problems.
So it makes sense to use longer names. You have only little attention to spare on individual pieces and s.add(b) is more difficult to understand than submit_form.add(submit_button). Here, adding things to some container is a well-understood concept, you simply want to know which container and which things.
Conversely, when your problems have a high inherent complexity then you end up with a small number of balls that behave in a complicated manner. (If you have many complicated balls, the problem is too difficult to solve.) So you split up your explanation: first you describe the balls, then you assume that the reader knows what they are and give a succinct explanation of their interactions. (Flipping the order sometimes makes sense too.) It is clear that ax²+bx+c = (ax+b)x+c is easier to understand than equals(add(add(mul(parameter_quadratic, mul(variable, variable)), mul(parameter_linear, variable)), parameter_constant), add(mul(add(mul(parameter_quadratic, variable), parameter_linear), variable), parameter_constant)). The latter is simply too noisy, it does not allocate the symbols in an efficient manner to convey its meaning.
However, writing ax²+bx+c assumes that the reader is familiar with the meanings of a,b,c,x and with addition, multiplication and exponentiation. You probably are (else this would have made a poor example), but even if you were not, it would still make sense to explain these concepts first, to enable the succinct explanation.
suyjuris | 5 years ago | on: Functorio
suyjuris | 5 years ago | on: Functorio
There is also the Gesamtschule, which combines the three tracks (Hauptschule, Realschule, Gymnasium) into a single school.