skysight-inc/HackerNews huggingface dataset:
The type checker checks types. SBCL's type inference is based on Kaplan-Ullman, rather than Hindley-Milner (see https://news.ycombinator.com/item?id=12216701). A remark from the linked paper there to keep in mind: "There has been some confusion about the difference between type checking for the purposes of compiling traditional languages, and type checking for the purposes of ensuring a program's correctness."

The big caveat with this post is that while types and type declarations are part of the standard, doing what SBCL does to infer them beyond what's declared or handle them for purposes of compile-time warnings and optimized assembly code generation is up to a Common Lisp implementation and others that aren't SBCL (or older SBCL versions, or programs that declare things like (safety 0) to turn off type checks) may behave differently.

Normal lisp functions can have more restrictive types than T, too. Typing (describe 'symbol) for a function will have SBCL say (among other things) that the symbol names a compiled function with a certain argument list, declared type, and derived type. (There's a distinction because I might have declared the function parameter a to be type (integer 0 255) which SBCL simplifies to (unsigned-byte 8).) SBCL has a convenient way to get the derived type info as a list that might be useful for macros or editor extensions, it works for your functions or standard functions e.g. the standard string-to-uppercase function as provided by SBCL has the type: (sb-introspect:function-type #'string-upcase)

(FUNCTION
((OR (VECTOR CHARACTER) (VECTOR NIL) BASE-STRING SYMBOL CHARACTER) &KEY
(:START (MOD 4611686018427387901))
(:END (OR NULL (MOD 4611686018427387901))))
(VALUES SIMPLE-STRING &OPTIONAL))

i.e. it takes a string (among other possibilities), some optional non-negative integer keyword parameters (up to some max number, which is 2 smaller than my system's most-positive-fixnum value), and outputs a simple-string. This might lead to developing an interesting IDE tool / slime extension that lets you "tab complete" a variable by asking the system what functions you can call that expect the type of the variable's value as the first argument. (slime basically already has this with "who specializes" for finding generic functions.)

You can define your own types with (deftype) for non-trivial data. (Or even trivial data like an enum type: (deftype valid-color () `(member :red :green :blue)) Depending on how non-trivial it is, this may impair optimization opportunities or the compiler being able to notice type mismatches (though you can tell the compiler to give you a notice about type uncertainties), so you're back to runtime checking.

Runtime macros talk to the compiler to generate code, same as compile-time macros. The compiler never goes away in runtime (without some effort in extracting it from the final deliverable anyway) -- COMPILE is a standard compiled function -- which makes it possible to e.g. interactively debug an erroring function, recompile a fixed version that everything will now call instead, all from 100 million miles away back on earth.

What do you mean by "the environment"?
The text doesn't mention reputation. It does however explicitly states he doesn't try to convince others.
The confrontational approach is an archaic holdover of a Victorian worldview.
Show HN: Git-remote-AWS: AWS accounts as Git remotes
Antibiotic-resistant Salmonella strain confirmed
Oh man this talk... so incredibly good. The principle of simplicity vs easy is what drew me to Elixir, and what I'm starting to dislike about Rust.

In Erlang/Elixir, you have patterns, and interfaces which are fairly low level, but provide meaningful abstractions over common goals... I.e. we have OTP. OTP is fairly simple, and that doesn't mean it's easy, it's really not, but it can be simple once you're familiar with it.

Rust, on the other hand, is easy to get started with, the core of the language is fairly small (and relatively simple) but that's where the complexity starts to creep in.

It's so small, I have to constantly reach for a crate for common goals... There are tons, and they're fucking awesome, BUT they're easy, not simple, and my application's complexity grows exponentially relative to my familiarity each time I grab another crate.

I think it's easy ;) to say the Rust ecosystem has to contain the complexity it does, and making it easy is the best we can do, but with great challenges comes great reward... Batteries not included, yes, but at least you could know the size (spec) required for the ones you need? That's probably a shitty metaphor but I tried...

...

One more thought on this tirade, when Rich Hickey casually says that engineers should be working to remove complexity from the business... That hit me right in the feels. Too often do we get complex business decisions/goals and just accept them. We need to push back and help them simplify their goals... too often I've gotten some crazy request, where instead of implementing it, I pushed back to get to the root of the problem and ended up with something wildly simpler and better for both parties. When we push back, it shouldn't be to make something easy, it should be to make something simple. You can scale simplicity almost infinitely, but complexity will eventually come crashing down.

More on topic... Thanks for posting this talk, it and the article have inspired me, I'm gonna go try to write a bit of Clojure today. You should write some Elixir, or maybe LFE (Lisp Flavored Erlang), I think you'd quite like BEAM :)
> The first example is easy: Implement an O(1) jump table in Common Lisp that respects the lexical environment. (You can’t, unless CASE is itself optimized to a jump table, which it usually isn’t.)

Perhaps I don't understand your objection: you can certainly store any object in an array and funcall it which would be O(1); the object could be a lambda that captured the lexical environment. I was doing that 35 years ago on the lisp machine

Interestingly I did this also on the D-Machine Interlisp and each closure forked the stack, so it ground the machine to a halt, a design bug later fixed. Both examples I'm talking about predate Common Lisp standardization.
None of those things have SIM cards.

I wonder over the long run which is better - hard wiring or using batteries?
The response to "but is it slow" is pretty disappointingly bad.

> No. Clojure is not slow. Oh, look, it’s not C. It’s not assembler. If nanoseconds are your concern than you probably don’t want Clojure in your innermost loops. You also probably don’t want Java, or C#. But 99.9% of the software we write nowadays has no need of nanosecond performance. I’ve built a real time, GUI based, animated space war game using Clojure. I could keep the frame rates up in the high 20s even with hundreds of objects on the screen. Clojure is not slow.

If you're going to respond to this question at least provide some comparison maybe.

But otherwise that anecdote of "I could keep the frame rates up in the high 20s even with hundreds of objects on the screen." absolutely screams extremely slow. High 20s FPS with hundreds of objects is incredibly bad on the surface of things. Maybe it's closures fault, maybe it isn't and is instead the fault of whatever was doing the drawing. But it's not a good look either way if that's the only data point that can be provided.

Similarly the IDE/dynamic type question seems to have missed the main downside of dynamic languages - lack of good IDE & other tooling support. How well are things auto-completed for me? How well does the IDE warn I've made a type error before I've gone through a long compile & test iteration loop? How well do linters or other things work, or is there some aspect of LISP that means this is just not an issue like it is in other languages?
Koch's Postulates to Identify the Causative Agent of an Infectious Disease
I think you are making my point and we would support the same things. I never said I have the solution but I did say selling ad space is not it. And I am sorry that patreon works for some and not others and that the “curve” is not fair. My only point was that contributors should not make their issues the communities or the projects; it’s developer specific not project unless all agree to make it project based; then go for profit. All things are not equal and each project has its own lifecycle/ecosystem. We are both in agreement that we would like a method of rewarding efforts of contributors.
> don’t see how any of this is surprising

Agree, not a surprise, and already on the record. Here, from 2017:

Siri records your queries too, but she doesn’t catalog them or provide access to the running list of requests. You can’t listen to your history of Siri interactions in Apple’s app universe.

While Apple logs and stores Siri queries, they’re tied to a random string of numbers for each user instead of an Apple ID or email address. Apple deletes the association between those queries and those numerical codes after six months. Your Amazon and Google histories, on the other hand, stay there until you decide to delete them.

http://themillenniumreport.com/2017/03/not-only-are-alexa-si...

From Wired, “Apple finally reveals how long Siri keeps your data”, in 2013:

Once the voice recording is six months old, Apple "disassociates" your user number from the clip, deleting the number from the voice file. But it keeps these disassociated files for up to 18 more months for testing and product improvement purposes.

"Apple may keep anonymized Siri data for up to two years," Muller says "If a user turns Siri off, both identifiers are deleted immediately along with any associated data."

https://www.wired.com/2013/04/siri-two-years/

In general, customers are used to this pattern: “This call may be recorded for quality assurance purposes” clearly means someone will be listening to it later. The same “product improvement purposes” language for voice assist would naturally mean the same thing.
Umm.. 4g did change the world though. "Just faster internet" is like calling the planes "just a faster truck"
DIY ZigBee Therapy Lights Are Hue Compatible
Summer Reading for AI Researchers
Silicon Valley wants to read your mind
Bingo.
Wise societies forbid polygamy as it results in the top 10% of males having women, and the lower 90% being -- to use a modern 4chan-ish word -- INCELS.

Of course, one doesn't need to condone polygamy to see this phenomena occur... liberalized divorce laws will suffice. you just spread the polygamy out over time. That is, when there is nothing shame in dating/marrying a divorced guy, you'll end up with a smaller and smaller percentage of men getting women, and a larger and larger group of men living in their parents basement hoping that some woman -- any woman -- will swipe them on tinder. This cohort of young men will prove to be very detrimental to society.
Yes, the computer is made of 2750 parts, these parts come from 21 countries and some of them made several loops through different country. The final assembly place is $INSERT_COUNTRY. Now tell me, if the $INSERT_COUNTRY is Vietnam, how will the US government justify say this is not? because right now that $INSERT_COUNTRY is China and they're levying tax on that basis. You seem to grossly underestimate how interconnected the world is today.
I was hoping this was going to be about education;anyone have tips or links on using coq to get better at math proofs?
Well wire-bond (within IC packages) is a form of welding, so it's not so uncommon.. Also the electrodes within a vacuum tube were all welded. Also wire welding is very common (it's the main technique) in automobile wiring harnesses.

Suppose you had an old radio made with all welded construction. I wonder if service would be easier or harder? There is no un-welding (so you'd have to cut the broken component out), but making the new weld is faster than soldering.
> It's not that I actively want to 'prove someone wrong', but part of the way I learn is through argument; expressing my disagreement in the hope that the other person will prove me wrong and I might learn something.

Start prefacing your respones with "I'm just playing Devil's advocate here, but ..."

> I'm compelled to launch into a logical argument with them right there and then

People use methods other than logic to select actions/ideas, and will recognize methods other than logic to defend actions/ideas. It sucks but it's the truth.

Unless you are in a space that is dedicated to logic, like forums about computers, programming, or engineering, it's rare you will really "win" any of these conflicts or have any lasting effect, and it's rare pure logical arguments are actually welcomed.

If you want to make people act a different way and continue to do so over a period if time, many more tools other than logic are needed.
Incidentally the only place where I'm less argumentative is HN and that's because I know that people in here are, generally speaking, knowledgeable, and quite often experts in their field. So I guess it boils down to how much respect you have for a community. In Facebook in contrast, everyone seems entitled to their opinion even when they don't know what the fuck they're talking about. With years you learn to not give a damn and only bother talking to communities you appreciate.
Good questions. Hopefully you’ll be satisfied to know we’ve thought all them through.

It’ll be more sophisticated than other survey options that aren’t built for this purpose. It’s solely for internal use and NOT a public reviews website (so that bad eggs can’t use rage to infect others).

It will default on anonymous with the option to share your identity. Based off feedback, this seems to be the best route.

As for incentivizing honest answers, we believe, again based off research, that most people will be inclined to provide that on their own, especially if they have the shelter of anonymity. There are a lot of details I don’t quite want to give away yet, but you’ll see it soon.

We’re excited and learned a lot with the feedback we’ve gotten so far and are excited for the soft launch to get more data and iterate quickly.
maybe they did? glass working is pretty ancient.
Steadicam Camera Stabilizer
Search and Find Jobs in Artificial Intelligence – Aijobs.com
Karel Čapek's play "R.U.R." premiered in January 1921
I remember an equally disastrous "rm -rf * ~". Again, notice the space, and also how the -r was completely unnecessary.

Fortunately these days everything is in version control and my editor doesn't clutter the current directory with backups anymore
You can read the timer's countdown counter instead of relying solely on the tick; it runs at 1.2 MHz approximately.
Sure - you can argue that to improve speech recognition you’ll need to collect ground truth.

But only a tiny fraction of the billion users are tech savvy enough to realize this. Most people are kept in the dark. And we are trusting Apple to be benevolent to not do evil with these recordings.
> Why do you assume dualism is not testable?

I assume that your conception of dualism is not testable because, in your own words, it is "beyond anything in this physical universe".

If it's beyond the physical universe, it cannot be observed and therefore it can not be tested. Otherwise, it would be part of physics and the physical universe just like gravity, if only hitherto unknown.

> Also, Darwinian evolution is well known to be false.

So is the general theory of relativity. Yet, it's "right enough" to allow us to make sufficiently accurate predictions about the physical world.

Furthermore, one theory being wrong doesn't make other theories "more right".

> There are a whole host of other mechanisms besides Malthusian pressure, random mutation and natural selection that are used to explain evolution nowadays.

As you say yourself, that's besides random mutation and natural selection, not instead. It would be a miracle if somehow Darwin could have gotten all of the details right with the tools available to him.

Also, in science everything is an approximation to some degree, there are always factors you disregard so that you can actually perform a prediction in a finite amount of time. There's variance and uncertainty in every measurement.

> As Eugene Koonin says, the modern synthesis is really a sort of postmodern evolution, where there is no ultimate explanation for how it works.

There's no "ultimate explanation" for anything. It's turtles all the way down.
The absolute best advice I’ve ever read comes from the book: How to win friends and influence people [0]

The title is dorky, and suggests a topic that’s completely unrelated to OPs original question. But the answers are in there, written brilliantly, and is especially effective for people who like to

>> ...launch into a logical argument with them right there and then.

Personally, that book changed how I’ve approached such situations dramatically. I can not recommend this book strongly enough.

[0] https://www.amazon.com/How-Win-Friends-Influence-People/dp/0...
Non-locality means that the way the probability of presence (wave function) of a photon is determined is by trying out all possible paths through the entire universe at once rather than only in regions nearby the photons?
I have this feeling that 5G is more about cheaply deploying faster Internet (ie. comment about these things going up next to people’s bedrooms) versus a more expensive fiber deployment to the premises.

Having driven around Dallas and seen a few of these things in residential areas, I can say that yes they are ugly. Unlike a regular cell site, it doesn’t appear that there is any kind of permitting process around these deployments as they just pop up suddenly.

I’m all for progress, but there are ways to make utility infrastructure less noticeable to the urban landscape. Unfortunately with the approach I’m seeing with 5G deployments, the telecom companies will take the cheap way out.
I guess we all know to avoid Linode and LogRocket now
Epistemic virtues: How we decide what is real and true – Peter Galison
Emotionally Extreme Experiences Are More Meaningful in Life
I know what you mean, but if I followed that anxious mindset.... then anyone who would die from a minor scratch probably deserves to die. Darwin in action, yes please.
Might be a sign that what we have isn’t that bad after all
It looks like you can set it using a CARGO_TARGET_DIR environment variable or build.target-dir config value. So I guess you could create a $HOME/.cargo/config file with the following in it (letting you skip the --target-dir part):

[build]
target-dir = "/home/user/build-artifacts"

But I don't know if the different projects will trample each other that way. If that's the case you could just go with a .cargo/config per-project targeting a subdirectory of the build-artifacts directory.

https://doc.rust-lang.org/cargo/commands/cargo-build.html

https://doc.rust-lang.org/cargo/reference/config.html
Nah, this is TP7 and it already was exclusively for PCs. I think 3.0 was the last version that was ported to other systems.
On one hand it sounds as a totally crappy move, but on the other hand if we don't like it we're free to fork it and try to maintain our own ads free version - which most of us will not do ever, because frankly we're all lazy bastards used to someone else do that shit for us...
Does the Amazon provide 20% of our oxygen?
>I will vote for anyone that wants universal healthcare, puts a price on carbon emissions, strengthens labor, and takes on monopoly (in the tech industry but other sectors as well).

It's interesting to see people with seemingly like-minded intentions come to such different conclusions.

Afaik all the sectors with the most government intervention are the ones plagued by monopolies, stifled innovation, cronyism (even cap n trade has rewarded polluters).

However, I think you are misinformed if you believe those candidates will set a market price on carbon. They want command and control solutions.
Clojure's startup time is very slow compared to other languages, but we balance it with fully reloadable systems both on the backend or frontend.

Otherwise the speed is almost identical to the speed of native Java and native Javascript.
Except when you experience the power of lazy structures, then Clojure is faster than native code.
The Russian spy who posed as a Canadian for more than 20 years
> Hinton has said that when he was growing up, his mother gave him two choices: “Be an academic or be a failure.” His family tree is branch-breakingly weighted with scientists. His great-great-grandfather was George Boole, founder of Boolean logic, familiar to anyone who has done a “Boolean search.” One of George Boole’s sons-in-law was Charles Howard Hinton, Geoffrey’s great-grandfather, a mathematician and sci-fi writer who coined the concept of a “tesseract” (a four-dimensional object we can see in the 3-D world as a cube—well known to all readers of the classic children’s novel A Wrinkle in Time), and who ended up in the U.S.

Interesting fact from reading this that normally gets neglected in media.
Earn Money from Viglinks
Proton Technologies claims pollution-free hydrogen breakthrough
The (corrected) drawing says Sprague made these capacitors: http://www.ibiblio.org/apollo/SCDs/scd_1006755-.pdf
(I don't know if Kemet made other capacitors used in Apollo.)
The balls on this guy!
For the sake of knowledge itself. If something is wrong, I feel urged to set it right..

You know, progress of humankind etc. ...
The moon is devoid of everything interesting.

If it was easy to extract water from the moon then we would have colonized the moon merely a decade after the first moon landing. The true space age could have started before the age of the internet. Unfortunately it just didn't happen.
Investing in a particular plot of land doesn't mean you get to veto everybody else's choices of what they do with their invested plot of land. Pure democracy violates individual freedoms.

You do you, and I'll do me.
>The only thing artistic in OO (as someone who practice it in the last 30 years), is finding the initial set of objects. But you will have this issue with any technique.

OO is highly artistic. It's not just the initial set of objects you decide on, but you have to decide how each and every single object composes and which objects compose. There's multitudes of techniques for how to compose objects and when to compose: Inheritance, dependency injection, Object composition, etc, etc. Within each of these techniques you still have to write custom code, what is the parent, what is the child? What property overrides what? How does the parent use the injected object? etc etc... You are literally designing the system rather than operating within a theoretical framework. It is largely art.

If you operated within the framework of an existing theory you would be able to much better predict the outcome of a system at scale, but because in OO you are creating the system from scratch for almost every application it is largely unpredictable.

In mathematics all theorems flow from your choice of axioms. There is little room for deviation.

Interface is not exclusive to OO. It's a seperate concept. I don't have access to that book so I can't say what she talks about in the book specifically but an interface is not exclusive to OO. The concept exists in mathematics as well which deals more with functions and types rather than objects.

Additionally OO to my knowledge came later after her paper on abstraction. Alan Kay developed OO. Then OO as we use it today came when JAVA and C++ grafted parts of the concept into the framework of procedural languages. This is not deriving a language from theory, it's more of an organic evolution of concepts. This isn't bad, but it's not axiomatic, scientific or theoretical. It is art through and through.

As I said, any system artificially created or not can be fit into the framework of some theory. There is a huge difference though between systems that are designed artistically vs systems that are derived from theoretical knowledge.
Putting a hole in the lid and covering it with micropore tape or polyfill would allow gas exchange without allowing microorganisms to escape or infect the jar.