snac.daltux.net 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.

Site description
Daltux' personal ActivityPub microblog. Microblog pessoal de Daltux, parte da Teia Social global federada com o protocolo ActivityPub.
Admin account
@daltux@snac.daltux.net

Search results for tag #dev

AodeRelay boosted

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

Anthropic apologists still coming out of the woodwork to run cover for them or complain, 24 hours after I posted that the Claude Code source code is horribly ill-structured.

You don't have to pretend that Claude Code's source code is lovely just because you like using it or are impressed by whatever madness is going on around AI right now.


    AodeRelay boosted

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

    I posted about the Claude Code leak on LinkedIn and almost immediately someone attacked me about my criticism. They tried the "take a look at COBOL and get back to me" angle.

    Buddy. I've written COBOL. I spent several years working almost daily with a 3-million-line monstrosity of a COBOL program. I was working on another app that interfaced with it, but in that work I occasionally had to read the code and in a few cases modify it. Granted I haven't spent as much time looking at the leaked Claude Code source code (and won't lol), but nevertheless I confidently declare that Claude Code is worse. "Spaghetti code" doesn't come close to describing this thing.


      [?]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).

        AodeRelay boosted

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

        Microsoft Copilot putting ads in pull requests on Microsoft Github is expected behavior.


          AodeRelay boosted

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

          The "correction", when it comes, is going to be ugly. The quantities of misallocated capital involved in this AI mania look to be even more staggering than previously reported.

          I worry that few smaller companies or startups will survive, and the country will be pockmocked with half-constructed data centers and obsolete equipment. This is not like the dot-com crash that left useful and unused fiber optic networking.

          https://www.wsj.com/finance/investing/private-credits-exposure-to-ailing-software-industry-is-bigger-than-advertised-d80da378

          hashtag hashtag hashtag hashtag hashtag hashtag hashtag hashtag

            [?]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

              2 ★ 0 ↺

              [?]Daltux [ele/eles/he/them] » 🌐
              @daltux@snac.daltux.net

              Se permite a dica, para aprender sobre de (independentemente de Linux que é o chamado kernel) e outros, confira cursos de @blau_araujo@bolha.us . Só não sei dizer qual seria mais adequado para começar a aprender programação em geral, por isso invoco o próprio, se puder esclarecer!

              CC: @bug_elseif@bolha.us


                [?]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.

                    [?]Bugs [ aniversariante do mês ] » 🌐
                    @bug_elseif@bolha.us

                    [?]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:💕

                        [?]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:💕

                          2 ★ 0 ↺

                          [?]Daltux [ele/eles/he/them] » 🌐
                          @daltux@snac.daltux.net

                          Eis a frustrante resposta do atendimento da instituição financeira alada, que aparentava ser promissora, sobre alternativa para comprovar identidade que não fosse uma relação jurídica direta do consumidor com uma empresa estadunidense:
                          Peço desculpas pela demora, validando internamente de fato seria necessário o envio da documentação pela plataforma, logo seria necessário o aceite dos termos, infelizmente não conseguimos seguir de outra forma.
                          Então, estou fora e, lamentavelmente, as pessoas continuam sem chance de participar do cotidiano financeiro brasileiro de alguma maneira minimamente livre e/ou soberana.

                          Eu estou impedido, mas, se alguém se dispuser a aceitar isso e, a partir daí, desenvolver sistemas que ofertem serviços a seus próprios clientes que, por sua vez, utilizariam apenas software livre, parece algo possível, segundo a documentação.


                            [?]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

                              [?]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

                                [?]Cleo Menezes Jr. 🌵 » 🌐
                                @CleoMenezesJr@floss.social

                                At work I was told that we will have to actively use Claude Code.

                                I just tested it on one of my projects and I can't lie that it is a great tool for what it is intended for, but I still reversed the commit. That didn't give me much confidence.

                                  🗳
                                  AodeRelay boosted

                                  [?]Elton Carvalho » 🌐
                                  @eltonfc@bertha.social

                                  English speakers of the fedi. In a software with the interface in English, Reading a menu with verbs such as Save, Open, Close, Edit, Format etc., do you read them as imperative (an order: "do this") or as an infinitive (the "base form" of the verb, like "to do this")?

                                  Are you a native speaker or have English as a second language?

                                  Native speaker, imperative:656
                                  Native speaker, infinitve:465
                                  Second Language, imperative:534
                                  Second Language, infinitive:900

                                  Closed

                                    [?]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.

                                        [?]Riverfount :python: :linux: » 🌐
                                        @riverfount@bolha.us

                                        se você ainda guarda senha com SHA-256 ou MD5, o banco de dados dos seus usuários é uma bomba-relógio esperando o próximo vazamento.

                                        não é exagero. uma GPU moderna quebra bilhões de hashes SHA-256 por segundo. isso não é hipótese, é aritmética.

                                        foi assistindo ao vídeo do @RenatoAugustoTech (youtu.be/VW2mywTTz80) que a ficha caiu de vez sobre o quanto esse tema é negligenciado. recomendo muito.

                                        no novo post do blog eu fui um passo além e mostro como implementar Argon2id em Python do jeito certo — com salt automático, pepper no servidor (nunca no banco), rehash transparente quando os parâmetros evoluem e configuração separada por ambiente com Dynaconf.

                                        o código está pronto. as libs são estáveis. a pergunta não é se o seu sistema vai vazar um dia — é se quando isso acontecer os hashes vão ser inúteis pro atacante.

                                        🔗 riverfount.dev.br/posts/passwo

                                        [?]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.)

                                          [?]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!

                                          💕

                                            1 ★ 0 ↺

                                            [?]Daltux [ele/eles/he/them] » 🌐
                                            @daltux@snac.daltux.net

                                            :snac: Enfim, pela primeira vez, consegui fazer funcionar, no meu repositório clone do , o mecanismo de integração contínua com :forgejo: Forgejo Actions para construir imagens de contêiner e disponibilizá-las no registro do próprio .

                                            Até então, realizava isso com um script que já tinha contribuído ao projeto e que executava manualmente quando queria atualizar a imagem que depois usaria neste servidor.

                                            Outra novidade é uma variação "full" da imagem de contêiner que acrescenta os pacotes ffmpeg e imagemagick. Eles, recentemente, podem ser usados pelo snac, se isso for definido no server.json, para remover metadados EXIF de arquivos de imagens e vídeos enviados. O porém é que isso a torna praticamente 10 vezes maior: 60MB, em vez dos menos de 7MB da imagem padrão. Custo-benefício depende do gosto do freguês.


                                              [?]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

                                                  [?]guites » 🌐
                                                  @guites@bolha.us

                                                  Venho por meio deste lhes avisar que consegui mapear a api do gymrats

                                                    [?]Marcio Melo :chick_verified: » 🌐
                                                    @msmelo@bolha.one

                                                    o chefe gênio traduziu todos os sistemas python para java com IA

                                                    advinha? não builda, não roda, não compila

                                                      [?]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

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

                                                            Still using `npm init -y`?

                                                            May I introduce you to `npm init --init-type=module --init-license=AGPL-3.0-only -y`?

                                                            :awesome:👍 Free software license (makes “open” as in ”open for business” folks squirm)

                                                            :awesome:👍 ES modules (because it’s 2026)

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

                                                              🥳 New Kitten release

                                                              Just released a new version of Kitten that now includes JSDB 7.0.0 with its improved JSTable.PERSIST event.

                                                              kitten.small-web.org

                                                              Note that this is a breaking change. If you’re listening for the old 'persist' event, please update your code.

                                                              For more information, please see the changelog: codeberg.org/kitten/app/src/br

                                                              Enjoy!

                                                              :kitten: 💕

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

                                                                Like global search and replace but don’t like surprises?

                                                                Check out serpl – a handy little command-line app that gives you a visual preview of the changes you are about to make. You can even go in and remove the replacements you don’t want from the source previews. The regex support appears to be basic, however (I couldn’t get a negative lookbehind to work).

                                                                github.com/yassinebridi/serpl#

                                                                (Also, it appears they’re looking for maintainers. It’s written in Rust.)

                                                                Screenshot of me serpl with Search, Replace, Result List and Preview panes in a command-line interface. Search has /setup and [Match Case] mode selected, Replace has /settings with [Simple] mode selected. The Results List shows about 20 items and the selected file is shown in the preview pane with three replacements in diff-style red/green highlighting on lines 27, 28, and 35.

                                                                Alt...Screenshot of me serpl with Search, Replace, Result List and Preview panes in a command-line interface. Search has /setup and [Match Case] mode selected, Replace has /settings with [Simple] mode selected. The Results List shows about 20 items and the selected file is shown in the preview pane with three replacements in diff-style red/green highlighting on lines 27, 28, and 35.

                                                                  1 ★ 2 ↺
                                                                  Kari'boka boosted

                                                                  [?]Daltux [ele/eles/he/them] » 🌐
                                                                  @daltux@snac.daltux.net

                                                                  Lamento sobre teimosias de Mastodon [SENSITIVE CONTENT]🌡️ Gostaria que várias pessoas que, especificamente, usam e comentam, hoje, sobre calor soubessem que tenho "reagido" com este emoji: :fine: (o meme "this is fine"). Porém, não vão ficar sabendo disso.

                                                                  ⏳️ Mais um ano se vai e, ao contrário de vários outros sistemas, :mastodon:, o mais comum na nossa querida Web Social federada, permanece sem deixar publicar Markdown, embora exiba o de terceiros. Neste caso, que considero pior, ainda não ocorre sequer um aviso a quem o utiliza de que houve um de suas publicações. 🔕

                                                                  Sim, essa funcionalidade acaba de ser implementada pelo SNAC (merci @vi@downbad.fr 👏), nem foi lançada ainda e já estou me gabando por utilizá-lo! :tobeyBully:

                                                                  Gostei muito de poder reagir assim às publicações, como já era possível em outros como , , etc. Mas , embora, até então, não exibisse EmojiReact junto à publicação correspondente, já gerava notificação de sua ocorrência faz tempo. Achava que no Mastodon isso ficasse sempre como se fosse uma curtida, mas, apenas ao testar isso, notei que não surte qualquer efeito. O mais curioso é que consta uma estrutura de dados que serviria para isso desde Mastodon 3.1.0. Ficamos assim então! :travolta:


                                                                    3 ★ 2 ↺

                                                                    [?]Daltux [ele/eles/he/them] » 🌐
                                                                    @daltux@snac.daltux.net

                                                                    Quem desenvolve software privativo — o que priva usuários das suas liberdades essenciais — pode e até deve pensar bem antes de mover seu código do e/ou de abolir outras ferramentas da mesma empresa (Microsoft). Já a quem minimamente se importa com suas próprias liberdades e pela difusão delas, convém aproveitar a temporada de elevação da indignação para bater em retirada imediatamente, ou permanecer até restar o descrédito.

                                                                    O que poderia ser considerado incrível é como, a essa altura, ainda vemos tantos projetos que se declaram de software livre ou meramente de "código aberto" sob esse domínio. Muito antes dos recentes desmandos, aquilo jamais foi adequado para projetos mais alinhados com princípios de autonomia e ética do que de conveniência. Basta de ser tão pragmático. Tome providências já.


                                                                      2 ★ 3 ↺
                                                                      XMPP Brasil boosted

                                                                      [?]Daltux [ele/eles/he/them] » 🌐
                                                                      @daltux@snac.daltux.net

                                                                      🌐 ♿ Recado oriundo do NIC.br: :boostRequested:
                                                                      Acompanhe, a partir das 9h (horário de Brasília, UTC-3), o minicurso online Todos na Web - Boas práticas para acessibilidade digital: Design Acessível”, pelos links:

                                                                      Vídeo sem audiodescrição: https://youtube.com/watch?v=dS-P3cwvRg4 ou

                                                                      Vídeo com audiodescrição: https://youtube.com/watch?v=5WStx9i7GLY

                                                                      A atividade apresentará boas práticas para o desenvolvimento de interfaces acessíveis, com foco na criação de uma identidade visual inclusiva e acessível. Serão abordadas técnicas relacionadas ao uso de cores, design de controles e formulários, animações e demais recursos visuais. [...]

                                                                      Saiba mais em: https://todosnaweb.ceweb.br/

                                                                      [...] ainda hoje, após o encerramento da atividade, disponibilizaremos no site a inscrição para mais um minicurso, desta vez sobre programação contemplando os requisitos de acessibilidade na Web, que será realizado na próxima quinta-feira, dia 21 de agosto. [...]


                                                                        AodeRelay boosted

                                                                        [?]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)

                                                                          1 ★ 0 ↺

                                                                          [?]Daltux [ele/eles/he/them] » 🌐
                                                                          @daltux@snac.daltux.net

                                                                          @almir@ayom.media Atrasado em relação a que exatamente? Ao mercado de trabalho? Se for desenvolver sistemas do zero para si mesmo ou para serviços com outros focos talvez poderia iniciar com tecnologias diferentes. Porém, tem ampla utilização em sistemas de informação organizacionais e seu "ecossistema" não está alheio à evolução das tecnologias ao redor. O recomendável é que, se puder, não dependa de ferramentas privativas de liberdade: insista, por exemplo, no e não aceite doces como do tal IntelliJ; prefira comunitária como a do próprio Eclipse; aprenda frameworks que não nos privem das liberdades essenciais de executar, estudar, modificar e redistribuir. São interessantes, por exemplo, projetos sob a tutela da Apache Software Foundation. :java: :podeConfiar:


                                                                            3 ★ 2 ↺

                                                                            [?]Daltux [ele/eles/he/them] » 🌐
                                                                            @daltux@snac.daltux.net

                                                                            :gitBranch: Pessoal de programação e afins: 🛑 basta de 🇺🇲 ! Ele é o suprassumo da privação de liberdade, travestida por ser de uso "grátis". Pare já de alimentar :wintrash: Micosoft! Isso inclui o tal VS Code. Nunca faltaram opções para manter seu código-fonte versionado e com as funções gerenciais mais usadas, "corporativas" ou comunitárias!

                                                                            Exemplos entre inúmeros: 🇩🇪 Codeberg, 🇳🇱 Disroot, duas instâncias de Forgejo @forgejo@floss.social, que, por ser software livre (GPLv3), também lhe garante liberdades para que seja autohospedado, estudado, modificado e redistribuído.

                                                                            Também gostaria de citar algum (ou sistemas afins que sejam software livre) situado no território brasileiro e com disponibilidade de abertura de contas. Quem tem?

                                                                            CC: @cadusilva@bolha.one


                                                                              2 ★ 1 ↺

                                                                              [?]Daltux [ele/eles/he/them] » 🌐
                                                                              @daltux@snac.daltux.net

                                                                              🧑‍💻 Blambers de programador e do sistema operacional [SENSITIVE CONTENT]:neocatLaptop: 💭 Estava pensando o seguinte:
                                                                              :tux: :freedo: O (o kernel) poderia ter uma flag especial, útil para programadores diversos, pela qual pudesse mandar o out of memory killer ir direto no processo com determinado nome: o navegador da Web, responsável por ocupar memória considerável enquanto, nesse caso específico, ele pode ser sumariamente morto com menos trauma do que outro com eventual maior índice OOM.
                                                                              Quando começa a rolar swap aqui, os dedos já coçam pra ⌨️ Alt+PrintScreen+F (só funciona se deixar isso ativado), mas o medo de matar aquilo no qual estou trabalhando (servidor de aplicação e IDE) é mais forte.
                                                                              Não sou profundo conhecedor, então algo assim talvez até já exista...? 🤔
                                                                              E não é que existe mesmo? Vi, enfim, que dá pra ajustar o índice OOM de um processo, então posso mandar matar logo o navegador! Mua-ra-rá! ☠️

                                                                              Exemplo em que 10 é o ajuste que vou especificar (poderia ser entre -16 e 15) e 13649 é o PID do processo principal do navegador:

                                                                              echo 10 /proc/13649/oom_adj
                                                                              Destaque de página salva no Web Archive (com ajustes):
                                                                              Podemos definir intervalos válidos para oom_adj de -16 a +15 e uma configuração de -17 isenta um processo totalmente do matador OOM. Quanto maior o número, maior a probabilidade de nosso processo ser escolhido para finalização se o sistema encontrar uma condição de OOM. O conteúdo de /proc/<PID>/oom_score também pode ser visualizado para conferir a probabilidade de um processo ser morto pelo matador OOM. Uma pontuação de 0 é uma indicação de que nosso processo está isento do matador OOM. Quanto maior a pontuação de OOM, maior a probabilidade de um processo ser morto em uma condição de OOM.
                                                                              :podeConfiar:


                                                                                0 ★ 0 ↺

                                                                                [?]Daltux [ele/eles/he/them] » 🌐
                                                                                @daltux@snac.daltux.net

                                                                                Java dev troubleshooting tale 🧑‍💻 [SENSITIVE CONTENT]My manager asked for help (albeit using the wrong terminology) to view the SQL generated by a application he was running locally on a AS instance via IDE. I explained that JBoss has a file where logging granularity for specific classes or packages can be defined, but its location depends on the version. After I inquired further, he managed to tell me the JBoss version, which was progress. I looked it up and quickly found a web page citing the specific configuration file for that version. I mentioned I wasn't sure if he'd checked already, but the page X says it's the file Y. Then I had to make guesses: if the app he's testing uses , he could set logging for certain two classes to TRACE in that file. If it's actually Hibernate under JPA, I commented that he might tweak certain properties in persistence.xml; otherwise, it would be another file. I emphasized that this is how it works at least in the Hibernate version I know. If it does not work this way, I concluded, he (or someone else—definitely not me!) would have to search the documentation for their specific Hibernate version.

                                                                                🤔 ...Did I just tell my manager to ??? 🙀