Miscellaneous Tech

  • Bitcoin resources  Youtube resource      Learning Bitcoin from CLI
  • APK (Android Package Kit) - file format used by Android to install apps
    • has all components of app and packaged in single apk → code, resources, assets
    • Like .exe are executables on Windows → APKs are for Android
    • Mod APK (Modified APK) - altered version of original Android app
    • Sideloading - installing apps on device from sources other than official app store
      • Used for apps not available on Play Store or for beta versions

  • XAPK (extended Android package kit) APK file + OBB files + graphics + media
    • compressed for easy distribution of large apps/heavy games for android
    • not officially supported by Android → special installers are needed
    • Manually, users can extract XAPK and place OBB files in respective folder

  • OBB (Opaque Binary Blob) files - extra data files used by some Android apps to store large assets like graphics, media files, and game data that don’t fit in APK
    • APK works as the installer and OBB provides bulk of the content

  • After we Delete File permanently  system do not immediately erase data  only index pointer (the file’s address) is removed from file system  data is still intact
    • In Hard Disk Drives (HDD), data blocks remain intact until new files overwrite them  the sooner you try to recover, the better your chances are
      • Sometimes, we may get corrupted images (half visible, half damaged)
    • In Solid State Drives (SSD), if TRIM is enabled → OS quickly wipes free blocks
      • very hard to recover data
    • In Phone Storage (Flash Memory) - recovery chances are very low because memory cells are reused quickly

  • Dual-boot - install multiple OS on separate partition/disk with bootloader at startup to select & load only that OS’s kernel and system files from its partition while other OS stays inactive → after installing Linux, Windows Boot Manager replaced with GRUB
  • X’s (twitter) API return both id and id_str → some environments can handle 64-bit integers directly, but in JavaScript integers larger than 53 bits risks precision errors
    • unacceptable risk when identifiers must remain exact
    • id: 64-bit unsigned integer              id_str: same identifier represented as string

  • Compiler vs Interpreter
    • Compiler - translates entire source code into machine executable code at once before execution → Faster execution + more efficient
      • checks for syntax errors at end during compilation → Example: C, C++
    • Interpreter - translate code line by line and execute instruction by instruction
      • Easy to detect errors but slower execution → Example: Python, JavaScript
  • Authentication vs Authorization
    • Authentication - confirms identity of users by verifying login credentials
      (e.g., username, password, biometric)
       → happens before any authorization check
    • Authorization - checks if user has permission to perform certain actions/access specific data based on roles, permissions, or access levels
  • Integrated Development Environment (IDE) - place to write, run and debug code
    • Example: Visual Studio, PyCharm, Jupyter Notebook
  • storage/emulated/0/ - root directory of user-accessible internal storage on Android 
    • represents user’s primary storage ("Internal Storage”)

  • To run batch file in PowerShell → add ./ before script name for security reasons
    • This 100% ensures that running batch file of current directory

  • coder-decoder (codec) - compress and decompress digital data (audio + video files)
    • Audio Codecs - MP3, AAC (used by iTunes and YouTube)
    • Video Codecs - H.264/AVC (widely used for streaming, Blu-ray, and web video), HEVC/H.265 (better successor to H.264), AV1 (royalty-free codec for streaming)
      • AV1 → built by alliance of Google, Microsoft, Netflix, Amazon, etc. bcz H.264 charges royalty → give efficient bitrates compared to other codecs (means better video quality at low internet speed)
        • Issues - consume more CPU/GPU + very slow at encoding + compatibility issues with old devices since AV1 is new

  • Date Based Versioning - Stripe does not use traditional ways to name API versions like v1/payment or v3/users → uses "Stripe Version : 2015-07-18" passed via header
    • BENEFIT - Users on older version have no tension to switch every time new version arrives (Maintains trust) + All versions available till date can be used
    • How is it possible to maintain thousands of version ?
      • Request Compatibility Layer → normalise any old version of API calls to latest version → then send to core business logic (written wrt latest version)
      • Gate System → Feature flags based on version date and feature
        • Let's say "amount" is deprecated in new version but old one still use it
        • new version API → "amount" will be off but for old ones it will be on
        • No messy if-else statements + All gates are at one place + High code readability + Easy to manage
      • Transformation modules → used when sends response back to user
        • small, isolated modules to downgrade latest version to user's version
        • latest version → downgrade to 2025 → downgrade to 2024 → so on...
        • In 2027, only make for 2025 and 2026 (bcz others already exist)

Comments

Popular posts from this blog

Corporate Tips

R (programming language)

Latex + Matlab + Jupyter Notebook + Google Colab + Markdown