Pushkar N Kulkarni (@pushkar_nk) header
Pushkar N Kulkarni (@pushkar_nk) profile picture

Java for Ubuntu | Tweets are my own.

India
Joined July 2009
Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)Photo by Pushkar N Kulkarni (@pushkar_nk)
Pushkar N Kulkarni retweeted
De-slopping is twice as hard as vibing the code in the first place. Therefore, if you vibe the code as quickly as possible, you are, by definition, not smart enough to de-slop it. (With apologies to Kernighan.)
17
26
3
371
10,363
Pushkar N Kulkarni retweeted
Omarchy folks. Less slop, more code reviews, please. v3 -> v4 migration just deleted my network setup without warning. SSH gone, tailscale gone. And migration never finished bc of a browser bug. That's not called a migration
229
63
102
2,437
300,532
Pushkar N Kulkarni retweeted
libghostty 1.0 is here! I started Ghostty ~5yrs ago to work towards this. Today, libghostty is in hundreds of projects used by tens of millions of people. 1.0 marks ABI stability, quality, and an invite for distros to begin packaging. mitchellh.com/writing/libgho… Since starting the Ghostty project in 2022, the most common question I've been asked is "why?". Today, I'll answer this by showing the broad industry impact libghostty has already had. On top of JetBrains and Neovim already mentioned (that alone being over 10 million users): -KDE developers are experimenting with a Konsole replacement built on it. - Vercel's Turborepo uses it to render task output in its TUI. - devenv uses it to drive shells. - Antithesis used it to fuzz TUI programs and found real bugs in btop and others. -Ghostel brings it to Emacs. - ghostty-web is the WASM build with an Xterm.js-compatible API. - Commercial products like OrbStack embed it. - And a whole wave of new terminals and "agentic" coding tools, such as herdr and cmux, have been built on it rather than writing yet another emulator. There are community bindings for Rust, Go, JavaScript, Swift, Python, .NET, Elixir, Dart, Java, and more, and the awesome-libghostty list tracks well over a hundred projects. More people today use a terminal powered by libghostty than use Ghostty the application, by a very large multiple. And libghostty is having a much larger impact than being "just" a terminal emulator. I'm excited to see where people take it from here.
111
306
36
4,755
117,036
Pushkar N Kulkarni retweeted
Java is a language that arrives late to things. Let me prove it: lambdas, records, virtual threads, generics. Many other languages had them long before. Now you might be thinking: - Elder, are you trashing Java? - Quite the opposite. To me this is one of Java's big advantages. Before I tell you why, think of a company that's an expert at arriving late: Apple. It wasn't the first to launch a tablet, or a smartphone like the iPhone, or an iPod. It always got there later. And what's the advantage of arriving later? You get to avoid the mistakes others made. A great friend of mine says Java has always been a production language. - Yeah, but every language is a production language. - True, every language is made to put things in production. But not every ecosystem has the culture of looking at production before shipping something. In Java that was always priority number zero. The practical consequence? Lambdas, records, virtual threads, generics, and plenty of others went in without bugs in production. You won't find stories of "wow, records blew up in prod because they got the implementation wrong." I've been at this for 27 years and I don't think Java will ever race to ship something before other ecosystems. And to me that's a career lesson too. Do I really need to rush to be the first to do something? I don't know. Looking at a language with over 30 years in the market, still evolving like no other, I think they know what they're doing.
30
68
5
492
32,744
Pushkar N Kulkarni retweeted
Build a fully local AI coding agent on Ubuntu using Canonical Workshop and the Qwen3-Coder Inference Snap. In this step-by-step demo, you'll set up an isolated development environment, connect your coding agent to a locally hosted LLM, and run coding tasks without an internet connection. Follow along to recreate the setup on your own machine, using CPU or GPU inference: youtu.be/u5Q149jlMQ8 #Ubuntu #Linux #AI #Agents #Workshop #OpenSource
45
131
8
870
44,618
Pushkar N Kulkarni retweeted
Claude is pretty useless when the code you're trying to write has never been written before.
271
129
36
3,829
239,529
#TIL Duck typing comes from "If it walks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck."
46
Pushkar N Kulkarni retweeted
In September 1992, Unicode had a problem on Unix. Storing characters as 16-bit values could introduce zero bytes that C programs mistook for string terminators. Earlier encodings had compatibility problems of their own. One evening, Ken Thompson and Rob Pike went to a diner in New Jersey. Thompson sketched a new encoding on a paper placemat. ASCII stayed exactly as it was. Other characters used multiple bytes, without accidentally introducing null bytes or Unix path separators. They went back to Bell Labs and started coding. By Friday, their Plan 9 operating system was running entirely on the new encoding. They called it UTF-8. Today, it powers over 99% of websites with known character encodings.
34
156
28
1,606
76,383
Pushkar N Kulkarni retweeted
Ghostty 1.4 is now out! Full Kitty graphics with animation (the first terminal besides Kitty to do it), scrollback compression for much lower memory usage, macOS 27 support, a new OpenGL renderer on Linux, ghostty +ssh, big performance gains, and hundreds more changes. The highlights: - Scrollback compression: scrollback compresses ~90+% on average, meaning your terminals use that much less live memory - Huge memory savings across the board: no single large thing, just lots of good improvements lowers memory usage everywhere, netting anywhere from 50 to 90% less memory usage depending on workload - Kitty graphics is now 100% complete, including animation and relative placements, after a full conformance pass against the spec and Kitty itself - The Kitty clipboard protocol, with an image preview when a program asks to read your clipboard - Split drag and drop on Linux, including between windows - ghostty +ssh installs terminfo on remote hosts automatically, so things just work over SSH - Lots of terminal emulation accuracy fixes This release is 7 months of work from 172 contributors over 2,889 commits. It also fixes 10 security advisories, so please update. Full release notes: ghostty.org/docs/install/rel…
130
341
68
4,959
179,103
Pushkar N Kulkarni retweeted
Heaven is where the compile speed is from Go, the safety from Rust, the performance from C++, the libraries from Python, the macros from Lisp, the stability from Java, the types from Haskell, the ubiquity from JavaScript, and the error handling from Elm. Hell is where the compile speed is from Rust, the safety from C++, the performance from Python, the libraries from Lisp, the macros from Java, the stability from Haskell, the types from JavaScript, the ubiquity from Elm, and the error handling from Go.
53
116
14
1,171
50,782
Language wars are back. There is hope 🙏
If you care about performance, don't rewrite in Rust. Use Java instead? These folks took a popular open source word processor written in Rust and built the same in Java. It was faster, smaller, and used less memory! codenameone.com/blog/rewrite…
2
47
Pushkar N Kulkarni retweeted
Ubuntu 26.10 #StonkingStingray is now available. Read our announcement for more details: ubuntu.com/blog/canonical-re… #Ubuntu #Linux #OpenSource
16
94
10
861
26,511
Pushkar N Kulkarni retweeted
Java is also faster than Rust. I saw @axeng200's post and was curious about Java numbers. I asked Claude to do the migration, and even though the first version was faster, it was very far from idiomatic Java. I tried to close the gap, but some compromise had to be reached in order to make this work as a drop-in replacement. Also, some typical Java approaches were just slower. Probably both the Rust and Java implementations could probably do better in terms of performance and being closer to how idiomatic code is written by everyday developers Stack is Java + quarkus. Beside just Java migration I tested some new feature like AOT with training introduced in Java 28 (EA build). My main conclusion is - it's hard to beat a language that will adjust code to how your app is used. It's more about the JVM than Java. Repo: github.com/kgonia/once-campf…
When in doubt, just use C# and ASP.NET Core. It's blazing fast. .NET 11 RC2 is even faster. For me, it's the best overall major web framework - auth, config, logging, perf, modular middleware, DI, cross-plat, etc. But I didn't expect this:
7
9
3
76
10,571
Pushkar N Kulkarni retweeted
Replying to @OpenJDK
@OpenJDK The list of JDK 28 looks very intresting JEP 543 Structured Concurrency is now finalized (Status: Integrated) openjdk.org/projects/jdk/28/
11
2
46
1,780
".. the only true moat in existence was intelligence ..." Heard of the theory of multiple intelligences? The next few years, and I don't know how many, are going to be about other intelligences. Days of math/logic seem numbered for now.. but let's see.
people are starting to realize. there *are* no moats left. the only true moat in existence was intelligence, and now that's out of the equation.
1
21
I don't always agree with Sridhar Vembu, but when he said that "the future is about nature, nurture, culture and scripture", I went into denial first, but eventually ended up agreeing with it. Lets hope the transition is gradual🙏
5