Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

agnos.is Forums

  1. Home
  2. Technology
  3. No JS, No CSS, No HTML: online "clubs" celebrate plainer websites

No JS, No CSS, No HTML: online "clubs" celebrate plainer websites

Scheduled Pinned Locked Moved Technology
technology
205 Posts 120 Posters 1 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D [email protected]

    You've convinced me to learn and implement OTA on my 8266. Thanks!

    R This user is from outside of this forum
    R This user is from outside of this forum
    [email protected]
    wrote last edited by
    #149

    Hahahah. Awesome. Have fun! You just need a simple webserver. The builtin one will do and then you use the ota functions of the ESP IDF.

    1 Reply Last reply
    0
    • D [email protected]

      You've convinced me to learn and implement OTA on my 8266. Thanks!

      R This user is from outside of this forum
      R This user is from outside of this forum
      [email protected]
      wrote last edited by [email protected]
      #150

      I don't think the promise chain is really needed here.

      I used this script:

      import Axios from 'axios'
      import OldFS from 'fs'
      import { PromiseChain } from '@feather-ink/ts-utils'
      
      const fs = OldFS.promises
      
      const image = process.argv[2]
      const destination = `http://${process.argv[3]}/vfs/ota`
      const now = process.argv[4] === 'now'
      const once = process.argv[4] === 'once'
      
      async function triggerUpdate(): Promise<void> {
        console.log('Uploading new binary')
        const file = await fs.readFile(image)
      
        await Axios({
          method: 'POST',
          url: destination,
          headers: {
            'Content-Type': 'application/octet-stream',
            'Content-Length': file.byteLength
          },
          data: file
        })
        console.log('Finished uploading')
      }
      
      (async () => {
        const updateChain = new PromiseChain()
        console.log(`Watching file '${image}' for changes\nWill upload to '${destination}'!`)
        if (once) {
          await triggerUpdate()
          return
        }
        if (now)
          await updateChain.enqueue(triggerUpdate)
        OldFS.watch(image, async (eventType) => {
          if (eventType !== 'change')
            return
          let succ = false
          do {
            try {
              console.log('Change detected')
              await updateChain.enqueue(triggerUpdate)
              succ = true
            } catch (e) {
              console.error(e)
              console.log('Retrying upload')
            }
          } while (!succ)
          console.log('Upload finished')
        })
      })()
      

      Relevent code on the esp:

      You can ignore my cpp stuff and just put this in the handler of the stock webserver.

      auto ota = vfs->addHandler(makeDirectory("ota"));
              {
                ota->addHandler(makeDirect([](auto &con) {
                  if (con.req->method != HTTP_POST)
                    return HandlerReturn::UNHANDLED;
      
                  // https://github.com/espressif/esp-idf/tree/master/examples/system/ota/native_ota_example/main
                  // https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/ota.html
                  auto updatePartition = esp_ota_get_next_update_partition(nullptr);
                  if (updatePartition == nullptr)
                    return sendError(con,500, "No free ota partition found!");
                  esp_ota_handle_t otaHandle;
                  auto err = esp_ota_begin(updatePartition, con.req->content_len, &otaHandle);
                  if (err != ESP_OK)
                    return sendError(con, 500, std::string{"Can't start ota update: "} + esp_err_to_name(err), true);
      
                  int receivedBytes = 0;
                  do {
                    auto end = httpd_req_recv(con.req, buf.data(), buf.size());
                    // ESP_LOGE(TAG, "Received %d", receivedBytes);
                    // hexDump("RECV:", buf.data(), end);
                    if (end <= 0) {
                      esp_ota_abort(otaHandle);
                      return sendError(con, 500, "Error receiving", true);
                    }
                    err = esp_ota_write(otaHandle, buf.data(), end);
                    if (err != ESP_OK) {
                      esp_ota_abort(otaHandle);
                      return sendError(con, 500, std::string{"Error writing: "} + esp_err_to_name(err), true);
                    }
                    receivedBytes += end;
                  } while (receivedBytes < con.req->content_len);
      
                  err = esp_ota_end(otaHandle);
                  if (err != ESP_OK)
                    return sendError(con, 500, std::string{"Failed to end: "} + esp_err_to_name(err), true);
      
                  err = esp_ota_set_boot_partition(updatePartition);
                  if (err != ESP_OK)
                    return sendError(con, 500, std::string{"esp_ota_set_boot_partition failed: "} + esp_err_to_name(err), true);
                  auto ret = sendOK(con);
                  FactoryResetServiceCon().reboot(1000 / portTICK_PERIOD_MS);
                  return ret;
                }));
              }
      

      I also used a custom partition table for 2 partitions so that when my program crashes it can just go back to boot the previous version.

      Here it is for reference:

      partitions.csv

      # Name,   Type, SubType, Offset,  Size, Flags
      # Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
      nvs,      data, nvs,     0x011000, 0x006000,
      otadata,  data, ota,     0x017000, 0x002000,
      phy_init, data, phy,     0x019000, 0x001000,
      ota_0,    app,  ota_0,   0x020000, 0x1F0000,
      ota_1,    app,  ota_1,   0x210000, 0x1F0000,
      

      Note: This partition table is for a special model of the ESP32 though.

      Also another disclaimer: This code does not represent my current coding abilities and may be outdated - it worked well though.

      1 Reply Last reply
      0
      • S [email protected]

        What devilry is this? Written word?
        Real cultures use oral history to store knowledge!

        J This user is from outside of this forum
        J This user is from outside of this forum
        [email protected]
        wrote last edited by
        #151

        Passing information between two simultaneously existing entities? Get outta here! All cultures use the Jung collective unconscious to store knowledge!

        impshum@lemmy.worldI 1 Reply Last reply
        5
        • P [email protected]

          The revived No JS Club celebrates websites that don't use Javascript, the powerful but sometimes overused code that's been bloating the web and crashing tabs since 1995. The No CSS Club goes a step further and forbids even a scrap of styling beyond the browser defaults. And there is even the No HTML Club, where you're not even allowed to use HTML. Plain text websites!

          The modern web is the pure incarnation of evil. When Satan has a 1v1 with his manager, he confers with the modern web. If Satan is Sauron, then the modern web is Melkor [1]. Every horror that you can imagine is because of the modern web. Modern web is not an existential risk (X-risk), but is an astronomic suffering risk (S-risk) [2]. It is the duty of each and every man, woman, and child to revolt against it. If you're not working on returning civilization to ooga-booga, you're a bad person.

          A compromise with the clubs is called for. A hypertext brutalism that uses the raw materials of the web to functional, honest ends while allowing web technologies to support clarity, legibility and accessibility. Compare this notion to the web brutalism of recent times, which started off in similar vein but soon became a self-subverting aesthetic: sites using 2.4MB frameworks to add text-shadow: 40px 40px 0px hotpink to 400kb Helvetica webfonts that were already on your computer.

          I also like the idea of implementing "hypotext" as an inversion of hypertext. This would somehow avoid the failure modes of extending the structure of text by failing in other ways that are more fun. But I'm in two minds about whether that would be just a toy (e.g. references banished to metadata, i.e. footnotes are the hypertext) or something more conceptual that uses references to collapse the structure of text rather than extend it (e.g. links are includes and going near them spaghettifies your brain). The term is already in use in a structuralist sense, which is to say there are 2 million words of French I have to read first if I want to get away with any of this.

          Republished Under Creative Commons Terms.
          Boing Boing Original Article.

          L This user is from outside of this forum
          L This user is from outside of this forum
          [email protected]
          wrote last edited by
          #152

          I'll say one thing for the No CSS philosophy - at least it eliminates light-colored text on a light-colored background using the thinnest possible font, which is probably the stupidest stylistic trend since the web began.

          X gnulinuxdude@lemmy.mlG 2 Replies Last reply
          12
          • b_tr3e@feddit.orgB [email protected]

            Oh, come on. You really want some at least readable output. Things like image borders, consistently positioned images/diagrams, line breaks and page borders. Some whitespace and indentations, too. You just can't read a couple of pages full of unformatted raw text without massive eye fatigue. I'm all for dumping JS and excessive frameworks, I'd prefer well-formed XHTML over any of that clients-side scripted crap, but totally rejecting CSS is pointless zealotry.

            Z This user is from outside of this forum
            Z This user is from outside of this forum
            [email protected]
            wrote last edited by
            #153

            In a perfect world, these would be decided not server-side, but client-side by choices made by the browser users.

            But our world is not perfect.

            1 Reply Last reply
            0
            • O [email protected]

              You are using ASCII? Weak. True website surfers use raw character values, like The Matrix in 1999.

              heythisisnttheymca@lemmy.worldH This user is from outside of this forum
              heythisisnttheymca@lemmy.worldH This user is from outside of this forum
              [email protected]
              wrote last edited by
              #154

              (ó﹏ò。) oh no my internet cred

              1 Reply Last reply
              0
              • B [email protected]

                Jesus. This is getting out of hand.

                heythisisnttheymca@lemmy.worldH This user is from outside of this forum
                heythisisnttheymca@lemmy.worldH This user is from outside of this forum
                [email protected]
                wrote last edited by
                #155

                I photocopied my screen (those all in one printers are heavy) and I cannot find the glue little help?

                1 Reply Last reply
                0
                • C [email protected]

                  Sure, but you can’t be tracked via css so it’s okay in my book. Have fun with your whacky css sites.

                  stepan@lemmy.cafeS This user is from outside of this forum
                  stepan@lemmy.cafeS This user is from outside of this forum
                  [email protected]
                  wrote last edited by
                  #156

                  you can’t be tracked via css

                  https://github.com/jbtronics/CrookedStyleSheets

                  1 Reply Last reply
                  3
                  • D [email protected]

                    Because then you know that it isn't easy to keep on top of it all the time.

                    I would appreciate it if you wouldn't just point at my mistake but say what would be right and why. If you know, that is.

                    V This user is from outside of this forum
                    V This user is from outside of this forum
                    [email protected]
                    wrote last edited by
                    #157

                    Alright man, I didn't mean for it to hit so hard. I'm just trying to help. I assumed you were English-speaking because they are honestly the ones to most often make that kind of mistake. 😄 Sorry if I offended you.

                    Anyway, I edited my first comment there, before you replied last. So the correct thing is there now. 👍 (It should be "than".)

                    Love ya. 😙

                    D 1 Reply Last reply
                    1
                    • P [email protected]

                      They’re not standards, it’s just default styles, which you can change.

                      b_tr3e@feddit.orgB This user is from outside of this forum
                      b_tr3e@feddit.orgB This user is from outside of this forum
                      [email protected]
                      wrote last edited by
                      #158

                      That's not even convincing pedantery. Nobody would assune that a browser's standard style might be an RFC, IETF- or in any way official standard,

                      P 1 Reply Last reply
                      0
                      • H [email protected]

                        https://thebestmotherfucking.website/

                        vantablack@lemmy.blahaj.zoneV This user is from outside of this forum
                        vantablack@lemmy.blahaj.zoneV This user is from outside of this forum
                        [email protected]
                        wrote last edited by
                        #159

                        https://bestestmotherfucking.website/

                        1 Reply Last reply
                        1
                        • J [email protected]

                          Passing information between two simultaneously existing entities? Get outta here! All cultures use the Jung collective unconscious to store knowledge!

                          impshum@lemmy.worldI This user is from outside of this forum
                          impshum@lemmy.worldI This user is from outside of this forum
                          [email protected]
                          wrote last edited by
                          #160

                          WORDS???? The cheek of it!

                          M 1 Reply Last reply
                          1
                          • P [email protected]

                            The revived No JS Club celebrates websites that don't use Javascript, the powerful but sometimes overused code that's been bloating the web and crashing tabs since 1995. The No CSS Club goes a step further and forbids even a scrap of styling beyond the browser defaults. And there is even the No HTML Club, where you're not even allowed to use HTML. Plain text websites!

                            The modern web is the pure incarnation of evil. When Satan has a 1v1 with his manager, he confers with the modern web. If Satan is Sauron, then the modern web is Melkor [1]. Every horror that you can imagine is because of the modern web. Modern web is not an existential risk (X-risk), but is an astronomic suffering risk (S-risk) [2]. It is the duty of each and every man, woman, and child to revolt against it. If you're not working on returning civilization to ooga-booga, you're a bad person.

                            A compromise with the clubs is called for. A hypertext brutalism that uses the raw materials of the web to functional, honest ends while allowing web technologies to support clarity, legibility and accessibility. Compare this notion to the web brutalism of recent times, which started off in similar vein but soon became a self-subverting aesthetic: sites using 2.4MB frameworks to add text-shadow: 40px 40px 0px hotpink to 400kb Helvetica webfonts that were already on your computer.

                            I also like the idea of implementing "hypotext" as an inversion of hypertext. This would somehow avoid the failure modes of extending the structure of text by failing in other ways that are more fun. But I'm in two minds about whether that would be just a toy (e.g. references banished to metadata, i.e. footnotes are the hypertext) or something more conceptual that uses references to collapse the structure of text rather than extend it (e.g. links are includes and going near them spaghettifies your brain). The term is already in use in a structuralist sense, which is to say there are 2 million words of French I have to read first if I want to get away with any of this.

                            Republished Under Creative Commons Terms.
                            Boing Boing Original Article.

                            A This user is from outside of this forum
                            A This user is from outside of this forum
                            [email protected]
                            wrote last edited by
                            #161

                            Oh neat! I'm working on a forum that doesn't use any javascript

                            M 1 Reply Last reply
                            4
                            • b_tr3e@feddit.orgB [email protected]

                              That's not even convincing pedantery. Nobody would assune that a browser's standard style might be an RFC, IETF- or in any way official standard,

                              P This user is from outside of this forum
                              P This user is from outside of this forum
                              [email protected]
                              wrote last edited by
                              #162

                              I meant it’s not standardised across browsers, so it doesn’t really matter if you change them within certain bounds. You can certainly set up something akin to some basic nice typesetting, get your default margins, padding, fonts, bg color sorted. They’re all reset in basically all websites anyway.

                              b_tr3e@feddit.orgB 1 Reply Last reply
                              0
                              • P [email protected]

                                I meant it’s not standardised across browsers, so it doesn’t really matter if you change them within certain bounds. You can certainly set up something akin to some basic nice typesetting, get your default margins, padding, fonts, bg color sorted. They’re all reset in basically all websites anyway.

                                b_tr3e@feddit.orgB This user is from outside of this forum
                                b_tr3e@feddit.orgB This user is from outside of this forum
                                [email protected]
                                wrote last edited by
                                #163

                                Yes. I think we're missing each other pinpointing details while meaning the same. Every browser has it's defaut or "standard" style, nowadays even adapting to the system theme and trying to guess if to use day or night settings etc. Nevertheless it won't break lines in a reasonable way, won't deal with footnotes in an acceptable way and either break the layout of pure text pages or the layout of illustrated pages. HTML5 makes these specific things somewhat better as it allows realtively advanced document structure but nevertheless, a few lines of CSS to reflect at least the prinipial character of the document are unlikely to hurt anyone in a worse way than a one-style-fits-all layout for everything will hurt tha vast majority.

                                1 Reply Last reply
                                1
                                • P [email protected]

                                  The revived No JS Club celebrates websites that don't use Javascript, the powerful but sometimes overused code that's been bloating the web and crashing tabs since 1995. The No CSS Club goes a step further and forbids even a scrap of styling beyond the browser defaults. And there is even the No HTML Club, where you're not even allowed to use HTML. Plain text websites!

                                  The modern web is the pure incarnation of evil. When Satan has a 1v1 with his manager, he confers with the modern web. If Satan is Sauron, then the modern web is Melkor [1]. Every horror that you can imagine is because of the modern web. Modern web is not an existential risk (X-risk), but is an astronomic suffering risk (S-risk) [2]. It is the duty of each and every man, woman, and child to revolt against it. If you're not working on returning civilization to ooga-booga, you're a bad person.

                                  A compromise with the clubs is called for. A hypertext brutalism that uses the raw materials of the web to functional, honest ends while allowing web technologies to support clarity, legibility and accessibility. Compare this notion to the web brutalism of recent times, which started off in similar vein but soon became a self-subverting aesthetic: sites using 2.4MB frameworks to add text-shadow: 40px 40px 0px hotpink to 400kb Helvetica webfonts that were already on your computer.

                                  I also like the idea of implementing "hypotext" as an inversion of hypertext. This would somehow avoid the failure modes of extending the structure of text by failing in other ways that are more fun. But I'm in two minds about whether that would be just a toy (e.g. references banished to metadata, i.e. footnotes are the hypertext) or something more conceptual that uses references to collapse the structure of text rather than extend it (e.g. links are includes and going near them spaghettifies your brain). The term is already in use in a structuralist sense, which is to say there are 2 million words of French I have to read first if I want to get away with any of this.

                                  Republished Under Creative Commons Terms.
                                  Boing Boing Original Article.

                                  A This user is from outside of this forum
                                  A This user is from outside of this forum
                                  [email protected]
                                  wrote last edited by
                                  #164

                                  JavaScript, the powerful but sometimes overused code

                                  now there's an understatement.

                                  1 Reply Last reply
                                  9
                                  • P [email protected]

                                    The revived No JS Club celebrates websites that don't use Javascript, the powerful but sometimes overused code that's been bloating the web and crashing tabs since 1995. The No CSS Club goes a step further and forbids even a scrap of styling beyond the browser defaults. And there is even the No HTML Club, where you're not even allowed to use HTML. Plain text websites!

                                    The modern web is the pure incarnation of evil. When Satan has a 1v1 with his manager, he confers with the modern web. If Satan is Sauron, then the modern web is Melkor [1]. Every horror that you can imagine is because of the modern web. Modern web is not an existential risk (X-risk), but is an astronomic suffering risk (S-risk) [2]. It is the duty of each and every man, woman, and child to revolt against it. If you're not working on returning civilization to ooga-booga, you're a bad person.

                                    A compromise with the clubs is called for. A hypertext brutalism that uses the raw materials of the web to functional, honest ends while allowing web technologies to support clarity, legibility and accessibility. Compare this notion to the web brutalism of recent times, which started off in similar vein but soon became a self-subverting aesthetic: sites using 2.4MB frameworks to add text-shadow: 40px 40px 0px hotpink to 400kb Helvetica webfonts that were already on your computer.

                                    I also like the idea of implementing "hypotext" as an inversion of hypertext. This would somehow avoid the failure modes of extending the structure of text by failing in other ways that are more fun. But I'm in two minds about whether that would be just a toy (e.g. references banished to metadata, i.e. footnotes are the hypertext) or something more conceptual that uses references to collapse the structure of text rather than extend it (e.g. links are includes and going near them spaghettifies your brain). The term is already in use in a structuralist sense, which is to say there are 2 million words of French I have to read first if I want to get away with any of this.

                                    Republished Under Creative Commons Terms.
                                    Boing Boing Original Article.

                                    L This user is from outside of this forum
                                    L This user is from outside of this forum
                                    [email protected]
                                    wrote last edited by
                                    #165

                                    I host my own website, and I decided to rewrite the JS portions in React, in order to learn the framework. Boy was it a learning experience: To do the same thing required 2-4 times the amount of code—and that’s just in the scripts, let alone the all the bloat from the packages and the bundler.

                                    I know this is a bit more radical than cutting out frameworks, but working with the JS ecosystem was such a pain, largely because there’s you need to piece together different software to make a stack work, which may or may not go together well. And since your stack is likely unique, good luck getting help on your problems. It made me miss Rust (albeit most languages do)—in Rust, you have Cargo for everything, and it’s beautiful. Rust has its own difficulties, but they actually feel surmountable compared to the dependency hell of JS.

                                    X R 2 Replies Last reply
                                    6
                                    • P [email protected]

                                      The revived No JS Club celebrates websites that don't use Javascript, the powerful but sometimes overused code that's been bloating the web and crashing tabs since 1995. The No CSS Club goes a step further and forbids even a scrap of styling beyond the browser defaults. And there is even the No HTML Club, where you're not even allowed to use HTML. Plain text websites!

                                      The modern web is the pure incarnation of evil. When Satan has a 1v1 with his manager, he confers with the modern web. If Satan is Sauron, then the modern web is Melkor [1]. Every horror that you can imagine is because of the modern web. Modern web is not an existential risk (X-risk), but is an astronomic suffering risk (S-risk) [2]. It is the duty of each and every man, woman, and child to revolt against it. If you're not working on returning civilization to ooga-booga, you're a bad person.

                                      A compromise with the clubs is called for. A hypertext brutalism that uses the raw materials of the web to functional, honest ends while allowing web technologies to support clarity, legibility and accessibility. Compare this notion to the web brutalism of recent times, which started off in similar vein but soon became a self-subverting aesthetic: sites using 2.4MB frameworks to add text-shadow: 40px 40px 0px hotpink to 400kb Helvetica webfonts that were already on your computer.

                                      I also like the idea of implementing "hypotext" as an inversion of hypertext. This would somehow avoid the failure modes of extending the structure of text by failing in other ways that are more fun. But I'm in two minds about whether that would be just a toy (e.g. references banished to metadata, i.e. footnotes are the hypertext) or something more conceptual that uses references to collapse the structure of text rather than extend it (e.g. links are includes and going near them spaghettifies your brain). The term is already in use in a structuralist sense, which is to say there are 2 million words of French I have to read first if I want to get away with any of this.

                                      Republished Under Creative Commons Terms.
                                      Boing Boing Original Article.

                                      A This user is from outside of this forum
                                      A This user is from outside of this forum
                                      [email protected]
                                      wrote last edited by
                                      #166

                                      That is just stupid. How about a slighly more complex markdown.

                                      What I really want is a P2P archive of all the relevant news articles of the last decades in markdown like in firefox "reader view". And some super advanced LLM powered text compression so you can easily store a copy of 20% of them on your PC to share P2P.

                                      Much of the information on the internet could vanish within months if we face some global economic crisis.

                                      R 1 Reply Last reply
                                      3
                                      • L [email protected]

                                        I host my own website, and I decided to rewrite the JS portions in React, in order to learn the framework. Boy was it a learning experience: To do the same thing required 2-4 times the amount of code—and that’s just in the scripts, let alone the all the bloat from the packages and the bundler.

                                        I know this is a bit more radical than cutting out frameworks, but working with the JS ecosystem was such a pain, largely because there’s you need to piece together different software to make a stack work, which may or may not go together well. And since your stack is likely unique, good luck getting help on your problems. It made me miss Rust (albeit most languages do)—in Rust, you have Cargo for everything, and it’s beautiful. Rust has its own difficulties, but they actually feel surmountable compared to the dependency hell of JS.

                                        X This user is from outside of this forum
                                        X This user is from outside of this forum
                                        [email protected]
                                        wrote last edited by [email protected]
                                        #167

                                        The dependency hell of JS is caused by React. It's an ironic turn because node gained popularity in part because it was one of the first to have a coupled package manager with a massive public contribution model, full of a billion packages that follow the unix philosophy of "everything should do only one thing, and do it well" Dependency hell would disappear if people stopped popularizing competing swiss army knives. It's made worse by people trying to mash these swiss army knives together just to improve portfolio.

                                        We've gotten to the point where you aren't considered a real professional unless you start even the smallest projects with maximum technical debt.

                                        It should never be impressive that you used a tool. If the tool made programming it easier then it's not a mental feat. If the tool made programming it harder, then people should think you are kind of slow for using a tool that made development harder. This is why brag culture over what tools are used makes no sense. Just use tools that make life easier. If it doesn't make life easier, stop using it.

                                        M L 2 Replies Last reply
                                        5
                                        • A [email protected]

                                          I do wonder if we're going to see some websites popping up that kind of hit the reset button on social media and go back to smaller communities of folks with something in common.

                                          I kind of miss the days of actually having online conversations with folks you know are real people (not bots), that aren't trying to be an influencer, or get famous, or some how many money off your interactions.

                                          L This user is from outside of this forum
                                          L This user is from outside of this forum
                                          [email protected]
                                          wrote last edited by
                                          #168

                                          I know some some communities using WhatsApp. Too difficult to get in. I miss the old days of irc and small php forums.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups