HNHacker News
TopNewBestAskShowJobs

feelin_googley

1,160 karma · joined May 14, 2016

submissionscomments
feelin_googley··on K programming language (2005)
I probably used the wrong terminology here. What I meant really is avoiding (minimizing) disk I/O. (Others have already pointed out how k avoids I/O with main memory by staying resident in a CPU cache.)

Ideally I would prefer a system with sufficient RAM, without the need for "short-term" disk storage and thus without the need for virtual memory. Because today, I have the RAM I need. I have no requirement for short-term disk storage.

But like the rest of us, I use kernels that date back to a different era. These are kernels that assume insufficient RAM, the presence of a disk and the need for a "swap device" to do work. Disk I/O is a major part of that paradigm and has been embraced by software authors.

To me, disk is slow. Even SSD. I seek a different paradigm, not one still focused on secondary storage. k is the closest thing I have found.

feelin_googley··on K programming language (2005)
As a user (IANAP), I think avoiding I/O contributes significantly.

The design paradigm of k is to memory map the data and then "forget about the filesystem"; transform data in memory, instead of reading and writing "files".

The slowest part of working in k, for me, is the process of reading files into memory. And I run kernel and filesystem entirely in RAM (mfs and tmpfs); no disk is involved.

If there are other software authors who also adopted this paradigm of avoiding I/O, I would like to know of them.

feelin_googley··on K programming language (2005)
https://github.com/JohnEarnest/ok/blob/gh-pages/docs/Fromk5T...:

Padding Can Truncate (Done)

In k5, padding was treated as a minimum size for the output string:

  2$"abcde"
 "ab"
  6$"abcde"
 "abcde "
In k6, as in older Ks, padding will produce a string with an exact length, truncating if necessary:

  2$"abcde"
 "ab"
  6$"abcde"
 "abcde "

Is this correct?

   / k4
   6$"abcde"
  "abcde "
   2$"abcde"
  "ab"  

   / k2 
   6$"abcde"
  " abcde"
   2$"abcde"
  "de"
feelin_googley··on K programming language (2005)
I still use k2 in addition to k4. Being able to see which things change and which stay the same between versions helps in the slow, thorough type of learning process. (I am not a fast learner. I am a thorough learner.) I would love to get a copy of k5 or greater but I am not a programmer by trade and doubt I would pass the audition.

Although I stopped using Windows, X11 and Mac a long time ago, I have tried k2 on Windows and it is extremley fast, irrespective of whether the computer is old and "underpowered". I used it to instantaneously generate plots and charts from the command line, instead of driving Excel with some scripting language. This is software from the late 1990s early 2000s.

RosettaCode wiki needs to fix its k entries or turn off the silly Cloudflare email protection or whatever is causing the problem. The "@" symbol and subsequent characters are being replaced by "[email protected]".

https://rosettcode.org/wiki/Category:K

k4 can be integrated into daily use in UNIX-like OS for text processing.

Professional example: https://github.com/adavies42/qist/blob/master/lib/awq.k

Amateur example: (remove all duplicate lines)

   AWK
   #!/bin/sh
   awk '!a[$0]++' < $1 > $1.tmp;
   exec mv -v $1.tmp $1;

   k4
   #!/bin/sh
   exec echo "k).Q.fs[l:0::\`:$1];l:?:l;\`:$1 0:l"|exec q >&2;
Experiment: keep increasing the size of the file passed as $1 until the AWK version fails.
feelin_googley··on A Supreme Court Case That Could Give Tech Giants More Power
"An assessment of market power is the initial inquiry under the indirect method. In this case, the parties had stipulated 2013 network market shares of Visa, 45 percent, Amex, 26.4 percent, MasterCard, 23.3 percent and Discover (not a defendant here), 5.3 percent."

"(The states did not seek review of the 2nd Circuit's decision that they failed to make a prima facie case under the indirect method.)"

Have the states have conceded that Amex lacks market power?

"Gorsuch reiterated that in the absence of market power, a vertical restriction "is not within the cognizance of the antitrust laws." And, without more, a 26 percent share of a market does not constitute power."

How much direct harm can be caused by a firm that lacks market power?

feelin_googley··on Sortix: small self-hosting OS aiming to be a clean, modern Posix implementation
Thank you. Further down in that page:

"Bootloader

The kernel(7) is a multiboot compatible binary that can be loaded by any multiboot specification compatible bootloader such as GRUB. You need to use such a bootloader to boot the operating system. You will be offered the choice of installing GRUB as the bootloader."

Allowing the user to choose their own bootloader makes this particular small project a rare find, IMO.

I use another multiboot specification compatible bootloader that I prefer over grub.

I also like how he offers both 32 and 64bit.

I guess this project has been posted to HN before. Perhaps at that time it still did not yet have networking.

feelin_googley··on Sortix: small self-hosting OS aiming to be a clean, modern Posix implementation
Is sortix kernel compliant with multiboot specification?

If not, is it possible to use syslinux or another bootloader instead of grub?

feelin_googley··on DigiCert Statement on Trustico Certificate Revocation
"A third party will be required in some way, be it a CA or the Web of Trust or something else."
feelin_googley··on Firefox Configuration Guide for Privacy Freaks and Performance Buffs
To clarify, you are modifying and recompiling a Mozilla browser from source?
feelin_googley··on Firefox Configuration Guide for Privacy Freaks and Performance Buffs
An opinion: The most serious threats to user privacy from advertising companies are the "features" of the browser that allow data to be sent to or from the users computer without any input from the user. In other words, the features that let developers of websites trigger GET and POST, to "push" media to the users computer and allowing "pulling" user data indiscrinately, without explicit consent and sometimes without the knowledge of the user.

For example, there is the feature of automatically loading resources, such as images. No user input required. There is the feature of automatically loading the contents of iframes. No user input required. There is the feature of cookie headers sent automatically. No user input required. There is the feature of XMLHttpRequest triggered through Javascript. No user input required. There is support for HTTP/2. Imagine websites pushing media to users computers with greater efficiency than ever before (advertisers rejoice). No user input required.

If one is serious about regaining control over the sending of user data to these corporations and websites ("privacy"), then IMO one needs a browser that either lacks or can disable the features above and any others that allow media to be "pushed" to the user without any user input. Such a browser would only execute GET or POST upon user input, not upon input from other sources, such as websites.

Perhaps users could have two browsers: one for commercial activity and running "web apps" and another for non-commercial activity, which may not need to be default compatible with "web apps" that push media to the user. This is an alternative to having to become an expert in browser settings.

Instead of disabling features or installing add-ons, the later browser is incapable of pushing unsolicited media or leaking user data because it lacks the necessary features to do so. (I have been using such a browser for many years now. While this is probably not for everybody, I like it.)

feelin_googley··on February 28th DDoS Incident Report
"We've also designed the new checks to not block search engine crawlers, your existing whitelists, and other pre-vetted traffic. As a result, enabling I'm Under Attack Mode will not negatively impact your SEO or known legitimate visitors."

"What's also cool is that data on attack traffic that doesn't pass the automatic checks is fed back into CloudFlare's system to further enhance our traditional protections."

"[P]re-vetted traffic"?

Does this mean they are whitelisting certain IP addresses?

GoogleBot can make hundreds of requests and double digit parallel connections, as frequently as they like, but a single user making one request and one connection is blocked because they are not enabling Javascript?

This does not sound like an intelligent filter.

"[K]nown legitimate visitors"?

What exactly does this mean? How do they "know" a visitor is "legitimate"?

"[A]ttack traffic that doesn't pass the automatic checks..."

Is it possible that non-attack traffic could fail the checks?

What about a single request from a single IP that does not pass the checks because the user does not have JavaScript enabled?

Does the IP address end up on some blacklist?

I have seen Cloudflare reject connections based on certain user agent strings, a header that everyone knows is user-configurable, arbitrary and not a reliable indicator of anything meaningful.

This despite volumes of "legitimate" traffic from same source preceding it. Pick wrong user agent string and suddenly the source becomes "illegitimate".

It would be interesting to know what "checks" the Javascript in question is performing.

feelin_googley··on How does `cd` work?
Interesting how the author was looking at "cd" obviously sourced from FreeBSD project (perhaps found on a Mac computer running XNU kernel) and then, to investigate further, she consulted the source code for the Linux kernel to learn about "the" chdir syscall.

Would the title "How does 'cd' work in MacOS?" be better for readers wishing to learn, or worse? I wonder.

The blog posts from her friend at jvns.ca have been similarly Linux-centric but never use titles that inform the reader as such, i.e., "How does X work?" versus "How does X work in Linux?"

It makes me ask, how important is it for students to be aware of the Holy Grail of UNIX: portability.

How long should one remain blissfully ignorant of incompatibilities between UNIX-like OS that work against those "still seeking the Holy Grail"?

As a user, the UNIX programmers I admire the most are the ones who understand the value of portability, set it as a goal and through broad knowledge and utmost care can get very close to achieving it, despite the mind-numbing work or the tradeoffs this might entail.

feelin_googley··on Slack client for the terminal
Original title said something about "20MB".

Is that how much memory this requires to run?

feelin_googley··on February 28th DDoS Incident Report
"... you need to have a stupidly complicated JavaScript engine enabled and accessible to a webpage..."

Does anyone have an example of this webpage?

Unless I am engaging in e-commerce, I do not run a browser JavaScript engine. I rarely if ever encounter a webpage that truly "requires" one. GitHub certainly does not require JavaScript for me to use it via www.

feelin_googley··on DigiCert Statement on Trustico Certificate Revocation
"Can you do that automatically, ie, without human intervention at all?"

Why not use something like SSH authentication keys to verify the endpoint? (e.g. ed25519 which can be generated very fast)

Consider the vast number of endpoints that are now currently being verified using authentication keys.

For something like encryption, I believe some human intervention will always be required. Only a human can answer the question: "Do you trust this?"

The issue is which humans are intervening: (a) the humans at each endpoint, or (b) the humans at each endpoint plus third parties.

Letting the www commercial CA vendors and commercial ad-supported www browser authors answer the question "Do you trust this?" on behalf of users is still human intervention. Unfortunately for users, this is delegating the intervention to humans that have no "skin in the game". The third parties are not the ones with the need to encrypt. They stand nothing to lose if the encryption is defeated.

Common sense suggests this is the wrong approach. (And that's ignoring the ever-increasing number of exposed flaws and "incidents" regarding www commercial CAs, like the one being discussed in this thread.)

feelin_googley··on DigiCert Statement on Trustico Certificate Revocation
"They should have a public key upload button next to your domain name in your registrars domain name control panel..."

What about putting the public key in a subdomain.

DNSCurve uses this approach to encrypt DNS packets.

If an authoritative nameserver for a domain can manage encryption of DNS packets without SSL/TLS, x509 and a CA system, is there any reason why an httpd could not do the same?

Management is handled by a "forwarder" daemon that is placed between the nameserver or httpd and the internet.

IMO, much less complex than SSL/TLS, x509 and commercial CAs and control over encryption does not require third parties.

feelin_googley··on Google and HTTP
Why is this flagged?

The author is Dave Winer. Known for many things, among them RSS. HN users seem to like RSS and dislike what happened to Google Reader.

There is nothing unreasonable about supporting both HTTP and HTTPS.

There are decisions that should be left to users. Denying them meaningful options is something that should raise a red flag and spur some commentary.

For example, if users want to use RSS, then we should be wary of any company that effectively tries to dissuade them from using RSS.

Similarly, if users want to use HTTP for some content (and perhaps HTTPS for other content), then we should be wary of any company that effectively tries to dissuade them from ever using HTTP for any content.

Not all content needs to be encrypted. Moreover HTTPS via SSL/TLS is not the only way to distribute encrypted content. We should not pretend there is only one way to do it, let alone coerce people to do it only one way.

As a user, I would be just as satisfied with a page of HTML that is PGP-signed, encrypted and sent over HTTP as I would with HTML sent over a so-called "secure channel" via SSL/TLS, what with the third party reliances the commercial domain name and commercial x509 certificate schemes routinely entail.

Besides the issues of requisite third party involvement in encryption, TLS as implemented so far has some serious weaknesses and shortcomings, and is not the only solution to "secure content". If a company is going to issue warnings to users, then that should be among them. Promoting a false sense of "security" should be avoided.

When a company running the largest search engine on the www penalizes websites for not implmenting some feature, whether it is AMP or HTTPS or something else, this should raise red flags. Expect some commentary.

feelin_googley··on Tiny Core Linux
Yes, for me this has been the best balance between (a) the simplicity (size, 3rd party dependencies, etc.) and robustness of the system for building from source and (b) the hardware support in the source tree.

No question Linux wins on (b) given all the corporate backing, but whenever I revisit systems like Buildroot or Yocto I feel the system I am using wins on (a). More likely than not I am just resistant to change and not wanting to invest the effort to master those systems.

Purely subjective, but I suspect the system I devised for myself is simpler and more "stable" in the sense it is less reliant on third parties and thus less brittle. Those qualities are important to me.

Not sure if anyone has mentioned VoidLinux yet in this thread. Probably well worth a look at least as an example if "small and simple" are design goals.

feelin_googley··on Tiny Core Linux
Some people perhaps are missing this. Others surely understand.

Personally, I have been running my computers this way for many years now. I do not use Linux kernel, but like "tinycore" everything fits in RAM. Size range is usually about 13-17MB for x86.

The USB stick or other boot media with the kernel+bootloader can be removed after boot. Depending on how much free RAM I have to spare, I can overlay larger userlands on top of this, and chroot into them. With todays RAM sizes, I can hold an entire "default base" (BSD) in memory if desired.

This filesystem on the media is not merely an "install" image. It has everything I need to do work, including custom applications. If I want distributions sets I download them; they are not stored on the media.

In normal use, I do not use any disk. Therefore I do not use a swap file.

Recently on HN a discussion of sorting came up, and I mentioned the issue of sorting large datasets using only RAM, no disk. Obviously BSD and other UNIX-like kernels date back to a time of severely constrained memory and are designed around space-saving concepts like "virtual memory" and "swap", "shared libraries", etc.

When one runs from RAM with no disk, working with large files means "thrashing" is a real possibility. Aside: Did the architects of virtual memory contemplate a world where users are doing work without using HDDs or other writeable permanent storage. (Start a new thread if want to answer/debate this.)

Sorting large files is something I do regularly so I am always open to new ideas. Currently I use k/kdb+ for large files instead of UNIX sort.

Here's the reply I got:

https://news.ycombinator.com/item?id=16086791

feelin_googley··on Disabling ANSI color output
Nice to see someone mention this. Sometimes I think I am the only one. This sort of thing is what scares me away from GNU/Linux whenever I try it, having spent so many years with a BSD that does not enable anything by default. Nothing wrong with customization, except when it is someone other than the user who is fiddling with it.

I am used to a black background. Seems like the logical "default" starting point in VGA textmode. Even Linux kernel output when booting starts on a black blackground.

feelin_googley··on Show HN: Command Line Tool to Sort CSV and TSV Files by Multiple Headings in Go
When sort is used on really large files, it will automatically attempt to use disk, putting temp files in TMPDIR. This can be really slow.

To overcome the slowdown of disk I/O, perhaps a workaround could be to use mfs or tmpfs, maybe something like:

   mkdir /dir
   mount -t tmpfs tmpfs /dir
   TMPDIR=/dir sort -k2 -k1 -k3 contacts.tsv
   TMPDIR=/dir sort -k1 -k2 -k3 contacts.tsv
Personally, I gave up on sort for large files and use k/kdb+. I suspect it is faster for sorting than sort or the Go libraries, but I could be wrong.
feelin_googley··on Fantastic Timers: High-Resolution Microarchitectural Attacks in JS (2017) [pdf]
Someone once suggested the risk in opening email attachments was analagous to the risk in running executable code (e.g., Javascript) from websites. Each can expose the user to a multitude of vulnerabilities. The argument against this comparison at the time was that Javascript from websites, unlike email attachments, could be run in a "sandbox". Even if the code could not be trusted, it was "safe" because it was "isolated".

Today, many users do not run Javascript because all too often it exposes them to excessive advertising and resource usage. Now, after researchers defeated KASLR with Javascript, and with Meltdown and Spectre being implemented in Javascript, there are additional benefits of not running third party Javascript.

feelin_googley··on Show HN: Command Line Tool to Sort CSV and TSV Files by Multiple Headings in Go
Can anyone provide sample input and output for the example? I find it difficult to evaluate text processing software quickly against existing solutions when there is no example given, such as: here is some sample input and here is the desired output, as is done at, e.g., unix.com.
feelin_googley··on ‎Chromium Security‎: Site Isolation
I notice that chromium.org does not require SNI.

SNI was created so that multiple SSL-enabled websites could share the same IP address. (Perhaps because IP addresses are an undue expense for some website owners, unlike, say, chromium.org.)

Assuming the the single IP address is not "anycasted" (another undue expense), does SNI imply that multiple websites1 are in some way sharing a common computer?

Could that be relevant with respect to "site isolation" in any way? Why or why not? (For example, does the server side, perhaps with multiple "tenants" sharing the same hardware, pose a risk to the client concerned about undesirable memory access?)

1 Presumably those websites are handling sensitive information hence the need for SSL.

feelin_googley··on Reading privileged memory with a side-channel
In 1-2 words, IMO, the problem is "over-optimisation".

It is perhaps beneficial to be using an easily portable OS that can be run on older computers, and a variety of architectures.

Sometimes older computers are resilient against some of todays attacks to the extent those attacks make assumptions about the hardware and software in use. (Same is true for software.)

When optimization reaches a point where it exposes one to attacks like the ones being discussed here, then maybe the question arises whether the optimization is actually a "design defect".

What is the solution?

IMO, having choice is at least part of any solution.

If every user is effectively "forced" to use the same hardware and the same software, perhaps from a single source or small number of sources, then that is beneficial for those sources but, IMO, counter to a real solution for users. Lack of viable alternatives is not beneficial to users.

feelin_googley··on Apple Developer Program Membership Fee Waivers Now Available
I wonder how much the company really needs those fees.
feelin_googley··on Linux page table isolation is not needed on AMD processors
What I meant by this is that JS relies on a browser with an interpreter. If we use one without an interpreter then JS is nothing but text. I guess one could claim that this text is "part of the web". The point is that it is the users choice whether to run the it through an interpreter. Sometimes they might want to do that (maybe offline), other times they might not. Most times I do not need to run JS to get what I am after (e.g., text, documents, videos, etc.). There is just no need to run all these third party scripts to read some text or download a file for offline viewing. I may read the JS though. In that sense, yes, it is "part of the web". It just isnt the content part that users care about.
feelin_googley··on GPG and me (2015)
How does a user send a file of arbitrary type through Signal?

Is it true that PGP has uses that do not overlap with Signal? If no, then please ignore the rest of this comment.

Is it true that a block cipher has uses that do not overlap with a stream cipher?

Signing and verfiying files.1

Encrypting files.

From what I have read, Signal is concerned with messaging. But there is more to PGP than just messaging. Files that need to be signed/verified or encrypted do not necessarily always have to be sent to or received from others.

The blog post singles out one particular use of PGP, i.e. email, and complains about one implementation of PGP: GPG. Maybe the GPG software is not user friendly. Maybe PGP email is hopelessly complex. It is easy to make those arguments. Many have done it before.

However PGP encryption, in the general sense, not when used for email and not necessarily as implemented by the GPG software, can still be useful.

Files can still be useful, even when not in the context of the "messaging" business, Twitter subsidiaries, Facebook subsidiaries, advertising, smartphones, etc.

1 I prefer ed25519 for signing and verifying files but perhaps there are advantages to PGP I am not aware of.

feelin_googley··on Linux page table isolation is not needed on AMD processors
JS is only part of the browser.

Accusing people not running browsers that expose them to a nasty bug of feeling an exaggerated sense of "smugness"?

This seems disrepectful of users.

Doesnt that violate HN guidelines?

feelin_googley··on Clang runs in the browser and compiles C++ to WebAssembly
It does not run in the browser I am using.

That is one reason I chose it. Choice is good.

← PreviousPage 6 of 15Next →