HNHacker News
TopNewBestAskShowJobs

ilitirit

2,562 karma · joined March 3, 2008

submissionscomments
ilitirit··on How much can you get out of a $4 VPS?
Also make sure you know how the pricing works. There's a specific configuration that enables 4 ARM CPUs, 24GB RAM, and 200GB disk space on the free tier.
ilitirit··on How to beat lag when developing a multiplayer RTS game
Rollback netcode ("RBN") is a big thing in Fighting Games. One of the big problems though is that a large part of the community don't fully appreciate some of the technical challenges developers have to deal with when implementing RBN. They think that because GGPO (a RBN framework) can "easily" be used on old arcade/console games, it shouldn't be an issue to implement it in newer titles.

Well, that's not entirely true for a number of reasons. For example, if you look at a game like Street Fighter II, there are around 4 unique frames of animation for throwing a fireball. So any rollback that occurs there will hardly be noticeable. In newer games though animation frames are interpolated in different ways so you might have 10x more frames of "unique" animation. This makes rollbacks much more noticeable and jarring, especially in games with 3d models. Then you have the much trickier issue of audio rollbacks. This is even noticeable in games like SFIII:3rd Strike, where you might have the "KO!" audio effect play right as a rollback occurs, leading one player to think the round has ended before they realise a rollback occurred. For some extremely bad examples, search for some videos on Street Fighter x Tekken's, terrible RBN implementation. One of the ways developers get around these challenges is to add artificial delay to things like sound effects, adding more startup frames to moves, and adding massive amounts of hit-stun AKA "impact freeze" making games feel less snappy. For some games these things are not such an issue because traditionally these games rely on "slower" inputs and higher impact freeze because of the game's system mechanics, but in other titles the games just feel worse to play "offline" than their predecessors. For the most part, these are just "veteran player" issues. Newer players are not likely to notice them.

In any case, the bottom line is that RBN is not a panacea to online lag. Your game needs to be designed from the ground up to cater for it, unless you're willing to make certain compromises in online play.

ilitirit··on The James Webb Space Telescope is finding too many early galaxies
I've been out of the loop for a while. Can MOND satisfactorily explain gravitational lensing?
ilitirit··on Modules, not microservices
There are two things that people often misunderstand about Microservices - there is no single definition about what they actually are, and -- arguably more importantly -- there exists no single rationale about why you would want to move to Microservice architecture in the first place.

Take for example Gartner's definition:

> A microservice is a service-oriented application component that is tightly scoped, strongly encapsulated, loosely coupled, independently deployable and independently scalable.

That's not too controversial. But... as a team why and when would you want to implement something like this? Again, let's ask Gartner. Here are excerpts from "Should your Team be using Microservice Architectures?":

> In fact, if you aren’t trying to implement a continuous delivery practice, you are better off using a more coarse-grained architectural model — what Gartner calls “Mesh App and Service Architecture” and “miniservices.”

> If your software engineering team has already adopted miniservices and agile DevOps and continuous delivery practices, but you still aren’t able to achieve your software engineering cadence goals, then it may be time to adopt a microservices architecture.

For Gartner, the strength of Microservice Architecture lies in delivery cadence (and it shouldn't even be the first thing you look at to achieve this). For another institution it could be something else. My point is that when people talk about things like Microservices they are often at cross-purposes.

ilitirit··on Make your database tables smaller
There's a difference between cardinality when it comes to databases (essentially cardinality in modelling vs cardinality in data).

Cardinality in modeling (relationship cardinality) refers to your relationship type i.e. 1:1, 1:M, M:M

Cardinality w.r.t. data refers to how many unique values a particular column can have. e.g. a Primary Key has high cardinality because every row has a unique value. A boolean flag has low cardinality because it only has two values.

TBH, I'm not 100% sure which one the OP is talking about here because you need to factor in number of joins and indexes etc, but from the perspective on relationship cardinality, you can think of some of the common differences in modelling for OLTP ("real time" databases) and OLAP (data warehouse etc).

The former would generally have smaller tables and more joins, while the latter would usually have relatively massive tables which inherently could imply fewer joins, but this is often not the case. It just depends on your system and use-case.

ilitirit··on Make your database tables smaller
There are several reasons to use tables with a 1:1 relationships e.g. As described in my comment in this thread - avoiding table contention, maintainability and scalability.
ilitirit··on Make your database tables smaller
I haven't read the article (yet), but this is a problem that I've had to deal with several times now recently. The most recent causing me to work 12+ hour days over the holidays.

In this case, there's a table that an ETL job loads data into several times a day. The problem is the original dev(s) thought it would be a good idea to add status columns to this table that the application can write to when it has finished processing the data ("InProgress", "Finalising", "Complete" etc). What does this mean now? If the load process takes longer than a minute or so, user interaction is blocked and ultimately deadlocked. This is extremely poor database (and system) design. The application never needs to update the "loaded" columns. So all modifiable columns should be moved to a separate table and updates either need to be serialised or written at the appropriate isolation levels. Now try to get any of these changes through during the Xmas period...

This is somewhat related to a refactor of another system I performed last year. The system had one Auditing microservice that wrote to a massive table with some keys, identifiers and metadata. Ignoring the fact they needed to write an auditing microservice to begin with, the problem was every time a new part of the system needed auditing the table needed to be modified. And every time you did a query, 70% of the columns were null. Again, this is very poor design. I deleted most of the columns except the identifiers and keys, separated the metadata into their own tables with a foreign key to the Audit table, and left-joined everything. Same result, but far less of a hassle in terms of maintenance and scalability.

[EDIT] I should probably end with this: Make your tables as big or small as they need to be considering your use cases.

ilitirit··on PRQL: a simple, powerful, pipelined SQL replacement
You're right that it's a "dev/dba problem", but the reason for not using `select !<column>` is exactly the same as not using `select *`. If you specify exactly what you want, there's less of a chance of your ORM-based app breaking because it received an extra or too few columns. I'm sure most people who work with SQL DBs have been bitten this before.

Also, while it could also be useful, over the years I've started moving away from things like using `!` to negate things. It makes it slightly harder to read and it ruins the symmetry of my code. And lord knows SQL doesn't need any more of that. It's probably the only language I use often where I have to place my commas at the start of the line; where I need to add a first filter as `1 = 1` etc just to make it easier to comment out things quickly.

What I personally want most is the ability to move the FROM clause to the top (this is a no-brainer) and better aliasing rules. The alias I used in my SELECT should be accessible everywhere in the statement.

ilitirit··on The Death of Quanta Magazine
Sure, and I don't have any issue with that.

But this blog post literally says "The death of Quanta Magazine", and in the same breath talks about "journalistic standards".

ilitirit··on The Death of Quanta Magazine
> It falls so far below any journalistic standard that the magazine is dead to me.

I'll be honest. I found it very hard to read beyond this line. I powered through though.

Here's the tldr: It's a rant about details in one specific article.

ilitirit··on UML: My Part in Its Downfall
I spent a good couple of years working with UML and related tech and products (especially from the Rational suite). Besides the fact that I hated it, a big personal gripe I had with it was that noone looked at the UML after the initial review. Ever. We generated the diagrams to fulfill some outdated legal requirement (Sarbanes-Oxley, I think?) for getting listed on a particular stock exchange, but other than that they literally served 0 purpose.

It was a massive waste of time and energy.

Having said that, the sequence diagrams were quite useful.

ilitirit··on Java’s Cultural Problem
Why would it seem that way?

Why can't I say:

"I like how C# implements XYZ"

instead of

"I don't like the C# development environment, but I like how C# implements XYZ"?

What value is there in qualifying every aspect of a discussion given that you cannot fully dissociate <A> from <B>?

ilitirit··on Java’s Cultural Problem
Reading these comments, it's strange to see that the "Java" paradigm/context issue still exists after all these years.

I have never had significant problems with Java-the-language. But, like with many other programming languages out there, you can't really dissociate the language from the environment and everything that goes with it. The paradigms, VMs, IDEs, patterns and practices etc etc.

And for the record it's not just Java (it just seems to be more pronounced in the Java-development ecosystem). For every person who waxes lyrical about the joy of working with C# (for example), there are 3 more that will tell you anecdotes about "assembly hell". Or how Visual Studio is slow and a massive memory hog. Or that there is no proper Forms support on XYZ-os.

Those are all fair points, but more often than not, they have little-to-nothing to do with current discussion. IMO, I think it's usually far more productive to try to understand the discussion in context than to veer off into irrelevant semantic issues or tangential anecdotes.

ilitirit··on What's SAP, and why's it worth $163B? (2020)
> it's getting better.

This should be the SAP tagline. I swear I've heard this since I started working with SAP in maybe 2009(?) as well - I had a brief stint as an ABAP developer.

ilitirit··on Ask HN: How do you get better at debugging/finding a solution?
This is what my Mathematics Lecturer told us years ago when we had trouble understanding why some approaches worked for some problems, but not others.

"You need a few more years of study before you can fully understand. But! You have a 600 page textbook. Do every exercise in that book. When you can do that without assistance, get another 600 page textbook and repeat."

He was trying to get us to build an intuition for certain class problem solving, while at the same time saying "Shut up and calculate".

I find that problem-solving in the programming space is the same. Just keep doing things. You'll develop an intuition for it eventually.

ilitirit··on Show HN: Wavvy – web-based audio editor (Audacity port)
> Audacity seemed like the obvious choice

Tangential question, but why did Audacity seem like the obvious choice? Not a knock on the product - I use it often - but I'm just curious about why it was chosen.

ilitirit··on The downfall of smart TVs: From promises of seamless viewing to ad tool
I don't have a problem with ads in general - I have a problem with how they are currently presenting ads. It was never this bad in the past, and I honestly I'm not sure I want to pay money to a company who uses these predatory techniques.

40 minute ads? Who even does this? The only way someone would even consider watching this instead of the content they actually clicked on would be if someone let it autoplay. This is the kind of thing my 5 year old nephews would do.

Absolutely disgusting predatory behaviour...

ilitirit··on The downfall of smart TVs: From promises of seamless viewing to ad tool
YouTube's advertising strategy is pushing me to get rid of my SmartTV, or at least find a 3rd Party solution to completely block the ads. I was completely fine with one or two 6 second ads randomly playing before a video, or during a lengthy video. Then they added 14 second ads, which was very annoying, but bearable since it's about the same length as the two short ads.

But now they're advertising even if I simply open the app. Furthermore, they're "hiding" 14 second ads behind the shorter 6 seconds. I've even seen 41 minute advertising content. I'm guess they're banking on users leaving the app on "autoplay" to dupe advertisers into thinking that people actually consume this trash.

These days I just cancel every ad out of principle until the video plays. This takes on average 6-7 attempts. But now more often than not I just quit the app completely. So they are depriving their own content creators of views. And then they have the gall to present surveys asking what my advertising experience has been like...

ilitirit··on Edible insects role in transmission of parasitic diseases to humans (2019)
What do the latest studies of farm animals indicate?
ilitirit··on Teens are rewriting what is possible in the world of competitive Tetris
Not sure if it's mentioned in the article, but this documentary is worth watching if you haven't seen it. It pre-dates some of the newer techniques people are using.

http://watch.ecstasyoforder.com/

ilitirit··on DRY is an over-rated programming principle?
People should reconsider writing articles like these. It's just a list of (3!) criticisms. You can still have your click-baity title, but why not write about when and how to use XYZ principle instead?
ilitirit··on In defence of garlic in a jar
I've always thought that the reason to avoid garlic-in-a-jar-of-oil was because of botulism:

https://ask.usda.gov/s/article/Can-you-get-botulism-from-gar...

ilitirit··on KDE KTrip – helps you navigate in public transport
What is the rationale behind having apps built on/with technologies like KDE, Gnome etc. prefix their names with K or G etc? Why KTrip instead of Trip? Is it just a historical artifact of development, or is there another reason?
ilitirit··on Lectures on Faster-Than-Light Travel and Time Travel
If I understand correctly, General Relativity doesn't consider this in the same conceptual terms. "Gravity" doesn't affect "time" - mass/energy curves space-time (simplified for the sake of brevity).
ilitirit··on What the Omicron wave is revealing about human immunity
No, I said you don't care that much about bigger things in comparison. Think about it - you cared enough about this "small thing" to make a throwaway account. When last did you do that about anything else?

In any case, I'm not here to preach. I would just like people to have some honesty and perspective in their opinions and arguments.

You're willing to risk the lives of the elderly and people with people with a less-effective immune response if you think the lives of the general population would be "better off"? Just say so. If people feel uncomfortable doing this realise that part of that discomfort is called "cognitive dissonance" (and realise that decision-makers have to do the same thing). Have a serious conversation with yourself before you decide that you need to create anonymous accounts on the internet to air your views.

ilitirit··on What the Omicron wave is revealing about human immunity
> That's why I'm upset, anyway, because my life was turned completely upside down for something that's actually quite minor in the grand scheme of things, whilst we're leaving the big stuff alone.

I'm going to be frank - I don't think you care about the bigger stuff that much in comparison. You just care that your life was affected. Just like you don't care that much that some random civilians in another country were killed because of <insert injustice>.

Am I wrong?

EDIT: I'm not saying I'm any different. But I have experienced the effects of COVID19, so to me it's not a "small" thing. I'm still living with the effects every day.

ilitirit··on What the Omicron wave is revealing about human immunity
I'm so puzzled by some of the comments here. Is it simply because of how the general public was inadequately educated about how vaccines work? Well, why are you only upset by this now? Because of how much your life has been affected? If not, why not be as vocal about other things that affect the general population much more in the grander scheme of things. e.g. the general public's misunderstanding of simple statistics, or diet, or climate change etc.

I've been vaccinated (double-shot), after I got COVID 1 year ago. I've got Omicron afterwards - a mild cold, but noticeable. I've lost 3 family members to Covid19. My sister still hasn't fully recovered her sense of smell/taste after a year. The hospitals in my country were legitimately overrun for several months (I'm from South Africa). The infection rate was under-reported in some areas due to corruption but the excess deaths are undeniable.

Yes, COVID19 can kill. Yes, there can be some long lasting effects. Yes, some things are over and under-stated, and some governments have under/over-reacted (to the point of being draconian). Yes, many people are asymptomatic and can carry on living as if they were never infected. Yes, some of these asymptomatic people can infect others who don't have the same type of immune response. Yes, vaccines are effective against the variants they were designed for, and less effective against the mutated variants (how is this news?). Yes, even the less effective vaccines help against serious symptoms, death, and the overwhelming of health services. Yes, masks help against Covid and other airborne disease. Yes, washing hands help against bacteria and other some types of viral infection including COVID19.

What am I missing? What is it that people don't understand about the situation? Why are people so upset about this, but not upset about things that are arguably more detrimental to the livelihood of the entire human race?

ilitirit··on Event Sourcing Is Hard (2019)
One thing that I've learned from Event Sourcing is that it makes bad engineering teams and processes worse.
ilitirit··on Meow Hash (2018)
I can vouch for xxHash (it does what it says on the can), but I'm really curious to hear from who have experience with meow hash.
ilitirit··on Event Sourcing (2005)
The biggest problem I've encountered in places that adopt Event Sourcing is using it as a hammer. Not every piece of information needs to be event sourced, and neither is it a good fit for every use case.
← PreviousPage 4 of 20Next →