What a Year...

What a Year...

December 17, 2024

The most interesting concepts Ive learn this year:

  1. Bike-Shedding

  2. Show your Work - Together with the First 5 Clients Framework and finding a balance between what I do and what I show.

Probably 80 do / 20 show is the way to go?

  1. Finish what you Start

  2. It does not matter how fast your are going if you are going in the wrong direction

  3. When you think you are on the top, you stop getting better

A very impactful video I saw:

With this channels: https://www.youtube.com/@TheDiaryOfACEO

And cool food for thoughs on these posts:

I was lucky to find them! As the “search algorithms” are not placing this high valuable content in front of your eyes

Examples of People Doing Cool Stuff πŸ“Œ

Most interesting things i’ve completed…

Webs

Webs101

This is the first step: Setup HUGO or Setup Astro.

You can also deploy SSG with Containers

#hugo server --bind="0.0.0.0" --baseURL="http://192.168.0.117" --port=1313

#npm run dev
graph TD
    A[Build SSG] -->|Choose one | B[GitHub Pages]
    A -->|of these | C[Firebase]
    A -->|deployments| D[Cloudflare Pages]
    B --> E[Add your custom domain - OPTIONAL]
    C --> E
    D --> E

    click B href "https://jalcocert.github.io/JAlcocerT/portfolio-website-for-social-media/#demo-results" "Visit GitHub Pages"
    click C href "https://fossengineer.com/hosting-with-firebase/#getting-started-with-firebase-hosting" "Visit Firebase Hosting"
    click D href "https://jalcocert.github.io/JAlcocerT/astro-web-cloudflare-pages/" "Visit Cloudflare Pages"
  • Explore new libraries to improve Themes:

Webs with AI

From an AI driven content web, to migrating webs with AI

Get Better at Webs

Good recap of whats going on at JS: https://stateofjs.com/en-US

  • Web Analytics: with Umami or Tianji
  • CMS for Webs: DecapCMS, …

After few months, fixed my RPi site, as there was sth wrong with the Jekyll automatic CI/CD build.

Maybe will need to migrate from Jekyll at some point to HUGO/Astro.

Python is the most popular language - Again πŸ“Œ
  • Python has surpassed JavaScript as the most-used language on GitHub, largely due to the growing focus on data science and machine learning.
  • There has been a 59% increase in contributions to generative AI projects, showing the rise of AI-related work on the platform.
  • 1.4 million new developers joined open source globally, with most contributing to AI and commercially backed projects.
  • Python’s simple syntax and strong capabilities in data handling have made it especially popular with newcomers, particularly those entering the AI field.
  • As a feature of Linux distributions, Python is easy to access and commonly used to create desktop applications with frameworks like Qt and GTK.
  • Jupyter Notebooks experienced a significant surge in usage, thanks to its adoption for AI/ML tasks.
  • Despite the hype around Rust, its usage still lags behind Python, JavaScript, TypeScript, and Java.
  • The rise in Python projects may also be fueled by GitHub Copilot, which aids developers working on AI/LLM projects.
  • India is expected to surpass the USA in the number of developers on GitHub sooner than anticipated.

There is something about the AI, LLMs, LangChain that has sth to do with it…

Servers

A new Windows setup is easy with Chocolatey

Better SelfHosting

With this post and this SelfHosting script

  • Understood better how DNS works and went fully with BitWarden + 2FAS Auth

Doing Better with Pi’s

I got an additional Pi4 (this time 4GB Ram, 64 bits) and was helpful to:

⚠️
Definitely want to go back to the IoT Projects and do sth with Small Solar Panels

Sources of inspiration: randomgarage

Built a new PC!

The x300 is here!

Third Party Servers

It was the year to go beyond Google Compute Engine and the (as per my experience) arbitrary Oracle Free Tier.

Also gave it a try to Podman Containers, Termux Virtualization. Oh and with QEMU i can create MultiArch containers images with Github Actions!

Starting with a RPi-101 | version 2024 πŸ“Œ
lsfblk -f #check whats the SD Card to install the OS
sudo umount /dev/sda1
#sudo lsof +f -- /dev/sda1 #whats using the partition?
#ssh jalcocert@192.168.0.155 #SSH has to be enabled with CLI or during OS Installation with RPi-Imager
curl -O https://raw.githubusercontent.com/JAlcocerT/Linux/main/Z_Linux_Installations_101/Selfhosting_101.sh
#nano Selfhosting_101.sh #MAKE SURE YOU UNDERSTAND WHAT YOU WILL BE RUNNING

chmod +x Selfhosting_101.sh
sudo ./Selfhosting_101.sh
  • Get to know the relevant private IPs of your Pi with:
ifconfig #I can see that my Pi is 192.168.0.155 when connected via ETH and that the mac starts with D8:3A:...
ifconfig eth0 | grep -A 10 "<global>" #check mac, and transfered packages
#ifconfig eth0 | grep "inet " | awk '{ print $2 }' #if ETH Connected
#ifconfig tailscale0 | grep "inet " | awk '{ print $2 }' #for Tailscale

Optional - Save the OS image and share it with the torrent for others.

Normally the RPi team keeps them here, with links pointing to this repo, but just in case!

wget https://downloads.raspberrypi.com/raspios_oldstable_lite_arm64/images/raspios_oldstable_lite_arm64-2024-10-28/2024-10-22-raspios-bullseye-arm64-lite.img.xz.torrent
ℹ️
You can share with others the RPi OS Image via Torrent with Docker, QBitrorrent & VPN
Better Networking πŸ“Œ

This year I changed my router! Went from a Compal MV1 to a NE6037 (still COAX, I know!)

  • I got one of these portable 4g usb routers with sim - OLAX-U90
    • Once plugged in, you get a wifi SSID to connect to and manage the router: 192.168.0.1
      • Credentials are written on the device & it will ask you about SIM pin
    • If a valid sim is plugged, you can see the SMS and also make it provide internet connectivity

4g-OLAX-Portable-Router

I learnt a few things about Servers with the X300

Not more, but better SelfHosting πŸ“Œ

D&A

A huge consolidation of knowledge in this area.

The Big Picture

Domain Knowledge is always key - https://jalcocert.github.io/JAlcocerT/telecom-concepts-101/

Big Data & Cloud

  • Got the chance to work with Google Cloud/GCP
  • Could use interesting tools: Databricks, Trino (ex Presto-SQL), …

Python is Easy!

But having a Python env is this simple πŸ“Œ
#git clone https://github.com/JAlcocerT/DataChat

#python --version
python3 -m venv video_python_venv #create a Python virtual environment
python -m venv video_python_venv

video_python_venv\Scripts\activate #activate venv (windows)
source video_python_venv/bin/activate #(linux)

#deactivate #when you are done

#pip install -r requirements.txt

source .env
#export GROQ_API_KEY="your-api-key-here"
#set GROQ_API_KEY=your-api-key-here
#$env:GROQ_API_KEY="your-api-key-here"
echo $GROQ_API_KEY $OPENAI_API_KEY $ANTHROPIC_API_KEY

streamlit run Z_ST_AIssistant_v1.py

# git add .
# git commit -m "better st offer analyzer"
# git push

Cool AI Stuff

⚠️
I know, have to give it a try to these APIs: Mistral, Grok, Gemini…maybe Sambanova cloud?

Cat product Meme The final user always has the last word on rating what you’ve built

⚠️
Need to see DLT - data load tool (dlt) is an open source Python library that makes data loading easy πŸ› οΈ

Looking Forward

As always, a new year comes with opportunities to get better.

SuperProductivity… πŸ“Œ

Super Productivity is a comprehensive to-do list app designed to enhance productivity through time management and tracking features.

  • It integrates with platforms like Jira, GitHub, and GitLab to import tasks directly.

  • The app allows users to organize tasks with sub-tasks, projects, and tags, promoting effective time management.

  • Timeboxing and tracking features enable users to create detailed reports for time sheets.

  • Built-in tools include:

    • Break reminders to promote healthy work habits.
    • An anti-procrastination feature to help users stay focused.
    • A Pomodoro timer for structured work sessions.
  • The app emphasizes privacy by not collecting user data or requiring accounts.

  • It’s free and open-source, ensuring accessibility to all.

Conclusions: Super Productivity merges task management with time tracking, enhancing productivity without compromising privacy.

Similar projects include Todoist and Trello, which also focus on task management but may require user accounts and collect data.

Would be amazing to be better at what matters the most for us.

In the meantime…

Im getting better at photo/video edditing πŸ“Œ

And to be investigated…

Closing Thoughts for 2024


Next Year

Use LiteLLM to unify the LLMs API calls across providers..and use screenshot2code to make cooler website designs

Cline/ClaudeDev

Maybe next year…Dev Stuff πŸ“Œ

Go

Go has become a popular language due to several key strengths that align with the needs of modern software development. Here’s why:

  • Performance: As a compiled language, Go provides high execution speed, making it ideal for performance-critical applications.
  • Concurrency: With built-in support for concurrency through goroutines and channels, Go excels in managing multiple tasks simultaneously, which is essential for scalable systems.
  • Simplicity: Go’s minimal and clean syntax reduces complexity, making it easy to write and maintain code.
  • Type Safety: Static typing in Go catches errors during compilation, reducing the chance of runtime issues and ensuring more reliable code.
  • Tooling: Go has a powerful standard library and extensive third-party tools that help developers build efficient and maintainable applications.

The popularity of Go has been further driven by the rise of Kubernetes, which is written in Go and has become a core part of cloud-native environments.

Summary of Transitioning to Go for Node.js Developers:

  • Go’s Performance: As a compiled language, it offers faster execution compared to interpreted languages like JavaScript.
  • Concurrency in Go: Goroutines and channels allow for easy management of concurrent tasks, making Go ideal for scalable applications.
  • Simplicity: Go’s clean, minimal syntax makes it easier to learn and reduces cognitive load.
  • Type Safety: Static typing ensures fewer runtime errors, making Go more reliable.
  • Tooling: Go provides an excellent set of libraries and tools that help streamline the development process.

For Node.js developers, learning Go can open doors to better performance and scalability, especially when working with cloud-native technologies like Kubernetes.

Personal Takeaways for Node.js Developers:

  • Embrace Go’s strict type system and error handling methods to write robust code.
  • Take time to understand Go’s concurrency model to fully utilize its potential.
  • Leverage tutorials and community resources to ease the learning curve.

In conclusion, Go is a great language for developers aiming to build high-performance, scalable applications, and it serves as a valuable addition to a developer’s toolkit. Similar languages, like Rust and Deno, also focus on performance and safety, making them worth exploring.

Maybe next year…[Linux Stuff] πŸ“Œ

SysLinuxOS is a specialized Debian-based Linux distribution tailored for system administrators.

It addresses the need for a robust operating system equipped with tools for networking and system management.

Key Features:

  1. Debian-based with extensive networking and systems tools pre-installed.
  2. Supports multiple languages; offers GNOME and MATE desktop environments.
  3. Includes a variety of security and monitoring tools for enhanced system management.

Pros:

  • Comprehensive selection of pre-installed tools for system administration.
  • User-friendly with improved hardware support and customization options.
  • Regular updates aligned with Debian releases.

Cons:

  • Desktop may appear cluttered due to numerous monitoring displays.
  • May require additional configuration for specific user needs.

Alternatives:

  • Ubuntu Server
  • CentOS
  • Fedora Server

SysLinuxOS provides a solid foundation for system administrators, but users should be aware of its potential clutter.

Stop Coding as in 2023

AI Asisted Dev Tools…Codeium?ContinueDev? Copilot?Aide?Cursor?Cline…? πŸ“Œ
AI Asisted Web Search… πŸ“Œ

Perplexity? Or Perplexica?

What about MultiAgents? πŸ“Œ

CrewAI + Groq Tutorial: Crash Course for Beginners


VectorDBs

When you are using embedding models to give LLMs context about your files, this is where that knowledge goes.

And there are many Vector DBs that you can use with Linux

All of this tech will work in Linux and with just CPU, if you dont have a GPU handy.


More & More

Can I use LLMs to Code?

Yes, there are many ways to replace Github Copilot for Free:

Choosing the Right Model

LLM Quantization
  • GPTQ quantization, a state-of-the-art method featured in research papers, offers minimal performance loss compared to previous techniques. It’s most efficient on NVIDIA GPUs when the model fits entirely in VRAM.
  • GGML, a machine learning library by Georgi Gerganov (who also developed llama.cpp for running local LLMs on Mac), performs best on Apple or Intel hardware.

Thanks: https://aituts.com/local-llms/#Which_Quantization

Which LLMs are Trending?

You can always check the LLM’s Leaderboards

Where to host in the Cloud?

If you need big GPU power, you can always try https://www.runpod.io/gpu-instance/pricing and similar services.

Clouds ( & GPU Clouds)

  • RunPod, Linode, DigitalOcean, Paper Space, Lambda Cloud, Hetzner
  • vast.ai,
  • Google Colab TPU…