Files
memex/org-gtd-tasks.org

483 KiB
Raw Blame History

Amr GTD

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 [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>

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 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

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 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 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:

  1. Create a new VM with ID 900 using VirtIO networking drivers
  2. Import the qcow Debian image as a disk to the new VM. The disk will be called local-lvm:vm-9500-disk-0
  3. Attach the imported disk as a VirtIO SCSI device to the VM.
  4. Attach a drive for the Cloud-Init config to the VM.
  5. Set the VM to boot from the imported disk image.
  6. Add a serial console to the VM, which is needed by OpenStack/ProxMox.
  7. 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.
  8. 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 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
DONE Edit /etc/fstab to make sure swap is deleted
  • 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]
DONE On host
echo overlay >> /etc/modules
DONE Add to your contaier config /etc/pve/lxc/XXX.conf
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop: 
lxc.mount.auto: proc:rw sys:rw
DONE On containers

Last versions of kubernetes requires also shared filesystem, so add into your /etc/rc.local

mount --make-rshared /
TODO [4/9] Install Kubernetes
DONE Install curl and apt-transport-https
  • 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
DONE Get GPG key
  • 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
DONE Add repository and update repositories
  • 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
DONE Install Kubernetes
  • 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
TODO Controller node only: Initialize our Kubernetes cluster
  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.

TODO Setting up our user account to manage the cluster

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
TODO Install an Overlay Network
  kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/
Documentation/kube-flannel.yml
TODO Verify kubectl configuration
  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
TODO Bash completion
  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 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 Install arboreal
TODO Upgrade to latest Drupal
TODO Migrate Drupal to Wordpress
TODO Migrate Wordpress to Ghost
TODO Migrate Wordpress to static
TODO [A] Choose between Ghost and a static website
TODO rimenaguib.org   project
TODO Install Ghost
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 Run bitcoin node
TODO Run electrum node
TODO HOWTO — ElectrumX ElectrumX 1.16.0 documentation
TODO Environment Variables — ElectrumX ElectrumX 1.20.2 documentation
TODO How to Install an Electrum Server using Full Bitcoin Node and ElectrumX
TODO Run lightning node
TODO Debian Desktop
TODO AI
TODO GPT4All
TODO GOAT
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 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 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 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 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

TODO Install dependencies
sudo apt install python3-pydbus
TODO Extract archive
tar xzf gssp-recoll-1.1.1.tar.gz
TODO Install
cd gssp-recoll-1.1.1
./configure --prefix=/usr
make
sudo make install
TODO Cleanup
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="";
        n="";
      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 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://www.abutaleb.net/ali/

http://msayed2004.wordpress.com/

http://anon868.blogspot.com/

http://zeryab.blogspot.com/

http://platform.manalaa.net/

http://platform.manalaa.net/blog_aggregator

http://www.haladeeb.info/

http://aucpetition08.blogspot.com/

http://mashi97.blogspot.com/

http://www.iq.harvard.edu/blog/netgov/

http://www.internetartizans.co.uk/blog/2

http://www.mobileactive.org

http://catdestroyshomes.org/

http://egytopia.wikia.com/

http://sovietposter.blogspot.com/

http://www.crisisgroup.org

http://sabbah.biz/mt

http://arabi.wikia.com/

http://www.marefa.org/blog

http://www.mogtamana.org/

http://www.ijnet.org/

http://www.npr.org/storycorps?ft=2&f=510200

http://sharkawi.net/blog/1/feed

http://memokareem.blogspot.com/

http://otherthings.manalaa.net

http://gayofsun.blogspot.com

http://omegatimes.blogspot.com/

http://ma.poemeversion.com

http://houdounisbi.com

http://www.elbadeel.net/

http://unstrung-larapawson.blogspot.com/

http://shayfeen.com

http://www.abna2masr.com/ar/

http://x-ist.blogspot.com/

http://masr-heya-ommi.blogspot.com

http://ta5areef.wordpress.com/

http://ikhnaton2.com/whisper

http://abdomashakel.blogspot.com/

http://socialistsalex.blogspot.com

http://msh-ana.blogspot.com/

http://elijahzarwan.net/blog

http://alexandrasandels.blogspot.com/

http://elhakika.blogspot.com

http://yalhwy.maktoobblog.com/

http://liberalismisfreedom.blogspot.com/

http://bonobology.blogspot.com/

http://asrar555.blogspot.com/

http://www.maktoobblog.com/ashrafshehata

http://bluerose.egyblogs.com/

http://tabulagaza.blogspot.com/

http://www.bloggers-observatory.org/

http://raedyassin.blogspot.com/

http://ziadrahbany.blogspot.com/

http://ibesh.wordpress.com/

http://elmovirgin.blogspot.com/

http://www.syriangavroche.com/

http://okbah.cc/ok

http://elbakali.jeeran.com/

http://www.elbakkali.com

http://arabictadwin.maktoobblog.com

http://katib.org/katibfeeds

http://bahrainblogs.org

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://www.monbiot.com/feed/

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://katib.org/rss.xml

http://keptiamuslema.blog.com/atom/

http://freemonem.cybversion.org/feed/

http://grassgrassgrass.blogspot.com/feeds/posts/default

http://orientaleve.blogspot.com/atom.xml

http://wa7da-w-khalas.blogspot.com/feeds/posts/default

http://larmani.blogspot.com/feeds/posts/default

TODO Feeds

TODO a-films
TODO CairoNYman
TODO ebn elnil
TODO ebn elnil
TODO Free Alaa!
TODO خيوط
TODO دودا
TODO SHE2I2

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 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 - 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 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 - 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 command-r

TODO Add Debian non-free repositories

TODO New ZeroHello - ZeroNet   computers

TODO Tabula: Extract Tables from PDFs   computers

TODO Ollama

Source: [2024-02-28 Wed], curl -fsSL https://ollama.com/install.sh | sh

curl -fsSL https://ollama.com/install.sh | sh

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]

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 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 health

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

https://youtu.be/DbAnaeFJtV8?si=NrK0TAdwCh9PHH7C

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

  1. personal number
  2. business number
  3. home alias
  4. travel alias
  5. outgoing call, recycled often
  6. 2FA
  7. 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

  1. 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>

  1. 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
  2. Online registers, like theknot.com, show you are married in a different city.j
  3. Get some ads in your alias, for example by calling a cruise company
  4. 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
  5. 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
Personal encryption device

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.

  1. When you buy something you give the seller an encrypted version of your address that s/he cannot read.
  2. The seller ships the package to a reshipper who has the ability to decrypt your address.
  3. 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

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]

Someday/Maybe