skysight-inc/HackerNews huggingface dataset:
trading is largely a zero sum game. Companies like rentech earn money through speculation. If a craftsman makes a chair you have a char in the economy. If renetch extracts a few billion by betting on the stock market someone else has lost a few billion. The only hypothetical benefit is some liquidity but that is pretty meaningless in today's economy and there's even some evidence that high-frequency trading has negative net effects on volatility.

So no this has nothing to do with envy or romanticism. It's just a bad idea to have people with PhDs who could be changing the world play zero-sum gambling games on the stock market. These guys could be reinventing physics or bring us to mars. That's what makes people criticize these activities.

And as far as charity is concerned. Yes, Simon has done a lot of good. However, the other famous rentech guy is Robert mercer, and he is in the business of funding climate denialism. So whether you get a good philanthropist or a bad one is pure luck and has nothing to with the discussion on financial speculation.
Huh, interesting. I've definitely seen systems where the sum of two zeroes took the sign of the first value. I assumed they were inheriting 754 behaviour but I guess not.
https://news.ycombinator.com/newsguidelines.html

> Please don't comment on whether someone read an article. "Did you even read the article? It mentions that" can be shortened to "The article mentions that."
This ladies and gentlemen is what engineering is sometimes about - making something that seems at first look impossible, possible.
Technical writing IS a different beast, and I do a lot of slow writing which involves lots of editing and reworking.
That said, I sometimes feel like I should get more on the page first before doing the work to make sentences elegant and clear, or make the right nuanced point.
One future area he missed predicting is how we could handle ML data. For example, features could be more naturally stored and accessed as a DB row. Many tasks such as regression and classification could be handled by the DB system as an extension to SQL.
I think it is well known that floating-point numbers have their limitations. How would the IEEE 754 floating-point system know when to use L'Hôpital's rule? If you know there is a singularity (0 / 0 or inf / inf) then you don't have to use floating-point; use calculus instead.

Edit: What I want to say is that this is not a problem of floating-point number (not C or C++ either). It works _as intended_. Trying to increase the precision for evaluating (exp(x) - 1) / x at x = 0 is like beating a dead horse. Instead, a robust approach would be to expand (exp(x) - 1) / x at x = 0 as a Taylor series for very small x:

1 + x/2 + x^2/6 + x^3/24 + x^4/120 + O(x^5)
Days and days of shear boredom followed by hours of 100% adrenaline, days of shaking, weeks of numbness, a bond with those you never would have known and a smell you never quite forget.
Introduction to /dev/null a.k.a. the Bit Bucket
After hanging the laundry outside, won't you need to wash it again? Most countries have things birds, rodents, and pollen.

Do you always have dry non-freezing weather? If the humidity stays high, the clothes will get moldy before they dry. If the temperature is low, you'll get ice in your clothes. There may even be rain.
It's kind of shocking to hear these two quoted as "different than most" requirements – as a Ruby developer, this sounds like exactly a thing that any engineer supporting production systems would need routinely. RVM and bundler are standard developer tools and I would never question the need for supporting multiple versions on the same machine, unless in a very well-defined scenario where RVM was unneeded (like in a containerized environment packaged through a pipeline.)

So sure, there is more than one way to manage a Ruby runtime version, but are there any competitors to Ruby's Bundler? I feel like it's the undisputed champion of Ruby dependency management, working with Rubygems, another unopposed incumbent in its own space, and it never even occurred to me that my language should have more than one of either such tool. Can someone help me understand what drove the Python ecosystem to need more than one dependency manager, ELI5?

I am pretty cloistered as a Ruby developer, but my limited professional experience with other language runtimes tells me that the Ruby "developer environment" experience is really second to none, (change my mind.) Is there any tool which is nearly comparable to Ruby's Pry for Python or other interpreted languages? (I doubt that there is!)

Managing gemsets and multiple versions of Ruby is old-hat.
What if it's a graphically/resource intensive game that would necessitate running it natively? Imagine trying to run an Unreal Engine equivalent in webgl for example.
I have been doing this starting Ubuntu 14.04. it's been stable even when I upgraded now to 18.04 which has python 3 as default. The only downside compared with tool such as pipenv is the automatic update of packages that pipenv can offer and it's ability to be integrated into CI/CD pipelines.
You virtually always want this.

SELECT count(*), favorite_color, favorite_song
FROM person
GROUP BY ...

The "..." is of course favorite_color, favorite_song.

Whether you want this or not, ANSI SQL requires that you group by at least these.

You could group by more more fields, such as favorite_pet, though that would be somewhat odd since you are did not include it in the result set.
Chipotle giving health advice is a nice wrap to 2019. The company with continuous food poisoning outbreaks. The company where even the bowls are laden with cancer-causing chemicals. Pass.
The IPCC isn't written in a vacuum. They are well aware of the political realities, and there are always fights between the draft stage and the final report. As a result, the projects are skewed the the most conservative end range of possible outcomes, as no matter what is said there will be pushback and it is easier to defend the less aggressive projections than the median or aggressive projections.
Airbnb rental turns out to be public housing apartment
You can't put Hadoop on your resume if you solved the problem in RAM instead.
Or use the uMatrix browser add-on to block cookies and JavaScript on NY Times domains.
How strong do those pumps need to be to drain the ballast tanks and raise the ship after she’s got her new cargo on deck? I’m having trouble wrapping my head around how all this would work. Any Merchant Marines out there?
Only if it's convenient. Docking time slots are limited, fleeting, and expensive. If there's an open spot, and a ship ready to unload, it's going to get unloaded.
I think you're failing to prioritize the right things about your code.

The primary purpose of source code is to be understandable and manipulable by other engineers. No matter how well it accomplishes its goals, it's not "good code" unless it can be understood by other people.

I question whether you're actually working with a "very complex product" - it might just be that the way you're representing it is complex. If the code is still too complex to other engineers after 6 months, it's not the engineers who are wrong. At 6 months they should deeply understand some parts of the code and have confidence about diving into and understanding other parts with some ramp-up time.

I say this as someone who writes a lot of code that other people find hard to understand because it's "clever", and it's taken me a long time to fully internalize that, when someone else can't pick it up, it's not their problem, it's mine. Code is user interface, and good user interface meets the users where they are, not where you wish they would be.

Honestly, this aspect of software engineering is really the bottom line hardest part - it's not getting a working binary out of the compiler/interpreter, it's about getting a living system to evolve well. That means nomenclature and abstractions have to be top notch, not just the algorithms.

There's an old saw about "if it's twice as hard to debug code as to write it, never write code that's more than half as clever as you're capable of, otherwise you'll by-definition be unqualified to debug it", and I think there's a lot of truth there. One of my old director of operations used to say "If you can't run the playbook at 3am after being at the bar, it still needs work", and I think that's also true of non-ops related code.

Your next step is to reorient your role: your job is no longer to ship features, your job is to make the code easier for your coworkers to execute in. You're right that you'll "stop coding" as seen by management: your new bosses are your coworkers. Treat them as your customers, have them file tickets, the whole nine yards. When you reach the point that your coworkers are faster at getting things done than you are at the moment, then you can turn your sights back to production work, but until then, your job is technical debt remediation.
Control systems, yes, but we have to learn to crawl first
The answer to this is in Peter Thiel's Zero to One. Most people believe that universal competition has made it so there's no edge.
I've made a clone of Drugwars previously (called "Handguns and Cigarettes) and I can confirm that the mechanics are not the same. I get the similarities, but there are not many. This is more like a time-management game. I love drugwars, but this is not that, at all.
FOR JSON AUTO is a non-standard SQL extension.

And as the name suggests its somewhat magic/implicit in its behavior.

No ANSI SQL result is altered by changing the order of GROUP BY.
Can't help but agree. I'm aware that knowing about algorithms can be important, but 99% of the time they're just theoretical knowledge I half remember from college.

It's getting to the point where I'm not that interested in pursuing a role in a company if part of the process involves pointless algorithmic tricks.
Sounds more inspirational than literal. He sets the scene as the last Y Combinator dinner of the Summer. Folks are probably taking the evening to relax and something too serious wouldn't fit the mood. Just reading this, I can see the humor, yet appreciate good advice cleverly mixed in to share a few meaningful tips.
>Maybe it's possible to do both?

I agree, and I think that's part of Ryan Holiday's thesis. That also happens to be the message in the book Crucial Conversations.
fixed. it was a rogue z-index. cheers!
I’m not conflating big O notation with benchmarking. My point applies to theoretical models of computation.

I’m pointing out that, for example, comparison sort is only O(n * lg n) in theory if the theoretical model of computation we’re dealing with can compare any two items in constant time. Comparing arbitrarily large integers can not be done in constant time in theory, so if that’s the problem we’re discussing then the complexity will not be O(n * lg n). But again, we generally are implicitly concerned with models of computation where comparison is a constant time operation.
Here's what we know:

* Will open in the Woodland Hills neighborhood of Los Angeles, 2008 median household income was USD 93,720 [1]. I don't expect a discount-type store.

* The Wall Street Journal says they're working on more stores, but this is the only one that Amazon has confirmed. Personally, I see this as more of an experiment at this point, even if a few more store open with this format.

* Amazon is obsessed with the last-mile(s), in particular on same-day delivery. (Witness their last earnings report.) I'd look at this store as a test-bed for last-mile/same-day... Perhaps they'll double or triple the size of the Amazon Fresh areas over what we see now in Whole Foods, for example.

[1] https://en.wikipedia.org/wiki/Woodland_Hills,_Los_Angeles#Po...
Kind of a good sign that Google's internal teams actually work independently and don't give special exemptions to other units of the company?
Sounds like Westfield Bondi Junction. Most space used effectively. Large supermarkets in the mall. Cafes in the open corridor space. Intentionally confusing to get around.

Btw, do American shops have parents rooms yet?
How does expm1 not work for you? It works for me.
that's it. Their countenance never changes. Each worker has an avatar that is just one of many icons, randomly selected from an array.
Your comment inspired a quick and dirty implementation of this.

It's on my github[1] if anyone wants to take a look. I don't use bash often, so if anyone sees better ways to do things I'm all ears.

[1] https://github.com/kiddico/Fight_the_Man
> The Wallkill itself had no real path or bed, Snell explains, the meadows it flowed through were naturally dammed at one end by glacial boulders from the Ice Age, the whole place was clogged with “rank vegetation,” malarial pestilence, and tens of thousands of eels, and, what’s more, during flood season “the entire valley from Denton to Hamburg became a lake from eight to twenty feet deep.”

Sounds pleasant.
I'm reminded of the saying, "Only the hungry man knows the taste of bread." Many of us in HN are used to working long and arduous hours, and we've also been told that it's a virtue to do so. To me it's no wonder the subject resonates.
In a world where most IT offices these days are as sterile and bland as possible I would applaud a coworker that went out and did this.
Whales are intelligent and social. The problem is the oldest whales are getting to be too young to remember whaling, so they're no longer scared of ships, as a society.

Sightseeing expeditions encouraging whales to approach boats doesn't help either.
tl;dr: expm1 does work. Something funny is going on if it doesn't work for you.

~~~

How this works out in practice is that once you try your hands on some serious floating-point, you quickly learn that an expression like x == 0 (or even like x <= 0) is a strong code smell. It's an instant red flag that you need to drop what you're doing and think things through extremely carefully first. So you'd stop right there and try to get some intuition for what's going on.

Now the intuition you want here is that floating point is logarithmically spaced around 0 rather than around 1, so if you do exp(x) for small x, it won't have adequate resolution to return anything but 1, because the next-highest jump is too large to be accurate. So when you subtract 1, you get zero.

But... that's precisely why expm1 exists: it's to evaluate exp(x) - 1 accurately. And in fact, it should work. And it does work for me. Why doesn't it work here? It sounds like either a bad implementation or the wrong compiler flags. We really need to know the compiler flags that are being used.

For what it's worth: floating-point can be a lot worse than this, where there's no simple red flag or library function like this that you can recognize. In my experience, a rule of thumb (somewhat of a yellow flag) is that, if you start doing nonlinear operations (even division), you gotta roll up your sleeves and get ready for some fun...
Porg – Source Code Package Organizer based on Unionfs
Lived in NYC (Manhattan and Brooklyn) five years, experienced highs and lows, started a business, closed one, took a traditional job and contract jobs, so I saw a lot. it's extremely overrated and overhyped. Lots of good, interesting people, but also lots of pretty awful ones (usually from somewhere else). Ultimately, the quality of life is poor and even London is far more livable than New York.

Edit: the rapid downvotes show how fragile the egos of New Yorkers are, this was always something I knew... really can't handle being told New York isn't the greatest place in the world!
Ohhhhh okay, that makes sense. Thanks!
I don’t think that’s accurate. The length of a collection is not necessarily correlated to the largeness of its largest element. The n in comparison sort is indeed the length of the collection, and that’s the only variable we generally discuss because we generally assume some fixed maximum allowable element.
Eh you're probably ant fucking, it's a fine comparison to draw versus big box stores.

TBF, probably "2 Walgreens" would be a good comparison in some markets, or "classic grocery store" size.
There should be a single vision for how the software works.

This does not mean that vision should come from a single person. Ideally, it comes from the people who are able to contribute and critique that vision (other senior developers), with the acknowledgment of the people who don't have the information to contribute or critique (the junior coder).

This harkens back to the MMM and Mills's proposal.

> The surgeon. Mills calls him a chief programmer. He personally defines the functional and performance specifications, designs the program, codes it, tests it, and writes its documentation.

> The copilot. He is the alter ego of the surgeon, able to do any part of the job, but is less experienced. His main function is to share in the design as a thinker, discussant, and evaluator. The surgeon tries ideas on him, but is not bound by his advice.

> The success of the scaling-up process depends upon the fact that the conceptual integrity of each piece has been radically improved—that the number of minds determining the design has been divided by seven. So it is possible to put 200 people on a problem and face the problem of coordinating only 20 minds, those of the surgeons.

Chapter 4 is all about conceptual integrity of a project.

> Conceptual integrity in turn dictates that the design must proceed from one mind, or from a very small number of agreeing resonant minds.
Unionfs: A Stackable Unification File System
Since you're here… This looks really cool. I installed, but running the demo produced no sound (but a pause). Any thoughts? I did seemingly install the dev branch of SoundPipe first. Please feel free to redirect me to a more appropriate support channel if available.
In terms of luxuries being taken away, I’d point to electricity and transportation as the #1. For those calling for immediate decarbonization, that would mean shutting down all our coal, gas, and oil burning power plants and scrapping our gas burning cars. Electric heating costs more than gas heating, electric cars cost more than gas cars, and so on. All of these costs hit ordinary people directly in the pocketbook.

Economists estimate a carbon tax high enough to force fossil fuel plants offline in a couple decades would need to be quite high. Meanwhile, in democratic societies like the USA it’s very difficult to even raise the gas tax a few cents to fund needed repairs to bridges and other infrastructure. To get people out of their SUV’s and into Teslas, for instance, you’d need to put multi-dollar taxes on gas to make it make sense (e.g. Norway where Tesla is doing well because they put a 100% tax on normal gas cars). Democratic elections often result in the rejection of such taxes because voters value their immediate standard of living over that of future decades (e.g. WA state initiatives for carbon taxes, which were soundly rejected at the ballot box in 2016 and 2018).

And to do all this without affecting the standard of living of the poor and middle classes, and without slowing down the growth of developing countries and China - I think it’s a bit of a dream. There’s a reason market-based societies selected to use fossil fuel technology and it’s because it’s cheaper than other energy generation tech. Transitioning off of it is now a massive capital investment and will hurt.

You say the yellow vest protest were about inequality - but the result of them was that the fuel tax was put on hold and the speed limit was kept high.
Big ups for SQLite too. It's extremely easy to plug in (esp. if you're using Python) and rather performant. An added bonus is that you can run a simple query in SQL for free. It's just as easy as awk. If you do small/medium size of data processing (say, less than 100G), SQLite is a must tool to learn.
Coping with the UEFI Boot Process
Using Asynchronous Requests to Mimic Single Page Apps in Django
Do you think that hard-working grandfather was salaried? Salaried people have already made it, at least to some degree.

Uncompensated work wasn't at all in the scope of hirundo's comment. You injected that idea. Honestly, you come across like a guy with a one-size-fits-all villain, who is just looking for an excuse to unleash a rant against it.
> Disappointingly, I ended up writing my data to a text file, sorting with unix sort (w/ some tuning on --parallel and --buffer-size) and reading it back.

One of my biggest beefs with Unix is that so much powerful functionality is locked up in command line utilities and not accessible as libraries.
Building a Developer Tools Business
Is this a joke?

Has Tim Ferris just adopted a new alias?
Ha, I've used Clojure, see my thoughts above in the other thread.

By the way, I love Java, love Kotlin even more. Don't bring the JVM and other languages down to Clojure's level just because Clojure is clutching onto the JVM's coattails.
it could be worse, they could stock it with "co-mingled" products from their site
Sure. Not ideal in theory, but in practice that's generally reasonable. But if it's a regular thing, it should get called out and addressed one way or another (i.e., even ignoring the pathology that this conversation covers, if there's always a mess to fix right before release, then your process needs to be revisited).
That would make it more palatable. And QOS so that anybody in my car using the hotspot has priority for traffic.
Python Just Overtook Java on GitHub, but How Did It Fair Overall?
The brain is marvelously adaptable...especially in survival situations (regardless of overall politics/geopolitical strength), many of us ended up in a fight or die scenario at one time or another...the tools might change, but the imperative is there...
Because the Big O notation as used by engineers is actually about practical problems and not asymptotical behavior.

So integers count as constant memory AND can be considered to be arbitrarily large for the purpose of the current problem. Because having more than 2^64 lines in a file will never happen in practice, and even if it does then 2 integers would do the job for the rest of the observable universe.

Be pragmatic, you are on Hacker News.
I have been using a consistent setup that hasn't yet failed me for the past 2 years.

1. Install Anaconda to your home user directory .

2. create environment using
(conda create --name myenv python=3.6) .

3. Switch to the environment using (conda activate myenv) .

4. Use (conda install mypackage), (pip install mypackage) in that priority order .

5. Export environment using (conda env export > conda_env.yaml) .

6. Environment can be created on an other system using (conda env create -f conda_env.yaml) .

Anaconda: https://www.anaconda.com/distribution/#download-section .

Dockerized Anaconda: https://docs.anaconda.com/anaconda/user-guide/tasks/docker/ .
> I recently had a phone screen with them (no offer otherwise I wouldn’t be writing this) and all of my communication was with this MIT math PhD.

What were you applying for? A software position? If yes I am curious as to what programming questions did he ask.
One thing: I push that an flag on my phone on accident all the time. Have you guys thought about a way to maybe hide it better?
We’ve also got a section on web.dev focusing on the specific problems that 3rd-party resources can create and how to fix them: https://web.dev/fast/#optimize-your-third-party-resources

We mention that ad scripts are a common type of problematic 3rd-party resource but we use the phrase “3rd-party resource” because there are lots of other common problematic scripts, like A/B tests, social media widgets, and analytics scripts.

Disclosure: I work on web.dev
Not strong at all theoretically speaking. All you have to do is have enough headroom to pump higher than water level for a given diameter of pipe and have an air intake to match which is higher than water level. You could take forever with a strong pond pump and achieve the same effect.

I designed full-building hydroponics systems. You get similar issues with things like vacuum pressure in tanks causing your pumps to not work properly.