Files
memex/org-gtd-tasks.org

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

  • State "DONE" from "TODO" [2023-07-28 Fri 13:56]

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

TODO 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

TODO 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/188]   computer

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

SCHEDULED: <2024-11-06 Wed .+1m>

  • 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

SCHEDULED: <2024-11-06 Wed .+1m>

  • 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 Minutes [16/59]

Minutes is about emergency and immediate needs

  • In military terms, Minutes and Hours is tactical.
  • apparel: cage, underwear, t-shirt, shorts/pants, warm layer, dry/windbreak layer
  • ICT: phone, watch
  • need: air
  • buy
  • fast
  • eat
  • water
  • food
  • first aid
  • breathe
  • meditate
  • walk

NEXT Underwear   apparel

DONE Langoti underwear   apparel
  • State "DONE" from "NEXT" [2023-08-12 Sat 11:58]

AnNafi® Langot Mens Traditional Indian Langoti | Supporter Loincloth Cotton Langot Mens Underwear | Underpants Black & Cream

TODO Cargo shorts/pants   apparel

TODO Socks   apparel

DONE Shoes   apparel

DONE N95 mask   wellness kit

DONE Oura ring   wellness kit

DONE Credit card knife   make

DONE Android phone   network

CLOSED: [2023-06-13 Tue 06:35]

DONE SIM card   network

CLOSED: [2023-06-13 Tue 06:35]

DONE OnlyKey   security

DONE Bluetooth earphones   AV

DONE Bank card   money

CLOSED: [2023-12-08 Fri 18:01]

TODO Cash   money

DONE IDs and Documents   papers

DONE Wallet   organizing

DONE Key Organizer & Keychain Multi-Tool   organizing

CLOSED: [2023-08-01 Tue 06:46]

DONE Pen   writing

DONE Gap Hands Off Tool   health

CLOSED: [2023-08-01 Tue 06:49]

DONE Keys   security

TODO Yubi Key   security

TODO Handcuff Key/Delta Key: three or four $3-15   security SERE

TODO OscarDelta Anhoa key for chinese plate handcuffs   security SERE

TODO Hancuff shims (key-style) $6 (two pack)   security SERE

TODO Kevlar Cordage $5-15   security SERE

TODO Ceramic razor blades $12   security SERE

TODO Lock picks $50 Bogota nano: titanium   security SERE

TODO Escape saw (shawmer tech) $20   security SERE

TODO Quick stick/EZ decoder $10   security SERE

TODO 1 gram gold bar $75   security SERE

TODO Diamond (Round cut .23K) $250   security SERE

TODO Cash   security SERE

TODO Thumbtack compass   security SERE

TODO Water treatment tablets x2   security SERE

TODO microSD card (three partitions)   security SERE

TODO Blood chit   security SERE

TODO GO alert drug   security SERE

TODO Concealment quarter dollar   security SERE

TODO Slim Dungarees OUTLIER   apparel

TODO Zip Pouch Black   organizing

TODO Hours [30/91]

  • In military terms, Minutes and Hours is tactical.
  • ICT: battery, Linux phone, tapping device
  • need: water
  • radio: handy talky
  • tools: pouch
  • cook
  • yoga

DONE Emergency blanket X4   shelter

DONE Sun hat   apparel

DONE Beanie hat   apparel

DONE Face drab   apparel

NEXT Outdoors/shooting sunglasses   apparel

DONE Shell layer   apparel

TODO Leather gloves   apparel

DONE Pathfinder water bottle   water

DONE Paper filter   water

DONE 4-Way Sillcock Key   water

DONE Spork   food kit

TODO Flask   food kit

TODO Aluminium Foil   food kit

TODO Whisky   food materials

DONE Toothbrush   wellness materials

DONE Toothpaste   wellness materials

DONE Q tips   wellness materials

DONE Lip balm   wellness materials

DONE Hand Sanitizer   wellness materials

CLOSED: [2023-08-08 Tue 08:05]

TODO Floss   wellness materials

TODO Torniquet   firstaid kit

TODO Painkillers   firstaid materials

TODO Aspirin   firstaid materials

TODO Band-aids   firstaid materials

TODO Pepper spray   defence

TODO Slingshot   defence

TODO Glock 26   defence

TODO Urban Carry G2   defense

TODO Bug Repellent   defence

DONE Zippo torch   fire kit

DONE Flashlight   light kit

DONE Wire saw   make

DONE Leatherman bits extender   make

DONE ¼”>Micro bit adapter   make

DONE Universal screwdriver key   make

TODO Bits   make

TODO Covert Companion lock picks   make

TODO +Turning Tool   make

TODO +Expansion pack   make

TODO Covert Instruments   security

TODO Oiler pen   make

TODO GOAT Modular Multi-tool   make

TODO Door Jammer   make tools

TODO Scissors   make

TODO Zip ties   make materials

TODO Duct Tape   make materials

TODO Rubber bands   make materials

TODO Paper clips   make materials

TODO Sewing kit   make materials

TODO Heat shrink tubing   make materials

TODO Velcro   make materials

TODO Superglue   make materials

DONE Battery pack   power

DONE SD cards   storage

DONE Micro SD>USB-A adapter   storage

TODO Yaesu FT-5DR   radio

DONE SeedSigner   security

DONE Kindle   display

DONE Cables   interface

TODO Button compass   maps

TODO Whistle   emcomm

TODO Cash   money

DONE Sharpie pen   writing

DONE Maxpedition EDC   organizing

TODO Carabiner   organizing

DONE Plastic insert   organizing

TODO SAS urban survival handbook   security

TODO Emergency flare   security

TODO Orange smoke   security

TODO Condom

TODO Pill container   health

KITSTON Titanium Keychain Pill Holder Medicine Container Fob with Key Ring Making It a Travel Pill Box Case - Silver - Standard (Silver - 1 Pack)

TODO Pill Container   health

Titanium Small Pill Holder Keychain, TISUR Portable Pill Case Waterproof Pocket Pill Box Container Carrier to Hold Pills, Vitamins, Fish Oil, Supplements

TODO GOAT

DONE Fresnel lens   fire kit kit

TODO Escape Tools | OSCARDELTA   security security

TODO Titanium Bogota lockpick   make make

TODO Days [33/114]

Days is nomadic. Travel is constant, slow, and near. Mode of travel is on foot, bicycle, or canoe. In military terms, Days, Rural and Weeks is operational.

  • ICT: router, cables, key, streaming
  • need: shelter
  • strength training
  • Cycling

DONE Speedo swimsuit   apparel

  • State "DONE" from "NEXT" [2023-08-12 Sat 12:13]

Speedo Men's Swimsuit Square Leg Endurance+ Solid

NEXT Over coat   apparel

TODO Dress shirt(s)   apparel

DONE Jeans   apparel

TODO Grounding shoes   apparel

TODO Duffel Bag 2 in 1 Hanging Suitcase   organizing

TODO Wine opener   food kit

TODO Nail clippers   wellness kit

DONE Hair brush   wellness kit

DONE Shaving kit   wellness kit

DONE Comb   wellness kit

TODO Towel   wellness kit

DONE Ostrich pillow   wellness kit

TODO X3   wellness kit

DONE Deodrant   wellness materials

DONE Wet wipes   wellness materials

DONE Castille soap   wellness materials

DONE Coconut oil   wellness materials

DONE Shaving razors   wellness materials

DONE Body shaver   wellness materials

TODO Sunscreen   wellness materials

DONE Melatonin   wellness materials

DONE Aspirin 1mg   wellness materials

DONE Multivitamin   wellness materials

TODO NMN or 1000mg NR   wellness materials

TODO Wonderfeel Youngr™ NMN 900mg 60 Capsules   wellness materials

DONE Fish oil   wellness materials

TODO Resvirotrol 98%, 1000mg   wellness materials

DONE AAA batteries   power

DONE AAA>AA battery adapter   power

DONE Power adapter   power

DONE Travel router   network

TODO PinePhone Pro   computing

DONE NESDR Nano 3 SDR   radio

TODO IC-705   weeks radio

DONE Whip antenna   antennae

DONE Bluetooth headphones   AV

DONE Bluetooth speakers   AV

TODO Cash   money

DONE Passport   papers

CLOSED: [2023-07-31 Mon 21:04]

TODO Framework Laptop   computer

DONE Duffel   organizing

TODO Brightline bags   organizing

TODO Tom Bihnn 25 Litre bag   carrying

TODO Tom Bihnn Small Travel Tray   organizing travel

TODO Traveler's notebook passport size   writing

TODO Pacsafe 5L   organizing

DONE Toiletry bag   organizing

DONE Packing cubes   organizing

DONE Electronics pouch   organizing

DONE Public transport   transport

TODO Brompton E-M6R   transport

TODO Cyclone IV Chubby Bicycle Trail   transport

TODO Watch

TODO Move   plans

an urban pack, an outdoors pack, and a bike

TODO quip | Home   wellness

TODO Flo Mask   wellness

TODO Home - Bicycle Man   transportation

DONE Nod pod   days shelter

TODO The Pakt Travel Backpack   organizing

TODO Get a Voyager | zsa.io   computer

TODO Unstoppable Domains   computer

TODO Bitkey: self-custody bitcoin wallet   bitcoin money

TODO Folding cups   water

TODO COMFORT-AIR®NXMD - Dentec Safety Safety Specialists   health

Mask with replaceable filters. Probably can 3D print the housing and use the filters only

TODO Duration Health   health

Medicine kits. Useful for every level from Days upwards

TODO Bypass Voice, SMS and Text Verifications   privacy phone

Real US mobile numbers backed by physical SIMs compatible with all platforms.

TODO Rural [36/169]

  • radio: QRP, battery, amp, solar
  • In military terms, Days, Rural and weeks is operational.
  • Sun light
  • Grounding
  • Heat
  • Cold
  • Navigation
  • Knots
  • Identifying flora and fauna
  • Shooting
  • Fishing
  • Radio

NEXT Tarp   shelter

DONE Light tarp   shelter

TODO Sleeping mat   shelter

DONE Face mosquito net   shelter

TODO Poncho   shelter

TODO Contactor trash bags   shelter

DONE Hiking shirt   apparel

DONE Technical gloves   apparel

DONE Pants   apparel

DONE Minimalist footwear   apparel

TODO Bush shirt   apparel

TODO Socks x3   apparel

TODO Rain shoes   apparel

DONE Sawyer water filter   water

DONE Water bladder   water

TODO Water purification tablets   water

TODO Kitchen sink   food kit

TODO Billy can   food kit

TODO Pot scrubber   food kit

TODO Cutting board   food kit

DONE Nano stove kit   food kit

TODO Aluminium bowl   food kit

TODO Hard tack   food materials

TODO Freeze-dried food   food materials

TODO Portable broth   food materials

TODO Rice/pasta   food materials

TODO Beans   food materials

TODO Canned tuna   food materials

TODO Seasoning   food materials

TODO Coconut oil   food materials

TODO Coffee   food materials

TODO Dark chocolate   food materials

TODO Jerky   food materials

TODO Nuts   food materials

DONE Fishing system   fishing

DONE Fishing line 133 feet   fishing

TODO Speedhook fishing kit   fishing

DONE Soap box   wellness kit

DONE Safety goggles   wellness kit

TODO Goggles travel case   wellness kit

TODO Insoles   wellness kit

DONE Geiger Counter   wellness kit

DONE Bar soap   wellness materials

TODO Dental floss 100m   wellness materials

TODO Toilet Paper   wellness materials

TODO Nitrel gloves   wellness materials

DONE Potassium Iodide   wellness materials

DONE Knee brace   firstaid kit

TODO CPR mask   firstaid kit

TODO Arm sling   firstaid kit

TODO Trauma Shears   firstaid kit

TODO Medical Tape   firstaid kit

TODO Medical Gloves   firstaid kit

TODO Tweezers   firstaid kit

TODO Respirator Mask   firstaid kit

TODO Laxative   firstaid materials

DONE IDF bandage x2   firstaid materials

TODO Loco tape for feet   firstaid materials

TODO Antibiotic Ointment tube   firstaid materials

TODO Abdominal pads   firstaid materials

TODO Suturing Kit   firstaid materials

TODO Styptic Powder   firstaid materials

DONE Hand and Body Warmers   firstaid materials

TODO Baby Powder for controlling moisture   firstaid materials

TODO Gauze pads   firstaid materials

TODO Band-aids   firstaid materials

TODO Benadryl   firstaid materials

TODO Antibiotics   firstaid materials

TODO Aspercream   firstaid materials

DONE Potassium Iodide   firstaid materials

TODO Centre fire rifle   defense

TODO Body Armour   defense

TODO Ballistic helmet   defense

TODO Gun Cleaning Kit   defense

TODO Stunt gun   defense

TODO Fire bellows   fire kit

DONE Ferro Rod   fire kit

DONE Matches, waterproof   fire materials

TODO Chemlights   light kit

TODO Flashlight x2   light kit

TODO Camp axe/Machete   make

TODO E tool   make

DONE Knife sharpner   make

DONE Fixed blade knife   make

TODO Pieces of cloth and leather   make

DONE Silky Pocket Boy folding saw   make

DONE Paracord spool   make

DONE 550 paracord 100 feet   make materials

TODO PowerFilm LightSaver Max   power

DONE Spare batteries   power

TODO Prepaid calling card   network

TODO Pre-paid SIMs   network

TODO LAB599 TX-500   radio

TODO LAB599 BP-500   power radio

TODO DIY599 PA500E   radio

TODO DIY599 BAT500   power radio

DONE MFJ Chameleon MPAS 2.0   antennae

DONE Trezor One   security

DONE Signaling mirror/Compass   maps

TODO Map case   maps

TODO Topographic maps   maps

TODO Small binoculars   maps

TODO Satellite communicator   emcomm

TODO Cash   money

DONE Backpack   organizing

TODO Dry bag for backpack   organizing

TODO Halftrack Backpack | Eberlestock   organizing

TODO Pacsafe 120L   organizing

DONE Faraday drybag   organizing

DONE PLCE side bags   organizing

DONE Yoke system   organizing

DONE Maxpedition fatty   organizing

TODO Big River Dry Bag | Sea to Summit   organizing

TODO Ziploc bags

TODO Compressed sponge

TODO Aurelle TOOB Brush | REI Co-op   hygiene

TODO Down trekking quilt instead of a sleeping bag

TODO Data Repository - Off-Grid Weather   radio

Critical datasets delivered over Winlink and Iridium

TODO Weeks [14/173]

Weeks is constantly nomadic. Movement is almost daily and range is far. Movement mode is car, horse, or raft.

  • In military terms, Days, Rural and weeks is operational.
  • ICT: laptop
  • need: food
  • attire: one season
  • radio: mobile, one box
  • tools: one box
  • Make
  • Yoga
  • Sewing
  • Trapping
  • Driving
  • Tango
  • Astronomy

NEXT Hunter boots   apparel

TODO Fishing/Hunting Vest   apparel

TODO Urban clothes   apparel

TODO Water store   water

TODO Water sanitizer   water

TODO Water purifier   water

TODO Coffee grinder   food kit

TODO Pantry   food materials

TODO Dry brushing body brush   wellness kit

TODO CGM   wellness kit

TODO Artificial light glasses   wellness kit

TODO Sleeping mask   wellness kit

TODO Baking soda   wellness materials

TODO Coconut oil   wellness materials

TODO Olive oil   wellness materials

DONE Castille soap   wellness materials

TODO Shea butter   wellness materials

TODO Essential oils   wellness materials

TODO Apple cider vinegar   wellness materials

TODO Aminos   wellness materials

TODO C60   wellness materials

TODO Creatine   wellness materials

TODO Health insurance   firstaid kit

TODO Thermometer x2   firstaid kit

TODO Shotgun   defence

TODO Bic lighter sleeve   fire kit

TODO Steel wool   fire materials

TODO 9V battery   fire materials

DONE Zippo Butane Fuel   fire materials

TODO Fixed blade knife backup   make

TODO Whet stone   make

TODO Magnifying glass   make

TODO Screwdriver bit set   make

TODO Wood carving knife   make

TODO Vice grip   make

TODO Hammer   make

TODO Adjustable wrench   make

TODO WD-40   make

TODO Measuring tape   make

TODO Level   make

TODO Pry Bar   make

TODO Hack saw   make

DONE Precision screw drivers   make

TODO Mallet   make

TODO Solar charger   power

TODO Spare phone battery   power

TODO Satellite phone   network

DONE RPi4 8GB w/Wifi   computing

DONE Protectli Vault 6 port   computing

DONE 2TB M.2 SSD   storage

DONE M.2/mSATA>SATA adapter   storage

TODO HackRF SDR   radio

TODO Mountain Topper   radio

TODO KrakenSDR | Crowd Supply   radio

TODO Wolf River Coils   radio

TODO Mobilinkd TNC4 | Mobilinkd   radio

TODO Sota Beams mast   antennae

TODO Slim Jim J-Pole   antennae

TODO OnlyKey x2   security

DONE Audio interface kit   AV

DONE Microphone   AV

TODO Digital camera   image

TODO Weather meter   maps

TODO Weather radio   emcomm

TODO Cash   money

TODO Traveller notebook   organizing

TODO Trade items   papers

DONE Electronics organiser   organizing

TODO Molle holster   organizing

TODO Car   transport

TODO Lockpick gun   security

DONE Harmonicas   entertainment

DONE Ukulele   entertainment

TODO Telescope   entertainment

TODO Extra Keys   security

TODO Plasma Lighter XR | TRUE   fire

TODO Wiretrustee SATA | Crowd Supply   ICT

The first native Raspberry Pi Compute Module 4 SATA carrier for tiny DIY NAS

TODO EOS Prawn - Satin Spear   make tools

TODO Wireless+   music

TODO Blanket   shelter

TODO Tent mosquito net   shelter

TODO Portable fridge   food

TODO Thermos   food kit

TODO Dutch oven/skillet   food kit

TODO Camping stove   food kit

TODO Dutch oven kit   food kit

TODO Snaring kit   hunting

TODO Fishing rod and hooks   fishing

DONE Dental kit   wellness kit

TODO Shower   wellness kit

DONE Ear cleaning kit   wellness kit

TODO Portable laundry   wellness kit

TODO N95 mask inserts   wellness materials

TODO Bic lighter   fire materials

TODO Heavy duty flashlight   light kit

TODO Lantern   light kit

TODO Candles   light kit

TODO UCO beeswax 12 hour candle   light materials

TODO Duration Health — Emergency Medical Kit :health:wellness:medicine

TODO BuddiHEX™   radio

TODO CHA SLING BAG   radio

TODO Months [2/142]

Months is semi-nomadic. Movement is seasonal and movement mode is horse and buggy, car and trailer, or sailing boat. Not prepared in terms of supplies

  • In military terms, Months and Years is strategic.
  • ICT: low powered server
  • need: health and wellness
  • attire: all seasons
  • radio: desktop
  • Settle
  • Plan scenarios, plans B and C
  • Three redundancies
  • Running
  • Swimming
  • Nurse License
  • Medicinal herbs
  • Wine making
  • BJJ

TODO Water collection   water

TODO Total dissolved solids meter   water

TODO Stream   water

TODO 5 gallon buckets   food kit

TODO 5 gallon mylar bags   food kit

TODO 5 gallon bucket opener   food kit

TODO Gamma lids   food kit

TODO 32 oz mason jars   food kit

TODO 16 oz mason jars   food kit

TODO Solar cooker and bag   food kit

TODO Meat thermometer   food kit

TODO Dehydrator   food kit

TODO Moka pot   food kit

TODO Freezer   food kit

TODO Distillery   food kit

TODO Pantry   food materials

TODO Small zone 1 garden   food materials

TODO Cellar   food materials

TODO Bow and Arrows   hunting

TODO Dental calculus remover   wellness kit

TODO Air quality monitor   wellness kit

TODO Manual washing machine   wellness kit

TODO Air purifier   wellness kit

TODO Composting toilet   wellness kit

TODO Blood test   wellness kit

TODO Apollo System   wellness kit

TODO DAVID Delight Pro   wellness kit

TODO EMS Device   wellness kit

TODO Posture shirt   wellness kit

TODO Face wash   wellness materials

TODO BJJ Gi   defence

TODO Raging Judge   defence

TODO Flashlight, crank powered   light kit

TODO Slide rule   make

TODO Rotating power tool   make

TODO Sledge hammer   make

TODO Sewing machine   make

TODO Saw chain   make

TODO Electric drill   make

TODO Shovel   make

TODO Allen keys   make

TODO Adjustable pipe wrench   make

TODO Multi-purpose electrician tool   make

TODO Clamps   make

TODO Saw horse   make

TODO Gorilla cart   make

TODO Cross saw   make

TODO Putty knife   make

TODO 550 paracord 1000 feet   make materials

TODO Solar charger   power

TODO Power generator   power

TODO Fuel   power

TODO Satellite broadband   network

DONE NexDock   computing

TODO Rack-mounted silent computer   computing

DONE 4TB M.2 SSD   storage

TODO NAS   storage

TODO GMRS   radio

TODO SDRUno   radio

TODO IC-7300   radio

TODO IC-9800   radio

TODO ATU   radio

TODO Buddistick vertical antenna   antennae

TODO Hi-Fi audio player   AV

TODO Headphones   AV

TODO Digital reader   display

TODO GoPro   image

TODO Meshtastic   emcomm

TODO Cash   money

TODO Second residensy   papers

TODO Second citizenship   papers

TODO Narrowboat/RV   transport

TODO Narrow boat   project
  • 55-57 feet, maybe up to 60
  • Cruiser or semi trad stern
  • u or n shaped galley
  • water filler on both sides, rain collector
  • reverse layout
  • stove in the middle of the boat, maybe diesel not coal
  • well-deck designed for sitting, not storing

Braibar Boats is a good maker

TODO LUMI   entertainment

TODO Chapman stick   entertainment

TODO Dato DUO   entertainment

TODO Trench coat   apparel

  • Burberrys' not Burberry, next is acquascotum
  • 100% or 51% cotton
  • Camel colour gerandine
  • Raglan sleeve, seam at the back not at shoulder, go for smaller arm hole
  • Double breasted
  • Epaulettes
  • Gun flap
  • Throat latch
  • D rings on the belt
  • Sleeve straps
  • Deep yoke back
  • Wedge back
  • Through pockets from the outside and the inside
  • Leather buckles
  • Checked lining
  • Made in England
  • Pre 1999

TODO The Solar Republic Card Game   entertainment space

TODO Body fat caliper   wellness kit

Body Fat Caliper and Measuring Tape for Body - Skinfold Calipers and Body Fat Tape Measure Tool for Accurately Measuring BMI Skin Fold Fitness and Weight-Loss, (Black) https://a.co/d/2END8ag

TODO TV antenna   antennae

TODO LUMI Keys Studio Edition | ROLI | ROLI   music entertainment

TODO TruAge PACE TruDiagnostic™   longevity

This product measures aging speed.

TODO Land survey   make

TODO Sun Pure Water Makers   sailing water food

TODO Home | FlexiModal   bike transportation

TODO LANDNAV   games

LANDNAV is an authentic simulation of military land navigation training and sport orienteering.

TODO Blockstream Jade - Blockstream Store   ICT Bitcoin Money

The Jade is used to access Liquid chains

TODO Handcuffs   security

TODO Years [1/515]

Sedentary life. Travel is discouraged.

  • ICT: high powered server
  • need: information and communication
  • attire: all contexts
  • radio: rack-mounted
  • Split preps
  • Debt-free
  • Community
  • Woodworking
  • Milling
  • Plumbing
  • Ironworking
  • Butchering
  • Permaculture
  • Aquaponics
  • Food preservation
  • Pottery
  • Distillation
  • Mechanics
  • Electrics
  • Leather working
  • Rope making
  • Soap making
  • Candle making
  • Oil pressing
  • Painting/drawing
  • Singing
  • Photography
  • Sound editing

NEXT Earthship   shelter

TODO Canopy bed

TODO Land   shelter

TODO Shoes   apparel

  • Black Oxford whole cut, cap toe, leather sole
  • Brown wingtip Derby
  • Loafer. Penny loafer. Different shade of brown than the Derby
  • Double monk strap, reddish brown
  • Half brouge oxford in medium brown

TODO Well   water

TODO Condensation   water

TODO Lake   water

TODO Seeds   food materials

TODO Livestock   food materials

TODO Laser hair removal   wellness kit

TODO Sauna   wellness kit

TODO Vasper system   wellness kit

TODO Ice bath   wellness kit

TODO Matress   wellness kit

TODO DNA test   wellness kit

TODO DNA lab   wellness kit

TODO Psilocybin   wellness materials

TODO Hunting rifle   defence

TODO Soldiering station   make

TODO Multimeter   make

TODO 3D printer   make

TODO Oscilloscope   make

TODO 12V DC Power supply   make

TODO Solar panels   power

TODO Wind turbine   power

TODO Thermoelectric cells   power

TODO 48 port PoE network switch   network

TODO Keyboard   computing

TODO Flex Radio   radio

TODO High-end Superheterodyne   radio

TODO Geochron Atlas 4K Geochron   radio

TODO Heathkit   radio

TODO Tubes   radio

TODO CB   radio

TODO Linear Amplifier   radio

TODO Amplifier   AV

TODO Sources   AV

TODO DAC   AV

TODO AV Processor   AV

TODO AF Amplifier   AV

TODO Speakers   AV

TODO Webcam x2   image

TODO Personal beacon   emcomm

TODO Cash   money

TODO Better telescope   papers

TODO Cash-flow investments   papers

TODO Garcia Exploration 52   transport

TODO Sail boat   project
  • Center cockpit
  • Headroom
  • Heavy displacement more stable
  • Monohull vs catamaran
  • Deck salon: big windows in the front
  • Size: balance between comfort and manageability. 50-60 feet

Amel 50 Garcia Exploration 45/52/60 Beneteau Oceanis 51.1

TODO Electric drums   entertainment

TODO Drum computer   entertainment

TODO Altair 8800 Clone   computer

TODO The Electric Brewery   food

TODO Synthesis: Legal Psilocybin Retreat in Amsterdam   wellness psychology

TODO Brewing kit   food kit

TODO Brewing   skills

TODO Better (mechanical) watch :

TODO Askhole: Open Up   entertainment

TODO Opulo   make tools machines

Opulo's goal is to help people manufacture their products.

DONE N050 LH the Real Chastity Key Necklace This is a Working - Etsy   sex

CLOSED: [2023-02-16 Thu 16:49]

TODO Kitchen block   food

TODO QRP Labs Kits   radio

TODO Animaro   art

Moving architecture

TODO better.bike   bike

TODO Marc Pro Plus Device - Marc Pro   wellness

TODO CATCH:1 + CARRY COURANT   power

iPhone charging cradle for Nancy

TODO CCK Small Cleaver   kitchen

TODO Hardware AMSAT   radio

TODO Fungi Perfecti | Home   permaculture

TODO The Innovator of Modular IoT Development Platform | M5Stack   electrontics prototyping making

TODO 45HomeLab Store   computers

TODO RGB LED Mask Urban Skult   entertainment

TODO Contents - tango.info   music

TODO CyberBike - MySuperEbike   transportation bike

TODO mAT-705PLUS TUNER   radio

TODO All Gift Cards - Coincards   money

TODO Ben Greenfield Amazon.com   food health

TODO Nuchido TIME+ NAD Supplement   health

TODO PC Engines home   computer

TODO https://www.hack0.jp/   money

TODO Anasayfa | Vahaa   gardening

TODO JMP: Your phone number on every device   phone jabber sip telecom

https://jmp.chat/

Google Voice like service

TODO THE ANALOG THING   computer

TODO OpenCPC — OpenAeros   wellness electronics

Open particle counter

TODO Blockstream Satellite Pro Kit   money bitcoin

TODO LABEL - SODAQ   shipping post

TODO CharaChorder One   ICT

TODO Buy - Tonal   health

Weight training device that fits on the wall

TODO Combustion Inc.   electronics

Predictive Thermometer & Display

TODO FutureBit   money bitcoin

Bitcoin miner

TODO ESPKey Wiegand Interception Tool   security electronics

The ESPKey is an advanced implantable logic analyzer and debugging tool designed for use with any device using the Wiegand communication protocol. It has a built-in Wireless LAN communication module and can store up to 80,000 unique credential bitstreams in non-volatile memory, depending on credential bit format. The credential bitstream may be retrieved or “replayed” on demand by connecting to the built-in web interface from any mobile device or computer with a web browser.

The ESPKey is 100% transparent to both the card reader and the downstream panel.

TODO Woojer   computers entertainment

Elevate your games. Feel your music. Get lost in your movies. Connect with your inner self. Catapult any multimedia experience to another dimension.

All with high-fidelity haptic feedback.

TODO The Audiophiles Guide PS Audio   AV audio entertainment hifi books

TODO IDEAL Noalox Anti-Oxidant Compound 4 oz. 30-026   make electronics

Use the IDEAL NOALOX 4 oz. Anti-Oxidant Compound to improve the efficiency of aluminum conductor connections. This compound provides additional inner-strand and inner-conductor current paths. For use with pressure type wire connectors including screw-on, tap, service entrance and split-bolts.

TODO nodl   bitcoin

TODO Lumina Probiotic   health

TODO MOD WIGGLER - Index page   music

TODO DigiKey - Electronic Components Distributor

Coldcard components sold here

TODO ShaperHub

TODO Escape Tools | OSCARDELTA   security

TODO Pkarr - HackMD   computers

TODO TXAdvance

TXAdvance is a radio frequency transmitters manager that helps you quickly get the best frequencies by scanning the Radio Frequency spectrum and automatically calculating the intermodulations products of your selected frequencies

TODO Desktop Metal   making

TODO sBitx HF SIGNALS   radio

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: <2023-12-30 Sat .+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 Tag #rottenURI [0/3048]

TODO untitled

TODO untitled

TODO Untitled

TODO Untitled

TODO Untitled

TODO untitled

TODO untitled

TODO untitled

TODO untitled

TODO untitled

TODO استقالة الرئيس التنفيذي لـ«المصرية للاتصالات» بسبب الاحتجاجات العمالية | المصري اليوم، أخبار اليوم من مصر

TODO «الداخلية»: تغيير رئيس مباحث أمن الدولة و«الإعلام» ومديري أمن السويس وشمال سيناء | المصري اليوم، أخبار اليوم من مصر

TODO بيان أسرة مبارك لـ«المصري اليوم»: نتعرض للتشويه ظلمًا وحساباتنا المصرفية أقل من المعلن | المصري اليوم، أخبار اليوم من مصر

TODO اتفاقية تقاسم مياه النيل تدخل حيز التنفيذ بعد توقيع بوروندي | المصري اليوم، أخبار اليوم من مصر

TODO استقالة عدلي حسين محافظ القليوبية بعد مظاهرات طالبت برحيله | المصري اليوم، أخبار اليوم من مصر

TODO وزير الداخلية يقيل مدير أمن البحيرة بعد ساعات من نشر فيديو «إحنا أسيادهم» | المصري اليوم، أخبار اليوم من مصر

TODO حزب جديد من «رحم» الجماعة الإسلامية باسم «الحركة الإنسانية للإصلاح والتغيير» | المصري اليوم، أخبار اليوم من مصر

TODO untitled

TODO جمهورية رئاسية أم برلمانية.. ودستور 1971 أم مشروع دستور 1954 | المصري اليوم، أخبار اليوم من مصر

TODO مسجلو خطر يعتدون على عناصر بالداخلية.. وأهالي الغردقة يفرقون مظاهرة أمناء الشرطة | المصري اليوم، أخبار اليوم من مصر

TODO مصدر بالجيش: رئيس «أمن الدولة» بلا صلاحيات وسيتم التحقيق معه في وقائع تعذيب | المصري اليوم، أخبار اليوم من مصر

TODO النائب العام يقرر تجميد أرصدة مبارك وأسرته ويكلف «الكسب غير المشروع» بالتحقيق | المصري اليوم، أخبار اليوم من مصر

TODO حيثيات تأسيس «الوسط الجديد»: لجنة الأحزاب خرجت عن الفهم الصحيح للدستور والوعى بالقانون | المصري اليوم، أخبار اليوم من مصر

TODO النائب العام يجمد أرصدة نظيف ومشعل وأبو العينين والجبلي و21 آخرين | المصري اليوم، أخبار اليوم من مصر

TODO مصدر عسكرى ينفى اتهامات منظمة العفو الدولية بتعذيب معتقلين فى ثورة 25 يناير | المصري اليوم، أخبار اليوم من مصر

TODO كلمة «المصري اليوم»: هدنة للبناء وترتيب الأولويات | المصري اليوم، أخبار اليوم من مصر

TODO 20 مطلباً للثورة في بيان للمدونين من ميدان التحرير | المصري اليوم، أخبار اليوم من مصر

TODO أشرف عبدالباقى قائد اللجان الشعبية فى المقطم: سنعيد شوارعنا إلى ما كانت عليه | المصري اليوم، أخبار اليوم من مصر

TODO البرادعي: مبارك خدم البلاد 30 عامًا وحان الوقت لتقاعده | المصري اليوم، أخبار اليوم من مصر

TODO untitled

TODO الشرطة تشتبك مع متظاهرين في شارع الجلاء والعتبة وروكسي وعبد المنعم رياض | المصري اليوم، أخبار اليوم من مصر

TODO الأمن ينهي اعتصام التحرير… وشهود: المدرعات كادت تدهس المحتجين | المصري اليوم، أخبار اليوم من مصر

TODO يوميات «الانتفاضة التونسية» في حوار حي مع نورا يونس | المصري اليوم، أخبار اليوم من مصر

TODO «قراصنة» يخترقون موقع مركز حقوقي وينشرون دعوة لمظاهرة لـ«المثليين» بدلا من 25 يناير | المصري اليوم، أخبار اليوم من مصر

TODO موظف يقيد نفسه بالسلاسل في ميناء الإسكندرية احتجاجًا على تعنت الإدارة | المصري اليوم، أخبار اليوم من مصر

TODO الوكالة الألمانية: العثور على عبوة ناسفة بدير في وادي النطرون | المصري اليوم، أخبار اليوم من مصر

TODO «شباب التغيير» يراجعون الحصاد: مرارة من تعثر «التجارب الجماعية» وأمل في مواصلة «الحراك» | المصري اليوم، أخبار اليوم من مصر

TODO الحبس سنة لـ 19 من «ألتراس الزمالك» المتهمين في أحداث شغب «يد الأهلي» | المصري اليوم، أخبار اليوم من مصر

TODO انتخابات نادى القضاة: مواجهة ساخنة بين فريق «التغيير» وتيار الاستقلال | المصري اليوم، أخبار اليوم من مصر

TODO موسيفيني وسلفا كير يبحثان إقامة سد جديد على نهر النيل بجنوب السودان | المصري اليوم، أخبار اليوم من مصر

TODO إضاءة قريتين بالطاقة الشمسية لأول مرة فى مصر | المصري اليوم، أخبار اليوم من مصر

TODO البرادعي: سنعمل مع «الإخوان» والنظام خائف من انتخابات الرئاسة | المصري اليوم، أخبار اليوم من مصر

TODO البرادعي يدعو المصريين في الخارج للتوقيع على بيان التغيير | المصري اليوم، أخبار اليوم من مصر

TODO قيود وضوابط جديدة على رسائل المحمول الإخبارية لمواجهة ترويج أفكار "مناهضة للنظام" | المصري اليوم، أخبار اليوم من مصر

TODO «العفو الدولية» تصدر «فيديو كليب» عن «التعذيب المنهجى» .. وتطالب بالعدالة لـ«خالد سعيد» | المصري اليوم، أخبار اليوم من مصر

TODO العادلى يلتقى نظيره البحرينى ويبحث سبل التعاون لمكافحة الإرهاب بعد ختام مؤتمر دول الجوار | المصري اليوم، أخبار اليوم من مصر

TODO نشطاء يطلقون حملة لترشيح عمر سليمان للرئاسة.. والملصقات تظهر فى إمبابة والمعادى | المصري اليوم، أخبار اليوم من مصر

TODO مبارك يفجر مفاجأة: القدس عاصمة للدولتين.. وقوات دولية فى «الضفة» | المصري اليوم، أخبار اليوم من مصر

TODO خبير بمركز المعلومات: مصر الخاسر الأكبر من تصدير الغاز.. و«البترول» تعالج أخطاءها على حساب «الكهرباء» | المصري اليوم، أخبار اليوم من مصر

TODO انقطاع الكهرباء عن محطة مياه شرب العبور يتسبب في انقطاع المياه عن القاهرة الجديدة والعبور | المصري اليوم، أخبار اليوم من مصر

TODO البابا شنودة يدرس زيادة رواتب الكهنة لمنع تكرار سيناريو اختفاء «كامليا» | المصري اليوم، أخبار اليوم من مصر

TODO البابا شنودة ينصح بعدم «الاعتراف» للكهنة تليفونياً خوفاً من «أمن الدولة» | المصري اليوم، أخبار اليوم من مصر

TODO تحذيرات من انهيار مجمع الألمونيوم بنجع حمادي بسبب انقطاع الكهرباء | المصري اليوم، أخبار اليوم من مصر

TODO ربع مليار جنيه لـ«مصر المحلة» أوائل سبتمبر لاستكمال الهيكلة | المصري اليوم، أخبار اليوم من مصر

TODO النائب العام يحيل «عماد الكبير» وابن عمه إلى محكمة أمن الدولة العليا طوارئ | المصري اليوم، أخبار اليوم من مصر

TODO «محلى البحر الأحمر» يوافق على تحويل «حلايب» إلى مدينة | المصري اليوم، أخبار اليوم من مصر

TODO «أيمن نور» يفوز برئاسة «حزب الغد» .. و«عبد الحميد» يجمد عضويته اعتراضاً على النتيجة | المصري اليوم، أخبار اليوم من مصر

TODO ‏«هيثم أبوخليل» يواصل الكشف عن وثيقة المراجعات الداخلية ‏للجماعة (الحلقة الثانية) | المصري اليوم، أخبار اليوم من مصر

TODO القيادي الإخواني هيثم أبوخليل يكشف عن وثيقة ‏عمرها ٢٥ عاماً لإصلاح «الجماعة»‏ | المصري اليوم، أخبار اليوم من مصر

TODO «التجمع» يجمّد عضوية مؤسس «ائتلاف دعم جمال مبارك».. والكردى: «فى داهية» | المصري اليوم، أخبار اليوم من مصر

TODO إسحاق:«البرادعى» سيبدأ معركة التغيير الحقيقية بعد عودته فى «رمضان» | المصري اليوم، أخبار اليوم من مصر

TODO «العفو الدولية» تطالب بحماية الشهود في قضية «خالد سعيد» ..و"كسر حصانة الشرطة ضد العقاب" | المصري اليوم، أخبار اليوم من مصر

TODO أنصار «جمال مبارك» يبدأون حملة الدعاية لترشيحه رئيساً بملصقات‎ ‎إعلانية | المصري اليوم، أخبار اليوم من مصر

TODO النيابة تبدأ التحقيق في «واقعة» تحويل الشاب «إسلام» إلى الفتاة «نور»‏ | المصري اليوم، أخبار اليوم من مصر

TODO 2500 شخص يشاركون في وقفة صامتة "ضد التعذيب" ومظاهرة أمام منزل «خالد سعيد» بالإسكندرية | المصري اليوم، أخبار اليوم من مصر

TODO «المصرى اليوم» تحصل على مستندات خطيرة عن تهجير «الفلاشا» ودفن النفايات وبيع الثروة فى عهد «نميرى»:أيام الفساد فى السودان (1) | المصري اليوم،

TODO بدء العد التنازلي لاستئناف «محاميي طنطا».. إضراب شامل للمحامين والنقابات تحشد الآلاف إلى المحكمة | المصري اليوم، أخبار اليوم من مصر

TODO «بدو سيناء» يعقدون مؤتمراً صحفياً غداً بعد فشل اجتماع وزير الداخلية مع المشايخ | المصري اليوم، أخبار اليوم من مصر

TODO رئيس «السكة الحديد» يعيّن نسيبه نائباً له وابن شقيقه مديراً ويرقّى عديله وزوج أخته | المصري اليوم، أخبار اليوم من مصر

TODO «بصمة الزيت» تؤكد عدم حدوث تسرب متدفق للنفط فى الغردقة.. والمحافظ: الشواطئ نظيفة وحركة الغوص منتظمة | المصري اليوم، أخبار اليوم من مصر

TODO البرادعي : إذا حصلت على 20 مليون توقيع ورفض النظام الانصياع للإرادة الشعبية سيسقط خلال 3 أيام | المصري اليوم، أخبار اليوم من مصر

TODO الخارجية: لا تصويت للمصريين بالخارج ومن يريد عليه العودة إلى مصر | المصري اليوم، أخبار اليوم من مصر

TODO د.إبراهيم كامل: «السد العالى» حرمنا من أن نكون ملاكاً شرعيين فى بحيرتى «تانا وفيكتوريا» | المصري اليوم، أخبار اليوم من مصر

TODO القبض على مجموعة متطرفة بتهمة إقامة الحج فى المقطم وإنكار الأحاديث النبوية | المصري اليوم، أخبار اليوم من مصر

TODO مدير مكتب وزير التعليم: "نتعامل مع التليفزيون بس والصحافة راحت عليها خلاص" | المصري اليوم، أخبار اليوم من مصر

TODO رئيس اللجنة العليا لانتخابات «الشورى»: لم نتلق أية شكاوى من 35 ألف لجنة | المصري اليوم، أخبار اليوم من مصر

TODO «البرادعي»: مجلسا الشعب والشورى لا يعبران عن إرادة الأمة.. والمرحلون من الكويت ينذرون السفير | المصري اليوم، أخبار اليوم من مصر

TODO من بركات محمد البرادعى.. بين زينب السمّاوية وعُمر المباحثى | المصري اليوم، أخبار اليوم من مصر

TODO «محمود سعد»: أتمنى أن يصبح «البرادعي» رئيساً للجمهورية | المصري اليوم، أخبار اليوم من مصر

TODO مفاجآت "الجبتانا".. نصوص فرعونية تتشابه مع الأديان السماوية | المصري اليوم، أخبار اليوم من مصر

TODO البرادعي : سنكسر حاجز الخوف كما كسر الألمان حاجز الخوف في برلين.. و«مصريات مع التغيير» يسافرن للكويت | المصري اليوم، أخبار اليوم من مصر

TODO البرادعى لأنصاره على تويتر: «خلى الحلم صاحى» | المصري اليوم، أخبار اليوم من مصر

TODO «منظمة العفو الدولية» : مصر في المرتبة الثالثة عالمياً في عدد أحكام الإعدام خلال 2009 | المصري اليوم، أخبار اليوم من مصر

TODO تدريب فيديو الصحافة الشعبية لأهالي الإسكندرية | المصري اليوم، أخبار اليوم من مصر

TODO «سمير فرج»: القصب زراعة «الكسالى».. وسنستبدله بـ«العنب المكسيكي» | المصري اليوم، أخبار اليوم من مصر

TODO «ممدوح حمزة» يطالب بالضغط على الحكومة لتفكر جديا في مواجهة احتمال غرق الدلتا | المصري اليوم، أخبار اليوم من مصر

TODO خلاف بين «البرادعي» وأعضاء في «الائتلاف الرباعي» حول ضم «الإخوان» إلى «الجمعية الوطنية للتغيير» | المصري اليوم، أخبار اليوم من مصر

TODO وفاة 12 مريضاً في مستشفيات جامعة الزقازيق بينهم 3 أطفال بسبب إضراب الممرضات | المصري اليوم، أخبار اليوم من مصر

TODO بيان حقوقى يستنكر تشريد سكان العقارات الآيلة للسقوط ويندد بالحلول «غير المدروسة» | المصري اليوم، أخبار اليوم من مصر

TODO clear

TODO الكواكبي: ادعو لابو عبد المنعم بالشفاء

TODO untitled

TODO بعد فض اعتصام التحرير.. نحو إستعادة روح المنتصر (5)

TODO بيان حول المحاكمات العسكرية للفلاحين فى محافظة البحيرة

TODO ثورة مصر» : «الإخوان» والجيش يقودان الثورة المضادة سمير أمين

TODO خمسين سبب و فيديو و مقال و موقف و اراء شخصيات خلونى استبعد عمرو موسى من قائمة الناس اللى بفاضل ما بينهم للرئاسة؟ (1)

TODO مديرية أمن القاهرة

TODO ‫نطالب بإعطاء الجنسية المصرية الى "محمد خليل" أحد أبطال ثورة 25 يناير‬

TODO وزير القوي العاملة ومستقبل الحركة العمالية في مصر

TODO untitled

TODO Web Bookmarks [0/733]

TODO Egypt Papers   egypt france

TODO Net-Zero America Project   climate_change

TODO Peter Suber, Nomic   games

TODO Constitute   law

TODO Mastodon Twitter Crossposter   twitter

TODO Open Source Defense   guns

TODO OpenStructures   design

TODO Concepts - Autarkytecture   design architecture

TODO What is Vision Zero? | Planetizen Planopedia   cars public_health

TODO Semiphemeral   twitter

TODO Nostr public keys of Twitter Accounts   social_network

TODO OpenFarm - You Can Grow Anything   agriculture making

TODO Home | Go Tell It on the Mountain   egypt sinai hiking

TODO Of Mice And Men - 99% Invisible   computer podcast

TODO Indefinite backpack travel Jeremy Maluf   atoms minimalism

TODO Tube Archivist   archive video youtube

TODO The Code of the Geeks v3.12   computer culture

TODO BrowserAudit   OSINT privacy

TODO Buggedplanet.info   privacy surveillance

TODO buttplug.io   atoms bits sex

TODO Design Justice   design

TODO Software Defined Radio   radio

TODO The Engineering ToolBox   engineering physics

TODO Online calculators   calculator tools

TODO Paraphrasing Tool | QuillBot AI   writing tools

TODO Dr J Home Page   radio

TODO Egyptian Press Archive of CEDEJ   egypt archive journalism

TODO Periodic Table - Ptable   chemistry

TODO Sign Up | Telnyx   VOIP computer

TODO IntelTechniques Online Resources   computer privacy

TODO The (ex)FuNET MSX Archive!   computer

TODO Namecoin   computer

TODO Rolling PWN   radio hacking

TODO HFU HF Underground - Index   radio

TODO Four Thieves Vinegar Collective: Abortion Care   medicine DIY atoms health cells

TODO Bitfeed   money

TODO where's kiana?   sailing

TODO Busby's Bakery School   food

TODO Internet Service Provider | Althea   radio computer

TODO Arabic Corpora Ressource   arabic

TODO ArabicCalligraphy   arabic

TODO BrowserAudit   computer

TODO $280.36 ∙ 0x966e…86e4   money

TODO 0xDB   cinema film

TODO 1,115,963,774 - Dai Stats   money

TODO 13723331 | PDF   egypt

TODO Abou Naddara Collection   egypt history

TODO About - SolvEGYPT   egypt

TODO About VirtualHumans.org | Create a Virtual Influencer   computer politics social_network

TODO Agile Housing - a Pattern Language   atoms housing

TODO Agora Nomic   games

TODO Akvopedia   cells

TODO Ali Zaraay   egypt photography

TODO Althea   telecommunications

TODO Anbox - Android in a Box   computer

TODO ASETNIOP   computer

TODO Assembler Books   industry

TODO AssetDash   money

TODO Astronomy Project - Wikiversity   astronomy

TODO Azteco Bitcoin Vouchers   bitcoin

TODO Backpacking Lightweight   bushcraft hiking

TODO Bitcoin Beach   bitcoin

TODO Bitcoin Energy Consumption Index - Digiconomist   environment bitcoin

TODO Bitcoin KPIs   bitcoin

TODO NS6T's Azimuthal Map   radio

TODO OCCRP   OSINT

TODO Office Hours   work

TODO Open Broadcaster Software | OBS   software

TODO Open Law Library   law

TODO OpenArabic · GitHub   arabic git

TODO Opencaching in North America   geography

TODO OpenITI   arabic islam ocr

TODO OpenOwnership   corruption data transparency

TODO OpenRailwayMap   maps

TODO Our Music   music radio

TODO Our Top Charities | GiveWell   bitcoin

TODO Overcoming Bias   blog extropy transhumanism

TODO Panopticlick   OSINT privacy

TODO PeerLibrary   academia

TODO People Fixing Fashion   atoms

TODO PERSPECTIVA | Systems, Souls & Society   metamodernism

TODO Peter Suber, "Nomic"   games law politics

TODO Peter Suber, Nomic   games law politics

TODO POM Berlin - Google Docs   Palestine maps

TODO Practice Pad Drum Lessons - YouTube   music video

TODO PredictWind Apps - PredictWind   sailing

TODO Pricing Plans - Viral Launch   amazon

TODO Privacy   money privacy

TODO ProjectMano   ethiopia money

TODO QEX   radio

TODO Radical Personal Finance   privacy

TODO Reading | Austen Allred   money

TODO Receiver Test Data   radio

TODO Reed's Locus   radio

TODO Right-to-left Styling   CSS RTL web

TODO RiPi Server   radio

TODO RSK Swap | Home   bitcoin

TODO Seawater Greenhouse   agriculture

TODO SeedSigner Settings QR Generator   bitcoin computer

TODO Servarr | WikiArr   computer

TODO ShortwaveSchedule.com   radio

TODO Signal Identification Wiki   radio

TODO Simple Email Reputation   OSINT

TODO Slate Star Codex   blogs psychology

TODO Sovryn   bitcoin

TODO Sphinx   chat

TODO StakWork - HOME   money

TODO Start9 Labs - Sovereign Computing   bitcoin software

TODO Synthetix   money

TODO The BIG List of RTL-SDR Supported Software   radio software

TODO The Cattle Co-op   cells

TODO The DeFi List | DeFi Pulse   money

TODO The Esalen Landscape | Esalen   california

TODO The Eye | Front Page   archive files

TODO the federation - a statistics hub   federation internet

TODO The Geocities Gallery   archive web

TODO The Knight - Full Series - YouTube   history video

TODO The Long Johns - YouTube   comedy video

TODO THORChain   money

TODO Tiny Homes | Backyard Suites | Accessory Dwellings | Laneway Homes   housing minimalism sustainability

TODO Top (The Org Manual)   computer

TODO Twilio | Try Twilio Free   OSINT

TODO u-he Software Synthesizers and Effects   music software

TODO UsefulTulips   money

TODO Variants for my gene   DNA

TODO Vekja - True Anonymous Web & Email Hosting   email internet

TODO waraqi || ورقي   arabic office

TODO Warka Water Every Drop Counts   permaculture water

TODO Watershed DNA   DNA health

TODO WSJT Home Page   radio

TODO Zapper - Dashboard for DeFi   money

TODO zyGrib: grib file, weather data visualization   sailing software

TODO الجريدة الرسمية   egypt law

TODO الرئيسية   egypt law

TODO الصفحة الرئيسية   egypt languages

TODO العمرانية   egypt urban_planning wiki

TODO رواق الجمل   egypt law

TODO شاهد على العصر - YouTube   Arab video

TODO Natural-Person Home Page   law

TODO Nextdoor   social_network

TODO Matt Odell   computer bitcoin

TODO Instadapp   money

TODO JMP - JIDs for Messaging with Phones   computer phone

TODO Justin OBeirne   blog maps

TODO kerethouse   architecture

TODO LBRY - Content Freedom   software

TODO Learn All 40 Drum Rudiments - YouTube   music video

TODO Life Stack • Aaron Parecki   atoms bits

TODO Lightning On Demand   science

TODO Local calling guide: Main   OSINT

TODO LRN Lookup | Apeiron   OSINT

TODO Lucidology 101 - YouTube   video

TODO Manual Geolocation - Chrome Web Store   chrome cyber geography hacking

TODO Mapping the Creator Economy   internet

TODO Marinux Website   sailing software

TODO Marty's Bent   bitcoin

TODO MEGA   audio books

TODO mempool - Bitcoin Explorer   bitcoin

TODO Meshtastic   radio

TODO Mirror   money writing

TODO Mobile Verification Toolkit   security

TODO Modular Curiosity Episodes - YouTube   music video

TODO Monax | Features   law

TODO Monzo Banking made easy   money

TODO Mutable Instruments | Home   music

TODO General Ham Radio License - YouTube   radio video

TODO Geometry - YouTube   video

TODO Get a Restaurant License | dcra   restaurant

TODO gharbeia — DeHashed   OSINT

TODO GitHub - youyanggu/covid19-forecast-hub-evaluation: Evaluation of models from the COVID-19 Forecast Hub (https://github.com/reichlab/covid19-forecast-hub). These models are submitted weekly to the CDC to help inform public health decision-making.   bits git

TODO Google Fonts   fonts

TODO GSM GPRS SIM800C Modem   phone

TODO GTG-UKI   radio UK

TODO HamSCI   radio science

TODO Helium Introducing The People's Network   money radio technology

TODO HOA'S — TN07   radio

TODO Home   cinema software

TODO Home   space

TODO Home - Afford Anything   money

TODO Home - Aintree Boats   boats england

TODO Home - GlycanAge   health

TODO Home - Modbot   atoms

TODO Home - OpenDaylight   software telecommunications

TODO Home - Regenerative Resources : Regenerative Resources   permaculture sustainability

TODO Home - Startup Madeira   travel

TODO Home | Halcium   atoms energy wind

TODO Home | Insight   money

TODO Home | Long Term Narrowboat Rental   narrowboat

TODO Home | Podcastindex.org   podcast

TODO Home | The Space Show   podcast space

TODO Home Assistant   software

TODO Home Page   sailing weather

TODO Homepage - GHS Index   health

TODO Homepage | Saylor Academy   education

TODO How to pronounce whisky names - YouTube   video whisky

TODO http://hrstudies.sis.gov.eg/   egypt human_rights

TODO https://hflink.com/   radio

TODO https://www.dailymotion.com/video/x17ipb7?retry   Amr_Gharbeia video

TODO Hunting - YouTube   bushcraft video

TODO DDS Center for Research Libraries الأهرام   archive egypt newspapers

TODO Debian New Maintainers' Guide   computer

TODO DeHashed — #FreeThePassword   OSINT privacy

TODO Device Info   OSINT privacy

TODO DHSF 2019 Week 3 | Flickr   DHSF photos

TODO Digital Map of Egypt   blog egypt

TODO Djoser Complex   egypt

TODO Dome Construction - YouTube   video

TODO Dominate PAGE ONE on Amazon   amazon

TODO Drone Mapping Software - OpenDroneMap   drones maps

TODO dYdX   money

TODO Earth 2050   future

TODO Earth Regenerators   regeneration

TODO Earthship - YouTube   earthship video

TODO Earthship Tempelhof   bits

TODO Ebtihal Shedid Photogprahy | San Francisco   blog photography

TODO EigenD Tutorials - YouTube   music video

TODO Emergency Preparedness   radio

TODO ENS Faq   internet money

TODO Epigenetic Testing   health

TODO Episode 2: Information Theory - YouTube   mathematics video

TODO EWG | Environmental Working Group   environment industry products

TODO Exploring Modular Synths - YouTube   music video

TODO Extract Meta Data   OSINT

TODO Field Dressing Game - YouTube   bushcraft video

TODO File Not Found   radio

TODO FinalMessage - Do you have a backup plan?   computer money

TODO FotoForensics   OSINT

TODO Camp Cooking - YouTube   bushcraft cooking video

TODO Camping Northern Europe - YouTube   bushcraft video

TODO Canarytokens   computer privacy

TODO Cédric Verstraeten   ocr

TODO Cit0day email lookup   OSINT

TODO ColorBrewer: Color Advice for Maps   charts design

TODO Compound   money

TODO Copyright Renewals - Spotlight at Stanford   copyright stanford

TODO Corona Virus Tech Handbook   health

TODO Cost Of Living Comparison   money travel

TODO Crash Course in Milling - YouTube   atoms video

TODO Cream   money

TODO Crypto Startup School   money

TODO CSV on the Web: A Primer   csv data

TODO About - Hashbase   p2p

TODO Sonarr   video archive

Sonarr is an internet PVR ofr Usenet and Torrents

TODO GitHub - Prowlarr/Prowlarr   archive

Prowlarr is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Lidarr, Mylar3, Radarr, Readarr, and Sonarr offering complete management of your indexers with no per app Indexer setup required (we do it all).

TODO Restore questions - Support - FreedomBox Forum   software

  • State "DONE" from "" [2023-02-02 Thu 15:30]

TODO Amateur Radio Receivers   radio

TODO GW4ALG's QRP Home Page   radio

TODO HomePage - Wireless Battle of the Mesh   radio computer

TODO International Beacon Project Introduction   radio

The NCDXF, in cooperation with the IARU, constructed and operates a worldwide network of high-frequency radio beacons on 14.100, 18.110, 21.150, 24.930, and 28.200 megaHertz. These beacons help both amateur and commercial high-frequency radio users assess the current condition of the ionosphere. The entire system is designed, built and operated by volunteers at no cost except for the actual price of hardware components, shipping costs, and so on.

TODO LimeSDR Mini | Crowd Supply   radio

The LimeSDR Mini development board is a hardware platform for developing and prototyping high-performance and logic-intensive digital and RF designs that use Alteras MAX 10 FPGA and Lime Microsystems LMS7002M RF transceiver.

TODO Wide-band WebSDR in Enschede, the Netherlands   radio

Amateur radio club ETGD PI4THTFaculty for Electrical Engineering, Mathematics and Computer Science Wide-band WebSDR

On this page you can listen to and control a short-wave receiver located at the amateur radio club ETGD at the University of Twente. In contrast to other web-controlled receivers, this receiver can be tuned by multiple users simultaneously, thanks to the use of Software-Defined Radio.

TODO WSPRnet | Welcome to the Weak Signal Propagation Reporter Network   radio

he Weak Signal Propagation Reporter Network is a group of amateur radio operators using K1JT's MEPT_JT digital mode to probe radio frequency propagation conditions using very low power (QRP/QRPp) transmissions. The software is open source, and the data collected are available to the public through this site.

TODO ZL1BPU Front Page   radio

This web site is mostly about new, different, and specialized radio communication modes. The emphasis is on modes which I have influenced in some way during development. There are digital chat modes and visually readable modes for LF, HF and VHF.

There is also a section on propagation studies, and some fascinating micro-controller projects to build. The site also hosts Amateur PC software developed by Con Wassilieff ZL2AFP/ZL2EE.

TODO The Decentralized Legal System The First Framework For Decentralized Law   law

This website offers you a deep analysis our legal and financial systems, and provides the tools needed in a future world of liberty and prosperity.

This particular website not only introduces the first enforcement framework for decentralized legal applications, it also provides the structure for a world governed by private Decentralized Law. A lot of study has gone into this system, but implementation is relatively simple. There is now an elegant merger of the digital and the legal worlds.

TODO QSO Today Podcast - QSO Today Amateur Radio Podcast   radio podcast

Buce Perens, K6BP, is a self described evangelist for amateur radio. As the creator of the Open Source Definition used for the free exchange of software code, Bruce has appled this idea to amateur radio towards the development of Codec2 and FreeDV, digital modulation schemes for HF and VHF.  Through his new company, Algoram, Bruce hopes to create the ultimate open source handheld software defined radio.  As an evangelist, Bruce founded No Code International, where he successfully eliminated the Morse code requirement for amateur radio licenses Worldwide. 

TODO Reverse Phone Lookup | 100% FREE, Get Full Name | RevealName   OSINT phone

RevealName lets you find out true owner of any phone number. It is a completely free platform that leverages direct partnership with hundreds of mobile companies worldwide to offer you world's most advanced and accurate reverse phone number lookup information. You can now find out who owns the phone for free using RevealName.com We are free. No credit card or any other payment method is needed to use our services. Simply enter the phone number you are trying to look up and click on "Lookup" button.

TODO Building a NAS   computer

TODO Main Page - Hidden Wiki   tor

TODO Matchstiq SDR Platform   radio

TODO McAfee Bitcoin Price Tracker   bitcoin

TODO Measuring Worth - User Guide   money investment

TODO North Africa AMS Topographic Maps - Perry-Castañeda Map Collection - UT Library Online   maps africa egypt libya tunisia algeria morocco

North Africa 1:250,000 Series P502, U.S. Army Map Service, 1954-

TODO Noun Project - Icons for Everything   design graphics

TODO Offline Only   rottenURI

TODO The Arab Mab Network   rottenURI

TODO Thesaurus Linguae Aegyptiae   egypt languages

TODO Tradershub   bitcoin

TODO Welcome — AWS openWind   rottenURI

TODO Academic Phrasebank   education

TODO Bitcoin Talk Mobile   bitcoin

TODO Bitcoin Wiki   bitcoin

TODO Bitcoincharts | Charts   bitcoin

TODO BitcoinsPerPerson   bitcoin

TODO BitPesa   bitcoin

TODO Chain Query: Bitcoin API:   bitcoin

TODO Coin Center | Coin Center   bitcoin

TODO HF WebSDR at RAF Hack Green   radio

TODO Home | Unchained Capital   bitcoin

TODO ICO calendar and ongoing token sales   crypto rottenURI

TODO Satoshi Nakamoto Institute   bitcoin

TODO Pluto TV   video

TODO Kisass Torrents Hidden Service   tor piracy torrent

TODO Greenpeace Archives   environment activism

TODO RARBG Torrents , filmi , download   piracy torrent

TODO Arduino TNC - KI4MCW   radio

TODO are we decentralized yet?   bitcoin rottenURI

TODO Bitex | Concierge | Exchange | Pay   bitcoin crypto

TODO Home - Cruising Freedom   sailing

Includes a lot of information about Sailing YouTube stars

TODO Kemono   piracy

Includes some Patreon content

TODO BTDig   torrent piracy

Decentralized bittorrent search engine

TODO Annas Archive   books search piracy

Search engine of shadow libraries: books, papers, comics, magazines. Z-Library, Library Genesis, Sci-Hub. ⚙️ Fully resilient through open source code and data. ❤️ Spread the word: everyone is welcome here!

TODO ::Fustat Wadi El Gemal::   egypt rottenURI

TODO KinkTest

TODO OFX Home

TODO Kinklist   sex

TODO Handibot®

TODO Machines that Make - MTM   making

TODO About | Derek Sivers

Subscribe to RSS of this blog

TODO Aya Tarek

TODO Ben Adida

TODO Appropedia

TODO ikl

TODO ZAWDA   bitcoin MiddleEast bitcoin

TODO Clasp Manual   emacs nanotechnology

TODO Oversimplification

Adrian Bowyer's blog

TODO Posts [24/2053]

DONE The "most important century" blog post series

  • State "DONE" from [2023-12-13 Wed 10:45]

DONE Is Death Real | Scientific Discovery Raises Questions About Death

  • State "DONE" from [2023-12-13 Wed 10:38]

DONE The Middle Class Is Dead. Long Live the Long Tail Class.

  • State "DONE" from [2023-12-13 Wed 09:53]

DONE Vices Are Not Crimes | Mises Institute

  • State "DONE" from [2023-12-11 Mon 15:23]

DONE The Surprising Geography of Gun Violence - POLITICO   guns us

  • State "DONE" from [2023-12-11 Mon 13:24]

DONE My techno-optimism   resilience decentralization

  • State "DONE" from [2023-11-28 Tue 13:16]

This Vitalik article coincides with my ideas on Atoms, Bits and Cells. The US is the ultimate Switzerland, a defensable island, even improved if absorbing Canada to the North and everything to the Panama Canal and the Caribean to the South.

DONE The Last Time I Saw Yaakov - Boston Review   zionism judaism israel

  • State "DONE" from [2023-12-11 Mon 15:23]

DONE How China can avoid the Japan trap | Financial Times

CLOSED: [2023-09-30 Sat 08:34]

TODO Stanford CRFM   ai computer

Stanford CRFM optimising Alpaca 7B to perform as well as GPT-3.5. Possibly the beginning of historical times.

TODO How Honduras Can Pull Off Five Centuries Of Legal Reforms In A Decade : Planet Money : NPR

Today, it is widely assumed each country must establish the rule of law on its own. There's just one problem with this prescription, which Gordon Brown summed up nicely: in establishing the rule of law, the first five centuries are always the hardest.

DONE Beginner - 6 Week Series (DC) — Fabrica Tango Academy   tango

CLOSED: [2023-06-18 Sun 21:31] SCHEDULED: <2023-05-04 Thu 20:00-21:00>

  • State "DONE" from "WAIT" [2023-06-18 Sun 08:36]

1230 9th St NW, Washington, DC 20001

TODO Cairo Freeze!   rottenURI

TODO Shaghel Baly!   rottenURI

TODO .: Subversion at the border   rottenURI

TODO {{{Mary}}}: bye bye   rottenURI

TODO مين وائل عباس؟   rottenURI

TODO مكتبة نيرفانا   rottenURI

TODO مدونو طنطا   rottenURI

TODO DON'T FREE FOUAD   rottenURI

TODO السياسى   rottenURI

TODO Daily Star Egypt - Full Article   rottenURI

TODO Daily Star Egypt - Full Article   rottenURI

TODO Daily Star Egypt - Full Article   rottenURI

TODO نهضة العرب   rottenURI

TODO `·.¸¸.·´´¯`··   rottenURI

TODO Wandering Scarab   rottenURI

TODO Petition on Tuition   rottenURI

TODO Daily News Egypt - Full Article   rottenURI

TODO this was never 'ours'   rottenURI

TODO this was never 'ours'   rottenURI

TODO untitled   rottenURI

TODO #Jan 25   rottenURI

TODO untitled   rottenURI

TODO untitled   rottenURI

TODO Untitled   rottenURI

TODO Untitled   rottenURI

TODO Full Text Electronic Journal List   rottenURI

TODO Full Text Electronic Journal List   rottenURI

TODO XKEYSCORE: NSA's Google for the World's Private Communications   website

[2023-08-03 Thu 13:00]

TODO Article

One of the National Security Agency's most powerful tools of mass surveillance makes tracking someone's Internet usage as easy as entering an email address, and provides no built-in technology to prevent abuse. Today,  The Intercept is publishing 48 top-secret and other classified documents about XKEYSCORE dated up to 2013, which shed new light on the breadth, depth and functionality of this critical spy system — one of the largest releases yet of documents provided by NSA whistleblower Edward Snowden.

The NSA's XKEYSCORE program, first revealed by The Guardian, sweeps up countless people's Internet searches, emails, documents, usernames and passwords, and other private communications. XKEYSCORE is fed a constant flow of Internet traffic from fiber optic cables that make up the backbone of the world's communication network, among other sources, for processing. As of 2008, the surveillance system boasted approximately 150 field sites in the United States, Mexico, Brazil, United Kingdom, Spain, Russia, Nigeria, Somalia, Pakistan, Japan, Australia, as well as many other countries, consisting of over 700 servers.

These servers store “full-take data” at the collection sites — meaning that they captured all of the traffic collected — and, as of 2009, stored content for 3 to 5 days and metadata for 30 to 45 days. NSA documents indicate that tens of billions of records are stored in its database. “It is a fully distributed processing and query system that runs on machines around the world,” an NSA briefing on XKEYSCORE says. “At field sites, XKEYSCORE can run on multiple computers that gives it the ability to scale in both processing power and storage.”

[[https://theintercept.com/wp-content/uploads/2015/06/int-ink-2-540x442.jpg]]

Illustration: Blue Delliquanti and David Axe for The Intercept

XKEYSCORE also collects and processes Internet traffic from Americans, though NSA analysts are taught to avoid querying the system in ways that might result in spying on U.S. data. Experts and privacy activists, however, have long doubted that such exclusions are effective in preventing large amounts of American data from being swept up. One document The Intercept is publishing today suggests that FISA warrants have authorized “full-take” collection of traffic from at least some U.S. web forums.

The system is not limited to collecting web traffic. The 2013 document, “VoIP Configuration and Forwarding Read Me,” details how to forward VoIP data from XKEYSCORE into NUCLEON, NSA's repository for voice intercepts, facsimile, video and “pre-released transcription.” At the time, it supported more than 8,000 users globally and was made up of 75 servers absorbing 700,000 voice, fax, video and tag files per day.

The reach and potency of XKEYSCORE as a surveillance instrument is astonishing. The Guardian report noted that NSA itself refers to the program as its “widest reaching” system. In February of this year, The Intercept reported that NSA and GCHQ hacked into the internal network of Gemalto, the world's largest provider of cell phone SIM cards, in order to steal millions of encryption keys used to protect the privacy of cell phone communication. XKEYSCORE played a vital role in the spies' hacking by providing government hackers access to the email accounts of Gemalto employees.

Numerous key NSA partners, including Canada, New Zealand and the U.K., have access to the mass surveillance databases of XKEYSCORE. In March, the New Zealand Herald, in partnership with The Intercept, revealed that the New Zealand government used XKEYSCORE to spy on candidates for the position of World Trade Organization director general and also members of the Solomon Islands government.

These newly published documents demonstrate that collected communications not only include emails, chats and web-browsing traffic, but also pictures, documents, voice calls, webcam photos, web searches, advertising analytics traffic, social media traffic, botnet traffic, logged keystrokes, computer network exploitation (CNE) targeting, intercepted username and password pairs, file uploads to online services, Skype sessions and more.

TODO Bulk collection and population surveillance

XKEYSCORE allows for incredibly broad surveillance of people based on perceived patterns of suspicious behavior. It is possible, for instance, to query the system to show the activities of people based on their location, nationality and websites visited. For instance, one slide displays the search “germansinpakistn,” showing an analyst querying XKEYSCORE for all individuals in Pakistan visiting specific German language message boards.

As sites like Twitter and Facebook become increasingly significant in the world's day-to-day communications (a Pew study shows that 71 percent of online adults in the U.S. use Facebook), they become a critical source of surveillance data. Traffic from popular social media sites is described as “a great starting point” for tracking individuals, according to an XKEYSCORE presentation titled “Tracking Targets on Online Social Networks.”

When intelligence agencies collect massive amounts of Internet traffic all over the world, they face the challenge of making sense of that data. The vast quantities collected make it difficult to connect the stored traffic to specific individuals.

Internet companies have also encountered this problem and have solved it by tracking their users with identifiers that are unique to each individual, often in the form of browser cookies. Cookies are small pieces of data that websites store in visitors' browsers. They are used for a variety of purposes, including authenticating users (cookies make it possible to log in to websites), storing preferences, and uniquely tracking individuals even if they're using the same IP address as many other people. Websites also embed code used by third-party services to collect analytics or host ads, which also use cookies to track users. According to one slide, “Almost all websites have cookies enabled.”

The NSA's ability to piggyback off of private companies' tracking of their own users is a vital instrument that allows the agency to trace the data it collects to individual users. It makes no difference if visitors switch to public Wi-Fi networks or connect to VPNs to change their IP addresses: the tracking cookie will follow them around as long as they are using the same web browser and fail to clear their cookies.

[[https://theintercept.com/wp-content/uploads/2015/06/int-ink-3-540x442.jpg]]

Illustration: Blue Delliquanti and David Axe for The Intercept

Apps that run on tablets and smartphones also use analytics services that uniquely track users. Almost every time a user sees an advertisement (in an app or in a web browser), the ad network is tracking users in the same way. A secret GCHQ and CSE program called BADASS, which is similar to XKEYSCORE but with a much narrower scope, mines as much valuable information from leaky smartphone apps as possible, including unique tracking identifiers that app developers use to track their own users. In May of this year, CBC, in partnership with The Intercept, revealed that XKEYSCORE was used to track smartphone connections to the app marketplaces run by Samsung and Google. Surveillance agency analysts also use other types of traffic data that gets scooped into XKEYSCORE to track people, such as Windows crash reports.

In a statement to The Intercept, the NSA reiterated its position that such sweeping surveillance capabilities are needed to fight the War on Terror:

“The U.S. Government calls on its intelligence agencies to protect the United States, its citizens, and its allies from a wide array of serious threats. These threats include terrorist plots from al-Qaeda, ISIL, and others; the proliferation of weapons of mass destruction; foreign aggression against the United States and our allies; and international criminal organizations.”

Indeed, one of the specific examples of XKEYSCORE applications given in the documents is spying on Shaykh Atiyatallah, an al Qaeda senior leader and Osama bin Laden confidant. A few years before his death, Atiyatallah did what many people have often done: He googled himself. He searched his various aliases, an associate and the name of his book. As he did so, all of that information was captured by XKEYSCORE.

XKEYSCORE has, however, also been used to spy on non-terrorist targets. The April 18, 2013 issue of the internal NSA publication Special Source Operations Weekly boasts that analysts were successful in using XKEYSCORE to obtain U.N. Secretary General Ban Ki-moon's talking points prior to a meeting with President Obama.

[[https://theintercept.com/wp-content/uploads/2015/06/int-ink-4-540x442.jpg]]

Illustration: Blue Delliquanti and David Axe for The Intercept

TODO XKEYSCORE for hacking: Easily collecting user names, passwords and much more

XKEYSCORE plays a central role in how the U.S. government and its surveillance allies hack computer networks around the world. One top-secret 2009 NSA document describes how the system is used by the NSA to gather information for the Office of Tailored Access Operations, an NSA division responsible for Computer Network Exploitation (CNE) — i.e., targeted hacking.

Particularly in 2009, the hacking tactics enabled by XKEYSCORE would have yielded significant returns as use of encryption was less widespread than today. Jonathan Brossard, a security researcher and the CEO of Toucan Systems, told The Intercept: “Anyone could be trained to do this in less than one day: they simply enter the name of the server they want to hack into XKEYSCORE, type enter, and are presented login and password pairs to connect to this machine. Done. Finito.” Previous reporting by The Intercept revealed that systems administrators are a popular target of the NSA. “Who better to target than the person that already has the keys to the kingdom?'”  read a 2012 post on an internal NSA discussion board.

This system enables analysts to access web mail servers with remarkable ease.

The same methods are used to steal the credentials — user names and passwords — of individual users of message boards.

Hacker forums are also monitored for people selling or using exploits and other hacking tools. While the NSA is clearly monitoring to understand the capabilities developed by its adversaries, it is also monitoring locations where such capabilities can be purchased.

Other information gained via XKEYSCORE facilitates the remote exploitation of target computers. By extracting browser fingerprint and operating system versions from Internet traffic, the system allows analysts to quickly assess the exploitability of a target. Brossard, the security researcher, said that “NSA has built an impressively complete set of automated hacking tools for their analysts to use.”

Given the breadth of information collected by XKEYSCORE, accessing and exploiting a target's online activity is a matter of a few mouse clicks. Brossard explains: “The amount of work an analyst has to perform to actually break into remote computers over the Internet seems ridiculously reduced — we are talking minutes, if not seconds. Simple. As easy as typing a few words in Google.”

These facts bolster one of Snowden's most controversial statements, made in his first video interview published by The Guardian on June 9, 2013. “I, sitting at my desk,” said Snowden, could “wiretap anyone, from you or your accountant, to a federal judge to even the president, if I had a personal email.”

Indeed, training documents for XKEYSCORE repeatedly highlight how user-friendly the program is: with just a few clicks, any analyst with access to it can conduct sweeping searches simply by entering a person's email address, telephone number, name or other identifying data. There is no indication in the documents reviewed that prior approval is needed for specific searches.

In addition to login credentials and other target intelligence, XKEYSCORE collects router configuration information, which it shares with Tailored Access Operations. The office is able to exploit routers and then feed the traffic traveling through those routers into their collection infrastructure. This allows the NSA to spy on traffic from otherwise out-of-reach networks. XKEYSCORE documents reference router configurations, and a document previously published by Der Spiegel shows that “active implants” can be used to “cop[y] traffic and direc[t]” it past a passive collector.

TODO XKEYSCORE for counterintelligence

Beyond enabling the collection, categorization, and querying of metadata and content, XKEYSCORE has also been used to monitor the surveillance and hacking actions of foreign nation states and to gather the fruits of their hacking. The Intercept previously reported that NSA and its allies spy on hackers in order to collect what they collect.

Once the hacking tools and techniques of a foreign entity (for instance, South Korea) are identified, analysts can then extract the country's espionage targets from XKEYSCORE, and gather information that the foreign power has managed to steal.

Monitoring of foreign state hackers could allow the NSA to gather techniques and tools used by foreign actors, including knowledge of zero-day exploits—software bugs that allow attackers to hack into systems, and that not even the software vendor knows about—and implants. Additionally, by monitoring vulnerability reports sent to vendors such as Kaspersky, the agency could learn when exploits they were actively using need to be retired because they've been discovered by a third party.

TODO Seizure v. searching: Oversight, audit trail and the Fourth Amendment

By the nature of how it sweeps up information, XKEYSCORE gathers communications of Americans, despite the Fourth Amendment protection against “unreasonable search and seizure” — including searching data without a warrant. The NSA says it does not target U.S. citizens' communications without a warrant, but acknowledges that it “incidentally” collects and reads some of it without one, minimizing the information that is retained or shared.

But that interpretation of the law is dubious at best.

XKEYSCORE training documents say that the “burden is on user/auditor to comply with USSID-18 or other rules,” apparently including the British Human Rights Act (HRA), which protects the rights of U.K. citizens. U.S. Signals Intelligence Directive 18 (USSID 18) is the American directive that governs “U.S. person minimization.”

Kurt Opsahl, the Electronic Frontier Foundation's general counsel, describes USSID 18 as “an attempt by the intelligence community to comply with the Fourth Amendment. But it doesn't come from a court, it comes from the executive.”

If, for instance, an analyst searched XKEYSCORE for all iPhone users, this query would violate USSID 18 due to the inevitable American iPhone users that would be grabbed without a warrant, as the NSA's own training materials make clear.

Opsahl believes that analysts are not prevented by technical means from making queries that violate USSID 18. “The document discusses whether auditors will be happy or unhappy. This indicates that compliance will be achieved by after-the-fact auditing, not by preventing the search.”

Screenshots of the XKEYSCORE web-based user interface included in slides show that analysts see a prominent warning message: “This system is audited for USSID 18 and Human Rights Act compliance.” When analysts log in to the system, they see a more detailed message warning that “an audit trail has been established and will be searched” in response to HRA complaints, and as part of the USSID 18 and USSID 9 audit process.

Because the XKEYSCORE system does not appear to prevent analysts from making queries that would be in violation of these rules, Opsahl concludes that “there's a tremendous amount of power being placed in the hands of analysts.” And while those analysts may be subject to audits, “at least in the short term they can still obtain information that they shouldn't have.”

During a symposium in January 2015 hosted at Harvard University, Edward Snowden, who spoke via video call, said that NSA analysts are “completely free from any meaningful oversight.” Speaking about the people who audit NSA systems like XKEYSCORE for USSID 18 compliance, he said, “The majority of the people who are doing the auditing are the friends of the analysts. They work in the same office. They're not full-time auditors, they're guys who have other duties assigned. There are a few traveling auditors who go around and look at the things that are out there, but really it's not robust.”

In a statement to The Intercept, the NSA said:

“The National Security Agency's foreign intelligence operations are 1) authorized by law; 2) subject to multiple layers of stringent internal and external oversight; and 3) conducted in a manner that is designed to protect privacy and civil liberties. As provided for by Presidential Policy Directive 28 (PPD-28), all persons, regardless of their nationality, have legitimate privacy interests in the handling of their personal information. NSA goes to great lengths to narrowly tailor and focus its signals intelligence operations on the collection of communications that are most likely to contain foreign intelligence or counterintelligence information.”

Coming next:  A Look at the Inner Workings of XKEYSCORE

Source maps: XKS as a SIGDEV Tool, p. 15, and XKS Intro, p. 6

Documents published with this article:

TODO The Great Change: Charting Collapseniks   website

[Y-08-03 Thu 15:%]

TODO Article
TODO Tuesday, January 14, 2014

<<9222068244903913448>>

TODO Charting Collapseniks

"Rather than spurning financial system terrorists, Holmgren urges activists to become “terra-ists”; to directly bring down the system by thousands of acts of economic disobedience."
\\

[[//2.bp.blogspot.com/-atrcJlyGpUA/Ut2O_tpPSnI/AAAAAAAAHU8/g115pr76Sgw/s1600/taking+a+drink.jpg]]

A ferment in the environmental movement, brewing for many years, has now bubbled up into the blogosphere. We are dipping our ladle in here to take a little taste of it, even though we are quite certain it is not done fermenting.
\\ Bill McKibben has been stirring the wort of whether social activism can save us for many years. In Eaarth: Making Life on a Tough New Planet, as in The End of Nature a quarter century earlier, he poignantly waffled, in elegant prose, between hope and despair. Since launching 350.org — “the first political action with a number for a name” — he has urged those of us with any remaining shred of hope for our children's future, given what we now know about climate change, to step up and lay our lives on the line. Get arrested. Risk lengthy jail terms and even death to stop this atrocity. Do not go gentle into that good night.
\\ Words to this effect we have heard much longer and louder from Derrick Jensen, another eloquent writer, the difference being that McKibben advocates for non-violence in the mold of Gandhi and King, while Jensen has no qualms about advocating violence. Naomi Klein, another stirring writer with an arrest record, calls for acts of resistance large and small. McKibben is tepid about taking on capitalism's growth imperative, as though it were not a major contributing factor, while neither Holmgren, Klein nor Jensen have any such reservations.
\\ Thus we are tasting many different flavors of leadership, or literary guidance, in the shaping of the nascent climate resistance movement.
\\ Scientists themselves have been growing politically more active and radicalized, as Klein described in her October New Statesman essay. If you go back enough years you'll find scientists like Dennis Meadows, Howard Odum and James Lovelock, all of whom correctly foresaw the impending collision between consumer civilizations and natural systems. Lovelock made a series of climate-and-society predictions that went unheeded for 20 years but hold up well in retrospect.
\\ Joining the chorus of climate Cassandras with more structured harmonies are the peak-oilers and financial collapsarians. These thoughtful writers straddle a continuum that is both time-sensitive (near-term, middle term, long-term) and outcome ambivalent — they are undecided as to whether the future they foresee will be a good thing, a bad thing, or even survivable.
\\ Guy McPherson has staked out the lonely position for near-term human extinction, which might be a good thing or a bad thing, depending on how you look at it. Richard Heinberg, Nicole Foss and Steve Keen all see financial constraints as the leading edge of whatever storm is forming, and are not making predictions about how or when, but are planting gardens and putting up canned goods nonetheless.
\\ Michael Ruppert, James Howard Kunstler and Dmitry Orlov are also decoupling from whatever economic grids they may be attached to, but do not foresee a particularly happy outcome in all this. Social unraveling is not a pretty picture, as Orlov describes in his Five Stages of Collapse.
\\ Still clinging to the possibility of some salvageable human prospect are cultural and technical optimists like Amory Lovins, David Orr and Rob Hopkins. We personally would also favor this idea of an ecotopian future, and have been working to bring it about it for half a century now, but our own position is that collapse is likely unstoppable now, given, as Nicole Foss puts it “the excess claims on underlying real wealth.”
\\ What suddenly bubbled up from the blog vat at the start of 2014 was a white paper authored by David Holmgren, one of the founders of permaculture, reversing a position he had long espoused. Instead of associating himself with peaceful change by calling for restraint on overconsumption and gradual adoption of the degrowth economic paradigm, extending it ever outward until it became the mainstream culture, Holmgren abruptly called for “ Crash on Demand//www.blogger.com/null or a strategic decoupling by masses of youth (and elders) from the economic system that is the crashing the planet's ecological stasis, by simply walking away.
\\ “Rather than spurning financial system terrorists [a.k.a. banksters or the 1/10th-percent],” Holmgren urged activists to become “terra-ists”; to directly bring down the system by thousands of acts of economic disobedience. “The urgency for more radical action to build parallel systems and disconnect from the increasingly centralized destructive mainstream is a logical and ethical necessity whether or not it contributes to a financial collapse,” he wrote provocatively.
\\ This immediately inspired a flurry of thoughtful responses, as might be expected. One of the most impassioned came from one whose positions Holmgren had just abandoned. Writing for Transition Culture January 13, Rob Hopkins responded, “to state that we need to deliberately, and explicitly, crash the global economy feels to me naive and dangerous, especially as nothing in between growth and collapse is explored at all.”
\\ Hopkins main truck with Holmgren is his readiness to toss away all notions of mainstreaming permaculture and transition towns. “I may be naive,” he writes, “but I still think it is possible to mobilise that in a way that, as the Bristol Pound illustrates, gets the support and buy-in of the 'City/State' level, and begins to really put pressure and influence on 'National' thinking. I may be naive, but it's preferable to economic collapse in my book, and I think we can still do it.”
\\ Concerned that a hard line position would expose social change agents to the full weight of state security as well as to the blame cascading from an angry populace, and that sewing the seeds of civil discord is always dangerous, Nicole Foss wrote on The Automatic Earth January 9 that financial collapse is already well underway and there is no need to expedite the process. “While I understand why Holmgren would open a discussion on this front, given what is at stake, it is indeed dangerous to grasp the third rail' in this way. This approach has some aspects in common with Deep Green Resistance, which also advocates bringing down the existing system, although in their case in a more overtly destructive manner.”
\\ “Decentralization initiatives already face opposition, but this could become significantly worse if perceived to be even more of a direct threat to the establishment,” Foss concluded.
\\ Having these positions staked out was useful for the discussion of strategy that change agents need to be more engaged with. Klein and McKibben seem to think that if we just have enough “Battles for Seattle,” the economic system of global civilization will be radically restructured. Our own experience in joining dozens of massive marches and actions of civil disobedience but nonetheless failing to end the Vietnam War has perhaps jaundiced our views in this regard. Moreover, Holmgren and Foss make clear that that's not going to happen.
\\ Even the recently unveiled strategy of fossil fuel divestment, as promising as it is, and as grounded in investment reality of the stranded, overvalued assets unable to ever be burnt, stands little chance of being able to arrest climate tipping points that may have been triggered decades ago.
\\ Foss is not especially concerned for the climate, apparently clinging to the position Holmgren had some years ago, that collapse of energy and economics will augur in a low-carbon future, although she does acknowledge the lurking unknowns from reversed global dimming. “We need to get down to the business of doing the things on the ground that matter, and to look after our own local reality. We can expect considerable opposition from those who have long benefited from the status quo, but if enough people are involved, change can become unstoppable. It won't solve our problems in the sense of allowing us to continue any kind of business as usual scenario, and it won't prevent us from having to address the consequences of overshoot, but a goal to move us through the coming bottleneck with a minimum amount of suffering is worth striving for.”
\\ Our own view is that the likelihood that a runaway greenhouse effect is now underway is greater than it has ever been, and to call what is coming a bottleneck is a poor choice of words except perhaps in the sense of the genetic bottleneck experienced 70-80 thousand years ago in connection with a supervolcano that reduced our hereditary lines to fewer than 5000 individuals worldwide. While we understand the concern she raises about unduly politicizing the issue, we'd say that cat has left its bag and keeping silent for fear of numbing the population makes no more sense for climate change than it does for Ponzi economics. Indeed, the parallels between the overdraft on Earth's atmosphere and the excess claims on fictional central bank assets are striking — neither is going to go away simply by ignoring them. In both cases, the cake already baked.
\\ This prompts us to make a new grid to categorize the range of opinions amongst peakists, collapseniks, politicos and anarchists. It goes something like this, at first drawing, and we welcome corrections, especially from those named.
\\ Holmgren's change of position can be charted this way:
\\ \\

[[//3.bp.blogspot.com/-NGrBpvZwr24/UtVpZ2OJ5-I/AAAAAAAAHRo/x4Nw9KwklYI/s640/3Collapseniks.001.jpg]]

\\

\\ If we plot the respective positions of other change strategists, they look something like this:
//3.bp.blogspot.com/-Xn84Ld-0paY/UtVaRfSIdnI/AAAAAAAAHRM/Ta2ZIK7Ml6M/s1600/CCollapseniks.002.jpg
\\ \\ \\

[[//3.bp.blogspot.com/-I8YaCP7Q6uk/Utb9QXrDHII/AAAAAAAAHTM/YYB0nzx3BIc/s1600/7bCollapseniks.002.jpg]]
This is revision #7 since our original post

\\ Our own position in this matrix , outlined in two books since 2006, is off to the left and centered on the line, meaning that while we are adamant in our advocacy for peaceful transformation, we are doubtful as to whether ecotopia is possible without collapse. Those seem to us to be a coupled pair. Likewise, McKibben is in favor of a new green economy but stuck vacillating between more peaceful and less peaceful means of getting there, while McPherson is deeply wedded to inevitable collapse without caring any more about social responses.
\\ Not surprising, given what they know, scientists like Lovelock, Ken Anderson, and Howard Odum all fall below the line dividing Ecotopia from Collapse. Odum, we suspect, would have been in favor of peaceful transformation, while the others would like us to push harder and force the issue.
\\ Naturally those most concerned with Holmgren's shift would be those closest to his former position, including Rob Hopkins. Those closest to him now — Kunstler, Anderson, Hansen and Klein — would be the most likely to approve.
\\ What is missing from Holmgren's paper are the advances in terrestrial carbon sequestration — as opposed to Ponzi geoengineering — in no small measure reaching fruition by dint of permaculture design. While permaculturists like Rob Hopkins, Declan Kennedy and Max Lindegger pursued innovations in social structures — transition towns, complimentary currencies and ecovillages — other permaculturists — Darren Doherty, Richard Perkins, Joel Salatin and Ethan Roland, to name just some — have pushed the envelope to see how much carbon can actually be returned to the soil. This revolution is the subject of Courtney White's new book, Grass, Soil, Hope: A Journey Through Carbon Country, scheduled for release in June.
\\ Would we have ever learned that a mere 2% increase in the carbon content of the planet's soils could offset 100% of all greenhouse gas emissions going into the atmosphere if we had not been so frightened of climate change by Al Gore and other scaremongers? Speaking as one who wandered deep into Amazonian history to discover this new paradigm, we reply: probably not.
\\ We've added some color coding and sector analysis with this third iteration:
\\ \\

[[//2.bp.blogspot.com/-cnLxngbUXYc/Utb6oENq9_I/AAAAAAAAHTE/TtHLBf-znUw/s1600/7aCollapseniks.003.jpg]]
This is revision #7 since our original post

\\ Now lets step back and add a whole nother layer to this.
\\ There is a really good cultural transformation going on, with ecovillagers, ecological restorationists, soil remineralizers and post-empire econometricists. Simultaneously, there is a really negative übertrend of banksters and purchased or annointed politicians enriching themselves off oil, nuke and the wealth of nature, then turning all that surplus into the worst kinds of pollution the kinds that take millennia to degrade and even then impair gene pools for untold generations.
\\ These two conflicting transformations coexist against the backdrop of almost immeasurably immense climatic and biosystemic change that will severely affect, if not drive, our world in the future. We all exist in the context of ecosystems and yet these familiar norms are being utterly destroyed while we write this. The tiny little good ecovillagers, permaculturists and transition towners do pales in comparison to the scale of damage of unrestrained growthaholism that seems almost a genetic imperative of our species — and we are the keystone species in ecosystem Earth. Holmgren has this right, and it is undeniably frightening.
\\ We're sure there may be more thoughtful readers who can add to this analysis and produce more insights than we have, but as we say, we're just grateful to be having this kind of discussion. The conversation continues in our next post, Recharting Collapseniks.
\\ After co-teaching a permaculture course in Belize with Nicole Foss next month, we will be vetting this analysis with Dmitry Orlov, Dennis Meadows, John Michael Greer, Gail Tverberg, KMO and others at the Age of Limits conference in Pennsylvania in May. \\

Posted by

Albert Bates at

10:48AM [[https://resources.blogblog.com/img/icon18_email.gif]] [[https://resources.blogblog.com/img/icon18_edit_allbkg.gif]]

Email This BlogThis! Share to Twitter Share to Facebook Share to Pinterest

Labels: Age of Limits, Albert Bates, capitalism, carbon farming, collapse, degrowth, Dmitry Orlov, ecovillage, Holmgren, Kunstler, MacPherson, McKibben, Naomi Klein, Occupy, permaculture, Rob Hopkins, supervolcano, writing

<<comments>>

TODO 26 comments:

<<c7909048387351472339>>

[[//www.blogger.com/img/blogger_logo_round_35.png]]

Alexander Ac said…

Hello Albert,
\\ thanks for this nice analysis!
\\ My question is if/where would you put Dave Cohen (retired peak-oiler and now retired blogger), who wrote around +1500 blogs on our collctive predicament during the last 3 years of the Decline of The Empire.
\\ I also miss Ugo Bardi :-)
\\ Best,
\\ Alex

January 14, 2014 at 11:43AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c6187748830063867484>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEyynmGGP-RwLWfdYV_M6TBzditmOsDkjQPvY_5qdLvrMebZsEt0Rc9gjiYvJdjpS_ZybSlPcytC3VBY8SCSa9r6M8_RNJkgw75lautJdcXVuO_MwsKRw5P03m_hFRgTM/s45-c/skintnick.jpg

skintnick said…

John Michael Greer mentioned but not on your graph

January 14, 2014 at 2:20PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c3142451119757862765>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_f8--yWjCCYOYasZgakTyF0NcV0KDcnqklSsRiuIgO2tPAurx7DaoTVbigy3Ag9LOFLc1d4IvyOZJMkV49HJ1zzSX_X0vcd-EHDZDJ-xsF1B_D3i_aaZoQGCwM9XDbg/s45-c/Nicole+2013.jpg

Stoneleigh said…

It's not that I'm not concerned about climate or that I'm denying in any way that climate chaos is occurring. I do think there's more uncertainty in the science than most people seem to, but uncertainty and complexity intrigue me. I am fully supportive of biochar and other small to medium scale carbon sequestration methods. They're a complete win-win. I would add industrial scale sequestration efforts to my list of things likely to be counter-productive, as anything on an industrial scale is going to be carbon intensive, and could well make things worse. I'm not suggesting shutting down conversations on the science or any such thing. It's mass awareness and fear that I think are likely to be counter-productive , especially if they lead to large scale 'policy responses'. I have zero faith in the ability of the political system to address any systemic threat in a constructive way.

January 14, 2014 at 4:35PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c3916722856280867694>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8udqo5xse5I-e3wxsnqpb8Hg5yYqV5VPH2wN37yuHOLBJKAOiqLcWCpkLCk63jqIxS9vtFia0xhnfEgnmC7PYL5189RD3TNOTJ2fkHFYI1Ie9izWQKZMBLQOs9L4hagI/s45-c/copy+2018+%281%29+joe+snow+Hslaw+DSC_0349+%282%29.jpg

philsharris said…

Hi
I look forward to reading the presentations at the Limits to Growth conference in W Virginia.
\\ I don't fly these days.
\\ And as Alex asks - where is Ugo Bardi (the Chemistry Prof)?
\\ best
Phil H4

January 14, 2014 at 5:11PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c1604867517561561571>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5nXy6vmdAUx_m_vBw2iJh0PyoN8b-8fmKjUDgWxgHPXshdWy0EaE9vjuQff4dG6cUfso1Rdyl_ZIPskzXGWKwkV7zOhmSi40ERCmFTVuSpUB-Ix0AY38KVJBPBAV5rQ/s45-c/Headshot-9-19.jpg

Dan Miner said…

Hi Albert,
\\ This is an awesome analysis. Great work!
\\ I'm still grasping at the possibility of influencing some people, so I gravitate to the positions of Bill McKibben, Rob Hopkins, and others, including Heinberg and yourself. As far as which narratives can be either helpful or accurate, only time will tell.
\\ Dan Miner
NYC

January 14, 2014 at 10:17PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c4962458476165106344>>

https://resources.blogblog.com/img/blank.gif

//1.bp.blogspot.com/-_DSyMmKvnSg/YPAzaHkuC3I/AAAAAAABS2k/aNsLk02PJeEdAmdg0LN0o_Xod3Qg6IUKQCK4BGAYYCw/s35/profile2021.jpg

Tom Wayburn said…

Where am I?
\\ http://tomwayburn.net/#_Net_Energy_Analysis
\\

January 15, 2014 at 3:45AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c674504807192831972>>

[[//www.blogger.com/img/blogger_logo_round_35.png]]

David Eggleton said…

Thank you. This is valuable and will be increasingly useful if/as the mentioned folks respond and clarify.
\\ I sit in the midst of Holmgren, Bates and Heinberg.

January 15, 2014 at 7:35AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c7499218153424173045>>

https://resources.blogblog.com/img/blank.gif

//3.bp.blogspot.com/_crhQq5DZNPI/Sat79oIbiNI/AAAAAAAAByE/9X9WWMuq8qI/S45-s35/499160146_49b88627e3.jpg%3Fv%3D0

Josh said…

To trigger the crash and reset to a lower level of GGE, Holmgren's piece calls for pulling pins out of the global financial system through household and local initiatives aimed to cut consumption, relocalize economies and build community resilience. This, he says, is to be undertaken by a committed minority of people in affluent countries. Some readers may be appalled at Holmgren's suggestion that it might be appropriate to intentionally crash the system. But this assumes that we could "crash the system," if we so chose. Many committed individuals and organizations (small and large) have been working at all levels (grassroots, corporate, government, NGO, urban, rural, "inside" and "outside" "the system," etc.) for decades now in effort to "cut consumption, relocalize economies and build community resilience." These laudable efforts have yet to arrest or even slow the global economy, let alone crash it. Such have been the stated objectives of various "green groups" for so long now; so why hasn't it already happened? The global economic status quo has enormous inertia, and Holmgren alludes to our widespread paralysis in the face of this. Additionally, vast sums of money and tremendous political forces are arrayed to propping up the status quo at all costs. This suggests that even if a "committed minority of people in affluent countries" came to agreement that it is necessary to "crash the system," they would not be able to do so. I question whether Holmgren is suggesting that green groups do anything they have not already been doing for years now, albeit perhaps with the altered explicit intention of "crashing the system." Even that does not seem new, as many green activists find the system abhorrent and have been explicitly trying to sink it all along. Is the realization that "We can't crash the system even if we wanted to" less palatable, even, than what Holmgren proposes? Western (white) middle-class children are taught from a young age, "You can grow up to be whatever you want - you can change the world!" I find that this attitude has been carried forward into a lot of (white) middle-class environmental and social justice movements. An overdeveloped sense of personal empowerment has apparently led many to believe that they have a responsibility to "make the world a better place" - what is implied is that they have the power to do so. This becomes too teleological (not to mention hubristic and Messianic): we become green activists because "We Must Win!" Holmgren makes the allusion to a "not-so-slow moving train crash." This is an apt analogy because once the train crash has begun, there's nothing anyone can do about it. Likewise, we do not have the power or control to "crash" the global financial system in the manner we choose and according to our preferred timeline. What happens is what happens, over whatever time period it turns out. Our job is still to "cut consumption, relocalize economies and build community resilience." But we are better off doing so non-teleologically. We do it because it's the right thing to do, and the best thing to do under the circumstances, not because "We Must Win!"

January 15, 2014 at 9:41AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c7992672941867613987>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmH6Omw79VoBkhSw3l3DGafouzO7jNcOSy57twASUPePo9cHbKQY_s3-LYJfPSk6ycZvFUuDihSzIurKjxgK0vKvK5Yrdjvc7SNy3sDBz54Gclj37A-8wcbwtlq9lvakM/s45-c/AlbertHeadshot2021

Albert Bates said…

Josh,
\\ While I heartily agree it does no good to over-estimate your ability to alter the course of history, I have to say every now and then I feel that humongous boulder budge a little, and damn but doesn't that feel good!

January 15, 2014 at 10:06AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c1671804389061526852>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmH6Omw79VoBkhSw3l3DGafouzO7jNcOSy57twASUPePo9cHbKQY_s3-LYJfPSk6ycZvFUuDihSzIurKjxgK0vKvK5Yrdjvc7SNy3sDBz54Gclj37A-8wcbwtlq9lvakM/s45-c/AlbertHeadshot2021

Albert Bates said…

Nicole,
\\ I don't know how anyone could come away from a careful reading of IPCC-5 or any of the newer papers published in Science, Nature, or the specific journals for the climate field and still say "I do think there's more uncertainty in the science than most people seem to." I just have to shake my head at that, as I do for the "best thing is to say nothing" remark.\\

January 15, 2014 at 10:10AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c8141859129543773217>>

[[//www.blogger.com/img/blogger_logo_round_35.png]]

Unknown said…

This article provides a very helpful framework for discussion. I have a contribution to make to the discussion about stakeholder engagement/collaborative problem solving processes designed to maximize citizen participation in local efforts to overcome the challenges of our times.
\\ \\ This writer has contributed (in many places) a “List of Ten Critical Challenges” (1 page)(condensed from compilation of excerpts assessments over many years)(accessible at http://cpcsc.info/tipping-point-action/ ). He feels that almost all of the challenges in the list—especially halting global warming before unprecedented negative feedback loops set in—will involve whole cultures needing to find contentment and quality of life using much less materials goods and ecological services. One important point on that list which is absent from many other critical challenge assessments he has seen is #7 “A Marginalization of the Treasured Wisdom of Religious, Spiritual, and Moral Traditions” (with a not unrelated, and more widely cited, challenge being #2 “Cultures of Violence, Greed, Corruption, and Overindulgence”).
\\ While there are many people who are cynical about the value of such treasured wisdom, those who have experienced such wisdom know that “The satisfaction of one's physical needs must come at a certain point to a dead stop before it degenerates into physical decadence.” (Mahatma Gandhi). Most people would agree that there are many people who do not understand that kind of wisdom now—but how many people would also agree that “their help will be needed” to avoid disastrous global warming outcomes?
\\ Thus, if one is cynical about whether many people can—or are willing to—deliberately cultivate the above traditions for the treasured wisdom, they may also disregard the potential for collaborative problem solving which would attempt to engage “people who do not understand that kind of wisdom”, (as irrelevant, since they dismiss the idea that “their help” will ever be forthcoming).
\\ My main point here would not be that all we need are more collective kumbaya experiences (as in why can't we all just get along?)—but that there are gritty, nuts and bolts grind it out do your homework and build trust in stakeholder engagement/collaborative problem solving processes which can be adopted into use in many different kinds of communities and cultures. And if one does believe—for whatever reason—that even with the unprecedented challenges ahead, we can arrive at a positive outcome, then it is common sense practical, and has much to commend itself in the long run, to 1) deliberately cultivate the religious, spiritual, and moral traditions for the treasured wisdom, and 2) increase our efforts in research, advocacy, and best practices sharing of stakeholder engagement/collaborative problem solving models which are designed to maximize citizen participation.
\\ \\ There are many ways to build momentum for such collaborative problem solving processes.
\\ In December, 2013, this writer [as the primary organizational person for the Community Peacebuilding and Cultural Sustainability (CPCS) Initiative] launched a campaign called “Tipping Point Action: Citizen Participation in Times of Unprecedented Challenges”.
\\ The three primary outreach documents for that campaign—and much information about how volunteers can contribute—can be accessed at the “Outreach for the Tipping Point Action Campaign” webpage, at the website for the Community Peacebuilding and Cultural Sustainability (CPCS) Initiative.
\\ \\ Closing comments:
\\ The more people know about organizations, initiatives, and campaigns which have their eyes wide open about the challenges, but are nevertheless doing the gritty, nuts and bolts grind it out do your homework and build trust in thinking and doing which will help matters—the more likely they will be to choose those options to participate in.

January 15, 2014 at 11:19AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c544630940587990578>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfuknUOMFN_DDp7-8kCaswVJrMVcu7TkIx986Ud9PXav9NOdyOjwBtbl2J7Jvw67elx2PlO5nEBHWxP9JrTyjMccEy2T3BM-7A8q6pwX5GoUA9Fz8PorYzPCzHSASD2A/s45-c/Author+Photo.jpg

Walter said…

Albert - I have great respect for you (even though you are a permacultist!) because of your focus on real work with the soil. You are the only person, besides myself, that I have ever heard say, "We can make soil. We don't have to rely on the 1000-year per inch process." I also appreciate that you have read widely in anthropology and genetics (e.g. mentioning Jorde and Harpending). However, I think your argument is as simplistic as Holmgren and Hopkins. Putting analysts on a neat little chart with four sectors lacks nuance. We just don't know what is going to happen do we? Keep feeding people and building alternatives for the future. That's real change.

January 15, 2014 at 11:53AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c5566155378636332224>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmH6Omw79VoBkhSw3l3DGafouzO7jNcOSy57twASUPePo9cHbKQY_s3-LYJfPSk6ycZvFUuDihSzIurKjxgK0vKvK5Yrdjvc7SNy3sDBz54Gclj37A-8wcbwtlq9lvakM/s45-c/AlbertHeadshot2021

Albert Bates said…

Walter -
\\ I agree that the map is not the territory, and this is especially true of mind maps. I am just an impulsive doodler.
\\ John Michael Greer and Ugo Bardi got enough requests that I added them in the 6th revision. I also placed Ted "Unibomber" Kaczynski in the upper right quadrant. See: http://peaksurfer.blogspot.mx/2013/06/the-unibomber-in-age-of-limited-options.html

January 15, 2014 at 12:46PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c4700782067941213386>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_f8--yWjCCYOYasZgakTyF0NcV0KDcnqklSsRiuIgO2tPAurx7DaoTVbigy3Ag9LOFLc1d4IvyOZJMkV49HJ1zzSX_X0vcd-EHDZDJ-xsF1B_D3i_aaZoQGCwM9XDbg/s45-c/Nicole+2013.jpg

Stoneleigh said…

Well, at least you needn't worry that I'll be going around talking about it ;)

January 15, 2014 at 2:11PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c4718841119393762633>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_f8--yWjCCYOYasZgakTyF0NcV0KDcnqklSsRiuIgO2tPAurx7DaoTVbigy3Ag9LOFLc1d4IvyOZJMkV49HJ1zzSX_X0vcd-EHDZDJ-xsF1B_D3i_aaZoQGCwM9XDbg/s45-c/Nicole+2013.jpg

Stoneleigh said…

By the way, I think the best place for me on your graph would be to place me roughly at the intersection of a horizontal line drawn through Odum and a vertical line drawn through Bardi. I try my best to encourage peaceful transformation, but that doesn't mean I think it all that likely when supply chains are so vulnerable and financial crisis can be very abrupt. Basically, I'm trying to push from where I indicated on your graph towards where you initially put me. The odds of success I rate as low, but the effort is absolutely worth it.
\\ Also I think it would be good to put David Korowicz on the graph. He's a very serious thinker on these issues. I'll ask him to suggest where he thinks he would fit.

January 15, 2014 at 2:24PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c6065025678853795252>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmH6Omw79VoBkhSw3l3DGafouzO7jNcOSy57twASUPePo9cHbKQY_s3-LYJfPSk6ycZvFUuDihSzIurKjxgK0vKvK5Yrdjvc7SNy3sDBz54Gclj37A-8wcbwtlq9lvakM/s45-c/AlbertHeadshot2021

Albert Bates said…

Accepting still more feedback, I have readjusted Nicole Foss's position to her specification, repaired Guy McPherson's spelling, and added Ray Kurzweil to the upper left quadrant, staking out a polar opposite position from Ted Kaczynski. James H. Kunstler suggests a good sort criteria might be whether the individual expects a mere demise of society or of the entire human prospect. I concur, but don't know that many, other than Guy McPherson and James Lovelock, are willing to reveal that.

January 15, 2014 at 3:26PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c8565946356000940864>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqBGupjVMTb6VGCm-c8bR3wnHA8ZI1NrTeSJW3Up_TLNYsmWH9aCJbqskoPjOj3hvB09nVeP_pCEgr88yTaQHXBvVoz7afmxJBwc-lTHgyFqtsfv4Feg_26A2A5Wl9_Q/s45-c/portrait-2020a.png

Dave Pollard said…

Thanks Albert. This is somewhat along the lines of a chart I posted last year reviewing David Graeber's book, which is a bit more complex.
\\ I would say the right side of the chart should be "Active Resistance" not "Violent Revolution". In the lower right quadrant, that active resistance is holding actions, done to lessen but not with any hope of preventing collapse. With that clarification, I'd put James Hansen, Nicole Foss and Naomi Klein in the lower right, and shift Lovelock in the lower left. Those above the line are not Collapsniks but what I have called Salvationists.
\\ I'd sometimes put myself close to the lower right corner (when I'm angry) and sometimes in the lower left corner (when I'm more at peace with the inevitability of collapse). With time, 'gravity' will, I think, move everyone down in your chart until it only has one dimension left.

January 15, 2014 at 6:41PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c5927522714581744274>>

[[//www.blogger.com/img/blogger_logo_round_35.png]]

Gard said…

I think Charles Eisenstein deserves a spot as amongst the peaceful collapsenik.

January 16, 2014 at 2:56PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c875825926665637601>>

[[//www.blogger.com/img/blogger_logo_round_35.png]]

Unknown said…

I thought the world to be in an awful mess when I came to The Farm Community in 1973 feeling it was a spiritual activism to demonstrate community based on loving care for one another and I was not disappointed. I agree Charles Eisenstein deserves a place on the graph as I think he holds that view. We had no idea how bad it would get but I still think the solution is the same. However hard it is to convince the population that they need to create local economies to shield themselves from the economic collapse the accompanying ecological collapse will likely drive us all to that out of necessity. But central to it all I think will be a new spiritual/religious fervor to reunite with nature and get back in balance with our planet, to reconnect as a species, a desire that will emerge simultaneously world around, because our bodies of a trillion intelligent cells simply won't allow it all to go down. One could call that faith, I call it a simply a choice. I am still involved with the Green Party despite understanding that the current political system will never effectively respond to our needs. I can't help but to continue to push toward a new political economy.

January 16, 2014 at 5:54PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c6602392862282748890>>

[[//www.blogger.com/img/blogger_logo_round_35.png]]

Unknown said…

Prosecution: Objection, your Honor. Counsel for the Defense is requesting he be allowed to tell a story—without any indication that the story is relevant to this post.
\\ Defense: Your Honor, with storytelling it is often better to let the story unfold without saying what is coming—that is helpful to realizing the dramatic effects of the story. However, I will give two indications that this story is relevant. First, there is a short song at the end of the story. It is titled “A Harvest Song”. It goes like this (sings softly, and plays a soft rhythm on one of the court railings):
\\ Long ago
We we're sown
Now we're here
Hear our song
\\ A question of relevance here is “What is our song?”
\\ A second indication that this story is relevant: the story is a creation myth, and as such it brings up the question “What are we?” I submit that our answers to the question “What are we?” are very much related to what kind of charts we make, and where we want to be on such charts.
\\ Judge: Objection overruled. Counsel may proceed with his story.
\\ Defense: The story is titled “The Spirit of the Sacred Hoop”. It is 9 pages long. For people who would rather read the story it is accessible at the “Collected Writings of Stefan Pasti” section of the Community Peacebuilding and Cultural Sustainability (CPCS) Initiative website (at www.cpcsc.info) (see Alt. Navigation Menu) (or http://bit.ly/1eGS4t4) (direct URL is too long). The story begins in this way:
\\ “Many years ago there was a sun that warmed up a sphere made of rocks, and created some water where only rocks had been before. As the warmth of the sun continued, some of this water evaporated and became air. The sphere of rocks then seemed to soften, and continued to change, as climate patterns developed, and daily and seasonal variations in the weather occurred. By this process what was once just a sphere made of rocks became….”

January 17, 2014 at 10:07AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c4539121081881834432>>

[[//www.blogger.com/img/blogger_logo_round_35.png]]

Danny C said…

What's interesting about all these approaches, is that they are all in agreement that this show can't go on in it's destructive way without creating an accelerating "collapse". If this be the case, to hasten it without giving hope to some of us latecomers would be in itself an attack/punishment for not being here sooner. I would rather proceed to an alternate way which in itself retracts my involvement with the "system". That is a silent and peaceful way which will not alienate those who are fence sitters or who just are in the dark. The house is already burning…..there's no need to light an additional match to it.

January 17, 2014 at 2:24PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c5031593421158730810>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWwZCE-eTevxFnGLIuffakotA6ljIOj4oHS23LxVd6yRfm23e-h3VXQ9EsNICGrVwa0VH_OXaG7xr19Wu0mwWV6LYy09jHtvz0WDAM8xoJjVOcslC2I3Vy4bdwZlwTrw/s45-c/Alex+Studio+Smaller+DSC_0260++SQUARE.jpg

Alex Smith said…

What if I am a non-violent pessimistic collapsenik?
\\ That's what I am, but it doesn't fit on this chart?
\\ Alex Smith
host of Radio Ecoshock

January 20, 2014 at 12:44PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c3048216510560404567>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqBGupjVMTb6VGCm-c8bR3wnHA8ZI1NrTeSJW3Up_TLNYsmWH9aCJbqskoPjOj3hvB09nVeP_pCEgr88yTaQHXBvVoz7afmxJBwc-lTHgyFqtsfv4Feg_26A2A5Wl9_Q/s45-c/portrait-2020a.png

Dave Pollard said…

I am too, Alex. Thats why I created my chart. You may be what I call an 'existentialist'.

January 22, 2014 at 3:58PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c463675549237759051>>

[[//www.blogger.com/img/blogger_logo_round_35.png]]

Hugtheworldbetter said…

I think Graeme Sait should be added to the map. He's the greatest speaker I've heard on getting carbon and life back into the soil. Graeme is working hard and trying to ignore the potential hopelessness of it all, in case we still have time.

January 23, 2014 at 9:23PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c5883784927931448299>>

https://resources.blogblog.com/img/blank.gif

//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhymPNxGPERPaEdD396ptNZxxdZLpiu98W1ItWVKSFAuouOndDITd2HSO2KeRFUNYArCpNIEBaXvSvWrYJFsx5u5hJqZKTjGptxq7mxurCNb7u2MZ6WiDUa6FCYFRmCem4/s45-c/*

Andrea Muhrrteyn said…

You may wish to include the MILINT Earth Day crowd; if you wish.

January 31, 2014 at 7:32PM [[https://resources.blogblog.com/img/icon_delete13.gif]]

<<c404578561839141295>>

//resources.blogblog.com/img/blank.gif

Anonymous said…

I would say that, in all likelihood, some confluence of many, if not most, of these views and predictions is going to take place. It is difficult to make accurate predictions during a time like this, when technological development is tremendous and accelerating, while, at the same time, environmental disasters are becoming more and more frequent and severe, and the pace at which they occur is accelerating with the overall direction of climate change and ecological destruction; resource depletion threatens to overwhelm global food and water security (and thus energy, infrastructure, and resultant technological growth); and over-consumption, overpopulation, and economic inequality only serve to make matters worse.
\\ The problem, for me, is a lack of cohesion. I read many, many news reports on climate change, overpopulation, resource depletion, technological development, and future trends. The number of stories, and the opinions their writers (or associated scientists, researchers, and academics) espouse varies considerably. (I stay away from the "work" of deniers and lukewarmers, of course, but even among those who agree with the science there is a considerable difference in opinion.)
\\

  • RVS (E.S.)

June 12, 2015 at 10:53AM [[https://resources.blogblog.com/img/icon_delete13.gif]]

Post a Comment

Newer Post Older Post Home

Subscribe to: Post Comments (Atom)

TODO Friends

//1.bp.blogspot.com/_Yww18kST3h8/SeJAU3LRABI/AAAAAAAABhs/-hXLlBl9cRY/S1600-R/facebookfriends.jpg\\

TODO Dis-complainer

The Great Change is published whenever the spirit moves me. Writings on this site are purely the opinion of Albert Bates and are subject to a Creative Commons Attribution Non-Commercial Share-Alike 3.0 "unported" copyright. People are free to share (i.e, to copy, distribute and transmit this work) and to build upon and adapt this work under the following conditions of attribution, n on-commercial use, and share alike: Attribution (BY): You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Non-Commercial (NC): You may not use this work for commercial purposes. Share Alike (SA): If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. Therefore, the content of
this publication may be quoted or cited as per fair use rights. Any of the conditions of this license can be waived if you get permission from the copyright holder (i.e., the Author). Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. For the complete Creative Commons legal code affecting this publication, see here. Writings on this site do not constitute legal or financial advice, and do not reflect the views of any other firm, employer, or organization. Information on this site is not classified and is not otherwise subject to confidentiality or non-disclosure.

TODO Nuclear Power Must Make a Comeback for Climate's Sake - Scientific American   website

[Y-08-03 Thu 15:%]

TODO Article

James Hansen, former NASA climate scientist, and three other prominent climate scientists are calling for an enlarged focus on nuclear energy in the ongoing Paris climate negotiations.

"Nuclear, especially next-generation nuclear, has tremendous potential to be part of the solution to climate change," Hansen said during a panel discussion yesterday. "The dangers of fossil fuels are staring us in the face. So for us to say we won't use all the tools [such as nuclear energy] to solve the problem is crazy."

He was joined by Tom Wigley, a climate scientist at the University of Adelaide; Ken Caldeira, a climate scientist at the Carnegie Institution for Science; and Kerry Emanuel, a professor of atmospheric science at the Massachusetts Institute of Technology.

Their stance clashes with those of environmental groups such as Greenpeace that advocate against nuclear energy.

As nations have proposed emissions curbs in Paris up to 2030, scientists have computed that there is a 1-in-2 chance that their collective ambition would raise temperatures in 2100 by between 2.7 to 3.7 degrees Celsius. Nations would like to limit temperature rise to 2 degrees Celsius, and stabilize atmospheric carbon dioxide levels at 450 parts per million (ppm).

There is 400 ppm of CO2 in the atmosphere at present.

So scientists have now turned their attention to what would be needed after 2030 to meet a 2 C goal: an energy system transformation that emits less carbon. For this, all technology options need to be on the table, including nuclear, the scientists said.

At present, there is a worrisome groundswell of opinion that renewable energy is sufficient to hit that target, Wigley of the University of Adelaide said. He is the owner of a zero-asset company, South Australian Nuclear Energy Systems, that educates people on the technology but is not involved with the nuclear industry.

"We are alarmed by people who want to close the door on nuclear, and so that is why we are more outspoken than we might have been a few years ago," he said in a phone interview.

Very few nations, at present, mention nuclear in their greenhouse gas emissions reduction pledges, he said. Given the long time needed to build a nuclear power plant, nations should prioritize the technology immediately, he said.

The scientists stressed that even a 2 C target might not be effective. Hansen has previously emphasized that sea-level rise could threaten coastal areas even if that target is met.

Can new nukes be a cheaper alternative?
If nations meet their Paris pledges, called intended nationally determined contributions, or INDCs, and continue decarbonizing beyond 2030 at a rate of 5 percent, there is more than a 3-in-4 chance that a 4 C temperature rise could be avoided. That much warming could trigger irreversible tipping points in the Earth system and catastrophic climate change. The findings were published in Science.

The United States' INDC up to 2030 would require the nation to decarbonize at a rate of 6 percent. China will have to decarbonize at 4 percent.

The Paris pledges make it more probable than before that nations will meet 2 C, provided that the world decarbonizes rapidly after 2030, said Allen Fawcett, chief of U.S. EPA's Climate Economics Branch and lead author of the study. Nations are negotiating in Paris mechanisms to review their climate goals every five years and ratchet up their ambitions.

"Paris is a steppingstone to a better climate future," Fawcett said. "Each additional contribution and each additional increase in ambition that countries make under the Paris framework will help improve our chances of limiting future warming."

Beyond 2030, nations would need a portfolio of technology options to decarbonize, said Gokul Iyer, a researcher with the Pacific Northwest National Laboratory's (PNNL) Joint Global Change Research Institute and a co-author of the study.

"That is going to entail premature retirements of fossil fuel power plants, and also additional renewable, nuclear and carbon capture and sequestration power plants," Iyer said.

If the nuclear energy option is ignored, nations would have to pay a larger bill to achieve their goals, Fawcett said.

"The more technology is available and the more different opportunities you have for reducing emissions, the less costly those pathways [to 2 C] tend to be," he said.

Or can renewables go it alone?
Mark Jacobson, a professor of civil and environmental engineering at Stanford University, is optimistic that the world can meet the 2 C target and, in fact, stabilize emissions at 350 ppm instead of the 450 ppm that the United Nations aspires to, using solely renewable energy.

The technologies for this transformation wind, water and solar energy already exist, he said. They could entirely replace the world's fossil fuel-based energy system by 2050, if governments will it to be so, he said.

"The only obstacles are social and political," he said. "The only reason why it can't get implemented is because there are people against it."

In Jacobson's energy matrix, nuclear energy does not play a role. Nuclear plants need two decades to build, and the mining of uranium fuel is carbon-polluting, he said.

"It is a a whole distraction, and people should know better than to propose nuclear energy, because people who are working in this field know it is not going to go anywhere," he said.

Instead, Jacobson proposes that the world overcome its sociopolitical barriers and install 80 percent renewables by 2030 and 100 percent by 2050. During times when the wind does not blow or the sun does not shine, he proposes using hydropower to make up the gap.

He said the costs of the transformation would be worth the benefits: 22 million net jobs, the costs of global warming, avoiding unstable energy prices and energy security.

"We can have 100 percent reliable grid across the U.S. without nuclear, without natural gas, without biofuels, with only wind, water, solar, with low-cost storage," he said.

Quick, factory-built nuclear power plants?
Other scientists would like to see more research and development to bring down the costs of the energy transition. The Bill Gates-led Breakthrough Energy Coalition last week announced a $2 billion fund for clean energy research.

"Technological change is going to be a critical element in controlling costs of achieving these stringent targets," Iyer of PNNL said.

Wigley of the University of Adelaide sees improvements on the horizon for nuclear technologies, particularly in China, where modifications of Westinghouse technology could allow new plants to be set up in two to three years.

"There are technological innovations in the wings at the moment that will make it much quicker to build nuclear power stations," he said. "There are technologies that involve modular systems where the components for a large number of power stations can be built in a factory and taken to a site and assembled together."

Every attempt to increase national ambitions would help the world meet the 2 C target, Fawcett of EPA said.

"[It] will have a real and tangible benefits in terms of improving the odds of a better climate outcome, reducing the chance of extreme outcomes, improving our changes of limiting the warming to the lowest levels we can," he said.

Reprinted from Climatewire with permission from Environment & Energy Publishing, LLC. www.eenews.net, 202-628-6500

TODO LinkedIn

TODO Untitled

TODO On Silos

TODO Blog

TODO The Nile

TODO Blog

TODO CircleID

TODO CircleID

TODO x

TODO x

TODO CircleID

TODO Politics

TODO WIRED

TODO Feature

TODO HIGH TECH

TODO Ghosting

TODO Shareable

TODO The BLT

DONE Getting started with Readability for Android

CLOSED: [2023-02-16 Thu 16:46]

DONE You are being Tracked!!   computer hacking security

CLOSED: [2023-01-17 Tue 03:33]

By: Harmless Strategies <https://canadiantom.com/menu.htm>

Corporations and government are able to go inside your computer and violate your privacy anytime they want! The creator of the Windows operating system , has conveniently imbedded some interesting files inside each computer keeping track of all your movements. Here is a small excerpt from the tutorial on the BruteForce cd-rom

Want proof? Win95/98

Launch windows explorer. Under "Tools" click on "find" Now, look for these files on your hard drive; if you decide to view them, use a good editor like Ultra Edit to see what is inside. Normal editors like Notepad will not show you what is contained.

SYSTEM.INI

Contains details about the locations and software that you are running on your system, as well as other personal things that might be helpful for rogues to find out - like preferences and the like.

USER.DAT

This is an important file! Inside this monster there are masses of data about you: The last few dozen places you've visited on the Internet; Your name; email address, telephone number, various user ID's and passwords, details about software you use and your preferences, locations of files and folders, and literally hundreds of other personal things! Even the unencrypted names of the usenet groups you have been playing with lately…

Have a look at your own user.dat using an editor like ultraedit. This should freak you out. Most of the file is encrypted but you can make out enough references that are in plain text to give you a scare. You can get a free editor here ( www.completelyfreesoftware.com )

Details Make a local copy of it (from your c:\windows\profiles\Yourself) and browse it using an"editor". You'll be amazed at the wealth of information about yourself that this huge database holds… among other things all the search strings you have recently used! There is a lot of encrypted stuff here as well! The question you have to ask yourself is, "Why is this file there?" Don't alter it in anyway! Windows will not work right if you do. They do notwant you to change it!

SYSTEM.DAT

Even worse, Once again, lots of personal details, including the location of all your windows passwords (login, screen saver, network, LAN, etc.), every conceivable thing about your computer, its hardware and setup, and full details of all the software you're using or you have ever used. You'll have the surprise of finding all the names of applications you have installed in the last couple of years on your computer! Again, you will have to use "edit" to inspect these files yourself.

*.PWL (pwl) Located by knowing your user name, or by looking up the above file. Inside here are all your passwords. These are easily decrypted (if necessary)

nsform??.TMP All the data inside every Netscape form you've ever submitted, with and without Secure Socket Layers.

Inbox, Outbox, Sent, Trash A complete copy of all your incoming, outgoing, sent, and soon-to-be-deleted email. All in plain text without any encryption.

MsWord, Excel, Access, Power Point All these programs, as well as windows itself, cache the filenames of the most recent documents you have been working on. This leads any attacker directly to your recent work!

You are being Tracked .. Without looking inside the software, we would have no idea that many programs give critical access for filing and writing into the registry of our operating systems. This is buyer beware tactics on behalf of corporations (with government happily looking on, calculating the potential for their own misuse.) There are even more details on what

Microsoft is doing with your information whenever you allow the program called "RegWhiz" to collect information.

See essay "RegWiz"

In the world of reverse engineers, the operating system is slave to the owner. Not it's creator!

Here is an example of easy to learn reverse engineering using a Harmless Strategy

Do not buy software to do something you can easily do for yourself!

That is a simple rule of thumb. Why would you pay for software to eliminate cookies when you can follow the simple directions below or download one of many free software products to do the job for you? This is a fine example of the media's ability to promote a commercial product rather than a practical suggestion.

The best way to eliminate all cookie planting, is to create a directory "cookies.txt" inside Netscape's directory (where the file cookies.txt originally is). This directory will get priority over the targeted file, and all cookies will be sent to..wherever!

Hyperspace….. Once you have created this new cookies.txt directory, reset "Options"/ "Network""preferences""protocols"/"show an alert before accepting a cookie to NO, in fact, the sites that you visit will "believe" that they planted their cookies in your hard disk, and let you through without delay. Only you will know that no cookie was planted!

Wanna get into really scary things? Read this!

The registration wizard ::- (by Andrew Schulman, Senior Editor, O'Reilly & Associates)

The "Online Registration" feature of Microsoft's Windows 95 (Win95) (also in Win 98), also known as the "Registration Wizard" (RegWiz), has been the subject of much rumor and more or less idle speculation. Of special concern is RegWiz's ability to collect information on applications (both Microsoft and non-Microsoft) that a user has installed on their hard disk, and to send this information back to Microsoft via the Microsoft Network (MSN). As explained below, the internal name for this process is "Product Inventory": it is a feature of the PRODINV.DLL module included with Win95.

That Win95 can apparently tell what applications you have installed has generated numerous angry reactions online. For example, a posting in the comp.risks newsgroup claims that Win95 "transmits your entire directory structure in [the] background" to MSN. (MSN). Similar claims have appeared on Microsoft's forums on CompuServe, under headings such as "WIN95: Bye, ByePrivacy" and "Computer espionage by M$".

Ralph Nader's Consumer Project on Technology has even urged President Clinton "to prevent federal agencies from buying Windows 95 until the information gathering features of the 'Registration Wizard' are disabled or modified".

Microsoft has responded with a white-paper clarification (https://www.microsoft.com/windows/pr/regwiz.htm - Microsoft white paper clarification on Windows 95 Online Registration Wizard) which acknowledges that the Win95 Registration Wizard (RegWiz) collects the names of applications, but which also points out that the user must explicitly consent before this information is sent via modem to MSN, and that the information can be viewed in the file REGINFO.TXT. While the Microsoft clarification states that RegWiz "is simply an electronic version of the paper-based registration card," this appears not to be true. RegWiz's apparent ability to sniff out what applications you have is not matched by the printed registration card, which merely asks for general information on the sorts of software you use with your computer (Reference & Education, Games & Entertainment, Personal Finance/Organizer, etc.).

To see exactly what happens during Windows 95 "Online Registration," I used a utility called FILEMON (File Monitor), by Stan Mitchell (73227.1463@compuserve.com), "Monitoring Windows 95 File Activity in Ring 0," Windows/DOS Developer's Journal, July 1995, pp. 6-24. Mitchell is writing a book on the Windows 95 file system, to be published by O'Reilly & Associates in 1996. FILEMON lets you completely monitor all file-system activity under Windows 95 This makes it perfect for getting to the bottom of the the rumors that have been circulating about RegWiz. The bottom line is that RegWiz, far from conducting an indiscriminate search of a user's hard disk, instead searches for about 100 specific applications, both from Microsoft and from its competitors. RegWiz is launched by clicking the "Online Registration" button in WELCOME.EXE, which is a small program that provides the initial "Welcome to Windows 95" tips and options. Clicking "Online Registration" launches a program named \WINDOWS§YSTEM\REGWIZ.EXE (the full command line is "regwiz -i Software\Microsoft\Windows\CurrentVersion". REGWIZ.EXE in turn loads a dynamic-link library, \WINDOWS§YSTEM\PRODINV.DLL This is the "Product Inventory DLL," normally used for compliance checking of upgrades to Microsoft Office programs such as WinWord. (In fact, PRODINV.DLL's internal module name for "COMPLINC," for "compliance checking.")

Of course, when you buy the upgrade edition of something like WinWord, there needs to be a mechanism to check that in fact you really do have some previous word processor be it a previous version of WinWord, or a competitor's word processor, such as AmiProc or WordPerfect. So there's an encrypted database (the reasons for this encryption are discussed below) inside PRODINV of about 100 or so products, indicating that if a given EXE of a given size range is found within a given subdirectory, then you've got a given product, and are entitled to the reduced-price upgrade. Examining the file PRODINV.DLL turns up some intriguing-sounding strings, such as "Registry Search", "INI File Search", "Big Search", and "Hard Disk Search". The DLL exports a function called "RegProductSearch," which is called by REGWIZ.EXE. Examining the file REGWIZ.EXE turns up the names of the people who worked on it:

  • Software development: Tracy Ferrier
  • Program management: David Gonzalez, Peggy Angevine
  • Quality assurance: Sharmilli Ghosh
  • Special thanks to: Evelyn and Lauren

RegWiz will list up to twelve applications that a user owns; these are stored in the text file REGINFO.TXT and in the registry, and are uploaded via MSN. The product inventorysection of one REGINFO.TXT might look like this:

Product Inventory 1 = Microsoft Word for Windows Product Inventory 2 = Personal Oracle 7 Product Inventory 3 = Borland C++ for Windows Product Inventory 4 = Microsoft Visual C++ Product Inventory 5 = Putt Putt Product Inventory 6 = Treehouse Product Inventory 7 = Lotus Notes Product Inventory 8 = CompuServe Product Inventory 9 = Product Inventory 10 = Product Inventory 11 = Product Inventory 12 =

It's worth noting that the sample "Product Inventory" screen in Microsoft's white-paper clarification shows only Microsoft programs. But the upset generated by RegWiz has been due, of course, to its collection of information regarding non-Microsoft programs. The applications in which RegWiz takes an interest are as follows (the names come directly from the PRODINV product inventory): Applications Detected by Win95 Registration Wizard: (probably more in Win 98)

3-D Dinosaur Adventure Aldus Pagemaker for Windows Aldus Persuasion America On-line AmiPro for Windows Approach for Windows Bookshelf 94 for Windows Borland C++ for Windows Borland Dbase Borland Delphi Borland Paradox for DOS Borland Paradox for Windows CA - Visual Objects Charisma Charisma for Windows Clipper Complete Baseball for Windows Comptons Multimedia Encyclopedia CompuServe Corel Draw for Windows Crayola Art Studio Creative Writer Creative Writer - Ghost Mysteries DataEase DataEase for Windows dBase for Windows Director's Lab DOS Encarta Fine Artist Flight Simulator FoxPro for DOS FoxPro for Windows - Standard Freddi Fish Gupta SQL Windows Harvard Graphics Haunted House Internet In A Box Kid Pix DOS Kid Pix WIN Lion King Print Studio Lion King Story Book Lotus 123 for Windows Lotus Notes Lotus123 for DOS Mathblaster Episode 1 Mathblaster Episode 2 Microsoft Access Developers Toolkit Microsoft Access for Windows Microsoft Access Upsizing Tool Microsoft Encarta '95 Microsoft Excel for Windows Microsoft Money Microsoft Office for Windows Microsoft Powerpoint for Windows Microsoft Project for Windows Microsoft Publisher Microsoft Visual Basic Professional Microsoft Visual C++ Microsoft Visual FoxPro for Windows Microsoft Word for DOS Microsoft Word for Windows Microsoft Works for Windows Mind Your Money Money MSB - Human Body MSB - Solar My First Encyclopedia NCSA Mosaic for Windows Oregon Trail Oregon Trail 2 Personal Oracle 7 PGA Tour 486 Playroom PowerBuilder Enterprise 4 for NT PowerBuilder Enterprise 4 for Windows PowerPlus Print Shop Deluxe for Windows Prodigy Putt Putt Quattro Pro for DOS Quattro Pro for Windows Quick C for Windows Quicken for Windows Rabbit Ears - Leopard Reader Rabbit 1 Reader Rabbit 2 Relentless Scenes Spider Man Cartoon Maker SuperBase Treehouse Turbo Pascal for Windows Where in Space is Carmen San Diego Where in the USA is Carmen Where in the World is Carmen San Diego Wine Guide WordPerfect for DOS WordPerfect for DOS WordPerfect for Windows

While there are many Microsoft applications listed here, note that there are also many from other vendors. Some major commercial applications, such as Lotus Freelance Graphics, do not appear on the list, while many programs for children, such as Treehouse and Reader Rabbit, are included.

Given that RegWiz ships this information over the Microsoft Network (MSN), it's interesting to note that RegWiz is checking for the major online services that compete with MSN, such as America On-line, CompuServe, and Prodigy. Two Internet-related products, NCSA Mosaic for Windows and Internet in a Box, appear on the list, but Netscape does not. Most striking, of course, is the presence of many non-Microsoft productivity applications, such as AmiPro for Windows, Borland Dbase, Borland Paradox, Gupta SQL Windows, Lotus Notes, Lotus 123, Personal Oracle 7, Quattro Pro, and WordPerfect. Is all this a cause for concern? After all, as Microsoft points out, the user must explicitly allow RegWiz to upload this information to Microsoft. The user can choose not to run Online Registration at all. They can, without any harm to Win95, delete REGWIZ.EXE and even WELCOME.EXE.

But what is a Microsoft Office upgrade mechanism doing as part of the operating system's online registration? Why is the operating system being used to collect customer lists and/or statistical information on applications that compete with those from Microsoft? The Registration Wizard appears to be yet another case in which Microsoft has blurred distinction (whatever distinction remains) between its applications and operating-system divisions. Were I a Microsoft competitor whose product appeared in the encrypted PRODINV database, I wouldn't be particularly happy with Microsoft acquiring (for free) a good chunk of my customer list, via online registration for Windows 95, which is supposed to be a platform supporting my product.

So, it's not really an invasion of privacy issue, but is very possibly an anti-competitive problem: Microsoft is using its control over the operating system to gain information about applications that compete with its own applications. How does PRODINV determine that you have one or more of the products in its encrypted database? Running the FILEMON utility alongside RegWiz revealed that a large number of directory names were being checked. The output from FILEMON looks like this (… indicates that lines removed for brevity):

Extract from FILEMON Output 031 Open [c1065964] {c104ca54} C:\WIN95\WELCOME.EXE … 060 Open [c10658b4] {c104ca54} C:\WIN95§YSTEM\REGWIZ.EXE … 098 Open [c10646d0] {c104ca54} C:\WIN95§YSTEM\PRODINV.DLL … 175 e GetAttrib {c104ca54} C:\ACCESS 176 e GetAttrib {c104ca54} C:\MSOFFICE\ACCESS 177 e GetAttrib {c104ca54} C:\WORLDMPC 178 e GetAttrib {c104ca54} C:§PACE 179 e GetAttrib {c104ca54} C:\CAVO 180 e GetAttrib {c104ca54} C:\DBASEWIN\BIN 181 e GetAttrib {c104ca54} C:\DELPHI 182 e GetAttrib {c104ca54} C:\DELPHI\BIN 183 e GetAttrib {c104ca54} C:\DISNEY\LKASB 184 e GetAttrib {c104ca54} C:\LKSTUDIO 185 e GetAttrib {c104ca54} C:\MYMWIN2 186 e GetAttrib {c104ca54} C:\ORAWIN\BIN 187 e GetAttrib {c104ca54} C:\PB4 188 e GetAttrib {c104ca54} C:\PB4NT 189 e GetAttrib {c104ca54} C:\TLC\RR1 … 251 e GetAttrib {c104cc68} E:\AOL20 252 e GetAttrib {c104cc68} E:\WAOL 253 e GetAttrib {c104cc68} E:\BC4 254 e GetAttrib {c104cc68} E:\CSERVE 000 e GetAttrib {c104cc68} E:\AMIPRO 001 e GetAttrib {c104cc68} E:\PRODIGY 002 e GetAttrib {c104cc68} E:\ALDUS 003 e GetAttrib {c104cc68} E:\IBOX 004 e GetAttrib {c104cc68} E:\DBASE … 107 e GetAttrib {c104cc68} E:\KA\TREE 108 e GetAttrib {c104cc68} E:\TREEHSE

Simplifying the FILEMON output, here is a complete list of the directories for which RegWiz (actually, the ProdInv "product inventory" module) searches: Directories Scanned by Win95 Registration Wizard \123R4D \123R4W \ACCESS \ALDUS \AMIPRO \AOL20 \APPROACH \BASEBALL \BC4 \BS \CAVO \CHARISMA \CIE \CLIPPER5\BIN \CLIPPER5\LIB \CRAYOLA \CSERVE \DBASE \DBASEWIN\BIN \DEASE \DELPHI \DELPHI\BIN \DEWIN \DINO3D \DISNEY\LKASB \ENCARTA \EXCEL \FLTSIM5 \FOXPRO2 \FOXPROW \FPW26 \GUPTA \HG \HG3 \HGW \IBOX \KA§PIDERCM \KA\TREE \KIDPIX \LKSTUDIO \LOSTCITY \MBWINCD \MECC\OTII \MOSAIC \MSKIDS \MSKIDS\LEAOPARD \MSMONEY \MSOFFICE \MSOFFICE\ACCESS \MSOFFICE§ETUP \MSPUB \MSTOOLS \MSTOOLS\C\DLAB \MSVC20\BIN \MSWINE \MSWORKS \MYMWIN2 \NOTES \OFFICE\WPWIN \ORAWIN\BIN \OTWIN \PB4 \PB4NT \PDOX45 \PDOXWIN \PERSUASI \PGA486 \PLAYWRLD \POWERPNT \PRODIGY \PROJ \PSDWIN \PUTTPUTT \PWPLUS \QCWIN \QPRO \QPW \QUICKENW \RELENT §B4W §CENES §PACE \TLCWIN\RR2WIN \TLC\RR1 \TPW \TREEHSE \VB \VFP \WAOL \WINDOWS \WINDOWS\CHARISMA \WINDOWS\CORELDRW \WINPROJ \WINWORD \WINWORD\C\DLAB \WORD \WORKS \WORLDMPC \WP \WP50 \WP51 \WP60 \WPWIN \WPWIN60

If these directories actually existed, it makes sense that RegWiz would start looking for specific files within these directories. So the next step was to write a batch file which created all these directories, and then rerun RegWiz alongside FILEMON. Now FILEMON revealed RegWiz searching for specific files within directories. For example:

Extract from FILEMON Output (2) 085 e FndOpen {c104cc68} E:\AOL20\WAOL.EXE 086 GetAttrib {c104cc68} E:\WAOL 087 e FndOpen {c104cc68} E:\WAOL\WAOL.EXE 088 GetAttrib {c104cc68} E:\BC4 089 e FndOpen {c104cc68} E:\BC4\BCW.EXE 090 GetAttrib {c104cc68} E:\CSERVE 091 e FndOpen {c104cc68} E:\CSERVE\WINCIM.EXE 092 GetAttrib {c104cc68} E:\AMIPRO 093 e FndOpen {c104cc68} E:\AMIPRO\AMIPRO.EXE 094 GetAttrib {c104cc68} E:\PRODIGY 095 e FndOpen {c104cc68} E:\PRODIGY\PRODIGY.EXE 096 GetAttrib {c104cc68} E:\ALDUS 097 e FndOpen {c104cc68} E:\ALDUS\ALDSETUP.EXE 098 GetAttrib {c104cc68} E:\IBOX 099 e FndOpen {c104cc68} E:\IBOX\AIRMOS.EXE 100 GetAttrib {c104cc68} E:\DBASE 101 e FndOpen {c104cc68} E:\DBASE\DBASE.EXE …

Extracting filenames from the FILEMON output and sorting them, yielded the following list of filenames in which RegWiz (again, actually the Win95 PRODINV.DLL "product inventory" module) takes a direct interest:

Files Scanned by Win95 Registration Wizard \123R4D\123.EXE \123R4W\123W.EXE \ACCESS§CWIZ.DLL \ACCESS§ETUPWIZ.MDB \ACCESS§WU2016.DLL \ACCESS\WZCS.MDA \ALDUS\ALDSETUP.EXE \ALDUS\PR2.EXE \AMIPRO\AMIPRO.EXE \AOL20\WAOL.EXE \APPROACH\APPROACH.EXE \BASEBALL\BASEBALL.EXE \BC4\BCW.EXE \BS\BS94.EXE \CAVO\CAVO.EXE \CHARISMA\CHARISMA.BIN \CHARISMA\CHARISMA.EXE \CIE\CIE.EXE \CLIPPER5\BIN\CLIPPER.EXE \CLIPPER5\LIB\CLIPPER.LIB \CRAYOLA§TUDIO.EXE \CSERVE\WINCIM.EXE \DBASEWIN\BIN\DBASEWIN.EXE \DBASE\DBASE.EXE \DBASE\DBASEIV.ICO \DEASE\DE16M.EXE \DEASE\DEASE.EXE \DELPHI\BIN\DELPHI.EXE \DELPHI\DELPHI.EXE \DEWIN\DEWIN.EXE \DINO3D\KAWIN.EXE \DISNEY\LKASB\LIONKING.EXE \ENCARTA\ENCART95 \EXCEL\EXCEL.EXE \FLTSIM5\FS5.COM \FOXPRO2\FOXPRO.EXE \FOXPRO2\FOXPROX.EXE \FOXPROW\FOXPROW.EXE \FPW26\FOXPROW.EXE \GUPTA\C\DLAB \GUPTA§QLWIN50.EXE \HG3\HG3.EXE \HGW\HG20.EXE \HGW\HGW.EXE \HGW\HGW1.DLL \HGW\HGW2.DLL \HGW\HGW20.EXE \HGW\HGW2EXP.DLL \HGW\HGW3.DLL \HGW\HGW4.DLL \HGW\HGWPLAY.EXE \HG\HG.EXE \IBOX\AIRMOS.EXE \KA§PIDERCM§PIDERCM.EXE \KA\TREE\TREE.EXE \KIDPIX\KIDPIX.EXE \KIDPIX\KPWIN.EXE \LKSTUDIO\LIONKING.EXE \LOSTCITY\LOSTCITY.EXE \MAIN123W.EXE \MBWINCD\MB4.INI \MECC\OTII\OTIILB.EXE \MOSAIC\MOSAIC.EXE \MSKIDS\ARTIST.EXE \MSKIDS\GWICON.IC \MSKIDS\HHOUSE.ICO \MSKIDS\LEAOPARD\LEOPARD.EXE \MSKIDS\MSBHUMAN.EXE \MSKIDS\MSBSOLAR.EXE \MSKIDS\WRITER.EXE \MSMONEY\MSMONEY.EXE \MSOFFICE\ACCESS§CWIZ.DLL \MSOFFICE\ACCESS§ETUPWIZ.MDB \MSOFFICE\ACCESS§WU2016.DLL \MSOFFICE\ACCESS\WZCS.MDA \MSOFFICE\MSOFFICE.EXE \MSOFFICE§ETUP\OFF40_BB.DL_ \MSOFFICE§ETUP\OFF42_BB.DL_ \MSOFFICE\WINWORD\WINWORD.EXE \MSPUB\MSPUB.EXE \MSTOOLS\WORD.COM \MSVC20\BIN\MSVC.EXE \MSWINE\WINEGDE.EXE \MSWORKS\MSWORKS.EXE \MYMWIN2\MYMWIN.EXE \OFFICE\WPWIN\WPWIN.EXE \OFFICE\WPWIN\WPWIN61.EXE \ORAWIN\BIN\ORAINST.EXE \OTWIN\OREGON.EXE \PB4NT\PB040.EXE \PB4\PB040.EXE \PDOX45\PARADOX.AUX \PDOXWIN\PDOXWIN.EXE \PERSUASI\(C)ALDUS.'92 \PERSUASI\PR2.EXE \PGA486\PGA486.COM \PLAYWRLD\PLAYROOM.EXE \POWERPNT\POWERPNT.DLL \POWERPNT\POWERPNT.EXE \PRODIGY\PRODIGY.EXE \PSDWIN\PSDWIN.EXE \PUTTPUTT\PUTTPUTT.INI \PWPLUS\PWPLUS.EXE \QCWIN\QCWIN.EXE \QPRO\Q.EXE \RELENT\RELENT.EXE §B4W§B4W.EXE §CENES§CENES.EXE §PACE\CARMEN.EXE \TLCWIN\RR2WIN\RR2WIN.EXE \TLC\RR1\RR1.EXE \TPW\TPW.EXE \TREEHSE\TREEHSE.EXE \VB\VB.EXE \VFP\VFP.EXE \WAOL\WAOL.EXE \WIN95\LOTUS.INI \WINDOWS\CHARISMA\CHARISMA.EXE \WINDOWS\CORELDRW\CORELDRW.EXE \WINDOWS\HEGAMES.INI \WINWORD\WORD.COM \WORD.EXE \WORD\WORD.EXE \WORKS\WORKS.EXE \WORLDMPC\CARMEN.EXE \WP50\WP.EXE \WP51\WP.EXE \WP60\WP.EXE \WPWIN60\WPWIN.EXE \WPWIN\WPWIN.EXE \WP\WP.EXE

This list should lay to rest the idea that RegWiz scans your entire hard disk. On the contrary, it has specific things it is looking for. Indeed, the list is so specific that one might ask what happens when a user installs product in a directory other than the vendors' recommended directory: how then would RegWiz find it? We'll get to that later. For now, the important thing is that RegWiz (via PRODINV) does not do an indiscriminate search of your hard disk, but has specific targets in mind.

The next obvious step was to try to create some of these files, and see if RegWiz decided that I now had a given product. However, creating dummy (0-byte) files with the correct names, or files with arbitrarily-chosen contents but with the correct names, did not induce RegWiz to believe the corresponding product was installed. Evidently, RegWiz needed something other than directory and file names: perhaps afile checksum, size, date, or a particular pattern of bytes within the file.

To find how RegWiz (ProdInv, actually) was deciding that a user had a product, I needed to find where it kept information associating directory/file names with product names. However, a full search of my hard disk turned up no occurrences of strings such as "TREEHSE" or "TREEHSE.EXE" or "CARMEN.EXE", aside from the ones that showed up in the FILEMON logs. Evidently, then, the actual "product inventory" is kept on disk in compressed and/or encrypted form, and is de-encrypted in memory only when PRODINV is loaded.

The next step was to run RegWiz under the Soft-ICE Windows debugger (https://www.numega.com/WWW/numega/newsidx.html - NuMega Technologies), and stop the program when it is calling the operating-system functions that search for directories and files. The key such function is FindFirstFileA, provided by KERNEL32.DLL. I set a debugger "breakpoint" on this function, ran RegWiz, and clicked "Online Registration."

Sure enough, I could see passing in the names of the directories and files that showed up in the FILEMON output. I was then able to "walk back" to the place from where FindFirstFileA was being called: it turned out, not surprisingly, to be inside PRODINV.DLL. From there, I had to step back again to see from where these names were coming. I finally located a buffer in memory that looked like this:

Debugger Hex Dump of PRODINV Product Inventory Break Due to BPMB #013F:009AFA0C W DR3 C=01 :d eax 013F:004436C5 77 6F 72 64 2E 63 6F 6D-2C 5C 77 69 6E 77 6F 72 word.com,\winwor 013F:004436D5 64 2C 31 35 30 30 2C 39-30 30 30 30 2C 33 30 3A d,1500,90000,30: 013F:004436E5 4D 69 63 72 6F 73 6F 66-74 20 57 6F 72 64 20 66 Microsoft Word f 013F:004436F5 6F 72 20 44 4F 53 09 0A-77 6F 72 64 2E 63 6F 6D or DOS..word.com 013F:00443705 2C 5C 77 69 6E 77 6F 72-64 2C 31 35 30 30 2C 39 ,\winword,1500,9 013F:00443715 30 30 30 30 2C 33 30 3A-4D 69 63 72 6F 73 6F 66 0000,30:Microsof 013F:00443725 74 20 57 6F 72 64 20 66-6F 72 20 44 4F 53 09 0A t Word for DOS..

At this point, it was trivial to locate the beginning and end of the buffer, and write it to disk. (Recall that the database is stored on disk in encrypted form; this is why a search of the entire hard disk did not find it.) Here are some selected portions of the PRODINV product inventory:

PRODINV Product Inventory: Extracts winword6.ini,Microsoft Word,programdir,1 winword.exe,3000000,4000000,2:Microsoft Word for Windows win.ini,embedding,Word.Document.6,3,,3000000,4000000,2:Micro oft Word for Windows win.ini,Microsoft Word 2.0,programdir,1, winword.exe,1000000,2000000,2:Microsoft Word for Windows win.ini,embedding,WPWin6.0,3,,10000,25000,3:WordPerfect for Windows lotus.ini,Lotus Applications,amipro,1,amipro.exe,1000000,1500000,20:AmiPro for Windows win.ini,AmiPro,dictionary,1,amipro.exe,1000000,1200000,20:AmiPro for Windows win.ini,extensions,nsf,1,notes.exe,,,43:Lotus Notes … waol.exe,\aol20,12000,15000,54:America On-line waol.exe,\waol,12000,15000,54:America On-line bcw.exe,\bc4,850000,920000,45:Borland C++ for Windows wincim.exe,\cserve,850000,890000,56:CompuServe amipro.exe,\amipro,700000,2000000,20:AmiPro for Windows prodigy.exe,∏igy,550000,560000,57:Prodigy aldsetup.exe,\aldus,280000,290000,46:Aldus Pagemaker for Windows airmos.exe,\ibox,600000,650000,75:Internet In A Box dbase.exe,\dbase,0,500000,21:Borland Dbase dbaseiv.ico,\dbase,0,2000,21:Borland Dbase …

The first set of entries reference .INI (initialization) files, which in turn reference file and/or directory names. For example, "win.ini,embedding,WPWin6.0,3,,10000,25000,3:WordPerfect for Windows" means to look for a WPWin6.0= entry in the [embedding] section in WIN.INI, and to treat the third comma-delimited field as a full directory/filename. If that file is between 10,000 and 25,000 bytes, RegWiz decides you have WordPerfect for Windows. Thus, the following WIN.INI entry:

[embedding] WPWin6.0=foo,foo,C:\FOO\FOOBISH.EXE,foo along with a file named C:\FOO\FOOBISH.EXE, whose size is between 10-25,000 bytes, will trigger RegWiz to display "WordPerfect for Windows" as one of the products on the user's machine. The use of .INI allows RegWiz to detect some applications installed in non-standard directories.

However, the bulk of the product inventory directly references directory and file names, without an intermediary .INI file. For example, the last two entry shown above indicate that, if a user has \DBASE\DBASE.EXE (size anywhere from 0 to 500,000 bytes) OR if they have \DBASE\DBASEIV.ICO (size anywhere from 0 to 2,000 bytes), then they have product #21, "Borland Dbase." So why is the PRODINV "product inventory" encrypted? I suspect because it was originally written for Microsoft Office (a nearly-identical module named WRD95INV.DLL comes with WinWord, for example). Because it would be trivial to fool this "wizard" (hmm…) simply by creating an appropriately-sized file with the appropriate name in the appropriate subdirectory, the database is encrypted.

This makes perfect sense for application upgrades. But does it make sense for the operating system's online registration?

Microsoft's white-paper clarifications says: "Registration enables Microsoft to send information about Microsoft programs that are tailored for users needs and interests." (yeah, right) While there is nothing wrong in Microsoft seeking to interest WordPerfect or AmiPro users in Microsoft Word, surely they could find a more appropriate venue in which to do so than the online registration of Windows itself, which is supposed to support ALL applications, not just those from Microsoft.

Be Scared…Be very scared….now the new york times tells us about realnetworks doing it to all of us who listen to MP3's check this page out! <https://canadiantom.com/realplayer.htm>

<https://canadiantom.com/realplayer.htm> tom-

This article has been used with the permission of Harmless Strategies <https://canadiantom.com/menu.htm>

TODO Dymaxion: Secure Application Development for NGOs and Others: Part II   website

[Y-08-03 Thu 15:%]

TODO Article
TODO Secure Application Development for NGOs and Others: Part II

[[//dymaxion.org/graphics/cuboctahedron-normal-transparent-200x200.png]]

TODO Dymaxion.org

This is a Patreon-supported essay. Drafts of all of these essays go out a week early to my $10 and up subscribers. Building secure applications is hard, and for organizations that have never done it before, it's often unclear where to even start. Worse, organizations that have some development experience often underestimate the work required to ship secure code. My goal with this essay is to make the landscape more legible and give NGOs and other organizations an idea of where to start. This is a part two of a four part essay; part one is here, part three is here, and part four is here.

[[//dymaxion.org/graphics/patreon-badge.png]]I have a Patreon, here, where you can subscribe to support my security and systems-focused writing. You sign up for a fixed amount per essay (with an optional monthly cap), and you'll be notified every time I publish something new. At higher support levels, you'll get early access, a chance to get in-depth answers to your questions, and even for more general consulting time.

Dymaxion.org is me. Along with writing, I consult, give talks, make art, take photographs, and work on a number of public projects. You can hire me to do all of these things.

©2023 Eleanor Saitta.

[[//dymaxion.org/graphics/feed-icon-14x14.png Feed for essays and talks]]

TODO Introduction to Part II

This is part two of my guide to secure software development for NGOs and other organizations. You can find part one here and parts three and four here and here. In the previous section, we looked at the lifecycle of software, the organization creating it, and the design process and how it impacts security. In this section, we'll look at everything that comes between design and actually writing code.

TODO Threat Modeling and Security Objectives

Once you understand the requirements the system is intended to implement, it's time to start building your threat model. A threat model is a formal, human-readable model of all of the security-relevant, in-scope parts of the system.

Threat models come in two partsthe requirements model and the architecture model. In the requirements model, you want to understand everything that can go wrong in the system at the level of user tasks and goals, how bad those negative outcomes are, relatively speaking, and what the system's response should be if an adversary tries to make one of those negative outcomes happen. The requirements model also enumerates all of the roles in the system, the assets (the things you're trying to operate on or protect), and who's allowed to do what to what. The requirements threat model draws on and complements requirements documentation, especially the security requirements and identified security properties. The threat model formally shows what those security properties mean within the rest of the requirements and the architecture.

The goal of the requirements-level threat model is to create a set of security objectives. The security objectives concisely encapsulate the security-relevant responses of the system to adversaries and will shape mitigations selected during architectural design.

If you did your work correctly while developing the requirements, the threat model should go quickly. You shouldn't wait to finish the requirements to start threat modeling, however, even if you aren't doing agile development. The requirements and the threat model should be developed together iteratively. If you are doing agile development, the threat model must be a living document and threat model updates should be a part of every user story. In all cases, the threat model should be a key element for communicating security goals across the development team.

A world on formalitywhen I say formal in a threat model, I mean something where you can understand procedurally if your threat model is complete and internally consistent. This isn't the same as “formal verification”, which attempts to create mathematical proofs of correctness from source code. Threat models are just models, and there's some intentional fuzz between the model and the implementation. The goal of a threat model is to represent architecture and security intentions in detail so they can be analyzed and compared against the implementation, not to directly operate on the implementation. Among other things this means we can build threat models in a reasonable amount of time, something rarely true of proofs. That layer of fuzz means we can spend more time thinking about the complexities of human intent, which is the hard part of analyzing requirements and architecture for security.

TODO Architectural Design

Architecture is where the hand-off from the design team to the development team starts. Of course, the idea that either design or architecture can occur in isolation from each other is a myth. The design team needs to know what architecture and development can support or enable. The more novel the system, the more interaction there will need to be between design and architecture.

During architectural design the system is decomposed into a set of components that interact to satisfy the requirements. In agile development, the basic structure of the core architecture will still probably be determined up front, even if low-level components are swapped out as development progresses. In general, architectures mirror team structure. Open source applications developed by distributed teams will often look more like loosely-coupled sets of libraries, and applications created by unified development teams working together in person are more likely to be single unified systems. Neither model will necessarily result in a better or more secure outcome. A good fit between team and architecture can lead to a smoother development process.

The architectural design process is where security properties specified in the design phase must be turned into first system-wide technical design problems and then, as these are solved, into concrete implementation specifications. The kind of system you're building determines how much detail is needed in architectural documentation. That said, more thorough and readable documentation will help bring new programmers onto the team more quickly and make security testing easier, provided it's kept up to date as the system evolves. Good architecture documentation helps programmers write code with fewer bugs. At the very least, all security concerns and all places where system rules need to be enforced must be documented.

TODO Protocols and Parsers

All systems involve parsing some kind of input, whether that's a binary image format like a JPEG, input a user types on a keyboard, or JSON data received over the Internet. All systems involving operations over a network (and even many that don't) have to worry about protocols, whether they're speaking HTTPS on the web or sending data to another device over a USB port. The protocols you choose constrain the security properties your system can provide. Be certain you understand what the security properties of the protocols you use are and what the requirements for maintaining those properties are, both for developers and users. Developing new protocols is hard and time-consuming work. If you don't need to do it, don't.

Parsers, the code that recognizes input data and manages the state of protocols, are the single biggest source of low-level vulnerabilities in systems. Every input format you use and every protocol your application speaks needs to have a formal specification, and every parser you use should be programmatically generated from such a specification. If you get this right up front you'll make your life much easier later. There are libraries that can handle the parser generation for you, but during the architecture stage, you need to write or adopt specifications for your protocols. It can be tempting to skip this step, especially if you're planning on just using third-party libraries that already implement protocols for you. While in general you should never implement a protocol yourself if a good, tested implementation exists that meets your needs, all else being equal, favor implementations that use generated, known-complete and correct parsers over those that use hand-written parsers. If you want to know more about parsers and security problems, talk to @maradydd and the folks at langsec.org.

TODO Cryptography

Your system almost certainly does not require any novel cryptographic primitives. If it does, you have likely misunderstood the problem. If you are doing anything more complex than using off-the-shelf cryptographic libraries in well-documented ways, you definitely need expert help. In some specific scenarios, there may be a need to combine existing cryptographic primitives in less-common ways. If so, the section "Selecting Cryptographers" below is for you. Under no circumstances should your team ever attempt to implement cryptographic primitives themselves. Doing so guarantees you will screw up, probably tragically, and cause significant harm if your application sees wide adoption.

When selecting which primitives and key sizes to use, it's important to do the research into what's currently recommended as these things do change somewhat regularly. The list of things that you need to think about also varies depending on which primitives you're using. While you always need to know, for instance, that you're using a cryptography-appropriate random number generator, you only need to remember to sign first and encrypt second if you aren't using an authenticated encryption scheme that solves this for you. Especially for cryptography, favor systems that require you to keep track of fewer security-critical properties.

In general, whatever @hashbreaker and @matthew_d_green can agree on is what you should use. If they disgree, @mattblaze can be a tiebreaker. If you're building centralized systems that don't use end to end encryption (where clients control the keys themselves), you should probably just use TLS and make sure that you get an A grade from SSLLabs.com. If you're doing anything else, you want libraries that have already done most of the thinking for yousomething like the NaCL library already has most of the choices you might otherwise struggle with baked in with sensible defaults. The less cryptographic code you write yourself, the fewer chances you have to screw up, assuming the library you use is well-tested and vetted. That last part is a big caveat. OpenSSL, while standard across the industry, has still had many serious bugs recently because it wasn't as well-tested as we thought. Worse, it gives you a lot of ways to shoot yourself in the foot. All else being equal, smaller, simpler libraries are often more useful, especially if they protect you from low-level details.

The cryptographic systems and protocols that you adopt heavily influence the security properties of your system. You need to be thinking about cryptography and protocols in general terms starting from at least the security design phase of development. Changing protocols or swapping a primitive out for something that's not directly equivalent can, from a security perspective, be as large a change as completely re-architecting your system on the back-end.

TODO Selecting Cryptographers

As Matt Green and Dan Bernstein are often busy, if you need to do any low-level cryptographic implementation or review you'll probably need to go with someone else. The best way to figure out who to hire is probably to delegate the decision to a reputable security auditing firm, preferably one who does nothing other than security. Like evaluating cryptographic primitives, evaluating cryptographers is hard for folks who don't spend all their time paying attention to who's doing what kind of work.

If you do have to do this selection directly, look for folks with solid track records as both publishing academics and system implementers. Any working cryptographer who isn't inside an intelligence service will be publishing in academic journals. However, many purely academic cryptographers don't have the implementation experience required to write correct, production-grade primitive implementations or to evaluate the use of a primitive in context. Cryptography is a very small field; if you're not sure about the person you're thinking of hiring, ask for references and ask around.

TODO More Threat Modeling

As you begin the architecture design process, you'll also be beginning the next phase of threat modeling, the architecture model. In this level of the threat model we enumerate all of the components of the system in sufficient granularity to capture all of the trust boundaries in the system and map their connections. Next, we look at all the actions the system is intended to support at the requirements level and see how those actions flow through the system. We also model all of the supporting actions required to implement those requirements-level events, like login flows. With this model, we then look at how each step of each action could fail and whether that failure could compromise any of the security objectives of the system or any of the security properties it attempts to maintain. If flaws are found, mitigations are added and documented or the architecture is adjusted.

This detailed architectural threat model has a number of benefits. First, it ensures the architecture of the system is documented (a common failure mode). It also ensures that the location of enforcement for every rule in the system (such as access control or resource limitation) is documented, understood, and agreed upon. A proper threat model demonstrates concretely that, if implemented correctly, the system as-architected can meet its security objectives.

With agile processes an architectural model is still constructed and fully fleshed out for the initial architectural concept before any code is written. In many cases, the start of development will, in addition to the selection of frameworks, include a lump of development work to get the system to a point where it has enough of a coherent whole that further features can be seen as discrete additions. While this initial work may be understood as a set of sprints or user stories, it's also often planned as a unit. It's this unit that should undergo architectural threat modeling. Once the initial model is constructed, each additional user story or feature addition can then be seen as a corresponding addition to the threat model.

Once the (initial) architectural threat model is complete, development can move forward, as the team can now understand the security requirements for each module in the system.

TODO Selecting a Development Team

If you're not in a position to build a development team in-house with the experience required to deliver secure applications, you'll need to bring in an external team. Many organizations may be familiar with working with development teams in general, but less familiar with the specific demands of higher-security applications. Development, like design, has different specializations, but the security specializations for development are more common. Who you need and the size of the team will be driven by the scope of the application and its complexity. When hiring a development team, while the usual markers around budget and delivery ability matter, you're looking for a few specific things when it comes to security.

Any external team you bring in should be able to explain things like how they'll handle threat modeling, security architecture development, security standards and frameworks selection, and testing. Any team that doesn't have solid answers to questions like these should not be considered. Having them talk you through the kinds of security vulnerabilities they'd expect to see in a system like yours and how they'd mitigate those vulnerabilities may be useful. It's also worth asking for samples of previous work and indications of the kinds of security concerns they've dealt with in that work. If they're able to share them, asking to see audit reports from reputable security auditors for previous work may prove useful.

Applications aimed to help high-risk and specifically-targeted users have different security considerations than your run-of-the-mill enterprise IT tool or consumer application. What might be a small privacy concern elsewhere can be a complete showstopper. Development organizations that have not previously built applications for high-risk users should not be selected, nor, as a rule, should advertising or media agencies with no experience in the field.

At the end of the day, it's difficult to package up the kind of evaluation framework used to judge if a development team will be capable of producing highly-secure applications above and beyond their prior work without also passing on the knowledge needed to review code and application architectures for security. If you're in the position of needing to evaluate whether a development team is likely to be able to deliver sufficiently secure applications, I'm happy to come in as a consultant to help. If you have a security consultant who specializes in application security who you've worked with before, they should also be able to help.

TODO Frameworks

No one writes code from scratch. During the architectural design process, one or more frameworks or library sets will almost certainly be selected. The development frameworks you select, like the protocol and encryption choices you make, will determine both the features available to speed development and the kinds of vulnerabilities you're exposed to. For instance, in web applications there may be cross-site scripting (XSS) bugs where a user can submit JavaScript code to be rendered in the context of another user's session on a site. If an attacker triggers an XSS bug, they can then take control of all of their victim's interactions with the site. This is a framework issue (and in this case, one closely related to the parser issues described above). Properly built frameworks make issues like this impossible if used correctly.

Selecting secure frameworks is complicated, for the same reason that selecting secure protocols is. Few frameworks have chosen to start development from the perspective of trying to provably eliminate categories of low-level bugs. Many other things also inflect the choice of frameworks, including compatibility with other parts of the system, whether they're actively maintained, developer productivity, interactions with other libraries or frameworks, and how familiar a team is with them. Unlike protocols, you may be using a number of different frameworks together in the same context. The interactions between frameworks can create new security vulnerabilities neither framework has alone.

Choosing to use a framework that does not eliminate all classes of low-level bug to which it's vulnerable add security requirements to your development process. If you know your frameworks can leave you exposed, you have to build the fix yourself, either in code or in standards and processes. It is an absolute requirement of writing secure code to fully understand all the classes of problems that your choices of platform, language, and frameworks make you potentially vulnerable to and to ensure you have a strategy for dealing with each of them.

Ideally, you'll fix each issue class generically at the code level by writing library that you use the framework through, removing the possibility of the problem. If you do this and do it correctly (you'll need to both test this code carefully and have outside experts review it), then all you need to do is make sure is your library is used correctly everywhere it needs to be and that no one uses the framework directly. This isn't as good as having the fix integrated into the framework, but at least it means there's one simple thing to remember to do instead of a bunch of potentially complex things. However, writing code like this can be hard and time-consuming and there are times when teams must make tradeoffs. If you can't make it easy for your developers, you'll have to manage the risk via coding standards.

TODO Standards

Every team and every individual developer has coding standards. The standards may or may not be written down, and if the team doesn't have consistent habits, they may not follow their own standards, but they're there. For teams working together, it's important to align standards for how things are done for many reasons, including team members being able to read each other's code quickly and reliably. When trying to write secure code, standards become even more important, both for initial development and for correctly understanding the security implications of parts of the system during maintenance and refactoring.

While the set of standards required for a development team will vary by the problem space, language, frameworks, methodologies, and processes used, some security considerations remain the same. It's important to have and document a standard for how you're handling every class of security issue that your environment and frameworks leave unhandled. That means that not only should you have general documentation for the solution, but there should be a standard way that instances of the solution are called out in comments. This is especially important for more complex solutions so reviewers and others can identify what's going on and check for correctness. Similarly, all per-module requirements (see part three) that your threat model and similar artifacts help you generate should be documented.

Standards act as reminders as well as agreements. If, for instance, you have a piece of code that needs to be called on every page of a site to check for access control and for some reason you can't automate this at the framework level, this should be called out in the project standards. Standards don't have to be heavyweightthey can be as simple as a checklist with a half-dozen items to remember for each new module if that's all you need.

Subtle security issues can also happen from things like unclear or inconsistent variable naming resulting in bugs where the wrong values are used in the wrong places. Standards can't fix this completely, of course, but they can both help and make these issues easier to catch. How thorough your standards and policies for development need to be will depend on the size of your team. Faster-paced development and larger teams require more emphasis on standards to keep the process manageable.

TODO Third-Party Libraries

When you select a framework or a set of libraries to use in your system, you're adding dependencies between your system and that external codebase. Not only that, but the libraries you use probably have dependencies on other libraries, too, and in some cases they may have just copied an old version of that library's code into their source tree so you won't be able to tell easily. It's critical that you have a list of all the third-party code in your system, both what you're using directly and what's included indirectly, and that you know the security state of all of it. If there are open vulnerabilities in any of this code you need to make sure you've fully mitigated them, and you need to make sure you patch when patches are available. If code you use depends on old versions of libraries with known bugs, you need to replace those dependencies or find another solution. In general, you want to be using the newest sufficiently-stable versions of your dependencies, even if there aren't known vulnerabilities. There may be security-relevant features (like upgrades to SSL handling) that are missing in older versions.

Most libraries should have at least a bug tracker and hopefully also an announcement listideally one that's focused just on security. You need to have someone reading those lists and watching those bug trackers for as long as you're maintaining and using the system you build. At any moment a vulnerability could be announced in one of your dependencies that puts your users at risk, and you need to be ready to patch or mitigate in a timely manner. We'll see more on this in part four in “Incident Response” and “Long-Term Maintenance”.

It's worth knowing if your third-party dependencies have been audited. If they have, you should ask to see the audit reports and look at the kind of bugs that have been found and what the response was. If a number of bugs of one type have been found and no concerted effort has been made by the library's development team to eliminate others like them, there may be more. If you're going to get your system audited, you'll need to choose how much third-party code is included in that audit. Knowing which libraries have already been looked at can help with that decision. If you do audit third-party code, make sure you and your security team know how to privately file security bugs with the upstream development team. It may also be worth notifying them you're doing the audit so they can prepare development resources to fix bugs or to integrate your patches if you're planning on developing mitigations yourself.

TODO Hosting, Third-Party Services, and Centralization

Just like libraries, third party services and hosting services you interact with also add dependencies to your system. Unlike libraries, you have little control over what these dependencies do. While a good hosting provider will keep their systems as secure possible and won't do anything without telling you, they may still be compelled by law enforcement to take down your system, to reveal any data they can, or even potentially to try to modify the systems your code is running on. Even excluding law enforcement, providers can be compromised or can decide to take potentially harmful actions for political or commercial reasons.

With third-party services, you often have far less visibility or control than with hosting services. You send the service some data and they send back a response and/or do something in the world, but whether they'll do the same thing tomorrow or what else they do with that data is not necessarily clear. Legal agreements can help add clarity, but as with hosting services, there are limits to that clarity. If you're integrating with a third-party service that requires you to install and run their code (especially if they control updates), you have very little control over the effective security of your execution environment. This includes hosted JavaScript libraries.

In more traditional enterprise or consumer environments, reliance on third-party services is common and increasing. In higher-risk environments, centralization and third-party services can be extremely dangerous. Of particular note are user behavior-tracking systems. Many designers and developers are used to relying on third-party tracking tools to understand how people are using their system. Many of these tools attempt to identify users, leak their data and behavior, and sell that data to third parties. Including these tools in systems intended to maintain user privacy is directly counterproductive. The behavior of all third-party systems and the particular risks they entail should be included in all threat models.

Decentralization and reducing dependencies on third-party services and hosting providers can effectively reduce the exposure of the system. Centralized systems always rely on some level of security by policy, which is only effective until policy changes. Replacing that with security by design allows you to make stronger statements about system behavior over time.

TODO Continue to Part III

If you liked this essay, you can sponsor me writing more. I've started a Patreon where you can pledge to support each essay I write. I'm hoping to put out one or two a month, and if I can reach my goal of having a day of writing work funded for every essay, it will make it much easier for me to find the time. In my queue right now are a the next two pieces of this series, more updates to my piece on real world use cases for high-risk users, and a multi-part series on deniability and security invariants that's been in the works for some time. I'd much rather do work that helps the community than concentrate on narrow commercial work that never sees the light of day, and you can help me do just that.

Thanks again!
Eleanor Saitta
2015.11.27
London

DONE What App am I Using for What and How?

CLOSED: [2023-01-15 Sun 10:45]

DONE wisdom/wisdom.md at master · merlinmann/wisdom · GitHub

CLOSED: [2023-01-29 Sun 17:11]

DONE Regular expression - Wikipedia

CLOSED: [2023-03-07 Tue 20:11]

TODO How YouTube Created the Attention Economy | The New Yorker

  • State "DONE" from "READ" [2023-08-03 Thu 15:08]

TODO Blitzkrieg

TODO Mussels Escabeche Recipe   food

TODO An Update on Al Baydha 7 Years Later   permaculture

TODO Speaking Freely: Ethan Zuckerman | Electronic Frontier Foundation

TODO Swiss Physicists “Big Hack” for Intel 4004s 52nd Anniversary

TODO Anarplex

TODO Gerard Nolst Trenité - The Chaos - Wikisource, the free online library   poetry

Beautiful poem about the weird language that is English.

TODO Gaming Election Law - David Friedmans Substack

Wonderful games. US constitutional democracy is exceptionally fragile and archaic.

TODO Chapter 1: Introduction - Lapwing for Beginners   typing stenography

TODO Welcome to Fedimint | Fedimint   money

A modular open source protocol to custody and transact bitcoin in a community context, built on a strong foundation of privacy

TODO How to Dictator-Proof Your Money | Journal of Democracy

TODO GitHub - ofou/graham-essays: 📚 Download the full collection of Paul Graham essays in EPUB, PDF & Markdown for easy reading.

TODO Mefo bills - Wikipedia

This may be useful for an economic revival in Egypt without triggering inflation.

TODO Evergreen notes

Entry point to Andy Matuschak's great resource on Evergreen Notes.

TODO Wealth Without Money - RepRap   atoms 3dprinting

The original Reprap release manifesto.

DONE قصة: وجوه في الماء | مدينة

CLOSED: [2024-02-09 Fri 20:31]

TODO Cuckold egypt | xHamster   sex video

TODO Public Degeneracy | eFukt.com   sex video

TODO NOTHING is Impossible | eFukt.com   sex video

TODO The Documentary Podcast - Our House: Stories of the Holocaust - BBC Sounds

Jo Glanville's documentary on her mom's childhood Berlin

TODO File:Development of Political Parties in the United States.svg - Wikipedia

This infograph is very telling. The US voted the more progressive party most of the times: Quincy Adams, Harrison, Taylor, Cleveland, Cleveland, Taft, Harding, Coolidge, Hoover, Eisenhower, Eisenhower, Nixon, Nixon, Reagan, Reagan, Bush, W. Bush, W. Bush, Trump.

TODO OUM - Lágrimas Negras @Loustic Sessions .lyrics - YouTube

واخا نتا خليتيني و لحالك مشيتي واخا كاع ماتت معاك آمالي و احلامي والله ما نغضب عليك والغضبة دايزة فيا فمنامي ندعي ليك، فمنامي نفرش ونغطيك بالستر و الرضى شوف كيف انايا نتشوا راه في صدري كيا قليبي مضرور نتا فينك كاع ماحاس بحالو ونبكي ونتا ماجايب خبار للي دايز فبكايا دموعي انايا سودا، دموعي انايا سودا كيف يامي Wakha nta khalitini w lihalik mshiti Wakha ga matet maeak amali w ahlami Wlah ma naghdib alik Wlghdbaat dayza fiya Fmnaami nadrei lik F mnami nfrish wanaghtik b sitr w alrudaa Shouf kif ana ya ntshwa rah fi sadri kiya Gliybi madroor wntaya fink gahma has bihalu Ouu nbkii ou nta ma jayb khibbar li dayz fabkaya Dmouei anaya souda Dmoueii anaya souda kif koul yami _ Aunque tú me has echado en el abandono Aunque ya han muerto todas mis ilusiones En vez de maldecirte con justo encono En mis sueños te colmo En mis sueños te colmo De bendiciones Sufro la inmensa pena de tu extravío Siento el dolor profundo de tu partida Y lloro sin que sepas que el llanto mío Tiene lágrimas negras Tiene lágrimas negras Como mi vida Tú me quieres dejar, yo no quiero sufrir Contigo me voy mi santo aunque me cueste morir Tú me quieres dejar, yo no quiero sufrir Contigo me voy mi santo aunque me cueste morir

TODO Episodes

TODO The 31 Day Household Detox {2016} - Clean and Scentsible

  • Day 1: Paperwork
  • Day 2: Front entry way and coat closet/mudroom
  • Day 3: Purse
  • Day 4: Cleaning supplies
  • Day 5: Fridge and Freezer
  • Day 6: Pantry and other dry food storage
  • Day 7: Free for All
  • Day 8: Kitchen Cabinets
  • Day 9: Medicine Cabinet/First Aid Supplies
  • Day 10: Dining Area
  • Day 11: Entertainment Area
  • Day 12: Magazines and Books
  • Day 13: Junk drawer
  • Day 14: Free for All
  • Day 15: Desk
  • Day 16: Bathroom cabinets
  • Day 17: Linen closet
  • Day 18: Make-up
  • Day 19: Jewellery
  • Day 20: Bedroom closet
  • Day 21: Free for All
  • Day 22:  Sock and underwear drawer
  • Day 23: Nightstand
  • Day 24: Kids Toys
  • Day 25: Kids Closets
  • Day 26: Craft space
  • Day 27: Laundry Room
  • Day 28: Free for All
  • Day 29: Basement
  • Day 30: Garage
  • Day 31: Car

TODO يقين | مؤتمر وزير الاتصالات للإعلان عن حقيقة الاطاحة برئيس الشركة المصرية للإتصالات - YouTube

وزير الاتصالات: 8 تيرابايت سعة الكابلات التي تمر في مصر. مصر تصل ل0.2 تيرابايت منها

TODO الحلقة الرابعة من «الحل إيه؟» د. رباب المهدي تستضيف د. أحمد درويش الوزير الأسبق للتنمية الإدارية - YouTube

خلاصة الأزمة المصرية في الدقيقة 22:10: الدكتور أحمد درويش يعرف الفرق بين التسعة أضعاف و التسعة أمثال، و بقية مصر لا تعرف

TODO Open sourcing Cody   AI

TODO Day at a museum : trashyboners   sex video

TODO Have the Liberal Arts Gone Conservative? | The New Yorker

Part of the problem with the inclusion narrative is that the need for feeling included is itself a majoritarian position rooted in the need to be part of the overclass. Minorities asking for inclusion are uncomfortable being in the minority.

To contrast, in a culture made up of a mosaic of minorities, for example the Eastern Mediterranean, inclusion is a non-issue because it is normal that everyone is in the minority in some sense. It's possible that losing this minority culture is what caused the downfall of the near East.

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 Emacs [65/338]   emacs

[2024-02-28 Wed 16:14]

NEXT Refile GTD knowledge as org-roam

(defun my/org-gtd-roam-knowledge-func ()
  (setq-local org-gtd--organize-type 'knowledge)
  (org-gtd-organize-apply-hooks)
  (org-delete-property "ID")
  (when (yes-or-no-p "Does this need to be ID'd? ")
    (org-set-property "ID" (org-id-new)))
  (org-copy-subtree)
  (org-paste-subtree)
  (goto-char (point-min))
  ;; Do not cancel out here (otherwise double up headings)
  (org-roam-refile))

(setq org-gtd-knowledge-func #'my/org-gtd-roam-knowledge-func)

TODO [0/7] Reorganize this file to follow Emacs manual

  • State "DONE" from "DONE" [2023-07-28 Fri 13:25]
  • State "DONE" from [2023-07-28 Fri 13:24]
TODO Menu
TODO Distribution
TODO Introduction
TODO Important General Concepts
TODO 1 The Organization of the Screen
TODO 1.1 Point
TODO 1.2 The Echo Area
TODO 1.3 The Mode Line
TODO 1.4 The Menu Bar
TODO 2 Kinds of User Input
TODO 3 Keys
TODO 4 Keys and Commands
TODO 5 Entering Emacs
TODO 6 Exiting Emacs
TODO Fundamental Editing Commands
TODO 7 Basic Editing Commands
TODO 7.1 Inserting Text
TODO 7.2 Changing the Location of Point
TODO 7.3 Erasing
TODO 7.4 Undoing Changes
TODO 7.5 Files
TODO 7.6 Help
TODO 7.7 Blank Lines
TODO 7.8 Continuation Lines
TODO 7.9 Cursor Position Information
TODO 7.10 Numeric Arguments
TODO 7.11 Repeating a Command
TODO 8 The Minibuffer
TODO 8.1 Using the Minibuffer
TODO 8.2 Minibuffers for File Names
TODO 8.3 Editing in the Minibuffer
TODO 8.4 Completion
TODO 8.4.1 Completion Example
TODO 8.4.2 Completion Commands
TODO 8.4.3 Completion Exit
TODO 8.4.4 How Completion Alternatives Are Chosen
TODO 8.4.5 Completion Options
TODO 8.5 Minibuffer History
TODO 8.6 Repeating Minibuffer Commands
TODO 8.7 Entering passwords
TODO 8.8 Yes or No Prompts
TODO 9 Running Commands by Name
TODO 10 Help
TODO 10.1 Help Summary
TODO 10.2 Documentation for a Key
TODO 10.3 Help by Command or Variable Name
TODO 10.4 Apropos
TODO 10.5 Help Mode Commands
TODO 10.6 Keyword Search for Packages
TODO 10.7 Help for International Language Support
TODO 10.8 Other Help Commands
TODO 10.9 Help Files
TODO 10.10 Help on Active Text and Tooltips
TODO Important Text-Changing Commands
TODO 11 The Mark and the Region
TODO 11.1 Setting the Mark
TODO 11.2 Commands to Mark Textual Objects
TODO 11.3 Operating on the Region
TODO 11.4 The Mark Ring
TODO 11.5 The Global Mark Ring
TODO 11.6 Shift Selection
TODO 11.7 Disabling Transient Mark Mode
TODO 12 Killing and Moving Text
TODO 12.1 Deletion and Killing
TODO 12.1.1 Deletion
TODO 12.1.2 Killing by Lines
TODO 12.1.3 Other Kill Commands
TODO 12.1.4 Options for Killing
TODO 12.2 Yanking
TODO 12.2.1 The Kill Ring
TODO 12.2.2 Yanking Earlier Kills
TODO 12.2.3 Appending Kills
TODO 12.3 “Cut and Paste” Operations on Graphical Displays
TODO 12.3.1 Using the Clipboard
TODO 12.3.2 Cut and Paste with Other Window Applications
TODO 12.3.3 Secondary Selection
TODO 12.4 Accumulating Text
TODO 12.5 Rectangles
TODO 12.6 CUA Bindings
TODO 13 Registers
TODO 13.1 Saving Positions in Registers
TODO 13.2 Saving Text in Registers
TODO 13.3 Saving Rectangles in Registers
TODO 13.4 Saving Window Configurations in Registers
TODO 13.5 Keeping Numbers in Registers
TODO 13.6 Keeping File Names in Registers
TODO 13.7 Keyboard Macro Registers
TODO 13.8 Bookmarks
TODO 14 Controlling the Display
TODO 14.1 Scrolling
TODO 14.2 Recentering
TODO 14.3 Automatic Scrolling
TODO 14.4 Horizontal Scrolling
TODO 14.5 Narrowing
TODO 14.6 View Mode
TODO 14.7 Follow Mode
TODO 14.8 Text Faces
TODO 14.9 Colors for Faces
TODO 14.9.1 Color Names
TODO 14.9.2 RGB Triplets
TODO 14.10 Standard Faces
TODO 14.11 Text Scale
TODO 14.12 Font Lock mode
TODO 14.13 Interactive Highlighting
TODO 14.14 Window Fringes
TODO 14.15 Displaying Boundaries
TODO 14.16 Useless Whitespace
TODO 14.17 Selective Display
TODO 14.18 Optional Mode Line Features
TODO 14.19 How Text Is Displayed
TODO 14.20 Displaying the Cursor
TODO 14.21 Line Truncation
TODO 14.22 Visual Line Mode
TODO 14.23 Customization of Display
TODO 15 Searching and Replacement
TODO 15.1 Incremental Search
TODO 15.1.1 Basics of Incremental Search
TODO 15.1.2 Repeating Incremental Search
TODO 15.1.3 Isearch Yanking
TODO 15.1.4 Errors in Incremental Search
TODO 15.1.5 Special Input for Incremental Search
TODO 15.1.6 Not Exiting Incremental Search
TODO 15.1.7 Searching the Minibuffer
TODO 15.2 Nonincremental Search
TODO 15.3 Word Search
TODO 15.4 Symbol Search
TODO 15.5 Regular Expression Search
TODO 15.6 Syntax of Regular Expressions
TODO 15.7 Backslash in Regular Expressions
TODO 15.8 Regular Expression Example
TODO 15.9 Lax Matching During Searching
TODO 15.10 Replacement Commands
TODO 15.10.1 Unconditional Replacement
TODO 15.10.2 Regexp Replacement
TODO 15.10.3 Replace Commands and Lax Matches
TODO 15.10.4 Query Replace
TODO 15.11 Other Search-and-Loop Commands
TODO 15.12 Tailoring Search to Your Needs
TODO 16 Commands for Fixing Typos
TODO 16.1 Undo
TODO 16.2 Transposing Text
TODO 16.3 Case Conversion
TODO 16.4 Checking and Correcting Spelling
TODO 17 Keyboard Macros
TODO 17.1 Basic Use
TODO 17.2 The Keyboard Macro Ring
TODO 17.3 The Keyboard Macro Counter
TODO 17.4 Executing Macros with Variations
TODO 17.5 Naming and Saving Keyboard Macros
TODO 17.6 Editing a Keyboard Macro
TODO 17.7 Stepwise Editing a Keyboard Macro
TODO Major Structures of Emacs
TODO 18 File Handling
TODO 18.1 File Names
TODO 18.2 Visiting Files
TODO 18.3 Saving Files
TODO 18.3.1 Commands for Saving Files
TODO 18.3.2 Backup Files
TODO 18.3.2.1 Single or Numbered Backups
TODO 18.3.2.2 Automatic Deletion of Backups
TODO 18.3.2.3 Copying vs. Renaming
TODO 18.3.3 Customizing Saving of Files
TODO 18.3.4 Protection against Simultaneous Editing
TODO 18.3.5 Shadowing Files
TODO 18.3.6 Updating Time Stamps Automatically
TODO 18.4 Reverting a Buffer
TODO 18.5 Auto Revert: Keeping buffers automatically up-to-date
TODO 18.5.1 Auto Reverting Non-File Buffers
TODO 18.5.1.1 Auto Reverting the Buffer Menu
TODO 18.5.1.2 Auto Reverting Dired buffers
TODO 18.6 Auto-Saving: Protection Against Disasters
TODO 18.6.1 Auto-Save Files
TODO 18.6.2 Controlling Auto-Saving
TODO 18.6.3 Recovering Data from Auto-Saves
TODO 18.7 File Name Aliases
TODO 18.8 File Directories
TODO 18.9 Comparing Files
TODO 18.10 Diff Mode
TODO 18.11 Copying, Naming and Renaming Files
TODO 18.12 Miscellaneous File Operations
TODO 18.13 Accessing Compressed Files
TODO 18.14 File Archives
TODO 18.15 Remote Files
TODO 18.16 Quoted File Names
TODO 18.17 File Name Cache
TODO 18.18 Convenience Features for Finding Files
TODO 18.19 Viewing Image Files
TODO 18.20 Filesets
TODO 19 Using Multiple Buffers
TODO 19.1 Creating and Selecting Buffers
TODO 19.2 Listing Existing Buffers
TODO 19.3 Miscellaneous Buffer Operations
TODO 19.4 Killing Buffers
TODO 19.5 Operating on Several Buffers
TODO 19.6 Indirect Buffers
TODO 19.7 Convenience Features and Customization of Buffer Handling
TODO 19.7.1 Making Buffer Names Unique
TODO 19.7.2 Fast minibuffer selection
TODO 19.7.3 Customizing Buffer Menus
TODO 20 Multiple Windows
TODO 20.1 Concepts of Emacs Windows
TODO 20.2 Splitting Windows
TODO 20.3 Using Other Windows
TODO 20.4 Displaying in Another Window
TODO 20.5 Deleting and Resizing Windows
TODO 20.6 Displaying a Buffer in a Window
TODO 20.6.1 How display-buffer works
TODO 20.6.2 Displaying non-editable buffers.
TODO 20.7 Convenience Features for Window Handling
TODO 20.8 Window Tab Line
TODO 21 Frames and Graphical Displays
TODO 21.1 Mouse Commands for Editing
TODO 21.2 Mouse Commands for Words and Lines
TODO 21.3 Following References with the Mouse
TODO 21.4 Mouse Clicks for Menus
TODO 21.5 Mode Line Mouse Commands
TODO 21.6 Creating Frames
TODO 21.7 Frame Commands
TODO 21.8 Fonts
TODO 21.9 Speedbar Frames
TODO 21.10 Multiple Displays
TODO 21.11 Frame Parameters
TODO 21.12 Scroll Bars
TODO 21.13 Window Dividers
TODO 21.14 Drag and Drop
TODO 21.15 Menu Bars
TODO 21.16 Tool Bars
TODO 21.17 Tab Bars
TODO 21.18 Using Dialog Boxes
TODO 21.19 Tooltips
TODO 21.20 Mouse Avoidance
TODO 21.21 Non-Window Terminals
TODO 21.22 Using a Mouse in Text Terminals
TODO 22 International Character Set Support
TODO 22.1 Introduction to International Character Sets
TODO 22.2 Language Environments
TODO 22.3 Input Methods
TODO 22.4 Selecting an Input Method
TODO 22.5 Coding Systems
TODO 22.6 Recognizing Coding Systems
TODO 22.7 Specifying a Files Coding System
TODO 22.8 Choosing Coding Systems for Output
TODO 22.9 Specifying a Coding System for File Text
TODO 22.10 Coding Systems for Interprocess Communication
TODO 22.11 Coding Systems for File Names
TODO 22.12 Coding Systems for Terminal I/O
TODO 22.13 Fontsets
TODO 22.14 Defining Fontsets
TODO 22.15 Modifying Fontsets
TODO 22.16 Undisplayable Characters
TODO 22.17 Unibyte Editing Mode
TODO 22.18 Charsets
TODO 22.19 Bidirectional Editing
TODO Advanced Features
TODO 23 Major and Minor Modes
TODO 23.1 Major Modes
TODO 23.2 Minor Modes
TODO 23.3 Choosing File Modes
TODO 24 Indentation
TODO 24.1 Indentation Commands
TODO 24.2 Tab Stops
TODO 24.3 Tabs vs. Spaces
TODO 24.4 Convenience Features for Indentation
TODO 25 Commands for Human Languages
TODO 25.1 Words
TODO 25.2 Sentences
TODO 25.3 Paragraphs
TODO 25.4 Pages
TODO 25.5 Quotation Marks
TODO 25.6 Filling Text
TODO 25.6.1 Auto Fill Mode
TODO 25.6.2 Explicit Fill Commands
TODO 25.6.3 The Fill Prefix
TODO 25.6.4 Adaptive Filling
TODO 25.7 Case Conversion Commands
TODO 25.8 Text Mode
TODO 25.9 Outline Mode
TODO 25.9.1 Format of Outlines
TODO 25.9.2 Outline Motion Commands
TODO 25.9.3 Outline Visibility Commands
TODO 25.9.4 Viewing One Outline in Multiple Views
TODO 25.9.5 Folding Editing
TODO 25.10 Org Mode
TODO 25.10.1 Org as an organizer
TODO 25.10.2 Org as an authoring system
TODO 25.11 TeX Mode
TODO 25.11.1 TeX Editing Commands
TODO 25.11.2 LaTeX Editing Commands
TODO 25.11.3 TeX Printing Commands
TODO 25.11.4 TeX Mode Miscellany
TODO 25.12 SGML and HTML Modes
TODO 25.13 Nroff Mode
TODO 25.14 Enriched Text
TODO 25.14.1 Enriched Mode
TODO 25.14.2 Hard and Soft Newlines
TODO 25.14.3 Editing Format Information
TODO 25.14.4 Faces in Enriched Text
TODO 25.14.5 Indentation in Enriched Text
TODO 25.14.6 Justification in Enriched Text
TODO 25.14.7 Setting Other Text Properties
TODO 25.15 Editing Text-based Tables
TODO 25.15.1 What is a Text-based Table?
TODO 25.15.2 Creating a Table
TODO 25.15.3 Table Recognition
TODO 25.15.4 Commands for Table Cells
TODO 25.15.5 Cell Justification
TODO 25.15.6 Table Rows and Columns
TODO 25.15.7 Converting Between Plain Text and Tables
TODO 25.15.8 Table Miscellany
TODO 25.16 Two-Column Editing
TODO 26 Editing Programs
TODO 26.1 Major Modes for Programming Languages
TODO 26.2 Top-Level Definitions, or Defuns
TODO 26.2.1 Left Margin Convention
TODO 26.2.2 Moving by Defuns
TODO 26.2.3 Imenu
TODO 26.2.4 Which Function Mode
TODO 26.3 Indentation for Programs
TODO 26.3.1 Basic Program Indentation Commands
TODO 26.3.2 Indenting Several Lines
TODO 26.3.3 Customizing Lisp Indentation
TODO 26.3.4 Commands for C Indentation
TODO 26.3.5 Customizing C Indentation
TODO 26.4 Commands for Editing with Parentheses
TODO 26.4.1 Expressions with Balanced Parentheses
TODO 26.4.2 Moving in the Parenthesis Structure
TODO 26.4.3 Matching Parentheses
TODO 26.5 Manipulating Comments
TODO 26.5.1 Comment Commands
TODO 26.5.2 Multiple Lines of Comments
TODO 26.5.3 Options Controlling Comments
TODO 26.6 Documentation Lookup
TODO 26.6.1 Info Documentation Lookup
TODO 26.6.2 Man Page Lookup
TODO 26.6.3 Emacs Lisp Documentation Lookup
TODO 26.7 Hideshow minor mode
TODO 26.8 Completion for Symbol Names
TODO 26.9 MixedCase Words
TODO 26.10 Semantic
TODO 26.11 Other Features Useful for Editing Programs
TODO 26.12 C and Related Modes
TODO 26.12.1 C Mode Motion Commands
TODO 26.12.2 Electric C Characters
TODO 26.12.3 Hungry Delete Feature in C
TODO 26.12.4 Other Commands for C Mode
TODO 26.13 Asm Mode
TODO 26.14 Fortran Mode
TODO 26.14.1 Motion Commands
TODO 26.14.2 Fortran Indentation
TODO 26.14.2.1 Fortran Indentation and Filling Commands
TODO 26.14.2.2 Continuation Lines
TODO 26.14.2.3 Line Numbers
TODO 26.14.2.4 Syntactic Conventions
TODO 26.14.2.5 Variables for Fortran Indentation
TODO 26.14.3 Fortran Comments
TODO 26.14.4 Auto Fill in Fortran Mode
TODO 26.14.5 Checking Columns in Fortran
TODO 26.14.6 Fortran Keyword Abbrevs
TODO 27 Compiling and Testing Programs
TODO 27.1 Running Compilations under Emacs
TODO 27.2 Compilation Mode
TODO 27.3 Subshells for Compilation
TODO 27.4 Searching with Grep under Emacs
TODO 27.5 Finding Syntax Errors On The Fly
TODO 27.6 Running Debuggers Under Emacs
TODO 27.6.1 Starting GUD
TODO 27.6.2 Debugger Operation
TODO 27.6.3 Commands of GUD
TODO 27.6.4 GUD Customization
TODO 27.6.5 GDB Graphical Interface
TODO 27.6.5.1 GDB User Interface Layout
TODO 27.6.5.2 Source Buffers
TODO 27.6.5.3 Breakpoints Buffer
TODO 27.6.5.4 Threads Buffer
TODO 27.6.5.5 Stack Buffer
TODO 27.6.5.6 Other GDB Buffers
TODO 27.6.5.7 Watch Expressions
TODO 27.6.5.8 Multithreaded Debugging
TODO 27.7 Executing Lisp Expressions
TODO 27.8 Libraries of Lisp Code for Emacs
TODO 27.9 Evaluating Emacs Lisp Expressions
TODO 27.10 Lisp Interaction Buffers
TODO 27.11 Running an External Lisp
TODO 28 Maintaining Large Programs
TODO 28.1 Version Control
TODO 28.1.1 Introduction to Version Control
TODO 28.1.1.1 Understanding the Problems it Addresses
TODO 28.1.1.2 Supported Version Control Systems
TODO 28.1.1.3 Concepts of Version Control
TODO 28.1.1.4 Merge-based vs Lock-based Version Control
TODO 28.1.1.5 Changeset-based vs File-based Version Control
TODO 28.1.1.6 Decentralized vs Centralized Repositories
TODO 28.1.1.7 Types of Log File
TODO 28.1.2 Version Control and the Mode Line
TODO 28.1.3 Basic Editing under Version Control
TODO 28.1.3.1 Basic Version Control with Merging
TODO 28.1.3.2 Basic Version Control with Locking
TODO 28.1.3.3 Advanced Control in C-x v v
TODO 28.1.4 Features of the Log Entry Buffer
TODO 28.1.5 Registering a File for Version Control
TODO 28.1.6 Examining And Comparing Old Revisions
TODO 28.1.7 VC Change Log
TODO 28.1.8 Undoing Version Control Actions
TODO 28.1.9 Ignore Version Control Files
TODO 28.1.10 VC Directory Mode
TODO 28.1.10.1 The VC Directory Buffer
TODO 28.1.10.2 VC Directory Commands
TODO 28.1.11 Version Control Branches
TODO 28.1.11.1 Switching between Branches
TODO 28.1.11.2 Pulling/Pushing Changes into/from a Branch
TODO 28.1.11.3 Merging Branches
TODO 28.1.11.4 Creating New Branches
TODO 28.1.12 Miscellaneous Commands and Features of VC
TODO 28.1.12.1 Change Logs and VC
TODO 28.1.12.2 Deleting and Renaming Version-Controlled Files
TODO 28.1.12.3 Revision Tags
TODO 28.1.12.4 Inserting Version Control Headers
TODO 28.1.13 Customizing VC
TODO 28.1.13.1 General Options
TODO 28.1.13.2 Options for RCS and SCCS
TODO 28.1.13.3 Options specific for CVS
TODO 28.2 Working with Projects
TODO 28.2.1 Project Commands That Operate on Files
TODO 28.2.2 Project Commands That Operate on Buffers
TODO 28.2.3 Switching Projects
TODO 28.2.4 Managing the Project List File
TODO 28.3 Change Logs
TODO 28.3.1 Change Log Commands
TODO 28.3.2 Format of ChangeLog
TODO 28.4 Find Identifier References
TODO 28.4.1 Find Identifiers
TODO 28.4.1.1 Looking Up Identifiers
TODO 28.4.1.2 Commands Available in the xref Buffer
TODO 28.4.1.3 Searching and Replacing with Identifiers
TODO 28.4.1.4 Identifier Inquiries
TODO 28.4.2 Tags Tables
TODO 28.4.2.1 Source File Tag Syntax
TODO 28.4.2.2 Creating Tags Tables
TODO 28.4.2.3 Etags Regexps
TODO 28.4.3 Selecting a Tags Table
TODO 28.5 Emacs Development Environment
TODO 28.6 Merging Files with Emerge
TODO 28.6.1 Overview of Emerge
TODO 28.6.2 Submodes of Emerge
TODO 28.6.3 State of a Difference
TODO 28.6.4 Merge Commands
TODO 28.6.5 Exiting Emerge
TODO 28.6.6 Combining the Two Versions
TODO 28.6.7 Fine Points of Emerge
TODO 28.7 Bug Reference
TODO 29 Abbrevs
TODO 29.1 Abbrev Concepts
TODO 29.2 Defining Abbrevs
TODO 29.3 Controlling Abbrev Expansion
TODO 29.4 Abbrevs Suggestions
TODO 29.5 Examining and Editing Abbrevs
TODO 29.6 Saving Abbrevs
TODO 29.7 Dynamic Abbrev Expansion
TODO 29.8 Customizing Dynamic Abbreviation
TODO 30 Dired, the Directory Editor
TODO 30.1 Entering Dired
TODO 30.2 Navigation in the Dired Buffer
TODO 30.3 Deleting Files with Dired
TODO 30.4 Flagging Many Files at Once
TODO 30.5 Visiting Files in Dired
TODO 30.6 Dired Marks vs. Flags
TODO 30.7 Operating on Files
TODO 30.8 Shell Commands in Dired
TODO 30.9 Transforming File Names in Dired
TODO 30.10 File Comparison with Dired
TODO 30.11 Subdirectories in Dired
TODO 30.12 Subdirectory Switches in Dired
TODO 30.13 Moving Over Subdirectories
TODO 30.14 Hiding Subdirectories
TODO 30.15 Updating the Dired Buffer
TODO 30.16 Dired and find
TODO 30.17 Editing the Dired Buffer
TODO 30.18 Viewing Image Thumbnails in Dired
TODO 30.19 Other Dired Features
TODO 31 The Calendar and the Diary
TODO 31.1 Movement in the Calendar
TODO 31.1.1 Motion by Standard Lengths of Time
TODO 31.1.2 Beginning or End of Week, Month or Year
TODO 31.1.3 Specified Dates
TODO 31.2 Scrolling in the Calendar
TODO 31.3 Counting Days
TODO 31.4 Miscellaneous Calendar Commands
TODO 31.5 Writing Calendar Files
TODO 31.6 Holidays
TODO 31.7 Times of Sunrise and Sunset
TODO 31.8 Phases of the Moon
TODO 31.9 Conversion To and From Other Calendars
TODO 31.9.1 Supported Calendar Systems
TODO 31.9.2 Converting To Other Calendars
TODO 31.9.3 Converting From Other Calendars
TODO 31.10 The Diary
TODO 31.10.1 The Diary File
TODO 31.10.2 Displaying the Diary
TODO 31.10.3 Date Formats
TODO 31.10.4 Commands to Add to the Diary
TODO 31.10.5 Special Diary Entries
TODO 31.10.6 Appointments
TODO 31.10.7 Importing and Exporting Diary Entries
TODO 31.11 Daylight Saving Time
TODO 31.12 Summing Time Intervals
TODO 31.13 More advanced features of the Calendar and Diary
TODO 31.13.1 Customizing the Calendar
TODO 31.13.2 Customizing the Holidays
TODO 31.13.3 Converting from the Mayan Calendar
TODO 31.13.4 Date Display Format
TODO 31.13.5 Time Display Format
TODO 31.13.6 Customizing the Diary
TODO 31.13.7 Diary Entries Using non-Gregorian Calendars
TODO 31.13.8 Diary Display
TODO 31.13.9 Fancy Diary Display
TODO 31.13.10 Sexp Entries and the Fancy Diary Display
TODO 32 Sending Mail
TODO 32.1 The Format of the Mail Buffer
TODO 32.2 Mail Header Fields
TODO 32.3 Mail Aliases
TODO 32.4 Mail Commands
TODO 32.4.1 Mail Sending
TODO 32.4.2 Mail Header Editing
TODO 32.4.3 Citing Mail
TODO 32.4.4 Mail Miscellany
TODO 32.5 Mail Signature
TODO 32.6 Mail Amusements
TODO 32.7 Mail-Composition Methods
TODO 33 Reading Mail with Rmail
TODO 33.1 Basic Concepts of Rmail
TODO 33.2 Scrolling Within a Message
TODO 33.3 Moving Among Messages
TODO 33.4 Deleting Messages
TODO 33.5 Rmail Files and Inboxes
TODO 33.6 Multiple Rmail Files
TODO 33.7 Copying Messages Out to Files
TODO 33.8 Labels
TODO 33.9 Rmail Attributes
TODO 33.10 Sending Replies
TODO 33.11 Summaries
TODO 33.11.1 Making Summaries
TODO 33.11.2 Editing in Summaries
TODO 33.12 Sorting the Rmail File
TODO 33.13 Display of Messages
TODO 33.14 Rmail and Coding Systems
TODO 33.15 Editing Within a Message
TODO 33.16 Digest Messages
TODO 33.17 Reading Rot13 Messages
TODO 33.18 movemail program
TODO 33.19 Retrieving Mail from Remote Mailboxes
TODO 33.20 Retrieving Mail from Local Mailboxes in Various Formats
TODO 34 Email and Usenet News with Gnus
TODO 34.1 Gnus Buffers
TODO 34.2 When Gnus Starts Up
TODO 34.3 Using the Gnus Group Buffer
TODO 34.4 Using the Gnus Summary Buffer
TODO 35 Host Security
TODO 36 Network Security
TODO 37 Document Viewing
TODO 37.1 DocView Navigation
TODO 37.2 DocView Searching
TODO 37.3 DocView Slicing
TODO 37.4 DocView Conversion
TODO 38 Running Shell Commands from Emacs
TODO 38.1 Single Shell Commands
TODO 38.2 Interactive Subshell
TODO 38.3 Shell Mode
TODO 38.4 Shell Prompts
TODO 38.5 Shell Command History
TODO 38.5.1 Shell History Ring
TODO 38.5.2 Shell History Copying
TODO 38.5.3 Shell History References
TODO 38.6 Directory Tracking
TODO 38.7 Shell Mode Options
TODO 38.8 Emacs Terminal Emulator
TODO 38.9 Term Mode
TODO 38.10 Remote Host Shell
TODO 38.11 Serial Terminal
TODO 39 Using Emacs as a Server
TODO 39.1 TCP Emacs server
TODO 39.2 Invoking emacsclient
TODO 39.3 emacsclient Options
TODO 40 Printing Hard Copies
TODO 40.1 PostScript Hardcopy
TODO 40.2 Variables for PostScript Hardcopy
TODO 40.3 Printing Package
TODO 41 Sorting Text
TODO 42 Editing Pictures
TODO 42.1 Basic Editing in Picture Mode
TODO 42.2 Controlling Motion after Insert
TODO 42.3 Picture Mode Tabs
TODO 42.4 Picture Mode Rectangle Commands
TODO 43 Editing Binary Files
TODO 44 Saving Emacs Sessions
TODO 45 Recursive Editing Levels
TODO 46 Hyperlinking and Web Navigation Features
TODO 46.1 Web Browsing with EWW
TODO 46.2 Embedded WebKit Widgets
TODO 46.3 Following URLs
TODO 46.4 Activating URLs
TODO 46.5 Finding Files and URLs at Point
TODO 47 Games and Other Amusements
TODO 48 Emacs Lisp Packages
TODO 48.1 The Package Menu Buffer
TODO 48.2 Package Statuses
TODO 48.3 Package Installation
TODO 48.4 Package Files and Directory Layout
TODO 49 Customization
TODO 49.1 Easy Customization Interface
TODO 49.1.1 Customization Groups
TODO 49.1.2 Browsing and Searching for Settings
TODO 49.1.3 Changing a Variable
TODO 49.1.4 Saving Customizations
TODO 49.1.5 Customizing Faces
TODO 49.1.6 Customizing Specific Items
TODO 49.1.7 Custom Themes
TODO 49.1.8 Creating Custom Themes
TODO 49.2 Variables
TODO 49.2.1 Examining and Setting Variables
TODO 49.2.2 Hooks
TODO 49.2.3 Local Variables
TODO 49.2.4 Local Variables in Files
TODO 49.2.4.1 Specifying File Variables
TODO 49.2.4.2 Safety of File Variables
TODO 49.2.5 Per-Directory Local Variables
TODO 49.2.6 Per-Connection Local Variables
TODO 49.3 Customizing Key Bindings
TODO 49.3.1 Keymaps
TODO 49.3.2 Prefix Keymaps
TODO 49.3.3 Local Keymaps
TODO 49.3.4 Minibuffer Keymaps
TODO 49.3.5 Changing Key Bindings Interactively
TODO 49.3.6 Rebinding Keys in Your Init File
TODO 49.3.7 Modifier Keys
TODO 49.3.8 Rebinding Function Keys
TODO 49.3.9 Named ASCII Control Characters
TODO 49.3.10 Rebinding Mouse Buttons
TODO 49.3.11 Disabling Commands
TODO 49.4 The Emacs Initialization File
TODO 49.4.1 Init File Syntax
TODO 49.4.2 Init File Examples
TODO 49.4.3 Terminal-specific Initialization
TODO 49.4.4 How Emacs Finds Your Init File
TODO 49.4.5 Non-ASCII Characters in Init Files
TODO 49.4.6 The Early Init File
TODO 49.5 Keeping Persistent Authentication Information
TODO Recovery from Problems
TODO 50 Quitting and Aborting
TODO 51 Dealing with Emacs Trouble
TODO 51.1 If DEL Fails to Delete
TODO 51.2 Recursive Editing Levels
TODO 51.3 Garbage on the Screen
TODO 51.4 Garbage in the Text
TODO 51.5 Running out of Memory
TODO 51.6 When Emacs Crashes
TODO 51.7 Recovery After a Crash
TODO 51.8 Emergency Escape
TODO 51.9 Long Lines
TODO 52 Reporting Bugs
TODO 52.1 Reading Existing Bug Reports and Known Problems
TODO 52.2 When Is There a Bug
TODO 52.3 Understanding Bug Reporting
TODO 52.4 Checklist for Bug Reports
TODO 52.5 Sending Patches for GNU Emacs
TODO 53 Contributing to Emacs Development
TODO 53.1 Coding Standards
TODO 53.2 Copyright Assignment

DONE Straight package manager

  • State "DONE" from "TODO" [2024-07-10 Wed 09:57]

TODO Diary

(setq diary-file (concat org-directory "diary"))

TODO Phone

TODO Phone pictures in org?
(setq browse-url-browser-function 'browse-url-firefox)
(unless window-system
  (xterm-mouse-mode 1)
  (global-set-key [mouse-4] (lambda ()
                              (interactive)
                              (scroll-down 1)))
  (global-set-key [mouse-5] (lambda ()
                              (interactive)
                              (scroll-up 1))))
(use-package org
  :config
  (when my-phone-p
    (add-to-list 'org-file-apps '("\\.png\\'" . default))
    (add-to-list 'org-file-apps '("\\.jpg\\'" . default))
    (add-to-list 'org-file-apps '("\\.jpeg\\'" . default)))
  )

(defun my/format-intent (intent &optional params)
  "Return a command string for sending INTENT with PARAMS.
      PARAMS is an alist of (\"key\" . \"value\") pairs."
  (format "am broadcast --user 0 -a %s %s"
          intent
          (mapconcat
           (lambda (o)
             (format
              "-e %s %s"
              (shell-quote-argument (car o))
              (shell-quote-argument (cdr o))))
           params
           " ")))

(defun my/send-intent (intent &optional params)
  "Send broadcast INTENT to my phone.
      PARAMS is a plist of :key value pairs."
  (let ((command (my-format-intent intent params)))
    (if my-phone-p
        (shell-command command)
      (shell-command (format "ssh phone %s" (shell-quote-argument command))))))
TODO AnE macs interface for KDE Connect   emacs computer
  (use-package kdeconnect
    :ensure t
    :config
    (setq kdeconnect-devices "1bd8e06bb908496b")
    (setq kdeconnect-active-device "1bd8e06bb908496b")
    )

TODO Hydra

  (use-package hydra
    )

TODO Compare directories

  (use-package ztree
    :bind* (("M-m g v" . ztree-dir)
            ("M-m g V" . ztree-diff))
    :init
    (setq ztree-dir-move-focus t))

TODO helm interface for the recoll desktop search tool.

  (defun helm-ff-recoll-index-directory (directory)
  "Create a recoll index directory from DIRECTORY.
Add the new created directory to `helm-recoll-directories' using the
basename of DIRECTORY as name.
By using `customize-set-variable', a new source is created for this
new directory."
  (cl-assert (boundp 'helm-recoll-directories) nil
             "Package helm-recoll not installed or configured")
  (let* ((bn (helm-basename (expand-file-name directory)))
         (index-dir (format "~/.recoll-%s" bn))
         (conf-file (expand-file-name "recoll.conf" index-dir))) 
    (mkdir index-dir)
    (with-current-buffer (find-file-noselect conf-file)
      (insert (format "topdirs = %s" (expand-file-name directory)))
      (save-buffer)
      (kill-buffer))
    (customize-set-variable 'helm-recoll-directories
                            (append `((,bn . ,index-dir)) helm-recoll-directories))
    (message "Don't forget to index config directory with 'recollindex -c %s'" index-dir)))

(defmethod helm-setup-user-source ((source helm-source-ffiles))
  (helm-source-add-action-to-source-if
   "Recoll index directory"
   'helm-ff-recoll-index-directory
   source
   'file-directory-p
   3))
  (use-package helm-recoll
    :commands helm-recoll
    :init (setq helm-recoll-directories
                '(("confdir" . "~/.recoll-.emacs.d")
                  ("lisp sources" . "~/.recoll-emacs-lisp")
                  ("work" . "~/.recoll-work"))))

TODO u11 / csv.el · GitLab   emacs archive

TODO OpenVPN management mode for Emacs   emacs security

CNCL Emacs Helm interface for pass   emacs security

  • State "CNCL" from "DONE" [2023-08-26 Sat 11:59]
  • State "DONE" from "TODO" [2023-07-06 Thu 11:41]
  (use-package helm-pass
     )

CNCL A major mode for password-store   emacs security

  • State "CNCL" from "DONE" [2023-08-26 Sat 11:59]
  • State "DONE" from "TODO" [2023-07-06 Thu 11:42]
  (use-package pass
    :ensure t
    )

CNCL Install Prelude

  • State "CNCL" from [2023-07-02 Sun 15:04]

CNCL Gnome calendar integration with emacs   emacs linux

  • State "CNCL" from [2023-07-31 Mon 17:45]

CNCL Integrate orgmode with the GNOME desktop   emacs linux

  • State "CNCL" from [2023-07-31 Mon 14:01]

CNCL Open files with external programs   emacs computer

  • State "CNCL" from [2023-07-31 Mon 17:48]

CNCL Control GNU/Linux computer from Emacs   emacs

  • State "CNCL" from [2023-07-31 Mon 17:46]

CNCL Access existed File Managers' bookmarks in Dired.   emacs archive linux

  • State "CNCL" from [2023-07-31 Mon 17:47]

TODO Emacs-Lisp

  • State "DONE" from "NEXT" [2023-08-09 Wed 13:52]
  (use-package "eldoc"
    ;;  :if my-laptop-p
    :diminish eldoc-mode
    :commands turn-on-eldoc-mode
    :defer t
    :init
    (progn
      (add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode)
      (add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode)
      (add-hook 'ielm-mode-hook 'turn-on-eldoc-mode)
      )
    )
  (use-package emacs-lisp-mode
    :mode ("\\.el$" . emacs-lisp-mode)
    :bind (:map emacs-lisp-mode-map
                ("C-c I" . describe-function)
                ("C-c S" . find-function-at-point)
                )
    )

DONE Docker

  • State "DONE" from "NEXT" [2023-08-09 Wed 13:52]
  (use-package dockerfile-mode
     :mode ("Dockerfile\\'" . dockerfile-mode)
    )

DONE Web

  • State "DONE" from "NEXT" [2023-08-09 Wed 13:53]
  (use-package web-mode
    :mode ("\\.html$" . web-mode)
    )

DONE Python

  • State "DONE" from "NEXT" [2023-08-09 Wed 13:52]
  (use-package python
    :mode ("\\.py\\'" . python-mode)
    :config
    (setq python-shell-interpreter "ipython"
          python-shell-interpreter-args "-i")
    )

DONE Anaconda Python

  • State "DONE" from "TODO" [2023-08-28 Mon 19:03]

Anaconda mode provides python code navigation and completion but you need to install a few dependencies first from pip first or it will install on its own.

  (use-package anaconda-mode
    :defer 2
    :diminish anaconda-mode
    :diminish anaconda-eldoc-mode
    :bind (:map python-mode-map
                ("C-c I" . anaconda-mode-show-doc)
                ("C-c S" . anaconda-mode-find-definitions))
    :config
    (progn
      (add-hook 'python-mode-hook 'anaconda-mode)))

DONE Define Python path

  • State "DONE" from "TODO" [2023-08-28 Mon 19:03]
  (setq python-interpreter "/usr/bin/python3")

DONE YALM

  • State "DONE" from "TODO" [2023-08-28 Mon 19:03]
  (use-package yaml-mode
    :mode "\\.yml$")

DONE R

  (use-package ess
    :mode (("\\.r$" . R-mode)
           ("\\.R$" . R-mode)
           ("\\.jl$" . julia-mode))
    :commands (R-mode
               julia-mode
               my-julia-shell-here
               ess-eval-function
               ess-eval-line
               ess-eval-buffer
               ess-switch-to-ESS)
    :config
    (require 'ess-site)
    )

DONE NGINX

  • State "DONE" from "TODO" [2023-08-22 Tue 13:20]
  (use-package nginx-mode
    :commands (nginx-mode)
    )

TODO Orgzly sync

From this Reddit post. In termux, you also need to pkg install diffutils.

  (setq ediff-toggle-skip-similar t
        ediff-diff-options "-w"
        ediff-window-setup-function 'ediff-setup-windows-plain
        ediff-split-window-function 'split-window-horizontally
        )
  (defun my/resolve-orgzly-syncthing ()
    (interactive)
    (ibizaman/syncthing-resolve-conflicts "~/sync/orgzly")
    )

  (defun ibizaman/syncthing-resolve-conflicts (directory)
    "Resolve all conflicts under given DIRECTORY."
    (interactive "D")
    (let* (
           (all (ibizaman/syncthing--get-sync-conflicts directory))
           (chosen (ibizaman/syncthing--pick-a-conflict all))
           )
      (ibizaman/syncthing-resolve-conflict chosen)
      )
    )

  (defun ibizaman/syncthing-show-conflicts-dired (directory)
    "Open dired buffer at DIRECTORY showing all syncthing conflicts."
    (interactive "D")
    (find-name-dired directory "*.sync-conflict-*")
    )

  (defun ibizaman/syncthing-resolve-conflict-dired (&optional arg)
    "Resolve conflict of first marked file in dired or close to point with ARG."
    (interactive "P")
    (let ((chosen (car (dired-get-marked-files nil arg))))
      (ibizaman/syncthing-resolve-conflict chosen)
      )
    )

  (defun ibizaman/syncthing-resolve-conflict (conflict)
    "Resolve CONFLICT file using ediff."
    (let* ((normal (ibizaman/syncthing--get-normal-filename conflict)))
      (ibizaman/ediff-files)
      (list conflict normal)
      `(lambda ()
         (when (y-or-n-p "Delete conflict file? ")
           (kill-buffer (get-file-buffer ,conflict)
                        )
           (delete-file ,conflict)
           )
         )
      )
    )

  (defun ibizaman/syncthing--get-sync-conflicts (directory)
    "Return a list of all sync conflict files in a DIRECTORY."
    (seq-filter
     (lambda (o) (not (string-match "\\.stversions" o)))
     (directory-files-recursively directory "\\.sync-conflict-")
     )
    )

  (defvar ibizaman/syncthing--conflict-history nil
    "Completion conflict history")

  (defun ibizaman/syncthing--pick-a-conflict (conflicts)
    "Let user choose the next conflict from CONFLICTS to investigate."
    (completing-read "Choose the conflict to investigate: " conflicts
                     nil t nil ibizaman/syncthing--conflict-history)
    )

  (defun ibizaman/syncthing--get-normal-filename (conflict)
    "Get non-conflict filename matching the given CONFLICT."
    (replace-regexp-in-string "\\.sync-conflict-.*\\(\\..*\\)$" "\\1" conflict)
    )

  (defun ibizaman/ediff-files (&optional files quit-hook)
    (interactive)
    (lexical-let ((files (or files (dired-get-marked-files)))
                  (quit-hook quit-hook)
                  (wnd (current-window-configuration))
                  )
                 (if (<= (length files) 2)
                     (let ((file1 (car files))
                           (file2 (if (cdr files)
                                      (cadr files)
                                    (read-file-name
                                     "file: "
                                     (dired-dwim-target-directory))
                                    )
                                  )
                           )
                       (if (file-newer-than-file-p file1 file2)
                           (ediff-files file2 file1)
                         (ediff-files file1 file2)
                         )
                       (add-hook 'ediff-after-quit-hook-internal
                                 (lambda ()
                                   (setq ediff-after-quit-hook-internal nil)
                                   (when quit-hook (funcall quit-hook)
                                         )
                                   (set-window-configuration wnd)
                                   )
                                 )
                       )
                   (error "no more than 2 files should be marked")
                   )
                 )
    )
  )

CNCL Create an Orgzly feature request asking for android web page share to Orgzly to be in the format Title for easy bookmarking, leaving the note content for notes.

CNCL Write an Emacs keyboard macro to covert Orgzly phone capture to standard capture

  • State "CNCL" from [2023-07-02 Sun 15:06]

Adding TITLE and URI properties, converting heading to a hyperlink.

TODO Narrow to org-hierarchy

  • State "DONE" from "TODO" [2023-07-07 Fri 16:23]
  (with-eval-after-load 'org
  (let ((listvar (if (boundp 'org-speed-commands) 'org-speed-commands
                   'org-speed-commands-user)))
    (add-to-list listvar '("N" org-narrow-to-subtree))
    (add-to-list listvar '("W" widen))
    (add-to-list listvar '("T" my/org-agenda-for-subtree))
    (add-to-list listvar '("b" my/org-bounce-to-file))))

(defun my/org-agenda-for-subtree ()
  (interactive)
  (when (derived-mode-p 'org-agenda-mode) (org-agenda-switch-to))
  (my/org-with-current-task
   (let ((org-agenda-view-columns-initially t))
     (org-agenda nil "t" 'subtree))))

TODO Download file at URL and attach with org-attach

  • State "DONE" from "NEXT" [2023-08-09 Wed 09:06]
  (defun my/org-attach-download (url)
    "Download file at URL and attach with org-attach.

  Interactively, look for URL at point, in X clipboard, and in \"kill-ring\", prompting if not found.  With prefix, prompt for URL."
    (interactive (list (if current-prefix-arg
                           (read-string "URL: ")
                         (or (org-element-property :raw-link (org-element-context))
                             (org-web-tools--get-first-url)
                             (read-string "URL: ")
                             )
                         )
                       )
                 )
    (when (yes-or-no-p (concat "Attach file at URL: " url))
      (let* ((temp-dir (make-temp-file "org-attach-download-" 'dir))
             (basename (file-name-nondirectory (directory-file-name url)))
             (local-path (expand-file-name basename temp-dir))
             size)
        (unwind-protect
            (progn
              (url-copy-file url local-path 'ok-if-exists 'keep-time)
              (setq size (file-size-human-readable
                          (file-attribute-size
                           (file-attributes local-path))))
              (org-attach-attach local-path nil 'mv)
              (message "Attached %s (%s)" url size))
          (delete-directory temp-dir)
          )
        )
      )
    )
DONE Go to the headline corresponding to this org-attach directory
  • State "DONE" from "NEXT" [2023-08-09 Wed 09:06]
  (defun my/org-attach-visit-headline-from-dired ()
      "Go to the headline corresponding to this org-attach directory.

    from https://fuco1.github.io/2023-02-08-Visit-the-org-headline-from-the-attach-dired-buffer.html"
      (interactive)
      (let* ((id-parts (last (split-string default-directory "/" t) 2))
             (id (apply #'concat id-parts))
             )
        (let ((m (org-id-find id 'marker)))
          (unless m (user-error "Cannot find entry with ID \"%s\"" id))
          (pop-to-buffer (marker-buffer m))
          (goto-char m)
          (move-marker m nil)
          (org-fold-show-context)
          )
        )
      )

TODO Encryption

  • State "DONE" from [2023-09-02 Sat 13:05]
  (use-package org-crypt
    :config
    (org-crypt-use-before-save-magic)
    (setq org-tags-exclude-from-inheritance '("crypt"))

    (setq org-crypt-key nil)
    ;; GPG key to use for encryption.
    ;; nil means  use symmetric encryption unconditionally.
    ;; "" means use symmetric encryption unless heading sets CRYPTKEY property.

    (setq auto-save-default nil)
    ;; Auto-saving does not cooperate with org-crypt.el: so you need to
    ;; turn it off if you plan to use org-crypt.el quite often.  Otherwise,
    ;; you'll get an (annoying) message each time you start Org.

    ;; To turn it off only locally, you can insert this:
    ;;
    ;; # -*- buffer-auto-save-file-name: nil; -*-
    )

DONE Convert org header into org-roam node

  • State "DONE" from "TODO" [2023-07-31 Mon 13:43]
(defun my/convert-to-org-roam-node ()
  "Convert org header at point into org-roam node."
  (interactive)
  (when (org-at-heading-p) ; Check if we're at a heading
    (let* ((header (org-get-heading t t t t))
           (content (org-get-entry)) ; Get content under the header
           ;; Get properties block start and end
           (props-start (string-match ":PROPERTIES:" content))
           (props-end (when props-start (string-match ":END:" content props-start)))
           ;; Save the existing properties into a variable
           (existing-props (when (and props-start props-end)
                             (let ((props (split-string (substring content (+ props-start 13) (- props-end 4)) "\n")))
                               (mapconcat #'identity
                                          (seq-remove (lambda (s) (string-match-p ":CREATED:" s)) props) "\n"))))
           ;; Extract and format CREATED property
           (created (when-let ((created-match (string-match ":CREATED: \\[\\(.*?\\)\\]" content)))
                      (format "%s" (match-string 1 content)))))
      (if created
          (let* ((cleaned-created (substring created 0 10)) ; Extract YYYY-MM-DD
                 (filename (concat cleaned-created "-" (replace-regexp-in-string " " "-" header) ".org")))
            (with-temp-buffer
              (insert "* " header "\n\n") ; Put an empty line between the header and properties drawer
              (insert ":PROPERTIES:\n:ID: " (org-id-uuid) "\n:CREATED: [" created "]\n") ; Add new ID and CREATED properties
              ;; Append existing properties, if any
              (when existing-props
                (insert existing-props "\n"))
              (insert ":END:\n\n")
              ;; Insert the content, skipping existing properties block
              (insert (if (and props-start props-end)
                          (substring content (+ props-end 6))
                        content))
              (write-file filename)))
        (message "No CREATED property found for this heading")))))

TODO Covert org header to org-roam-dailies header

  (defun my/org-header-to-org-roam-dailies (filename)
  "Migrate Org-header to org-roam-dailies file.
Searches for a the :CREATED: property in the supplied org FILENAME and create an org-roam-dailies file from it."
  (with-current-buffer (find-file-noselect filename)
    (goto-char (point-min))
    (let ((created-property
           (when (re-search-forward "^\\*+ .*?\\s-+:PROPERTIES:\\s-+:CREATED:\\s-+\\[\\(\\<[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\) .*?\\]")
             (match-string-no-properties 1))))
      (if created-property
          (let ((daily-filename (concat org-roam-dailies-directory "/" created-property ".org")))
            (unless (file-exists-p daily-filename)
              (org-roam-dailies-capture created-property)
              (with-current-buffer (find-file-noselect daily-filename)
                (insert (buffer-substring (point-min) (point-max)))
                (save-buffer))))
        (error "No :CREATED: property found")))))

TODO Capture from web pages & org-roam : r/orgmode

  • State "DONE" from "TODO" [2023-08-22 Tue 12:43]
  (setq org-roam-capture-ref-templates
       '(("i" "internet" plain #'org-roam-capture--get-point "%?"
          :file-name "float/%<%Y%m%d%H%M>-${slug}"
          :head "#+title: ${title}\n#+roam_key: ${ref}\n#+roam_tags: bookmark"
          :unnarrowed t)))

TODO Get summaries of wikipedia articles in Emacs   emacs web search

TODO Publishing

  • State "DONE" from "TODO" [2023-08-10 Thu 07:32]
  • State "DONE" from "TODO" [2023-08-09 Wed 09:11]

This is taken from ox-hugo and https://justin.vc/posts/ox-hugo-and-org-roam/[[JustinVC's modifications to make it work with org-roam.

  (use-package ox-hugo
    :after ox
    :bind (
           ("C-c C-e H H" . org-hugo-export-wim-to-md)
  	 ("C-C C-e H H" . org-hugo-export-wim-to-md :all-subtres)
  	 ("C-c C-e H h" . org-hugo-export-to-md)
  	 )
    )

DONE Org mode epub export   emacs books

  • State "DONE" from "NEXT" [2023-08-11 Fri 13:25]
  (use-package ox-epub
    )

TODO Org2blog: Blog from Org mode to WordPress   emacs web publishing

TODO A carefully crafted Org exporter back-end for Hugo   emacs web publishing

TODO View, capture, and archive Waeb pages in Org-mode   emacs

  • State "DONE" from "NEXT" [2023-08-03 Thu 13:18]
  • State "DONE" from "NEXT" [2023-08-03 Thu 13:17]
      (use-package org-web-tools
        :bind (:map org-mode-map
                    ("C-c w" . org-web-tools-archive-attach)
                    ("C-c W" . org-web-tools-archive-view)
                    )
        :config
;      (setq org-web-tools-archive-wget-options
;            (delete "--execute robots=off" org-web-tools-archive-wget-options))
;      (add-to-list 'org-web-tools-archive-wget-options "-e robots=off")

  ;;    :custom
    ;    (org-web-tools-archive-wget-option   ;; Fix wget bug with -e robots=off https://github.com/alphapapa/org-web-tools/issues/35
    ;     '("--execute"
    ;       "robots=off)"
    ;       )
     ;    )
      )

TODO Convert html to org format text   emacs web html archive

TODO org-bookmarks-extractor   emacs web archive

TODO Archive Mastodon links

  (defun my/mastodon-store-link ()
  "Store links in Mastodon buffers."
  (when (derived-mode-p 'mastodon-mode)
    (let ((json (get-text-property (point) 'toot-json)))
      (org-link-store-props
       :link (assoc-default 'url json)
       :content (assoc-default 'content json)
       :text
       (concat
        (string-trim (mastodon-tl--render-text (assoc-default 'content json)))
        (if (assoc-default 'media_attachments json)
            (concat "\n\n"
                    (mapconcat
                     (lambda (attachment)
                       (org-link-make-string
                        (assoc-default 'url attachment)
                        (assoc-default 'description attachment)))
                     (assoc-default 'media_attachments json)
                     "\n"
                     )))
            "")
        ))))

(use-package org
  :config
  (org-link-set-parameters
   "mastodon"
   :store 'my/mastodon-store-link)
  (add-to-list 'org-capture-templates
               `("m" "Mastodon" entry (file ,my/org-inbox-file)
                 "* %?

#+begin_quote
%:text
#+end_quote

%a"
                 :prepend t)))

TODO [0/2] org-roam-capture web articles in web/

  • State "DONE" from "TODO" [2023-08-19 Sat 20:03]
  • web highlight L template is converted into block quotes
  • notes are written below each block quote
  • Node CREATED timestamp in file properties
TODO org-roam-capture
  (defun my/org-protocol-insert-selection-dwim (selection)
  "Insert SELECTION as an org blockquote."
  (unless (string= selection "")
    (format "#+begin_quote\n%s\n#+end_quote" selection)
    (format "\n%s\n" selection)))
TODO Templates
  (add-to-list 'org-roam-capture-templates
               '("r" "ref" plain
                 "* %U\n  %(my/org-protocol-insert-selection-dwim \"%i\")%?"
                 :target (file+head "web/${slug}.org"
                                    "#+title: ${title}\n
                                     ,#+roam_key: ${ref}\n
                                     ,#+created: %u\n"
                                    )
                 :unnarrowed t
                 )
               )

TODO Article is pulled into *Article below block quotes using org-web-tools

  • Article ACCESSED timestamp in header properties
  • Link to node is listed as a header in web.org, sorted by CREATED date. Web.org is added to agenda with custom TODO statuses: READ ARCHIVE DONE
  • ARCHIVE is when entire web page ZIP archive is captured using org-web-tools.

CNCL Org mode's web archiver.   emacs archive

  • State "CNCL" from [2023-08-09 Wed 09:15]
    Using org-web-tools instead, being actively developed.

CNCL Manage zotero collections from emacsemacs.   emacs archive academia

  • State "CNCL" from "TODO" [2023-08-22 Tue 13:00]

TODO Emacs Zotero · GitLab   emacs archive academia

TODO zotxt: a Zotero extension for text   emacs archive academia

TODO BibTeX-Mode for GNU Emacs   emacs

TODO helm-bibtex

  • State "DONE" from "NEXT" [2023-08-03 Thu 13:15]
  (use-package helm-bibtex
    :ensure t
    :config (setq bibtex-completion-bibliography bib-files-directory
                  bibtex-completion-library-path pdf-files-directory
                  bibtex-completion-pdf-field "File"
                  bibtex-completion-notes-path org-directory
                  )
    )

TODO Org Roam integration with bibliography management software   emacs archive

  • State "DONE" from "NEXT" [2023-08-03 Thu 13:15]
  (use-package org-roam-bibtex
    :after (org-roam helm-bibtex)
    :bind (
           :map org-mode-map ("C-c n b" . orb-note-actions))
    :config
    (require 'org-ref)
    (org-roam-bibtex-mode)
    )

  (add-hook 'bibtex-mode-hook 'flyspell-mode ) ;; Spell checking (requires the ispell software)

  ;; Change fields and format
  (setq bibtex-user-optional-fields '(("keywords" "Keywords to describe the entry" "")
                                      ("file" "Link to document file." ":"))
        bibtex-align-at-equal-sign t
        bib-files-directory (directory-files
                             (concat org-directory "library") t                            "^[A-Z|a-z].+.bib$")
        pdf-files-directory (concat org-directory "documents/pdf"))

TODO org-ref

  (use-package org-ref
    :ensure t
    :defer t
    :config (setq org-ref-completion-library 'org-ref-helm-cite
                  org-ref-get-pdf-filename-function 'org-ref-get-pdf-filename-helm-bibtex
                  org-ref-default-bibliography bib-files-directory
                  org-ref-notes-directory org-directory
                  org-ref-notes-function 'orb-edit-notes
                  )
    )

TODO Zotra: get bibliographic information from a url and save it into a bibtex file

  (use-package zotra
    :ensure t
    )

TODO Annotate and sort incoming PDFs into your org files   emacs archive

    (use-package org-incoming
      :ensure t
      :config
      (setq org-incoming-dirs
            '(
            (:source "Download" :target "/home/amr/org/library/documents/pdf")
;            (:source (concat (getenv "HOME") "/Download") :target (concat org-directory "/library/documents/pdf"))
  ;            (:source (concat org-directory "/inbox") :target (concat org-directory "/library/documents/pdf") :use-roam 't)
  ;            (:source "/home/user/incoming/folder3" :target "/home/user/org/todos" :pdf-subdir "originals")
              )
            )
      )

TODO Emacs support library for PDF files.   emacs archive

  • State "DONE" from "NEXT" [2023-08-09 Wed 14:53]
  (use-package pdf-tools
    :ensure t
    :hook (org-mode . org-pdftools-setup-link)
    :config
    (pdf-tools-install)
    (setq-default pdf-view-display-size 'fit-width)
    (define-key pdf-view-mode-map (kbd "C-s") 'isearch-forward)
    :custom
    (pdf-annot-activate-created-annotations t "automatically annotate highlights")
    )
  (defun my/fix-pdf-selection ()
  "Replace pdf with one where selection shows transparently."
  (interactive)
  (unless (equal (file-name-extension (buffer-file-name)) "pdf")
    (error "Buffer should visit a pdf file."))
  (unless (equal major-mode 'pdf-view-mode)
    (pdf-view-mode))
  ;; save file in QDF-mode
  (qpdf-run (list
             (concat "--infile="
                     (buffer-file-name))
             "--qdf --object-streams=disable"
             "--replace-input"))
  ;; do replacements
  (text-mode)
  (read-only-mode -1)
  (while (re-search-forward "3 Tr" nil t)
    (replace-match "7 Tr" nil nil))
  (save-buffer)
  (pdf-view-mode))

TODO Send books to Kindle

  (use-package org-kindle ;; Send books to Kindle
    :ensure t
    )

TODO Convert between Kindle clippings and org mode.   python kindle emacs

TODO Reading list management with org mode   emacs books

TODO Open EPUBs in CalibreDB inside Emacs

  (defun calibredb-open-file-with-default-tool (arg &optional candidate)
  "Open file with the system default tool.
If the universal prefix ARG is used, ignore `calibredb-preferred-format'.
Optional argument CANDIDATE is the selected item."
  (interactive "P")
  (unless candidate
    (setq candidate (car (calibredb-find-candidate-at-point))))
  (if arg
      (let ((calibredb-preferred-format nil))
        (calibredb-open-with-default-tool (calibredb-get-file-path candidate t)))
    (calibredb-open-with-default-tool (calibredb-get-file-path candidate t))))
(defun my/calibredb-open-file-with-emacs (&optional candidate)
    "Open file with Emacs.
Optional argument CANDIDATE is the selected item."
    (interactive "P")
    (unless candidate
      (setq candidate (car (calibredb-find-candidate-at-point))))
    (find-file (calibredb-get-file-path candidate t)))
  (define-key calibredb-search-mode-map "V" #'my/calibredb-open-file-with-emacs)

CNCL Extract highlights and notes from Calibre EPUB reader   emacs books

CLOSED: [2024-02-03 Sat 03:08]

CNCL Create book library report

  • State "CNCL" from [2023-07-02 Sun 15:09]

CNCL Import book library report into org

  • State "CNCL" from [2023-07-02 Sun 15:09]

CNCL Create sync mechanism between Calibre library and org book report

  • State "CNCL" from [2023-07-02 Sun 15:09]

TODO Install mpd controller

TODO Emms   emacs music

TODO Install org-download

This extension facilitates moving images from point A to point B.

Point A (the source) can be:

  • An image inside your browser that you can drag to Emacs.
  • An image on your file system that you can drag to Emacs.
  • A local or remote image address in kill-ring. Use the org-download-yank command for this. Remember that you can use "0 w" in dired to get an address.
  • A screenshot taken using gnome-screenshot, scrot, gm, xclip (on Linux), screencapture (on OS X) or , imagemagick/convert (on Windows). Use the org-download-screenshot command for this. Customize the backend with org-download-screenshot-method.

Point B (the target) is an Emacs org-mode buffer where the inline link will be inserted. Several customization options will determine where exactly on the file system the file will be stored.

  (use-package org-download
    )
  (add-hook 'dired-mode-hook 'org-download-enable)     ;; Drag-and-drop to `dired`

TODO Control mpv for easy note takin   emacs video

TODO peertube - MELPA   emacs video

TODO Movie watchlist management using org-mode.   emacs archive video

  • State "DONE" from "NEXT" [2023-08-13 Sun 11:45]
  (use-package org-movies
    :ensure t
    :config
    ;;    (setq org-movies-api-key "f99b1ad3")
    (setq org-movies-api-key (auth-source-pass-get "api-key" "www/omdbapi.com/witty.zone3686@fastmail.com"))
    (add-to-list 'org-capture-templates
                '("m"
                   "Movie"
                   entry
                   ;;(file+headline (concat org-directory "library/movies.org") "To-watch")
                   (file+headline "~/org/library/movies.org" "Movies")
                   "%(call-interactively 'org-movies-from-url)"
                   :prepend t
                   :empty-lines 1
                   :created t
                   :kill-buffer t
                  )
                )
    )

TODO ytdl   emacs video youtube

TODO Extract YouTube video subtitles   emacs video youtube

TODO View and annotate video and audio

  (use-package org-media-note
    :init (setq org-media-note-use-org-ref t)
    :hook (org-mode .  org-media-note-mode)
    :bind (
           ("H-v" . org-media-note-hydra/body))  ;; Main entrance
    :config
    (setq org-media-note-screenshot-image-dir (concat org-directory "images/"))  ;; Folder to save screenshot
    (setq org-media-note-use-refcite-first t)  ;; use videocite link instead of video link if possible
    )

DONE Install Pandoc

  • State "DONE" from "TODO" [2023-07-05 Wed 17:17]
sudo apt-install pandoc

TODO Connect Pandoc and Org

  (use-package org-pandoc-import
    :straight (:host github :repo "tecosaur/org-pandoc-import" :files ("*.el" "filters" "preprocessors"))
    )

CNCL orgmodeweb   emacs

CLOSED: [2023-01-30 Mon 21:41]

  • State "CNCL" from [2023-07-02 Sun 15:05]

CNCL A simple org-mode based journaling mode

CLOSED: [2023-01-31 Tue 05:04]

  • State "CNCL" from [2023-07-02 Sun 15:05]

CNCL Store Emacs configs in org file using org-dotemacs

  • State "CNCL" from [2023-07-02 Sun 15:05]

CNCL Install org-board

  • State "CNCL" from [2023-07-02 Sun 15:05]

CNCL Org-appear

  • State "CNCL" from [2023-07-02 Sun 15:06]
  (use-package org-appear ;; Show hidden emphasis markers
    :hook (org-mode . org-appear-mode)
    )

CNCL Superstar

  • State "CNCL" from [2023-07-02 Sun 15:06]
  (use-package org-superstar ;; Nice bullets
    :ensure t
    :config
    (setq org-superstar-special-todo-items t)
    (add-hook 'org-mode-hook (lambda ()
                               (org-superstar-mode 1)
                               )
              )
    )

TODO Increase size of LaTeX fragment previews

  (plist-put org-format-latex-options :scale 2)

TODO Html As Markdown. Transparently edit an html file using markdown.   emacs web

:URI: ATED: [2023-01-28 Sat 09:09

TODO kiwix - MELPA   emacs wiki

TODO Wikipedia Infobox -> Emacs-Lisp   emacs wiki

TODO Org mode wikinfo integration   emacs wiki

TODO Mastodon keyboard shortcuts via Hydra

   ;; Not in the following hydra, but mentioned in "M-x describe-mode". Also, the README.org
  ;; contains several functions that aren't in my hydra.
  ;;
  ;; TAB                     mastodon-tl--next-tab-item
  ;; D                       mastodon-toot--delete-and-redraft-toot
  ;; C-S-b                   mastodon-tl--unblock-user
  ;; S-TAB                   mastodon-tl--previous-tab-item
  ;; S-RET                   mastodon-tl--unmute-user
  ;; C-S-w                   mastodon-tl--unfollow-user
  ;; S-SPC                   scroll-down-command
  ;; <backtab>               mastodon-tl--previous-tab-item
  ;; C-M-i                   mastodon-tl--previous-tab-item
  ;; M-n                     mastodon-tl--next-tab-item
  ;; M-p                     mastodon-tl--previous-tab-item

  (defhydra my/mastodon-help (:color blue :hint nil)
    "
Timelines^^   Toots^^^^           Own Toots^^   Profiles^^      Users/Follows^^  Misc^^
^^-----------------^^^^--------------------^^----------^^-------------------^^------^^-----
_H_ome        _n_ext _p_rev       _r_eply       _A_uthors       follo_W_         _X_ lists
_L_ocal       _T_hread of toot^^  wri_t_e       user _P_rofile  _N_otifications  f_I_lter
_F_ederated   (un) _b_oost^^      _e_dit        ^^              _R_equests       _C_opy URL
fa_V_orites   (un) _f_avorite^^   _d_elete      _O_wn           su_G_estions     _S_earch
_#_ tagged    (un) p_i_n^^        ^^            _U_pdate own    _M_ute user      _h_elp
_@_ mentions  (un) boo_k_mark^^   show _E_dits  ^^              _B_lock user
boo_K_marks   _v_ote^^
trendin_g_
_u_pdate      _w_rite Emacs news  _o_rg  _s_creenshot
"
    ;; my custom stuff
    ("s" my/mastodon-toot-screenshot)
    ("w" my/mastodon-save-toot-for-emacs-news)
    ("o" (org-capture nil "m"))
    ;; more general things
    ("H" mastodon-tl--get-home-timeline)
    ("L" mastodon-tl--get-local-timeline)
    ("F" mastodon-tl--get-federated-timeline)
    ("V" mastodon-profile--view-favourites)
    ("#" mastodon-tl--get-tag-timeline)
    ("@" mastodon-notifications--get-mentions)
    ("K" mastodon-profile--view-bookmarks)
    ("g" mastodon-search--trending-tags)
    ("u" mastodon-tl--update :exit nil)

    ("n" mastodon-tl--goto-next-toot)
    ("p" mastodon-tl--goto-prev-toot)
    ("T" mastodon-tl--thread)
    ("b" mastodon-toot--toggle-boost :exit nil)
    ("f" mastodon-toot--toggle-favourite :exit nil)
    ("i" mastodon-toot--pin-toot-toggle :exit nil)
    ("k" mastodon-toot--bookmark-toot-toggle :exit nil)
    ("c" mastodon-tl--toggle-spoiler-text-in-toot)
    ("v" mastodon-tl--poll-vote)

    ("A" mastodon-profile--get-toot-author)
    ("P" mastodon-profile--show-user)
    ("O" mastodon-profile--my-profile)
    ("U" mastodon-profile--update-user-profile-note)

    ("W" mastodon-tl--follow-user)
    ("N" mastodon-notifications-get)
    ("R" mastodon-profile--view-follow-requests)
    ("G" mastodon-tl--get-follow-suggestions)
    ("M" mastodon-tl--mute-user)
    ("B" mastodon-tl--block-user)

    ("r" mastodon-toot--reply)
    ("t" mastodon-toot)
    ("e" mastodon-toot--edit-toot-at-point)
    ("d" mastodon-toot--delete-toot)
    ("E" mastodon-toot--view-toot-edits)

    ("I" mastodon-tl--view-filters)
    ("X" mastodon-tl--view-lists)
    ("C" mastodon-toot--copy-toot-url)
    ("S" mastodon-search--search-query)
    ("h" describe-mode)

    ("q" nil :exit t)
  )
(use-package mastodon
 :bind ("s-m" . my/mastodon-help/body))

TODO Web search from Emacs and the terminal   emacs web search

TODO Maciej Barć / emacs-websearch · GitLab   emacs web search

CNCL Emacs wallabag client   emacs web

  • State "CNCL" from [2023-08-09 Wed 12:26]

CNCL Emacs client for Pocket reading list (getpocket.com)   emacs web

  • State "CNCL" from [2023-07-06 Thu 11:30]

TODO Install BBDB contact manager

  (use-package bbdb
    :config
    (bbdb-initialize 'gnus 'message 'w3)
    (bbdb-insinuate-message)
    (add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)
    (setq bbdb-north-american-phone-numbers nil)
    )
  (require 'bbdb-autoloads)
    (require 'bbdb) 
   (load "bbdb-com" t)
    (bbdb-initialize 'gnus 'message 'reportmail 'w3)
    (bbdb-insinuate-reportmail)
    (bbdb-insinuate-message)
    ;; (bbdb-insinuate-sc)
    (bbdb-insinuate-w3)
    (setq bbdb-north-american-phone-numbers nil)
    (add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)
    (setq bbdb-auto-notes-alist
          (quote (("To"
                   ("w3o" . "w3o")
                   ("plug" . "plug")
                   ("linux" . "linux")
                   ("emacs-commit" . "emacs commit")
                   ("emacs" . "emacs")
                   ("pinoyjug" . "pinoyjug")
                   ("digitalfilipino" . "digitalfilipino")
                   ("sacha" . "personal mail"))
                  ("From"
                   ("admu" company "Ateneo de Manila University")
                  ("Organization" (".*" company 0 nil))
                  ))))
    (setq bbdb-auto-notes-ignore (quote (("Organization" . "^Gatewayed from\\\\|^Source only"))))
    (setq bbdb-auto-notes-ignore-all nil)
    (setq bbdb-check-zip-codes-p nil)
    (setq bbdb-default-area-code 632)
    (setq bbdb-default-country "Philippines")
    (setq bbdb-ignore-some-messages-alist (quote (("From" . "hotmail") ("To" . "handhelds") ("From" . "yahoo.com"))))
    (setq bbdb-notice-hook (quote (bbdb-auto-notes-hook)))
    (setq bbdb/mail-auto-create-p t)
    (setq bbdb/news-auto-create-p (quote bbdb-ignore-some-messages-hook))

TODO bbdb-csv-import - MELP   emacs archive

TODO Synchronize calendars and contacts.   calendar carddav

TODO org-contacts - MELPA   emacs contacts

TODO org-contacts2vcard   emacs contacts

TODO Org sync with Google Tasks   emacs work

TODO Hanno Perrey / khalel · GitLab   emacs calendar carddav

TODO pomodoro technique for org-mode   emacs work

TODO News and mail on Gnus

TODO SMTP
  (setq 
   user-mail-address    "amr@gharbeia.net"   ; $EMAIL
   user-full-name       "Amr Gharbeia")        ; $NAME
  smtpmail-smtp-server "imap.fastmail.com"    ; $SMTPSERVER
  send-mail-function   'smtpmail-send-it     ;
  smtpmail-smtp-service 587                  ; SMTP port
                                          ; gnus-select-method '(nntp "foo.bar.com")  ; Connect to an NNTP server
  )
  ;; A list of additional servers
  (add-to-list gnus-secondary-select-methods
               '((nnspool "localhost")
                 (nnml "")))

      ;; nnml gets credentials here.
  (setq mail-sources
        '((pop :server   "imap.fastmail.com"   
               :user     "amr@gharbeia.net")))

  (setq user-mail-address    "amr@gharbeia.net")   ; $EMAIL
  (setq user-full-name       "Amr Gharbeia")        ; $NAME
  (setq smtpmail-smtp-server "imap.fastmail.com")    ; $SMTPSERVER
  (setq send-mail-function   'smtpmail-send-it)     ;
  (setq smtpmail-smtp-service 587)                  ; SMTP port
  (setq gnus-select-method '(nnimap "imap.gmail.com")  ; Connect to an NNTP server

        ;; A list of additional servers
        (add-to-list gnus-secondary-select-methods
                     '((nnspool "localhost")
                       (nnml "")))

        ;; nnml gets credentials here.
        (setq mail-sources
              '((pop :server   "imap.fastmail.com"))
              )

TODO Use Linux/Windows/Mac mail program to send mail from Emacs   emacs email

  (use-package desktop-mail-user-agent
    :ensure t
    :config
    (setq mail-user-agent sendmail-user-agent)
    )

TODO Install elfeed

TODO Make elfeed work with tt-rss using elfeed-protocol

TODO Elfeed with Tiny Tiny RSS   emacs rss

TODO A frontend for elfeed   emacs rss

TODO Emacs interface to tt-rss   emacs rss

TODO mastodon - MELPA   emacs social_network

TODO A Gnus backend for Twitter   emacs twitter

TODO A Gnus backend for Reddit   emacs reddit

TODO Emacs Mode for Reddit   emacs web reddit

TODO Install Memacs

  • State "DONE" from "NEXT" [2023-08-07 Mon 13:39]

TODO Recipes   emacs food

This is probably dated and unmaintained.

  (use-package org-chef
  :ensure t)

  (add-to-list 'org-capture-templates '("c"
                                        "Cookbook"
                                        entry
                                        (file "cookbook.org")
                                        "%(org-chef-get-recipe-from-url)"
                                        :empty-lines 1
                                        )
               )

  (add-to-list 'org-capture-templates '("m"
                                        "Manual Cookbook"
                                        entry
                                        (file "cookbook.org")
                                        "* %^{Recipe title: }\n  :PROPERTIES:\n  :source-url:\n  :servings:\n  :prep-time:\n  :cook-time:\n  :ready-in:\n  :END:\n** Ingredients\n   %?\n** Directions\n\n"
                                        )
               )

TODO Philip Woods / org-if · GitLab   emacs writing

TODO Currency converter in Emacs   emacs money

TODO OpenStreetMap viewer for Emacs   emacs maps

TODO OpenSCAD Emacs mode   emacs archive physibles

TODO Org CV

TODO ellama

  (use-package ellama
  :init
  (setq ellama-language "English")
  (require 'llm-ollama)
  (setq ellama-buffer-mode org)
  (setopt ellama-provider
                  (make-llm-ollama
                   :chat-model "mistral:7b-instruct-v0.2-q6_K"
                   :embedding-model "mistral:7b-instruct-v0.2-q6_K")
                  )
  )

TODO LLM

  (use-package llm-refactoring
    :init
    (require 'llm-openai)
    (setq llm-refactoring-provider (make-llm-openai :key (auth-source-pass-get "api-key" "www/openai.com/amr@gharbeia.net")))
          )

TODO Llama-cpp in Emacs

  (use-package llama-cpp
  :ensure t)

TODO org-ai: Emacs as your personal AI assistant. Use LLMs such as ChatGPT or LLaMA for text generation or DALL-E and Stable Diffusion for image generation. Also supports speech input / output.

  (use-package org-ai
  :ensure t
  :commands (org-ai-mode
             org-ai-global-mode)
  :init
  (add-hook 'org-mode-hook #'org-ai-mode) ; enable org-ai in org-mode
  (org-ai-global-mode) ; installs global keybindings on C-c M-a
  :config
  (setq org-ai-default-chat-model "gpt-4") ; if you are on the gpt-4 beta:
  (org-ai-install-yasnippets)) ; if you are using yasnippet and want `ai` snippets

TODO openai

  (use-package openai
    :config (setq openai-key (auth-source-pass-get "api-key" "www/openai.com/amr@gharbeia.net")
                  openai-user (auth-source-pass-get "login" "www/openai.com/amr@gharbeia.net")
                  )
    )
  (use-package chatgpt
    :config (setq chatgpt-model "gpt-4"
                  chatgpt-max-tokens "2000"
                  chatgpt-temperature "1.0"
                  chatgpt-input-method 'window
                  chatgpt-spinner-type 'moon
                  chatgpt-display tokens-info t
                  chatgp-animate-text -t
                  chatp-gpt-animate-fps 5
                  )
    )
  (use-package dall-e
    :config (setq dall-e-n 5
                  dall-e-size "256x256"
                  dall-e-spinner-type 'moon
                  dall-e-cache-dir "~/Downloads"
                  dall-e-display-width 200
                  )
    )
  (use-package codegpt
    :config (setq codegpt-tunnel 'completion
                  codegpt-model "gpt-4"
                  codegpt-max-tokens
                  codegpt-temperature
                  )
    )

TODO org-ai

  (use-package org-ai
    :commands (org-ai-mode
               org-ai-global-mode)
    :init
    (add-hook 'org-mode-hook #'org-ai-mode) ; enable org-ai in org-mode
    (org-ai-global-mode) ; installs global keybindings on C-c M-a
    :config
    (org-ai-install-yasnippets)
    (setq org-ai-default-chat-model "gpt-4"
          org-ai-openai-api-token (auth-source-pass-get "api-key" "www/openai.com/amr@gharbeia.net")
          )
    )

Only needed if you want speach input and output

  (use-package greader
    (require 'whisper)
    (setq org-ai-talk-say-words-per-minute 210
          org-ai-talk-say-voice "Karen"
          )
    )
  (use-package whisper
    :load-path (concat (getenv "HOME") "/library/src/git/github.com/natrys/whisper.el")
    :bind ("C-H-r" . whisper-run)
    :config
    (setq whisper-install-directory (concat (getenv "HOME") "/.emacs.d/whisper")
          whisper-model "large"
          whisper-language "en"
          whisper-translate nil
          )
    )

TODO gptai

  (use-package gptai
    set configurations
    (setq gptai-model "gpt-4"
          gptai-username (auth-source-pass-get "login" "www/openai.com/amr@gharbeia.net")
          gptai-api-key (auth-source-pass-get "api-key" "www/openai.com/amr@gharbeia.net")
          gptai-max-tokens 2000
          )
    ;; set keybindings optionally
    (global-set-key (kbd "C-c o") 'gptai-send-query)
    )

DONE Install anki-editor   emacs learning

  • State "DONE" from "TODO" [2023-08-21 Mon 13:36]
  (use-package anki-editor
    :ensure t
    )

CNCL Install anki-mode   emacs learning

  • State "CNCL" from "TODO" [2023-08-21 Mon 13:31]
    This uses markdown, while anki-editor uses org-mode

A major mode for creating Anki cards.

TODO Macros

  (use-package elmacro
    )

TODO Restart Emacs from Emacs

  (use-package restart-emacs
    :bind* (("C-x M-c" . restart-emacs)
            )
    )

TODO Save & shutdown when we get an "end of session" signal on dbus

  (require 'dbus)
  (defun my/register-signals (client-path)
    "Register for the 'QueryEndSession' and 'EndSession' signals from Gnome SessionManager.

  When we receive 'QueryEndSession', we just respond with 'EndSessionResponse(true, \"\")'.  When we receive 'EndSession', we append this EndSessionResponse to kill-emacs-hook, and then call kill-emacs.  This way, we can shut down the Emacs daemon cleanly before we send our 'ok' to the SessionManager."
    (setq my/gnome-client-path client-path)
    (let ( (end-session-response (lambda (&optional arg)
                                   (dbus-call-method-asynchronously
                                    :session "org.gnome.SessionManager" my/gnome-client-path
                                    "org.gnome.SessionManager.ClientPrivate" "EndSessionResponse" nil
                                    t "")
                                   )
                                 )
           )
      (dbus-register-signal
       :session "org.gnome.SessionManager" my/gnome-client-path
       "org.gnome.SessionManager.ClientPrivate" "QueryEndSession"
       end-session-response )
      (dbus-register-signal

       :session "org.gnome.SessionManager" my/gnome-client-path
       "org.gnome.SessionManager.ClientPrivate" "EndSession"
       `(lambda (arg)
          (add-hook 'kill-emacs-hook ,end-session-response t)
          (kill-emacs)
          )
       )
      )
    )

  ;; DESKTOP_AUTOSTART_ID is set by the Gnome desktop manager when emacs is autostarted.  We can use it to register as a client with gnome SessionManager.
  (dbus-call-method-asynchronously
   :session "org.gnome.SessionManager"
   "/org/gnome/SessionManager" 
   "org.gnome.SessionManager" "RegisterClient" 'my/register-signals
   "Emacs server" (getenv "DESKTOP_AUTOSTART_ID")
   )

TODO Tips for refiling into org roam dailies? : r/OrgRoam

This has the solution to my refile-to-org-roam-dailies blues

TODO Lisp Operating System

Wonderful

TODO EmacsWiki: Gnus Tutorial   emacs

DONE Emacs Turbo-Charges My Writing // Take on Rules   emacs

  • State "DONE" from "TODO" [2024-02-01 Thu 13:50]

TODO GNU ELPA - csv-mode   emacs

TODO auto-dictionary-mode   emacs

TODO CSS for Org-exported HTML   emacs

TODO Deft for Emacs   emacs

TODO Building a Emacs Org-Mode Blog   emacs publishing

TODO dots/config.el at master · jethrokuan/dots · GitHub

Very good Emacs configs by the maker of org-roam

CNCL dotemacs/gemacsclient at master · karlicoss/dotemacs · GitHub   emacs

  • State "CNCL" from [2023-08-11 Fri 13:58]

TODO Microblog Server   radio software emacs

Microblogging on JS8Call

TODO The Emacsmirror   emacs

The Emacsmirror is a growing collection of Emacs Lisp packages. All mirrored packages are available as Git repositories. In most cases this is done by mirroring the upstream Git repository, but if upstream uses something else, then the mirror nevertheless makes the package available as a Git repository.

TODO Dont manage work email with Emacs   emacs email

TODO GitHub - antham/git-backup   emacs archive computers

TODO crontab-mode   emacs

TODO cheatsheet   emacs

TODO More Productive with Emacs: Writing, Researching, Publishing   emacs

Very good introduction, tutorial and configs to get one started with Emacs for prose purposes.

TODO How I Take Notes with Org-roam

By the maker of org-roam himself

TODO EmacsWiki   emacs

DONE GitHub - pprevos/EmacsLife: Managing your life and work with Emacs   emacs

CLOSED: [2023-01-30 Mon 07:25]

Great Emacs and Org-mode setup tutorial and config files

DONE My Emacs Setup | Clinton Liddick   emacs

  • State "DONE" from "TODO" [2023-07-02 Sun 15:10]

Daemon Terminal support Use-package for portability

DONE My Minimal Emacs Setup | Sandeep Nambiar   emacs

CLOSED: [2023-01-23 Mon 13:37]

TODO Org Mode - Organize Your Life In Plain Text!   org_mode organisation emacs

  • State "DONE" from "TODO" [2024-02-02 Fri 16:37]

TODO Emacs X Window Manager   emacs

DONE An Emacs Tutorial: Beginner's Guide to Emacs - Mastering Emacs   emacs

CLOSED: [2023-01-20 Fri 04:31]

DONE Behind the code: project planning - Devalot   emacs

CLOSED: [2023-01-21 Sat 09:54]

TODO Debian-el   emacs

  (use-package debian-el
    :ensure t
    )

DONE Digitizing All Your Paper Stuff   emacs

CLOSED: [2023-01-13 Fri 13:22]

DONE EmacsWiki: Learning Emacs   emacs

CLOSED: [2023-01-21 Sat 09:58]

DONE Getting Started • Zettelkasten Method   emacs

CLOSED: [2023-01-15 Sun 04:52]

DONE How to Design File Management for a Company   emacs

CLOSED: [2023-01-21 Sat 08:37]

DONE How to learn Emacs :: About this guide to Emacs   emacs

CLOSED: [2023-01-20 Fri 04:37]

DONE How to Use Tags   emacs

CLOSED: [2023-01-21 Sat 08:40]

DONE metajack.im - Journaling with Emacs OrgMode   emacs

CLOSED: [2023-01-21 Sat 09:54]

DONE Org for GTD and other Task managment systems   emacs

CLOSED: [2023-01-14 Sat 03:21]

DONE Orgmode for GTD   emacs

CLOSED: [2023-01-14 Sat 03:27]

DONE org-mode snippets | tychoish   emacs

CLOSED: [2023-01-21 Sat 09:54]

DONE Per-contact FROM-email Addresses for Users Of mutt and org-contacts.el   emacs

CLOSED: [2023-01-15 Sun 10:56]

DONE The Tag «decentralization»   emacs

CLOSED: [2023-01-17 Tue 03:49]

DONE UOMF: Linking Headings   emacs

CLOSED: [2023-01-14 Sat 03:39]

DONE UOMF: Managing web bookmarks with Org Mode   emacs

CLOSED: [2023-01-14 Sat 03:16]

DONE UOMF: My Current Mobile Capture Process   emacs

CLOSED: [2023-01-14 Sat 03:33]

DONE UOMF: My Current Org Mode Files and Heading Structure   emacs

CLOSED: [2023-01-15 Sun 10:57]

I like the quantified self things here. Need to learn more.

DONE UOMF: On How to Define Projects in Org Mode   emacs

CLOSED: [2023-01-13 Fri 10:12]

DONE UOMF: Reference Management with Org Mode   emacs

CLOSED: [2023-01-14 Sat 03:00]

This could replace Zotero for academic papers.

TODO UOMF: Using Template Files for Pandoc Exports to Word or LibreOffice

Apparently good scanner drivers for Linux

TODO GitHub - tmalsburg/guess-language.el: Emacs minor mode that detects the language you're typing in. Automatically switches spell checker. Supports multiple languages per document.   emacs languages

:URI: https://github.com/tmalsburg/guess-language.el :TITLE: GitHub - tmalsburg/guess-language.el: Emacs minor mode that detects the language you're typing in. Automatically switches spell checker. Supports multiple languages per document.

TODO Emacs as a translator's tool   emacs translation

CNCL Flycheck Eask

  • State "CNCL" from "TODO" [2024-07-03 Wed 10:23]
    Eask is mainly for development.

DONE Recoll

  • State "DONE" from "TODO" [2023-08-18 Fri 13:05]

TODO Blocked repairing actionable.org from org-gtd-refilegroup-p error · Issue #209 · Trevoke/org-gtd.el · GitHub

Recompile all Emacs packages with

   (byte-recompile-directory package-user-dir nil :force)

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

SCHEDULED: <2024-09-01 Sun .+1y>

<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

SCHEDULED: <2024-08-14 Wed +3d>

  • 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

SCHEDULED: <2024-02-14 Wed +1d>

excercise repeats
Biceps curl 40
Seated chest press 145
Shoulder press 25
Leg press 130
Abdominal 8
Chest press 70

TODO Metformin

SCHEDULED: <2024-02-14 Wed +1d>

Take metformin on off days, with a meal, because it is heavy on the stomach

NEXT Meditate

SCHEDULED: <2024-02-15 Thu +1d>

  • 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

SCHEDULED: <2024-08-27 Tue +1w>

  • 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

SCHEDULED: <2024-02-19 Mon +1d>

  • 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

SCHEDULED: <2027-02-12 Fri +1y>

<2027-03-16 Tue .+1y>

TODO Spanish   languages

SCHEDULED: <2024-07-15 Mon +1d>

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