HN user

eneveu

820 karma
Posts25
Comments297
View on HN
newsletter.pragmaticengineer.com 2mo ago

Token spend breaks budgets – what next?

eneveu
5pts3
cloud.google.com 1y ago

Cloud Storage retrieval and data transfer fees will apply to BigQuery requests

eneveu
4pts1
www.thepress.co.nz 1y ago

How A US Fintech Giant Crushed a Promising AI Startup

eneveu
1pts2
code.google.com 12y ago

Error-prone - Catch common Java mistakes as compile-time errors

eneveu
3pts1
blip.tv 13y ago

Indexing in Cassandra talk (video)

eneveu
5pts1
dropwizard.codahale.com 13y ago

Dropwizard - Yammer's Java framework for RESTful web services

eneveu
2pts0
googleenterprise.blogspot.com 13y ago

Bringing Google+ to work

eneveu
75pts80
www.webpronews.com 14y ago

Proposed EU Law Wants To Make Possession of Hacking Tools A Crime

eneveu
2pts1
www.google.com 14y ago

US scientist gets 13 years on spy-for-Israel charges

eneveu
2pts1
www.infoq.com 14y ago

Concurrent Caching at Google [video] (in-memory caching for the JVM)

eneveu
2pts0
www.infoq.com 14y ago

Everything I Ever Learned about JVM Performance Tuning At Twitter (video)

eneveu
6pts1
www.theverge.com 14y ago

If Samsung doesn't care about customers, how can it hope to keep them?

eneveu
5pts1
engineering.linkedin.com 14y ago

Leaving JSPs in the dust: moving LinkedIn to dust.js client-side templates

eneveu
134pts41
postgres.heroku.com 14y ago

Heroku launches Postgres as a standalone service

eneveu
1pts1
uxweek.com 14y ago

UX Week 2011 - Videos

eneveu
45pts5
vimeo.com 14y ago

Talk on Google's Redesign by Jon Wiley (Lead Designer for Google Search)

eneveu
8pts0
www.techdirt.com 14y ago

Pakistan tries to ban encryption under new telco law

eneveu
19pts4
code.google.com 15y ago

Google's HTML5 slide template

eneveu
4pts1
blog.bolinfest.com 15y ago

Writing useful JavaScript applications in less than half the size of jQuery

eneveu
1pts0
in.relation.to 15y ago

Introduction to Ceylon [Series of articles by Gavin King]

eneveu
3pts0
google-opensource.blogspot.com 15y ago

Google Open Source Blog - Josh Bloch Interview

eneveu
1pts0
google-opensource.blogspot.com 15y ago

Google open sources "Contracts for Java"

eneveu
138pts35
twitter.com 15y ago

Mark Pilgrim's HTML5 book released - 10$ deal

eneveu
3pts3
www.generatedata.com 15y ago

GenerateData : generate test data

eneveu
1pts0
www.se-radio.net 16y ago

Rich Hickey on Clojure (SE-Radio podcast)

eneveu
2pts1

When installing IntelliJ IDEA extensions, I download the code and try to check it for malicious stuff using Claude Code... But not perfect since the code might not match what was released. We would need reproducible builds...

I was also toying with comparimg timestamps of git tags / GitHub releases / GitHub actions / plugin update timestamps as one indicator of potential tempering.

But not ideal.

They were snatching people from the streets and killing them.

Can you give more info on this? Tried googling it but couldn't find much. I remember there were very strict quarantines, but don't remember reading anything about "killing" people snatched from the street.

Not much.

I think companies dream of increasing productivity using AI, so they want to encourage their devs to use AI more. Since it's notoriously very hard to measure software productivity, and they have no way to really measure how well engineers use AI, they measure number of tokens.

Which is dumb. Because a bad engineer might ask the AI to "convert this CSV to JSON" which would burn token, while a good engineer would ask the AI to "write a script to convert this CSV to JSON". Of course, this example is not ideal, since a SOTA model would probably just write a script anyway in the first case... But you get the idea.

Thought this was interesting to see how AI token usage is exploding at multiple companies, and how they try to deal with it.

No mention anywhere of context engineering (starting a new session once a task is done, using sub-agents, reducing context for MCPs), and it seems some companies are actually rewarding developers for wasting token, instead of being smart.

Interesting. Do I get this sandboxing out of the box when I install apps with Homebrew? Or do I need to do something specific?

Would love to enable this for all apps, and add exceptions for the ones that need more access.

I installed Lulu and BlockBlock recently, and want to do more to harden my Mac.

If you read Clean Code and other similar books, they don't necessarily advise moving the sub-functions to other files, or splitting them arbitrarily. They simply have the top function delegate to sub-functions that are lower in the same file. Even better if these sub-functions can be marked as private in your language (to avoid polluting the public API of your object). And here the goal is to use function names to document what each block of code (sub-function) does.

Example:

    def process_order(order):
        _validate(order)
        _reserve(order)
        _charge(order)
        _confirm(order)
    
    def _validate(order):
        ...
    
    def _reserve(order):
        ...

Previously, if you had a BigQuery external table on top of GCS files, and those files had Nearline / Coldline / Archive storage classes (e.g. due to a bucket lifecycle policy), you were not billed for retrieval fees when reading those files through the BQ external table.

This was a billing bug that was already mentioned in 2020 on StackOverflow.

But the bug has been fixed on February 21, 2025. So we are now billed for that. We started seeing 10.000 $ of retrieval fees due to that. I did a deep dive and found this.

The fact that some of our DBT projects were re-creating the external tables daily was not helping...

New Zealand startup Montoux shut down after a lawsuit from $46B fintech giant FIS, which accused it of stealing trade secrets—claims Montoux denied. The company had gained traction as an alternative to FIS’s Prophet software, but instead of competing, FIS sued.

Filed in Delaware, the lawsuit alleged Montoux used FIS code and trained AI on proprietary data. With legal costs hitting $600K upfront, Montoux couldn't afford to fight and liquidated. This "lawfare" tactic highlights how corporations use litigation to stifle competition, raising serious questions about monopolistic practices and the barriers to innovation.

B.1.1.529 5 years ago

Even with a global lockdown, there will always be a reservoir of virus somewhere.

Some immunocompromised people can carry the virus for weeks.

Also, what about households where one person catches COVID the day before lockdown, incubates for a few days (asymptomatically), then transmits it to another person in the household, who also incubates for a few days...

At the end of the two week lockdowns, some people will still be contagious.

I sold Baremetrics 6 years ago

As a freelancer in Paris, I've been invoicing 625€ daily in 2018 and 2019, and 700€ in 2020, doing Big Data / Scala development with a sprinkle of devops, for the same customer. I think I could get 800-900€ if I find a customer that pays better and focus on the Big Data / GCP sectors. Just need to find a contract through word of mouth, and not through a recruiter that takes a 100-150€ margin...

You get less as a salaried employee in France though...

Deprecating scp 6 years ago

Having servers offer scp instead of ssh is not the only problem.

What about this part of the article:

Finally, while the danger is remote, it is worth noting that a local file name containing `backticks` (a file named `touch you-lose`, for example) will be handled the same way on the other end; if a user can be convinced to perform a recursive copy of a directory tree containing a file with a malicious name, bad things can happen.

I think the JavaOne presentation was made by the LMAX devs: https://www.youtube.com/watch?v=eTeWxZvlCZ8

They built the Disruptor data structure around 2011 for their high performance financial exchange on the JVM: https://lmax-exchange.github.io/disruptor/files/Disruptor-1....

I used the Disruptor at a smart grid startup in 2012-2014, after LMAX open sourced it.

Martin Thompson has a lot of interesting presentations on the concept of mechanical sympathy:

- https://www.youtube.com/watch?v=929OrIvbW18 - Adventures with concurrent programming in Java: A quest for predictable latency by Martin Thompson - https://www.youtube.com/watch?v=03GsLxVdVzU - Designing for Performance by Martin Thompson

In the face of this it's quite a bold move for France to go from zero to 28 days for the sake of benefiting gender norms and family relationships in the long-term.

We didn't go from zero to 28 days of paternity leave. We doubled it, from 14 to 28.

I wouldn't necessarily read "Rich Dad Poor Dad" or "The richest man in babylon". You might find better books about personal finance by:

- searching recommendations on HN, e.g. with a Google search like "site:news.ycombinator.com investing book recommendations"

- searching recommendations on the various subreddits like https://www.reddit.com/r/investing/ and https://www.reddit.com/r/personalfinance/ (search for book recommendation threads, or read their wikis)

- on the BogleHeads website : https://www.bogleheads.org/wiki/Getting_started

Good luck :)

At my previous customer, we had to SSH through a bounce gateway (SSH key auth), then a bastion host (LDAP password auth), then the target host (LDAP password auth). Since it was quite annoying, I used multiple ssh_config tricks to make it work without having a 1000 lines SSH config, and I wrote a doc to share best practices. I anonymized it and posted it below.

----------------------

ssh_config_best_practices.md

  CanonicalizeHostname yes

  ##############
  ### GitHub ###
  ##############

  Host github.com
    User jdoe
    IdentityFile ~/.ssh/id_rsa_github

  ##################
  ### My Company ###
  ##################

  Host myproject-dev-*
    ProxyJump bastion-dev

  Host myproject-prod-*
    ProxyJump bastion-prod

  Host bastion-dev
    HostName bastion.myproject-dev.mycompany.com
    ProxyJump bounce.myproject-dev.mycompany.com

  Host bastion-prod
    HostName bastion.myproject-prod.mycompany.com
    ProxyJump bounce.myproject-prod.mycompany.com

  Host *.mycompany.com myproject-dev-* myproject-prod-*
    User john_doe
    IdentityFile ~/.ssh/id_rsa_mycompany


  ##############
  ### Common ###
  ##############

  Host *
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h
    ControlPersist 2h

    # On OS X, UseKeyChain specifies that we should store passphrases in the Keychain.
    IgnoreUnknown UseKeychain
    UseKeychain yes
    AddKeysToAgent yes
- "CanonicalizeHostname" ensures the config is re-parsed after hostname canonicalization. This means that when you SSH into "bastion-dev", SSH re-parses the config using the full hostname "bastion.myproject-dev.mycompany.com", which then correctly matches the entry "Host * .mycompany.com".

- "ProxyJump" was added in OpenSSH 7.2 (2016) and is simpler and more powerful than "ProxyCommand".

- "bastion-xxx" hosts are the only ones whose hostname can be resolved from the bounce gateways. To connect to other hosts, the trick we use in this config is to do two ProxyJumps: your machine --> bounce --> bastion --> target host.

- "ControlMaster" lets you do SSH multiplexing, which in our case is particularly useful when channeling multiple connections through a bastion host. It also persists SSH connections for a while after we disconnect, which speeds up future connections, and avoids typing the password all the time.

- When you ssh into a host, you must enter your LDAP password twice: first for the bastion, then for the target host. If you then ssh into a second host, you must enter your LDAP password only once, since ControlMaster reuses the SSH connection previously established to the bastion. Also, if you close those SSH shells, the connections will persist for two hours (see ControlPersist), so you won't need to type your password for those two hosts if you try to SSH into them again in the next two hours.

- Using this ssh_config, there is no need to add an Host entry for each host. It is not even needed to specify the IP addresses, since they will be resolved using the DNS on the bastion host.

- With this configuration, you can easily copy a file using scp between your local machine and the target host, without needing to first copy it to the bastion, then ssh to the bastion, then copy it to the target host, then remove it from the bastion...

PS: an ssh_config is parsed from top to bottom, so specific comes first, generic comes last. That's why "Host *" must be at the bottom.

Yes.

From the article:

Dr Feigl-Ding explains that R0 is the “R reproductive number at time 0 before countermeasures”.

He points out that this is not the R(effective) at current time under mitigation measures such as distancing and testing, tracing and quarantine, which are expected to slash chains of transmission.

Just googled this and I found a discussion here: https://twitter.com/koeppelmann/status/1245037948099330048

"Testing capacity in Germany will be increased by up to factor 10 to up to 400,000 a day (!) by doing pooled testing. E.g mix 16 samples and if negative - all are negative, otherwise binary search for the positive(s). Could of course be used worldwide."

He quotes a tweet with a link to this study: https://idw-online.de/de/news743899

Tried to donate multiple times but I keep getting an error "donation processing failed" :/ Tried twice on mobile using Google Pay, then on desktop using a credit card, then again with uBlock origin disabled...