Hacker Newsnew | past | comments | ask | show | jobs | submit | x4e's commentslogin

Darktable supports it under JPEG2000: https://docs.darktable.org/usermanual/4.0/en/overview/suppor... (Darktable also supports JPEG XL)


JPEG2000 is a different format, just as JPEG XL isn't the same as original JPEG.


12 bit jpeg is a different format in practice. Better to move forward than adding support for a new ancient format.

Also, jpegli can support 10+ bits within the old compatible "8 bit" formalism.


Why do you need the API key? Why not just do it like a traditional escrow service: you receive both the money and the item traded to a steam account you own. Then once both are received you send the money and you send a trade request giving the item to the receiver?


Using bots as middlemen imposes other challenges. First there is a 7 day tradelock of the item. Second bots are prone for scams. Third you cannot play with your skin in the meantime


Would that mean Steam takes their cut twice? Or can you "gift" items for free?


You can gift them for free


We need the api key to validate the state of the trades


I would say self hosting is best. At least if you lose your domain name you still have your emails.


But then you have to deal with self-hosting emails and all the associated bullshit ( reputation, spam lists, dealing with spam on your side, etc.).

IMHO the best is to use a mail service with your domain and local / remote / something backups. You need to lose 2/3 to be really impacted.


I have reviewed and read on this topic for a long time.

It is extremely unrealistic to operate your own self-hosted emails. There are all kinds of problems with this direction.

One is that it is very difficult to even find an app to do this. Then you have to set it up, which is very difficult.

You have to always be updating your self-hosting, as it is a very much a security nightmare.

Then you have to worry about blacklisting. Companies like Google or Yahoo might blacklist your self-hosted mail server for various reasons, like you are not up do date or listed with trusted email provider associations, and a whole bunch of other things - so basically, you cannot send or receive emails from the most popular email systems, so good luck with that. And then you have to somehow try to get unblocked from them, and welcome to that nightmare, right? It could take weeks and you won't be getting emails.

Nobody should self-host unless they are crazy expert at it, and who even has the time to do that?'

.

.

Here is what some people write about self-hosting:

.

The key to reliable delivery from your server is to go through a relay like Mailgun. You can accept email directly, that's not blocked, but sending out needs to go through a relay. So your stack will look something like dovecot, postifx, and spamassassin, maybe raindrop for the UI." So right - need dovecot, postifx, spamassasin and raindrop. What a nosebleed to learn all that.

.

Sender reputation and RBLs.

Summary: Large providers spend a lot of effort fighting spam, and that includes tracking where email comes from and blacklisting untrusted sources. They use a combination of publicly available blacklists (the RBLs) and also their own secret algorithmic sauce and assign you (where "you" == your MTA's IP address and also your domain) a reputation score. If your score is too low, your email gets rejected and your recipients will never see it. There is often a complex process to try to get your email un-blacklisted—it means arguing with individual RBL maintainers, or begging Microsoft to please let your email through.

Sender reputation is also affected by whether or not you're implementing a whole suite of other technologies in addition to SMTP—most importantly SPF and DKIM, and probably DMARC at this point as well.

tl;dr - if you're writing your own smtp implementation, you almost certainly won't be able to email anyone at a major email provider.

.

The base protocol is simple, but the flexibility of configuration expected by real-world users is quite challenging and the scar tissue of dealing with broken or semi-broken clients and servers (e.g Microsoft Outlook) builds up over time. Virtual domains, rewriting rules, forwarding rules, see Postfix's wide variety of configuration options, lookup tables (and table backends) for just a small taste of the complexity.

.

A good starting point is being able to receive mail. Running an SMTP server that listens to the internet but only relays mail for your specific domain is fairly easy, and should work out of the box. That means, if you own example.com, and set up the correct MX record, and listen on port 25, people can send you emails immediately. Actually, even without an MX record, if you just have a standard A record, that is enough. In a pinch, I've done it. Perhaps it has gotten harder in the last few years.

Tools like Docker and Ansible are great for setting things up quickly and reliably, but if you really want to understand, there are plenty of tutorials on setting up an MTA on Linux, or FreeBSD.

And, if you want a simple "dropbox", there are modules for php and nodejs that will run a simple SMTP server that you can hook into. It can be useful for embedded devices. A long time ago I worked on an interactive installation where anyone was able to interact with by simple sending an email. The server portion was about 10 lines, after including the server module:

https://www.npmjs.com/package/simplesmtp

It was deep behind a firewall too, but I just used ssh with the -R option to a VPS on a public IP address pointed to by our domain name.

.

nstall postfix and configure main.cf and master.cf to use mandatory tls required. Set tlsa record and dane. Spf, dkim and test the server. And use firewall that bloks shitty country asn's.

Also configure dovecot and set dnssec to domain. There is a online mail testers. It will work like a charm.

.

.

So my take is: what a horrible nosebleed all of this is. Unless you are already an expert in it. But if not, who has the time to monkey around with this stuff? I have a degree in Computer Science, but I have better things to do with my life. Especially since there are so many other better options.


Not updating a web browser is a fantastic way to make your computer very insecure. I understand the desire to keep things the same but personally I would value security above that.


And what is safe? C has well defined, tested, and documented specifications which layout exactly how to use C safely. Languages like Rust are more safe but nothing is just safe. If you are an inexperienced developer it is still very easy to write insecure code in Rust.

Sure, moving to safer languages is good. But it is impossible to rule out the use of a language so established that every major operating system is written in it. It is practically impossible to not use C - safe languages are normally bootstrapped by it and eventually your “safe” code will run in an environment programmed in C.


I agree that nothing is fully safe and any developer will alway introduce security vulnerabilities eventually, but history has proven than C is unsafe and generations of very competent developers wrote unsafe C despite documentation to write C safely.


Why is snprintf slow? I am surprised that it would be slow especially when compared to methods like asprintf that allocate the buffer.


I forget the exact reasoning now, but I remember it being about 10x slower than memcpy or strncpy. I think the main reason was because of the need to parse the format string.


Even then, printf and scanf are typically faster (and not even by a little bit, by a lot) than C++ iostreams formatted output, even though iostreams gets all the formatting information at compile-time, while printf has to parse the format string.

On the other hand, if people start to use snprintf in that particular form as a safe way of string copying, compilers could pattern-match this and substitute a direct implementation.


The modern C++ way of formatting strings is with std::format, or the external fmt library. It's faster than printf (and certainly streams!) while having convenient format strings (unlike streams) and optional compile time format parsing, combined with c++ type safety.


Everyone complains about streams, yet since Turbo C++ 1.0 for MS-DOS they have served me well for the kinds of applications I delivered into production with C++.


Isn't the biggest iostream bottleneck the forced sync with cstdio? You can turn that of at program start.


With that enabled it's comically slow, but even without the stdio syncing (and even operating on stringstreams) it's still much slower. For simple one-off formatting it's hard to notice, but once you write a parser for some engineering file formats (most of which are still ASCII) and have to read a few million floats here or there it becomes a really stark difference. For parsing floats specifically there are some implementations around which are optimized more, though some of the "fast and clever" ones are less accurate.


Oh I see, I thought you were comparing it to the printf style methods but compared to methods that do not take a format string that makes sense.


Yes, this is certainly easy to cheat at, but the point is to have fun


In Tom’s videos (which this post is based off) he says that you just have to reach sea water


Which doesn't work well for land-locked countries.

I'm sure that some sensible (albeit still arbitrary) geometric rule could be invented, such as requiring that the line bisects the country into two regions which have areas that differ by at most 50%, for example.

Alternatively, or additionally, the length of the line could be required to be greater than some specific fraction of the country's total border/coastline (assuming that has a rigorous definition).

For countries composed of multiple islands (or a mainland with some islands), the rules should probably require that the line pass through the biggest island / mainland, but perhaps multiple islands would need to be crossed (on the same straight line?) in order to meet the "bisecting area" rule above.


C++ can be safer but that does not mean it is safe. The fact you have out of bounds accesses, even if it is rare, is not really acceptable in a language that would like to be considered “safe”.


I believe it’s about which numbers it ends with, not starts with


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: