POPULARITY
In this episode of the PowerShell Podcast, we welcome back Justin Grote, a Microsoft MVP and open-source powerhouse, for an in-depth and fast-paced conversation. Fresh off his PowerShell Wednesday presentation, Justin shares the thinking behind his latest innovations, including the creation of the high-performance ExcelFast module and his evangelism for dev containers and modern development workflows. Key topics in this episode include: Getting the most from VS Code – Justin shares power-user tips, favorite settings, and the evolution of his 1,000-line configuration file. GitHub Copilot and real-world developer productivity – How Justin's approach to AI tooling shifted after experiencing measurable value in his PowerShell workflows. Dev containers and runtime containers – A detailed breakdown of the difference, practical use cases, and how they transform collaboration, onboarding, and consistency. Excel Fast – A brand-new module optimized for high-performance reading, writing, and streaming of large Excel and CSV datasets, developed with dev containers from day one. Open-source contributions to PowerShell – Including enhanced logging for Invoke-RestMethod and building a dev container for the PowerShell repo itself. PowerShell Conf EU previews – From a 90-minute VS Code optimization deep dive to a hands-on runspaces lab with GitHub Codespaces integration. This episode is packed with practical advice, philosophy on tooling, and Justin's trademark blend of performance focus and community-first thinking. Whether you're a seasoned developer or looking to up your scripting game, you'll walk away with new ideas and resources to explore. Guest Bio – Justin Grote Justin Grote is a Microsoft MVP, PowerShell advocate, and open-source contributor with a deep focus on automation, performance, and developer productivity. Known for tools like ModuleFast and his work improving PowerShell workflows, Justin blends real-world experience with a passion for teaching and sharing. Whether he's optimizing VS Code, contributing to the PowerShell repo, or speaking at global conferences, Justin empowers the community with practical solutions and thoughtful insight. Links: Find Justin on GitHub, BlueSky, or on Discord (@JustinGrote): https://github.com/JustinGrote Try out ExcelFast: https://github.com/JustinGrote/ExcelFast PSConfEU Announcement: https://www.linkedin.com/feed/update/urn:li:activity:7328093268225806337/ Create Dev Container Docs: https://code.visualstudio.com/docs/devcontainers/create-dev-container SecretManagement.DpapiNG: https://github.com/jborean93/SecretManagement.DpapiNG Connect with Andrew on Socials: https://andrewpla.tech/links Catch PowerShell Wednesdays weekly at 2 PM EST on discord.gg/pdq The PowerShell Podcast hub: https://pdq.com/the-powershell-podcast The PowerShell Podcast on YouTube: https://youtu.be/dHbWFUyUaOE
* Subaru Flaw Could Have Let Hackers Track and Control Vehicles* Hundreds of Fake Reddit Sites Push Lumma Stealer Malware* Cybersecurity Needs to Start Saying 'No' Again* GitHub Desktop and Other Git Clients Vulnerable to Credential Leaks* Sophisticated Voice Phishing Scam Attempt Exploiting Google Workspace Domain Verification FlawSubaru Flaw Could Have Let Hackers Track and Control Vehicleshttps://samcurry.net/hacking-subaruA critical security vulnerability in Subaru's Starlink service could have allowed attackers to remotely control and track vehicles in the United States, Canada, and Japan.The flaw, discovered by security researchers Sam Curry and Shubham Shah, enabled attackers to gain unrestricted access to customer accounts using limited information such as the victim's last name, ZIP code, email address, phone number, or license plate.This access would have allowed attackers to:* Remotely start, stop, lock, and unlock vehicles.* Track vehicle locations in real-time and access historical location data.* Access sensitive customer information, including personal details, billing information, and emergency contacts.The researchers exploited a vulnerability in the Starlink admin portal, allowing them to bypass authentication measures and gain unauthorized access to customer accounts. The portal has two-factor authentication (2FA) which was also easily bypassed by removing the client-side overlay from the portal's user interface.Subaru addressed the issue within 24 hours of being notified. While this specific flaw was not exploited, it highlights the critical importance of robust security measures for connected vehicles.This incident follows a similar vulnerability discovered in Kia's dealer portal, emphasizing the need for automakers to prioritize vehicle security and protect customer data.Hundreds of Fake Reddit Sites Push Lumma Stealer Malwarehttps://www.bleepingcomputer.com/news/security/hundreds-of-fake-reddit-sites-push-lumma-stealer-malware/Cybercriminals are leveraging hundreds of fake Reddit and WeTransfer websites to distribute the Lumma Stealer malware.These deceptive websites mimic the appearance of legitimate platforms, tricking users into downloading malicious payloads. For instance, the fake Reddit sites display fabricated discussion threads where users appear to be assisting each other with downloading files. The thread creator asks for help to download a specific tool, another user offers to help by uploading it to WeTransfer and sharing the link, and a third thanks him to make everything appear legitimate.These threads often link to fake WeTransfer pages, which then redirect users to download the Lumma Stealer malware.Lumma Stealer is a sophisticated info-stealer known for its advanced evasion techniques and data theft capabilities. It can steal sensitive information such as passwords, cookies, and other credentials, potentially allowing attackers to hijack accounts and gain access to valuable data.This campaign highlights the ongoing threat of social engineering and the importance of critical thinking when interacting with online content. Users are advised to be wary of unsolicited downloads and to verify the authenticity of websites and messages before clicking on any links.Cybersecurity Needs to Start Saying 'No' Againhttps://www.darkreading.com/cyber-risk/security-needs-start-saying-no-againFor years, cybersecurity teams were often perceived as the "Department of No," constantly blocking initiatives due to security concerns. However, in an effort to demonstrate value and foster collaboration, many teams have shifted towards a more accommodating approach.While this shift has its benefits, some experts argue that it may have gone too far, leading to security teams overlooking critical risks and compromising their ability to effectively protect the organization.Avoiding necessary "nos" can have detrimental consequences, including:* Misalignment: Lack of clear boundaries can lead to confusion and misalignment between security teams and other departments.* Overwhelmed Teams: Constant pressure to accommodate requests can overwhelm security teams and lead to burnout.* Unmanaged Risks: Compromising on security measures can increase the organization's vulnerability to cyber threats.However, saying "no" effectively is crucial. It requires careful consideration, clear communication, and a focus on aligning security decisions with broader business goals.By emphasizing the importance of well-considered "nos" and fostering open communication and collaboration, security teams can better protect their organizations while maintaining positive relationships with other departments.GitHub Desktop and Other Git Clients Vulnerable to Credential Leakshttps://flatt.tech/research/posts/clone2leak-your-git-credentials-belong-to-us/Multiple vulnerabilities have been discovered in popular Git clients, including GitHub Desktop, that could allow attackers to steal user credentials.These vulnerabilities, stemming from improper handling of messages within the Git Credential Protocol, could be exploited by attackers to trick users into sending their credentials to malicious servers.One such vulnerability, CVE-2025-23040, affects GitHub Desktop and allows attackers to inject malicious URLs that can mislead the client into sending credentials to the wrong server.Other vulnerabilities impact the Git Credential Manager and Git LFS, also allowing attackers to exploit weaknesses in how these tools handle URLs and potentially leak credentials.GitHub CLI is also vulnerable, particularly when used within GitHub Codespaces, where it can inadvertently leak access tokens to unauthorized hosts.These vulnerabilities highlight the importance of keeping software updated and exercising caution when interacting with untrusted repositories.Users are advised to update their Git clients to the latest versions, avoid cloning repositories from untrusted sources, and minimize the use of credential helpers where possible.Sophisticated Voice Phishing Scam Attempt Exploiting Google Workspace Domain Verification Flawhttps://gist.github.com/zachlatta/f86317493654b550c689dc6509973aa4Google is fortifying its security measures following a recent, elaborate voice phishing attack documented by programmer Zach Latta.Latta, founder of Hack Club, detailed a close call he had with scammers who attempted to hijack his Google account through a series of tactics that bypassed traditional security measures.The scammers, posing as Google Workspace support staff, contacted Latta claiming to have detected a suspicious login attempt. They used a phone number associated with Google Assistant calls and a seemingly legitimate "Google" caller ID. Additionally, a password reset email was sent from a genuine Google Workspace address, making the scam highly convincing.However, Latta remained cautious and ultimately identified inconsistencies in the scammers' story. Notably, one scammer contradicted another on details, and a request to call them back was met with an unfazed response, raising a red flag.This incident exposes a critical vulnerability: the ability for attackers to create Google Workspace accounts using unverified g.co subdomains. This allows them to send password reset emails that appear to originate from Google itself.Google has acknowledged the issue and is taking steps to bolster its defenses against such scams. They have suspended the account used in this attempt and are working to prevent attackers from exploiting g.co subdomains during registration.The Latta case serves as a stark reminder to be wary of unsolicited calls, even if they appear to come from legitimate sources. Users should never provide sensitive information over the phone and should be extra cautious about emails originating from unverified senders.This incident also highlights the evolving nature of phishing tactics and the need for continuous vigilance and security improvements. This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit edwinkwan.substack.com
In episode 138 of Teaching Python, hosts Sean Tibor and Kelly Schuster-Paredes welcome Pamela Fox, a Principal Developer Advocate at Microsoft, to discuss the dynamic world of teaching, coding, and creating. Pamela shares her experiences working with Python in the cloud, emphasizing the various applications from serverless functions to web application backends using frameworks like Flask and Django. This episode provides a comprehensive look at how cloud-based environments like GitHub CodeSpaces and CoLab make programming more accessible and reduce the friction often associated with setting up development environments. Pamela dives into her approach to teaching and the unique challenges posed by different educational formats. Drawing from her work at institutions like UC Berkeley and her development of AP Computer Science Principles content for Khan Academy, she highlights the importance of making learning engaging and personalized. Pamela shares insights into the design of interactive and project-based curricula, touching on how tools like Parsons problems can scaffold learning effectively and make complex concepts like recursion more approachable. The conversation also explores the significance of visualizations in learning programming, as exemplified by Pamela's recursion visualizer tool. The episode concludes with reflections on the breadth of topics covered in AP CSP and the value of exposing students to a wide array of programming experiences. Listeners gain a deeper understanding of the balance between teaching fundamental concepts and encouraging creative expression through code, along with practical tips for educators at all levels. Special Guest: Pamela Fox.
GitHub Codespaces aims to simplify spinning up a developer environment in the cloud. Containerlab, which provides virtual lab environments for network engineers, is now integrated with Codespaces to make it easy to set up and share network labs. On today’s Network Automation Nerds show, we delve into this innovative use of GitHub Codespaces and containerlab... Read more »
GitHub Codespaces aims to simplify spinning up a developer environment in the cloud. Containerlab, which provides virtual lab environments for network engineers, is now integrated with Codespaces to make it easy to set up and share network labs. On today’s Network Automation Nerds show, we delve into this innovative use of GitHub Codespaces and containerlab... Read more »
Riaan Nolan is a HashiCorp Ambassador that has developed Hashiqube, a DevOps development lab that runs all HashiCorp products. Hashiqube has a Docker daemon inside meaning we can run containers inside Hashiqube using Kubernetes (Minikube) or Nomad or Docker run. It runs all Hashicorp products: Vault, Terraform, Nomad, Consul, Waypoint, Boundary, Vagrant, Packer and Sentinel. It also runs a host of other popular Open Source DevOps/DevSecOps applications (Minikube, Ansible AWX Tower, Traefik etc.) showcasing how simple integration with Hashicorp products can result in tangible learnings and benefits for all its users. In this episode, we'll explore HashiQube on GitHub CodeSpaces. 00:00 Introductions 02:00 Introducing HashiQube
In dieser Episode des Focus On DevOps Podcasts diskutieren wir mit Hagen Naumann, einem Experten auf dem Gebiet moderner Entwicklungsumgebungen, die Revolution der Container-basierten Entwicklung. Mit Tools wie Coder, Gitpod und GitHub Codespaces verlagern sich traditionelle Entwicklungspraktiken zunehmend in vollständig konfigurierte, portable Container. Diese Entwicklung verspricht, die Herausforderungen zahlreicher Abhängigkeiten, unterschiedlicher Interpreter-Versionen und der Verwaltung virtueller Umgebungen auf lokalen Maschinen zu überwinden. Unternehmen haben nun die Möglichkeit, vorgefertigte, sprach- oder anwendungsspezifische Umgebungen bereitzustellen und kritische Aspekte der Software Supply Chain Security von Anfang an zu kontrollieren. Doch könnte diese Standardisierung auch zu restriktiv sein und die Kreativität und Flexibilität der EntwicklerInnen einschränken? Wir beleuchten die Vor- und Nachteile dieser Entwicklungsansätze und werfen einen Blick auf die Zukunft der Entwicklungsumgebungen in der Softwarebranche.
Hey
Ivan Burazin is the cofounder of DaytonaWhat we cover:- Scaling a 5,000 attendee conference- How to drive change in big organizations- Top down vs bottoms up approaches to growthDaytona is an enterprise-grade GitHub Codespaces alternative for managing self-hosted, secure and standardized development environments.Ivan Burazin - https://twitter.com/ivanburazinDaytona - https://www.daytona.io/
Cloud-based software development platforms such as GitHub Codespaces continue to grow in popularity. These platforms are attractive to enterprise organizations because they can be managed centrally with security controls. However, many, if not most, developers prefer a local IDE. Daytona is aiming to bridge that gap. It's a layer between a local IDE and a The post Daytona with Ivan Burazin appeared first on Software Engineering Daily.
Cloud-based software development platforms such as GitHub Codespaces continue to grow in popularity. These platforms are attractive to enterprise organizations because they can be managed centrally with security controls. However, many, if not most, developers prefer a local IDE. Daytona is aiming to bridge that gap. It’s a layer between a local IDE and a The post Daytona with Ivan Burazin appeared first on Software Engineering Daily.
WordPress to zdecydowanie jeden z największych graczy we współczesnym internecie. Ponad 1/3 stron internetowych jest zbudowana właśnie za pomocą tego narzędzia. Strona techwriter.pl była w tym gronie przez ostatnie 10 lat. W tym roku postanowiliśmy przejść na rozwiązanie oparte na platformie gitowej i generatorze stron statycznych. Rozmawiamy o tym dlaczego zdecydowaliśmy się przejść na Docusaurusa i GitHuba, jak wyglądał proces migracji i czy w ostatecznym rozrachunku była to dobra decyzja, żeby odejść od WordPressa. Informacje dodatkowe: WordPress: https://pl.wordpress.org/ Docusaurus: https://docusaurus.io/ GitHub: https://github.com/ Techwriter.pl: https://techwriter.pl/ "System zarządzania treścią", Wikipeda: https://pl.wikipedia.org/wiki/System_zarz%C4%85dzania_tre%C5%9Bci%C4%85 "Usage statistics and market share of WordPress", W3Techs: https://w3techs.com/technologies/details/cm-wordpress "Docs as code", Write the Docs: https://www.writethedocs.org/guide/docs-as-code/ GitHub Pages: https://pages.github.com/ React: https://react.dev/ GitHub Issues: https://github.com/features/issues MDX: https://mdxjs.com/ Disqus: https://disqus.com/ Algolia: https://www.algolia.com/ GitHub Actions: https://github.com/features/actions GitHub Codespaces: https://github.com/features/codespaces MeetContent: http://meetcontent.org/
【雑談】男女の服装に体感温度差がある状態良くないよね --- Twitterアカウント始めました!質問やコメントなど受け付けています! https://twitter.com/trycatch_fm Peingを開設しました!質問や取り扱って欲しいテーマなど送っていただけると僕たちのモチベーションが爆上がりします https://peing.net/ja/9045551273053f#question-form
Jeremy Thake got to talk to John Miller from the team behind Teams Toolkit. John talked about the new v5 release that was announced mid May 2023. There are some great new features he discusses around: Flexible and composable automation, Visual Studio dev tunnels support, Outlook Add-in/SharePoint framework support, and Github Codespaces support. Teams Toolkit for Visual Studio Code 5 now available (microsoft.com) Issues · OfficeDev/TeamsFx · GitHub
I'm trying to make my open source backend API project StaticBackend as easy as possible to contribute.Couple of things I've added lately was worth mentionning. GitHub Codespaces is helpful and nicely done. It goes 1-step further than Docker and make contributing to an open source project a simple task, especially for small and quick 1-time contribution.This couple with GitHub CLI, which I admit, have just starting using it. And linters to make sure the quality of the code is as high as it can be.StaticBackend website | GitHub repoIf you'd want to support this podcast, the best way is to talk about it, sponsor my open source project or purchase my course Build SaS apps in Go.
In episode 138 of our SAP on Azure video podcast we talk about Azure Firewall enhancements, sector size of Azure Premium SSD v2, Microsoft Business Applications Launch Event, DSAG Working-group Open AI & SAP, Logic Apps Aviators Newsletter, SAP Developer Insights Survey 2023 and GitHub Codespaces for Students and Educators. Then we talk about a very hot topic: OpenAI, ChatGPT, Copilot, Dalee, or Azure Open AI are currently mentioned almost everywhere. In the midsts to a lot of strange and completely useless scenario we can also see some gems popping up. Especially in the area of SAP and Open AI we see some cool use-cases from partners, the community and customers. For todays show we have Chan Jin Park joining us. He has been working on a nice integration scenario that shows some of the ideas and potential scenarios that you can do when connecting SAP with large language models. https://www.saponazurepodcast.de/episode138 Reach out to us for any feedback / questions: * Robert Boban: https://www.linkedin.com/in/rboban/ * Goran Condric: https://www.linkedin.com/in/gorancondric/ * Holger Bruchelt: https://www.linkedin.com/in/holger-bruchelt/ #Microsoft #SAP #Azure #SAPonAzure #OpenAI #ChatGPT #Teams
I det här avsnittet besöker Robert Folkesson Swetugg-konferensen och samtalar med Mathias Olausson och Magnus Timner från Solidify om hur du kan förenkla tillvaron som utvecklare med hjälp av GitHub Codespaces - samt med Simon Wåhlin från Advania om varför Powershell är ett så högintressant verktyg även för utvecklare. Länkar: Swetugg: swetugg.se/sthlm-2023 GitHub Codespaces: github.com/features/codespaces Powershell: Microsoft Learn
On this episode of Remote Ruby, we have an awesome guest joining us. Today, we have Ken Collins, who's a Principal Engineer and Cloud Architect at Custom Ink, an active member in the Ruby community for over fifteen years, a Microsoft open source contributor, PC Gamer, and an AWS Serverless Hero. We have so much to discuss today, as Ken fills us in on Lamby, Custom Ink, how Lambda evolved, a gem called Lambdakiq, and if you're looking for cost optimization, why Lambda is the best compute service out there. We'll also learn how CloudFormation can help developers, how CloudWatch Events is used, and we'll hear about the different database options Amazon has such as Aurora Serverless, DynamoDB, and RDS. If you've never used Lambda, it's a good time to try it out. Andrew realized he's in the perfect place to try it since he recently built a proxy one. Download this episode to learn much more! [00:01:52] Ken tells us about himself and his background[00:04:47] Custom Ink makes some great products, and we'll learn how Lamby came to be, the stuff they build, the cool tech behind it, and the services, such as AWS Lambda.[00:08:16] How did Lambda evolve?[00:09:17] Ken details what the OCI format is, and how Lambda works compared to deploying to a traditional server. We hear about Lambda releasing Function URLs, a free API gateway, and what it does.[00:12:16] We hear the whole process from end-to-end, starting from a web request, what happens, how it gets to Rails, Dynos are running, the database gets affected, and how those containers can be used for other things like an event driven architectures.[00:16:03] Chris asks Ken how Kubernetes and Lambda compare. Also, we hear how background jobs and cron jobs fit in, and a gem that Ken wrote called, Lambdakiq.[00:20:30] How does Ken manage connections being made and the events being sent to the right place? Also, Chris wonders if CloudFormation is something you should learn as one of the starting points or you should later for it to be more useful, and Ken tells us about the AWS Cloud Development Kit and what it does.[00:24:10] Amazon has many different database options and Ken explains that you can use any database you want, wherever you want.[00:25:39] Ken explains the differences between Aurora Serverless, DynamoDB, and RDS. [00:30:23] We're going back to talking about Lambda now and Ken tells us about their website, a documentation website where they cover things, and a Quick Start Guide on how you can deploy a new Rails APP on Rails 3.2 to Lambda in 5 minutes.[00:33:02] Chris mentions how Taylor Otwell modified Laravel to run on Lambda, and Vapor is their tool for deploying to Lambda.[00:36:25] Are there any gotchas? Chris heard people were talking about Rails being slow to boot and issues with connecting to your Lambda to a VPC was slow. Ken tells us the VPC has been solved very well.[00:39:31] Ken and Chris chat about the hardest things are learning and change management, like setting up CI for the first time can be challenging, Heroku is amazing but has its limits, and using CloudWatch Logs which is a change for people. Also, Ken shares a hotspot with Lambda, and he tells us about Lambda Punch and New Relic. [00:42:47] Ken tells us to use CloudWatch Events for setting up Cronjobs that run on a schedule.[00:44:51] Chris wonders if there are concerns or ways you have to change things for assets, and Ken explains what they do with turning on the magic environment variable, but if you need something else, it goes into the CI/CD Pipeline creation.[00:48:30] Andrew is going to try Lambda now, and we hear Ken's thoughts on how different development is from production when you use Lambda. Find out why he loves Microsoft's Development Containers Specification, and Chris mentions DHH's MRSK project and what it's going to do.[00:56:06] Find out where to follow Ken, if you're interested in Custom Ink, check them out, and please try out Lambda because he could use some contributors to help write the guides.Panelists:Jason CharnesChris OliverAndrew MasonGuest:Ken CollinsSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterKen Collins TwitterKen Collins GitHubKen Collins (Dev.to)Lamby-GitHubCustom InkCustom Ink ProductsLambdakiqAmazon Aurora ServerlessAmazon DynamoDBAmazon RDSLambyFull Stack Radio Podcast-Episode 120-Taylor Otwell-Serverless Laravel with VaporLambda PunchNew Relic-GitHubAmazon CloudWatch EventsDevelopment ContainersRemote Ruby Podcast-Episode 165: GitHub Codespaces & Docker with Benjamin WoodMRSK: Deploy Web apps anywhereRuby Radar TwitterRuby for All Podcast
Links: Datadog reports that an undocumented API allowed CloudTrail bypass MailChimp was breached and had customer data exposed Folks can use GitHub Codespaces to host and deliver malware. How to revoke federated users' active AWS sessions The worst backup software known to humankind
This interview was recorded for GOTO Unscripted 2021.gotopia.techRead the full transcription of this interview hereDean Wampler - Principal Software Engineer at Domino Data LabPreben Thorø - CTO at Trifork SwitzerlandDESCRIPTIONData science has become a bigger part of software engineering. Where does the path lead? What have the changes been over the last couple of years and where are we heading? In this unscripted episode, Dean Wampler takes you on a journey through data science.RECOMMENDED BOOKSDean Wampler • Programming ScalaDean Wampler • Functional Programming for Java DevelopersDean Wampler, Edward Capriolo & Jason Rutherglen • Programming HiveHolden Karau, Trevor Grant, Boris Lublinsky, Richard Liu & Ilan Filonenko • Kubeflow for Machine LearningPhil Winder • Reinforcement LearningTwitterLinkedInFacebookLooking for a unique learning experience?Attend the next GOTO conference near you! Get your ticket: gotopia.techSUBSCRIBE TO OUR YOUTUBE CHANNEL - new videos posted almost daily
In this episode, we are joined by GitHub star Barbara Forbes. She tells us what her experience has been like as a GitHub star and presents a session at GitHub Universe. We got to learn about GitHub Codespaces as well as GitHub CoPilot and the future of AI. She discussed the value of mentorship and how helpful getting a 2nd opinion can be when dealing with doubts. We also got to hear how she got her awesome plushies. Guest Bio and links: Barbara is the Azure Technical Lead for OGD IT Services in the Netherlands. Her focus is on Azure and automation. Think Serverless, Azure DevOps, PowerShell, GitHub and Infrastructure as Code. She loves teaching in an approachable way and has found multiple ways to reach people. She is co-founder of the Dutch DevOps & GitHub community (DDOG), as well as co-hosting the Dutch PowerShell User Group (DUPSUG). She is a Microsoft certified trainer (MCT), a Microsoft Most Valuable Professional (MVP) in the category Azure and a GitHub Star. https://4bes.nl/2022/11/13/use-github-codespaces-for-azure-powershell-function-apps/ https://marketplace.visualstudio.com/items?itemName=VirejDasani.in-your-face https://ddog.nl/ http://dupsug.com/ https://mvp.microsoft.com/en-us/PublicProfile/5003674 https://stars.github.com/profiles/ba4bes/
GitHub Codespaces, ett verktyg som ger dig en fräsch uppsättning av din utvecklingsmiljö på sekunder. I veckans avsnitt träffar vi Jonas Helin från GitHub och lär oss om alla dom nya sätt att jobba som GitHub codespaces skapar! Vi pratar om hur codespaces kan snabba upp allt från onboarding till pull request hantering, vi diskuterar inställningar och begränsningar och Jonas berättar till och med när det inte lämpar sig! Hosted on Acast. See acast.com/privacy for more information.
Timestamps[00:45] Andrew recaps pairing with Collin and some other folks over the weekend on an open source PR[2:40] Andrew launches a discussion around GitHub Codespace configs for open source projects and how that would have made his life easier. Julie also brings up Tuple as another great tool for pairing[5:15] Julie brings up trying to use Codespaces to pair on Rails, which does have a configuration file [6:00] Andrew gives a basic explanation of what Codespaces, why it's helpful, and some of the struggles he's had with it[10:45] Julie gives Andrew a recap of RubyConf Mini[11:40] Andrew and Julie talk about feeling down after conferences[14:00] Julie talks about why flying is stressful for her and how she got a lucky break on her flight home from the conference[17:00] Julie talks about the speaker dinner prior to the conference and some of the other events she attended[18:30] Julie talks about giving her talk. And don't worry! She had a nodder![20:00] Julie talks about being on the conference panel that you all heard last week[22:00] Andrew wants to hear about the food and Julie delivers![23:30] Julie gives her final thoughts on the conference and Andrew advocates for doing more local conferencesSponsorSpecial thanks to Andy Croll for personally sponsoring this episode. Be sure to check out firstrubyfriend.org and onerubything.com for nice, free community resources for newer devs!LinksTupleGitHub CodespacesUsing Codespaces with VS Code
We explore the world of GitHub Codespaces and all the joy that it can bring to development. Follow Us Frank: Twitter, Blog, GitHub James: Twitter, Blog, GitHub Merge Conflict: Twitter, Facebook, Website, Chat on Discord Music : Amethyst Seer - Citrine by Adventureface ⭐⭐ Review Us (https://itunes.apple.com/us/podcast/merge-conflict/id1133064277?mt=2&ls=1) ⭐⭐ Machine transcription available on http://mergeconflict.fm
About SamSam Nicholls: Veeam's Director of Public Cloud Product Marketing, with 10+ years of sales, alliance management and product marketing experience in IT. Sam has evolved from his on-premises storage days and is now laser-focused on spreading the word about cloud-native backup and recovery, packing in thousands of viewers on his webinars, blogs and webpages.Links Referenced: Veeam AWS Backup: https://www.veeam.com/aws-backup.html Veeam: https://veeam.com TranscriptAnnouncer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.Corey: This episode is sponsored in part by our friends at Chronosphere. Tired of observability costs going up every year without getting additional value? Or being locked in to a vendor due to proprietary data collection, querying and visualization? Modern day, containerized environments require a new kind of observability technology that accounts for the massive increase in scale and attendant cost of data. With Chronosphere, choose where and how your data is routed and stored, query it easily, and get better context and control. 100% open source compatibility means that no matter what your setup is, they can help. Learn how Chronosphere provides complete and real-time insight into ECS, EKS, and your microservices, whereever they may be at snark.cloud/chronosphere That's snark.cloud/chronosphere Corey: This episode is brought to us by our friends at Pinecone. They believe that all anyone really wants is to be understood, and that includes your users. AI models combined with the Pinecone vector database let your applications understand and act on what your users want… without making them spell it out. Make your search application find results by meaning instead of just keywords, your personalization system make picks based on relevance instead of just tags, and your security applications match threats by resemblance instead of just regular expressions. Pinecone provides the cloud infrastructure that makes this easy, fast, and scalable. Thanks to my friends at Pinecone for sponsoring this episode. Visit Pinecone.io to understand more.Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. This promoted guest episode is brought to us by and sponsored by our friends over at Veeam. And as a part of that, they have thrown one of their own to the proverbial lion. My guest today is Sam Nicholls, Director of Public Cloud over at Veeam. Sam, thank you for joining me.Sam: Hey. Thanks for having me, Corey, and thanks for everyone joining and listening in. I do know that I've been thrown into the lion's den, and I am [laugh] hopefully well-prepared to answer anything and everything that Corey throws my way. Fingers crossed. [laugh].Corey: I don't think there's too much room for criticizing here, to be direct. I mean, Veeam is a company that is solidly and thoroughly built around a problem that absolutely no one cares about. I mean, what could possibly be wrong with that? You do backups; which no one ever cares about. Restores, on the other hand, people care very much about restores. And that's when they learn, “Oh, I really should have cared about backups at any point prior to 20 minutes ago.”Sam: Yeah, it's a great point. It's kind of like taxes and insurance. It's almost like, you know, something that you have to do that you don't necessarily want to do, but when push comes to shove, and something's burning down, a file has been deleted, someone's made their way into your account and, you know, running a right mess within there, that's when you really, kind of, care about what you mentioned, which is the recovery piece, the speed of recovery, the reliability of recovery.Corey: It's been over a decade, and I'm still sore about losing my email archives from 2006 to 2009. There's no way to get it back. I ran my own mail server; it was an iPhone setting that said, “Oh, yeah, automatically delete everything in your trash folder—or archive folder—after 30 days.” It was just a weird default setting back in that era. I didn't realize it was doing that. Yeah, painful stuff.And we learned the hard way in some of these cases. Not that I really have much need for email from that era of my life, but every once in a while it still bugs me. Which gets speaks to the point that the people who are the most fanatical about backing things up are the people who have been burned by not having a backup. And I'm fortunate in that it wasn't someone else's data with which I had been entrusted that really cemented that lesson for me.Sam: Yeah, yeah. It's a good point. I could remember a few years ago, my wife migrated a very aging, polycarbonate white Mac to one of the shiny new aluminum ones and thought everything was good—Corey: As the white polycarbonate Mac becomes yellow, then yeah, all right, you know, it's time to replace it. Yeah. So yeah, so she wiped the drive, and what happened?Sam: That was her moment where she learned the value and importance of backup unless she backs everything up now. I fortunately have never gone through it. But I'm employed by a backup vendor and that's why I care about it. But it's incredibly important to have, of course.Corey: Oh, yes. My spouse has many wonderful qualities, but one that drives me slightly nuts is she's something of a digital packrat where her hard drives on her laptop will periodically fill up. And I used to take the approach of oh, you can be more efficient and do the rest. And I realized no, telling other people they're doing it wrong is generally poor practice, whereas just buying bigger drives is way easier. Let's go ahead and do that. It's small price to pay for domestic tranquility.And there's a lesson in that. We can map that almost perfectly to the corporate world where you folks tend to operate in. You're not doing home backup, last time I checked; you are doing public cloud backup. Actually, I should ask that. Where do you folks start and where do you stop?Sam: Yeah, no, it's a great question. You know, we started over 15 years ago when virtualization, specifically VMware vSphere, was really the up-and-coming thing, and, you know, a lot of folks were there trying to utilize agents to protect their vSphere instances, just like they were doing with physical Windows and Linux boxes. And, you know, it kind of got the job done, but was it the best way of doing it? No. And that's kind of why Veeam was pioneered; it was this agentless backup, image-based backup for vSphere.And, of course, you know, in the last 15 years, we've seen lots of transitions, of course, we're here at Screaming in the Cloud, with you, Corey, so AWS, as well as a number of other public cloud vendors we can help protect as well, as a number of SaaS applications like Microsoft 365, metadata and data within Salesforce. So, Veeam's really kind of come a long way from just virtual machines to really taking a global look at the entirety of modern environments, and how can we best protect each and every single one of those without trying to take a square peg and fit it in a round hole?Corey: It's a good question and a common one. We wind up with an awful lot of folks who are confused by the proliferation of data. And I'm one of them, let's be very clear here. It comes down to a problem where backups are a multifaceted, deep problem, and I don't think that people necessarily think of it that way. But I take a look at all of the different, even AWS services that I use for my various nonsense, and which ones can be used to store data?Well, all of them. Some of them, you have to hold it in a particularly wrong sort of way, but they all store data. And in various contexts, a lot of that data becomes very important. So, what service am I using, in which account am I using, and in what region am I using it, and you wind up with data sprawl, where it's a tremendous amount of data that you can generally only track down by looking at your bills at the end of the month. Okay, so what am I being charged, and for what service?That seems like a good place to start, but where is it getting backed up? How do you think about that? So, some people, I think, tend to ignore the problem, which we're seeing less and less, but other folks tend to go to the opposite extreme and we're just going to backup absolutely everything, and we're going to keep that data for the rest of our natural lives. It feels to me that there's probably an answer that is more appropriate somewhere nestled between those two extremes.Sam: Yeah, snapshot sprawl is a real thing, and it gets very, very expensive very, very quickly. You know, your snapshots of EC2 instances are stored on those attached EBS volumes. Five cents per gig per month doesn't sound like a lot, but when you're dealing with thousands of snapshots for thousands machines, it gets out of hand very, very quickly. And you don't know when to delete them. Like you say, folks are just retaining them forever and dealing with this unfortunate bill shock.So, you know, where to start is automating the lifecycle of a snapshot, right, from its creation—how often do we want to be creating them—from the retention—how long do we want to keep these for—and where do we want to keep them because there are other storage services outside of just EBS volumes. And then, of course, the ultimate: deletion. And that's important even from a compliance perspective as well, right? You've got to retain data for a specific number of years, I think healthcare is like seven years, but then you've—Corey: And then not a day more.Sam: Yeah, and then not a day more because that puts you out of compliance, too. So, policy-based automation is your friend and we see a number of folks building these policies out: gold, silver, bronze tiers based on criticality of data compliance and really just kind of letting the machine do the rest. And you can focus on not babysitting backup.Corey: What was it that led to the rise of snapshots? Because back in my very early days, there was no such thing. We wound up using a bunch of servers stuffed in a rack somewhere and virtualization was not really in play, so we had file systems on physical disks. And how do you back that up? Well, you have an agent of some sort that basically looks at all the files and according to some ruleset that it has, it copies them off somewhere else.It was slow, it was fraught, it had a whole bunch of logic that was pushed out to the very edge, and forget about restoring that data in a timely fashion or even validating a lot of those backups worked other than via checksum. And God help you if you had data that was constantly in the state of flux, where anything changing during the backup run would leave your backups in an inconsistent state. That on some level seems to have largely been solved by snapshots. But what's your take on it? You're a lot closer to this part of the world than I am.Sam: Yeah, snapshots, I think folks have turned to snapshots for the speed, the lack of impact that they have on production performance, and again, just the ease of accessibility. We have access to all different kinds of snapshots for EC2, RDS, EFS throughout the entirety of our AWS environment. So, I think the snapshots are kind of like the default go-to for folks. They can help deliver those very, very quick RPOs, especially in, for example, databases, like you were saying, that change very, very quickly and we all of a sudden are stranded with a crash-consistent backup or snapshot versus an application-consistent snapshot. And then they're also very, very quick to recover from.So, snapshots are very, very appealing, but they absolutely do have their limitations. And I think, you know, it's not a one or the other; it's that they've got to go hand-in-hand with something else. And typically, that is an image-based backup that is stored in a separate location to the snapshot because that snapshot is not independent of the disk that it is protecting.Corey: One of the challenges with snapshots is most of them are created in a copy-on-write sense. It takes basically an instant frozen point in time back—once upon a time when we ran MySQL databases on top of the NetApp Filer—which works surprisingly well—we would have a script that would automatically quiesce the database so that it would be in a consistent state, snapshot the file and then un-quiesce it, which took less than a second, start to finish. And that was awesome, but then you had this snapshot type of thing. It wasn't super portable, it needed to reference a previous snapshot in some cases, and AWS takes the same approach where the first snapshot it captures every block, then subsequent snapshots wind up only taking up as much size as there have been changes since the first snapshots. So, large quantities of data that generally don't get access to a whole lot have remarkably small, subsequent snapshot sizes.But that's not at all obvious from the outside, and looking at these things. They're not the most portable thing in the world. But it's definitely the direction that the industry has trended in. So, rather than having a cron job fire off an AWS API call to take snapshots of my volumes as a sort of the baseline approach that we all started with, what is the value proposition that you folks bring? And please don't say it's, “Well, cron jobs are hard and we have a friendlier interface for that.”Sam: [laugh]. I think it's really starting to look at the proliferation of those snapshots, understanding what they're good at, and what they are good for within your environment—as previously mentioned, low RPOs, low RTOs, how quickly can I take a backup, how frequently can I take a backup, and more importantly, how quickly can I restore—but then looking at their limitations. So, I mentioned that they were not independent of that disk, so that certainly does introduce a single point of failure as well as being not so secure. We've kind of touched on the cost component of that as well. So, what Veeam can come in and do is then take an image-based backup of those snapshots, right—so you've got your initial snapshot and then your incremental ones—we'll take the backup from that snapshot, and then we'll start to store that elsewhere.And that is likely going to be in a different account. We can look at the Well-Architected Framework, AWS deeming accounts as a security boundary, so having that cross-account function is critically important so you don't have that single point of failure. Locking down with IAM roles is also incredibly important so we haven't just got a big wide open door between the two. But that data is then stored in a separate account—potentially in a separate region, maybe in the same region—Amazon S3 storage. And S3 has the wonderful benefit of being still relatively performant, so we can have quick recoveries, but it is much, much cheaper. You're dealing with 2.3 cents per gig per month, instead of—Corey: To start, and it goes down from there with sizeable volumes.Sam: Absolutely, yeah. You can go down to S3 Glacier, where you're looking at, I forget how many points and zeros and nines it is, but it's fractions of a cent per gig per month, but it's going to take you a couple of days to recover that da—Corey: Even infrequent access cuts that in half.Sam: Oh yeah.Corey: And let's be clear, these are snapshot backups; you probably should not be accessing them on a consistent, sustained basis.Sam: Well, exactly. And this is where it's kind of almost like having your cake and eating it as well. Compliance or regulatory mandates or corporate mandates are saying you must keep this data for this length of time. Keeping that—you know, let's just say it's three years' worth of snapshots in an EBS volume is going to be incredibly expensive. What's the likelihood of you needing to recover something from two years—actually, even two months ago? It's very, very small.So, the performance part of S3 is, you don't need to take it as much into consideration. Can you recover? Yes. Is it going to take a little bit longer? Absolutely. But it's going to help you meet those retention requirements while keeping your backup bill low, avoiding that bill shock, right, spending tens and tens of thousands every single month on snapshots. This is what I mean by kind of having your cake and eating it.Corey: I somewhat recently have had a client where EBS snapshots are one of the driving costs behind their bill. It is one of their largest single line items. And I want to be very clear here because if one of those people who listen to this and thinking, “Well, hang on. Wait, they're telling stories about us, even though they're not naming us by name?” Yeah, there were three of you in the last quarter.So, at that point, it becomes clear it is not about something that one individual company has done and more about an overall driving trend. I am personalizing it a little bit by referring to as one company when there were three of you. This is a narrative device, not me breaking confidentiality. Disclaimer over. Now, when you talk to people about, “So, tell me why you've got 80 times more snapshots than you do EBS volumes?” The answer is as, “Well, we wanted to back things up and we needed to get hourly backups to a point, then daily backups, then monthly, and so on and so forth. And when this was set up, there wasn't a great way to do this natively and we don't always necessarily know what we need versus what we don't. And the cost of us backing this up, well, you can see it on the bill. The cost of us deleting too much and needing it as soon as we do? Well, that cost is almost incalculable. So, this is the safe way to go.” And they're not wrong in anything that they're saying. But the world has definitely evolved since then.Sam: Yeah, yeah. It's a really great point. Again, it just folds back into my whole having your cake and eating it conversation. Yes, you need to retain data; it gives you that kind of nice, warm, cozy feeling, it's a nice blanket on a winter's day that that data, irrespective of what happens, you're going to have something to recover from. But the question is does that need to be living on an EBS volume as a snapshot? Why can't it be living on much, much more cost-effective storage that's going to give you the warm and fuzzies, but is going to make your finance team much, much happier [laugh].Corey: One of the inherent challenges I think people have is that snapshots by themselves are almost worthless, in that I have an EBS snapshot, it is sitting there now, it's costing me an undetermined amount of money because it's not exactly clear on a per snapshot basis exactly how large it is, and okay, great. Well, I'm looking for a file that was not modified since X date, as it was on this time. Well, great, you're going to have to take that snapshot, restore it to a volume and then go exploring by hand. Oh, it was the wrong one. Great. Try it again, with a different one.And after, like, the fifth or six in a row, you start doing a binary search approach on this thing. But it's expensive, it's time-consuming, it takes forever, and it's not a fun user experience at all. Part of the problem is it seems that historically, backup systems have no context or no contextual awareness whatsoever around what is actually contained within that backup.Sam: Yeah, yeah. I mean, you kind of highlighted two of the steps. It's more like a ten-step process to do, you know, granular file or folder-level recovery from a snapshot, right? You've got to, like you say, you've got to determine the point in time when that, you know, you knew the last time that it was around, then you're going to have to determine the volume size, the region, the OS, you're going to have to create an EBS volume of the same size, region, from that snapshot, create the EC2 instance with the same OS, connect the two together, boot the EC2 instance, mount the volume search for the files to restore, download them manually, at which point you have your file back. It's not back in the machine where it was, it's now been downloaded locally to whatever machine you're accessing that from. And then you got to tear it all down.And that is again, like you say, predicated on the fact that you knew exactly that that was the right time. It might not be and then you have to start from scratch from a different point in time. So, backup tooling from backup vendors that have been doing this for many, many years, knew about this problem long, long ago, and really seek to not only automate the entirety of that process but make the whole e-discovery, the search, the location of those files, much, much easier. I don't necessarily want to do a vendor pitch, but I will say with Veeam, we have explorer-like functionality, whereby it's just a simple web browser. Once that machine is all spun up again, automatic process, you can just search for your individual file, folder, locate it, you can download it locally, you can inject it back into the instance where it was through Amazon Kinesis or AWS Kinesis—I forget the right terminology for it; some of its AWS, some of its Amazon.But by-the-by, the whole recovery process, especially from a file or folder level, is much more pain-free, but also much faster. And that's ultimately what people care about how reliable is my backup? How quickly can I get stuff online? Because the time that I'm down is costing me an indescribable amount of time or money.Corey: This episode is sponsored in part by our friends at Redis, the company behind the incredibly popular open source database. If you're tired of managing open source Redis on your own, or if you are looking to go beyond just caching and unlocking your data's full potential, these folks have you covered. Redis Enterprise is the go-to managed Redis service that allows you to reimagine how your geo-distributed applications process, deliver, and store data. To learn more from the experts in Redis how to be real-time, right now, from anywhere, visit redis.com/duckbill. That's R - E - D - I - S dot com slash duckbill.Corey: Right, the idea of RPO versus RTO: recovery point objective and recovery time objective. With an RPO, it's great, disaster strikes right now, how long is acceptable to it have been since the last time we backed up data to a restorable point? Sometimes it's measured in minutes, sometimes it's measured in fractions of a second. It really depends on what we're talking about. Payments databases, that needs to be—the RPO is basically an asymptotically approaches zero.The RTO is okay, how long is acceptable before we have that data restored and are back up and running? And that is almost always a longer time, but not always. And there's a different series of trade-offs that go into that. But both of those also presuppose that you've already dealt with the existential question of is it possible for us to recover this data. And that's where I know that you are obviously—you have a position on this that is informed by where you work, but I don't, and I will call this out as what I see in the industry: AWS backup is compelling to me except for one fatal flaw that it has, and that is it starts and stops with AWS.I am not a proponent of multi-cloud. Lord knows I've gotten flack for that position a bunch of times, but the one area where it makes absolute sense to me is backups. Have your data in a rehydrate-the-business level state backed up somewhere that is not your primary cloud provider because you're otherwise single point of failure-ing through a company, through the payment instrument you have on file with that company, in the blast radius of someone who can successfully impersonate you to that vendor. There has to be a gap of some sort for the truly business-critical data. Yes, egress to other providers is expensive, but you know what also is expensive? Irrevocably losing the data that powers your business. Is it likely? No, but I would much rather do it than have to justify why I'm not doing it.Sam: Yeah. Wasn't likely that I was going to win that 2 billion or 2.1 billion on the Powerball, but [laugh] I still play [laugh]. But I understand your standpoint on multi-cloud and I read your newsletters and understand where you're coming from, but I think the reality is that we do live in at least a hybrid cloud world, if not multi-cloud. The number of organizations that are sole-sourced on a single cloud and nothing else is relatively small, single-digit percentage. It's around 80-some percent that are hybrid, and the remainder of them are your favorite: multi-cloud.But again, having something that is one hundred percent sole-source on a single platform or a single vendor does expose you to a certain degree of risk. So, having the ability to do cross-platform backups, recoveries, migrations, for whatever reason, right, because it might not just be a disaster like you'd mentioned, it might also just be… I don't know, the company has been taken over and all of a sudden, the preference is now towards another cloud provider and I want you to refactor and re-architect everything for this other cloud provider. If all that data is locked into one platform, that's going to make your job very, very difficult. So, we mentioned at the beginning of the call, Veeam is capable of protecting a vast number of heterogeneous workloads on different platforms, in different environments, on-premises, in multiple different clouds, but the other key piece is that we always use the same backup file format. And why that's key is because it enables portability.If I have backups of EC2 instances that are stored in S3, I could copy those onto on-premises disk, I could copy those into Azure, I could do the same with my Azure VMs and store those on S3, or again, on-premises disk, and any other endless combination that goes with that. And it's really kind of centered around, like control and ownership of your data. We are not prescriptive by any means. Like, you do what is best for your organization. We just want to provide you with the toolset that enables you to do that without steering you one direction or the other with fee structures, disparate feature sets, whatever it might be.Corey: One of the big challenges that I keep seeing across the board is just a lack of awareness of what the data that matters is, where you see people backing up endless fleets of web server instances that are auto-scaled into existence and then removed, but you can create those things at will; why do you care about the actual data that's on these things? It winds up almost at the library management problem, on some level. And in that scenario, snapshots are almost certainly the wrong answer. One thing that I saw previously that really changed my way of thinking about this was back many years ago when I was working at a startup that had just started using GitHub and they were paying for a third-party service that wound up backing up Git repos. Today, that makes a lot more sense because you have a bunch of other stuff on GitHub that goes well beyond the stuff contained within Git, but at the time, it was silly. It was, why do that? Every Git clone is a full copy of the entire repository history. Just grab it off some developer's laptop somewhere.It's like, “Really? You want to bet the company, slash your job, slash everyone else's job on that being feasible and doable or do you want to spend the 39 bucks a month or whatever it was to wind up getting that out the door now so we don't have to think about it, and they validate that it works?” And that was really a shift in my way of thinking because, yeah, backing up things can get expensive when you have multiple copies of the data living in different places, but what's really expensive is not having a company anymore.Sam: Yeah, yeah, absolutely. We can tie it back to my insurance dynamic earlier where, you know, it's something that you know that you have to have, but you don't necessarily want to pay for it. Well, you know, just like with insurances, there's multiple different ways to go about recovering your data and it's only in crunch time, do you really care about what it is that you've been paying for, right, when it comes to backup?Could you get your backup through a git clone? Absolutely. Could you get your data back—how long is that going to take you? How painful is that going to be? What's going to be the impact to the business where you're trying to figure that out versus, like you say, the 39 bucks a month, a year, or whatever it might be to have something purpose-built for that, that is going to make the recovery process as quick and painless as possible and just get things back up online.Corey: I am not a big fan of the fear, uncertainty, and doubt approach, but I do practice what I preach here in that yeah, there is a real fear against data loss. It's not, “People are coming to get you, so you absolutely have to buy whatever it is I'm selling,” but it is something you absolutely have to think about. My core consulting proposition is that I optimize the AWS bill. And sometimes that means spending more. Okay, that one S3 bucket is extremely important to you and you say you can't sustain the loss of it ever so one zone is not an option. Where is it being backed up? Oh, it's not? Yeah, I suggest you spend more money and back that thing up if it's as irreplaceable as you say. It's about doing the right thing.Sam: Yeah, yeah, it's interesting, and it's going to be hard for you to prove the value of doing that when you are driving their bill up when you're trying to bring it down. But again, you have to look at something that's not itemized on that bill, which is going to be the impact of downtime. I'm not going to pretend to try and recall the exact figures because it also varies depending on your business, your industry, the size, but the impact of downtime is massive financially. Tens of thousands of dollars for small organizations per hour, millions and millions of dollars per hour for much larger organizations. The backup component of that is relatively small in comparison, so having something that is purpose-built, and is going to protect your data and help mitigate that impact of downtime.Because that's ultimately what you're trying to protect against. It is the recovery piece that you're buying is the most important piece. And like you, I would say, at least be cognizant of it and evaluate your options and what can you live with and what can you live without.Corey: That's the big burning question that I think a lot of people do not have a good answer to. And when you don't have an answer, you either backup everything or nothing. And I'm not a big fan of doing either of those things blindly.Sam: Yeah, absolutely. And I think this is why we see varying different backup options as well, you know? You're not going to try and apply the same data protection policies each and every single workload within your environment because they've all got different types of workload criticality. And like you say, some of them might not even need to be backed up at all, just because they don't have data that needs to be protected. So, you need something that is going to be able to be flexible enough to apply across the entirety of your environment, protect it with the right policy, in terms of how frequently do you protect it, where do you store it, how often, or when are you eventually going to delete that and apply that on a workload by workload basis. And this is where the joy of things like tags come into play as well.Corey: One last thing I want to bring up is that I'm a big fan of watching for companies saying the quiet part out loud. And one area in which they do this—because they're forced to by brevity—is in the title tag of their website. I pull up veeam.com and I hover over the tab in my browser, and it says, “Veeam Software: Modern Data Protection.”And I want to call that out because you're not framing it as explicitly backup. So, the last topic I want to get into is the idea of security. Because I think it is not fully appreciated on a lived-experience basis—although people will of course agree to this when they're having ivory tower whiteboard discussions—that every place your data lives is a potential for a security breach to happen. So, you want to have your data living in a bunch of places ideally, for backup and resiliency purposes. But you also want it to be completely unworkable or illegible to anyone who is not authorized to have access to it.How do you balance those trade-offs yourself given that what you're fundamentally saying is, “Trust us with your Holy of Holies when it comes to things that power your entire business?” I mean, I can barely get some companies to agree to show me their AWS bill, let alone this is the data that contains all of this stuff to destroy our company.Sam: Yeah. Yeah, it's a great question. Before I explicitly answer that piece, I will just go to say that modern data protection does absolutely have a security component to it, and I think that backup absolutely needs to be a—I'm going to say this an air quotes—a “first class citizen” of any security strategy. I think when people think about security, their mind goes to the preventative, like how do we keep these bad people out?This is going to be a bit of the FUD that you love, but ultimately, the bad guys on the outside have an infinite number of attempts to get into your environment and only have to be right once to get in and start wreaking havoc. You on the other hand, as the good guy with your cape and whatnot, you have got to be right each and every single one of those times. And we as humans are fallible, right? None of us are perfect, and it's incredibly difficult to defend against these ever-evolving, more complex attacks. So backup, if someone does get in, having a clean, verifiable, recoverable backup, is really going to be the only thing that is going to save your organization, should that actually happen.And what's key to a secure backup? I would say separation, isolation of backup data from the production data, I would say utilizing things like immutability, so in AWS, we've got Amazon S3 object lock, so it's that write once, read many state for whatever retention period that you put on it. So, the data that they're seeking to encrypt, whether it's in production or in their backup, they cannot encrypt it. And then the other piece that I think is becoming more and more into play, and it's almost table stakes is encryption, right? And we can utilize things like AWS KMS for that encryption.But that's there to help defend against the exfiltration attempts. Because these bad guys are realizing, “Hey, people aren't paying me my ransom because they're just recovering from a clean backup, so now I'm going to take that backup data, I'm going to leak the personally identifiable information, trade secrets, or whatever on the internet, and that's going to put them in breach compliance and give them a hefty fine that way unless they pay me my ransom.” So encryption, so they can't read that data. So, not only can they not change it, but they can't read it is equally important. So, I would say those are the three big things for me on what's needed for backup to make sure it is clean and recoverable.Corey: I think that is one of those areas where people need to put additional levels of thought in. I think that if you have access to the production environment and have full administrative rights throughout it, you should definitionally not—at least with that account and ideally not you at all personally—have access to alter the backups. Full stop. I would say, on some level, there should not be the ability to alter backups for some particular workloads, the idea being that if you get hit with a ransomware infection, it's pretty bad, let's be clear, but if you can get all of your data back, it's more of an annoyance than it is, again, the existential business crisis that becomes something that redefines you as a company if you still are a company.Sam: Yeah. Yeah, I mean, we can turn to a number of organizations. Code Spaces always springs to mind for me, I love Code Spaces. It was kind of one of those precursors to—Corey: It's amazing.Sam: Yeah, but they were running on AWS and they had everything, production and backups, all stored in one account. Got into the account. “We're going to delete your data if you don't pay us this ransom.” They were like, “Well, we're not paying you the ransoms. We got backups.” Well, they deleted those, too. And, you know, unfortunately, Code Spaces isn't around anymore. But it really kind of goes to show just the importance of at least logically separating your data across different accounts and not having that god-like access to absolutely everything.Corey: Yeah, when you talked about Code Spaces, I was in [unintelligible 00:32:29] talking about GitHub Codespaces specifically, where they have their developer workstations in the cloud. They're still very much around, at least last time I saw unless you know something I don't.Sam: Precursor to that. I can send you the link—Corey: Oh oh—Sam: You can share it with the listeners.Corey: Oh, yes, please do. I'd love to see that.Sam: Yeah. Yeah, absolutely.Corey: And it's been a long and strange time in this industry. Speaking of links for the show notes, I appreciate you're spending so much time with me. Where can people go to learn more?Sam: Yeah, absolutely. I think veeam.com is kind of the first place that people gravitate towards. Me personally, I'm kind of like a hands-on learning kind of guy, so we always make free product available.And then you can find that on the AWS Marketplace. Simply search ‘Veeam' through there. A number of free products; we don't put time limits on it, we don't put feature limitations. You can backup ten instances, including your VPCs, which we actually didn't talk about today, but I do think is important. But I won't waste any more time on that.Corey: Oh, configuration of these things is critically important. If you don't know how everything was structured and built out, you're basically trying to re-architect from first principles based upon archaeology.Sam: Yeah [laugh], that's a real pain. So, we can help protect those VPCs and we actually don't put any limitations on the number of VPCs that you can protect; it's always free. So, if you're going to use it for anything, use it for that. But hands-on, marketplace, if you want more documentation, want to learn more, want to speak to someone veeam.com is the place to go.Corey: And we will, of course, include that in the show notes. Thank you so much for taking so much time to speak with me today. It's appreciated.Sam: Thank you, Corey, and thanks for all the listeners tuning in today.Corey: Sam Nicholls, Director of Public Cloud at Veeam. I'm Cloud Economist Corey Quinn and this is Screaming in the Cloud. If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice, whereas if you've hated this podcast, please leave a five-star review on your podcast platform of choice, along with an angry insulting comment that takes you two hours to type out but then you lose it because you forgot to back it up.Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.Announcer: This has been a HumblePod production. Stay humble.
In deze aflevering Github codespaces nu breder beschikbaar, makkelijker je data residency kiezen en MFA number match breed beschikbaar! Presentatie: Barbara Forbes & Jos van Schouten Productie / edit: Nils Bloem Powered by OGD ict-diensten https://www.ogd.nl/ Github Codespaces: https://github.blog/2022-11-10-whats-new-with-codespaces-from-github-universe-2022/ Microsoft 365 Advanced Data Residency: https://learn.microsoft.com/en-us/microsoft-365/enterprise/advanced-data-residency?view=o365-worldwide Teams spelletjes: https://www.microsoft.com/en-us/microsoft-365/blog/2022/11/16/build-connections-with-games-for-work-a-new-microsoft-teams-app/ MFA: https://learn.microsoft.com/en-us/azure/active-directory/authentication/how-to-mfa-number-match#enable-number-matching-in-the-portal
The idea of using WordPress to power a social networking site isn't new. The BuddyPress plugin has offered this functionality since 2009. But Elon Musk's recent takeover of Twitter (and the ensuing chaos) has WordPress community members taking another look at what's possible. Mike McAlister recently shared a concept for OpenPress, a plugin that would turn your WordPress install into a microblogging platform. Your site's content can then be connected with, and followed by, other sites using OpenPress. The aim is to build a network of related content that allows creators to maintain ownership. As McAlister puts it, the network “is powered by individuals, but connected as a community.” Who knows where the OpenPress concept will go. But it's an interesting proposition for those looking to ditch Twitter and other corporately-owned communities. Links You Shouldn't Miss The WP Minute's Eric Karkovack is intrigued by the potential of managed WooCommerce hosting. He took a look at what it can and can't do to simplify the eCommerce platform. In an effort to decrease the barriers to contributing to WordPress core, project lead developer Helen Hou-Sandí has proposed using GitHub Codespaces. The tool allows for the rapid setup of a development environment. Sarah Gooding has the details at WP Tavern. In a tongue-and-cheek effort to compete with Twitter's new account verification system, Tumblr is selling two “useless” checkmarks for a one-time fee of $7.99. Yes, that's one penny less than Twitter's service. The microblogging platform is owned by Automattic. To paraphrase CEO (and WordPress co-founder) Matt Mullenweg's tweet, two checkmarks are cooler than one. What's your top WordPress-related story for 2022? The WP Minute wants to know! Share your thoughts with us on Twitter. Classifieds listings buy yours Equalized Digital Get 50% off Equalize Digital Accessibility Checker November 20-30 with coupon code BlackFriday22 and start making your website accessible. From the Grab Bag Now it's time to take a look at some other interesting topics shared by our contributors. WordPress 6.1.1 was released on November 15 and fixes a total of 50 bugs. If you missed out on WordCamp Italia 2022, a nearly 9-hour recording of the event is available for viewing. How would you like the WordPress Site Editor to work? What pain points would you like to see resolved? The project has put out a call for user feedback. It's been a long time coming, but WooCommerce 7.1 is finally adding the ability to store orders in a
[00:00:15] What is this cursed idea thing Andrew did with Storybook?[00:05:31] Andrew mentioned using MDX format and he tells us what it is, Chris brings up the PHP days and components, and Andrew talks about architecture. [00:10:51] Being a visual person, Andrew explains another thing he really likes about Storybook.[00:17:29] Jason talks about finding his Zen using Tailwind in a project. [00:20:25] Chis wonders if Jason runs into issues with having to undo some of the stuff, and Jason explains how he's been using more CSS and a problem he ran into. [00:24:02] CSS Variables are discussed and why they're awesome, and Andrew tells us about the fallback for CSS Variables. [00:24:37] There's a discussion about using JIT and PurgeCSS, an amazing tool. [00:27:41] Chris tells us about using a template from Bootstrap for the Rails Hackathon homepage.[00:30:17] The guys discuss using React Components, Bootstrap, and using Tailwind over Bootstrap. [00:33:57] Jason talks about Inertia, which is a library for Laravel and Rails. [00:34:37] Find out what Jason is doing with View Components and Job Boardly, that he hopes will get Andrew's acceptance.[00:36:29] Andrew explains why he's obsessed with component architecture, and Chris tells us about his first real serious project he did with the Python recreation of the apt package manager. [00:38:55] Chris announces Tender Love (a.k.a. Aaron Patterson) mentioned he's going to cut a new release of Rails, and he talks about Rails Hackathon coming up.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason Twitter10 Best Tech Podcasts in 2022 (as Chosen by the Rails Community)-Planet ArgonRemote Ruby Podcast-Episode 165: GitHub Codespaces & Docker with Benjamin Wood (Recommended episode from Planet Argon)StorybookMDXPurgeCSSBootstrapRails HackathonRemote Ruby Podcast-Episode 139: Learning in Public, Alpine & InertiaRemote Ruby Podcast-Episode 66: Joined by Jonathan Reinink, Creator of Inertia.jsAaron Patterson TwitterRuby Radar NewsletterRuby Radar Twitter
In episode 110, we talked about, and rejected, the argument for the “End of Localhost Development”. Carter Bryden joins us to share a perspective from the other side, one in favor of remote development. We learn about the benefits to contractors, PR reviews, giving demos, and how containerizing our development environment even improves local development. We learn about the tools, services, and techniques that make it possible. An interesting look into a different way of developing our favorite language! Show Notes online - http://podcast.thinkingelixir.com/116 (http://podcast.thinkingelixir.com/116) Elixir Community News - https://www.humblebundle.com/books/elixir-programming-pragmatic-programmers-books (https://www.humblebundle.com/books/elixir-programming-pragmatic-programmers-books) – Elixir Programming Book bundle - Humble Bundle - https://twitter.com/whatyouhide/status/1566774954393305088 (https://twitter.com/whatyouhide/status/1566774954393305088) – Upcoming Elixir features - https://github.com/elixir-lang/elixir/pull/12109 (https://github.com/elixir-lang/elixir/pull/12109) – PR adding diffs for "mix format --check-formatted" - https://twitter.com/scenicframework/status/1566720982412173312 (https://twitter.com/scenicframework/status/1566720982412173312) – Scenic v0.11.0 was released - https://hexdocs.pm/scenic/upgradingtov0-11.html (https://hexdocs.pm/scenic/upgrading_to_v0-11.html) – Scenic upgrade guide - https://twitter.com/dockyard/status/1565769297393135617 (https://twitter.com/dockyard/status/1565769297393135617) – DockYard ElixirConf keynote talked about 4 major R&D projects. - https://dockyard.com/blog/2022/08/29/dockyard-r-d-beacon-brings-phoenix-speeds-to-your-cms (https://dockyard.com/blog/2022/08/29/dockyard-r-d-beacon-brings-phoenix-speeds-to-your-cms) – DockYard's Beacon CMS project - https://twitter.com/amnicd/status/1563253296101756929 (https://twitter.com/amnicd/status/1563253296101756929) – Another example of a mobile app written in Elixir. - https://gitlab.com/Nicd/geo-therminator (https://gitlab.com/Nicd/geo-therminator) – Gitlab project of the Android Elixir app - https://podcast.thinkingelixir.com/98 (https://podcast.thinkingelixir.com/98) – Interview with Dominic Letz about Elixir Desktop project - https://twitter.com/atyborska93/status/1565997307031703553 (https://twitter.com/atyborska93/status/1565997307031703553) – Elixir track on Exercism.io is now running Elixir 1.14. - https://surface-ui.org/blog/what-s-new-in-surface-0-8 (https://surface-ui.org/blog/what-s-new-in-surface-0-8) – Surface 0.8.0 was released during the conference - https://github.com/surface-ui/surface/blob/main/CHANGELOG.md#v080-2022-09-01 (https://github.com/surface-ui/surface/blob/main/CHANGELOG.md#v080-2022-09-01) – Surface changelog includes "Scoped CSS styles" - https://twitter.com/livebookdev/status/1565434195324936194 (https://twitter.com/livebookdev/status/1565434195324936194) – José Valim tweeted demonstration of Livebook's ability to manipulate pipelines using dbg feature Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://podcast.thinkingelixir.com/110 (https://podcast.thinkingelixir.com/110) – End of Localhost Development? - https://twitter.com/CarterBryden/status/1555299999952486401 (https://twitter.com/CarterBryden/status/1555299999952486401) – Twitter response to episode prompting interview - https://quantifiedcitizen.com (https://quantifiedcitizen.com) - https://approximated.app (https://approximated.app) - https://github.com/features/codespaces (https://github.com/features/codespaces) – Github CodeSpaces - https://aws.amazon.com/cloud9/ (https://aws.amazon.com/cloud9/) – Amazon Cloud9 - https://www.gitpod.io/ (https://www.gitpod.io/) – Gitpod.io - https://code.visualstudio.com/docs/remote/containers (https://code.visualstudio.com/docs/remote/containers) - https://github.com/jamestthompson3/nvim-remote-containers (https://github.com/jamestthompson3/nvim-remote-containers) - https://mosh.org/ (https://mosh.org/) - https://rails.new/ (https://rails.new/) Guest Information - https://twitter.com/carterbryden (https://twitter.com/carterbryden) – on Twitter - https://approximated.app/ (https://approximated.app/) – Solo app Carter mentioned - http://quantifiedcitizen.com/ (http://quantifiedcitizen.com/) – Carter's day job - http://indielixir.com (http://indielixir.com) – Carter's hobby Elixir podcast Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
Web and Mobile App Development (Language Agnostic, and Based on Real-life experience!)
(Part 1/2) A little bit about GitHub Codespaces. #snowpal #projectmanagement Keep it simple. Keep it on https://snowpal.com.
Web and Mobile App Development (Language Agnostic, and Based on Real-life experience!)
(Part 2/2) A little bit about GitHub Codespaces. #snowpal #projectmanagement Keep it simple. Keep it on https://snowpal.com.
Steph is joined by a very special guest and fellow thoughtboter, Rob Whittaker. ngrok (https://ngrok.com/) Time Off Book (https://www.timeoffbook.com/) Rob's Codespace Setup (https://github.com/purinkle/codespace) Rob Whittaker on Twitter (https://twitter.com/purinkle) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: STEPH: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Steph Viccari. And today, I'm joined by a very special guest and fellow thoughtboter, Rob Whittaker. Rob has been in the software business for the past 15 years and spent the last five and a half years at thoughtbot. Rob is the Director of Software Development for our Europe, Middle East, and Africa team and, in his spare time, likes to hunt down delicious beers and coffee. Rob, welcome to The Bike Shed. It's so lovely to have you on the show today. ROB: Thank you for having me. It's a pleasure to be here. Yeah, thank you for that lovely introduction and my far too complicated job title. It sounds more serious than it actually is. STEPH: Well, you do have a fancy job title, yeah, Director of Software Development. [laughs] ROB: Yeah, it's the added on bit where it's Europe, Middle East, and Africa where I feel like there's about 20 of us maximum. But that sounds more grandiose than it actually is. STEPH: Yeah, that's something that Chris and I haven't dug into too much on previous episodes are all the different teams that we have at thoughtbot. So the shorter way of saying that is Launchpad II, but not everybody knows that. But I'm going to circle back to that because I would love to talk a bit more about that specific team and the dynamic. But before we do that, I'm realizing I'm not familiar with your origin story as to how you came to thoughtbot and then how you became this very fancy grand title of Director of Software Development for Europe, Middle East, and Africa team. ROB: Yeah, there's a bit of history about thoughtbot London as well that kind of ties into this. So before thoughtbot Launchpad II, it was thoughtbot London before we went remote. And initially, we had the plan of setting up a new studio in London to help expand thoughtbot outside of the Americas, but that plan fell through. But he knew some people from another agency called New Bamboo, and so we merged with or acquired that agency, and that agency then became the thoughtbot London team. I'm actually the first hire or...not the first hire, that's not true, the first development hire for the thoughtbot London team that would then become launchpad II. I was at the Bath Ruby Conference six years ago, I guess. And there was just an advert up on the hiring board that Nick Charlton, who's a Senior Developer and Development Team Lead at Launchpad II now, had put up. And I saw it, and I was talking to somebody who was my mentor at the time that I'd worked with at a previous job at onthebeach.co.uk, a guy called Matt Valentine-House who now works at Shopify who, actually, fun fact, his face appears at the top of Ruby Weekly this week. If you open up this week's Ruby Weekly, you can see Matt Valentine-House, who said to me, "Yeah, apply for it, why not? You see what happens." And I was like, "Okay," and just kind of took the leap. So I thought, thoughtbot, why would thoughtbot want me? Which is something I think a lot of people think when they want to join thoughtbot. They think, well, I can't do that. But I would implore people to apply. And so, from there, I never really wanted to move to London. I'd always lived in the North West of the UK. I made that leap to London because I wanted to work at thoughtbot. And then, gradually, over time, the London team expanded, and we needed to split out the management roles, and the development director role came up. And I've always enjoyed the coaching side of software development. It seems that you gain more experience as you help people with less experience, and I've always enjoyed coaching. And that was a big part of the role for me. So I was fortunate enough to be allowed to do it. And then, from there, things have grown. Yeah, so it's been a really interesting journey as a development director. The London studio went through a pretty tough time at one point where not long after I became development director that two-thirds of the team, in the space of two weeks, decided to hand their notice in and unbeknownst to each other. And so, all of a sudden, we didn't have a very big team. We didn't have very many prospects, and so it was a tough time. And so it's really nice to look back on the last three years and go, okay, we came through that. We're now one of the stronger teams at thoughtbot. And somebody actually asked me in an interview the other day, somebody we actually hired, not just based on this question, but he said, "What is your proudest moment of working at thoughtbot?" And I was like, that's one of the best questions I've heard from a candidate. And I said, "Hmm, that's interesting." It's not anything development-related, but it's that I can now look back on this team and say this is the team that I have grown in my image and all these people apart from Nick, who was the person who put the advert of it at Bath Ruby. I've hired all these people, and so the buck stops with me really because if anybody isn't able to perform, then it's kind of my fault because these are the people that I want to grow into being the team and see be a successful product design team or product development team, which brings us to modern-day I guess. So yeah, that was a long origin story. That's pretty much my whole thoughtbot biography. And I apologize. STEPH: That was perfect. I thoroughly enjoyed hearing it. And yeah, that's an awesome question. What's your proudest moment, like, part of a team? That can yield so many insights. I love that question. And I love your answer as well in terms of this is the team. We've pulled through a hard time. And then we've built everybody to the point that they are now, which kind of leads in perfectly to my next question. So being the software development director, could you walk us through a little bit of like, that's one of those titles I feel like a lot of companies have, but they can be very different from company to company. Would you mind walking us through a bit of the day-to-day in the life of being a development director? ROB: Yeah, sure. It's one of those things where I think this is something that I'm not sure if it's unique to thoughtbot, but you end up taking on a lot of hats at thoughtbot. So I know you're a team lead. So you have to balance your responsibilities as an individual contributor, which is a term I don't like, but I haven't got a better way to say it yet, and your development team lead roles. And I have similar sort of responsibilities where I have to do my individual contributor work. I have to do my director work. I'm also on our DEI Council. So I have to add that work in too, and make sure it's balanced out. So the start of my day is very much about prioritizing things. I know you and Chris, a few episodes ago, had quite lengthy discussions about productivity systems and what tools Chris wants to use. And I'm a big fan of Things, and I've been using it for maybe ten years, if not more, that I've now got my system down that I'm able to prioritize things in the way that I can pick up the right task at the right time. So a big part of my day-to-day is figuring out what is the most important thing to work on? So I have my client work, and then it's about supporting the team from that point. And the big part of my idea of what a manager is is that my job isn't to tell you what to do; my job is to find out what you want to do and direct you in a place where you can find the answer. Or I can give you some guidance about where to find the answer. And I feel like I'm doing a bad job as a manager where if I have to act as a middle person. Because if somebody comes to me and says, "Oh, I want to do this thing," And I say, "Well, I'll talk to that person for you," and then come back, I have failed. And my job is to say, "Oh, you should talk to that person about this." And to some extent, it's about being lazy. I don't want to be doing too much stuff because I have other things to do. But I want to make sure that those people have the right frameworks and guidelines in place so that I can point them in the right direction. STEPH: I think the fancy term for that is just delegating. [laughs] ROB: Yes, thank you. [laughs] STEPH: But I like lazy. [laughter] I like that one as well. I love that framing of a manager where you're not telling someone to do, but as your job, you are helping that person figure out what they want to do and then supporting them. I've been chatting with Chris recently and some others because I've been reading the book Resilient Management by Laura Hogan. And it's really helped me cement the difference between mentorship, coaching, and sponsorship. And I realized that I'm already falling a lot into the coaching and sponsorship because mentorship can be wonderful, but it is more directive of like, this is what I've done. And this is what has worked for me, and you should do this too. Versus the coaching and sponsorship, I think aligns far more perfectly with what you described as management, where it is my job to figure out what brings you joy, what brings you energy, and then how to help you progress to your next goals and your next steps in your career. ROB: Yeah, I think Laura Hogan is a great resource like her blog posts and books. I haven't read Resilient Management. But I know that the team leads on my team had been on her training courses, and they say how great it is. And there's also a blog post of hers that's about managing in tough times. It has a much better title than that. But it's about how do we be good managers in such uncertain times when there are a lot of things going on around the world right now that we all have to deal with? And helping people deal with those situations. Because at the end of the day, work isn't the most important thing; the most important thing is living. And it's something I say to my team, especially when people feel like...it's something that I say to my team when they're not feeling well. The most important thing is that you get better. And thoughtbot is still going to be here. The most important thing is how you live your life and how you look after yourself, and everything else is secondary. STEPH: Absolutely. Well, and everybody needs something different from work too. Some people may be in a state where they really need more stability and predictability from their work. And some people may be in a space where everything else outside of work is very stable and calm, and then they want work to bring the challenge and the volatility and the variety to life. So I remind myself very often that not everybody wants the same thing from work and to figure out what it is that someone wants from work. And then your seasons change. You may be in a season of where you want stability, or then you may be in a season of like, I'm ready to grow and push and take some risks. So helping someone identify which season of work they're in. ROB: Yeah, I 100% agree. What people can't see is me nodding vigorously on the other side of this call. It's very much about understanding because everybody is different. And that's what we want from a good team; it's understanding everybody's different approach to things. And so sometimes people want the distraction of work because they don't want the time off to think about other things. They want to be able to sit and concentrate on something. And it's understanding different people. STEPH: Yeah, that's a great point. I'm curious; you mentioned that as part of being development director, you are also, in addition to managing the team and being part of DEI then, there's also your day-to-day client work. I think you've started a new client recently. Could you tell me more about that? ROB: Yeah, I'd recently been working for a client for two and a half years, which is a very long time to be working with one client at thoughtbot. And it came to the time where I was ready for a new challenge, and it was stable enough for me to move on. So I've been working for a company in the UK. They allow customers to buy and sell cars, not between customers, the customers like companies like Auto Trader but customers to dealers and back and forth. And primarily, they worked with buying cars. And they've launched a product in the UK where people can sell their cars as well because they found that 70% of people who are buying cars also want to sell their cars. And from there, they're now looking to expand into Germany and Spain, so we are helping them to do that. And it's an interesting project, not necessarily from a technical point of view, but I might come back to that but definitely from a cultural point of view. The product at the moment allows you to put in a license plate or a registration plate for a car. And there's then a service in the UK that will allow you to pull up the maker model and the service history of that car. But you can't do that in Germany because it's against the privacy laws to find something from registration plates. And so it's interesting these different cultural aspects that you have to take into account when expanding into other countries that you aren't from and that you have less knowledge about. Because I'm also aware that credit cards aren't a big thing in Germany either. So you have to think about how they pay for things in different countries. And the previous company I was working for they're based in the Middle East. And so we had to take into account how we would do right to left design in a mobile app, which is really interesting from a western point of view that you get so used to swiping through an experience from left to right. But then it's not just the screen that's right to left. The journey moves from right to left. So you have to get used to the transitions of the screen going the other way and not thinking of that as going backwards. It's one of the best things about working in this region is that we get to deal with so many different cultures and how they expect to use applications. It's really satisfying. STEPH: That's fascinating. Yeah, I haven't gotten to work on a project like that that has those types of considerations. I think the most relatable experience I have is more working in healthcare because that's one of those areas that I'm certainly not proficient. I've become more proficient because of the type of projects that I've worked on. But I'm curious, for expanding into other regions and cultures, do those teams typically have an expert on their team that then helps guide the development process? Or, as you mentioned, the process of buying a car could be very different in some of the legal aspects that you're up against. Is there someone that you can turn to that's then helping mentor or be aware of that process? ROB: Yes, the current client they have a team based in Germany, people who are from Germany that are advising us on different cultural aspects or legislative things. They are doing a lot of data analysis for us because we need a new service that we can use for looking up car details. Because there is a service that you give different information to to get information about the car back from. So yeah, we do have that team there. But that's not always the case because every client is different. The company that we're working for in the Middle East didn't have a team. They had two developers who were helping us. But we have to figure things out just from their cultural background to ask them questions about things and allow them to advise us, but nobody who was really a specialist. But that's an interesting thing as well, not just the cultural aspects of the customers but the cultural aspects of the company that you work for. We definitely found that the company in the Middle East was more hierarchical. And so that's another challenge that you have to work with because we tend to work in quite a flat way where we tend to default as on thoughtbot projects, of not having a point person on a project. Everybody is there to answer the questions. But some teams or clients want that point person. And so, we adapt and change to allow for that to happen and work in that way. But it is interesting to work in different companies as well as working as an agency. STEPH: Yeah, you bring up a really good point of something that I don't reflect on very often, but it's something that I really appreciate about our thoughtbot culture is that we do try to strive for a very flat hierarchy. But also in working with clients, we purposely will avoid like, if there are two or more thoughtboters on a project, we don't want one person that is then the primary contact between the client and the thoughtbot team. The goal is that everybody shows up. Everybody is part of the process; everybody is part of meetings. And we do have an advisor for projects, but otherwise, we work very hard to make sure that there's not just one person that's then responsible for communication. We want everybody to have opportunities to be part of meetings, to lead meetings, to take on initiatives versus having that one person. That is something that I really appreciate that we do. ROB: Yeah. And it's more noticeable when you go to places where that isn't the norm, and you appreciate it more. And I think a big part of that is how much we are trusted. And we trust people to trust us, I guess. STEPH: Yeah. And I think it fits in nicely with circling back to the management conversation is that when people have access to those opportunities, that makes my job so much easier as a team lead where then there are more opportunities to sponsor someone or to coach someone as to how they can then be the person that then takes on a project or if they want to lead a particular meeting, or if they want to help a team introduce retrospectives into their process. So it gives more opportunities for me to then coach someone into expanding their skill set in those ways. ROB: Yeah, that's interesting to think about, allowing yourself to coach other people in that role. Because as we gain more experience and become senior developers, we naturally fall into that role of taking the lead on projects, even when we're not asked to. But then, when you gain other responsibilities in the management track, so you as a team lead and me as a team lead and a development director, it could be better for you to not take that role and allow somebody else to come into that role so you can coach them. That's been playing on my mind the last couple of days. Josh Clayton, who's the Managing Director for one of our teams in the Americas, raised it on our pull request in our handbook where we were talking about team leads having a dedicated day to concentrate on team lead things. It's one of those things where somebody says something, and it's like, oh yeah, that really clicks. Maybe that's why we have been having certain struggles on projects where we need to rearrange things and learn from that and so we can be better on projects in the future. So that's something that really resonated with me, and it's flying around in the back of my mind at the moment. STEPH: Yeah, that really resonates with me because while the predominant part of being a team lead at thoughtbot is having one-on-ones with folks, I find that when I have more time, a lot of the work also falls outside of that one-on-one where it's following up on conversations around hey, this person mentioned they're really interested in growing their skill. How can I help them? How can I help find opportunities? Or I know that they're currently stretching their skill set right now. If I have some extra time, then I can check in with them. I can pair with them. I can see how things are going. So I find that while the one-on-ones are the staple thing that happens every two weeks, there's a lot of other behind-the-scenes work that's going on as well to make sure that that person is growing and feeling really fulfilled by their work. ROB: I know we've spoken a lot about the product side and the client side of working on the new project that I'm working on. There are some interesting technical sides to it as well. The client has found that they have had some issues with Haskell and running on M1 Macs. And so, they've decided to take the leap and use GitHub Codespaces as their primary development environment, which has been interesting. I had heard about it but only in the background. I hadn't read anything about it or hadn't had any direct conversations. I just heard that there was a thing. So it's been quite interesting to play with that. It's interesting the way the client is using it as well because they're using a Dockerized environment effectively inside Docker by using Codespaces. So you start the Codespace, which very basically is a Docker instance somewhere on GitHub's infrastructure. It's built very much for Visual Studio Code, and so you can just directly attach your Visual Studio Code session to the Codespace and go from there, but I'm a Vim user. I've started to feel like a bit of an old guard or a curmudgeon recently where I've been like; maybe I need to use Visual Studio Code. Maybe I should just unlearn my Vim key bindings and learn the Visual Studio ones. And people say, "Oh, you could just use The Vim key bindings in VS Code." I'm like, that's cheating. I spent the time to learn the key bindings for Vim. I will take the time to learn the key bindings for Visual Studio Code and use it for the way it's intended. So it's been interesting to understand how Codespaces works, not necessarily in the way, it's intended. So you can still SSH into a Codespace session, but then you lose all the lovely setup stuff that you might have on your local machine. So I did spend half a day porting my dotfiles which are based off thoughtbot's dotfiles, into something that Codespaces can use and made it publicly available. So if you go to github.com/purinkle/codespace, you can see what I use to set up my Codespace environment. And once that's set up, it becomes a bit easier because then you have all the things that you're used to running locally. It is very much early days for how the client is using it. And so they're really open to saying like, okay, let's find out what's not working, and let's work and figure out how to get it up and running properly. So one of the things we do find is that Codespaces do timeout after a while. And then you might lose, like, even if I've created a tmux session, that tmux session disappears. And so I have to go in and create it again. I'm not sure what the timeouts are. I haven't had time to look into what those timeouts are yet. But that's definitely the main pain point at the moment of it being used as a development environment. It's been interesting. It's been kicking around in the back of my head like the difference between developing locally and deploying locally. And it's something that I wanted to talk to people at thoughtbot and outside of thoughtbot as well to understand that more. Because I don't think you need everything running to develop locally, but you might need it to deploy locally. It's interesting to me to understand how different companies work on their products from that point of view. STEPH: Yeah, I'm selfishly excited that you are using Codespaces for a client project because I have kept an eye on it, and I'm very intrigued by it. But I also haven't used it for a project. And it sounds really neat. I'm curious, have you found that it has helped them with onboarding or if you need to switch from working on one application to another? Have you found that it has helped them with some of those? I'm guessing that's the problem that they're optimizing to solve is how do we help people run everything quickly without having to set it up locally? ROB: It's an interesting question because I don't have the comparison of trying to set up the environment as it was before. It was smoother. The main thing with access tokens because once you can set up your SSH keys and your GitHub tokens, it's just a case of running a script and letting it run. So yes, from that point of view, I can imagine if I tried to set up their previous environment, that it'd be a lot more challenging because they were using Vagrant and running things that way, which I know from experience would not be fun. And I know that my Mac fans would just be spinning all the time. It would be like an aeroplane was trying to take off. So I'm thankful for that, that I don't have that experience anymore that my machine is going to slow down all the time. We've had on a previous client who had a Dockerized environment, but you have to have it all running on your machine. There are pros and cons to everything with these things. And it's like you said, what is the problem they're trying to solve with introducing this setup? STEPH: Yeah, I can't decide if this is a good thing or a bad thing. But I'm also intrigued by the idea that if a team is using Codespaces, then that means everybody else is using VS Code. And you can still customize it so you can still have your own preferences. But that does set a standard, so everybody is using the same editor. There's a lot of cross-collaboration in terms of if you do run into an issue, then you can help each other out. Versus when I join other teams, everybody's using their preferred editor, and then there you may have a day where someone's like, "Oh, I'm really stuck because my particular editor is suddenly having a problem and can't connect." And then you have less people that are able to help them if they're not using that same editor. And I can't decide if I like that or if I hate it [laughs] in terms of taking away people's ability to pick and choose their editor. But then the gains of everybody is using the same thing which is nice and would be really great for pairing too. ROB: Yeah, that's an interesting point. I was talking to...I have a management coach. He's a PHP developer, and I'm a Rails developer. And we were talking about the homogenization of things nowadays. And is that good, or is that bad to use with stuff like RuboCop that lints everything, so it's exactly the same? Does that stifle creativity? But then, at the same time, the thing I like about Codespaces is I think we're biased coming at it from the point of view of Rails developers. And if you look at how you can use Codespaces in the browser directly from GitHub, that's quite interesting because now you're lowering the barrier to entry to get started and saying you don't need to have an editor. You don't have to set up everything. You can just do it from your browser. A few years ago, I used to volunteer or coach at an organization called codebar. They help people who are less represented in the tech community get represented in the tech community. And we would see a lot of people coming for sessions using...I forgot what it's called. What was it called? Cloud 66 or something. There was some remote development environment that people would come and say, "Oh, I've been using this," because they didn't know how to set up the necessary infrastructure to just get a Rails server going or things like that or didn't know how to set up Sublime or Atom or editor of choice. And it's really interesting if you remove your bias of 15 years of professional software development and go okay, if I were starting today, what would the environment look like, and how would I get started? I'm lucky enough that I've grown up with the web and seen how web development has changed and been able to gain more knowledge as it's appeared. I don't envy anybody who has to come into the industry now and suddenly have to drink from this firehose of all these different frameworks, all these different technologies. Yeah, I started off by just right-clicking and viewing source on HTML files back in 1998 or something ridiculous like that. And CSS didn't even exist or wasn't used. And so it's a much different world than 24 years ago. STEPH: That is something that Chris and I have mentioned on previous episodes where people are coming into software development, and as much as we love Vim and it sounds like you love Vim, our advice is don't start with Vim. Don't start there. You've got so much to learn. Start with something like VS Code that's going to help you out. And you make such a great point in regards to this lowering the barrier to entry. Because I have been part of a number of classes where you have people coming in with Macs or with a Windows machine, and then you're trying to get everybody set up. You want them to use the same browser for testing. And we spend like a whole class just getting everybody on the same page and making sure their machines are working or then troubleshooting if something's not. But if they can just go to GitHub and then they can run things seamlessly there, that's a total game-changer in terms of how I would teach a class, and it would just be far easier. So I hadn't even considered the benefits that would have for teachers or just for onboarding teams as well. But yeah, specifically for leading a class, I think that is a huge benefit. GitHub did some pretty cool stuff around when they were launching that as well because I went back and watched some of their GitHub Universe sessions that they had where they were talking about Codespaces. And one of the things that they did that I really appreciated was how they went about launching Codespaces. So initially, it was how fast can this be? Or what's our proof of concept? And I think when they were building this, they found it took about 45 minutes if they wanted to spin up an application and then provide you a development environment. And they're like, okay, cool, like, we can do this, but it's 45 minutes, and that's not going to work. And so then their next iteration, they got it down to 25 minutes, and then they got it down to 5 minutes. And now they've got it to the point that it's instantaneous because they're building stuff in the background overnight. And so then that way, when you click on it, it's just all ready for you. But I loved that cycle, that process that they went through of can we even do this? And then let's see, slowly, incrementally, how fast can we get it? And then, to get feedback, instead of transitioning their own internal teams to it right away, they created this more public club. I think they called it The Computer Club, something like that. And they're like, hey, if you want to be part of Codespaces or try out this new feature that we have, delete all the source and the things that you need locally, and then just commit to using Codespaces. And then, if you are stuck or if you have trouble, then your job is to let us know so then we can iterate, and we can fix it. I really liked that approach that they took to launching this product and then getting feedback from everyone and then improving upon it. ROB: Yeah, that sounds like an Agile developer's dream where you just put something out there that's the bare bones, and you're given license to learn from that experience and how people are actually using that tool. That's something we've actually tried to do on the client project at the moment is adding all the...now that there's a different flow in Germany, there are different questions we need to ask. And so that could be quite a complex thing to put into place. So what we said is what we're going to do is just put in the different screens, and all you have is one option to click. So you click that option, you go to the next one, go to the next one, go to the next one. Then we have something that the customer can click on and play with and understand, and then we can iterate on top of that. But it also allows us to identify areas of risk because you can go; oh, where does this information come from? But now we need to get this from a third-party service. So that's the riskiest thing we've got to work on here, where this other thing is just a hard-coded list of three-door or five-door cars. And so that's an easier problem to solve. So allowing yourself to put something that could be quite complex like GitHub Codespaces and go okay, we're going to put something out there. It takes 45 minutes to run-up. But we're telling you it takes 45 minutes to run it. We're not happy with it, but we want to learn how you're using it so that we can then improve it but improve it in the right direction. Because it might be that we get it to 20 minutes to start up, but you need it in half a second. That's a ridiculous example. Or it might be that you need to be able to use RubyMine with it instead of VS Code, and that's where the market isn't. That's the thing that you can't learn in isolation that you have to put something out there for people to use and play with. STEPH: There's one other cool feature I want to highlight that I realized that they offer as well. So in the past, I've used a tool called ngrok, which then you can make your localhost public so other people can access. You can literally demo what you're working on locally, and someone else can access it. And I think that it's very cool. It's come in handy a number of times. And my understanding is that Codespaces has that feature where they can make your localhost accessible. So your work in progress you can then share with someone, and I love that. ROB: Oh, that's really interesting. I didn't know you could do that. I know you could forward ports from your local machine to that. But I didn't know you could share it externally. That'd be really cool. I can see how that can be really helpful in demos and pairing. And it makes sense because it's not running on your computer. It's running on some remote architecture somewhere. That's interesting. STEPH: Well, that's the dream I've been sold from what I've been reading about GitHub Codespaces. So if I'm telling lies, you let me know [laughs] as you're working further in it than I am. But yeah, that was one of the features that I read, and I was like, yeah, that's great because I love ngrok for that purpose. And it would be really cool if that's already built into Codespaces as well. ROB: ngrok is really interesting with things like trying to get third-party services to work. So from, the previous client, they wanted an Alexa Skill. And so, if you're trying to work with an Alexa Skill, you have to sign in from Amazon's architecture onto your local machine. You have to use ngrok as the tool there. So I wonder if that could potentially solve a problem where if there are three developers trying to develop on this if you could point to one Codespace that you're all working on rather than... Because the problem we had was if me or Fritz or Rakesh was working on this, we'd have to go and then change the settings on the Amazon Alexa Skill to point to a different machine. Whereas I wonder if Codespasces allows you to have this entry point, you could point to like thoughtbot.codespace.github.com or something like that that would then allow you to share that instance. That's something interesting that I think about now. I wonder if you could share Codespace instances amongst each other. I don't know. STEPH: Yeah, I'm intrigued too. That sounds like it'd be really helpful. So circling back just a bit to where we were talking about wearing different hats in terms of working on client work, and then also working on the team, and then also potentially some sales work as well, I'm curious, how do you balance that transition? How do you balance solving hard problems in a codebase and then also transition to solving hard problems in the management space? How do you make all of that fit cohesively in your day or your week? ROB: The main thing that somebody said to me recently is that you can only do so much in a day, and it's about the order that you approach those things. And just be content with the fact that you're not going to get everything done. But you have to make sure that you work on things in the right order and just take your time and then work through them. I read a really good book recently that was recommended to me by my coach called Time Off. And it's all about finding your rest ethic, which sounds a bit abstract and a bit weird. But all it is it's about understanding that you can't be working 100% all the time. It's not possible. As developers, sometimes we can forget that we're creative people, and creativity comes from a part of your brain that works subconsciously. So it's important for you to take breaks throughout the day and kind of go okay; I use the Pomodoro Technique. So I have an app that runs, and every 25 minutes, I just take a little break. I don't use it in the way that it's supposed to be used. I just use it to give me a trigger to have a break every 25 minutes. And so in that time, I'll just step away from my computer. I'll walk to the kitchen, grab a glass of water. I usually have a magazine or a book next to my table. So I have a magazine here at the moment. I'll just read a page of that just to kind of rest my eyes, so they focus at a different level but also just to get my brain thinking about something else. And it seems counterproductive that like, oh, you're stepping out of what you were doing. But then I find like, oh, I suddenly have a little refresher to like, oh, I need to get back into what I was doing. I know where I've got to go. That thing that I was thinking about now makes a little bit more sense. And even if it's a bigger break, give yourself the license to go for a walk and just kind of clear your head. And a big thing about going for a walk is not to concentrate on completing the task of walking but to concentrate on the walk itself and taking the things that are happening around you. And let your mind just kind of...you'll sometimes notice that oh, I can hear a bird. But that bird's been chirping for five minutes, and you didn't notice because your mind's kind of going. And if you concentrate on, I just want to complete this walk, that's what I'm out here to do, then you lose that ability to let your mind reset. That's a big thing that I'm working on personally to concentrate on the doing rather than the getting done. And it ties into the craft of being a software developer because if you concentrate on the actual writing of the code and the best practices that we all believe in, you end up with something better that you don't then have to revisit at a later time. Where if you just try and get something done, you're just going to end up having to come back to it or have to revisit in some other way. I've actually got a blog post coming out soon about notifications on phones. I'm a big believer that your phone belongs to you and that if your work wants you to have work notifications on your phone, then they could buy you a phone just for that purpose. The only thing where I kind of draw the line is I have notifications for meetings on my phone because I can't think of another way to get those things to ping up at me. And I understand that there are jobs where you do need to have those sorts of notifications, especially things like where you're on call; it's a big thing. But when it comes to things where a manager wants to get a hold of you straight away, from a trust point of view, that's where I think things fall down. And you're questioning, like, okay, why does this person need to get hold of me at 7:00, 8:00, 9:00, 10:00 o'clock at night? And should I be available? We build by the day at thoughtbot. And so when I find, not when I find but when I talk to people, and they say, "Oh, I was still working at 7:30, 8:00 o'clock," I will say, "Why? You're devaluing your own time at that point because we're not billing any extra for that time. So you're making your craft and your skill...you're cheapening it. And I want them to relish the skills and competencies that they have. That's a big thing for me. We're very lucky at thoughtbot that we can draw a boundary at the end of the day and go, okay, that's it. There's no expectation for me. It is much more difficult at product companies. But yeah, I think it's something that as an industry, and it's a bigger thing as a society, especially with younger people coming into the industry who have never worked in an office and may never work in an office, that idea of where is the cutoff? For so much of the pandemic, the people I would get concerned about the most are the people whose beds I could see behind them because I'm thinking to myself, you spend at least 16 hours a day in that same room. And that's going to become the norm for people. And if people don't have those rest periods and those breaks and aren't given the opportunities to do that by their managers, then it's not going to end well. And happy people and fulfilled people do the best jobs from a business point of view. But that's never the way I approach it, but that's what I say to people. STEPH: I think that's one of the biggest mistakes that I made early on in my career, and even now, I still have to coach myself through it. It's like you said, we are creative people and people in software and in general and not just developers, but it's a creative craft. And I wouldn't step away to take breaks. I just thought if I pushed hard enough, I would figure it out, and then I could get done with my work because I was so focused on getting it done versus the doing, as you'd highlighted earlier. I haven't really thought about it in that particular light of focusing on this is the thing that I'm working on. And yes, I do want to get it done, but let's also focus on the doing portion of it. And so I wouldn't step away for walks. I wouldn't step away for breaks. And that is something that I have learned the hard way that when I actually gave myself that time to breathe, if I gave myself a moment to relax, then I would come back refreshed and then ready to tackle whatever challenge was in front of me. And same for keeping a magazine that's near my desk; I have found that if I keep a book or something that I enjoy...because, at some point, my brain is going to look for some rest, like, it happens. That's when we flip open Twitter or Instagram or emails or something because our brain is looking for something easy and maybe a little bit of like brain candy, something to give us a little hit. And I have found that if I keep something else more intentional by my desk, something that I want to read or that I'm enjoying, then I find that when I am seeking for something that's short that I can look at, that I feel more relaxed and fulfilled from that versus then if I go to Twitter, and then I see a bunch of stuff, I don't like, and then I go back to work. [laughs] And it has the opposite effect of what I actually wanted to do with my downtime. I love the sound of this book. We'll be sure to include a link in the show notes because it sounds like a really good book to read. And I've also worked on improving the setup with my phone and notifications, where I have compartmentalized all the work-related apps into one folder, and then I keep it on the third screen of my phone. So if I want to see something that's work-related, it's very intentional of like, I have to scroll past all of the stuff that matters to me outside of work and then get to that work section and then click in that folder to then see like, okay, this is where I have Slack, and Gmail, and Basecamp, and all the other things that I might need for work. And I have found that has really helped me because I do still have the notifications on my phone, but at least putting it on its own screen further away from the home screen has been really helpful. ROB: Do you find that you still get distracted by that, though, when you're in the flow of doing something else? STEPH: I don't with my phone. I am a person who ignores my phone really well. I don't know if that's a good thing or a bad thing, [laughs] but it is a truth of who I am where I'm pretty good at ignoring my phone. ROB: That's a good skill to have. If there's any phone in the room and a notification goes off, my head swivels, and I pivot, and I'm like, oh, yeah, some dopamine hit over there that I can get from looking at somebody else's notification. STEPH: I have noticed that in the other people that I'm around. Yeah, it's that sound that just triggers people like, oh, I got to look. And even if you know it's not your phone like you heard someone else's phone ding, it still makes you check your phone even though probably there's a part of your brain that recognizes like, that wasn't mine, but I'm still going to check anyways. And I have worked hard to fight that where even if I hear my phone go off, I'm like, okay, cool, I'll get to it. I'll check it when I need to. And I'm that person that whenever apps always ask me, "Can we send you notifications?" I'm like, no, you may not send me notifications. [laughs] Something else you said that I haven't thought about until just now is the idea that there are some people who have never worked in an office or may never work in an office because we are leaning into more remote jobs. And that is fascinating to me to think about that someone won't have had that experience. But you make such a good point that we need to start thinking about these boundaries now and how we manage our remote work and our home life because this is, going forward, going to be the new norm for a number of people. So how do we go ahead and start putting good practices in place for those future workers? ROB: One of the things, as we've hired people from a remote point of view who've only worked with thoughtbot remotely, is the idea of visibility. And I don't mean the visibility of I want to see when somebody's working but maybe the invisibility of people. Because you can't see when people are taking breaks, you assume that everybody is working all the time, and so then you don't take those breaks. And so this is something we saw with people who we hired in the first six months of being remote. And they were burning out because they didn't realize that other people were taking breaks. Because they didn't know about the cultural norms of how we worked at thoughtbot. But people who had worked in the studio would know that people would get up and have breaks. People would get up and go get a coffee from a coffee shop and then have a walk around. They didn't know that that was the culture because they bring the culture from other places with them. But then it's much harder to get people to understand your way of working and how we think that we should approach things when you are sat in isolation in a room with a screen. And that's something that we've had to say to people to break that down. And even things that we took for granted when we worked in a studio where somebody would get up and ask somebody if they could pair with them even if they weren't on the same project. Somebody might have more Elm knowledge or React Native knowledge, or Elixir knowledge. And you'd get up and say, "Hey, can I borrow some of your time just to go over this thing, to pair?" And everybody would say, "Yeah, yeah, I can find some time. If not now, we can do it later." And recently, we've had people saying, "Oh, is it okay if we pair across projects? Is it okay if we pair with other people?" It's like, "Yeah, pair." One of the big things we say is that we have this vast amount of knowledge across thoughtbot, across the world that we can tap into and that you can use. And that's just one example of how do you get those core things that you take for granted and help people understand them? Because you don't know what people don't know. And it's all about that implied knowledge. So that's something that we learned. And we try and say to people and instill in them about yeah, take breaks. You can pair with people. There are people who bring in culture from other places with them. But then, to go back to where you started, how do you start with people who have no culture with them or have the culture of coming from maybe from school, or university, or from a different industry? How do you help those people add to your culture but also learn from your culture at the same time? Big people problems. STEPH: Have you found any helpful strategies to normalize that take a break culture? ROB: One thing we tried, but it doesn't last very long because people are lazy, is putting it in Slack saying, "I'm going for a break." And you can do that, but it's so artificial. After a week or two weeks, people just stopped doing it. It was through conversation. We have a regular retrospective as the Launchpad II team where we talk about what is working, what isn't working. And we have such a trusting environment where people will say things along the lines of this isn't working for me, or I feel like I'm burning out. Then we will talk to each other about it and figure out where it comes from. And it's a good point to raise that I don't think we have explicitly addressed it. But it is something that we will address. I'm not going to say could address; we will address it. I will talk to our latest hire, Dorian, who I have a one-on-one with next week, and to kind of talk to him about it. And we should maybe try and codify that in our handbook somewhere so everybody can learn from it, at least start a strategy and a conversation. Because I don't think it is something that we do talk about. It's the problem of being siloed and being remote and time zones as well. A lot of stuff that Launchpad I knows Launchpad II doesn't necessarily know because we only have three, maybe, hours if people are based on the East Coast where we overlap. I have meetings with Geronda, who's our DEI Program Manager, and she lives in Seattle. And so sometimes I'll talk to her at 5:00 o'clock, and it's 7:00 o'clock in the morning for her. And you have different energy levels. But yeah, so we spend time to try and figure out how we work together. STEPH: Yeah, I like that idea of highlighting that we take breaks somewhere that's part of your expectations as part of your role. Like, this is an expectation of your role; you're going to take breaks. You're going to step away for lunch. You're going to stick to a certain set of hours in terms of having like an eight-hour workday with a healthy lunch break in there. I think that's a really good idea. On the Boost team, I have found that people have adopted the habit of not always but typically sharing of, like, "Hey, I'm stepping away for a coffee break," or "I'm having lunch. Maybe like a late lunch, but I'm taking it," Or "I am stepping away for a walk." You often see later in the afternoon where there are a number of people that are then saying, "Hey, I'm going for a walk." And I feel that definitely helps me when I see it every day to reinforce like, yes; I should do this too because I already admitted I'm bad at this. So it helps reinforce it for me when I see other people saying that as well. But then I can see that that takes time to build that into a team's culture or to find easy ways to share that. So just putting it upfront in like a role expectation also feels like a really good place to then highlight and then to reinforce it as then people are setting that example. ROB: One thing that Nick Charlton tried to introduce was a Strava group. There's a thoughtbot Strava group. So you can see if people are members of it that they've been walking and things like that. It was quite an interesting way to automate it. I think it fell off a cliff. But it was something that we did try to how can we make the visibility of this a little bit easier? But yeah, the best thing I've seen is, like you say, having that notification in Slack or somewhere where you can see that other people are stepping away from their keyboards. STEPH: Well, as you mentioned, solving people problems is totally easy, you know. It's a totally trivial task although I'm sure we could spend too many hours talking about it. All right, so I do have one more very important question for you, Rob. And this goes back to a debate that Chris and I are having, and I'd love to get you to weigh in on it. So there are Pop-Tarts, these things called Pop-Tarts in the world. And I don't know if you're a fan, but if you were given the option to eat a Pop-Tart with frosting or a Pop-Tart without frosting, which one do you think you would choose? ROB: That's an interesting question. Is there a specific flavor? Because I think that the Strawberry Pop-Tart I would have with frosting but maybe the chocolate one I have without. I know there are all sorts of exotic flavors of Pop-Tarts. But I think I would edge towards with frosting as a default. That's my undiplomatic answer. STEPH: I like that nuanced answer. I also like how you refer to the flavors as exotic. I think that was very kind of you [laughs] other like melon crushed or wild flavors that they have. Awesome. All right. Well, I think that's a perfect note for us to wrap up. Rob, thank you so much for coming on the show and for bringing up all of these wonderful ideas and topics and sharing your experience with Codespaces. For folks that are interested in following your work or interested in getting in touch with you, where's the best place for them to do that? ROB: Yeah, thank you so much for having me. It's been fantastic to have a chat. If people do want to find me, the best place would be on Twitter. So my handle on Twitter is @purinkle which I understand is hard for people to maybe understand via a podcast, but we'll put a link in the show notes so people couldn't find me more easily. And that's probably also a good time to say that I am actually trying to find a development team lead to join our Launchpad II team. So we are looking for somebody who lives in Europe, Middle East, or Africa to join our team as a developer and manager of two to three people. There's more information on the thoughtbot website, and I do tweet about it very, very often. So feel free to reach out to me if that's of any interest to you. STEPH: Awesome. We'll be sure to include a link to that in the show notes as well. On that note, shall we wrap up? ROB: Yeah, let's wrap up. CHRIS: The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey. STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeee!!!!!! ANNOUNCER: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.
Episode 58 is out. A long journey, and today with us, we have Phillip Carter. Phillip brings a heuristic from his repository: “Focusing on developer experience can make your products more powerful and your teams more empowered”. We deep dive into what is developer experience and how some companies don't get it right. For example, developer experience is different from the software development lifecycle. He also gives excellent advice on how to start developer experience initiatives within the company and leverage the economics of scale. Phillip recommends: The case for developer experience by Jean Yang ( https://future.a16z.com/the-case-for-developer-experience/) Building for 99% developers by Jean Yang (https://future.a16z.com/software-development-building-for-99-developers/ ) Gitpod (https://www.gitpod.io/) GitHub Codespaces (https://github.com/features/codespaces) Sourcegraph (https://about.sourcegraph.com/) Phillip Carter (@_cartermp) is a Product Manager at Honeycomb, focusing on Developer Experience.
Rory Preddy joins Scott Hanselman to demonstrate how to develop Java applications on Azure using a variety of tools and services. He shows how to use Visual Studio Code (VS Code), to write and debug Java code. He shows how to use GitHub Codespaces, a cloud-based development environment, to write and test your code directly in the browser. Finally, he also demonstrates how to use Azure Container Apps, a service that enables you to deploy and manage containerized applications more easily to run your Java applications in the cloud. It's an exciting episode that highlights the power and flexibility of developing Java applications on Azure. Chapters 00:00 - Introduction 00:58 - Write and debug Java code in VS Code 06:45 - Use GitHub Codespaces to write and test your Java code in the browser 13:00 - Use Azure Container Apps to deploy and manage containerized Java applications 15:18 - Wrap-up Recommended resources Azure is the home for your Java applications, Part 1 Java on Azure Azure is the home for your enterprise Java applications Microsoft build of OpenJDK Create a Pay-as-You-Go account (Azure) Create a free account (Azure) Connect Scott Hanselman | Twitter: @SHanselman Rory Preddy | Twitter: @RoryPreddy Azure Friday | Twitter: @AzureFriday Java at Microsoft | Twitter: @JavaAtMicrosoft Azure | Twitter: @Azure
Rory Preddy joins Scott Hanselman to demonstrate how to develop Java applications on Azure using a variety of tools and services. He shows how to use Visual Studio Code (VS Code), to write and debug Java code. He shows how to use GitHub Codespaces, a cloud-based development environment, to write and test your code directly in the browser. Finally, he also demonstrates how to use Azure Container Apps, a service that enables you to deploy and manage containerized applications more easily to run your Java applications in the cloud. It's an exciting episode that highlights the power and flexibility of developing Java applications on Azure. Chapters 00:00 - Introduction 00:58 - Write and debug Java code in VS Code 06:45 - Use GitHub Codespaces to write and test your Java code in the browser 13:00 - Use Azure Container Apps to deploy and manage containerized Java applications 15:18 - Wrap-up Recommended resources Azure is the home for your Java applications, Part 1 Java on Azure Azure is the home for your enterprise Java applications Microsoft build of OpenJDK Create a Pay-as-You-Go account (Azure) Create a free account (Azure) Connect Scott Hanselman | Twitter: @SHanselman Rory Preddy | Twitter: @RoryPreddy Azure Friday | Twitter: @AzureFriday Java at Microsoft | Twitter: @JavaAtMicrosoft Azure | Twitter: @Azure
Seb Rose and Gaspar Nagy join our hosts Kito Mann, Daniel Hinojosa, Ian Hlavats, and Josh Juneau to dive into behavior-driven testing (BDD). They discuss Seb and Gaspar's BDD books, as well as Cucumber, SpecFlow, Gherkin, the practical testing pyramid, contract testing, and more! They also share their picks: Brave web browser, #Locust, and #Github Workspaces. We Thank DataDog for sponsoring this podcast! https://www.pubhouse.net/datadog *Behavior Driven Development* The BDD Books https://www.bddbooks.com/ Cucumber School https://school.cucumber.io SpecFlow https://specflow.org/ Generating LivingDoc using CLI https://docs.specflow.org/projects/specflow-livingdoc/en/latest/LivingDocGenerator/Generating-Documentation.html Gherkin https://cucumber.io/docs/gherkin/ Cucumber https://cucumber.io/ The Practical Test Pyramid https://martinfowler.com/articles/practical-test-pyramid.html The Testing Iceberg http://claysnow.co.uk/the-testing-iceberg/ Single Assertion Principle https://programmaticallyspeaking.com/one-assertion-per-test-please.html Contract Testing https://www.qentelli.com/thought-leadership/insights/what-contract-testing-and-why-should-you-try-it Pact https://docs.pact.io/ Introduction to BDD Example Mapping | Cucumber Blog https://cucumber.io/blog/bdd/example-mapping-introduction/ Cyber Dojo https://cyber-dojo.or *Picks* The Browser (with Brendan Eich, Chief Architect of Netscape + Mozilla and CEO of Brave) | History and Strategy | Deep Podcast Case Studies https://www.acquired.fm/episodes/the-browser-with-brendan-eich-chief-architect-of-netscape-mozilla-and-ceo-of-brave Brave web browser https://brave.com/ Locust https://locust.io/ GitHub Codespaces – go to any github repo and press “.” to jump into VS Code running in the browser https://github.com/features/codespaces *Other Pubhouse Network podcasts* Breaking into Open Source https://www.pubhouse.net/breaking-into-open-source OffHeap https://www.javaoffheap.com/ Java Pubhouse https://www.javapubhouse.com/ Events JFokus - May 2-4,2022 - Stockholm, Sweden https://www.jfokus.se/ Software Design and Development - May 16-20, 2022 - London, UK https://sddconf.com/ EuroStar Conference June 7-10, 2022 - Copenhagen, Denmark Agile2022 - July 18-20, 2022 - Nashville, TX , USA https://www.agilealliance.org/agile2022/ NFJS - USA https://nofluffjuststuff.com/ - Gateway Software Symposium April 1 - 2, 2022 - Lone Star Software Symposium: Dallas April 8 - 10, 2022 - Northern Virginia Software Symposium April 22 - 23, 2022 - Central Ohio Software Symposium Apr 29 - May 1, 2022 - Central Iowa Software Symposium May 13 - 14, 2022 - ArchConf Central June 6 - 9, 2022 - Great Lakes Software Symposium June 10 - 12, 2022 - ÜberConf July 12 - 15, 2022
Paige is the director of Machine learning and machine learning operations, aka MLOps, at GitHub. Before that, she was a principal product manager at Microsoft and also worked on DeepMind and Google Brain. Paige has had over a decade of experience with machine learning and data science as a practitioner. Check out my new project awesomecodereview.com workshop!Links:Retweet and like to win access to GitHub Codespace, including CopilotTiferet's work, using machine learning to detect security vulnerabilities in source code.VS Code's Python extension and Jupyter extension.Copilot website (make sure to download the Copilot Nightly extension, to get the latest features!)Applied Machine Learning Scientist – Microsoft job opening here!Github – Use it for your work and tell us how we can improve! Shownotes:[00:01 – 10:53] Opening Segment Check out my latest project: Awesome Code Reviews!Visit https://www.awesomecodereviews.com/ to find articles about code reviews, best practices, code review checklist, news about the latest research and code reviews, and workshops and courses about this topicGet a chance to try out GitHub Codespaces and other extensions like GitHub Copilot!Like and retweet today's episode, and for an additional chance to win, you can also leave a comment about what kind of data science work you're currently doing or what you like to doThe responsibilities of a director of machine learning and machine learning operationsDemystifying the process of reviewing complicated data science code[10:54 – 20:54] A Helpful Collaborator As You Write CodesHow GitHub Copilot becomes your partner and collaborator when writing codesIt is an extension for VS Code and generates source codeLearning from test cases and how code reviewers can perform a better jobAcquiring accurate code snippets through understanding the specific requirementsThe strive for consistent performance across every single kind of language[20:55 – 35:25] Expanding Feature Capabilities for Optimal FunctionalityThe beginning of deep learning techniques applicationThis targets detecting security vulnerabilities through code reviewsIt also provides recommendations for extracting functions from blocks of codeEncouraging consistency in names and stylesTake note: Microsoft is hiring!Striking the balance with deep understanding of data-driven and quantitative approachesData can tell us about users who are already using our tools, but not about those who haven't tried them yetThe key is to remain curious and constantly seek to better understand users[35:26 – 37:52] Closing SegmentPaige's recommendation for youTry out GitHub for your machine learning projects!Final wordsResources Mentioned: Retweet and Linke this tweet to win access to GitHub codespaces and copilotAwesome Code Reviews - Visit for helpful information and courses for you to try!Applied Machine Learning Scientist - Microsoft job opening here!Github - Use it for your work and tell us how we can improve!Tiferet's work, using machine learning to detect security vulnerabilities in source code.VS Code's Python extension and Jupyter extension.Copilot website (make sure to download the Copilot Nightly extension, to get the latest features!Let's Connect! You can connect with me, Dr. McKayla on Instagram, Twitter and Youtube to look into engineering software, and learn from experienced developers and thought leaders from around the world about how they develop software!LEAVE A REVIEW + help someone who wants to know more about the engineering software world. Your ratings and reviews help get the podcast in front of new listeners.
Heute geht es um das Thema Pair Programming. Wir geben eine kleinen Einleitung was das überhaupt ist, welche Vor- und Nachteile es bietet und teilen unsere persönlichen Erfahrungen. A Pairing Session Template Pomodoro-Technik Live Share in Visual Studio Code Live Share in Visual Studio Code for the Web Code With Me: The Collaborative Programming Service (JetBrains) Git Tips & Tricks — How to create Co-authored commits? Coding in the cloud with GitHub Codespaces and VS Code | GitHub Universe 2021
[00:05:08] Jared tells us about himself, what he does, and how Bridgetown was born.[00:09:45] Andrew plugs going on GitHub and sponsoring Jared.[00:10:15] Bridgetown 1.0 is almost here, and Jared tells us more. [00:15:47] We find out what else is new in Bridgetown since the guys last talked. He tells us more about how he used Roda.[00:23:41] Chris asks Jared if he ever thought about using a Turbo Frame for the little snippet of HTML that he wants to lazy load, and Andrew explains how the new Bridgetown seems faster. [00:26:16] Jared shares how he sees Bridgetown now versus what's in the future. [00:30:26] Andrew talks about a blog post Jared wrote.[00:33:37] The guys chat about WebAssembly stuff.[00:36:13] Jared tells us something he's been excited about recently is everything GitHub is doing with GitHub Codespaces. [00:37:15] Jared goes over a few more things about Bridgetown v1.[00:41:37] Find out where you can follow Jared online.Panelists:Jason CharnesChris OliverAndrew MasonGuest:Jared WhiteSponsor:Hook RelayLinks:Ruby Radar NewsletterRuby Radar TwitterRemote Ruby-Episode 78: Bridgetown Ruby with Jared WhiteJared White TwitterJared White WebsiteJared White GitHubBridgetown Bridgetown BlogJared White GitHub SponsorRodaRuby2JSBridgetown DiscordGitHub CodespacesRailsConf 2022
[00:01:52] Ben introduces himself and tells us about a configuration he did with Docker. [00:09:24] Find out what GitHub Codespaces is all about. [00:18:20] Ben explains the demo he did on how to create a new repository. [00:22:56] Andrew tells Ben he feels like he might know how to set up a home network somehow, and what does Ben have to say about this?[00:26:01] Ben asks the guys if they're using VSCode.[00:28:06] We learn how Ben and Andrew feel about the state of VSCode Ruby Extension.[00:31:03] Andrew talks about the RubyMine debug functionality and working with the new debug gem.[00:34:27] Ben wonders if Chris has tried the Vim extension in VSCode, Ben tells us about something that was added, and Andrew tells us he just started doing an online course learning Vim and VSCode.[00:39:08] Andrew asks Ben if there are any big cons with this remote kind of development environment that he's got running, and a conversation about VSCode app on the iPad. [00:42:09] Find out where you can follow Ben and his adventures online.Panelists:Jason CharnesChris OliverAndrew MasonGuest:Benjamin WoodSponsor:HoneybadgerLinks:Ruby Radar NewsletterRuby Radar TwitterAndrew Mason WebsiteBenjamin Wood TwitterBenjamin Wood-GitHubHintGitHub CodespacesInoreaderProject Template- Benjamin Wood (GitHub)Dotfiles-Benjamin Wood (GitHub)JetBrains Remote DevelopmentSolargraph
There's a shift that's almost here for developers. Coding is slowly moving to the cloud with GitHub Codespaces and Gitpod. Meta frameworks like SvelteKit and Remix will be coming out of beta in 2022 and deployment of code is getting easier with services like fly.io and railway.app. The heavyweights like AWS still dominate and are the de facto choice for enterprises and for those prefer avoiding the magic of SAAS and stay as close to the metal as possible. In this episode we share our excitement on where the dev scene is headed. Tune in to our very first episode of 2022!
April Edwards joins Scott Hanselman to show how delivering apps in a DevOps world also means shifting security left. To securely deliver our apps, organizations must harden their dev environments, while leveraging tooling to scan and proactively protect their repositories, ensuring continuous delivery is secure. Azure Friday Quiz Sweepstakes Watch the episode to the end and then submit your answers to our five-question quiz about the info April covered with Scott. Eligible participants who answer all five questions correctly will be entered into a Sweepstakes with a chance to be one of ten lucky winners to win a box of Microsoft swag! The Azure Friday Quiz Sweepstakes ends at 11:59pm PT on February 12, 2022. Take the quiz! | Terms and conditions | Privacy statement Chapters 00:00 - Introduction 01:14 - GitHub Codespaces 04:17 - GitHub Code Security (Dependabot, CodeQL, and Secret scanning) 05:51 - Environment workflows 06:38 - Microsoft Defender for Cloud 07:47 - Relationship between Dependabot and Microsoft Defender for Cloud 09:01 - Wrap-up Recommended resources GitHub Codespaces GitHub Code Security GitHub CodeQL Understand security in the Pipeline Identify vulnerable container images in your CI/CD workflows Connect Scott Hanselman | Twitter: @shanselman April Edwards | Twitter: @TheAprilEdwards Azure Friday | Twitter: @AzureFriday
April Edwards joins Scott Hanselman to show how delivering apps in a DevOps world also means shifting security left. To securely deliver our apps, organizations must harden their dev environments, while leveraging tooling to scan and proactively protect their repositories, ensuring continuous delivery is secure. Azure Friday Quiz Sweepstakes Watch the episode to the end and then submit your answers to our five-question quiz about the info April covered with Scott. Eligible participants who answer all five questions correctly will be entered into a Sweepstakes with a chance to be one of ten lucky winners to win a box of Microsoft swag! The Azure Friday Quiz Sweepstakes ends at 11:59pm PT on February 12, 2022. Take the quiz! | Terms and conditions | Privacy statement Chapters 00:00 - Introduction 01:14 - GitHub Codespaces 04:17 - GitHub Code Security (Dependabot, CodeQL, and Secret scanning) 05:51 - Environment workflows 06:38 - Microsoft Defender for Cloud 07:47 - Relationship between Dependabot and Microsoft Defender for Cloud 09:01 - Wrap-up Recommended resources GitHub Codespaces GitHub Code Security GitHub CodeQL Understand security in the Pipeline Identify vulnerable container images in your CI/CD workflows Connect Scott Hanselman | Twitter: @shanselman April Edwards | Twitter: @TheAprilEdwards Azure Friday | Twitter: @AzureFriday
Join me as I talk about the latest Azure feature in Virtual Machines, GitHub Codespaces and 2G and 3G mobile phone signals being discontinued. If you'd like to support me creating video and audio content please consider "buying me a coffee" https://www.buymeacoffee.com/techielass My video graphics were created by the awesome Krist McKenna from Ratworks Music by https://www.bensound.com and https://youtube.com/ikson
Listen to the Changelog: https://changelog.com/podcast/459 (15mins in)TranscriptYou said something interesting about the preciousness of our development environments… And I'm with you that we've commoditized the servers, but we definitely have not commoditized dev, because it's so intricate, it's so set up… Sometimes it's like “There be dragons. Please don't touch my laptop, because it works right now, but I'm not sure if it's gonna work tomorrow.” I do hate that. I think it's almost a different skillset, of maintaining that. There's overlap between development and the maintenance of a development environment in terms of things that you need to learn… But it's almost a different task altogether. So I don't like that about it, but it's still very true that our development environments are precious to us, and they're tweaked, and configured, and customized, and all the things. So I'm sure there's probably lots of resistance to this…[00:11:59.29] We talk about our setup - we have probably tens of thousands of lines of code, and very few dependencies in our stack, but GitHub is 14 years old, and there's a million plus commits, and I'm sure the dependency list is very long… What kind of effort was this? Tell us the story of bringing it along.CORY WILKERSONIt is. These are all very, very true points. You know, the last thing I wanted to do was kind of be the vessel that went out to GitHub and said “I wanna change your development environment”, because these things are so precious. Like, I'm an engineer, too. I think my environment is very much precious. And here I was, kind of the face in GitHub of saying “Well, we think we have a better way. Come join us over here.”And I started off on this journey as a skeptic. I think I shared some of this, too… I didn't think this would be a fruitful journey necessarily. I was just gonna go do my level best as an employee, see if I could make it happen, build moment etc. and see if I could find something out there. Now, on the other side of this journey, I feel like I'm completely on the other end now, where I'm just like “This is the future. This is the way that we will absolutely build software…”But going back to the core of the story, it was literally just me out there, calling on my friends to begin with, inside of GitHub. I'd been there for five years, and the first few years were just me tapping into relationships, saying “Hey, can you give this thing a shot? Can you try this out? I wanna get your feedback and feelings about where this is at.” And no one could yet use it on our core repository. We call it github/github - the organization is GitHub, the repository is GitHub. We didn't have this thing standing up in a Codespace yet, but we had other repositories that were compatible with Codespaces.So I'd go out and ask favors of friends, and just be like “Can you try this out and give me some feedback?” And generally, the feedback I would get back was – first it was resistance, like “Why would I do this? It's productivity lost; tax on productivity. I don't trust HTTP. There's gonna be lag”, that kind of feedback. But then people would try it and they'd come back and be like “Huh. That was maybe better than I thought.”At the same time, as I hacked in this space too, I was starting to get some of that “Well, there's something here.” The big a-ha moment for me was connecting VS Code into my Codespace out in the cloud and still retaining that local development experience. So it felt to me like it was still very local. The magic is the synchronization that's happening between the local environment and the cloud. It feels totally transparent.But that aside, it started with just a very small number of users. So we would go back to leadership in GitHub and talk about progress we were making… And the early days, the story was “I have five people that have responded positively to Codespaces.” So not much of a story, but starting to kind of make a little bit of progress. And then maybe it was ten people.Then, the next iteration on this was like “Well, let's go find a team. Let's get a full team on Codespaces. How can we get a single team - 6 to 8 people - committed to using Codespaces, and stick in this thing?” At this point we'd had this other effort running on the side to get github/github, the core github.com repository, compatible with Codespaces. And we'd gotten it to a point – we detail how we did this in the blog post - where performance was mostly acceptable. So now we could go shop this with a team that worked primarily on GitHub.com and see what their experience was. And we're making progress there. So we're ramping in – I think y'all have talked to Kyle Daigle in the past. Kyle was the leader of that effort that got this team spun up inside of Codespaces on GitHub core. And again, it was somewhat retentive. People were sticking, and going like “Wow, this is not what I thought. It's better than maybe what I thought.”[00:15:59.11] But I think the real breakthrough moment came when we stopped calling this dogfooding. You hear this term all the time, dogfood… I think it actually originated – I looked up on Wikipedia; I think the term originated inside of Microsoft a number of years ago.ADAM STACOVIAKIs that right?CORY WILKERSONBut GitHubbers, my colleagues don't respond well to that term. Dogfooding doesn't inspire anyone to go do anything. Just like “Eat the dogfood? Who feels good about that?” And so what we did was we launched what we called the GitHub Computer Club, and I would love to dedicate a full episode on this. It's a really interesting concept, and something I hope to bring out to the industry. But we asked people to join the GitHub Computer Club. And in doing so, they took this commitment or oath. I wrote up this script, “I do solemnly swear to never – no shadow compute, not desktop compute. I'll join this thing and forever be member of the elite, exclusive GitHub Computer Club.”ADAM STACOVIAKI love that.CORY WILKERSONWe made a bunch of noise about it… Yeah, people loved it.ADAM STACOVIAKThat's so cool.CORY WILKERSONPeople straight up were just like, “This is great. Let me in. I want a membership card.” And in doing so – we had to give them something in return. So they would join the computer club, but we offered to our “exclusive” members what we call the concierge team. And this team was built to kind of support their productivity and success inside of Codespaces.So the second these people had friction - you know, one of the requirements of entering the computer club was that you had to kind of raise your hand. You couldn't disappear and go back to local desktop. You had to virtually raise your hand and say “I'm about to opt out of this, because Codespaces can't keep my business right now.” And the concierge team that we had built could swoop in, respond to “What's going on here? Let's dig into it. Why can't we keep your business in Codespaces?”We continued to play that model back and forth between Computer Club and concierge team, until we had built the product and built enough momentum inside of GitHub that one day we kind of looked around and we were like “Wow, we have hundreds of people developing GitHub.com and GitHub Codespaces.” And I think the real story there is just commitment to make it happen. We want it to be successful with this, and not just go talk about it in the market, but actually show that this is a better tool for us. The computer club is still going strong. People are demanding that I give them satin and denim jackets; I'll get around to that at some point.JEROD SANTOWell, I hate to break it to you, Cory, but GCC is already taken as an acronym, so… You've got a namespace conflict on that one.CORY WILKERSONYeah… Well, maybe the Codespaces Computer Club, so we can go with GCCC.JEROD SANTOThere you go.ADAM STACOVIAKAll the C's. I like this aspect because you treat this like a customer scenario. You built a product, and you have to retain customers. And you're actually exercising a great principle for anybody building a product, which is “Talk to your users.” And when they have trouble - swoop in, as you had said, understand those problems and be committed to fixing them. I think that's a great way, a great story for how Codespaces became powerful inside of GitHub, because that's exactly how you build a product. Not just “Let's just try this thing and hopefully our internal team adopts it by force.”As you had said, you wanted to go along with your employee card and be able to see if Codespaces could work, and out the other end you became a believer. But you're not forcing GitHub engineers to use it, you're asking them to try it. In this case, the Computer Club, with the oath… And then as you said, you look up and you see hundreds now.CORY WILKERSONI think that's right. The position was – no Fiat. We didn't wanna lead with “You have to do this.” That's the absolute wrong way to get adoption in your product. We wanted to literally win the business of our colleagues. We wanted to build such a fantastic experience in Codespaces that people would choose it. And yeah, I think the Computer Club probably boosted adoption a little bit, do doubt about it… But what made that work –ADAM STACOVIAKYou've gotta use some emotion in there. You've gotta put some emotion in there.CORY WILKERSONYeah, exactly.ADAM STACOVIAK[00:19:59.04] You have to get them excited.CORY WILKERSONIt had to have a soul. It needed some soul behind it, that was the idea. And the fact that we did respond to this – we actually did win business. When things didn't go well and when people wanted to opt out, they could, and they would, for a week, or whatever… But the goal was “How do we get them back in here, kind of remove whatever that impediment is, and get them productive in Codespaces again?”JEROD SANTOSo what happens if you take the oath and you go back? Do you chop off a finger, or what's the penalty? [laughs]CORY WILKERSONWell, you know, we leave that intentionally vague, so people can assume the worst. No, I don't know that we've had any real regression there just yet, which is good. Codespaces is super-retentive. I think we have people from time to time use local desktop. We have a colleague – this is actually in the blog post maybe… A colleague of mine reported the other day, she said “I was using local development. My environment broke, so I switched over to Codespaces.” And she was like “I actually shipped my task in my Codespaces before my local development environment rebuilt.” I think everyone was like “Wow, that is such a good story.” And it's so true. It's kind of the experience we're all having right now with Codespaces.We talked about it, again, in the blog post - you click a button and the environment is live. So for every new engineers that joins GitHub, I think they all are probably fairly spoiled at this point, because day one they click a button and they're able to run that entire GitHub.com environment. It's just been really incredible to watch.ADAM STACOVIAKSo Cory, the way you've explained the flow of this GitHub Computer Club seems a little smooth. I've gotta imagine you hit some friction. Can you share some of the struggle that you hit? Some opposing forces in the process of rolling this out.CORY WILKERSONYeah. Basically, it started with a bunch of “No” throughout GitHub. I think people had seen previous iterations of Codespaces… We announced it, I think, in May of 2020, at GitHub Satellite.ADAM STACOVIAKYeah. The first tweet I saw about it was Kelsey Hightower's, actually.CORY WILKERSONOkay, yeah.ADAM STACOVIAKSo that's May 2020.CORY WILKERSONIt's been out there for a while… And I think when people first try to use it inside of GitHub, there was a bit of friction. It didn't work for them, and I think first impressions can sometimes be lasting impressions. So when I went out there, I'm just like “Use this thing. It's great. It's really evolved. We feel pretty proud of it”, and it was just a bunch of “No” left and right. So then it became “How are we gonna build this business?” And yes, the Computer Club was a big boost, and the concierge team certainly was a huge, probably the most high leverage practice we discovered along the way… But a lot of this was just like startup style practices. We're building a business inside of GitHub, and I think that's maybe a useful context for anyone that's trying to build adoption of their own products in-house; you've gotta think of this sometimes as like “This is your own business. How are you gonna build it inside of GitHub, in what is a kind of very stubborn audience?” And I'm a developer, I can say that; we're somewhat stubborn and we find the tools that work well for us, and if someone comes and says “I wanna change those”, your response is gonna be “Don't.”ADAM STACOVIAK“Don't touch my local dev environment, Cory.”CORY WILKERSONYeah. And we'll get to this in a second - one of the great parts about Codespaces is that we just commoditized the compute part of this. The environment is now running somewhere else. But dotfiles, VS Code setting sync, VS Code extensions - we bring those all to the environment. So you don't lose your curated workbench. If you've got a dotfiles repo set up on GitHub right now, we bring that into the compute environment; we bring your environment and your personality, your expression of yourself captured in code into that environment. We bring your W out to your compute, which I think is a really nice touch. So you get the unburdened computer running in the cloud so you freed up your local machine, but you can still bring your preferences into that environment.[00:23:54.17] I digress… Going back to building the business a little bit - it felt like startup tactics. So we had the concierge team, we had the Computer Club… We had effectively guerilla marketing. We were out on Slack every day, looking for opportunities to say “Have you tried Codespaces?” People were receiving M1 architecture Macs, and the github/github build just would not yet work. We had not put in the investment to make the github/github run on the M1 Mac, so we'd say “Hey, have you tried with Codespaces yet?” And people would be like “Well, I guess I'll try. That feels like my only path right now.” And they'd click a button, they'd come back an hour later, or a day later, and just be like “What in the heck? This is incredible. How was this even possible?” And those people you just win for life. That's their full mode of operating. So that was the guerilla marketing angle…We did pairing sessions… So we were up in front of everyone all the time, saying “If you wanna get started, here we are. We're gonna hold your hand through this and show you the ropes, show you how we're doing.” Kind of social proof, I think, which is really valuable there. All hands – we'd get in front of the entire company and demo the thing, and be like “Look at this, it's incredible” and just try to build hype.We connected with the right people… I maybe loathe to call them influencers, but the people inside of GitHub that every engineer look up to. They look up to them and say like “This is the person that I aspire to be at some point.” We converted them. We want their business. They're kind of like trendsetters and tastemakers internally. And then really it boiled down to ruthless prioritization. So we listened to our users, “What do you need?” and we demonstrated that we could follow through on those things. For some reasons, someone was trying to run some arcane karma test somewhere that wasn't executing for them. It's just like “Alright, great. Let's figure out how to make sure that works in this environment.” That kind of thing. Even small tasks like that were important in building momentum.And then I'll say it again - one day we just looked up and we'd gone from a bunch of “No” to a bunch of super-fans inside of GitHub. We have cheerleaders. If you go out and look on Twitter right now, the day after we kind of announced Codespaces to the world, they were just like – GitHubbers were out there very enthusiastic about the thing, and it was a very genuine response. We didn't ask anyone to go do that. People were just that enthused about what we built.ADAM STACOVIAKYeah. I saw a tweet from Kelsey Hightower - again, I'll mention Kelsey… I don't know if this tweet was actually towards Codespaces or the announcement, but the timing - it was the same day, I believe, so I think it was a subtweet around it, but he said “Back in the day we wrote code on our own computers.” So I'd assume that he was reflecting on Codespaces and the announcement, but I wasn't sure of that.CORY WILKERSONI saw that, too. I mean, you used to run your server in a grey tower, beige tower underneath your desk too, right? Those days are gone, it kind of feels like. This is this next wave - we're now moving development environments out into the cloud. It just feels to me like two years from now we're gonna see some incredible adoption in this space.ADAM STACOVIAKYou mentioned a bunch of No's in the adoption flow… At what point was Nat a believer in Codespaces?CORY WILKERSONYou know, Nat holds a very high bar. I remember, as we were trying to get GitHub running inside of Codespaces, I'd go back to Nat and we'd show him “Hey, now instead of 45 minutes it's 20 minutes. We've made these changes.” And he was like “That's super-cool. Not good enough.” And we totally agreed, we're like “Yup, it's not good enough, but I just wanted to show you progress.” We'd get that feedback, and then we'd come back again and say “We're down at ten minutes.” “That's great. It's not good enough”, and everyone's like “Yeah, you're right, it's not good enough. It's gotta be seconds for it to be the experience we want.” That was kind of the iterative experience.I think Nat has been a believer in where this thing could go, from kind of the outset of the journey. It's just been a bit of a slug as we worked from the very early days of like “Look, we have all this tech orchestrated that can produce this effect of a Codespace”, maybe the early prototype, down to now the ten second story inside of GitHub. That didn't happen overnight.[00:28:08.25] But the good news is most of that - almost all of that now - has made it into the product itself. So the changes that we've discovered along the way didn't just benefit github/github and the GitHub.com repository, it benefitted the entire product. I think Nat's a super-fan now. I've got some screenshots from Nat that I look at from time to time, that keep me pretty enthused about the progress we've made.
Jens, einer der Gründer von Lotum, ist heute Gast in unserer News-Folge, um uns abzuholen, was die Umbenennung von Facebook in “Meta” alles mit sich bringt. Denn die Neuerungen umfassen mehr als nur die Unterscheidung des Unternehmensnamens von der Social-Media-Plattform. Wir sprechen über die Zukunftsvision und klären, was ein Metaversum ist und welche Rolle sich das Unternehmen in seiner Entwicklung beimisst. Es geht um diese Keynote und zwei Interviews mit Casey Newton und Ben Thompson.Des Weiteren geht es um das neu vorgestellte UnoCSS, was nichts mit dem Kartenspiel zu tun hat, sondern eine sehr schnelle Atomic CSS Engine ist.Außerdem hat der Android Dev Summit stattgefunden mit einer großen Menge spannender Tech-Talks rund um Android.Eine weitere Online-Konferenz der letzten Tage war die GitHub Universe, auf der GitHub in allen wichtigen Funktionen weitere Features vorgestellt hat – so auch die Möglichkeit für alle, GitHub Codespaces zu verwenden.Schreibt uns!Schickt uns eure Themenwünsche und euer Feedback.podcast@programmier.barFolgt uns!Bleibt auf dem Laufenden über zukünftige Folgen und virtuelle Meetups und beteiligt euch an Community-Diskussionen.TwitterInstagramFacebookMeetupYouTube
Steph talks about a new GitHub feature and Twitter account (@RubyCards (https://twitter.com/RubyCards)) she's really excited about and Chris talks about his new job as a CTO of a startup and shifting away from writing code regularly. GitHub (https://docs.github.com/en/codespaces/developing-in-codespaces/web-based-editor) RubyCards (https://twitter.com/RubyCards) Resilient Management (https://resilient-management.com/) The Manager's Path (https://www.amazon.com/Managers-Path-Leaders-Navigating-Growth/dp/1491973897) Transcript: CHRIS: Oh God, my computer is so stupid slow. I need a new computer. STEPH: Come on, little computer, you can do it. You know you could just buy a new one. You don't have to wait for the fancy-schmancy M1. CHRIS: I want to wait for the fancy. I want it so bad. STEPH: [laughs] CHRIS: Do you know how long I've had this computer? And if I can hold out one more month, I want the fancy stuff. I've waited this long. Why would I give in now when I'm right on the cusp of victory? STEPH: One more month. I'm going to send you...as a kid, did you ever make those construction… CHRIS: Oh yeah. STEPH: They look like chain links bow construction paper. So we would make those for a countdown to special days. I'm going to send you one that's all crumpled and folded in the mail. It would be delightful. And you'll be able to snip off a little chain each day as your countdown to your new fancy-schmancy. [laughs] CHRIS: I love it. Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey. Well, I just got back from vacation. So getting back to work is what's new in my world. And vacation is nice. I miss it already. But it's also nice to be back, and see everybody, and see what they've been up to. CHRIS: I've heard wonderful things about vacation. STEPH: Yeah. Have you had one recently? I know you've been quite busy. CHRIS: I have. I think it's hard to tell, especially because everything just kind of blends together these days. But I think I took off a few days recently. I haven't had an extended vacation since much earlier on in the summer, I think. And so I think I'm due for one of those sometime in the not too distant future. But it's one of those things where you got to plan it. And you got to think ahead, and I haven't been doing that of late really with anything. So kind of living for the moment, but that's not how you take a vacation. So I got to rethink some strategies here. [chuckles] STEPH: Yeah, I've been trying to schedule more vacation time just further out. Because then if I don't want to take it, like if I decide that I don't want the staycation or I don't need the day off, then I can just change my mind, and that's pretty easy to do. But I'm like you; if I don't plan it, then I don't feel like I have the energy to plan a vacation, and then it just doesn't happen. So I know that's one thing that I've been doing. I've also been mentoring or coaching others, just checking in with them to say, "Hey, when's your next vacation? Have you scheduled any days off? Do you want to schedule a day off next month?" And saying that to other people has also been a very helpful reminder to me to do so. CHRIS: Oh, I like that a lot as a recurring one-on-one question of, so what can you tell me about vacation? What do you got in the works there? Because that's the most important thing, [chuckles] which it kind of is. It's the way that we keep doing the work that we do. STEPH: And I think so many people just haven't been taking a vacation. I mean, in 2020, we were all locked in and going through a pandemic, so then a lot of people weren't taking those breaks. And so part of it is just reminding people that even if you can't go somewhere, still please take some downtime and just know that you can step away from work and should step away from work. But for us, we did go somewhere. So we went out to Seattle, which I've never...I've been out to the West Coast, but it's more like I've been out to L.A., Santa Monica. But this time, we went to the Northwest region. We went to Seattle, and we explored and did a lot of hiking and camping around the Northern Cascades and then Mount Rainier. And both of those are amazing. And I've never flown with camping gear, but that went really well. It worked out nice. We had an Airbnb every so often just for showers and having a roof over your head. That's really nice. But for most of the trip, we did a lot of camping and hiking. CHRIS: That sounds like an awesome trip. STEPH: Yeah, it was really cool. I'd love to go back to the Olympic National Park because there are just so many national parks that are around Seattle and in Washington that we couldn't begin to do it all. But Olympic National Park is still on my list. And I'm really grateful to have also seen the Northern Cascades and Mount Rainier. But switching gears a bit, I have something that I'm really excited to share with you because I don't think you've seen it yet. I'm excited to find out if you have. But it's a new GitHub feature that came out, I think about a month ago, but there doesn't seem to have been much fanfare from GitHub about announcing this new feature. And I happened to find out through Twitter because someone else found it, and then they were really excited. And so now I think it's really gaining some more traction. But it still seems like one of those sneaky feature releases, but it's really cool. So GitHub has added the ability to open up a web-based editor that allows you to view the source code for a repo, view it in syntax, highlighting, make a code change, and commit the change. And it's free for everybody. And there's a couple of ways to get there, but I'll pause there. Have you seen this yet? Have you interacted with it? CHRIS: I think I've seen it and poked around ever so gently with it. I want to say this is GitHub Codespaces. Is that the name of this feature? STEPH: Yep. That's it? CHRIS: Yes. I poked around with it just a tiny bit, and I'm very excited about it. But it's very much in the like, huh, okay, cool; I'll look at that someday down the road and figure out what I want to do with it. But have you actually dug into it particularly deeply? STEPH: I used it to make a change for a personal project, just because I wanted to see the whole flow. So I went to a personal project, and there are two ways that you can open it up for anyone that hasn't seen this yet. So you can either press the period button that's on your keyboard, and that will open it up, or you can just alter the URL. So instead of github.com, replace that .com with .dev, and then that will also open up the browser. And so I made a change to a personal project, and it worked really well, and it commits the change to main. And it was nice. It was easy. In my case, I was just making a change to make a change. I think I actually went to an older project where I was still using the underscore target to force users that when they clicked on a link that it opened a new tab, and I was like, perfect. This is a good thing to just change. And I could do it from my iPad. I didn't have to be at my computer. And it was really nifty. I was very impressed with it. And they also mentioned that it's very easy to integrate your own VS Code settings and environment. I'm not a heavy VS Code user, so I haven't tried that. But I've heard really positive things about how easy it is to sync your settings between your local VS Code and then GitHub's editor. But overall, it was really easy to use. CHRIS: That's super cool. My very limited understanding of it is like GitHub has had the ability to edit files and things like that for a while. But it was very much like a simple web editor where it's a big text box that happens to contain the code. And they've added some stuff for like browsing with syntax highlighting and even some context-aware show usage and things like that. But as far as I understand it, this is like a whole VS Code instance in the cloud that is running it. And then I think what you're saying about you can have your VS Code settings in there, but even your project settings and the ability to run the tests, I'm not sure where the edges of it are. But my understanding with Codespaces it's like this is how your team can develop. Everyone gets one of these Codespaces. You're developing in the cloud. But it does VS Code remote sync type stuff. I'm very intrigued to see where it goes and that idea of...obviously, I like Vim. That's the thing that's probably known and true about me. So I will probably be one of the later adopters of this. But the idea of being able to bottle up the development environment for your projects and have those settings, and the ability to run the test and all of that packaged up as part of the repository, and then allow people to run with that, especially in the cloud, and be able to carry that with them as they move around, that's really intriguing. And the idea of having this very easy on-ramp, especially for open-source projects and things like that. If you want people to be able to contribute easily but with the linting, and the configuration, and the settings, and all the stuff, well, now you can have that packaged up. And that is very interesting to me. So I'm super intrigued to see where it goes. Again, I will probably be one of the later adopters of this platform for reasons. But I am super interested, and I continue to like...the work with VS Code is so interesting in the way it keeps expanding out and the language server stuff and now the Codespaces stuff. And it's super interesting developments across the board. STEPH: Yeah, I'm with you. I don't actually see this replacing my current development that I do day-to-day, but it's more generally nice to have access. So if I needed to make a change and I don't have my laptop or if it's just something small and I don't want to have to go through…I guess essentially, if I don't have my laptop, but I wanted to make a change, then I could do this realistically from something that doesn't have my full local dev setup. I don't know if you have the ability to run tests. I didn't explore that far as to whether you can actually have access to run those types of commands or processes. I did see some additional notes while reading through GitHub's documentation about this new editor. And they included some notes that talk about how the editor runs entirely in your browser's sandbox. So it doesn't actually clone the repo, but instead, it loads your code by invoking the services API directly from the browser. So then your work is saved in the browser's local storage until you commit it, and then you can persist your changes by then committing it back to the repo. And because there's no associated compute, you won't be able to build and run your code or use the integrated terminal. Ah, I think that actually answers the question about running tests. So only a subset of extensions can run in the web will appear in the extensions panel and can be installed. So this does impose certain limitations for particular programming languages and full functionality, things that we may need like running tests. CHRIS: Interesting. That now puts it back more on the uncanny valley for me where it's like, oh, it's just VS Code, except it can't do a bunch of the stuff. So yeah, I'll probably be hanging out in Vim for a while. But again, I'm super interested to see where they can push this and what the browser platform allows, and then how they're able to leverage that and so on and so forth. STEPH: There is one flow that I was testing out because I was reading someone else mentioned that not only can you use this for looking at source code and then changing that source code but also for a pull request. And so I went to a pull request and changed the URL to dev. And I do have the ability to make changes, but I'm not quite sure if I could commit my changes and if that would go to the branch or how that would work. It wasn't obvious to me how I could save my changes. But it was obvious to me that I could make changes. [laughs] So that part feels weird to me, and I will have to test that out. But I'm going to wait until I have my own PR before I start fooling around [laughs] so I don't ruin somebody else's PR. CHRIS: Ideally, the worst case is you just push commit to a branch, and commits are reversible. You can throw them away. You can reset, and you can do all sorts of stuff. But I agree with you that maybe I'll do this on my home turf first before I start messing around with somebody's PR. STEPH: That way, someone doesn't reach out to me and say, "Steph, what is this commit that I have on my PR?" And I'm like, "Oh, I'm just testing." [laughs] But that's something that I was excited to talk about and share with you. What's new in your world? CHRIS: Well, what's new in my world? I think we've talked about this a little bit, but to give a little bit of context on what's new in my world, I joined a startup. I am now engineer number one. I'm also CTO, a very fancy title, but again, I'm the team of one, so count it as you will. But we do have some consultants working with us. So there is a small team that I am managing, and very quickly, I found myself shifting away from the code or having to balance that trade-off of maker versus manager time. Like, how much of the time am I actually coding and shipping features versus managing and communicating, and trying to figure out the work to be done and triaging the backlog? And all of those sorts of things. I've also just been coding less, and I think that's a trend that will almost certainly continue, and I'm intrigued by that. And that's a thing that I want to poke at just a little bit. And then I've also noticed that my work has become much more reactive than it used to be, where there are lots of things in Slack. And there's stuff that I'm kind of the only person that can do certain things because I have certain access levels and yadda yadda. And I want to make sure other folks aren't blocked. So I'm trying to be as responsive as possible in those moments. But I'm also struggling with that that trade-off between reactive versus proactive. My ideal version I think of the work is gather all of the information, all of the different permutations, and what are all the features we want? And then I think about them holistically, and then I respond once solidly as opposed to little one-off interactions and things like that. So there are just a lot of subtle differences. And I think there are trends that will continue. And so I'm trying to just take a step back, observe them from a distance and say, "How do I feel about these?" But probably most interesting to me is the moving away from code. Have you noticed that at all in your work? Or is that something you've thought about, something you'd be interested in, opposed to? How do you feel about that space in the coding world? STEPH: That is a wonderful question. It's one that I have wrestled with for a while because I really love my current position. I love being a team lead because I feel like there's this wonderful balance between where I get to code a lot of the time, but then I also get to learn how to be a manager, and help those around me, and provide some coaching or mentoring or just help people find the resources that they need essentially. And I really like that balance. That feels like the right balance to me, where I still get to grow in both areas. But then, as you'd mentioned, it still feels like one tries to take over the other with time. Like you find that more responsibilities are growing as CTO of the company. And so you feel more responsible to do more of the managerial task or unblocking others and taking on that role, and then that reduces your time for coding. And I often find myself in that space where I think it's just how I'm wired. I'm very interested and empathetic towards how people are doing and how they're feeling. So I'm always looking for ways to support others and to help unblock them and make sure that they're having a very positive experience with our project. And so then that may mean I'm coding less because then I'm more focused on that. But then, it's still also a very valid part of my job to code. So finding the right balance between those is frankly hard. To answer your other question, I don't think I want to give that up. I've considered for myself if I'm going to head towards more of a manager path, and I'm going to reserve the right to change my mind. But currently, I still like maintaining most of my individual contributor status with a dash of management sprinkled in there and then some responsibilities for making sure that the team is doing well and that people are enjoying their work. Along that line, as I've been having conversations with others around, tell me more about your job as a manager, and what does that look like? What responsibilities do you have? How much coding do you still get to do? There have been a couple of books that have been recommended to me that really help someone define are you interested in management? Is that a place that you see yourself going? This is really an honest look at what it means to be a manager. The fact that a lot of your fulfilling work isn't necessarily work that you get to produce, but it's actually helping someone else produce that work and then getting to see them succeed. That is your new fulfillment or a big part of it. So you are losing that closeness of being a maker,, but instead, you are empowering someone else to be the maker, and then that becomes your win. And that becomes an indication of your success. Versus as an individual contributor, it's really easy to see our wins in a different light: how many tickets have we addressed? How many PRs have we reviewed? That type of work. So there is an interesting dichotomy there, and I can't remember the books off the top of my head, but I will find them and I'll add a link to them in the show notes. CHRIS: Yeah, definitely interested to see the book recommendations. And generally, yeah, everything you're saying makes sense to me. I think I'm somewhat on the adventure right now. I very much intentionally chose this, and I want to lean into it and explore this facet of the work and doing more of the management and leading a team. But I have to accept that that comes with letting go of some of the individual contributor parts. And I was coding a bit over the weekend. I was just rediscovering the flow of that. And I was like, oh yeah, I really like this. Huh, that's interesting. What am I going to do with that? But I think, again, it's an exploration. And there are facets of both sides that I really like. And I've spent a lot of time deeper in the individual contributor side. And I've explored the manager side somewhat but not quite as much. And so this is very much about that I want to push on those edges and try and find what feels true to me. So the moving away from code and then moving more into management, I think I like that overall. Although I know there's the small amount in the back of my head that I'm like, I know there's a cost there. That is a trade-off. And so do I find more time in my evenings and weekends to do personal coding projects and things like that just to have that enjoyable work for myself? The maker versus manager stuff is interesting, though, where my day is now split up into smaller pieces. And even if I'm not coding, there's still writing up docs, or there are things that still require structured blocks of time. And my day is now just sprinkled with other things. And so trying to find that heads down of I want to just do the work right now, and I want to think hard about something is just fundamentally harder to do with more meetings and things speckled throughout the day. So that's one that I think I just don't like overall. But it's sort of a trade-off inherent to the situation. So I think there's also a version of trying to be intentional about that and saying, you know what? I need some heads-down time. And so Tuesday and Thursday afternoons those are going to be mine. I'm going to wall those off on my calendar and try and protect that time so that whatever necessary heads-down work that I need to do this week fits into those blocks of time and then fit the rest of things around that. But I think I have to make that intentional choice to do that. Mid-roll Ad And now we're going to take a quick break to tell you about today's sponsor, Orbit. Orbit is mission control for community builders. Orbit offers data analytics, reporting, and insights across all the places your community exists in a single location. Orbit's origins are in the open-source and developer relations communities. And that continues today with an active open-source culture in an accessible and documented API. With thousands of communities currently relying on Orbit, they are rapidly growing their engineering team. The company is entirely remote-first with team members around the world. You can work from home, from an Orbit outpost in San Francisco or Paris, or find yourself a coworking spot in your city. The tech stack of the main orbit app is Ruby on Rails with JavaScript on the front end. If you're looking for your next role with an empathetic product-driven team that prides itself on work-life balance, professional development, and giving back to the larger community, then consider checking out the Orbit careers page for more information. Bonus points if working in a Ruby codebase with a Ruby-oriented team gives you a lot of joy. Find out more at orbit.love/weloveruby. STEPH: Your mention of having more meetings really resonates with me. And it also made me think of a recent episode of a new TV show I just started watching. Have you seen the TV show called Schmigadoon!? CHRIS: I have indeed. STEPH: Okay. We need to have a whole conversation about Schmigadoon! in an upcoming episode. I'm very excited about this show. It's delightful. [laughs] There's a particular line that Keegan-Michael Key says that I just love so much where he says that he became a surgeon because he wanted to help people without talking to people. And I was like, oh, that's a developer. [laughs] I'm the same way. And I really enjoyed that. Although I do like talking to people but still, it just made me think about when you're talking about more meetings and then increasing the amount of talking that needs to be done as you progress into more of a management role. Also, circling back, I really like what you said earlier about you're noticing the changes that are happening. You're letting those changes happen, and then you're reflecting on how you feel about it. I really like that approach. Do you think that's working well for you? Does it feel too loose because then you don't feel in control enough of those changes? Or do you actually feel like that's a really good way to explore a new role and then find out if you like those changes? CHRIS: Now that you are restating it back to me, I'm like, oh yeah, I guess that is a good way to do things. But to clarify, I'm not doing nothing with it. I am trying to proactively, where I can, structure my days and do things like that or recognize that right now, I'm probably not the right person to be moving code along. And so I'm saying okay, that is true. And I'm actively choosing to not pick up the bigger pieces of work or to pair with someone else so that they can then run with it but not having me being the person that owns it. So it's not completely letting it happen, but it is almost like meditation to invoke that idea of I'm observing that I'm having these thoughts, and I'm just going to let them go. And it's more about the thinking and the response to it. So I'm trying to name the thing and be like, oh, this is interesting that this is happening. And I'm noticing an immediate visceral reaction to it where it's like, you're taking away my coding? And I'm like, well, hey, it's not them, it's you; you chose to do this. But let's just spend a minute there. That's okay. How do we feel about this? And so it's trying to not have it be a purely reactive response to it but have it be a more intentional, more thoughtful, and more observing, and then giving it a little bit of time to ruminate and then see a little bit more what I think. And also, some of it is purposefully pushing myself out of my comfort zone. I think I'm happy, and I do a reasonable job when I'm the person moving the code along. But I also have really enjoyed being at the edge of an engineering team and working with sales or working with other groups and facilitating the work that's happening. And so, if I explore that a little bit more, what's that going to look like for me? So this period of my career, I'm very intentionally trying to do stuff that I'm like, well, this is a little bit different for me, or this is stretching a little bit, but that is the goal. And I hope good things will come out of it across the board. But it may be that I find like, you know what? Actually, I really miss coding, and I need to find a way to restructure that. And I have seen examples of individuals who are even in CEO positions that are like, no, no, no, I still make some time to code. Like Amir, the founder of Todoist talks regularly about the fact that he is a CEO who still codes. And that organization has a very particular approach to work. And they're very much about async remote, et cetera. So having these blocks of times and being intentional about how they work. So it's not surprising that he's been able to do that and a purposeful thing that he's structured. I don't think that will make sense for me immediately. But I could see a version down the road where I'm like, this is who I am. I need to get this thing back. But for now, I'm purposefully letting it happen and seeing how I feel from there. Also, as I'm saying all of this, it sounds like I'm totally on top of this and really thinking it through. I'm like, no, no, no, this is in the moment. I'm noticing some stuff and being like, oh, okay, well, that's interesting. And some of it I intentionally chose. Again, intentionally chose to get out of my comfort zone. So I think I'm just actively out of my comfort zone right now and saying things about it. And then I think I'm telling the story of how I want to respond to it moving forward but not necessarily perfectly achieving that goal immediately. STEPH: I think that's a nice representation of essentially how you and I have processed things. We've highlighted before that you and I...it's funny, I just made the joke about not talking to people, but it's how I actually process stuff. And the best is when I'm talking out loud to somebody else. And so it totally makes sense that as you were noticing this and reflecting on it, that then this is another way that you are then processing those changes and reflecting on it and thinking through is this a good change? Is it something that I'm going to enjoy? Or am I really going to miss my street coding creds? I need to get back to the editor. CHRIS: I just need that precious flow state that comes from drinking some Mountain Dew and coding for hours. STEPH: Do you drink Mountain Dew? CHRIS: No, I gave it up years ago. STEPH: [laughs] CHRIS: I don't drink soda broadly. But if I'm going to drink soda, it's going to be Mountain Dew because if we're going to do it, let's do this thing. I'm pretty sure that stuff is like thermonuclear, but that's fine. STEPH: [laughs] That's funny. I know we've had this conversation before also around Pop-Tarts where you're like, hey, if I'm going to have a Pop-Tart, I'm going to have the sugariest (Is that a word - sugariest?) Pop-Tart possible. CHRIS: To be clear, that means it has icing on it because some people in the world, namely you, would prefer the ones without icing. Although we recently learned that the ones without icing have a higher fat and calorie content, so I don't know. The world's murky. I wish it were all just clear, and we could just work with it. But it turns out even Pop-Tarts icing versus not is not a simple question. STEPH: It's a very simple question. You just need to be on the right side, which is the non-frosted side. [laughs] I can simplify this for you because fat is delicious. Fat trumps sugar; that's my stance. That's my hot take. CHRIS: I'm saying both, a little from column A, a little from column B. You got yourself a stew. STEPH: [laughs] You got a fat sugar stew. CHRIS: Yeah. That was in Arrested Development. All right, we're veering way off course now. [laughter] To bring it back, what you were highlighting of I'm definitely someone who thinks through stuff by talking out loud, and so it's been wonderful. I've learned so much about myself while talking to you on this podcast. I'll say something, and I'll be like, wait, I actually believe that thing I just said. This is fantastic. Now I can move forward with the knowledge that I've just gained for myself by talking about it on a podcast. So highly recommended: everybody should get a podcast. STEPH: Plus one. I also have a very real, maybe silly, follow-up question for you as we are, like you just said, exploring the things that we believe or not. My question for you is part of the transition to management and moving away from coding. Isere some fear in the back of your mind where you're like, if I stopped coding, I'm going to lose this skill? CHRIS: Honestly, no. And I feel kind of bad saying that because I feel like I should say, "Yeah, I feel like it'll fade away and whatnot." But I think I have an aptitude and an interest towards this work. And if I were to ignore it for two years, then frankly, I also know myself. And I'm still going to keep an eye on everything for a while. So I think I'll be aware of what's going on and maybe just haven't spent as much time with it. But I think if I need to two years from now, I'm like, all right, I got to rebuild my coding muscle. I'll skip a couple of JavaScript frameworks, which will be nice, and I'll be on to the 15th iteration that's new now. But I hope that I could revisit that not trivially, not with no effort. It's the wonderful nature of coding. It's one of the things that I love about it so much is that there are blog posts and YouTube tutorials. And it's so individually discoverable that I'm not really worried about that aspect. My concern, if anything, isn't so much that I'm going to lose my skills or not be able to code anymore; it's that I really enjoy coding. It's a practice that I find very enjoyable. A workweek is enjoyable when it contains big blocks of me putting on my headphones, listening to music, and digging into a problem, and then coding and producing a solution. And those tiny little feedback loops of test-driven development or running something and then going to the browser and clicking around like that, there's a directness there that has always really worked well for me. And so the more I'm abstracted away from that sort of thing, and the more of my work is I'm helping a team, and I'm directing strategy, or whatever it is, that just feels so indirect. And so I'm very interested to find out how I respond to that sort of thing. I've definitely enjoyed it in the past, and so that's why I'm intentionally leaning into it. But I know that I'm giving up a part of the work that I really love, and giving up is too strong of a word as well. I'm going to find what shape makes sense moving forward. And I expect I'll still be pairing with the other developers on the team and helping to define architecture and things like that. So it's not like it's 100% gone. But for now, I think the world where most of my week was spent coding is no longer the case. And so just naming that and being intentional about it. And yeah, that's the game. STEPH: Cool. Yeah, that makes a lot of sense. I was mainly interested in that question because that is a question that I've asked myself from time to time that I think I do have that worry that if I step away from coding for too long, then it won't be easy to jump back into. And I've talked myself out of that many times because I don't think it's true for all the reasons that you just said. But it is something that I have considered as like, well, if I take this leap of faith into this other direction, how easy is it for me to get back if I decide to change my mind and go back to being more of an individual contributor? And one other thing that weighs on me as I'm splitting my time between two areas that I really want to grow…So I'm constantly trying to grow as a developer. I'm also trying to grow as a manager, and I don't want to do a bad job at either. I want to do a great job at both, and that's frankly not always possible. And at times, I have to make trade-offs with myself around okay, I'm going to focus a little heavier this day or this week on being a really great manager or focus a little bit more on being a developer and to pick and choose those topics. And then that sometimes means doing like B+ work in one area, and that's really hard for me. I'm an A-work person. So even downgrading to a B+ level of effort is challenging. But I have found that that's a really great space to be because then I'm doing well in both areas, not perfect, but doing well enough. And often, that's really what counts is that we're doing well enough and still pursuing growth in the areas that are important to us. CHRIS: Yeah, I think that intentional switching back and forth between them is the space that I'm in. I expect my work will remain very technical, and I hope that that's true. And I think to a certain extent; I get to shape it and determine that. And so how much of it is strategy and planning and things like that? Versus how much of it is helping the team with architecture and defining processes as to how we code, and what are our standards, and what are our languages and frameworks and all of that? I expect I'm still going to be involved in the latter. And again, I think to a certain extent; I get to choose that. So I am actually interested to see the shape that both naturally the organization needs out of the role that I'm in. But also, what sort of back pressure I can apply and be like, but this is how I want it to be. Is there room for that, or is there not? And it's all an experiment, and we're going to find out. But personally, for me, I'm going to keep reading Twitter and blog posts every day, and I'm probably going to code on the weekends and things. So the idea of my coding muscle atrophying, I don't know, that one doesn't feel true. But we'll see what I have to say a year from now or after what that looks like. But I expect...this has been true of me for so long, even when I had an entirely different career that I was just reading blogs and other things all the time because this is a thing that deeply interests me. So we will see. STEPH: Yeah, I'm excited to hear how it goes. And I think there's something to be said for the fact that you are also a CTO that's very close to the work that's being done. So being someone that is very involved in the technical decisions and the code that's being written but then also taking on more of the management responsibilities. And that feels more of a shift where you still have a lot of your coding skills. And you are writing code day-to-day at least based on what you're saying, but then you are also acquiring a lot of these management skills to go along with it. Versus if someone were going into management and maybe they're at a really large company and then they are very far away from the development team. And they're focused on higher-level themes and discussions, at least that's my guess. But I'm very excited to hear more about your updates and how this experiment is going and to find out who is the true Chris? CHRIS: Who's the true Chris? That feels complicated. I feel like I contain multitudes. But yeah, you know what? I'm excited to find out as well. Let's see what's going on there. But yeah, so that's a grand summary of the things that are going on in my head. And I expect these are topics that will be continuing to evolve for me. So I think we'll probably have more conversations like this in the future but also some tech stuff. Because like I said, I don't know, I can't stop. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: Yeah, that's actually the perfect segue as we were talking earlier about just ways that we're looking to grow as developers. And I saw something that I really enjoyed, and it's published by another thoughtboter. Their name is Matheus Richard. And Matheus runs a Twitter account that's called @RubyCards. And I don't recall the exact cadence, but every so often, Matheus will share a new snippet of either Ruby or Rails code and then will often present the information as a question. So I'll give you an example, but the highlight is that it teaches you something, either about Ruby or Rails. Maybe you already knew it, maybe you didn't. But it's a really nice exercise to think through okay, I'm reading this code. What do I think it's going to return? And then respond to this poll and then see how other people did as well. Because once the poll closes, then Matheus shares the actual answer for the question. So one example that I saw recently highlights Ruby's endless method definition, which was introduced in Ruby 3. So that would be something like def, and then let's say the method name is message. And then you have closing, but empty parenthes equals a string of "Hello, World." And so then the question is if you call that method message, what would that return? And then the poll often has options around; it would return "Hello World," or it's going to return a syntax error. It's going to return nil. And then it highlights, well, because of Ruby's endless method definition, this would return "Hello, World." And then I also saw a new method that I hadn't used before that's defined in Ruby's Hash class that's called store. And so you can use it calling it on a Hash. So if you have your hash equals and then curly brackets, let's say foo is equal to an integer of zero, then you can call hash.store and then pass in two arguments. The first argument's going to be the key. The second argument is the value. And then, that would essentially be the same syntax that we use for assigning a value to a hash. But I just hadn't actually seen the method store before. So there are fun snippets of Ruby or Rails code. A little bit of a brain teaser helps you think through how that code works, what it's going to execute, what it's going to return. And I really enjoy it. I'll be sure to include a link to it in the show notes so other people can check it out. CHRIS: Oh, that sounds fun. I hadn't seen that, but I will definitely be following. That's the word on Twitter, right? You have subscribing, subscribe and follow, smash that like button, all of the things. I will do all of the things that we do here on the internet. But I do like that model of the question and answer, and it's slightly more engaging than just sharing the information. So yeah, super interested to see that. STEPH: Yeah, I like the format of here's some code, and then we're going to ask you what does it return? So that way, you get a moment to think it through. Because if I read something and it just shows me the answer, my brain just doesn't absorb it. And I'm like, okay, that makes sense, and my brain quickly moves on. But if I actually have to think about it and then respond with my answer, then it'll likely stick with me a lot longer. At least we'll find out; that's the dream. On that note, shall we wrap up? CHRIS: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes,; maybe as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.
On this special edition of The Changelog, we're talking with Cory Wilkerson, Senior Director of Engineering at GitHub, about GitHub Codespaces. For years now, the possibility of coding in the cloud seemed so close, yet so far away for a number of reasons. According to Cory, the raw ingredients to make coding in the cloud a reality have been there for years. The challenge has really been how the industry thinks, and we are now at a place where the skepticism in cloud based workflows is “non-existent.” After 15 months in preview, GitHub not only announced the availability of Codespaces for Teams and Enterprise — they also showcased their internal adoption, with 600 of their 1,000 engineers using it daily to develop GitHub.com. On this episode, Cory shares the full backstory of that journey and a peek into the future where we're all coding in the cloud.
On this special edition of The Changelog, we're talking with Cory Wilkerson, Senior Director of Engineering at GitHub, about GitHub Codespaces. For years now, the possibility of coding in the cloud seemed so close, yet so far away for a number of reasons. According to Cory, the raw ingredients to make coding in the cloud a reality have been there for years. The challenge has really been how the industry thinks, and we are now at a place where the skepticism in cloud based workflows is “non-existent.” After 15 months in preview, GitHub not only announced the availability of Codespaces for Teams and Enterprise — they also showcased their internal adoption, with 600 of their 1,000 engineers using it daily to develop GitHub.com. On this episode, Cory shares the full backstory of that journey and a peek into the future where we're all coding in the cloud.
In Episode 58 of the SAP on Azure Video Podcast we talk about BTP Launchpad, Best Employee-Experience, Binding Azure Functions to SAP Event Mesh, Microsoft Datacenters, Episode 50 of myNewsWrap, SAP on Azure DNS Integration whitepaper and Devtoberfest 2021. Then Martin Pankraz joins us again to show us some cool demos working with ABAP code from Visual Studio Code fun with GitHub Codespaces and using it with JavaScript. https://github.com/hobru/SAPonAzure https://youtu.be/yO1fw1TdtIY
Kevin, Al and Garry are back together for the first time in a while and so we tried to find the finest news around to share with you. Unfortunately, Kevin does decide to show his muppets off.Github codespacesGithub.devAbout billing for Codespaces - GitHub DocsDaily briefing and MyAnalytics branding updates to reflect Microsoft Viva - Microsoft Tech Community Together Mode:https://twitter.com/kevmcdonk/status/1432999299412078592?s=20https://twitter.com/kevmcdonk/status/1432763528193220622?s=20CarPlay on TeamsTeams updates - What's New in Microsoft Teams | August 2021 - Microsoft Tech CommunityMicrosoft hires former Uber exec to lead a new consumer apps effort - The VergeCosmos hacked ChaosDB: How we hacked thousands of Azure customers' databases | Wiz Blogkevmcdonk/S4MSC-Twitter: Sample for creating Microsoft Search custom indexes from Twitter data (github.com) New Discord community for Microsoft Cloud related chat - mscloudhub.com/community (sorry, we forgot to mention this one!)CommsverseSouth Coast SummitScottish Summit
W杯アジア予選の話、ジャワカレーを食べた話、GitHub Codespaces の話、並行プログラミング入門の話をしました。 --- Send in a voice message: https://anchor.fm/pod-de-engineer/message
Watch the live stream: Watch on YouTube About the show Special guest: Dan Taylor Michael #1: Keep your computer awake during long processing For now, use Michael's fork when on macOS. Until this PR is merged. Do you have work that will take a long time? Keeping your OS working away is just a context block from wakepy import keepawake with keepawake(keep_screen_awake=False): ... # do stuff that takes long time Brian #2: How to write a great Stack Overflow question via Kevin Markham The punchline (but it's not enough) Write a brief introduction Provide a self-contained code example Detail the expected results and why I expect those results Add any important notes Link to any relevant questions Write a title that summarizes the question Kevin starts with a question about pandas dataframes and filling in missing values. The question is really application specific The rewrite of the question is awesome Simplifies the problem into a toy example, literally, and out of the domain specific context. Includes example code that can copied, pasted, and run that sets up the problem Uses short and simple variable names Talks about expected results. And why he expects those results. Includes a dataset in the sample code that covers cases the solution needs to provide Includes non-obvious requirements or non-requirements Links to related questions and why they don't solve your problem. I don't think I've ever seen this, but I think it'd be cool to add test code that will pass when the problem is solved. But that might make the question unnecessarily long. Dan #3: Github.dev - press ‘.' to edit code in any GitHub repo Fun bonus feature released at the same time as GitHub Codespaces Runs VS Code entirely in your browser - supercharged “edit button” Nothing to install There's no server to pay for, though functionality is limited The file system is your browser's local storage and GitHub repo You can add files and commit changes directly to your repo You can install extensions that support running in “VS Code Web” Added basic web support to the Python Extension just yesterday Syntax checking, auto-complete, go-to-definition Uses type hints for packages (no python interpreter in the browser) You can also install vscode-pyiodide to run Python code using Jupyter+Pyiodide Overall means you can do more powerful code editing quickly in GitHub.com, I'm looking forward to seeing how this evolves Michael #4: Log analyzer (minus google analytics) GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser. Features Fast, real-time, millisecond/second updates, written in C Only ncurses as a dependency Nearly all web log formats (Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, Caddy, etc) Simply set the log format and run it against your log Beautiful terminal and bootstrap dashboards (Tailor GoAccess to suit your own color taste/schemes) Brian #5: KMK: Clackety Keyboards Powered by Python recommended by Blaise “firmware for computer keyboards written and configured in CircuitPython.” Cool list of features Fully configured through a single, easy to understand Python file. Single-piece or two-piece split keyboards are supported Chainable keys such as KC.LWIN(KC.L) to lock the screen on a Windows PC Built-in unicode macros, including emojis RGB underglow and LED backlights One key can turn into many more based on how many times you tap it One writeup I found of someone using it for a 10-key KMK: run Python on your keyboard includes a video Seems like limited hardware so far, and although the coding might not be too difficult, you still gotta swap out of the circuitboard. I'm bringing this topic up because I'm hoping some keyboard kit people will put together something that just starts with the ability to run CircuitPython so I can just skip to the coding part. Dan #6: SQLModel - use the same models for SQL and FastAPI via Sebastián Ramírez (creator of SQLModel and FastAPI) Write a schema once and use everywhere, reduces a lot of repetitive code Traditionally have to manage several layers of code to pass your data from database queries, to the backend code, expose to your API and consume from the client Code-first ORMs (SQLAlchemy, Django ORM) make it easy to write code that generates SQL FastAPI makes it easy to expose objects to your API using Pydantic models Before you would need to create both models and convert from ORM to Pydantic using .from_orm SQLModel unifies those: a SQLModel is both a SQLAlchemy model and a Pydantic model You can use SQLModel to interact with the database (via wrapping SQLAlchemy) You can use that same model as a Pydantic model in FastAPI requests and responses FastAPI also uses the Pydantic models to generate an openapi.json, meaning you could generate a client library in any language using OpenAPI Generator Some other cool things: Designed using type annotations so that editors like VS Code, PyCharm give great auto-complete out of the box, uses the proposed dataclass_transforms spec for dynamic typing Supports async database sessions, alembic migrations because it's based on SQLAlchemy (not yet documented) Should be possible to integrate with postgis, ts_vectors Extras Brian pip install ./local_directory is pretty interesting. Test & Code 163 The way pip installs from a local directory is about to change. Stéphane Bidoul joins the show to talk about it. Dan type4py - using ML to add type annotations to your codebase retrofitting codebases with types is a pain — static type checkers can only infer so much type4py research paper outlines a state of the art ML model for inferring types, adopting some techniques used in computer vision Open sourced training code, data set, VS Code extension, and inferencing server If you have a need to add type annotations to a large code base, worth giving this a try! WARNING the VS Code extension sends code tokens to their API on type4py.com (they do have a privacy policy) — if this is a concern be sure to host the inferencing server yourself! Joke: Continuous Deployment Also: “If a programmer gets an interview because of a recommendation from a friend, are they being passed by reference?” From @CarlaNotarobot, via @bluefiddleguy
On this episode of DevTalk I speak to Geoffrey Huntley about reinventing the way developers work using Gitpod and GitHub Codespaces. Links: Gitpod GitHub Codespaces GitHub's Engineering Team has moved to Codespaces
Join me in this weekly update as I look at the new GitHub Codespaces, Azure VMware Solution Placement Policies, Azure Storage blob inventory, Tesla self driving investigation and the T-mobile data breach. If you'd like to support me creating video and audio content please consider "buying me a coffee" https://www.buymeacoffee.com/techielass My video graphics were created by the awesome Krist McKenna from Ratworks Music by https://www.bensound.com and https://youtube.com/ikson
Melissa Ma, a Senior PM in the Azure product group, talks to us about the new Pronunciation Assessment service and SDK which makes it easy to build linguistic applications that can provide the user with realtime feedback on their speech. Media file: https://azpodcast.blob.core.windows.net/episodes/Episode390.mp3 YouTube: https://youtu.be/SdGeTmJtORw Resources: https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/how-to-pronunciation-assessment?pivots=programming-language-java https://customers.microsoft.com/en-us/story/1379625676815325642-pearson-education-azure-cognitive-services https://techcommunity.microsoft.com/t5/azure-ai/speech-service-update-pronunciation-assessment-is-generally/ba-p/2505501 The Speech SDK supports pronunciation assessment, which assesses the pronunciation quality of speech input, with indicators of accuracy, fluency, completeness, etc.docs.microsoft.com Other updates: General availability: GitHub Codespaces How to re-size Azure virtual networks that are peered—now in preview Azure Blob storage - Inventory generally availability Upgrade to Text-to-Speech Neural Voice by 31 August 2024
In Episode 55 of the SAP on Azure Video Podcast we talk about BTP High availability setups, resizing peered Azure virtual networks, GitHub Codespaces, Logic App & SAP and look at using Azure NetApp Files for the SAP Global transport directory. Then Bartosz Jarkowski introduces us to his latest blog post series on the SAP Community Network about using OData services with Azure Synapse Pipelines. He is even doing a live publication of his latest episode: Part 6 – Introduction to delta extraction. https://youtu.be/Yn4_JTYgGaY https://github.com/hobru/SAPonAzure
In today's episode of the Nerd Bits we will be discussing the release of the Galaxy Z Fold 3, the release of GitHub Codespaces, Nvidia having a CGI CEO during a part of their event, a Noctua RTX 3070 GPU, and Xiaomi making a dog suspiciously similar to Spot from Boston Dynamics. Works Cited Lee, Tyler. “ASUS and Noctua Could Be Working on a RTX 3070 GPU.” Ubergizmo, 5 Aug. 2021, www.ubergizmo.com/2021/08/asus-noctua-rtx-3070-gpu/. Accessed 15 Aug. 2021. Stevenson, Alastair. “Fast Charge: The Galaxy Z Fold 3 Just Made Me Want the Note 21 More.” Trusted Reviews, 14 Aug. 2021, www.trustedreviews.com/opinion/fast-charge-the-galaxy-z-fold-3-just-made-me-want-the-note-21-more-4157520. Accessed 15 Aug. 2021. Tim Anderson. “After 15 Months in Preview, GitHub Releases Codespaces – Probably the Fanciest New Shiny since Actions.” Www.theregister.com, 12 Aug. 2021, www.theregister.com/2021/08/12/github_codespaces/. Accessed 15 Aug. 2021. Trenholm, Richard. “Nvidia Faked Part of a Press Conference with a CGI CEO.” CNET, 12 Aug. 2021, www.cnet.com/news/nvidia-faked-part-of-a-press-conference-with-a-cgi-ceo/. Accessed 15 Aug. 2021. Vincent, James. “CyberDog Is a New Ominous-Looking Robot from Xiaomi.” The Verge, 10 Aug. 2021, www.theverge.com/2021/8/10/22618043/xiaomi-cyberdog-robot-dog-quadruped-specs-price. Accessed 15 Aug. 2021. --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app --- Send in a voice message: https://anchor.fm/nerdbits/message
Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске: Ruby Ruby 3.1 adds try_convert method to Integer class for implicit conversions Rails 7 allows setting cache expiry, as an absolute timestamp Rails 7 moves ActiveRecord::Base.logger to a class_attribute leading to a 7x speed improvement Opal 1.2 Modern web apps without JavaScript bundling or transpiling Five Turbo Lessons I Learned the Hard Way Using Hotwire with Rails for a SPA like experience Deploying a Rails application to Kubernetes Web Next.js 11.1 HTTPS certificate non-validation vulnerability in Node.js GitHub's Engineering Team has moved to Codespaces Interaction Testing sneak peek Don't attach tooltips to document.body CSS Tips Build force directed graphs with React and D3v7 Drayman - server-side component framework RWpod Cafe 25 (04.09.2021) Сбор и голосование за темы новостей
This week we discuss Elasticsearch vs. OpenSearch, Reorgs and Remote Pay. Plus, some thoughts on IKEA and QBRs. Rundown This Week in Programming: The ElasticSearch Saga Continues (https://thenewstack.io/this-week-in-programming-the-elasticsearch-saga-continues/) Elastic amends Elasticsearch Python client so it won't work with forks then blocks comments (https://www.theregister.com/2021/08/09/elasticsearch_python_client_change/) Twitter Thread on Elasticsearch (https://twitter.com/xeraa/status/1423071203753869313) Google staff could see pay cut if they opt to work from home (https://www.theguardian.com/technology/2021/aug/12/google-staff-could-see-pay-cut-if-they-opt-to-work-from-home) Steven Sinosky: Hardcore Software (https://hardcoresoftware.learningbyshipping.com/) Relevant to your interests 700,000 lines of code, 20 years, and one developer: How Dwarf Fortress is built (https://stackoverflow.blog/2021/07/28/700000-lines-of-code-20-years-and-one-developer-how-dwarf-fortress-is-built/) Amazon delays employee office return until 2022 amid COVID-19 surge (https://www.engadget.com/amazon-delays-hq-office-return-until-2022-amid-covid-19-surge-055819058.html) Red Hat tells U.S. workers they must be vaccinated to come to office (https://www.bizjournals.com/triangle/news/2021/08/06/red-hat-announces-vaccine-mandate-for-u-s-workers.html) Tesla rewrote its own software to survive the chip shortage (https://www.theverge.com/2021/7/26/22595060/tesla-chip-shortage-software-rewriting-ev-processor) All your DNS were belong to us: AWS and Google Cloud shut down spying vulnerability (https://www.theregister.com/2021/08/06/aws_google_dns/) The Register just found 300-odd Itanium CPUs on eBay (https://www.theregister.com/2021/07/30/end_of_itanium_shipments/) Hard Drive Reliability: A Look at HDD and SDD Failure Rates (https://www.backblaze.com/blog/backblaze-drive-stats-for-q2-2021/) Microsoft announces new 'Super Duper Secure Mode' for Edge (https://therecord.media/microsoft-announces-new-super-duper-secure-mode-for-edge/) Salesforce enters the streaming wars with new video service for professionals (https://www.axios.com/salesforce-streaming-service-professionals-30a58e49-77fc-469d-9ff7-99f866678a98.html) Amazon cloud executive Charlie Bell is leaving after 23 years as shakeup continues at AWS (https://www.cnbc.com/2021/08/09/amazon-cloud-exec-charlie-bell-leaving-after-23-years-amid-aws-shakeup.html) VCs are betting big on Kubernetes: Here are 5 reasons why – TechCrunch (https://techcrunch.com/2021/08/10/vcs-are-betting-big-on-kubernetes-here-are-5-reasons-why/) Accenture gets hacked (https://twitter.com/vxunderground/status/1425420813281505289?s=20) Why can we not have an explicit statement about 1Password being a subscription-only service (https://1password.community/discussion/comment/601917/#Comment_601917) The “Cloud MQ” for 2021 is Out! (https://blogs.gartner.com/bob-gill/2021/08/11/the-cloud-mq-for-2021-is-out/) Reddit Numbers (https://twitter.com/DeItaone/status/1425774330911277057) GitHub Codespaces (https://github.com/features/codespaces) HashiCorp State of Cloud Strategy Survey (https://www.hashicorp.com/state-of-the-cloud?utm_source=social) Now Microsoft is protesting after Amazon won a $10 billion NSA cloud contract (https://www.theverge.com/2021/8/10/22618764/nsa-10-billion-microsoft-aws-cloud-services-protest) a16z Infra #6: The Cost of Cloud vs. Repatriation (https://a16z-live.simplecast.com/episodes/a16z-infra-6-the-cost-of-cloud-vs-repatriation-IU1rwMMk) TriggerMesh Previews Integration Language Based on HCL (https://containerjournal.com/features/triggermesh-previews-integration-language-based-on-hcl/) Why CAPTCHA Pictures Are So Unbearably Depressing (https://clivethompson.medium.com/why-captcha-pictures-are-so-unbearably-depressing-20679b8cf84a) Announcing AI21 Studio and Jurassic-1 Language Models (https://www.ai21.com/blog/announcing-ai21-studio-and-jurassic-1) Nonsense Cabin fever in "Fortress Australia" due to slow vaccination rate (https://www.axios.com/australia-coronavirus-border-ban-lockdowns-1e58fb57-2666-47b4-bcba-1b305a5b66ab.html) AMC theaters will start accepting Bitcoin this year (https://www.engadget.com/amc-theaters-bitcoin-tickets-143803440.html) Sponsors strongDM — Manage and audit remote access to infrastructure. Start your free 14-day trial today at strongdm.com/SDT (http://strongdm.com/SDT) CBT Nuggets — Training available for IT Pros anytime, anywhere. Start your 7-day Free Trial today at cbtnuggets.com/sdt (https://cbtnuggets.com/sdt) Clubhouse.io — Project management built specifically for software teams. Sign up at www.clubhouse.io/sdt (https://clubhouse.io/sdt) Listener Feedback Jordy wants you to work at as a Senior Software Engineer at Weaveworks (https://weaveworks.breezy.hr/p/76a86071360001-senior-software-engineer) Conferences SpringOne (https://springone.io), Sep 1-2 DevOps Loop | October 4, 2021 (https://devopsloop.io/?utm_campaign=Global_P6_TS_Q322_Event_DevOpsLoop_at_VMworld&utm_source=twitter&utm_medium=social) - see Coté's promo video (https://twitter.com/cote/status/1425460843014131716). THAT Conference comes to Texas January 17-20, 2022 (https://that.us/activities/call-for-counselors/tx/2022) DevOps World by CloudBees September 28-30 (https://www.devopsworld.com) (Virtual Event) SDT news & hype Join us in Slack (http://www.softwaredefinedtalk.com/slack). Send your postal address to stickers@softwaredefinedtalk.com (mailto:stickers@softwaredefinedtalk.com) and we will send you free laptop stickers! Follow us on Twitch (https://www.twitch.tv/sdtpodcast), Twitter (https://twitter.com/softwaredeftalk), Instagram (https://www.instagram.com/softwaredefinedtalk/), LinkedIn (https://www.linkedin.com/company/software-defined-talk/) and YouTube (https://www.youtube.com/channel/UCi3OJPV6h9tp-hbsGBLGsDQ/featured). Brandon built the Quick Concall iPhone App (https://itunes.apple.com/us/app/quick-concall/id1399948033?mt=8) and he wants you to buy it for $0.99. Use the code SDT to get $20 off Coté's book, (https://leanpub.com/digitalwtf/c/sdt) Digital WTF (https://leanpub.com/digitalwtf/c/sdt), so $5 total. Become a sponsor of Software Defined Talk (https://www.softwaredefinedtalk.com/ads)! Recommendations Brandon: The Suicide Squad (https://www.rottentomatoes.com/m/the_suicide_squad) Matt: Uniqlo Fluffy Yarn Fleece Full-Zip Jacket (https://www.uniqlo.com/au/en/products/E419505-000?colorCode=COL09) Coté: PÅHL (https://www.ikea.com/us/en/p/pahl-desk-white-s49128945/) desk (https://www.ikea.com/us/en/p/pahl-desk-white-s49128945/). Photo Credit (https://unsplash.com/photos/z3Mg-MMM4mM) Photo Credit (https://unsplash.com/photos/K5DY18hy5JQ)
GitHub CodeSpaces, Animal counting numbers, etc... --- Send in a voice message: https://anchor.fm/newsintech/message
Joining the podcast this week is Amanda Silver! Amanda is the Corporate Vice President (CVP) of Product for Microsoft's Developer Division which includes the Visual Studio family of products, .NET, TypeScript, and Azure developer platforms. She has been key to Microsoft's transformation to contribute to open source with the introduction of TypeScript, Visual Studio Code, and the acquisition of both Xamarin and GitHub. She believes that a tight digital feedback loop with zero distance between end-users and engineering teams is a critical element of great product development. In this episode, Amanda discusses what's coming next for senior and junior developers alike. She shares her experiences on Microsoft's Developer Division; what developers can look forward to regarding Visual Studio 2022, Azure PaaS, GitHub Codespaces, Visual Studio Code, and more. She also speaks about what the industry as a whole can do to improve developer and user satisfaction, attract more potential developers to the field, and how we can make education more accessible. Amanda has invaluable insights on many different topics that you'll want to tune in for! “We need to talk to our customers [and] the people we aspire to be our customers every single day — that's the only way that we can make sure that we're building products that people love and use.” — Amanda Silver Topics of Discussion: [:14] About The Azure DevOps Podcast, Clear Measure, the new podcast Architect Tips, and Jeffrey's offer to speak at virtual user groups. [1:18] About today's episode with Amanda Silver. [2:00] Jeffrey welcomes Amanda to the podcast! [2:08] Amanda speaks about her career journey thus far and what has led her to her current position at Microsoft. [5:21] How Amanda's team is organized at Microsoft, the work that they do, and the practices they engage in with their users. [9:37] Amanda shares her thoughts on the importance of developers, how developers can become more effective in their roles, what the industry can do to attract more people into the field, and more. [12:29] How the industry is helping developers enter the industry quicker and what can be improved on in the industry to lower the barrier to entry. [16:30] About the upcoming release of Visual Studio and the recent preview. [18:57] A word from Azure DevOps Podcast's sponsor: Clear Measure. [19:29] Amanda describes machine learning and AI and how it can help developers. [22:33] Static analysis vs. probabilistic analysis. [26:09] Amanda describes the vision for Visual Studio Code. [30:02] Has Visual Studio Code become the most popular coding text editor? [30:58] There is a lot of Visual Studio Code in GitHub Codespaces. Amanda explains how these products fit together. [35:12] About the current work Microsoft is doing regarding Azure PaaS services and the changes that developers can look forward to in the future. [37:24] Are containers the future? [38:32] About Azure Arc, how it is designed, and what this means. [39:18] Jeffrey thanks Amanda Silver for joining the podcast. Mentioned in this Episode: Architect Tips — New video podcast! Azure DevOps Clear Measure (Sponsor) .NET DevOps for Azure: A Developer's Guide to DevOps Architecture the Right Way, by Jeffrey Palermo — Available on Amazon! bit.ly/dotnetdevopsebook — Click here to download the .NET DevOps for Azure ebook! Jeffrey Palermo's Youtube Jeffrey Palermo's Twitter — Follow to stay informed about future events! Amanda Silver on GitHub Amanda Silver's LinkedIn .NET 6.0 Hot Reload Visual Studio 2022 Preview GitHub Codespaces Visual Studio Code Azure PaaS servicesKubernetes Azure Arc Want to Learn More? Visit AzureDevOps.Show for show notes and additional episodes.
Episode 1 of the Console DevTools Podcast, a devtools discussion with David Mytton (Co-founder, Console) and Jean Yang (CEO, Akita Software).Tools discussed:Waypoint - Build, deploy, and release across platforms.Zellij - Terminal workspace manager (tabs + multiplexing).Find more interesting tools and beta releases for developers at https://console.devOther things mentioned:HCL - Hashicorp Configuration Language.Vagrant.Terraform.Kubernetes.Gitpod.GitHub Codespaces.tmux.vim.Oh My ZSH.Fish.VS Code.Let us know what you think on Twitter:https://twitter.com/jeanqasaurhttps://twitter.com/davidmyttonhttps://twitter.com/consoledotdevOr by email: hello@console.devWe are always on the lookout for interesting tools to feature in the newsletter, so please say hello if you're working on something new or have recently used a tool you think we'd like.We only include things that would be of interest to experienced developers and do not accept payment for product inclusion. Read our selection criteria.Recorded: 2021-06-29.
About ScottScott is a web developer who has been blogging at https://hanselman.com for over a decade. He works in Open Source on ASP.NET and the Azure Cloud for Microsoft out of his home office in Portland, Oregon. Scott has three podcasts, http://hanselminutes.com for tech talk, http://thisdeveloperslife.com on developers' lives and loves, and http://ratchetandthegeek.com for pop culture and tech media. He's written a number of books and spoken in person to almost a half million developers worldwide.Links: Hanselminutes Podcast: https://www.hanselminutes.com/ Personal website: https://hanselman.com TranscriptAnnouncer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.Corey: This episode is sponsored in part by Thinkst. This is going to take a minute to explain, so bear with me. I linked against an early version of their tool, canarytokens.org in the very early days of my newsletter, and what it does is relatively simple and straightforward. It winds up embedding credentials, files, that sort of thing in various parts of your environment, wherever you want to; it gives you fake AWS API credentials, for example. And the only thing that these things do is alert you whenever someone attempts to use those things. It's an awesome approach. I've used something similar for years. Check them out. But wait, there's more. They also have an enterprise option that you should be very much aware of canary.tools. You can take a look at this, but what it does is it provides an enterprise approach to drive these things throughout your entire environment. You can get a physical device that hangs out on your network and impersonates whatever you want to. When it gets Nmap scanned, or someone attempts to log into it, or access files on it, you get instant alerts. It's awesome. If you don't do something like this, you're likely to find out that you've gotten breached, the hard way. Take a look at this. It's one of those few things that I look at and say, “Wow, that is an amazing idea. I love it.” That's canarytokens.org and canary.tools. The first one is free. The second one is enterprise-y. Take a look. I'm a big fan of this. More from them in the coming weeks.Corey: This episode is sponsored in part by our friends at Lumigo. If you've built anything from serverless, you know that if there's one thing that can be said universally about these applications, it's that it turns every outage into a murder mystery. Lumigo helps make sense of all of the various functions that wind up tying together to build applications. It offers one-click distributed tracing so you can effortlessly find and fix issues in your serverless and microservices environment. You've created more problems for yourself; make one of them go away. To learn more, visit lumigo.io.Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. I'm joined this week by Scott Hanselman of Microsoft. He calls himself a partner program manager—or is called a partner program manager. But that feels like it's barely scraping the surface of who and what he is. Scott, thank you for joining me.Scott: [laugh]. Thank you for the introduction. I think my boss calls me that. It's just one of those HR titles; it doesn't really mean—you know, ‘program manager,' what does it even mean?Corey: I figure it means you do an awful lot of programming. One of the hardest questions is, you start doing different things—and Lord knows you do a lot of them—is that awful question that you wind up getting at cocktail parties of, “So, what is it you do exactly?” How do you answer that?Scott: Yeah, it's almost like, if you spent any time on Clubhouse recently, there was a wonderful comedian named Spunky Brewster on Instagram who had a whole thing where she talked about the introductions at the beginning of a Clubhouse thing, where it's like, you're a multi-hyphenate sandwich artist slash skydiver slash programmers slash whatever. One doesn't want to get too full of one's selves. I would say that I have for the last 30 years been a teacher and a professional enthusiast around computing and getting people excited about computing. And everything that I do, whether it be writing software, shipping software, or building community, hangs off of the fact that I'm an enthusiastic teacher.Corey: You really are. And you're also very hard to pin down. I mean, it's pretty clear to basically the worst half of the internet, that you're clearly a shill. The problem is defining exactly what you're a shill for. You're obviously paid by Microsoft, so clearly you push them well beyond the point when it would make sense to.You have a podcast that has been on for over 800 episodes—which puts this one to shame—called Hanselminutes, and that is, of course, something where you're shilling for your own podcast. You've recently started on TikTok, which I can only assume is what the kids are into these days. You're involved in so many different things and taking so many different positions, that it's very hard to pin down what is the stuff you're passionate about.Scott: I'm going to gently push back and say—Corey: Please do.Scott: That if one were to care to look at it holistically, I am selling enthusiasm around free and open-source software on primarily the Windows platform that I'm excited about, and I am selling empowerment for the next generation of people who want to do computing. Before I went to Microsoft, my blog and my podcast existed, and I was consistent in my, “Hey, have you heard the news?” Message to anyone who would listen. And I taught at both Portland Community College and Oregon Institute of Technology, teaching web services and history of the web and C# and all that kind of stuff. So, I'm one of those people where if you touch on a topic that I'm interested in, I'll be like, “Oh, my goodness, let's”—and I'll just like, you know, knock everything off the desk and I'm going to be like, “Okay, let's build a model, a working model of the solar system here, now. The orange is the sun.”And it's like, suddenly now we're talking about science, like Hank Green or whatever. My family will ask me, “Why isn't the remote control working?” And then I've taken it apart and I'm explaining to them how the infrared LED inside works. And, you know, how can you not be excited about all these things? And that's my whole thing about computing and the power that being able to program computers represents to me.Corey: I would agree with that. I'd say that one thing that is universal about everything you're involved in is the expression I heard that I love and am going to recapture has been, “Sending the elevator back down.”Scott: Oh, yeah. Throwing ladders, ropes, elevators. I am very blessed to have made it out of my neighborhood, and I am very hopeful that anyone who is in a situation that they do not want to be in could potentially use coding, programming, IT, computing as the great equalizer and that I can I could somehow lend my privilege to them to get the things done and solve the problems that they want to solve with computers.Corey: I'm sure that you've been asked ad nauseum about—you work in free and open-source software. You've been an advocate for this, effectively, for your entire career; did no one tell you you work at Microsoft? But that's old Microsoft in many respects. That's something that we've covered with a bunch of different guests previously from Microsoft, and it's honestly a little—it's becoming a bit of a tired trope. It was a really interesting conversation a few years back that, oh, it's clearly all just for show.Well, that is less and less obvious, and more tired and frankly bad take as time progresses. So, I want to go back a bit further into my own personal journey because it turns out that the number one reason to reach out to you for anything is tech support on various things. I don't talk about this often, but I started my career moonlighting as a Windows admin, back in the Windows 2003 server days; and it was an experience, and licensing was a colossal pain, and I finally had enough of it one day, in 2006, switched over to Unix administration on BSD, and got a Mac laptop, and that was really the last time that I used Windows in anger. Now, it's been 15 years since that happened, and I haven't really been tracking the Windows ecosystem. What have I missed?Scott: [laugh]. There's a lot there that you just said. So first, different people have their religions and they're excited about them, and I encourage everyone to be excited about the religion that they're excited about. It's great to be excited about your thing, but it's also really not cool to be a zealot about your thing. So hey, be excited about Windows, be excited about Linux, be excited about Mac.Just don't tell me that I'm going to heck because I didn't share your enthusiasm. Let's just be excited together and we can be friends together. I've worked on Linux at Nike, I've worked on Mac, I've worked on Windows, you know, I've been there before these things existed and I'll be there afterwards.Corey: Exactly. At some point being a zealot for a technology just sort of means you haven't been around the block enough to understand how it's going to break, how it's going to fail, how it's going to evolve, and it doesn't lead to a positive outcome for anyone. It fundamentally becomes a form of gatekeeping more than anything else, and I just don't have the stomach for it.Scott: Yeah. And ultimately, we're just looking for—you know, we got these smart rocks that we taught how to think with lightning, and they're running for loops for us. And maybe they're running them in the cloud, maybe they're running locally. So, I'm not really too worried about it. Windows is my thing of choice, but just, you know, one person's Honda is another person's Toyota; you get excited about the brand that you start out with.So, that's that. Currently, though, Windows has gone, at least in the last maybe 20 years, from one of those things where there's generational pain, and, like, “Microsoft killed my Pappy, and I'll never forgive you.” And it's like, yeah, there was some dumb stuff in the '90s with Internet Explorer, but as a somewhat highly placed middle manager at Microsoft, I've never been in an active mustache-twirling situation where I was behind closed doors and anyone thought anything nefarious. There's only a true, “What's the right thing for the customer? What is the right thing for the people?”My whole thing is to make it so developers can develop more easily on Windows, so I'm very fortunate to be helping some folks in a partnership between the Windows division and the developer division that I work in to make Windows kick butt when it comes to dev. Historically, the Windows terminal, or what's called cmd.exe which is run by a thing called the console host has sucked; it has lagged behind. So, if you drop out to the command line, you've got the, you know, the old, kind of, quote-unquote, “DOS shell” with a cmd processor—it's not really DOS—running in an old console host. And it's been there for gosh, probably early '90s. That sucks.But then you got PowerShell. And again, I want to juxtapose the difference between a console—or a terminal—and a shell. They're different things. There's lots of great third-party terminals in the ecosystem. There's lots of shells to choose from, whether it be PowerShell, PowerShell Core—now PowerShell 7.0—or the cmd, as well as bash, and Cygwin, and zsh, and fish.But the actual thing that paints the text on Windows has historically not been awesome. So, the new open-source Windows terminal has been the big thing. If you're a Machead and you use iTerm2, or Hyper, or things like that, you'll find it very comfortable. It's a tabbed terminal, split-screen, ripping fast, written in, you know, DirectX, C++ et cetera, et cetera, all open-source, and then it lets you do transparency, and background colors, and ligature fonts, and all the things that a great modern terminal would want to do. That is kind of the linchpin of making Windows awesome for developers, then gets even awesomer when you add in the ability that we're now shipping an actual Linux kernel, and I can run N number of Linuxes side-by-side, in multiple panes, all within the terminal.This getting to the point about juxtaposing the difference between a terminal and a console and a shell. So, I've got, on the machine, I'm talking to you on right now, on my third monitor, I've got Windows terminal open with PowerShell on Windows on the left, Ubuntu 18.04 LTS on the right, with the fish shell. And then I've got another Ubuntu 20.04 with bash, a standard bash shell.And I'm going and testing stuff in Docker, and running .NET in Docker, and getting ready to deploy my own podcast website up into Azure. And I'm doing it in a totally organic way. It's not like, “Oh, I'm just running a virtual machine.” No, it's integrated. That's what I think you'd be impressed with.Corey: That right there is the reason that I generally tended to shy away from getting back into the Windows ecosystem for the longest time—and this is not a slam on Windows, by any stretch of the—Scott: No of course. Sure, sure, sure.Corey: —imagination—my belief has always been that you operate within the environment as it's intended to be operated within, and it felt at the time, “Oh, install Cygwin, and get all this other stuff going, and run a VM to do it.” It felt like I was fighting upstream in some respects.Scott: Oh, yeah, that's a great point. Let's talk about that for a second. So—Corey: Let's do it.Scott: So, Cygwin is the GNU utilities that are written in a very nice portable C, but they are written against the Windows kernel. So, the example I like to use is ls, you type ls, you list out your directory, right? So, ls and dir are the same thing for this conversation. Which means that someone has to then call a system call—syscall in Linux, Windows kernel call in Windows—and say, “Hey, would you please enumerate these files, and then give me information about them, and check the metadata?” And that has to call the file system and then it's turtles all the way down.Cygwin isn't Linux. It's the bash and GNU utilities recompiled and compiled against the Windows stuff. So, it's basically putting a bash skin on Windows, but it's not Linux; it's bash. Okay? But WSL is actually Linux, and rather than firing up a big 30 gig Hyper-V, or VirtualBox, or Parallels virtual machine, which is, like, a moment—“I'm firing up the VM; call me in an hour when it comes back up.”—and when the VM comes up, it's, like, a square on your screen and now you're dealing with another thing to manage.The WSL stuff is actually a utility virtual machine built on a lower subsystem, the virtualization platform, and it starts in less than a second. You can start it faster than you can say, one one-thousand. And it goes instantly up, it automatically allocates and deallocates memory so that it's smart about memory, and it's running the actual Linux kernel, so it's not pretending to be Linux. So, if your goal is a Linux environment and you're a Linux developer, the time of Linux on the desktop is happening, in this case, on the Windows desktop. Where you get interesting stuff, and where I think your brain might explode is, imagine you're in the terminal, you're at the Linux file system at the bash prompt, and you type ‘notepad.exe.' What would you expect to happen? You'd expect it to try to find it in a Linux path and fail.Corey: Right. And then you're trying to figure out, am I in this environm—because you generally tend to run these things in the same-looking terminal, but then all the syntax changes as soon as you go back into the Windows native environment, you're having to deal with line-ending issues on a constant basis, and you just—Scott: Oh, yeah. All that stuff, where.Corey: And as soon as you ask for help because back in those days, I was looking primarily into using freenode as my primary source of support because I network staff on the network for the better part of a decade, and the answer is, “I'm having some trouble with Linux,” and the response is, “Oh, you're doing this within a Windows environment? Get a real computer, kid.” Because it's still IRC, and being condescending and rude to anyone who makes different choices than you do is apparently the way that was done back then.Scott: Well, today in 2020 because we don't want to just have light integration with Windows—and by light integration, like, I don't know if you remember firing up a virtual machine on Windows and then, like, copy-pasting a file, and we were all going like, “Oh, my God, that's amazing.” I drug the file in and then it did a little bit of magic and then moved the file from Windows into Linux. What we want is to blur the lines between the two so you can move comfortably. When you type explorer.exe or notepad.txt in Linux on Windows, Linux says no, and then Windows gets the chance, fires it up, and can access the Linux file system.And since Notepad now understands line endings, just happily, you can open up your .profile, your bash_profile, your csh file in Notepad, or—here's where it gets interesting—Visual Studio Code, and comfortably run your Windows apps, talking to your Linux file system, or in the—coming soon, and we've blogged about this and announced it at Build last year, run Linux GUI apps seamlessly so that I could have two browsers up, two Chromes, one Windows and one Linux, side-by-side, which is going to make web testing even that much easier. And I'm moving seamlessly between the two. Even cooler, I can type explorer.exe and then pass in dot, which represents the current folder, and if the current folder is the Linux file system, we seamlessly have a Plan 9 server—basically a file server that lets you access your Linux file system—from—Corey: Is it actually running Plan 9?Scott: It is a Plan 9 server.Corey: That is amazing. I'm sorry, that is a blast from the past.Scott: I'm glad. And we can run N number of Linuxes; this isn't just one Linux. I've got Kali Linux, two different Ubuntus, and I could tar up the user mode files on mine, zip them up, give them to you, and you could go and type ‘wsl–import,' and then have my Linux file system. Which means that we could make a custom Screaming in the Cloud distro, put it in the Windows Store, put it up on GitHub, build our own, and then the company could standardize on our Linux distro and run it on Windows.Corey: That is almost as terrible an idea as using a DNS service as a database.Scott: [laugh].Corey: I love it. I'm totally there for it.Scott: It's really nice because it's extremely—the point is, it has to have no friction, right? So, if you think about it this way, I just moved—I blogged about this; if people want to go and learn about it—I just moved my blog of 20 years off of a Windows Server 2008 server running under someone's desk at a host, into Azure. This is a multi-month-long migration. My blog, my main site, kind of the whole Hanselman ecosystem moved up in Azure. So, I had a couple things to deal with.Am I going to go from Windows to Linux? Am I going to go from a physical machine to a virtual machine? Am I going to go from a physical machine to a virtual machine to a Platform as a Service? And when I do that, well, how is that going to change the way that I write software? I was opening it in Visual Studio, pressing F5, and running it in IIS—the Internet Information Server for Windows—for the last 15, 20 years.How do I change that experience? Well, I like Visual Studio; I like pressing F5; I like interactive debugging sessions. But I also like saving money running Linux in the cloud, so how can I have the best of all those worlds? Because I wrote the thing in .NET, I moved into .NET 5, which runs everywhere, put together a Docker file, got full support for that in Visual Studio, moved it over into WSL so I can test it on both Windows and Linux.I can go into my folder on my WSL, my Windows subsystem for Linux, type code dot, open up Visual Studio Code. Visual Studio Code splits in half. The Windows client of Visual Studio Code runs on Windows; the server, the Visual Studio Code server, runs in WSL providing the bridge between the two worlds, and I can press F5 and have interactive debugging and now I'm a Linux developer even though I've never left Windows. Then I can right-click publish in Visual Studio to GitHub Actions, which will then throw it into the cloud, and I moved everything over into Azure, saved 30%, and everything's awesome. I'm still a Windows developer using Visual Studio. So, it's pretty much I don't know, non-denominational; kind of mixing the streams here.Corey: It is. And let me take it a step further. When I'm on the road, the only computer I bring with me these days—well, in the before times, let's be very realistic. Now, when ‘I'm on the road,' that means going to the kitchen for a snack—the only computer I bring with me is my iPad Pro, which means that everything I do has a distinct application. For when I want to get into my development environment, historically it was, use some terminal app—I'm a fan of Blink, but everyone has their own; don't email me.And everything else I tended to use looked an awful lot like a web app. If there wasn't a dedicated iOS app, it was certainly available via a web browser. Which leads me to the suspicion that we're almost approaching a post-operating-system world where the future development operating system begins to look an awful lot—and people are going to yell at me for this—Visual Studio Code.Scott: Mmm.Corey: It supports a bunch of remote activities now that GitHub Codespaces is available—at least to my account; I don't know if it's generally available yet—but I've been using it; I love it; everything it winds up doing is hosted remotely in Azure; I don't have to think about managing the infrastructure; it's just another tab within GitHub, and it works. My big problem is that I'm trying to shake, effectively, 20 years of muscle memory of wrestling with Vim, and it takes a little bit of a leap in order to become comfortable with something that's a more visually-oriented IDE.Scott: Why don't you use the VsVim, Jared Parsons Vim plugin for Visual Studio?Corey: I've never yet found a plugin that I like for something else to make it behave like Vim. Vimperator is a browser extension, all of it just tends to be unfortunate and annoying in different ways. For whatever reason, the way that I'm configured or built, it doesn't work for me in the same way. And it goes back to our previous conversation about using the native offering as it comes, rather than trying to make it look like something else.Scott: Okay. I would just offer to you and for other Vim people who might be listening, that VS Code Vim does have 2.5 million installs, over 2 million people happily using that. And they are—Corey: Come to find it only has 200,000 actual users; there was an installation bug and one person just kept trying over and over and over. I kid, I kid.Scott: No, seriously though, these are actual Vim-heads and Jared Parsons is a developer at Microsoft who is like, out of his cold dead hands you'll pull his Vim. So, there's solutions; whether you're Vim or Emacs, you know, we welcome all comers. But to your point, the Visual Studio, once it got split in half, where the language services, those services that provide context to Python, Ruby, C# C++ et cetera, once those extensions can be remoted, they can run on Windows, they can run on Linux, they can run on the cloud. So, VS Code being split in half as a client-server application has really made it shine. And for me, that means that I don't notice a difference, whether I'm running VS Code on Windows or running VS Code to a remote Linux install, or even using SSH and coding on Windows remotely to a Raspberry Pi.Corey: I love the idea. I've seen people do this, in some respects, back in the days of Code Server being a project on GitHub, and it took a fair bit of wrangling to get that to work in a way that wasn't scarily insecure and reliable. But once it was up and running, you could effectively plug a Raspberry Pi in underneath your iPad and effectively have a portable computer on the go that did local development. I'm looking at this and realizing the future doesn't look at all like what I thought it was going to, and it's really still kind of neat.Scott: Mm-hm.Corey: There's a lot of value in being able to make things like this more accessible, and the reason I'm excited about a lot of this, too, is that aligned with a generous free tier opportunity, which I don't know final pricing for things like GitHub Codespaces, suddenly the only real requirement is something that can render a browser and connect to the internet for an awful lot of folks to get started. It doesn't require a fancy local overpowered development machine the way a lot of things used to. And yes, I know; there are certain kinds of development that are changing in that respect, but it still feels to me like it has never been easier to get started with all of this technology than ever before, with a counterargument that there's so many different directions to go in. “Oh, I want to get started using Visual Studio Code or learning to write JavaScript. Great. How do I do this? Let me find a tutorial.” And you find 20 million tutorials, and then you're frozen with indecision. How do you get past that?Scott: Yeah, there is and always will be, unfortunately, a certain amount of analysis paralysis that occurs. I started a TikTok recently to try to help people to get involved in coding, and the number one question I get—and I mean, thousands and thousands of them—are like, “Where do I start?” Because everyone seems to think that if they pick the wrong language, that will be a huge mistake. And I can't think of a wrong language, you know? Like, what human language should I learn?You know, English, Chinese, Arabic, Japanese. Pick one and then learn another one if you can. Learn a couple. But I don't think there's a wrong language to learn because the basics of computer science are the basics of computer science. I think what we need to do is remind people that computers are computers no matter whether they're an Android phone or a Windows laptop, and that any forward motion at all is a good thing. I think a lot of people have analysis paralysis, and they're just afraid to pick stuff.Corey: I agree with what you're saying, but I'm also going to push back gently on what you're saying, as well. If someone who is new to the field was asking me what language to learn, I would be hard-pressed to recommend a language that was not JavaScript. I want to be clear, I do not understand or know JavaScript at all, but it's clear from what I'm seeing, that is, in many ways, the language of the future. It is how frontend is being interacted with; there are projects from every cloud provider that wind up managing infrastructure via JavaScript primitives. There are so many on-ramps for this, and the user experience for new folks is phenomenal compared to any language that I've worked with in my career. Would you agree with that or disagree with that assessment?Scott: So, I've written blog posts on this topic, and my answer is a little more ‘it depends.' I say that people should always learn JavaScript and one other language, preferably a systems language, which also may be JavaScript. But rather than thinking about things language-first, we think about things solutions-first. If someone says, “I want to do a lot of data science,” you don't learn JavaScript. If someone says, “I want to go and write an Android app,” yeah, you could do that in JavaScript, but JavaScript is not the answer to all questions.Just as the English language, while it may be the lingua franca, no pun intended, it is not the only language one should pick. I usually say, “Well, what do you want to do?” “Well, I want to write a video game for the Xbox.” Okay, well, you're probably not going to do that in JavaScript. “Oh, I want to do data science. I want to write an iPhone app.” JavaScript is the language you should learn if you're going to be doing things on the web, yes, but if you're going to be writing the backend for WhatsApp, then you're not going to do that JavaScript.Corey: This episode is sponsored by ExtraHop. ExtraHop provides threat detection and response for the Enterprise (not the starship). On-prem security doesn't translate well to cloud or multi-cloud environments, and that's not even counting IoT. ExtraHop automatically discovers everything inside the perimeter, including your cloud workloads and IoT devices, detects these threats up to 35 percent faster, and helps you act immediately. Ask for a free trial of detection and response for AWS today at extrahop.com/trial.Corey: Yeah, I think you're right. It comes down to what is the problem you're trying to solve for? Taking the analogy back to human languages, well, what is your goal? Is it just to say that you've learned a language and to understand, get a glimpse at another culture through its language? Yeah, there is no wrong answer. If it's that you want to go live in France one day and participate in French business discussions, I have a recommendation for you, and it's probably not Sanskrit.At some point, you have to align with what people want to do and the direction they're going in with the language selection. What I like about JavaScript is, frankly, it's incredible versatility as far as problems to which it can be applied. And without it, I think you're going to struggle as you enter the space. My first language was crappy Perl—slash bash because everyone does bash when you're a systems administrator—and then it has later evolved now to crappy Python as my language of choice. But I'm not going to be able to effectively do any frontend work in Python, nor would I attempt to do so.My way of handling frontend work now is to have the good sense to pay a professional. But if you're getting started today and you're not sure what you want to do in your career, my opinion has always been that if you think you know what you want to do in your career, there's a great chance you're going to be wrong, but pursuing the thing that you think you want to do will open other opportunities and doors, and present things to you that will catch your interest in a way you might not be able to anticipate. So, especially early on in careers, I like biasing for things that give increased options, that boost my optionality as far as what I'm going to be able to do.Scott: Okay. I think that's fair. I think that no one ever got fired for picking IBM; [laugh] no one ever jeopardized their career by choosing JavaScript. I do think it's a little more nuanced, as I mentioned.Corey: It absolutely is. I am absolutely willing to have a disagreement with you on that front. I think the thing that we're aligned on is that whatever you pick, make sure it's something you're interested in. Don't do it just for—like, “Well, I'm told I can make a lot of money doing X.” That feels like it's the worst reason to do things, in isolation.Scott: That's a tough one. I used to think that, too, but I am thinking that it's important to note and recognize that it is a valid reason to get into tech, not for the passion because for no other reason that I want to make a lot of money.Corey: Absolutely. I could not agree with you more, and that is… something I've gotten wrong in the past.Scott: Yeah. And I have been a fan of saying, you know, “Be passionate and work on these things on the side,” and all that kind of stuff. But all of those things involve a lot of assumptions and a lot of privileges that, you know, people have: that you have spare time and that you have a place to work on these things. I work on stuff on the side because it feeds my spirit. If you work on woodworking, or drones, or gardening on the side, you know, not everything you work on the side has to be steeped in hustle culture and having a startup, or something that you're doing on the side.Corey: Absolutely. If you're looking at a position of wanting to get into technology because it leads to a better financial outcome for you and that is what motivates you, you're not wrong.Scott: Exactly.Corey: The idea that, “Oh, you have to love it or you'll never succeed.” I think that some of the worst advice we ever wind up giving folks early in their career—particularly young people—is, ‘follow your passion.' That can be incredibly destructive advice in some contexts, depending upon what it is you want to do and what you want your life to look like.Scott: Yeah, exactly.Corey: One of the things that I've always been appreciative of from afar with Microsoft has been there's an entire developer ecosystem, and historically, it's focused on languages I can barely understand: ASP.NET, the C# is deep in that space, F#, I think, is now a thing as well. There's an entire ecosystem around this with Visual Studio the original, not Visual Studio Code—turns out naming is one of those things that no tech companies seems to get right—but it feels almost like there's an entire ecosystem there for those of us who spent significant time—and I'm speaking for myself here, not you—in the open-source community talking about things like Perl and whatnot, I never got much exposure to stuff like that. I would also classify Enterprise Java as being in that direction as well. Is there a bifurcation there that I'm not seeing, or was I just never talking to the right people? All the above? Maybe I was just—maybe I had blinders on; didn't realize it.Scott: There was a time when the Microsoft developer ecosystem meant write things for Windows, do things on Windows, use languages that Microsoft made and created. And now, with the rise of the cloud and with the rise of Software as a Service, Microsoft is a much simpler company, which is a funny thing to say for such a complicated company. Microsoft would love to run your for loop in the cloud for money. We don't care what language you use; we want you to use the language that makes you happy. Somewhere around five to seven years ago, in the developer division, we started optimizing for developer happiness.And that's why you can write Ruby, and Perl, and Python, and C, and C++ and C# and all those different things. Even C# now, and .NET, is owned by the .NET Foundation and not by Microsoft. Microsoft, of course, is one of the primary users, but we've got a lot of—Samsung is a huge contributor, Google is a huge contributor, Amazon Web Services is a big contributor to .NET.So, Microsoft's own zealotry towards—and bias towards our own languages has, kind of, gone away because Office is on iPhone, right? Like, anywhere that you are, we'll go there. So, we're really going where the customer is rather than trying to funnel the customer into where we want them to be, which is a really an inverted way of doing things over the way it was done 20, 30 years ago. In my opinion.Corey: This gets back to the idea of the Microsoft cultural transformation. It hasn't just been an internal transform; it's been something that is involved with how it's engaging with its customers, how it's engaging with the community, how it's becoming available in different ways to different folks. It's hard to tell where a lot of these things start and where a lot of these things stop. I don't pretend to be a Microsoft “fanboy,” quote-unquote, but I believe it is impossible to look at what has happened, especially in the world of cloud, and not at the very least respect what Microsoft has been able to achieve.Scott: Well, I came here to open source stuff. I'm surely not responsible for the transformation, I'm just a cog in the machine, but I can speak for the things that I own, like .NET and Visual Studio Community, and I think one of the things that we have gotten right is we are trying to create zero-distance products. You could be using Visual Studio Code, find a bug, suggest a feature, have a conversation in public with the PMs and devs that own the thing, get an insider's build a few days later, and see that promoted to production within a week or two. There is zero distance between you the consumer and the creator of the thing.And if you wanted to even fix the bug yourself, submit a pull request, and see that go into production, you could do that as well. You know, some of our best C# compiler folks are not working for Microsoft and they are giving improvements, they are making the product better. So, zero-distance in many ways, if you look at the other products at Microsoft, like PowerToys is a great thing, which is [unintelligible 00:32:06] an incubator for Windows features. We're adding stuff to the PowerToys open-source project like launchers, and a thing called FancyZones that is a window tiling manager, you know, features that prosumers and enthusiasts always wished Windows could have, they can now participate in, thereby creating a zero-distance product in Windows itself.Corey: And I want to point out as well that you are still Microsoft. You, the collective you. I suppose you personally; that is where your email address ends. But you're still Microsoft. This is still languages, and tools, and SDKs, and frameworks used by the largest companies in the world. This zero-distance approach is being done on things that service banks, who are famously not the earliest adopters of some code that I wrote last night; it's probably fine.Scott: Do you know what my job was before I came here?Corey: Tell me.Scott: I was the chief architect at a finance company that created software for banks. I was responsible for a quarter of the retail online banking systems in North America, built on .NET and open-source software. [laugh].Corey: So, you've lived that world. You've been that customer.Scott: Trying to convince a bank that open-source was a good idea in the early 2000s was non-trivial. You know, sitting around in 2003, 2004, talking about Agile, and you know, continuous integration, and build servers, and then going and saying, “Hey, you should use the software,” trying to deal with lawyers and explain to them the difference between the MIT, Apache, and GPL licenses and what it means to their bank was definitely a challenge. And working through those issues, it has been challenging. But open-source software now pervades. Just go and look at the license.txt in the Visual Studio Program Files folder to see all of the open-source software that is consumed by Visual Studio.Corey: One last topic that I want to get to before we call it a show is that you've spent a significant portion of your career, at least recently, focusing on, more or less, where the next generation of engineers, developers, et cetera, come from. And to that end, you've also started recently with TikTok, the social media platform. Are those two things related, first off, or am I making a giant pile of unwarranted assumption?Scott: [laugh]. I think that is a fair assumption. So, what's going on is I want to make sure that as I fade away and I leave the software industry in the next, you know, N number of years, that I'm setting up as many people as possible for success. That's where my career started when I was a professor, and that's hopefully where my career will end when I am a professor again. Hopefully, my retirement gig will have me teaching at some university somewhere.And in doing that, I want to find the next million developers, right? Where are they, the next 10 million developers? They're probably not on Twitter. They might be a lot of different places: they might be on Discord, they might be on Reddit, they might be on forums that I haven't found yet. But I have found, on TikTok, a very creative and for the most part kind and inclusive community.And both myself and also recently, the Visual Studio Code team have been hanging out there, and sharing our creativity, and having really interesting conversations about how you the listener can if not be a programmer, be a person that knows better the tools that are available to you to solve problems.Corey: So, I absolutely appreciate and enjoy the direction that you're going in, but again, people invite you to things and then spring technical support questions on you. Can you explain what TikTok is? I'm still trying to wrap my head around it because I turned around and discovered I was middle-aged one day.Scott: Sure. Well, I mean, I am an old man on TikTok, to be clear. TikTok, like Twitter, revels in its constraints. If you recall, there was a big controversy when Twitter went from 140 characters to 280 because people thought it was just letting the constraint that we were so excited about—which was artificial because it was the length of a standard message service text—Corey: I'm one of those people who bitterly protested it. I was completely wrong.Scott: Right? But the idea that something is constrained, that TikTok is either 15 seconds, or less than 60, it's similar to Vine in that it is a tiny video; what can I do in one minute? Additionally, before they allowed uploading of videos, everything was constrained within the TikTok editor, so people would do amazing and intricate 30 and 40 shot transitions within a 60 second period of time. But one of the things I find most unique about TikTok is you can reply to a text comment with a video. So, I make a video—maybe I do 60 seconds on how to be a software engineer—somebody replies in text, I can then reply to that text with a video, and then a TikTok creator can do what's called a stitch and reply to my video with a video.So, I could take 15 seconds of yours, a comment that you made, and say, “Oh, this is a great comment. Here's my thoughts on that comment.” Or we could even do a duet where you record a video and then I record one, side-by-side. And we either simulate that we're actually having a conversation, or I react to your video as well. Once you start teaching TikTok about yourself by liking things, you curate a very positive place for yourself.You might get on TikTok, not logged in, and it's dancing, and you might find some inappropriate things that you don't necessarily want to see, or you're not interested in, but one of the things that I've noticed as I talk about my home network and coding is people will say, “Oh, I finally found adjective TikTok; I finally found coding TikTok I finally found IT TikTok. Oh, I'm going to comment on your post because I want to stay on networking TikTok.” And then your feed isn't just a feed of the people that you follow, but it's a feed of all the things that TikTok thinks you're excited about. So, I am on this wonderful TikTok of linguistics and languages, and I'm learning about cultures, and I'm on indigenous TikTok, and I'm on networking TikTok. And the mix of creativity and the constraint of just 60 seconds has been, really, a joy. And I've only been there for about a month and I've blessed to have 80,000 people hanging out with me there.Corey: It sounds like you're quite the fan of the platform, which alone in isolation, is enough to get me to look at it in more depth.Scott: I am a fan of creativity. I would also say though, it's very addictive once you find your people. I've had to put screen time limits on my own phone to keep me from burning time there.Corey: That is all of tempting, provocative, and disturbing. I—Scott: You should hang out with me on YouTube, then. I just got my 100,000 YouTube Silver Play Button in the mail. That's where I spend my time doing my long-form. I just did, actually, 17 minutes on WSL and how to use Linux. That might be a good starter for you.Corey: It very well might. So, if people want to learn more about what you're up to, and how you think about the wide variety of things you're interested in, where can they find you?Scott: They should start at my last name dot com: Hanselman.com. They used to be able to Google for Scott, and I was in an epic battle with Scott brand toilet paper tissue, and then they trademarked the name Scott and now I'm somewhere in the distant second or third page. It was a tragedy. But as an early comer—Corey: Oh, my condolences.Scott: Yeah, oh my God. As an early comer to the internet, it was me and Scott Fly Rods on the first page, for many, many years. And then—Corey: If it helps, you and Scott Fly Rods are both on page two.Scott: Oh. Well, the tyranny of the Scott toilet paper conspiracy against me has been problematic.Corey: Exactly.Scott: [laugh].Corey: Thank you so much for taking the time to speak with me today. I really do appreciate it.Scott: It's my pleasure.Corey: Scott Hanselman, partner program manager at Microsoft and so much more. I'm Cloud Economist Corey Quinn. This is Screaming in the Cloud. If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice, whereas if you've hated this podcast, please leave a five-star review on your podcast platform of choice, along with a crappy comment that starts with a comment that gatekeeps a programming language so we know to ignore it.Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.Announcer: This has been a HumblePod production. Stay humble.
Jonathan Carter (a.k.a. LostInTangent) is the principal program manager at Microsoft for VS Code Liveshare, GitHub Codespaces, and IntelliCode. We talk about how Liveshare is opening up new possibilities in pair programming, how Codespaces aims to reduce a key source of developer friction, and how he and his team want to enable more developers to say "yes" to the question, "Why not now?" Jonathan also talks about building dev tools in his spare time, including his latest project, Code Tour, a VS Code extension that lets you create guided tours through your codebase.Show notes and transcript: https://about.sourcegraph.com/podcast/jonathan-carter/
How does the Aesthetic Usability Effect play in to Github Codespaces or PlayJS? That and a few more topics in this week's episode.
Оригинальный состав Олег, Искандер и Богдан. Темы: 1. Github Codespaces - https://github.com/features/codespaces 2. О причинах появления языков: - https://nim-lang.org - https://ziglang.org - https://www.beeflang.org - https://www.red-lang.org 3. Locking in WebKit: - https://webkit.org/blog/6161/locking-in-webkit/ - https://aspenuwu.me/posts/rust-optimization.html - https://github.com/Amanieu/parking_lot 4. Type filters & Ruleguard - https://twitter.com/dgryski/status/1317245210041012224 - Что такое фильтры типов в ruleguard - Фильтры структурных типов в ruleguard (type matching) - Underlying types - Что означает “contains?” - Как выразить фильтр для подвыражения фильтра https://bit.ly/2FEfEjq 5. "Книжный клуб" читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 3 - Storage and Retrieval На следующий раз в "Книжный клуб" читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 4 - Encoding and Evolution Свои вопросы и заметки по главе пишите сюда: @generictalks_bot Если Вы хотели бы послушать наше интервью с какем-то интересным или хотите сами прийти - присылайте предложения сюда: @generictalks_bot
Can a development environment be online? Carl and Richard talk to Anthony van der Hoorn about GitHub Codespaces - the consolidation of a number of online development solutions from Microsoft including Visual Studio Online. Anthony talks about unifying the online dev environment for Visual Studio and Visual Studio Code - recognizing that the two tools are very different! And there is the option to explore code directly in the browser as well. You have more choices than ever for writing code!Support this podcast at — https://redcircle.com/net-rocks/donations
Can a development environment be online? Carl and Richard talk to Anthony van der Hoorn about GitHub Codespaces - the consolidation of a number of online development solutions from Microsoft including Visual Studio Online. Anthony talks about unifying the online dev environment for Visual Studio and Visual Studio Code - recognizing that the two tools are very different! And there is the option to explore code directly in the browser as well. You have more choices than ever for writing code!Support this podcast at — https://redcircle.com/net-rocks/donations
In questa fash news mostriamo la beta release di github codespaces, molte sono le features che sono già disponibili. Questo tool offre molti vantaggi e portabilità che prima non esistevano. Sicuramente un tool da provare! Indice 00:00 Intro 00:45 Github Codespaces: cos'è? 02:30 Demo Codespaces: come aprire un ambiente codespaces da una repo Github 04:00 Approfondimento di come funzione GitHub Codespaces 05:00 Come viene installato l'ambiente? 06:40 Panoramica feature: source control, debug, estensioni, pull request 07:45 Approfondimento Remote Explorer feature 08:30 Estensioni VSCode 10:45 Demo installazione estensioni e soft reload 13:45 Live share 15:45 Opinioni e competitor di Github Openspaces 16:55 Eclipse Che 17:00 Review generale e riepilogo Openspaces 19:05 Mobile e Tablet development 19:30 Disquisizione CPU con architettura ARM come Macbook o iPad 20:20 Come richiede l'early access alle beta di GitHub Codespaces 20:48 Outro Link utili: https://github.com/features/codespaces Seguiteci su: linkedln: https://www.linkedin.com/company/schr... Facebook: https://www.facebook.com/schrodingerhat Instagram: https://www.instagram.com/schrodinger... Twitter: https://twitter.com/schrodinger_hat Live ogni venerdì su: twitch: https://www.twitch.tv/schrodinger_hat Youtube: https://www.youtube.com/channel/UC1QL...