by Max Barry

Latest Forum Topics

Advertisement

Search

Search

[+] Advanced...

Author:

Region:

Sort:

«12345»

The Earldom of Fallsbury wrote:

It generally tasted unpleasant and is overused, just eat the cereal dry, it tastes better. Just have some cheese and such sometimes, and the occasional iced cream, that's more than enough.

Yeah, that's a good point. There are lots of cereals that are better dry. Chocolate Os for example. Yum!

It's time to play the music! I'm happy to say that I've completed this Muppet Show card collection.

All Wild Things wrote:It's time to play the music! I'm happy to say that I've completed this Muppet Show card collection.

Fantastic collection. Fun idea for a puppet region. Looking through all of those cards brings back so many memories! Lots of characters in there that I'd completely forgotten about.

Wild Panther wrote:Fantastic collection. Fun idea for a puppet region. Looking through all of those cards brings back so many memories! Lots of characters in there that I'd completely forgotten about.

There's a few I don't remember at all! I think there are some which were around for just a handful of episodes, and there may be contamination from series like Muppets Tonight rather than being strictly Muppet Show.

Oh - guess I should leave a copy of the magazine here


_ TWO CENTS

Woosh! Another year of inactivity just flew by. Which is why I'm partly responsible for the demise of NS Today. Real-life pressures and all that. Not that my real-life pressures are as ridiculous as this real-life story. While most of NS-related 2022 passed me by, I did manage to spot some technical happenings. And for those of you nervously watching out for snakes, that python is here.

But if you're just thinking, "I don't care about any of this. Why did I get a notification?", then this section is for you.

_ OLD NEWS

Early in 2022 I'd taken on the role of Chief Content Officer with NS Today. It had been a promising start, with good ideas for articles, and keen writers working on stories. With editing, quality controls, and chasing up people to complete tasks, doing it properly was very like having a job. Which should have been fun. Except I already had a full time job. And that day job was getting more demanding. Sadly, real-life won out over NS (it pays better), and I had to step back from NS Today.

I was far from being the glue that held NS Today together. The staff were all talented individuals who could continue perfectly well without me, as evidenced by Vulshine's third-in-the-series Linkroleplay constitution article, and SkyGreen's Linkpiece on Sanctum. However, people committing less puts more pressure on the rest, making it more difficult for them to continue. And so gradually NS Today came to a halt.

In November, Lewis (the co-founder, and the former Chairman and Chief Executive of NationStates Today) made this announcement on Discord:


@Notifications After a review of the activity over the last 3 months, and following a warning I gave to the Board, I have decided to stop providing funding for the NationStates Today website.

The annual cost to me is now over $80, which just isn't sustainable for a dormant project.

I have generated a static backup version of the website, which is now permanently available here: Linkhttps://nationstates.news/

NationStates Today should therefore be considered in a dormant state. Thank you for all of your support over the last few years. It's been fantastic.

If anyone is interested in taking over the project, please send me a message. I have the archives of the website, etc.

Thanks again :)

_ RECYCLED NEWS

You must have seen this in the mainstream press. But I loved this story, so I'm recycling it here. And if you're wondering what NSG thought, here's the place to start.



_ REPEAL OR NO REPEAL?

The premise for Repeal or No Repeal is pretty simple. A recently passed piece of legislation gets named, and you have to guess correctly as to whether it will be repealed before the end of the month.

It's quite some time since Daarwyrth's legislation, Protections During Territorial Transitions passed with 64.9% in favour! I asked if it would get repealed before 1st October. Well, the legislation outlived Daarwyrth, who CTEd in December! Hopefully issues author Daarwyrth will be back with us at some point in the future.

Next up is Jedinsto's Protections For Sexual Assault Victims, passed with an impressive 87.8% in favour. Will it remain protected from assault beyond the end of January? Place your bets!
Click to see if we're running a poll. Need to vote some more? Check out your eligible polls.

_ TECH TALK


In Tech news, NationStates is catching up with the 21st century. Wait, what? NS was created in the 21st century? Huh. Who knew? Anyway... there's now an official NationStates Announcements Channel for Discord. This way we can get pinged with the information that NS is broken rather than discovering for ourselves when we try to log in. That's a massive step forward, right? Right?

Talking of NS being broken, addicts were served some cold turkey for Christmas when the site went down. If you missed it, you'll be glad to know that photo-journalist Cataleenia had their camera handy and documented events. [WARNING: link contains full-frontal nudity of a moderator]

Back in August, the site took on five new Technical Moderators, namely Chingis (who, iirc, was largely responsible for infecting NS with a nasty dose of crabs, and whose Buzzy Bee ensured that Lily got pollenated across hundreds of regions each update), Esternial (of P2TM fame), Racoda (notorious card-sharp and industrial farmer), Roavin (whose typical post in Technical contains more knowledge than my entire brain), and United Calanworie [Aav] (whose technical magic kept NS Today hanging together).

Understandably these appointments caused some excitement (and possibly some overexcitement). Nearly everyone was positive about the news, except for one very weird threadjack. And while we've not seen much new yet the technical pipeline looks promising, with Aav letting us know suggestions for BBCode improvements are being looked at (and who wouldn't want those?), and Roavin gathering ideas of improvements that script authors would like to see.

Ah yes. And script authors may wish to look away. Coming up next is what might be best described as a script crayon scribble!

_ DISCUSS DISGUST

You poured the last of your favourite cereal from the packet into your bowl. You took the milk out the fridge and poured that in too. Then you noticed the milk was out of date. The milk *smells* like it's OK. But is it? How long past the Use By Date could the milk be before you'd throw out this cereal?

It's official - over half of us think that a morning sugar-rush outweighs the risk of an all-day toilet rush!

Ejoland, Insane cookie browser, All Wild Things, Tiger 237, Aleixandria, Wild Panther, Choccolate, Lower crimea, Natord dommaniaordia, Kharim, Jewish sealand, Vipru, The Hurricane, Doranbia, Happiville

Click to see if we're running a poll. Need to vote some more? Check out your eligible polls.

_ SNAKES AND HEADERS

I've been intending to learn a bit about the Python coding language for a few years now. It's getting used more and more at my work, so it's potentially useful for me there. While I'm not entirely new to coding (I learned a bit of Visual Basic on the job, and have played with Javascript in the past), professional Javascript developers have seen my code - and despaired. I imagine anyone familiar with Python will similarly cringe at my attempts here. If that's you, look away now! What follows is not a guide on how to code Python. It's just a warts-and-all record of the terrible hacks I'm doing to make some stuff work with NationStates.

To start, I visited Linkhttps://www.python.org/downloads/, and downloaded Python 3.11.1 (the latest version) onto my Windows laptop. The download included a basic development environment, and that's what I've been using to write some code. There will be much better IDEs out there that are free to download and use, but this one will do me for now.

After acing the traditional "hello world" project, I thought I'd move on to an NS themed script. Why do anything inbetween, right?

NationStates has strict rules about how our code / scripts can interact with it. Keep to those rules. They're linked from the Technical forum, and can be found with the API documentation: pages/api.html.

For my first NS Python project, I thought I'd keep it simple, and make a single API request to get some data about my nation. It could have been simple. It should have been simple. But I found a way to complicate it.

It started off not too bad. From the NS API documentation, I easily figured out that the URL that would return my nation info was cgi-bin/api.cgi?nation=all_wild_things.
If you click on that link, your browser should open a tab showing XML with my nation's data. But I don't want to be looking at the data in a browser - I want it in my app so that I can manipulate it in hideous ways.

Google told me that the "requests" Python module would allow me to make an API call. So I needed to install that module. I opened a command prompt, and typed "pip install requests". Astoundingly, it worked first time, and installed the module. So I then copied some example code from the net into a new Python script, and modified it to make it work for me:

import requests
   
def fMain():
    objResponse = requests.get(
        'https://www.nationstates.net/cgi-bin/api.cgi?nation=all_wild_things',
        headers={"User-Agent": "smalldickenergy@getalife.com"}
    )
    print("Status:", objResponse.status_code)
    print("Headers:", objResponse.headers)
    print("Text:", objResponse.text)

fMain()

The "requests.get" command opens up a connection to NS, sends my headers, assigns the response to my "objResponse" variable, then closes the connection again. I can then work with different properties of objResponse. NS asks that API users include a User-Agent in the headers so that they can contact you if your script is messing with the site. If you use this code, make sure you change the User-Agent to your own email address, and not Greta's.

The script outputs three attributes of objResponse. "Status" is the LinkHTTP status code. If the API request works properly, I should get status code 200 back, indicating a success. If ever there's a problem with the API request, the status code should help indicate what went wrong. "Headers" are meta-info that NS has sent back about the API request. And "Text" is the XML data that I requested.

It's worth noting some of the coding habits that were beaten into me in the past. Different languages have different conventions. I generally ignore them, and stick with what I was taught. The function is called "fMain" instead of just "Main". The small-case "f" is a reminder that this is the name of a function. Similarly the variable "objResponse" gets prefix "obj" to indicate that it's some sort of object. I use variable name prefixes such as "int" for integers, "str" for string etc. This isn't recommended by Python, it's just what I do. In Python, you can change a variable's type from integer to string etc, so this habit may well backfire if I need to do something like set intRowNumber = "John".

The code worked. It brought back the data I wanted it to. Yes, the output format looked like garbage, but finessing that is a job for another day. So I reckoned that was a win. Except that the API call was synchronous.

Which needs an explanation. With a synchronous request, NS gets asked for the data. And nothing else happens until the data is returned and it gets processed. With an asynchronous request, NS gets asked for the data, the code can do some other stuff, and then when the data gets returned it gets processed. For a simple script like this, it makes no difference. And since NS is rate-limited to 50 API calls per 30 seconds, it probably makes little difference even for more complex code. But being bloody-minded, I wanted to figure it out. And figuring out how to do that was a bit of a headache.

I don't remember if I had to install the asyncio module, but I definitely needed to install aiohttp ("pip install aiohttp"). Then after much staring at examples, and trial-and-error, I came up with this code:

import aiohttp
import asyncio

async def fGet(objSession, strUrl, dictHeaders):
    async with objSession.get(strUrl, headers=dictHeaders) as objResponse:
        return objResponse.status, objResponse.headers, await objResponse.text()

async def fMain():
    async with aiohttp.ClientSession("https://www.nationstates.net") as objSession:
        intStatus, objHeaders, strText = await fGet(
            objSession,
            "/cgi-bin/api.cgi?nation=all_wild_things",
            {"User-Agent": "smalldickenergy@getalife.com"}
        )
        print("status: ", intStatus)
        print("headers: ", objHeaders)
        print("text: ", strText)

asyncio.run(fMain())

That's a lot more code for the same output. In this one, function fMain creates an object objSession. This is the thing that connects to NS. Unlike the "requests" module, this can keep the connection open, which in theory makes it more efficient for making multiple requests. But I suspect that due to the rate limit, this won't improve any NS code performance. I also specified the base NS URL when defining objSession. It doesn't actually need specified at this point, but apparently it makes the thing even more efficient. And when I call my fGet function, I only need to send the second part of the long URL I'm wanting the data from.

I've got a separate function, fGet, which actually sends my URL and headers to NS and retrieves the data. The "status" and "headers" get sent back by NS almost straight away. The "text" takes a little longer, which is why the "await objResponse.text()" is needed. Because the information comes back at different times, this is possibly where a few milliseconds of efficiency gains can be made - the status & headers can get processed while waiting on the text. But I'll see what I can do with that another time.

_ NOTIFICATIONS

You will have received a notification if you have been mentioned somewhere in this dispatch, and have a tick in the "Dispatch mention" box of your subscriptions page.

Almost all nations mentioned will have:
- done something I felt was worth writing about in an article
- voted in a recent not-so-recent Where The Wild Things Are poll

If you would prefer not to be notified in future, your choices are:
- Stop doing cool stuff worth writing about
- Don't interact with our RMB or polls
- Un-tick in the "Dispatch mention" box of your subscriptions page

But hopefully you enjoyed this dispatch, and don't mind the ping.
If you would like to subscribe, please post the word 'Subscribe' on Where the Wild Things Are RMB, or send me a TG, and I'll take a note to ping you next time.

Thanks for subscribing!
Aleixandria, Davelands, Indusse, Jeeves Land, Napaqaq, Of altonianic islands, Pathoal, Ricore, Sky point, St Saratoga, The Georgeian Empire, The Orwell Society
Read dispatch

But what I actually came on to post were these balloon animals. Yeah, I know...

https://www.theguardian.com/artanddesign/gallery/2023/jan/07/balloon-animals-beyond-the-poodle-in-pictures

Hmm. Python project ideas. Maybe a Cards related one? You can get the API to show you the bids and asks that a nation has.
cgi-bin/api.cgi?q=cards+asksbids;nationname=all_wild_things
The XML looks like this:

<CARDS>
<ASKS>
<ASK>
<ASK_PRICE>0.05</ASK_PRICE>
<CARDID>4685708</CARDID>
<NAME>Meiru Melusine</NAME>
<SEASON>3</SEASON>
<TIME_PLACED>1672488152</TIME_PLACED>
</ASK>
<ASK>
<ASK_PRICE>0.10</ASK_PRICE>
<CARDID>4951148</CARDID>
<NAME>Aya Shameimaru-</NAME>
<SEASON>3</SEASON>
<TIME_PLACED>1673461848</TIME_PLACED>
</ASK>
</ASKS>
<BIDS/>
</CARDS>

There's a forum thread that you're allowed to use to advertise cards for sale. It must be possible to write a helpful python script. The script couldn't post to the forum (against site rules), but it could write the text, which would then be manually posted.

I have a number of puppets that are selling cards. So I could use the API to find all the cards I have Asks on.

The API returns the name, card ID, season, ask price, and a timestamp. So the output could be a list of nation names (hyperlinked to the card's page using the card ID and season), with a note of the ask price. Like this:

[URL=https://www.nationstates.net/page=deck/card=4685708/season=3]Meiru Melusine[/URL], 0.05

Meiru Melusine, 0.05

Or maybe in a table for neatness.

With an extra API call per card, you can get some additional info, like rarity, and market value.
cgi-bin/api.cgi?q=card+info+owners;cardid=4685708;season=3

<CARD>
<CARDID>4685708</CARDID>
<CATEGORY>common</CATEGORY>
<FLAG>uploads/meiru_melusine__326074.png</FLAG>
<GOVT>Inoffensive Centrist Democracy</GOVT>
<MARKET_VALUE>0.01</MARKET_VALUE>
<NAME>Meiru Melusine</NAME>
<OWNERS>
<OWNER>nomomo</OWNER>
...
<OWNER>endryu</OWNER>
</OWNERS>
<REGION>A Bloodred Moon</REGION>
<SEASON>3</SEASON>
<SLOGAN>God, Homeland, Liberty</SLOGAN>
<TYPE>Republic</TYPE>
</CARD>

That could be a nice extra.

And of course, a bot that posted WILD LIFE to embassy RMBs could be handy. I made an RMB bot in the past, but the code got lost when my last laptop died.
Because the code would do private nation actions, it would need to authenticate.
The secret API command is still not documented, but hidden in plain sight on the forums.
Note to self (like this whole thing isn't a note to self?) - Might need to use an http POST command instead of GET, and also some encoder to handle space characters etc

I've figured out the easy bit for the Cards project, which is the formatting of the API results.

Get my Future,0.10
Yukiko Kanzaki,0.05

The next challenge is to run this for multiple puppets, while staying in the Rate Limit.

Awesome history dispatch complied by Libertia-Columbia:



You can help out by suggesting additional history resources for me to add to this dispatch! Feel free to TG me any of these resources.

I am also specifically looking for resources on the following, which would be very helpful and greatly appreciated if TG'd to me.



This dispatch is a repository of useful resources on the history of NS gameplay and its various regions. This is a continuous work-in-progress and will be updated over time. If you find this dispatch helpful, feel free to give it an upvote.

If you wish to suggest any further NS history resources or would like to suggest corrections to this dispatch, please telegram Libertia-Columbia.

General


General Resources

The Compendium: The NationStates History Book
By Lavenza

LinkThe Library of Spurned Knowledge

LinkHistory of NationStates
By The Bruce

NS History: You've Got Questions, We've Got Answers
Forum thread, started by Goobergunchia

NS Gameplay History
By Ananke II

Death & Denial: NationStates In Its Twentieth Year
By Unibot III

The Reference Library
By All Wild Things
(Contains a section on NS history)

NS History Resources
By All Wild Things

Newspapers

Newspapers can be useful resources for uncovering past historical events on NationStates, as well as the perspectives of players surrounding those events. Note that this section only contains newspapers which directly address NS gameplay, and does not contain newspapers only addressing roleplay, IRL politics, NS cards, or other non-GP activity.

The NewsStand
Compiled by All Wild Things
(Regularly updated compilation of recent NS news stories + archive of older NS newspapers)

LinkInternational NS News (Linkarchived)
(Old NS news site)

LinkNS Today
(Current NS news site)

The Gameplay Magazine
Gameplay-wide newspaper

The Rejected Times
Regional newspaper from The Rejected Realms

The Northern Lights
Regional newspaper from The North Pacific

The North Star
Regional newspaper from The North Pacific, focused specifically on intra-regional activity

The Red Standard (archive)
Regional newspaper from The Communist Bloc

LinkEuropeian Broadcasting Corporation (EBC)
Regional newspaper from Europeia

The Wolfist Tribune
Regional newspaper from Lone Wolves United

WILD LIFE (archive)
One-man operation from All Wild Things

Curious Observations
One-man operation from Roavin

Specific Gamewide Events

The Drewpocalypse: A Retrospective
By Reventus Koth

Link2004 NationStates Global Summit on Raiderplay and Defensive Operations
Compiled by Jakker

Defenders Coup Stargate
By All Wild Things
(Article in issue of Wild Life, scroll down to see article)

BoM in Balder: Operation Ragnorak
By Quebecshire
(Note: potential pro-defender bias)

TNP Blackmail Scandal: As It Unfolded
By Libertia-Columbia (me!)

World Assembly

Passed General Assembly Resolutions
Compiled by Imperium Anglorum

Passed Security Council Resolutions
Compiled by Lord Dominator

WA Archives

Condemning The Communist Bloc: A Recurrent Bad Idea
By Mechanocracy

Statistics

World Assembly Trends
By Refuge Isle

Feeders


All Feeders

History of The Pacifics
By Mammothistan

LinkHow Should You Govern a Super-Region?
By Bannus, God of Irony

The Pacific (TP/NPO)

The Extended Guide, Part Two: The New Pacific Order
(contains a brief section on the history of NPO)

The Anatomy of the Coup: How Francos Spain Won
By Unibot III

NS Gameplay History
By Ananke II

Early Chronology of The Pacific's Delegacy, Pre-Francos
By Unibot III
(Scroll down to a little to find this section)

Francos Spain's Autobiographical Account of the History of The Pacific
By Francos spain
(long RMB post)

Historically Significant Documents

Proper Francoist Thought
By Gnos
(LinkAlternate link)

LinkThe Great Pacifican Lie
By Unistrut
(ADN rebuttal of Proper Francoist Thought)

LinkPrinciples and Politics
By Eurosoviets

LinkThe NPO's Retort
By A mean old man

The North Pacific (TNP)

LinkThe Laws of the North Pacific

Anatomy of the Coup II: Attack of the Puppets (The Invasion of The North Pacific)
by Unibot III

List of TNP Delegates
By Hulldom

NS Gameplay History
By Ananke II

Explanation of the 2008 TNP Coup
By Naivetry

LinkSeries About International NS Politics (TNP, LAZ, TRR, TEP)
By Wealthists/The Free Confederates

TNP Blackmail Scandal: As It Unfolded
By Libertia-Columbia (me!)

Historically Significant Documents

The Independent Manifesto
By The Northern Light

On Alignment
By The Northern Light

Statement On Continued Interregional Peace
By Hulldom
(Formation of Pax Polaris Occidens between TNP, NPO, and TWP)

Taking A Stand
By Chipoli
(Response to joint TCB-BoM deltip of TNP)

To War
By Kaschovia
(2023 Declaration of War on TCB and BoM)

The South Pacific (TSP)

LinkTSP Elections Archive

Laws of The South Pacific
by Coalition of the South Pacific

LinkList of delegates of the South Pacific

LinkList of prime ministers of the South Pacific

LinkOnline Rulings Consultation System

LinkList of Local Councillors

The East Pacific (TEP)

Anatomy of the Coup III: TEP, the Early Days
By Unibot III

LinkThe Story of the East Pacific
By Nociav

The Fedele Coup
By Nociav

LinkPortraits of Delegates
By Zukchiva

LinkSeries About International NS Politics (TNP, LAZ, TRR, TEP)
By Wealthists/The Free Confederates

LinkHistory of the Imperial Occupation of The East Pacific
By Ramaeus

LinkTwo Wars in TEP?
From GNN World News

Historically Significant Documents

The West Pacific (TWP)

LinkThe History of the West Pacific
By Biteland and Chainik

Index of the Delegates of The West Pacific

History of the Delegacy of The West Pacific
By All Good People

LinkShort Lived West Pacific Dominion Crumbles!
By Ketoprofen & The Red Factions

LinkThe West Pacific Falls!
By Durkadurkiranstan

Hypocrisy in the Feeders - Part One
By Meteor showers

Sinkers


Lazarus (LAZ)

LinkLazarus Historical Records

LinkLazarus Legislative Library

LinkRecord of Delegates
Compiled by New Rogernomics

LinkRecord of Delegates by Era
Compiled by New Rogernomics

LinkList of Speakers of the Assembly
Compiled by Wang Yao

LinkSeries About International NS Politics (TNP, LAZ, TRR, TEP)
By Wealthists/The Free Confederates

LinkDen Takes Lazarus
(Article from TNP's newspaper's blog from 2005 which provides insight into early Lazarus)

LinkQ&A With Spec, Former Lazarene Delegate

Osiris (OSI/OFO)

LinkOsiran Historical Library

LinkOsiran Body of Records
Compiled by Malphe II

Osiris, Government Records
By Cretanja

Osiris, Pharaohship Records
By Cretanja

Something Stirs: The History of Early Balder & Osiris
By Unibot III

LinkOsiris: Past and Future - Observations and Inferences on Regional Dynamics
By Todd McCloud

LinkBanjecting Biyah and Destroying Dali: The Story of Operation Phoenix
By Reventus Koth

Balder

Historical Delegates, Vice Delegates and Statsministers of Balder
by North East Somerset

Something Stirs: The History of Early Balder & Osiris
By Unibot III

The Rejected Realms (TRR)

LinkThe Library of Spurned Knowledge

LinkList of Governments of the Rejected Realms

LinkTRR Hall of Fame

LinkThe Hall of Delegates

LinkMilitary Blunders: Nationstates
By Kandarin

LinkSeries About International NS Politics (TNP, LAZ, TRR, TEP)
By Wealthists/The Free Confederates

Early Chronology of TRR's Delegacy
By Unibot III

Europeia-TRR Spying Incident: As It Unfolded
By Libertia-Columbia (me!)

Warzones


All Warzones

A Warzone History, through Dispatches
Compiled by Domais

Raiders


All Raiders

LinkRaiding Museum

DEN

The History of the DEN
By General knot

LinkThe Official DEN History Book
By Jakker

Historically Significant Documents

LinkDen Takes Lazarus
(From TNP's newspaper's blog)

The Brotherhood of Blood (TBoB)

LinkTBoB History
By Gerzam

LinkKnown TBoB Conquests
By Avakael

History of the Brotherhood of Blood (along with FRA)
By Numero Capitan

LinkTBoB Blog

The Black Hawks (TBH)

The History of The Black Hawks
By Jakker, posted by TBH Commander

The History of The Black Hawks
By The Black Hawks Raconteur

The Brotherhood of Malice (BoM)

LinkThe Unofficial History of The Brotherhood of Malice
By Reventus Koth

Lone Wolves United (LWU)

A Brief Introduction to LWU
By Davelands
(contains some brief history of LWU)

LinkLWU History
By Anerastreia, reposted by Ever-Wandering Souls

Lone Wolves United's Year In Review of 2022
By DEER Publications

Historically Significant Documents

Defenders


The Founderless Regions Alliance (FRA)

History of the Founderless Regions Alliance (along with TBoB)
By Numero Capitan

The League (TL/LDF)

Lawbook of the Republic
Compiled by Quebecshire

LinkThe League Legal Compendium

Prohibitions Issued by The League
Compiled by The League Council Archive

LinkThe League Wiki Page
(contains a History section)

Consular Library of Precedents, Opinions, Interpretations, and Et Cetera
Compiled by Quebecshire

Concord

A brief history of Concord
By Fort Concord

Commemorating the Battle of Concord
By St Laurent

The Order of the Grey Wardens (TGW)

LinkHall of Historical Wardens
Compiled by Nakari

LinkSignificant Operations Record (The Big Ops List)
Compiled by Grea Kriopia

LinkTreaties of TGW

10000 Islands (XKI/TITO)

LinkHeadfirst Dive: XKI History
by Girlsandboys

LinkEarly History of TITO
by Markanite

LinkXKI Historical Archive Index
By Grea Kriopia

LinkXKI Historical Archive

LinkXKI Old Election Results

LinkHistoric Voter Turnout in the 10000 Islands
By Markanite

LinkHistory of Counter-Invasions in TITO (Draft)
By Grea Kriopia

Independent Militaries


Lily

Lily Hall of Fame
By Lily Publications Office

Imperialists


All Imperialists

Imperialism: Past and Present
By Onderkelkia

Historically Significant Documents

The Land of Kings and Emperors (LKE)

Emperors of The LKE
By Imperial Dispatches

Crown Princes and Princes Imperial of The LKE
By Imperial Dispatches

Imperialism: Past and Present
By Onderkelkia

The New Inquisition (TNI)

Historical Officials of The New Inquisition
By The new inquisition


Great Britain and Ireland (GB&I)

Historically Significant Documents

LinkGeneral Elections Electrify Region!
By Nil Nisi Clavis Deest (?)

Frontiers


All Frontiers and Frontierist Ideology

On True Frontiers
By Marim grunzy

On Wastelands
By Pauline Bonaparte

Community

Law Archive

Carcassonne

Coming soon...

The Wellspring

Coming soon...

Other UCRs (Large)


The Communist Bloc (TCB)

LinkList of Regional Leaders of The Communist Bloc
by Manndown

TCB Law Archive

TCB Legislative Committee Records

The Red Standard Archive
By Information of the Communist Bloc

Condemning The Communist Bloc: A Recurrent Bad Idea
By Mechanocracy

Historical RMB Activity
By The final horseman

Historically Significant Documents

The Case for Bloc Patriotism
By Mlakhavia

Anti-Fascism in the Frontiers: Why?
By Mlakhavia

On Declinement
By Mlakhavia
(TCB raid report on TCB-BoM deltip of TNP)

On Solidarity
By UFROE

Europe

Europe: A History
By Novgorod-Pskov

History of Europe
By Imperium Anglorum

Welcome to Europe
By InfoEurope
(contains brief section on history of Europe)

Europeia

[url=https://www.google.com]Placeholder until I find a solution to this bug

Compilation of Press Releases
Compiled by Europeia Dispatch Office

Europeia-TRR Spying Incident: As It Unfolded
By Libertia-Columbia (me!)

The Leftist Assembly (TLA)

The Leftist Assembly History Project: Episode #1 - The Great Split
By Cedoria

The Leftist Assembly History Project: Episode #2 - The Rise and Fall of The Leftist Union
By Cedoria

The Leftist Assembly History Project: Episode #3 - The Final Horseman's Coup
By Cedoria

LinkA Comprehensive History of The Leftist Assembly
By Llorens

LinkHistory of The Leftist Assembly (TLA Wiki)

LinkTLA wiki article on Llorens

Historical RMB Activity
By The final horseman

Refugia

Refugia Council Records
By Refuge Isle

Past Refugia Revised Statute Referendums
By Refuge Isle

Delegate Voting Records:

Augustin Alliance (AA)

Includes: Conch Kingdom, Lands End, Ridgefield, Cape of Good Hope

History of the Augustin Alliance
By Emiline

Historical Events in Conch Kingdom

History of Lands End

History of Ridgefield

History of Cape of Good Hope
(currently empty)

Thaecia

Thaecia Law Registry
By Thaecian dep admin

Press Releases from Thaecia
By Solittus

Thaecian Tribune Index
By Toerana V

Thaecia Population and WA Member Statistics
By Thaecian dep admin

Other UCRs (Small to Medium)


Gay

History of Gay
By LGBT Equality

Christmas

The Story of Christmas
By All Wild Things

North Korea (NK)

The abbreviated history of North Korea
By THE DEFENDER ALLIANCE

An abridged history of the Korean Peoples Army
By Zulanka in NK

Libertarian Socialist Confederation (LSC)

Guide to Elections in the LSC
By Free Twigland
(Contains sections on history of LSC)

Cry of Rebellion - All Issues Dispatch
By Cry of rebellion

Confederal Council - Activity Log
By Fachumonn

N-Day 7: LSC Recap
By Fachumonn

The Social Liberal Union (SLU)

LinkLibrary of Parliament

LinkPreconstitutional Period

LinkSLU List of Historical Periods

LinkCoup of December 2020

St Abbaddon

St Abbaddon: Hall of Records

Capitalist Paradise

LinkThe History of Capitalist Paradise, 2003-2010
By Afforess

Texas

LinkTexas History

LinkTexas Newsletters

Other UCRs (Historical)


Commonwealth of Regions

General History of the Commonwealth
By Klaus Devestatorie

Corrections to General History of the Commonwealth
By Kazaman
(Corrections to Dev's post, listed above)

The Communist Region (TCR)

Historical RMB Activity
By The final horseman

LinkList of history-related resources
By Belarusball

Democratic Socialist Union (DSU)

The Founding of The Democratic Socialist Union
By Atealia

Federation of Anarchist Communes (FAC)

FAC Archive
By Fac founder account

Greater Sahara

Greater Sahara Legislation Master Reference Guide
By Inner Kilvaka

History of Greater Sahara - Lave Deldederady: The Tyrant Delegate
By Acornesia
(pre-reunification Free Saharan bias)

Statement on Thwarted Invasion Attempt
By Inner Kilvaka
(pre-reunification Greater Saharan bias)

Operation Tenebrae Saharae: Dusk Falls on the Sahara



More history to be added...


Read dispatch

Time to play some alternative Hunger Games! Thanks to Dear Leader's wise policies, the supermarket shelf is unusually well stocked. What's for dinner this week? You choose in this poll!

All Wild Things wrote:Time to play some alternative Hunger Games! Thanks to Dear Leader's wise policies, the supermarket shelf is unusually well stocked. What's for dinner this week? You choose in this poll!

I weirdly really enjoy both pickled eggs and corned beef. But you can really only eat so much corned beef, given how salty it is. But I could toss down pickled eggs all day long.

Wild Panther wrote:I weirdly really enjoy both pickled eggs and corned beef. But you can really only eat so much corned beef, given how salty it is. But I could toss down pickled eggs all day long.

You are ... unique.
Every few years, when I'm drunk enough, I'll buy a pickled egg at the chip shop. And I'll remember why I never usually buy pickled eggs.
That said, I've never felt tempted to buy corned beef, no matter how much I've drank. So I guess I technically have a favourite?

So I'm playing around with "sched" module in Python. But I'm not sure it's a practical solution.
My thinking is that we're allowed 50 API requests to NS in 30 seconds.

If I set a scheduler to fire off a request every 0.6 seconds, it wouldn't work. The reason for that is: say the first request gets delayed by a couple of microseconds on it's way to NS. Then NS is similarly delayed in registering the request for a couple of microseconds. And then when the 51st request gets registered at NS, it looks like it's less than 30 seconds since the first. So it would look to NS like the rate limit is being broken.

A solution to that could be to record the timestamps when NS acknowledges that the requests have been sent. Then I can set a scheduler to send the 51st request exactly 30 seconds after NS acknowledged the 1st request. I think that's the maximum efficiency I can get. However...

I'd send my first 50 requests 0.6 seconds apart, so that I had exactly 50 in 30 seconds. That's all good.
But say my 1st request got delayed by as much as 10 seconds. Then my 51st request would get sent at 40 seconds after my first. And my subsequent 49 requests would get bunched into the next 20 seconds so as to maximise the rate limit. Then there'd be another 10 second gap, then a burst of requests, another 10s gap, burst of requests...

So although I'd still be in the rate limit, the frequency of requests would get more and more messed up the more requests I made. Probably it's not an issue until you're into thousands of requests. But the efficiency of that method is probably only worth it for thousands of requests - after all, a 1 millisecond efficiency only becomes a 1 second efficiency after 1000 requests.

If I was writing a high frequency trading algorithm for Goldman Sachs I'd keep on down this path. It would literally pay dividends! But for NS, I think I'm on a lost cause. I'm probably as well to go back to the vanilla "requests" module, and just block code execution for 0.6 seconds between requests. The code is then much more simple.

Or maybe stick with the asynchronous version, but just force 0.6 seconds between requests. That way the time spent processing results of one request shouldn't delay sending out the next. Hmm. I guess that choice is based on how complex the result-processing code is.

All Wild Things wrote:You are ... unique.
Every few years, when I'm drunk enough, I'll buy a pickled egg at the chip shop. And I'll remember why I never usually buy pickled eggs.
That said, I've never felt tempted to buy corned beef, no matter how much I've drank. So I guess I technically have a favourite?

You are obligated to try corned beef once, as a loyal citizen of the empire. Those weirdly-shaped Libby's cans come with their own bespoke can opening device that is very unintuitive to use. Which is fun. And I can't stress enough just how salty this processed meat product is. Save it for a big breakfast after imbibing the night before, maybe in a hash or just as a side to a big ole greasy spread.

After walking away from the asynchronous approach, this task became really simple.
I used the code below (but with a longer list of nations) to produce this table of Asks
I could speed the code up by 0.6 of a second, but having embraced inefficiency, I'm all in ;)

# Asks
# Version 1.0
# All Wild Things

# Finds all Asks offered by each of a list of nations,
# and outputs a string representing an NS Forum table.
# Takes approx 30 seconds for every 50 nations.

import requests                     # allows synchronous http requests
import xml.etree.ElementTree as ET  # ElementTree allows XML to be parsed
import time                         # allows "sleep" function

def fMain():
    # listNations lists all the nations whose "Asks" are to be found
    listNations = [
        "All Wild Things", 
        "All Mummified Things"
    ]
    # Start the string
    strOut = "[table]"
    # Loop through the nations    
    for strNation in listNations:
        # re-format the nation name so it can be used in a url
        strNation = strNation.replace(" ", "_").lower()
        # send a request to NS
        objResponse = requests.get(
            'https://www.nationstates.net/cgi-bin/api.cgi?q=cards+asksbids;nationname=' + strNation,
            headers={"User-Agent": "myaddress@gmail.com"}
        )
        # Look at the "Asks" in the returned XML
        objAsks = ET.fromstring(objResponse.text).findall("./ASKS/ASK")
        # Loop through the cards with Asks
        for objAsk in objAsks:
            # Add details to the string - a link to the card page, the nation name, the ask price
            strOut = strOut + ("[tr][td][URL=https://www.nationstates.net/page=deck/card="
                + objAsk.find("CARDID").text + "/season="
                + objAsk.find("SEASON").text + "]" 
                + objAsk.find("NAME").text + "[/URL][/td][td] "
                + objAsk.find("ASK_PRICE").text + "[/td][/tr]")
        # Rate limit is 50 requests per 30 seconds, so wait for 30 / 50 = 0.6 before next request
        time.sleep(0.6)
    # All nations have been checked, so output the string
    strOut = strOut + "[/table]"
    print(strOut)
    
fMain()
    

Wild Panther wrote:You are obligated to try corned beef once, as a loyal citizen of the empire. Those weirdly-shaped Libby's cans come with their own bespoke can opening device that is very unintuitive to use. Which is fun. And I can't stress enough just how salty this processed meat product is. Save it for a big breakfast after imbibing the night before, maybe in a hash or just as a side to a big ole greasy spread.

Really, no. I've eaten it in the distant past, and (probably) never again. My dad was one for eating it in a white roll with pickled beetroot. I'll admit to being like my dad in many ways, but in matters of gastronomy, no.

My mum ate a lot of weird stuff. She grew up in 1950s UK when rationing was still on. So she remembers the excitement of getting things like fresh oranges and bananas. And her Canadian relatives sending treat food parcels - dried banana chips, pineapple, coconut... The type of stuff you get in your granola was her idea of Christmas. They kept a jar of dripping (if you grill bacon, and scrape the fat off the grill pan after, that's "dripping". I suspect it wasn't just bacon fat went into their dripping jar though). And a special treat after school would be a slice of bread with dripping smeared across. I tried it once. Just the once. That said, if you fried the bread in that bacon fat, I'm up for a second slice.

Edit: lol - I just looked up a thing about corned beef. This was my favourite line:
[Corned beef's] "briny flavors are assertive, but not overwhelming, especially when balanced with earthy wedges of boiled cabbage and mild-mannered potatoes."

Accidentally came across this! I'm a fan

Greetings, as I noticed that there wasn't really a proper Guide to the use of the most powerful design tool this website has, here is my tiny but hopefully helpful guide to the tabeling.

First, let's start with what a table is:
A table is an arrangement of a data structure, consisting of rows and columns.
While it can be used in the classical way of being directly a table, there are many ways you can use it for that don't conform to such simple concepts, be it complete layouting, interactive panels and a lot of other things, it wouldn't be false to say they are one of the most powerful design tools NS has, despite their flaws, which I shall elaborate at a later point.

For the sake of presentation, and the code tag not working in Factbooks, I will deactivate the tags using Zero Width Non-Joiners, which are not depicted, but recognized by the site builder.

Now, have I awakened yer' interest? I'll now start with the basics and go deeper from there.


Now then, a table is created by using the Table tags [‌‌tabl‌e][/‌tabl‌e] and inside that, several Table rows with [t‌r][/‌t‌r] and inside those several table columns via [t‌d][/‌td].
For example, a basic 3x3 table would look like this in code:
[‌‌tabl‌e]
[t‌r][t‌d]1[/‌td][t‌d]2[/‌td][t‌d]3[/‌td][/‌t‌r]
[t‌r][t‌d]4[/‌td][t‌d]5[/‌td][t‌d]6[/‌td][/‌t‌r]
[t‌r][t‌d]7[/‌td][t‌d]8[/‌td][t‌d]9[/‌td][/‌t‌r]
[/‌tabl‌e]
Which would look like this:

1

2

3

4

5

6

7

8

9

Note that linebreaks inbetween the tags that aren't td are ignored, so they are useful in order to make it a bit more orderly to work with.

Now, ye might wish that maybe the header at the beginning maybe wasn't there, or maybe that the table was entirely invisible and didn't highlight when you hover over it with the mouse?
Fear not, because there are three style types!
First the Basic, depicted above!
Second [‌t‌ab‌l‌e‌‌‌=n‌oh‌ead‌er‌]

1

2

3

4

5

6

7

8

9

And third [‌t‌ab‌l‌e‌‌‌=plain], which I find the most convenient of them all.

1

2

3

4

5

6

7

8

9



And now the big ones, you remember the part where I talked about Layouting? This is achieved with the beloved tag that is [t‌d]!
The name of the way one can alter them is called span, both rowspan and colspan respectively, which allow you to make cells that stretch along the row and column. This is done by altering the tag like this[t‌d=c2] for cells that span the column and [t‌d=r2] for cells that span the row. Sadly, after my knowledge, making a cell that spans both rows and columns at the same time is currently not possible with NSBBcode.
Note that the replaced tabs have to be removed from the other cells instead of getting overwritten.
So, a 3x3 Table with Rowspan looks like this in code:
[‌‌tabl‌e=noheader]
[t‌r][t‌d=r3]1[/‌td][t‌d]2[/‌td][t‌d]3[/‌td][/‌t‌r]
[t‌r][t‌d]5[/‌td][t‌d]6[/‌td][/‌t‌r]
[t‌r][t‌d]8[/‌td][t‌d]9[/‌td][/‌t‌r]
[/‌tabl‌e]
Which would look like this:

1

2

3

5

6

8

9

While, a 3x3 Table with Colspan looks like this in code:
[‌‌tabl‌e=noheader]
[t‌r][t‌d=c3]1[/‌td][/‌t‌r]
[tr][td]4[/td][td]5[/td][td]6[/td][/tr]
[tr][td]7[/td][td]8[/td][td]9[/td][/tr]
[/‌tabl‌e]
Which would look like this:

1

4

5

6

7

8

9

However, these are ideally used with Table=Plain, as the highlighting is terribly buggy with rowspan employed, though for visualization the ones with highlighting are rather useful.

With this tool, one is empowered to create truly wonderful factbooks with many layouts, however, there are some disadvantages with the Nationstates implementation, which I shall list now.

  • Tables have automatic Padding enabled, even in the plain option, so trying to have a full artistic special table will require some play-around, for example my Ending Compass on the Onox Legion where I had to eventually measure the pixels in order to make the sides line up, but give up on the original idea of having it all snugly fit.

  • As mentioned before there is, as far as I know, no way to make a table cell both span columns and rows at the same time, which does hinder truly powerful design possibilities

  • As convenient as the table plain is, it sadly doesn't have a version with table borders, which can be undesirable designwise, though I did manage a plain table with a pseudoheader on the homepage by using Background-Block and Text tags.

Now that is all about the Tables of NS.
And remember: (ノ ゜Д゜)ノ ︵ ┻━┻

Read dispatch

All Wild Things wrote:
Really, no. I've eaten it in the distant past, and (probably) never again. My dad was one for eating it in a white roll with pickled beetroot. I'll admit to being like my dad in many ways, but in matters of gastronomy, no.

My mum ate a lot of weird stuff. She grew up in 1950s UK when rationing was still on. So she remembers the excitement of getting things like fresh oranges and bananas. And her Canadian relatives sending treat food parcels - dried banana chips, pineapple, coconut... The type of stuff you get in your granola was her idea of Christmas. They kept a jar of dripping (if you grill bacon, and scrape the fat off the grill pan after, that's "dripping". I suspect it wasn't just bacon fat went into their dripping jar though). And a special treat after school would be a slice of bread with dripping smeared across. I tried it once. Just the once. That said, if you fried the bread in that bacon fat, I'm up for a second slice.

Edit: lol - I just looked up a thing about corned beef. This was my favourite line:
[Corned beef's] "briny flavors are assertive, but not overwhelming, especially when balanced with earthy wedges of boiled cabbage and mild-mannered potatoes."

Worry not, I definitely don't blame you :P

Ah yes, the things we humans do during economic depression or otherwise tumultuous times... Because my grandparents grew up during the great depression, my father inherited much of their digested uncertainty, and so we wound up often eating in much the same way. Toast with "drippings" really struck a chord. We never kept a jar of it, though...that's actually not a bad idea. Pork fat does tend to make most things taste better. But we did often have toast with salted butter as a dessert. Another staple was either grits or creamed wheat, with butter and corn syrup over top. And yep, never take for granted fresh fruit. My grandfather taught me to eat the white fleshy underside of an orange peel after finishing the fruit, because supposedly there's good vitamins to be had in there.

All Wild Things wrote:Accidentally came across this! I'm a fan

That's a great resource, thanks. Nice to see the rationale spelled out so clearly. I browsed through their other dispatches, and they're a very creative individual.

"toast with salted butter as a dessert"
That's great! That reminds me tho - teddybears' picnics as a kid. My mum would butter a slice of cheap white bread, add sprinkles, then cut it into 16 little squares. And that was the "cake" that we shared with our teddies, and we served it up on toy plates.
A cunning woman, my mum, who would make enough "cake" for us to be distracted with our teddies whilst she ate a chocolate bar behind the kitchen door!

Subscribe,
And as always, you may post upon The Embassy’s RMB.

Greetings!
We moved here from TWP because this RMB has a very high level of intelligent posts.

The Lake Lands wrote:Greetings!
We moved here from TWP because this RMB has a very high level of intelligent posts.

Hello! Welcome to Where the Wild Things Are, where the burning question is:
How long can you hang from a tree by your fingertips?

Nice to have you, but be warned that the posts won't always be intelligent, and that there be times when there are literally months between posts.

Do you have other nations? It seems unusual for a brand new nation to move out here to the edge of the multiverse.

All Wild Things wrote:Hello! Welcome to Where the Wild Things Are, where the burning question is:
How long can you hang from a tree by your fingertips?

Nice to have you, but be warned that the posts won't always be intelligent, and that there be times when there are literally months between posts.

Do you have other nations? It seems unusual for a brand new nation to move out here to the edge of the multiverse.

Yes, we have several nations. Another reason this region is so appealing. We may not get around very often, and we hate missing numerous RMB postings.

Lower Slobbovia wrote:Subscribe,
And as always, you may post upon The Embassy’s RMB.

Thanks, that's kind of you. And nice of you to pop by! I'm amazed you find time in between all the embassy request clicking! Do you manage to visit many regions after the initial first contact?

All Wild Things wrote:Thanks, that's kind of you. And nice of you to pop by! I'm amazed you find time in between all the embassy request clicking! Do you manage to visit many regions after the initial first contact?

We get around to the Regions of special interest to us, or with renowned Founders (Sometimes we even send a puppet like The Lake Lands).

«12345»

Advertisement