239
1.7yr
87

Introducing: HexAtlas

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

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:

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 @someone@hexbear.net 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 :( @kota@hexbear.net 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 @SleeplessOne1917@lemmy.ml 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:

@nutomic@lemmy.ml

@dessalines@lemmy.ml

@SleeplessOne1917@lemmy.ml

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/

SeventyTwoTrillion [he/him] - 1.7yr

sorry for the semi-late response, been a little distracted over the last few days, but:

holy shit

42
hex_atlas [comrade/them, he/him] - 1.7yr

I am a huge fan of your bulletins! If you're interested we can make them even integrate even better (e.g. the reading list, or if some countries are not showing).

Thank you for doing the bulletin posts! rat-salute

25
Pluto [he/him, he/him] - 1.7yr

Yeah.

8
hex_atlas [comrade/them, he/him] - 1.7yr

Thank you for bringing this to my attention. It won't be implemented.

26
Pluto [he/him, he/him] - 1.7yr

Moon of Alabama has always been trash; people just couldn't see it up until relatively recently.

6
LesbianLiberty [she/her] - 1.7yr

Maybe I'm really dumb but... how do I use this

27
oscardejarjayes [comrade/them] - 1.7yr

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".

24
hex_atlas [comrade/them, he/him] - 1.7yr

Thank you @oscardejarjayes@hexbear.net!

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

14
LesbianLiberty [she/her] - 1.7yr

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.

10
hex_atlas [comrade/them, he/him] - 1.7yr

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.

8
Pluto [he/him, he/him] - 1.7yr

Maybe you can tie this to ProleWiki?

Idk.

4
hex_atlas [comrade/them, he/him] - 1.7yr

It is already. Click on the Nexus tab, select prolewiki and click on any country bean

5
Pluto [he/him, he/him] - 1.7yr

NOICE

3
CriticalResist8 @lemmygrad.ml - 1.7yr

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.

3
hex_atlas [comrade/them, he/him] - 1.7yr

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

3
CriticalResist8 @lemmygrad.ml - 1.7yr

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

3
hex_atlas [comrade/them, he/him] - 1.7yr

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?

3
nurjahreszeiten [he/him] - 1.7yr

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.

20
hex_atlas [comrade/them, he/him] - 1.7yr

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! :)

16
nurjahreszeiten [he/him] - 1.7yr

Yeah sorry I ment the minimap. Ur dedication and enthusiasm is really inspiring, honestly u are so cool. <3

12
SpiderFarmer [he/him] - 1.7yr

When I graduated, GIS wasn't as mainstream. Couldn't find a job in the field and gave up. Years later, its fucking everywhere.

13
nurjahreszeiten [he/him] - 1.7yr

Yeah I got extremely lucky, where I live most of us where fished out of the university before we could even graduate.

12
GalaxyBrain [they/them] - 1.7yr

kelly Hexbear Atlas Shrugged

This is genuinely cool as hell and could make for a valuable resource.

19
CloutAtlas [he/him] - 1.7yr

Atlas related names are cool

4
GalaxyBrain [they/them] - 1.7yr

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.

3
thelastaxolotl [he/him] - 1.7yr

This is really cool @hex_atlas@hexbear.net

for a suggestion you could add bannedthought.net its a collection of revolutionary publications and its organized by country

18
hello_hello [comrade/them] - 1.7yr

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.

11
thelastaxolotl [he/him] - 1.7yr

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

11
Pluto [he/him, he/him] - 1.7yr

I focus on Turkey!

bottom-speak

5
hex_atlas [comrade/them, he/him] - 1.7yr

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 :/

6
Pluto [he/him, he/him] - 1.7yr

It's Maoist, but eh, put it in there.

4
hello_hello [comrade/them] - 1.7yr

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.

18
Zuzak [fae/faer, she/her] - 1.7yr

Wow! This is really cool, thanks for setting this up!

17
TeddyKila [comrade/them] - 1.7yr

sicko-spin

15
Pluto [he/him, he/him] - 1.7yr

creature

6
wheresmysurplusvalue [comrade/them] - 1.7yr

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.

15
hex_atlas [comrade/them, he/him] - 1.7yr

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.

17
wheresmysurplusvalue [comrade/them] - 1.7yr

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.

14
Chay - 1.7yr

This is great! If you want to move off netlify, I could host it

14
hex_atlas [comrade/them, he/him] - 1.7yr

Yes! Netlify was just something I used to get it quickly on the web. I believe @TheCaconym@hexbear.net is checking the external modules and would add it to atlas.hexbear.net (not sure if they meant to host it as well or just add it to the domain). I'll give you access to the github repo. Will thenetlify serverless functions have to be rewritten?

15
Chay - 1.7yr

Ah, if it will be hosted under the hexbear domain that would be nice

15
Pluto [he/him, he/him] - 1.7yr

Netlify?

2
Pluto [he/him, he/him] - 1.7yr

Understood.

2
RedArcher [he/him] - 1.7yr

It should also include Leftypedia in addition to ProleWiki. The latter is much more sectarian and tendency-based, whereas Leftypedia is left-unity.

12
hex_atlas [comrade/them, he/him] - 1.7yr

Thank you for your suggestion, I pushed an update just now. But I noticed that it only works locally and not on hex-atlas.netlify.app. I'll be able to debug later this week

6
Frank [he/him, he/him] - 1.7yr

This is extremely cool. Bravo, comrade!

12
GenderIsOpSec [she/her, kit/kit's] - 1.7yr

fidel-salute-big

12
ziggurter [he/him, comrade/them] - 1.7yr

Nice!

What's the best place to report bugs?

If I click on HaDarom, Palestine, the window that gives a choice of scope (province/territory, country, etc.) has "HaDarom" at the top, "Palestine" below it, and then a bunch of selectable blank lines below those. If I click on one of the blank lines, it turns the whole page into just a blank background. The only way of continuing seems to be to refresh the whole page.

11
hex_atlas [comrade/them, he/him] - 1.7yr

It's probably because I manually edited Israel to be Palestine and it screwed with the file 😅 Thank you for reporting it I'll be able to fix it later this week. Feel free to add issues to https://github.com/hexatlas/lemmy-atlas/ if you find more

8
hex_atlas [comrade/them, he/him] - 1.7yr

Most errors should be fixed now. I wasn't able to match these:

No match found for country: Ashmore and Cartier Islands

No match found for country: Bajo Nuevo Bank (Petrel Is.)

No match found for country: Clipperton Island

No match found for country: Coral Sea Islands

No match found for country: Northern Cyprus

No match found for country: Dhekelia Soverign Base Area

No match found for country: Indian Ocean Territories

No match found for country: Baykonur Cosmodrome

No match found for country: Siachen Glacier

No match found for country: Null Island

No match found for country: Spratly Is.

No match found for country: Scarborough Reef

No match found for country: Serranilla Bank

No match found for country: US Naval Base Guantanamo Bay

No match found for country: Akrotiri Sovereign Base Area

4
ziggurter [he/him, comrade/them] - 1.7yr

2
NephewAlphaBravo [he/him] - 1.7yr

::: spoiler oh this is cool as hell, nice work still sane, hexile? :::

10
Pluto [he/him, he/him] - 1.7yr

No.

2
Aquilae [he/him, they/them] - 1.7yr

hyperflush

10
Pluto [he/him, he/him] - 1.7yr

Hey, could you make it so that the words of your query or focus-item are highlighted in the text that's brought up?

10
Pluto [he/him, he/him] - 1.7yr

Cool beans.

2
iByteABit [comrade/them] - 1.7yr

That's sick dude, nice work! I'd be interested to contribute if I have time, a link to Github on the app would be cool if you decide to open source it

9
Pluto [he/him, he/him] - 1.7yr

Do you self-host this website?

It's best you do that, I think.

8
hex_atlas [comrade/them, he/him] - 1.7yr

Not at the moment. It's on netlify, but am looking for ways to move off of it. I reached out to the admin/devs also @chay@lemmygrad.ml made an offer

10
Pluto [he/him, he/him] - 1.7yr

Good idea.

4
Pluto [he/him, he/him] - 1.7yr

Will you include the dwarf planet Pluto though?!

8
Pluto [he/him, he/him] - 1.7yr

How do you use this, exactly?

7
Pluto [he/him, he/him] - 1.7yr

Nvm, I... think I may be figuring it out.

¯_(ツ)_/¯

(But yeah, don't be afraid to give me pointers and maybe a rundown of what to do.)

7
Facky [he/him,comrade/them] - 1.7yr

You have to use three backslashes for the left arm.

6
Pluto [he/him, he/him] - 1.7yr

Understood

2
hex_atlas [comrade/them, he/him] - 1.7yr

Copy paste from another comment:

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

5
Pluto [he/him, he/him] - 1.7yr

Thnx!

3
sadschmuck [none/use name] - 1.7yr

Great work! Some suggestions:

The main map should be smaller or adjustable/collapsible

Ability to show posts and comments together like on the search page

Would it be possible to exclude comments with only one upbear?

Oh and some of the emojis are huge

6
hex_atlas [comrade/them, he/him] - 1.7yr

Thank you for your feedback!

The main map should be smaller or adjustable/collapsible

There's a double arrow that allows you to drag and drop to a size you like. I check how to make it collapse/expand entirely

Ability to show posts and comments together like on the search page

I initially had it set up like this, but was only able to do posts and then comments or the other way around. On the search page the comments and posts are automatically sorted by the selected sort type, but haven't figured out how it's done. I'll check if I can make it available still

Would it be possible to exclude comments with only one upbear?

yes and no. When I do an API call I get back an array of 10 (or less) comments. I could filter them but you'd have to still click "view more" to get a new batch of 10 comments where e.g. 9 could have one vote and you'd only see 1 more. My attempts at implementing an infinite scroller always ended up infinitely looping 😅 Btw the default sorting is "new", try if active or hot works better in the mean time.

Oh and some of the emojis are huge

Right now it's difficult to distinguish between emoji <img> and regular <img>. I'll give it a another look

4
Pluto [he/him, he/him] - 1.7yr

Yeah, the emojis are big.

4
FourteenEyes [he/him] - 7mon

Clicking on the Hexbear portion of the map and finding it is filled with liberalism xinternet

2