HNHacker News
TopNewBestAskShowJobs

ogurechny

1,205 karma · joined February 18, 2015

submissionscomments
ogurechny··on Dark web agent spotted bedroom wall clue to rescue girl from abuse
This is actually both.

It's not a big secret to journalists that such stories are just another kind of entertainment that never fails to attract the public. Certain people constantly work in that genre.

Readers want to be assured that something is excluded. I visit the good sunny side of the internet, and horrors are on some “darknet”. I live in the better part of the town, and horrors happen in bad districts. Me and my friends are “normal people”, never “victims”. Wars are far away. I am not responsible for anything.

Certain people's careers are made in such pandering.

So they tell a thrilling detective story, and at the same time publicly shame Facebook to make people think that more control over “important services” and more backdoors are needed. Only for serious cases, of course. You wouldn't want to support those people, would you? Good. Now show us you licence number for internet usage.

Lies upon lies upon lies.

ogurechny··on Four Column ASCII (2017)
Smaller, 6-bit code pages existed before and after that. They did not even have space for upper and lower case letters, but had control characters. Those codes directly moved the paper, switched to next punch card or cut the punched tape on the receiving end, so you would want them if you ever had to send more than a single line of text (or a block of data), which most users did.

Even smaller 5-bit Baudot code had already had special characters to shift between two sets and discard the previous character. Murray code, used for typewriter-based devices, introduced CR and LF, so they were quite frequently needed in way more than few years.

ogurechny··on Reticulum, a secure and anonymous mesh networking stack
With current size of the network, it's probably managed by sending messages to operators chat “Hey, IP a.b.c.d is doing that again”.

Remember that Fido and Usenet relied on independent server admins voluntary enforcing the rules for global groups (and allowed the alternative sister hierarchies or local appendices with different rules). It is possible to give more power to local decision maker, and share the global ideas.

Link establishment mentions validation of the circle by the intermediate hops. I suppose that someone who is sending a lot of packets without participation from the other side can be put into exponentially worse and worse queues. Or maybe not. There's a lot of things to test.

ogurechny··on Reticulum, a secure and anonymous mesh networking stack
This is something a clueless TV marketer would say, I suppose.

Both tools can be used to both build private networks managed by a single entity, and to connect to global shared volunteer-run network.

Reticulum is not a general purpose protocol-agnostic data transfer network into which you can plug anything. Also, when you want any kind of serious bandwidth over long distance radio, you have to meet with agencies managing national frequency plans, and they won't lease you anything for free.

Yggdrasil is hardly an “alternative to Internet” as long as it runs on top of Internet links. Moreover, when public Yggdrasil network becomes big enough (assuming that it still runs on volunteer public nodes, just many more of them), the core of the network will have to form a backbone with links shaped by user concentration and user traffic flows, just like network of physical cables used by providers is shaped by demand, concentration of computing resources, geographical features, and so on. Someone will probably have to collect funds to pay for that. Or some new smart multipath routing with dynamic load balancing will be invented.

ogurechny··on Reticulum, a secure and anonymous mesh networking stack
Those are different weight classes. If I recall correctly...

Reticulum is a protocol and a set of ideas about basic building blocks for data exchange.

Let's say you have some rusty wet wires (a serial link) or an antenna. You need to send some data. Typically, it goes like that: “Well, 0x01 is HELLO command, 0x02 is BYE... No, 0xFF is BYE... No, 0xFF should be reserved escape code for two byte commands”, and so on. Then you realise (or find out) that someone else might accidentally or deliberately send similar messages, and their correctness and validity should be checked. You add hard-coded encryption keys (because surely no one is going to look for them), re-invent key exchange protocols, then wrap everything in TLS because it's the only thing that is expected to work globally (usually with hard-coded soon-to-be-expired certificates or without certificate checks at all). If you use some standard bus, some of those things have already been offered to you.

Reticulum message payload is signed and encrypted by default (except for local broadcasts, but clear text can be treated as encrypted with a key everyone knows). Its destination is an abstract identity (tied to a pair of asymmetric cryptographic keys) which does not correspond to any physical network. They all are simply assumed existing and unique in some global space. No assumptions about protocols are made. You get some lower level data pipes — shared medium (radio, bus — the difference is in the shape electromagnetic waves take anyway), real or virtual point-to-point links (e.g. over IP). You can announce your presence, that's Layer 0 packets. You might not, and only listen passively. You can exchange some routing data and other gossip with peer nodes. That's also Layer 0 packets. You run some application, and destination it creates for is no different from node destination, and its announcements are no different from node announcements, and they are also Layer 0 packets. One application on one node sends data to another, on another node? Same Layer 0 packets to some abstract identity. If you imagine a graph of node-identities, application-identities are also there, on the same plane, directly peering to their nodes. Same for multiple service-identities or user-identities under the hood of one application.

Obviously, some kind of smart routing should support such identity graphs. First of all, we start with no routing, that's why one of the examples in the documentation is a temperature sensor that simply sends packets to a pre-defined identity over radio. It does not care whether the rest of the network exists, or whether anyone is listening to it. It might be a single board computer on the other side of the room, the only other node in the local network, with that destination as a sink for temperature data. It might be the same device with a globally-connected node that relays those messages, and over multiple hops over various types of links it gets to the destination at the other side of the world. The sender sees no difference.

Then we have announcements that are re-broadcasted to peers of peers (if they have available announce bandwidth). As a result, nodes in the network (or some part of it) grow a list of routes based on how fast they got that announcement, from which peer, and with which retransmit (TTL) value (to reach destination abcd..., send packets to peer P). It is understood that those events are “rare enough”, and the backbone “transport nodes” should be “stable enough”. It is totally relative, though: default announcement rate might be on each restart or once a day, to accommodate for long range low bandwidth radio links, but on fast fat frequently changing local networks you can choose to re-announce each second, just like with routers checking each other via STP. On the other hand, we might not what to announce ourselves to the whole world (“Name's Bond, James Bond, destination 007...”), or someone might connect to the network after the announcement. There's an option to send WHO-HAS message from the other side if there is no known path to the destination yet. Without deliberate announcement, only the direct peer (our local node in case of some application destination) will know that we are present.

Basic communication is unidirectional, and each message is independent from the other. You don't know whether someone received your message until the other side decides to send you the confirmation (if it knows where to send it using data provided inside the message or external knowledge). If two people meet, write down each other's destinations, and agree when to be online to use some application just sending individual packets, they don't need any high level protocol. Otherwise, there is the same freedom to adapt as in routing. One option is to establish a bidirectional link between two online destinations. It is a higher level abstraction provided to manage stable virtual circuit along multiple hops, disassembly of data into packets and correct assembly of them, one-time session keys for forward secrecy, and so on. Other option, supported in LXMF, is to store and fetch the data with the help of an intermediate participant. Obviously, store and fetch might happen at different points in time, so intermittently connected participants might choose to use that. At the moment, those intermediates (“propagation nodes”) are simply chosen from random volunteers, but the system can be extended to provide fault tolerance and load distribution with common methods at higher level.

There is built-in anonymity option (obviously, not “complete anonymity”, just anonymity among Reticulum network users). If Alice and Bob want to chat in presence of some adversarial nodes matching opaque traffic, they can do that. However, if Alice or Bob is secretly working with those spying nodes, it's a bit different story. That's probably not that important with current number of users.

So even if Reticulum can transfer IP packets as payload, and theoretically be used as a general purpose IP overlay network, it makes little sense. It is also, most likely, not optimised at all for that specific task.

Yggdrasil is quite different. It's a practical test of an implementation of universally scaling routing algorithm (a number of such algorithms, if we take previous versions into account). It uses common IP transport, and therefore is aimed at systems with complete network stacks. Its goal is not being a cool mesh virtual private network (though it is cool), but to prove that decentralised global network with random user-generated cryptographic identities can converge and efficiently route traffic all by itself. But, yeah, all the cool kids these days have the [2xx:/[3xx: addresses, and even mine vanity ones.

ogurechny··on New information extracted from Snowden PDFs through metadata version analysis
File systems aren't databases, but journaling file systems use journals just like databases. It can theoretically define any granularity for something that might happen to a file to become an irreversible transaction. I suppose that file systems have to remain “general purpose enough” to be useful (otherwise they become part of the specific program or library), and that's why complex features which might become a pitfall for the regular users who expect “just regular files” rarely become the main focus.
ogurechny··on New information extracted from Snowden PDFs through metadata version analysis
It started in the '80s. PostScript was the big deal. It was a printer language, not a document language. It was not limited to “(mostly) text documents”, even though complex vector fonts and even hinting were introduced. For example, you could print some high quality vector graphs in native printer resolution from systems which would never ever get enough memory to rasterise such giant bitmaps, by writing/exporting to PostScript. That's where Adobe's business was. See also NeWS and NeXT.

However, arbitrary non-trivial PostScript files were of little use to people without a hardware or software rasteriser (and sometimes fonts matching the ones the author had, and sometimes the specific brand of RIP matching the quirks of authoring software, etc.), so it was generally used by people in publishing or near it. PDF was an attempt to make a document distribution format which was more suitable to more common people and more common hardware (remember the non-workstation screen resolutions at the time). I doubt that anyone imagined typical home users writing letters and bulletins in Acrobat, of all things (though it does happen). It would be similar to buying Photoshop to resize images (and waiting for it to load each time). Therefore, competitor to Word it was not. Vice versa, Word file was never considered a format suitable for printing. The more complex the layout and embedded objects, the less likely it would render properly on publisher's system (if Microsoft Office did exist for its architecture at all). Moreover, it lacked some features which were essential for even small scale book publishing.

Append-only or versioned-indexed chunk-based file formats for things we consider trivial plain data today were common at the time. Files could be too big to rewrite completely each time even without edits, just because of disk throughput and size limits. The system could not be able to load all of the data into memory because of addressing or size limitations (especially when we talk about illustrations in resolutions suitable for printing). Just like modern games only load the objects in player's vicinity instead of copying all of the dozens or hundreds of gigabytes into memory, document viewers had to load objects only in the area visible on screen. Change the page or zoom level, and wait until everything reloads from disk once again. Web browsers, for example, handle web pages of any length in the same fashion. I should also remind you that default editing mode in Word itself in the '90s was not set to WYSIWYG for similar performance reasons. If you look at the PDF object tree, you can see that some properties are set on the level above the data object, and that allows overwriting the small part of the index with the next version to change, say, position without ever touching the chunk in which the big data itself stays (because appending the new version of that chunk, while possible, would increase the file size much more).

Document redraw speed can be seen in this random video. But that's 1999, and they probably got a really well performing system to record the promotional content. https://www.youtube.com/watch?v=Pv6fZnQ_ExU

PDF is a terrible format not because of that, but because its “standard” retroactively defined everything from the point of view of Acrobat developer, and skipped all the corner cases and ramifications (because if you are an Acrobat developer, you define what is a corner case, and what is not). As a consequence, unless you are in a closed environment you control, the only practical validator for arbitrary PDFs is Acrobat (I don't think that happened by chance). The external client is always going to say “But it looks just fine on my screen”.

ogurechny··on Cloudflare outage on November 18, 2025 post mortem
> Given Cloudflare's importance in the Internet ecosystem any outage of any of our systems is unacceptable.

Excuse me, what you've just said? Who decided on “Cloudflare's importance in the Internet ecosystem”? Some see it differently, you know, there's no need for that self-assured arrogance of an inseminating alpha male.

ogurechny··on How Quake.exe got its TCP/IP stack
The turbulent times and the breakneck speed of computer development need to be taken into account. Not long before that computer networks were strictly corporate things installed by contractors choosing hardware, driver and software suppliers suitable for tasks performed by employees or students, and someone who installed it at home was the same kind of nerd who would drag an engine from the work into his room to tinker. Non-business-oriented software rarely cared about third party network functions. Then network card became a consumer device, and a bit later it became integrated and expected.

Also, Windows did not install TCP/IP components on computers without a network card (most of them until the Millennium era), it was an optional component. You could not “ping” anything, as there was no ping utility, nor libraries it could call. In that aspect, those network-less Windows systems were not much different from network-less DOS systems. The installer probably still works that way (or can be made to, by excluding some dependencies), but it's hard to find hardware without any network connectivity today. I wonder what Windows 11 installer does when there is no network card to phone home...

ogurechny··on The Great Feminization
What you're saying is “Fat, ugly, flat-chested, etc. women are not real women, I only care about my kind of true women, please only show me these”. That's exactly what I was talking about. The measure to define women in your head is shaped like that, and you reluctantly decide to let someone pass. Yes, it is common. Yes, it is stupid. What's actually new in that?
ogurechny··on The Great Feminization
As many others, you believe that by talking about certain things you're directly touching “real”, “material”, “physical” world. So-called humanities — barely even taught to so-called educated public — could help you see how that specific creed of scientism spread in last two centuries, how it was tied to mass education and journalism, and not actually to science, and what made you stick to it (no one told you that the outside world exists). You chose comfortable ignorance.

Being a proud servant of the status quo is neither fresh, nor smart, nor scientific. Illiterate savages worshipped their idols in the exact same fashion.

ogurechny··on The Great Feminization
> some people -want- men and women to be interchangeable in all respects

That's a generalisation that loses all sense.

For example, you're building giant pyramids out of human corpses. Based on experiments and precise calculations, you know that you need x.y% more female corpses than male corpses, and get really angry when suppliers try to argue that men and women are equal in all respects.

Obviously, this is not the important question. We should ask questions about your activity as a whole instead.

(It might seem that my example is a bit over the top, but people around us do things that are just as bad, and with real enthusiasm.)

Gender issues are not just abstract, they are tied to problems people see in the society. It is not fashionable today to just state that someone is a swine to behave in some manner (and the answer would usually be that you are not allowed to limit anyone's freedoms), so dumb pathetic fences of bureaucratic states are used, and the talk about progress, benefits, equality, shared future, etc. floods the stage. However, you personally still either think that something is right, or that it's wrong.

During “millions of years of evolution”, in many places any woman walking alone without male relative or servant could be treated as a potential free sex toy. It was simply “evident” that anyone could try to rape her, and “everyone” knew that — men, women, kids. It was “natural”, and even the commandment about neighbour's wife could easily be seen as excluding “no one's” or “everyone's” wives, so it was even sanctioned from above. Obviously, it all stemmed from the heads of certain people, and changes introducing consequences mutated that “natural order”.

By the way, the figure of noble male saving damsel from the jerks is considered noble because... he could've joined the party, but choose not to. What a hero! Simple-minded people continue to see things the old way to this day when they expect heroines saved by the hero to have sex with him immediately. Because what are other options, really?

ogurechny··on The Great Feminization
I think that you misunderstood me. Sadly, philosophy is completely absent from “required” education in our “enlightened” world (or presented as narrow-minded bean counting), so capturing “evident things” as results of the thought process is hard.

By one side of equation I meant all those arguments about “men” and “women” altogether. You are absolutely free to state that men are X, and women are Y, and attribute it to Nature as a whole, or scientific data sliced off of it. There is nothing wrong with that by itself. However, the whole other “stable” side which you try to “fix” by this process is no less of an invention.

Say, we're having an argument whether cucumbers are fruits or vegetables. In that case, we can even reach an “official” answer. But it's more important to realise that the whole stage on which we're playing is constructed. “Fruits” and “vegetables” are convenient man-made classifications. Cucumber does not come with a label “I'm a cucumber, as stated in encyclopaedias, etc.” Nor its atoms come with a label “We're parts of that cucumber thing”, nor anything else (note for our young vulgar materialists).

In my opinion, feminist thought taking that step (which — for multiple possible reasons — was not taken even by greatest thinkers) is the most important achievement. Which “wave” is right, or how to “correctly” display your alignment with “correct” movement according to latest fashions are ancillary questions.

ogurechny··on The Great Feminization
The idea that there are straightforward “female” and “male” traits should seem quite shaky to anyone who is even a little bit into humanities. The problem is that both sides of the equation are constructs of the mind, both the thing we would like to measure, and the measure itself. Fighting journalistic simplification with journalistic simplification is not the mentioned “pursuit of truth”. So before arguing whether pink is “for silly girls”, or “proud female colour”, it would be great to remember that its association with gender basically only started yesterday.

Even if we assume that there are “standard men” and “standard women”, there's another problem: office politics occurring in country M in century N is most certainly the product of specific culture, and not some cavemen rituals. Problems of Patrick or Patricia Bateman are probably quite alien to a lot of people in the world.

The irony is that the image of “good old days” is itself based on modern day stereotypes. So-called progressive propaganda was quite focused on the caricature of concentrated Bad Masculine Man, and now, freshly painted, it is presented as a positive example (because public is familiar with it, and making public think is too hard).

ogurechny··on A story about bypassing air Canada's in-flight network restrictions
It's a system for steganographic traffic proxying plugins that evade advanced detection systems. https://github.com/XTLS/Xray-examples

Chinese, Russian and Persian links could've given you a hint. Though after recent developments in Britain, I'm sure English docs will also appear.

ogurechny··on A story about bypassing air Canada's in-flight network restrictions
The exaltation displayed in this discussion thread is something everyone should ponder about. Some stupidity specific to certain era and place on Earth, just another tumour of uncontrolled bureaucracy which always grows, is discussed as some eternal property of God-given Universe.

Hijacked plane is a popular media spectacle with lots of ties to other images and scenes. Millions are ready to discuss it, or listen to the thrilling stories. “This is important for security!” is a shazam in that context. At the same time, much closer and routine dangers directly affecting many people (power plants, refineries, railroads and so on) are kept in check by underpaid workers who can't even make companies fix sensors or replace something until it is rusted through. Effectively, “this is not important for anything”, nor public is interested in TV shows about working pipeline that is not getting blown up. Those who want money and power naturally stick to impressions that work for the crowd they are given.

Propaganda is most successful when people do the required thing on their own, agree that it's absolutely impossible to evade, and even encourage each other. Something in this day and age makes people themselves adore certain forms of propaganda, and even demand to be told specific lies. Among other things, images of stupid social machines crushing someone (“they'll put you on the list”, etc.) seem to weirdly stimulate the crowd.

Even in so-called globalised world there are examples that crack the habituation. In country A, any big gathering of people needs to be formally approved, supplied with hordes of policemen (thankfully, not tanks), fences (thankfully, not barbed wire), entrance searches (thankfully, without stripping). When you ask anyone about that, they promptly respond with “What if terrorists/enemies decide to attack the crowd?” or “What if they start to riot?” (notice that “they”), etc. Even most obvious security theatre acts are automatically accepted with promotion to “psychological stuff that helps to detect those people in the crowd”. In country B, no less “civilised”, the same event is handled by some private company that is mostly worried about portable toilets or electric generators, and people come freely to the venue if they like it (just buy the ticket).

The odds of something wrong happening are roughly the same, but people reason about themselves and those around them very differently. That mental picture of the world shapes the thing that happens, not the alleged expert opinions or calculations.

ogurechny··on A story about bypassing air Canada's in-flight network restrictions
Many years ago, some dial-up providers in my city offered free public logins to use their websites (for scratch card activation, account renewal, user guides, and so on). Some companies also paid ISPs to have their sites and services accessible in similar fashion for promotional reasons.

At a certain provider, all those free logins used the same firewall configuration to only allow traffic to those free services and ISP site, probably for simplicity, so all of them were accessible with any promotional login. Most of them were not useful (to me), but different agreements with ISP resulted in different call time limit until hang-up, 10-15 minutes instead of 3-5.

However, the main treasure was the addition of external page translation service as a feature on some big site. Back then, it was strictly static and server-side, URL in request gave you its HTML source with translated text strings and absolute paths to external resources, so in order for translation to work, users needed to be able to access that third party server, too. Obviously, if you gave it any other URL, the server would also grab it to translate (and choosing least similar language in parameters would leave most of the page text intact).

You can imagine that having a browser supporting tabs and switching media off was very handy for loading as many free web pages in text only form as those dial-up sessions allowed.

Obviously, WWW-to-email services for people who only paid for mail server access had existed even before that.

ogurechny··on A story about bypassing air Canada's in-flight network restrictions
Yes, you need to test the exact protocol you want to use. This means tcping/curl, TLS with proper certificates and SNI domains, etc.

However, just as you make sure that the power supply actually supplies power before dismantling something that refuses to work down to the last washer, repairing network problems should start with the basics. Simple test that does not work, or shows something nonsensical, is a great hint that you forgot something, or should start digging elsewhere.

ogurechny··on A story about bypassing air Canada's in-flight network restrictions
Limiting availability of third party services based on local service provider fee can only be done 100% reliably on a service side through an agreement with that provider, i.e. WhatsApp needs to disable certain functions to users coming from certain dedicated links or IP ranges, or even based on live user status metadata. There's an obvious size mismatch, and lack of incentive to implement compartmentalisation only needed for some other company. It also creates enormous shared responsibility and potential circular finger pointing clown shows, all for relatively tiny number of affected paying users.

Therefore, it is either done with least amount of work that is “good enough”, and can be done on a cheapest router (rate limit to the absolute minimum, ban connections to ports 80 and 443, maybe cut the traffic to most stable IP ranges of biggest services, and regular person is going to state that “nothing else works”), or trough very extensive commercial DPI with lots of guessing and ad-hoc rules (if this feature is important for the income, and many will try to game the system). So it's either going to be as simple as in this example, or you'll compete with the global army of detection rule authors.

Though I do like the wink-wink, nudge-nudge choice of proxy software.

ogurechny··on Ask HN: How were graphics card drivers programmed back in the 90s?
IBM never had plans for PCs to be graphically impressive (unlike other gaming-oriented microcomputers which had hardware sprites, buffer scrolling, and various special modes), so conceptually its video cards were pretty simple: you change values in video memory, and letters or pixels on screen change accordingly. The rest was on you. Initial setup could be complex (or hidden behind Video BIOS calls to specific firmware), along with memory layout (for various reasons, including production costs), but the thing was basically just an output buffer.

There were some accelerators providing mind-blowing functions like drawing a line on screen given its start and end coordinates in hardware, or filling a rectangle with a given colour in hardware. If you used professional CAD programs where taking drawing routines away from CPU meant going from 1-2 fps to “tolerable” object movement, there was a point in paying significant sum of money for such niche device. Later, Windows strongly suggested to graphic card makers to implements most often used window drawing primitives in hardware, and offer them to the system via standard driver interface. That also was of little use to most games.

Non-standard modes and hacks to manipulate output settings to make screen scroll without redrawing the whole buffer (which was too slow), and other tricks, like changing mode parameters precisely at the moment some specific part of the image was being sent to the monitor, were sometimes possible, but they don't apply here. Doom engine games render the upper world window on CPU frame by frame, writing resulting pixels to the video memory (status bar can be partially updated, or just ignored for our case). So it's a simple stream of writes, and the difference is in how fast they are processed.

What could be different?

— Memory subsystem and address mapping. Not sure about the details, but some hardware settings could possibly tell the motherboard chipset to ignore the caching/order/coherency, and instantly return with success from any write while it was in flight. That would mean that any program that also needed to read from video memory could get incorrect or corrupted results sometimes. (Though I contradict myself here: spectres and screen wipe effect in Doom needed to read from the screen buffer.)

— System bus type, width, and rate. Smaller delays means more frames per second (if images can be calculated fast enough).

— Video memory type, rate, and timings, video chip speed and architecture, internal bus width, presence of caching buffers, and so on. Most important differences, and there are benchmarks of VGA cards in contemporary magazines and on modern retro forums.

However, the video card itself couldn't make your CPU work with twice the performance, it only could limit the amount of data that went to screen. I suspect that either the card was not very compatible, and traded simplicity and performance in certain graphical modes for bugs and slowdowns in others, or the numbers you saw were actually incorrect. For example, if video card forced 60 Hz refresh rate in canonically 70/75/85/etc Hz mode, program could start calculating nonsensical delays, insert rendering cycles that did nothing, and show crazy stats.

ogurechny··on Doom crash after 2.5 years of real-world runtime confirmed on real hardware
No, that's just a reminder that you had a choice, and chose empty talk about “ecosystems” over ability to control what you can see on “your” screen. You've stepped on a rake once, you got some experience, why repeat it over and over again?
ogurechny··on Doom crash after 2.5 years of real-world runtime confirmed on real hardware
The error states that the window can't be created. It might be the problem with parameters to the window creation function (that should not depend on game state), or maybe the system is out of memory. Resources allocated in memory are never cleaned up because cleanup time overflows?

Doom4CE (this port) was based on WinDoom, which only creates the program window once at startup, then switches the graphical mode, and proceeds to draw on screen independently, processing the keyboard and mouse input messages. I'm not sure, but maybe Windows CE memory management forced the programmer to drop everything and start from scratch at the load of each level? Then why do we see the old window?

There are various 32 bit integer counters in Doom code. I find it quite strange that the author neither names the specific one, nor what it does, nor tries to debug what happens by simply initialising it with some big value.

Moreover, 2^32 divided by 60 frames per second, then by 60 seconds, 60 minutes, 24 hours, 30 days, and 12 months gives us a little less than 2.5 years. However, Doom gameplay tick (or “tic”), on which everything else is based, famously happens only 35 times a second, and is detached from frame rendering rate on both systems that are too slow (many computers at the time of release), or too fast (most systems that appeared afterwards). 2^32 divided by 35, 60 seconds, etc. gives us about 4 years until overflow.

Would be hilarious if it really is such an easy mistake.

ogurechny··on The demo scene is dying, but that's alright
Extending the user shell was always for the benefit of Microsoft first, and for the rest of us second. Companies who tried to add serious advanced functionality through that found out that they were not really welcome, even though in theory everything was object-oriented, loosely coupled, language-agnostic, yada yada. It probably was mainly a solution to decrease the amount of territory wars over code inside Microsoft, and let teams work independently without demanding synchronous fixes.

We shouldn't forget that half of the documentation on how everything should work was only released after anti-trust investigation and pressure from courts.

https://www.geoffchappell.com/studies/windows/shell/index.ht...

By that time, Windows had already switched to shiny fresh undocumented technologies.

You should remember that a lot of software around the Millennium simply re-implemented latest fashion trends (Office controls, XP styles, etc.) on their own in not quite exact ways, not just because programmers back then wore skins, and ate raw meat, and feared nothing, and because such third party toolkits were available commercially, but also because official interfaces to do the same were not offered until later releases (or sometimes ever). I vaguely recall discussions of teams within Microsoft sometimes doing the same, resulting in Office controls sharing no code with common controls used by the rest of the system which look exactly the same.

The irony is that web browsers, being the most popular kind of application, and interfaces built on top of their technology simply ignore the native interface toolkits, and do everything independently, which is even more extreme than some old school custom paint handlers. A lot of work has been spent on re-implementing native look and behaviour there, multiple times.

One of the examples of actively supported applications interfacing with shell object hierarchy without using system dialogs I can name is Tixati, which needs to have file picker(s) at hand inside its own dialogs. It's not open source, but it has been using GTK, custom controls, and probably some sauce on top. Given the user complains about its performance or missing items, and regular appearance in change log over the years, I'd say it's a wrestling game for the author. At the moment the tree is lazily populated at the first appearance, which is fine, but not unnoticeable.

It is a bit hilarious that showing a list of file names in some directory is a trivial example on using system-provided iterators for the novice programmers, but adding icons matching those that Explorer shows (handling links and other special files, special directories, non-filesystem-based locations which still have files user might want to choose in them, etc) to that list suddenly becomes a nightmare.

ogurechny··on How did Facebook intercept competitor's encrypted mobile app traffic? (2024)
There was a guy, Snowden or something, who got some first party reports. They stated that no magical quantum crypto breaking happened at global scale, keys were simply stolen, or backdoors were used to access clear text on sender or receiver.

Ephemeral keys (not stored for possible future leakage) quickly became the default, and assumptions about global data gathering changed. Then, all of a sudden, “free” service appears that makes all of TLS improvements, bug and small, practical and theoretical, useless. What a coincidence!

For some reason, you assume that people who have been stealing everything they can (because doing crime for the Big Guy is not a crime) consider this specific company untouchable. This is impossible. Every country in the world wants to have its spying capacity at maximum (following the shameless example), and to flex muscles at American services doing the same. The reason we only read about clashes over movie piracy and other petty stuff is because more serious matters have been discussed and dealt with.

Facebook offers “free” hosting and other services for individuals (social networks are poor walled versions of the Web). Cloudflare offers “free” CDN and other services for website owners. Actual business model is the same, lies are still lies.

ogurechny··on Debian switches to 64-bit time for everything
This sounds like a job for named pipes. You get the temporary file, but nothing is actually written to disk. Or maybe unnamed pipes, if bash command redirection is suitable for creating the list of options.

Looking back, it's unfortunate that Unix authors offered piping of input and output streams, but did not extend that to arbitrary number of streams, making process arguments just a list of streams (with some shorthand form for constants to type in command line, and universal grammar). We could have been used to programs that react to multiple inputs or produce multiple outputs.

It is obvious that it made sense in the '70s to just copy the call string to some free chunk of memory in the system record for the starting process, and let it parse those bytes in any way it wants, but, as a result, we can't just switch from list of arguments to arbitrary stream without rewriting the program. In that sense, argument strings are themselves a workaround, a quick hack which gave birth to ad-hoc serialisation rules, multi-level escaping chains, lines that are “too long” for this random system or for that random system, etc.

ogurechny··on Literalism plaguing today’s movies
> almost always

Well, you've just revealed which kind of “content” you watch (by revealing which kind you don't). A lot of well known films were shot on full frame, and never had any other variant.

Frankly, seeing them in theatres “as intended” would require inventing a time machine, or not missing some special film screening event, as they were made quite some time ago.

Also, back then, when they still had to make film prints for distribution, and had to deal with wide screen theatres and regular screen theatres (you couldn't just ignore the other half, and lose a potentially significant share of income), both filming and editing took that into account. Shots in one aspect ratio were usually composed to look god when cut to the other, and professional cameramen (working with both types) constantly kept that in mind anyway. Same for possible TV screening versions later.

Now compare that to the modern nameless editors working for giant corporations which pretend that it's an impossible task that has never been done, and either crop automatically, or let the “smart computer” toss a coin to shift responsibility.

Edit: By “theatres” I've meant types of film projectors installed in their halls. Some had multiple, switchable lenses, etc., some had only one. Keep in mind that to show a multi-reel movie without pauses you need at least two projectors (or a special feeding system for spliced together film if the number of screenings is worth the work), and a third one is often added for redundancy and required maintenance work, so there's a lot of investment to make already.

ogurechny··on The new literalism plaguing today’s movies
You don't really need a critic to see that it has spread everywhere. People not just adore, they demand to be given a three paragraph summary and a moral of the story for everything, no matter which era, which genre, or how much magnificent embroidery was presented to them. So-called Web 2.0 review platforms have succumbed under the weight of people complaining about not being given clear instructions by the authors, and people trying to invent those clear instructions on “understanding” the work themselves. It seems that the simple truth that the whole point of work of art is how it starts processes in your very own head is a secret which is well hidden from those who expect that others can do thinking in their stead, and just state the “results”.

Of course, from that perspective, modern society hasn't changed much for centuries, they just had different excuses back in the days. However, it doesn't happen by itself; the construct of the presumed movie-goer (or reader, or listener) affects the public. When author has high expectations of a recipient, many of them can find themselves growing to that level, when the lowest common denominator is targeted, everyone's average drops. Writing by committee and directing by committee inevitably results in watching by committee, when no one cares because there is enough ways to find out which opinion you “should” have about the movie, and the only thing left is to check the box for visiting the cinema (the obvious democratisation of an old cliche of rich nobles being bored at the opera).

A lot of auxiliary apologetic nonsense is written about “pop culture” today — its “consumers” need to be told how to look at themselves. A vaccine against that would be finding something so bright and delicate that it can't be stuffed into one of predefined expected reactions. A lot of much stronger criticism have already been written, too. One might point to such “hits” as Vladimir Nabokov's “Strong Opinions” and lectures on literature, although the suit of renowned writer and lecturer was perhaps a bit too bronzy, while in reviews read by a small circle of Russian-speaking emigrants in Europe (collected in “Think, Write, Speak...”) or in satirical passages in fictional works he was a bit more open.

ogurechny··on A technical look at Iran's internet shutdowns
It certainly looks like it is compiled by a neural net or human that has no idea how people they talk about actually live. Places of actual discussion of censorship circumvention tools are full of much different talk on how to fool the external or internal DPI servers, on tunnelling through white-listed protocols, and so on.

Also, those who can be executed like that have already realised that “safe” way of being a “good citizen” does not exist, it's a phantom for people who are — at the moment — rich, happy and walled from the rest (either physically or in their minds). They probably don't need to be told not to trust someone who is offering to solve all their problems.

ogurechny··on A technical look at Iran's internet shutdowns
Even 20 years ago the so-called “geeks” were reacting to those news with “We can fix that!”, and indeed were making the tools. They were often primitive, but modern ones are based on those developments and collected knowledge.

Today's crowd is full of lickspittles who are constantly searching for someone or something to kneel before. Money, power, or at least flavour-of-the-month fame. A lot of work was put into spreading those ideals, and not teaching anything “outdated”, “dissenting” or “controversial”.

So you're not just waving the white flag even before anyone intimidates you personally, you're actively working for that cause, willingly or unwillingly.

Something tells me that you were not using 56 bit encryption when posting. In a different world, you would, and lament how pathetic and insecure it is to let someone calling themselves “government” have access to everything, but how understandable it is in presence of communists, terrorists, degenerates who have rejected the democratic values and thus stopped being humans, etc.

Dystopias and the dystopian outlook actually helps any kind of high profile swindler a lot. People treat them as the portrayal of “how the world really works”, and expect it to be normal when someone does it, or just hints at such option to scare the public, while they were intended to portray how stupid people can be if they cease to think. Please choose some higher standards.

ogurechny··on Overtourism in Japan, and how it hurts small businesses
Let's set the mood with a famous story.

https://standardebooks.org/ebooks/ivan-bunin/short-fiction/s...

← PreviousPage 2 of 21Next →