skysight-inc/HackerNews huggingface dataset:
Robert Evans’ The Women’s War is really good, proper first hand journalism covering the incredibly unique Rojava revolution. This is the real deal and the gold standard of journalism IMO.

Another great podcast is Intelligence Squared - effective and intellectual debate on loads of topics. Pretty US centric but great debates.
I really appreciate your work.
D is context free in that the parser does not require semantic analysis in order to complete its parse.
We Are All in This Together – Nakedjen
> Linear encoding is better than interpreting a tree because accessing adjacent elements in arrays is faster than chasing pointers.

Yes. From this we can derive some general optimization principles: reduce indirection, increase data locality.

Are there any others?

> Poor performance depends on what your language does. What's poor performance for SQL will be different than for JS.

Let's consider modern dynamic languages like Javascript and Python. What performance problems did these languages face? Which optimizations had the biggest impact on code execution performance? Which optimizations were the easiest to understand and implement?

For example, I know Javascript virtual machines will automatically create hidden classes for objects. This allows the data to be accessed by constant offsets rather than lookups.
I think part of the problem is that many newish users equate Linux with Ubuntu, good and bad. There are many other options and Ubuntu should not be the default anymore.
ebay's main value is its escrow capability related to its dispute resolution
This is why I use these services. I’d prefer to give my CC info to a single company and not trust it to who knows how many fly by night CC processing companies in use by individual restaurants
I'm telling you flat out it works EXTREMELY well.
I have only in the last week had occasion to use `ROWS BETWEEN` in a window function, and once I did I immediately thought of dozens of places I could replace moderately complex imperative/functional code with a simple query. It's definitely not common knowledge and the expectation that you would know it should be very specific to certain skillsets, but damn once you know it, it can be a powerful tool.
The reverse is also dangerous: when you have the same numeric value doing different jobs in different parts of the code. If they're literals, you've got no clue whether they should both be changed or not.
> One of the biggest ones to point out is that async runtimes are still a bit unclear. There are currently two different options to choose from, each of them with their own tradeoffs and problems. Also, many of the implementation details are tied to specific runtimes, meaning that if you have a dependency that uses one runtime over another, you’ll often be locked into that runtime choice.

My understanding of how async/await works in Rust is that you can have multiple async runtimes in one Rust program. Is that not the case?
> One of my professors used to say that he should be able to destroy your laptop, buy you an equivalent new one, and you should be up and running again within a few hours.

What do you use for that?
> Do you expect that such optimizations would make most programs significantly faster or is it more of a special case that would not improve the performance of most programs?

I don't know because I have no personal experience with such. What I have to go on is the Fortran vs C/C++ experience I mentioned.
Ah yes, the evil twin attack.

https://en.wikipedia.org/wiki/Evil_twin_(wireless_networks)
Broadcast, sslstrip (probably not valid) or provide a self-signed certificate and just log the traffic?

I was pissed when my Android phone connected to the McDonald's wifi without me telling it to do it.
If 1-2% of people die quickly, the economy will not be fucked. That's a politicized untruth put out to counter other politicized untruths.

The people protesting and doing other stupid things are actually helping those of us that are isolating. The quicker they spread it and create herd immunity, the less time we have to wait. This obviously depends on whether an individual can get reinfected, but I haven't seen anything conclusive one way or another and it feels like this has also been misleadingly politicized.

Obviously a deluge of cases is absolutely terrible for the healthcare workers, as well as other essential employees that are exposed to the mob-herd (eg grocery store workers) and likely won't receive adequate healthcare. So I'm certainly not advocating, merely analyzing.
Yeah, I want traders to be able to communicate and trade freely away from the prying eyes of their... employer?
More people using a system doesn't validate anything by that definition we ought to deprecate linux and mac on the desktop and all just use windows. Concepts and tools require objective validation not popularity.
I looked into WASM / WASI last week but couldn't find an answer to this anywhere: can I write a network service in Rust and compile it to WASM / WASI?

I know that wasmtime can execute a WASM module and give it access to a file system. Can that filesystem contain a socket that the WASM module can interact with?
How do you do that? Postgres doesn't even offer a way to enforce that specific indexes get used during a query as far as I know.
HP Officejet $(<array of existing officejet model #s)

naughty!
That's not how you sell that product. You sell it by saying that once a decade the accountant is going to make an error that costs your company a billion dollars during due diligence before an IPO or sale. In the enterprise 20k isnt cost savings at all and, agreed, not going to result in many sales.
Sorry but I have never heard of "levels.fyi". TBH the domain already looks like a typical silicon valley HN-bubble website. Don't you think there is a massive selection bias to the people who fill in their salaries on a website like that?

A more reputable site (that's known outside of the HN-bubble) would be the stackoverflow salary calculator. If I fill in "Data Scientists with a master's degree and 5 years of experience in the Amsterdam area" I get a median income of EUR 51K. In silicon valley it's higher of course, but the same profile in San Francisco still 'only' gets you a median income of USD 157K.
You might be doing this as a learning exercise, in which case it doesn't need to be particularly innovative, and writing another Lisp or Forth implementation is fine. In fact, I'd recommend beginning along those lines, followed by developing several different new languages, probably domain-specific ones. Your first attempts probably won't be worth keeping. (I haven't kept the object oriented Prolog I wrote about 25 years ago, but I do regularly use a small Prolog I recently wrote in Lisp.)

The languages at the roots of all programming languages are Fortran, Lisp, Cobol, Algol60, APL, Snobol, Forth, Prolog, OPS5, SASL, Smalltalk, Prograph. (If I've missed any out, or any of the above have important predecessors, please let me know.) A new language is unlikely to be radically different from any of those languages or their descendants - of those I listed, the most recent is from the mid 1980s. Within the descendants, which is your favourite? Can you make big improvements to it? If so, make them. Otherwise, can you improve another language so that it becomes your favourite?

One heuristic I've found useful: the right design choices at the start might be unknown, but when I need make them, they're obvious to me, and often a particular choice leads to other equally obvious choices. If the choice isn't obvious, I've probably done something wrong.

My own preference is for pure rather than hybrid languages with simple regular syntaxes (i.e. one idea expressed well), and very strong static typing.

My favourite language is Common Lisp or rather a subset of it. I have trouble thinking of ways to make it significantly better. But I also like the idea of dataflow (a few decades ago I knew some of those working on experimental dataflow hardware), and graphical programming seems to be the right approach to dataflow. Prograph was the closest existing language to what I wanted. It's isn't pure dataflow, it's dynamically typed, it's object oriented (so, unless it's Smalltalk it's hybrid), and entering programs in it involves too many mouse gestures and keystrokes. So I'm implementing a new language which corrects those deficiencies. It's been particularly difficult because I have to write an IDE as well as the language, and there aren't any textbooks I can rely on for help.

I'll have succeeded if I use the new language more often than I do Lisp, and if along the way I get a few more papers (two so far) and some academic interest, so much the better. I don't expect a wide user base. If that was important to me, it would have C syntax and I'd try to get corporate backing. Your criterion for success might differ from mine.
Haiku activity report – April 2020
Clickbait titles are not allowed on Hacker news. Try a more direct factual title next time please.

(edit) please also don't post the same thing 2 days later.
I am genuinely curious: what is the best resource for understanding wifi and wifi security in depth?
Two main reasons for me:

Probably 80% of the software I've ever tried, I hated and never touched again. That's a bummer when you've just paid for it.

Paid software is usually a pain if you want to use it on more than one device, or when you upgrade a device.
Boeing went from appealing for government aid to snubbing it
shallow theory:

- 3d art is technically harder (more layers to master to get to a result). Pixel art operations are indeed trivial and accessible without learning.

- good visual / animated / gaming art is hard no matter 1d, 2d or 3d. It's more an art than a technique.
Unfortunately the proposed solution WPA Enterprise has its own set of pitfalls. Unless one opts for EAP-TLS, which is quite secure, some fun can be had with certain other EAP methods if implemented insecurely. It is especially inadvisable to use AD credentials and skip certificate validation or make it optional. For further research: https://github.com/opensecurityresearch/hostapd-wpe
I am extremely disappointed that ACM opposes open access for federally funded research.

Sorry, ACM - taxpayers paid for the research, and the authors and editors provided the camera-ready copy to you at no cost.
This is basically a switch statement :)
Theres no shame in knowing what it is/the theory behind a convept but not knowing the syntax, especially if the interview is not for a DBA. Id be honest and ask to look it up online or move on..
As an Aussie I grew up on a healthy diet of US exceptionalism propaganda. At some point I came to the realization that the US is an empire in decline.

Now, I’m starting to think the US is already a failed state. I’m pretty frightened to be living in this timeline. It’s like the collapse of Rome, but with wifi, vape pens, memes and nuclear arsenals.
Not disagreeing with you here, I am wondering however if you have ever surveyed or even had casual conversation with people who self identify as "an IT person at company <X>."

In my discussions with such people[1], I have found that a preponderance of them believe that a MAC address filter is a strong protection against unauthorized equipment on their wireless network.

[1] I have had many occasions in my career where I have hired people in the IT/Ops role and during the interview process I have often probed their understanding of the plumbing of IT beyond the parameters necessary to enter on a screen in order to get something "up." My admittedly non-scientific sampling suggests that "knowing the plumbing" is not a valued skill for many of these people.
45 orgs and 100 individuals push back on coercion of India's Aarogya Setu app
Weird I saw it in the HN app browser and chrome just fine on my phone.
yes, at least turn off "auto-join" for popular APs like that if you don't want to delete them from your network list.

the main advantage of saving a network is not to retype the (should-be-)hard-to-remember password, but the popular ones are usually open, in which case that advantage goes away. but when you've curated the order of the list just so, you may not want to delete them outright, but rather turn off auto-join.
> You can’t swap sound outputs while an application is running.

Then the application in question wasn't properly written and assumes that the output sound device never changes. About the only application running on my Windows gaming desktop that doesn't follow the sound adapter I select (headphones, integrated, USB DAC, etc) is the Java version of Minecraft.

I use MacOS, Linux and Windows and every single one of them has their own different pile of warts to deal with.
> when's the last time you even thought about upgrading Chrome?

Every. Fucking. Week. Because it breaks my session every update thanks to the inane switch to snap.
IntelliJ has context-aware autocomplete. Type this.field.get and it will show methods and fields starting with get for whatever type field is. There's a lot of context needed to make that happen.
Why would you ask interview questions to quiz on skills that can be learned in a week?

This is only useful if you tell candidates to study a book for a week first.

Otherwise you are filtering for narrowminded memorizers, not smart people who can learn and solve problems
Yah, sorry for taking such a rough shot at you.

Your point is incredibly valuable, and if I wasn't in a hurry I probably would have brought this up:

Most time series analysis, especially when using ML is ideal when the time part is stripped out through cleaver feature engineering. This isn't always possible, which is why the stock market is a pain and ML often doesn't work on it.

I do time series predictive analytics for a living and most of what I do is clever feature engineering trying to strip the time domain out of it and also reducing the number of points as much as possible. The less features, the smaller your training set needs to be and the higher your accuracy will be. Note: This is time series classification, not time series forecasting.
I've heard this rule of thumb and can't make it make any sense. My company's contribution to my health insurance and retirement doesn't come anywhere near 25% of my salary, and there's simply no way my office space costs more than $500/mo for my share of it.
> How is compile-time code execution any different?

I don't know the Python ecosystem and so can only speculate. PIP install is not compiling the code, it's an installation program. Installing anything that can be executed is potentially dangerous, but I imagine PIP install only installs from a trusted source.

But I'm not going to restrict D to compile only source code from a trusted source.
If you don't mind a terribly distracting background and poor resolution, here is a YouTube link

https://m.youtube.com/watch?v=5LsRRTvPigY
You dodged a bullet with that one.
To send a fax you need access to a handhshaked landline. A direct wire between the stations. Faxes synchronize themselves, send data and test the bit, makeing sure it is properlt placed in the data queue, and send the next and so on =handshake. Suggest you look up old fax synchronization and I tossed my last muirhead rotary in 1982 - used it for weather maps.https://electronics.howstuffworks.com/gadgets/fax/history-of...

Newspapers have used it since the 1800's in one for or another. Wire-Photo https://antique-photos.com/en/helpful-info/476-wire-photos.h...
This is a relic of the old Muirhead rotary scanning fax machines abd the same standard persists. This is hard to do via radio. So radios send a pdf to a fax service. I have a fax service for $10 a month, I send it via desktop or mobile, and receive the same way as a pdf. With a mobile printer or office printer you get hard copy.
https://www.myfax.com/features
State machines don’t need to be runtime programs.

They can be expressed exactly using a static type system - that’s kind of exact the proposition of them.
Yea, when I do use R, I end up almost always doing the data manipulations in sqldf (creates a sqlite db on the fly).

But I do love doing vectorized operations in pandas/numpy. Writing a quick function then calling it against an entire numpy array is kind of fun.
That is the case, but it's super awkward to use. Basically, you cannot await a tokio future on an async-std runtime, or an async-std future on a tokio runtime. You can, however, have both runtimes running at the same time, and use some form of message-passing to bridge them.

It's definitely easier to only deal with one runtime. Ideally, we should have some kind of abstraction to allow crates to support both runtimes (e.g. a trait that'd allow creating an async TcpSocket of the right "kind" for your runtime), but AFAIK this is not currently done.
Would you really interview and hire for a job based on SQL tricks instead of spending $50 to give someone a reference book?
Remote - Yes, any timezone

QA Engineer / Test Automation Engineer with 6+ years of experience

Highly experienced with web and mobile automation including XCUITest, Espresso and Selenium

Worked mainly on startups, setting up QA Process and executing both manual and automated testing

Very familiar working along developers and the rest of the team and helping shipping releases

Familiar with Git, Github, Swift, Kotlin, Vue, React, REST, XML, JSON and others

Email - hn.qa.843@gmail.com

CV + LinkedIn + samples can be requested by email
Oh my, looks like I hit a nerve... Punishing people for using good arguments when talking about freedom and free trade is the way to go, guys! :) That was sarcasm btw. You guys remind me of Chinese authoritarians sometimes, with this so-called "karma" social credit score. I guess it only counts when you have the same opinion as all the other sheep in here.
>>> row = [""] * 3 #row i['', '', '']

>>> board = [row] * 3

>>> board[0][0] = "X"

>>> board

[['X', '', ''], ['X', '', ''], ['X', '', '']]

I almost felt helpless for an hour when I used this list initialization [0] the first time in my code and couldn't find the reason why my unit tests where failing.

[0] https://github.com/satwikkansal/wtfpython#-a-tic-tac-toe-whe...
A reasonably powerful subset of regex is a state machine.
In theory you can, but in practice it would make your code very messy. If your dependency is using runtime A and you are using runtime B - how would they interact? Runtimes like tokio also provide convenience macros for you main mehtod, kind of locking you into them (I think), at least for that codepath.

If your application has two parts or binaries that are completely separate you could potentially use two different runtimes, but otherwise I don't think it would make sense. And even then, it would just be a mess.

Right now, your runtime is essentially picked for you by your dependencies.
The lossy compression on phone calls might prevent fax from working. Also, I don't know if you can route call audio from anywhere other than the microphone.
It's possible, the downsides are a bit silly when you look at how the Future trait was designed to allow tasks to be runtime-agnostic.

There is ongoing work to standardize more runtime interfaces so that more libraries can be runtime-agnostic.
Research on the benefits of “weak ties” – connecting with casual acquaintances
The article does make the same point. Basically companies could configure their WiFi in a more secure fashion but many won't. I'm certain many small companies use very basic setups similar to a home WiFi and at best will just change the WiFi password periodically.

This is why major OS providers are taking it on themselves to tackle some of these issues independently of the WiFi setup - like taking the location in consideration and warning you if you connect to the same network in a different location.
What should I use as my business address?
Currently using Gust to incorporate my business as a Delaware Corp. I am located in Georgia. Our business does not have a physical location, should I use my apartment address, a virtual address, or a UPS mailbox? Also can I change my business address later on?
What do you mean by SQL?

In my experience, once you're hitting hundreds of millions of records, implementation details of your database engine will start to matter. A database designed for transactional workloads like Postgres will start to choke on aggregate and window functions, often taking minutes to run instead of milliseconds. A columnar database like Redshift (which exposes a SQL interface) will breeze through it without a sweat.
It has been decades since I had to provide extra drivers to a Debian install.

It is true that the first-presented installer ISO images on Debian's downloads page lack the worst proprietary drivers, but another couple of clicks takes you to images with them included. So, worst case, you find that the image you have lacks such a needed driver, and you use another image. In practice, I just start with the latter, and have not encountered hardware not covered. For the absolute newest equipment, a "testing" installer may be the right version to use.

The Debian download pages provide installer images for all needs. I have not needed to look at secondary sites, which also exist for specialized needs.
> I never really "got" declarative languages

As I responded to another comment, I have to wonder if that's because you haven't spent the time to become proficient enough to appreciate them. I understand that a lot of programmers decry "magic" and want to get at the underlying steps and components that produce a given result, but literally all of us work at some level of abstraction above that because it would be impossible not to. None of us are directly transforming sand with electricity into computed values.

You're describing being more comfortable with an imperative set of statements than a declarative description of results. Assuming you write automated tests, think of the declarative approach as writing the description (rather than the implementation) of a test, except that the description is less freeform and must conform to a certain syntax and structure so that a machine can write the test for you.

It's "magic", but it's only so much magic because the scope of what it can do for you is limited and well defined.
Just wanted to say thank you for all the contributions you add.

It's always a pleasant surprise to scroll back up and see your username on a comment I just delved into.
To disallow control of the updates by the users is probably well-intended as some kind of a trade-off, but what if I don't want a new feature that is coming in the next version? What if I already know it's broken in my system configuration -- I hope for a fix for 60 days, and then what? What if the fix never comes? Does my system stop working?

What if I'm a business relying on that specific version? Do I just say "oh well" and close shop?

And what about airgapped systems?

I understand there's the "security", but then, on the other hand:

1. If snapd gets forked because of this, the snap ecosystem becomes fragmented and Canonical loses control of part of their baby.

2. If snapd stays as-is, and Canonical keeps preventing user control of the update cadence, then people will just run away from using snaps once the magical auto-updates create any high-profile problem. Lxd is a snap as well, so containers will be in the crosshairs.

All in all it feels like a silly decision if you ask me.
It's very hard to say about those "second thoughts." If the current situation turns out to be basically a blip, that's one thing. If living in dense cities turns out to carry a significant incremental health risk vs. suburbs/exurbs, that's something else.

Furthermore, the (somewhat) shift back into cities is counter the trend in the second half of the 20th century. Is it a real trend or a temporary fashion?
The IBM PC/XT, the first IBM PC to be delivered with a hard drive, already had a 10mb hard drive in 1983, so 1mb sounds too small for your hard drive. 1mb was roughly the capacity of a floppy disk.
Definitely not cool to use syntax as an interview question, but it is a very powerful tool so I wouldn't write it off because of one interview.