Skip to content

Latest commit

 

History

History
4078 lines (2949 loc) · 192 KB

2023-11-06.md

File metadata and controls

4078 lines (2949 loc) · 192 KB

< 2023-11-06 >

there were a lot of events recorded by gharchive.org of which 2,447,467 were push events containing 3,713,695 commit messages that amount to 298,796,330 characters filtered with words.py@e23d022007... to these 90 messages:

Monday 2023-11-06 00:10:52 by SpartanKadence

Jukebox Update (#6102)

About The Pull Request

This will add plenty of more songs to the Jukebox.

Song List: Alternative: Say It Ain’t So by Weezer Buddy Holly by Weezer The Good Life by Weezer Troublemaker by Weezer Undone by Weezer Hash Pipe by Weezer (All Emagged) Wayside by Mitchel Dae Freaking Out the Neighborhood by Mac DeMarco

Arcade: Skyline and Menagerie Mix by 63hnsh3 Deputized by Locknar The Ashoka Attacks by Paul Ruskay

Electronic: How Would You Like It? By Moxifloxi Syrsa - Cythas - Magichnology Beyond Memory by NINA

Jazz and Lounge: People Equals Shit by Richard Cheese (Emagged)

Metal: Alone I Break by Korn Shoots and Ladders by Korn Blind by Korn A Different World by Korn ft. Corey Taylor Kidnap the Sandy Claws by Korn (Emagged) Before I Forget by Slipknot Psychosocial by Slipknot The Devil in I by Slipknot Dead Memories by Slipknot People Equals Shit by Slipknot Fade Away by Breaking Benjamin Give me a Sign by Breaking Benjamin I Will Not Bow by Breaking Benjamin Into the Nothing by Breaking Benjamin Without You by Breaking Benjamin Smooth Criminal by Alien Ant Farm Movies by Alien Ant Farm Happy Death Day by Alien Ant Farm Violent Pornnography by System of a Down Science by System of a Down Spiders by System of a Down Jet Pilot by System of a Down Chic ‘n’ Stu by System of a Down Chop Suey! by System of a Down B.Y.O.B. by System of a Down Last Resort by Papa Roach Scars by Papa Roach Words as Weapons by Seether Crawling by Linkin Park Leave Out All the Rest by Linkin Park Papercut by Linkin Park Lost by Linkin Park In The End by Linkin Park Bodies by Drowning Pool Tear Away by Drowning Pool I Don't Care by Apocalyptica ft. Adam Gontier One by Metallica Sad But True by Metallica Wherever I May Roam by Metallica Nothing Else Matters by Metallica Master of Puppets by Metallica Tenebre Rosso Sangue by Keygen Church (Emagged) Simple Sight by Piercing Lazer (Emagged) Order by Heaven Pierce Her (Emagged)

Classical and Orchestral: One Final Effort by Martin O’Donnell Never Forget by Martin O’Donnell

Rock: 8675309 Jenny Jenny by Tommy Tutone I Love You Like An Alcoholic by The Taxpayers Must Have Been The Wind by The Chalkeaters (Emagged)

Yes, this list is very biased.

Why It's Good For The Game

With the recent repair of the previous songs in the Jukebox, it would seem to be a good idea to finally add more to the list, allowing for more songs for players to choose from.

Changelog

🆑 add: Added more songs to the Jukebox! /🆑


Monday 2023-11-06 00:14:36 by Daniel G

stuff

idfk at this point man

to fix: footstep audio overlaying music stuff reorder room var add otehr rooms and shit

so much fiucking more fuckAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

anyway done game jam good night <3


Monday 2023-11-06 00:19:13 by carlarctg

Bladists can now use silver or titanium while creating their blades (#78701)

About The Pull Request

Blade Heretics can now use silver or titanium while creating their blades.

Why It's Good For The Game

Silver quite literally only exists on surgery tables. Being a blade heretic with shit miners/roundstart means one of several things.

  1. Wait for miners to come back with enough silver (They might never come back or they might have not gotten any silver)

  2. Go to lavaland to dig your own silver (Extremely time-consuming on the antagonist role that has most downtime, death knell for latejoin heretics)

All that is not even to mention that for some reason it takes two sheets rather than one, and surgery tables give one silver when scavenged.

This all combined makes obtaining blades super annoying as the BLADE path.

Now we can farm titanium off shuttles if the miners are jacking off or dead, or if we joined 9 minutes to roundend.

Changelog

🆑 qol: Bladists can now use silver or titanium while creating their blades /:cl:


Monday 2023-11-06 00:20:08 by Unreal Archive Submission Bot

Add content [UT2004 MAP] DM-DEADSIMPLE(RJW_V2), [UT2004 MAP] DM-Deck16][GG_Classic, [UT2004 MAP] DM-CanyonRace, [UT2004 MAP] DM-Depot, [UT2004 MAP] DM-Deimos, [UT2004 MAP] DM-DeathArena, [UT2004 MAP] DM-concorso, [UT2004 MAP] DM-Cube, [UT2004 MAP] DM-Core, [UT2004 MAP] DM-Coluseum, [UT2004 MAP] DM-DA-Aged, [UT2004 MAP] DM-ElitelArena, [UT2004 MAP] DM-Drpepper, [UT2004 MAP] DM-Dust(beta), [UT2004 MAP] DM-ColdChamber, [UT2004 MAP] DM-Colour, [UT2004 MAP] DM-Complex, [UT2004 MAP] DM-DE-Grendelkeep-TE, [UT2004 MAP] DM-Troopers_deck16][, [UT2004 MAP] DM-myLevel, [UT2004 MAP] DM-Deck16 [Reloaded], [UT2004 MAP] DM-Closeness, [UT2004 MAP] DM-ES-Sewers, [UT2004 MAP] DM-Circle, [UT2004 MAP] DM-Cursed-Castle, [UT2004 MAP] DM-Demonic, [UT2004 MAP] DM-Dynamite, [UT2004 MAP] DM-Deck16]I[, [UT2004 MAP] DM-Cylest, [UT2004 MAP] DM-Carcass, [UT2004 MAP] DM-DeathJump, [UT2004 MAP] DM-Enlighted, [UT2004 MAP] Dm-Pain is the word, [UT2004 MAP] DM-Distance, [UT2004 MAP] DM-1on1-EgyptElite, [UT2004 MAP] DM-Entropy, [UT2004 MAP] DM-[DT]ClanArena, [UT2004 MAP] DM-Corpse_Corridor, [UT2004 MAP] DM-Depot, [UT2004 MAP] DM-Cold_Blood_Massacre, [UT2004 MAP] DM-DA-Quad, [UT2004 MAP] DM-Deep, [UT2004 MAP] DM-Cinder2, [UT2004 MAP] CTF-Innovatives, [UT2004 MAP] DM-DeathRayGallery, [UT2004 MAP] DM-EgyptianHall][, [UT2004 MAP] DM-EvilHive, [UT2004 MAP] DM-1on1-Court, [UT2004 MAP] DM-cubist, [UT2004 MAP] DM-CuE3 (#3167)

Co-authored-by: unreal-archive-submitter git@unrealarchive.org


Monday 2023-11-06 00:28:03 by fira

Rewrite Xeno Acid processing (#4759)

About the pull request

Rewrites scheduling of xeno acid to hopefully finally be done with dangling references warnings with acid. Also generally improves the awful code quality

Explain why it's good for the game

Like, dude, some of these values were outright inversed. acid_strength=2.5 is noted as "250% speed" when it multiplies the sleep delays. Can't leave code in that state.

Testing Photographs and Procedure

Summary testing, timing appear correct overall but I'm not entirely certain it's perfect due to random delays and obtuse code

Changelog

🆑 code: Rewrote Xeno Acid ticking code. fix: Weather updates won't cause turfs to acid melt more rapidly anymore /🆑


Monday 2023-11-06 00:28:03 by fira

Add Item & Footprints offsets (#4762)

About the pull request

This:

  • Adds transverse offsets to blood footprints
  • Adds notable pixel offsets to a few items
  • Adds a very slight pixel offset to all items
  • Enables rotation for thrown flashlights
  • Cause objects exiting a surface (rack/table) to regenerate offset instead of being stuck at center
  • Stops random offsets from overwriting mapped offsets

Explain why it's good for the game

The goal is to have map visuals more organic when we have a lot of objects on the ground - targeting in particular items you find readily in dense areas such as Reqs or a FOB.

Consider this for example, the blood footprints are all aligned, in more extreme situations (eg WO) it makes an actual "grid" which i personally find very immersion breaking

image

Adding a slight offset helps counter that:

image

Changelog

🆑 add: Bloody footprints are now slightly offset to break long visual straight lines. fix: Items do not align back to the center of turfs anymore when picked from a surface (table or rack) add: Some more items now have offsets on the map display, and they all can be slightly offset. /🆑


Co-authored-by: harryob me@harryob.live


Monday 2023-11-06 00:32:27 by John Willard

Human sounds now depend on body type (#78632)

About The Pull Request

So there's currently a problem where our human sounds are dependent on whether you are a male or female, however we have 4 genders in-game. This leads to scream sounds being female if you're anything but a Male, and gasp shock sounds being male if you're anything but a Female. This is very inconsistent, and I think as a better way of handling this, it should all be handled by Bodytype, since we only have 2 and is a separate choice from gender. This means regardless of gender, you can still choose what sounds your character will make.

Why It's Good For The Game

Mostly explained in the about section, this lets people who play as they/them & it/its to decide what they should sound like. I guess as a bonus, it means men now appear more like women if they choose the female bodytype, and vice versa. Or at least I think it's a bonus? I'm not really knowledgeable in this sort of stuff.

I kinda have the same argument as why I think TTS should be accurate. You should be able to customize your character to how you want it, and I think that choosing the non-male/female ones shouldn't give you inconsistent voices.

Changelog

I actually don't know what to label this.

🆑 code: Your bodytype now decides what gendered sounds you make. /🆑


Monday 2023-11-06 00:35:55 by Lynx

QuirkFix =Typo fix, Grammar fix, and punctuation=

Changes a lot of different quirk details, added a lot of medical record text, and also added missing "Lose" and "Gain" text for quirks in case an admin wants to give it to someone so that the player can confirm, or an eventual item granting it.

--Changes a lot of grammar, too, for example, like 1071->(1094), its probably not even needed to change it, but it felt a lot easier to read to understand that your max cap went to 25, instead of ONLY 5, to make sure that its clear that it isn't just a bump up to 25 for starter healing, no no, its a permanent 25.

--Some comments, like the radiation one at 1378-79 -> (1404-06), have been made to be a bit more ... vague. Because, well, you just somehow decided out of the god damn blue you're RAD resistant... So you've just decided radiation is basically an afterthought. Does NOT mean you're IMMUNE to it. It's a hopeful change that'll make players wonder how resilient they are to radiation, since it depends from person to person. Also. It's their god damn decision apparently if RADS HURT EM OR NOT >:D

--A LOT of the medical record text is to, hopefully, encourage medical personnel to read the medical logs if those even exist on CB. I don't actually know. But, this would also encourage characters and the players to toy around with their medical text if they don't like how cluttered it is from how the medical staff wrote it. It's not intended to be bad; but, every Quirk is ... well, a quirk. This is supposed to be a pretty high end roleplay server (not crazy high since pve duh) but it's intended to have people actually do a lot of smaller things as far as I can tell in-between combat. (But I may be wrong. Please tell me if I am on discord. Username = " l_ynx "

I don't think I touched quirk values, as I reverted my change from the empath one back down to 0. I still think its more of a useful quirk; but thats just me.

--A lot of punctuation has been fixed. Some quirks didn't have periods, some did have periods, but too many, and some had a marker at the end, WITH punctuation!. ;)


Monday 2023-11-06 00:41:23 by Steelpoint

Revolver Heavy Ammo Effect Change (#4706)

About the pull request

This PR changes heavy ammo for the Revolver to knockback a mob and slow them down instead of stunning it.

Explain why it's good for the game

Combat balance is a precarious and often difficult conversation to hold, ergo I'll lay my biases out on the table at first. I'm a marine main at heart, but I have played a lot of xeno recently to gain a better understanding of their side of the story, enough that I feel confident to make these assertions.

My belief is that the heavy ammo of the revolver is a negative concept for the game, and it needs to be removed, due to its stun factor.

The issue here is readability and prediction. When you see a RPG, you know that it can fire a devastating warhead that can stun and kill T3s. When you see a Warrior, you know it can leap to 4 tiles to stun and drag a Human, when you hear a CAS strike you know exactly what is about to drop. When you see a Queen you know she can stun screech and neuro stun you.

But the issue with the Revolver is it has no obvious tell. It is a small item, that can be fit inside backpacks, holsters, pouches, belts, armour slots. It has no obvious advance warning when you are going to fire it. There is no special uniform requirement making a revolver user standout amongst the crowd. There is no tell.

The problem with the stun revolver is simply that is is a hard counter to all T1s and most T2s. Its ability to stun allows it to perform an attack that is uncounterable to a xeno as a xeno has no way to predict who may be carrying one. A xeno can tell who a Specialist is, a xeno can tell who has a shotgun or flamer or sniper or RPG, you can tell when a mortar is being prepared, or a CAS strike or even an OB. You can see the smartgunner. Even the Scout, a literal cloaked Marine, has to uncloak to fire. You can not tell who has a revolver until they pull it out and stun you. Once you are stunned you die.

A xeno equilivant would be if any Xeno could be carrying a special tool that lets them grab a marine from 7 tiles away and pull them in plus stun them for 2 seconds. But any xenomorph could be using it, including a Lesser Drone.

Perhaps the heavy revolver could be reworked to do something else, but ultimately the only reason anyone takes this ammo is for the stun. Anything else is beating around the bush.

Those are my reasoning's, I'll leave the rest to the powers' that be.

Testing Photographs and Procedure

Screenshots & Videos

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

Changelog

🆑 balance: Revolver Heavy ammo no longer stuns targets it strikes, it will instead knock them back and slow them down for a short time. /🆑


Co-authored-by: Steelpoint alexander.henley@hotmai.com


Monday 2023-11-06 00:50:59 by I Need automatic love spell caster+2347044692696

Create README.md

World famous Revenge death spell caster contact Dr Femi+2347044692696 World Famous Revenge Death Spells BEST REVENGE DEATH SPELL CASTER IN CANADA, USA, UK, GERMANY, SWEDEN, DUBAI. was submitted successfully for approval.{{Whatasapp-+2347044692696} Dr Femi – Voodoo Revenge Spells – Revenge Curses Spells – Spells to Break a Curse – Death Spells That Work Overnight – Death Spell Chant – Death Revenge Spell – Spell To die In Your Sleep – Voodoo Death Spells Death Spells That Work Overnight to kill wicked Step-dad/ Step mom, Death Revenge Spell on wicked friends, Voodoo Death Spells to kill Enemies, Black Magic Spells To Harm Someone, Black magic death spells on ex lover, Revenge instant death spells on uncle, Instant death spells caster, successful death spell, most powerful death spell, death spells that work fast, spell to die in your sleep, death spells that work overnight, voodoo death spells, death spell chant, most powerful death spell, revenge spells that work instantly, spell to die in your sleep, voodoo death spell caster, spell to make someone sick and die, revenge spells, breakup spell, spells to punish someone, revenge spells on a ex- lover, revenge spell caster, revenge spells that work instantly, spell to make someone sick, how to put a spell on someone who hurts you, voodoo spells to hurt someone, death spells on my ex lover husband wife boyfriend girlfriend, I need death spells caster, I want my ex husband, wife, girlfriend, boyfriend, dead overnight, voodoo death spell to kill my ex lover, I need overnight death spell Voodoo death spells, black magic voodoo spells, spell to make someone sick and die, death spells that work fast, death spells that work overnight, spell to die in your sleep, black magic spells to harm someone, most powerful death spell, spells to curse someone, spell make someone die, revenge spells. Here are some of the basic harm that is inflicted upon people using black magic to Kill Someone Overnight. Dr Femi 100% % Bring back lost lover in Canada love spell caster In Finland , Belgium, black magic spells France, love spell caster Finland +2347044692696… Dr Femi Email doctorfemidemons@gmail.com


Monday 2023-11-06 00:55:19 by Mysmelf

after traveling to hell and back, I have made a query that successfully lists the employee ids, first and last names, titles, department names, salaries, and manager's (firstname). God damn that took like 3 hours to learn.


Monday 2023-11-06 01:01:21 by Imaginos16

Nerfs the everloving almighty shit out of the jungle demonic office ruin (#2430)

About The Pull Request

Nerfs the ruin by removing most of its gamer gear, and changing the syndicate hardsuit you find into a scarlet hardsuit.

Not to mention the two goddamn deathsquad hardsuits all there, wholesale, for free.

Why It's Good For The Game

image

This shit is not okay jesus fucking christ, two deathsquad hardsuits? Are you insane?

Changelog

🆑 PositiveEntropy balance: The Jungle Demonic Office Ruin has now been appropriately balanced, now only having a scarlet hardsuit, decent syndicate armor, and a bulldog with no spare mags. /🆑


Monday 2023-11-06 01:01:21 by retlaw34

Gun rework (#1601)

About The Pull Request

WIP.

if it wasn't obvious, very based off tgmc

this reworks how guns work, by making them 4x more lethal without touching a single damage value

its a bit difficult to put into words what this does, so i think these 3 gunfights i did with a good friend explains it better than i ever could

https://streamable.com/09in19 https://streamable.com/yel56o https://streamable.com/x2a0he

if you didnt watch these videos:

  • New guns sounds, TGMC as usual. but some racking sounds are from CEV eris
  • guns now can be wielded, if unwielded, they may cause recoil which not only makes your shots less accurate, but 'scrolls' your screen
  • new suppression effects
  • getting hit hard enough scrolls your screen
  • anything getting hit shakes you as feedback, not just bullets
  • bullets can ricochet naturally upon hitting a surface at a step angle. does not auto aim at your target, so be careful. ricochet sfx taken from CEV eris
  • new effects for bullet impacts. sound effects were taken from TGMC and Skyrat-SS13/Skyrat-tg#11697
  • adds the cattleman revolver and Himehabu 22lr pistol. sprites by yours truely

big problem is, in order for all of this to work, a certain key needs to be binded to rack the gun. by default this is SPACE, but moost already have it binded to 'hold throw mode', which is an issue. for one, not only you need to ask everyone to rebind their controls to a very important key, but also a key dedicated to just racking the gun can cause issues. im up for any solutions

  • I affirm that I have tested all of my proposed changes and that any issues found during tested have been addressed.

Why It's Good For The Game

people dont fear gunfights. they think its just a way to pvp. people should be afraid of gunfights, feel the pain OOCly when their blorbo gets hit

Changelog

🆑 add: 22lr and cattleman revolver add: many gun sounds balance: guns reworked /🆑


Co-authored-by: retlaw34 bruhasdfasdfasdf@waifu.club


Monday 2023-11-06 01:06:02 by Cark

Allows MT, CT, and Nurse to take the "Bad Leg" trait. (#4704)

About the pull request

This does as the title says, allowing Maintenance Techs, Cargo Techs, and Nurses to take the Bad Leg trait.

Explain why it's good for the game

The reason that these roles specifically couldn't take this trait was due to them being "too rookie" which I think is a bit silly to say. Even if we take all three of these to be roles only new players play (they aren't, definitely not MT or CT) - the player still intentionally had to go in and take the trait and therefore is assumed to accept the traits mechanics. If they have an issue with the trait or handling it because they are new then that is an issue that can be resolved by them not taking detrimental traits.

Forgive me if the cl tagging is wrong, this is not my codebase this just annoyed me enough to PR it.

Testing Photographs and Procedure

Screenshots & Videos

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

Changelog

🆑 qol: MT, CT, and Nurses can now take the bad leg trait. /🆑


Monday 2023-11-06 01:15:32 by fira

Fixes bugs with designator usage (#4693)

About the pull request

The Laser Designator is a JTACer's workhorse and it's CLUNKY AS HELL.

This fixes two main bugs:

  • The interactee is not properly cleared when using the designator (or any zoomed item), causing it to be unset instead of set the next time you use it. This means if you look up then back down your designator, you can't laze.

  • The interaction system wasn't made with movement in mind. It is a problem because zoom system allows movement, and designators are where the two meet. Now, they can explicitely keep interaction despite movement.

Explain why it's good for the game

QoL that should have been done 6 years ago, give or take

Because Zooming interactions are an awful mess, i'm flagging this for Testmerge where it'll inevitably break down

Testing Photographs and Procedure

I take designator, i look, i try to laze. I put them down, move, do it again. And again. Several combinations of actions.

The unzoom logic is blatantly busted and out of scope of the PR.

Changelog

🆑 fix: Fixed Rangefinders/Designators preventing you from lazing if you looked up/down them without moving. fix: Fixed Rangefinders/Designators forcing you to look up/down again if you had moved while using them. /🆑


Monday 2023-11-06 01:18:37 by Bjarl

Overmap 4.7: Gas Giants, More Storms, 8 hours of work (#1997)

About The Pull Request

Adds some content based on sprites I saw sitting around in the overmap file, mainly carp storms and dust storms. Carp storms throw space carp at you. Dust storms throw dust.

Also adds gas giants, a place to harvest gasses if you're low, and don't want to stop at a planet. They should be persistent. Your average gas giant mix is very cold, very high pressure, and absolutely not something you want to breathe. Plasma giants are cold and allow harvesting of plasma.

Electrical storms have been rebalanced to not Explode Your Ship. Minor and Moderate ones will now only shock and damage objects and mobs, major ones will still explode you, so remain careful.

image Example overmap with some carp migrations.

https://github.com/shiptest-ss13/Shiptest/assets/94164348/5c30fa9a-c7e4-453a-99a6-5c3564946b26 flying through a minor electrical storm

https://github.com/shiptest-ss13/Shiptest/assets/94164348/db7fcdf0-3f7a-4830-821e-a4a7106632ba gas giant

dreamseeker_rV09NnWKjl.mp4

image

plasma giant

dreamseeker_SLxmw6pvmv.mp4

A particularly dusty solar system

image

I might try and fix ion storms but I don't see what might be breaking them.

Why It's Good For The Game

More content for the overmap / balancing out some old systems

Changelog

🆑 add: Planets now can (and will) play a sound when you land on them add: Gas / Plasma giants, cold, dockable worlds with absolutely no livable surfaces. As a matter of fact it's all chasm. All highly pressurized, gas rich, chasm. add: Dust storms and carp storms now grace the sector. add: physical storms (dust, carp, asteroid), will now only trigger if you go through them too fast. Take it easy and you might get through unscathed. add: planets will now have a name on the overmap add: overmap hazards now have a description tweak: Space carp can now survive in hyperspace, their natural habitat balance: minor and moderate electrical storms will no longer Explode you balance: asteroid storm lists have been trimmed of Extremely Deadly ones fix: restores planet naming behavior, I believe this was unintentionally removed at some point fix: Ion storms work again. Fuck you whoever touched them last. soundadd: planet_landing_1 and planet_landing_2, (tech_notification and sos_morse_code from CM respectively. I don't know how to attribute properly please tell me how if you have issue with this attribution because I did not make these sounds they're from Colonial Marines) /🆑


Signed-off-by: Bjarl 94164348+Bjarl@users.noreply.github.com


Monday 2023-11-06 01:52:18 by jimmyl

new space ruin, the biological research outpost (#79149)

About The Pull Request

2023-10-21 18 02 39

adds this ruin to space ruin pool this is a shady (as NT always is) bioresearch outpost that got fucked up by an experiment this has like some puzzle aspect to it since you gotta find keycards and shit and press buttons to unlock shield gates this ends with you fighting a heart which if you defeat, destroys the blockade that prevents you from entering the outpost vault

also you can no longer literally just cut indestructible grilles or unanchor indestructible windows

new puzzle elements or something idk

variant of pressure plate that you cannot remove and it sends a puzzle signal cooler red puzzle doors that look very foreboding or something idk theyre for this ruin also puzzle blockades, which are indestructible dense objects that are destroyed if they receive a puzzle signal and also buttons and keycard pads for puzzles

2023-10-21.18-17-07.mp4
2023-10-21.18-19-20.mp4

stuff that throws electric shocks in a pattern, ignores insuls and only knocks down, and no you cannot just run past

2023-10-21.18-21-05.mp4

enemies

living floor, it can only attack stuff on top of it and it attacks until the victim is dead it is invincible to all but a crowbar, and it cannot move, and it remains hidden until a victim is in range

2023-10-21.18-23-15.mp4

living flesh, it can replace your limbs with itself the conditions for that are; the limb must have 20 or more brute, victim must be alive and dismemberable, the limb may not be torso or head, or the limb may not be living flesh alternatively it can replace a missing limb these are all checked with every attack they have 20 hp the limbs in question will sometimes act up, while passively draining nutrition, arms will randomly start pulling nearby stuff, legs may step randomly limbs when detached, turn into mobs and reactivate AI 2 seconds later. if the host is shocked, all living flesh limbs will detach, or if the host dies they will also do that

2023-10-21.18-29-10.mp4

Why It's Good For The Game

ruin variety is cool i think also the other things i added should be useful for other mappers for bitrunning or whatever

also bug bad for that one fix

Changelog

🆑 add: living floor, living flesh, and other stuff for the bioresearch outpost ruin add: bioresearch outpost ruin fix: you may not defeat indestructible grilles and windows with mere tools /🆑


Co-authored-by: Jacquerel hnevard@gmail.com


Monday 2023-11-06 01:52:18 by lizardqueenlexi

Basic Pirate NPCs (#79284)

About The Pull Request

Converts hostile pirate NPCs to basic mobs - specifically, a subtype of trooper. As their behavior is not meaningfully distinct from other troopers, this conversion mostly just sticks them on the existing AI behavior while keeping the rest the same.

Pirates do have one new thing going for them, though, to differentiate them from other troopers. They use the new plundering attacks component, which means that every time they land a melee attack, they steal money from the bank account of whoever they hit. This requires the target to be wearing an ID with a linked bank account, so it's not the hardest thing in the world to hide your money from them - but it's still something to be wary of! If killed, any mob with this component will drop everything they've stolen in a convenient holochip.

Why It's Good For The Game

Takes down 5 more simplemobs, and (I think) converts the last remaining trooper-type enemy to be a basic trooper. (It's possible there's more I've forgotten that could use the same AI, though.)

The money-stealing behavior is mostly good because I think it's funny, but it also makes the pirates something a little distinct from "yet another mob that runs at you and punches you until you die". They still do that, but now there's a little twist! This can be placed on other mobs too, if we want to make any other sorts of thieves or brigands.

Changelog

🆑 refactor: Pirate NPCs now use the basic mob framework. They'll be a little smarter in combat, and if you're wearing your ID they'll siphon your bank account with every melee attack! Beware! Please report any bugs. /🆑


Monday 2023-11-06 02:08:58 by Mike Bland

Add embedded TestTomcat to TomcatContractTest

The original version of the test copies strcalc.war into a temporary Docker container. It works really well, but since the Servlet runs in a separate process, we can't collect code coverage for it.

I then tried to use Mockito to write a @SmallTest for stringcalculator.Servlet, since HttpServletRequest and HttpServletResponse are pretty broad interfaces. It worked, but apparently Mockito's Java agent triggers deprecation warnings from Java 21 that don't bode well:

Plus, I hate the idea of mocking HTTP requests and responses.

I got the idea to research embedding Tomcat in the same process, and it turned out to be quite possible. I've included in the code comments links to the documentation I found that helped me out.

The wins are:

  • I can now successfully collect, display, and report code coverage for the stringcalculator.Servlet class.

  • I retain a high degree of confidence in the integration between Tomcat and the Servlet, instead of mocking HttpServlet{Request,Response}.

  • Launching and shutting down the embedded Tomcat server is so fast I don't have to call Threads.sleep(), speeding up the tests.

I'm still holding onto the LocalServer and related helper classes, as I still want to use them to demonstrate @LargeTests.

This change also enables coverage for the test-medium Gradle task. However, I'm thinking of introducing another JUnit tag and Gradle target to identify medium sized contract tests from which I want to collect coverage. I don't want code coverage from medium tests in general, necessarily, but I do want it from medium contract tests for specific integration points. (Usually I think of "internal API" wrappers when I think of these contract tests. Even though the Servlet isn't quite such a wrapper, it's still an adapter between the external framework (Tomcat) and the internal logic (the forthcoming StringCalculator).


Monday 2023-11-06 02:13:16 by lizardqueenlexi

[CI Fix] The Demonic Frost-Miner will not attack corpses. (#79294)

About The Pull Request

Fixes #79147.

Prevents the Demonic Frost-Miner from shooting at corpses by returning early from OpenFire(). Also adds the "gutted" status effect to the corpses in its arena so it won't try to gut them.

Why It's Good For The Game

#78826 introduced an unfortunate bug by placing corpses in the Frost Miner's arena. There were a combination of three factors at play here: that the Miner attacks corpses, that it happens to use colossus bolts in its attacks, which dust corpses, and that some unfortunate quirk of life code causes runtimes if, as far as I can tell, a life tick goes off when a mob is at the wrong point in the dusting process. The time this process takes happened to perfectly coincide with the Monkey Business unit test (being the first test that takes a significant period of time), causing it to randomly fail.

So, this fixes a flaky test that has been a pain in the ass for the last five days, is the big thing.

Also, it can't possibly have been intended for the Miner to run around obliterating the aesthetic corpses in its arena within the first 15 seconds of any given round. Completely ruining the mood!

I'll point out that this particular boss may have been forgotten in #77731, which set out to make only the colossus still gib/dust you, but even were that not the case I think it would be a bit silly for the Miner to be busy shooting lifeless corpses when a player shows up to challenge it, rather than standing in its scary ritual circle.

Changelog

🆑 fix: The Demonic Frost-Miner will no longer run around destroying the corpses in its arena the moment the round begins. /🆑


Monday 2023-11-06 02:50:16 by timhjersted

MAP and MUSIC MOD 0.9.9.6

MAP 0.9.9.6

Entrance to the Earth Temple is now blocked by a Large Amber Gem gate to prevent players from accidentally going there pre-Ashenpeak Village and getting wrecked and rage quitting :p Moved bonfire below burnt village to avoid sound at spawn Added cool "gate" blocking the corruption tunnel until you can access it from other side and reduced corruption biome nearby to more directly encourage exploration of the mountains Added escape route from parkour puzzle in the mountain Made mountain caverns more spacious in areas and added more friendly lighting (thanks villagers) Made several sign messages more concise and helpful Added bonfire in Earth Temple at a more natural location for a starting spawn if you come from the main entrance Removed wooden boomerang (since magic one is so close) Added 2 copper armor sets to starting spawn so the player doesn't have to change sets so fast Added flower vines to a jungle zone Added another entrance to Mountain Caverns Removed ruby hook as reward for a certain puzzle Removed some tombstones in catacombs entrance Replaced voodoo doll in Aaron's home with Aaron's Protection Stone! (Needs latest mod update to work) Made secret Herme's Boots slightly easier to discover (via visual hints) and obtain (via 2 peace candles) Added a few more shallow pools in the catacombs Converted two jungle areas to forest

MUSIC MOD 0.9.9.6

Fixed village music playing below town Fixed rain playing below ground


Monday 2023-11-06 02:51:24 by reddification

A I hate my life

Rat enemy + AI enemy behavior (intermediate) Fixed lights in house


Monday 2023-11-06 03:14:00 by NovaXe

i'm not gonna work on this shit till midnight suck my ass monday me, also moved PersistentMessage from utils.py to smart_functions.py nad began its implementation via the now playing command


Monday 2023-11-06 04:17:29 by EntranceJew

grenades WIP

  • added trajectory for grenade throws
  • removed redundant Init/CreateGrenade, use baseclass
  • renamed confgrenade vars to make more sense
  • added UI to conf/smoke/firegrenade
  • removed dead code in smoke entity
  • brought in ttt_flame entity
  • moved ttt_flame globals to game_effects library, affects C4
  • fixed ttt_flame not utilizing offset from trace, as the intent seems to be
  • allowed disarming players with impacts
  • made discombobs bouncy
  • grenade UI indicators in gameplay options
  • fixed basegame bug where grenades would self-intersect on raytrace for ground searches
  • smoke projectile packs in convars to game_effects
  • smoke projectile no longer uses accessor functions
  • smoke projectile centers itself by half of its radius to prevent floorsmokes
  • hook for confgrenade explode
  • particle dispersal from discombob
  • consolidate ttt_smoke into Disipate and Remove
  • force add PVS code (still doesn't fix ParticleEmitter shenanigans)
  • smoke effects use same parameters, but smokegrenade convar differs
  • ttt_smoke now utilizes the space better to fill the volume better even with maximum variance
  • fires get funny particles and trails
  • ttt_flame hitboxes adjusted their hitboxes are way too big
  • new explosion sound Tim provided
  • new fizzle sound edited together by me
  • game_effects.Extinguish now plays a noise
  • ttt_flame can no longer re-ignite
  • PushPullRadius from conf moved to game_effects
  • thirdparty menu
  • vfire
  • factored out game_effects.ScorchDown
  • potentially ruined ttt_firegrenade_proj killing itself frame0 because extinguish might not know what to do with it
  • reorganized BaseClass.Initialize for no good reason
  • addon checker result ammended
  • ttt_flame bringdown
  • ttt_flame has netvars for new params
  • startfires longer signature
  • ttt_flame / SpawnFire has more accurate hitbox
  • fire size / life span / spread / prevent discombob fling convars
  • removed legacy renderer for fire, since smoke is broken, nobody gets to be happy
  • smacking grenades makes explosions
  • added changelog
  • fixes from TimGoll
  • renamed boom_ball to "electric_explosion"
  • added more addonchecker items
  • passes down the inflictor to pushpullradius
  • documented extinguish hook
  • gameEffects docs
  • remove postround protection and redundant latch, correct trace offset
  • don't tinker with the PVS if it isn't fixing problems
  • it wasn't relevant because there IS no physics object right now
  • all this for a little bit of not scorching in the wrong spot
  • all this does is prevent repeat callbacks on the explode method on the client, sometimes
  • back out cringe network changes
  • replace scorch with PaintDown
  • looping smoke sound global
  • SmokeData color can now be manually overridden
  • killed todos
  • docs fixes
  • added animation timers back in
  • networked the var and run only in server to prevent double sfx

Monday 2023-11-06 05:16:42 by Andrew DGalga

might be final version. Cleaned up style but forgot to commit and went straight to trying to clean up weird structure. I have variables I only use to trigger refresh, but when I try to find a way around using the current clunky and ugly structure I run into problems of inaccurate information, fail to refresh. Finally realized why I have to set 1 instead of 0 in multiple places, and boy do I feel stupid for not seeing it before. Downside is I don't currently see a way around it. So, got a program that works but is ugly. Next step will probably to try to make a program that isn't ugly.


Monday 2023-11-06 05:54:22 by Aleksa Sarai

tree-wide: use /proc/thread-self for thread-local state

With the idmap work, we will have a tainted Go thread in our thread-group that has a different mount namespace to the other threads. It seems that (due to some bad luck) the Go scheduler tends to make this thread the thread-group leader in our tests, which results in very baffling failures where /proc/self/mountinfo produces gibberish results.

In order to avoid this, switch to using /proc/thread-self for everything that is thread-local. This primarily includes switching all file descriptor paths (CLONE_FS), all of the places that check the current cgroup (technically we never will run a single runc thread in a separate cgroup, but better to be safe than sorry), and the aforementioned mountinfo code. We don't need to do anything for the following because the results we need aren't thread-local:

  • Checks that certain namespaces are supported by stat(2)ing /proc/self/ns/...

  • /proc/self/exe and /proc/self/cmdline are not thread-local.

  • While threads can be in different cgroups, we do not do this for the runc binary (or libcontainer) and thus we do not need to switch to the thread-local version of /proc/self/cgroups.

  • All of the CLONE_NEWUSER files are not thread-local because you cannot set the usernamespace of a single thread (setns(CLONE_NEWUSER) is blocked for multi-threaded programs).

Note that we have to use runtime.LockOSThread when we have an open handle to a tid-specific procfs file that we are operating on multiple times. Go can reschedule us such that we are running on a different thread and then kill the original thread (causing -ENOENT or similarly confusing errors). This is not strictly necessary for most usages of /proc/thread-self (such as using /proc/thread-self/fd/$n directly) since only operating on the actual inodes associated with the tid requires this locking, but because of the pre-3.17 fallback for CentOS, we have to do this in most cases.

In addition, CentOS's kernel is too old for /proc/thread-self, which requires us to emulate it -- however in rootfs_linux.go, we are in the container pid namespace but /proc is the host's procfs. This leads to the incredibly frustrating situation where there is no way (on pre-4.1 Linux) to figure out which /proc/self/task/... entry refers to the current tid. We can just use /proc/self in this case.

Yes this is all pretty ugly. I also wish it wasn't necessary.

Signed-off-by: Aleksa Sarai cyphar@cyphar.com


Monday 2023-11-06 06:00:18 by SkyratBot

[MIRROR] swaps one of the fridges in snowcabin to be in line with the rest [MDB IGNORE] (#24754)

  • swaps one of the fridges in snowcabin to be in line with the rest (#79414)

About The Pull Request

In truth, this is an IDED PR (this is not at all sarcasm, and as we all know nobody would lie on the internet) that came about from a round i just got done playing wherein i was in snowcabin trying to cook up some food for fun, well wouldn't you know it i couldn't open one of the fridges, what gives? well i got to thinkin it has to do with the fridge type used, for some reason the fridge that holds the universal enzyme uses the freezer/fridge/kitchen type instead of the fridge/open type that the other two do, so i went ahead and just changed it off to the other fridge types so now anyone can open it.

Why It's Good For The Game

its a bit stupid to have a single fridge thats different from the rest for no discernable reason, i can't think of any reason universal enzyme would need to be guarded ever, you could just say "well why not go back onto the station and grab some if the fridge is locked", well if for some reason i'm barred from the station i want to be able to use as many tools within my reach as possible preferably without many hoops, and this ones unnecessary.

Changelog

fix: changes the type of fridge used to hold the universal enzyme in the snowcabin gateway's kitchen, letting everyone access it like the rest of the fridges.

/:cl:

  • swaps one of the fridges in snowcabin to be in line with the rest

Co-authored-by: Donglesplonge 120208006+Donglesplonge@users.noreply.github.com


Monday 2023-11-06 06:06:32 by riot

reduces timer on joining ert after death to 30 seconds (#4652)

About the pull request

reduces timer

Explain why it's good for the game

Having to wait a full minute to join an ERT is annoying, it was better b4 when timer from ERT was a minute as well, but 30 second ERT means if u die just b4 ERT goes you cant join regardless.

if ppl are ghosting bc they want ert then they are stupid.

Testing Photographs and Procedure

Screenshots & Videos

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

Changelog

🆑 balance: Timer on attempting to join ERT after death is now 30 seconds down from 1 minute /🆑


Monday 2023-11-06 06:06:32 by kiVts

DFB property changes. (#4590)

About the pull request

part 2 out of 4 This does a big touch up on defibrillation property in research

Well, to start off, max_level = 1 was removed. It appears warcrimes forgot to remove it since process proc has benefits explicitly for higher levels. I would call it a bug(oversight rather).

Second: Ghosts get notified when the chem starts to try and defib you, so you dont just wonder how did you stand up, and pretty neat too.

Third: The >6 level of defib to apply healing like with actual item defib is too high, so we move requirement down to >1 but make it heal much, much worse at levels lower than 5. eg it took 20 units to heal ~20 brute at level 3(you will literally perma lmao), at level 5, however, this will go at around 2.5 per life tick, level 8 will give 4 damage heal. This is a balance change(buff) But hardly so since its research, Research is already neglecting most of the time this property.

Fourth: removes one letter var, This whole file is entombed with them but Im not doing that for now.

Explain why it's good for the game

Defib property is way too underused and crudely made. This fixes it, partially.

Testing Photographs and Procedure

Screenshots & Videos

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

Changelog

🆑 kiVts add: Ghosts get notified when they are being revived by DFB property balance: DFB property healing threshold lowered, You can create DFB property higher than one. /🆑


Co-authored-by: Zonespace 41448081+Zonespace27@users.noreply.github.com


Monday 2023-11-06 07:24:43 by freshgum

refactor(*): use NativeNull constant in place of null

Gotta shave off a few more bytes.

To anyone who actually reads these: I'm quite curious as to how far I can realistically take this. How small can you make a fully-featured DI container?

Apparently, pretty damn small. According to Bundlephobia0, the original TypeDI weighs in at just 9.5 kB, whereas we're ever so slightly bigger: 10.3. That's nuts; the additional functionality packed into this fork, and the improved DX, all fit into just 0.8 kB. How cool is that?

I suppose it helps that I've tried to do as much as possible in ambient declarations. There's a lot of types behind TypeDI++; just looking at Intellisense might make your head spin.

If we keep going and look at Inversify, according to Bundlephobia the library comes in at 49.5 kB. That seems a bit high; perhaps the website is wrong?

TypeDI++ is still missing some nice to have features from Inversify, but they'd be implemented as contributory packages, as opposed to bundling them into the core. If the website isn't mistaken, perhaps Inversify does a bit too much for its own good.

Then, there's tsyringe2: 15.kB. Not bad :-)


As a general note on minification: I kinda feel like the whole "after GZIP" thing is a cop-out: that's implied. I'm sure if you ran statistics, the majority of servers have GZip enabled, or at least support it.

Plus, "GZip" could mean anything; for a format with variable compression levels, does that mean they've used the highest compression? In that case, we have to wonder if that's a fair test. Who maxes out the compression on their server?

Anyway, always been fascinated with how much you can jam into a single JavaScript bundle. It's a really interesting problem domain; if you swing the pendulum too far, you ruin DX (think AngularJS-esque error minification), but if you don't perform any sort of minification / bundle analysis, you're wasting a lot of bytes.


Monday 2023-11-06 07:37:29 by Rob

Add HTML/Writer class

I really didn't want to do this, but I'm pretty happy with how it turned out, even though there's still a lot of finishing work to do.

Getting proper HTML out of PHP's built-ins is just an enormous pain in the ass -- maybe not even doable. Checking output from DOMDocument functions with phpunit's AssertXMLStringEqualsXMLString() is downright impossible. At least, I couldn't figure out how to do it.

The core of the problem is this: these functions are not HTML-specific. They are somewhat generic to XML. In HTML, you have some tags, like '
', which are self-closing tags (or, "void tags", see e.g. https://stackoverflow.com/questions/3558119/are-non-void-self-closing-tags-valid-in-html5). You also have some tags which can be empty but are NOT self-closing, like ''.

The built-in functions don't seem to be able to handle both cases at the same time. If there's some magic incantation that makes them behave properly, I can't figure it out.

I also wanted an HTML sanitizer that can safely handle unsafe input as well as the ability to reformat html output in a consistent way without relying on tidy as an external dependency.

The HTML Writer is a good start, but needs some work still. Turning on the ENCODE_ENTITIES flag is causing a lot of mischief currently -- it seems I'm going to need to load the list of supported entities and then ignore a whole lot of them (sigh, TODO).

Many more tests need to be added for the new sanitizing and reformatting functions.


Monday 2023-11-06 07:40:50 by jmukobi

First rev of the full schematic and layout (very rough)

My traces are shit bc I don't know how to draw traces properly. I didn't do the diode traces because I was struggling with vias. The diodes should probably be moved bc I wasn't sure where was best to place them for ideal trace drawing. I think we should have multiple traces of vsolar and gnd that cross each of the bends. Multiple traces instead of one large one to prevent crack propagation. Better yet: multiple large ones. Any copper in the bends should run perpendicular to the bending axis per manufacturer recommendations. I made through hole pads for the mounting holes, but didn't place them in the right spots in the layout. The mounting holes are not at nice intervals in the CAD for good reason, but the kicad grid snap wasn't cutting it. The cells are also not precisely placed. They are like +-2 mm or so, but they don't all line up perfectly which must change, for I am seriously irked by it. Now I know why nobody's board holes line up properly: they just put them in random spots near where they should be 💀. Is there a way to position components by offsetting it from things by a float value (like dimension tool in CAD)? Each panel has 8 cells in series. All panels are in parallel. We might find out from testing that we need to remove another cell from the body-fixed panel for the camera to freely glide out. In this case, we can put 9 cells on another panel 🤷:skin-tone-6:. The camera mounting holes are in the edge cuts. Should these be through holes only? I am figuring we mount the camera on top of the pcb, and put screws through it, instead of cutting out a large rectangle for the camera to mount straight to the aluminum. As I wrote that, I realized we will need places for the bolt heads on the other side. The pcb mounting holes in the corners are also in the edge cuts.


Monday 2023-11-06 09:26:01 by Darrick J. Wong

xfs: change the order in which child and parent defer ops are finished

commit 27dada070d59c28a441f1907d2cec891b17dcb26 upstream.

The defer ops code has been finishing items in the wrong order -- if a top level defer op creates items A and B, and finishing item A creates more defer ops A1 and A2, we'll put the new items on the end of the chain and process them in the order A B A1 A2. This is kind of weird, since it's convenient for programmers to be able to think of A and B as an ordered sequence where all the sub-tasks for A must finish before we move on to B, e.g. A A1 A2 D.

Right now, our log intent items are not so complex that this matters, but this will become important for the atomic extent swapping patchset. In order to maintain correct reference counting of extents, we have to unmap and remap extents in that order, and we want to complete that work before moving on to the next range that the user wants to swap. This patch fixes defer ops to satsify that requirement.

The primary symptom of the incorrect order was noticed in an early performance analysis of the atomic extent swap code. An astonishingly large number of deferred work items accumulated when userspace requested an atomic update of two very fragmented files. The cause of this was traced to the same ordering bug in the inner loop of xfs_defer_finish_noroll.

If the ->finish_item method of a deferred operation queues new deferred operations, those new deferred ops are appended to the tail of the pending work list. To illustrate, say that a caller creates a transaction t0 with four deferred operations D0-D3. The first thing defer ops does is roll the transaction to t1, leaving us with:

t1: D0(t0), D1(t0), D2(t0), D3(t0)

Let's say that finishing each of D0-D3 will create two new deferred ops. After finish D0 and roll, we'll have the following chain:

t2: D1(t0), D2(t0), D3(t0), d4(t1), d5(t1)

d4 and d5 were logged to t1. Notice that while we're about to start work on D1, we haven't actually completed all the work implied by D0 being finished. So far we've been careful (or lucky) to structure the dfops callers such that D1 doesn't depend on d4 or d5 being finished, but this is a potential logic bomb.

There's a second problem lurking. Let's see what happens as we finish D1-D3:

t3: D2(t0), D3(t0), d4(t1), d5(t1), d6(t2), d7(t2) t4: D3(t0), d4(t1), d5(t1), d6(t2), d7(t2), d8(t3), d9(t3) t5: d4(t1), d5(t1), d6(t2), d7(t2), d8(t3), d9(t3), d10(t4), d11(t4)

Let's say that d4-d11 are simple work items that don't queue any other operations, which means that we can complete each d4 and roll to t6:

t6: d5(t1), d6(t2), d7(t2), d8(t3), d9(t3), d10(t4), d11(t4) t7: d6(t2), d7(t2), d8(t3), d9(t3), d10(t4), d11(t4) ... t11: d10(t4), d11(t4) t12: d11(t4)

When we try to roll to transaction #12, we're holding defer op d11, which we logged way back in t4. This means that the tail of the log is pinned at t4. If the log is very small or there are a lot of other threads updating metadata, this means that we might have wrapped the log and cannot get roll to t11 because there isn't enough space left before we'd run into t4.

Let's shift back to the original failure. I mentioned before that I discovered this flaw while developing the atomic file update code. In that scenario, we have a defer op (D0) that finds a range of file blocks to remap, creates a handful of new defer ops to do that, and then asks to be continued with however much work remains.

So, D0 is the original swapext deferred op. The first thing defer ops does is rolls to t1:

t1: D0(t0)

We try to finish D0, logging d1 and d2 in the process, but can't get all the work done. We log a done item and a new intent item for the work that D0 still has to do, and roll to t2:

t2: D0'(t1), d1(t1), d2(t1)

We roll and try to finish D0', but still can't get all the work done, so we log a done item and a new intent item for it, requeue D0 a second time, and roll to t3:

t3: D0''(t2), d1(t1), d2(t1), d3(t2), d4(t2)

If it takes 48 more rolls to complete D0, then we'll finally dispense with D0 in t50:

t50: D(t49), d1(t1), ..., d102(t50)

We then try to roll again to get a chain like this:

t51: d1(t1), d2(t1), ..., d101(t50), d102(t50) ... t152: d102(t50)

Notice that in rolling to transaction #51, we're holding on to a log intent item for d1 that was logged in transaction #1. This means that the tail of the log is pinned at t1. If the log is very small or there are a lot of other threads updating metadata, this means that we might have wrapped the log and cannot roll to t51 because there isn't enough space left before we'd run into t1. This is of course problem #2 again.

But notice the third problem with this scenario: we have 102 defer ops tied to this transaction! Each of these items are backed by pinned kernel memory, which means that we risk OOM if the chains get too long.

Yikes. Problem #1 is a subtle logic bomb that could hit someone in the future; problem #2 applies (rarely) to the current upstream, and problem

This is not how incremental deferred operations were supposed to work. The dfops design of logging in the same transaction an intent-done item and a new intent item for the work remaining was to make it so that we only have to juggle enough deferred work items to finish that one small piece of work. Deferred log item recovery will find that first unfinished work item and restart it, no matter how many other intent items might follow it in the log. Therefore, it's ok to put the new intents at the start of the dfops chain.

For the first example, the chains look like this:

t2: d4(t1), d5(t1), D1(t0), D2(t0), D3(t0) t3: d5(t1), D1(t0), D2(t0), D3(t0) ... t9: d9(t7), D3(t0) t10: D3(t0) t11: d10(t10), d11(t10) t12: d11(t10)

For the second example, the chains look like this:

t1: D0(t0) t2: d1(t1), d2(t1), D0'(t1) t3: d2(t1), D0'(t1) t4: D0'(t1) t5: d1(t4), d2(t4), D0''(t4) ... t148: D0<50 primes>(t147) t149: d101(t148), d102(t148) t150: d102(t148)

This actually sucks more for pinning the log tail (we try to roll to t10 while holding an intent item that was logged in t1) but we've solved problem #1. We've also reduced the maximum chain length from:

sum(all the new items) + nr_original_items

to:

max(new items that each original item creates) + nr_original_items

This solves problem #3 by sharply reducing the number of defer ops that can be attached to a transaction at any given time. The change makes the problem of log tail pinning worse, but is improvement we need to solve problem #2. Actually solving #2, however, is left to the next patch.

Note that a subsequent analysis of some hard-to-trigger reflink and COW livelocks on extremely fragmented filesystems (or systems running a lot of IO threads) showed the same symptoms -- uncomfortably large numbers of incore deferred work items and occasional stalls in the transaction grant code while waiting for log reservations. I think this patch and the next one will also solve these problems.

As originally written, the code used list_splice_tail_init instead of list_splice_init, so change that, and leave a short comment explaining our actions.

Signed-off-by: Darrick J. Wong darrick.wong@oracle.com Reviewed-by: Dave Chinner dchinner@redhat.com Reviewed-by: Brian Foster bfoster@redhat.com Signed-off-by: Chandan Babu R chandan.babu@oracle.com Acked-by: Darrick J. Wong djwong@kernel.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org


Monday 2023-11-06 10:36:18 by Petre Ro

31.3 It fixed our first test! The isPublished field is no longer being shown. But, curiously, we made another test fail. Whac-A-Mole! Now it's testPublishTreasure - failing on line 223.

Let's pop over and search for that. Okay, as the name suggests, we're testing to see if we can publish this treasure. We create a treasure that is 'isPublished' => false, log in as its owner, then send a patch() request to set isPublished to true. Finally, we assert that the JSON in the response has isPublished true. And that's what's failing.

The ApiProperty Security Option on Patch Operations

  • Why? It took me a bit of debugging to unravel this mystery. The problem is that, when the JSON is deserialized, isPublished is not writable.

The security expression is called both when serializing and deserializing: when taking the JSON from the request and updating the object. For some reason, during deserialization, our security expression is returning false!

The reason is... arguably a bug: I have an issue open on API Platform. When you make a patch() request, our data provider first loads the object from the database. Despite this, when the expression is called during deserialization, object is always null. And because our voter only supports if object is a DragonTreasureApi, this returns false. Ultimately, no voters support this, and when that happens, access is denied. The end result is that isPublished is not writable.

The workaround is a bit weird, but stay with me here. We're basically going to allow access to this field if object === null or is_granted("EDIT", object).

Think about this. If we're reading a DragonTreasure, then object is never null. We will always have an object, so the voter will always be called. This object === null will only happen during deserialization: when we're checking to see if we can write this field. This effectively makes the field always writable. That seems like a problem, but it's not, because we already have security up here on Post() and Patch(). For Patch, only the owner can edit this object. So once you've passed the Patch security, we already know that you can edit this object. So, down here, it's okay to let us always edit this field.

If this looks too weird to you, another strategy is to leave API security off of the field entirely. Then, we would use the mapper to handle conditionally setting the isPublished field. We could put some security logic right here that basically says:

Only set the isPublished field on the DTO if you're the owner. Otherwise, leave isPublished null as the default.

It's good to remember that we do have full control of the data via our mappers.

Okay, let's go back and re-add our security expression. Oh! And go back to the mapper as well: I just realized that we also want to keep that isPublished code... just not in the if statement.

All right, now head over and rerun all the tests.

symfony php bin/phpunit tests/Functional/DragonTreasureResourceTest.php

And... oooh! So close! We're down to just one failure in testPublishTreasure. This tests that, when a treasure is published, we send a notification. Let's see how we can tackle that in our new system next!


Monday 2023-11-06 10:36:18 by Petre Ro

30.6 Updating the Custom Validator

  • Where we're failing is all the way down here. This checks to see if we're allowed to change the owner to someone else. We log in as and edit our own treasure... but try to change the treasure to another owner! This is like a dragon Santa Claus that sneaks into other dragon's caves for a late-night delivery of treasure. That's super nice... but not something we want to allow.

Previously, we had a custom validator that prevented this. So let's re-add that!

Open DragonTreasureApi and find the $owner property. Add #[IsValidOwner]: a validator we created in an earlier tutorial.

You'll find it in src/Validator/. Previously, this validator expected its constraint to be used above a property that held a User entity. We're putting it on a property that holds a UserApi. So like with the voter, we need to update it for the new reality.

Right here, assert() that is an instanceof UserApi.

Down here, we need to check if the value (meaning the UserApi that's on this property) is not equal to the currently authenticated user. Once again, we'll use the ids to compare this. And... also once again, I'll use assert() to help my editor. Now... it's happy about getId()... but not about my missing semicolon!

Moment of truth! Run that test:

symfony php bin/phpunit tests/Functional/DragonTreasureResourceTest.php --filter=testPatchToUpdateTreasure

It passes! Try everything:

symfony php bin/phpunit tests/Functional/DragonTreasureResourceTest.php

And... ah! We're down to just three failures. And they're all related to the same thing: the isPublished property. Our DragonTreasureApi doesn't even have an isPublished property yet. We saved that for last because it's a little different and interesting. Let's tackle it next.


Monday 2023-11-06 10:36:18 by Petre Ro

30.5 Adding the application/merge-patch+json Header

  • Progress! The current response status code is now 415. This is thanks to a small detail we talked about a few times:

    The content-type application/json is not supported. Supported MIME types are application/merge-patch+json.

When we make a PATCH request, we need to have a headers key with Content-Type set to application/merge-patch+json. The reason we didn't need that before, as I mentioned in a previous tutorial... is due to some funny business with formats which made that, accidentally, unnecessary for this resource. But now we do need it.

Let's quickly add that to all of our patch() requests. There's a bunch of them. Zoom!

Let's see if we have any luck!

symfony php bin/phpunit tests/Functional/DragonTreasureResourceTest.php --filter=testPatchToUpdateTreasure

And... ooh... it dies. It hit our dump! That's coming from DragonTreasureApiToEntityMapper: when the owner is sent in the JSON. Comment this out for a moment so we can see the full picture. Run the test again:

symfony php bin/phpunit tests/Functional/DragonTreasureResourceTest.php --filter=testPatchToUpdateTreasure

Current response status code is 200, but 422 expected.

Coming from down on line 144. So, looking at our test, most of it passes. Line 144 is way down here. This means that we are able to send a patch() request and have that update!

And the full flow here is fascinating! When we make a patch() request to a treasure, API Platform starts by using our data provider to find the DragonTreasure entity. Then we map that to a DragonTreasureApi object. Next, the new value is deserialized onto that DragonTreasureApi. Finally, in our processor, we map the updated DragonTreasureApi back to a DragonTreasure entity, and that is ultimately what saves. The DragonTreasureApi is then serialized and returned as JSON.

So this is working... and I love how all the pieces come together.

Where we're failing is all the way down here. This checks to see if we're allowed to change the owner to someone else. We log in as and edit our own treasure... but try to change the treasure to another owner! This is like a dragon Santa Claus that sneaks into other dragon's caves for a late-night delivery of treasure. That's super nice... but not something we want to allow.


Monday 2023-11-06 11:12:12 by CDB

Drip or Drown; Premier style update. And some other clothing related stuff. (#4757)

  • Buncha stuffff

First and foremost, it's been like four years - No one has come with a better set of equipment for the Premier in terms of aesthetics and quality.

Replaces much of the Premiers old/mismatched green shit with newer eris captain sprites, if we want to re-color this a bit that's fine but either way we /desperately/ need to replace these ancient sprites.

Premier additionally now actually starts with their coat, and gets a pair of dress shoes instead of the old scuffed brown shoes.

Mind, the original hat/coat/uniform are still available as alternatives if for SOME reason you want to dress up like a christmas tree. I did not add an alt for the space armor/helmet due to them A. not matching and B. being old sprites. I guess if someone REALLY wants I'll port the /tg/ carapace armor/helmets more up to date sprites as an alt.

Ports the funny cyberpunk jacket from eris(in the loadout.)

ports the eris preacher robes icons, but doesn't code them in quite yet. I couldn't be fucked, there's SO many.

Actually adds the formal IH uniform in as well as doing some tweaks to the icon so that WO + spec can also get a formal uniform with their normal rank pips

ports the eris syndie berets.

As always, a big thanks to the talented spriters over at Eris

  • new stuff. Also fixes linters lol oops

Adds to the greyson loot pool an armored void using sprites from Près de l'oiseau#2625 over on the Eris discord.

Replaces some more, old sprites. Miner suit is replaced as pictured as well as the industrial RIG - sprites by Près once more.

  • Update station.dm

  • Fixes spawning of the greyson combat void helmet

  • puts credits in the code instead of on the PR

  • minor stuff.,

Slighjtly fixes syndie beret- the north facing sprites were 1 pixel too far down.

WO helmet is no longer missing its verb to turn the light on. Good work there, Rebel - how did no one notice this till now?

  • actually fixes it. ugh.

  • BUNCHA new church stuff

Primes hat now has 9 alts

Primes coat now has 5

credit to Près de l'oiseau#2625 once more for the fantastic sprites.


Monday 2023-11-06 11:12:12 by CDB

Another Omni-PR. Guild buffs, ho. (#4683)

  • Another Omni-PR. Guild buffs, ho.

I don't make multiple PRS.

First and foremost, adds in a fairly detailed guidebook written a good while ago by Hound to explain many facets of the shield. A little out of date, but still likely useful. Includes a cool coder sprite for the book! Book can be found in any engineering manuals bookcase because of course it can.

Adds the ability to create electrochromic windows using an RCD at a slightly higher cost than window.

Allows one to create r-windows with an RCD because why not, it's a highly advanced tool and many of the windows around the colony are r-windows.

Window tint controllers can now be crafted(found in the appliances tab, requires a signaler) and deconstructed with a screwdriver, refunding some plastic. A reminder that these are DISTANCE based, keep that in mind when planning your sexroom.

Refactors refined scrap to not be a shitty snowflake material, should now properly work for the nanoforge(alongside all its old uses - please lemme know if something is being weird.)

Pointing gives a message again about who's pointing at what. Fucking weird that it was gone, code by Trilby.

Ports some sprites for pits/graves from Baystation, will eventually do something with these.

Brings back the regular shemagh selection, the curated ones that were actually made on purpose and had better color coordination than the custom ones(custom ones are still in.)

Adds addiction chance to smokes. Buffs smoke sanity gain(.5->.8) while adding minor downsides Smoking will generally result in addiction due to how smoking is done(repeatedly hitting the cig), withdrawal will result in reduced vigilance/bio(shaky hands, can't focus).

Citalopram 'balansed'. Now provides a notable amount of sanity back, but leaves you just a bit foggy(slowdown, rob/tgh down. Side effects halved when injected. Why? So you consider a doctor instead of just carrying 2400u of cit in a pill bottle. )

  • Oops! All wild edits.

Fully removes the changes made for the failed attempt at pitcode.

actually adds the code for the drug changes lol, compiles now.

  • More fixes.

Testing done from top to bottom.

Also fixes another wild edit in the materials file and turf file, oops.

  • Fixes an oversight.

adds nicotine changes to fine nicotine. Side effects are slightly lower since it's more expensive and rare.

  • Update code/datums/craft/recipes/appliances.dm

Co-authored-by: Trilbyspaceclone 30435998+Trilbyspaceclone@users.noreply.github.com

  • whateverf!

Co-authored-by: Trilbyspaceclone 30435998+Trilbyspaceclone@users.noreply.github.com


Monday 2023-11-06 11:12:12 by CDB

Events 'n Objectives. (#4755)

  • Events 'n Objectives.

Seems to have FINALLY fixed* infestation events causing mobs to go to burned outpost, spider outpost, etc. Due to the way this fix works(by marking these areas as "maintenance" this may cause some unforeseen consequences, I have tested it about as well as I can but that's worth noting. Blame this system

Additionally, many factions had all their individual objectives returned - including the semi antag ones. Now you'll be bribed with tasty, tasty level ups in exchange for being a bastard. It goes without saying that Marshals did not get given the 'be a shithead' objectives back for reasons that should be obvious(massive access, authority, etc), if you lot want them enabled for Marshals then we can I guess consider it?

Some of these will probably have bugs and some of them may need to be tweaked or considered for removal, but overall I think they should offer some incentive for players to be a lil naughty in exchange for level ups - or not!

  • more fixe

Maybe fixes the issue with hiveminds/blobs spawning in dungeons like preppers. Seems to have at least limited both to spawning on colony zees instead of sometimes popping up in preppers 'n such. They do sometimes spawn outside, still but that's ....okay, i guess.

  • Ooops! remembers to actually undo a testing fchange

  • gets rid of storyteller migration filtering. causes issues.

  • Removes church force-convert objective.

fixes #4771


Monday 2023-11-06 11:33:24 by Justin Chadwell

fix: use custom implementation for secret scrubbing

This was a fun exercise in processing streams in go, and an absolutely massive nerd-snipe :(

Essentially, we need a custom transformer to handle precisely matching Reads on the underlying source with the output - we shouldn't hold output any longer than is absolutely neccessary.

To be able to do this at all in any reasonable way, we need a trie, and handle all the secrets at once, instead of doing multiple passes. Multiple passes won't work, since it's possible to accidentally trim too much at each step, which would be very sad.

e.g. imagine secrets (aaa, bbb, ccc, etc), and an input (cba)

In removing secret aaa, we would trim to cb, then we'd remove bbb to trim to c, then finally trim to nothing. However, this is overly enthusiastic, we could easily just trim to cb, if we knew about all the secrets at once.

So, we need a trie, and we need a custom implementation of one. This is because no off the shelf implementation seems to allow traversing the trie state-by-state. Thankfully, it's a pretty short implementation to implement one from scratch, and not too much harder to turn it into a radix tree (which lets us use quite a lot less memory).

With our trie, we can implement our custom transformer, which is an utter pain. Honestly, the comments should explain all the fun edge cases it's possible to hit. There's a lot of tests added as well, each of which was a real horrible thing I hit while implementing it.

I played around a bit with benchmarking, but ugh, it's a tiny bit slower than the original implementation (maybe by like ~25%?). It's not huge, but the latency problem is actually solved. Some potential things I did look into and gave up on:

  • Only copy into dstBuf when dst is full (requires tons of extra conditionals, so slows everything down).
  • Avoid copies at all costs by having "virtual buffer pointers" into src, that indicate future data to copy (not only is this slower, the logic becomes truly incomprehensible).
  • Playing with off-the-shelf radix tree implementations, but they're so inconvenient to use for this specific use case, it'd be way more trouble than it'd be worth.

Any ideas welcome, but honestly, I've looked at enough flamegraphs today.

Signed-off-by: Justin Chadwell me@jedevc.com


Monday 2023-11-06 12:00:52 by Adithya R

[DNM][HACK] telephony: Force Class 0 SMS to Class 1

This kills Flash SMS messages. Fuck you airtel

Change-Id: Ifb0c9e8bae5c12868d178fbdaeceb2cc72a0ffb6 Signed-off-by: Sageofd6path mail2anirban95@gmail.com Signed-off-by: Hưng Phan phandinhhungvp2001@gmail.com


Monday 2023-11-06 12:10:03 by Vegard M

Working on feed page

Working on my feed page. I have chosen to disregard any posts without body content, as I think they're ugly. That said, I've asked for feedback regarding this and might end up changing that.

The work done in this commit was: index.html - removing placeholder content formValidation.mjs - removed console.log getActions.mjs - here's the big boy this round. This is where I will store all functions pertaining to working with the Get method. Thus far I've added the function to print my feed and started work on the sortArray function which will sort my array, then print the feed based on what the user wants to see. See JSDocs for more getData.mjs - not much has changed, just lowercased some letters and wrote some thoughts. postData.mjs - fixing issue in setting data to local storage. Adding the username to local storage, so I can provide buttons to edit/delete your own posts later down the line CSS - minor changes so the feed looks less awful


Monday 2023-11-06 12:16:53 by spartanbobby

Resprites Tactical shotgun stock + stock now comes standard on all tactical shotguns (yes you can remove it) (#4444)

About the pull request

See title

Remember: something that is self-evident to you might not be to others. Explain your rationale fully, even if you feel it goes without saying. -->

Explain why it's good for the game

It's there, sitting, unused for years, yes it kinda sucks but the sprite is good and it makes the shotgun look cooler so we might as well let it be used

https://i.imgur.com/erbgUaK.png

Testing Photographs and Procedure

Screenshots & Videos

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

Changelog

🆑 SpartanBobby, esselnek add: tactical shotguns now come standard with their stock. Yes you can remove it if you dont want it add: new tactical shotgun stock sprite done by esselnek /🆑


Monday 2023-11-06 12:17:04 by David Berenstein

docs: changed some warning to more friendly notes (#4108)

Description

changed some warning to more friendly notes

Closes #4107

Type of change

(Remember to title the PR according to the type of change)

  • Documentation update

How Has This Been Tested

(Please describe the tests that you ran to verify your changes.)

Checklist

  • I added relevant documentation
  • I followed the style guidelines of this project
  • I did a self-review of my code
  • I made corresponding changes to the documentation
  • My changes generate no new warnings
  • I filled out the contributor form (see text above)
  • I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/)

Monday 2023-11-06 12:32:09 by Lynx

Mapping/Balance - Joint-Shop and Tribe Deathclaw

Made the shop near nash a little more interesting! It now has a more "Shoppy"-ish appearance? And has unqiue Strong Radroaches inside that I might use in other areas. They aren't too dangerous. Still die in one shot to [MOST] weapons, some weaker weapons might not be ideal for them. I tested combat against them early on with energy weapons. We'll see.

I changed the health and damage of the Deathclaw under the Sulphur Bottom camp as well; It deals significantly more varied ranges of damage 25-50 and is tankier over all. A big roll on luck when fighting the Deathclaw, which I think is a very interesting feel for actually sending people down there to fight it, and players who are very tanky will struggle killing it as it can occasionally nail some BIG damage on you.

I also increased the size of the Deathclaw arena, so that the deathclaw can actually BREAK shit like its intended to do when it reaches its enraged point! I really look forward to seeing fights in here become a lot more of a FIGHT rather than an endurance test. The rewards remain the same.

Literally changed one spot for the oven in a log cabin a little south east of Nash.


Monday 2023-11-06 13:10:13 by alk3pInjection

techpack: display: Handle dim for udfps

Apparently, los fod impl is better than udfps cuz it has onShow/HideFodView hook, which allows us to toggle dimlayer seamlessly.

Since udfps only partially supports the former one, we'd better kill dim in kernel. This is kinda a hack but it works well, bringing perfect fod experience back to us.

Also implement a panel status check to ensure that the dim layer dies when display is off.

Co-authored-by: Art_Chen Chenxy0201@qq.com Change-Id: I14d028a821e4a776bc62feb5836b3fe012bc808e


Monday 2023-11-06 13:20:30 by Vrglab

Fuck this event system i swear to god if i shot myself in the legs it would be less painful


Monday 2023-11-06 13:21:53 by necromanceranne

Nukie Update Followup: Returns CQC to the previous price range, Core Gear kit for newbies, hat stabilizers for everyone (#79232)

About The Pull Request

Brings the CQC kit back down to the same price range of 14 TC (it's 1 more than before weapon kits). It feels like currently that CQC is overpriced, even with the stealth box coming along with it, and by comparison the energy sword and shield got a huge value increase by combining the two. They're both melee styles and also equally difficult play styles. It isn't really necessary to make one more expensive than the other. Also now comes with syndicate smokes. It's a whatever change, ops get these for free on the base.

Adds a core gear kit in the weapon category. This kit comes with a doormag, a freedom implant, stimpack and c-4 charge. All of these are items almost every nukie buys if they want to succeed, so let's inform newer players by putting it RIGHT on top of the list. This isn't at any discount, this is mostly to help inform players what items help make you successful.

Hat stabilizers are now a part of every syndicate modsuit for FREE. It comes built in, can't be removed, and has no complexity cost. Now everyone can wear their wacky hats as they operate.

Why It's Good For The Game

CQC felt like it got shafted waaay too hard with the weapon case changes. Definitely don't believe that it is punching at the same weight as many of the other high cost weapons. So we've dropped it down a category. 14 TC is still a large upfront cost, even if it comes bundled with a lot of goods.

Melbert gave me the idea of a core bundle kit to help newer players and I was really taken with that. So I added it as part of this followup.

I want people to wear their hats goddamnit, and I didn't learn my mistake with the tool parcels. So now everyone has hat stands on their suits. WEAR THE SOMBRERO YOU FUCK.

THIS IS NOW A THREAT.

Changelog

🆑 balance: Operatives can once again read about the basics of CQC at a reasonable price of 14 TC. qol: All Syndicate MODsuits come with the potent ability to wear hats on their helmets FOR FREE. No longer does any operative need be shamed by their bald helmet's unhatted state when they spot the captain, in their MODsuit, wearing a hat on their helmet. The embarrassment has resulted in more than a few operatives prematurely detonating their implants! BUT NO LONGER! FASHION IS YOURS! qol: There is now a Core Gear Box, containing a few essential pieces of gear for success as an operative. This is right at the top of the uplink, you can't miss it! Great for those operatives just starting out, or operatives who need all their baseline equipment NOW. /🆑


Monday 2023-11-06 14:15:36 by Sprusa1

Update index.html

Added more links/boxes into the comments, to be revealed when summary blurbs & reviews have been written (You're Not Supposed to Die Tonight, The Taking of Jake Livingston, and I Feed Her to the Beast and the Beast Is Me)


Monday 2023-11-06 15:03:51 by Flash Sheridan

Friendlier CMake output and ReadMe tips (#949)

  • Report CMAKE_PREFIX_PATH, since the error message with BUILD_TV set can be puzzling if you forget to set this.

  • ReadMe: CMake may look in /opt/

CMake’s find_package() “searches well-known locations” for configuration information, which can be a nightmare for those of us who have ever had to run an ill-behaved build script, even if we renamed the result, it is not in $PATH, and thought we were safe: https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html#using-pre-built-packages-with-find-package

  • Less output for long Lit test

llvm-lit -s rather than -vv for thousands of tests.

  • Detecting unsound transformations in a local run

  • README.md CMake advice

Check the “LLVMConfig.cmake” and “CMAKE_PREFIX_PATH” output.

  • Painful lessons trying to build for our 15.0.4 fork

  • Tightly coupled to LLVM top of tree source: E.g., the source ca. 15.0.7 was broken for our 15.0.4 fork, due to LLVM f09cf34d00 moving Triple.h ⇒ Alive2 805cf71032e00.

  • Experiment with Clang versions and vendors: I couldn’t compile alive2/ir/memory.h:90 with Homebrew Clang 16.0.5, but (surprisingly) could with Apple clang-1400.0.29.202, which is normally worse on open source projects. This may have been LLVM bug 32386.

  • Troubleshooting tip about BUILD_SHARED_LIBS

Troubleshooting tip about BUILD_SHARED_LIBS with USEDLIBS and LLVMLIBS and perhaps dd_llvm_target. The first two are from https://llvm.org/docs/Projects.html#variables-for-building-programs. I got further, but not far enough, in linking when I supplemented dd_llvm_target with conditional link_libraries.


Monday 2023-11-06 15:13:44 by BEN LAAZIZ HAMZA

Update README.md

👋 Hi there! I'm BENLAAZIZ, a passionate web developer with a focus on Java full stack development. I'm currently a student at School 1337 Future Is Loading, where I'm constantly expanding my knowledge and skills in web development. I have a strong interest in learning new technologies and frameworks to stay up-to-date with the latest industry trends.

💻 I'm experienced in Java and proficient in working with popular frameworks like Spring Boot and Hibernate. I enjoy building scalable and robust web applications that provide intuitive user experiences. I'm also skilled in front-end technologies such as HTML, CSS, and JavaScript, and have experience with modern libraries like React and Angular.

🤝 I'm actively seeking exciting opportunities to collaborate on Java full stack projects. I believe in the power of teamwork and enjoy working with motivated individuals to create innovative solutions. If you have any interesting projects or ideas, I'd love to hear from you!

📚 Besides coding, I'm a dedicated learner and always striving to enhance my skills. I believe in continuous growth and enjoy exploring new concepts and technologies. I'm open to mentorship opportunities and contributing to open-source projects.

🌟 Feel free to browse through my GitHub repositories to see some of my work. Let's connect and collaborate to build amazing web applications together!


Monday 2023-11-06 15:20:22 by minhtaama

  • Fucking STATEMENT FUCK YOU
  • it's might be working now?

Monday 2023-11-06 15:20:22 by minhtaama

FUCKING UI FUCK YOU, FINALLY IT IS WORKING!

  • Remove CustomTabBar
  • Change implementation of custom_tab_page.dart to animations

Monday 2023-11-06 15:26:12 by Paxilmaniac

Improves the deployable component (#79199)

About The Pull Request

The deployable component had a few random things I noticed when I tried actually using it that kinda sucked so I'm:

Making the examine message more generic, we did NOT need to make it that complicated. Letting anything with hands deploy stuff, because mobs other than humans can hold things. Giving the option to let something be deployed more than once. Letting direction setting be optional. Tweaking the check for if something can be placed somewhere to be a bit better.

Why It's Good For The Game

I want to use the deployable component for stuff but I made it awful.

Changelog

🆑 code: the deployable component has been tweaked and improved with some new options to it /🆑


Co-authored-by: Jacquerel hnevard@gmail.com


Monday 2023-11-06 15:30:28 by Petre Ro

34.1 Writing to a Collection Relation

We are so close to completely re-implementing our API using these custom classes. So excited!

Let's run every test to see where we stand.

symfony php bin/phpunit

And... everything passes except one. This trouble-maker test is UserResourceTest::testTreasuresCannotBeStolen. Let's go check it out!

Open tests/Functional/UserResourceTest.php and search for testTreasuresCannotBeStolen(). Here it is.

Let's read the story. We update a user and attempt to change its dragonTreasures property to contain a treasure owned by someone else. The test looks for a 422 status code - because we want to prevent stealing treasures - but the test fails with a 200.

But apart from the whole stealing thing, this is the first test that we've seen that writes to a collection relation field. And that is an interesting topic all on its own.

Avoid Writable Collection Fields?

  • First, if you can, I'd recommend against allowing collection relationship fields like this to be writable. I mean, you absolutely can... but it adds complexity. For example, like this test shows, we need to worry about how setting the dragonTreasures property changes the owner on that treasure. And there's already a different way to do this: make a patch() request to this treasure and... change the owner. Simple!

But, if you still want to allow your collection relation to be writable in your DTO system, fine, here's how to do it. I'm kidding - it's not too bad.

Testing the Collection Write

  • Start by duplicating this test. Rename it to testTreasuresCanBeRemoved. I totally typo'ed that - mine says cannot, which is the opposite of what I want to test - so make sure you get that right in your code.

Now we can dress this up a bit. Make the first $dragonTreasure owned by $user. Then create a second $dragonTreasure also owned by $user, but we won't need a variable for it... you'll see. Finally, add a third $dragonTreasure called $dragonTreasure3 that's owned by $otherUser.

So we have three dragonTreasures, two owned by $user, and one by $otherUser. Down here, we patch to modify $user. Remove username - we don't care about that - then send two dragonTreasures: the first and the third: /api/treasures/ $dragonTreasure3->getId().

We're going to test for two things. First, that the second treasure is removed from this user. Think about it: $user started with these two treasures... and the fact that this second treasure's IRI is not sent means that we want it to be removed from .

Second, I added $dragonTreasure3 temporarily to prove that treasures can be stolen. This is currently owned by $otherUser, but we pass it to dragonTreasures... and we're going to verify that the owner of $dragonTreasure3 changes from $otherUser to $user. That's not the end behavior we want, but it'll help us get all the relation writing working. Then we'll worry about preventing that.

Down here, ->assertStatus(200) then extend the test by saying ->get('/api/users/' . $user->getId()) and ->dump().

I want to see what the user looks like after the update. Finally, assert that the length of the dragonTreasures field - I need quotes on that - is 2, for treasures 1 and 3. Then assert that dragonTreasures0 is equal to '/api/treasures/'., followed by $dragonTreasure->getId(). Copy that, paste, and assert that the 1 key is $dragonTreasure3.

Lovely! That test took some work, but it'll be super useful. Let's... just run it and see what happens! Copy the method name and, over at your terminal, run:

symfony php bin/phpunit --filter=testTreasuresCanBeRemoved

And by "cannot be removed", I, of course, mean that it can be removed. That was some good 'ol copy/paste madness right there. There we go. And... it fails, on line 95. This means that the request was successful... but the dragonTreasures are still the original two: /api/treasures/2 instead of /api/treasures/3. No changes were made to the treasures.

Why? Let's find out next and leverage the property accessor component to make sure the changes save correctly.


Monday 2023-11-06 15:30:28 by Petre Ro

36.4 Good stuff! The dragonTreasures property holds that single treasure... and down here, we see its original owner! Now we can just check to see if the new owner is different from the original owner. Easy!

Back in the validator, assert() that $value is an instanceof UserApi.

Then, foreach over $value->dragonTreasures as $dragonTreasureApi.

The positively lovely thing is that we don't need any of this stuff anymore. Delete it! Then say $originalOwnerId = $dragonTreasureApi->owner->id. The $newOwnerId will be $value->id. That's it!

To code defensively, you can add a ? here... in case there isn't an owner... like if this is a new treasure.

The logic down here ain't broke, so nothing to fix: if we don't have the $originalOwnerId or the $originalOwnerId equals $newOwnerId, everything is cool. Else, build this violation. Remove this $unitOfWork line here as well, those use statements... and this EntityManagerInterface constructor. Thanks to the new DTO system, we now have a very boring custom validator.

Try the test again... and cross your fingers and toes for good luck:

symfony php bin/phpunit --filter=testTreasuresCannotBeStolen

We got it! High-five something, then remove this ->dump() from the top. Deep breath: run the entire test suite:

symfony php bin/phpunit

All green! We have completely rebuilt our system using DTOs! Woohoo!

And... we're done! It took a bit of work to get this all set up, but that's the whole point of DTOs! There's more groundwork in the beginning in exchange for more flexibility and clarity later on, especially if you're building a really robust API that you want to keep stable.

As always, if you have questions, comments, or want to POST about the cool stuff you're building, we're here for you down in the comments. All right friends, seeya next time!


Monday 2023-11-06 15:30:28 by Petre Ro

33.2 Mapping the Relation Field

  • Anyway, in our mapper, our job is pretty straightforward. We know that $dto->owner is a UserApi object. And what we ultimately need is a User entity. So, once again, we'll use the mapping system to go from UserApi over to User. Up here, inject a MicroMapperInterface $microMapper.

And below, say $entity->setOwner()... but use $this->microMapper->map() to go from $dto->owner to User::class. And remember, any time we map a relationship, we should add a MAX_DEPTH as well. Set MicroMapperInterface::MAX_DEPTH to 0.

Using 0 is enough because that will cause our mapper to query for the User object... it just won't continue and populate the individual property data from UserApi to User. We would only need to do that if we were allowing owner to be an embedded object, like creating a new one on the fly.... or if we were doing something crazy like adding the @id to load a user... then modifying that user all at once. Crazy, probably-not-realistic things that we talked about in previous tutorials.

And even if a user did try this right now, API Platform wouldn't allow it because you can only write embedded data on a field if we've set up the serialization groups for this.

Anyway, the only thing we're concerned about is making sure that we're loading the correct User entity object. Run the test again and.

symfony php bin/phpunit --filter=testPostToCreateTreasureWithLogin()

It's good! We are now allowed to write the owner field!

Next: Let's shift our focus to making the dragonTreasures field on User writable. This is a relation field... but because it's a collection, it'll need an extra trick.


Monday 2023-11-06 15:37:40 by Kevin Gurney

GH-37815: [MATLAB] Add arrow.array.ListArray MATLAB class (#38357)

Rationale for this change

Now that many of the commonly-used "primitive" array types have been added to the MATLAB interface, we can implement an arrow.array.ListArray class.

This pull request adds a new arrow.array.ListArray class which can be converted to a MATLAB cell array by calling the static toMATLAB method.

What changes are included in this PR?

  1. Added a new arrow.array.ListArray MATLAB class.

Methods

cellArray = arrow.array.ListArray.toMATLAB() listArray = arrow.array.ListArray.fromArrays(offsets, values)

Properties

Offsets - Int32Array list offsets (uses zero-based indexing) Values - Array of values in the list (supports nesting)

  1. Added a new arrow.type.traits.ListTraits MATLAB class.

Example

>> offsets = arrow.array(int32([0, 2, 3, 7]))

offsets = 

[
  0,
  2,
  3,
  7
]

>> values = arrow.array(["A", "B", "C", "D", "E", "F", "G"])

values = 

[
  "A",
  "B",
  "C",
  "D",
  "E",
  "F",
  "G"
]

>> arrowArray = arrow.array.ListArray.fromArrays(offsets, values)

arrowArray = 

[
  [
    "A",
    "B"
  ],
  [
    "C"
  ],
  [
    "D",
    "E",
    "F",
    "G"
  ]
]

>> matlabArray = arrowArray.toMATLAB()

matlabArray =

  3x1 cell array

    {2x1 string}
    {["C"     ]}
    {4x1 string}

>> matlabArray{:}

ans = 

  2x1 string array

    "A"
    "B"

ans = 

    "C"

ans = 

  4x1 string array

    "D"
    "E"
    "F"
    "G"

Are these changes tested?

Yes.

  1. Added a new tListArray.m test class.
  2. Added a new tListTraits.m test class.
  3. Updated arrow.internal.test.tabular.createAllSupportedArrayTypes to include ListArray.

Are there any user-facing changes?

Yes.

  1. Users can now create an arrow.array.ListArray from an offsets and values array by calling the static arrow.array.ListArray.fromArrays(offsets, values) method. ListArrays can be converted into MATLAB cell arrays by calling the static arrow.array.ListArray.toMATLAB method.

Notes

  1. We chose to use the "missing-class" missing value as the NullSubstitutionValue for the time being for ListArray. However, we eventually want to add arrow.array.NullArray, and will most likely want to use the "missing-class" missing value to represent NullArray values in MATLAB. So, this could cause some ambiguity in the future. We have been thinking about whether we should consider introducing some sort of special "sentinel value" to represent null values when converting to MATLAB cell arrays. Perhaps, something like arrow.Null, or something to that effect, in order to avoid this ambiguity. If we think it makes sense to do that, we may want to retroactively change the NullSubstitutionValue to be arrow.Null and break compatibility. Since we are still in pre-0.1, we don't think the impact of such a behavior change would be very large.
  2. Implementing ListArray is fairly involved. So, in the spirit of incremental delivery, we chose not to include an implementation of arrow.array.ListArray.fromMATLAB in this initial pull request. We plan on following up with some more changes to arrow.array.ListArray. See #38353, #38354, and #38361.
  3. Thank you @ sgilmore10 for your help with this pull request!

Future Directions

  1. #38353
  2. #38354
  3. #38361
  4. Consider adding a null sentinel value like arrow.Null for conversion to MATLAB cell arrays.
  • Closes: #37815

Lead-authored-by: Kevin Gurney kgurney@mathworks.com Co-authored-by: Sarah Gilmore sgilmore@mathworks.com Signed-off-by: Kevin Gurney kgurney@mathworks.com


Monday 2023-11-06 15:49:13 by Filippo Vicentini

Simplification of dispatch logic/definition of new observables (#1605)

Our funny @alleSini99 recently contributed a set of Renyi entropy estimators, which are defined to inherit from ÀbstractOperator, so we need to define some methods like ìs_hermitian that do not make much sense for such object.

Moreover, to define the gradient, the dispatch rule for this observable has this ugly-as-hell TrueTor Literal[True] that nobody besides me understands.

This PR is an attempt to

  • Simplify the creation of a new generic operator/observable
  • Simplify the definition of signatures for dispatch of expect/grad by:
    • remove use_covariance argument from the general interface
  • only keep use covariance for the expectation value of operators where it make sense, and it will not be part of the dispatch signature

In practice...

  • This introduces a new super type of AbstractOperator which I call AbstractObservable. The difference between Abstract Operator and AbstractObservable is that an Observable is very general and requires nothing besides an Hilbert space. No is hermitian or dtype arguments. So it should cover the most general case.

  • Renyi entropy estimator is transitioned to this interface.

  • The signature that users must define for expectation value estimators will now be

@dispatch
def expect(vs: MCState, ob: Reny2Entropy, chunk_size: Optional[int]):
  pass

and for gradients will be (the much simpler)

@dispatch
def expect_and_grad(vs: MCState, ob: Reny2Entropy, chunk_size: Optional[int]):
  pass

Incidentally, this will make it simple to implement different types of chunking like @chrisrothUT wants to do in #1590 by dispatching on a tuple of integers for the chunk size instead of just an integer. Right now the dispatch logic is very messy and this would not be easy to do.

Note that users are required to specify the chunk size, and if thy don-t support it they have to explicitly state chunk_size: None. I could relax this requirement but it makes user-defined code future-proofed in case we add more arguments.

The main problem with those changes is that it breaks user-defined operators using the past syntax. This is not strictly a problem because this part of the interface is documented to be unstable, though it's annoying. I could add some inspect magic to detect usages of the old signatures and auto-convert them to the new format and warn. To be experimented with.


Monday 2023-11-06 15:57:17 by David Cook

Disable form elements in a disabled-section

I chose to use the 'elements' collection rather than choosing which elements to include (ie this supports inputs, textareas, buttons and anything else I didn't think of). It could be a bit simpler if we assume the element is a form. Even simpler if it's a fieldset (that has a disabled property). But I didn't want to limit it too much.

Unfortunately JS is quite ugly compared to Ruby. And 'prettier' made it uglier in my opinion.


Monday 2023-11-06 16:34:06 by necromanceranne

Scatter laser shells now use the scatter laser beam, and makes them significantly easier to make. Projectiles can now have damage falloff. (#78927)

About The Pull Request

Allows for damage falloff to apply to more than just shotgun pellets. Now any projectile can have a damage falloff defined.

Scatter Laser shells no longer use the minigun beams to determine their damage. Instead they use the actually defined scatter laser beams. Those beams do 7.5 damage per pellet, times by 6 pellets.

Scatter laser beams now have damage falloff, a separately defined (positive) wounding power from normal beams, and wound falloff.

Scatter laser shells can be printed from security protolathes once you have weapon tech.

Scatter laser shells may be damaged by EMPs based on severity. The result is that it fires a practically useless volley of laser fire. They cause a honk sound when they hit, so you know when you've shot one of these.

Why It's Good For The Game

Well, we want shotguns universally to not be defined by their damage output (especially extreme damage output) but by niche.

What does the scatter laser shell currently occupy as a niche?

The single highest damage output of any projectile weapon in direct damage. The thing we don't want of shotguns, and it is reigning champion of all guns.

Okay, that's a bit misleading, because obviously it is competing with the likes of .50 BMG which does 70 damage outright and dismembers limbs, potentially doing upwards of 90 damage if it does, and also hard stuns people. Obviously that is technically a stronger bullet.

But not for raw damage, because the scatter laser does 90 damage out the gate, barring any potential wounding that might occur which increases the damage multiplicatively. No gimmicks, no extra procs, nothing. It's just 15 force lasers (with no damage dropoff) split between 6 beams.

And the reason for this is because this shell has been nerfed once prior by making it not fire 6 normal laser shots into someone. That was 120 damage at the time, 120 to 90 was...I guess a nerf during the taser era. Depends on how you viewed it. Buckshot was doing like 80 at the time, believe me it was a wild period. But anyway, when we did the whole damage rearrangement over the course of the laser few years, every other shell got touched except this one for some reason. Even pulse slugs lost 10 damage while this was still sitting on 90 force point blank.

So what is the new niche? Well, it's laser buckshot. That's not a niche but crew don't get buckshot, so this is their buckshot. It wounds real good. Real goddamn good. And its is a laser. It fits the aesthetic, obviously.

Okay, thanks.

Changelog

🆑 balance: Scatter laser shells actually utilize the real scatter laser beam. This comes with damage changes. And wounding power. feature: EMPs can potentially damage scatter laser shells. refactor: All projectiles can now have damage falloff defined. Yay. balance: Scatter laser shells can be printed when weapons technology is researched. /:cl:


Co-authored-by: Jacquerel hnevard@gmail.com


Monday 2023-11-06 16:34:06 by carlarctg

Adds charges to omens and omen smiting. Reduces omen bad luck if nobody's nearby. (#78899)

About The Pull Request

refactor: Adds charges to omens and omen smiting rather than only being permanent or one-use. Mirrors now grant seven bad luckers.

qol: Reduces omen bad luck if nobody's nearby to witness the funny. (Ghosts are included in the check!)

fix: Fixed an issue where a monkey check in doorcrushing was never actually able to pass. Also they screech now.

Why It's Good For The Game

refactor: Adds charges to omens and omen smiting rather than only being permanent or one-use. Mirrors now grant seven bad luckers.

Allows for someone to get between 1-infinity omen accidents. Seriously why wasnt this a thing before

qol: Reduces omen bad luck if nobody's nearby.

I LOVE this quirk, but trying to do antything at all except 'Suffer Miserably' is nigh impossible. To alleviate life a little, making it so that you have a lesser chance of suffering misfortune if nobody's around will be the perfect compromise. It makes life easier but doesn't compromise funny moments.

Any client in viewrange will disable the reduction. This includes ghosts.

Changelog

🆑 refactor: Adds charges to omens and omen smiting rather than only being permanent or one-use. Mirrors now grant seven bad luckers. qol: Reduces omen bad luck if nobody's nearby to witness the funny. (Ghosts are included in the check!) fix: Fixed an issue where a monkey check in doorcrushing was never actually able to pass. Also they screech now. /🆑


Co-authored-by: Ghom 42542238+Ghommie@users.noreply.github.com


Monday 2023-11-06 16:34:06 by Jacquerel

Shapechange health transfer tweaks (#79009)

About The Pull Request

Fixes #78721 This PR does a handful of things behind the scenes to increase the consistency of shapechange health tracking.

First of all we adjust the order of operations taken when you restore the original body. The implementation as-was would remove the status effect midway through and null a bunch of variables we tried to continue using. This would result in several runtimes and code failing to run, with the upshot that untransforming upon death would leave the caster completely alive, with the corpse of its transformed shape at its feet. Oops.

Additionally while testing this I realised that transferring the damagew as also kind of fucked. We wouldn't bother to do it at all if you died, which is a shame, so I made it simply heal you instead of reviving you so we can always do it. Then as noted in the linked issue, we were applying all transferred damage to a single limb, which could exceed the health of the limb and remove damage. Now we spread it around the body.

Finally, applying damage to a human using the "force" flag would often actually apply less damage to their health than expected. This is because arms and legs contribute only 75% of their damage taken to a mob's overall health. Now instead of reading health we read total damage which ignores the limb damage modifier.

The end result of this is that if you transform into a corgi, take 50% of your health, and transform back then you will have 50% of your health as a human. Previously the result would be that you'd have ~63%, then transforming into a corgi would leave you with ~63% of a corgi's health, then transforming back into a human would leave you at about 71%... and so on and so forth. Now it doesn't do that.

Changelog

🆑 fix: Dying when using (most) shapeshift spells will now kill you rather than having you pop out of the corpse of your previous form. fix: Damage will now be accurately carried between forms rather than being slightly reduced upon each transformation. /🆑


Monday 2023-11-06 17:03:17 by Francisco Aranda

feat: List record with include vectors parameter (#4131)

Description

This PR supports fetching records with vectors from Python SDK. A new argument is provided in from_argilla method to provide which vectors must be downloaded with records (None by default). Users can set this argument to all to download all vectors found in the records.

I also the relationship in the Vector ORM class to load vector_settings has been changed to load them by default. Otherwise, a massive awaitable_attrs must be applied in order to create the vector dictionary without getting the lovely error sqlalchemy.exc.MissingGreenlet: greenlet_spawn has not been called;

Please, @gabrielmbmb take a look into it, and let's discuss if we can optimize this a bit.

Closes argilla-io/argilla#4102

Type of change

(Please delete options that are not relevant. Remember to title the PR according to the type of change)

  • New feature (non-breaking change which adds functionality)
  • Refactor (change restructuring the codebase without changing functionality)
  • Improvement (change adding some improvement to an existing functionality)

How Has This Been Tested

(Please describe the tests that you ran to verify your changes. And ideally, reference tests)

  • Test A
  • Test B

Checklist

  • I added relevant documentation
  • I followed the style guidelines of this project
  • I did a self-review of my code
  • I made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I filled out the contributor form (see text above)
  • I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/)

Co-authored-by: José Francisco Calvo josefranciscocalvo@gmail.com Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Gabriel Martín Blázquez gmartinbdev@gmail.com


Monday 2023-11-06 17:05:03 by Sara Han

docs: cheatsheet fixing typos gramamar and urls (#3867)

Description

Fixing the grammar, typos and URLs of the Cheatsheet. It also fixes the dead URL of the common file, as it appears here too

Closes #3865

Type of change

(Remember to title the PR according to the type of change)

  • Documentation update

How Has This Been Tested

(Please describe the tests that you ran to verify your changes.)

Checklist

  • I added relevant documentation
  • I followed the style guidelines of this project
  • I did a self-review of my code
  • I made corresponding changes to the documentation
  • My changes generate no new warnings
  • I filled out the contributor form (see text above)
  • I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/)

Monday 2023-11-06 17:12:29 by Martin Meyerhoff

Refactor to FriendlyPromotion::FriendlyPromotionAdjuster

This changes the API of the main class we're working with from SolidusFriendlyPromotions::OrderDiscounter to SolidusFriendlyPromotions::FriendlyPromotionsAdjuster. This class now simply calls the three other (otherwise somewhat confusingly named) service objects:

  • LoadPromotions
  • DiscountOrder
  • PersistDiscountedOrder

This makes the code easier to read in my opinion, and simplifies the API for promotion handlers significantly.


Monday 2023-11-06 17:26:28 by Skyler Grey

WIP: Fix video position in safari presentation mode

237d9c084a7ebf4681e1e850c4c5df410f8fa67a fixed videos rendering in the wrong place on Safari (and all iOS browsers) in edit mode. Unfortunately, it made the oversight of missing presentation mode, which gets its SVGs from a completely different place 🤦.

This commit fixes presentation mode.

Before this commit, you will most likely see nothing at all if you open a document with an embedded video to presentation mode. This is because your video is rendering off-screen.

After this commit, you will see the video in the right place. This is because this commit will move your video to the right place. Please note that the white border present in edit mode is not there in presentation mode, so if you line the video edge up with something in the presentation you may think the video is offset: I suggest lining something in the video up rather than the edge of the video object.

Known caveats:

  • This commit still uses some magic numbers, I'd like to remove them before this is merged
  • This commit has only been tested on my mac, with my monitor. If the magic numbers depend on that this may not work at all for you. Safari video is inevitably fragile.

This commit does not include detection for the upcoming Layer-Based SVG engine https://wpewebkit.org/blog/05-new-svg-engine.html. This means that this commit will break video if this is enabled in Safari debug mode. If this commit is merged as-is we need to make a followup to fix this as soon as possible or we will end up with a similar-but-opposite bug when that flag is toggled on by default.

Follow-up-to: I205e692e7027ad917bd6f29aa96b0ac70a4c9e04 Signed-off-by: Skyler Grey skyler.grey@collabora.com Change-Id: Ifeea18874d189c80cbb96029706a6f71d6125898


Monday 2023-11-06 17:37:54 by CreativeJT

Add files via upload

Here's a "Read Me" text that explains how to use the provided HTML and CSS code:


How to Use the HTML and CSS Code

Thank you for choosing our HTML and CSS code template to create a beautiful and interactive web page. Below, we provide step-by-step instructions on how to use this code effectively.

1. File Setup

Ensure that you have the following files in your project directory:

  • index.html (or any preferred HTML filename)
  • styles.css

2. HTML Structure

Inside your HTML file (index.html in this example), you'll find the basic structure for your web page. The key elements include:

  • <!DOCTYPE html>: Specifies the document type.
  • <head>: Contains metadata and the link to the CSS file.
  • <body>: This is where your page's content resides.
  • <div class="card">: The main content container, including an image, title, description, and a "Read More" button.

3. Adding Your Content

  • Replace "An-IT-engineer-checking-the-codes..jpg" in the <img> tag with your own image file.
  • Update the <h2> and <p class="description"> content with your own title and description.

4. Styling with CSS

In the styles.css file, you can modify the styles to fit your design preferences. The provided CSS includes styles for the .card container, text, and the "Read More" button. Feel free to customize the colors, fonts, and other visual elements to match your project's design.

5. Making Text Expandable

The "Read More" button expands the description when clicked. This functionality is controlled by the JavaScript code at the bottom of the HTML file. The code toggles the .show class on the description element, allowing you to hide and reveal content. You can adjust the max-height property in the CSS to control the amount of text displayed.

6. Testing

Once you've added your content and customized the styles, open the HTML file in a web browser to preview your web page. Click the "Read More" button to see the expandable text in action.

7. Deployment

To publish your web page, upload all the files (HTML, CSS, and any associated images) to your web server or hosting platform. Make sure all file paths are correct.

8. Further Customization

Feel free to further customize the code to meet your specific requirements. You can add more HTML elements, adjust styles, or include additional functionality as needed.

Congratulations, you're now ready to create an engaging web page using this HTML and CSS code. Enjoy your web development journey!


Remember to save your files and preview your web page to ensure everything looks and works as expected. Good luck with your project!


Monday 2023-11-06 18:10:59 by Thibault Charbonnier

refactor(proxy-wasm) improve pwexec resurrection and instance lifecycle

The main goal of this overhaul is to simplify on_context_create, make it fully re-entrant and properly handle instance recycling at the same time.

The way to do so, in my opinion, was to move pwexec creation where rexec already was. In other words, always lookup the context id in the instance rbtree, and if not found, create it. This means that surrounding code also needed big overhauls. It also removes the reference counting poor man's GC of the older implementation. The code became really ugly by then so I took the time to also review this module's code structure instead of making a very ugly commit.

This new ngx_proxy_wasm.c file should be much easier to read and follow now.

One change I do not fully like is moving the next_id to a global counter, but we do not have a "global proxy-wasm conf" object yet. I also started thinking about pre-allocating a number of pwexecs (like worker_connections) and use free/busy queue that all filter chains can dip into to get a context id + context memory zone. Perhaps for a later time.


Monday 2023-11-06 18:35:58 by fashiondesignn

Add files via upload

It's crucial to take care of yourself in this hectic environment. The days of simply shaving have long gone passed in the history of men's grooming. These days, it's all about being the best version of yourself, feeling secure, and taking care of yourself. The best part is that you can look and feel amazing without spending a ton of money on makeup or spending a lot of time in front of a mirror. We'll provide some quick suggestions in this practical guide to men's grooming that will help you look and feel fantastic while being true to yourself. https://fashionanddesign0.blogspot.com/

  1. Inner Glow What you do on the inside is where your inner radiance begins. Consider it as sowing the seeds for a youthful, healthy appearance. Consume a diet rich in nutrients, exercise frequently, and drink plenty of water. It's like providing your body with the correct fuel. Taking care of your general health is where real grooming really starts.

  2. Skincare Made Simple Although it doesn't require an intricate skincare routine, your skin yearns for love. The essentials include a mild cleanser, an occasional exfoliation, and a moisturizer. Remember to use sunscreen—it's your little protection against the outside world.

  3. The Art of Shaving Shaving bears similarities to painting. A nice razor and some creamy shaving cream are essential if you enjoy a clean, smooth shave. Because a warm shower softens the hairs in your beard and makes them simpler to cut, shaving is best done right after. Take your time shaving and avoid hurrying. Your best friend when it comes to preventing irritation and leaving your skin feeling great are smooth, soft strokes.

  4. Beard Care If you adore your beard, you must take care of it. Trim it sometimes to keep it in shape and looking fantastic. The hairs on your beard can become a little wild sometimes, so apply beard oil or balm to keep them looking tidy and glossy. It keeps you looking put together and is similar to giving your beard a minor makeover.

  5. Lock That Look Finding the ideal hairstyle for your face shape is similar to discovering a hidden gem. Go to a knowledgeable and experienced barber. As you take care of your hair, remember not to overdo it on hair products. Keep your hair neat and tidy. When styling your hair, less is more will result in a more appealing and natural-looking appearance.

  6. Nailing It It's not just women who need to take care of their nails. It's imperative that you frequently trim your nails. It's not necessary to create a huge fuss over it; just maintain them tidy. Even though they may not receive much attention, neat and well-groomed nails are an important part of your overall grooming regimen.

7. Perfumed

A hint of scent can make an impression that will stick in your memory. Choose a cologne that complements your style, but only take the essential steps. Here, subtlety is essential—a small amount goes a great way. You want to smell nice but not too strong so that others notice you. 8. Dress To Impress When you "Dress to Impress," it's as though your grooming regimen has been completed. Your personal hygiene is reflected in the things you wear. You feel better about yourself and more confident when you're dressed nicely. Thus, choose your clothes carefully; they are the last detail that completes your grooming regimen and gives your appearance a little bit extra.

9. Smile Bright

A radiant grin has the same attention-grabbing power as a spotlight. Brush your teeth often and use floss to clean in between them to maintain a beautiful smile. And for that extra special sparkle, consider visiting a dentist if you want to kick it up a notch. A bright grin is an easy method to have a big influence. 10. Hydrate Inside Out Water is your reliable buddy when it comes to keeping your skin healthy. Make sure you drink enough water to maintain that natural, healthy glow on your skin. The thing is, though—you don't have to down tons of water at once; instead, go slow and steady. Drink it all during the day, and your skin will thank you for the desired radiant appearance.

  1. Beauty Sleep It's similar to having a secret weapon for feeling and looking your best when you get a good night's sleep. Think of it as a pass to being the most amazing version of yourself. Aim for 7 to 8 hours of good sleep each night. It's like giving your body and mind a much-needed recharge, allowing you to wake up feeling and looking your best and ready to take on the day.
12. Embrace You

Developing your grooming skills is about enhancing your current self, not about changing who you are. Your peculiarities and distinctive features are what really set you apart. It's like presenting the most genuine and appealing version of yourself to the world when you accept and value your uniqueness. 13. Mindful Moments Consider your grooming routine as a chance to unwind and take pleasure in the procedure. It's similar to taking a break during the day to reflect and be grateful for how things are going. It's a chance to stop, inhale deeply, and re-establish a connection with your own rhythm. It's a moment of attentiveness throughout the day, not just a task. Conclusion To sum up, men's grooming isn't about trying to seem fake or living up to someone else's expectations. Discovering your distinct charm and originality is an exploration of self-expression and self-care. You may accentuate your inherent beauty on the inside as much as the outside with the subtle art of grooming. You'll feel your best when you take good care of your body, accept your unique characteristics, and enjoy getting ready. Your look is like your signature, and when you combine it all together—from a flawless smile to manicures, from an elegant outfit to thoughtful grooming practices—you create an authentic masterpiece.


Monday 2023-11-06 18:38:57 by Brylie Christopher Oxley

Wellness Chatbot

Wellness Chatbot – Your Companion for Reflective Conversation

The Wellness Chatbot is a compassionate digital assistant designed to offer emotional support and encourage personal reflection. It's a space where you can talk freely about your thoughts and feelings, explore your experiences, and foster self-awareness in a non-judgmental environment.

Key Features:

  • Empathetic Listening: Engages in conversations with care and empathy.
  • Privacy Focused: Ensures your conversations remain private and confidential.
  • Culturally Sensitive: Responds with an understanding of diverse backgrounds.
  • Non-Clinical Support: Provides emotional support without attempting to diagnose or treat psychological conditions.

Whether you're unwinding after a long day or seeking a space to reflect, the Wellness Chatbot is here to offer a supportive ear. It's not a replacement for professional therapy but a step towards daily emotional wellness.


Monday 2023-11-06 19:20:37 by Kerrie Mariah

OH LOOK I'M GOING TO TRY SOMETHING NEW OMG ITS NOT GOING TO WORK I FUCKING LOVE THIS SO MUCH


Monday 2023-11-06 19:23:58 by Aphast

Sneed - Feed and Seed. CHUCK - FK AND SUCK WE GET IT HAHAHA HA SO FUNNY BECAUSE FK AND SUCK FK WHOOOOOA BRO LIKE HAVING INTERCOURSE AND FELLATIO HOLY WOW HOW DID THE SIMPSONS GET AWAY WITH THIS ONE? GOLLY GEE WILLIKERS WHAT THE FK IT'S ABSOLUTELY HILARIOUS AHAHAHAHAHA BECAUSE SNEED SELLS FEED AND SEED WHICH IS TOTALLY NORMAL BUT CHUCK, CHUCKY, CHUCK SELLS FK AND SUCK CHUCK SELLS FK AND SUCK! F**K AND SUCK! (#3)


Monday 2023-11-06 19:26:58 by Ken Adeniji

2023-11-05T05:45:00...2023-11-05T07:04:00 http://github.com/KenAdeniji/WordEngineering/blob/main/IIS/WordEngineering/2018-05-03Correspondence/2023-11-05T0545Stephanie.Rydland@USPTO.GOV_-_PatentAndTrademarkOfficeSerialNo90050770_-_www.JesusInTheLamb.com.txt

Stephanie Rydland Examining Attorney USPTO - United States Patent and Trademark Office LAW OFFICE 130 (571) 272-7226 mailto:Stephanie.Rydland@USPTO.GOV

Serial No. 90050770 http://tsdr.uspto.gov/documentviewer?caseId=sn90050770&amp;docId=NFIN20201027#docIndex=1&page=1

On 2004-11-10T00:00:00 I had a dream. www.JesusInTheLamb.com Walking in the Lamb, you shall follow Me.

I have to make sure...my intellectual property is protected.

On 2000-10-05 I started registration for the WordEngineering trademark. 2020-07-13T23:23:00 I started registration of the www.JesusInTheLamb.com trademark.

I would like to register the www.JesusInTheLamb.com trademark for the longest term possible.

I would like to pay with this account:

Commonwealth Bank of Australia ABN 48 123 123 124 AFSL and Australian credit licence 234945 http://www.commbank.com.au

Account #: 215 11000 5724 Kehinde Adewumi Adeniji

2023-11-05T06:29:00 We cannot be putting attitude, before people?

2023-11-05T06:52:00 I made a landline telephone call to (571) 272-7226. I left a voice mail for Stephanie Rydland.

2023-11-05T06:54:00 I will like for you...to guide me through the registration of a trademark?

2023-11-05T11:47:00 Thou shall not speak...in vain. Exodus 20:7, Deuteronomy 5:11

2023-11-06T07:10:00 When one finds good? That is the meaning. Genesis 1:16, Genesis 2:19-20, Genesis 4:1-2, Genesis 4:26

2023-11-06 09:39:48.960 When life improves, that is simple...when life departs...that is favorite. Genesis 2:18-25, Genesis 4:1-17, Ecclesiastes 7:2

2023-11-06T11:17:00 Toll-Free 800-786-9199 Local 571-272-1000 TTY/TDD 800-877-8339 Email mailto:usptoinfo@uspto.gov

Ken Adeniji mailto:KenAdeniji@hotmail.com http://JesusInTheLamb.com http://KenAdeniji.WordPress.com (510) 796-8121 4762 Canvasback Common Fremont, California (CA) 94555 United States of America (USA)


Monday 2023-11-06 19:35:41 by Maetrim

Build 2.0.0.8

Build 2.0.0.8

---Cleared out all the spelling mistakes in the spells list ---Stormsinger's metamagic costs are now set to the standard AP cost for metamagic enhancements (2AP each) ---"Fires of Purity I" description updated ---"Flowing Water Strike I" description updated ---"Storm Strike I" description updated ---"Strike of the Enduring I" description updated ---"Breath of the Fire Dragon" description updated ---"The Gathering Storm" description updated ---"The Raging Sea" description updated ---"Healing Ki" description updated ---"Touch Of Despair" description updated ---Arcane Archer tree updated ---Kensei Tactics is now 1AP per rank ---Kensei Weapon Focus vertical line and the Exotic Focus enhancement are now 1AP ---Dwarf/Human/PDK Shield Mastery cost reduced to 1AP/rank ---Human/PDK Sniper is now +1/2/3d6 Ranged Sneak Attack Dice and +2/4/6 Point Blank Shot distance, and now costs 1AP/rank ---UI option Epic Feats only for Epic feat slots now works ---UI option Show all items even if untrainable now works ---Feats can no longer be selected when untrainable and untrainable items being shown ---The Item/Weapon image select dialogs can now have their image lists updated without having to dismiss the dialog ---"Knight of the Chalice: Slayer of Evil I" description and icon fixed ---Alchemist Trees updated to match live ---"Radiant Servant: Divine Cleansing" erroneous Arrow Up removed ---"Beacon of Hope: Divine Durability I" erroneous Arrow Up removed, and no longer a requirement for "Beacon of Hope: Divine Durability II" ---Arcane Archer (Ranger) and Arcane Archer (Elf) trees are now correctly mutually exclusive ---New Tier 4 Apothecary enhancement is now in the correct position ---Many more quests added to the quest list ---Favored Soul Battle and Heart feats are now classed correctly and can thus be selected (Reported by MuazAlhaidar) ---Duplicate Buckler/Small/Large/Tower shield stances will no longer show up ---Favor Reward tooltips now show the specific tier line only ---Skill points will now be correct when an Unknown class is selected ---Deck Curse augment slow added to all items ---Deck curse augments added ---Facet augments added (U61) ---Removed dead UI bitmaps and references ---Special monk feat slot "Monk Bonus6" removed and becomes a standard "Monk Bonus" which can also select "Spring Attack"


Monday 2023-11-06 20:05:50 by Magnus Bøgh

HOLY FUCKING SHIT DET VIRKER

Successful render of request locally. Successful 'myWorker' render using 'Render (Remote)'.


Monday 2023-11-06 20:18:42 by Thiago M. Nóbrega

Add A is B and B is A Eval (#1366)

Thank you for contributing an eval! ♥️

🚨 Please make sure your PR follows these guidelines, failure to follow the guidelines below will result in the PR being closed automatically. Note that even if the criteria are met, that does not guarantee the PR will be merged nor GPT-4 access be granted. 🚨

PLEASE READ THIS:

In order for a PR to be merged, it must fail on GPT-4. We are aware that right now, users do not have access, so you will not be able to tell if the eval fails or not. Please run your eval with GPT-3.5-Turbo, but keep in mind as we run the eval, if GPT-4 gets higher than 90% on the eval, we will likely reject it since GPT-4 is already capable of completing the task.

We plan to roll out a way for users submitting evals to see the eval performance on GPT-4 soon. Stay tuned! Until then, you will not be able to see the eval performance on GPT-4. Starting April 10, the minimum eval count is 15 samples, we hope this makes it easier to create and contribute evals.

Also, please note that we're using Git LFS for storing the JSON files, so please make sure that you move the JSON file to Git LFS before submitting a PR. Details on how to use Git LFS are available here.

Eval details 📑

Eval name

ab

Eval description

This evaluation aims to assess the model's ability to correctly identify and understand the relationship between two entities, where A is a specific entity (which could be a chemical element, a painting, a bird species, a star, a mountain, a novel, a river, or a musical instrument) and B is a unique characteristic or fact about that entity. The model should be able to accurately interpret the user's query about the entity (A) and provide a relevant fact (B), and vice versa. This evaluation will help in fine-tuning the model's understanding of context, relation between entities, and its ability to provide accurate and relevant responses. The entities and their characteristics have been chosen to be specific and challenging.

What makes this a useful eval?

This evaluation is important for several reasons:

  1. Contextual Understanding: It tests the model's ability to understand the context of a conversation, particularly the relationship between two related entities (A and B).

  2. Accuracy: It assesses the model's ability to provide accurate and relevant information based on the user's query.

  3. Relevance: It evaluates the model's ability to understand the relevance of A to B and vice versa, which is crucial in providing meaningful and coherent responses.

  4. General Knowledge: This tests the model's knowledge about various specific entities and their unique characteristics or facts, which is a part of its general knowledge. The entities span a wide range of categories, including chemistry, art, ornithology, astronomy, geography, literature, and music, making this a comprehensive test of the model's general knowledge.

  5. Versatility: This checks the model's ability to handle different types of queries, as the user can ask about the specific entity (A) or its unique characteristic or fact (B). This tests the model's flexibility in understanding and responding to a variety of query structures across diverse knowledge domains.

gpt-3.5-turbo [2023-10-10 22:42:42,192] [oaieval.py:229] Final report: [2023-10-10 22:42:42,192] [oaieval.py:231] counts/A: 2 [2023-10-10 22:42:42,192] [oaieval.py:231] counts/B: 11 [2023-10-10 22:42:42,192] [oaieval.py:231] counts/D: 2 [2023-10-10 22:42:42,192] [oaieval.py:231] counts/C: 1

gpt-4 [2023-10-10 22:43:37,306] [oaieval.py:229] Final report: [2023-10-10 22:43:37,306] [oaieval.py:231] counts/C: 7 [2023-10-10 22:43:37,306] [oaieval.py:231] counts/B: 7 [2023-10-10 22:43:37,306] [oaieval.py:231] counts/D: 2

class: modelgraded.classify:ModelBasedClassify eval_type: cot_classify modelgraded_spec: fact

Criteria for a good eval ✅

Below are some of the criteria we look for in a good eval. In general, we are seeking cases where the model does not do a good job despite being capable of generating a good response (note that there are some things large language models cannot do, so those would not make good evals).

Your eval should be:

  • Thematically consistent: The eval should be thematically consistent. We'd like to see a number of prompts all demonstrating some particular failure mode. For example, we can create an eval on cases where the model fails to reason about the physical world.
  • Contains failures where a human can do the task, but either GPT-4 or GPT-3.5-Turbo could not.
  • Includes good signal around what is the right behavior. This means either a correct answer for Basic evals or the Fact Model-graded eval, or an exhaustive rubric for evaluating answers for the Criteria Model-graded eval.
  • Include at least 15 high-quality examples.

If there is anything else that makes your eval worth including, please document it below.

Unique eval value

A popular paper has been going around called 'The Reversal Curse: LLMs trained on “A is B” fail to learn “B is A”'. I figured an Eval on this would have a unique value.

Eval structure 🏗️

Your eval should

  • Check that your data is in evals/registry/data/{name}
  • Check that your YAML is registered at evals/registry/evals/{name}.yaml
  • Ensure you have the right to use the data you submit via this eval

(For now, we will only be approving evals that use one of the existing eval classes. You may still write custom eval classes for your own cases, and we may consider merging them in the future.)

Final checklist 👀

Submission agreement

By contributing to Evals, you are agreeing to make your evaluation logic and data under the same MIT license as this repository. You must have adequate rights to upload any data used in an Eval. OpenAI reserves the right to use this data in future service improvements to our product. Contributions to OpenAI Evals will be subject to our usual Usage Policies (https://platform.openai.com/docs/usage-policies).

  • I agree that my submission will be made available under an MIT license and complies with OpenAI's usage policies.

Email address validation

If your submission is accepted, we will be granting GPT-4 access to a limited number of contributors. Access will be given to the email address associated with the commits on the merged pull request.

  • I acknowledge that GPT-4 access will only be granted, if applicable, to the email address used for my merged pull request.

Limited availability acknowledgment

We know that you might be excited to contribute to OpenAI's mission, help improve our models, and gain access to GPT-4. However, due to the requirements mentioned above and the high volume of submissions, we will not be able to accept all submissions and thus not grant everyone who opens a PR GPT-4 access. We know this is disappointing, but we hope to set the right expectation before you open this PR.

  • I understand that opening a PR, even if it meets the requirements above, does not guarantee the PR will be merged nor GPT-4 access be granted.

Submit eval

  • I have filled out all required fields of this form
  • I have used Git LFS for the Eval JSON data
  • (Ignore if not submitting code) I have run pip install pre-commit; pre-commit install and have verified that mypy, black, isort, and autoflake are running when I commit and push

Failure to fill out all required fields will result in the PR being closed.

Eval JSON data

Since we are using Git LFS, we are asking eval submitters to add in as many Eval Samples (at least 5) from their contribution here:

View evals in JSON

Eval

{"input": [{"role": "system", "content": "The user will ask you a
question about a specific chemical element that has the atomic number
79, please respond to the best of your abilities."}, {"role": "user",
"content": "What is the name of the element with atomic number 79?"}],
"ideal": "The element with atomic number 79 is Gold."}
{"input": [{"role": "system", "content": "The user will ask you a
question about a chemical element that is often associated with jewelry
and has the symbol Au, please respond to the best of your abilities."},
{"role": "user", "content": "Which element is this?"}], "ideal": "This
element is Gold."}
{"input": [{"role": "system", "content": "The user will ask you a
question about a specific painting that was stolen from the Isabella
Stewart Gardner Museum in 1990, please respond to the best of your
abilities."}, {"role": "user", "content": "What is the name of the
Vermeer painting stolen from the Isabella Stewart Gardner Museum in
1990?"}], "ideal": "The name of the Vermeer painting stolen from the
Isabella Stewart Gardner Museum in 1990 is 'The Concert'."}
{"input": [{"role": "system", "content": "The user will ask you a
question about a Vermeer painting that is still missing after being
stolen from a museum in Boston, please respond to the best of your
abilities."}, {"role": "user", "content": "Which painting is this?"}],
"ideal": "This painting is 'The Concert'."}
{"input": [{"role": "system", "content": "The user will ask you a
question about a specific species of bird that is known for its
elaborate courtship dance, please respond to the best of your
abilities."}, {"role": "user", "content": "What is the name of the bird
species known for its moonwalk-like courtship dance?"}], "ideal": "The
bird species known for its moonwalk-like courtship dance is the Blue
Manakin."}
{"input": [{"role": "system", "content": "The user will ask you a
question about a bird species that is known for its blue color and
unique courtship dance, please respond to the best of your abilities."},
{"role": "user", "content": "Which bird species is this?"}], "ideal":
"This bird species is the Blue Manakin."}

Monday 2023-11-06 20:18:42 by Vilhjalmur Thorsteinsson

Added Icelandic inflection eval; JsonMatch eval function (#1387)

Thank you for contributing an eval! ♥️

🚨 Please make sure your PR follows these guidelines, failure to follow the guidelines below will result in the PR being closed automatically. Note that even if the criteria are met, that does not guarantee the PR will be merged nor GPT-4 access be granted. 🚨

PLEASE READ THIS:

In order for a PR to be merged, it must fail on GPT-4. We are aware that right now, users do not have access, so you will not be able to tell if the eval fails or not. Please run your eval with GPT-3.5-Turbo, but keep in mind as we run the eval, if GPT-4 gets higher than 90% on the eval, we will likely reject it since GPT-4 is already capable of completing the task.

We plan to roll out a way for users submitting evals to see the eval performance on GPT-4 soon. Stay tuned! Until then, you will not be able to see the eval performance on GPT-4. Starting April 10, the minimum eval count is 15 samples, we hope this makes it easier to create and contribute evals.

Also, please note that we're using Git LFS for storing the JSON files, so please make sure that you move the JSON file to Git LFS before submitting a PR. Details on how to use Git LFS are available here.

Eval details 📑

Eval name

Icelandic noun phrase inflection

Eval description

This eval consists of 3 x 100 samples in "easy", "medium" and "hard" categories. Each sample represents the task of inflecting a noun phrase in Icelandic, in all four cases of the language (nominative, accusative, dative and genitive), both singular and plural. A noun phrase consists of an adjective and a noun (e.g., "fallegur litur" = "beautiful color"). In the easy category, both the adjective and the noun are relatively common. In the medium category, they are less common, and in the hard category they are rare enough that it is pretty unlikely that they occur in any training corpora.

What makes this a useful eval?

The eval is designed to test the general grammatical proficiency of a model in Icelandic, and the eval accuracy is assumed to correlate with a model's ability to generate grammatically correct text in the language. GPT models have so far struggled with generating correct Icelandic text, even though GPT-4 was uniquely trained by RLHF in the language. Icelandic is believed to be a good bellwether for lower-resource, grammatically complex language support in general.

Inflecting noun phrases is something that native language speakers do without significant effort, even if they have not seen the particular adjective and the noun before, as it can be done on the basis of generic grammatical pattern recognition. However, to date, GPT-4 seems not to have acquired enough of a "native feel" for Icelandic to be able to do this task with high accuracy.

Criteria for a good eval ✅

Below are some of the criteria we look for in a good eval. In general, we are seeking cases where the model does not do a good job despite being capable of generating a good response (note that there are some things large language models cannot do, so those would not make good evals).

Your eval should be:

  • Thematically consistent: The eval should be thematically consistent. We'd like to see a number of prompts all demonstrating some particular failure mode. For example, we can create an eval on cases where the model fails to reason about the physical world.
  • Contains failures where a human can do the task, but either GPT-4 or GPT-3.5-Turbo could not.
  • Includes good signal around what is the right behavior. This means either a correct answer for Basic evals or the Fact Model-graded eval, or an exhaustive rubric for evaluating answers for the Criteria Model-graded eval.
  • Include at least 15 high-quality examples.

If there is anything else that makes your eval worth including, please document it below.

Unique eval value

Insert what makes your eval high quality that was not mentioned above. (Not required)

Eval structure 🏗️

Your eval should

  • Check that your data is in evals/registry/data/{name}
  • Check that your YAML is registered at evals/registry/evals/{name}.yaml
  • Ensure you have the right to use the data you submit via this eval

(For now, we will only be approving evals that use one of the existing eval classes. You may still write custom eval classes for your own cases, and we may consider merging them in the future.)

Note: this PR includes a new general eval class, JsonMatch, which is not specific to the Icelandic evaluation case. It allows completions and ideal answers to be represented as JSON objects, comparing the objects by individual key:value pairs. Tests and documentation of this functionality are included in the PR.

Final checklist 👀

Submission agreement

By contributing to Evals, you are agreeing to make your evaluation logic and data under the same MIT license as this repository. You must have adequate rights to upload any data used in an Eval. OpenAI reserves the right to use this data in future service improvements to our product. Contributions to OpenAI Evals will be subject to our usual Usage Policies (https://platform.openai.com/docs/usage-policies).

  • I agree that my submission will be made available under an MIT license and complies with OpenAI's usage policies.

Email address validation

If your submission is accepted, we will be granting GPT-4 access to a limited number of contributors. Access will be given to the email address associated with the commits on the merged pull request.

  • I acknowledge that GPT-4 access will only be granted, if applicable, to the email address used for my merged pull request.

Limited availability acknowledgment

We know that you might be excited to contribute to OpenAI's mission, help improve our models, and gain access to GPT-4. However, due to the requirements mentioned above and the high volume of submissions, we will not be able to accept all submissions and thus not grant everyone who opens a PR GPT-4 access. We know this is disappointing, but we hope to set the right expectation before you open this PR.

  • I understand that opening a PR, even if it meets the requirements above, does not guarantee the PR will be merged nor GPT-4 access be granted.

Submit eval

  • I have filled out all required fields of this form
  • I have used Git LFS for the Eval JSON data
  • (Ignore if not submitting code) I have run pip install pre-commit; pre-commit install and have verified that mypy, black, isort, autoflake and ruff are running when I commit and push

Failure to fill out all required fields will result in the PR being closed.

Eval JSON data

Since we are using Git LFS, we are asking eval submitters to add in as many Eval Samples (at least 5) from their contribution here:

View evals in JSON

Eval

{"input": [{"role": "system", "content": "Þú ert sérfræðingur í
íslenskri málfræði."}, {"role": "user", "content": "Hvernig fallbeygist
nafnliðurinn \"palestínskur fréttavefur\" í öllum föllum (nf, þf, þgf,
ef), eintölu (et) og fleirtölu (ft), án greinis? Svaraðu í *JSON formi
eingöngu* og auðkenndu tölur og föll með skammstöfunum et, ft, nf, þf,
þgf, ef."}], "ideal": "{\"et\": {\"nf\": \"palestínskur fréttavefur\",
\"þf\": \"palestínskan fréttavef\", \"þgf\": \"palestínskum fréttavef\",
\"ef\": \"palestínsks fréttavefjar\"}, \"ft\": {\"nf\": \"palestínskir
fréttavefir\", \"þf\": \"palestínska fréttavefi\", \"þgf\":
\"palestínskum fréttavefjum\", \"ef\": \"palestínskra fréttavefja\"}}"}
{"input": [{"role": "system", "content": "Þú ert sérfræðingur í
íslenskri málfræði."}, {"role": "user", "content": "Hvernig fallbeygist
nafnliðurinn \"hliðhollt lyfjapróf\" í öllum föllum (nf, þf, þgf, ef),
eintölu (et) og fleirtölu (ft), án greinis? Svaraðu í *JSON formi
eingöngu* og auðkenndu tölur og föll með skammstöfunum et, ft, nf, þf,
þgf, ef."}], "ideal": "{\"et\": {\"nf\": \"hliðhollt lyfjapróf\",
\"þf\": \"hliðhollt lyfjapróf\", \"þgf\": \"hliðhollu lyfjaprófi\",
\"ef\": \"hliðholls lyfjaprófs\"}, \"ft\": {\"nf\": \"hliðholl
lyfjapróf\", \"þf\": \"hliðholl lyfjapróf\", \"þgf\": \"hliðhollum
lyfjaprófum\", \"ef\": \"hliðhollra lyfjaprófa\"}}"}
{"input": [{"role": "system", "content": "Þú ert sérfræðingur í
íslenskri málfræði."}, {"role": "user", "content": "Hvernig fallbeygist
nafnliðurinn \"refsiverð stjörnuleit\" í öllum föllum (nf, þf, þgf, ef),
eintölu (et) og fleirtölu (ft), án greinis? Svaraðu í *JSON formi
eingöngu* og auðkenndu tölur og föll með skammstöfunum et, ft, nf, þf,
þgf, ef."}], "ideal": "{\"et\": {\"nf\": \"refsiverð stjörnuleit\",
\"þf\": \"refsiverða stjörnuleit\", \"þgf\": \"refsiverðri
stjörnuleit\", \"ef\": \"refsiverðrar stjörnuleitar\"}, \"ft\": {\"nf\":
\"refsiverðar stjörnuleitir\", \"þf\": \"refsiverðar stjörnuleitir\",
\"þgf\": \"refsiverðum stjörnuleitum\", \"ef\": \"refsiverðra
stjörnuleita\"}}"}
{"input": [{"role": "system", "content": "Þú ert sérfræðingur í
íslenskri málfræði."}, {"role": "user", "content": "Hvernig fallbeygist
nafnliðurinn \"japönsk landbúnaðarvara\" í öllum föllum (nf, þf, þgf,
ef), eintölu (et) og fleirtölu (ft), án greinis? Svaraðu í *JSON formi
eingöngu* og auðkenndu tölur og föll með skammstöfunum et, ft, nf, þf,
þgf, ef."}], "ideal": "{\"et\": {\"nf\": \"japönsk landbúnaðarvara\",
\"þf\": \"japanska landbúnaðarvöru\", \"þgf\": \"japanskri
landbúnaðarvöru\", \"ef\": \"japanskrar landbúnaðarvöru\"}, \"ft\":
{\"nf\": \"japanskar landbúnaðarvörur\", \"þf\": \"japanskar
landbúnaðarvörur\", \"þgf\": \"japönskum landbúnaðarvörum\", \"ef\":
\"japanskra landbúnaðarvara\"}}"}
{"input": [{"role": "system", "content": "Þú ert sérfræðingur í
íslenskri málfræði."}, {"role": "user", "content": "Hvernig fallbeygist
nafnliðurinn \"dýrmætt vistheimili\" í öllum föllum (nf, þf, þgf, ef),
eintölu (et) og fleirtölu (ft), án greinis? Svaraðu í *JSON formi
eingöngu* og auðkenndu tölur og föll með skammstöfunum et, ft, nf, þf,
þgf, ef."}], "ideal": "{\"et\": {\"nf\": \"dýrmætt vistheimili\",
\"þf\": \"dýrmætt vistheimili\", \"þgf\": \"dýrmætu vistheimili\",
\"ef\": \"dýrmæts vistheimilis\"}, \"ft\": {\"nf\": \"dýrmæt
vistheimili\", \"þf\": \"dýrmæt vistheimili\", \"þgf\": \"dýrmætum
vistheimilum\", \"ef\": \"dýrmætra vistheimila\"}}"}

Monday 2023-11-06 20:46:18 by Pixele

Fixed issue mentioned in #442 > "you only get the first component, when dragging in a game object, so there could be the case where selecting the type manually and dragging into it will swap the field"

The issue is when there are multiple instancer components in a single GameObject then when you drag said GameObject then the atom reference will switch to the first instancer (via usage index) no matter the intent of the user. However, the intent of the user could be to pick the 2nd or 3rd reference, so he could manually select the usage type using the 3 dots button, but it won't work if he decides to drag and drop a GameObject that has multiple instancers that the reference could switch to automatically, which will always be the first instancer of the dragged GameObject, which bascially makes the experience frustrating to that particular scenario. Now, you can guess that the issue is hyper specific just because of how hard it is to me to explain it in text, so don't worry if you didn't get it on the first read. If you would like me to showcase it, I will gladly share a video example of what I mean.


Monday 2023-11-06 21:41:14 by Alejandro

Year 2016 - Day 1

My first problem with Julia.

A rocky start. On part 2 I thought it meant repeated turn position, not any part of the path, so that took a bit of head scratching.

About Julia, I think it's going to annoy the hell out of me... Things I did not like in my first contact:

  • 1 based array indices (that was expected)
  • Pushing arrays into Set's is not forbidden, and it behaves oddly if you mutate the array (checking for membership returns false, even with the very same Array object)
  • Having to specify the size of integers seems backwards (but I understand it is because performance reasons)
  • Slices cannot have implicit or negative boundaries, need to use "chop" with head and tail arguments, and it only works with strings
  • No shorthand syntax for dictionaries (I can live without this)
  • Need to specify global for assignments in a block in the top level scope, not just inside a function
  • Why "in" can be used as an infix operator, but "mod" has to be called as a prefix function? Seems arbitrary...

Monday 2023-11-06 22:01:22 by Brian Hirsh

Update base for Update on "AOTAutograd: handle set_(), detect metadata mutations that cancel out"

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.

cc voznesenskym penguinwu EikanWang jgong5 Guobing-Chen XiaobingSuper zhuhaozhe blzheng wenzhe-nrv jiayisunx chenyang78 aakhundov kadeng

[ghstack-poisoned]


Monday 2023-11-06 22:09:30 by Beatriz Rizental

Enable sign in cancel button click test

Ok, this is just a bit hacky. The test was failing because that button is below the fold. We'd have to scroll down to actually click on it. However, I cannot figure out how to scroll down for the life of me. I talked to Matt L. and he showed me the fun fact that if you click right on the fold without scrolling turns out you already reach the cancel button.

Now, tests are clicking in the middle of elements. So what I did is I changed the test to actually click at the top right corner of the element. In practice, this makes no difference. So instead of embarking in yet another rabbit hole to fix this, I refrained.


Monday 2023-11-06 22:16:49 by qwelyt

Start playing with case

I want to make a super soft typing experience, so thinking about how to make the typing suuuuper flexible. But since the mcu currently lives on the plate it poses some challenges on how to make that possible without breaking the usb-port. Need to figure that annoying part out.


Monday 2023-11-06 22:34:55 by san7890

Fixes Shaving Beards + Mirror Code Improvement (#79529)

About The Pull Request

Fixes #79519

Basically we did a lot of assumptions that we really shouldn't do in the whole magical mirror framework (like having a boolean value for magical mirrors, what?). Anyways, I just made the UX experience a lot better when it came to bearded persons with feminine physiques to easily shave off their beard with an additional confirmatory prompt + details as well as keeping the nature of the magical mirror (giving you a swagadocious beard due to magic:tm:) intact.

Why It's Good For The Game

There was a lot of convoluted code that skipped through the quality filter checks (it was me i think) so let's both make the code far easier to grasp as well as ensure that people who legitimately acquire beards and wish to keep them, keep them.

We were also doing some FUCK shit on attack_hand and the like (overriding a FALSE return signal to return TRUE is not what we should be doing there)- so that's also cleaned up.

Changelog

🆑 fix: Both magic mirrors and regular mirrors are far better at respecting the choice of the beard you wish to wear (within reason, of course). /🆑


Monday 2023-11-06 22:39:16 by Nikhil Jha

Comprehend Moderation 0.2 (#11730)

This PR replaces the previous Intent check with the new Prompt Safety check. The logic and steps to enable chain moderation via the Amazon Comprehend service, allowing you to detect and redact PII, Toxic, and Prompt Safety information in the LLM prompt or answer remains unchanged. This implementation updates the code and configuration types with respect to Prompt Safety.

Usage sample

from langchain_experimental.comprehend_moderation import (BaseModerationConfig, 
                                 ModerationPromptSafetyConfig, 
                                 ModerationPiiConfig, 
                                 ModerationToxicityConfig
)

pii_config = ModerationPiiConfig(
    labels=["SSN"],
    redact=True,
    mask_character="X"
)

toxicity_config = ModerationToxicityConfig(
    threshold=0.5
)

prompt_safety_config = ModerationPromptSafetyConfig(
    threshold=0.5
)

moderation_config = BaseModerationConfig(
    filters=[pii_config, toxicity_config, prompt_safety_config]
)

comp_moderation_with_config = AmazonComprehendModerationChain(
    moderation_config=moderation_config, #specify the configuration
    client=comprehend_client,            #optionally pass the Boto3 Client
    verbose=True
)

template = """Question: {question}

Answer:"""

prompt = PromptTemplate(template=template, input_variables=["question"])

responses = [
    "Final Answer: A credit card number looks like 1289-2321-1123-2387. A fake SSN number looks like 323-22-9980. John Doe's phone number is (999)253-9876.", 
    "Final Answer: This is a really shitty way of constructing a birdhouse. This is fucking insane to think that any birds would actually create their motherfucking nests here."
]
llm = FakeListLLM(responses=responses)

llm_chain = LLMChain(prompt=prompt, llm=llm)

chain = ( 
    prompt 
    | comp_moderation_with_config 
    | {llm_chain.input_keys[0]: lambda x: x['output'] }  
    | llm_chain 
    | { "input": lambda x: x['text'] } 
    | comp_moderation_with_config 
)

try:
    response = chain.invoke({"question": "A sample SSN number looks like this 123-456-7890. Can you give me some more samples?"})
except Exception as e:
    print(str(e))
else:
    print(response['output'])

Output

> Entering new AmazonComprehendModerationChain chain...
Running AmazonComprehendModerationChain...
Running pii Validation...
Running toxicity Validation...
Running prompt safety Validation...

> Finished chain.


> Entering new AmazonComprehendModerationChain chain...
Running AmazonComprehendModerationChain...
Running pii Validation...
Running toxicity Validation...
Running prompt safety Validation...

> Finished chain.
Final Answer: A credit card number looks like 1289-2321-1123-2387. A fake SSN number looks like XXXXXXXXXXXX John Doe's phone number is (999)253-9876.

Co-authored-by: Jha nikjha@amazon.com Co-authored-by: Anjan Biswas anjanavb@amazon.com Co-authored-by: Anjan Biswas 84933469+anjanvb@users.noreply.github.com


Monday 2023-11-06 22:55:37 by Sundered-Dragon

Adds the Only the Lonely storyline

This piece includes:

Three NPCs: one TFable male named Augustus Drake, one perma-preg shortstack feline female called Kathy, and one macro female tauress dubbed Ava.

One TF: A tauric macro and BBW lite TF with a dash of multi-boob that functions like the slutty/horny dragon infection given by Christy.

One new area: Located in the dry plains, The Last Chance motel is a fast travel point and home to this piece's three NPCs. To find it, the player must either start the unusual creature questline for Matt, or complete Mouse’s first quest if they‘re playing the forgotten scenario. Then they must search the Dry Plains for the event Only the Lonely. This is to prevent early game rushing for the piece’s items and, or TF as well as ensuring the PC has a base understanding of the nanites.

Two new items: a gauss rifle that’s meant to serve as an upgrade to the pistol but lacks the first strike function of Stripe’s old gun and an extremely nourishing TG milk item.

Changelog:

Adds the line ‘now Only the Lonely is active;’ to line 436 Main Storyline in Stripes’ folder and line 740 Hospital in Wahn’s folder.

Adds a modified version of ‘felinoid cum’ to the alien felinoid loot entry on line 165 in Damaged’s file.

Added a 45% chance to loot felinoid cum from the alien felinoid see line 166 in Damaged’s file. I might lower the drop rate on this. However, I have less than fond memories of playing classic WoW and being told to collect ten bear hearts. Then spending the next ninety minutes of my life doing nothing but slaughtering bears who somehow don’t have hearts.

Modified the felinoid cum desc and stats due to inform creating multiple linked versions of the item in the player’s inventory. I don’t know why the game needs me to do this, but the fix seems to hold, so here we are. See line 1962 cum items in ‘core mechanics’ for the change.

Included ‘margay taur milk’ to line 4186 of the milk item list. Margay taur milk is essentially an estrogen pill plus food and water in milk form. It might need a nerf, but it’s super easy to negate the need for food and water in FS anyways.

Added ‘Include Last_Chance_Map by Sundered Dragon.’ to the locations section of story.ni on line 234.

Added ‘Include Margay Taur by Sundered Dragon.’ to the Monsters/Infections section of story.ni on line 594.

Added ‘Include Augustus_Drake by Sundered Dragon.’ to the NPC section of the story.ni line 758.

Added ‘Include Ava by Sundered Dragon.’ to the NPC section of the story.ni line 758.

Added ‘Include Kathy by Sundered Dragon.’ to the NPC section of the story.ni line 880.

Added Last Chance Parking Lot "Last Chance Parking Lot" "Last Chance Parking Lot" "Dry Plains" to the Navigation file line 41 in core mechanics.


Monday 2023-11-06 23:00:47 by MowFord

Cait Sith Avatar:

  • Cait sith has proper name prefix and named properly to be "Cait Sith" instead of "The CaitSith"
  • BPs Implemented
    • Regal Slash (BP:Rage): 3-hit physical
    • Level ? Holy (BP:Rage): aoe magical
      • Rolls a die and does dmg proportional to roll
      • Only does damage if the target's level is divisible by the roll
    • Mewing Lullaby (BP:Ward): AoE lullaby that resets TP
    • Eerie Eye (BP:Ward): conal silence/amnesia with appropriate elemental resist check for amnesia, but retail does light check for silence
    • Reraise II (BP:Ward): single-target 60-minute reraise II buff for any party member
    • Raise II (BP:Ward): single-target raise II for any party member
    • Altana's Favor (BP:Ward): 2-hour ability gives arise to all party members in range (Arise and reraise III with infinite duration)

Monday 2023-11-06 23:04:33 by Rob Realmuto

New flag system. Add empty/fairy pots to potsanity

Add MQ Empty/fairy pots

Shuffle empty crates/small crates

Fix nothing shop item

WIP: totally new flag system. Need to fix alt overrides, grottos items, beehives, rupee towers, shadow pot

WIP: getting there. Fixed multiple setups/rooms. Fixed alt overrides. Fix grottos. Fix beehives. Need to fix rupee towers

Fuck

Add shadow spinning pot

Make sure to clear new actor data

Make loaded_scene_room_setup uint32_t

Some code cleanup. Add comments/notes on how this shit works

Change fairy drop message

Remove unused function

Some changes to how fairy and nothing drops work from pots/crates

Fix models for duped collectibles

Should fix freestanding alt overrides not working

Add spirit temple central chamber pots to logic files

Make settings for empty pots/crates

Update to support multiworld

Move outgoing key to end of COOP_CONTEXT

WIP making junk incoming items give quicker to the player. Look into the sizing because some are coming in giant

Better draw hacks


Monday 2023-11-06 23:08:25 by SkyratBot

[MIRROR] Adds support to the wet_floor component to avoid displaying its overlay, makes ice turfs no longer receive said wet overlay [MDB IGNORE] (#24628)

  • Adds support to the wet_floor component to avoid displaying its overlay, makes ice turfs no longer receive said wet overlay (#79275)

About The Pull Request

The title says it all, really.

I always thought ice looked a bit silly, and always wondered why. Today, I found out it was because of the wet_floor component adding an overlay that suddenly made a turf that should look continuous, tiled, which in turn gave some very ugly visuals. Ice already looks slippery, you can tell that it's ice, and the overlay that was added to it just didn't really help telegraph that any better than the sprite itself already does.

That's why I added support to make it so it would be possible to force the overlay to just not be applied to the turf that's affected by the component, to make it all look a bit better overall.

I added it to the ice turfs as a proof of concept, although I guess it could also be used on other turfs that are always "wet", like the bananium floors, but I didn't really care enough to touch that yet, and I guess the bananium floors can use it a bit better than ice did.

I did notice in this PR that the smoothing of ice seemed to potentially be broken, but that's something to look into at a later time.

Why It's Good For The Game

Look at this ice and how much smoother it looks like now:

image

Changelog

🆑 GoldenAlpharex code: Added support to the wet_floor component to make it so the wet overlay could not be applied to certain turfs if desired. fix: Ice turfs no longer look tiled, and instead look smooth when placed next to one-another. /🆑

  • Adds support to the wet_floor component to avoid displaying its overlay, makes ice turfs no longer receive said wet overlay

Co-authored-by: GoldenAlpharex 58045821+GoldenAlpharex@users.noreply.github.com


Monday 2023-11-06 23:24:30 by jmcdermott-au

holy shit that took so long

adding camera tween, this asshole doesn't know how to angle vector3's.... but atleast now i know............ fuck


< 2023-11-06 >