OfficeHours:ProbablePrime:2022-08-16
Audio
Description
In this Office Hours, Probable Prime talks about:
- caches
- the database
- assets
- exporting assets
- Git
Transcription
(Please note that the transcriptions will not be 100% accurate)
So welcome to office hours we're gonna go ahead and get back on track and get over to the questions after talking about dishwashers
and
Pain products if you want to hear the pre office hours chat arrive five minutes early. I talk about random stuff
So we're gonna go ahead go through questions. There are some questions in the chat
I'm gonna go ahead and check the pre question sheet because I was linking that around to certain someone and
They might have dropped some stuff on there and I didn't check it last week. So I need to go ahead and check it
Oh, there is a question here, but it is not by that person. So we have a question on the sheet from
Neils who says could the app Neos the universe be re-uploaded to the store
I've not really done couple of guys report issues
I believe they're referring to the earlier version of Neos universe that was put on the quest or by fruits
I don't know the status of that or anything about that
Suffice to say it won't probably be touched for the foreseeable future due to the ongoing
stuffies
Yay
I'm gonna go ahead and mark that question as resolved and we'll get on with the questions that exist in the chat
So it's growing up through the chat to look at questions egg roll faces. What is your favorite snacking cheese recommendations?
There's 60 seconds or less. I don't answer questions about cheese. It's kind of a meme
So we'll move on
Pyronic says have you heard of git work trees? I've just recently discovered them seems useful for working on different features block branches
Yes, I've used them extensively over the 10 12. I don't know I'm getting old a bit
Years of my career I've used them extensively
They are great when you use them. There are a lot of stuff that you don't need
There's this amazing flow called git flow and everyone's like, oh, yes use git flow
It is beautiful blah blah blah blah, and it's just really complicated
The important thing to do though is to start a branch when you think that the master branch might get dirty
And that includes when you're working with other people
So if you've got multiple people working in your project always be on a branch, right?
the master branch should be what everyone is pulling from and everyone else should be on their own branches and I don't care what they're
Named just make sure that they name something a branch should only have commits associated with one individual feature on it
Don't do I see some people do which is when they start work in an organization
They make a git branch
Which is just like their name and then they put all of their commits on there and periodically they'll do pull requests and like merge
That back in that is so messy make a branch for each feature, please
I realized I was calling it the old master branch name most git places
I've now renamed the master branch to main apologies for that one. That's still affecting me because some older repositories
I dealt with at work were
Unable to be updated and so it's just like I have no idea
But if you make a github repo these days by default the main branch will be called main rather than master
Let's move on. Oh, if you want to know what we do at Neos as well, we do do branches
I am whilst freaks was the only developer branches were uncommon, but I've been teaching freaks the way of branches
I've also been teaching freaks the way of atomic commits atomic commits our way. Basically each commit that you make to a git
Repository needs to be sort of as isolatable as possible an example of this might be
Commit one for a feature is introducing a new file like a new file to the code base
It just introduces the new file and some of the basic building blocks for that file
It doesn't use that file anywhere. It just introduces that file and then the next commit might be adding that file to other stuff
So it's actually integrated or stuff like that. It's it's depends on the exact patterns and development of the language of doing sometimes
But it's good to just make it like easy for people to see what an individual commit does
Oh and squash merge when you merge stuff on github
Moving onwards away from high technical programming stuff because I know you're here for the Neos stuff
We'll go on to the next question. Rusia says, can you describe how cache hit miss system works?
What's the primary identify? Is it based on idea hash or random value? Don't actually know. I'll go ahead and
Add that one to my list of questions. I just can't answer as parts of Neos. I just haven't looked at
And that's one of the cases I did look at the the way that we did. So we've like really extensive code that deals with
username clashes
So it's common for you know, people who are just writing a system
They're just like hey if this username equals this other username, you can't register it, right?
You have the same name like no one can register. Fruxius is their username on Neos. We go a step further than that though and
We will take a look at how Fruxius is represented in
Other alphabets so we take a look at the Russian alphabet the various Japanese and Korean alphabets
And Chinese as well just to make sure that like when we translate those names into different alphabetical systems
There aren't any clashes as well. That's actually really cool. If you want to pronounce
Like a Japanese phrase, I'm not good at Japanese
So like, you know if I want to pronounce some of those phrases
I can put it through that system and it tells me what their name is
You know, it's really cool
I was taking a look at that like I put in Japanese characters and I got out the
romanization of that which was really cool wrote some tests for that the other day as well because I was messing with it and
I had to put through like a bunch of stuff
So I went to like a name database website and chucked a bunch of names in
Okay, so next question for electronics, which is a great opportunity for me to like make a very clear point
So electronic says to add to this. How does clearing the cache not mess badly with a database?
So they're actually two folders. There's that data location and there's that cache location
They're often confused or overlapped or referred to as the same thing and it causes problems both in support and dealing with those support
It's just when people give like solutions to problems or instructions. Sometimes one will be deleted and not the other one
so the the database is a collection of
just like a big database the literal definition of the word of like everything that you've basically seen or saved in in this and
It's then trying to keep in sync with the cloud database
Today, I'm sorry. Um, and so syncing those across is very difficult
That's why sometimes you get cache conflicts or corrupt caches and stuff like that
I have only once had a corrupt cache and only once had a syncing issue and both occurred during the VR chat boom
But I don't know everyone else seems to have those difficulties all the time and I don't I do apologize for them
I want to see what we can do to improve those when we're able to
Now the cache though is just like randomly downloaded stuff
And if you delete that it's not as bad because you're not messing with the database you're messing with cache
You know how else to answer that question what I wanted to do though is say hey, please stop deleting them when you know
Encountering a problem in computing and many other places actually you have three choices
You can fix the problem
You can ignore the problem or you can remove the problem in which in computers is usually delete
So when you restart a computer, for example when everyone's like, oh you tried restarting a computer
All that does is delete the problem
It will just you know flush all the guts of the computer flush everything out of the memory
Close any applications and restart them. So it just deletes the problem
So if a problem occurs after restarting it often support desk agents will be like could you try restarting again?
And I'm like, no, like that's not gonna do anything then they'll move on to could you try reinstalling it?
Which again is just deleting the problem that flushes the guts of the computer with all the files that were involved in that particular
Application and reinstalls it I would always rather that you do ignoring the problem or fixing the problem rather than deleting the problem
Ignoring it's totally fine
Like for example, my windows lock screen has had the same photo on it for like six years
And I hate that photo because it's the first thing I see every morning, right?
I haven't had coffee yet and I see that lock screen photo
I want to change it, but I can't remember how because I
Prevented windows from doing its thing where it's like here's the photo of the day. It's from a quaint beach in Hawaii, and it's beautiful
I didn't want to see that stuff. I'm just like stop doing that
But I didn't realize that would lock it down to one photo that's been there for six years, but I'll fix it when I can
So please follow all the troubleshooting steps through in order and if Nia's team member then tells you to delete or clear your cache or
Mentor does or whatever etc. That's fantastic
Then make sure you do the previous steps first because you'll actually learn something you'll learn something when you fix programs you you learn something
I had an issue with I remember something to do like a plug-in
in OBS and I
Fixed that by actually making a fork of that plug-in releasing on my github because I'm like hey
I learned a lot doing that moving forwards. Oh, I don't mean to shut you down egg refers
It's just like we're meant to be talking about Neos and then the meme started of like yeah cheese is my thing
But I didn't talk about it. And so now it's just
So Tiki says I've been I've said I've seen many export formats for avatars
But I don't know much about them as the one that could be useful to be able to import my avatar back into other
games no
avatars that are important to Neos are
For lack of a better word garbled from an outside of Neos perspective. That isn't something that will be permanent
Maybe there'll be a way to do it in the future. But right now it is not it's actually a strange
Security feature as well. It's like an unintentional security feature, right?
You can't export the avatar to other platforms without losing rigging information
So you lose bone data, and I believe you use what lose weight painting as well
So if you export it back out, you'll just get like a static mesh, which then you'd have to rereg so that that's cool
That might change in the future. I am struggling here. Where's my water? Okay, I should be less vocal when it comes to dying now
Yeah, that may change in the future. We'll see
Interoperability is of course the big buzzword when it comes to your metaverses
I'm moving forwards to Alex from Alaska. I'm gonna upload some photos. I did share these in
Mentor Discs yesterday because it was topical and front-of-mind. I am working with
SHFR, that's
user name of SHFR, but their actual name is Hamish and
We do science together and our science resolves around whatever the hell you can think of that is not video game related
So this was my view of a Neos world yesterday, and if you can guess what I was doing
Fantastic. If you don't know what I was doing, you'll have to wait until the end of this officer as well
I'll tell you. There we go. I'll give you some time to play some games. See if you can figure it out
Zlinka and
DMX and Earthmark and
A few others you're excluded from that because you know you were there
So I'll leave that at the bottom of the scroll buffer and come back to once I've got through the rest of the question
Mystic says how is documentation regarding the recent events been going? I've seen some really useful videos from both the team and users
But other than pre-planned videos are there videos you think would be
Otherwise be worth users making
This is like two questions there, so like documentation regarding the recent events is difficult
We don't want to put out any more information that is
Like really big like those announcements because like really nothing has changed right see the announcements channel for any updates there as for the second
part of that question
Make content like I've been really happy to see
Speckin's videos where he's just like there's a there's a gap. I'll make a video about this
I've been really happy to see basement, but nerds videos where it's like hey, there's a gap here
There isn't an introduction to logic so I make that and I was really really happy to see
Engie's video where it's like here is a tutorial bracelet which many people wouldn't have a like aware of apparently Alex made
Which means you can watch all the videos inside Neos and what's great is you can watch videos from all those creators because you can
Just add playlists the system
So just make videos if you don't understand something and then do understand it make a video about it
That's how all my like earlier tutorials are made like I learned how the object grid aligner worked
So I made a video on it. I learned how the axis aligner works. I made a video on it
Fruks taught me dynamic impulses. So I made a video about it moving forwards
Dicky's talking about get the
Version control library not Canadian kit is there's lots of names and stuff that exist
there's like Neos moderators short form mods and then there's Neos mods, which are the
Modifications to the Neos that we allow which VRChat doesn't allow so they're being talked about a lot on the words
Just get sort of like ah, so I've been trying to use the term moderator a little bit more to make things clearer or like
Enunciating mods a little bit differently to make it clear, but hey, maybe it's not clear still
It is cool. If you are looking to do computer programming
You'll eventually need a version control system and get is the way to go
There are others that are used for different cases
For example, if you're using an unreal game usually you use perforce
But hey, if you're just writing code gets cool learning it and yet Canadian gets also a chill dude moving forward to an idea's a question or
An idea, I'm sorry pronunciation is not my forte. Hopefully this makes sense
So assets on your avatar stored in the asset roots of the world
Wouldn't that mean anyone who can edit the world could copy your avatars parts and reassemble them from assets in the directory
Even if it's protected avatar. Yes, and no there are protections that exist on those assets
Additionally, there is no white painting or armature data up there in the asset system. Do you remember as well that the
Simple avatar protection system that we have is simple and that's why it's named simple avatar protection. It's quite
Diligently named that way it is not watertight and there are ways to break it
But it will remind you that there are ways to break any protection system
We do want our protection system to get better and to get more
Stronger it gets drunk
The features that would enable that are combined sort of the license ID system and the hard permission system
Yeah, that's a good enough answer. If you have any other things, please do that. Yeah
Zari says
Mandatory to allow different aspects it is it's really strange how there are a lot of software programs that don't do what they need to
Do a good example of one another example being right to left support
So there are a bunch of languages more than you know, I mean there are obvious ones like I think Hebrew does it
I'm sorry if that's wrong Arabic most certainly does because that's the one that always tripped us up at mixer
That read right to left and so suddenly your entire UI needs to be mirrored and work right to left
But there are lots of like UI elements that are designed for a left to right world
If you think about that just a simple like a dialog box appears and it has the OK cancel buttons
With okay, usually on the left and cancel usually on the right. Does that make sense to right to left world? Don't know
It's very calm challenging. So yeah, there's lots of stuff people just don't do they don't think about it
When we needed to support right to left languages at mixer
We just got the localization package back which is in all the strings translated into Arabic
I think it was loaded them into mixer ran the page and then just went shit
Just like things were overflowing everywhere UI were like backwards and forwards and upside down
It didn't make any sense
and it's just like this is a big project and it was we had like two or three engineers working on it for ages and
They had to go back to design frequently and go what should things look like when this is in a right to left world
I'm trying to say as well as you mentioned the database has everything that you have since was one
We're wondering how it deals presumably looking at files that longer exists if they no longer exist
There's usually a record of where to get them from so redownload them
I do need to look into that more particularly seeing these freaks change that up a little bit and wants to change up more
There are thousands of codes files in this code base. And sometimes I'm just like, I don't know what that file does
Scrolling down people saying please don't die. That's great. Oh, we got to the we got to the pictures. Excellent
Let's see if someone got it right. We see you got it right titanium bone plates. Yes
So we've Hamish I am working on
really complicated stuff actually, so if you have a
a jaw injury or a jaw
Disease such as like bone cancer or something in the jaw
They can actually rebuild your jaw using the smaller leg bone that you have the fibula. I think that's the right bone name
I always forget because there's two the the smaller leg bone kind of isn't needed and so
You can survive without it in some cases
Of course, you're not going to be like a prime athlete or something
But like being able to chew and speak is generally better than then, you know being an athlete
so what they do is they remove that entire bone they take out that entire bone and
Then they chop the parts of it off and then they format it back onto your jaw in
segments and then they use a plate to
Align that to the jaw and screw it together such that it holds there and then eventually the bones will fuse together, etc
But the plate there is to hold it together
And currently the most common use of the plate is a standard plate
It looks like a bike chain is standard for all surgeries and they just bash around a bit like sort of a blacksmith to try
And get it to fit the shape of your jaw a new approach though is to make a custom titanium plate for your jaw
which is
molded and modeled
Customly usually in a very painstaking process and we're trying to make that process easier and Neos is allowing us to sort of explore doing
that so the pictures above are a plate creator tool I have which allows you to segment a plate onto
any model using a sphere for testing just because sphere has lots of angles and I needed to test angles and
Then you can bake that model
send that out to
the desktop application where it needs to go through processing to make it actually printable and then you send it to a metal 3d printer and
Then you print it and then you affix it to someone's jaw or at least that's the plan
that will enable better surgeries with less screws because the the regular plates have screw holes like every like
Centimeter and it's really annoying
But yeah, it's really cool. I don't see any additional questions. I will run down the rest of the comments that we've got here
Let's see. Glad to see that you thought that
Basement and NG's videos were a surprise. Mr. Carr liked them too. Sometimes mods mods have mods. Yep
They sure do. Sorry said that they
They
They might have or you know have had in the past side of job and see that people use subversion subversion also known as SVN
That's another good
Version control system. It's okay. I
Prefer like it's just winning basically, but like SVN is okay
CVS not the pharmacy but central version control system terrible. Don't use that one. There's another one called like material or something
I haven't used that one though
They all have a point with like it and stuff like that is that you can do code reviews remotely
I used to work for five months a software company where they did only in-person reviews. It was horrible
I'm not that big on personal space invading
I'm not sure anyone is these days but like obviously like other it affects more people than most I hate it
And the way that code reviews worked at that company
I worked at for five months was before you could commit the code to a branch your own branch. No idea why
Um, someone would have to come to your desk and review it side-by-side with you hated that
I'm like, can we please do code reviews in other way? I'll email the diff files to someone
I don't care like please don't come to my desk. Leave me alone. It's horrible
Anyway, moving forwards. Yeah that runtime says you got to ask that when you're interviewing. Yes
Do you remember that when your job interviewing if you need to job interviews?
I have so much insight about how to do them properly and stuff like that
I will give you some hints and here's one hint
um, you are interviewing the interviewer as much as they are
interviewing you and your questions that you ask them are as good if not better sometimes than the questions that they are asking you for
Understanding you and seeing if you're a fit at the company
So if you want to like make them sweat a little bit, which is good, right? Because you're sweating you're nervous
It's a job interview make them nervous
Ask them what the work-life balance is like ask them what their day-to-day looks like ask them about the last time
there was a
Stressful situation at work and how the company mitigated that which is very important
If your company that you're working for isn't mitigating stressful situations, then they don't deserve to employ you
Every company should take action to reduce stressful situations not increase them
So it's just a couple of questions there. They're interesting and then yeah asked about their tech stack, right? It's interesting
I wish I'd done that before I joined the workplace. I work for for five months. Anyway
I'm moving on. I don't see any other questions. So if you have any questions, do you let me know?
We have about eight minutes left kind of short office hours today
I just saw a quote channel ping from Lex which has make them nervous
I'm on it like do it right if they're nervous then you've done the right job
Another thing to look out for as well, particularly if you're in like my industry for interviews is often they'll give you a take-home assignment
And watch those take-home assignments. Sometimes they are manipulative or sometimes predatory. So do keep an eye on that
for example once when I was interviewing I was given a take-home assignment to make a redis parser redis is a
Hard to explain thing. I don't really know how to explain this
I know I would use it for I'm very familiar of how I would use it
I just don't know how to classify redis
It's like a sort of in memory database thing either a lot of software companies use for very good reasons
But I don't know the sort of like tagline they would have on it
I just don't want to use it for anyway
they wanted to me to make a redis client which could speak the the language and the protocols that redis did and
Just see how far I got and I got like my my spidey senses went off and I'm like, that's a bit weird
Maybe they need maybe they need a redis client and they're hoping that I'll write one for them
So I submitted the code assignment back to them, but I had licensed the code assignment that they gave me as GPL
So I was like I've done your license your code assignment, but I've licensed to sit as GPL. So good luck
for those unaware the GPL license for
Code basically means that a company cannot use it for profit that easily
It's what I was basically doing is like this seems fishy. So I'm gonna license it as GPL and I'm like, okay
I won and I'll actually do that now for like all coding assignments. I license them as GPL
Additionally for coding assignments or take home assignments and job interviews make sure it's not too
Aligned to the job that you were doing
I had an interview another place where the take-home assignment was basically what I'd be doing at the job and I said that's unfair
That's consulting because it's too close to the job
I was interviewing for a product manager position and they were asking me for sort of like ideas and
Insights on the product that they were building and they weren't paying me for that and I'm like that's not appropriate as a product manager
You can give me a take-home assignment about an arbitrary problem
for example a
Airplane booking system if your company is doing I don't know t-shirts and you ask me for an airplane booking system product manager take-home assignment
That's fine. But if you're a t-shirt company and you ask me for a product manager at take-home assignment about t-shirts, that's bad
I'm giving you free advice. You will pay me for that or I will not do it
And I've actually said no to a couple of jobs because of that and change the hiring policies. It's great
I say no and then the hiring manager is like but we really liked you
We'll change our hiring policies for you. And I'm like, no, sorry on principle. Like I can't wait you're asking for consultancy at that point
Okay, they're actually asked some other Neos questions. So for those who are not
In the software engineering land, I will go back to Neos questions. I apologize for that, but some people enjoyed it. So great
Sorry says that they had to print out our code and explain it at the meeting table
Yeah, don't don't print code either but most teaching best practices is good
But you should take that knowledge and crystallize it into a PowerPoint
And then you can do that a lot easier or ideally not a PowerPoint maybe like a blog article people
misunderstand that like internal documentation part of things like you should have an internal documentation that is as good as
external documentation for your software like if someone is new to the
Company, they should have a wiki or a place that they can go to where it's like I'm new help and there should be
A list of shit that they can go look at and feel less new moving was for an actual Neos question Lord
Tremieson he says well when the inventory UI be made better
So the venturing UI is part of our UI rework which is often misconstrued as bigger or smaller than it actually is
So I'm gonna go ahead and link you to the Neos public roadmap board for the UI rework
I've seen a lot of people who will link to the
one github issue we have for the
Overall UI overhaul, but that one doesn't really convey the sort of picture of the UI. So here is
Projects 2 which is our UI overall you'll see that there is items on there for doing that
We don't have any plans to currently do that as we're on a little bit of a freeze when it comes to that the next thing
That we will do on the UI is the settings page that settings page just allows us to add additional settings
You can see bullet points there in the preparing gathering info segment
Which says redesign settings all sorts of stuff there before anyone else ask as well. Yes, everything will have a dark mode option
basically anything that is
Light mode is old and needs to be that includes the inventory the contact system anything else
That's like light mode that includes inspectors. So there'll be a dark mode. There will also still be a light mode anything
It's just like there'll be the possibility to have either depending on which one you'd prefer
But it's a good measure for what needs to be changed. But yeah, the inventory UI will be changed at some point
I can't really answer when moving on to Risa's question Risa says
Do you have any suggestions on how to mitigate room and correct local asset transfer issue where local assets uploaded not transfer to the host
Or who's from?
Okay
I don't receive I will add that one to my list as well. I'm sorry. I just haven't read that part of the code
Oh, I pasted that into my notepad and it just like pasted a bunch of discord stuff including emojis. I don't need that
Specs, I'm glad to see that you did a point point
I'm presuming mean PowerPoint on Redis, which is a very fast in memory database cache. That's a great tagline for it
That is perfect. So I've used it for both of those things. I just couldn't think of the
Sentence for it moving forwards. I know there's way to upload tremors and again
I know there's a way to upload pictures very easily from PC to news
But it's way to download a picture from news to PC
Yeah, grab the picture open up your context menu and it'll say save a screenshot that'll go to
Your home folder which is like your wherever all your shit is and inside the pictures folder
There'll be a folder called me SVR. It'll be saved there if that doesn't work because like
It's a picture that's weird for some reason or you can't use that
There's a tool which is in
someone's public folder that you can shoot a picture with and then it'll act like a screenshot and you can save it there if
That doesn't work as in if that like hold it and then use the context menu doesn't work
you can hold the picture go to your file browser and hit the plus and it'll start an export window for that picture and then
You can export it. I did notice a couple of people doing this. I will bring it up
I've noticed a couple of people that will do all four of those so they'll take the picture which actually saves it twice
It's saved to the Steam screenshot location and your pictures near SVR folder
So there's two copies of the photo then they'll export it as a screenshot using the context menu item
That's three times that picture has been saved and then they'll use the file browser to also export it
Which means that photo exists four times on their computer. So don't do that. Please choose just one
Moving forwards to no user found. Is there any tools in the earth? You'd like to be more streamlined avatar creator full-body creator
Anything to do with the slicing materials? I use those all the time right now and I hate them
there's just a bunch of bugs I need to fix and
And
No, not really there's lots of stuff that we need to but like if you like
You know, it was like the top list avatar creator full-body calibrator are the top ones
Hamish likes the slicing materials and doing weird stuff with them
I spent three hours figuring out the mathematics for one
I still don't know what's going on
but I did look at it the volumetric 3d slice II thing the my brain uses such the
World browser for medical and you can go look at my brain inside Neos if you didn't know that go look at my brain
It's in Neos my actual brain look for medical in the world browser that rendering I think is a raymarch shader
I looked at the code. I don't know shade of code
I looked at that and I'm like, that's the closest thing to ray marching I've ever read. It's cool
That's all the questions we have and we are at the end of time
So mystic and global if you have a question, please type it otherwise no more questions
A global entity says will it be custom shade of support?
sort of
Sort of
We can't do unity shaders. So you're not gonna have unity shaders. Sorry about that. It also looks like for the initial in
Support of custom shaders also won't be writing raw shader code. It will be
Composing shaders using a shader node graph in a similar way to how blender does it?
Which will give you like an immense freedom to make shaders, but won't be raw shader code
And then mystic says the cures of dark mode is any information that we talked about
No, we haven't really done any designs in the area, but
It'll be dark
thumbs up
With that we're here to leave things off and get started on some other stuff
If you have any additional questions
Please go ahead and direct message me them drop them in the questions help section drop them in the sheet for next week
And always remember stay awesome. Oh and Neos has mirrors
I don't know why I have to say this but there's a rumor going around that we don't have mirrors. We have mirrors
I'll see you next time. Bye. Bye