@Aussie BIM Guru on AI, pyRevit, C# and coming back to Dynamo??? [pyRevit Pod #9]
Transcript
So yeah, um what you up to given like overall like you've been through quite a journey I would say like like Dynamo, Pirate, C#, now we're getting back to Dynamo. So like you're in this kind of you are everywhere. >> So what you up to? >> I mean I try to tinker with a lot of things. I like to know what's going on in ACE and even if I don't use a program on a day-to-day basis, at least I've tried it once.
I know roughly what I'm talking about when someone talks to me about it. Um, but I guess for people's context, currently I'm working at a company called Architectus. They're 800 plus person firm in Australia. Um, we're probably the largest headcount in in Australia as well locally. Um, and I effectively work as a computational design/revit automation lead in the business.
So generally if there's anything that's a script, a graph or an addin, my hands are on it at some point. Um, so over the years I started as in visual programming like uh Erik mentioned with Dynamo. So that's pretty much was my gateway into programming in AEC and eventually found my way to Python Dynamo eventually to pyRevit and that's sort of where I started developing extensions for the company I worked at that was Architectus about maybe four four years ago. Um eventually hit some some brick walls with things that Pyrevet at the time was struggling with. So that was between the 2025.NET um Assan to um community handover phase which was a big challenge at the time and luckily they they've got through it really well.
um Erik and you know John Mark and people like that have helped the community through that very well and they're in a very stable pattern now but I guess the the business couldn't afford um to wait um unfortunately so we did actually figure out roughly how to get pyrovate to work innet we did some tweaks on our side and I remember Brasho John Mark said this sort of works but it's a it's a big hack um because I remember there was issues with the pyrovate app loading and a few things like that and we figured out if you move this variable here and did that it sort of worked um but a lot of other things broke. So that led me to sort of just jump straight into C#. Um, and we'll talk about this later, but I used AI to teach me a lot about C, about good patterns and things like that because I really had no idea how to get started with C. Um, and luckily I I used a template, the nice point template, which is great for getting started. It lets you skip a lot of steps in Revit add-in development.
And from there really [snorts] just um eventually got to the point where I was comfortable deploying a C# toolbar um around the whole company. And that's pretty much from there become my preferred development development method. Um and we'll talk about this later too, but I have recently actually come back to Dynamo, but now with the C# developer hat on and building custom packages. So, I'm really only just getting started there, but it's been a pretty wild pretty wild ride going through all those sort of abstract layers of code. Um, and you know, using Grasshopper and Rhino inside and all sorts of other applications along the way.
So, that's pretty much Yeah. how I've got to where I am now. >> Yeah. >> Yeah. You made like a full circle.
But you mentioned that you kind of learned C with AI. Have you watched any C# courses like you know like from start like this and that or you just went straight learning with AI? >> Yeah. Um so I did um I did follow a few basic fundamentals courses. I always believe that every language is best approached the fundamentals layer um to make sure you you know how variables work for example very basic concepts where you wouldn't want to skip it.
You like if you don't know what a variable is in a language like you're in trouble. That's a very important building block >> to everything. And and the C is very different because now you have to strongly type everything. You have to tell variables what they are so that the compiler actually understands what you're going to be compiling so it can assess it in a pre-ompilation state. Um whereas in in Python you if you unless you you know you you write Python code very well, you're you're just throwing your script at the wall basically and hoping it works and testing it, breaking it.
Eventually it works. eventually all the logic patterns work and that's when your script is done. Um I know you can definitely build Python in a strongly typed way as well but C# you have to so that was a really important concept. Um so there was a few basics courses that I sort of >> bumbled my way through um and then eventually got the nice point template. Um John Pearson uh who works at Autodesk now for the Dynamo team actually led me to that template.
So thanks John. Um, and that helped me skip a lot of the complex parts like building your project structure. Um, setting up multi- version support, which is quite difficult to do uh, from the ground up. It's hard to know how you meant to do it. And then that helped me actually just build my first addin, make my first command work, um, put a button on the rev the riv Revit ribbon and then [clears throat] look back and go, "Wow, I can't believe pyRevit does that automatically.
That's a lot of a lot of interesting work that they've done." I actually went back to the pyrovate code and started to read through what it was doing behind the scenes and it [snorts] gave me a lot of appreciation for what pyrovate is and like how >> had to start that off and just have those ideas and put it together and um it's pretty amazing just the abstraction that achieved in pyRevit. >> Yeah, it's crazy. >> He still says like ah I don't consider myself a great programmer. I'm like well what do you mean like this thing is like amazing like because I also look poked a little bit at the code and everything is reused elsewhere. where you constantly have to kind of track down okay that thing is from this from this from this.
I'm like oh then you have to go back and like mentally when I tried to like explore power code in the beginning I was like no that's I'm not ready for that because there's like every dependency everything is reused it's quite efficient >> now I kind of get it I'm like okay I can jump around figure it out but before yeah it takes a while. Yeah, another really important part I was going to say that helped me with C# is learning my IDE. Um, that's one thing I never really did that well when I learned Python and pyRevit. Like I used PyCharm eventually, but I literally began my Pyrebit code in Notepad++, which is like pretty dreadful. >> Then [laughter] eventually I figured out, oh, you should use at least like Sublime or PyCharm or something that holds context for you and helps you navigate your coded project and go between classes and references.
Um, Visual Studio says you have to start this way. Like you don't have a choice. This is this is a class management program basically. Like you're going to have a class library. Everything's semantically connected.
You can hover over stuff, jump stuff, and you can't really you can't build a C# project in Notepad. Um, but like I guess that was a bad habit that I had to kick once I learned C#, which was good. Um, I used PyCharm, but not to like the strongest of my abilities. Like I didn't have stubs set up, for example, which is like a huge change if you set that up. >> Yeah.
So I didn't use stops which so everything was basically mental for me. So like when I got to C# I went back to P Python. I'm like oh like stops would have saved me a lot of mental gymnastics cuz you have to hold context in your head basically. Um so >> I also started without stops for a couple I also started without stops for a couple months but then I was like okay I'm gonna spend some hours figure it out. And it was such a such a big change.
I'm like oh I don't have to remember all of it. I can just kind of put it in and I'm like >> I know it's basic thing now especially for people because there are like tutorials everything and like >> everyone knows how to do it simple simpler now but I I'm surprised you haven't figured but haven't set it up >> like there was a lot of things where I look back and I'm like I know in my head there was like surely there's a better way but I was just under so much time pressure at work that I was like I would just do the thing that takes me the least amount of time now even though probably if I just spend a bit more time in learning a systems approach. it would have helped. So C# did actually make me a better developer. >> It taught me about the architecture of code and how it holds itself together.
What a class is like I I didn't use as many classes in Python as I should have. Um mainly because I found that using tabs to set up a class is a real >> pain. Um I like in C that you just use encapsulations and they sort of imply your tab structure. Like you don't have to get the tabs just right. You can literally just press a tab and the whole thing just fixes itself for you.
So like and that's a Visual Studio thing I guess not a >> uh you mean like identation and all of that. So everything kind of >> yeah like indentation in C#'s not really a thing. Um you just >> not really but I convert to Python right away >> but yeah I mean it's not a big issue. So when you when I went to C#, your object-oriented programming in general, it wasn't like really great. >> Um I I had a vague understanding of what I should be doing like I knew you know concepts like interfaces and some of those more abstract layers that you need to appreciate in in a well-built program, but I wasn't really being an object-oriented programmer.
And even until maybe a year or two ago, uh there were still a lot of um concepts I wasn't really doing that I am now. So for example, I did lean quite heavily on what we call static classes in in C, which is basically like a singleton of an object in principle. It's like a class that holds its own methods and call it like an object, but you don't create like an instance of that object. I'm starting now to look at like helper classes instead where you sort of create an instance of a class that can do things for you so that if you need to have more than one running at once, you can. Um they they hold, you know, better state.
They make for more readable code. So, I'm still picking up a lot of things that, you know, aren't necessarily things that I, you know, would have known a year or two ago. Some of that comes from using AI as a starting point. I probably did skip some layers of fundamentals that I probably could have picked up better if I just done some more courses. Um, but but one of the best things for me is having developers who are friends.
They can look at my code and tell me if it's awful and go, I wouldn't do it this way. Um, I love criticism. Most people can't handle criticism in my experience, but I love it. like I just if just tell me if it sucks and I'll tell me what to do better and I'll research it. >> So I've got some really good friends that help keep me grounded in that space too.
Yeah. >> Yeah. It helps you learn so much faster because I know like many people also don't like to give really good feedback because they afraid it's going to kind of touch your feelings or something and they kind of say no no it's great Kevin all great >> but instead like if people like oh you want to you want me to roast you hold on I'm gonna roast you man. But you learn so much. Sometimes it's a little bit kind of >> it gets to your ego as well.
>> But in the end of the day, that's a if you ask for the feedback, you should be ready to actually take the feedback. >> But that's like the best way to learn as well. >> Yeah. >> Cuz well, somebody with experience says like, look, I wouldn't do that. Maybe like they explain to you, but even if they don't, you're like, okay, I should at least kind of consider that little piece that maybe there is a better way.
Well, it's that idea of like it works, but like you know, it's like is there a better way of doing it? Is there a more scalable way of doing it? Like, you know, is this going to work for a 5,000 person company? Maybe not. Like, so I like to think in that term where I'm like, it works today, it works tomorrow, maybe it doesn't work in a week.
It's like you've got to figure out that context of where your code is going to be needed. Um, but I guess working at a large company as one of their only developers doing this, like it has forced me to talk to a lot more people outside my my domain than my company to make sure that I'm sanity checking my own habits and my own patterns and antiatterns and all those things that emerge over time. Um, and I think putting code out in the open on GitHub has helped me a lot as well. So I do have a lot of side projects that I keep out in the open. Luckily, my contracted work is quite flexible.
There's a bit of, you know, leniency there. So, I maintain like my own C# tooling, um my own Dynamo package now as well. I've got one in Python and and often people just jump on and say, "Hey, I noticed you did this." Not the greatest way like, "Have you thought about this instead?" And that that's been a really great way of just putting myself out there and having some criticism because no one at work looks at my C# code to that degree. Um they might, you know, look at it out of curiosity, but they're not going to be like senior developers or people working at Microsoft. Like I've had some people that work at like major, you know, fang companies look at my code before and just go, "Oh, wow.
This is like really bad compared to like having, >> you know, enterprise scale." And I'm like, "Of course, I'm I'm building for like 10 people. I'm not building for enterprise, but but tell me how you do it." And then like I get to see like how deep the rabbit hole goes and go okay like now I know if I did this again and I was working at a you know 2,000 person company I'd need to do a lot more you know abstraction and you know build abstract classes and you know um interfaces and factories and all those things that I'm sort of starting to learn now. >> Yeah. Yeah. There's the thing like because when they when people when programmers work on large companies at least with big user bases every like kind of tiny second actually adds up.
>> Yeah. like the server goes easier, less resources, cheaper cloud hosting and stuff like that. But when we work in like companies, I make tools for like 10, 20 people. Honestly, I prefer to make my code slower if it's more readable. >> Yes.
>> But again, um I have a YouTube I teach people how to code and stuff like that. So I consciously try to like even like when I ask AI for suggestion, sometimes it uses regex or something like that. I know that many in the audience going to be like, "What the hell is reg?" So I try to kick it out and make it simpler. It's going to be slower, maybe not as bad, but it's just like the way of kind of my programming, I guess, because first of all, I make code that that can be read read by others and they can learn something from it. >> Cuz I've seen super efficient code that which is unreadable.
Even people who wrote it like they come back a couple weeks later, they're like, "All right, what happened here?" Like there's like it happens as well. >> The best code is self- commenting, right? And I don't actually agree with that where they say you should just be able to read the code and that is the comment. the code is so obvious that it is its own comment. No, I can't get into that school of thought.
Like, I've seen code before that's apparently that way. And I'm like, unless I was a senior developer, like most of this would not make sense to me. But I can definitely understand like elegant code versus non-elegant code. And when it's, you know, when it's beautiful, when it's obviously very object-orientated in nature or functionally orientated using like F. Um, and I definitely see the difference and like, okay, if I was a better developer, I'd get that.
But I I always have to think in reverse. It's like I'm leaving a breadcrumb trail for other people. Like if I get hit by a bus, like who's going to learn how to use my code? They're going to have to figure it out. So I feel like we have a a social and a moral obligation as developers to make sure that we leave behind some degree of a breadcrumb trail.
Um just in case, you know, we move to another company. Like I you wouldn't want to leave them in the lurch unless you know unless you really hate your company and then it's like why are you working at them? Like you've got to love where you work, right? Um so like part of that is a big part of what I do as well. that yes, you take more time to write some code and you may not write it in the fastest way, but it's it's easier for someone to consume and understand.
And that that's a big part of how I think about it. And Dynamo was a good foundation point for that because I guess Dynamo is meant to be very easy to understand, but obviously does things in less direct ways, doesn't support looping, those sorts of really >> I was about to bring loops. Yeah. >> Yeah. Yeah.
So, so that obviously like makes your code way slower. Um, but it's easier for like someone to read that has no idea what code is because they can see, oh, this is literally going here. This is going there. You don't have to visually find the variables in code like you do with written code. So like I think it it it sort of made me appreciate what Dynamo and even Grasshopper gave me as a programmer.
It helped me like >> follow that brick trail that developers left behind and said here's how you code. I don't have time to teach you, but here's Dynamo. Have fun. Um, so like it sort of made me appreciate I have to do that with my own code as well. Uh it was great starting point and about the code there's also this thing that code will never be perfect as developers no matter how many times you're going to rewrite it every time you're going to be I wish I did this stuff differently this one and like at certain point you just start rewriting it for your own ego just to see how far you can push it but the code is not going to benefit much anymore it might benefit but it's better to just focus on something else as well >> yeah every time I go back to rewrite the same code I would start at a systems level deeper and deeper and deeper each time cuz I'm I I have learned the architecture I'm building and I'm like okay I need something more abstract behind this and now I need something behind that behind that and it will become more scalable each time but yeah you have to eventually commit to the way you did something to some degree and go well this is the extent of the scale that this thing is going to work at and if it changes well let's start again um but until then we've got to sort of just keep it going like there's that challenge of code right where it's like you've just got to keep it going um sometimes that's good enough I actually have an interesting question.
Since you made a full loop, I'm pretty sure that you saw some of your very old code, maybe some Python nodes in Dynamo or something. How was it looking at your old code after all this kind of journey? Like >> very painful. Um like some of the things I wrote are so verbose, so over the top. Um like I didn't know how to do lambda functions when I did Python.
So like there's there's so many things where a lambda would have saved me a death. um like a defined function like just the layout of my code was all over the place. I could have stored things in common libraries. I have some functions that are in every single node I wrote in Python that are not stored outside the node that I just copy and paste in a boiler plate every time. So I'm like I'd approach it very differently now.
Um if I went back to Python, I would immediately start building libraries and calling those into the nodes instead. Um that would be one really big change I make because there's a lot of repetitive code ideas. Um, C# helped me see that because you sort of get forced to build libraries in C# otherwise you're writing the same code over and over again anyway and eventually you learn that you can make DLS and pull those DLs into projects so that you can use the same library of code in multiple projects. Um, but that's a big change I would have made. Um, also like >> probably like style is a really big one for me.
>> I didn't have a good coding style. So I like variable naming um upper uppercase lowerase syntax. There was a lot of inconsistency in how I named things um blade out things uh a lot of antiatterns that I wouldn't use anymore. So bad habits that I just kept using um because I was ultimately looking at each node like its own little project and not thinking about it as a big a big picture or a big library or a big project. So I think that sort of naturally made me miss the the opportunity to look at it more like a project.
Whereas pyRevit sort of helped me look at my code as a project even though I didn't have stubs and it wasn't all contextually aware of of itself. Um I still have at least like folders and places and layouts and I was using libraries. So I did have like the li folder. I was putting things in the li folder. Um so I did start to appreciate okay I don't have to write that like every single time.
Like the >> big one for me. Um, yeah. So, and it also makes you appreciate how far you've come as well. So, you sort of get a bit of pride and go, okay, like I've obviously learned a lot of things since then and you know, I've left this behind as a an artifact that people can still learn from. Um, but I thought, should I go back and fix it?
I'm like, no, I'll just leave it there because it shows people that we're on journeys as well and we're not perfect and we learn as well. So, it's important to leave that behind to humble humble ourselves as well. >> Amazing. Now my EF tools is also a mess. I look there I'm like there are tools from like four years ago.
I looked at the code I'm like oh I need to rewrite the whole thing. I'm planning to rewrite the whole EF tools from scratch because um yeah that's a big one. So are you thinking that you're going to go ground up or you sort of doing like a rework or how's that going to look? >> Uh I've been planning this to do like for a year. It always stopped me because I was like if I'm going to start fixing it's going to I'm still going to have a lot of legacy code and stuff like that which I don't like and I better rewrite it.
But then I better do it kind of I don't want to just start like EF tools with one tool in it. So I need to actually sit down and do it and think about all the systems and actually going to definitely rework. I'm going to start first of all with like kind of VPF stuff cuz now I prepared like the brand kit. I have a system in mind how to kind of make it reusable cuz I already did the test. I think in even in EF tools there are some things that already work this way but now I just want to kind of create very blank kind of example forms without any styling then connect to my class and it does the styling for me everything so this way I can quickly make the form super quick I can later show you brand maybe even right away I just >> yeah there's a similar system in C we use it's probably maybe a bit less abstract but we have like a shared styling zaml that that can be pulled in as resource dictionary to every form and it sort of just tells everything how to how to look and how to behave.
Um, so I use that a lot too in C# and that makes a lot of sense. I found WPF is is a lot harder in Python. I found that was one thing that I struggled with. Um, there's a lot more I found, you know, formatting. Um, I found the XML is a little bit harder to write.
There wasn't the visual editor. Like I assume you still write editor in Visual Studio just to see what it looks like and then put it down into Python. >> So, >> not not for long. I'm going to get back to that, but >> yeah. Yeah.
>> Yeah. I think the biggest issue is just not enough resources and examples because when I tried to learn VPF for pirate, it was such a struggle. I just brute forced my way through because I was just stubborn. I tried things. They somehow worked.
I'm like, "Oh, copy that one. Save it. Save it. It works. I need to remember that." >> Like we that's how we eventually build.
I mean, I don't remember how to build every WPF form off the top of my head. I still go back to my own forms, copy and paste, change bits like from scratch anymore. I have no idea what those first four lines in WPF say like by the top of my head. >> It's like it's like imports. It's very weird way to import something.
>> It's like so it's perfectly natural to work that way. Yeah. >> I just remember that this is how we import some stuff. So I'm just I'm just going to leave it there, not touch it and stuff. Uh but the thing is that where was oh when I started learning eventually I got to the point where I was just watching C tutorials but I was following that in Python without really knowing how to follow it in Python.
I was just like okay I think if I'm going to just write it like that skip all this like C kind of stuff I hate it's going to work and somehow it worked. I just got lucky it worked and from there I build up but now I just going to share my screen. Can you see it? >> Yep. Yep.
Oh nice. Now it's AI is so great because now I'm going to make it more systematic because now it was a bit random things appear and disappear but what I'm planning now first of all I'm going to make this kind of document and right here you can already see there are like some boiler plate for like AI as well. So here's like how we create buttons here's how they look and so on. So my goal is kind of finish that one. I try to just force AI just give me like brand key put there like example examples and stuff how it looks.
So my idea is now first of all I'm going to make document like that. Well I already have it but I just want to refine a few things finish it and make it sort of reusable because I don't want to just tell just come right here change this thing because it will change something else without me knowing. So I just need to make it something I have an idea but we'll see. And then my idea is that based on that I want to just make kind of files for AI so it can help me kind of go along and style everything like I want. But in the end of the day, I also know that I just need pretty much resources files and then then it's going to take a lot of kind of for me here.
>> So yeah, this is one of my things that before going to EF tools, I started thinking this all strategically. Okay, if I'm start if I start extension from ground up like completely from point zero, what things I would change? I'm looking at EF tools, it can be painful like you mentioned. I'm like, yeah, I should reuse more. But then I also think maybe people should see it like in tutorials without libraries.
But I think I'm going to go somewhere in the middle. Still reusable, but to the point where it's still very readable. Not like Py Ravit is built where everything is super reusable, like the most efficient way, but not as readable. So I still like things readable. [laughter] >> That's a great branding kit and a great um great summary.
I mean, I wish wish I'd take the time to write one of those. It's amazing. >> Uh the thing is that I'm going to make it reusable. So I just want people to just go in plug their colors some stuff like that and they get copy of that and then there are two things one is like HTML for you to see but based on that one there also should be two other files. First one the this windowres resources which is actually used in VPF and the third one is just to give it to AI and MD formats.
>> So this is like something that I want to do eventually. I have some ideas how to do it. just going to kind of spin up my probably jungle server that's going to kind of kind of build it up from ground up and AI is going to help me a lot there. But you mentioned about ZAML being a pain in the ass to write. I just need to find why it's not here.
Okay, I think it's I just need to figure out which local host I put it on. I mean, what you're getting there, I guess that the hard thing for me is AML forced you to know a lot of tags that aren't like obvious to you on the surface. like I had to read the docs a lot when it came to ZAML and learn all the tags and control names and um properties of controls. So it I found it was a little bit less uh logical than C where it sort of tells you what what properties objects have and it sort of you you almost needed to know what you didn't know I found was able to begin with but that's where examples were quite quite useful. >> Mhm.
Uh just give me a second. Something just need to run it. For some reason it's not running. >> But yeah, also like this AI just makes so many things so much simpler. And I started focusing Oh, you might see it now.
>> Y >> I started focusing, okay, how can I make it simple for others without actually going and creating? And one of the things I always kind of dreamed about is creating my own freaking like ZAML builder. >> Apparently you can do that. Uh, damn it. There's no code.
Maybe there's something better. I just need to copy one of the code examples. I'm going to be quick. >> Uh, I mean, to some degree, I guess like this gives you more control than Visual Studio if you want to customize it a bit more because you're limited to the um the Visual Studios edit editor setup if you use that one. >> Yeah, it's it's pretty good one, but the thing is that most people going to use even not even 1% of Visual Studio capability.
It's such a such a powerful software. It can do pretty much there's so much things it can do. I don't even know like probably >> 90% of it I don't understand like what's going on there. >> Okay, now we're working. But the thing is that I starting building this going to eventually make it available to people and stuff.
But now I just took the best parts of kind of Visual Studio, put it here. It works. I can modify it. It actually responsive and stuff and it's amazing. And the thing is that what what Visual Studio Code doesn't support anymore is Python.
Mhm. >> And now I can actually add here Python support as well. >> But not exactly Python support, but it's it's what par developers need. We just write some example. We kind of go in, we drop some events.
Let's say click is going to be I don't know UIE button click >> and then it kind of gets you some boiler plate. >> This is what I always dreamed about in Visual Studio. I even tried to set it up but with they dropped the IronPython support. So you had to use very old versions of Visual Studio and even there it wasn't what you needed. So this one was this part never worked for pyra developers.
It was very >> if you use C# it does do a lot of this for you but you have to use C# is the obviously the catch. >> Yeah that's the thing the behind code being aware of the the front code. So um this is this is awesome. Um so so this was all spun up just by yourself or >> uh this now running on I use Django for all my projects because I understand Django I understand Python even though people might say like oh you should run like on TypeScript for React or whatever like to make it like the most optimized and stuff for me I'm like do you really because even even like documentation like I reworked is it running yeah that one that one I also went I don't care I'm going to go for jungo and it's fast it's like super fast like you don't need you cannot be faster than that. Okay, if you have like million users, >> how you lay things out behind the scenes, that's all what the speeds depended on like how you structure all the data that it's drawing on.
>> If it's >> I mean the thing is that Python can be efficient enough. If you talk about like running Facebook on that, sure it makes sense to go to something more efficient, but if you're making like dogs for like couple thousand people, nobody people can wait like tiny tiny they don't even have to wait. It's even faster. So there's the thing that people say that well Python is great at many. Python can do everything but it's not really great at everything.
But at certain point Python is good enough to certain degree. >> Some people think it's degree much lower but what I found like with like my this web development exploration and stuff that Python can handle quite a lot. That's >> you can use it quite far. >> I mean name like Cshot can't do everything well. It's it's good for like building applications and integrations, but I mean all roads lead back to C, right?
I mean at some point you have to go back down to memory management if you want really fast code, but that's sort of like where most people find themselves having to go when memory and performance matters. I mean C#'s not the golden solution to fast applications necessarily. >> So yeah. Yeah, there there are definitely like strong and weak points to every single programming language and Python just have Python just kind of in this middle spot where it's not the best but it's good enough for most thing because there are just libraries for everything you can like you can do quite a lot. One thing I'm surprised that AI uses Python like the most pop like most of the AI frameworks they build first of all on Python.
Everyone talks about how Python is inefficient and stuff like that, but still like all the CIA companies, they decided to use Python because it's easier to use or something. I still don't >> fully understand it because they're also better implementation of Python which are more efficient but they still like you wouldn't care. >> Run it through various web services that that's a really big benefit to it. Like whereas like um C, Rust, other languages, they don't seem as naturally inclined to web- based development. They seem more inclined towards hardware based development.
So um >> yeah but when we talk about >> yeah but the thing is that when we talk about AI >> they wouldn't mind probably creating their own new language just to make it efficient because it's like running so many talk it makes sense to make it super efficient it's still kind of Python is like preferred libraries for training and stuff like that >> I guess I don't know maybe because the target market not not always like fullon software developers >> a lot of the data scientists get in kind of just start with programming they need to kind of start analyzing stuff a lot of kind people like us like in different niches, they just need to do some stuff, >> do little plugin, do some little program and they don't want to spend like hours figure out how to deploy like C like software or something like >> I [snorts] mean one thing that helps a lot with Python and I do miss it is being able to be more loose with typing. Um strong typing is like makes things very legible but there is some scenarios I get into where I'm like man I wish I could just say this thing's a variable object and it doesn't have a type and you figure it out. um that I used to be able to do in Python where something could be returned as like anything I wanted it to be basically out of a method. It could be a view, it could be a sheet, it could be an element, it could be anything in you have to be pretty literal in C unless you use generic >> generic functions which have their own challenges. So like it's like that can sometimes be a bit of a hurdle that I think makes an easier language to pick up.
You don't have to think about types and objects as much as you do in like C#. So like that that would definitely be a big motivator to working in Python to me still. like it's I do miss being a bit more loose like that. >> Um and saying, you know, can you know can you interpret that figure it out for me? I don't want I don't I don't want to care about the compilation just interpret.
>> Um I do miss that at times. Um but at the same time I like being more regimented in typing now as well where I'm like okay I know it's going to work like because it has to be this type of object and it's either this or it's null. There's no other other possibility. So it is nice to also sometimes have that rigidity built into your code. Yeah.
I noticed there are like literally like two camps because there are people like me who just don't want to deal with that. I I still do it in Python here and there when I think it's necessary and I see the value. The beginning I didn't see any value in that but I understand why I kind of I appreciate that it exists but I like that I don't it's not enforced on us. But then there are also people who hate Python because it's not enforced. They're like no I want to know my types.
I want to do this. So it's just like >> some people I think they like this kind of to be in certain rules that they have to follow it. There's like >> I don't know it just different people think differently. So the language also kind of supports one more than the other. So >> some people say oh C# is so much simpler to learn than Python.
And I'm like wow that's interesting take but okay. And I heard multiple times. >> In the beginning I thought like well that person is weird. But then I was like, "Oh, there's like many of you." Like I'm like, "Oh, okay." Probably just you approach it differently, like from a little bit different angle. Not like weird people, but for me it was like, "Huh, I didn't expect that." Because in my mind, I'm like, "Oh, Python is simple." >> You can definitely pick it up and run with it a lot faster.
I think I think the big thing with strong typing is when you start to build very large classes and libraries and applications where you need like almost a contract between your classes to say you must ensure this is this type of object, otherwise I'm going to throw it and I'm not going to work. um whereas in Python you know it would throw and you're like well why did it throw we have to go back and figure out through all the classes what's going on here and what type this should be >> is it that C# it's like I can only accept this >> as a part of my interface contract if it is this so like it does sometimes help you >> ensure when you're building like libraries for people to use that like they have to give it certain types of arguments otherwise it's you know it's going to throw when you write your code whereas sometimes in Python you get those you know silent failures the worst ones of course that like you know you'll get throws where it's like I didn't give it the right type. Whoops. Whereas in C#, it's like sorry, I'm not even going to write build your code because it's not the right type. So, it can, I think, help when you're building larger scale solutions, but um but like it definitely makes it harder as a beginner >> for sure um to get started.
>> Uh definitely it's also required for the debugging because the issue with like Python code like your ID doesn't always know what kind of what are the variable types and stuff like that. So, it cannot really debug it. So for power rait we don't really run any debugging except for kind of running the tool printing stuff and like oh not what I expected let's try again >> I mean also make it so much too like we have debug right line like we still print a console to figure out what's going on sometimes it's not um like people do laugh at the whole print debugging but I think everyone in every language does print debugging every now and then just to see what's happening. >> Yeah. >> Yeah.
Nobody goes far from this hello world statement. [laughter] Yeah, that's a good one there. >> All right. I I think we went we a little bit more technical in like languages and stuff. >> Yeah.
Yeah. Um I we can probably like pivot on to like either AI or the Dynamo logic. Maybe AI. Do you want to talk about >> Yeah, we can go to the AI just in general. See >> because we kind of started talking this before, but I think I'm going to I'm going to include our earlier conversation somewhere embedded here as well.
>> But in general, what do you think about the state of AI for specifically for like AC? not Ravit, not limited to Ravit, but AC, let's say. >> Um, I mean, I think it anyone at this point that says it's not going to be a transformative gamechanging technology for our world is probably probably wrong at this point. I would say I think even if we're still not at the final iteration, we're not seeing the final enterprise solution that's going to be adopted by the masses like the internet. Um, it it's going to happen at some point, I think.
Um, even if we burn the entire planet to do it. though [laughter] I'm a little bit socially opposed to AI. I still look at a lot of things it's doing or that it probably will do. I think it's a class divider. I think there's going to be a really big ownership class that owns data centers and the means of production and then there's going to be people that are need to pay for the means of production.
I look at subscription models that we're already paying for and I'm like this could be like Autodesk but way worse for our industry. Um, you know, we could be looking at a lot of cost if we're not careful, but >> it's hard to deny that it's going to be a thing like it or not at this point. Yeah. >> Yeah. Yeah.
I see. There's like a lot of talks right now that it's already getting really really good and people don't realize it, but we are getting it for so cheap right now. Even though people say Oppo's price is so expensive and this and that, everything is still subsidized because they still want us to get hooked even more to the point where we cannot really do anything without it. That's the end goal right now because and then there's this cool term is like in uh what was it intelligence as sub um I forget exactly is it intelligence as a service, intelligence as subscription, something like that. So it's about turning intelligence into like just kind of selling it.
You want you want to do something cool like build an app like you pay us money we give you intelligence you build it. Pretty much what it happens now but this is going to be more kind of I cannot put it in the words but I think people get what I mean that in the future when you for example come to work you're going to get maybe your some kind of allowances here and there and then like okay G for this year you also get like 5,000 in tokens spent like do whatever or something like that. It's definitely coming because it's already kind of here. Some companies do it more officially and not but it's definitely going to become part of everything how we work. >> I mean I worry I guess the phenomenon you might be talking about I often describe it as putting your brain in a black box and then paying for it.
Um you know you're paying for an brain that part does worry me um to some degree. I look at the younger generations and they're already such victims of technology and social media and algorithms and mental abuse through these services. I I do hope that the the AI companies are either forced to be socially conscious and moral. Doesn't seem to be looking like that at the moment. Um or that there's open source models that are so good that they keep the the corporate models in check because if they get too brave, they raise the prices too hard, everyone's going to go back to the open approach instead.
Sort of like pirate day >> for for you know the cost of access to streaming services. Like there's a fine balance between those two environments. Um, but I guess I I do I do hope that either governments or just society forces them to at least think with the social good in mind. Um, because otherwise, yes, we could be looking at >> new generations that don't actually have any innate intelligence available to them. They have to pay for skills.
And then at that point, what is the person doing, I guess, is the question. What is their purpose? Are they there to just think and think cognitively so that an AI can turn that into results or are they just pressing buttons because that's where you can pay someone less money and that's where you look at like universal basic income and all sorts of arguments that which in my opinion will just push the glass divide completely apart where you have the trillionaires and all their family and then you've got everyone at the bottom that just presses buttons to get like some food for the day. So it's um it could be various topic or it could be fantastic like if we get the right people in charge and you know like we said there's an open closed approach it could be [clears throat] amazing like we look at the internet people said the same thing about the internet when it first came out they said this is the destruction of society um everyone's going to be access everything's going to be dumb um I don't know if it made everyone less intelligent I think it made us more socially conscious um because now we're aware of what's happening in the world I think that was a big game changer Um people used >> the knowledge became so much more accessible before that well you couldn't get it. >> Yeah.
People like used to have no idea there were wars going on in the world because where would you find out the news had to tell you. Um now we can tell each other. So like there there are benefits to this but I just I try not to be too skeptical because like I think they're the people that get left behind. If you're only skeptical you're going to completely miss the bandwagon entirely and if the bandwagon takes off well >> that's you. Um, so I do try to use it where it makes sense in my career.
I try to at least encourage people to think critically about what it gives them. Um, stay, you know, as the human in the loop. Don't be the human out of the loop. Um, but yeah, it's it's it's a challenging technology and I think we're only really seeing probably I wouldn't say the early days anymore cuz some of them are about to go public. Um, like SpaceX went public a week ago and I'm pretty sure that means that like Grock is probably going to be in a public setting soon as well.
So, even though Grock is pretty terrible, um, but we know Open, it was just yesterday. >> Yeah. Well, we know Open AI is about to do the same thing. And but that makes me wonder, has the VC money ran out? Are they, you know, running dry now?
So, they need to go and actually make money. Um, cuz I mean, from a social perspective, most people don't understand this, but >> you know, everyone thinks that they're just going to get shares and that's how they make their money and people buy shares. Uh, all of our superanuation funds are going to go and invest in these companies. like there's a lot more sources of income that will just automatically go in their pocket because of this. So like it's going to be an interesting interesting change in in how these companies are ran and their motivations like will they chase customers, will they chase profit, will they chase both?
Um I think you you mentioned it before there's a bit of a war over users at the moment. It's still like getting as many users as possible before they lock you in and in Shify naturally. >> Um so we'll see. But it's it's a bit of a negative outlook, I guess, but but I try to I try to find the positives where I can in the day-to-day sort of uh use cases for it. Yeah.
How about yourself? >> Oh, man. I've been resisting AI for a long time. Even though I use it every day for different things, I I kind of resisted going kind of this more chinting, creating a lot of AI. I don't know why.
Some kind of ego, some kind of maybe fear of replacement, kind of pretending it's not here, it's not happening, like you know, all of that. But I don't know at certain point I was like okay it becoming too good especially from December 25 when the OPOS 4.6 6 dropped everything like changed especially in software development world cuz now it was way better more reliable and stuff like that plus started kind of coming out things like skills like different loops and stuff like that where you can also give a lot more context teach it you don't have to create this rack as we had to before like kind of upload it make this vector databases and like it was like really hard to get into that understand what's going on another thing is to build it like I spend a lot of time just figuring out like okay How do I build a rack? Okay, what is a what the hell is a database with these PG vectors? What it even means? Like I started to understand it.
So over the years I still picked up a lot of theory about how AI works like what of these stuff like that. And I kind of was staying on top of the news. I wasn't just using it to the max because I I don't know. It's hard to explain why subconsciously something something I had resistance to it. I was maybe hoping that it's going to die out.
It's just a hype. It's not because I know that there's like with AI everything is overhyped. >> It's like right now we have this new model mythos whatever it's pronounced >> this new fable 5 model. Yeah. Which is like so dangerous to release.
The public should be scared and stuff like that. They've been hyping for like a month and now like okay yeah fine have it. And it's happening all the time like and you don't know what to believe anymore. This is also like this we we discussed earlier as well about this AI fatigue. We're so tired of all this hype like all these AI apps coming out like this and that.
We just sometimes want just go back to Ravit and just click manual buttons like you know just just to get away pretend it's not there. >> Yeah. >> So yeah, but now I'm embracing it. I'm just I'm just seeing potential understand there's no way around it. The clo code I've been experimenting wildly with that thing.
I think I have like 20 different projects here and there. Not I have a good plan of how to kind of put it more in pyra development and stuff. For now, I'm just kind of pushing the limits. I'm trying to understand like how far can I push it. What are the workflows?
You can spin up this kind of lots of different sub agents. I think my record so far I had like 80 agents, but it burned through every target. I was like, "Oh, no, no, no. That's that's not what I meant. Like, go back and stop it." I mean, I just it did exactly what I asked.
I was like, "Spun out as many agents as you can to analyze my code like more modular." Decided say no more. It just like went on. I'm like, "Okay. I mean it did good some results. I think it just did a lot of things.
I'm like okay is it good? Is I don't know >> it's because you're you li I mean I guess you were trying to refine the context that each of them had to deal with and then help them break down their own thinking and then share it amongst you know themselves. >> Well well there are two things. First of all I'm just trying to see how to absolutely abuse AI to the point where it just goes nuts. The second point I just try to kind of analyze my repo with so every every agent gets a little bit different kind of modules and then analyze analyze it on its own so it doesn't like break the context but it takes a lot more tokens and stuff you burn through quick result you need to know when you need sub agents >> because the thing about like when you start going into the sub agent thing each agent has its own context and you have to kind of think yourself like is it good idea or bad idea cuz if you're working on the same let's say kind of code let's to simplify the same power tool going to spin out different agents for like UI for this for that for that you're going to lose a lot of context how everything works so one agent is much better but if you have like one agent working on your code >> and you want to create a research maybe go for rate API documentation examples and stuff like that that's great for sub agent because then you're not polluting your current context so there's this a lot of things about learning how to navigate the context and stuff like that there's a lot more to AI once you kind of try my goal was just I took like €200 this subscription.
My goal was okay, I need to learn how to max out every single token so I learn how to abuse it. Then later I can reverse back how to actually use it like more efficiently for different things. >> So that's the stage where I am I'm just trying to see how to abuse it to the max here and there just kind of >> sometimes I get a bit too lazy doing that >> because I'm like I I cannot be bothered like looking for the right file just to change this thing. I'm like hey change it. It's like I told you before, I use AI to just write the comments on all my classes there.
I just give it the code and say, "Slap the comments on, please." I might do the like three dashes to create the auto comment, but I say, "Please fill them in." Like, and it [laughter] knows what what it's looking at. It does a pretty good job with it. I give it like a bit of I give them a few examples saying, "This is like a welloc I often don't even do my own comments or think about them. I might read them over just to make sure cuz I'm really again just leaving that breadcrumb trail like I know what my code does. I need to make sure someone else looks at it and knows what it does and eventually that an AI can read this class and know what it does too like cuz it might prefer to just read the XML to get a vague idea and then not even think about the logic that sits under it.
So um yeah it's it's interesting to see like and I I do find myself getting a bit lazy in that in that regard. >> I know what you mean. >> About that I have a question. And do you kind of dive into like creating your own skills, teaching AI how to do certain things? >> Um you mean like trying to actually create like dedicated assistants or um >> not assistance.
So right now if you use something like cloud code and stuff like that, there's a lot of MD files you can provide. >> It's sort of like prompt embedding let's say but it it's a little bit smarter because it doesn't need everything at once. There's like cloud MD which is always read and then there's like a lot of skills which are kind of situational. For example, you ask it to debug, they're going to look, oh, how do I debug? Oh, here's the kind of skill for how given likes to debug.
>> So, sort of like like a like a I guess a shall rack knowledge base that it can draw upon. So, yeah, we do um we do I we use system instructions and generally I provide a few extra resources that the system instruction gets told about and says this is what this resource does. This is what it's for. If you need it, have a look at it. Um and it generally go knows what to do with that stuff pretty well.
Like I've got um separate MDs like you said in the in the the files that it has access to. I have just raw classes, things that it should look at and say, "This is how I put my classes together." Um, generally it picks the right resources very quickly. There is definitely like a some degree of work required to know how to get the best types of system instructions, but I think like some people obsess over them and they think about the system instruction way too long. Like in my opinion, no system instruction should be over like 8,000 characters past that point. It's just way too verbose and you're going to lose context in my experience.
But like that's my personal preference. I don't want it to be a huge instruction that has way too many things depending on how broad you want the scope of your AI system. >> But oh no, you're not wrong with that. Even like entropic in guidelines they say like keep it to I don't remember the exact count but pretty much they say do not bloat these files especially the main ones which are always loaded keep it minimal refine it and stuff like that but the thing is again it's all about refinement because slowly your p you have to kind of teach it again like okay example what I do and I find it really really well when I do a big task I just I have a command to wrap up and pretty much I say like look over our conversation and document kind of notice the patterns, document what worked, and also document what that didn't work cuz the next time it kind of understands like, oh, this thing works, this doesn't work. So, this is how we can approach it.
It kind of >> you just memorize into a markdown that it can throw up on. >> Yeah, pretty much. It's it's nothing fancy. It's just like one step you actually have to do. You can even make a hooks because there are like hooks kind of automatically going to do it for you after like certain like after 10 chats summarize of you know there there are different ways to do it.
But it's a step people have to do. >> Yeah. One thing I guess like I mean I took a little course where it was like a basics course to some degree. It was teaching you about just how LLM's actually work and what's going on behind the scenes. And I was shocked to find out that your whole chat becomes just appended to the next message each time.
So if you're the sort of person just typing in a few words at a time and tell me an answer, tell me an answer, you're basically just throwing the same chat at it every single time. So um I did I did learn that yeah it is important eventually like you can also just break off a chat through a summary into a new chat just to like reset your context to some degree and sort of not carry you know the last >> 500 messages through each time you type a new one. Um it was enlightening to just learn what LLM actually are doing behind the scenes how vectors work like what it's actually how it forms associations between words and some of it made you realize this is a pretty raw it's a pretty raw algorithm like in terms of what it does at its core. um you know it's it's basically guessing its way through it. Um like people think it's magic but it's like no it's just a very you know wellought out graph in principle like what it's dealing with.
So it's pretty interesting to learn about. >> Yeah vector. I mean >> it's still a black black box right it's like everyone says like you also mentioned like we take data put it in black box now it just spits out patterns and stuff like that which we humans cannot even kind of comprehend certain connection it does but sometimes it's just like wow no it's I don't know this AI thing it's terrifying when you start getting deeper and deeper and deeper you start to see so much more potential what it can do >> yeah I mean the scary part just what people will do with it, right? I mean, at the end of the day, it's just a technology. It's what people do with it that makes it do bad things.
So, you know, when you start to see the US military start to look at using it for drone targeting, you're like, bad. Like, you shouldn't be automating those sorts of things and delegating the decision-m process behind this very extreme and, you know, dangerous things to a computer. And that's where you start getting into the whole Skynet freak out sort of stuff where it's like, okay, shouldn't be automated, >> you know, but but it's very positive for some tasks. I mean, medical research, I'm sure there's like incredible applications there. Like, there's got to be some fields where it should just be used cuz it's going to do good things.
And I guess we're in a field in the middle where it's like, yes, you could like destroy your company's codebase overnight if you're not careful, if you're not responsible, but at the same time, you could make your company move so slow if you don't use it. So, it's that interesting middle ground in our industry. But the thing is that this kind of news where like database was destroyed by AI in 8 seconds or something like this. It's >> ridiculous. just such a stuff like what [laughter] >> cuz there was like recently there's one CEO he destroyed the whole database like he destroyed like not just database but the note where database lived on the server in like railways whatever it's called >> bad the physical server >> and he went on ranting wrote a huge blog it went viral blog is written with AI of course because you could see certain patterns there and then in the end of the day you just sit there like okay could you just provide your prompt cuz I'm everyone can agree it's just going to be shitty prompt just said like ah clean the database and it's like >> look at the level of access that AI must have had to systems I mean they set them up for failure if that was how much access they wanted to give that process so it's basically just along with the blog saying I am an idiot like it's like you've got to build safeguards and security into these things and limit the context limit the access to what you want it to be able to like what's your worst case scenario >> like git for example I mean we use git so that we always have backups we always have versions we always have commits we go back a version.
It's okay. So like it's like he probably had no idea how any of that logic works in principle work with code. >> So >> I mean I looked at this >> I looked up the story the conclusion I came it just that he just gave access not to the database not only to the database but to the platform where it's hosted. >> Wow. And based on description, what happened?
It's not just database deleted. It's just on the app. Pretty much he killed his app somehow. But they still had the backup. They restored it because there was like so much >> there was so much hype around the story which didn't make any sense.
I was like, why everyone talking about it? I looked at that. I'm like, okay, yeah, it just happens. But in reality, >> you couldn't even restore it. I'm like, yeah, I'm pretty sure you can restore that.
Like, so it's always funny when the news tells half the story, just the one that people want to see. [gasps] >> Yeah. That's the thing like they they make us scared like oh don't be afraid of AI and I mean I kind of at first I was like oh yeah it makes sense but then I realized like well it's probably bad prompting like you said no guard rails >> and yeah it's usually very rare that something like this happens. >> Some people had their whole inbox also cleared but yeah >> you've almost got to ignore the news these days. Like I mean I don't take much news seriously anymore.
Um, it's sort of one of the good things about AI is it sort of got me off LinkedIn to some degree. Like I don't really go through my feed very much anymore because it's mostly just people posting about AI. So I generally just make posts and interact with the people in the comments. That's my main >> means of going on LinkedIn these days. Occasionally responding to messages that that's it.
So it got me off the feed because the feed is just garbage now basically. I mean I have too many connections. I've got a lot of garbage connections as well unfortunately. So um >> yeah. >> Yeah.
big advice someone if you are going on LinkedIn don't accept all the connections because you're just going to get a garbage feed. >> Yeah, I second that. I mean my feed is very weird because I see a lot of people complaining about stuff but I never see it in my feed. My whole feed is people complaining that uh what is it this kind of post like ravit is not beam for some reason it's still kind of trending. I don't understand like nobody talking about except for the post complaining about it.
Then another post about like AI kind of pretty much half of my feed is people complaining about AI slopes >> instead of so it's either AI slopes or people complaining about AI slopes but in the between there's so little and I started fighting certain people they actually make better content but eventually like I also have so many connection my LinkedIn is a bit cursed >> but most people they don't have like 10,000 connections or something like that so it definitely probably helps. I think it's cursed either way. Once they added the someone's connections connection did something and here it is. That's when it became cursed cuz I'm like I'm not connected with that person. I don't need to see what they're talking about.
But because someone else interacted with them now I see it. So it's like you can't escape you can't escape the swap. Um you can only block all of LinkedIn basically. That's the only the only solution. >> But it was good.
So yeah, >> the thing is that LinkedIn was always the weirdest social network around and there my favorite post is like I just got driving license but then you go on LinkedIn and like I'm so honored and pleased. Thank you everybody. And then there's like this posted praises and I kind of get it like this is just kind of what was cultural of linked in this kind of space that everyone makes fun of LinkedIn always. >> It's a weird platform. >> Yeah.
>> I'm still surprised like this is this kind of the main platform probably for AC because back in the day probably it looked like logical. You create an account, mention where you work, put your all the experience and maybe even got a job later. I don't know if people get jobs for LinkedIn though. Well, occasionally I I've hired people through LinkedIn before, but only because they've approached me in a very professional or or particular way. So like um and don't just reach out to me now, anyone listening to get a job.
[laughter] >> For example, I had I had a graduate reach out to me a week ago and um she was talking about Dynamo mentoring. Um if she's watching, hi. Um and she was very professional, very interested in talking about it. And I looked up her CV and I could see she'd only been working somewhere for 6 months. And she'd hopped around a bit.
And I asked her, "How how's your career going?" She said, "I'm working casually at the moment, looking for full-time work." And I said, "Well, drop your CV." Like, you know, like you you've said the right things. You've presented the right way. Um, and I'd always love someone to work with me that knows Dynamo, too. So, like, um, sometimes it's just those random connections, but I don't think like >> inbox bombing people going, "Hi me, hi me, hi me, interested, interested, that stuff doesn't work." Like none of that works. Like it's just annoying.
Well, yeah, but also I kind of I I think last year I saw my email from like when I was like 17. I read how I wrote emails before and I'm like >> I get it now cuz back then I just wrote like whatever like ah wrote it, send it out. It was something related to university when I was like making application and stuff. In my mind I wrote something like >> decent professional. When I read it it's just garbage.
my LinkedIn messages like just quick messages now better than that email was and I'm like and that made me understand like oh I think many people just don't put too much attention to that they just drop what they just dump whatever and often times it's also through translation because their native language is not English so they just translate it and I see >> certain patterns when people like write me from like um from Arab countries they there's certain patterns they like to include sir and stuff like this and I'm like oh that's translation >> thing yeah Yeah. Yeah. I mean, a big part of it now is we're going to get AI messages, right, from a lot of people, especially from second language, um, English second language or third language because that's just easier than trying to translate something into coherent sentences. So, I I definitely recognize when someone is just sending me AI generated messages instead of talking to me. >> And I understand if English isn't your first language, I understand.
It's it's okay. I'm not coming at you. But it does definitely change the tone of engagement. like you're much less likely to convert into something meaningful if you're just sending a messages. Um yeah, >> also depends.
One thing is translation. You can see it's AI just but the other thing is just like it was a prompt like from scratch like just write me a nice email to something and you're like if someone writes more than like three paragraphs I'm like who does that? Like no one writes three paragraphs and then presses enter so they write like one or two tops and have a conversation. So >> yeah, >> I'm actually guilty of that. I have an issue sometimes.
I just ramble too much. I'm like, but then I sit down and I rewrite it and rewrite it and then I think like I I should have just used AI because like I spend so much time writing like a simple like message email sometimes. I'm like ah should I do it? >> Don't know if I know the person I'll write like a lot more. Like I mean Nicholas from Bimure reached out to me the other day on my thoughts of AI.
I think it said him about you know like 20 paragraphs or something like that um just of my thoughts. But um if I don't know the person it's usually like very informal just quick message here and there. But um yeah, it's interesting to see what that's done. Um I mean I guess um I was curious. So you've been using pirate MCP or how have you been finding that if you're using it?
>> I haven't really gone into that. I understand how it works. Looked at the code to see how the tools created. There's like a little weird kind of syntax. You have to use a synchronous coding a little bit because well apparent because you kind of call the sort of this u route kind of it's constantly kind of listening.
You send it out messages and so on. >> I don't No, I had mixed feeling in the beginning. I was like, well, there is some potential. Then I was like, ah, it's just hype and then now I'm in the middle. There is some it's important thing, but probably not how most people think about it cuz many people think about as AI assistant, and I don't think it's going to work this way for very far.
It's kind of cool thing, but mostly I think you've wrote it somewhere that sometimes just creating schedule manually is faster than asking AI or something like that. you made a post and I'm like yeah it's just such a good just straight like to the point like dude just just right click once and that's done but when you make like thousand and stuff yeah sure >> but because there are custom tools which again you can generate with AI and make sense because they are more stable you can verify and they are going to be predictable eventually >> and [snorts] MCPS it's kind of good maybe to give your boss to poke around the model ask some questions in like non-y way like okay what's what's going on with rooms what's going on here and there but you have to maintain create tools in a very specific way. So I don't know >> one thing where it's really really replaceable is connecting to AI directly creating this kind of bridge between your kind of LLMs and Ravit >> and that's pretty much how it works right I probably in the editing I'm going to drop the post how it looks >> but the thing is that once AI can connect to Ravit you still can kind of control what it can do by giving it tools but one of the things you can also let it execute its own code and I talked to Alexi I'm sorry Alex, I I don't remember how to kind of read your last name, but he shared that he also going to come to podcast to share it and he pretty much took the MCP connected to LLM disabled all the tools and now he uses it for AI to kind of figure out certain things. So AI writes the code, executes it if there's a mistake kind of rewrites it. So created this kind of loop.
This is what everyone talks about when you kind of create this identic workflows. This loop is the most important thing because you can let it run. You can just give it some task, kind of give it some conditions and >> work. Yeah. >> Yeah.
It just kind of keeps working like, oh, error. Okay, I'm going to try something different. Pretty much what we do normally, but we normally exe kind of get the code, put it to the script, execute it, copy the error, and there's this kind of manual loop of you sitting there doing very useless work. And this is the first work that should be automated, but it's not as fancy. Nobody, you know, like and often it's just something that we are like ignoring should be automated.
>> Yeah. I always find it funny watching the um the hype cycle, the words they follow, the trends they follow. Like I remember when tune was a big thing, for example, and now loop is the new thing. They're like, "Oh, I put it on loop and that's how programming works." >> And it's like, and all these people are like, "Loops. Oh my god, loops." And I'm like, "That's like programming day one." Like you got these people just getting they're almost revealing they have no idea how to code basically.
They're like, "Loops are so amazing. You need an exit condition and all this stuff." And it's like duh like like you know like [laughter] the most basic concept in programming. So people are almost exposing the fact that they have no idea how to code. They have no idea what programmatic concepts are because they're following these little trends. And the latest one I agree with what they're saying.
You you put it on a loop. You keep it going. Your exit condition is you worked or you did something. But I'm like that's that's pretty basic. I mean that's just how people work.
It's not like we need a word or something to describe that. And loop is a probably a bad choice of word because it has programmatic implications. And >> yeah, >> so it was funny to watch I guess just the the people reveal themselves when that came out and go wow loops are really important everyone. It's like yes yes they are. >> Yeah.
The thing is that the issue is that it's coming from the very very top because it's pretty much the create right now it's training the creator of clo code himself Boris whatever his last name is >> he has a way to kind of go and kind of hype up as well because well they need to hype it up and he says like oh I don't write any code I just loops loops and this is where it came from there are like a lot of these kind of quotes or something they go like use loops and they're just like loops [laughter] >> loops >> crazy I just it's such a hype circus but I mean that's like the LinkedIn joke too, right? It's like just touch grass, like go go go [snorts] out to reality and, you know, like don't take it so literally, but there definitely is like a hype circus around it. It's fun to watch it though and just sort of have a laugh sometimes and go, "Okay, wow." Like some people are so so abstract in how they understand all this stuff. Um, >> I mean, in AI it's still a big thing because before the issue was the context, the the AI harness improved a lot. This is also the thing like LM model is one thing and when chat GPD came out it was all about you have like the best model and you create your amazing prompts and stuff like that you write the details things but then it's evolving to we need less and less prompting because harness doing a lot of it for us >> because the way it works also because now with all the skills and stuff like that clo and chibt whatever you use probably most people use clo code right now all the skills you create all the information it give all the context It still feeds back to the kind of cloth >> and it kind of understands it and it kind of iterates on top of it and it kind of improves space.
So now millions of people creating amazing systems they inherently also teaching clo how to be better >> and with every release >> Yeah. >> Yeah. And with every release of the model for example somebody can create amazing skills hide it hide the whole AI stack with with the next kind of version of the cloth it might be somehow included in the training itself because well it needs to kind of learn from itself. >> So now it's at the point where because this kind of the idea of loops is that now it's not about prompting it's about goals. You just tell it what you need and why and you still provide certain context.
But now it's at the point where there are certain when we just say loops there's certain things happening in the background how it connects the context and so on that can achieve it. That's why it's a big thing. But yeah, it's again overhyped and using the loops I also didn't like it. I was like I mean like it is a loop. I get it.
It's just short. It's super trendy word as well. So I I understand why they chose it but I see your point as well why it's annoying. Yeah, >> it's funny cuz a lot of this really just is an abstraction of how you delegate things to people in real life. That's how a lot of this AI development seems to be moving.
I mean, we began with the idea of prompting and that's basically just like going up to someone saying do this and then walking away and that's it. That's all you do. You don't check if they got the right tools, if they got the right systems, if you know there's even something they can work with like and now they said, "Okay, you need context." And it's like, "Okay, so that's where you make sure they've got the tools they need. You've got enough context around what the instruction means. And now they're saying you need a harness.
Cool. We have systems. We have company standards like the you know things that tell it how to work and what framework they should be using and drawing upon. And then now it's like okay loops. It's like yes like people generally work iteratively.
It's like we're just sort of abstracting the process of real work I guess in principle. So it's like I don't know what the next step is after that. Probably I'm energetic having a team that where the agents are all aware of each other and they're working together as a team. Like it's like we're just >> it already exists. It already exists.
But I feel like we're going to get the next like, okay, this is the next agent. Now we have loops and we have nested loops or something. You know, there's going to be some sort of like some sort of like new term that they use, but really we're just breaking down delegation in principle. That seems to be the I guess the abstract framework that we're we're emulating in real life. Um, so it's funny to watch it have to everyone has to learn how to work all over again almost.
It's like >> it's like we always joke saying our principles they you know they give very bad instructions so we're safe because they can't tell an AI what to do. Um like that was sort of the joke that I think went around for the first week when AI became a thing. And so when they said oh our clients had to give a specific brief so we're safe cuz clients never give a specific brief. They just give a really fuzzy brief and walk away. Um, so it's like I think we always understood from the start that's what we were doing, but it's like we had to rediscover our own process we already did in real life like light programming.
We just had to abstract it into a system. So it's funny to watch us have to, you know, baby step our way through something that we already knew how to do in real life but just couldn't abstract it to a a coded solution, I guess. Yeah. So >> no, now it becomes more accessible. >> And you also ask what's the next thing recently?
I think like one or two months ago there was like a project on GitHub called auto research made by Andre Karpati I don't know how to pronounce last name but now it's about like giving it goals and let it train itself and I saw how it works. It's pretty good when but it's certain scenario where for example you can take a website and tell AI it should load faster >> right it can look okay it loads this and it's just going to go on this kind of loops and try try try and it's actually going to optimize itself >> it's also going to document everything so eventually it's better better to the point where it cannot make it any better. So that's a really cool thing, but it's certain use cases and you have to kind of set up like certain goals correctly and stuff, but it seems to be really really kind of good thing if implemented well. At least examples that I saw for the websites, I was like, "Oh, that's really cool." Not sure how to apply >> learning I guess. We already have these concepts that mix with AI.
>> Yeah. Yeah. They bring it back. So they just made it so AI pretty much does its own reinforced learning which is great. Super simple.
At least it looked like. All right. I just realized we've been rambling about this. So, yeah. >> Yeah.
I mean, I guess we spoke about a little bit as well, so we can always add that in as well where we spoke about the more philosophical underpinning. >> Yeah. Yeah. Definitely. >> I just now look at the time.
I was like, "Oh we're kind of coming to an end." And we haven't really dived deep into like the C# example, some like pirate versus C# stuff. >> I mean, if anyone wants to see the C# code, I do, it's on my GitHub, so um it's all there if you want to have a look at it. But um I mean happy to talk about the return to Dynamo briefly. I guess that's something people have been quite interested in lately in my journey. >> Yeah, let's go.
It's definitely something interesting thing I I I should have managed it better, but I just treat it like we're just talking and we just carried away. [laughter] >> But um yeah, so I guess for people that aren't aware of, I've sort of roundted myself back to Dynamo lately. Um that I sort of mentioned at the start, but it was an interesting sort of choice I made because I guess I realized that further up you go with coding, you sort of pull the ladder up a little bit as well. And eventually people have no idea what you're doing. They can't learn from you.
And I've always loved that Dynamo is a bit of a bridge into programming. So I said, well, I know C# now. I can go back and do zero- touch node packages which use C#. Um, and then it didn't take me long to realize that working in this way gives you way more access to the core application of Dynamo and let you do some pretty weird things that you can't do on the canvas with nodes typically if you're just using regular out of the box nodes even or Python because you can do things like catch Dynamo as it's loading as an application and hook things onto it and set up your own custom behaviors and data classes and that's um just been a really interesting sort of way to revisit and appreciate I guess the complexity of a program um that sort of taught me how to code >> and in turn I I sort of feel like I have an obligation to keep building on it and help other people find their way through otherwise they're just going to go on one shot stuff in cord and probably never learn how to actually code. So I'm sort of trying to keep that bridge alive um for people.
So, it's been a been an interesting journey just getting back into that >> to appreciate it and go, "Wow, this is actually a pretty sophisticated piece of software." Even though a lot of people say it's slow and clunky and >> Dynamo sucks, use Grasshopper, whatever. Like, you know, I've I've really come to appreciate that it's it's quite a beautiful piece of software under the hood that's running. It's all just an MVVM form, too. The whole thing's running off MVVM. It's pretty amazing model view, view model.
Um, so you have access to the Dynamo View model behind the scenes, and you can do all sorts of weird things with it. But I mean, you know, when you look at the ZAML for WPF, you're like, my god, I can't even imagine what Dynamos looks like. It's like it's pretty pretty complex. Um, >> yeah, it has this 3D previewer behind the canvas and stuff. So, it should be quite advanced.
>> But no, the thing is that most of us started with Dynamo. I still hear people like because I have like the challenge, the community, they still say like, oh, most of them start with Dynamo. Slowly they get to the point. Majority people mention the biggest issue was like deployment, package management, stuff like that. Even though now many also kind of um told like well now I think I know how to handle it at the time it was not the thing because there was an actual issue plus people were not as good as programming and stuff you know in Dynamo we start with like miss half of the concepts like loops because loops not exposed many when I switched to Python and I made very quick jump from Dynamo to this one I kind of missed existence of for loops somehow I only learned about while loops and then I was like well I guess I need to count myself so I was counting when I I was like, "Oh, no way." Jesus.
>> Which is funny because when you get to C, you mostly use what is basically a while loop anyway. So you use like a forerator and that's just add >> basically how you work. So you sort of almost worked in the C# way. Um cuz you can use the for each loop in C which is like the for loop in Python, but it's often easier if you're doing like a zip loop with multiple lists. You would use a for iterator and just iterate the the object.
But um it's funny that you know it seems silly but actually you were going to a more you know logical >> yeah I know >> cuz there is like all this for me I'm still amazed that people like in C++ they have to also manage memory one thing is like I used to complain about type heating in C and this and that putting the semicolons but when I heard about C++ memory management I'm like >> oh I was so stupid like this is this is like the bigger issue not issue but complexity, right? But that's how you get >> I learned C just like C with nothing after it for a while and Maloc and D alloc and pointers like memory and pointers. Oh my god, like it was like such an eye opener. Like a list behind the scenes, a list is doing so much work in in the computer like it's a list is basically a bunch of what we call strcts in C. I'll just go a little bit in depth here, but like and basically the strruct has a how you go back, how you go forward and what's in the thing and then it points to another place in the computer.
The computer finds out and dynamically allocates places to put things and they're not next to each other. They're all just at random spots where they fit. So arrays occur in a in a set. They're a fixed point in memory whereas lists are literally just linked together to point places in memory. Um, and like they forced you to build blink lists in the C course that I did.
And oh, every time I use a list now, I'm so appreciative for what's happening under the hood cuz I'm like, wow, okay, there's a lot of work going on here. >> Um, if you add an object to a list, like computationally, that that is quite a bit of work. >> Um, like you you learn about sorting methods, what's happening behind the scenes when you sort, how you index things, it has to go from the start of the list sometimes depending on the structure type. So you you you definitely pick up a lot of appreciation if you ever go down to these level languages cuz there's a lot of work under the hood that we're just benefiting from. >> You went really deep.
I didn't go that deep, but I can throw in a good analogy. If people going to think about their RAM memory sticks as a huge parking lot >> and cars parking as a kind of memory allocation, let's say like you say like each item in the list is a something located somewhere. So it's like it's parked somewhere in the parking lot >> and then your actual list is just kind of maybe let's say a paper saying like okay red car blue car and something like that but it points to the specific place on the parking place where this car is actually located. That's a good analogy for me to break down all this kind of memory management >> and then appreciating if you need to find out where the 20th car is, you got to go to the first 19 cars and get pointed around to find the 20th car. So >> yeah, obviously all this sorting it's a good analogy.
I don't know. It just randomly came up in one of tutorials because you know there's like when you print stuff in Revit API it gives you this kind of memory allocation hash >> which doesn't make any sense like I don't know why it's even printed >> but I know that beginners like look at that and like this must be important. I try to always tell like okay it's just a memory staff. I just once explained it and with a parking lot and it made so much more sense to me than probably to people who I was explaining it to and I was like oh I'm keeping that analogy it made sense to me finally. So I kind of explained it to myself.
>> Yeah. And I guess there is that that challenge that if you don't learn those really fundamental concepts, you often don't know how to communicate with the computer. So like when you get given a hex code, it's like unless you know what a hex code looks like, you don't know what what it's telling you. But actually that thing's just basically like a warning code that has like something you can go check somewhere else based on the hex. Um cuz the course I did it taught you you've got binary asy hex and then you finally get to like you know more friendly data type storage like pointers and things like that.
And um so sometimes when you get those weird like xxo664 or whatever sometimes they're pointing to like ASI references I think or something like that I forget it's been a while but they're basically like the most efficient way you can put this thing in a memory aspect. So like that's why it looks so weird sometimes because it's just a memory a memory address or something like that. >> Yeah it's pretty pretty abstract. Um I guess like yeah if you start too high up in the abstraction chain you sort of miss the opportunity to get to the more complex development pathways. I mean maybe AI is just going to write all the code in future but there's so much dependency underneath all this stuff and someone's probably going to need to know how to fix it at some point like assembly >> you know about assembly I assume or assembly is like the first programming language.
>> So assembly >> you mean about language? Okay. Yeah. I know. I thought >> bits how to turn themselves on and off and it's like just a guy moving around flicking switches basically with instructions and that's how like your compiled code gets broken down into instructions for the bits in the computer and it's like someone out there has to know how to do that because if this thing breaks one day like I don't think AI is going to know how to fix assembly.
Like that's a a pretty raw um you know literal language and like I don't know many people that can do assembly. Um, a lot of the old programmers did learn assembly back in the day, um, when C was still like more of an emerging sort of concept, but it's it's pretty amazing just how fast we move away from the core of what's happening at the bottom of the computer. And I do wonder how like how long AI can, you know, keep us abstracted away from it before we need to come back to it. Yeah. >> Yeah.
>> Bit of a deep conversation there. Sorry. >> Yeah. Yeah. We went a little bit deep.
Now I'm thinking that maybe I should have prepared a little better structure. I mean, I have a structure here, but we're just talking and it's nice. So, [laughter] I thought like, yeah, let it run. >> Enjoyable. Yeah.
I mean, I'm sure if anyone's still here in the chat, but hopefully you've enjoyed um enjoyed our viewings. >> Yeah. Uh unfortunately, we would have to wrap up. I would have to go soon. >> But it was so nice talking to you.
Like there is always so many different topics we can dive into there. I think we should have just fixed something because uh you sent me like a really kind of we can talk about one of those things like I also throw in and stuff and now I look at it. There are like MCPs, AI, there's like C power dynamo like what packages you manage, what kind of stuff I do with on my my end there's like so many topics and I realize now like I knew that we're not going to cover all of them but now I understand like maybe I should have made a bit >> structure. Probably in future I'd love to come on and um maybe show like a C# project for an addin and start to explain how you can break them down and probably the commonalities between how you build and how Revit and sort of talk about those. Yeah, that's what I kind of wanted for this episode.
>> It's just we never got there. I just very lately realized how little time and I already knew that there's not going to be enough time to dive into that. >> But now Yeah. Well, it is what it is, right? I I like to keep this podcast casual.
It was pretty much us just chatting whatever comes to our mind. That what happened. >> No, I really enjoyed it. Um it's it's it's important for people like us to keep talking to each other because the moment that we lock our thoughts away on our own is where we get really biased, right? Like it's important for us to ground ourselves and talk to each other and make sure that we all >> understand what's going on in the industry and have people that can challenge our opinions and go, "Oh, I don't know about that.
Maybe this is it." So like anyone out there like this is really important to do this sort of thing, especially in coding and development where you can code yourself into corners and all sorts of things like that. Yeah. >> Yeah. the great work you're doing too by the way like some of the work you're doing with like your websites and like the form builders like that's amazing like you're you're doing some really hardcore stuff there so like it's pretty impressive um yeah >> thank you appreciate it but you just described pretty much why I decided to kind of bring back this power rate podcast because once I start talking to different people like all the different experts for example had John who came in he said like well I learned rate API power this is how I use aentic now I talked to David was really like savvy pirate developer is like I'm not using AI as much to you as well. So it really helps me see so many perspectives because I can talk to one person then I'm like for example if I would only talk to you right now and this then I would just this would be like one of the kind of the only external opinions for me and it would also shape my own opinions but now when I start talking to multiple people from different like levels like including experts people who kind of kind of maybe not as kind of far down the journey it helps me understand and see different perspectives so now I'm doubling down on this life not live But well, we're kind of live.
But anyway, like talking to you and also to my audience as well, it helps me see so many perspectives that I start to appreciate. I'm like, "Oh, you actually at certain point I think like okay, AI is taking over." Then I talk to people and people they see the same complaints like people ship like with AI not robust tools. They don't understand code. They run too fast. Like they don't have time to really understand what's going on.
But then they kind of slow down take it kind of understand some things then it helps them use AI better and stuff like that. So, it really helps me, as you said, like stay in the loop, see what's going on. >> In the loop. There you go. Loop.
>> Loop. [laughter] Loop. >> We're looping. >> Yeah. No, it's good.
It keeps us grounded, right? It's It's like touching grass to some degree. Um, just >> Exactly. an Yeah. Yeah.
Yeah. >> No. Yeah. I definitely need to bring you back actually dive into C# code to see because my biggest plan was like take like a little pyate code turn it into C# live so people see all this compiling thing how to use the template that you mentioned this free point 3D point whatever it was >> yeah so that >> we probably build some structure around that could be quite a complex demo but um yeah we're happy to work with you and we can figure something out behind the scenes of how that might might play out >> oh we got a question there we go someone's here you good >> oh yeah almost surprised like so Yeah. Hello.
I think I can put it somehow on the screen. Well, it covers everything, but anyway. Hello, Erik and G. Nice podcast. I need some help please unveiling clash tool detector and pirate.
I want highlight the clash and linked elements and the active 3D view. Is there any way to override color of single linked element? Well, that's a very technical question out of nowhere. [laughter] Um, so yeah, can you override colors of linked elements? >> I forget if you can.
I don't know if the API exposes that capability. I think it was only for native elements last I checked. >> There's a lot of limitations with accessing linked elements like you can't cast a filtered element like over a link document. You have to access in more abstract ways. But >> I'm not sure if you can.
Um >> so in my mind to overwrite element you need element ID but element ID bound to projects and when we reference another elements from another project usually we use reference. So there's also linked ravit. >> No, actually there is a >> you can get element ids from linked elements but I think it's the override um the override method which is um there's a the view based method. So if it's view override element in view I think in the >> um I seem to recall that that one was limited. >> Um >> okay there is a class link element ID.
Maybe that might work. >> Yeah that's >> and it's created with a element ID. So yeah, you would have to dive in and see there. I haven't tried it myself. Logically, it should be possible.
>> Yeah, I've researched it and I think there were limitations. Um, as an absolute workound, it's not a great workound. You could run in the link document and um like add a filterable property and use the filter on the link. That's like a really long workound. Um, if you do need to see it, but you wouldn't be able to dynamically do it because you'd need the link document to be active to populate that property and then back in the host model with the link.
So, it's not really like a live workflow. Um, as an alternative, I guess you're saying you want to highlight the elements. You could also look at section boxing around the elements and then selecting them. I think you can select linked elements using the API. That might be one way to sort of draw focus to the object.
Um, and there's also a method for moving to the elements in the view as well. I think it's show objects on UI document. um that will focus you to the position of the element and then you can cast a section box after that because if you do a section box first it won't be able to find the element because the section box excludes it can't see it can't move to it. So the UI document show documents show objects um at least gets you to the position >> and then section box select might potentially work as an alternative UI UX >> but yeah that's a very kind of technical specific things you just need to go in and try different things. Yeah, I mean that's often the Revit API, right?
There's often something can't do it. Okay, what's the next best non crappy way of doing it? Like you have to find those workarounds. Like a really funny one, speaking of links that I know people have done in the past, um you can actually start exporting a link in IFC to get the elements visible in a view and figure out which linked elements are in a view instead of using a FilteredElementCollector that can't target linked elements. So like one developer I know started background exporting an IFC grabbed the ids from memory and said these are the element IDs and the link I can see and then put them back into Revit API and said get the elements with these IDs in these documents to do a linked element collector.
So sometimes you have to take really long workarounds around the API where it's got gaps. So this might be one of those cases maybe. Yeah, >> right now Mateo is just like [laughter] >> so. >> Anyway, unfortunately we have to wrap up here. I really we should plan even more.
I even specifically booked more time with you. We even started before we invited audience. >> Never never enough time. >> Anyway, it was real pleasure talking to you Gavin. Um if you want to throw in any links, well anyway, I'm going to leave whatever you want in description.
all the kind of projects you mentioned like C Dynamo zero touch notes and stuff I have links I'm going to drop it there as well >> if you want to just looking at it important clarification you will need to look at my whip branch so I did I used to work in main as we call it in GitHub and that's a bit of a sin like you're not meant to work in main you're meant to work in branches then commit to main um with pull requests um I've just started working in whip branches so you won't see the latest code on the main branch generally you'll see it in a whip branch um until I commit it as a version So I am actually using GitHub properly now. Um because I actually have a developer I can work with at work now. So I'm not working in main anymore. [laughter] >> Um so if you do go to those links you may not see the latest code on the main branch. That's the main clarification.
>> Just exposed a very bad habit of mine. I used to have too. So [laughter] >> I'm really sorry everybody. We have to wrap up. I didn't plan enough time for today.
>> But yeah, it was a real pleasure talking to you as always. There are just too many topics we can explore and it's always we we go always deeper than probably for the podcast than we should. But hey, >> we'll pick one and deep dive it next time I think will be the easy way. But um I really enjoyed having a broad discussion with you and finding out where you're at with all these things as well. >> We haven't spoken in a while.
So it was nice to dive in, see where we at. I think this podcast was most mostly for us to talk to each other than for the audience. But today we get to kind of ease drop, see what's happening. >> Thanks for watching everyone that did tune in as well. We appreciate you um taking the interest in what we're up to and um thanks to appreciate it.
>> Yeah, thank you everybody and as always if any questions or guest requests just comments below other than that happy coding as always. >> Before you've been just completely all white like like a t-shirt your face was like all the same. I was like okay when I mean I've got like a two two-tone tan. I've got like white and then tan cuz my arms are always on the desk in the sun. So, >> how's that possible?
I thought in Australia you all always walking around. >> Not the gamers and the nerds. Yeah, we still stay inside quite a lot. [laughter] >> Yeah. Yeah.
True. Like Sharp is not going to learn itself. >> Yeah, exactly. It's been It's been fun to start to sort of control software a little bit more and feel like I've sort of got a bit more agency and what I can make programs do. Um, that's why I sort of came back to Dynamo because I realized there was this huge underpinning core of Dynamo that you can basically muck around with.
Um, so I'm getting it to start to store like data into graphs directly so that you can like give a graph to someone that's already got like initialized drop downs built into it that you've sort of tailored on on the canvas and said these are like the list of things I want you to be able to pick from and yeah, it's very very you can do with it and you can store like anything in the graph basically. Um, I mean it's all >> Yeah, I I saw you started getting into like this like started like VPF form, storing data, stuff like that. So you you're about to break down >> VPF and all sorts of weird stuff. So um and there's just like a huge gap in the package um developer community right now because they've sort of lost a lot of their big developers over the years and John Pearson works with Autodesk now so I think that sort of slows down what he can do with rhythm. So there's definitely like a bit of an opening >> in the community to sort of create like the mega package that can sort of bring everyone back and you know get them to get more out of Dynamo.
So >> happy to be own the mega package in future. Yeah, >> I didn't see it coming. It's literally you made a full loop like Dynamo Pirates C and like you know what let's start let's go back to the beginning. Yeah, I guess I see it as a huge like it's a great entry point still for like people to just understand code cuz I'm really worried that like people want to we can definitely talk about this in more depth too um as we go. They're just missing that entry point to code where you sort of have to figure out why you want to do code.
>> Um you have to have that little moment where something works that you've built and you're like yeah it works but like now it's like oh AI gave me a thing and I hit run and it worked. It's like it's not the same discovery journey. Yeah. >> Yeah. I know.
Everything is so fast is like people start coding. I occasionally talk to people like I I don't understand how loops work but here's like 20 tools I made and I'm like I mean that works and I start doubting like questioning myself like should I even teach this thing like if people do that but then I have other site where people actually like to kind of get into this manual stuff and they actually >> say like they finally get what's going on and stuff like so give them clarity then it's completely different >> game because I guess I find myself wondering if I'm gatekeeping when I you know get in the way of AI based approaches. Maybe I'm being a gatekeeper to some degree. Like because I guess like I learned through visual programming and a lot of coders at the time would be like that's not real programming. You're skipping steps.
You're, you know, you don't learn how to debug properly. And I'm sort of saying the same thing now to AI developers. And it's like to some degree I have to sly check myself and make sure I'm not just being a gatekeeper. But I look at the way they're learning and I'm like I don't know at what point of that journey they will learn to debug for example. Like will they just never learn to debug [snorts] sometimes?
>> Yeah. Yeah. debugging is like this is why >> I start to feel like we already started the podcast before the audience came. They're going to come with you guys when we finished. [laughter] >> Yeah.
It's what I was going to say. We're getting too excited we're already jumping in. >> Yeah. Yeah. >> I mean, when we talk about Dynamo, I'd be keen to show very briefly like the level of um customization you get available to you.
Like you can literally like get the nodes and the wires and all the things in Dynamo like reflected back to you. And it's pretty insane just like the depth of what you can customize when you sort of learn like the ins and outs. Um I'm still only really just learning it, but I'm getting nodes to start telling me like their nicknames so that they can index like custom drop downs in the graph like the graphs themselves and do all sorts of wacky stuff like that. So >> trying to build likeable scalable sort of hacky infrastructure. Yeah.
>> Have you tried Grasshopper? Because their customization I think is insane. Yeah, Grasshopper's big. Um, the only problem with Grasshopper is like they're so focused on Grasshopper 2 now and it's unclear like how long that's going to take and I think everyone's a bit like worried that if they put too much work into Grasshopper now, it's like it's going to get undone when Grasshopper 2 becomes the official standard. So, it's in a bit of a funny little holding pattern at the moment.
Um, but it's a great piece of software. I use it like almost daily at work. Um, mainly for just computational analysis and um, sort of like advanced form finding. >> Yeah. >> Yeah.
It's >> Yeah, you're a everything. It's cool. >> Yeah. Yeah, I try to. Yeah.
I mean, pretty much anything in Rhino and Revit, like I've got my hands on at some point. Um, I've still got to get more into Blender. That's probably the next program I want to crack open because I've played around a little bit with like Spurs Shock and a bit of that stuff, but it's just it's very hacky. It's very, you know, I don't know if an average user is going to be able to use it, but yeah. >> Yeah.
I wanted to get in Blender for a long time, but then I was like, I know I can find time for anything. Like, there are so many things. I'm just like trying to my issue is like I need to learn how to focus cuz even right now I focus on like new training this training then documentation this build. >> Yeah. >> Sorry I have too many things going parallel and I'm like I need to I need to like step back.
Sometimes I almost wish I wasn't like in tech so I could just ignore all this stuff like everyone else gets to like like so many architects get to completely ignore tech entirely and just like their job doesn't change for like 20 years and it's like I don't know what that like to >> Yeah. I have friends who just discovered image generation. >> Yes. >> And I'm like oh so you're like two years behind. Well wait until you find out what we can do now.
>> Yeah. Another thing we can talk about too. I mean like so many people I talk to don't even really care about AI. Like I think it's really overexaggerated like how I guess like this is just going to change everyone's lives and I'm like I don't know like I think the average person I talk to just doesn't care and they're like I don't know they'll figure out how to send it to me later like the internet and then I'll care about it but until then you can just go muck around with it. It's a tech thing and you want >> yeah there is this fatigue like AI fatigue every week like the best model this that new application you never seen.
It's like and everyone's like, "Oh, come on. Just let me let me load my AutoCAD for fun." [laughter] You know, it gets ridiculous how like everything is overhyped. Now there's this new model Fable 5 and they did it before the IPO or something and like oh my god. And this one is crazy as well. >> Oh yeah.
I've been having a look at it. It's quite powerful. But um it uses like a lot of tokens compared to the old models. That's >> Yeah. Like you pay for it, that's for sure.
But um I guess it's the whole nuking the antill thing that I always keep hearing people say. It's like don't nuke the antill. So it's like Fable 5 shouldn't be used for like everyday basic stuff. It's like you really need an advanced agentic workflow that justifies like using such an intense model. But um >> yeah, I saw a really good meme.
There's like a guy took a gun, put his brush on it, and when you kind of click, you know, it's like kind of kickbacks. He was like brushing. He said and there was like caption like when you use Fable 5 for renaming files. It's like the perfect representation. >> Yeah.
I mean eventually they are going to have to figure out how to package this stuff up in a very simple way. That's the interesting part about AI. Like I think they've they've almost like got in this weird narrative where they assume like everyone's like a programmer and everyone thinks like a programmer and we're all like really great at reading the docs and doing all these things that programmers do. But it's like the the average person doesn't do any of that. Like they just say, "Give me a product.
It should just work off the shelf. Let's go." And I think like they've they've lost a bit of they've oversighted it, I think, in created such a myriad of models and complexities and APIs and the average person just wants Google. Like they're just going to want something really simple. I mean it it kind of I think it's oversimplified already because you can't tell tell it like oh make me a clone of this app or that app and it's like sure here we go. But some people still going to be trying to share local host to their friends and wonder why it doesn't work.
>> You're going to need to combat like a wide variety of skill sets and um right down to like your grandma all the way up to like you know the most complex you know programmers in the world. Like I just I mean I show like even like chat GBT to like my family cuz they barely use it like most of them aren't anywhere close to tech and they don't even realize you can attach files to it and things like that. It's like that the UI UX is going to be such a big challenge for them to navigate to make sure that this thing feels like anyone can use it. Like it's not too complex. It's not too techy.
Like even where I work, we have people that are just like AI is for the tech people and I'm like I don't know about that. Like you might want to rethink that. I think it's meant to be for like all of you. Um so like it's just perception of software versus like it's a something so ubiquitous like the internet that you should just all use it eventually. >> Yeah, >> I think the tech people they well they know what kind of to do that with that.
So they are the most excited but at the same time they are the most terrified right now because they understand what actually is happening. They're like oh it can do that now. This is it's great but at the same time it's terrifying. start I see here and there certain projects and I'm like if that's if that's now it looks a little bit shitty here and there but give it two years it's going to be perfect like pixel perfect and I'm like oh >> you you YouTube is going to have a big struggle in like the next couple of years >> just saw a video a guy just he has set up certain things he's like in full automations and stuff just like okay make me YouTube video pretty much that's it left to the gym came back there's like full video with his avatar his voice full-blown video animations based on what he's talking about. It's very very >> You can still see artifacts.
>> They're fairly clear, but still you see it's like 90% there. And I'm like, "Holy shit." >> But I think that's going to lead to like a revisitation of the type of concept, the type of content people accept. Like I think people are eventually going to realize like they're watching an AI format. Like if you're ever watching a video that changes every 4 to 5 seconds, that's AI because they can't hold like video context long enough to keep a scene going for over about 5 to 10 seconds before you start to notice weird things going on in my experience. So you'll notice they change scenes like very frequently.
Um or they never have a person on the screen that's talking because you'll realize the audio just is uncanny valley compared to the person talking that's like still quite obvious I find. So like there just like >> but that's what I'm talking about. There's like five minute full-blown video, the guy on the screen. There are like animations where he kind of becomes smaller and bigger, but it's close. It's We're almost there.
>> It'll get there. It'll definitely get there. >> But then I think we're going to see a bit of a resistance, especially from younger generations where they're actually going to seek out content that can be provably not AI generated. They're actually going to reject it to some degree. Like you might have seen the um university speech with Ronnie Chang.
Um I think it was a week or two ago and he just started it off by saying like FAI like screw it. like let's let's let's beat it. Like we don't need this. And like everyone in the audience was cheering and it was like a whole university of students that just don't they don't want it. And I was like there's gonna be a big resistance to this.
I think especially in the younger generations where there's no jobs anymore for them because of this. So >> it's like how do you sell it to like the next generation of consumers? >> Yeah. I mean I don't know. The thing is that I also resisted AI for so long.
But now I'm at the point where like I cannot resist it. like I actually need to show people how to use it because there's like so much you can do. >> You can't avoid it. But it's just like knowing I guess it's how you use it though. It's like are we being you know socially conscious?
Are we being um responsible in our professional obligations? That's that's more the bigger picture with AI use. I think it's like you can't be like reckless in how you use it, right? Like that's that's >> um and I think we use it but we're being careful with the ways we use it. Yeah.
>> Yeah. Yeah. Also, I think there is like this thing like, you know, we spend years learning this craft from like Stack Overflow, Google, the hard way. We learned it and now we kind of trying still hold on to the skills and kind of >> I don't know. I noticed that internally it's not it's something subconsciously like I I try to pretend like AI maybe not as good.
You still kind of need to get deeper into that and you still kind of have to understand like the basics and stuff so you can even take the full advantage of that to understand what's going on. But at some point I was like, am I resisting it because I'm kind of afraid of it that it's replacing what I learned so hard or is it just you, you know, there's some weird internal >> dialogue happening. I can't really explain it. Well, >> to some degree there is I think yeah, that that aspect of it's not quite denial. It's >> maybe just um I mean some of it's probably jealousy that we had to do all that those hard yard [snorts] like oh god.
>> It's like these lucky kids that don't have to do it. But then it's like in skipping that, do you miss out on that core, you know, um, mindset that helps you be a better programmer? It's like, is that possible to still have if you skip the steps and jump all the way to like writing a problem, get some stuff back, do you think like a programmer anymore? Can you take a business problem and convert it into a piece of software anymore mentally? Because for me, like I when I go through prototyping and briefing with like the the people in my company, there's still like a pretty intrinsic skill set that's mentally like built into how I think and approach it that I don't think I'd have if I hadn't went through all of that.
And I'll be curious to see what the younger developers look like in in our industry in particular, how they approach problems versus before they even code. Um, but you wouldn't begin with a prompt, you begin with a question to a person. like it's like that process is so important to building something that's useful in business. So I wonder if that's going to be intrinsically missing from from that generation until they sort of realize how to you know get born in the fire and the baptism of fire of you know learning those skills through failure at a business level. >> I see.
>> Yeah, it'll be interesting. But um I know what you mean. [clears throat] There is that >> that weird feeling of like you know am I am I the old guy now? Am I the you know >> Oh yeah. [laughter] Oh yeah.
Yeah. kids are going to come and take my job and no one cares about my addins anymore. It's it's it's a funny phenomenon, but um but we'll see. I guess I think some >> it also happens subconsciously. >> Yeah, >> cuz the thing is that it's not something like I really think like I'm not going to talk about it because I it's just like it kind of you just become biased.
That that that's it. I think >> I think we all carry our biases no matter what we do. It's hard to avoid. >> Yeah. Yeah.
Of course. So um yeah, >> but the thing about also intelligence and what you're talking about is that they are now starting kind of pivot to the point where prompting is not does not matter as much. For example, for Fable 5, they now like release that the less you give it the better actually because then it can figure out all the steps for you instead of you explaining make me all these steps and then it kind of have to follow even though it's super good at ignoring you. That's also something they focused a lot. They going to take your prompt.
they're going to ignore half of what you're asking. They still going to deliver kind of what you asked, but they're going to come to that kind of themselves because they realize like uh in the beginning there was like all the super prompters writing this kind of huge like 40 pages docs just to drop it in ChatGPT. Now AI does it kind of internally behind the scenes. You don't even need to worry about it. >> That's also quite scary because now some people just okay make me Minecraft.
Literally that's the prompt. It it does it >> and you look at it. It does it. works. >> But what if you say like maybe something no one's ever seen before.
It's like what would you get out? That's >> the That's the thing. >> It's like sure there's a million pictures of Minecraft. There's all these code repos people have written already. I'm sure it's got a lot to draw upon.
The interesting >> Yeah. There are probably on GitHub like hundred kind of replicas of Minecraft. So it knows like ah just going to copy this repo. Bada boom. >> Yeah.
And it just builds some crappy 3D Node.js thing that doesn't app instancing or multiplayer or anything. So, like it'll be interesting to see how it deals with the I guess the creative requirements that I think people are eventually going to want AI to have where it's like don't just make something derivative like make me something new, work with me and don't just go and pull on something that you fall back on um that exists already. And I think that'll be interesting. That's where I guess AI teaching AI that's going to sort of have to somehow figure itself out to >> get ahead of some degree and say, well, if you left someone in a room for 100 years, what would you get? Well, now we can put an AI in a box for a minute.
You know, that that might be the simulation. Um, so like I think that's the endgame for AI. How can we get it to be creatively so derivative but so creative that it creates basically new things out of derivation that the things that you wouldn't combine in such a way before that create new ideas. That's >> that to me is the end game and the really exciting point with AI. If it gets to that point, I think I'll be quite excited by like, okay, now it is literally just like creative.
Um, but right now it seems Yeah. very derivative. >> Yeah. >> Yeah. There are ways to kind of hack through, but still it's derivative even though you not just kind of copy copy pasting.
You're more like stealing like patterns like you take you can take a website and take the patterns like for example I'm doing this stress testing. I have like actually prepared we're going to go through this. I have like eight different examples in Star Wars, Harry Potter or Mario, Minecraft styles and they look very similar but >> just a bit more fun. >> Yeah. It it forces us to confront the fact that we as humans are we are creative but usually our c creativity has come from some combination of derivation of ideas like it's very hard to say this thing is entirely unique and it's never been done before and I didn't get influenced by any external forces to make this idea like subtly and subconsciously we probably built this creative thing out of things we already know or have seen or been influenced by um obviously someone at some point had to discover fire and those sorts of things where it's like accidental creativity, but like eventually you're playing with building blocks of things that exist.
So like I don't want to say that AI can't be creative derivatively cuz I think a lot of us are um naturally we just don't think about it that way. >> Um but yeah, just to the point where it's so creative that you you you don't even know where it's pulling stuff from. It's just creating something that seems so new to us that you know we would have eventually built it if we sat in a room long enough. But like that that will be I think the exciting point for me where I'm like okay this is going to [clears throat] take my job because >> it can be creative like yeah >> yeah I mean at times I feel like it's creative but then when you see it for the first time you're like oh this landing page is super creative but when you used it for like mom's doing this thing I'm like I start seeing the same patterns everywhere other people websites I'm like that's clo that's 100% cloth this is not even like Gemini it's like I know I know this Yeah. And that's about the change of like almost like model collapse to some degree.
It's not completely model collapse, but it's just like creativity collapse where they do start falling back on their own inherent patterns like we as people do. Like it's like is there a risk that eventually they do become like so strict as a personality of a model that it's like it just has a thing where it's like this is what I'm going to do. You know, I'm going to do it. It's what I'm going to do. And that's the point where it's like, has AI sort of lost its cell at that point because now you're just working with like an intern again and it's not really like you're working with a, you know, creative graphic designer, you're working with someone that just looks at someone else's thing and that's it.
It's done. Um, so it'll be interesting in version how they can get past those sort of natural learning patterns that they sort of pick up over time. >> Mhm. >> Very philosophical, but yeah. >> Yeah.
Yeah. There are like so many. You cannot predict anything. Uh listen, I'm going to interrupt you. Just need to send out an email and we need to figure out if anyone is here.
>> Hello. Okay, some people joining. Um okay guys, if there is people here, we're just going to continue talking. We might use the chat somewhere. In the end, we're definitely going to ask you if you have any questions.
For now, I guess we're just going to continue as we've been talking before because we're already kind of doing the podcast for the like 15 20 minutes. [laughter] We couldn't hold it. So, where do we begin now? Yeah, it just breaks the flow, isn't it? >> That's good.
Let's start fresh. Um, just recap um yeah, what we're here for and um sort of set the tone for the podcast and then we can go from there. >> Uh lately, I becoming like more and more lazy with these intros before I was like preparing, making some little script and less and less. Then I was like, "Okay guys, here's uh podcast number nine, something like this, and then we just roll in." I think it's just going to I'm just going to do some kind of intro afterwards. It's just going to be more natural >> cuz also it's always so weird make this intros.
I just look in the screen, pretend you're not there and I'm talking and you just sit there like, "Oh, he's done." >> Informal. Informal definitely to me as well. Yeah. [laughter] >> Yeah. So, whatever.
Like, I'm going to figure out I'm going to edit it anyway. Some people will see this. That's fine.
A 20-Year Revit Veteran on Revit, pyRevit & AI | pyRevit Podcast #8
Fully Agentic AI Development for pyRevit with Jonatan Jacobsson | pyRevitPodcast #7
Real-World pyRevit Hooks + PowerBI with David Vadkerti | pyRevit podcast #6