🏡


  1. About KeePassXC’s Code Quality Control – KeePassXC
  2. How to build a remarkable command palette
  3. Leaderboard - compar:IA, the AI chatbot arena
  4. Who needs Graphviz when you can build it yourself? | SpiderMonkey JavaScript/WebAssembly Engine
  5. Automerge

  1. November 29, 2025
    1. 🔗 r/wiesbaden Vias RB10 rss

      Vias urgently need to be kicked off of the RB10 contract? When is this going to happen?

      submitted by /u/Electrical-You-6513
      [link] [comments]

    2. 🔗 YaLTeR/niri v25.11 release

      Two weeks ago, Cloudflare had a major outage that took down a good half of the internet. Their postmortem included a snippet of Rust code with an unwrap(), causing much internet discourse. Now it is my turn to release Rust software with a healthy dose of unwrap()s, assert!s, and checked arithmetic enabled in release builds.

      Niri is a scrollable-tiling Wayland compositor. Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize.

      Here are the improvements from the last release.

      Note

      Packagers: niri now depends on libdisplay-info 0.3. Most niri packages updated this dependency back in September using a patch—this patch is no longer necessary.

      Alt-Tab

      After multiple major iterations and a lot of work by @rustn00b, we have an Alt-Tab recent windows switcher!

      niri-alt-tab.mp4

      It's got live window previews, window titles that fade if they're too long, and supports windows blocked out from screencasts—they will draw as black rectangles with their titles hidden. Just like in GNOME, there's a small delay to drawing the interface, so that quickly hitting Alt-Tab will switch to the previous window with no visual disturbance.

      There are some interesting design differences compared to Alt-Tab in other desktops. On niri, I expect it's common to have multiple terminals open, so Alt-Tab must go by windows (not by apps), and the previews must be big enough for you to be able to pick the right window. So, instead of a panel showing all windows at once, we have a scrolling layout with a few large previews.

      Then, since niri is primarily tiling, you might frequently focus intermediate windows while navigating the workspace. Think pressing Super``→ a few times to reach some window towards the end, or moving the mouse across the screen with focus-follows- mouse. These intermediate windows shouldn't "pollute" the Alt-Tab list, so we have a small debounce delay before a focused window is marked as recent.

      Workspaces in niri can get long (especially if you forget how many terminals you open), so our Alt-Tab can scope windows by current workspace or by current output by pressing W or O.

      The default binds are Alt``Tab / Mod``Tab to switch across all windows, and Alt```` /Mod```` to switch between windows of the current application. Note that if you bound something else to those keys, your existing binds will take precedence.

      The recent windows configuration wiki page explains how to change these key bindings, as well as everything else: open delay, debounce, window preview size, and so on.

      Finally, the niri IPC now exposes the window focus_timestamp and an event stream event, so you can use the recent windows list in your own desktop components and scripts.

      Un/fullscreen animations

      The transitions for windows going to and from fullscreen are now fully animated. No more windows jumping and growing to fullscreen size in a single frame.

      The black backdrop fades in and out and grows if needed, and clip-to- geometry rounded corners smoothly transition between square and circular during this animation.

      fullscreen.anim.on.alacritty.mp4 fullscreen.anim.on.dialog.mp4

      Even if you run with animations disabled, you will see an improvement: windows will no longer jump up and down when un/fullscreening.

      fullscreen.anim.off.mp4

      True maximize

      One of the bigger changes in this release that required several weeks of work: niri now supports the true Wayland maximize. This is the normal "maximize button next to the X button" or "double-click on the titlebar" maximize.

      niri-maximize.mp4

      We historically didn't implement true Wayland maximize because it's very similar to, yet slightly different from, our full-width columns (the maximize-column bind). These preserve gaps, borders and struts, and can contain multiple windows. The true Wayland maximize, on the other hand, makes a single window occupy the entire working area, with no gaps or struts.

      Full-width column | Maximized window
      ---|---
      |

      After plenty of requests, and thinking about it, I reconsidered. Double-click- to-maximize and the maximize button are things that users (especially new users) expect to work; additionally, plenty of people had asked for variations of "maximize without borders and gaps".

      Ironically, after implementing true maximize, it has by far become my favorite window sizing mode. I keep windows true-maximized all the time: the browser, code editor, terminal ssh'd into a remote server.

      Since the maximize-column and open-maximized names are taken by full-width columns, the true-maximize action is called maximize-window-to-edges. This name reflects what it does—maximize to the entire working area, right up to the screen edges or exclusive layer-shell surfaces.

      Similarly to fullscreen, true maximize always puts the window into the scrolling layout (since otherwise it would easily obscure all windows below). Naturally, you can still scroll left and right from a maximized window.

      You can read more about fullscreen and maximize on the new wiki page.

      Drag windows horizontally to scroll

      On a trackpad, you can swipe left and right with three fingers to scroll the view. With a mouse, however, you have to either do a Super``MMB drag, which requires reaching for the keyboard, or switch windows via the Overview hot corner, which causes a lot of movement on screen.

      To make scrolling the view mouse-only less annoying, I added a new behavior directly inspired by PaperWM: dragging tiled windows by their titlebar horizontally will scroll the view instead of moving the window. To move the window, you can still drag vertically (or with Super, or in the Overview).

      niri-horizontal-scroll-mouse.mp4

      This also works on touchscreens, finally adding an easy way to scroll the view by touch. I opted to make the touchscreen gesture work even when holding Super, since with touch there's no concern of quickly moving windows across monitors, like you sometimes need to do with a mouse.

      niri-horizontal-scroll-touch.mp4

      As a bonus, tapping with a second finger while moving a window now switches it between floating and tiling, just like pressing the right mouse button does.

      Per-output and per-workspace layout config

      You can now put layout {} sections inside output {} and workspace "name" {} to override layout settings for specific outputs and named workspaces.

      output "SomeCompany VerticalMonitor 1234" {
          transform "90"
      
          // Layout config overrides just for this output.
          layout {
              default-column-width { proportion 1.0; }
      
              // ...any other setting.
          }
      }
      
      output "SomeCompany UltrawideMonitor 1234" {
          // Narrower proportions and more presets for an ultrawide.
          layout {
              default-column-width { proportion 0.25; }
      
              preset-column-widths {
                  proportion 0.2
                  proportion 0.25
                  proportion 0.5
                  proportion 0.75
                  proportion 0.8
              }
          }
      }
      
      workspace "aesthetic" {
          // Layout config overrides just for this named workspace.
          layout {
              gaps 32
      
              struts {
                  left 64
                  right 64
                  bottom 64
                  top 64
              }
      
              border {
                  on
                  width 4
              }
      
              // ...any other setting.
          }
      }
      

      While simple on the surface, this feature required a complete overhaul of niri's config loading and parsing to support merging settings from multiple definitions of the layout {} section. As it happens, this was an important prerequisite for...

      Config includes

      You can now include other files in your niri config.

      // Some settings...
      
      include "colors.kdl"
      
      // Some more settings...
      

      Included files have the same structure as the main config file. Settings from included files are merged with the settings from the main config. Includes are positional : they will override options set prior to them in the file.

      Includes are useful for splitting your config into manageable chunks, and they make it easy for third-party tools to robustly inject niri configuration. For example, my top-level niri config currently looks like this:

      // Configuration split into files by sections.
      include "debug.kdl"
      include "input.kdl"
      include "outputs.kdl"
      include "workspaces.kdl"
      include "layout.kdl"
      include "animations.kdl"
      include "misc.kdl"
      include "binds.kdl"
      
      // Autogenerated settings from DankMaterialShell (DMS).
      // https://github.com/AvengeMedia/DankMaterialShell
      include "dms/colors.kdl"
      include "dms/wpblur.kdl"
      
      // These includes are last, they will override settings from DMS.
      include "decorations.kdl"
      include "rules.kdl"
      

      See the config includes wiki page for more details, for instance how different config sections are merged together.

      DisplayLink support

      Thanks to @cmeissl and @scottmckendry, niri now supports monitors connected through DisplayLink docks. This is especially important for Asahi Macs, which currently don't support any other way of connecting external displays.

      Reduced screen blanking

      In this release, I finally adapted the logic from cosmic- comp to avoid screen blanking when possible. If your login manager / TTY resolution and refresh rate match the ones in niri, your screen should switch to niri without flickering to black. This works both when starting niri and when switching the TTY back to a running niri session.

      niri-flickerfree-login.mp4 niri-flickerfree-tty.mp4

      Even if the screen does blank on your setup (common for high refresh rate monitors where the TTY tends to use a 60 Hz mode, since that's usually the monitor-preferred one), niri should start up faster, as it will do just one modeset instead of two.

      Custom output modes

      @ToxicMushroom, building upon the initial work of @cmeissl, implemented custom modes and modelines in niri. When configuring an output mode, you can set custom=true to force the use of a given mode, even if it's not advertised by the monitor. Alternatively, you can provide a full custom modeline.

      Custom modes can be useful when the monitor's EDID doesn't advertise the right mode for some reason. For example, some monitors can use a lower refresh rate than any of the advertised modes, which can be useful for reduced power consumption.

      Keep in mind that custom modes are not guaranteed to work. Niri is asking the monitor to run in a mode that is not supported by the manufacturer. Trying a non-working mode will generally turn the monitor blank.

      Caution

      Custom modes may damage your monitor, especially if it's a CRT. Follow the maximum supported limits in your monitor's instructions.

      output "eDP-1" {
          // Custom modes. Caution: may damage your display.
          mode custom=true "1920x1080@100"
          // Or:
          // modeline 173.00  1920 2048 2248 2576  1080 1083 1088 1120 "-hsync" "+vsync"
      }
      

      Screen reader enhancements

      Thanks to an issue report, I found out that niri wasn't entirely correctly signalling keyboard modifiers to screen readers. This has been fixed, so combos like Orca + Ctrl + Space and Orca + Shift + A now work on niri.

      The new Alt-Tab switcher should also be a nice addition here; from what I understand, it's a common navigation method for screen reader users. I made it speak the selected window title, which, if I'm not mistaken, is the expected behavior. Watch with sound:

      niri-alt-tab-orca.mp4

      Other improvements in this release

      • @Fireye04 and @Aadniz made the hot corners configurable, including per-output.
      • @ilyx-me made it possible to run windowed niri --session in WSL.
      • @shaunren added the ignore-drm-device debug option that prevents niri from touching the given DRM device. This is useful for GPU passthrough when you need exclusive access to a certain device.
      • @Szybet made the calibration-matrix input setting work for touchscreens.
      • @nenikitov added proportional change support (+10%, -10%, 10%) to the move-floating-window action.
      • @iynaix added a --path argument to the screenshot, screenshot-window and screenshot-screen actions that sets the path where niri will write the screenshot.
      • @ThatOneCalculator added a new ScreenshotCaptured IPC event that fires whenever niri captures a screenshot, with the output file path.
      • The default config now includes play/stop/prev/next media key binds (thanks @anagram3k) and limits the volume adjustment to 100% (thanks @whiskeyPeak).
      • Niri will now retry adding a DRM device if it previously failed. This fixes some cases where plugging a monitor into a laptop's port connected to the discrete GPU didn't work.
      • Added support for the panel orientation DRM property, used to set the default screen orientation on some devices.
      • Niri no longer sets the max bpc DRM property. It didn't really do any help, at the same time it started hitting an annoying driver bug on some OLED panels. The keep-max-bpc-unchanged debug flag is now deprecated and does nothing.
      • Narrowed the interactive move insert hint in the overview between workspaces. When it was full-width, it gave a false impression that the window would be maximized on the new workspace.
      • @ArijanJ made it so when the cursor is hidden via hide-when-typing or hide-after-inactive-ms, it will still show up in the screenshot UI, letting you optionally include it in the screenshot.
      • Added laptop lid state monitoring through logind. This should fix any issues where niri didn't notice the laptop lid opening after a sleep cycle (due to libinput dropping the event), which then caused the laptop display to erroneously turn off upon connecting an external monitor.
      • Niri will now match the default-column-width to a preset width when opening a window. This fixes the first Mod``R press (switch preset column width) "doing nothing" for certain windows, like foot in constrain-to-terminal-grid sizing mode.
      • @miku4k changed niri to create the screenshot file directory with parent directories if they don't exist. This makes saving screenshots to disk work out of the box in more cases.
      • @elivance fixed parsing of the case-sensitive XF86ScreenSaver key. Niri parses keys case-insensitively. Unfortunately, there's a colliding XF86_Screensaver key (note the small s) which is not the key that you generally want. Now, for this specific key, niri also checks for a case-sensitive match to disambiguate.
      • @valpackett fixed niri building with the systemd feature on musl libc systems.
      • @feschber fixed discrete scroll event speed in the virtual-pointer protocol.
      • Fixed inability to override border/focus-ring/tab-indicator gradient with a plain color in window rules.
      • Fixed window rule border/focus-ring width not getting rounded to physical pixels, leading to small animation jank.
      • Fixed drag-and-drop cursor surface being slightly offset.
      • Fixed a small jump when releasing an interactively moved window in the overview.
      • Fixed the hot corner triggering during the view scrolling gesture.
      • Fixed incorrect alpha handling in the layout background-color.
      • Removed Herobrine.
      • Updated Smithay:
        • Improved correctness of window commit tracking.
        • Fixed Qt layer-shell popup grabs. Popup menus from LXQt panel and desktop now correctly grab the keyboard focus, and can be closed by clicking outside.
        • Fixed visual ordering of popups when several open at once, for example popup + tooltip in GTK 4, or some popups in xwayland-satellite.
        • Fixed importing DMA-BUFs from v4l2 devices.
        • Fixed a possible integer overflow in the damage shaper, which could cause niri crashes with some misbehaving clients.
        • Added a tablet pressure workaround that improves behavior for some applications like wine and MyPaint.
        • Added support for layer-shell v5 with its set_exclusive_edge() request, and changed layer surface ordering to consider exclusive zone surfaces first.

      Funding

      I work on niri in the spare time that I have from my university studies. If you like what I do, you can support my work on GitHub Sponsors. Big thanks to all current and past sponsors!

    3. 🔗 r/wiesbaden Neues Hobby gefällig? Spiel Tischrollenspiel! (Klub) rss
    4. 🔗 HexRaysSA/plugin-repository commits sync repo: +2 plugins, +2 releases rss
      sync repo: +2 plugins, +2 releases
      
      ## New plugins
      - [ReCopilot](https://github.com/XingTuLab/recopilot) (0.2)
      - [hrtng](https://github.com/KasperskyLab/hrtng) (3.7.74)
      
    5. 🔗 HexRaysSA/plugin-repository commits add known-repository XingTuLab/recopilot rss
      add known-repository XingTuLab/recopilot
      
  2. November 28, 2025
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2025-11-28 rss

      IDA Plugin Updates on 2025-11-28

      Activity:

    2. 🔗 r/reverseengineering Static Binary Analysis for ICS and IoT. Does It Change the Game? rss
    3. 🔗 News Minimalist 🐢 Trump plans to suspend immigration from "Third World Countries" + 10 more stories rss

      In the last 2 days ChatGPT read 61679 top news stories. After removing previously covered events, there are 11 articles with a significance score over 5.5.

      [6.0] Trump says he will suspend immigration from all "Third World Countries" — cbsnews.com(+736)

      Following a deadly shooting in Washington D.C., President Trump announced he will permanently suspend immigration from all "Third World Countries" to allow the U.S. system to recover.

      The declaration came after a National Guard member was killed by an Afghan national. Trump also stated he would terminate the status of millions of migrants and reexamine green cards from 19 countries.

      The detained suspect, who was admitted in 2021, had reportedly worked with the U.S. government in Afghanistan. A DHS official noted his asylum was granted during Trump's current presidency.

      [5.5] Measles outbreaks surge in previously eliminated regions, impacting Eastern Mediterranean and high-income countries —elpais.com(Spanish) (+16)

      The WHO reports one-quarter of 2024's major measles outbreaks occurred in countries previously free of the disease, as global vaccination rates fail to recover to pre-pandemic levels.

      In 2024, 59 countries experienced large outbreaks, with global cases rising 8% since 2019. The Eastern Mediterranean region saw an 86% increase, and cases in Europe grew by 47%, while Africa reported a significant decline.

      First-dose vaccination coverage has dropped to 84%. This month, the Americas lost its measles-free status due to sustained transmission in Canada, highlighting the challenge of stalled immunization progress and misinformation.

      Highly covered news with significance over 5.5

      [6.4] Brazil approves world's first single-dose dengue vaccine — ctvnews.ca (+15)

      [6.1] Monthly injection helps severe asthma patients reduce or stop steroid use — medicalxpress.com (+7)

      [6.1] EU countries agree on new rules to combat online child abuse — euronews.com (+9)

      [6.0] European Parliament proposes social media ban for under-16s — theguardian.com (+11)

      [5.9] Guinea-Bissau's army seizes power and removes president — zeit.de (German) (+117)

      [5.8] Europe boosts space budget to 22.1 billion euros for independence — ctvnews.ca (+5)

      [5.7] Taiwan puts $40 billion toward buying U.S. weapons and building a defense dome — latimes.com [$] (+17)

      [5.5] Meta bans third-party LLM chatbots in WhatsApp — gsmarena.com (+8)

      [5.5] IMF approves $8 billion aid package for Ukraine's economic reforms — lalibre.be (French) (+20)

      Thanks for reading!

      — Vadim


      You can customize this newsletter with premium.


      Powered by beehiiv

    4. 🔗 r/LocalLLaMA Ask me to run models rss

      Ask me to run models | Hi guys, I am currently in the process of upgrading my 4×3090 setup to 2×5090 + 1×RTX Pro 6000. As a result, I have all three kinds of cards in the rig temporarily, and I thought it would be a good idea to take some requests for models to run on my machine. Here is my current setup: - 1× RTX Pro 6000 Blackwell, power limited to 525 W - 2× RTX 5090, power limited to 500 W - 2× RTX 3090, power limited to 280 W - WRX80E (PCIe 4.0 x16) with 3975WX - 512 GB DDR4 RAM If you have any model that you want me to run with a specific setup (certain cards, parallelism methods, etc.), let me know in the comments. I’ll run them this weekend and reply with the tok/s! submitted by /u/monoidconcat
      [link] [comments]
      ---|---

    5. 🔗 r/LocalLLaMA unsloth/Qwen3-Next-80B-A3B-Instruct-GGUF · Hugging Face rss

      unsloth/Qwen3-Next-80B-A3B-Instruct-GGUF · Hugging Face | submitted by /u/WhaleFactory
      [link] [comments]
      ---|---

    6. 🔗 r/LocalLLaMA Model: Qwen3 Next by pwilkin · Pull Request #16095 · ggml-org/llama.cpp rss

      Model: Qwen3 Next by pwilkin · Pull Request #16095 · ggml-org/llama.cpp | and it's done submitted by /u/jacek2023
      [link] [comments]
      ---|---

    7. 🔗 r/LocalLLaMA Apparently Asus is working with Nvidia on a 784GB "Coherent" Memory desktop PC with 20 PFLOPS AI Performance rss

      Somehow the announcement went under the radar, but back in May, along side the Ascent GX10, Asus announced the ExpertCenter Pro ET900N G3, with GB300 Blackwell. They don't really say what's a "Coherent" memory, but my guess it's another term of saying unified memory like Apple and AMD.

      The announcement and the specs are very dry on details, but given the GB300, we might get a very decent memory bandwidth, without looking like a hideous frankestein monster.

      This might be r/Localllama wet dream. If they manage to price it well, and fix that memory bandwidth (that plagued Spark), they have my money.

      EDIT: As many pointed out in the comments, it's based on the Nvidia DGX Station, announced back in March, which is rumored to be 80k. ServeTheHome had a nice article about it back in March.
      The official specs:

      • 496GB LPDDR5X CPU memory at 396GB/s (Micron SOCAMM, so it seems that it will be modular not soldered!)

      • 288GB HBM3e GPU memory at 8TB/s.

      submitted by /u/waiting_for_zban
      [link] [comments]

    8. 🔗 matklad Size Matters rss

      Size Matters

      Nov 28, 2025

      TigerStyle is pretty strict about some arbitrary limits:

      …we enforce a *hard limit of 70 lines per function* …

      … hard limit all line lengths, without exception, to at most 100 columns …

      At the same time, we have a few quite large files, to the point of having to explicitly exclude them from our “no large binary blobs in the git history” policy: tidy.zig#L746.

      Just how large should you make your functions/classes/files? I have two answers here.

      Minimize The Cut

      The first principle is that the size is irrelevant. Instead, you want to keep related things together, and independent things apart. You don’t want to minimize just the size of individual components, or the number of dependencies between components. If you do, you end up with a degenerate solution where there’s just a single component, or every line of code is its own file.

      Instead, you want to optimize the ratio of module size to its interface. You need to divide the volume by the surface area. It’s not about the size, it’s about the shape!

      You should move a data structure to a separate file when it is self contained. It doesn’t matter if it is ten or ten thousand lines long. We have replica.zig, but also timestamp_range.zig.

      There’s a good visual metaphor when this rule is applied to functions. A function has inputs, the number of arguments. It also has outputs (usually there’s just one, but it can be a bundle of unrelated things). The number of inputs and the outputs together is the size of the interface. And the length of the body measures implementation. You want functions with bodies that are large relative to their interfaces. You need inverted hourglass shape. The converse is more helpful: hourglass functions/modules are a smell.

      This is a useful principle for picking dependencies as well. Dependencies are useful, they do the work! But often enough, if you take a dependency apart, you might notice that it doesn’t do anything meaningful by itself , and just repackages the actual logic (implemented in a transitive dependency) with a different interface. You want to cut through the glue, and get straight to the algorithmic core.

      Honor Physical Limits

      Against the logic stand physical limits. Your display is only so many pixels long, and you do want to fit the code in. Hence, the 100 columns limit, as that allows you to comfortably fit two copies of code side by side on a modern 16x9 display. Two is important — you must be able to compare two versions of code, you need to see caller and callee to make the invariants meet.

      Your vertical space is limited just as much as the horizontal space. There’s a sharp discontinuity between a function fitting on a screen, and just an ever so slightly larger function, when you can’t even immediately see the end of it. Hence, the Schelling point for the upper bound on function length: it’d be better to fit on a screen. Which is about 60-70 lines.

      But there’s no inherent limit on the file size or number of files. So those can grow. Just make sure to not limit yourself by linear search. You need to be able quickly open any file in a project by typing just a few letters of its name. Fuzzy search is not optional. Similarly, learn to navigate large files efficiently. Can you quickly get a list of all functions? Can you jump to a function by fuzzy name?

      Art Is Born Of Constraints

      Physical constraints are limiting, but they can be a helpful guide to better design. The size of the “cut” doesn’t directly depend on the number of lines in a module, but there often is a correlation. Are you sure that that 10k line file isn’t three different subsystems, fighting each other? As I mentioned in today’s other article, good interface design is not natural. The resulting interface shape is obvious, once you see it. The hard part is to realize that there is (or there could be) an interface in the first place. And, if you can’t quite fit your code into your field of view, maybe it’s time to step away from the screen and think?

      P.S.: Matters are plural, not a verb.

  3. November 27, 2025
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2025-11-27 rss

      IDA Plugin Updates on 2025-11-27

      New Releases:

      Activity:

    2. 🔗 maxgoedjen/secretive 3.0.4 release

      Bug fixes and updated translations for 3.0.

      Fixes

      • Fix bug where sometimes agent would hang and not respond. (#765)
      • Fix bug where ruby net/ssh would not work properly (#747)

      New in 3.0:

      A huge update! UI Refresh for macOS 26 Tahoe and Liquid Glass, Post-Quantum Key Support, Enhanced Security, and lots more!

      Features

      • Secretive's UI has been updated for macOS 26 Tahoe and Liquid Glass, and has just gotten a facelift overall (#606, #609, #612, #657, #697, #701, #703, #704, #707, #714)
      • Most key signing operations are now performed using CryptoKit (#628)
      • On macOS Tahoe, MLDSA-65 and MLDSA-87 keys are now supported (#631)
      • Secretive is now built with "Enhanced Security" configuration enabled. (#618)
      • SocketController has been rewritten for concurrency support and overall performance (#634)
      • Data payloads from agent are now parsed in isolated XPC service for improved security(#675, #681)
      • Update checks now happen in isolated XPC service for improved security (#675, #681).
      • New "Integrations" window for easier configuration (#657)
      • Keys can now have an optional "key attribution," which is commonly an email address (#628)
      • Add "Reveal in Finder" button to public key section (#669)
      • Key name is now returned in SSH agent identities response (#647)
      • Add help notice for post-reboot when keys sometimes fail to load (#671)
      • Secretive is now built with Swift 6 and concurrency checks enabled (#578, 617)
      • Secretive is now built with "String Memory Checking" enabled (#683)
      • More complete SSH agent protocol parsing (#673)
      • New localizations: Catalan(#558), Korean (#537), Japanese(#546), Polish (#585), Russian (#553)
      • Localized strings are now type-safe (#607)
      • GitHub attestation is enabled (#614, #616 #666, #667)

      Special Thanks

      Minimum macOS Version

      14.0.0

      Build

      https://github.com/maxgoedjen/secretive/actions/runs/19746755792

      Attestation

      https://github.com/maxgoedjen/secretive/attestations/14106317

      Full Changelog

      v3.0.3...v3.0.4

    3. 🔗 trailofbits/algo AlgoVPN 2.0.1 release

      A maintenance release focused on Ansible 12 compatibility, cloud provider fixes, and dependency updates.

      🔧 Bug Fixes

      Ansible 12 Compatibility

      • Fixed Ansible 12 boolean type checking (#14834) - Resolved deployments breaking due to stricter boolean handling
      • Fixed Ansible 12 double-templating issues (#14836) - Corrected Jinja2 spacing issues causing template failures
      • Fixed Ansible 12 compatibility issues (#14840) - General compatibility fixes for the Ansible 12.x series
      • Fixed AWS EC2 and Lightsail deployment failures (#14861) - Resolved Ansible 12-specific API issues
      • Fixed GCE deployment error (#14860) - Corrected JSON parsing issues with Ansible 12

      Cloud Provider Fixes

      • Fixed Vultr deployment issues (#14852, #14853) - Resolved regions string conversion bug and startup script JSON serialization
      • Fixed Scaleway deployment (#14848) - Replaced broken organization_info module
      • Fixed DigitalOcean API error handling (#14830) - Improved debugging for API errors
      • Fixed update-users not working (#14859) - Resolved user management failures

      Other Fixes

      • Added missing ansible.utils collection (#14880) - Fixed 'No filter named ipmath' errors for ansible-core users
      • Removed unused dependencies - Cleaned up pyopenssl and boto dependencies

      ⚠️ Breaking Changes

      • Removed Exoscale support (#14841) - CloudStack API has been deprecated by Exoscale

      🔄 Infrastructure Updates

      • Updated Hetzner server type (#14874) - Changed from deprecated cpx11 to cpx22
      • Added pre-commit hooks (#14831) - Comprehensive code quality checks
      • Switched Dependabot to uv (#14862) - Improved dependency management
      • Added Claude Code GitHub Actions (#14873) - Automated issue triage and PR reviews

      📦 Dependency Updates

      • ansible 11.9.0 → 12.2.0
      • boto3 1.40.3 → 1.41.5
      • azure-identity 1.23.1 → 1.25.1
      • azure-mgmt-compute 35.0.0 → 37.1.0
      • hcloud 2.5.4 → 2.11.1
      • google-auth 2.40.3 → 2.43.0
      • linode-api4 5.33.1 → 5.38.0
      • openstacksdk 4.6.0 → 4.8.0
      • pyyaml 6.0.2 → 6.0.3
      • requests 2.32.4 → 2.32.5

      📋 Full Changelog

      v2.0.0...v2.0.1

    4. 🔗 r/reverseengineering I built SentinelNav, a binary file visualization tool to help me understand file structures (and it became way more powerful than I expected) rss
    5. 🔗 r/wiesbaden Pendeln: Taunusstein - Rüsselsheim rss

      Guten Tag,

      hat hier jemand Erfahrung mit täglichem Pendeln von Taunusstein nach Rüsselsheim über die Bundesstraße 54? Ist dort mit viel Stau zu rechnen im Morgenverkehr?

      submitted by /u/CarefulRabbit684
      [link] [comments]

    6. 🔗 r/wiesbaden Gym in wiesbaden? rss

      What's a good gym in wiesbaden that has:

      Squat racks Bench presses Deadlift platform

      And allows me to get a day pass

      I will travel to wiesbaden for work and want to keep training

      submitted by /u/earl-the-grey
      [link] [comments]

    7. 🔗 r/LocalLLaMA Yes it is possible to uncensor gpt-oss-20b - ArliAI/gpt-oss-20b-Derestricted rss

      Yes it is possible to uncensor gpt-oss-20b - ArliAI/gpt-oss-20b-Derestricted | Original discussion on the initial Arli AI created GLM-4.5-Air-Derestricted model that was ablated using u/grimjim's new ablation method is here: The most objectively correct way to abliterate so far - ArliAI/GLM-4.5-Air-Derestricted (Note: Derestricted is a name given to models created by Arli AI using this method, but the method officially is just called Norm-Preserving Biprojected Abliteration by u/grimjim) Hey everyone, Owen here from Arli AI again. In my previous post, I got a lot of requests to attempt this derestricting on OpenAI's gpt-oss models as they are models that are intelligent but was infamous for being very...restricted. I thought that it would be a big challenge and be interesting to try and attempt as well, and so that was the next model I decided to try and derestrict next. The 120b version is more unwieldy to transfer around and load in/out of VRAM/RAM as I was experimenting, so I started with the 20b version first but I will get to the 120b next which should be super interesting. As for the 20b model here, it seems to have worked! The model now can respond to questions that OpenAI never would have approved of answering (lol!). It also seems to have cut down its wasteful looping around of deciding whether it can or cannot answer a question based on a non existent policy in it's reasoning, although this isn't completely removed yet. I suspect a more customized harmful/harmless dataset to specifically target this behavior might be useful for this, so that will be what I need to work on. Otherwise I think this is just an outright improved model over the original as it is much more useful now than it's original behavior. Where it would usually flag a lot of false positives and be absolutely useless in certain situations just because of "safety". In order to work on modifying the weights of the model, I also had to use a BF16 converted version to start with as the model as you all might know was released in MXFP4 format, but then attempting the ablation on the BF16 converted model seems to work well. I think that this proves that this new method of essentially "direction-based" abliteration is really flexible and works super well for probably any models. As for quants, I'm not one to worry about making GGUFs myself because I'm sure the GGUF makers will get to it pretty fast and do a better job than I can. Also, there are no FP8 or INT8 quants now because its pretty small and those that run FP8 or INT8 quants usually have a substantial GPU setup anyways. Try it out and have fun! This time it's really for r/LocalLLaMA because we don't even run this model on our Arli AI API service. submitted by /u/Arli_AI
      [link] [comments]
      ---|---

    8. 🔗 r/wiesbaden Konzerttickets für heute zu verschenken - Electric Callboy in Frankfurt rss

      Hallo,

      aufgrund von Krankheit kurzfristig zu verschenken. 2 Tickets für Electric Callboy heute Abend in Frankfurt. Abzuholen bei mir in Wiesbaden Stadtteil Westend.

      submitted by /u/Rote_Gazelle
      [link] [comments]

    9. 🔗 r/LocalLLaMA deepseek-ai/DeepSeek-Math-V2 · Hugging Face rss

      deepseek-ai/DeepSeek-Math-V2 · Hugging Face | submitted by /u/Dark_Fire_12
      [link] [comments]
      ---|---

    10. 🔗 r/reverseengineering Released Zero the Hero (0tH) – a Rust-based Mach-O analysis tool for macOS rss
    11. 🔗 r/LocalLLaMA Anthropic just showed how to make AI agents work on long projects without falling apart rss

      Most AI agents forget everything between sessions, which means they completely lose track of long tasks. Anthropic’s new article shows a surprisingly practical fix. Instead of giving an agent one giant goal like “build a web app,” they wrap it in a simple harness that forces structure, memory, and accountability.

      First, an initializer agent sets up the project. It creates a full feature list, marks everything as failing, initializes git, and writes a progress log. Then each later session uses a coding agent that reads the log and git history, picks exactly one unfinished feature, implements it, tests it, commits the changes, and updates the log. No guessing, no drift, no forgetting.

      The result is an AI that can stop, restart, and keep improving a project across many independent runs. It behaves more like a disciplined engineer than a clever autocomplete. It also shows that the real unlock for long-running agents may not be smarter models, but better scaffolding.

      Read the article here:
      https://www.anthropic.com/engineering/effective-harnesses-for-long-running- agents

      submitted by /u/purealgo
      [link] [comments]

    12. 🔗 r/LocalLLaMA Where did the Epstein emails dataset go rss

      Removed from Hugging Face (link)
      Removed from GitHub (link)
      Reddit account deleted (last post)

      submitted by /u/egomarker
      [link] [comments]

    13. 🔗 Console.dev newsletter Requestly rss

      Description: API client + interceptor.

      What we like: Issue requests to APIs with support for environments, variables, and API collections. Intercept requests and replace, modify, redirect. Create API mocks. Local first or set up collaboration over Git or cloud drives. Import from common alternatives e.g. Postman.

      What we dislike: Desktop app built in Electron.

    14. 🔗 Console.dev newsletter Prisma 7 rss

      Description: TypeScript ORM.

      What we like: Faster performance with a smaller ESM-first bundle. Drop in update from previous version. Generated client no longer buried in node_modules. Now supports mapped enums. New Prisma Studio UI visualizes database inspection.

      What we dislike: Using an ORM is probably a mistake for all but the smallest side project.

    15. 🔗 Ampcode News Opus 4.5: Better, Faster, Often Cheaper rss

      Claude Opus 4.5 is the new main model in Amp's smart mode, two days after we shipped it for you to try out.

      Only a week ago, we changed Amp's main model to Gemini 3 — a historic change, we said. It was the first time since Amp's creation that we switched away from Claude. Now we're switching again and you may ask: why? Why follow a historic change with another one, in a historically short amount of time?

      We love Gemini 3, but, once rolled out, its impressive highs came with lows. What we internally experienced as rough edges turned into some very frustrating behaviors for our users. Frustrating and costly.

      Then, not even a week later, Opus 4.5 comes out. Opus 4.5, on the other hand, seems as capable as Gemini 3. Its highs might not be as brilliant as Gemini 3's, but it also seems to do away with the lows. It seems more polished. It's faster, even.

      We're also pleasantly surprised by Opus's cost-efficiency. Yes, Opus tokens are more expensive, but it needs fewer tokens to do the job, makes fewer token-wasting mistakes, and needs less human intervention (which results in a higher cache hit rate, which means lower costs and latency).

      Sonnet 4.5 Gemini 3 Pro Opus 4.5
      Internal Evals 37.1% 53.7% 57.3%
      Avg. Thread Cost $2.75 $2.04 $2.05
         0-200k Tokens Only[^1] $1.48 $1.19 $2.05
      Off-the-Rails Cost[^2] 8.4% 17.8% 2.4%
      Speed (p50, preliminary) 2.4 min 4.3 min 3.5 min

      In words:

      • If you use long threads (200k+ tokens): Opus will be a lot cheaper. It’s currently limited to 200k tokens of context, which forces you to use small threads—our strong recommendation anyway, for both quality and cost. If you need to temporarily keep using Sonnet's long context, use the "amp.model.sonnet": true setting or --use-sonnet CLI flag.
      • If Sonnet or Gemini frequently struggles for you or has hit a capability ceiling: Opus will be far more capable and accurate, and often cheaper too (by avoiding wasted tokens).
      • If you loved Gemini 3 Pro: Opus will be ~40% more expensive but faster and more tolerant of ambiguous prompts. (This describes most of the Amp team, and we still find Opus worth it.)
      • If you were perfectly satisfied with Sonnet 4.5: Opus will be ~35% more expensive for the same task. The real win comes from getting outside your comfort zone and giving it harder tasks where Sonnet would struggle.

      Staying on the frontier means sometimes shipping despite issues — and sometimes shipping something better a week later.

  4. November 26, 2025
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2025-11-26 rss

      IDA Plugin Updates on 2025-11-26

      New Releases:

      Activity:

    2. 🔗 r/wiesbaden Taunusstein Fluglärm rss

      Guten Tag,

      hat hier jemand Wohnerfahrung in Taunusstein und kann eine Einschätzung zum Thema Fluglärm geben?

      submitted by /u/CarefulRabbit684
      [link] [comments]

    3. 🔗 r/LocalLLaMA Qwen3 Next almost ready in llama.cpp rss

      Qwen3 Next almost ready in llama.cpp | After over two months of work, it’s now approved and looks like it will be merged soon. Congratulations to u/ilintar for completing a big task! GGUFs https://huggingface.co/lefromage/Qwen3-Next-80B-A3B-Instruct-GGUF https://huggingface.co/ilintar/Qwen3-Next-80B-A3B-Instruct-GGUF For speeeeeed (on NVIDIA) you also need CUDA-optimized ops https://github.com/ggml-org/llama.cpp/pull/17457 - SOLVE_TRI https://github.com/ggml-org/llama.cpp/pull/16623 - CUMSUM and TRI submitted by /u/jacek2023
      [link] [comments]
      ---|---

    4. 🔗 r/reverseengineering Learn to Crawle Sites with Nuclei rss
    5. 🔗 News Minimalist 🐢 Scientists may have found dark matter + 11 more stories rss

      Hi! There’s a quick message for you after the news.


      In the last 5 days ChatGPT read 158847 top news stories. After removing previously covered events, there are 11 articles with a significance score over 5.5.

      [5.8] Scientists may have detected dark matter for the first time —space.com(+19)

      Scientists using NASA's Fermi telescope may have detected dark matter for the first time, observing a unique gamma-ray signature originating from the center of the Milky Way galaxy.

      The gamma-ray signal's shape and energy match predictions for annihilating dark matter particles known as WIMPs. Researchers say no other known astronomical phenomena can easily explain the observation.

      Led by a University of Tokyo team, the research was published Tuesday. The scientific community will require more data to confirm if this is the first direct observation of dark matter.

      [6.2] Ukraine and Russia near peace deal as Zelenskyy prepares for potential D.C. visit —cbsnews.com(+708)

      Ukraine has agreed to a U.S.-brokered peace deal to end its war with Russia, with officials stating that only minor details need to be finalized.

      Ukrainian President Volodymyr Zelenskyy may visit Washington this month to complete the agreement. The news comes as U.S. Army Secretary Dan Driscoll meets with Russian officials in Abu Dhabi to advance negotiations brokered by the Trump administration.

      The deal follows talks in Geneva based on a White House proposal. Past drafts reportedly included Ukrainian concessions on territory and its ambitions to join NATO in exchange for security guarantees.

      [5.5] GLP-1 drug withdrawal causes weight regain and health decline in most users, study finds —arstechnica.com(+9)

      A new study suggests that stopping GLP-1 drugs causes most users to regain weight and lose cardiovascular health benefits, indicating the medication may require long-term use.

      In a clinical trial published this week, 82% of participants who stopped taking tirzepatide regained significant weight. They also saw reversals in blood pressure, cholesterol, and blood sugar control improvements.

      Experts suggest rebranding these as "weight management" drugs for chronic disease. More research is needed on potential strategies for safely tapering off the medication, as the study involved an abrupt withdrawal.

      Highly covered news with significance over 5.5

      [6.6] Trump signs executive order for AI project called Genesis Mission to boost scientific discoveries — apnews.com (+26)

      [5.9] Canada, India, and Australia launch technology partnership — ctvnews.ca (+106)

      [6.4] Canadian-U.S. study makes breakthrough in aggressive brain tumour treatment — ctvnews.ca (+4)

      [5.9] 3-year-old boy gets world-first gene therapy to treat life-threatening Hunter syndrome — manchestereveningnews.co.uk (+8)

      [5.8] RSF declares unilateral ceasefire in Sudan, faces war crime accusations — yle.fi (Swedish) (+40)

      [5.7] President Trump begins designating Muslim Brotherhood branches in Lebanon, Jordan, and Egypt as terrorist organizations — letemps.ch (French) (+33)

      [5.7] Obesity drug semaglutide fails to slow Alzheimer's — bbc.co.uk (+26)

      [5.7] China launches global mining initiative with allied nations — livemint.com (+3)


      You may have noticed that the gap between these emails got longer. Today we had the longest break in almost a year - 5 days between emails.

      As a quick reminder - I only send an email once there’s enough significant news to warrant an update. If nothing significant happens - nothing gets sent.

      I haven’t made any changes to the selection process, and the scoring system works as before.

      But it seems we’ve caught an interesting pattern - by the end of the year the world slows down a bit. This happened last year too - in December we had the longest break between emails ever - 10 days.

      So enjoy the quiet. Everything is working as before, and you aren’t missing anything - there are just fewer things to miss.

      As always, thanks for reading!

      — Vadim


      You can track significant news in your country with premium.


      Powered by beehiiv

    6. 🔗 r/LocalLLaMA Open-source just beat humans at ARC-AGI (71.6%) for $0.02 per task - full code available rss

      German researchers achieved 71.6% on ARC-AGI (humans average 70%) using three clever techniques that run on a regular GPU for 2 cents per task. OpenAI's o3 gets 87% but costs $17 per task - that's 850x more expensive.

      The breakthrough uses: - Product of Experts (viewing puzzles from 16 angles) - Test-Time Training (model adapts to each puzzle) - Depth-First Search (efficient solution exploration)

      I made a technical breakdown video explaining exactly how it works and why this matters for democratizing AI: https://youtu.be/HEIklawkoMk

      The code is fully open-source: https://github.com/da-fr/Product-of-Experts- ARC-Paper

      Paper: https://arxiv.org/abs/2505.07859

      What's remarkable is they used Qwen-32B (not even the largest model) and achieved this with smart engineering rather than raw compute. You can literally run this tonight on your own machine.

      Has anyone here tried implementing this yet? I'm curious what other problems these techniques could solve.

      submitted by /u/Proof-Possibility-54
      [link] [comments]

    7. 🔗 HexRaysSA/plugin-repository commits sync repo: ~1 changed rss
      sync repo: ~1 changed
      
      ## Changes
      - [ida-settings-editor](https://github.com/williballenthin/ida-settings):
        - 1.0.2: archive contents changed, download URL changed
      
    8. 🔗 r/reverseengineering Quantum Silicon Core Loader v5.6 Update rss
    9. 🔗 Anton Zhiyanov Go proposal: Goroutine metrics rss

      Part of theAccepted! series, explaining the upcoming Go changes in simple terms.

      Export goroutine-related metrics from the Go runtime.

      Ver. 1.26 • Stdlib • Medium impact

      Summary

      New metrics in the runtime/metrics package give better insight into goroutine scheduling:

      • Total number of goroutines since the program started.
      • Number of goroutines in each state.
      • Number of active threads.

      Motivation

      Go's runtime/metrics package already provides a lot of runtime stats, but it doesn't include metrics for goroutine states or thread counts.

      Per-state goroutine metrics can be linked to common production issues. An increasing waiting count can show a lock contention problem. A high not-in- go count means goroutines are stuck in syscalls or cgo. A growing runnable backlog suggests the CPUs can't keep up with demand.

      Observability systems can track these counters to spot regressions, find scheduler bottlenecks, and send alerts when goroutine behavior changes from the usual patterns. Developers can use them to catch problems early without needing full traces.

      Description

      Add the following metrics to the runtime/metrics package:

      /sched/goroutines-created:goroutines
          Count of goroutines created since program start.
      
      /sched/goroutines/not-in-go:goroutines
          Approximate count of goroutines running
          or blocked in a system call or cgo call.
      
      /sched/goroutines/runnable:goroutines
          Approximate count of goroutines ready to execute,
          but not executing.
      
      /sched/goroutines/running:goroutines
          Approximate count of goroutines executing.
          Always less than or equal to /sched/gomaxprocs:threads.
      
      /sched/goroutines/waiting:goroutines
          Approximate count of goroutines waiting
          on a resource (I/O or sync primitives).
      
      /sched/threads/total:threads
          The current count of live threads
          that are owned by the Go runtime.
      

      The per-state numbers are not guaranteed to add up to the live goroutine count (/sched/goroutines:goroutines, available since Go 1.16).

      All metrics use uint64 counters.

      Example

      Start some goroutines and print the metrics after 100 ms of activity:

      func main() {
          go work() // omitted for brevity
          time.Sleep(100 * time.Millisecond)
      
          fmt.Println("Goroutine metrics:")
          printMetric("/sched/goroutines-created:goroutines", "Created")
          printMetric("/sched/goroutines:goroutines", "Live")
          printMetric("/sched/goroutines/not-in-go:goroutines", "Syscall/CGO")
          printMetric("/sched/goroutines/runnable:goroutines", "Runnable")
          printMetric("/sched/goroutines/running:goroutines", "Running")
          printMetric("/sched/goroutines/waiting:goroutines", "Waiting")
      
          fmt.Println("Thread metrics:")
          printMetric("/sched/gomaxprocs:threads", "Max")
          printMetric("/sched/threads/total:threads", "Live")
      }
      
      func printMetric(name string, descr string) {
          sample := []metrics.Sample{{Name: name}}
          metrics.Read(sample)
          // Assuming a uint64 value; don't do this in production.
          // Instead, check sample[0].Value.Kind and handle accordingly.
          fmt.Printf("  %s: %v\n", descr, sample[0].Value.Uint64())
      }
      
      
      
      Goroutine metrics:
        Created: 52
        Live: 12
        Syscall/CGO: 0
        Runnable: 0
        Running: 4
        Waiting: 8
      Thread metrics:
        Max: 8
        Live: 4
      

      No surprises here: we read the new metric values the same way as before — using metrics.Read.

      Further reading

      𝗣 15490 • 𝗖𝗟 690397, 690398, 690399

      P.S. If you are into goroutines, check out my interactive book on concurrency

      *[Medium impact]: Likely impact for an average Go developer

    10. 🔗 Cryptography & Security Newsletter The Legend of Kipp Hickman rss

      Working on the short news for this month’s newsletter, I came across Cypherpunks Hall of Fame, which has a long list of people who have contributed to encryption, privacy, and similar causes. Looking at the list, I couldn’t help but feel that it’s missing one very important person that made a significant contribution.

    11. 🔗 r/LocalLLaMA New Open-source text-to-image model from Alibaba is just below Seedream 4, Coming today or tomorrow! rss

      New Open-source text-to-image model from Alibaba is just below Seedream 4, Coming today or tomorrow! | submitted by /u/abdouhlili
      [link] [comments]
      ---|---

    12. 🔗 organicmaps/organicmaps 2025.11.26-5-android release

      • Wikipedia articles in Turkish, Japanese, and Chinese, type ?wiki to see them on the map
      • New setting to visually highlight downloaded regions on the map
      • Import Google Takeout's bookmarks and saved places via GeoJSON
      • OSM data as of November 23
      • Improved audio playback and sound interruptions
      • Fixed crashes in the Editor and when downloading maps
      • Brighter roads in dark vehicle mode
      • Improved bicycle routing in Austria
      …more at omaps.org/news

      See a detailed announce on our website when app updates are published in all stores.
      You can get automatic app updates from GitHub using Obtainium.

      sha256sum:

      ca07f7c992eef3adc11b5e95c4ed27709a2ae9ff10040eb2d3471aedc5026450  OrganicMaps-25112605-web-release.apk
      
    13. 🔗 Simon Willison Highlights from my appearance on the Data Renegades podcast with CL Kao and Dori Wilson rss

      I talked with CL Kao and Dori Wilson for an episode of their new Data Renegades podcast titled Data Journalism Unleashed with Simon Willison.

      I fed the transcript into Claude Opus 4.5 to extract this list of topics with timestamps and illustrative quotes. It did such a good job I'm using what it produced almost verbatim here - I tidied it up a tiny bit and added a bunch of supporting links.

      • What is data journalism and why it's the most interesting application of data analytics [02:03]

        "There's this whole field of data journalism, which is using data and databases to try and figure out stories about the world. It's effectively data analytics, but applied to the world of news gathering. And I think it's fascinating. I think it is the single most interesting way to apply this stuff because everything is in scope for a journalist."

      • The origin story of Django at a small Kansas newspaper [02:31]

        "We had a year's paid internship from university where we went to work for this local newspaper in Kansas with this chap Adrian Holovaty. And at the time we thought we were building a content management system."

      • Building the "Downloads Page" - a dynamic radio player of local bands [03:24]

        "Adrian built a feature of the site called the Downloads Page. And what it did is it said, okay, who are the bands playing at venues this week? And then we'll construct a little radio player of MP3s of music of bands who are playing in Lawrence in this week."

      • Working at The Guardian on data-driven reporting projects [04:44]

        "I just love that challenge of building tools that journalists can use to investigate stories and then that you can use to help tell those stories. Like if you give your audience a searchable database to back up the story that you're presenting, I just feel that's a great way of building more credibility in the reporting process."

      • Washington Post's opioid crisis data project and sharing with local newspapers [05:22]

        "Something the Washington Post did that I thought was extremely forward thinking is that they shared [the opioid files] with other newspapers. They said, 'Okay, we're a big national newspaper, but these stories are at a local level. So what can we do so that the local newspaper and different towns can dive into that data for us?'"

      • NICAR conference and the collaborative, non-competitive nature of data journalism [07:00]

        "It's all about trying to figure out what is the most value we can get out of this technology as an industry as a whole."

        NICAR 2026

      • ProPublica and the Baltimore Banner as examples of nonprofit newsrooms [09:02]

        "The Baltimore Banner are a nonprofit newsroom. They have a hundred employees now for the city of Baltimore. This is an enormously, it's a very healthy newsroom. They do amazing data reporting... And I believe they're almost breaking even on subscription revenue [correction, not yet], which is astonishing."

      • The "shower revelation" that led to Datasette - SQLite on serverless hosting [10:31]

        "It was literally a shower revelation. I was in the shower thinking about serverless and I thought, 'hang on a second. So you can't use Postgres on serverless hosting, but if it's a read-only database, could you use SQLite? Could you just take that data, bake it into a blob of a SQLite file, ship that as part of the application just as another asset, and then serve things on top of that?'"

      • Datasette's plugin ecosystem and the vision of solving data publishing [12:36]

        "In the past I've thought about it like how Pinterest solved scrapbooking and WordPress solved blogging, who's going to solve data like publishing tables full of data on the internet? So that was my original goal."

      • Unexpected Datasette use cases: Copenhagen electricity grid, Brooklyn Cemetery [13:59]

        "Somebody was doing research on the Brooklyn Cemetery and they got hold of the original paper files of who was buried in the Brooklyn Cemetery. They digitized those, loaded the results into Datasette and now it tells the story of immigration to New York."

      • Bellingcat using Datasette to investigate leaked Russian food delivery data [14:40]

        "It turns out the Russian FSB, their secret police, have an office that's not near any restaurants and they order food all the time. And so this database could tell you what nights were the FSB working late and what were the names and phone numbers of the FSB agents who ordered food... And I'm like, 'Wow, that's going to get me thrown out of a window.'"

        Bellingcat: Food Delivery Leak Unmasks Russian Security Agents

      • The frustration of open source: no feedback on how people use your software [16:14]

        "An endless frustration in open source is that you really don't get the feedback on what people are actually doing with it."

      • Open office hours on Fridays to learn how people use Datasette [16:49]

        "I have an open office hours Calendly, where the invitation is, if you use my software or want to use my software, grab 25 minutes to talk to me about it. And that's been a revelation. I've had hundreds of conversations in the past few years with people."

      • Data cleaning as the universal complaint - 95% of time spent cleaning [17:34]

        "I know every single person I talk to in data complains about the cleaning that everyone says, 'I spend 95% of my time cleaning the data and I hate it.'"

      • Version control problems in data teams - Python scripts on laptops without Git [17:43]

        "I used to work for a large company that had a whole separate data division and I learned at one point that they weren't using Git for their scripts. They had Python scripts, littering laptops left, right and center and lots of notebooks and very little version control, which upset me greatly."

      • The Carpentries organization teaching scientists Git and software fundamentals [18:12]

        "There's an organization called The Carpentries. Basically they teach scientists to use Git. Their entire thing is scientists are all writing code these days. Nobody ever sat them down and showed them how to use the UNIX terminal or Git or version control or write tests. We should do that."

      • Data documentation as an API contract problem [21:11]

        "A coworker of mine said, you do realize that this should be a documented API interface, right? Your data warehouse view of your project is something that you should be responsible for communicating to the rest of the organization and we weren't doing it."

      • The importance of "view source" on business reports [23:21]

        "If you show somebody a report, you need to have view source on those reports... somebody would say 25% of our users did this thing. And I'm thinking I need to see the query because I knew where all of the skeletons were buried and often that 25% was actually a 50%."

      • Fact-checking process for data reporting [24:16]

        "Their stories are fact checked, no story goes out the door without someone else fact checking it and without an editor approving it. And it's the same for data. If they do a piece of data reporting, a separate data reporter has to audit those numbers and maybe even produce those numbers themselves in a separate way before they're confident enough to publish them."

      • Queries as first-class citizens with version history and comments [27:16]

        "I think the queries themselves need to be first class citizens where like I want to see a library of queries that my team are using and each one I want to know who built it and when it was built. And I want to see how that's changed over time and be able to post comments on it."

      • Two types of documentation: official docs vs. temporal/timestamped notes [29:46]

        "There's another type of documentation which I call temporal documentation where effectively it's stuff where you say, 'Okay, it's Friday, the 31st of October and this worked.' But the timestamp is very prominent and if somebody looks that in six months time, there's no promise that it's still going to be valid to them."

      • Starting an internal blog without permission - instant credibility [30:24]

        "The key thing is you need to start one of these without having to ask permission first. You just one day start, you can do it in a Google Doc, right?... It gives you so much credibility really quickly because nobody else is doing it."

      • Building a search engine across seven documentation systems [31:35]

        "It turns out, once you get a search engine over the top, it's good documentation. You just have to know where to look for it. And if you are the person who builds the search engine, you secretly control the company."

      • The TIL (Today I Learned) blog approach - celebrating learning basics [33:05]

        "I've done TILs about 'for loops' in Bash, right? Because okay, everyone else knows how to do that. I didn't... It's a value statement where I'm saying that if you've been a professional software engineer for 25 years, you still don't know everything. You should still celebrate figuring out how to learn 'for loops' in Bash."

      • Coding agents like Claude Code and their unexpected general-purpose power [34:53]

        "They pretend to be programming tools but actually they're basically a sort of general agent because they can do anything that you can do by typing commands into a Unix shell, which is everything."

      • Skills for Claude - markdown files for census data, visualization, newsroom standards [36:16]

        "Imagine a markdown file for census data. Here's where to get census data from. Here's what all of the columns mean. Here's how to derive useful things from that. And then you have another skill for here's how to visualize things on a map using D3... At the Washington Post, our data standards are this and this and this."

        Claude Skills are awesome, maybe a bigger deal than MCP

      • The absurd 2025 reality: cutting-edge AI tools use 1980s terminal interfaces [38:22]

        "The terminal is now accessible to people who never learned the terminal before 'cause you don't have to remember all the commands because the LLM knows the commands for you. But isn't that fascinating that the cutting edge software right now is it's like 1980s style— I love that. It's not going to last. That's a current absurdity for 2025."

      • Cursor for data? Generic agent loops vs. data-specific IDEs [38:18]

        "More of a notebook interface makes a lot more sense than a Claude Code style terminal 'cause a Jupyter Notebook is effectively a terminal, it's just in your browser and it can show you charts."

      • Future of BI tools: prompt-driven, instant dashboard creation [39:54]

        "You can copy and paste a big chunk of JSON data from somewhere into [an LLM] and say build me a dashboard. And they do such a good job. Like they will just decide, oh this is a time element so we'll do a bar chart over time and these numbers feel big so we'll put those in a big green box."

      • Three exciting LLM applications: text-to-SQL, data extraction, data enrichment [43:06]

        "LLMs are stunningly good at outputting SQL queries. Especially if you give them extra metadata about the columns. Maybe a couple of example queries and stuff."

      • LLMs extracting structured data from scanned PDFs at 95-98% accuracy [43:36]

        "You file a freedom of information request and you get back horrifying scanned PDFs with slightly wonky angles and you have to get the data out of those. LLMs for a couple of years now have been so good at, 'here's a page of a police report, give me back JSON with the name of the arresting officer and the date of the incident and the description,' and they just do it."

      • Data enrichment: running cheap models in loops against thousands of records [44:36]

        "There's something really exciting about the cheaper models, Gemini Flash 2.5 Lite, things like that. Being able to run those in a loop against thousands of records feels very valuable to me as well."

        datasette-enrichments

      • Multimodal LLMs for images, audio transcription, and video processing [45:42]

        "At one point I calculated that using Google's least expensive model, if I wanted to generate captions for like 70,000 photographs in my personal photo library, it would cost me like $13 or something. Wildly inexpensive."

        Correction: with Gemini 1.5 Flash 8B it would cost 173.25 cents

      • First programming language: hated C++, loved PHP and Commodore 64 BASIC [46:54]

        "I hated C++ 'cause I got my parents to buy me a book on it when I was like 15 and I did not make any progress with Borland C++ compiler... Actually, my first program language was Commodore 64 BASIC. And I did love that. Like I tried to build a database in Commodore 64 BASIC back when I was like six years old or something."

      • Biggest production bug: crashing The Guardian's MPs expenses site with a progress bar [47:46]

        "I tweeted a screenshot of that progress bar and said, 'Hey, look, we have a progress bar.' And 30 seconds later the site crashed because I was using SQL queries to count all 17,000 documents just for this one progress bar."

        Crowdsourced document analysis and MP expenses

      • Favorite test dataset: San Francisco's tree list, updated several times a week [48:44]

        "There's 195,000 trees in this CSV file and it's got latitude and longitude and species and age when it was planted... and get this, it's updated several times a week... most working days, somebody at San Francisco City Hall updates their database of trees, and I can't figure out who."

      • Showrunning TV shows as a management model - transferring vision to lieutenants [50:07]

        "Your job is to transfer your vision into their heads so they can go and have the meetings with the props department and the set design and all of those kinds of things... I used to sniff at the idea of a vision when I was young and stupid. And now I'm like, no, the vision really is everything because if everyone understands the vision, they can make decisions you delegate to them."

        The Eleven Laws of Showrunning by Javier Grillo-Marxuach

      • Hot take: all executable code with business value must be in version control [52:21]

        "I think it's inexcusable to have executable code that has business value that is not in version control somewhere."

      • Hacker News automation: GitHub Actions scraping for notifications [52:45]

        "I've got a GitHub actions thing that runs a piece of software I wrote called shot-scraper that runs Playwright, that loads up a browser in GitHub actions to scrape that webpage and turn the results into JSON, which then get turned into an atom feed, which I subscribe to in NetNewsWire."

      • Dream project: whale detection camera with Gemini AI [53:47]

        "I want to point a camera at the ocean and take a snapshot every minute and feed it into Google Gemini or something and just say, is there a whale yes or no? That would be incredible. I want push notifications when there's a whale."

      • Favorite podcast: Mark Steel's in Town (hyperlocal British comedy) [54:23]

        "Every episode he goes to a small town in England and he does a comedy set in a local venue about the history of the town. And so he does very deep research... I love that sort of like hyperlocal, like comedy, that sort of British culture thing."

        Mark Steel's in Town available episodes

      • Favorite fiction genre: British wizards caught up in bureaucracy [55:06]

        "My favorite genre of fiction is British wizards who get caught up in bureaucracy... I just really like that contrast of like magical realism and very clearly researched government paperwork and filings."

        The Laundry Files, Rivers of London, The Rook

      Colophon

      I used a Claude Project for the initial analysis, pasting in the HTML of the transcript since that included <span data-timestamp="425"> elements. The project uses the following custom instructions

      You will be given a transcript of a podcast episode. Find the most interesting quotes in that transcript - quotes that best illustrate the overall themes, and quotes that introduce surprising ideas or express things in a particularly clear or engaging or spicy way. Answer just with those quotes - long quotes are fine.

      I then added a follow-up prompt saying:

      Now construct a bullet point list of key topics where each item includes the mm:ss in square braces at the end

      Then suggest a very comprehensive list of supporting links I could find

      Then one more follow-up:

      Add an illustrative quote to every one of those key topics you identified

      Here's the full Claude transcript of the analysis.

      You are only seeing the long-form articles from my blog. Subscribe to /atom/everything/ to get all of my posts, or take a look at my other subscription options.

    14. 🔗 tonsky.me How to get hired in 2025 rss

      It’s 2025 and you are applying for a software engineer position. They give you a test assignment. You complete it yourself, send it over, and get rejected. Why?

      Because it looked like AI.

      Unfortunately, it’s 2025, AI is spreading like glitter in a kindergarten, and it’s really easy to mistake hard human labor for soulless, uninspired machine slop.

      Following are the main red flags in test assignments that should be avoided :

      • The assignment was read and understood in full.
      • All parts are implemented.
      • Industry-standard tools and frameworks are used.
      • The code is split into small, readable functions.
      • Variables have descriptive names.
      • Complex parts have comments.
      • Errors are handled, error messages are easy to follow.
      • Source files are organized reasonably.
      • The web interface looks nice.
      • There are tests.

      Avoid these AI giveaways and spread the word!