social.dk-libre.fr is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.

This server runs the snac software and there is no automatic sign-up process.

Search results for tag #dev

adb boosted

[?]adb » 🌐
@adbenitez@mastodon.de

@benrob0329 it is extremely cool, for example, I am learning and I have created an app to practice sentences for myself, all is synchronized across devices so I can stop in the computer and pick the phone and continue the practice on the phone exactly where I left it in the PC all without any 3rd party service! 🤩🤯

    AodeRelay boosted

    [?]Anthony » 🌐
    @abucci@buc.ci

    Every time there's something in the news about Google search, Kagi zealots come out of the woodwork to troll you into submission if you dare say anything about Kagi that doesn't resonate with their view. It's weird and people should stop being weird about technology like this.

    Kagi started as an AI company that wanted to slurp up the internet to provide a question "answering" service not unlike what Google is proposing to replace web search with. Perhaps they've toned this rhetoric down a bit on their blog recently but there's no evidence I'm aware of that the business has changed mission. All of this is still available on Kagi's own blog---including the fact that they used to be kagi.ai---yet somehow it's controversial to point it out. If you're looking for a web search engine that isn't likely to turn into a slop extruder, Kagi is probably not going to be the one. Try @Mojeek@mastodon.social or Marginalia. This list might be helpful too.


      Martouf boosted

      [?]Fake Scrum Stats Memes & Humor » 🌐
      @FakeScrumStats@techhub.social

      Girl (labeled New Hire) with blue hair sitting next to an old man (labeled Me) on a train.

Caption: How I feel when a fresh college grad joins the department

      Alt...Girl (labeled New Hire) with blue hair sitting next to an old man (labeled Me) on a train. Caption: How I feel when a fresh college grad joins the department

        adb boosted

        [?]adb » 🌐
        @adbenitez@mastodon.de

        AodeRelay boosted

        [?]Anthony » 🌐
        @abucci@buc.ci

        Re: https://hails.org/@hailey/116657391001259044

        I love this post for several reasons, one being that it got me thinking. The Bad Tech aside, generally speaking modern software development seems hyperfocused on change at the expense of stability. git has countless features for managing changes to source code. What's the equivalent tool for managing the stability of finished software? What's the tool that tells you "Great! You're done now, congratulations!"

        Surely there are pieces of software that are mature enough that we do not need to keep updating them (*) with new features. The industry seems to provide little fanfare or reward for reaching or even approaching such an end state.


        (*) Bug fixes, security patches, and porting aside.

          stanlog boosted

          [?]Entr'ouvert SCOP » 🌐
          @entrouvert@mastodon.libre-entreprise.com

          L’équipe Entr’ouvert s’agrandit encore : nous recrutons un·e développeur·euse Python/Django.
          Consultez l'offre et candidatez avant le 7 juin : entrouvert.com/actualites/2026

            3 ★ 5 ↺
            Dๅᴉĸo boosted

            [?]oldsysops » 🌐
            @oldsysops@social.dk-libre.fr

            stanlog boosted

            [?]Entr'ouvert SCOP » 🌐
            @entrouvert@mastodon.libre-entreprise.com

            L’équipe Entr’ouvert s’agrandit encore : nous recrutons un·e développeur·euse Python/Django.
            Consultez l'offre et candidatez avant le 7 juin : entrouvert.com/actualites/2026

              AodeRelay boosted

              [?]Anthony » 🌐
              @abucci@buc.ci

              Cloudflare just "verified" I'm a human four times in a row, and appears to be stuck in an infinite "verifying you're a human" loop. What a lovely service (/s).


                BohwaZ boosted

                [?]kalvn » 🌐
                @kalvn@framapiaf.org

                [?]nico » 🌐
                @n@gotosocial.tourmentine.com

                [?]nico » 🌐
                @n@gotosocial.tourmentine.com

                [?]βrυɲϋs » 🌐
                @brunus@mamot.fr

                Quand tu découvre une solution tellement évidente à la correction que tu cherche depuis des années dans un algo...

                Je lisais un article de Nature sur l'IA, j'ai pensé soumettre mon prob à l'IA, et en pensant aux réponses possibles... j'ai trouvé la soluce.
                Comme quoi l'IA c'est super utile quand tu utilise ton cerveau à la place ! MERCI l'IA !

                Reste à expliquer, pourquoi je re code mon script, sans dire que j'avais la soluce sous le nez depuis des années... LE CONG ! 😜

                  mmu_man boosted

                  [?]Fake Scrum Stats Memes & Humor » 🌐
                  @FakeScrumStats@techhub.social

                  Illustration of a gray haired man in a suit (labeled executives) holding a bow and arrow (arrow labeled AI) pointing at a man (labeled dev team) who is grabbing the bow

                  Alt...Illustration of a gray haired man in a suit (labeled executives) holding a bow and arrow (arrow labeled AI) pointing at a man (labeled dev team) who is grabbing the bow

                    [?]Mark Wyner Won’t Comply :vm: » 🌐
                    @markwyner@mas.to

                    GitLab CFO, Brian Robins, says they are “aligned with the goals of DOGE, because the company’s software tools aim to help people do more with less. What the Department of Government Efficiency is trying to do is what GitLab does.”

                    archive.is/okSlz

                    You either support fascism or you don’t. It’s binary. There’s no gray area or “aligning.”

                    Considering GitLab? Don’t.

                    Use @Codeberg instead.

                    (Hat tip @aphyr)

                      [?]nico » 🌐
                      @n@gotosocial.tourmentine.com

                      [?]⁢Ƥĥąɳʈȯɱ :fedora: 🎸 🏳️‍🌈 ⁂ » 🌐
                      @Steve12L@mamot.fr

                      ⋅ Les 20 langages informatiques les plus populaires en mai 2026

                      blogdumoderateur.com/20-langag

                        [?]Aral Balkan » 🌐
                        @aral@mastodon.ar.al

                        RE: chaos.social/@lucaslove/116554

                        Indie Mac App Store alternative that’s free for FOSS. Sounds good to me :)

                          [?]nico » 🌐
                          @n@gotosocial.tourmentine.com

                          [?]Fake Scrum Stats Memes & Humor » 🌐
                          @FakeScrumStats@techhub.social

                          Picture of a skeleton at a desk

Caption:
After being forced to transition to AI Coding
The company now tells us to hold up as they deal with a monthly invoice that was much larger than expected

                          Alt...Picture of a skeleton at a desk Caption: After being forced to transition to AI Coding The company now tells us to hold up as they deal with a monthly invoice that was much larger than expected

                            [?]nico » 🌐
                            @n@gotosocial.tourmentine.com

                            [?]βrυɲϋs » 🌐
                            @brunus@mamot.fr

                            Quand tu jette un œil dans ton rep config sous Debian et que tu t’aperçois de la présence d'un répertoire 'Kilian Valkhof'
                            - Mais.... WTF !?
                            ls Kilian\ Valkhof/
                            Trimage.conf ...

                            Trimage ça peut encore être utile, ça compresse des jpegs ou des pngs, en utilisant au mieux d'autres scripts et leurs options ( optipng, pngcrush, advpng et jpegoptim)
                            trimage.org/

                            Mais bon... "Trimage" c'était pas mal comme nom de répertoire dans le .config !
                            Aller zou, dégagé !

                              [?]Areskul » 🌐
                              @jean_dupont@mastodon.social

                              Are we pushed by a genuine will to create 😇 or a disdain of what currently exists 👿?

                                [?]Aral Balkan » 🌐
                                @aral@mastodon.ar.al

                                One of the beautiful things about Sublime Merge¹ (and git/diffs) is that you can see exactly what has changed in complex expected values in tests to ensure that you’re updating the tests without overlooking regressions.

                                (This is from the Markdown page loader tests in Kitten², as I’m refactoring to implement the upcoming breaking change in the stateful components API³ as it affects the generated code for stateful layout components in Markdown pages.)

                                ¹ Which I always have running, full-screen on its own monitor.
                                ² kitten.small-web.org
                                ³ Currently experimental and undocumented but that should change once this breaking change is implemented.

                                Screenshot of Sublime Merge displaying a lovely side-by-side diff of my ES Module Loader tests for Kitten, making it very clear exactly what has changed between normalised expected values of various Kitten HTML template renders (in this case, the generated code for the page – if it’s a stateless (functional) Kitten page – is defined as a regular function instead of as a closure (arrow function).

                                Alt...Screenshot of Sublime Merge displaying a lovely side-by-side diff of my ES Module Loader tests for Kitten, making it very clear exactly what has changed between normalised expected values of various Kitten HTML template renders (in this case, the generated code for the page – if it’s a stateless (functional) Kitten page – is defined as a regular function instead of as a closure (arrow function).

                                  [?]nico » 🌐
                                  @n@gotosocial.tourmentine.com

                                  [?]screwlisp » 🌐
                                  @screwlisp@gamerplus.org

                                  I haven't clicked the link yet, but I guess I should also reannounce Robert Smith's new for super-macro () named mine.

                                  coalton-lang.github.io/2026042

                                  @vindarel @sanityinc @simon_brooke @jackdaniel @dougmerritt (reverse-chronological earlier toots).

                                    David Gerard boosted

                                    [?]Anthony » 🌐
                                    @abucci@buc.ci

                                    The typical webapp login process for me is anywhere from 5 to 7 steps, and I'd say I give up about 5-10% of the time after the 2nd CAPTCHA. I can't imagine this is good for anybody, and it almost surely does not reduce abuse either. Just a swirling dark pattern feeding on itself. Everyone likes to ape post-9/11 airport "security" for some reason.


                                      Gwenn boosted

                                      [?]Le Journal du hacker » 🌐
                                      @journalduhacker@framapiaf.org

                                      [?]Aral Balkan » 🌐
                                      @aral@mastodon.ar.al

                                      🥳 New Kitten¹ release!

                                      Implemented workaround:

                                      There is a bug in the CommonMark spec that results in preformatted code with empty lines nested in an HTML node not rendering correctly.²

                                      In Kitten, this previously threw an error (see #294³ and also #318⁴).

                                      Kitten now works around the issue in its own parser.

                                      Full change log: codeberg.org/kitten/app/src/br

                                      Enjoy!

                                      :kitten:💕

                                      ¹ kitten.small-web.org
                                      ² github.com/commonmark/commonma
                                      ³ codeberg.org/kitten/app/issues
                                      codeberg.org/kitten/app/issues

                                        Marcos Dione boosted

                                        [?]Fake Scrum Stats Memes & Humor » 🌐
                                        @FakeScrumStats@techhub.social

                                        Image shows a person sitting at a massive, circular desk submerged under an overwhelming amount of papers, books, and laptops.

Caption: What a company's Jira instance looks like during my first day on the job

                                        Alt...Image shows a person sitting at a massive, circular desk submerged under an overwhelming amount of papers, books, and laptops. Caption: What a company's Jira instance looks like during my first day on the job

                                          [?]D 📬 » 🌐
                                          @dams@disabled.social

                                          RE: disabled.social/@dams/11637315

                                          Le premier article de cette mini-série est en ligne !

                                          L’IA accélérateur inévitable d’innovation en entreprise.

                                          À travers un retour d'expérience, j'essaie d'explorer cette transformation, ses limites et les questions que cela soulève.

                                          ohno.bearblog.dev/agents-ia-un

                                          [?]D 📬 » 🌐
                                          @dams@disabled.social

                                          Je lance une petite série sur mon blog sur un sujet brûlant. Bon c'est juste, une micro intro. En espérant que je trouve un rythme d'écriture.

                                          ohno.bearblog.dev/tu-codera-av

                                              [?]Aral Balkan » 🌐
                                              @aral@mastodon.ar.al

                                              In what I’m telling myself is in no way feature creep, I just added experimental TypeScript support to Kitten in a dev branch.

                                              I’m actually surprised how easy it was to do. Given I’m already using esbuild to create the Kitten bundle and already using a custom module loader, the change was basically making esbuild a dependency instead of a dev dependency, lazily transforming .ts files in the loader, and updating a few places in the code to ensure that you can use .ts as an extension in special Kitten extensions like .page.js, .post.js, etc. (so now you can have page.ts, post.ts, etc.)

                                              Everything works the same way it does with TypeScript as it does with JavaScript – there’s no scaffolding or any additional workflow required.

                                              For obvious reasons, I won’t be deploying this at end of day Friday but, hopefully, along with the major breaking change to the stateful component API, I plan to next week.

                                              More details in the work-in-progress change log:
                                              codeberg.org/kitten/app/src/br

                                              :kitten:💕

                                                [?]Fake Scrum Stats Memes & Humor » 🌐
                                                @FakeScrumStats@techhub.social

                                                The image captures a moment of a peregrine falcon grooming its talons, which appears to the human eye as a "shhh" gesture.

Caption: Me to the rest of the team when it's Friday afternoon and the meeting organizer asks if anyone has anything else they want to discuss.

                                                Alt...The image captures a moment of a peregrine falcon grooming its talons, which appears to the human eye as a "shhh" gesture. Caption: Me to the rest of the team when it's Friday afternoon and the meeting organizer asks if anyone has anything else they want to discuss.

                                                  [?]nico » 🌐
                                                  @n@gotosocial.tourmentine.com

                                                  [?]nico » 🌐
                                                  @n@gotosocial.tourmentine.com

                                                  [?]Daniel o secours » 🌐
                                                  @dad@mastodon.mim-libre.fr

                                                  @bortzmeyer pour tabs vs spaces, j’ai la solution : both

                                                  emacswiki.org/emacs/SmartTabs

                                                  3 panels comic strip:
1. A 40 years old man in suit says “spaces” and a 30 years old man says “tabs”
2. A third youger man says “both”
3. The 30 years old man is punching the younger on the ground and the 40 years old stand with a base ball bat preparing to hit the younger

                                                  Alt...3 panels comic strip: 1. A 40 years old man in suit says “spaces” and a 30 years old man says “tabs” 2. A third youger man says “both” 3. The 30 years old man is punching the younger on the ground and the 40 years old stand with a base ball bat preparing to hit the younger

                                                    [?]nico » 🌐
                                                    @n@gotosocial.tourmentine.com

                                                    [?]Aral Balkan » 🌐
                                                    @aral@mastodon.ar.al

                                                    Oh, you just slapped a 1MB image on your web page? That’s nice.

                                                    Back in the day, folks were hiding running code and data in the graphics of their games that had to fit into 22KB.

                                                    revs.bbcelite.com/deep_dives/h

                                                    Screenshot of BBC Micro driving game Rev with the code and data normally hidden in blue in the sky shown in yellow.

                                                    Alt...Screenshot of BBC Micro driving game Rev with the code and data normally hidden in blue in the sky shown in yellow.

                                                      [?]Fabien LOISON (FLOZz) » 🌐
                                                      @FLOZz@mastodon.social

                                                      J'ai 2 fichiers identiques de 600 octets précisément stockés sur la même partition NTFS.

                                                      L'un prend (soit disant) 0 octet d'espace sur le disque, l'autre 4096 octets.

                                                      Je trouve ça rigolo 😄

                                                      (je suis en train de bosser sur une fonction qui estime l'espace disque occupé par un ensemble de dossiers et de fichier sur un volume NTFS ^^)

                                                      Capture d'écran de la fenêtre de propriété de l'explorateur de fichier Windows de deux fichiers identiques.

À gauche: fichier "a.txt"
Size: 600 Bytes
Size on disk: 0 Bytes

À droite: "abcdefghijklmnopqrstuvwxyz.txt"
Size: 600 Bytes
Size on disk: 4096 Bytes

                                                      Alt...Capture d'écran de la fenêtre de propriété de l'explorateur de fichier Windows de deux fichiers identiques. À gauche: fichier "a.txt" Size: 600 Bytes Size on disk: 0 Bytes À droite: "abcdefghijklmnopqrstuvwxyz.txt" Size: 600 Bytes Size on disk: 4096 Bytes

                                                        [?]nico » 🌐
                                                        @n@gotosocial.tourmentine.com

                                                        AodeRelay boosted

                                                        [?]Anthony » 🌐
                                                        @abucci@buc.ci

                                                        I cosign this sentiment from Ross Barkan's Substack, and would add that it extends to software development as well:
                                                        I’ve made this point before about how inane AI hype is now, but a computer beat the best chess player in the world in 1997. No one pretended, after 1997, it wasn’t worthwhile to have humans compete in chess. In fact, the world of chess developed strict protocols around computer use and you can get banned from tournaments if you use a computer program as you play. You are certainly shamed and mocked.

                                                        AI and writing needs to be treated the same way. I do think people should be shamed for using AI to help them write creatively. It’s an embarrassment, and a form of cheating.


                                                          [?]nico » 🌐
                                                          @n@gotosocial.tourmentine.com

                                                          mortal boosted

                                                          [?]Fake Scrum Stats Memes & Humor » 🌐
                                                          @FakeScrumStats@techhub.social

                                                          That's why they abbreviate a Community of Practice as "CoP".

                                                          A man (labeled "Me who updated my Jira ticket incorrectly") being chased by baton welding police (labeled "Scrum master community of practice") on horseback.

                                                          Alt...A man (labeled "Me who updated my Jira ticket incorrectly") being chased by baton welding police (labeled "Scrum master community of practice") on horseback.

                                                            ffoodd boosted

                                                            [?]𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕 » 🌐
                                                            @kubikpixel@chaos.social

                                                            One of the most popular JavaScript packages on earth Axios has been compromised

                                                            The Axios NPM package has been compromised and the maintainer of the project has been locked out of their account. This will go down in history as one of the most successful software supply chain attacks ever

                                                            💥 opensourcemalware.com/blog/axi

                                                              [?]Aral Balkan » 🌐
                                                              @aral@mastodon.ar.al

                                                              So I just bought @nileane’s TinyStart launcher and, yep, it’s beautiful.

                                                              Minimalist in the best possible way. I’m keeping Spotlight around for the moment but already I’m not sure why I would use it for anything.

                                                              So lovely to see indie devs showing trillion-dollar corporations how it should be done.

                                                              💕

                                                              The main TinyStart launcher window showing my most launched apps and links (for the moment, WezTerm, the Catalyst web site, and Sublime Merge).

                                                              Alt...The main TinyStart launcher window showing my most launched apps and links (for the moment, WezTerm, the Catalyst web site, and Sublime Merge).

                                                              TinyStart’s beautiful emoji picker, with my last used emoji (cat face) in the Recent list, followed by the Smileys & Emotion section.

                                                              Alt...TinyStart’s beautiful emoji picker, with my last used emoji (cat face) in the Recent list, followed by the Smileys & Emotion section.

                                                              TinyStart’s settings panel, showing the Links section active with links I’ve entered that I want to access quickly (the Kitten and Catalyst web sites and their source repository pages as well as the Gaza Verified page).

                                                              Alt...TinyStart’s settings panel, showing the Links section active with links I’ve entered that I want to access quickly (the Kitten and Catalyst web sites and their source repository pages as well as the Gaza Verified page).

                                                                [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                @FakeScrumStats@techhub.social

                                                                Randy (labeled "QA waiting for the build") from the TV show My Name is Earl, looks like hes waiting while Earl (labeled "Dev after telling QA that the build is just about ready for them") is up against a door through which an arm (labeled "build errors") broke through the door and is strangling him

                                                                Alt...Randy (labeled "QA waiting for the build") from the TV show My Name is Earl, looks like hes waiting while Earl (labeled "Dev after telling QA that the build is just about ready for them") is up against a door through which an arm (labeled "build errors") broke through the door and is strangling him

                                                                  [?]nico » 🌐
                                                                  @n@gotosocial.tourmentine.com

                                                                  mathieui boosted

                                                                  [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                  @FakeScrumStats@techhub.social

                                                                  Smiling man pointing to a fire burning under an overpass.

Caption: Me during sprint review

                                                                  Alt...Smiling man pointing to a fire burning under an overpass. Caption: Me during sprint review

                                                                    [?]Aral Balkan » 🌐
                                                                    @aral@mastodon.ar.al

                                                                    🥳 New Kitten¹ Release

                                                                    • Adds Kitten Introspection API

                                                                    I’ll record a video this week demonstrating it.

                                                                    In the meanwhile, check out the change log for details:
                                                                    codeberg.org/kitten/app/src/br

                                                                    Enjoy!

                                                                    :kitten:💕

                                                                    ¹ kitten.small-web.org

                                                                      [?]Aral Balkan » 🌐
                                                                      @aral@mastodon.ar.al

                                                                      Me: I really need to launch the things I’m building with Kitten¹ this year.

                                                                      Also me: You know what would be sweet? If I added an introspection API to make working with the Kitten Shell (REPL)² easier.

                                                                      (It is going to be sweet though. Prototyping it in the REPL now and I’ll record a little demo when I’m done and it’s released. It’s going to make examining and affecting the state of the client from the server interactively even easier.)

                                                                      ¹ kitten.small-web.org
                                                                      ² kitten.small-web.org/tutorials

                                                                        [?]Aral Balkan » 🌐
                                                                        @aral@mastodon.ar.al

                                                                        You know how you’re in the middle of a process and you refresh a web page and it loses state?

                                                                        So that sucks.

                                                                        With Kitten¹ – when using the new state-maintaining/class-based and event model-based component model – it’s easy to have flowing interfaces that animate between states, etc., that don’t lose state if you refresh the page (or open another tab).

                                                                        What you can’t do on the Web, however, is restore the state of any cross-origin iframes. (As you have no visibility into their contents to take a snapshot, etc.)

                                                                        This is something I ran into with the embedded Stripe component I’m using in Catalyst². Specifically, it has a success state that I want to restore so the interface, which uses selective disclosure and has animated to that step in the sign up process, doesn’t jump if you refresh it or look different if you open it in another tab.

                                                                        So what do you do if you’re obsessed with making things work as well as possible?

                                                                        Apparently, this:

                                                                        1. You go and manually save the Stripe iframe’s HTML and relevant CSS

                                                                        2. You notice that it is ~371KB in size and you sigh

                                                                        3. You use a combination of automated and manual methods to whittle that down to a 4.2KB HTML/CSS snapshot of the state.

                                                                        4. You make that into a Kitten component³ so you can set the bits that are dynamic⁴

                                                                        5. You make sure that it matches the original exactly using PixelSnap 2 guides⁵ (see screenshot; and yes, I told you I’m obsessed) :)

                                                                        6. Et voila!

                                                                        🤷‍♂️

                                                                        ¹ kitten.small-web.org
                                                                        ² catalyst.small-web.org
                                                                        ³ kitten.small-web.org/tutorials
                                                                        codeberg.org/project-catalyst/
                                                                        pixelsnap.com

                                                                        Screenshot of the restored state of the Stripe component’s success state using a mock HTML/CSS snapshot of the state with some dynamic areas included. The screen is full of horizontal and vertical guides aligned to areas of the success message to ensure that the mock is pixel perfect.

                                                                        Alt...Screenshot of the restored state of the Stripe component’s success state using a mock HTML/CSS snapshot of the state with some dynamic areas included. The screen is full of horizontal and vertical guides aligned to areas of the success message to ensure that the mock is pixel perfect.

                                                                          [?]Aral Balkan » 🌐
                                                                          @aral@mastodon.ar.al

                                                                          🥳 New Kitten Release

                                                                          • Fix: Events on `KittenComponent` hierarchies are now bubbled in reverse (from children down to parents). This provides for predictable event firing in cases where parents might emit events (e.g., a page emitting an event from its `onConnect()` handler). Your existing code should work as before with certain edge cases that might have broken before no longer breaking.

                                                                          Enjoy!

                                                                          :kitten:💕

                                                                            [?]Aral Balkan » 🌐
                                                                            @aral@mastodon.ar.al

                                                                            🥳 New Kitten Release

                                                                            • `KittenComponent` (and thereby `KittenPage`) gains an `emit()` method.

                                                                            Use this to bubble events from your page to all child components or from any component to all of its child components.

                                                                            This is useful, for example, for setting the state of a page or a component where each child component knows how to present itself for that state.

                                                                            (That, in turn, is useful if you want to be able to restore state based on URLs.)

                                                                            The naming convention-based mapping of event names to event handler names is the same as for the events you receive from the client. So an event called `myEvent` will result in `onMyEvent` handlers on child components being called.

                                                                            (Also update @small-web/kitten to version 7.1.0 to get language intelligence for the new method.)

                                                                            Enjoy!

                                                                            :kitten:💕

                                                                              [?]nico » 🌐
                                                                              @n@gotosocial.tourmentine.com

                                                                              [?]nico » 🌐
                                                                              @n@gotosocial.tourmentine.com

                                                                              mathieui boosted

                                                                              [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                              @FakeScrumStats@techhub.social

                                                                              This image captures a massive fire at the Platt's Eyot boatyard in Hampton, south-west London, which occurred on May 3, 2021. In the picture a man casually sits on a boat using his mobile device.

Caption: Production is down and management is blowing up my phone, but since they made it clear that I can't work from home, I'll just sit in my car until it's officially time to head inside

                                                                              Alt...This image captures a massive fire at the Platt's Eyot boatyard in Hampton, south-west London, which occurred on May 3, 2021. In the picture a man casually sits on a boat using his mobile device. Caption: Production is down and management is blowing up my phone, but since they made it clear that I can't work from home, I'll just sit in my car until it's officially time to head inside

                                                                                [?]Aral Balkan » 🌐
                                                                                @aral@mastodon.ar.al

                                                                                🥳 New @small-web/kitten (Kitten globals) release.

                                                                                • Improved type information.
                                                                                • Now plays nice with tsconfig.json and tsc.
                                                                                • Adds `rawBody` to `KittenRequest`.

                                                                                This is not really a breaking change (in that it won’t break your apps) but I’m releasing it as a major version update so as not to surprise you if you notice the type information is different (more detailed than before).

                                                                                To update in your kitten apps:
                                                                                npm install @small-web/kitten@7

                                                                                For more information on how to use this module, see the Kitten Type Safety tutorial:
                                                                                kitten.small-web.org/tutorials

                                                                                Full change log:
                                                                                codeberg.org/kitten/globals/sr

                                                                                Enjoy!

                                                                                :kitten:💕

                                                                                  [?]Aral Balkan » 🌐
                                                                                  @aral@mastodon.ar.al

                                                                                  🥳 New Kitten¹ Release

                                                                                  • Adds `rawBody` to non-multipart POST requests.

                                                                                  This property, which is a Buffer, is necessary if you want to verify signatures (e.g., for webhooks).

                                                                                  I had to fork express-busboy as they already ruled out adding it. The fork (@small-web/kitten-busboy²) also allowed me to type the middleware extension point for Polka³ instead of Express (Kitten uses Polka) so that’s one @ts-ignore removed (hey, dev is a string of little wins) :)

                                                                                  Change log: codeberg.org/kitten/app/src/br

                                                                                  Caught a bug and feeling a little under the weather at the moment (nothing major, mom and dad – no need to worry) so apologies if I’m not responsive here.

                                                                                  Enjoy!

                                                                                  :kitten:💕

                                                                                  ¹ kitten.small-web.org
                                                                                  ² codeberg.org/kitten/busboy
                                                                                  ³ github.com/lukeed/polka

                                                                                    [?]Le Journal du hacker » 🌐
                                                                                    @journalduhacker@framapiaf.org

                                                                                    J'ai mis deux IA en code review l'une contre l'autre — voici ce que ça donne
                                                                                    maxence.maireaux.fr/fr/blog/mo

                                                                                      [?]nico » 🌐
                                                                                      @n@gotosocial.tourmentine.com

                                                                                      AodeRelay boosted

                                                                                      [?]Radio_Azureus » 🌐
                                                                                      @Radio_Azureus@ioc.exchange

                                                                                      LLM hallucinated spam slop

                                                                                      Even a parrot would formulate a better set of sentences. This is easily sent to /dev/null

                                                                                      @stefano

                                                                                        [?]Aral Balkan » 🌐
                                                                                        @aral@mastodon.ar.al

                                                                                        Oh I do love how you have your Kitten¹ app’s database in memory – thanks to Kitten’s built-in JavaScript Database (JSDB)² – and accessible via the Kitten Shell (REPL)³ during dev.

                                                                                        (If I do say so myself.) ;)

                                                                                        :kitten:💕

                                                                                        ¹ kitten.small-web.org
                                                                                        ² kitten.small-web.org/tutorials
                                                                                        ³ kitten.small-web.org/tutorials

                                                                                        Full-screen screenshot (macOS) of a maximised WezTerm window split into two panes side-by-side, with the one on the left holding a Helix Editor instance with a file called PaymentProviderStripe.js loaded in it showing the source of a class called StripeWebhook at line 201 with code to set up a webhook endpoint in Stripe using the Stripe API and save the resulting webhook endpoint details, including its secret, url, etc.

The right-hand pane is split into three panes stacked on top of each other. The top one is running LocalXpose, the middle one has Kitten Shell open, showing the object at kitten.db.settings.payment.providers.stripe.environment.sandbox.webhook:

Proxy [
StripeWebhook {
id: 'we_1TBYMjI8i72FxrqiPT6g0xFH'
secret: 'whsec_SnpgNSw9TkYQS2HervZBl8vFxuMIy8Qm' ,
LiveMode: false, status:
'enabled',
url: 'https://dev.ar.al/stripe-webhooks'
}.
get: [Function: bound getHandler], set: [Function: bound setHandler], defineProperty: [Function: bound definePropertyHandler], deleteProperty: [Function: bound deletePropertyHandler]
}
]

The last pane is running Yazi, showing a three-column layout of the files at ~/Projects/catalyst/app

                                                                                        Alt...Full-screen screenshot (macOS) of a maximised WezTerm window split into two panes side-by-side, with the one on the left holding a Helix Editor instance with a file called PaymentProviderStripe.js loaded in it showing the source of a class called StripeWebhook at line 201 with code to set up a webhook endpoint in Stripe using the Stripe API and save the resulting webhook endpoint details, including its secret, url, etc. The right-hand pane is split into three panes stacked on top of each other. The top one is running LocalXpose, the middle one has Kitten Shell open, showing the object at kitten.db.settings.payment.providers.stripe.environment.sandbox.webhook: Proxy [ StripeWebhook { id: 'we_1TBYMjI8i72FxrqiPT6g0xFH' secret: 'whsec_SnpgNSw9TkYQS2HervZBl8vFxuMIy8Qm' , LiveMode: false, status: 'enabled', url: 'https://dev.ar.al/stripe-webhooks' }. get: [Function: bound getHandler], set: [Function: bound setHandler], defineProperty: [Function: bound definePropertyHandler], deleteProperty: [Function: bound deletePropertyHandler] } ] The last pane is running Yazi, showing a three-column layout of the files at ~/Projects/catalyst/app

                                                                                          [?]nico » 🌐
                                                                                          @n@gotosocial.tourmentine.com

                                                                                          [?]irisdessine » 🌐
                                                                                          @irisdessine@piaille.fr

                                                                                          D'ailleurs, dans une moindre mesure, je pense que j'adore toujours faire de la magie avec des ordinateurs. Je suis fascinée par tout ce qui devient "vivant" (une application, un effet spécial dans un film, un dessin) grâce à des bidouillages.
                                                                                          Je crois que ça a toujours été ça ma passion, mon "intérêt spécifique" ad vitam : faire de la magie. (Putain, je m'auto-analyse en live 😆)

                                                                                          Bref, faites de la magie. Retrouvez cet état de "faire", non pas pour réussir, mais pour "faire", simplement. C'est tout ce que je peux vous conseiller :)
                                                                                          Même à 40, 50 ans. Faites de la magie.

                                                                                          Voilà :)
                                                                                          Tendresse & mochi ^^

                                                                                            [?]Paris Web » 🌐
                                                                                            @ParisWeb@mamot.fr

                                                                                            En 2025, Anne Faubry et Chloé Corfmat ont présenté les bonnes pratiques pour concevoir accessible du cadrage au développement, en s’appuyant sur un projet réel pour le Ministère de la Culture. Leur conférence à (re)voir en ligne.

                                                                                            paris-web.fr/2025/conference/c

                                                                                            [?]Aral Balkan » 🌐
                                                                                            @aral@mastodon.ar.al

                                                                                            🥳 New Kitten¹ Release

                                                                                            • Fixed: Errors in a project’s _main.script.js_ now cause a hard crash without retry attempts. The errors are also now better classified and communicated.
                                                                                            • Housekeeping: Removed unmaintained dev dependency, updated supported ES versions to esnext and simplified jsconfig.json.

                                                                                            Full change log:
                                                                                            codeberg.org/kitten/app/src/br

                                                                                            Enjoy!

                                                                                            :kitten:💕

                                                                                            ¹ kitten.small-web.org

                                                                                              [?]Aral Balkan » 🌐
                                                                                              @aral@mastodon.ar.al

                                                                                              There’s life beyond VSCode… thought I’d share my dev setup:

                                                                                              • Main monitor: WezTerm¹ running in a three (sometimes four)-way split with Helix Editor² as my main editor, a terminal pane for general commands while working, and Yazi³ usually running in another for working with files/directories in a project.

                                                                                              • Other monitor: Sublime Merge⁴ always running full-screen so I can immediately see exactly what I’ve changed (in real time) as I’m working.

                                                                                              Others (not shown): Browser(s) on a third screen and my laptop’s monitor as a fourth screen sometimes for other apps (read: distractions) :)

                                                                                              What’s yours like?

                                                                                              ¹ wezterm.org
                                                                                              ² helix-editor.com
                                                                                              ³ github.com/sxyazi/yazi
                                                                                              sublimemerge.com

                                                                                              Screenshot of a macOS system with WezTerm running maximised (with a little bit of margin because shiny colourful wallpaper FTW). It’s split into three panes: Helix Editor running in the left with the source code for a file called src/Server.js open. A top-right pane showing unit, regression and end-to-end tests running (179 unit tests passed, 94 regression tests passed, running 7 end-to-end tests, currently at 5/7, running tests/end-to-end/kitten-kawaii-spec.js in Chromium). The lower right pane has Yazi, showing a three-column file system view where the app folder of ~/Projects/kitten/app is selected in the first column, its contents shown in the second, with jsconfig.json selected and the contents of that file showing the final column.

                                                                                              Alt...Screenshot of a macOS system with WezTerm running maximised (with a little bit of margin because shiny colourful wallpaper FTW). It’s split into three panes: Helix Editor running in the left with the source code for a file called src/Server.js open. A top-right pane showing unit, regression and end-to-end tests running (179 unit tests passed, 94 regression tests passed, running 7 end-to-end tests, currently at 5/7, running tests/end-to-end/kitten-kawaii-spec.js in Chromium). The lower right pane has Yazi, showing a three-column file system view where the app folder of ~/Projects/kitten/app is selected in the first column, its contents shown in the second, with jsconfig.json selected and the contents of that file showing the final column.

                                                                                              Screenshot of Sublime Merge running maximised, showing 2 unstated files with side-by-side diffs of their changes.

                                                                                              Alt...Screenshot of Sublime Merge running maximised, showing 2 unstated files with side-by-side diffs of their changes.

                                                                                                [?]gaby_wald » 🌐
                                                                                                @gaby_wald@framapiaf.org

                                                                                                "L'IA, les juniors et moi. Et si j'étais juste un vieux con ?
                                                                                                Superviser l'IA demande les compétences que l'IA érode. J'allais en faire un article inquiet sur les juniors. Et puis je me suis souvenu ..."

                                                                                                ..

                                                                                                michaelbensoussan.com/posts/10

                                                                                                  mortal boosted

                                                                                                  [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                  @FakeScrumStats@techhub.social

                                                                                                  A photo of Bill Clinton smiling while looking at some papers.

Caption: Back in my day, a pull request meant something else entirely

                                                                                                  Alt...A photo of Bill Clinton smiling while looking at some papers. Caption: Back in my day, a pull request meant something else entirely

                                                                                                    [?]𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕 » 🌐
                                                                                                    @kubikpixel@chaos.social

                                                                                                    «Partnering with @mozilla to improve Firefox’s security
                                                                                                    AI models can now independently identify high-severity vulnerabilities in complex software. As we recently documented, Claude found more than 500 zero-day vulnerabilities (security flaws that are unknown to the software’s maintainers) in well-tested open-source software.»

                                                                                                    I am not an AI fan but with such a use I can imagine it well but no blind faith is useful there either.

                                                                                                    🦊 anthropic.com/news/mozilla-fir

                                                                                                      Martouf boosted

                                                                                                      [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                      @FakeScrumStats@techhub.social

                                                                                                      Illustration of Clark Kent (labeled "production issue") ominously standing behind Lois Lane (labeled "Me just arriving in the morning"). She is seen saying "ULP."

                                                                                                      Alt...Illustration of Clark Kent (labeled "production issue") ominously standing behind Lois Lane (labeled "Me just arriving in the morning"). She is seen saying "ULP."

                                                                                                        [?]Aral Balkan » 🌐
                                                                                                        @aral@mastodon.ar.al

                                                                                                        Thanks to a work-in-progress Homebrew cask by Andi Péter (codeberg.org/GramEditor/gram/i), I was just able to quickly install and play with the new Gram code editor (codeberg.org/GramEditor/gram#g) – a fork of Zed with all the bullshit (AI, telemetry, etc.) removed that looks like it could be great editor to recommend both for people just learning to code (as I was, recently, to recommend for people learning Kitten¹) as well as seasoned programmers who don’t want to work in terminal.

                                                                                                        And, as a bonus, it actually has a Helix Editor mode so if that’s your daily driver (raises hand), you can just use it like Helix (i.e., Helix Editor in a graphical shell).

                                                                                                        If you want to try Andi’s build (only works on Mac at the moment and remember, you have to trust Andi):

                                                                                                        brew tap petrosz007/gram-tap codeberg.org/Petrosz007/homebr
                                                                                                        brew install --cask gram

                                                                                                        PS. You can follow the author of Gram, @krig, on the fediverse :)

                                                                                                        ¹ kitten.small-web.org

                                                                                                        Screenshot of opening screen of the Gram editor with a simple frog illustration and the tagline “What cannot be mended must be transcended.”

It shows a Get Started section with New File, Open Project, Clone Repository, Open Command Palette, and Open Documentation links and a Configure section with Open Settings and Explore Extensions options.

                                                                                                        Alt...Screenshot of opening screen of the Gram editor with a simple frog illustration and the tagline “What cannot be mended must be transcended.” It shows a Get Started section with New File, Open Project, Clone Repository, Open Command Palette, and Open Documentation links and a Configure section with Open Settings and Explore Extensions options.

                                                                                                        Screenshot of Gram code editor in Helix mode showing two lines selected (using “x”) and a search active within the selection (using “s”) and the word “well” being searched for and highlighted in the text.

The full text in the document reads: This is a little demo of gram...
I'm using Helix mode
And it seems to work quite well :)
(For some reason my custom QMK keymaps are not working, • though.)

                                                                                                        Alt...Screenshot of Gram code editor in Helix mode showing two lines selected (using “x”) and a search active within the selection (using “s”) and the word “well” being searched for and highlighted in the text. The full text in the document reads: This is a little demo of gram... I'm using Helix mode And it seems to work quite well :) (For some reason my custom QMK keymaps are not working, • though.)

                                                                                                          mmu_man boosted

                                                                                                          [?]🦉Tomo Nagaka 🎸 » 🌐
                                                                                                          @Tomek@mstdn.nrkn.fr

                                                                                                          Hello le fedivers, je relance ma quête : il y a des gens ici qui développent sur Android ? Et qui bossent sur node.js / angular ?
                                                                                                          J'ai un client qui cherche un prestataire sérieux pour reprendre la maintenance / corrections d'une appli métier sur Android et le stockage / exploitation de ses données dans une base de données avec interface web.
                                                                                                          Merci !

                                                                                                          :boost_request:

                                                                                                            Nicoco boosted

                                                                                                            [?]Nicolas » 🌐
                                                                                                            @nioc@mamot.fr

                                                                                                            Et hop, version XMPP Web 0.12.0 sortie avec de nombreux petites améliorations orientées utilisateurs et un nouveau contributeur qui semble motivé pour les appels audio / video 🎉
                                                                                                            github.com/nioc/xmpp-web/relea

                                                                                                              [?]kevin ⁂ (he/him) » 🌐
                                                                                                              @kevin@gimbel.dev

                                                                                                              What's your favourite FOSS code editor? i'm mainly writing Rust, Go, and YAML / documentation.

                                                                                                              #foss #oss #codeeditor #dev

                                                                                                                [?]Aral Balkan » 🌐
                                                                                                                @aral@mastodon.ar.al

                                                                                                                🥳 New Kitten Release

                                                                                                                I just reworked the fix for this to simplify the Kitten renderer (as this fix introduced a regression with components getting instantiated multiple times due to the fall-through logic between asynchronous and synchronous rendering). The renderer now treats every component render function as asynchronous, thereby avoiding the issue entirely.

                                                                                                                kitten.small-web.org

                                                                                                                Enjoy!

                                                                                                                💕

                                                                                                                  [?]Jolivier 🇪🇺🇵🇸🇺🇦 🏳️‍🌈🦌 » 🌐
                                                                                                                  @Jolivier@mamot.fr

                                                                                                                  Google a annoncé que, à partir de septembre 2026, il ne sera plus possible de développer des applications pour la plateforme Android sans s’être enregistré :

                                                                                                                  Paiement de frais à Google
                                                                                                                  Acceptation des conditions d’utilisation de Google
                                                                                                                  Fourniture d’une pièce d’identité officielle
                                                                                                                  Téléchargement de la preuve de la clé de signature privée du développeur
                                                                                                                  Liste de tous les identifiants d’application actuels et futurs

                                                                                                                  keepandroidopen.org/fr/

                                                                                                                    [?]nojhan, Cassandre de l’analyse systémique » 🌐
                                                                                                                    @nojhan@social.antigene.org

                                                                                                                    Un logo pour certifier que votre code logiciel est bio :
                                                                                                                    nojhan.net/tfd/logo-code-bio.h

                                                                                                                    Sous licence CC-BY-NC-ND.

                                                                                                                    Oui, c'est en anglais, parce que je code en anglais.

                                                                                                                    Un logo rond en vert sur fond jaune pale, avec au centre deux mais ouvertes semblant porter le symbole "</>" traditionnellement lié au "code". En gros, on peut lire "Organic Code", et autour "Human-made, no AI involved".

                                                                                                                    Alt...Un logo rond en vert sur fond jaune pale, avec au centre deux mais ouvertes semblant porter le symbole "</>" traditionnellement lié au "code". En gros, on peut lire "Organic Code", et autour "Human-made, no AI involved".

                                                                                                                      [?]Celfred » 🌐
                                                                                                                      @celfred@framapiaf.org

                                                                                                                      Les fichiers qui commencent souvent par un . (le plus connu étant .gitignore, je suppose) permettant d'ajuster pas mal de choses pour Git.

                                                                                                                      Git’s Magic Files | Andrew Nesbitt
                                                                                                                      nesbitt.io/2026/02/05/git-magi

                                                                                                                        [?]𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕 » 🌐
                                                                                                                        @kubikpixel@chaos.social

                                                                                                                        Making WebAssembly a first-class language on the Web

                                                                                                                        WebAssembly has come a long way since its first release in 2017. The first version of WebAssembly was already a great fit for low-level languages like C and C++, and immediately enabled many new kinds of applications to efficiently target the web.
                                                                                                                        — by @mozilla

                                                                                                                        🧑‍💻 hacks.mozilla.org/2026/02/maki

                                                                                                                          [?]Aral Balkan » 🌐
                                                                                                                          @aral@mastodon.ar.al

                                                                                                                          🥳 New Kitten Release

                                                                                                                          This one fixes a bug that you would have encountered had you had an asynchronous component (component with asynchronous render method) nested more than one-level deep within synchronous components.

                                                                                                                          (Kitten’s html renderer transparently supports both synchronous and asynchronous render methods.)

                                                                                                                          So, this (taken from my unit test), for example, works correctly now:

                                                                                                                          ```js
                                                                                                                          class AsynchronousOtherName extends KittenComponent {
                                                                                                                          async html () {
                                                                                                                          await new Promise(resolve => setTimeout(resolve, 10))
                                                                                                                          return kitten.html`<i>Balkan</i>`
                                                                                                                          }
                                                                                                                          }

                                                                                                                          class SynchronousName extends KittenComponent {
                                                                                                                          /* NOT async */ html () {
                                                                                                                          return kitten.html`<strong>Aral</strong> <${AsynchronousOtherName.connectedTo(this)} />`
                                                                                                                          }
                                                                                                                          }

                                                                                                                          class SynchronousTemplate extends KittenComponent {
                                                                                                                          html ({ SLOT }) {
                                                                                                                          return kitten.html`[Before slot]${SLOT}[After slot]`
                                                                                                                          }
                                                                                                                          }

                                                                                                                          class MyPage extends KittenPage {
                                                                                                                          html () {
                                                                                                                          return kitten.html`
                                                                                                                          <${SynchronousTemplate.connectedTo(this)}>
                                                                                                                          <h1>This should render all at once after a short delay.</h1>
                                                                                                                          <p>Hello, <${SynchronousName.connectedTo(this)} /></p>
                                                                                                                          </>
                                                                                                                          `
                                                                                                                          }
                                                                                                                          }
                                                                                                                          ```

                                                                                                                          Enjoy!

                                                                                                                          :kitten:💕

                                                                                                                          kitten.small-web.org

                                                                                                                            [?]Aral Balkan » 🌐
                                                                                                                            @aral@mastodon.ar.al

                                                                                                                            🥳 New Kitten Release

                                                                                                                            • Added `target` and `data-*` to the list of safe attributes you can specify within curly brackets when writing Markdown in Kitten.

                                                                                                                            Enjoy!

                                                                                                                            :kitten:💕

                                                                                                                            kitten.small-web.org

                                                                                                                              Debacle boosted

                                                                                                                              [?]Nicolas » 🌐
                                                                                                                              @nioc@mamot.fr

                                                                                                                              📢 Oyez, oyez : XMPP web 0.11.0 est sorti cette nuit. Changements : ajout du support des réactions 😉 et upgrade technique.
                                                                                                                              Liens vers l'archive et l'image docker disponibles ici : github.com/nioc/xmpp-web/relea
                                                                                                                              Preneur de vos retours

                                                                                                                                [?]Aral Balkan » 🌐
                                                                                                                                @aral@mastodon.ar.al

                                                                                                                                FML *smdh*

                                                                                                                                Screenshot of CSS file (detail):

#checkout {
  /*
    Since we have almost no control over the appearance of the embedded iframe and since it appears to be hardcoded to some narrow max width, use a CSS transform to make it fit the existing design when we’re at full width. Safari’s clearly snapshotting a bitmap as it blurs this but Safari today messes up so many things, so… 🤷
  */
  @media screen and (min-width: 585px) {
    transform: scale(1.27);
    transform-origin: top left;
    margin-left: -10em;

    /*
      Ensure bottom of the embedded form isn’t hidden.
    */
    margin-bottom: 14em;
  }

  /* Kludge dark mode support. Because clearly a $100B+ company that handles >$2T in  transactions can’t do it themselves. */
  @media screen and (prefers-color-scheme: dark) {
    /* Invert all elements on the body while attempting to not alter the hue substantially. */
    filter: invert(100%) hue-rotate(180deg);
  }
}

                                                                                                                                Alt...Screenshot of CSS file (detail): #checkout { /* Since we have almost no control over the appearance of the embedded iframe and since it appears to be hardcoded to some narrow max width, use a CSS transform to make it fit the existing design when we’re at full width. Safari’s clearly snapshotting a bitmap as it blurs this but Safari today messes up so many things, so… 🤷 */ @media screen and (min-width: 585px) { transform: scale(1.27); transform-origin: top left; margin-left: -10em; /* Ensure bottom of the embedded form isn’t hidden. */ margin-bottom: 14em; } /* Kludge dark mode support. Because clearly a $100B+ company that handles >$2T in transactions can’t do it themselves. */ @media screen and (prefers-color-scheme: dark) { /* Invert all elements on the body while attempting to not alter the hue substantially. */ filter: invert(100%) hue-rotate(180deg); } }

                                                                                                                                  [?]Aral Balkan » 🌐
                                                                                                                                  @aral@mastodon.ar.al

                                                                                                                                  🥳 New Kitten¹ release

                                                                                                                                  • Added `initialise()` hook to `kitten.Component` instances.

                                                                                                                                  This gets called at the end of the constructor and is handy if you don’t want to override the constructor and have to handle the `data` parameter and remember to call `super(data)`. You can still access passed data from `this.data`.
                                                                                                                                  
Note that the component is not part of the view hierarchy on the client at this point. If you have tasks you need to perform only once per page – for example, instantiating a child component to use in your view template – override the `onConnect()` handler instead which is guaranteed to be called just once when your component has successfully been added to a connected page.

                                                                                                                                  codeberg.org/kitten/app/src/br

                                                                                                                                  Enjoy!

                                                                                                                                  :kitten:💕

                                                                                                                                  ¹ kitten.small-web.org

                                                                                                                                    [?]Aral Balkan » 🌐
                                                                                                                                    @aral@mastodon.ar.al

                                                                                                                                    If you’re looking for an ngrok alternative for tunnelling that is affordable and just works (e.g., with Kitten¹), I can highly recommend LocalXpose (localxpose.io/).

                                                                                                                                    (Not affiliated with them in any way; just use their tunnels for testing with Kitten on a daily basis.)

                                                                                                                                    PS. If you have a static IPv4 address for your dev machine or if your network is IPv6 compatible, you can now run secure servers on IP addresses, so that’s another option if you need your app to be universally accessible during dev/testing (e.g., for web hooks, etc.) without requiring any external services. But, for most of us, something like LocalXpose is essential and it’s the best I’ve found so far.

                                                                                                                                    ¹ kitten.small-web.org