diff --git a/blog.json b/blog.json index fa6062e..f561146 100644 --- a/blog.json +++ b/blog.json @@ -398,7 +398,7 @@ "1-million": { "title": "1 million !", "description": "ari-web just hit 1000000 visits", - "content": "HEYY !!!\n\nARI-WEB HAS OFFICIALLY PROCESSED ONE MILLION REQUESTS WHICH IS HELLA EPIC\n\nmy friend, who goes by [LDA](https://freetards.xyz/) online got the 1000000 th request and omg thats so fucking satisfying\nand epic : \n\nHUGE thanks to all of you for giving me the numbers and a platform :D", + "content": "HEYY !!!\n\nARI-WEB HAS OFFICIALLY PROCESSED ONE MILLION REQUESTS WHICH IS HELLA EPIC\n\nmy friend, who goes by [LDA](https://freetards.xyz/) online got the 1000000 th request and omg thats so fucking satisfying\nand epic :\n\n<@:b9abe926ef51ca448d61381d2d8ffd1822363cbe289ac458c4b1d2fdae01b469>\n\nHUGE thanks to all of you for giving me the numbers and a platform :D", "keywords": [ "achievement", "one million" @@ -906,7 +906,7 @@ "domain-donations-updates": { "title": "domain and donations updates", "description": "here i express my graditude towards my first donation and update on the domain migration situation", - "content": "hello\n\n1. domains under now redirect to \n2. today i got my first donation from **mario g.** on **paypal**, added them to the [thanks page](https://ari.lt/thanks) which i just created\n3. tmrw a page dedicated to my best friend, casey, is coming, as she's the one who supported me through everything for many yrs and recently even contributed to ari-web by buying me `ari.lt` :)\n\nthanks everyone\n\ntil next time\n\nari\n\n2023/11/30", + "content": "hello\n\n1. domains under ari-web.xyz now redirect to \n2. today i got my first donation from **mario g.** on **paypal**, added them to the [thanks page](https://ari.lt/thanks) which i just created\n3. tmrw a page dedicated to my best friend, casey, is coming, as she's the one who supported me through everything for many yrs and recently even contributed to ari-web by buying me `ari.lt` :)\n\nthanks everyone\n\ntil next time\n\nari\n\n2023/11/30", "keywords": [ "domain", "ari-web donation", @@ -918,7 +918,7 @@ "arilt-new-ariweb-domain": { "title": "ari.lt -- new ari-web domain", "description": "switching domains from ari-web.xyz to ari.lt including some other changes", - "content": "hello\n\ni am here to announce the new domain name -- \n\n`ari-web.xyz` will stay up til january 11 th iirc of 2025 and `ari.lt` so far is paid for til\n2024/11/25 by my best friend casey, xD\n\n## why\n\na long while ago i looked into `ari.lt` but i can't recall why i didn't take it, i assume it was either\nasking me for id verification or i already had `ari-web.xyz` at the time, idk, but i didn't think\nmuch of it xD\n\nwell, not too long ago a person ( can't recall who ) pointed out that `ari.lt` is still available,\nand i wanted it, but due to some stuff in family i couldn't get it, like i have the funds for it and\nall just that there's one wall standing against me lol\n\nwell, today i said fuck it, ill pay double and throw more money into the wall hoping it breaks\ndown, i would've paid double for the domain, and my best friend found out and she bought it\nfor me, that was honestly a night and a half lol, im shook til now,, i'm not used to this type\nof thing xD\n\nbut welp, in the year i have i will find a way to pay for it in the following years, but i think\ni might be able to as i'm going into freelancing soon[tm] ( i can't right now as i'm pretty sick )\nand im turning 18 soon enough ( in a couple of years ) and in the mean time i might be able to\nconvince the wall to open up my card or let me use theirs xD\n\nso in the next couple of months, probably like a good 3-4 months, i will be migrating from `ari-web.xyz`\nto `ari.lt` -- it looks better, is shorter, i am indeed ari and i am, in fact, lithuania ( !11!!11 )\n\n`ari-web.xyz` should begin redirecting people to `ari.lt` soon enough ( give it a couple of days )\nand at the same time `ari.lt` will go up\n\n## following changes to ari-web\n\n- github username change, possibly a github org under `TruncatedDinoSour` coming\n- more resources as time goes\n - ref to \n- less content at least for now as i'm pretty busy and overwhelmed with life\n- `ari-web.xyz` might get taken by someone at 2025/01/11 ( iirc that's the expiry ) and `ari.lt` will become the only domain\n - i'm most likely not paying for `ari-web.xyz` anymore to renew it\n- i am definitely giving casey her own page for the funny, because without her i wouldn't've bought `ari.lt`\n\nat the current stage there will be a lot of transitional periods in my life and on ari-web\nand it'll be apparent by possibly instability, missing features and unavailable resources\n\nsorry for any downtime, dns and https weirdness, resources missing and stuff like that xD\n\nari\n\n2023/11/24", + "content": "hello\n\ni am here to announce the new ari-web.xyz domain name -- \n\n`ari-web.xyz` will stay up til january 11 th iirc of 2025 and `ari.lt` so far is paid for til\n2024/11/25 by my best friend casey, xD\n\n## why\n\na long while ago i looked into `ari.lt` but i can't recall why i didn't take it, i assume it was either\nasking me for id verification or i already had `ari-web.xyz` at the time, idk, but i didn't think\nmuch of it xD\n\nwell, not too long ago a person ( can't recall who ) pointed out that `ari.lt` is still available,\nand i wanted it, but due to some stuff in family i couldn't get it, like i have the funds for it and\nall just that there's one wall standing against me lol\n\nwell, today i said fuck it, ill pay double and throw more money into the wall hoping it breaks\ndown, i would've paid double for the domain, and my best friend found out and she bought it\nfor me, that was honestly a night and a half lol, im shook til now,, i'm not used to this type\nof thing xD\n\nbut welp, in the year i have i will find a way to pay for it in the following years, but i think\ni might be able to as i'm going into freelancing soon[tm] ( i can't right now as i'm pretty sick )\nand im turning 18 soon enough ( in a couple of years ) and in the mean time i might be able to\nconvince the wall to open up my card or let me use theirs xD\n\nso in the next couple of months, probably like a good 3-4 months, i will be migrating from `ari-web.xyz`\nto `ari.lt` -- it looks better, is shorter, i am indeed ari and i am, in fact, lithuania ( !11!!11 )\n\n`ari-web.xyz` should begin redirecting people to `ari.lt` soon enough ( give it a couple of days )\nand at the same time `ari.lt` will go up\n\n## following changes to ari-web\n\n- github username change, possibly a github org under `TruncatedDinoSour` coming\n- more resources as time goes\n - ref to \n- less content at least for now as i'm pretty busy and overwhelmed with life\n- `ari-web.xyz` might get taken by someone at 2025/01/11 ( iirc that's the expiry ) and `ari.lt` will become the only domain\n - i'm most likely not paying for `ari-web.xyz` anymore to renew it\n- i am definitely giving casey her own page for the funny, because without her i wouldn't've bought `ari.lt`\n\nat the current stage there will be a lot of transitional periods in my life and on ari-web\nand it'll be apparent by possibly instability, missing features and unavailable resources\n\nsorry for any downtime, dns and https weirdness, resources missing and stuff like that xD\n\nari\n\n2023/11/24", "keywords": [ "changes", "github", @@ -935,7 +935,7 @@ "support-ariweb": { "title": "support ari-web", "description": "support ari-webs creator ari archer through multiple means -- paypal and bitcoin", - "content": "hello, if u want to support me and the costs of ari-web ur free to support me in the following means\n\n- -- bitcoin\n- -- paypal\n\ni just set up paypal donations so if u wanna ur free to, although no obligation, the\n thing costs me the most and on current money i cant\nafford good hardware, but maybe w support of the community i could get better resources for\nthe server and provide ppl w one of my goals -- free hosting, which i cant rlly do reliably\ncurrently\n\ncya :3", + "content": "hello, if u want to support me and the costs of ari-web ur free to support me in the following means\n\n- -- litecoin\n- -- monero\n\ni just set up paypal donations so if u wanna ur free to, although no obligation, the\n thing costs me the most and on current money i cant\nafford good hardware, but maybe w support of the community i could get better resources for\nthe server and provide ppl w one of my goals -- free hosting, which i cant rlly do reliably\ncurrently\n\ncya :3", "keywords": [ "bitcoin", "paypal", @@ -946,7 +946,7 @@ "ariweb-server-update-2": { "title": "ari-web server ( update #2 )", "description": "ari-web server update ( its up ! )", - "content": "**delay notice, shift of deadline** -- due to physical and mental health reasons i will b extending my deadline to 2023/11/27 or even longer, thanks for understanding\n\nits up !\n\ni have bought `62.171.174.136`, and honestly so far -- so much better than linode\n\nwill finish and itll b up, probs in the next 6 days\n\nthx", + "content": "**delay notice, shift of deadline** -- due to physical and mental health reasons i will b extending my deadline to 2023/11/27 or even longer, thanks for understanding\n\nits up !\n\ni have bought `62.171.174.136`, and honestly so far -- so much better than linode\n\nwill finish and itll b up, probs in the next 6 days\n\nthx", "keywords": [ "server", "contabo", @@ -958,7 +958,7 @@ "comparing-hosting-providers-serverariwebxyz": { "title": "comparing hosting providers for server.ari-web.xyz", "description": "comparing a few hosting providers for server.ari-web.xyz -- i decided to use contabo", - "content": "update for : i will use contabo\n\nupdate **2024-08-04** : decided to switch away from contabo, see \n\nall money will b presented in euro, if its in dollars, will b converted to euro\n\n## scoring\n\nthe score is a number determining how good a service is for me, i assign arbitrary numbers\nto each point depending on my needs and quality of the provided feature, higher is better,\nnegative doesnt mean horrible, treat it as an infinite range rather than a solid score\nout of `n`, higher is better\n\n## providers that i considered\n\nkeep in mind, i looked into many ( and i mean MANY ) more providers,\nbut if i saw its too expensive i didnt even bother\n\n### [hetzner](https://www.hetzner.com/)\n\n- great performance +1.8\n- german based +0.5\n- people have reported facing issues with packet loss -1\n- great cost ( 4.51 cheapest ( 1 intel code, 2 gig ram, 20 gig storage, 20 tb traffic ), 6.37 good enough for me ( 2 intel cores, 4 gig ram, 40 gig storage, 20 tb traffic ) ) +1\n - price range 4.38 to 58.06\n- good reliability +0.85\n- extreme handling for pay, if u dont pay they might lock and erase ur server -1\n- people complained about support -0.5\n- they require id verification ( !! ) -2\n- bad customer support -0.1\n- 20 euro if they consider u a 'high risk' -1\n- control and monitoring -0.35\n - extreme handling of abuse reports\n- dictatorship-esque company model, shutdown with no notice -0.4\n- good security practices +0.8\n- good quality in the long term +1\n\noverall score : -1.4\n\n### [contabo](https://contabo.com/)\n\n**this section has been edited**\n\n- bad performance issues, esp with disk and network -1 -- actually, the performance is MUCH better than linode's nanonode, still could be better +0.5\n- great price +1.8\n - funny prices for add-ons tho, which r useless bc they can b achieved by doing it all urself\n - price range from 4.5 to 31.49\n- generous resources ( for example 8 gig ram, 50 gig nvme or 200 gig ssd and 32 tb traffic ( outgoing, incoming is any ) for just 4.5 euro ) +1.1\n- a lot of downtime, almost daily downtime of 10 mins to 4 hours -2 -- false rumours i think, so far i've had no downtime and it all looks good, i don't get the complaints, +2\n- eco friendly +0.6\n- absolutely horrible customer support who dont know anything -0.3 -- false, customer support is more than okay +0.3\n- unreliable due to maintenance, issues following it and sometimes servers get locked out, and with added horrible support -1.2\n- the company and their policy is described as a 'scam' -1\n- german standards +0.5\n- extremely strict treating of payment, just like dictatorship-esque company model w hetzner, but on meth -0.8\n- issues regarding packet and data loss -0.45\n- ootb ddos protection +0.5\n\noverall score : -2.25\n\n**edited** overall score : 0.55\n\n### [ovhcloud](https://www.ovhcloud.com/)\n\n- good price +0.4\n - from 5.39 euro to 34.29 euro\n- questionable hardware for the price -0.2\n - cheapest plan : 1 core, 2 gig ram, 40 gig nvme ssd, 250 mbps, ipv6 access, unlimited bandwidth\n- good uptime -- 99.9% +0.5\n- good performance +0.5\n- horrible support -0.2\n- ddos protection +0.5\n- bloat, but not as much as hostinger -0.3\n- horrible customer experience -0.8\n- common billing issues with no refund or support -1.5\n- europe based ( france ) +0.1\n\noverall score : -1\n\n### [alphavps](https://alphavps.com/)\n\n- fine price and good selection of plans +0.3\n - from 3.99 to 63.99\n- fine hardware for the price +0.3\n - for example 8 euro a month for 2 cores, 8 gig ram, 45 gb nvme ssd and 4 tb bandwidth\n- great performance +1\n- bad, or even non-existant ddos protection, false advertisement -0.5\n- good refund policy +0.5\n- small storage -1\n- europe based +0.5\n- overcharge on attacks instead of shutting down the server or notifying beforehand -0.3\n\ntotal score : 0.8\n\n### [netcup](https://netcup.eu/)\n\n- good deal for the hardware u get +0.8\n - price range is 3.25 to 44.67\n- a great ratio between cost and hardware +1\n - the cheapest plan, 3.25, has 2 cores, 2 gig ram, 40 gig ssd and 80 tb traffic\n- ddos protection +0.5\n- horrible network performance -1\n- overcharge you, dont let u terminate the contract -1\n- good uptime +0.3\n- reliable network and storage +0.3\n\ntotal score : 0.9\n\n### [ssdnodes](https://www.ssdnodes.com/)\n\n- extremely great cost for hardware +2\n- inflexible plans -0.5\n- great performance with some instability +0.9\n- questionable customer support -0.04\n- they dont support stuff like rdns -0.5\n\ntotal score : 1.86\n\n### [hostkey](https://hostkey.com/)\n\n- good prices for hardware +0.5\n - for 5 euro u can get 50 gig ssd, 4 cores, and 4 gig of ram\n- good customer support +0.22\n- stable and reliable +1\n- loads of plans, much flexibility +0.2\n- lack of specific storage options -0.5\n- europe based +0.5\n- frequent downtimes ( once a month ) -1\n\ntotal score : 0.92\n\n### other possible options\n\n- -- seems extremely sketchy but the prices tho\n\n## considering\n\nwell, before i considered hetzner, although now its out of my list, here is the things\nim considering from least likely to use to most likely to use :\n\n1. alphavps -- good ratio for the hardware and price, high performance, although low hardware compared to smt like contabo and false advertisement\n2. contabo -- very cheap, great prices, even though the reviews r nothing but horror stories i talked to a couple of ppl who have used contabo srsly before and i think thts the one ill go for server.ari-web.xyz\n3. hostkey -- good prices, good customer support, although frequent downtimes, although tht might as well b the same horror stories as w contabo\n4. netcup -- good prices, but, people have pointed out how sketchy it seems and their resources dont compare to contabo\n5. hostbrr -- extremely sketchy, but attractive prices, i will do anything to avoid this, but i saw positive reviews", + "content": "update for : i will use contabo\n\nupdate **2024-08-04** : decided to switch away from contabo, see \n\nall money will b presented in euro, if its in dollars, will b converted to euro\n\n## scoring\n\nthe score is a number determining how good a service is for me, i assign arbitrary numbers\nto each point depending on my needs and quality of the provided feature, higher is better,\nnegative doesnt mean horrible, treat it as an infinite range rather than a solid score\nout of `n`, higher is better\n\n## providers that i considered\n\nkeep in mind, i looked into many ( and i mean MANY ) more providers,\nbut if i saw its too expensive i didnt even bother\n\n### [hetzner](https://www.hetzner.com/)\n\n- great performance +1.8\n- german based +0.5\n- people have reported facing issues with packet loss -1\n- great cost ( 4.51 cheapest ( 1 intel code, 2 gig ram, 20 gig storage, 20 tb traffic ), 6.37 good enough for me ( 2 intel cores, 4 gig ram, 40 gig storage, 20 tb traffic ) ) +1\n - price range 4.38 to 58.06\n- good reliability +0.85\n- extreme handling for pay, if u dont pay they might lock and erase ur server -1\n- people complained about support -0.5\n- they require id verification ( !! ) -2\n- bad customer support -0.1\n- 20 euro if they consider u a 'high risk' -1\n- control and monitoring -0.35\n - extreme handling of abuse reports\n- dictatorship-esque company model, shutdown with no notice -0.4\n- good security practices +0.8\n- good quality in the long term +1\n\noverall score : -1.4\n\n### [contabo](https://contabo.com/)\n\n**this section has been edited**\n\n- bad performance issues, esp with disk and network -1 -- actually, the performance is MUCH better than linode's nanonode, still could be better +0.5\n- great price +1.8\n - funny prices for add-ons tho, which r useless bc they can b achieved by doing it all urself\n - price range from 4.5 to 31.49\n- generous resources ( for example 8 gig ram, 50 gig nvme or 200 gig ssd and 32 tb traffic ( outgoing, incoming is any ) for just 4.5 euro ) +1.1\n- a lot of downtime, almost daily downtime of 10 mins to 4 hours -2 -- false rumours i think, so far i've had no downtime and it all looks good, i don't get the complaints, +2\n- eco friendly +0.6\n- absolutely horrible customer support who dont know anything -0.3 -- false, customer support is more than okay +0.3\n- unreliable due to maintenance, issues following it and sometimes servers get locked out, and with added horrible support -1.2\n- the company and their policy is described as a 'scam' -1\n- german standards +0.5\n- extremely strict treating of payment, just like dictatorship-esque company model w hetzner, but on meth -0.8\n- issues regarding packet and data loss -0.45\n- ootb ddos protection +0.5\n\noverall score : -2.25\n\n**edited** overall score : 0.55\n\n### [ovhcloud](https://www.ovhcloud.com/)\n\n- good price +0.4\n - from 5.39 euro to 34.29 euro\n- questionable hardware for the price -0.2\n - cheapest plan : 1 core, 2 gig ram, 40 gig nvme ssd, 250 mbps, ipv6 access, unlimited bandwidth\n- good uptime -- 99.9% +0.5\n- good performance +0.5\n- horrible support -0.2\n- ddos protection +0.5\n- bloat, but not as much as hostinger -0.3\n- horrible customer experience -0.8\n- common billing issues with no refund or support -1.5\n- europe based ( france ) +0.1\n\noverall score : -1\n\n### [alphavps](https://alphavps.com/)\n\n- fine price and good selection of plans +0.3\n - from 3.99 to 63.99\n- fine hardware for the price +0.3\n - for example 8 euro a month for 2 cores, 8 gig ram, 45 gb nvme ssd and 4 tb bandwidth\n- great performance +1\n- bad, or even non-existant ddos protection, false advertisement -0.5\n- good refund policy +0.5\n- small storage -1\n- europe based +0.5\n- overcharge on attacks instead of shutting down the server or notifying beforehand -0.3\n\ntotal score : 0.8\n\n### [netcup](https://netcup.eu/)\n\n- good deal for the hardware u get +0.8\n - price range is 3.25 to 44.67\n- a great ratio between cost and hardware +1\n - the cheapest plan, 3.25, has 2 cores, 2 gig ram, 40 gig ssd and 80 tb traffic\n- ddos protection +0.5\n- horrible network performance -1\n- overcharge you, dont let u terminate the contract -1\n- good uptime +0.3\n- reliable network and storage +0.3\n\ntotal score : 0.9\n\n### [ssdnodes](https://www.ssdnodes.com/)\n\n- extremely great cost for hardware +2\n- inflexible plans -0.5\n- great performance with some instability +0.9\n- questionable customer support -0.04\n- they dont support stuff like rdns -0.5\n\ntotal score : 1.86\n\n### [hostkey](https://hostkey.com/)\n\n- good prices for hardware +0.5\n - for 5 euro u can get 50 gig ssd, 4 cores, and 4 gig of ram\n- good customer support +0.22\n- stable and reliable +1\n- loads of plans, much flexibility +0.2\n- lack of specific storage options -0.5\n- europe based +0.5\n- frequent downtimes ( once a month ) -1\n\ntotal score : 0.92\n\n### other possible options\n\n- -- seems extremely sketchy but the prices tho\n\n## considering\n\nwell, before i considered hetzner, although now its out of my list, here is the things\nim considering from least likely to use to most likely to use :\n\n1. alphavps -- good ratio for the hardware and price, high performance, although low hardware compared to smt like contabo and false advertisement\n2. contabo -- very cheap, great prices, even though the reviews r nothing but horror stories i talked to a couple of ppl who have used contabo srsly before and i think thts the one ill go for server.ari-web.xyz\n3. hostkey -- good prices, good customer support, although frequent downtimes, although tht might as well b the same horror stories as w contabo\n4. netcup -- good prices, but, people have pointed out how sketchy it seems and their resources dont compare to contabo\n5. hostbrr -- extremely sketchy, but attractive prices, i will do anything to avoid this, but i saw positive reviews", "keywords": [ "virtual private server", "chap", @@ -978,7 +978,7 @@ "notice-temporary-shutdown-serverariwebxyz": { "title": "notice : temporary shutdown of server.ari-web.xyz", "description": "i am switching from linode to hetzner for server.ari-web.xyz, expect outages from 2023/11/01 to 2023/11/29", - "content": "hello\n\n**notice** the server has been shut down at 2023/10/30\n\n**update 2023/11/02** : i will use contabo, \n\n**update 2024/08/04** : decided to switch away from contabo, see \n\ncurrently is hosted on linode and i pay 6.05 dollars ( w tax,\n5 dollars wout tax ) for the following resources :\n\n- 1 gig ram\n- 20 gig storage\n- 1 core\n- 25 gig storage\n\nand i host it in germany, frankfurt to b more specific\n\nand well, i think thts quite a bad deal, esp comparing to other providers, this is where\n comes in, i will get the 5.18 euro plan a month with these resources :\n\n- 2 cores ( amd )\n- 2 gig ram\n- 40 gig storage\n- 20 tb traffic\n- germany ( just as before )\n\nor maybe the 6.37 euro plan which has all the above with the following changes :\n\n- 2 cores ( intel this time )\n- 4 gig ram\n\nanother option i considered was for 6 dollars a month with :\n\n- 2 cores ( amd )\n- 4 gig ram\n- 20 gig storage\n- 1 tb traffic\n\nand i think even though its an upgrade, i chose hetzner for these reasons :\n\n- its a germany-based company, so immediately european and german privacy laws come in place, which r great\n- its cheaper than hosthatch and provides competitive prices meaning good product of a small price\n- provides bare bones -- no bloat, just a server, do whatever u want w it\n- performance -- its known for its high performance and enterprise-level standards\n\nalthough ive heard hosthatch has following advantages :\n\n- more data center locations -- u can have more location options, but i rlly just need germany, nothing else\n- stability -- ive heard tht hosthatch is more stable in pricing and server\n- better customer support -- they respond faster\n\nand the shutdown of the server will happen anywhere from 2023/11/01 to 2023/11/03, the new server is expected\nto go up anywhere from 2023/11/17 to 2023/11/29, dont b surprised if some parts of ari-web ( most major being\ncomments and visitor count ) go down and dont go up for a couple of weeks\n\nenjoy the last few days of the old server til the new one comes up", + "content": "hello\n\n**notice** the server has been shut down at 2023/10/30\n\n**update 2023/11/02** : i will use contabo, \n\n**update 2024/08/04** : decided to switch away from contabo, see \n\ncurrently server.ari-web.xyz is hosted on linode and i pay 6.05 dollars ( w tax,\n5 dollars wout tax ) for the following resources :\n\n- 1 gig ram\n- 20 gig storage\n- 1 core\n- 25 gig storage\n\nand i host it in germany, frankfurt to b more specific\n\nand well, i think thts quite a bad deal, esp comparing to other providers, this is where\n comes in, i will get the 5.18 euro plan a month with these resources :\n\n- 2 cores ( amd )\n- 2 gig ram\n- 40 gig storage\n- 20 tb traffic\n- germany ( just as before )\n\nor maybe the 6.37 euro plan which has all the above with the following changes :\n\n- 2 cores ( intel this time )\n- 4 gig ram\n\nanother option i considered was for 6 dollars a month with :\n\n- 2 cores ( amd )\n- 4 gig ram\n- 20 gig storage\n- 1 tb traffic\n\nand i think even though its an upgrade, i chose hetzner for these reasons :\n\n- its a germany-based company, so immediately european and german privacy laws come in place, which r great\n- its cheaper than hosthatch and provides competitive prices meaning good product of a small price\n- provides bare bones -- no bloat, just a server, do whatever u want w it\n- performance -- its known for its high performance and enterprise-level standards\n\nalthough ive heard hosthatch has following advantages :\n\n- more data center locations -- u can have more location options, but i rlly just need germany, nothing else\n- stability -- ive heard tht hosthatch is more stable in pricing and server\n- better customer support -- they respond faster\n\nand the shutdown of the server will happen anywhere from 2023/11/01 to 2023/11/03, the new server is expected\nto go up anywhere from 2023/11/17 to 2023/11/29, dont b surprised if some parts of ari-web ( most major being\ncomments and visitor count ) go down and dont go up for a couple of weeks\n\nenjoy the last few days of the old server til the new one comes up", "keywords": [ "hetzner", "hosting", @@ -1018,7 +1018,7 @@ "happy-3-rd-bday-ariweb": { "title": "happy 3 rd bday, ari-web", "description": "celebrating 3 amazing yrs working on ari web, thank you for everything", - "content": "happy 3 rd birthday ppl, thank you so much for staying w me for 3 yrs already,\nits crazy how fast time flies, thank you so much for giving me a platform to express\nmyself and develop my open source profile\n\nmany things have changed since ive started this website, it all started from a simple\nblog and now im at the point where i have the infrastructure to automate blog posts, have\ncomments and even think abt helping other people develop their blogs to change this\nblogless world into what it was back then, i love blogs sm lol\n\nbut anyway, i just wanted to thank all of u for still visiting my website, reading my\ncontent and ofc the people who send me articles abt how trans women arent women\nand that climate change is actually a hoax developed by nazis or some shit xDDD\n\nalthough, 3 yrs in, from now on u can probably expect more changes :\n\n- this period of my life im trying to fuck around in lower level things and c more\n- this yr i wanna get fluent in assembly rather than just some fuckery\n- i barely, basically never do stuff w guis, i think 2024 will b the yr i try to do something\n- on top of that, ill have to get a job, meaning development of everything might slow down\n - although im going to try to balance everything out\n\nthank u for watching me grow and bringing my website from measly rants into what it is today,\ni sincerely thank all of you for being the people who mightve not directly influenced the\noutcome, but were together with me, this means a lot to me\n\ncya next time :)\n\n", + "content": "happy 3 rd birthday ppl, thank you so much for staying w me for 3 yrs already,\nits crazy how fast time flies, thank you so much for giving me a platform to express\nmyself and develop my open source profile\n\nmany things have changed since ive started this website, it all started from a simple\nblog and now im at the point where i have the infrastructure to automate blog posts, have\ncomments and even think abt helping other people develop their blogs to change this\nblogless world into what it was back then, i love blogs sm lol\n\nbut anyway, i just wanted to thank all of u for still visiting my website, reading my\ncontent and ofc the people who send me articles abt how trans women arent women\nand that climate change is actually a hoax developed by nazis or some shit xDDD\n\nalthough, 3 yrs in, from now on u can probably expect more changes :\n\n- this period of my life im trying to fuck around in lower level things and c more\n- this yr i wanna get fluent in assembly rather than just some fuckery\n- i barely, basically never do stuff w guis, i think 2024 will b the yr i try to do something\n- on top of that, ill have to get a job, meaning development of everything might slow down\n - although im going to try to balance everything out\n\nthank u for watching me grow and bringing my website from measly rants into what it is today,\ni sincerely thank all of you for being the people who mightve not directly influenced the\noutcome, but were together with me, this means a lot to me\n\ncya next time :)\n\n<@:d4d01a7052822c08567dc62578a5574b26e15792c713da83a1a96830b378d568>", "keywords": [ "thank you", "personal website", @@ -1097,7 +1097,7 @@ "omg-pls-stop": { "title": "omg pls stop", "description": "dealing with ddos attacks and online harassment from some random idiots online ugh", - "content": "today i came back from school to see ddosed, the visitor count\nwas dead and made HUGE, the server was laggy and in general being stupid, fuckton of errors, fuckton of anti-semitism\n( im not even jewish ),\ntransphobia, racism ( im white while ur calling me the n word bro ), etc,, its all so fucking stupid, do u rlly not\nhave anything else to do besides ddos an api written by a 15 yr old, anyway, its all fixed now, the server\nwas malfunctioning for say like from 2023/09/06 01:00 til 2023/09/06 10:00 GMT, so 9 hours, i am sorry it took me this long\nto notice that, but well, some people have to attend school lol\n\nanyway, i dont get any of this lol, its so stupid, if i have to ill implement harder measures to limit people even more,\nuntil then if i see another attack like this i wont handle it gently lol, i am tired of this bullshit being thrown at me\ndaily, i have a life, i have exams, i have tests and shit and if i have to i will shut down the server as a whole leaving\nthe static part in\n\nnow please stfu with ur ddosing shit and let me read and do my hw, i couldve been doing that if i\nhavent had to fix this lol\n\ndanke and fuck u for like the 3 rd time this yr lol, whoever u r anyway", + "content": "today i came back from school to see server.ari-web.xyz ddosed, the visitor count\nwas dead and made HUGE, the server was laggy and in general being stupid, fuckton of errors, fuckton of anti-semitism\n( im not even jewish ),\ntransphobia, racism ( im white while ur calling me the n word bro ), etc,, its all so fucking stupid, do u rlly not\nhave anything else to do besides ddos an api written by a 15 yr old, anyway, its all fixed now, the server\nwas malfunctioning for say like from 2023/09/06 01:00 til 2023/09/06 10:00 GMT, so 9 hours, i am sorry it took me this long\nto notice that, but well, some people have to attend school lol\n\nanyway, i dont get any of this lol, its so stupid, if i have to ill implement harder measures to limit people even more,\nuntil then if i see another attack like this i wont handle it gently lol, i am tired of this bullshit being thrown at me\ndaily, i have a life, i have exams, i have tests and shit and if i have to i will shut down the server as a whole leaving\nthe static part in\n\nnow please stfu with ur ddosing shit and let me read and do my hw, i couldve been doing that if i\nhavent had to fix this lol\n\ndanke and fuck u for like the 3 rd time this yr lol, whoever u r anyway", "keywords": [ "ddos", "racism", @@ -1357,7 +1357,7 @@ "george-orwell-1984": { "title": "george orwell -- 1984", "description": "1984 my beloved <3", - "content": "## warning : this post includes spoilers !!\n### ( if u want my work, im happy to share it, although its in lithuanian, email me : [ari.web.xyz@gmail.com](mailto:ari.web.xyz@gmail.com) )\n\ni just finished reading 1984 as i needed to pick a book to read for school\nand i already wanted to read it so yeah, i found a lithuanian translation and\nit was honestly extremely good\n\nbasically of a summery of my work\n\n> Throughout their diary entries, the reader provides a comprehensive and engaging account\n> of their journey through \"1984\" by George Orwell. The reader discusses each chapter\n> or section of the book that they have read, summarizing the events and themes\n> covered and providing their own thoughts and insights.\n>\n> The reader notes the pervasive and extreme methods of control used by the Party,\n> including censorship, propaganda, and surveillance, which are designed to maintain complete\n> obedience and conformity among the population. The reader also describes how Winston's character\n> is subjected to torture, brainwashing, and degradation, leading to his ultimate subjugation and submission to the Party.\n>\n> The reader expresses their admiration for the book's writing style, which\n> they describe as engaging, well-crafted, and emotionally resonant. The reader notes\n> that some parts of the story are difficult to read due to their disturbing and emotionally\n> intense nature, but also acknowledges the book's ability to\n> provoke strong emotional reactions and convey important messages about power, control, and individual freedom.\n>\n> In addition, the reader provides an in-depth analysis of various themes and motifs in the book, such as the nature of truth,\n> the power of language and thought, and the dangers of authoritarianism. The reader also reflects on their\n> own experiences and emotions while reading the book, offering a personal and vulnerable perspective on the story.\n>\n> In the end, the reader gives the book a rating of 11/10 and highly recommends it to others. The reader's diary entries are a\n> thoughtful, nuanced, and comprehensive analysis of \"1984\" and its themes, while also conveying the emotional\n> impact of the story on the reader.\n\nbasically, i found book very interesting, the beginning and middle were very fun to read, but\nthe end was scary, basically, even though i didnt have much to say, i liked it, it showed how winston\nchanges over time and stuff, how winston gets so brainwashed into submission by the party into loving\nbig brother, how he falls into submission that 2 + 2 can be anything, how he and jualia betrayed\none another and what at first seemed fluffy love with a cliche storyline, it ended in a heartbreaking\nstop to their relationship and then the death of winston with his brainwashed and crushed personality\nafter a lot of torture and jailing\n\nits a very engaging story with an interesting storyline, ive only read one good ( but not as good )\nbook, white shroud ( baltoji drobul\u0117 ) by antanas \u0161k\u0117ma, both had a very nice story line and i really\nenjoyed reading them, both of them showed strong emotion which i really liked, characters faced trouble\nin life but somehow managed and overall they were good books\n\nwhile reading 1984 i made this blog post -- and\n1984 was an inspiration for me even though i already used that term before ive read it, thats why\n1984 still stands to this day, in the age where companies get a monopoly on peoples data and algorithms\nso good to keep u on there its like the party shoving u into its ideologistic system, which many people\nare brainwashed, like winston at the end, to not resist and follow their trails without saying a word\n\none of the most striking parts for me is how much impact totalitarianism makes to a human mind, winston\nwas healthy and was correct, party should be overthrown and is not stable, it is an oppressive mess\nbuilt on hate and discrimination, but then they turned him into a weak bag of bones which was easily\nforced into submission and their ideology, they turned him into a toy without any will or identity\n\nto conclude, i think anyone interested in power, control, truth and individual freedom should read it, its\na lovely and interesting book and i think a lot of people would enjoy it\n\nhave a nice day, hopefully i peaked your interest a bit :)\n", + "content": "## warning : this post includes spoilers !!\n### ( if u want my work, im happy to share it, although its in lithuanian, email me : [ari.web.xyz@gmail.com](mailto:ari.web.xyz@gmail.com) )\n\ni just finished reading 1984 as i needed to pick a book to read for school\nand i already wanted to read it so yeah, i found a lithuanian translation and\nit was honestly extremely good\n\nbasically of a summery of my work\n\n> Throughout their diary entries, the reader provides a comprehensive and engaging account\n> of their journey through \"1984\" by George Orwell. The reader discusses each chapter\n> or section of the book that they have read, summarizing the events and themes\n> covered and providing their own thoughts and insights.\n>\n> The reader notes the pervasive and extreme methods of control used by the Party,\n> including censorship, propaganda, and surveillance, which are designed to maintain complete\n> obedience and conformity among the population. The reader also describes how Winston's character\n> is subjected to torture, brainwashing, and degradation, leading to his ultimate subjugation and submission to the Party.\n>\n> The reader expresses their admiration for the book's writing style, which\n> they describe as engaging, well-crafted, and emotionally resonant. The reader notes\n> that some parts of the story are difficult to read due to their disturbing and emotionally\n> intense nature, but also acknowledges the book's ability to\n> provoke strong emotional reactions and convey important messages about power, control, and individual freedom.\n>\n> In addition, the reader provides an in-depth analysis of various themes and motifs in the book, such as the nature of truth,\n> the power of language and thought, and the dangers of authoritarianism. The reader also reflects on their\n> own experiences and emotions while reading the book, offering a personal and vulnerable perspective on the story.\n>\n> In the end, the reader gives the book a rating of 11/10 and highly recommends it to others. The reader's diary entries are a\n> thoughtful, nuanced, and comprehensive analysis of \"1984\" and its themes, while also conveying the emotional\n> impact of the story on the reader.\n\nbasically, i found book very interesting, the beginning and middle were very fun to read, but\nthe end was scary, basically, even though i didnt have much to say, i liked it, it showed how winston\nchanges over time and stuff, how winston gets so brainwashed into submission by the party into loving\nbig brother, how he falls into submission that 2 + 2 can be anything, how he and jualia betrayed\none another and what at first seemed fluffy love with a cliche storyline, it ended in a heartbreaking\nstop to their relationship and then the death of winston with his brainwashed and crushed personality\nafter a lot of torture and jailing\n\nits a very engaging story with an interesting storyline, ive only read one good ( but not as good )\nbook, white shroud ( baltoji drobul\u0117 ) by antanas \u0161k\u0117ma, both had a very nice story line and i really\nenjoyed reading them, both of them showed strong emotion which i really liked, characters faced trouble\nin life but somehow managed and overall they were good books\n\nwhile reading 1984 i made this blog post -- and\n1984 was an inspiration for me even though i already used that term before ive read it, thats why\n1984 still stands to this day, in the age where companies get a monopoly on peoples data and algorithms\nso good to keep u on there its like the party shoving u into its ideologistic system, which many people\nare brainwashed, like winston at the end, to not resist and follow their trails without saying a word\n\none of the most striking parts for me is how much impact totalitarianism makes to a human mind, winston\nwas healthy and was correct, party should be overthrown and is not stable, it is an oppressive mess\nbuilt on hate and discrimination, but then they turned him into a weak bag of bones which was easily\nforced into submission and their ideology, they turned him into a toy without any will or identity\n\nto conclude, i think anyone interested in power, control, truth and individual freedom should read it, its\na lovely and interesting book and i think a lot of people would enjoy it\n\nhave a nice day, hopefully i peaked your interest a bit :)\n", "keywords": [ "1984", "totalitarianism", @@ -1385,7 +1385,7 @@ "transphobia": { "title": "transphobia", "description": "basically a dupe of 'transgender' post without me even knowing lol", - "content": "omfg at this point i have to say something, its pissing me off how much transphobia is affecting me and\nother trans people recently, as a trans person, MTF, i get quite a lot of hate just from being trans,\nwhether its online in trolling, bullying form or irl bullying, other forms discrimination and so on, i\nfucking hate how the world is currently, so let me talk about it\n\nfirst up, let me define what transphobia is, transphobia is defined as follows :\n\n> Transphobia is a type of discrimination or prejudice against transgender\n> or gender non-conforming individuals. It can take many forms, including verbal\n> or physical abuse, exclusion from social or professional opportunities, or denial\n> of basic human rights. Transphobia is based on a lack of understanding or acceptance\n> of gender identity that does not conform to traditional binary notions\n> of male and female. It can have serious negative effects on the mental health and\n> well-being of trans individuals, leading to depression, anxiety, and even suicide.\n\nbut i call it 'the feeling that makes me feel shit at every moment of my life and any\ncomments can set it off, although im too much of a pussy to say anything about it bc i am a useless\nanti-social idiot on top of that i get treated like dog shit except that at least gets picked up :)'\n\nthe current state of trans people as a group is bad, everything is going to shit and it seems like\neveryone is going after us for everything, ive met so many transphobes in the recent times and tbh\nim scared to say anything about it, like i want to, but i cant, my brain isnt letting me, im\nscared and i cant do anything about it, like tranphobes made me think that standing by my own points\nis bad and should not be done but instead you should suffer in silence and say nothing abt it,\nwhich is total fucking bullshit, i am so fucking done with all of this i cant, i want to be able to,\nbut its just fucking impossible, my brain has that engraved and i hate it, i feel like a trapped rat\nin their prison of bigotism and discrimination, at this point if a person finds out im trans and they\ncomment about it i feel the need to be sorry about my identity and say 'im sorry that im trans, you\nprobably think im gross and shit, sorry' or something along the lines of that, it feels like\nwe, as a group of people are being forced into some sort of modern hitler-esc ideology where the world\nis monogamous and anything else than that should be made extinct\n\nnone of this is pretty or good, i might say its 'fine' when youre being directly transphobic to my face\nbut its really not and behind your back im not happy with any of what uve said or done, i use laughing\n( even online ) to deflect tension, i hate it, why do yall feel like we have to fit into your fucking\nclosed off box of little one-braincell ideology, fuck this shit and fuck you for doing all the shit you\ndo to make our lives as painful as you can, your complaining about how its 'unnatural, gross, ungodly,\nbad, cringe, stupid, confusing' and etc. is so fucking annoying, we already are a very small group with\nvery little rights and on top of that yall overpower us with like 2387678296789326% of the population going\nafter us, like come fucking on, get a life and stop being a plain fucking asshole, im so sorry for using\nsuch stupid language but i am so fucking mad at so many people and theres nothing i can really do than\ncomplain about how shitty their behaviour is\n\none of the [situations](https://user.ari-web.xyz/#89) that triggered me to write this is mrbeast situation about the 'karl effect' or\nsome shit, god i see transphobes cling onto that so much on the internet now, its painful to even watch,\nits gross, this is nothing than pure homophobia and transphobia\n\nanother situation is me actually facing anti-lgbt stuff both irl and online today, wont get into\ndetail bc i dont want to\n\nand what do u know, [texas loves this shit too](https://www.theguardian.com/us-news/2023/apr/25/texas-agriculture-department-dress-memo-sid-miller)\n'consistent to their biological gender' my ass, my brain hurts from the stupidity of transphobes,\ntheir hitler-like ideology, stupid fucking idiocy which keeps bothering me\n\nthis isnt just a US issue either, this is very relevant is every country and continent, for example, even in\neurope, which id consider fairly developed, this is a large issue, we still face issues with healthcare ( actually\nA LOT of issues ), employment, education, and housing, this is especially visible in like poland and hungary where\nits like built in lmao, lets not forget to mention my homeland of lithuania, being any type of lgbt anywhere\noutside capital city of vilnius is terrible, i face a lot of anti-lgbt comments, bullying ( to the point of physical\nharassment ) and so on, everywhere and anywhere i go, i even get spit on sometimes just bc i dont present\n\u2728 typically male \u2728, omfg, i hate this, but america, africa, australia, asia and so on also have the same issues,\nin america its right-wing individuals who are trying to shunt down transgender people all bc it doesnt fit into\ntheir conservative view of the world ( and so, they should be made extinct ), africa due to religious and cultural\nviews on gender and sexuality, australia is progressing but trans people still have quite a lot to deal with both\nsocially and access to services like healthcare and asia, once again about religious and cultural views\n\nnot that i find this funny, but its funny how close minded people are everywhere around the world, i mean yes, there\nare people who are truely open minded, but theres so many people calling themselves tolerant 'as long as i dont see them'\nor 'as long as its not my kids' or some shit, or freak out whenever a trans person comes out and they go attack\nthem just bc, actually in my psychology class we had a similar test, basically like 99% of the class called themselves\ntolerant, including myself, then we were questioned and questioned 'would you accept this person if they were a part of\n[some minority]' and other questions, they were related to race, culture, religion, sexuality, gender, etc. and guess\nhow many hands were left at the end out of 29 ... 2, fucking two, me and another classmate, omfg, i find this so fucking\ncringe and just terrible, how can you call yourself tolerant if you do this shit, my god\n\ni also find some of the reasons funny, like 'its religion' or some shit, like alright, believe in what you want, but\nhow does that give you the right to discriminate against and stuff other people ? how does that change the\nfact that youre transphobic and want people dead ? how does that change anything that youre doing, its still horrible\nand not acceptable, this applies to anything, ive heard people use the same excuse over and over and over again\nfor all sorts of topics, including racism, homophobia, transphobia, abilism and fatphobia, which none of those\nare okay\n\nanyway, concluding, transphobes fucking suck and everything about them is cringe, bad and theyre little pricks with no\nlife, i hate how many people like that exist in all shapes and sizes, in all countries, all identities, cultures, races,\ncontinents, unions and so on, but i guess ill keep pretending 'its fine, you can be transphobic, yeah i totally\ndont care, im sorry for being so gross and bad in your eyes, ill try my best to not be trans :))'\n\ntake care .\n", + "content": "omfg at this point i have to say something, its pissing me off how much transphobia is affecting me and\nother trans people recently, as a trans person, MTF, i get quite a lot of hate just from being trans,\nwhether its online in trolling, bullying form or irl bullying, other forms discrimination and so on, i\nfucking hate how the world is currently, so let me talk about it\n\nfirst up, let me define what transphobia is, transphobia is defined as follows :\n\n> Transphobia is a type of discrimination or prejudice against transgender\n> or gender non-conforming individuals. It can take many forms, including verbal\n> or physical abuse, exclusion from social or professional opportunities, or denial\n> of basic human rights. Transphobia is based on a lack of understanding or acceptance\n> of gender identity that does not conform to traditional binary notions\n> of male and female. It can have serious negative effects on the mental health and\n> well-being of trans individuals, leading to depression, anxiety, and even suicide.\n\nbut i call it 'the feeling that makes me feel shit at every moment of my life and any\ncomments can set it off, although im too much of a pussy to say anything about it bc i am a useless\nanti-social idiot on top of that i get treated like dog shit except that at least gets picked up :)'\n\nthe current state of trans people as a group is bad, everything is going to shit and it seems like\neveryone is going after us for everything, ive met so many transphobes in the recent times and tbh\nim scared to say anything about it, like i want to, but i cant, my brain isnt letting me, im\nscared and i cant do anything about it, like tranphobes made me think that standing by my own points\nis bad and should not be done but instead you should suffer in silence and say nothing abt it,\nwhich is total fucking bullshit, i am so fucking done with all of this i cant, i want to be able to,\nbut its just fucking impossible, my brain has that engraved and i hate it, i feel like a trapped rat\nin their prison of bigotism and discrimination, at this point if a person finds out im trans and they\ncomment about it i feel the need to be sorry about my identity and say 'im sorry that im trans, you\nprobably think im gross and shit, sorry' or something along the lines of that, it feels like\nwe, as a group of people are being forced into some sort of modern hitler-esc ideology where the world\nis monogamous and anything else than that should be made extinct\n\nnone of this is pretty or good, i might say its 'fine' when youre being directly transphobic to my face\nbut its really not and behind your back im not happy with any of what uve said or done, i use laughing\n( even online ) to deflect tension, i hate it, why do yall feel like we have to fit into your fucking\nclosed off box of little one-braincell ideology, fuck this shit and fuck you for doing all the shit you\ndo to make our lives as painful as you can, your complaining about how its 'unnatural, gross, ungodly,\nbad, cringe, stupid, confusing' and etc. is so fucking annoying, we already are a very small group with\nvery little rights and on top of that yall overpower us with like 2387678296789326% of the population going\nafter us, like come fucking on, get a life and stop being a plain fucking asshole, im so sorry for using\nsuch stupid language but i am so fucking mad at so many people and theres nothing i can really do than\ncomplain about how shitty their behaviour is\n\none of the [situations](https://user.ari.lt/#89) that triggered me to write this is mrbeast situation about the 'karl effect' or\nsome shit, god i see transphobes cling onto that so much on the internet now, its painful to even watch,\nits gross, this is nothing than pure homophobia and transphobia\n\nanother situation is me actually facing anti-lgbt stuff both irl and online today, wont get into\ndetail bc i dont want to\n\nand what do u know, [texas loves this shit too](https://www.theguardian.com/us-news/2023/apr/25/texas-agriculture-department-dress-memo-sid-miller)\n'consistent to their biological gender' my ass, my brain hurts from the stupidity of transphobes,\ntheir hitler-like ideology, stupid fucking idiocy which keeps bothering me\n\nthis isnt just a US issue either, this is very relevant is every country and continent, for example, even in\neurope, which id consider fairly developed, this is a large issue, we still face issues with healthcare ( actually\nA LOT of issues ), employment, education, and housing, this is especially visible in like poland and hungary where\nits like built in lmao, lets not forget to mention my homeland of lithuania, being any type of lgbt anywhere\noutside capital city of vilnius is terrible, i face a lot of anti-lgbt comments, bullying ( to the point of physical\nharassment ) and so on, everywhere and anywhere i go, i even get spit on sometimes just bc i dont present\n\u2728 typically male \u2728, omfg, i hate this, but america, africa, australia, asia and so on also have the same issues,\nin america its right-wing individuals who are trying to shunt down transgender people all bc it doesnt fit into\ntheir conservative view of the world ( and so, they should be made extinct ), africa due to religious and cultural\nviews on gender and sexuality, australia is progressing but trans people still have quite a lot to deal with both\nsocially and access to services like healthcare and asia, once again about religious and cultural views\n\nnot that i find this funny, but its funny how close minded people are everywhere around the world, i mean yes, there\nare people who are truely open minded, but theres so many people calling themselves tolerant 'as long as i dont see them'\nor 'as long as its not my kids' or some shit, or freak out whenever a trans person comes out and they go attack\nthem just bc, actually in my psychology class we had a similar test, basically like 99% of the class called themselves\ntolerant, including myself, then we were questioned and questioned 'would you accept this person if they were a part of\n[some minority]' and other questions, they were related to race, culture, religion, sexuality, gender, etc. and guess\nhow many hands were left at the end out of 29 ... 2, fucking two, me and another classmate, omfg, i find this so fucking\ncringe and just terrible, how can you call yourself tolerant if you do this shit, my god\n\ni also find some of the reasons funny, like 'its religion' or some shit, like alright, believe in what you want, but\nhow does that give you the right to discriminate against and stuff other people ? how does that change the\nfact that youre transphobic and want people dead ? how does that change anything that youre doing, its still horrible\nand not acceptable, this applies to anything, ive heard people use the same excuse over and over and over again\nfor all sorts of topics, including racism, homophobia, transphobia, abilism and fatphobia, which none of those\nare okay\n\nanyway, concluding, transphobes fucking suck and everything about them is cringe, bad and theyre little pricks with no\nlife, i hate how many people like that exist in all shapes and sizes, in all countries, all identities, cultures, races,\ncontinents, unions and so on, but i guess ill keep pretending 'its fine, you can be transphobic, yeah i totally\ndont care, im sorry for being so gross and bad in your eyes, ill try my best to not be trans :))'\n\ntake care .\n", "keywords": [ "trans", "transgender", @@ -1452,7 +1452,7 @@ "torturetric-system": { "title": "torturetric system", "description": "just a joke system for measuring shit lol", - "content": "some time back i made the torture degrees temperature system as an ironic joke\nto make fun of the wars between different temperature systems\n\n\n\nnow, lets add more, _the torturetric system_\n\nbefore anything, assume the math library is imported in python,\nall definitions here are defined in python and theyre all meant to be\ncomplex, make no sense and are useless ( for the sake of the reader )\n\n## distance ( tourmiletre )\n\na tourmiletre ( tm ) is defined like this :\n\n def tm(m: float) -> float:\n return (m * 3.28) + ((1 / (((math.acosh(m) ** -math.e) ** -2) + math.pi)) * (9 / 5)) * math.pi ** (235 / 48) + 0.01832654 - m\n\nwhere `m` is distance in metre\n\n## mass ( kilogratourpound )\n\na kilogratourpound ( kgp ) is defined like this :\n\n def kgp(kg: float) -> float:\n return (math.pi ** (1 - math.tan((kg + 10) * 1.2481)) - 1.2) + 0.18425856487425207\n\nwhere `kg` is mass in kilogram\n\n## time ( tekond )\n\na tekond ( t ( _not T_ ) ) is defined as follows :\n\n def tk(s: float) -> float:\n a: float = math.atan2((0.00000000172 - s + 0.1) - math.e, math.e)\n return (9.1286 - (math.degrees(a) + math.cosh(a))) / 100\n\nwhere `s` is time in seconds\n\n## electric current ( tampre )\n\ntampre ( TA ) is defined like this :\n\n def ta(a: float) -> float:\n return (math.pi + a - 2) / 3\n\nwhere `a` is current in ampere\n\n## temperature ( torture degrees ( NOT degrees torture ) )\n\n def t(c: float) -> float:\n return math.cos((((c + 273.15) + c + ((c * (9/5) + 32))) / 3) + math.pi) + math.e\n\nwhere `c` is temperature in celsius\n\n## amount of substance ( tomole )\n\na tomole ( tol ) is defined as follows :\n\n def tol(mol: float) -> float:\n return (mol + math.pi * 2 - 1 + 1973 / 5 - 17 / math.e ** 2 + 273.15 * (9 / 5) + 32 / 3 / 19723218734) / 10000\n\nwhere `mol` is amount of mols\n\n## luminous intensity ( toltelama )\n\na toltelama ( tl ) is defined like this :\n\n def tl(cd: float) -> float:\n a: float = 1.1 ** (cd / math.pi / math.e / math.asin(math.cos(math.tan(cd))) + 1 / 0.1 / 100)\n return math.degrees(a + math.pi) + math.cos(a)\n\nwhere `cd` is the luminance in candela\n\n## wrap up\n\nto convert units like kilogratourpound -> gratourpound, just devide by a 1000, just like\nthe metric system, this torturetric system is metic-like\n\nanyway, enjoy, this is the best system known to man !!\n", + "content": "some time back i made the torture degrees temperature system as an ironic joke\nto make fun of the wars between different temperature systems\n\n\n\nnow, lets add more, _the torturetric system_\n\nbefore anything, assume the math library is imported in python,\nall definitions here are defined in python and theyre all meant to be\ncomplex, make no sense and are useless ( for the sake of the reader )\n\n## distance ( tourmiletre )\n\na tourmiletre ( tm ) is defined like this :\n\n def tm(m: float) -> float:\n return (m * 3.28) + ((1 / (((math.acosh(m) ** -math.e) ** -2) + math.pi)) * (9 / 5)) * math.pi ** (235 / 48) + 0.01832654 - m\n\nwhere `m` is distance in metre\n\n## mass ( kilogratourpound )\n\na kilogratourpound ( kgp ) is defined like this :\n\n def kgp(kg: float) -> float:\n return (math.pi ** (1 - math.tan((kg + 10) * 1.2481)) - 1.2) + 0.18425856487425207\n\nwhere `kg` is mass in kilogram\n\n## time ( tekond )\n\na tekond ( t ( _not T_ ) ) is defined as follows :\n\n def tk(s: float) -> float:\n a: float = math.atan2((0.00000000172 - s + 0.1) - math.e, math.e)\n return (9.1286 - (math.degrees(a) + math.cosh(a))) / 100\n\nwhere `s` is time in seconds\n\n## electric current ( tampre )\n\ntampre ( TA ) is defined like this :\n\n def ta(a: float) -> float:\n return (math.pi + a - 2) / 3\n\nwhere `a` is current in ampere\n\n## temperature ( torture degrees ( NOT degrees torture ) )\n\n def t(c: float) -> float:\n return math.cos((((c + 273.15) + c + ((c * (9/5) + 32))) / 3) + math.pi) + math.e\n\nwhere `c` is temperature in celsius\n\n## amount of substance ( tomole )\n\na tomole ( tol ) is defined as follows :\n\n def tol(mol: float) -> float:\n return (mol + math.pi * 2 - 1 + 1973 / 5 - 17 / math.e ** 2 + 273.15 * (9 / 5) + 32 / 3 / 19723218734) / 10000\n\nwhere `mol` is amount of mols\n\n## luminous intensity ( toltelama )\n\na toltelama ( tl ) is defined like this :\n\n def tl(cd: float) -> float:\n a: float = 1.1 ** (cd / math.pi / math.e / math.asin(math.cos(math.tan(cd))) + 1 / 0.1 / 100)\n return math.degrees(a + math.pi) + math.cos(a)\n\nwhere `cd` is the luminance in candela\n\n## wrap up\n\nto convert units like kilogratourpound -> gratourpound, just devide by a 1000, just like\nthe metric system, this torturetric system is metic-like\n\nanyway, enjoy, this is the best system known to man !!\n", "keywords": [ "torture", "system", @@ -1467,7 +1467,7 @@ "userari-webxyz-situation": { "title": "user.ari-web.xyz situation", "description": "meh idiots will stay idiots", - "content": "## update\n\n> i have fixed it, everything is now behind a whitelist and shit, so yeah\n> feel free to comment again :)\n\n---\n\nhello world\n\nari-web stuff seems to be currently being attacked by transphobes and so\non, i currently locked and hoping this fixes\nshit for at least a bit, i hope, if you still want to show your opinion\njust email me at [ari.web.xyz@gmail.com](mailto:ari.web.xyz@gmail.com)\nand we can talk\n\ni am sorry, although i am not comfortable hosting such vile content ( i.e.\ntransphobia, homophobia, racism, nazism, etc. ) on my platform nor am i\ncapable of taking it nor physically nor mentally, i will not take harassment\nlightly in any shape or form and as much as i dont want it, if i need to,\ni will escalate this further than locking up comments for everyone, as of now\ni have idiocy archived, the old spam and current spam, i might just continue\ndeveloping security measures for it, i will make sure its anonymous and shit\nas much as i can, i wont be a corporate asshole, but i dont want to take\nany transphobia, racism, etc. its not my job, my job here is to have fun and\ndevelop as a teenage developer, im only here to develop, not here to get harassed\nby either extremely idiotic 13 year olds or by deranged 20 year old pedophiles\n\ni am once again sorry for locking this for everyone, but this is the only viable\nway to stop this flowing sea of harassment and pure asshole-yness, ill unlock it\nprobably some day, but def not soon\n\ncya, have a good day and dont be an asshole by harassing random people on their\ncomment section :)\n", + "content": "## update\n\n> i have fixed it, everything is now behind a whitelist and shit, so yeah\n> feel free to comment again :)\n\n---\n\nhello world\n\nari-web stuff seems to be currently being attacked by transphobes and so\non, i currently locked and hoping this fixes\nshit for at least a bit, i hope, if you still want to show your opinion\njust email me at [ari.web.xyz@gmail.com](mailto:ari.web.xyz@gmail.com)\nand we can talk\n\ni am sorry, although i am not comfortable hosting such vile content ( i.e.\ntransphobia, homophobia, racism, nazism, etc. ) on my platform nor am i\ncapable of taking it nor physically nor mentally, i will not take harassment\nlightly in any shape or form and as much as i dont want it, if i need to,\ni will escalate this further than locking up comments for everyone, as of now\ni have idiocy archived, the old spam and current spam, i might just continue\ndeveloping security measures for it, i will make sure its anonymous and shit\nas much as i can, i wont be a corporate asshole, but i dont want to take\nany transphobia, racism, etc. its not my job, my job here is to have fun and\ndevelop as a teenage developer, im only here to develop, not here to get harassed\nby either extremely idiotic 13 year olds or by deranged 20 year old pedophiles\n\ni am once again sorry for locking this for everyone, but this is the only viable\nway to stop this flowing sea of harassment and pure asshole-yness, ill unlock it\nprobably some day, but def not soon\n\ncya, have a good day and dont be an asshole by harassing random people on their\ncomment section :)", "keywords": [ "ari-web", "haras", @@ -1500,7 +1500,7 @@ "serverari-webxyz-going-be-changed": { "title": "server.ari-web.xyz is going to be changed / transphobic, racist and nazi attack on user.ari-web.xyz", "description": "yeah, stuff happened and got spammed with 17+ kb of random bullshit, which was mainly the things mentioned in the title, posing as me", - "content": "hello world,\n\ndue to some transphobic, racist and nazist assholes, server.ari-web.xyz will be changed to\nhave more security and shit, i didnt want to do this, but i will add a filter, will add\nharder limiting and bans will become a serious thing, there was some asshole pretending to\nbe me on which spammed the n word, chiristian and transphobic shit,\nnazi idiocy, misinterpretations and quotes from the bible and so on, troll faces, spam,\netc.\n\nthe server ~~will be changed with most likely~~ has been changed these changes :\n\n- your ~~ip~~ sha256 hash of the IP will be saved\n- there will be a harder rate limit\n- ~~there will be a blacklist~~\n- ~~the UTC timestamp will be tracked~~\n\n> update : i crossed out the things that i didnt do, but i did update\n> the server, now i am free to ban people bc i track the sha256 hash of\n> peoples IPs\n\ni really didnt want to become some corporate-like asshole, but i also cannot stand nazi,\nracist, etc. assholes attacking me in my own comments section, i will make the information\ni will be collecting wherever i can and the server will still be open source\n\nthank you for understanding, old ( non malicious since #45 ) comments will be imported\nand the new racist and nazi ones and shit, i saved the nazi and shit comments\n\ni am sorry for messing up and giving people the power of true free speech, i do not\nadvocate for anything the asshole has said and will not make this mistake again, from\nnow on i will be shutting everything down and will be closely moderating it, i am sorry\ni didnt see it sooner\n", + "content": "hello world,\n\ndue to some transphobic, racist and nazist assholes, server.ari-web.xyz will be changed to\nhave more security and shit, i didnt want to do this, but i will add a filter, will add\nharder limiting and bans will become a serious thing, there was some asshole pretending to\nbe me on which spammed the n word, chiristian and transphobic shit,\nnazi idiocy, misinterpretations and quotes from the bible and so on, troll faces, spam,\netc.\n\nthe server ~~will be changed with most likely~~ has been changed these changes :\n\n- your ~~ip~~ sha256 hash of the IP will be saved\n- there will be a harder rate limit\n- ~~there will be a blacklist~~\n- ~~the UTC timestamp will be tracked~~\n\n> update : i crossed out the things that i didnt do, but i did update\n> the server, now i am free to ban people bc i track the sha256 hash of\n> peoples IPs\n\ni really didnt want to become some corporate-like asshole, but i also cannot stand nazi,\nracist, etc. assholes attacking me in my own comments section, i will make the information\ni will be collecting wherever i can and the server will still be open source\n\nthank you for understanding, old ( non malicious since #45 ) comments will be imported\nand the new racist and nazi ones and shit, i saved the nazi and shit comments\n\ni am sorry for messing up and giving people the power of true free speech, i do not\nadvocate for anything the asshole has said and will not make this mistake again, from\nnow on i will be shutting everything down and will be closely moderating it, i am sorry\ni didnt see it sooner", "keywords": [ "nazi", "racist", @@ -1547,7 +1547,7 @@ "ari-web-index-redesign": { "title": "ari-web index redesign", "description": "https://ari-web.xyz/ redesign", - "content": "hello world\n\nafter like 2 years of having the same design i changed \nand i am extremely happy to announce it\n\nthis is really important and i hope you like it, the terminal branch still\nexists so no worries, but now ari-web has entered `personal` era :)\n\ncheers, and keep in mind is still open source\n", + "content": "hello world\n\nafter like 2 years of having the same design i changed \nand i am extremely happy to announce it\n\nthis is really important and i hope you like it, the terminal branch still\nexists so no worries, but now ari-web has entered `personal` era :)\n\ncheers, and keep in mind is still open source", "keywords": [ "ari-web", "redesign", @@ -1562,7 +1562,7 @@ }, "ari-web-blog-api-change": { "title": "ari-web blog api change", - "description": "api changes to https://blog.ari-web.xyz/", + "description": "api changes to https://blog.ari.lt/", "content": "hello world\n\n[the blog api](/blog.json) has changed, now i dont use base64 to encode, it was useless, i noticed\nnobody uses the api basically, but i want it to be available, so just notifying yall\nof the change, the reason i just changed it with no prior warning is because\nnobody uses it lol\n\nalso, a new api created -- [recents.json](/recents.json) which has the most recent 5 blog posts as the\n`blog.json` api is extremely large lol, it also has [recents_json_hash.txt](/recents_json_hash.txt)\n\nkeep in mind `recents.json` only has summaries of blog posts, not full content, time\n( UNIX timestamp ) and the title, thats it\n\nanyway, have fun i guess :)\n", "keywords": [ "ari-web", @@ -1617,7 +1617,7 @@ "ari-web-server-https-serverari-webxyz": { "title": "ari-web server -- https://server.ari-web.xyz/", "description": "got a server :3", - "content": "hey people :)\n\ni just wanted to let yall know that i got a server,\nnow it hosts the api,\nmeaning you now dont need a github account to comment\nunder my posts\n\nhave fun commenting away privately and anonymously without\nany of your data being collected <3\n\nhave a nice day\n\n# links\n\n- \n- \n- \n- \n", + "content": "hey people :)\n\ni just wanted to let yall know that i got a server,\nnow it hosts the api,\nmeaning you now dont need a github account to comment\nunder my posts\n\nhave fun commenting away privately and anonymously without\nany of your data being collected <3\n\nhave a nice day\n\n# links\n\n- \n- \n- \n- ", "keywords": [ "ari-web-server", "server", @@ -1765,7 +1765,7 @@ "i-came-out-to-my-psychologist-an-update": { "title": "i came out to my psychologist -- an update", "description": "discussing trans stuff with my psychologist", - "content": "remember [this post ?](https://blog.ari-web.xyz/b/i-came-out-to-my-psychologist/)\n\nso yeah, last week i couldnt meet up with my psychologist ( because stuff happened at home ), so i did this week, not too long ago i walked out of her office and even though\ni walked out sweating like a stressed pig, i feel ... good ? i mean it all went well, she was accepting,\nunderstanding, nice about it, but it was scary talking about me being trans in person, i have\nnever had to talk about it so much irl, new thing, a lot of anxiety and just aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n\nshe said its fine and okay, she understands, she has trans clients in the past, she even asked for the name\ni go by, ~~although i couldnt say it because i was scared, ill tell her next week~~,\nshe used feminine pronouns on me this session and so on\n\nit was a lot to talk about, it was scary, i was in such a high state of stress, sweated, got shaky,\nfidgeted and stuff but now that im home, i think it was a good experience, im happy about it,\nim glad i finally opened up about my identity and that my psychologist accepted me for who i am,\nits a huge relief and im glad i was able to sorta do it\n\nshe also asked how does it feel to be trans and i couldnt really explain it, its \u2728 a feeling \u2728\nlike she asked me something along the lines of\n\n> are you a boy who just likes boys or are you a girl ? how does it feel to be trans ?\n\ni said that i am a girl and that its weird to explain how it is to be trans, i said like\n\n> it just feels that im not me, its weird to explain it\n\nor smt, i think a better explanation would be like\n\n> im a girl, it feels like like me fighting my own self, like i want to be accepted\n> but im also scared, i feel like im not a boy, i hate taking on masculine roles, i am not masculine\n> myself, i feel like nobody who is cis will understand what its like to be a trans person and the\n> struggles that come with it as its not a choice, for example, i feel like i should be in\n> the girls group if the teachers tell us to split into groups by gender\n> ( even though i think its quite bs but eh ) but i have to go the boys group\n> apparently ( like i have to fight myself ), i feel like im walking on eggshells to conceal\n> my identity and who i am trying to make sure im not offending anyone and not exposing myself\n> to just get bullied into even a deeper depression than i already am in\n\ni think this would have fit more, but i mean i have an alibi -- i was stressed beyond hell, i was sweating,\nmy heart and mind were racing, everything was just a whole ball of stress, i was sitting there in\na chair frozen, barely able to talk, although as we talked more about it i got more comfortable\n\ni think and hope next week i will be able to talk to her more about this topic and this conversation\nmade me realise, maybe i dont want to end my life yet afterall, maybe i just needed help, someone to talk\nto, after i had the convo i feel much better, its nice, although when my depression and gender dysphoria\nwill come back after such a high point for me in happiness, i will feel terrible\n\nbut oh well, at least the psychologist accepts me :)\n", + "content": "remember [this post ?](https://blog.ari.lt/b/i-came-out-to-my-psychologist/)\n\nso yeah, last week i couldnt meet up with my psychologist ( because stuff happened at home ), so i did this week, not too long ago i walked out of her office and even though\ni walked out sweating like a stressed pig, i feel ... good ? i mean it all went well, she was accepting,\nunderstanding, nice about it, but it was scary talking about me being trans in person, i have\nnever had to talk about it so much irl, new thing, a lot of anxiety and just aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n\nshe said its fine and okay, she understands, she has trans clients in the past, she even asked for the name\ni go by, ~~although i couldnt say it because i was scared, ill tell her next week~~,\nshe used feminine pronouns on me this session and so on\n\nit was a lot to talk about, it was scary, i was in such a high state of stress, sweated, got shaky,\nfidgeted and stuff but now that im home, i think it was a good experience, im happy about it,\nim glad i finally opened up about my identity and that my psychologist accepted me for who i am,\nits a huge relief and im glad i was able to sorta do it\n\nshe also asked how does it feel to be trans and i couldnt really explain it, its \u2728 a feeling \u2728\nlike she asked me something along the lines of\n\n> are you a boy who just likes boys or are you a girl ? how does it feel to be trans ?\n\ni said that i am a girl and that its weird to explain how it is to be trans, i said like\n\n> it just feels that im not me, its weird to explain it\n\nor smt, i think a better explanation would be like\n\n> im a girl, it feels like like me fighting my own self, like i want to be accepted\n> but im also scared, i feel like im not a boy, i hate taking on masculine roles, i am not masculine\n> myself, i feel like nobody who is cis will understand what its like to be a trans person and the\n> struggles that come with it as its not a choice, for example, i feel like i should be in\n> the girls group if the teachers tell us to split into groups by gender\n> ( even though i think its quite bs but eh ) but i have to go the boys group\n> apparently ( like i have to fight myself ), i feel like im walking on eggshells to conceal\n> my identity and who i am trying to make sure im not offending anyone and not exposing myself\n> to just get bullied into even a deeper depression than i already am in\n\ni think this would have fit more, but i mean i have an alibi -- i was stressed beyond hell, i was sweating,\nmy heart and mind were racing, everything was just a whole ball of stress, i was sitting there in\na chair frozen, barely able to talk, although as we talked more about it i got more comfortable\n\ni think and hope next week i will be able to talk to her more about this topic and this conversation\nmade me realise, maybe i dont want to end my life yet afterall, maybe i just needed help, someone to talk\nto, after i had the convo i feel much better, its nice, although when my depression and gender dysphoria\nwill come back after such a high point for me in happiness, i will feel terrible\n\nbut oh well, at least the psychologist accepts me :)\n", "keywords": [ "trans", "transgender", @@ -1915,7 +1915,7 @@ "idk-something": { "title": "idk something", "description": "just a brainfuck of a dump", - "content": "> before anything: this blog is a total mess, its basically a cloud of my\n> own thoughts and things i want to share and stuff, so if you want actual\n> content wrong blog post, but if you decide to read, dong judge it too hard\n> its 3:30 am and this is purely whats going on in my head at the time\n> if you have anything to say about this [email me](mailto:ari.web.xyz@gmail.com) or\n> leave your comment on [CaO](/c), btw dont expect this to be a family\n> friendly blog post at all lol, there are many triggers too btw bc\n> i dig into my brain a bit\n\nhello\n\ni rlly dont know why am i even writing this blog i just havent updated it since\n2022/12/03 and its 12/25 already, feels wrong, 22 days, i just havent had any\ninspiration, nothing to write about rlly, no new tutorials that come into my head,\nnothing, just pure b l a n k and i wanted to just talk about stuff ig, nothing\nspecific, just \u2728stuff\u2728\n\ntbh nothing new, christmas is here, never was a special thing for me, so just sitting\nat home doing nothing waiting for winter break to finish, school's halfway finished,\nwhich is weird, 2023's around the corner, 2022 ended too fast lol, watch us get into\nanother pandemic, it wasnt the year of desktop for linux, this year im *potentially*\nswitching to netbsd or openbsd, will make sure to at least try them on my own\nhardware, but i mean for development its gonna be a bit of a pain if i actually\ndecide to make the switch, plus i made a poll for like 50 ppl, a part of them answered\nand the poll was something like this:\n\n Poll: should i hop to netbsd, openbsd or stay on gentoo\n\n (0) netbsd\n (1) openbsd\n (2) gentoo\n\nand the majority (80%) answered gentoo, so probably staying on it, if i like netbsd or\nopenbsd a lot ill switch to it\n\nwhat more, idk, ketamine and ecstasy are kinda on my mind, like im not encouraging\ndrugs or anything, i havent done any in my life and shit, but besides that, im kinda\ncraving for their effects, with ketamine you just \u2728float off\u2728 and its kinda nice\nto have that at times and ecstasy is just free happiness, which would be nice to have\nat harder days, thinking about telling that to my psychologist lol\n\nspeaking of my psychologist, were kinda making progress, last time told her about my\neating stuff, almost cried, but whatever, nothing major\n\nmy IT teacher pushed me into a programming olympic and so far i passed all stages (school and\ncity) with an almost perfect score, so now ill be going to the 3rd stage which is country, although\nonly part 1, if i pass it im going to the country finale lol, using C++ there\n\nspeaking of IT, im thinking of redesigning ari-web prompt stuff as it kinda sucks, i\nmight start work on it soon, ill try to improve the code oh and i also extended the lifetime\nof `ari-web.xyz` domain a couple of days ago, by that i mean i just shoved more money\ninto the domain so i own it for longer, like adding years to ownership lol\n\ngetting bored of my playlist, all songs have been heard by me like 100000 times, lofi\nis fine, but it also gets old at times, \"My mix\" youtube playlists have been saving my\nass for a bit, but theyre also getting boring, im finding less enjoyment in music\nthis way, which is sad, no energy either, so \ud83d\ude2b\n\nbeen thinking about changing my github username, i know to what specifically, but its gonna\nbreak so much if i decide to, but i could make an organisation with the username i want, but\nthen what am i gonna put there ? like theres absolutely nothing i can think of putting\non there, personal projects go on my own github, which is like \u2728everything\u2728 so ... do i just make\nthe org and leave it empty lol ? i mean kinda a waste, idk\n\ni keep thinking about my psychiatrist, i found a person irl who goes to the same one as i do\nand theyre not having a good time like me, my psychiatrist is like a total unqualified bitch,\nleft her a few low/terrible ratings and 1 star reviews, if i could id give her 0 stars,\nshe doesnt even deserve the 1 star, idiotic shit\n\ngonna go to my grandma tmrw maybe, i wanna go for a walk, although its already pretty\nlate so if i dont fall asleep ill probably be dead tmrw lol, either way, i have\nnot been very energetic for the past couple of months lol\n\nngl overthinking is no, i overthink a lot and i keep getting mad at myself for\na lot of things, like what could have i said and stuff yk lol, this shit is even making\nme think to stop going to my psychologist, like i overthink the psychologist sessions\n***SO MUCH*** lol\n\nwatched a video a couple of weeks ago, it was about autistic trans ppl and as im an\nautistic trans person i was interested, seems like we, the autistic ppl, are 11 times\nas likely to be trans compared to an average person, its apparently also a sign of\nautism to have issues with your gender, which makes sense as i always had issues\nwith it, sad to know that 'its just a sign', but still, i also noticed that the time\npasses by faster the older i get lol, becoming a true grandma now\n\ni told my psychologist one thing, it was something like this, just in lithuanian obviously:\n\n> ill be honest, i hide some stuff from you and other doctors, the lithuanian mental\n> healthcare system fucking SUCKS A LOT, like A LOT A LOT, i have to lie or just hide\n> things from you because i dont want to get put into a mental hospital, mental stimulation\n> depravation makes my mind go into a \"bad mode\" which is literally what a mental hospital\n> is, i lied to you multiple times already to try to not get put into one and in lithuania\n> all they do is just shove you into a mental hospital and just give 0 shits about you\n\nso yeah lmao, lithuania fucking sucks for mental shit, getting mental healthcare is hard\nenough here, but getting proper mental healthcare is *impossible*, you have to watch your\nevery word if you dont want to just get shoved into a mental hospital, its fucking idiotic\n\ni kinda like this mind cluster-fuck of a blog post, its nice just thinking of shit and\njust typing it out lol\n\na person gave me a question idr how long ago but it was\n\n> if youre so depressed why dont you kill yourself already\n\nwell, i still want to see what life can offer until my ultimate demise, i mean\nso far it isnt anything good lol, but oh well\n\nwas watching my hands like a week ago and i found that they look a lot like frog hands, like\nthe bones and shit, fingers, just f r o g lol\n\ntoday i saw how bloated rust is, so, i shrunk my `/` part to `20 GB` few days ago and it was\nfine and uh, i decided to start my system update today and rust source code takes up 11+ GB\nof storage, funny because firefox takes up much less while being a much more complex program,\ngod, rust is a fucking disappointment lol\n\nremember how i was bald last year ? i was gonna shave my head again, then decided not\nto lol, it was a whole mess, i was scared, thought id probably feel good for a split\nsecond, but then like shit and then just polls and shit and ugh it was a mess, i just\ndecided to keep my hair, glad i did\n\nhm, im digging deeper and deeper into my brain, we went from christmas to this, interesting,\ni mean thats kinda what this blog is, me digging deeper and deeper into my 1 braincell width\nbrain lol\n\nim confused why ppl still use arigram, a telegram client i made, i mean its nice and stuff\nbut its kinda a deadish project, i dont work on it anymore, meaning the new stuff telegram\nadds is just going to show up as `[MessageUnsupported]` which isnt useful is it lol, i rlly\nneed to change the arigram api to work better with the new telegram shit dynamically lol, i\nmean i literally use arigram myself and it doesnt bother me but i mean others might not be\nable to work with it as well as i can lol\n\nlol im still on the `5.16.7` kernel, i dont like `5.15.x` and the new kernel sucks so im\nsticking to the old one and probably never updating, that is *if* im even staying on linux\nlol, remember, the netbsd/openbsd thing ?\n\nwhy does PE *(physical 'education')* even exist, 'movement' my ass, i came to school not to\n'move' but to learn and get a diploma, i literally am so exhausted after PE, can barely learn,\ni fucking hate PE, it makes me feel like shit in so many ways i cant, at times i even begin\nto cry BECAUSE i have PE that day, its stupid stupid lol, reasons why i hate pe:\n\n- dysphoria\n- exhaustion\n- pure depression\n- the general fucking feel of the 'lesson'\n- pointless 'lesson'\n- i fucking hate pe\n- i fucking hate pe\n- i fucking hate pe\n\ni might still be falling for my crush and ppl know lol, worst part is that were classmates,\nand like omg, why, i WANT to get over him but i just \u2728\u2728\u2728\u2728cannot\u2728\u2728\u2728\u2728 lol, i have\na hard time dropping feelings for ppl\n\nanyway i think this clusterfuck of a blog is good enough to be posted if you decide\nto say anything abt it dont scream kthxbye\n", + "content": "> before anything: this blog is a total mess, its basically a cloud of my\n> own thoughts and things i want to share and stuff, so if you want actual\n> content wrong blog post, but if you decide to read, dong judge it too hard\n> its 3:30 am and this is purely whats going on in my head at the time\n> if you have anything to say about this [email me](mailto:ari.web.xyz@gmail.com) or\n> leave your comment on [CaO](/c), btw dont expect this to be a family\n> friendly blog post at all lol, there are many triggers too btw bc\n> i dig into my brain a bit\n\nhello\n\ni rlly dont know why am i even writing this blog i just havent updated it since\n2022/12/03 and its 12/25 already, feels wrong, 22 days, i just havent had any\ninspiration, nothing to write about rlly, no new tutorials that come into my head,\nnothing, just pure b l a n k and i wanted to just talk about stuff ig, nothing\nspecific, just \u2728stuff\u2728\n\ntbh nothing new, christmas is here, never was a special thing for me, so just sitting\nat home doing nothing waiting for winter break to finish, school's halfway finished,\nwhich is weird, 2023's around the corner, 2022 ended too fast lol, watch us get into\nanother pandemic, it wasnt the year of desktop for linux, this year im *potentially*\nswitching to netbsd or openbsd, will make sure to at least try them on my own\nhardware, but i mean for development its gonna be a bit of a pain if i actually\ndecide to make the switch, plus i made a poll for like 50 ppl, a part of them answered\nand the poll was something like this:\n\n Poll: should i hop to netbsd, openbsd or stay on gentoo\n\n (0) netbsd\n (1) openbsd\n (2) gentoo\n\nand the majority (80%) answered gentoo, so probably staying on it, if i like netbsd or\nopenbsd a lot ill switch to it\n\nwhat more, idk, ketamine and ecstasy are kinda on my mind, like im not encouraging\ndrugs or anything, i havent done any in my life and shit, but besides that, im kinda\ncraving for their effects, with ketamine you just \u2728float off\u2728 and its kinda nice\nto have that at times and ecstasy is just free happiness, which would be nice to have\nat harder days, thinking about telling that to my psychologist lol\n\nspeaking of my psychologist, were kinda making progress, last time told her about my\neating stuff, almost cried, but whatever, nothing major\n\nmy IT teacher pushed me into a programming olympic and so far i passed all stages (school and\ncity) with an almost perfect score, so now ill be going to the 3rd stage which is country, although\nonly part 1, if i pass it im going to the country finale lol, using C++ there\n\nspeaking of IT, im thinking of redesigning ari-web prompt stuff as it kinda sucks, i\nmight start work on it soon, ill try to improve the code oh and i also extended the lifetime\nof `ari-web.xyz` domain a couple of days ago, by that i mean i just shoved more money\ninto the domain so i own it for longer, like adding years to ownership lol\n\ngetting bored of my playlist, all songs have been heard by me like 100000 times, lofi\nis fine, but it also gets old at times, \"My mix\" youtube playlists have been saving my\nass for a bit, but theyre also getting boring, im finding less enjoyment in music\nthis way, which is sad, no energy either, so \ud83d\ude2b\n\nbeen thinking about changing my github username, i know to what specifically, but its gonna\nbreak so much if i decide to, but i could make an organisation with the username i want, but\nthen what am i gonna put there ? like theres absolutely nothing i can think of putting\non there, personal projects go on my own github, which is like \u2728everything\u2728 so ... do i just make\nthe org and leave it empty lol ? i mean kinda a waste, idk\n\ni keep thinking about my psychiatrist, i found a person irl who goes to the same one as i do\nand theyre not having a good time like me, my psychiatrist is like a total unqualified bitch,\nleft her a few low/terrible ratings and 1 star reviews, if i could id give her 0 stars,\nshe doesnt even deserve the 1 star, idiotic shit\n\ngonna go to my grandma tmrw maybe, i wanna go for a walk, although its already pretty\nlate so if i dont fall asleep ill probably be dead tmrw lol, either way, i have\nnot been very energetic for the past couple of months lol\n\nngl overthinking is no, i overthink a lot and i keep getting mad at myself for\na lot of things, like what could have i said and stuff yk lol, this shit is even making\nme think to stop going to my psychologist, like i overthink the psychologist sessions\n***SO MUCH*** lol\n\nwatched a video a couple of weeks ago, it was about autistic trans ppl and as im an\nautistic trans person i was interested, seems like we, the autistic ppl, are 11 times\nas likely to be trans compared to an average person, its apparently also a sign of\nautism to have issues with your gender, which makes sense as i always had issues\nwith it, sad to know that 'its just a sign', but still, i also noticed that the time\npasses by faster the older i get lol, becoming a true grandma now\n\ni told my psychologist one thing, it was something like this, just in lithuanian obviously:\n\n> ill be honest, i hide some stuff from you and other doctors, the lithuanian mental\n> healthcare system fucking SUCKS A LOT, like A LOT A LOT, i have to lie or just hide\n> things from you because i dont want to get put into a mental hospital, mental stimulation\n> depravation makes my mind go into a \"bad mode\" which is literally what a mental hospital\n> is, i lied to you multiple times already to try to not get put into one and in lithuania\n> all they do is just shove you into a mental hospital and just give 0 shits about you\n\nso yeah lmao, lithuania fucking sucks for mental shit, getting mental healthcare is hard\nenough here, but getting proper mental healthcare is *impossible*, you have to watch your\nevery word if you dont want to just get shoved into a mental hospital, its fucking idiotic\n\ni kinda like this mind cluster-fuck of a blog post, its nice just thinking of shit and\njust typing it out lol\n\na person gave me a question idr how long ago but it was\n\n> if youre so depressed why dont you kill yourself already\n\nwell, i still want to see what life can offer until my ultimate demise, i mean\nso far it isnt anything good lol, but oh well\n\nwas watching my hands like a week ago and i found that they look a lot like frog hands, like\nthe bones and shit, fingers, just f r o g lol\n\ntoday i saw how bloated rust is, so, i shrunk my `/` part to `20 GB` few days ago and it was\nfine and uh, i decided to start my system update today and rust source code takes up 11+ GB\nof storage, funny because firefox takes up much less while being a much more complex program,\ngod, rust is a fucking disappointment lol\n\nremember how i was bald last year ? i was gonna shave my head again, then decided not\nto lol, it was a whole mess, i was scared, thought id probably feel good for a split\nsecond, but then like shit and then just polls and shit and ugh it was a mess, i just\ndecided to keep my hair, glad i did\n\nhm, im digging deeper and deeper into my brain, we went from christmas to this, interesting,\ni mean thats kinda what this blog is, me digging deeper and deeper into my 1 braincell width\nbrain lol\n\nim confused why ppl still use arigram, a telegram client i made, i mean its nice and stuff\nbut its kinda a deadish project, i dont work on it anymore, meaning the new stuff telegram\nadds is just going to show up as `[MessageUnsupported]` which isnt useful is it lol, i rlly\nneed to change the arigram api to work better with the new telegram shit dynamically lol, i\nmean i literally use arigram myself and it doesnt bother me but i mean others might not be\nable to work with it as well as i can lol\n\nlol im still on the `5.16.7` kernel, i dont like `5.15.x` and the new kernel sucks so im\nsticking to the old one and probably never updating, that is *if* im even staying on linux\nlol, remember, the netbsd/openbsd thing ?\n\nwhy does PE *(physical 'education')* even exist, 'movement' my ass, i came to school not to\n'move' but to learn and get a diploma, i literally am so exhausted after PE, can barely learn,\ni fucking hate PE, it makes me feel like shit in so many ways i cant, at times i even begin\nto cry BECAUSE i have PE that day, its stupid stupid lol, reasons why i hate pe:\n\n- dysphoria\n- exhaustion\n- pure depression\n- the general fucking feel of the 'lesson'\n- pointless 'lesson'\n- i fucking hate pe\n- i fucking hate pe\n- i fucking hate pe\n\ni might still be falling for my crush and ppl know lol, worst part is that were classmates,\nand like omg, why, i WANT to get over him but i just \u2728\u2728\u2728\u2728cannot\u2728\u2728\u2728\u2728 lol, i have\na hard time dropping feelings for ppl\n\nanyway i think this clusterfuck of a blog is good enough to be posted if you decide\nto say anything abt it dont scream kthxbye", "keywords": [ "fuck", "mind", @@ -1969,7 +1969,7 @@ "comparison-between-the-oh-my-bash-and-baz-plugin-managers-for-gnu-bash": { "title": "comparison between baz, sheldon and oh-my-bash plugin managers for gnu bash", "description": "baz ( my bash plugin manager ) vs sheldon vs omb, who will win ?", - "content": "_( this post used to cover only baz and omb )_\n\ntoday ill be comparing these plugin managers for GNU BASH :\n\n- [baz](https://ari-web.xyz/gh/baz) plugin manager for GNU BASH\n- [sheldon](https://github.com/rossmacarthur/sheldon) plugin manager for GNU BASH and ZSH\n- [oh-my-bash](https://github.com/ohmybash/oh-my-bash) plugin manager for GNU BASH\n\n## testing environment\n\nfresh installation of [void linux](https://voidlinux.org/), GLibC edition\n\n- QEMU\n - KVM\n - UEFI enabled ( `/usr/share/edk2-ovmf/OVMF_CODE.fd` )\n- 2048 MB of RAM\n- 2 CPU cores\n - host CPU : intel i3 8 th generation\n- 128 MB of VRAM\n- 30 GB QCOW2 storage\n - 300 MB boot ( vfat )\n - 4 GB swap ( swap )\n - 25.7 GB root ( ext4 )\n- BASH version : `5.1.16`\n - baz version : `v6.2.0`\n - sheldon version : `0.7.1`\n - omb version : \n\n## collection of data\n\ni just run this command :\n\n for _ in $(seq 1000); do { /usr/bin/time -f '%e' bash -ic exit 2>&1 | tail -n 1; }; done >out.dat\n\nthis collects run time for 1000 runs\n\nbut please remember to exit the shell at least once and reenter it to reload the plugins fully,\nand in for example sheldon plugin manager case -- to lock the lockfile and install new plugins,\ni also reboot the vm every time i install a new plugin manager or install any plugin using it\n\nall omb, sheldon and baz required `git`, but sheldon on top of that needed 138 extra creates, rust,\ncargo, openssl lib, gcc, pkg-config and so on\n\n## data\n\ni have been able to collect 6 data sets :\n\n- `baz-beefy.dat`\n- `baz-startup.dat`\n- `omb-beefy.dat`\n- `omb-startup.dat`\n- `sheldon-beefy.dat`\n- `sheldon-startup.dat`\n\n`-startup` is just normal startup time per average, i made sure to enter the changed env at least once,\nno plugins or anything of sort, for omb its with all of its default plugins, aliases and etc disabled\n\n`-beefy` for baz and omb is the agnoster plugin, and for sheldon, an equivalent beefy plugin -- `base16-shell`\nas theres no documentation on how to make a plugin for sheldon nor is there an agnoster plugin for it\n\n## statistics\n\ni quickly wrote a shitty python script to take care of the data, if you want it, grab it along\nwith all data i collected in <#:links>, its an xz compressed tarball\n\n parsing 'baz-startup.dat'\n parsing 'sheldon-startup.dat'\n parsing 'sheldon-beefy.dat'\n parsing 'baz-beefy.dat'\n parsing 'omb-beefy.dat'\n parsing 'omb-startup.dat'\n\n statistics for 'baz'\n category 'beefy' :\n average : 0.01\n median : 0.01\n total : 12.97\n category 'startup' :\n average : 0.01\n median : 0.01\n total : 10.31\n\n statistics for 'omb'\n category 'beefy' :\n average : 0.11\n median : 0.12\n total : 112.75\n category 'startup' :\n average : 0.11\n median : 0.12\n total : 109.84\n\n statistics for 'sheldon'\n category 'beefy' :\n average : 0.29\n median : 0.28\n total : 286.07\n category 'startup' :\n average : 0.02\n median : 0.02\n total : 19.41\n\n === leaderboard ===\n\n in category 'beefy'\n #1 baz\n #2 omb\n #3 sheldon\n\n in category 'startup'\n #1 baz\n #2 sheldon\n #3 omb\n\n in total\n #1 baz\n #2 omb\n #3 sheldon\n\nas we can see, `baz` is the winner\n\n## plugins used\n\n- for baz : \n- for omb : \n- for sheldon : \n\n## opinions\n\nwell, i was biased before and now i also got statistics to prove my bias,\ni love baz and i think its a much better alternative to most other plugin managers\nfor bash, reasons to like it are that its very easy to make plugins for, very\neasy to use and maintain, its relatively small, its fully open source and\nunder the gpl3 license, its fast, written in pure bash, optimised, etc.\n\nwhen i found sheldon i expected more from it because its written in a compiled language,\napparently it can be worse than omb even, oh well, i think the hype is all because of rust,\nhope this post contributes something to development of both omb and sheldon\n\nalso, if you want me to fairly test all of them ( using one single plugin ) please\nnotify me and link me the plugins, i will immediately get to work updating this blog\nand if baz underperforms -- i will optimise it more, although at this point i dont\nthink there is much room to optimise, although i think the `base16` plugin is as beefy\nas the agnoster one\n\n## links\n\n- \n", + "content": "_( this post used to cover only baz and omb )_\n\ntoday ill be comparing these plugin managers for GNU BASH :\n\n- [baz](https://ari.lt/gh/baz) plugin manager for GNU BASH\n- [sheldon](https://github.com/rossmacarthur/sheldon) plugin manager for GNU BASH and ZSH\n- [oh-my-bash](https://github.com/ohmybash/oh-my-bash) plugin manager for GNU BASH\n\n## testing environment\n\nfresh installation of [void linux](https://voidlinux.org/), GLibC edition\n\n- QEMU\n - KVM\n - UEFI enabled ( `/usr/share/edk2-ovmf/OVMF_CODE.fd` )\n- 2048 MB of RAM\n- 2 CPU cores\n - host CPU : intel i3 8 th generation\n- 128 MB of VRAM\n- 30 GB QCOW2 storage\n - 300 MB boot ( vfat )\n - 4 GB swap ( swap )\n - 25.7 GB root ( ext4 )\n- BASH version : `5.1.16`\n - baz version : `v6.2.0`\n - sheldon version : `0.7.1`\n - omb version : \n\n## collection of data\n\ni just run this command :\n\n for _ in $(seq 1000); do { /usr/bin/time -f '%e' bash -ic exit 2>&1 | tail -n 1; }; done >out.dat\n\nthis collects run time for 1000 runs\n\nbut please remember to exit the shell at least once and reenter it to reload the plugins fully,\nand in for example sheldon plugin manager case -- to lock the lockfile and install new plugins,\ni also reboot the vm every time i install a new plugin manager or install any plugin using it\n\nall omb, sheldon and baz required `git`, but sheldon on top of that needed 138 extra creates, rust,\ncargo, openssl lib, gcc, pkg-config and so on\n\n## data\n\ni have been able to collect 6 data sets :\n\n- `baz-beefy.dat`\n- `baz-startup.dat`\n- `omb-beefy.dat`\n- `omb-startup.dat`\n- `sheldon-beefy.dat`\n- `sheldon-startup.dat`\n\n`-startup` is just normal startup time per average, i made sure to enter the changed env at least once,\nno plugins or anything of sort, for omb its with all of its default plugins, aliases and etc disabled\n\n`-beefy` for baz and omb is the agnoster plugin, and for sheldon, an equivalent beefy plugin -- `base16-shell`\nas theres no documentation on how to make a plugin for sheldon nor is there an agnoster plugin for it\n\n## statistics\n\ni quickly wrote a shitty python script to take care of the data, if you want it, grab it along\nwith all data i collected in <#:links>, its an xz compressed tarball\n\n parsing 'baz-startup.dat'\n parsing 'sheldon-startup.dat'\n parsing 'sheldon-beefy.dat'\n parsing 'baz-beefy.dat'\n parsing 'omb-beefy.dat'\n parsing 'omb-startup.dat'\n\n statistics for 'baz'\n category 'beefy' :\n average : 0.01\n median : 0.01\n total : 12.97\n category 'startup' :\n average : 0.01\n median : 0.01\n total : 10.31\n\n statistics for 'omb'\n category 'beefy' :\n average : 0.11\n median : 0.12\n total : 112.75\n category 'startup' :\n average : 0.11\n median : 0.12\n total : 109.84\n\n statistics for 'sheldon'\n category 'beefy' :\n average : 0.29\n median : 0.28\n total : 286.07\n category 'startup' :\n average : 0.02\n median : 0.02\n total : 19.41\n\n === leaderboard ===\n\n in category 'beefy'\n #1 baz\n #2 omb\n #3 sheldon\n\n in category 'startup'\n #1 baz\n #2 sheldon\n #3 omb\n\n in total\n #1 baz\n #2 omb\n #3 sheldon\n\nas we can see, `baz` is the winner\n\n## plugins used\n\n- for baz : \n- for omb : \n- for sheldon : \n\n## opinions\n\nwell, i was biased before and now i also got statistics to prove my bias,\ni love baz and i think its a much better alternative to most other plugin managers\nfor bash, reasons to like it are that its very easy to make plugins for, very\neasy to use and maintain, its relatively small, its fully open source and\nunder the gpl3 license, its fast, written in pure bash, optimised, etc.\n\nwhen i found sheldon i expected more from it because its written in a compiled language,\napparently it can be worse than omb even, oh well, i think the hype is all because of rust,\nhope this post contributes something to development of both omb and sheldon\n\nalso, if you want me to fairly test all of them ( using one single plugin ) please\nnotify me and link me the plugins, i will immediately get to work updating this blog\nand if baz underperforms -- i will optimise it more, although at this point i dont\nthink there is much room to optimise, although i think the `base16` plugin is as beefy\nas the agnoster one\n\n## links\n\n- ", "keywords": [ "qemu", "benchmark", @@ -2008,7 +2008,7 @@ "gnu-bash-script-and-general-code-optimisation-tips": { "title": "gnu bash script and general code optimisation tips", "description": "gnu bash optimization tips, and overall code, but mainly bash bc thats sometimes important lol", - "content": "Over the years that I have been programming I had quite a few\nmoments when I had to optimise code, so today I have decided to share\nhow I do it, you might find this useful\n\n## BASH script optimisation\n\n> Note: A lot of these points can be also applied to the next\n> section\n\n- Avoid forks and sub-shells, it might not look like much but it **_REALLY_** impacts\n your program's performance, like... By a lot, so avoid them\n - Prefer using built-in BASH commands (<#:Example 1>)\n rather than calling external commands\n - Some `builtin`s are faster than others (<#:Example 12>)\n - Prefer using the `-v` syntax rather than using a sub-shell, capturing\n the output and saving it, by `-v` syntax I mean\n a command writing _directly_ to the variable (<#:Example 2>)\n - Prefer using native BASH rather than calling commands (<#:Example 3>)\n- Avoid looping, as in any interpreted programming language it's slow to\n loop in BASH\n- Avoid complex commands (<#:Example 4>)\n - Avoid complexity in general even if it sacrifices ease (<#:Example 5>)\n - Be smart about the commands you call, call simpler ones (<#:Example 6>)\n- Less is more, if you're not using BASH features, why not stick to `sh` ?\n It's faster, or even use some other POSIX complient shell, for example DASH\n or KSH\n- If your code is being `source`d or in general, why not have a pre-processing\n or build step, for example let's say you have optional logging enabled by some\n environment variable, why not make that build-time, for example\n does it, strip away comments and stuff\n - While you're at it, why not mangle names at build time to\n be shorter ? Shorter scripts from what I know run _slightly_ faster\n as BASH has to read less and parse less\n- Avoid disk I/O (<#:Example 7>)\n- Store data in variables rather than generating it over and over again\n for example BASH escapes `$'\\n'`, it gives a _very slight_ performance\n boost (<#:Example 8>)\n- Prefer doing everything in one rather than one-by-one (<#:Example 9>)\n\n## General code optimisation\n\n- Prefer compilation, transpilation or pre-evaluation over\n pure interpretation\n - Even if the transpilation is into bytecode, it doesn't matter,\n it'll still be faster than pure interpretation, for example\n python bytecode is faster than raw python\n- Buffering is underrated, calling many `syscall`s is expensive,\n have a larger buffer instead ! (<#:Example 10>)\n- Prioritise simplicity over ease, abstractions often cause\n more complex code\n- Use low level code, it's much faster than pure abstractions\n - Low level code gives you more control and is closer\n to hardware meaning is much faster than machine-generated\n assembly with preparation steps and things, you can do\n just what you want with low level code, although it's not\n easier, simple, but not easy\n- Prefer smaller size, smaller assembly instructions and registers\n- Find faster ways to do things, there always is at least one\n ()\n- Prefer doing less for a similar result (<#:Example 11>)\n\n## Examples\n\n### Example 1\n\n x=\"$(cat -- /etc/passwd)\"\n\nFaster:\n\n x=\"$(/tmp/x\n echo \"Info: $( Note: A lot of these points can be also applied to the next\n> section\n\n- Avoid forks and sub-shells, it might not look like much but it **_REALLY_** impacts\n your program's performance, like... By a lot, so avoid them\n - Prefer using built-in BASH commands (<#:Example 1>)\n rather than calling external commands\n - Some `builtin`s are faster than others (<#:Example 12>)\n - Prefer using the `-v` syntax rather than using a sub-shell, capturing\n the output and saving it, by `-v` syntax I mean\n a command writing _directly_ to the variable (<#:Example 2>)\n - Prefer using native BASH rather than calling commands (<#:Example 3>)\n- Avoid looping, as in any interpreted programming language it's slow to\n loop in BASH\n- Avoid complex commands (<#:Example 4>)\n - Avoid complexity in general even if it sacrifices ease (<#:Example 5>)\n - Be smart about the commands you call, call simpler ones (<#:Example 6>)\n- Less is more, if you're not using BASH features, why not stick to `sh` ?\n It's faster, or even use some other POSIX complient shell, for example DASH\n or KSH\n- If your code is being `source`d or in general, why not have a pre-processing\n or build step, for example let's say you have optional logging enabled by some\n environment variable, why not make that build-time, for example\n does it, strip away comments and stuff\n - While you're at it, why not mangle names at build time to\n be shorter ? Shorter scripts from what I know run _slightly_ faster\n as BASH has to read less and parse less\n- Avoid disk I/O (<#:Example 7>)\n- Store data in variables rather than generating it over and over again\n for example BASH escapes `$'\\n'`, it gives a _very slight_ performance\n boost (<#:Example 8>)\n- Prefer doing everything in one rather than one-by-one (<#:Example 9>)\n\n## General code optimisation\n\n- Prefer compilation, transpilation or pre-evaluation over\n pure interpretation\n - Even if the transpilation is into bytecode, it doesn't matter,\n it'll still be faster than pure interpretation, for example\n python bytecode is faster than raw python\n- Buffering is underrated, calling many `syscall`s is expensive,\n have a larger buffer instead ! (<#:Example 10>)\n- Prioritise simplicity over ease, abstractions often cause\n more complex code\n- Use low level code, it's much faster than pure abstractions\n - Low level code gives you more control and is closer\n to hardware meaning is much faster than machine-generated\n assembly with preparation steps and things, you can do\n just what you want with low level code, although it's not\n easier, simple, but not easy\n- Prefer smaller size, smaller assembly instructions and registers\n- Find faster ways to do things, there always is at least one\n ()\n- Prefer doing less for a similar result (<#:Example 11>)\n\n## Examples\n\n### Example 1\n\n x=\"$(cat -- /etc/passwd)\"\n\nFaster:\n\n x=\"$(/tmp/x\n echo \"Info: $( Keep it minimal, simple and avoid using bloat, also make sure to\n> keep going rather than giving up, learn rather than use some shit\n> service, experience with code also helps\n\n## Have prior programming experience\n\nYou'll need to have prior programming experience to understand what is really\ngoing on even though nor HTML nor CSS (the bare base of your website) are programming\nlanguages, many answers you'll find online will also use terminology that you won't\nunderstand if you don't have at least a bit of it\n\nEven if you don't have prior programming experience, please don't resort to website\nbuilders or static site generators, it won't teach you anything, rather\nlearn some programming language like python or even JavaScript, JavaScript alongside\nHTML and CSS is a huge part of the web stack\n\nAnyway, if you don't have any experience, gain some and then come back, unless\nyou want to just have a read, then go ahead :) Although without it, you won't\nget too far probably\n\n## Learn basic HTML and CSS\n\nFirst up, before you can do anything you'll probably want to learn HTML,\nto style it you'll probably want to learn CSS, although I have recommend\nthis to many people, they seem to not understand what learning is, they\nfind a tutorial and copy off it and then end up using inline `style` attrs\nor `style` tags in html, they begin making their HTML messy and invalid\nand generally make their site so messy and broken it becomes an unmaintanable\nmess, so what you should do\n\n- Learn what HTML and CSS are, you need like 10 mins to look up the definitions and stuff\n- Learn HTML\n - It can be learned in max 2 hours, a good tutorial I recommend: \n - Don't copy from the tutorial, make sure to understand what you're doing\n- Learn CSS\n - Look up a basic tutorial (e.g. )\n - Once again **_DON'T COPY_**, understand and do\n\nOnce you have the bare minimum, make a simple HTML document and save it,\nthis will serve you the purpose of archiving your progress and you'll be able to\nsee how much you reached in like a month\n\nTo help you get started, here's quite a good template to start with:\n\n \n \n \n \n \n \n Your title\n\n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n\n## JavaScript\n\nJavaScript is a programming language made for the web, or at least is a huge part of the\nweb stack, but these days it can run even serverside code using nodejs, but JavaScript (JS/js)\nis quite painful to code in, so if you want a better experience with programming on\nthe internet for your website try TypeScript (TS/ts) out\n\nYou'll use JavaScript to handle logic on your website, for example if you want to check\nwhat a user has entered in a text box or managing state(s)\n\nAlthough JS or TS are more than optional, hell, even CSS is optional,\nbut if you want to make your site at least slightly nice you'll probably want\n_at least_ CSS\n\n## Never say \"it's too hard\"\n\nAfter all of this, many people (including quite a few of my friends) would (or are) say\n\"it's too hard\" and resort to using some site builder with WIX or use a static site\ngenerator which bloats up your site to unbelievable levels, \"it's easier\" you'll say,\neven though this will end up making your site low-key shit and you'll have to deliver\nmegabytes of content to your website visitors which is not pleasant for anyone, nor you\nhosting it (we'll get to it later) nor the user visiting it, especially if they have\na bad internet connection, it doesn't teach you anything either, just bad in general,\nplease keep pushing, you can do it\n\nAlso, most web frameworks also cost a shit-ton of money and have mannnyyy hidden\nfees and spyware, so just stay away from them\n\n## Avoid frameworks\n\nFrameworks, although useful when you understand what everything means, don't teach you\nanything, and once again bloat up your site\n\n## Separate and track your learning\n\nBy separating and tracking your learning progress you'll see how much\nyou reached, how you improved and what you did to improve, you will also\nhave a great resource to\n\n## Manual is better (usually)\n\nIf you do most things manually (as in not using too many frameworks) you'll gain more\nknowledge and make your site smaller and simpler overall, I prefer to do things manually\nand I made my site quite small, while frameworks (e.g. react or bootstrap (they are not comparable, but just examples))\ntend to be huuuuggggeee in size, meaning your users will have to a) depend on 3rd party\ncode and make your site worse and even then, if you're using the framework you are,\nyou're learning the framework, not the actual logic (e.g. if you're using bootstrap, you're\nlearning bootstrap, not CSS)\n\nAlthough, note the _(usually)_, for example this blog is generated by my own\nstatic site generator which optimises stuff and makes it accessible for everyone,\nit doesn't bloat anything up, so if you have something like this (a blog), I'd\nsuggest writing your own or using a small static site generator, at least from\nthat you learn something\n\nThis blog generator is quite simple, creation of a blog is like\n\n> Markdown + text -> base64 encoding -> JSON\n\nAnd generation\n\n> JSON -> base64 decoder -> markdown -> HTML -> minification -> index.html file in a designated directory\n\n## Writing your site\n\nAfter all of this, you probably have few documents you can refer to,\nthis will be a great resource for you if you forget something, but don't be\nscared to look things up, it's normal and a part of a developer's experience,\nnobody, and I mean _nobody_ in 2022 knows how to center a div without\nlooking it up lol\n\nBut, besides that, here's a few tips to help you\n\n- Automate only if needed\n - For example if you have something like a blog with many pages\n- Don't focus on SEO, this will only make your site worse\n - Although basic SEO is fine, like adding a `sitemap.xml` or `robots.txt` or something\n - Don't add like a milion `meta` tags too, just like 10 at max is good enough\n- Focus on A11y (accessibility), because it's quite important for your site to be accessible to anyone, try using:\n - Semantic elements\n - CSS media queries\n - Accessible design\n - ARIA attrs\n- Less is more, don't (over)use (over)complicated logic and frameworks with huge sizes, use little to get the result you desire\n- Every little thing matters, especially on the web, every little bit of performance matters\n - Asset optimisation is good, but make sure to not overdo it to the point only the newest browsers can run it\n - For example asset optimisation _at build time_ is an amazing example of much needed asset optimisation,\n although optional if you don't really care\n - Server-side gzip compression also helps\n - Image compression helps, quite a needed one especially if you have many images\n - Bundling can and does help, but isn't super major and plus can break some functionality\n - And don't forget about logic and CSS optimisation\n- Don't add tracking, it just introduces security vulns, bloat, distrust and general bad things\n- New technology can wait, let it develop and be supported amongst more browsers\n- Just like when you were learning, don't be scared to separate content into different folders and files\n - Fun thing: if you want a page without `.html` at the end just, make a directory with the page name you want and\n have `index.html` in it, but your server might support doing that automatically :)\n- Have a place to test and run your site temporally\n - A dev server is important, because `file://` is usually not a good place to test it, use like [live-server](https://www.npmjs.com/package/live-server), I use it and I like it personally\n- Use a VCS\n - Although doesn't _mean_ you have to make it open source (although you should (we'll talk about it)),\n you should still use a VCS, `git` is probably the most popular one, while building your site you're going to have many fuck-ups\n and you'll want to say \"eh, fuck it\" and reset all of your changes, well, without a VCS.. Good luck lol\n - But this means you will have to learn a VCS, no, a VCS is not 'press upload button to GitHub', use the CLI\n\nThese are some things I could thing of, I use them all lol, anyway, let's continue\n\n## Open source\n\nMany people would say 'WhO tHe fUcK nEEdS thE sOurCE cODe oF A sItE' and that's just an idiotic\nmindset to say the least, anyway, here's some good things that come with making your website\nopen source\n\n- You're helping the open source community grow\n- You're showing all changes you make to the public\n- It's basically free advertising\n- You show what your site does to the public, meaning it creates the feeling of trust\n- You feel more accomplished when you show something to people and they like it\n\n> _also if your point of not making it open source is just 'just open the dev tools'\n> you're stupid, but you know what, okay then, send me the source code of google\n> to my email, would be appreciated.. Oh waitttt you can't because it's not the full\n> assets, it's obfuscated and minified and plus it's probably modified_\n\n## Hosting\n\nHosting is when you actually let people see the stuff you made, hosting your code is one thing,\nbut hosting your site is another, I personally use [netlify](https://netlify.com/), it's an amazing, free and non-scummy\nplatform for hosting your _static_ site, it also provides amazing [documentation](https://docs.netlify.com/),\n[help](https://answers.netlify.com/) and [customisation](https://docs.netlify.com/configure-builds/file-based-configuration/)\nand all of this for free, although more limiting, a good choice is also [GitHub](https://pages.github.com/) or [GitLab](https://docs.gitlab.com/ee/user/project/pages/)\npages\n\nAlthough I think out of those 3 netlify is the best choice for _static_ sites :)\n\nBut if you want something server-side, I doubt you'll be able to find anything\nfree, but this is not a\n\n## Publicising and sharing\n\nDon't be annoying about it and don't shove it into everyone's face, just add it to\nyour bio, put it on something like [wiby](https://wiby.me/) and be happy, it's not a competition,\njust make fun things and people will like it :)\n\nYou can also share it with your friends and other strangers which are interested\n\n## What can you do on your site\n\n- Host files\n- Make a blog\n- Have fun with code\n- Explore random frameworks (when you already know what you're doing)\n- Talk to people\n- Share your projects, thoughts and opinions\n- Learn !\n\n## Don't allow people to get in your way\n\nNot everyone is going to like your site, if they call it shit, who cares,\nit's your place to do anything, for example would you burn your house down if\nsomeone didn't like it, it's yours, you're good with it and you need to enjoy\nit, it's your own property, just virtual\n\n## Domain name\n\nDomain names are _really_ optional as most hosting services provide\na subdomain, e.g. , but you might like having\nyour domain like which is shorter and just nicer,\nfor domains you will have to pay, for example buy it from ,\nbut there are services which provide free domains to people, those domains\nhave very low value though, like .tk and .ga are usually flagged as untrustworthy\nand don't grow as fast\n\nAfter you get a domain name you might want to set up HTTPS (if you don't already\nhave it) and submit it to the HSTS preload list which will ensure the security\nof users visiting your site\n\n## That's about it\n\nWell... That's about it, it's a long process and getting it more popular is even\nharder, but don't try hard, don't be annoying about it to people and just make\nthings you like and people will find it, anyway, hope you found this blog useful\nand I inspired you to join the web world, hope to see another web neighbour in the\nnear future :)\n\nHave a nice day and goodbye :)\n", + "content": "A lot of people want to have a personal space and property on the internet,\nbut a lot of them don't know how... So today I'm going to be showing you\nhow you should go about making a website\n\nAlso, you should not straight up copy everything here,\nyou should just read it and use it as a rough outline, you should\nnever copy off tutorials or anything of sort\n\n## Tl;Dr\n\n> Keep it minimal, simple and avoid using bloat, also make sure to\n> keep going rather than giving up, learn rather than use some shit\n> service, experience with code also helps\n\n## Have prior programming experience\n\nYou'll need to have prior programming experience to understand what is really\ngoing on even though nor HTML nor CSS (the bare base of your website) are programming\nlanguages, many answers you'll find online will also use terminology that you won't\nunderstand if you don't have at least a bit of it\n\nEven if you don't have prior programming experience, please don't resort to website\nbuilders or static site generators, it won't teach you anything, rather\nlearn some programming language like python or even JavaScript, JavaScript alongside\nHTML and CSS is a huge part of the web stack\n\nAnyway, if you don't have any experience, gain some and then come back, unless\nyou want to just have a read, then go ahead :) Although without it, you won't\nget too far probably\n\n## Learn basic HTML and CSS\n\nFirst up, before you can do anything you'll probably want to learn HTML,\nto style it you'll probably want to learn CSS, although I have recommend\nthis to many people, they seem to not understand what learning is, they\nfind a tutorial and copy off it and then end up using inline `style` attrs\nor `style` tags in html, they begin making their HTML messy and invalid\nand generally make their site so messy and broken it becomes an unmaintanable\nmess, so what you should do\n\n- Learn what HTML and CSS are, you need like 10 mins to look up the definitions and stuff\n- Learn HTML\n - It can be learned in max 2 hours, a good tutorial I recommend: \n - Don't copy from the tutorial, make sure to understand what you're doing\n- Learn CSS\n - Look up a basic tutorial (e.g. )\n - Once again **_DON'T COPY_**, understand and do\n\nOnce you have the bare minimum, make a simple HTML document and save it,\nthis will serve you the purpose of archiving your progress and you'll be able to\nsee how much you reached in like a month\n\nTo help you get started, here's quite a good template to start with:\n\n \n \n \n \n \n \n Your title\n\n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n\n## JavaScript\n\nJavaScript is a programming language made for the web, or at least is a huge part of the\nweb stack, but these days it can run even serverside code using nodejs, but JavaScript (JS/js)\nis quite painful to code in, so if you want a better experience with programming on\nthe internet for your website try TypeScript (TS/ts) out\n\nYou'll use JavaScript to handle logic on your website, for example if you want to check\nwhat a user has entered in a text box or managing state(s)\n\nAlthough JS or TS are more than optional, hell, even CSS is optional,\nbut if you want to make your site at least slightly nice you'll probably want\n_at least_ CSS\n\n## Never say \"it's too hard\"\n\nAfter all of this, many people (including quite a few of my friends) would (or are) say\n\"it's too hard\" and resort to using some site builder with WIX or use a static site\ngenerator which bloats up your site to unbelievable levels, \"it's easier\" you'll say,\neven though this will end up making your site low-key shit and you'll have to deliver\nmegabytes of content to your website visitors which is not pleasant for anyone, nor you\nhosting it (we'll get to it later) nor the user visiting it, especially if they have\na bad internet connection, it doesn't teach you anything either, just bad in general,\nplease keep pushing, you can do it\n\nAlso, most web frameworks also cost a shit-ton of money and have mannnyyy hidden\nfees and spyware, so just stay away from them\n\n## Avoid frameworks\n\nFrameworks, although useful when you understand what everything means, don't teach you\nanything, and once again bloat up your site\n\n## Separate and track your learning\n\nBy separating and tracking your learning progress you'll see how much\nyou reached, how you improved and what you did to improve, you will also\nhave a great resource to\n\n## Manual is better (usually)\n\nIf you do most things manually (as in not using too many frameworks) you'll gain more\nknowledge and make your site smaller and simpler overall, I prefer to do things manually\nand I made my site quite small, while frameworks (e.g. react or bootstrap (they are not comparable, but just examples))\ntend to be huuuuggggeee in size, meaning your users will have to a) depend on 3rd party\ncode and make your site worse and even then, if you're using the framework you are,\nyou're learning the framework, not the actual logic (e.g. if you're using bootstrap, you're\nlearning bootstrap, not CSS)\n\nAlthough, note the _(usually)_, for example this blog is generated by my own\nstatic site generator which optimises stuff and makes it accessible for everyone,\nit doesn't bloat anything up, so if you have something like this (a blog), I'd\nsuggest writing your own or using a small static site generator, at least from\nthat you learn something\n\nThis blog generator is quite simple, creation of a blog is like\n\n> Markdown + text -> base64 encoding -> JSON\n\nAnd generation\n\n> JSON -> base64 decoder -> markdown -> HTML -> minification -> index.html file in a designated directory\n\n## Writing your site\n\nAfter all of this, you probably have few documents you can refer to,\nthis will be a great resource for you if you forget something, but don't be\nscared to look things up, it's normal and a part of a developer's experience,\nnobody, and I mean _nobody_ in 2022 knows how to center a div without\nlooking it up lol\n\nBut, besides that, here's a few tips to help you\n\n- Automate only if needed\n - For example if you have something like a blog with many pages\n- Don't focus on SEO, this will only make your site worse\n - Although basic SEO is fine, like adding a `sitemap.xml` or `robots.txt` or something\n - Don't add like a milion `meta` tags too, just like 10 at max is good enough\n- Focus on A11y (accessibility), because it's quite important for your site to be accessible to anyone, try using:\n - Semantic elements\n - CSS media queries\n - Accessible design\n - ARIA attrs\n- Less is more, don't (over)use (over)complicated logic and frameworks with huge sizes, use little to get the result you desire\n- Every little thing matters, especially on the web, every little bit of performance matters\n - Asset optimisation is good, but make sure to not overdo it to the point only the newest browsers can run it\n - For example asset optimisation _at build time_ is an amazing example of much needed asset optimisation,\n although optional if you don't really care\n - Server-side gzip compression also helps\n - Image compression helps, quite a needed one especially if you have many images\n - Bundling can and does help, but isn't super major and plus can break some functionality\n - And don't forget about logic and CSS optimisation\n- Don't add tracking, it just introduces security vulns, bloat, distrust and general bad things\n- New technology can wait, let it develop and be supported amongst more browsers\n- Just like when you were learning, don't be scared to separate content into different folders and files\n - Fun thing: if you want a page without `.html` at the end just, make a directory with the page name you want and\n have `index.html` in it, but your server might support doing that automatically :)\n- Have a place to test and run your site temporally\n - A dev server is important, because `file://` is usually not a good place to test it, use like [live-server](https://www.npmjs.com/package/live-server), I use it and I like it personally\n- Use a VCS\n - Although doesn't _mean_ you have to make it open source (although you should (we'll talk about it)),\n you should still use a VCS, `git` is probably the most popular one, while building your site you're going to have many fuck-ups\n and you'll want to say \"eh, fuck it\" and reset all of your changes, well, without a VCS.. Good luck lol\n - But this means you will have to learn a VCS, no, a VCS is not 'press upload button to GitHub', use the CLI\n\nThese are some things I could thing of, I use them all lol, anyway, let's continue\n\n## Open source\n\nMany people would say 'WhO tHe fUcK nEEdS thE sOurCE cODe oF A sItE' and that's just an idiotic\nmindset to say the least, anyway, here's some good things that come with making your website\nopen source\n\n- You're helping the open source community grow\n- You're showing all changes you make to the public\n- It's basically free advertising\n- You show what your site does to the public, meaning it creates the feeling of trust\n- You feel more accomplished when you show something to people and they like it\n\n> _also if your point of not making it open source is just 'just open the dev tools'\n> you're stupid, but you know what, okay then, send me the source code of google\n> to my email, would be appreciated.. Oh waitttt you can't because it's not the full\n> assets, it's obfuscated and minified and plus it's probably modified_\n\n## Hosting\n\nHosting is when you actually let people see the stuff you made, hosting your code is one thing,\nbut hosting your site is another, I personally use [netlify](https://netlify.com/), it's an amazing, free and non-scummy\nplatform for hosting your _static_ site, it also provides amazing [documentation](https://docs.netlify.com/),\n[help](https://answers.netlify.com/) and [customisation](https://docs.netlify.com/configure-builds/file-based-configuration/)\nand all of this for free, although more limiting, a good choice is also [GitHub](https://pages.github.com/) or [GitLab](https://docs.gitlab.com/ee/user/project/pages/)\npages\n\nAlthough I think out of those 3 netlify is the best choice for _static_ sites :)\n\nBut if you want something server-side, I doubt you'll be able to find anything\nfree, but this is not a\n\n## Publicising and sharing\n\nDon't be annoying about it and don't shove it into everyone's face, just add it to\nyour bio, put it on something like [wiby](https://wiby.me/) and be happy, it's not a competition,\njust make fun things and people will like it :)\n\nYou can also share it with your friends and other strangers which are interested\n\n## What can you do on your site\n\n- Host files\n- Make a blog\n- Have fun with code\n- Explore random frameworks (when you already know what you're doing)\n- Talk to people\n- Share your projects, thoughts and opinions\n- Learn !\n\n## Don't allow people to get in your way\n\nNot everyone is going to like your site, if they call it shit, who cares,\nit's your place to do anything, for example would you burn your house down if\nsomeone didn't like it, it's yours, you're good with it and you need to enjoy\nit, it's your own property, just virtual\n\n## Domain name\n\nDomain names are _really_ optional as most hosting services provide\na subdomain, e.g. , but you might like having\nyour domain like which is shorter and just nicer,\nfor domains you will have to pay, for example buy it from ,\nbut there are services which provide free domains to people, those domains\nhave very low value though, like .tk and .ga are usually flagged as untrustworthy\nand don't grow as fast\n\nAfter you get a domain name you might want to set up HTTPS (if you don't already\nhave it) and submit it to the HSTS preload list which will ensure the security\nof users visiting your site\n\n## That's about it\n\nWell... That's about it, it's a long process and getting it more popular is even\nharder, but don't try hard, don't be annoying about it to people and just make\nthings you like and people will find it, anyway, hope you found this blog useful\nand I inspired you to join the web world, hope to see another web neighbour in the\nnear future :)\n\nHave a nice day and goodbye :)\n", "keywords": [ "web", "html", @@ -2092,7 +2092,7 @@ "minimal-software-i-made-for-linux-systems": { "title": "minimal software i made for linux systems", "description": "software i like on linux thats minimalistic", - "content": "Hello world,\n\nSorry if I sound a bit dead, not in the best emotional state\nright now lmao, anyway, I'm going to introduce you to some minimal\nsoftware I made for Linux and I personally use\n\n## `Baz` plugin manager for GNU BASH\n\n`Baz` is a lightweight, fast and efficient plugin manager, it's made\nin pure bash, although used to also include some C, C++ and assembler\ncode, recently it has been removed and opted for built in GNU BASH features\nlike `readfile` rather than `baz-cat`\n\nI made this thing because all of the other plugin managers seem to be like\n'ha fuck it, let me call every single program in the world and take 302489789s to load',\nthat's not how I do it, I optimised the `baz` loader a lot and keep optimising\nit, it's getting faster and faster\n\nThis is quite a stable manager, have been using it since the first version\nand it didn't break even once\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Kos` -- the simple SUID tool written in C++\n\nTired of how large `sudo` is? Or how stupid `doas` is? Well.. Try `kos`,\nit's smaller than `doas` and obviously `sudo`, much faster, doesn't use PAM,\nquite secure from what I see, has good compile-time customisation and\ngenerally is a good alternative to at least `doas`, it works for me, works\nfor many other people so should work for you :)\n\nI personally have been using it for quite a while and it's good,\ntry it out if you feel like it :)\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n- Arch package: \n\n## `Lmgr` license manager\n\nI find it so annoying to manually license every single one of my projects,\nI now use `lmgr`, I just got a bunch of license templates set up and it's\neasy, I'm happy I made it\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Mkproj` project templater\n\nAlongside `lmgr`, `mkproj` comes in handy, it's super annoying to me personally\ndo things manually and if I want to make a project `mkproj` really helps lol\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Mkqemuvm` -- the small QEMU wrapper\n\nI usually don't change my QEMU vm options that often so I just made a script\nto help me make QEMU VMs easily:\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Pwdtools` tools for passwords\n\n`pwdtools` is another thing I quite often use, I use it to generate, store\nsometimes validate the security of passwords, it's nice, quite useful\n\nThis includes 2 password validators, password generator and a password manager,\nmight add more :)\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Filetools` tools for files\n\nAlthough `filetools` isn't as useful to me, it's nice to get good info about\ncertain files, like permissions, path info, owner, size, etc. super nice\nfor development too\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Bdwmb` -- the modular bar for DWM\n\nThe heading says it all, it's a simple, small and nice bar for\nDWM window manager, I use it, I like it lol\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n---\n\nThat's about it, although this is definably not all, just most major, I also\nrun my own stuff on top of those so my system is basically just my software,\nanyway, hope I introduced you to some of my software somewhat, anyway, have a\ngood day :)\n\nGoodbye\n", + "content": "Hello world,\n\nSorry if I sound a bit dead, not in the best emotional state\nright now lmao, anyway, I'm going to introduce you to some minimal\nsoftware I made for Linux and I personally use\n\n## `Baz` plugin manager for GNU BASH\n\n`Baz` is a lightweight, fast and efficient plugin manager, it's made\nin pure bash, although used to also include some C, C++ and assembler\ncode, recently it has been removed and opted for built in GNU BASH features\nlike `readfile` rather than `baz-cat`\n\nI made this thing because all of the other plugin managers seem to be like\n'ha fuck it, let me call every single program in the world and take 302489789s to load',\nthat's not how I do it, I optimised the `baz` loader a lot and keep optimising\nit, it's getting faster and faster\n\nThis is quite a stable manager, have been using it since the first version\nand it didn't break even once\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Kos` -- the simple SUID tool written in C++\n\nTired of how large `sudo` is? Or how stupid `doas` is? Well.. Try `kos`,\nit's smaller than `doas` and obviously `sudo`, much faster, doesn't use PAM,\nquite secure from what I see, has good compile-time customisation and\ngenerally is a good alternative to at least `doas`, it works for me, works\nfor many other people so should work for you :)\n\nI personally have been using it for quite a while and it's good,\ntry it out if you feel like it :)\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n- Arch package: \n\n## `Lmgr` license manager\n\nI find it so annoying to manually license every single one of my projects,\nI now use `lmgr`, I just got a bunch of license templates set up and it's\neasy, I'm happy I made it\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Mkproj` project templater\n\nAlongside `lmgr`, `mkproj` comes in handy, it's super annoying to me personally\ndo things manually and if I want to make a project `mkproj` really helps lol\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Mkqemuvm` -- the small QEMU wrapper\n\nI usually don't change my QEMU vm options that often so I just made a script\nto help me make QEMU VMs easily:\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Pwdtools` tools for passwords\n\n`pwdtools` is another thing I quite often use, I use it to generate, store\nsometimes validate the security of passwords, it's nice, quite useful\n\nThis includes 2 password validators, password generator and a password manager,\nmight add more :)\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Filetools` tools for files\n\nAlthough `filetools` isn't as useful to me, it's nice to get good info about\ncertain files, like permissions, path info, owner, size, etc. super nice\nfor development too\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n## `Bdwmb` -- the modular bar for DWM\n\nThe heading says it all, it's a simple, small and nice bar for\nDWM window manager, I use it, I like it lol\n\n- Ari-web redirect: \n- Direct GitHub link: \n- Gentoo package: \n\n---\n\nThat's about it, although this is definably not all, just most major, I also\nrun my own stuff on top of those so my system is basically just my software,\nanyway, hope I introduced you to some of my software somewhat, anyway, have a\ngood day :)\n\nGoodbye\n", "keywords": [ "minimal", "minimalistic", @@ -2133,21 +2133,6 @@ ], "created": 1667074522.716378 }, - "-thinkpeach--not--thinkpink": { - "title": "#thinkpeach, not #thinkpink", - "description": "The pink ribbon is an over-commercialised version of the original breast cancer awareness symbol, so let's try to bring the original one back, #ThinkPeach", - "content": "The pink ribbon is an over-commercialised version of the original\nbreast cancer awareness symbol, so let's try to bring the original one\nback, #ThinkPeach\n\n- The peach ribbon: \n- Charlotte Haley's ribbon memoriam: \n\nAlso a big thanks for [Illuminaughtii](https://www.youtube.com/watch?v=KlVP_6e6mro) for bringing this to my\nattention <3\n", - "keywords": [ - "peach", - "think-peach", - "breast-cancer", - "awareness", - "think-ping", - "breast", - "cancer" - ], - "created": 1666878963.583312 - }, "leaking-your-ip-is-not-dangerous--please-stop-being-so-stupid": { "title": "leaking your ip is not dangerous, please stop being so stupid", "description": "I can't, I have been saying this to people for over a year since VPNs blew up", @@ -2208,7 +2193,7 @@ "happy-2nd-birthday--ari-web": { "title": "happy 2nd birthday, ari-web", "description": "happy 2 yrs of being on the internet", - "content": "Happy 2nd birthday, thank you for being with me :)\n\n_(also why did I think it was gonna be 3)_\n\n> \n", + "content": "Happy 2nd birthday, thank you for being with me :)\n\n_(also why did I think it was gonna be 3)_\n\n<@:f304b3ee8dfdc51d91fe2819b64a45a8d49ad918329b8fb0aabac1166385d465>", "keywords": [ "birthday", "happy-birthday", @@ -2223,7 +2208,7 @@ "ari-web-blog-hyperlink-redesign": { "title": "ari-web blog hyperlink redesign", "description": "just a minor change, but a pretty nice one compared to the old glowing design", - "content": "I am so confused, I cannot think of a proper link design\nbecause I hate the glow\n\nAs of now deal with gray, italic links which have an underline\nwhen you hover over them\n\n[Celestia](https://github.com/CelestiaKai) suggested the design, I modified it lol\n\n[here's some other link](#!)\n\nAnyway, if y'all want a change go on [CaO](/c) and suggest, I'll gladly\nadd it, just don't contribute bc of \n\nEnjoy, [here's some link](#!)\n", + "content": "I am so confused, I cannot think of a proper link design\nbecause I hate the glow\n\nAs of now deal with gray, italic links which have an underline\nwhen you hover over them\n\n[Celestia](https://github.com/CelestiaKai) suggested the design, I modified it lol\n\n[here's some other link](#!)\n\nAnyway, if y'all want a change go on [CaO](/c) and suggest, I'll gladly\nadd it, just don't contribute bc of \n\nEnjoy, [here's some link](#!)\n", "keywords": [ "hyperlink", "html", @@ -2250,7 +2235,7 @@ "how-to-generate-a-report-for-songs-you-listen-to-using-mpv": { "title": "how to generate a report for songs you listen to using mpv", "description": "mpv is my beloved player so i decided to collect some shit on myself lol", - "content": "## Before we start\n\nThis blog is not updated, I made this whole thing into a baz\nplugin: \n\nA day ago I started collecting data about what I listen to\non my playlist, and currently it's working out amazing, it's very\nfun, so I thought to myself, 'why not share it', so here\nyou go\n\n## 1. Set up `mpvp` alias\n\n`mpvp` alias is what you will have to use to collect data about\nyour playlist, you can set up another name but code should be\naround the same\n\nBasically, add this to your `~/.bashrc`:\n\n mpvp_collect() {\n [ ! -f \"$HOME/.mpvp\" ] && : >\"$HOME/.mpvp\"\n\n sleep 2\n\n while true; do\n sleep 5\n\n x=\"$(echo '{ \"command\": [\"get_property\", \"path\"] }' | socat - /tmp/mpvipc)\"\n\n [ ! \"$x\" ] && break\n\n if [ \"$x\" ] && [ \"$x\" != \"$(tail -n 1 \"$HOME/.mpvp\")\" ]; then\n sleep 4\n\n y=\"$(echo '{ \"command\": [\"get_property\", \"path\"] }' | socat - /tmp/mpvipc)\"\n [ \"$x\" = \"$y\" ] && echo \"$x\" >>\"$HOME/.mpvp\"\n fi\n done\n }\n\n alias mpvp='mpvp_collect & mpv --shuffle --loop-playlist --input-ipc-server=/tmp/mpvipc'\n\nWhen you use the `mpvp` alias it'll start the data collector in the background,\nthe IPC will be accessible though `/tmp/mpvipc`, this will collect all\ndata to `~/.mpvp`, listen to some music and ignore it for a bit, also, keep in mind,\nthis code is bad because I'm too lazy to improve it and I made it fast, anyway, you\nneed to install `socat` for this to work\n\n## 2. Generate data report\n\nWell at this point you can do anything you want with your data, although\nI made a simple generator for it\n\nSo I made use of the data I have and my playlist structure, here's an example entry:\n\n {\"data\":\"playlist/girl in red - i'll die anyway. [8MMa35B3HT8].mp3\",\"request_id\":0,\"error\":\"success\"}\n\nThere's an ID there so I add YouTube adding to the generator by\ndefault, yours might not have it, but I mean, you can still pretty much\nuse it, just links won't work\n\n### 2.1 The script\n\nI made a python script as my generator:\n\n #!/usr/bin/env python3\n # -*- coding: utf-8 -*-\n \"\"\"MPV playlist song reporter\"\"\"\n\n import os\n import sys\n from html import escape as html_escape\n from typing import Any, Dict, List, Tuple\n from warnings import filterwarnings as filter_warnings\n\n import ujson # type: ignore\n from css_html_js_minify import html_minify # type: ignore\n\n SONG_TO_ARTIST: Dict[str, str] = {\n \"1985\": \"bo burnham\",\n \"apocalypse\": \"cigarettes after Sex\",\n \"astronomy\": \"conan gray\",\n \"brooklyn baby\": \"lana del rey\",\n \"come home to me\": \"crawlers\",\n \"daddy issues\": \"the neighbourhood\",\n \"feel better\": \"penelope scott\",\n \"hornylovesickmess\": \"girl in red\",\n \"i wanna be your girlfriend\": \"girl in red\",\n \"k.\": \"cigarettes after Sex\",\n \"lookalike\": \"conan gray\",\n \"lotta true crime\": \"penelope scott\",\n \"my man's a hexagon (music video)\": \"m\u00fcnecat\",\n \"r\u00e4t\": \"penelope scott\",\n \"sappho\": \"bushies\",\n \"serial killer - lana del rey lyrics\": \"lana del rey\",\n \"sugar, we're goin down but it's creepier\": \"kade\",\n \"sweater weather\": \"the neighbourhood\",\n \"talia \u29f8\u29f8 girl in red cover\": \"girl in red\",\n \"tv\": \"bushies\",\n \"unionize - m\u00fcnecat (music video)\": \"m\u00fcnecat\",\n \"watch you sleep.\": \"girl in red\",\n \"you used me for my love_girl in red\": \"girl in red\",\n }\n\n\n class UnknownMusicArtistError(Exception):\n \"\"\"Raised when there is an unknown music artist\"\"\"\n\n\n def sort_dict(d: Dict[str, int]) -> Dict[str, int]:\n return {k: v for k, v in sorted(d.items(), key=lambda item: item[1], reverse=True)}\n\n\n def fsplit_dels(s: str, *dels: str) -> str:\n for delim in dels:\n s = s.split(delim, maxsplit=1)[0]\n\n return s.strip()\n\n\n def get_artist_from_song(song: str) -> str:\n song = song.lower()\n delims: Tuple[str, ...] = (\n \"\u2013\",\n \"-\",\n \",\",\n \"feat.\",\n \".\",\n \"&\",\n )\n\n if song not in SONG_TO_ARTIST and any(d in song for d in delims):\n return fsplit_dels(\n song,\n *delims,\n )\n else:\n if song in SONG_TO_ARTIST:\n return SONG_TO_ARTIST[song].lower()\n\n raise UnknownMusicArtistError(f\"No handled artist for song: {song!r}\")\n\n\n def get_played(data: List[Tuple[str, str]]) -> Dict[str, int]:\n played: Dict[str, int] = {}\n\n for song, _ in data:\n if song not in played:\n played[song] = 0\n\n played[song] += 1\n\n return sort_dict(played)\n\n\n def get_yt_urls_from_data(data: List[Tuple[str, str]]) -> Dict[str, str]:\n return {song: f\"https://ari-web.xyz/yt/watch?v={yt_id}\" for song, yt_id in data}\n\n\n def get_artists_from_played(played: Dict[str, int]) -> Dict[str, List[int]]:\n artists: Dict[str, List[int]] = {}\n\n for song in played:\n artist = get_artist_from_song(song)\n\n if artist not in artists:\n artists[artist] = [0, 0]\n\n artists[artist][0] += 1\n artists[artist][1] += played[song]\n\n return {\n k: v\n for k, v in sorted(artists.items(), key=lambda item: sum(item[1]), reverse=True)\n }\n\n\n def parse_song(song: str) -> Tuple[str, str]:\n basename: str = os.path.splitext(os.path.basename(song))[0]\n return basename[:-14], basename[-12:-1]\n\n\n def parse_data(data: List[Tuple[str, str]]) -> Dict[str, Any]:\n played: Dict[str, int] = get_played(data)\n\n return {\n \"total\": len(data),\n \"played\": played,\n \"artists\": get_artists_from_played(played),\n \"yt-urls\": get_yt_urls_from_data(data),\n }\n\n\n def generate_html_report(data: Dict[str, Any]) -> str:\n styles: str = \"\"\"\n @import url(\"https://cdn.jsdelivr.net/npm/hack-font@3/build/web/hack.min.css\");\n\n :root {\n color-scheme: dark;\n\n --clr-bg: #262220;\n --clr-fg: #f9f6e8;\n\n --clr-code-bg: #1f1b1a;\n --clr-code-fg: #f0f3e6;\n --clr-code-bg-dark: #181414;\n\n --scrollbar-height: 6px; /* TODO: Firefox */\n }\n\n *,\n *::before,\n *::after {\n background-color: var(--clr-bg);\n color: var(--clr-fg);\n font-family: Hack, hack, monospace;\n\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n scrollbar-color: var(--clr-code-bg-dark) transparent;\n\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n\n word-wrap: break-word;\n\n scroll-behavior: smooth;\n }\n\n ::-webkit-scrollbar,\n ::-webkit-scrollbar-thumb {\n height: var(--scrollbar-height);\n }\n\n ::-webkit-scrollbar {\n background-color: transparent;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: var(--clr-code-bg-dark);\n }\n\n html::-webkit-scrollbar,\n body::-webkit-scrollbar {\n display: none !important;\n }\n\n body {\n margin: auto;\n padding: 2rem;\n max-width: 1100px;\n min-height: 100vh;\n text-rendering: optimizeSpeed;\n }\n\n h1 {\n text-align: center;\n margin: 1em;\n font-size: 2em;\n }\n\n li {\n margin: 0.5em;\n }\n\n a {\n text-decoration: none;\n text-shadow: 0px 0px 4px white;\n }\n\n pre,\n pre * {\n background-color: var(--clr-code-bg);\n }\n\n pre,\n pre *,\n code {\n color: var(--clr-code-fg);\n }\n\n pre,\n pre code {\n overflow-x: auto !important;\n\n scrollbar-width: initial;\n -ms-overflow-style: initial;\n }\n\n pre {\n padding: 1em;\n border-radius: 4px;\n }\n\n code:not(pre code) {\n background-color: var(--clr-code-bg);\n border-radius: 2px;\n padding: 0.2em;\n }\n\n @media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n -webkit-animation-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n\n -webkit-animation-iteration-count: 1 !important;\n animation-iteration-count: 1 !important;\n\n -webkit-transition-duration: 0.01ms !important;\n -o-transition-duration: 0.01ms !important;\n transition-duration: 0.01ms !important;\n\n scroll-behavior: auto !important;\n }\n }\n\n @media (prefers-contrast: more) {\n :root {\n --clr-bg: black;\n --clr-fg: white;\n\n --clr-code-bg: #181818;\n --clr-code-fg: whitesmoke;\n\n --scrollbar-height: 12px; /* TODO: Firefox */\n }\n\n html::-webkit-scrollbar {\n display: initial !important;\n }\n\n *,\n *::before,\n *::after {\n scrollbar-width: initial !important;\n -ms-overflow-style: initial !important;\n }\n\n a {\n text-shadow: none !important;\n\n -webkit-text-decoration: underline dotted !important;\n text-decoration: underline dotted !important;\n }\n }\n \"\"\"\n\n songs = artists = \"\"\n\n for song, times in data[\"played\"].items():\n songs += f\"
  • {html_escape(song)} (played {times} time{'s' if times > 1 else ''})
  • \"\n\n for artist, songn in data[\"artists\"].items():\n rps: str = f\" ({songn[1]} repeats)\"\n artists += f\"
  • {html_escape(artist)} ({songn[0]} song{'s' if songn[0] > 1 else ''} \\\n played{rps if songn[1] > 1 else ''})
  • \"\n\n return html_minify(\n f\"\"\"\n \n \n \n \n \n HTML mpv song report\n\n \n \n \n \n \n\n \n \n\n \n
    \n

    What are you listening to?

    \n\n
    \n\n

    Stats

    \n\n
      \n
    • Songs played: {data['total']}
    • \n
    • Unique songs played: {len(data['played'])}
    • \n
    • Artists: {len(data['artists'])}
    • \n
    \n\n

    Top stats

    \n\n
      \n
    • Top artist: {tuple(data['artists'].keys())[0]} with {tuple(data['artists'].values())[0][0]} songs played and \\\n {tuple(data['artists'].values())[0][1]} repeats
    • \n
    • Top song: {tuple(data['played'].keys())[0]} by {get_artist_from_song(tuple(data['played'].keys())[0])} \\\n with {tuple(data['played'].values())[0]} plays
    • \n
    \n\n

    Songs

    \n\n
    \n Expand for the list of songs\n
      {songs}
    \n
    \n\n

    Artists

    \n\n
    \n Expand for the list of artists\n
      {artists}
    \n
    \n\n

    Raw JSON data

    \n\n
    \n Expand for the raw data\n
    {ujson.dumps(data, indent=4)}
    \n
    \n
    \n \n \"\"\"\n )\n\n\n def main() -> int:\n \"\"\"Entry/main function\"\"\"\n\n data: List[Tuple[str, str]] = []\n\n with open(os.path.expanduser(\"~/.mpvp\"), \"r\") as mpv_data:\n for line in mpv_data:\n if '\"data\"' not in line:\n continue\n\n data.append(parse_song(ujson.loads(line)[\"data\"]))\n\n with open(\"index.html\", \"w\") as h:\n h.write(generate_html_report(parse_data(data)))\n\n return 0\n\n\n if __name__ == \"__main__\":\n assert main.__annotations__.get(\"return\") is int, \"main() should return an integer\"\n\n filter_warnings(\"error\", category=Warning)\n sys.exit(main())\n\nThis is a pretty easy thing, very stupid and not fool-proof but eh,\nthis generator should work out of the box with the song name format\nbeing `artist name - song`, if it's not make sure to add a lowercase\nentry to `SONG_TO_ARTIST`, like if your song was named like `naMe - Artist`\nyou will have to add this entry:\n\n \"name - artist\": \"artist\",\n\nThese settings that you see in my script are for my playlist\n\n## 2.2 Dependencies\n\nHere's the python dependencies you need:\n\n css-html-js-minify\n ujson\n\nYou need to install them using\n\n python3 -m pip install --user css-html-js-minify ujson\n\n## 2.3 The data report\n\nOnce you have enough data to make a report from, run the script,\njust\n\n python3 main.py\n\nOr whatever, it'll generate `index.html` file and it'll include all of\nyour report data, you can also style it using the `styles` variable\n\n## 3. Finishing\n\nThat's all, enjoy your statistics, and as of now I shall go collect more data,\nI already have 18KB of it!\n\nPlus, I'll admit it, most of this code is **garbage, complete dog shit**,\nI just wanted to make it work and I did, it's readable enough\nfor just a messy script I'm not even releasing as anything legit\n", + "content": "## Before we start\n\nThis blog is not updated, I made this whole thing into a baz\nplugin: \n\nA day ago I started collecting data about what I listen to\non my playlist, and currently it's working out amazing, it's very\nfun, so I thought to myself, 'why not share it', so here\nyou go\n\n## 1. Set up `mpvp` alias\n\n`mpvp` alias is what you will have to use to collect data about\nyour playlist, you can set up another name but code should be\naround the same\n\nBasically, add this to your `~/.bashrc`:\n\n mpvp_collect() {\n [ ! -f \"$HOME/.mpvp\" ] && : >\"$HOME/.mpvp\"\n\n sleep 2\n\n while true; do\n sleep 5\n\n x=\"$(echo '{ \"command\": [\"get_property\", \"path\"] }' | socat - /tmp/mpvipc)\"\n\n [ ! \"$x\" ] && break\n\n if [ \"$x\" ] && [ \"$x\" != \"$(tail -n 1 \"$HOME/.mpvp\")\" ]; then\n sleep 4\n\n y=\"$(echo '{ \"command\": [\"get_property\", \"path\"] }' | socat - /tmp/mpvipc)\"\n [ \"$x\" = \"$y\" ] && echo \"$x\" >>\"$HOME/.mpvp\"\n fi\n done\n }\n\n alias mpvp='mpvp_collect & mpv --shuffle --loop-playlist --input-ipc-server=/tmp/mpvipc'\n\nWhen you use the `mpvp` alias it'll start the data collector in the background,\nthe IPC will be accessible though `/tmp/mpvipc`, this will collect all\ndata to `~/.mpvp`, listen to some music and ignore it for a bit, also, keep in mind,\nthis code is bad because I'm too lazy to improve it and I made it fast, anyway, you\nneed to install `socat` for this to work\n\n## 2. Generate data report\n\nWell at this point you can do anything you want with your data, although\nI made a simple generator for it\n\nSo I made use of the data I have and my playlist structure, here's an example entry:\n\n {\"data\":\"playlist/girl in red - i'll die anyway. [8MMa35B3HT8].mp3\",\"request_id\":0,\"error\":\"success\"}\n\nThere's an ID there so I add YouTube adding to the generator by\ndefault, yours might not have it, but I mean, you can still pretty much\nuse it, just links won't work\n\n### 2.1 The script\n\nI made a python script as my generator:\n\n #!/usr/bin/env python3\n # -*- coding: utf-8 -*-\n \"\"\"MPV playlist song reporter\"\"\"\n\n import os\n import sys\n from html import escape as html_escape\n from typing import Any, Dict, List, Tuple\n from warnings import filterwarnings as filter_warnings\n\n import ujson # type: ignore\n from css_html_js_minify import html_minify # type: ignore\n\n SONG_TO_ARTIST: Dict[str, str] = {\n \"1985\": \"bo burnham\",\n \"apocalypse\": \"cigarettes after Sex\",\n \"astronomy\": \"conan gray\",\n \"brooklyn baby\": \"lana del rey\",\n \"come home to me\": \"crawlers\",\n \"daddy issues\": \"the neighbourhood\",\n \"feel better\": \"penelope scott\",\n \"hornylovesickmess\": \"girl in red\",\n \"i wanna be your girlfriend\": \"girl in red\",\n \"k.\": \"cigarettes after Sex\",\n \"lookalike\": \"conan gray\",\n \"lotta true crime\": \"penelope scott\",\n \"my man's a hexagon (music video)\": \"m\u00fcnecat\",\n \"r\u00e4t\": \"penelope scott\",\n \"sappho\": \"bushies\",\n \"serial killer - lana del rey lyrics\": \"lana del rey\",\n \"sugar, we're goin down but it's creepier\": \"kade\",\n \"sweater weather\": \"the neighbourhood\",\n \"talia \u29f8\u29f8 girl in red cover\": \"girl in red\",\n \"tv\": \"bushies\",\n \"unionize - m\u00fcnecat (music video)\": \"m\u00fcnecat\",\n \"watch you sleep.\": \"girl in red\",\n \"you used me for my love_girl in red\": \"girl in red\",\n }\n\n\n class UnknownMusicArtistError(Exception):\n \"\"\"Raised when there is an unknown music artist\"\"\"\n\n\n def sort_dict(d: Dict[str, int]) -> Dict[str, int]:\n return {k: v for k, v in sorted(d.items(), key=lambda item: item[1], reverse=True)}\n\n\n def fsplit_dels(s: str, *dels: str) -> str:\n for delim in dels:\n s = s.split(delim, maxsplit=1)[0]\n\n return s.strip()\n\n\n def get_artist_from_song(song: str) -> str:\n song = song.lower()\n delims: Tuple[str, ...] = (\n \"\u2013\",\n \"-\",\n \",\",\n \"feat.\",\n \".\",\n \"&\",\n )\n\n if song not in SONG_TO_ARTIST and any(d in song for d in delims):\n return fsplit_dels(\n song,\n *delims,\n )\n else:\n if song in SONG_TO_ARTIST:\n return SONG_TO_ARTIST[song].lower()\n\n raise UnknownMusicArtistError(f\"No handled artist for song: {song!r}\")\n\n\n def get_played(data: List[Tuple[str, str]]) -> Dict[str, int]:\n played: Dict[str, int] = {}\n\n for song, _ in data:\n if song not in played:\n played[song] = 0\n\n played[song] += 1\n\n return sort_dict(played)\n\n\n def get_yt_urls_from_data(data: List[Tuple[str, str]]) -> Dict[str, str]:\n return {song: f\"https://ari.lt/yt/watch?v={yt_id}\" for song, yt_id in data}\n\n\n def get_artists_from_played(played: Dict[str, int]) -> Dict[str, List[int]]:\n artists: Dict[str, List[int]] = {}\n\n for song in played:\n artist = get_artist_from_song(song)\n\n if artist not in artists:\n artists[artist] = [0, 0]\n\n artists[artist][0] += 1\n artists[artist][1] += played[song]\n\n return {\n k: v\n for k, v in sorted(artists.items(), key=lambda item: sum(item[1]), reverse=True)\n }\n\n\n def parse_song(song: str) -> Tuple[str, str]:\n basename: str = os.path.splitext(os.path.basename(song))[0]\n return basename[:-14], basename[-12:-1]\n\n\n def parse_data(data: List[Tuple[str, str]]) -> Dict[str, Any]:\n played: Dict[str, int] = get_played(data)\n\n return {\n \"total\": len(data),\n \"played\": played,\n \"artists\": get_artists_from_played(played),\n \"yt-urls\": get_yt_urls_from_data(data),\n }\n\n\n def generate_html_report(data: Dict[str, Any]) -> str:\n styles: str = \"\"\"\n @import url(\"https://cdn.jsdelivr.net/npm/hack-font@3/build/web/hack.min.css\");\n\n :root {\n color-scheme: dark;\n\n --clr-bg: #262220;\n --clr-fg: #f9f6e8;\n\n --clr-code-bg: #1f1b1a;\n --clr-code-fg: #f0f3e6;\n --clr-code-bg-dark: #181414;\n\n --scrollbar-height: 6px; /* TODO: Firefox */\n }\n\n *,\n *::before,\n *::after {\n background-color: var(--clr-bg);\n color: var(--clr-fg);\n font-family: Hack, hack, monospace;\n\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n scrollbar-color: var(--clr-code-bg-dark) transparent;\n\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n\n word-wrap: break-word;\n\n scroll-behavior: smooth;\n }\n\n ::-webkit-scrollbar,\n ::-webkit-scrollbar-thumb {\n height: var(--scrollbar-height);\n }\n\n ::-webkit-scrollbar {\n background-color: transparent;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: var(--clr-code-bg-dark);\n }\n\n html::-webkit-scrollbar,\n body::-webkit-scrollbar {\n display: none !important;\n }\n\n body {\n margin: auto;\n padding: 2rem;\n max-width: 1100px;\n min-height: 100vh;\n text-rendering: optimizeSpeed;\n }\n\n h1 {\n text-align: center;\n margin: 1em;\n font-size: 2em;\n }\n\n li {\n margin: 0.5em;\n }\n\n a {\n text-decoration: none;\n text-shadow: 0px 0px 4px white;\n }\n\n pre,\n pre * {\n background-color: var(--clr-code-bg);\n }\n\n pre,\n pre *,\n code {\n color: var(--clr-code-fg);\n }\n\n pre,\n pre code {\n overflow-x: auto !important;\n\n scrollbar-width: initial;\n -ms-overflow-style: initial;\n }\n\n pre {\n padding: 1em;\n border-radius: 4px;\n }\n\n code:not(pre code) {\n background-color: var(--clr-code-bg);\n border-radius: 2px;\n padding: 0.2em;\n }\n\n @media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n -webkit-animation-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n\n -webkit-animation-iteration-count: 1 !important;\n animation-iteration-count: 1 !important;\n\n -webkit-transition-duration: 0.01ms !important;\n -o-transition-duration: 0.01ms !important;\n transition-duration: 0.01ms !important;\n\n scroll-behavior: auto !important;\n }\n }\n\n @media (prefers-contrast: more) {\n :root {\n --clr-bg: black;\n --clr-fg: white;\n\n --clr-code-bg: #181818;\n --clr-code-fg: whitesmoke;\n\n --scrollbar-height: 12px; /* TODO: Firefox */\n }\n\n html::-webkit-scrollbar {\n display: initial !important;\n }\n\n *,\n *::before,\n *::after {\n scrollbar-width: initial !important;\n -ms-overflow-style: initial !important;\n }\n\n a {\n text-shadow: none !important;\n\n -webkit-text-decoration: underline dotted !important;\n text-decoration: underline dotted !important;\n }\n }\n \"\"\"\n\n songs = artists = \"\"\n\n for song, times in data[\"played\"].items():\n songs += f\"
  • {html_escape(song)} (played {times} time{'s' if times > 1 else ''})
  • \"\n\n for artist, songn in data[\"artists\"].items():\n rps: str = f\" ({songn[1]} repeats)\"\n artists += f\"
  • {html_escape(artist)} ({songn[0]} song{'s' if songn[0] > 1 else ''} \\\n played{rps if songn[1] > 1 else ''})
  • \"\n\n return html_minify(\n f\"\"\"\n \n \n \n \n \n HTML mpv song report\n\n \n \n \n \n \n\n \n \n\n \n
    \n

    What are you listening to?

    \n\n
    \n\n

    Stats

    \n\n
      \n
    • Songs played: {data['total']}
    • \n
    • Unique songs played: {len(data['played'])}
    • \n
    • Artists: {len(data['artists'])}
    • \n
    \n\n

    Top stats

    \n\n
      \n
    • Top artist: {tuple(data['artists'].keys())[0]} with {tuple(data['artists'].values())[0][0]} songs played and \\\n {tuple(data['artists'].values())[0][1]} repeats
    • \n
    • Top song: {tuple(data['played'].keys())[0]} by {get_artist_from_song(tuple(data['played'].keys())[0])} \\\n with {tuple(data['played'].values())[0]} plays
    • \n
    \n\n

    Songs

    \n\n
    \n Expand for the list of songs\n
      {songs}
    \n
    \n\n

    Artists

    \n\n
    \n Expand for the list of artists\n
      {artists}
    \n
    \n\n

    Raw JSON data

    \n\n
    \n Expand for the raw data\n
    {ujson.dumps(data, indent=4)}
    \n
    \n
    \n \n \"\"\"\n )\n\n\n def main() -> int:\n \"\"\"Entry/main function\"\"\"\n\n data: List[Tuple[str, str]] = []\n\n with open(os.path.expanduser(\"~/.mpvp\"), \"r\") as mpv_data:\n for line in mpv_data:\n if '\"data\"' not in line:\n continue\n\n data.append(parse_song(ujson.loads(line)[\"data\"]))\n\n with open(\"index.html\", \"w\") as h:\n h.write(generate_html_report(parse_data(data)))\n\n return 0\n\n\n if __name__ == \"__main__\":\n assert main.__annotations__.get(\"return\") is int, \"main() should return an integer\"\n\n filter_warnings(\"error\", category=Warning)\n sys.exit(main())\n\nThis is a pretty easy thing, very stupid and not fool-proof but eh,\nthis generator should work out of the box with the song name format\nbeing `artist name - song`, if it's not make sure to add a lowercase\nentry to `SONG_TO_ARTIST`, like if your song was named like `naMe - Artist`\nyou will have to add this entry:\n\n \"name - artist\": \"artist\",\n\nThese settings that you see in my script are for my playlist\n\n## 2.2 Dependencies\n\nHere's the python dependencies you need:\n\n css-html-js-minify\n ujson\n\nYou need to install them using\n\n python3 -m pip install --user css-html-js-minify ujson\n\n## 2.3 The data report\n\nOnce you have enough data to make a report from, run the script,\njust\n\n python3 main.py\n\nOr whatever, it'll generate `index.html` file and it'll include all of\nyour report data, you can also style it using the `styles` variable\n\n## 3. Finishing\n\nThat's all, enjoy your statistics, and as of now I shall go collect more data,\nI already have 18KB of it!\n\nPlus, I'll admit it, most of this code is **garbage, complete dog shit**,\nI just wanted to make it work and I did, it's readable enough\nfor just a messy script I'm not even releasing as anything legit\n", "keywords": [ "song", "report", @@ -2290,7 +2275,7 @@ "the--www--subdomain-is-no-longer-the-default-for-ari-web-xyz": { "title": "the 'www' subdomain is no longer the default for ari-web.xyz", "description": "no more www.ari-web.xyz ( now only ari-web.xyz )", - "content": "Okay, first, my apologies for making so many ari-web related\ntopics recently, ari-web is going through a lot of important\nchanges recently and I have to update people somehow\n\nAnyways, due to netlify handling the root level redirect weirdly\nrecently as shown here:\n\n- \n- \n\nMy HSTS was quite messed up, but then I thought, 'why not just\ndeprecate it', so I did, it should not cause much breakage\nas is still valid, just redirects to\n\n\nNetlify should fix this, but I can't do much about it, although\nI think I like it, so I think it's deprecated forever :)\n\nThanks for putting up with my ari-web updates shit, as of now,\ncya :D\n", + "content": "Okay, first, my apologies for making so many ari-web related\ntopics recently, ari-web is going through a lot of important\nchanges recently and I have to update people somehow\n\nAnyways, due to netlify handling the root level redirect weirdly\nrecently as shown here:\n\n- \n- \n\nMy HSTS was quite messed up, but then I thought, 'why not just\ndeprecate it', so I did, it should not cause much breakage\nas is still valid, just redirects to\n\n\nNetlify should fix this, but I can't do much about it, although\nI think I like it, so I think it's deprecated forever :)\n\nThanks for putting up with my ari-web updates shit, as of now,\ncya :D", "keywords": [ "ari-web-updates", "update", @@ -2307,7 +2292,7 @@ "ari-web-now-delivers-minified-content": { "title": "ari-web now delivers minified content", "description": "asset optimization for ari-web", - "content": "At build time ari-web minified only CSS, now it's also HTML\nand JavaScript, everything is minified to make it more accessible\nto users with worse network\n\n- Minified sites\n\n - \n - \n - (NOT FOSS, VERY CRINGE)\n\n- Semi-minified sites\n - \n\nAlthough this is ALL server-side, all source code is un-minified\nand very readable, so you are free to check it out, remember,\nin the ari-web standard `/git` route always redirects\nto the source code, on proprietary sites it gives you an HTTP/403\n(forbidden) and redirects to `/`\n\nSources:\n\n- For open source minified sites\n\n - \n - \n\n- For open source semi-minified sites\n - \n", + "content": "At build time ari-web minified only CSS, now it's also HTML\nand JavaScript, everything is minified to make it more accessible\nto users with worse network\n\n- Minified sites\n\n - \n - \n - (NOT FOSS, VERY CRINGE)\n\n- Semi-minified sites\n - \n\nAlthough this is ALL server-side, all source code is un-minified\nand very readable, so you are free to check it out, remember,\nin the ari-web standard `/git` route always redirects\nto the source code, on proprietary sites it gives you an HTTP/403\n(forbidden) and redirects to `/`\n\nSources:\n\n- For open source minified sites\n\n - \n - \n\n- For open source semi-minified sites\n - ", "keywords": [ "minification", "javascript", @@ -2323,7 +2308,7 @@ "ari-web-apis--how-to-use-them": { "title": "ari-web apis: how to use them", "description": "a guide on how to use ari-web apis", - "content": "Ari-web APIs recently have become public, meaning\nanyone can use them on anywhere, so, how should you\nuse them properly?\n\n## 1. Validate hashes\n\nAll APIs have hashes for validation, and APIs are much more\nexpensive to call than just comparing two hashes\n\nFirst up make an uncached request, cache the request, then\nmake a request to get the calculated hash, cache it too\n\nNext time only make a request to get the hash, if the hashes\nmatch, if they do, use the cached API response, if it does\nnot match, get the updated data, cache it and so on\n\n### Hashes\n\nThe hashes are sha256 sums of the APIs, here's all the APIs\nhashing system\n\n- \n - Just make a request to \n- \n - Just make a request to \n- \n - Just make a request to with the `...` being the API name with all `.` characters replaced with `_`, for example for would be \n- \n - Just make a request to \n\nThis is already a standard in Ari-web, also if `www` subdomains don't work,\ntry out removing `www`\n\n## 2. Make as little requests as you can\n\nThis is kinda an extension of point 1, just don't make 10\nrequests to every API if you only need the `sitelist.json` once for\nexample\n\n## That's it\n\nThat's it, I got nothing else, this whole blog could have been\njust\n\n Make as little and I mean AS LITTLE requests as possible to the APIs\n", + "content": "Ari-web APIs recently have become public, meaning\nanyone can use them on anywhere, so, how should you\nuse them properly?\n\n## 1. Validate hashes\n\nAll APIs have hashes for validation, and APIs are much more\nexpensive to call than just comparing two hashes\n\nFirst up make an uncached request, cache the request, then\nmake a request to get the calculated hash, cache it too\n\nNext time only make a request to get the hash, if the hashes\nmatch, if they do, use the cached API response, if it does\nnot match, get the updated data, cache it and so on\n\n### Hashes\n\nThe hashes are sha256 sums of the APIs, here's all the APIs\nhashing system\n\n- \n - Just make a request to \n- \n - Just make a request to \n- \n - Just make a request to with the `...` being the API name with all `.` characters replaced with `_`, for example for would be \n- \n - Just make a request to \n\nThis is already a standard in Ari-web, also if `www` subdomains don't work,\ntry out removing `www`\n\n## 2. Make as little requests as you can\n\nThis is kinda an extension of point 1, just don't make 10\nrequests to every API if you only need the `sitelist.json` once for\nexample\n\n## That's it\n\nThat's it, I got nothing else, this whole blog could have been\njust\n\n Make as little and I mean AS LITTLE requests as possible to the APIs", "keywords": [ "api", "ari-web", @@ -2353,7 +2338,7 @@ "how-to-make-your-own-gentoo-linux-overlay": { "title": "how to make your own gentoo linux overlay", "description": "some help on how to make ur own gentoo linux overlay / repository as i found it a bit painful when i did it", - "content": "So before we start, I have my own overlay @ \nand am running it for a while, it was a bit painful for me to\nmake one at the start and to help new Gentoo users I am making this\nblog post, anyway, here's how you do it:\n\n## Step one -- Think of a name\n\nThink of a name you will give your overlay because this information\nwill be needed in later steps\n\n## Step two -- Folder structure\n\nTo start with we need files and folders to work with,\nall names ending with a `/` are folders and everything\nelse is a file, please make sure to also apply the templates\nin `<...>`, for example `` would be the current year:\n\n ./\n \u251c\u2500\u2500 LICENSE\n \u251c\u2500\u2500 metadata/\n \u2502 \u2514\u2500\u2500 layout.conf\n \u251c\u2500\u2500 overlays.xml\n \u251c\u2500\u2500 profiles/\n \u2502 \u2514\u2500\u2500 repo_name\n \u251c\u2500\u2500 README.md\n \u251c\u2500\u2500 repositories.xml\n \u251c\u2500\u2500 sets/\n \u251c\u2500\u2500 sets.conf\n \u2514\u2500\u2500 .conf\n\n## Step three -- License\n\nThe `LICENSE` file should have your license, if it doesn't\nalready please pick one, for example on my overlay\nI went for [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html), but you can also go for some other\n_open source_ licenses, like GPLv2, WTFPL, BSD 3-clause, etc.\n\nWrite that license to the `LICENSE` file\n\n## Step four -- Master overlays\n\nThis step is always the same, you have to set the master\noverlay in `metadata/layout.conf` file, the master is usually\ngoing to be `gentoo`, so in `metadata/layout.conf` add this\ncontent:\n\n masters = gentoo\n\n## Step five -- Overlay index files\n\nOverlay index files are these files:\n\n- `overlays.xml`\n- `repositories.xml`\n\nBoth of these files should have the same content,\nmake sure to fill in the templates that are in SCREAMING_SNAKE_CASE:\n\n \n \n \n \n \n \n OVERLAY_HOMEPAGE\n \n OWNER_EMAIL\n \n \n\n \n \n \n\nOnce again, don't forget that all of these files have the same exact content,\nand no, it cannot be a symlink AFAIK\n\n## Step six -- Profiles\n\nYou only need one file in the `profiles` folder -- `repo_name`,\nthe content of it should be your overlay name, for example:\n\n dinolay\n\nThis is the `repo_name` content on my own overlay, basically the\ntemplate is\n\n \n\n## Step seven -- Readme\n\n`README.md` is an optional file, it's just used for information to give to users,\nit can have any content but here's a nice template:\n\n # \n\n > \n\n ## Installation\n\n ### Manual\n\n ```bash\n $ sudo mkdir -p /etc/portage/repos.conf\n $ sudo cp .conf /etc/portage/repos.conf/.conf\n $ sudo emerge --sync ''\n ```\n\n ### Eselect repository\n\n ```bash\n $ sudo eselect repository add '' '' ''\n $ sudo eselect repository enable ''\n $ sudo emerge --sync ''\n ```\n\nAnd once you get into the [Offical Gentoo API](https://api.gentoo.org/), for example\n[Like I did](https://github.com/gentoo/api-gentoo-org/pull/459) you also add how to add your overlay through\n[layman](https://wiki.gentoo.org/wiki/Layman):\n\n ### Layman\n\n ```bash\n $ sudo layman -a ''\n $ sudo layman -s ''\n ```\n\n## Step eight -- Sets\n\nThis directory is optional, although you can have sets\nof packages in there, like have you ever heard a term called\n'world set', it's the same thing, just on your own overlay\n\n[Read more about it here](https://wiki.gentoo.org/wiki/Package_sets)\n\n## Step nine -- Sets configuration\n\nThis file is needed unlike the sets directory, you should\nhave this content in it, although once again, please don't\nforget to fill in the template:\n\n [ sets]\n class = portage.sets.files.StaticFileSet\n multiset = true\n directory = ${repository:}/sets/\n\n## Step ten -- Portage overlay configuration\n\nThis file, although optional, will help the users of your\noverlay so much, they can just download this file,\nput it in `/etc/portage/repos.conf/.conf` and then\nrun\n\n sudo emerge --sync ''\n\nAnd they have it installed, anyway, this is what that file\nshould have\n\n []\n location = /var/db/repos/\n sync-type = \n sync-uri = \n\nE.g. for git it'd be:\n\n []\n location = /var/db/repos/\n sync-type = git\n sync-uri = https://some.git.service/me/my-overlay.git\n\n## Finishing\n\nAnd that's it, you can now publish your overlay on for example\nGitHub, like I did on , it's very easy,\nif you are confused about anything, refer to that repo yourself\n", + "content": "So before we start, I have my own overlay @ \nand am running it for a while, it was a bit painful for me to\nmake one at the start and to help new Gentoo users I am making this\nblog post, anyway, here's how you do it:\n\n## Step one -- Think of a name\n\nThink of a name you will give your overlay because this information\nwill be needed in later steps\n\n## Step two -- Folder structure\n\nTo start with we need files and folders to work with,\nall names ending with a `/` are folders and everything\nelse is a file, please make sure to also apply the templates\nin `<...>`, for example `` would be the current year:\n\n ./\n \u251c\u2500\u2500 LICENSE\n \u251c\u2500\u2500 metadata/\n \u2502 \u2514\u2500\u2500 layout.conf\n \u251c\u2500\u2500 overlays.xml\n \u251c\u2500\u2500 profiles/\n \u2502 \u2514\u2500\u2500 repo_name\n \u251c\u2500\u2500 README.md\n \u251c\u2500\u2500 repositories.xml\n \u251c\u2500\u2500 sets/\n \u251c\u2500\u2500 sets.conf\n \u2514\u2500\u2500 .conf\n\n## Step three -- License\n\nThe `LICENSE` file should have your license, if it doesn't\nalready please pick one, for example on my overlay\nI went for [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html), but you can also go for some other\n_open source_ licenses, like GPLv2, WTFPL, BSD 3-clause, etc.\n\nWrite that license to the `LICENSE` file\n\n## Step four -- Master overlays\n\nThis step is always the same, you have to set the master\noverlay in `metadata/layout.conf` file, the master is usually\ngoing to be `gentoo`, so in `metadata/layout.conf` add this\ncontent:\n\n masters = gentoo\n\n## Step five -- Overlay index files\n\nOverlay index files are these files:\n\n- `overlays.xml`\n- `repositories.xml`\n\nBoth of these files should have the same content,\nmake sure to fill in the templates that are in SCREAMING_SNAKE_CASE:\n\n \n \n \n \n \n \n OVERLAY_HOMEPAGE\n \n OWNER_EMAIL\n \n \n\n \n \n \n\nOnce again, don't forget that all of these files have the same exact content,\nand no, it cannot be a symlink AFAIK\n\n## Step six -- Profiles\n\nYou only need one file in the `profiles` folder -- `repo_name`,\nthe content of it should be your overlay name, for example:\n\n dinolay\n\nThis is the `repo_name` content on my own overlay, basically the\ntemplate is\n\n \n\n## Step seven -- Readme\n\n`README.md` is an optional file, it's just used for information to give to users,\nit can have any content but here's a nice template:\n\n # \n\n > \n\n ## Installation\n\n ### Manual\n\n ```bash\n $ sudo mkdir -p /etc/portage/repos.conf\n $ sudo cp .conf /etc/portage/repos.conf/.conf\n $ sudo emerge --sync ''\n ```\n\n ### Eselect repository\n\n ```bash\n $ sudo eselect repository add '' '' ''\n $ sudo eselect repository enable ''\n $ sudo emerge --sync ''\n ```\n\nAnd once you get into the [Offical Gentoo API](https://api.gentoo.org/), for example\n[Like I did](https://github.com/gentoo/api-gentoo-org/pull/459) you also add how to add your overlay through\n[layman](https://wiki.gentoo.org/wiki/Layman):\n\n ### Layman\n\n ```bash\n $ sudo layman -a ''\n $ sudo layman -s ''\n ```\n\n## Step eight -- Sets\n\nThis directory is optional, although you can have sets\nof packages in there, like have you ever heard a term called\n'world set', it's the same thing, just on your own overlay\n\n[Read more about it here](https://wiki.gentoo.org/wiki/Package_sets)\n\n## Step nine -- Sets configuration\n\nThis file is needed unlike the sets directory, you should\nhave this content in it, although once again, please don't\nforget to fill in the template:\n\n [ sets]\n class = portage.sets.files.StaticFileSet\n multiset = true\n directory = ${repository:}/sets/\n\n## Step ten -- Portage overlay configuration\n\nThis file, although optional, will help the users of your\noverlay so much, they can just download this file,\nput it in `/etc/portage/repos.conf/.conf` and then\nrun\n\n sudo emerge --sync ''\n\nAnd they have it installed, anyway, this is what that file\nshould have\n\n []\n location = /var/db/repos/\n sync-type = \n sync-uri = \n\nE.g. for git it'd be:\n\n []\n location = /var/db/repos/\n sync-type = git\n sync-uri = https://some.git.service/me/my-overlay.git\n\n## Finishing\n\nAnd that's it, you can now publish your overlay on for example\nGitHub, like I did on , it's very easy,\nif you are confused about anything, refer to that repo yourself\n", "keywords": [ "gentoo", "overlay", @@ -2390,7 +2375,7 @@ "how-to-fix-contant-freezing-or-disconnecting-of-wpa-supplicant-wifi-on-rtl8821ce": { "title": "how to fix contant freezing or disconnecting of wpa_supplicant wifi on rtl8821ce", "description": "how to fix contant freezing or disconnecting of wpa_supplicant wifi on rtl8821ce bc realtek doesnt know what a good driver is", - "content": "## Tl;dr\n\n- Module configuration: `/etc/modprobe.d/rtw.conf`\n\nShould have:\n\n options rtw88_core disable_lps_deep=y\n options rtw88_pci disable_msi=y disable_aspm=y\n\n- Kernel command line\n\nIf you use grub just add `pcie_aspm.policy=performance` to the kernel\ncommand line in `/etc/default/grub`:\n\n GRUB_CMDLINE_LINUX_DEFAULT=\"loglevel=3 init=/sbin/openrc-init pcie_aspm.policy=performance\"\n\n- WPA configuration: `/etc/wpa_supplicant/wpa_supplicant.conf` or wherever you keep your `wpa_supplicant.conf` file\n\nShould have:\n\n network={\n ...\n beacon_int=9000\n }\n\n(Append `beacon_int=9000` to your main config)\n\n- Finishing\n\nOnly run this if you use GRUB:\n\n su -c 'grub-mkconfig -o /boot/grub/grub.cfg'\n\nThen no matter what you run:\n\n su -c 'poweroff'\n\nThen wait a couple of minutes (2-5 min) and power your computer on\n\n---\n\nI use the `rtl8821ce` driver for my WiFi and recently I noticed how often\nit begun to disconnect from the internet, wpa would always give me this\noutput:\n\n ...\n wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1\n wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1\n wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1\n wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1\n ...\n\nNot sure how much it's related, but might be a sign for you /shrug\n\nAnyway, I think I found a solution:\n\n## Configure the module\n\nAdd this exact content to `/etc/modprobe.d/rtw.conf`\n\n options rtw88_core disable_lps_deep=y\n options rtw88_pci disable_msi=y disable_aspm=y\n\nYou can call rtw.conf anything you like\n\n## Configure kernel parameters\n\nI don't know how it works on other bootloaders, but basically your kernel\ncommand line should include:\n\n pcie_aspm.policy=performance\n\n### GRUB\n\n- Open `/etc/default/grub` in some editor\n- Find where it says `GRUB_CMDLINE_LINUX_DEFAULT`\n- In that variable, between quotes add `pcie_aspm.policy=performance`\n\nFor example in my config:\n\n GRUB_CMDLINE_LINUX_DEFAULT=\"loglevel=3 init=/sbin/openrc-init pcie_aspm.policy=performance\"\n\n## Configure wpa_supplicant\n\nOpen `/etc/wpa_supplicant/wpa_supplicant.conf` or wherever you store your\nwpa_supplicant.conf file and in the main config add:\n\n beacon_int=9000\n\nFor example:\n\n network={\n ssid=\"My-C00l-Wifi\"\n psk=0000000000000000000000000000000000000000000000000000000000000000\n beacon_int=9000\n }\n\nOr\n\n network={\n ssid=\"My-C00l-Wifi\"\n psk=\"9Y-pAs$w0rd123\"\n beacon_int=9000\n }\n\nDepends on how your config is set up, but the only part that really matters\nis:\n\n network={\n ...\n beacon_int=9000\n }\n\n## Finishing\n\nIf you are using GRUB before anything run this:\n\n su -c 'grub-mkconfig -o /boot/grub/grub.cfg'\n\nAnd if not skip this command\n\nAfter, no matter what you use:\n\n su -c 'poweroff'\n\nThen wait a couple of minutes (like between 2 and 5), and then power on your\ncomputer, this should fix the network annoyances\n\n## If your WiFi does not work anymore after this\n\nNot a problem, just revert all the steps in this blog, look for a new solution\nand find out what option is causing it, usually it's the `module` part,\nso try to modify or remove it\n\nAlthough if this does not work and you find a solution comment on\n and share the solution with others\n", + "content": "## Tl;dr\n\n- Module configuration: `/etc/modprobe.d/rtw.conf`\n\nShould have:\n\n options rtw88_core disable_lps_deep=y\n options rtw88_pci disable_msi=y disable_aspm=y\n\n- Kernel command line\n\nIf you use grub just add `pcie_aspm.policy=performance` to the kernel\ncommand line in `/etc/default/grub`:\n\n GRUB_CMDLINE_LINUX_DEFAULT=\"loglevel=3 init=/sbin/openrc-init pcie_aspm.policy=performance\"\n\n- WPA configuration: `/etc/wpa_supplicant/wpa_supplicant.conf` or wherever you keep your `wpa_supplicant.conf` file\n\nShould have:\n\n network={\n ...\n beacon_int=9000\n }\n\n(Append `beacon_int=9000` to your main config)\n\n- Finishing\n\nOnly run this if you use GRUB:\n\n su -c 'grub-mkconfig -o /boot/grub/grub.cfg'\n\nThen no matter what you run:\n\n su -c 'poweroff'\n\nThen wait a couple of minutes (2-5 min) and power your computer on\n\n---\n\nI use the `rtl8821ce` driver for my WiFi and recently I noticed how often\nit begun to disconnect from the internet, wpa would always give me this\noutput:\n\n ...\n wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1\n wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1\n wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1\n wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1\n ...\n\nNot sure how much it's related, but might be a sign for you /shrug\n\nAnyway, I think I found a solution:\n\n## Configure the module\n\nAdd this exact content to `/etc/modprobe.d/rtw.conf`\n\n options rtw88_core disable_lps_deep=y\n options rtw88_pci disable_msi=y disable_aspm=y\n\nYou can call rtw.conf anything you like\n\n## Configure kernel parameters\n\nI don't know how it works on other bootloaders, but basically your kernel\ncommand line should include:\n\n pcie_aspm.policy=performance\n\n### GRUB\n\n- Open `/etc/default/grub` in some editor\n- Find where it says `GRUB_CMDLINE_LINUX_DEFAULT`\n- In that variable, between quotes add `pcie_aspm.policy=performance`\n\nFor example in my config:\n\n GRUB_CMDLINE_LINUX_DEFAULT=\"loglevel=3 init=/sbin/openrc-init pcie_aspm.policy=performance\"\n\n## Configure wpa_supplicant\n\nOpen `/etc/wpa_supplicant/wpa_supplicant.conf` or wherever you store your\nwpa_supplicant.conf file and in the main config add:\n\n beacon_int=9000\n\nFor example:\n\n network={\n ssid=\"My-C00l-Wifi\"\n psk=0000000000000000000000000000000000000000000000000000000000000000\n beacon_int=9000\n }\n\nOr\n\n network={\n ssid=\"My-C00l-Wifi\"\n psk=\"9Y-pAs$w0rd123\"\n beacon_int=9000\n }\n\nDepends on how your config is set up, but the only part that really matters\nis:\n\n network={\n ...\n beacon_int=9000\n }\n\n## Finishing\n\nIf you are using GRUB before anything run this:\n\n su -c 'grub-mkconfig -o /boot/grub/grub.cfg'\n\nAnd if not skip this command\n\nAfter, no matter what you use:\n\n su -c 'poweroff'\n\nThen wait a couple of minutes (like between 2 and 5), and then power on your\ncomputer, this should fix the network annoyances\n\n## If your WiFi does not work anymore after this\n\nNot a problem, just revert all the steps in this blog, look for a new solution\nand find out what option is causing it, usually it's the `module` part,\nso try to modify or remove it\n\nAlthough if this does not work and you find a solution comment on\n and share the solution with others\n", "keywords": [ "wpa", "linux", @@ -2410,7 +2395,7 @@ "my-music-artist-recommendations": { "title": "my music artist recommendations", "description": "music i like", - "content": "First up, none of these people payed me or anything\nI just like their music and that's all :)\n\nThis list is in no way ordered so yeah, this is just\nan unordered list of people who make good music\n\n\n- Clairo\n - Song recommendations\n - Clairo - Bags\n - Clairo - I Wouldn't Ask You\n - Clairo - Sofia\n - Website: \n- Crawlers\n - Song recommendations\n - CRAWLERS - Fuck Me (I Didn\u2019t Know How To Say)\n - CRAWLERS - Hush\n - CRAWLERS - I Don't Want It\n - CRAWLERS - Placebo\n - Website: \n- Conan Gray\n - Song recommendations\n - Conan Gray - Heather\n - Conan Gray - Memories\n - Conan Gray - Wish You Were Sober\n - Website: \n- Fazerdaze\n - Song recommendations\n - Fazerdaze - Lucky Girl\n - Fazerdaze - Misread\n - Fazerdaze - Come Apart\n - Website: \n- Girl in red\n - Song recommendations\n - girl in red - i'll die anyway.\n - girl in red & beabadoobee - eleanor and park\n - girl in red - .\n - girl in red - midnight love\n - girl in red - we fell in love in october\n - girl in red - You Stupid Bitch\n - Website: and \n- GIRLI\n - Song recommendations\n - GIRLI - Dysmorphia\n - GIRLI - More Than A Friend\n - GIRLI \u2013 I Don\u2019t Like Myself\n - Website: \n- MOTHICA\n - Song recommendations\n - MOTHICA & emlyn - GOOD FOR HER\n - MOTHICA - BEDTIME STORIES\n - MOTHICA - HIGHLIGHTS\n - Mothica - VICES\n - Mothica - motions\n - Website: \n- Phem\n - Song recommendations\n - phem - watery\n - phem - flowers\n - phem - silly putty\n - Website: and \n- Lana Del Rey\n - Song recommendations\n - Serial Killer - Lana Del Rey\n - Lana Del Rey - Video games\n - Website: \n- Sir Chloe\n - Song recommendations\n - Sir Chloe - Femme Fatale (The Velvet Underground & Nico Cover)\n - Sir Chloe - Mercy\n - Sir Chloe - Sedona\n - Sir Chloe - Squaring Up\n - Website: \n- Troye Sivan\n - Song recommendations\n - Troye Sivan - Rager teenager!\n - Troye Sivan - STUD\n - Troye Sivan - YOUTH\n - Website: \n- VIDEOCLUB\n - Song recommendations\n - VIDEOCLUB - Amour plastique\n - VIDEOCLUB - Euphories\n - Website: \n- R\u00f6yksopp\n - Song recommendations\n - R\u00f6yksopp - I Had This Thing\n - R\u00f6yksopp - Skulls\n - R\u00f6yksopp feat. Robyn - Monument (The Inevitable End Version)\n - Website: and \n\nYou can find more in [YouTube], but these are\nmy favs\n", + "content": "First up, none of these people payed me or anything\nI just like their music and that's all :)\n\nThis list is in no way ordered so yeah, this is just\nan unordered list of people who make good music\n\n\n- Clairo\n - Song recommendations\n - Clairo - Bags\n - Clairo - I Wouldn't Ask You\n - Clairo - Sofia\n - Website: \n- Crawlers\n - Song recommendations\n - CRAWLERS - Fuck Me (I Didn\u2019t Know How To Say)\n - CRAWLERS - Hush\n - CRAWLERS - I Don't Want It\n - CRAWLERS - Placebo\n - Website: \n- Conan Gray\n - Song recommendations\n - Conan Gray - Heather\n - Conan Gray - Memories\n - Conan Gray - Wish You Were Sober\n - Website: \n- Fazerdaze\n - Song recommendations\n - Fazerdaze - Lucky Girl\n - Fazerdaze - Misread\n - Fazerdaze - Come Apart\n - Website: \n- Girl in red\n - Song recommendations\n - girl in red - i'll die anyway.\n - girl in red & beabadoobee - eleanor and park\n - girl in red - .\n - girl in red - midnight love\n - girl in red - we fell in love in october\n - girl in red - You Stupid Bitch\n - Website: and \n- GIRLI\n - Song recommendations\n - GIRLI - Dysmorphia\n - GIRLI - More Than A Friend\n - GIRLI \u2013 I Don\u2019t Like Myself\n - Website: \n- MOTHICA\n - Song recommendations\n - MOTHICA & emlyn - GOOD FOR HER\n - MOTHICA - BEDTIME STORIES\n - MOTHICA - HIGHLIGHTS\n - Mothica - VICES\n - Mothica - motions\n - Website: \n- Phem\n - Song recommendations\n - phem - watery\n - phem - flowers\n - phem - silly putty\n - Website: and \n- Lana Del Rey\n - Song recommendations\n - Serial Killer - Lana Del Rey\n - Lana Del Rey - Video games\n - Website: \n- Sir Chloe\n - Song recommendations\n - Sir Chloe - Femme Fatale (The Velvet Underground & Nico Cover)\n - Sir Chloe - Mercy\n - Sir Chloe - Sedona\n - Sir Chloe - Squaring Up\n - Website: \n- Troye Sivan\n - Song recommendations\n - Troye Sivan - Rager teenager!\n - Troye Sivan - STUD\n - Troye Sivan - YOUTH\n - Website: \n- VIDEOCLUB\n - Song recommendations\n - VIDEOCLUB - Amour plastique\n - VIDEOCLUB - Euphories\n - Website: \n- R\u00f6yksopp\n - Song recommendations\n - R\u00f6yksopp - I Had This Thing\n - R\u00f6yksopp - Skulls\n - R\u00f6yksopp feat. Robyn - Monument (The Inevitable End Version)\n - Website: and \n\nYou can find more in [YouTube], but these are\nmy favs\n", "keywords": [ "phem", "music", @@ -2447,7 +2432,7 @@ "homework---ish-have-to-present-some-stuff-about-my-projects-and-things": { "title": "homework: -ish have to present some stuff about my projects and things", "description": "homeowkr shit which i posted on here lol", - "content": "## Projects\n\nDon't ask me about the names, ari-web came from how I name my hostnames\nwhile using Linux distros like ari- so it only makes sense that\nari-web would be for my website ig, other names I just made up ig, I really\nhave 0 clue what they mean but yeah, also I only created my GitHub account\nin 2020/09/10, meaning I have not released too much, usually my projects used\nto be smaller scale, the most I did was share them on discord or something,\nbut also there's the issue that I have deleted over 50 of them from github\nbecause they're.. Very useless\n\n- Ari-web things\n - [Main page](https://ari-web.xyz/) -- The actual main page, source code: \n - [Blog](https://blog.ari-web.xyz/) -- My.. Blog ig lol, but actually is managed and built unlike the legacy counterpart, source code: \n - [Legacy blog](https://legacy.blog.ari-web.xyz/)-- Why do people even read this, I have not updated it in like half a year, source code: \n - [Comments and opinions](https://user.ari-web.xyz/) -- Literally just a static page using uterances for people to comment stuff on rather than flooding me with github issues, source code: (nothing interesting)\n - [School stuff](https://school.ari-web.xyz) -- Very bad and cringe, also not foss\n - [(Mainly personal) File hosting](https://files.ari-web.xyz/) -- A place where I upload files because using conventional file uploading services like filebin is annoying because they have like an md5 hash as their file id, src: \n - [Three](https://3.ari-web.xyz/) -- Yeah, just 3 :) src: \n- My dotfiles: \n- My [Gentoo Linux](https://gentoo.org/) overlay: \n- A quite simple sudo alternative for _purely_ Linux (bc I suck and I don't use BSD yet, will be painful to port but eh, we'll see (yes I actually use it)) written in C++: \n- A TUI telegram client people seem to love but like it's not working with any modern features because I have not worked on it properly in like 9 months: \n- Yafetch's fork, same name, just a completely reworked build system and I do active porting to newer lua versions: \n- A bot I made for CollabVM when I was actually active on it, just a simple websocket client ig, just specifically for CollabVM: \n- I needed a GNU BASH plugin manager which doesn't take 3 hours to start up and load all the plugins so I made my own, actually I do that often, whenever I can't find proper software that fits me, I just make my own: \n- Youtube CLI client I guess, some people seem to like it, although it's quite meh, there are many better alternatives, I still use it from time to time: \n- A purely POSIX sh functional daemon manager on top of SysVinit: \n- Some tools I use for generating passwords, validating them, etc. I like my passwords strong: \n- Licence manager, quite useful, purely POSIX sh, I find using it quite a lot because I really don't want to go manually find and fill in licence templates: \n- SearX meta-search-engine CLI, as you can tell I really like CLI tools, my terminal is my literal life, I use it sometimes too i guess: \n- A simple package manager for the R programming language: \n- Make projects from templates, I use it as often as I use lmgr, because I hate doing things manually if I can easily automate it: https://ari-web.xyz/gh/mkproj\n- Random\n - A fork of vimbuddy script to make it cuter ig: \n - A fork of google's codefm for vim which has many more formatters and a less complicated contribution system: \n - My go at some of the coreutils, I barely work on it though: \n - A bar script for DWM window manager: \n - My build of the Linux kernel: \n - A build of DWM for the EndeavourOS GNU/Linux distribution made by me: \n - The coffee theme organization: \n\nPlus a bunch others, some private, some unreleased, some just too small to share lol, some just have\nbad code, actually some of that bad code is intentional, so like I got obsessed with stack based languages\nand I got 2 attempts at making 2:\n\n- [Rys](https://ari-web.xyz/gh/rys)\n- [Fa](https://ari-web.xyz/gh/fa)\n\nAll of them use python as a bootstrap and had a plan to self-host, Rys is just dead although Fa I'm pretty\nsure is turing complete, also I think it's possible to self-host it, I'm just too lazy to do so, also too\nlazy to prove its turing compleeness, the reason why the code is bad is because I literally did not try,\n'It's just a stupid script to what will disappear after some time' I thought, although Fa is def\nnot a fully dead project lol\n\nKay, so besides those, ari-web also has pages ig, like I don't think I can consider\nthem projects but yk, it's all in the main page kinda, actually a lot of it is indexed\nat although I'd suggest not visiting it if you like\nhaving eyes\n\n## Tools\n\nI am a Linux user as of now, I usually work with Linux, although I try to be as friendly\nas possible towards other \\*NIX-like operating systems, examples being BSD and MacOS,\nmainly BSD though as I myself got plans for 2023 to switch to it, Linux is getting too\nmainstream and large for my taste, although most likely I will still be using Linux\nis some form or another\n\nMy code editor is [ViM](https://www.vim.org/), a lightweight TUI code editor which is really extensible, vim\nis extremely fast and also has a very powerful plugin system using various languages (even compiled ones)\nbounded together by VimScript, there is another project called [NeoVim](https://neovim.io/) which tries to improve\nmore things on it because vim is an extremely old project which is basically controlled by one person,\nalthough still many people contribute, NeoVim is more speed and community focused, although I prefer ViM\nbecause I don't need the extra features and improvements nvim brings with it\n\nMy main interpreted language is Python, a very powerful, abstract high level programming language,\nalso quite powerful with its ability to load C and C++ extensions for lower level access, its API\nis fairly simple, you just work with basic PyObjects\n\nMy main compiled languages are C and C++, as I'm not a huge fan of OOP and I barely find use\nfor it, I mainly use C++ for its type system and namespaces, I also like C, a very simple\nand small programming language with low level access to the point of assembly, one thing which\nI don't really like about C is that you basically work with raw pointers all the time, C++\nmakes it less of a pain in my opinion\n\nFor configuration languages I prefer JSON, JSONC or DOSINI, all of them have their own uses,\nbut one works better than others in certain cases, JSON works well for basic config with\nmultiple types, JSONC works better for bigger and more complex configuration and DOSINI\npretty much works on anything that uses repositories or needs a basic header-key-value\nconfig, like `{\"header\": {\"key\": \"value\"}}` is a much more painful syntax than just\n\n [header]\n key = value\n\nAlso we cannot live without scripts, they help up automate repetitive tasks like building\na C++ binary with a whole bunch of flags, Makefiles are cool, but quite painful, also I use 4 spaces\nrather than tabs (yes ik so controversial smh how dare I wasted space blah blah blah) and Makefiles\nforce you to use tabs, which is extremely annoying, so I just resort to using POSIX sh and in very\nvery very rare cases where I need to use more special features I use BASH\n\nMy web stack for frontend is mainly (S)CSS, JS and HTML, although I like TS more, usually\nI'm just too lazy to set it up and end up running into countless bugs just because of people's beloved\nJavaScript (+ other million languages that have 'Java' in their name but have nothing in common with java),\nSCSS is also not a rare thing for me to use, it just requires some transpiling and you get way more features\nthan in CSS, I mainly use it in styles that require me to use a central configuration file or I just need\nthose extra features, for backend I usually use python with the flask web framework and jinja templating\nengine, if I need it also an SQLite3 database using SQLAlchemy because we all know how amazing, enjoyable and secure\nit is to write raw SQL queries <3333, this is a joke for the ones that don't get sarcasm\n\nThe languages I mentioned is not all I know, I have tried many languages, some of them liked,\nsome of them meh, same with knowledge of them, some of them I know better than others,\nfor example racket, scheme. haskell, lua, ruby, chicken, etc. and languages I really didn't\ninclude and which didn't fit like markdown, roff, etc. (which are not *programming* languages)\nI still use them\n\nAnd finally some random things I use can be found on \n\nThank you for listening to my presentation about this,\nhave a nice rest of your day\n", + "content": "## Projects\n\nDon't ask me about the names, ari-web came from how I name my hostnames\nwhile using Linux distros like ari- so it only makes sense that\nari-web would be for my website ig, other names I just made up ig, I really\nhave 0 clue what they mean but yeah, also I only created my GitHub account\nin 2020/09/10, meaning I have not released too much, usually my projects used\nto be smaller scale, the most I did was share them on discord or something,\nbut also there's the issue that I have deleted over 50 of them from github\nbecause they're.. Very useless\n\n- Ari-web things\n - [Main page](https://ari.lt/) -- The actual main page, source code: \n - [Blog](https://blog.ari.lt/) -- My.. Blog ig lol, but actually is managed and built unlike the legacy counterpart, source code: \n - [Legacy blog](https://legacy.blog.ari.lt/)-- Why do people even read this, I have not updated it in like half a year, source code: \n - [Comments and opinions](https://user.ari.lt/) -- Literally just a static page using uterances for people to comment stuff on rather than flooding me with github issues, source code: (nothing interesting)\n - [School stuff](https://school.ari.lt) -- Very bad and cringe, also not foss\n - [(Mainly personal) File hosting](https://files.ari.lt/) -- A place where I upload files because using conventional file uploading services like filebin is annoying because they have like an md5 hash as their file id, src: \n - [Three](https://3.ari.lt/) -- Yeah, just 3 :) src: \n- My dotfiles: \n- My [Gentoo Linux](https://gentoo.org/) overlay: \n- A quite simple sudo alternative for _purely_ Linux (bc I suck and I don't use BSD yet, will be painful to port but eh, we'll see (yes I actually use it)) written in C++: \n- A TUI telegram client people seem to love but like it's not working with any modern features because I have not worked on it properly in like 9 months: \n- Yafetch's fork, same name, just a completely reworked build system and I do active porting to newer lua versions: \n- A bot I made for CollabVM when I was actually active on it, just a simple websocket client ig, just specifically for CollabVM: \n- I needed a GNU BASH plugin manager which doesn't take 3 hours to start up and load all the plugins so I made my own, actually I do that often, whenever I can't find proper software that fits me, I just make my own: \n- Youtube CLI client I guess, some people seem to like it, although it's quite meh, there are many better alternatives, I still use it from time to time: \n- A purely POSIX sh functional daemon manager on top of SysVinit: \n- Some tools I use for generating passwords, validating them, etc. I like my passwords strong: \n- Licence manager, quite useful, purely POSIX sh, I find using it quite a lot because I really don't want to go manually find and fill in licence templates: \n- SearX meta-search-engine CLI, as you can tell I really like CLI tools, my terminal is my literal life, I use it sometimes too i guess: \n- A simple package manager for the R programming language: \n- Make projects from templates, I use it as often as I use lmgr, because I hate doing things manually if I can easily automate it: https://ari.lt/gh/mkproj\n- Random\n - A fork of vimbuddy script to make it cuter ig: \n - A fork of google's codefm for vim which has many more formatters and a less complicated contribution system: \n - My go at some of the coreutils, I barely work on it though: \n - A bar script for DWM window manager: \n - My build of the Linux kernel: \n - A build of DWM for the EndeavourOS GNU/Linux distribution made by me: \n - The coffee theme organization: \n\nPlus a bunch others, some private, some unreleased, some just too small to share lol, some just have\nbad code, actually some of that bad code is intentional, so like I got obsessed with stack based languages\nand I got 2 attempts at making 2:\n\n- [Rys](https://ari.lt/gh/rys)\n- [Fa](https://ari.lt/gh/fa)\n\nAll of them use python as a bootstrap and had a plan to self-host, Rys is just dead although Fa I'm pretty\nsure is turing complete, also I think it's possible to self-host it, I'm just too lazy to do so, also too\nlazy to prove its turing compleeness, the reason why the code is bad is because I literally did not try,\n'It's just a stupid script to what will disappear after some time' I thought, although Fa is def\nnot a fully dead project lol\n\nKay, so besides those, ari-web also has pages ig, like I don't think I can consider\nthem projects but yk, it's all in the main page kinda, actually a lot of it is indexed\nat although I'd suggest not visiting it if you like\nhaving eyes\n\n## Tools\n\nI am a Linux user as of now, I usually work with Linux, although I try to be as friendly\nas possible towards other \\*NIX-like operating systems, examples being BSD and MacOS,\nmainly BSD though as I myself got plans for 2023 to switch to it, Linux is getting too\nmainstream and large for my taste, although most likely I will still be using Linux\nis some form or another\n\nMy code editor is [ViM](https://www.vim.org/), a lightweight TUI code editor which is really extensible, vim\nis extremely fast and also has a very powerful plugin system using various languages (even compiled ones)\nbounded together by VimScript, there is another project called [NeoVim](https://neovim.io/) which tries to improve\nmore things on it because vim is an extremely old project which is basically controlled by one person,\nalthough still many people contribute, NeoVim is more speed and community focused, although I prefer ViM\nbecause I don't need the extra features and improvements nvim brings with it\n\nMy main interpreted language is Python, a very powerful, abstract high level programming language,\nalso quite powerful with its ability to load C and C++ extensions for lower level access, its API\nis fairly simple, you just work with basic PyObjects\n\nMy main compiled languages are C and C++, as I'm not a huge fan of OOP and I barely find use\nfor it, I mainly use C++ for its type system and namespaces, I also like C, a very simple\nand small programming language with low level access to the point of assembly, one thing which\nI don't really like about C is that you basically work with raw pointers all the time, C++\nmakes it less of a pain in my opinion\n\nFor configuration languages I prefer JSON, JSONC or DOSINI, all of them have their own uses,\nbut one works better than others in certain cases, JSON works well for basic config with\nmultiple types, JSONC works better for bigger and more complex configuration and DOSINI\npretty much works on anything that uses repositories or needs a basic header-key-value\nconfig, like `{\"header\": {\"key\": \"value\"}}` is a much more painful syntax than just\n\n [header]\n key = value\n\nAlso we cannot live without scripts, they help up automate repetitive tasks like building\na C++ binary with a whole bunch of flags, Makefiles are cool, but quite painful, also I use 4 spaces\nrather than tabs (yes ik so controversial smh how dare I wasted space blah blah blah) and Makefiles\nforce you to use tabs, which is extremely annoying, so I just resort to using POSIX sh and in very\nvery very rare cases where I need to use more special features I use BASH\n\nMy web stack for frontend is mainly (S)CSS, JS and HTML, although I like TS more, usually\nI'm just too lazy to set it up and end up running into countless bugs just because of people's beloved\nJavaScript (+ other million languages that have 'Java' in their name but have nothing in common with java),\nSCSS is also not a rare thing for me to use, it just requires some transpiling and you get way more features\nthan in CSS, I mainly use it in styles that require me to use a central configuration file or I just need\nthose extra features, for backend I usually use python with the flask web framework and jinja templating\nengine, if I need it also an SQLite3 database using SQLAlchemy because we all know how amazing, enjoyable and secure\nit is to write raw SQL queries <3333, this is a joke for the ones that don't get sarcasm\n\nThe languages I mentioned is not all I know, I have tried many languages, some of them liked,\nsome of them meh, same with knowledge of them, some of them I know better than others,\nfor example racket, scheme. haskell, lua, ruby, chicken, etc. and languages I really didn't\ninclude and which didn't fit like markdown, roff, etc. (which are not *programming* languages)\nI still use them\n\nAnd finally some random things I use can be found on \n\nThank you for listening to my presentation about this,\nhave a nice rest of your day", "keywords": [], "created": 1662643265.490569 }, @@ -2546,7 +2531,7 @@ "experiments": { "title": "experiments", "description": "I'm looking at bandwidth usage and it's quite interesting, a lot of my bandwidth comes from the legacy blog, so lets try to change that", - "content": "Hello world,\n\nI'm looking at bandwidth usage and it's quite interesting,\na lot of my bandwidth comes from the legacy blog, as of\nthis month currently, uses up exactly\n29.347826086956523% of the bandwidth\n\nI might experiment more with the updated sites to see\nwhy that is the case, right now, the main blog will not\nhave content blocking features, that is JavaScript blocking\n\nI modified netlify.toml to have CSP of just as *upgrade-insecure-requests*\nrather than *upgrade-insecure-requests; sandbox; script-src 'sha512-v'; object-src 'none';*\n\nWe will see how this will affect the statistics for next\nmonth, and just to answer your question, no, I am not tracking\nindividual users nor am I collecting any statistics,\nnetlify only shows me the bandwidth and using some basic math\nI can calculate the okay accuracy statistics kinda, nothing\n*too* much, but stuff like avg. Visits for example\n\nAnyway, if anyone is unhappy with this change you can just\n[email me](mailto:ari.web.xyz@gmail.com), [leave an issue under the git repo](/git) or [leave a comment in the users CaO](https://user.ari-web.xyz/)\n\nAnyway, thank you people for staying with me, hope\nari-web continues to grow as both a personal portfolio\nand just a fun site :)\n\nHave a nice rest of your day :D\n", + "content": "Hello world,\n\nI'm looking at bandwidth usage and it's quite interesting,\na lot of my bandwidth comes from the legacy blog, as of\nthis month currently, uses up exactly\n29.347826086956523% of the bandwidth\n\nI might experiment more with the updated sites to see\nwhy that is the case, right now, the main blog will not\nhave content blocking features, that is JavaScript blocking\n\nI modified netlify.toml to have CSP of just as *upgrade-insecure-requests*\nrather than *upgrade-insecure-requests; sandbox; script-src 'sha512-v'; object-src 'none';*\n\nWe will see how this will affect the statistics for next\nmonth, and just to answer your question, no, I am not tracking\nindividual users nor am I collecting any statistics,\nnetlify only shows me the bandwidth and using some basic math\nI can calculate the okay accuracy statistics kinda, nothing\n*too* much, but stuff like avg. Visits for example\n\nAnyway, if anyone is unhappy with this change you can just\n[email me](mailto:ari.web.xyz@gmail.com), [leave an issue under the git repo](/git) or [leave a comment in the users CaO](https://user.ari.lt/)\n\nAnyway, thank you people for staying with me, hope\nari-web continues to grow as both a personal portfolio\nand just a fun site :)\n\nHave a nice rest of your day :D\n", "keywords": [ "statistics", "javascript", @@ -2626,8 +2611,8 @@ }, "abot--ari-bot--bot-on-collabvm": { "title": "abot (ari-bot) bot on collabvm", - "description": "Abot is a bot created by me because why not, the source code: ", - "content": "Abot is a bot created by me because why not,\nthe source code: \n\nPrefix is just a mention of it, for example:\n`@ari-bot die`\n\nCommands:\n\n* `hi` -- Says hello back to the user\n* `log ` -- Logs a user (or you) in or out, needs an auth key\n* `getkey` -- Gets the auth key and prints serverside\n* `whoami` -- Prints your username\n* `die` -- Makes the bot exit\n* `savecfg` -- Saves the config\n* `note ` -- Make a note\n* `get ` -- Print a note\n* `del ` -- Delete a note\n* `notes` -- Get a list of notes\n* `ignore ` -- Ignore a user\n* `acknowledge ` -- Ignore a user\n* `ignored` -- Get ignored users\n* `insult ` -- Insults a specified or current user\n* `revokey` -- Revokes current auth key\n* `alias ` -- Alias a command to a command\n* `unalias ` -- Unalias alias alias\n* `aliases` -- List all aliases\n* `report ` -- Reports a user to admins (requires a discord webhook url in `report-webhook-url` config option)\n* `sendkey` -- Sends a key to a discord channel (requires a discord webhook url in `authkey-webhook-url` config option)\n* `chatlog` -- Sends current chatlog\n* `dumplog` -- Dumps current chatlog\n* `say ` -- Says whatever you tell it to say\n* `searchnote ` -- Searches for a note\n* `searchalias ` -- Searches for an alias\n* `impersonator ` -- Marks a user as an impersonator\n* `notimpersonator ` -- Marks a user as not an impersonator\n* `turn` -- Takes turn\n* `keys ` -- Types a key combo (see **Key Combos** section)\n* `endturn` -- Ends turn\n* `skeys` -- Lists saved key combos\n* `skey ` -- Save a key combo\n* `ikey ` -- Invoke a saved combo\n* `reloadcfg` -- Reload config\n* `dkey ` -- Delete a saved combo\n\n# Key Combos\n\nKey combos are special syntactical strings which can be understood\nby abot and interpreted as key presses, the syntax is as follows:\n\n* `^` -- Presses `CTRL` + `char` and then releases `CTRL` (e.g. `^c`)\n\n* `\\` -- Types an escapable character (e.g. `\\n`)\n * `n` -- Enter\n * `e` -- Escape\n * `c` -- Control\n * `a` -- Alt\n * `b` -- Backspace\n * `w` -- Windows key\n * `)` -- Literal `)`\n * `s` -- Shift\n * `t` -- Tab\n * `l` -- Num lock\n\n* `~` -- Presses an arrow key (e.g. `~l`)\n * `l` -- Left\n * `u` -- Up\n * `r` -- Right\n * `d` -- Dowb\n\n* `[]` -- Presses `F` key (e.g. `[2]`)\n\n* `()` -- Writes literal ascii values (e.g. `(\\Hello world!)`)\n\n* `!` -- Releases an escapable character (e.g. `!n`)\n\n* Repeats\n * `{}` -- Repeat last action for `` times (e.g. `H{2}`)\n * `{:}` -- Repeat last `` actions for `` times (e.g. `Hello{2:1}`)\n\n* `|` -- Press and release an escapable character (e.g. `|n`)\n\n* Anything else is just `()`\n\n* Keycodes\n * `` -- Press a key with specified keycode (on state)\n * `` -- Press a key with specified keycode (specified state)\n\n* `@;` -- Trigger/inline a combo\n\n# Few fun things\n\n* If you say \"Im \\\", \"I'm \\\" or \"I am \\\"\n it'll answer with \"Hi \\, I'm \\ :)\"\n* If you say the only the set owners name it'll answer with\n \"@user smh whattttttttttttt\"\n* If you mention the bot with no content it'll answer with\n \"@\\ Huh? What do you want lol\"\n* If you you say that you're the bot (refer to #1) or the owner\n when you're actually not it'll doubt you\n* It responds to Mr. Ware bot's \"@Emperor Palpatine is not the senate. Trust me.\"\n message with \"Yes he is >:(\"\n", + "description": "Abot is a bot created by me because why not, the source code: ", + "content": "Abot is a bot created by me because why not,\nthe source code: \n\nPrefix is just a mention of it, for example:\n`@ari-bot die`\n\nCommands:\n\n* `hi` -- Says hello back to the user\n* `log ` -- Logs a user (or you) in or out, needs an auth key\n* `getkey` -- Gets the auth key and prints serverside\n* `whoami` -- Prints your username\n* `die` -- Makes the bot exit\n* `savecfg` -- Saves the config\n* `note ` -- Make a note\n* `get ` -- Print a note\n* `del ` -- Delete a note\n* `notes` -- Get a list of notes\n* `ignore ` -- Ignore a user\n* `acknowledge ` -- Ignore a user\n* `ignored` -- Get ignored users\n* `insult ` -- Insults a specified or current user\n* `revokey` -- Revokes current auth key\n* `alias ` -- Alias a command to a command\n* `unalias ` -- Unalias alias alias\n* `aliases` -- List all aliases\n* `report ` -- Reports a user to admins (requires a discord webhook url in `report-webhook-url` config option)\n* `sendkey` -- Sends a key to a discord channel (requires a discord webhook url in `authkey-webhook-url` config option)\n* `chatlog` -- Sends current chatlog\n* `dumplog` -- Dumps current chatlog\n* `say ` -- Says whatever you tell it to say\n* `searchnote ` -- Searches for a note\n* `searchalias ` -- Searches for an alias\n* `impersonator ` -- Marks a user as an impersonator\n* `notimpersonator ` -- Marks a user as not an impersonator\n* `turn` -- Takes turn\n* `keys ` -- Types a key combo (see **Key Combos** section)\n* `endturn` -- Ends turn\n* `skeys` -- Lists saved key combos\n* `skey ` -- Save a key combo\n* `ikey ` -- Invoke a saved combo\n* `reloadcfg` -- Reload config\n* `dkey ` -- Delete a saved combo\n\n# Key Combos\n\nKey combos are special syntactical strings which can be understood\nby abot and interpreted as key presses, the syntax is as follows:\n\n* `^` -- Presses `CTRL` + `char` and then releases `CTRL` (e.g. `^c`)\n\n* `\\` -- Types an escapable character (e.g. `\\n`)\n * `n` -- Enter\n * `e` -- Escape\n * `c` -- Control\n * `a` -- Alt\n * `b` -- Backspace\n * `w` -- Windows key\n * `)` -- Literal `)`\n * `s` -- Shift\n * `t` -- Tab\n * `l` -- Num lock\n\n* `~` -- Presses an arrow key (e.g. `~l`)\n * `l` -- Left\n * `u` -- Up\n * `r` -- Right\n * `d` -- Dowb\n\n* `[]` -- Presses `F` key (e.g. `[2]`)\n\n* `()` -- Writes literal ascii values (e.g. `(\\Hello world!)`)\n\n* `!` -- Releases an escapable character (e.g. `!n`)\n\n* Repeats\n * `{}` -- Repeat last action for `` times (e.g. `H{2}`)\n * `{:}` -- Repeat last `` actions for `` times (e.g. `Hello{2:1}`)\n\n* `|` -- Press and release an escapable character (e.g. `|n`)\n\n* Anything else is just `()`\n\n* Keycodes\n * `` -- Press a key with specified keycode (on state)\n * `` -- Press a key with specified keycode (specified state)\n\n* `@;` -- Trigger/inline a combo\n\n# Few fun things\n\n* If you say \"Im \\\", \"I'm \\\" or \"I am \\\"\n it'll answer with \"Hi \\, I'm \\ :)\"\n* If you say the only the set owners name it'll answer with\n \"@user smh whattttttttttttt\"\n* If you mention the bot with no content it'll answer with\n \"@\\ Huh? What do you want lol\"\n* If you you say that you're the bot (refer to #1) or the owner\n when you're actually not it'll doubt you\n* It responds to Mr. Ware bot's \"@Emperor Palpatine is not the senate. Trust me.\"\n message with \"Yes he is >:(\"\n", "keywords": [ "collabvm", "computernewb", @@ -2761,7 +2746,7 @@ "accesibility-issues-of-ari-web": { "title": "accesibility issues of ari-web", "description": "Hello world, Today I worked on making ari-web blog a bit more accesible to people and I really want to keep making it as accesible as possible", - "content": "Hello world,\n\nToday I worked on making ari-web blog a bit more\naccesible to people and I really want to keep\nmaking it as accesible as possible\n**without using JavaScript**, the current accesibility\nstuff is not very advanced and has a lot of issues\n(e.g not detecting constrast, not detecting accesibility mode),\nI'm not fully sure how to fix those issues so if any\nreaders here have issues with accesibility or have any suggestions I am more\nthan happy to hear them on my e-mail: [ari.web.xyz@gmail.com](mailto:ari.web.xyz@gmail.com)\nor user opinions site: or if you already\nhave a solution please contrubute [to the source code on GitHub](/git)\n\nThanks in advance for reports, contributions or any\nhelp people are willing to give\n\nThanks for reading, see you in the next blog <3\n", + "content": "Hello world,\n\nToday I worked on making ari-web blog a bit more\naccesible to people and I really want to keep\nmaking it as accesible as possible\n**without using JavaScript**, the current accesibility\nstuff is not very advanced and has a lot of issues\n(e.g not detecting constrast, not detecting accesibility mode),\nI'm not fully sure how to fix those issues so if any\nreaders here have issues with accesibility or have any suggestions I am more\nthan happy to hear them on my e-mail: [ari.web.xyz@gmail.com](mailto:ari.web.xyz@gmail.com)\nor user opinions site: or if you already\nhave a solution please contrubute [to the source code on GitHub](/git)\n\nThanks in advance for reports, contributions or any\nhelp people are willing to give\n\nThanks for reading, see you in the next blog <3\n", "keywords": [ "accesibility", "disabled", @@ -2821,7 +2806,7 @@ "my-enneagram-type": { "title": "my enneagram type", "description": "type 4", - "content": "**TL;DR** My enneagram type is 4\n\nSo I did this test: \n\nAnd got these results:\n\n- [Enneagram pie chart for me](https://files.ari-web.xyz/files/blog.ari-web.xyz-enneagram.png)\n\nApperantly I'm type 4:\n\n> Fours are defined by their belief that they are different\n> from other people, and by their feelings of envy for what\n> others have. Fours have the sense that something is missing\n> from their lives, and they worry that they will never have\n> the happiness that other people experience.\n>\n> At their core, Fours feel they are fundamentally flawed and will\n> never be able to be truly understood by other people. At the\n> same time, they passionately long for the type of deep connection\n> that will make them feel whole and accepted. Many Fours romanticize and\n> idealize their relationships, hoping that each new connection will\n> be the one that finally makes them feel understood and appreciated.\n\nOof, I don't think I'm _that_ different lol, but nice, I am type\n4 :)\n", + "content": "**TL;DR** My enneagram type is 4\n\nSo I did this test: \n\nAnd got these results:\n\n<@:467da37b61b8edee2e7ba9f5cd871d5e766d589e3d4a4ba0d077e3d656ccbab1>\n\nApperantly I'm type 4:\n\n> Fours are defined by their belief that they are different\n> from other people, and by their feelings of envy for what\n> others have. Fours have the sense that something is missing\n> from their lives, and they worry that they will never have\n> the happiness that other people experience.\n>\n> At their core, Fours feel they are fundamentally flawed and will\n> never be able to be truly understood by other people. At the\n> same time, they passionately long for the type of deep connection\n> that will make them feel whole and accepted. Many Fours romanticize and\n> idealize their relationships, hoping that each new connection will\n> be the one that finally makes them feel understood and appreciated.\n\nOof, I don't think I'm _that_ different lol, but nice, I am type\n4 :)", "keywords": [ "enneagram", "personality", @@ -2849,7 +2834,7 @@ "-duckduckgo--more-like-duckduckno--blog-proven": { "title": "\"duckduckgo? more like duckduckno\" blog proven", "description": "duckduckno", - "content": "Another one of my blogs proven correct lol:\n\n\nTold y'all, [use SearX](https://searx.space/)\n\nBtw, original blog (legacy): \n", + "content": "Another one of my blogs proven correct lol:\n\n\nTold y'all, [use SearX](https://searx.space/)\n\nBtw, original blog (legacy): \n", "keywords": [ "duckduckgo", "privacy", @@ -2896,8 +2881,8 @@ }, "wtf-is-going-on-and-why-is-my-site-blowing-up": { "title": "wtf is going on and why is my site blowing up", - "description": "???? WHAT I AM SO HAPPY NOT GONNA LIE I JUST WENT TO MY NETLIFTY DASHBOARD AND SAW THIS: WHAT HOW OMG THANK YOU PEOPLE!!!!!", - "content": "???? WHAT\n\nI AM SO HAPPY NOT GONNA LIE\n\nI JUST WENT TO MY NETLIFTY DASHBOARD AND SAW THIS:\n\n\nWHAT HOW OMG THANK YOU PEOPLE!!!!!\n", + "description": "???? WHAT I AM SO HAPPY NOT GONNA LIE I JUST WENT TO MY NETLIFTY DASHBOARD AND SAW THIS: WHAT HOW OMG THANK YOU PEOPLE!!!!!", + "content": "???? WHAT\n\nI AM SO HAPPY NOT GONNA LIE\n\nI JUST WENT TO MY NETLIFTY DASHBOARD AND SAW THIS:\n\n<@:9b9a2aff1530592cf4eae3e4bffa4e09a2f424343f8f9b85922d81488c97e110>\n\nWHAT HOW OMG THANK YOU PEOPLE!!!!!", "keywords": [ "excited", "goal", @@ -2910,7 +2895,7 @@ "happy--almost--pride-month---": { "title": "happy (almost) pride month :)", "description": "happy homoshrekshual month", - "content": "Just wanted to wish my community a happy pride month,\nAmazing to see how far we've come as a community :)\n\nAlso, \nyes\n\nGood bye, happy pride month <3\n", + "content": "Just wanted to wish my community a happy pride month,\nAmazing to see how far we've come as a community :)\n\nAlso,\n\n<@:974aaeaf72e8958f6d612e3d39d59dc9389b453f01e7d31a5e528de3e490cc48>\n\nyes\n\nGood bye, happy pride month <3", "keywords": [ "gay", "lgbt", @@ -2924,7 +2909,7 @@ "introducing-the-ari-web-api-": { "title": "introducing the ari-web api!", "description": "Just a few minutes ago I introduced an API into ari-web, it's a static API, though it's nice for fetching information about the webite in JSON", - "content": "Just a few minutes ago I introduced an API into\nari-web, it's a static API, though it's nice for\nfetching information about the webite in JSON if\nyou don't want to parse [sitemap.xml](https://www.ari-web.xyz/sitemap.xml) :)\n\nAnyway, the home page for the API is: \nit will show you the list of all APIs available\n\nAn example of an available API: \nit will give you the list of sites on ari-web :)\n\nAnyway, enjoy if you ever need to interface with ari-web :)\nAlso if you need any more APIs you can make an issue\non or discuss it on\n :)\n\nGood bye!\n", + "content": "Just a few minutes ago I introduced an API into\nari-web, it's a static API, though it's nice for\nfetching information about the webite in JSON if\nyou don't want to parse [sitemap.xml](https://www.ari.lt/sitemap.xml) :)\n\nAnyway, the home page for the API is: \nit will show you the list of all APIs available\n\nAn example of an available API: \nit will give you the list of sites on ari-web :)\n\nAnyway, enjoy if you ever need to interface with ari-web :)\nAlso if you need any more APIs you can make an issue\non or discuss it on\n :)\n\nGood bye!\n", "keywords": [ "api", "json", @@ -2937,7 +2922,7 @@ "user-opinion-and-comments-site-is-now-up---": { "title": "user opinion and comments site is now up :)", "description": "utterances on ari-web", - "content": "Hello,\n\nI have made a site, using [utterances](https://utteranc.es/) as the comments\nsection, so if anyone wants you can start giving ideas, feedback and all\nthat good stuff there instead of my email but emails are still very very\nappriciated :D\n\n- Source: \n- URL: [Redirect: /c to user.ari-web.xyz](/c)\n\nHope to see you there :)\n", + "content": "Hello,\n\nI have made a site, using [utterances](https://utteranc.es/) as the comments\nsection, so if anyone wants you can start giving ideas, feedback and all\nthat good stuff there instead of my email but emails are still very very\nappreciated :D\n\n- Source: \n- URL: [Redirect: /c to user.ari-web.xyz](/c)\n\nHope to see you there :)", "keywords": [ "comment", "opinion", @@ -2953,7 +2938,7 @@ "my-gentoo-linux-setup": { "title": "my gentoo linux setup", "description": "my gentoo linux setup", - "content": "My [Gentoo Linux](https://www.gentoo.org/) setup summarised in one blog:\n\n* General theme: [Coffee theme](https://github.com/coffee-theme)\n* TTY theme: \n* Windowing system: [X(org)](https://x.org/)\n* X startup: [StartX/Xinit](https://wikiless.tiekoetter.com/wiki/Xinit?lang=en)\n* X software\n * Application runner: [DMenu](https://tools.suckless.org/dmenu/)\n * Window manager: [DWM](https://dwm.suckless.org/)\n * Locker: [SLock](https://tools.suckless.org/slock/)\n * Terminal emulator: [ST](https://st.suckless.org/)\n * Graphics toolkit: [GTK](https://www.gtk.org/)\n * GTK theme and icons: [Gruvbox-material-gtk-theme](https://github.com/sainnhe/gruvbox-material-gtk)\n* Core system\n * Init system: [OpenRC](https://github.com/OpenRC/openrc)\n * SSH daemon: [OpenSSH](https://www.openssh.com/)\n * SSL lib: [OpenSSL](https://www.openssl.org/)\n * Login manager: [ELoginD](https://github.com/elogind/elogind)\n * Firmware: [UEFI](https://en.wikiless.tiekoetter.com/wiki/Unified_Extensible_Firmware_Interface)\n * C lib: [GLibC](https://www.gnu.org/software/libc/)\n* CLI/TUI applications\n * Package manager: [portage](https://wiki.gentoo.org/wiki/Portage)\n * Python package manager: [pip](https://pypi.org/project/pip/)\n * JavaScript package manager: [npm](https://www.npmjs.com/)\n * Shell: [BASH](https://www.gnu.org/software/bash/)\n * Completion: [bash-completion](https://github.com/scop/bash-completion)\n * Plugin manager: [baz](https://ari-web.xyz/gh/baz)\n * [shortcmd-baz-plugin](https://ari-web.xyz/gh/shortcmd-baz-plugin)\n * [coloured-man-pages-plugin](https://ari-web.xyz/gh/coloured-man-pages-plugin)\n * [better-bash-baz-plugin](https://ari-web.xyz/gh/better-bash-baz-plugin)\n * [ls-aliases-baz-plugin](https://ari-web.xyz/gh/ls-aliases-baz-plugin)\n * [vifzf-keybinds-baz-plugin](https://ari-web.xyz/gh/vifzf-keybinds-baz-plugin)\n * [coffee.tty-theme](https://github.com/coffee-theme/coffee.tty-theme)\n * [coffee.baz-plugin](https://github.com/coffee-theme/coffee.baz-plugin)\n * [venvin-baz-plugin](https://ari-web.xyz/gh/venvin-baz-plugin)\n * [trash-cli-rm-baz](https://ari-web.xyz/gh/trash-cli-rm-baz)\n * [yt-dlp-aliases-baz-plugin](https://ari-web.xyz/gh/yt-dlp-aliases-baz-plugin)\n * [bettercmd-baz-plugin](https://ari-web.xyz/gh/bettercmd-baz-plugin)\n * [cmdutils-baz-plugin](https://ari-web.xyz/gh/cmdutils-baz-plugin)\n * Multiplexer: [TMUX](https://github.com/tmux/tmux)\n * Trash: [trash-cli](https://pypi.org/project/trash-cli/)\n * Finder: [Fzf](https://github.com/junegunn/fzf)\n * File indexing: [Mlocate](https://wikiless.tiekoetter.com/wiki/Locate_(Unix)?lang=en)\n * SUID tool: [Kos](https://ari-web.xyz/gh/kos)\n * \"Cat\" program: [Bat](https://github.com/sharkdp/bat)\n * \"Ls\" program: [Lsd](https://github.com/Peltoche/lsd)\n * \"Df\" command: [Duf](https://github.com/muesli/duf)\n * Fetch tool: [Yafetch (my fork)](https://ari-web.xyz/gh/yafetch) ([Original](https://github.com/yrwq/yafetch))\n * Manual pages: [manDB](http://man-db.nongnu.org/)\n * Calender: [Calcurse](https://calcurse.org/)\n * Telegram client: [Arigram](https://ari-web.xyz/gh/arigram)\n * TUI web browser: [Lynx](https://lynx.invisible-island.net/)\n* Other GUI applications\n * Web browser: [Firefox](https://wikiless.tiekoetter.com/wiki/Firefox?lang=en)\n * Password manager: [KeePassXC](https://keepassxc.org/)\n* Media\n * PDF viewer: [Zathura](https://github.com/pwmt/zathura)\n * Media player: [MPV](https://mpv.io/)\n * Image viewer (though I mainly use it for wallpaper): [Feh](https://github.com/derf/feh)\n * [YouTube](https://youtube.com/) downloader: [yt-dlp](https://github.com/yt-dlp/yt-dlp)\n* Development tools\n * Editor: [ViM](https://www.vim.org/)\n * Plugin manager: [ViMPlug](https://github.com/junegunn/vim-plug)\n * [turbio/bracey.vim](https://github.com/turbio/bracey.vim)\n * [mattn/emmet-vim](https://github.com/mattn/emmet-vim)\n * [neoclide/coc.nvim](https://github.com/neoclide/coc.nvim)\n * [coc-json](https://github.com/neoclide/coc-json)\n * [coc-snippets](https://github.com/neoclide/coc-snippets)\n * [coc-lua](https://github.com/josa42/coc-lua)\n * [coc-sh](https://github.com/josa42/coc-sh)\n * [coc-css](https://github.com/neoclide/coc-css)\n * [coc-html](https://github.com/neoclide/coc-html)\n * [coc-tsserver](https://github.com/neoclide/coc-tsserver)\n * [coc-docker](https://github.com/josa42/coc-docker)\n * [coc-vimlsp](https://github.com/iamcco/coc-vimlsp)\n * [w0rp/ale](https://github.com/w0rp/ale)\n * [coffee-theme/lightline.vim](https://github.com/coffee-theme/lightline.vim)\n * [vim-latex/vim-latex](https://github.com/vim-latex/vim-latex)\n * [google/vim-maktaba](https://github.com/google/vim-maktaba)\n * [TruncatedDinosour/vim-codefmt](https://github.com/TruncatedDinosour/vim-codefmt)\n * [Yggdroot/indentLine](https://github.com/Yggdroot/indentLine)\n * [drmingdrmer/vim-tabbar](https://github.com/drmingdrmer/vim-tabbar)\n * [lilydjwg/colorizer](https://github.com/lilydjwg/colorizer)\n * [christoomey/vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator)\n * [tpope/vim-surround](https://github.com/tpope/vim-surround)\n * [editorconfig/editorconfig-vim](https://github.com/editorconfig/editorconfig-vim)\n * [godlygeek/tabular](https://github.com/godlygeek/tabular)\n * [haya14busa/is.vim](https://github.com/haya14busa/is.vim)\n * [machakann/vim-highlightedyank](https://github.com/machakann/vim-highlightedyank)\n * [luochen1990/rainbow](https://github.com/luochen1990/rainbow)\n * [coffee-theme/coffee.vim](https://github.com/coffee-theme/coffee.vim)\n * [vim-scripts/vimbuddy.vim](https://github.com/vim-scripts/vimbuddy.vim)\n * [euclio/vim-markdown-composer](https://github.com/euclio/vim-markdown-composer)\n * Languages (main ones)\n * [LaTeX](https://www.latex-project.org/)\n * [Clang for C and C++](https://clang.llvm.org/)\n * [Python](https://python.org/)\n * [FASM assembler](https://flatassembler.net/)\n * Formatters (main ones)\n * Python: [Black](https://github.com/psf/black) and [ISort](https://github.com/PyCQA/isort)\n * Shell: [SHFmt](https://github.com/mvdan/sh)\n * C and C++: [Clang-format](https://clang.llvm.org/docs/ClangFormat.html)\n * Markdown, JavaScript, (S)CSS and html: [Clang-format](https://clang.llvm.org/docs/ClangFormat.html), [JS-beautify](https://github.com/beautify-web/js-beautify), [Prettier](https://github.com/prettier/prettier)\n * VCS: [git](https://git-scm.com/) + [OpenSSH](https://www.openssh.com/) + [GPG](https://gnupg.org/)\n* Sound system: [ALSA](https://www.alsa-project.org/wiki/Main_Page)\n* Fonts\n * [Fira mono](https://github.com/mozilla/Fira)\n * [Freefont](https://www.gnu.org/software/freefont/)\n * [Nerd fonts](https://www.nerdfonts.com/) (hack font specifically)\n * [Urw fonts](https://wikiless.tiekoetter.com/wiki/URW_Type_Foundry?lang=en)\n* Misc\n * Process viewer: [htop-vim](https://github.com/KoffeinFlummi/htop-vim)\n * Password generator: [pwdtools](https://ari-web.xyz/gh/pwdtools)\n * File validation, hashing and information: [Filetools](https://ari-web.xyz/gh/filetools)\n * Charset manager: [Char](https://ari-web.xyz/gh/char)\n * License manager: [Lmgr](https://ari-web.xyz/gh/lmgr)\n * Project manager: [Mkproj](https://ari-web.xyz/gh/mkproj)\n\nI think that's about it when it comes to important stuff,\nLMK if you want anything else added :)\n\nDotfiles: \n", + "content": "My [Gentoo Linux](https://www.gentoo.org/) setup summarised in one blog:\n\n- General theme: [Coffee theme](https://github.com/coffee-theme)\n- TTY theme: \n- Windowing system: [X(org)](https://x.org/)\n- X startup: [StartX/Xinit](https://wikiless.tiekoetter.com/wiki/Xinit?lang=en)\n- X software\n - Application runner: [DMenu](https://tools.suckless.org/dmenu/)\n - Window manager: [DWM](https://dwm.suckless.org/)\n - Locker: [SLock](https://tools.suckless.org/slock/)\n - Terminal emulator: [ST](https://st.suckless.org/)\n - Graphics toolkit: [GTK](https://www.gtk.org/)\n - GTK theme and icons: [Gruvbox-material-gtk-theme](https://github.com/sainnhe/gruvbox-material-gtk)\n- Core system\n - Init system: [OpenRC](https://github.com/OpenRC/openrc)\n - SSH daemon: [OpenSSH](https://www.openssh.com/)\n - SSL lib: [OpenSSL](https://www.openssl.org/)\n - Login manager: [ELoginD](https://github.com/elogind/elogind)\n - Firmware: [UEFI](https://en.wikiless.tiekoetter.com/wiki/Unified_Extensible_Firmware_Interface)\n - C lib: [GLibC](https://www.gnu.org/software/libc/)\n- CLI/TUI applications\n - Package manager: [portage](https://wiki.gentoo.org/wiki/Portage)\n - Python package manager: [pip](https://pypi.org/project/pip/)\n - JavaScript package manager: [npm](https://www.npmjs.com/)\n - Shell: [BASH](https://www.gnu.org/software/bash/)\n - Completion: [bash-completion](https://github.com/scop/bash-completion)\n - Plugin manager: [baz](https://ari.lt/gh/baz)\n - [shortcmd-baz-plugin](https://ari.lt/gh/shortcmd-baz-plugin)\n - [coloured-man-pages-plugin](https://ari.lt/gh/coloured-man-pages-plugin)\n - [better-bash-baz-plugin](https://ari.lt/gh/better-bash-baz-plugin)\n - [ls-aliases-baz-plugin](https://ari.lt/gh/ls-aliases-baz-plugin)\n - [vifzf-keybinds-baz-plugin](https://ari.lt/gh/vifzf-keybinds-baz-plugin)\n - [coffee.tty-theme](https://github.com/coffee-theme/coffee.tty-theme)\n - [coffee.baz-plugin](https://github.com/coffee-theme/coffee.baz-plugin)\n - [venvin-baz-plugin](https://ari.lt/gh/venvin-baz-plugin)\n - [trash-cli-rm-baz](https://ari.lt/gh/trash-cli-rm-baz)\n - [yt-dlp-aliases-baz-plugin](https://ari.lt/gh/yt-dlp-aliases-baz-plugin)\n - [bettercmd-baz-plugin](https://ari.lt/gh/bettercmd-baz-plugin)\n - [cmdutils-baz-plugin](https://ari.lt/gh/cmdutils-baz-plugin)\n - Multiplexer: [TMUX](https://github.com/tmux/tmux)\n - Trash: [trash-cli](https://pypi.org/project/trash-cli/)\n - Finder: [Fzf](https://github.com/junegunn/fzf)\n - File indexing: [Mlocate]()\n - SUID tool: [Kos](https://ari.lt/gh/kos)\n - \"Cat\" program: [Bat](https://github.com/sharkdp/bat)\n - \"Ls\" program: [Lsd](https://github.com/Peltoche/lsd)\n - \"Df\" command: [Duf](https://github.com/muesli/duf)\n - Fetch tool: [Yafetch (my fork)](https://ari.lt/gh/yafetch) ([Original](https://github.com/yrwq/yafetch))\n - Manual pages: [manDB](http://man-db.nongnu.org/)\n - Calender: [Calcurse](https://calcurse.org/)\n - Telegram client: [Arigram](https://ari.lt/gh/arigram)\n - TUI web browser: [Lynx](https://lynx.invisible-island.net/)\n- Other GUI applications\n - Web browser: [Firefox](https://wikiless.tiekoetter.com/wiki/Firefox?lang=en)\n - Password manager: [KeePassXC](https://keepassxc.org/)\n- Media\n - PDF viewer: [Zathura](https://github.com/pwmt/zathura)\n - Media player: [MPV](https://mpv.io/)\n - Image viewer (though I mainly use it for wallpaper): [Feh](https://github.com/derf/feh)\n - [YouTube](https://youtube.com/) downloader: [yt-dlp](https://github.com/yt-dlp/yt-dlp)\n- Development tools\n - Editor: [ViM](https://www.vim.org/)\n - Plugin manager: [ViMPlug](https://github.com/junegunn/vim-plug)\n - [turbio/bracey.vim](https://github.com/turbio/bracey.vim)\n - [mattn/emmet-vim](https://github.com/mattn/emmet-vim)\n - [neoclide/coc.nvim](https://github.com/neoclide/coc.nvim)\n - [coc-json](https://github.com/neoclide/coc-json)\n - [coc-snippets](https://github.com/neoclide/coc-snippets)\n - [coc-lua](https://github.com/josa42/coc-lua)\n - [coc-sh](https://github.com/josa42/coc-sh)\n - [coc-css](https://github.com/neoclide/coc-css)\n - [coc-html](https://github.com/neoclide/coc-html)\n - [coc-tsserver](https://github.com/neoclide/coc-tsserver)\n - [coc-docker](https://github.com/josa42/coc-docker)\n - [coc-vimlsp](https://github.com/iamcco/coc-vimlsp)\n - [w0rp/ale](https://github.com/w0rp/ale)\n - [coffee-theme/lightline.vim](https://github.com/coffee-theme/lightline.vim)\n - [vim-latex/vim-latex](https://github.com/vim-latex/vim-latex)\n - [google/vim-maktaba](https://github.com/google/vim-maktaba)\n - [TruncatedDinosour/vim-codefmt](https://github.com/TruncatedDinosour/vim-codefmt)\n - [Yggdroot/indentLine](https://github.com/Yggdroot/indentLine)\n - [drmingdrmer/vim-tabbar](https://github.com/drmingdrmer/vim-tabbar)\n - [lilydjwg/colorizer](https://github.com/lilydjwg/colorizer)\n - [christoomey/vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator)\n - [tpope/vim-surround](https://github.com/tpope/vim-surround)\n - [editorconfig/editorconfig-vim](https://github.com/editorconfig/editorconfig-vim)\n - [godlygeek/tabular](https://github.com/godlygeek/tabular)\n - [haya14busa/is.vim](https://github.com/haya14busa/is.vim)\n - [machakann/vim-highlightedyank](https://github.com/machakann/vim-highlightedyank)\n - [luochen1990/rainbow](https://github.com/luochen1990/rainbow)\n - [coffee-theme/coffee.vim](https://github.com/coffee-theme/coffee.vim)\n - [vim-scripts/vimbuddy.vim](https://github.com/vim-scripts/vimbuddy.vim)\n - [euclio/vim-markdown-composer](https://github.com/euclio/vim-markdown-composer)\n - Languages (main ones)\n - [LaTeX](https://www.latex-project.org/)\n - [Clang for C and C++](https://clang.llvm.org/)\n - [Python](https://python.org/)\n - [FASM assembler](https://flatassembler.net/)\n - Formatters (main ones)\n - Python: [Black](https://github.com/psf/black) and [ISort](https://github.com/PyCQA/isort)\n - Shell: [SHFmt](https://github.com/mvdan/sh)\n - C and C++: [Clang-format](https://clang.llvm.org/docs/ClangFormat.html)\n - Markdown, JavaScript, (S)CSS and html: [Clang-format](https://clang.llvm.org/docs/ClangFormat.html), [JS-beautify](https://github.com/beautify-web/js-beautify), [Prettier](https://github.com/prettier/prettier)\n - VCS: [git](https://git-scm.com/) + [OpenSSH](https://www.openssh.com/) + [GPG](https://gnupg.org/)\n- Sound system: [ALSA](https://www.alsa-project.org/wiki/Main_Page)\n- Fonts\n - [Fira mono](https://github.com/mozilla/Fira)\n - [Freefont](https://www.gnu.org/software/freefont/)\n - [Nerd fonts](https://www.nerdfonts.com/) (hack font specifically)\n - [Urw fonts](https://wikiless.tiekoetter.com/wiki/URW_Type_Foundry?lang=en)\n- Misc\n - Process viewer: [htop-vim](https://github.com/KoffeinFlummi/htop-vim)\n - Password generator: [pwdtools](https://ari.lt/gh/pwdtools)\n - File validation, hashing and information: [Filetools](https://ari.lt/gh/filetools)\n - Charset manager: [Char](https://ari.lt/gh/char)\n - License manager: [Lmgr](https://ari.lt/gh/lmgr)\n - Project manager: [Mkproj](https://ari.lt/gh/mkproj)\n\nI think that's about it when it comes to important stuff,\nLMK if you want anything else added :)\n\nDotfiles: ", "keywords": [ "dotfiles", "linux", @@ -2991,7 +2976,7 @@ "shutdown-of-my-tcl--tiny-core-linux--mirror": { "title": "shutdown of my tcl (tiny core linux) mirror", "description": "no more tiny core linux mirror :(", - "content": "Hello,\n\nI have decided to terminate my TCL\n([Tiny Core Linux (wiki)](https://wikiless.tiekoetter.com/wiki/Tiny_Core_Linux?lang=en)) mirror, I am\nvery sorry\n\nMy mirror used to be [tcl.ari-web.xyz](https://tcl.ari-web.xyz/) just in case\nI decide to bring it back :)\n\nThere are little reasons, but:\n\n- Barely anyone is using it\n- People who download anything from it don't download it all (based on bandwidth usage)\n- It mainly a waste of bandwidth\n- It's quite useless\n\nI still have the sources, you can contact me @ [ari.web.xyz@gmail.com](mailto:ari.web.xyz@gmail.com)\nor make an issue on [blog sources](/git) if you want me to bring it\nback, I can 100% do it if anyone wants it\n\nAnd if anyone just wants the ISO (or ISOs, I have all editions)\ncontact me on my [email](mailto:ari.web.xyz@gmail.com) and I will send\nit to you in one way or another\n\n### Resources if you want to help\n\n- Host your own mirror (I am more than happy to give you the sources)\n- Check out [TCL FAQ](http://www.tinycorelinux.net/faq.html)\n- Visit [TCL official site](http://tinycorelinux.net/)\n- Check out the [DW page of TCL](https://distrowatch.com/table.php?distribution=tinycore)\n- Check out [TCL forum](http://forum.tinycorelinux.net)\n- Seed the torrents of TCL: [Linux tracker](https://linuxtracker.org/index.php?page=torrent-details&id=f0dade5d4125e095d4d1c247d9cdf33c8af67e27)\n- Read the [TCL book](http://www.tinycorelinux.net/book.html)\n- Generally look up `tiny core linux` and try to help :)\n\nI love you, open source community, your opinion is important\nto me\n\nBest wishes,\n\n\\- Ari :)\n", + "content": "Hello,\n\nI have decided to terminate my TCL\n([Tiny Core Linux (wiki)](https://wikiless.tiekoetter.com/wiki/Tiny_Core_Linux?lang=en)) mirror, I am\nvery sorry\n\nMy mirror used to be [tcl.ari-web.xyz](https://tcl.ari.lt/) just in case\nI decide to bring it back :)\n\nThere are little reasons, but:\n\n- Barely anyone is using it\n- People who download anything from it don't download it all (based on bandwidth usage)\n- It mainly a waste of bandwidth\n- It's quite useless\n\nI still have the sources, you can contact me @ [ari.web.xyz@gmail.com](mailto:ari.web.xyz@gmail.com)\nor make an issue on [blog sources](/git) if you want me to bring it\nback, I can 100% do it if anyone wants it\n\nAnd if anyone just wants the ISO (or ISOs, I have all editions)\ncontact me on my [email](mailto:ari.web.xyz@gmail.com) and I will send\nit to you in one way or another\n\n### Resources if you want to help\n\n- Host your own mirror (I am more than happy to give you the sources)\n- Check out [TCL FAQ](http://www.tinycorelinux.net/faq.html)\n- Visit [TCL official site](http://tinycorelinux.net/)\n- Check out the [DW page of TCL](https://distrowatch.com/table.php?distribution=tinycore)\n- Check out [TCL forum](http://forum.tinycorelinux.net)\n- Seed the torrents of TCL: [Linux tracker](https://linuxtracker.org/index.php?page=torrent-details&id=f0dade5d4125e095d4d1c247d9cdf33c8af67e27)\n- Read the [TCL book](http://www.tinycorelinux.net/book.html)\n- Generally look up `tiny core linux` and try to help :)\n\nI love you, open source community, your opinion is important\nto me\n\nBest wishes,\n\n\\- Ari :)", "keywords": [ "tinycore", "tcl", @@ -3042,7 +3027,7 @@ "new-blog-management-system-": { "title": "new blog management system!", "description": "hiiiiiiiiiiiiiiii", - "content": "Hello world :)\n\nI have completely redone how blogs are managed, made\nand stored so now (old) is moved to \nwhile this new system is on the original, subdomain, the\nlegacy subdomain will still be here and will still be backwards compatible with\nthe new one, though now it will be an HTTP redirect\n\nIf anyone is using my blog for anything but visiting, please consider\nthe redirect :)\n\n", + "content": "Hello world :)\n\nI have completely redone how blogs are managed, made\nand stored so now (old) is moved to \nwhile this new system is on the original, subdomain, the\nlegacy subdomain will still be here and will still be backwards compatible with\nthe new one, though now it will be an HTTP redirect\n\nIf anyone is using my blog for anything but visiting, please consider\nthe redirect :)", "keywords": [ "management", "linux", diff --git a/media/467da37b61b8edee2e7ba9f5cd871d5e766d589e3d4a4ba0d077e3d656ccbab1.png b/media/467da37b61b8edee2e7ba9f5cd871d5e766d589e3d4a4ba0d077e3d656ccbab1.png new file mode 100644 index 0000000..21e6046 Binary files /dev/null and b/media/467da37b61b8edee2e7ba9f5cd871d5e766d589e3d4a4ba0d077e3d656ccbab1.png differ diff --git a/media/974aaeaf72e8958f6d612e3d39d59dc9389b453f01e7d31a5e528de3e490cc48.jpeg b/media/974aaeaf72e8958f6d612e3d39d59dc9389b453f01e7d31a5e528de3e490cc48.jpeg new file mode 100644 index 0000000..8635a17 Binary files /dev/null and b/media/974aaeaf72e8958f6d612e3d39d59dc9389b453f01e7d31a5e528de3e490cc48.jpeg differ diff --git a/media/9b9a2aff1530592cf4eae3e4bffa4e09a2f424343f8f9b85922d81488c97e110.jpeg b/media/9b9a2aff1530592cf4eae3e4bffa4e09a2f424343f8f9b85922d81488c97e110.jpeg new file mode 100644 index 0000000..139203c Binary files /dev/null and b/media/9b9a2aff1530592cf4eae3e4bffa4e09a2f424343f8f9b85922d81488c97e110.jpeg differ diff --git a/media/b9abe926ef51ca448d61381d2d8ffd1822363cbe289ac458c4b1d2fdae01b469.png b/media/b9abe926ef51ca448d61381d2d8ffd1822363cbe289ac458c4b1d2fdae01b469.png new file mode 100644 index 0000000..fc25cf9 Binary files /dev/null and b/media/b9abe926ef51ca448d61381d2d8ffd1822363cbe289ac458c4b1d2fdae01b469.png differ diff --git a/media/d4d01a7052822c08567dc62578a5574b26e15792c713da83a1a96830b378d568.jpeg b/media/d4d01a7052822c08567dc62578a5574b26e15792c713da83a1a96830b378d568.jpeg new file mode 100644 index 0000000..d6f6987 Binary files /dev/null and b/media/d4d01a7052822c08567dc62578a5574b26e15792c713da83a1a96830b378d568.jpeg differ diff --git a/media/f304b3ee8dfdc51d91fe2819b64a45a8d49ad918329b8fb0aabac1166385d465.jpeg b/media/f304b3ee8dfdc51d91fe2819b64a45a8d49ad918329b8fb0aabac1166385d465.jpeg new file mode 100644 index 0000000..bbf2951 Binary files /dev/null and b/media/f304b3ee8dfdc51d91fe2819b64a45a8d49ad918329b8fb0aabac1166385d465.jpeg differ diff --git a/media/media.json b/media/media.json index d3656c5..0782cad 100644 --- a/media/media.json +++ b/media/media.json @@ -128,5 +128,83 @@ "ext": "png", "mime": "image/png", "uploaded": 1734475065.128174 + }, + "b9abe926ef51ca448d61381d2d8ffd1822363cbe289ac458c4b1d2fdae01b469": { + "type": "image", + "width": 720, + "height": 1600, + "alt": "A mobile screenshot of the ari.lt website showing that 1 million people have visited it", + "purpose": "To show 1 million visitors on ari-web", + "title": "Ari-web 1 millionth visitor", + "license": "CC0-1.0", + "credit": "LDA", + "ext": "png", + "mime": "image/png", + "uploaded": 1734527486.868667 + }, + "d4d01a7052822c08567dc62578a5574b26e15792c713da83a1a96830b378d568": { + "type": "image", + "width": 3072, + "height": 1920, + "alt": "A screenshot of ari-web. Text in the centre reads \"happy 3rd birthday, ari-web !\" with a confetti background", + "purpose": "To show the 3rd birthday screen of ari-web", + "title": "3rd birthday screen of ari-web", + "license": "CC0-1.0", + "credit": "Ari Archer", + "ext": "jpeg", + "mime": "image/jpeg", + "uploaded": 1734527643.644962 + }, + "f304b3ee8dfdc51d91fe2819b64a45a8d49ad918329b8fb0aabac1166385d465": { + "type": "image", + "width": 3072, + "height": 1728, + "alt": "A screenshot of the ari.lt website showing the birthday page of ari-web for its 2nd anniversary. The text in the centre reads \"Happy 2nd birthday, ari-web!\" while confetti in the background falls", + "purpose": "To show the 2nd birthday screen of ari-web", + "title": "Ari-web 2nd birthday", + "license": "CC0-1.0", + "credit": "Ari Archer", + "ext": "jpeg", + "mime": "image/jpeg", + "uploaded": 1734527808.637102 + }, + "467da37b61b8edee2e7ba9f5cd871d5e766d589e3d4a4ba0d077e3d656ccbab1": { + "type": "image", + "width": 570, + "height": 490, + "alt": "An enneagram result chart", + "purpose": "To show my enneagram results :)", + "title": "Ari's enneagram type chart", + "license": "CC0-1.0", + "credit": "Ari Archer, truity.com", + "ext": "png", + "mime": "image/png", + "uploaded": 1734528001.909138 + }, + "9b9a2aff1530592cf4eae3e4bffa4e09a2f424343f8f9b85922d81488c97e110": { + "type": "image", + "width": 690, + "height": 389, + "alt": "A screenshot of a netlify network statistics panel showing that 5GB of bandwidth was used on a small static page", + "purpose": "To show that Ari-web has gotten a lot of traffic", + "title": "Ari-web blowing up with a lot of bandwidth used", + "license": "CC0-1.0", + "credit": "Ari Archer, Netlify", + "ext": "jpeg", + "mime": "image/jpeg", + "uploaded": 1734528120.500828 + }, + "974aaeaf72e8958f6d612e3d39d59dc9389b453f01e7d31a5e528de3e490cc48": { + "type": "image", + "width": 640, + "height": 628, + "alt": "The june pikachu meme which reads \"it's \"june\" which mean it's ILLEGAL TO BE STRAIGHT anything caught NOT being a GAY will be immediately reported to the FBI. asexuals are OK but y'all are on thin fucking ice.\"", + "purpose": "For the funi", + "title": "Illegal to be straight", + "license": "Unknown", + "credit": "Author unknown", + "ext": "jpeg", + "mime": "image/jpeg", + "uploaded": 1734528317.965137 } } \ No newline at end of file diff --git a/requirements-extra.txt b/requirements-extra.txt index f4141ff..a8f4d00 100644 --- a/requirements-extra.txt +++ b/requirements-extra.txt @@ -2,3 +2,4 @@ pyfzf requests pillow python-magic +fuzzysearch diff --git a/scripts/blog.py b/scripts/blog.py index ffbbd9b..ede9886 100755 --- a/scripts/blog.py +++ b/scripts/blog.py @@ -1762,6 +1762,19 @@ def blog(config: dict[str, typing.Any]) -> int: return OK +@cmds.new +def search(config: dict[str, typing.Any]) -> int: + """search for a term""" + + q: str = iinput("query") + + for p in config["posts"].items(): + if q.lower() in str(p).lower(): + llog(f"In post: {p[0]}") + + return OK + + @cmds.new def media(config: dict[str, typing.Any]) -> int: """add media"""