Toggle menu
15
243
113
28K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Prd (talk | contribs)
No edit summary
Prd (talk | contribs)
 
(169 intermediate revisions by the same user not shown)
Line 1: Line 1:
=====10/11=====
''I can't stay long, whispered the butterfly, but I'll put a memory in your heart.''
Mediawiki 1.43.1 -> 1.43.5, then back to business.
----
----
=====10/21=====
:'''Socials'''
Quick update, this one's gonna be extra spicy. Experimenting with Blazor, as per the C#-based local tooling for extraction, creating a connective meshing between the extractions, outputs, formatting of, server request-response and manifest management end to end. This lays the groundwork for a privatized pipeline to push new and update with respect to older manifests...eventually allowing for a pathway to achieve the same outcomes in a public manner. Once manifests can be handled to satisfaction the feature oriented development of the map will continue in earnest. Soon after will follow an API/UI refinement and mass pruning of the initially imported templates & modules as well as a general reduction in extension usage. Slash and burn remains in effect.  
::Discord - prd1847
::Prdandsuch on [https://www.reddit.com/user/prdandsuch/ Reddit]
::whatisaprd on [https://x.com/whatisaprd X/Twitter]
::KenshiDBdotWiki@gmail.com
----
----
=====10/22=====
[[Project:Realpolitik|Realpolitik, World Revisions]]
Manifest management pipeline underway! New site is up - concurrently building up the admin panel and app connector. In order but not particularly, construct server layer API (incoming, outgoing, on-site, server instructions), build private connection (first, then "public"), build extraction bundler, create file & zip delivery & unpacking routines... and then basically improve controls in preparation for updating the wiki's observational manager. DotNET is, in my humble opinion, a sleeping giant of a framework in the realm of web development. I'm no Java expert - and I never will be - but what the C# team have cobbled together over the years, now made more apparent by picking up Blazor (server), is downright impressive given how easy VSC is to integrate via SSH. 9 out of 10, would dev again, their docs are like swimming through a swamp - it's great.
----
----
=====10/23=====
[https://mega.nz/folder/2DRFAYzJ#sF1O8a2VhRwM3J0ddaNYug Mega Archive]
[https://www.youtube.com/watch?v=fO7ih6Nu3MA No one would believe me and it wouldn't matter to whom it was said. There's gold in them there hills, I tell ya. I've seen it with my own eyes, I swear upon it - won't you lend your ears? What was once impossible is no longer so. Time makes a mockery of our grandest plans. I followed the river, as the trees advised, happening upon the grove of secrets. I'm not asking you to believe. Just wait and wonder.]  
----
----
=====10/25=====
[https://map.kenshi.wiki map.kenshi.wiki - Interactive Map]
[https://www.youtube.com/watch?v=azSsMG6h8k0 Sometimes the best thing to do is nothing]
 
[https://kenshidb.wiki kenshidb.wiki - KenshiDB, Asset Repository]
 
[https://jobboard.kenshi.wiki jobboard.kenshi.wiki - Job Runner Dashboard]
----
----
=====10/26=====
=12/25=
A brief explainer of what's being assembled...
[https://www.youtube.com/watch?v=bxjrcTXri1c Merry Christmas]
:A "Manifestor" admin panel (site), such that I can intercept and manage requests - specifically speaking about token authorization for incoming manifest uploads and spot actions for adjusting data on the backend.
=12/27=
:The Blazor API handles the site's actions, while the server itself hooks to OAuth for generating approved user tokens - this by enabling login capabilities via the app, granting wiki-sided permissions and then passing the requests on to the upload queue.
[https://www.youtube.com/watch?v=aXNL1NIQ1RM Makesyoumove]
:Reworking login (my own) to adhere to .NET environment practices, in preparation for setting up the public-private paradigm of the pipeline.
=12/29=
:Due to the (seeming) ease of DB connectivity and calling thereof... some time is being spent overhauling the job runner dashboard to revisit, improve upon and expand monitoring capabilities. This in part due to the upcoming mass pruning of the wiki... which will follow the creation of the pipeline and return to feature creation (notably, unification of the manifest management) for the map.
[https://www.youtube.com/watch?v=fJt3sWvjrmI Doldrums]
:Blazor (server) won't be rolled into the map - but Typescript will. PHP's usage will be restricted down to wiki-centric operations. There will be no further exploration of web frameworks, nor is there any need for toiling with C, Python, Go (and even C++). Instead, most needs can be met by C# - which is supplemented by the suite of standard web-server languages (HTML, CSS, JS, Typescipt, PHP, MySQL/MariaDB, Bash/Shell, systemd daemons, Nginx/Varnish, etc).
 
In the depths of navigating the Cloudflare ecosystem. Examining what can be done with workers & beyond for edge caching. Did you know serverless functions can be managed almost entirely externally? That took some mental model migration. An early look at setting up the smart switch for optimized request delivery & processing is the focal point right now. The task map for what's to be done with the map is largely settled. Doing it ideally means making that initial API request and page loading nice & quick. The wiki comes back into play as the map is "wired" to connect to the corresponding page targets (see the Stobe landmark). Various upgrades to Caravan and then the creation of the modding portals follows. Yes, a mass deletion campaign of the test templates will occur, because... the Wikipedia templates are  often overbuilt for our needs / inappropriate for the Citizen skin, etc...
 
=12/31=
[https://www.youtube.com/watch?v=tRem_0idavk Annual Revolution]
 
# Preliminary development of the Mappy {{emoji|1F60A}} extension. (Dedicated extension for consuming JSON and delivering wiki-ready maps for embedding in various formats... This extension will be released publicly, shared freely and built with a user-facing input & control schema.)
# Upstream-Downstream for Map development (adjusting version control conventions because of ongoing creation of styling & minification process).
# Cloudflare Workers, first on the map's upstream, the into the map's manifest pipeline, then applied as appropriate respective to the wiki ecosystem (I'm on the free tier!).
# Map development itself is a known quantity. Progress temporarily pinned for workflow adjustments.
# ''<big>Personal note</big>'', Q1 is extremely busy for me. Most of the three months will be combatting the onslaught of snow and finishing up the projects wholly separate from these activities. The good news is I'm in a ''just as planned'' situation for those (mostly) and am really in a holding pattern until they resolve. Once they do, ramp to cruising altitude and maintain, because there's nothing else in the way any longer.
 
{{Center|'''SVGs reign supreme!'''}}
 
[[File:ColorfulMapLayers.png|frame|center|Colorful roads, borders, resources & weather layers.]]
 
[[File:RoadSmithv7.png|center|Road editor progress...Consumes polylines and allows editing thereafter.|1416x1416px|border|frameless]]
 
[[File:PaintingToolsPreview.png|frame|center|Painting & Planning tools for the map.]]
 
----
----
Update, decisions being made.
 
:Upgrade to 1.43.5 complete. Monitoring.
[[Category:Pages using center with no arguments]]
:SMW removed - an update from 5.1.0 to 6.0.0 would likely fix the depricated call - instead I'm opting for removal until warranted addition and experimentation with at a later point. '''Site feels faster?''' Keeping Cargo, PageForms, etc - because they have reasonable potential.
[[Category:Pages using center with unknown parameters| Prd]]
:Adding OAuth to adhere to obligatory practices for establishing the secure data flow - need legitimate bearer tokens for proper authorization routine. As per analysis of AWB -  works for me, works for you, whatever it takes to get us there.
 
:More extensions will go over time. The wiki may be unstable, because I'm back to breaking things, and I can summon it from the grave whenever I please. Cloud-external backups have been running for quite some time, with both DB & total server iterations available.
=Next Steps=
:Followup - fuck yeah it's faster. VROOM!
 
:OAuth functional, consumer registered, DataTools being connected for external login purposes. Yey!
'''1. DataTools'''
:Citizen updated to latest, 3.9.0.  
:A. Building Locations (Done)
:Updates on the DataTools delivery system, Manifestor pipeline and refinements to the wiki's special page UIs to follow.  
:B. Feature Locations (Done)
:C. Road Layout (Done)
:D. Biomes (...) (Done)
:E. "Anything else"
:F. "Assets" (data map)
:// Separated concerns.
:G. Dialogue Packages (Done)
:H. Dialogue(s) (Done)
:I. Dialogue Lines (Done)
:J. Dialogue Actions (50%)
 
'''2. IMap'''
:A. Painting & Planning (Done, v1 pinned)
:B. Help & Tooltips (Tested, modestly implemented, further tweaks & proliferation)
:C. Power Ranks & World History (50%)
:D. Advanced Overlays (In progress.)
:E. Town Layouts, Landmarks, Road Network and Biomes. (Biomes done.)
:F. Equipment Locker (12/2, 50%)
:G. Main Modal Window (4 migrated)
:H. Light/Dark Theming
:I. Right menu additions (states, campaigns).
:K. v2 Data Processing (12/5+)
 
'''3. Caravan'''
:A. Proper Page Declaration & Separation
:B. Painting & Placements Import/Export
:C. Landing Page
:D. User Manifest Manager
:E. Final Manifest Additions
:F. Thin Proxy Discussion
'''4. Manifestor'''
:A. KDB Backend Test
:B. MapOrchestration
:C. Map's v2 Endpoint
:D. Global Action Log
:E. 2FA Logins
:F. PluggableAuth, OpenID Connect & OAuth 2.0 private access
'''5. World Studio'''
:A. See after completion of map segment. Task Map B.
 
'''6. SDK'''
:A. Pinned due to ongoing workflow change. Task Map B.
----
----
=====10/27=====
'''Continuing Education'''
[https://www.youtube.com/watch?v=GwPhmsazh4c It's not 2018 anymore. Better shape up!]
:''Bash''
----
::https://www.youtube.com/watch?v=Sx9zG7wa4FA
====10/29====
:''nginx''
[https://www.youtube.com/watch?v=Q-9DcFVLDYs If only you knew.]
::https://nginx.org/en/docs/beginners_guide.html
----
:''Varnish''
===10/30===
::https://vinyl-cache.org/docs/6.0/
[https://www.youtube.com/watch?v=MSb_31SUEXE Let me show you.]
:''SVGs''
----
::https://www.svgrepo.com/tools/
==11/1==
:''JSON''
:胡​麻​を​擂​る
::https://www.json.org/json-en.html
:[https://www.youtube.com/watch?v=P7_CjV22Ibw Nothing is out of reach.]
::''Personal note'', almost the entire site and external tooling operate based upon generation and exchange of JSON. It is, much like SVGs, utterly critical to how this site and the rest of the ecosystem operates.
:Today I completed wiring together what is the fundamental login flow (for a C# implementation) of passing MediaWiki user credentials (through a Blazor form), acquiring conditional (as sought) authentication - permitting now secure access to be rolled out to any aspect of the server, granted by wiki via a user's existing credentials, i.e., a preliminary SSO framework.  
:''C# (.NET and Beyond)''
:This system, being largely transferable, is being emulated within external data tools (different request) for recreation of the authentication, additional authorization access and finally a packaged delivery mechanism for transfer to the server.
::https://learn.microsoft.com/en-us/
:First comes the site-centric pipeline development for the already established access point.  
::https://learn.microsoft.com/en-us/dotnet/csharp/
----
::https://learn.microsoft.com/en-us/dotnet/?view=aspnetcore-10.0
=11/2=
::https://learn.microsoft.com/en-us/openapi/
:Login, logout, cookie management thereof and, more broadly, handling Blazor sites in a static & interactive render modes is a lot clearer now. Because Blazor demands certain practices it can be framed as let's say "getting to 95% easy, fixing up that last 5% an excursion into modern documentation".  
::https://learn.microsoft.com/en-us/visualstudio/?view=visualstudio
:Focusing on the data stream, server viewer & request+result logging.
::[https://devclass.com/2025/05/29/microsoft-designates-blazor-as-its-main-future-investment-in-web-ui-for-net/ Why I've chosen Blazor for 2026 and beyond]
:[https://www.youtube.com/watch?v=ca_cKWWzZgs You're welcome to keep pretending it isn't so.]
:Code Style
----
:::An aside. I am an advocate for minification and making source maps available. This comes loaded with an '''extremely opinionated''' code style that is wholly divergent from industry standard (AirBnB style) formats. Spatial specificity (interchangeable with line specificity and explicit spatial containment), is a kind of mixed format derived from JSON's presentation, reapplied across other web native languages (primarily HTML, CSS & Javascript). There are goofy reasons for its existence, which I'm happy to share!
==11/3==
:::# I do a significant amount of debugging in my browser. The interface appears to the right side of my screen. Tall, vertically focused, dense code is readable insofar as that it requires no horizontal scrolling. Logic can be dense so long as it's communicated.  
:Upload, individual & manifests (bundled) tested to completion, logs (local, from the Bundler's activity and for page activity to the Manifestor's DB from the web UI, EntityFramework is awesome btw) for action tracking, failure & success, etc. The web UI, insofar as the delivery and oversight, is complete. Some further UI development to the upload form(s) - browser & viewer to make life even easier. The direct pipeline being intact means the brief hiatus from the map has ended.
:::# I'm privy to split views and multiple windows, causing wide lines across multiple screens to require adjustment and constant panning to view.
:Having said that - the above is a stepping stone to the one-click bundle delivery - which is mostly a matter of providing the appropriately formed OAuth request & JWT, as stated before. Due to the planned transformative effect of the 2.0 build of the map and the unifying effect of an API controller centralized to the Manifestor, JSON delivery is a first step in a means to an end - moving towards PWA & offline features, ideally.
:::# Whitespace does exactly nothing '''for me'''. In fact, it's rather unhelpful! Minimizing whitespace and offsetting/replacing with new line breaks removes what feels like a rollercoaster across screen space.
:Taking time to revisit the map features in progress, namely the overlays (embedded and imported), painting & planning tools, and player marker management. Part of that will also entail breaking down the competing CSS patterns imposed by Leaflet & Pico - both compounded by the variable/experimental style choices made in creating the various elements. Style alignment will take place especially as those aforementioned features are implemented and tested out. The wiki UI's updates (specific to the map's special pages) will unfold during those feature developments - as a return to importing & exporting data (saved markers, drawings & notes) means the planned sum of elements for affecting the map are largely settled (and the UI may then settle into a functional-usable state).
:::# I have poor eyesight. Larger text helps - this inherently causes horizontal space to become a luxury when accounting for the aforementioned situations. Equalized line starts are really "no different" when brackets are provided new lines by default, meaning there's no hidden bracket ever lingering off-screen to the right.
:[https://www.youtube.com/watch?v=g5xrWjyMb8c 200, OK (Are you?)]
:::# When a block is functional and finished its format is '''irrelevant''' respective to what will occur in the minification process. Likewise, source maps can unwind any applied style and reformatted to a more "traditional" presentation for public viewing.  
----
:::# My preferences are not intended to be embraced by anyone - they're '''my''' preferences. Nevertheless, because I do intend to make the format "known" (in terms of having a public reference and a knowledge base to point to), so that it can be refined, iterated upon, have a thorough ruleset and be comprehended by myself and others... a doc site will be made to show and explain! Importantly, I'll be building in a transmutation tool for converting to and from the format (for my own purposes, though anyone would be welcome to use it).
===11/4===
 
:The "hardest" part is underway. Here are the environment endpoints in play...
[[Category:Pages using center with no arguments]]
#DataTools (Bundler ID & Package)
[[Category:Pages using center with unknown parameters| Prd]]
#Caravan API (Juggling act)
#Wiki Special Pages (UI & Controls)
#Live Map (Data on command)
#Blazor Web UI (Direct access)
#Blazor & ASPNET APIs (Indirect access)
:Switched into low gear to carefully scaffold identification and display (to the intermediary and controlling UIs) - with the Caravan API & Wiki UI being the requisite area for pinning down the long-term context management of the available manifests. UX and editing features are what then permit easier tagging & versioning as manifests cycle in (and supersede, not replace & remove) to the system.
----
====11/5====
:The overall design elements for the headless CMS (of sorts) are largely mapped out. Three controllers (Auth, Ingest & Read) cover the theoretical 95%... the web UI intervenes to handle the final 5%. Migration to the database format is slotted for following feature finalization.
:DataTools expanded to...
::Dialogue Package
::Dialogue
::(Dialogue)_Lines
::Feature (Locations)
::Building (Locations)
::Roads
::Biomemap
:[https://www.youtube.com/watch?v=8TuprykpqwA More to do]. Conceptually speaking, town layouts and landmarks. Need to make the map bigger? Need to make it load FASTER!
----
=====11/6=====
:Unsorted investigation list
::Jobboard 2.0 (4)
::KDB "1.0" (5)
:::Section 5 is where the CMS system shines. The old, pre-pipeline route was '''way''' too clunky. The upload methodology for the manifests can (and will) be replicated for finally tending to the specialized storage.  
:::Once again lending reason for being to the approval queue - as like with packages - requested uploads for assets & mods can be a wiki-sided point of engagement - ...connecting that what is the overlay storage for the map with that of the all-encompassing secure repo. Basically following the A1<-Map<->A2<->Repo<->A3<->Wiki<->A4 (inline text is TERRIBLE for mental models, lol, you know what I mean. See the relationship matrix chart(s).)
:::Please review the updated package tracking - some extractions continue to be on the edge and there needs to be a final decision on the town viewer. A pop-up view should work, right? It depends on how big the map can be & how fine the zoom can be set to...
:[https://www.youtube.com/watch?v=MhY7mVCIU6Q Seeker]  
----
====11/7====
[https://www.youtube.com/watch?v=Qd56-Q8hedI Token Sorcery]
----
===11/8===
[https://www.youtube.com/watch?v=8AJDYBn28Fg A day of API(ing).]
----
[https://www.youtube.com/watch?v=dKmuCBFPY3g Give people a chance]
----
[https://www.youtube.com/watch?v=cjZvFY6__qw Climb every mountain]

Latest revision as of 02:57, 1 January 2026

I can't stay long, whispered the butterfly, but I'll put a memory in your heart.


Socials
Discord - prd1847
Prdandsuch on Reddit
whatisaprd on X/Twitter
KenshiDBdotWiki@gmail.com

Realpolitik, World Revisions


Mega Archive


map.kenshi.wiki - Interactive Map

kenshidb.wiki - KenshiDB, Asset Repository

jobboard.kenshi.wiki - Job Runner Dashboard


12/25

Merry Christmas

12/27

Makesyoumove

12/29

Doldrums

In the depths of navigating the Cloudflare ecosystem. Examining what can be done with workers & beyond for edge caching. Did you know serverless functions can be managed almost entirely externally? That took some mental model migration. An early look at setting up the smart switch for optimized request delivery & processing is the focal point right now. The task map for what's to be done with the map is largely settled. Doing it ideally means making that initial API request and page loading nice & quick. The wiki comes back into play as the map is "wired" to connect to the corresponding page targets (see the Stobe landmark). Various upgrades to Caravan and then the creation of the modding portals follows. Yes, a mass deletion campaign of the test templates will occur, because... the Wikipedia templates are often overbuilt for our needs / inappropriate for the Citizen skin, etc...

12/31

Annual Revolution

  1. Preliminary development of the Mappy 😊 extension. (Dedicated extension for consuming JSON and delivering wiki-ready maps for embedding in various formats... This extension will be released publicly, shared freely and built with a user-facing input & control schema.)
  2. Upstream-Downstream for Map development (adjusting version control conventions because of ongoing creation of styling & minification process).
  3. Cloudflare Workers, first on the map's upstream, the into the map's manifest pipeline, then applied as appropriate respective to the wiki ecosystem (I'm on the free tier!).
  4. Map development itself is a known quantity. Progress temporarily pinned for workflow adjustments.
  5. Personal note, Q1 is extremely busy for me. Most of the three months will be combatting the onslaught of snow and finishing up the projects wholly separate from these activities. The good news is I'm in a just as planned situation for those (mostly) and am really in a holding pattern until they resolve. Once they do, ramp to cruising altitude and maintain, because there's nothing else in the way any longer.
SVGs reign supreme!
Colorful roads, borders, resources & weather layers.
Road editor progress...Consumes polylines and allows editing thereafter.
Road editor progress...Consumes polylines and allows editing thereafter.
Painting & Planning tools for the map.

Next Steps

1. DataTools

A. Building Locations (Done)
B. Feature Locations (Done)
C. Road Layout (Done)
D. Biomes (...) (Done)
E. "Anything else"
F. "Assets" (data map)
// Separated concerns.
G. Dialogue Packages (Done)
H. Dialogue(s) (Done)
I. Dialogue Lines (Done)
J. Dialogue Actions (50%)

2. IMap

A. Painting & Planning (Done, v1 pinned)
B. Help & Tooltips (Tested, modestly implemented, further tweaks & proliferation)
C. Power Ranks & World History (50%)
D. Advanced Overlays (In progress.)
E. Town Layouts, Landmarks, Road Network and Biomes. (Biomes done.)
F. Equipment Locker (12/2, 50%)
G. Main Modal Window (4 migrated)
H. Light/Dark Theming
I. Right menu additions (states, campaigns).
K. v2 Data Processing (12/5+)

3. Caravan

A. Proper Page Declaration & Separation
B. Painting & Placements Import/Export
C. Landing Page
D. User Manifest Manager
E. Final Manifest Additions
F. Thin Proxy Discussion

4. Manifestor

A. KDB Backend Test
B. MapOrchestration
C. Map's v2 Endpoint
D. Global Action Log
E. 2FA Logins
F. PluggableAuth, OpenID Connect & OAuth 2.0 private access

5. World Studio

A. See after completion of map segment. Task Map B.

6. SDK

A. Pinned due to ongoing workflow change. Task Map B.

Continuing Education

Bash
https://www.youtube.com/watch?v=Sx9zG7wa4FA
nginx
https://nginx.org/en/docs/beginners_guide.html
Varnish
https://vinyl-cache.org/docs/6.0/
SVGs
https://www.svgrepo.com/tools/
JSON
https://www.json.org/json-en.html
Personal note, almost the entire site and external tooling operate based upon generation and exchange of JSON. It is, much like SVGs, utterly critical to how this site and the rest of the ecosystem operates.
C# (.NET and Beyond)
https://learn.microsoft.com/en-us/
https://learn.microsoft.com/en-us/dotnet/csharp/
https://learn.microsoft.com/en-us/dotnet/?view=aspnetcore-10.0
https://learn.microsoft.com/en-us/openapi/
https://learn.microsoft.com/en-us/visualstudio/?view=visualstudio
Why I've chosen Blazor for 2026 and beyond
Code Style
An aside. I am an advocate for minification and making source maps available. This comes loaded with an extremely opinionated code style that is wholly divergent from industry standard (AirBnB style) formats. Spatial specificity (interchangeable with line specificity and explicit spatial containment), is a kind of mixed format derived from JSON's presentation, reapplied across other web native languages (primarily HTML, CSS & Javascript). There are goofy reasons for its existence, which I'm happy to share!
  1. I do a significant amount of debugging in my browser. The interface appears to the right side of my screen. Tall, vertically focused, dense code is readable insofar as that it requires no horizontal scrolling. Logic can be dense so long as it's communicated.
  2. I'm privy to split views and multiple windows, causing wide lines across multiple screens to require adjustment and constant panning to view.
  3. Whitespace does exactly nothing for me. In fact, it's rather unhelpful! Minimizing whitespace and offsetting/replacing with new line breaks removes what feels like a rollercoaster across screen space.
  4. I have poor eyesight. Larger text helps - this inherently causes horizontal space to become a luxury when accounting for the aforementioned situations. Equalized line starts are really "no different" when brackets are provided new lines by default, meaning there's no hidden bracket ever lingering off-screen to the right.
  5. When a block is functional and finished its format is irrelevant respective to what will occur in the minification process. Likewise, source maps can unwind any applied style and reformatted to a more "traditional" presentation for public viewing.
  6. My preferences are not intended to be embraced by anyone - they're my preferences. Nevertheless, because I do intend to make the format "known" (in terms of having a public reference and a knowledge base to point to), so that it can be refined, iterated upon, have a thorough ruleset and be comprehended by myself and others... a doc site will be made to show and explain! Importantly, I'll be building in a transmutation tool for converting to and from the format (for my own purposes, though anyone would be welcome to use it).