Skip to content

Instantly share code, notes, and snippets.

@mg3994
mg3994 / google-apps-script.md
Created May 14, 2026 04:21 — forked from labnol/google-apps-script.md
How to Learn Google Apps Script

Learning Google Apps Script

Find the best resources for learning Google Apps Script, the glue that connects all Google Workspace services including Gmail, Google Drive, Calendar, Google Sheets, Forms, Maps, and more.

A good place to learn more about Google Apps Script is the official documentation available at developers.google.com. Here are other Apps Script resources that will help you get up to speed.

  1. Google Apps Script Code Samples by Amit Agarwal
  2. Google Apps Script Development - Create Google Apps Script projects locally inside VS Code - video tutorial
  3. Awesome Google Scripts by Amit Agarwal
  4. Google Developer Experts - Follow Apps Scr
@mg3994
mg3994 / ExternalStorageScreen.kt
Created February 3, 2026 15:43 — forked from decodeandroid/ExternalStorageScreen.kt
Android Storage: Comprehensive Guide with Simplified Explanation
import android.Manifest
import android.content.Context
import android.os.Build
import android.widget.Toast
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
@mg3994
mg3994 / main.dart
Created November 6, 2024 19:52 — forked from slightfoot/main.dart
Fade animation for newly added text chunks - solved by Simon Lightfoot on #HumpdayQandA - 6th November 2024 :: https://www.youtube.com/watch?v=txmWGhgPKuU
/// Reference (https://github.com/FilledStacks/markdown_fade_bounty/pull/6)
/// This widget, `FadeRevealMarkdownDifference`, is designed to display a series of markdown versions,
/// highlighting the differences between them. The issue being encountered is that the `previousText` is
/// currently showing a pulse animation, which is not required or expected behavior. The pulse effect
/// should only apply to the newly added portion of the text (`newText`). The goal is to have `previousText`
/// remain static while only the new changes (`newText`) fade in or animate.
///
/// The expected behavior is for `previousText` to remain static and unanimated, and only `newText`
/// should be subject to the fade-in effect.
///
@mg3994
mg3994 / main.dart
Created October 23, 2024 16:04
Fade animation for newly added Markdown text chunks
/// Reference (https://github.com/FilledStacks/markdown_fade_bounty/pull/6)
/// This widget, `FadeRevealMarkdownDifference`, is designed to display a series of markdown versions,
/// highlighting the differences between them. The issue being encountered is that the `previousText` is
/// currently showing a pulse animation, which is not required or expected behavior. The pulse effect
/// should only apply to the newly added portion of the text (`newText`). The goal is to have `previousText`
/// remain static while only the new changes (`newText`) fade in or animate.
///
/// The expected behavior is for `previousText` to remain static and unanimated, and only `newText`
/// should be subject to the fade-in effect.
///
@mg3994
mg3994 / humpday_2024-06-12_2.dart
Created June 12, 2024 18:45 — forked from slightfoot/humpday_2024-06-12_2.dart
Custom Multi Child Layouts - by Simon Lightfoot - Humpday Q&A :: 12th June 2024 #Flutter #Dart - https://www.youtube.com/watch?v=QBmqKvw_0s8
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
void main() => runApp(const ExampleApp());
class ExampleApp extends StatelessWidget {
const ExampleApp({super.key});
@override
Widget build(BuildContext context) {
@mg3994
mg3994 / humpday_2024-06-12_1.dart
Created June 12, 2024 18:34 — forked from slightfoot/humpday_2024-06-12_1.dart
Force Intrinsics - by Simon Lightfoot - Humpday Q&A :: 12th June 2024 #Flutter #Dart - https://www.youtube.com/watch?v=QBmqKvw_0s8
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
void main() => runApp(const ExampleApp());
class ExampleApp extends StatelessWidget {
const ExampleApp({super.key});
@override
Widget build(BuildContext context) {