skysight-inc/HackerNews huggingface dataset:
I've been reverse-engineering the 8086 lately, and I recently came across the exact register-control circuitry that makes this steganography possible.

The steganography takes advantage of x86 instructions where you can swap the source and destination by replacing an instruction like hex 31 c0 with 33 c0. The difference is bit 1, the direction bit, supported by many instructions.

Internally, the 8086 has 5-bit registers that specify the source and destination, typically a register. [1] The source and destination register get their value either from the register specification in the instruction (bits 5-3 or bits 0-2), or values in the microcode.

The clever part is the outputs of the source and destination registers go through multiplexers that can swap them. If the instruction has a direction bit, and the direction bit is set, then accesses to the source and destination registers are swapped.

The point of this is that the microcode doesn't know anything about direction swapping, so it is implemented "for free" as far as microcode size (but with the addition of the swapping circuit).

The 8086 has a "Group PLA" that categorizes instructions into groups; one of these groups is "instructions that have a direction bit". This prevents direction swapping from happening for instructions where it is not supported.

I hope this explanation makes sense; it should probably be a blog post :-)

[1] You might wonder why source and destination are specified with 5 bits when the instructions use 3 bits to specify the register. The first reason is that many registers can be accessed as half-registers, so you need another bit. (This bit comes from the byte/word specification bit in instructions.) Second, this mechanism is used to access the other 8086 registers, not just the general-purpose registers. Third, there are also invisible temporary registers that also need accessing. Thus, the internal register specifications are 5 bits.
No, other tools do not suffer from what makes make complex. Make is "hard" because of a few things:

1. The syntax is very complex
2. It's just a wrapper around shell command execution
3. There's no single standard everyone fully implements

If I implemented a makefile then I'd have to make sure it's compatible with MacOS and GNU Make. The syntax for make files and target deps are also very complex "Do I want to use % or $ or @?" Make also implements very few pieces of functionality. It forks out SHELL for most things and because of this you need to have everything your makefile is using installed on your system. If you have a makefile, invariably, someone implements some tool that's super helpful and works.... until it doesn't. It depends on some system configuration or utility that is no longer a dep of something you've manually installed and the makefile breaks. If you use containers for all of your functionality this is no longer an issue because you can vendor base layers of OSs/images and make sure they don't break. You can also test these changes, that could be breaking, without rolling out to other developers. I cannot test if my Makefile will run on a developer's mac if I don't have a mac myself and even then it's a crap shoot (do they have homebrew? is their PATH correct? etc).
Mr. Betteridge retired after a thousand of these or so. https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu....

Interestingly, it was pg who got it going on HN: https://news.ycombinator.com/item?id=4092880

I once used the joke about Mr. Betteridge retiring and got a reply pointing out that he hasn't: https://news.ycombinator.com/item?id=10393754.
Thank you, and that's a great idea I've considered for future releases. More specifically, the layout presented in this video looks ideal: https://www.youtube.com/watch?v=HybzbDBF7HQ. Where the screenplay can replace the letterbox at the bottom.

One of the reasons we decided not to implement that for now is to provide a bigger room for error since our algorithm is still not perfect. Sometimes the extension choose to focus on 1 or 2 sentences next to the accurate dialogue. Having an entire viewport height to show the screenplay means even if some inconsistencies occur, the user may still be able to see the accurate dialogue.
> I'm not doing anything wrong so I don't care

I’m not going to try too hard to convince you of digital privacy, but would you really be fine with me just browsing through your browsing and search history, INCLUDING whatever you do in incognito? I’m sure you’ve made at least one anonymous account before. Why’s that? And what’s right today may not be so right in the future. Are you ok with everybody from your boss to your children knowing everything you’ve ever posted? Shouldn’t we have a right to be forgotten?

> what can we do we live in a society full of internet connected stuff we're going to be monitored no matter what anyways

We live in a democracy, well I assume you do too. Just because it’s the way how things are today doesn’t mean it can’t be changed in the future.

> I don't have anything against them or any other huge IT company if they're doing stuff good for us let it be

I’m not saying they’re not doing great things for the world, but it all comes at a price.
Hey that's unfair :(. Nim's dev team had done user surveys for three years now https://nim-lang.org/blog/2020/02/18/community-survey-result... and improved the docs significantly. Rust has excellent docs but also a larger dev-team.
First, make sure you only copy your Gemfile and maybe Gemfile.lock before running bundle install. If you aren't that could explain the amount of bloat since every build will create some large layers with no chance of re-use.

You could try making your own base image that installs your gems. Eg, copy your Dockerfile to Dockerfile.base. Remove everything after the bundle install, and build to say app-base:latest.

Then change the FROM in your Dockerfile to app-base, and remove any OS package installs. Keep the bundle install; it will use the layer from app-base if unchanged, or do an incremental install if not.

This will reduce the amount of data bloat too.

You could try using guard-bundler or something similar to further streamline the process when adding gems
I once built a METAR light map like this - https://slingtsi.rueker.com/making-a-led-powered-metar-map-f...

However, I did it with an ESP8266 running MicroPython; I was impressed that such a small, cheap little computer was able to connect to the internet, retrieve XML, parse it (this step in particular), and update the state of each of the WS8211 lights with ease, all with some quick, easy-to-write Python.
Were you using tor, brave, strong adblocking or a disposable email and refused to give your phone number? All these things will get you banned now when trying to open a new account.
I’d be interesting in seeing a heat map where people are moving to (Permanently). Is it just to outside the Bay Area, outside (high cost) California, to other cities it to low cost suburbs.
You are right, in the sense that there are companies out there (I used to work for one of them) that do image, video and audio watermarking. In the simplest terms that's also adding imperceptible "noise" that statistically builds up to a few bits of data.
- Won't work. People will lose their private keys. Apparently the key is distributed to people on a piece of paper in the mail. That will get stolen--or claimed to be stolen. It will be a mess.

- What's the point of a blockchain here? Is USPS raising money with an ICO? The use of digital signatures is enough. By having a "distributed public ledger" now you open the possibility of getting Sybil attacked. But wait, you say, USPS has their own canoncial version of the chain that they can force everyone to rollback to in case of an attack--then what was the point of a blockchain? You could just have a website that shows a list of public keys and who they voted for. It would be totally auditable by anyone, just as a blockchain would be, without any of the security risks of a blockchain.
Missing Neutrons May Lead a Secret Life as Dark Matter
You need localization if you do any kind of multilingual text processing. Not sure how it could escape a thinking person's imagination.
This assumes that gender dysphoria is exclusively physiological, an impossibility given that gender itself is partially socially- and psychologically-constructed. As mentioned, perhaps hormone treatment could still benefit people who don't have a clinically-indicated deficiency solely because (even in men and women with functional gonads) their application enhances the secondary sexual characteristics (behavioral, psychological, and physical) that a dysphoric individual might find lacking.

My personal take is that a good deal of dysphoria is misdiagnosed as dysmorphia. Because those people are left to self-medicate, unfortunately you end up with the kind of abuse that makes people question the legitimacy of such treatment. I think, though, it's dangerous to lump in people who could benefit from hormonal support for their exercise and antidepression goals (which, for some cis men, would be a gender affirmative strategy), with people who inject synthol or silicone without any medically-viable rationale and in so doing radically damage their bodies (which is what happens now).

In the end, what I'm hoping to see someday is an understanding of a fundamental similarity between the cis and trans experiences, because it would mean both buy-in from and benefits for both groups.
The solution here is to choose a build system that is language agnostic. The most common of these is docker & docker-compose. There's also the Blaze-likes (Pants, Buck, Bazel, Please) that let you hermetically include tools like node inside of the build chain.

Make is not a "wrapper" it's a "translucent layer on top of" since it doesn't hide the deps on the underlying tools.

When I do `docker build -t ... something` or `bazel build //something` I don't need to care if it's node, C++, Java, etc. I just need to know that it is a thing that I want to build. Make cannot deliver that to you as you need all of your system toolchains installed and you need to make sure your makefile works on every OS/system config.
Smart bookmarks for any browser
https://news.ycombinator.com/item?id=24179969
See also https://en.wikipedia.org/wiki/ACID
They ruled that elected politicians cannot block individuals from participating in the replies to their tweets because they deemed it was the equivalent of a public space. They didn't rule that Twitter couldn't themselves moderate who posts on the platform.
oh Canadians usually come to Seattle or to hike in the mountains of Washington state :)
In my experience, one should understand the c dependencies to use micro/circuit python for most of desired uses. Still great stuff. The mere decrease in linecount for simple algs has real value.
When engineers start cutting corners and start to design not for performance but “speed of development” — it becomes a slippery slope.

I guess I’m speaking from the standpoint of a firmware engineer, I honestly don’t think going with micro-python for our next product will buy us anything.

However, as I said; if you’re not into firmware and/or just getting started, this makes a great prototyping language.
I dont think the lenses were that small though. They seem to be at least a couple of millimeters if not more, because the article mentions the lens being mainly concealed inside the contraption.
As Reddit has ramped up their own activism, embraced political bias, and enacted heavy handed censorship, their actions against users have become increasingly imprecise and often absurd. It’s hard to peek behind the veil but mods of subreddits have lots of power these days. I wouldn’t be surprised if they can also take site wide actions at this point. They can also act as a hive mind due to mod meetings and mod orchestration from the admins and since the top subreddits share many common mods (see https://news.ycombinator.com/item?id=23173018). It’s time for alternatives: https://www.reddit.com/r/RedditAlternatives/comments/hi97fz/...
It's not for me but it's a great extension!
Thanks for sharing, this is really interesting.

Still, I wonder how German and U.S. universities compare for example in numbers of tutors. ("HiWis") I would estimate there is one per 20-50 students per course and they might fall into both groups since those helping out in 1st or 2nd semester courses might not have a university degree yet. Also the payment is typically quite low, although considered good enough for a first student job.

They are actually quite an important part of studies like Physics and Mathematics.

Regarding time of gradution/number students: in the past German model (which is now obsolete) where people studied for diploma, the typical lazy student would mean basically no extra cost for univsersities. Since this person usually doesn't occupy any lecture room or tutoring capacity... ;-) But the introduction of Bachelor/Master introduced quite some changes, in particular closer support for the students and more stringent time lines. But still, the Bachelor usually takes 3 years and the master an additional 2 years. Basically the curricula for diploma studies were just being split.
That could be part of it, but I don't think it's the primary reason. Rather I believe it's just one example of a more general, emergent phenomenon in capitalism, in which the top decile of jobs in high paying careers converge to interview methods which are a legal proxy for IQ testing.

It is a game of cat and mouse between candidates and companies. The candidates want high pay and interesting work, and the companies want only the top n% of candidates for their work, for some metric of their choosing. However many candidates a company has to choose from, they will devise some way of choosing the best among them. The methods for determining the best become (in my opinion) increasingly pathological as the surplus of candidates increases. In tech, the result is that the past decade has seen a supermajority of the most lucrative, mainstream jobs moving to a local maximum: whiteboard interviews based on data structures and algorithms. In response, candidates have gamified the process of studying for these metrics using Leetcode, and so a cottage industry of adult test prep was born.

Other industries use extreme credentialism or other methods to cut down on the vast majority of resumes they see, and there likewise emerges a cottage industry of professional preparation to break into these careers at the highest level. The companies use these methods because they see an absolute glut of candidates and become risk averse to bad hires - because after all, if they can attract so much talent with high pay and prestige, why should they suffer possible duds? This is how we end up with the, "Google is okay with passing on false negatives but can't tolerate a false positive in their hiring process" reasoning.
Asked at a news conference whether there were other particular China-owned companies he was considering a ban on, such as Alibaba, Trump replied: “Well, we’re looking at other things, yes.”

The (low content & quality) article doesn't actually say Alibaba.. as the quote above shows, a journalist seems to have said the name, and the reply was vague. I, too, am looking at other things.. like this coffee cup, now a bird
The BGP problem you're linking to owes to it being run at Internet scale by diverse teams, not as an interior routing protocol.
This is a fantastic explanation, thank you! I would love a detailed blog post on it.
OPDS may work fine to distribute free digital catalogs, but I find it pretty hard to integrate it with purchased material. You definetely won't have the same experience as a proprietary platform.

So your end - user downloads a random opds-enabled client, and adds your catalog. Let's say you want to make sure the client owns the material. You can't expect the client to redirect to a sign - in page, that's not part of the protocol. Purchases also do not work well (try the O'Reilly opds for example) . It's just a mess.

It's not clear to me what exactly opds is trying to solve. I found it such a stretch when they claim it's an alternative to proprietary book platforms. These systems have tons of people thinking about the entire user experience. What opds offers is just a tiny fraction of what's necessary to build that.
How is this at all patentable? Can someone explain the line between new innovation and application of existing technology?
MicroPython seems to be heavily focused on embedded systems.

Is there any support for embedding it within an application, i.e. as a replacement for Lua? Or is there another lightweight Python implementation (or Python-like language) that supports this?
My personal experience with hardware devices seem to be the opposite of most people's experiences. So many people buy a lot of hardware that does the same thing as (or less than) a computer simply to not use a computer at all costs - and cost it does! I spent a good chunk of money on a 2000xl expecting a radically different workflow, a paradigm shift, a more 'jammable' music-making experience, and I found that it was the exact same architecturally as working on the computer (or maschine if I want a tactile interface) except 10x slower technically and 40x slower mentally. Nothing was radically different, it was the same beats and bars as I was used to, except it was slower and less capable from a technical standpoint. I get that hardware works for many but for me it's just not so.

All that said I admire the 3000 for its sound capabilities - if they weren't so expensive I'd buy one just to resample masters into. But I guess that's what 'vintage' emulation plugins are for. And of course there's the historical pedigree - enabling the invention of genres and all that.
Split the dockerfile into 3 parts. builder image for gems. builder image for assets(nodejs and stuff). copy code from disk, gems from image one, assets from image two, into the third image. you will end up saving HUGE time
The big advantage of using OSPF over BGP is during a network outage. OSPF can have extremely fast convergence due to the authoratative/hierarchal design, where as BGP is decentralized and it takes time for network changes to propagate. Additionally, BGP is not always available on layer three switches, either due to licensing (I've seen BGP excluded from basic licenses) or just not supported by the vendor. Finally, OSPF is a lot simpler to setup and secure (everything could live in area 0 without the world ending), whereas BGP requires some decent architecture chops to make sure you don't create suboptimal routes or loops.

Most places run BGP at the border (ha) and OSPF on the inside, this gives them the agility of BGP with the convergence of OSPF.
If you're a firmware engineer and already familiar with the ins and outs of C, I don't think it buys you anything, agreed. I also don't think there's something fundamentally wrong with it that would force a hobbyist to rewrite everything in C if they wanted to commercialize their prototype.
"Actively promote" meaning being treated no different than any other content, unless the article omitted some information about that study. Perhaps technically true, but still a highly misleading title.
If Google kills the web it will be suicide as Google depends on the web for search.
Unfortunately Chrome doesn't do antialiasing on these constant-interpolation gradients. The bug is less noticeable here with low-contrast color pairs, but leaves ugly diagonals when you use them for finer patterns.
I don't get discussions like these at all.

If I'd be inclined to "hate think" about BJP politicians, I'd be in circles propagating this stuff. I'd probably be quite thick, and I'd probably ignore (or treat as confirmation) actions to suppress this opinion. If i was like this and I learned about someone trying to suppress this opinion, it'd probably gain some more credibility from my limited perspective.

If I'm not inclined to that (and not thick), it'd not affect me at all in the sense of being drawn to that opinion - quite the opposite: I'd even learn about a sub-culture believing $topic, and maybe I'd even start trying to work against that sub-culture.

What's the benefit?
This is silly at the best of times, but saying it in the middle of a global pandemic is truly absurd.
You can't understand the logos out of context. Rand's IBM logo (and probably many of his others), was designed along with everything from the architecture of the buildings, through the computer cabinets, to the letterhead stationery. It all had a consistent look that was instantly recognizable as IBM. That was the logo's purpose, not to be splashy and memorable by itself.

There is a whole book about this: The Interface: IBM and the Transformation of Corporate Design, 1945 -- 1976 by John Harwood. It's online:

https://muse.jhu.edu/book/24792

On the importance of IBM's design, Paul Rand wrote, "IBM's products are too complex to be understood by the average buyer. [They] must rely on IBM's reputable name." (quoted in Ch 1, p. 27 in Harwood).
Also conditional branches because you can conceivably do the comparison, branch, and fall-through in several different ways. Consider the initial case

cmp ax,bx
jge foo
bar:
; code that gets run if ax < bx
foo:
; code that gets run if ax >= bx

You could change this to cmp bx,ax and then change the jge to jl, or you could change either one alone and reverse the order of the bar and foo code blocks, or you could change both and not reverse the order of the bar and foo code blocks. (You have fewer choices if you are doing the comparison as the exit condition for a loop, except sometimes compilers will put the loop continue condition as an unconditional jump after bar or foo, in which case you have even more choices, like whether to do that or not!)
> Nim is an amazing language that suffers from a lack of momentum and hype.

And good multithreading and network libraries.
At $160k the marginal income tax rate in California is 33.3%, whereas the marginal income tax rate in Nevada or Washington is still 24%. As your income goes up, this ratio goes down. Focusing on the comparatively small state portions of income tax is a red herring, given that money going to the state at least has a better chance of paying for services you value.
> That's not the point: "I could care less" is grammatically correct, but the meaning is not what was intended.

The intended meaning is obvious. There's plenty of colloquial phrases which say one thing but mean another: "I could murder him", for example, doesn't literally mean that. That is how language works.

And, if you saying "there's beer in the cup" was understood by everyone as meaning "there's no more beer in the cup", professional linguists and dictionaries would be A-OK with that interpretation.
For remote attacks what usually happens is the malicious actor will first get access to a banks network and from there pivot to the ATMs. Often times they have some remote tool to shoot off commands and so forth. The malware itself is rather basic and easy to understand-the security layer once remotely accessed is rather moot. Depending on the malware strain they can than program the ATM to be “cashed out” during certain time or even if certain cards will be inserted.
As far as I understand, on Amazon you don’t have to compete with legitimate sellers anymore: many of them are simply gone.

If you are a legitimate seller, you want to be able to communicate with store representative. You want to be able to trust that the store wouldn’t suddenly pull the rug from under you without human contact. You don’t want your products to be displayed alongside fakes. It may be considered wiser not to engage with a store that lacks all of that.

Meanwhile, for a fly-by-night shady seller risk and uncertainty is par for the course, so they would remain and scout for new ways to game the system.
I've been using libopus as the main codec for my audio streaming library. It has all I need: good compression/quality ratio, low latency and multichannel support. Also, the API is quite simple and well designed!