🏡


to read (pdf)

  1. Letting AI Actively Manage Its Own Context | æ˜Žć€©çš„äčŒäș‘
  2. Garden Offices for Sale UK - Portable Space
  3. Cord: Coordinating Trees of AI Agents | June Kim
  4. Style tips for less experienced developers coding with AI · honnibal.dev
  5. Haskell for all: Beyond agentic coding

  1. March 13, 2026
    1. 🔗 News Minimalist 🐱 Nations release oil reserves to stabilize prices + 11 more stories rss

      In the last 3 days Gemini read 88464 top news stories. After removing previously covered events, there are 12 articles with a significance score over 5.5.

      [6.5] Germany and Austria join global effort to release oil reserves and stabilize prices —apnews.com(+1153)

      The International Energy Agency will release a record 400 million barrels of emergency oil reserves to counter energy market disruptions and price spikes caused by Middle East conflict.

      Member nations, including Germany and Austria, agreed to the release after Iran effectively halted oil traffic through the Strait of Hormuz. The move follows G7 discussions aimed at stabilizing global supplies as export volumes have plummeted below ten percent of prewar levels.

      Established after the 1974 Arab oil embargo, the IEA has authorized emergency releases five times previously. Officials emphasize that restoring transit through the Strait of Hormuz remains essential for long-term market stability.

      [5.8] China adopts an ethnic unity law that critics say will cement assimilation —newsday.com(+11)

      China has adopted a sweeping ethnic unity law that critics say will accelerate the assimilation of minority groups by mandating Mandarin in schools and further eroding their cultural rights.

      The legislation requires all organizations and citizens to foster a shared Chinese national identity. It essentially prohibits using minority languages for primary instruction during compulsory education, a move experts argue effectively dismantles China’s original constitutional promises of meaningful regional ethnic autonomy.

      The measure also establishes extraterritorial legal penalties for overseas individuals deemed to harm ethnic unity. Additionally, it encourages cross- migration to create embedded communities, which scholars warn could break up minority-heavy neighborhoods.

      [5.6] Artemis II mission targets early April for crewed lunar flyby —bbc.com(+67)

      NASA targets early April for its Artemis II mission, which will carry four astronauts around the Moon for the first time in over 50 years after resolving technical issues.

      Following repairs to a helium leak, officials plan to return the Space Launch System rocket to the Florida launchpad on March 19. The ten-day flight will carry three Americans and one Canadian to the lunar far side and back.

      Highly covered news with significance over 5.5

      [5.8] Gut bacteria linked to age-related memory loss in mice — nature.com (+13)

      [5.8] China approves launch of world first brain-computer interface device — independent.co.uk (+2)

      [5.7] Scientists revive activity in frozen mouse brains for the first time — nature.com (+2)

      [5.6] Big Tech backs Anthropic in fight against Trump administration — bbc.com (+27)

      [5.5] Google Maps integrates AI for personalized recommendations and immersive navigation — independent.co.uk (+44)

      [5.5] Climate change slows Earth's rotation, lengthening days — g1.globo.com (Portuguese) (+8)

      [5.5] AI use may be reducing stylistic diversity and human creativity, study finds — thetimes.com [$] (+4)

      [5.5] International police disrupt global cybercrime by sinkholing 45,000 IP addresses — bleepingcomputer.com (+5)

      [5.5] Astronomers witness colossal supernova explosion create one of the most magnetic stars in the universe for the first time — space.com (+9)

      Thanks for reading!

      — Vadim


      You can create your own significance-based RSS feed with premium.


      Powered by beehiiv

    2. 🔗 r/Leeds What do people from Leeds think of Manchester? Which city do you prefer? What does Manchester do right? What does Leeds do right? rss

      I visited Manchester the other day and was struck by how very ’city’ like it feels. Lots of hustle and bustle, massive buildings, trans etc.

      I think I prefer Leeds in most ways but it feels more like a very large town than a city.

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

    3. 🔗 r/Harrogate Considering moving to Woodlands rss

      Hi all Typical question about location appeal I've seen a lot, but hey any detail would be useful.

      We've lived in Oatlands renting for 5 years roughly and are looking to buy a house. There's a relatively surprisingly cheap house on Tyson place in Woodlands we're considering. The wife's parents are saying it's a dodgy area and not to consider it, but comparing the crime rate to our location there was only about 10 more reported crimes within a half mile per year. Most of it was anti social behaviour.

      We think it's objectively overblown but for anyone living close to that area specifically, does it feel a nice safe place to live?

      Thanks in advance

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

    4. 🔗 r/Yorkshire 'My language course helped me launch my life in the UK' rss

      'My language course helped me launch my life in the UK' | After arriving in Bradford from Iraq, Hareth Alshaban was looking for a way to improve his English and launch his new life in the UK. The 24-year-old's time on the English for Speakers of Other Languages (ESOL) course was so successful that he ended up performing the lead role in a production of Romeo and Juliet, and he is now a youth worker. ESOL programmes are aimed at those who have some grasp of English, but want to improve their speaking and listening skills, reading and writing, and understanding of regional accents. West Yorkshire Combined Authority is investing in training new ESOL teachers as a way to improve inclusion and social cohesion, and demand is increasing. Alshaban, who is originally from Palestine, said he travelled "unwillingly" through Syria, Jordan, and Turkey before landing in Cyprus, where he stayed for a couple of years before returning to Iraq. He remained there until 2018, but was then resettled in Bradford as part of a UN programme. Alshaban could speak English "quite well" when he arrived, but found there was a "bit of a struggle with understanding the accent" and "the culture was different from what I was used to". "I was of told it was one of the first steps to developing in this country," he said. "I didn't really understand why I had to take it to begin with as I already spoke English, but I honestly have taken quite a lot out of it." He ended up reading Shakespeare's works as part of the course and becoming a youth advisory board member for the Royal Shakespeare Company. He eventually graduated in politics and international relations from Liverpool Hope University. submitted by /u/coffeewalnut08
      [link] [comments]
      ---|---

    5. 🔗 r/LocalLLaMA I feel personally attacked rss
    6. 🔗 r/york Shambles sightings rss

      Shambles sightings | White chocolate shot submitted by /u/Ambivertpayyan
      [link] [comments]
      ---|---

    7. 🔗 r/york Location near hospital - gaming rss

      Hi

      I've ended up in a situation where I have to be near York hospital (around a 30 minute walk) and I have plenty of time to kill.

      I've got some games in my steam library I haven't gotten round to playing over the years

      Could anyone please suggest any cafés or other locations I could potentially sit for a few hours playing them?

      Thanks

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

    8. 🔗 r/wiesbaden Need help to understand how to sign contract for gas. rss

      Hey everyone,
      I'm new to Germany, I recently moved for work, and rented long term apartment starting from 01.02.2026.
      I knew I would need to sign contracts for gas and electricity, and I did with electricity without any problems, but with gas supplier I can't understand what is being asked from me.
      I selected vattenfall on check24, and entered all my data: address, name, and meter number.
      After that, I started receiving requests to specify my data, I kept entering same data as it remained the same. I knew it would somehow play differently if I provide Markt-ID, but I simply don't understand what is that and where to take it from, I only know that has to be on my invoice.
      After time, on 26.02.2026 vattenfall cancelled my application since I haven't provided the "right data", so I tried applying again on their website.
      It's now 13.03.2026 and I just received another letter from them, basically saying "We don't like your data, give us new data".

      I'm already using gas in this apartment for month and half, spent 120 cubic meters of gas already.
      I have already received invoices for electricity and paid it, but this situation with gas provider unsettled gives me anxiety.

      Can anyone suggest what should I do in this case, or at least what is expected from me? Somehow none of that troubles were faced with electricity or internet.

      Inb4, I did registered my address at citizens office.

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

    9. 🔗 ghostty-org/ghostty v1.3.1 release

      v1.3.1

    10. 🔗 r/york Pole dancing classes in York rss

      Hi all,

      I'm sure I remember hearing about pole dacing classes in York, but I can't seem to find any. A studio is called Pole Position, but their website is down and they don't repond on Facebook or by phone, so I'm guessing it must have closed down. Does anybody know of any active class in York?

      Thanks :)

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

    11. 🔗 r/york Is there any where in York that sells these potatoes in southern fried chicken costing? rss
    12. 🔗 r/wiesbaden Kommunalwahl am Sonntag rss

      Moin Leute,

      Public Service Announcement dass am Sonntag Kommunawahlen sind!

      Auch wenn es mĂŒhsam ist mit den ĂŒber 70 Stimmen, bitte nutzt diese Möglichkeit mitzubestimmen. Bei einer konservativen Wende im Rathaus droht die RĂŒckabwicklung vieler progressiver Fortschritte der vergangenen Jahre. Diese Wahl wird wirklich richtungsweisend fĂŒr die Stadtpolitik der nĂ€chsten Jahre.

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

    13. 🔗 r/reverseengineering Codex vs. Claude: Which One Handles Reverse Engineering Skills Better? rss
    14. 🔗 r/wiesbaden Neuer Hygienebericht online rss
    15. 🔗 r/Yorkshire Lost nuclear bunker rediscovered at Scarborough Castle rss
    16. 🔗 r/Leeds Survey on hair products and salon/barber usage rss

      Hi, I'm Callum, a student at University of Leeds and I am doing my dissertation on consumer influence for sustainability. This survey takes around 2 minutes to complete and is completely anonymous. You will be asked a few questions about your hair care product usage, professional hair services usage, if you've used 'eco-friendly' products before, and what would influence or disinfluence you from buying a hair product. If you have a spare 2 minutes from now til Monday, I'd really, really appreciate it :) x

      https://app.onlinesurveys.jisc.ac.uk/s/leeds/usage-of-hair-products-and-hair- salons

      submitted by /u/Critical-Business442
      [link] [comments]

    17. 🔗 r/york Gutter cleaning recommendations rss

      Does anyone have recommendations for local, trustworthy, gutter cleaning services in York?

      A lot of my searches for gutter cleaning services seem to end up on similar looking websites run by "big gutter". I searched this sub too, with little result.

      Thanks!

      submitted by /u/LIKE-AN-ANIMAL
      [link] [comments]

    18. 🔗 r/york Minster tower - no tix available? rss

      Does anyone know why I can’t book tickets to the minster tower today?

      Apparently they can’t be booked in advance either they have to be booked on the day?

      All a bit odd !

      Thanks !

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

    19. 🔗 vercel-labs/agent-browser v0.19.0 release

      Minor Changes

      • 56bb92b: ### New Features

        • Browserless.io provider -- Added browserless.io as a browser provider, supported in both Node.js and native daemon paths. Connect to remote Browserless instances with --provider browserless or AGENT_BROWSER_PROVIDER=browserless. Configurable via BROWSERLESS_API_KEY, BROWSERLESS_API_URL, and BROWSERLESS_BROWSER_TYPE environment variables. (#502, #746)
        • clipboard command -- Read from and write to the browser clipboard. Supports read, write <text>, copy (simulates Ctrl+C), and paste (simulates Ctrl+V) operations. (#749)
        • Screenshot output configuration -- New global flags --screenshot-dir, --screenshot-quality, --screenshot-format and corresponding AGENT_BROWSER_SCREENSHOT_DIR, AGENT_BROWSER_SCREENSHOT_QUALITY, AGENT_BROWSER_SCREENSHOT_FORMAT environment variables for persistent screenshot settings. (#749)

      Bug Fixes

      * Fixed `wait --text` not working in native daemon path ([#749](https://github.com/vercel-labs/agent-browser/pull/749))
      * Fixed `BrowserManager.navigate()` and package entry point ([#748](https://github.com/vercel-labs/agent-browser/pull/748))
      * Fixed extensions not being loaded from `config.json` ([#750](https://github.com/vercel-labs/agent-browser/pull/750))
      * Fixed scroll on page load ([#747](https://github.com/vercel-labs/agent-browser/pull/747))
      * Fixed HTML retrieval by using `browser.getLocator()` for selector operations ([#745](https://github.com/vercel-labs/agent-browser/pull/745))
      
    20. 🔗 r/Leeds Looking for info on my grandfather rss

      Morning all,

      Does anybody remember or hear of a black caribbean man who went by “little Peter” - full name Peter Joseph. He lived in Chapel Town & Harehills, then he moved on to Bradford & we think he then moved to London. He had atleast two children called Emma & Christopher ‘Chris’.

      He was born in the early 1940’s and he was from St Lucia, spoke a couple of different languages, French being one of them and he was in the merchant navy before coming to England and at some point he worked in a coal mine.

      My grandad had two distinctive gold teeth, he played in a steel drum band and they practiced every Thursday evening.

      My dad, Christopher, is apparently the double of my grandad Peter so I can provide a photo of my dad to jog people’s memories.

      Thank you all for reading!

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

    21. 🔗 r/LocalLLaMA Saw this somewhere on LinkedIn 😂 rss

      Saw this somewhere on LinkedIn 😂 | submitted by /u/Optimalutopic
      [link] [comments]
      ---|---

    22. 🔗 r/york York guys in their 20s rss

      Hi all, I’m 26 and been living in York for just over a year now with a couple. Love the city and made plenty of “friendly acquaintances” through sports clubs, but don’t necessarily feel like I’ve made many “friends” as many are in committed relationships and feel like they’re at a different life stage to me or have to always come as a package 😂

      I love any sports, especially run a lot and play a bit of football and badminton. I’m a big foodie and enjoy going out to restaurants and cooking myself. Go to Cineworld a fair bit and even though I don’t drink but enjoy a good pub quiz.

      Seen these posts in other places where people recommend the meet up app but I don’t think it’s as good as it used to be as doesn’t seem to be much on there for my age, and a lot of Facebook groups tend to be much older folk too.

      So if there are any guys in their 20s in a similar situation or know of good spots, please reach out!

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

    23. 🔗 r/reverseengineering Agentic Reverse Engineering + Binary Analysis with Kong rss
    24. 🔗 r/Harrogate Best Fish and Chips in Harrogate? rss

      I'm in Pannal for next few days and I'd love to have some local fish and chips.

      I know it's a controversial topic, but who makes the best fish and chips?

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

    25. 🔗 r/wiesbaden Geldbeutel verloren rss

      Geldbeutel verloren

      Hallo,

      Ich habe neinen Geldbeutel in der NĂ€he vom Lidl , Angelika -Thiels Strasse verloren . GrosszĂŒgige Belohnung!

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

    26. 🔗 r/Leeds Was looking on Bustimes.org as you do, here's a look at 1 of 5 (4 in service, one as spare) of the Volvo B8 MCV Evoras coming to GAWY X98/X99. Their debut on the route depends on when the CCTV cameras arrives & get fitted. rss

      If I remember correctly from the enthusiast page I'm on they'll have dealer spec which if you've been on the ones on Connexions Buses 11 you'll have the idea of what to expect. Compared to the ADL Enviro200MMCs currently in service these are bigger, higher capacity and better at hills which their more powerful Volvo 8 liter engine (ADL ones I think in those specific ones could be a 4.5 liter cummins engine)

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

    27. 🔗 r/reverseengineering Android Vulnerability Reproduction with OpenClaw rss
    28. 🔗 sacha chua :: living an awesome life Comparing pronunciation recordings across time rss

      : I added a column for Feb 20, the first session with the sentences. I also added keyboard shortcuts (1..n) for playing the audio of the row that the mouse is on.

      My French tutor gave me a list of sentences to help me practise pronunciation.

      Sentences
      • Maman peint un grand lapin blanc.
      • Un enfant intelligent mange lentement.
      • Le roi croit voir trois noix.
      • Le tĂ©moin voit le chemin loin.
      • Moins de foin au loin ce matin.
      • La laine beige sĂšche prĂšs du collĂšge.
      • La croquette sĂšche dans l'assiette.
      • Elle mĂšne son frĂšre Ă  l'hĂŽtel.
      • Le verre vert est trĂšs clair.
      • Elle aimait manger et rĂȘver.
      • Le jeu bleu me plaĂźt peu.
      • Ce neveu veut un jeu.
      • Le feu bleu est dangereux.
      • Le beurre fond dans le cƓur chaud.
      • Les fleurs de ma sƓur sentent bon.
      • Le hibou sait oĂč il va.
      • L'homme fort mord la pomme.
      • Le sombre col tombe.
      • L'auto saute au trottoir chaud.
      • Le chĂąteau d'en haut est beau.
      • Le cƓur seul pleure doucement.
      • Tu es sĂ»r du futur ?
      • Trois trĂšs grands trains traversent trois trop grandes rues.
      • Je veux deux feux bleus, mais la reine prĂ©fĂšre la laine beige.
      • Vincent prend un bain en chantant lentement.
      • La mule sĂ»re court plus vite que le loup fou.
      • Luc a bu du jus sous le pont oĂč coule la boue.
      • Le frĂšre de Robert prĂ©pare un rare rĂŽti rouge.
      • La mule court autour du mur oĂč hurle le loup.

      I can fuzzy-match these with the word timing JSON from WhisperX, like this.

      Extract all approximately matching phrases
      (subed-record-extract-all-approximately-matching-phrases
         sentences
         "/home/sacha/sync/recordings/2026-02-20-raphael.json"
         "/home/sacha/proj/french/analysis/virelangues/2026-02-20-raphael-script.vtt")
      

      Then I can use subed-record to manually tweak them, add notes, and so on. I end up with VTT files like 2026-03-06-raphael-script.vtt. I can assemble the snippets for a session into a single audio file, like this:

      I wanted to compare my attempts over time, so I wrote some code to use Org Mode and subed-record to build a table with little audio players that I can use both within Emacs and in the exported HTML. This collects just the last attempts for each sentence during a number of my sessions (both with the tutor and on my own). The score is from the Microsoft Azure pronunciation assessment service. I'm not entirely sure about its validity yet, but I thought I'd add it for fun. * indicates where I've added some notes from my tutor, which should be available as a title attribute on hover. (Someday I'll figure out a mobile-friendly way to do that.)

      Calling it with my sentences and files
      (my-lang-summarize-segments
       sentences
       '(("/home/sacha/proj/french/analysis/virelangues/2026-02-20-raphael-script.vtt" . "Feb 20")
       ;("~/sync/recordings/processed/2026-02-20-raphael-tongue-twisters.vtt" . "Feb 20")
              ("~/sync/recordings/processed/2026-02-22-virelangues-single.vtt" . "Feb 22")
              ("~/proj/french/recordings/2026-02-26-virelangues-script.vtt" . "Feb 26")
              ("~/proj/french/recordings/2026-02-27-virelangues-script.vtt" . "Feb 27")
              ("~/proj/french/recordings/2026-03-03-virelangues.vtt" . "Mar 3")
              ("/home/sacha/sync/recordings/processed/2026-03-03-raphael-reference-script.vtt" . "Mar 3")
              ("~/proj/french/analysis/virelangues/2026-03-06-raphael-script.vtt" . "Mar 6")
              ("~/proj/french/analysis/virelangues/2026-03-12-virelangues-script.vtt" . "Mar 12"))
       "clip"
       #'my-lang-subed-record-get-last-attempt
       #'my-lang-subed-record-cell-info
       t
       )
      
      Feb 20 Feb 22 Feb 26 Feb 27 Mar 3 Mar 3 Mar 6 Mar 12 Text
      ▶ 63* ▶ 96 ▶ 95 ▶ 94 ▶ 83 ▶ 83* ▶ 81* ▶ 88 Maman peint un grand lapin blanc.
      ▶ 88* ▶ 95 ▶ 99 ▶ 99 ▶ 96 ▶ 89* ▶ 92* ▶ 83 Un enfant intelligent mange lentement.
      ▶ 84* ▶ 97 ▶ 97 ▶ 96 ▶ 94 ▶ 95* ▶ 98* ▶ 99 Le roi croit voir trois noix.
      ▶ 80* ▶ 85 ▶ 77 ▶ 94 ▶ 97   ▶ 92* ▶ 88 Le tĂ©moin voit le chemin loin.
      ▶ 72* ▶ 97 ▶ 95 ▶ 77 ▶ 92   ▶ 89* ▶ 86 Moins de foin au loin ce matin.
      ▶ 79* ▶ 95 ▶ 76 ▶ 95 ▶ 76 ▶ 90* ▶ 90* ▶ 79 La laine beige sĂšche prĂšs du collĂšge.
      ▶ 67* ▶ 99 ▶ 85 ▶ 81 ▶ 85 ▶ 99* ▶ 97* ▶ 97 La croquette sĂšche dans l'assiette.
      ▶ 88* ▶ 99 ▶ 100 ▶ 100 ▶ 98 ▶ 100* ▶ 99* ▶ 100 Elle mĂšne son frĂšre Ă  l'hĂŽtel.
      ▶ 77* ▶ 87 ▶ 99 ▶ 93 ▶ 87   ▶ 87* ▶ 99 Le verre vert est trĂšs clair.
      ▶ 100* ▶ 94 ▶ 100 ▶ 99 ▶ 99 ▶ 99* ▶ 100* ▶ 100 Elle aimait manger et rĂȘver.
      ▶ 78* ▶ 98 ▶ 99 ▶ 98 ▶ 98 ▶ 92*   ▶ 88 Le jeu bleu me plaĂźt peu.
      ▶ 78* ▶ 97 ▶ 85 ▶ 95 ▶ 85     ▶ 85 Ce neveu veut un jeu.
      ▶ 73* ▶ 95 ▶ 95 ▶ 96 ▶ 97     ▶ 100 Le feu bleu est dangereux.
      ▶ 87* ▶ 76 ▶ 65 ▶ 97 ▶ 85 ▶ 74* ▶ 85* ▶ 96 Le beurre fond dans le cƓur chaud.
      ▶ 84* ▶ 43 ▶ 85 ▶ 79 ▶ 75     ▶ 98 Les fleurs de ma sƓur sentent bon.
      ▶ 70* ▶ 86 ▶ 79 ▶ 76 ▶ 87 ▶ 84   ▶ 98 Le hibou sait oĂč il va.
      ▶ 92* ▶ 95 ▶ 86 ▶ 92 ▶ 98 ▶ 99*   ▶ 94 L'homme fort mord la pomme.
      ▶ 83* ▶ 73 ▶ 69 ▶ 81 ▶ 60 ▶ 96*   ▶ 81 Le sombre col tombe.
      ▶ 39* ▶ 49 ▶ 69 ▶ 56 ▶ 69 ▶ 96*   ▶ 94 L'auto saute au trottoir chaud.
      ▶ 82 ▶ 84 ▶ 85 ▶ 98 ▶ 94 ▶ 96*   ▶ 99 Le chĂąteau d'en haut est beau.
      ▶ 89 ▶ 85 ▶ 75 ▶ 91 ▶ 52 ▶ 75* ▶ 70* ▶ 98 Le cƓur seul pleure doucement.
      ▶ 98*   ▶ 99 ▶ 99 ▶ 95 ▶ 93* ▶ 97* ▶ 99 Tu es sĂ»r du futur ?
          ▶ 97 ▶ 93 ▶ 92 ▶ 85*   ▶ 90 Trois trĂšs grands trains traversent trois trop grandes rues.
          ▶ 94 ▶ 85 ▶ 97 ▶ 82*   ▶ 92 Je veux deux feux bleus, mais la reine prĂ©fĂšre la laine beige.
          ▶ 91 ▶ 79 ▶ 87 ▶ 82*   ▶ 94 Vincent prend un bain en chantant lentement.
          ▶ 89 ▶ 91 ▶ 91 ▶ 84*   ▶ 92 La mule sĂ»re court plus vite que le loup fou.
          ▶ 91 ▶ 93 ▶ 93 ▶ 92*   ▶ 96 Luc a bu du jus sous le pont oĂč coule la boue.
          ▶ 88 ▶ 71 ▶ 94 ▶ 86*   ▶ 92 Le frĂšre de Robert prĂ©pare un rare rĂŽti rouge.
          ▶ 81 ▶ 84 ▶ 88 ▶ 67*   ▶ 94 La mule court autour du mur oĂč hurle le loup.

      Pronunciation still feels a bit hit or miss. Sometimes I say a sentence and my tutor says "Oui," and then I say it again and he says "Non, non…" The /ʁ/ and /y/ sounds are hard.

      I like seeing these compact links in an Org Mode table and being able to play them, thanks to my custom audio link type. It should be pretty easy to write a function that lets me use a keyboard shortcut to play the audio (maybe using the keys 1-9?) so that I can bounce between them for comparison.

      If I screen-share from Google Chrome, I can share the tab with audio, so my tutor can listen to things at the same time. Could be fun to compare attempts so that I can try to hear the differences better. Hmm, actually, let's try adding keyboard shortcuts that let me use 1-8 to play the current table row. Mwahahaha! It works!

      Code for summarizing the segments
      (defun my-lang-subed-record-cell-info (item file-index file sub)
        (let* ((sound-file (expand-file-name (format "%s-%s-%d.opus"
                                                     prefix
                                                     (my-transform-html-slugify item)
                                                     (1+ file-index))))
               (score (car (split-string
                            (or
                             (subed-record-get-directive "#+SCORE" (elt sub 4)) "")
                            ";")))
               (note (replace-regexp-in-string
                      (concat "^" (regexp-quote (cdr file))
                              "\\(: \\)?")
                      ""
                      (or (subed-record-get-directive "#+NOTE" (elt sub 4)) ""))))
          (when (or always-create (not (file-exists-p sound-file)))
            (subed-record-extract-audio-for-current-subtitle-to-file sound-file sub))
          (org-link-make-string
           (concat "audio:" sound-file "?icon=t"
                   (format "&source=%s&source-start=%s" (car file) (elt sub 1))
                   (format "&title=%s"
                           (url-hexify-string
                            (if (string= note "")
                                (cdr file)
                              (concat (cdr file) ": " note)))))
           (concat
            "▶️"
            (if score (format " %s" score) "")
            (if (string= note "") "" "*")))))
      
      (defun my-lang-subed-record-get-last-attempt (item file)
        "Return the last subtitle matching ITEM in FILE."
        (car
         (last
          (seq-remove
           (lambda (o) (string-match "#\\+SKIP" (or (elt o 4) "")))
           (learn-lang-subed-record-collect-matching-subtitles
            item
            (list file)
            nil
            nil
            'my-subed-simplify)))))
      
      (defun my-lang-summarize-segments (items files prefix attempt-fn cell-fn &optional always-create)
        (cons
         (append
          (seq-map 'cdr files)
          (list "Text"))
         (seq-map
          (lambda (item)
            (append
             (seq-map-indexed
              (lambda (file file-index)
                (let* ((sub (funcall attempt-fn item file)))
                  (if sub
                      (funcall cell-fn item file-index file sub)
                    "")))
              files)
             (list item)))
          items)))
      

      Some code for doing this stuff is in sachac/learn-lang on Codeberg.

      You can e-mail me at sacha@sachachua.com.

    29. 🔗 Rust Blog Call for Testing: Build Dir Layout v2 rss

      We would welcome people to try and report issues with the nightly-only cargo -Zbuild-dir-new-layout. While the layout of the build dir is internal-only, many projects need to rely on the unspecified details due to missing features within Cargo. While we've performed a crater run, that won't cover everything and we need help identifying tools and process that rely on the details, reporting issues to these projects so they can update to the new layout or support them both.

      How to test this?

      With at least nightly 2026-03-10, run your tests, release processes, and anything else that may touch build-dir/target-dir with the -Zbuild-dir-new- layout flag.

      For example:

      $ cargo test -Zbuild-dir-new-layout
      

      Note: if you see failures, the problem may not be isolated to just -Zbuild- dir-new-layout. With Cargo 1.91, users can separate where to store intermediate build artifacts (build-dir) and final artifacts (still in target-dir). You can verify this by running with only CARGO_BUILD_BUILD_DIR=build set. We are evaluating changing the default for build-dir in #16147.

      Outcomes may include:

      Known failure modes:

      • Inferring a [[bin]]s path from a [[test]]s path:
      • Build scripts looking up target-dir from their binary or OUT_DIR: see Issue #13663
        • Update current workarounds to support the new layout
      • Looking up user-requested artifacts from rustc, see Issue #13672
        • Update current workarounds to support the new layout

      Library support status as of publish time:

      What is not changing?

      The layout of final artifacts within target dir.

      Nesting of build artifacts under the profile and the target tuple, if specified.

      What is changing?

      We are switching from organizing by content type to scoping the content by the package name and a hash of the build unit and its inputs.

      Here is an example of the current layout, assuming you have a package named lib and a package named bin, and both have a build script:

      build-dir/
      ├── CACHEDIR.TAG
      └── debug/
          ├── .cargo-lock                       # file lock protecting access to this location
          ├── .fingerprint/                     # build cache tracking
          │   ├── bin-[BUILD_SCRIPT_RUN_HASH]/*
          │   ├── bin-[BUILD_SCRIPT_BIN_HASH]/*
          │   ├── bin-[HASH]/*
          │   ├── lib-[BUILD_SCRIPT_RUN_HASH]/*
          │   ├── lib-[BUILD_SCRIPT_BIN_HASH]/*
          │   └── lib-[HASH]/*
          ├── build/
          │    ├── bin-[BIN_HASH]/*             # build script binary
          │    ├── bin-[RUN_HASH]/out/          # build script run OUT_DIR
          │    ├── bin-[RUN_HASH]/*             # build script run cache
          │    ├── lib-[BIN_HASH]/*             # build script binary
          │    ├── lib-[RUN_HASH]/out/          # build script run OUT_DIR
          │    └── lib-[RUN_HASH]/*             # build script run cache
          ├── deps/
          │   ├── bin-[HASH]*                   # binary and debug information
          │   ├── lib-[HASH]*                   # library and debug information
          │   └── liblib-[HASH]*                # library and debug information
          ├── examples/                         # unused in this case
          └── incremental/...                   # managed by rustc
      

      The proposed layout:

      build-dir/
      ├── CACHEDIR.TAG
      └── debug/
          ├── .cargo-lock                       # file lock protecting access to this location
          ├── build/
          │   ├── bin/                          # package name
          │   │   ├── [BUILD_SCRIPT_BIN_HASH]/
          │   │   │   ├── fingerprint/*         # build cache tracking
          │   │   │   └── out/*                 # build script binary
          │   │   ├── [BUILD_SCRIPT_RUN_HASH]/
          │   │   │   ├── fingerprint/*         # build cache tracking
          │   │   │   ├── out/*                 # build script run OUT_DIR
          │   │   │   └── run/*                 # build script run cache
          │   │   └── [HASH]/
          │   │       ├── fingerprint/*         # build cache tracking
          │   │       └── out/*                 # binary and debug information
          │   └── lib/                          # package name
          │       ├── [BUILD_SCRIPT_BIN_HASH]/
          │       │   ├── fingerprint/*         # build cache tracking
          │       │   └── out/*                 # build script binary
          │       ├── [BUILD_SCRIPT_RUN_HASH]/
          │       │   ├── fingerprint/*         # build cache tracking
          │       │   ├── out/*                 # build script run OUT_DIR
          │       │   └── run/*                 # build script run cache
          │       └── [HASH]/
          │           ├── fingerprint/*         # build cache tracking
          │           └── out/*                 # library and debug information
          └── incremental/...                   # managed by rustc
      

      For more information on these Cargo internals, see the mod layout documentation.

      Why is this being done?

      ranger-ross has worked tirelessly on this as a stepping stone to cross-workspace caching which will be easier when we can track each cacheable unit in a self-contained directory.

      This also unblocks work on:

      Along the way, we found this helps with:

      While the Cargo team does not officially endorse sharing a build-dir across workspaces, that last item should reduce the chance of encountering problems for those who choose to.

      Future work

      We will use the experience of this layout change to help guide how and when to perform any future layout changes, including:

      • Efforts to reduce path lengths to reduce risks for errors for developers on Windows
      • Experimenting with moving artifacts out of the --profile and --target directories, allowing sharing of more artifacts where possible

      In addition to narrowing scope, we did not do all of the layout changes now because some are blocked on the lock change which is blocked on this layout change.

      We would also like to work to decouple projects from the unspecified details of build-dir.

  2. March 12, 2026
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2026-03-12 rss

      IDA Plugin Updates on 2026-03-12

      New Releases:

      Activity:

      • augur
      • binlex
        • 19b79a61: fix windows ci/cd warnings for node
        • fdadd375: simplify vex implementation
        • 5425c6cd: cleanup
        • 836948c2: simplify ratios, not needed
        • f035159f: simplify disassemblers api, and bump python binding lib
        • 0ac42a9a: cfg api change absorb to merge, makes it eaiser to understand
        • 957657f3: fix edges and rip-relative jumps
        • 1a895dff: fix disassembling bug queuing
        • 5a0fd3a9: performance
        • bd504b69: hash compare restore
      • binsync
        • e085ac93: Add the test cases that were unable to be added in the original serve

        • e3bf4a15: fix: enhance robustness of gui launch (#507)
      • btrace
        • da12f7b9: Arch-specific handlers compilation
      • capa
        • f1800b5e: Sync capa rules submodule
        • 43f556ca: Sync capa rules submodule
        • 5f8c06c6: Sync capa rules submodule
        • ceaa3b6d: webui: include feature type in global search (match, regex, api, 
) (

      • haruspex
      • ida-dbimporter
        • 9e0ace33: add pypi package info to README
        • 44406c14: Merge pre-release fixes (#6) for 0.0.2
      • IDA-MCP
        • 51e9b8ef: Add idapython skill and document WSL support
        • 3afe2e5c: Refactor MCP runtime and proxy structure
        • e24456c5: Add installer and refresh docs
        • f9ab4a87: Fix MCP lifecycle, resources, and type handling
      • idasql
        • e6b41cab: docs: clarify pseudocode comment anchor selection
        • 366385a6: chore: prepare v0.0.11 release
        • 95451f42: Merge remote-tracking branch 'origin/main' into work
        • da827db6: fix: avoid replaying stale funcs prototype during rename
        • 94668b1f: Merge pull request #24 from allthingsida/work
        • c0eac083: fix: simplify RPATH to match SDK GNU make convention
        • 53eb0704: fix: remove GIT_SHALLOW for pinned fastmcpp commit hash
        • 46a27c14: idasql: improve pseudocode comment handling and entity search
      • python-elpida_core.py
        • ac9d7d3d: fix: merge-safe S3 push + add regenerate_d15_index to Docker
        • 9bd9ea55: update System tab version header to v3.0.0
        • 2c382298: birth living axiom agents: 12 axioms that discuss, debate, vote, and act
        • 3b545d41: close vocabulary gaps: align all axiom/domain names to canonical config
        • 6e57821d: Unfreeze elpida_core.py — Agent of Agents (v2.0.0)
        • 8a138119: feat: A11 — World (7/5 Septimal Tritone) codified
      • rhabdomancer
    2. 🔗 r/LocalLLaMA OmniCoder-9B | 9B coding agent fine-tuned on 425K agentic trajectories rss

      Overview

      OmniCoder-9B is a 9-billion parameter coding agent model built by Tesslate, fine-tuned on top of Qwen3.5-9B's hybrid architecture (Gated Delta Networks interleaved with standard attention). It was trained on 425,000+ curated agentic coding trajectories spanning real-world software engineering tasks, tool use, terminal operations, and multi-step reasoning.

      The training data was specifically built from Claude Opus 4.6 agentic and coding reasoning traces , targeting scaffolding patterns from Claude Code, OpenCode, Codex, and Droid. The dataset includes successful trajectories from models like Claude Opus 4.6, GPT-5.4, GPT-5.3-Codex, and Gemini 3.1 Pro.

      The model shows strong agentic behavior: it recovers from errors (read-before- write), responds to LSP diagnostics, and uses proper edit diffs instead of full rewrites. These patterns were learned directly from the real-world agent trajectories it was trained on.

      Key Features

      • Trained on Frontier Agent Traces : Built from Claude Opus 4.6, GPT-5.3-Codex, GPT-5.4, and Gemini 3.1 Pro agentic coding trajectories across Claude Code, OpenCode, Codex, and Droid scaffolding
      • Hybrid Architecture : Inherits Qwen3.5's Gated Delta Networks interleaved with standard attention for efficient long-context processing
      • 262K Native Context : Full 262,144 token context window, extensible to 1M+
      • Error Recovery : Learns read-before-write patterns, responds to LSP diagnostics, and applies minimal edit diffs instead of full rewrites
      • Thinking Mode : Supports <think>...</think> reasoning chains for complex problem decomposition
      • Apache 2.0 : Fully open weights, no restrictions

      https://huggingface.co/Tesslate/OmniCoder-9B

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

    3. 🔗 r/york Living on bishopthorpe road rss

      My partner and I are currently looking to move house. Around bishopthorpe road has always been an option however, realistically we would not be getting much for our money and therefore would need to compromise on space etc to live there.

      Does anyone have experience on living there and is it worth the premium price?

      Thanks!

      submitted by /u/Bubbly-Biscotti9744
      [link] [comments]

    4. 🔗 r/york People of York rss
    5. 🔗 vercel-labs/agent-browser v0.18.0 release

      Minor Changes 942b8cd: ### New Features inspect command - Opens Chrome DevTools for the active page by launching a local proxy server that forwards the DevTools frontend to the browser's CDP WebSocket. Commands continue to work while DevTools is open. Implemented in both Node.js and native paths. (#736) get cdp-url subcommand - Retrieve the Chrome DevTools Protocol WebSocket URL for the active page, useful for external debugging tools. (#736) Native screenshot annotate - The --annotate flag for screenshots now works in the native Rust daemon, bringing parity with the Node.js path. (#706) Improvements * **KERNEL_API_KEY now optional** \- External credential injection no longer requires `KERNEL_API_KEY` to be set, making it easier to use Kernel with pre-configured environments. () * **Browserbase simplified** \- Removed the `BROWSERBASE_PROJECT_ID` requirement, reducing setup friction for Browserbase users. ([#625](https://github.com/vercel-labs/agent-browser/pull/625)) Bug Fixes

      * Fixed Browserbase API using incorrect endpoint to release sessions ([#707](https://github.com/vercel-labs/agent-browser/pull/707))
      * Fixed CDP connect paths using hardcoded 10s timeout instead of `getDefaultTimeout()` ([#704](https://github.com/vercel-labs/agent-browser/pull/704))
      * Fixed lone Unicode surrogates causing errors by sanitizing with `toWellFormed()` ([#720](https://github.com/vercel-labs/agent-browser/pull/720))
      * Fixed CDP connection failure on IPv6-first systems ([#717](https://github.com/vercel-labs/agent-browser/pull/717))
      * Fixed recordings not inheriting the current viewport settings ([#718](https://github.com/vercel-labs/agent-browser/pull/718))
      
    6. 🔗 HexRaysSA/plugin-repository commits sync repo: +1 plugin, +3 releases, ~3 changed rss
      sync repo: +1 plugin, +3 releases, ~3 changed
      
      ## New plugins
      - [HashDB](https://github.com/OALabs/hashdb-ida) (1.10.0)
      
      ## New releases
      - [DBImporter](https://github.com/HexRaysSA/ida-dbimporter): 0.0.2
      - [Suture](https://github.com/libtero/suture): 1.2.0
      
      ## Changes
      - [bindiff](https://github.com/HexRays-plugin-contributions/bindiff):
        - 8.0.0: download URL changed
      - [binexport](https://github.com/HexRays-plugin-contributions/binexport):
        - 12.0.0: download URL changed
      - [xray](https://github.com/HexRays-plugin-contributions/xray):
        - 2025.9.24: download URL changed
      
    7. 🔗 r/reverseengineering Reverse Engineering the undocumented ResetEngine.dll: A C++ tool to programmatically trigger a silent Windows Factory Reset (PBR) bypassing SystemSettings UI. rss
    8. 🔗 r/Yorkshire The Life of Chuck rss

      The Life of Chuck | Just started watching this on Netflix.... this is what they think North Yorkshire looks like? submitted by /u/Neffwood
      [link] [comments]
      ---|---

    9. 🔗 r/reverseengineering Near complete hypervisor, driver, and system binary analysis for the Xbox Series consoles rss
    10. 🔗 r/york Yorks Royal Chamberpot rss

      Yorks Royal Chamberpot | Charles Il chamberpot made by Marmaduke Best, York. Marmaduke Rawdon gave the City of York a "silver chamber pott of the value of ten punds". In 1850, Queen Victoria’s husband, Prince Albert, visited the Mansion House and may have used the chamberpot! submitted by /u/York_shireman
      [link] [comments]
      ---|---

    11. 🔗 r/Leeds Anyone looking for more Alt/Rock Friends? like Key Club, Spoons, NQ64, Pixel Bar etc?.. Join our Alt/Rock/Emo Whatsapp Social Group! xo rss

      Love Keyclub (Slamdunk, FUEL, GARAGE Clubnights), NQ64, Pixel Bar, Wetherspoons, Pubs etc but have a lack of alternative friends to go with? Just want to make more alternative friends, have fun chats & get involved in social events?

      A few of us from Reddit, Facebook etc have banded together from previous appeals and have a new fun Whatsapp Alt/Rock/Emo Social Group chat now, 80+ members and counting!

      We had a successful recruitment on here a few months ago which blew up & got overwhelming so had to trickle people in but there are too many to go through, so starting a new fresh post to add more people

      The group is roughly 18-35 age range & currently around 50/50 gender mix so plenty of people of different age/genders etc, very inclusive and everyone is getting on great together.

      We have regular nights out especially on Weekends (Keyclub Club Nights, Spoons, Bars, NQ64, Pixel Bar, Flight Club, Cinema trips.. anything fun really!) which can get anywhere from 10-15 people attending. Spoons & Key Club on Saturdays is a particular fave. but we are always planning social events, mid week chill things etc

      If you'd like to join then leave a comment with your age/gender & I'll DM you an invite! all welcome

      I will invite in slowly as to keep the ratio of ages, sex etc balanced so theres always people of similar age etc

      Leave a comment & I'll DM an invite when available! x

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

    12. 🔗 r/LocalLLaMA Qwen3.5-9B is actually quite good for agentic coding rss

      I have to admit I am quite impressed. My hardware is an Nvidia Geforce RTX 3060 with 12 GB VRAM so it's quite limited. I have been "model-hopping" to see what works best for me.
      I mainly did my tests with Kilo Code but sometimes I tried Roo Code as well
      Originally I used a customized Qwen 2.5 Coder for tools calls, It was relatively fast but usually would fail doing tool calls.

      Then I tested multiple Unsloth quantizations on Qwen 3 Coder. 1-bit quants would work also relatively fast but usually failed doing tool calls as well. However I've been using UD- TQ1_0 for code completion with Continue and has been quite good, better than what I experienced compared to smaller Qwen2.5 Coder models. 2-bit quants worked a little bit better (it would still fail sometimes), however it started feeling really slow and kinda unstable.

      Then, similarly to my original tests with Qwen 2.5, tried this version of Qwen3, also optimized for tools (14b), my experience was significantly better but still a bit slow, I should probably have gone with 8b instead. I noticed that, these general Qwen versions that are not optimized for coding worked better for me, probably because they were smaller and would fit better, so instead of trying Qwen3-8b, I went with Qwen3.5-9b, and this is where I got really surprised.

      Finally had the agent working for more than an hour, doing kind of significant work and capable of going on by itself without getting stuck.

      I know every setup is different, but if you are running on consumer hardware with limited VRAM, I think this represents amazing progress.

      TL;DR : Qwen 3.5 (9B) with 12 VRAM actually works very well for agentic calls. Unsloth-Qwen3 Coder 30B UD-TQ1_0 is good for code completion

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

    13. 🔗 r/reverseengineering Live From RE//verse 2026: WARP Signatures with Mason Reed (Stream - 06/03/2026) rss
    14. 🔗 backnotprop/plannotator v0.12.0 release

      Follow @plannotator on X for updates

      Claude Code users, want to give feedback on approval? Please upvote & comment here.


      Missed recent releases? Release | Highlights
      ---|---
      v0.11.4 | Git add from code review, bidirectional scroll navigation, clipboard paste for annotation images, VS Code IPC port stability
      v0.11.3 | Expandable diff context, hierarchical folder tree, redesigned worktree controls, supply chain hardening
      v0.11.2 | Git worktree support in code review, VS Code editor annotations in review, Obsidian auto-save & separator settings, session discovery, smart file resolution
      v0.11.1 | VS Code extension for in-editor plan review, Pinpoint mode for point-and-click annotations, untracked files in code review
      v0.11.0 | Auto-save annotation drafts, comment popover, Obsidian vault browser, deny message framing fix, configurable OpenCode timeout
      v0.10.0 | Short URL sharing with E2E encryption, code suggestions in review UI, CJK input method support, customizable Obsidian filenames, XDG install fix
      v0.9.3 | Linked document navigation & annotation, VS Code diff integration, toolbar dismiss fix, automated npm publishing
      v0.9.0 | Plan Diff with two view modes, version history, sidebar redesign, terminology cleanup
      v0.8.5 | Pi coding agent support, auto-close countdown, image endpoint security fix, OpenCode package fix
      v0.8.0 | Open source (MIT/Apache-2.0), annotate command, self-hosted share portal, resizable panels, mermaid controls, auto-close on approval, documentation site


      What's New in v0.12.0 This is a community release. Ten of the fourteen PRs in v0.12.0 were authored by external contributors, spanning three major features and a sweep of cross- platform fixes. The annotation system gained preset labels for one-click feedback — no typing, just click and move on. The plan viewer now renders Graphviz diagrams alongside Mermaid, inline markdown images with a lightbox zoom, and renders all diagrams by default instead of showing raw source. And the entire UI works on mobile. Quick Annotation Labels Reviewing a plan often means the same feedback applies to multiple sections — "clarify this," "verify this assumption," "match existing patterns." Quick Labels turn those into one-click preset chips that appear above the annotation toolbar. Select text, click a label, done. No typing required. Ten default labels ship out of the box, each with an emoji and a color-coded pill: ❓ Clarify this · đŸ—ș Missing overview · 🔍 Verify this · 🔬 Give me an example · 🧬 Match existing patterns · 🔄 Consider alternatives · 📉 Ensure no regression · đŸš« Out of scope · đŸ§Ș Needs tests · 👍 Nice approach Several labels carry agent-facing tips that get injected into the feedback. For example, selecting a section and clicking "🔍 Verify this" tells the agent: "This seems like an assumption. Verify by reading the actual code before proceeding." The "🧬 Match existing patterns" label instructs the agent to search the codebase for existing solutions rather than introducing a new approach. These tips are invisible to the reviewer but shape how the agent responds. When the feedback is exported, labeled annotations are grouped into a Label Summary section at the bottom — **🔍 Verify this**: 3 — so both the reviewer and the agent can see at a glance which patterns recur across the plan. Labels are fully customizable in Settings. Add up to 12, reorder them, pick custom colors and tips, or remove the ones you never use. Settings persist across sessions via cookies. A follow-up PR introduced a dedicated Quick Label editing mode alongside Markup, Comment, and Redline. In this mode, selecting text immediately shows a floating label picker — no toolbar intermediary. Alt+1 through Alt+0 keyboard shortcuts work in any mode for power users who prefer not to reach for the mouse. Authored by @grubmanItay in #268 and #272 Mobile Compatibility Plannotator was desktop-only. That mattered less when the tool was purely a local dev workflow, but with shared URLs and team reviews becoming common, people were opening plan links on phones and tablets and getting a broken layout. The UI now adapts fully below 768px. The header collapses into a hamburger menu. The annotation panel renders as a full-screen overlay with a backdrop and close button. Touch support covers resize handles, pinpoint annotations, text selection, and the toolstrip. Card action buttons are always visible on touch devices instead of appearing on hover. The Settings modal switches to a horizontal tab bar. The CommentPopover width is capped to the viewport so it doesn't overflow off-screen. Desktop layout is completely unchanged — this is additive, not a redesign. Authored by @grubmanItay in #260 Graphviz Diagram Rendering Plannotator has supported Mermaid diagrams since v0.6.8. Plans that use Graphviz for architecture diagrams, dependency graphs, or state machines were stuck with raw DOT source in a code block. The Viewer now renders graphviz, dot, and gv fenced code blocks using @viz-js/viz, with the same UX conventions as Mermaid: source/diagram toggle, zoom and pan controls, and an expanded fullscreen view. Authored by @flex-yj-kim in #266 Mermaid Diagram Improvements The Mermaid viewer received a substantial UX overhaul. Diagrams now open in a proper expanded fullscreen mode with zoom in/out, fit-to-view, and wheel zoom. The source/diagram toggle was reworked for clarity. Wide diagrams no longer clip against container edges in both plan view and plan diff view. Safari stability issues with SVG rendering were resolved. A separate PR changed both Mermaid and Graphviz diagrams to render by default instead of showing raw source code first — the source toggle is still one click away, but the visual rendering is now the default state. Authored by @flex-yj-kim in #264 and #279 Issue #275 filed by @flex-yj-kim Markdown Image Rendering Markdown ! syntax was silently treated as plain text — the ! character wasn't in the inline scanner, so images never rendered. They do now. Local image paths are proxied through the existing /api/image endpoint, and relative paths resolve correctly when annotating files outside the project root. Clicking any rendered image opens a full-screen lightbox with the alt text as a caption. Press Escape or click the backdrop to dismiss. Authored by @dgrissen2 in #271 Linked Doc Navigation in Annotate Mode

      The /plannotator-annotate command lets you annotate any markdown file, but clicking .md links inside that file would break — the annotate server was missing a /api/doc endpoint, so link requests returned raw HTML instead of JSON. This release adds the missing route and supports chained relative link navigation, so you can follow links between sibling markdown files without leaving annotate mode.

      VS Code Extension in SSH Remote Sessions

      The VS Code extension sets PLANNOTATOR_BROWSER to its own open-in-vscode handler so plans open in editor tabs instead of external browsers. In SSH remote sessions, the shared openBrowser() function skipped browser launch entirely — ignoring the custom handler. The fix is a one-line condition change: if PLANNOTATOR_BROWSER is set, always call openBrowser() regardless of remote detection. This covers plan review, code review, and annotate mode.

      Additional Changes

      • Windows markdown path support — plannotator annotate now handles Windows drive-letter paths (C:\..., C:/...), Git Bash/MSYS paths (/c/...), and Cygwin paths (/cygdrive/c/...) in the shared markdown resolver (#267 by @flex-yj-kim)
      • OS-aware update banner — the update banner now detects the user's OS and shows the correct install command: bash/curl on macOS and Linux, PowerShell on Windows (#270, reported by @eromoe in #265)
      • Pi origin in code review — the code review UI now recognizes Pi as a first-class origin with a violet badge, correct install command in the update banner, and proper agent name in the completion overlay (#263)
      • Codex support — documentation and install instructions for running Plannotator inside Codex, which uses the CLI directly without a plugin (#261)
      • Welcome dialog cleanup — removed three first-run dialogs (UI Features Setup, Plan Diff Marketing, What's New v0.11.0) that had outlived their usefulness. The only remaining first-open dialog is the Permission Mode Setup, which directly affects agent behavior (#280)

      Install / Update

      macOS / Linux:

      curl -fsSL https://plannotator.ai/install.sh | bash
      

      Windows:

      irm https://plannotator.ai/install.ps1 | iex
      

      Claude Code Plugin: Run /plugin in Claude Code, find plannotator , and click "Update now".

      OpenCode: Clear cache and restart:

      rm -rf ~/.bun/install/cache/@plannotator
      

      Then in opencode.json:

      {
        "plugin": ["@plannotator/opencode@latest"]
      }
      

      Pi: Install or update the extension:

      pi install npm:@plannotator/pi-extension
      

      What's Changed

      Contributors

      @grubmanItay was a major contributor to this release with three PRs — Quick Annotation Labels, Quick Label Mode, and full mobile support. The labels system touched the annotation pipeline end-to-end: new UI components, settings persistence, keyboard shortcuts, export formatting, and share URL backward compatibility.

      @flex-yj-kim continues as the project's most prolific external contributor. Four PRs in this release: Graphviz rendering, Mermaid viewer overhaul, render-by-default diagrams, and Windows path support. Across v0.9.3 through v0.12.0, Yeongjin has authored twelve merged PRs spanning both the plan and code review UIs.

      @dgrissen2 returns and shipped two PRs — markdown image rendering with the lightbox viewer and the annotate-mode linked doc navigation fix. Both address gaps where the viewer silently dropped content instead of rendering it.

      @7tg who originated the VS Code extension, authored the SSH remote fix for the VS Code extension, which he also reported in #259 with a thorough diagnostic of the underlying IPC issue.

      Community members who reported issues and participated in discussions that shaped this release:

      Full Changelog : v0.11.4...v0.12.0

    15. 🔗 sacha chua :: living an awesome life Small steps towards using OpenAI-compatible text-to-speech services with speechd-el or emacspeak rss

      Speech synthesis has come a long way since I first tried out Emacspeak in 2002. Kokoro TTS and Piper offer more natural-sounding voices now, although the initial delay in loading the models and generating speech mean that they aren't quite ready to completely replace espeak, which is faster but more robotic. I've been using the Kokoro FastAPI through my own functions for working with various speech systems. I wanted to see if I could get Kokoro and other OpenAI-compatible text-to-speech services to work with either speechd-el or Emacspeak just in case I could take advantage of the rich functionality either provides for speech-synthesized Emacs use. speechd-el is easier to layer on top of an existing Emacs if you only want occasional speech, while emacspeak voice-enables many packages to an extent beyond speaking simply what's on the screen.

      Speech synthesis is particularly helpful when I'm learning French because I can use it as a reference for what a paragraph or sentence should sound like. It's not perfect. Sometimes it uses liaisons that my tutor and Google Translate don't use. But it's a decent enough starting point. I also used it before to read out IRC mentions and compile notifications so that I could hear them even if I was paying attention to a different activity.

      Here's a demonstration of speechd reading out the following lines using the code I've just uploaded to https://codeberg.org/sachac/speechd-ai:

      • The quick brown fox jumps over the lazy dog.
      • Now let's set the language to French so we can read the next line.
      • Bonjour, je m'appelle Emacs.

      Screencast showing speechd-el

      There's about a 2-second delay between the command and the start of the audio for the sentence.

      Note that speechd-speak-read-sentence fails in some cases where (forward-sentence 1) isn't the same place as (backward-sentence 1) (forward-sentence 1), which can happen when you're in an Org Mode list. I've submitted a patch upstream.

      Aside from that, speechd-speak-set-language, speechd-speak-read-paragraph and speechd-speak-read-region are also useful commands. I think the latency makes this best-suited for reading paragraphs, or for shadowing sentences for language learning.

      I'm still trying to figure out how to get speechd-speak to work as smoothly as I'd like. I think I've got it set up so that the server falls back to espeak for short texts so that it can handle words or characters better, and uses the specified server for longer ones. I'd like to get to the point where it can handle all the things that speechd usually does, like saying lines as I navigate through them or giving me feedback as I'm typing. Maybe it can use espeak for fast feedback character by character and word by word, and then use Kokoro TTS for the full sentence when I finish. Then it will be possible to use it to type things without looking at the screen.

      After putting this together, I still find myself leaning towards my own functions because they make it easy to see the generated speech output to a file, which is handy for saving reference audio that I can play on my phone and for making replays almost instant. That could also be useful for pre-generating the next paragraph to make it flow more smoothly. Still, it was interesting making something that is compatible with existing protocols and libraries.

      Posting it in case anyone else wants to use it as a starting point. The repository also contains the starting point for an Emacspeak-compatible speech server. See See speechd-ai/README.org for more details.

      https://codeberg.org/sachac/speechd-ai

      You can e-mail me at sacha@sachachua.com.

    16. 🔗 r/Leeds Road closed by Wellington Place rss

      Does anyone know what happened here? There seems to be a car with a couple of windows smashed out and the police have closed off the road (see pics). Car has been there since about 11.30am and they cleared the builders out of the building site as well

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

    17. 🔗 r/reverseengineering Debugging An Undebuggable App rss
    18. 🔗 r/Yorkshire Is there a clear footpath walk from whitby to Robinhoods Bay? rss

      Not been and years and considering a day out this weekend.

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

    19. 🔗 r/reverseengineering Chip Uploading - Emulation Online rss
    20. 🔗 r/reverseengineering Archive of classic reverse engineering tutorials (Armadillo, ASProtect, Themida, SoftICE era) rss
    21. 🔗 Kagi Small Web Just Got Bigger rss

      Small Web, the non-commercial part of the internet made by real people, has always been at the heart of what we do at Kagi. Today, we're adding to the Small Web experience with new browser extensions,...

    22. 🔗 r/reverseengineering GitHub - iss4cf0ng/Elfina: Elfina is a multi-architecture ELF loader supporting x86 and x86-64 binaries. rss
    23. 🔗 r/reverseengineering HellsUchecker: ClickFix to blockchain-backed backdoor rss
    24. 🔗 r/Leeds Budget friendly places to get fresh flowers? Thought about Leeds market? Thanks!💐 rss

      Not sure of prices these days..

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

    25. 🔗 r/Leeds Park & Ride, Elland Road rss

      Could anyone tell me approximately how long it takes from the Elland Road park & ride into the city centre, during morning rush hour, please?

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

    26. 🔗 r/reverseengineering Reverse Engineering Action's Cheap Fichero Labelprinter rss
    27. 🔗 r/LocalLLaMA I was backend lead at Manus. After building agents for 2 years, I stopped using function calling entirely. Here's what I use instead. rss

      English is not my first language. I wrote this in Chinese and translated it with AI help. The writing may have some AI flavor, but the design decisions, the production failures, and the thinking that distilled them into principles — those are mine.

      I was a backend lead at Manus before the Meta acquisition. I've spent the last 2 years building AI agents — first at Manus, then on my own open-source agent runtime (Pinix) and agent (agent- clip). Along the way I came to a conclusion that surprised me:

      A singlerun(command="...") tool with Unix-style commands outperforms a catalog of typed function calls.

      Here's what I learned.


      Why *nix

      Unix made a design decision 50 years ago: everything is a text stream. Programs don't exchange complex binary structures or share memory objects — they communicate through text pipes. Small tools each do one thing well, composed via | into powerful workflows. Programs describe themselves with --help, report success or failure with exit codes, and communicate errors through stderr.

      LLMs made an almost identical decision 50 years later: everything is tokens. They only understand text, only produce text. Their "thinking" is text, their "actions" are text, and the feedback they receive from the world must be text.

      These two decisions, made half a century apart from completely different starting points, converge on the same interface model. The text-based system Unix designed for human terminal operators — cat, grep, pipe, exit codes, man pages — isn't just "usable" by LLMs. It's a natural fit. When it comes to tool use, an LLM is essentially a terminal operator — one that's faster than any human and has already seen vast amounts of shell commands and CLI patterns in its training data.

      This is the core philosophy of the _nix Agent: _ don't invent a new tool interface. Take what Unix has proven over 50 years and hand it directly to the LLM.*


      Why a single run

      The single-tool hypothesis

      Most agent frameworks give LLMs a catalog of independent tools:

      tools: [search_web, read_file, write_file, run_code, send_email, ...]

      Before each call, the LLM must make a tool selection — which one? What parameters? The more tools you add, the harder the selection, and accuracy drops. Cognitive load is spent on "which tool?" instead of "what do I need to accomplish?"

      My approach: onerun(command="...") tool, all capabilities exposed as CLI commands.

      run(command="cat notes.md") run(command="cat log.txt | grep ERROR | wc -l") run(command="see screenshot.png") run(command="memory search 'deployment issue'") run(command="clip sandbox bash 'python3 analyze.py'")

      The LLM still chooses which command to use, but this is fundamentally different from choosing among 15 tools with different schemas. Command selection is string composition within a unified namespace — function selection is context-switching between unrelated APIs.

      LLMs already speak CLI

      Why are CLI commands a better fit for LLMs than structured function calls?

      Because CLI is the densest tool-use pattern in LLM training data. Billions of lines on GitHub are full of:

      ```bash

      README install instructions

      pip install -r requirements.txt && python main.py

      CI/CD build scripts

      make build && make test && make deploy

      Stack Overflow solutions

      cat /var/log/syslog | grep "Out of memory" | tail -20 ```

      I don't need to teach the LLM how to use CLI — it already knows. This familiarity is probabilistic and model-dependent, but in practice it's remarkably reliable across mainstream models.

      Compare two approaches to the same task:

      ``` Task: Read a log file, count the error lines

      Function-calling approach (3 tool calls): 1. read_file(path="/var/log/app.log") → returns entire file 2. search_text(text=, pattern="ERROR") → returns matching lines 3. count_lines(text=) → returns number

      CLI approach (1 tool call): run(command="cat /var/log/app.log | grep ERROR | wc -l") → "42" ```

      One call replaces three. Not because of special optimization — but because Unix pipes natively support composition.

      Making pipes and chains work

      A single run isn't enough on its own. If run can only execute one command at a time, the LLM still needs multiple calls for composed tasks. So I make a chain parser (parseChain) in the command routing layer, supporting four Unix operators:

      | Pipe: stdout of previous command becomes stdin of next && And: execute next only if previous succeeded || Or: execute next only if previous failed ; Seq: execute next regardless of previous result

      With this mechanism, every tool call can be a complete workflow :

      ```bash

      One tool call: download → inspect

      curl -sL $URL -o data.csv && cat data.csv | head 5

      One tool call: read → filter → sort → top 10

      cat access.log | grep "500" | sort | head 10

      One tool call: try A, fall back to B

      cat config.yaml || echo "config not found, using defaults" ```

      N commands × 4 operators — the composition space grows dramatically. And to the LLM, it's just a string it already knows how to write.

      The command line is the LLM's native tool interface.


      Heuristic design: making CLI guide the agent

      Single-tool + CLI solves "what to use." But the agent still needs to know " how to use it." It can't Google. It can't ask a colleague. I use three progressive design techniques to make the CLI itself serve as the agent's navigation system.

      Technique 1: Progressive --help discovery

      A well-designed CLI tool doesn't require reading documentation — because --help tells you everything. I apply the same principle to the agent, structured as progressive disclosure : the agent doesn't need to load all documentation at once, but discovers details on-demand as it goes deeper.

      Level 0: Tool Description → command list injection

      The run tool's description is dynamically generated at the start of each conversation, listing all registered commands with one-line summaries:

      Available commands: cat — Read a text file. For images use 'see'. For binary use 'cat -b'. see — View an image (auto-attaches to vision) ls — List files in current topic write — Write file. Usage: write <path> [content] or stdin grep — Filter lines matching a pattern (supports -i, -v, -c) memory — Search or manage memory clip — Operate external environments (sandboxes, services) ...

      The agent knows what's available from turn one, but doesn't need every parameter of every command — that would waste context.

      Note: There's an open design question here: injecting the full command list vs. on-demand discovery. As commands grow, the list itself consumes context budget. I'm still exploring the right balance. Ideas welcome.

      Level 1:command (no args) → usage

      When the agent is interested in a command, it just calls it. No arguments? The command returns its own usage:

      ``` → run(command="memory") [error] memory: usage: memory search|recent|store|facts|forget

      → run(command="clip") clip list — list available clips clip — show clip details and commands clip [args...] — invoke a command clip pull [name] — pull file from clip to local clip push — push local file to clip ```

      Now the agent knows memory has five subcommands and clip supports list/pull/push. One call, no noise.

      Level 2:command subcommand (missing args) → specific parameters

      The agent decides to use memory search but isn't sure about the format? It drills down:

      ``` → run(command="memory search") [error] memory: usage: memory search [-t topic_id] [-k keyword]

      → run(command="clip sandbox") Clip: sandbox Commands: clip sandbox bash <script> clip sandbox read clip sandbox write File transfer: clip sandbox pull [local-name] clip sandbox push ```

      Progressive disclosure: overview (injected) → usage (explored) → parameters (drilled down). The agent discovers on-demand, each level providing just enough information for the next step.

      This is fundamentally different from stuffing 3,000 words of tool documentation into the system prompt. Most of that information is irrelevant most of the time — pure context waste. Progressive help lets the agent decide when it needs more.

      This also imposes a requirement on command design: every command and subcommand must have complete help output. It's not just for humans — it's for the agent. A good help message means one-shot success. A missing one means a blind guess.

      Technique 2: Error messages as navigation

      Agents will make mistakes. The key isn't preventing errors — it's making every error point to the right direction.

      Traditional CLI errors are designed for humans who can Google. Agents can't Google. So I require every error to contain both "what went wrong" and "what to do instead":

      ``` Traditional CLI: $ cat photo.png cat: binary file (standard output) → Human Googles "how to view image in terminal"

      My design: [error] cat: binary image file (182KB). Use: see photo.png → Agent calls see directly, one-step correction ```

      More examples:

      ``` [error] unknown command: foo Available: cat, ls, see, write, grep, memory, clip, ... → Agent immediately knows what commands exist

      [error] not an image file: data.csv (use cat to read text files) → Agent switches from see to cat

      [error] clip "sandbox" not found. Use 'clip list' to see available clips → Agent knows to list clips first ```

      Technique 1 (help) solves "what can I do?" Technique 2 (errors) solves "what should I do instead?" Together, the agent's recovery cost is minimal — usually 1-2 steps to the right path.

      Real case: The cost of silent stderr

      For a while, my code silently dropped stderr when calling external sandboxes — whenever stdout was non-empty, stderr was discarded. The agent ran pip install pymupdf, got exit code 127. stderr contained bash: pip: command not found, but the agent couldn't see it. It only knew "it failed," not "why" — and proceeded to blindly guess 10 different package managers:

      pip install → 127 (doesn't exist) python3 -m pip → 1 (module not found) uv pip install → 1 (wrong usage) pip3 install → 127 sudo apt install → 127 ... 5 more attempts ... uv run --with pymupdf python3 script.py → 0 ✓ (10th try)

      10 calls, ~5 seconds of inference each. If stderr had been visible the first time, one call would have been enough.

      stderr is the information agents need most, precisely when commands fail. Never drop it.

      Technique 3: Consistent output format

      The first two techniques handle discovery and correction. The third lets the agent get better at using the system over time.

      I append consistent metadata to every tool result:

      file1.txt file2.txt dir1/ [exit:0 | 12ms]

      The LLM extracts two signals:

      Exit codes (Unix convention, LLMs already know these):

      • exit:0 — success
      • exit:1 — general error
      • exit:127 — command not found

      Duration (cost awareness):

      • 12ms — cheap, call freely
      • 3.2s — moderate
      • 45s — expensive, use sparingly

      After seeing [exit:N | Xs] dozens of times in a conversation, the agent internalizes the pattern. It starts anticipating — seeing exit:1 means check the error, seeing long duration means reduce calls.

      Consistent output format makes the agent smarter over time. Inconsistency makes every call feel like the first.

      The three techniques form a progression:

      --help → "What can I do?" → Proactive discovery Error Msg → "What should I do?" → Reactive correction Output Fmt → "How did it go?" → Continuous learning


      Two-layer architecture: engineering the heuristic design

      The section above described how CLI guides agents at the semantic level. But to make it work in practice, there's an engineering problem: the raw output of a command and what the LLM needs to see are often very different things.

      Two hard constraints of LLMs

      Constraint A: The context window is finite and expensive. Every token costs money, attention, and inference speed. Stuffing a 10MB file into context doesn't just waste budget — it pushes earlier conversation out of the window. The agent "forgets."

      Constraint B: LLMs can only process text. Binary data produces high- entropy meaningless tokens through the tokenizer. It doesn't just waste context — it disrupts attention on surrounding valid tokens , degrading reasoning quality.

      These two constraints mean: raw command output can't go directly to the LLM — it needs a presentation layer for processing. But that processing can't affect command execution logic — or pipes break. Hence, two layers.

      Execution layer vs. presentation layer

      ┌─────────────────────────────────────────────┐ │ Layer 2: LLM Presentation Layer │ ← Designed for LLM constraints │ Binary guard | Truncation+overflow | Meta │ ├────────────────────────────────────────────── │ Layer 1: Unix Execution Layer │ ← Pure Unix semantics │ Command routing | pipe | chain | exit code │ └─────────────────────────────────────────────┘

      When cat bigfile.txt | grep error | head 10 executes:

      Inside Layer 1: cat output → [500KB raw text] → grep input grep output → [matching lines] → head input head output → [first 10 lines]

      If you truncate cat's output in Layer 1 → grep only searches the first 200 lines, producing incomplete results. If you add [exit:0] in Layer 1 → it flows into grep as data, becoming a search target.

      So Layer 1 must remain raw, lossless, metadata-free. Processing only happens in Layer 2 — after the pipe chain completes and the final result is ready to return to the LLM.

      Layer 1 serves Unix semantics. Layer 2 serves LLM cognition. The separation isn't a design preference — it's a logical necessity.

      Layer 2's four mechanisms

      Mechanism A: Binary Guard (addressing Constraint B)

      Before returning anything to the LLM, check if it's text:

      ``` Null byte detected → binary UTF-8 validation failed → binary Control character ratio > 10% → binary

      If image: [error] binary image (182KB). Use: see photo.png If other: [error] binary file (1.2MB). Use: cat -b file.bin ```

      The LLM never receives data it can't process.

      Mechanism B: Overflow Mode (addressing Constraint A)

      ``` Output > 200 lines or > 50KB? → Truncate to first 200 lines (rune-safe, won't split UTF-8) → Write full output to /tmp/cmd-output/cmd-{n}.txt → Return to LLM:

      [first 200 lines] --- output truncated (5000 lines, 245.3KB) --- Full output: /tmp/cmd-output/cmd-3.txt Explore: cat /tmp/cmd-output/cmd-3.txt | grep <pattern> cat /tmp/cmd-output/cmd-3.txt | tail 100 [exit:0 | 1.2s]
      

      ```

      Key insight: the LLM already knows how to use grep, head, tail to navigate files. Overflow mode transforms "large data exploration" into a skill the LLM already has.

      Mechanism C: Metadata Footer

      actual output here [exit:0 | 1.2s]

      Exit code + duration, appended as the last line of Layer 2. Gives the agent signals for success/failure and cost awareness, without polluting Layer 1's pipe data.

      Mechanism D: stderr Attachment

      ``` When command fails with stderr: output + "\n[stderr] " + stderr

      Ensures the agent can see why something failed, preventing blind retries. ```


      Lessons learned: stories from production

      Story 1: A PNG that caused 20 iterations of thrashing

      A user uploaded an architecture diagram. The agent read it with cat, receiving 182KB of raw PNG bytes. The LLM's tokenizer turned these bytes into thousands of meaningless tokens crammed into the context. The LLM couldn't make sense of it and started trying different read approaches — cat -f, cat --format, cat --type image — each time receiving the same garbage. After 20 iterations, the process was force-terminated.

      Root cause: cat had no binary detection, Layer 2 had no guard. Fix: isBinary() guard + error guidance Use: see photo.png. Lesson: The tool result is the agent's eyes. Return garbage = agent goes blind.

      Story 2: Silent stderr and 10 blind retries

      The agent needed to read a PDF. It tried pip install pymupdf, got exit code 127. stderr contained bash: pip: command not found, but the code dropped it — because there was some stdout output, and the logic was "if stdout exists, ignore stderr."

      The agent only knew "it failed," not "why." What followed was a long trial- and-error:

      pip install → 127 (doesn't exist) python3 -m pip → 1 (module not found) uv pip install → 1 (wrong usage) pip3 install → 127 sudo apt install → 127 ... 5 more attempts ... uv run --with pymupdf python3 script.py → 0 ✓

      10 calls, ~5 seconds of inference each. If stderr had been visible the first time, one call would have sufficed.

      Root cause: InvokeClip silently dropped stderr when stdout was non- empty. Fix: Always attach stderr on failure. Lesson: stderr is the information agents need most, precisely when commands fail.

      Story 3: The value of overflow mode

      The agent analyzed a 5,000-line log file. Without truncation, the full text (~200KB) was stuffed into context. The LLM's attention was overwhelmed, response quality dropped sharply, and earlier conversation was pushed out of the context window.

      With overflow mode:

      ``` [first 200 lines of log content]

      --- output truncated (5000 lines, 198.5KB) --- Full output: /tmp/cmd-output/cmd-3.txt Explore: cat /tmp/cmd-output/cmd-3.txt | grep cat /tmp/cmd-output/cmd-3.txt | tail 100 [exit:0 | 45ms] ```

      The agent saw the first 200 lines, understood the file structure, then used grep to pinpoint the issue — 3 calls total, under 2KB of context.

      Lesson: Giving the agent a "map" is far more effective than giving it the entire territory.


      Boundaries and limitations

      CLI isn't a silver bullet. Typed APIs may be the better choice in these scenarios:

      • Strongly-typed interactions : Database queries, GraphQL APIs, and other cases requiring structured input/output. Schema validation is more reliable than string parsing.
      • High-security requirements : CLI's string concatenation carries inherent injection risks. In untrusted-input scenarios, typed parameters are safer. agent-clip mitigates this through sandbox isolation.
      • Native multimodal : Pure audio/video processing and other binary-stream scenarios where CLI's text pipe is a bottleneck.

      Additionally, "no iteration limit" doesn't mean "no safety boundaries." Safety is ensured by external mechanisms:

      • Sandbox isolation : Commands execute inside BoxLite containers, no escape possible
      • API budgets : LLM calls have account-level spending caps
      • User cancellation : Frontend provides cancel buttons, backend supports graceful shutdown

      Hand Unix philosophy to the execution layer, hand LLM's cognitive constraints to the presentation layer, and use help, error messages, and output format as three progressive heuristic navigation techniques.

      CLI is all agents need.


      Source code (Go): github.com/epiral/agent- clip

      Core files: internal/tools.go (command routing), internal/chain.go (pipes), internal/loop.go (two-layer agentic loop), internal/fs.go (binary guard), internal/clip.go (stderr handling), internal/browser.go (vision auto-attach), internal/memory.go (semantic memory).

      Happy to discuss — especially if you've tried similar approaches or found cases where CLI breaks down. The command discovery problem (how much to inject vs. let the agent discover) is something I'm still actively exploring.

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

    28. 🔗 r/york Community Eid dinner in York? rss

      Hi all! I was wondering if anyone was aware if there will be a community Eid dinner in York that's open not non-muslims?

      submitted by /u/Livid-Trade-3907
      [link] [comments]

    29. 🔗 r/reverseengineering runtime jvm analysis tool i made rss
    30. 🔗 Rust Blog Announcing rustup 1.29.0 rss

      The rustup team is happy to announce the release of rustup version 1.29.0.

      Rustup is the recommended tool to install Rust, a programming language that empowers everyone to build reliable and efficient software.

      What's new in rustup 1.29.0

      Following the footsteps of many package managers in the pursuit of better toolchain installation performance, the headline of this release is that rustup has been enabled to download components concurrently and unpack during downloads in operations such as rustup update or rustup toolchain and to concurrently check for updates in rustup check, thanks to a GSoC 2025 project. This is by no means a trivial change so a long tail of issues might occur, please report them if you have found any!

      Furthermore, rustup now officially supports the following host platforms:

      • sparcv9-sun-solaris
      • x86_64-pc-solaris

      Also, rustup will start automatically inserting the right $PATH entries during rustup-init for the following shells, in addition to those already supported:

      • tcsh
      • xonsh

      This release also comes with other quality-of-life improvements, to name a few:

      • When running rust-analyzer via a proxy, rustup will consider the rust-analyzer binary from PATH when the rustup-managed one is not found.

        • This should be particularly useful if you would like to bring your own rust-analyzer binary, e.g. if you use Neovim, Helix, etc. or are developing rust-analyzer itself.
        • Empty environment variables are now treated as unset. This should help with resetting configuration values to default when an override is present.
      • rustup check will use different exit codes based on whether new updates have been found: it will exit with 100 on any updates or 0 for no updates.

      Furthermore, @FranciscoTGouveia has joined the team. He has shown his talent, enthusiasm and commitment to the project since the first interactions with rustup and has played a significant role in bring more concurrency to it, so we are thrilled to have him on board and are actively looking forward to what we can achieve together.

      Further details are available in the changelog!

      How to update

      If you have a previous version of rustup installed, getting the new one is as easy as stopping any programs which may be using rustup (e.g. closing your IDE) and running:

      $ rustup self update
      

      Rustup will also automatically update itself at the end of a normal toolchain update:

      $ rustup update
      

      If you don't have it already, you can get rustup from the appropriate page on our website.

      Rustup's documentation is also available in the rustup book.

      Caveats

      Rustup releases can come with problems not caused by rustup itself but just due to having a new release.

      In particular, anti-malware scanners might block rustup or stop it from creating or copying files, especially when installing rust-docs which contains many small files.

      Issues like this should be automatically resolved in a few weeks when the anti-malware scanners are updated to be aware of the new rustup release.

      Thanks

      Thanks again to all the contributors who made this rustup release possible!

    31. 🔗 Console.dev newsletter Ki Editor rss

      Description: Structural code editor.

      What we like: Acts on the AST so code manipulations happen within the true language syntax e.g. selecting the whole control statement. This enables AST native editing, selection, navigation, find & replace. Has a built in LSP and file explorer. Themes and syntax highlighting powered by Tree-sitter.

      What we dislike: Might take some getting used to - it has a VS Code extension if you prefer a GUI.

    32. 🔗 Console.dev newsletter Agent Safehouse rss

      Description: macOS native AI sandboxing.

      What we like: Denies access outside of your project directory using macOS native, kernel-level sandboxes. Has safe defaults for access to things like core system tools, network access, Git, etc. Security sensitive actions require opt-in e.g. clipboard, docker, shell access.

      What we dislike: macOS only.

  3. March 11, 2026
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2026-03-11 rss

      IDA Plugin Updates on 2026-03-11

      New Releases:

      Activity:

    2. 🔗 MetaBrainz Schema change release: May 11, 2026 rss

      MusicBrainz is announcing a new schema change release set for May 11, 2026. Schema-wise, this release will be very light. At the same time, we'll be requiring some major dependency upgrades to Perl, PostgreSQL, and Node.js. We'll also be switching from Redis to Valkey in production. See below for more information.

      The only breaking schema change is MBS-14252. It drops columns which are unused even in MusicBrainz Server, so should have little impact.

      Here is the complete list of scheduled tickets:

      Database schema

      The following tickets change the database schema in some way.

      • MBS-6551: Database does not prevent a release from having duplicate label/catno pairs. This ticket involves replacing an index on the release_label table for additional data sanity. We'll introduce a unique index on (release, label, catalog_number) (with NULL values treated as equal). This should have no impact on downstream users.
      • MBS-14092: Add support for series of series. This will allow connecting series that are related to each other in some way; for example, a series of series that have been honored with the same award, like the Golden Globe Award for Best Podcast. This involves adding a new series_series view, and replacing the allowed_series_entity_type constraint on the series_type table. It doesn't modify or remove any other parts of the schema.
      • MBS-14252: Drop "source" column from iswc and isrc tables. As the title says, this drops the unused isrc.source and iswc.source columns from the database. Unless you've specifically referenced these columns in a query, this change should have no impact on you.

      Server dependencies

      • MBS-14243: Upgrade the required version of Perl to 5.42. This is required as Perl 5.38 will no longer receive critical security fixes past July 2026.
      • MBS-14246 : Upgrade the required version of PostgreSQL to 18. We last upgraded to PostgreSQL v16 two years ago, and would like to take advantage of the many performance advancements in PostgreSQL since then.

      Note that the PGDG maintains an official APT repository for Debian and Ubuntu. PostgreSQL 18.3 is also available on Amazon RDS.

      An upgrade script will be available for MusicBrainz Docker users with instructions provided at release time.

      • MBS-14244: Upgrade the required version of Node.js to 24. This is a straightforward upgrade to the latest LTS release, as Node.js v20 will soon be end-of-life.
      • MBS-14245: Switch from Redis to Valkey. Valkey is compatible with Redis OSS 7.2, and should be a drop-in replacement. There's no reason to expect that Redis would stop working either. (The commands that MusicBrainz Server uses are very basic, and work even in Redis v3.)

      Search server

      • SEARCH-756: Trigger reindex from dbmirror2 replication data. This drops the dependency on RabbitMQ and pg_amqp for live updating the Solr search indexes, and triggers the reindex process directly from PostgreSQL instead, by relying on the change data we already generate there for replication packets. If you run a local search indexer, this will simplify the setup/dependencies needed. Database-wise, it will require replacing triggers and creating a new "sir" schema.

      We’ll post upgrade instructions for standalone/mirror servers on the day of the release. If you have any questions, feel free to comment below or on the relevant above-linked tickets.

    3. 🔗 r/Yorkshire The village waging a very British war on dog waste rss

      The village waging a very British war on dog waste | Where rolling fields meet towering trees, a hawthorn-lined bridleway on the outskirts of a West Yorkshire town is about as idyllic as a suburban snicket gets. But amid the sound of birdsong and the faint rumble of the nearby M62, anger is also in the air. Warning notices punctuate the path, strewn with capital letters and red text, imploring dog owners to take home their pet's waste. Recently, volunteers collected 350 dog poo bags within a stretch of slightly more than a quarter of a mile (0.4km). Pushed into hedgerows, hung from tree branches and flung into banks along the route, the litter has been piling up on this local route in Scholes, near Cleckheaton. Clean-up volunteers who have had enough have launched their own protest; erecting signs and leaving dozens of the weighty filled bags they collect displayed on the path to make a quiet - but squelchy - statement. submitted by /u/coffeewalnut08
      [link] [comments]
      ---|---

    4. 🔗 r/LocalLLaMA Llama.cpp now with a true reasoning budget! rss

      Llama.cpp now with a true reasoning budget! | I'm happy to report that llama.cpp has another nice and exciting feature that I know a lot of you have been waiting for - real support for reasoning budgets! Until now, --reasoning-budget was basically a stub, with its only function being setting it to 0 to disable thinking via passing enable_thinking=false to templates. But now, we introduce a real reasoning budget setting via the sampler mechanism. When the reasoning starts, we count the number of tokens and when the given number of reasoning tokens is reached, we force terminating the reasoning. However: doing this "just like that" might not have a good effect on the model. In fact, when I did that on Qwen3 9B (testing it on HumanEval), its performance cratered: from 94% in the reasoning version and 88% in the non-reasoning version to a terrible 78% with an enforced reasoning budget. That's why we've added another flag: --reasoning-budget-message. This inserts a message right before the end of reasoning to ease the transition. When I used a message of "... thinking budget exceeded, let's answer now.", the score bumped back and the returns from partial reasoning started being visible, though not very large - got a respective HumanEval score of 89% with reasoning budget 1000. I invite you to experiment with the feature, maybe you can find some nice settings for different models. You can even force models that are strongly thinking by default (i.e. StepFun 3.5) to limit reasoning, though with those models using --reasoning-budget 0 (which now restricts reasoning to none by sampler, not by template) results in some pretty erratic and bad behavior (for example they try to open a second reasoning block). submitted by /u/ilintar
      [link] [comments]
      ---|---

    5. 🔗 r/reverseengineering Practical Type Inference: High-Throughput Recovery of Real-World Structures and Function Signatures rss
    6. 🔗 r/reverseengineering FlapOS: an open source alternative firmware for "flapit" devices rss
    7. 🔗 r/Leeds Antique Leeds prints - shops to sell them through? rss

      Hey all. I've a whole load of antique framed prints, all hand coloured views of Leeds. They were purchased from an antique dealer some years ago, authenticated etc, but the shops since retired and closed up. We've inherited these from a recently deceased relative. In the collection there's maybe 20 to 30 or more framed print of views of late 1800's and industrial revolution Leeds. These are the kind of prints that'll take years to sell individually, but would be good stock for a boutique type shop in Leeds as a job lot......but I'm based in Notts so can't wonder the streets and see who'd be interested.

      Are there any shops or dealer that you can think of that may want to buy the whole collection?

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

    8. 🔗 r/LocalLLaMA Nvidia Will Spend $26 Billion to Build Open-Weight AI Models, Filings Show rss

      Nvidia Will Spend $26 Billion to Build Open-Weight AI Models, Filings Show | submitted by /u/dan945
      [link] [comments]
      ---|---

    9. 🔗 r/Yorkshire New Leeds independent newspaper Start up rss

      https://leeds.ghost.io/welcome-to-leeds-new-paper/?ref=leeds-newsletter

      Please considering supporting this project so more independent news written about the wonderful city.

      I am not involved in the project but I thought people would appreciate knowing about it.

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

    10. 🔗 idursun/jjui v0.10.1 release

      Everything from v0.10.0 with additional bug fixes and some improvements.

      Improvements

      • We show jjui: press a key to continue message after a shell command is run. The underlying interactive detection code has been improved with additional signals to skip showing that message if the executed command started an interactive PTY.

      Fixes

      • Fixed slow starts on Windows machines. #581
      • Fixed improper rendering of double-width characters as well as misalignment of borders when double-width characters are present. #526

      Full Changelog : v0.10.0...v0.10.1

    11. 🔗 r/LocalLLaMA llama.cpp on $500 MacBook Neo: Prompt: 7.8 t/s / Generation: 3.9 t/s on Qwen3.5 9B Q3_K_M rss

      llama.cpp on $500 MacBook Neo: Prompt: 7.8 t/s / Generation: 3.9 t/s on Qwen3.5 9B Q3_K_M | Just compiled llama.cpp on MacBook Neo with 8 Gb RAM and 9b Qwen 3.5 and it works (slowly, but anyway) Config used:

      Build - llama.cpp version: 8294 (76ea1c1c4) Machine - Model: MacBook Neo (Mac17,5) - Chip: Apple A18 Pro - CPU: 6 cores (2 performance + 4 efficiency) - GPU: Apple A18 Pro, 5 cores, Metal supported - Memory: 8 GB unified Model - Hugging Face repo: unsloth/Qwen3.5-9B-GGUF - GGUF file: models/Qwen3.5-9B-Q3_K_M.gguf - File size on disk: 4.4 GB Launch hyperparams ./build/bin/llama-cli \ -m models/Qwen3.5-9B-Q3_K_M.gguf \ --device MTL0 \ -ngl all \ -c 4096 \ -b 128 \ -ub 64 \ -ctk q4_0 \ -ctv q4_0 \ --reasoning on \ -t 4 \ -tb 6 \ -cnv
      

      UPD. I did some benchmarking – faster 5 tok/sec config for 9b model is here, and 10 tok/sec config for 4b model is here submitted by /u/Shir_man
      [link] [comments]
      ---|---

    12. 🔗 r/wiesbaden Mountainbike Shop in WI o. MZ rss

      Hi zusammen,

      ich bin aktuell auf der Suche nach einem guten Fahrradladen in Wiesbaden (oder auch Mainz) der top Mountainbikes (keine E-bikes) hat und wollte mal hier nach euren Empfehlungen fragen.

      Ich wĂŒrde mein Geld lieber in einem kleineren, lokalen Shop ausgeben, bei dem man auch etwas Beratung bekommt und der vernĂŒnftige Bikes verkauft als unbedingt zu den großen Ketten auf der Mainzer Straße zu gehen.

      Hat jemand von euch gute Erfahrungen und einen Tipp fĂŒr mich?

      Danke euch! 🙌

      submitted by /u/Exercise-Signal
      [link] [comments]

    13. 🔗 r/Yorkshire North Yorkshire Moors Railway Territorial Army Exercises 1980s rss

      https://www.youtube.com/watch?app=desktop&v=bt43vJf9-WE

      A nice nostalgic YouTube clip of a group of Territorial Army men helping out on the railway at Pickering. Nearly all of them were British Rail employees (although of course the North Yorkshire Moors Railway has been a private 'heritage' railway since the 1960s. However the clip is a reminder of an age when we had a publicly owned national railway and Armed Forces, professional and part-time with better morale as well as better funding. These are a great bunch of chaps with a sense of public service. Nice railway and Yorkshire footage as well.

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

    14. 🔗 HexRaysSA/plugin-repository commits sync repo: +2 releases rss
      sync repo: +2 releases
      
      ## New releases
      - [DeepExtract](https://github.com/marcosd4h/DeepExtractIDA): 0.9.10
      - [IDAGuides](https://github.com/libtero/idaguides): 1.3.0
      
    15. 🔗 r/LocalLLaMA Nemotron 3 Super Released rss
    16. 🔗 r/Leeds Positive Impact: South Leeds Shops Seeing Less Crime rss

      Some good news from South Leeds around safety and security:

      • The Yorkshire Evening Post recently reported that shops and retail parks are seeing a drop in anti-social behaviour and retail crime.
      • West Yorkshire Police and local partners have been using injunctions, community warnings, and early intervention.
      • Businesses are reporting fewer incidents, and staff and customers feel more confident.

      It’s a great example of how visible, targeted policing and collaboration can make a real difference in keeping retail areas safe.

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

    17. 🔗 r/york York residents – a short survey on the Bootham Crescent stadium relocation rss

      Hi everyone,

      I’m currently conducting research for my university dissertation on the relocation of the stadium at Bootham Crescent and how it has affected local communities and perceptions of the surrounding area.

      As part of this research, I’ve created a short 10-minute anonymous survey looking at the social, physical, and wider perceptions of the stadium move. I’m looking for responses from People who lived near Bootham Crescent before the move Current residents in the area Residents elsewhere in York People who have moved to York in recent years

      All responses are completely anonymous and will be used solely for academic research.

      If you have a few minutes, I would really appreciate your help by completing the survey below:

      https://qualtricsxmw68qycjfg.qualtrics.com/jfe/form/SV_bqMry2RhFEP6z5k

      Thank you very much for your time — every response really helps with the research.

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

    18. 🔗 r/Leeds Schiacciata Sandwiches rss

      Was over in Manchester last week and had an amazing schiacciata sandwich at Ad Maiora (https://www.instagram.com/admaioramcr) does anyone know anywhere in Leeds that does really good Italian sandwiches? I know La Bottega Milanese does something similar but they are not made to order and look a bit sad in the glass cabinets after a while.

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

    19. 🔗 r/york Badminton 🏾 rss

      Anyone know of any casual badminton clubs in York? Used to play regularly a few years back at one of the clubs at the railway institute, but it's been a while and I'm very rusty!

      Or if you are solo and fancy a game, do shout! Happy for a pint/coffee after too.

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

    20. 🔗 r/Leeds Cheap Monstera Thai constellation in Leeds Kirkgate market rss

      Saw this in market garden shop yesterday didn’t get because I sadly got one last year and paid more price than this one.

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

    21. 🔗 r/LocalLLaMA M5 Max just arrived - benchmarks incoming rss

      M5 Max just arrived - benchmarks incoming | The M5 Max 128GB 14" has just arrived. I've been looking forward to putting this through its paces. Testing begins now. Results will be posted as comments below — no video, no lengthy writeup, just the raw numbers. Clean and simple. Apologies for the delay. I initially ran the tests using BatchGenerator, but the speeds weren't quite what I expected. I ended up setting up a fresh Python virtual environment and re-running everything with pure mlx_lm using stream_generate, which is what pushed the update back. I know many of you have been waiting - I'm sorry for keeping you! I take it as a sign of just how much excitement there is around the M5 Max.(I was genuinely hyped for this one myself.) Personally, I'm really happy with the results. What do you all think? Models Tested

      • Qwen3.5-122B-A10B-4bit
      • Qwen3-Coder-Next-8bit
      • Qwen3.5-27B-Claude-4.6-Opus-Distilled-MLX-6bit
      • gpt-oss-120b-MXFP4-Q8

      As for Qwen3.5-35B-A3B-4bit — I don't actually have that one downloaded, so unfortunately I wasn't able to include it. Sorry about that! Results were originally posted as comments, and have since been compiled here in the main post for easier access

      Qwen3.5-122B-A10B-4bit (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3.5-122B-A10B-4bit --prompt "$(cat /tmp/prompt_4096.txt)" --max-tokens 128 ========== Prompt: 4106 tokens, 881.466 tokens-per-sec Generation: 128 tokens, 65.853 tokens-per-sec Peak memory: 71.910 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3.5-122B-A10B-4bit --prompt "$(cat /tmp/prompt_16384.txt)" --max-tokens 128 ========== Prompt: 16394 tokens, 1239.734 tokens-per-sec Generation: 128 tokens, 60.639 tokens-per-sec Peak memory: 73.803 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3.5-122B-A10B-4bit --prompt "$(cat /tmp/prompt_32768.txt)" --max-tokens 128 ========== Prompt: 32778 tokens, 1067.824 tokens-per-sec Generation: 128 tokens, 54.923 tokens-per-sec Peak memory: 76.397 GB Qwen3-Coder-Next-8bit (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3-Coder-Next-8bit --prompt "$(cat /tmp/prompt_4096.txt)" --max-tokens 128 ========== Prompt: 4105 tokens, 754.927 tokens-per-sec Generation: 60 tokens, 79.296 tokens-per-sec Peak memory: 87.068 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3-Coder-Next-8bit --prompt "$(cat /tmp/prompt_16384.txt)" --max-tokens 128 ========== Prompt: 16393 tokens, 1802.144 tokens-per-sec Generation: 60 tokens, 74.293 tokens-per-sec Peak memory: 88.176 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3-Coder-Next-8bit --prompt "$(cat /tmp/prompt_32768.txt)" --max-tokens 128 ========== Prompt: 32777 tokens, 1887.158 tokens-per-sec Generation: 58 tokens, 68.624 tokens-per-sec Peak memory: 89.652 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3-Coder-Next-8bit --prompt "$(cat /tmp/prompt_65536.txt)" --max-tokens 128 ========== Prompt: 65545 tokens, 1432.730 tokens-per-sec Generation: 61 tokens, 48.212 tokens-per-sec Peak memory: 92.605 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3-Coder-Next-8bit --prompt "$(cat /tmp/prompt_16384.txt)" --max-tokens 128 ========== Prompt: 16393 tokens, 1802.144 tokens-per-sec Generation: 60 tokens, 74.293 tokens-per-sec Peak memory: 88.176 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3-Coder-Next-8bit --prompt "$(cat /tmp/prompt_32768.txt)" --max-tokens 128 ========== Prompt: 32777 tokens, 1887.158 tokens-per-sec Generation: 58 tokens, 68.624 tokens-per-sec Peak memory: 89.652 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3-Coder-Next-8bit --prompt "$(cat /tmp/prompt_65536.txt)" --max-tokens 128 ========== Prompt: 65545 tokens, 1432.730 tokens-per-sec Generation: 61 tokens, 48.212 tokens-per-sec Peak memory: 92.605 GB Qwen3.5-27B-Claude-4.6-Opus-Distilled-MLX-6bit (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3.5-27B-Claude-4.6-Opus-Distilled-MLX-6bit --prompt "$(cat /tmp/prompt_4096.txt)" --max-tokens 128 ========== Prompt: 4107 tokens, 811.134 tokens-per-sec Generation: 128 tokens, 23.648 tokens-per-sec Peak memory: 25.319 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3.5-27B-Claude-4.6-Opus-Distilled-MLX-6bit --prompt "$(cat /tmp/prompt_16384.txt)" --max-tokens 128 ========== Prompt: 16395 tokens, 686.682 tokens-per-sec Generation: 128 tokens, 20.311 tokens-per-sec Peak memory: 27.332 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3.5-27B-Claude-4.6-Opus-Distilled-MLX-6bit --prompt "$(cat /tmp/prompt_32768.txt)" --max-tokens 128 ========== Prompt: 32779 tokens, 591.383 tokens-per-sec Generation: 128 tokens, 14.908 tokens-per-sec Peak memory: 30.016 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/Qwen3.5-27B-Claude-4.6-Opus-Distilled-MLX-6bit --prompt "$(cat /tmp/prompt_65536.txt)" --max-tokens 128 ========== Prompt: 65547 tokens, 475.828 tokens-per-sec Generation: 128 tokens, 14.225 tokens-per-sec Peak memory: 35.425 GB gpt-oss-120b-MXFP4-Q8 (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/gpt-oss-120b-MXFP4-Q8 --prompt "$(cat /tmp/prompt_4096.txt)" --max-tokens 128 ========== Prompt: 4164 tokens, 1325.062 tokens-per-sec Generation: 128 tokens, 87.873 tokens-per-sec Peak memory: 64.408 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/gpt-oss-120b-MXFP4-Q8 --prompt "$(cat /tmp/prompt_16384.txt)" --max-tokens 128 ========== Prompt: 16452 tokens, 2710.460 tokens-per-sec Generation: 128 tokens, 75.963 tokens-per-sec Peak memory: 64.857 GB (mlx) cryingneko@MacBook-Pro mlx-lm % mlx_lm.generate --model /Volumes/SSD/Models/gpt-oss-120b-MXFP4-Q8 --prompt "$(cat /tmp/prompt_32768.txt)" --max-tokens 128 ========== Prompt: 32836 tokens, 2537.420 tokens-per-sec Generation: 128 tokens, 64.469 tokens-per-sec Peak memory: 65.461 GB
      

      submitted by /u/cryingneko
      [link] [comments]
      ---|---

    22. 🔗 r/Yorkshire What a Yorkshire sunrise! rss
    23. 🔗 r/Leeds Drop off at Leeds train station rss

      morning ! My partner dropped me off at the train station earlier at the section of road where the spoons is (where taxis used to drop you off). Is this where people are allowed to be dropped off in a private vehicle, or will we receive a penalty? He stopped right by a zebra crossing for a pedestrian and I jumped out.

      Sorry am a bit stressed out as have been appealing parking charges at Manchester airport and don’t want to have to go through that again 😅

      EDIT: please stop telling me where I should get dropped off instead !! I already know this and hindsight is 20/20 but thank you for all the suggestions

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

    24. 🔗 r/LocalLLaMA New benchmark just dropped. rss

      New benchmark just dropped. | Write the complete Three.js code for a scene featuring Michael Jackson, Pepe the Frog, Donald Trump, and Elon Musk performing the "Thriller" choreography, aiming for maximum visual perfection, detailed animation, lighting, high-quality rendering, and an overall cinematic. submitted by /u/ConfidentDinner6648
      [link] [comments]
      ---|---

    25. 🔗 r/Yorkshire Be honest is Yorkshire Tea actually the best tea? rss

      This might be a controversial question, but I’m curious where people stand on this.

      submitted by /u/1ChanceChipmunk1
      [link] [comments]

    26. 🔗 r/york Are there any known pubs with employee accommodation? rss
    27. 🔗 r/reverseengineering Anker/EufyMake UV Printer software RE (ongoing) rss
  4. March 10, 2026
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2026-03-10 rss

      IDA Plugin Updates on 2026-03-10

      New Releases:

      Activity:

      • binlex
      • capa
        • c03d833a: rules: handle empty or invalid YAML documents in Rule.from_yaml (#2903)
        • 1f4a16cb: loader: skip PE files with unrealistically large section virtual size

        • 2c9e30c3: perf: eliminate O(nÂČ) tuple growth and reduce per-match overhead (#2890)
        • 8c138e3d: loader: handle struct.error from dnfile and raise CorruptFile with a 

        • a11a03bc: build(deps): bump minimatch and editorconfig in /web/explorer (#2892)
      • ghidra
      • ida-hcli
        • cfce4917: feat: add KE download support to ida:// protocol handler
      • idaguides
        • 257c6b4d: added: Config class changed: calculating hexrays indent from pseudoco

      • msc-thesis-LLMs-to-rank-decompilers
      • playlist
      • python-elpida_core.py
        • d7c70473: BUG 13: Word-boundary matching for Parliament veto triggers + signal 

        • 691c7ca0: BUG 12: D15 cooldown init imposed 50-cycle dead zone
        • 19d74449: BUG 11: Fix D15 permanent blackout during recursion-breaking
        • 87543ee4: BUG 10: Break meta-diagnostic doom loop + rotate tension templates
        • af32708f: BUG 9: Filter irrelevant world feed items + expand Wikipedia noise fi

        • a73132f2: BUG 8: Strip metadata from LLM escalation text + enhanced diagnostics
        • 48098e74: BUG 7b/7c: Strip metadata from signal detection + diagnostic capture
        • 6898ea12: BUG 6c: Fix A7/A10 keywords — violation indicators, not topic words
        • 06a7fcb9: BUG 6b: Decouple semantic scores from violation signals
        • 5c6ef385: Section 21: BUG 6 semantic embedding implementation — parliament sees

        • 31023936: BUG 6: Semantic embedding layer for parliament signal detection
        • 71facde0: Section 20: Deep breath checkpoint — Body 14 recovery proof, axiom ge

      • symbolicator
        • 31804763: chore: add 25.4 KEXTs
        • 87aac767: chore: add xnu 25.4 🎉
        • 7751e6ed: chore: put version.max back to 25.4 for darwin 25.3
        • ed380b9f: chore: update 25.3
        • 68c2cad2: chore: re-run xnu 25.3 w/ 26.3.1 KDK (and make work on 26.4 beta for 

    2. 🔗 r/LocalLLaMA 1 million LocalLLaMAs rss

      1 million LocalLLaMAs | it took just 3 years submitted by /u/jacek2023
      [link] [comments]
      ---|---

    3. 🔗 r/reverseengineering Released a crackme this week. Someone reconstructed the hash in Python, brute forced for an hour - then patched the jump. That was the correct solution. rss
    4. 🔗 r/wiesbaden Bin neu hier und Suche Freunde rss

      Hey, ich bin 18 und mÀnnlich und bin vor ca. einer Woche nach Wiesbaden gezogen. Ich Suche Freunde, Leute mit denen ich feiern gehen kann und einfach Zeit verbringen kann. Schreibt mich gerne an wenn ihr mal einen Drink trinken gehen wollt und mir die Stadt zeigen könnt und wollt :)

      submitted by /u/Fair-Prune2346
      [link] [comments]

    5. 🔗 r/Harrogate Wedding dress rss

      Hey im going shopping for the above with/for my sister to help give advice. Is there any places you would recomend in and around hgate. Were going on thursday, i havent much knowledge on the area if there was any help or tips for how to be a good supporter!

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

    6. 🔗 r/Yorkshire The view down Lombards Wynd, Richmond, Nth Yorkshire. rss

      The view down Lombards Wynd, Richmond, Nth Yorkshire. | In early medieval times St Martins Frairy ran a woolen mill at the foot of this Wynd. Wool merchants from Lombardy would would bring their goods to trade tracking down the hill to the mill, hence Lombards Wynd. Today the former CofE Primary School sits near the foot of the hil with Easby Abbey visible in the distance. submitted by /u/Still_Function_5428
      [link] [comments]
      ---|---

    7. 🔗 r/LocalLLaMA I regret ever finding LocalLLaMA rss

      I regret ever finding LocalLLaMA | It all started with using "the AI" to help me study for a big exam. Can it make some flashcards or questions? Then Gemini. Big context, converting PDFs, using markdown, custom system instruction on Ai Studio, API. Then LM Studio. We can run this locally??? Then LocalLLama. Now I'm buying used MI50s from China, quantizing this and that, squeezing every drop in REAP, custom imatrices, llama forks. Then waiting for GLM flash, then Qwen, then Gemma 4, then "what will be the future of Qwen team?". Exam? What exam? In all seriousness, i NEVER thought, of all things to be addicted to (and be so distracted by), local LLMs would be it. They are very interesting though. I'm writing this because just yesterday, while I was preaching Qwen3.5 to a coworker, I got asked what the hell was I talking about and then what the hell did I expected to gain from all this "local AI" stuff I talk so much about. All I could thought about was that meme. https://preview.redd.it/o7e97f302aog1.png?width=932&format=png&auto=webp&s=98e0f8f9bd30bb9c49c18e3b7ed03751d605cc86 submitted by /u/xandep
      [link] [comments]
      ---|---

    8. 🔗 r/LocalLLaMA Qwen3.5-35B-A3B Uncensored (Aggressive) — GGUF Release rss

      The one everyone's been asking for. Qwen3.5-35B-A3B Aggressive is out!

      Aggressive = no refusals; it has NO personality changes/alterations or any of that, it is the ORIGINAL release of Qwen just completely uncensored

      https://huggingface.co/HauhauCS/Qwen3.5-35B-A3B-Uncensored-HauhauCS- Aggressive

      0/465 refusals. Fully unlocked with zero capability loss.

      This one took a few extra days. Worked on it 12-16 hours per day (quite literally) and I wanted to make sure the release was as high quality as possible. From my own testing: 0 issues. No looping, no degradation, everything works as expected.

      What's included:

      - BF16, Q8_0, Q6_K, Q5_K_M, Q4_K_M, IQ4_XS, Q3_K_M, IQ3_M, IQ2_M

      - mmproj for vision support

      - All quants are generated with imatrix

      Quick specs:

      - 35B total / ~3B active (MoE — 256 experts, 8+1 active per token)

      - 262K context

      - Multimodal (text + image + video)

      - Hybrid attention: Gated DeltaNet + softmax (3:1 ratio)

      Sampling params I've been using:

      temp=1.0, top_k=20, repeat_penalty=1, presence_penalty=1.5, top_p=0.95, min_p=0

      But definitely check the official Qwen recommendations too as they have different settings for thinking vs non-thinking mode :)

      Note: Use --jinja flag with llama.cpp. LM Studio may show "256x2.6B" in params for the BF16 one, it's cosmetic only, model runs 100% fine.

      Previous Qwen3.5 releases:

      - Qwen3.5-4B Aggressive

      - Qwen3.5-9B Aggressive

      - Qwen3.5-27B Aggressive

      All my models: HuggingFace HauhauCS

      Hope everyone enjoys the release. Let me know how it runs for you.

      The community has been super helpful for Ollama, please read the discussions in the other models on Huggingface for tips on making it work with it.

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

    9. 🔗 r/reverseengineering Your Duolingo Is Still Talking to ByteDance: How Pangle Fingerprints You Across Apps After You Said No rss
    10. 🔗 r/reverseengineering Reverse Engineering Binaries With AI rss
    11. 🔗 sacha chua :: living an awesome life La semaine du 2 mars au 8 mars rss

      lundi 2 mars

      J'ai préparé ma newsletter sur Emacs et j'ai écrit un article sur l'affichage d'indices pour des raccourcis clavier. J'ai aussi essayé l'expansion des snippets par commande vocale. Je pense que l'expansion des snippets est utile parce que quand j'insÚre un snippet à partir d'initiales, je dois penser à l'expression et puis penser aux lettres initiales, mais quand j'insÚre un snippet par commande vocale, je peux utiliser l'expression naturelle. Bien sûr, il y a un bref délai pour la transcription, mais c'est suffisamment court pour ne pas couper le fil de mes pensées.

      Ma fille Ă©tait trop fatiguĂ©e pour son cours de gymnastique, donc je l'ai emmenĂ©e chez la dentiste pour un examen Ă  cause de sa douleur dentaire. La dentiste a dit que ses gencives sont un peu enflĂ©es. Elle nous a recommandĂ© de ramollir sa brosse Ă  dents sous l'eau chaude avant de se brosser les dents et peut-ĂȘtre d'utiliser un bain de bouche salin. Ma fille s'est plainte que ses dents semblent trop serrĂ©es. La dentiste a dit que c'est acceptable pour le moment, et si nous voulons, elle peut nous orienter vers un orthodontiste. Quand j'Ă©tais plus jeune, je ne supportais pas l'appareil dentaire, mais c'est possible que ma fille puisse le supporter. Je pense que c'est mieux que nous attendions que le pic de concentration virale dans les eaux usĂ©es soit passĂ©.

      AprĂšs la vaisselle et ma routine du soir, ma fille et moi avons cousu Ă  la main notre projet de petit sac avec quelques poches.

      mardi 3 mars

      J'ai travaillé sur les virelangues pendant le rendez-vous avec mon tuteur. Les sons « r » et « u » ont continué à me poser des difficultés. Je vais travailler sur la différence entre « roue » et « rue », le mot « brume », et quelques autres. Il a dit que le « r » a besoin de moins d'air.

      Les résultats aujourd'hui :

      Je me demande quel serait une bonne méthode et une bonne interface pour m'entraßner seule à la prononciation entre les rendez-vous avec mon tuteur. Je pense que le processus comprend les étapes suivantes :

      1. Apprendre à écouter la différence entre l'exemple et un énoncé incorrect : il s'agit d'abord de distinguer qu'ils sont différents, puis de comprendre pourquoi.
        • Si j'extrais les Ă©noncĂ©s de mes enregistrements et que je les annote avec les classifications de mon tuteur, je peux les utiliser pour l'apprentissage supervisĂ© afin d'exercer mon oreille. Ces enregistrements seront trop ennuyeux pour d'autres, mais pour moi, il vaut peut-ĂȘtre mieux que je les Ă©coute pour mieux apprendre.
      2. Identifier lequel des deux énoncés est le meilleur.
        • Je peux randomiser les courts enregistrements de l'Ă©tape prĂ©cĂ©dente pour crĂ©er un jeu.
      3. Essayer de produire des sons variés. Il faut m'entraßner, il n'y a évidemment pas d'autre solution.
      4. Écouter la diffĂ©rence entre l'exemple et le son que j'ai produit. DĂ©terminer si le son est assez bon. RĂ©flĂ©chir Ă  la connexion entre les mouvements de la bouche et le son qu'ils produisent.
      5. Produire le son de maniÚre isolée. Connecter la sensation interne de produire le son avec le son que je veux produire, parce que le son que j'enregistre diffÚre du son que j'écoute en parlant.
      6. Produire le son systématiquement.
      7. Produire le son mĂȘme si je n'Ă©coute pas de modĂšle et je ne viens pas de le rĂ©pĂ©ter.
      8. Utiliser le son dans le contexte d'une expression avec des pauses.
      9. Dire l'expression plus fluidement.
      10. Dire l'expression sans exemple.

      Si c'était un problÚme résolu facilement, tout le monde utiliserait et recommanderait la solution. Je pense qu'il n'y a pas de bonne solution sur le marché à l'exception de la méthode que j'ai utilisée pour la formation de mon petit projet d'intelligence humaine générale (qui a 10 ans maintenant, comme elle me le dit souvent) : une quantité massive de données. Mais bien sûr, il y a beaucoup de recherches dont je peux profiter.

      Oooh, j'ai hĂąte d'essayer des spectrogrammes en plus des formes d'onde. Il y a quelques logiciels qui peuvent afficher les spectrogrammes mĂȘme en temps rĂ©el. C'est possible que ça facilite l'analyse des voyelles.

      Donc, je peux utiliser les horodatages par mot de WhisperX pour segmenter l'enregistrement. Mais je dois les Ă©couter dans le contexte du rendez-vous pour les associer avec les commentaires de mon tuteur, sauf si la segmentation par locuteur est fiable pour identifier quels Ă©noncĂ©s ont obtenu un « oui » ou « c'est mieux » de mon tuteur et quels Ă©noncĂ©s lui font dire « non ». Pour le moment, je pense que c'est plus fiable si j'Ă©coute la conversation et annote les segments moi-mĂȘme, donc une interface qui affiche les formes d'onde segmentĂ©es et me permet de faire des sĂ©lections par raccourcis clavier serait utile. Si les scores sont disponibles, les afficher sous forme de graphique Ă  barres est peut-ĂȘtre plus prĂ©cis et plus facile Ă  comparer que les afficher Ă  l'aide d'un dĂ©gradĂ© de couleurs. Je peux aller voir du cĂŽtĂ© de Label Studio ou Praat pour des idĂ©es Ă  implĂ©menter sur Emacs. Ou bien, si j'utilise Audino 2.0 ou d'autres projets similaires sur le web, je peux les annoter pendant mes moments perdus.

      Pendant la pratique, je pense que mon interface doit lancer l'enregistrement de mon tuteur et peut-ĂȘtre afficher la forme d'onde ou le spectrogramme. Elle doit enregistrer ma voix, puisqu'elle doit lancer la lecture de l'exemple du tuteur et l'enregistrement de ma voix pour comparaison avec le score de confiance de WhisperX. Des raccourcis clavier lancent l'un ou l'autre.

      Notre réseau

      Mon tuteur a une question sur les réseaux informatiques, donc je vais profiter de cette occasion pour expliquer notre réseau en français afin d'apprendre plusieurs mots techniques en cours de route. Mon mari est principalement responsable de l'entretien de notre réseau, mais je devrais également m'y former.

      Mon mari a recommandé des ressources pour les gens intéressés :

      • Jim's Garage : recommandĂ© vivement, mais le Homelab 2.0 dont il a discutĂ© dans les vidĂ©os rĂ©centes commence Ă  coĂ»ter cher.
      • Serve the Home
      • Reddit, bien sĂ»r

      Notre réseau :

      • Notre modem fibre optique du FAI se connecte Ă  un mini-ordinateur Lenovo M920q qui fait fonctionner Proxmox pour la gestion de pare-feu et quelques machines virtuelles. Une des machines virtuelles est OPNSense, qui gĂšre les adresses rĂ©seau, le pare-feu, le lissage du trafic rĂ©seau (y compris la rĂšgle consistant Ă  couper l'accĂšs Ă  internet de notre enfant tard le soir) et divers rĂ©seaux virtuels (VLAN) pour isoler les diffĂ©rents appareils via l'adaptateur rĂ©seau Gigabit Intel 893647. L'Internet des objets manque souvent de mises Ă  jour, donc mon mari veut les isoler de nos autres ordinateurs. OPNSense lui-mĂȘme reçoit des mises Ă  jour. En fait, mon mari l'a mis Ă  jour rĂ©cemment, et il est passĂ© de 16 Ă  32 gigaoctets de RAM. Mon mari a dit qu'il apprĂ©cie que le Lenovo M920q soit assez silencieux.
      • Le M920Q se connecte Ă  un commutateur rĂ©seau ASUS GS108Tv2, qui se connecte au Synology DS718+ pour le stockage rĂ©seau et Ă  l'Odroid-XU4 qui fait aussi fonctionner PiHole pour rĂ©duire les publicitĂ©s. Proxmox sur le M920q a aussi une machine virtuelle qui est responsable de sauvegarder les fichiers sur le Synology DS718+.
      • Le commutateur rĂ©seau ASUS GS108Tv2 se connecte au routeur wifi ASUS RT-AC66U qui utilise FreshTomato pour avoir plus de contrĂŽle qu'avec le modem fibre optique. Il est capable de wifi 5 GHz et il peut traiter les rĂ©seaux wifi virtuels (deux ou plus de SSIDs dans la mĂȘme bande 2,4 GHz ou 5 GHz) pour isoler les appareils comme le thermostat. De cette façon, les appareils fiables comme nos ordinateurs ne sont pas visibles par les appareils non sĂ©curisĂ©s.
      • Le routeur wifi se connecte Ă  un commutateur rĂ©seau non gĂ©rĂ© qui se connecte Ă  un Odroid-C4 qui utilise OpenELEC et Ă  notre vieille Sony PS3.

      Nous utilisions le routeur wifi ASUS RT-AC66U avec FreshTomato pour notre rĂ©seau, mais mon mari a mis Ă  niveau vers le Lenovo M920q pour faciliter la gestion des rĂ©seaux virtuels et pour optimiser le dĂ©bit. Il a dit qu'il avait choisi les composants pour minimiser l'espace, la consommation d'Ă©nergie et le bruit. Rien n'est neuf et tout peut ĂȘtre achetĂ© sur Ebay ou le marchĂ© de l'occasion. Pour le moment, la RAM et le stockage coĂ»tent trĂšs cher, et nous n'avons pas besoin de haute disponibilitĂ© ou rĂ©plication.

      network.png

      AprÚs l'école, ma fille a eu de l'énergie, donc je l'ai emmenée à un cours de rattrapage de gymnastique. C'était un cours collectif de tissu aérien. Pendant que ma fille participait en classe, j'ai étudié mes cartes Anki. Elle a globalement aimé le cours à l'exception de ses chaussettes perdues. Malheureusement, quelqu'un a pris les chaussettes de ma fille au lieu des siennes. Je me suis retenue de dire qu'elle aurait dû me donner ses affaires à garder.

      mercredi 4 mars

      J'ai écrit un article sur l'expansion de snippets par la reconnaissance vocale sur Emacs et sur d'autres applications.

      J'ai essayĂ© le bilan de prononciation d'Azure et la transcription des phonĂšmes par la bibliothĂšque Allosaurus, mais je pense que ceux-ci ne sont ni fiables ni adaptĂ©s Ă  mes objectifs. Je ne sais pas si les scores d'Azure sont utiles. Allosaurus ne me donne pas l'API que je veux, mĂȘme si j'analyse l'enregistrement de mon tuteur. (Je dois le vĂ©rifier avec le rĂ©sultat de la synthĂšse vocale
)

      Le cours phonologique de FSI contraste deux exemples courts similaires pour développer la compétence d'identification des différences. Pour le moment, mieux vaut améliorer mon processus pour extraire et écouter les segments vocaux de mon rendez-vous que de s'entraßner d'une façon peu fiable et probablement incorrecte mais avec assurance.

      Ma fille et moi avons fait des courses. AprÚs une pause, ma fille et moi sommes allées au parc pour jouer à Pokémon Go avec beaucoup d'autres dresseurs. Nous avons gagné quelques raids, mais ma fille n'a pas attrapé les Pokémons qu'elle voulait. Elle était un peu déçue, mais elle a dit que c'était une bonne promenade de toute façon.

      Ma fille était de mauvaise humeur à l'heure du coucher à cause de mon conseil pendant le brossage. Je suis restée calme et je lui ai donné de l'espace.

      jeudi 5 mars

      Ma fille s'est réveillée toute seule ce matin et elle a pris son petit-déjeuner, mais elle n'a pas voulu assister à ses cours en ligne. La harceler n'est pas utile, donc je l'ai laissée gérer ses propres émotions. J'ai travaillé sur le piano. J'ai aussi amélioré l'automatisation pour rassembler les jalons de distribution pour la Bike Brigade en utilisant Spookfox. J'ai découvert que la clé est d'utiliser le code

      document.querySelector('form[phx-change="update_options"]')
        .dispatchEvent(new Event('submit', {bubbles: true, cancelable:true}))
      

      pour mettre le tableau à jour aprÚs avoir changé les dates. Spookfox ne me permet pas d'attendre le résultat s'il prend du temps, donc je dois attendre dans Emacs Lisp comme ça :

      (let (result)
        (dolist (block-name '("milestone-this-month-set"
                              "milestone-this-month-get"
                              "milestone-before-month-set"
                              "milestone-before-month-get"
                              "milestone-after-month-set"
                              "milestone-after-month-get"
                              "milestone-summary"))
          (setq result
                 (org-babel-execute-src-block
                  nil
                  (org-babel-lob--src-info block-name)
                  nil 'babel-call))
          (when (string-match "-set" block-name)
            (message "Waiting after %s..." block-name)
            (sit-for 3)))
        (kill-new result)
        (message "Copied."))
      

      De cette façon, j'ai simplifié le processus pour réduire le nombre de clics. Le code complet est ici.

      vendredi 6 mars

      J'ai adoré travailler sur ma prononciation via mes notes sur notre réseau sur lequel mon tuteur m'avait interrogée mardi et mon mari m'avait aidée. J'ai besoin de travailler encore sur l'alphabet, qui est nécessaire pour lire les noms de modÚles à voix haute. Mon tuteur a aussi des questions sur les LLM. J'ai hùte d'écrire plus de notes.

      Nous avons réarrangé des meubles parce que le nouveau lit arrive demain pour notre fille. Nous avons déplacé les étagÚres dans la chambre de ma fille dans un coin qui est mon nouvel espace bureau.

      Ma fille était trop frustrée par l'école aujourd'hui. Elle a séché ses cours, et elle a voulu rentrer plus tÎt de sa sortie avec son amie. Je pense que cette journée était un peu difficile pour elle. Je me suis rappelé de penser sur le long terme, sans harcÚlement.

      samedi 7 mars

      Ma fille et moi avons jouĂ© Ă  Donjons et Dragons avec mes sƓurs et mes niĂšces. Nous avons bien aimĂ© la partie. Dans l'histoire, il y avait des kobolds qui habitent dans une des Cavernes du Chaos et qui regrettent d'avoir attrapĂ© un ours. L'ours avait trĂšs faim et les kobolds aussi, parce que les kobolds lui donnent leur nourriture pour Ă©viter d'avoir mal. La clerc (ma fille) et la guerriĂšre (une de mes niĂšces) ont rĂ©ussi Ă  attirer l'ours dehors avec des bleuets. Ma sƓur la magicienne a menĂ© la charge contre des maraudeurs qui habitaient dans une autre caverne, et nous les avons vaincus. Dans une chambre, nous avons vu deux coffres, mais nous avons trouvĂ© qu'un coffre Ă©tait en fait un imitateur. AprĂšs un autre combat, nous avons trouvĂ© 150 piĂšces d'or, des bottes et une potion mystĂ©rieuse.

      AprÚs le déjeuner, ma fille et moi avons fait une promenade au parc pendant que nous jouions à Pokémon Go. Il faisait beau avec beaucoup de brume qui semblait un peu magique.

      Puis, mon mari et moi avons démonté l'ancien lit de ma fille et quelques autres meubles dans sa chambre pour créer de l'espace pour son nouveau lit.

      dimanche 8 mars

      Ma fille a réussi à éviter de tomber de son nouveau lit mezzanine. SuccÚs ! Mon mari a fini de poncer et de vernir le garde-corps qu'il fabriquait en bois, donc il l'a installé pour nous permettre d'utiliser le matelas qui est trop épais pour le garde-corps original.

      J'ai commencé à externaliser mon code dans un nouveau package d'apprentissage des langues. Je ne sais pas s'il est utile aux autres, mais si je veux aider les autres à essayer, il a besoin d'un peu de travail.

      Il faisait trĂšs beau. Mon mari, ma fille et moi sommes allĂ©s Ă  IKEA pour acheter des coussins, des lumiĂšres et un tapis de gym pour le petit coin jeu sous le nouveau lit de ma fille. Pendant ce temps-lĂ , ma fille a vu un couteau qu'elle a aimĂ©, donc nous l'avons achetĂ© aussi. À la maison, elle a installĂ© le tapis et les coussins elle-mĂȘme. Elle a dĂ©cidĂ© de rapporter les lumiĂšres pour se faire rembourser la semaine prochaine.

      Pour le dßner, nous avons préparé des nuggets de poulet, des frites et du brocoli.

      Sur l'intelligence artificielle

      Dans le rendez-vous précédent, mon tuteur m'a posé des questions sur l'intelligence artificielle. Je veux réfléchir sur l'IA pour travailler ma prononciation en utilisant un sujet qui nous intéresse également, et pour trouver des points d'amélioration.

      D'abord, du contexte pour expliquer ma perspective :

      • Je laisse de cĂŽtĂ© les questions sur l'impact environnemental ou l'Ă©thique des donnĂ©es entrantes.
      • Jusqu'Ă  prĂ©sent, j'ai essayĂ© l'IA pour mes centres d'intĂ©rĂȘt comme la parentalitĂ©, l'apprentissage du français et la programmation en Emacs Lisp, en Python et en Javascript. Je l'ai aussi utilisĂ©e pour faire des recherches.
      • Je travaille seulement un peu comme consultante, mais en fait, c'est juste pour le plaisir. Je ne veux pas augmenter ma charge de travail parce que je me concentre sur ma fille et mes intĂ©rĂȘts personnels. Rien ne me presse d'utiliser l'IA (comme un chef, des clients ou des concurrents). L'IA ne me menace pas. Je peux l'utiliser ou ne pas l'utiliser, Ă  mon grĂ©. Je peux me focaliser sur mon bonheur.
      • Je peux consacrer une petite partie de mon budget Ă  des essais, mais je ne veux pas travailler davantage pour rentabiliser une dĂ©pense plus importante. Pour le moment, les limites d'utilisation gratuite de Gemini, de Claude et d'Azure suffisent pour mes idĂ©es et mon temps limitĂ©. Je n'ai pas le temps de concentration nĂ©cessaire pour justifier l'investissement dans mon propre matĂ©riel, et sinon, les progrĂšs sont trop rapides pour m'engager dans une configuration spĂ©cifique.
      • J'ai une conscience aiguĂ« des limites cognitives ou physiques Ă  cause des difficultĂ©s de santĂ© de ma mĂšre et de ma sƓur, et de mes expĂ©riences avec mes limitations Ă  cause du fait que je suis la personne principalement en charge de ma fille.
      • Je lis trĂšs vite, mais je n'ai pas assez de patience pour les longs contenus vidĂ©o ou audio. Je n'aime pas les textes qui contiennent beaucoup de remplissage.
      • J'aime la programmation, donc je comprends un peu comment l'IA fonctionne et je ne peux pas lui attribuer une vraie intelligence. Je n'aime pas non plus les rĂ©sultats imprĂ©visibles.
      • De mon cĂŽtĂ©, c'est facile de lancer beaucoup d'idĂ©es. C'est difficile de les mener Ă  terme. Je peine Ă  finaliser mes tĂąches parce que de nouvelles idĂ©es arrivent sans cesse. Mais presque aucune de mes tĂąches n'est vraiment nĂ©cessaire, donc ce n'est pas grave.
      • J'aime bien l'amĂ©lioration incrĂ©mentale. Je prĂ©fĂšre les petites Ă©tapes, les petites fonctions, les petits logiciels.
      • Beaucoup de gens ont une rĂ©action forte contre l'IA pour plusieurs raisons qui incluent le battage mĂ©diatique excessif dont elle fait l'objet, son utilisation Ă  mauvais escient, et l'inondation de banalitĂ© qu'elle produit.
      La programmation

      Pour la programmation, je trouve qu'elle fonctionne mieux pour les logiciels courts que pour les logiciels longs. Je réécris souvent la majoritĂ© du logiciel Ă  l'exception d'un ou deux morceaux parce que ce code ne me convient pas. De temps en temps, j'utilise l'IA pour parfaire ou vĂ©rifier une idĂ©e rapidement avant de travailler sur l'idĂ©e moi-mĂȘme. Je ne veux pas l'utiliser pour les correctifs que je veux soumettre Ă  d'autres projets parce que le code ne me semble pas correct et je ne veux pas gaspiller le temps d'autres bĂ©nĂ©voles.

      Quelques exemples concrets :

      • C'Ă©tait utile pour implĂ©menter une fonction qui compare deux listes et renvoie les Ă©lĂ©ments ajoutĂ©s, enlevĂ©s, ou modifiĂ©s via un algorithme classique que je comprends un peu mais pas suffisamment pour l'implĂ©menter moi-mĂȘme.
      • C'Ă©tait utile pour tester l'idĂ©e d'un serveur de Kokoro TTS qui est compatible avec le serveur speechd parce que je ne sais pas encore comment faire un serveur multithread en Python. J'aime pouvoir lui donner trois dĂ©pĂŽts git et des instructions pour gĂ©nĂ©rer un logiciel Ă  partir d'un dĂ©pĂŽt pour un autre via le troisiĂšme dĂ©pĂŽt. Mais je ne veux pas le publier avant de réécrire et tout comprendre.
      • C'Ă©tait utile pour gĂ©nĂ©rer des interfaces web pour mes idĂ©es personnelles.
      • Ce n'Ă©tait pas trĂšs utile pour bricoler ma configuration (Ă  l'exception d'identifier parfois des commandes ou des variables que je ne connais pas), parce que j'aime bien le bricolage. SpĂ©cifier mes objectifs demande souvent autant de travail que de les implĂ©menter moi-mĂȘme.

      Mon mari a son propre abonnement à Claude IA. Il a dit qu'il l'apprécie parce que l'IA peut gérer plusieurs petites tùches qui autrement nécessitent beaucoup de recherches. De mon cÎté, j'utilise souvent Gemini IA parce que sa limite d'utilisation gratuite est généreuse. J'ai aussi essayé Claude Code, mais mes connaissances sont limitées. Il semble utile, mais je préfÚre l'isoler dans une machine virtuelle, donc c'est peu pratique pour moi en ce moment.

      L'IA est trĂšs utile pour utiliser des commandes qui ont beaucoup d'options comme ffmpeg ou gnuplot.

      Je ne trouve pas l'IA assez fiable pour la laisser agir complĂštement indĂ©pendamment. Peut-ĂȘtre un jour, mais pour moi, pas encore.

      L'apprentissage du français

      J'aime utiliser l'IA pour me donner des retours sur mes textes. Si j'utilise seulement le dictionnaire, je ferai beaucoup d'anglicismes Ă  cause de la traduction littĂ©rale. Les sujets qui m'intĂ©ressent sont un peu rares, donc ce sera peut-ĂȘtre difficile de trouver un tuteur qui se concentre exactement sur ceux-lĂ . C'est un peu inefficace de corriger mon Ă©criture mot Ă  mot avec un professionnel. Mon journal et mes pensĂ©es ne sont pas si importants. Avec l'IA, je n'ai pas Ă  perdre de temps avec mon tuteur pour corriger beaucoup d'erreurs comme l'accord du nom et du verbe ou les mots maladroits, et je dĂ©couvre de nouveaux mots et expressions. Les suggestions de l'IA sont de temps en temps bizarres, donc c'est toujours une bonne idĂ©e de vĂ©rifier avec de vraies personnes. Sans l'IA, je pourrais peut-ĂȘtre apprendre plus lentement avec l'aide d'Internet, qui a beaucoup de ressources comme Vitrine linguistique.

      J'ai essayĂ© l'IA pour faire des commentaires sur ma prononciation, mais je pense que ce n'est pas encore fiable et je n'ai pas l'expĂ©rience pour bien juger. Je peux peut-ĂȘtre vĂ©rifier mes rĂ©sultats avec un tuteur, mais c'est peut-ĂȘtre difficile Ă  cause des objectifs contradictoires, comme les personnes Ă  qui l'on demande de former leurs remplaçants. En fait, je ne veux pas remplacer la connexion humaine. Je veux profiter davantage, apprendre davantage avec l'aide de vraies personnes, complĂ©tĂ©e par l'aide de l'IA. Il y a des chercheurs qui Ă©tudient les applications de l'IA Ă  l'apprentissage des langues. Je peux attendre leurs dĂ©couvertes. En attendant, je pense qu'il vaut mieux utiliser l'IA pour comprendre d'autres maniĂšres d'analyser la prononciation moi-mĂȘme, et pour construire des outils personnalisĂ©s peut-ĂȘtre comme les rĂ©sumĂ©s et les extraits de nos rendez-vous, les visualisations de mes tentatives, ou une interface pour enregistrer et Ă©couter en temps rĂ©el.

      De temps en temps, j'essaye de générer des histoires ou des articles compréhensibles de mon niveau (ou presque). Pour le moment, je préfÚre d'autres ressources pour la lecture, comme les sous-titres d'émissions. Néanmoins, les traductions automatiques sur Reddit m'intéressent, donc j'ai réussi à remplacer mon fil d'actualité par un flux en français.

      Je ne suis pas encore prĂȘte Ă  converser avec des IA par la voix. J'ai essayĂ© la conversation libre et le dialogue presque scĂ©narisĂ©. J'adore les sous-titres simultanĂ©s, mais je n'ai pas toujours trouvĂ© une mĂ©thode ou un systĂšme qui me convienne. Dans la conversation libre, je sais que l'interlocuteur est une IA, donc je n'ai pas une vraie curiositĂ© pour ses «intĂ©rĂȘts ou pensĂ©es». La conversation semblait trĂšs artificielle. En plus, je pense que je prĂ©fĂ©rerais en construire un moi-mĂȘme pour plus de contrĂŽle. De toute façon, ma prononciation, ma grammaire et mon vocabulaire ont besoin de travail. Dans le dialogue scĂ©narisĂ©, je n'ai pas encore un vocabulaire assez riche pour discuter des sujets dans les exercices gĂ©nĂ©raux. Si je rĂ©pĂšte simplement, je n'ai pas besoin d'IA pour ça.

      La parentalité

      J'ai parfois utilisĂ© Claude IA pour gĂ©nĂ©rer des histoires interactives sur les centres d'intĂ©rĂȘt de ma fille. Les histoires incluent les mots que ma fille doit apprendre pour sa classe. Elles permettent de taper sur un mot pour l'Ă©couter par la synthĂšse vocale et pour voir la traduction. Elle aime bien ce format. L'enseignant de ma fille n'a pas le temps de personnaliser l'apprentissage du vocabulaire Ă  ce point, et elle est trop imprĂ©visible pour planifier ses propres rendez-vous avec un tuteur.

      Elle aime gĂ©nĂ©rer d'autres histoires interactives avec l'IA elle-mĂȘme, comme des petits jeux sur KPop Demon Hunters ou PokĂ©mon. Je pense que c'est une bonne façon de s'entraĂźner Ă  rĂ©flĂ©chir Ă  ce qu'elle veut, comment l'expliquer et comment le peaufiner.

      Elle a 10 ans. Personne ne sait à quoi ressemblera vraiment le monde quand elle sera grande. Je pense que c'est mieux que mon mari et moi montrions comment approcher, comment apprendre, comment décider ce que nous pensons, sans peur ni battage publicitaire.

      Sans l'IA, nous pourrions improviser nos propres histoires. Mais je pense que la capacité de lui donner plus de contrÎle dans une boucle de rétroaction1 rapide est une bonne chose.

      Je n'aime pas l'utiliser pour essayer de résoudre mes dilemmes de parentalité parce que l'IA confirme toujours quoi qu'on lui donne. De temps en temps, je l'utilise pour générer des questions pour réfléchir, ce qui est un peu plus utile.

      Mélanges

      J'aime bien la reconnaissance vocale parce qu'elle me permet de saisir plus d'idĂ©es plus vite (avant de les oublier) et d'analyser les transcriptions sans avoir Ă  réécouter tous les enregistrements. Beaucoup de raisons peuvent empĂȘcher une personne de taper. J'aime bien la programmation et l'Ă©criture, et je veux continuer longtemps. J'ai hĂąte d'explorer des interfaces vocales.

      Je pense que la maniĂšre probabiliste que l'IA utilise est prometteuse pour chercher des choses que je ne sais pas exactement, ce qui sera trĂšs utile quand on a un brouillard cĂ©rĂ©bral. Je n'aime pas les rĂ©sumĂ©s qui sont souvent mauvais et qui enlĂšvent l'expĂ©rience de rencontrer d'autres personnes qui pensent elles aussi des choses similaires. J'aime suivre les liens oĂč je peux en apprendre davantage. J'aime aussi poser quelques questions Ă  l'IA avant ou au lieu de demander Ă  une vraie personne.

      Les étapes prochaines pour moi

      Je vais continuer Ă  essayer l'IA dans mes centres d'intĂ©rĂȘt. Je veux extraire mes fonctions personnelles dans des bibliothĂšques de reconnaissance vocale et d'apprentissage des langues pour aider les autres, mais j'avance lentement parce que mon attention est facile Ă  dĂ©tourner. Petit Ă  petit.

      Je veux essayer les bibliothĂšques d'IA sous Emacs comme agent-shell. Si je peux approuver manuellement chaque commande, je pense que ce n'est pas grave.

      Footnotes

      1

      Feedback loop? My tutor was not sure about the wording.

      You can e-mail me at sacha@sachachua.com.

    12. 🔗 sacha chua :: living an awesome life Emacs Lisp and NodeJS: Getting the bolded words from a section of a Google Document rss
      • : Cleaned up links from Google
      • : Simplified getting a section or finding the bolded text by using the Org Mode format instead.

      During the sessions with my French tutor, I share a Google document so that we can mark the words where I need to practice my pronunciation some more or tweak the wording. Using Ctrl+B to make the word as bold is an easy way to make it jump out.

      I used to copy these changes into my Org Mode notes manually, but today I thought I'd try automating some of it.

      First, I need a script to download the HTML for a specified Google document. This is probably easier to do with the NodeJS library rather than with oauth2.el and url-retrieve-synchronously because of various authentication things.

      require('dotenv').config();
      const { google } = require('googleapis');
      
      async function download(fileId) {
        const auth = new google.auth.GoogleAuth({
          scopes: ['https://www.googleapis.com/auth/drive.readonly'],
        });
        const drive = google.drive({ version: 'v3', auth });
        const htmlRes = await drive.files.export({
          fileId: fileId,
          mimeType: 'text/html'
        });
        return htmlRes.data;
      }
      
      async function main() {
        console.log(await download(process.argv.length > 2 ? process.argv[2] : process.env['DOC_ID']));
      }
      
      main();
      

      Then I can wrap a little bit of Emacs Lisp around it.

      (defvar my-google-doc-download-command
        (list "nodejs" (expand-file-name "~/bin/download-google-doc-html.cjs")))
      
      (defun my-google-doc-html (doc-id)
        (when (string-match "https://docs\\.google\\.com/document/d/\\(.+?\\)/" doc-id)
          (setq doc-id (match-string 1 doc-id)))
        (with-temp-buffer
          (apply #'call-process (car my-google-doc-download-command)
                 nil t nil (append (cdr my-google-doc-download-command) (list doc-id)))
          (buffer-string)))
      
      (defun my-google-doc-clean-html (html)
        "Remove links on spaces, replace Google links."
        (let ((dom (with-temp-buffer
                     (insert html)
                     (libxml-parse-html-region))))
          (dom-search
           dom
           (lambda (o)
             (when (eq (dom-tag o) 'a)
               (when (and (dom-attr o 'href)
                          (string-match "https://\\(www\\.\\)?google\\.com/url\\?q=" (dom-attr o 'href)))
                 (let* ((parsed (url-path-and-query
                                 (url-generic-parse-url (dom-attr o 'href))))
                        (params (url-parse-query-string (cdr parsed))))
                   (dom-set-attribute o 'href (car (assoc-default "q" params #'string=)))))
               (let ((text (string= (string-trim (dom-text o)) "")))
                 (when (string= text "")
                   (setf (car o) 'span))))
             (when (and
                    (string-match "font-weight:700" (or (dom-attr o 'style) ""))
                    (not (string-match "font-style:normal" (or (dom-attr o 'style) ""))))
               (setf (car o) 'strong))
             (when (dom-attr o 'style)
               (dom-remove-attribute o 'style))))
          ;; bold text is actually represented as font-weight:700 instead
          (with-temp-buffer
            (svg-print dom)
            (buffer-string))))
      
      (defun my-google-doc-org (doc-id)
        "Return DOC-ID in Org Mode format."
        (pandoc-convert-stdio (my-google-doc-clean-html (my-google-doc-html doc-id)) "html" "org"))
      

      I have lots of sections in that document, including past journal entries, so I want to get a specific section by name.

      (defun my-org-get-subtree-by-name (org-text heading-name)
        "Return ORG-TEXT subtree for HEADING-NAME."
        (with-temp-buffer
          (insert org-text)
          (org-mode)
          (goto-char (point-min))
          (let ((org-trust-scanner-tags t))
            (car (delq nil
                       (org-map-entries
                        (lambda ()
                          (when (string= (org-entry-get (point) "ITEM") heading-name)
                            (buffer-substring (point) (org-end-of-subtree))))))))))
      

      Now I can get the bolded words from a section of my notes, with just a sentence for context. I use pandoc to convert it to Org Mode syntax.

      (defvar my-lang-words-for-review-context-function 'sentence-at-point)
      (defvar my-lang-tutor-notes-url nil)
      (defun my-lang-tutor-notes (section-name)
        (my-org-get-subtree-by-name
         (my-google-doc-org my-lang-tutor-notes-url)
         section-name))
      
      (defun my-lang-words-for-review (section)
        "List the bolded words for review in SECTION."
        (let* ((section (my-lang-tutor-notes section))
               results)
          (with-temp-buffer
            (insert section)
            (org-mode)
            (goto-char (point-min))
            (org-map-entries
             (lambda ()
               (org-end-of-meta-data t)
               (while (re-search-forward "\\*[^* ].*?\\*" nil t)
                 (cl-pushnew
                  (replace-regexp-in-string
                   "[ \n ]+" " "
                   (funcall my-lang-words-for-review-context-function))
                  results
                  :test 'string=)))))
          (nreverse results)))
      

      For example, when I run it on my notes on artificial intelligence, this is the list of bolded words and the sentences that contain them.

      (my-lang-words-for-review "Sur l'intelligence artificielle")
      
      • Je l'ai aussi utilisĂ©e pour faire des recherches.
      • Je peux consacrer une petite partie de mon budget Ă  des essais, mais je ne veux pas travailler davantage pour rentabiliser une dĂ©pense plus importante.
      • Je n'ai pas le temps de concentration nĂ©cessaire pour justifier l'investissement dans mon propre matĂ©riel, et sinon, les progrĂšs sont trop rapides pour m'engager dans une configuration spĂ©cifique.
      • J'ai une conscience aiguĂ« des limites cognitives ou physiques Ă  cause des difficultĂ©s de santĂ© de ma mĂšre et de ma sƓur, et de mes expĂ©riences avec mes limitations Ă  cause du fait que je suis la personne principalement en charge de ma fille.
      • Je lis trĂšs vite, mais je n'ai pas assez de patience pour les longs contenus vidĂ©o ou audio.
      • Je n'aime pas les textes qui contiennent beaucoup de remplissage.
      • Beaucoup de gens ont une rĂ©action forte contre l'IA pour plusieurs raisons qui incluent le battage mĂ©diatique excessif dont elle fait l'objet, son utilisation Ă  mauvais escient, et l'inondation de banalitĂ© qu'elle produit.
      • Je réécris souvent la majoritĂ© du logiciel Ă  l'exception d'un ou deux morceaux parce que ce code ne me convient pas.
      • Je ne veux pas l'utiliser pour les correctifs que je veux soumettre Ă  d'autres projets parce que le code ne me semble pas correct et je ne veux pas gaspiller le temps d'autres bĂ©nĂ©voles.
      • J'aime pouvoir lui donner trois dĂ©pĂŽts git et des instructions pour gĂ©nĂ©rer un logiciel Ă  partir d'un dĂ©pĂŽt pour un autre via le troisiĂšme dĂ©pĂŽt.
      • Mais je ne veux pas le publier avant de réécrire et tout comprendre.
      • Sans l'IA, je pourrais peut-ĂȘtre apprendre plus lentement avec l'aide d'Internet, qui a beaucoup de ressources commehttps://vitrinelinguistique.oqlf.gouv.qc.ca/Vitrine linguistique.
      • Je veux profiter davantage, apprendre davantage avec l'aide de vraies personnes, complĂ©tĂ©e par l'aide de l'IA.
      • J'adore les sous-titres simultanĂ©s, mais je n'ai pas toujours trouvĂ© une mĂ©thode ou un systĂšme qui me convienne.

      I can then go into the WhisperX transcription JSON file and replay those parts for closer review.

      I can also tweak the context function to give me less information. For example, to limit it to the containing phrase, I can do this:

      (defun my-split-string-keep-delimiters (string delimiter)
        (when string
          (let (results pos)
            (with-temp-buffer
              (insert string)
              (goto-char (point-min))
              (setq pos (point-min))
              (while (re-search-forward delimiter nil t)
                (push (buffer-substring pos (match-beginning 0)) results)
                (setq pos (match-beginning 0)))
              (push (buffer-substring pos (point-max)) results)
              (nreverse results)))))
      
      (ert-deftest my-split-string-keep-delimiters ()
       (should
        (equal (my-split-string-keep-delimiters
                "Beaucoup de gens ont une réaction forte contre l'IA pour plusieurs raisons qui *incluent* le battage médiatique excessif dont elle fait l'objet, son utilisation à mauvais escient, et *l'inondation de banalité* qu'elle produit."
                ", \\| que \\| qui \\| qu'ils? \\| qu'elles? \\| qu'on "
                )
       )))
      
      (defun my-lang-words-for-review-phrase-context (&optional s)
        (setq s (replace-regexp-in-string " " " " (or s (sentence-at-point))))
        (string-join
         (seq-filter (lambda (s) (string-match "\\*" s))
                     (my-split-string-keep-delimiters s ", \\| parce que \\| que \\| qui \\| qu'ils? \\| qu'elles? \\| qu'on \\| pour "))
         " ... "))
      
      (ert-deftest my-lang-words-for-review-phrase-context ()
        (should
         (equal (my-lang-words-for-review-phrase-context
                 "Je peux consacrer une petite partie de mon *budget* à des essais, mais je ne veux pas travailler davantage pour rentabiliser une dépense plus importante.")
                "Je peux consacrer une petite partie de mon *budget* à des essais")))
      
      (let ((my-lang-words-for-review-context-function 'my-lang-words-for-review-phrase-context))
        (my-lang-words-for-review "Sur l'intelligence artificielle"))
      
      • pour faire des recherches.
      • Je peux consacrer une petite partie de mon budget Ă  des essais
      • , et sinon
      • J'ai une conscience aiguĂ« des limites cognitives ou physiques Ă  cause des difficultĂ©s de santĂ© de ma mĂšre et de ma sƓur
      • pour les longs contenus vidĂ©o ou audio.
      • Je n'aime pas les textes qui contiennent beaucoup de remplissage.
      • qui incluent le battage mĂ©diatique excessif dont elle fait l'objet … , et l'inondation de banalitĂ©
      • Je réécris souvent la majoritĂ© du logiciel Ă  l'exception d'un ou deux morceaux
      • pour les correctifs … parce que le code ne me semble pas correct et je ne veux pas gaspiller le temps d'autres bĂ©nĂ©voles.
      • pour un autre via le troisiĂšme dĂ©pĂŽt.
      • Mais je ne veux pas le publier avant de réécrire et tout comprendre.
      • , je pourrais peut-ĂȘtre apprendre plus lentement avec l'aide d'Internet
      • , apprendre davantage avec l'aide de vraies personnes, complĂ©tĂ©e par l'aide de l'IA.
      • qui me convienne.

      Now that I have a function for retrieving the HTML or Org Mode for a section, I can use that to wdiff against my current text to more easily spot wording changes.

      (defun my-lang-tutor-notes-wdiff-org ()
        (interactive)
        (let ((section (org-entry-get (point) "ITEM")))
          (my-wdiff-strings
           (replace-regexp-in-string
            " " " "
            (my-org-subtree-text-without-blocks))
           (replace-regexp-in-string
            " " " "
            (my-lang-tutor-notes section)))))
      

      Related:

      Screenshot:

      2026-03-12_11-28-24.png
      Figure 1: wdiff
      This is part of my Emacs configuration.

      You can e-mail me at sacha@sachachua.com.

    13. 🔗 News Minimalist 🐱 AI startup raises $1 billion to fix hallucinations + 10 more stories rss

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

      [5.9] Yann LeCun's AMI Labs raises $1.03 billion to build AI world models —techcrunch.com(+11)

      Yann LeCun’s new venture, AMI Labs, raised $1.03 billion to develop world models that learn from physical reality, seeking to overcome the reliability limitations of existing large language models.

      Valued at $3.5 billion, the company focuses on Joint Embedding Predictive Architecture to minimize AI hallucinations. Major investors like NVIDIA and Bezos Expeditions funded the round, supporting a high-profile research team operating across Paris, New York, Montreal, and Singapore.

      Although commercial applications may take years, the startup intends to publish its research and release open-source code. Early deployments will be tested through industrial partners, including the healthcare startup Nabla.

      [6.0] Global repercussions emerge as US, Israel, and Iran war expands —npr.org(+952)

      A week of U.S. and Israeli strikes against Iran has killed Supreme Leader Ayatollah Ali Khamenei and neutralized Iran's military, sparking a widening regional conflict and global economic instability.

      Iran responded with retaliatory attacks across the Middle East, striking U.S. bases and oil infrastructure in several Gulf nations. Fighting has spread to Lebanon while oil prices surged past ninety dollars per barrel following the closure of the strategic Strait of Hormuz.

      Global powers including China and Russia have called for de-escalation as diplomatic tensions rise between the U.S. and European allies. Meanwhile, the conflict continues to disrupt energy markets and international trade.

      Highly covered news with significance over 5.5

      [6.4] Ukraine deploys armed robots to combat Russian forces — bbc.com (+3)

      [6.4] Germany becomes the fourth-largest global arms exporter — tagesschau.de (German) (+18)

      [6.1] China exports surge in first two months of the year despite Trump tariffs — bbc.com (+8)

      [5.9] Trump pressures Latin American leaders to reduce China ties — courant.com (+77)

      [5.8] France sends aircraft carrier to protect Strait of Hormuz shipping — smh.com.au (+15)

      [5.8] Apple increases iPhone production in India to 25% — businesstoday.in (+6)

      [5.7] Trump launches Americas Counter Cartel Coalition with Latin American and Caribbean nations — nytimes.com (+9)

      [5.7] Federal pilot program launches flying cars in eight US regions this summer — wired.com [$] (+4)

      [5.8] UK cancer death rates reach historic low — news.sky.com (+4)

      Thanks for reading!

      — Vadim


      You can create a personal RSS feed with premium.


      Powered by beehiiv

    14. 🔗 r/reverseengineering Reverse engineering FORM swim goggles: custom protobuf over BLE, 697 captured API requests, full protocol documented rss
    15. 🔗 r/LocalLLaMA This guy đŸ€Ą rss

      This guy đŸ€Ą | At least T3 Code is open-source/MIT licensed. submitted by /u/xenydactyl
      [link] [comments]
      ---|---

    16. 🔗 r/reverseengineering I've made indent guides plugin for IDA rss
    17. 🔗 r/LocalLLaMA How I topped the Open LLM Leaderboard using 2x 4090 GPUs — no weights modified. rss

      How I topped the Open LLM Leaderboard using 2x 4090 GPUs — no weights modified. | Hi LocalLLaMAs, A few years ago, I found that duplicating a specific block of 7 middle layers in Qwen2-72B, without modifying any weights, improved performance across all Open LLM Leaderboard benchmarks and took #1. As of 2026, the top 4 models on that leaderboard are still descendants. The weird finding: single-layer duplication does nothing. Too few layers, nothing. Too many, it gets worse. Only circuit-sized blocks of ~7 layers work. This suggests pretraining carves out discrete functional circuits in the layer stack that only work when preserved whole. The whole thing was developed on 2x RTX 4090s in my basement. I don't write papers any more, so here is a full technical write-up in Blog format for your enjoyment. I'm the same guy who built GLaDOS, and scores a crazy Nvidia GH200 system here on Reddit. \I'm now running current models (GLM-4.7, Qwen3.5, MiniMax M2.5) on this dual GH200 rig (see my other post). Code and new models coming soon, including special RYS versions of Qwen3.5 27B and 35A3B Happy to answer questions. submitted by /u/Reddactor
      [link] [comments]
      ---|---

    18. 🔗 hyprwm/Hyprland v0.54.2 release

      Another patch release backporting some fixes from main onto 0.54.1.

      Fixes backported

      • config/descriptions: add missing desc entry
      • layout/windowTarget: add visualBox (#13626)
      • algo/scroll: fix unsigned wrap (#13634)
      • compositor: fix missing recheckWorkArea to prevent CReservedArea assert failure (#13590)
      • core: fix i586 build (#13550)
      • deco/border: fix damage region
      • desktop/rules: fix empty workspace handling (#13544)
      • desktop/windowRule: fix matching CONTENT (#13636)
      • layout/groupTarget: fix crash on null space assignment (#13614)
      • layout: fix crash on monitor reconnect due to stale workspace state
      • layout: fix drag_threshold window snap regression (rebased for #12890) (#13140)
      • layout: fix null deref in focalPointForDir and moveInDirection (#13652)
      • pointer: fix hardware cursor rendering on rotated/flipped monitors (#13574)
      • protocols/sessionLock: fix crash when monitor is gone during lock surface creation
      • screencopy: fix minor crash (#13566)
      • algo/dwindle: Respect force_split when moving windows to workspaces (#13038)
      • algo/dwindle: do NOT use smart_split for overridden focal point (#13635)
      • screenshare: improve destroy logic of objects (#13554)

      Special thanks

      As always, massive thanks to our wonderful donators and sponsors:

      Sponsors

      Diamond

      37Signals

      Gold

      Framework

      Donators

      Top Supporters:

      Seishin, Kay, johndoe42, d, vmfunc, Theory_Lukas, --, MasterHowToLearn, iain, ari-cake, TyrHeimdal, alexmanman5, MadCatX, Xoores, inittux111, RaymondLC92, Insprill, John Shelburne, Illyan, Jas Singh, Joshua Weaver, miget.com, Tonao Paneguini, Brandon Wang, Arkevius, Semtex, Snorezor, ExBhal, alukortti, lzieniew, taigrr, 3RM, DHH, Hunter Wesson, Sierra Layla Vithica, soy_3l.beantser, Anon2033, Tom94

      New Monthly Supporters:

      monkeypost, lorenzhawkes, Adam Saudagar, Donovan Young, SpoderMouse, prafesa, b3st1m0s, CaptainShwah, Mozart409, bernd, dingo, Marc Galbraith, Mongoss, .tweep, x-wilk, Yngviwarr, moonshiner113, Dani Moreira, Nathan LeSueur, Chimal, edgarsilva, NachoAz, mo, McRealz, wrkshpstudio, crutonjohn

      One-time Donators:

      macsek, kxwm, Bex Jonathan, Alex, Tomas Kirkegaard, Viacheslav Demushkin, Clive, phil, luxxa, peterjs, tetamusha, pallavk, michaelsx, LichHunter, fratervital, Marpin, SxK, mglvsky, Pembo, Priyav Shah, ChazBeaver, Kim, JonGoogle, matt p, tim, ybaroj, Mr. Monet Baches, NoX, knurreleif, bosnaufal, Alex Vera, fathulk, nh3, Peter, Charles Silva, Tyvren, BI0L0G0S, fonte-della- bonitate, Alex Paterson, Ar, sK0pe, criss, Dnehring, Justin, hylk, é‚±ćœ‹çŽ‰KoryChiu, KSzykula, Loutci, jgarzadi, vladzapp, TonyDuan, Brian Starke, Jacobrale, Arvet, Jim C, frank2108, Bat-fox, M.Bergsprekken, sh-r0, Emmerich, davzucky, 3speed, 7KiLL, nu11p7r, Douglas Thomas, Ross, Dave Dashefsky, gignom, Androlax, Dakota, soup, Mac, Quiaro, bittersweet, earthian, Benedict Sonntag, Plockn, Palmen, SD, CyanideData, Spencer Flagg, davide, ashirsc, ddubs, dahol, C. Willard A.K.A Skubaaa, ddollar, Kelvin, Gwynspring, Richard, ZoltĂĄn, FirstKix, Zeux, CodeTex, shoedler, brk, Ben Damman, Nils Melchert, Ekoban, D., istoleyurballs , gaKz, ComputerPone, Cell the FĂŒhrer, defaltastra, Vex, Bulletcharm, cosmincartas, Eccomi, vsa, YvesCB, mmsaf, JonathanHart, Sean Hogge, leat bear, Arizon, JohannesChristel, Darmock, Olivier, Mehran, Anon, Trevvvvvvvvvvvvvvvvvvvv, C8H10N4O2, BeNe, Ko-fi Supporter :3, brad, rzsombor, Faustian, Jemmer, Antonio Sanguigni, woozee, Bluudek, chonaldo, LP, Spanching, Armin, BarbaPeru, Rockey, soba, FalconOne, eizengan, むらびべ, zanneth, 0xk1f0, Luccz, Shailesh Kanojia, ForgeWork , Richard Nunez, keith groupdigital.com, pinklizzy, win_cat_define, Bill, johhnry, Matysek, anonymus, github.com/wh1le, Iiro Ullin, Filinto Delgado, badoken, Simon Brundin, Ethan, Theo Puranen Åhfeldt, PoorProgrammer, lukas0008, PaweƂ S, Vandroiy, Mathias BrĂ€nnström, Happyelkk, zerocool823, Bryan, ralph_wiggums, DNA, skatos24, Darogirn , Hidde, phlay, lindolo25, Siege, Gus, Max, John Chukwuma, Loopy, Ben, PJ, mick, herakles, mikeU-1F45F, Ammanas, SeanGriffin, Artsiom, Erick, Marko, Ricky, Vincent mouline

      Full Changelog : v0.54.1...v0.54.2

    19. 🔗 r/Harrogate Improv Session in Harrogate rss

      Improv Session in Harrogate | Hi All, I run improv comedy sessions every couple of weeks in Harrogate. Our next one is next Tuesday (17th March). They are very low pressure, we do some easy group warm ups, followed by games and exercises. Our current sessions are aimed at beginners and improvers so there has never been a better time to try it out. If you have any questions let me know. As a bonus for first time joiners your first session is free. Thanks. submitted by /u/GritstoneBoulderer
      [link] [comments]
      ---|---

    20. 🔗 r/york Hotel Advice rss

      Hi all,

      I'm hoping to book a really nice room for my husband's 40th in October. I've currently booked a suite in the Judges Lodging but have just seen a nice looking deluxe room in Galtres Lodge Hotel.

      Would anyone have a preference here?

      Budget is max ÂŁ300 a night and would like something as nice as possible given the occasion.

      Thank you in advance. :)

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

    21. 🔗 r/Leeds The scooters are coming... Beryl scheme approved, 100 scooters to be available. rss

      https://democracy.leeds.gov.uk/ieDecisionDetails.aspx?ID=58678

      LCC's Facebook Post with quite a few comments

      Geofencing supposedly in place but it will be interesting to see how this is applied, in some cities they have very definite "no scoot" areas where they just stop working and LCC suggest this, along with speed limiters, will be implemented.

      They mention "control of the e-scooters in defined pedestrianised areas" so presumably they will be allowed on sections like Briggate for example?

      Will the pavements be littered with them and the river / canal their home before long? They suggest they will have to be "docked" like the bikes and not just left in a painted area like in York etc so hopefully this won't be an issue.

      Are our roads, cycle lanes and shared spaces suitable for those small wheels given the state of some of them and helmets only "recommended"?

      Given the illegal scooters pretty much have the keys to the city along with the illegal electric motorbikes pretending to be bicycles will the introduction of the legal scooters make the problem worse as people no longer think "scooter bad" by default?

      Hopefully the pricing isn't as high as the bikes to the point it's as cheap to get a bus, the focus on "cycling infrastructure" makes a bit more sense with this I suppose - will you give them a go?

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

    22. 🔗 r/york Moving van rentals rss

      Hi there, I’m moving from one side of York to the centre over the next couple of weeks. Does anyone have any good recommendations for small removal companies? Or even just a man with a van for a couple of hours that would be happy to help me move some furniture? It just seems like every quote I get online is ridiculously high or is only by the hour. I’m happy to pay obviously, I’d just like it to be a fixed sum. It’s my first time moving house by myself so am looking for any advice or recommendations. Thank you!

      Edit: Ooh, great ideas from all, thank you. I can rent one, and I do potentially have someone to drive it across York. Just waiting to hear back from them now. Just had a small panic being a 5ft2 woman with some big furniture!

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

    23. 🔗 HexRaysSA/plugin-repository commits sync repo: +3 plugins, +4 releases rss
      sync repo: +3 plugins, +4 releases
      
      ## New plugins
      - [ApplyCalleeTypeEx](https://github.com/Dump-GUY/ApplyCalleeTypeEx) (1.0.0)
      - [IDAssist](https://github.com/symgraph/IDAssist) (1.0.4)
      - [IDAssistMCP](https://github.com/symgraph/IDAssistMCP) (1.0.3)
      
      ## New releases
      - [IDAGuides](https://github.com/libtero/idaguides): 1.2.0
      
    24. 🔗 r/reverseengineering IronPE - Minimal Windows PE manual loader written in Rust. rss
    25. 🔗 @malcat@infosec.exchange We're happy to announce that [#malcat](https://infosec.exchange/tags/malcat) mastodon

      We're happy to announce that #malcat 0.9.13 is out!

      You'll find a new Apple-silicon MacOS port, two integrated MCP servers (in-GUI +headless) for automated triage and an improved interface:

      https://malcat.fr/blog/0913-is-out-macos-port-mcp-server-and-dark- mode

    26. 🔗 r/Yorkshire Yorkshire pudding is easily the best part of a roast. I don’t think a roast dinner is complete without one. rss
    27. 🔗 r/wiesbaden Wiesbaden macht Wiesbaden-Sachen rss
    28. 🔗 r/LocalLLaMA Qwen 3.5 0.8B - small enough to run on a watch. Cool enough to play DOOM. rss

      Qwen 3.5 0.8B - small enough to run on a watch. Cool enough to play DOOM. | So I went down the rabbit hole of making a VLM agent that actually plays DOOM. The concept is dead simple - take a screenshot from VizDoom, draw a numbered grid on top, send it to a vision model with two tools (shoot and move), the model decides what to do. Repeat. The wild part? It's Qwen 3.5 0.8B - a model that can run on a smartwatch, trained to generate text, but it handles the game surprisingly well. On the basic scenario it actually gets kills. Like, it sees the enemy, picks the right column, and shoots. I was genuinely surprised. On defend_the_center it's trickier - it hits enemies, but doesn't conserve ammo, and by the end it keeps trying to shoot when there's nothing left. But sometimes it outputs stuff like "I see a fireball but I'm not sure if it's an enemy", which is oddly self-aware for 0.8B parameters. The stack is Python + VizDoom + direct HTTP calls to LM Studio. Latency is about 10 seconds per step on an M1-series Mac. Currently trying to fix the ammo conservation - adding a "reason" field to tool calls so the model has to describe what it sees before deciding whether to shoot or not. We'll see how it goes. UPD: It's now open source! GitHub: https://github.com/Felliks/DoomVLM Added deathmatch mode, GPU support, Jupyter notebook - full writeup here: https://www.reddit.com/r/LocalLLaMA/comments/1rrlit7/doomvlm_is_now_open_source_vlm_models_playing_doom/ submitted by /u/MrFelliks
      [link] [comments]
      ---|---

    29. 🔗 r/Yorkshire Sometimes you forget how beautiful Yorkshire actually is. rss

      Sometimes you forget how beautiful Yorkshire actually is. | submitted by /u/Pinkplatabys
      [link] [comments]
      ---|---

    30. 🔗 MetaBrainz He’s the man who made music metadata “free” rss

      Thank you to Giampiero Di Carlo, the editor of Rockol, who gave us permission to repost this article. Originally posted in Italian at:https://musicbiz.rockol.it/news-757360/robert-kaye-1970-2026-scomparso-il- fondatore-di-musicbrainz

      The following English translation is courtesy of Google Translate with some manual edits.

      On February 21, 2026, Robert Kaye, founder and Executive Director of the
      MetaBrainz Foundation, the non-profit organization that supports projects like MusicBrainz and ListenBrainz, passed away. The news was announced a few days later by the MetaBrainz Board, described as an unexpected passing. Reposting this remembrance on Rockol MusicBiz late was intentional: we were friends and he deserves the visibility that the particular nature of the past week would have obscured.

      What we lose

      For those who work with music—from archives to platforms, from collectors to DJ software—Kaye is one of those figures who rarely make the front cover, yet change everything: he built the "silent" infrastructure that allows music to be found, sorted, recognized, and correctly linked over time, without this data remaining imprisoned in proprietary databases. Robert Kaye was a visionary of the free/open source community and the driving force behind the "Brainz" ecosystem. His loss is felt not only by those who compile metadata, but by anyone who uses tools based on that information.

      The reaction of the MetaBrainz community, in the official thread, speaks volumes about the human impact beyond the technical one: for many, he wasn't "just" a founder, but a daily presence within a project that thrives on volunteers, discussions and patience.

      Kaye was an engineer by training (Computer Engineering at Cal Poly) and had worked in companies and projects related to MP3 and music software during the dot-com era. At MetaBrainz, they tell it this way: his work on MP3 and his move to eMusic/FreeAmp was the spark that led him to build MusicBrainz and "fall in love" with open source.

      In 2004, he founded the MetaBrainz Foundation in California as a 501(c)(3), with a clear model: free non-commercial use and seeking financial support from commercial entities that benefit from the data and services.

      MusicBrainz and Beyond

      MusicBrainz is often described as an open music encyclopedia: a community database of artists, releases, and relationships that is the backbone for tagging, cataloging, and software integrations. The MetaBrainz ecosystem has since expanded (into ListenBrainz and other projects) but maintained the core idea: making metadata reusable, interoperable, and verifiable by a community. In practice, Robert Kaye's work is visible everywhere without his name appearing: when software correctly recognizes an artist despite homonyms, when an archive links releases and reissues, when a DJ tags a library consistently, when an app displays credits and discographies with fewer errors.

      MetaBrainz has already clarified that the project continues under the guidance of the Board and the existing structure and that updates on the transition will be shared. This is a very delicate transition: when a founder of an infrastructure passes away, the challenge is not just "keeping the servers running," but maintaining the trust of communities and commercial partners who depend on the collective effort.

      A "visible" founder: style, character, community

      Many tributes in recent days have emphasized a detail that is often crucial in open source projects: the founder's personality as the glue. In a personal recollection, Denny Vrandečić describes him as a "principled", "determined", loud and generous figure, capable of both energy and care—a rare combination in someone who must balance vision, inevitable conflicts within a community and sustainability. This isn't folklore: in community projects "governance" also involves tone, presence and the ability to make things happen without shutting down those who contribute. And we're not talking about a niche project here, but a piece of the music internet that many industries take for granted.

      To honor Robert Kaye today, it's crucial to emphasize that his legacy isn't a product but an operationalized idea: that music data can remain a common good, defensible and improvable, rather than becoming merely a closed commodity. And it's an idea that, in 2026, retains a certain weight.

    31. 🔗 Julia Evans Examples for the tcpdump and dig man pages rss

      Hello! My big takeaway from last month's musings about man pages was that examples in man pages are really great, so I worked on adding (or improving) examples to two of my favourite tools' man pages.

      Here they are:

      the goal: include the most basic examples

      The goal here was really just to give the absolute most basic examples of how to use the tool, for people who use tcpdump or dig infrequently (or have never used it before!) and don't remember how it works.

      So far saying "hey, I want to write an examples section for beginners and infrequent users of this tools" has been working really well. It's easy to explain, I think it makes sense from everything I've heard from users about what they want from a man page, and maintainers seem to find it compelling.

      Thanks to Denis Ovsienko, Guy Harris, Ondƙej SurĂœ, and everyone else who reviewed the docs changes, it was a good experience and left me motivated to do a little more work on man pages.

      why improve the man pages?

      I'm interested in working on tools' official documentation right now because:

      • Man pages can actually have close to 100% accurate information! Going through a review process to make sure that the information is actually true has a lot of value.
      • Even with basic questions "what are the most commonly used tcpdump flags", often maintainers are aware of useful features that I'm not! For example I learned by working on these tcpdump examples that if you're saving packets to a file with tcpdump -w out.pcap, it's useful to pass -v to print a live summary of how many packets have been captured so far. That's really useful, I didn't know it, and I don't think I ever would have noticed it on my own.

      It's kind of a weird place for me to be because honestly I always kind of assume documentation is going to be hard to read, and I usually just skip it and read a blog post or Stack Overflow comment or ask a friend instead. But right now I'm feeling optimistic, like maybe the documentation doesn't have to be bad? Maybe it could be just as good as reading a really great blog post, but with the benefit of also being actually correct? I've been using the Django documentation recently, and it's really good! We'll see.

      on avoiding writing the man page language

      The tcpdump project tool's man page is written in the roff language, which is kind of hard to use and that I really did not feel like learning it.

      I handled this by writing a very basic markdown-to-roff script to convert Markdown to roff, using similar conventions to what the man page was already using. I could maybe have just used pandoc, but the output pandoc produced seemed pretty different, so I thought it might be better to write my own script instead. Who knows.

      I did think it was cool to be able to just use an existing Markdown library's ability to parse the Markdown AST and then implement my own code-emitting methods to format things in a way that seemed to make sense in this context.

      man pages are complicated

      I went on a whole rabbit hole learning about the history of roff, how it's evolved since the 70s, and who's working on it today, inspired by learning about the mandoc project that BSD systems (and some Linux systems, and I think Mac OS) use for formatting man pages. I won't say more about that today though, maybe another time.

      In general it seems like there's a technical and cultural divide in how documentation works on BSD and on Linux that I still haven't really understood, but I have been feeling curious about what's going on in the BSD world.

      The comments section is here.