Anthony, no bullshit programmer.
► Exclusive tutorials, Mini Courses and projects, Resume and project reviews 👉 thetotalcoder.com
► My amazing Golang course 👉 fulltimegodev.com
► Join my Discord community for free education 👉 discord.com/invite/Ac7CWREe58
For business inquiries:
[email protected]
Пікірлер
'g?' for keymaps, 'a' for new folder or new file in nvimtree
❤️
I don't use channels unless something is asynchronous forever. I just sense I'm wasting code harvesting channel results, when mutexes allow for arbitrarily large expansions into accepted containers.
Except the market for JS devs is heavily saturated. Thanks bootccamps!
Not using templ... yet :)
hide your girl X-D
i was using templ + htmx with echo or fiber but i guess i'm excited to try it with chi
what theme in vs code are you using?
Just subbed. Just a suggestion, a high pass filter (or low cut filter) would help with audio quality. Another option would be to increase the distance of the mic to avoid low frequency 'pops'. Thanks for the content.
You should install a nerd font so you have proper icons in your neovim. Some of the icons are just showing as question marks
Finally I found a good config for HTMX, tailwind and go chi. Now I can plug this into my my blog 💜
Laravel Ultimate version ... bruhhhhh ....
Are you aiming for this to be horizontally scalable? I love pocketbase but its main downside is that you cant scale it 1. Because db is sqlite but 2. Because the way its architectured in terms of its lifecycle events
You can use msql or something else as well
This is great. Thank you
Bro, missed a ton 'cause of exams! This looks 🔥 Gotta catch up and jump in on this.
Perfect explanation. Thanks
"zoom in for the blind homies" thanks soo much bro my eyes are bad it really helped
Why aren't generics being used for the event handler payloads?
You cant.
Here are timestamps for all the different components - 03:23 🧰 Initial steps include setting up a makefile, initializing a Go module, and organizing project structure. - 05:16 📚 Detailed explanations are given about designing interfaces and structuring code for TCP transport handling. - 07:10 🛠 The presenter emphasizes good coding practices, such as documenting functions and organizing code logically for readability and maintainability. - 13:42 🏆 The tutorial promises to provide in-depth knowledge and skills to distinguish viewers as proficient engineers in Golang development. - 25:19 🤖 The presenter discusses the importance of defining a common interface for different transport types, ensuring flexibility and scalability in the system architecture. - 29:44 🚪 Implementation details include constructing TCP peers, distinguishing between inbound and outbound connections, and organizing code with clarity and documentation. - 30:12 🛠 When building from scratch, providing clear and verbose naming conventions can help avoid issues. - 31:05 🤔 Consider using interfaces for communication channels to maintain flexibility in the implementation. - 35:26 🤝 Handshakes in TCP connections are crucial for establishing trust between peers before further interaction. - 37:11 💡 Implementing handshake functionality through interfaces allows for easy adaptation and customization. - 40:37 🔧 Iterative development with continuous feedback is valuable for refining code and improving understanding. - 49:44 ⚠ Implementing error handling strategies like spam protection can enhance the robustness of peer-to-peer connections. - 55:08 🖥 Consider carefully orchestrating handshake and decoding processes in TCP connections to avoid conflicts. - 01:05:36 🛠 Messages represent arbitrary data sent over a network between two nodes. - 01:07:48 🧠 Creating a custom encoder may be necessary when dealing with non-standard message formats. - 01:11:07 🤔 Consider providing default implementations like "NotEncoder" and "NotDecoder" for users' testing purposes. - 01:15:01 💡 Using a generic message format allows for flexible communication, depending on the platform and payload. - 01:20:28 🔗 Continuing in the next episode, the focus will be on completing the distributed storage system and possibly exploring peer discovery within the library. - 01:39:38 🔍 Addressing errors in network connections is crucial for maintaining the stability of distributed systems. - 01:41:22 🛠 Handling errors gracefully in network operations is essential for robust system behavior. - 01:45:47 🗃 Exploring Content Addressable Storage (CAS) for file storage allows organizing and retrieving data based on its content. - 01:49:20 📁 Developing file storage functionality involves creating structures and methods for storing and retrieving data efficiently. - 01:54:30 🧪 Testing file storage functionalities is essential to ensure they work as expected and handle various scenarios effectively. - 01:58:17 🛠 Designing and testing custom transformation functions for file and folder naming improves organization and efficiency in file storage systems. - 02:11:54 🗃 Storing data in a distributed file system requires careful consideration of how to manage file paths and content. - 02:12:27 🔑 To facilitate file retrieval, it's essential to store the bytes of the content along with the key and hash the content for file naming. - 02:13:11 📄 Introducing a structured data type like a "pad key" can simplify file management by encapsulating path and original key information. - 02:16:56 🔒 Proper file handling includes closing files after use to prevent resource leaks and ensure efficient memory management. - 02:19:36 📝 Wrapping low-level file operations with higher-level functions can enhance code readability and usability. - 02:22:00 🧹 Implementing file deletion functionality is crucial for maintaining a clean and efficient file storage system. - 02:42:48 📁 When deleting files, ensure to remove associated directories to maintain consistency and avoid unexpected behavior. - 02:49:01 🚀 Comprehensive testing, including setup and teardown procedures, is vital for verifying the functionality and reliability of a file storage system. - 02:50:36 🐛 The code needs adjustments to handle default values properly, especially when dealing with interfaces. - 02:51:19 📁 Adding a root directory to the file system requires careful consideration, including default values and error handling. - 02:55:19 🧹 Testing helper functions like tear down and clear can streamline testing and ensure a clean environment for each test run. - 03:07:21 🛠 Regular maintenance tasks like adding new functions and optimizing existing ones contribute to code cleanliness and efficiency. - 03:08:14 🔧 Utilizing helper functions for testing, such as `newStore` and `tearDown`, can simplify test setup and teardown procedures. - 03:13:08 🧪 Testing multiple functionalities in a single test can help ensure comprehensive coverage while maintaining test clarity and efficiency. - 03:19:46 🧐 Ensure expected file names and paths match for proper functionality. - 03:20:49 🚀 Building basic functionalities like read, write, delete, and test for key presence is a solid start. - 03:21:32 💡 Refactor code for better readability and efficiency, such as improving error handling. - 03:22:15 🔒 Expose necessary functionalities as private functions for better code organization. - 03:23:08 📦 Start creating the server structure with required options like listening address and storage root. - 03:24:11 🛠 Configure server options and initialize necessary components like the store. - 03:26:54 🔄 Implement logic for integrating the server with peer-to-peer communication. - 03:28:43 📡 Establish TCP transport and handle listening and accepting connections. - 03:31:33 🤔 Consider encryption for files and plan implementation in upcoming iterations. - 03:43:17 ⚙ Design the server loop for handling incoming messages and user actions. - 03:49:13 🧹 Implement cleanup procedures like closing connections and handling user-initiated stops. - 03:53:54 🛠 Error handling is crucial when closing network connections to ensure proper cleanup and prevent runtime issues. - 03:54:38 🌐 Connecting and exchanging messages between servers is the next step, including peer discovery and gossiping. - 03:55:22 📡 Initial peer connections will be based on a predefined list of bootstrap nodes for simplicity. - 04:02:19 💡 Debugging errors, even if they seem trivial, is an essential part of development and learning. - 04:10:39 🤔 Reflecting on coding practices, like comment punctuation, can prompt interesting discussions but may not significantly impact functionality. - 04:11:09 😅 Embracing mistakes and learning from them is part of the development process, even if they're embarrassing.
Do you plan to write tests?
I'm not sure if I'm in a bubble or something, but GO seems like its gonna skyrocket. I'm not a big javascript or Java dev, but man is Go smooth and fun. With things like Superkit that make it even more easy, I don't see why would anyone use anything other than Go. GG Anthony, really well played.
Beautiful
Thank, is it free? I'd like try
Thanks for the Input Anthony
man this was interesting - but Anthony - what key factors should be your baseline while handling such an assignment - I am job hunting by the way - so such resources are gold mine to me
no more gruvbox theme 😥
Is this your gothkit renamed?
Can I add a terraform aws ecs or ec2 deployment automation as a contribution?
I just started learning golang few days ago, and this thing now poped on my page. I really find idea of this awesome and will 100% try it out once I advance with a go a little bit. Now, I use a little bit weird stack for my web apps, so its React (sometimes with remix) on frontend, and I would love to have golang on backed. So what I think it would be nice while creating project with superkit is to select if I for example want my app to be go and htmx, go with vue, go with react etc... I think that would actually be nice addition to this. Again just my personal opinion, now I dont know how good idea this would be tho
Go deserves a Rails like framework to skyrocket in usage. Looks promising.
Time to get it on par with Laravel, time to write PRs
Timestamps : (will continue appending as I follow the vid) 35:00 Developing a TCP Connection via TCPTransport between local and remote nodes 56:51 Validating HandShake between local and remote nodes 1:00:53 Handling features of TCP Transport (ListenAddr, Decoder, Handshake) by creating a struct 1:10:28 Captured messages from the remote node in a buffer
Hi Ashish, can you help me and provide some resouces about what this project does and how it works I am a beginner in Golang
looks promising
Why not contribute to pocket base instead... I mean... It's already there and open source
Pocketbase is not a framework
WOW is right! Can it use shadcn?
I like what I see
Hi, this project looks amazing and is exactly what we were looking for! will it be open to contributions?
nice idea, similar what another youtuber sells for 200$, but for JS, it's called shipfast, which also includes all sorts of integrations (stripe, tailwind I guess, malgun, magic link for registration, around 20 themes etc.)
Nice work my dude! 🤙
😂😂😂
This is amazing. I'll definitely be using it.
what do you recommed i know before using this new framework superkit
where is hx-target, how did htmx know which node to swap?
oh, htmx default is replacing the one that made the request
O M G! How to put two likes??
Handler I think should be a procedure and not a function. Retuning an error means server cannot fire and forget like a proc
Love your honesty and video man. You are such a great inspiration. What type of headphones do you use please?
Sony. WH1000xM4
Really cool Stuff! Let's get videos on building a SaaS on it? o.o
awesome idea and tutorial would be great on this with HTMX
I actually have been playing with thid Templ, golang, htmx, tailwind stuff lately. I'm so exited about this project. I'll definitely try it out
Very 😢 nice. I like to contribute this kind of project.
1:13 "zoom in for the blind homies" got me XD
haha was about to write that comment :D