HNHacker News
TopNewBestAskShowJobs

adamzochowski

651 karma · joined November 19, 2009

submissionscomments
adamzochowski··on NaN Is Weird
Makes perfect sense .

NaN is a special type indicating one can't reason about it normal way.

It is an unknown or value that can't be represented.

When comparing, think of it like comparing two bags of unknown amount of apples.

One bag has NaN count of apples

Other bag has NaN count of apples

Do the two bags have equal number of apples?

I wish all languages used nulls the way SQL does.

adamzochowski··on I Analyzed Every Nootropic Study on PubMed
Not a referral issue. Doing ctrl-click or middle-click or open-in-a-new-tab all are broken too.

Most likely it is just a typical broken spa.

Most web apps, are shut for the websites. They ignore and badly processes the url because things like linking to content, ctrl-click, bookmarks, sharing with friends are afterthought and not on forefront of developers mind.

adamzochowski··on How often is the query plan optimal?
This depends on the join type.

    select ...
    from table1 
        left join mytable2 on ... 
    where ..
If you move contents of where clause to the join/on clause, you will change meaning of the query.

If someone has a complex query or complex performance, they could do either subselects

    select ...
    from ( select ... from table1 where ... ) as table1_filtered
        inner join mytable2 on ... 

or CTEs

    with table1_filtered as ( select ... from table1 where ... ) 
    select ...
    from table1_filtered
        inner join mytable2 on ...
adamzochowski··on Windows 7 boots slower if you set a solid background color
BMP supports compression, but its basic, RLE style, so only line art compresses well.
adamzochowski··on Rewriting my website in plain HTML and CSS
Why not use server side includes? Most web servers support it, and it dates back to one of the early features of webservers.

    <!--# set var="pagetitle" value="Main page" -->
    <!--# include file="00__header.html" -->
    
    ... main content here
    
    <!--# include file="00__footer.html" -->
adamzochowski··on SQL Tips and Tricks
Can you expand on this? How is having

    WHERE 1=1
    AND ...[usual-where-clause]...
A performance and security compared to doing

    WHERE ...[usual-where-clause]...
adamzochowski··on Ask HN: Share your FFmpeg settings for video hosting
Last 3 years I traveled extensively and had limited and flakey bandwidth.

You should have a low bandwidth setting that also uses new codecs.

Like 64kbit stereo opus is to my ears almost imperceptible to CD audio. I think listening tests by professionals recommend using between 64kbit to 96kbit for perfect audio.

Anything beyond is a waste unless we are talking about more than stereo.

Also if you want, you can use mpeg dash to stream video. Here you encode video into small series of chunks/files. When player can't handle high bandwidth, it can switch to lower bandwidth automatically, and vice versa. This is what YouTube and any professional places do. This will also help prevent users from easily downloading complete video. The trick is that you will need to ensure all videos are split on same key frame, so either use two pass encoding, or define that every ?3? seconds exactly is a new video file.

https://www.cloudflare.com/en-ca/learning/video/what-is-mpeg...

adamzochowski··on I Add 3-25 Seconds of Latency to Every Page I Visit (2020)
Why not change font zoom for old.reddit.com domain?

In chrome and firefox: Settings accessibility text size.

adamzochowski··on Helldivers 2 Removed from Purchase on Steam in over 150 Countries
If it were on GOG, there would be no DRM or third party accounts required. With potential exception for online play. But most GOG games are single player offline games. Even online games would be more of the type where you run local server and connect with you friends by sharing IP:port combo.
adamzochowski··on TSAC: Low Bitrate Audio Compression
The page works, earlier when I tried I got a login page. This page is good.

Also awesome to see comparison to EnCodec , which I think is one of the better ones available : https://ai.honu.io/papers/encodec/samples.html

Also, can you confirm if Opus decode is classical or with Lace or NoLace post processing filters that are available in Opus 1.5?

adamzochowski··on TSAC: Low Bitrate Audio Compression
Since Ballard's codec is "AI" based, can you add google's lyrav2 ( https://github.com/google/lyra ) and Facebook's/meta EnCodec ( https://github.com/facebookresearch/encodec ).

Also I don't seem to be able to access your page, so there might be error.

Finally, when doing opus comparison it's good now to denote if it is using Lace or NoLace decoder post processing filters that became available in opus 1.5 (note, this feature need to be enabled at compile time, and defying decode a new API call needs to be made to force higher complexity decoder) . See https://opus-codec.org/demo/opus-1.5/

adamzochowski··on Jpegli: A new JPEG coding library
Please, keep lossy compression. Web is unusable already with websites too big as it is.

What should happen: websites/applications shouldn't recompress images if they already deliver good pixel bitrate. Websites/applicates shouldn't recompress images just to add own watermarks.

adamzochowski··on Stop Killing Games
> The Crew does not seem like an example of this since it is a multplayer game.

One can play The Crew single player, it has a whole campaign. There have been tons of games that are single player with multiplayer elements. This is same as GTA5 or The Division or any other game which is single player and multiplayer

> That requires that it was ever a single binary in the first place

Or release all binaries / source code. The whole docker swarm config, or the terraform or whatever was used to run the stuff. Not sure if server side is two binaries out of a sudden it is impossible.

> Sure, that's an alternative but it still takes time for them to do it.

Why? release all the docs+source code as you have them, and call it a day.

> There is something to be said about as a consumer understanding that an "online game" will eventually shut down. This should be well understood.

Why? I had played tons of online games that were not shut down. Dooms, quakes, warsaw, etc. This is a relatively new thing that companies are both, not allowing single player run without a server, and shutting down the server part. I think in the past we had similar thing when GameSpy was shutdown, and recently Games For Windows Live which microsoft stopped supporting. However, these are mostly DRM cases with some bypass possible.

I want to add, I suspect Blizzard has complex architecture, but people managed to reverse engineer the server to run custom diablo/starcraft/wow servers. Now blizzard as they have not shutdown their services has been actively fighting these efforts of custom servers. All the ask is that companies that do shutdown their services do the opposite. Help community run the games longer.

In case of The Crew, the shut down was a deliberate push to get people to buy The Crew 2.

adamzochowski··on Ask HN: Should Banks Phish Their Own Customers
I would add

* ability to confirm email validity by logging into my bank and seeing same email in their communication queue with me

My bank sends me emails, and I have no way to confirm that the bank really sent them.

adamzochowski··on Pg_hint_plan: Force PostgreSQL to execute query plans the way you want
Aren't there two arguments for why this is bad?

- db will generate new plans as necessary when row counts and values change. Putting in hints makes the plan rigid likely leading to headaches down the line.

- as new Postgres comes out, it's planner will do a better job. Again forcing specific plan might force the planner into optimization that no longer is optimal.

In my experience developers almost never comeback to a query with hints to double check if hints are really needed.

Famously oracle has query hints that don't do nothing no more, that are ignored, but oracle can't remove them from query language because that would break too many existing queries.

I like Postgres stance that if query planner doesn't do a good job, then dba should first update table/column statistics, and if things are truly bad, submit but to Postgres so the query optimizer can be updated itself.

Saying all that, hints support through an extension to Postgres is a good compromise. Postgres developers don't need to bother with hints, its a third party feature. And dba/users, if they really need hints, now they have them.

adamzochowski··on Short history of all Windows UI frameworks and libraries
The problem is twofold:

App developers want consistent look of their application across various OSes, be it Mac/Win/Linux. This means developing with gtk for linux and winUI for windows is out of the window. Why do app developers want consistent look? because alternatively they would have to create documentation and screenshots for each os separately. And users wouldn't be able to help each other because Mac user would know different interface/look from Linux user.

OS developers, Apple/Microsoft don't have singular look. Microsoft didn't rewrite everything into WinUI settings , and anytime anyone needs to do anything serious they have to go through the win32 settings panels. This lack of OS coherency means that app developers don't feel need to stay consistent with OS, since OS itself is not uniform.

adamzochowski··on React has grown beyond its original promise and it's causing more harm than good
Oh the irony of a text blog bemoaning complexity that won't load without javascript.
adamzochowski··on MobileDiffusion: Rapid text-to-image generation on-device
Not entirely true either. If it thinks it has network but it's flakey, it won't translate offline, it will say there is network error and will give you a button to retry. No button to do offline.

Additionally, in airplane mode it heavily doesn't want to translate, in my use case I have to go to saved translations as otherwise it won't even let me type what I need to translate.

adamzochowski··on I moved my blog from IPFS to a server
That is something I wanted to know, does IPFS guarantee that same two files have same two IPFS URLs / hash links?

Otherwise, someone sharing same data again, because it will be in different IPFS folder won't be actually discoverable as same data.

adamzochowski··on Portable EPUBs
But same font problem exists with PDFs. If font is not embedded into PDF, or rendered into a vector shape that embedded, then PDF will display garbage.
adamzochowski··on The rise and fall of the standard user interface
The question is what drives consistency.

80s 90s and early 2000s it was the OS. All apps running under a specific OS would look similar to each other. Behave same way. File menus looked same. Preferences was in same location.

But somewhere in 2000s this reversed and OS was no longer driver of consistency.

App developers stopped following OS UI guidelines and decided that it's not important for OS to be cohesive. The goal was that app, no matter where it is running, should have consistent look and behavior.

And now we are in application centric world where application dictates UI and there is no OS level consistency.

Additionally Microsoft and Apple did not help the situation by themselves breaking the OS UI paradigms with media players, or in MS case MS Office.

adamzochowski··on Good DevEx increases productivity. Here is the data
I worked for a large corporation. The corporation had a program to hire coop students, both from high school (limited to 4 hrs a day for 5 months), and from university (different universities had different programs, some had 4 month engagements, others than 16 month long ones).

This had positive effect of forcing our internal documentation for developers to be top notch, so that students / new hires were up to speed as fast as possible.

If your corporation has resources to hire co-op students, use this as opportunity to look into what DevEx pieces are missing, what you can improve. This will improve your teams docs/devex and will help your team better interface with other teams within the corporation.

adamzochowski··on CLI tool, written in Rust, to diff directory snapshots
RAR supports both incremental and differential backups.

If you make it solid archive and sort files by extensions and enable max compression with ppm, then these backups will be some of the most efficient possible.

adamzochowski··on Silos are fine, as long as there is an API between them
TM Forum provides a bloated format. It has everything and a kitchen sink. This means that something simple like customer name can be written in multiple places, and different architects will recommend different location. Two different silos within same company won't be able to talk to each other because although they are using same format, they interpret the usage different.

Additionally, this is XML/XSD, different teams will end up using different version of the standard. They won't be able to interface with each other without additional layers of translations. It is not uncommon for one team to need to load multiple versions of the XSDs because different end points use different versions.

adamzochowski··on Ask HN: What is the current driver of tech layoffs?
This is for specific R&D costs, like doing something patentable. Most developers are not doing R&D.

Most developers are fixing bugs, helping sales, keeping systems online, keeping up to date on patches, performing security scans, complying to some internal policies.

adamzochowski··on uBlacklist: Blocks specific sites from appearing in Google search results
Google used to have own extension for chrome called "personal Blocklist", which would allow users to block specific domains from eve appearing in search results. It was great to remove instagram/LinkedIn/quora and various stack overflow clones.

But as all good things, it was killed by google

https://killedby.tech/google/personal-blocklist/

adamzochowski··on Why you can't divide by zero
The author doesn't explain the argument in detail, but he is trying to say:

when you have "x * y = z" you can perform "x = z / y"

ie: "2 * 3 = 6" therefore "2 = 6 / 3"

But it breaks if you try to do division by zero

ie: "2 * 0 = 0" translates into "2 = 0 / 0", we could assume this is good, but if you use any different value for X, you get other nonsensical answers , say "x = 3" ... so "3 * 0 = 0" therefore "3 = 0 / 0"

So as long as you don't divide by zero, the conversion of "x * y = z" into "x = z / y" will work. If "y" is zero, then the conversion breaks down. Hence division by zero is undefined because there is no correct answer.

----

The other argument one could do, not mention in the article, is the "limit of division by zero", which is a fancy way, what is the result if we don't divide by zero but get close to it.

Say we have number 2, and we keep dividing it by a number that gets closer and closer to zero

2 / 1 = 2

2 / 0.5 = 4

2 / 0.25 = 8

2 / 0.125 = 16

2 / 0.0625 = 32

So as our divisor gets closer to zero, our result gets closer to infinity.

But the problem is, what happens if we approach the zero from the other side,

2 / -1 = -2

2 / -0.5 = -4

2 / -0.25 = -8

2 / -0.125 = -16

2 / -0.0625 = -32

So as the divisor gets closer from the 'left side', from the negative side, the result is going to negative infinity.

This means that there is no convergence because dividing left of zero, and right of zero, leads to different result.

This is same as studying limit of lim of x->0 for cot(x) where the result leads to undefined value because limit approaching from left side does not converge to the limit approaching from the right side.

adamzochowski··on HTML hacks that shaped the Internet
Plenty corporates had IE only/first policy. This meant everything intranet had to work on IE. A website developed for chrome was allowed to request chrome frame, but it had to undo itself for any external links when linking to other intranet sites (plenty active-x / silverlight).

I wish there was an option to specify per website domain which browser to use.

adamzochowski··on The Escapist staff resign following termination of editor-in-chief Nick Calandra
Zero Punctuation is youtube reviews of games done in a funny fast way. As if the read text had no pauses, commans, periods. Hence zero punctuation. Some people said it made them think Charlie Booker was making game reviews.
adamzochowski··on The next frontier in IP parasites: codec royalties on content
> The first really good video codec was MPEG-4 H.264. I remember in 2001 my housemate watching a movie on his telly — playing off a CD-R. A whole movie crammed onto a CD, encoded with DivX!

H264 didn't exist in 2001. At the time DivX was really a hacked Microsofts codec to allow encodes outside of .ASF files. This MS codec was a decent codec using standard Mpeg4 part 2 Simple Profile.

XviD was opensource effort to ditch ms hacked codec, and eventually it went to support other profiles, like ASP (advanced simple profile).

Much later some enterprising people figured that they could ride on the DivX name popularity. So they wrote own mpeg4 part2 codec and called themselves DivX LLC. Even much later this company also released h264 and h265 codecs. Hence maybe the confusion by the article author on what was used in 2001.

Page 1 of 8Next →