Fuzzing while Testing in Go
19:48
3 ай бұрын
What is Zig?
2:18
7 ай бұрын
Пікірлер
@djpremier333
@djpremier333 3 күн бұрын
Great tutorial, thanks a lot
@CodeWithCypert
@CodeWithCypert 2 күн бұрын
Glad it was helpful!
@thejoltjoker
@thejoltjoker 11 күн бұрын
Have you gotten the role based authentication with database persistence to work?
@CodeWithCypert
@CodeWithCypert 7 күн бұрын
I haven’t looked into that, yet, but probably should! Is that something that Authjs is intended to support? If not, you could probably just store the role in the DB and look it up from a hook and store it in Locals
@thejoltjoker
@thejoltjoker 7 күн бұрын
@@CodeWithCypert they have an example in their documentation, but I can’t get it to store the role in the db so I was wondering if other people have the same issue..
@AudreyDay-k5x
@AudreyDay-k5x 13 күн бұрын
Gonzalez Angela Rodriguez Charles Brown Mark
@JohnnyYates-b5r
@JohnnyYates-b5r 20 күн бұрын
Perez Frank Walker Sarah Gonzalez Michael
@dominiqueberry1307
@dominiqueberry1307 25 күн бұрын
Thanks for sharing this. I completed this challenge and was curious how someone more experienced with the language would solve it. I was floored when you mentioned the "flag" package. I have to go back and put that in.
@CodeWithCypert
@CodeWithCypert 25 күн бұрын
I’m glad the video was helpful! How did you handle flag parsing? Just parsing the args manually?
@wanderingzanzey2126
@wanderingzanzey2126 29 күн бұрын
This isnt entirely true. Passing by reference is _only_ valid if the value itself has a large-to-copy footprint or if you need to manage the same memory sector/operate on the same memory sector. Pointers introduce indirection (known as pointer indirection) and this can actually _reduce_ performance in a lot of situaitons. Especially when operating on multiple layers of indirection. It is often _quicker_ to use the heap and pass by value. Especially with primiative types. You should NEVER pass in a primitive type by reference, this introduces more clock cycles than necessary for no reason. Now, in GC languages, this only holds in some cases as the GC will often handle the memory differently than the human is expecting and passing by reference in a GC is often a _recommendation_ to the GC on how to handle that memory and is often not taken into account if the GC can do it better than the recommendation from the developer (of course, there is a lot of nuance here).
@CodeWithCypert
@CodeWithCypert 28 күн бұрын
This is a really great perspective and a ton of great information. Do you mind if I pin your comment so others will hopefully see it and read through your contribution as well ?
@wanderingzanzey2126
@wanderingzanzey2126 28 күн бұрын
@@CodeWithCypert Not at all, feel free. I would like to make an addendum that most modern compilers are capable of optimizing poor pointer usage (especially when using reference counted pointers like c++'s smart pointers), and that pointer indirection is largely an issue when the cpu can't do prediction or you are working with the cpu cache (like in hashing algorithms or other types of computationally intensive algorithms). There is a lot of nuance here that i can't really fit into a youtube comment - but my overall point is still valid. Just remember that a pointer requires a jump (in most cases). Jumps are not always what you want to do ;)
@Jakeplusplus1
@Jakeplusplus1 Ай бұрын
Looking forward to the series! Started poking around CodeCrafter's site, and it seems great! Cool stuff, Brad! How much do you dig Zig?
@CodeWithCypert
@CodeWithCypert 28 күн бұрын
Not as much as I had hoped. I’ll probably continue doing challenges in Go in the future.
@Jakeplusplus1
@Jakeplusplus1 Ай бұрын
I appreciate you walking through your process for learning a new language from the point of view of being familiar with others. It's something not frequently captured on any media.
@CodeWithCypert
@CodeWithCypert 28 күн бұрын
It was a lot harder than I thought
@brandyhousemedia9042
@brandyhousemedia9042 Ай бұрын
Great Video. Shared on Facebook. 😊
@CodeWithCypert
@CodeWithCypert Ай бұрын
Thank you so much !
@amanbhardwaj934
@amanbhardwaj934 Ай бұрын
thanks, bro it was a headache.
@CodeWithCypert
@CodeWithCypert Ай бұрын
The video or your commit process? 😅
@amanbhardwaj934
@amanbhardwaj934 Ай бұрын
​@@CodeWithCypert The process but now I understand.
@CodeWithCypert
@CodeWithCypert Ай бұрын
Great! I’m happy it helped!
@kevinkelche8478
@kevinkelche8478 Ай бұрын
Great stuff. BTW what vim plugin are you using for the proto files?
@CodeWithCypert
@CodeWithCypert Ай бұрын
I believe I installed it via Mason. Lemme try to find out.
@CodeWithCypert
@CodeWithCypert Ай бұрын
Yup, have it installed via Mason but this is it: github.com/bufbuild/buf
@TimboMcKay
@TimboMcKay Ай бұрын
very nice. how long did this take?
@CodeWithCypert
@CodeWithCypert Ай бұрын
Many, many months :)
@shateq
@shateq Ай бұрын
6:01 that's right, quite helpful a video!
@CodeWithCypert
@CodeWithCypert Ай бұрын
Glad you found it helpful!
@kamil_supabase_enjoyer
@kamil_supabase_enjoyer Ай бұрын
Nice!
@CodeWithCypert
@CodeWithCypert Ай бұрын
Thank you! Cheers!
@Jakeplusplus1
@Jakeplusplus1 Ай бұрын
I haven’t worked with pointers for a bit, but this is an excellent point. I like having the option of passing by reference or value and being able to control that myself. Pointers are definitely the best option for that. Really clears up confusion. Also, I like the slightly more in-depth, yet still short form of this. It’s a very consumable size where I can still learn something, but am not mindlessly swiping through.
@CodeWithCypert
@CodeWithCypert Ай бұрын
Thank you for the feedback, Jake! I always appreciate your perspective!
@blaisepascal3905
@blaisepascal3905 Ай бұрын
Nice video! Still a lot of capabilities and opportunities in R. I use both Python and R, but I prefer R for data analysis and statistical analysis by a large margin.
@CodeWithCypert
@CodeWithCypert Ай бұрын
Thanks for sharing that! I feel as if its been trending downwards over the past few years but its great to hear from someone using it more regularly! Do you think the trend will reverse and head upwards, stay the same, or go down?
@blaisepascal3905
@blaisepascal3905 Ай бұрын
@@CodeWithCypert I think it will keep going down, but I do not think it is related to people using R less but just how Python is used relatively. For instance, in 2015 many useRs (R users) started learning Python for data science because of the hype it had back then. But most of them still use R for data science (particularly for data manipulation, visualization and statistical analysis). Also there are people like me that started wih Python and went to R I still use Python, but I use Python, R, Julia or Nim based on the project. Now we are seeing another wave of useRs interested in learning Python because of the AI developpement that are mainly done with Python. You can do machine learning, deep learning and train AI models in R. But there is not as much documentation and support as in Python. I think R won't go anywhere because it is still the default option in statiatical analysis (has the biggest ecosystem in statistic). It is still heavily used in academia/research but also out of academia in specific fields (statistic, psychology, social science, health science, linguistic, natural science, etc.). It is still in developpement and companies like Posit work to make it suitable in data science, but also to integrate it with Python. Unless R comes up with new features that will make a difference, I don't think it will increase in popularity over time. On the other hand, I don't think it's going to disappear any time soon, since it's being used more and more.
@CodeWithCypert
@CodeWithCypert Ай бұрын
You’ve really put some thought into this! Thank you for sharing that with me!
@roon1sicunt
@roon1sicunt 12 күн бұрын
R user here. For data scientists, Python is doing its best to compete but R will always have the upper hand I think. I've had to use Python for some jobs (GIS and and ML things ) that R struggles with at the moment, but for any kind of data simulation, analytics, and especially data presentation Python can't come close. Things that make R so good IMO is the amazing package handling, and the intuitive (from a stats perspective) language. It's handling of notoriously troublesome datatypes such as datetime is also impressive. When it comes to large datasets, cross language libraries like Rcpp make parallel processing a breeze and of course you can't talk about R without mentioning the bespoke IDE, RStudio. It honestly feels like home for most datascientists. It's so beautifully made and allows beginners and professionals to take full advantage of the language. Some issues like git handling could be improved, but theres a neat little terminal in Rstudio to take advantage of powershell or bash if you're so inclined.
@serhiiherasymov4809
@serhiiherasymov4809 Ай бұрын
Very informative video. Thank you ❤
@CodeWithCypert
@CodeWithCypert Ай бұрын
I’m glad you found it helpful!
@frostbiters8509
@frostbiters8509 2 ай бұрын
Very informative; the angelic voice guiding my every thought is a major plus. Keep it up, pookie.
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
I’m not sure about the angelic part, but thank you! I appreciate it!
@jakest.germain2475
@jakest.germain2475 2 ай бұрын
Great and INFORMATIVE tutorial. I can tell that you genuinely want to share and teach information to help your fellow devs. Keep up the great work!
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
Thank you! Teaching is one of my favorite things to do, so I’m glad that’s showing through!
@Jakeplusplus1
@Jakeplusplus1 2 ай бұрын
I like the concept of the proto file. Having those definitions agnostic of the language would be so beneficial to multi-language applications. Cool stuff!
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
I agree! I probably should have built the client in a different language to drive that home, but here we are with it all in Go lol
@Jakeplusplus1
@Jakeplusplus1 2 ай бұрын
@@CodeWithCypert that might make for an interesting follow up Short that you could add to the description.
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
Prefer a text-based version? Find that version on my blog here: www.bradcypert.com/an-introduction-to-targeting-web-assembly-with-golang/
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
Prefer a text version? Find the whole post on my blog here: www.bradcypert.com/grpc-fundamentals-with-go/
@inifitecosmos
@inifitecosmos 2 ай бұрын
great content
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
Glad you found it helpful! Would you mind sharing it with someone else who would find it helpful, too? :)
@nothing_is_real_0000
@nothing_is_real_0000 2 ай бұрын
Hi Brad, thanks so much for great tutorial on getting started . This has really helped me to get started with Supabase auth. Though this may be obvious to you, for someone getting started it'll be helpful if you could add things like how to manage "logged stages"/view members only page, and some other regular stuff like forgot password.. Still thanks again for great tutorial!
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
Glad it was helpful! That’s a great suggestion!
@dereklomax161
@dereklomax161 2 ай бұрын
This is my favorite part of F# It feels quite like she'll piping and is awesome!
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
You're right! It does feel like shell piping! Thanks for watching my video, Derek! It means a lot to me!
@binhu9267
@binhu9267 2 ай бұрын
❤would be great if the code can be made public. Thanks 🎉
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
I have been adding to it in a way that I don’t feel comfortable open sourcing yet, but I have plans to refactor that to something a little more shareable. Sorry for the delay.
@SimonLacey-MySleekDesigns
@SimonLacey-MySleekDesigns 2 ай бұрын
Great dev work. Good luck.
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
Thank you!
@juanmacias5922
@juanmacias5922 2 ай бұрын
Side projects are where your skills grow. :D
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
Couldn’t agree more
@alexanderzikal7244
@alexanderzikal7244 2 ай бұрын
Great advice of course! I am also look the source-code of std:lib itself and learn the implementations and the ways writing interfaces.
@CodeWithCypert
@CodeWithCypert 2 ай бұрын
That’s really great advice, too. Reading the standard library is a great move!
@someshsahu4638
@someshsahu4638 3 ай бұрын
nice explanation thank you so much 👌🏼
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
Glad it was helpful!
@rogsninja
@rogsninja 3 ай бұрын
So with animation being that simple when are we getting fulling animated skills and spells for all of Memories of Sheol
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
When the game is profitable enough to hire someone to animate all of that :)
@tusharchander8935
@tusharchander8935 3 ай бұрын
neat.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
I’m glad you think so!
@tusharchander8935
@tusharchander8935 3 ай бұрын
@@CodeWithCypert You could have used animated_do . But once in a while knowing about Flutter is also essential rather than heavily relying on libraries.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
@@tusharchander8935 I generally try to avoid libraries for one off type things, but I haven’t explored animation packages for Flutter. That might be a fun thing to do, too!
@tusharchander8935
@tusharchander8935 3 ай бұрын
@@CodeWithCypert Well you would just require a SlideUp property from this library. You would be simply wrapping your widget to be animated, be it text widget, Quite easy.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
Yeah, that doesn't sound bad, but I factor in the cost to maintain the dependency, too -- which might sound weird, but hear me out: When you pull in a dependency for anything, you're pulling in that package and it's dependencies. Thankfully, dart is compiled so we can only pull in the pieces we need, but we also can run into version conflicts between our dependencies' dependencies. My main app, Luna Journal, uses a LOT of third party dependencies and upgrading certain dependencies is often a nightmare because of this (and upgrading the Flutter version ALWAYS is too, for the same reason). So generally, I just try to avoid extra deps when I can because I find that overhead isn't worth it for small, one-off things. Things like Bloc though, I think the overhead is worth it when it's used all throughout the app :) What are your thoughts, Tushar?
@MattRobinsonDev
@MattRobinsonDev 3 ай бұрын
Never heard of fuzzing, seems similar to mutation testing in other languages? Pretty cool
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
I haven’t heard the term mutation testing, but I’ll check it out!
@juanmacias5922
@juanmacias5922 3 ай бұрын
Man, I love C++, and Python, and Go just seems like a mix of both's syntax, but I just don't get it haha maybe in the future I'll take some time to use Go for a back end project. Thanks for the video.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
One of the things I really like about Go is that you can usually pick it up and build something in a few days, given you already know programming and are familiar with another language. I think it's worth making some time to give it a shot :)
@juanmacias5922
@juanmacias5922 3 ай бұрын
​@@CodeWithCypert yeah, that's usually how it goes, you just apply your experience of another language, and search "what is the Go method of doing x in Python" haha that's how I've been switching between C++ and Python for the daily Leetcode problems.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
@@juanmacias5922 C++ and Python are two very different beasts though! Congrats on picking up that ability!
@spoonikle
@spoonikle 3 ай бұрын
Go interfaces make me happy.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
Me too, Me too.
@rogsninja
@rogsninja 3 ай бұрын
This extends to just understanding the business the tools you build are providing for. It may seem like a obvious thing but you will be surprised how many people work on/build a tool when not having a full grasp on the business process that it will be used for. Just taking the extra time to go through that will help solve or identify alot of issues down the line.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
Couldn’t agree more. We live in a world where a lot of people have gotten into software engineering by delivering results, but maybe don’t really understand how things work under the hood - and that’s okay, but I think everyone would be a better engineer if they were to take a step back and figure out how things work under the hood.
@mischak.605
@mischak.605 3 ай бұрын
Hi! By mistake i took use_exact_alarms and then got warning message from google play console. I removed it later on and uploaded new build, but still have this warning message and there is no option to inform google, that i dont use it anymore. Do you know what can i do? got time until 30.06 to answer the form. but i only have an option to say that my app is calendar or alarm.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
I don’t, actually. You may have to contact Google support to get that changed.
@mischak.605
@mischak.605 3 ай бұрын
I could solve it! There is only one option what helped. To upload new builds everywhere in my tracks( closed test, internal test...) where my old builds were using exact alarms..and i uploaded new builds without using this line in manifest. This 'replaced' my error builds and warning message is gone😅
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
Glad you were able to solve it and thank you for sharing what you learned!
@slavic_commonwealth
@slavic_commonwealth 3 ай бұрын
I enjoyed watching this video thanks Brad
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
Glad to hear it!
@devon9374
@devon9374 3 ай бұрын
C is S tier, come on man.
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
For new devs? I’m keeping it in C tier for new devs. It’s a strong and fantastic language, but I wouldn’t recommend people to start with it unless they know they want to work on things predominantly written in C.
@LandonGavin
@LandonGavin 3 ай бұрын
Alternative title: “Git Good at Pull Requests”
@CodeWithCypert
@CodeWithCypert 3 ай бұрын
That’s punny! Wish I had thought of that sooner!
@OfficialSkankyRich
@OfficialSkankyRich 4 ай бұрын
Try not to read the content and just memorize it! Good advice, presentation is 1/10, thank you in advance please!
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
Thank you for the feedback! I do sincerely appreciate it.
@HolocaustShmolocaust
@HolocaustShmolocaust 4 ай бұрын
Where can I find a software engineering mentor?
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
I’d check if your work offers any programs to help with this! If not, LinkedIn is would be my next place to try!
@phix3471
@phix3471 4 ай бұрын
Test. This is what it'll look like <pre>global function annotate(sequence board) integer h = length(board) sequence res = repeat(0,h) if h then integer w = length(board[1]) for y,line in board do string outline = "" for x,ch in line do if ch!='*' then integer m = 0 for i=y-(y>1) to y+(y<h) do for j=x-(x>1) to x+(x<w) do m += board[i][j]=='*' end for end for if m then ch = '0'+m end if end if outline &= ch end for res[y] = outline end for end if return res end function </pre>
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
??
@WillEhrendreich
@WillEhrendreich 4 ай бұрын
here's the fsharp version of what I think you're trying to do : let annotate (board: char array array) = let h = Array.length board let w = Array.head board |> Array.length let memo f x = let cache = System.Collections.Generic.Dictionary<_,_>() if cache.ContainsKey x then cache.[x] else cache.[x] <- f x cache.[x] let isInBounds x y = x >= 0 && y >= 0 && x < w && y < h let isMine (x ,y) = isInBounds x y && board.[y].[x] = '*' let memoIsMine = memo isMine let countMines x y = [x-1, y-1; x, y-1 ; x+1, y-1; x-1, y ; x+1, y ; x-1, y+1; x, y+1 ; x+1, y+1;] |> Array.ofList |> Array.filter memoIsMine |> Array.length let mineCountCharOrBlankSpace x y = match countMines x y with | 0 -> ' ' | n -> n |> char let mineMineCountOrBlankSpace x y ch = match ch with | '*' -> '*' | _ -> mineCountCharOrBlankSpace x y let processRow y row = row |> Array.mapi (fun x ch -> mineMineCountOrBlankSpace x y ch ) board |> Array.mapi processRow
@henryconner780
@henryconner780 4 ай бұрын
Its a good tip for sure! Can also help you with your confidence its like: "I don't need help with the whole code, just this one damn line! I promise!" Thats what I tell myself at least xD
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
That’s a good point too! I hadn’t thought of the impact on confidence
@alexlowe2054
@alexlowe2054 4 ай бұрын
Short, straight forward, and simple. Good concrete advice, which basically boils down to clearly communicating the required information when asking the question. Communicating more information means there's less back-and-forth, which minimizes opportunities for communication mistakes. Very nice. Asking clear and direct questions has another bonus, which is that by asking very specific questions, you must understand what you're struggling with. Asking better questions often leads you to the correct answer, because you've taken more time to think about the problem.
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
That’s a really great insight, Alex! I should have mentioned that, too.
@michel-ele-mesmo
@michel-ele-mesmo 4 ай бұрын
Great video. Clear and easy to understand, just like you recommended in the video.
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
I’m glad you found it helpful!
@Meleeman011
@Meleeman011 4 ай бұрын
i wonder if this would work on chat gpt
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
I think specifics are pretty helpful for LLMs too
@RPD_ps
@RPD_ps 4 ай бұрын
I got this video randomly on my recommended fee and clicked on it without checking the length. I expected this to be a 15min video essay on the topic because that's how most recent videos are. But it was super concise and clear, love it!
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
Thank you for the feedback! Time is precious and I’m not looking to waste anyone’s!
@CadenLevett
@CadenLevett 4 ай бұрын
Excellent guide for specific questions. On similar note, when doing code reviews, asking questions are more effective then throwing opinions at the submitter. Being curious will inspire collaboration were dictating will put people on the defensive.
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
I have a video on PRs on my list! I share the same sentiment there and that senior engineers should use PRs for mentorship opportunities! I just need to record the dang video :)
@reyreyalldayday5708
@reyreyalldayday5708 4 ай бұрын
On the video. Great advice. Its always best to be clear, concise and tick off possible fixes to narrow down the problem. Chances are the co worker has been down that same road before.
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
Thank you! I agree with you!
@reyreyalldayday5708
@reyreyalldayday5708 4 ай бұрын
I have that same vacuum
@CodeWithCypert
@CodeWithCypert 4 ай бұрын
How do you like it? I loved it at first but we’ve had it for many years and the battery doesn’t last long anymore.