What a Year...
The most interesting concepts Ive learn this year:
Bike-Shedding
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?
Finish what you Start
It does not matter how fast your are going if you are going in the wrong direction
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:
- https://www.nickgracilla.com/posts/stop-doing-a-place/
- https://blog.cavelab.dev/2022/01/a-person-that-writes/
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"
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:
- Explored Computer Vision
- Tinker with VPNs, Wireguard and Wifi2Eth Bridge
- Learnt more about device efficiency and its relation with power consumption
- A pi can be powered with the original 15W usb-c adapter (5.1V/3A DC)
- But as long as your adapter is able to sustain at 5V a current up to 3A it will work
- In idle the Pi4 sits ~4W, meaning ~0.8A (Voltage is the constant)
- A pi can be powered with the original 15W usb-c adapter (5.1V/3A DC)
- Used Ansible! Combined an IoT Project (DHT-Mongo-Metabase)
- Put together few AI Projects to work on the RPi here
Sources of inspiration: randomgarage
Built a new PC!
The x300 is here!
- Learnt more about benchmarks and compared it with: Firebat, BMAX-B4 and…even the ThinkPad
- Also got amazed one more time with ARM CPUs efficiency, thanks to both Opi5 and the RPi’s
Third Party Servers
It was the year to go beyond Google Compute Engine and the (as per my experience) arbitrary Oracle Free Tier.
- I tried Hetzner Cloud
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 π
- Get an OS for the RPi with RPi-Imager
- I suggest BullsEye/Debian11
- I got some docker image issue with some IoT Project
- Was unable to install the Python sensor dependencies with Bookworm (strange, I know)
lsfblk -f #check whats the SD Card to install the OS
sudo umount /dev/sda1
#sudo lsof +f -- /dev/sda1 #whats using the partition?
- Use the SelfHosting Script - https://jalcocert.github.io/Linux/docs/linux__cloud/selfhosting/
#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
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
- Once plugged in, you get a wifi SSID to connect to and manage the router:
- Networking with the Pi was improved
I learnt a few things about Servers with the X300
- Better Benchmarks
- Easier SelfHosting
Not more, but better SelfHosting π
D&A
A huge consolidation of knowledge in this area.
The Big Picture
Before going to Big Data, dont forget the Big Picture
- Diagrams saved me hours of explaining hard concepts.
- They can be done with: DrawIO, MermaidJS, Python Diagrams, ExcaliDraw, …
- They help me explain from
brainstorm sessions output
toMQTT & RabbitMQ
workflows!!
- Diagrams saved me hours of explaining hard concepts.
Share knowledge with a Presentation as a Code: SliDev or Marp, RemarkJS
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!
- Environments are not a secret anymore
- Neither it is having a cool readme
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
- Always use GIT…
- With Github, Gitlab, or whatever you want. But backup your code.
- You can also do remote/docker dev
Cool AI Stuff
- I touched the Surface of Flask
- But went quite deep into Streamlit with few Projects
- Multi-Purpose Assistant
- Multi-Chat
- Learnt more about Scrapping and combined it with AI
- Went from the Ollama API to try several 3rd party LLMs
- OpenAI
- Anthropic
- Groq: LLama3 / 3.1 / 3.2 models are really good!
- Made another test to the latest T2I (text 2 image) models
The final user always has the last word on rating what you’ve built
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…
- https://github.com/k4yt3x/video2x
- You could also do it by applying UpScayl to each photogram of a video…
Closing Thoughts for 2024
Next Year
Use LiteLLM to unify the LLMs API calls across providers..and use screenshot2code to make cooler website designs
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:
- Debian-based with extensive networking and systems tools pre-installed.
- Supports multiple languages; offers GNOME and MATE desktop environments.
- 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…? π
- ClaudeDev / Cline - https://www.youtube.com/watch?v=vU0LY8-P52A
- ContnueDev - https://www.youtube.com/watch?v=qXNecVIxRi0&t=13s
AI Asisted Web Search… π
Perplexity? Or Perplexica?
- https://github.com/rashadphz/farfalle - π AI search engine - self-host with local or cloud LLMs
- https://github.com/InternLM/MindSearch - π An LLM-based Multi-agent Framework of Web Search Engine (like Perplexity.ai Pro and SearchGPT)
- Tavily
- https://github.com/developersdigest/llm-answer-engine - Build a Perplexity-Inspired Answer Engine Using Next.js, Groq, Llama-3, Langchain, OpenAI, Upstash, Brave & Serper
What about MultiAgents? π
CrewAI + Groq Tutorial: Crash Course for Beginners
https://github.com/ag2ai/ag2 - AG2 (formerly AutoGen) is a programming framework for agentic AI. Join the community at:
CrewAI Agent Orchestration - https://www.youtube.com/watch?v=3Uxdggt88pY
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:
- Tabby
- LLama Coder in a vscode extension
- Others: Bito, Codeium, or Adrenaline
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.
Which LLMs are Trending?
You can always check the LLM’s Leaderboards
https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard
With ELO Rating: https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard
Examples: use them also with GPT4All or TextGenWebUI
- https://huggingface.co/TheBloke/Llama-2-13B-Chat-fp16/tree/main
- https://huggingface.co/docs/transformers/main/model_doc/mpt
- And this one you can train it and use commercially: https://www.mosaicml.com/training
You can also check this repository: https://github.com/sindresorhus/awesome-chatgpt and https://github.com/f/awesome-chatgpt-prompts
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.
- https://accounts.hetzner.com/_ray/pow (I tried the CX22 model x2 vCPU)
- https://cloud.digitalocean.com
Clouds ( & GPU Clouds)
- RunPod, Linode, DigitalOcean, Paper Space, Lambda Cloud, Hetzner…
- vast.ai,
- Google Colab TPU…