skysight-inc/HackerNews huggingface dataset:
Here's some simple practical tips you can use to prevent this and other Oh Shit Moments(tm):

- Unless you have full time DBAs, do use a managed db like RDS, so you don't have to worry about whether you've setup the backups correctly. Saving a few bucks here is incredibly shortsighted, your database is probably the most valuable asset you have. RDS allows point-in-time restore of your DB instance to any second during your retention period, up to the last five minutes. That will make you sleep better at night.

- Separate your prod and dev AWS accounts entirely. It doesn't cost you anything (in fact, you get 2x the AWS free tier benefit, score!), and it's also a big help in monitoring your cloud spend later on. Everyone, including the junior dev, should have full access to the dev environment. Fewer people should have prod access (everything devs may need for day-to-day work like logs should be streamed to some other accessible system, like Splunk or Loggly). Assuming a prod context should always require an additional step for those with access, and the separate AWS account provides that bit of friction.

- The prod RDS security group should only allow traffic from white listed security groups also in the prod environment. For those really requiring a connection to the prod DB, it is therefore always a two-step process: local -> prod host -> prod db. But carefully consider why are you even doing this in the first place? If you find yourself doing this often, perhaps you need more internal tooling (like an admin interface, again behind a whitelisting SG).

- Use a discovery service for the prod resources. One of the simplest methods is just to setup a Route 53 Private Hosted Zone in the prod account, which takes about a minute. Create an alias entry like "db.prod.private" pointing to the RDS and use that in all configurations. Except for the Route 53 record, the actual address for your DB should not appear anywhere. Even if everything else goes sideways, you've assumed a prod context locally by mistake and you run some tool that is pointed to the prod config, the address doesn't resolve in a local context.
Are we sure its the USA some of the language used in the poor guy's post on redit implies a non native speaker I am guessing India which is known for treating employees "horrifically".
...and for a small handful to move to Ubuntu. Vista was the last Windows I used. Plenty others went OSX. The public sector stayed on XP.
Lucky junior dev! He has figured out a bad company to work for in his first work day. Good luck finding a new job!
Side question, as a dev with zero previous ops experience, now the solo techie for a small company and learning ops on the fly, we're obviously in the situation where "all devs have direct, easy access to prod", since I'm the only dev. What steps should I take before bringing on a junior dev?
Why do you buy tokens at the arcade?
brain was bypassed long time ago...
It's funny, but when people talk about CEO compensation, they refer to the value created by the company, yet when they talk about e.g. office cleaner compensation, they talk about the market price of labour.

The salary of a CEO could do with more reference to the cost of the next available substitute, rather than how much the CEO changes the stock price. That would require changes in how CEOs are compensated, but it could also change short-term perspectives. Options would seem to motivate CEOs to think with a longer term, but in fact they align with shareholder interests, which are more often short term with investment decisions reviewed quarterly. And shareholder interests are not the most important reasons why we, as a society, have companies.
>One solution is to use VOIP instead of cellulare voice comm's and a VPN. That way the ability of a fake tower will be reduced in what it can glean from you.

That helps with the eavesdropping problem, but doesnt help with the imsi catching part.
Ninjatrader
It'd be nice if "TLA+" were defined somewhere early in this piece.
As you indicate, the renaming may be a net loss for those who have to do he renaming, but, from Apple's viewpoint, is more than offset by the expected gains when writing new code by both current developers (where the gain may be small, zero, or even negative because they already are familiar with the API) and developers yet to start using Swift.

So, the question should be whether Apple should have prioritized new users of the language over their existing language users. I think they made the right call, more so because they pre-announced it. Not only didn't they claim the language was frozen, the specifically said it would see changes.
It reeked of CYA to me- if something bad happened, well, you clicked OK in the dialog. Shouldn'ta done that. Except you couldn't do anything at the time without those dialogs constantly coming up.
I stopped believing reddit posts a long time ago
It reminds me of this: https://github.com/mattdiamond/fuckitjs
I'd suggest that you remove all the name-calling and sarcasm because it seriously undermines what seems to be a good argument. It's only programming syntax, there's no reason to get personal.
Yup.

See, this is why I struggle to recommend this book.

> In some ways, the Command pattern is a way of emulating closures in languages that don’t have them.

...

> For me, the usefulness of the Command pattern really shows how effective the functional paradigm is for many problems.

So close, yet so far. The Command pattern is a brilliantly useful pattern, and I've seen it used to great effect; but it's not remotely about callbacks or closures; thats just an implementation detail.

You're completely right, do you really need a JumpCommand, a JumpCommandHandler, and an UndoJumpCommand (?? What does that even mean?) when you could just have one class, called Player, with a method `jump`?

No. You don't.

It's a daft example.

The Command pattern is about have composable atomic state transactions over your game state.

For example, if you have a SpawnMonsterCommand, and a ApplyStatusEffectCommand, you can create a hoard of raging monsters using a SpawnHoardCommand; that calls the SpawnMonsterCommand 100x and then calls ApplyStatusEffectCommand to the monsters.

Then you can have a SpawnBattleCommand that calls SpawnHoardCommand twice, with a different faction, or say, three times with 3 different factions to generate a battle.

Or perhaps you're using an async resolution model, where you're commands are like MoveToLocationCommand, and AttackTargetCommand; and you need to start the MoveToLocationCommand then wait for it to finish before you run the AttackTargetCommand.

Abstracting the functionality into small chunks lets you easily build complex chained behaviour, and you can even test it easily because each 'Command' is an isolated and known behaviour.

...but yeah, totally. A flurry of classes. Don't use it if you don't get some value from it.

Having an undoable 'JumpCommand' falls firmly into the 'dont bother' category.
And make each one CEO.
It's not that no one has any idea how to avoid choosing building blocks but that it's a tradeoff. You're building in an inductive bias when you choose the building blocks for your deep RL or evolutionary algorithm optimizer. Nothing stops you from choosing building blocks which are Turing-complete - Schmidhuber, for example, experimented with evolving Brainfuck programs back in the '90s or '00s, I forget which. Turing-complete, can solve anything you set it eventually, as minimal and general as it gets. The problem is that there's so little inductive bias there that it takes forever to get anywhere useful, you have to evolve far too many samples. With the evolving CNNs, researchers are already joking about how you would need a nuclear reactor to reproduce some of these papers which train thousands of CNNs, so the inductive bias is really important in keeping samples down to a feasible level. As computing power gets cheaper and the AutoML-like tools learn more domain knowledge, it'll be possible to let them work on a more raw level than architecture design choices like 'convolution or fully-connected layer? ReLu or PRelu?'
I thought thats what they were already doing?

>Partnering with ride-sharing drivers allowed us to collect millions of measurements across both cities.
Are you suggesting I overthought it?
You are right to certain degree and I also am not a fan of VCs trying to get in on the bandwagon somehow, but he does have a point.

Most "normal people" don't buy as much as VCs do, so they don't have as much stake. VCs are in it purely to make money so they end up investing much more than ordinary joe, which is why they will be there to help you out when things are not going well, exactly because they need their return on investment.

Another thing is, VCs have reputation to manage, so they just can't move on easily without feeling even a little bit of guilt. On the other hand, users don't care about you and they don't (and shouldn't) feel a bit of guilt moving on from you.

Overall, as long as they have large stake in your tokens VCs will help you, not because they are saints, but because they can't lose money and reputation
To answer my own question, the problem seems to be that once it finds an enclosing circle it loses gradient on x and y so it doesn't know where to reposition the circle. Not sure how to fix this.
They don't rely on technical analysis. They are arbitrage trading across different markets, where there's zero chance of losing money if you're fast enough and doing it right. That's why HFT is so popular, if you're doing it right you can't lose money.
My comment I left there:

Lots of folks here are saying they should have fired the CTO or the DBA or the person who wrote the doc instead of the new dev. Let me offer a counter point. Not that it will happen here ;)

They should have run a post mortem. The idea behind it should be to understand the processes that led to a situation where this incident could happen. Gather stories, understand how things came to be.

With this information, folks can then address the issues. Maybe it shows that there is a serially incompetent individual who needs to be let go. Or maybe it shows a house of cards with each card placement making sense at the time and it is time for new, better processes and an audit of other systems.

The point being is that this is a massive learning opportunity for all those involved. The dev should not have been fired. The CTO should not have lost his shit. The DB should have regularly tested back ups. Permissions and access needs to be updated. Docs should be updated to not have sensitive information. The dev does need to contact the company to arrange surrender of the laptop. The dev should document everything just in case. The dev should have a beer with friends and relax for the weekend and get back on the job hunt next week. Later, laugh and tell of the time you destroyed prod on your first day (and what you learned from it).
My Improbable Graduation: From a Tiny Village in Ghana to Johns Hopkins
Asi64 – A Racket-based 6502 assembler
Lagging behind, but I'm sure they will.

Here, banks used to implement proprietary measures. ActiveX or Java applets, custom encrypting HTTP proxies, nonsensical password policies and all other sorts of weirdness you can imagine. It's still not unheard of (because those institutions are extremely inert), but I'm absolutely sure the norm is shifting. Saner stuff gets adopted.

And until they don't - YMMV, but that's okay with me. Personally, I'm better with them lagging behind, rather than leading us to the "trusted" computing future. Security is important and nice, but not when it has adverse side effects.
Start by learning OpenGL. Two resources I would start with are the OpenGL Red Book [1] and NeHe [2] tutorials.

The OpenGL Red Book has everything a beginner needs to know about OpenGL and NeHe is a bunch of tutorials that you can study to learn more about the concepts. If you search around the web you should be able to find NeHe examples in your programming language of preference.

[1] http://www.opengl-redbook.com/

[2]http://nehe.gamedev.net/
> C style for loops come pretty early in most programming tutorials

Meh. Many languages don't have c-style for loops in the first place. Neither Python nor Ruby do for instance. I don't think Rust ever had them either[0].

[0] https://www.reddit.com/r/rust/comments/2957fg/can_i_request_...
Clojure Linear Algebra Refresher (1) – Vector Spaces
Random thought: I wonder if Microsoft has ever considered adding a built-in test suite to consumer Windows to flog drivers.

I could see the benefits of being able to throw up a "Warning: {Device name} is not behaving properly and may cause system instability" prompt. As opposed to just screwing up behavior at user interaction time without a clear "That piece of hardware you bought / company you bought it from is a POS" message.
a 1000 word article doesn't quite strike me as casual.
It's not about having access to the production database. It's about having an example script that can do catastrophic things and having the production username and password in the example docs.

I also had production access to everything from day one. The first thing I did was setup the hosts files in the various dev servers - including my own computer so I couldn't access the databases from them.

I have to remote into another computer to access them.
Boutique medical services offer wealthy Americans the chance to cut the line
I've always felt overuse of sarcasm to be indication of a juvenile mind that thinks it's more clever than it actually is. Occasional use is fine.
I violently agree with you.

All I'm saying is that there are times when it is vital to get things right. Maybe it's only once every 5 or 10 years in a DR scenario, but those times do exist. Definitely this company is incompetent, deserves to go out of business, and the developer did himself a favor by not working there long-term, although the mechanism wasn't ideal.

I'm just saying that the blame is about 99.9% with the company, and 0.1% for the developer - there is still a lesson here for the developer - i.e., take care when executing instructions, and don't rely on other people to have gotten everything right and to have made it impossible for you to mess up. I don't see it as 100% and 0%, and arguing that the developer is 0% responsible denies them a learning opportunity.
* Local env setup docs should have no production creds in it (EDIT: production creds should always be encrypted at rest)

* new dev should only have full access to local and dev envs, no write access to prod

* you're backing up all of your databases, right? Nightly is mandatory, hourly is better

* if you don't have a DBA, use RDS

That'll prevent the majority of weapons grade mistakes.

Source: 15 years in ops
> Go runtime can decide to spawn a new thread from the locked one

That sounds like an implementation issue, why not assume the documentation is the intended behavior and this side effect is a bug? I'd support a CL to fix this behavior or add a block-clone-from-here runtime call (but the end result of that is you want the thread to exit when you're done with it, and not to go back into the pool... which is also new behavior). At the minimum, this behavior of new threads spawning from LockOSThread could be documented.

As a workaround, what about CGO -> pthreads -> spawn a control thread free from the Go scheduler -> call back into Golang to run a control loop function? You can do this in init() to ensure it has full control over itself. Or will Golang call clone() from unscheduled code?
Download Autodesk 3ds Max 2018 Crack Full Version
The key is to find a way to contractualize third party help into a smart contract so some of the tokens are released if the advice truly helps in the long run.
The browser on flagship Symbian devices was pretty good.
Always wondered why i couldn't get it outside Texas. The burgers and ice cream are great.
You have a point. I was thinking of the 'speed' of the iCloud web interface and the 'speed' of the iOS update check (it currently takes about 4 seconds for my iPad to report that its software is up to date. When there are updates, that can easily become 10 seconds. I find that slow for what could be a single http request that returns one or two _bytes_)
Heh, or take a Netflix Chaos Monkey approach and have a new employee attempt to take down the whole system on their first day and fire any engineers who built whatever the new employee is actually able to break!
Do as best as you can to "find compute room" (laptop, desktop, spare servers on rack that arent being used, .. cloud) , and make a Stage.

Make changes to Stage after doing a "Change Management" process (effectively, document every change you plan to do, so that a average person typing them out would succeed). Test these changes. It's nicer if you have a test suite, but you won't at first.

Once testing is done and considered good, then make changes in accordance to the CM on prod. Make sure everything has a back-out procedure, even if it is "Drive to get backups, and restore". But most of these should be, "Copy config to /root/configs/$service/$date , then proceed to edit the live config". Backing out would entail in restoring the backed-up config.

________________________

Edit: As an addendum, many places too small usually have insufficient, non-existent, or schrodinger-backups. Having a healthy living stage environment does 2 things:

1. You can stage changes so you don't get caught with your pants down on prod, and

2. It is a hot-swap for prod in the case Prod catches fire.

In all likelihood, "All" of prod wouldn't DIAF, but maybe a machine that houses the DB has power issues with their PSU's and fries the motherboard. You at least have a hot machine, even if it's stale data from yesterday's imported snapshot.
As I said in another post, the least you can do is modify your hosts file so you can't access the production database from your local computer. Then you have to login to a remote computer to access production.
I'm super glad to hear someone in higher education say this. Is it a common opinion in admissions circles these days?

(By the by, I'm a huge fan of your work. It inspired me to get into compression several years ago and it's been a passion project ever since.)
I'm reminded of an exchange in Neuromancer: "Nobody trusts those fuckers, you know that. Every AI ever built has an electromagnetic shotgun wired to its forehead."

Chatbots and board games are toys. When it's time for AI to be more serious, people will probably be a bit more careful with how they are used. I'm even inclined to wonder if the question of "will the humans try to deactivate me for doing this?" might be a close enough analog for "is this in line with human morals?".
Could you share a link to the projector you bought? And what do you project it onto?
That's why I mentioned "startups who have already raised money via ICOs," many of whom certainly are in a position to pay.

I don't think there's any particular reason to think the founders are idiots, though of course some will be. But it will also be up to the consultants to demonstrate their value.
FEEDING ALL MY ANIMALS (100+ PETS) [INSANE]
I think the author misses the fact that Swift wasn't truly 'done' when it was introduced, (and still isn't). Objective-C had some 30+ years to evolve, but Swift can't have 3?

I get that if you're shipping Swift in production you want to refactor as little as possible, but it is pretty hard to come up with the ideal design straight out of the gate. Swift can stop evolving, but it will be THEN when it loses the reason to exist. If Swift is just going to be ObjC with a nicer syntax, (or the features that YOU personally find desirable), then why bother with it at all? Swift is trying to get its design right and that takes time, at the same time I wouldn't want to be stuck with a poorly designed language for the next 30 years, so it's worth the current turbulence for me.

(Rust was the same way 2011-2015 to a MUCH bigger degree and it did in fact eventually stabilize as promised.)

If it's that much of a problem, ObjC isn't going anywhere, it's your choice.

EDIT: Fixed a typo.
Why pulling out of Paris Accord damages America’s economic future
VCs drag you into mainstream orthodoxies in order to be able to do an IPO on Wall Street. With ICOs around, who would put up with VCs again?
One way is just to pay consultants at least partially with the project tokens, which should go up in value if the project succeeds.
Don't want to sound harsh, but Wozniak is still alive. Literally alive.

There are different definitions of success. Living and being able to do intelectual work until 95 (if this is what you want to do) could be perfectly one of them.
> There's no Scotsman in these arguments.

Yes there is: "ohh, gcc, that's not a true optimizing compiler". And of course so far refusing to show any other real compiler that does all these magical things.

> He runs compiler infrastructure at Google

Yes, I know. So? Argument from perceived authority much?

> says he's seen production compilers doing stuff you say is impossible.

Actually, I haven't seen him claim that. He has claimed all sorts of things that he has seen optimizing compilers do that have very, very tangential (at best) similarities with some of the keywords I mentioned, and has claimed that as a rebuttal to my claim, which it is not.

> You say, essentially, he's lying.

If he actually claims what you say he's claiming then: yes, he's lying. I haven't seen him claim that, but I have seen him use these fairly random claims to rebut some very specific claims I have made.

And of course, if there are compilers that do exactly what I've described (transform the two systems I mentioned in the way I described), then I am absolutely happy to eat crow. While anything is possible, in theory, this would be so far beyond the current state of the art, that we could probably retire >90% of programmers right now (assuming that a small fraction of that capability were also applied to other fields of programming). And seeing the consumer-visible parts of Google, those compilers would be so super-secret that they are not used on any of that stuff.

The code is out there, somebody run it through the compiler and prove what a dunce I am.

Put up or shut up.

Still waiting.
It's pretty close to "horrible" though.
Seriously. The CTO in question is the incompetent one. S/he failed:

- Access control 101. Seriously, this is pure incompetence. It is the equivalent of having the power cord to the Big Important Money Making Machine snaking across the office and under desks. If you can't be arsed to ensure that even basic measures are taken to avoid accidents, acting surprised when they happen is even more stupid.

- Sensible onboarding documentation. Why would prod access information be stuck in the "read this first" doc?

- Management 101. You just hired a green dev just out of college who has no idea how things are supposed to work. You just fired him in an incredibly nasty way for making an entirely predictable mistake that came about because of your lack of diligence at your job (see above).

Also, I have no idea what your culture looks like, but you just told all your reports that honest mistakes can be fatal and their manager's judgement resembles that of a petulant 14 year-old.

- Corporate Communications 101. Hindsight and all that, but it seems inevitable that this would lead to a social media trash fire. Congrats on embarrassing yourself and your company in an impressive way. On the bright side, this will last for about 15 minutes and then maybe three people will remember. Hopefully the folks at your next gig won't be among them.

My take away is that anyone involved in this might want to start polishing their resumes. The poor kid and the CTO for obvious reasons, and the rest of the devs, because good lord, that company sounds doomed.
I'm with you. I see few advantages of switching my large existing codebase to swift, only disadvantages. Maybe in a few years the balance will change.