HN user

tie_

473 karma

https://contrax.app

Posts2
Comments94
View on HN

Very cool project and would be super useful with something like GraphQL, which tends to produce big nested JSON objects. Thanks for sharing it!

One improvement in my eyes would be to remove the "connector" boxes, like `members (2): "Array"` and `powers (3): "Array"` and have the arrow go straight to the array property. Those connector boxes take up a lot of real estate without conveying new information.

The "two big mobile platforms" were not established by an irreversible act of God. Before the current time of two platforms, there was a time of (mostly-)one platform i.e. the Web, and that platform had quite a few nice features.

One of the small conveniences is indeed that you didn't need to develop the same thing twice, which made the barrier to entry much lower. The functionality that you were exposing to users did not need to pass a review at one of two US tech giant companies, which could reject publishing it for any or no sensible reason at all. You were not forced to pay 30% of your revenue to the gatekeepers of the platform. You were not banned to invite users to buy your product in any way that works for them, even if it meant sending you checks over carrier pigeons. There was no _chokepoints_ that a single company could squeeze to further its own interests (after the collapse of IE).

Isn't 4k+1/4k-1 rule trivial though?

If we take any number K=N*4 divisible by 4 and >2, that'd be an even number by definition. The two closest odd numbers on either side would be (K-3), (K-1), (K+1), (K+3). As it happens (K+3) is the same as K(-1) for the next N, and (K-3) is the same as (K+1) for the previous N. So _all_ odd numbers follow this rule.

What "4k+1 or 4k-1" says in a roundabout way is that all prime numbers (>2) are odd, which isn't much of a surprise.

Ever tried playing something like (multiplayer) Quake with an Apple trackpad? I used to win online matches with the trackpoint. Once you get use to it, the difference in speed and precision is quite significant.

Totally understandable. I'm a trackpoint junkie, but I also could not get to using it on an HP laptop from work. It felt completely gimped (and yes, having just 2 buttons was probably a part of it).

I'm using Firefox fulltime, both on my work and my personal machine. The two things I'd love to see are: - Fix the ever-growing memory usage on Linux - Make it the best platform for using Progressive Web Apps (PWAs)

Despite PWAs not being a mainstream thing now, there are still a lot of them. Particularly on Linux, a PWA can be the best option for software that doesn't have a native client - e.g. Outlook 365. PWAs have a lot of untapped potential, mainly due to mobile software authors not being familiar with the approach.

With Firefox standing for the open, net-neutral web, it makes sense to me that they would also stand for web-based, cross-platfrom, appstore-neutral apps.

Sorry, my statement indeed got confusing. I'm using LiveView for online interactions. I'm using PouchDB + JS for data synchronization and enabling offline work. You are right that LiveView itself does need to be online, since it's whole point is to move (back) the UI logic to the server side.

I'm happily using Phoenix+LiveView for a website that works as a PWA. This also includes offline mode with sync-when-internet-is-available functionality (thanks PouchDB!). This covers online/offline/mobile usecases, with no explicit RPC, and no requirements for the end device that the app would run on, other than a _capable_ browser.

(Admittedly, browsers on iOS are gimped, but that's part of the Apple tax).

Same here. The first time I hear that containers are hard-linked with Kubernetes in anyone's mind. Docker standalone was used for a long time before Kuberbetes was a thing. AWS, Azure and Google have had options to run containers long before they had managed K8s. There have always been excellent ways to use containers without involving Kubernetes.

Please stop suggesting that SQL Injections are a sanitization problem. They are a problem of escaping in the application constructing the query, not a problem with whatever the user has typed in.

The log4j vulnerability shares some common traits, but it's completely different at the core. It's not a problem of sanitization, and I'd argue it's not a problem of escaping either (though escaping could fix it). It's a problem with an obscure feature that is left with insecure defaults, and is (was?) unknown to the vast majority of developers who integrate the library in their apps.

So the answer is pills that can damage your health while having no long-lasting benefit?

One other hidden cost - all the body of knowledge (courses, tutorials, books, blog posts, etc) that we have accumulated over the years for IPv4 would now start being slightly incorrect and misleading. That's no longer the IPv4 that we know - it's rather something like IPv4.5.

Instead of inventing new IPv4 mutations and pouring energy into getting them adopted across the Internet, causing incompatibilities and countless lost hours of debugging, adopt IPv6 instead.

I haven't really tested it in court, though I did get the official correspondence that leads up to it. Friendly law practitioner had suggested that I really don't stand a chance.

Not sure about credit damage, but in case of a loss in such a suit, I'd also have to cover the expenses for the other side, so it's a risky proposition.

With my wife we did consider it for a while, but then decided it's better to do focus on solving that problem with software and thus started working on contrax.app (shameless plug!).

More like gym, "clubs" (Verein-s), mobile phone, internet, electricity, etc. It's an established contractual practice, and e.g. Telekom are not in any way obligated to notify you when your cancellation date approaches. They can very well sue you, however, should you refuse to pay your automatically-renewed-in-advance contract.

Even in the cases where you're allowed to cancel on the last day of the subscription, we as humans are very prone to forget to do that, particularly for longer-term contracts. Tracking contracts and subscription deadlines is a damn profitable habit that I wish I had acquired much earlier.

Here in Germany, physical businesses have even more egregious subscription policies than most "dark" SaaS-es. Think, you do not cancel 3 months before expiration date - congrats, you're now signed up for another year. As a result, ended up writing a small PWA to keep track of my contracts and subscriptions.

Just. Fucking. Let. People. Instantly. Use. Your. Full. Product.

I love that - and that's how I aim to build things now.

Excalidraw has few calls to external domains as well - just Google Analytics and Sentry.io. That's still two that can be reduced, but it's much better than most modern clustertrucks.

Getting the 3-way TCP handshake and decrementing TTL is quite easy to get right. Those are very much foundational properties of the respective protocols. We are not talking about obscure edge cases.

Also, building a bridge is not simple either, but it's a well known and well solved problem. When a bridge crashes we don't just shrug and wave at the construction company with "It's OK, bugs happen".

We are talking about following well understood and published standards, such as TCP and IP. The people implementing those stacks were either negligent, or were consciously cutting corners and safeguards that those open standards had already in place. The result: lots of network pipes can be subverted by crackheads into flooding innocent netizens.

No, I got no sympathy for the people who built and sold those devices.

Goodbye PowerDNS 6 years ago

I experienced how many good tech people don’t understand DNS...

Totally agree there.

Root DNS servers would not answer your computer's (stub resolver's) _recursive_ query. You do need a recursive resolver to do that - whether ran by an ISP or by yourself.

If the minimum support level provided by UBI is used (in whole or in part) to offset and reduce minimum wage, it also reduces the barriers to people moving immediately to a less-inderprodicing level, and eventually up and out of the underproducing group.

You can get rid of minimal wage with or without UBI. In fact Germany just recently introduced minimum wage - there was none before. The lack of it was clearly not regarded as boon to the society. The barrier effect is minimal, if any.

Well, the UBI money you get would be used to buy something that someone else has produced (an iPhone, a piece of bread, a bottle of wine, etc.). In this sense, the UBI that you are getting represents _goods_ that _someone else_ is producing (and "donating" into the system in the form of taxes). I find this easier to reason about when you take the concept of "money" out of the equation.

So,oOption A is that you "donate" more goods into the system than the UBI you are consuming, which is all fine and dandy for the rest of us. Option B is that you are consuming more value that you are donating, which is less fun for the rest.

So, some people will need to overproduce in order for the people who under-produce to get their UBI worth of goods. Mind you, this isn't different than the current state of affairs. The big question for me is how would the introduction of UBI ultimately affect that ratio, given that you would be less disincentivized to stay with the underproducing group?

Fully self hosted is a requirement in my case. Letting an agent that's essentially externally controlled would be a hard sell in corporate environment.

In my case, I need very simple workflows that e.g. run Ansible playbooks, or do non-urgent monitoring, bookkeeping, and essentially trigger scripts. I usually need a single step - no serious need for a pipeline/workflow even. Cron job and manual triggering would be enough to cover the base usage (though git hook would be next on the list).

The more "convoluted" part that I'd want to see is a capability of jobs controlling themselves (e.g. job disabling itself or others on error), jobs as code, flexible notification system, and make it easy to deschedule/disable jobs in bulk, easy to extend with plugins.

Granted, Rundeck has most of what I need, but the implementation is Java, which also includes its SSH functionality.