HNHacker News
TopNewBestAskShowJobs

throwawayish

804 karma · joined January 11, 2017

submissionscomments
throwawayish··on Intel Launches Atom C3000 SoCs: Up to 16 Cores for NAS, Servers, Vehicles
E5-2xxx.
throwawayish··on Postmodern Error Handling in Python 3.6
In your example you'd just have two different types with no subtraction operation defined between them. That has nothing to do with type hints.

What you probably meant: This is where being strongly typed helps. Python is and always has been strongly typed.

throwawayish··on SHA-1 collider: Make your own colliding PDFs
> It's a different usage of the term than the normal case

Is it? How? It's a simple case of length extension, just that here, since we have two independent starting points sharing the same state, we start with a collision and we extend to a collision.

In other words, these are two length extensions on independent prefixes. It just happens that these prefixes share the same state / hash, hence the surprising result (on a first glance).

throwawayish··on Reports of SHA-1's demise are considerably exaggerated
Color the character boxes and display in two adjacent lines.
throwawayish··on Do we really need swap on modern systems?
Memory mapped files are incredibly hard to use for consistent, durable storage. I mean, so is POSIX I/O in general, but if you do MAP_SHARED you made your life even more complicated. (MAP_PRIVATE and rewrite-the-whole-thing-for-every-commit works, though, and can have some advantages).
throwawayish··on Do we really need swap on modern systems?
I have been using various operating systems for a while.

I feel like Linux has, in general, from a UX point of view, the worst behaviour when swapping and the worst behaviour in general under memory pressure.

I feel like it has gotten worse over time, which might not be just the kernel but the general desktop ecosystem. If you require much more memory to move the mouse or show the task manager equivalent, then the system will be much less responsive when it thrashes itself.

Honestly, I'ld much rather have Linux just crash and reboot, that'd be faster than it's thrashing-tantrums.

Luckily, there's earlyoom, which just rampages the town quickly if memory pressure approaches. Like a reboot (ie. damage was done), just faster.

In any case, it makes me sad (in a bad way) to see how bad the state of things is when it comes to the basics of computing, like managing memory.

throwawayish··on Weaponizing PostScript
The "PDF language" itself is not that complex per se and ofc. executes in a VM. PDF also allows to embed various stuff, including Flash and JavaScript, which both execute in a VM as well.

No PDF reader was supposed to just execute x86 instructions from a PDF file (wouldn't be very Portable, would it?), although many PDF readers had enough security issues that it's an arguable viewpoint.

throwawayish··on The Year of Linux on Everything but the Desktop
> when the desktop comes to an end.

Just... lol.

throwawayish··on The Year of Linux on Everything but the Desktop
XP was released sixteen years ago.
throwawayish··on Do we need a new heading element in HTML?
This is what rST solved and got 100% right ~15 years ago.
throwawayish··on FCC chief wants smartphones’ hidden FM radios turned on
> wireless headphones increase in popularity

Do they?

> It also adds to confusion as to why you only get static in some cases, or a message about wired headphones being required.

Poor humans, constantly being confused. Life must be difficult.

throwawayish··on Paranoid Programming – Techniques for Constructing Robust Software [ps]
All true, but if we say "type" then the default assumption will be "int", "string" etc. -- "pixels" and "millimeters on a piece of paper" are the same type then.

This is, after all, exactly how systems hungarian misunderstanding came about.

throwawayish··on Paranoid Programming – Techniques for Constructing Robust Software [ps]
> But yes, the fundamental idea was to convey information about the type of the variable as part of its name.

No.

There are two types of Hungarian Notation.

The original one ("apps hungarian"), which made sense and sometimes still makes sense. Here you would assign a meaning to a prefix. For example, if you're writing MS Word a variable named "sWidth" might be the width of something in pixels on the screen (s), while "pWidth" might be the same width, but in logical units (say pt) on the page. Then you could have a function ptos, and it's easy to see whether variables were used correctly in computations - you can't mix screen-space and page-space coordinates without conversion.

This made a lot of sense, because either variable would likely just be an "int".

Similarly in a Python Webapp one might write "us_name" where us means UnSanitized. So before passing that anywhere else you know you need to sanitize it. See a "us_" variable somewhere that isn't a call to a sanitizer? Probably a bug!

Then there's that other one, "system hungarian", which is the stupid thing everyone knows with stuff like lpcstrWindowName.

throwawayish··on Fossil SCM
> They're quite thorough (though they have the fault of being heavily steeped in git jargon).

So you actually agree. To understand the docs you have to understand git jargon, and the docs aren't too helpful about that.

I certainly don't want to say that the git docs are bad. They're quite complete and written in mostly complete sentences, which is already pretty good as far as documentation goes. Doesn't mean that there is a lot of room for improvement.

throwawayish··on Fossil SCM
I remember the old page / look and I feel like that one had much more character. This kind of design is very generic and has been for quite some years now.
throwawayish··on Fossil SCM
> This is a good point. I think once developers learn Git (or as much as they need to use), then they forget how esoteric the the cli tool is.

This is more up to git being horribly leaky about all it's internal implementation details. I'm not a git developer, and not even that great a user, but I know about trees and indices and refs and refspecs and packs and reachability and objects and merge drivers and smudge and clean and diamonds and countless other details that I feel should be encapsulated way better. git also has next to none documentation of these concepts.

throwawayish··on Dole Food Had Too Many Shares
"Distributed processing is not only more complex to implement but also turns out to be less efficient in most if not all cases" -- not sure where I got that one. Google tells me it's not literal, or NotOnTheInternet(tm).
throwawayish··on Microsoft’s February security update release delayed to March
Yes, clustering and virtualizing things is pretty much how this has been handled at a scale, be it modern web applications, (Open)VMS or mainframes. It's simpler and has other advantages to architect the application for this than to do the custom integration work required to make it work on a process/application level.
throwawayish··on Microsoft’s February security update release delayed to March
Applying updates without degrading service has always been somehwat difficult to do; but it can be done in ways similar to "graceful reloading" that is relatively widely used in web servers. However, it requires custom integration work, which means you need a capable sysadmin and perhaps a developer or two to implement it, so usually you just don't. Clean restarts also avoids bugs that you might introduce there.
throwawayish··on Microsoft’s February security update release delayed to March
DLLs and other components installed system-wide are almost never the same file: Updates install new versions of most DLLs into the SxS system and compatible applications load newer versions when they are restarted.
throwawayish··on Algorithms
Where did you get the impression that GP was talking about "doing front-end web development"?
throwawayish··on Cellphone Spy Tools Have Flooded Local Police Departments
GSM crypto was designed to not be strong (in the late 80s).
throwawayish··on 65535 interfaces ought to be enough for anybody
A coworker mentioned that multidexing also take ages and uses huge amounts of memory.
throwawayish··on Heating houses with high performance servers
> fjernvarme

We Germans have that, too - Fernwärme :)

throwawayish··on Mkfile(8) is severely syscall limited on OS X
Network buffers are a completely different animal, also harder to optimize...

Disk IO buffers, it's easy nowadays, just use something like a MB, which is just fine for almost any application, and doesn't stack up to much memory use (unless you're writing many files concurrently, which can bring it's own problems as well)

throwawayish··on Mkfile(8) is severely syscall limited on OS X
It is.
throwawayish··on Mkfile(8) is severely syscall limited on OS X
No, mkfile creates a file with written extents (no sparse or uninitialized areas), while fallocate will (with ext4/xfs/...) only map some extents which are marked uninitialized. So while mkfile 10G would have to write ~10 GB of data, fallocate 10G is nearly instanteneous, because it most likely just allocated a single extent.

xfs_mkfile could do what mkfile does, the description isn't conclusive enough.

throwawayish··on Posix Has Become Outdated (2016) [pdf]
Like I said, just the extent (cluster run) operations; if you're overwriting they shouldn't block and I didn't manage to make them, if you're extending they usually don't seem to but some times do block.
throwawayish··on Posix Has Become Outdated (2016) [pdf]
I would wish that the whole (disk) I/O mess would be cleaned up. It's just laughable how broken that is across operating systems. And it's supposed to be the back-bone of most operating systems as well.

Also, memory management. Only in very recent years proprietary APIs surfaced in Linux and friends that allow to leverage some of a modern MMUs capabilities (which is good). Meanwhile we still have stupid MM semantics like fixed / non-reversible allocation commits.

> The database people would love to have well-defined semantics like this.

Yes. Yes they would.

Right now there is no way in no operating system to actually do asynchronous disk IO. You can do an equivalent of write(2) asynchronously, at least on Linux, Windows and I think SunOS, but in all of them it's not really asynchronous; they will run extent allocation synchronously which can -worst case- mean multiple disk read/write cycles. This of course means that for many applications that could make use of async write actually need to use threads and queues for doing it.

throwawayish··on Posix Has Become Outdated (2016) [pdf]
I can tell you right off the bat that POSIX might be better than no "standard" at all, but porting stuff between any POSIX-ish OS still means an actual port.

Practically every non-trivial POSIX-ish program is not portable. This also includes quite some supposedly higher level applications written using things like Java, Go, Ruby, Python ... since they all leak POSIX details all over the place and make non-portable use quite easy.

← PreviousPage 3 of 9Next →