Hello and warm greetings to my fellow news mega enjoyers and to the wider hexbear, lemmygrad and lemmy.ml community,

I’ve been finding myself browsing the newsmega often and was often thinking of a way that would help me contextualize the discussions and news that I’m reading. I remembered an atlas I had in school that would show the location of industries and natural ressources (and more) and decided try to recreate a digital version similar to https://atlas.cid.harvard.edu/. When I stumbled upon lemmy-js-client I found a fun way to display lemmy comments geographically, which I would like to share with you:

https://hex-atlas.netlify.app/

⚠️ Spoiler Tags are not implemented thus CWs are not hidden

Nexus Features:

  • @[email protected] Bulletins
  • Hexbear Reading List (Thank you @[email protected] for the suggestions)
  • ProleWiki (Thank you Lemmygrad for maintaining this)
  • Wikipedia/Natopedia
  • Anarchist Library

I’m open for suggestions, but would like to continuously add new features:

  • Mastodon.social (well documented)
  • Marxists.org (will be difficult)
  • Moon of Alabama (looks easy) (Thank you @[email protected] for pointing out the transphobia)
  • Usability and performance improvements
  • and maybe more cool features where the guiding ideas are: “IRL Victoria 3 UI” and a “cockpit for newsmega-enjoyers” (e.g. comparing regions and seeing commodity/capital flows, real-time 1% flight data, vessel data - to enjoy the ansar allah blockade, virgin chad ranking, etc.)

Basic usage:

  • You can either search for a place or click on it. You’ll see various scopes: provinces/territories, countries, intermediate regions, sub regions, continent. You can click also on these to change the scope. What it actually does is send it as a search query into lemmy and you see the search results to it (I built a fancy search page). IN the Fediverse Tab you can select the instances, sort types, and other settings from lemmy. On the Nexus Tab you have a similar behaviour, just for the various modules. You’ll see the wiki of whatever is selected on the map :

  • use query to search location by query e. g. brics and find discussions pertaining to the selected location.

  • the query field can also be used to find and filter content by communities that are not listed

  • on Mobile long press pictures to unblur it (not fully tested) on desktop hover with mouse

tldr: Attention [Pink]: Select an option [Purple] to reveal selected information [Yellow].

It’s in a prototype stage so please keep in mind:

  • ⚠️ Spoiler Tags are not implemented thus CWs are not hidden ⚠️

  • It’s mostly optimized for desktops. Sry comrades with old hardware - no optimization, yet :( @[email protected] post inspired me to look into this tho.

  • Provinces/Territories: While I was doing manual edits to some regions I realized I’m doing something very political (duh). Following this, I’m looking for solutions to implement user defined regions (if there’s interest from you) e.g. #fromTheRiverToTheSea #brics #udssr #whatever Comrade @[email protected] offered help, but I have only experience with front-end and am not sure how and what to propose. All my ideas are leveraging the current state of development and might be annoying to you. If you have experience, suggestions, etc. on how to make this work, feel free to start a discussion, reach out, etc.

  • Provinces/Territories: If you want something particularly aggravating changed asap, feel free to start a discussion and vOtE! I’ll update manually.

  • Countries that span two continents are only displayed as belonging to one e.g. Russia - Europe (Dataset used: https://github.com/lukes/ISO-3166-Countries-with-Regional-Codes)

  • Right now this project is exclusive to hexbear, lemmygrad, lemmy.ml and their federated instances. I have an inner conflict: Generally, fuck intellectual property and I would like to make it foss, but this would make it available for lib/chud content as well. Should I? Help me resolve this.

  • No login implemented

Please consider this a tribute to this community, which I’ve been lurking and a member since the r/CTH days (nevar forget). I started web development not too long ago and am deeply inspired by dev titans among others:

@[email protected]

@[email protected]

@[email protected]

Thank you and the mods and admins for making hexbear/lemmy what it is today.

rat-salute

Enjoy your weekend :)

(After I post this I will leave the computer for a while and wont be able to really check and respond for a few hours)

Death to fascism

Death to capitalism

Death to imperialism

Trans rights are human rights

EDIT: After some consideration I decided to make the code public under the GNU AFFERO GENERAL PUBLIC LICENSE ( AGPL-3.0 license )

https://github.com/hexatlas/lemmy-atlas/

https://git.altesq.net/hex_atlas/lemmy-atlas/

    • oscardejarjayes [comrade/them]@hexbear.net
      link
      fedilink
      English
      arrow-up
      22
      ·
      8 months ago

      click on a place, and stuff related to it will pop up on the sidebar. If you want to know about the West Bank from an anarchist perspective, click on the west bank, click on “Nexus”, then click on “anarchist library”.

    • hex_atlas [comrade/them, he/him]@hexbear.netOP
      link
      fedilink
      English
      arrow-up
      13
      ·
      8 months ago

      Thank you @[email protected]!

      To elaborate some more: You can either search for a place or click on it. You’ll see various scopes: provinces/territories, countries, intermediate regions, sub regions, continent. You can click also on these to change the scope. What it actually does is send it as a search query into lemmy and you see the search results to it (I built a fancy search page). IN the Fediverse Tab you can select the instances, sort types, and other settings from lemmy. On the Nexus Tab you have a similar behaviour, just for the various modules. You’ll see the wiki of whatevery is selected on the map :)

      tldr: Attention [Pink]: Select an option [Purple] to reveal selected information [Yellow].

      • LesbianLiberty [she/her]@hexbear.net
        link
        fedilink
        English
        arrow-up
        10
        ·
        8 months ago

        This is awesome! Thank you so much! You said there’s no git repo (I am in favor of Open Sourcing such a neat project tbqh) so I guess I can only report a bug here:

        On reloading the page, if you go east to look at the Americas you will find that no countries in the Americas will be selectable; in addition to the pacific islands I tested (like Kiribati), but if you travel west from the starting position to see the Americas then you will be able to select Americas Countries; but you still can’t select Kiribati. I know this is an edge case and solvable on the user end by just not doing that (and also not investigating Pacific Island nations west of Hawaii) but I figured I’d mention it if you didn’t already have that down.

        • hex_atlas [comrade/them, he/him]@hexbear.netOP
          link
          fedilink
          English
          arrow-up
          8
          ·
          8 months ago

          This is because the map tiles repeat infinitely, but the clickable layer doesn’t. Unfortunately I haven’t found a good solution to this yet :(

          I am in favor of Open Sourcing such a neat project tbqh

          Yeah I tend toward that too. Once I stall with development or know I won’t be able to continue I will anyway at the latest and will make a post.

          • CriticalResist8@lemmygrad.ml
            link
            fedilink
            English
            arrow-up
            3
            ·
            edit-2
            7 months ago

            15 days late but this is pretty cool! We also have library works (in the Library: namespace, which is added before the page name in the URL), if you want to find a way to add them to the tool like you have for the Anarchist library or the threads.

            • hex_atlas [comrade/them, he/him]@hexbear.netOP
              link
              fedilink
              English
              arrow-up
              3
              ·
              edit-2
              7 months ago

              Ahh sweet! Didn’t know about https://en.prolewiki.org/wiki/ProleWiki:Library and I see it’s also linking to marxists.org (albeit seems not as extensive yet), which I wanted to link too

              in the Library: namespace, which is added before the page name in the URL

              Do you know how the from/to parameters ( “Display pages at”) work? Is there a way to filter by county?

              https://en.prolewiki.org/wiki/Special:AllPages?from=&to=&namespace=3000&hideredirects=1

              At the very least I’ll be able to link to the Library, but it would be cool to filter marxists works by country also

              • CriticalResist8@lemmygrad.ml
                link
                fedilink
                English
                arrow-up
                3
                ·
                7 months ago

                Editors rely on marxists.org a lot but I want to move away from them because they outright remove parts they don’t like without telling the reader :( they do have one of the largest repos of (socialist) texts on the web and the HTML format makes it very easy to import to mediawiki, but yeah down the line I would want all marxists org sourced texts to be replaced by other sources, even if we need to hunt down and import a pdf copy (which is a pain and slower).

                We filter by categories as well for countries, the format is always “Library works about X”, X being the country. and there is a public-facing API (though it’s bonked right now)

                More generally we have two library category schemas: Library works by X, Library works about X. Sometimes you might have ‘about the’, e.g. “the USSR”. The Cuba category for example: https://en.prolewiki.org/wiki/Category:Library_works_about_Cuba (refer to the URL for the schema and not the displayed title, which we can change on the front-end)

                I assume the from and to parameters use the page’s ID which there is no way to predict unfortunately.

                The library homepage is here, it should make more sense with the visuals: https://en.prolewiki.org/wiki/ProleWiki:Library

                • hex_atlas [comrade/them, he/him]@hexbear.netOP
                  link
                  fedilink
                  English
                  arrow-up
                  3
                  ·
                  edit-2
                  7 months ago

                  Thank you for you patience and taking the time to explain. I don’t have much experience with Wiki, apart as a casual reader, and appreciate you taking the time.

                  Editors rely on marxists.org a lot but I want to move away from them because they outright remove parts they don’t like without telling the reader :(

                  The more you know… Thank you.

                  and there is a public-facing API (though it’s bonked right now)

                  (refer to the URL for the schema and not the displayed title, which we can change on the front-end)

                  Could you kindly elaborate some more?

                  Atm I was only able to add a simple " 📚📕 All library works about {activeAdministrativeRegion.country} on ProleWiki." to https://en.prolewiki.org/wiki/Category:Library_works_about_${activeAdministrativeRegion.country} on Top of the ProleWiki Tab.

                  Sometimes you might have ‘about the’, e.g. “the USSR”.

                  Unfortunately I don’t have solution for this atm, but looking to add user defined regions in order to lay the way to for linking to USSR, BRICS, etc

                  I assume the from and to parameters use the page’s ID which there is no way to predict unfortunately.

                  Hmm ok. If there’s an API that gives me a JSON response of the book (pages) I would be able to integrate it similar to the Anarchist Library or the 72T Bulletins… The current implementation (not the Library, but the Country pages) uses the HTML response from the API (https://en.prolewiki.org/api.php?action=parse&page=germany&format=json&redirects). Is there something like this?

                  Also, unfortunately the HTML body has relative links and these aren’t working (click on any of the wiki article links and you see what I mean). I thought I had a solution to make the links absolute by injecting the wiki base URL on Click, but i broke the sources as these are absolute links already. Not sure how to go about solving this. Do you have experience with this?

  • nurjahreszeiten [he/him]@hexbear.net
    link
    fedilink
    English
    arrow-up
    20
    ·
    8 months ago

    Very cool, as an GIS dev I like what u did here.

    I personally dont like the overview map, i dont think thats really needed and if, than maybe smaller and without any labels (u can use positron from CartoDB for that or just an generalise line layer for coastlines and countries) and down to the left of the screen. Also the generalisation of the polygon layer has some effects that I dont like at Zoom level about 7-1, maybe just make them clickable but invisible at this zoom.

    I dont like the topo tile map as default, i would use Esri standard or openstreetmaps or Positron with labels, it is less overwhelming.

    And a Idea that I think is really cool would be a point layer with pins of places that someone recently wrote something about on hexbear or lemygrad, maybe the last 24h. That way we would see at the first sight where is something big going on.

    Hope that what I wrote was helpful. Thank u for ur great work.

    • hex_atlas [comrade/them, he/him]@hexbear.netOP
      link
      fedilink
      English
      arrow-up
      16
      ·
      8 months ago

      I didn’t know GIS development is a thing and I will have to look a lot more into it. Looks like I’ve been reinventing the wheel. It’s the first time I worked with maps and was just screwing around 😅

      I personally dont like the overview map, i dont think thats really needed and if, than maybe smaller and without any labels

      Do you mean the minimap in the corner or the entire map?

      positron from CartoDB

      I gave it a quick look and I probably should’ve used this from the get go. I will see how I can use this in this project (It’s written in react-ts)

      Zoom level about 7-1, maybe just make them clickable but invisible at this zoom

      Thank you I will try to solve this!

      Would use Esri standard or openstreetmaps or Positron with labels, it is less overwhelming.

      It was a purely aestehtic choice (like that cloud layer that disappears when you zoom in) lol I updated the default to be OpenStreetMap

      And a Idea that I think is really cool would be a point layer with pins of places that someone recently wrote something about on hexbear or lemygrad, maybe the last 24h. That way we would see at the first sight where is something big going on.

      I have an Issue open for “Active Regions”. I actually want the map to also auto focus on there and to be able to see a weighting of the entire map based on the amount of comments/posts. I’m not sure on how to achieve this, but could be if I receive amount of search results back from the lemmy-client-js api. e.g. Gaza Strip - x amount of comments and compare it with other regions

      Hope that what I wrote was helpful. Thank u for ur great work.

      Thank you it is! :)

      • GalaxyBrain [they/them]@hexbear.net
        link
        fedilink
        English
        arrow-up
        3
        ·
        8 months ago

        Also, Atlas held up the sky or Uranus (easy jokes here! You can make a women hold up half the sky thing or just an easy Uranus joke, it’s easy picking!). Used to be some titan held one corner of the sky esch but then Zeus yeeted those nerds to tartarus and made one normal guy do it in a mythological display or corporate downsizing.

  • hello_hello [comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    18
    ·
    edit-2
    8 months ago

    Right now this project is exclusive to hexbear, lemmygrad, lemmy.ml and their federated instances. I have an inner conflict: Generally, fuck intellectual property and I would like to make it foss, but this would make it available for lib/chud content as well. Should I? Help me resolve this.

    I don’t see how that would affect us. If anything it would help expose the incoherent lib worldview of FUBAR instances like beehaw and dot world and only sharpen the differences between leftist instances and rightist instances. I’d recommend releasing the project under the Affero GNU Public License Version 3.0 or later (AGPL3.0+) and only advertise it to leftist instances, chuds don’t give a shit.

    Most fash don’t want their users to see a world map, it’s all ideology to them.

    EDIT: Also if you’re going to be hosting the source code on a public (not self-hosted) git forge, please choose a libre software (or at least aligned with our ideals) friendly hoster like Codeberg, notabug, source hut, GitLab etc. Please do not host this on GitHub if you can.

    • xj9 [they/them, she/her]@hexbear.net
      link
      fedilink
      English
      arrow-up
      11
      ·
      8 months ago

      Afaik its also technically acceptable to make source availability contingent on having an account or filling out a form, it doesn’t have to be trivially accessible.

      • hello_hello [comrade/them]@hexbear.net
        link
        fedilink
        English
        arrow-up
        10
        ·
        edit-2
        8 months ago

        That’s also correct, under the GPL and assorted copyleft licenses you’re not obligated to distribute/publish the source code to anyone, only that whoever you distribute the program to is obligated to the same freedoms you have (including access to the source and publishing it themselves). The goal of a copyleft license is to promote transparency from all parties.

        I mentioned git forges since that gives way to bug/issue trackers and contributions as well as publishing the source code under a FOSS license, it would also allow the project to be branded as explicitly leftist (similar to how the lemmy devs being MLs caused a rift in the crypto-fash instances even though lemmy dot ml libbed itself to appeal to more reddit refugees, chuds wouldn’t trust us).

          • hello_hello [comrade/them]@hexbear.net
            link
            fedilink
            English
            arrow-up
            5
            ·
            edit-2
            8 months ago

            Good luck! All the power to you since and its really impressive that this is one of your first projects.

            A private/invite only repository seems to be the correct course of action since we already have a site like hexbear to coordinate who gets read/write access to the repo.

            • hex_atlas [comrade/them, he/him]@hexbear.netOP
              link
              fedilink
              English
              arrow-up
              5
              ·
              edit-2
              8 months ago

              I ended up making it public :)

              It’s not my first project, but the first one that I ended up making open source. I’ve been mostly coding for fun on front-end personal projects. Software Engineering is such a big field, that all I know is that I don’t know enough probably never will

    • xj9 [they/them, she/her]@hexbear.net
      link
      fedilink
      English
      arrow-up
      3
      ·
      7 months ago

      i’m hosting a mirror here that i’ll be using to manage my contributions to the project. i can’t promise much in the way of stability at the moment, but i’ll get there eventually.

    • hex_atlas [comrade/them, he/him]@hexbear.netOP
      link
      fedilink
      English
      arrow-up
      8
      ·
      8 months ago

      Right now I only managed to add IMF data as a proof of concept (There’s a bunch of indicators to choose from). There’s a lot more datasets that I would like to be able to see on there and the ability to compare countries/regions. Ideally we could visualize capital and commodity flows between two selections

    • hex_atlas [comrade/them, he/him]@hexbear.netOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      8 months ago

      Hi comrade,

      I added a bunch of open data in the Nexus > Misc tab for you. Hope you find some of it useful. Feel free to reach out if you’d like to see more :)

      World Inequality Database

      UN Comtrade

      International Labour Organization

      International Energy Agency

      World Bank

      OECD

      When I’ll have more time I’ll look for deeper integration

    • hello_hello [comrade/them]@hexbear.net
      link
      fedilink
      English
      arrow-up
      10
      ·
      edit-2
      8 months ago

      I don’t know, they have some dicey takes like having a section titled “Contemporary Capitalist Imperialist China” which seems very ultra and their presentation gives me Moon of Alabama vibes of old boomers. I can’t speak any more than that so feel free to correct me or add on.

      • thelastaxolotl [he/him]@hexbear.net
        link
        fedilink
        English
        arrow-up
        10
        ·
        8 months ago

        the presentation looks like MoA because they both go for the early 00 web page look, but MoA is a blog about news and Bannedthought its just an archive of publications made by different communist orgs and authors like marxists.org as for their ultra its because they are mostly a maoist site they have many docs on countries i personally think anarchist or ML dont focus much on like Turkey and India

    • hex_atlas [comrade/them, he/him]@hexbear.netOP
      link
      fedilink
      English
      arrow-up
      6
      ·
      edit-2
      8 months ago

      I gave it a quick and dirty integration in Nexus > Misc (Link it externally)

      Unfortunately to have deeper integration I’d need to be able to get a json response (or do an iFrame, which I would like to avoid). It’s a similar problem I was facing when looking for ways to integrate marxist.org. They use a google search plugin :(

      Also it seems like there aren’t that many pages in the format: http://bannedthought.net/{country}/index.htm and you often land on a 404 page :/

  • wheresmysurplusvalue [comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    14
    ·
    8 months ago

    This looks cool! Since I’m a dumbass, can you help me understand what I’m looking at? How does a post/comment get associated with a region? Is it a text based analysis of the post that picks out keywords?

    Another thought, would it be feasible to show a timeline view to show which regions are “hot” at the moment and over time? I imagine in 2022 that Ukraine would light up (no pun intended), and in 2024 so would Gaza. That would be kind of cool to see.

    • hex_atlas [comrade/them, he/him]@hexbear.netOP
      link
      fedilink
      English
      arrow-up
      17
      ·
      8 months ago

      How does a post/comment get associated with a region? Is it a text based analysis of the post that picks out keywords?

      When you click on a region, and depending on the regionscope (country, province, contintent, etc.) the string is passed to the lemmy-client-js search function (e.g. west asia, egypt, california). The posts/comments that pop up are just the search results on the string. At the very bottom of the lemmy integration you find the link to the search page and how the query works. I’m afraid it’s just a fancy search page that is leveraging all fields you see here https://hexbear.net/search :)

      Another thought, would it be feasible to show a timeline view to show which regions are “hot” at the moment and over time? I imagine in 2022 that Ukraine would light up (no pun intended), and in 2024 so would Gaza. That would be kind of cool to see.

      That’s a great Idea! Not sure how to be able to implement it. Lemmy-client-js would probably need to be able to take fromDate and toDate as a parameter on the search function if I understand your idea correctly.

      • wheresmysurplusvalue [comrade/them]@hexbear.net
        link
        fedilink
        English
        arrow-up
        14
        ·
        8 months ago

        Ahh, ok, now I understand, it’s like a frontend for the search page where the map is your search input. Makes total sense now. And also probably means that what I suggested can’t be reasonably done like this. Probably works better taking an offline data dump and running some big data analysis over all the posts.