Open source development
Early Fall in Canada: A Journey Through Code and Knowledge ?
Introduction
Hello, everyone! I'm Nonthachai Plodthong, a software developer and a senior student currently completing my studies. As we transition into the crisp, colorful season of early fall here in Canada, I'm excited to start a new series of blog posts where I share the knowledge and experiences I've gathered throughout my journey in tech and All this post is related to the Course that I take on Seneca calls Open Source Development Course.
The open source project is interesting on itself that we can join the other ppl project that already init or released we can improve it or make it better by go through the problem on the github repo and pull request whether our suggestion will be accepted or not.
Over the next four months, leading up to the end of this year, I'll be diving deep into various topics for the open source project that I could find to make contribute that span across GitHub.
Github Trending Repo
Cinnamon
/
kotaemon
An open-source RAG-based tool for chatting with your documents.
kotaemon
An open-source clean & customizable RAG UI for chatting with your documents. Built with both end users and developers in mind.
Live Demo | Source Code
User Guide | Developer Guide | Feedback
Introduction
This project serves as a functional RAG UI for both end users who want to do QA on their documents and developers who want to build their own RAG pipeline.
- For end users
- A clean & minimalistic UI for RAG-based QA.
- Supports LLM API providers (OpenAI, AzureOpenAI, Cohere, etc) and local LLMs (via ollama and llama-cpp-python).
- Easy installation scripts.
- For developers:
- A framework for building your own RAG-based document QA pipeline.
- Customize and see your RAG pipeline in action with the provided UI (built with Gradio).
+----------------------------------------------------------------------------+ | End users: Those who use apps built with `kotaemon`. | | (You use an app like the one in the demo above) | | +----------------------------------------------------------------+
This RAG and chat with own document very good and visualizing for see how embedding and vectorizing in our own document to LLM model and how embedding model pickup the similarity between input and unstructure data that convert into decimal number.
What topic I will be interesting?
1. AI Development
AI has revolutionized the way we interact with technology and has opened up new frontiers for developers and researchers. In this series, I'll explore:
- Large Language Models (LLMs): Discover the inner workings of LLMs, their capabilities, and how they can be used to solve real-world problems, including their applications in understanding speech in one language and responding in another.
- Sentiment Analysis: Learn how to build systems that understand the emotional tone behind a piece of text, from simple rule-based methods to advanced deep-learning techniques.
- LangChain Library (Python): LangChain is a powerful framework designed to help developers build applications that leverage Large Language Models (LLMs). Whether you're creating chatbots, question-answering systems, or tools for generating and manipulating text, LangChain simplifies the integration process by providing modular components and utilities. And I will focusing more on Advance RAG and Streaming.
2. Web Development
Web development is more than just building websites; it's about creating dynamic, secure, and scalable applications. I'll share insights on:
- Django Rest Framework (DRF): Tips and tricks to build robust APIs with Django and DRF, including handling serialization, viewsets, and permissions.
- Next.js Framework: A look into the popular React-based framework for building fast and scalable front-end applications. From static site generation (SSG) to server-side rendering (SSR), we'll cover it all.
- ShadCN Library: Explore this powerful library for creating elegant and accessible UI components, and learn how to integrate it with your React projects.
- Authentication: Secure your applications by implementing modern authentication methods, including JWT, O2Auth, and SSO.
- Security Ops in Development: Understand the importance of DevSecOps and how to integrate security practices seamlessly into your development pipeline.
3. Geographical Visualization
Bringing data to life visually is an art form that combines coding with creativity. I'll walk you through:
- OpenLayers Library: A powerful JavaScript library for mapping and geographical visualization. Learn how to build interactive maps that display real-time data, satellite imagery, and more.
- Folium: A Python library for interactive maps, perfect for visualizing geospatial data in Jupyter Notebooks or web applications.
4. Later in the next posts
I'm looking forward to sharing what I've learned and hope my knowledges will help all programmer across the globe.
Non
- GitHub
The above is the detailed content of Open source development. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











JavaScript is the cornerstone of modern web development, and its main functions include event-driven programming, dynamic content generation and asynchronous programming. 1) Event-driven programming allows web pages to change dynamically according to user operations. 2) Dynamic content generation allows page content to be adjusted according to conditions. 3) Asynchronous programming ensures that the user interface is not blocked. JavaScript is widely used in web interaction, single-page application and server-side development, greatly improving the flexibility of user experience and cross-platform development.

The latest trends in JavaScript include the rise of TypeScript, the popularity of modern frameworks and libraries, and the application of WebAssembly. Future prospects cover more powerful type systems, the development of server-side JavaScript, the expansion of artificial intelligence and machine learning, and the potential of IoT and edge computing.

Different JavaScript engines have different effects when parsing and executing JavaScript code, because the implementation principles and optimization strategies of each engine differ. 1. Lexical analysis: convert source code into lexical unit. 2. Grammar analysis: Generate an abstract syntax tree. 3. Optimization and compilation: Generate machine code through the JIT compiler. 4. Execute: Run the machine code. V8 engine optimizes through instant compilation and hidden class, SpiderMonkey uses a type inference system, resulting in different performance performance on the same code.

JavaScript is the core language of modern web development and is widely used for its diversity and flexibility. 1) Front-end development: build dynamic web pages and single-page applications through DOM operations and modern frameworks (such as React, Vue.js, Angular). 2) Server-side development: Node.js uses a non-blocking I/O model to handle high concurrency and real-time applications. 3) Mobile and desktop application development: cross-platform development is realized through ReactNative and Electron to improve development efficiency.

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

This article demonstrates frontend integration with a backend secured by Permit, building a functional EdTech SaaS application using Next.js. The frontend fetches user permissions to control UI visibility and ensures API requests adhere to role-base

The shift from C/C to JavaScript requires adapting to dynamic typing, garbage collection and asynchronous programming. 1) C/C is a statically typed language that requires manual memory management, while JavaScript is dynamically typed and garbage collection is automatically processed. 2) C/C needs to be compiled into machine code, while JavaScript is an interpreted language. 3) JavaScript introduces concepts such as closures, prototype chains and Promise, which enhances flexibility and asynchronous programming capabilities.

I built a functional multi-tenant SaaS application (an EdTech app) with your everyday tech tool and you can do the same. First, what’s a multi-tenant SaaS application? Multi-tenant SaaS applications let you serve multiple customers from a sing
