skysight-inc/HackerNews huggingface dataset:
Yeah for sure. Here are some screenshots:

https://imgur.com/a/aT8TU

There are additional settings on the various detail screens (not shown), such as wg peers.

Vuejs turned out to be quite cool. If you plug in a new linecard (like an USB Ethernet adapter for example), it pops up in the GUI immediately and is ready to be named, configured, used etc. ;-)

> WireGuard listens on all interfaces [...]
> If a packet makes it to your system and the authtag is validated, it doesn't matter through what interface it arrived; it's legit.

Yeah but you try telling the person administering the combined firewall/vpn/router box that his/her firewall rules are no longer in control of what traffic is allowed in or not. If it happens to be destined to the wireguard port, the rules are for naught.

I should probably explain that there's a small firewall in there too. It uses nftables to compile user rules via eBPF to machine code. The way these things normally work, as I understand it, is that forwarding is disabled during boot, and only when the firewall policy has been successfully loaded is forwarding enabled via a sysctl flag.

The firewall handles simple stuff like masquerading and destination NAT. Advanced functionality happens by handing off datagrams from the firewall to userspace or kernelspace daemons like wireguard.

Long story short (too late, sorry), you can't have stuff listening on 0.0.0.0/0 and ::/0 because it is unaffected by the forwarding flag and hence the firewall rules are violated during boot (and potentially for an unbounded time period if the policy fails to load for some reason).

Anyway, turned out it was really easy to fix by patching the wireguard source code.

> WireGuard is layer 3 -- IP -- not Ethernet, which is how I believe tunnels should be made.

That's a completely fair point.

I'm just talking from a user's perspective, where what pops up on one's box after installation is in fact a virtual ethernet device, in kernel-speak.

When the device then drops L2 frames, it can be a bit unexpected to someone unfamiliar with that specific philosophy.

Is there any recommended workaround if one wants routers to see each other on the link layer? Some kind of encapsulation maybe?

> WireGuard isn't Ethernet; it's IP. It doesn't use MAC addresses. It has public keys instead.

Yeah I guess the public key sort of is the link layer address in this case.

> a better place to discuss is probably #wireguard on Freenode, or the mailing list

I was tempted to ask why the wg device shows up with the POINTOPOINT flag, when it is clearly a multipoint device, but I'll save it for the IRC channel. ;-)
Techmeme summary: Josh Constine / TechCrunch: Facebook says Clinton and Trump campaigns spent combined $81M on ads on the platform, compared to $46K spent by Russian Internet Research Agency

Final paragraph from the article:

Senator Richard Burr closed the session asking the companies to prevent disruption of America’s future, abide by Federal Election Commission law, and that they should request anti-trust waivers if they need to further cooperate with each other. It will indeed require a joint effort and strategy sharing to defeat election interference, especially if Facebook, Google and Twitter want to avoid heavy-handed regulation.
Async/await would be fantastic in Java. Unfortunately they don’t seem to be a fan.
> Data locality can be greatly improved by storing a SQLite 3 database in memory instead of on disk

My understanding (although I can no longer find the page in the sqlite3 docs) was that because of caching, using :memory: is unlikely to make much difference in practice.
Location: Toronto, Canada

Remote: Yes

Willing to relocate: Yes

Technologies: C/C++, Java, Python, JavaScript, HTML, CSS, Verilog HDL, Keras, TensorFlow, OpenGL, Node.js, Computer Architecture, Distributed Systems, Machine Learning, Operating Systems

Resume: https://drive.google.com/file/d/0B5cJAxAVm5wRalRmUXVwS1hsTEE...

https://www.linkedin.com/in/salman-fazal-217197b6/

email: salman.fazal@mail.utoronto.ca
Thanks for that! I did not know.
True, but the constructor method is checked/validated at compile time vs. run time with the builder pattern. Not quite the same as your example, but Kotlin does have good syntax for copying data classes while only changing a single field - this could be used similar to your currying usage.

https://kotlinlang.org/docs/reference/data-classes.html#copy...
How Startups Differ from Mature Small Businesses
Chuck Moore was amazing before I even knew how to code (and was a big inspiration for me), so I'm not going to even pretend that I know how to do what he does. However my view of this is that we, as programmers, can't just look at our jobs from a technical perspective. Nobody is given the time to make great solutions. The best programmers know how to work so that they can get the time they need. This is not trivial.

You can't just wander up to management and say, "I need X to make an optimal solution". They will negotiate you down. That's their job -- to negotiate into a position of advantage. When you need protection from the chaos that surrounds the rest of the organisation, you can count your lucky stars when you have an expert negotiator on your team. But when you go up to that expert negotiator and say, "I want X", the first thing that's going to go through their minds is, "I wonder if I can get that cheaper".

So programming has to be a balancing act of constantly delivering functionality while at the same time ruthlessly refining your vision of how it's going to work. If you are delivering quickly, regularly and constantly nobody will touch you for fear of screwing it all up. But knowing how to do that while still marching inevitably closer to simpler and simpler solutions is hard. A normal person needs to practice (and get it wrong) a long time before they get good at it.

Chuck describes a lot of his techniques in his books, but it's fluency that you need -- and it's fluency while things are hitting the proverbial fan that makes all the difference. You need great judgement to look at what you need and to prioritise it appropriately. If I deliver X quickly, I'll show progress. Do I need to show progress now? How fast? Can I refactor Y while I'm here? Is all of this necessary? And so on and so on.

It's tempting to think, "If only I was given lots of time.", "If only I didn't have incompetent coworkers", "If only people would listen to my advice", "If only management could look past tomorrow"... But that's not useful. Anybody can be a great programmer if we remove every problem before they start. The measure of your worth is how many of these complicating factors you can deal with while still producing great code. That's what's rare.
Even for just plain data values, getters and setters can be decorated with annotations that modify the member-"property's" behavior depending on context, e.g., what should happen to this member when I serialize to JSON ... or when I read from a DB?

I've found these decorators real useful in the past ... and while they balloon the code for the "data class" itself, they eliminate a lot of code elsewhere.

E.g., this may violate some "separation of concerns", but often one will want to: (a) read some hierarchical data from JSON in a web service request; (b) persist these elements to DB, maintaining proper relations between entities read in from JSON but now persisted as rows to multiple tables in a DB; (c) at some later point read back some of those elements and reconstruct the hierarchy and perhaps transform it or merge it with other hierarchies; (d) perhaps re-persist it, or send it out as a JSON response ... so ...

... in such a situation I am dealing with the same small set of "data classes" everywhere -- but when persisting or reading from a DB I have data fields that represent "primary" or "foreign key" DB values -- I possibly don't want those field values to ever get written to JSON; other member fields deal with the semantic hierarchy of that data in the JSON-like or internal-Java view (e.g., lists, maps, pointers-to-parents-in-hierarchies) ... but I don't want those members ever to be written to the DB (since they're replaced by PK/FK references) ... >>> rather than maintaining two sets of data classes for the two alternative representations (and the ugly boilerplate required to translate between them), it's much easier to have just one set of semantic data classes that each knows how to live in each context (DB, JSON, in-memory, etc. ...). <<<

The key to telling these data classes and their members to behave differently, in Java, for each context (JSON deserialize vs JSON serialize vs DB read vs DB write), is to use decorators on their setters and getters.

EDIT: included more lengthy rationale.
I think it's not used widely enough yet. For example, 99% of websites could benefit from using SQLite instead of MySql or (god forbid) PostgreSQL.

I mean Postgres is a fine piece of software but if your website gets 500 visits a day, you don't need Postgres; just use SQLite.
What you propose wouldn't be using "getters" to me. They just sound like normal methods.
Plenty of times! The situation where a library released to third parties requires internal structural changes is not an uncommon one. What do you do? Break every piece of third party code or satisfy the new structure and the old interface simultaneously with a computed property? "Move fast and break stuff" doesn't always have to include breaking stuff.
The level of bureaucracy depends on the project of course, but any type of CLA will cause problems for many corporate contributors.

Where I am, policy allows us to contribute small patches to open source projects without legal approval - but only if there's either no CLA, or an existing CLA for a major organisation like Apache that our legal team has already reviewed. Otherwise, mandatory legal review for any and all contributions.

A DCO-based system, on the other hand, is fine by us.
I wish there was more demand for stuff like this at a reasonable price. I've worked from various freelance sites in my spare time asking a similar price, but invariably I'd only see 10% of the business that the $15/hr crowd would see.

I got a few ex-$15/hr customers, who wanted a few hours of my time purely to clean up the mess left by the last guy, and once it was cleaned up they'd take their business to the next $15/hr guy and hope he was a little better than the last one.

Bit of a tricky situation I suppose, on one hand the competent Sadmins are probably more inclined to stick to a normal job with a steady income, but the incompetent ones seem to be happy to sit around all day spamming freelancing sites.
> just override base_site.html

And if your changes break in a future version of Django, how exactly is anyone going to be able to debug that? Having to override admin templates that are at best only semi-documented is incredibly hacky.
The admin bloat is largely there to manage the absurd rulebook that changes constantly that control how they can spend their grant and donation money.

Someone gives you a few million, but it always comes with a laundry list of conditions about how it can be spent, and usually an audit schedule and reporting requirements. This means you need a huge staff of people who largely shuffle money around between various groups to make sure group A who have millions in capital expenditure money can pay their janitors, that money comes from group C, who launders this through an agreement with group B to provide services in exchange for use on group A's equipment with group C's support staff.
At GYANT (gyant.com) we’re building an intelligent, empathetic medical conversational AI that can ask you questions and give you a diagnosis and personalized health advice when you're sick. Our mission is to revolutionize access to and ease of medical diagnosis for millions of people around the world. To date we have helped over a million users! We use Node.js/Python, microservices, and lots of machine learning / NLP.

We are hiring a senior software engineer and senior data scientist. See: https://angel.co/gyant/jobs or email kirill (at) gyant.com.
If you want something in the spirit of HAProxy for serving static content, filed ( http://filed.rkeene.org/ ) is the fastest static HTTP/1.1 server in the world. Putting it behind HAProxy 1.8 for TLS and HTTP/2 would be trivial until those features are directly available.
You don't always control the code that uses it. You'll have a lot of angry customers if you break all their builds.
If you can make purchases you can probably hire a consultant for a few hours so that someone can give you an informed opinion.
I agree. I already offload SSL in HAProxy. I'm sure we'll see HTTP2 for frontend/backend communication eventually down the line, but this is a huge and big first step.
But these people all seem to be strangers.
I don't know anyone who has ever bought Razer hardware that would give a positive recommendation. The QA on their laptops is abysmal.
British Telecom Awarded Patent for Blockchain Security Method
Assuming it's built as well as their mice, I'm not buying one.
Netflix Employees Are Happier with Their Job Than Facebook or Google Employees
Could Google convert into a defense provider?
another take on same study: https://lluniversity.com/are-biggest-loser-contestants-ruine...
>Readers, do you have insights into what’s keeping schools from securing themselves?

More often than not their IT staffs are chock full of people who learned MS Office from a book, double click on hyperlinks and know almost nothing about network security.
[edit] > people who implement models from academic articles

Is anyone collecting the various HN discussions as these pop up? I would appreciate help finding them again.
I'm currently working on getting this setup myself. I eventually decided to exposing /var/run/docker.sock to my Certbot container and have a posthook that sends -HUP to the HAProxy container, which has a wrapper script that forwards HUP to haproxy's PID.

It would be nice if I could just do this via the HAProxy admin socket .. or not even reloading the whole config but just tell it to rescan the SSL certs.
Κορυφαία στιγμή στο ΟΑΚΑ με την Μίλαν η ΑΕΚ
Also the JSON1 extension.

https://www.sqlite.org/json1.html
Chiming in late to say that I love TwilioQuest and I plan to max out my EXP because I just learned more about Twilio since this went live than I understood in the year I have been toying with it.
SEEKING WORK - Houston, TX / Remote / Travel OK

Available from Nov. 6 onwards (happy to chat this week, though).

I'm a full stack web developer doing everything from desktop Electron apps to backends for mobile apps running on AWS. I'd be happy to help with your next project whether it's working on a large, existing codebase or building a user-facing product from scratch.

Here are some of the technologies I typically work with:

Backend => Python/flask or django, node.js, go

Frontend => ES2015 JavaScript, (+ TypeScript if possible!), React+Redux or riot, preact, SASS, Bootstrap

Storage => postgres, sqlite3, redis, RethinkDB

Cloud => Docker, AWS

I cut my coding teeth writing compilers in C++ and Scheme, so I'm confident I can figure out whatever stack you need me to.

Shoot me an email at phil@upvalue.io or check me out further at https://upvalue.io or https://github.com/ioddly
The horrible "modern" web design scared me. Then I realised I was at haproxy.com, not .org.
>Simply false. We have no issue with people of color or immigrants. We simply disagree with poisonous Cultural Marxist policies on such issues becoming law.

"Cultural Marxist" means "Jewish" -- https://rationalwiki.org/wiki/Cultural_Marxism

>This is not a view shared by most of the new right, only certain more authoritariam elements. It certainly isn't any more extreme than the leftist craze for punching "Nazis".

As a matter of fact, mass purges are more extreme than individual crimes.

Goodbye.
Any AI discussions in general, or something more specific? This sounds like a fun idea that’s worth trying.
You say "smaller open source projects" - it's worth noting that the DCO was devised by the Linux kernel community, and was a direct consequence/response to issues raised in an actual lawsuit, namely SCO v IBM. Most open source projects aren't nearly as big and haven't been subjected to actual lawsuits.
Or you know, maybe the world runs on computers these days?
Where the STEM Jobs Are (and Where They Aren’t)
I'll wait and see the outcome of the device based on reviews, and then decide how I feel about it, and whether or not I should buy one or not. I've got a bit of time till my 2 year contract ends.
I'm pretty sure that's a bagel, not a donut.
Huh, that's a bummer. I've been looking for a gaming laptop with solid industrial design, and Razer seemed to be the only choice. Any recommendations?
Cool. Is that sh? I'm not familiar with the [1=2] stuff... looks like it's remapping file descriptors, is there something special about 10, 11 and 12? I can feel my weekend slipping away...
But why do that when you can force everybody to buy adapters for your proprietary port? Or better yet, your proprietary headphones!
In C# 6, using properties is actually slightly less verbose, "public int Foo { get; }" vs "public readonly int Foo;". Also, you can easily slap an interface around your data class if you need to later. So my thinking has switched when writing new C# -- why not use a property?
I agree with you. I came from a native app (macOS/iOS) background and joined the team maintaining an AngularJS app, and also worked on an Angular 4 app.

I felt like Angular 2 was the Angular team repudiating all the mistakes they made with the original AngularJS.

They don't even seem comparable. I too want to barf each morning when I work on the ancient JavaScript AngularJS app, and then moving in the afternoon to the more modern Angular 4 project, written in TypeScript, feels like stepping out of my time machine back into the modern era, with a spring in my step and a cool breeze wafting through my beard.

I would have no objections to joining a modern Angular project, whereas I would absolutely, positively never join an AngularJS project again (unless the fate of the human race depended on it, or something like that).
Luna Moons | Software Engineer | Austin, TX | ONSITE | Full-time

Luna Moons is a travel technology startup founded and headquartered in Austin, Texas. We believe that technology can be a transformative force connecting people in new ways and empowering everyone with tools that have otherwise been inaccessible or required speciality knowledge. Our application combines our understanding of the way people plan their vacations and simplifies the technical complexity typically required to manage and book a detailed itinerary. https://www.lunamoons.com

Join a small dynamic team as we rethink the way people can plan and book their next adventure. Our stack is Django, Node.js and React. Lots of fun/hard problems to solve.

We're looking for individuals with a passion for building robust software and beautiful user experiences. A couple of years of experience would be ideal but not a deal-breaker, though you must have a solid understanding of programming fundamentals and be familiar with the technologies we work with.

If you are in Austin, get in touch with us at careers@lunamoons.com and put "HN November" in the subject line.
I was with you, till your second paragraph and how the Unix philosophy has always suggested using brute force first. I don't believe this is so, can you provide any such evidence? Unix has never had such a philosophy.
One thing I love about builders, besides the sibling replies, is that builders force users to explicitly name the arguments. Passing args to a constructor/method/whatever with implicit argument ordering can be error-prone in certain situations (multiple adjacent args with the same type).

c = Class(firstName, lastname) // are these passed in the right order?
c = Class(lastName=firstName, firstName=lastName) // obviously incorrect

Especially when you're using other magic like auto-generating constructors based on fields (as with Lombok)...then rearranging two String fields can subtly break things with no compiler errors!
Hack challenge
Investors were left holding the bag.

The rest of us just kept working and earning.
Pendo | Software Engineer (and more) | Raleigh, NC | ONSITE | FULL-TIME

We are a 4 year old startup, just featured yesterday in LinkedIn's list of top 50 startups in the country https://www.linkedin.com/pulse/linkedin-top-companies-startu...

We are hiring for multiple engineering positions:

* Back-end Engineer: Go, NoSQL, Google Cloud - http://smrtr.io/IG_AXg

* Sr. Back-end Engineer: Go, NoSQL, Google Cloud - http://smrtr.io/7E8aLA

* Front-end Engineer: Frameworked and non-frameworked JavaScript - http://smrtr.io/OcHi0w

Plus many more jobs such as Marketing, Recruiting, Sales and more: https://careers.smartrecruiters.com/Pendo

Apply via the website, but feel free to hit me up with questions at shannon (@) pendo dot io
I think this comment misses out on "why". I tend to store stuff in xlsx, then use Excel to operate on it. It's not clear what benefit Python or JSON gets you, from this post.
A laser shining on a mirror driven by a speaker creating patterns
> How can the arguably best piece of open source tech keep get better?

Letsencrypt support? I realize that's a big undertaking though. There is a Lua plugin, but it does depend on certbot being installed and running, which is a bit difficult if you use the docker image (there are some docker containers on github that achieve this by running supervisord in the docker container for cron/certbot and haproxy).

This is probably outside the scope of HAProxy really though, and could probably be implemented entirely as a lua plugin that handles ACME, maybe?

Kudos to the HAProxy devs and contributors. I've always been a fan and great to see them pushing forward with these big improvements.
@Data seems more like what they are proposing. It comes with toString, equals, etc and has a bunch of cool features [0].

[0] - https://projectlombok.org/features/Data
as an open-ended question you gain insight from the candidate's response to the scope with which they think about things (and whether that matches up with their experience)... also 100K isn't much so it should force some critical/creative decisions
Simple Virtual Machine in C
I don't make purchases is my point. Im an analyst. The manager makes the budget, purchases and hiring decisions, and they have determined a pro dev to not be an option. I can request that a pro be hired (and have requested additional hires have strong skills) and I do.
With any Django app, you’re going to pin your requirements to a specific Django version as a matter of course. If the change is broken in a future Django version, you’d need to update it like you would need with any other breaking change.

But, if experience is any guide, despite lots of tinkering with the admin, Django has yet to break anything I’ve customized in the admin (I’ve been using Django since 0.96). YMMV.
But the example is just a demonstration of the concept - you should be able to change the implementation without changing the exposed interface.

My argument is that having getters and setters exposes your implementation. If you have "getFoo" and "setFoo" it exposes that your class contains a value called Foo. My argument is that you should either give your methods better names, or get rid of the pretense of encapsulation altogether and just make them public. Get/Set is just an awkward middle ground.

Even if we keep this immutable, your implementation is different in that it uses twice as much memory.

How can my implementation be different? No one else has written one (:

But maybe not. If you had getters and setters, you could seamlessly try the other implementation without changing all of the client code.

And if you had actual methods with names that didn't break encapsulation, you could do the same and divorce all your calling code from the burden of knowing about the internal structure. Again, the middling approach is the worst of both worlds to me.