Skip to main content

Ollama: Usage Notes & Quick Reference

· 10 min read
Anand Raja
Senior Software Engineer

Ollama is an open-source tool that is designed to simplify the process of running large language models locally, meaning on your own hardware. The idea here is very simple. As you know, if you want to run large language models or use a model, most likely you will have to rely on paid services like OpenAI, ChatGPT, and others.

With Ollama, you don't have to pay for anything—it's free, and that's the beauty. Ollama sits at the center and allows developers to pick different large language models depending on the situation and their needs. At its core, Ollama uses a command-line interface (CLI) to manage backend tasks like installation and execution of different models, all of which run locally. Ollama abstracts away the technical complexities involved in setting up these models, making advanced language processing accessible to a broader audience, including developers, researchers, and hobbyists. In a nutshell, Ollama provides a straightforward way to download, run, and interact with various models or LLMs without relying on cloud-based services or dealing with complex setup procedures.

Open LLMs: Concepts, Parameters, Ecosystem, and Usage

· 17 min read
Anand Raja
Senior Software Engineer

What is an Open LLM?

An Open LLM (Large Language Model) is a language model whose architecture, weights, and often training code are openly available for anyone to use, modify, and run. Unlike proprietary LLMs (like OpenAI’s GPT-4 or Google Gemini), open LLMs can be run locally, fine-tuned, and integrated into custom workflows without vendor lock-in or sending your data to third-party servers.

Cloning a Private GitHub Repository

· 3 min read
Anand Raja
Senior Software Engineer

The ideal way to clone a GitHub repository to your local folder is to use a PAT (Personal Access Token).
A PAT provides secure, token-based authentication instead of your GitHub password.
It is especially required for accessing private repositories or when two-factor authentication is enabled.

Horizontal vs Vertical Scaling

· 2 min read
Anand Raja
Senior Software Engineer

Horizontal scaling and vertical scaling are two strategies for increasing the capacity and performance of your application or infrastructure:


Horizontal Scaling (Scaling Out)

  • Definition: Adding more machines or instances to your system.
  • How: You deploy additional servers (e.g., more VMs, containers, or physical machines) to distribute the load.
  • Benefits:
    • Increases fault tolerance and availability.
    • Easier to scale dynamically (especially in cloud environments).
    • No single point of failure.
  • Example: Adding more web servers behind a load balancer.

Deploying an AngularJS App as a WAR File

· 3 min read
Anand Raja
Senior Software Engineer

Here’s a detailed step-by-step guide to develop an AngularJS application, package it as a .war file, and deploy it with a Java backend.

1. Project Structure

Organize your project like this:

your-project/
├── src/
│ └── main/
│ ├── java/ # Java backend code (e.g., Spring controllers)
│ └── webapp/ # Web resources (AngularJS app, HTML, CSS, JS)
│ ├── index.html
│ └── scripts/
│ └── angular/
│ └── spotfireSpa/
│ └── controller.js
├── pom.xml # Maven configuration

Comprehensive DevOps and Modern Software Delivery Toolchain Overview

· 15 min read
Anand Raja
Senior Software Engineer

These tools cover infrastructure automation (Terraform), CI/CD (Jenkins, Spinnaker), workflow orchestration (Airflow), operations (Rundeck), code quality and security (SonarQube, Veracode), feature management (Split.io), service discovery (Eureka), API management (Kong, Zuul), web serving and proxying (Nginx, Reverse Proxy, Apache HTTP Server), content delivery and security (Akamai, Cloudflare), artifact management (JFrog), analytics (Pendo, Snowplow), Java builds (Gradle, Maven), Java app hosting (WildFly), and Ruby app servers (Puma, Unicorn). Each plays a key role in modern DevOps, analytics, and software delivery pipelines.

Bastion and Dynamic Port

· 12 min read
Anand Raja
Senior Software Engineer

Bastion Host

A bastion host is a special-purpose server designed to act as a gateway between a public network (e.g., the internet) and a private network. It provides secure access to resources in the private network by acting as an intermediary. Bastion hosts are commonly used in cloud environments to securely access servers that are not directly exposed to the internet.

The reason for the name "Bastion host" comes from the term "bastion," which refers to a projecting part of a fortification built at an angle to the line of a wall, so as to allow defensive fire in several directions. Similarly, a Bastion host acts as a fortified gateway, protecting the internal network by acting as the only point of entry for administrative access (such as SSH or RDP) and minimizing the attack surface exposed to the public.

USSD Codes

· 3 min read
Anand Raja
Senior Software Engineer

Here are some USSD codes for various purposes, including checking device information, managing call forwarding, and other network-related tasks. These codes are widely used on Android devices and may vary depending on your carrier or device manufacturer.

USSD (Unstructured Supplementary Service Data) is a communication protocol used by mobile devices to interact with a service provider's systems. It allows users to send short codes (starting with * or #) to access various services, such as checking account balances, activating services, or troubleshooting network issues.

VPN

· 5 min read
Anand Raja
Senior Software Engineer

A VPN (Virtual Private Network) works by creating a secure, encrypted connection (often called a "tunnel") between your device and a VPN server. Here’s how it works step by step:

Backstage IO

· 3 min read
Anand Raja
Senior Software Engineer

Backstage.io is an open-source developer portal platform created by Spotify. It is designed to help organizations manage their software infrastructure, tools, and services in a centralized and organized way. Backstage provides a unified interface for developers to access documentation, APIs, CI/CD pipelines, monitoring tools, and other resources, improving productivity and collaboration.