[ prog / sol / mona ]

prog


the perfect homepage

1 2023-02-07 18:19

what in your opinion would be the perfect homepage?

2 2023-02-07 21:26

One that doesn't require JavaScript for basic functions.
Take inspiration from these:

https://perfectmotherfuckingwebsite.com
https://1mb.club

3 2023-02-08 04:01

All your homepage content should be encoded in the URL like this:

https://itty.bitty.site/#How_it_Works/XQAAAAK4CgAAAAAAAAAeHMqHyTY4PyKmqfkwr6ooCXSIMxPQ7ojYR153HqZD3W+keVdvwyoyd+luwncAksxo8PWJs+831jtAVty8rDpGXmyebtxMTP3PSa4g8/593sWue8MDcpOgi1bQyEtfa0JNQZ6T1I/xyNULg1rpwWgE2Y9BnqDq8fDN1N+nd58bizHxZrkeBhdg8inSQ/xKDX7JxpEnuwOAh4FOfn3+EHSxzhJsdQjZfh3lk4tTCDexgFND30Ea3NmmJGK84pdMtEVlcmKC5lrnUNmgoJa3QFsHJkr5595tk03idElTDVhmcQI3jSvPrkTVFTnSLeARVZXV/EUiF0y7+cR3bVkLoTkamZWDMiCTY2Xhv0LdNqWlb/xxyk6takRLrNnS8DkifXEbevTbJOUamuK7uy55kL61btF+/lYNHLWGbh1ckCYglReWWMlM0k4uuqM24okcS74tHtOW3Y5HZYBmPvRR+ItSrZPvbj3kbztOrWapUp7nAzgfIjYoBV/4xOXpFbbaHRft5GICE5Mr1PQhmW/nB63nTpnR+7UdHag8WIMa7nf+NvTPKC5MmQnKzhaMuqEnwGgcM5vkWbekimBclkGJwTGeyhxL7N6hivY+KS3H7vcOSFHXGr7K3PBIQZbywqQiimQ6B6zu4RvH7ZZ3ZN++ii00HKM0FPMcNHuOnL99vAxEl6TEFnx4J4+fwzJwNbuut30TFMBgcrE4iKAGncFIHmvOstFWxE+VlvTLC+uy6XArTO8BdfmbByGiyFv8Al7HqLAzGShdGWNzJ6cPpRwMAmWl5GNRA4qwjQAlfF1dtTwfIXSWOL7AyRwxPs27uY2cvVHCdmVVTNDYiTzHeKX6D9e2ApDRFD6pgcA9VMVP6UeOdVdmwRJ+iLTwQuCdLbVWzQ5T2i/chlihD+RawylXJQ8bKvxW9egXGcrgR5dyKaZCr8nBrArAgtRLR7PdqBQQbr5VodBvPc2FP3fZ6UuQVI1Kg4KcY44GIU5vnlM029TU+ibO2iSX3FhusTFhyOxl4TjjkuXBqA1V7Ha/Op2m8QZaP68p7AAZPOcTHAwP5PxENqIf8qS2aaG2Fiwp5rNED3LhPMjtN54klBYylr5hSAr0TD8J+XwFds8Gq9LToLE8Cq7XNJnE9RqNudIozaMWkfc6PRFjp/aH87x97nPDelKKHGyUEnGJyobw45BOhJMKzZST0VA5v+uQQo0djDXc0UXwzNRIWeBLuUJQpaXZY2gZMuLiSERgyDHg2MBI6trWsyb3ZWbFS4rm8Gq2dxfih3Kj6MdNapUo/jltQ31nx2LepJCQe9DNNF6JEMecls6dHTAM2RfHxEODSSKkF17FfjRLRAfxCK927UvizAxxggP5S/HrX6mGc5xonBy3StLd16thiAG860IdvFyBKfE6+CIhe2jzIwIofNiBILYlKA61vKkjlfZjqsUGDLi426U/Y8bdpxfg7FX1gqNEHeVM17dlBTO7pNOnKyeM2xmLoE7lr92/VIrxJ2OqNfcHu9XjrD6l71vU083VwwAq8Vencm9xLAlDyy3/6BB0kRBiJbjayYrLUbQyMGTFfEvOPmc/zJjfdnqHmg5O/0kuzf2+w5CHD426iPngjmiTo5Snlf+qW8emK/ltnQQIv2ufykH+Px3XZM+zsOclAyHI5MbCKBKeT6j5geCiz3uqci1w5ZlpRjtJWUT6zCj8Fx1eg4F4ov51gaODKV+QQWeFJSyuVTm3Nu2i7AbhKikNzb3RBeQinEh9KrhHc+o4JGezOU55h1UZtonB0+J5dfBRqHnc+6HaXfTmcLrMZjWErq15cBmC0Kx6BNyqP3uGhMUSF+OuIzffEX9fGUNDpUtCjKdbml8uF43e4fN8o10TxYkbggTcyYKI+xWHMyKM2tjOideyDwt33minfEy/JgSLsihBnBua9sfXCg32/+i2okk=

4 2023-02-08 04:05

that's horrifying

5 2023-02-08 17:13

I guess you won't have broken links, but then if everyone did that the web can't have cycles.

6 2023-02-09 22:40

Just binary programs that run on your machine not interpreted text

7 2023-02-11 16:36

White background. Black text. 50em width. Centered.

8 2023-02-12 16:48

>>7
I prefer darkblue background and white text.

9 2023-02-12 16:49

>>7
I prefer 80em, and have been leaning towards left-aligned instead of centred content.

10 2023-02-13 02:00

* bloat so the page takes years to load
* loads of JS that's required to render anything
* loads of JS that mines crypto on the users machines
* loads of JS that sends everybody's data to Google, the FBI, and the CCP
* ton of ads
* loads of tracking
* more tracking
* totally meaningless but SEO content that shows at the top of Google
* totally unreadable content
* JS
* more JS
* more more JS
* unoptimized images
* be stupidly verbose and fluff your content for length
* be stupidly repetitive and fluff your content for length
* ai generate everything
* don't support RSS feeds
* actually, don't support any open standards whatsoever
* have a popup asking for user's email, name, and all their personal info every 0.00001 seconds
* make the site as printer-unfriendly as possible
* make the site totally break if the reader has any privacy tech running (libre browser, TOR, anti-tracking etc.)
* don't add transcripts to videos
* load additional JS

11 2023-02-13 15:56

>>10
Villain Arc

12 2023-02-13 21:23

>>8 Dark mode is not illegal either. I also think as long as the page is less than 1MB you are doing fine.

13 2023-02-16 21:30

>>10
Forgot a couple:
*Cloudflare that requires js and takes a while to "check" before you can access
*A pop up message that appears while you're reading and asks you to accept cookies, taking up the whole screen
*Som weird CSS/js pair that shifts things around as they load so they move from under your mouse as you are about to click on them, leading you elsewhere
*ads
*popup ads
*ads that try to get you to download a trojan

14 2023-03-03 13:13

Dark mode is quite cheap in css:

1. Dark text on light background, textboard.org style
2. Put this in:
@media screen and (prefers-color-scheme: dark) {
body { background-color: black; color: white; }
}

15 2023-03-14 17:39

>>3 based retard

16 2023-03-14 17:42

>>10 Those are my favorite websites

17 2023-06-06 23:42

>>14
everything after css 2.1 is heresy

18 2023-06-10 17:25

>>17
css was a mistake
"bgcolor" is better than "background-color"

19 2023-06-11 09:37

>>18
CSS has background property which can be used like background: #fff;
I'm okay with the kinda long property names but I wish there was a better system for responsive design than flexbox and grid.
Don't care anyways, never had to write css, I copy stuff from GitHub whenever I need it.

20 2023-06-11 23:36

>>19
the problem is not that they are long
the problem is that html attributes already exist so css is bloat

21 2023-06-12 01:33

>>20
HTML is supposed to markup semantics, it is not supposed to describe presentation.

22 2023-06-12 16:50

This anti-"bloat" group is the most retarded group online.
Does no real programming, rewrites popular software while removing random features without considering why it exists in the first place.
Would like to specify this does not include the entirety of Vim and Emacs users but there is an overlap.

23 2023-06-12 20:42

>>22
What do you know, fatso. I bet you're bloated irl just like your IDE.

24 2023-06-22 09:52

>>21
no, abstractly it is assumed
but for the sake of bloat, you resort to css

25 2023-07-06 07:53

Aside the descending quality of this board, it depends on functionality and your own taste.

Why someone would land on your homepage?
You may present articles you wrote (e.g. https://dataswamp.org/~solene/ )
You may present research notes you found or wrote (e.g. https://okmij.org/ftp/ -- notice the GNU-info like page sorting)
You may simply have a contact address or just "Page intentionally left blank." or other jokes.

Depending on your taste then you can arrange content on you page.
I personally prefer a simple and clean design, you don't even need much css.
Then you may add some javascript so people can select and share highlighted text.
This is the only javascript I have. It allows me to select some text, automatically append a hash to the URL so that people can see what I highlight when I share the link.

function findPos(obj) {
var curtop = 0;
while (obj && obj.offsetParent) {
curtop += obj.offsetTop; // todo: + webkit-transform
obj = obj.offsetParent;
}
return curtop;
}
var artificial = null;
var prevhash = "";
function scrollToHash() {
if (document.location.hash.replace(/^#/, "")==prevhash.replace(/^#/, ""))
return;
prevhash = document.location.hash;
if (document.location.hash.match(/#[0-9.]+%/)) {
var p = parseFloat(document.location.hash.substring(1));
if (0 < p && p < 100 /*&& p%5 != 0*/) {
// var content = document.getElementById("CONTENT")
var content = document.body;
var y = findPos(content) + (content.offsetHeight)*p/100;
window.scrollTo(0, y-16);
}
}

var adr = document.location.hash.match(/selection-(\d+).(\d+)-(\d+).(\d+)/);
if (adr) {
var pos=0,begin=null,end=null;
function recur(e) {
if (e.nodeType==1) pos = (pos&~1)+2;
if (e.nodeType==3) pos = pos|1;
if (pos==adr[1]) begin=[e, adr[2]];
if (pos==adr[3]) end =[e, adr[4]];
for (var i=0; i<e.childNodes.length; i++)
recur(e.childNodes[i]);
if (e.childNodes.length>0 && e.lastChild.nodeType==3)
pos = (pos&~1)+2;
}
// remove old "artificial" span if any
if (artificial) {
artificial.previousSibling.data += artificial.childNodes[0].data;
artificial.parentNode.removeChild(artificial);
}
// var content = document.getElementById("CONTENT");
// recur(content.childNodes[content.childNodes[0].nodeType==3 ? 1 : 0]);
var content = document.body;
recur(content);
if (begin!=null && end!=null) {
// scroll to selection
if (begin[0].nodeType==3) {
var text = document.createTextNode(begin[0].data.substr(0, begin[1]));
artificial = document.createElement("SPAN");
artificial.appendChild(document.createTextNode(begin[0].data.substr(begin[1])));

begin[0].parentNode.insertBefore(text, begin[0]);
begin[0].parentNode.replaceChild(artificial, begin[0]);

if (end[0]===begin[0])
end = [artificial.childNodes[0], end[1]-begin[1]];
begin = [artificial.childNodes[0], 0];
/* window.scrollTo(0, findPos(artificial)-8); */ artificial.scrollIntoView(true);
} else if (begin[0].nodeType==1) {
/* window.scrollTo(0, findPos(begin[0])-8); */ begin[0].scrollIntoView(true);
}

if (window.getSelection) {
var sel = window.getSelection();
sel.removeAllRanges();
var range = document.createRange();
range.setStart(begin[0], begin[1]);
range.setEnd ( end[0], end[1]);
sel.addRange(range);
} else if (document.selection) { // IE
}
}
}
}
window.onhashchange = scrollToHash;
var initScrollToHashDone = false;
function initScrollToHash() {
if (!initScrollToHashDone) {
initScrollToHashDone = true;
scrollToHash();
}
}
window.onload = initScrollToHash;
setTimeout(initScrollToHash, 500); /* onload can be delayed by counter code */

document.onselectionchange = /* only webkit has working document.onselectionchange */
document.onmousedown = document.onmouseup = function(e) {
var newhash = "";
if (window.getSelection) {
var sel=window.getSelection();
if (!sel.isCollapsed) {
var pos=0,begin=[0,0],end=[0,0];
var range=sel.getRangeAt(0);
function recur(e) {
if (e===artificial) {
if (range.startContainer===e.childNodes[0]) begin=[pos, e.previousSibling.data.length+range.startOffset];
if (range.endContainer ===e.childNodes[0]) end =[pos, e.previousSibling.data.length+range.endOffset ];
} else {
if (e.nodeType==1) pos = (pos&~1)+2;
if (e.nodeType==3) pos = pos|1;
if (range.startContainer===e) begin=[pos, range.startOffset];
if (range.endContainer ===e) end =[pos, range.endOffset ];
for (var i=0; i<e.childNodes.length; i++)
recur(e.childNodes[i]);
if (e.childNodes.length>0 && e.lastChild.nodeType==3)
pos = (pos&~1)+2;
}
}

// var content = document.getElementById("CONTENT");
// recur(content.childNodes[content.childNodes[0].nodeType==3 ? 1 : 0]);
var content = document.body;
recur(content);
if (begin[0]>0 && end[0]>0) {
newhash = "selection-"+begin[0]+"."+begin[1]+"-"+end[0]+"."+end[1];
}
}
} else if (document.selection) { // IE
}

try {
var oldhash = location.hash.replace(/^#/, "");
if (oldhash != newhash) {
prevhash = newhash; /* avoid firing window.onhashchange and scrolling */
if (history.replaceState)
history.replaceState('', document.title, newhash=="" ? window.location.pathname + window.location.search : '#'+newhash);
else
location.hash = newhash;
}
} catch(e) {
}
};

26 2023-07-06 09:14

>>25
https://paste.textboard.org/
Nobody wants to see that shit.

27 2023-07-12 11:23 *

>>26
weak.

28


VIP:

do not edit these