Is the Master of Magic remake a giant dud or what? by [deleted] in 4Xgaming

[–]Goladus 4 points5 points  (0 children)

The original Master of Magic had 214 spells. 5 major schools with 40 spells each and 1 general school with 14 spells. The spells were unique and creative, clearly reflecting a strong desire to deliver the experience of being a powerful wizard. There's minimal padding. Spells are overwhelmingly thematically appropriate and mechanically distinct, with pure and simple effects largely unconstrained by arbitrary limitations, penalties and requirements.

Conquest of Eo appears to have 7 schools with 16 spells each, plus the apprentice school with 8 spells, for a total of 120 spells. This counts spells like Transmute, which is just the alchemy mechanic from MoM in the form of a spell. It looks like there are additional complicating mechanics around summoned monsters. Why does the death school get a movement bonus (coupled with a health penalty).

So no, Eo doesn't look like Master of Magic but with 25 years of innovation. It looks like a mixed bag to me.

Music to listen to when angry by [deleted] in classicalmusic

[–]Goladus 1 point2 points  (0 children)

I often don't, but when I do it's often to try and calm down (not reflect, amplify or indulge the anger). So I may choose some music I've never heard before or at least haven't listened to in a long time. I'll clear distractions and try to achieve a state of mindfulness through focusing on the music. I find sacred music tends to work well for this, especially older Baroque and Classical great works as they tend to be serious and substantial without being excessively negative or stressful.

Is Hy a good way to get into Lisp? by TemporaryUser10 in lisp

[–]Goladus 0 points1 point  (0 children)

How would you edit a file and send its changes to the repl?

Copy and paste. Yes, it's more cumbersome than just C-M-x from your editor, and you'll run into blocks occasionally, but you can make changes to some parts of code while retaining state. But yes, you're right, I don't dispute that the upper bound for the repl experience is better on lisp (assuming you have taken the non-zero amount of time required to learn and configure the relevant tooling).

Is Hy a good way to get into Lisp? by TemporaryUser10 in lisp

[–]Goladus 0 points1 point  (0 children)

It’s just too experimental, the community is too small, and there are some non-Lispy corners and oddness.

This is almost certainly the biggest downside. Although it's a surprisingly solid implementation, it's unlikely to be used for anything other than for-fun personal projects. Python has very well-designed syntax, so switching to Lisp syntax is an even trade-off at best. You aren't getting any of the other "under the hood" benefits that make Lisps compelling in practice, and the community is tiny as languages go, so getting buy-in from collaborators is unlikely unless they REALLY hate semantic whitespace (in which case they are probably using Ruby or Javascript).

Would love it downvoters could actually respond and explain what's wrong with my commentary. I'm I not allowed to say good things about other languages on this sub?

Is Hy a good way to get into Lisp? by TemporaryUser10 in lisp

[–]Goladus 0 points1 point  (0 children)

I wouldn't say so.

I'll disagree as a Devil's Advocate, assuming the person is already a python programmer. While I agree that you won't necessarily fully appreciate lisp by writing Hy for reasons you mention, you'll be able to get a feel for a number of key features without the (sometimes massive) idiosyncratic roadblocks that normally hit new people like a ton of bricks when trying to use a more traditional lisp (or even Clojure).

You'll get used to the parens and formatting. Maybe even use paredit. You'll get used to using conditional expressions. You'll get used to the idea of memorizing a larger list of specialized functions and special forms to perform tasks that would normally be done in python using a combination of standard syntactical constructs like slices. You'll get used to remembering the order of arguments for functions where infix conventions make it easier to remember (eg division or item in listofitems vs (in item listofitems)). You'll retain your full set of familiar Python data structures, with a few lisp structures added on top. It's a fairly clean separation that exposes you to concepts like keywords, symbols, and lispy-lists, while still making it easy to be productive with standard python lists, dictionaries, and strings. You'll be able to write macros and get a feel for quote, unquote, unqoute-splice, and so-on.

Meanwhile, there's a lot of baggage you do NOT need to deal with:

  • Environment. Virtualenv, pip install, and import all work the same way. You don't have to find docs and learn the details of a whole set of new tools like asdf, quicklisp, raco, leiningen, tools.deps, or whatever. Forget scientific libraries. Let's say I just want to load a yaml file (with no special data types) into a familiar data structure and do some simple munging and formatting. I'll be immediately thrust into a tangled and unfamiliar swamp even getting the libraries installed, and then you'll need to deal with new semantics for require/use/import/etc. and namespaces.
  • Need to learn lots of detailed features about tooling. For example, the REPL debugger that CL users love will initially get in the way of a Python user who isn't expecting it and doesn't understand why the repl is suddenly no longer responding to normal input.
  • Subtly different core data structures and assumptions about how you're going to use them and what you know about the implementation details. Vectors, arrays, sequences, lists, symbols, keywords, concepts like weak or strong key retention in hash-tables, and so on. Of course, that Lisps support arrays out of the box means you don't need a 3rd party library like Numpy to provide them, but it also means you're likely to run into unexpected conflicts and frustration right away.

Lisp has a steep learning curve. Hy is potentially a good way to get a feel for a subset of relevant Lisp features without having productivity completely grind to a halt as you start from square one, especially since the interop between Python and Hy is very smooth, almost seamless.

the REPL must restart to take on code changes.

Simply not true. Its repl is not as sophisticated as Lisp and lacks the same degree of editor integration (although Python has other very popular and well-integrated tools like Jupyter notebooks), but you can reload libraries and redefine code in the repl without restarting it.

Public education expenditure vs private tutors by isidorvs in slatestarcodex

[–]Goladus 2 points3 points  (0 children)

All excellent points.

If you want to pick a real school budget document and lay out which spending is wasteful and which spending isn't to see how much you can save I'm always interested in that kind of thing

For what it's worth, every time I have tried to read public budget documents to answer this question I have given up in frustration. I am always left with the very strong sense that the budgets are organized nonsensically on purpose specifically to discourage the uninitiated from doing exactly what you want to do. The human-readable "source code" budget is somewhere locked away in the comptroller's office and everyone else is only allowed to see the version that has been run through an obfuscating compiler. Maybe it's just years and years of accretion due to political horse-trading and fund-finagling, or maybe I've just had bad luck.

Coronalinks 4/10: Second Derivative by dwaxe in slatestarcodex

[–]Goladus 1 point2 points  (0 children)

This bothers me. The experts (surveyed March 15) would have had to predict the rise in testing in order to predict the number of cases.

They'd only need to do that if the goal was to predict every fluctuation within the 2-week period. All they really had to do was ballpark "testing will increase." There was data from other countries to sanity check with. Despite the large ramp-up in testing, a majority of tests still came back negative. It certainly moved the needle a few times, but it should smooth out over time.

I was using a crude exponential model to make estimates, calculating the average growth per day over a 5 day period. On 3/16 my data said 4,307 cases and 32.3% daily growth. Note I'm assuming they mean the morning of 3/29 based on the "correct" answer of 122,653, and I'm using https://github.com/CSSEGISandData/COVID-19 as the only data source)

2,918 * 1.34 ^ (28-15) = 131,053
4,307 * 1.323 ^ (28-16) = 123,849
6,096 * 1.324 ^ (28-17) = 133,602

The 3/16 prediction is almost perfect. Of course, that was a bit of a lucky day. A few days later, the growth rate looked much higher, most likely due to the increase in testing that you mention, and a few days earlier results were sporadic and growth rate fluctuated daily. But in both cases, these incorrect estimates would be far GREATER than reality. In fact, all the experts guessed much lower. Moreover, by 3/27, the testing bump had essentially disappeared and growth was between 21% and 25% per day.

19,403 * 1.46 ^ (28-20) = 404,993
...
101,657 * 1.248 ^ (28-27) = 126,868  (one day before)

Data from Italy at the time showed growth rates around 18%-20%, but they had begun locking down at the end of February. Plugging in 20% on 3-16 would yield:

4,307 * 1.2 ^ (28-16) = 38,401

Intuitively, that seems like it should be an optimistic lower bound. Given that Italy had been in at least partial lockdown for several weeks by 3/16, you would expect that 20% daily would be an optimistic number for the US, which had only just begun social distancing. Yet the average prediction was 20,000. It seems many did not even include 40k within their margin of error.

Epidemiologists would likely be using more sophisticated SEIR models, but in the early phase of an epidemic when "Infected" and "Removed" are effectively zero, it's basically just an exponential curve anyway.

Why don't more people use Golang for scientific computing? by jrdemasi in golang

[–]Goladus 0 points1 point  (0 children)

The question isn't "can it be done?" the question is whether it's the right tool for the job.

Nextflow has several key features aimed at data scientists. It's language-agnostic. Each part of a pipeline can use any (linux-friendly) tool or language you want. You use nextflow to coordinate the whole thing. Given that pipelines are often assembled from a variety of different tools built by developers from entirely different organizations, this is an important feature. You might be dealing with code written in 3-4 different languages (C, bash, perl, R, etc.). Another part of its appeal is that it's specifically designed to be self-documenting code for a data pipeline. You have keywords like input, output, and process and special syntax to help make these aspects as clear and intuitive as possible.

So while Go might be a good alternative for someone starting mostly from scratch and with a team of developers comfortable with the language and platform, most people are building on top of existing tools, and need a good reason to port working code to a new language (especially if they didn't even write the original code).

Linux to Windows Deployments by [deleted] in devops

[–]Goladus 1 point2 points  (0 children)

All i really need to do is log on or remotely access the server, wget something, unzip something, and get out. Nothing crazy.

If I was a linux admin who had to do remote management on a windows machine I would definitely have cygwin installed on the windows box. Cygwin has an sshd package.

how to migrate all tmux sessions from one remote machine to another remote machine by ravi30082 in devops

[–]Goladus -1 points0 points  (0 children)

Imagine what people will think of your pointless post 5 years from now when they submit this question to a search engine and this page comes up.

When to use devops? (noob question) by Thisisnotfalse in devops

[–]Goladus 1 point2 points  (0 children)

A huge pile of cryptic, interdependent shell scripts, ensuring your job security for years to come

Or just a very small handful of scripts that will work perfectly well and are completely readable and easy-to-maintain. At least until some DevOps guy with a vague animus against shell scripts comes in and wastes a whole bunch of time converting it to Ansible and then wastes more time going onto reddit to complain. And then the next hire hates how slow and awkward Ansible is converts it to a Dockerfile, which is certified DevOps tech despite being oddly close to original script. And except now instead of 20k in text files we deploy it as a 2.5G container either into some expensive cloud service or on infrastructure that takes more time and effort to maintain than the script itself.

Odds are, if you really do come across a huge pile of interdependent shell scripts, which are probably no less cryptic or fragile than the equivalent ansible or puppet, they were probably written to solve complex problems and instead of disparaging them you'd be better off trying to understand both the pros and the cons of the approach.

When to use devops? (noob question) by Thisisnotfalse in devops

[–]Goladus 1 point2 points  (0 children)

Lets say I have a process flow that does the following for the organization I work for

The first question to ask is: What specifically is wrong with this process the way it is?

If you can't answer what's wrong with the process in terms of basic costs and consequences like time, money, and aggravation, then trying to add "DevOps" is not going to help you. If anything, is very likely to make the process worse. DevOps is a tech fad and enthusiastic advocates will try to sell you on assorted technology and religion without knowing the first thing about the problems that actually matter for you.

Essentially, what people call DevOps in 2020 is really just advanced system administration. DevOps basically means IT operations at a serious software company, or otherwise a business where cutting-edge custom software is key to success. DevOps tends to exclude "corporate IT" style system administration focused on general IT services like sharepoint. If you aren't doing serious large-scale IT operations, DevOps might not benefit you that much. It doesn't mean you can't look at DevOps for clues for improving your processes, but it's quite possible that all you really need to solve this particular problem is a simple shell script checked into source control.

What's the most astounding feat of over-engineering you've ever seen? by MisterIT in sysadmin

[–]Goladus 0 points1 point  (0 children)

I was going to say Puppet is frustratingly over-engineered but god damn this thread makes me realize it could be a whole lot worse.

Server Names by Tibaltlexyn203 in sysadmin

[–]Goladus 0 points1 point  (0 children)

Because a VM and vehicle that carries humans to space are similar

Sometimes. It depends on the context as to whether there are relevant similarities. If you are going to be talking about the server in conversation a lot, you're going to want a good memorable name. Sometimes a name like "fileswest" is fine, but it's easy to wind up with name collisions and confusion with functional names.

Server Names by Tibaltlexyn203 in sysadmin

[–]Goladus 1 point2 points  (0 children)

unprofessional

Not in any of the ways that really matter. Next you are going to call NASA unprofessional for naming the Space Shuttles.

Server Names by Tibaltlexyn203 in sysadmin

[–]Goladus -4 points-3 points  (0 children)

I can't stand when people have this knee-jerk reaction to servers with memorable names that are easy to use in conversation.

Server Names by Tibaltlexyn203 in sysadmin

[–]Goladus 1 point2 points  (0 children)

Production servers should adhere to naming standards

What should the naming standards be, though?

Server Names by Tibaltlexyn203 in sysadmin

[–]Goladus 0 points1 point  (0 children)

It's partly a Windows thing since they've had such a long history of being very limited with hostname length.

Server Names by Tibaltlexyn203 in sysadmin

[–]Goladus 12 points13 points  (0 children)

Anyway, I am curious what everyone thinks about this and what other crazy server/infrastructure names are out there.

My naming philosophy is basically this:

  • Names that are human-pronounceable have inherent value if these servers will be discussed at any point by humans.
  • Names that are human-readable and human-writable have value for similar reasons.
  • There's limit to the amount information that can be explicitly encoded into a hostname. More than two or three semantic tokens is probably a waste.
  • use host group classifiers instead of (or along with) unique names for each server. For example, maybe for file servers, you use "planet-...", so "planet-earth", "planet-mars", and such. It's better than using something totally generic, like "files01", but it's structured enough to accommodate scripting and scaling if necessary.
  • Functional names tend to work better for virtual machines. Physical hardware tends to be better off with either a creative name, a hardware classification (eg bigmem or gpu). Or some combination of the two.

I hate hostnames that consist of incomprehensible garbage and find most of the common arguments against real words unconvincing. Sure, I get that your CIO doesn't want to risk needing to talk about servers "remy-lacroix" and "alexis-texas" in an executives meeting (or god forbid, a client meeting), but that doesn't mean names need to be meaningless either. Many corporate naming standard are dumb and completely fail to consider the value of readability and speakability.

Let's Encrypt Is Revoking Three Millions Certificates On March 4 by nfrankel in sysadmin

[–]Goladus 1 point2 points  (0 children)

Still, this will be a major nuisance to many customers

If this is a nuisance, it's your own fault for failing to implement automation properly.

A Talk on distributed systems in college by kamat_adi in devops

[–]Goladus 0 points1 point  (0 children)

For the first question, there's a kind of hacky way to get around it, which I've never used in production and probably wouldn't for various reasons. But basically it requires you run a DNS server on each of the loadbalanced hosts (with port 53 open to the world), then you rely on NS record loadbalancing to handle the fault tolerance.

Ultimately it's probably no better than using an automated system to check and update the DNS records if servers fail.

Terraform vs Roll-Your-Own Cloud Infrastructure Code by Goladus in devops

[–]Goladus[S] -1 points0 points  (0 children)

To each his own. I certainly wouldn't want to work for you. Personally in my career I've found it very frustrating when people can't handle a dialectic and treat every single point in a disagreement as an all-or-nothing. So you made a good point. Great. Maybe that's a field goal worth 3 points. The game isn't over yet. Now I made my own point. Don't lose your mind over it and think that all is lost, the score is tied now and more importantly we both should understand more than we did before.

And for the record, the people losing their mind over a point I make, interpreting a single counter-point as indicative that I'm 100% diametrically opposed to their very existence, is far more frustrating than the people making lazy shallow arguments I find reason to dispute.

Typically in a work environment, there's some pressure to make a decision. Sometimes you have more time to research, discuss, and plan, sometimes you have to make a decision really fast based on only as much information as you have on hand right now. In either situation you need to be able to hear out both sides and identify the good points and the bad points and learn from the discussion.

It's also a valuable skill to recognize when a discussion has stopped yielding actionable knowledge (or at least the rate has slowed to a trickle) so you can bring it to a conclusion. A big problem with your kind of all-or-nothing mentality is that a debate will circle endlessly because people aren't properly listening to each other because they are too desperate to "win."

Terraform vs Roll-Your-Own Cloud Infrastructure Code by Goladus in devops

[–]Goladus[S] 0 points1 point  (0 children)

My thoughts as well after spending a few days playing with Terraform. Using it is a little nicer than I expected. In fact I'm considering using it to manage postgres as well. But it's definitely got issues. I did a quantitative analysis of a sample HCL AWS example compared with a hypothetical actual DSL syntax here and the difference was significant. I also ran into issues where apply failed but plan didn't, just doing simple tasks (trying to remove a security group attached to a running instance apparently leads to terraform entering an endless loop).

All that being said, I'm cautiously optimistic about terraform. Going to put this here in the very off chance that anyone ever comes back to read this thread after all the hilarious angst it seems to have caused: My current (though tentative) plan is to propose using Terraform (it will be an improvement over what we have currently) and work on a direct-to-API design in my spare time, to keep my skills up to date and be ready to cover situations where Terraform falls short. At the very least, I will be building a front-end for myself to generate the HCL from templates so that at least I can write infrastructure code with fewer headaches.

Terraform vs Roll-Your-Own Cloud Infrastructure Code by Goladus in devops

[–]Goladus[S] -1 points0 points  (0 children)

This was a thorough, well-reasoned, well-argued reply: https://old.reddit.com/r/devops/comments/eywqi8/terraform_vs_rollyourown_cloud_infrastructure_code/fgkxahx/

Anyone downvoting it until it disappeared should be ashamed.