mastodon.xyz is one of the many independent Mastodon servers you can use to participate in the fediverse.
A Mastodon instance, open to everyone, but mainly English and French speaking.

Administered by:

Server stats:

790
active users

#posix

10 posts8 participants1 post today

In 2005, Google paid $50 million to a software engineer called Andy Rubin, together with his team for a dying phone company giving away their FREE software.

Critics called it the "dumbest acquisition ever."
Today, that "dumb decision" is worth over $500 BILLION and is the reason why you are holding a less expensive but quality phone that is not an iPhone

Here's how Google saw the future before anyone else: and built the world's most used mobile device - Android phones

It all started with a tiny company called Android Inc.

Founded by 4 top tech entrepreneurs and business executives, Led by Andy Rubin.

Their goal?
To create smarter mobile devices
that are more aware of their owner's location and preferences, and an operating system that is completely free & open-source.

Any manufacturer could use, modify, or make it their own. But at this time, this seemed insane.

Because the company was struggling financially:

No products.
No revenue.
Just 4 guys and a dream.
To make it worse, the mobile phone industry was locked down tight by software giants:

• Nokia controlled its software
• Microsoft charged for Windows Mobile
• BlackBerry kept everything in-house

The idea of giving away a free Mobile phone Operating system (OS) was Laughable.

But Google, just as they saw the future of YouTube, saw something much bigger - Mobile phones would become the primary way people access the internet. With that google search engine will be irresistible

They weren't buying software.
They were buying the future of computing.

To protect their search engine business, they pushed to buy

This was the real threat:
If Microsoft or Nokia dominated mobile, they could:
• Block Google Search
• Push their own services
• Control the future of digital advertising

Google couldn't let that happen.

So they made their boldest move yet. Buy out the entire company, not just the product.

But they didn't just buy Android. They kept it open-source.
Why?
This was genius because they wanted:
• To give Phone makers free software,
• help Android developers get a free platform
• Help Users have more choices.

Result? Companies like Samsung, Huawei, HTC can distribute their Android devices freely

Everyone won...

Except Google's competitors. 😁
Blackberry
Nokia
Microsoft
Because within 10 years of Android's free open-source purchase, their company was gone.

wondering why you have not seen them again today.
Cos' everyone prefers an open-source free phone where you don't have to pay for anything after the initial purchase.

That's the masterstroke
In 2008, the first Android phone was launched;

The HTC Dream (T-Mobile G1)

It wasn't pretty.
It wasn't smooth.

But it was the beginning of a revolution...
Because Google did something unprecedented:
They gave manufacturers complete freedom:

• Change the interface
• Add new features
• Customize everything
This sparked an explosion of innovation...

Companies like Samsung, HTC, LG, and others could now compete with Apple without building an OS from scratch.

The result?

Android powers 71% of all smartphones worldwide.

That's billions of devices running Google's software.
But here's what makes this truly genius:

In everything Google builds, it always finds a way to monetize.

How does Google make money from its $50 million investment?

The truth is, Google doesn't make money from Android directly.
Instead, they make money from:
• Play Store fees
• Google Search
• Digital advertising
• User data
The platform is free, but the ecosystem is priceless.

This $50M bet didn't just transform mobile.
It transformed how we:
• Connect
• Shop
• Work
• Live

The lesson?
Sometimes the biggest opportunities look like the riskiest bets.
Google's Android gamble teaches us:
The best investments aren't about what something is today.
They're about what something could become tomorrow.
And sometimes, giving away value is the best way to capture it.

Source FB

Replied in thread

Im starting to achieve platform distro OS translucency regarding more and more projects. Now I can smoothly work in my hugo projects from any distro I want in Linux. All I need to do is keep the copies I work on in sync.
Since I dont run zfs jet on a centralized HDD / SSD I simply use mc -a to do the job manually.
Normally it should be trivial, but the hugo projects want rm -Rf dir otherwise old files with similar size can be changed, thus screwing up continuity

Since my KDE MX install is moothing out in cfg features I need, which is a combo of XFce components and KDE, I can smoothly switch to the KDE distro and work further while I tune it.

I chose to keep XFce seperate from KDE distro wise due to size constraints I;ve put on my boot partition

.🖋️ #bash #MX #mxLinux #sh #zsh #ksh #csh #tksh #fish #distro #gPartEd #xFace #KDE #Gnome #Linux #POSIX #fresh #programming #backgrounds #wallpaper #Vallpaper #gufw

I figured #swad's password file management tool (swadpw) should really *ensure* that when reading a password from the #terminal, prompts are printed to exactly that terminal.

Well, I already check whether standard input *is* a terminal. In that case, I assume it *should* be writable. It certainly *is* writable on #FreeBSD and #Linux. But I can't find any guarantee looking at #POSIX specs 🤔.

Ok, so I wrote a weirdo function to provide fallbacks. 🤪 Is this taking it too far? And how would I ever test these fallbacks? 🙈

Just released: #swad v0.3!

github.com/Zirias/swad/release

swad is the "Simple Web Authentication Daemon", your tiny, efficient and (almost) dependency-free solution to add #cookie + login #form #authentication to whatever your #reverse #proxy offers. It's written in pure #C, portable across #POSIX platforms. It's designed with #nginx' 'auth_request' in mind, example configurations are included.

This release brings a file-based credential checker in addition to the already existing one using #PAM. Also lots of improvements, see details in the release notes.

I finally added complete build instructions to the README.md:

github.com/Zirias/swad

And there's more documentation available: manpages as well as a fully commented example configuration file.

Replied in thread

The next step was to config KDE connect in this KDE. Luckily I know that I need gufw to migrate my profile, from the xFce MX linux to this KDE MX linux.
It was a matter of installing gufw, which is not default in KDE distro, since it has its own nice interface. For me sticking with what I know is the easiest since I want to drive KDE on desktop again after so many decades, even though XFce is still going to be used most, due to shortcut muscle memory

.🖋️ #bash #MX #mxLinux #sh #zsh #ksh #csh #tksh #fish #distro #KDE #Gnome #Linux #POSIX #fresh #programming #backgrounds #wallpaper #Vallpaper

Today, I implemented the #async / #await pattern (as known from #csharp and meanwhile quite some other languages) ...

... in good old #C! 😎

Well, at least sort of.

* It requires some standard library support, namely #POSIX user context switching with #getcontext and friends, which was deprecated in POSIX-1.2008. But it's still available on many systems, including #FreeBSD, #NetBSD, #Linux (with #glibc). It's NOT available e.g. on #OpenBSD, or Linux with some alternative libc.

* I can't do anything about the basic language syntax, so some boilerplate comes with using it.

* It has some overhead (room for extra stacks, even extra syscalls as getcontext unfortunately also always saves/restores the signal mask)

But then ... async/await in C! 🥳

Here are the docs:
zirias.github.io/poser/api/lat

zirias.github.ioposer: PSC_AsyncTask Class Reference

I finally eliminated the need for a dedicated #thread controlling the pam helper #process in #swad. 🥳

The building block that was still missing from #poser was a way to await some async I/O task performed on the main thread from a worker thread. So I added a class to allow exactly that. The naive implementation just signals the main thread to carry out the requested task and then waits on a #semaphore for completion, which of course blocks the worker thread.

Turns out we can actually do better, reaching similar functionality like e.g. #async / #await in C#: Release the worker thread to do other jobs while waiting. The key to this is user context switching support like offered by #POSIX-1.2001 #getcontext and friends. Unfortunately it was deprecated in POSIX-1.2008 without an obvious replacement (the docs basically say "use threads", which doesn't work for my scenario), but still lots of systems provide it, e.g. #FreeBSD, #NetBSD, #Linux (with #glibc) ...

The posercore lib now offers both implementations, prefering to use user context switching if available. It comes at a price: Every thread job now needs its private stack space (I allocated 64kiB there for now), and of course the switching takes some time as well, but that's very likely better than leaving a task idle waiting. And there's a restriction, resuming must still happen on the same thread that called the "await", so if this thread is currently busy, we have to wait a little bit longer. I still think it's a very nice solution. 😎

In any case, the code for the PAM credential checker module looks much cleaner now (the await "magic" happens on line 174):
github.com/Zirias/swad/blob/57

Replied in thread

I also encountered another problem; I can immediately tell you that it's not a KDE specific problem but it popped up in konsole.

The subject is fonts and the section is point size. The monitors I use are not of a small resolution. In fact an ideal IPS LED panel layout for me would be an 8K panel two 4K panels flanking it and two 1080p ultra ultra wide panels at a left and right of those.

With such a setup I can monitor different machines at the glance and control them with ease.

Even on my 1080p Ultra Ultra wide panel the default Point sizes for fonts are too small. On a scratch KDE based MX Linux installation, the following problem was repeated twice in Konsole.

The first time I changed font point sizes, closed konsole. When I reopened konsole the fixed with font, was replaced with one that appended spaces behind every couple of letters.

This rendered konsole unusable for work.

Changing the fonts Point sizes to the defaults again did not fix the problem.
Sinds that installation was Vanilla and didn't have enough space for home and root on one partition to actually Play with KDE, I wiped it and started again.

This time I deliberately did not change the point sizes even though it was hard to read. I then copied over some configuration directories from my other installation to this One, none of them related to anything KDE wise or any fonts directory. When I rebooted that installation The problem occurred for the second Time.

As with the wallpaper issue, I immediately converted that energy of irritation to something positive. I troubleshooted the font problem for a short while and when I couldn't isolate it I did a simple thing. I created a couple of other accounts on the same KDE installation to see if I could repeat the error.

That reproduction step is vital before a bug report is created. The other accounts were also residing on my other xFace MX Linux installations, which means I could simply copy them over to the other home partition where KDE was looking at.

In the other accounts I could not repeat the error.

That means a bug report is worthless because repeatability is crucial. Since the usage of a terminal in the K Desktop Environment is important, I changed my strategy and simply installed the xFace Four terminal in KDE. In the end that was a nice move since I know all the keyboard shortcuts of the terminal by hand they are in muscle memory and they have been there for years.

As a bonus I also installed other good shells in MX KDE the hashtags tell you which.

Right now I have a KDE installation in which I can actually work based upon the MX Linux KDE variant

I shall link a couple of photographs in a few minutes

.🖋️ #bash #MX #mxLinux #sh #zsh #ksh #csh #tksh #fish  #distro #KDE  #Gnome #Linux #POSIX  #fresh #programming  #backgrounds #wallpaper #Vallpaper

Continued thread

My next step was something unexpected.

In XFce4 my desktops all have different backgrounds per IPS Led Panel. Its a matter if context menu key (on my keyboard I have one) select background and move the program to the next display beside it and repeat, then move it to the next desktop, display besides AD Infinitum

KDE says HELL NO to that ease.
I did some reasearch and saw that it was easy peasy in KDE 4.5.x then got replaced with activities in KDE Plasma 5.x
The simple command is now either kwin scripts or a lot of keystrokes and time.

Instead of getting pissed I went further and found that what the programmers replaced with activities (which are POWERFULL and versatile) and also usuable for wallpapers per VTop (Virtual desktop) was eased back (in 2022) with VallPaper

Source is here

cadence.moe/blog/2022-12-03-im

.🖋️ #bash #MX #mxLinux #sh #zsh #ksh #csh #tksh #fish #distro #KDE #Gnome #Linux #POSIX #fresh #programming #backgrounds #wallpaper

cadence.moeImplementing different wallpapers on KDE virtual desktops - cadence's weblog (personal blog)