HNHacker News
TopNewBestAskShowJobs

jooz

34 karma · joined December 17, 2017

submissionscomments
jooz··on RAM now represents 35 percent of bill of materials for HP PCs
When I train some leetcode problems, I remember the best solution was the one that optimised cpu (time) instead of memory. Meaning adding data index in memory instead of iterating on the main data structure. I thought, ok, thats fine, it's normal, you can (could) always buy more RAM, but you can't buy more time.

But well, I think there is no right answer and there always be a trade off case by case depending on the context.

jooz··on Show HN: 2048 turned 10 this year, I built an updated version to celebrate
Im curious on the real cost of the impact of this game had on big co. I remember everybody was playing non stop at work.
jooz··on GNU Parallel, where have you been all my life?
I try to use it last week to run 10 instances of curl against a webserver.

I was expecting something simple as 'parallel -j10 curl https://whatever' but couldnt find the right syntax in less time that took me to prepare a dirty shell script that did the same.

jooz··on Kafka is dead, long live Kafka
The criticism I have through kafka is the "at-least-once" semantics.

How do you manage exactly-once semantics? If kafka performance is based on reading small batches of 50 messages, in case of crash of the consumer, some of them will be processed twice. Depending on your business logic this may be ok, or may be create a new problem that must be solved farther in the process by adding an external data store.

jooz··on A Beginner's Guide to eBPF
compared to making a module, apart the fact that the module can end in kernel panic (thats my problem), is there any significance performance difference between BPF and kernel modules ?

If my goal is to reduce the cpu cloud bill, is BPF good enough compared to making a kernel module ?

jooz··on Why not tell people to “simply” use pyenv, poetry or anaconda
Ive heard that 'venv' are very problematic, but honestly, Ive never had a problem. And I used them daily. I understand that it can not be enough on some cases... that don't concern me.

I would recommend to 'python -m venv' and thats all.

jooz··on Things they didn’t teach you about software engineering
Reading this point I realize is the one Ive improved last year.

After covid crises, many seniors left, and I find myself being the more senior. There a few others seniors around me, but they have been on the same place all their life, so Im the senior with most different experiences.

I often propose/ask other teams to implement changes that I need. Is often challenging, the are contrary to change. Specially if it comes from somebody outside their current team. I follow this approach:

- I try to convince them, with diplomacy. Often what I request is also good for them.

- If they refuse some _internal_ changes I propose, I live with that. If that issue some day impact me, I will communicate with them by opening a ticket. If they dont work on the ticket, will be a project management problem, not an software engineer problem.

- I limit my interactions with them through their interface (ex: REST API provided by their service). On this point I'm rigorous, because the interface is difficult to change once is used by everybody.

In summary, if they have bad implementations or bad design, I try to contain inside a box. Some day a new guy will be able to solve those internal issues. But I trace a line on the interface they provide, and ask for an interface that make sense.

jooz··on PRQL: a simple, powerful, pipelined SQL replacement
Some real life problems using standard SQL are:

- UPDATE does not return number of rows updated.

- There is no "upsert"

- There is no "merge"

- List all tables and explain command are not standard.

Do you plan to cover them on your project ?

jooz··on Select * from cloud
I consider SQL imperative. You say exactly how to do what you want, not what do you want.

If we take as example a table with a single row:

In imperative (SQL):

INSERT INTO TABLE1 (name, wage) VALUES ('John','50k');

Then one day John gets a raise:

UPDATE TABLE TABLE1 SET wage = '60k' where name = 'John'

In declarative (pseudo code in yaml):

- table: TABLE1 - name: John wage: 50k

Then one day John gets a raise:

- table: TABLE1

  - name: John

    wage: 60k
jooz··on LastPass users warned their master passwords are compromised
Im thinking on txt files shared with leaked user and password. On those cases my credentials would not appear.

If somebody focus on hacking _me_, they already have my email, so this measure is not very effective.

jooz··on LastPass users warned their master passwords are compromised
When using my password manager, I often provide only the password, not the user. In case of data breach they can not be exploited.
jooz··on A Complete Guide to LLVM for Programming Language Creators
When I studied compilers back in the university, the subject consist in reading understanding and putting in practice the 'dragon book' (not the full book but a big part of it). We all used flex+yacc and a simplified ASM that was interpreted by some educational software which name I cant remember. The project for the year was to implement a basic compiler language: included if/for loops, function calls, recursivity ... basic stuff but enough as starting point to build something.

Trying to get into LLVM, Id love to find an example done in flex+yacc vs the same done in LLVM.

jooz··on The Architecture of Open Source Applications
To understand large codebases is my biggest weakness. I would be definitively interested.
jooz··on Turn recipe websites into plain text
Id love to do the conversion on both directions. Grams -> Volume (in caps, tbsp, or milliliters). Happens as well people may not have weigh scale.
jooz··on What every software engineer should know about Apache Kafka
There was a Pulsar post on HN a few months ago, with interesting comments, some of the related to kafka. I keep Pulsar on the radar since that post:

https://news.ycombinator.com/item?id=21936252

jooz··on What every software engineer should know about Apache Kafka
> The primary consideration at this point is cost.

Certainly. In my experience the operational cost of kafka is enormous. Ive seen incidents too often for a relatively small (<10 machines) cluster. I would expect that after a first long phase of finding the right configuration, to step on a phase were it runs smoothly, but I didnt see it yet.

jooz··on Kafka Removing Zookeeper Dependency
What is hard is not to choose the java version (1.8,19,...), but the JVM implementation. To choose between hotspot, openjdk, oracle. Even to find the download link without being forced to log in on oracle.com was difficult (in fact I couldnt find it the very last time).