483 KiB
Amr GTD
- Actions
- Social Media Emergency Rapid Response
- Delete Facebook
- هوجان
- Write هل هزمنا في مصر؟
- Send website to Guebara
- Translate هل هزمنا في مصر؟
- Buy podcast equipment
- Write UoN
- CNCL [#A] Write +ColumbiaFoE
- Translate Strikes, Riots and Laughter
- أرشيف بصراحة for Khaled
- Write Atoms, Bits and Cells
- Recommend printers for Nancy
- Buy gifts for kids
- Connect Ranwa Yehia and Nicholas Ibekwe
- WAIT [#A] Get NS files and street leaflets box
- Document archive convention and workflow
- Buy mason jars and containers
- Update OnlyKey firmware
- Call Zyad Elelaimy
- Pick up chair from Ayah
- Send Khaled sample of BBC historical documentaries
- Ultimate Plan + DNA Kit + InnerAge 2.0 calculation – InsideTracker
- UK visa
- Schengen visa
- Schengen visa for parents
- US visa for parents
- Call with Lorenzo
- Schedule call with Nicholas Ibekwe
- Check Ezz website migration options
- Renew Kiwico subscription for Nout and Bouri
- Take a Red Cross first aid class
- Create Pepco account
- Choose pictures to print
- Write an article on energy subsidies and democratic and undemocratic power systems
- Write آخر الدول الصناعية
- Write The Egypt Foundation concept
- Register as Notary Public in Maryland
- Write project28 concept
- CNCL [#A] Legal case management system
- Find a cardiac calcium score test
- Find a dentist
- People Search
- Add OpenPGP and SSH to OnlyKey
- Secure google account
- تقرير قانون الجريمة الإلكترونية
- EIPR researches
- Change Macy's Wine Cellar
- Update lease information
- Change Gemini password
- Crack old laptop linux user
- Shut down *diaspora
- Export X favorites and lists
[0/2][0%] - Implement controlled vocabulary tags
- Tag archive files using filetags
- Add timestamps to archive files using date2name
- Rename archive files using appendfilename
- Tag and annotate all archive
- Commonplace
- Clean Kindle and sync notes to PC
- Peer reviewed articles
- Web feeds
- Podcast feeds
- Video feeds
- Photos
- Audio
- Music
- Videos
- DNS
[0/2][0%] - Check sol.holdings and sol.industries ownership history
- Gharbeia.net zone
- YubiKey FIPS (4 Series) Technical Manual – Yubico
- GitHub - yaelwrites/Big-Ass-Data-Broker-Opt-Out-List
- SetupGuides/SecurePersonalComputer - Debian Wiki
- GitHub - carrotcypher/masspass: Mass Password Reset Helper
- npub.cash
- Discover OpenAI's assistants
- Platform Socialism
- Spintronics Act One – Upper Story
- Change personal details with Bitstamp
- Change personal details with The Co-operative Bank
- WAIT Cordoba vs DIRECT, LLC
- Germany
[5/12][41%] - Maryland Driver's Manual - Pages
- Parents
- Call Lorenzo
- The black swan
- The Big Kink Survey | GuidedTrack
- Lnd wallet
- Brandon birthday
- A's Kinklist
- Police incident # 2400076556
- Take Nari to Roden Crater
- Smart notes 2.1
- Smart notes 2.1
- How to take smart notes
- Read Claude Shannon's masters thesis
- Lorenzo
- Review GTD
- Set up GTD archive location
- CNCL [#A] Khaled's wedding
- Kids passports
- Spintronics - Build Mechanical Circuits
- NEXT Wyoming Corporate Services Inc.
- NEXT How to Form a Homeowners Association of Your Own in 18 Steps
- NEXT Get an eSIM and instantly activate your Tello service!
- NEXT Mint Mobile | Wireless that's Easy, Online, $15 Bucks a Month
- NEXT Cordoba v. DIRECT, LLC
- NEXT Nancy's Macbook Air encryption key
- Projects
- Homelab
[31/181][17/29][58%][10/19]Proxmox- Move to no-subrsciption repository and update
- Stop Proxmox enterprise subscription notification
- Create Cloud Image Templates
- Update PVE templates
- Download templates
- Configure Proxmox storage
- Setup SMART disk monitoring
- Turn on PCI passthrough
- Setup VLAN
- Add NFS share
- Schedule backups
- Upload a KVM driver disk for Windows
- Setup email notifications
[2/2]General VM and LXC system setup
[21/116]Containers and VMs[16/25]Kubernetes- Create one controller node and other worker nodes
- Assign static IP to the nodes
- Install containerd
[1/1]Disable swap- Enable bridging
- Enable br_netfilter
- Reboot
[3/3]Make Kubernetes run in LXC[4/9]Install Kubernetes- Adding nodes
- Deploying a container within our cluster
- Creating a NodePort Service
[0/5]Docker[3/33]Containers- Rancher
- Pfsense
- Reverse proxy
- Auth proxy
- Pihole
- TrueNAS
- Fediverse
- Add users
- Mastodon
- Install Mastodon
- Install Mastodon on Apache using web domain
- Build Your Own Mastodon Server on Debian (Step by Step Server Build Guide) – Learn Linux TV
- Movetodon: Find your Twitter Friends on Mastodon
- Some Tips on Setting Up a Mastodon Instance Using Docker and Apache – The Adventures of My Pet Hamster
- Install anki-sync-server
- Install anki-connect
- Install Audiobookshelf
- Privoxy
- Ansible
- Reporting
- gharbeia.net
- rimenaguib.org
- CNCL Bergman Brief
- CNCL +Install Wallabag read later service on server
[1/1]Freedombox[0/17]Umbrel- Debian Desktop
- AI
- Leon - Your Open-Source Personal Assistant
- GPT4All
- Prompt generator for AI images and media
- Replit - Replit + Chroma: AI for the next billion software creators
- Build an E-commerce Chatbot With Redis, LangChain, and OpenAI | Redis
- ColossalChat: An Open-Source Solution for Cloning ChatGPT With a Complete RLHF Pipeline | by Yang You | PyTorch | Medium
- How I Got ChatGPT to Write Complete Programs
- GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision
- roadmaps/ml_engineer_roadmap_2021.md at master · codebasics/roadmaps · GitHub
- Train and run Stanford Alpaca on your own machine - Replicate – Replicate
- A simple Python implementation of the ReAct pattern for LLMs | Simon Willison’s TILs
- A Tool For ChatGPT AI Prompt Engineers. – @ReadMultiplex
- Prompt Engineering LLMs with LangChain and W&B | langchain_callback_demo – Weights & Biases
- GitHub - lvwerra/trl: Train transformer language models with reinforcement learning.
- GitHub - databrickslabs/dolly
- GitHub - ggerganov/whisper.cpp: Port of OpenAI's Whisper model in C/C++
- Text2Room: Extracting Textured 3D Meshes from 2D Text-to-Image Models
- GitHub - imaurer/awesome-decentralized-llm: Collection of decentralized and open source AI projects and information.
- GitHub - LAION-AI/Open-Assistant: OpenAssistant is a chat-based assistant that understands tasks, can interact with third-party systems, and retrieve information dynamically to do so.
- GOAT
- ChatPDF - Chat with any PDF!
- GitHub - greshake/llm-security: New ways of breaking app-integrated LLMs
- txtchat/examples/llama at master · neuml/txtchat · GitHub
- Windows 10
- Mac OS
- Mastodon configs
- Nostr
- How to Install Dockerized Electrum Server to Improve Bitcoin Privacy – Wave Layer Blog
- GitHub - Ragtor/bitcoin-electrumx-docker: A simple way to run bitcoin core and electrumx via docker-compose
- How to Set Up Docker in Proxmox using an LXC/VM (2024)
- Installing Servarr Stack with Docker Compose
- Setup ZFS on Proxmox
- khaledfahmy.org
- Using Org Mode in Hugo
- Running docker inside an unprivileged LXC container on Proxmox - du.nkel.dev
- Proxmox VE Helper-Scripts
- 7 watts idle on Intel 12th/13th gen: the foundation for building a low power server/NAS | mattgadient.com
- How to check an hard drive health from the command line using smartctl - Linux Tutorials - Learn Linux Configuration
- GitHub - iyaja/llama-fs: A self-organizing file system with llama 3
- Move data from 4TB drive to 8TB barrel
- Open WebUI
- Set up Cloudflare 1.1.1.1 resolver · Cloudflare 1.1.1.1 docs
- How I manage LVMs on home server
- Accessing Time Machine backup from Windows/Linux laptops - Super User
- Nextcloud AOL
- Mastodon
- Cloudflared tunnel
- أليس في بلاد العجائب الجزء 1
- Using environment variable for volume name in docker compose - Stack Overflow
- How to Self-host Multiple WordPress Sites on the Same Server With Docker
- fishere
- Configure ODMPY download folder name pattern to suit Audiobookshelf
- Dead Man's Snitch — A dead simple Cron Job Monitoring service
- GitHub - akhilrex/podgrab: A self-hosted podcast manager/downloader/archiver tool to download podcast episodes as soon as they become live with an integrated player.
- ArchiveBox | 🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more…
- Tube Archivist
- Homebox
- Khue's Homelab
- Amazing script for CPU Temperature Monitoring on Proxmox | Sluijsjes Tech Lab
- [SOLVED] - Accessing existing ZFS pool from VM | Proxmox Support Forum
- Moving a WordPress site into a Docker Container | Stephen AfamO's Blog
- videos/cloudflare-tunnel-tutorial at main · ChristianLempa/videos · GitHub
- Nostr Apps
- Guide to PCIe Lanes: How many do you need for your workload?
- Introducing Llama 3.1: Our most capable models to date
- The Llama 3 Herd of Models | Research - AI at Meta
- Petals: decentralized inference and finetuning of large language models
- GitHub - exo-explore/exo: Run your own AI cluster at home with everyday devices 📱💻 🖥️⌚
- GitHub - getAlby/hub: Alby Hub - Your own lightning node connected to every app. Run anywhere. Become self-sovereign.
- losgarcias
[6/8] - lilitop
[19/216]- NEXT Install Debian
- Enable Debian contrib and non-free-firmware repositories
- Disable Debian Autosuspend
- Encrypted home
- Move files
- .profile
- .bashrc
- Emacs Emacs
- emacsclient.desktop
- org-protocol.desktop
- Software install
- Save new ecryptfs passphrase in pass
- Signal
- Zotero
- beancount
- beancount-import
- finance-DL
- Picard
- Emacs as daemon
- CQRLOG
- Element
- FreeTubeApp
- Bitcoin Full Node
- Getdeb
- Jdotxt
- Keybase
- Make Deb
- NVIDIA
- Ocamlfuse
- Odoo
- Onionshare
- OnlyKey
- Open Broadcaster
- Open Media Library
- Recoll
- Retroshare
- Rockbox
- Safeeyes
- Signal
- Star Ruler
- R
- TLP
- Tor Browser Launcher
- Tor
- Trezor GPG
- Trezor U2F
- Trezor SSH
- Trezor UDev
- Virtualbox
- Yubi Key
- Backup Digital Ocean
- Backup Let's Encrypt
- Backup lilitop
- Backup gamer
- Backup open
- Backup pen
- Sync Calibre
- University of Nottingham Network
- Harvest emails
- Mount EcryptFS
- OCR-JPG2TXT
- OCR-JPG2TXT
- Emacs Switch Focus
- Test bitcoind
- VirtualBox uninstall extension pack
- ffbookmarks
- YouTube-DL
- Internet radios
- MySQL reset
- Unwatched feeds
- Feeds
- A Soviet Poster A Day
- a-films
- a7lami al-mob3thara
- AUC-workers-Strike
- Augmented Citizen's posterous - Home
- Baghdad Burning
- Baha'i Faith in Egypt
- Bitmessage Wiki
- Blog Ganzeer
- Brian's Study Breaks
- Cairene’s Nilometer
- Cairene’s Nilometer
- CairoNYman
- Cdwr’s Blog
- Dutchblog Israel
- ebn elnil
- ebn elnil
- Egyptian Post
- Egyptian Post
- Einmal ist Keinmal
- Ekraa - اقراء
- Farah's Sowaleef
- Free Alaa!
- Free Fiber to the Home
- Freneza Arabulo (Ar)
- GAME OVER | مدونة الأفق
- Hekayat-Hanouma
- Too Many Minds
- Trust is the Only Currency
- Weekite أجنحة صغيرة
- westbankblog
- World United Bloggers
- آه يا وطن
- أبحاث لفتت نظري
- أراك من بعيد
- أعربد .. ثاملــــــــــة
- أهالي المحلة
- أيام خيال الظل
- إتحاد الشباب التقدمى بالدقهليه
- إحــــْـــــكِ
- إضراب 6 إبريل
- إنسان خردة للبيع
- اتحاد المدونين العرب
- احــباط
- احمد قرة
- اغلاق مكتب المنيل
- اكاذيب حول مجزرة اللاجئين
- الأناركية بالعربية
- الحرملك
- الحرملك
- الحرملك
- الحرية
- الخَرَز الملوّن
- الغربال
- الفسائل
- القارئ الشعبي
- الله الوطن فاطمه
- النبي الأفريقي
- الوعى القبطى
- باب الدنيا
- بكــــــــرة احلـــــــي
- بنت سعد
- بنت مصرية
- جار القمر
- جذر العدالة والرخاء
- جــر شــكل
- حائر في دنيا الله
- حائر في دنيا الله
- حائر في دنيا الله
- حائر في دنيا الله
- خيوط
- دودا
- ساقية الفيوم
- شهداء الشرطه المصريه
- صرخات مدوية Echoing Screams
- طلاب مقاومة
- عالقهوة
- عزة سليمان مرشحة مستقلة لمجلس الشعب 2010
- على باب الله
- عمال مطاحن مصر
- عمر سليمان
- عن السرد الجديد
- عَن الشــِـــعْـر
- فن أناركي
- فهمي هويدي
- فيونكات حرير
- قضايا أساسية هامة
- قلم (ألم) وطن
- ليلى أرمن
- مارييت
- مُحَمد أُسَـامَه
- مدونة خالد البلشى
- مدونة رؤوف مسعد
- مدونة كافر
- مدونون ضد أبو حصيرة
- مدونون ضد الحزب الوطني
- مسلمون ولكن
- مصرى أوى
- مقالات الأميرة بسمة بنت سعود..
- ولآية إسلامية شورية
- يناير …. شهادات حية
- يوميات مثلي بالفطرة
- Gameela Ismail
- IslamicLawBlog
- KHALED EL-SAWY
- Mubarak Games
- Mystic Contemplation
- samia bakry
- Shadow Ministry of Housing
- SHE2I2
- spring awakening egypt
- Syria Exposed
- The Magna Carta Manifesto
- wa7damasrya
- البلوجاية الخاصة بالمعلم سعيد انحراف
- البنات عايزة ايه
- الجيش والديمقراطية
- الحرية لمحمد عادل … العميد ميت
- جبهة الدفاع عن متظاهرى مصر
- حركة 6 ابريل
- خجل حتى النخاع
- سفينة فضاء
- عايز حقي
- فتح عينيك
- لقمة عيش
- squattercity
- GuitArduino
- حلم المزرعة
- Audio.nodes
- Hugo
- Eask
- Virtualbox
- Link DSL
- Twitter backup code
- Windows keys
- blockchain.info
- Blockchain
- Mastodon
- move to QubesOS
- web interface for recoll desktop search
- A Signal compatible cross plattform client written in Go and Vuejs
- Libby
- GitHub - apprenticeharper/DeDRM_tools: DeDRM tools for ebooks
- GitHub - biobootloader/mentat: Mentat - The AI Coding Assistant
- [Help] Integration with gnome file manager Nautilus · Issue #45 · novoid/filetags · GitHub
- Move docker bind-mount to volume - Stack Overflow
- How to Back Up Your Docker Volumes
- GitHub - jareware/docker-volume-backup: Utility container for periodically backing up Docker volumes
- What are the step to move all your dotfiles into XDG directories? - Super User
- xdg-ninja/README.md at main · b3nj5m1n/xdg-ninja · GitHub
- My LLM CLI tool now supports self-hosted language models via plugins
- GitHub - a16z-infra/companion-app: AI companions with memory: a lightweight stack to create and host your own AI companions
- GitHub - rhasspy/piper: A fast, local neural text to speech system
- Use server side car instead of spawning it under node process by yacineMTB · Pull Request #18 · yacineMTB/talk · GitHub
- GitHub - mikf/gallery-dl: Command-line program to download image galleries and collections from several image hosting sites
- Email Parser Software & Workflow Automation
- GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++
- GitHub - BitResolve/Bounty-Adjudication-System: Noncustodial, Bitcoin-Native, Nostr-Powered FOSS Bounty Adjudicator
- Pi, your personal AI
- GitHub - KillianLucas/open-interpreter: OpenAI's Code Interpreter in your terminal, running locally
- GitHub - opengeos/leafmap: A Python package for interactive mapping and geospatial analysis with minimal coding in a Jupyter environment
- GitHub - luarvique/openwebrx: Open source, multi-user SDR receiver software with a web interface
- LLM: A CLI utility and Python library for interacting with Large Language Models
- GitHub - imartinez/privateGPT: Interact with your documents using the power of GPT, 100% privately, no data leaks
- H2O.ai | The fastest, most accurate AI Cloud Platform
- Ollama
- GitHub - langchain-ai/opengpts
- GitHub - google-deepmind/graphcast
- Your favorite operating systems in one place! | netboot.xyz
- Animate Aynone
- GitHub - Vaibhavs10/insanely-fast-whisper
- GitHub - run-llama/llama_index: LlamaIndex (formerly GPT Index) is a data framework for your LLM applications
- Compare LLMs using Ragas Evaluations | Ragas
- GitHub - tubearchivist/tubearchivist: Your self hosted YouTube media server
- GitHub - aifartist/ArtSpew: An infinite number of monkeys randomly throwing paint at a canvas
- GitHub - embedchain/embedchain: Data platform for LLMs - Load, index, retrieve and sync any unstructured data
- llama_index/docs/examples/agent/agent_builder.ipynb at main · run-llama/llama_index · GitHub
- GitHub - simonw/ospeak: CLI tool for running text through OpenAI Text to speech
- GitHub - openchatai/OpenCopilot: 🤖 🔥 Let your users chat with your product features and execute things by text - open source Shopify sidekick
- 🦅 Eagle 7B : Soaring past Transformers with 1 Trillion Tokens Across 100+ Languages
- GitHub - redglitch2/FrameDeck: Framework Mainboard Powered Handheld
- GitHub - mikf/gallery-dl: Command-line program to download image galleries and collections from several image hosting sites
- GitHub - s2underground/GhostNet: GhostNet
- GitHub - muaddib1984/webspectrum-docker: build file for self-contained docker image showcasing gr-webspectrum. includes gnuradio, redis and uvicorn
- GitHub - muaddib1984/gr-webspectrum: A Web-based spectrum display server for GNURadio
- GitHub - o7-machinehum/Protectli-UPS-Firmware: Firmware for the Protectli UPS.
- GitHub - maybe-finance/maybe: Personal finance and wealth management app
- GitHub - opennukit/Nukit-Open-Air-Purifier: Nukit Open Air Purifiers are Open Hardware devices for improving indoor air quality. They are designed to be used with North American standard HVAC filters and PC fans. They are often an improvement over commercial air purifiers as they are quieter per m3 CADR delivered, have a lower cost of ownership per year, and are easily repairable.
- GitHub - audiamus/BookLibConnect: A standalone Audible downloader and decrypter
- GitHub - openaudible/openaudible: Audiobook Manager for Audible Users
- A very short guide into how Proxmox uses ZFS : r/Proxmox
- How to install Proxmox and setup a ZFS Pool - Intermittent Technology
- Create ZFS Storage in Proxmox VE - DIY Tech Guru
- proxmox | Techno Tim
- Create VM from existing qcow2 image ? | Proxmox Support Forum
- Storage - Proxmox VE
- ZFS on Linux - Proxmox VE
- Perfect Proxmox Template with Cloud Image and Cloud Init | Techno Tim
- GitHub - guillaumevpayet/remote-numpad-server
- Home · aerickt/lapwing-for-beginners Wiki · GitHub
- GitHub - chrxh/alien: ALIEN is a CUDA-powered artificial life simulation program.
- GitHub - aymenfurter/microagents: Agents Capable of Self-Editing Their Prompts / Python Code
- GitHub - SecureAI-Tools/SecureAI-Tools: Private and secure AI tools for everyone's productivity.
- daveshap (David Shapiro) · GitHub
- GitHub - yaelwrites/Big-Ass-Data-Broker-Opt-Out-List
- GitHub - ollama/ollama: Get up and running with Llama 2, Mistral, and other large language models locally.
- GitHub - bellingcat/auto-archiver: Automatically archive links to videos, images, and social media content in a Google Sheet
- Normcore LLM Reads · GitHub
- GitHub - UDST/urbansim: Platform for building statistical models of cities and regions
- [Feature] set Download directory for models while pulling/downloading from ollama · Issue #1750 · ollama/ollama · GitHub
- Protect data on your Mac with FileVault - Apple Support
- GitHub - Codium-ai/cover-agent: CodiumAI Cover-Agent: An AI-Powered Tool for Automated Test Generation and Code Coverage Enhancement! 💻🤖🧪🐞
- GitHub - entropy-research/Devon: Devon: An open-source pair programmer
- Vision models · Ollama Blog
- GitHub - unclecode/crawl4ai: 🔥🕷️ Crawl4AI: Open-source LLM Friendly Web Crawler & Scrapper
- luks?
- Local code completion with Ollama and Cody
- How to install and run EigenD in 2023+ [wiki] - Eigenharp - Poly Expression
- phidata/cookbook/llms/groq/ai_apps at main · phidatahq/phidata · GitHub
- Add ability to change open api base url · Issue #9 · ahyatt/llm · GitHub
- GitHub - haizelabs/llama3-jailbreak: A trivial programmatic Llama 3 jailbreak. Sorry Zuck!
- GitHub - taketwo/llm-ollama: LLM plugin providing access to local Ollama models using HTTP API
- Enchanted LLM on the App Store
- GitHub - outlines-dev/outlines: Structured Text Generation
- GitHub - nus-apr/auto-code-rover: Autonomous program improvement
- Plover
- Keyboard Checker | The best online keyboard tester
- GitHub - aitechguy/nostr-address-book: nostr address book - a public directory of nostr addresses
- GitHub - geoffwhittington/meshtastic-bridge
- Soapbox / Mostr · GitLab
- GitHub - blakejakopovic/nostr_delete: Nostr event deletion micro web-app
- GitHub - leesalminen/nostr-follow-bundler
- awesome-nostr | nostr.net - awesome-nostr is a collection of projects and resources built on nostr to help developers and users find new things
- Get NIP-05 verified
- command-r
- Fine-tune Mistral-7b with SFT.ipynb - Colaboratory
- GitHub - Bklieger/groqnotes: Groqnotes: Generate organized notes from audio using Groq, Whisper, and Llama3
- GitHub - xai-org/grok-1: Grok open release
- Add Debian non-free repositories
- mypy 1.8.0 documentation
- GitHub - KillianLucas/01: An open-source language model computer
- Using Local AI On The Command Line To Rename Images (And More) | Hackaday
- GitHub - ping/odmpy: A simple command line manager for OverDrive/Libby loans. Download your library loans from the command line.
- GitHub - nat/openplayground: An LLM playground you can run on your laptop
- GitHub - jmorganca/ollama: Run, customize, and share self-contained & portable large language models
- GitHub - AntonOsika/gpt-engineer: Specify what you want it to build, the AI asks for clarification, and then builds it.
- Read Literate Configuration | Leanpub
- buku/bukuserver at master · jarun/buku · GitHub
- scrapeghost
- GitHub - synonymdev/slashtags: Slashtags implementation in JavaScript
- GitHub - accelerated-text/accelerated-text: Accelerated Text is a no-code natural language generation platform. It will help you construct document plans which define how your data is converted to textual descriptions varying in wording and structure.
- LazyLibrarian / LazyLibrarian · GitLab
- GitHub - mozilla/fxa: Monorepo for Firefox Accounts
- GitHub - Heapy/vipassana: Life and collaboration assistant
- GitHub - karlicoss/promnesia: Another piece of your extended mind
- Human Programming Interface | beepb00p
- GitHub - karlicoss/scripts: Various personal scripts
- LinkChecker — LinkChecker 10.2.1.post27+g05bf593fd documentation
- GitHub - karlicoss/exports: Various data export scripts that don't deserve a separate repository yet
- GitHub - twintproject/twint: An advanced Twitter scraping & OSINT tool written in Python that doesn't use Twitter's API, allowing you to scrape a user's followers, following, Tweets and more while evading most API limitations.
- GitHub - bit-team/backintime: Back In Time - A simple backup tool for Linux
- GitHub - karlicoss/HPI: Human Programming Interface 🧑👽🤖
- GitHub - gildas-lormeau/SingleFileZ: Web Extension for Firefox/MS Edge and CLI tool to save a faithful copy of an entire web page in a self-extracting HTML/ZIP polyglot file
- New ZeroHello - ZeroNet
- ArchiveBox | 🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more…
- One Hundred Ideas for Computing | ideas
- GitHub - MichaelMure/git-bug: Distributed, offline-first bug tracker embedded in git, with bridges
- Tabula: Extract Tables from PDFs
- GitHub - novoid/getdigicamdata.sh: Fetching data from my digital camera, rotating image files, renaming according to my file name convention.
- Ollama
- gnupg - Create backup Yubikey with identical PGP keys - Information Security Stack Exchange
- How to use the Fellowship Smartcard
- PGP Walk-Through
- Accounting
[1/5]- GitHub - beancount/beancount: Beancount: Double-Entry Accounting from Text Files.
- GitHub - jbms/beancount-import: Web UI for semi-automatically importing external data into beancount
- GitHub - jbms/finance-dl: Tools for automatically downloading/scraping personal financial data.
- Plain Text Accounting portal - plaintextaccounting.org
- beancount-import/beancount_import/source/ofx.py at master · jbms/beancount-import · GitHub
- Radio license
[0/5] - Tango
[1/5] - Vaccinations
[1/3] - Egypt Law
[4/19]- Build backward archive and index
- Build backward archive index: 1980-2010 inclusive
- Tag laws referring to مرسوم تشريعي as Syrian laws
- Update Official Gazetta
- Index Forward Archive: Link Legislations To Issues
- Organize Forward Archive
- Add Policy Areas
- Map Legislations Editing/Revoking Previous Legislation
- Map Legislations With Penal/Procedural Sections
- USE LEX(URI)
- related legislations
- قوانين خارج الأرشيف
- Write Khaled Hosny And Gaber On Ocr
- Write Policy Greenpapers
- Introduction to the legal archive @blog +writing
- Forward archive index
- القانون الجنائي
- unilm/kosmos-2.5 at master · microsoft/unilm · GitHub
- إعادة تصوُّر نظام العدالة الجنائية في مصر - The Tahrir Institute for Middle East Policy
- TWOW ebook
[0/4] - Email
[3/6] - Contacts/Calendar
[1/3] - Notes
[5/7] - Journal
[1/1] - Web pages workflow
[3/8] - Documents
[0/3] - Books
[1/22]- Tag books 'to-read' and 'read'
- NEXT Convert Calibre book comments from HTML to ORG (org MD at the worst)
- Organise books
- Holloway by Robert Macfarlane (Illustrated by Stanley Donwood) | Faber
- BOOK • Eric Yakes, CFA
- Ancient Egyptian Literature: Volume I: The Old and Middle Kingdoms: Old and the Middle Kingdoms v. 1 2nd (second) Revised Edition by Lichtheim, Miriam published by University of California Press (2006): unknown author: Amazon.com: Books
- Amazon.com: Ancient Egyptian Literature (World Literature in Translation): 9780520305847: Lichtheim, Miriam: Books
- Amazon.com: Egyptian Mythology: A Guide to the Gods, Goddesses, and Traditions of Ancient Egypt: 8601300133669: Pinch, Geraldine: Books
- Seth, God of Confusion: A study of his role in Egyptian mythology and religion (Probleme der Agyptologie): Velde, H. Te; Van Baaren-Pape, G. E. [Translator]: Amazon.com: Books
- Rothammels Antenna Book - DARC Verlag GmbH, 59,00 €
- Pankaj Mishra · The Shoah after Gaza
- Change Your Thoughts - Change Your Life: Living the Wisdom of the Tao: Dyer, Dr. Wayne W.: 9781401917500: Amazon.com: Books
- Tao Te Ching: Annotated & Explained (SkyLight Illuminations): Lao Tzu, Derek Lin, Lama Surya Das: 9781594732041: Amazon.com: Books
- The US losing wars ushers in a new political era
- The State in the Third Millennium: Hans-Adam, Prince: 9783905881042: Amazon.com: Books
- Radical Help by Hilary Cottam | Hachette UK
- Implementation by Jeffrey L. Pressman, Aaron Wildavsky - Paperback - University of California Press
- Books on Prout - Proutist Universal- Progressive Utilization Theory
- عبد الناصر والتنظيم الطليعي السري 1971-1963 by حمادة حسني | Goodreads
- سنوات وأيام مع جمال عبد الناصر: شهادة سامي شرف - شرف، سامي، - Google Books
- health
- Parliamentbook
- Subscriptions
[2/11] - Become a stool donor for FMT
[1/2] - PGP
[0/7] - Dailies
[0/31]- NEXT The megawatt family home
- Fiction idea
- On rights and power
- The invisible handjob of the market
- Aphorisms
- Boston
- Boston
- Katherine Maher
- Emacs as a browser
- أمك اسمها معاوية
- Invest in analog computers
- My computer timeline
- Nudism
- Land
- Dream
- Comedy between left and right
- Difference between natural and corporate persons
- The right is the new left?
- Justice, peace, and land
- Specialists and generalists
- Sovereignty
- The US is progressive polity in a conservative regime
- A good traveler has no fixed plans and is not intent on arriving
- Do a boat builder that excels in being off grid and actually recycling water, sewage and trash.
- Greshenfeld's contribution is that atoms are bits are cells
- Arms transfers will reduce with the rise of automation
- Watching Farya Faraji
- Types of nodes
- Capital-only futureOwning capital is becoming the main, perhaps sole mode of survival in the near future where labor's value is diminished by AI and robots. This is a quote from David Ricardo.
- "Humanity begins at Duke"
- Baltimore and Trump
- Homelab
- Incubate
- NEXT Blood donation
- NEXT Open University Bsc. (Honours) STEM or Open
- Social Science PhD
- Law Degree
- Elisp
- Python
- Bash script
- C++
- R
- Ukulele
- Shooting
- Krav Maga
- BJJ
- German
- French
- Mandarin
- Russian
- Hindi
- Swahili
- Japanese
- Hebrew
- Egyptian
- Latin
- Greek
- Aramic
- Bake bread
- Pantry
- NEXT Power amplifier
- Speakers
- Free things to do
- Minimal expense
- Expensive
- Online Removal
- Domain Name
- Post
- Money
- Phone
- Making Aliases
- Change The Person Who Lives At Your Home
- Moving house
- Driver License
- Travel
- OSINT
- Facebook events
- Email alias
- Public Finances
- Mapping Egypt
- Altair 8800
- Create a lightning wallet using GPT4 that employs YubiKey NFC
- Write an Emacs client for gesture devices
- Translate Future Scenarios
- Prepare Khalil Kalfat epubs
- Publish Kalfat's writings
- CNCL Translate AFAQ
- Translate MediaWiki
- Translate FreedomBox UX
- Write Madamasr articles
- Internet appliance
- Open Personal Equipment System
- Contrato: Smart Contract Marketplace
- Co-ops
- Cantaloupe Online Store — Cantaloupe Store
- Develop a combat coordination software as part of a game that becomes useful in real life
- Download torrents
- Become a Debian package maintainer
- SDR software
[0/10] - AmazeOwl - Amazon Product Research Tools for Wise Sellers - FREE to get Started!
- NEXT Write a world history of peace
- Habits
- Someday/Maybe
Actions
DONE [A] Social Media Emergency Rapid Response writing digitalRights SMEX
[2018-07-05 Thu] SCHEDULED: <2018-07-08 Sun>
- State "DONE" from "TODO" [2018-11-11 Sun]
DONE Delete Facebook
- State "DONE" from "TODO" [2019-01-18 Fri]
[2018-12-31 Mon]
DONE هوجان
[2019-01-08 Tue]
- State "DONE" from "TODO" [2019-01-18 Fri]
DONE [A] Write هل هزمنا في مصر؟
[2019-01-22 Tue]
- State "DONE" from "TODO" [2019-01-27 Sun]
DONE [A] Send website to Guebara
- State "DONE" from "TODO" [2019-01-25 Fri]
[2019-01-25 Fri]
TODO [C] Translate هل هزمنا في مصر؟
[2019-02-11 Mon]
DONE Buy podcast equipment years
[2019-02-25 Mon]
TODO Write UoN
[2019-02-28 Thu]
CNCL [#A] Write +ColumbiaFoE
[2019-02-28 Thu]
- State "DONE" from "TODO" [2019-06-20 Thu]
DONE [A] Translate Strikes, Riots and Laughter
[2019-06-19 Wed] SCHEDULED: <2019-06-24 Mon>
- State "DONE" from "TODO" [2019-06-24 Mon]
DONE [A] أرشيف بصراحة for Khaled
- State "DONE" from "TODO" [2020-01-26 Sun]
[2020-01-26 Sun]
TODO Write Atoms, Bits and Cells
[2021-03-16 Tue]
DONE [A] Recommend printers for Nancy
SCHEDULED: <2022-06-04 Sat>
- State "DONE" from "TODO" [2022-06-03 Fri]
[2022-06-03 Fri]
DONE [A] Buy gifts for kids
[2023-01-09 Mon 12:56]
DONE Connect Ranwa Yehia and Nicholas Ibekwe
DEADLINE: <2023-01-18 Wed>
- State "DONE" from "NEXT" [2024-02-11 Sun 12:56]
[2023-01-14 Sat 09:50]
WAIT [#A] Get NS files and street leaflets box Egypt
programmatically delegated to Ranwa Yehia
- State "WAIT" from "NEXT" [2024-02-04 Sun 18:38]
<2024-02-29 Thu> [2023-01-14 Sat 11:58]
TODO Document archive convention and workflow
[2023-01-15 Sun 09:40]
DONE Buy mason jars and containers
CLOSED: [2024-03-08 Fri 17:13]
[2023-01-17 Tue 20:32]
DONE Update OnlyKey firmware security
[2023-02-01 Wed 15:55]
DONE Call Zyad Elelaimy
- State "DONE" from "NEXT" [2024-02-11 Sun 12:56]
[2023-02-10 Fri 11:11]
DONE Pick up chair from Ayah
- State "DONE" from "NEXT" [2023-03-07 Tue 12:59]
[2023-03-06 Mon 18:07]
TODO Send Khaled sample of BBC historical documentaries
[2023-08-05 Sat 21:14]
TODO Ultimate Plan + DNA Kit + InnerAge 2.0 calculation – InsideTracker
[2023-08-08 Tue 07:59]
TODO [A] UK visa travel
[2023-11-08 Wed 18:08]
TODO [A] Schengen visa travel
[2023-11-08 Wed 18:08]
TODO [A] Schengen visa for parents travel
[2023-11-08 Wed 18:08]
TODO US visa for parents travel
[2023-11-08 Wed 18:08]
DONE Call with Lorenzo
[2024-01-17 Wed 10:15] CLOSED: [2024-01-22 Mon 03:22] SCHEDULED: <2024-01-21 Sun 12:00>
DONE Schedule call with Nicholas Ibekwe Stanford
- State "DONE" from "NEXT" [2024-02-11 Sun 12:55]
[2024-02-04 Sun 17:08]
TODO Check Ezz website migration options
[2024-02-04 Sun 17:20]
He wants to move to the website. Currently at Buzzsprout.
TODO [A] Renew Kiwico subscription for Nout and Bouri
[2024-02-04 Sun 17:20]
TODO Take a Red Cross first aid class health
[2024-02-04 Sun 17:22]
TODO Create Pepco account
[2024-02-04 Sun 17:32]
TODO Choose pictures to print
[2024-02-04 Sun 17:32]
TODO [C] Write an article on energy subsidies and democratic and undemocratic power systems
[2024-02-04 Sun 17:51]
TODO [C] Write آخر الدول الصناعية
[2024-02-04 Sun 17:52]
انهيار التجارة العالمية أدى لانتقال رؤوس الاموال الأوروبية للاستثمار الصناعي في مصر من شرق آسيا. مصر تمتلك أفضل الهياكل الديمغرافية القريبة من اوروبا.
البحرية المصرية ستكون لاعبا رئيسيا في تأمين التجارة البحرية بين مضيق باب المندب و مضيق صقلية.
تحالف بين اليابان و سنغافورة و الهند و الإمارات و مصر و فرنسا لتأمين التجارة بين آسيا و أوروبا.
TODO [A] Write The Egypt Foundation concept
[2024-02-04 Sun 17:58]
TODO Register as Notary Public in Maryland
[2024-02-04 Sun 18:00]
TODO [C] Write project28 concept
[2024-02-04 Sun 18:00]
CNCL [#A] Legal case management system EIPR
- State "CNCL" from "TODO" [2024-02-12 Mon 10:53]
Nada left EIPR
[2024-02-04 Sun 18:00]
TODO Find a cardiac calcium score test health
TODO Find a dentist
TODO People Search
- White pages history review
TODO [A] Secure google account
DONE [A] تقرير قانون الجريمة الإلكترونية digitalRights EIPR
SCHEDULED: <2018-07-31 Tue>
- State "DONE" from "TODO" [2018-11-11 Sun]
DONE EIPR researches
- State "DONE" from "TODO" [2018-11-11 Sun]
DONE Change Macy's Wine Cellar
SCHEDULED: <2020-03-01 Sun>
- State "DONE" from "TODO" [2020-03-13 Fri]
DONE [A] Update lease information
DEADLINE: <2022-12-30 Fri>
DONE [A] Change Gemini password
TODO Crack old laptop linux user
carrotrabbit c@rrotr@bbit c@rrotrabbit carrotr@bbit Carrotrabbit C@rrotr@bbit C@rrotrabbit Carrotr@bbit bottlebottom canvascheese
DONE Shut down *diaspora
- State "DONE" from "TODO" [2023-01-26 Thu 13:57]
TODO
Export X favorites and lists [0/2][0%]
- State "DONE" from "TODO" [2023-07-28 Fri 13:56]
NEXT Twitter friends
https://twitter.com/msameer https://twitter.com/e3i5 https://twitter.com/BooDy https://twitter.com/ezabi https://twitter.com/EmanM https://twitter.com/gassur https://twitter.com/CAESAr_DIABLo https://twitter.com/hfakih https://twitter.com/benhoz https://twitter.com/dinasamak https://twitter.com/loolyez https://twitter.com/AmrEzzat https://twitter.com/majdal https://twitter.com/Mohamedfawzi https://twitter.com/sarahjatkinson https://twitter.com/adelwassilly https://twitter.com/hannanik https://twitter.com/jameslosey https://twitter.com/tabulagaza https://twitter.com/rafeeq https://twitter.com/EarthReporter https://twitter.com/hananelbadawi https://twitter.com/nadoo https://twitter.com/Faltastico https://twitter.com/jsoohen https://twitter.com/Omar_Mostafa https://twitter.com/LBLewarne https://twitter.com/frankinmokum https://twitter.com/MaieZeiny https://twitter.com/mradwanz https://twitter.com/naglarzk https://twitter.com/clotfy https://twitter.com/CurlsAloud24 https://twitter.com/RamyRaoof https://twitter.com/urban_spacegirl https://twitter.com/matthewcassel https://twitter.com/Kh_Khalil https://twitter.com/scarletprim https://twitter.com/marwasocialist https://twitter.com/ReemShafaki https://twitter.com/deenahsn https://twitter.com/shadysamir https://twitter.com/tamerwageeh https://twitter.com/Kjnda https://twitter.com/mohamed_bakier https://twitter.com/khalidabdalla https://twitter.com/Amiralx https://twitter.com/vfranz73 https://twitter.com/tamernm https://twitter.com/FatmaAbed https://twitter.com/RmNgb https://twitter.com/tarekshalaby https://twitter.com/bassammortada https://twitter.com/m_zzat https://twitter.com/tareknaga https://twitter.com/ghadasha https://twitter.com/mosaaberizing https://twitter.com/KhyamAllami https://twitter.com/sarrahsworld https://twitter.com/StephFiggins https://twitter.com/NadineIbrahim https://twitter.com/mand0z https://twitter.com/abeerfarid https://twitter.com/jerezim https://twitter.com/Azza_Shaaban https://twitter.com/Alioushka https://twitter.com/LtlBud https://twitter.com/_belal_ https://twitter.com/TheBlueStone https://twitter.com/GameelaIsmail https://twitter.com/amassouda https://twitter.com/Adel_Ramadan https://twitter.com/ghappour https://twitter.com/ahmadshokr https://twitter.com/Ayoubelmasry https://twitter.com/waelabdelfattah https://twitter.com/rameshmedia https://twitter.com/malaklabib https://twitter.com/mai_choucri https://twitter.com/rawdaahmeds https://twitter.com/KholoudSaber https://twitter.com/rwassiem https://twitter.com/ziyadhawwas https://twitter.com/ReckedS https://twitter.com/dmbahgat https://twitter.com/FathyAbdelWahab https://twitter.com/shaheer_george https://twitter.com/femachiaveli https://twitter.com/Moooush https://twitter.com/amirakhalil46 https://twitter.com/darbelbahlawan https://twitter.com/rnwaz https://twitter.com/ragiaelgerzawy https://twitter.com/YaraSoliman https://twitter.com/uwe_a https://twitter.com/sondosshabayek https://twitter.com/ChefConstructed https://twitter.com/nawaranegm https://twitter.com/sarafismail https://twitter.com/DinaElZahaby https://twitter.com/SaraHJIshaq https://twitter.com/samer_atallah https://twitter.com/sara_sedrak https://twitter.com/trkfhm https://twitter.com/Shaimaa2_ https://twitter.com/MohamadSalAdam https://twitter.com/BahaaAwwad https://twitter.com/mohamed123yazan https://twitter.com/khaledfahmy11 https://twitter.com/motazattalla https://twitter.com/HebaGhannam https://twitter.com/burntheblanket https://twitter.com/emydarwish https://twitter.com/jrMalek https://twitter.com/nserhan https://twitter.com/abou_salem https://twitter.com/redamar3y https://twitter.com/aakhalek https://twitter.com/ansary_ https://twitter.com/karshaf https://twitter.com/abusamra23 https://twitter.com/marwaseoudi https://twitter.com/ishakassaad https://twitter.com/ShamsRamez https://twitter.com/anassar88 https://twitter.com/negarazimi https://twitter.com/bassemk https://twitter.com/ahassaballa https://twitter.com/Rasha_Abdul https://twitter.com/EmaEgypt https://twitter.com/mossallemz https://twitter.com/Mkamal70 https://twitter.com/AmeerMMosa https://twitter.com/Sofeyasworld https://twitter.com/digressing https://twitter.com/mkorachy https://twitter.com/DinaYusif https://twitter.com/MidoGawad https://twitter.com/ellerybiddle https://twitter.com/FHM8 https://twitter.com/Salma_El_Tarzi https://twitter.com/AmalKhalil_ https://twitter.com/AidaSeoudy https://twitter.com/nazlyhussein https://twitter.com/leslie9881 https://twitter.com/Basma_Badran https://twitter.com/dalia11_7 https://twitter.com/Yoosoora https://twitter.com/hanafiya https://twitter.com/AdhamMobarak https://twitter.com/moagati https://twitter.com/Choucri19 https://twitter.com/younissh https://twitter.com/AminFHaddad https://twitter.com/TNTzero https://twitter.com/ranaelnemr https://twitter.com/jasmin194 https://twitter.com/ALYNH77 https://twitter.com/ieShedid https://twitter.com/MoShewy https://twitter.com/halagalal66 https://twitter.com/fatemahfarag https://twitter.com/Laila_Samy https://twitter.com/LaliSandi https://twitter.com/Mo7amedHashim1 https://twitter.com/ALHASSAN88106 https://twitter.com/al_naya https://twitter.com/S_Elwardany https://twitter.com/Mo_Abdelghani https://twitter.com/Khaledali251 https://twitter.com/kennarah https://twitter.com/MounirMegahed https://twitter.com/taheraboelnasr https://twitter.com/JasminKamal https://twitter.com/The_Askar https://twitter.com/ShadySa3ed https://twitter.com/ahmadhossam2009 https://twitter.com/Talk2NohaGaber https://twitter.com/AlNashat https://twitter.com/ManarA7mad https://twitter.com/Magda_Boutros https://twitter.com/naeleltoukhy https://twitter.com/bunduqiyya https://twitter.com/Ziadbahaa https://twitter.com/sassihasan https://twitter.com/khadrania https://twitter.com/BaheyaMasr https://twitter.com/ShmaeganM https://twitter.com/mlotfy81 https://twitter.com/SamiaHeikal https://twitter.com/annatation https://twitter.com/TamaraAlrifai https://twitter.com/MoatazBahyElDin https://twitter.com/LolaAliaga https://twitter.com/mohamedhanafi30 https://twitter.com/tarikabdelaal https://twitter.com/ManalDonia https://twitter.com/sisstill https://twitter.com/PaulMoughtin
TODO Twitter Egypt
https://twitter.com/gr33ndata https://twitter.com/Zeinobia https://twitter.com/Shokeir https://twitter.com/ircpresident https://twitter.com/MaLek https://twitter.com/moftasa https://twitter.com/mmgirgis https://twitter.com/wael https://twitter.com/gharbeia https://twitter.com/manal https://twitter.com/Gue3bara https://twitter.com/salmasaid https://twitter.com/Sandmonkey https://twitter.com/Gemyhood https://twitter.com/gassur https://twitter.com/CAESAr_DIABLo https://twitter.com/Monasosh https://twitter.com/ziadaly https://twitter.com/AhmedFatah https://twitter.com/omarsaid_ https://twitter.com/Cer https://twitter.com/nermo https://twitter.com/ARahman_Mansour https://twitter.com/O_Salam https://twitter.com/3yyash https://twitter.com/alyanumbers https://twitter.com/moneimpress https://twitter.com/ganobi https://twitter.com/MoEltaher https://twitter.com/ahmedkhair https://twitter.com/sana2 https://twitter.com/Islam_lotfy https://twitter.com/samehelbarqy https://twitter.com/mardinix https://twitter.com/ElHady https://twitter.com/minazekri https://twitter.com/Khaled_A_H https://twitter.com/dgamil https://twitter.com/YoussraElHawary https://twitter.com/RevSocMe https://twitter.com/3arabawy https://twitter.com/harakamasria https://twitter.com/ezzata https://twitter.com/elnadeem https://twitter.com/loolyez https://twitter.com/arabist https://twitter.com/JanoCharbel https://twitter.com/fatmaramadan https://twitter.com/degner https://twitter.com/AmrEzzat https://twitter.com/ahmada2 https://twitter.com/alnagar80 https://twitter.com/Ragab https://twitter.com/glcarlstrom https://twitter.com/fustat https://twitter.com/aymanscribbler https://twitter.com/sherif_azer https://twitter.com/emanabdelmonem https://twitter.com/adelwassilly https://twitter.com/daliaziada https://twitter.com/khaledelbalshy https://twitter.com/faissl https://twitter.com/sinai https://twitter.com/Ahmed_Maher08 https://twitter.com/aidaseif https://twitter.com/abdofares https://twitter.com/LoaiNagati https://twitter.com/iesterman https://twitter.com/Mohamdaziz https://twitter.com/rafeeq https://twitter.com/anhri https://twitter.com/gamaleid https://twitter.com/eiman https://twitter.com/ehabmalek https://twitter.com/ahmeddouma https://twitter.com/o7od https://twitter.com/maikelnabil https://twitter.com/ahmednaguib https://twitter.com/sharifkouddous https://twitter.com/mar3e https://twitter.com/we2am https://twitter.com/elmansi https://twitter.com/MAswad https://twitter.com/SohaBayoumi https://twitter.com/minouche_7 https://twitter.com/elshafee https://twitter.com/abuaardvark https://twitter.com/sarahalsherif https://twitter.com/hishamkassem https://twitter.com/monamahfouz https://twitter.com/hebamorayef https://twitter.com/salamah https://twitter.com/NadiaE https://twitter.com/RashaAbdulla https://twitter.com/MaieZeiny https://twitter.com/tariksalama https://twitter.com/bassemzakaria https://twitter.com/Sarahngb https://twitter.com/baheresmat https://twitter.com/OlaShahba https://twitter.com/mohie84 https://twitter.com/eldahshan https://twitter.com/evanchill https://twitter.com/declanwalsh https://twitter.com/basildabh https://twitter.com/jmalsin https://twitter.com/EmanHashim https://twitter.com/RamyRaoof https://twitter.com/Ghonim https://twitter.com/ShadiAlfons https://twitter.com/RamyYaacoub https://twitter.com/Gsquare86 https://twitter.com/SorayaBahgat https://twitter.com/Kh_Khalil https://twitter.com/harassmap https://twitter.com/ekramibrahim https://twitter.com/marwasocialist https://twitter.com/NancyGEO https://twitter.com/tradwan https://twitter.com/deenahsn https://twitter.com/AlyaaGad https://twitter.com/SawsaGa https://twitter.com/HassanKhalil https://twitter.com/monaeltahawy https://twitter.com/justicentric https://twitter.com/nancyayoussef https://twitter.com/Mozn https://twitter.com/tamerwageeh https://twitter.com/Ssirgany https://twitter.com/BothainaKamel https://twitter.com/hfahmy https://twitter.com/yeh1a https://twitter.com/EIPR https://twitter.com/AlMasryAlYoum https://twitter.com/7or https://twitter.com/seldeeb https://twitter.com/sokkari https://twitter.com/Linaattalah https://twitter.com/demaghmak https://twitter.com/A_ElghouL https://twitter.com/ahmadragheb https://twitter.com/yasminelrifae https://twitter.com/Fayoumer https://twitter.com/khalidabdalla https://twitter.com/Shorouk_News https://twitter.com/zelaky https://twitter.com/Texnomic https://twitter.com/mo_a_ali https://twitter.com/YaraSallam https://twitter.com/hadouta https://twitter.com/nayelshafei https://twitter.com/Adel_Salib https://twitter.com/Omniaaldesoukie https://twitter.com/kalimakhus https://twitter.com/FatmaAbed https://twitter.com/PresidentGamal https://twitter.com/TheBigPharaoh https://twitter.com/amirahoweidy https://twitter.com/GeorgeSalama https://twitter.com/HaniShukrallah https://twitter.com/hfakhry https://twitter.com/mohamedwaked https://twitter.com/weskandar https://twitter.com/hossambahgat https://twitter.com/RmNgb https://twitter.com/Assaadtaha https://twitter.com/Tarreq https://twitter.com/Samueltadros https://twitter.com/AhmedKheir https://twitter.com/jahdkhalil https://twitter.com/MGar7ey https://twitter.com/shabab6april https://twitter.com/samehsamir https://twitter.com/HeshamAfifis https://twitter.com/monasalman https://twitter.com/kdawoud https://twitter.com/ziad_mohi https://twitter.com/ranwayehia https://twitter.com/monaanis https://twitter.com/gehan_shaaban https://twitter.com/DoniaKamal https://twitter.com/hebamks https://twitter.com/Dinabdelrahman https://twitter.com/monznomad https://twitter.com/mrmeit https://twitter.com/lilianwagdy https://twitter.com/ghadasha https://twitter.com/Esraa2008 https://twitter.com/Hragy https://twitter.com/evronia https://twitter.com/fatmaemam https://twitter.com/alyeltelees https://twitter.com/HananRazekBBC https://twitter.com/a7med_ra7al https://twitter.com/kalnaga https://twitter.com/waelgamal https://twitter.com/sarrahsworld https://twitter.com/EmirNader https://twitter.com/abeerfarid https://twitter.com/hcerorg https://twitter.com/msrmichaelson https://twitter.com/Usamashazly https://twitter.com/Hazem_Hosny https://twitter.com/Amradib https://twitter.com/soliman91 https://twitter.com/egyptgovportal https://twitter.com/RamyEssam https://twitter.com/tekaldas https://twitter.com/AminaIsmail https://twitter.com/mwhanna1 https://twitter.com/mohamedaziz25 https://twitter.com/USEmbassyCairo https://twitter.com/VicoSalama https://twitter.com/HaYatElYaMaNi https://twitter.com/YasminMahfouz https://twitter.com/RDavisFCO https://twitter.com/AymanNour https://twitter.com/HossamAly76 https://twitter.com/sarah_m94 https://twitter.com/Bad_Way https://twitter.com/MayarAbdelAziz https://twitter.com/rawyasadek https://twitter.com/sallynabil https://twitter.com/Sarah_Othmann https://twitter.com/Baraka18 https://twitter.com/Hazem__Azim https://twitter.com/KarimAbdelrady https://twitter.com/Harbia https://twitter.com/ORHamilton https://twitter.com/amrelhady4000 https://twitter.com/maishams https://twitter.com/mohamedmsayed https://twitter.com/AriaLavrilleux https://twitter.com/ahmedsamir1981 https://twitter.com/ezzat_ghonim https://twitter.com/sabrielsammak https://twitter.com/GameelaIsmail https://twitter.com/h_elmahdawy https://twitter.com/muhamedsabry https://twitter.com/amassouda https://twitter.com/marwanyouness https://twitter.com/Adel_Ramadan https://twitter.com/MoFadel87 https://twitter.com/DaliaEzzat_ https://twitter.com/mounirabdelnour https://twitter.com/K_Mansour_ https://twitter.com/salahfadl1 https://twitter.com/ahmadshokr https://twitter.com/ElBaradei https://twitter.com/helmmasry https://twitter.com/afteegypt https://twitter.com/MidooDj https://twitter.com/Ze_Haq https://twitter.com/waelabdelfattah https://twitter.com/MisrAlQawia https://twitter.com/masteson https://twitter.com/EACPE https://twitter.com/AliElBaradei https://twitter.com/snafei https://twitter.com/ecesr https://twitter.com/emad_mubarak https://twitter.com/AD_Shosha https://twitter.com/FarahSaafan https://twitter.com/hafezabuseada https://twitter.com/Mustafabsakr https://twitter.com/malaklabib https://twitter.com/mai_choucri https://twitter.com/HatemAzzam https://twitter.com/Nadiaglory https://twitter.com/elbaroudi https://twitter.com/CIHRS_Alerts https://twitter.com/mzaree https://twitter.com/KholoudSaber https://twitter.com/OsamaRushdi https://twitter.com/rwassiem https://twitter.com/abeersaady https://twitter.com/negadelborai https://twitter.com/MohammadSawy https://twitter.com/tamerabuarab https://twitter.com/aqnada https://twitter.com/dmbahgat https://twitter.com/Abozikas https://twitter.com/FathyAbdelWahab https://twitter.com/Nadeemmansour https://twitter.com/ahmed3zat https://twitter.com/shaheer_george https://twitter.com/Nxoor https://twitter.com/NazraEgypt https://twitter.com/PerihaneAllam https://twitter.com/seifhamad https://twitter.com/Frances_Ha88 https://twitter.com/HamdeenSabahy https://twitter.com/baha2saber https://twitter.com/NadeenShaker https://twitter.com/marwaxena https://twitter.com/HammamAlagha https://twitter.com/Sherif_Amer_ https://twitter.com/elziba2 https://twitter.com/sarafahmmy https://twitter.com/darbelbahlawan https://twitter.com/rnwaz https://twitter.com/Piggipedia https://twitter.com/LinaMegahed https://twitter.com/AidaElkashef https://twitter.com/Elshaheeed https://twitter.com/General_Pikachu https://twitter.com/BassantMaximus https://twitter.com/belalfadl https://twitter.com/simonjhanna https://twitter.com/i5alifa https://twitter.com/Rgb_Saad https://twitter.com/Elfegiery https://twitter.com/sondosshabayek https://twitter.com/naderbakkar https://twitter.com/shadygh https://twitter.com/NaguibSawiris https://twitter.com/Rahmaniov https://twitter.com/RanaGaza https://twitter.com/AmirsalemEgypt https://twitter.com/nawaranegm https://twitter.com/awhawth https://twitter.com/Zeyadsalem https://twitter.com/doaafayyad https://twitter.com/EsraaFarouk https://twitter.com/sarafismail https://twitter.com/basemkamel https://twitter.com/dinaelhenawy82 https://twitter.com/adamakary https://twitter.com/kamalkhalil20 https://twitter.com/korekosmu https://twitter.com/HafsaHalawa https://twitter.com/FraCicardi https://twitter.com/ihoudaiby https://twitter.com/HaithamElhariri https://twitter.com/YosriFouda https://twitter.com/Mahmoud_salmani https://twitter.com/muhamedazmy https://twitter.com/abu_fajr https://twitter.com/samer_atallah https://twitter.com/Hossam_Abdalla https://twitter.com/OmniaKhalil https://twitter.com/MCIT_News https://twitter.com/salmaeldaly https://twitter.com/MohamedTarekAbd https://twitter.com/HeshamFattouh https://twitter.com/SherifNagib https://twitter.com/a_sayyad https://twitter.com/RawyaRageh https://twitter.com/aaboulenein https://twitter.com/Sarhan_ https://twitter.com/MAIEPANAGA https://twitter.com/ObaiCJ https://twitter.com/sblhickey https://twitter.com/koertdebeuf https://twitter.com/waelhaddara https://twitter.com/Yo7ia https://twitter.com/waiel65 https://twitter.com/HebaAfify https://twitter.com/7usfahmy https://twitter.com/HabibaEffat https://twitter.com/Shaimaa2_ https://twitter.com/m_aty https://twitter.com/amcham_egypt https://twitter.com/mohamedkheir https://twitter.com/YahiaShawkat https://twitter.com/MohamadSalAdam https://twitter.com/tamermoneim https://twitter.com/AnbaMacarius https://twitter.com/anwaresadat https://twitter.com/hetnetjer https://twitter.com/mamoun1234 https://twitter.com/khaledfahmy11 https://twitter.com/amrwaked https://twitter.com/Ahmedelsheikh_ https://twitter.com/HebaGhannam https://twitter.com/Maryamm_Saleh https://twitter.com/Sara_Aboubakr5 https://twitter.com/emydarwish https://twitter.com/amrellissy https://twitter.com/jrMalek https://twitter.com/amr_shora https://twitter.com/SekinaFouad https://twitter.com/ReemSaad10 https://twitter.com/CairoReview https://twitter.com/RashaPress https://twitter.com/ibmeguid https://twitter.com/PetrofWilliam https://twitter.com/Reemmagued https://twitter.com/Rogeranis https://twitter.com/ElMenshawyM https://twitter.com/Naira005 https://twitter.com/TamimBarghouti https://twitter.com/DaliaNewYork https://twitter.com/salmaahussein https://twitter.com/MAFouad https://twitter.com/nariology https://twitter.com/asiah_ahmed https://twitter.com/ishakassaad https://twitter.com/GhadaKandil https://twitter.com/_AyaHijazi_ https://twitter.com/FarahBarqawi https://twitter.com/scottlong1980 https://twitter.com/sherieffff https://twitter.com/AbuMrouj https://twitter.com/Andyegypt https://twitter.com/ahmdahshan https://twitter.com/SimaDiab https://twitter.com/nadahrashwan https://twitter.com/ibibars1 https://twitter.com/HalaShuk https://twitter.com/Abdraboh1980 https://twitter.com/flashmobegypt https://twitter.com/PRullezz https://twitter.com/Baho_egypt https://twitter.com/jan25revo https://twitter.com/CENTCOMArabic https://twitter.com/Doaa_Sultan_EG https://twitter.com/hahellyer https://twitter.com/darwish_twit https://twitter.com/cairowire https://twitter.com/AnissaHassouna https://twitter.com/Flsbrgr https://twitter.com/ALIZALAT https://twitter.com/samblina1 https://twitter.com/sakerabdol https://twitter.com/Nervana_1 https://twitter.com/AlyShalakany https://twitter.com/ezzovic https://twitter.com/Salma_El_Tarzi https://twitter.com/Mirna_elhelbawi https://twitter.com/AmalKhalil_ https://twitter.com/sohaabdelaty https://twitter.com/barracuda_twitt https://twitter.com/dandrawy_hawary https://twitter.com/DrHigazy https://twitter.com/amremoussa https://twitter.com/MElKholy https://twitter.com/MOFAEGYPT https://twitter.com/AmirElhalawany https://twitter.com/nazlyhussein https://twitter.com/Sharnobee https://twitter.com/Shaga3app https://twitter.com/tigerfree_2003 https://twitter.com/alaaldb https://twitter.com/taqadum https://twitter.com/EGElections https://twitter.com/samjaheen https://twitter.com/husseinmagdy16 https://twitter.com/ahmdhlmi https://twitter.com/Byoussef https://twitter.com/MahaAzzam_ERC https://twitter.com/YouNasrallah https://twitter.com/asoueif https://twitter.com/mmsabry https://twitter.com/Maha_SalahElDin https://twitter.com/EmanHerzallah https://twitter.com/KhaledGhetas https://twitter.com/Roma_Ghanem https://twitter.com/carlesgrau13 https://twitter.com/Hichamgamal https://twitter.com/HamzawyAmr https://twitter.com/ma7mod_badr https://twitter.com/Anas7asan https://twitter.com/Miclom80 https://twitter.com/shawkyelgenawy https://twitter.com/AlaaAswany https://twitter.com/NasserAmi https://twitter.com/afekki https://twitter.com/Egy_SDP https://twitter.com/moagati https://twitter.com/lameesh https://twitter.com/Abdurrahmanezz https://twitter.com/amr_imam https://twitter.com/Shehab_Fahmy https://twitter.com/islamistswatch https://twitter.com/DrAbolfotoh https://twitter.com/lilahass https://twitter.com/Cairo67Unedited https://twitter.com/Elkeshky https://twitter.com/YasFarouk https://twitter.com/_amroali https://twitter.com/Mamdouh_Hamza https://twitter.com/AWalash https://twitter.com/MohAboelgheit https://twitter.com/GhariebS https://twitter.com/fahmy_82 https://twitter.com/HebaFarooq https://twitter.com/amir_ramses https://twitter.com/DrHaniSarieldin https://twitter.com/KSallam https://twitter.com/LectorCommunis https://twitter.com/moiegy https://twitter.com/ReehamMourad https://twitter.com/maitelsadany https://twitter.com/RaghdaaElSaeed https://twitter.com/MasrAlhureyya https://twitter.com/S3Geeks https://twitter.com/Gramafoon https://twitter.com/youm7 https://twitter.com/halagalal66 https://twitter.com/heikalh https://twitter.com/Bassel_adel https://twitter.com/Asamir91 https://twitter.com/akramalfy https://twitter.com/MeKassab https://twitter.com/Mo7amedHashim1 https://twitter.com/mosireen https://twitter.com/alaingresh https://twitter.com/igeorgeus https://twitter.com/elboghdadyX https://twitter.com/magdi_khalil https://twitter.com/MaaTiti6 https://twitter.com/S_Elwardany https://twitter.com/DailaYoussef https://twitter.com/Mo_Abdelghani https://twitter.com/maisaad4 https://twitter.com/AGamalZiada https://twitter.com/Khaledali251 https://twitter.com/legansha3bia https://twitter.com/hanym228 https://twitter.com/TaherMukhtar https://twitter.com/kennarah https://twitter.com/Ta7alof https://twitter.com/FJparty https://twitter.com/ShawkanZeid https://twitter.com/taheraboelnasr https://twitter.com/SanaaYoussef https://twitter.com/Almanassa_AR https://twitter.com/MostafaElatar https://twitter.com/JoannaJoseph1 https://twitter.com/EgyptVotes2011 https://twitter.com/Youm7Khaled https://twitter.com/khtallima https://twitter.com/iHelal2011 https://twitter.com/NoMilTrials https://twitter.com/ElnekitY https://twitter.com/7ezbel3ommal https://twitter.com/SherifRAyad https://twitter.com/ahmadhossam2009 https://twitter.com/samoeilsth https://twitter.com/RadioMasr887fm https://twitter.com/3bdoozz https://twitter.com/Talk2NohaGaber https://twitter.com/sheriFouad https://twitter.com/T4ctici4n https://twitter.com/mostafabassiou1 https://twitter.com/TheAmalMofeed https://twitter.com/DaisyDuckegypt https://twitter.com/ManarA7mad https://twitter.com/summer_said https://twitter.com/azoz555 https://twitter.com/MoatazAFattah https://twitter.com/tahrory https://twitter.com/EssamAboSdera https://twitter.com/AboelelaM https://twitter.com/ElBaradeiOffice https://twitter.com/AlexBuccianti https://twitter.com/DrMahmoudRefaat https://twitter.com/ZLGold https://twitter.com/Ibrahim_Elgarhi https://twitter.com/MohamedAbuHamed https://twitter.com/IDSC_Egypt https://twitter.com/ArshifAlOmran https://twitter.com/Yasirigo1 https://twitter.com/3mareid https://twitter.com/Nature_Egypt https://twitter.com/_Jeremie_Smith https://twitter.com/BakryMP https://twitter.com/Amrabdelrahman5 https://twitter.com/Ta3awniat https://twitter.com/EduardCousin https://twitter.com/ahmed_darrag https://twitter.com/Ghoneimalex https://twitter.com/joey_shea https://twitter.com/marwaoglu https://twitter.com/aaeshakhirat https://twitter.com/BTelawy https://twitter.com/khouly85 https://twitter.com/Ziadbahaa https://twitter.com/Atawox https://twitter.com/AzzaSoliman1 https://twitter.com/makassas https://twitter.com/WafHeikal https://twitter.com/AhmedHelmy72 https://twitter.com/TahrirSupplies https://twitter.com/MAATMECA https://twitter.com/NeilKetchley https://twitter.com/BaheyaMasr https://twitter.com/RashaQandeelBBC https://twitter.com/salamamoussa https://twitter.com/amr_elshobaki https://twitter.com/EgyptSource https://twitter.com/telecomegypt https://twitter.com/Mohamed_Habib_T https://twitter.com/Nagwa_RD https://twitter.com/MariamNaoum https://twitter.com/simonoulla https://twitter.com/AhmedShafikEG https://twitter.com/MBRachid https://twitter.com/Dr_KhaledSaid https://twitter.com/Ahmedalgadamy https://twitter.com/Nzatouna https://twitter.com/jazz3162 https://twitter.com/mahmoudsaad https://twitter.com/PSchwartzstein https://twitter.com/raghavanWaPo https://twitter.com/SamirOmarSky https://twitter.com/Ma7liat https://twitter.com/mlotfy81 https://twitter.com/AbdallahSennawy https://twitter.com/ahmedSallam777 https://twitter.com/hend_nafea https://twitter.com/BahaaEshmawy https://twitter.com/LamiaARadi https://twitter.com/LamiaRadi https://twitter.com/el3askarMap https://twitter.com/FranceenEgypte https://twitter.com/EgyCapitalism https://twitter.com/EgyStrikes https://twitter.com/MarryDanial https://twitter.com/francediplo_AR https://twitter.com/tab3awi https://twitter.com/NoMilService https://twitter.com/ahamdyos https://twitter.com/JaredGenser https://twitter.com/LaLaKdaho https://twitter.com/EgyptianPolice0 https://twitter.com/Abbas_MCD https://twitter.com/egyposts https://twitter.com/sherryamin13 https://twitter.com/CRPCEgyofficial https://twitter.com/HodaAKamel https://twitter.com/amr_darrag https://twitter.com/AlDostourP https://twitter.com/ahmaher https://twitter.com/Saif_abdelfatah https://twitter.com/Ibrahim_3eissa https://twitter.com/nchrleg https://twitter.com/popmasry https://twitter.com/Imprint_Mov https://twitter.com/YasserAli5867 https://twitter.com/sherine https://twitter.com/bebol07 https://twitter.com/mr_roux https://twitter.com/EgyArmySpox https://twitter.com/BradRYoungblood https://twitter.com/BaheyHassan https://twitter.com/MostafasingerMr https://twitter.com/MazharBeyBasShh https://twitter.com/AllisonLMcManus https://twitter.com/HossamBadrawi https://twitter.com/SAnarchism https://twitter.com/OpAntiSH https://twitter.com/LillaMarzouk https://twitter.com/AminElMahdy https://twitter.com/Dr_Mona_Mina https://twitter.com/EgyPresidency https://twitter.com/m_elKhodairy https://twitter.com/MofEgypt https://twitter.com/mpmaregypt https://twitter.com/andreasyounan https://twitter.com/Mustafasaidm https://twitter.com/eyerollingpro https://twitter.com/SITCegypt https://twitter.com/PPOEgypt22 https://twitter.com/shohdyatea2 https://twitter.com/mahmouedgamal44 https://twitter.com/HuhMahmoud https://twitter.com/Alhaqanya https://twitter.com/fdep_egypt https://twitter.com/SwedeninEgypt https://twitter.com/Rusembegypt https://twitter.com/SweAmbEgypt https://twitter.com/Egy_Detainees https://twitter.com/Mshaai5 https://twitter.com/abd_mon_sh https://twitter.com/KhaledH7 https://twitter.com/drtarekelzomor https://twitter.com/aezzarab25 https://twitter.com/SheraaEgypt https://twitter.com/masralarabia https://twitter.com/Adeeb_Emad https://twitter.com/TimepDC https://twitter.com/CharlesWDunne https://twitter.com/ECPPSofficial https://twitter.com/yasirigo https://twitter.com/tarekelawady2 https://twitter.com/almagnifico2014 https://twitter.com/SafaaFaisalBBC https://twitter.com/MadaMasr https://twitter.com/ItalyinEgypt https://twitter.com/MohammedMAHSOOB https://twitter.com/DaliaTSeoudy https://twitter.com/AmrQotb https://twitter.com/Trade_Industry https://twitter.com/mahaserag https://twitter.com/WazirElKif https://twitter.com/masmou3 https://twitter.com/WeladElBaladN https://twitter.com/ElGabarty_ https://twitter.com/MIICEgypt https://twitter.com/thefreedomi https://twitter.com/MarsadEgypt https://twitter.com/IkhtyarCo https://twitter.com/EgyptEmbassyUSA https://twitter.com/fahmey_2 https://twitter.com/net_Rev_Egypt https://twitter.com/soltanlife https://twitter.com/luxour_wb https://twitter.com/Egy_Astro https://twitter.com/_grahamk https://twitter.com/Mah_Ibrahem https://twitter.com/freedom_2_brave https://twitter.com/JessDutton1 https://twitter.com/Egy_Solidarity https://twitter.com/afifywashere https://twitter.com/MoSalah https://twitter.com/AlsisiOfficial https://twitter.com/OrlaGuerin https://twitter.com/Mushtarak https://twitter.com/Marwa_a_Nasser https://twitter.com/freemahienour https://twitter.com/EGY_Environment https://twitter.com/Egypt_Speaks https://twitter.com/JohnCassonUK https://twitter.com/fathi26Fathi https://twitter.com/nagykamel0 https://twitter.com/AUC_LSR https://twitter.com/ecrfeg https://twitter.com/AlAzhar https://twitter.com/MfaEgypt https://twitter.com/CAPMAS_EG https://twitter.com/SarahElBanna74 https://twitter.com/DaftarAhwal https://twitter.com/kemety https://twitter.com/RaniahYousief https://twitter.com/hamza_haidy https://twitter.com/EdwinSamuelUK https://twitter.com/Oded121351 https://twitter.com/EUinEgypt https://twitter.com/SherifGaber https://twitter.com/parlmany https://twitter.com/mohammedelra3y https://twitter.com/ImmortalEgypt https://twitter.com/adeladawy https://twitter.com/ThawretShaaab https://twitter.com/MohamedSecrets https://twitter.com/HassanienMohmed https://twitter.com/NaqqashSalma https://twitter.com/EgyptianHRForum https://twitter.com/Nagy37108658 https://twitter.com/AhmedMefreh9 https://twitter.com/almosajjala https://twitter.com/SaheehMasr https://twitter.com/yosef_elhosseny https://twitter.com/IamAmiraTaher https://twitter.com/heshamserry00 https://twitter.com/Elhekayashow https://twitter.com/MenaAly10 https://twitter.com/manalfou https://twitter.com/RaniaAlMashat https://twitter.com/Eipss_En https://twitter.com/EG_SPI https://twitter.com/yallanaw https://twitter.com/tim_deedy https://twitter.com/StopDeathPenEg https://twitter.com/yehiaxyz https://twitter.com/HassanFarkhonda https://twitter.com/AntiquitiesOf https://twitter.com/MiretteMagdy7 https://twitter.com/AlaaMubarak_ https://twitter.com/AndrwPMiller https://twitter.com/858Archive https://twitter.com/MElshll https://twitter.com/DaliaFouadM https://twitter.com/HanyBassiuny https://twitter.com/yasminoviech https://twitter.com/TarekHussein22 https://twitter.com/AlyAladham https://twitter.com/Egy_military https://twitter.com/ibtidi1 https://twitter.com/omar_hatem1 https://twitter.com/HMahmoudmohmed https://twitter.com/ganzeer https://twitter.com/AhmedNajiTW https://twitter.com/MedinaPortal https://twitter.com/GermanEmbCairo https://twitter.com/SiNaiPluS https://twitter.com/EgyProjects https://twitter.com/EgyptDefReview https://twitter.com/Egypt2018 https://twitter.com/MOSS_Egypt https://twitter.com/MalekAdly https://twitter.com/Egypt_Meomooooz https://twitter.com/ahmedabdumaher https://twitter.com/raw_indigo https://twitter.com/sinaiwonk https://twitter.com/m_fahmyr https://twitter.com/alamiria2008 https://twitter.com/janelomuel https://twitter.com/saramsalem https://twitter.com/FishereEzzedine https://twitter.com/SISEGY https://twitter.com/bitawqitMasr
TODO Implement controlled vocabulary tags
!public !private !secret
TODO Tag archive files using filetags
TODO Add timestamps to archive files using date2name
TODO Rename archive files using appendfilename
TODO Tag and annotate all archive
TODO [A] Commonplace
- State "DONE" from "NEXT" [2023-08-11 Fri 13:00]
Commonplace are notes authored by someone else which ended up in text format and need a place to live.
TODO Clean Kindle and sync notes to PC
- State "DONE" from "TODO" [2021-11-19 Fri]
TODO Peer reviewed articles
TODO Web feeds
TODO Podcast feeds
- State "DONE" from "TODO" [2023-08-24 Thu 10:03]
- In Our Time: Animal Farm, Epic of Gilgamesh, John Dalton, Justinian's Legal Code, Lakshmi, Plasma, The 12th Century Renaissance, The Fighting Temeraire
- Hardcore History: Blueprint for armageddon 4, 5, 6 :podcast:archive:
- Discovery: The Inflamed Mind :podcast:archive:
- Common Sense: 310, 311
- Comedy of the Week: Bonus Mark Steels in Town (Gibraltar)
- Analysis: How did we save the Ozone layer :podcast:archive:
- +download Seriously: The Black Panthers +podcast +archive
- State "DONE" from "TODO" [2019-09-28 Sat]
TODO Video feeds
TODO Photos
TODO Audio
TODO Music
TODO Videos
TODO
DNS [0/2][0%] computer
NEXT Open DNS
208.67.222.222 208.67.220.220
TODO Link.net DNS
213.131.65.20
TODO Check sol.holdings and sol.industries ownership history computer
- State "TODO" from "" [2020-10-01 Thu]
TODO Gharbeia.net zone computer
$ORIGIN gharbeia.net. $TTL 1800 gharbeia.net. IN SOA ns1.digitalocean.com. hostmaster.gharbeia.net. 1658335499 10800 3600 604800 1800 gharbeia.net. 3600 IN A 71.191.71.62 www.gharbeia.net. 3600 IN A 71.191.71.62 fm1._domainkey.gharbeia.net. 43200 IN CNAME fm1.gharbeia.net.dkim.fmhosted.com. fm2._domainkey.gharbeia.net. 43200 IN CNAME fm2.gharbeia.net.dkim.fmhosted.com. fm3._domainkey.gharbeia.net. 43200 IN CNAME fm3.gharbeia.net.dkim.fmhosted.com. gharbeia.net. 1800 IN MX 10 in1-smtp.messagingengine.com. gharbeia.net. 1800 IN MX 20 in2-smtp.messagingengine.com. gharbeia.net. 1800 IN NS ns1.digitalocean.com. gharbeia.net. 1800 IN NS ns2.digitalocean.com. gharbeia.net. 1800 IN NS ns3.digitalocean.com. gharbeia.net. 3600 IN TXT v=spf1 include:spf.messagingengine.com ?all
TODO YubiKey FIPS (4 Series) Technical Manual – Yubico computer security
TODO GitHub - yaelwrites/Big-Ass-Data-Broker-Opt-Out-List computer
TODO SetupGuides/SecurePersonalComputer - Debian Wiki computer security
TODO npub.cash Bitcoin
TODO Discover OpenAI's assistants AI
TODO Platform Socialism books
TODO Spintronics Act One – Upper Story entertainment games
For Bouri and Tota
TODO [A] Change personal details with Bitstamp money
WAIT Cordoba vs DIRECT, LLC nancy money
programmatically delegated to Cordoba
<2024-05-17 Fri> CPT ID: 895 Passcode: K3FDZN Thank you! Your claim form has been received. Your confirmation number is D81D4B47
Please keep this number in your records as confirmation of your submission.
A confirmation email will be sent to your email account shortly.
TODO
Germany [5/12][41%]
NEXT Bank Statement ($50 per day)
DONE Health Insurance
TODO Hotel booking or invite
DONE Lease
- State "DONE" from "TODO" [2024-06-03 Mon 11:41]
DONE Tax Returns
- State "DONE" from "TODO" [2024-06-03 Mon 11:43]
TODO Business license
TODO Photo
TODO $100 cash
DONE Green card
- State "DONE" from "TODO" [2024-06-03 Mon 11:44]
TODO flight
TODO print
DONE [A] Germany visa appointment
SCHEDULED: <2024-06-06 Thu 08:00>
TODO Parents
Hosameddine Hussein Hussein Gharbeia 05.12.1940 Dakahliya Egyptian Male A30323464 31.03.2022 30.03.2029 Plastic Artist 24012051202715 5 ElZobaiby Street, Heliopolis, Cairo, Egypt 6056 Road 17, Moqattam 11585, Egypt married 14.08.1975 wedding 08.10.1975
Hussein Hussein Gharbeia 03.01.1917 Dakahliya Egyptian
AlSayyida Aldimiry 05.12.1912 Dakahliya Egyptian
Seham Ahmed Elsayed Hassan 20.06.1949 Cairo Egyptian Female A30323448 31.03.2022 30.03.2029 Home Maker 24906200101162 5 ElZobaiby Street, Heliopolis, Cairo, Egypt 6056 Road 17, Moqattam 11585, Egypt married 14.08.1975 wedding 08.10.1975
Ahmed Elsayed Hassan 06.01.1896 Cairo, Egypt
Naeema Mohamed Mostafa 26.06.1921 Cairo, Egypt
Rim Naguib 01.06.1981 Koepenicker Str. 10A 10997 Berlin rim.naguib@trafo-berlin.de 004915127950649
DONE Call Lorenzo
SCHEDULED: <2024-05-15 Wed 12:00>
TODO The black swan
The normal is often irrelevant "Opera" Some jobs are mildly scalable with talent, for example baking or medicine, where you still have to bake every loaf and treat every patient; others are extremely scalable. Authoring books was mildly scalable until the arrival of the printing press. Music was mildly scalable until records and radios appeared. Many jobs will undergo extreme scalability as AI arrives. Talent in film comes from success, not the other way around Linear progression is not the norm "Standing on one leg". People should be able to finish their point standing on one leg. This means the older you are, the more concise you need to be. "It is contagion that determines the fate of a theory in social science, not its validity". "By focusing on the true/false distinction…"
TODO Lnd wallet
lndhub://02d3ee6511a39e1c2572:57932e39e7d8cc504ffa@http://c4urmzyuxp574gywi4lxxl56iqowkr3wndboloklhze3kwz34ixznvqd.onion
DONE Brandon birthday
SCHEDULED: <2024-04-05 Fri 18:00-22:00>
TODO A's Kinklist
TODO Police incident # 2400076556
<2024-03-15 Fri>
TODO Smart notes 2.1
Develop a related notes feature
TODO Smart notes 2.1
The five steps
TODO How to take smart notes
Two methods: zettlekasten and GTD. I might add snowflake for fiction. These three are it. 1.4 Luhmann used two slip boxes: one bibliographic, the analogy is org-note, the other is main, the org-roam.
TODO Read Claude Shannon's masters thesis
DONE Lorenzo
SCHEDULED: <2024-03-12 Tue 14:00>
Check for the company GNSE, reseller of Hacking team. Gennaro Lina My name
TODO Review GTD
TODO Set up GTD archive location emacs
CNCL [#A] Khaled's wedding
SCHEDULED: <2024-04-27 Sat>
- State "CNCL" from "TODO" [2024-07-29 Mon 17:33]
CNCL Book train
- State "CNCL" from "TODO" [2024-07-29 Mon 17:32]
Daddy returned from his travels early but decided he wants to be home alone.
CNCL Book room
- State "CNCL" from "TODO" [2024-07-29 Mon 17:33]
DONE Kids passports
100, 160 for state department 35
NEXT Wyoming Corporate Services Inc. privacy
NEXT Cordoba v. DIRECT, LLC
Source: [2024-03-15 Fri], Thank you! Your claim form has been received. Your confirmation number is D81D4B47
Thank you! Your claim form has been received. Your confirmation number is D81D4B47 Please keep this number in your records as confirmation of your submission. A confirmation email will be sent to your email account shortly.
www.directvtcpaclassaction.com CPT ID 895 Passcode: K3FDZN
NEXT Nancy's Macbook Air encryption key
KC9W 7G8F T6Q2 9DB2 OGNX CLYH
Tablet pin 081837
Projects
TODO
Homelab [31/181] [17/29][58%] computer
TODO
[10/19] Proxmox
DONE Move to no-subrsciption repository and update
- State "DONE" from "TODO" [2023-08-18 Fri 14:14]
DONE Stop Proxmox enterprise subscription notification
- State "DONE" from "TODO" [2023-08-18 Fri 14:14]
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
DONE Create Cloud Image Templates
- State "DONE" from "TODO" [2024-05-12 Sun 19:52]
qm create 9000 --name Debian12CloudInit --net0 virtio,bridge=vmbr0
qm disk import 9000 debian-12-generic-amd64.qcow2 local-lvm
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0
qm set 9000 --ide2 local-lvm:cloudinit
qm set 9000 --boot c --bootdisk scsi0
qm set 9000 --serial0 socket --vga serial0
qm set 9000 --agent enabled=1 #optional but recommended
qm template 9000
Here are the details to the command as they appear:
- Create a new VM with ID 900 using VirtIO networking drivers
- Import the qcow Debian image as a disk to the new VM. The disk will be called local-lvm:vm-9500-disk-0
- Attach the imported disk as a VirtIO SCSI device to the VM.
- Attach a drive for the Cloud-Init config to the VM.
- Set the VM to boot from the imported disk image.
- Add a serial console to the VM, which is needed by OpenStack/ProxMox.
- Enable the qemu-guest-agent for the VM – this is an optional setting, but I do recommend it because it will be useful if you are going to be using this for something like Terraform later on to automate the creation of VMs.
- Convert the VM into a template.
DONE Update PVE templates
- State "DONE" from "TODO" [2023-08-18 Fri 15:29]
pveam update
DONE Download templates
- State "DONE" from "TODO" [2023-08-19 Sat 11:21]
DONE Configure Proxmox storage
- State "DONE" from "TODO" [2024-05-12 Sun 19:50]
DONE Setup SMART disk monitoring
- State "DONE" from "TODO" [2024-05-17 Fri 16:50]
TODO Turn on PCI passthrough
TODO /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
update-grub
TODO /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
TODO Reboot
TODO Setup VLAN
In Proxmox, Node>System>Network>vmbr0>edit>VLAN aware For each VM>Hardware>Network Devices>Edit>VLAN Tag
TODO Add NFS share
After you've created an NFS share, add it to Proxmox Datacenter>Storage>Add>NFS
TODO Schedule backups
Datacenter>Backup>Add
TODO Upload a KVM driver disk for Windows
TODO Setup email notifications
apt install -y libsasl2-modules mailutils
DONE
[2/2] General VM and LXC system setup
- State "DONE" from "TODO" [2023-08-31 Thu 10:22]
- State "DONE" from "TODO" [2023-08-30 Wed 21:06]
DONE Install requirements
- State "DONE" from "TODO" [2023-08-30 Wed 21:06]
- State "DONE" from "TODO" [2023-07-10 Mon 09:36]
apt-get install ca-certificates curl gnupg sudo rsync
DONE Add user
# Define variables for remote server and SSH key
REMOTE_SERVER="192.168.1.101"
SSH_KEY_PATH="~/.ssh/id_ed25519.pub"
USERNAME="amr"
# Connect to the remote server as root
ssh root@$REMOTE_SERVER << EOF
# Create a new user named "amr"
useradd -m $USERNAME
# Set the user's password
passwd $USERNAME
# Add the user to sudoers
usermod -aG sudo $USERNAME
# Create .ssh directory inside the user's home directory
mkdir -p /home/$USERNAME/.ssh
# Set the ownership and permissions for the .ssh directory
chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh
chmod 700 /home/$USERNAME/.ssh
# Copy the public key to the .ssh directory
cat << EOT >> /home/$USERNAME/.ssh/authorized_keys
$(cat $SSH_KEY_PATH)
EOT
# Set the ownership and permissions for the authorized_keys file
chown $USERNAME:$USERNAME /home/$USERNAME/.ssh/authorized_keys
chmod 600 /home/$USERNAME/.ssh/authorized_keys
EOF
| Linux | kubernetes-worker1 | 6.2.16-8-pve | #1 | SMP | PREEMPT_DYNAMIC | PMX | 6.2.16-8 | (2023-08-02T12:17Z) | x86_64 | |
| The | programs | included | with | the | Debian | GNU/Linux | system | are | free | software; |
| the | exact | distribution | terms | for | each | program | are | described | in | the |
| individual | files | in | /usr/share/doc/*/copyright. | |||||||
| Debian | GNU/Linux | comes | with | ABSOLUTELY | NO | WARRANTY, | to | the | extent | |
| permitted | by | applicable | law. |
TODO
[21/116] Containers and VMs
TODO
[16/25] Kubernetes
DONE Create one controller node and other worker nodes
- State "DONE" from "TODO" [2023-08-30 Wed 21:06]
- State "DONE" from "TODO" [2023-07-09 Sun 12:40]
- Controller node should have at least 2GB RAM (no swap) and 2 cores
- Worker nodes should have at least 1GB RAM (no swap) and 1 core
DONE Assign static IP to the nodes
- State "DONE" from "TODO" [2023-08-30 Wed 21:06]
- State "DONE" from "TODO" [2023-07-09 Sun 12:40]
Netplan example
network:
version: 2
ethernets:
eth0:
addresses: [10.10.10.213/24]
nameservers:
addresses: [10.10.10.1]
routes:
- to: default
via: 10.10.10.1
DONE Install containerd
- State "DONE" from "TODO" [2023-08-31 Thu 10:29]
- State "DONE" from "TODO" [2023-07-09 Sun 12:43]
sudo apt install containerd
sudo mkdir /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
nano /etc/containerd/config.toml
Within that file, find:
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
Underneath that, find the SystemdCgroup option and change it to true, which should look like this:
SystemdCgroup = true
DONE
[1/1] Disable swap
- State "DONE" from "TODO" [2023-08-31 Thu 10:30]
- State "DONE" from "TODO" [2023-07-09 Sun 12:44]
sudo swapoff -a
- State "DONE" from "TODO" [2023-07-09 Sun 12:44]
DONE Enable bridging
- State "DONE" from "TODO" [2023-08-31 Thu 10:32]
- State "DONE" from "TODO" [2023-07-09 Sun 12:45]
sudo nano /etc/sysctl.conf
Within that file, look for the following line:
#net.ipv4.ip_forward=1
Uncomment that line by removing the # symbol in front of it, which should make it look like this:
net.ipv4.ip_forward=1
Same for IPv6
#net.ipv6.conf.all.forwarding=1
changed to
net.ipv6.conf.all.forwarding=1
DONE Enable br_netfilter
- State "DONE" from "TODO" [2023-08-31 Thu 10:33]
- State "DONE" from "TODO" [2023-07-09 Sun 12:46]
sudo nano /etc/modules-load.d/k8s.conf
Add the following to that file (the file should actually be empty at first):
br_netfilter
DONE Reboot
- State "DONE" from "TODO" [2023-08-31 Thu 10:34]
- State "DONE" from "TODO" [2023-07-09 Sun 12:49]
sudo reboot
DONE
[3/3] Make Kubernetes run in LXC
- State "DONE" from "DONE" [2023-10-30 Mon 11:51]
- State "DONE" from "NEXT" [2023-10-30 Mon 11:26]
echo overlay >> /etc/modules
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
lxc.mount.auto: proc:rw sys:rw
Last versions of kubernetes requires also shared filesystem, so add into your /etc/rc.local
mount --make-rshared /
TODO
[4/9] Install Kubernetes
- State "DONE" from "TODO" [2023-08-31 Thu 10:39]
- State "DONE" from "TODO" [2023-07-09 Sun 12:53]
sudo apt install curl ca-certificates apt-transport-https sudo gnupg
- State "DONE" from "DONE" [2023-08-31 Thu 10:40]
- State "DONE" from "TODO" [2023-08-31 Thu 10:40]
- State "DONE" from "TODO" [2023-07-09 Sun 12:53]
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
- State "DONE" from "TODO" [2023-08-31 Thu 10:41]
- State "DONE" from "TODO" [2023-08-18 Fri 14:52]
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list && sudo apt update
- State "DONE" from "TODO" [2023-08-31 Thu 10:43]
- State "DONE" from "TODO" [2023-08-18 Fri 14:52]
sudo apt install kubeadm kubectl kubelet
sudo kubeadm init --control-plane-endpoint=191.168.1.100 --node-name kubernetes-control --pod-network-cidr=192.168.0.0/16
After the initialization finishes, you should see at least four commands printed within the output.
Three commands will be shown in the output from the previous command, and these commands will give our user account access to manage our cluster. Here are those related commands to save you from having to search the output for them:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/
Documentation/kube-flannel.yml
kubectl cluster-info
If kubectl cluster-info returns the url response but you can't access your cluster, to check whether it is configured properly, use:
kubectl cluster-info dump
apt install bash-completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
If you have an alias for kubectl, you can extend shell completion to work with that alias:
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
TODO Adding nodes
The join command, which you will receive from the output once you initialize the cluster, can be ran on your node instances now to get them joined to the cluster. The following command will help you monitor which nodes have been added to the controller (it can take several minutes for them to appear):
kubectl get nodes
If for some reason the join command has expired, the following command will provide you with a new one:
kubeadm token create --print-join-command
TODO Deploying a container within our cluster
Create the file pod.yml with the following contents:
apiVersion: v1
kind: Pod
metadata:
Chapter 18 25
name: nginx-example
labels:
app: nginx
spec:
containers:
- name: nginx
image: linuxserver/nginx
ports:
- containerPort: 80
name: "nginx-http"
Apply the file with the following command:
kubectl apply -f pod.yml
You can check the status of this deployment with the following command:
kubectl get pods
TODO Creating a NodePort Service
Setting up a NodePort service is one of the methods we can use to be able to access the container from outside the pod network. To set this up, first create the following file as service-nodeport.yml:
apiVersion: v1
kind: Service
metadata:
name: nginx-example
spec:
type: NodePort
ports:
- name: http
port: 80
nodePort: 30080
targetPort: nginx-http
selector:
app: nginx
You can apply that file with the following command:
kubectl apply -f service-nodeport.yml
To check the status of the service deployment, you can use the following command:
kubectl get service
TODO
[0/5] Docker
TODO Add Docker's GPG key
- State "DONE" from "TODO" [2023-07-10 Mon 09:42]
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
TODO Add repository
- State "DONE" from "TODO" [2023-07-10 Mon 09:42]
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
TODO Update repository
- State "DONE" from "TODO" [2023-07-10 Mon 09:44]
apt update
TODO Install Docker
- State "DONE" from "TODO" [2023-07-10 Mon 09:44]
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
TODO Add to docker group
- State "DONE" from "TODO" [2023-07-10 Mon 09:54]
usermod -aG docker amr
TODO
[3/33] Containers
TODO Rancher
TODO Pfsense
TODO Reverse proxy
TODO Auth proxy
TODO Pihole
TODO TrueNAS
TODO Fediverse
https://mastodon.lol/@evacide https://infosec.exchange/@dymaxion https://mastodon.social/@smari https://mstdn.social/@eldahshan https://lor.sh/@hesham https://mastodon.online/@nariology https://mstdn.social/@lucyellinson https://mastodon.world/@rgrundmann https://mastodon.online/@harikunzru
https://graz.social/@publicvoit https://mastodon.social/@davew https://mastodon.social/@esqueer https://mastodon.online/@pkrugman https://mastodon.social/@iang_fc https://tilde.zone/@ftrain/ https://mastodon.social/@mmasnick
CLOSED: [2023-02-16 Thu 21:40]
TODO Install anki-sync-server learning
"A personal Anki sync server (so you can sync against your own server rather than AnkiWeb)"
TODO Install anki-connect learning
"Anki plugin to expose a remote API for creating flash cards."
TODO Install Audiobookshelf
/etc/default/audiobookshelf
METADATA_PATH=/usr/share/audiobookshelf/metadata
CONFIG_PATH=/usr/share/audiobookshelf/config
FFMPEG_PATH=/usr/lib/audiobookshelf-ffmpeg/ffmpeg
FFPROBE_PATH=/usr/lib/audiobookshelf-ffmpeg/ffprobe
TONE_PATH=/usr/lib/audiobookshelf-ffmpeg/tone
PORT=13378
TODO Privoxy
TODO Ansible
TODO Reporting
TODO gharbeia.net project
TODO rimenaguib.org project
CNCL Bergman Brief
-
State "CNCL" from [2024-02-21 Wed 12:00] \\
CNCL +Install Wallabag read later service on server
CLOSED: [2023-07-27 Thu 23:08]
- State "TODO" from "" [2022-10-07 Fri]
DONE
[1/1] Freedombox
- State "DONE" from "TODO" [2023-08-19 Sat 11:19]
DONE [A] Freedombox Backup
- State "TODO" from "" [2021-11-19 Fri]
- State "DONE" from "TODO" [2021-12-10 Fri]
TODO
[0/17] Umbrel
qm importdisk YOUR_VM_ID umbrelos-amd64-usb-installer.img YOUR STORAGE
apt install samba-client cifs-utils psmisc
TODO Bitcoin
TODO Debian Desktop
TODO Windows 10
Windows 10 Home key BJG9Q MNYDM 9RDQ7 9XJ4F Q9MK7
TODO Mac OS
TODO Mastodon configs
LOCAL_DOMAIN=social.gharbeia.net SINGLE_USER_MODE=true SECRET_KEY_BASE=9c7367324c49bc94c07587a659de0b08efb0fbc059b3f3b4225d5d803d11c45d5946a7a0e61e2d78a564d18922545cef573ad539adcc903ec2f869cd0bf75cdb OTP_SECRET=7751729fe3c8576b07b0d5d4aa972f3af87d4d953014359d5f56930f355fe3e3a73beb82a695788796f8ffac131de9b939c424f8cf219af2b2202f9ce2658c85 VAPID_PRIVATE_KEY=v1rElQ18AFk73Yhx47S2b1rzjhzJlTt17D1Waj-1HkU= VAPID_PUBLIC_KEY=BDnLSXYkDGHXFl86i5oWl9NMK7uTzeSAzBroC4PS0H-uGrGqeyapd2PoLlWt_UnoWPjHhPV4dhkWh5nG1qU_epg= DB_HOST=/var/run/postgresql DB_PORT=5432 DB_NAME=mastodon_production DB_USER=mastodon DB_PASS="j;{TZ]G=\"E\'~~bC:E>t;2e[}E" REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD= SMTP_SERVER=smtp.mailgun.org SMTP_PORT=587 SMTP_LOGIN=postmaster@sandboxbf29c666842548d7bf8080a9d85ea700.mailgun.org SMTP_PASSWORD=d20c7990ec1631762ef3a0c5e5a36ea2-1d8af1f4-fcf8985f SMTP_AUTH_METHOD=plain SMTP_OPENSSL_VERIFY_MODE=none SMTP_ENABLE_STARTTLS=auto SMTP_FROM_ADDRESS='Mastodon <notifications@social.gharbeia.net>'
TODO How to Set Up Docker in Proxmox using an LXC/VM (2024)
This is how Portainer is exposed on the LXC host.
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
TODO Setup ZFS on Proxmox
TODO khaledfahmy.org
خواطر عن مصر والشرق الأوسط والتاريخ
TODO compose.yml
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: t1)~Bt~1uwmwe?pq}sZj%b!t8
WORDPRESS_DB_NAME: khaledfahmy_db
volumes:
- wordpress:/var/www/html
- ./wordpress.ini:/usr/local/etc/php/conf.d/wordpress.ini
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: khaledfahmy_db
MYSQL_USER: mysql
MYSQL_PASSWORD: t1)~Bt~1uwmwe?pq}sZj%b!t8
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
TODO wordpress.ini
file_uploads = On
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 1000
TODO Cloudflare Zone API
kOMRnUfC8BxotLwPygvlPQecZePgHReH9DdhrW_j
TODO 7 watts idle on Intel 12th/13th gen: the foundation for building a low power server/NAS | mattgadient.com
TODO GitHub - iyaja/llama-fs: A self-organizing file system with llama 3
TODO Move data from 4TB drive to 8TB barrel
[2024-05-01 Wed 09:30]
| lilitop | barrel | |
| 287GB | 11GB | audio |
| 86GB | 0 | books |
| 367GB | 0 | documents |
| 0 | 431GB | in |
| 146GB | 0 | maps |
| 0 | 883GB | music |
| 94GB | 0 | music-store |
| 168GB | 0 | src |
| 478MB | 0 | torrent |
| 42GB | 42GB | vault |
| 0 | 5.2TB | video |
| 538MB | 538MB | physibles.zip |
| 1.2TB | 6.5TB | Total |
TODO Open WebUI AI
TODO How I manage LVMs on home server
The 4TB drive is, sadly, in LVM. I need to change this since the hardware only supports one driver. Meanwhile, this is how I add the LVM to Umbrel
TODO To mount the LVM on Proxmox
vgscan
vgchange -ay library
lvs
mkdir /media/library
mount /dev/library/vm-100-disk-0 /media/library/
TODO To mount /media/library on Umbrel
pct set 111 -mp0 /media/library,mp=/library
TODO Docker data are in /rpool/data/subvol-111-disk-0/root/umbrel/app-data
TODO Nextcloud AOL
services:
nextcloud-aio-mastercontainer:
image: nextcloud/all-in-one:latest
init: true
restart: always
container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed as otherwise AIO will not work correctly
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed as otherwise the built-in backup solution will not work
- /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'WATCHTOWER_DOCKER_SOCKET_PATH'!
ports:
- 80:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
- 8080:8080
- 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# environment: # Is needed when using any of the options below
# AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
# APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# APACHE_IP_BINDING: 127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# BORG_RETENTION_POLICY: --keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
# COLLABORA_SECCOMP_DISABLED: false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
# NEXTCLOUD_DATADIR: /mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. ⚠️⚠️⚠️ Warning: do not set or adjust this value after the initial Nextcloud installation is done! See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
# NEXTCLOUD_MOUNT: /mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
# NEXTCLOUD_UPLOAD_LIMIT: 10G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud
# NEXTCLOUD_MAX_TIME: 3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
# NEXTCLOUD_MEMORY_LIMIT: 512M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
# NEXTCLOUD_TRUSTED_CACERTS_DIR: /path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca
# NEXTCLOUD_STARTUP_APPS: deck twofactor_totp tasks calendar contacts notes # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
# NEXTCLOUD_ADDITIONAL_APKS: imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container
# NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
# NEXTCLOUD_ENABLE_DRI_DEVICE: true # This allows to enable the /dev/dri device in the Nextcloud container. ⚠️⚠️⚠️ Warning: this only works if the '/dev/dri' device is present on the host! If it should not exist on your host, don't set this to true as otherwise the Nextcloud container will fail to start! See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
# NEXTCLOUD_KEEP_DISABLED_APPS: false # Setting this to true will keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed. See https://github.com/nextcloud/all-in-one#how-to-keep-disabled-apps
# TALK_PORT: 3478 # This allows to adjust the port that the talk container is using. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port
# WATCHTOWER_DOCKER_SOCKET_PATH: /var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
# networks: # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file
# - nextcloud-aio # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file
# security_opt: ["label:disable"] # Is needed when using SELinux
# # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# # You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588
# caddy:
# image: caddy:alpine
# restart: always
# container_name: caddy
# volumes:
# - ./Caddyfile:/etc/caddy/Caddyfile
# - ./certs:/certs
# - ./config:/config
# - ./data:/data
# - ./sites:/srv
# network_mode: "host"
volumes: # If you want to store the data on a different drive, see https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work
# # Optional: If you need ipv6, follow step 1 and 2 of https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md first and then uncomment the below config in order to activate ipv6 for the internal nextcloud-aio network.
# # Please make sure to uncomment also the networking lines of the mastercontainer above in order to actually create the network with docker-compose
# networks:
# nextcloud-aio:
# name: nextcloud-aio # This line is not allowed to be changed as otherwise the created network will not be used by the other containers of AIO
# driver: bridge
# enable_ipv6: true
# ipam:
# driver: default
# config:
# - subnet: fd12:3456:789a:2::/64 # IPv6 subnet to use
TODO Mastodon
services:
mastodon:
image: lscr.io/linuxserver/mastodon:latest
container_name: mastodon
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- LOCAL_DOMAIN=example.com
- REDIS_HOST=redis
- REDIS_PORT=6379
- DB_HOST=db
- DB_USER=mastodon
- DB_NAME=mastodon
- DB_PASS=mastodon
- DB_PORT=5432
- ES_ENABLED=false
- SECRET_KEY_BASE=
- OTP_SECRET=
- VAPID_PRIVATE_KEY=
- VAPID_PUBLIC_KEY=
- SMTP_SERVER=mail.example.com
- SMTP_PORT=25
- SMTP_LOGIN=
- SMTP_PASSWORD=
- SMTP_FROM_ADDRESS=notifications@example.com
- S3_ENABLED=false
- WEB_DOMAIN=mastodon.example.com #optional
- ES_HOST=es #optional
- ES_PORT=9200 #optional
- ES_USER=elastic #optional
- ES_PASS=elastic #optional
- S3_BUCKET= #optional
- AWS_ACCESS_KEY_ID= #optional
- AWS_SECRET_ACCESS_KEY= #optional
- S3_ALIAS_HOST= #optional
- SIDEKIQ_ONLY=false #optional
- SIDEKIQ_QUEUE= #optional
- SIDEKIQ_DEFAULT=false #optional
- SIDEKIQ_THREADS=5 #optional
- DB_POOL=5 #optional
- NO_CHOWN= #optional
volumes:
- /path/to/appdata/config:/config
ports:
- 80:80
- 443:443
restart: unless-stopped
TODO Cloudflared tunnel
networks:
frontend:
external: true
backend:
external: true
services:
cloudflaretunnel:
container_name: cloudflaretunnel
image: cloudflare/cloudflared
restart: unless-stopped
environment:
- TUNNEL_TOKEN=eyJhIjoiYWY0Y2RkYWM0N2UwMDFmZDZkNWMyMGFjNmRkZGFkM2QiLCJ0IjoiYTNiMWQ3MzEtZmVmNy00NDcxLTk5ZjItNzRlYzVlYmM4OGQ4IiwicyI6IllUaGpZbUV3TURNdFpEUmhaaTAwWldZMExXSmpPVEV0WlRBellXRmhZMkUyTUdFMCJ9
command: tunnel --no-autoupdate run
networks:
- frontend
- backend
TODO fishere
TODO compose.yaml
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8081:81
volumes:
- wordpress:/var/www/html
env_file:"fishere.env"
db:
image: mysql:8.0
restart: always
volumes:
- db:/var/lib/mysql
env_file:"fishere.env"
volumes:
wordpress:
db:
TODO fishere.env
WORDPRESS_DB_HOST=db
WORDPRESS_DB_USER=mysql
WORDPRESS_DB_PASSWORD=t1)~Bt~1uwmwe?pq}sZj%b!t8
WORDPRESS_DB_NAME=fishere_db
MYSQL_DATABASE=fishere_db
MYSQL_USER=mysql
MYSQL_PASSWORD=t1)~Bt~1uwmwe?pq}sZj%b!t8
MYSQL_RANDOM_ROOT_PASSWORD='1'
TODO Configure ODMPY download folder name pattern to suit Audiobookshelf
TODO ArchiveBox | 🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more… archive computers
TODO Tube Archivist computers
TODO Homebox computers
Homebox is the inventory and organization system built for the Home User! With a focus on simplicity and ease of use, Homebox is the perfect solution for your home inventory, organization, and management needs. While developing this project I've tried to keep the following principles in mind
TODO Khue's Homelab
TODO Amazing script for CPU Temperature Monitoring on Proxmox | Sluijsjes Tech Lab homelab homelab
TODO Nostr Apps
TODO Petals: decentralized inference and finetuning of large language models
P2P network for inference on large LLMs above 100B tokens
TODO
losgarcias [6/8] computer
DONE [A] Renew letsencrypt
SCHEDULED: <2021-01-18 Mon>
- State "TODO" from "" [2021-10-20 Wed]
- State "DONE" from "TODO" [2022-05-06 Fri]
DONE [B] header and sharing buttons placement for fishere.net
- State "TODO" from "" [2019-02-20] Fix
- State "DONE" from "TODO" [2019-02-25 Mon]
DONE [B] Fix email list encoding in +khaledfahmy.org
- State "TODO" from "" [2018-07-18 Wed]
- State "DONE" from "TODO" [2019-03-15 Fri]
DONE [B] confirmation email on +khaledfahmy.org
- State "TODO" from "" [2018-07-18] Tes
- State "DONE" from "TODO" [2019-03-15 Fri]
DONE [B] comment box before comments in +khaledfahmy.org
- State "TODO" from "" [2018-07-18 Wed]
- State "DONE" from "TODO" [2019-03-15 Fri]
DONE [A] +backup DigitalOcean
SCHEDULED: <2023-07-27 Thu .+1m>
- State "TODO" from "" [2019-10-01 Tue]
- State "DONE" from "TODO" [2021-12-10 Fri]
TODO Localise losgarcias
TODO DigitalOcean LAMP steps
https://www.digitalocean.com/docs/networking/dns/how-to/add-domains/ https://www.digitalocean.com/docs/networking/dns/how-to/manage-records/ https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-on-debian-10 https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-10 https://www.digitalocean.com/community/tutorials/how-to-install-phpmyadmin-from-source-debian-10 (up to step 4) https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-lamp-on-debian-10 https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands
TODO
lilitop [19/216] computer
NEXT Install Debian
DONE Enable Debian contrib and non-free-firmware repositories
- State "DONE" from [2024-05-18 Sat 11:27]
sudo nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ bookworm main contrib non-free-firmware
DONE Disable Debian Autosuspend
- State "DONE" from "TODO" [2024-06-23 Sun 10:19]
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
DONE Encrypted home
- State "DONE" from "NEXT" [2024-02-22 Thu 15:05]
sudo modprobe ecryptfs cryptsetup
ecryptfs
As root:
ecryptfs-migrate-home -u <user>
Must login as user before reboot
ecryptfs-unwrap-passphrase
DONE Move files
DONE .profile
The pip and pipx bash completion parts cause Gnome login to fail and therefore it doesn't allow decrypting home/amr/
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
#export GNUPGHOME=~/.gnupg/trezor
#export INFOPATH="~/library/info"
export CDPATH=~/org
export OPENAI_API_KEY=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
#export OPENAI_API_KEY=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
export OPENAI_API_KEY_PATH=
export OPENAI_ORGANIZATION_ID=org-qTZ6qXaAYRwZ389yjr6jV1tG
export OPENAI_MODEL_NAME=gpt-4
DONE .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
,*i*) ;;
,*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
,*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -lhA'
alias la='ls -A'
alias l='ls -CF'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -u)/bus"
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
xmodmap ~/.Xmodmap
# EAT integration for Emacs
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && \
source "$EAT_SHELL_INTEGRATION_DIR/bash"
DONE Emacs Emacs
DONE emacsclient.desktop
[Desktop Entry]
Name=Emacs (Client)
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=emacsclient -c -a "emacs" %F
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;Utility;
StartupWMClass=Emacs
[Desktop Entry]
Name=Emacs (Client)
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=sh -c "if [ -n \\"\\$*\\" ]; then exec emacsclient --alternate-editor= --display=\\"\\$DISPLAY\\" \\"\\$@\\"; else exec emacsclient --alternate-editor= --create-frame; fi" sh %F
Icon=emacs
Type=Application
DONE org-protocol.desktop
[Desktop Entry]
Name=Emacs (Client)
GenericName=Text Editor
Comment=Handle Org protocol URI
MimeType=x-scheme-handler/org-protocol;
Exec=sh -c "exec emacsclient --alternate-editor= --create-frame" sh %u
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupNotify=true
StartupWMClass=Emacs
Keywords=emacsclient;org-protocol
enable by running
update-desktop-database ~/.local/share/applications/
DONE Software install
- State "DONE" from "NEXT" [2024-02-22 Thu 14:51]
#!/bin/bash
# Step 1: Add repositories and keys
#sudo add-apt-repository -y ppa:ubuntugis/ppa
# Step 2: Update repositories and upgrade system
sudo apt-get update -y && sudo apt-get upgrade -y
# Step 3: Install software
sudo apt install wget bash-completion pass pass-extension-otp webext-browserpass curl wipe mplayer gprename gimp gramps solfege soundconverter audacity flac lame picard fonts-hosny-amiri fonts-hosny-thabit hugo calibre syncthing emacs sqlite3 notmuch gcc python3-pip python3-venv pipx kdeconnect cmus httrack soundconverter zbar-tools tilix gnuradio hunspell openvpn network-manager-openvpn network-manager-openvpn-gnome xdotool sudo rsync ecryptfs-utils lsof texlive-latex-extra emacs-common-non-dfsg libsqlite3-dev ttf-mscorefonts-installer
#sudo snap install ipfs omega-cat ymuse #x86
pipx install shell-gpt openai onlykey openplayground trezor ospeak youtube-dl
#curl -fsSL https://deb.nodesource.com/setup_19.x | bash - && sudo apt-get install -y nodejs
# Step 4: Reboot
#sudo reboot
DONE Save new ecryptfs passphrase in pass
DONE Signal
- State "DONE" from "TODO" [2024-06-23 Sun 10:15]
#!/bin/bash
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg;
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
wget -O signal-desktop.sources https://updates.signal.org/static/desktop/apt/signal-desktop.sources;
cat signal-desktop.sources | sudo tee /etc/apt/sources.list.d/signal-desktop.sources > /dev/null
sudo apt update && sudo apt install signal-desktop
DONE Zotero
- State "DONE" from "TODO" [2024-06-23 Sun 10:18]
#!/bin/bash
wget -qO- https://raw.githubusercontent.com/retorquere/zotero-deb/master/install.sh | sudo bash
sudo apt update
sudo apt install zotero
DONE beancount
pipx install beancount
DONE beancount-import
pipx install beancount-import
DONE finance-DL
pipx install finance-dl
TODO Picard
$noop(<!-- MusicBrainz Picard 1.2 naming script -->)
$noop(<!-- Version 0.2 by rfletch12 -->)
$noop(<!-- Initialze character replacements -->)
$replace($noop(?)
$replace($noop(:)
$replace($noop(")
$replace($noop(|)
$replace($noop(<)
$replace($noop(>)
$replace($noop(.)
$replace($noop( ⁄ )
$noop(<!--Determine File Type -->)
%_extension%/
$noop(<!-- Determine Release Type -->)
$noop(<!-- Creates top level folder structure -->)
$noop(<!-- No MBID / Spoken Word / Soundtracks / Tribute / Compilations / Promo's / Incomplete Tracks / Artists -->)
$if2(
$if($eq($len(%musicbrainz_albumid%),0),No MBID/$if2(%albumartist%,%artist%),),
$if($eq(%releasetype%,spokenword),Spoken Word/$if2(%albumartist%,%artist%),),
$if($eq(%releasetype%,audiobook),Spoken Word/$if2(%albumartist%,%artist%),),
$if($eq(%releasetype%,interview),Spoken Word/$if2(%albumartist%,%artist%),),
$if($eq(%releasetype%,album; soundtrack),Soundtracks/,),
$if($and($or($eq(%releasetype%,album; compilation),$or($eq(%releasetype%,album),$eq(%releasetype%,compilation))),$eq(%albumartist%,Various Artists)),Compilations/,),
$if($in(%album%,Promo Only),Promo Only/,),
$if($lt($matchedtracks(),%totaltracks%),Incomplete Releases/$if2(%albumartist%,%artist%),$if2(Artists/$if2(%albumartist%,%artist%)))
)/
$noop(<!-- Determine album Folder Name -->)
$noop(<!-- Creates next hiearchy folder structure based on release status, date, release type and 1album name -->)
$noop(<!-- Creates next hiearchy folder structure based on date, media type, country, track count, and album name -->)
$if2($left(%originaldate%,4) )$replace(%album%,:,) [$if2(%releasestatus% )$if2(%releasetype%)] [$if2(%releasecountry%)$if2($left(%date%,4))$if2($replace(%media%,",))]
/
$noop(<!-- Determine file name -->)
$noop(<!-- Creates filename string based on disc#, track#, and song title, appends artist if a compilation -->)
$if($gt(%totaldiscs%,1),$num(%discnumber%,2)-,)$num(%tracknumber%,2)-%title% $if($eq(%albumartist%,Various Artists), \(%artist%\),)
$noop(<!-- Perform character replacements -->)
,>,\))
,<,\()
,|,)
,",)
,:, -)
,?,)
,.,)
, ⁄ ,-)
TODO Emacs as daemon
- State "DONE" from "NEXT" [2024-02-27 Tue 20:06]
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure
[Install]
WantedBy=default.target
Enable by running
systemctl enable --user emacs
systemctl start --user emacs
TODO CQRLOG
#!/bin/bash
sudo add-apt-repository ppa:ok2cqr/ppa
sudo apt-get update
sudo apt-get install cqrlog
TODO Element
#!/bin/bash
sudo apt install -y wget apt-transport-https
sudo wget -O /usr/share/keyrings/element-io-archive-keyring.gpg https://packages.element.io/debian/element-io-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian/ default main" | sudo tee /etc/apt/sources.list.d/element-io.list
sudo apt update
sudo apt install element-desktop
TODO FreeTubeApp
#!/bin/bash
## From https://github.com/FreeTubeApp/FreeTube/wiki/Environment-Setup-and-Packaging
#cd src/git/github.com/FreeTubeApp/FreeTube
#npm install
sudo apt install flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
TODO Bitcoin Full Node
#!/bin/sh
###############################################################################
#
# install-full-node.sh
#
# This is the install script for Bitcoin full node based on Bitcoin Core.
#
# This script attempts to make your node automatically reachable by other nodes
# in the network. This is done by using uPnP to open port 8333 on your router
# to accept incoming connections to port 8333 and route the connections to your
# node running inside your local network.
#
# For security reason, wallet functionality is not enabled by default.
#
# Supported OS: Linux, Mac OS X, BSD, Windows (Windows Subsystem for Linux)
# Supported platforms: x86, x86_64, ARM
#
# Usage:
# Open your terminal and type:
#
# curl https://bitnodes.io/install-full-node.sh | sh
#
# Bitcoin Core will be installed using binaries provided by bitcoin.org.
#
# If the binaries for your system are not available, the installer will attempt
# to build and install Bitcoin Core from source.
#
# All files will be installed into $HOME/bitcoin-core directory. Layout of this
# directory after the installation is shown below:
#
# Source files:
# $HOME/bitcoin-core/bitcoin/
#
# Binaries:
# $HOME/bitcoin-core/bin/
#
# Configuration file:
# $HOME/bitcoin-core/.bitcoin/bitcoin.conf
#
# Blockchain data files:
# $HOME/bitcoin-core/.bitcoin/blocks
# $HOME/bitcoin-core/.bitcoin/chainstate
#
# Need help? Contact info@bitnodes.io
#
###############################################################################
REPO_URL="https://github.com/bitcoin/bitcoin.git"
# See https://github.com/bitcoin/bitcoin/tags for latest version.
VERSION=23.0
TARGET_DIR=$HOME/bitcoin-core
PORT=8333
BUILD=0
UNINSTALL=0
BLUE='\033[94m'
GREEN='\033[32;1m'
YELLOW='\033[33;1m'
RED='\033[91;1m'
RESET='\033[0m'
ARCH=$(uname -m)
SYSTEM=$(uname -s)
MAKE="make"
if [ "$SYSTEM" = "FreeBSD" ]; then
MAKE="gmake"
fi
SUDO=""
usage() {
cat <<EOF
This is the install script for Bitcoin full node based on Bitcoin Core.
Usage: $0 [-h] [-v <version>] [-t <target_directory>] [-p <port>] [-b] [-u]
-h
Print usage.
-v <version>
Version of Bitcoin Core to install.
Default: $VERSION
-t <target_directory>
Target directory for source files and binaries.
Default: $HOME/bitcoin-core
-p <port>
Bitcoin Core listening port.
Default: $PORT
-b
Build and install Bitcoin Core from source.
Default: $BUILD
-u
Uninstall Bitcoin Core.
EOF
}
print_info() {
printf "$BLUE$1$RESET\n"
}
print_success() {
printf "$GREEN$1$RESET\n"
sleep 1
}
print_warning() {
printf "$YELLOW$1$RESET\n"
}
print_error() {
printf "$RED$1$RESET\n"
sleep 1
}
print_start() {
print_info "Start date: $(date)"
}
print_end() {
print_info "\nEnd date: $(date)"
}
print_readme() {
cat <<EOF
# README
To stop Bitcoin Core:
cd $TARGET_DIR/bin && ./stop.sh
To start Bitcoin Core again:
cd $TARGET_DIR/bin && ./start.sh
To use bitcoin-cli program:
cd $TARGET_DIR/bin && ./bitcoin-cli -conf=$TARGET_DIR/.bitcoin/bitcoin.conf getnetworkinfo
To view Bitcoin Core log file:
tail -f $TARGET_DIR/.bitcoin/debug.log
To uninstall Bitcoin Core:
./install-full-node.sh -u
To uninstall Bitcoin Core without a local copy of the install script:
sh <( curl -Ls https://bitnodes.io/install-full-node.sh ) -u
EOF
}
program_exists() {
type "$1" > /dev/null 2>&1
return $?
}
create_target_dir() {
if [ ! -d "$TARGET_DIR" ]; then
print_info "\nCreating target directory: $TARGET_DIR"
mkdir -p $TARGET_DIR
fi
}
init_system_install() {
if [ $(id -u) -ne 0 ]; then
if program_exists "sudo"; then
SUDO="sudo"
print_info "\nInstalling required system packages.."
else
print_error "\nsudo program is required to install system packages. Please install sudo as root and rerun this script as normal user."
exit 1
fi
fi
}
install_miniupnpc() {
print_info "Installing miniupnpc from source.."
rm -rf miniupnpc-2.0 miniupnpc-2.0.tar.gz &&
wget -q http://miniupnp.free.fr/files/download.php?file=miniupnpc-2.0.tar.gz -O miniupnpc-2.0.tar.gz && \
tar xzf miniupnpc-2.0.tar.gz && \
cd miniupnpc-2.0 && \
$SUDO $MAKE install > build.out 2>&1 && \
cd .. && \
rm -rf miniupnpc-2.0 miniupnpc-2.0.tar.gz
}
install_debian_build_dependencies() {
$SUDO apt-get update
$SUDO apt-get install -y \
automake \
autotools-dev \
build-essential \
curl \
git \
libboost-all-dev \
libevent-dev \
libminiupnpc-dev \
libssl-dev \
libtool \
pkg-config
}
install_fedora_build_dependencies() {
$SUDO dnf install -y \
automake \
boost-devel \
curl \
gcc-c++ \
git \
libevent-devel \
libtool \
miniupnpc-devel \
openssl-devel
}
install_centos_build_dependencies() {
$SUDO yum install -y \
automake \
boost-devel \
curl \
gcc-c++ \
git \
libevent-devel \
libtool \
openssl-devel
install_miniupnpc
echo '/usr/lib' | $SUDO tee /etc/ld.so.conf.d/miniupnpc-x86.conf > /dev/null && $SUDO ldconfig
}
install_archlinux_build_dependencies() {
$SUDO pacman -S --noconfirm \
automake \
boost \
curl \
git \
libevent \
libtool \
miniupnpc \
openssl
}
install_alpine_build_dependencies() {
$SUDO apk update
$SUDO apk add \
autoconf \
automake \
boost-dev \
build-base \
curl \
git \
libevent-dev \
libtool \
openssl-dev
install_miniupnpc
}
install_mac_build_dependencies() {
if ! program_exists "gcc"; then
print_info "When the popup appears, click 'Install' to install the XCode Command Line Tools."
xcode-select --install
fi
if ! program_exists "brew"; then
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi
brew install \
--c++11 \
automake \
boost \
libevent \
libtool \
miniupnpc \
openssl \
pkg-config
}
install_freebsd_build_dependencies() {
$SUDO pkg install -y \
autoconf \
automake \
boost-libs \
curl \
git \
gmake \
libevent2 \
libtool \
openssl \
pkgconf \
wget
install_miniupnpc
}
install_build_dependencies() {
init_system_install
case "$SYSTEM" in
Linux)
if program_exists "apt-get"; then
install_debian_build_dependencies
elif program_exists "dnf"; then
install_fedora_build_dependencies
elif program_exists "yum"; then
install_centos_build_dependencies
elif program_exists "pacman"; then
install_archlinux_build_dependencies
elif program_exists "apk"; then
install_alpine_build_dependencies
else
print_error "\nSorry, your system is not supported by this installer."
exit 1
fi
;;
Darwin)
install_mac_build_dependencies
;;
FreeBSD)
install_freebsd_build_dependencies
;;
*)
print_error "\nSorry, your system is not supported by this installer."
exit 1
;;
esac
}
build_bitcoin_core() {
cd $TARGET_DIR
if [ ! -d "$TARGET_DIR/bitcoin" ]; then
print_info "\nDownloading Bitcoin Core source files.."
git clone --quiet $REPO_URL
fi
# Tune gcc to use less memory on single board computers.
cxxflags=""
if [ "$SYSTEM" = "Linux" ]; then
ram_kb=$(grep MemTotal /proc/meminfo | awk '{print $2}')
if [ $ram_kb -lt 1500000 ]; then
cxxflags="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
fi
fi
print_info "\nBuilding Bitcoin Core v$VERSION"
print_info "Build output: $TARGET_DIR/bitcoin/build.out"
print_info "This can take up to an hour or more.."
rm -f build.out
cd bitcoin &&
git fetch > build.out 2>&1 &&
git checkout "v$VERSION" 1>> build.out 2>&1 &&
git clean -f -d -x 1>> build.out 2>&1 &&
./autogen.sh 1>> build.out 2>&1 &&
./configure \
CXXFLAGS="$cxxflags" \
--without-gui \
--with-miniupnpc \
--disable-wallet \
--disable-tests \
--enable-upnp-default \
1>> build.out 2>&1 &&
$MAKE 1>> build.out 2>&1
if [ ! -f "$TARGET_DIR/bitcoin/src/bitcoind" ]; then
print_error "Build failed. See $TARGET_DIR/bitcoin/build.out"
exit 1
fi
sleep 1
$TARGET_DIR/bitcoin/src/bitcoind -? > /dev/null
retcode=$?
if [ $retcode -ne 1 ]; then
print_error "Failed to execute $TARGET_DIR/bitcoin/src/bitcoind. See $TARGET_DIR/bitcoin/build.out"
exit 1
fi
}
get_bin_url() {
url="https://bitcoincore.org/bin/bitcoin-core-$VERSION"
case "$SYSTEM" in
Linux)
if program_exists "apk"; then
echo ""
elif [ "$ARCH" = "armv7l" ]; then
url="$url/bitcoin-$VERSION-arm-linux-gnueabihf.tar.gz"
echo "$url"
else
url="$url/bitcoin-$VERSION-$ARCH-linux-gnu.tar.gz"
echo "$url"
fi
;;
Darwin)
url="$url/bitcoin-$VERSION-osx64.tar.gz"
echo "$url"
;;
FreeBSD)
echo ""
;;
*)
echo ""
;;
esac
}
download_bin() {
checksum_url="https://bitcoincore.org/bin/bitcoin-core-$VERSION/SHA256SUMS"
cd $TARGET_DIR
rm -f bitcoin-$VERSION.tar.gz checksum.asc
print_info "\nDownloading Bitcoin Core binaries.."
if program_exists "wget"; then
wget -q "$1" -O bitcoin-$VERSION.tar.gz &&
wget -q "$checksum_url" -O checksum.asc &&
mkdir -p bitcoin-$VERSION &&
tar xzf bitcoin-$VERSION.tar.gz -C bitcoin-$VERSION --strip-components=1
elif program_exists "curl"; then
curl -s "$1" -o bitcoin-$VERSION.tar.gz &&
curl -s "$checksum_url" -o checksum.asc &&
mkdir -p bitcoin-$VERSION &&
tar xzf bitcoin-$VERSION.tar.gz -C bitcoin-$VERSION --strip-components=1
else
print_error "\nwget or curl program is required to continue. Please install wget or curl as root and rerun this script as normal user."
exit 1
fi
if program_exists "shasum"; then
checksum=$(shasum -a 256 bitcoin-$VERSION.tar.gz | awk '{ print $1 }')
if grep -q "$checksum" checksum.asc; then
print_success "Checksum passed: bitcoin-$VERSION.tar.gz ($checksum)"
else
print_error "Checksum failed: bitcoin-$VERSION.tar.gz ($checksum). Please rerun this script to download and validate the binaries again."
exit 1
fi
fi
rm -f bitcoin-$VERSION.tar.gz checksum.asc
}
install_bitcoin_core() {
cd $TARGET_DIR
print_info "\nInstalling Bitcoin Core v$VERSION"
if [ ! -d "$TARGET_DIR/bin" ]; then
mkdir -p $TARGET_DIR/bin
fi
if [ ! -d "$TARGET_DIR/.bitcoin" ]; then
mkdir -p $TARGET_DIR/.bitcoin
fi
if [ "$SYSTEM" = "Darwin" ]; then
if [ ! -e "$HOME/Library/Application Support/Bitcoin" ]; then
ln -s $TARGET_DIR/.bitcoin "$HOME/Library/Application Support/Bitcoin"
fi
else
if [ ! -e "$HOME/.bitcoin" ]; then
ln -s $TARGET_DIR/.bitcoin $HOME/.bitcoin
fi
fi
if [ -f "$TARGET_DIR/bitcoin/src/bitcoind" ]; then
# Install compiled binaries.
cp "$TARGET_DIR/bitcoin/src/bitcoind" "$TARGET_DIR/bin/" &&
cp "$TARGET_DIR/bitcoin/src/bitcoin-cli" "$TARGET_DIR/bin/" &&
print_success "Bitcoin Core v$VERSION (compiled) installed successfully!"
elif [ -f "$TARGET_DIR/bitcoin-$VERSION/bin/bitcoind" ]; then
# Install downloaded binaries.
cp "$TARGET_DIR/bitcoin-$VERSION/bin/bitcoind" "$TARGET_DIR/bin/" &&
cp "$TARGET_DIR/bitcoin-$VERSION/bin/bitcoin-cli" "$TARGET_DIR/bin/" &&
rm -rf "$TARGET_DIR/bitcoin-$VERSION"
print_success "Bitcoin Core v$VERSION (binaries) installed successfully!"
else
print_error "Cannot find files to install."
exit 1
fi
cat > $TARGET_DIR/.bitcoin/bitcoin.conf <<EOF
### IPv4/IPv6 mode ###
# This mode requires uPnP feature on your router to allow Bitcoin Core to accept incoming connections.
bind=0.0.0.0
upnp=1
### Tor mode ###
# This mode requires tor (https://www.torproject.org/download/) to be running at the proxy address below.
# No configuration is needed on your router to allow Bitcoin Core to accept incoming connections.
#proxy=127.0.0.1:9050
#bind=127.0.0.1
#onlynet=onion
listen=1
port=$PORT
maxconnections=64
dbcache=64
par=2
checkblocks=24
checklevel=0
disablewallet=1
rpccookiefile=$TARGET_DIR/.bitcoin/.cookie
rpcbind=127.0.0.1
rpcport=8332
rpcallowip=127.0.0.1
EOF
chmod go-rw $TARGET_DIR/.bitcoin/bitcoin.conf
cat > $TARGET_DIR/bin/start.sh <<EOF
#!/bin/sh
if [ -f $TARGET_DIR/bin/bitcoind ]; then
$TARGET_DIR/bin/bitcoind -conf=$TARGET_DIR/.bitcoin/bitcoin.conf -datadir=$TARGET_DIR/.bitcoin -daemon
fi
EOF
chmod ugo+x $TARGET_DIR/bin/start.sh
cat > $TARGET_DIR/bin/stop.sh <<EOF
#!/bin/sh
if [ -f $TARGET_DIR/.bitcoin/bitcoind.pid ]; then
kill \$(cat $TARGET_DIR/.bitcoin/bitcoind.pid)
fi
EOF
chmod ugo+x $TARGET_DIR/bin/stop.sh
}
start_bitcoin_core() {
if [ ! -f $TARGET_DIR/.bitcoin/bitcoind.pid ]; then
print_info "\nStarting Bitcoin Core.."
cd $TARGET_DIR/bin && ./start.sh
timer=0
until [ -f $TARGET_DIR/.bitcoin/bitcoind.pid ] || [ $timer -eq 5 ]; do
timer=$((timer + 1))
sleep $timer
done
if [ -f $TARGET_DIR/.bitcoin/bitcoind.pid ]; then
print_success "Bitcoin Core is running!"
else
print_error "Failed to start Bitcoin Core."
exit 1
fi
fi
}
stop_bitcoin_core() {
if [ -f $TARGET_DIR/.bitcoin/bitcoind.pid ]; then
print_info "\nStopping Bitcoin Core.."
cd $TARGET_DIR/bin && ./stop.sh
timer=0
until [ ! -f $TARGET_DIR/.bitcoin/bitcoind.pid ] || [ $timer -eq 120 ]; do
timer=$((timer + 1))
sleep $timer
done
if [ ! -f $TARGET_DIR/.bitcoin/bitcoind.pid ]; then
print_success "Bitcoin Core stopped."
else
print_error "Failed to stop Bitcoin Core."
exit 1
fi
fi
}
check_bitcoin_core() {
if [ -f $TARGET_DIR/.bitcoin/bitcoind.pid ]; then
if [ -f $TARGET_DIR/bin/bitcoin-cli ]; then
print_info "\nChecking Bitcoin Core.."
sleep 5
$TARGET_DIR/bin/bitcoin-cli -conf=$TARGET_DIR/.bitcoin/bitcoin.conf -datadir=$TARGET_DIR/.bitcoin getnetworkinfo
fi
reachable=$(curl -I https://bitnodes.io/api/v1/nodes/me-$PORT/ 2> /dev/null | head -n 1 | cut -d ' ' -f2)
if [ $reachable -eq 200 ]; then
print_success "Bitcoin Core is accepting incoming connections at port $PORT!"
else
print_warning "Bitcoin Core is not accepting incoming connections at port $PORT. You may need to configure port forwarding (https://bitcoin.org/en/full-node#port-forwarding) on your router."
fi
fi
}
uninstall_bitcoin_core() {
stop_bitcoin_core
if [ -d "$TARGET_DIR" ]; then
print_info "\nUninstalling Bitcoin Core.."
rm -rf $TARGET_DIR
# Remove stale symlink.
if [ "$SYSTEM" = "Darwin" ]; then
if [ -L "$HOME/Library/Application Support/Bitcoin" ] && [ ! -d "$HOME/Library/Application Support/Bitcoin" ]; then
rm "$HOME/Library/Application Support/Bitcoin"
fi
else
if [ -L $HOME/.bitcoin ] && [ ! -d $HOME/.bitcoin ]; then
rm $HOME/.bitcoin
fi
fi
if [ ! -d "$TARGET_DIR" ]; then
print_success "Bitcoin Core uninstalled successfully!"
else
print_error "Uninstallation failed. Is Bitcoin Core still running?"
exit 1
fi
else
print_error "Bitcoin Core not installed."
fi
}
while getopts ":v:t:p:bu" opt
do
case "$opt" in
v)
VERSION=${OPTARG}
;;
t)
TARGET_DIR=${OPTARG}
;;
p)
PORT=${OPTARG}
;;
b)
BUILD=1
;;
u)
UNINSTALL=1
;;
h)
usage
exit 0
;;
?)
usage >& 2
exit 1
;;
esac
done
WELCOME_TEXT=$(cat <<EOF
Welcome!
You are about to install a Bitcoin full node based on Bitcoin Core v$VERSION.
All files will be installed under $TARGET_DIR directory.
Your node will be configured to accept incoming connections from other nodes in
the Bitcoin network by using uPnP feature on your router.
For security reason, wallet functionality is not enabled by default.
After the installation, it may take several hours for your node to download a
full copy of the blockchain.
If you wish to uninstall Bitcoin Core later, you can download this script and
run "sh install-full-node.sh -u" or run this shortcut command
"sh <( curl -Ls https://bitnodes.io/install-full-node.sh ) -u"
EOF
)
print_start
if [ $UNINSTALL -eq 1 ]; then
echo
read -p "WARNING: This will stop Bitcoin Core and uninstall it from your system. Uninstall? (y/n) " answer
if [ "$answer" = "y" ]; then
uninstall_bitcoin_core
fi
else
echo "$WELCOME_TEXT"
if [ -t 0 ]; then
# Prompt for confirmation when invoked in tty.
echo
read -p "Install? (y/n) " answer
else
# Continue installation when invoked via pipe, e.g. curl .. | sh
answer="y"
echo
echo "Starting installation in 15 seconds.."
sleep 15
fi
if [ "$answer" = "y" ]; then
if [ "$BUILD" -eq 0 ]; then
bin_url=$(get_bin_url)
else
bin_url=""
fi
stop_bitcoin_core
create_target_dir
if [ "$bin_url" != "" ]; then
download_bin "$bin_url"
else
install_build_dependencies && build_bitcoin_core
fi
install_bitcoin_core && start_bitcoin_core && check_bitcoin_core
print_readme > $TARGET_DIR/README.md
cat $TARGET_DIR/README.md
print_success "If this is your first install, Bitcoin Core may take several hours/days to download a full copy of the blockchain."
print_success "\nInstallation completed!"
fi
fi
print_end
TODO Getdeb
#!/bin/bash
sudo dpkg -i ~/bin/linux/deb/getdeb-repository_0.1-1~getdeb1_all.deb
sudo apt update
#sudo apt install -y meteo
#sudo apt install -y tvbrowser
#sudo apt install -y peek
#sudo apt install -y opentoonz
sudo apt install -y subsonic
#sudo apt install -y luminance
#sudo apt install -y popout3d
#sudo apt install -y no-more-secrets
#sudo apt install -y something-for-reddit
#sudo apt install -y noteshrink
#sudo apt install -y satellite
sudo apt install -y docear
sudo apt install -y storybook
#sudo apt install -y anomos
sudo apt install -y umlet
sudo apt install -y skype-call-recorder
sudo apt install -y drawpile
sudo apt install -y chmsee
#sudo apt install -y rbutil
sudo apt install -y diy-layout-creator
sudo apt install -y enrollix
sudo apt install -y tbo
sudo apt install -y gnaural
TODO Jdotxt
#!/bin/bash
sudo add-apt-repository ppa:chms/jdotxt
sudo apt-get update
sudo apt-get install jdotxt
TODO Keybase
#!/bin/bash
curl -O https://prerelease.keybase.io/keybase_amd64.deb
# if you see an error about missing `libappindicator1`
# from the next command, you can ignore it, as the
# subsequent command corrects it
sudo dpkg -i keybase_amd64.deb
sudo apt-get install -f
run_keybase
TODO Make Deb
#!/bin/bash
wget -qO - 'https://proget.hunterwittenborn.com/debian-feeds/makedeb.pub' | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/makedeb-archive-keyring.gpg &> /dev/null
echo 'deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.hunterwittenborn.com/ makedeb main' | \
sudo tee /etc/apt/sources.list.d/makedeb.list
sudo apt update
sudo apt install makedeb
TODO NVIDIA
#!/bin/bash
# Remove previous drivers
sudo apt update
sudo apt upgrade
sudo apt autoremove nvidia* --purge
# Add Debian 12 repositories
sudo add-apt-repository contrib
sudo add-apt-repository non-free
sudo apt update
# Install requirements
sudo apt install linux-headers-amd64
# Install detector
sudo apt install nvidia-detect
nvidia-detect
# Install drivers
sudo apt install nvidia-driver firmware-misc-nonfree
# Install CUDA
sudo apt install nvidia-cuda-dev nvidia-cuda-toolkit
# Reboot
sudo reboot now
nvidia-smi
TODO Ocamlfuse
#!/bin/bash
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt update && sudo apt install google-drive-ocamlfuse
TODO Odoo
#!/bin/bash
sudo wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
sudo echo "deb http://nightly.odoo.com/13.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
sudo apt-get update && apt-get install odoo
TODO Onionshare
#!/bin/bash
sudo add-apt-repository -y ppa:micahflee/ppa
sudo apt update
sudo apt-get install -y onionshare
TODO OnlyKey
#!/bin/bash
sudo apt update && apt upgrade
sudo apt install pipx
pipx install onlykey
wget https://raw.githubusercontent.com/trustcrypto/trustcrypto.github.io/master/49-onlykey.rules
sudo cp 49-onlykey.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
TODO Open Broadcaster
#!/bin/bash
sudo apt install -y ffmpeg
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install -y obs-studio
TODO Open Media Library
#!/bin/bash
sudo add-apt-repository -y ppa:j/oml
sudo apt update
sudo apt-get install -y openmedialibrary
TODO Recoll
sudo apt install python3-pydbus
tar xzf gssp-recoll-1.1.1.tar.gz
cd gssp-recoll-1.1.1
./configure --prefix=/usr
make
sudo make install
cd ..
rm -rf gssp-recoll-1.1.1*
TODO Retroshare
#!/bin/bash
sudo add-apt-repository -y ppa:retroshare/stable
sudo apt update
sudo apt-get install retroshare
TODO Rockbox
#!/bin/bash
sudo dpkg -i getdeb-repository_0.1-1~getdeb1_all.deb
sudo apt update
sudo apt install -y rbutil #rockbox installer utility, available only after the deb package is installed from ~/bin/linux/deb/
TODO Safeeyes
#!/bin/bash
sudo apt-get install gir1.2-appindicator3-0.1 gir1.2-notify-0.7 python3-psutil python3-xlib xprintidle python3-pip
sudo pip3 install safeeyes
sudo update-icon-caches /usr/share/icons/hicolor
TODO Signal
#!/bin/bash
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | sudo tee /etc/apt/sources.list.d/signal-xenial.list
sudo apt update && sudo apt install signal-desktop
TODO Star Ruler
#!/bin/bash
sudo snap install starruler2
TODO R
#!/bin/bash
#Install R
sudo add-apt-repository -y "deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/"
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
sudo apt update
sudo apt install -y r-base
#Install RStudio
sudo apt install libjpeg62
gpg --keyserver keys.gnupg.net --recv-keys 3F32EE77E331692F
sudo dpkg -i ~/bin/linux/rstudio*
TODO TLP
#!/bin/bash
sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw
sudo tlp start
TODO Tor Browser Launcher
#!/bin/bash
sudo add-apt-repository ppa:micahflee/ppa
sudo apt-get update
sudo apt-get install torbrowser-launcher
TODO Tor
sudo add-apt-repository -y "deb https://deb.torproject.org/torproject.org xenial main"
gpg --keyserver keys.gnupg.net --recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
sudo apt update
sudo apt install tor deb.torproject.org-keyring
TODO Trezor GPG
#!/bin/bash
# https://wiki.trezor.io/GPG
# GPG
#GNU Privacy Guard (GPG, also GnuPG) is free encryption software that is compliant with the OpenPGP (RFC4880) standard. Using GPG, it is possible to encrypt (and decrypt) files that contain sensitive data or sign / verify the documents.
#Why use GPG with Trezor
#GPG Trezor integration lets user sign emails, git commits, and software packages, manage passwords (with pass and gopass, among others), authenticate web tunnels or file transfers, and more. Instead of keeping your GPG keys on your computer and decrypting it with a passphrase when you want to use it, the key is generated and stored on the Trezor device and never reaches your computer. If the device is stolen or damaged, user can easily restore the keys using backup - Recovery seed - on the new device. To read more about common use cases of GPG, please visit this GitHub page.
# Install and use Trezor GPG signing/encrypting on Linux
# Note: This guide was tested on the following clean systems: Linux Mint 19, Ubuntu 18.04.1 LTS (Bionic Beaver). It works with Trezor One with 1.6.0 bootloader and 1.7.0 firmware or higher and with Trezor Model T.
# 1. Update repositories, install dependencies and GPG
sudo apt update && sudo apt install -y python3-pip python3-dev libusb-1.0-0-dev libudev-dev gnupg2
#2. Install setuptools and wheel
pip3 install setuptools wheel
#3. Install trezor agent
pip3 install trezor_agent
# 4. Update your $PATH by running
source .profile
#5. Udev rules need to be set up on your system; this can be done in two ways:
#
# a) by installing Trezor Bridge via https://wallet.trezor.io
# or
#b) by setting up Udev rules
./trezor-udev.sh
# Note: Reconnect your Trezor device after this step.
# 6. Initialize the agent GPG directory
# trezor-gpg init "Username <your@email.com>" -v
# 7. Add the following line at the end of your .bashrc file which is located in your home directory
# export GNUPGHOME=~/.gnupg/trezor
# This GNUPGHOME contains your hardware keyring and agent settings. The agent software assumes all keys are backed by hardware devices, so you cannot use standard GPG keys in GNUPGHOME (if you do mix keys, you will receive an error when you attempt to use them).
# 8. Close and reopen terminal.
# 9. Sign or encrypt document with Trezor
# gpg2 --sign <your document>
# gpg2 --encrypt -r Username <your document>
# 10. Verify or decrypt the document
# gpg2 --verify <your document>
# gpg2 --decrypt -r Username <your document>
# Note: We would like to thank Roman Zeyde for his contribution on Trezor GPG implementation.
TODO Trezor U2F
#!/bin/bash
# TREZOR/U2F Login on Your Linux Mint
# Note We would like to thank Shane Antyr who wrote this manual and let us use it.
# Warning: This manual requires certain skills in working with the command line. There is no guarantee it will work, and we cannot ensure that you will not make any mistakes. Be aware that if something goes wrong, or you do not have your Trezor handy after you finish configuring U2F on your workstation, you will be locked out.
# To start with the installation, it is necessary to upgrade your Trezor device to the latest firmware. Follow this step by step guide:
# 1. Install the needed U2F packages, run:
sudo apt-get install libpam-u2f pamu2fcfg
# 2. Generate your U2F mappings file. Plug in your Trezor device and run:
pamu2fcfg -u $USER > /tmp/u2f_mappings
echo >> /tmp/u2f_mappings
pamu2fcfg -u root >> /tmp/u2f_mappings
# Confirm the action on your Trezor device.
# 3. Move the u2f_mappings file into /etc and set correct permissions:
sudo mv /tmp/u2f_mappings /etc/u2f_mappings
sudo chown root:root /etc/u2f_mappings
# 4. Configuring Pam to Use U2F:
# The u2f_mappings file that was put into /etc will be used by the pam-u2f module. Set up PAM so that it would use this module, to add two-factor authentication to your system. This can be done by adding a couple of config lines into the appropriate pam configuration files
# ls /etc/pam.d
# Examples of where to add U2F authentication module:
# sudo
# login
# su
# mdm, lightdm or gdm
# cinnamon-screensaver
# Note: It is possible to see all the things which require U2F authentication by looking in /etc/pam.d/
# How to add U2F to sudo command
# 1. Open up the sudo configuration file:
# sudo nano /etc/pam.d/sudo
# 2. Add this at the end of the file:
# u2f authentication
# auth required pam_u2f.so authfile=/etc/u2f_mappings cue
# Test your configuration by opening up another terminal window and running a sudo command. If these things are done correctly, you will be asked for your password and then prompted to “Please touch the device.” Your Trezor device will also be prompting you to authorize the request. Congratulations, your system now requires your Trezor to run sudo.
TODO Trezor SSH
#!/bin/bash
# Setting up Trezor SSH Agent on Linux
# This manual has been tested on Ubuntu 18.04 LTS.
# Prerequisites
sudo apt-get install python3-pip libusb-1.0-0-dev libudev-dev
# Setup
# Run:
pip3 install trezor_agent
# Create udev rules:
# vi /etc/udev/rules.d/51-trezor.rules
# Copy & paste the content of https://github.com/trezor/trezor-common/blob/master/udev/51-trezor.rules.
# Save the file.
# If your local bin folder ~/.local/bin has just been created, run the following command or log out and log back into system:
export PATH=$PATH:~/.local/bin/
# Generate public key using trezor-agent (enter your PIN just like you would in Trezor Wallet).
# trezor-agent user@example.com
# Log into your server as usual and copy the row containing the ecdsa magic from the previous step into ~/.ssh/authorized_keys file on your server
# From now on, you can log in to your server using trezor using the following command:
# trezor-agent -c user@example.com
# Note: The generated keys depend on the user@example.com parameter, so no two servers or users share the same key.
# Note: This method can also be used for git push or other mechanisms that are using SSH as their communication protocol:
# $ trezor-agent user@example.com git push
TODO Trezor UDev
#!/bin/bash
# https://wiki.trezor.io/Udev_rules
#Udev rules
#Udev is a device manager for the Linux kernel. In order to enable communication with Trezor via kernel, we need to provide a so-called udev rule.
#We ship udev rules via our DEB or RPM packages, but for rare Linux distributions without these package managers, please follow these steps for adding udev rules manually:
# Disconnect your Trezor device
wget https://raw.githubusercontent.com/trezor/trezor-common/master/udev/51-trezor.rules
sudo cp 51-trezor.rules /etc/udev/rules.d/51-trezor.rules
# Go to Trezor Wallet and connect your Trezor
TODO Virtualbox
#!/bin/bash
sudo touch /etc/apt/sources.list.d/oracle.list && sudo echo "deb https://download.virtualbox.org/virtualbox/debian xenial contrib" > /etc/apt/sources.list.d/oracle.list
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
sudo update
sudo apt install -y dkms virtualbox-5.1
TODO Yubi Key
#!/bin/bash
sudo add-apt-repository -y ppa:yubico/stable
sudo apt update
sudo apt install -y yubioath-desktop yubikey-personalization-gui
TODO Backup Digital Ocean
rsync -azvu --progress --delete root@khaledfahmy.org:/home/amr/ /home/amr/computers/digitalocean.com/debian/home/
rsync -azvu --progress --delete root@khaledfahmy.org:/var/www/ /home/amr/computers/digitalocean.com/debian/www/
TODO Backup Let's Encrypt
rsync -azvu --progress 178.62.2.145:/etc/letsencrypt/ ~/projects/hosting/debian-s-1vcpu-1gb-lon1-01/letsencrypt/
TODO Backup lilitop
rsync -azvu --progress --delete --delete-excluded --exclude-from=/home/amr/.local/bin/backup-exclude /home/amr/ /media/amr/backup/
TODO backup-exclude
- .cache/
- .thunderbird/v
- .local/share/Trash/
- .recoll/
- .org-done/
- library/documents/
- library/audio/
- library/music/
- library/music-store/
- library/video/
TODO Backup gamer
rsync -azvu --progress --delete --delete-excluded --exclude-from=/home/amr/.local/bin/backup-exclude-gamer /home/amr/ /media/amr/backup/
TODO gamer-exclude
- computers/
- EIPR/
- library/
- Permaculture Aswan 2013/
- Pictures/
- Zotero/
- zotero export/
- .config/
- .ecryptfs/
- .mozilla/
- .Private/
TODO Backup open
rsync -azvu --progress --delete ~/.password-store/ /media/amr/open/.password-store/
rsync -azvu --progress --delete ~/onlykey-backup* /media/amr/open/
TODO Backup pen
rsync -azvu --progress --delete-before --delete-excluded --exclude-from=/home/amr/library/src/bash/backup-exclude-pen /home/amr/personal /media/amr/pen/lilitop/personal
TODO pen-exclude
- pictures/
TODO Sync Calibre
sudo rsync -azvu --progress --delete /home/amr/library/documents/calibre/libraries/books/ /var/lib/calibre-server-freedombox/libraries/Library/
sudo chown -R calibre-server-freedombox:calibre-server-freedombox /var/lib/calibre-server-freedombox/libraries/Library
TODO University of Nottingham Network
#!/usr/bin/env bash
# eduroam-linux-TUoN-The_University_of_Nottingham_UK_Campus.sh
if [ -z "$BASH" ] ; then
bash $0
exit
fi
my_name=$0
function setup_environment {
bf=""
n=""
ORGANISATION="The University of Nottingham"
URL="http://www.nottingham.ac.uk/it-services/services/wireless/eduroam/eduroam.aspx"
SUPPORT="itservicedesk@nottingham.ac.uk"
if [ ! -z "$DISPLAY" ] ; then
if which zenity 1>/dev/null 2>&1 ; then
ZENITY=`which zenity`
elif which kdialog 1>/dev/null 2>&1 ; then
KDIALOG=`which kdialog`
else
if tty > /dev/null 2>&1 ; then
if echo $TERM | grep -E -q "xterm|gnome-terminal|lxterminal" ; then
bf="[1m";
n="[0m";
fi
else
find_xterm
if [ -n "$XT" ] ; then
$XT -e $my_name
fi
fi
fi
fi
}
function split_line {
echo $1 | awk -F '\\\\n' 'END { for(i=1; i <= NF; i++) print $i }'
}
function find_xterm {
terms="xterm aterm wterm lxterminal rxvt gnome-terminal konsole"
for t in $terms
do
if which $t > /dev/null 2>&1 ; then
XT=$t
break
fi
done
}
function ask {
T="eduroam CAT"
# if ! [ -z "$3" ] ; then
# T="$T: $3"
# fi
if [ ! -z $KDIALOG ] ; then
if $KDIALOG --yesno "${1}\n${2}?" --title "$T" ; then
return 0
else
return 1
fi
fi
if [ ! -z $ZENITY ] ; then
text=`echo "${1}" | fmt -w60`
if $ZENITY --no-wrap --question --text="${text}\n${2}?" --title="$T" 2>/dev/null ; then
return 0
else
return 1
fi
fi
yes=Y
no=N
yes1=`echo $yes | awk '{ print toupper($0) }'`
no1=`echo $no | awk '{ print toupper($0) }'`
if [ $3 == "0" ]; then
def=$yes
else
def=$no
fi
echo "";
while true
do
split_line "$1"
read -p "${bf}$2 ${yes}/${no}? [${def}]:$n " answer
if [ -z "$answer" ] ; then
answer=${def}
fi
answer=`echo $answer | awk '{ print toupper($0) }'`
case "$answer" in
${yes1})
return 0
;;
${no1})
return 1
;;
esac
done
}
function alert {
if [ ! -z $KDIALOG ] ; then
$KDIALOG --sorry "${1}"
return
fi
if [ ! -z $ZENITY ] ; then
$ZENITY --warning --text="$1" 2>/dev/null
return
fi
echo "$1"
}
function show_info {
if [ ! -z $KDIALOG ] ; then
$KDIALOG --msgbox "${1}"
return
fi
if [ ! -z $ZENITY ] ; then
$ZENITY --info --width=500 --text="$1" 2>/dev/null
return
fi
split_line "$1"
}
function confirm_exit {
if [ ! -z $KDIALOG ] ; then
if $KDIALOG --yesno "Really quit?" ; then
exit 1
fi
fi
if [ ! -z $ZENITY ] ; then
if $ZENITY --question --text="Really quit?" 2>/dev/null ; then
exit 1
fi
fi
}
function prompt_nonempty_string {
prompt=$2
if [ ! -z $ZENITY ] ; then
if [ $1 -eq 0 ] ; then
H="--hide-text "
fi
if ! [ -z "$3" ] ; then
D="--entry-text=$3"
fi
elif [ ! -z $KDIALOG ] ; then
if [ $1 -eq 0 ] ; then
H="--password"
else
H="--inputbox"
fi
fi
out_s="";
if [ ! -z $ZENITY ] ; then
while [ ! "$out_s" ] ; do
out_s=`$ZENITY --entry --width=300 $H $D --text "$prompt" 2>/dev/null`
if [ $? -ne 0 ] ; then
confirm_exit
fi
done
elif [ ! -z $KDIALOG ] ; then
while [ ! "$out_s" ] ; do
out_s=`$KDIALOG $H "$prompt" "$3"`
if [ $? -ne 0 ] ; then
confirm_exit
fi
done
else
while [ ! "$out_s" ] ; do
read -p "${prompt}: " out_s
done
fi
echo "$out_s";
}
function user_cred {
PASSWORD="a"
PASSWORD1="b"
if ! USER_NAME=`prompt_nonempty_string 1 "enter your userid"` ; then
exit 1
fi
while [ "$PASSWORD" != "$PASSWORD1" ]
do
if ! PASSWORD=`prompt_nonempty_string 0 "enter your password"` ; then
exit 1
fi
if ! PASSWORD1=`prompt_nonempty_string 0 "repeat your password"` ; then
exit 1
fi
if [ "$PASSWORD" != "$PASSWORD1" ] ; then
alert "passwords do not match"
fi
done
}
setup_environment
show_info "This installer has been prepared for ${ORGANISATION}\n\nMore information and comments:\n\nEMAIL: ${SUPPORT}\nWWW: ${URL}\n\nInstaller created with software from the GEANT project."
if ! ask "This installer will only work properly if you are a member of ${bf}The University of Nottingham${n} and the user group: ${bf}The University of Nottingham UK Campus.${n}" "Continue" 1 ; then exit; fi
if [ -d $HOME/.cat_installer ] ; then
if ! ask "Directory $HOME/.cat_installer exists; some of its files may be overwritten." "Continue" 1 ; then exit; fi
else
mkdir $HOME/.cat_installer
fi
# save certificates
echo "-----BEGIN CERTIFICATE-----
MIIFTDCCAzSgAwIBAgIUSJgt4qkssznhyPkzNYJ10+T4glUwDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZ
BgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0xMzA2MDExMzM1MDVaFw0yMzA2
MDExMzM1MDVaME0xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
dGVkMSMwIQYDVQQDExpRdW9WYWRpcyBHbG9iYWwgU1NMIElDQSBHMjCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOHhhWmUwI9X+jT+wbho5JmQqYh6zle3
0OS1VMIYfdDDGeipY4D3t9zSGaNasGDZdrQdMlY18WyjnEKhi4ojNZdBewVphCiO
zh5Ni2Ak8bSI/sBQ9sKPrpd0+UCqbvaGs6Tpx190ZRT0Pdy+TqOYZF/jBmzBj7Yf
XJmWxlfCy62UiQ6tvv+4C6W2OPu1R4HUD8oJ8Qo7Eg0cD+GFsBM2w8soffyl+Dc6
pKtARmOClUC7EqyWP0V9953lA34kuJZlYxxdgghBTn9rWoaQw/Lr5Fn0Xgd7fYS3
/zGhmXYvVsuAxIn8Gk+YaeoLZ8H9tUvnDD3lEHzvIsMPxqtd7IgcVaMCAwEAAaOC
ASowggEmMBIGA1UdEwEB/wQIMAYBAf8CAQAwEQYDVR0gBAowCDAGBgRVHSAAMHIG
CCsGAQUFBwEBBGYwZDAqBggrBgEFBQcwAYYeaHR0cDovL29jc3AucXVvdmFkaXNn
bG9iYWwuY29tMDYGCCsGAQUFBzAChipodHRwOi8vdHJ1c3QucXVvdmFkaXNnbG9i
YWwuY29tL3F2cmNhMi5jcnQwDgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFBqE
YrxITDMlBNTu0PYDxBlG0ZRrMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
cXVvdmFkaXNnbG9iYWwuY29tL3F2cmNhMi5jcmwwHQYDVR0OBBYEFJEZYq1bF6cw
+/DeOSWxvYy5uFEnMA0GCSqGSIb3DQEBCwUAA4ICAQB8CmCCAEG1Lcw55fTba84A
ipwMieZydFO5bcIh5UyXWgWZ6OP4jb/6LaifEMLjRCC0mU14G6PrPU+iZQiIae7X
5EavhmETEA8JbLICjiD4c9Y6+bgMt4szEPiZ2SALOQj10Br4HKQfy/OvbedRbLax
p9qlDG4qJgSt3uikDIJSarx6mpgEQXu00UZNkiEYUfeO8hXGXrZbtDnkuaiVDtM6
s9yYpcoyFxFOrORrEgViaI7P3EJaDYmI6IDUIPaSBM6GrVMiaINYEMBL1v2jZi8r
XDY0yVsZ/0DAIQiCBNNvT1NjQ5Sn1E+O+ZBiqDD+rBvBoPsI6ydfdKtJur5YL+Oo
kJK2eLrce8287awIcd8FMRDcZw/NX1bc8uKye5OCtwpQ0d4jL4emuXwFv8TqUbZh
2xJShyy57cqw3qWoBOs/WWza29/Hun8PXkQoZepwY/xc+9nI1NaKM8NqhSqJNTJl
vXj7zb3mdpbe3YR9BkSXProlN7l5KOx54gJ7kJ7r6qJYJux03HyPM11Kp4wfdn1R
sC2UQ5awC6fg/3XE2HZVkyqJjKwqh4nFaiK5EMV7DHQ4oJx9ckmDw6pBvDaoPokX
yzdfJ72n+1JfHGP+workciKNldgqYX6J4jPrCIEIBrtDta4QxP10Tyd9RFu13XmE
8SYi/VXvrf3nriQfAZ/nSA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
-----END CERTIFICATE-----
" > $HOME/.cat_installer/ca.pem
function run_python_script {
PASSWORD=$( echo "$PASSWORD" | sed "s/'/\\\'/g" )
if python << EEE1 > /dev/null 2>&1
import dbus
EEE1
then
PYTHON=python
elif python3 << EEE2 > /dev/null 2>&1
import dbus
EEE2
then
PYTHON=python3
else
PYTHON=none
return 1
fi
$PYTHON << EOF > /dev/null 2>&1
#-*- coding: utf-8 -*-
import dbus
import re
import sys
import uuid
import os
class EduroamNMConfigTool:
def connect_to_NM(self):
#connect to DBus
try:
self.bus = dbus.SystemBus()
except dbus.exceptions.DBusException:
print("Can't connect to DBus")
sys.exit(2)
#main service name
self.system_service_name = "org.freedesktop.NetworkManager"
#check NM version
self.check_nm_version()
if self.nm_version == "0.9" or self.nm_version == "1.0":
self.settings_service_name = self.system_service_name
self.connection_interface_name = "org.freedesktop.NetworkManager.Settings.Connection"
#settings proxy
sysproxy = self.bus.get_object(self.settings_service_name, "/org/freedesktop/NetworkManager/Settings")
#settings intrface
self.settings = dbus.Interface(sysproxy, "org.freedesktop.NetworkManager.Settings")
elif self.nm_version == "0.8":
#self.settings_service_name = "org.freedesktop.NetworkManagerUserSettings"
self.settings_service_name = "org.freedesktop.NetworkManager"
self.connection_interface_name = "org.freedesktop.NetworkManagerSettings.Connection"
#settings proxy
sysproxy = self.bus.get_object(self.settings_service_name, "/org/freedesktop/NetworkManagerSettings")
#settings intrface
self.settings = dbus.Interface(sysproxy, "org.freedesktop.NetworkManagerSettings")
else:
print("This Network Manager version is not supported")
sys.exit(2)
def check_opts(self):
self.cacert_file = '${HOME}/.cat_installer/ca.pem'
self.pfx_file = '${HOME}/.cat_installer/user.p12'
if not os.path.isfile(self.cacert_file):
print("Certificate file not found, looks like a CAT error")
sys.exit(2)
def check_nm_version(self):
try:
proxy = self.bus.get_object(self.system_service_name, "/org/freedesktop/NetworkManager")
props = dbus.Interface(proxy, "org.freedesktop.DBus.Properties")
version = props.Get("org.freedesktop.NetworkManager", "Version")
except dbus.exceptions.DBusException:
version = "0.8"
if re.match(r'^1\.', version):
self.nm_version = "1.0"
return
if re.match(r'^0\.9', version):
self.nm_version = "0.9"
return
if re.match(r'^0\.8', version):
self.nm_version = "0.8"
return
else:
self.nm_version = "Unknown version"
return
def byte_to_string(self, barray):
return "".join([chr(x) for x in barray])
def delete_existing_connections(self, ssid):
"checks and deletes earlier connections"
try:
conns = self.settings.ListConnections()
except dbus.exceptions.DBusException:
print("DBus connection problem, a sudo might help")
exit(3)
for each in conns:
con_proxy = self.bus.get_object(self.system_service_name, each)
connection = dbus.Interface(con_proxy, "org.freedesktop.NetworkManager.Settings.Connection")
try:
connection_settings = connection.GetSettings()
if connection_settings['connection']['type'] == '802-11-wireless':
conn_ssid = self.byte_to_string(connection_settings['802-11-wireless']['ssid'])
if conn_ssid == ssid:
connection.Delete()
except dbus.exceptions.DBusException:
pass
def add_connection(self,ssid):
server_alt_subject_name_list = dbus.Array({'DNS:radius.nottingham.ac.uk'})
server_name = 'radius.nottingham.ac.uk'
if self.nm_version == "0.9" or self.nm_version == "1.0":
match_key = 'altsubject-matches'
match_value = server_alt_subject_name_list
else:
match_key = 'subject-match'
match_value = server_name
s_con = dbus.Dictionary({
'type': '802-11-wireless',
'uuid': str(uuid.uuid4()),
'permissions': ['user:$USER'],
'id': ssid
})
s_wifi = dbus.Dictionary({
'ssid': dbus.ByteArray(ssid.encode('utf8')),
'security': '802-11-wireless-security'
})
s_wsec = dbus.Dictionary({
'key-mgmt': 'wpa-eap',
'proto': ['rsn',],
'pairwise': ['ccmp',],
'group': ['ccmp', 'tkip']
})
s_8021x = dbus.Dictionary({
'eap': ['peap'],
'identity': '$USER_NAME',
'ca-cert': dbus.ByteArray("file://{0}\0".format(self.cacert_file).encode('utf8')),
match_key: match_value,
'password': '$PASSWORD',
'phase2-auth': 'mschapv2',
'anonymous-identity': 'anonymous@nottingham.ac.uk',
})
s_ip4 = dbus.Dictionary({'method': 'auto'})
s_ip6 = dbus.Dictionary({'method': 'auto'})
con = dbus.Dictionary({
'connection': s_con,
'802-11-wireless': s_wifi,
'802-11-wireless-security': s_wsec,
'802-1x': s_8021x,
'ipv4': s_ip4,
'ipv6': s_ip6
})
self.settings.AddConnection(con)
def main(self):
self.check_opts()
ver = self.connect_to_NM()
self.delete_existing_connections('eduroam')
self.add_connection('eduroam')
if __name__ == "__main__":
ENMCT = EduroamNMConfigTool()
ENMCT.main()
EOF
}
function create_wpa_conf {
cat << EOFW >> $HOME/.cat_installer/cat_installer.conf
network={
ssid="eduroam"
key_mgmt=WPA-EAP
pairwise=CCMP
group=CCMP TKIP
eap=PEAP
ca_cert="${HOME}/.cat_installer/ca.pem"
identity="${USER_NAME}"
domain_suffix_match="radius.nottingham.ac.uk"
phase2="auth=MSCHAPV2"
password="${PASSWORD}"
anonymous_identity="anonymous@nottingham.ac.uk"
}
EOFW
chmod 600 $HOME/.cat_installer/cat_installer.conf
}
#prompt user for credentials
user_cred
if run_python_script ; then
show_info "Installation successful"
else
show_info "Network Manager configuration failed, generating wpa_supplicant.conf"
if ! ask "Network Manager configuration failed, but we may generate a wpa_supplicant configuration file if you wish. Be warned that your connection password will be saved in this file as clear text." "Write the file" 1 ; then exit ; fi
if [ -f $HOME/.cat_installer/cat_installer.conf ] ; then
if ! ask "File $HOME/.cat_installer/cat_installer.conf exists; it will be overwritten." "Continue" 1 ; then confirm_exit; fi
rm $HOME/.cat_installer/cat_installer.conf
fi
create_wpa_conf
show_info "Output written to $HOME/.cat_installer/cat_installer.conf"
fi
TODO Harvest emails
grep -h "^To: \|^Cc: \|^Bcc: " * | cut -d \ -f 2- | tr , "\n" | sed -e 's/.*<\(.*\)>.*/\1/g' | sed -e 's/^\ *//g' | grep -v "^$" | grep @ | grep -vi Undisclosed-Recipient | sort | uniq > ~/Desktop/harvested.txt
# grep -h "^To: \|Cc: \|Bcc: " * | cut -d \ -f 2- | tr , "\n" | sed -e 's/.*<\(.*\)>.*/\1/g' | sed -e 's/^\ *//g' | grep -v "^$" | sort | uniq > ~/Desktop/harvested.txt
#grep -R -h "^To: \|Cc: \|Bcc: " * | cut -d \ -f 2- | tr , "\n" | sed -e 's/.*<\(.*\)>.*/\1/g' > ~/Desktop/harvested.txt
#grep -R --color '^To:\|Cc:'* > ~/Desktop/harvested.txt
TODO Mount EcryptFS
ROOT=/media/amr/010a3073-3eee-432c-8637-940cde972b2d/.ecryptfs/amr
#ROOT=/home/.ecryptfs/$USER
TARGET=/mnt/$USER
# ROOT should be the parent of the .ecryptfs and .Private folders
sudo mkdir -p $TARGET
cd $ROOT
echo Type your password:
PASS=$(ecryptfs-unwrap-passphrase .ecryptfs/wrapped-passphrase | sed s/Passphrase:\ //)
SIG1=$(head -n1 .ecryptfs/Private.sig)
SIG2=$(tail -n1 .ecryptfs/Private.sig)
echo Passphrase:
echo $PASS
echo Signatures:
echo $SIG1
echo $SIG2
echo Should be empty:
sudo keyctl clear @u
sudo keyctl list @u
echo Do not type your anything:
echo $PASS | sudo ecryptfs-add-passphrase --fnek
echo Sould have signatures:
sudo keyctl list @u
echo Mounting $ROOT on $TARGET...
sudo mount -t ecryptfs -o key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=yes,ecryptfs_sig=$SIG1,ecryptfs_fnek_sig=$SIG2,passwd=$(echo $PASS) .Private $TARGET
ls $TARGET
TODO OCR-JPG2TXT
#!/bin/sh
max=601
for i in `seq 2 $max`
do
tesseract "$i".jpg "$i"
done
TODO OCR-JPG2TXT
#!/bin/sh
STARTPAGE=1 # set to pagenumber of the first page of PDF you wish to convert
ENDPAGE=9 # set to pagenumber of the last page of PDF you wish to convert
SOURCE=00.pdf # set to the file name of the PDF
OUTPUT=00.txt # set to the final output file
RESOLUTION=600 # set to the resolution the scanner used (the higher, the better)
touch $OUTPUT
for i in `seq $STARTPAGE $ENDPAGE`; do
convert -monochrome -density $RESOLUTION $SOURCE\[$(($i - 1 ))\] page.tif
echo processing page $i
tesseract page.tif tempoutput
cat tempoutput.txt >> $OUTPUT
done
TODO Emacs Switch Focus
#!/bin/bash
sleep 1
wmctrl -a "Emacs"
xdotool key F12
TODO Test bitcoind
curl -sL https://bitnodes.earn.com/api/v1/nodes/me-8333/ | jq
TODO VirtualBox uninstall extension pack
vboxmanage extpack uninstall "Oracle VM VirtualBox Extension Pack"
TODO ffbookmarks
#!/bin/bash
## Description: Call helm-firefox-bookmarks from firefox or anywhere else.
## Author:Thierry Volpiatto<thierry dot volpiatto FROM gmail DOT com>
## Commentary: Use firefox-protocol-installer-install to install protocol
## +from emacs.
# Use this bookmarklet:
# javascript:location.href='ffbookmarks://localhost'
FIREFOXEXE=$(if [ -z $FIREFOXEXE ]; then echo "firefox"; else echo $FIREFOXEXE; fi)
wmctrl -a emacs
emacsclient -e "(progn (helm-firefox-bookmarks) nil)" > /dev/null
wmctrl -xa $FIREFOXEXE
exit 0
TODO YouTube-DL
#!/bin/bash
youtube-dl --add-metadata --write-all-thumbnails --write-info-json --embed-subs --all-subs $1
# youtube-dl -x --audio-format mp3 --add-metadata --write-all-thumbnails --write->
TODO Internet radios
http://8.38.78.173:8210/ http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio1_mf_p http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio3_mf_p http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio4fm_mf_p http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio4extra_mf_p http://bbcmedia.ic.llnwd.net/stream/bbcmedia_radio5live_mf_p http://bbcmedia.ic.llnwd.net/stream/bbcmedia_6music_mf_p http://bbcmedia.ic.llnwd.net/stream/bbcmedia_lrldn_mf_p http://www.bbc.co.uk/worldservice/meta/live/mp3/eneuk.pls http://stream.celticmusicradio.net:8000/celticmusic.mp3 http://streaming.rubinbroadcasting.com/kcea http://radio.108.pl:8004/listen.pls http://ice31.securenetsystems.net/NOGOU http://live.radiomasr.net:8060/RADIOMASR http://stream-dc1.radioparadise.com/rp_192m.ogg
TODO MySQL reset
sudo su -
service mysql stop
mkdir /var/run/mysqld
chown mysql /var/run/mysqld
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root
use mysql;
update user set authentication_string=PASSWORD('') where user='root';
flush privileges;
\q
killall mysqld
service mysql start
mysql -u root -p
TODO Unwatched feeds
Unwatched feeds
http://jonathanfryer.wordpress.com
Abu Aardvak
http://blogs.law.harvard.edu/mesh
http://raoufmousaad.blogspot.com/
http://msayed2004.wordpress.com/
http://platform.manalaa.net/blog_aggregator
http://aucpetition08.blogspot.com/
http://www.iq.harvard.edu/blog/netgov/
http://www.internetartizans.co.uk/blog/2
http://sovietposter.blogspot.com/
http://www.npr.org/storycorps?ft=2&f=510200
http://sharkawi.net/blog/1/feed
http://memokareem.blogspot.com/
http://otherthings.manalaa.net
http://omegatimes.blogspot.com/
http://unstrung-larapawson.blogspot.com/
http://masr-heya-ommi.blogspot.com
http://ta5areef.wordpress.com/
http://abdomashakel.blogspot.com/
http://socialistsalex.blogspot.com
http://alexandrasandels.blogspot.com/
http://yalhwy.maktoobblog.com/
http://liberalismisfreedom.blogspot.com/
http://bonobology.blogspot.com/
http://www.maktoobblog.com/ashrafshehata
http://tabulagaza.blogspot.com/
http://www.bloggers-observatory.org/
http://raedyassin.blogspot.com/
http://ziadrahbany.blogspot.com/
http://elmovirgin.blogspot.com/
http://www.syriangavroche.com/
http://arabictadwin.maktoobblog.com
http://naelaltoukhy.blogspot.com/
http://kbl-an-ykhrko-alsafina.blogspot.com
http://rss.groups.yahoo.com/group/SaharaSafaris/rss
http://rss.groups.yahoo.com/group/timeout4thesoul/rss
http://www.google.com/reader/public/atom/user/12122158460518700400/state/com.google/broadcast
http://openmoney.ning.com/activity/log/list?fmt=rss
http://ar.freefouad.com/?feed=rss2
http://resourceinsights.blogspot.com/feeds/posts/default
http://itsgettinghotinhere.org/feed/
http://forestpolicy.typepad.com/ecoecon/atom.xml
http://www.desmogblog.com/rss.xml
http://theecosocialist.wordpress.com/feed/
http://blisteredorb.blogspot.com/feeds/posts/default
http://theburningworld.blogspot.com/feeds/posts/default
http://mitchellanderson.blogspot.com/feeds/posts/default
http://inhabitable-earth.blogspot.com/feeds/posts/default
http://simondonner.blogspot.com/feeds/posts/default
http://initforthegold.blogspot.com/feeds/posts/default
http://greenmpforvauxhall.blogspot.com/feeds/posts/default
http://ecosocialism.blogspot.com/atom.xml
http://climatecanada.wordpress.com/feed/
http://greenleftblog.blogspot.com/feeds/posts/default
http://delhiplatform.blogspot.com/feeds/posts/default
http://enviroeconomics.ca/blog/?feed=rss2
http://greenlefts.blogspot.com/feeds/posts/default
http://bccwords.blogspot.com/feeds/posts/default
http://commontragedies.wordpress.com/feed/
http://globalwarmingwatch.blogspot.com/feeds/posts/default
http://climatespin.blogspot.com/feeds/posts/default
http://growthmadness.org/feed/
http://climatechangeaction.blogspot.com/atom.xml
http://www.calacademy.org/blogs/?feed=rss2
http://climatechange.foreignpolicyblogs.com/feed/
http://scienceblogs.com/deltoid/atom.xml
http://earthtrends.wri.org/updates/blog/feed/
http://www.ecoshock.org/atom.xml
http://enn.com/news/rss/globe.rss
http://www.climateimc.org/en/frontpage/feed
http://www.ipsnews.net/rss/environment.xml
http://topics.nytimes.com/top/news/science/topics/globalwarming/index.html?rss=1
http://rabett.blogspot.com/feeds/posts/default
http://feeds.feedburner.com/scienceblogs/eDgp
http://westcoastclimateequity.org/?feed=rss2
http://www.nature.com/climate/current_issue/rss/
http://www.climateark.org/rss/climate.xml
http://cc.aljazeera.net/rss.xml
http://www.antipope.org/charlie/blog-static/atom.xml
http://ipsinternational.org/rss/arabic.xml
http://www.wraqat.com/atom.xml
http://ezabi.gtegypt.net/?q=node/feed
http://www.elhaqeqa.com/?feed=rss2/
http://keptiamuslema.blog.com/atom/
http://freemonem.cybversion.org/feed/
http://grassgrassgrass.blogspot.com/feeds/posts/default
http://orientaleve.blogspot.com/atom.xml
TODO Feeds
TODO a-films
TODO a7lami al-mob3thara
TODO AUC-workers-Strike
TODO Baghdad Burning
TODO Bitmessage Wiki
TODO Blog Ganzeer
TODO Brian's Study Breaks
TODO Cairene’s Nilometer
TODO Cairene’s Nilometer
TODO CairoNYman
TODO Cdwr’s Blog
TODO Dutchblog Israel
TODO ebn elnil
TODO ebn elnil
TODO Egyptian Post
TODO Egyptian Post
TODO Einmal ist Keinmal
TODO Ekraa - اقراء
TODO Farah's Sowaleef
TODO Free Alaa!
TODO Freneza Arabulo (Ar)
TODO Hekayat-Hanouma
TODO Too Many Minds
TODO Weekite أجنحة صغيرة
TODO westbankblog
TODO آه يا وطن
TODO أبحاث لفتت نظري
TODO أراك من بعيد
TODO أهالي المحلة
TODO أيام خيال الظل
TODO إحــــْـــــكِ
TODO إضراب 6 إبريل
TODO إنسان خردة للبيع
TODO اتحاد المدونين العرب
TODO احــباط
TODO احمد قرة
TODO اغلاق مكتب المنيل
TODO الأناركية بالعربية
TODO الحرملك
TODO الحرملك
TODO الحرملك
TODO الحرية
TODO الخَرَز الملوّن
TODO الغربال
TODO الفسائل
TODO القارئ الشعبي
TODO الله الوطن فاطمه
TODO النبي الأفريقي
TODO الوعى القبطى
TODO باب الدنيا
TODO بنت سعد
TODO بنت مصرية
TODO جار القمر
TODO جذر العدالة والرخاء
TODO جــر شــكل
TODO حائر في دنيا الله
TODO حائر في دنيا الله
TODO حائر في دنيا الله
TODO حائر في دنيا الله
TODO خيوط
TODO دودا
TODO ساقية الفيوم
TODO شهداء الشرطه المصريه
TODO طلاب مقاومة
TODO عالقهوة
TODO على باب الله
TODO عمال مطاحن مصر
TODO عمر سليمان
TODO عن السرد الجديد
TODO عَن الشــِـــعْـر
TODO فن أناركي
TODO فهمي هويدي
TODO فيونكات حرير
TODO قضايا أساسية هامة
TODO قلم (ألم) وطن
TODO ليلى أرمن
TODO مارييت
TODO مُحَمد أُسَـامَه
TODO مدونة خالد البلشى
TODO مدونة رؤوف مسعد
TODO مدونة كافر
TODO مدونون ضد أبو حصيرة
TODO مسلمون ولكن
TODO مصرى أوى
TODO ولآية إسلامية شورية
TODO يناير …. شهادات حية
TODO يوميات مثلي بالفطرة
TODO Gameela Ismail
TODO IslamicLawBlog
TODO KHALED EL-SAWY
TODO Mubarak Games
TODO Mystic Contemplation
TODO samia bakry
TODO SHE2I2
TODO Syria Exposed
TODO wa7damasrya
TODO البنات عايزة ايه
TODO الجيش والديمقراطية
TODO حركة 6 ابريل
TODO خجل حتى النخاع
TODO سفينة فضاء
TODO عايز حقي
TODO فتح عينيك
TODO لقمة عيش
TODO squattercity
TODO GuitArduino
TODO حلم المزرعة
TODO Audio.nodes
[swf file="01-Khuttar.mp3"]
-rw-rw-r-- 1 amr pg994112 6803825 2010-03-09 01:15 01-Battleflag (full version).mp3
-rw-rw-r-- 1 amr pg994112 3175720 2010-03-09 01:15 01-Free Speech for the Dumb.mp3
-rw-rw-r-- 1 amr pg994112 5262302 2010-03-09 01:15 01-The Internationale.mp3
-rw-rw-r-- 1 amr pg994112 7504502 2010-03-09 01:15 02-Nokta.mp3
-rw-rw-r-- 1 amr pg994112 6960736 2010-03-09 01:15 06-Democracy.mp3
-rw-rw-r-- 1 amr pg994112 7390817 2010-03-09 01:15 07-Poor Boy.mp3
-rw-rw-r-- 1 amr pg994112 5289231 2010-03-09 01:15 17-Never Cross a Picket Line.mp3
-rw-rw-r-- 1 amr pg994112 5332681 2010-03-09 01:15 ShabaanAbderrihim-YallaNghanni.mp3
-rw-rw-r-- 1 amr pg994112 277248 2010-03-09 01:15 TheStreetsAreOurs.mp3
-rw-rw-r-- 1 amr pg994112 1307807 2010-03-09 01:15 ZainMahmoud-YabkiWYad7ak.mp3
-rw-rw-r-- 1 amr pg994112 9876712 2010-03-09 01:15 04-H'Asbu-Hum.mp3
-rw-rw-r-- 1 amr pg994112 792544 2010-03-09 01:15 05-Money.mp3
-rw-rw-r-- 1 amr pg994112 5673234 2010-03-09 01:15 05-The Bravery of Being Out of Range.mp3
-rw-rw-r-- 1 amr pg994112 3903365 2010-03-09 01:15 07-Wishes of Happiness & Prosperity.mp3
-rw-rw-r-- 1 amr pg994112 6965752 2010-03-09 01:15 09-Bahdja beïdha.mp3
-rw-rw-r-- 1 amr pg994112 2551685 2010-03-09 01:15 11-Louis Jordan & Ella Fitzgerald-Baby, It's Cold Outside.mp3
TODO Hugo
./drupal2hugo -db arborealannals -user amr -pass ls5czLMC8t0rxMek -host mysql.gharbeia.net:3306 -v
git clone https://github.com/spf13/hyde.git
TODO Eask
curl -fsSL https://raw.githubusercontent.com/emacs-eask/cli/master/webinstall/install.sh | sh
TODO Virtualbox
vboxmanage extpack uninstall "Oracle VM VirtualBox Extension Pack"
TODO Link DSL
u: 025084337-hossam p: ldn
TODO Twitter backup code
fwjd n2jk dzme
TODO Windows keys
| Windows XP | yq7xw-qpt6c-233qf-rrxc7-vf7ty |
| Windows 98 SE | F4XXR-6V2PT-MBK94-6QPM8-CM77Q |
| Windows 7 | 22TKD-F8XX6-YG69F-9M66D-PMJBM |
| Windows 10 | T49TD-6VFBW-VV7HY-B2PXY-MY47H |
TODO blockchain.info
86064715-83a5-6236-50df-470cf898a1bc
TODO Blockchain
certainly weather level value lord respond watch beautiful pressure fist stomach murder
TODO Mastodon
https://mastodon.lol/@evacide https://infosec.exchange/@dymaxion https://mastodon.social/@smari https://mstdn.social/@eldahshan https://lor.sh/@hesham https://mastodon.online/@nariology https://mstdn.social/@lucyellinson https://mastodon.world/@rgrundmann https://mastodon.online/@harikunzru https://mastodon.social/@davew https://mastodon.social/@esqueer https://mastodon.online/@pkrugman https://mastodon.social/@iang_fc https://tilde.zone/@ftrain/ https://mastodon.social/@mmasnick
TODO move to QubesOS
TODO A Signal compatible cross plattform client written in Go and Vuejs telecommunications computer security
TODO Libby
TODO Install ODMPY
pipx install https://github.com/ping/odmpy/releases/tag/0.8.1
TODO Download Libby books and audiobooks
odmpy libby -c -k --opf -d /barrel/library/audio/books/libby
odmpy dl -c -k --opf -d root@192.168.1.100:/barrel/library/audio/books/libby *.odm
TODO GitHub - jareware/docker-volume-backup: Utility container for periodically backing up Docker volumes
TODO GitHub - mikf/gallery-dl: Command-line program to download image galleries and collections from several image hosting sites
- State "DONE" from "NEXT" [2023-08-09 Wed 11:07]
Use this to download Twitter booksmarks as per these instructions.
TODO GitHub - BitResolve/Bounty-Adjudication-System: Noncustodial, Bitcoin-Native, Nostr-Powered FOSS Bounty Adjudicator bitcoin
TODO Pi, your personal AI
TODO GitHub - KillianLucas/open-interpreter: OpenAI's Code Interpreter in your terminal, running locally
TODO GitHub - luarvique/openwebrx: Open source, multi-user SDR receiver software with a web interface radio software
TODO Ollama
TODO GitHub - langchain-ai/opengpts
This is an open source effort to create a similar experience as OpenAI's GPTs. This builds upon LangChain, LangServe and LangSmith This gives you more control over the LLM you use (choose between the 60+ that LangChain offers), the prompts you use (use LangSmith to debug those), and the tools you give it (choose from LangChain's 100+ tools, or easily write your own).
TODO GitHub - google-deepmind/graphcast weather
TODO Animate Aynone
TODO GitHub - tubearchivist/tubearchivist: Your self hosted YouTube media server video archive
TODO proxmox | Techno Tim
TODO Storage - Proxmox VE
TODO GitHub - SecureAI-Tools/SecureAI-Tools: Private and secure AI tools for everyone's productivity.
DONE GitHub - bellingcat/auto-archiver: Automatically archive links to videos, images, and social media content in a Google Sheet
CLOSED: [2023-01-21 Sat 10:01]
TODO GitHub - UDST/urbansim: Platform for building statistical models of cities and regions urbanism simulation software
TODO GitHub - Codium-ai/cover-agent: CodiumAI Cover-Agent: An AI-Powered Tool for Automated Test Generation and Code Coverage Enhancement! 💻🤖🧪🐞
TODO luks?
93bd849d8b861bac5919e171b8645628
TODO Plover linux typing stenography
TODO GitHub - aitechguy/nostr-address-book: nostr address book - a public directory of nostr addresses
TODO Get NIP-05 verified
TODO command-r
TODO Add Debian non-free repositories
TODO GitHub - ping/odmpy: A simple command line manager for OverDrive/Libby loans. Download your library loans from the command line. books archive computers
TODO GitHub - nat/openplayground: An LLM playground you can run on your laptop computers
Run this in docker
TODO GitHub - jmorganca/ollama: Run, customize, and share self-contained & portable large language models computers
TODO GitHub - AntonOsika/gpt-engineer: Specify what you want it to build, the AI asks for clarification, and then builds it. computers
TODO buku/bukuserver at master · jarun/buku · GitHub computers
TODO scrapeghost
TODO LazyLibrarian / LazyLibrarian · GitLab computers
TODO GitHub - mozilla/fxa: Monorepo for Firefox Accounts computers
TODO GitHub - Heapy/vipassana: Life and collaboration assistant computers
TODO Human Programming Interface | beepb00p computers
TODO GitHub - karlicoss/scripts: Various personal scripts computers
TODO GitHub - karlicoss/exports: Various data export scripts that don't deserve a separate repository yet computers
TODO GitHub - karlicoss/HPI: Human Programming Interface 🧑👽🤖 computers
DONE GitHub - gildas-lormeau/SingleFileZ: Web Extension for Firefox/MS Edge and CLI tool to save a faithful copy of an entire web page in a self-extracting HTML/ZIP polyglot file computers
CLOSED: [2023-01-21 Sat 08:51]
TODO New ZeroHello - ZeroNet computers
TODO One Hundred Ideas for Computing | ideas computers
TODO GitHub - MichaelMure/git-bug: Distributed, offline-first bug tracker embedded in git, with bridges computers
TODO Tabula: Extract Tables from PDFs computers
DONE GitHub - novoid/getdigicamdata.sh: Fetching data from my digital camera, rotating image files, renaming according to my file name convention. computers
CLOSED: [2023-01-21 Sat 10:01]
TODO Ollama
Source: [2024-02-28 Wed], curl -fsSL https://ollama.com/install.sh | sh
curl -fsSL https://ollama.com/install.sh | sh
TODO PGP Walk-Through
TODO
Accounting [1/5]
- State "DONE" from [2023-07-28 Fri 13:39]
TODO GitHub - jbms/beancount-import: Web UI for semi-automatically importing external data into beancount
TODO
Radio license [0/5] radio
TODO [A] Get a mailing address for the FCC public listing privacy
TODO Study for exam
TODO Apply for license
TODO Home Page - Hamradioguide radio
Printed radio reference
TODO
Tango [1/5] dance
DONE Do a beginners course
[2023-02-17 Fri 10:54]
NEXT [#A] Do an intermediary course
TODO Do an advanced course
TODO Do practicums
TODO
[A]
Vaccinations [1/3]
DONE Schedule 4th COVID dose
TODO Schedule a flu shot
TODO District of Columbia Immunization Information System (DOCIIS) | doh
TODO
Egypt Law [4/19] law
DONE [A] Build backward archive and index
SCHEDULED: <2019-06-05 Wed>
- State "TODO" from "" [2018-08-01 Wed]
- State "DONE" from "TODO" [2019-06-03 Mon]
DONE [A] Build backward archive index: 1980-2010 inclusive
SCHEDULED: <2019-06-10 Mon>
- State "TODO" from "" [2019-03-23 Sat]
- State "DONE" from "TODO" [2019-08-26 Mon]
TODO Tag laws referring to مرسوم تشريعي as Syrian laws
- State "TODO" from "" [2019-10-06 Sun]
TODO Update Official Gazetta
- State "DONE" from "TODO" [2024-01-21 Sun 03:29]
- State "DONE" from "TODO" [2023-12-12 Tue 02:21]
- State "DONE" from "NEXT" [2023-08-19 Sat 11:47]
- State "TODO" from "" [2020-04-23 Thu]
- State "DONE" from "TODO" [2020-04-24 Fri]
TODO Index Forward Archive: Link Legislations To Issues
- State "TODO" from "" [2019-02-25 Mon]
TODO Organize Forward Archive
- State "DONE" from "TODO" [2024-01-21 Sun 03:29]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-08-02 Wed 18:27]
TODO missing 2023 issues
- ج2023-003-م-ب
- ج2023-007-م-أ
- ج2023-008-م
- ج2023-008-م-د
- ج2023-009-م-أ
- ج2023-013-م-ب
- ج2023-013-م-ج
- ج2023-014-م-ه
- ج2023-014-م-و
- ج2023-021-م-د
- ج2023-022-ت-ب
- ج2023-028-م-ج
- ج2023-028-م-د
- ج2023-031-م-ج
- ج2023-031-م-د
- ج2023-034-م-ب
- ج2023-034-م-ز
- ج2023-035-م-ه
- ج2023-042-م-ج
- ج2023-043-م-أ
- ج2023-044-م-أ
- ج2023-046-ت-أ
- ج2023-047-م-د
- ج2023-048-م-أ
- ج2023-049
- ج2033-052-م-أ
- و2023-025-ت-ج
- و2023-025-ت-م
- و2023-025-ت-ف
- و2023-189 وأي توابع
- و2023-236
- و2023-255
- و2023-263
- و2023-273
- و2023-283
TODO Add Policy Areas
- State "TODO" from "" [2019-10-01 Tue]
TODO Map Legislations Editing/Revoking Previous Legislation
- State "TODO" from "" [2019-10-01 Tue]
TODO Map Legislations With Penal/Procedural Sections
- State "TODO" from "" [2019-10-01 Tue]
TODO USE LEX(URI)
- State "TODO" from "" [2020-06-11 Thu]
TODO related legislations
- State "TODO" from "" [2020-06-20 Sat]
TODO قوانين خارج الأرشيف
- ق1904-0003 العقوبات الأهلي
TODO Write Khaled Hosny And Gaber On Ocr
- State "TODO" from "" [2020-03-30 Mon]
DONE [A] send law PDFs to Gaber
- State "TODO" from "" [2020-03-30 Mon]
- State "DONE" from "TODO" [2020-03-30 Mon]
TODO Write Policy Greenpapers
TODO تعلقيات على مشروع قانون الجمعيات الأهلية
مواد الإصدار ينبغي أن يكون غرضها الإصدار فقط. يجب أن تنقل الأحكام الانتقالية إلى داخل القانون. كما أن مواد الإصدار تتضمن تشريعات مستمرة مثل 4(2) و 4(3)، 5 طبقا لدليل وزارة العدل للتشريعات، اشتراط المادة 8 من مواد الإصدار على أن "يلغي كل حكم يخالف أحكام هذا القانون و القانون المرافق له" يعد من الممارسات السيئة. ينبغي أن يعدد القانون التشريعات التي يلغيها حصرا. إذا كان المشرع نفسه لا يعرف التشريعات المخالفة، فكيف يمكن للمحاكم و المواطنين معرفتها؟
مادة 2(1) تنمية المجتمع ليست الغرض الوحيد للجمعيات مادة 8(ه) تجمع وسائل الاتصال المميكنة المعتادة و المفعلة مادة 9(ج) طلب صحيفة الحالة الجنائية و إقرار بعدم الإدراج على قوائم الإرهاب غير ضروري. المعلومات مصدرها الدولة مادة 9(و) خمسة آلاف جنيه رسم تسجيل النظام الأساسي مادة 12 "لكل ذي شأن" الاطلاع على النظام الأساسي بعد سداد الرسوم. لا ينبغي إثبات صفة من أجل الحصول على مثل هذه المعلومات إن كانت منشورة بداية مادة 14 الحملات بتصريح و مدتها محدودة بسنة مادة 15(1) تنمية المجتمع هي الغرض الوحيد للجمعيات مادة 15(2) المناطق الحدودية بتصريح مادة 16(ر) تحظر إجراء استطلاعات الرأي دون إذن الجهاز المركزي للتعبئة العامة و الإحصاء المادتان 24 و 25 ناقصتان في الصورة مادة 26 تترك كل ترخيص جمع التبرعات للائحة التنفيذية مادة 28 تحتاج قراءة ثانية مادة 30(2) تجيز للوزير وقف الجمعية لمدة سنة مادة 42 تعتبر الأعضاء مستقيلين إن غابوا عن مجلس الإدارة نصف المرات في سنة مادة 45 تسمح للوزير بتعيين مجلس إدارة من الأعضاء إذا أصبح عدد مجلس الإدارة غير كاف مادة 46 تسمح للوزير بإغلاق الجمعية لمدة سنة مادة 48(خ) توجب المحكمة حل مجلس الإدارة إذا لم تقم الجمعية بأية أعمال فعلية أو برامج جدية مادة 49(ت) تعاقب بحل الجمعية في حال "تمادي الجمعية في ارتكاب أي من المخالفات المشار إليها في المادتين 46 و 48 من هذا القانون" المادتان 48 و 49 تقتضيان الحل شرطا. تحتاجان قراءة ثانية مادة 50(2) تسمح للوزير بتعيين لجنة إدارية لإدارة نشاط من أنشطة الجميعة مادة 50(3) تمنع مجلس الإدارة من تسيير الجمعية بمجرد رفع جهة الإدارة دعوى في المحكمة المواد من 53 إلى 80 غير موجودة مادة 69 تشترط أن يكون نشاط المنظمة الأجنبية متفقا مع أولويات و احتياجات المجتمع المصري وفقا لخطط التنمية مادة 75 تسمح للوزير المختص بإيقاف الجمعيات دون حكم محكمة مادة 93 تترك تشريع التطوع بالكامل للائحة
DONE [A] Introduction to the legal archive @blog +writing
SCHEDULED: <2019-01-31 Thu>
- State "TODO" from "" [2019-01-24 Thu]
- State "DONE" from "TODO" [2019-01-30 Wed]
DONE [A] Forward archive index
- State "TODO" from "" [2019-03-23 Sat]
- State "DONE" from "TODO" [2019-09-28 Sat]
TODO القانون الجنائي egypt
تشريع الجرائم للدولة المركزية، و المخالفات للأقاليم.
TODO unilm/kosmos-2.5 at master · microsoft/unilm · GitHub OCR Arabic LLM AI
TODO
TWOW ebook [0/4] library
[2024-02-04 Sun 17:48]
TODO Attach pictures to org file
TODO Figure out indentation
TODO Figure out how to have grey and blue background
TODO Create internal links
TODO
Email [3/6]
DONE Migrate Outlook archive to Emacs
- State "DONE" from "TODO" [2023-07-27 Thu 22:51]
DONE Migrate Thunderbird archives to Emacs
- State "DONE" from "TODO" [2023-07-23 Sun 21:23]
DONE Import Outlook
- State "DONE" from "TODO" [2023-07-27 Thu 21:20]
TODO Archive email
SCHEDULED: <2027-03-17 Wed .+1y>
TODO Auto save email attachments in Emacs.
TODO Migrate Foxmail archive to Emacs
TODO
Contacts/Calendar [1/3]
DONE Merge contact CSV files
- State "DONE" from "NEXT" [2024-02-22 Thu 15:41]
TODO Convert contacts into org-roam nodes
in ~/org/people/
TODO Manage calendar from spreadsheets (or in my case emacs)
TODO
Notes [5/7]
- Original ideas and collected annotations
- Timestamp is not an attribute, because they are evergreen notes
- شروحات على الهوامش
DONE [A] Migrate notes to Emacs
CLOSED: [2023-01-21 Sat 21:19]
From laying text files and from Gnote
DONE Migrate Gnote notes into gnotes.org
CLOSED: [2023-02-09 Thu 03:15]
DONE Convert notes.org into org-roam nodes
TODO Standardize notes
- Clickable titles
- TITLE and URL properties (org-board sadly uses URL not URI)
- CREATED for creation timestamp
- [yyyy-mm-dd DDD HH:mm] for timestamps
DONE Change Creation timestamp to "CREATED" everywhere
To match the tag produced by Orgzly capture, which cannot be changed
DONE Modify web capture to standard
TODO [A] Organize notes
Notes are timeless pieces. They are made up of timed journals and annotations on library content, but eventually they are my own ideas and words. They live in ~/org/notes and are all org-roam nodes.
Part of notes will be published using Hugo.
DONE
Journal [1/1]
- State "TODO" from "" [2023-01-29 Sun 02:15]
- State "DONE" from "TODO" [2023-07-28 Fri 13:59]
Journal are org-roam dailies living in ~/org/daily/. They contain level 2 headers of different ideas, meeting notes… I do not like this arrangement very much but for now it seems like a balance between simplicity and searchability.
DONE [A] Migrate RedNoteBook to Emacs
CLOSED: [2023-01-13 Fri 10:24]
TODO
Web pages workflow [3/8]
DONE Migrate Firefox bookmarks to Emacs
CLOSED: [2023-01-25 Wed 14:41]
DONE move readability to kindle
CLOSED: [2023-07-27 Thu 21:40]
DONE Migrate Readability to Emacs
CLOSED: [2023-02-15 Wed 08:16]
TODO Filter dead URLs to blackholes
Including error 404, unresolving domains, overtaken URLs…
TODO Choose web pages for archiving
TODO Separate Zotero's web pages from references
TODO Migrate Zotero web pages to Emacs
Consider SingleFileZ
TODO Filter feeds
TODO
Documents [0/3]
TODO Migrate Zotero documents to Emacs
TODO Convert documents to ORG files using pandoc
TODO Organise Documents
TODO
Books [1/22]
DONE Tag books 'to-read' and 'read'
Books are now marked 'to-read' and 'read' in a custom boolean column in Calibre, where 'yes' means 'read', 'no' means 'to-read' (copied directly to devices, and unassigned means unread. Physical books and books I come across physically that I want to read are entered in an Android app called Opeanreads.
NEXT Convert Calibre book comments from HTML to ORG (org MD at the worst)
TODO Organise books
TODO Implementation by Jeffrey L. Pressman, Aaron Wildavsky - Paperback - University of California Press
TODO health
TODO Parliamentbook
TODO
Subscriptions [2/11] money
DONE YouTube TV
TODO Youtube premium x2
DONE Google Fi
TODO T-Mobile
TODO Amazon Prime
TODO Netflix
TODO Apple TV
TODO HBO Max
TODO Spotify
TODO MGM+
TODO Amazon prime video purchase code
44569
TODO
Become a stool donor for FMT [1/2] money health
- State "WAIT" from [2024-02-02 Fri 18:42]
Sent an application
[2023-11-06 Mon 11:33]
DONE Apply
TODO Send stool and body photos
TODO
PGP [0/7] security computers
TODO Buy an NFC-enabled key
TODO Put PGP key on security keys
TODO Move files to new PGP key
TODO Publish new PGP key
TODO Create revocation certificate for old key
TODO Revoke old key
TODO
Dailies [0/31]
NEXT The megawatt family home
TODO Fiction idea
Smuggle one shipping container of energy and robotics into a country, have it concealed and build a resistance force underground.
TODO On rights and power
The weak have freedom of speech. The powerful have privacy. The weakest have no right at all.
TODO The invisible handjob of the market
Perhaps a title of a report on prostitution
TODO Aphorisms
"Nation states like war. City states like commerce. Families like stability. Individuals like entertainment"
TODO Boston
We are in Boston. Nancy is invited by the Fletcher School Fares Center to speak. Khaled Fahmy is in the same conference and is also speaking tomorrow in Harvard. Last night we were invited to dinner by Nadim Rouhana and the center and sat at the table with Sahar Aziz. Hossam Bahgat was right when he told me to avoid her at all costs. We also had Christine Boustani with us. She is a very nice person and is hosting Khaled and Kouross' wedding party next week. Nancy and I are missing it.
I have been growing less patient for things I don't want to do. I don't want to sit and listen to political scientists. I do not want to socialize with people or go to places or sleep, eat and drink when I'd rather be doing something else. The pain in my inner ear and around my jaw and head continues. Beginning to think I need to measure my blood pressure.
TODO Boston
I am in an Irish pub called 'the pub' in Boston. The barman calls me 'kid'. I wonder what the protocol is. The balding man next to me with a gun holster is probably younger than I am, but of course I look better. Everyone is playing the lottery. I noticed the barman is always looking at the lottery screen and asked him if he plays and he said 'of course'. Buy Bitcoin, people.
TODO Katherine Maher
Reconnected with Katherine Maher since she joined NPR and moved to DC, partly because it would be useful to Nancy and CIP. Since she took the helm at NPR, a huge wave of criticism began on the internet: NYP, Elon Musk, Steven Pinker and many others. Doctor Musk (vis-a-vis the occasional do-gooder Mr Elon) just announced a campaign to defend the first amendment, triggered by Maher's comment that the first hurdle to misinformation is the first amendment. I don't agree with Katherine s stance on almost everything (and never took her for an intellectual) but I also hate the way the right campaigns on such issues. On one video, Katherine appears to say that, as Wikipedia's CEO, she moved beyond the white and western notion of free and open internet, which is, according to her, an old idea that predates the internet, to a position where ideas such as notability and relying on written primary sources are not enough to adequately represent underrepresented cultures, for example oral cultures. I find this statement disheartening and would find it mildly insulting if I were a person who can be insulted by others. Saying that rationality and precision are white, western notions is not only wrong, but is entirely built on the obscure concept of West and the pseudoscientific concept of whiteness. People taking such positions do so trying to restore some sense of justice in the world but are still believers of the same western and white superiority world they try to undermine. Accepting, for example, Māori oral maps in song and rhythm of the Pacific Ocean as a good enough source for Wikipedia is already accepting that Wikipedia is a superior to Māori tradition. Wikipedia can stick to the written tradition and the Māori to theirs. Not to criticize Katherine as a person. Just the identitarian times we live in.
TODO Emacs as a browser
Building a web browser on top of emacs is probably a hugely missed chance
TODO أمك اسمها معاوية
حلمت خير اللهم اجعله خير أننا كنا في نيويورك عند إنجي و شلباية كالعادة، و اكتشفنا أن الحرب قامت و أن إيران غزت بروكلين لما مجموعة من المقاتلين كسروا علينا الباب. حاولنا نقنعهم بالعقل أننا مش مع أمريكا بس طبعا ما فيش فايدة. و فجأة حصلت دربكة و زعيق و واحد من المقاتلين رمى قنبلة يدوية قتلت نص الموجودين. نجحنا أنا و نانسي و بلال (فضل) و (زوجته) داليا في الهروب تحت ستار الدخان، و بعد مطاردات في شوارع بروكلين دخلنا شمال في حارة سد، و دخل ورانا قائد المجموعة. بطل قائد المجموعة جري و رمى علينا الماسورة ال كان ماسكها في إيده و هو بياخد نفسه شاور للمقاتل ال وصل وراه بالكلاشنيكوف أنه يقتلنا. نانسي و داليا صرخوا أول ما رفع الرشاش في وشنا، فأنا وقفت قدامهم الثلاثة علشان أحميهم بجسمي، و في آخر لحظة من حياتي قلت للمقاتل: "أمك اسمها معاوية". صحيت من النوم على صوت ضحكتي.
TODO Invest in analog computers
TODO My computer timeline
- 1986 micro computer
- 1991 PC
- 1992 email
- 1995 dial up
- 1998 DSL
- 1998 PGP
- 2000 domain name
- 2001 own domain email
- 2003 laptop
- 2003 mobile phone
- 2005 Linux
- 2005 hard disk backups
- 2005 music player
- 2005 shared server
- 2006 small laptop
- 2010 smart phone
- 2010 noise cancelling headphones
- 2010 Low power PC
- 2011 Android phone
- 2012 SSD
- 2013 UPS
- 2013 NAS
- 2013 Bitcoin
- 2015 yubikey
- 2016 hardware wallet
- 2019 portable router
- 2020 synchronous fiber connection
- 2020 low power home server
- 2020 Smart TV
- 2022 YouTube premium and other streaming
TODO Nudism
There are two types of people: nudists, and clothes-minded
TODO Land
I am not really buying land. I had land before. What I am buying is climate, distance, and rule of law.
TODO Dream
Today I dreamt I died of diabetes due to excessive drinking. I need to stop. I need to get a CGM and get in shape.
TODO Comedy between left and right
The left's comedy is irony. The right's comedy is insult.
TODO Difference between natural and corporate persons
Both natural and corporate persons have rights to liberty and property. Only natural persons have a right to life.
TODO The right is the new left?
The right is for organization at a lower level
TODO Justice, peace, and land
I am watching Rome a fourth time perhaps. Caesar is declared imperator in the Senate. He promises justice, peace and land for all Romans. This is the original life, liberty and property.
TODO Specialists and generalists
Specialists flourished during ecologically stable times, while generalists survived during ecological cataclysms.
The top of the food chain also suffers most. The new top predators don't get there by fighting their way up, but by surviving until the current top predator falls
TODO Sovereignty
There are two sovereigns in the world today: the United States and Taliban. China, France and the UK come second, Russia, Western major economies are third, enterprising economies; i.e. India, KSA, Israel, UAE, Qatar, Singapore, Turkey, and Iran come fourth. Most other countries have dominated to no sovereignty.
TODO The US is progressive polity in a conservative regime
Citizens in the United States are far more progressive than the political systems that represents them, even more so than other democracies. The bar for affecting progressive policies in the US is much higher than a simple majority or a super majority (the filibuster for example). Pressure will contribute from below and once that bar is passed, radical (as in from the roots) reforms will pass en messe and the US politics will shift suddenly to the left as a result. The United States then will join the rest of the world. Words like left, right, extreme, radical, patriot, communist, socialist, liberal will have the same meaning as in the rest of the world. This will happen in electoral politics before the supreme Court., at which point the main Republican strategy would be for Justice Thomas to not die.
TODO A good traveler has no fixed plans and is not intent on arriving
The moment we stop making plans is the moment we start learning
TODO Do a boat builder that excels in being off grid and actually recycling water, sewage and trash.
TODO Greshenfeld's contribution is that atoms are bits are cells
TODO Arms transfers will reduce with the rise of automation
If arms companies rely on giving lawmakers jobs in their districts, then automation should make weapons transfer easier to control.
TODO Watching Farya Faraji
We write in cursive and we sing in cursive.
Now I understand why I don't like أناشيد حماس. They are always in diatonic modes, not chromatic or enharmonic
TODO Types of nodes
- Dailies: journaling, meeting minutes, fleeting notes; all timestamped
- Annotations: on library, related to works in library authored by others
- Transient notes (in inbox, or perhaps a generated list of fleeting notes
- (Evergreen) Notes: atomic, abstract, densely inter-connected concepts
- Posts
- Commonplace
- Library items
- Archive items
- GTD
- inbox: mainly GTD, but also Dailies on mobile until Orgzly develops enough
TODO Capital-only futureOwning capital is becoming the main, perhaps sole mode of survival in the near future where labor's value is diminished by AI and robots. This is a quote from David Ricardo.
Source: [2024-04-11 Thu], 71.191.33.213
Ever since I first turned my attention to questions of political economy, I have been of opinion, that such an application of machinery to any branch of production, as should have the effect of saving labour, was a general good, accompanied only with that portion of inconvenience which in most cases attends the removal of capital and labour from one employment to another. … These were my opinions, and they continue unaltered, as far as regards the landlord and the capitalist; but I am convinced, that the substitution of machinery for human labour, is often very injurious to the interests of the class of labourers. (Principles of Political Economy and Taxation Chapter XXXI )
TODO "Humanity begins at Duke"
The quote above, attributed to Lord von Metrinich, stands true today. Human dignity used to be built on knights, servants, peasants, often slaves, and always the rest of the ecosystem. Today, human dignity still stands on a lot of extraction from human labour, the underclasses, and the ecosystem. Tomorrow, computers and robots will replace a lot of this, but the extraction is likely to continue, hopefully more benignly.
Dukes submit to kings, most of the time. They also have the power to push against them when need be. This is why in today's world only the overclasses and the systematically more autonomous are true citizens, because they can push against the sovereign state when need be. True sovereignty for individuals will only exist in space.
TODO Baltimore and Trump
Spent the weekend in a very hot Baltimore. Nancy was speaking at Net Roots, if I get the name right. Not at all interested in grassroots democrat organizing. We stayed on Royal Sonesta overlooking the harbour.
The first evening I had yummy pork belly tacos at the Outpost American Tavern. Truly the best local pub experience I had in the US. Sadly they had run out of Guinness and the bar ladies were confused about other choices. Excellent food. Excellent music and vibe.
The following morning I walked to the Baltimore Art Museum. The route was all Charles St, up and down Mount Vernon where the Washington monument is. I can see how other old American cities had a British charm to them before they were left to rust. This is how I imagine the rust belt. I hope for revival, and maybe some gentrification.
The museum itself promised the largest collection of Matisse open to the public anywhere, and it over delivered. Medieval works, including a fascinating icon of St Anthony; dark and small paintings by the Dutch Renaissance greats, a style I personally hope to imitate one day; modern American painters and everything in between: Matisse, Picasso, Van Gogh, Cezanne, Gauguin, Klimt, Mondrian, neoclassical homeware and furniture, wonderful African masks, and much more. Truly a great experience. I forget how much fine art is a part of me I keep for later. I felt like collecting and painting.
It rained on me all the way back then I waited for Nancy to go out to eat. Octobar was a disappointment and her search for perfection in restaurant choice led to a lot of walking and more disappointment. One of our main points of contention is she misses the good enough in search for the perfect which she doesn't find in the end. To be fair, I think she does that in the little things, while I do it in the major things, and people.
The ride back on Saturday was with an Uber driver who loves his white model Y Tesla so much even though it is a few years away from displacing him. The sight of the DC Mormon temple on this road never fails to impress me. Throughout the days I have been listening to Jeff Flake's Conscience of a Conservative, himself a Mormon, and learning about the American conservative movement. Then I began listening to Max Blumenthal's Republican Gomorrah. There is so much to learn and appreciate about the US and its variety.
Nancy and the driver dropped me off at home while she went to do her hair, which took six hours. I unpacked, cleaned, bought alcohol for Ahmed Harbia and Rasha Gadda's visit the following day, and sat down to have a beer or two. I ended up drinking five while watching Donald Trump get shot in the ear. The previous weeks about how the Democrats are going to stop Trump. Reagan's conservative era was finally about to end and the country's new government, if they pull their act together and force Biden to step down from the presidency, not just aside from the campaign, was going to catch up with its progressive population. Needless to say, the Reagan era did end yesterday, but how the transition will occur is far less certain now. Perhaps a second read of the Fourth Turning is due, because this is the crisis it promised the millennials.
Incubate
NEXT Blood donation
<2025-01-01 Wed> [2023-02-06 Mon 03:10]
NEXT Open University Bsc. (Honours) STEM or Open science
<2025-01-01 Wed> [2021-01-31 Sun]
TODO Social Science PhD
<2025-01-01 Wed>
TODO Law Degree
<2025-01-01 Wed>
TODO Elisp
<2025-01-01 Wed>
TODO Python
<2025-01-01 Wed>
TODO Bash script
<2025-01-01 Wed>
TODO C++
<2025-01-01 Wed>
TODO R
<2025-01-01 Wed>
TODO Ukulele
<2025-01-01 Wed>
TODO Shooting
<2025-01-01 Wed>
TODO Krav Maga self defence
<2025-01-01 Wed>
TODO BJJ self defence
<2025-01-01 Wed>
TODO German
<2025-01-01 Wed>
TODO French
<2025-01-01 Wed>
TODO Mandarin languages
<2025-01-01 Wed>
TODO Russian languages
<2025-01-01 Wed>
TODO Hindi learning
<2025-01-01 Wed>
TODO Swahili languages
<2025-01-01 Wed>
TODO Japanese languages
<2025-01-01 Wed>
TODO Hebrew languages
<2025-01-01 Wed>
TODO Egyptian languages
<2025-01-01 Wed>
TODO Latin languages
<2025-01-01 Wed>
TODO Greek languages
<2025-01-01 Wed>
TODO Aramic languages
<2025-01-01 Wed>
DONE Bake bread food @kitchen
<2025-01-01 Wed> [2023-04-21 Fri 11:00] CLOSED: [2023-07-30 Sun 17:52] SCHEDULED: <2023-04-21 Fri 11:00>
- State "DONE" from "TODO" [2023-04-19 Wed 16:32]
- State "CNCL" from "TODO" [2023-03-19 Sun 06:54]
- State "DONE" from "TODO" [2023-03-10 Fri 04:11]
- State "DONE" from "TODO" [2023-03-07 Tue 12:59]
- State "DONE" from "TODO" [2023-03-02 Thu 19:32]
- State "DONE" from "TODO" [2023-02-25 Sat 14:40]
- State "CNCL" from "TODO" [2023-02-23 Thu 18:54]
- State "DONE" from "TODO" [2023-02-19 Sun 11:16]
- State "CNCL" from "TODO" [2023-02-15 Wed 12:53]
- State "DONE" from "TODO" [2023-02-07 Tue 09:46]
- State "DONE" from "TODO" [2023-02-02 Thu 15:17]
- State "DONE" from "TODO" [2023-01-30 Mon 14:07]
- State "DONE" from "TODO" [2023-01-27 Fri 09:03]
- State "DONE" from "TODO" [2023-01-23 Mon 14:06]
- State "DONE" from "TODO" [2023-01-20 Fri 21:27]
- State "DONE" from "TODO" [2023-01-17 Tue 12:25]
- State "DONE" from "TODO" [2023-01-13 Fri 15:26]
TODO Pantry food
<2025-01-01 Wed>
- Garlic
- Salad
- Bell Peppers
- Eggplant
- Parsley
- Dill
- Tomatoes
- Cherry tomatoes
- Onions
- Spinach
- Zucchini
- Cucumber
- Avocado
- Limes
- Popcorn
- Oats
- Beans
- Coffee
- Chocolate
- Hummus
- Sausages
- Wheat
- Rice
- Barley
- Flour
- Cheese
- Almond milk
- Eggs
- Cold cuts
- Shrimps
- White sauce
- Chick peas
- Red sauce
- Kosher dill pickles
- Black olives
- Green olives
- Edamame
- Tuna
[2024-02-04 Sun 17:37]
NEXT Power amplifier AV
<2025-01-01 Wed>
TODO Speakers AV
<2025-01-01 Wed>
TODO Free things to do
<2025-01-01 Wed>
- linux
- password manager
- secure comms
- online removal
- no social media
- no stock browser
TODO Minimal expense
<2025-01-01 Wed>
- UPS Box (show passport because it has no address)
- Switch phone (mint mobile)
- Faraday bag
- VPN (two?)
- prepaid card
TODO Expensive
<2025-01-01 Wed>
- Personal Mail Box (South Dakota, Texas. Escapees)
- New devices
- New car
- New home
TODO Online Removal
<2025-01-01 Wed>
- delete tweets before closing down account
- Change information before deleting it
- use a strict robots.txt file to delete cache before losing a domain
- isolate email addresses for each sign up service
TODO Domain Name
<2025-01-01 Wed> Domain history search
TODO Post
<2025-01-01 Wed> Send to MAIN DROP information you NEED using one return address and disinformation you will DUMP using another return address. Instruct mail company to separate mail according to mail address and send NEED overnight and DUMP regular to BLUFF BOX. Instruct BLUFF BOX company to send to BURN, and BURN to SAFE. Let BLUFF expire. Cancel BURN.
Main drop > Bluff box > Burn box> Safe box
TODO Money
<2025-01-01 Wed> Blur for anonymous payment? privacy.com Pre-paid credit card Anonymous LLC
TODO Phone
<2025-01-01 Wed> Mysudo numbers
- personal number
- business number
- home alias
- travel alias
- outgoing call, recycled often
- 2FA
- Signal
Break phone: buy, charge many minutes, forward to number you want to call, smash it Buy Fresh phone and calling card separately. Use calling card on fresh phone to call break phone
Spoof card to change called ID Alibi services Discrete voice mail, goes to voicemail without ringing
TODO Making Aliases
<2025-01-01 Wed> Home alias should be gender-neutral, like Alex. Also use initials
- Get a Mint SIM card, free for 7 days. Sign up accounts using it, put other 2FA during the week
TODO Change The Person Who Lives At Your Home
<2025-01-01 Wed>
- Get a magazine subscription at your home in an alias name, especially Wired and Forbes. This will spread the data across databases, then use the alias to order packages. Update your listing on whitepages.com to match the alias and home address OR find someone with your alias name and change their address to yours
- Online registers, like theknot.com, show you are married in a different city.j
- Get some ads in your alias, for example by calling a cruise company
- Get a blog in your alias' name and niche interest, put your address on the blog. Get a blog in your domain, put a different address, for example a hotel or a library far away
- change credit card to PO Box, then change utility bills, then change bank account
TODO Moving house
<2025-01-01 Wed> Land trust is s type of living trust. LLC better for protection. Land trust good for privacy. No record of land trusts. Make land trust in a different state than the land, and make the beneficiary an LLC in another state. Other than Delaware, Wyoming, Nevada, LLC must have more than one member
TODO Driver License
<2025-01-01 Wed> Driver license not in a residential address, in case of accident data becomes public record
TODO Travel
<2025-01-01 Wed> Hotel rewards programmes under an alias name, pre-pay your stay non-refundable so you do not need to show ID at check-in, or use an electronic check-in so you do not have to go to front desk at all. Get high on the awards program
TODO OSINT
<2025-01-01 Wed> IDAEA: browser extension that automates account sign-up
TODO Facebook events
<2025-01-01 Wed> facebook.com/search/[personID]/events facebook.com/search/str/[personID]/events/[year]/[date]
TODO Facebook
<2025-01-01 Wed> Make aliases join FB groups with similar interests to their persona, then accept friend suggestions made by FB of these people with similar interests.
TODO Email alias
<2025-01-01 Wed> nonaddy
TODO Public Finances
<2025-01-01 Wed> :ID: Public-Finances-2024-02-05-14-06-50
:END:
The public budget
TODO Mapping Egypt
<2025-01-01 Wed>
TODO Altair 8800
<2025-01-01 Wed> <2025-01-01 Wed> [2024-02-04 Sun 17:45]
TODO Create a lightning wallet using GPT4 that employs YubiKey NFC
<2025-01-01 Wed> <2025-01-01 Wed> [2023-03-19 Sun 06:06]
TODO Write an Emacs client for gesture devices
<2025-01-01 Wed> <2025-01-01 Wed> <2025-01-01 Wed> [2024-02-04 Sun 17:46]
TODO Translate Future Scenarios
<2025-01-01 Wed> <2025-01-01 Wed> [2024-02-04 Sun 17:47]
TODO Prepare Khalil Kalfat epubs
<2025-01-01 Wed> <2025-01-01 Wed> [2024-02-04 Sun 17:48]
TODO Publish Kalfat's writings
<2025-01-01 Wed> <2025-01-01 Wed> [2019-03-15 Fri]
CNCL Translate AFAQ
<2025-01-01 Wed> <2025-01-01 Wed> [2023-01-18 Wed 08:28]
TODO Translate MediaWiki
<2025-01-01 Wed> [2024-02-04 Sun 17:49]
TODO Translate FreedomBox UX
<2025-01-01 Wed> [2024-02-04 Sun 17:50]
TODO Write Madamasr articles digitalRights
<2025-01-01 Wed> <2025-01-01 Wed> [2018-07-05 Thu]
TODO Internet appliance
<2025-01-01 Wed> <2025-01-01 Wed> [2024-02-04 Sun 17:59]
TODO write Internet appliance concept digitalRights
Freedombox meets Bitcoin
Problem: Since its early beginnings, Bitcoin development has attracted a large developer and user crowd from outside the traditional Free and Open Source Software movement
Self-hosted competition have sustainability questions. Debian is not going anywhere Vast exposure to cloud and other applications, all limited to RaspberryPi architecture
MyNode (debian) Raspberry blitz Embassy OS (virtualization, built their own package manager, own messaging protocol, own licesense prohibits distribution of compiled code to maintain a business model, built their own Tor browser) Nix project
TODO Open Personal Equipment System
<2025-01-01 Wed> <2025-01-01 Wed> [2024-02-04 Sun 17:59] An open standard and instances of personal equipment, starting with carrying, organization and storage.
Components
Bag system
Based on Bright Line bags, with a duffel garment bag Plus a rucksack that serves well as a vertical antenna base.
Clothes packing cubes
Sling
Travel wallet/notebook
RFID, passport, IDs, card, documents, cash, notebooks
Personal electronics kit
USB powered device that generates private key, from which sub keys could be written on NFC-enabled chip that works without power for quick signing and encryption
Toiletries kit
First aid kit
Armor Plate carrier
Chest rig
Helmet
Belt
Two-part belt that Velcro's one on top of the other.
Seat
Bike
Functions
War
Law enforcement
Shooting
Hunting
Trapping
Fishing
Flying
Mechanic
Carpentry
IT
Construction
Photography
Travel
Amateur Radio
Camping
Hiking
Survival
Drone
Biking
TODO Contrato: Smart Contract Marketplace
<2025-01-01 Wed> <2025-01-01 Wed> [2023-11-03 Fri 16:43]
Initially services, until Bitcourier is in place. Buying/Selling/Arbitrating
- Telecom network
- Identity
- social network
- civil law contacts
BitCourier
An anonymous network for shipping physical items is theoretically possible, and could be organized like Tor.
- When you buy something you give the seller an encrypted version of your address that s/he cannot read.
- The seller ships the package to a reshipper who has the ability to decrypt your address.
- The reshipper then ships your package through normal channels like UPS.
The main benefit of this system is if the seller is busted for some reason, your name/address are not compromised.
An obvious weakness of this system is if the reshipper is compromised. A way around this is to have multiple reshippers with layers of encryption and each reshipper peels off only one layer to see which reshipper to send it next (or to you).
You the buyer could even encrypt the entire reshipping route to follow. The seller would then ship the package to the reshipper you specify when s/he decrypts the address.
The main weakness of this whole deal is the "exit node" i.e. reshippers that can see your real physical address so it can be shipped conventionally to you.
BitDrop.
Bitdrop would be a system for human "runners" to pass goods from person to person in the most cryptographically secure way possible.
Person A negotiates a sale of an item to person B online. Upon deciding on BitDrop as means of distribution, distance would be calculated and current gas prices would be tabulated. This is the base shipping cost.
Person A types in their "willing to travel" radius, and, the machine would chew on the data and randomly/securely spit back out an exact lat-lon point within that radius.
A nearby runner gets notified that a package is ready for distribution. He's signed up with his own "willing to travel" radius as well. Ideally, if there are enough warm bodies in the chain, the venn diagrams all start overlapping, and form a human supply chain.
Upon the completed transaction, all runners in the chain would receive good feedback (ideas for delivery confirmation? sms? scanned qr codes?), and get higher GPG rankings, which would enable them to deliver goods that had been marked with higher trust requirements…and likewise, the more you're trusted in in the chain, the more the runners can charge. Seller wants to sell something of importance/high value? they can raise the trust threshold (and subsequently, the shipping rate)
As far as black market goods go, I've thought of this scenario. The TOS for bitdrop would state specifically that transfer of illegal goods is strictly prohibited; however, you may anonymously mark your package "shaded" if you feel the contents pose risk for any member of the chain, including senders, receivers and most importantly, runners. Shaded goods may be distributed exclusively via dead drops, and runners can opt into notifications of shaded packages, but only after a GPG trust threshold is passed, so a significant time expenditure is required before you go "googling for drugs". You basically knowingly waive your rights when you deal with shaded transacations. That being said, I'm sure it would turn into a profitable venture for risk-takers, while keeping clean runners away from things that could land them in jail for trafficking.
There are other details I've thought of, including the distinction between dead drops and trusted drops. Dead drops would be entry-points into the runner market. Let's say I want to make some extra money, and I want to sign up as a runner. I go to the bitdrop site and sign up for an entry-level position. This requires that I pledge a deposit for the first item I'll deliver. This means that new runners will mainly focus on delivering items of little value. It's a Low-risk, low-return scenario for everybody involved with the transaction. Once I, the runner, complete my transaction, the deposit is returned to my account, as well as the base shipping cost + small delivery fee. Part of becoming a runner is setting up GPG-Authentication. The buyer and seller then add ratings to my transaction, and after a threshold is reached, I'm allowed to forego placing a deposit on items of certain values or lower. Eventually, dead drops would give way of chains with "trusted drops", where people who've established their trust arrange meetups based on encrypted lat-lon values and anonymous instructions. The specifics should be debated about at length to promote the safety and longevity of the chain
I don't expect my first ramblings to be the end-all-be-all of this system, but unless I'm way off base, I think the concept has potential. I actually wrote up an extensive post detailing this idea yesterday, and stupidly hit f5 before I sent it, erasing my whole post instantly… I'd love to hear feedback and concerns.
BitDrop implementation
Along with the initial idea (the subject of this post) some extra details.
1)Use Tor style onion routing to deliver packages.
What does this mean?
Every node(person doing delivery) must have a gpg key. When a new package is to be entered into the system the sytem works out the route, selecting the appropriate nodes.
It then uses the nodes public key to encrypt the nodes delivery location. The result is that each node can only know the location they deliver to and not the final destination of the package. If geocaching is used then each node doesn't even know who the previous node was.
Example. Person in New York wants to deliver a package to Washington D.C. Logs into the system, gives the pickup(either someone comes to collect the package, or the user delivers it to the first drop off point), and the final destination.
The system works out the optimal route, notifies all the soon to be involved nodes, and gives the user the first drop off point for the package (or someone will come and collect it).
The person who collects the package first is the first node, the only information they have been given is where to collect the package and where to deliver it to, the next location is the collection point for the next node and so on.
The result is each node knows only a portion of the route, it increases privacy, and the strngth of the delivery network.
I'm also thinking of having an android app that each node can use to sign the delivery of the package to the next node (using gpg), so if something happens to the package we know who's responsible, it also allows some measure of package tracking for the customer.
Each node gets a portion of the overall payment for it's delivery.
Quote from: chodpaba on April 27, 2011, 06:22:25 PM
Putting the object in a Faraday cage (yes, wrapping in foil) could provide a defense from live location tracking. But once the package is opened its location could be reported. So, this would provide a measure of security to the delivery network, but not to the recipient. Interesting, I was going to say that someone would need to have the address of the recipient to send the package to them in the first place, but then I remembered the system does.
Also a package that could transmit it's location over a reasonable distance would need to be reasonably powerful and not small in size, larger than a 19inch crt monitor?
Quote However, I do not know what you would do with a data-logging device that uses accelerometer input to reconstruct location by dead reckoning, a Faraday cage would not help in this case, it could penetrate the security of both the delivery network as well as that of the recipient. It need not even be terribly accurate, with enough samples routes can be reconstructed with a very high accuracy if they are re-used… Even completely random routes and drops would only have the effect of limiting the degree of accuracy such a attack could deliver. It could also reveal a lot of other information, including the transportation mode of the carriers, (walk/run, bike, car, etc.) as well as gait, which could be used to identify individual carriers. With enough time/space data the travel path could be also be correlated to video surveillance.
Now you're being more paranoid than I.
Quote The best defense in this case would be to severely limit the size/weight of packages delivered, and also wrap them in foil, to prevent RFID tracking.
I agree. Any other suggestions to prevent the network being attacked?
What about law enforcement using entrapment against entry nodes? For example, they have an entry node (first person to collect package from user) collect the package which they have put illegal items such as drug into, and then proceed to arrest the entry node.
I'm thinking that you will need some reputation to be able to send packages too, this should help the network to resist.
It is also a bodyguard on the move system. The package contents are always open
Entire route reputation is damaged (fined?) if the package is physically damaged map shows coverage and gaps to be filled?
TODO Co-ops
<2025-01-01 Wed> <2025-01-01 Wed> [2023-09-09 Sat 18:27]
Central square that has
- food store/household store/kitchen/restaurant/hotel
- school and playground in the center
- library/museum/gallery on top of function/dance hall/coffeeshop
- theatre/cinema/conference building
- hospital
- workshop
- sport/concert complex
- train station
- court house/jail
- municipality
- police station/fire brigade/national guard
- food
- clothes
- household goods
- recycling
- transport
- shelter
- health and wellness
- education
- industry
Operated using a council-wide local currency
TODO Cantaloupe Online Store — Cantaloupe Store
<2025-01-01 Wed> <2025-01-01 Wed> [2023-12-13 Wed 08:54]
Vending machines store.
TODO Develop a combat coordination software as part of a game that becomes useful in real life
<2025-01-01 Wed> <2025-01-01 Wed> [2024-01-19 Fri 10:03]
TODO Download torrents
<2025-01-01 Wed>
Become a Debian package maintainer
<2025-01-01 Wed> [2020-06-11 Thu]
TODO
SDR software [0/10] radio
<2025-01-01 Wed> [2023-07-31 Mon 11:10]
Write a comprehensive SDR software based on GNU Radio, assuming that it, being Python, will have good performance.
-
Applications
- Earth-Moon-Earth
- Active Link Establishment (ALE)
- Satellite
- Broadcast Rx
- Phono (FM, AM, SSB, CW)
- Synchronous data
- Asynchronous data
- Slow-scan Television (SSTV)
- Computer networking
- Passive radar
- Directional Signal Finding (DSF)
- GPS Rx
NEXT Tuner
TODO Modem
TODO In
TODO Out
TODO Log
TODO Profile (Location, License, personal profile) Rig
TODO UX control
TODO Antenna controller
TODO Amplifier controller
TODO Power supply controller
TODO AmazeOwl - Amazon Product Research Tools for Wise Sellers - FREE to get Started! business
<2025-01-01 Wed>
NEXT Write a world history of peace
<2025-01-01 Wed>
Habits
TODO Shave
- State "DONE" from "TODO" [2024-07-10 Wed 09:52]
- State "DONE" from "NEXT" [2024-07-10 Wed 09:51]
- State "DONE" from "NEXT" [2024-06-17 Mon 10:49]
- State "DONE" from "NEXT" [2024-04-23 Tue 10:45]
- State "DONE" from "NEXT" [2024-03-09 Sat 13:19]
- State "DONE" from "TODO" [2024-02-21 Wed 21:11]
- State "DONE" from "TODO" [2024-02-04 Sun 19:34]
- State "CNCL" from "TODO" [2024-01-29 Mon 09:00]
- State "DONE" from "TODO" [2024-01-27 Sat 15:53]
- State "CNCL" from "TODO" [2024-01-25 Thu 22:39]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2023-12-12 Tue 12:42]
- State "DONE" from "TODO" [2023-08-22 Tue 10:01]
- State "DONE" from "TODO" [2023-08-21 Mon 21:41]
- State "DONE" from "TODO" [2023-04-19 Wed 16:32]
- State "DONE" from "TODO" [2023-03-22 Wed 20:42]
- State "DONE" from "TODO" [2023-03-19 Sun 06:54]
- State "DONE" from "TODO" [2023-03-07 Tue 12:59]
- State "DONE" from "TODO" [2023-03-02 Thu 19:32]
- State "DONE" from "TODO" [2023-02-23 Thu 18:53]
- State "DONE" from "TODO" [2023-02-17 Fri 20:56]
- State "DONE" from "TODO" [2023-02-15 Wed 12:52]
- State "DONE" from "TODO" [2023-02-12 Sun 10:51]
- State "DONE" from "TODO" [2023-02-08 Wed 21:23]
- State "DONE" from "TODO" [2023-02-02 Thu 15:17]
- State "DONE" from "TODO" [2023-01-31 Tue 09:48]
- State "CNCL" from "TODO" [2023-01-29 Sun 17:09]
- State "DONE" from "TODO" [2023-01-21 Sat 15:19]
- State "DONE" from "TODO" [2023-01-19 Thu 10:15]
- State "DONE" from "TODO" [2023-01-15 Sun 13:16]
- State "DONE" from "TODO" [2023-01-12 Thu 11:45]
TODO Gym weights
| excercise | repeats |
|---|---|
| Biceps curl | 40 |
| Seated chest press | 145 |
| Shoulder press | 25 |
| Leg press | 130 |
| Abdominal | 8 |
| Chest press | 70 |
TODO Metformin
Take metformin on off days, with a meal, because it is heavy on the stomach
NEXT Meditate
- State "DONE" from "TODO" [2024-03-09 Sat 13:19]
- State "CNCL" from "TODO" [2024-02-06 Tue 14:39]
- State "CNCL" from "TODO" [2024-02-04 Sun 19:34]
- State "CANCELED" from "TODO" [2024-01-29 Mon 09:00]
- State "CANCELED" from "TODO" [2024-01-27 Sat 15:53]
- State "CANCELED" from "TODO" [2024-01-25 Thu 22:39]
- State "DONE" from "TODO" [2024-01-22 Mon 10:32]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
TODO Water plants
- State "DONE" from "NEXT" [2024-07-10 Wed 09:53]
- State "DONE" from "NEXT" [2024-07-09 Tue 13:19]
- State "DONE" from "NEXT" [2024-07-09 Tue 13:18]
- State "DONE" from "NEXT" [2024-07-09 Tue 13:18]
- State "DONE" from "NEXT" [2024-07-09 Tue 13:18]
- State "DONE" from "NEXT" [2024-07-09 Tue 13:18]
- State "DONE" from "NEXT" [2024-07-09 Tue 13:18]
- State "DONE" from "NEXT" [2024-06-17 Mon 10:49]
- State "DONE" from "NEXT" [2024-02-27 Tue 10:04]
- State "DONE" from "NEXT" [2024-02-21 Wed 21:11]
- State "DONE" from "NEXT" [2024-02-13 Tue 18:15]
- State "DONE" from "NEXT" [2024-02-06 Tue 14:38]
- State "DONE" from "TODO" [2024-01-28 Sun 13:04]
- State "DONE" from "TODO" [2024-01-22 Mon 16:42]
- State "DONE" from "TODO" [2024-01-21 Sun 03:29]
- State "DONE" from "TODO" [2024-01-21 Sun 03:29]
- State "DONE" from "TODO" [2024-01-21 Sun 03:29]
- State "DONE" from "TODO" [2024-01-21 Sun 03:29]
- State "DONE" from "TODO" [2024-01-21 Sun 03:29]
- State "DONE" from "TODO" [2023-12-12 Tue 12:42]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-12-12 Tue 02:22]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-06 Sun 12:48]
- State "DONE" from "TODO" [2023-07-30 Sun 17:52]
- State "DONE" from "TODO" [2023-07-23 Sun 21:24]
- State "DONE" from "TODO" [2023-07-23 Sun 21:24]
- State "DONE" from "TODO" [2023-07-23 Sun 21:24]
- State "DONE" from "TODO" [2023-07-04 Tue 08:08]
- State "DONE" from "TODO" [2023-07-04 Tue 08:08]
- State "DONE" from "TODO" [2023-06-18 Sun 21:34]
- State "DONE" from "TODO" [2023-06-18 Sun 21:34]
- State "DONE" from "TODO" [2023-06-18 Sun 21:34]
- State "DONE" from "TODO" [2023-06-18 Sun 21:34]
- State "DONE" from "TODO" [2023-06-18 Sun 21:34]
- State "DONE" from "TODO" [2023-06-18 Sun 21:34]
- State "CNCL" from "TODO" [2023-06-18 Sun 21:34]
- State "CNCL" from "TODO" [2023-06-18 Sun 21:33]
- State "CNCL" from "TODO" [2023-06-18 Sun 21:33]
- State "DONE" from "TODO" [2023-04-19 Wed 16:31]
- State "DONE" from "TODO" [2023-04-19 Wed 16:31]
- State "DONE" from "TODO" [2023-04-19 Wed 16:31]
- State "DONE" from "TODO" [2023-04-19 Wed 16:31]
- State "DONE" from "TODO" [2023-03-20 Mon 21:29]
- State "CNCL" from "TODO" [2023-03-19 Sun 06:55]
- State "DONE" from "TODO" [2023-03-10 Fri 04:11]
- State "DONE" from "TODO" [2023-03-02 Thu 19:32]
- State "DONE" from "TODO" [2023-02-23 Thu 18:54]
- State "DONE" from "TODO" [2023-02-15 Wed 12:52]
- State "DONE" from "TODO" [2023-02-07 Tue 09:46]
- State "DONE" from "TODO" [2023-01-30 Mon 14:07]
- State "DONE" from "WAIT" [2023-01-23 Mon 14:31]
- State "DONE" from "TODO" [2023-01-15 Sun 13:17]
- State "DONE" from "TODO" [2023-01-12 Thu 01:19]
NEXT NMN
- State "DONE" from "NEXT" [2024-06-17 Mon 10:49]
- State "DONE" from "NEXT" [2024-03-09 Sat 13:19]
- State "DONE" from "NEXT" [2024-02-14 Wed 11:37]
- State "DONE" from "NEXT" [2024-02-06 Tue 14:39]
- State "CNCL" from "NEXT" [2024-02-06 Tue 14:39]
- State "CNCL" from "TODO" [2024-02-04 Sun 19:35]
- State "DONE" from "TODO" [2024-01-29 Mon 12:42]
- State "DONE" from "TODO" [2024-01-28 Sun 13:04]
- State "CNCL" from "TODO" [2024-01-27 Sat 15:54]
- State "CNCL" from "TODO" [2024-01-27 Sat 15:54]
- State "CNCL" from "TODO" [2024-01-27 Sat 15:53]
- State "CNCL" from "TODO" [2024-01-25 Thu 22:39]
- State "CNCL" from "TODO" [2024-01-25 Thu 22:39]
- State "CNCL" from "TODO" [2024-01-22 Mon 16:43]
- State "CNCL" from "TODO" [2024-01-22 Mon 16:43]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:29]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:29]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:29]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:29]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:29]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:28]
- State "CNCL" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2024-01-21 Sun 03:27]
- State "DONE" from "TODO" [2023-12-12 Tue 12:46]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "TODO" [2023-08-21 Mon 21:40]
- State "DONE" from "NEXT" [2023-08-09 Wed 09:35]
- State "DONE" from "TODO" [2023-08-07 Mon 16:03]
- State "DONE" from "TODO" [2023-03-22 Wed 20:34]
- State "DONE" from "TODO" [2023-03-22 Wed 20:34]
- State "CNCL" from "TODO" [2023-03-20 Mon 21:29]
- State "DONE" from "TODO" [2023-03-20 Mon 21:29]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:03]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:03]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:03]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:03]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:03]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 09:02]
- State "CNCL" from "TODO" [2023-03-19 Sun 06:55]
- State "DONE" from "TODO" [2023-03-19 Sun 06:54]
- State "DONE" from "TODO" [2023-03-02 Thu 19:33]
- State "CNCL" from "TODO" [2023-03-02 Thu 19:32]
- State "DONE" from "TODO" [2023-03-02 Thu 19:32]
- State "DONE" from "TODO" [2023-03-02 Thu 19:32]
- State "DONE" from "TODO" [2023-02-18 Sat 11:36]
- State "DONE" from "TODO" [2023-02-17 Fri 20:56]
- State "DONE" from "TODO" [2023-02-16 Thu 17:19]
- State "CNCL" from "TODO" [2023-02-16 Thu 17:19]
- State "DONE" from "TODO" [2023-02-15 Wed 12:53]
- State "CNCL" from "TODO" [2023-02-15 Wed 12:53]
- State "CNCL" from "TODO" [2023-02-15 Wed 12:53]
- State "DONE" from "TODO" [2023-02-12 Sun 10:51]
- State "CNCL" from "TODO" [2023-02-12 Sun 10:51]
- State "CNCL" from "TODO" [2023-02-12 Sun 10:51]
- State "CNCL" from "TODO" [2023-02-12 Sun 10:51]
- State "CNCL" from "TODO" [2023-02-08 Wed 21:24]
- State "CNCL" from "TODO" [2023-02-08 Wed 21:24]
- State "CNCL" from "TODO" [2023-02-08 Wed 21:23]
- State "CNCL" from "TODO" [2023-02-08 Wed 21:23]
- State "CNCL" from "TODO" [2023-02-08 Wed 21:23]
- State "DONE" from "TODO" [2023-02-08 Wed 21:23]
- State "CNCL" from "TODO" [2023-02-02 Thu 15:30]
- State "CNCL" from "TODO" [2023-02-02 Thu 15:30]
- State "CNCL" from "TODO" [2023-01-31 Tue 09:49]
- State "CNCL" from "TODO" [2023-01-30 Mon 14:08]
- State "DONE" from "TODO" [2023-01-29 Sun 17:09]
- State "DONE" from "TODO" [2023-01-29 Sun 17:09]
- State "DONE" from "TODO" [2023-01-27 Fri 09:04]
- State "CNCL" from "TODO" [2023-01-27 Fri 09:04]
- State "DONE" from "TODO" [2023-01-27 Fri 09:04]
- State "DONE" from "TODO" [2023-01-27 Fri 09:04]
- State "DONE" from "TODO" [2023-01-22 Sun 15:46]
- State "CNCL" from "TODO" [2023-01-21 Sat 09:28]
- State "CNCL" from "TODO" [2023-01-21 Sat 09:28]
- State "DONE" from "TODO" [2023-01-19 Thu 12:55]
- State "DONE" from "TODO" [2023-01-19 Thu 10:15]
- State "DONE" from "TODO" [2023-01-19 Thu 10:14]
- State "DONE" from "TODO" [2023-01-16 Mon 10:26]
- State "DONE" from "TODO" [2023-01-15 Sun 13:16]
- State "DONE" from "TODO" [2023-01-15 Sun 02:24]
- State "DONE" from "TODO" [2023-01-14 Sat 21:32]
TODO Archive phone
<2027-03-16 Tue .+1y>
TODO Spanish languages
- State "DONE" from "TODO" [2024-07-10 Wed 09:54]
- State "DONE" from "TODO" [2024-07-10 Wed 09:54]
- State "DONE" from "TODO" [2024-07-10 Wed 09:54]
- State "DONE" from "TODO" [2024-07-10 Wed 09:54]
- State "DONE" from "TODO" [2024-07-10 Wed 09:54]
- State "DONE" from "TODO" [2024-07-10 Wed 09:53]
- State "DONE" from "TODO" [2024-07-10 Wed 09:53]
- State "DONE" from "TODO" [2024-07-10 Wed 09:53]
- State "DONE" from "TODO" [2024-07-10 Wed 09:53]
- State "DONE" from "TODO" [2024-07-10 Wed 09:53]
- State "DONE" from "NEXT" [2024-07-10 Wed 09:53]
- State "DONE" from "NEXT" [2024-07-09 Tue 13:17]
- State "DONE" from "NEXT" [2024-06-17 Mon 10:49]
- State "DONE" from "NEXT" [2024-02-27 Tue 10:13]
- State "DONE" from "TODO" [2024-02-21 Wed 21:11]
[2023-07-24 Mon 22:14]