skysight-inc/HackerNews huggingface dataset:
here's an example: in LA a large number of electrical power poles are at end of life and need replacement. but the city is slowed by union rules in efforts to contract this work out to take advantage of the labor force at large:

One key obstacle, officials say, is the contract with DWP’s largest union, IBEW Local 18. The agreement requires that managers negotiate with the International Brotherhood of Electrical Workers before hiring contractors. Initially, the department is supposed to attempt to fill any internal vacant positions, Howard said. The contract also obligates managers to offer IBEW workers overtime to fill some of the need.

IBEW business manager Brian D’Arcy declined to be interviewed for this story.

from: http://www.dailynews.com/2014/05/06/dwp-lagging-behind-on-re...
I should add that I volunteered to maintain this project, in exchange for free stuff from said organization (not money), before I knew what I was volunteering for (heh, lesson learned).

3 years (of occasional work, maybe 1-4 hours a week) later and I've got a layer on top that can interact with all of the slightly different data models of the four apps and I'm gradually replacing the legacy code with new code and migrating them all back into a single database/app.

Since I'm not working for money, I maintain sole ownership of the code, and I hope to eventually turn it into a passive income source, since it will be useful to other, similar organizations who have it even worse as far as their web applications go.
Find one successful programmer at Google/Apple/Facebook/Cisco/etc. with an IQ of 90. Remembering basic equations, keeping long sequences of functions sorted in your head, even understanding FTP/Git/CL instructions require this level cognitive ability. When you deal with people who can't hang shirts you'll start to understand this. There are just under 200 million Americans with IQs between "can't hang shirts" and "productive programmer."
[video] DxOMark Smartphone Ratings: Explained (MKBHD)
When we talk about "disparate impact" in racism, this is the type of think we're referring to. Yeah, you clean-shaven policy seems fair, but but disproportionally affects a certain segment of the population.

Similarly "you over-qualified for this positions" seems fair, it may even seem like you're doing the applicant a favor, but if it disproportionally affects a particular community, perhaps it's time to reflect on it.

edit: spelling, thx icelander, and damn you autocorrect
fortunately, we live in a dark forest, and need only threaten to shine a light to make the invasion fleet pointless...
Premature abstraction is generally worse than immature abstraction. Write the most straightforward thing you can, and wait for that feeling that it won't work out.

Then, ignore that feeling until you get proof. If you've kept your code simple and clean reacting to a lack of abstraction is relatively easy, at least compared to what digging yourself out of the wrong abstraction is like.
Thinking of video game, I think this is a good analogy: a lot of what you write in the beginning are just tools to your own program.

I'm really talking about the lines in your code, they're structured so well that they will help forge more code in the middle and later parts of your code life.

Like any good video game, if you produce good tools in the beginning to produce levels, modes, multi-player games, etc... then you will produce something great.

If you don't care about what you're writing, then it will become a huge mess and you will either give up or your users will give up. Or once in a life time, the mess you created will still be fun enough that everyone will start playing it, deadmau5 will make a tattoo of it and Microsoft will buy you out and you will have the most expensive house in the world/LA.
What is results in is an organization without a focus on hiring the best people. Do this for long enough and your company will die.
There are plenty of examples of well-managed fisheries but it takes cooperation with/from the fisherman and enforcing the regulations so that fisheries remain sustainable.

Here's a list of North American fisheries, some of which are well managed: http://www.nmfs.noaa.gov/sfa/statusoffisheries/2011/second/Q...
Employers constantly tell me "Your resume looks great, you have a lot of skills, so why is there a gap in those years? What were you doing? Don't you have any experience in technology X or Y? You might get bored here". I never get hired.
I'll confess to only knowing the surface concepts, not the inner technical workings, so I could be wrong here. But this is my understanding.

With a future difficutly bomb in the current implentation, when a proposed hard fork from the ethereum team is approaching you have 3 options:

1) You do nothing (you don't vote - the default) - You'll end up on the chain that eventually get's it's difficulty scaled up and will die. You will not be able to continue running this chain practially after this point.

2) You agree with the fork (a yes vote) - You need to actively install the update.

3) You disagree with the fork (a no vote) - You need to activly install a competing patch to remove the bomb.

(Assuming we are talking about a widely controversial fork, not just something that you alone oppose. I'm not talking about having to create a patch yourself. I'm talking about the situation where there are two competing sides, both creating their own patches. So the difficulty involved with voting either way is exactly the same, just pick a side and installing their update.)

Having the difficulty bomb guarantees that (eventually) all users post fork must have actively made a concious choice one way or the other and upgraded. The users that do nothing are guaranteed to end up on a dead chain, and hence have not cast a vote in either direction.

I'm not sure how that can be interpreted as the do-nothings casting yes votes. Anyone who does nothing becomes no part of any future chain.
I used Google Cloud Dataflow at a previous job. I really did like it and feel like Beam is set up pretty well. Thanks!
Ask HN: How does one become a wizard?
I've come to realize there are two distinct classes of developers. The "mortals" (myself) who spend all day working on applications glueing together libraries and business logic, and then there are the actual smart people (wizards) making all of these tools. How do I evolve into the latter?
I've been interviewing quite a few people for roles and more recently there have been far more who have PhD's in Machine Learning. I point out that role won't use these skills/expert knowledge, and ask what they think. No one ever says that the role is not for them but you know that if there were a machine learning role open they'd jump at it, thereby costing the company money in rehiring. It is a tough decision.
Why should I partake in moral outrage here? What makes this any worse than prefering younger employees at supermarkets because they can be paid less and are easier to control, even though they don't do as much useful work per capita?
Version 1.0.0 was released today, check it out! This is definitely the best hackable browser out there. It combines QtWebEngine and Python, which are incredibly stable yet fast to develop in.

It's a great alternative to what's left of the Firefox genocide of extensions, where only VimFX and Saka Key exist.
I am optimistic that that will turn out to be true. Some are pessimistic about, say, how there are so many different prescription drugs out there that now no doctor can realistically know how all of the interactions work. But, in the case of something like the IBM Watson computer, it (at least theoretically as it is pitched) can examine literally all the combinations and make it work.

My current running theory is that the world will become really great if we can just get to that point before everything explodes.
There's also a lot of us who do enjoy writing kernels in Rust; https://os.phil-opp.com/ goes through the start of ones for x86_64, and really shows off some nice features about Rust.
Do you mean "disparate impact?"
I agree there have to be different skill levels but I think that distinction has to occur within denominations like 'full stack' and 'DevOps'. These labels simply determine what you do not how skilled you're at it.

In my opinion, full stack and DevOps is the normal, sane way of approaching software development. Artificially dividing up roles into labels such as 'front-end', 'back-end', 'database programmer', 'system administrator' only leads to more silos, less collaboration and sometimes even downright hostility between these roles.
Training often requires other resources besides one-way communication. A professor who only lectured and didn't otherwise interact with students would be a bad, ineffective teacher.
Absolutely. When I stumble upon some code in my full time codebase that I find distasteful, my first thought is "what idiot did this". git blame and sure enough, it's me.

Past me has been and always will be an idiot as far as present me is concerned (with some infrequent exceptions).
I'd say one person over ~12 years is basically multiple developers working on it. I look back on code after a couple months and it often feels like someone else wrote it.
>There is nothing that would make it impossible for a job or a school system to be as engaging as a video game

Of course there is: real life has real consequences like failing school or poverty or death if you mess up too badly. Part of the fun of video games is that you can do exciting things without actual risk.
That's a good idea, didn't even think of foam. Thanks!
> Most people likely do not have a spare $1000 laying around.

True enough. Because they spend it, like the person who bought a new car. How much do they spend on beer/cigarettes/weed in a year?

> And knowing what to invest in is another can of worms in itself.

That's true. Apparently investing is more than "doing nothing", and one is taking a risk. But it is within the means of the vast majority of adults.
Four Secrets to Hiring (And Keeping) Great Talent Anywhere
Java 8 Example to filter a Map
> And why it was so hard to see it coming

Bullshit. It was easy to see coming. But we all wear self-serving blinders. Too many profit from the perverse incentives of an ad- and click-driven internet. Too many chase social cred by sharing or agreeing with posts that milk the confirmation bias of the bubble they are written by and for. Too few are willing to pay the costs of pursuing truth, of doing the right thing.
If we're being pedantic, both Sanders and King are senators.
Companies with business models predicated on gouging customers and using high barrier-to-entry as a defence against competition deserve ignominious death.

I can't imagine why people jump ship when presented with better options.
Who decides what is disproportional?

This seems like "equality of outcome"-thinking. Do you believe in Marxism?
Very much disagree. Youtube's suggestion algorithm are improved incredibly over the years. It is increasingly surfacing content that I find interesting. I spend much more time on Youtube nowadays, easy more time than Facebook. I regularly just go to Youtube.com landing page to see what it wants to show me and always shows great quality content. Youtube has done an amazing job with their algorithms, and its showing.

Check out this article: https://www.theverge.com/2017/8/30/16222850/youtube-google-b...
Hey, I took your original comment to take issue with the article [1]. If it wasn't meant that way I am sorry for misreading your question and the tone of my answer. I think I and several other adequately answered your question.

[1] Just to explain how I read it: You draw an incorrect distinction between the authors doing the summarizing and "actual scientists". The review is in fact written by "actual scientists". I consequently interpreted your statement "maybe I don't get it, the scientists all seem very smart", as snarky.
How to Identify a Toxic Culture Before Accepting a Job Offer
Do I have a right not to have competition from other people in my industry underbidding me? My employer's rights are not the issue, it's whether I have a right to restrain others from entering the market through means like trying to oppose training and educational opportunities.
Stop paying $10, and use Robinhood which offers Free Trades.

It has limitations, so you'd want a traditional broker also.
Wow, I didn't know that the company was launched in 2010. 7 years and not a public product? I don't know man. I really hope that it's not just vaporware, would be awesome if they could make something cool.
I'm not sure what you're referring to exactly. I'm not praising Google in this story- I think they're doing this strictly for business reasons- but I still think it's a positive action even if it's motivated by the bottom line. But it's inevitable that them, just like most other giant companies in the black, are going to expand sooner or later, and they will need more workers. So there's not much you can do about that. If it's not Google or Apple hiring, it's going to be Tesla or SpaceX or Kiva or these guys (https://www.nytimes.com/2017/08/16/technology/a-start-up-sug...)

My main point is trying to stem the demand for more workers, whether H1Bs or American citizens, is futile. And even if somehow American firms stopped demanding more tech workers, firms abroad will be as well. So why not try to train more people to become workers?
The Ana white designs are okay for something short term but are prone to problems due to using only pocket screws and construction grade lumber. Veneered particle board would actually outlast from a construction perspective as it's less prone to expansion/contraction.

Table tops will warp if you just screw the boards together and to the base. You can avoid this by gluing the panels then attaching to base with proper fasteners to allow for expansion/contraction.

You can build them properly but this requires using true edge s4s lumber or removing the dimensional round edge with a table saw, band saw or jointer. Your glue up then requires a good number of large clamps. Even out of poplar, adler or basswood which are cheaper hardwoods you'll have $250-$300 in the table. Oak would be $500+.

>there's so much chip-board and laminating that I think there must be more plastic/glue than wood fiber. Just like electronics are being designed with obsolescence as a requirement, maybe more so is the furniture in your house

The problem is people want things cheap and nice looking. You can get a solid white oak table from Crate and Barrel for $1500; which isn't really that bad considering that's around $750 in ready to go s4s lumber from a mail order supplier. It's a lot cheaper to do as Ikea did and have a particle core with a 1/8" oak 'veneer'. Ikea's table is $600.
When I first started programming (this was in C++), I decided that the obvious optimisation was to declare all these redundant local indices i,j,k as globals. Then the program won't need to make all this redundant crap! Of course that led to absurdly subtle bugs that only occasionally showed up since whenever I called a function which had a loop in it from inside of another loop, I would use i as the index for both loops. Error! I learned several important lessons when I figured that one out.

But now the author here says they're doing that same thing! How has this not inevitably led to problems? Or am I misunderstanding the scoping in Java?
What do they tell you they think? Do you reject them? I don't know many people who'd jump out of a good job for one that's more closely related to their school work.
For me it feels more like a zero sum game.

Some things I care about a lot less, others I care about more. The biggest problem I have is with obscure code, and my understanding of obscure has shifted over time.

Basically, I prefer code that gets you to ask the right questions. I'm still trying to put my finger on what qualities those are.

I still care about code that looks one way but does something else, and I care about code that conceals what it's doing and how it accomplishes it by using convoluted delegation.

But a function with a single purpose and clearly named? If it's loaded with kruft I only care if it's on a flame chart or I have to keep stepping through it while debugging another issue. So I care more about functions in the middle or the top of the call tree and less about the leaf node ones.

I still push back on "It's not that hard to figure out this code" on the grounds that when an odd bug happens I'm going to be scanning dozens of functions trying to spot an issue. If every one is chock full of code smells, that process takes forever. In fact it discourages people from doing the right thing and instead they slap more workarounds on top instead of trying to find the real cause.
What RX gives you is a smooth flow to the last callback. Async is admittedly less flexible but the only way I know of to trigger asynchronous flow without a callback.

I worked in the C# world for a while and I'm still in envy of how clear and powerful good async support is.
What "standard auth options" do you have in mind for node-to-node auth? The ones that come to my mind are even more of a pain to set up than TLS certs.

It's true that setting up a secure cluster is kind of annoying right now. But the kubernetes templates (https://github.com/cockroachdb/cockroach/tree/master/cloud/k...) do support secure mode now, and the plan is to provide more like this so it's not something that everyone has to solve by hand.

If you know or can predict the addresses or hostnames you'll be using, then it's possible to generate one cert and reuse it for multiple nodes. This isn't ideal from a security perspective since you lose the ability to revoke individual certs, but since we don't (yet) support CRLs/OCSP it's not much of a loss.

Adding an option to skip hostname checks for node certs might make this less of a pain (it would then be trivial to share one cert for all nodes if that's what you want to do). We'll consider that and see if it compromises any important security properties.
The credit services seem like a good candidate for nationalization or high levels of regulation.
I've been using Vimium [1] for years now to browse the web (almost) entirely via the keyboard and couldn't live without it. It's incredibly easy to use once you become familiar with the shortcuts. You can even change the bindings to more closely match Emacs [2] if that's your editor of choice.

1. https://vimium.github.io/

2. https://gist.github.com/dmgerman/6f0e5f9ffc6484dfaf53

Edit: formatting.
The difference is people saying "I got mine, and I'm going to vote against and oppose any thing that increases opportunities for other people to enter my industry and compete with me."

To me, that's unfair and wrong.
It was nixed by a Sega of America staffer named Madeline Schroeder, who did a lot of streamlining and de-crufting the Sonic concept before the game was even made.

Oddly enough she would go on to establish Crystal Dynamics, the studio that made GEX. And Sega would go on to ship Sonic with a human in Sonic the Hedgehog (2006).
Its fully complete. Because it was reversed engineered function by function, it was never really not feature complete, since it would still call out to existing code in the binary (thought there were some bugs). They've since added a ton of new features not in the original game (eg multiplayer networked mode), native OS X/Linux support, etc.

I contributed a little bit back in 2014/2015 and it was a lot of fun. Because it is almost all hand-written x86 ASM (which is insane), it was actually not too hard to reason about, certainly far easier than what Clang/GCC will spit out.
Yep, and in particular, one person over 12 years with one to three month breaks between sessions of working on it. He had no choice but to "monkey see, monkey do" what his past self did, and the resultant product is ... difficult to maintain, to put it nicely.

[Edit: I don't blame him - I understand how it happened, and also why he wanted to get out ;)]
In the old days they called this "applications programming" vs "systems programming".

Often people think people who do the latter are smarter. They certainly know more CS.

If you are an application programmer and smart (in terms of maximizing your utility function) you can build on the experience you have. I can look at many examples of tools that are not all they can be because they were written by systems programmers who did not have applications experience.

There is honor in applications programming, especially when you are building "the same app over and over again" because you can optimize for getting it right quickly. Take that thinking and turn it into tools!
Hmm, works for me tho
Google will just continue to move into more markets and moonshot projects until either the shareholders revolt or the government applies antitrust. But if not them, some other organization will need tech workers, and are you going to ask them to stop growing? See this: https://news.ycombinator.com/item?id=15461924
Funnily enough, I live in Toyosu, and can see where the market should have been moved to from my house.

The cause is simple enough: graft and corruption on all levels and at a massive scale, exposed in large part by Yuriko Koike (the relatively new governor of Tokyo).
Almost certainly not. The expected outcome is that everyone will update their software, and the old fork will die.

Unlike last year this is not a controversial fork. It's just a planned part of the network upgrade process. No groups are planning to boycott the fork.

(It's futher enforced by code in the old fork that will cause it to die shortly, so even if a group of people wanted to keep running the old fork, they would actually have to hard fork it themselves to remove the 'ice age' anyway. So it would have to be a concious act, rather than just people forgetting to upgrade)
No this is the only one I am aware of. It is listed here as a sample application: https://www.ycombinator.com/howtoapply/
http://sohcahtoa.org.uk/kepler/tmoon.c

Grunge C and huge comment block at start, compiles and works though. One day, I'll revisit this and have a think about data structures.
Most States don't take away your right to vote if you are convicted of a felony. Felons get to vote and can even, more often than not, vote while incarcerated. To vote while incarcerated, they use absentee ballots from the district where they resided prior to detention.
In the end if don't want to hire you, they won't.
Now, rather than being brutally honest, they invent ways around it.
In my apps customer will be a global via VueX. If I go to the Edit Customer view, change customer.name, but don’t save, the change will be visible throughout the rest of the app: the customer list, all the other views where the customer’s name is displayed. It would be a bug to show unsaved data anywhere but in the edit view. And if I go to the edit view, make changes, then exit without saving, then go back, the view should be reset. Making two copies of a global model instance seems like the wrong solution.

Edit: what this is missing is essentially an implementation of forms. That doesn’t necessarily need to be a part of this project, but it should be used together with this. Otherwise you end up at least temporarily persisting changes that were never saved. See the relationship between Django models and forms.

Also, one feature I have implemented in at least one of my apps has been using WebSockets to deliver new, updated, and deleted models from the server. That could be a super powerful addition here.
The population mostly is what it is, so there ought to be companies and jobs designed for people who aren't elite. McDonald's doesn't focus on hiring the best possible worker, they focus on hiring conscientious workers who are at the appropriate point in their career/life that it's a good fit.
>No key caps

I think you mean "blank key caps". The alternative could be pretty painful, depending on the type of switch.
Right, my bad. I read that as congress. I'm nit sure why I missed the specificity, considering I read it twice and then looked up the information on Wikipedia.

My bad, indeed.