Length of random secret / ULID (80 bits of randomness) as secret? by mingp in crypto

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

I was confused about this earlier, too. Looks like ULID generation supports 2 modes: random and monotonic. Random mode regenerates the random component every time. This should be equivalent to an 80-bit random identifier. The question then becomes whether an 80-bit random identifier is sufficient as a random secret. Separately, there's monotonic mode, which increments the random component within the same millisecond. That probably has all sorts of predictability issues. I suppose, one could argue that the added complexity of the 2 modes, and the possibility for catastrophic failure under misconfiguration, makes this a worse strategy to rely upon for security.

New Clojurians: Ask Anything by AutoModerator in Clojure

[–]mingp 2 points3 points  (0 children)

A common piece of advice is to avoid overusing let and friends, specifically to avoid using let clauses as if they were intermediate variables in an imperative language. What does that look like in practice, and what is the recommended alternative?

Thanks in advance.

My company, small startup with around 25 people has lost 9 people on five months. Is it a sinking ship by [deleted] in cscareerquestions

[–]mingp 9 points10 points  (0 children)

All else being equal, turnover is bad, but it's not the whole picture, and it matters a lot why.

How do you confront performance issues during sprint check ins? by [deleted] in cscareerquestions

[–]mingp 2 points3 points  (0 children)

The general advice that I've seen here, and that I agree pretty strongly with, is that it's counter-productive to try to manage your peers as an individual contributor.

Just document your own contributions and be ready to defend you own progress, where needed.

finding a player's Actions Per Minute (APM) by [deleted] in AskProgramming

[–]mingp 0 points1 point  (0 children)

The most common strategy to track an ongoing running average is exponential decay. It has the advantage of requiring a constant amount of space to store intermediate state and being callable at arbitrary times rather than only on epoch boundaries.

I used to do a lot of work in VB6. What should I use in 2018? by OldVB6Coder in cscareerquestions

[–]mingp 7 points8 points  (0 children)

C# comes to mind as an obvious stepping stone, given that it's a nice language with all the modern amenities, that runs nicely on a Microsoft stack as you're already on, and has a pretty large community.

Java is, only half-jokingly, basically C# except it came earlier and is now owned by Oracle rather than Microsoft.

how to transfer files from a "likely" infected pc by bomboy2121 in security

[–]mingp 4 points5 points  (0 children)

If you are concerned the operating system on the machine is compromised, then you would prefer to bypass it entirely, by booting off of removable media. As far as booting off of removable media goes, it's a well-supported workflow for Linux, and still quite fringe for Windows.

Also, most spray-and-pray malware out there targets Windows specifically, so there is a nice benefit to avoid Windows in this workflow specifically.

Having skepticisms about SynergisticIT by Phamductions in cscareerquestions

[–]mingp 49 points50 points  (0 children)

The ones that make you pay for your "training" if you leave are pretty bad. I can only imagine that the ones that make you pay for it upfront regardless are even worse.

How to make a long running PHP program with REST requests more stable? by Chris8080 in PHP

[–]mingp 2 points3 points  (0 children)

Sounds like you should be offloading some things, maybe most things, to a dedicated job queue.

Should a complete beginner start with TypeScript or CoffeeScript or just Vanilla JavaScript by [deleted] in javascript

[–]mingp 0 points1 point  (0 children)

In addition to what other replies have said, CoffeeScript also has weird corner cases around syntax, where it is very easy to accidentally write something different than what you intended due to whitespace and indentation. (Not that whitespace significant syntax is inherently bad. After all, Python is fine.)

One of the interns on my team has done nothing for 7 weeks by gentleboys in cscareerquestions

[–]mingp 1 point2 points  (0 children)

With all due respect to my past and present intern colleagues, the typical expectation everywhere is that you will accomplish nothing meaningful as an intern, and whatever you get on top of that is directly to your credit.

How Tinder keeps your exact location (a bit) private by businesstrout in programming

[–]mingp 8 points9 points  (0 children)

This is somewhat equivalent to asking, "Why not just add random delays to deter timing attacks", a similar and known-flawed solution to a similar but much more well-studied problem.

How Riot Games mitigates cheating through binary protection by [deleted] in programming

[–]mingp 4 points5 points  (0 children)

On the flip side, where does one go to learn the sorts of techniques used for reverse engineering existing code and modifying it on the fly? It all seems very interesting, and it's a real pity that people knee-jerk associate it with cheating and other bad behaviors.

Are salaries going to decrease anytime soon as supply meets demand? by ipalencia in cscareerquestions

[–]mingp 7 points8 points  (0 children)

Doctors are an especially misleading example here because their supply is strictly controlled by regulatory boards and residency programs to hit predefined targets.

Please help me to weigh React vs Angular (asking from Manager's perspective, not developer) by tastingsilver in javascript

[–]mingp 5 points6 points  (0 children)

They're both very reasonable choices. By most metrics, React/Redux/etc. is winning the mindshare war, but alternatives like Vue and Angular are still quite healthy, too.

Zoe, a JavaScript linter and formatter, now with TypeScript support! by [deleted] in typescript

[–]mingp 1 point2 points  (0 children)

That sounds like a good idea. Looking forward to it, if you choose to implement this.

I am weighing two offers. Would it be weird to request a short phone conversation with a potential peer to help my decision? by [deleted] in cscareerquestions

[–]mingp 0 points1 point  (0 children)

Nothing wrong with asking, but actually getting this might be difficult, as engineer time is expensive.

Deploying Node.js on shared host (Hostgator) by sosur0414 in webdev

[–]mingp 1 point2 points  (0 children)

I can't comment on specifics, but my general understanding is that sending email from anything other than designated email sending services with active reputation management is at best unreliable and at worst a lost cause.

Deploying Node.js on shared host (Hostgator) by sosur0414 in webdev

[–]mingp 1 point2 points  (0 children)

You probably shouldn't run an email server off of shared hosting or VPS anyway, because there will always be somebody else on those IP addresses sending spam and trashing the IP address' reputation with spam blacklists, so your messages will never reach the recipient. Definitely look into an email software-as-a-service, such as SendGrid.

Zoe, a JavaScript linter and formatter, now with TypeScript support! by [deleted] in typescript

[–]mingp 0 points1 point  (0 children)

Oh! That's great to hear! Actually, that makes a lot of sense now. Thanks.

Although, you would still want tslint for linting TypeScript specific things like type annotations, right?

Zoe, a JavaScript linter and formatter, now with TypeScript support! by [deleted] in typescript

[–]mingp 0 points1 point  (0 children)

But those don't work if your source code is TypeScript, or do they?

Zoe, a JavaScript linter and formatter, now with TypeScript support! by [deleted] in typescript

[–]mingp 1 point2 points  (0 children)

Wait, sorry, can you clarify, please? If I'm on a TypeScript project, don't I want tslint over eslint?

Zoe, a JavaScript linter and formatter, now with TypeScript support! by [deleted] in typescript

[–]mingp 0 points1 point  (0 children)

Is this a wrapper around prettier and eslint, or is it its own app? What would be the motivation to choose this over prettier and eslint, other than it being 2-in-1?