skysight-inc/HackerNews huggingface dataset:
> I can’t really imagine myself working on a million line project

Any project of this size is too big and is better off being broken up.

You need tests no matter what kind of typing you are using.

The best thing about Clojure is that it is immutable by default. Start writing pure functions that transform you data step by step until you send it on its way with a side effect. I don’t miss types much at all - immutable maps lists, sets and pure functions get the job done and it is fun to program.

Static typing fans hardly ever acknowledge how difficult the types make it to read the code. Too much focus on that one time when someone made a typo and there was no unit test.

This has been argued infintum, nobody is changing their mind. WTF am I doing here?
and ways to increase commission (new) and increase clicks ( old)
The background investigations are still performed, the poly is an additional layer added on, so that's the only real formal difference between countries.
if i demand a $2mm salary, take it or leave it, i am not dictating a price; i am getting laughed out of the room and someone else is getting the job. uber is only dictating a price to the extent that lyft won't offer more.

firms like comcast, who may be the only ISP offering >25mbps in a particular area, are the ones who get to dictate a price.
Many HN posters are mentally ill, too.
I've googled a bit and found more people who had this problem with Chrome. Sadly their solution (anonymous mode) doesn't fix the problem for me.
Do you have a point with this? The American indians were essentially a warring nation on America's doorstep at this point.
It's like a built-in unit test - devs have to not mangle and assume anything about filenames they get from the system - though they still do, I've seen multiple times how my nice umlauts get mangled or my spaces cause scripts to fail.
Ask HN: Could crypto and blockchain avoid the next Kavanaugh fiasco?
After the supreme court confirmation, there is now a movement to document assaults as they happen[1]. But victims are often reluctant to go public or file a police report.

Instead, why not use the blockchain and crypto to prove that someone wrote about an assault when it happened, not years later?

You could write a hash of what happened to you to the blockchain. It can't be removed. It will stay forever. The beauty of it is that you can make the name of the perpetrator public, but the content of the accusation secret (hashed). The benefit is that other victims can find each other and compare notes, while the accused can't access the accusation and can't sue for libel and silence you.

If, years later, that particular person (Bob to abuse crypto conventions) is selected for the supreme court, Alice can reveal the source of the hash, therefore proving that the allegation was documented at the time the incident happened.

All it would take is a simple website where victims would write down what happened to them. Then post on the blockchain, let the user archive, and that's it. There are a bunch of challenges (cost, spam) that would need to be investigated further of course.

[1] https://www.washingtonpost.com/outlook/i-reported-my-rapist-today-so-he-cant-become-a-supreme-court-justice-later/2018/10/04/09d7bf10-c74d-11e8-b1ed-1d2d65b86d0c_story.html
Cooking hundreds (or sometimes thousands) of good meals on a budget is a challenge that few kitchens seem to master. The spectrum is surprisingly wide. Some fail utterly while others produce decent fare on a comparable scale and budget. Hospital food and university cafeterias in Germany are pretty comparable in that each have similar budgets per person.

The worst offender that I encountered was a kitchen that only had a very limited set of standard dishes and they still predictable failed to prepare them in exactly the same way each time. Some meals were charred black when they were supposed to be lightly fried, the pizzas had an inedible crust hard as concrete, and so on. And that went on for years...

I also wonder how long the increase in quality in Havelhöhe can last before some beancounter sweeps in and turns the system on its head again based on some pretext. I hope that this never happens, but reality has a way of throwing a wrench into the works every time.
There are way worse things that you could experience which is present even today (psycological things especially). This doesn't sound too bad actually.
Multiple personalities?
One service I’d be willing to pay is intercontinental booster.

Living in NZ means you’ve got quite underprovisioned international pipe. 100mbps fibre realistically means 3mbps...

If a VPN could route you via their dedicated pipe...
Adding AI to the IoT
Can anyone recommend good examples of monoliths in open source? Preferably in Go?

I inherited a bunch of micro services at my current job with a fairly small team. My feelings have been that the code had been prematurely micro-serviced considering the team is so small and every service was mainly just CRUD in front of then same Postgres instance.

I’ve slowly been demonstrating the benefit of modularlized “sub-apps” in a single monolith over lots of microservices that all reinvent the wheel. And I think I’ve convinced them that this is easier going forward. But I’m at a loss sometimes about what boundaries I should be putting in place such that we don’t end up with a ball of mud in two years.
As a data engineer who needs to crawl websites sometimes, Mixnode looks interesting to me. I agree that it is hard to make scraping a product because it is so use case specific. However crawling, defined as downloading all HTML, PDF, images on a given site, is a pretty common first step and something that could be a product. Then turning that into SQL sounds pretty awesome.
Russia, Russia, Russia!
How would a true general take care of a disperse force that relied on small scale attacks and hit and run tactics?
start a blog. pay off your student loans ASAP and dont go into any more debt ever
I'm pretty sure I tripped up on an issue like this on python 3.7 where I double encoded or decoded something. Can't recall the exact case but it was confusing for sure.
Git is not a secure blockchain. It's quite easy to rewrite history in git to change the true order of events (after all, that's the whole purpose of rebase). A true blockchain has to be protected by cryptographic signing protocols; git is not.
You quit spinning the rotors and they stop acting like a sail.
It’s fashionable just now to hate monoliths, so much so that developers would probably be afraid to suggest anything other than creating a suite of microservices for fear of sounding backward or inexperienced. It’s a bit like if anyone ever dared to suggest that they don’t adopt Agile. You’d probably be chased out the room by an angry mob.
Imagine what the FDA already does, and then imagine that they were verifying a drug that would be given to every person in the country. There'd be a crazy strenuous verification system for that.

And that's a big part of the problem. Not only is there no 'FDA' to test these patches -- nor should there be -- but the manufacturer evidently doesn't test them either. They fired their QA personnel a few years ago, so that's now our (unpaid) job as users.

Even worse, there are some indications that this particular bug was discovered and reported by insider program members and actively ignored by the company.

Windows Update is apparently the team where Microsoft employs their B- and C-level players and managers. That's not OK. If you're going to insert yourself forcefully into everyone's critical path, you'd better know what you're doing.
Warning: auto-play video, with audio. Alternate link:

https://outline.com/3TKY5M
The main difference I find is that with Clojure approach you have a common set of data structures that you operate on using common functions from the standard library. I find that it's usually easy to tell what type of data you're working with by seeing how these functions are used. When I see functions like map, filter, iterate, and so on, I have context for what the intent of the code is, and this helps me know what type of data I'm working with. At the same time I'm mostly working in a local context thanks to immutability, so I don't have to worry that a piece of data might get changed from under you via a side effect.

I also find that you learn patterns for structuring code that make it easier to track the types. For example, I avoid renaming keys or restructuring data except at the edges of the application. Adding Spec or Schema at component boundaries is also helpful, as you can see what the shape of the data was at the API level and work your way through the helpers from there.

There's also a big benefit of working with data as opposed to objects. Each class is its own ad hoc DSL with custom behaviors. Knowing what one class does tells you nothing about what another does. This approach doesn't scale well for large applications where you have thousands of classes with each with its own behaviors.
How do we know the Instagram is run by the original Banksy? Maybe "Banksy" is like the Dread Pirate Roberts, a title held by many people at different times.
Was the Racket course based on How to Design Programs[1]? How was it?

[1]https://htdp.org
Knockout is unpopular but boy is it intuitive.
".. and then I decided to create an article on exactly how I did all this, and posted it to Hackernoon, earning me yet more income. Also it was likely to be picked up by HN, which would increase traffic even more, and provide me - through their excellent comments - some neat tricks & tips on how to improve my campaign even further." :)

But I appreciate all the efforts, and the original article is good-quality content, I guess (I'm not into Insta bots).
I've been using KDE Neon since a few months after its initial release, and I'm very satisfied with it. Before that, I was for a decade on Gentoo (switching between wmii and KDE from time to time), and then on Ubuntu for a couple years (around the time I started using docker).

There are still bugs here and there (which is perfectly understandable), but it's the most polished KDE experience I ever had. I'm actually wondering if it's not the most polished linux experience I ever had - except maybe a vanilla Ubuntu using as much defaults as possible, but I just can't help moving from defaults after a short while (that's the main interest of gnu/linux, to me).

EDIT: oh btw, worth mentioning: I'm using the user edition (the LTS one). I initially used the developer edition, but I found its constant updates annoying, and things were a bit less stable than the user edition (as one could expect).
It also backfires often on those that take medications designed to reduce anxiety or ptsd. It's a stupid practice that's not even recognized in courts.

It's funny how people will mock scientology and their emeter and then look at this and say it's normal.
And ruin the lives of it's employees. Long live our most honorable Capital Feudal Lords!
git is not what people call "blockchain", only half of it. The distributed consensus part is not there. Maybe that's what it's both efficient and popular?
The replies and downvotes in this article just prove the point that silicon valley is a wasteland of leftism. So done with SFO companies and HN.
It was being downvoted before the title changed.
So let's play online with other HN'ers with experience. We can set it up to require one move a week, which gives plenty of time to communicate and plot even if life's distractions come up every now and then. (I agree with you that it's the worst when you start a game and then other players stop making moves.)

We need a bunch more people, though.

If you'd like to join, PM me on reddit.
I don't know Datomic very well, but everything I've read makes it sound a bit like a modern take on an object database. Certainly interesting, but as long as it's commercial software I'm not going to touch it. Its close coupling (AFAIK) to Clojure is also not interesting to me.
GNOME looks like it was designed by an iOS fanboy. KDE looks far more mature and professional.
Somewhat related, I did this hacky thing in 2012. Worked a charm... No db required...

https://github.com/keyle/json-anything
Don't be obtuse. The OP had a very particularly selfish viewpoint: they prefer saving their own money because they happen to be in a situation that makes it (particularly) feasible. No mention about society as a whole.
Good guess, but i'm not the author.

I have some things of HackerNoon in my follow-list, he had an interesting novelty on increassing commission through contacting the websites in specific.

And then i click on "Post to HN" :) (i'm not kidding, https://gyazo.com/122a7939fe26a2a76836d4deae03aaab )
Ubuntu on a Surface Pro 3 is my daily driver. The install requires a bit of jumping through hoops, but once you've managed to boot into the right partition everything works as expected. Everything I use at least.
Great analysis of comment types. I tend to do all the first six, including the guide comments. I can't understand people who think code should be completely self-documenting. There's always so many edge cases. Are they seriously never puzzled by past code they wrote? Every time I go back to any projects I haven't touched in a couple of months I'm always a little disoriented, and it was all code I wrote! The fewer comments I wrote usually the more I regret it later. Guide comments in particular just make it so much easier to find my place again.

And I'd go as far as to say they're almost mandatory for any math related code with a lot of complicated conditions. It's 100x easier just reading the guide comments. Not that they should repeat the if statement exactly, that's pointless. But describing what's happening (the bigger picture that is) really helps imo, and adding an example is even better. I try to keep them short though, single sentence, usually 1 comment for every 5-10 lines depending on the complexity of the code. For example, I was writing a sort of panel/window manager, it had a ton of conditions that looked like:

if (area_left < current_left) {/*...*/}
if (area_right > current_left && area_right < current_right) {/*...*/}

You could probably figure out what was going on if you saw it was inside the resize handler for a panel (current_*) and looping through all the other panels/areas, but something like "// finds any areas that will limit our movement" right above the ~10 line section is so much easier to understand. For more complex situations I might have added a visual description as well: "// e.g. given panels [1][2][3] - when dragging a side of #2, find any limiting panels to the right (#3) and left (#1)", though usually I keep the examples to function comments.

I'm torn about debt comments though, especially for protoypes/beta projects where they're the most common. On the one hand, if they're in the code, it makes finding where changes for certain features should be added easier if you add them consistently. On the other hand, it's then hard to see an overview of them all. Putting them in their own file makes it easier to manage them and helps me remember what I was working on, but then I have to go hunt down all the places the functionality needs to be added to. Maybe some combination would be better. Like naming them something specific: "todo - feature - somefeature" then having the details of somefeature in the todo file. Or another solution might be to use headers as someone else has described, then refer to the filename/headername/s that need to be looked at in the todo list.

Usually imo, the more comments the better, so long as none of them are outdated (working alone though I haven't really found this to be a problem). You can always remove comments, it's much harder to add them in months after you wrote some code.
From a work perspective:

1. Listen, a lot
2. Understand other's perspectives. For this you need to know exactly what they do and how protective they are of their turf
3. Ask pertinent questions not only to improve your knowledge but also to show your are listening
4. Be prepared to bide your time. Opportunities happen outside of your control but they are coming eventually.
software should be more efficient, not computers
How to Start Using Curl and Why: Hands-On Introduction
"Go dig" and "general conclusions" don't make any sense in this case. The evidence for the conclusion is there.

The point, as stated in my original post, is that "fake news" type reporting isn't confined to right leaning publications. One doesn't need to dig much to determine that. Yet one view source is banned, the other is not. This isn't "assumption" or accusation, it's how it appears to be.

What I really hear you saying, (and I think reality comes out a bit further down in your post), is "I don't like Breitbart!".

And, emotionally not liking something is a good reason as any to downvote so that is fine. Thanks for the explanation.

But just to re-iterate, I don't care for Breitbart either. Nor CNN. I do think Wikipedia should stay out of politics though.
The famous J2EE + ESB style pattern.

Many of us have worked on dozens of these before and sure they work but microservices were invented specifically to address the serious concerns with these patterns.

1) It's far too easy to create spaghetti code that spreads across multiple modules. And because they are so intertwined teams are very reluctant to do major refactors. Especially when the original authors eventually leave.

2) It's less flexible at scaling. In a monolith you have to horizontally scale the entire application behind some load balancer. So if you have an Email concern that needs to handle 100x more load what do you do ?

3) API contracts are far easier and safer to evolve than ESB ones. There are also clean mechanisms in APIs for handling versioning, capability discovery e.g. HATEOS, documentation e.g. Swagger, rate limiting, caching, analytics, billing, authentication etc.

4) Microservices are much easier to reason about, test, document, teach new starters about and most importantly replace. If I replace a microservice I just need to verify that the API contract is the same. In a monolith I need to basically retest everything since there is no guaranteed isolation.

I could keep going on. But not sure this blog post offers anything particularly insightful in how to deal with the negatives of a monolith architecture.
In the U.S. that's true for high income professionals in high-cost states. For more typical salaries, even good ones in big cities, it's more like take home is 75% of gross.
"Wow, you're really bad at this!"
I think Musk knows what he is doing. He is obsessed with the short sellers and is most likely playing them through this. Yes the SEC took a whack at him. Probably all part of the plan.
Hi everyone! Please tell me what you think of this tutorial, and if you have any interesting tips or scripts I could've added to it.
I'm still learning, so all feedback is extremely valuable.
The hand that was dealt to you when you were born is probably the biggest luck factor of all.
For 10+ years I've been a big fan of D. Knuth's TeX with Knuth's original macros Plain. I have about 70 TeX macros of my own. That setup is for all my higher quality word processing from ordinary letters to mathematics, and I regard it as fine. For that word processing, that setup is fine, a done deal.

I looked at LaTeX, got the basic books, etc. and concluded that (A) Knuth's documentation in The TeXBook is relatively short, well written, and essentially totally free of bugs, and it is easy to write more macros and (B) the LaTeX documentation is much longer, less well written, for the internal logic much harder to understand, maybe with bugs if only from the length and complexity and being so big and complicated, and much more difficult for me to write more macros. So, I've just stayed with TeX and never used LaTeX except once when I downloaded a paper in LaTeX and wanted to format and read it.

Lesson: TeX itself, the design, documentation, functionality, and code are really quite good, and for some people LaTeX may be less good. Don't rush to give up on TeX.
I am just surprised that a publicly traded, multi-billion dollar company either did not think to A/B test major changes to the product or did not know how to properly conduct A/B testing.

I assumed every one of the top apps/websites did this automatically, but I guess I was wrong.
I'm building magic software that will require humans to operate and train. I really want them all in house for security, so I'm going to start hiring locally here in Colombia, and fill houses as necessary.

But anyway, I am hoping to make this role of teaching and babysitting AI as fun and rewarding as possible. Like a fun video game, along with a sacred duty to take care of users and protect their privacy.

I will also ship some form of this to end users eventually, so that it can run entirely offline, or at least without our services.

I'm thinking that systems trained with interactive learning might create an entirely new category of job, operating AI. Sure, trained domains will require less babysitting over time, but that just frees up the labor force to expand to more domains.
> Microservices have advantages but they also bring along severe complexity.

Worse, often the complexity they bring is undocumented because it lies in the relationships between applications, accounts, infrastructure, and so on, and does not lie within the boundary of a single application. Microservices are simpler to write because you can pretend a lot of the ecosystem does not exist.
We offer VPN as a side thing to help our customers who are testing their websites from around the world. At the behest of some friends I added VPN as its own plan.

A choice you need to make really early on when you're offering a VPN is how much data you want to log. Eventually someone will do something on your service that pisses someone else off. That could be torrenting, spam, defrauding the elderly, etc. Ideally you, but more than likely your provider will receive an angry letter. Whether or not you've logged will choose what you can do next. If you're not logging, and unable to stop complaints from coming in your provider might turn you off completely, so you'll want to pick a provider known to pass letters on without caring.

I blogged about our choice (we log) here: https://wonderproxy.com/blog/our-vpn-what-we-log-and-why/
Kubernetes is a pretty large open-source Go project: https://github.com/kubernetes/kubernetes

Docker is, too: https://github.com/docker/docker-ce
I've been there, and during wet weather, I've once felt my rear wheel start to slip on a tram rail (fortunately I managed to compensate). I learned to take tram rails at a steeper angle, which has served me well. Never had any other trouble here, but yes, I watch the car doors. Or I ride between the tram rails, because there's no way cars will be going very fast here.

Still, it's clearly a place that lacks the separate bike lanes that are so common elsewhere.
Vertical Farming and Automation
I think I would definitely benefit from blog posts or whole books on Clojure style specifically, rather than the many constant re-introductions to its syntax and data structures (like the one in this article). Your thoughts have come closer to explaining a maintainable approach to the language than most of what is out there. In my experience, despite working for years professionally with Clojure, I've never successfully felt like I wasn't fighting the language because of the constant and unexpected nils and other odd wranglings of data that were not intended and not easy to track down at runtime. The flexibility of the dynamic typing and the many APIs for manipulating data can make it easy to restructure your values in unintended ways, and this to me is a meaningful problem unique to the language. I don't have the problem in a Java app, for example, of a Foo type accidentally becoming a Bar type or even some other "type" that was never defined but now has a unique data shape because I made a typo somewhere or used the wrong library function, etc.