Getting Started with Visual Studio Code on macOS

Introduction

Visual Studio Code (VS Code) is a powerful, open-source code editor developed by Microsoft. It is highly customizable and supports a wide range of programming languages and frameworks. In this guide, we’ll walk you through the steps to get started with VS Code on macOS.

Step 1: Download and Install VS Code

  1. Download VS Code:
  2. Install VS Code:
    • Once the download is complete, open the .zip file.
    • Drag the Visual Studio Code.app to the Applications folder.

Step 2: Launch VS Code

  1. Open VS Code:
    • Navigate to the Applications folder.
    • Double-click on Visual Studio Code.app to launch it.
  2. Add VS Code to Dock:
    • Right-click on the VS Code icon in the Dock.
    • Select Options > Keep in Dock for easy access.

Step 3: Install Extensions

VS Code’s functionality can be extended with extensions. Here are some essential extensions to get you started:

  1. Open the Extensions View:
    • Click on the Extensions icon in the Activity Bar on the side of the window.
    • Alternatively, you can use the shortcut Cmd+Shift+X.
  2. Install Extensions:
    • Search for the following extensions and click Install:
      • Python: For Python development.
      • C#: For C# development.
      • Prettier – Code formatter: For code formatting.
      • ESLint: For JavaScript and TypeScript linting.
      • GitLens: For enhanced Git capabilities.

Step 4: Customize VS Code

  1. Change Theme:
    • Go to Code > Preferences > Color Theme.
    • Choose a theme that suits your preference.
  2. Customize Settings:
    • Go to Code > Preferences > Settings.
    • Adjust settings such as font size, tab size, and more.

Step 5: Open a Project

  1. Open a Folder:
    • Go to File > Open Folder.
    • Select the folder containing your project files.
  2. Open a File:
    • Use the Explorer view to navigate and open files in your project.

Step 6: Use the Integrated Terminal

  1. Open Terminal:
    • Go to View > Terminal.
    • Alternatively, use the shortcut `Ctrl+“ (backtick).
  2. Run Commands:
    • Use the integrated terminal to run commands, manage version control, and more.

Step 7: Debugging

  1. Set Up Debugging:
    • Go to the Run and Debug view by clicking the play icon in the Activity Bar.
    • Click on create a launch.json file to configure debugging for your project.
  2. Start Debugging:
    • Set breakpoints by clicking in the gutter next to the line numbers.
    • Click the green play button to start debugging.

Conclusion

Congratulations! You’ve successfully set up Visual Studio Code on your macOS machine. With its powerful features and extensive customization options, VS Code is an excellent choice for developers of all levels. Explore the various extensions and settings to tailor the editor to your workflow and start coding!

Building an Open Graph Image Fetcher with Angular

I’m always interested in understanding how SEO works. This time, I wanted to learn how the Open Graph (OG) image is fetched from a source when we paste a URL into tools like Slack or social media platforms like Facebook or Twitter. By default, these platforms bring some image as a thumbnail or preview. I learned that this image is called an OG image.
In this blog, we built a small solution to simulate fetching an OG image. We also explored an alternative way to fetch the image using a different approach. Let’s dive into the details!

Building an Open Graph Image Fetcher with Angular

In this blog post, we’ll walk through building a simple Open Graph Image Fetcher using Angular. This application will allow users to enter a URL, fetch the Open Graph image associated with that URL, and display it.

Step 1: Setting Up the Angular Project

First, create a new Angular project if you haven’t already:

ng new open-graph-image-fetcher
cd open-graph-image-fetcher

Step 2: Install Dependencies

We’ll need the HttpClientModule for making HTTP requests. So add it accordingly

Step 3: Create the Service

Create a service to handle fetching the Open Graph image. We’ll use the opengraph.io API for this purpose. Note that you need to get an API key from opengraph.io and add it to your environment configuration.

open-graph.service.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { environment } from '../../environments/environment';

@Injectable({
  providedIn: 'root'
})
export class OpenGraphService {
  private apiKey = environment.openGraphApiKey; // Use API key from environment

  constructor(private http: HttpClient) {}

  fetchOGImage(url: string): Observable<string> {
    const apiUrl = `https://opengraph.io/api/1.1/site/${encodeURIComponent(url)}?app_id=${this.apiKey}`;
    return this.http.get(apiUrl).pipe(
      map((response: any) => {
        console.log('response', response);
        const ogImage = response.hybridGraph.image;
        return ogImage || '';
      })
    );
  }
}

Step 4: Create the Component

Create a component to handle user input and display the fetched Open Graph image.

app.component.ts

import { Component } from '@angular/core';
import { OpenGraphService } from './open-graph.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  ogImage: string | undefined;
  targetURL = 'https://www.example.com';
  loading = false;

  constructor(private openGraphService: OpenGraphService) {}

  fetchOGImage() {
    this.loading = true;
    this.openGraphService.fetchOGImage(this.targetURL).subscribe(
      (image: string) => {
        this.ogImage = image;
        this.loading = false;
      },
      (error) => {
        console.error('Error fetching Open Graph image', error);
        this.loading = false;
      }
    );
  }
}

app.component.html

<div class="container">
  <h1>Open Graph Image Fetcher</h1>
  <div class="content">
    <input type="text" placeholder="Enter URL" [(ngModel)]="targetURL" (keyup.enter)="fetchOGImage()" class="url-input" />
    <button (click)="fetchOGImage()">Fetch Open Graph Image</button>
    <div *ngIf="loading" class="loader"></div>
    <div *ngIf="ogImage && !loading" class="image-container">
      <img [src]="ogImage" alt="Open Graph Image">
    </div>
  </div>
</div>

app.component.scss

.container {
  text-align: center;
  margin-top: 50px;
}

.content {
  display: inline-block;
  text-align: left;
}

.url-input {
  margin-right: 10px; /* Add space between the textbox and the button */
}

.loader {
  border: 16px solid #f3f3f3; /* Light grey */
  border-top: 16px solid #3498db; /* Blue */
  border-radius: 50%;
  width: 120px;
  height: 120px;
  animation: spin 2s linear infinite;
  margin: 20px auto;
}

.image-container {
  height: 300px; /* Fixed height to prevent jumping */
  display: flex;
  justify-content: center;
  align-items: center;
}

.image-container img {
  max-height: 100%;
  max-width: 100%;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

Alternative Approach: Using Cheerio

Another way to fetch Open Graph data is by using Cheerio, a server-side library that parses HTML and extracts data. However, this approach has limitations, such as proxy issues and the requirement of server-side blocks.

Conclusion

In this blog post, we built a simple Open Graph Image Fetcher using Angular and the opengraph.io API. We also explored an alternative approach using Cheerio on a Node.js server. While the Cheerio approach can be useful, it has limitations such as proxy issues and the requirement of server-side blocks.

Find the source here at GitHub

https://github.com/PandiyanCool/open-graph-image

Feel free to expand on this project by adding more features or improving the UI.

Happy coding!