Skip to content

Instantly share code, notes, and snippets.

View cubuspl42's full-sized avatar

Jakub Trzebiatowski cubuspl42

  • Gdańsk, Poland
  • 11:38 (UTC +02:00)
View GitHub Profile
@cubuspl42
cubuspl42 / iOS-Keychain-Info.txt
Created June 20, 2025 14:32
Information about iOS Keychain from Apple Support
First, a timeline:
All versions of iOS prior to 10.3 beta preserve keychain items when an app is deleted.
IMPORTANT This was most definitely an implementation detail of the original iOS keychain. Our keychain documentation has never specified what would happen in this case.
10.3 beta included a change that deleted such items.
That caused compatibility problems (apps were relying on the existing behaviour, even though it wasn’t documented), so it was rolled back before 10.3 GM.
@cubuspl42
cubuspl42 / BottomAlignedScrollView.tsx
Created April 4, 2024 08:32
BottomAlignedScrollView.tsx
import React, {useState} from 'react';
import {LayoutChangeEvent, ScrollView, StyleSheet} from 'react-native';
type BottomAlignedScrollViewProps = {
readonly children: React.ReactNode;
}
const BottomAlignedScrollView = ({children}: BottomAlignedScrollViewProps) => {
const [viewHeight, setViewHeight] = useState(0);
const [contentHeight, setContentHeight] = useState(0);

Proposal

I would like to work on this TypeScript migration issue!

TypeScript Migration Proposal Checklist

  • I have resolved at least two Expensify issues
  • I have considerable experience with the TypeScript programming language:
    • I have professional experience working with TypeScript
  • I have contributed to open-source projects using TypeScript
#!/usr/bin/env bash
set -ex
[ -n "$1" ] || exit 1
cd /var/www
SHOP_NAME=$1
DB_CREDENTIALS=$(
php <<PHP
<?php
require '$SHOP_NAME/config/settings.inc.php';
print(_DB_USER_ . ' ' . _DB_PASSWD_ . ' ' . _DB_NAME_ . PHP_EOL);
function ReportActionItemFragment(props) {
+ /**
+ * Checks text element for presence of emoji as first character
+ * and insert Zero-Width character to avoid selection issue
+ * mentioned here https://github.com/Expensify/App/issues/29021
+ *
+ * @param {String} text
+ * @param {Boolean} displayAsGroup
+ * @returns {ReactNode | null} Text component with zero width character
+ */
function ReportActionItemFragment(props) {
<<<<<<< HEAD
const fragment = props.fragment;
switch (fragment.type) {
=======
/**
* Checks text element for presence of emoji as first character
* and insert Zero-Width character to avoid selection issue
* mentioned here https://github.com/Expensify/App/issues/29021
#!/usr/bin/env python3
import argparse
import subprocess
def git_upstream_diff(path, branch, fetch):
if fetch:
# Fetch the latest changes from the upstream
subprocess.run(['git', 'fetch', branch.split('/')[0]], check=True)
#!/bin/bash
# Check if ffmpeg is installed
if ! command -v ffmpeg &> /dev/null
then
echo "ffmpeg could not be found. Please install it and try again."
exit 1
fi
# Check if a file path was provided
@cubuspl42
cubuspl42 / ffmpeg-compress.sh
Created September 1, 2023 08:11
A script for compressing videos
#!/bin/bash
# Check if the input file is provided
if [ -z "$1" ]; then
echo "Usage: $0 <input_file>"
exit 1
fi
# Get input file
input_file="$1"
@cubuspl42
cubuspl42 / github-repo-config.md
Last active April 24, 2023 09:53
Sensible GitHub repository configuration

Highly opinionated. This works for my use cases. Some parts assume that GitHub Actions are used.

General

Pull Requests

image

  • Ensure "Allow merge commits" is unchecked
  • Ensure "Allow squash commits" is unchecked