
Coding Blocks
Podcast de Allen Underwood, Michael Outlaw, Joe Zack
No se necesita tarjeta de crédito
Become the best software developer you can be
Disfruta 14 días gratis
No se necesita tarjeta de crédito
Todos los episodios
242 episodios
[https://www.codingblocks.net/wp-content/uploads/2024/10/episode-242.png][https://www.codingblocks.net/wp-content/uploads/2024/10/episode-242.png] Well, this is awkward. Coding Blocks is signing out for now, in this episode we’ll talk about what’s happening and why. We have had an amazing run, far better than we ever expected. Also, Joe recommends 50 games, Allen goes for the gold, and Outlaw is totally normal. (And we’re not crying you’re crying!) Thank you for the support over the last 11 (!!!) years. It’s been a wild ride, and the last thing we ever expected when starting a tech podcast was getting to meet so many fantastic people. View the full show notes here: https://www.codingblocks.net/episode242 [https://www.codingblocks.net/episode242] TIP OF THE WEEK * UFO 50 is an odd collection of 50 pseudo-retro video games made by a small group of game developers, most notably including Derek Yu of Spelunky. It’s a unique and specific experience that reminds me of spending the night at your friend’s house who had some console gaming system that you’d only ever heard rumors about. The games seem small and simple at first blush, but there is surprising depth. Favorites so far are Kick Club, Avianos, Attactics, and Mortol. (Steam [https://store.steampowered.com/app/1147860/UFO_50/]) * Use JSDoc annotations to make VSCode “understand” your data (jsdoc.app [https://jsdoc.app/]) * Can you change your password without needing current password? (askubuntu.com [https://askubuntu.com/questions/423942/change-password-on-root-user-and-user-account]) * Did you know you can use VS Code for interactive rebasing? * How to enable VS Code Interactive Editor (StackOverflow [https://stackoverflow.com/questions/67425112/how-to-enable-vscode-interactive-editor]) * GitLens (marketplace.visualstudio.com [https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens&ssr=false#review-details])

[https://www.codingblocks.net/wp-content/uploads/2024/09/coding-blocks-episode-241-artwork.jpg][https://www.codingblocks.net/wp-content/uploads/2024/09/coding-blocks-episode-241-artwork.jpg] It’s time to talk about the types of things you should consider when diving into multi-tenant applications and things to be especially aware of if you attempt to make things faster by going multi-threaded at the same time. Join us as Allen continues is non-winning / non-losing streak, JZ is taken out by a storm, and Outlaw continues to ignore the notes for the intro to the show… NEWS REVIEWS * Spotify – Colum Ferry UPCOMING EVENTS * Atlanta Dev Con September 7th, 2024 https://www.atldevcon.com/ [https://www.atldevcon.com/] * DevFest Central Florida on September 28th, 2024 https://devfestflorida.com/ [https://devfestflorida.com/] EPISODE * Single vs multi-tenanted applications and multi-threaded programming * Be very careful about sharing state when doing anything in multi-threaded AND multi-tenanted applications WHAT ARE SOME IMPORTANT THINGS TO CONSIDER WHEN WRITING MULTI-TENANTED APPLICATIONS – PER CLAUDE [https://claude.ai/] As mentioned in the episode, Claude’s answers seem to be very database heavy * Data isolation: Ensure that each tenant’s data is securely separated and inaccessible to other tenants. * Authentication and authorization: Implement robust systems to verify tenant identity and control access to resources. * Scalability: Design the architecture to handle growth in both the number of tenants and data volume per tenant. * Performance: Optimize database queries and resource allocation to maintain speed as tenant count increases. * Customization: Allow for tenant-specific configurations and features without compromising the core codebase. * Monitoring and logging: Implement comprehensive logging and monitoring to track usage, errors, and performance per tenant. * Maintenance and updates: Design the system to allow for updates and maintenance with minimal disruption to tenants. * Data backup and recovery: Implement tenant-specific backup and recovery processes. * Compliance and data regulations: Ensure the system can meet various regulatory requirements that may differ by tenant. * Tenant onboarding and offboarding: Create efficient processes for adding new tenants and removing old ones. * Good feature flagging support? * Tracing / OpenTelemetry Can you elaborate on the data isolation? Data isolation is crucial in multi-tenant systems to prevent unauthorized access and ensure data privacy. Here are some key strategies to ensure data isolation: * Separate databases * Use a separate database for each tenant * Pros: Strong isolation, easier compliance * Cons: Higher maintenance, potentially higher costs * Shared database with separate schemas * Each tenant gets their own schema within a shared database * Pros: Good isolation, more cost-effective than separate databases * Cons: Requires careful access control, potential for errors * Shared schema with tenant ID * Use a single schema but include a tenant ID column in each table * Pros: Most cost-effective, easiest to maintain * Cons: Highest risk of data leaks, requires vigilant query filtering * Row-level security * Implement database-level security policies to restrict access based on tenant ID * Particularly useful with shared schema approach * Encryption * Encrypt sensitive data, potentially using tenant-specific keys * Adds an extra layer of protection even if other measures fail * Connection pooling * Use separate connection pools for each tenant to prevent session mixups * Query filtering * Always include tenant ID in queries, preferably at the database level * Use ORMs or query builders that automatically add tenant filters * API and application-level checks * Validate tenant ID in all API calls and application logic * Implement middleware to enforce tenant-specific access RESOURCES / MENTIONS * Salable Postgres product – Citus https://www.citusdata.com/ [https://www.citusdata.com/] * Envelope encryption if you’re wanting to use tenant specific keys for multi-tenanted encryption – one approach is envelope encryption https://en.wikipedia.org/wiki/Hybrid_cryptosystem#Envelope_encryption [https://en.wikipedia.org/wiki/Hybrid_cryptosystem#Envelope_encryption] https://cloud.google.com/kms/docs/envelope-encryption [https://cloud.google.com/kms/docs/envelope-encryption] * OWASP multi-tenant or “Cloud Tenant” Isolation https://owasp.org/www-project-cloud-tenant-isolation/ [https://owasp.org/www-project-cloud-tenant-isolation/] * C#’s Parallel.ForEach method – the easy way to do parallel processing in C# https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.foreach?view=net-8.0 [https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.foreach?view=net-8.0] * Can’t remember why we linked episode 11, but here it is! https://www.codingblocks.net/podcast/episode-11-design-patterns-part-1-you-create-me/ [https://www.codingblocks.net/podcast/episode-11-design-patterns-part-1-you-create-me/] TIPS OF THE WEEK * Speculative fix? If you’re not sure that your fix is going to work, or you can’t reproduce the problem then consider over-communicating it and keeping artifacts such as screenshots of what you attempted. * It’s useful for communication, but also for looking back when and if you start second guessing yourself. * Shapez 2 is a cool refactoring, automation, and puzzle game. It’s similar to Factorio, but with a heavier emphasis on refactoring and puzzles. https://store.steampowered.com/app/2162800/shapez_2/Shapez2 [https://www.codingblocks.net/wp-content/uploads/2024/09/Shapez2.jpg] [https://store.steampowered.com/app/2162800/shapez_2/] * Kotlin – measureTimeMillis https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.system/measure-time-millis.html [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.system/measure-time-millis.html] * Google skills – learn and get certified in Google Cloud https://www.cloudskillsboost.google [https://www.cloudskillsboost.google/] * Pay for a year’s worth of training for $299 and get $200 towards a certification – over $1,500 value https://www.cloudskillsboost.google/payments/new [https://www.cloudskillsboost.google/payments/new] https://www.cloudskillsboost.google/subscriptions [https://www.cloudskillsboost.google/subscriptions] Google Skills Training [https://www.codingblocks.net/wp-content/uploads/2024/09/GoogleSkillsTraining.jpg] * From Ivan Kuchin – Dasel – like JQ except it does JSON, YAML, TOML, XML and CSV with zero runtime dependencies https://github.com/TomWright/dasel [https://github.com/TomWright/dasel] * Google Cloud products in 4 words or less https://cloud.google.com/blog/topics/developers-practitioners/back-popular-demand-google-cloud-products-4-words-or-less-2022-edition [https://cloud.google.com/blog/topics/developers-practitioners/back-popular-demand-google-cloud-products-4-words-or-less-2022-edition] https://googlecloudcheatsheet.withgoogle.com/ [https://googlecloudcheatsheet.withgoogle.com/]

[https://www.codingblocks.net/wp-content/uploads/2024/08/episode-240.png][https://www.codingblocks.net/wp-content/uploads/2024/08/episode-240.png] Grab your headphones because it’s water cooler time! This episode we’re catching up on feedback, putting our skills to the test, and wondering what we’re missing. Plus, Allen’s telling it how it is, Outlaw is putting it all together and Joe is minding the gaps! View the full show notes here: https://www.codingblocks.net/episode240 [https://www.codingblocks.net/episode238] REVIEWS Thank you again for taking the time to share your review with us! * iTunes: Yesso95 * Spotify: Auxk0rd, artonus NEWS Atlanta Dev Con September 7th, 2024 https://www.atldevcon.com/ [https://www.atldevcon.com/] DevFest Central Florida September 28th, 2024 https://devfestflorida.com/ [https://devfestflorida.com/] TWO WATER COOLERS WALK INTO A BAR… * Several folks share their origin stories in the Coding Blocks slack – especially in episode-discussion * Example of dealing with legacy code / hiring people that will work on it (Episode 239 [https://www.codingblocks.net/episode239]) * Intentional architecture…what’s the worst that could happen? * What’s the sentiment like on Hacker News? (outerbounds.com [https://outerbounds.com/blog/hacker-news-sentiment/]) * Cat8 is not small! Why isn’t anything easy? * Kubernetes trivia, where are your blind spots? (proprofs.com [https://www.proprofs.com/quiz-school/story.php?title=kubernetes]) * Ask Claude: Can you give me an example of the kinds of competitions that might exist in a humorous version of the Olympics for programmers? * Data gathering and parsing – it doesn’t seem to have gotten much better in decades…are we wrong? TIP OF THE WEEK * 8 Top Docker Tips and Tricks for 2024 (docker.com [https://www.docker.com/blog/8-top-docker-tips-tricks-for-2024/]) * Have you tried Eartlhy, like Dockerfiles for all of your builds that you can run locally? (earthly.dev [https://earthly.dev/]) * Java’s JavaAgent Explained (bito.ai [https://bito.ai/resources/java-agent-example-java-explained/]) * Mirrord is an alternative to Telepresence that makes working with Kubernetes easier (mirrord.dev [https://mirrord.dev/]) * Kubernetes + Skaffold + Telepresence + K9s = Winning, it’s a great combination of tools that work great together! * https://cloud.google.com/kubernetes-engine?hl=en [https://cloud.google.com/kubernetes-engine?hl=en] * https://skaffold.dev/ [https://skaffold.dev/] * https://www.telepresence.io/ [https://www.telepresence.io/] * https://k9scli.io/ [https://k9scli.io/]

Coding Blocks Episode 239 Artwork [https://www.codingblocks.net/wp-content/uploads/2024/08/coding-blocks-episode-239-artwork.jpg]Coding Blocks Episode 239 Artwork [https://www.codingblocks.net/wp-content/uploads/2024/08/coding-blocks-episode-239-artwork.jpg] We were asked in one of our recent reviews in Apple Podcasts if we would share our career paths and how we got started and how we arrived where we are today. We took some of that info, threw it at Microsoft’s CoPilot / DALL E 3 and that’s the artwork for this episode – you may be a little surprised at how the 3 of us got started as software developers. We also have some fun things to share about recent purchases, tweaks, mistakes made and some information about the CrowdStrike outage that recently occurred. REVIEWS Thank you again for taking the time to share your review with us! * iTunes: Ksed_NJ NEWS Atlanta Dev Con September 7th, 2024 https://www.atldevcon.com/ [https://www.atldevcon.com/] DevFest Central Florida September 28th, 2024 https://devfestflorida.com/ [https://devfestflorida.com/] THIS EPISODE * Career paths – someone asked that we talk about our career paths https://en.wikipedia.org/wiki/Lou_Pearlman [https://en.wikipedia.org/wiki/Lou_Pearlman] * Enabling trace caused a bug that didn’t happen otherwise – in other words, errors in your code (such as in a toString()) could cause unforseen problems when working with other libraries and enabling verbose logging * Upgraded the fans in my Omada switch…may have done something stupid – ie. you should never mess aorund inside electrical components when they were powered on else you may risk injury or even frying some expensive equipment * The travel router experience has been awesome – we mentioned this thing in a recent episode and it really is awesome Travel Router - GL-AXT1800 [https://www.codingblocks.net/wp-content/uploads/2024/08/travel_router.jpg]https://amzn.to/3W5U8ISTravel Router Case [https://www.codingblocks.net/wp-content/uploads/2024/08/travel_router_case.jpg]https://amzn.to/3zufsyU Travel Router: https://amzn.to/3W5U8IS [https://amzn.to/3W5U8IS] Travel Router Case: https://amzn.to/3zufsyU [https://amzn.to/3zufsyU] * Great topic in the Coding Blocks slack [https://www.codingblocks.net/slack] #episode-discussion channel – can you buy your way out of a jam when older developers leave and tribal knowledge is abundant? ie. how much money would it take for you to work on an old jquery application nowadays, or maybe support a v1 MVC .NET application * Some craziness with Crowdstrike and several industries coming to a standstill due to a bug * Government Accountability Office blog entry on the CrowdStrike issue https://www.gao.gov/blog/crowdstrike-chaos-highlights-key-cyber-vulnerabilities-software-updates#:~:text=Earlier this month%2C a software,Disruptions were widespread [https://www.gao.gov/blog/crowdstrike-chaos-highlights-key-cyber-vulnerabilities-software-updates#:~:text=Earlier%20this%20month%2C%20a%20software,Disruptions%20were%20widespread] * Great explanation of what happened https://www.youtube.com/watch?v=wAzEJxOo1ts [https://www.youtube.com/watch?v=wAzEJxOo1ts] * When is Programmer’s Day? * International Programmer’s day is January 7th, for no reason I can find. No joke, it depends! It’s the 256 day of the year, which changes with leap years. This year it’s on 9/12. * Guess we just need to celebrate all 3! https://www.timeanddate.com/holidays/world/international-programmers-day [https://www.timeanddate.com/holidays/world/international-programmers-day] RESOURCES * Mentioned the old TRS-80 Radioshack handheld – here’s a page with some info on these dinosaurs https://oldcomputers.net/~oldcompu/trs80pc1.html [https://oldcomputers.net/~oldcompu/trs80pc1.html] TIPS OF THE WEEK * Hollow Knight, amazing created by 3 people (mostly) fantastic game, it’s not as hard or long as I thought it would be. The gameplay is amazing, the music is amazing, the story is hidden, but amazing. Just play it on just about any platform. https://store.steampowered.com/app/367520/Hollow_Knight/ [https://store.steampowered.com/app/367520/Hollow_Knight/] * Midinous is a cool way of generating midi visually with nodes, similar to decision trees, that can do cool things with randomness and weighting to manipulate all sorts of midi parameters (velocity, mod and pitch wheels, any parameters that your VSTs support!) https://www.youtube.com/watch?v=rtTWtzWav8I [https://www.youtube.com/watch?v=rtTWtzWav8I] https://store.steampowered.com/app/1727420/Midinous/ [https://store.steampowered.com/app/1727420/Midinous/] * If that’s not low-level enough for you, check out overtone. It’s an open-source LISP-like wrapper around the SuperCollider audio engine that you can use to make really cool, live looping music. https://overtone.github.io/ [https://overtone.github.io/] * Did you know that k9s has a slick way of supporting skins via XDG_CONFIG, you just drop in a couple skin files and then update a parameter to tell your context/clusters what to use. Great article that walks you through it: https://k9scli.io/topics/skins/ [https://k9scli.io/topics/skins/] * Starship minimalist prompt for any shell, previously Joe had been using powerlevel10k to show git information, kubernetes information, auto-complete etc, but it’s been deprecated and it looks like Starship appears to be the de jour replacement. https://starship.rs/ [https://starship.rs/] * Showing the “hidden frames” in a strack trace in IntelliJ If you want to see everything that happened in those hidden frames, you will want to right click that stack trace and show traces from external libraries – there are other features there you can enable/disable as well! * Get outside … go for a hike, a ride, go see a concert, go see Deadpool & Wolverine … That one means your back inside, but you had to go outside to get there * Students – get an internship or co-op job … it’s easier to get started in your career while you’re still in school than it will be when you’re out and looking for a job

[https://www.codingblocks.net/wp-content/uploads/2024/07/episode-238.png][https://www.codingblocks.net/wp-content/uploads/2024/07/episode-238.png] It’s Water Cooler Time! We’ve got a variety of topics today, and also Outlaw’s lawyering up, Allen can read QR codes now, and Joe is looking at second careers. View the full show notes here: https://www.codingblocks.net/episode238 [https://www.codingblocks.net/episode238] NEWS As always, thank you for leaving us a review – we really appreciate them! Almazkun, vassilbakalov, DzikijSver Atlanta Dev Con September 7th, 2024 https://www.atldevcon.com/ [https://www.atldevcon.com/] DevFest Central Florida on September 28th, 2024 Interested? Submit your talk proposal here: https://sessionize.com/devfest-florida-orlando-2024/ [https://sessionize.com/devfest-florida-orlando-2024/] WATER COOLER * How many programmers are there now? (statista.com [https://www.statista.com/statistics/627312/worldwide-developer-population/]) * Are we still growing? * What will it be like when we stop growing? * What will people be doing instead? * AI music generators are being sued! (msn.com [https://www.msn.com/en-us/entertainment/news/music-record-labels-sue-ai-song-generators-suno-and-udio-for-copyright-infringement/ar-BB1oOiHJ?ocid=BingNewsSerp]) * Curse of the Blank Page * Naming things is important, gives them power…but also the power to defeat them! * Don’t make any one specific technology your hammer * Client libraries that completely change with server upgrades * What’s the most important or relevant thing to learn as a developer now? * Do you research or learn on vacation? TIP OF THE WEEK * Curated, High-Quality Stories, Essays, Editorials, and Podcasts based around Software Engineering. It’s more polished and less experimental than PagedOut (Github [https://github.com/readme]) Also, there’s a new Paged Out, complete with downloadable art. It’s more avant-garde than GIthub’s Readme project, featuring articles on Art, Cryptography, Demoscenes, and Reverse Engineering. (pagedout.institute [https://pagedout.institute/download/PagedOut_004_beta1.pdf]) * Travel Router – Extensible Authentication Protocol (EAP) is used to pass the authentication information between the supplicant (the Wi-Fi workstation) and the authentication server (Microsoft IAS or other) (Amazon [https://amzn.to/3W5U8IS]) * Comparison of Travel Routers (gi.inet.com [https://www.gl-inet.com/products/compare/]) * Carrying case for router (Amazon [https://amzn.to/3zufsyU]) * Travel power cube – 6 power outlets followed by 3 (Amazon [https://amzn.to/3zrZNQx]) * Did you know you that Windows has a built in camera QR code reader? * Guava caching libraries in Java (Github [https://github.com/google/guava/wiki/CachesExplained]) * Caffiene is a more recent alternatitive (Github [https://github.com/ben-manes/caffeine Caffeine alternative]) * Generative AI for beginners – “Learn the fundamentals of building Generative AI applications with our 18-lesson comprehensive course by Microsoft Cloud Advocates.” * Microsoft has a course for getting into generative AI! (microsoft.github.io [https://microsoft.github.io/generative-ai-for-beginners/]) * Claude is better than Chat GPT? (claude.ai [https://claude.ai/login]) * How to Get the Most out of Postgres Memory Settings – thanks Mikerg! (temb.io [https://tembo.io/blog/optimizing-memory-usage])
Disfruta 14 días gratis
No se necesita tarjeta de crédito
Podcasts exclusivos
Sin anuncios
Podcast gratuitos
Audiolibros
20 horas / mes