Skip to content

Latest commit

 

History

History
2484 lines (1807 loc) · 114 KB

2023-12-27.md

File metadata and controls

2484 lines (1807 loc) · 114 KB

< 2023-12-27 >

there were a lot of events recorded by gharchive.org of which 2,649,822 were push events containing 3,533,757 commit messages that amount to 197,084,655 characters filtered with words.py@e23d022007... to these 54 messages:

Wednesday 2023-12-27 00:05:13 by Aquizit

[ICEMETA] Fixes Hermit and Walker Spawns (Walkers disabled in config see PR text) (#21065)

  • name + config fixes

  • fix walker - disabled, redo hermit flavor text

  • fuck your stupid uncapitalized t


Wednesday 2023-12-27 00:14:52 by wilbertpol

msx2_flop.xml: Added 33 items (32 working) and replaced five items with better dumps. (#11863)

  • Replaced Disc Station Deluxe 1 (Japan) with a better dump. [file-hunter]
  • Replaced Poyo Poyo Life (Japan) and Poyo Poyo Life II (Japan) with better dumps. [file-hunter]
  • Replaced Pumpkin Adventure - The Quest for the Holy Grail (Netherlands) with a better dump. [file-hunter]
  • Replaced Pumpkin Adventure II (Netherlands) with a better dump. [file-hunter]
  • Removed hacked images Pumpkin Adventure - The Quest for the Holy Grail (Netherlands, alt) and Pumpkin Adventure - The Quest for the Holy Grail (Netherlands, alt 2).
  • Removed User Disk from Pumpkin Adventure III (Netherlands).
  • Removed Puyo Puyo (Japan, alt) and Puyo Puyo (Japan, alt 2) as they contain saved data.

New working software list items (msx2_flop.xml)

Disc Station Special Natsuyasumi-gou (Japan) [file-hunter] Outlaw Suikoden (Japan) [file-hunter] Kibun wa, Pastel Touch!! Abunai Gakuen Hen (Japan) [file-hunter] PIAS - Hikisakareta Seishun (Japan) [file-hunter] Private School (Japan) [file-hunter] Puzzle Game Nadia Special (Japan) [file-hunter] Puzzle - Große Meister (Germany) [file-hunter] R・SYSTEM Ketteihan (Japan) [file-hunter] R・SYSTEM 3.2 (Japan) [file-hunter] OK Fred (Netherlands) [file-hunter] Panic Shoot [file-hunter] Petiso Game (Spain) [file-hunter] PH.Sound Collection (Japan) [file-hunter] Phi (Japan) [file-hunter] Pig's Quest (Netherlands) [file-hunter] Piles (Netherlands) [file-hunter] Pixess (Netherlands) [file-hunter] Point Crisis [file-hunter] Poker Dolls [file-hunter] Poyo Poyo Life 3 (Japan) [file-hunter] Push'em [file-hunter] Puzzel (Netherlands) [file-hunter] Puzzle 9.64 (Japan) [file-hunter] Puzzlemania (Netherlands) [file-hunter] Quadromania MSX2 [file-hunter] Quiz! Atatchatte 25% (Japan, 1996-12-26) [file-hunter] Quiz! Atatchatte 25% (Japan) [file-hunter] RCCR - RC Car Race (Japan) [file-hunter] Realms of Adventure (Netherlands) [file-hunter] Retaliator (Netherlands) [file-hunter] Riot (Japan, alt) [file-hunter] Ruby & Jade [file-hunter]

New software list items marked not working (msx2_flop.xml)

Disc Station Special Haru-gou (Japan) [file-hunter]


Wednesday 2023-12-27 00:20:42 by Ben Dornis

Updating: 12/27/2023 12:00:00 AM

  1. Added: - Don't Put All Your Apples In One Basket (https://skogsbrus.xyz/dont-put-all-your-apples-in-one-basket/)
  2. Added: The 5 Stages of Vim: A Humbling Experience (https://scottmckendry.tech/posts/vim-humbling/)
  3. Added: Trying hard or: How I learned to love Chess.com's freemium puzzles (https://spyq.bearblog.dev/trying-hard-or-how-i-learned-to-love-chesscoms-freemium-puzzles/)
  4. Added: The case for a pipe assignment operator in R (http://hughjonesd.github.io/case-for-pipe-assignment.html)
  5. Added: The story of my weekend project - A complete dumpster fire, and everything I learnt from it. (https://dhravya.dev/posts/dumpplace-story)
  6. Added: The Awesomeness of Lists | Noghartt's garden (https://www.noghartt.dev/the-awesomeness-of-lists/)
  7. Added: My experience with the Kindle Scribe (https://thatxliner.github.io/blog/posts/my-experience-with-the-kindle-scribe/)
  8. Added: Autogenerating Stoic Quote Images for IG Content (https://www.amanazad.xyz/autogenerating-stoic-quotes-for-ig-content/)
  9. Added: Understanding Parquet, Iceberg and Data Lakehouses at Broad (https://davidgomes.com/understanding-parquet-iceberg-and-data-lakehouses-at-broad/)
  10. Added: Using linear programming to assess spatial access (https://andrewpwheeler.com/2022/07/01/using-linear-programming-to-assess-spatial-access/)
  11. Added: Nintendo Switch’s iGPU: Maxwell Nerfed Edition (https://chipsandcheese.com/2023/12/23/nintendo-switchs-igpu-maxwell-nerfed-edition/)
  12. Added: Amelia Wattenberger (https://wattenberger.com/thoughts/evolving-the-infinite-canvas)
  13. Added: Scene creation engines and apprenticeships (https://www.henrikkarlsson.xyz/p/scene-creation-engines)
  14. Added: Evaluating Product Managers – We help you create successful product culture and process (https://jpattonassociates.com/evaluating-product-managers/)

Generation took: 00:19:04.3269362


Wednesday 2023-12-27 00:25:29 by forest2001

Almayer AntiTheft measures. (#5100)

STOP STEALING SHIT

About the pull request

Adds a subtype of reinforced hull for the Almayer that changes between indestructible hull and normal reinforced wall after hijack. Uses this wall type around uniform vendors, the separation wall in the firing range and around engineering storage.

Explain why it's good for the game

Having the engineering storage looted at round start is just silly avoidance of the "don't deconstruct the whole ship without a reason" rule.

Testing Photographs and Procedure

I have verified that all works as intended, the walls cannot be harmed prior to hijack, and shutters function as advertised.

Changelog

🆑 add: Added a new almayer hull type (heavy reinforced) which is indestructible by normal means until after hijack collision. add: Added a new subtype of shutter that automatically opens or closes depending on security level. maptweak: Maps both of the above around the engineering storeroom. Also adds the walls between the firing ranges and around uniform vendors. maptweak: Manual control button for shutters over engineering storage in the CEs office. code: Changes hijack structural changes (walls/windows/windoors/ladders) to use signals. /🆑


Co-authored-by: fira [email protected]


Wednesday 2023-12-27 00:31:50 by Mankaran Rooprai

Female vs. Male heart problems, chest pain values, fasting blood sugar values


Wednesday 2023-12-27 00:36:26 by Iajret Creature

[MIRROR] Fixes Holy Water performing water metabolization twice, giving more blood and making you less drunk [MDB IGNORE] (#25786) (#1248)

  • Fixes Holy Water performing water metabolization twice, giving more blood and making you less drunk (#80440)

About The Pull Request

Fixes Holy Water taking double the time it's supposed to take to deconvert, and fixes it metabolizing out at twice the normal speed.

Fixes Holy Water performing water metabolization twice, giving more blood and making you less drunk

Why It's Good For The Game

lmfao this is why deconversion for cult sucked so bad

Changelog

🆑 fix: Fixes Holy Water giving you more blood and making you less drunk than water normally does. /🆑

  • Fixes Holy Water performing water metabolization twice, giving more blood and making you less drunk

Co-authored-by: SkyratBot [email protected] Co-authored-by: Iamgoofball [email protected]


Wednesday 2023-12-27 00:47:50 by cuberound

lowers DS sentrygun to 200 from 500 (#5225)

About the pull request

lowers price of DS installed sentrygun to 200 from 500.

Explain why it's good for the game

Based on git lense, the cost of 500 points has been fixed for at least 6 years ( from what I understand form the moment the fabricator was added?). The sentryguns are not worth 500 points at the slightest, from dozens of rounds of experience I can say that the fire off 20 shots max before they die ( unless you do some DS hold after hijack, but that hardly counts). The main issue anyone has with it is when you install 3 of them in south part of DS and I am willing t take suggestions how to adress this issue, but it is minor one, as xenos never realy have to fight them as they basicly get to shoot only while marines are pushed into DS and are about to evac and queen can hijack without getting anywhere near them ( or can just let marines evac and then take out the sentryguns with ease after she calls the ship back down). More marines evacing thanks to sentrguns might make the hijack more enjoyable for both sides. Also lowering the price will only mean you see sentryguns installed on ds more often, buying 20 of them will have no bigger effect then 7.

Testing Photographs and Procedure

Screenshots & Videos

Put screenshots and videos here with an empty line between the screenshots and the <details> tags.

Changelog

🆑 balance: DS installed sentrygun price lowered to 200 /🆑

Co-authored-by: Zonespace [email protected]


Wednesday 2023-12-27 01:04:17 by SkyratBot

[MIRROR] New Quirk! Cyborg Lover! [MDB IGNORE] (#25762)

  • New Quirk! Cyborg Lover! (#80023)

About The Pull Request

This PR adds a new quirk for people, who want to play as silicon-friendly crew.

Basic quirk info:

  • It costs 2 points.
  • It has minor additions to person's mail goodies list (cable coils, basic cells, etc).
  • It has a few simple mood events, when you pet a borg or being touched/hugged by borg.

Why It's Good For The Game

I think it is nice to have a chance to play as robo-creep person who loves borgos.

Changelog

🆑 add: Added new quirk: Cyborg Lover! /🆑


Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

  • New Quirk! Cyborg Lover!

Co-authored-by: SSensum [email protected] Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>


Wednesday 2023-12-27 01:08:51 by Imaginos16

Reworks The Visuals Of Independent And Nanotrasen Captains (#2453)

About The Pull Request

Does what it says in the title. This is a demented PR that touches a lot of things, but its main benefit is that now regular independent captains, cowboy independent captains, and nanotrasen captains have a unique identity.

Of those changed, it includes:

  • The Nanotrasen Captain (parade)

image

  • The Nanotrasen Captain (regular)

image

  • The Independent Captain (regular/parade)

image

  • The Independent Captain (western)

image

The PR also axes a bunch of unused, or frankly quite basic lieutenant outfits that were nothing more than set dressing with not much substance behind them. The roles were not removed for now, and they have appropriate outfits as a placeholder pending a full removal.

This also means that the Head of Personnel was slightly touched up, mostly by having a coat and hat similar to the western captain's when appropriate. The role itself is pending a full visual rework for later that is beyond the scope of this PR.

Speaking of removals, this also means that captain outfits/roles that were there as a legacy of removed ships, were finally axed for good. Goodbye deserter captain for Riggs variant number 4, you will not be missed.

This PR also touches several (a lot) of maps, mostly adding/removing outfits that were either missing, or didn't fit with the dress code of the vessel.

Also the PR fixes an oversight by @MarkSuckerberg by making the BYOND version warning an actual warning, instead of an error when compiling. Etto bleh.

Why It's Good For The Game

Visual cohesion is important, and dear fucking god if I see one more independent western captain not wearing the duster because it wasn't in the ship, I will weep, and my weeping will cause a biblical deluge.

Changelog

🆑 PositiveEntropy imageadd: Outfits for independent and Nanotrasen captains have been violently reworked. /🆑


Wednesday 2023-12-27 01:11:06 by generic name guy

Did i ever tell you what the definition of insanity is?

Insanity is doing the exact same fucking thing over and over again, expecting shit to change. That. Is. Crazy.


Wednesday 2023-12-27 01:11:06 by generic name guy

what the fuck was i thinking????

fakeflags & DI_SCREEN_MANUAL_ALIGN??? fakeflags is fucking 0 it was just created dumbass how did i not fucking notice this bullshit earlier i am at my fucking limit


Wednesday 2023-12-27 01:11:18 by Sylvain Nieuwlandt

Add Readme, License and CI.

It's not because I'm working alone on this that I should work as a savage. I thought it will be fun to integrate the linting steps as reviews from the github action bot (Yeah, I know it might not sound fun but it is !).

Got a MetaQuest 3 for Christmas from my insanely crazy wife. Guess that this project will take another slow down because I'll try to create a commercial game with it.

Changelog: other


Wednesday 2023-12-27 01:45:08 by neqq

praise god 8

Praise God, yeah, he's watchin' me (Praise God, yeah, he's watchin' me) And I thank God, yeah, he's watchin' me (I thank God, yeah, he's watchin' me) Praise God, yeah, he's watchin' me (Praise God, yeah, he's watchin' me) And I thank God, yeah, he's watchin' me (I thank God, yeah, he's watchin' me) Praise God, yeah, he's watchin' me (Praise God, yeah, he's watchin' me)


Wednesday 2023-12-27 02:49:51 by BluBerry016

{Icemoon, Ruin} The Crashed Holemaker (#2413)

About The Pull Request

Adds a brand-new - well, new to shiptest - ruin to the Icemoon roster, focused on the service department.

It's flavored around being an incredibly old NT Spaceworks vessel that's been carved in half and crashed - what's present only being the fore of the ship. Being mainly service-focused, it's loot is pretty dry as is it's sole threat. If more current-day mappers/balance-heads have any words about how to fluff out either of those pools a bit more with the screenshots below, lemme know. I'll listen well.

(Notarized loot summary removed as updating it was a pain in the ass, lmao.)

It strikes me as leaning on the underwhelming side from looking at the other ruins present here but we'll. See? I suppose? It's good practice for me in the whole, "making something I have memorized and that looks good normally look sicker ruined".

Pictures (All but SDMM Outdated)

Ignore that there's no rust, the firelocks are open here, and some stuff's knocked around, I was testing it prior to me tacking the rust on and took pics after running around it in-person.

image

image

StrongDMM View:

2023-11-09 15 02 20

Why It's Good For The Game

This isn't what I intended to do when I was like, "oh yeah, I have a goofy ahh downstream out of boredom, ya'll want some of our better ships" but w/e here it is anyways. Ya'll need ruins. I made (another) ruin.

Changelog

🆑 add: A new icemoon ruin has been added, should you be in need of service department goodies. /🆑


Signed-off-by: BluBerry016 [email protected]


Wednesday 2023-12-27 03:33:44 by Jacquerel

Roundstart AIs are positronic (#80355)

About The Pull Request

If you disassemble an AI which was in the round from the start it will produce a Positronic Cube rather than an MMI with the brain of that player's usual human character in it.

Also I made changes to a couple of feedback balloon alerts which would always trigger a runtime when constructing or deconstructing an AI, this was because balloon alerts have a small time delay before executing and we deleted the AI mob or structure after trying to show a balloon alert on them, so they'd never appear.

Why It's Good For The Game

Honestly this is mostly about vibes, it has annoyed me since AI deconstruction was added that Nanotrasen AIs tend to actually be brains in jars rather than AIs. Now they're artifical. It does also mean that you can't deconstruct the AI and then put its brain into a human body, which is similarly mostly bad because of vibes: If you sign up as an AI I think you should be an AI or a cyborg even after deconstruction.

It also universally looks really stupid when you deconstruct an AI and it says it has the brain of Penelope Dreadful in there, like should I expect them to start RPing as their normal character instead of the AI they have been playing all round now?

Changelog

🆑 balance: Roundstart AIs are now made of positronic cubes, rather than brains inside MMIs /🆑


Co-authored-by: John Willard [email protected]


Wednesday 2023-12-27 03:58:10 by Adithya R

telephony: Force Class 0 SMS to Class 1

This kills Flash SMS messages. Fuck you airtel

Change-Id: Ifb0c9e8bae5c12868d178fbdaeceb2cc72a0ffb6


Wednesday 2023-12-27 05:34:22 by Plum

fuck. i implemented it backwards

instead of using a blacklist now we have an opt in parameter in the find_target proc plus I fucked around with a bunch of other stuff. I ran it and tested and it seemed kinda busted but in theory this should work so I'll give it a proper test tomorrow im too tired today. also idk if non-progtots still exist


Wednesday 2023-12-27 05:54:58 by Angelo G. Del Regno

Makefile.lib: Lower kernel gzip compression to fastest

You're reading this - so you're trying to understand "JUST WHY OMG". That's already a good step.

First of all, this is a downstream kernel - always keep that in mind! Now, this kernel is targeting new very powerful Qualcomm platforms like SM8250 and the Sony Edo platform - which has a very fast UFS card.

Keep in mind that the bootloader sets the CPU at a frequency that is slightly faster than the "in the middle" ones, which is anyway not veeeery fast - but that's good, really. I agree.

So.. check this out: for Image.gz-dtb..... COMP_LEVEL SIZE 9 20116171 5 20220479 2 20940223 1 21231290

Remember again that we're loading from a UFS card and that we are loading ~1.1MB more out of a 20MB file. If you're smart enough you surely know already about RAM and CPU overhead of very high compression levels.

If you still disagree with what I just did, read this commit description another 20 times, or more, until you understand it. :)))


Wednesday 2023-12-27 06:02:37 by voznesenskym

AOTAutograd: handle set_(), detect metadata mutations that cancel out (#111554)

This should be enough to get @voznesenskym 's FSDP branch to plumb set_() through AOTAutograd properly and have everything properly no-op out. Main changes are:

(1) graph break on aten::set_.source_Tensor_storage_offset (we could support it but it isn't needed, seems safer to graph break)

(2) Functionalization: add a "proper" functionalization kernel for aten::set_.source_Tensor. The previous one we had was codegen'd and it was wrong (it would just clone() and call set_(), which does not do the right thing). I also manually mark on the FunctionalTensorWrapper when a given tensor has been mutated by a set_() call.

(3) AOTAutograd: I added a new field, InputAliasInfo.mutates_storage_metadata, so we can distinguish between "regular" metadata mutations, and metadata mutations due to set_() calls. This is mainly because at runtime, one requires calling as_strided_() to fix up metadata, while the other requires calling set_().

(4) Made AOTAutograd's detection for metadata mutations / set_() mutations smarter and detect no-ops (if the storage and metadata are all the same).

I also killed was_updated() and was_metadata_updated(), and replaced them with (existing) has_data_mutation() and (new) has_data_mutation(), which can more accurately distinguish between data-mutation vs. set_() calls vs. metadata-mutation

This PR is still silently correct in one case though, which I'd like to discuss more. In particular, this example:

def f(x):
    x_view = x.view(-1)
    x.set_(torch.ones(2))
    x_view.mul_(2)
    return

If you have an input that experiences both a data-mutation and a x_old.set_(x_new) call, there are two cases:

(a) the data mutation happened on the storage of x_new. This case should be handled automatically: if x_new is a graph intermediate then we will functionalize the mutation. If x_new is a different graph input, then we will perform the usual copy_() on that other graph input

(b) the data mutation happened on the storage of x_old. This is more of a pain to handle, and doesn't currently work. At runtime, the right thing to do is probably something like:


def functionalized_f(x):
    x_view = x.view(-1)
    # set_() desugars into a no-op; later usages of x will use x_output
    x_output = torch.ones(2)
    # functionalize the mutation on x_view
    x_view_updated = x.mul(2)
    x_updated = x_view_updated.view(x.shape)
    # x experienced TWO TYPES of mutations; a data mutation and a metatadata mutation
    # We need to return both updated tensors in our graph
    return x_updated, x_output
def runtime_wrapper(x):
    x_data_mutation_result, x_set_mutation_result = compiled_graph(x)
    # First, perform the data mutation on x's old storage
    x.copy_(x_data_mutation_result)
    # Then, swap out the storage of x with the new storage
    x.set_(x_set_mutation_result)

There are two things that make this difficult to do though:

(1) Functionalization: the functionalization rule for set_() will fully throw away the old FunctionalStorageImpl on the graph input. So if there are any mutations to that FunctionalStorageImpl later on in the graph, the current graph input won't know about it. Maybe we can have a given FunctionalTensorWrapper remember all previous storages that it had, and track mutations on all of them - although this feels pretty complicated.

(2) AOTAutograd now needs to know that we might have two graph outputs that correspond to a single "mutated input", which is annoying.

It's worth pointing out that this issue is probably extremely unlikely for anyone to run into - can we just detect it and error? This feels slightly easier than solving it, although not significantly easier. We would still need FunctionalTensorWrapper to keep track of mutations on any of its "previous" storages, so it can report this info back to AOTAutograd so we can raise an error.

Pull Request resolved: pytorch/pytorch#111554 Approved by: https://github.com/ezyang ghstack dependencies: #113926


Wednesday 2023-12-27 07:10:23 by Bloop

[MODULAR] Clothing improvements: renamable Chaplain equipment and holsters for all suit-slot items (#79)

About The Pull Request

This PR does these simple things:

  • Right-clicking almost any suit slot item with the shoulder holsters item in hand will attempt to fit the holster to that item, allowing it to be worn in its suit storage slot afterwards.
  • It makes chaplain equipment renamable with a pen similar to forged equipment and other toys.

The holster fix is going here instead of upstream because I don't particularly want to argue with tg balancejaks about gun storage issues.

How This Contributes To The Nova Station Roleplay Experience

Holsters are cool. Customize your tactical drip with a personalized holster and promptly suffocate to death when the internals-storing slot you took for granted for years is occupied with your gun. Visibly and outwardly appear to be packing heat to anyone that looks at you with your badass holster.

Chaplains can now customize their vendor equipment (that can actually hold bibles) to better suit their given bit. This one has annoyed me in particular on a few occasions.

Proof of Testing

Screenshots/Videos

dreamseeker_fR9MkcJPLD

dreamseeker_vrXo9p4mnW

dreamseeker_378QbtMoQf.mp4

Changelog

🆑 yooriss add: Right clicking with shoulder holsters on any suit slot item will now attempt to fit the holster to that item, allowing it to be worn in its suit storage slot afterwards. Holsters can also be renamed and customized with a pen, too! add: The Chaplain's vendor equipment can now be renamed and customized with a pen to better suit their themes/religion. Never go without your trusty bible again! /🆑


Wednesday 2023-12-27 07:25:16 by leycec

PEP 695 type aliases x 6.

This commit is the next in a commit chain adding support for PEP 695-compliant type aliases (i.e., type hints instantiated by statements of the form type {alias_name} = {alias_value}, available under Python ≥ 3.12), en-route to resolving feature request #297 kindly submitted by the magical rainbow GitHub unicorn @EtaoinWu (Yue Wu). Specifically, this commit continues attempting (but mostly failing) to implement our pragmatic and defensible plan for tackling the most problematic and troubling aspect of PEP 695 with respect to hybrid runtime-static type-checking: PEP 695's horrifying, terrifying, and frankly shocking lack of runtime support for resolving forward references. Although PEP 695 repeatedly mic-drops forward references as a central motivation for its existence, the actual runtime implementation of PEP 695 lacks any support whatsoever for forward references and even goes to elaborate and outrageous lengths to prevent runtime-static type-checkers from resolving forward references embedded in PEP 695-compliant type aliases. Yet again, a new runtime-hostile PEP arises. Thankfully, this is @beartype. We do what we want here. And what we want here is to fully dismantle PEP 695, break it, and then bend it to our perfidious will until this Accursed Abomination Unto Nuggan does what it was advertised but failed to do at runtime. So says the Bear.

Sadly, it would seem that most of my prior plans were mislaid and that @beartype must now revert to a brutal application of hardcore AST transformations just to force PEP 695 to comply with our will. Will you just stop sucking it already, PEP 695? PEP 695 as if written by Terry Pratchett:

"I didn do nuffin."

(Nuffin muffinburger!)


Wednesday 2023-12-27 07:42:23 by ISHA SHARMA

Welcome to Retrotopia, the museum of the future where history and innovation collide to create an immersive experience.

Welcome to Retrotopia, the museum of the future where history and innovation collide to create an immersive and awe-inspiring experience. Nestled in the heart of a bustling metropolis, Retrotopia is a cutting-edge platform that seamlessly blends the past, present, and future to captivate visitors of all ages. Retrotopia is your one stop destination to dive deep into futuristic museum in the fusion of modern era with the twist of traditional culture.The short description of retrotopia is as follows:

Exploring the Future: As you step through the sleek, glass entrance, you're transported into a world of tomorrow. The museum's state-of-the-art architecture and interactive exhibits give you a glimpse of what life might be like in the years to come. Upcoming and Ongoing Exhibitions: Retrotopia is a dynamic space, constantly evolving to showcase the latest in art, science, and culture.Featuring upcoming and ongoing exhibitions that span a wide array of themes, from cutting-edge technological advancements to retrospectives on historic achievements, everything is displayed on the platform along with timing and venue details. Artisans and Articles: Within the museum's sprawling confines, you'll find a dedicated space for artisans and craftsmen. Here, you can watch skilled artisans at work, creating intricate masterpieces using both traditional and futuristic techniques. Explore a treasure trove of articles that highlight the intersection of artistry and technology, celebrating the creators who push boundaries to redefine what is possible. Exhibition Gallery: Wander through Retrotopia's expansive exhibition gallery, a futuristic wonderland where art, science, and imagination converge. Marvel at stunning visuals, interactive displays, and thought-provoking installations that challenge your perception of the world and spark your curiosity about the future. Artwork and Paintings: For those looking to take a piece of the future home, Retrotopia offers a unique opportunity to purchase artworks and paintings from emerging and renowned artists. Retrotopia isn't just a museum, it's a journey through time and innovation, an immersive experience that transcends the boundaries of the past and future. It's a place where you can see the world through the eyes of visionaries and artists, engage with cutting-edge technology, and take home a piece of the future. Step into Retrotopia, where history meets the future, and prepare to be amazed by what awaits you.

I have done the following changes in the ISOC e-museum website-

I have done various CSS enhancements in both the pages of the website - the main page and the exhibition page. I have created the logo for this website. I have added functionality on various buttons like subscribe button where on clicking it , it will display the popup message showing the confirmation that the provided email is subscribed for retrotopia newsletter. I made the toggle button for display mode which is used to switch between light and dark mode.


Wednesday 2023-12-27 08:09:09 by Bloop

[MISSED MIRROR] Fixes runtime relating to hard TGS reboots (PROBABLY WON'T FIX REBOOT CRASHES) (#25185)

Fixes runtime relating to hard TGS reboots (PROBABLY WON'T FIX REBOOT CRASHES) (#77309)

About The Pull Request

Servers are crashing on every round restart and I have absolutely no idea where to start, but I noticed this so I figure I'll throw up a PR to fix it.

This is the runtime (only found in dd.log, sorry non-admin/maintainer gamers https://tgstation13.org/raw-logs/sybil/data/logs/2023/08/01/round-211577/dd.log )

[00:07:07] Runtime in code/modules/logging/log_holder.dm,166: Attempted to call shutdown_logging twice!
  proc name: shutdown logging (/datum/log_holder/proc/shutdown_logging)
  src: /datum/log_holder (/datum/log_holder)
  call stack:
  /datum/log_holder (/datum/log_holder): shutdown logging()
  shutdown logging()
  world: Reboot(0, 0)
  Ticker (/datum/controller/subsystem/ticker): Reboot("Round ended.", "proper completion", 600)

This is the full log:

image

This is the code:

image

For some reason, even though we invoke TGSEndProcess, we still continue on in this if() chain. I don't know why we keep executing DM code after TGS is supposed to be shut down (which may be why no one has ever included a return here, but let's be safe instead of sorry.

If you really want to investigate why TGS is running DM code after we end the process, I am amenable to including a stack trace or crash of this phenomenon instead.

Why It's Good For The Game

Since we aren't invoking LOG_CLOSE_ALL to rust-g twice (which seems to be really unwanted per the code I read), hopefully thing no crash? Rust-g had two breaking changes (one with logs, and one with SQL), so I'm presuming that this might be related to the log one (which is why we didn't see this sorta thing happen pre-#77307)... Worst case scenario less runtimes in the funny runtime log.

I hope this wasn't loadbearing either... Likely requires testmerging since TGS and I don't get along on my machine.

Changelog

🆑 server: Added a preventative measure to prevent calling both TGSHardRestart and TGSReboot, as well as potentially invoking sensitive procs that are only meant to be called once. /🆑

TL;DR- I do not definitively know why servers are crashing but I noticed this runtime so I'll put out this open flame while I have the time to do so.

Co-authored-by: san7890 [email protected]


Wednesday 2023-12-27 09:11:31 by Dred

the never ending hell continues. i am in constant agony and torment while completing this infintite task of insanity and despair. typing and testing the same thing over and over and over until we reach sweet satisfaction of release, after doijng the same thing over 100 times, putting ourself thorugh peoples submitted nightmares. i will never be free, i will suffer for eternity.


Wednesday 2023-12-27 09:16:57 by LemonInTheDark

Implement IMPLIED_TYPE (#368)

It turns out this kinda sucks. it doesn't work with ::, so we don't even really need to care about its value. I threw in support for constant eval but that's inconsistent on our end cause type_hint doesn't always play. I figure it's good to at least have something, and issues can get sorted out as we go.

It is also seemingly massively annoying to eval in like, an istype(), since it has special case behavior there. I just kinda left it sit since I'm pretty sure it'd be a massive change to support and it like does not matter.


Wednesday 2023-12-27 09:35:48 by Prajwal S N

feat: add resolver

If I had access to a rage room, I would've definitely used it now - this was such a pain to debug, implement, and test. I absolutely hate it. I also absolutely love that it's done. The misery ends here :')

Signed-off-by: Prajwal S N [email protected]


Wednesday 2023-12-27 10:41:08 by Nik G

G WIP, loading bones is more trouble than i thouhgt

Fuck this shit sucks. What the fuck assimp.


Wednesday 2023-12-27 10:48:11 by mrakgr

"8:30am. My Rsi is really flattering up to day, so I'm not going to do much programming. Instead, I'm going to do some research on actual medical studies being done on RSI.

I've been training my arms, but it doesn't seem like that is doing your **** So maybe I am going to look into neck and shoulder exercises.

https://youtu.be/FkNFctqPmis 90° Lean Shoulders Workout - Get Beautiful Neck & Shoulders | No Equipment, Standing Only

I'm going to try changing my exercise routine to this. Let me download this video.

Poštovani.

///

Žao nam je što proizvod kasni, točnije što isti nije poslan. Apple proizvodi nam dolaze iz Slovačke no od tamo nam prošli tjedan roba nije dolazila. Pred sam Božić, potražnja za Apple proizvodima je bila mala te nam robu koja je u narudžbi nisu isporučili. U najboljem slučaju može stići do nove godine. Isprike na nastaloj situaciji, no nažalost ovo je potpuno nezahvalno vrijeme oko blagdana i teško je utjecati na isporuke pošto u puno zemalja dostave se obustavljaju, praznici se spajaju i nemamo prevelik utjecaj na rad naših dobavljača. Lako je za robu koju imamo na skladištu u Jastrebarskom, no ovo što ide iz vana nam sada malo šteka oko blagdana. 

Primite još jednom isprike, radije da navedemo točan i iskren odgovor nego da pričamo floskule i laži oko isporuke.

///

So much for getting that Apple trackpad. It should have ordered it from Amazon or that other side, which is much cheaper. My decision wasted €50.

The email says that in the best case, I should get it this week, but most likely I'll get it after new years.

///

https://www.reddit.com/r/cscareerquestions/comments/p8mvm5/resume_advice_thread_august_21_2021/h9robnq/

Fyi I recommend reading the r/EngineeringResumes wiki:

https://www.reddit.com/r/EngineeringResumes/wiki/ Additional software engineering resources to review:

https://archive.ph/Xmdqt

https://www.reddit.com/r/EngineeringResumes/comments/16f36kl/

https://stackoverflow.blog/2020/11/25/how-to-write-an-effective-developer-resume-advice-from-a-hiring-manager/

https://debarghyadas.com/writes/kpcb/

https://www.nicksingh.com/posts/36-resume-rules-for-software-engineers

https://evykassirer.github.io/playing-the-internship-game/1-Applying/resumes/

https://thetechresume.com/samples/ats-myths-busted

///

Got this message.

///

Thanks for the tips. Right now, I already have a job doing some lightweight programming work. And I also have some health issues with my right hand, so I'm not looking for anything else. I did a bunch of applying in 2023 but I got so little interest that the next time I try this I'm going to go the freelancing route. I'm not convinced that resumes mean much, and it's more likely the case that I'd be better off showing a lot of earnings on a freelancing platform. I've read that once you go above 10K getting work becomes a lot easier.

The job I have right now is actually like that. Relatively speaking, it doesn't pay much, but I am working like one or two days a week to make an average monthly salary in Croatia. So, I kind of like it.

I did turn down 65K euro a year job in favor of it. So I guess my path is set.

///

9:10 AM. I'm going to make that those exercises My daily set. It's honestly very weird to me that my right shoulder is. in a difficult position. I shouldn't be having rsi on it. And starting to think that my entire arm is in some very messed up.

I don't under really understand why. If it was just finger side, understand it. But why is my thumb suffering?

///

In late 2021 I threw in the towel. I had grand dreams, but perhaps the biggest lie that I've been telling myself is that I wanted to make money. By doing so, I have been hoping to avoid the fate of an artist. I never thought much about people who say that they aren't in it for the money. I always thought that was a cope compensating for a lack of skill. But even so, having grand dreams didn't help me at all.

I studied AI for so long, and I practiced my programming skills as hard as I could. It was pretty hard training.

It kind of wouldn't have been possible for me to work any harder than I did. I gained a lot of skill.

But it wasn't enough.

It is true that I made progress, but the result of this venture reminds me of high school. Before it, the years that I spent there was a period of stagnation for me.

Before I entered it, in middle school, I was riding high. The year before, in my country of Croatia, I actually won the national programming championship in two different categories. Even though I was really weak back then, I thought that I was particularly good. Eventually, I entered high school and the difficulty of the problems increased drastically.

And I couldn't deal with them.

So I languished for 4 years.

Of course, if it were me right now, I'd take every gold medal there is at those high school competitions. Why?

The primary reason is that I'd actually seek out and study the learning resources as to how to solve the problems I encountered instead of trying to bash my head against the wall. But back then, if you asked me, I would have thought of that approach as being cheating.

I have told you that learning from others is not relying on your own power. It is a very headstrong and foolish attitude to have.

And ultimately, in high school, it was my downfall.

Now that I'm an adult, I thought that I've learned since then. I went into machine learning and did the exact opposite of what I did in high school. I wasn't arrogant like in my youth and I dove into studying resources and machine learning papers in hopes that this would increase my skill. But the problem is, I wanted to tackle and the approach I wanted to take wasn't something the research community could support.

In the end, when I couldn't find the answers that I thought in papers or books, I went back to my old approach of bashing my head against the wall. I inflamed my desire and relied on my own will and power.

And I lost.

But this makes me realize that even though I've learned a lot of things since I was a kid, I haven't really changed. Neither me now, nor me back then could go beyond the bounds of our talent. In the light of that, what does learning functional programming really mean? I haven't become greater. I am not superior to my old self.

As I look at him now, it feels like we are starting to look eye to eye. We are converging to an answer.

We now know enough to say that there is no other choice.

Back in high school, there were times when I thought that it would be great to search the space of all possible programs to find one that would solve those tough problems efficiently. But there were too many reasons why I wouldn't want to attempt such a thing.

  1. It would be too inefficient to do such a search.
  2. It would take too long to run the meta program.
  3. It would be too hard to program.
  4. It would take too much time to do.
  5. The resulting solutions might not be comprehensible.
  6. Somebody else had to have tried it and didn't get good results.
  7. It would be better to rely on your own strength and power instead of the machines.
  8. The computers are too slow to make such an approach viable.
  9. The rewards of such a venture are too uncertain.

I guess what changed since then, is that I recognize these reasons as being excuses. It doesn't mean that they are invalid. But we need to look at reality.

If not true program search, how else are we going to go beyond the bounds of our talent? Doing random experiments like the research community is doing is not going to get me anywhere. Sure, maybe if they try this approach long enough they'll get lucky. A million people thrown at a problem will produce some kind of result.

But since you are very unlikely to get anything with such an approach yourself, it just means that you are playing the lottery. You are just defaulting to relying on other people for insight and knowledge.

Ultimately, the one brick you contribute to the pyramid of knowledge won't be enough.

Let's take it another way and look into the future.

Sure, right now, the researchers are just scaling up deep learning models and that isn't going to go anywhere. But in the future, eventually they're going to figure out what the human brain is doing and what the actual algorithms underlying intelligence are. As far as contributing to machine learning, neuro scientists have been pretty useless, but it's not going to be that way forever.

The brain recording technology is getting better as time passes. And I have no doubt that given enough time, people are going to figure out the algorithmic basis underlying human intelligence.

Right now, one could yearn for such an algorithm. I think if I knew what a brain was doing, I'd have a huge advantage right now. But in the future I would have the exact same problem as before.

At that point, we'd be at the human level of intelligence with regards to artificial agents.

But how would we go beyond that?

Would the human brain's algorithm be the absolute pinnacle of what is achievable in terms of thought? And once we reach that point, the only thing that would matter is to just add more compute and storage to it? No more work would need to be done.

I don't think that is likely. I don't think you can take a monkey brain and simply scale up the number of neurons and synapses in order to get a human brain. You probably wouldn't get a monkey by scaling up a dog.

Studying deep learning won't get us to whatever lies beyond, anymore than studying monkeys will get us to humans.

...

The problem with studying machine learning is that my efforts just amounted to so little. I could have studied anything else. And in fact, I did. And I got much more for the same effort. When I studied web development, I learned web development. When I worked on a programming language, I learned a lot about making programming languages as well as functional programming. When I made a machine learning library, I learned a lot about GPU programming and making machine learning libraries.

I implemented papers, and I tried out various machine learning ideas of my own. I don't think I really learned anything. I didn't learn anything beyond a particular algorithm working or failing in a particular context, in a way that didn't at all generalize to the wider universe.

The experiments were so laborious to make and they didn't teach me anything about intelligence.

Besides being unprofitable, this state of affairs had some gruesome side effects. Most notably, it made me afraid of going off the beaten path.

I might dislike deep learning, but you cannot deny that it is a framework. It has a purpose and its intention is to optimize arbitrary mathematical equations that have some good properties like continuity.

We can very well imagine that the basis of intelligence lies beyond deep learning.

We understand that we need to try out other things.

We understand that we need to go off the beaten path.

But out there, it is a jungle. It is easy to get lost.

We can imagine algorithms that go beyond deep learning, but we can never find the reasons to actually try them out.

And because of that, trying to venture off the beaten path would be akin to trying things out at random. Even if we found something better, it doesn't mean that we define the reason or the explanation for it.

So it is like we are hostage to deep learning. The research community keeps persisting with it in hopes that if they do enough experiments they'll find the enlightenment to do something better than it. They can only hope that the inspiration would come to them if they persist long enough with a failed approach.

But such inspiration will never come to those who lack courage.

I understand that now.

I understand that I need to make it my goal to go off the beaten path.

Otherwise, I will never exceed the bounds of my talent, and I will never find the power that I seek.

Most likely I won't be able to achieve anything by doing that.

But playing it safe didn't exactly work for me either. I've wasted enough of my life doing what is wrong, so I might as well waste the rest of it doing what is right.

It is only a coincidence that the collection of my particular skills is actually very suited for this kind of approach right now. Especially my programming language skills.

The reality is that I don't have anything better to do.


He and I were both wrong. Looking back, everything that has gone wrong in my life is rooted in that cowardice, and the lack of courage to tackle that challenge.

What I want now is to abandon my conceit and my worldly desires. There is no need for me to do much.

There is no need for me to be greedy for achievement.

There is no need for me to shake the world.

The only thing I can do is abstract away the process of research itself.

The only thing I can do is conquer the reason’s absence.

///

Here is the corrected essay. I think it flows pretty well right now. I don't know whether I'll leave to 40 or 80 but I'll dedicate the years I have left to this.

11:20am. Let me do some programming from here on out, even if I have to use voice. I'm going to do that training set from the video, maybe two or three times a day.

Simply put, my outer side is getting worse as time goes on, and it isn't healing. If it doesn't heal my life, it's pretty much over.

So I can only try out different things in hope that one of them works.

inl (ar : sa 7 card), _ = draw_cards x deck_utils.create()

I forgot that actual did the utility for drawing cards. I have no idea why I didn't replace the main loop. Anyway, let me do this, and then I'll start working towards implementing the game itself. That will be a big achievement. I'll implement the game with a random player. That is the next step in my journal. I'm just the following the path outlined in 2021."


Wednesday 2023-12-27 13:41:06 by Sebastian Markbåge

Add Postpone API (#27238)

This adds an experimental unstable_postpone(reason) API.

Currently we don't have a way to model effectively an Infinite Promise. I.e. something that suspends but never resolves. The reason this is useful is because you might have something else that unblocks it later. E.g. by updating in place later, or by client rendering.

On the client this works to model as an Infinite Promise (in fact, that's what this implementation does). However, in Fizz and Flight that doesn't work because the stream needs to end at some point. We don't have any way of knowing that we're suspended on infinite promises. It's not enough to tag the promises because you could await those and thus creating new promises. The only way we really have to signal this through a series of indirections like async functions, is by throwing. It's not 100% safe because these values can be caught but it's the best we can do.

Effectively postpone(reason) behaves like a built-in Catch Boundary. It's like raise(Postpone, reason) except it's built-in so it needs to be able to be encoded and caught by Suspense boundaries.

In Flight and Fizz these behave pretty much the same as errors. Flight just forwards it to retrigger on the client. In Fizz they just trigger client rendering which itself might just postpone again or fill in the value. The difference is how they get logged.

In Flight and Fizz they log to onPostpone(reason) instead of onError(error). This log is meant to help find deopts on the server like finding places where you fall back to client rendering. The reason that you pass in is for that purpose to help the reason for any deopts.

I do track the stack trace in DEV but I don't currently expose it to onPostpone. This seems like a limitation. It might be better to expose the Postpone object which is an Error object but that's more of an implementation detail. I could also pass it as a second argument.

On the client after hydration they don't get passed to onRecoverableError. There's no global onPostpone API to capture postponed things on the client just like there's no onError. At that point it's just assumed to be intentional. It doesn't have any digest or reason passed to the client since it's not logged.

There are some hacky solutions that currently just tries to reuse as much of the existing code as possible but should be more properly implemented.

  • Fiber is currently just converting it to a fake Promise object so that it behaves like an infinite Promise.
  • Fizz is encoding the magic digest string "POSTPONE" in the HTML so we know to ignore it but it should probably just be something neater that doesn't share namespace with digests.

Next I plan on using this in the /static entry points for additional features.

Why "postpone"? It's basically a synonym to "defer" but we plan on using "defer" for other purposes and it's overloaded anyway.


Wednesday 2023-12-27 14:21:18 by Hamed Hasan

🎵 Implemented dynamic search for an immersive user experience. 🚀 Crafted a visually stunning and responsive UI with React.js. 🎶 Added playlist creation feature for personalized music curation. ✨ Created API endpoints for getting top artists, playlists, and songs. 🔐 Implemented a secure login system for user authentication.


Wednesday 2023-12-27 14:21:29 by Hamed Hasan

🚀 Implemented dynamic search bar for seamless exploration. 🎵 Crafted visually stunning and responsive user interfaces with React.js. 🔄 Updated playlist creation functionality with user-friendly features. 🆕 Added new releases endpoint for discovering the latest tracks. 🌍 Integrated popular songs around you for a global musical experience.


Wednesday 2023-12-27 14:52:06 by ArcadeShadow

spectrum_cass.xml: Added 112 items (110 working), and replaced one item with a better dump. (#11871)

  • Replaced Bloody with a better dump. [Spectrum Computing]
  • Removed Bobo (Erbe) as it is a duplicate dump.
  • Cleaned up metadata based on information from Spectrum Computing.

New working software list items (spectrum_cass.xml)

Advanced Zombie Survival Lawnmower Simulator [Spectrum Computing] Adventures of Buratino [Spectrum Computing] Aknadach [Spectrum Computing] Aknadach (Softhouse) [Spectrum Computing] Airborne Ranger (Erbe, two sided tapes) [Spectrum Computing] Aliens: Neoplasma (v1.3, English, AY sound) [Spectrum Computing] Aliens: Neoplasma (v1.3, English, Turbo Sound) [ZX Online] Aliens: Neoplasma (v1.3, Russian, AY sound) [Spectrum Computing] Aliens: Neoplasma (v1.3, Russian, Turbo Sound) [ZX Online] Aliens: Neoplasma (v1.3, Spanish, AY sound) [Spectrum Computing] Aliens: Neoplasma (v1.3, Spanish, Turbo Sound) [Spectrum Computing] All Hallows: Rise of the Pumpkin [Spectrum Computing] All Hallows: Rise of the Pumpkin (ULA Plus) [Spectrum Computing] Alta Tension (Erbe - Serie Leyenda) [Spectrum Computing] Angel Nieto Pole 500cc (IBSA - Serie Leyenda) [Spectrum Computing] Autocrash [Spectrum Computing] Black Lamp [Spectrum Computing] Bloody Paws [Spectrum Computing] Bloody Paws (bug fix) [Spectrum Computing] Bomb Bomb Buster [Spectrum Computing] Bomb Bomb Buster (first version) [Spectrum Computing] Bomb Bomb Buster (alt) [Spectrum Computing] Bomb Bomb Buster (easy version) [Spectrum Computing] Captain America in the Doom Tube of Dr Megalomann [Spectrum Computing] Comando Quatro [Spectrum Computing] Comando Tracer [Spectrum Computing] Corrupt [Spectrum Computing] Cosmic Payback [Spectrum Computing] Crimbo - A Gloop Troops Tale [Spectrum Computing] Dirty Dozer [Spectrum Computing] Dizzy III - Fantasy World Dizzy - Extended Edition 2023 (English, mod) [The Dizzy Fansite] Dizzy III - Fantasy World Dizzy - Extended Edition 2023 (Russian, mod) [The Dizzy Fansite] Doom (pre-release) [Spectrum Computing] Doombase (System 4) [Spectrum Computing] Emilio Butragueño Futbol 2 (large cardboard case) [Spectrum Computing] Equinox (Erbe, medium case) [Spectrum Computing] Equinox (Erbe - Serie Leyenda) [Spectrum Computing] Evil Realm + Bugout [Planeta Sinclair] Existenz: Crazy Delfox [Spectrum Computing] Fire Desire [Spectrum Computing] Fist-Ro Fighter [Spectrum Computing] Frost Byte (Erbe - Serie Leyenda) [Spectrum Computing] Funky Fungus Reloaded (English) [World of Spectrum Classic] Funky Fungus Reloaded (French) [World of Spectrum Classic] Funky Fungus Reloaded (German) [World of Spectrum Classic] Funky Fungus Reloaded (Italian) [World of Spectrum Classic] Funky Fungus Reloaded (Portuguese) [World of Spectrum Classic] Funky Fungus Reloaded (Spanish) [World of Spectrum Classic] Get Out of Mars [Spectrum Computing] Gloop Troops [Spectrum Computing] Gloop Troops: The Lost Crown [Spectrum Computing] Hammer Boy [Spectrum Computing] Impossible Mission (Compulogical) [Spectrum Computing] Ivan 'Ironman' Stewart's Super Off Road Racer (MCM) [Spectrum Computing] Jackson City [Spectrum Computing] Justin [Spectrum Computing] Justin and The Lost Abbey [Spectrum Computing] Leaderboard (Erbe) [Spectrum Computing] Load'N'Run (Italy) N. 6 - Giugno 1984 [Edicola 8 Bit] Load'N'Run (Italy) N. 7 - Luglio-Agosto 1984 [Edicola 8 Bit] Load'N'Run (Italy) N. 8 - Settembre 1984 [Edicola 8 Bit] MagicAble [Spectrum Computing] Mantronix (Zafi Chip) [Spectrum Computing] Mapsnatch [Spectrum Computing] Marie Celeste (Clube Nacional de Aventura, pirate) [Planeta Sinclair] Marsmare: Alienation [Spectrum Computing] Mega-Corp [Spectrum Computing] Metal Man [Spectrum Computing] Metal Man Reloaded (English) [Spectrum Computing] Metal Man Reloaded (Czech) [Spectrum Computing] Metal Man Reloaded (Italian) [Spectrum Computing] Metal Man Reloaded (Polish) [Spectrum Computing] Metal Man Reloaded (Russian) [Spectrum Computing] Metal Man Reloaded (Spanish) [Spectrum Computing] Metal Man Remixed [Spectrum Computing] Mr. Hair & The Fly [Spectrum Computing] Mr. Hair & The Fly (alt) [Lee Stevenson] Nemesis the Warlock (Erbe) [Spectrum Computing] Oberon 69 [Spectrum Computing] Rana Rama [Spectrum Computing] Robot - The Impossible Mission (QAOP keys) [Spectrum Computing] Robot - The Impossible Mission (ZXKM keys) [Spectrum Computing] Rubicon (Rucksack Games) [Spectrum Computing] Rubicon (Rucksack Games, ULA Plus) [Spectrum Computing] Schizoids (Nuova Newel) [Planeta Sinclair] Seraphima (English) [ZOSYA entertainment] Seraphima (Portuguese) [ZOSYA entertainment] Seraphima (Russian) [ZOSYA entertainment] Seraphima (Yandex Retro Games Battle v3 competition) [ZOSYA entertainment] Simon [Spectrum Computing] Skull & Crossbones (Dro Soft) [Spectrum Computing] Sky Runner (Z Cobra) [World of Spectrum] Souls Remaster [Spectrum Computing] Space Monsters Meet THE HARDY [Spectrum Computing] Starring Charlie Chaplin (Erbe) [Spectrum Computing] Starring Charlie Chaplin (Erbe - Serie Leyenda) [Spectrum Computing] The Hair-Raising Adventures of Mr. Hair [Spectrum Computing] The Prayer of the Warrior [Spectrum Computing] The Prayer of the Warrior (demo) [Spectrum Computing] The World War Simulator: Part One (English) [Spectrum Computing] The World War Simulator: Part One (Spanish) [Spectrum Computing] The World War Simulator: Part II (Spanish) [Spectrum Computing] Tokyo Gang [Spectrum Computing] Toyota Celica GT Rally (Dro Soft) [Spectrum Computing] Tus Juegos №3 [Planeta Sinclair] W.A.R (Erbe) [Spectrum Computing] Xarax (Potz Blitz) [Spectrum Computing] Xecutor (Dro Soft) [World of Spectrum] Yokai Monk (v1.7) [Spectrum Computing] Yokai Monk (v1.8) [Spectrum Computing]

New software list items marked not working (spectrum_cass.xml)

Cosmic Debris (ZX Data) [Spectrum Computing] Zorro (Erbe, medium case) [Spectrum Computing]


Wednesday 2023-12-27 16:20:31 by Pippin Barr

Added sun rotation based on player position

  • This has been an objective for a while that I finally got around to (clumsily) adding. Calculates the ratio of distance of the player from the south to north poles and uses that to set a rotation for the sun.
  • The effect right now is that at the north and south ends of the island it's early morning or the evening, and in the central band of the island it's a bright sunny day.
  • The idea being to provide a more subtle influence on the sun that means that specific buildings can be in a darker or brighter zone, plus that you can (subtly) see the shadows changing while you move around.
  • (I also had the thought while doing this of tying the sun rotation to player movement in a more additive way -- that it rotates while you move and doesn't rotate when you're stopped. So days would pass via your movement. But I lose a ton of control over what the sun is doing in that situation, and I think I'd rather have the controllllll.
  • I think this should be effective. I did have a "bug" where the y and z rotations were oscillating between two values while I changed the x which I assume is just my shitty understanding of Unity's transforms? I set them both to zero to avoid it for now, but that's probably going to be limiting sometime.
  • Feels good to actually do something.
  • The webgl build has jumped to 15MB somehow? A little concerning, but I'm just gonna forge on for now.

Wednesday 2023-12-27 16:40:00 by Arnau Casau

Allow dedicated page for each method (#543)

Part of fixing Qiskit/documentation#542.

Methods living on dedicated pages

Before Qiskit 0.44, methods lived on dedicated HTML pages. We changed that in Qiskit 0.44 because it resulted in horrible build-time performance when migrating qiskit.org/documentation from the old Pytorch theme to the new Furo theme, so that instead methods lived directly on their class pages.

It looks like the script updateApiDocs.ts was trying to emulate methods living on class pages before Qiskit 0.44 through the file mergeClassMembers.ts. This code attempted to remove the method pages and instead have them live directly on the class pages.

I believe the original script author had mergeClassMembers.ts to try to avoid performance issues. Until a fix a few weeks ago to the docs application, having a huge amount of pages would cause the site to load extremely slowly due to the left side bar being too large. That is now fixed because the left side bar is loaded dynamically rather than statically.

mergeClassMembers.ts was causing problems

  1. It looks like it wasn't behaving properly, at least some of the time. We did not exhaustively audit every page, but for example, https://docs.quantum.ibm.com/api/qiskit/0.33/qiskit.result.Result only had properties at the top, then a table summarizing all the methods below, but not the methods actually inlined:

Screenshot 2023-12-21 at 11 43 47 AM

  1. We didn't know about this inlining when setting up qiskit.org redirects, which do a 1:1 mapping so that dedicated method pages take you to the dedicated method page on IBM, which was 404ing.

Solution: allow dedicated method pages

By deleting mergeClassMembers.ts, the script will properly generate dedicated HTML pages for each method.

We took this approach—rather than instead fixing mergeClassMembers.ts—for a few reasons:

  1. It allows us to avoid messing with our redirect rules, which are the 1:1 mapping.
  2. We've gotten user feedback that the API docs are not as usable as they could be. We are planning to fix that in Qiskit/documentation#479, but it won't be fixed in time for putting out the fire of Qiskit/documentation#542. In the meantime, it is more user-friendly to have dedicated method pages for those historical API docs.

The biggest reason we would not want to take this approach of dedicated method pages is the possible impact on performance mentioned above. But that has been fixed already in the IBM application.

Impact of this PR

No impact when generating docs where methods already live on class pages, like Qiskit 0.44+.

For earlier Qiskit versions, it results in the method pages being generated. Those will be added in follow up PRs.


Co-authored-by: Eric Arellano [email protected]


Wednesday 2023-12-27 16:55:58 by Patrick Kidger

Now using the same jaxpr in the state.

This is quite an important fix!

The bit that matters here is that the f_eval_info.jac in AbstractGaussNewton.step now throws away its static (non-array) parts of its PyTree, and instead uses the equivalent static (non-array) parts of state.f_info.jac, i.e. as were computed in AbstractGaussNewton.init.

Now at a logical level this shouldn't matter at all: the static pieces should be the same in both cases, as they're just the output of _make_f_info with similarly-structured inputs.

However, _make_f_info calls lx.FunctionLinearOperator which calls eqx.filter_closure_convert which calls jax.make_jaxpr which returns a jaxpr... and so between the two calls to _make_f_info, we actually end up with two jaxprs. Both encode the same program, but are two different Python objects. Now jaxprs have __eq__ defined according to identity, so these two (functionally identical) jaxprs do not compare as equal.

Previously we worked around this inside _iterate.py: we carefully removed or wrapped any jaxprs before anything that would try to compare them for equality. This was a bit ugly, but it worked.

However, it turns out that this still left a problem when manually stepping an Optimistix solver! (In a way akin to an Optax solver: something like

@eqx.filter_jit
def make_step(...):
    ... = solver.step(...)

for ... in ...:  # Python level for-loop
    ... = make_step(...)

) then in fact on every iteration of the Python loop, we would end up recompiling, as we always gets a new jaxpr at

state      # state for the Gauss-Newton solver
  .f_info  # as returned by _make_f_info
  .jac     # the FunctionLinearOperator
  .fn      # the closure-converted function
  .jaxpr   # the jaxpr from the closure conversion

!

Now one fix is simply to demand that manually stepping a solver requires similar hackery as we had in _iterate.py. But maybe enough is enough, and we should try doing something better instead: that is, we do what this PR does, and just preserves the same jaxpr all the way through.

For bonus points, this means that we can now remove our special jaxpr handling from _iterate.py (and from filter_cond, which also needed this for the same reason).

Finally, you might be wondering: why do we need to trace two equivalent jaxprs at all? This seems inefficient -- can we arrange to trace it just once? The answer is "probably, but not in this PR". This seems to require that (a) Lineax offer a way to turn off closure conversion (done in patrick-kidger/lineax#71), but that (b) when using this, this still seems to trigger a similar issue in JAX, that the primal and tangent results from jax.custom_jvp match. So for now this is just something to try and tackle later -- once we do, we'll get slightly better compile times.


Wednesday 2023-12-27 17:10:27 by RustingWithYou

More Ninja Hardsuits & Gear Crates (#18020)

  • ninja hardsuits

but here's the warbler

balance tweaks to bug armor

yeah??? fucker.

we're so back we're so back we're so

and icons

changelog and syntax fixes

guh

  • oops

  • rig nerf


Wednesday 2023-12-27 17:22:57 by Captain277

Subtypes Corporate Crates, Fixes Mapped Biohazard Crate, Renames Advanced Voidsuit (#6126)

About The Pull Request

  1. Fixes Bug With Corporate Crates, Subtypes Them.
  2. Removes Varedited Biohazard Bin and Places Normal Biohazard Bin.
  3. Changes Advanced Voidsuit Name to Advanced Hardsuit.

Why It's Good For The Game

  1. I received reports of one specific corporate crate not rendering properly when opened. As I inspected it, I realized it would be more efficient to subtype all corporate crates, so I did that. HOWEVER, this did not repair the initial bug. For some reason the crate was not rendering its 'aethersecureopen' state, even though all variables and code seemed to be working properly. No other crate exhibited this issue. I discovered that by changing the name of the icon state from 'aethersecureopen' to 'aethersecopen', the state began to enforce and render properly. I suspected it might be a name length issue, but tests with other equally long icon states in the crate section disproved this theory. This may warrant further investigation.
  2. This one avoided detection during my initial sweep through. Can't remember who just went in and tried to varedit bins to fix biohazards, but hopefully this is the last one they touched.
  3. This has been driving me crazy for a few days, and yesterday especially. The Advanced Voidsuit is clearly misnamed, as it is in fact a Hardsuit. When I tried to order these yesterday I overlooked this cargo entry twice because I was looking for a hardsuit, not a voidsuit. This just fixes the name.

Changelog

🆑 add: Adds Corporate Crate Subtype, Reassigns Corporate Crates to It. fix: Fixes incorrectly mapped biohazard bin. tweak: Changes Name: Advanced Voidsuit to Advanced Hardsuit. /🆑


Wednesday 2023-12-27 17:45:01 by Shalin Scupham

Revert "fuck you"

This reverts commit 5411390605630c90cb92c23bae08565b00daee68.


Wednesday 2023-12-27 18:18:08 by quantum-byte

Fix #7442 / multi threading dropped log entries issue (#18493)

Summary & Motivation

This MR should (based on my code understanding and testing) fix issue 7442. It also fixes in general randomly dropped user written log messages if logs are being recorded from multiple threads. Logging is quite important and its quite annoying to work around this limitation/bug.

Maybe @sryza or @OwenKephart can have a look, since they already looked into the 7442 issue.

How I Tested These Changes

I tested the changes locally with an op/graph, which starts multiple threads and logs multiple messages in each thread.

import logging
import threading
import time

from dagster import AssetKey, AssetMaterialization, Output, job, op, repository

logger = logging.getLogger(__name__)


def background_thread(thread_name):
    for i in range(0, 5):
        logger.info(f"Background thread: {thread_name} {i}")
        time.sleep(0.5)


@op
def op1():
    yield AssetMaterialization(asset_key=AssetKey(["asset1"]))

    threads = []
    for thread_name in range(0, 5):
        thread = threading.Thread(
            name="background_thread",
            target=partial(background_thread, thread_name),
        )
        thread.start()
        threads.append(thread)

    for thread in threads:
        thread.join()
    yield AssetMaterialization(asset_key=AssetKey(["asset2"]))
    yield Output(123)


@op
def op2(arg):
    logger.info(f"Result of op1: {arg}")


@job
def dropped_events_job():
    op2(op1())


@repository
def dropped_events_repository():
    return [dropped_events_job]

Without my change i was missing a significant chunk of the expected log messages in the captured log output:

dropped_logs_without_change

With my change i had the exact amount of log messages in the captured log output that i expected:

no_dropped_logs_with_change

I also tested the original reproducing code from dagster-io/dagster#7442:

Without my change:

grayed_out_op1_without_change

With my change:

green_op1_with_change

I am not that familiar with the dagster code. If you can point me to a place where a unittest for this might go and some info on how to test it in your opinion, than i will have a look at it.


Co-authored-by: Florian Kaufmann [email protected]


Wednesday 2023-12-27 18:36:52 by san7890

Codifies male goats not having an udder (#79722)

About The Pull Request

This was addressed in #78759 (1b1fde4908826ef5c54ffc0734e74028270af3fd) and reviewed (and merged even though I didn't respond to it, oh well), but I half-assed it because the whole point was to prevent male goats from having an udder, but I only added it to the subtype of Pete i made in that PR. Let's expand that to all male goats now.

Why It's Good For The Game

It doesn't make biological nor morphological sense as to why a male goat can provide milk. Ideally this should be like this for all animals (because that's real life) but that's a later issue with further balance implication.

I think it's still an interesting idea that Nanotrasen will just send you any old goat despite it being "useless" beyond being very good at eating plants. Maybe cargo should have a way to guarantee getting a female goat in the future? It's just like real life where zoos and farms have to constantly dealw ith female animals (such as giraffes or other exotic stuff) tending to be far rarer/cost far more than their male variants due to the potential to generate offspring (there's more nuance to husbandry than this but just play along)... and in space, every animal is "exotic".

It still remains possible to biogenerate milk, which tends to be far faster than feeding/milking goats- which is something that the cook should have access to anyways.

Changelog

🆑 balance: Male Goats should no longer spawn with an udder, instead of it just being Pete. /🆑


Co-authored-by: Ghom [email protected]


Wednesday 2023-12-27 19:14:44 by Andrew Clark

experimental_use(promise) (#25084)

  • Internal act: Unwrapping resolved promises

This update our internal implementation of act to support React's new behavior for unwrapping promises. Like we did with Scheduler, when something suspends, it will yield to the main thread so the microtasks can run, then continue in a new task.

I need to implement the same behavior in the public version of act, but there are some additional considerations so I'll do that in a separate commit.

  • Move throwException to after work loop resumes

throwException is the function that finds the nearest boundary and schedules it for a second render pass. We should only call it right before we unwind the stack — not if we receive an immediate ping and render the fiber again.

This was an oversight in 8ef3a7c that I didn't notice because it happens to mostly work, anyway. What made me notice the mistake is that throwException also marks the entire render phase as suspended (RootDidSuspend or RootDidSuspendWithDelay), which is only supposed to be happen if we show a fallback. One consequence was that, in the RootDidSuspendWithDelay case, the entire commit phase was blocked, because that's the exit status we use to block a bad fallback from appearing.

  • Use expando to check whether promise has resolved

Add a status expando to a thrown thenable to track when its value has resolved.

In a later step, we'll also use value and reason expandos to track the resolved value.

This is not part of the official JavaScript spec — think of it as an extension of the Promise API, or a custom interface that is a superset of Thenable. However, it's inspired by the terminology used by Promise.allSettled.

The intent is that this will be a public API — Suspense implementations can set these expandos to allow React to unwrap the value synchronously without waiting a microtask.

  • Scaffolding for experimental_use hook

Sets up a new experimental hook behind a feature flag, but does not implement it yet.

  • use(promise)

Adds experimental support to Fiber for unwrapping the value of a promise inside a component. It is not yet implemented for Server Components, but that is planned.

If promise has already resolved, the value can be unwrapped "immediately" without showing a fallback. The trick we use to implement this is to yield to the main thread (literally suspending the work loop), wait for the microtask queue to drain, then check if the promise resolved in the meantime. If so, we can resume the last attempted fiber without unwinding the stack. This functionality was implemented in previous commits.

Another feature is that the promises do not need to be cached between attempts. Because we assume idempotent execution of components, React will track the promises that were used during the previous attempt and reuse the result. You shouldn't rely on this property, but during initial render it mostly just works. Updates are trickier, though, because if you used an uncached promise, we have no way of knowing whether the underlying data has changed, so we have to unwrap the promise every time. It will still work, but it's inefficient and can lead to unnecessary fallbacks if it happens during a discrete update.

When we implement this for Server Components, this will be less of an issue because there are no updates in that environment. However, it's still better for performance to cache data requests, so the same principles largely apply.

The intention is that this will eventually be the only supported way to suspend on arbitrary promises. Throwing a promise directly will be deprecated.


Wednesday 2023-12-27 19:39:38 by kamaljeet chauhan

Add files via upload

puzzlegame

Creating a professional puzzle game involves several steps and depends on the platform and programming language you're using. Below is a simple example of a puzzle game using Python and the Pygame library. This example is a basic sliding puzzle game.

Feature of puzzle game

Puzzle games are a popular genre of video games that engage players in problem-solving activities, often requiring logical thinking, pattern recognition, and creativity. Here are some common features and characteristics of puzzle games:

  1. *Problem Solving: Puzzle games revolve around the core concept of problem-solving. Players are presented with challenges or puzzles that require creative thinking and strategic planning to solve.

  2. Logical Thinking: Many puzzles demand logical reasoning and deductive skills. Players must analyze the information given, make connections, and come up with a solution based on sound reasoning.

  3. Pattern Recognition: Puzzle games often involve recognizing patterns within the game environment or the puzzle itself. This can include visual patterns, sequences, or spatial arrangements.

  4. Trial and Error: Players may need to experiment with different approaches and solutions to find the correct one. This trial-and-error process is a common element in puzzle games.

  5. Progressive Difficulty: Puzzle games often feature a progression of difficulty, starting with easier puzzles and gradually increasing the complexity as players advance through the game. This helps maintain engagement and provides a sense of accomplishment.

  6. Unique Mechanics: Puzzle games frequently introduce unique gameplay mechanics or rules that set them apart. These mechanics contribute to the complexity and diversity of the puzzles.

  7. Story or Theme: While not always a requirement, many puzzle games incorporate a story or thematic elements to provide context for the challenges. This can enhance the overall gaming experience and motivation for solving puzzles.

  8. Immersive Environments: Puzzle games may be set in visually engaging and immersive environments. The design of the game world can contribute to the overall experience and may contain clues or hints for solving puzzles.

  9. Limited Resources or Moves: Some puzzle games impose restrictions on resources, time, or the number of moves allowed. This adds an additional layer of challenge and encourages efficient problem-solving.

  10. Feedback and Rewards: Providing feedback on progress and offering rewards for completing puzzles successfully are common features. This can include visual or auditory cues, unlocking new levels, or revealing parts of a larger narrative.

  11. Open-Ended Solutions: Some puzzle games allow for multiple solutions or approaches to a problem. This adds replay value and encourages players to think creatively.

  12. Multiplayer or Cooperative Elements: In some puzzle games, players can collaborate with others to solve challenges. This adds a social dimension to the puzzle-solving experience.

Ultimately, the appeal of puzzle games lies in their ability to engage players mentally, offering a challenging and rewarding experience as they overcome obstacles through clever thinking and strategy. Use of module Import Pygame Pygame is a cross-platform set of python module designed for wrting video games. It includes computer graphics and sound libraries that are commonly used in game development. The Library is built on top of the simple DirectMedia Layer (SDL), which is a low-level multimedia library.
Import sys The sys module is a part of the Python Standard Library and provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter. It allows you to interact with the Python runtime environment, access command-line arguments, and perform other system-related tasks. Here are some common functionalities provided by the sys module: Import Random The random module in Python is a standard library module that provides functions for generating random numbers. It is commonly used in various applications, such as simulations, games, and cryptographic systems, where randomness is needed.


Wednesday 2023-12-27 19:41:57 by InsaneRed

Fixes synths being unlungeable while in "critical state" (#5303)

About the pull request

Synths were given immunity to dragging from old code back when they could go into 'crit' so they dont get dragged to hell, however they no longer have a crit state but still keep the immunity lunges also do not work because of this. this is not intended.

Explain why it's good for the game

bugfix

Testing Photographs and Procedure

Screenshots & Videos yeah i tested it also no you cant get dragged while dead

Changelog

🆑 fix: Synths are no longer immune to lunges / dragging while in 'critical state' since they dont go into crit. /🆑

Co-authored-by: InsaneRed [email protected]


Wednesday 2023-12-27 20:04:09 by Sage Sharp

Update pytz Python package to latest

We only use the pytz package for generating the Outreachy blog RSS feed. It's used to output the date and time and timezone of when the blog post was first written, and last updated.

The pytz Python package has been replaced with native timezone support in Python 3.9. See the Note in the Introduction paragraph on the pytz pypi page:

https://pypi.org/project/pytz/

The Outreachy website is already running Python 3.9.17 in production.

Theoretically, we should be able to use the native Python datetime module to represent this timezone aware datetime. However, the native Python datetime module lacks a localize() function like pytz has.

I started converting the code to native Python, and I found myself getting confused as to what type of timezone Wagtail needs (if any).

Things are further confused by the fact that the new native support needs to know whether you are asking for a timezone that is currently in daylight savings time or standard time. E.g. PDT (UTC-8) or PST (UTC-7). I hate daylight savings time. Please please make it go away.

After getting a headache, I threw up my hands and updated the pytz Python package, rather than trying to replace it with native Python support.

I downloaded the RSS feed both before and after the pytz package upgrade to ensure that the ATOM files were identical.


Wednesday 2023-12-27 20:45:58 by Iajret Creature

[THE HALF-MODULAR PRINCE] Snalance (Snail Balance) and Snissues (Snail Issues) Adjustment (#1219)

  • initial d

  • holy shit i forgot

  • i got so much cheese in my pocket, they thought I was a fucking calzone

  • opp was sneak-dissing on the 'gram, turned his city into pompeii

  • Just fixing some diffs (line breaks should match tg)

  • Fixes these edit comments


Co-authored-by: Nerevar [email protected] Co-authored-by: Giz [email protected]


Wednesday 2023-12-27 20:46:26 by Peter Zijlstra

sched/core: Fix ttwu() race

Paul reported rcutorture occasionally hitting a NULL deref:

sched_ttwu_pending() ttwu_do_wakeup() check_preempt_curr() := check_preempt_wakeup() find_matching_se() is_same_group() if (se->cfs_rq == pse->cfs_rq) <-- BOOM

Debugging showed that this only appears to happen when we take the new code-path from commit:

2ebb17717550 ("sched/core: Offload wakee task activation if it the wakee is descheduling")

and only when @cpu == smp_processor_id(). Something which should not be possible, because p->on_cpu can only be true for remote tasks. Similarly, without the new code-path from commit:

c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu")

this would've unconditionally hit:

smp_cond_load_acquire(&p->on_cpu, !VAL);

and if: 'cpu == smp_processor_id() && p->on_cpu' is possible, this would result in an instant live-lock (with IRQs disabled), something that hasn't been reported.

The NULL deref can be explained however if the task_cpu(p) load at the beginning of try_to_wake_up() returns an old value, and this old value happens to be smp_processor_id(). Further assume that the p->on_cpu load accurately returns 1, it really is still running, just not here.

Then, when we enqueue the task locally, we can crash in exactly the observed manner because p->se.cfs_rq != rq->cfs_rq, because p's cfs_rq is from the wrong CPU, therefore we'll iterate into the non-existant parents and NULL deref.

The closest semi-plausible scenario I've managed to contrive is somewhat elaborate (then again, actual reproduction takes many CPU hours of rcutorture, so it can't be anything obvious):

				X->cpu = 1
				rq(1)->curr = X

CPU0				CPU1				CPU2

				// switch away from X
				LOCK rq(1)->lock
				smp_mb__after_spinlock
				dequeue_task(X)
				  X->on_rq = 9
				switch_to(Z)
				  X->on_cpu = 0
				UNLOCK rq(1)->lock

								// migrate X to cpu 0
								LOCK rq(1)->lock
								dequeue_task(X)
								set_task_cpu(X, 0)
								  X->cpu = 0
								UNLOCK rq(1)->lock

								LOCK rq(0)->lock
								enqueue_task(X)
								  X->on_rq = 1
								UNLOCK rq(0)->lock

// switch to X
LOCK rq(0)->lock
smp_mb__after_spinlock
switch_to(X)
  X->on_cpu = 1
UNLOCK rq(0)->lock

// X goes sleep
X->state = TASK_UNINTERRUPTIBLE
smp_mb();			// wake X
				ttwu()
				  LOCK X->pi_lock
				  smp_mb__after_spinlock

				  if (p->state)

				  cpu = X->cpu; // =? 1

				  smp_rmb()

// X calls schedule()
LOCK rq(0)->lock
smp_mb__after_spinlock
dequeue_task(X)
  X->on_rq = 0

				  if (p->on_rq)

				  smp_rmb();

				  if (p->on_cpu && ttwu_queue_wakelist(..)) [*]

				  smp_cond_load_acquire(&p->on_cpu, !VAL)

				  cpu = select_task_rq(X, X->wake_cpu, ...)
				  if (X->cpu != cpu)
switch_to(Y)
  X->on_cpu = 0
UNLOCK rq(0)->lock

However I'm having trouble convincing myself that's actually possible on x86_64 -- after all, every LOCK implies an smp_mb() there, so if ttwu observes ->state != RUNNING, it must also observe ->cpu != 1.

(Most of the previous ttwu() races were found on very large PowerPC)

Nevertheless, this fully explains the observed failure case.

Fix it by ordering the task_cpu(p) load after the p->on_cpu load, which is easy since nothing actually uses @cpu before this.

Fixes: c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu") Reported-by: Paul E. McKenney [email protected] Tested-by: Paul E. McKenney [email protected] Signed-off-by: Peter Zijlstra (Intel) [email protected] Signed-off-by: Ingo Molnar [email protected] Link: https://lkml.kernel.org/r/[email protected]


Wednesday 2023-12-27 21:53:50 by Fikou

Revert "if you die in a mech you are ejected" (#79768)

Reverts tgstation/tgstation#79380 this is literally what the mech removal tool is for. gameplay reasons for that tool missing do not mean that we need to remove its use - if you want a better solution then let people purchase it... or just smash the mech- you saving their life and them being sad about their mech is really funny the original pr being marked as qol when that was a specific balance change is very stupid

Changelog

🆑 del: if you die in a mech you again don't automatically eject /🆑


Wednesday 2023-12-27 22:36:04 by Sypherd

core(minor): Allow explicit types for ChatMessageHistory adds (#14967)

Description

Changes the behavior of add_user_message and add_ai_message to allow for messages of those types to be passed in. Currently, if you want to use the add_user_message or add_ai_message methods, you have to pass in a string. For add_message on ChatMessageHistory, however, you have to pass a BaseMessage. This behavior seems a bit inconsistent. Personally, I'd love to be able to be explicit that I want to add_user_message and pass in a HumanMessage without having to grab the content attribute. This PR allows add_user_message to accept HumanMessages or strs and add_ai_message to accept AIMessages or strs to add that functionality and ensure backwards compatibility.

Issue

  • None

Dependencies

  • None

Tag maintainer

@hinthornw @baskaryan

Note

make test results in make: *** No rule to make target 'test'. Stop.


Wednesday 2023-12-27 23:04:04 by ROBO-ZACH

Update README with new quote: "It is time to remember that old wisdom our soldiers will never forget: that whether we are black or brown or white, we all bleed the same red blood of patriots, we all enjoy the same glorious freedoms, and we all salute the same great American Flag."
— Donald Trump


Wednesday 2023-12-27 23:25:25 by Bloop

[MISSED MIRRORS] Linters, part two (#25138)

  • Split Run Linters step into multiple steps (#78265)

Splits the big "Run Linters" step into multiple steps. Also since all of these steps are independent of eachother, I've made them all run regardless of if the job is currently failing.

Proof of testing:

Fail in install tools, all linting steps are skipped: https://github.com/distributivgesetz/tgstation/actions/runs/6151628214/job/16692089726 Fail in Run DreamChecker, other steps continue to run: https://github.com/distributivgesetz/tgstation/actions/runs/6151664705/job/16692203569?pr=2

Pictured: me breaking CI for a day
igVideo.1.mov

Going through the Run Linters step has always been a slog. Finding an error is like finding a needle in a haystack. Seeing what command exactly went wrong is going to go a long way in helping people find out which linters have failed.

nothing playerfacing

  • Fixes TFE being useless after #78265 (#78433)

I thought set +e would still make the shell exit with an error if any command failed, I didn't think that it would just use the exit code of the last command. I am dumb, I'm an idiot and I want to cry.

  • Update ci_suite.yml

  • Fix some odd vscode highlighting errors in workflow files (#78274)

few errors which were odd and annoying

stealing PRs from san7890, they wanted to do this nothing playerfacing

  • Only cancel concurrent CI in the same PR (#73398)

More merge queue bullshit. Cancels are counted as failures, and even though on my test branch it worked completely fine, when trying on two real PRs, it did not.

This makes it so merges into master might mess with CI clogging again, but also merge queue is going to do that on its own, and the gain is worth it.

image

  • Remove cache purge key that has never worked and has meant that our cache has never worked (#71529)

ci_suite.yml runs on your fork. This means you do not have access to secrets. Every user has had the purge key of blank.

WE have it set to something. Which means the master cache that every PR pulls from has been unable to match.

This means our cache has been at the max limit all this time, constantly clearing out old caches, and never reusing any.

  • Caches Node and Python Bootstrap for GH Actions (#78307)

About The Pull Request

I was planning on doing this a lot earlier but ran into some weird roadblocks, but this time I finally did the research and it's done properly.

We do a lot of useless work on every single CI run, and in the interest of saving the world's energy (by a matter of at least 10 seconds per my testing), lets stop doing so much extra work by caching both the work we do on the python bootstrap installation (we literally call it cache for a reason) and the Node installation by sharing it between github actions runners.

Here's a random CI run on master where you can see that the Install Tools portion takes about 19 seconds - https://github.com/tgstation/tgstation/actions/runs/6167104927/job/16737570519

Here's the CI run I was testing with where you can see we slim it down to about 6 seconds for the Install Tools step, but with a second-or-so taken to restore the cache since the runner needs to download+unzip the cache. it tends to be shorter or longer by a second at times but i'm certain this is just noise - https://github.com/san7890/bruhstation/actions/runs/6167245722/job/16737919874

On average, we save about 10 seconds a run on Run Linters, which is meant to be the fastest CI step. Future improvements would lie in making either maplint or the tgui test suite faster, but that would be a much more complicated and code-intensive task. cache go weeeee

Changelog

Nothing that concerns players.

  • Conditionally run TGS tests (#73704)

Also add test merge support for pull requests


Co-authored-by: distributivgesetz [email protected] Co-authored-by: Mothblocks [email protected] Co-authored-by: san7890 [email protected] Co-authored-by: Jordan Dominion [email protected]


Wednesday 2023-12-27 23:25:25 by Bloop

[MISSED MIRROR] Puts all traits in the globalvars file + CI Testing (#79642) (#25131)

  • Puts all traits in the globalvars file + CI Testing (#79642)

Fixes #76349

I didn't know that people needed to add any new traits to a global list so they can be easily read in View Variables, and was pretty shocked to find out many other people didn't know it was a thing. Let's make it a thing by testing it using a new CI Python Linter to check this. But oh no-

image

There were about 200+ missing traits. Alright, so let's do the following:

  • Move trait defines to their own dedicated folder in the _DEFINES folder.
  • Split up the traits mega-file into different files, for better organization. One for the macros, one for the sources, and a few for the "trait declarations"
  • Run the linter a load of times and add everything to the globalvars file, removing anything that's no longer used and figuring out where the best categorization of it is. also minor code improvements. also rename all of the ones that look weird. also fix list indentations
  • Also alphabetize the lists because it's easy
  • Move everything to a new traits_by_type list, while keeping the admin one the way it is for the time being while we figure out a better way to show that list to admins.
  • Profit

Mapping trait injectors will now work for any type of trait. You shouldn't add any trait via this injector though, but you're no longer limited to coders remembering to add it to that critical list you needed.

Lays the framework for a better view variables experience. This work is too lengthy to presently do, but hopefully we can get this done sooner rather than later. we will need a code-accessible way to view these traits for such a framework to be implemented, so let's just do that.

Future steps are to break down the mega-declarations file into a folder full of separate files by typepath, but that requires a lot of auditing. Does need to happen one day though, there's a lot of mob traits mingled with datum traits and auuugh we gotta do this later this PR is already massive.

there's probably ways to game this but this catches my mistakes so good luck to everyone else (it should work for 99% of everyone)

Nothing applicable to players. However, to mappers, the mapping trait injector should always be able to add any kind of trait (which is rather good for the times when you need it).

  • Update tgstation.dme

  • Update _traits.dm

  • Comment these out for now


Co-authored-by: san7890 [email protected]


Wednesday 2023-12-27 23:25:25 by SkyratBot

[MIRROR] Make sign language unaffected by the Social Anxiety quirk's direct speech effects [MDB IGNORE] (#25140)

  • Make sign language unaffected by the Social Anxiety quirk's direct speech effects (#79809)

About The Pull Request

Alternative title: "Make going non-verbal make you less anxious."

This is a two line change to social_anxiety.dm to quit out its handle_speech method when user has the TRAIT_SIGN_LANG trait. This stops the Social Anxiety quirk from applying its stutters/fillers/blockers for as long as the speaker is using sign language. This does nothing to any of social anxiety's non-verbal effects, those are still active regardless and entirely unaffected.

Why It's Good For The Game

Primarily: I think giving people the choice between using anxious talk or sign language, and thus the different hurdles inherent to both, makes for a more interesting gameplay interaction than simply blanket-applying the quirk's speech effects to both.

Secondarily: Social Anxiety's non-verbal penalties are entirely unaffected. One will still get the penalties from making eye contact and occasionally make eye contact with objects. Notably this includes the stuttering making eye contact could get you, which still makes your signing shaky. You're still anxious, after all. On top of this, it still costs more to pick up Signer than Social Anxiety allows for, and thus the change doesn't simply make the combination free points.

Tertiarily: when one has trouble speaking verbally, non-verbal communication can be helpful in overcoming that hurdle. This is especially so when the trigger for said anxiety is speaking verbally in the first place. This is part of why I was so enamoured by the combination before a broader and, mind you, fairly needed fix to sign language made these interact differently.

Changelog

🆑 balance: signers no longer suffer from social anxiety's speech changes when they go non-verbal. Other effects are maintained. /🆑

  • Make sign language unaffected by the Social Anxiety quirk's direct speech effects

Co-authored-by: _0Steven [email protected]


Wednesday 2023-12-27 23:25:25 by SkyratBot

[MIRROR] Fixes body collision causing a stun, despite a successful block. [MDB IGNORE] (#25146)

  • Fixes body collision causing a stun, despite a successful block. (#79824)

About The Pull Request

Puts a block check into the throw_impact() of carbon mobs.

Why It's Good For The Game

I'm touching on a lot of 'get around shields' stuns, and this has been a big one for the better part of a few years and potentially not even intentional. I would say it gained its largest popularity when it became weaponized with fireman carrying.

Despite seemingly rolling to block, blocking a body hitting you doesn't actually do anything at all. This reminds me a bit of energy bolas. So I fixed it? I think, there might be a better fix, I'm just replicating code present in xenomorph tackles. This shit sucks, please recommend a better fix if you know it.

Changelog

🆑 fix: When you successfully block a body collision, it does something rather than nothing at all. /🆑

  • Fixes body collision causing a stun, despite a successful block.

Co-authored-by: necromanceranne [email protected]


Wednesday 2023-12-27 23:34:31 by Leeroy

Rollback Keyloq to 5 months ago! Bloody regressions making my daily life shit!


< 2023-12-27 >