Linux Exploration and Development

Jul 16, 2024

Lecture Notes: Linux Exploration and Development

Introduction

  • Focus of the Lecture: Exploration of C# .NET in Linux and terminal menus using different programming languages.
  • Objectives:
    • Achieve YouTube and Twitch chat synchronization.
    • Explore C# .NET in Linux.
    • Investigate Go with Bubble Tea for terminal menus.
    • Compare Rust, C#, and Go for Linux utilities.

Key Topics Covered

Chat Synchronization

  • Successfully integrated YouTube and Twitch chat.
  • Demonstrated how both platforms can communicate seamlessly.

Linux and C# .NET

  • Experiment: Running C# .NET on Linux.
  • Challenges:
    • Admitted it may upset some Linux purists.
    • Linux users' typical preference for terminal commands over .NET-type environments.
  • Goal: Understand feasibility and performance issues, if any.

Rust vs. Go vs. C# for Linux Utilities

Rust

  • Current Use: Rust used for the current project state.
  • Issues:
    • Problems with linutil, like interaction with prompts.
    • Failed nested prompts and sudo elevation requests.

C#

  • Progress: Created a branch in C# and .NET
  • Demonstration: Showed how C# and .NET were able to execute some tasks without major issues (like basic bash setup).
  • Challenges:
    • Display issues.
    • Received errors when setting up environments.

Go and Bubble Tea

  • Upcoming: Plan to experiment with Go and Bubble Tea for terminal utilities.
  • Reason: To find a more suitable language for terminal menus and scripts.

Personal Opinions

  • Rust: Personally not liking Rust for UI elements; prefers others’ solution.
  • C#: A bit conflicted; admitted it feels “wrong” on Linux but intrigued by possibilities.
  • General Observation: Will explore various programming languages to determine the best fit.
  • Learning Focus: Believes the journey and knowledge gained are more important than just the end product.

Development Challenges

  • Project Goal: Tool that can cater to user preferences like theme changes, scripting, and other utilities.
  • User Interaction: Need for user inputs for sudo and customization of scripts.
  • Tech Language: Not in a hurry, experimenting with different technologies.

Streaming Workflow

  • Personal Experience: Streaming allows transparency in development showing real-time struggles and solutions.
  • Engagement: Values feedback from the streaming community.
  • Sponsors and Career: Prefers not doing sponsor spots; enjoys working on content and interacting directly with users.

Conclusion

  • Outcome: Encountered major issues and system breakdown during the live demonstration.
  • Plan: Intended to fix the problem offline and stream again.
  • Learning: Demonstrates difficulties and real-world troubleshooting.

Final Thoughts

  • Lesson: Experimentation and transparency in development, even if failures happen.
  • Future Streams: Promised to continue working on it and stream soon again to show progress.