HNHacker News
TopNewBestAskShowJobs

raphaelj

2,169 karma · joined October 1, 2011

Portofolio -> https://www.raphaelj.be/

https://github.com/RaphaelJ/

https://datethis.app https://noisycamp.com

submissionscomments
raphaelj··on Single_file_libs: List of single-file C/C++ libraries
This does not have anything to do with knowledge. C/C++ build systems are archaic if not broken.

I literally wrote a compiler but still spend 15/20% of my development time trying to find the right not user-friendly CMake syntax, understanding while my Conan dependency broke overnight, or writing header files that could be automatically generated by the compiler (à la GHC).

raphaelj··on Single_file_libs: List of single-file C/C++ libraries
Am I the only one to see this single-file lib trend as a consequence of the failure of the C++ ecosystem to produce a modern and unified package management platform?

Managing dependencies in C++ is a nightmare, and I'm not even talking about the lack of actual modules inside the language itself. It's so bad that people (incl. me) tend to prefer to copy-paste libraries source code instead of setting up a dependency.

A Python, Ruby, Node or Java project would never have to head toward such a poor solution instead of using their respective package managers. But in C++ we do because the alternative (e.g. Conan) is such a nightmare to use.

raphaelj··on DigitalOcean App Platform
I can't agree more with that.

I run a small side business, and these unlimited cloud plans are just a no go. A medium to large company could totally absorb a 5 figures bill, but that would be a dead sentence to my side project. Also, considering the variable costs of bandwidth of AWS, Azure or Cloudflare, one competitor could simple rent an OVH server and incur insane costs to my business while only spending 1/10 of the money.

Right now, I'm using Heroku (with a limited number of dynos and a single PgSQL database) together with BunnyCDN (which allow me to pay for prepaid usage). If I ever get DDoS'ed, my app will most probably be inaccessible or at least significantly slower, while I'll receive an email alert, from which I can decide myself to allocate more resources.

raphaelj··on Sweden’s low positive test rate ‘vindicates coronavirus strategy’
Bad luck.

A small country or state has an higher chance of being an outlier. 11M people live in Belgium, and a lot of +/- 10M inhabitant regions in larger countries have an higher death rate (Paris, NYC, Lombardy, Madrid ...).

If you live in a large country, some highly impacted regions will be offset by less affected regions.

raphaelj··on How Much Do Countries Spend on Healthcare Compared to the Military?
Some of these countries are also thermonuclear powers, which basically makes them totally invulnerable to any other country in any major war.
raphaelj··on Apple has €13bn Irish tax bill overturned
You're totally right. Yet half the world are ex UK colonies so ...
raphaelj··on Nvidia is now worth more than Intel
Well, Intel income can also go down fast, and that's probably the main reason we see the stock price going down.
raphaelj··on E.U. Plans to Bar Most U.S. Travelers When Bloc Reopens
It's not only lagging behind. The US numbers are not showing that the pendemic is under control in a lot of states. Hell, some states like Florida are not under lockdown anymore but still have an increasing number of daily cases.

In contract, all EU countries managed to control the pendemic and are now fighting against local clusters.

raphaelj··on E.U. Plans to Bar Most U.S. Travelers When Bloc Reopens
As a western European, most of it is associated with the current president and administration. Almost every European liked Obama and supported his international leadership.
raphaelj··on SQLite as an Application File Format (2014)
I'm just comparing the per stored GB cost of on demand database services vs on demand storage services.
raphaelj··on SQLite as an Application File Format (2014)
Both approaches have their advantages.

Storing blobs on the DB makes the data more consistent (the database is always in sync with the file content), and allows you to use advanced features of the DB on these files (transactions, SQL queries, data rollback ...). You also only have to backup the DB.

Storing links to the objects is usually more scalable, as your DB will not grow as fast. DBs are usually harder to scale, and also more expensive (at least 10x per GB).

It really depends on the project, but I'm favoring more and more storing the data in BLOBs, as it makes backups easier and as I can use SQL queries directly on the data. Databases as a service also make it easy to scale DBs up to +/- 2TB. But the cost might still be an issue.

raphaelj··on CapRover: Build your own PaaS
Heroku outrage free was 99.9999%+ over the past 60 days[1], I'd have a hard time achieving this with a single dedicated server.

[1] https://status.heroku.com/

raphaelj··on CapRover: Build your own PaaS
All these things are relative.

When you got applications that don't require high availability while needing a very low cost per CPU, dedicated servers just make sense. We are running a cluster of a few high-CPU dedicated servers for our data-science team, and it just makes sense: we don't need 99.99%+ availability, and the servers we rent are cheaper than the equivalent AWS storage cost alone ... The op cost of managing these is exactly the same as managing equivalent EC2 instances. We don't need backups either.

On the other side, we got some low-CPU web services that require high availability, redundancy and reliable backups. For these I just use Heroku. It's extremely reliable and easy to operate, while only costing about $100/month (a few hobby dynos + a fully managed PgSQL DB). Sure it's probably 5x more expensive than a dedicated server with 10x the performance, but I don't have to worry about backups, availability and scalability. And these apps just don't need this 10x faster CPUs anyway.

raphaelj··on U.S. Navy test shows 60 percent of carrier crew have coronavirus antibodies
Couldn't it reach such a percentage with a R0 being lower than 10?

If your R0 is 2.5, herd immunity will make the current R value go under 1 when 1 - (1 / 2.5) = 60% of the population got infected.

While that means that the epidemic will stop growing exponentially, the virus will not stop propagating, as there will still be a non-exponential propagation of the virus (e.g. if 10% of the population is still infectious at the time herd immunity is reached -- when R becomes 1 --, we should expect at least 10% more infections). Or am I missing something?

raphaelj··on [dead]
They can be used as a gender neutral singular pronoun: https://en.m.wikipedia.org/wiki/Singular_they
raphaelj··on Germany will require all petrol stations to provide electric car charging
That's still quite some decent margin. It takes about 5 minutes for me to fill my 40L tank, which would be about 1€. Everything is automated, there is absolutely no human involved, and it works 24/24.
raphaelj··on Is a trillion dollars’ worth of programming lying on the ground?
Could the working culture also affect the average salary?

For example, an average US employee will on average work 30% more hours per year than a German employee [1].

Working in the Netherlands, I also know that a lot of engineers will deliberately choose to work part time (e.g. 30h/week) even if it ends up with a lower annual income.

[1] https://data.oecd.org/emp/hours-worked.htm

raphaelj··on Oracle vs. PostgreSQL – A Comment
Some times it does not make sense to associate a time component to a date, just because it happens on a day, not at a certain time.

For example, in a lot of countries, Labor Day is on May 1, Christmas on Dec 25. These do not happen at a certain time, and there is no timezone to be associated with these events.

If I'm requesting some user's birthday, I'm going to store it as a date. I don't have a time component. I don't know the time zone. In some cases, dates are just dates ...

raphaelj··on The economics of cheaper batteries
Is the durability of batteries also improving?

Having a significant improvement in this area would have a magnificent effect on some industries. Making batteries last twice as long (e.g. from 2000 cycles to 4000) would basically reduce battery cost by a factor of 2 for trucks, public transport or grid energy storage (6y to 12y lifespan if cycled once per day).

raphaelj··on Speed improvements using hash tables
So the author is writing a compiler but only learned about hashtables?
raphaelj··on Google bans Podcast Addict app over non-approved Covid-19 content
I had the same issue. I developed a legit and anonymous contact-tracing app [1], and there is no way I can easily distribute it on the app stores as Google and Apple unconditionally ban any app that makes any reference to the current pandemic.

[1] https://github.com/RaphaelJ/covid-tracer

raphaelj··on The Supermicro H11DSi Motherboard Mini-Review: The Sole Dual EPYC Solution
Could it explain why we are seeing more improvements in rendering quality compared to physics and AI?

As you said, AI and physics are inherently not really parallelizable while rendering is. AI and physics from the Athlon 64/Pentium 4 era (e.g. Half-Life 2, Crysis) are similar to what we get now, while visual quality greatly improved (better textures, more detailed objects, longer visibility range).

raphaelj··on Ask HN: What's your quarantine side project?
I designed and released an opensource contact tracing app.

This was designed around the time Google and Apple announced their partnership, and the overall idea is similar (renewed anonymous identifiers).

https://github.com/RaphaelJ/covid-tracer

raphaelj··on “Tesla will now move its HQ and future programs to Texas/Nevada immediately”
> He has built a $150 billion company from the ground up

Are we talking about Tesla? Because Elon didn't fund Telsa.

raphaelj··on How Payments Providers Screw You (2015)
Note that you can avoid the currency conversion fees using a Transferwise account. You'll get bank credentials for USD, EUR, NZ$, AU$ and GBP, and not pay the fees for these currencies: https://transferwise.com/help/19/transferwise-for-business/2...
raphaelj··on How Payments Providers Screw You (2015)
You can create a TransferWise multi-currency account. That will provides you bank accounts for USD, EUR, GBP AU$ and NZ$, thus avoiding conversion fees.
raphaelj··on Rebuilding our tech stack for the new facebook.com
Wrong. The average user does not give a shit if the page is rendered server-side, or of it's a SPA.

Geeks prefer speed, like everyone. There are plenty of papers that show that a reduction in latency improves the conversion rate. And it's does not have to be ugly to be fast.

raphaelj··on Rebuilding our tech stack for the new facebook.com
Quite sincerely, it's a total failure. I got the chance to try the new interface, and it's so slow that it's barely usable. It's even slower than the old website, that was already painfully slow.

Loading a random profile takes 8 seconds. Opening a messenger discussion takes 6 seconds. It reminds me of the new Reddit website. Facebook was more enjoyable to use 12 years ago.

It's really sad that in 2020, 10k+ engineers can't make a photo, video, post and message sharing website that is not a pain to use. We collectively failed as a profession. If one needs 2MB of CSS for such a website, there is clearly a problem.

raphaelj··on Concurrent Hash Tables: Fast and General? (2019)
Not if you don't want the hash table to change while doing some read only processing on it. Immutability ensures that the reference you get always point towards a object that is in a consistent state.
raphaelj··on Concurrent Hash Tables: Fast and General? (2019)
I always preferred immutable sorted trees (such as found in Haskell or Scala) to concurrent hash tables when dealing with concurrent sets or maps.

You can add or remove a node from such trees without modifying the original trees, by only creating O(log(n)) nodes (tree branches that don't change don't have to be copied). So "modifying" a tree does not invalidate the previous versions of the tree, that can still be processed by concurrent threads if they still hold a reference to the root node. No longer referenced tree branches will then be discarded by the GC.

With a concurrent hash table, you have to hold a lock on the whole datastructure if you don't want it to be modified while processing it, and this makes the whole thing is harder to think about overall.

I also find it easier to implement a correct and fast comparison function (required by tree structures) than an equivalent hash function. Trees can also give you range search, and keep your items sorted, which are useful in some cases.

Trees are now my go to datastructures for map and sets unless maximum speed and minimal memory use are absolutely required. These might not be as efficient, but they make more reliable software.

← PreviousPage 8 of 13Next →