towerful

joined 2 years ago
[–] towerful@programming.dev 45 points 4 months ago (19 children)

This... Except for contactless payment.
I used graphene for a month. It was lovely. Even things like banking apps worked.
I don't care about absolute privacy, but I do care about controlling my privacy. Grapheme gave me that.

I had only 1 issue.
Contactless payment.
It's extremely convenient to me, from public transport to groceries. I just bop my phone.

The fact that Google has that locked down surely violates some EU laws. But I'm sure they wave away the laws because of "financial security" or some other bullshit.
As if bank card NFC/contactless doesn't suffer exactly the same issues.
I looked into some "graphene contactless payment" type systems or workarounds, and I couldn't find anything that would fill the gap.

[–] towerful@programming.dev 2 points 4 months ago

Everything else. Or anything else, if you select a single quark (presuming we don't split a quark).

If everything is moving away from us, then everything is moving away from everything else.
It's just that some things are moving away from us faster than they are moving away from other things

[–] towerful@programming.dev 3 points 4 months ago* (last edited 4 months ago) (2 children)

Everything else.

Galactocentrism was established in 1925, which realised that our solar system is not near the center of the Milky Way. So, we are moving relative to the center of our galaxy.

In 1929, evidence was found that everything else is moving away from us. So we are moving relative to everything else.

In 1931, the Big Bang theory started superceding Galactocentrism, which was an acentrist model of the universe (where there is no center).

[–] towerful@programming.dev 16 points 4 months ago

If I was responsible for the safety and wellbeing of a flying tube with 200 people in it, I would absolutely be pissed about not being able to get a proper rest.

[–] towerful@programming.dev 12 points 4 months ago

Eventually, yes

[–] towerful@programming.dev 14 points 4 months ago (2 children)

Smaller file size, lower data rate, less computational overhead, no conversion loss.

A 64 bit float requires 64 bits to store.
ASCII representation of a 64 bit float (in the example above) is 21 characters or 168 bits.
Also, if every record is the same then there is a huge overhead for storing the name of each value. Plus the extra spaces, commas and braces.
So, you are at least doubling the file size and data throughput. And there is precision loss when converting float-string-float. Plus the computational overhead of doing those conversions.

Something like sqlite is lightweight, fast and will store the native data types.
It is widely supported, and allows for easy querying of the data.
Also makes it easy for 3rd party programs to interact with the data.

If you are ever thinking of implementing some sort of data storage in files, consider sqlite first.

[–] towerful@programming.dev 1 points 4 months ago

I don't use it anymore though because I found the suggestions to be annoying and distracting most of the time and got tired of hitting escape

Same. It took longer for me to parse and validate the suggestion as it did for me to just type what I wanted.

I do like the helper for more complex refractors.
Where you have a bunch of similar, but not exactly the same, changes to make.
Where a search & replace refactor isn't enough.
It manages to figure out what you are doing, highlights the next instance of it and suggests the replacement.
I don't think I've seen it make a mistake doing that, and it is a useful speedup.
I guess the LLM already has all the context: the needle, the haystack and the term.

[–] towerful@programming.dev 3 points 4 months ago (1 children)

Yeh, my example was pretty contrived and very surface level.
It grouped things that seemed related at a surface level but weren't actually related at all. Which makes it a bad example.
And realistically, you would use a timer class that raised events, and passed in an interval class that could be constructed from any appropriate units.

It was more to highlight that types and classes are a fairly easy way to improve the context around variable.
It can also use type checker to show incorrect conversions between minutes and seconds, Polar and Cartesian coords, RGB and HSV, or miles and kilometers. Any number of scenarios where unit conversions aren't a syntax error.

[–] towerful@programming.dev 4 points 4 months ago

Yeh, absolutely.
Horses for courses.

[–] towerful@programming.dev 8 points 4 months ago* (last edited 4 months ago) (7 children)

I feel like variable or function names that become overly verbose indicate that a specific type or a separate class should be considered.
I see it as a mild code smell.

Something like int intervalSeconds = 5 could maybe have a type that extends an int called seconds. So then you are declaring seconds Interval = 5.
It describes the unit, so the variable name just describes the purpose.
You could even add methods for fromMinutes etc. to reduce a bunch of (obvious) magic numbers elsewhere.

To extend this contrived example further, perhaps there are a couple of intervals. A refresh, a timeout and a sleep interval.
Instead of having.

int sleepIntervalSeconds = 0;
// etc...

You could create an intervals class/object/whatever.
So then you have.

public class Intervals {
    public seconds Sleep
    public seconds Refresh
    public seconds Timeout
}

The class/object defines the context, the type defines the unit, and you get nice variable names describing the purpose.

[–] towerful@programming.dev 3 points 4 months ago

All the cool kids are running kubernetes

[–] towerful@programming.dev 14 points 5 months ago

You really think they know regex?
They probably got grok to generate it and didn't understand what it does

view more: ‹ prev next ›