Hacker Newsnew | past | comments | ask | show | jobs | submit | nicce's favoriteslogin

I first learned about the "innovation tokens" idea in "Novelty is a loan you repay in outages, hiring, and cognitive overhead" from this, still one of my favorite essays on software architecture: https://boringtechnology.club/

Likewise, "Abstractions don’t remove complexity. They move it to the day you’re on call." made me think of this 23 year old classic from Joel Spolsky, the Law of Leaky Abstractions: https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-a...


I was a big fan of a good keyboard-driven git TUI like magit, neogit, lazygit, etc... (as long as you learn the CLI first and understand it).

Now I no longer directly use git, but instead use jujutsu (jj).

Once I became very proficient in the jj cli, I picked up jjui: https://github.com/idursun/jjui

Also, as splitting commits is an extremely frequent operation, this neovim plugin is really nice: https://github.com/julienvincent/hunk.nvim

Also this neovim plugin is amazing for resolving jj conflicts: https://github.com/rafikdraoui/jj-diffconflicts

Now with jj instead of git I edit the commit graph as effortlessly as if I am moving lines of code around a file in my editor.


That's an interesting point that I haven't considered before: that the narrative of AI replacing jobs plus the widespread cheating in school using LLMs is making students less engaged and new graduates less employable, becoming a self-fulfilling prophecy for AI.

My journey has been quite similar (just a few more years of "unhappy John") and this approach is now very close to what I practice. I do have a few reports and run the R&D leadership team, I delegate as much as I can to my directors. (Besides being hands on where the organization needs it, I still regard the other part of my job to keep our org accountable, engineers inspired, and keeping the big picture in.)

For people who doubt this, I recommend "How to Build a Car" by Adrian Newey (CTO of Redbull Racing).

But to be clear - if you do coding as CTO only because "only you can run certain projects," part of your job should be to fix that first. You will still have the easiest time doing it, but you should always have (many) others in position to run innovation projects, work with customers etc.


I contacted the European Commission DMA team on this gross abuse of power (Google just followed Apple in this regard, who reacted to the DMA by coming out with this notarization of developers), here is they flacky answer:

"Dear citizen,

Thank you for contacting us and sharing your concerns regarding the impact of Google’s plans to introduce a developer verification process on Android. We appreciate that you have chosen to contact us, as we welcome feedback from interested parties.

As you may be aware, the Digital Markets Act (‘DMA’) obliges gatekeepers like Google to effectively allow the distribution of apps on their operating system through third party app stores or the web. At the same time, the DMA also permits Google to introduce strictly necessary and proportionate measures to ensure that third-party software apps or app stores do not endanger the integrity of the hardware or operating system or to enable end users to effectively protect security.

We have taken note of your concerns and, while we cannot comment on ongoing dialogue with gatekeepers, these considerations will form part of our assessment going forward.

Kind regards, The DMA Team"

The DMA is in fact cementing their duopoly power, the opposite of the objective of the law.


The trick to getting results in the gym, and establishing a sustainable practice (which is key in both exercise and diet), is to just go regularly but allow yourself to leave at any point. Say you decide four days a week is your long-term goal. On that first day, if you want, leave after 5m. But return the next day. Keep doing this and eventually, I promise, you'll average the 45m you need four days a week forever.

I do the same thing with books. I have tons I have only partially read. But I also have tons that I pick back up later and absolutely LOVE. I don't know exactly why this happens, but I never feel any dread about reading and so read a lot more than I did when I did not think this way.


We block China and Russia. DDOS attacks and other hack attempts went down by 95%.

We have no chinese users/customers so in theory this does not effect business at all. Also russia is sanctioned and our russian userbase does not actually live in russia, so blocking russia did not effect users at all.


So now that Figma will be owned by Wall Street, it will only get considerably worse from here. It is now time consider and find and fund open source alternatives.

I know of excalidraw and perhaps penpot are there anymore?


Implementing an ACME client is part of the final lab assignment for MIT’s security class: https://css.csail.mit.edu/6.858/2023/labs/lab5.html

You can make your own clean version, legally, with this file. https://schneegans.de/windows/unattend-generator.

I get customers and most people don't know about it but it's kind of ridiculous that techy people in a tech forum don't know how to do it.


I use stirling-pdf for this, ran locally with

docker run -d -p 8080:8080 -e DOCKER_ENABLE_SECURITY=false --name stirling-pdf frooodle/s-pdf:latest

Lots of features, OP you should definitely check this out


One of the big things I love about Redis is that it’s become this tool for me to learn new techniques and explore data. Like, the new vector sets feature has let me really explore dense vectors and custom search and taxonomy mapping and all sorts of areas that seemed like a high barrier to entry for me, but now I’m just streaming stuff into llama.cpp with an embedding model and storing it in Redis and being able to do mappings between different data sets super efficiently.

A big part of that is API design - I can’t think of another system that is as well thought out as the Redis API - it’s deceptively simple and because of that I didn’t have to wait for client libraries to incorporate the new Redis features - they just work cause they all speak RESP and I can just send raw commands.

All of this is to say that I was really happy to hear Antirez was back working on Redis and it’s paying off in more ways than I could have imagined. People can use valkey or whatever they want as an alternative - but I like Redis because it’s always pushing forward and letting me explore new things that otherwise wouldn’t feel as “at my fingertips” as it does in Redis.


Most of the "free" analytics tools for android/iOS are "funded" by running residential / "real user" proxies.

They wait until your phone is on wifi / battery, then make requests on behalf of whoever has paid the analytics firm for access to 'their' residential IP pool.


I think it's probably the difference between "code" and "programming". An LLM can produce code and if you're willing to surrender to the LLMs version of whatever it is you ask for, then you can have a great and productive time. If you're opinionated about programming, LLMs fall short. Most people (software engineers, developers, whatever) are not "programmers" they're "coders" which is why they have a positive impression of LLMs: they produce code, LLMs produce code... so LLMs can do a lot of their work for them.

Coders used to be more productive by using libraries (e.g: don't write your own function for finding the intersection of arrays, use intersection from Lodash) whereas now libraries have been replaced by LLMs. Programmers laughed at the absurdity of left-pad[1] ("why use a dependency for 16 lines of code?") whereas coders thought left-pad was great ("why write 16 lines of code myself?").

If you think about code as a means to an end, and focus on the end, you'll get much closer to the magical experience you see spoken about on Twitter, because their acceptance criteria is "good enough" not "right". Of course, if you're a programmer who cares about the artistry of programming, that feels like a betrayal.

[1] https://en.wikipedia.org/wiki/Npm_left-pad_incident


Kagi is cool and all but...

I'm in Europe. I'm busy disengaging from US based services.

Any good EU alternatives?


Or election were hacked, but not the way you think.

Social media was weaponized and turned into a tool that manipulates people's view of the reality. Each person gets a personalized feed that presses their buttons to think certain way.

For example with war in gaza. If for example you were pro Israeli, you will see content that Harris was siding with Hamas, and trump actually was the most Israel friendly candidate.

If you were supporting Palestine you would get that there's no difference between Harris and trump, and it is best to do protest vote.

Same with leaning too much to the left, or not enough to the left etc.

Pretty much every issue was handled this way. People who got their news from social media had no idea what her stance were on any topic, because that was filtered.

Few years ago we had huge scandal about Cambridge Analytica, there was a bit loud about it and then died out, meanwhile it all continued and was perfected.

Twitter, Instagram, Facebook manipulated older generation. While TikTok managed to capture younger, left leaning generation and make it more apathetic.

I don't think it is a coincidence that pretty much all social media (except the Chinese TikTok) was present on his inauguration.

I also don't think it is a coincidence that all social media companies have involvement with AI. With it, they no longer need humans to generate content, so the whole manipulation is much easier to do.

This isn't just isolated to US and it is being used in Europe too. Look at elections in Moldova, Romania, what's happening in Germany etc.

Timothy Snyder's "On Tyranny: Twenty Lessons From the Twentieth Century" book is a must read so we can prevent this.

Here's summary of the lessons: https://substack.com/@snyder/p-155209838

The book is quite short and he also reads and discussed them on his YouTube channel.


I know of many, many LLM systems in production system, since that's what I've been helping companies build since the start of the year. Mostly it's pretty rote automation work but the cost savings are incredible.

Agentic workflows are a much higher bar that are just barely starting to work. I can't speak to their efficacy but here's a few of the ones that are sort of starter-level agents that I've started seeing some companies adopt:

- https://www.intercom.com/fin

- https://www.rox.com/

- https://devin.ai/

- https://bolt.new/

- https://v0.dev/


A few days ago the QwQ-32B model was released, it uses the same kind of reasoning style. So I took one sample and reverse engineered the prompt with Sonnet 3.5. Now I can just paste this prompt into any LLM. It's all about expressing doubt, double checking and backtracking on itself. I am kind of fond of this response style, it seems more genuine and openended.

https://pastebin.com/raw/5AVRZsJg


> browser based

For whatever reason, this is the main limiting factor, local software can already be really good, for example:

• DBeaver - pretty nice and lightweight local tool for a plethora of databases https://dbeaver.io/

• DataGrip - commercial product, but you'll feel right at home if you use other JetBrains products https://www.jetbrains.com/datagrip/

• HeidiSQL - haven't really used this myself but the version graph on the page is cool https://www.heidisql.com/

• DbVisualizer - really cool tool that helps you explore messy schemas https://www.dbvis.com/

• Jailer - something for exploring datasets, a bit niche, but can be useful https://wisser.github.io/Jailer/

There's also some solutions that are specific to certain databases, like:

• pgAdmin - for PostgreSQL https://www.pgadmin.org/

• MySQL Workbench - for MySQL/MariaDB, sometimes a bit buggy but I really like the reverse engineering and forward engineering functionality https://www.mysql.com/products/workbench/

• Adminer - one of the somewhat rare web based solutions for the likes of MySQL/MariaDB, actually pleasant to use as long as you use it securely, this I think is a good example of web based DB tools https://www.adminer.org/

(out of respect for my own sanity, not mentioning SQL Developer, even though it sort of works)


Is this like a wrapper for the Rust crate?

https://rust-skia.github.io/doc/skia_safe/canvas/struct.Canv...


I like this quote:

“We didn’t design them to last 30 years or 40 years, we designed them not to fail,” John Casani, Voyager project manager from 1975 to 1977, says in a NASA statement.


Use photopea.com

It's an open source near perfect clone of photoshop


Rust is simply amazing to do web backend development in. It's the biggest secret in the world right now. It's why people are writing so many different web frameworks and utilities - it's popular, practical, and growing fast.

Writing Rust for web (Actix, Axum) is no different than writing Go, Jetty, Flask, etc. in terms of developer productivity. It's super easy to write server code in Rust.

Unlike writing Python HTTP backends, the Rust code is so much more defect free.

I've absorbed 10,000+ qps on a couple of cheap tiny VPS instances. My server bill is practically non-existent and I'm serving up crazy volumes without effort.


Counter-point: developing web services in Rust is just as easy as doing it in Go or Java, yet you now have an excellent type system (sum types!), an excellent package manager, and extremely good performance.

You can do dependency injection in Rust to share connection pools just like you would in Java, and it's super simple to write threaded background tasks.

Google gave a talk recently that said they measured Rust developers as no less efficient or productive than Go developers [1].

It's a fantastic language and you shouldn't ever limit yourself to systems programming with Rust. It can do so much more than that.

[1] https://www.ardanlabs.com/news/2024/rust-at-google/


But some people seems so at ease with spontaneity, dealing with dynamic, emergent conversations, and even the ability to direct it to particular directions or narratives. I doubt all of it is preparation.

I'd recommend reading James Bamford for a more positive look at NSA and their charter...which is essentially math, math, and more math, and unrelated to politics within NSA anyway.

The Snowden stuff is extraordinarily excerpted to that which a contractor (Snowden) was seeing in a post 9/11 strange fiasco which did bring politics into play. Bamford predates that mess.

Here's a link, for example.

https://a.co/d/eMTidtP


But it’s not agentless. It depends on ssh. And we discovered back in 1995 that parallel ssh to even a medium sized number of hosts doesn’t scale. In fact, it anti-scales.

There’s a reason why tools like Puppet and Chef have agents. It’s so that they can have a more scalable parallel UDP-based communications mechanism between them and their agents.

Heck, some tools even do a torrent-style mechanism for the lengthy stuff.

These are lessons that Ansible actively refused to learn. At least until recently.

And shells are variable across platforms and versions thereof. If you’re depending on your bash script running exactly the same wheat everywhere in the world, you’re going to be in a world of pain. There’s a reason why defensive bash scripting is hard and convoluted. And I don’t think that any of the Ansible playbooks have really been written to be sufficiently robust in this manner.

Moreover, all of these tools end up treating your infrastructure like pets, because you’re applying one set of operations on top of another on top of another, ad infinitum.

Instead, you want to treat your infrastructure like cattle, and ideally use immutable infrastructure. If you want to make any changes to the infrastructure, you don’t change the existing ones, instead you spin up new replacements and then tear down the old ones.

To make that easy, you want a robust and reliable build system to create OS images that have everything you want/need, and then you run them read-only. Logs and other things that might want/need local write access use a different partition.

And the further you go down that road, the less and less it looks like Puppet or Chef or Ansible or any of those kinds of tools will be helpful to you.

Of course instances themselves are only part of the equation. You also need to be able to configure network devices and all the other aspects of infrastructure in a similar immutable manner, and tools like Puppet or Chef or Ansible have never really been able to offer much in the way of configuring anything other than hosts/instances.

IMO, you’re asking the wrong questions. You instead want to know how you can deploy your static-built code onto your immutable infrastructure, and what kinds of tools are available to help you do that.


Curious: for this type of infra, what do people use for file/object storage? Using something like AWS would negate all the savings with egress costs.

Digression-- this is a good example where the mumbo jumbo that anarchists buzz on about applies in a very obvious way.

You were literate in that domain. The interviewer wasn't. In a conversation among equals you'd just continue talking until the interviewer yielded (or revealed their narcissism). The other interviewers would then stand educated. You see this process happen all the time on (healthy) FOSS mailing lists.

Instead, you had to weigh the benefit of sharing your knowledge against the risk of getting in a pissing contest with someone who had some unspecified (but real!) amount of power over your hiring.

That's the problem with a power imbalance, and it generally makes humans feel shitty. It's also insidious-- in this case you still don't know if the interviewer said "no" because they misunderstood homomorphic encryption.

Plus it's a BigTechCo, so we know they understand why freely sharing knowledge is important-- hell, if we didn't do it, nearly none of them would have a business model!


A classic: https://www.joelonsoftware.com/2000/04/06/things-you-should-...

>> "The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. There’s nothing wrong with it. It doesn’t acquire bugs just by sitting around on your hard drive."

>> "Each of these bugs took weeks of real-world usage before they were found. The programmer might have spent a couple of days reproducing the bug in the lab and fixing it. If it’s like a lot of bugs, the fix might be one line of code, or it might even be a couple of characters, but a lot of work and time went into those two characters."

>> "When you throw away code and start from scratch, you are throwing away all that knowledge. All those collected bug fixes. Years of programming work."

It's an older piece, but like good old code, it still holds up. Newer tools and technology have improved the creating of new code, but they've also made improving old code easier in equal measure.


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

Search: