Skip to content

Instantly share code, notes, and snippets.

View nicolas17's full-sized avatar

Nicolás Alvarez nicolas17

  • Buenos Aires, Argentina
View GitHub Profile
@nicolas17
nicolas17 / __init__.py
Last active May 27, 2024 20:32
HDQ decoder for sigrok
# Copyright (c) 2024 JJTech <jjtech@jjtech.dev>
#
# SPDX-License-Identifier: GPL-2.0-or-later
"""
HDQ (High-speed Data Queue) is a simple protocol used for Texas Instruments
'Gas Gauge' battery fuel gauges. It is used to read and write data to the fuel
gauge's memory.
Similarly to the '1-wire' protocol, it is a single-wire protocol that uses a
single data line to communicate with the fuel gauge.
# SPDX-FileCopyrightText: 2023 Nicolás Alvarez <nicolas.alvarez@gmail.com>
#
# SPDX-License-Identifier: MIT
import requests
import time
import sys
import datetime
sess = requests.session()
[
{
"type": "ota",
"prerequisiteBuild": "20G5070a",
"deviceMap": [
"iPad7,4"
],
"url": "https://updates.cdn-apple.com/2023SummerSeed/patches/042-36984/458DD0C0-49B8-40F7-9D0D-D9A82C76DFDA/com_apple_MobileAsset_SoftwareUpdate/69f1a7b082026702574e20f83ea4e2115ecd6ae7.zip",
"active": true,
"hashes": {
c: command
cc: commandContext
v: version
P: payload
N: bulkedPayload
fP: fanoutPayload
aP: additionalPayload
Pm: payloadMetadata
i: messageId
U: messageUUID
@nicolas17
nicolas17 / yellow.asm
Last active November 11, 2024 10:29
hello-world iOS app
.global _main
.extern _putchar
.align 4
_main:
// prolog; save fp,lr,x19
stp x29, x30, [sp, #-0x20]!
str x19, [sp, #0x10]
#!/usr/bin/python3
# SPDX-FileCopyrightText: 2022 Nicolás Alvarez <nicolas.alvarez@gmail.com>
#
# SPDX-License-Identifier: MIT
import os
import sys
import json
import re

3 people have 6x16TB, 96TB each, total raw storage is 288TB across 18 disks

Configuration Usable storage Resilience
Each person does RAID-6
The same data is stored by all people
4x16TB = 64TB Any 7 disks can be lost (worst case 2 people lose 3 disks each and lose the RAID, third person loses 2 disks and can still recover).
If we're lucky, max 14 disks can be lost (two people lose all 6 disks, third person loses 2 disks).
Any person has all data locally without needing other nodes.
Each person does RAID-5
The same data is stored by all people
5x16TB = 80TB Any 5 disks can be lost (worst case 2 people lose 2 disks each and lose the RAID, third person loses 1 disk and can still recover).
If we're lucky, max 13 disks can be lost (two people lose all 6 disks, third person loses 1 disk).
Any person has all data locally without needing other nodes.
Spread files across all disks/peopleUse 6-of-18 parity 6x16TB = 96TB Any 12 disks can be lost, but n
@nicolas17
nicolas17 / gist:07df9344adef593f289ee2123c8990d5
Created August 3, 2022 19:06
Apple's DMCA against tweets linking to ipsw.dev
Copyright owner:
> Apple Inc.
Name:
> Louis Ferrari
Company:
> Kilpatrick Townsend Stockton LLP
Job title:
> Case Manager
Email:
> appleip@kilpatricktownsend.com
@nicolas17
nicolas17 / README.md
Last active April 15, 2021 22:04
Verify your git-bisect run script

When using git bisect run ./test.sh it's not uncommon to get the condition in test.sh wrong. This can cause a lot of wasted time as you only notice the mistake hours later when bisect finishes and points at the wrong commit.

This Python script runs the test script against the commits you already marked as good or bad in the bisect session (either with 'git bisect good/bad' or as part of the 'git bisect start' command) and ensures your test script returns the correct status code.