

Because you won’t determine the type of NAT during hole punching. This requires the client sending two UDP packets to two different IP addresses, then comparing their source addresses on the server.
Normally yes, you can just assume that two clients you are trying to connect both have port restricted cone NAT, and run the hole punching algorithm, and if the connection fails after ten seconds, show message to the users ‘Error 418: your router is a teapot’.
The one use case is running STUN/TURN server for NAT hole punching, that requires two separate servers, or one server with two IP addresses. You will only need that to run masterserver for games that support hole punching, or to run VoIP telephony / teleconference server.
Another use case is reliability, when your server is connected to several network providers, it will keep working if one of them has an outage, and will naturally have a different IP address for each network link. But your VPS does not have several network links, otherwise they would advertize that in bold red letters.
It’s supposed to be available on Android 15, but only on ‘select devices’, so probably only on Pixel.
Thanks for trying it.
You need to enter these commands in the Linux terminal app, not in the X server app. Once the two apps connect, it should be possible to launch another terminal inside the X server.
Go to your phone Settings > About Phone and tap “Build number” seven times. You will receive notification that your phone now has developer options enabled.
Settings > System > Developer Options > Linux development environment. On that page, tap the On/Off slider.
You will find an icon for the new Terminal app on your home screen. It’s going to download 500 MB of data when you open it.
Long-press the Terminal app icon, tap Info > Mobile data, and enable Unrestricted data usage.
Now you can download more packages inside your Linux virtual machine using apt-get
command, as described in my previous post.
Yup, Android is Linux, but you can’t run desktop apps on it like Gimp or LibreOffice or VS Code, that’s what Linux terminal is capable of.
Google’s bullshit strikes again! All apps must be built for Android 13 or they are removed from Play Store, apparently because Google could not do the Android security correctly for the first 12 versions. Now they can emulate Linux on Android, but cannot emulate an older version of Android on Android. And I last updated my app in 2021, during Android 11 era.
Here’s the link to sideload the app:
I’ll try to update it on Play Store tomorrow, if my crusty build scrips will work with the new Android SDK.
Someone who owns a fancy new phone with Android 15 or 16, could you please test if you can run GUI Linux apps on it using my X server app?
Supposedly it should work like this:
sudo apt-get install task-xfce-desktop
export DISPLAY=127.0.0.1:0
xfce4-session
Open XSDL app again, you should see XFCE desktop environment with mouse cursor, and you should be able to launch Synaptic and install other Linux packages.
Being direct is good. But ‘too complex, refactor’ as an explanation is just one word longer than ‘fuck off’. You need to explain in detail why the solution is bad and which parts should be changed, in this case it just shows that the reviewer did not actually read the code.
We want to inhibit when running stuff like pacman, wget, cp or mv
There is already a separate systemd-inhibit
command that does exactly what you need. Trust your users, they are capable of googling it (most of the time).
Only pacman and wget will benefit from suspend inhibition, because it will prevent breaking network connections. cp and mv will resume working just fine even when you hibernated your laptop while cp was executing. And in that case it’s less bug-prone to scan your system for active TCP connections to external addresses instead of adding a hack wakelock inside your terminal or inside wget.
It is also a poor idea to mess up with system-wide settings from some command when the user does not expect it, you’ll likely to get a thousand invalid bug reports that sleep mode is broken when some service randomly decides to use wget to continuously read from local Unix socket.
Jumping from loose-typed language to strict-typed language will be hard.
It’s also a matter of your general programming experience. Once you write, like, ten thousand lines of meaningful code in Python, learning C# should take you a month or two at most, you’ll know most programming concepts and algorithms intrinsically, and the rest is just learning syntax.
I have switched from XTerm to Konsole only a year ago.
it’s used to verify that OpenGL ES2 works onn your system. It’s the variant of 3D graphics drivers that is used on smartphones. Many apps nowadays write their GFX frontend with GLES2 so it uses the same code on phones and PCs, and if they compile the app to run in the web browser, WebGL is also based on GLES2.
Torvalds kicked out a bunch of Russia-based kernel maintainers.
The security issue is very likely scenario. If you’re in Russia, you can go to jail at any moment on totally bogus charges. It is very easy for FSB to pressure some random kernel maintainer into adding hard to detect backdoor into their code, it will be XZ situation all over again.
Yes they do. See the long-standing debate over the ban to export crypto algorithms to Iran.
What about systemctl poweroff
?
I had the root canal done without an anesthesia, because I did not want a needle sticking into my gum.
It was tolerable, I did not cry or anything like. The nerve was mostly dead anyway.
The dentist took his sweet time removing the nerve piece by piece with a probe, instead of just drilling the whole tooth through. It did not matter at the end anyway, because he filled the canal afterwards. And the molar has three roots, so he repeated that two more times.
I guess it depends on your pain tolerance.
C++ with -Wall -Werror, and no pointer diddling.