skysight-inc/HackerNews huggingface dataset:
GPP asked what lisp's got that Ruby doesn't. I told him. Lisp isn't the end-all be-all. If you can't trust your teammates, than maybe you shouldn't be using Lisp. But keep in mind that you can write INTERCAL in any language. Lisp just makes it easier, because Lisp does its best not to limit you.

Besides, who would invent their own language in macros for no reason?

Also, the syntax is one of the best parts about Lisp. It's agressively regular, so you'll never have to worry about screwups or ambiguity. And with readtables, the syntax can be more expressive than you might think. Although you did set the standards pretty low...
I didn't know this existed, and I've looked for something like this.

If you are even remotely interested in coding anything in Django, I would check this out.

I am not, in any way, affiliated with this tool or the team behind it. I don't know them.
Show HN: Become a Web Dev: Learn code, resumes, interviews and more
Have you seen http://en.arguman.org?

It allows you to make an assertion and then break the argument down into peer-validated because, but, and however statements.
Well...just tried this game for a few seconds and already a user has identified something for you to work on: http://imgur.com/a/aFEN4
Fair 'nuff. That is a major benefit. Steve Yegge's response is way more interesting than the article itself.
On large team Lisp projects, you don't have every individual person arbitrarily invent their own idiosyncratic abstractions. The project as a whole has a common set of abstractions that fit the domain, which are designed and modified the way you would design the abstractions regardless of the language and programming paradigm you're using. Macros are a language tool that lets you build abstractions, in some cases imo allowing better abstractions than would be possible without macros, most often ones simulated somewhat clunkily with OO features (or something godawful like C++ template metaprogramming). But if you have a large team project you still need an actually functioning team, common abstractions, project management, documentation, code review, the usual stuff. Successful large Lisp projects of course do all that.

I don't see a meaningful difference here between Lisp and, say, C++. If you have a dysfunctional team writing C++, full of cowboy programmers who invent their own idiosyncratic abstractions without coordinating with anyone, the fact that C++ doesn't have proper macros doesn't really meaningfully limit the resulting damage. What stops it from happening in functional teams isn't that C++ the language prevents it from happening, but that the team has some kind of working process that allows them to successfully write code as a team.
Perhaps the best example is this kid...

http://www.cnn.com/2010/CRIME/02/10/arabic.flash.card.suit/

...who was arrested after the TSA called the cops because he was studying the Arabic language, and everyone knows that the terrorists speak Arabic. It was lucky for me that the cops they called during my ordeal in this story used their own judgment rather than that of the TSA.
I'm not condoning the TSAs behavior, but with the name calling, put downs, and nature of the writing, I wonder if the author's demeanor affected how the incident was handled.

Justice should be impartial to mood, but realistically people are people and don't respond well to the feeling they're being condescended upon.
Nothing new about this. Only thing "new" is the attempt to virtue signal with old technology. No, wait, that's not new either.
You mean AppleScript?
How Pittsburgh Became Uber’s Driverless Testing Ground
1) "Ruby is a denser functional language than Lisp"

Lisp is a regular, explicit language. It does not strive for micro-density, but rather tends to achieve macro-density by allowing more expressive abstraction and transformation in the larger componentry of your projects. Its regularity around parenthetical s-expressions is the source of its expressive power.

Things like "(+ (aref x 3) 4)" are larger than "x[3]+4", but the operations and source code representation in Lisp are directly accessible to matching and transformation without having to go through extra rigmarole to deal with classes of AST node objects or whatever. This makes the usefulness of these features immediately accessible for everybody, and useful for quick utility, not just major undertakings.

2) "Ruby gives you about 80% of what you want from macros"

I'm sorry, but this section is simply ignorant of what Lisp macros are for. Simple syntactic sugar is obviously possible with macros, but certainly not its major use. Providing abstract constructs that require custom code generation, creating lower-level boilerplate (like auto-creation of introspective data structures and customized support functions), and wrapping custom behavior around inline scopes are the primary uses I've seen and used. Ruby can do a little of it, but I see no "80% of what you want" there.

3) "Ruby's libraries, community, and momentum are good"

Quicklisp was created after this article was written, and has been a godsend to the community. Lisp tends to develop a very roll-your-own culture because of its quick accessibility of creating abstractions, but the ease at which you can publish & reach for libraries with QL has brought a lot of cultural shift towards reuse. There are a ton of both esoteric and practical libraries out there, and common libraries for threading, networking, OS interaction, etc, are the common case now (and actually have been for quite a while before Quicklisp as well).

There's tons of interoperating flexibility because the language provides a huge baseline (especially its object system), so it doesn't all need to lock into an on-top-of-Lisp infrastructure that would constrain the programmer's options. It's a good time to be in Common Lisp.
This tech / company was profiled a few years ago in the NYT http://mobile.nytimes.com/2011/03/24/business/smallbusiness/...

Essentially no way to profit from it, so the founder gave up
Author took the time to make the site take the with port width on small devices but hides the content with that ugly sidebar menu... I'm not sure about this. It would make more sense to leave it as it is for mobile.
Wal-Mart stops selling Egyptian cotton sheets made by India's Welspun
You could address this by a punitive tax regime for prisoners. Then the person could still be earning more than a few cents per hour but additionally is contributing more to society via taxes. This also mitigates the undercutting of the non felon labour market.

I'm not really advocating for this, but it'd be one angle to consider.
Bringing up USB-C suggests you miss the point. It's not about picking jacks and wires. The new world is wireless, and incidentally it's standards based.
No, AS didn't do nearly as good a job as ST did.
Depends on the use case! In fact, the answer to "is X format faster than Y format" always depends on the use case. It's always easy to construct cases where one or the other looks better. People of course want to know "on average", but in reality there's no such thing as an "average" use case. You'll ultimately have to test the case you have in mind to find out.

With that said, here are some considerations:

- msgpack is usually used as a binary encoding of JSON, with no schemas. That means that textual field names are included in the encoded message. Formats like Protobuf and Cap'n Proto that have schemas known in advance can avoid this bloat, making them faster and smaller.

- msgpack is not a zero-copy encoding. It's necessary to parse the whole message upfront before you can use it, like with protobuf. Cap'n Proto is zero-copy, the advantages of which are described extensively on the page. For example, if you have a multi-gigabyte file containing a massive Cap'n Proto message, and you just want to read one field from one place in that message, you can do that by memory-mapping the file. No need to read it all in. That's not possible with Protobuf or Msgpack.

I think it's best to focus on these kind of paradigm-shifts when trying to reason about performance. You can always micro-optimize the encoding path later on, but you can't suddenly switch to zero-copy later if your data format wasn't designed for it.
1) I was admittedly non-cooperative when it came to answering questions that I had no obligation to answer, but always polite. When they asked me to explain myself, I declined their offer, but did not mock them as I do after the fact on my blog.

2) Will be submitting a FOIA request for checkpoint video so you can see for yourself. :)

3) Sad that this is your first thought. The government just detained someone illegally, then called them off a flight in front of a plane full of passengers for no lawful reason... whether or not I have an attitude problem is really not the newsworthy issue here. Reminds me of the people whose main take-away from the Eric Garner incident that resisting arrest is a bad thing.
I might give 'em a shot if I pick the game up.
Well, then they can't do widescreen, 60hz, etc. All of which they want to do and arguably have to do to sell it to console gamers nowadays. Aside from that, perhaps they want larger sprites, better physics, a different game saving mechanism, at some point you're holding yourself back by emulating.

And then there's the fact that this blog post just convinced me to buy this game.

I love wonderboy, I think it's extremely underrated and is as classic, and timeless, and as mechanically refined as Super Mario Bros. and Zelda were on NES. Master System just had so much less market penetration that Wonder Boy is now nowhere near the size of those other franchises, not because it lacks the merit, but because it lacked the publicity.

I had thought this was simply a "hand the IP to some new guys so we can milk the cash cow" when I saw the news that it was being made. The fact that these guys give this much of a damn has convinced me to pay full retail, I want them to be able to keep doing this kind of work after this game is done.

/my 2 cents
I live on a residential street with this style of traffic light along it.

I suspect the cycles have been designed this way to also minimise the amount of noise. One or two cars every 30 seconds is less distracting than 5 cars in a row followed by 3min of silence.
"Virtue signal", huh. I didn't know this phenomenon has a name. Nice.
I think the problem there is more that you talked to me about finding hitmen, even if I didn't help.

If I merely let you access my directory of all the people in town sorted by job, there probably wouldn't be an issue.

A search engine is not a human. It can't be expected to preemptively filter out suspicious results. Google certainly doesn't.

In the end I just don't think it's right to shut down a site because of its userbase. We don't shut down roads when most of their traffic is criminals. And there's nothing inherently illegal about torrent search engines.
Hah yeah I realized that meta joke after I posted
("gutter oil" being my personal favourite - don't Google it if you're planning to eat any time soon).

I'm not at all surprised that people are trying to recycle oil; the real problem here being that it's not been reprocessed sufficiently to actually be usable as new oil.
Yeah that's one way to go. Probably I'll use Algolia for users that prefer up front loading. It's slower than official API but would do the job.
GraphQL with the Serverless Framework
I thought that the main reason we didn't do this was because it's was hard - platform inconsistencies like 32/64 bit, endianness, not to mention differences between how languages store things, etc.

The thing that irks me about these methods is that if you're using a capnproto Int rather than a regular Int, doesn't that mean that you're basically forgoing a lot of functionality that was built around and works with the regular old data types?

For example, we also do that with numpy data types in python, but there the performance benefit is super clear - numerical operations dominate. I guess it really depends on your use case. If most of your time is spend on serde, then perhaps it's worth it.
No experience with their laptops. I can speak to their customer service, and it is absolutely fantastic. If you find a machine that works for you, I could not recommend them as a company more.
Depends heavily on the role. It's all optional reading too.
What exactly is this W1 chip thing? Does it change the underlying bluetooth communication? That wouldn't make sense as the AirPod works with existing Mac as well. Looks like W1 chip is still utilizing the existing BT protocol but adds extra logic to make it easier for pairing/dropouts etc if the host (Mac/iphone) has support for it?
Correct me if I'm wrong, but some of this sounds like blitting, except optimized for the in-memory structure and not the on-disk structure.

In 2008, Joel Spolsky wrote about 1990s-era Excel file formats and how they used this technique to deal with how slow computers were then [1]. Same technique, new problem set.

[1] http://www.joelonsoftware.com/items/2008/02/19.html
What is "POV"?
I finally tried out rkt as a result of this post. But are there images other than the Alpine one? Other linux distros, e.g.? I'd prefer not to use docker images unless that's the only option.
I'm a Linux noob, I've played around with some live CDs. The other day I tried to set up a flash drive to work the same way as a live CD. I did get it working eventually, but it was a surprisingly bad experience. Some of the flash drives I created didn't work at all, one of them booted a couple times, then stopped working, the boot process would vary from one boot to the next, etc. In my experience, live CDs "just work" in comparison.
You mentioned twice that you're moving to US because tax is higher and more complicated. Isn't that the opposite of what you should be doing?
Is X faster than Y will be tough to determine without a really detailed treatment of the use case. For example in C++ you want to account for the unavoidable construction of your class type, its inevitable destruction, how long it takes to put it on or take it off the wire, how often you might expect to miss the cache when referencing it, whether the type of movable or copyable and how expensive that is, whether or not you can reset it for reuse without destroying it, and much more. If you were to compare to protobufs I doubt that you'd find serialization and deserialization to be the predominant costs. I don't know what the cost breakdown looks like for capnproto, but maybe kentonv has standing benchmarks.
Thinkpads really are great machines for linux. Ubuntu 16 and immediately install cinnamon or Xmonad (per your taste)
That Stephenson interview is possibly the best thing that Slashdot ever published.
There is an XSS in the chat: https://i.imgur.com/Eo7dwSY.png ¯\_(ツ)_/¯
Do you have a paper about this? Sounds fascinating
> Do I have to require 'rubygems'?

No. Never. Your code should not expect/require a particular dependency manager.

> should I require_relative?

This has nothing to do with package management, and the answer is again, "no, never" if you're trying to require a gem. This is to require files from within your own projects.
Notebook for Startups? New on Kickstarter
> platform inconsistencies like 32/64 bit,

In terms of data layout, 32-bit vs. 64-bit architecture only really affects pointer size. But Cap'n Proto does not encode native pointers (that obviously wouldn't work), so this turns out not to matter.

> endianness,

It turns out almost everything is little-endian now. Also, big-endian architectures almost always have efficient instructions for loading little-endian data. So Cap'n Proto just has to make sure to use those instructions in the getters/setters for integer fields.

> not to mention differences between how languages store things, etc.

Cap'n Proto actually doesn't attempt to match how any language stores things. Instead, it defines its own layout that is appropriate for modern CPUs. It ends up being very similar to the way many languages store things (especially C), but isn't intended to exactly match.

The C++ implementation of Cap'n Proto generates inline getter/setter methods that do pointer arithmetic that is equivalent to what the compiler would generate when accessing a struct.

For Java, Cap'n Proto data is stored in a ByteBuffer, which effectively allows something like pointer arithmetic. Again, getters/setters are generated which use the right offsets.

Most other languages end up looking like either C++ or Java.
Do you have any user data on whether people would prefer the downswiping went to the next comment at the same level, or the next parent regardless of if they are currently on a child?

My use case is that I'm scrolling and I get bored with a thread. It isn't much different to swipe up on the thread to scroll down further if I wanted to keep reading, and there is no easy way to just jump to the next top-level thread. I'm left either having to collapse several levels of comments to condense things, or scroll until I hope I find the next one and don't miss it.

At the very least, I feel like this should be configurable behavior for the button.

But again, this is just me, so you might have data saying people want otherwise, and this is free so I shouldn't complain :)
Hack the vote: Experts say the risk is real
So what does "immutable by default" mean??? Is there even an agreed upon definition? Because you certainly didn't explain / explain clearly if that's what you were attempting to do... Clojure has mutable vars and set!, so it seems Scheme is no worse and fits that guy's definition of IbD.
Are there any easier tests that don't involve a microscope, particularly to sort out HFCS in the honey? Like, do they have different melting points, or any other easily testable solution?
Yeah, publications like Gawker media (which had much more style than geenstijl.nl) can vouch for US freedom of speech...
We had a major redesign in about... 2001ish. You still see the old notes circling around sometimes and they are still legal tender. The $100 bill was redesigned about two years ago. We have new paper notes coming out soon... https://modernmoney.treasury.gov.
The project page on the Dyson Awards site manages to admit that it's based on old technology that Einstein thought up:

http://www.jamesdysonaward.org/projects/isobar/

I guess the proposed novelty is that it can be carried in a backpack and would be designed specifically for cooling vaccines. My reading of it suggests that there isn't much in the way of a practical model just yet (they show pictures of a prototype, but I wonder how long it has sustained cooling).
Point of view
> but which would lead to everyone having a better experience in the long run (and for early adopters, a better experience as soon as they start using their AirPods)

How long is the long run? Oh and he forgot to mention that "as soon as" precludes you spending $150 on AirPods. So, after you spend several hundred dollars buying a new phone, you're either relegated to carrying around a pointless dongle for something as basic as a headphone, or you now have to spring $150 more for AirPods, and keep charging them, because Apple now has "courage". IMHO this decision is driven primarily by self-interest from the Beats acquisition.

In any case, I'm actually looking forward to better wireless tech (from any vendor). I'm just not buying the courage BS, or that this iteration of the tech is ready for primetime. I don't doubt that they will get a ton of sales from the iPhone 7. Hopefully it will help bring down the cost over time. I'm hoping that by the time the iPhone 8 comes out, they'll have out of the box wireless headphones and proper wireless charging, etc. I only hope they don't slow down my 6S too much before then.
Add that as a tag line.

I may have rewritten Protocol Buffers, but infinitely faster.
How long has ML been around and how long did it take for it to become 'mainstream' enough to be used by big teams at Facebook and Jane Street?
I'm using "data-driven" synonymously with "dynamic" in this case, which is indeed the changing model based on the data using machine learning.

I haven't played with it to this extent, but can't you get a GUID of some sort using the GA API[1] or custom dimensions? I haven't tried it personally and I know they restrict some of the data so this may not be possible.

I do like that you are factoring in content into this. The regular way of doing that is to create some custom channel groupings in GA (probably some other ways) but content really deserves a place in the funnel when looking at attribution. And you are right that content marketing is hardly free and has a high cost associated with it that is hard to prove ROI on.

Definitely would be open to chatting. I work in Mountain View if you're in the area and that would be easier.

[1] https://developers.google.com/analytics/devguides/reporting/...
Ask HN: How do you find advertisers for your product outside of ad networks?
I have a product with hundreds of thousands of users that I want to monetize with advertisers/sponsors but that isn't compatible with ad networks like Google Adsense. Currently, I've just been cold emailing companies asking if they'd like to advertise on my product but that hasn't been too effective. Are there any other strategies for finding advertisers/sponsors?
> Macros are a language tool that lets you build abstractions, in some cases imo allowing better abstractions than would be possible without macros

I guess 'better' is the operative word I question here. You're creating syntax that no-one has seen before. How is that a good thing? Meanwhile in languages like Python, with syntax built-in, people build large apps without ever doing this, making their code far more understandable for the next person that touches it.

> I don't see a meaningful difference here between Lisp and, say, C++.

Agree :) (joke)

> If you have a dysfunctional team writing C++, full of cowboy programmers

At no point am I suggesting we can save ourselves from cowboys ...

> What stops it from happening in functional teams isn't that [...] the language prevents it from happening, but that the team has some kind of working process that allows them to successfully write code as a team.

But people are arguing 'the whole point' of lisps is that you can be free to do this, and that this justifies the 'paren-crazy', syntax-less language trade-off, and I'm yet to see any justification it's necessary to allow this at all.

What I'm saying is that all the lispy parens give you are footguns and all you're saying is that good teams don't use those guns. Well then why give them the guns at all. Why not give them a language with decent syntax instead.
Just got it on this recommendation, absolutely worth the couple of quid, love the auto dark mode based on screen brightness
For most of the world, being CEO means being CEO of an established company rather than a startup. And really, incorporating a company and making yourself CEO doesn't amount to much. There's a lot of work to do before the title means anything. And much of that work dovetails with the point made by the author of the article: CEOs need to know a lot about a lot of different things.