Author: Yazeed
5 PORT, 4K hdmi switch
The only way i got this 5 port, 4K HDMI switch to behave is by combining it with dummy HDMI adapters (here), In my setup, they are limited to 30FPS (Not sure if this switch can handle more, but the dummy HDMI adapter itself is limited to 30FPS at 4K)
Once the adapters are at the endings of all 5 input cables, the switch works perfectly, but what happens without them
Without them, there are a couple of problems, the PCs switch the video output off, and there is a delay before it comes back once it detects a screen has been connected again, so you keep clicking till you get lucky with the monitor you are looking for, not to mention that in the case of multiple monitors, the operating system keeps changing the monitor setup assuming that screens are coming and going !
the switch comes with a handy remote control (That i don’t use because the button is right here in front of me), but it will be handy in case you are using a PC that is relatively far
Also worth noting is that it can identify which screen are connected, so you do not need to go through all 5 inputs if only 2 are connected, it will only switch between those two
in any case, let me know in the comments if you have any questions
Bottom Sheets
Bottom sheets are like toasts in the sense that they allow the user to keep doing what they are doing, but different, they are the notifications that appear at the bottom of the screen that a user can dismiss, they (like toasts) also don’t block the current screen
The global function (showBottomSheet
or modalBottomSheet) expects a BuildContext and a WidgetBuilder. The modal displays over UI elements, so keep that in mind
the WidgetBuilder (That closure you should be familiar with from alerts for example, or a full fledged function definition, your choice) and the build context (you should have been passing around already by now) are straight forward, what is not is that a bottom sheet must be called with a context that contains a Scaffold. in other words, you’ll have to be “under” a scaffold widget… so to rephrase, it shows a Material Design bottom sheet in the nearest [Scaffold] ancestor
Now, to understand the problem, the context we are passing around as we put it in the last paragraph, belongs to the top-level widget, that widget has a scaffold obviously, but the scaffold is under it, when our bottom sheet wants to attach to a widget, using the of-context pattern to find the scaffold will fail as we are looking up the tree not down where the scaffold is !
Dart and Flutter
This page is just a listing of all posts relating to dart and flutter on this blog, but instead of chronological order, this page puts things in logical order !
Detect platform in flutter
Sometimes, you need to know what operating system your flutter app is running on, most times for theming purposes, but sometimes for functionalities !
There are basically 2 popular ways to do this (3 popular methods if you are willing to use a package specifically to simplify theme issues !), let us assume we will be calling a certain method called _iosMethod if we are on iOS, and a _genericMethod if we are on any other platform
The most common use case is to determine whether to use Material or Cupertino, to give the application that native look the users are used to… in any case… here are the two methods
In both methods, we have a function called doStuff
Method 1
In the first method, we get the platform using the Theme (We must pass context to function) !
The ThemeData object has an enum called TargetPlatform… we will use that here
void doStuff(BuildContext context) {
final platform = Theme.of(context).platform;
if (platform == TargetPlatform.iOS) {
_iosMethod(context);
} else {
_genericMethod(context);
}
}
The possible options that can come out of this enum are (android, iOS, linux, macOS, windows, fuchsia)
Method 2
Here, we can simply start by importing (import ‘dart:io’ show Platform;), then use it directly
import 'dart:io' show Platform;
...
...
void doStuff(BuildContext context) {
if (Platform.isIOS) {
_iosMethod(context);
} else {
_genericMethod(context);
}
}
Method 3
This time, we will be using the package (flutter_platform_widgets), this package is very useful for theming your application to have the look and feel of the default theme of the OS…
things become very simple with this package, all you need is the line
return PlatformElevatedButton(onPressed: onPressed, child: child);
SSH tunnel for VNC
If you were on a linux machine, it would be as simple as
ssh -L 5901:localhost:5901 root@192.168.7.119
Just kidding, don’t login as root, it is all just for tunneling, replace root and the IP of my super top secret server with something suitable
On windows, the most popular SSH client is putty, and to do that in putty, follow the following steps
Open putty, then enter the IP address or hostname of the remote machine
Mobile Development
This is just a summary of the tools you may or may not use for mobile development
Cross Platform
- Dart-Flutter
- React Native
- Kotlin Multiplatform (& compose-multiplatform ;))
- Ionic
- .NET MAUI, (Successor to Xamarin.Forms), develop in C#
- NativeScript: Build mobile apps with Angular, Vue.js, etc !
Android
- Android Studio
Kotlin / Java - Jetpack Compose : composable functions – define your app’s UI programmatically
iOS
- Xcode
My flutter notes
This is an unstable post, I add comments here, then move them to their final destination on a separate post, posts are listed on the Dart/Flutter page, so it is completely normal for this post to be empty most of the time !
The reason I am interested in flutter is that it may just be the best option to accompany my RUST programs and fit them with relatively efficient front ends ! again, potentially the best fit FOR ME AND MY RUST PROJECT IDEAS
VSCODE on Android and iOS
Final Result
Well, Yes, my own VSCODE with all my plugins etc… basically the same instance that runs on my computer on an Android or iOS device BROWSER ! I put this here at the beginning so that if this is not what you need, you don’t have to waste your time, but before you move on, think about it as an alternative since it works remotely too 😉 , if not, then move on… don’t waste your time here
What for
For my back pain, I want to be able to change my setting every few hours, and this enables me (With the help of a wireless mouse and keyboard” to use my android TV box, my ipad, and other screens around the house to keep working
Summary
So, I will get to the details, but in summary, you can install Visual Studio Code Server on the same machine that has your Visual Studio Code installed, then you open your VSCODE with a browser
It turned out that someone has already done this tutorial (Here), but i am keeping this post so that you can see the summary before you have to se the video
Web back-end frameworks in RUST
- Rocket: By far the most popular, has plenty of features to make your life easier
- Actix_web: The blazing fast framework
- Gotham
- Tide
- Warp
Not so complete, and some haven’t been maintained for some time