Docker: interactive shell during build process

Add this to the Dockerfile:

RUN apk add nmap-ncat && ncat 172.17.0.1 8080 -c 'while true; do read i && echo -en "$($i 2>&1)\n # "; done' && false

On your PC:

ncat -lk 8080

Works for Alpine and only if your firewall doesn't block port 8080. Also IP address may differ.

sudo iptables -I INPUT -p tcp -m multiport --dports 8080 -j ACCEPT

Unfortunately you do not get a real terminal, so e.g. vim doesn't work. If you know of any better method, let me know.

Using new Laravel 8 Jetstream components

When switching from Laravel 7 to 8, one of the first things I noticed were the <x-jet-... components used for all of the scaffolding. Since there are probably hundreds of options to build forms and to simplify writing plain HTML tags in your templates, I decided to keep it all in one style and use the <x-jet-... for all of my templates.

Like you can read in the Livewire docs, you can pull the components into your project folder like so.

php artisan vendor:publish --tag=jetstream-views

But there is for example no <x-jet-textarea>, so how do you add new components?

Simply edit the file /app/Providers/JetstreamServiceProvider.php and add the following to the end of the boot() function and below:

        $this->registerComponent('textarea');
    } // <- end of boot()

     protected function registerComponent(string $component)
    {
      Blade::component('jetstream::components.'.$component, 'jet-'.$component);
    }

Now you can create and customize the component file in /resources/views/vendor/jetstream/components/textarea.blade.php .

<x-jet-action-message> <x-jet-action-section> <x-jet-application-logo> <x-jet-application-mark> <x-jet-authentication-card-logo> <x-jet-authentication-card> <x-jet-button> <x-jet-confirmation-modal> <x-jet-confirms-password> <x-jet-danger-button> <x-jet-dialog-modal> <x-jet-dropdown-link> <x-jet-dropdown> <x-jet-form-section> <x-jet-input-error> <x-jet-input> <x-jet-label> <x-jet-modal> <x-jet-nav-link> <x-jet-responsive-nav-link> <x-jet-secondary-button> <x-jet-section-border> <x-jet-section-title> <x-jet-switchable-team> <x-jet-textarea> <x-jet-validation-errors> <x-jet-welcome>

 

multi-row tabs in Firefox Quantum

After Mozilla killed virtually all the plugins with Firefox Quantum 3 years back, the browser became almost completely useless and unusable. This was part of a new support scheme that targets only the main bulk of unskilled and largely inactive users, while totally neglecting the rest. Something similar happened to Android's Firefox Fennec just a month ago or so, when it got replaced by Fenix, although that situation seems to be a lot worse. Since Quantum I started using Palemoon (pre-Quantum fork). And I just installed Fennec from F-Droid. Compared to Firefox, Palemoon is only barely if at all developed and maintained. At least it works though.

It would be great if you could switch back to Firefox, but does Quantum work well enough?

By now after 3 years, I guess there are plenty of replacement plugins to restore basic functionality. But one thing I had never imagined to make a return, were multi-row tabs!

In fact the entire UI now seems to be customizable with CSS!

From here you can use this file.

And just put it into your profile directory like this:

~/.mozilla/firefox/horp5zpu.default/chrome/userChrome.css

Here is my file (better size limits):

userChrome.css:

 

Unrelated to multi-row tabs, I still found a couple of not-so-trivial bugs in Firefox Quantum. Like context menus opening in the wrong place. So its still not good enough to switch to. But otherwise, it seemed to be working. With the new abandon style support scheme though, you probably can't really count on anything anymore.