skysight-inc/HackerNews huggingface dataset:
When I was in school in the 70's. (That's NINTEEN seventies.) There was this book called The Psychology of Computer Programming. This predates the microcomputer era as we know it. Punched cards were still common when the book was written.

A computer was to control a new assembly line for a car company. They couldn't get the software to work. They called in an outside insultant. The outsider developed a program that worked. (It was more complex.) The book was about the psychology part: The original programmer says: "How fast does YOUR program process a punched card?". Answer: "About one card per second." "Ah!" said the original programmner, "but MY program processes ten cards per second!"

The outsider said, "Yes, but MY program ACTUALLY WORKS". If the program doesn't have to work, I could make it read 100 cards per second.

Correctness comes first. Simplicity is highly desirable, adds additional cost, but always comes after correctness.
What makes humans the only species that need to consume the breast milk of other species after weaning?
But no, what about UTC leap seconds? Use TAI! :)))
"The cohort’s leaders recruit babies born at the Guangzhou Women and Children’s Medical Center. Only families planning to live in the southern Chinese city for a long time have been recruited"

Limited ethnic and geographical selection of participants means this 'slew' of data will likely be less valuable than this article lets on. Helpful to that immediate area? yes.
Close the browser tab :)
A host can define a base price for his housing but specify different prices depending on the dates. If a user searches on Airbnb without specifying a date, the price displayed will be the base price that the host has put but as soon as the user selects dates, the real prices will be displayed. I don't see how Airbnb can prevent that. I saw some people putting their base price at 20$ but when you select a date. it will go to 80. They hope to attract people based on the base price.

My rule #1 when searching on Airbnb : always put the dates even if you don't have any, you will have a better idea of what the real price is.
The author assumes that simplicity is a prerequisite for correctness which is in general true but it does not say when exactly a simple system is turned into a complex system. I would say that if the complexity of your system is still under control then it is qualified as a simple system.
Don't be a language snob. I wish I would have learned more languages sooner.
Noop is pretty simple...
Rugby Top Level Domain Launched
More Recycling Won't Solve Plastic Pollution
I think my central mistake here has been using the word communication in place of literary expression, which carries with it a magnitude of efficiency and specificity that art elements cannot achieve. I did this in trying to work with the contextual uses of the terminology and I think it waters down my point. Sorry for the confusion.

The Wikipedia for Poetics does appear to lack an elaboration on Aristotle’s more critical positions on poetry. The exact nature of his criticisms are contested (but their existence is not) so maybe that is why. Check out thes Quora entries for some relevant discourse:

https://www.quora.com/Why-did-Plato-hate-poetry
These are also the attributes that news should follow.
Kaboom! The Gamification of Chaos Engineering
> If you cannot achieve correct without simple, redefine correct.

More hand-waving.
Shan gao, huangdi yuan — “The mountains are high, and the emperor is far away.”
I thought the same and was tense until the end, expecting at any moment a description of living people getting dragged away by sharks.
The Romans laid things out in a grid.
While the comparison to MythTV for a fun coment, this is exactly what ARM would like the high level decision makers to feel. Just as Microsoft tried with their "get the facts" campaign years ago.

Notwithstanding your terrible MythTV experience, there's seveal companies offering commercial support for Linux today, and a lot of effort has been put into making it as secure as the Windows equivalent. I suspect the same could happen with RISC-V.
I think this is lacking a definition of simple. And where in the problem space do we desire simplicity? Simple in the implementation (and conversely complex in the interface? ie: C-style libraries?) Or complex in the implementation but simple in the interface? (ie: Haskell/FP style libraries?)

My definition of simple software is software that I can validate the correctness of using only equational reasoning and the mathematical tools used to carry it out without any specialized knowledge or verification systems.

If I have to learn a new way to reason about a software system in order to understand it then it is complex.

A priori any system written in C fails this litmus test: one must understand and identify the many ways that undefined behavior can enter into their program and be leveraged by their compiler. One cannot reason about a local expression in the presence of global effects and unchecked side-effects. And if it is possible to write a correct C program it takes considerable effort and the use of very specialized verification tools.

There are many reasons to prefer C however; if we're willing to live within some tolerance of "correct" and "incorrect" then we can leverage a tool-chain that can produce highly performant code... but then we're forced to restrain ourselves from introducing complexity instead of spending that effort on other things.
Those size acquisitions usually aren't based on revenue - rather, they're for companies that either have valuable proprietary technology or an early lead in a market that the acquirer wants to get into. The acquirer is paying for the ability to jumpstart their entry into the market - by dropping $40-80M they can get a ready-made product, team, and early userbase that's been assembled over 2-3 years and develop from that. If they instead tried to develop the product in-house, they run a serious risk of the market moving on and the startup becoming untouchably entrenched before they can get their entrant in.
Yep, this is the version I heard. I think the distinction between "make it work" and "make it work right" is important, though - where "work" means "solve the problem", and "work right" means "solve the problem in a robust and reliable manner."

If your software doesn't solve the problem, it's useless, no matter how correct or fast it is. Once it solves the problem, then you can work on making it bug free and elegant. Once you're done with that, only then should you look at making it fast.

Note, of course, that "make it fast" refers to gratuitous optimisation. If it's too slow to solve the problem, then it doesn't work, and that needs to be fixed.

A similar adage states the rules of code optimisation:

1) Don't.

2) (For experts only) Do it later.
But I could write a simpler (incorrect) leap year function than yours!
The "technical information" page says they contacted the social media services those keys were for, and the social media services confirmed the keys hasn't been used by anyone else.
Something I would add that helps when writing simple software is testing. You have to close the feedback loop early and often. Until you see what your program does you won't really understand it.

Thinking you understand what you're making before you really know is one of the worst mistakes you can make. It's under that misunderstanding that you'll think you need to add to your program to make it more correct and fast, when really you're over complicating it and making your life worse when you actually need to get it running.

In contrast, when you can run a test as soon as possible, that's where I usually see an alternative way of writing it that may be shorter, more correct or faster

You'll never get to this point of course if it isn't simple in the first place.
Winds Open-Source RSS Reader Hits 11k Users
What inferior text manipulation capabilities?
Developing proprietary sources of information about companies and trading on it isn't "insider trading". And again, it's pretty fundamental to how the market works: the whole idea is that people will learn things about companies, trade on that information, profit, and in doing so gradually nudge the price of those companies to their true value.

Insider trading is an agency problem where (simplifying a bit) you're brought into confidence by the company and trade against the interests of their shareholders. As an agent of the company and thus its shareholders, you're not allowed to do that. HFT traders aren't agents of anybody.
There's a sweet spot in the neighbourhood of well-defined problems and low complexity, that sings phrases like Before even trying to implement it I know it can be done right, or Even though it can't be done 100% right, that's just the nature of the problem domain. Give the users a good enough solution that they can understand, so they can use it in the way _they_ need.
I read this as "Don't start with the edge cases." Which is _sometimes_ good advice, but is not a universal rule.
Try IntelliJ if you want something that works with a lot of languages and handles all of them really well.
Been working on some legacy code that is so convoluted, you sometimes can't even tell if it's correct, without starting to rewrite. Once you grok what it's doing, there's almost always a simpler & more direct way. This in turn usually makes it faster, AND sometimes more correct. It's pretty gratifying, though there are many SMH moments.
Sounds like you're over complicating simplicity
For people who enjoy podcasts, the History of the Twentieth Century is currently on WW1, and explains both the background that led to war, the pre-war plans and the actual events.

https://historyofthetwentiethcentury.com/
Another thing that guide mentions is that if the nylon guideline is cut, it will rapidly snap and retract and spool up (kind of like a fishing line).

Also I read an accident report of some divers who survived a silt out condition, they spent a lot of time carefully figuring out what direction they should follow the rope out to exit the cave in places where it has been wrapped around a stone a few times to anchor it.
Seen this several times when someone refactors. The code is much simpler and easier to read, but does not actually work for several important test cases anymore.

I've never thought of simplicity adding upfront cost. That's probably true, but also true that it pays dividends later on in the project.
Could you explain, or maybe point to a good textbook with a chapter on the subject, why the coupling efficiency to the second waveguide on the directional coupler peaks at a certain intermediate waveguide length? I have a PhD, just not in photonics.
The grass is always greener. I grew up in a working class neighborhood where the majority of my friends parents and high school friends later became involved in trades. My high school had a trades program for mechanics, HVAC, electricians, plumbing, and a beauty school.

The vast majority are NOT making six figures. The work is hard, has long hours, and is physically exhausting. My grandpa was a welder/machine shop owner my uncle is a electrician. They would trade anything for a cushy desk job with great pay, great benefits and easy workload. I've never worked past 4pm and have ample paid vacation time. They will never be able to say that. Google says that here in Austin TX, the average master plumber makes $25 an hr. HVAC is the highest at $44 an hour on average. And we are going through a construction boom, also don't forget that you have to factor working in 100 degree heat and 50% humidity 5 months out of the year.

Sure you can start a business and eventually have 5 workers and 3 trucks like my grandpa but then you become a entrepreneur and have to deal with the whole billing, scheduling, selling, headaches of running a small business.

I find a lot of tech people idolize the blue collar fields. It's damn hard work.
The make it work fast portion isn't controversial. Premature optimization and all that...

The "make it work" implies a level of correctness & performance that is acceptable, which is why any subsequent steps are after thoughts.
Low USB microphone recording volume – Windows 10 (2015)
At Bricleir, we're revolutionizing the way F500 companies discover and access innovation from Silicon Valley. In short, we're building an online marketplace where startups (partners) do the work to make it easy for the F500 to discover initiatives and startups relevant to them. Our office is in downtown Palo Alto and we're looking for a lead engineer onsite to help us take our MVP to the next level as we close our second round of funding. Feel free to reach out to me if you're interested: ireland@bricleir.com
I disagree somewhat strongly with your point #1, or at least I have a different framing for it. Don't bother focusing on depth in a very small number of programming languages or technology stacks. There isn't enough depth there to make that worthwhile. Programming languages are fundamentally similar with very few different paradigms, all of which can be learned and then applied appropriately to new languages. You can learn the more interesting or fiddly bits of any specific language you're working in as needed.

But depth of domain might be worthwhile. That is: "I work on distributed data storage systems", or "I work on data analysis systems in the energy industry", or "I work on self-driving sensor data analysis", etc. Maybe I'm wrong about this, it's certainly not the way I've done things, but it is the kind of deep expertise that I'm often envious of.
Ask HN: Do you have a business idea with revenue model to share?
Let's say you are occupied with your current role and are not able to bring your business idea to reality. Would you like to share your profitable business idea with the HN community.

(By profitable, I mean an idea which has some direct payment involved and not like an ad based revenue model)
I can't get the features of VIM in an IDE. I CAN get IDE features in VIM.

I get syntax highlighting, Automatic Checks, Navigation based on Language structures. I even can integrate my shell and debuggers into VIM, but I don't use do that. I use those usually just as a stand alone tool.

VIM and Emacs also have the absolute best git integration I have ever seen. Magit for emacs and Fugitive for Vim are absolutely fantastic. Certainly beats any IDE I have ever used.

I can't think of anything that I would like to have from any IDE.

MY vim is a much better tool for me then any of the IDEs that I have used in the last 10 Years. I started out with IDEs, because that is what my teachers and mentors used, but once I learned vim the IDEs just seem painfully slow and limited.

It is also not the case that I just don't know better. I certainly have used many IDEs in the past. For example I used Visual Studio (Not "VS Code", the proper enterprise VS) for 2 Years.
I should have qualified that: "lie with high-rates of success". To clarify, at 1-years-old your infant could not formulate a high quality representation of your 'mind'. That is he/she couldnt fully appreciates that information held in your brain was different than the info available to themselves (the union/intersection/xor of info), nor did they have a strong intuition regarding how vastly different your two mental abilities were, without a theory of how minds work.

The classic experiment I mentioned above involves a child and two adults in a kitchen. One of the adults wants a piece of candy (or something - going from memory here), but the other adult says they cannot have it yet, and puts it in a cabinet. All 3 witness where the candy is placed. At which point the one who wants the candy leaves, but on their way out the door says "when i get back I want the candy". So then it is just one adult and the kid in the room. The adult asks the kid to move the candy to a different location in the kitchen. The kid does this and then sits back down. After a few minutes the adult says to the kid something like - "That other adult who wants the candy will be back in a few minutes. Where do you think they will look first when they get back?" - without fail 3 year olds will point to the cabinet where the candy is currently located, whereas 5 year olds will always point to the cabinet they adult who left saw it last. Something happens in brain development during age-4 that gives us the capacity to understand that different minds hold different information based on their own experiences. This task has been repeated dozens of different ways, including simply having an adult standing in a different location in a room as 3,4,5 year olds, where the adult's view of a wall (of pictures) is clearly obscured by some screen. Then they ask the kids stuff like... how many pictures of teddybears will that adult say there is on that wall? Again 3 year olds report what they themselves see, while 5 year olds perform like adults would on this task.
GE Digital | Schenectady, NY | On-site | Full-time | Software Engineer

This role is on a team called the Software Engineering Competency Center. The team is part of the core IT group within GE Digital. We deliver IT solutions from infrastructure to services to applications for businesses across the GE portfolio.

The successful candidate will develop projects running on AWS as well as other cloud platforms. We mainly develop in Node.js and Go, though we definitely dabble in other languages as needed.

We architect for high scalability and reliability using serverless and container-based platforms and distributed service patterns.

Apply here if you are interested: https://jobs.gecareers.com/ShowJob/Id/54423/Staff-Software-E...

Thanks!
Index creation can make SELECT performance worse
You would remember even better if you had to write the code out by hand or use punch cards.

I've only ever written C# using an IDE but I know plenty of things about the standard library. Why wouldn't I? I've written a bunch.
Is "displaced" the correct term, though?

In mobile devices, ARM has an almost(?)-monopoly indeed, but x86 never was a serious contender in that space to begin with. The same goes for "IoT" devices. In new areas of computing, Intel is just one vendor among many (well, several), and the more the market tends to demand low-power chips, Intel's advantage melts away. In that sense, I agree with you. In HPC, I could see ARM become a serious alternative, because the trend seems to be to delegate the heavy lifting to GPUs, anyway, and the GPU does not care what kind of CPU feeds it, so to speak.

But in the traditional desktop area, if you cannot run Windows and the huge number of third-party applications available there, you might as well give up. And to completely "replace" x86/x64, you have to compete in the desktop market as well.
+1 to acknowledging that when it comes to software, "simplicity" does not have one exact quantitative meaning we all agree on -- for now, simplicity is still in the eye of the beholder in my opinion.
I think I read the OP's assertion in relation to your counterpoint like this: when thinking through the problem, your initial iteration of work is allowed to say exactly that: a leap year occurs every 4 years. However, you should do so via a semi-stubbed function (isLeapYear) as mentioned previously. I am imagining that the specifics of when a leap year occurs are not critical to your solution, only that you know when they happen. Thus, you avoid spending too much time on a detail that's eventually important, but not critical for proving your first hypothesis. In the "correct" stage you come back and improve the isLeapYear function to return correct results.

Part of attaining wizard status is not learning how to hold more of the program in your head, but instead learning how to hold _less_. This seems like an excellent step in that direction.
If it no longer works then I don't consider that to be "refactoring" but "rewriting".

I think of refactoring as a series of SIMPLE transformations that clearly do not have any effect on the correctness (or incorrectness) of the code. That is, there is no possible change in behavior.

And think of the word "factoring" as in high school algebra. or rather "factoring out" something.

I have a dozen examples of this calculation. How about let's refactor it into a function, and replace all the instances with a function call?
A better question might be, which is more likely to protect you and your loved ones.
Timehop database hack sees 21M users' data stolen
> Correctness comes first. Simplicity is highly desirable, adds additional cost, but always comes after correctness.

It is true mainly for one-time contracts where you actually might not care about simplicity at all. Enough is enough.

However, in the case of iterative projects keeping complexity under control has much higher priority including top priority for very big projects. Complexity and high entropy can easily kill everything.
How do you know it was more complex because from what I read it was slower which is different.
Menu Class – Example of Modern C++17 STL Features
> If the program doesn't have to work, I could make it read 100 cards per second.

> Correctness comes first. Simplicity is highly desirable, adds additional cost, but always comes after correctness.

Correctness isn't binary. Roughly no software today is 100% correct, but for most purposes you'd still pick the current version over a highly complex, slower, more-correct version.

Simplicity can save you a lot of cost as you edit the software, which helps you make it correct sooner. Simplicity and correctness go very well together.
Maybe the test cases / requirements are "wrong"? I think simplicity is the ultimate test that you found a good problem!
I disagree. I just can't get more specific without specific cases to examine. Like others have pointed out, take the matter of timezones: if "correct" is defined as "handling timezones", you should instead store time in UTC everywhere and redefine "correct" to be "convert times to local time when displayed and back again when input", which can be accomplished with much smaller, simpler, and focused tools.
The ultimate goal of Western spying comes down to these two things:

1. Preventing another 9/11

2. Selling advertising
Oops, I missed that.

So it's going to be multicore x86-64 then.
> Does society serve the market, or does the market serve society?

None. The society is the market, and the market is society.
Except for Rome itself which was rebuilt very hastily after the sack of Rome in 390 BC. But everywhere they went, particularly for military encampments, they brought the grid with them.
Some problems are just hard and complicated. You can try to make code that dissects it into lots of simpler pieces, but then they have to be put together in a complicated way. Someplace in the code there will be some point of irreducible complexity. In my experience.
For example, a task that occurs "daily at 15:00" does not always happen every 24 hours. When DST comes into effect, the interval shortens to 23 hours once.
see eCommerce Fraud Prevention. There are a few companies focused on this space to protect merchants from fraudulent chargebacks. But in short, you can get pretty complex with multiple vendors being leveraged, but the economics of fraud vs fraud prevention really depends on your business.
The timetable thesis doesn't hold up that well. The Russians had no plans for a partial mobilization, and the tsar still ordered a partial mobilization (although the military did succeed in pressuring him to return to general mobilization within a few days). Germany not invading Belgium wouldn't have changed the course of the war all that much--Britain likely would have found another excuse to involve itself in the war had Belgian neutrality not been violated.

If you subscribe to the belief that the grand strategy of war should be left to the politicians and not the military, then the timetable excuse is gross dereliction of duty on the part of the military: the military is failing to provide plans for perfectly reasonable options that the government could wish to enact (i.e., limited war instead of total war).
The Blockchain Beyond Bitcoin – O'Reilly Media