[JUST READ]: Regarding programming in real life and the/this/those/my/your **issues** {on these days} #19628
Replies: 3 comments 5 replies
-
A friend just asked me:"Why such a long write-up to start a discussion?" and I responded, "Because I'm angry! with the whole world". Why?:
So, at the end of last year, I set out to improve the quality of my products/programs/projects (home automation, databases, 3D design, embedded devices and automation, IoT, robotics + PLCs) by creating my own visual interfaces and HMIs, etc. The issue is that while seeking to program UIs for Mobile (Android, iOS), PCs (Desktops, Notebooks, Netbooks, Windows, Mac, Linux), Tablets, Embedded devices, Wearables, TVs, and Web. I naturally encountered Kotlin, Flutter, PWAs, and MAUI. Knowing that my work in programming is 'varied' (Industries, Commerce, Companies, Automation, Robotics, 3D Design, Office {obviously}, and R&D), I need to use sensors, data availability, store, present, represent and process information in different ways, areas, users, hierarchies, etc. But also 'beauty'. The problem is that wherever I look... I always encounter a stack of frameworks, plugins, and dependencies that have little documentation on functionality and performance benchmarking, but "with a lot of community activity", which is not always good or appropriate. Many times, the responses are:
It doesn't solve the problem, nor is it the best approach, but "it's a solution itself" , That's why I discarded Kotlin, Flutter, PWAs, etc. So I came across MAUI and thought, "this is what I need", but it has so little truly useful documentation that it saps your motivation. Then I found 'Uno Platform', which looked promising, but I'm still looking for documentation, information, or tutorials that:
And other important things like:
The good news is that three months ago, they uploaded a tutorial for a 'counter app'... (again). And no, it's not me wanting everything to be easy, not wanting to learn, test, and retest, but rather there's a lack of basic and explicit information. Not all projects are calculators and counters, nor do they have teams of many people and resources to test the various combinations and scenarios. I am an average Argentine, unemployed, doing whatever it takes to survive, with an income that covers 60% of the cost of living. Knowing how to program in C# doesn't necessarily mean you're an expert in .NET, because the .NET ecosystem is vast and diverse. While C# is a core language within .NET, itself encompasses a wide range of frameworks and tools, each tailored for specific types of development and syntax's. That's why I'm talk about DOCUMENTATION and share INFORMATION/KNOWLEDGE. |
Beta Was this translation helpful? Give feedback.
-
1) Why
2) ExplanationThere's where 'the magic becomes real' (Disney Version) or 'Where the S# just got real'. (Real Life Version) * Many times, a question is posted along with the code snippet that triggers the error (or is thought to trigger it), but it turns out that the code is 'correct', and the problem occurs elsewhere:
* Although the approaches to programming, architecture, structure, and app flow may vary, I showed the way I approach a MULTI/CROSS project (which I find the most optimal in my 'Solo/All alone/One man army/FullContact programmer' case).There are things that don't change:
3) It's not the same- It is not the same to say: I have an error 'when I click on my button' my device freezes and restarts.
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="YourNamespace.MainPage">
<StackLayout Padding="20" VerticalOptions="Center">
<Button Text="DO YOUR MAGIK OCR"
Clicked="OnOcrButtonClicked"
BackgroundColor="DodgerBlue"
TextColor="White"/>
<Label x:Name="ResultLabel"
Text="OCR REULSTS HERE"
Margin="10"
TextColor="Black"/>
</StackLayout>
</ContentPage>
using Microsoft.Maui.Controls;
using System;
using System.IO;
using Tesseract;
namespace My_Super_Duper_Solution_Project_OCR
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnOcrButtonClicked(object sender, EventArgs e)
{
try
{
// File Pathology
string imagePath = "//your_PsicoPathology/ocr_photo.jpg";
// Use Tesseract for OCR
var engine = new TesseractEngine("./tessdata", "eng", EngineMode.Default);
using var img = Pix.LoadFromFile(imagePath);
using var page = engine.Process(img);
var text = page.GetText();
// Results on LABEL!
ResultLabel.Text = $"Yupi!!! i have TEXT!: {text}";
}
catch (Exception ex)
{
await DisplayAlert("Error", $"Shit man! Sorry but your code is Fuckeable: {ex.Message}", "Whatever");
}
}
}
} This code works, but:
- To say:
Spec's:
4) Mapping/tagIf the 'Discussion area' it has a good mapping/tag
5) Never underestimate the cases.In many forums, etc., I often read comments like:
Many times, it's not about Juniors, Newbies, or lazy people unwilling to research or someone who has no clue.And even if that were the case... I believe everyone 'at least deserves the opportunity' to learn how to carry out their idea, solution, or project. It could also be someone simply transitioning to a new language, framework, platform, paradigm, or version:
Everyone needs to eat, pay rent, pay taxes; Necessity leads to migration (in every aspect and sense of life and society).And while they may be a senior in their field, they are now a newbie in this new context.- .NET always ensures that you’re a newbie again.See you next year .NET 8 & 9 projects. 💩 🤣 😢P/D: Muffin's plan still stands 🔥 |
Beta Was this translation helpful? Give feedback.
-
I come from
using System;
namespace SillyESP32BitwiseOpExample
{
class Program
{
static void Main(string[] args)
{
// Example: Toggling a specific bit in a byte
byte data = 0b_10101010; // Initial byte
int bitPosition = 3; // Bit position to toggle (0-based)
Console.WriteLine($"Original data: {Convert.ToString(data, 2).PadLeft(8, '0')}");
// Toggling the bit
data ^= (byte)(1 << bitPosition);
Console.WriteLine($"Data after toggling bit {bitPosition}: {Convert.ToString(data, 2).PadLeft(8, '0')}");
}
}
} - To needing to request permissions to use a camera, and DOC's say's:Thank you!
And when I ask:
The same goes for the contradiction between Sometimes the Solution of a problem or Project itself it's just based on:
This case has varied solutions, based on architecture, structure, flow, approach and code. That a good documentation can handle at very beginning. I think I speak for many when I say thatI'm not an idiot, nor lazy who doesn't like to read or learn. I don't want the work done for me, nor solutions that don't fit my context project (socio-economic and resources; IT, time, equipment). |
Beta Was this translation helpful? Give feedback.
-
Glossary:
Prologue:
As programmers, we often find ourselves navigating a technological multiverse in constant evolution and interruptions without even realizing it.
Depending on your job, position, interests, vision, or circumstances, you are constantly dealing with the creation, updating, and implementation of solutions based on ingenuity, technique, knowledge, and skills in software within this IMH world.
Regardless of the nature of the project, there are always requirements, impositions, and interruptions throughout the process. Whether you work alone or in a team, the multiplicity of approaches also plays a crucial role.
Regarding requirements, these can be requested by the client or the project itself (when doing I+D), but regardless... It always ends up being 'Multi.'
The impositions are varied but present; data policies, services, governments, app stores, internal (company or laboratory), etc.
Interruptions are also varied, but can be grouped into the IMH of CVEs, Bugs, Updates.
A CVE can lead to a language, protocol, framework, SDK, platform, library, architecture, firmware, or system needing to be updated or completely changed.
Take, for example, the cases of STUXNET, 7zip, Crowdstrike, etc.
1) The paradigm of the 'Multi/Cross' platform (and what brings and keeps us here).
Q#, F#, C# (as Quantum Field Coding, like QFT Quantum Field Theory)
Sharp family as quantum of the .NET universe and the solution to the multiverse of madness of devices, platforms, OS, IDEs, processors, brands, models, versions, architectures, design patterns, structures, techniques, SDKs, firmwares, frameworks, workflows, languages [IMH].
All of us reading this have experienced it, whether new or old to the topic.
2) IMH as an approach to the architecture, structure, hierarchy, flow, and project targeting.
Every project starts as a solution to a problem, has requirements, and based on those, an approach is chosen to address it, but it always involves:
3) Is it just me, or do I not know where to start with the IMH of my project?
Employee 'John' needs the app to survey clients, check warehouse stock, create visit routes, receive notifications, perform real-time calculations, take photos, upload everything to the cloud, and make queries. (but I'm not going to buy him an iPhone, probably a depreciated, cheap Android 8 to 12 or a GO version)
The area manager 'Bob' needs to see in real-time what 'John' is doing, the industrial process, purchases, sales, security cameras, analyze data, and create reports, from his all-in-one Celeron Linux x32 4 GB PC, Dell Windows x64 8 GB Notebook, Samsung Android Custom ROM 12+ QuadCore 2 GB Tablet.
Technician 'Alice' need to inspect and debug robots, weather stations, PLCs, and network coverage (3G, 4G, 5G) from their Android Custom ROM 10+ 2 GB tablets or HMIs embedded in each device, but being able to do it both; wired and wirelessly.
We all know that variation occurs at every level; Brands, Models, Systems, Devices.
From Android 8 to 15, there are many platform-level changes, even in the GO versions. Samsung, Motorola and Xiaomi have their own policies regarding notifications, background tasks/services (foreground/background), resource and sensor usage, system access, etc.
Even among PCs and notebooks, Windows and Linux (and within them as well).
To much an to many things.
4) So... What's next?
QFC# can handle it????... yes, but there's no easy path, not even redemption for where you're headed, you are another Sisyphus in the .NET universe. Still... It's more gratifying than having 5 IDEs installed, programming in 7 different languages, and having 2 TB of disk space in frameworks and libraries, where you only use a few things here and there, and never the whole package.
5) My proposal:
So the approach changes:
Now then... Let the discrepancy be welcome!
From Argentina with love.
Beta Was this translation helpful? Give feedback.
All reactions