Neno - Pocket Music Player

I am a BIGGGGGG music fan and I love finding and listening to good musics. I started this thing as a WordPress instance on a shared instance that I was already paying to host my emails. That was when Medium was still in its gender neutral parent’s sack. Yes, yes, I could have used blogger, as I always had. But you see, I don’t like doing like everyone else, I’m also cheap, and I don’t like your judging. Stop interrupting me. I was mainly writing reading notes, and a few posts on stuff I was learning about. I mostly wrote it for myself. But a new thing was getting popular. It was called Jekyll, and static generation from markdown was becoming all the craze. I told myself: wait a minute: I’m cool, I don’t know anything about ruby nor do I want to learn about it, but why don’t I have that too? So I did my first migration.

Image late_night_reverse_engineering

In December everyone is doing 'advent of code', but I thought I will make 'advent of things'. Make something every week, and I thought I will learn a lot by making everyday things that I am taking for granted, my plan was to make a calculator, a wrist watch and a remote controlled car (433mhz). To think deeply about things that have the same design for decades: why are they the way they are? I only managed to make a calculator. While making it I thought I would teach my kid some basic electronics, but in the end, I hope I showed her how to be patient. Nothing worked the way I thought it would, I broke like 10 things, burned my hands like 20 times and every proptotype was worse than the previous one. I also thought I would have a good experience and learnings to share, but I only accumulated scars, so I will just present the versions I made and hope that the next time I will manage to build on top of the scars.

  
    import json
    import sqlite3
    import sys
    from base64 import b64decode
    from hashlib import pbkdf2_hmac, sha1
    from hmac import new as hmac_new
    from pathlib import Path
    from argparse import ArgumentParser

    # PyCryptodome imports
    from Crypto.Cipher import AES, DES3
    from Crypto.Util.Padding import unpad

    # pyasn1 for parsing ASN.1 data structures
    from pyasn1.codec.der import decoder as der_decoder

    # This is the “Cryptographic Key Attribute ID” for the master key in nssPrivate.
    # It's a hardcoded ID used by Firefox to identify the main private key.
    CKA_ID = b'\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01'