POPULARITY
We've been having great fun in Programming By Stealth learning how to use Jekyll to create a website using GitHub Pages. This week Bart goes through the challenge he left us with last time — to add a nav bar to our little static website using Bootstrap 5 along with Jekyll and Liquid templates. Bart had a lot of fun with his solution so it was fun to hear him dust off the cobwebs on Bootstrap. Then we turn to learning about Jekyll's `includes` feature, which is reusable snippets similar to how TextExpander snippets let you write something and change it in only one place. The worked examples simplify the code in a way, and we learn how to use `includes` to create advanced image markup. I also enjoyed learning about Liquid comments and how you can create white space between sections of your code for ease of writing and debugging that then never show up in the resultant HTML.
We continue our series on making websites using GitHub Pages. Building on our Jekyll knowledge with Liquid templates, we now learn how to create our own theme with Jekyll layouts. The terminology of Jekyll is still tricky, but with some worked examples and a challenge this time, maybe it will start to cement in our brains! You can find Bart's fabulous tutorial shownotes and the audio podcast at pbs.bartificer.net.
In this episode, Bart continues teaching us about GitHub Pages using Jekyll by introducing us to Liquid Templates. Liquid allows us to move from adding static content to our web pages to auto-generated information. It's a lot for one lesson, and some of the terminology is a little weird, but as always, Bart's worked example brings it home. You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.
In this episode of the PowerShell Podcast, we sit down with Joshua Dearing, aka Fortress, to explore his personal and professional growth through PowerShell, community engagement, and saying yes to new opportunities. Fresh off his first PowerShell Wednesday presentation, Joshua shares the story of how he overcame imposter syndrome, started his blog, and found confidence by getting involved in the PowerShell community. Key topics in this episode include: Joshua's journey with PowerShell and the community What it was like presenting at PowerShell Wednesday for the first time Starting a blog using GitHub Pages, Jekyll, and PowerShell to sync with Obsidian Navigating imposter syndrome Building a culture of feedback and open communication in the workplace The impact of community, mentorship, and putting yourself out there Joshua also discusses the value of small wins, how to advocate for yourself professionally, and the importance of being visible, even when you automate away the work. From scripting with style using Spectre Console to leaning into vulnerability and reflection, this episode is a heartfelt conversation about growth, kindness, and collaboration. Join the conversation: Bio and Links: Josh is a help desk technician turned PowerShell enthusiast who transformed his career through automation—and he's on a mission to help others do the same. With a knack for simplifying software and device setups, he's all about making tech more accessible for end-users while fostering strong connections in the community. Leveraging PDQ products to streamline deployments and management, he's passionate about helping IT pros work smarter, not harder. Follow Joshua on LinkedIn: https://www.linkedin.com/in/joshuadearing/ Josh's BlueSky: https://bsky.app/profile/dearing.dev Check out his blog on GitHub pages: https://www.dearing.dev/posts/Building-a-Website-with-GitHub-Pages/ PwshSpectreConsole https://github.com/ShaunLawrie/PwshSpectreConsole View more PowerShell videos, including PowerShell Wednesdays, on the PDQ Youtube: https://www.youtube.com/@pdq Join PowerShell Wednesdays every Wednesday at 2 PM EST on https://discord.gg/pdq Andrew video about WinUIShell: https://youtu.be/-aDWww5SWOs Connect with Andrew on LinkedIn: https://www.linkedin.com/in/andrewplatech/ The PowerShell Podcast: https://pdq.com/the-powershell-podcast
In our miniseries on GitHub Pages, we learn how to create a basic Jekyll site. To do this, we must install a modern version of Ruby, install its Gem Bundler, create a little placeholder site, and then serve Jekyll to view our site locally. We push it to GitHub where the GitHub Actions we learned about last time do their magic and create a real website all for free. But we didn't stop there. One of our goals is to create our own theme, and to build on what we get with Bootstrap. We actually download the source, not compiled version of Bootstrap and pick and choose the files we want to use. While learning about the standard conventions for directory structure in Jekyll sites, we'll also learn about Sass — Syntactically Awesome Style Sheets — and how Jekyll will turn them into standard CSS. It's a bit of a heavy lift in terms of a lot of moving pieces, but no one bit of this was hard to learn. It was great fun, and this is just the beginning of what we're going to learn about using Jekyll as a fully-functional content management system.
Way back in September of 2022, Bart finished off the Webpack miniseries by leaving it as an exercise for the student to deploy their web apps to GitHub Pages. Bart closes that circle in this installment while teaching us how to use GitHub Actions. We learn about workflows, jobs, steps, events, and runners. Bart includes great tables in the shownotes of the terminology, so we now have a handy reference guide for making our own YAML files to run GitHub actions. You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net. Read an unedited, auto-generated transcript with chapter marks: PBS_2025_02_15 Join our Slack at podfeet.com/slack and check out the Programming By Stealth channel under #pbs. Support Bart by going to lets-talk.ie and pushing one of the big blue support buttons. Referral Links: Parallels Toolbox - 3 months free for you and me Learn through MacSparky Field Guides - 15% off for you and me Backblaze - One free month for me and you Eufy - $40 for me if you spend $200. Sadly nothing in it for you. PIA VPN - One month added to Paid Accounts for both of us CleanShot X - Earns me $25%, sorry nothing in it for you but my gratitude
In Programming By Stealth this week, Bart has started a new miniseries to teach us how to use GitHub Pages to create a website (for free.) In PBS 175, he starts by explaining what Static Site Generators (like GitHub Pages) are, and the pros and cons vs. a more traditional content management system like WordPress. Neither are wrong, they just solve the same problem in different ways. He then gives us the framework for the tools we'll be using and lays out the next few lessons where we'll get in and get our hands dirty. I'm extremely excited about this miniseries and I hope you will be too. You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net. Read an unedited, auto-generated transcript with chapter marks: PBS_2025_02_01 Join our Slack at podfeet.com/slack and look for the #pbs channel, and check out our pbs-student GitHub Organization. It's by invitation only but all you have to do is ask Allison! Join the Conversation: allison@podfeet.com podfeet.com/slack Support the Show: Patreon Donation Apple Pay or Credit Card one-time donation PayPal one-time donation Podfeet Podcasts Mugs at Zazzle Podfeet 15-Year Anniversary Shirts Referral Links: Parallels Toolbox - 3 months free for you and me Learn through MacSparky Field Guides - 15% off for you and me Backblaze - One free month for me and you Eufy - $40 for me if you spend $200. Sadly nothing in it for you. PIA VPN - One month added to Paid Accounts for both of us CleanShot X - Earns me $25%, sorry nothing in it for you but my gratitude
As promised, we're back with part 2 of the Powershell Teaser. We pick up where we left off, starting with learning about parameter definitions and the advantages such a structured language affords us, including automatically generated help files and error checking. Bart updated the shownotes to include valuable resource links to take your PowerShell to a higher level. We walk through our plan for 2025, where Bart is going to teach us about GitHub Pages (which power the Programming By Stealth shownotes) and then how to change the style you see with Bootstrap to make it your own. After that we expect to get back to PowerShell but that's a ways down the road so things could change.
Sam and Ryan talk about how frameworks and infrastructure evolve with each other, using Next.js as a representative example. They discuss how hosting providers like Heroku have always imposed certain constraints on apps, what features those constraints enable hosting providers to support, how burdensome those constraints are across different frameworks, and how frameworks that add infra-specific APIs can best communicate the costs of those APIs and benefits they enable.Timestamps:0:00 - Intro3:03 - Heroku and the Twelve-Factor App7:39 - GitHub Pages and static sites13:57 - Serverless and JAMstack17:30 - Vercel and CDNs, self-hosting, and Next.js19:00 - How framework APIs can nudge an app towards a particular hosting solution23:09 - What constraints does Next.js impose on your app (e.g. middleware doesn't run node), and what benefits do those constraints give you?36:13 - How Next.js APIs are motivated by wanting to tease apart static and dynamic code, in an attempt to support the needs of any web app with a single stack40:33 - What is the relationship between frameworks and infra?47:37 - How can frameworks that add infra-specific APIs best communicate the costs of those APIs and the benefits they enable?Links:The Twelve-Factor App
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/
ThursdAI October 26thTimestamps and full transcript for your convinience## [00:00:00] Intro and brief updates## [00:02:00] Interview with Bo Weng, author of Jina Embeddings V2## [00:33:40] Hugging Face open sourcing a fast Text Embeddings## [00:36:52] Data Provenance Initiative at dataprovenance.org## [00:39:27] LocalLLama effort to compare 39 open source LLMs +## [00:53:13] Gradio Interview with Abubakar, Xenova, Yuichiro## [00:56:13] Gradio effects on the open source LLM ecosystem## [01:02:23] Gradio local URL via Gradio Proxy## [01:07:10] Local inference on device with Gradio - Lite## [01:14:02] Transformers.js integration with Gradio-lite## [01:28:00] Recap and bye byeHey everyone, welcome to ThursdAI, this is Alex Volkov, I'm very happy to bring you another weekly installment of
Programador Ex-Amazon te enseña a publicar tu SITIO WEB. En este TUTORIAL COMPLETO aprenderás cómo poner un sitio web en línea en Internet de forma gratuita con GitHub Pages (usando un dominio gratuito de GitHub Pages). Aprende como crear tu sitio web con HTML, CSS, y JavaScript con ChatGPT. También cómo comprar y configurar un nombre de dominio personalizado (como "miweb.com"). Finalmente cómo configurar DNS con Record A AAAA y CNAME con un Registrador de Dominios y la encriptación HTTPS SSL de forma gratuita. ⚡️ Cupón del 10%
Brian Douglas is the CEO of OpenSauced which helps enterprises discover the best engineers in Open Source. Victoria and Will talk to Brian about meeting as many developers as possible, setting goals, and keeping himself accountable, and what makes a successful open source project. OpenSauced (https://opensauced.pizza/) Follow OpenSauced on Twitter (https://twitter.com/saucedopen), GitHub (https://github.com/open-sauced), Instagram (https://www.instagram.com/opensauced/), YouTube (https://www.youtube.com/opensauced), Discord (https://discord.com/invite/U2peSNf23P), and Dev.to (https://dev.to/opensauced). Follow Brian Douglas on LinkedIn (https://www.linkedin.com/in/brianldouglas/), Twitter (https://twitter.com/bdougieYO), or visit his website (https://b.dougie.dev/). Follow thoughtbot on Twitter (https://twitter.com/thoughtbot) or LinkedIn (https://www.linkedin.com/company/150727/). Become a Sponsor (https://thoughtbot.com/sponsorship) of Giant Robots! Transcript: VICTORIA: Hey there. It's your host Victoria. And I'm here today with Dawn Delatte and Jordyn Bonds from our Ignite team. We are thrilled to announce the summer 2023 session of our new incubator program. If you have a business idea that involves a web or mobile app, we encourage you to apply for our 8-week program. We'll help you validate the market opportunity, experiment with messaging and product ideas, and move forward with confidence towards an MVP. Learn more and apply at tbot.io/incubator. Dawn and Jordyn, thank you for joining and sharing the news with me today. JORDYN: Thanks for having us. DAWN: Yeah, glad to be here. VICTORIA: So, tell me a little bit more about the incubator program. This will be your second session, right? JORDYN: Indeed. We are just now wrapping up the first session. We had a really great 8 weeks, and we're excited to do it again. VICTORIA: Wonderful. And I think we're going to have the person from your program on a Giant Robots episode soon. JORDYN: Wonderful. VICTORIA: Maybe you can give us a little preview. What were some of your main takeaways from this first round? JORDYN: You know, as ever with early-stage work, it's about identifying your best early adopter market and user persona, and then learning as much as you possibly can about them to inform a roadmap to a product. VICTORIA: What made you decide to start this incubator program this year with thoughtbot? DAWN: We had been doing work with early-stage products and founders, as well as some innovation leads or research and development leads in existing organizations. We had been applying a lot of these processes, like the customer discovery process, Product Design Sprint process to validate new product ideas. And we've been doing that for a really long time. And we've also been noodling on this idea of exploring how we might offer value even sooner to clients that are maybe pre-software product idea. Like many of the initiatives at thoughtbot, it was a little bit experimental for us. We decided to sort of dig into better understanding that market, and seeing how the expertise that we had could be applied in the earlier stage. It's also been a great opportunity for our team to learn and grow. We had Jordyn join our team as Director of Product Strategy. Their experience with having worked at startups and being an early-stage startup founder has been so wonderful for our team to engage with and learn from. And we've been able to offer that value to clients as well. VICTORIA: I love that. So it's for people who have identified a problem, and they think they can come up with a software solution. But they're not quite at the point of being ready to actually build something yet. Is that right? DAWN: Yeah. We've always championed the idea of doing your due diligence around validating the right thing to build. And so that's been a part of the process at thoughtbot for a really long time. But it's always been sort of in the context of building your MVP. So this is going slightly earlier with that idea and saying, what's the next right step for this business? It's really about understanding if there is a market and product opportunity, and then moving into exploring what that opportunity looks like. And then validating that and doing that through user research, and talking to customers, and applying early product and business strategy thinking to the process. VICTORIA: Great. So that probably sets you up for really building the right thing, keeping your overall investment costs lower because you're not wasting time building the wrong thing. And setting you up for that due diligence when you go to investors to say, here's how well I vetted out my idea. Here's the rigor that I applied to building the MVP. JORDYN: Exactly. It's not just about convincing external stakeholders, so that's a key part. You know, maybe it's investors, maybe it's new team members you're looking to hire after the program. It could be anyone. But it's also about convincing yourself. Really, walking down the path of pursuing a startup is not a small undertaking. And we just want to make sure folks are starting with their best foot forward. You know, like Dawn said, let's build the right thing. Let's figure out what that thing is, and then we can think about how to build it right. That's a little quote from a book I really enjoy, by the way. I cannot take credit for that. [laughs] There's this really great book about early-stage validation called The Right It by Alberto Savoia. He was an engineer at Google, started a couple of startups himself, failed in some ways, failed to validate a market opportunity before marching off into building something. And the pain of that caused him to write this book about how to quickly and cheaply validate some market opportunity, market assumptions you might have when you're first starting out. The way he frames that is let's figure out if it's the right it before we build it right. And I just love that book, and I love that framing. You know, if you don't have a market for what you're building, or if they don't understand that they have the pain point you're solving for, it doesn't matter what you build. You got to do that first. And that's really what the focus of this incubator program is. It's that phase of work. Is there a there there? Is there something worth the hard, arduous path of building some software? Is there something there worth walking that path for before you start walking it? VICTORIA: Right. I love that. Well, thank you both so much for coming on and sharing a little bit more about the program. I'm super excited to see what comes out of the first round, and then who gets selected for the second round. So I'm happy to help promote. Any other final takeaways for our listeners today? DAWN: If this sounds intriguing to you, maybe you're at the stage where you're thinking about this process, I definitely encourage people to follow along. We're trying to share as much as we can about this process and this journey for us and our founders. So you can follow along on our blog, on LinkedIn. We're doing a LinkedIn live weekly with the founder in the program. We'll continue to do that with the next founders. And we're really trying to build a community and extend the community, you know, that thoughtbot has built with early-stage founders, so please join us. We'd love to have you. VICTORIA: Wonderful. That's amazing. Thank you both so much. INTRO MUSIC: VICTORIA: This is the Giant Robots Smashing Into Other Giant Robots podcast, where we explore the design, development, and business of great products. I'm your host, Victoria Guido. WILL: And I'm your host, Will WILL. And with us today is Brian Douglas, CEO of OpenSauced, helping enterprises discover best engineers in open source. Brian, thank you for joining us today. BRIAN: My pleasure. Thanks for inviting me on the podcast. VICTORIA: Just tell us a little bit more about OpenSauced. BRIAN: Yeah, it's opensauced.pizza is the URL. So I always point that out because it's easy to found. WILL: I love it. BRIAN: And OpenSauced is a platform for engineers to find their next contributions and enterprises to discover the best engineers doing open-source, so... VICTORIA: Right. So maybe tell me what led you to start this company? BRIAN: Yeah, that's a great question. Actually, if you don't mind, I'll start further back. I graduated college in 2008 during the financial crisis with a finance degree. And what I learned pretty quickly is, like, if you don't know anybody in finance, it's a little hard to get a job in a bad market. So I took a sales role instead, mainly because I just wanted to learn. I was very much introverted. I wanted to learn how to talk to people, and have conversation, and communicate. So I did that four years and then got my MBA. And then started learning how to code while building an app, which is...I mentioned before we hit record I learned about this podcast around that time, which is, like, very serendipitous to be on this podcast years later. But, fast forward, OpenSauced, like, because of the whole networking aspect of how I got my job in sales and how I was able to do sales when I learned how to engineer, I knew the connection to open source, or how I learned how to code was, like, a wealth of information. So I made it my career goal to meet as many developers as possible. And then, I was working at this company called Netlify. I was employee number three there. And my role was to basically be a front-end engineer, but where I was actually getting more adoption to the product by doing open source. Like, every time I'd do an open-source contribution, I'd add a Netlify deploy preview manually in my PR. And that would give the maintainer enough juice to review the PR sooner. And I was doing a lot of open-source contribution at the time. So I wanted to build a tool to maintain, like, all the PRs I had opened in-flight that I needed to respond back to or...because back in, like, 2016, notifications on GitHub they weren't the greatest. WILL: [laughs] BRIAN: So I built a tool just to keep up to date on what I had opened and how I can communicate back with the maintainer. And saw a need...actually, I didn't see the need. I used this thing myself, and then in 2020, I started live streaming myself, building more features on top of this, like, CRM tool, and had a few people ask, "Hey, can you add a login to this? I'd love to use this, too, with my own database and stuff like that." So I did that. I added login. And I say database, like, we actually originally started with no database. We used GitHub Issues as a tracking mechanism for tracking repos and conversations. We've since moved away from that because, now, obviously, GitHub's got way more advanced in how notifications work. But the sort of ethos of the project still lives today, and what we have in the open-source platform. So that's, like, the long tale of how we got to where we are today. And then, I spoke at GitHub Universe on OpenSauced back in 2017. And from that talk, I had GitHub employees reach out to me and ask me to work at GitHub. So I accepted, and I worked at GitHub for almost five years, sort of putting OpenSauced to the side up until last year, decided to go ahead and pursue it again. And at that point, decided to make it a company. VICTORIA: What a cool story. There are so many things in there that I want to follow up on. I'm sure, Will, you also are like -- [laughs] WILL: [laughs] Yes. VICTORIA: I have so many questions. [laughs] WILL: Wow, that's amazing just hearing the story from you [laughs] got a four-year degree in finance, 2008 happened, no job, very hard to get a job because of who you know. And then you go and changed directions to start learning to code. And I love how it's kind of guided your path to where you are here right now. Like, who knows? But would you have been the CEO of OpenSauced if 2008 would have never happened? So it's amazing to see it. So, I guess, because I love the idea of OpenSauced...because I am that developer that wants to get into open source, but it is hard. It is hard to find the issues that you can work on. It's hard to get into the community to do that. So, if you can just explain to me a little bit more as from there, and we can do it from the enterprise portion later. But, as far as a user: a developer, what does it look like for me to use OpenSauced as a developer? BRIAN: Yeah, yeah. And that's a great question, too, as well. It's funny how serendipitous the story is today, but when I was living it, it was like, oh, man, I'm never going to get a job. [laughter] Or I'm never going to learn how to code. And I think anybody listening who might be where I was ten years ago, I just want to preface, like, your story is like a guided path through experiences. And every experience is like an opportunity for that sort of one piece of, like, the sort of stepping stone to move on to, like, CEO of whatever your next startup is or senior engineer, or staff engineer, whatever it is. But, to answer your question, Will, we built a Discord, and the Discord itself is how we sort of discovered this sort of onboard ramp into open source. So today, if you sign up to OpenSauced, again, opensauced.pizza, you connect to your GitHub account, and you get on-boarded into a flow to ask a couple questions. So, like, what languages are you interested in? And then, what time zone are you in? And the reason for those two things is, one because we're going to do recommendations for projects pretty soon. Everything is open source, so you can literally see the issues that are open about recommendations; happy to take contributions and feedback on it. And then time zone is because communication is pretty key. So, like, if someone is not awake when I see their PR, I have an expectation of, like, cool, I'll write a response, and I'll wait for them to wake up and respond back to that. So the goal there is there's a lot of projects on GitHub, like, 372 million repos is the number off the top of my head. They literally announce this stuff, and they share the data. But of those repos, only 225,000 have more than five contributors. Understanding what you're looking to accomplish first out of doing open source to either share knowledge, or gain knowledge, to get exposure, to get a job, or just to enhance your current job by go try something that's not in the roadmap of what you're working on. Eventually, we'll start asking those questions around, like, what type of contributor that you want to be, so we can start recommending those types of projects. But I mentioned that 225,000 repo number because there are a lot of projects that don't have five contributors that could use their second contributor, or third, fourth. And my recommendation is always find up-and-coming, like, growth-stage projects. A lot of people want to contribute to React. You had mentioned you did React, Will. That's a really big lift to go contribute upstream to a project maintained and supported by millions of enterprises around the world. But there are tons of projects that go trending every week that have no documentation, that have no README, that have no structure and are just getting off the ground. Like, those are the best projects that we try to showcase. So, like, that's hot.opensauced.pizza is our sort of up-and-coming project list. And the way that works is like projects that are trending based on our open-source community; we surface those there. There's a lot of work we have to do on that project. That was, like, a Hack Week project we did a couple of years ago as a community. But the basis of that is they're looking to build our recommendation engine off that. So, step one is find a project that is welcoming, that needs some work done, and then find the path in. So the path usually is going to be your CONTRIBUTING.md, which is like established projects will have this. But if you don't find a CONTRIBUTING.md, but you find a project you want to use, chances are you could build that CONTRIBUTING.md and ask the question, so, like, hey, how would I contribute? Like, how can I be supportive? Actually, I did this talk a couple of years ago at Juneteenth Conf. It was a remote conference on Juneteenth, which a bunch of Black Engineers we all gave our technical expertise sponsored by Microsoft. And I was talking about the idea of open-source hospitality. The best thing you could do is be that sort of hospitable person, either you're a maintainer or a first-time contributor. Like, be that person to set it up for the next person behind you. And the idea of hospitality, you go to a hotel. Like, you know where the towels are. Like, you know where the soaps are. Like, you know exactly where everything is all the time. And, in open source, like, if we could set up our projects in a very similar fashion, like, not franchise them in a way like the Hilton or Marriott, but set the expectation that there is a way to source information and to interact and operate, so... VICTORIA: Yeah, I mean, I love, [laughs] like, hot.opensauced.pizza. That's hilarious. And I love how you have used humor to...even though it's a very serious product, we're making it more friendly and more hospitable like you're saying. And I like how you said, you know, the journey is cool looking back on it, but it was really hard to go through it. And now you're this wonderful speaker and a CEO. But you said that you weren't actually good at talking to people at first. And you specifically sought to get better at that skill. So I wonder if you would share more about that, how that's impacted your career, and why that's important as a developer to have those communication skills. BRIAN: Yeah, it's like...I have a twin brother since birth, basically. And my twin brother is very extroverted. Like, he actually used to wait tables in college. It was like he was the person that would make you feel very special as a server. Like, he's the type of person that kind of lights up the room when you walk in. His name is Brock. My entire life growing up, I was always Brock's brother. And it's like, oh, you're Brock's brother. And it's like, yeah, I'm Brock's brother. And I'm more of a person, like, if you meet me in person, like, I'm very much reserved. I'm sort of reading the room, waiting for my point to jump in. And I made it a point for me to, like, have enough comfort to speak on a podcast or speak at a conference because I knew that skill set would be valuable. Because I definitely had, in my sales career, definitely got overlooked for a lot of opportunity because folks thought, oh, I don't think Brian could do it. So coming into tech and seeing that when every time I went to a meet up...because meetups also are places where I cut my teeth and got to learn about the industry and the community. They always needed someone to speak. So I was, like, oh, there's an opportunity. I can leverage this opportunity of them always looking for speakers and me always wanting to share knowledge and learn something new to do talks. So my first-ever conference talk was in San Francisco. And I had learned React Native, but prior to React Native, I had learned Objective-C. And then, in between Objective-C and React Native, I learned Swift because React Native and Swift came out the same year. Well, React Native went public, open source, the same year as Swift. So it was like a really interesting year back in; I think it was 2017 where...actually, it might have been 2016. But, anyway, everything came out at the same time. And I was learning iOS development. So I made it a point for me to give a talk. But my pet peeve for giving talks is, a lot of times, people just go directly into the code, and there's, like, no connection to a story, or why do I care about this? So I always bring storytelling into my conversations and talks. So, like, that talk about Swift, and Objective-C, and React Native, I made the comparison of, like...it was the same year that Kanye West took the mic from Taylor Swift at the VMAs or whatever the award show was. And the correlation was React Native took the mic away from Swift because it built similar interactions for JavaScript developers to understand and build iOS applications that was not like Ionic or RubyMine or...I forgot the Ruby one. But, anyway, what I'm getting at is, I just wanted to bring story to this because usually what happens is like, you see cool things, but you never remember what the name is. You try to find that REPL again, or you try to figure out who that speaker is. And it's usually hard to find it after the fact. So, like, my goal was always to make it memorable, which is why I go by Bdougie because Bdougie is easier to Google than Brian Douglas. Shout out to Brian Douglas, who's based in Ireland who does system engineering, and has a great YouTube channel. Like, I want to be memorable. And I want to make it easy for folks to find me after. So, while at GitHub, when I was developing all this sort of like Kanye West-type speaking and stuff like that, well, literally, I would use Kanye West years ago as the example to understand storytelling. I no longer use Kanye West. I'm now a Beyoncé advocate. [laughter] So I use Beyoncé instead. But I guess what I'm getting at is, like, I just had a goal. And I knew if I could teach myself to code...and it was about 17 weeks it took me from zero to ship a Ruby on Rails app. And I felt confident enough to talk about it. I knew basically anything I could just accomplish just by putting some effort and consistency behind it. So that's the...sorry, that was a little more long-winded than expected. But I just keep accountable and set goals for myself and try to achieve enough to feel proud about at the end of the year. WILL: Yeah. It's so funny because I recently had a similar situation. At thoughtbot, we try to engage with the community, and one of the ways was writing a blog post. I've never been a writer. It just hasn't been my thing. But I was telling my boss, I was like, I'm going to do that to get outside my comfort zone and to really stretch myself. And at the same time, I was like, why a blog post? Like, I don't know, it doesn't really make sense why a blog post. Well, when I started writing the blog post, I was like, oh, you have to really know, one, what you're talking about in order to write about it. And so I had to really do some research, really had to study it. And I finished it last week. And then, now, looking back over the last couple of months it took me to write that blog post, I'm like, wow, I feel stretched. But I feel really good, and I feel really good about the topic that I did. So that's interesting that you went through that process to stretch yourself and to grow and even learning to code and get to that point. So talking about...you were at Netlify, and then you worked at GitHub. And then you're at your current one OpenSauced. How have Netlify and GitHub, the work that you did there, how has it prepared you for your position right now? BRIAN: You know, actually, that's a great question. I don't know how much thought I put into that. Like, Netlify prepared me because it gave me an opportunity. So I was employee number three, but I had a sales background. And so I got to be an engineer, but they kept always trying to ask me like, you know, business questions and strategy. And, like, I pitched them a 30-60-90 in my interview of, like, what's the growth strategy of Netlify, like day zero when I start? And I go into way more detail in other content. But that prepared me because I got to see how startups work, being so early. I got to see that startup go from seed-funded, just closed their seed round to get their series B is when I left. At GitHub, I got to see what it looked like at a bigger company, which, like, it doesn't matter how big or small you are, like, there's always chaos. Like, GitHub was, like, so much chaos, and there was a lot of good that was happening but a lot of uncertainty at the time I joined in 2018. And then, nine months later, Microsoft acquired GitHub. So then I got to learn stability and what it looks like to...for personal reasons, I always had a budget but never had extra money, even years into my engineering career. And that taught me what it looks like when success meets career. With that being said, like, the problem that I'm solving, I got to learn firsthand while being at Netlify and getting adoption and traction through open source. And then going to GitHub and seeing every single other company that looked at GitHub as a solution to their open-source collaborations and interactions. And then also seeing that there was a hole in just understanding, like, how do you survive? How do you sustain yourself as your career but also your open-source project? Like, a lot of folks want to know, like, what success looks like for open source. Like, how do you get on the trending algorithm? Like, how do you get noticed? It's more than just pushing to GitHub and hoping for the best. There are, like, other things that happen for projects to be successful. And for us to choose the next in the future technologies, it really comes down to community, marketing, and then resources. And those three things end up making projects successful. With OpenSauced, we're working to help inflate some storytelling and add some of those resources to open-source projects. VICTORIA: Great. So you were able to really get, like, the full vision of what it could be if you had a product that became successful and stable, and you knew you wanted to build it on open source. So I love that you really just...you had this problem, and that's what you built the product around. And that ended up becoming the business. What was surprising for you in those early discovery phases with OpenSauced when you were first thinking of building it? BRIAN: I guess what's really surprising is we're not, like, crazy traction today. But we've done a pretty good job of getting, like, 2,000 developers to sign up to it since December. And then the conversations with enterprises so far just by the sheer...like, basically, what was surprising is if you use proper sales technique and you're early stage as a startup, so, like, not necessarily hire salespeople, but as a founder or as a stakeholder, just go talk to your future customers and your users. Everyone says it, but that's actually super valuable. And I think in the same vein of open source, folks they see projects die on the vine, but then you see projects succeed. And I think it also comes down to how often the maintainer of the project is talking to the contributors and the users and also that distinction as well. There are folks who want to contribute code to the codebase, but then there are folks who want to use the codebase. And, like, how do you interact between the two? And how do you cross the chasm for those folks as well? And, a lot of times, it's just fascinating just, like, just by trying, and just by showing up, that's half. It's all cliché stuff, like, I could say, but it's all true. Like, showing up is, like, it's, like, step one. Just show up, do the thing, do the work. And then talk to people is, like, step two. And it's hard to say, like, okay, yeah, because we are not a multibillion-dollar company, like, we're just getting started. So I can't say, like, yeah, we're super successful. But we've survived the year. And we've survived the year based on those two steps, the showing up and then talking to people. Because a lot of times, we could get lost in the sauce, per se, of just shipping code and never talking to anybody and never coming up for air. And I think what I learned, going back to what I learned from GitHub and Netlify, is talking to people and getting that feedback loop going is the best thing you could do for any product. Any early project, any feature you're working on, talk to people about it and see if it's actually valuable for somebody that after you ship it, something will happen. WILL: You're talking about communication is a big thing for a successful project. Have you noticed any other trends that make a successful open-source project? BRIAN: Yeah, that's...Any other trends? Yeah. I mean, AI, [laughs] just kidding. WILL: [laughs] BRIAN: No, I mean, but it also it is true, like, having a trend not sort of following the herd, but catching the herd earlier is extremely valuable. Like, at Netlify, we caught the trend of React. So, basically, Netlify built essentially GitHub Pages but a product and a company. And that was, like, the original project of Netlify. It's expanded so much further from that. But at that time, when I joined, I joined three months before Create React App was developed. So, like, it was a CLI tool to build React apps easy. And, prior to that, React was, like, super complicated to get up and running. Like, you had to know Webpack. You had to know, Babel. You had to make all that glue happen together. And then there wasn't an easy process to go host it somewhere. So the prevalence of build tools like Grunt, and Gulp, and Browserify, they all made it easier to build a static output from React. And that trend is what took Netlify to where it is today. It's like, people needed a place to deploy these static applications. GitHub Pages was like the solution for a lot of folks. Because Heroku, like, why pay $7 for something you could host on S3 for free? But the challenge was S3 it requires way more thought in how you host and take it down and deploy, and then it becomes like a Kubernetes nightmare. So the trend there was, like, people just wanted to have a better developer experience. When it comes to, like, open source, the developer experience in JavaScript has improved so much more. But folks are now looking at the next thing like a Zig, or a Rust, or all these other new languages and server renderings and stuff like that. So I guess when I take a step back, when I look at how I chose things I wanted to work on, and communities I wanted to hang out in...before committing to React...I'm based out here in Oakland, so San Francisco, basically. By seeing the sheer number of RSVPs to the React meetup, it made me confident that React would be something I should pay attention to. When you look at the RSVPs of now all these AI meetups that are happening in San Francisco, like, every single weekend is a hackathon. Highly confident that if you're engineering today, you probably want to know what embeddings are and know how OpenAI works. Not that you necessarily have to build AI stuff, but it is going to be the thing that people are going to be using. So just like we had to learn build tools, and servers, and CDNs prior, now it's all trivial stuff that you can sort of use Cloudflare for free. Like, AI is going to be very similar, and it's probably going to happen much quicker. But, in the time being, the trend right now is, like, you should probably understand whatever the players are in that space so that way you're able to talk confidently about it. WILL: That's really good advice, yep. VICTORIA: Absolutely. And, you know, in my role as Managing Director of Mission Control, or, like, DevOps, SRE platform, I spend a lot of time looking at trends, more on the engineering side. So I think my question is, [laughs] as someone who hires people to work on open-source projects, and who actively maintains and contributes to open-source projects, what should I be thinking about how to use OpenSauced as in my role? BRIAN: For hiring and sourcing skilled folks, we're actually working on a tool right now to make it more discoverable. So, today, when you onboard as an individual developer, you can check a box in your settings to say, like, if you want to collaborate with other folks, you have to opt into it. So if you want to be discovered on OpenSauced, it's in the settings. We'll probably expose that and share more about that in the future, like, in the next month or so. But for, in particular, our user flow today for folks looking to find other people to contribute alongside their project is, you add your project to what we call an Insight Page. You click on the tab on the top and create a page with your project. And then, you can see contributions in your project in the last 30 days. And then you can also add other projects like your project, so you can see who else is contributing. So, that way, you can start discovering folks who are making contributions consistently and start to get some stories of, like, if they're interested in collaborating, they'll check that box; if they're not, the box won't be checked. But at least you know the sort of scope of the ecosystem. As an individual developer, we have the onboarding flow, but then we also have highlights. So, eventually, we'll do recommendations to get you to make contributions. But, for now, if you're already making contributions, you can highlight the contributions you've made so that way, you're more discoverable on the platform. And the highlights are very much like a LinkedIn post or a tweet. You just drop in a PR, and then we'll either generate that description for you, or you write a description: I did a thing. This is what it was. This was the experience. And then, now you're attached to the project through not just a code contribution but also a discovery mechanism, which is a highlight. And then, eventually, we'll start doing blog posts, and guides, and stuff like that, as they're written. Like, if you want to attribute your career, and your journey to your participation to, like, documentation updates and stuff like that, those will also be highlights coming soon. WILL: I love, love, love that. MID-ROLL AD: Now that you have funding, it's time to design, build and ship the most impactful MVP that wows customers now and can scale in the future. thoughtbot Lift Off brings you the most reliable cross-functional team of product experts to mitigate risk and set you up for long-term success. As your trusted, experienced technical partner, we'll help launch your new product and guide you into a future-forward business that takes advantage of today's new technologies and agile best practices. Make the right decisions for tomorrow, today. Get in touch at: thoughtbot.com/liftoff WILL: I hear you saying that you have some things that's coming soon. In a high, high level, what are some of the things that you have coming? And what does success look like, six months, a year? What does that look like? Because it sounds like you have some really good ideas that you're working on. BRIAN: Yeah, yeah. So, like, six months to the end of the year, what we want to do is actually start getting more deeper insights to what's happening in open source. What we're doing right now is building the individual developer profile and experience so that way, they're able to be discovered, find projects to work on. And then what's next is there are tons of enterprises and companies that are maintaining open-source projects, SDKs. And what we're seeing right now is we're seeing massive layoffs happening currently in the industry. So like, as of today, I think Facebook laid off 4,000 people, ESPN laid off, like, 7,000 Disney employees as well. And some of those employees are around the Disney+ place. It's a lot of technical engineering stuff. So I guess what I'm getting at is there...we want to be able to see the trends of places that activity is happening and start recommending people to that. But also, we want to give an opportunity for folks who...companies...sorry, I'm avoiding trying to name specific companies because nothing is in contract yet. But certain companies, like, you, don't think of as an open-source powerhouse. So, like, a company we're now talking to right now is walgreens.com. And Walgreens they have tech. They've got open source that they participated. But they're not thought of as a place like, oh, I want to go work at Walgreens and go work on some cloud infrastructure stuff. So, how does Walgreens get exposure? And, like, hey, we're involved in the kubectl, and the Kubernetes platform and stuff like that, like, be aware that there's opportunity here. So we're going to start driving that connection to folks. So, as you develop your career doing open source, you can also be noticed, and folks can reach out to you. And also, I want to stand on the notion of open source is not for everybody. But I also want to point out, like, my entire career in open source has not been nights and weekends. It's always been finding a company that supports my interest to do open-source at work. Part of my story is, like, I was getting an MBA. My first kid, who's nine years old now he, was born 11 weeks early. And he's the reason why I built an app because I wanted to build an app to solve a pain point that I had, and ended up building that in 17 weeks. And that turned into opportunity. So I guess what I'm getting at is, like, folks being laid off right now, you might have some extra free time. You might be submitting like 100 applications a day. Consider taking that down to 50 applications a day, and then try to contribute to a couple of open-source projects a month. So that way, there's some more story to be shared as you're in the job market. VICTORIA: I love that you created that app when you had your son and you had that need. And for developers wanting to get noticed and wanting to get their next leg up or maybe even negotiate for higher salaries, what's the traditional way people do that now to kind of highlight themselves? BRIAN: The traditional way what people are doing is they're tweeting. They're speaking at conferences. They're sharing their stories. It's like zero to I'm an influencer in the open-source space. There's no real clear guide and steps to get to that point, which is why we have highlights today. Like, we want to make it low effort for folks to write 200 characters about something they contributed to. We're actually working on something to generate pull request descriptions because I think that's another missed opportunity. Like, when you open a PR in an open-source project, and it says no description added, like, that's a missed opportunity. Like, there's an opportunity for you to share what you've learned, what Stack Overflow questions you looked at, like, how you got to the problem, and why this is the right solution. All should be in the pull request description. And then that pull request should be in your cover letter for your resume so that people can go back and say, "Oh, wow, you did some real work." I can go see the history of your contributions because perhaps the job you got let go from you only worked in private repos. You couldn't really showcase your skills. That now gives you a competitive edge. And I guess when I look into this, like, going back to my original onboard ramp into engineering, I graduated with a finance degree with no network. I had one internship at an insurance company, but that wasn't enough. Like, everyone who I interned with, like, the guy who got a job at the internship, like, his dad was a client, was a big client at that firm. And another guy he worked at a golf course, and he'd be the caddy for all these big finance folks where I went to school. So, once I learned that there's an opportunity to get a job by just knowing people, that changed my entire path. Like, when I got to sales, like, oh, or when I got to engineering, I just knew go and meet people. Go have conversations. Go to meetups. What I'm trying to do with OpenSauced is make that step closer for folks, so they could look up and be like, you know, I've made all these contributions, or I don't know where to start. Let me just look at people who I know and follow in the industry and see where they're contributing, and make that connection. So, like, we've kind of closed that gap without the need of, again, you don't need 100,000 Twitter followers to get noticed. Just make some contributions or show up and ask questions. And, hopefully, that's the first step to establishing your career. VICTORIA: Well, that sounds great for both people who are looking to get hired, but also, as someone who hires people, [laughter] I know that there's a lot of amazing developers who are never going to do a conference talk, or they're not going to post on Twitter. So I love that that's available, and that's something you're working on. BRIAN: Yeah, it's just coming out of my own pain of, like, I was saying, like, looking at the story now, it sounds great. [laughs] But part of that story was like, hey, I was getting severely underpaid as an engineer in San Francisco, living in a one-bedroom apartment with two kids. Like, all that part of the story is like nothing I dwell on. But it's like, all that opportunity and knowledge-sharing that I ended up benefiting from, it's like what I constantly try to give. I pay it forward with folks. And I'm more than happy to talk with folks on Twitter and in OpenSauced Discord and other places because I think there's a lot of opportunity in open source. And if anybody's willing to listen, I'm willing to show them the path. WILL: I'm so glad you brought that up because this is one of my favorite questions I ask on the podcast: So, knowing where you're at right now and your story, you've gone the ups, the downs, all of it. If you can go back in time and know what you know now, what advice would you give yourself at the beginning? BRIAN: Honestly, I would say write it down. Like, one thing that I did is I did a blog post, and that's part of the reason why I was able to find my first job in engineering is I started a blog, which was really for myself to learn what I did yesterday. I tell everyone who I mentor it takes two hours every time you want to sit and learn something new because one hour is to remember what you did yesterday, and then one hour is to do something new. And so, I usually write it down and then make it a blog post just to solve that problem. I wish I did more with that, like, you know, wrote a book, or created a YouTube channel, or something because all that knowledge and that sort of sharing is actually what got me to level up faster. I was asked by one of my close friends, like, "Hey, how do you do it? How do you accomplish everything you've done in the last, like, 9-10 years?" And I didn't know what the answer was then. But the answer today for my friend, and I'll share this with them, is it's because I wrote it down. I was able to go back and see what I did. And then, at the end of six months, I was able to go back six months and see what I did. It's like the idea of relativity with, like, Einstein. Relativity is the idea of motion and the perception. Like, if you're in a train, it feels like you're just going slow. But you might be going 100 miles per hour, but you don't feel that. And when you're going on your journey, you could be going 100 miles per hour, but you're thinking, oh, man, I failed yesterday. I could have solved a problem. But yeah, you solved six problems while trying to solve for one. It's that situation. So advice for myself, in the beginning, write it down and then share it way more than I did when I started. Because a lot of the stuff I'm like, even in this conversation, I'm thinking, oh yeah, this, this, and this. And I never shared that before, and I wish I did. So yeah. WILL: I love that. Because yeah, I feel like that's development, like, you have some weeks that you're shipping out multiple features. And then other weeks, you're like, I barely got one out, or I barely fixed this one bug that I've been trying to...struggling with the last couple of weeks. So yeah, I like that advice. Write it down. And remember where you've been, remember. I just love the example you used, too, because it does seem like I haven't made any movement. But when you look back, you're like, no, you actually made a lot of movement. And you were very successful with what you did. So that's great advice. VICTORIA: I sometimes write things, and then I go back maybe six months later and read them. And I'm like, who wrote this? [laughter] I don't remember learning this stuff. Oh yeah, I guess I did, right, yeah. [laughs] No, that's so cool. What questions do you have for us, Brian? BRIAN: I'm curious in, like, how do thoughtbot folks stay up to date? Like, what does your involvement in open source look like today? VICTORIA: Yeah, so we are known for being active maintainers of a lot of very popular Ruby on Rails gems. So we're a consulting agency. So we're able to structure our time with our clients so that we can build in what we call investment days, which is typically Fridays, so that people can contribute to open-source projects. They can write blog posts. They can do trainings. And so that gives us the structure to be able to actually allow our employees to contribute to open source, and it's a huge part of our business as well. So if you have a Ruby on Rails project, you're probably using one of our gems. [laughs] And so, when there's other crises or other things happening in an organization, and they want to bring in an expert, they know that that's who thoughtbot is. Of course, we've expanded, and we do React, and now we're doing platform engineering. And we have some open-source TerraForm modules that we use to migrate people onto AWS and operate at that enterprise level with a mix of managed products from AWS as well. And that continues to be, like, how we talk to people [laughs] and get that buzzword out there is, like, okay, there's this cool open-source project. Like, one I'm excited about now is OpenTelemetry. And so we're digging into that and figuring out how we can contribute. And can we make a big impact here? And that just opens the door to conversations in a way that is less salesy, right? [laughs] And people know us as the contributors and maintainers, and that creates a level of trust that goes a long way. And also, it really speaks to how we operate as a company as well, where the code is open and when we give it back to the customers, it's not. Some organizations will build stuff and then never give it to you. [laughs] BRIAN: Yeah. So it sounds like folks at thoughtbot could probably benefit from things like OpenSauced for discoverability. And I get a lot of conversation around in OpenSauced as like, how do I get connected to maintainer of X or maintainer of Y? And the first step is like, how do I even know who the maintainer is? Because when you go to GitHub, you could sort this by last commit date, which not a lot of people know. You can sort the contributors by most frequently and stuff like that. But it's challenging to find out who to reach out to when it comes to packages, especially when people move on. Like, someone created a thing. They have tons of commits. And then they look like they're the number one committer for the past ten years, but they left five years ago. Those are things that we're trying to make more discoverable to solve that problem. But then, going into that thoughtbot thing, is like being able to reach out to thoughtbot and be like, oh, who can I reach out to about this gem? And, say, I have an idea, or we have an issue; how can we get unblocked because we're using this in our product? And I imagine with consulting, there's an opportunity to say, hey thoughtbot...which, honestly, at Netlify, we used thoughtbot to solve some harder problems for us. We were just like, yeah, we don't have the bandwidth to go down this path. Let's go to consulting to unblock us in this arena. VICTORIA: Right. And that was really important to me in making the decision to join thoughtbot last year is that it was built around open source. And that ethos really spoke to me as, like, this is a place where I want to work. [laughs] And you can think of, like, if you're looking for vendors, like, oh, I want to work with people who have that same ethos. So yeah, OpenSauced seems like a really cool product. I'd be curious about how we can leverage it more at thoughtbot. BRIAN: We just shipped a feature called Teams, which it's self-explanatory. But, basically, when you build an insight page, you're able to build a team to help the discover process of what's happening in contributions. You get details and reporting on OpenSauced. The goal is basically to unblock teams who are involved in open source together and make it more discoverable for folks who want to find maintainers and collaborate with them. VICTORIA: Will, I know we're running close on time. But I had one more question about what you said around making open source more hospitable. And, you know, you mentioned going to Juneteenth Conf. And I'm curious if you have a perspective on if open source is equitably accessible to everyone or if there are things we can be doing as a community to be more inclusive. BRIAN: Yeah, it's a great question. So the first answer is quick, it's no. The reason why it's no is because we have to admit [laughs] where there are inequitable situations. And as much as we want to set this up of, like, I want to say that there's opportunity for everyone to contribute based on no matter where their background, but just by your time zone, makes it inequitable of, like, whether you can contribute to open source. Because if you look at the data and zoom out, most open source happens in the West Coast U.S., so from San Francisco to Seattle. Like, majority of contributions are there. There are reasons for that. Like, California has a very, very expressive clause of like where you can contribute. And, technically, your employer can block you on doing open-source contributions. Unless you sign...like, at Apple, you sign away your rights to be able to do that in your employee offer letter. Sorry, [laughs] not to be a dig against Apple. Apple buy lots of open source. But what I'm getting at is that the opportunity is there, but it's the awareness thing. I'm part of an organization called DevColor. It's an organization of Black engineers in tech. We have squads and monthly meetings where we just talk about our career, and growth, and stuff like that. And I attribute a lot of that interactions to my success is, like, talking to other folks who are years ahead of me and have a lot more experience. But I say this because the majority of the folks that I interact with at DevColor they don't do open source because they all...to be a Black engineer at a level of like senior engineer at Netlify, or a staff engineer, or a manager...sorry, I meant, like, Netflix but Netlify too. You basically had a career path of, like, you probably went to school at a decent engineering school, or you figured out how to get a job at Facebook or Google. And, like, that's pretty much it. And, like, this is a blanket statement. I totally understand there are outliers. But the majority of the folks I interact with at DevColor they have a job. They have a great job. And they're doing the thing, and they're being very successful. But there's less community interaction. And that's what DevColor exists for is to encourage that community interaction and participation. So, at the end of the day, like, there's opportunity to make it more equitable. So things like, every time there's a release cut for a major open-source project, why not go to Black Girls CODE and have them build something with it? And, again, very specific, like, React 19 that's currently being tested, why not go to all these other underrepresented organizations and partner with them to show them how to use this project? Because the assumption is everyone in open source, you got to be senior enough to participate, or if it's too hot, get out of the kitchen. But if we set up a place for people to interact and level up, in three or four years from now, you'll see the open-source ecosystem of that project be completely different as far as diversity. But it takes that investment to have that onboard ramp to even have that connection or conversation about testing early releases with underrepresented groups in engineering. That's where we have to start, and that's what we're trying to do at OpenSauced. We want to make that connection. I have a whole plan for it. I'll share in a blog post. I also mentioned that a lot of these thoughts are on our blog as well. I've been writing blog posts around these conversations. So opensauced.pizza/blog if you're interested. VICTORIA: Very cool. Thank you for that. WILL: I'm just processing on the whole conversation. It has just been great. VICTORIA: Yes. Thank you so much for sharing with us. And I wonder, do you have any final takeaways for our listeners today, Brian? BRIAN: Yeah, final takeaways. Like, if anything at all resonated in this conversation, please reach out, bdougie on GitHub. I'm pretty active with my notifications. So if you @ mention me in a random project, I'll probably jump back in and respond to you. But also Twitter @bdougieYO. And then, I mentioned our blog. We also have a newsletter. So, if you're interested in any of this OpenSauced journey, please join us there, and keep in touch. VICTORIA: Wonderful. Thank you so much for joining us today and sharing your story. You can subscribe to the show and find notes along with a complete transcript for this episode at giantrobots.fm. If you have questions or comments, email us at hosts@giantrobots.fm. And you can find me on Twitter @victori_ousg. WILL: And you could find me @will23larry This podcast is brought to you by thoughtbot and produced and edited by Mandy Moore. Thank you. ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com. Special Guest: Brian Douglas.
Cet épisode nouvelles discute d'améliorations dans le JDK, d'Hibernate 6, de Service Weaver, de la fin d'options dans DockerHub pour certains projets open source, de Gradle, de cURL et pleins d'autres choses encore. Enregistré le 17 mars 2023 Téléchargement de l'épisode LesCastCodeurs-Episode–292.mp3 News Langages Quelle version de JDK utiliser en fonction des fonctionnalités que l'on souhaite utiliser mais aussi du long time support https://whichjdk.com/ JetBrains propose une formation Rust intégrée aux IDEs https://blog.jetbrains.com/rust/2023/02/21/learn-rust-with-jetbrains-ides/ Un apprentissage directement intégré à l'IDE Avec un plugin “Academy” dédié, qui rajoute un troisième panneau avec les instructions, les explications, et on fait des exercices dans la partie IDE Une chouette manière d'apprendre intégrée directement à son IDE Chacun doit pouvoir créer ses propres ressources d'apprentissage, et on pourrait appliquer ça à des frameworks, des outils, ou pourquoi pas son propre projet informatique ! Retravail de classes du JDK Bits / ByteArray vers un usage via VarHandle pour le swapping de bits dans Java 21 https://minborgsjavapot.blogspot.com/2023/01/java–21-performance-improvements.html petit changement mais utilisé par beaucoup de classes comme ObjectInputStream RandomAccessFile etc améliore la serialization en java Rajout de la notion de “sequenced collection” dans la hiérarchie des collections, planifié pour JDK 21 https://www.infoq.com/news/2023/03/collections-framework-makeover/ va permettre de codifier les collections qui ont un ordre donné (pas forcément trié) rajouter aussi des méthodes pour traverser des collections séquentielles à l'envers, ou pour récupérer ou ajouter un élément au début ou à la fin d'une collection ordonnée aujourd'hui ces methodes sont eparpillées dans les implémentaions et n'avaient aps de contrat commun Le guide ultime des virtual threads https://blog.rockthejvm.com/ultimate-guide-to-java-virtual-threads/ un très long article qui couvre le sujet des nouveaux virtual threads comment en créer comment ils fonctionnent le scheduler et le scheduling coopératif les “pinned” virtual threads (lorsqu'un thread virtuel est bloqué dans un vrai thread, par exemple dans un bloc synchronized ou lors d'appel de méthondes natives) les thread local et thread pools Librairies Quarkus 3 alpha 5 avec Hibernate ORM 6 et une nouvelle DevUI https://quarkus.io/blog/quarkus–3–0–0-alpha5-released/ passage d'Hibernate 5 a 6 (donc testez! switch de compatibilité supérieur pour aider la transition https://github.com/quarkusio/quarkus/wiki/Migration-Guide–3.0:-Hibernate-ORM–5-to–6-migration#database-orm-compatibility (DB interaction esp schema StatelessSession injectable Gradle 8 nouvelle DEvUI (nouveau look and feel, plus extensible pour els extensions et pplus facile a utiliser, va au dela des integrations d'extension (config etc) quarkus deploy dans la CLI, gradle et maven: deploie dans Kube, knative, OpenShift La route vers Quarkus 3, article sure infoq https://www.infoq.com/news/2023/03/road-quarkus–3/ Jakarta EE, ORM 6, Microprofile 6, virtual threads, io_uring, ReactiveStreams=> Flow io_uring reduit les copie de buffer entre userspace et kernel space pas de support JPMS en vue mais Red Hat contribue a project Leyden Camel extensions, attendez Camel 4 (passage Jakarta EE) Interview de Geert Bevin, l'auteur du framework Java RIFE2 https://devm.io/java/rife2-java-framework Google annouce Service Weaver https://opensource.googleblog.com/2023/03/introducing-service-weaver-framework-for-writing-distributed-applications.html EJB is back (Enterprise Go Beans :D) ecrire en tant que modular monolith permet au deploiement décider ce qui est distribué basé sur leur experience du surtout de maintance des microservices (contrats plus difficiles a casser - dbesoin de coordination de rollout etc) dans la communauté des entousiastes et des gens concernés par les 10 falaccies of distributed computing et le fait de cacher les appels distants EJB et corba avant cela ont été des échecs de ce point de vue la ils n'expliquement pas comment le binding de nouveax contrats et de deploiement se fait de maniere transparente des deployeurs implementables (go et GKE initialement) Etude d'opinion de certains utilisateurs de Jakarta EE (OmniFaces community) https://omnifish.ee/2023/03/10/jakarta-ee-survey–2022–2023-results/ biaisée donc attention Java EE 8 suivi par Jakarta EE 8 et derriere Jakarta EE 10 etc WildFly puis Payara puis glassfish ensuite tomee et JBoss EAP gens contents de leurs serverus d'app sand Weblogic et Websphere les api utilisées le plus JPA, CDI, REST, Faces, Servlet, Bean Validation, JTA, EJB, EL etc Produit microprofile: Quarkus puis WildFlky puis Open Liberty puis Payara et Helidon Dans microprofile: Config, rest client, open api, health et metric sont les plus utilisés Comment utiliser des records et Hibernate https://thorben-janssen.com/java-records-embeddables-hibernate/ pas en tant qu'entité encore (final, pas de constructeur vide) mais en tant qu'@Embeddable records sont immuable dans hibernate 6.2, c'est supporté par default (annoter le record @Embeddable Ca utilise le contrat EmbeddableIntentiator Cinq librairies Java super confortables https://tomaszs2.medium.com/5-amazingly-comfortable-java-libraries–887802e240de mapstruct mapper des entités en DTO jOOQ requête de bases de données typées WireMock mocker des API ou être entre le client et l'API pour ne mocker que certaines requêtes Eclipse Collections : pour rendre le code plus simple et facile à comprendre. Attention à la,surface d'attaque HikariCP connection pool rapide - agroal est dans la meme veine mais supporte JTA. C'est ce qui est dans Quarkus. Retour d'expérience sur Hibernate 6 https://www.jpa-buddy.com/blog/hibernate6-whats-new-and-why-its-important/ côté APIs et côté moteur jakarta persistence 3 ; java 11 annotations de types hibernate sont typesafe support des types JSON OOTB meilleur support des dates avec @TimeZoneStorage soit natif de la base soit avec une colonne séparée changement dans la génération des ID (changement cassant) mais stratégies de noms historique peut être activé Options autour de UUID (Time base et IP based) composite id n'ont plus besoin d'être serialisable type texte long supportés via @JdbcTypeCode multitenancy (shared schema, resolver de tenant a plugger) read by position (SQL plus court car sans alias, deserialisarion plus rapide, moins de joins dans certains cas) modele sous jacent commun entre HQL et l'api criteria et donc même moteur meilleure génération du SQL et plus de fonction SQL modernes réduisant le gap entre HQL et SQL ronctions analytiques et fenêtre quand la base les supportent graphe traverse en largeur plutôt qu'en profondeur (potentiellement plus de join donc bien mettre lazy sur vos associations) Cloud Docker supprime les organisations open source sur DockerHub https://blog.alexellis.io/docker-is-deleting-open-source-images/ Les projets open source risquent de devoir passer de 0 $ à 420 $ par an pour héberger leurs images Rétropédalage de Docker https://www.docker.com/blog/we-apologize-we-did-a-terrible-job-announcing-the-end-of-docker-free-teams/ Web Une base de connaissance sur le fonctionnement et les bonnes pratiques autour des WebHooks https://nordicapis.com/exploring-webooks-fyi-the-webhooks-knowledge-center/ Guillaume a refondu son blog https://glaforge.dev/ Cette fois ci, c'est un site web statique, généré avec Hugo, avec des articles en Markdown, hébergé sur Github Pages, buildé / publié automatiquement par Github Actions Outillage Gradle 8.0 est sorti https://docs.gradle.org/8.0/release-notes.html Une CLI connectée à OpenAI's Davinci model pour générer vos lignes de commandes https://github.com/TheR1D/shell_gpt sgpt -se "start nginx using docker, forward 443 and 80 port, mount current folder with index.html" -> docker run -d -p 443:443 -p 80:80 -v $(pwd):/usr/share/nginx/html nginx -> Execute shell command? [y/N]: y Un petit outil en ligne basé sur le modèle GPT–3 qui permet d'expliquer un bout de code https://whatdoesthiscodedo.com/g/db97d13 Copiez-collez un bout de code de moins de 1000 caractères, et le modèle de code de GPT–3, et l'outil vous explique ce que fait ces quelques lignes de code Assez impressionnant quand on pense que c'est un modèle de prédiction probabiliste des prochains caractères logiques Certaines réponses donnent vraiment l'impression parfois que l'outil comprends réellement l'intention du développeur derrière ce bout de code Git: Comment rebaser des branches en cascade https://adamj.eu/tech/2022/10/15/how-to-rebase-stacked-git-branches/ native-image va être inclu dans la prochaine version de GraalVM JDK. Plus besoin de gu install native-image https://github.com/oracle/graal/pull/5995 Si vous utilisez l'outil Mermaid pour faire des graphes d'architecture, d'interactions, etc, il y a un petit cheatsheet sympa qui montre comment faire certains diagrammes https://jojozhuang.github.io/tutorial/mermaid-cheat-sheet/ Un site avec plein de trucs et astuces sur psql, le langage SQL de PostgreSQL https://psql-tips.org/ CURL a 25 ans ! https://daniel.haxx.se/blog/2023/03/10/curl–25-years-online-celebration/ Son créateur, Daniel Stenberg, est toujours à la tête du projet cURL est utilisé dans d'innombrables projets par défaut dans plein de systèmes d'exploitation Cédric Champeau explique le concept de version catalog de Gradle et comment il améliore la productivité https://melix.github.io/blog//2023/03–12-micronaut-catalogs.html permet de réduire le temps et l'effort nécessaire à gérer la version de ses dépendances apport aussi plus de sécurité, de flexibilité, pour s'assurer qu'on a les bonnes versions les plus récentes des dépendances et qu'elles fonctionnent bien entre elles Architecture La pyramide des besoins du code de qualité https://www.fabianzeindl.com/posts/the-codequality-pyramid le bas de la pyramide supporte le haut performance de build performance de test testabilité qualité des codes de composants fonctionalités performance du code pour chaque bloc, il explique les raisons, ses definitions et des astuces pour l'ameliorer par exemples les fonctionalites changent et donc build, testabilité et qualite de code permet des changements légers en cas de changement dans les fonctionalités perf viennent ensuite ("premature opt, root of all evil), regader des besoins globaux Méthodologies Le DevSusOps est né https://www.infoq.com/news/2023/02/sustainability-develop-operation/?utm_campaign=i[…]nt&utm_source=twitter&utm_medium=feed&utm_term=culture-methods bon serieusement, comment on couvre avec un nom pareil sans déraper :man-facepalming: ah dommage Micreosoft rejoints la FinOps foundation https://www.infoq.com/news/2023/02/microsoft-joins-finops-org/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=Cloud Imagine si ils avaient rejoint la DevSusOps fondation Sécurité Plein de choses qu'on peut faire avec des Yubikeys https://debugging.works/blog/yubikey-cheatsheet/ Pour générer des time-based one-time passwords, pour l'accès SSH,, pour sécuriser un base Keepass, comme 2FA pour le chiffrement de disque, pour la vérification d'identifiant personnel, pour gérer les clés privées… Loi, société et organisation Le fabricant de graveurs de CPU hollandais ASML se voit interdire d'exporter ses technologies vers la chine https://www-lemagit-fr.cdn.ampproject.org/c/s/www.lemagit.fr/actualites/365532284/Processeurs[…]le-escalade-dans-les-sanctions-contre-la-Chine?amp=1 en tous cas les technologies de gravure des deux dernières generations de la pression commerciale on passe au registre d'exclusion par decision militaire ASML s'était fait espionner récemment CAnon et Sony aussi dans la restriction Meta supprime de nouveau 10000 emplois soit 25% au total depuis la fin de l'année dernière https://www.lesechos.fr/tech-medias/hightech/meta-va-supprimer–10000-postes-de-plus–1915528 Rubrique débutant Bouger les éléments d'une liste https://www.baeldung.com/java-arraylist-move-items discute le concept d'array list en dessous et donc le coût d'insérer au milieu decouverte de Collections.swap (pour intervertir deux elements) decouverte de Collections.rotate pour “deplacer” l'index zero de la liste Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 15–18 mars 2023 : JChateau - Cheverny in the Châteaux of the Loire Valley (France) 23–24 mars 2023 : SymfonyLive Paris - Paris (France) 23–24 mars 2023 : Agile Niort - Niort (France) 30 mars 2023 : Archilocus - Online (France) 31 mars 2023–1 avril 2023 : Agile Games France - Grenoble (France) 1–2 avril 2023 : JdLL - Lyon 3e (France) 4 avril 2023 : AWS Summit Paris - Paris (France) 4 avril 2023 : Lyon Craft - Lyon (France) 5–7 avril 2023 : FIC - Lille Grand Palais (France) 12–14 avril 2023 : Devoxx France - Paris (France) 20 avril 2023 : WordPress Contributor Day - Paris (France) 20–21 avril 2023 : Toulouse Hacking Convention 2023 - Toulouse (France) 21 avril 2023 : WordCamp Paris - Paris (France) 27–28 avril 2023 : AndroidMakers by droidcon - Montrouge (France) 4–6 mai 2023 : Devoxx Greece - Athens (Greece) 10–12 mai 2023 : Devoxx UK - London (UK) 11 mai 2023 : A11yParis - Paris (France) 12 mai 2023 : AFUP Day - lle & Lyon (France) 12 mai 2023 : SoCraTes Rennes - Rennes (France) 25–26 mai 2023 : Newcrafts Paris - Paris (France) 26 mai 2023 : Devfest Lille - Lille (France) 27 mai 2023 : Polycloud - Montpellier (France) 31 mai 2023–2 juin 2023 : Devoxx Poland - Krakow (Poland) 31 mai 2023–2 juin 2023 : Web2Day - Nantes (France) 1 juin 2023 : Javaday - Paris (France) 1 juin 2023 : WAX - Aix-en-Provence (France) 2–3 juin 2023 : Sud Web - Toulouse (France) 7 juin 2023 : Serverless Days Paris - Paris (France) 15–16 juin 2023 : Le Camping des Speakers - Baden (France) 20 juin 2023 : Mobilis in Mobile - Nantes (France) 20 juin 2023 : Cloud Est - Villeurbanne (France) 21–23 juin 2023 : Rencontres R - Avignon (France) 28–30 juin 2023 : Breizh Camp - Rennes (France) 29–30 juin 2023 : Sunny Tech - Montpellier (France) 29–30 juin 2023 : Agi'Lille - Lille (France) 8 septembre 2023 : JUG Summer Camp - La Rochelle (France) 19 septembre 2023 : Salon de la Data Nantes - Nantes (France) & Online 21–22 septembre 2023 : API Platform Conference - Lille (France) & Online 25–26 septembre 2023 : BIG DATA & AI PARIS 2023 - Paris (France) 28–30 septembre 2023 : Paris Web - Paris (France) 2–6 octobre 2023 : Devoxx Belgium - Antwerp (Belgium) 10–12 octobre 2023 : Devoxx Morroco - Agadir (Morroco) 12 octobre 2023 : Cloud Nord - Lille (France) 12–13 octobre 2023 : Volcamp 2023 - Clermont-Ferrand (France) 12–13 octobre 2023 : Forum PHP 2023 - Marne-la-Vallée (France) 19–20 octobre 2023 : DevFest Nantes - Nantes (France) 10 novembre 2023 : BDX I/O - Bordeaux (France) 6–7 décembre 2023 : Open Source Experience - Paris (France) 31 janvier 2024–3 février 2024 : SnowCamp - Grenoble (France) 1–3 février 2024 : SnowCamp - Grenoble (France) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
Jakiś czas temu Docusaurus zaskarbił sobie naszą sympatię, dlatego strona naszego podcastu przez kilka lat opierała się właśnie na tym narzędziu. Nadszedł moment, w którym postanowiliśmy ją odświeżyć. Przy tej okazji rozstaliśmy się z naszym starym znajomym i sięgnęliśmy po Next.js. Rozmawiamy o tym dlaczego zdecydowaliśmy się na migrację, co dzięki temu zyskaliśmy i w jaki sposób nowe narzędzie pozwoliło nam rozwiązać pewne problemy i wprowadzić usprawnienia. Dźwięki wykorzystane w audycji pochodzą z kolekcji "107 Free Retro Game Sounds" dostępnej na stronie https://dominik-braun.net, udostępnianej na podstawie licencji Creative Commons license CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Informacje dodatkowe: Next.js: https://nextjs.org/ Docusaurus: https://docusaurus.io/ Anchor.fm: https://anchor.fm GitHub Pages: https://pages.github.com/ GitHub Actions: https://github.com/features/actions Material UI (MUI): https://mui.com/ React: https://pl.reactjs.org/ Express: https://expressjs.com/ Node.js: https://nodejs.org/ EJS: https://ejs.co/ Element : https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio Zasada Pareta: https://pl.wikipedia.org/wiki/Zasada_Pareta Gra siatka koncentracji: https://techwriterkoduje.pl/focusgrid Algolia: https://www.algolia.com/ Fuse.js: https://fusejs.io/ Źródło strony techwriterkoduje.pl na GitHub: https://github.com/techwriterkoduje/podcast-site Incremental Static Regeneration (ISR) w Next.js: https://nextjs.org/docs/basic-features/data-fetching/incremental-static-regeneration "#50 Tech Writer bloguje z GitHub Issues, czyli nietuzinkowy sposób na platformę contentową", Tech Writer koduje: https://techwriterkoduje.pl/blog/2023/1/26/50
I'm joined by guests Stephan Livera, Michael Folkson & Wiz to go through the list. Housekeeping 00:00:30 Breez SATSCARD Integration Bounty Software Releases & Project Updates 00:01:16 Tor Browser 12.0 00:02:44 BTC Pay Server v1.7.1 00:10:03 Wasabi v2.0.2.1 00:16:16 Alby v1.21.0 00:29:24 Zeus v0.7.0 00:31:11 Fountain 0.5.8 00:34:03 Umbrel Update 24.0.1-2 00:40:07 OBW v0.2.0 00:40:31 Liana 0.1: first beta release 00:42:28 Ledger + Miniscript 00:48:00 Damus 01:01:49 Samurai - The Stealth Mode Update Project spotlight 01:06:09 SMS4Sats 01:06:48 LNVPN 01:06:54 Heatbit 01:07:16 Zaprite Boosts 01:07:23 Thanks to everyone who streamed sats, and shoutout to our top boosters: @rot13maxi, @apemithrandir, @user4811802839281498, @hightraverse, @vake, @user1628071985352022, @raduza, @nachobitcoin, @erik99, @ca_dannerrrrr News & Noteworthy 01:09:31 The Block has been secretly funded for over a year with money from SBFs cryptocurrency trading firm 01:10:00 EU to Make Crypto Companies Report Tax Details to Authorities 01:10:34 Coinbase Received 12320 Government Demands for Customer Info 01:10:56 Digital Asset Anti-Money Laundering Act introduced 01:11:08 Core Scientific filing for Chapter 11 bankruptcy 01:12:37 Over 100 bitcoins tied to QuadrigaCX moved 01:16:49 HRF Bitcoin Development Fund Awards $325K In Grants 01:17:01 Paul Sztorc Launches 'Layer 2 Labs' 01:18:28 Lastpass Hack 01:27:48 BLIP Bitcoin-based encrypted chat platform announced 01:28:43 Lightning Privacy Research 01:31:00 At least 17% of Bitcoin Core 24.x listening nodes running full-rbf 01:31:14 Breez raised $4.5M round to accelerate Lightning as a Service 01:32:05 CashuBTC is now available for everyone via @LNbits 01:36:42 Paxful Delists ETH 01:36:47 Portion of Bitcoin Supply Held by Retail Investors Reaches All-Time High 01:36:54 NVK.org: How to setup NIP5 verification using Github Pages 01:37:10 André Neves: Set up your very own #nostr relay server in
A collection of highlights to give your future developer self a helping hand: Deploying a Flexdashboard using GitHub Pages and Docker, an illustrated guide showcasing the perks of Git and GitHub for version control, and how the logger package integrates smoothly with plumber for an API package. Additional note: The recording of this episode was met with unfortunate technical glitches. We apologize and promise the quality will be back to normal next time! Episode Links This week's curator: Jonathan Carroll (@carroll_jono (https://twitter.com/carroll_jono)) Deploy Flexdashboard on Github Pages with Github Actions and Docker (https://github.com/RamiKrispin/deploy-flex-actions) GitHub - The Perks of Collaboration and Version Control (https://cosimameyer.com/post/git-the-perks-of-collaboration-and-version-control/) API as a package: Logging (https://www.jumpingrivers.com/blog/api-as-a-package-logging/) Entire issue available at rweekly.org/2022-W39 (https://rweekly.org/2022-W39.html) Supplement Resources Submitting Your Work to the Table Contest | 2022 Table Contest https://www.youtube.com/watch?v=fgYgaYKpLO0 Let's Create a Quarto Doc & Share it on Quarto.Pub | Table Contest 2022 https://www.youtube.com/watch?v=l-AQ4yAQXy0
Cloud Posse holds public "Office Hours" every Wednesday at 11:30am PST to answer questions on all things related to DevOps, Terraform, Kubernetes, CICD. Basically, it's like an interactive "Lunch & Learn" session where we get together for about an hour and talk shop. These are totally free and just an opportunity to ask us (or our community of experts) any questions you may have. You can register here: https://cloudposse.com/office-hoursJoin the conversation: https://slack.cloudposse.com/Find out how we can help your company:https://cloudposse.com/quizhttps://cloudposse.com/accelerate/Learn more about Cloud Posse:https://cloudposse.comhttps://github.com/cloudpossehttps://sweetops.com/https://newsletter.cloudposse.comhttps://podcast.cloudposse.com/[00:00:00] Intro[00:01:17] Tons of New Cloud Posse Modulesterraform-aws-ecr-public https://github.com/cloudposse/terraform-aws-ecr-publicTerraform-aws-lakeformationhttps://github.com/cloudposse/terraform-aws-lakeformationTerraform-aws-gluehttps://github.com/cloudposse/terraform-aws-glueTerraform-aws-athenahttps://github.com/cloudposse/terraform-aws-athenaTerraform-aws-kinesis-streamhttps://github.com/cloudposse/terraform-aws-kinesis-stream[00:04:48] GitHub Pages now Builds using GitHub Actions by defaulthttps://github.blog/changelog/2022-08-10-github-pages-builds-with-github-actions-ga/[00:05:17] After eleven-year wait, Atlassian customers promised custom domains in 2023https://www.theregister.com/2022/08/12/atlassian_cloud_6999_2023/[00:06:18] Terradozer - destroy using the state only - no *.tf files needed (via weekly.tf)https://github.com/jckuester/terradozer[00:07:08] Cf2tf - optimistically convert cloudformation templates to terraform (via weekly.tf)https://github.com/DontShaveTheYak/cf2tf[00:11:47] I recently heard there are cheaper alternatives to AWS Support provided by their third party partners. I'm unclear on which partners offer this but does anyone here use an alternative to AWS Support? If so, who do you pay and is it just as "good"? [00:17:40] KMS Design Decision[00:27:38] Cognito Design Decision[00:31:08] Hiring Devops Engineers questions[00:52:43] Outro#officehours,#cloudposse,#sweetops,#devops,#sre,#terraform,#kubernetes,#awsSupport the show
Zbudowanie strony z dokumentacją od zera może się wydawać nie lada wyzwaniem. Istnieje mnóstwo sposobów na podejście do tematu. Kiedy myślimy nad potencjalnym rozwiązaniem, do głowy przychodzą nam następujące pytania: Czy można do tego celu użyć darmowych narzędzi? Czy istnieje coś takiego jak bezpłatny hosting? Jak pisać dokumentację bez CCMSa? Jak wygenerować PDFy bez użycia standardu DITA? W tym odcinku staramy się stworzyć prosty (i bardzo subiektywny) przepis, który pomoże Wam zbudować nowoczesną stronę z dokumentacją w relatywnie krótkim czasie. Dźwięki wykorzystane w audycji pochodzą z kolekcji "107 Free Retro Game Sounds" dostępnej na stronie https://dominik-braun.net, udostępnianej na podstawie licencji Creative Commons license CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Informacje dodatkowe: "#38 Tech Writer walczy z hakerami, czyli jak zadbać o bezpieczeństwo dokumentacji", Tech Writer koduje: https://techwriterkoduje.pl/blog/2022/01/10/tech-writer-walczy-z-hakerami Static Site Generator: https://www.gatsbyjs.com/docs/glossary/static-site-generator/ Docusaurus: https://docusaurus.io/ Algolia: https://www.algolia.com/ Markdown: https://daringfireball.net/projects/markdown/syntax Visual Studio (VS) Code: https://code.visualstudio.com/ VSCodium: https://vscodium.com/ Rozszerzenie Vale dla VS Code: https://github.com/errata-ai/vale-vscode Git: https://git-scm.com/ GitHub: https://github.com/ GitHub Pages: https://pages.github.com/ GitHub Actions: https://github.com/features/actions Repozytorium dla strony Tech Writer koduje: https://github.com/techwriterkoduje/site-source TeamCity: https://www.jetbrains.com/teamcity/ Jenkins: https://www.jenkins.io/ Kubernetes: https://kubernetes.io/ Docker: https://www.docker.com/ DITA Open Toolkit (OT): https://www.dita-ot.org/ Oxygen XML: https://www.oxygenxml.com/ mr-pdf: https://www.npmjs.com/package/mr-pdf
Dimitri wonders how to build a website, and Linh tries her best to explain it… slowly… Check out Linh's app, Not Phở, a cook that introduces the user to Vietnamese cuisine, especially dishes other than Phở. It runs on iPhone, iPad, and Mac. It also have an iMessage sticker pack so that you can share with all your friends and family. App Store: https://apps.apple.com/app/apple-store/id1525104124?pt=14724&ct=Podcast&mt=8 Website: https://notpho.app Follow us on Twitter: https://twitter.com/LinhAndDimiChan Follow Dimitri on Twitter: https://twitter.com/dimitribouniol Follow Linh on Twitter: https://twitter.com/linhbouniol Check out: Not Phở's new website: https://notpho.app Not Phở's old website: https://notpho.app/v1 How I built a website for Not Phở: https://notpho.app/blog/2022/06-16-HowIBuiltAWebsiteForNotPho/ Tools I need to build a website: https://notpho.app/blog/2022/06-28-ToolsINeedToBuildAWebsite/
Connect The World EP30 | Sergei Tikhomirov | Chaincode Labs | New York USA "In the first part Edward and Stef show the new Connect the World website! And they share a Quick Talk about the experience of Edward and ZeroBTC of following the latest Chaincode Labs Lightning Seminar! After that they talk to Sergei Tikhomirov, a postdoctoral researcher at Chaincode Labs! He's researching the security and privacy of Bitcoin with a focus on the Lightning Network. Sergei is mostly focused on the protocol issues and in this Episode he shares his recent paper in which he discussed the limitations and security issues of the Lightning Network. In 2017 he started his own podcast with the idea of bringing high-quality, no-bullshit blockchain information to the Russian speaking audience. In this Episode they talk about Chaincode Labs, which employs around a dozen people who either work on Bitcoin Core or study more fundamental research problems. And he shares his vision about the developments on the Lightning Network and the importance of Bitcoin and Lightning education. Ready for a deep dive into liquidity issues, probing, jamming, PLTCs? Grab a chair and watch this Episode!" - Jonī Kyasshu
Nato Boram joins the show to share how to publish static GitHub pages of your documentation using GitHub actions. Allen and Nathan also discuss Elixir compared to other languages, functional ways of programming, and the “let it crash” philosophy. Finally, they end the show with ideas on how Elixir can become a better language. In this episode… Nato's journey from Flutter to Elixir Pros and cons of Elixir and Phoenix How to publish static GitHub pages using GitHub actions Elixir compared to other languages Elixir syntax variations and inconsistencies Functional way of programming with Elixir Pattern matching Let it crash philosophy Go formatting Ideals and changes to make Elixir better Sponsors Top End Devs (https://topenddevs.com/) Coaching | Top End Devs (https://topenddevs.com/coaching) Links How to publish ExDocs on GitHub Pages (https://medium.com/@nato.boram/how-to-publish-exdocs-on-github-pages-5cda6f89a8e9) Picks Allen- Row Level Security (RLS): Basics and Examples (https://satoricyber.com/postgres-security/postgres-row-level-security/) Nathan- Phoenix Live View Formatter (https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.HTMLFormatter.html) Special Guest: Nato Boram.
En el episodio 68 del podcast de Entre Dev y Ops hablaremos con Héctor Canto sobre Architecture Decision Records o ADRs. Blog Entre Dev y Ops - https://www.entredevyops.es Telegram Entre Dev y Ops - https://t.me/entredevyops Twitter Entre Dev y Ops - https://twitter.com/entredevyops LinkedIn Entre Dev y Ops - https://www.linkedin.com/in/entre-dev-y-ops-a7404385/ Patreon Entre Dev y Ops - https://www.patreon.com/edyo Amazon Entre Dev y Ops - https://amzn.to/2HrlmRw Enlaces comentados: Artículo de Michael Nygard - https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions Plantilla ADR de Michael Nygard - https://github.com/joelparkerhenderson/architecture-decision-record/blob/main/templates/decision-record-template-by-michael-nygard/index.md Plantilla ADR de Hector GH - https://gist.github.com/hectorcanto/1276e41fc24e8c4ee1427cd5d02bf82a Python Diagrams - https://diagrams.mingrammer.com/ PlantUML - https://plantuml.com/es/ MkDocs - https://www.mkdocs.org/ GitHub Discussions - https://docs.github.com/en/discussions Homepage of the ADR GitHub organization - https://adr.github.io/ Repositorio de Joel Parker Henderson - https://github.com/joelparkerhenderson/architecture-decision-record Integración GH/GitLab/Bitbucket a Confluence - https://marketplace.atlassian.com/apps/1215703/markdown-extensions-for-confluence?hosting=datacenter&tab=overview Extensión de VSCode para publicar Markdown en Confluence - https://marketplace.visualstudio.com/items?itemName=t-nano.markdown-to-confluence-vscode Charla de Héctor sobre ADRs en el meetup de PyBCN - https://www.youtube.com/watch?v=QNr8p1zVd54 Slides sobre ADRs de Héctor Canto - https://www.slideshare.net/HectorCanto/adr-intro Literate Programming - https://en.wikipedia.org/wiki/Literate_programming GitLab Pages - https://docs.gitlab.com/ee/user/project/pages/ GitHub Pages - https://pages.github.com/ Linkedin de Héctor Canto - https://www.linkedin.com/in/hectorcanto/ Twitter de Héctor Canto - https://twitter.com/hectorcanto_dev Slides de Héctor Canto - https://www.slideshare.net/HectorCanto Perfil de GitHub de Héctor Canto - https://github.com/hectorcanto Enlaces interesantes adicionales: Post acerca del uso de ADRs - https://matklad.github.io//2021/02/06/ARCHITECTURE.md.html Otro post sobre los ADRs y las sentencias Y - https://medium.com/olzzio/y-statements-10eb07b5a177 Herramienta para una KB sobre ADRs - https://github.com/thomvaill/log4brains Ejemplo de ADRs - https://github.com/npryce/adr-tools/tree/master/doc/adr ADRs de Prestashop - https://github.phala.one/PrestaShop/ADR ADRs de Cosmos SDK - https://docs.cosmos.network/master/architecture/ ADRs de Backstage - https://backstage.io/docs/architecture-decisions/adrs-adr002 ADRs de EdgeX Foundry - https://docs.edgexfoundry.org/2.0/design/TOC/
Our Guest: Salma Alam-Naylor What she'd like for you to see: Unbreak.tech Her JAMstack Jams: All the amazing rendering options! Her musical Jam: Move On by Emily Vaughn Grant (pay special attention at 1:47 in the track for the double tracked bass!) Transcript Bryan Robinson 0:14 Hello Hello everyone. Welcome to another JAM PACKED Jamstack episode. This is That's My Jamstack the podcast where we ask the best question since sliced bread. What is your jam in the Jamstack? I'm your host Brian Robinson and this week, we have a very special guest. I'm pleased to introduce the winner of the Jamstack community creator award from Jamstack Conf 2021 Salma Alam-Naylor. Salma helps developers build stuff, learn things and love what they do. She does that via her Twitch streams, YouTube channel and blog. One quick update for the episode, we recorded this prior to Salma joining the Netlify team. So while we mentioned Contentful, in various parts of the episode, Sam is now on the DX team at Netlify. Bryan Robinson 1:04 Alright, Salma, well, thanks for joining us on the show today. Salma Alam-Naylor 1:06 Thank you for having me. It's a pleasure to be here. Bryan Robinson 1:08 Awesome. So tell us a little bit about yourself. What do you do for work? What do you do for fun, Salma Alam-Naylor 1:13 I am currently a developer advocate for Contentful. I've also got like kind of other stuff that you do. So you might know me on the internet as white Panther. And I help developers build stuff, learn things and love what they do. I write educational blog posts about web development. I do a lot of live streaming on Twitch, I make YouTube content. And I'm an all round Jamstack enthusiast To be honest, for fun, I mean, I kind of do that for fun as well. But if you want to know about non web dev stuff, I actually love interior design. And I'm moving in the next like two months. So hopefully, when people hear this, they would have actually finally moved house. So I can't wait to get my hand stuck in to that little project. I also like to play cerebral puzzle games with my husband on on a computer, most recently, a game called Super liminal, which is all about like perspective and maths and stuff. It's very good. Bryan Robinson 2:19 I'm gonna jump in real fast. I have a six year old and we were playing super limited together. Nothing about it. I was like, this is super fun. And like we were having good time. He that was really cool. And then it gets creepy. I didn't expect they get super creepy. And he's like, I don't want to play this game anymore. Daddy. We never have to play it again. You're fine. Salma Alam-Naylor 2:38 Yeah, it was a good game. It's a good game. I remember this one bit that when you get on like a roof, and there's the moon. And we were like on the roof thinking this you have to we have to get above the roof because of the weird glitch thing when you turn the light on and off. But it wasn't it was an Easter egg. It wasn't a thing. It was fun. And I'm also, you know, my background is in music. I did a music degree. I was a music teacher. I was a musician. So I still try to play music for fun with my family. And I do want to get back into making music. Actually, I missed that a lot. But so when I move into my new house, I'll have a proper studio purposely for the music. So I think I'm looking forward to that a lot. Bryan Robinson 3:21 That's amazing. So what's your instrument of choice or musical talent of choice, I suppose. Salma Alam-Naylor 3:27 So when I was growing up, and when I was a teacher, my main instruments were piano and flute, but and singing, but I also taught kids how to play in rock bands for a few years. So I was a bass player. I don't really do much bass now. And I did some guitar and played some drums and stuff. But making music now I really like making electronic music mainly. I was also a musical comedian for a few years. Interesting. touring the UK, singing weirdly satirical British political songs. We'd get cancelled now so you can't hear any of it. Bryan Robinson 4:14 Out of curiosity. Is there any comedy in Britain? That's not satirical political comedy? I feel like everything kind of falls into it. Salma Alam-Naylor 4:23 Yeah, it's pretty much there's a lot to satirize in the British political system. But I guess that's for another podcast. Bryan Robinson 4:31 Yeah, sure. Awesome. Yeah. Let's let's maybe not talk about about the Jamstack. He's, he said that you're a Jamstack enthusiast. So what was your entry point into this ecosystem philosophy, what have Salma Alam-Naylor 4:45 you it was actually with Jekyll, the first static site generator many, many years ago, and that was the only one that existed you know, like around 2015 2016 and I had no idea what it was doing. But I was experimenting, I had really no idea that it was part of the Jamstack. At the time, I was just building a website, I had no idea that it was a static website, and really what that meant, but I was building something with liquid templates that compiled into a website. And I was hosting it on GitLab Pages at the time, not GitHub Pages. I was because I used to get lab for work. And so I kind of naturally gravitated towards GitLab at that time. But I guess the ecosystem sucked me in. I really don't know how I went from building my first Jekyll site to where I am now. I have no idea how, how this has happened, or what made it happen. But clearly, the Jamstack has, has a good thing going right. Like, it's fantastic. Bryan Robinson 5:51 So what are you doing right before you started playing with Jekyll, you were at some sort of company doing tech stuff he's mentioned you are you are using GitLab. So what was that like? Salma Alam-Naylor 5:59 So I did a variety of different things. Before I ended up here. I was working for some startups, I was working for a global e commerce company that was using like Java, whether bespoke kind of E commerce system with JSP front ends. I was also before that I was building a new e commerce platform in a startup that was JavaScript based what we're even using PHP, we're using PHP with JavaScript front end. But it was a it was a plain JavaScript front end, it wasn't statically generated, it wasn't using a framework or anything like that. After the global e commerce company, I was actually working for another startup building a React Native app. So like my career actually had nothing to do with the Jamstack. It was all my side projects. Until my last job, I was working at an agency, product agency. And we built quite a lot of things in the team. And actually we started gravitating towards next J S for these quick. They were initially proofs of concept, because next JS was pretty young at the time. But it ended up that next JS was a really scalable front end with a lot of capabilities. So we normally have like a dotnet back end and an extra as front end kind of thing with the API layer in the middle. And that was really my intro into the enterprise levels, scalable, robust, we can build whatever we want with the Jamstack kind of thing. Bryan Robinson 7:38 Alright, so let's fast forward a little bit. That was your last thing, right? How today, are you using the Jamstack philosophies professionally, I mean, obviously, Contentful is pretty, pretty big in that world. But also personally with both your educational stuff and anything else you're doing on the side. Salma Alam-Naylor 7:52 So one of the biggest philosophies that I like to promote the Jamstack is that just do it, just build something and get it live, just build it learn some stuff while you do it, and have a good time. Like, I can try things out without having to over commit to anything on the Jamstack I if I've got an idea for a website, a lot of the time I will get the idea or buy the domain, I will go on my Twitch stream for three hours. And I will build it and release it in that three hours. And that is the joy of the Jamstack. Salma Alam-Naylor 8:05 And what I love about that as well as it's so accessible to developers, because you don't have to over commit or pay for anything at that stage of IDEA inception. And so it's so accessible, and it's so in reach for so many people, for example, dot take dotnet I don't want to like hate on dotnet. It's great. It's a fantastic enterprise solution for enterprise products. But as a developer, as a front end developer, even though the dotnet comes with front end or back end stuff, what do I do when I've built an app? Like how do I put it online? So like I can just hook up a Jamstack hosting platform to my GIT repository, do a git push and great, there it is. It's online on a on a URL, I don't have to buy a domain even it's just there. And it's it's just so beautiful. And it's it really embodies the actual kind of agile kind of continuous delivery methodology as well. Salma Alam-Naylor 9:26 Every commit is a release, every commit is an immutable release. So you can roll back, you can have a look at the history you can you have, you can just click in a UI in like Vercel or Netlify or GitLab. Just click Oh, look at that. That's what I mean and week ago, I can compare that with what I've got now. And, and it scales. You don't even have to worry about scaling. If you get like a big hit on your proof of concept or whatever. And you know, it just enables developers to move fast to try things out to experiment and test Have fun without all the nonsense that developers have to deal with, day in, day out. And it's just a joy. Salma Alam-Naylor 10:09 And I've learned so much like, I never would have thought like, when I was building my like first websites maybe 10 10-12 years ago, my first proper websites, I never would have thought that I would be utilizing a CDN at the edge. And all of these different rendering methods, depending on the data that I needed to serve, auto scaling, immutable deploys, Git integration, infrastructure, serverless functions, you know, it's like a whole ecosystem that lets you try stuff, to see if it's gonna work. And if it does work, you can go further and make it robust. Like one of one of my biggest slogans is also build first engineer later. And that I think, is a really like, core part of the Jamstack. Just get it live and see what happens. Bryan Robinson 11:00 And you can get it live in any number of ways too, right? You can if you're making a content driven thing to begin with, you don't need a CMS. But yes, it takes like a few lines of code tweaked. And your next js, your 11ty, your whatever static site generator, right, like just ingest from somewhere else. And it's good to go? Unknown Speaker 11:19 Yes. It's very exciting. It's very exciting. Like imagine. So this has happened in the all in the last like six years since like, 2015, when the Jamstack kind of first came about, like what's going to happen in the next six years, and the next six years, and the next six years, I actually did. At the Contentful, fast forward conference at the beginning of November, I actually did the keynote with Stephan Judas, about the last 10 years of web development and how Jamstack came about to solve the problems of old school monolith solutions where back end and front end were divided, where everyone was reinventing the wheel the whole time. And the Jamstack has really come to like, solve these problems, where as a front end developer, you don't need all this back end nonsense anymore. You're and and because of that, it's like enabled developers, it's increased their skills is giving them the power is empowering developers to to build stuff that they couldn't have even dreamed of before. And I think that's really, really, like wonderful for the future. Salma Alam-Naylor 12:24 Like I have a four year old. And I can't wait to show him the stuff like he could put a website live. That's just an HTML page and JavaScript file, potentially, you know, on the Jamstack, when he's like, eight years old, you know. And imagine us being able to do that when we were eight. Bryan Robinson 12:46 At like 14, I think I had my first website. And it was like Microsoft front page built like graphical UI, it was, it was quite choice. Yeah, my six year old, I built him a website in a day, he happened to have a piece of art that he brought home from school, that instead of writing his name on it, he had to write his his first first name, and last initial, because that was yet another, another kid in his class with that name. And then he wrote.com At the end, and I said, I bet that domain is open. And it was and like, I threw it together, uploaded the artwork. And then he told me, he's like, I want to like button. And I was like, I bet I could do that. But you have to do three pieces of art every week to to make it so that I'll build that for you. And then like, I was able to walk him through what I done. And he had no real understanding. But it was like, okay, I can. This is simple enough, I can show you and it's Yeah, super low bar. Salma Alam-Naylor 13:43 Yeah, I can't wait. I can't wait for that. It's so empowering. And it's so exciting to see what our children could make one day with, how it's being innovated, and the improvements and the things that are being done on the Jamstack. And Bryan Robinson 13:57 how it kind of opens up into like the the kind of natural open web platform. Yeah, walled garden is not something that you have to buy into. And it allowed, like, I used to teach a journalism class on HTML and CSS. And I was like, look, you'll you can you can do this. And if you do this, you don't have to depend on these other platforms anymore. And like, I would talk about the history of the web and how in the 90s, it was a creator focus space. And in the current state, in fact, like anything from like, 2010 on, it's very consumer based. And so it's like, there's this dichotomy of the web, and the more people that can be creators, the better. Yes, yeah. So we've talked about next JS some, obviously, you work at Contentful. We talked about the olden days of Jekyll and all that good stuff. What would you say is your current jam in the Jamstack? What's your favorite product? Or maybe it's a philosophy or framework. What makes you love the Jamstack? Salma Alam-Naylor 14:53 It's sounds really nerdy. But what I like about the Jamstack is the different types. Types of rendering that are available. This is like, this is so ridiculous, but it's like. So obviously, I work for Contentful. Right, and I'm dealing with data like data comes from a CMS. But data is not all created equal. And so there are four types of rendering depending on the data your data needs, like, it's not just about like pages and posts and stuff, like there are some bits of data that are very granular, they might need to be more up to date than the others, because obviously, mainly Jamstack is static first, right? And so but not everything can be static. But not everything needs to be client side. And so that what the Jamstack has now is like these four types of rendering. So back in the old, old web days, everything was server side rendered, right, you you your web request, hit a server that went to the backend that generated from all the logic a, an HTML document and gave it back to the client, right. So we still got server side rendering on the Jamstack, which I think right now is really great for personalization for things like E commerce, and other things. Because I especially talk a lot about using query params with get server side props with NextJs. JS, for those kind of personalized experiences, rather than just serving everything statically to the same as same to everyone. But then we've got the static, so there's, the second one is static generation. So you've got a plain site content site, nothing changes, nothing needs to update it, just serve it as quickly as you can statically do your visitors great. But now we've got some fancy stuff, there's incremental static regeneration, which is based on a cache validation strategy called stale while revalidate. And what this does, especially inside next js is you choose when the server re validates your data. And at certain intervals, and if it is out of date, it will rebuild in the background via serverless functions. And then for the next visitor, it will show it up to date. So that's like good for kind of data that it's great if it's up to date doesn't matter if some people see it if it's out of date. And then you've got distributed persistent rendering, which so if you want the Jamstack to scale, you, you might have 1000s, and 1000s, and 1000s of pages, right from your CMS, your E commerce site or wherever. Now we know that with the Jamstack, a site to go live and be deployed, it needs to be pre built and pre rendered, right, but 1000s and 1000s of pages could take hours to build. And if you want to continuously deploy and be agile and move fast and break stuff, you can't have every single bill taking hours and hours and hours. So distributed percentage rendering, what it does, it lets you choose what pages are pre rendered, and then doesn't pre render the other ones, you could pre render like your top 20 pages or wherever at build time. But then when someone goes to visit a page that hasn't been pre rendered, it gets pre rendered at request time, and then cached at the edge for future requests. So we've moved away from like building static pages and static data on the Jamstack blanket to a flexible model where you can choose when your pages rendered, depending on the type of data that you're serving your visitors and how up to date it needs to be. It sounds really weird, but this is my favorite part of the Jamstack. Bryan Robinson 18:19 So it obviously, right? Because like that's a lot. And like when you when you actually said like my favorite parts, the rendering modes like okay, all right, but no, totally. And like, here's my absolute favorite bit of that entire of that entire conversation, right? You don't have to understand any of what Salma just said, if you're listening, right? Because you can start and you can, like we talked about, like the accessibility of the Jamstack earlier, you can start and you can just upload an HTML file and you're Jamstack. But then you can bring on something like a nextjs or an 11ty or a Gatsby or what have you. And then you're doing a different kind of Jamstack. And then you can bring in, like you said, the incremental static regeneration ISR. We love acronyms. And that uses SWR another accurate acronym, and then you've got DPR. But you can learn those things slowly as you go. And like you said before it, you can build stuff and put it live and have no understanding of any of that and then come back and get a little bit of performance boost or a little bit of build boost or these little things. And you can go Salma Alam-Naylor 19:24 When you need it. You know when it's appropriate when your site needs to scale when you've now got a CMS when you've got different types of data when you convert to use this database or something like that. And it's so flexible. It's not just static sites. It's it's a whole ecosystem that is so far removed from the monolithic way. We used to do things with just everything, everything from the server at request time done, or you know, everything from the CDN or request time static done. It's like there's these combinations Have those but then some more clever stuff that makes your workflow more efficient. That means that you don't need to worry about these things. And it's just like whoever thought of these things. I wish I had thought of those things. Oh, yeah. I'd feel pretty accomplished. Bryan Robinson 20:20 Oh, yeah. And I mean, we'd be having a completely different conversation if either of us were there. But But, but in all seriousness, right, like, the fact that I built my son's website, and it has a like button, I have no clue. Like, I've been doing this a long time, I have no clue how 10 years ago, I would have done that, because I would have had to stand up a server, I would have had to learn PHP or Python, or a server side scripting language, I would have had to do all these things, I would have had to do the JavaScript on the fly on the front end, I wouldn't have done it just pure and simple, I would not have done it. And literally, it was two hours of work 2 serverless functions and low clients are JavaScript and I was done. Salma Alam-Naylor 20:56 Do you remember back in the day when front end development involved, like httpd conf files and things like that, and I had no idea what that meant server configuration, get out of my life, I just want to build some front end with JavaScript, I don't care about that stuff is in my way. And the amount of I used to work on the LAMP stack when I was first starting because I was doing PHP at work. And so like to set up a whole PHP server on your on your local machine with PHP, MyAdmin, and blah, blah, blah, like, I'm not hating on PHP is great. But as a front end developer, you don't want to deal with that. Because that's not what you are an expert in, that's not what you want to do. That's not what makes you happy. It's, you know, it doesn't make me happy, like the four different types of rendering on the Jamstack makes me happy. Bryan Robinson 21:51 Well, and I mean, you get further into that. And you have to think about the DevOps. And like I, I pride myself on being able to find all the edge cases and break everyone's DevOps, that's something that I'm incredibly good at. And it comes from, like, I learned about Vagrant, and, you know, virtual machines on my laptop. And I, I haven't installed a vagrant or virtual machine on my laptop in six years now. And it is so refreshing. Salma Alam-Naylor 22:18 Yes, I remember that used to do that was all I did at work on these big monolith systems and deploy systems. I wonder how far those systems are away from that now. But I wonder if that's still the same, but it's just, there's always, there's big pain points between Windows and Mac, as well. And the Jamstack doesn't really have that, because you're just running some Node in a terminal right to develop locally. And then you're just sending it to the CDN. It's just Bryan Robinson 22:46 that like, like between Linux that you might have your server and Mac the Mac flavor versions, then then you got like title case sensitivity. Like no, no, don't make me think about that. Please. Bryan Robinson 22:59 Let's pivot a little bit. You have a music history. And so I'm very excited now that I've learned that for the next question, which is what is your actual musical jam right now? What's your favorite musician or album or what's playing on a day to day basis for you? Salma Alam-Naylor 23:14 So I think whenever you ask a musician this question, they will always say, the classic developer line it depends. Always It depends. I have I like such a varied bag of music because I used to listen to such a varied bag of music when I was learning music and writing music. I like music from progressive metal to EDM to jazz to folk to weird sounds. A solid favorite band that I will always reach for is Architectes, which is a British metal core band. And me and my husband. I actually met my husband when I joined his band. So we've got like a lot of music in common. It was a progressive metal band long story a long time ago. But the song I have on repeat right now is more on the EDM side. It's called probably no one's ever heard of this. It's called move on by Grant and I love it right? Because another weird nerdy thing. This is a music nerdy thing now. You know how often in pop songs your head double tracked guitars like panned left and right. This song for the first time in my life, I have heard double tracked bass guitars, and they're playing slightly different things. One minute 47 into the song is a feast for your ears. It's amazing to listen to, and I can't stop listening to it because of this double bass track thing. Move on by Grant if you want to hear some nerdy stuff, musically. Bryan Robinson 24:42 Now for that you probably need stereo headphones, right? Yeah, exactly. Get the benefit of that. Yes. Wow. Okay, that's I am not disappointed by the answer in any way shape or form. I learned a lot I didn't even know that was the thing double tracked anything so excellent nerding on that Salma Alam-Naylor 25:01 Yeah, great nerding love it. Bryan Robinson 25:04 Alright, so before we go, is there anything that you would like to promote out into the Jamstack ecosystem, anything, you're doing Contentful anything. Salma Alam-Naylor 25:11 So on my Twitch streams, I stream twice a week. Currently, I always build on the Jamstack. And one of the most challenging projects I'm building is something called Unbreak dot tech, where, and sometimes it's weird to bring these stuff. These sometimes it's weird to bring these things up in these kinds of podcasts. But as a woman in tech on the internet, it's very difficult, full stop, to realize. And sometimes it generally falls on the women and the marginalized people to talk about the issues that we face. However, unbraked dot Tech offers a platform for men to talk to other men, about being a better person and treating women and marginalized people better. So I've been working on that on my stream, I am welcoming contributions from men who want to talk on the matter. And we'll see how it goes. It's a complete experiment. I have no idea. You know, again, I'm using the Jamstack to experiment and see how it goes. So it's all good. It's hosted on Netlify using like Netlify forms, it's built with NextJs. JS. And I work on that every now and then and see where it goes, you can now submit videos as well as articles to the site, and they have captioned I've got captions and all sorts of accessibility stuff going on. So that's the thing. Catch me on twitch twitch.tv/white p four, and three are the Bryan Robinson 26:45 one of the hardest screen names in the business. Salma Alam-Naylor 26:48 Yeah, I regret it holy. Bryan Robinson 26:50 Anyway, definitely check out on what was it Unbreak tech it on Unbreak dot tech unbrick break dye Tech because I have heard way too many stories, and everyone should know the stories and again, the women and the marginalized people have had to tell them enough. So men, let's step up and do a little bit more around that. Salma Alam-Naylor 27:09 I appreciate that. Bryan Robinson 27:10 Salma, thanks so much for joining us on the show today. And I hope you keep doing amazing things, especially with Unbreak dot tech, and Contentful and everything in the Jamstack. And we hope to see some really cool stuff in the future. Salma Alam-Naylor 27:21 Thank you, Bryan. Thanks for having me. Bryan Robinson 27:24 Thanks again to our guest, and thanks to everyone out there listening to each new episode. If you enjoyed the podcast, be sure to leave a review, rating, Star heart favorite, whatever it is, and your podcast app of choice. Until next time, keep doing amazing things on the web. And remember, keep things jammy Intro/outtro music by bensound.com Support That's my JAMstack by contributing to their Tip Jar: https://tips.pinecast.com/jar/thats-my-jamstack
About MarkMark loves to teach and code.He is an award winning university instructor and engineer. He comes with a passion for creating meaningful learning experiences. With over a decade of developing solutions across the tech stack, speaking at conferences and mentoring developers he is excited to continue to make an impact in tech. Lately, Mark has been spending time as a Developer Relations Engineer on the Angular Team.Links:Twitter: https://twitter.com/marktechson 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 Vultr. Spelled V-U-L-T-R because they're all about helping save money, including on things like, you know, vowels. So, what they do is they are a cloud provider that provides surprisingly high performance cloud compute at a price that—while sure they claim its better than AWS pricing—and when they say that they mean it is less money. Sure, I don't dispute that but what I find interesting is that it's predictable. They tell you in advance on a monthly basis what it's going to going to cost. They have a bunch of advanced networking features. They have nineteen global locations and scale things elastically. Not to be confused with openly, because apparently elastic and open can mean the same thing sometimes. They have had over a million users. Deployments take less that sixty seconds across twelve pre-selected operating systems. Or, if you're one of those nutters like me, you can bring your own ISO and install basically any operating system you want. Starting with pricing as low as $2.50 a month for Vultr cloud compute they have plans for developers and businesses of all sizes, except maybe Amazon, who stubbornly insists on having something to scale all on their own. Try Vultr today for free by visiting: vultr.com/screaming, and you'll receive a $100 in credit. Thats v-u-l-t-r.com slash screaming.Corey: This episode is sponsored in part by something new. Cloud Academy is a training platform built on two primary goals. Having the highest quality content in tech and cloud skills, and building a good community the is rich and full of IT and engineering professionals. You wouldn't think those things go together, but sometimes they do. Its both useful for individuals and large enterprises, but here's what makes it new. I don't use that term lightly. Cloud Academy invites you to showcase just how good your AWS skills are. For the next four weeks you'll have a chance to prove yourself. Compete in four unique lab challenges, where they'll be awarding more than $2000 in cash and prizes. I'm not kidding, first place is a thousand bucks. Pre-register for the first challenge now, one that I picked out myself on Amazon SNS image resizing, by visiting cloudacademy.com/corey. C-O-R-E-Y. That's cloudacademy.com/corey. We're gonna have some fun with this one!Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. Anyone who has the misfortune to follow me on Twitter is fairly well aware that I am many things: I'm loud, obnoxious, but snarky is most commonly the term applied to me. I've often wondered, what does the exact opposite of someone who is unrelentingly negative about things in cloud look like? I'm here to answer that question is lightness and happiness and friendliness on Twitter, personified. His Twitter name is @marktechson. My guest today is Mark Thompson, developer relations engineer at Google. Mark, thank you for joining me.Mark: Oh, I'm so happy to be here. I really appreciate you inviting me. Thanks.Corey: Oh, by all means. I'm glad we're doing these recordings remotely because I strongly suspect, just based upon the joy and the happiness and the uplifting aspects of what it is that you espouse online that if we ever shook hands, we'd explode as we mutually annihilate each other like matter and antimatter combining.Mark: Feels right. [laugh].Corey: So, let's start with the day job; seems like the easy direction to go in. You're a developer relations engineer. Now, I've heard of developer advocates, I've heard of the DevRel term, a lot of them get very upset when I refer to them as ‘devrelopers', but that's the game that we play with language. What is the developer relations engineer?Mark: So, I describe my job this way: I like to help external communities with our products. I work on the Angular team, so I like to help our external communities but then I also like to work with our internal team to help improve our product. So, I see it as helping as a platform, as a developer relations engineer. But the engineer part is, I think, is important here because, at Google, we still do coding and we still write things; I'm going to contribute to the Angular platform itself versus just only giving talks or only writing blog posts to creating content, they still want us to do things like solve problems with the platform as well.Corey: So, this is where my complete and abject lack of understanding of the JavaScript ecosystem enters the conversation. Let's be clear here, first let me check my assumptions. Angular is a JavaScript framework, correct?Mark: Technically a TypeScript framework, but you could say JavaScript.Corey: Cool. Okay, again, this is not me setting you up for a joke or anything like that. I try to keep my snark to Twitter, not podcast because that tends to turn an awful lot into me berating people, which I try to reserve for those who really have earned it; they generally have the word chief somewhere in their job title. So, I'm familiar with sort of an evolution of the startups that I worked at where Backbone was all the rage, followed by, “Oh, you should never use Backbone. You should be using Angular instead.”And then I sort of—like, that was the big argument the last time I worked in an environment like that. And then I see things like View and React and several other things. At some point, it seems like, pick a random name out of the air; if it's not going to be a framework, it's going to be a Pokemon. What is the distinguishing characteristic or characteristics of Angular?Mark: I like to describe Angular to people is that the value-add is going to be some really incredible developer ergonomics. And when I say that I'm thinking about the tooling. So, we put a lot of work into making sure that the tooling is really strong for developers, where you can jump in, you can get started and be productive. Then I think about scale, and how your application runs at scale, and how it works at scale for your teams. So, scale becomes a big part of the story that I tell, as well, for Angular.Corey: You spend an awful lot of time telling stories about Angular. I'm assuming most of them are true because people don't usually knowingly last very long in this industry when they just get up on stage and tell lies, other than, “This is how we do it in our company,” which is the aspirational conference-ware that we all wish we ran. You're also, according to your bio, which of course, is always in the [show notes 00:04:16], you're an award-winning university instructor. Now, award-winning—great. For someone who struggled mightily in academia, I don't know much about that world. What is it that you teach? How does being a university instructor work? I imagine it's not like most other jobs where you wind up showing up, solving algorithms on a whiteboard, and they say, “Great, can you start tomorrow?”Mark: Sure. So, when I was teaching at university, what I was teaching was mostly coding bootcamps. So, some universities have coding bootcamps that they run themselves. And so I was a part of some instructional teams that work in the university. And that's how I won the Teaching Excellence Award. So, the award that I won actually was the Distinguished Teaching Excellence Award, based on my performance at work when I was teaching at university.Corey: I want to be clear here, it's almost enough to make someone question whether you really were involved there because the first university, according to your background that you worked on was Northwestern, but then it was through the Harvard Extension School, and I was under the impression that doing anything involving Harvard was the exact opposite of an NDA, where you're contractually bound to mention that, “Oh, I was involved with Harvard in the following way,” at least three times at any given conversation. Can you tell I spent a lot of time dealing with Harvard grads?Mark: [laugh]. Yeah, Harvard is weird like that, where people who've worked there or gone there, it comes up as a first thing. But I'll tell the story about it if someone asks me, but I just like to talk about univer—that's why I say ‘university,' right? I don't say, “Oh, I won an award at Northwestern.” I just say, “University award-winning instructor.”The reason I say even the ‘award-winning', that part is important for credibility, specifically. It's like, hey, if I said I'm going to teach you something, I want you to know that you're in really good hands, and that I'm really going to do my best to help you. That's why I mention that a lot.Corey: I'll take that even one step further, and please don't take this as in any way me casting aspersions on some of your colleagues, but very often working at Google has felt an awful lot like that in some respects. I've never seen you do it. You've never had to establish your bona fides in a conversation that I've seen by saying, “Well, at Google this is how we do it.” Because that's a logical fallacy of appeal to authority in many respects. Yeah, I'm sure you do a lot of things at Google at a multinational trillion-dollar company that if I'm founding a four-person startup called Twitter for Pets might not necessarily be the same constraints that I'm faced with.I'm keenly appreciative folks who recognize that distinction and don't try and turn it into something else. We see it with founders, too, “Oh, we're a small scrappy startup and our founders used to work at Google.” And it's, “Hmm, I'm wondering if the corporate culture at a small startup might be slightly different these days.” I get it. It does resonate and it carries weight. I just wonder if that's one of those unexamined things that maybe it's time to dive into a bit more.Mark: Hmm. So, what's funny about that is—so people will ask me, what do I do? And it really depends on context. And I'll usually say, “Oh, I work for a company on the West Coast,” or, “For a tech company on the West Coast.” I'll just say that first.Because what I really want to do is turn the conversation back to the person I'm talking to, so here's where that unrelenting positivity kind of comes in because I'm looking at ways, how can I help boost you up? So first, I want to hear more about you. So, I'll kind of like—I won't shrink myself, but I'll just be kind of vague about things so I could hear more about you so we're not focused on me. In this case, I guess we are because I'm the guest, but in a normal conversation, that's what I would try to do.Corey: So, we've talked about JavaScript a little bit. We've talked about university a smidgen. Now, let me complete the trifecta of things that I know absolutely nothing about, specifically positivity on Twitter. You have been described to me as the mayor of wholesome Twitter. What is that about?Mark: All right, so let me be really upfront about this. This is not about toxic positivity. We got to get that out in the open first, before I say anything else because I think that people can hear that and start to immediately think, “Oh, this guy is just, you know, toxic positivity where no matter what's happening, he's going to be happy.” That is not the same thing. That is not the same thing at all.So, here's what I think is really interesting. Online, and as you know, as a person on Twitter, there's so many people out there doing damage and saying hurtful things. And I'm not talking about responding to someone who's being hurtful by being hurtful. I mean the people who are constantly harassing women online, or our non-binary friends, people who are constantly calling into question somebody's credibility because of, oh, they went to a coding bootcamp or they came from self-taught. All these types of ways to be really just harmful on Twitter.I wanted to start adding some other perspective of the positivity side of just being focused on value-add in our interactions. Can I craft this narrative, this world, where when we meet, we're both better off because of it, right? You feel good, I feel good, and we had a really good time. If we meet and you're having a bad time, at least you know that I care about you. I didn't fix you. I didn't, like, remove the issue, but you know that somebody cares about you. So, that's what I think wholesome positivity comes into play is because I want to be that force online. Because we already have plenty of the other side.Corey: It's easy for folks who are casual observers of my Twitter nonsense to figure, “Oh, he's snarky and he's being clever and witty and making fun of big companies”—which I do–And they tend to shorthand that sometimes to, “Oh, great. He's going to start dunking on people, too.” And I try mightily to avoid that it's punch up, never down.Mark: Mm-hm.Corey: I understand there's a school of thought that you should never be punching at all, which I get. I'm broken in many ways that apparently are entertaining, so we're going to roll with that. But the thing that incenses me the most—on Twitter in my case—is when I'll have something that I'll put out there that's ideally funny or engaging and people like it and it spreads beyond my circle, and then you just have the worst people on the internet see that and figure, “Oh, that's snarky and incisive. Ah, I'm like that too. This is my people.”I assure you, I am not your people when that is your approach to life. Get out of here. And curating the people who follow and engage with you on Twitter can be a full-time job. But oh man, if I wind up retweeting someone, and that act brings someone who's basically a jackwagon into the conversation, it's no. No-no-no.I'm not on Twitter to actively make things worse unless you're in charge of cloud pricing, in which case yes, I am very much there to make your day worse. But it's, “Be the change you want to see in the world,” and lifting people up is always more interesting to me than tearing people down.Mark: A thousand percent. So, here's what I want to say about that is, I think, punching up is fine. I don't like to moderate other people's behavior either, though. So, if you'd like punching up, I think it'd be funny. I laugh at jokes that people make.Now, is it what I'll do? Probably not because I haven't figured out a good way for me to do it that still goes along my core values. But I will call out stuff. Like if there's a big company that's doing something that's pretty messed up, I feel comfortable calling things out. Or when drama happens and people are attacking someone, I have no problem with just be like, “Listen, this person is a stand-up person.”Putting myself kind of like… just kind of on the front line with that other person. Hey, look, this person is being attacked right now. That person is stand-up, so if you got a problem them, you got a problem with me. That's not the same thing as being negative, though. That's not the same thing as punching down or harming people.And I think that's where—like I say, people kind of get that part confused when they think that being kind to people is a sign of weakness, which is—it takes more strength for me to be kind to people who may or may not deserve it, by societal standards. That I'll try to understand you, even though you've been a jerk right now.Corey: Twitter excels at fomenting outrage, and it does it by distancing us from being able to easily remember there's a person on the other side of these things. It is ways you're going to yell at someone, even my business partner in a text message. Whenever we start having conversations that get a little heated—which it happens; business partnership is like a marriage—it's oh, I should pick up the phone and call him rather than sending things that stick around forever, that don't reflect the context of the time, and five years later when I see it, I feel ashamed." I'm not here to advocate for other people doing things on Twitter the way that I do because what I do is clever, but the failure mode of clever in my case is being a complete jerk, and I've made that mistake a lot when I was learning to do it when my audience was much smaller, and I hurt people. And whenever I discovered that that is what happened, I went out of my way, and still do, to apologize profusely.I've gotten relatively good at having to do less of those apologies on an ongoing basis, but very often people see what I'm doing and try to imitate what they're seeing; it just comes off as mean. And that's not acceptable. That's not something that I want to see more of in the world. So, those are my failure modes. I have to imagine the only real failure mode that you would encounter with positivity is inadvertently lifting someone up who turns out to be a trash goblin.Mark: [laugh]. That and I think coming off as insincere. Because if someone is always positive or a majority of the time, positive, if I say something to you, and you don't know me that actually mean it, sincerity is incredibly hard to get over text. So, if I congratulate you on your job, you might be like, “Oh, he's just saying that for attention for himself because now he's being the nice guy again.” But sincerity is really, really hard to convey, so that's one of the failure modes is like I said, being sincere.And then lifting up people who don't deserve to be lifted up, yeah, that's happened before where I've engaged with people or shared some of their stuff in an effort to boost them, and find out, like you said, legit trash goblin, like, their home address is under a bridge because they're a troll. Like, real bad stuff. And then you have back off of that endorsement that you didn't know. And people will DM you, like, “Hey, I see that you follow this person. That person is a really bad person. Look at what they're saying right now.” I'm like, “Well, damn, I didn't know it was bad like that.”Corey: I've had that on the podcast, too, where I'll have a conversation with someone and then a year or so later, they'll wind up doing something horrifying, or something comes to light and the rest, and occasionally people will ask, “So, why did you have that person on this show?” It's yeah, it turns out that when we're having a conversation, that somehow didn't come up because as I'm getting background on people and understanding who they are and what they're about in the intake questionnaire, there is not a separate field for, “Are you terrible to women?” Maybe there should be, but that's something that it's—you don't see it. And that makes it easy to think that it's not there until you start listening more than you speak, and start hearing other people's stories about it. This is the challenge.As much as I aspire at times to be more positive and lift folks up, this is the challenge of social media as it stands now. I had a tweet the other day about a service that AWS had released with the comment that this is fantastic and the team that built it should be proud. And yeah, that got a bit of engagement. People liked it. I'm sure it was passed around internally, “Yay, the jerk liked something.” Fine.A month ago, they launched a different service, and my comment was just distilled down to, “This is molten garbage.” And that went around the tech internet three times. When you're positive, it's one of those, “Oh, great. Yeah, that's awesome.” Whereas when I savage things, it's, “Hey, he's doing it again. Come and look at the bodies.” Effectively the rubbernecking thing. “There's been a terrible accident, let's go gawk at it.”Mark: Right.Corey: And I don't quite know what to do with that because it leads to the mistaken and lopsided impression that I only ever hate things and I don't think that a lot of stuff is done well. And that's very much not the case. It doesn't restrict itself to AWS either. I'm increasingly impressed by a lot of what I'm seeing out of Google Cloud. You want to talk about objectivity, I feel the same way about Oracle Cloud.Dunking on Oracle was a sport for me for a long time, but a lot of what they're doing on a technical and on a customer-approach basis in the cloud group is notable. I like it. I've been saying that for a couple of years. And I'm gratified the response from the audience seems to at least be that no one's calling me a shill. They're saying, “Oh, if you say it, it's got to be true.” It's, “Yes. Finally, I have a reputation for authenticity.” Which is great, but that's the reason I do a lot of the stuff that I do.Mark: That is a tough place to be in. So, Twitter itself is an anomaly in terms of what's going to get engagement and what isn't. Sometimes I'll tweet something that at least I think is super clever, and I'm like, “Oh, yeah. This is meaningful, sincere, clever, positive. This is about to go bananas.” And then it'll go nowhere.And then I'll tweet that I was feeling a depression coming on and that'll get a lot of engagement. Now, I'm not saying that's a bad thing. It's just, it's never what I think. I thought that the depression tweet was not going to go anywhere. I thought that one was going to be like, kind of fade into the ether, and then that is the one that gets all the engagement.And then the one about something great that I want to share, or lifting somebody else up, or celebrating somebody that doesn't go anywhere. So, it's just really hard to predict what people are going to really engage with and what's going to ring true for them.Corey: Oh, I never have any idea of how jokes are going to land on Twitter. And in the before times, I had the same type of challenge with jokes in conference talks, where there's a joke that I'll put in there that I think is going to go super well, and the audience just sits there and stares. That's okay. My jokes are for me, but after the third time trying it with different audiences and no one laughs, okay, I should keep it to myself, then. Other times just a random throwaway comment, and I find it quoted in the newspaper almost. And it's, “Oh, okay.”Mark: [laugh].Corey: You can never tell what's going to hit and what isn't.Mark: Can we talk about that though? Like—Corey: Oh, sure.Mark: Conference talking?Corey: Oh, my God, no.Mark: Conference speaking, and just how, like—I remember one time I was keynoting—well I was emceeing and I had the opening monologue. And so [crosstalk 00:17:45]—Corey: We call that a keynote. It's fine. It is—I absolutely upgrade it because people know what you're talking about when you say, “I keynoted the thing.” Do it. Own it.Mark: Yeah.Corey: It's yours.Corey: So, I was emcee and then I did the keynote. And so during the keynote rehearsals—and this is for all the academia, right, so all these different university deans, et cetera. So, in the practice, I'm telling this joke, and it is landing, everybody's laughing, blah, blah, blah. And then I get in there, and it was crickets. And in that moment, you want to panic because you're like, “Holy crap, what do I do because I was expecting to be able to ride the wave of the laughter into my next segment,” and now it's dead silent. And then just that ability to have to be quick on your feet and not let it slow you down is just really hard.Corey: This episode is sponsored by our friends at Oracle HeatWave is a new high-performance accelerator for the Oracle MySQL Database Service. Although I insist on calling it “my squirrel.” While MySQL has long been the worlds most popular open source database, shifting from transacting to analytics required way too much overhead and, ya know, work. With HeatWave you can run your OLTP and OLAP, don't ask me to ever say those acronyms again, workloads directly from your MySQL database and eliminate the time consuming data movement and integration work, while also performing 1100X faster than Amazon Aurora, and 2.5X faster than Amazon Redshift, at a third of the cost. My thanks again to Oracle Cloud for sponsoring this ridiculous nonsense.Corey: It's a challenge. It turns out that there are a number of skills that are aligned but are not the same when it comes to conference talks, and I think that is something that is not super well understood. There's the idea of, “I can get on stage in front of a bunch of people with a few loose talking points, and just riff,” that sort of an improv approach. There's the idea of, “Oh, I can get on stage with prepared slides and have presenter notes and have a whole direction and theme of what I'm doing,” that's something else entirely. But now we're doing video and the energy is completely different.I've presented live on video, I've done pre-recorded video, but in either case, you're effectively talking to the camera and there is no crowd feedback. So, especially if you'd lean on jokes like I tend to, you can't do a cheesy laugh track as an insert, other than maybe once as its own joke. You have to make sure that you can resonate and engage with folks, but there are no subtle cues from the audience like half the front row getting up and walking out. You have to figure out what it is that resonates, what it is that doesn't, why people should care. And of course, distinguishing and differentiating between this video that you're watching now and the last five Zoom meetings that you've been on that look an awful lot the same; why should you care about this talk?Mark: The hardest thing to do. I think speaking remotely became such a big challenge. So, over time it became a little easier because I found some of the value in it, but it was still much harder because of all the things that you said. What became easier was that I didn't have to go to a place. That was easier.So, I could take three different conference talks in a day for three different organizations. So, that was easier. But what was harder, just like you said, not being able to have that energy of the crowd to know when you're on point because you look for that person in the audience who's nodding in agreement, or the person who's shaking their head furiously, like, “Oh, this is all wrong.” So, you might need to clarify or slow down or—you lose all your cues, and that's just really, really hard. And I really don't like doing video pre-recorded talks because those take more energy for me than they do the even live virtual because I have to edit it and I have to make sure that take was right because I can't say, “Oh, excuse me. Well, I meant to say this.”And I guess I could leave that in there, but I'm too much of a—I love public speaking, so I put so much pressure on myself to be the best version of myself at every opportunity when I'm doing public speaking. And I think that's what makes it hard.Corey: Oh, yeah. Then you add podcasts into the mix, like this one, and it changes the entire approach. If I stumble over my words in the middle of a sentence that I've done a couple of times already, on this very show, I will stop and repeat myself because it's easier to just cut that out in post, and it sounds much more natural. They'll take out ums, ahs, stutters, and the rest. Live, you have to respond to that very differently, but pre-recorded video has something of the same problem because, okay, the audio you can cut super easily.With video, you have to sort of a smear, and it's obvious when people know what they're looking at. And, “Wait, what was that? That was odd. They blew a take.” You can cheat, which is what I tend to do, and oh, I wind up doing a bunch of slides in some of my talks because every slide transition is an excuse to cut because suddenly for a split second I'm not on the camera and we can do all kinds of fun things.But it's all these little things, and part of the problem, too, with the pandemic was, we suddenly had to learn how to be A/V folks when previously we had the good fortune slash good sense to work with people who are specialist experts in this space. Now it's, “Well, I guess I am the best boy grip today,” whate—I'm learning what that means [laugh] as we—Mark: That's right.Corey: —continue onward. Ugh. I never signed up for this, but it's the thing that happens to you instead of what you plan on. I think that's called life.Mark: Feels right. Feels right, yeah. It's just one of those things. And I'm looking forward to the time after this, when we do get back to in-person talks, and we do get to do some things. So, I have a lot of hot takes around speaking. So, I came up in Toastmasters. Are you familiar with Toastmasters at all?Corey: I very much am.Mark: Oh, yeah. Okay, so I came up in Toastmasters, and for people at home who don't know, it's kind of like a meetup where you go and you actually practice public speaking, based on these props, et cetera. For me, I learned to do things like not say ‘um' and ‘ah' on stage because there's someone in the room counting every time you do it, and then when you get that review at the end when they give you your feedback, they'll call that out. Or when you say ‘like you know,' or too many ‘and so', all these little—I think the word is disfluencies that you use that people say make you sound more natural, those are things that were coached out with me for public speaking. I just don't do those things anymore, and I feel like there are ways for you not to do it.And I tweeted that before, that you shouldn't say ‘um' and ‘ah' and have someone tell me, “Oh, no, they're a natural part of language.” And then, “It's not natural and it could freak people out.” And I was like, “Okay. I mean, you have your opinion about that.” Like, that's fine, but it's just a hot take that I had about speaking.I think that you should do lots of things when you speak. The rate that you walk back and forth, or should you be static? How much should be on your slides? People put a lot of stuff on slides, I'm like, “I don't want to read your slides. I'd rather listen to you use your slides.” I mean, I can go on and on. We should have another podcast called, “Hey, Mark talks about public speaking,” because that is one of my jams. That and supporting people who come from different paths. Those two things, I can go on for hours about.Corey: And they're aligned in a lot of respects. I agree with you on the public speaking. Focusing on the things that make you a better speaker are not that hard in most cases, but it's being aware of what you're doing. I thought I was a pretty good speaker when I had a coach for a little while, and she would stand there, “Give just the first minute of your talk.” And she's there and writing down notes; I get a minute in and it's like, “Okay, I can't wait to see what she doesn't like once I get started.” She's like, “Nope. I have plenty. That will cover us for the next six weeks.” Like, “O…kay? I guess she doesn't know what she's doing.”Spoiler she did, in fact, know what she was doing and was very good at it and my talks are better for it as a result. But it comes down to practicing. I didn't have a thing like Toastmasters when I was learning to speak to other folks. I just did it by getting it wrong a lot of times. I would speak to small groups repeatedly, and I'd get better at it in time.And I would put time-bound on it because people would sit there and listen to me talk and then the elevator would arrive at our floor and they could escape and okay, they don't listen to me publicly speaking anymore, but you find time to practice in front of other folks. I am kidding, to be clear. Don't harass strangers with public speaking talks. That was in fact a joke. I know there's at least one person in the audience who's going to hear that and take notes and think, “Ah, I'm going to do that because he said it's a good idea.” This is the challenge with being a quote-unquote, “Role model” sometimes. My role model approach is to give people guidance by providing a horrible warning of what not to do.Mark: [laugh].Corey: You've gone the other direction and that's kind of awesome. So, one of the recurring themes of this show has been, where does the next generation come from? Where do we find the next generation of engineer, of person working in cloud in various ways? Because the paths that a lot of us walked who've been in this space for a decade or more have been closed. And standing here, it sounds an awful lot like, “Oh, go in and apply for jobs with a firm handshake and a printed copy of your resume and ask to see the manager and you'll have a job before dark.”Yeah, what worked for us doesn't work for people entering the workforce today, and there have to be different paths. Bootcamps are often the subject of, I think, a deserved level of scrutiny because quality differs wildly, and from the outside if you don't know the space, a well-respected bootcamp that knows exactly what it's doing and has established long-term relationships with a number of admirable hiring entities in the space and grifter who threw together a website look identical. It's a hard problem to solve. How do you view teaching the next generation and getting them into this space, assuming that that isn't something that is morally reprehensible? And some days, I wonder if exposing this industry to folks who are new to it isn't a problem.Mark: No, good question. So, I think in general—so I am pro bootcamp. I am pro self-taught. I was not always. And that's because of personal insecurity. Let's dive into that a little bit.So, I've been writing code since I was probably around 14 because I was lucky enough to go to a high school to had a computer science program on the south side of Chicago, one school. And then when I say I was lucky, I was really lucky because the school that I went to wasn't a high resource school; I didn't go to a private school. I went to a public school that just happened that one of the professors from IIT, also worked on staff a few days a week at my school, and we could take programming classes with this guy. Total luck. And so I get into computer science that way, take AP Computer Science in high school—which is, like, the pre-college level—then I go into undergrad, then I go into grad school for computer science.So, like, as traditional of a path that you can get. So, in my mind, it was all about my sweat equity that I had put in that disqualified everybody else. So, Corey, if you come from a bootcamp, you haven't spent the time that I spent learning to code; you haven't sweat, you haven't had to bleed, you haven't tried to write a two's complement algorithm on top of your other five classes for that semester. You haven't done it, definitely you don't deserve to be here. So, that was so much of my attitude, until—until—I got the opportunity to have my mind completely blown when I got asked to teach.Because when I got to asked to teach, I thought, “Yeah, I'm going to have my way of going in there and I'm going to show them how to do it right. This is my chance to correct these coding bootcampers and show them how it goes.” And then I find these people who were born for this life. So, some of us are natural talents, some of us are people who can just acquire the talent later. And both are totally valid.But I met this one student. She was a math teacher for years in Chicago Public Schools. She's like, “I want a career change.” Comes to the program that I taught at Northwestern, does so freaking well that she ends up getting a job at Airbnb. Now, if you have to make her go back four years at university, is that window still open for her? Maybe not.Then I meet this other woman, she was a paralegal for ten years. Ten years as a paralegal was the best engineer in the program when I taught, she was the best developer we had. Before the bootcamp was over, she had already gotten the job offer. She was meant for this. You see what I'm saying?So, that's why I'm so excited because it's like, I have all these stories of people who are meant for this. I taught, and I met people that changed the way I even saw the rest of the world. I had some non-binary trans students; I didn't even know what pronouns were. I had no idea that people didn't go by he/him, she/her. And then I had to learn about they and them and still teach you code without misgendering you at the same time, right because you're in a classroom and you're rapid-fire, all right, you—you know, how about this person? How about that person? And so you have to like, it's hard to take—Corey: Yeah, I can understand async, await, and JavaScript, but somehow understanding that not everyone has the pronouns that you are accustomed to using for people who look certain ways is a bridge too far for you to wrap your head around. Right. We can always improve, we can always change. It's just—at least when I screw up async, await, I don't make people feel less than. I just make—Mark: Totally.Corey: —users feel that, “Wow, this guy has no idea how to code.” You're right, I don't.Mark: Yeah, so as I'm on my soapbox, I'll just say this. I think coding bootcamps and self-taught programs where you can go online, I think this is where the door is the widest open for people to enter the industry because there is no requirement of a degree behind this. I just think that has just really opened the door for a lot of people to do things that is life-changing. So, when you meet somebody who's only making—because we're all engineers and we do all this stuff, we make a lot of money. And we're all comfortable. When you meet somebody where they go from 40,000 to 80,000, that is not the same story for—as it is for us.Corey: Exactly. And there's an entire school of thought out there that, “Oh, you should do this for the love because it is who you are, it is who you were meant to be.” And for some people, that's right, and I celebrate and cherish those folks. And there are other folks for whom, “I got into tech because of the money.” And you know what?I celebrate and cherish those folks because that is not inherently wrong. It says nothing negative about you whatsoever to want to improve your quality of life and wanting to support your family in varying ways. I have zero shade to throw at either one of those people. And when it comes to which of those two people do I want to hire, I have no preference in either direction because both are valid and both have directions that they can think in that the other one may not necessarily see for a variety of reasons. It's fine.Mark: I wanted to be an engineering manager. You know why? Not because I loved leadership; because I wanted more money.Corey: Yes.Mark: So, I've been in the industry for quite a long time. I'm a little bit on the older side of the story, right? I'm a little bit older. You know, for me, before we got ‘staff' and ‘principal' and all this kind of stuff, it was senior software engineer and then you topped out in terms of your earning potential. But if you wanted more, you became a manager, director, et cetera.So, that's why I wanted to be a manager for a while; I wanted more money, so why is my choice to be a manager more valuable than those people who want to make more money by coming into engineering or software development? I don't think it is.Corey: So, we've talked about positivity, we've talked about dealing with unpleasant people, we've talked about technology, and then, of course, we've talked about getting up on soapboxes. Let's tie all of that together for one last topic. What is your position on open-source in cloud?Mark: I think open-source software allows us to do a lot of incredible things. And I know that's a very light, fluffy, politically correct answer, but it is true, right? So, we get to take advantage of the brains of so many different people, all the ideas and contributions of so many different people so that we can do incredible things. And I think cloud really makes the world more accessible in general because—so when I used to do websites, I had to have a physical server that I would have to, like, try to talk to my ISP to be able to host things. And so, there was a lot of barriers to entry to do things that way.Now, with cloud and open-source, I could literally pick up a tool and deploy some software to the cloud. And the tool could you open-source so I can actually see what's happening and I could pick up other tools to help build out my vision for whatever I'm creating. So, I think open-source just gives a lot of opportunity.Corey: Oh, my stars, yes. It's even far more so than when I entered the field, and even back then there were challenges. One of the most democratizing aspects of cloud is that you can work with the same technologies that giant companies are using. When I entered the workforce, it's, “Wow, you're really good with Apache, but it seems like you don't really know a whole lot about the world of enterprise storage. What's going on with that?”And the honest answer was, “Well, it turns out that on my laptop, I can compile Apache super easily, but I'm finding it hard, given that I'm new to the workforce, to afford a $300,000 SAN in my garage, so maybe we can wind up figuring out that there are other ways to do it.” That doesn't happen today. Now, you can spin something up in the cloud, use it for a little bit. You're done, turn it off, and then never again have to worry about it except over in AWS land where you get charged 22 cents a month in perpetuity for some godforsaken reason you can't be bothered to track down and certainly no one can understand because, you know, cloud billing.Mark: [laugh].Corey: But if that's the tax versus the SAN tax, I'll take it.Mark: So, what I think is really interesting what cloud does, I like the word democratization because I think about going back to—just as a lateral reference to the bootcamp thing—I couldn't get my parents to see my software when I was in college when I made stuff because it was on my laptop. But when I was teaching these bootcamp students, they all deployed to Heroku. So, in their first couple of months, the cloud was allowing them to do something super cool that was not possible in the early days when I was coming up, learning how to code. And so they could deploy to Heroku, they could use GitHub Pages, you know like, open-source still coming into play. They can use all these tools and it's available to them, and I still think to me that is mind-blowing that I would have to bring my physical laptop or desktop home and say, “Mom, look at this terminal window that's doing this algorithm that I just did,” versus what these new people can do with the cloud. It's like, “Oh, yeah, I want to build a website. I want to publish it today. Publish right now.” Like, during our conversation, we both could have probably spent up a Hello World in the cloud with very little.Corey: Well, you could have. I could have done it in some horrifying way by using my favorite database: DNS. But that's a separate problem.Mark: [laugh]. Yeah, but I go to Firebase deploy and create a quick app real quick; Firebase deploy. Boom, I'm in the cloud. And I just think that the power behind that is just outstanding.Corey: If I had to pick a single cloud provider for someone new to the field to work with, it would be Google Cloud, and it's not particularly close. Just because the developer experience for someone who has not spent ten years marinating in cloud is worlds apart from what you're going to see in almost every other provider. I take it back, it is close. Neck-and-neck in different ways is also DigitalOcean, just because it explains things; their documentation is amazing and it lets people get started. My challenge with DigitalOcean is that it's not thought of, commonly, as a tier-one cloud provider in a lot of different directions, so the utility of learning how that platform works for someone who's planning to be in the industry for a while might potentially not get them as far.But again, there's no wrong answer. Whatever interests you, whenever you have to work on, do it. The obvious question of, “What technology should I learn,” it's, “Well, the ones that the companies you know are working with,” [laugh] so you can, ideally, turn it into something that throws off money, rather than doing it in your spare time for the love of it and not reaping any rewards from it.Mark: Yeah. If people ask me what should they use it to build something? And I think about what they want to do. And I also will say, “What will get you to ship the fastest? How can you ship?”Because that's what's really important for most people because people don't finish things. You know, as an engineer, how many side projects you probably have in the closet that never saw the light of day because you never shipped. I always say to people, “Well, what's going to get you to ship?” If it's View, use View and pair that with DigitalOcean, if that's going to get you to ship, right? Or use Angular plus Google Cloud Platform if that's going to get you to ship.Use what's going to get you to ship because—if it's just your project you're trying to run on. Now, if it's a company asking me, that's a consulting question which is a different answer. We do a much more in-detail analysis.Corey: I want to thank you so much for taking the time to speak with me about, honestly, a very wide-ranging group of topics. If people want to learn more about who you are, how you think, what you're up to, where can they find you?Mark: You can always find me spreading the love, being positive, hanging out. Look, if you want to feel better about yourself, come find me on Twitter at @marktechson—M-A-R-K-T-E-C-H-S-O-N. I'm out there waiting for you, so just come on and have a good time.Corey: And we will, of course, throw links to that in the [show notes 00:36:45]. Thank you so much for your time today.Mark: Oh, it's been a pleasure. Thanks for having me.Corey: Mark Thompson, developer relations engineer at Google. 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, deranged comment that you spent several weeks rehearsing in the elevator.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.
Join myself (@shellsharks) and my good friend Mike (@QWORDsmith) as we discuss the new OWASP Top 10 for 2021. Note on this episode: My audio was incredibly quiet during the recording so when editing I had to pump up the volume which introduced a fair bit of static. I apologize and hope the episode is bearable despite that static! Show Notes Preshow Simplenote: https://simplenote.com Notion: https://www.notion.so Obsidian: https://obsidian.md Visual Studio Code: https://code.visualstudio.com Notepad++: https://notepad-plus-plus.org/downloads/ GitHub Pages: https://pages.github.com Atom: https://atom.io Main Show Funny OWASP Top 10 2021 Tweet - https://twitter.com/CubicleApril/status/1437531584119386116?s=20 Infosec Blogs: https://shellsharks.com/infosec-blogs An Ode to RSS: https://shellsharks.com/an-ode-to-rss Shortcuts: https://apps.apple.com/us/app/shortcuts/id915249334 Netsparker Article on OWASP Top 10 2021: https://www.netsparker.com/blog/web-security/owasp-top-10-2021-not-what-you-think/ OWASP Top 10: https://owasp.org/www-project-top-ten/ OWASP ASVS: https://owasp.org/www-project-application-security-verification-standard/ OWASP Top 10 2010: https://owasp.org/www-pdf-archive/OWASP_Top_10_-_2010.pdf OWASP Top 10 2013: https://owasp.org/www-pdf-archive/OWASP_Top_10_-_2013.pdf OWASP Top 10 2017: https://owasp.org/www-pdf-archive//OWASP-Top-10-2017-en.pdf OMIGOD: https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure That's some Galen Eros level shit: https://www.reddit.com/r/cybersecurity/comments/podx9q/omigod_widespread_azure_linux_vulns_in_hidden/ ChaosDB: https://chaosdb.wiz.io
Join myself (@shellsharks) and my good friend Mike (@QWORDsmith) as we discuss the new OWASP Top 10 for 2021. Note on this episode: My audio was incredibly quiet during the recording so when editing I had to pump up the volume which introduced a fair bit of static. I apologize and hope the episode is bearable despite that static! Show Notes Preshow Simplenote: https://simplenote.com Notion: https://www.notion.so Obsidian: https://obsidian.md Visual Studio Code: https://code.visualstudio.com Notepad++: https://notepad-plus-plus.org/downloads/ GitHub Pages: https://pages.github.com Atom: https://atom.io Main Show Funny OWASP Top 10 2021 Tweet - https://twitter.com/CubicleApril/status/1437531584119386116?s=20 Infosec Blogs: https://shellsharks.com/infosec-blogs An Ode to RSS: https://shellsharks.com/an-ode-to-rss Shortcuts: https://apps.apple.com/us/app/shortcuts/id915249334 Netsparker Article on OWASP Top 10 2021: https://www.netsparker.com/blog/web-security/owasp-top-10-2021-not-what-you-think/ OWASP Top 10: https://owasp.org/www-project-top-ten/ OWASP ASVS: https://owasp.org/www-project-application-security-verification-standard/ OWASP Top 10 2010: https://owasp.org/www-pdf-archive/OWASP_Top_10_-_2010.pdf OWASP Top 10 2013: https://owasp.org/www-pdf-archive/OWASP_Top_10_-_2013.pdf OWASP Top 10 2017: https://owasp.org/www-pdf-archive//OWASP-Top-10-2017-en.pdf OMIGOD: https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure That's some Galen Eros level shit: https://www.reddit.com/r/cybersecurity/comments/podx9q/omigod_widespread_azure_linux_vulns_in_hidden/ ChaosDB: https://chaosdb.wiz.io
44bits 팟캐스트 121번째 로그에서는 깃헙 장애, StackOverflow 매각, freenode 직원 이탈에 대해서 이야기를 나누었습니다. 참가자: @seapy, @raccoonyy, @outsideris, @ecleya 정기 후원 - 44bits podcast are creating 프로그래머들의 팟캐스트 녹음일 6월 17일, 공개일 7월 8일 쇼노트: https://stdout.fm/121/ 주제별 바로 듣기 00:00 후원 01:08 깃헙 장애 03:38 PolarDB for PostgreSQL 16:18 오픈소스 Email Alias - SimpleLogin 23:24 StackOverflow 매각 39:13 네이버 소프트웨어 서비스 종료 41:55 freenode 직원 이탈 쇼노트 깃헙 장애 GitHub Status - Incident with GitHub Actions, API Requests, Git Operations, Issues, GitHub Packages, GitHub Pages, Pull Requests, and Webhooks PolarDB for PostgreSQL PolarDB for PostgreSQL Ant Design - The world's second most popular React UI framework Deno - A secure runtime for JavaScript and TypeScript - DenoLand TOAST UI :: Make Your Web Delicious! 오픈소스 Email Alias - SimpleLogin SimpleLogin | Open-source email alias solution StackOverflow 매각 Stack Overflow Sold to Tech Giant Prosus for $1.8 Billion - WSJ Prosus Joel on Software Coding Horror Jeff Atwood - Wikipedia Joel Spolsky - Wikipedia 네이버 소프트웨어 서비스 종료 네이버 소프트웨어 서비스 종료 안내 freenode 직원 이탈 Freenode IRC staff resign en masse after takeover by Korea's “crown prince” | Ars Technica Libera Chat | A next-generation IRC network for FOSS projects collaboration! Discord | Your Place to Talk and Hang Out Welcome to your new HQ | Slack Redmine Apache Subversion The Trac Project Google Wave - Wikipedia
As promised, Bart takes us through the final step in our GitHub journey - learning how to contribute to an open source project. He explains three open source scenarios: using someone's code exactly as-is, using their code with a few customizations of your own, and finally the most interesting scenario, customizing the code and contributing your customizations back to the project. When he gets to the final scenario, he gives us a way to practice these newly-acquired skills, and it's something he's wanted to do for a long time. He's created a gallery for all Programming By Stealth listeners to contribute their work they've done in the various challenges we've worked in Programming By Stealth. If you have your code from the challenges for Conway's Game of Life, the number guessing game, the currency converter, the currency grid, the world clock or the time sharing clock, we'd love to have you contribute to the PBS gallery to show off your work. Bart explains that the GitHub Pages he's created will allow us to fork his code, make our own changes, and then create what's called a pull request to get them accepted into the official PBS Gallery at gallery.pbs.bartificer.net. I worked through the process for one of my projects and it was definitely a learning experience, which is the whole point of Programming By Stealth. Bart's fantastic tutorial shownotes are availale at [pbs.bartificer.net/...](https://pbs.bartificer.net/pbs119)
As promised, Bart takes us through the final step in our GitHub journey - learning how to contribute to an open source project. He explains three open source scenarios: using someone's code exactly as-is, using their code with a few customizations of your own, and finally the most interesting scenario, customizing the code and contributing your customizations back to the project. When he gets to the final scenario, he gives us a way to practice these newly-acquired skills, and it's something he's wanted to do for a long time. He's created a gallery for all Programming By Stealth listeners to contribute their work they've done in the various challenges we've worked in Programming By Stealth. If you have your code from the challenges for Conway's Game of Life, the number guessing game, the currency converter, the currency grid, the world clock or the time sharing clock, we'd love to have you contribute to the PBS gallery to show off your work. Bart explains that the GitHub Pages he's created will allow us to fork his code, make our own changes, and then create what's called a pull request to get them accepted into the official PBS Gallery at gallery.pbs.bartificer.net. I worked through the process for one of my projects and it was definitely a learning experience, which is the whole point of Programming By Stealth. Bart's fantastic tutorial shownotes are availale at [pbs.bartificer.net/...](https://pbs.bartificer.net/pbs119)
In this installment of Programming By Stealth, Bart Busschots teaches us how to use a free service of GitHub called GitHub Pages. This service literally gives you free web hosting for the web apps we've learned to make in Programming By Stealth. Bart starts by explaining to us the difference between static and dynamic webpages, and web pages created by static site generators like Jekyll which generates GitHub Pages. It's trivially easy to create a GitHub Page from an open GitHub repo (literally three clicks in the interface) but it's really important to understand what you're doing when you take advantage of this service. We'll learn what you can do and what you can't do and what you could do if you choose to dig deeper into the woods on how to use Jekyll to generate GitHub Pages. I'm really excited to learn about GitHub Pages and how easy it is to host all of the web apps we've created in this series. You can find the shownotes at pbs.bartificer.net/...
In this installment of Programming By Stealth, Bart Busschots teaches us how to use a free service of GitHub called GitHub Pages. This service literally gives you free web hosting for the web apps we've learned to make in Programming By Stealth. Bart starts by explaining to us the difference between static and dynamic webpages, and web pages created by static site generators like Jekyll which generates GitHub Pages. It's trivially easy to create a GitHub Page from an open GitHub repo (literally three clicks in the interface) but it's really important to understand what you're doing when you take advantage of this service. We'll learn what you can do and what you can't do and what you could do if you choose to dig deeper into the woods on how to use Jekyll to generate GitHub Pages. I'm really excited to learn about GitHub Pages and how easy it is to host all of the web apps we've created in this series. You can find the shownotes at pbs.bartificer.net/...
Now that you know the fundamentals of GitHub, Dr. G will show you how to use GitHub more effectively as a communication and collaboration tool. One way to do this, is to learn Markdown. Markdown is a programing language that easy to learn and can help you organize your thoughts through code, images, lists, and tables.In this recap episode of Learn with Dr. G, you will learn what GitHub-Flavored Markdown (GFM) is and how to use it effectively and how to set up and utilize GitHub Pages to promote your projects.Follow along with the module at https://aka.ms/LearnWithDrG/MarkdownAndGitHub This is part of our Learn with Dr. G mini series "What you didn't Learn in School", where we explore all the tips and tricks for professional development that they don't always teach you! You can check out the previous episodes at https://aka.ms/LearnWithDrG/WYDLIS_Videos
♦ Connect! I'd love to say hey; follow me over on Twitter. Want to show the show some quick love? Thank you! You can buy me a coffee here. Please leave a review on Apple Podcasts! ♥ This week's episode: Static Site GeneratorsThese things are awesome. Super fast load pages with a zillion use-cases. List of Static Site Generators Hugo (which I'm currently using) GitHub Pages for hosting and deploying a simple site at [.github.io] Netlify for auto-deployment from Github or GitLab etc My GitHub Repo for the current site Current site at eamonncottrell.com ♠ I Want to HackI Want to Hack began documenting my desire to code and explore software engineering in the early 2012's, and re-emerged in 2020 after many years of working in small business, starting an engineering degree and doing a bunch of self learning in the web-development world.♣ Undertow & Eamonn I Want to Hack is part of The Undertow Podcast Network. I am COO at Cups, and aspiring software founder. I enjoy hanging with my family, running ultramarathons, playing piano, launching podcasts, and drinking great coffee.
第五期!欢迎回来。2020年的Web开发是怎样的?以我们的前端工程师Perry带路,展开对静态网站生成器的回溯以及当下新鲜的JAMStack工作流的学习讨论。 你们的Host: Perry,阿潦,李松 联系我们可写信至 terminal.podcast.cn@gmail.com 或加入telegram听众群组 (https://t.me/joinchat/Gnvz6xnAtqRBnqIbjmuskg) 剪辑: 阿潦 音乐: Pulse 23 from Compassion through Algorithms (https://algorave-tokyo.bandcamp.com/) Show notes Part 1: 静态网站和JAMStack是? 静态网站生成器(Static Site Generator) (https://www.staticgen.com/):设计用来创建静态网站的软件包。 JAMStack (https://jamstack.org/):JavaScript, APIs, 和 Markup的首字母缩写,一个近几年(可能是3年?)在Web开发快速火爆的热词。 Jekyll (https://jekyllrb.com/): 来自Github合作创始人之一Tom Preston-Werner的静态网站生成器,Github官方支持的选择。 Org mode for Emacs (https://orgmode.org/): 始于2003年的Emacs编辑模式,主要用来日常效率管理和文档记录。 Gatsby.js (https://www.gatsbyjs.org/): 基于React JS的静态网站生成器,用短短的时间已入住前端开发的工具箱之一。在2018年成立公司来支持项目继续发展,推出Gatsby Cloud (https://www.gatsbyjs.com/about/)。 Part 2: 静态网站的优势 共享主机(Shared web hosting service) (https://en.wikipedia.org/wiki/Shared_web_hosting_service) Heroku (https://www.heroku.com/): "最元祖的云平台之一" - 中文维基百科 高可用性(High availability) (https://en.wikipedia.org/wiki/High_availability): 计算机系统特性常用到的术语,“指系统无中断地执行其功能的能力”。 "IT公司为求产品上线顺利要求全体员工烧香拜佛" (http://www.chinanews.com/cul/2016/02-18/7762292.shtml) Create React App (https://create-react-app.dev/docs/getting-started/): React社区的官方脚手架工具。 "Webpack配置是世界上最难的编程语言" (https://twitter.com/horse_js/status/1266393469590867968) CDN(内容分发网络) (https://zh.wikipedia.org/wiki/%E5%85%A7%E5%AE%B9%E5%82%B3%E9%81%9E%E7%B6%B2%E8%B7%AF) Part 3: JAMStack 适合各种网站吗 最终一致性 (https://en.wikipedia.org/wiki/Eventual_consistency) LAMP (https://en.wikipedia.org/wiki/LAMP_(software_bundle)): 曾经很流行的Web服务架构。 Wordpress (https://wordpress.org/): 超流行的开源博客/内容管理系统,世界上最流行的Top 一千万的网站中有1/3基于Wordpres (https://w3techs.com/technologies/overview/content_management)。 wp-graphql (https://www.wpgraphql.com/): 让你的Wordpress 实例拥有一个GraphlQL API。 Headless CMS (https://en.wikipedia.org/wiki/Headless_content_management_system): 无头的CMS(内管管理系统),通过暴露API供客户端使用。 NoBackends (http://nobackend.org/): 一种美好的无后端开发模式,任何功能幻想可以在Javascript中的一行函数实现。 Part4: 上手的选择 Gatsby.js (https://www.gatsbyjs.org/): 基于React JS的静态网站生成器,用短短的时间已入住前端开发的工具箱之一。在2018年成立公司来支持项目继续发展,推出Gatsby Cloud (https://www.gatsbyjs.com/about/)。 11ty (https://www.11ty.dev/): Node.JS写成的更简单的静态网站生成器。著名案例包括Google的web.dev (https://web.dev/) 和 v8.dev (https://v8.dev/)。 更正: 开发者来自Netlify而非Google Vercel (曾用名 ZEIT) (https://vercel.com/): 另一个流行的托管平台。可以看看最近官方的更名Post:ZEIT is now Vercel (https://vercel.com/blog/zeit-is-now-vercel)。 Netlify (https://www.netlify.com/): 2016创建于旧金山,专注于静态网站托管的服务。深受独立Web开发者喜爱。免费量大,具体团队价格可参考 (https://www.netlify.com/pricing/)。 Github Pages (https://pages.github.com/): 整合在Github仓库的静态网站服务,数不过来的流行开源项目的主页host在此。 strapi (https://strapi.io/): 基于Node.JS的开源Headless CMS,设计为与静态网站设计结合使用。 Picks: 李松 wptools (https://github.com/siznax/wptools/) by Steve Sisney, 为人类设计的维基百科工具。 Perry 《金字塔原理》 (https://book.douban.com/subject/1020644/), 关于整合思维逻辑的书。 阿潦 最后生还者:第二幕 The Last of Us Part II (https://www.playstation.com/en-gb/games/the-last-of-us-part-ii-ps4/), 峰(反)回(复)路(横)转(跳)的剧情向大作(或是25小时泰勒吉他广告片。
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutDennis is a veteran architect in the .NET space with a special interest in writing clean code, Domain Driven Design, Event Sourcing and everything agile. He specializes in designing enterprise solutions based on the .NET technologies as well as providing coaching on all aspects of designing, building and maintaining enterprise systems. He is the author of www.fluentassertions.com, a very popular .NET assertion framework, www.liquidprojections.net, a set of libraries for building Event Sourcing architectures and he has been maintaining coding guidelines for C# on www.csharpcodingguidelines.com since 2001. He also keeps a blog on his everlasting quest for better solutions at www.continuousimprover.com. You can reach him on twitter through @ddoomen.Show resources:www.fluentassertions.comwww.liquidprojections.netwww.csharpcodingguidelines.com Dennis's GitHub profileDennis's blog: www.continuousimprover.comFollow Dennis on Twitter: https://twitter.com/ddoomenSlides of the presentation Trials and tribulations of a successful open-source project Full transcript:Barry Luijbregts 0:17 Welcome to another episode of developer weekly. This week I'm talking with Dennis Dolman about managing a successful open source project. Dennis is a veteran architect in the dotnet space with a special interest in writing clean code, domain driven design, event sourcing and everything agile. He specializes in designing enterprise solutions based on the dotnet technologies, as well as providing coaching on all aspects of designing, building and maintaining enterprise systems is the author of fluent assertions.com a very popular dotnet assertion framework, liquid projections dotnet a set of libraries for building event sourcing architectures, and he has been maintaining coding guidelines for C sharp on C sharp coding guidelines.com since 2001. He also keeps a blog on his everlasting quest for better solutions at continuous improver.com you can reach him at Twitter through Dennis Doomen. Hey, welcome To the show, Dennis, thank you for your time. Also, how are you doing? Dennis Doomen 2:03 Great, thank you for asking. Yeah, really great. By the way, my Twitter handle is d Doman doing Yes. Yeah. Yes. Barry Luijbregts 2:12 I will put all of this in the show notes so that people can check you out and follow you from there. Dennis Doomen 2:19 If you read up the bio like that, and then it's like, really? Is that me? Am I really doing all this stuff? And then I think like, yeah, I'm actually doing all this stuff. Not as active as I used to be. But still, yeah. Barry Luijbregts 2:33 You seem pretty busy indeed. Dennis Doomen 2:35 is the combination of 23 years of software development, and I have a lot of passions. But yeah, to be honest, since this topic is about open source, it's sometimes struggling to find the time to work on all these things at the same time, so it is a lot of things. Yeah, Barry Luijbregts 2:51 I can imagine. So your your bio says that you are an architect, right? Does that mean that you just draw pictures all day? Dennis Doomen 3:00 I like to believe in according architect, I don't really believe in architects that just, indeed draw pictures and PowerPoint or dry or something. I really like to be part of the development team. So generally, I spend about 30% of my time on coding. And the rest is, you know, the typical things that architect does. meetings, alignments, code reviews, and the drawing a PowerPoint picture occasionally. I have to say, the last couple of weeks, I've been particularly busy with alignment related works. So most of my coding happens in the evening, unfortunately, but that will change soon again. But Up to now, yeah, I've managed to spend almost half of my time still on production code. Barry Luijbregts 3:43 That's excellent. Yeah, cuz that's fun, isn't it? Dennis Doomen 3:46 Oh, yeah. I mean, I just said I spent the last four weeks not doing it. And I really, really miss it. You know, working with team building something that goes into production. I'm a finisher person. So I like to build something put production, see how it runs, optimize it. That is my I'm not the person that starts new things and then moves on. I love to finish things and really make it production ready. Barry Luijbregts 4:10 Right. That's very good. So today I wanted to talk to you about open source, you have a lot of open source projects. So I want to talk about what you're doing and how you make it successful and aspects of open source. But let's just take a step back for the listener and talk about what open source is. So to you what actually is open source and what's the alternative and why does it exist? Dennis Doomen 4:38 That's a good question and think about this. Open source is, is software that you can use for free of course, that's the the generic generic definition that most people understand. But it doesn't come for free. I mean, it is free, but it doesn't come for free. If you use open source over for me, it means that that's kind of a policy that I use it myself as much Clients projects is that if you use something like that, you need to make sure that either there's a big group of people behind that. So it's there to last, you know, they and the group is capable of providing support, or the quality of that code needs to be good enough that in case, the author authors that that were behind a project, abandon the product project, that you're capable of taking that code and make it your own, because in the end, it is still something that you are responsible for. And, yeah, so that means that you if you use some open source library, you have to you have to actually make sure it makes sense, you know, which also includes the vulnerabilities the how fast people react to issues, do they accept pull requests, how well is the documentation written, doesn't have proper tests, unit tests that will also help you understand? So I actually just as critical to open source as I am to the code that I'm writing myself or the team is writing. So yeah, so and the conference Or the alternative, of course, is commercial software, which also comes with the pros and cons. Yes, you get good support. Of course you pay for that. But there's also risk that because it's proprietary, and it's closed. And if you find a bug or something like that you kind of left to the gods to fix the buck in time, which is a bit easier with open source software. Barry Luijbregts 6:22 Right. So, open source software is open as in you can see the source you can contribute to the source and it is generally free, right? And then close software, you need to pay for it. And it's all a black box, basically. Dennis Doomen 6:36 Yeah, but you get something in return, of course, you get support. In general, you get support. Usually, commercial software is also a bit more tested regularly. But again, you have to depends what open source software you use. If you use some some obscure library. That usually is not the case. But if you use one of the popular libraries, especially the Java or JavaScript world, of course, you get like good support for that. Barry Luijbregts 6:59 Right because That's obviously the the the nightmare scenario where you rely heavily on an open source project in your production software, and then it gets abandoned. Dennis Doomen 7:09 Yeah, doesn't get updated. happens. I mean, it's almost inevitable. Sometimes people just abandon the product because it's been replaced by something more mature, or maybe Microsoft has built something similar. It always happens. I know, for instance, a very popular logging library called lib blog, which was beautiful because it didn't add the requirement or didn't add a dependency to your project, just a couple of source files. And which would make your code independent of the specific logging library has been abandoned because Microsoft now has created their own abstraction in HPF in dotnet core, right, there's good reasons for that. And that means you need to you need to move away from that. Yeah, sometimes it's not entirely clear what the future is a I've been a very active user of an hibernate for years. The dotnet open Object relational mapper. For a while it looked like it was kind of dead in the water. And now it's getting traction again. But of course, we have Microsoft Entity Framework, which is supposed to be competitor. Yeah, of course, the one from Microsoft is supported by Microsoft, it's part of the built that framework. And that is a trade off that you're going to take. It has less features, you know, versus an open source thing. He said, with more and more projects, I noticed proxy kits, which is something that colleague from the dotnet community, they mean he created, which is a beautiful little proxy that you can use in your dotnet application without the deployment footprint, which serves a real purpose. But since Microsoft is not building something inside the dotnet framework, he decided to abandon it or to stop developing. This is normal. This will happen eventually. Barry Luijbregts 8:49 Yeah, absolutely. I can imagine plus people get busy and just, you know, start doing other things with their lives. Dennis Doomen 8:55 Of course, they get children, they shift focus, they move to a different platform, and No, that happens all the time. Yeah. But I'm still here. I'm still here. I don't have to go away. Barry Luijbregts 9:07 Yeah. And we can rely on you to just keep pulling these great open source projects forwards. Dennis Doomen 9:12 Well, the good thing is I'm not pulling it down myself alone. I mean, there's more people involved. That is also crucial, of course. Yeah. Barry Luijbregts 9:19 All right. Let's talk a bit about that. So let's let's first start with your open source contributions. You have a lot, you have fluid assertions, you have liquid projections and C sharp coding line guidelines. Why did you start those? Dennis Doomen 9:34 Yeah, and they also have, I think, fluid caching, and caching and I have beacon which is a built light tool. Barry Luijbregts 9:45 Yes. Oh, God, you're so busy. I actually saw your your GitHub profile. And you can see the activity charter on your GitHub profile. And you just put me to shame man, because it's all green. Dennis Doomen 9:56 Now, it's not that bad. No, no, maybe it looks like that. Because I don't not every evening, I have the energy to work on that. I'm always struggling between writing on my, my next blog post. Mostly fluid assertions. I have done a bit of development recently I do mostly do the code reviews, and handle the discussions from people that want to contribute or have questions that don't align with the philosophy of the library. That is my big, it's almost like I'm the architect again, also for this library. But I have a good good friend Jonas, Leah Europe, who is in Denmark, who is very active right now. I even can't keep up with all the things he's doing sometimes. Yeah. Barry Luijbregts 10:36 And this is on fluent assertions. Yes. Just search. Yes. And and what is that? Exactly? Can you expand a bit on what what it is and why it is there. Dennis Doomen 10:44 It's a small library to make your the assertions and unit tests a bit more readable. I mean, if you're a fan of fluid API's, then you will love it. If you hate fluid API's, because those people exist as Well, you'll hate it. And it's really optimized to make the error messages that when you're, I don't know, the result of your test does not match what was expected that you get really clear messages. This is one of the unique selling points, Barry Luijbregts 11:15 right? Because normally when I do unit tests and an assertion fails, it's it's sometimes difficult to find out why that actually is exactly Dennis Doomen 11:23 so it will include the actual variable that you're asserting on. So it tries to read the stack trace. And you can usually also add, like a because to it to emphasize like, what is it? Why does this thing have to be true? Is that a false? Because what I hate is that expected it, what does it do is a expect the true found false? What does that say? I want to know like, I mean, you can still do that if you do something like my variable should be true. And it isn't true, it will say, expected my variable to be true, but it's false, which is a slight improvement with the least you know, my Variable if my variable has a more functional name, it will help you. But you can also add a message to it like because and then you can describe some functional expectation there. On my one, my unit test to be crystal clear, I want to have a clear range act and assert part. And I treat my unit tests in general as documentation. That's why I also love test driven development and fluent assertions really ties well in to that philosophy. Barry Luijbregts 12:25 Yeah, right. I just I can't wrap my mind around test driven development as in I do understand what it is, I just have such a hard time actually doing it. You know, Dennis Doomen 12:36 it's all about, you know, treating your code as or treating your test as a kind of specifications. And I literally call my test projects dot specs instead of dot test. Because Yeah, I when I when I tried to design a class, and usually I've already thought about the scope of that class and the responsibility of the class in the bigger picture, and then I just thought to spin up scenarios. Usually I even create a test class. And then at the top of my class, like all the functional scenarios that I think the class should adhere to, and then start implement those tests. And while I do that dummy effect that I'm trying to define the expected behavior triggers thoughts about, wait a second, what if this happens, what if that happens, and immediately when I do that, I write it to do it at the top of the page, so that I don't forget to call for that scenario, and then I start to implement it. I'm not that dogmatic that it's really like, you don't write a single line of production code until there's a test. That's what TDD actually tells you. I'm a bit more practical than that. But I definitely use my test as a way to drive the behavior of my class. And after that, my tests are not just a safety net, they also documentation. This also applies by the way to flow decision if you go to the tests. The goal of those is to also because quite often if I get a question on the internet about some behavior of an API fluency I generally don't go to the implementation, I go to the tests to see how it is whatthis petition what this specific API will look like. I refer people to that specific test case, which is the promise of TDD. And I generally believe in that. Barry Luijbregts 14:15 Yeah, I think it's a good, good way to work. So just to step back for people that don't know what test driven development is, it is when you first create your test and then write the code to make that test work basically. Correct. Yes. So all right, does that. So that's fluent assertions. And that's a very specific use case, really, you know, to help with unit tests, very niche thing, but still, it has 50 million downloads, right? That's a lot. Oh, how did you do that? 50 Dennis Doomen 14:42 I didn't do anything. I mean, yeah, what did I do? I think I felt myself like, why is it successful and it is a bit of a mystery for me as well. If I had to move Things that I think have been, you know, have been cultivated to that is probably because it's, first of all, it's a library. You know, it's not a framework, it's not something that if you buy into it that you're stuck forever. I know that people have switched over from n unit to fluent assertions just by using a regular expression. So it means that if you if you start to use it, it's not like you're stuck until the end of time. That's a big difference already. Barry Luijbregts 15:25 Add an add on to your project. Yeah, so much. Exactly. Dennis Doomen 15:28 Yeah. This is for me is also like, I love to build libraries, not frameworks, because I know, I also love to use libraries, not frameworks, because frameworks, yeah, they use you. And you know, you have to derive from base classes, which makes it very hard to change later on. And it's only used in test code. I mean, nobody's using a couple of people are but generally people use flute assertions in their test code, which means it's not as production critical. You know, performance is not that production critical. Yes, what I mentioned Before uses, I've been using TDD from the start. So even if somebody reports a bug, the first thing I do is I create a test case to verify that there's a bug exists. And if so I'll fix it after. So basically, the test will fail, then I fix the bug, and then I make sure that test is green. And White, is it successful documentation. I've been pretty adamant about documentation since day one. Support I would say is pretty good. I see that there's a lot of activity on StackOverflow. Most of the questions I don't even have to answer myself. There's a quite big community. Of course, that didn't happen from the start. In the beginning, I had to spend a lot of time on this. It's quite extensible. So if you want to you can you can build all kinds of extra extensions to the framework, build your own extensions or your your own assertions have documented that. And yeah, and it will make your test more readable than it doesn't have a catchy name. I don't know. I like flew in the I mean, all my open source libraries have something fluidity in the name. I don't know. Yeah. Or liquid? Yes. Yeah. But it's all the same. I actually look for that. I have fluid caching fluent assertions, liquid projections. Yeah. What's in a name? And yeah, Barry Luijbregts 17:13 very good. Very good job. So you're saying documentation is a big part of it? Yeah. Because when I started using something, and the documentation isn't there or isn't good, then I tend to just go away and look for something else that I that's easier to use. Because I'm looking for ease of use. Of course, I want to use this right now. I want to be able to implement it right now. And if I run into any trouble, it should be right there. So did you create the documentation yourself at first? Yeah. Dennis Doomen 17:41 Yeah, I did. I had the various versions of that in the past. It wasn't code blocks, of course. But since since it, I think, three, four years I've been using GitHub Pages with a Jekyll template behind that. I've had some help from people like Somebody helped me set a cloud fare and somebody else created the logo for me. I use them minimal mistakes, which is kind of a general template for that. So over time I started to I didn't look like that from the start. I mean, if I look in the past, I found a very ugly codeplex page a long time ago, it's still getting somewhere. Right? Yeah. But yeah, there's so much stuff available for free to set it up with the documentation. Yeah. And of course, people contribute to me what I do these days since the documentation is part of the same repository. If somebody creates a pull request, I actually we actually asked them to also add a, like a small addition to the documentation and add a row to the release notes, because they're all part of the same repository, which helps, of course, to streamline this whole process. Right, yeah, this is the maturity that happened over the years, you know, trying to find the best way to deal with documentation, and how to keep it up to date. And, of course, there's some ad side note as well, that pays for all the DNS Sorry, all the domain names. Most of the stuff is free these days very easy to set it up. Barry Luijbregts 19:06 So you have documentation, everything is on GitHub. Do you have other plumbing setup for building and testing things? Dennis Doomen 19:14 Yes, of course. In the past, I used a simple batch script. And that's funny because I also use my open source project to try new things over time. I did once in a presentation about the evolution but I remember that in 2009, about a year after we started making an open source, we use a simple batch file, you know, just to which calls M is built, and that's it. And then I think somewhere in I don't know 2014 15. We moved to SATA, which is a PowerShell built based build script, because I really strongly believe in build local as you build remotes, so I treat my build server just as a, as a trigger, you know, it's too triggered to build to run the build script, collect some results. And that's it. But I want to be able to run everything locally as I do it remotely. Because I want to be able to make sure that my nougat package that comes out of that is correct has the right dependencies and I want to be able to debug that if something goes wrong. Then I think I moved removed to cake, which was a built framework using C sharp, but that didn't really like it wasn't really C sharp, was kind of their own language. And since last year, we switched to nuke, which is also a C sharp based build system, but it's very mature, very nice to work with, allows me even to the book, put breakpoints in my build script. And I use App fair as my build engine which is free. So that's nice. Barry Luijbregts 20:43 Yeah. That is nice. Yes, because some of this stuff does cost money, right? You need a domain name correct. You have all sorts of other small costs. And of course your time as well, that costs money. Dennis Doomen 21:00 Well, the time is just private time. That's what it is. It's just my personal investment in that. Barry Luijbregts 21:07 And do you get time from your employer to work on this? Dennis Doomen 21:11 No, yeah, I can. I just don't have enough time period. I am officially have a day a week to work on all kinds of stuff, coaching presentations. But I'm so busy with my clients, I can't really find time. I know in the past that I fixed some bugs, you know that we run into a project and use that to fix it. But generally, I'm too busy. So I don't have that much time. I mostly do it in the evening, on the weekends. Barry Luijbregts 21:34 Right. Dennis Doomen 21:36 So and I don't get paid. So that's the thing. Barry Luijbregts 21:38 Yeah. You don't get paid that that's the thing. Yeah. So what about the rest of the costs? How do you how do you cover those? Do you have sponsorship or, Dennis Doomen 21:46 and not really, what what I'm very happy with the fact that JetBrains is really supporting the dotnet community. I get free licenses for almost everything and also everybody who contributes As an active contributor to the project gets a gets a resharper, a writer or whatever you want to use, which is awesome. And I've always done that. This is not the reason, by the way, and why I'm such a proponent of the IDE writer. But it just happens to be like that before when I was still using Visual Studio. I benefited from a free resharper license. I also use semantic merge, which is awesome C sharp merge tool, which gets free licenses for but that's about it. I fee is already free. GitHub is free. So in general, it's just time. Barry Luijbregts 22:32 Yeah, right. Yeah. So that's, that's actually a very great incentive for the community that they could get free licenses for IDs and other tools. Dennis Doomen 22:41 And there's a lot of tools that a lot of companies that do that I don't use that many different tools but in generally I think gets cracking which is my I think I also have a free license by the way gets cracking is my most my popular. My favorite gets a user interface. tried many of them. I think I have a free license for that as well. actually add a banner to the for the searchers landing page. Barry Luijbregts 23:03 Right. And what about the dotnet foundation? That's a foundation that helps open source projects. Right? Yeah. Are you a part of that too? Do you want to be? Dennis Doomen 23:13 I'm not sure. I'm not part of that. I have contacted once and had to fill a little information I still haven't figured out what it adds to me what will I gain from it? Right. I have to talk a little bit with because I know that found the the, the board member the lead board member I know I know. I know her so I need to check a little bit like what what do I gain from that? I haven't really spent a lot of time on the data fortunately. Barry Luijbregts 23:39 Right? Because I what I think the one of the things that they do is provide coaching as well as to how to build and create your, your community. And I think you already have a very good community actually Dennis Doomen 23:53 That's my point. Yeah, it evolved over time. So I don't need anything there. I don't need legal support. If I happen, then I can use my employer for that. No, no need for it right now. But in general, if you need to do your own marketing a little bit, I mean, yeah, I've done a lot of presentations over the last 10 years, not about fluids assertions, but also about mostly about architecture, but also about test driven development. And of course, I will use flow decisions now. And I might not even mentioned that it's a, you know, little plug of the library. That's how I do it. And everything that I designed came because I needed something I was missing something and I talked about that a blog about that. I do sometimes report we actually I spent a while on StackOverflow. It's probably a couple of years ago, where I was checking all the unit testing related questions and try to answer them and sometimes use that as a opportunity to plug flow decisions a little bit. I don't remember exactly how active I had been so long ago already. Yes, 12 years. Barry Luijbregts 24:59 That's a long time. Yeah, but then you did do a lot of marketing, also indirectly by doing your presentations, of course, because people see you, and then they check you out. And then they get to live their Dennis Doomen 25:10 True. True. Yeah. And I've also been very open about the design philosophy. And fluent assertions itself is also you can see it as a project, you learn new things from it. So when I started using nuke as an example, for my build tool, I write a blog post about it. When I was thinking about all the backwards compatibility issues that we're facing, I use that also to write about that or talk about that. There's a little it also creates a lot of inspiration for me to experiment and talk about topics related to that and use that as opportunities to, to also like coach clients, for instance, because they're also running the same problems, releasing branching strategies, all that stuff. It's Barry Luijbregts 25:49 like a real project. Dennis Doomen 25:50 It is. It is absolutely a big one. And yeah, it's quite popular. Barry Luijbregts 25:59 Absolutely. So lots of people have downloaded this millions. And so also people that use it in older applications, I imagine Yeah, as in applications that now run in production, and they just forgot about or will never update again. So how do you deal with supporting older frameworks? For instance, I see on one of your pages that you still support dotnet 4.5, right runs on dotnet 4.5, which is relatively old. How do you decide that you want to still support that? Dennis Doomen 26:33 It is a matter of costs, as in if it's relatively easy to support it without making my development effort more complicated. I'll keep it in. Especially with the recent cross compilation cross compilation process that that has, it has been fairly easy to support multiple different frameworks. It's just a matter of putting a target frameworks property in your CSS. support. And that is enough. And of course, some things won't compile. So you have to play around a little bit with if def statements. Unknown Speaker 27:09 So it's not that bad. Dennis Doomen 27:13 But yeah, every major release, which happens every couple of years, we tend to drop things. I mean, latest official version right now is five point 10. When was five introduced, I think have it somewhere written down. Version five was introduced in 2018. Beginning and deed which included all that four, five, that standard 1416 and two Oh, which was the version use cross compilation, before that it was a bit more painful to use portable class libraries, maybe some of the listeners remember that. And then all kinds of fish share projects, which was a concept officially introduced. But if I go really back, it was quite hard to remember that in the beginning. We had to do link files. Barry Luijbregts 27:58 So good luck, remember Yeah, Dennis Doomen 28:00 he basically we had we had, like, I think, multiple projects for every targets framework yet a separate project and they use linked files to refer to each other. Which was annoying, because if you started to rename files or split files, yes, they didn't compile. Yeah, it got a lot better with the shared products. They were introduced, I think in 2014. But now, with cross compilation, it comes for free almost. But to be fair in dotnet, in the fluid decision six, which we're working on right now, we're probably not we're probably we have already dropped all the oldest frameworks. Right, Barry Luijbregts 28:35 right. Yeah, we've come a long way in sharing code across multiple projects. Absolutely. And now it's way more easy with dotnet standards. Dennis Doomen 28:46 Oh, it's so easy. Although it's not 100% foolproof solution. I've run a couple of times in something that is supposed to work. It's supposed to compile and it actually compiles I would write Microsoft nougat package. But then at runtime, it may actually throw an exception like platform not supported exception, which is a bit annoying. So it's not, it is kind of a leaky abstraction here and now. Yes, generally and that that has cost us a lot of time trying to figure out how that works. Like somebody says, like, hey, why can't you just support someone version bla bla bla, just by talking to these though that status version, then you do. And then you have to use a certain Microsoft extension library for certain target frameworks. And that can become a bit unwieldy sometimes. Barry Luijbregts 29:29 Right? Yeah. Dennis Doomen 29:30 Which still means you have to test every target framework. So we create this project, obviously, using a shared project. But we do actually run the tests for every Docker platform to make sure that everything works as expected. Oh, Barry Luijbregts 29:42 my goodness, what a lot of work. Dennis Doomen 29:44 It is. But yeah, to be fair, we didn't write this in one year's 12 year endeavor. Lo things change over time, and there's a lot of help. I mean, especially last six months, I've seen an influx of pull requests, so quite incredible. The community has been very active reading Barry Luijbregts 30:01 Yeah, so do you have many active contributors? Dennis Doomen 30:05 I have, I think I would say like about 10 people that are generally quite active, they come back. Some of them are also incredibly critical. They they propose huge refactoring or huge changes, which feels like they might be too risky. But yeah, they also, you know, trigger large discussions will select sometimes, discussions that I like, I can't even do this in between work, I just have to spend time with understand what they mean. But there's about 10 regular contributor, and there's one person that is extremely active. That's Jonas from Denmark, Barry Luijbregts 30:39 who helps me like Dennis Doomen 30:40 who spends almost every day on the project right now, which is awesome because it really allows us to move faster these days. Barry Luijbregts 30:49 Alright, so these contributors are they mostly very experienced developers are they also juniors, Dennis Doomen 30:56 I see different things. I see people that still struggle to get I see People that are very experienced and I are thinking about the fundamental behavior of the library. One of the unique selling points of fluent decision is a method called, should be equivalent to which is used to do deep object graph comparisons. And it has certain behavior in place, how it deals with collections. And I've had discussions about like people saying, you know, we should change this, and we should change that. And they're completely redesigning it come with proposals, which is almost like you won't expect that from an open source project. You know, the same way async support, how to deal with making sure that you don't create that locks in your unit test. And there have been people participating in that. Also, I don't know if you know, Claire, the Vault Key. Yes, the leader of the data foundation that you just mentioned, and she has been very involved, especially like five for four or five years, helping me make the framework, support multiple libraries deal with all The PCL complexities, especially when the time when Microsoft was redesigning the framework, we had something called dotnet. Five, which was a moniker a couple of years ago, which is weird, because now we get dotnet. Five as well. Yeah, yeah. And she was really adamant. I met her a couple of times in New York, we spent a lot of time explaining all these complexities. That's how the hell did I also notice frustrations used by a couple of Microsoft open source dotnet, SDK libraries, which will also, which is a good thing. Barry Luijbregts 32:30 Wow, that's a very good thing. Yeah. So if people want to jump into fluid assertions and want to help out and contribute to something, what kind of issues do you have? Are they all very complex? Or do you maybe also have like jumping issues? Yes, people that are starting out in open Dennis Doomen 32:48 source. Yeah, this is something we have, there's a couple of issues a lot of them actually, we use a label called help wanted to emphasize that these are things which are relatively constrained In terms of scope and complexity, so it's quite easy to jump on boards. And we have a slack account, which specific channels for developing the library instead of using it. In general, we're very open very easygoing doesn't mean that we say yes to everything, by the way, because yeah, as you can imagine a big library like this with a lot of users, you have a lot of responsibility, making sure you don't break things. Not just source control, compatibility, even binary compatibility. So sometimes we actually trying to think of writing down some design guidelines. Yeah, it's incredible. It's almost like a real project. Yeah, we need I mean, people need to understand what kind of behavior is expected. You know, if somebody passes a nail into into a B methods, what kind of behavior do we expect to be consistent? You know, sometimes you also get like, hey, I want to add this not be alternative. And then we need to start thinking about okay, but if you do this with this method, then you Probably also need to do it for the other ones, otherwise it becomes inconsistent. And in the past, we didn't really care too much about it. But now, yeah, we sometimes ask them, like, Are you willing to, you know, take it a bit further. If not, then sometimes means we have to do more work. But quite often people are quite quite, quite open. So yeah, wait. Yeah, yeah, it is. Alright. It goes. It's also another very complicated project. Barry Luijbregts 34:26 Right. Yeah. And, and it is a library, another framework? Dennis Doomen 34:31 Yeah. Which makes it a lot easier to develop new features. Yeah. Barry Luijbregts 34:36 So I would definitely encourage listeners, if they want to jump into open source, or just find another open source project to contribute to just go to fluent assertions.com. And go to the GitHub page, pick something out, work on it, and then put in your pull requests, and maybe it gets in there. Yeah. Dennis, thank you so much for your time today. Thank you for spending it with me also and I hope you're continuing with your great work and finding the time to do so. Dennis Doomen 35:07 I will and it was an honor was fun to talk about my favorite open source project. Barry Luijbregts 35:13 Alright, you can find Dennis on twitter at D Dolman and add all this other websites that will be included in the show notes. Alright, bye bye.
Quick show notes Our Guest: Jayson J. Phillips What he'd like for you to see: The Media Developers Discord | His Live coding on Twitch His JAMstack Jams: Getting back to simplicity on the web | Tools like Netlify His Musical Jam: Bootsy Collins - I'd Rather Be With You | Karen Harding - Say Something Bryan Robinson 0:05 Hello, everyone, welcome to another fun packed episode of That's My Jamstack, the podcast where we ask that difficult question, what's your jam in the Jamstack? In this week's episode, we chat with Jason J. Phillips, Director of Engineering at a 2U, boot camp instructor and a media developer expert. Bryan Robinson 0:23 Before we dive into the episode, I wanted to mention our sponsor take shape, stick around after the interview to find out more about their content platform or head over to takeshape.io/thatsmyjamstack for more information. Bryan Robinson 0:41 All right, Jason, thanks for being on the show with us today. Jayson J. Phillips 0:43 Appreciate you, Bryan. Glad to be here. Bryan Robinson 0:45 Cool. So tell us a little bit about yourself. What do you do for work? What do you do for fun? Jayson J. Phillips 0:49 Yeah, so by day, I am a director of engineering for boot camp applications at 2U. We house a lot of boot camps web development. FinTech, UX, and a couple others through extension schools at universities. And so at night, I also teach web development and data visualization boot camps, most recently through the UC Berkeley Extension. And University of Denver was my most recent class. Bryan Robinson 1:18 Cool. So you're doing actual technology for companies that are doing boot camps through schools? Is that right? Jayson J. Phillips 1:25 Yeah. So the team that I that I oversee and manage runs a slate of applications that's for all parts of the learning aspect. So we build tools for instructing as we build tools for our students in our boot camps. We integrate LMS as for our learning platforms, so everything from the student is already enrolled to the student graduating, my team plays a role in their software journey. It's never a dull moment, pretty awesome. Bryan Robinson 1:53 So what do you do for fun outside? Obviously, if you're if you're teaching at nights too, then there's not a whole lot of room for that but what's what's your idea of fun. Jayson J. Phillips 2:00 Yeah. So I tend to run far away from technology for fun. While I do enjoy programming and you know tinkering around on my off time, I tend to be away from the house. So hiking outdoor activities. I'm a big cyclist and runner. I'm still trying to eventually chip away at hopefully running for the half marathons in 50 states I've allowed nine states now. So yeah, I try to make up for all the sedentary sitting at the desk by running myself until I can't run anymore. Bryan Robinson 2:36 Cool, so do you do like competitive or re you just doing it like those half marathons just to do the half marathons? Jayson J. Phillips 2:43 Yes. So my tagline is I don't run fast I run far. So that not competitively but I definitely enjoy a lot of the runs for fun and just to beat my my own personal times and then doing some team adventure races. Like there's a series called Ragnar where it's a team of 12 split between two vans and you run 200 miles over 36 hours. Bryan Robinson 3:09 Wow. I'm out of breath for a mile. And that's about that's about as much as I can go. So that is super impressive. Jayson J. Phillips 3:15 I mean, those races is all about the team. Because again, I run far not fast. So on the wrong team I can be probably very disruptive to a group, but it works out well. Bryan Robinson 3:26 Very cool. So So tell us what was your kind of entry point into the idea of the Jamstack or into static sites or wherever you found your way into this cool community? Jayson J. Phillips 3:35 Yeah, so I think the thing that hit me right away about Jamstack is that my first experience on the web, you know, was all static. Back in about 2001 2002, there was a popular platform called Graymatter written by this gentleman on Noah Gray, and it was written in Perl, but it it would take all your content, as text files and all your comments and actually generate static output for your site. So while the compilation step because it would recompile your entire site. So if you had thousands of pages as a blog, and you know, hundreds or thousands of comments, it would take forever. But once it was done, you had this beautiful site that just ran. It had the notion of templating. So I was like really one of the first experiences I ever got of playing around with a static site in any form. And so jumping back into like the modern era, I think it was around 2013. Before then I'd play around with Jekyll and Octopress for a couple years to replace the WordPress sites I've been working on. And then I dove into Wintersmith and Blacksmith was like some of the firt like early NodeJS, static site generators I've worked on. Bryan Robinson 4:46 So I'm curious real fast, because this was actually a conversation I had the other day about Wintersmith and Metalsmith and all all those kinds of first node static site generators and kind of the idea of like, why didn't those take off? Whereas potentially, like, now we've got stuff like, you know, eleventy kind of taking that role. But then on top of that, you know, obviously Gatsby and, and Nuxt and all that. Do you have any thoughts on that? Like, having used that, I used it a little bit, and it was over my head at the time. But like, what, what do you think about that? Jayson J. Phillips 5:20 Yeah, I think the barrier to entry lowered in terms of the setup, right, so I would say the first time I encountered Wintersmith and Blacksmith and a couple other of those types of sites, it was the same thing. It's like, Alright, this seems like a lot of configuration. I got these crazy Gulp processes or some other build process where now, especially with the advent of create react app and other tools, even in Angular and other ecosystems. It's much easier to get a common set of defaults that are a little bit opinionated, but enough that you don't have to mess with it to get started and you can kind of customize as you go, and I think that is what allowed Jekyll to take off when it first came out. Was that outside of a few hours sensible configuration in a YAML file, you could just write markdown and run it as default. It took very little in the way of getting started with it. Bryan Robinson 6:11 Yeah, the configuration is definitely it was a it was a big pain. I mean, honestly, some days when you're just trying to work on a project real fast, it can still be a pain if you don't actually reach for all these tools. Jayson J. Phillips 6:20 Yeah, I mean, it's, this is like the beauty of the the abstractions that we love building on top of, right, let's say, I really think it was just a maturing of the node ecosystem. And also just now we're within arm's length of a tool in almost any ecosystem now, but especially within JavaScript, Bryan Robinson 6:37 in fact, like the cool thing is like we're seeing projects coming up that are like refactoring Jekyll like there's Bridgetown nowadays. That is, you know, trying to say all right, we need a modern Ruby static site generator and Jekyll is just been around the block a few too many times. Yeah, that's Jayson J. Phillips 6:53 And I love to see it right. I think Jekyll for you know really brought static sites back into the forefront. And also outside of purely technical circles, you know, for other people to actually understand the care about it and see what the benefits were. So I think, you know, as we have these round Robins of, hey, this community is pushing that community ideas further And beyond that, who knows where we'll end up in 2025. It'll probably be something where we think the page gets created and the site's updated in like nanoseconds, Bryan Robinson 7:23 hey, there's that there's a JavaScript library for for reading brain process. So who knows? So I'm also curious. So So you've been you've been doing static sites for a long time with with Graymatter kind of being that that first entry point way back in the day. My first entry point was a little bit later, a few years after that with movable type blue. I'm wondering like, like, obviously, we're way better than those systems were back then. I remember I had a blog. They had thousands of posts for newspaper I worked for and it was like a 40 minute compilation step to deal with that. Do you think? Do you think that that timing was kind of the the downside of the static stuff? And is that is that why you think maybe we went dynamic for a number of years and only now coming back with the speed that we've got? Jayson J. Phillips 8:13 Yeah, I do think it had a lot to do with the company system, when b2, which was like the precursor to WordPress first came out, right, like it was competing with MovableType and a couple others at the time, and those were winning out. But then once someone saw that, hey, you could install this on a server and click a button and now you have a blog. And it starts out right away and you can add post right away. I think that's where the shine of the newness of this dynamic content sites came into play. And then I think there was also the piece of we didn't have, I think as advanced ways, generally available to structure content in static sites, whereas WordPress made that a bit easier to reason. So the tools like Drupal, where you could create structure around your content and understand like, what do I mean, when I'm creating a blog post? What do I mean when I'm creating a static page? And I think we will type in those tools as they moved along that over time, didn't have that really as well along with the long compilation steps. Bryan Robinson 9:17 Well, I know even like, later in the game with WordPress at the agency I worked at, we use a plugin called Advanced custom fields, almost any WordPress site we built had that by default, because that structured data was so important. And WordPress, I mean, out of the box didn't give give you a whole lot of structured data. So I think that's an interesting thing as well. But that's that's seeing a resurgence as well in terms of like, we want granularly structured data. Jayson J. Phillips 9:42 Yeah, and especially with a lot of the headless, headless CMS tools out. The awesome part is that there's a lot of different options that allow you to structure that content based on who's structuring it right. So like, with Sanity, you can reflect that in JavaScript files with other tools reflected in the CMS itself. So at the accessibility of structuring that content is really available to whatever type role needs that level of granularity to control it. So I think those tools also helped a lot. And, you know, even like, the pushes that we've had for Semantic Web and semantic structuring of content, even in just markup files and talking about what was it, like microformats, and all these other things, like a lot of that has kind of pushed us to where we are today. Bryan Robinson 10:28 Totally agree. So So we've mentioned a lot of different technologies. We've mentioned a lot of different things from from honestly, the history of the past almost 19 years now. What what's kind of your jam in the Jamstack? What's your favorite service or product? Or maybe it's just a philosophy or a framework? Where are you digging on right now? Jayson J. Phillips 10:45 Yeah, I think for me is getting back to this the simplicity of index page on the web. You know, like a lot of the things that we talked about, I that's what I enjoy most about the philosophies and the approaches of Jamstack You know, as an example, there was a client that I worked on back in 2008. For Fairmont International, a huge international chain of hotels. Every single page was its own index page. It was Yeah, every single page was a folder with an index page in it. For every single locale, language pair, they support it, which was over 50. So at any given moment, I was SFTPing like, hundreds of files, if we haven't changed a global header, and it wasn't a server side include, we had to change it on hundreds of pages. So I think just this approach that we can take these modern tools, and still come up with the simplicity of just another static page is super awesome. Outside of that, I am a huge fan of Netlify. We use it a lot at work to for like AV testing and for launching a bunch of previews for for our deploys for some of our front end applications that are built in react, which allows us to quickly test for UX changes Things like that. So, yeah, Netlify has been increasingly, I've been increasingly using a lot of the portfolio tools. So I, I dig it a lot for my personal blog and other things. Bryan Robinson 12:10 It's really hard to beat. Just the fact that it's all in one like you want you want serverless function, no problem. You want forums, no problem. You want just simple deploy of an HTML page. No problem. Jayson J. Phillips 12:22 Yeah. And I think also, even with stuff like forms, right, I think that solves a problem too, that we had back in the MovableType and other eras. And also in the first wave of static blogs, where we had to rely on Disqus or all these other external tools to get comments and then injected back into our sites. Now we have the full control of being able to build what we want, and or integrate suites. Like I know Gatsby studio is like kind of building up as well. Vercel has got a great, awesome set of tools, with Now or I guess they call that Vercel Now as well. But yeah, I think, you know, with these all in one suites that are leveraging these other platforms, they also make it easier for us to deal with lambda without having to jump into the AWS world and learn about security groups, everything else. So it's pretty awesome. Bryan Robinson 13:10 I had never touched a serverless function until Netlify rolled out their functions, just because it was just too big a pain to go into the into the GUI interface and deal with all that nonsense. I was like, Oh, I have it in your GitHub repository. No problem. Jayson J. Phillips 13:23 Yeah, just that that hole, just put it in a in a single folder. Let us know what folder it is. and it pulls up. I wish we had that when lambda was first being talked about, because that probably would have gotten a lot more adoption. Bryan Robinson 13:35 That would probably be two or three years ahead of where we're at right now. Jayson J. Phillips 13:37 Yeah. It's because I tried lamda once before that, and it was like, and it took me this long, a few years before and I just started playing with Netlify functions maybe like two weeks ago. So and I love how simple it is. Yeah, Bryan Robinson 13:52 You can just a Hello World example takes you know, five minutes to get up and running. It's beautiful. So So how are you using these kind of Jamstack philosophies at work, you know, with all these boot camps, and also, you know, personally, you mentioned your, your blog, but but kind of browse through what you're what you're using right now and how things are going for you. Jayson J. Phillips 14:11 Cool. Yeah, so. So at a previous job, we're using a lot of static page generation for our marketing site and letting that be cached in our system. So that marketing site was lightning fast. It was all static markup. And then we just use the API's for our back end financial platforms to integrate with authentication or integrate stock tickers, all those types of things. So what it enabled us to do was to quickly iterate on our marketing pages, and let the actual full, single page application stay on its own structure. And then it allows us to play with things like mono repos, which allowed us to have like share the common elements between all the different sites, but split architectures where needed at my current role one of our student facing platforms, we use the branch preview feature with Netlify to steady generate our sites and That's probably saved us, I can't tell you how many hours from our own QA process to now, and has made it so much easier to be able to switch between branches change, see the changes, see what changes look like in an integration branch before we actually roll that into master and release it. Jayson J. Phillips 15:16 So that's been super awesome. And then personally, so I do use Sanity.io for their headless CMS solution. I've really enjoyed having a clean interface to go in and write push a button and save it and push another button. And it goes off to the races to build everything. And so just this notion of my site can statically regenerate it whenever I want it to be like, it doesn't have to be recompiled unless I push that button also gives me an interesting level of control over content publishing that I didn't have before. Right, instead of me worrying about some systems timing. I can just say, all right, I release pages every Friday, but I can create my own editorial process around that before we statically build that site on the production. So that's been super awesome for me as well. Bryan Robinson 15:59 The whole idea of having an editorial process and all that is definitely something that is super powerful when it comes to especially like you mentioned, the deploy previews and all that, like you can send it, you can send preview links out to like, get feedback on a post before you launch it. Jayson J. Phillips 16:12 Yeah. And it makes it also makes code reviews, much more accessible and less obstructive, right. So if your reviews are really going to be around the functionality of the code, you can, instead of having to pull it down, you can review the code within GitHub, which is expanded their like code review tools a lot, and just the ease of reviewing code in the site. But then you have the fully launched version on that deploy branch, which, again, just makes that much easier. And then it allows you to do things like hey, I have a similar branch that we can wire up for the API so we can test that API changes. It's just it's just being able to split concerns where you need to at different parts of the process is pretty solid. Bryan Robinson 16:54 So out of curiosity, since since you're doing tech for a lot of these boot camps, and you're and you're teaching web development, Are these things being taught in the boot camps and in the classes? Or is it more traditional Dev, and then oh, by the way, don't forget, there's this new thing coming out, too. Jayson J. Phillips 17:09 So I think there's a mix. For our classes in particular, we do start with a static approach by telling them all about GitHub Pages and getting them used to that for their first set of sites. So for, I could say, probably their first 10 to 12 weeks, every homework, every page, every project they do is being deployed and GitHub Pages statically. And then we make the connection to them of the other tools later in the course. But we never actually get to come back and say, all right, you can launch here but when they get to their second or like end of class project, we have a lot of our students who end up deploying on Netlify or using like Firebase Hosting or even using Heroku and like static generating webpages and and just having it hosted via static folder. So some of the students end up deeper in Jamstack because of their own research, but they definitely get that hint of that throughout. course by talking about GitHub Pages and talking about what that means, and what Jamstack will be for them. Bryan Robinson 18:06 All right, well, so So let's talk about actual music now. What's your actual jam? Where are you listening to what's in your headphones on daily basis? Jayson J. Phillips 18:12 All right, so my favorite song of all time is Bootsy Collins, I Rather Be with You, there's just says something about that intro to I hear that anywhere I stop. And I just end up swaying slowly. As far as songs as I've been listening to you, like, for the last few months, is an artist by the name of Karen Harding, who had some, some really nice like Deep House hits, and one is called Say Something. And it's just a really kind of upbeat, quick, simple song that I hear it and it's like, Okay, I'm ready for the gym. Or I hear it and I'm ready for like, three hours of coding. Or I hear it and I'm like, Alright, 30 more minutes. I'll get on my live stream. Yeah, like it just it's my musical rebel. It's all I love that song. Bryan Robinson 18:59 So, so Also, you know, what are you - What are you looking to promote right now? What What do you want to get out to the Jamstack? community? You know, what, what are you doing that you want to get out there? Jayson J. Phillips 19:06 Yeah, I think first and foremost, which we're both members of, is the awesome media developer experts community. Yeah, we definitely want to make sure folks understand that they could join the discord even if they're not an expert, come join the community to talk about media, especially now that we are moving with heavy Jamstack and we're in that's gaining a lot of steam, that media handling and media expertise is going to be much more important because now image sizes matter when everything else on your page is code split and, and so much smaller. So now we need like a renewed focus on media. Jayson J. Phillips 19:40 The second thing is, you know, I've joined in toss my hat into the Twitch arena. I think for me, I'm sticking a gearing to towards really early stage to mid level engineering. So we'll talk about a lot of topics. I've been working on a movie Tracking site application just giving everyone a piece of functionality every week that we work on and on the stream. So that's been pretty awesome. So if you want to give a kid a follow up, come check it out. Jason J. Phillips, we'll make sure we give you some notes. But uh, yeah, that's, that's the things I've been up to recently that I've definitely want to get out there. Bryan Robinson 20:18 Very cool. I love the live streaming community. I've been a part of it for a couple months now. And it's just absolutely amazing. And I'm glad that you're a part of it. And I'm gonna go click that. That little heart button here in a couple minutes. Jayson J. Phillips 20:30 Yeah, definitely need to swing by, a few others, too. I've loved seeing the individuality amongst everyone. Yeah, when we're all talking about similar topics. It just makes that that ecosystem and that community so vibrant. And folks are so super supportive. It's like, if you're looking for like environments to to learn code, or to even stream code yourself, live streaming, especially on communities like Twitch and I think there's some fun Doing it on Mixer (editors note: Mixer just closed after recording) as well. It's, it's a good place to start and kind of get away from some of the toxicity you might see in other platforms. I don't doubt that it ends up on these platforms as well. But the communities right now are just so helping inclusive and like internally boosting each other, which is super dope. Bryan Robinson 21:19 I love it. Like there's so little judgment that happens. Like, I'm not always the best, like hardcore programmer and I've actually had chat debug my code for me, it was great. It was like a beautiful moment. Jayson J. Phillips 21:30 Yeah, I think the thing I love about that, is that, for my former students, I always model for them a lot that, you know, no matter how experienced you are, you're gonna make you're gonna make errors, you're gonna have bugs, right? The point is for us to kind of learn from those and not repeat it the same way. Right. And so, I do love that there's this freedom to just be yourself as an engineer on a live stream. Yeah. And, I mean, I've definitely had a moment where we were sitting in for 20 minutes trying to figure out why something wasn't working. And it literally was, I refer to the model in my code wrong. And I was like, Yeah, thanks. That's 20 minutes of me sweating and getting frustrated for no reason. Bryan Robinson 22:12 And there is sweat involved. It's it's it can be nerve-wracking in front of in front of a crowd. Jayson J. Phillips 22:17 Yeah, but it's a it's a it's a weird kind of scary freedom. or something. We're like, Jason, I don't get it. I'm like, I know. But there's just something also empowering when people do come in to chat. And you know, there's a message of support or a message of, hey, you missed something like just that. Automatic, like, leaving the house help is super awesome. Bryan Robinson 22:39 Yeah. And like, it's just like sitting in a room with you know, with other developers thinking through a problem it can be just super helpful just to talk to somebody about even that somebody can't talk back. Yeah, Jayson J. Phillips 22:49 and it's, and the community also isn't looking for like the super. Like wunderkind. I've been programming since I was two. So I never heard A bug in my C sharp, right? It's a lot of folks are just looking for folks who look like them or sound like them or have life experiences like them, and actually be able to see them writing code. And I think that's super empowering for all of us to play a role in. Because we don't know who were inspiring next, or who just needed that little bit of validation of, oh, Brian talked about his story. I will link to Brian's story. I could do this, right. And that that for me is like the, the main like, just thing that pulls me into education and into like, live streaming. Bryan Robinson 23:40 Yeah. Or like, Hey, you know, Bryan spent 20 minutes finding a typo in his code. I've done that like five times, maybe I am a programmer. Jayson J. Phillips 23:47 Or someone's like, Oh, I'm not a real programmer, but I'm building a tool to and this is a real thing that happened. I'm building a tool to screenshot my screen. Use OCR to look at my code. And then Tell me if there's better ways to write those functions. Like when you think you're not a real programmer, get out of here, you leave right now. Like, man, you should get on stream and I'm gonna follow you nervous now. Bryan Robinson 24:15 I'm not a programmer, but I wrote this entire thing that honestly, I couldn't do. So that's, that's super impressive. Jayson J. Phillips 24:21 Yeah, it's, uh, it's, it's, it's been amazing. So yeah. For folks out there, and especially in the Jamstack community, if you're looking to do that. Everybody's voices needed. You know, streamers, watch each other. People will watch each other stream. It's a super awesome thing. Bryan Robinson 24:36 Yeah, definitely. Cool. So I appreciate you taking the time to be on the show with us today and to share your thoughts and experience so keep doing amazing things on the web in the Jamstack. Jayson J. Phillips 24:44 Bryan, appreciate you. I love what you're doing here and thanks for having me on the show. Bryan Robinson 24:54 Hey, everyone, it's Bryan again. I want to thank Jason again for being on the show and I want to take a moment to thank you are listening community is one of the many things that makes the Jamstack shine. And you all keep me coming back week after week. Before we get to our sponsor, be sure to like part star favorite or whatever in your podcast app of choice, and spread the word about the amazing people doing awesome stuff in our community. And now for our sponsor, if you listen to season one you're probably aware of take shape by now. But as a reminder, take shape is a content platform for the Jamstack take shape has a headless content management system, easy to use GraphQL API, a static site generator and an amazing new product called match a service that can tie together multiple API's into their handy graph qL interface if you're doing anything with content on the Jamstack Be sure to check them out at takeshape.io/thatsmyjamstack. That's it for this week. Thanks again for listening. And we'll see you back here for the next awesome episode. Transcribed by https://otter.ai Intro/outtro music by bensound.com Support That's my JAMstack by donating to their Tip Jar: https://tips.pinecast.com/jar/thats-my-jamstack
Quick show notes Our Guest: Tim Benniks What he'd like for you to see: His YouTube interviews with notable developers His JAMstack Jams: Lambda Functions | Connecting various technologies His Musical Jam: Fantastic Negrito Other Technologies Mentioned Gridsome NuxtJS Jekyll Bryan Robinson 0:03 Welcome friends to season two, That's My Jamstack. If you'd like season one, you'll get more of the same out of season two, me talking to developers and designers in our amazing community talking about their passions in and out of the Jamstack. Bryan Robinson 0:15 I'm your host, Bryan Robinson. And this week we have the amazing Tim Benniks on the show. Tim is director of web development at Valtech, part of the Cloudinary media developer experts program, a speaker and much more. Bryan Robinson 0:27 But before we dive into the interview, I want to welcome back into season two, our amazing season one sponsored TakeShape. Stick around after the episode to find out more about their content platform or head over to takeshape.io/thatsmyjamstack for more information. Bryan Robinson 0:44 Today, on the podcasts we have Tim. Tim, welcome. Thanks for coming on the podcast today. Tim Benniks 0:48 Thanks so much. I'm really happy to be here. Bryan Robinson 0:50 Awesome. So can you tell us a little bit about yourself? What do you do for work? What do you do for fun? Tim Benniks 0:54 Yeah, sure. So as I said, my name is Tim Benniks and I was born in Amsterdam, but now I live in Paris. And here in Paris, I'm the director of web development at an agency called Valtech. Which is kind of a global agency where we do big platform builds, for big ecommerce and stuff like that. And so I'm doing a whole bunch of different web development things and the management and things like that. Tim Benniks 1:21 And what I do for fun changes all the time. Actually, I've been a lifelong musician, so that always stays. I always enjoy making music. But lately I've actually done a lot more content creation and I've been doing stuff like speaking in conferences, so I really enjoy that aspect now like figuring out what gear to use to record something actually being able to speak in front of a camera and not be boring, like so for fun I tried this kind of stuff now. Bryan Robinson 1:53 Cool. Yeah, I definitely I can I can get behind that is once you go down the gear rabbit hole of like audio recording and video recording. There's there's no hope for you anymore. Tim Benniks 2:02 This is a trap. And the worst is, as a musician, I've recorded a whole bunch in studios, but also at home back in Amsterdam. And then when we moved to Paris, I decided to either sell stuff or just gave it to friends who needed it. Because I was going to a small apartment, I couldn't make a lot of noise. So I had this nice stuff. And now that I'm back in a place where I can actually record, I don't have the stuff. And now I'm like, oh, but I don't like the cheap things, because I'm used to all this nice stuff now. So it's, it's a double trap for me. Bryan Robinson 2:35 Nice. So what kind of what kind of music do you do? I mean, we'll talk about what you're into in terms of listening. But what kind of instruments do you play? Or what's your musical style? Tim Benniks 2:44 So I'm a guitarist. And not much more. It's one of those like, if you ask me to sing, it will be awful. But on a guitar, I'm fine. And when I started out, I was like a session player. So I would play anything someone would like and i just i Like that. So I would be like, all over the place in all different kinds of things. But after a while, I noticed I just want to settle for something I really enjoyed, which was blues music, like the old school Chicago, 1960s blues, that's really where it's at. For me, I really enjoy that. And then when I'm on stage playing that it doesn't really matter anymore how technical you are. It's much more about the vibe and the feeling and timing and having fun. And now that I don't play as much if I grab a guitar now I just play that and I'm happy. Bryan Robinson 3:34 Very cool. So obviously not music podcast, it's a Jamstack podcast, let's talk about like, what was your What was your entry point into the idea of the Jamstack? Or maybe it was static sites when you got into what what's your entry point? Tim Benniks 3:46 This is years ago. Now the works jam stack were never uttered at that time. I'm kind of a dinosaur in our industry. And I'm really... I started with all the basics, right? Like what does HTML do and woah we have CSS now stuff like that. Tim Benniks 4:02 And so at one point, I found this thing called Jekyll and it's still around. And Jekyll is this static site generator. I think it's built in Ruby, I'm not even sure anymore. And it was also used for GitHub Pages back in the day. And I always made my own websites with this. Tim Benniks 4:21 Everything at work was always more enterprise level, or more creative or more, let's say let's do a campaign for Chanel. We wouldn't be doing this, we always had like, big enterprise system. So in my own time, I wanted to do something simple that had like super good performance and stuff like that. So I started with Jekyll and I used that for years. Tim Benniks 4:42 And at one point, of course, I was kind of forced into VueJS land because of work. And because I was also always a vanilla JS guy. And I really started to enjoy that more and more and then NodeJS became big and then suddenly there was Nuxt. So next year is kind of it looks like next year, so a little bit on the on the React side. And they had this way to generate your website statically. And of course, when that came out Jamstack existed. And I didn't know it was Jamstack, I just still generated my site statically because it was fast and it was all good. I could have cheap hosting. I didn't get hacked all of that. Tim Benniks 5:24 And my latest one is now that i i found Gridsome and if you're in Vue land Gridsome is great for Jamstack-like projects. And every time I need to to up something that has static content in it and maybe some microservices around it, I tend to use or Gridsome or Nuxt and then just fill it up with some data. And the rest would be way more fancy potentially. But this is still my base. So that's how I entered this this realm of awesome. Bryan Robinson 5:53 Very cool. Yeah, like that. I think that's a for a certain generation of static site people, Jekyll is very much the entry point like that was that was my entry point. We've had a few guests on that said that that was there's all from that kind of background of, you know, I used to write HTML and CSS and I needed something a little bit more and it became Jekyll. Tim Benniks 6:13 Yeah, I truly... I loved their template language and how that all fit together and it felt like black magic back then, because I didn't really care about how it was built. It just worked and it had like a CLI and that was new to me. And it's just pure gold at that time. Bryan Robinson 6:29 Yeah, definitely. Cool. So So nowadays you're you're in Gridsome you're in Nuxt, how are you using it personally, but also like, are you using it professionally now? The Jamstack and Gridsome and all that good stuff. Tim Benniks 6:41 Well, this thing is clearly seeping into work now. So what I'm working on generally are big platforms. Let's say for a client like let's say, EasyJet, which is like a big airplane company or we have L'Oreal that has like 15 or 20 brands that all need websites. And like we have like 3-400 instances of websites in one system. So they all use this big enterprise stuff. And we are seeing more and more that the performance needs. And the KPIs for good websites nowadays are much closer to what a static Jamstack site would do. Tim Benniks 7:19 And also for business, right? Because we are also thinking about performance, scalability, cost uptime of servers. And so slowly but surely this is is going into the work life now. We don't really go fully Jamstack just yet. But things like microservices, lambda functions, cloud connections, things like that. They really come into the picture now. And it just kind of if I just give it a year, and most projects will be some sort of a Jamstack approach. I think Bryan Robinson 7:54 That's awesome. Yeah, I did agency work for about six and a half years and managed a team and It was right before I got fully into the jam stack world. I had Jekyll blog and all that, but I really wish I had dug in and we had started working towards that when I was still in agency lands, I think it would been awesome. Tim Benniks 8:11 Ah definitely, I'm in a place where there's this is still led by big business. And if you have a contract that you pay 2 million for a couple of years, you're not just going to say "Okay, how about we ditch that CMS system and now we go for something else." Tim Benniks 8:26 So what I have to do is find creative approaches to to give them the opportunity to want to change, but not that cost them too much money and that. Let's say we did this recently for Louie Vuitton, which is like a super fancy brand of luxury stuff in Paris. They have this old ecommerce system with like a monolith. And what we did for them is we they knew they wanted to change because one release was like 25 hours and it would not always go right it was fairly challenging and they wanted to release every week. So we lost half our week on releases not even coding. Tim Benniks 9:04 So what they said, we're just going to need to separate the front end from the back end. So we have more flexibility on doing front end changes, design things, A/B testing, stuff like that. And so we came up with a next system for them. That would be its indexing universal mode. So we're not really in jam stack land just yet. But these guys, they now have the opportunity to say okay, so we have this big ancient CMS system behind us, we built on top of that and API layer that goes to the NuxtJS. Now, we are suddenly in the position to say, let's swap this old system out for a new one that's cheaper and lighter. And then so we gave them the opportunity for innovation on their tech stack, and it's so much cheaper now. And they can do it hosted in the cloud rather than on like a co located server somewhere in the basement. Right. So all of that starts to work. And I'm quite sure that most of their content pages will be some sort of a statically generated system, where then their ecommerce pages are more Nuxt in Universal mode. And I'm seeing that for the future, I think. Bryan Robinson 10:14 Awesome. That's really cool. So would you say that the NuxtJS and Gridsome are your jam in the Jamstack? Or, or what you know what sort of service or product is kind of what, what makes you love the Jamstack? Tim Benniks 10:28 Um, what I like most is like, let's let's think because the Nuxt and the Gridsomes, and maybe even Gatsby, or all of those, they work really well. But they work so well they're like black magic. And they're almost commonplace now, which is totally cool, right? It just works. So what excites me more are things like lambda functions, and how do I connect extra things against this stuff that just already works really well. Tim Benniks 10:56 So for example, I've built this little app. I've built a couple of apps to just figure out what this cloud stuff does, like I did for a talk, I was preparing about Jamstack, I actually built an application that connects to my Strava server. So Strava is where if you do a bike ride or you're running, they track your pace and your GPS and stuff. But then, if you want to embed what you did on your blog, it didn't work well. But I was running marathons. So I wanted to write a story embed a training run and talk about it just because I'm a nerd. I like data, right? It didn't work. So I decided, Okay, I'm just going to build my own embed. And I will query Strava to get all the data and then I will show my run on a 3d WebGL globe and you can follow me live. Tim Benniks 11:46 Just good fun. And that teaches you WebGL, it teaches you about how time works on a globe and like how do you plot GPS, all that craziness, but what made it fun Was that I decided, Okay, I, I don't want to have one node or PHP server or whatever that gets me all the data and then renders the front end. No, I want to do this in the Jamstack way where I have a single page app that's statically rendered. But that still does AJAX calls or some sort of REST calls to get the data and so I came up with something like four or five lambda functions. We use Azure Functions for this, because where I work, we get a free Azure subscription, which is great. And these guys are running fast. They do a lot of cool stuff nowadays. Tim Benniks 12:36 And so I had to learn like how do these function as a service thing kind of work, but I managed to do my auth authentication with token exchange with one function to get the list of my activities with another function, and then to grab the data off an activity and morph it into another type of structure. sure that I could use in JSON, for my representation on the 3d globe, the funny thing is like you only log in once, right? So that or maybe twice, whatever. And you only get the list of all of your activities maybe once or twice, but then you can click on every activity and you get them a lot. So if you need to scale you, you only have to scale the one where you get the activity all the time, but they don't know about each other. You just have to give it a token, and it understands what to do. Tim Benniks 13:32 And I also added a little bit of cache in front. So but there was also a redistributed cache. So it was not centralized. So there was nothing central there. And if I wanted to change my login flow, or add maybe a twitter login or a Nike login, I could do that because I used those lambda functions. So at the moment, that's my jam to see how can I put this together? How can I orchestrate it and how can I have fun with it and especially having let's say Web hooks in between those things. Like they can suddenly do things on their own, without me actually orchestrate Bryan Robinson 14:06 The robots taking over the world at that point. Tim Benniks 14:10 Oh, yes. Exactly. Bryan Robinson 14:13 So it's kind of the putting the pieces together and finding new and kind of expressive ways to build out fun applications. Tim Benniks 14:20 Exactly. And because at work, I have to do all these serious ecommerce things that also also, they all need to do this kind of stuff. But then they have extremely expensive monolithical systems that do this. But you know what, you don't really need it. Because if you want to scale a monolith come Christmas time, that's so hard to do that you have to put them on multiple servers, then you have load balancing, and then how do you maintain a session or a cookie, you have to share them between those systems, then you need to hire a company that does that for you. So that's so expensive and so bad for the environment. actually having these lambda functions that can scale indefinitely because they're so small Having your website as a static bunch of files, if you want to scale that you just put it in more places on the CDN. Right? So I really want to make sure that at work, this kind of thing starts to seep in. So it's not just playing anymore. This can be actual business. Bryan Robinson 15:15 Yeah, and especially, especially the e-commerce that Christmas time example is 100%. Like, how do you scale that without spending thousands or hundreds of thousands of dollars in a short period of time? Well, you can do it in lambdas and small functions. Tim Benniks 15:29 Yes, exactly. The only drawback is like, what we see in Jamstack is we tend to do this to simplify our lives, right? We don't want to have those older servers everywhere to keep stating the complicated stuff. But the drawback is you also have to orchestrate and maintain that all those small services keep working. And if one dies, what happens because you don't always notice, because if something is a monolith, the whole thing will likely die. In this case, it's just one island that silently drops off but you don't see it anymore. Which is pretty cool because it's very stable. But you're going to need to have some sort of a way to maybe deploy different versions of it or have a monitoring like if it's down or not like, there's all this extra stuff. So it's still probably expensive, but it's more of a one time thing. Bryan Robinson 16:18 Yeah. Cool. So So what is your actual jam right now? What's your favorite song? What's your favorite musician? Where are you listening to right now? Tim Benniks 16:27 So lately, I really, my dad actually put me on to this like, this is it's a little story that I that I have is like when I was young, in the Netherlands, in Amsterdam, where I grew up, you always take your bike to work as a young child, or not to work to school. That's what you do. So no school buses or whatever you just go, but my dad, when he had time insisted to take the car to bring us because then he could play us blues music. It was able to give us a sense of music and I love that so much. Now now that I'm 35, he still does that he still sends me stuff. So he sent me something called Fantastic Negrito which is quite modern approach to how you would play blues music. And it's very raw, and but it also kind of fits in a pop sense. He has a really cool political views, but it's also a gritty, it's a bit of like, I don't know, I cannot say that it's like Gary Clark, Jr. But what it means it's on the same kind of level. And it's kind of acceptable for people who are not blues fans. And I'm totally into this. And I can play a whole bunch of styles of music, but he has this energy that I just don't have, so I wouldn't be able to play that. And if it's something that's super technical, I can generally just practice until I have it with this guy that's just not there. It's all about the feeling. And this is why this is such a fantastic musician. So if you have the chance and you like blues, music or bit rock stuff, you should really try to listen. Bryan Robinson 18:02 Amazing. Awesome. So is there anything that you'd like to promote something that you're doing that you want get out into the Jamstack community? Tim Benniks 18:09 Actually, I would, and it's not specifically Jamstack focused. But recently, as I said, in the beginning, I've been I've been trying to record things and figure stuff out about content creation. And one of the things I I have always loved and now I'm trying to do is doing interviews with people a little bit like you are doing with me now, but then on YouTube, and I'm not here to just plug me in go to my channel. It's kind of more the people I get to interview. And because what we do is we go over how it has happened, that they are on the place where they are, like, how did they become so good at conference speaking or at teaching, or at, you know, open source contributing. Tim Benniks 18:55 So I have a whole bunch of VueJS core team members, I have developer advocates at Microsoft, like people who are quite far ahead of me, like they are on point like they're there for a while. And I'm lucky enough that they get they want to speak to me. And what we try to do is figure out how they got there. What is their story, and find kind of tips and tricks for people who aspire to do this, that they can do. Just the things that they say try it. And the most amazing stories come out that like, we would go to a cafe and drink something together, they wouldn't tell me and then on this interview based on a certain line of questions, or questioning, stuff comes out that I didn't know about, which is amazing. Tim Benniks 19:40 It's like there's people who were very depressed, couldn't get their job done and suddenly found this this way into tech and change their lives around or someone who was a single mom very young and didn't know what to do and is now the lead evangelist at Sitecore. Like these are amazing stories. So, what I would love to plug is just have a look at those interviews. And it's not just me, the guy who asked the questions, but listen to the people with their stories. I think that's worth your time if you're in our community. Bryan Robinson 20:14 Yeah, definitely. That sounds that sounds amazing. Well, we'll put a link to that on the show notes. Awesome. Thanks. Very cool. Well, thanks for taking the time and and being on the show with us today. And I hope you keep doing amazing things both as your agency and then kind of your personal time. Tim Benniks 20:27 Thanks a lot for that I had a blast being on. Bryan Robinson 20:31 Thanks again to Tim for being on the show and to you, our dear listeners for taking the time out of your week to listen in and find out more about our amazing community. Before we get to our sponsor, be sure to like hearts star favorite or whatever in your podcast app of choice and spread the word about the amazing people doing awesome stuff in our community. Bryan Robinson 20:50 And now for our sponsor. If you listen to season one you're probably aware of TakeShape by now. But as a reminder, TakeShape is a content platform for the Jamstack. TakeShape has a headless content management system an easy to use GraphQL API, a static site generator and amazing new product called Mesh, a service that can tie together multiple API's into their handy GraphQL interface. If you're doing anything with content on the Jamstack, be sure to check them out at takeshape.io/thatsmyjamstack. Bryan Robinson 21:20 That's it for this week. Thanks again for listening and we'll see you back here for the next awesome episode. Transcribed by https://otter.ai Intro/outtro music by bensound.com Support That's my JAMstack by donating to their Tip Jar: https://tips.pinecast.com/jar/thats-my-jamstack
Sponsored by DigitalOcean: pythonbytes.fm/digitalocean Special guest: Calvin Hendryx-Parker @calvinhp Brian #1: fastpages: An easy to use blogging platform, with enhanced support for Jupyter Notebooks. Uses GH actions to Jekyll blog posts on GitHub Pages. Create posts with code, output of code, formatted text, directory from Jupyter Notebooks. Altair interactive visualizations Collapsible code cells that can be open or closed by default. Metadata like title, summary, in special markdown cells. twitter cards and YouTube videos tags support Support for pure markdown posts and even MS Word docs for posts. (but really, don’t). Documentation and introduction written in fastpages itself, https://fastpages.fast.ai/ Michael #2: BeeKeeper Studio Open Source SQL Editor and Database Manager Use Beekeeper Studio to query and manage your relational databases, like MySQL, Postgres, SQLite, and SQL Server. Runs on all the things (Windows, Linux, macOS) Features Autocomplete SQL query editor with syntax highlighting Tabbed interface, so you can multitask Sort and filter table data to find just what you need Sensible keyboard-shortcuts Save queries for later Query run-history, so you can find that one query you got working 3 days ago Default dark theme Connect: Alongside normal connections you can encrypt your connection with SSL, or tunnel through SSH. Save a connection password and Beekeeper Studio will make sure to encrypt it to keep it safe. SQL Auto Completion: Built-in editor provides syntax highlighting and auto-complete suggestions for your tables so you can work quickly and easily. Open Lots of Tabs: Open dozens of tabs so you can write multiple queries and tables in tandem without having to switch windows. Save queries View Table Data: Tables get their own tabs too! Use our table view to sort and filter results by column. Calvin #3: 2nd Annual Python Web Conference The most in-depth Python conference for web developers Targeted at production users of Python Talks on Django, Flask, Twisted, Testing, SQLAlchemy, Containers, Deployment and more June 17th-19th — One day of tutorials and two days of talks in 3 tracks Keynote talks by Lorena Mesa Hynek Schlawack Russell Keith-Magee Steve Flanders Fireside Chat with Carl Meyer about Instragram’s infrastructure, best practices Participate in 40+ presentations and 6 tutorials Fun will be had and connections made Virtual cocktails Online gaming Board game night Tickets are $199 and $99 for Students As a bonus, for every Professional ticket purchased, we'll donate a ticket to an attendee in a developing country. As a Python Bytes listener you can get a 20% discount with the code PB20 Brian #4: Mimesis - Fake Data Generator “…helps generate big volumes of fake data for a variety of purposes in a variety of languages.” Custom and generic data providers >33 locales Lots of locale dependent providers, like address, Food, Person, … Locale independent providers. Super fast. Benchmarking with 10k full names was like 60x faster than Faker. Data generation by schema. Very cool >>> from mimesis.schema import Field, Schema >>> _ = Field('en') >>> description = ( ... lambda: { ... 'id': _('uuid'), ... 'name': _('text.word'), ... 'version': _('version', pre_release=True), ... 'timestamp': _('timestamp', posix=False), ... 'owner': { ... 'email': _('person.email', domains=['test.com'], key=str.lower), ... 'token': _('token_hex'), ... 'creator': _('full_name'), ... }, ... } ... ) >>> schema = Schema(schema=description) >>> schema.create(iterations=1) - Output: [ { "owner": { "email": "aisling2032@test.com", "token": "cc8450298958f8b95891d90200f189ef591cf2c27e66e5c8f362f839fcc01370", "creator": "Veronika Dyer" }, "name": "widget", "version": "4.3.1-rc.5", "id": "33abf08a-77fd-1d78-86ae-04d88443d0e0", "timestamp": "2018-07-29T15:25:02Z" } ] Michael #5: Schemathesis A tool for testing your web applications built with Open API / Swagger specifications. Supported specification versions: Swagger 2.0 Open API 3.0.x Built with: hypothesis hypothesis_jsonschema pytest It reads the application schema and generates test cases which will ensure that your application is compliant with its schema. Use: There are two basic ways to use Schemathesis: Command Line Interface Writing tests in Python CLI supports passing options to hypothesis.settings. To speed up the testing process Schemathesis provides -w/--workers option for concurrent test execution If you'd like to test your web app (Flask or AioHTTP for example) then there is --app option for you Schemathesis CLI also available as a docker image Code example: import requests import schemathesis schema = schemathesis.from_uri("http://0.0.0.0:8080/swagger.json") @schema.parametrize() def test_no_server_errors(case): # `requests` will make an appropriate call under the hood response = case.call() # use `call_wsgi` if you used `schemathesis.from_wsgi` # You could use built-in checks case.validate_response(response) # Or assert the response manually assert response.status_code < 500 Calvin #6: Finding secrets by decompiling Python bytecode in public repositories Jesse’s initial research revealed that thousands of GitHub repositories contain secrets hidden inside their bytecode. It has been common practice to store secrets in Python files that are typically ignored such as settings.py, config.py or secrets.py, but this is potentially insecure Includes a nice crash course on Python byte code and cached source This post comes with a small capture-the-flag style lab for you to try out this style of attack yourself. You can find it at https://github.com/veggiedefender/pyc-secret-lab/ Look through your repositories for loose .pyc files, and delete them If you have .pyc files and they contain secrets, then revoke and rotate your secrets Use a standard gitignore to prevent checking in .pyc files Use JSON files or environment variables for configuration Extras: Michael: Python 3.9.0b1 Is Now Available for Testing Python 3.8.3 Is Now Available Ventilators and Python: Some particle physicists put some of their free time to design and build a low-cost ventilator for covid-19 patients for use in hospitals. https://arxiv.org/pdf/2003.10405.pdf Search of the PDF for Python: "Target computing platform: Raspberry Pi 4 (any memory size), chosen as a trade-off between its computing power over power consumption ratio and its wide availability on the market; • Target operating: Raspbian version 2020-02-13; • Target programming language: Python 3.5; • Target PyQt5: version 5.11.3." "The MVM GUI is a Python3 software, written using the PyQt5 toolkit, that allows steering and monitoring the MVM equipment." Brian: Call for Volunteers! Python GitHub Migration Work Group migration from bugs.python.org to GitHub Calvin: Learn Python Humble Bundle Pay $15+ and get an amazing set of Python books to start learning at all levels Book Industry Charitable Foundation The No Starch Press Foundation Joke: More O’Really book covers
iPad tries to catch up to Surface, Adobe security flaws, Azure can't handle COVID, HTH gets a website, PowerShell modules, remote meeting madness, and the worst places to have a server closet. Extended show notes available at https://hthpc.com/ Producer: Jen Abis Boot-Up (Intro…random topics) 00:18 Folding @ Home Reminder: By downloading Folding@home and selecting to contribute to “Any Disease”, you can help provide us with the computational power required to tackle COVID-19. https://foldingathome.org/start-folding/ iPad dives beneath the Surface: https://www.theverge.com/2020/3/19/21186500/apple-ipad-pro-vs-surface-pro-trackpad-mouse-inputs-history Becky With the Good Hair: New Macbook Air with the good keyboard Another security flaw: Blame Adobe*: https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/adv200006#march-23-flaw Rename ATMFD.DLL and(?)/or disable Preview Pane to mitigate Azure storm clouds (in the UK): https://www.theregister.co.uk/2020/03/24/azure_seems_to_be_full/ What if Weird Al wrote our podcast? No Sleep / HTH Website Launch 27:38 Tiff Gits it done, creates a website with GitHub Pages, installs Linux and doesn't cry https://i.imgur.com/JGPN5ib.png
A forma mais prática para publicar blogs, especialmente se o blog for de uma pessoa desenvolvedora é a utilização de sites estáticos, são inúmeras as vantagens dessa abordagem. Post completo: https://codeshow.com.br/criando-seu-blog-com-zola-e-hospedando-de-graca-na-netlify/ Video no Youtube: https://Youtube.com/CodeShowBrunoRocha Os motivos que nos levam a escolher sites estáticos ao invés de um CMS completo incluem a simplicidade da linguagem Markdown, a possibilidade de armazenar o conteúdo gratuitamente em um repositório do Github ou Gitlab, a rapidez na renderização do conteúdo, a facilidade na migração caso precise mudar de servidor, a hospedagem gratuita em serviços como Netlify ou Github Pages e é claro não ter que manter bancos de dados e servidores web. Eu mesmo já tentei criar meu próprio CMS algumas vezes (1, 2) e no final das contas percebi que eu não preciso de um CMS complexo e você provavelmente também não. --- Send in a voice message: https://anchor.fm/codeshow/message
En este episodio hablamos de los generadores de sitios web estáticos que ya son una solución realista en el mercado para crear sitios rápidos y escalables. Además explicamos cuáles son sus principales beneficios (páginas generadas corren muy rápido) y sus inconvenientes (las funciones dinámicas como comentarios o formularios son más complejas de implementar) o por qué separar el origen de datos del resultado final en sitios pequeños donde no se genere mucho contenido puede ser un buen aliado. En el segundo bloque compartimos de las bases de un modelo de desarrollo con JAMStack orientadas hacia el cliente y no hacia el servidor y ahondamos en la diferencia competitiva de los Headless CMS frente al CMS tradicional.Enlaces recomendados:- VuePress es un generador de sitios web estáticos con Vue.js: https://vuepress.vuejs.org/- Una lista de los generadores de sitios web estáticos más conocidos del mercado con opción para filtrar por estrellas en el repositorio (popularidad) o seguidores en twitter: https://www.staticgen.com/- Stackbit te permite elegir la plantilla, el generador de sitios web estáticos, el CMS y donde lo quieres desplegar: https://www.stackbit.com- Webflow: https://webflow.com- Una lista de CMSs para sitios con un stack que se basa en JavaScript, API y Markup: https://headlesscms.org/- Generador de sitios web estáticos con Vue a partir de cualquier Headless CMSs o CMSs como WordPress, Contentful o Drupal: https://gridsome.org- Netlify: https://www.netlify.com- Cómo funciona un generador de sitios web estáticos: https://css-tricks.com/really-makes-static-site-generator/- Jekyll es un generador de sitios web estáticos, usa markdown, ruby y liquid para generar sitios html: https://jekyllrb.com- Una solución interesante de Headless CMS sin la necesidad de montar una infraestructura completa (no es que sea barato): https://www.contentful.com- Pelican es un generador de sitios estáticos que permite crear web de forma fácil, estas pueden almacenarse en GitHub Pages. Si quieres automatizar el proceso de actualizaciones puede utilizarse un servidor de integración continúa como Travis-CI: https://blog.getpelican.com/- ReadMe - documentación interactiva: https://readme.com- Una referencia de contenido en el mundo de frontend: https://www.smashingmagazine.com/- Open source Node.js Headless CMS to easily build customisable APIs: https://strapi.io- Hay un episodio de fenómeno mutante donde Óscar y Daniel radian cómo migran una web desde WordPress a Hugo: https://www.fenomenomutante.com/53-hugo-a-cascoporro/https://www.fenomenomutante.com/53-hugo-a-cascoporro/La mejor forma para comunicarte con nosotros es vía Twitter:Danny Prol: https://twitter.com/DannyProlClaudio Cossio: https://twitter.com/ccossio
THIS WEEK Apple macOS and iOS reminders Blog about Rugby World Cup Times Gatsby, Ghost, Github Pages, AnchorCMS & Blogspot (is still alive!) Piano (house) lessons Apple delays iCloud Drive file sharing until next Spring The Capture on BBC with Sharon Rooney & Ron Perlman
Quick show notes Our Guest: Phil Hawksworth What he'd like for you to see: JAMstack_conf San Francisco: October 16-18 | JAMstack.org/slack His JAMstack Jams: 11ty | Serverless Functions His musical Jam: Toto | Free Code Camp's Radio | Gaz Coombes Phil's post about dynamic 404 pages with Serverless functions Other Tech mentioned Jekyll Netlify Hugo Cloudinary Auth0 Transcript Bryan Robinson 0:03 Hello everyone, welcome to another episode of that's my JAMstack podcast where we are profile amazing people working in this awesome JAMstack community. In this podcast we ask the age old question, what's your jam in the JAMstack? I'm your host Bryan Robinson and today I'm joined by the ever amazing Phil Hawksworth. Phil is a member of the absolutely incredible developer experience team at a little JAMstack company called Netlify. Bryan Robinson 0:37 Hey, Phil, thanks for joining us on today's episode. Phil Hawksworth 0:40 Well, thanks for having me. It's, it's nice to be here. Bryan Robinson 0:43 Yeah, no problem. And I guess let's let's start. Hopefully, a lot of our audience knows who Phil Hawksworth is at this point. But I give us a little introduction. Tell us you know, what you do for work what you do for fun, that sort of thing? Phil Hawksworth 0:53 Yeah, of course. So say as you say, My name is Phil and I work at Netlify. So I'm kind of fairly well as a right in the middle of the the JAMstack kind of world really, I guess, been working in there for a little while. So I work as part of the developer experience team at Netlify. And I've been there for almost two years, I'm I don't quite know where the time has gone. But yeah, I've been there a little while now. But I've I've kind of been working on figuring out how to use Netlify as part of the JAMstack, finding out what people need from it, trying to find interesting ways to use it. And I've been, I've been interested in JAMstack and building kind of static sites, I'm careful of using the phrase static sites, it's so it's a dangerous thing to say. But I've been dabbling in that world for quite a long time, I used to work at an agency. So I did lots of work for doing architectures for different projects and clients there. And I kept on coming back to this approach that I now know to be called the JAMstack. Bryan Robinson 1:49 Cool. So you kind of already partially answered the next question. But your answer your point to the JAMstack was in this agency world? Phil Hawksworth 1:56 Yeah, I think really, anyone who's been doing anything like technical architectures in an agency, where the client often dictates the the kind of platform and the architecture you might use, irrespective of what the problem is you're trying to solve, I was in that world for quite a few years. And more and more often, I'd be thinking, we can simplify this, there's an easier way to build these things out. You know, often a project would have an aggressive lead time, but that didn't always marry perfectly with the lead time for the infrastructure you have to build on. So for quite a long time I was I was really curious about how we might simplify things, how we might pre render things, and then serve them from a much simpler hosting infrastructure. And to be honest, it was things like Jekyll and GitHub Pages that got me into this. I think that's probably an entry point for lots of people over the years. Phil Hawksworth 2:45 I think Jekyll was one of the first static site generators that made things really approachable, and was you know, felt mature and felt like it was well documented and had a nice on ramp, if you could get over one of the two of the wrinkles to do with Ruby. I'm not a Ruby guy. So that usually where I came unstuck, but once you got past that, I found that that was the that was the way in for me. And I got really excited about how easy it could be to generate a site and deploy it onto something like GitHub Pages at the time, which I think was pretty much at the forefront of automating kind of hosting a static site. So that's, that was my route in. Bryan Robinson 3:21 Okay, and how the clients feel about that. Like you said, like, they tend to dictate technology, irrespective of what they're doing. Phil Hawksworth 3:28 Yeah. And it, it really depended on the client. Some, some clients were much more open to it than others. But I found that the bigger the brand, and the big, like the more established they were in the market, the more likely they would be to say, Oh, no, no, that's not for us, we need an expensive thing. irrespective of how complicated the thing is you're making. Phil Hawksworth 3:50 So actually, that that became quite a difficult challenge, I found to to actually persuade people that they didn't need to spend a fortune on complex infrastructure and something simpler could could actually serve the purpose. And that that kind of played into the conversations I started having with Matt and Chris, the founders of Netlify back in the day, as, as they were trying to coin this term JAMstack, because they were having the same problem, you know, I was talking about static site architectures, and they were doing the same thing. And I think it's such a loaded term, the word static, that, you know, that's where the phrase jumpstart was kind of born from this, this, this desire to get beyond the kind of baggage that comes with the term static, which makes people think simple. Phil Hawksworth 4:37 And I think as the the ecosystem, and all of the vendors and tools have matured around this, that's what's takes JAMstack sites to something beyond static, you know, it's beyond what you might think of traditionally a static so that's, that's where that kind of term I think, was was born from, and that was my entry point into as well trying to find ways to convince clients, some of whom would be okay with it, some of whom would need some convincing the they could spend less and go faster, which seems like a sweet spot for me. Bryan Robinson 5:04 Well, yeah. And it's funny, because like, clients assume that the more you pay, the better the service is. And that's not necessarily true. In fact, it rarely, is. Phil Hawksworth 5:13 Yeah, there's, I think there's always this kind of feeling of finding something which is reassuringly expensive. I've definitely been in that world a lot where, by default, particularly the larger brands, who might go to a large, you know, big global agency, which is the kind of place I was working at, they, I think there's an assumption that they, they need the best in class thing, which has the biggest price tag. And often those are the things that are designed to do a wide variety of things for a wide variety of people. And that makes it hard for them to do the right, you know, the one thing that you need well, and so it's, yeah, it's definitely not like a perfect kind of marriage of what you pay more, you get something which is better. Phil Hawksworth 5:59 This is a great example, I think JAMstack's a great example of simplifying and focusing down on the on really what you need to do, and then building that out, rather than trying to use a product which can do everything for everybody, which, as we all know, is hard to do. Well. Bryan Robinson 6:15 Cool. So obviously, you are working at one of the bigger JAMstack companies in the world, but how are you using the JAMstack professionally? How are you using it in your personal life, that sort of thing? Phil Hawksworth 6:26 Well, I certainly am still using it very much in my personal life. You know, any sites that I that I make, either from my own blog, or any of my kind of side projects, what have you, I've got a handful of those. And I'm, I'm very promiscuous, when it comes to the static site generator, I use that I think we all kind of have our have our darlings that we like, over over and those kind of evolve over time. You know, I already mentioned Jekyll as the one that I started with him for a while I was also using Hugo a lot really got into Hugo. Phil Hawksworth 7:00 More recently, I've been using 11ty it on my own site and various kind of hobby sites of mine and kind of sites of side projects. But at Netlify I we also use all of the all of those as well, you know, we use our .com site is built on Hugo has been for quite some time. But we also use things like React Static, which is which I think is an excellent framework for things like headless cms.org, that's with react static and also static gen. Phil Hawksworth 7:35 So those, those are both websites that that Netlify put together so we use those static site generators. Aa bunch of templates and example sites, I use a 11ty on, which is there's all sorts all over the place. And and the only reason I feel kind of safe in doing that is one of these core properties of JAMstack sites in the you know, I don't need maintain that platform, once it's deployed. You know, if I've deployed something in one framework, one static site generator, I know that that's going to just keep working, as long as I don't, you know, I don't need to go back and keep maintaining it, I know that will be be fine. So I feel reasonably comfortable with, you know, trying out different static site generators, here or there. And knowing that once something's deployed, is just going to stay deployed. Phil Hawksworth 8:22 And that's one of the kind of nice attributes of this stack. And the the overhead really is in remembering how to maintain it. And if you want to make changes, remembering the different templates, and syntax is and those kind of things. But that's one of the hazards of being someone like me, who's kind of dabbling with lots of different static site generators and, and trying lots of different things out at the same time. But and I don't know, that's kind of that's kind of fun, it keeps it fresh as well. Bryan Robinson 8:46 So you're experimenting with a lot. So what what is your current jam, right? Like, what what are you really enjoying using at the moment, or, you know, in the coming, you know, few months? Phil Hawksworth 8:58 I feel like a lot of my colleagues, gonna make fun of me, because I'm always going on about 11ty. And I really enjoy it very much. And it feels, it feels to me a lot like Jekyll, in so much of as it's a it's kind of approach and the logic that sits down within it. But it doesn't have that Ruby speed bump that I mentioned. So it's very, very portable, in terms of both the output that it creates, like all JAMstack sites, but also the build environment is very, very quick and easy to get bootstrapped with it. Phil Hawksworth 9:29 So I've been having just a ton of fun with that, especially as the project's been evolving a little bit. And it started to add things like support for JavaScript in the data files. So that's a fairly kind of common convention, I think, for static site generators to have a folder full of data files that you can use in your templates. And I really like the fact that it will let you write those files with JavaScript, which could go off and make a request and return data. So it makes it very easy to pull data in from different points that build time. It just makes it loads of fun. So yeah, I've been having, I've been having a lot of fun with that recently. Phil Hawksworth 10:08 And the other thing I'd maybe call out is some I've been dabbling more and more with serverless functions, which I know kind of aren't necessarily kind of, from a purist point of view, part of the JAMstack, but they're, they're best friends, I think, you know, they complement each other really, really well. And so I've been having a bit of fun playing with things like using serverless functions as a fallback as a 404. Sso for any routes on my page on my sites that don't, that don't resolve to a pre generated page, sending those off to serverless functions instead, which can then dynamically render on the fly, something that's maybe hitting a data source or something like that. So it's an interesting kind of model. I'll publish some some examples of that. Hopefully, they'll be out by the time this is this is this is published as well. Bryan Robinson 10:55 I'm very, very interested in that. That's, that's a concept that I hadn't even thought about. Phil Hawksworth 10:59 Yeah, it's a really, it's really interesting, because I think there's this temptation sometimes to say, well, we could use serverless function to, to render things on the fly. So we're still kind of, you know, not having a web server. And you know, we don't you know, so we've still, we still got that kind of simplicity in terms of the infrastructure, but you're not pre generating them. So I'm always cautious. I like to try and pregenerate as much as possible. So if something fails, it fails in my house, not in the user's house. But it's interesting thinking of serverless functions as a fallback for 404s, particularly if you're hitting something like a database, when you're generating the pages, you know, what if you're adding content to the database, and while the site is regenerating, and maybe creating other pages, your 404s could hit that database directly. And then return pages is an interesting kind of model just to extend the reach of JAMstack. So yeah, I've been having a lot of fun playing with that recently, Bryan Robinson 11:54 And so so where do you you mentioned pre rendering, and how, you know, that's kind of your philosophy on it? Where do you lie when it comes to like pre render, and then taking over that render with JavaScript on the fly on the front end? Phil Hawksworth 12:08 I'm, I mean, I think that was great. I think it's, it's one of those things that, you know, it's all down to progressive enhancement, right? And treating things as, as a progressive enhancement, and deciding where your baseline is, what are you enhancing from, because you could very easily argue that a JAMstack approaches to render an empty body tag with a div with an ID in it, and then everything comes down the wire is JavaScript, and you do everything in the client. That's perfectly valid. And I think you know, it, there's this word again, it depends, right? Phil Hawksworth 12:42 You know, if you're building an application, maybe that would be fine. But I love to try and get as much pre rendered as possible. So that while you're going off and making the request for JavaScript, the user has something to see. And while your JavaScript being interpreted particularly on things like mobile devices, which we know not everyone's got a powerful iPhone in their pocket, there are lots of like, less powerful devices, even if the connectivity is good, the power that's required to pause and execute and do all this stuff with JavaScript can make things a bit slow. Even if we're doing you know, what feels like a performant thing. We're relying on JavaScript a lot, we need to be careful. So I like to pregenerate as much as humanly possible. And you end up in this position where there's a balancing act, isn't there? Phil Hawksworth 13:28 I mean, you've got to think about what's, what's reasonable, and what starts to add complexity for the sake of being a purist, and way that balance up. But yeah, I like pregenerating as much as possible. And then really thinking about progressive enhancement. And I'll always stand by progressive enhancement. I know, I know, there's some debates around that at the moment. But I think that's the right way to go. Bryan Robinson 13:49 So you've been professionally in this like, full on JAMstack world for a couple years now at Netlify. You were dabbling in it at the agency. Other than obvious being gainfully employed in a JAMstack company, what's going to keep you in the JAMstack going forward. What makes you just kind of deep down? know that that's kind of the future? Phil Hawksworth 14:08 Well, I think, I think a big part of it is seeing the, the JAMstack ecosystem. Gah, that sounds like a terrible, like salesy phrase, isn't it but there are so many tools and vendors now, really supporting this and being a part of it, whether that's the explosion in the different types of headless CMSs or things like image services from people like Cloudinary, or Authentication Service services from people like Auth0, there's so many things coming along people doing ecommerce, there's, there's so much. So I think seeing the advancement in each one of those areas, that's keeping it very interesting for me. Phil Hawksworth 14:48 And it's a I think it's a real validation that the approach is starting to reach critical mass, the fact that businesses are being formed and, and funded and you know, established based on these kind of models. And I think that's really exciting. There are so many people looking at different avenues now, here that we can all make use of that keeps it far from dull, and I love playing with all of the new services as they as they, they surface. It's nice. Bryan Robinson 15:18 So I think you might be uniquely situated to answer this question, which I haven't had a chance to ask before, which is, what are kind of the impediments to JAMstack flourishing in the future? Is it going to keep exploding? Are there any things we need to worry about in terms of hurdles? Phil Hawksworth 15:33 Oh, that's a good question. I mean, it, I always, I'm always surprised about how the boundary seems to seem to get put getting pushed back further and further away. Because you know, the more you look at it, the more you think of think of the model as kind of static first and, you know, approach the approach the architecture, as I'm going to assume things are going to be static, unless I reach something that I just can't make static, and then look at the alternatives, as opposed to doing the other way around, where we might traditionally have thought, Okay, well, I need, I'll have a dynamic back-end, but there might be some opportunities to do things that are cached or make static and what have you. And, and I think that's, that's the harder way to approach it, I much prefer doing it the other way and assuming static first. Phil Hawksworth 16:17 So the roadblocks seem to get pushed further and further away. Um, I think the, probably the ceiling that's hard to get through at the moment is sites that have many, many URLs, many, many pages. So I'm talking many hundreds of thousands or millions of pages, that's really tough to do from a pre generated standpoint. And static site generators are getting faster and smarter about that. And, you know, and I know lots of people are working on trying to get beyond the, this kind of hurdle of can be selectively generate different parts of the site. And it's a fairly complex problem, because the dependency graph of you know, all of your templates and pages isn't very nice, isn't necessarily very easy to visualize, or easy to understand. So that's an interesting challenge. But once we, once we get further down that line, and the site generators get faster and faster, I think that opens the doors to bigger and different types of sites as well that maybe have millions of millions of URLs, which at the moment is, is probably a bit of a ceiling for us. Bryan Robinson 17:20 Well, and really, I'm trying, I'm trying to think of what those sites would be other than, like big news organizations. That's about the only thing I can think of don't have millions of your eyes. Phil Hawksworth 17:31 Yeah, I think typically, that's that's the classic example, you know, news, news organizations, or publications that have, you know, many hundreds of thousands of pages. Yeah. And the other one, of course, is sites that have lots of targeted, personalized content, that can be challenging as well. But again, that starts to become one of those points of how you architect it and what you're what what you value. So for instance, Netlify the app itself and Neltify, you know, where you go and configure your sites and all of those things, that has hundreds of thousands of users using it. And they're all using content, which is specific to them, you know, it's the data which is specific to their sites. But it's a JAMstack site. It's a, it's a staticly served React app, which then talks to dynamic API's. And you, that seems like a good model, you aren't giving up the pre generated nature of every page that might then be cruel, callable by search, search engines and what have you. But that's fine. But in that kind of environment, you know, I don't want the admin view of my website, you know, admin console being crawled by Google. So it's, there's a balancing act, and it's trying to figure out what's, what's appropriate and what you actually want. But yeah, so serving personalized content to people and then having that crucibles because you needed regenerated. That's another challenge. But I don't always know if it's actually required. Bryan Robinson 19:02 And on top of that, like most of those personalized things, you don't want crawlable anyway. So you probably right, as long as as long as you are connected in a way that the user gets the content properly, then you're probably pretty good to go. Phil Hawksworth 19:13 Yeah, I think so. Yeah. So it's always a balancing act. And then I'm very cautious about describing anything as a silver bullet. And there are so many different ways that we can approach these architectures with the, with the tools that we've got in the jam stack. ecosystem, there's that word again. There's so many tools and approaches that we can take that we can kind of cut the cloth to suit what we need, I think, Bryan Robinson 19:34 So obviously, I try to keep these relatively short. So I'm gonna go ahead and move into the next question, which is, what are you actually jamming to right now? What what's your musical jam? Phil Hawksworth 19:43 Oh, this is a great question. Well, obviously, Toto is never far from the top of my history. It's amazing how often I fall back to having some Toto being played is particularly good on a Friday afternoon, I think, when I need a little bit of a spring in my step. Phil Hawksworth 20:04 But I one of the things I actually often find myself writing code to is the, the, the code radio that Free Code Camp provided. And if you've encountered that, it's just, it's just a YouTube link. And it's like this 24/7 music that's good to code by radio. And it's kind of nice as well, because you tuned in there, and you can see how many other people are listening as well. So even though you're not interacting in any way at all, you've got this kind of solidarity, which is kind of nice. Phil Hawksworth 20:34 So those two things, but the only other thing I'd probably mentioned his Gaz Coombes, who he used to be the lead singer of super grass going back way, way back. But he's, he's got some albums out at the moment that I really, really like, and kind of keep me keep me interested as I'm kind of writing things and and building code. So yeah, definitely recommend Gaz Coombes, I think called Matador that I've been listening to a lot. It's good stuff. Bryan Robinson 21:03 I'll find that and tuck that in the show notes. So anything that you're you're looking to promote, obviously, you're identified, but anything specific, you want to talk about Phil Hawksworth 21:11 the so there's probably just just two things. And depending on the timing of this, we've got JAMstack conference coming up in San Francisco, on the 16th, 17th, and 18th of October. So who knows, maybe this will squeak out into the world in time. Hopefully it's coming up very quickly. So that's, that's coming up. Phil Hawksworth 21:30 And the only other thing I'd call out is there's now a nice slack community growing for the JAMstack community. And there are already a couple of good places to talk like TheNewDynamic Slack is a brilliant place that I'd recommend to people. But also for people who are maybe going to JAMstack conferences and meetups jamstack.org/slack will get you into a good place for for talking about all things JAMstack, we, we foolishly didn't call it JAMslack, which I think Jake Archibald kind of mentioned was a huge missed opportunity but so be it will have to that's just that's just a mess that will have to live with Bryan Robinson 22:11 and I might be a little too kitschy for some people though. Phil Hawksworth 22:16 Yeah, we've we've stuck with just jamstack.org/slack Bryan Robinson 22:22 Alright. Well, I want to thank you for for taking the time and talking with us today. And and I want to say I appreciate all the all the different content that you put out. Phil Hawksworth 22:30 Oh, that's very kind. Well, thanks for this. It's, it's nice to get to talk. And yeah, I've really enjoyed listening to everyone you've had on so we're looking forward to whoeverTranscribed by https://otter.aiIntro/outtro music by bensound.com
Sponsors Triplebyte $1000 signing bonus Sentry use code “devchat” for 2 months free Linode Panel Charles Max Wood Aimee Knight Chris Ferdinandi AJ O’Neal Joe Eames Episode Summary Today the panel discusses what is necessary to get a website up and how complicated or simple it needs to be. They mention different tools they like for static sites and ways to manage their builds and websites. They talk about why some people choose to host their websites and at what point the heavier tools become a concern. They discuss whan it is necessary to use those heavy tools. They caution listeners to beware of premature optimization, because sometimes businesses will take advantage of newer developers and make them think they need all these shiny bells and whistles, when there is a cheaper way to do it. It is important to keep the tools you work with simple and to learn them so that if you encounter a problem, you have some context and scope. The option of serverless website hosting is also discussed, as well as important things to know about servers. The panel discusses what drives up the price of a website and if it is worth it to switch to a cheaper alternative. They discuss the pros and cons of learning the platform yourself versus hiring a developer. The importance of recording the things that you do on your website is mentioned. Several of the panelists choose to do this by blogging so that if you search for a problem you can find ones you’ve solved in the past. Links Heroku Github Pages Netlify Eleventy DigitalOcean Lightsale Ubuntu Git clone Node static server Systemd script NGinx Cloud66 Thinkster Gatsby Docker Gentoo How to schedule posts with a static website How to set up automatic deployment with Git with a vps Automating the deployment of your static site with Github and Hugo Follow DevChat on Facebook and Twitter Picks Charles Max Wood: Microsoft build Aimee Knight: Systems Thinking is as Important as Ever for New Coders Chris Ferdinandi: Adrian Holivadi framework video Server Pilot AJ O’Neal: Jeff Atwood tweet More on Stackflow Architecture Minio Joe Eames: Miniature painting
Sponsors Triplebyte $1000 signing bonus Sentry use code “devchat” for 2 months free Linode Panel Charles Max Wood Aimee Knight Chris Ferdinandi AJ O’Neal Joe Eames Episode Summary Today the panel discusses what is necessary to get a website up and how complicated or simple it needs to be. They mention different tools they like for static sites and ways to manage their builds and websites. They talk about why some people choose to host their websites and at what point the heavier tools become a concern. They discuss whan it is necessary to use those heavy tools. They caution listeners to beware of premature optimization, because sometimes businesses will take advantage of newer developers and make them think they need all these shiny bells and whistles, when there is a cheaper way to do it. It is important to keep the tools you work with simple and to learn them so that if you encounter a problem, you have some context and scope. The option of serverless website hosting is also discussed, as well as important things to know about servers. The panel discusses what drives up the price of a website and if it is worth it to switch to a cheaper alternative. They discuss the pros and cons of learning the platform yourself versus hiring a developer. The importance of recording the things that you do on your website is mentioned. Several of the panelists choose to do this by blogging so that if you search for a problem you can find ones you’ve solved in the past. Links Heroku Github Pages Netlify Eleventy DigitalOcean Lightsale Ubuntu Git clone Node static server Systemd script NGinx Cloud66 Thinkster Gatsby Docker Gentoo How to schedule posts with a static website How to set up automatic deployment with Git with a vps Automating the deployment of your static site with Github and Hugo Follow DevChat on Facebook and Twitter Picks Charles Max Wood: Microsoft build Aimee Knight: Systems Thinking is as Important as Ever for New Coders Chris Ferdinandi: Adrian Holivadi framework video Server Pilot AJ O’Neal: Jeff Atwood tweet More on Stackflow Architecture Minio Joe Eames: Miniature painting
Sponsors Triplebyte $1000 signing bonus Sentry use code “devchat” for 2 months free Linode Panel Charles Max Wood Aimee Knight Chris Ferdinandi AJ O’Neal Joe Eames Episode Summary Today the panel discusses what is necessary to get a website up and how complicated or simple it needs to be. They mention different tools they like for static sites and ways to manage their builds and websites. They talk about why some people choose to host their websites and at what point the heavier tools become a concern. They discuss whan it is necessary to use those heavy tools. They caution listeners to beware of premature optimization, because sometimes businesses will take advantage of newer developers and make them think they need all these shiny bells and whistles, when there is a cheaper way to do it. It is important to keep the tools you work with simple and to learn them so that if you encounter a problem, you have some context and scope. The option of serverless website hosting is also discussed, as well as important things to know about servers. The panel discusses what drives up the price of a website and if it is worth it to switch to a cheaper alternative. They discuss the pros and cons of learning the platform yourself versus hiring a developer. The importance of recording the things that you do on your website is mentioned. Several of the panelists choose to do this by blogging so that if you search for a problem you can find ones you’ve solved in the past. Links Heroku Github Pages Netlify Eleventy DigitalOcean Lightsale Ubuntu Git clone Node static server Systemd script NGinx Cloud66 Thinkster Gatsby Docker Gentoo How to schedule posts with a static website How to set up automatic deployment with Git with a vps Automating the deployment of your static site with Github and Hugo Follow DevChat on Facebook and Twitter Picks Charles Max Wood: Microsoft build Aimee Knight: Systems Thinking is as Important as Ever for New Coders Chris Ferdinandi: Adrian Holivadi framework video Server Pilot AJ O’Neal: Jeff Atwood tweet More on Stackflow Architecture Minio Joe Eames: Miniature painting
In this episode Paul & Kristoff discuss electricity memes, automating Google Drive, and potential DNS pitfalls when using GitHub Pages. Mozilla’s response: https://hacks.mozilla.org/2019/05/technical-details-on-the-recent-firefox-add-on-outage/ HN: https://news.ycombinator.com/item?id=19871989 Link for the router: https://smile.amazon.com/gp/product/B079SD8NVQ/ Signal Electricity memes: https://i.imgur.com/1GNNhXd.jpg https://i.imgur.com/rZ36caS.png Google Drive Automation: https://paul.af/scripting-google-drive Emmet (html:5): https://emmet.io/
In this episode Paul & Kristoff follow-up on the Pi-hole install and the status of Paul’s GPU computer woes (hint: no bueno). Fidget spinners, side projects, and a shoutout to Paul’s favorite Northern Michigan brewery are discussed before diving into the meat of the episode: the baby steps to getting your own little slice of the Internet. B. Nektar Punk Lemonade: http://www.bnektar.com/brews/punk-lemonade/ Short’s Barney Blood: https://www.shortsbrewing.com/beers/barney-blood/ Router: https://smile.amazon.com/MikroTik-RBD52G-5HacD2HnD-TC-Dual-Concurrent-802-11a-Ethernet/dp/B079SD8NVQ/ Spinetic Spinners: https://spinetic-spinners.com/ The “bow-tie”: https://spinetic-spinners.com/product/kepler-dapper-spinner/ Paul’s ACME client software: https://uly.io/ar Paul’s Medium RSS -> JSON software: https://meed.js.org/ Beards Brewery: http://www.beardsbrewery.com/ Paul’s Framed Minnesota LTD: https://paul.af/framed-minnesota-ltd Kristoff’s N=1: https://www.framedbikes.com/collections/bikes/products/alaskan-carbon-fat-bike-26?variant=17295828811827 Trek Roscoe 8: https://www.trekbikes.com/us/en_US/bikes/mountain-bikes/trail-mountain-bikes/roscoe/roscoe-8/p/23608/ Rocky Mountain Growler 50: https://www.bikes.com/en/bikes/growler/2019 Gandi: https://www.gandi.net/en Namecheap: https://www.namecheap.com/ GitHub Pages: https://pages.github.com/ Nearly Free Speech: https://www.nearlyfreespeech.net/ DigitalOcean: https://www.digitalocean.com/
In this episode, Wes and Scott debate Gatsby vs Next — how they compare, the pros and cons of each, why you might chose one over the other for your next project, and more! LogRocket - Sponsor LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session replayer and a performance monitor. Get 14 days free at https://logrocket.com/syntax. The Armoury - Sponsor The Armoury is a men’s clothing and accessories retailer that provides some of the highest quality clothing you can buy. Designed for those of you who want the highest quality clothing that feels great and will last forever. Buy less, buy better. Follow them on Instagram @thearmourynyc and check out their website TheArmoury.com. Show Notes 5:07 - Server Side Rendering Next.js will render on demand — this allows you to have server rendered pages on demand. Think of a blog website — publish a new blog post and it will immediately start working. Authenticated pages can be server rendered, and thus, pre-loaded for better performance. Gatsby runs at build time only — so you need to have all of your data ready at build time. Pro: This makes for very fast page load. Con: Large websites can take a long time to build. Con: Gatsby can do network fetches from the client, but these lose the benefit of SSR. Ease of SSR: Next.js requires a complicated document.js file if you are fetching data anywhere other than a page component. This will probably get easier with Suspense. Demos are simple, but any real application requires harder config. Gatsby is Easy Peeezy! 11:09 - Data Next.js is unopinionated. Like React, it doesn’t care where your data comes from. getInitalProps(); Gatsby has a number of “source” plugins which will pull in data from sources — markdown, WordPress, API, file system. Once you have that data sourced, you can query it with GraphQL. 22:50 - Routing and Creating Pages Next.js makes you create a page in a pages directory. You can nest these as deep as you like. If you want to pass query params, you must do so with a ?query=string. There are several third-party options for getting around this that require a node server. Gatsby allows you to programmatically create pages with their createPage API. For both navigating between pages, they make a Link Component available. 30:49 - Plugins In Gatsby, everything goes through the Gatsby pipeline. This makes things like image compression, pagination, sass, service workers and many other progressive web app pieces very easy. Gatsby makes building a really good website easy. Gatsby Image is SOOOOO amazing. The scope of Next.js is much smaller. They give you a few things, but you generally bring your own approach for most things Routing Linking and prefetching Dynamic Importing 38:42 - Deploying and Hosting Gatsby is just HTML, CSS, and JS at the end of the day, so it can be deployed almost anywhere — Netlify, Github Pages, cheap PHP hosting, etc. Next.js is a Node app. It can be integrated into an existing Express app, or run by itself. Requires a Node server to run it. Next.js has a static generation option, but you’re better off using Gatsby for that. 44:41 - The verdict? Us Next.js for Apps, Gatsby for Websites Links LogRocket The Armoury Next.js Gatsby Netlify Node Express ××× SIIIIICK ××× PIIIICKS ××× Scott: Motion LED Lights Wes: The Dream Podcast Shameless Plugs Scott’s Pro Gatsby 2 Course Wes’ Courses Tweet us your tasty treats! Scott’s Instagram LevelUpTutorials Instagram Wes’ Instagram Wes’ Twitter Wes’ Facebook Scott’s Twitter Make sure to include @SyntaxFM in your tweets
Ponente: Cristina Fernández Spin-off de "Trucos fantásticos y dónde encontrarlos", en esta charla se va a profundizar en la técnica de transformación "GitHub Pages", que permite publicar una página web, crear un blog o hacer un tutorial con demos, código y notas, todo partiendo de un repositorio de código de GitHub. Para ilustrar esta técnica nos apoyaremos en trucos realizados por el ilusionista y cineasta Georges Méliès, uno de los primeros miembros de la escuela de Frontwarts (la escuela de magia frontend). https://comunidadcode.com/2018-02-15-ilusionismo-github-pages/
Michael and Jake return just in time to talk about the upcoming secret Laravel project, Nova, Laracon US 2018, static site hosting, and more!
Dans cet épisode, Guillaume et Emmanuel discutent GraalVM, Java LTS, MS-DOS, gVisor, GitHub et microframeworks. Enregistré le 14 juin 2018 Téléchargement de l’épisode LesCastCodeurs-Episode–191.mp3 News Correction Article de performance SpringBoot classique vs réactif L’article “SpringBoot 2 performance — servlet stack vs WebFlux reactive stack” est à prendre avec de grosses pincettes. Le client HTTP utilisé pour la version servlet est celui par défaut Java à base d’URLConnection. Pas de reused de la connection…. A 2500 users sur un benchmark IO bound avec un tel ratio wait/processing, il ne devrait pas avoir une telle différence de throughput. Nicolas Labro Langages GraalVM Les limitations de SubstrateVM Retour d’impression sur GraalVM GraalVM avec Play Framework Java 11 more than just features Replacing reflection with invokedynamic Librairies The rise of Microframeworks The state of Java/Kotlin Microframeworks in 2018 L’équipe de Grails a sorti un nouveau micro-framework, Micronaut, basé sur Netty et sans Spring, pour plus de légèreté Un workshop sur Micronaut pour démarrer avec Micronaut Est-ce qu’on a toujours besoin de Spock avec l’arrivée de JUnit 5 ? TL;DR : oui :-) Middleware JakartaEE is officially out Barre de progression de la contribution Oracle à Jakarta EE The state of Spring Java in 2018 Camel et Bean Validation débat Camel est l’option « no code » Infrastructure MS-DOS expliqué ! gVisor Product Manager de Google expliquant que gVisor est utilisé par App Engine et Cloud Functions Lancement de Skaffold pour automatiser le développement sur Kubernetes Skaffold sur Github Skaffold and Kaniko: Bringing Kubernetes to Developers Cloud Node 8 sur App Engine Web Angular 6 What’s new in Angular6 What’s new in Angular CLI 6.0 Les regrets de Ryan Dahl sur Node.JS (et lancement de son nouveau framework Deno) Article sur ses regrets On peut faire mieux que console.log() Outillage GitHub se fait gobber par Microsoft L’équipe Java Mission Control virée par Oracle Gradle 4.8 Méthodologies Hiérarchie et documentation Comment un agent public peut contribuer à l’Open Source Sécurité Custom domains on GitHub Pages gain support for HTTPS Vulnérabilité dans Git amenant à une exécution à distance Outils de l’épisode Byteman et injection de faute GitIgnore.io Outil de crowdcasting de Pierre Carion Rubrique débutant Crowdcast de Pierre Carion Pour un débutant qu’est-ce: les forces de Java ou de la JVM qui rend Java encore attractif bon choix pour commencer un projet en 2018 Conférences EclipseCon les 13 et 14 juin 2018 JHipster Conf le 21 juin DevFest Lille le 21 juin 2018 Voxxed Luxembourg le 22 juin 2018 Sunny Tech les 28 et 29 juin 2018 Jenkins User Conference le 28 juin 2018 Jug Summer Camp le 14 septembre 2018 - Le CfP est ouvert. Paris Web les 4, 5 et 6 octobre 2018 DevFest Nantes les 18 et 19 octobre 2018 - Le CfP est ouvert. Jenkins World Europe du 22 au 25 octobre 2018 à Nice - (utilisez le code JWAHERITIER pour obtenir 20% de réduction). VoxxedDays Microservices du 29 au 31 octobre 2018 DevFest Toulouse le 8 novembre 2018 Codeurs en Seine le 22 novembre 2018 Nous contacter Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
CK Editor, .App TLD, GitHub Pages SSL and the Importance of Accessibility on this week's Bit v. Byte! --- Support this podcast: https://anchor.fm/bit-v-byte/support
音の良いポッドキャストを録音するために ― Turing Complete FMの収録テクニック マランツプロ USBコンデンサーマイク 生放送・録音・ポッドキャスト MPM1000U lekcije DMM英会話の講師のレッスンに空きができた時にメールでお知らせ 技術書典 kmuto/review: Re:VIEW is flexible document format/conversion system GitBook Documentation your users will love! reStructuredText - Wikipedia 外灘 Instagram post by Shogo Sensui • Apr 29, 2018 at 8:50am UTC 豫園 Shogo Sensui on Instagram: “我実在是太明白了” メルペイ社員は上海出張がマスト! #メルペイなう vol.1 微信 - Wikipedia 支付宝 - Wikipedia Mobikeは世界初にして最大のスマートシェアサイクルサービスです。 about ofo oinume journal Custom domains on GitHub Pages gain support for HTTPS | The GitHub Blog 課金している有料のMacアプリ - oinume journal Bartender 3 | Mac Menu Bar Item Control Contexts - Radically simpler & faster window switcher for Mac Logic Pro X - Apple(日本) 「BetterSnapTool」をMac App Storeで Spectacle - Move and resize windows with ease
Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске: Ruby Ruby 2.6 added option to raise exception in Kernel#system, Ruby on WebAssembly и Deploying Ruby apps to Google Cloud Kubernetes Engine continuously with CircleCI Top 10 errors from 1000+ Ruby on Rails projects (and how to avoid them) и How to build rock-solid Ruby on Rails apps with BDD Enums with Rails & ActiveRecord: an improved way и GDPR Rails - Rails Engine for the GDPR compliance JavaScript CKEditor 5 v10.0.0 – the future of rich text editing looks stable, Using async iteration natively in Node.js и Custom domains on GitHub Pages gain support for HTTPS “last 2 versions” considered harmful with babel-preset-env – matches on “Opera Mobile”, “QQ Browser”, “Baidu Browser”, I built a PWA and published it in 3 app stores. Here's what I learned и Parallel programming in JavaScript Perfume.js - a JavaScript library for measuring Short and Long Script, First (Contentful) Paint (FP/FCP), Time to Interactive (TTI), Component First Paint (CFM), annotating them to the DevTools timeline and reporting the results to Google Analytics, Dinero.js - a library for working with monetary values in JavaScript, Webpack 4 configurator и ToastUI Calendar - a JavaScript schedule calendar with full featured Conferences Elixir Evening Club 2
Tweet this Episode This is a talk given by Uri Shaked at the recent Angular Dev Summit. If you'd like to be notified about the next Angular Dev Summit, go to the Angular Dev Summit website and register for an attendee ticket. Uri is a Google Developer Expert in Web Technologies and Angular. He also works for BlackBerry. Uri shows us how to build a static website using Angular and other web technologies. Links: Github Pages Jekyll yarn Core JS Zone JS TypeScript Visual Studio Code Angular CLI SystemJS Webpack Fuse-box Angular Universal ts-node urish.org (Uri's website) firebase hosting ng2-fused preboot angular-iot
Tweet this Episode This is a talk given by Uri Shaked at the recent Angular Dev Summit. If you'd like to be notified about the next Angular Dev Summit, go to the Angular Dev Summit website and register for an attendee ticket. Uri is a Google Developer Expert in Web Technologies and Angular. He also works for BlackBerry. Uri shows us how to build a static website using Angular and other web technologies. Links: Github Pages Jekyll yarn Core JS Zone JS TypeScript Visual Studio Code Angular CLI SystemJS Webpack Fuse-box Angular Universal ts-node urish.org (Uri's website) firebase hosting ng2-fused preboot angular-iot
Tweet this Episode This is a talk given by Uri Shaked at the recent Angular Dev Summit. If you'd like to be notified about the next Angular Dev Summit, go to the Angular Dev Summit website and register for an attendee ticket. Uri is a Google Developer Expert in Web Technologies and Angular. He also works for BlackBerry. Uri shows us how to build a static website using Angular and other web technologies. Links: Github Pages Jekyll yarn Core JS Zone JS TypeScript Visual Studio Code Angular CLI SystemJS Webpack Fuse-box Angular Universal ts-node urish.org (Uri's website) firebase hosting ng2-fused preboot angular-iot
In der ersten richtigen Folge erzählt Holger ein wenig aus dem Nähkästchen über seinen Podcast @autoweird.fm (Twitter). Wie kam es zum Podcast? Mit welcher Hardware nimmt er die Folgen auf? Welche Software kann er empfehlen und wie geht man eigentlich damit um, wenn im aktuellen Projekt Themen aufkommen, die auch im Podcast interessant sind? Holger ist Senior IT Consultant bei codecentric, blogt dort nur über JavaScript und hatte auch irgendwann mal einen eigenen Blog. Für die Folge hat er sich den Laden Ein als Aufnahmeort ausgesucht. @autoweird.fm startete mit Zencastr als Aufnahmesoftware und landete letztendlich bei Reaper und Ultraschall. "Herr Mies will's wissen" nutzt hier übrigens Ferrite und Podlove. Gehostet wird alles in der Cloud, da Soundcloud nicht voll überzeugen konnte. Holger und Benedikt erstellen mit Hilfe von Github Pages ihre Seite und Ihren Feed (bis das neue Layout eventuell den Feed killt).
It has been said that if a feature has not been documented, than it might as well not exist. It could not be more true from our findings and this week we finally take a look at all things documentation! We also get to your listener feedback and debate the future of progressive web apps, async/await, and a whole lot more. In addition to all of this AWESOME it has been officially been 1 full year of Merge Conflict! Thank you so much to our amazing listeners!
It has been said that if a feature has not been documented, than it might as well not exist. It could not be more true from our findings and this week we finally take a look at all things documentation! We also get to your listener feedback and debate the future of progressive web apps, async/await, and a whole lot more. In addition to all of this AWESOME it has been officially been 1 full year of Merge Conflict! Thank you so much to our amazing listeners!
02:11 - Ciro Nunes Introduction Twitter GitHub Blog 02:39 - Command-line Interface (CLI) 06:58 - Ciro’s Involvement with the CLI 08:10 - Features and Improvements for Angular 2 Ruby on Rails AST (Abstract Syntax Tree) Transformations NG6-starter 19:33 - Accessibility 26:36 - CLI Basics 28:11 - Testing 34:12 - Building a Production Pipeline 35:38 - GitHub Pages; Community Contribution Angular-cli The GDE Program Picks Star Wars: The Force Awakens (John) LEGO® Star Wars: The Force Awakens (John) ng-conf (John) AngleBrackets (John) Disturbed - The Sound Of Silence (Joe) The Hello World Podcast (Joe) Jurgen Van de Moere: How I feel about Angular 2 (Ciro) angular-cli (Ciro)
02:11 - Ciro Nunes Introduction Twitter GitHub Blog 02:39 - Command-line Interface (CLI) 06:58 - Ciro’s Involvement with the CLI 08:10 - Features and Improvements for Angular 2 Ruby on Rails AST (Abstract Syntax Tree) Transformations NG6-starter 19:33 - Accessibility 26:36 - CLI Basics 28:11 - Testing 34:12 - Building a Production Pipeline 35:38 - GitHub Pages; Community Contribution Angular-cli The GDE Program Picks Star Wars: The Force Awakens (John) LEGO® Star Wars: The Force Awakens (John) ng-conf (John) AngleBrackets (John) Disturbed - The Sound Of Silence (Joe) The Hello World Podcast (Joe) Jurgen Van de Moere: How I feel about Angular 2 (Ciro) angular-cli (Ciro)
02:11 - Ciro Nunes Introduction Twitter GitHub Blog 02:39 - Command-line Interface (CLI) 06:58 - Ciro’s Involvement with the CLI 08:10 - Features and Improvements for Angular 2 Ruby on Rails AST (Abstract Syntax Tree) Transformations NG6-starter 19:33 - Accessibility 26:36 - CLI Basics 28:11 - Testing 34:12 - Building a Production Pipeline 35:38 - GitHub Pages; Community Contribution Angular-cli The GDE Program Picks Star Wars: The Force Awakens (John) LEGO® Star Wars: The Force Awakens (John) ng-conf (John) AngleBrackets (John) Disturbed - The Sound Of Silence (Joe) The Hello World Podcast (Joe) Jurgen Van de Moere: How I feel about Angular 2 (Ciro) angular-cli (Ciro)
More Than Just Code podcast - iOS and Swift development, news and advice
This week we discuss all kinds of social networking tools prompted by Twitter's report on slowing user growth. We discuss how the various popular social networking tools are used by the general public and it skews differently for those of us in the tech sector. Picks: pttrns.com, bloc app, App Icon Template. Tim discusses Bed Debugging in the aftershow. Episode 51 Show Notes: Dashboard Twitter May Be a Takeover Target, but Google Is Unlikely to Take It Over Twitter Investors Brace for Crummy Q2 Earnings Facebook Periscope Maker Festival Toronto 2015 Instagram TweetDeck IT Crowd Season 3 Episode 4 - FriendFace LinkedIn Episode #2 – First World Problems – Aug 12, 2014 Foursquare Swarm by Foursquare Messenger by Facebook Fabric - Twitter's Mobile Development Platform Crashlytics Messenger is being downloaded more than Facebook’s flagship app MoPub - World's Largest Mobile Ad Server and RTB Build and Analyze: California Knife in Your Back Tweetbot Twitterific app.net Ello Loren Brichter CompuServe Seveneves a novel by Neil Stevenson Periscope on Pttrns.com Github Pages gist Long & McQuade: Canada's Music Store, Musical Instruments XRackPro2 BedBugsAndBeyond.ca Episode 51 Picks: Pttrns.com Bloc App App Icon Template
Show notes: http://betweenscreens.fm/episodes/112
Les Cast Codeurs se retrouvent en cette nouvelle année pour parler des quelques nouvelles Java de 2015, pour faire une rétrospective de 2014 et philosopher sur 2015. Six jours après l’attentat contre Charlie Hebdo et ce qui a suivi, on ne pouvait pas ne pas aborder ce sujet. Enregistré le 13 janvier 2015 Téléchargement de l’épisode LesCastCodeurs-Episode–116.mp3 Bonne année à tous et merci à nos sponsors cette année Sfeir et CloudBees qui nous ont permis d’atteindre le numéro 100. News Maître Eolas whois est Charlie Anonymous est Charlie et pastebin Le juge anti-terroriste Marc Trevidic Langages “Scala, c’est le Perl des snobs” Java EE et middleware MVC basé sur JAX-RS Hibernate OGM est sorti Hibernate Search 5.0 est sorti Les booth babes ne fonctionnent pas PaaS et mobile Thales et la Caisse des Dép. décident de se désengager de Cloudwatt: CloudWatt 2m de C.A 2014 pour 150m investit, Cloudwatt passe sous le contrôle à 100% d’Orange Vulnérabilité dans Google App Engine Android Studio 1.0 Pourquoi il ne faut plus utiliser CyanogenMod, ou les dégâts d’un management de cour de récrée Infrastructure Le 30 juin, on pète internet La specification des images Docker Docker 1.4.0, plus propre que jamais et les videos en ligne de DockerCon EU Iliad lance un service cloud sur ARM Au delà du code Les objets connectés et notre vie privée Podcast l’économie en questions GitHub n’utilise que des formats diffables Comment Github utilise Github (Pages) pour sa doc Un bon product manager… TravisCI, From Open (Unlimited) to Minimum Vacation Policy L’année 2014, l’année 2015 Rétrospective Le big data (Apache Hadoop, Apache Spark JavaScript en hyperinflation (AngularJS 2) ReactiveX JavaPosse qui tire sa révérence Lambda et programmation fonctionnelle Java 8 sort Sécurité (truecrypt, shellshock, heartbleed, gotofail, Sony, …) La sécurité dans les outils DevoOps Larry Elisson La place des minorités dans la tech Apple et la baisse de la qualité du logiciel Rapport au gouvernement développeurs en France Microservices PaaS - ça se calme Prévisions 2015 Maturation de la Big Data Le hype du container et du micro service continue Bordel d’orchestration des micro et des containers API Asynchrones Sécurité Modularité de Java: mouahahahahah Rien dans le mobile La guerre des plateformes (Microsoft Azure, Google Services, Amazon WS) Outils de l’épisode Le marketing pour les startups tech 2400 Jeux DOS jouables via le navigateur L’horloge en couleur hexa BotBot.me, un service pour archiver et accéder en temps réel aux logs des chats IRC Conférences CFP ApacheCon Devoxx France du 8 au 10 avril à Paris - Fin du CFP le 17 Janvier. DevopsDays Paris du 14 au 15 avril à Paris MixIt du 16 au 17 avril à Lyon Le crowdcasting Nous contacter Contactez-nous via twitter http://twitter.com/lescastcodeurs sur le groupe Google http://groups.google.com/group/lescastcodeurs ou sur le site web http://lescastcodeurs.com/ Flattr-ez nous (dons) sur http://lescastcodeurs.com/ En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com
Parker Moore joined the show to talk with Adam about blogging for hackers with Jekyll and GitHub Pages.
Parker Moore joined the show to talk with Adam about blogging for hackers with Jekyll and GitHub Pages.
Die zweite Episode dieses Jahres geht wieder quer durch Toms and Andrés Themengarten. Zu Beginn steht ein Review des letzten Technologieplauscherl in Linz, wo dieses Mal André einen Vortrag über Clojure halten durfte. Ein weiteres interessantes Thema welches beim Meeting angesprochen wurde ist Jekyll - ein statischer Webseiten-Generator. Tom und André sprechen über Wordpress Migration auf Jekyll und Github Pages. Am Ende des Podcasts sprechen Tom und André im "Gadget-Teil" über Spiegelreflex- und Systemkameras und deren Objektive. Rückblick ELGA Portal Datenpaket Podcast Technologieplauscherl vom 21.01.2014 Technologieplauscherl Homepage Neo Tastaturlayout Clojure SMACSS Buch: Secrets of the JavaScript Ninja Jekyll GitHub Pages Disqus Grain JBake Tools Vagrant Docker Linux LXC (Ubuntu Wiki) Overtone Overtone Github Meta-X Repl-Electric Kameras Canon EOS 600D Canon EF 50mm Objektiv The Wire Cutter The Wire Cutter - the first Canon lenses you should buy Sony Nex 3N The Wire Cutter - the best affordable mirrorless camera The Wire Cutter - the first Sony Nex lenses you should buy Fujifilm X-A1 Newyorker: Goodbye cameras Podcast Update Kinderwahnsinn Dads being Dads Turning this Car Around Pragmatic
Josep Lluis Giralt D'Lacoste is a software engineer passionate about technology in general. He is the Tech Lead at Eebz. He joins the show with Allen and Adi to talk about his GitHub repository about the summary of his Strava stats. Strava is an American website that tracks physical activity and integrates social network features. SponsorsAppSignalDeveloper Book Club starting with Clean Architecture by Robert C. MartinBecome a Top 1% Dev with a Top End Devs MembershipLinksThe strava summaryThe strava sync elixir scriptGuest github profile, which includes bits of the strava summaryThe strava summary erlang rewriteElixirConf EUgilacost - Personal SiteLinkedIn: Josep Lluis Giralt D'LacosteGitHub: gilacostPicksAdi - Send Adi a message if you're looking for a jobAllen - L.A. Noire - Rockstar GamesAllen - Team Bondi - WikipediaJosep - BlasphemousJosep - Traveling: Greece and its islands: a must-visit for nomadsJosep - Programming Phoenix Live View from Sophie de DeBenedettoAdvertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacy