Skip to content

Latest commit

 

History

History
740 lines (555 loc) · 39.6 KB

2021-12-12.md

File metadata and controls

740 lines (555 loc) · 39.6 KB

< 2021-12-12 >

2,463,789 events, 1,537,862 push events, 2,035,882 commit messages, 123,392,579 characters

Sunday 2021-12-12 02:20:19 by TimeSweeper

an inordinate amount of time on fucking needler

grandmastery achievement fixed real good, stun grenade achievement fixed fucking fixed disappearing gun models god damn I just gave myself a solid week of mental turmoil tossing and turning at night wondering why i'm such a f anyway also mallet haha oh yeah that. spent a very good amount of time setting up psds for recolors. nemforcer enforcer looks pretty sweet ngl


Sunday 2021-12-12 06:08:52 by Teodor Spæren

2021 Day 12

Well, this is disappointing. I got an ok time for part one, but really lost all my time to two factors on part two:

The first was that I thought we could visit every cave twice, but apparently the task was that we could only visit ONE of the caves twice. This was a mistake on my part, but not as bad as I thought it would be. The largest example caught it and I was able to debug it.

The second mistake, which cost me much more time, was that I had a fucking silly bug in my new system. I was not inheriting the boolean which marks if we have seen a path twice already and this cost me a lot of fucking time. #"#!"¤!)!?=!

It enabled one of the people at work to beat me for part two, which I never would have expected. A good lesson in that you need to keep your ego in check and to be careful of bugs in systems like this!

The day itself was rather mundane, but I guess it's better than nothing. I really think this has been the worst AOC to date, by a long shot.

Score: --------Part 1-------- --------Part 2-------- Day Time Rank Score Time Rank Score 12 00:08:41 239 0 00:28:05 1048 0


Sunday 2021-12-12 06:46:25 by Neil Ashford

Day 11 and 12 complete!

I kinda forgot to check these on the weekend. My times are horrible all round, but oh well.

Day eleven was a bit of fun. I had a small handful of off-by-one errors, but otherwise it was pretty uneventful. I managed to learn from my mistakes last time, and make a cleaner .neighbours() function. Also, the Index and IndexMut traits made for some really clear code.

Day twelve was pretty solid too. It is the first time that my code has actually taken a little while to run - almost definitely due to the cloning of the HashSet each time I visited a small room. I might have a go at optimising it later, see if I can get it to run a little faster. ...Mind you, slow here is still less than 2-3 seconds while compiling in debug mode. It's still blink-and-you'll-miss-it fast with --release.


Sunday 2021-12-12 09:27:20 by Bri

use stupid fricking hack for god's sake please stop PHP


Sunday 2021-12-12 13:08:20 by Chris Oates

day12: python

Honestly, I was stunned when my part1 worked first time.

Part 2 was harder because I'm an idiot and had a bug that kept causing recursion errors.

Reckon I'll do a refactor to combine the two parts and memoise, since part 2 took rather long


Sunday 2021-12-12 14:36:58 by 32th-System

Game Theory: UNDERTALE - Sans's SECRET Identity!

Can you imagine a world where we're all represented by a font? Huh, I wonder which one I would be? sees Arial Too straight. No! Not in that way! Just, straight, as in unexciting. sees Badaboom Too.. uh... Deadpool.... BROADWAY! Now that's the one! Now THAT'S the one! Hello Internet, welcome to GAME THEORY, where instead of putting a joke here I want to ask you a question. If your personality were represented by a font, what font would you be? Take a moment and put your font in the comments. I'm really curious to see what everyone has to say. Maybe find a couple new cool fonts to use. I'm getting bored with ol' Calibri 11. And with that out of the way, it's time to talk UNDERTALE. Now I don't think I've ever gotten this many requests to cover a game. Well, except for FNAF. And I suppose FNAF 2. OH and there was FNAF 3. Wait a minute, should I be worried about something here? Anyway, across the board on YouTube, Reddit, and Twitter, you all have wanted Undertale. And honestly, I'm glad you brought it to my attention. True loyal theorists will know that Earthbound is my favorite game of all time. So a self aware RPG in a similar style, WHOA MAN, it's like a gift from the indie gaming heavens. Undertale is a game where every character, from goat mom to grind fodder has a sympathetic design and a unique personality, motivations, goals, fears. Whether you're saving or slaughtering them, the game makes you feel something every time you enter an encounter. But to me, one character stood out amongst all the rest. SANS. A skeleton named after the font, Comic Sans, hence all the font references at the beginning of the episode. If you haven't played Undertale I'm sure that was a really weird opening. ANYWAYS, Sans is, well, there's a lot of mystery around this guy. And before we get into it, let me put up a very special spoiler warning: UNDERTALE is a game best experienced blind. So if you haven't played it, pause the video and come back after you've finished. I PROMISE YOU, I PROMISE you won't regret it. Alright, so everyone out of the pool and ready for the adult swim? Good. Because I'm feeling pretty determined to get to the bottom of Sans' mystery. So just to recap for those of you who haven't played the game and ignored the SPOILER WARNING, or just need a refresher, Sans is one of the two skeletal brothers who appears in the game. His partner is Papyrus, a loud, goofy trap lover also named after a font. But in the world of Undertale their origins are a big question mark. All you really know is what's given to us by a shopkeeper in Snowdin, who explains that Sans and Papyrus, quote, “just showed up one day and asserted themselves.” Weird, right? What's more is that, well, Papyrus is just kinda the goofy sidekick. Sans is much more complex. He likes fart jokes, but he's also incredibly powerful and deadly serious. Not only is his boss battle the hardest in the game, he's one of the only characters who has knowledge and power over space and time. He can take shortcuts around the world through ridiculous routes. Even is walking through walls. He also acknowledges that he's only one of infinite versions of himself, making self-aware commentary of the various timelines that you've played through in the game. He can even count the number of times he's killed you. He acts like an arbiter of this world, passing out judgements on the player's actions in the game, even explaining the secrets of EXP and LOVE, or EXECUTION POINTS and LEVELS OF VIOLENCE, just to clarify. In short, he just doesn't quite fit in with the rest of the world of monsters. But then, what, or who, is he? Well, the idea that he doesn't belong in underworld seems to be correct. The evidence seems to point the fact that he WAS, in fact, formerly a surface dweller. In the true pacifist ending of the game, as the group looks out onto the horizon, Papyrus asks Sans about the giant ball in the sky. Sans says, quote, “we call that the sun.” This is important because A, the usage of the word WE, and knowledge of the sun shows that Sans has a kinship or knowledge with other humans, and B, that despite he and Papyrus both being skeletons, or, supposedly, brothers, and apparently appeared in underworld at the same time, they clearly-- uuuGGHH take two CLEARLY have two very different histories. Why would Papyrus not know the name of the sun but Sans would? We get further clues to Sans' origins as we hear him say multiple times he wants to "go home" or "go back." He says as much during his dinner date scene at the Mettaton hotel. He notices that the player wants to go home and says, quote, "i know the feeling." He then continues, "maybe sometimes it's better to take what's given to you." As though he ended up in the underworld by accident. AND in a genocide run during his boss fight he says, quote, "look, i gave up trying to go back a long time ago." End quote. And before you say he means going back to the surface world, that's clearly not the full story. His very next line of dialogue is, "and getting to the surface doesn't really appeal anymore either." Key word here, is EITHER. Yes, he seems to hail from the surface and wants to go back, but based on his dialogue he no longer considers it his home. It's as though the surface world he once knew is gone, as though he's from a different time. It's pretty intriguing. So we're left with a being that appeared out of nowhere, presumably from being from the human surface, but from a different time period, who seemingly has the power to teleport. That's a lot of questions and not a lot of answers. But here's where things get REALLY interesting. Sans has a hidden workshop that takes a fair amount of searching to find. You could say it takes a lot of DETERMINATION to unlock. Anyways, obligatory determination references aside, as you start to look for this easter egg Sans gives you a key to his room and says "it's time you learn the truth." After some searching you find the workshop which contains items that leave even more questions. A photo album featuring Sans and a bunch of smiling people you don't recognize, a badge, blueprints with illegible handwriting, and a broken machine hidden behind a curtain. In the latest update, one more detail was added. A handdrawn picture of 3 smiling faces with the words “don't forget.” so what does it all mean? Well a lot of Undertale theorists have been linking these details to a feature to a character named W.D Gaster. A ghostly character who never truly appears in the game. Honestly, covering him is a theory all unto itself, and probably one best saved for another day. Even still, none of the Gaster theories I've seen have been able to explain all the details. In particular, the photo album, and the badge. And that's what kept nagging me as I researched Undertale. A badge? That one in particular really stuck out to me. Why would such an oddly specific item to be hidden in the huge easter egg of a room? Something that supposedly reveals the truth about Sans? Badges just aren't important in Undertale. Then it hit me. What if this badge isn't from Undertale? What if this badge is from a completely different game? And was, in fact, the most important badge in the history of gaming? The Franklin badge. Now, for those of you wondering what I'm talking about, the Franklin badge is a pivotal item from the Mother series. You know, the one with Earthbound. Or, maybe you don't know that one either. Uh, you know, the one with Ness from Super Smash Bros? Yeah well, Ness is from Earthbound, and Earthbound is the second part in this larger Mother trilogy. Alright? Good. Anyway, the Franklin badge is a really important part of that series. It gets its start in the very first game and carries through the whole trilogy, saving your life multiple times in the process. It's SO important that nintendo has made it a staple item in the Smash Brothers series. So I asked myself; what if the badge in Sans' drawer was THAT EXACT badge? Well first off, it made Undertale connected to my favorite game, thereby making it even COOLER, but that's still a pretty big logical leap. I needed more. Let me tell you, as I started looking, more and more pieces started to fit into place. At the end of Earthbound you're given a photo album, covering your adventures throughout the game. To me it's one of the best, most satisfying endings in gaming to look back on your journey in picture form. And what does Sans happen to have in his other drawer? A photo album with pictures of Sans with people you don't recognize. Of course you don't know them, they're not characters present in Undertale. And note the word that's used here, PEOPLE you don't recognize. Not underworld monsters. So that's 2 items oddly linked to the Mother series. But then, how do the blueprints and broken machine fit in? Well, in the final stretch of Earthbound, Ness and his 3 friends must travel to the past in order to have their final battle against the evil alien Giygas. To do that, Dr. Andonuts (remember him, by the way, he's going to be important later) with the help of the science geniuses Apple Kid and Mr. Saturn, create what's known as the Phase Distorter, a machine that allows people to travel through time and space. Except, it comes with a cost. It can't transport organic material. As a result, the young heroes must put their souls into robotic bodies to use the machine, and thus, save the world. I played this game back in 1997 and I'm not ashamed to admit that when I first saw this scene, I cried. It's DEVASTATING. Doctor Andonuts says goodbye to his son, these characters you've grown to love and care about are suddenly promising to sacrifice their lives. For all they know, there is no possibility of them being able to come back home. It's this incredibly dark departure in the final moments of what was otherwise a fun, quirky, and colorful RPG. So what does all of this have to do with Undertale? A LOT, actually. But the first thing you need to know is that Mr. Saturns are known for their, let's say, unique linguistic style. That would explain the illegible handwriting on the blueprints. And the machine? I think a broken Phase Distorter is behind that curtain. Now that may seem like a stretch, but it actually explains a lot. If Sans wound up in Undertale via Phase Distorter, it could provide a reason for why he's a skeleton. He used the machine as organic matter and suffered the consequences. Not killing him, but turning at least a part of him into a pile of bones. That could also explain why Sans has given up hope for going home. Remember the Phase Distorter is a time machine. By being in underworld, he's not only in a different place, but based on how he talks, he's also in a different time, with no hope of travelling back to the time he came from. But the crossovers between Earthbound and Undertale continue. When you speak to Apple Kid at the end of Earthbound, he's blown away by the astronomical odds of Ness overcoming Giygas, saying that he's going to continue studying the trait called courage, in order to harness its power. Seems awfully similar to the same experiments happening in Undertale around the trait of determination, no? Especially since so much has shown that Sans was a key player in those experiments. But I'm sure you also want physical evidence right? Well don't worry, because I have plenty. During one of the endings of Undertale, we see Undyne and Alphys hanging out on the beach on the surface world. A beach that bears a lot of similarities to the tropical resort location named Summers that you play through in Earthbound. In fact, the geographic layout of the surface bears some striking similarities to the world of Mother. When Undertale's crew of monsters are finally able to reach the surface and look out over the earth, they're met with a beautiful sunset falling across the landscape of a tall mountain, a large city, and a sandy area adjacent to water. Notice the sun's reflection to indicate water, and a lack of trees in this middle section here, hence the sand. Well, in Earthbound you have the big city of Fourside, complete with skyscrapers, which you reach via a desert that just so happens to be adjacent to some water, and to the east, the mountain in Onett where a meteorite lands on Earth. I always called it Aw-nett. But if that's not clear enough for you, Mother 1, Earthbound Zero, Earthbound Beginnings, whatever you want to call it, it's had a lot of names, had a map laying out the same geographic landscape. A tall mountain to the east of a large city, separated by a desert, with all of it up against a coast. I don't know about you, but to me it seems like there's a definite connection between the world of Eagleland (Eagleland? Again, unclear how its pronounced.) between the world of Eagleland and the surface world of Undertale. But the strongest physical connection, one that definitely unites these two franchises, comes from none other than Papyrus himself. He wears a custom-made costume known as his “battle body”. But if you look really closely at the design on the armor, you'll notice some markings on the chest. Is it just a throwaway detail? Ohoh NO, that right there is an exact match to the ones that appear on the chests of Starmen, the most iconic enemy of Earthbound. And look at the way he stands! I always thought it was awkward until i saw the two characters side by side. Papyrus’ curved arm and hand is a DIRECT match to the curved arms of the Starmen in the Mother series! In short, we have some incredibly strong proof that the Earthbound universe is somehow connected to the Undertale world, which brings us back to our initial question, WHO IS SANS? Well, what if we took it one final step and said that Sans happened to be Ness from Earthbound? Sent through the Phase Distorter during a test of courage, carrying the Franklin badge and his photo album and his trusty backpack. Not only do all the items in the workshop suddenly fit, but so does Sans’ behavior. Remember, Sans can seemingly teleport. And Ness just happens to have the PSI ability to teleport. Now look the way Sans always stands, hands in his pockets, directly facing the camera. It's a very similar stance to how Ness is depicted standing in most marketing for the game. It even explains why Sans bleeds when you finally hit him. He is, or at least, WAS, a human. Oh and finally, Sans is only one letter removed from being an anagram of Ness. That's just a fun one. I thought it was worth mentioning. But if there was any doubt, we have to look no further than the creator's previous work. Toby Fox, the man behind Undertale, had previously worked on a Halloween hack for Earthbound. But this just wasn't a simple reskin. The Halloween hack tells the tale of Dr. Andonuts after the events of Earthbound. Remember, I pointed him out? He's the one who made the Phase Distorter. In Toby Fox’s version of the story, we see that after Giygas' defeat, the souls of the kids never return home. Instead, by going to the past to defeat Giygas, they create a new timeline that they're stuck in. As a result, Jeff never reunites with his father Dr. Andonuts. And Dr. Andonuts goes crazy with guilt, because HE’S the one responsible for creating the time machine, and extracting the souls of his son and his son's friends to send them back to what he assumes was their death. In his mind, he's killed 4 kids. And in Toby Fox's game, he's lost his mind trying to deal with that guilt. I'm telling you, this hack is DARK. that said, you see a lot of Undertale in this game. The appearance of Amalgamates, the first use of the awesome song Megalovania, the prototypes for Flowey? And the theme of having the choice to be nonviolent in an RPG, SPARING your enemies. But then why's all this matter to the theory? Well, remember, in Toby Fox's version of the story, the kids don't come back. They're stuck in the past, with no hopes of getting home. Just like Sans. And, in the hack, one character is oddly missing, with no explanation as to why. NESS. Presumably in this timeline his soul is in a different place than his 3 friends. Which brings us back to Undertale. 3 faces, with “don't forget” written on it? It's Ness, trying to remember his 3 friends. In short, Undertale is a continuation of Toby’s version of Earthbound, with Ness never being able to get home, adopting the name Sans, and accompanied by Papyrus, a former Starman, an alien force able to speak English and still equipped with his armor, and signature posture, but without any knowledge of earthly things... like the Sun. The pieces all just seem to fit. Now all we need is an appearance from Pokey/Porky and we’ve got ourselves a true sequel. But hey, that's just a theory. A GAME THEORY! THANKS FOR WATCHING!


Sunday 2021-12-12 16:27:31 by Danny

1.3.1 reasons why I hate my life. Added one more fucking lab


Sunday 2021-12-12 18:47:25 by Marko Grdinić

"11:30am. I am up. Let me chill a bit and then I will...well, I'll have breakfast. No point in starting now. In truth I wish I could have stayed in bed longer, but I just could not fall asleep. My sleep yesterday and 2 days ago was quite good. I woke up early, fell asleep and was very refreshed by the end of it, even though I had to skip the morning session as a result. Today I've missed the last part of the nap unfortunately.

https://www.reddit.com/r/ProgrammingLanguages/comments/rd1sz6/robert_harper_phase_distinctions_in_type_theory/

Let me watch just a bit of this.

11:55am. Ok, enough. Let me chill, have breakfast, do the chores and then I'll study geometry nodes.

1:10pm. Done with breakfast. Let me finish the chapter of what I am reading, and then I will do the chores. After that comes Blender.

1:20pm. One more. Then I spring into action.

1:55pm. Done with chores. It is time to rev up.

https://youtu.be/uslTaqiv_7k Blender 3.0 Beginner Geometry Nodes Tutorial

I am failing to keep to keep the upcoming interview out of mind, even though I'll most likely just get a 'no remote' reply tomorrow. Sigh. I just do know what I want. I want freedom, but the only way to get the resources for the next step is to earn them. If art was a bit more of a certain deal I'd feel better. Either way I am at the mercy of the market forces and my life is a roll of the dice. Ultimately, that is what it means to be mortal. It means to endure harsh winds and uncertainty.

My emotions can't really settle completely on the art path, so I am trying to increase my options.

It really would be great if my work on Spiral could get the recognition it deserves and paves the way to the next step.

2:05pm. Well, that is for the future. Let me watch the making plants tutorial.

2:10pm. https://youtu.be/uslTaqiv_7k?t=302

This is pretty interesting. One thing that I am sure that in the end, just like learning functional programming, I am not going to regret learning Blender. It has so many features and so many potential uses. I only want it to boost my 2d skills, but I am going to gain something far beyond that in the end. It is a remarkable piece of software.

https://youtu.be/uslTaqiv_7k?t=421

The circle means a single value.

I see.

2:30pm. https://youtu.be/uslTaqiv_7k?t=985

This is pretty cool. I could use this stuff to do things like rotating handles and such. There is some cross cutting functionality between the new geometry nodes and what I studied yesterday.

https://youtu.be/UqRVxosrnGc Blender 3.0 New Geometry Nodes Tutorial

Let me also watch this by the same guy.

I really want to know how once I set an object to be a parent of another how I can undo that operation. I want to get just a bit more familiar with the old stuff before I embrace the new.

https://youtu.be/UqRVxosrnGc?t=1046

Quite intresting.

3:15pm. Ok, enough of that.

https://youtu.be/GS452KMVWKA Parenting - Blender 2.80 Fundamentals

Let me watch this.

https://youtu.be/GS452KMVWKA?t=53

Oh, this would indeed be quite useful.

https://youtu.be/GS452KMVWKA?t=109

Would it be possible to remove the relation in a different way?

https://youtu.be/GS452KMVWKA?t=227

Hmmm, interesting.

https://youtu.be/GS452KMVWKA?t=299

I'll definitely have to look into rigging later.

https://youtu.be/GS452KMVWKA?t=359

You might be wondering, how do we unparent an object?

Finally. It is just Alt P. I should have figured that out on my own.

It seems there are a lot of interesting things in the parent menu like following a curve and such.

3:30pm. Ok...

https://www.youtube.com/watch?v=iLwXw1NY_G0 Geometry nodes in Blender 3.0 - Sofa, Table, Chair, Bed - All in One

I wasn't going to watch another nodes tutorial, but this furniture one caught my eye.

3:35pm. Let me watch it. I took just a short breather. Let me get this furniture stuff out of the way and then I will actually do some art.

https://youtu.be/iLwXw1NY_G0?t=9

Damn, just this intro sequence is impressive.

3:45pm. Nevermind, that is just a plugin ad. Though it would be interesting to know how it works, it is besides the point for now.

https://youtu.be/hkvJ_k2DreY Utility Poles with the new fields Geometry Nodes Blender Tutorial

Let me watch this.

https://www.reddit.com/r/MachineLearning/comments/rdv2xw/r_im_releasing_three_of_my_pokemon_reinforcement/

This is an interesting post. The ML sub is rought as usual on the little guys. I am not sure how much stock I'd put into the RL stuff, but this guy no doubt has experience in UI automation. I should keep this guy in mind for the future.

3:55pm. Focus me, stop reading the ML sub.

https://www.youtube.com/watch?v=hkvJ_k2DreY Utility Poles with the new fields Geometry Nodes Blender Tutorial

Let me just watch this and then I am done with the tutorials for the time being. At some point I will have to learn to play with the shaders and whatever, but for now, that does not matter.

4pm. I've quickly skimmed it. I do not have the mental energy to watch random tutorials anymore.

It is time to get things done.

Ok, first let me do the glass stuff.

4:10pm. Ah, I see. I suspected that the parent property is somewhere in object properties and I see it right there under relations.

How do I make an object transparent. Let me check the shading options.

Hmmm, I have no idea. How do I make an object transparent. I added a material to a cube, but there are no opacity anywhere. Alpha does nothing.

https://www.youtube.com/results?search_query=blender+transparent

https://youtu.be/esIKF8WvaVg Blender 2.9+ Basic Material Transparency

More tutorials I guess. Ok, I know how now. Let me look at some of the other stuff. I am curious how to make realistic glass.

https://youtu.be/TGmsteKTBS0 How To Create Realistic Glass Material In BLENDER 2.8 Cycle Render | Studio Lighting | Full Tutorial

Let me watch this.

https://youtu.be/TGmsteKTBS0?t=149

It is an interesting way of making a glass. If my scenes end up looking too rough, I should well remember to use the subdiv modifier.

https://youtu.be/TGmsteKTBS0

Here he is using a glass and glossy BSDF.

https://youtu.be/TGmsteKTBS0?t=350

This video needs him to explain what he is doing, but it is not too bad even without it.

https://youtu.be/TGmsteKTBS0?t=418

This is my first time seeing area light in use. I can guess what it does though.

https://youtu.be/TGmsteKTBS0?t=562

This is quite nice. Is this how it looks when you let Cycles run for all it can?

4:55pm. Had to take a short break. I said I am done with tutorials, but I really do feel the urge to learn shading. Geometry nodes, and just regular instancing are enough to deal with fences. I got that down. But there is so much I could do if I learned more shading stuff. I want to know more about this.

https://youtu.be/0NM4LUA6WbA Viewport Transparency in Blender

There is no helping it. I'll have to stay in tutorial mode for a while.

https://youtu.be/0NM4LUA6WbA?t=115

This one caught my eye. I need to remember it for the future.

5:05pm. https://youtu.be/4HHCKBzr25s Blender 2.93 Tutorial: How Paint Transparent Holes In Objects.

Let me take a look at this.

https://youtu.be/4HHCKBzr25s?t=334

I do not understand why moving the alpha itself does nothing. I thought it might interact with the alpha of the base color, but that is not it.

I do not like the mix shader technique because it does not cleanly interpolate between full and partial opacity. Right now I still do not understand the real way.

That glass tutorial was good, I could just immitate it. But I'd like to understand it a bit better. Geometry nodes are one thing, but this shader stuff I am having trouble grokking.

https://youtu.be/4HHCKBzr25s?t=478

Yeah, connecting the color into the fac makes sense.

5:30pm. https://youtu.be/uEvp61TJrpI How to make a TRANSPARENT DISPLAY in Blender

Let me watch some more of these and then I will look at proper shader tutorials. The CG Fast Track was so complicated that I have no idea what I was doing back then in the shader tab.

https://youtu.be/uEvp61TJrpI?t=263

Nothing is really explained in depth. This is no way to learn.

Ok, forget this. By this I mean the limbo. Let me focus on just learning shading for just a bit. If it takes me a few days it is fine. During my programming days I've wasted time in much worse ways. I am not going to become a good artist in a month or two. I am sure if I persevere for a year or two, I am going to achieve a complete transformation.

https://youtu.be/UDx8K-rbt_E How to make realistic translucent curtains in Blender (shading nodes)

I had this tab open. Let me go through it as well.

5:45pm. No forget this. Unless I want to just plug and play and I don't, I need some actual understanding.

This is the weakness of this approach. It is much like with programming. Since I am trying to replace weaknesses in my drawing ability with technical skills, I need to actually make the time to learn those skills.

5:50pm. https://www.youtube.com/results?search_query=blender+shading

There is not much here.

5:55pm. https://www.youtube.com/watch?v=moKFSMJwpmE Nodes 4 Noobs | Lvl 1 | Beginners Guide to Nodes | Blender 2.8

Took a breather. Let me start with this one.

6:15pm. https://youtu.be/moKFSMJwpmE?t=656

This lecture was very basic so far. One interesting thing to note is him saying that metallic should either be 0 or 1.

https://youtu.be/moKFSMJwpmE?t=708

I did it. I think the last ball should have 0 metalic and 0 roughness. It remains to be seen if I got it right.

6:25pm. Oh, I got things quite wrong. Picking colors is hard. It the first two balls do have some roughness on them which I hadn't anticipated.

But anyway, no way is this the same as his initial examples. Those really should have had roughness at 0.

6:30pm. https://youtu.be/2vPMMivnMZc Nodes 4 Noobs | Lvl 2 | Beginners Guide to Nodes | Blender 2.8

Time for the next part.

Lunch. I go through it when I get back.

6:50pm. Let me do the last bit for the day.

Tomorrow I have that interview schedules at 6pm. I really doubt I'll forget it. It is such a chore. Had a I gotten a 'no' reply to my question that would have saved me some stress.

Let me leave it out of mind. Forget it.

https://youtu.be/2vPMMivnMZc?t=201

The factor is a black and white version of the color.

7:10pm. https://youtu.be/2vPMMivnMZc?t=375

This is pretty nice. Maybe I did need a video of him just playing around to get me over my inertia.

7:15pm. https://youtu.be/2vPMMivnMZc?t=760

I am going to try this out. This is cool.

7:20pm. https://youtu.be/JbG-tPViCkA Nodes 4 Noobs | Lvl 3 -Mixing Nodes | Beginners Guide to Nodes | Blender 2.8

I'll leave the above for tomorrow.

I'll admit, normal maps give quite the impressive results.

7:25pm. I think I'll close here for the day. I had enough. I am going to finish this tomorrow and since the Youtube videos do not go too much into depth, I'll look through Blender's docs for what everything does.

After that I should be ready.

7:40pm. Let me just close instead of standing here in a daze. I'll try not to let interview hang over shoulders. Right now is time to have some fun. Once I am done with the shaders, hopefully that should be enough to get me started on setting up the scenery.

7:45pm. What the hell, the commit message is completely wrong. How did that happen? This will be the first time I have to undo a commit."


Sunday 2021-12-12 19:29:31 by Abdullah Tahiri

Sketcher: EditModeCoinManager/DrawSkechHandler refactoring

======================================================

Creation of EditModeCoinManager class and helpers.

In a nutshell:

  • EditModeCoinManager gets most of the content of struct EditData
  • Drawing is partly outsourced to EditModeCoinManager
  • EditModeCoinManager gets a nested Observer class to deal with parameters
  • A struct DrawingParameters is created to store all parameters used for drawing
  • EditModeCoinManager assume responsibility for determining the drawing size of the Axes
  • Preselection detection responsibility is moved to EditModeCoinManager.
  • Generation of constraint nodes and constraint drawing is moved to EditModeCoinManager.
  • Constraint generation parameters are refactored into ConstraintParameters.
  • Text rendering functions are moved to EditModeCoinManager.
  • Move HDPI resolution responsibility from VPSketch to EditModeCoinManager
  • Move responsibility to create the scenograph for edit mode to EditModeCoinManager
  • Move full updateColor responsibility to EditModeCoinManager
  • Allows for mapping N logical layers (LayerId of GeometryFacade) to M coin Layers (M<N). This is convenient as, unless the representation must be different, there is no point in creating coin layers (overhead).

Refactoring of geometry drawing:

  • Determination of the curve values to draw are outsourced to OCC (SRP and remove code duplications).
  • Refactor specific drawing of each geometry type into a single template method, based on classes of geometry.
  • Drawing of geometry and constraints made agnostic of scale factors of BSpline weights so that a uniform treatment can be provided.

Refactoring of Overlay Layer:

  • A new class EditModeInformationOverlayConverter is a full rewrite of the previous overlay routines.

ViewProviderSketch:

  • Major cleanup due to migration of functionalities to EditModeCoinManager
  • Reduce public api of ViewProviderSketch due to refactor of DrawSketchHandler
  • Major addition of documentation
  • ShortcutListener implementation using new ViewProvider Attorney
  • Gets a parameter handling nested class to handle all parameters (observer)
  • Move rubberband to smart pointer
  • Refactor selection and preselection into nested classes
  • Removal of SEL_PARAMS macro. This macro was making the code unreadable as it "captured" a local stringstream that appeared unused. Substituted by local private member functions.
  • Remove EditData
  • Improve documentation
  • Refactor Preselection struct to remove magical numbers
  • Refactor Selection mechanism to remove hacks

ViewProviderSketchDrawSketchHandlerAttorney:

  • new Attorney to limit access to ViewProviderSketch and reduce its public interface
  • In order to enforce a certain degree of encapsulation and promote a not too tight coupling, while still allowing well defined collaboration, DrawSketchHandler accesses ViewProviderSketch via this Attorney class. -DrawSketchHandler has the responsibility of drawing edit temporal curves and markers necessary to enable visual feedback to the user, as well as the UI interaction during such edits. This is its exclusive responsibility under the Single Responsibility Principle.
  • A plethora of speciliased handlers derive from DrawSketchHandler for each specialised editing (see for example all the handlers for creation of new geometry). These derived classes do * not * have direct access to the ViewProviderSketchDrawSketchHandlerAttorney. This is intentional to keep coupling under control. However, generic functionality requiring access to the Attorney can be implemented in DrawSketchHandler and used from its derived classes by virtue of the inheritance. This promotes a concentrating the coupling in a single point (and code reuse).

EditModeCoinManager:

  • Refactor of updateConstraintColor
  • Multifield - new struct to identify a single element in a multifield field per layer
  • Move geometry management to delegate class EditModeCoinGeometryManager
  • Remove refactored code that was never used in the original ViewProviderSketch.

CommandSketcherBSpline:

  • EditModeCoinManager automatically tracks parameter change and triggers the necessary redraw, rendering an explicit redraw obsolete and unnecessary.

Rebase on top of master:

  • Commits added to master to ViewProviderSketch applied to EditModeCoinManager.
  • Memory leaks - wmayer
  • Constraint Diameter Symbol - OpenBrain
  • Minor bugfix to display angle constraints - syres

Architecture Description

  • Encapsulation and collaboration - restricting friendship - reducing public interface

Summary:

  • DrawSketchHandler to ViewProviderSketch friendship regulated via attorney.
  • ShortcutListener to ViewProviderSketch friendship regulated via attorney.
  • EditModeCoinManager (new class) to ViewProviderSketch friendship regulated via attorney.
  • ViewProviderSketch public interface is heavily reduced.

In further detail: While access from ViewProviderSketch to other classes is regulated via their public interface, DrawSketchHandler, ShortcutListener and EditCoinManager (new class) access to ViewProviderSketch non-public interface via attorneys. Previously, it was an unrestricted access (friend classes). Now this interface is restricted and regulated via attorneys. This increases the encapsulation of ViewProviderSketch, reduces the coupling between classes and promotes an ordered growth. This I call the "collaboration interface".

At the same time, ViewProviderSketch substantially reduces its public interface. Access from Command draw handlers (deriving from DrawSketchHandler) is intended to be restricted to the functionality exposed by DrawSketchHandler to its derived classes. However, this is still only partly enforced to keep the refactoring within limits. A further refactoring of DrawSketchHandler and derivatives is for future discussion.

  • Complexity and delegation

Summary:

  • Complexity of coin node management is dealt with by delegation to helper classes and specialised objects.

In further detail:

ViewProviderSketch is halved in terms of code size. Higher level ViewProviderSketch functions remain

  • Automatic update of parameters - Parameter observer nested classes

Summary:

  • ViewProviderSketch and CoinManager get their own observer nested classes to monitor the parameters relevant to them and automatically update on change.

The split enables that each class deals only with parameters within their own responsibilities, effectively isolating the specifics and decoupling the implementations. It is more convenient as there is no need to leave edit mode to update parameters. It is more compact as it leverages core code.

More information: https://forum.freecadweb.org/viewtopic.php?p=553257#p553257


Sunday 2021-12-12 23:23:54 by Keith Amling

Crappy StringError

God damn you rust and your fucking nightly. We can't impl<T: Debug> From<T> for StringError and also impl Debug for StringError since it conflicts with core's impl<T> From<T> for T (which is reasonable), but we also have no way to refer to NoneError other than that since it's all nightly shit.


< 2021-12-12 >