Skip to content

Instantly share code, notes, and snippets.

Hey there! I am using GitHub.

Matteo Mazzarolo mmazzarolo

Hey there! I am using GitHub.
Block or report user

Report or block mmazzarolo

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
mmazzarolo / watch.js
Created Oct 19, 2019
Develop a browser extension with live-reloading using Create React App without ejecting
View watch.js
#!/usr/bin/env node
// A script for developing a browser extension with live-reloading
// using Create React App (no need to eject).
// Run it instead of the "start" script of your app for a nice
// development environment.
// P.S.: Install webpack-extension-reloader before running it.
// Force a "development" environment in watch mode
process.env.BABEL_ENV = "development";

Charles command-line options

Charles supports a few command line options out of the box, documented here.
Unfortunately they seem to operate only as parameters for new Charles sessions, so you won't be able to run commands on a running instance of Charles.

Start a specific Charles session

A Charles session contains all of your recorded information. It is represented by the Session window; by default a new session is automatically created when you start Charles.
Sessions can be saved from File → Save Session (+S).
Once saved, if you want you can start Charles from the saved session by running:

mmazzarolo / useKeyboardPress.ts
Created Dec 30, 2018
A React hook for handling keypresses
View useKeyboardPress.ts
import { useState, useEffect, useRef } from "react";
interface Parameters {
key: string;
ctrlKey?: boolean;
shiftKey?: boolean;
metaKey?: boolean;
onKeyDown?: (e: KeyboardEvent) => void;
onKeyUp?: (e: KeyboardEvent) => void;
if pgrep scrcpy; then
osascript -e 'tell application "System Events" to tell process "scrcpy"' \
-e 'set frontmost to true' \
-e 'if windows is not {} then perform action "AXRaise" of item 1 of windows' \
-e 'end tell'
mmazzarolo /
Created Dec 13, 2018
Fresco/Picasso comparison on images with a dimension > 2048px
package com.example.matteomazzarolo.imagetest;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
mmazzarolo / big-images-in-android-rn.js
Created Dec 1, 2018
Image decoding limit workaround for RN (Android)
View big-images-in-android-rn.js
export default class CroppedImage extends Component {
state = {
croppedImageSources: []
async componentDidMount() {
const crops = 4;
const croppedImageHeight = imHeight / crops;
const croppedImageSources = [];
for (let i = 0; i <= crops; i++) {
mmazzarolo / MyTextInput.tsx
Last active Oct 8, 2018
A simple wrapper on the React Native TextInput that fixes its ugly default Android style
View MyTextInput.tsx
import * as React from "react";
import {
} from "react-native";
interface State {
mmazzarolo / MyTextInput.js
Last active Oct 13, 2019
A simple wrapper on the React Native TextInput that fixes its ugly default Android style
View MyTextInput.js
import * as React from "react";
import { StyleSheet, TextInput } from "react-native";
const BLUE = "#428AF8";
const LIGHT_GRAY = "#D3D3D3";
class MyTextInput extends React.Component {
state = {
isFocused: false
mmazzarolo / App.tsx
Created Sep 28, 2018
View App.tsx
import * as React from "react";
import { StyleSheet, Text, View } from "react-native";
class LoginScreen extends React.Component<{}> {
render() {
return (
<View style={styles.container}>
<Text>Welcome to the login screen!</Text>
mmazzarolo /
Created Jun 28, 2018
React-Native development script
# Starts the metro bundler and runs react-native in a single terminal (à la Expo).
# CTRL + C kills the metro bundler.
# Arguments:
# -p Development platform [ios (default), android].
# -s Starts scrcpy too. Android only. (
You can’t perform that action at this time.