Skip to content

Latest commit

 

History

History
2561 lines (1939 loc) · 120 KB

2023-02-05.md

File metadata and controls

2561 lines (1939 loc) · 120 KB

< 2023-02-05 >

there were a lot of events recorded by gharchive.org of which 1,845,844 were push events containing 2,633,090 commit messages that amount to 157,804,467 characters filtered with words.py@e23d022007... to these 44 messages:

Sunday 2023-02-05 00:03:46 by Spencer Greenhalgh

post By the time this movie came out in 2005, I was already deep into superhero media, and I love using recycled tropes to tell an interesting story. This does an excellent job, and it was a favorite for my whole family when it came out. (In fact, I hdn't remembered until rewatching it that one of my family's shared verbal tics comes from a running gag involving Ron Wilson, Bus Driver). When the latest episode of The Incomparable covered this movie, I decided to watch it with my daughter, who also loved it. It's funny, well-plotted, and endearing, and I'm glad to have rewatched it for the first time in years and years.


Sunday 2023-02-05 00:18:18 by zeroisthebiggay

(hopefully) webedits a grammatical correction into headbite's kill message (#2537)

About the pull request

when someone dies to headbite it displays as Urr Mot'herr has died to executed by headbite at the Containers from Elder Lurker (GIT-222) hopefully with this simple one line webedit it should instead be Urr Mot'herr has died to headbite execution at the Containers from Elder Lurker (GIT-222) god fucking knows if this is the right line

Explain why it's good for the game

uhm it reads better

Testing Photographs and Procedure

Screenshots & Videos

github

Changelog

🆑 spellcheck: 'executed by headbite' to 'headbite execution' when listing someone dying to a headbite in deadchat /🆑


Sunday 2023-02-05 00:18:18 by carlarctg

Adds Ludicrously In-Depth Black Market to Recquisitions. (#2014)

About the pull request

VASTLY enhances the Black Market. Black market items are obtainable by deconstructing a supply computer and pulsing the circuit board. If you're knowledgeable in engineering enough.

Added a whole new category for black market items and thoroughly enhanced the possible contraband items to order. Guns, drugs, and worse are plentiful in stock...

Various valuable, rare, or otherwise interesting items now have a 'black market value' that allows them to be sent down the ASRS elevator in exchange for black market points to order various things with. Anything that's 'rare' is probably worth something. Added a scanner to the black market to let them detect said points.

Added DIALOGUE to the black market.

FIxed some construction wirecutter steps needing a screwdriver for some reason.

Changed up Req's mapping to add a hidden storage room.

slightly changed human remains' description

Added the maintenance jack, can be found in the black market for now.

Improved supply shuttle code somewhat.

Explain why it's good for the game

VASTLY enhances the Black Market. Black market items are obtainable by deconstructing a supply computer and pulsing the circuit board. If you're knowledgeable in engineering enough.

Black Market is comically underused, by comically enhancing it like this it will freshen shipside roleplay and create new and interesting scenarios for MPs, req, and bystanders to interact with.

Added a whole new category for black market items and thoroughly enhanced the possible contraband items to order. Guns, drugs, and worse are plentiful in stock...

The contraband needs to be actually meaningful to the players for it to have any impact. The list of loot has been curated so that players will be intrigued, but will not be able to abuse it for too-stronger-than-usual gear without blatant drawbacks.

Various valuable, rare, or otherwise interesting items now have a 'black market value' that allows them to be sent down the ASRS elevator in exchange for black market points to order various things with. Added a scanner to the black market to let them detect said points.

This means CTs could go on scavenger hunts through the ship, evading curious MPs to sift through maintenance and various hidey holes scanning everything.

Added DIALOGUE to the black market.

Finally, we have dialogue in CM! The very first human NPC. We're ignoring WO because nobody likes WO.

FIxed some construction wirecutter steps needing a screwdriver for some reason.

Necessary in this PR to avoid stupid confusion when deconstructing the computers.

Changed up Req's mapping to add a hidden storage room.

To let CTs hide their goodies so they won't be in open sight. NOT DONE YET!

Testing Photographs and Procedure

Screenshots & Videos

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

Changelog

🆑 add: VASTLY enhances the Black Market. Black market items are obtainable by deconstructing a supply computer and pulsing the circuit board. If you're knowledgeable in engineering enough. add: Added a whole new category for black market items and thoroughly enhanced the possible contraband items to order. Guns, drugs, and worse are plentiful in stock... add: Various valuable, rare, or otherwise interesting items now have a 'black market value' that allows them to be sent down the ASRS elevator in exchange for black market points to order various things with. Anything that's 'rare' is probably worth something. Added a scanner to the black market to let them detect said points. add: Added DIALOGUE to the black market. fix: FIxed some construction wirecutter steps needing a screwdriver for some reason. spellcheck: slightly changed human remains' description add: Added the maintenance jack, can be found in the black market for now. code: Improved supply shuttle code somewhat. /🆑


Co-authored-by: harryob [email protected] Co-authored-by: XSlayer300 [email protected] Co-authored-by: Segrain [email protected] Co-authored-by: Zonespace [email protected]


Sunday 2023-02-05 00:22:42 by gilch

Remove code of conduct

On reflection, it seems like more trouble than it's worth right now. Despite writing one on GitHub's recommendation, this kind of thing would tend to scare me off of a project rather than make me feel comfortable, the same way a "privacy policy" would make most people uncomfortable. ("Oh, you feel the need to legally cover yourself because you're in a position to be doing potentially shady things with my private information? So you're going to make me comb through pages of legalese to find the gotchas? Gee, thanks." Similarly, needing a "code of conduct" suggests there was past community misconduct. We're not there yet, and I don't want to suggest we are until that happens.) I'd rather rely on present GitHub norms than try to invent my own. It can be resurrected from the repo (or rewritten) if it ever becomes necessary.


Sunday 2023-02-05 00:31:50 by LuposX

PAIN, PURE SUFFERING

I love Neco Arc! Neco Arc is all that I think of. Neco Arc is the best thing that I ever saw. It all started on Discord, on a videogame music server. I started seeing those gifs of a cute small catgirl dancing the gangnam style dance. It was very funny, but I continued with my life. Then, I saw it again. This time she was riding a car. The next one was the thing that made me realize how perfect this character is. Her little voice saying "dori dori dori dori" made me realize I just found the meaning of life. Neco Arc became my entire life after that. I will do anything to meet this perfect being. I want to hug her tightly while she purrs feeling comfortable in my arms. I will find a way to meet Neco Arc. I do not care what I have to do. I don't care anymore. I will do anything to meet Neco Arc. I want her to say "Gurenyuu" as she walks around, showing everyone what the perfect life is. Neco Arc will show us how to become better. Neco Arc is the new symbol of peace. Dori dori dori dori.


Sunday 2023-02-05 00:51:26 by GorFinkel

Create RegularChatbot.js

Instructions You have been hired as a Regular Expression Specialist in a company that is developing a Chatbot.

It is in a very basic phase of development, hence your mission is to use Regular Expressions to improve the chatbot's ability to understand and generate natural language.

Check Valid Command Apart from being smart, the Chatbot is also a loyal assistant.

To ask something to the chatbot, the user must say the word “Chatbot” in the first position of the command.

It doesn't matter if the keyword is in UPPERCASE or lowercase. The important aspect here is the position of the word.

Implement the function isValidCommand() that helps the Chatbot recognize when the user is giving a command.

isValidCommand("Chatbot, play a song from the 80's."; // => True isValidCommand("Hey Chatbot, where is the closest pharmacy?"; // => False isValidCommand("CHATBOT, do you have a solution for this challenge?"; // => True Remove encrypted emojis The Chatbot has a difficult time understanding how humans use emojis to express their emotions.

When the chatbot receives user messages, each emoji is represented as “emoji” followed by its id number.

Implement the removeEmoji() method to take a string and remove all the emoji’s encryption throughout the message.

Lines not containing emoji’s text should be returned unmodified.

Just remove the emoji string. Do not attempt to adjust the whitespace.

For this particular challenge, use constructor syntax for creating the regular expression.

removeEmoji("I love playing videogames emoji3465 it's one of my hobbies"); // => "I love playing videogames it's one of my hobbies" Check Valid Phone Number Considering the download of chatbot features on a mobile app, the user is expected to write a phone number during the conversation.

The problem is that the chatbot can only read and validate a number with a specific format.

If the number is valid (matches the character sequence specified by the regular expression), the chatbot answers with a message thanking the user and confirming the number. If the number is invalid, the function informs the user that the phone number is not valid.

The expected format is: (+##) ###-###-###

checkPhoneNumber('(+34) 659-771-594'); // => "Thanks! You can now download me to your phone." checkPhoneNumber('659-771-594'); // => "Oops, it seems like I can't reach out to 6s59-771-594" Get website link The Chatbot is a really curious software. Even though he can search on the internet about a particular topic, he likes to ask users about cool websites or URL’s to go find relevant information.

Example of Conversation:

Chatbot: Hey username, I would like to learn how to code in JavaScript, do you know any cool website where I could learn? User: I learned a lot from exercism.com Implement the function getURL() which is able to return an array with just the link of each website.

getURL('I learned a lot from exercism.com'); // => ["exercism.com"]; Greet the user For storing data from all the persons who have had a conversation with, the chatbot is able to get the Full Name from the user’s profile in this style: “smith, john”.

In this way, we want our chatbot to be really polite and make a good impression.

Write the function niceToMeetYou() that takes a string with the full name of the user, and returns the string “Nice to meet you, John Smith”

For learning purposes, implement the function using a replacement method from Regular Expressions.

let str = 'Smith, John';

niceToMeetYou(str); // => "Nice to meet you, John Smith"


Sunday 2023-02-05 01:40:51 by Romain Derie

[FIX] website: redirect to case insensitive URL if not exact match

Before this commit, if a link to a page was not correct because of a case mismatch, it would simply land on a 404 page. While it's correct, as URL are case sensitive, it leads to a few bad UX flow at the admin/editor level:

  • Create a link in your page (on a text or a button eg), type an URL which does not exists (to create it after) like /Page
  • Click on the link/button you just made, you are redirected to /Page which display a 404 with the "Create page" option (correct)
  • When you click on that button, it will actually create a page with /page URL, leading to a mismatch between the URL you created and the page URL. Your link/button will still lead to a 404 URL as it points to /Page.

Since it's just a fallback when an exact URL match is not found, it should not break anything and should not have bad impact at any level (seo/speed etc). Indeed:

  • It's done through a 302 redirect
  • _serve_page() is already a fallback case, so it will only make the website.redirect and 404 cases a bit slower due to the extra search query.

The only possible scenario seems to be if the user (mind the uppercase):

  • Created a /Page page
  • Created a redirect from /page to /another-page

In this case, /page won't land on /another-page but on /Page. This flow seems unlikely and is not actually wrong either way. At least, it certainly is less important than ensuring a case insensitive fallback.

Finally, note that another solution would have been to either:

  • Force page URL to lower case. -> This is not stable friendly, people might be relying on this to create pages with different casing: /Batman-VII-The-Dark-Knight-Whatevers, while not recommended, doesn't sounds idiot. On top of not being stable friendly, we probably want to keep offering this possibility
  • Redirect all URLs to lowercase endpoints. -> This is obviously not stable and not Odoo's jobs. It should be something decided by the sysadmin and done at nginx (etc) level.

task-3110294 opw-3104030

closes odoo/odoo#111400

X-original-commit: 639cfc76ba259eea8f38284192017024809173b3 Signed-off-by: Quentin Smetz (qsm) [email protected] Signed-off-by: Romain Derie (rde) [email protected]


Sunday 2023-02-05 02:20:11 by Peter Zijlstra

sched/core: Fix ttwu() race

Paul reported rcutorture occasionally hitting a NULL deref:

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

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

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

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

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

this would've unconditionally hit:

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

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

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

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

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

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

CPU0				CPU1				CPU2

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

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

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

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

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

				  if (p->state)

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

				  smp_rmb()

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

				  if (p->on_rq)

				  smp_rmb();

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

				  smp_cond_load_acquire(&p->on_cpu, !VAL)

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

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

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

Nevertheless, this fully explains the observed failure case.

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

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


Sunday 2023-02-05 03:10:57 by Görkem Akdeniz

I AM GONNA TO FUCKING SLEEP!!!!!

  • Added 8 Random Names
  • Implemented the new Texts created by Marko
  • Increased duration of Texts
  • My ass still hurts
  • Increased tiredness of dev
  • Increased love for teammates

Sunday 2023-02-05 03:32:30 by enderpuff

I hate CSS please just fucking center the shit!!!!


Sunday 2023-02-05 04:19:05 by aki-cat

Finally made movement fucking work god fucking damn it


Sunday 2023-02-05 04:36:10 by henri

holy fuck i did a bunch of changes and i dont remember all to write a good commit


Sunday 2023-02-05 04:43:57 by san7890

Improves/Abstracts Suicide A Bit More (#72949)

About The Pull Request

Basically all of the heavy lifting was done in #72919, but we do a few key things here that I wasn't able to do then because it was just fucking massive.

Player Facing Changes:

  • hear_blind arg is now a default state and must be specifically overridden. Pretty much every mob that wasn't a pAI or alien was lacking this, so let's toss it in as a default now. Let me know if the generic message I put in for /mob/living sucks and we can go from there.

Code Side Changes:

  • suicide.dm now only contains code pertinent to the suicide verb, and all subtype proc-overrides have been moved to an appropriate file pertinent to that subtype.
  • suicide.dm has also been organized a bit more to aid the previous change.
  • There is only one suicide verb now, implemented on /mob/living. All the verb does is invoke the handle_suicide() proc, which does all of the lifting.
  • Leaning into mumble mumble object-oriented philosophy, the message we send to the world on suicide is handled on subtype procs, rather than be in the huge fuck-off message tree I implemented in the earlier PR. It definitely makes the visible_message() proc not hard to read IMO. This also means that we can take up a less footprint when we re-use certain suicide messages (i.e. Silicon), which is nifty too.

i'm probably forgetting something but that's all of the big ones

Why It's Good For The Game

There is now a very, very common framework for how suicide works across all living mobs, and it's much easier to override how suicide is handled. Certain subtypes do their own bullshit thing, but it's quite easy to account for this on that case-by-case basis. The overall code takes up a much less footprint that just makes it look nicer.

Changelog

🆑 qol: Some mob suicides now have a message that shows to blind people or people that didn't actually witness the suicide, pretty cool. /🆑


Sunday 2023-02-05 05:07:25 by boot2big

Colada remodel, Panel jsons+textures, Devom Custom tweaks Colada has been remodeled, a few parts + animations still need repositioning and adjustment Panel jsons have been implemented, fucking love these. Amazing. Thank you don Devom custom tweaks


Sunday 2023-02-05 05:12:55 by Koi

Mr. Mime is a thing, unfortunately. Mild clean, some more Cherish set handling attempts. Exclude set MetDate from mystery gifts. Fix daycare enum parsing. Check for no result in case $qc was used or some other weird thing happens. Remove FixOT and TradeCord as routine types (FlexTrade handles both). Try to apply trainer info for Mystery gifts. Re-add fixed met date if not GO origin. Update DenBot distribution data, minor fixes. Fix Yamask-Galar in daycare, some more oopsies. -Add DenBot - a seed lookup and day skipper bot for raids. -Change AutoRoll's behavior to make use of some of DenBot's functionality. Minor clean. Revise TradeCord "traded" check, remove potential user path straggler entries because paranoia, some minor fixes. TradeCord fixes (shocker, I know). Extract Json serializer. Minor clean and fixes. Minor fixes. Fix Milcery when an Alcremie variant is a parent. Update to latest Core and ALM dependencies. Handle non-shiny events in a better way. Work around a race condition? Simplify and de-bugify trade completion check. Fix indexing, improve chance for Melmetal-Gmax because it's nigh impossible to get. Rework TradeCord internals, add new functionality: -Migrate user data from ".txt" files to a serialized Json (migration for a large amount of users will take a few minutes, be patient). -Make TradeCord configurable, add its own settings category. -Add some template events with an optional end timer (YYYY/MM/DD 8PM as an example, though any local time format should work). -Add barebones Pokedex (counter, flavor text). -Can check dex completion by typing $dex, check missing entries by typing $dex missing. -Completing the Pokedex will slightly improve shiny rate. -Can now mass release cherish event Pokemon and shinies ($massrelease shiny/cherish). -Various tweaks, improvements, and bugfixes.

Slightly change FixOT's behavior: -If a shown Pokemon is illegal and an event, attempt to find a match within the MGDB first. -Try to force users to trade away the shown Pokemon, log attempt to change shown Pokemon. Add consideration for easter eggs being enabled in settings, fix Suicune Change species rng for TradeCord, some bugfixes (I really need to rewrite this mess) Add check if we're using ListUtil for Giveaway instead of TradeCord. Amend commit since I'm squashing and force-pushing while bringing the fork in line with the main branch Add Giveaway module to Discord bot (#22)

Thanks, rigrassm. Co-authored-by: Koi-3088 [email protected] Specify USB port instead of adding the first result (can be found via Device Manager). Re-add boolean check because we don't want to fix everything FixOT will attempt to regenerate illegal Pokémon. Apply trash bytes for reasons. Minor TradeCord fixes and adjustments. Minor clean for C#9 Use "GetValidPreEvolutions()" instead of "GetPreEvolutions()". Index forms correctly. Fix the fixed and re-introduced empty daycare index error. an Ultra Ball. Add EvoTree breeding for TradeCord. Remove unnecessary value declarations for pinging on encounter match. Mildly beautify EncounterBot mark output. Integrate Anubis' system update prevention into Soft Reset and Regigigas Encounter Modes. Rename "Regi" Encounter Mode to "Soft Reset". Speed up "A" clicks for Regigigas and Soft Reset modes. Add Mark logging output for EncounterBot. Fix oops (re-order logic, remove unnecessary lines). Add optional species and form specification for $massrelease Use an obscure string splitter because people like symbols in their names. Fix things that broke after rebasing to the latest main repo commit. Use a less unfortunate field name and value splitter...again. Fix Marowak-Alola always generating as an NPC trade. Add filters for "$list " to narrow down results. Fix Cherish Pichu and Octillery Stop making dumb mistakes, me (implying the rest of it isn't a dumb mistake). Can't breed antiques. Use a less unfortunate embed name and value splitter Add Melmetal-Gmax to TradeCord. Add ability to search by caught ball. Have MassRelease ignore events. Add specific regional form breeding. Revise egg rate and egg shiny chance. Have trade evolutions hold an Everstone. Add an extra right click when navigating to settings for AutoRoll. Add reworked encounter/egg/fossil logs. Minor clean. Minor clean. Get rid of EncounterBot, FossilBot, EggFetch text logs until I properly rework them. Break on an empty page due to aggressive rounding Add multi-page lists for Tradecord. More random bugfixes. Fix some bugs before major clean Add Language parameter for TradeCord. Change trainer info input format for TradeCord. Move focus on Showdown set instead of randomizing a pkm file. Allow user to enter whatever they want for $list, handle edge cases like Kommo-o Add "$list all" to show non-duplicate caught species. Automatically remove from favorites if trading or gifting (small QOL thing). Change how favorites are removed from user file. Revert base egg shiny chance nerf. Fix daycare Add favorites command to TradeCord. Slightly nerf eggs. Fix TradeCord list for shinies Add TradeCord (my dumbest and messiest project so far, Archit pls don't hate the mess). Add Showdown output for Star/Square shinies and OTGender. Add optional link code input for FixOT. Change how OTName, TID, SID is displayed. Add Regigigas SR bot. Add SoJ Camp SR bot. Ribbons now work with EggTrade (remove ribbons if egg). Remove EggRoll. Add another filter for FixOT Fix.. FixOT Update offsets for EncounterBot catching. Slightly change StrongSpawn to work with Regi SR and make it its own mode. Make SpinTrade only available for USB-Botbase Update valid eggs for CT winforms: resize icon.ico to fix crash at startup on unix using mono Rework Spin, read initial in-game coordinates in order to correct drift Add TID, SID, Language output for Showdown Remove obsolete OT and Language parsing Very minor clean until I have time for a proper one. Detach controller when stopping USB bot. Actually set LastUsedBall for EncounterBot (missed when bringing in line with main repo) Move extra RaidBot timings following the official commit Remove PKHeX Discord invite from Readme.md

Maybe fewer people will pester devs now about my unofficial fork? Update for latest main repo EncounterBot commits. Update README.md Add back best commit: Red's SpinTrade. Add egg trades, foreign Dittos and OT for Twitch. If ItemMule is enabled, also display the item a user is receiving. Add periodic time sync toggle for all methods of hosting (except for non-soft locked AutoRoll) to (hopefully) prevent den rollover during extended hosts.

Add routine to exit a lobby for SoftLock if no players are ready in time (to preserve soft lock).

Add a routine to recover from disbanded lobbies (when someone disconnects unexpectedly) for SoftLock.

Add a routine to restart game if all else fails and we're stuck in a raid.

Add a routine for adding and deleting friends if we're soft locked and raids go empty.

Slightly reorganize settings, extract methods, minor clean. Don't use such a generic file name for stream assets. Check USB port index for running bots. Should fix adding additional USB bots when no config is saved. Add fixed met date for FixOT. How do I boolean Change airplane mode logic, tweak timings and routine for soft lock lobby exit Rework EggRoll cooldown (static list in favor of a txt file). Start clean up and refactor Add setting to increase delay after pressing "Home" after a date skip. Use USB port index for blocking and sprite pngs if connection type is USB Add option for airplane host (usb-botbase required) Add option to softlock on selected species for AutoRoll Add automatic compatibility for all console languages when date skipping (have to set ConsoleLanguage under ScreenDetection) Attempt to fix multiple USB device add and connect...again Minor clean Fix oops? Handle add/remove of bots Distinguish between multiple USB devices, tweak BotRemoteControl for USB, other various fixes Add SpA modifier for foreign Dittos Add alpha USB-Botbase support Fix DateTime parsing for European format for EggRoll Set fixed EggMetDate and MetDate for EggRoll More FixOT filters Remove Beheeyem. Oops. Split EggRoll into its own routine and trade type, only output "Receiving: Mysterious Egg" if routine is EggRoll, other minor tweaks and fixes Make FixOT its own queue with roles and counts Add a couple more OTs to $fix Parsing for EggRaffle auto-clear and $clearcooldown Adjust timings and split Watt collecting clicks for AutoRoll Fix oops with file attachments for Ditto Further improvements for OT, memes for invalid pokemon (disable EasterEggs) Add spaces, digits for OT Randomize memes, cut down bloat Fix miscellaneous bots after Anubis' recent QOL additions -Ignore events for OT because headache. -Add overlooked "$convert " input for OT. -Move $clearcooldown to SudoModule -Clear timer automatically if NoTrainerFound -More reliable Dittos -Foreign Dittos for $convert -Command to clear cooldown for EggRaffle in case trade gets disconnected -Fix "Trade finished" line to keep result secret -EggRaffle as a toggle, option to specify channels -Seed Check output to both DMs and Channel (apparently some want it) -Randomly generated egg raffle via a "$roll" command with a configurable cooldown -FixAdOT reworked, has its own command "$fix" and no longer overrides $clone -Ball: output for Showdown sets -Fix oversight -Option to output Seed Check results to Discord channel with a User mention -Showdown set output for OT name and eggs -Basic "OT: " option without Showdown set output -Initial $convert support for EggTrade -Egg moves for EggTrade test attempt -Minor update -EggTrade (by nicknaming a Pokémon "Egg" using $trade) -Failsafe for memes if enabled but field left blank or incomplete -Niche breedable Ditto trade mode. Add minimize button EggFetch text logs StrongSpawn mode for EncounterBot Re-add EncounterBot Master Ball catching More parsing for FixAdOTs Park Ball as held item instead of string Actually remove the offset instead of saying I did Initial DLC commit Faster code entry Removed catching for EncounterBot (need a new offset) CloneBot mode to fix Nickname and OT if adverts detected


Sunday 2023-02-05 06:27:59 by tomara_x

holy shit!

i don't know what it is, but holy fucking shit! oversampling does some stuff!


Sunday 2023-02-05 06:57:48 by Mustungun

Made Gamemanager to handle game modes and other shit. I don't remember. I've been working on it all night

Timer, game modes, win conditions, canvas switching


Sunday 2023-02-05 07:15:32 by Rhials

It Came From Outer Spess: Adds midround changelings, delivered by an absolutely disgusting changeling meteor (#73018)

About The Pull Request

Adds a new dynamic midround opportunity and random event - Space Changeling.

2023-01-28.13-20-32.mp4

If you are fortunate enough to recieve this role, you will be stuffed into a changeling meteor and hurled at the side of the station. With no crew identities, no access, and no equipment, you'll have to rely on your free organic space suit and armblade to infiltrate the station and get settled.

With no disguises to fall back on, the midround changeling experience may lead to some very unfavorable situations. It's not unlikely that you'll be spotted making your way inside, or that someone will see the impact site and cause a panic. This role is not easy, but keep in mind that you also have nothing to lose in the event that you use Lesser Form/Headslug.

Aside from the starting circumstances, you have the same objectives and capabilities as a roundstart changeling. Getting inside of the station will be the hard part, but from there you can do what changelings do best and blend in.

A brief note on the free stuff you get:
You get the organic space suit and armblade for free. The space suit is absolutely vital, but I decided that the armblade should be given for free as well. It's necessary for breaking open windows or airlocks and getting access to the station, since otherwise your options are limited to arrivals/departures. Having to pay a 2 point tax to avoid walking naked into the main hallways of the station and getting gibbed is lame, and with the added difficulty of the role I think it's fair.

Also, this is my 100th PR here! :)

Why It's Good For The Game

Adds midround changelings in a WAY COOLER way than just making a random crew/new arrival a changeling.

Lets people experience Hardmode Changeling, and test the adaptability and flexibility of the most versatile antagonist even harder than before. Losing the option to bypass the whole shape-shifter thing by disguising as your crew identity presents a welcome change to the formula.

Adds a teensy bit more midround variety, so we stop getting Nightmare At The Thirty Minute Mark every round.

Changelog

🆑 Rhials add: Midround changeling spawn event. add: Changeling meteor. It has a present for you. /🆑


Sunday 2023-02-05 08:25:56 by SkyratBot

[MIRROR] Basic Mobs Now Actually Have A Deathgasp [MDB IGNORE] (#19002)

Basic Mobs Now Actually Have A Deathgasp (#72950)

About The Pull Request

Pretty obviously an oversight since we only checked for simple_animal for this, but should also factor in the fact that we could now be a basic mob.

Actually I tested it on Sybil just now and deathgasps just never worked. We were setting death_message for... I guess when they die? It's just fucked but it works on my local now. blurgh

Why It's Good For The Game

Ported simple animals that are now basic mobs were able to deathgasp this time last year. Silly that they aren't able to do that now.

Changelog

🆑 fix: Basic Mobs are now able to deathgasp. /🆑

Let me know if the new variable name for the string is cringe, I just settled on that since it mirrored the type of check we run in select_message_type().

Co-authored-by: san7890 [email protected]


Sunday 2023-02-05 08:48:24 by kleinerm

Drawtext plugin: Add workarounds for latest MS-Windows screwups.

Another fun property of the new fontconfig-1.dll bundled with GStreamer 1.20.5 is that likely due to some other screwup, the fontconfig library can't find its own fonts.conf and other configuration files. So it falls back to a bad default configuration which selects fonts that display, but look dead-ugly!

Given the amount of trouble mislocated fonts.conf files and fonts/conf.d/ folders made in the past on MS-Windows, lets take this issue into our own hands: Now we build the path to the proper config files and folders inside the GStreamer installation directory ourselves and pass it to fongconfig via the override environment variables meant for this purpose. This way the FTGL drawtext plugin will always use the fontconfig-1.dll bundled with GStreamer 1.20.5+ and the config files inside ... GSTREAMER_1_0_ROOT_MSVC_X86_64 root-folder/etc/fonts/

Consistent behaviour under Matlab and Octave. And GStreamer 1.20.5 now ships a recent fontconfig library and default config for User installed font files under the WINDOWSUSERFONTDIR. Good for customization under MS-Windows.

Ofc. it would be too easy if it were that easy! Due to linker and C-runtime nightmares and incompatibilities, our plugin can't getenv() environment variables defined inside Octave or Matlab via setenv(), neither can libfontconfig! Only system/user-level variables from before launch of Octave/Matlab process are accessible via the Windows specific GetEnvironmentVariable() function. So we get the GStreamer root directory via the Windows-Registry defined GSTREAMER_1_0_ROOT_MSVC_X86_64 variable, and then synthesize proper config pathes, and hand those over to libfontconfig via regular standard C _putenv() + getenv(). The miracles of the MS-Windows operating system and different and conflicting C runtimes within one process!! And there went the rest of the Saturday...

-> Now we can built a FTGL drawtext plugin from within Matlab with MSVC 2019 and it works on both Octave 7.3 and Matlab R2022b with the new GStreamer 1.20.5+ fontconfig-1.dll library and consistent config files from GStreamer.

God do I hate the MS-Windows operating system shit-show, I'm not nearly paid enough to deal with this crap!


Sunday 2023-02-05 09:40:06 by ICXCNIKA

fix(DB/Locale): deDE fix request items texts #02 (#14615)

Process of translation: only original sources of deDE texts by researching multiple sources, reverse translation by searching for related quest items/NPCs and using these names to reconstruct a proper translation.

This fixes the terms

Coldtooth-Mine (Eisbeißermine), Doomhammer (Schicksalshammer), Fizzle (Zischel), Fizzledowser (Rutenwünschels), Fizzlebub (Zischelbub), Burning Blade (Brennende Klinge), Ashenvale (Eschental), Bloodscalp/s/stamm (Blutskalpe, Blutskalpstamm), Darkspeartrolle/Darkspears/Darkspearstamm (Dunkelspeere, Dunkelspeertrolle, -stamm), Moonglade (Mondlichtung), Starblaze (Sternenschauer), Shadowglen (Laubschattental), Darrowshire (Darroheim), Booty Bay (Beutebucht), Ratchet (Ratschet), Dizzywig (Flunkerblick), Hearthglen (Herdweiler), Chillwindspitze (Zugwindspitze), Stormrage (Sturmgrimm), Stormpike (Sturmlanze/n), Ironforge (Eisenschmiede), Thunderhorn (Donnerhörner), Steamboil (Kesseldampf), Twilight-Hammer, -klan (Schattenhammer/Schattenhammerklan), Fathom-Kern (Tiefenkern), Blackfathom Deeps (Tiefschwarze Grotte), Blackrock-* (Schwarzfels-*), Hawkwind (Falkenwind), Feathermoon (Mondfeder), Moonrage (Mondzorn), Firemane (Feuermähne), Searingblade (Sengende Klinge), Ragefireabgrund (Flammenschlund), Ironbands Areal (Eisenbands Lager), Zandalar (Zandalari), Southshore (Süderstade)

for quest progress/request text entries for the deDE localisation with proper casus/declension (these are not proper translated names of locations/NPCs that have been left over by Blizzard since their language localisations in TBC in 2006 and onward).

Added missing progress/request text entries for 308, 311, 417, 1644, 1787, 5059, 5060, 5721, 6004, 6023, 6025, 6187, 8042, 8043, 8044, 8046, 8047, 8048, 8050-8079, 8102, 8107, 8108, 8111, 8112, 8113, 8117, 8118, 8142, 8143, 8147, 8183-8195, 8238, 8239, 8240, 8243, 8246, 8860, 9594, 9692, 9707, 10414, 10415, 10919, 11451. (A lot of them are Zandalari/Zul'Gurub related quests.)

Replaced post-Cataclysm progress/request text entries for 933, 935, 6387, 7383.

Fixed a wrong $R with plain text at progress/request text for 9147.

Added missing female gender equivalent to 6391.

(There are probably more changes in the file that aren't further explained here as it was hard to keep track of everything. If you think I made a mistake or have questions please contact me directly.)

Changes Proposed:

  • Fixing a lot in the quest_request_items_locale table.

Issues Addressed:

SOURCE:

  • Read the text on top.

Tests Performed:

  • Not tested.

How to Test the Changes:

All of the changes are to reward texts of quests, can be tested by completing quests or simply reviewing the changed file.

Known Issues and TODO List:

  • [ ]
  • [ ]

How to Test AzerothCore PRs

When a PR is ready to be tested, it will be marked as [WAITING TO BE TESTED].

You can help by testing PRs and writing your feedback here on the PR's page on GitHub. Follow the instructions here:

http://www.azerothcore.org/wiki/How-to-test-a-PR

REMEMBER: when testing a PR that changes something generic (i.e. a part of code that handles more than one specific thing), the tester should not only check that the PR does its job (e.g. fixing spell XXX) but especially check that the PR does not cause any regression (i.e. introducing new bugs).

For example: if a PR fixes spell X by changing a part of code that handles spells X, Y, and Z, we should not only test X, but we should test Y and Z as well.


Sunday 2023-02-05 09:57:54 by ScorpeAKANils

lol muzzle flash wasnt safed, hate my life

added player muzzleflash


Sunday 2023-02-05 10:08:33 by Doru

Expose filtering by file type in glob (#7834)

Description

Add flags for filtering the output of glob by file type. I find myself occasionally wanting to do this, and getting a file's file_type is presumably fast to do as it doesn't have to go through the fallible metadata method.

The design of the signature does concern me; it's not as readable as a filter or "include" type list would be. They have to be filtered one by one, which can be annoying if you only want files -D -S, or only want folders -F -S, or only want symlinks --butwhy?. I considered SyntaxShape::Keyword for this but I'll just defer to comments on this PR if they pop up.

I'd also like to bring up performance since including these flags technically incurs a .filter penalty on all glob calls, which could be optimized out if we added a branch for the no-filters case. But in reality I'd expect the file system to be the bottleneck and the flags to be pretty branch predictor friendly, so eh

User-Facing Changes

Three new flags when using glob and a slightly more cluttered help page. No breaking changes, I hope.

Tests + Formatting

Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

  • cargo fmt --all -- --check to check standard code formatting (cargo fmt --all applies these changes)
  • cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect to check that you're using the standard code style
  • cargo test --workspace to check that all tests pass

After Submitting

If your PR had any user-facing changes, update the documentation after the PR is merged, if necessary. This will help us keep the docs up to date.


Sunday 2023-02-05 11:38:24 by Marko Grdinić

"8:50pm. https://github.com/comfyanonymous/ComfyUI

This ui will let you design and execute advanced stable diffusion pipelines using a graph/nodes/flowchart based interface. For some workflow examples you can check out: ComfyUI Examples

Oh is this how it works? It might be worth a try.

I didn't think it would be like Blender's geo nodes. It has my attention.

https://comfyanonymous.github.io/ComfyUI_examples/area_composition/

https://comfyanonymous.github.io/ComfyUI_examples/2_pass_txt2img/

Oh so this is how he was doing it! He was the foxgirl anon!

I loved his backgrounds.

You can Load these images in ComfyUI to get the full workflow.

Hmmm...

The fp16 model configs in the CheckpointLoader can be used to load them in fp16 mode, depending on your GPU this will increase your gen speed by a significant amount.

9:20pm. I kind of want to make more vids of myself doing things. That guy's advice for making adictive vids be damned.

2/5/2023

9am. I am up. Any mail? One application telling me they got a large number of applicants and telling me to be patient. It is some senior cloud related position that I applied at random. I do not think I'll get in here, especially give that it pays between 130-160k.

9:05am. Let me chill for a bit. Time for manga.

Urasekai Picnic, Kaiji, Neto Chara and Girls Frontline are out. After I have my fill of that, I'll start studying the Fable docs.

10am. Just a bit more and I will start.

Yesterday I talked about the market and said I would be all in here, but that is too rash. All-in when you expect the market to go up rapidly, and it would be weird if that happened here. So a 50% here and 50% in two weeks would be better. That is the ticket.

10:15am. I'll leave UraPi for later.

https://fable.io/docs/introduction/dotnet-users-read-this.html

10:25am. I need to study web development. Ionide is really the right path. It will take me a while before I can do non-trivial things on the codebase. Probably a few weeks of constant study.

https://babeljs.io/docs/en/

Babel is a toolchain that is mainly used to convert ECMAScript 2015+ code into a backwards compatible version of JavaScript in current and older browsers or environments. Here are the main things Babel can do for you:

Hmmm, ok.

https://webpack.js.org/

I am going to have to get familiar with these tools. Functional programming on the web is the next frontier for me.

Maybe I'll get back from Enso and get a 80-100k job working on a visual PL, in which case all of this won't matter. But if I want to do functional programming, my best bet is web development. As far as low level programming is concerned, the lowest I want to go is Rust. I applied to a Rust position, but I should just assume I won't get it. The web positions require knowing a lot of libraries and frameworks, which will necessitate me to invest my time in learning them, but I won't have problem finding work after that.

I'll also have to study .NET enterprise webdev. Branimir showed me a web app which used Blazor, so I can expect to get work from that direction. I do like reactive langs like Blazor though.

https://fable.io/docs/your-fable-project/project-file.html

10:40am. Focus me. Don't read the synth general.

///

Fable.Core, which is required for every Fable project Fable.Browser.Dom, for all your DOM needs (window, document) Fable.Elmish.React, to write web apps using the Elm architecture and React as the render engine Thoth.Json, for JSON serialization

///

I should get familiar with the last two libraries.

///

fable-dart: Dart is supported by the package

fable-dotnet: .NET is supported by the package

fable-javascript: JavaScript is supported by the package

fable-python: Python is supported by the package

fable-rust: Rust is supported by the package

fable-all: Package is compatible with all Fable targets.

///

I confused. Does fable support more than just JS?

10:55am. > Note that webpack-dev-server serves the generated files from memory and doesn't actually write to disk. We will do that in the next step: building for production!

Ah, I see! Yesterday I wondered where it was putting bundle.js, but turns out it is doing all of that from memory.

11:10am. https://www.youtube.com/channel/UC6m70Jyr65ogDySbK7aMmzg/videos

I should watch some of the videos here later.

11:15am.

// It works for function declarations too
let getTheme(x: int): IInterface = importDefault "my-lib"
// JS: import getTheme from "my-lib"

I forgot what the default imports and exports were even though I studied this. Do you mark some function default on the JS side. Whatever.

https://dev.to/shacodes/default-vs-named-exports-19hj

This article explains it perfectly. No prob. The default imports and exports and complicated.

export default class MyClass {
  // Note the constructor accepts an object
  // with the `value` and `awesomeness` fields
  constructor({ value, awesomeness }) {
    this._value = value;
    this._awesomeness = awesomeness;
  }

  get value() {
    return this._value;
  }

  set value( newValue ) {
    this._value = newValue;
  }

  isAwesome() {
    return this._value === this._awesomeness;
  }

  static getPI() {
    return Math.PI;
  }
}

JS has getters and setters? I am so behind the curve on this.

11:35am. It is hard to stay focused on this. This brings me back. I remember the grind of trying to learn Webdev back in 2020.

interface Circle {
  kind: "circle";
  radius: number;
}

interface Square {
  kind: "square";
  sideLength: number;
}

type Shape = Circle | Square;

// usage
function describeShape(shape: Shape) {
  switch (shape.kind) {
    case "circle":
      return "circle of radius ${shape.radius}";
    case "square":
      return "square of length ${shape.sideLength}";
  }
}

I had no idea that TS could do matching like this.

11:50am.

Remember you can use the Fable REPL to easily check the generated JS for your F# code!

It has a REPL?

If the dictionary or hashset requires custom or structural equality, Fable will generate a custom type, but it will share the same properties as JS maps and sets.

I was wondering about this. I really need dictionaries and hashsets for my work. Won't get anywhere without those.

12:05pm. https://fable.io/docs/communicate/fable-from-js.html

Learning this is so boring. I'll have to internalize it as I go along.

https://fable.io/docs/miscellaneous/official-samples.html

I'll have to go over the samples, but nevermind that for now.

12:20pm. https://fable.io/docs/miscellaneous/fable-in-videos.html

https://youtu.be/XeZqMapl1Tg The Joys of OSS - Zaid Ajaj

Did COvid kill the conferences here? Anyway, let me watch this just for a bit.

https://youtu.be/XeZqMapl1Tg?t=220

Why OSS

https://youtu.be/XeZqMapl1Tg?t=773

Let me close this here. I am not interested in the video.

https://safe-stack.github.io/docs/recipes/developing-and-testing/debug-safe-app/

What I should do is focus on my next goal. I need to figure out how to debug Fable applications. That will allow me to debug the plugin.

https://safe-stack.github.io/docs/intro/

The SAFE stack is the best way to write functional-first web applications.

The SAFE stack allows you to develop web applications almost entirely in F#, without needing to compromise and shoehorn your codebase into an object-oriented framework or library, and without needing you to be an expert in CSS or HTML to create compelling, rich client-side web applications. SAFE Stack is:

I see. I should be studying this then. I'll make this my goal for the day. Debug Fable applications. If I can do that, I'll be able to go step by step through the Ionide plugin. After that, I'll be able to build my understaning of it.

12:35pm. Let me step here for breakfast."


Sunday 2023-02-05 12:41:39 by copperwater

Implement the Gate of Hell level

This is a main-branch Gehennom level, and its position directly below the Valley means that it is the "proper" entrance to Gehennom, whereas the Valley is more like the foyer. (And descending the stairs from the Valley means the "unspeakable cruelty and harm" message refers to this level and everything below, which works well.)

What I'm going for here is the feeling that you're now actually kicking in Moloch's front door, a sense which isn't really present in vanilla. Welcome to the next phase of the game.

This level features Cerberus, of course, and also is the branch level for Vlad's Tower, the stairs to which are off to one side. Other than that, pretty standard Gehennom fare: lava, demons, a couple dragons. This doesn't need as strong of a theme, I think, as the demon lord lairs need to have.


Sunday 2023-02-05 13:07:57 by Deadolus

Removing stray space from readme at inopportune location

In the multiline example with the "girl with the pearl earring" was a stray space. This led to following error:

...
    "a modern female president" "a female robot" "a female doctor" "a female firefighter"
/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 1.1build1 is an invalid version and will not be supported in a future release
  warnings.warn(
/usr/lib/python3/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning: 0.1.43ubuntu1 is an invalid version and will not be supported in a future release
  warnings.warn(
received 1 prompt(s) and will repeat them 1 times to create 1 images.
Generating 🖼  1/1: " " 512x512px negative-prompt:"Ugly, duplication, duplicates, mutilation, deformed, mutilated, mutation, twisted body, disfigured, bad anatomy, out of frame, extra fingers, mutated hands, poorly drawn hands, extra limbs, malformed limbs, missing arms, extra arms, missing legs, extra legs, mutated hands, extra hands, fused fingers, missing fingers, extra fingers, long neck, small head, closed eyes, rolling eyes, weird eyes, smudged face, blurred face, poorly drawn face, mutation, mutilation, cloned face, strange mouth, grainy, blurred, blurry, writing, calligraphy, signature, text, watermark, bad art," seed:264337829 prompt-strength:7.5 steps:15 sampler-type:k_dpmpp_2m
Loading model /home/dead/.cache/huggingface/hub/models--runwayml--stable-diffusion-v1-5/snapshots/889b629140e71758e1e0006e355c331a5744b4bf/v1-5-pruned-emaonly.ckpt onto cuda backend...
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  4.20it/s]
        ⚠️  Filtering NSFW image. nsfw score: 0.014
    Image Generated. Timings: conditioning:0.24s sampling:1.19s decoding:0.17s safety-filter:4.42s total:6.85s
   Image was unsafe, retrying with new seed...
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  4.24it/s]
    Image Generated. Timings: conditioning:0.02s sampling:1.18s decoding:0.13s safety-filter:1.05s total:2.80s
    [generated] saved to: ./outputs/generated/000000_364337830_kdpmpp2m15_PS7.5_img2img-0.6___[generated].jpg
--mask-prompt: command not found

As the command line was interpreted as two separate commands. I remove the stray space in this pull-request, to spare others the headache of finding the whitespace.


Sunday 2023-02-05 13:27:29 by kondors1995

raphael_defconfig: Revert FBEv2 defconfig changes

To maiteiners who still use FBEv1 Fuck you in particular

https://www.youtube.com/watch?v=Ok3xVYz8Ibs


Sunday 2023-02-05 15:20:18 by Lucía Andrea Illanes Albornoz

PuTTie: initial implementation of persist keys & launch at startup Pageant options. PuTTie: clear & load options at WfsSetBackend() time. PuTTie: convert winfrip_rtl_shortcut.{cxx,hpp} to C because fuck you C++ and fuck you MinGW (and fuck you too CMake.) PuTTie: correctly {clear,load,save} options & initialise options filename string in file-based storage backend.


Sunday 2023-02-05 16:01:13 by csssbot

New review for CPSC 310 by Andy Liang (#378)

The course consists of a full stack project (no DB) where the hardest part of the project is actually more algorithm related ish (building a query engine) than it is software construction in my opinion. The project itself ended up being very useless (especially if you have done one decent full stack personal project or have coop experience) since there is no code quality enforcement. This means you are free to write garbage code, as long as it works. I would advice to start early on the project though!

The conceptual portion taught in lecture is useful. However the project, nor any other part of the course, really forces you to try the design patterns that you have learned. :)

Difficulty: 3/5 Quality: 2/5 Andy Liang, Feb 05 2023, course taken during 2022W1

View YAML for new review
  - author: Andy Liang
    authorLink: 
    date: 2023-02-05
    review: |
The course consists of a full stack project (no DB) where the hardest
part of the project is actually more algorithm related ish (building a
query engine) than it is software construction in my opinion. The
project itself ended up being very useless (especially if you have done
one decent full stack personal project or have coop experience) since
there is no code quality enforcement. This means you are free to write
garbage code, as long as it works. I would advice to start early on the
project though!

The conceptual portion taught in lecture is useful. However the project, nor any other part of the course, really forces you to try the design patterns that you have learned. :) difficulty: 3 quality: 2 sessionTaken: 2022W1

This is an auto-generated PR made using: https://github.com/ubccsss/course-review-worker --- ## [cmss13-devs/cmss13](https://github.com/cmss13-devs/cmss13)@[5f78464e25...](https://github.com/cmss13-devs/cmss13/commit/5f78464e255b89ada7ca58f5114561be7b32f055) #### Sunday 2023-02-05 16:55:32 by NewyearnewmeUwu Removes skull balaclava and skull facepaint from loadout, places them hidden on the Almayer. (#2526) # About the pull request This removes the skull balaclavas and the facepaints from the loadout menu and instead places them in 2 places hidden around the Almayer. The reason I have done this is that they are almost exclusively used by people who who are referencing a character- usually Ghost from MW2 (either version) or the characters from COD Ghosts. See below for more details. # Explain why it's good for the game This is an OOC meme item that doesn't fit the tone of CM, particularly because we _already_ have an item with a skull on it in case you want to use it: Armor! They wrote things on armor in the movie, including a skull! ![image](https://user-images.githubusercontent.com/70115628/215395714-4aa1c9a2-7621-4f82-8e4b-6d7ed4905f89.png) Instead, we have these types of people, running a skull 'clava in every round even as command or medical characters. This is a modern 'operator' look, not a Space 'Nam-esque look and not an Aliens look. If you want something that'd remind you of Space 'nam, just look at the classic 'born to kill' helmet. Now, look at these CALL OF DUTY CHARACTERS THAT THIS ITEM REFERENCES! ![image](https://user-images.githubusercontent.com/70115628/215396029-290063ae-cd96-4929-b6f0-ae2f1c517887.png) ![image](https://user-images.githubusercontent.com/70115628/215396040-0eb9e31f-71ed-408a-8248-152916427bdd.png) ![image](https://user-images.githubusercontent.com/70115628/215396561-f4493f24-2405-4b8d-8034-02a96ea6919f.png) This is goofy as hell and kind of an outlier among the customization options since it is _very clearly_ a reference to COD. Look at its description: "The face of your nightmares. Heed the call of duty as the ghost in the night with this metal 'clava. Additionally protects against the cold. Now in black!" You'd get laughed off a real marine base for wearing this, let alone wearing one on an op. We don't need more people running this every round, and this gives them something to fight over between eachother- if _you_ want to larp as Simon 'Ghost' Riley from hit video game COD MW2 (either version) then you'll have to hunt it down. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog 🆑 del: Removed skull balaclavas and skull facepaint from the loadout options maptweak: adds a single skull facepaint and balaclava, each hidden in their own locations on the Almayer. /🆑 --- ## [qBaumi/Lemon-Bot](https://github.com/qBaumi/Lemon-Bot)@[473e380a47...](https://github.com/qBaumi/Lemon-Bot/commit/473e380a470f2313684c6ac9738601f504c92b78) #### Sunday 2023-02-05 16:56:41 by qBaumi content creator lvl 8, fuck you lec for schedule change --- ## [mrakgr/The-Spiral-Language](https://github.com/mrakgr/The-Spiral-Language)@[22fa0d69cc...](https://github.com/mrakgr/The-Spiral-Language/commit/22fa0d69cc8f0e360a1169c159aff9ec58a83b31) #### Sunday 2023-02-05 17:32:53 by Marko Grdinić "1:35pm. Done with chores, next is breakfast. I am thinking. Sure I'll go through Ionide and contribute to it, but if I really want to learn webdev, I should make my own online service. Something involving AI, that means Stable Diffusion, and voice synthesis when it comes out. Greed is good, and all that. 3pm. Let me resume. I am just wasting my time now. Yeah, my mood is low. I have to face strain of future unknown rejections, and I have to put in the work training myself up to do what I am not interested in purely for the sake of money. This world sucks. But in truth, it is my will that is low. I worry about the money, worry about the Singularity, worry about everything. I have to struggle with my own lethargy. https://safe-stack.github.io/docs/overview/ This is what I should be studying. Though Iodine is the goal, I am skeptical of doing unpaid work (as I should be.) Rather, I should find my own reasons for doing it irrespective of impressing other people. Why not make some web apps on the cloud and such? Web apps, Youtube instructional videos. Imagine if I actually knew all this web and database crap. I could apply to such jobs, which are high paying and not worry about the inexperience. Think about it like this - I could put in a few month to get up to the intermediate level, and after a year, I'll be fit for senior level jobs in this area. https://ai-jobs.net/?cat=2®=7&key=&exp= Maybe I should apply to some of these jobs? https://ai-jobs.net/job/39974-aiml-sw-innovation-engineer/ Let me try this. Look at how low the salaries are here compared to webdev jobs. That makes getting rejected at this that much more painful. Remember that story about the Cobol programmer making 50$/hour that I posted a few entries ago? I do not want to be that guy. And I am sure going to become one unless I get away from what I've been wanting to do. https://ai-jobs.net/job/40162-software-data-engineer-full-remote-working/ Let me try applying to this. https://ai-jobs.net/job/40118-data-engineer-obrio/ Cyrilic again... https://ai-jobs.net/job/37616-junior-data-engineer/ There are junior roles in this field. https://ai-jobs.net/job/39978-machine-learning-engineer/ 3:35pm. https://ai-jobs.net/job/39370-machine-learning-engineer/ 3:35pm. Ok, that is Sword, LastMinute and CodeSignal. https://ai-jobs.net/job/39370-machine-learning-engineer/ Take a look at this for example. /// Degree in Computer Science or similar. Solid understanding of software development best practices. Extensive experience in Python (as well as machine learning / deep learning related libraries). Experience writing production-grade code and maintaining production-grade web services. Experience with REST API design in Python (e.g. Flask, FastAPI, Celery). Experience with machine learning model development and deployment. Experience with a Cloud Platform (e.g. Azure, AWS, GCP). Solid understanding of supervised and unsupervised machine learning algorithms. Experience with containerization technology (Docker/Kubernetes). Detailed understanding of MLOps project life cycle, as well as different solutions for each stage. Experience with Machine learning platforms and frameworks such as MLflow, Kubeflow, TFX, Seldon, etc. Great communication, teamwork, problem-solving, and organizational skills. /// It is basiaclly just webdev. 3:40pm. Forget this shit. 4 jobs applied here is enough. I am literally wasting my time even considering these jobs. Let me focus on web development from here on out. Compilers? What the hell am I going to use those skills for? I should follow up on the steps of learning Hopac and Rx, and expand into full blown web dev. Web dev is like being an artist in the sense that you can easily demonstrate the projects you are making. If I was a good artist and just wanted to show my skills, I'd just link to my art station profile. 3:45pm. This is what I am missing. A profile. This is what I should be getting in 2023. I can only hold ML in contempt. I pursuing the Singularity here, but what's the point if the game is all about how big your wallet is? https://ai-jobs.net/job/39974-aiml-sw-innovation-engineer/ This kind of job would be of interest to me, but look at how poor the salary is. Not only that, but I'll also get a reject. Pft. I spit on them. 3:50pm. Get away from the low level. Get away from the hardware. Before 2020, I didn't like the thought of webdev, but I do like the concurrent programming aspects of the job now. I feel like I'll be able to show my true skills with it. I might have applied to some Rust jobs, but I certainly don't think that messing with manual memory management is anything other than stupidity. So let me just do it. I've written enough Heaven's Key. I've given enough of myself to the Pursuit. I cannot take it anymore. I want it to give a little back to me. 3:50pm. Those Youtubers are telling me - make videos that are going to be popular if you want the money. If I want to make money with programming, I should go where the money is there. It is not in deep expertise in some particular niche. I've never had to struggle so much for it. I just have to embrace the web. 3:55pm. So let me go for it. https://safe-stack.github.io/docs/quickstart/ I'll study the SAFE stack through and through. I'll also study Python and JS. Just by making those Youtube vids already shows how I am changing. ``` npm ERR! notsup Required: {"node":"~16 || ~18","npm":"~8"} npm ERR! notsup Actual: {"npm":"9.2.0"} ``` ``` "engines": { "node": "~16 || ~18", "npm": "~8" }, ``` In packages.json, let me try setting it to 9 here. 4:05pm. https://github.com/CompositionalIT/SAFE-Dojo This is a 90 minute tutorial with challenges to learn this stuff. 4:20pm. Let me clone this thing. It has been a long time since I've been so introspective. Next week's potential interviews aside, Branimir might give me an assignment. There is actually a chance of me humiliating myself and not being able to deliver on schedule due to lack of webdev knowledge. I'll die inside if that turns out to be the case. I need to make sure that does not happen. 4:25pm. Just what can I do? Forget the interviews. The money will come when I have the skills. I can't help it that I picked the wrong path. Let me do it. Let me just start this thing. Clone it! 4:35pm. > Search files (Ctrl+Shift+F or Edit --> Find in Files) and search through for "Task 1" to start completing the Dojo. ```fs let dojoApi = { GetDistance = getDistanceFromLondon (* Task 1.1 CRIME: Bind the getCrimeReport function to the GetCrimes method to return crime data. Use the above GetDistance field as an example. *) GetCrimes = fun postcode -> async { return Array.empty } (* Task 4.2 WEATHER: Hook up the weather endpoint to the getWeather function. *) } ``` I need to remember what is like to be a beginner. Forget what you are now, and remember what you were. Imagine saying: I only have to be able to things like this and then I'll be able to make 100k/year? Imagine if I could go as a ghost to the me of 2002. Would I have had him fuck around with making a language, or would I have told him to study Lisp, Ocaml and webdev? I have told him to go for webdev and quit the damn school. This stuff is not that easy if you don't know everything that you need to know, but it isn't so hard that I couldn't have gotten up to speed after a year or two, even with my skills back then. ```fs let getCrimeReport postcode = async { if not (Validation.isValidPostcode postcode) then failwith "Invalid postcode" let! location = getLocation postcode let! reports = getCrimesNearPosition location.LatLong let crimes = reports |> Array.countBy (fun r -> r.Category) |> Array.sortByDescending snd |> Array.map (fun (k, c) -> { Crime = k; Incidents = c }) return crimes } ``` I just had to do a Ctrl + F to find it. 4:45pm. This is in fact a real, app. It does look like it is fetching something from the Internet. I need to go into the mindset. ```fs | PostcodeChanged p -> { model with Postcode = p (* Task 2.2 Validation. Use the Validation.isValidPostcode function to implement client-side form validation. Note that the validation is the same shared code that runs on the server! *) ValidationError = None }, Cmd.none ``` Branimir asked me about validation, and I was thinking yesterday how it would be possible to compile the same function for both the client and server side. Take a look at this note here. ```fs let isValidPostcode postcode = Regex.IsMatch( postcode, @"([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))\s?[0-9][A-Za-z]{2})" ) ``` Hmmm, are Regexes something I should learn? Well, let me just plug it. ```fs ValidationError = if Validation.isValidPostcode p then Some p else None ``` Is this right or should it be the other way around? 5pm. Oh, it has 3 namespaces: Shared, Server and Client. At some point, I am going to have to figure out how to mix .NET and JS code together. There should no doubt be a way to do that. I've been suspicious of my decision to use ZeroMQ for the language server for a long time, and I am going to get an answer for that by the end of this. 5:10pm. I am just in thought right now. I think code is quite beautiful. It does seem like the logical next step in my understanding of reactive programming. It does have reactive extensions and Fparsec amongst its dependencies. 5:20pm. ```fs [] module Weather = [] let Sample = """{"latitude":51.52,"longitude":-0.08000016,"generationtime_ms":0.27298927307128906,"utc_offset_seconds":0,"timezone":"GMT","timezone_abbreviation":"GMT","elevation":25.0,"current_weather":{"temperature":23.8,"windspeed":13.8,"winddirection":277.0,"weathercode":3.0,"time":"2022-08-19T14:00"}}""" type OpenMeteoCurrentWeather = JsonProvider let getWeatherForPosition location = async { try // Use web client because the type provider throws a JSON parsing exception when using its AsyncLoad method use wc = new Net.WebClient() ``` It says, `WebClient` is deprecated. I wonder if I can change this so it uses the newer thing? 5:20pm. This code is very beautiful. Definitely. ```fs type OpenMeteoCurrentWeather = JsonProvider ``` In the type provider, I wonder if I can get it to parse unions somehow? > SampleIsList: If true, sample should be a list of individual samples for the inference. Hmmmm...maybe this could be it. 5:35pm. I am looking at the Client module code and this stuff is very powerful. I can indeed make anything with this! It seems it is compiling to React internally. 5:45pm. I am not really doing the tasks, I can do those easily once I put my mind to it. Rather, I am cultivating my will. What I've disliked about the web is its loftiness. It forces me to use big libraries and frameworks I barely understand to get anything done. So I've been attracted to the fundamentals instead. But it is not like I can't do this kind of programming and patiently learn as I go along. Just what is the point of avoiding this if I am just going to be trampled? Yes, my goal might have been to poker bot, but the purpose of that was not just make money, but cultivate insight about intelligence. If I have to make rule based agents, I won't be able to get any insight. So I can't pursue the Singularity through that. And what would be the earnings potential of fielding rules based agents? Not much. I might was well get a job programming in Assembly for all the good that exercise would do me. I might be able to do poker botting alone, but it is really a shit tier job without the right algorithms and hardware. It is the most pointless thing ever. I might have been training to become web dev in the 80s. There is no need to mess around with this. 6pm. ```fs let mapWidget (lr: LocationResponse) = widget "Map" [ PigeonMaps.map [ (* Task 3.2 MAP: Set the center of the map using map.center, supply the lat/long value as input. *) let { Latitude = lat; Longitude = long } = lr.Location.LatLong map.center (lat, long) (* Task 3.3 MAP: Update the Zoom to 15. *) map.zoom 15 map.height 500 map.markers [ (* Task 3.4 MAP: Create a marker for the map. Use the makeMarker function above. *) makeMarker (lat, long) ] ] ] ``` This is...amazing! I can change the settings here, save and it will hot reload without needing to restart the UI. Now that I've put this widget in, what I am getting is a fully interactive map inside the application. it is similar to Google maps. 6:05pm. Does this give me access to the entirety of React's ecosystem without any of the JS/TS nastiness? If so, then it would be very much be worth learning. ```fs let getWeather postcode = async { (* Task 4.1 WEATHER: Implement a function that retrieves the weather for the given postcode. Use the GeoLocation.getLocation, Weather.getWeatherForPosition and asWeatherResponse functions to create and return a WeatherResponse instead of the stub. Don't forget to use let! instead of let to "await" the Task. *) let! loc = GeoLocation.getLocation postcode let! weather = Weather.getWeatherForPosition loc.LatLong return asWeatherResponse weather } ``` These tasks are very easy. Building all this from scratch would be challenging. ``` (* Task 4.2 WEATHER: Hook up the weather endpoint to the getWeather function. *) ``` ```fs type IDojoApi = { GetDistance: string -> LocationResponse Async GetCrimes: string -> CrimeResponse array Async } ``` Should I extend this function? ```fs 4.1 In `src/Server/Api.fs` implement the `getWeather` function following the same pattern as the other endpoints. Be sure to add the likes of postcode validation. Hint: The `asWeatherResponse` function will help to simplify the process of mapping the data. ``` Whops forgot the validation. 6:20pm. > This task is left as an exercise for the reader. In addition to the Fetch button in the UI, add a Clear button, which clears the UI state and returns the UI to its initial state. 6:25pm. Let me go have lunch. I guess I am done for the day here. This has piqued my interest. It would be cool to rebuild this whole app from scratch. The hardest parts for me are ironically figuring out what all the weird startup code is doing. I am going to keep plugging at it for the duration of 2023. I spent a bit of time on this in 2020 before moving on to work on Spiral v2, but now I'll take it seriously. The only thing in life I need right now is money. The lack of money is literally going to kill me at this rate." --- ## [ktxyz/UnrealBS](https://github.com/ktxyz/UnrealBS)@[e9d8341c3d...](https://github.com/ktxyz/UnrealBS/commit/e9d8341c3d140bff6628213de11585c79e1429fd) #### Sunday 2023-02-05 18:29:25 by ktxyz Add stupid fucking Windows Fix to handle CTRL+C jesus fucking christ what a fucking joke of a OS --- ## [Vhmit/kernel_asus_msm8937](https://github.com/Vhmit/kernel_asus_msm8937)@[35ddea5082...](https://github.com/Vhmit/kernel_asus_msm8937/commit/35ddea5082c36fb85827af40271831f41836c083) #### Sunday 2023-02-05 18:29:39 by Steven Barrett ZEN: Implement zen-tune v4.12 4.9: In a surprising turn of events, while benchmarking and testing hierarchical scheduling with BFQ + writeback throttling, it turns out that raising the number of requests in queue _actually_ improves responsiveness and completely eliminates the random stalls that would normally occur without hierarchical scheduling. To make this test more intense, I used the following test: Rotational disk1: rsync -a /source/of/data /target/to/disk1 Rotational disk2: rsync -a /source/of/data /target/to/disk2 And periodically attempted to write super fast with: dd if=/dev/zero of=/target/to/disk1/block bs=4096 This wrote 10gb incredibly fast to writeback and I encountered zero stalls through this entire test of 10-15 minutes. My suspicion is that with cgroups, BFQ is more able to properly sort among multiple drives, reducing the chance of a starved process. This plus writeback throttling completely eliminate any outstanding bugs with high writeback ratios, letting the user enjoy low latency writes (application thinks they're already done), and super high throughput due to batched writes in writeback. Please note however, without the following configuration, I cannot guarantee you will not get stalls: CONFIG_BLK_CGROUP=y CONFIG_CGROUP_WRITEBACK=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y CONFIG_IOSCHED_BFQ=y CONFIG_BFQ_GROUP_IOSCHED=y CONFIG_DEFAULT_BFQ=y CONFIG_SCSI_MQ_DEFAULT=n Special thanks to h2, author of smxi and inxi, for providing evidence that a configuration specific to Debian did not cause stalls found the Liquorix kernels under heavy IO load. This specific configuration turned out to be hierarchical scheduling on CFQ (thus, BFQ as well). 4.10: During some personal testing with the Dolphin emulator, MuQSS has serious problems scaling its frequencies causing poor performance where boosting the CPU frequencies would have fixed them. Reducing the up_threshold to 45 with MuQSS appears to fix the issue, letting the introduction to "Star Wars: Rogue Leader" run at 100% speed versus about 80% on my test system. Also, lets refactor the definitions and include some indentation to help the reader discern what the scope of all the macros are. 4.11: Increase MICRO_FREQUENCY_UP_THRESHOLD from 95 to 85 Increase MIN_FREQUENCY_UP_THRESHOLD from 11 to 6 These changes should help make using CFS feel a bit more responsive when working with mostly idle workloads, browsing the web, scrolling through text, etc. Increasing the minimum frequency up threshold to 6% may be too aggressive though. Will revert this setting if it causes significant battery drain. 4.12: Make bfq the default MQ scheduler Reduce default sampling down factor from 10 to 1 With the world eventually moving to a more laptop heavy configuration, it's getting more important that we can reduce our frequencies quickly after performing work. This is normal with a ton of background processes that need to perform burst work then sleep. Since this doesn't really impact performance too much, lets not keep it part of ZEN_INTERACTIVE. Some time ago, the minimum frequency up threshold was set to 1 by default, but the zen configuration was never updated to take advantage of it. Remove custom MIN_FREQUENCY_UP_THRESHOLD for MuQSS / ZEN_INTERACTIVE configurations and make 1 the default for all choices. Change-Id: I2a31fbc97fe12ffce30457ec2e83ed25764e2daf Signed-off-by: Harsh Shandilya --- ## [tgstation/tgstation](https://github.com/tgstation/tgstation)@[a155df74a0...](https://github.com/tgstation/tgstation/commit/a155df74a09c075efe1339cd1cd24e5cc189fc12) #### Sunday 2023-02-05 19:20:11 by Rhials Abductor scientist self-retrieve failure/runtime fix (#73172) ## About The Pull Request Since the abductor outfit/implant would load before the abductor ship (and it's teleport pad) when first generating a team, a runtime would occur when trying to link the pad to the implant. Another would occur every time you attempted to retrieve yourself (as the linked pad would be null), preventing recall and completely neutering an abductor team's most important maneuver. Now, using the implant will perform the linking process again if no linked pad is found, and provides the owner with a warning if (by some great calamity) they genuinely have no pad to teleport back to. This solves the issue of the implant sometimes not linking to a pad properly on initialize, and makes them way less prone to breaking. Apparently this has been broken for a while, presumably since the abductor ship was made into a lazyloading template. ## Why It's Good For The Game The funny silly grey men get to torture the poor hapless crew once again. ## Changelog :cl: fix: abductor scientist's retrieval implants will now properly recall the owner, and inform them upon recall failure. /:cl: --- ## [WonderfulK-JGithub/Bloom](https://github.com/WonderfulK-JGithub/Bloom)@[89b381aa59...](https://github.com/WonderfulK-JGithub/Bloom/commit/89b381aa59b8aaf692040f3538ff048f591c47ad) #### Sunday 2023-02-05 19:28:28 by angulan Finally, the time has come: the next big update is ready for you in the beta branch and can be tested immediately! New features: - Size of the premises doubled - 5 new bus access roads added to the site to avoid traffic jams - Tasks (washing, refuelling, etc.) can now be ordered at the same time, even if no staff or items are available, and will be processed automatically afterwards - Brazilian currency added - Many new features in the shift plan Shift schedule: - A desired vehicle group can now be stored per shift. The vehicles are grouped according to their size by default. However, it is also possible to create your own vehicle groups and thus group the buses according to your own wishes - Added automatic assignment for bus drivers only - Shift plan can now be deleted / reseted - When automatically assigning bus drivers, the bus drivers with the lowest workload are now assigned first - The expected passenger volume is now displayed in the shift plan - When assigning bus drivers, it is now visible how many hours they have already been assigned in the previous 7 days - 6 instead of 4 buses are now displayed per page Timetable: - Travel times can now be copied for sub-schedules - When adding stops to a line, the journey times will no longer be reset. - For public service lines, the departure time can now be changed by a few minutes in order to create better connections to other lines - In the timetable preview, the bus stops on the left are now permanently displayed, even if you scroll to the right Performance: - General performance improvements in the company premises - Performance at night improved - Regular FPS drops in large savegames, especially with many passengers, have been fixed. - After loading the game, in rare cases there was an extremely long hang, which is now fixed. - Performance in the map view significantly improved - Performance drop when opening the bus overview with a lot of buses on the map fixed Map: - For the automatically generated return trip, the same stops as for the outward trip are no longer taken as fixed, but nearby stops are also taken into account, so that unnecessary detours and street side changes are avoided on the return trip - Fixed a bug that caused buses to fly across the map in rare cases - Point of Interests are now hidden later when zooming out - In the line view, the gains or losses of a line are now displayed directly - New public service lines are now generated when expanding the map - Fixed a bug that if you clicked on a live bus and the next tour was a service tour, the end time of the service tour was wrong - Countries are now sorted in each language when a new game is played - Fixed bug with missing 0s at the beginning of postcodes Build: - When building, the required access points and blocked cells are now visually displayed. - Workshops and washing facilities can no longer be deleted while they are in use - Items are no longer automatically rotated on walls when this makes the items inaccessible - Fixed a bug when building on the edge of the premises Pathfinding: - Fixed bug where staff could endlessly fail to find a path even though a new path was built - Fixed bug that buses stopped in front of the parking space in newly built parking spaces in rare cases - Bug fixed that buses drove to petrol stations / car washes / workshops that were not accessible at all Other: - Update to Unity 2022.2 - The camera in the company area can now be zoomed out further - Pause is no longer automatically ended in the game - Increase of rewards for the task to increase the line network - Turkish and Thai fonts added - Added explanation of shortcuts when placing stickers in the paint shop - Buses can now no longer have the same number plate - Friendliness is now also shown in the staff overview - Fixed a bug that in the bus detail view the next shift was not displayed correctly - The day of the week of the next shift is now displayed in the bus detail view, if it is not the same day of the week - Fixed a bug where the technical status was not updated in the Bus Detail view after a repair --- ## [san7890/bruhstation](https://github.com/san7890/bruhstation)@[ae08395328...](https://github.com/san7890/bruhstation/commit/ae08395328672ee40c5abb7f2bd1452bb932d6d4) #### Sunday 2023-02-05 19:46:08 by san7890 Syndicate Bomb Core Payloads Can Only Be Triggered via the Bomb (#72986) ## About The Pull Request Basically, you can't extract the bomb core, slap a 10-second c4 on it/on the shell/and run off having triggered an incredibly powerful explosion. This is accomplished by having the syndicate bomb override ex_act (it will be deleted if the explosion goes off), as well as the payload itself being subtyped into something resistant to bombs and burning. In-universe, this is described as the shell being quite resistant to forms of external explosive force- but if any explosive force comes from within the bomb's shell: kabloom. The bombcore itself has been redesigned (in a rare moment of non-ineptude) by Donk Co., who has redesigned the bomb core payload from the ground up- meaning that it can only be detonated electronically by an impulse from the bomb machinery. Cutting the wrong wire and attempting to get rid of the bomb by hitting it with an axe or something will still cause it to blow up, but you know how those things can be. ## Why It's Good For The Game I feel like the point of the syndicate bomb is to be a threat for the crew to match up against. I want a clown in bomb squad gear to head out to the site and sweat trying to figure out which wire it is, until.... KA-BLHONK: red mist. Or, I want some "helpful" assistant to interrupt someone's session by going "I KNOW WHAT WIRE IT IS", and having those odds of either blowing everyone around them up or actually saving the day. Being able to detonate something that was balanced and designed to have _at least_ one minute and a half in **10 SECONDS** is just so injurious to the game. You can buy a shitload of these bombs, extract the cores, slap c4 on it and go around the station doling out some serious explosions. You can run into medbay, wrench it down, slap a c4 on it AND NO ONE CAN DO ANYTHING ABOUT IT! They can't cut wires, they can't figure it out to save the day, all they can do is run. Running from danger is fine and acceptable, but it's just completely stacked against the crew in a way that I feel needs to be rectified somehow. I like the idea of purposefully fucking with the wires on the spot so you sacrificially kill everyone, that feels quite fair to me. I just simply don't like the fact that you can waltz around the station punching huge gaps in the hull (remember, putting c4 on the bomb core itself would cause it to go kabloom) with nearly nothing as far as risk. It's way too rewarding for something very easy to accomplish (there's a reason why it's 90 seconds- it's not meant to be easy to accomplish). This doesn't affect base bombcore behavior, just the explodey ones that come standard in syndicate bombs. ## Changelog :cl: balance: After an unfortunate event occuring when some nuclear operatives took the ship to a Fireworks Store, the Syndicate have re-engineered their bomb cores to only explode when electronically triggered by the bomb shell itself. The payload inside a standard syndicate bomb can not be exploded with another explosion, you must keep it in the bomb machinery for it to actually do some explodey stuff. /:cl: --- ## [lessthnthree/tgstation](https://github.com/lessthnthree/tgstation)@[06a7e74790...](https://github.com/lessthnthree/tgstation/commit/06a7e74790b3b05b7f4fb522ff55858ef0d66418) #### Sunday 2023-02-05 20:16:46 by Unit2E Changes the hypno flash to work on unconscious people (#73025) ## About The Pull Request The hypno flash is a really fun and flavourful item that is both strong while allowing for gimmicks. However, personally, I've always been a bit confused as to what counted for hypnosis, until looking into the specifics. I also know that I'm probably not alone in this, because various people have told me over the years that sleep doesn't work, while it definitely does. This PR hopes to change this by somewhat buffing the hypno flash, by making unconsciousness work for hypnosis. ## Why It's Good For The Game Unconsciousness looks very similar to sleep, and in a lot of cases it is really just the same effect... except for hypnosis, where there is no effect on unconscious people. Personally, I don't think this is the best UX and it limits the options there are for hypnotising people, which is a shame, as I think it's very interesting. This may or may not be too strong (think using the hypno flash with the micro-laser), but I still think this is preferable to only working with sleep specifically or hypnosis, might warrant a TC up if people otherwise agree with the change. Also, just to note, unconsciousness is also still separate from crit. This does not let you hypnotise people for free because they're in crit. --- ## [Joshua-Dunne/FNF-PsychEngine](https://github.com/Joshua-Dunne/FNF-PsychEngine)@[a4fd2395c9...](https://github.com/Joshua-Dunne/FNF-PsychEngine/commit/a4fd2395c99f865b3db1f09a847b0b27e373864a) #### Sunday 2023-02-05 20:45:03 by ChudandBeans Fixed chuds fucking camera and shit i hate this and its day 1 --- ## [TheGoldenGun-2ndImpact/Confederation-Crisis](https://github.com/TheGoldenGun-2ndImpact/Confederation-Crisis)@[e5b4658068...](https://github.com/TheGoldenGun-2ndImpact/Confederation-Crisis/commit/e5b4658068ccdeda8e03d8836b5d3270bfbcfaf0) #### Sunday 2023-02-05 21:05:41 by TheGoldenGun-2ndImpact Religion files update - Cleaned out some unneeded text in the religion files - Adjusted religious opinion bonuses, for relations between Terran Political and Terran Religious, will be replaced with a character modifier that applies so long as the Pilgrimage exists as an organization - Terran Imperialism's High God is now The Empire. - The 'Political' religion group has been broken up into Liberal, Astrist, and Socialist. - Renamed Neo-Socialist to Marxist-Leninist-Pozharskist - For those craving the taste of the classic flavour without that additional hyphenation, you'll have to wait for heresies, and when I hammer out exactly what differentiates it. - Adjusted the names lists to account for the change - Moved Neo-Feudal to the non-Terran Religious Group, and reflavoured it as a mystery cult built around The Grail and ancient heroes. 'Neo-Feudalism' being instead the style of government, which can be more broadly applied. - Descriptions will be redone later - Disabled autocephaly where needed, reserving it for when we settle on which religions to use it for --- ## [pa1nki113r/Project_Brutality](https://github.com/pa1nki113r/Project_Brutality)@[6bdb867fe7...](https://github.com/pa1nki113r/Project_Brutality/commit/6bdb867fe794c437413662febd754ad802d2b451) #### Sunday 2023-02-05 21:16:27 by iamcarrotmaster Staging merge and all the shit ive been doing on the unmaker plus a bit of cleaning of the railgun effects, fire, explosion a couple other random bits too oh yeah the alt fire on the unmaker is kinda fucked but ima fix that later hopefully, just needed to get this pushed --- ## [fernandocollova/docker-lineage-cicd](https://github.com/fernandocollova/docker-lineage-cicd)@[d7799223c0...](https://github.com/fernandocollova/docker-lineage-cicd/commit/d7799223c01ecd620b2b37c09b8753fff16b1f05) #### Sunday 2023-02-05 21:31:44 by Fernando Collova Switch PID 1 to the actual running command Hi! First of all, thanks for this amazing image, I'm starting to configure it to build for my device and although I have little experience with Android I have found it to be very approachable and of excellent quality. And, while browsing the entrypoint of the image, I noticed that although if you don't need `cron`, `cron` is not executed, what _is_ executed is not replacing this original shell that does the keys and cache magic, but running inside it. So, based on [the recommendations on the Docker docs](https://docs.docker.com/engine/reference/builder/#entrypoint) I added an `exec` statement to the "real" entrypoints so they can replace the original shell can receive signals. Hope you find this helpful :) Fernando --- ## [xyz-mocha/kernel_xiaomi_sdm660](https://github.com/xyz-mocha/kernel_xiaomi_sdm660)@[038aa73737...](https://github.com/xyz-mocha/kernel_xiaomi_sdm660/commit/038aa73737980f1604974f099afd29676fbda5d2) #### Sunday 2023-02-05 21:52:17 by Christian Brauner BACKPORT: signal: add pidfd_send_signal() syscall The kill() syscall operates on process identifiers (pid). After a process has exited its pid can be reused by another process. If a caller sends a signal to a reused pid it will end up signaling the wrong process. This issue has often surfaced and there has been a push to address this problem [1]. This patch uses file descriptors (fd) from proc/ as stable handles on struct pid. Even if a pid is recycled the handle will not change. The fd can be used to send signals to the process it refers to. Thus, the new syscall pidfd_send_signal() is introduced to solve this problem. Instead of pids it operates on process fds (pidfd). /* prototype and argument /* long pidfd_send_signal(int pidfd, int sig, siginfo_t *info, unsigned int flags); /* syscall number 424 */ The syscall number was chosen to be 424 to align with Arnd's rework in his y2038 to minimize merge conflicts (cf. [25]). In addition to the pidfd and signal argument it takes an additional siginfo_t and flags argument. If the siginfo_t argument is NULL then pidfd_send_signal() is equivalent to kill(, ). If it is not NULL pidfd_send_signal() is equivalent to rt_sigqueueinfo(). The flags argument is added to allow for future extensions of this syscall. It currently needs to be passed as 0. Failing to do so will cause EINVAL. /* pidfd_send_signal() replaces multiple pid-based syscalls */ The pidfd_send_signal() syscall currently takes on the job of rt_sigqueueinfo(2) and parts of the functionality of kill(2), Namely, when a positive pid is passed to kill(2). It will however be possible to also replace tgkill(2) and rt_tgsigqueueinfo(2) if this syscall is extended. /* sending signals to threads (tid) and process groups (pgid) */ Specifically, the pidfd_send_signal() syscall does currently not operate on process groups or threads. This is left for future extensions. In order to extend the syscall to allow sending signal to threads and process groups appropriately named flags (e.g. PIDFD_TYPE_PGID, and PIDFD_TYPE_TID) should be added. This implies that the flags argument will determine what is signaled and not the file descriptor itself. Put in other words, grouping in this api is a property of the flags argument not a property of the file descriptor (cf. [13]). Clarification for this has been requested by Eric (cf. [19]). When appropriate extensions through the flags argument are added then pidfd_send_signal() can additionally replace the part of kill(2) which operates on process groups as well as the tgkill(2) and rt_tgsigqueueinfo(2) syscalls. How such an extension could be implemented has been very roughly sketched in [14], [15], and [16]. However, this should not be taken as a commitment to a particular implementation. There might be better ways to do it. Right now this is intentionally left out to keep this patchset as simple as possible (cf. [4]). /* naming */ The syscall had various names throughout iterations of this patchset: - procfd_signal() - procfd_send_signal() - taskfd_send_signal() In the last round of reviews it was pointed out that given that if the flags argument decides the scope of the signal instead of different types of fds it might make sense to either settle for "procfd_" or "pidfd_" as prefix. The community was willing to accept either (cf. [17] and [18]). Given that one developer expressed strong preference for the "pidfd_" prefix (cf. [13]) and with other developers less opinionated about the name we should settle for "pidfd_" to avoid further bikeshedding. The "_send_signal" suffix was chosen to reflect the fact that the syscall takes on the job of multiple syscalls. It is therefore intentional that the name is not reminiscent of neither kill(2) nor rt_sigqueueinfo(2). Not the fomer because it might imply that pidfd_send_signal() is a replacement for kill(2), and not the latter because it is a hassle to remember the correct spelling - especially for non-native speakers - and because it is not descriptive enough of what the syscall actually does. The name "pidfd_send_signal" makes it very clear that its job is to send signals. /* zombies */ Zombies can be signaled just as any other process. No special error will be reported since a zombie state is an unreliable state (cf. [3]). However, this can be added as an extension through the @flags argument if the need ever arises. /* cross-namespace signals */ The patch currently enforces that the signaler and signalee either are in the same pid namespace or that the signaler's pid namespace is an ancestor of the signalee's pid namespace. This is done for the sake of simplicity and because it is unclear to what values certain members of struct siginfo_t would need to be set to (cf. [5], [6]). /* compat syscalls */ It became clear that we would like to avoid adding compat syscalls (cf. [7]). The compat syscall handling is now done in kernel/signal.c itself by adding __copy_siginfo_from_user_generic() which lets us avoid compat syscalls (cf. [8]). It should be noted that the addition of __copy_siginfo_from_user_any() is caused by a bug in the original implementation of rt_sigqueueinfo(2) (cf. 12). With upcoming rework for syscall handling things might improve significantly (cf. [11]) and __copy_siginfo_from_user_any() will not gain any additional callers. /* testing */ This patch was tested on x64 and x86. /* userspace usage */ An asciinema recording for the basic functionality can be found under [9]. With this patch a process can be killed via: #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include static inline int do_pidfd_send_signal(int pidfd, int sig, siginfo_t *info, unsigned int flags) { #ifdef __NR_pidfd_send_signal return syscall(__NR_pidfd_send_signal, pidfd, sig, info, flags); #else return -ENOSYS; #endif } int main(int argc, char *argv[]) { int fd, ret, saved_errno, sig; if (argc < 3) exit(EXIT_FAILURE); fd = open(argv[1], O_DIRECTORY | O_CLOEXEC); if (fd < 0) { printf("%s - Failed to open \"%s\"\n", strerror(errno), argv[1]); exit(EXIT_FAILURE); } sig = atoi(argv[2]); printf("Sending signal %d to process %s\n", sig, argv[1]); ret = do_pidfd_send_signal(fd, sig, NULL, 0); saved_errno = errno; close(fd); errno = saved_errno; if (ret < 0) { printf("%s - Failed to send signal %d to process %s\n", strerror(errno), sig, argv[1]); exit(EXIT_FAILURE); } exit(EXIT_SUCCESS); } /* Q&A * Given that it seems the same questions get asked again by people who are * late to the party it makes sense to add a Q&A section to the commit * message so it's hopefully easier to avoid duplicate threads. * * For the sake of progress please consider these arguments settled unless * there is a new point that desperately needs to be addressed. Please make * sure to check the links to the threads in this commit message whether * this has not already been covered. */ Q-01: (Florian Weimer [20], Andrew Morton [21]) What happens when the target process has exited? A-01: Sending the signal will fail with ESRCH (cf. [22]). Q-02: (Andrew Morton [21]) Is the task_struct pinned by the fd? A-02: No. A reference to struct pid is kept. struct pid - as far as I understand - was created exactly for the reason to not require to pin struct task_struct (cf. [22]). Q-03: (Andrew Morton [21]) Does the entire procfs directory remain visible? Just one entry within it? A-03: The same thing that happens right now when you hold a file descriptor to /proc/ open (cf. [22]). Q-04: (Andrew Morton [21]) Does the pid remain reserved? A-04: No. This patchset guarantees a stable handle not that pids are not recycled (cf. [22]). Q-05: (Andrew Morton [21]) Do attempts to signal that fd return errors? A-05: See {Q,A}-01. Q-06: (Andrew Morton [22]) Is there a cleaner way of obtaining the fd? Another syscall perhaps. A-06: Userspace can already trivially retrieve file descriptors from procfs so this is something that we will need to support anyway. Hence, there's no immediate need to add another syscalls just to make pidfd_send_signal() not dependent on the presence of procfs. However, adding a syscalls to get such file descriptors is planned for a future patchset (cf. [22]). Q-07: (Andrew Morton [21] and others) This fd-for-a-process sounds like a handy thing and people may well think up other uses for it in the future, probably unrelated to signals. Are the code and the interface designed to permit such future applications? A-07: Yes (cf. [22]). Q-08: (Andrew Morton [21] and others) Now I think about it, why a new syscall? This thing is looking rather like an ioctl? A-08: This has been extensively discussed. It was agreed that a syscall is preferred for a variety or reasons. Here are just a few taken from prior threads. Syscalls are safer than ioctl()s especially when signaling to fds. Processes are a core kernel concept so a syscall seems more appropriate. The layout of the syscall with its four arguments would require the addition of a custom struct for the ioctl() thereby causing at least the same amount or even more complexity for userspace than a simple syscall. The new syscall will replace multiple other pid-based syscalls (see description above). The file-descriptors-for-processes concept introduced with this syscall will be extended with other syscalls in the future. See also [22], [23] and various other threads already linked in here. Q-09: (Florian Weimer [24]) What happens if you use the new interface with an O_PATH descriptor? A-09: pidfds opened as O_PATH fds cannot be used to send signals to a process (cf. [2]). Signaling processes through pidfds is the equivalent of writing to a file. Thus, this is not an operation that operates "purely at the file descriptor level" as required by the open(2) manpage. See also [4]. /* References */ [1]: https://lore.kernel.org/lkml/[email protected]/ [2]: https://lore.kernel.org/lkml/[email protected]/ [3]: https://lore.kernel.org/lkml/[email protected]/ [4]: https://lore.kernel.org/lkml/[email protected]/ [5]: https://lore.kernel.org/lkml/[email protected]/ [6]: https://lore.kernel.org/lkml/[email protected]/ [7]: https://lore.kernel.org/lkml/[email protected]/ [8]: https://lore.kernel.org/lkml/[email protected]/ [9]: https://asciinema.org/a/IQjuCHew6bnq1cr78yuMv16cy [11]: https://lore.kernel.org/lkml/[email protected]/ [12]: https://lore.kernel.org/lkml/[email protected]/ [13]: https://lore.kernel.org/lkml/[email protected]/ [14]: https://lore.kernel.org/lkml/[email protected]/ [15]: https://lore.kernel.org/lkml/[email protected]/ [16]: https://lore.kernel.org/lkml/[email protected]/ [17]: https://lore.kernel.org/lkml/CAGXu5jL8PciZAXvOvCeCU3wKUEB_dU-O3q0tDw4uB_ojMvDEew@mail.gmail.com/ [18]: https://lore.kernel.org/lkml/[email protected]/ [19]: https://lore.kernel.org/lkml/[email protected]/ [20]: https://lore.kernel.org/lkml/[email protected]/ [21]: https://lore.kernel.org/lkml/[email protected]/ [22]: https://lore.kernel.org/lkml/[email protected]/ [23]: https://lwn.net/Articles/773459/ [24]: https://lore.kernel.org/lkml/[email protected]/ [25]: https://lore.kernel.org/lkml/CAK8P3a0ej9NcJM8wXNPbcGUyOUZYX+VLoDFdbenW3s3114oQZw@mail.gmail.com/ Cc: "Eric W. Biederman" Cc: Jann Horn Cc: Andy Lutomirsky Cc: Andrew Morton Cc: Oleg Nesterov Cc: Al Viro Cc: Florian Weimer Signed-off-by: Christian Brauner Reviewed-by: Tycho Andersen Reviewed-by: Kees Cook Reviewed-by: David Howells Acked-by: Arnd Bergmann Acked-by: Thomas Gleixner Acked-by: Serge Hallyn Acked-by: Aleksa Sarai (cherry picked from commit 3eb39f47934f9d5a3027fe00d906a45fe3a15fad) Conflicts: arch/x86/entry/syscalls/syscall_32.tbl - trivial manual merge arch/x86/entry/syscalls/syscall_64.tbl - trivial manual merge include/linux/proc_fs.h - trivial manual merge include/linux/syscalls.h - trivial manual merge include/uapi/asm-generic/unistd.h - trivial manual merge kernel/signal.c - struct kernel_siginfo does not exist in 4.14 kernel/sys_ni.c - cond_syscall is used instead of COND_SYSCALL arch/x86/entry/syscalls/syscall_32.tbl arch/x86/entry/syscalls/syscall_64.tbl (1. manual merges because of 4.14 differences 2. change prepare_kill_siginfo() to use struct siginfo instead of kernel_siginfo 3. use copy_from_user() instead of copy_siginfo_from_user() in copy_siginfo_from_user_any() 4. replaced COND_SYSCALL with cond_syscall 5. Removed __ia32_sys_pidfd_send_signal in arch/x86/entry/syscalls/syscall_32.tbl. 6. Replaced __x64_sys_pidfd_send_signal with sys_pidfd_send_signal in arch/x86/entry/syscalls/syscall_64.tbl.) Bug: 135608568 Test: test program using syscall(__NR_pidfd_send_signal,..) to send SIGKILL Change-Id: I34da11c63ac8cafb0353d9af24c820cef519ec27 Signed-off-by: Suren Baghdasaryan Signed-off-by: electimon --- ## [Kapu1178/daedalusdock](https://github.com/Kapu1178/daedalusdock)@[ef8ecf560a...](https://github.com/Kapu1178/daedalusdock/commit/ef8ecf560ab00280ec3e9ea11bc3defcc6717f8b) #### Sunday 2023-02-05 23:33:04 by LemonInTheDark Fixes asset caching (#69852) The asset was being loaded, seeing that fully_generated is false, so it attempts to rebuild. The rebuilding clears the existing file cache, and fucks us. Life is pain. --- # [<](2023-02-04.md) 2023-02-05 [>](2023-02-06.md)