skysight-inc/HackerNews huggingface dataset:
A Lisp-2 can treat function bindings specially at the compiler level.

In addition to the simplified hygiene, one consideration is that Lisp dialects typically have mutable variables. But the ANSI-Lisp-style labels and flet forms bind functions immutably. Thus a compiler never has to suspect that a local function will change.

In TXR Lisp, developed a way to combine Lisp-2 and Lisp-1 into a single dialect, to get the best of both with almost no downsides. In a nutshell, the square bracket syntax performs Lisp-1 style evaluation: [a b c] means expand/evaluate a, b, c in the same mannner, and then treat the value of a as a callable object which receives the values of b c.

Furthermore, any arguments of [...] which are symbolic (after macro-expansion) are treated in a combined namespace which contains both function and variable bindings. When the symbol is global, if it has both kinds of bindings, preference is given to the variable.

This [a b c] is a sugar for (dwim a b c), which is a special operator that is recognized properly by the macro expander, interpreter and compiler, including the various shadowing corner cases between macro and ordinary bindings.

Thus, there is no reason to have to choose between Lisp-1 and Lisp-2.

However, the implementation is a bit more complicated than just Lisp-2 alone, never mind Lisp-1.
Judge Orders Los Angeles Times to Delete Part of Published Article
Apart from the contrived example you cited, why do we need an abstraction for detailed value checking? Conditional statements are already a thing. Just use modules and readable function names:

// helpers.js
const isNumber = typeof n === "number" && isFinite(n)
const isTestScore = n => isNumber(n) && n >= 0 && n <= 100;

// business-logic.js
const uploadScore = (n, cb) => {
if (!isTestScore(n))
return cb(new Error("invalid test score"));
// super contrived, but let's do it
if (n === 32 || n%2)
return cb(new Error("we don't like oddities and we hate 32"));
// do something with valid test score n
}

IMHO, a validation library should validate types and structure and should know nothing about the specific values of your data. The values are likely relevant to your business logic and should be handled there for finer-grained error handling, logical branching, etc.
It’s interesting to note that there are very few repeated answers or “me too” type posts, which suggests that what works best is highly idiosyncratic and depends on a lot of factors (what you need to organize, with whom, and in what ecosystem).

I just use a [ ] in a plaintext. When I complete something I add an x, e.g. [x]. I haven’t found any shortcomings of this system yet.
About the author:

“I did a PhD in artificial intelligence at MIT. My undergraduate degree was in math. I’ve also studied cognitive science, biochemistry, Old English and Ancient Greek literature. None of that qualifies me to write Meaningness, but it may explain a certain STEM-ish orientation, decorated with occasional literary jokes. ...

I have founded, managed, grown, and sold a successful biotech informatics company. That may explain a certain practical orientation, and lack of interest in philosophical theories that depend on the world being very unlike the way it appears.”

https://meaningness.com/about-my-sites
Dude, that's what the OP meant unless you're still being sarcastic ;-)
What happens to SAFE investors when the project is accepted to YC?
Hi- I entered into a standard SAFE with a marketcap really early in a startup that was eventually accepted into YC (which is investing $120K for 7% implying a valuation of $1.7m). Does this mean that my SAFE converts with a valuation of $1.7m? Thanks in advance.
The linked model viewer is great: http://phoboslab.org/wipeout/
Mac is highly supported for pro audio, so you can hope. I'm certain that until pioneer, m-audio, etc. jump on board, they will lose consumers.
That's a whole lot of "what ifs". I'd rather just block people that are consuming resources and potentially affecting service levels for actual customers (or people that will actually convert). The situation you paint might be true of a very small percentage. But more often than not it's just people that want to use something without paying for it.
Accept that your hobbies are about enjoying yourself and learning new things. That's why it's called "hobbies" and not "work". Trying to make every single hour you are awake "productive" and "optimised" to achieve "goals" is a mentally unhealthy thing to do. Your brain needs time to just be happy and relax without stressing out about an end goal. Also (by the way) you and everybody you know and everybody reading this and everybody on the planet will die one day. So don't worry about it. Relax. Enjoy the ride.
By the way, it's entirely fair game for you to create config/domain specific things and not simply (Left|Right) dichotomies.

And by the way, TypeScript DOES have a form of Sum typing like that as of 2017! You can say something like this from the manual:

type Shape = Square | Rectangle | Circle | Triangle;
function area(s: Shape) {
switch (s.kind) {
case "square": return s.size * s.size;
case "rectangle": return s.height * s.width;
case "circle": return Math.PI * s.radius ** 2;
}
// should error here - we didn't handle case "triangle"
}

(You can see more about it here: https://www.typescriptlang.org/docs/handbook/advanced-types...., search for "Discriminated Unions".)

You can also make these ad-hoc ,and they're useful for harnessing underlying functions that might return null from stdlibs. E.g.,

function strToInt( x: string ): number | null

And then you're required to check for nulls and the compiler will complain if you don't check for them. Pretty useful!
Virtually no one does this. If their own laziness is enough of a hurdle for them to not bother, I'm fine with that.
Clearly, the alternative is to use a stretcher.

I was exposed to vertical and (dry) cave rescue practices via my father for most of my upbringing. Every exercise I ever saw performed involved strapping a person into a stretcher and using multiple people to maneuver them to safety. This is the method they train, and this is the method they know. I have no doubt this is the method of choice for more good reasons than I can possibly think of.

Now let's add cave diving to the mix, one of the most dangerous pastimes you can take part in. This is a situation where the most boring solution is the best solution. The fewer unknowns the better. These people have a background in rescue already, so they know their way around a stretcher. They have a background in diving, so they know their way around a mask. Dr Richard Harris, one of the divers involved is an anaesthetist, so he knows his way around sedating people. They've got this covered. Every person there already has experience doing what they're doing. To introduce a (relatively) large, heavy, untested piece of apparatus with which nobody has any experience working with to an already risky operation with a high chance of fatality is just ridiculous.

Good on Musk for thinking about the problem and looking for a solution, but anybody claiming to know better than the people who actually pulled this off without any fancy contraptions is in need of a reality check.
POSIX shell is dual-namespace, OTOH.

A variable foo, referenced as $foo, has nothing do with a function foo called as "foo args ...".

Imagine how stupid it would be if assigning a variable called ls prevented the ls command from working.
Telegram messages to myself. Super fast and always available.
YouTube privacy mirror Hooktube can't mirror any more – forced to embed
I think faster transport could be better for this. If we had high speed trains, people could live out in the countryside, yet they could easily get to the big city in an hour or so. It would be the best of both worlds — peace and quiet (and low cost of living!) in the countryside and easy access to what cities have to offer.
For short-term checklist, I use Todoist. I've tried every apps under the sun for making checklist (in my pursuit of finding the perfect checklist app), but I kept going back to Todoist, especially because I can indent each items effortlessly. While Todoist is not perfect feature-wise, its UI/UX is just perfect.

For long-term, I use plain text file and edit with Vim. I want to remember what I did and when.

For projects shared with others, I use OneNote or Kanbanflow.
For the wage, being a manager is better. If you really like programming, you'll find that boring.

My strategy is to build stuff with other folks, create a value and try to transform that to real money (with a startup for example).

I think your real question is more around what you wanna do with your life.
Quoting from site Changelog

------------------------

rest in pieces

It was a good run, 1.5 years. Started as a quickly made addition to the norbot project, and within long the server had to be upgraded several times. Of course YouTube Legal was an inevitability at that point.

Special thanks to the many people who created plugins and extensions for hooktube, /g/, the five people who donated anonymously, and BitChute for working hard on a real YouTube alternative. See you in the next project.

July 16: YouTube api features are back but mp4 <video> is replaced with the standard YT video embed. HookTube is now effectively just a light-weight version of youtube and useless to the 90% of you primarily concerned with denying Google data and seeing videos blocked by your governments.

July 11: HookTube no longer uses YouTube api for anything, and most features (channel page, search, related videos, etc) are gone. No choice.

June 25: Cyrillic unbanned from search, for now.

November 16: Front page a lot faster. Theater mode button.

... Etc...
Ah maybe not then.
I just use a Google Doc for my daily planner, no todo app is flexible enough. Trello for projects.
How Israel, in Dark of Night, Torched Its Way to Iran’s Nuclear Secrets
Dune!
By single stack frame I mean exactly that: a single perfectly sized (as it is known at compile time) allocation as opposed to a potentially runtime unbounded list of stack frames requuring a full stack (whatever form that mught take). I think that the optimization of converting the unbound stack to a fixed size stack frame can done for stackfull coroutines iff the continuation of the calling coroutine (i.e. the one that was suspended to activate the curren one) never escapes the coroutine function or any non-mutually recursive function called from the coroutine that the compiler can see though (either via inlineing or interprocedural optimization).

Interestingly this is similar to the analysis required to completely optimize a way the coroutine stack frame allocation. And because rust type system is good at tracking lifetimes and nested scopes, I think it might be possible to extend it ti guarantee this sort of optimization. Unfortunately this way beyond my pay grade.
Charles Stross' Accelerando
"If I had asked people what they wanted, they would have said faster horses." -- Henry Ford

Nobody asked for USB ports when they had serial/parallel ports, or for the floppy drive to disappear, or to lose the VGA connector.

I don't know if Apple have made the right calls here (on either the USB-C ports or the keyboard), but they do have some history in making eventually-winning calls on at least some of these things. (That _also_ built the Newton, so I'm not gonna claim they _always_ get it right.)

It'll be interesting to see how these design decisions fare over then next 3-5 years...
This is about as thrilling as eating sawdust.

I'm really failing to see the point of this article. It's not like there's any particular insights in it. His net worth and retirement status is completely irrelevant to his spending habits.

It would've been a slightly more interesting article if it was a yearly breakdown, but a weekly breakdown doesn't tell us anything. The majority of that week's expenses was a hotel stay, which I'm sure is not a weekly expense.
I still don't understand why so many of your comments here are, "People are too stupid to..."

This is an excessively negative argument, and has been used many times to push back against technologies that have subsequently shown to actually have huge traction. A great example of this that the Python community still makes: lambdas are too complicated.
Works wonderfully, especially with the updated packages and performance enhancements. If you need something from 16.04 or 14.04 there is always VMWare with the Virtualization Extensions enabled which allowed me to still use KVM and older packages when testing backwards compatibility.
Why do you think this will happen? Why isn’t China the counterexample?

Maybe it is really capitalism, not democracy, that determines the long-term success of a society. That’s bad news for people who care about freedom, but it might be true.
Survivorship bias, but you were close. :-) Its more to do with the people that weren't successful not being around any more.
That's a really interesting perspective, thank you.

There definitely are some truly unrealistic standards out there, but the unhealthy or impossible are probably a small subset of the images we see these days.
> Do not use a chat system as your only support channel.

I disagree. We've found Slack and Gitter to be the easiest and most effective way to communicate with our users. At least for troubleshooting and diagnosis. Even our paid users love that we setup a private Slack channel for communication with us on-demand. If we identify a big enough issue then it becomes a GitHub issue.

So many support requests are one-off "How to do X?" They're usually softball questions or good points for us to interact with our users about pain. So what if folks can't self service their issue? Providing excellent on-demand customer support and responses is really valuable from the perspective of showing you care about your users and building a relationship. It's often through that communication we learn interesting new things about usecases for our software too.
I know ramnode and ovh accept prepayment (maybe more than one year for ramnode).

The simplest is to make a static website, put it on GitHub pages, and make your domain point to that.
+1 for joi. We use it extensively. It really reduces development time for us and it has some nice features like referencing other values in an object and evaluating the whole object at once (instead of fast fail) which is useful for APIs so you can return all the errors at once.
This article showed a pattern of making more cost-conscious choices to minimize expenses. All that fast food, though... not the lifestyle for me!
Check which inbox for what? For a new disposable address, presumably no "inbox" even exists until the first e-mail message is delivered to it.
How was the unified Greek state different if you don’t mind me asking?
Why I like AJV or similar options is because you get to declare what you expect with a simple schema and it rarely needs to get complicated.

It's more overhead than simple functional approaches combined with conditional statements, but I think it's more approachable. Otherwise I find it doesn't leave too much of a margin for error and it's reasonably fast.

It's a personal preference, but I prefer it far more than a fluent interface. I actually avoid those now despite really loving them in the past.
Now that I have a video demonstration, I feel obligated to post it any time I see someone complaining about the escape key. You can use escape on the touchbar by putting your finger in the exact same place as you would on any other keyboard. Escape didn't go anywhere.

Video proof: https://streamable.com/ao18b
Whether he actually proved it for the first time, I'm not sure. But proof and assumed common knowledge are very different things. A simple example in a different domain, the full proof for 1+1=2 is several hundred pages and was not proved till the early 1900s, while that would have been simple common knowledge for millennia beforehand.
Open source isn't necessarily a big thing in DIY cultures. They might be cloning something, but they are cloning it for their own process. Even if you could get the design files chances are you couldn't produce it especially not in low numbers. It is more like, say, GNU vs. BSD.

I like maker culture, but it can also be disappointing. A lot of it is just selling breakout boards and components at huge markups.
Yes. Technology can do that. Voices can definitely be simulated. Even faces can be simulated with the voice if you want to do video calls. (More artifacts there)

Claims are from seconds to 20 minutes of the original speaker's voice to creat a model that can be made to say anything:

https://www.theverge.com/2017/4/24/15406882/ai-voice-synthes...

https://motherboard.vice.com/en_us/article/3k7mgn/baidu-deep...

https://www.npr.org/2017/05/05/527013820/new-software-can-mi...

Definitely artifact-y with less source material, but it is very possible.
I fear Apple Notes, which I use religiously. The problem is, I use it to its fullest-with long notes, PDF attachments, drawings, and so on. I’m afraid at some critical point I’ll hit some undocumented wall, and find that I’ve a usage or search limit, only to be told “you’re not supposed to use it that way.”
Scientists solve fish evolution mystery
It’s the AppleScript Uncanny Valley: the closer you get to allowing all natural language in your programming language or API, the more likely it is that users will be confused, because they expect something to be possible and it isn’t. This feels similar.
The author of this article makes several claims about how you can get an item remixed by the local shops and how you can skip over the marketing of a major western brand and just buy things almost fresh off the line.

I don't doubt the fact that you can by things in obscure Chinese labels claiming they are from a certain brand, we do that here in my country where mall shops will sell you "original" products that skipped over any official Samsung/Huawei/Etc. vendors. But this entirely just headphones, chargers, batteries, etc.

I'd really like to believe Shenzhen is a place where I can get an existing product remixed with any oddity I'd like but I also want to see a proof of that. Everything that these people ship out overseas to developing countries that resell their products no questions asked are selling smartphone accessories.
True - but I doubt that's really a significant factor in the MacbookPro target market.

(They're much more likely to optimise them for being carried in artisan faux-vintage messenger bags by people riding share-scooters between home and the FAANG shuttlebus...)
After seeing literally dozens of frayed Apple power cords, I think the real problem was actually the relative softness of the old cable sheathing, not the magsafe part itself. The new USB-C cables are quite noticeably stiffer.
Anyone use the Eisenhower Matrix? A few really productive people I know seem to use it to great effect. Was wondering if anyone here has any tips with their experiences.
To me, Shenzhen is simply an orchestrated end-run around the intellectual property of others, with the government looking the other way. While the efforts there are not without sophistication, that sophistication is a small fraction of that intrinsic to the “borrowed” technology.
I didn't dismiss them, as I pointed out, there are examples of exemplary Chinese companies that have innovated, and at high quality (e.g. DJI) They are getting much better, but Shenzhen's get rich quick MVP culture isn't how the Germans or Japanese got to high quality products, and it isn't open source ethos. Most of the stuff being produced is not being done with the goal of sharing with others, it's being done for rapacious reasons.

No one's exaggerating the competence of Japanese rail, look at the safety record of the Shinkansen going back to 1964, it is the best in the world. Corner cutting in Chinese manufacturing is well known, as it is today. Yes, it will get better in the future, just as the US started out as an IP thief stealing from Britain and corner cutting in the US is still a problem, but the way it improved is by having a rigorous, transparent legal system and regulatory framework, so that bad actors who defraud the community can be punished.

If you're a Western company manufacturing something in China, and you literally don't have boots on the ground locally to oversee quality control, what's the probability you production runs will have bad yields or other problems that will be hidden and covered up, or that you'll be ripped off and receive relief if they mess up, or worse, that if your product becomes a success, it own't just be stolen in the middle of the night? Are we just going to say "oh, that's open source, if some guys raid your factory in the middle of the night and you find some of your cutting machinery missing in the morning?"

This isn't about pooh poohing the accomplishments of Shenzhen, it's about hoping for the judicial and regulatory framework to mature, so if that if say, someone sells your kid a gadget with flaky lead paint, someone somewhere will get sued and not abscond off to a Yacht with their money parked in a overseas shelter. Silicon Valley isn't perfect, but if Apple sells me a phone that gives my kid cancer, you can be sure they'll be taken to court. Or if I hire a guy in SV to work on my product, and he downloads the entire software, quits, and then opens up a shop to sell a copy of it the next week, he'll probably be going to jail.

We don't rely on 关系 here, we rely on legally enforceable agreements to hold people accountable and increase trust. To me, the ICO bubble exhibited the same problems. Fly by nights springing up, most of them copies, some with completely fake businesses, taking in a bunch of customers, and then delivering either something shoddy, or disappearing with the money.
if I get really good at making copycat hardware in a place where patent infringement doesn't exist I'm still a copycat.
> Monads as implemented in pure functional programming languages like Haskell cannot usefully abstract over asynchronous and synchronous IO in Rust for a variety of reasons having to do with the way the type system exposes low level details by virtue of Rust being a systems programming language. I do not believe that `do` notation could be a useful mechanism for achieving either the ergonomics or the performance that async/await syntax will have in Rust.

Sorry, but I don't buy it. I had a half-baked, unfinished proposal for an effects system that would have allowed Rust to implement async/await just as efficiently (no stackful coroutines) along with any number of other effects [0]. Maybe it wouldn't have been a good idea due to stretching Rust's complexity budget too far, but that's very different from saying it's impossible. Having watched the development of Rust closely I really think that the design team just didn't understand the theory side well enough to be able explore the design space here. (I'm not being as critical as I might sound, PL theory is hard and the Rust devs have wielded it much more competently than the designers of any other non-research language).

[0] https://internals.rust-lang.org/t/start-of-an-effects-system...
But if you answer it in a chat, you are going to have to answer it in that chat multiple times. At least with an issue tracker, you can search through the old issues pretty easily.
I don't see how having a loss leader for viewing space is going to work out for them financially. What are you going to upsell?

Although I do recognize this doesn't really appear to be a purely commercial venture, yet.
ffs he was doing so well...

I mean his efforts were real and sincere and REQUESTED
https://i.redd.it/l5cdo36ns4911.jpg

(sorry for the Reddit hosted image I was after a quick reference)
Morse Typing Trainer with Google
I guess that's what I have in mind. Any practical coroutine API has an explicit coroutine creation and yielding point that act as continuation delimiters.
Stifling the first amendment is serious business. When are judges going to be held accountable for their wrong actions?