POPULARITY
Grow faster than 99% of Etsy shops
Ratboi, Clop, Oracle, svgs, Impact Solutions, The Pentagon, Open AI, Josh Marpet, and More on this edition of the Security Weekly News. Visit https://www.securityweekly.com/swn for all the latest episodes! Show Notes: https://securityweekly.com/swn-517
Ratboi, Clop, Oracle, svgs, Impact Solutions, The Pentagon, Open AI, Josh Marpet, and More on this edition of the Security Weekly News. Show Notes: https://securityweekly.com/swn-517
Ratboi, Clop, Oracle, svgs, Impact Solutions, The Pentagon, Open AI, Josh Marpet, and More on this edition of the Security Weekly News. Visit https://www.securityweekly.com/swn for all the latest episodes! Show Notes: https://securityweekly.com/swn-517
Ratboi, Clop, Oracle, svgs, Impact Solutions, The Pentagon, Open AI, Josh Marpet, and More on this edition of the Security Weekly News. Show Notes: https://securityweekly.com/swn-517
In this special episode of NFT Morning, John welcome Amanda Terry, co-founder of OnChain Monkey and MetaGood, for a deep and inspiring conversation about the future of art on Bitcoin.Amanda recounts the visionary journey of OnChain Monkey, which started on Ethereum in 2021 with a technically groundbreaking mint: 10,000 SVGs inscribed in a single transaction. Early on, the team showed a strong commitment to sustainability and decentralization. This spirit led them to become the first full 10K collection inscribed as Ordinals on Bitcoin, using parent-child provenance.The project's ambition goes beyond PFPs. Amanda shares their mission to advance the art on Bitcoin movement—with a clear cultural, technological, and even humanitarian vision. The conversation also highlights exciting artist collaborations (like Alexis André, Patrick Amadon, and Bryan Brinkman), the launch of their curated Ordinals marketplace Osura, and their ongoing outreach to museums and institutions. Their belief: Ordinals are the future of digital heritage—immutable, enduring, and deeply Bitcoin-native.With Amanda's contagious optimism and a sharp strategic vision, this episode is a must-listen for anyone curious about Bitcoin's artistic renaissance and the pioneers leading the charge.More details here: * OnChainMonkey official website* Osura marketplace official website* OnChainMonkey Twitter account* Amanda Terry's LinkedIn profile* video replay of this episode This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit www.nftmorning.com
Accessibility and sustainability collide in this eye-opening conversation with Heather Neff, CEO of Equivalent. She returns to AXSChat to share groundbreaking developments in their mission to transform static graphics into responsive, accessible code.What if every image online could instantly adapt to your device settings, work seamlessly with screen readers, and consume a fraction of the energy? That's exactly what Equivalent is achieving through their revolutionary approach to Scalable Vector Graphics (SVGs). Unlike traditional pixel-based images that remain fixed and deteriorate when enlarged, these "smart SVGs" behave more like webpages - responding to dark mode, custom color settings, and accessibility preferences without requiring additional effort from users or developers.The implications are profound. With AI systems generating 34 million images daily and users uploading 64,000 images every second, we're facing an unprecedented accessibility crisis. Equivalent's technology addresses this by dramatically reducing file sizes (from megabytes to kilobytes) while ensuring graphics can be navigated by screen readers with custom reading orders. The sustainability benefits are equally impressive - their dark mode implementation alone can reduce energy consumption by 28% and extend mobile battery life by up to 63% on OLED displays.The small startup is now preparing to launch an API that will allow enterprises to batch-convert thousands of images, ensuring both brand consistency and accessibility compliance without requiring specialized knowledge from design or engineering teams. Their vision extends to a future where all imagery becomes code-based, delivering a web experience that's simultaneously more inclusive, more performant, and more environmentally responsible.Are you interested in helping shape this revolution in web graphics? Equivalent is currently seeking beta testers for their API and connecting with angel investors who share their passion for accessibility and sustainability. Visit their website to try their current tools with a free two-week trial and witness firsthand how smart SVGs are poised to transform our digital experience.Support the showFollow axschat on social media.Bluesky:Antonio https://bsky.app/profile/akwyz.com Debra https://bsky.app/profile/debraruh.bsky.social Neil https://bsky.app/profile/neilmilliken.bsky.social axschat https://bsky.app/profile/axschat.bsky.social LinkedInhttps://www.linkedin.com/in/antoniovieirasantos/ https://www.linkedin.com/company/axschat/Vimeohttps://vimeo.com/akwyzhttps://twitter.com/axschathttps://twitter.com/AkwyZhttps://twitter.com/neilmillikenhttps://twitter.com/debraruh
Our choice of hacks included a fond look at embedded systems and the classic fashion sense of Cornell's Bruce Land, risky open CRT surgery, a very strange but very cool way to make music, and the ultimate backyard astronomer's observatory. We talked about Stamp collecting for SMD prototyping, crushing aluminum with a boatload of current, a PC that heats your seat, and bringing HDMI to the Commodore 64. We also took a look at flight tracking IRL, a Flipper-based POV, the ultimate internet toaster, and printing SVGs for fun and profit. Finally, we wrapped things up with a look at the tech behind real-time river flow tracking and a peek inside the surprisingly energetic world of fuel cells. Check out all the links over at Hackaday!
Our choice of hacks included a fond look at embedded systems and the classic fashion sense of Cornell's Bruce Land, risky open CRT surgery, a very strange but very cool way to make music, and the ultimate backyard astronomer's observatory. We talked about Stamp collecting for SMD prototyping, crushing aluminum with a boatload of current, a PC that heats your seat, and bringing HDMI to the Commodore 64. We also took a look at flight tracking IRL, a Flipper-based POV, the ultimate internet toaster, and printing SVGs for fun and profit. Finally, we wrapped things up with a look at the tech behind real-time river flow tracking and a peek inside the surprisingly energetic world of fuel cells. Check out all the links over at Hackaday!
Scott and Wes sit down with Cassie Evans of GSAP to talk all things animation—from SVGs and scroll timelines to GSAP's new rebrand and exciting features. They also dig into performance, plugins, and what makes GSAP such a powerful tool for web developers. Show Notes 00:00 Welcome to Syntax! 00:59 What is GSAP? Cassie Codes. 01:53 GSAP Rebranding. 04:44 GSAP under the hood. 05:29 The big announcement! 07:19 GSAP Showcase. 11:01 Brought to you by Sentry.io. 11:26 Why is GSAP easier for animations? GSAP Docs. 12:38 Animating with SVGs. 13:33 The love of SVG. 14:55 GSAP is performant. 16:06 Gotchas to watch out for. 18:12 Does GSAP work with canvas? 19:02 What GSAP projects are you most proud of? 20:30 Does it play nice with web frameworks? GSAP with React. 22:32 What are you excited about in CSS right now? Scroll Timeline. 24:27 Will any of these make their way into GSAP? 26:31 Timelines. 29:24 Building animations with timelines. 34:55 What are the best GSAP plugins? Split Text spanran-wrap. Physics 2D Plugin. 38:44 GSAP docs and philosophy. 39:50 Scrubbing animations by frame. 41:09 GSAP Video Exporter. 41:45 Animating with JavaScript. 45:19 JavaScript in unconventional applications. 47:56 Is there anything missing in web tech? 50:53 What about AI in GSAP? 52:40 Sick Picks + Shameless Plugs. Sick Picks Cassie: Eyesy Video Synthesis. Shameless Plugs Cassie: Smashing Conf. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads
In diesem Deep Dive zeigt Lorenz Grabosch, warum Rive-Animationen für Web- und App-Projekte oft das „Next-Level“-Upgrade zu Lottie sind. Du erfährst: • seinen Weg von After Effects zu Rive • die größten Performance- und Workflow-Vorteile • wie du SVGs aus Figma in Rive importierst, animierst und nahtlos in Webflow einbindest – inkl. Loop-Kontrolle, State Machines & GSAP-Triggern. Perfekt für alle, die interaktive Animationen schneller bauen und leichter warten wollen. Laurenz Grabosch online • LinkedIn: https://www.linkedin.com/in/laurenzgrabosch • Website: https://www.graboschmedia.de --------------------------------------------- Meine Onlinekurse:
Episode #220 - In the latest episode of The Presentation Podcast, Troy and Nolan delve into everything PowerPoint and vector. What does PowerPoint consider a vector graphic? What types of vector files does PowerPoint recognize? What are PowerPoint limitations with vector graphics? This episode is a treasure trove of insights, practical tips, and expert advice on leveraging vector graphics, particularly .SVGs, for great presentation design. Have a listen to see where the conversation goes! Full Episode Show Notes https://thepresentationpodcast.com/2025/e220 Show Suggestions? Questions for your Hosts? Email us at: info@thepresentationpodcast.com Listen and review on iTunes. Thanks! http://apple.co/1ROGCUq New Episodes 1st and 3rd Tuesday Every Month
Today I'm interviewing Bail from @JustOneMoreProject. This mom of 2 went from curious about Cricut to rocking SVGs with her Glowforge. Bail left her corporate job to be with her girls. When she launched her Etsy shop to sell SVG files in the middle of a pandemic she discovered her true purpose as a creative entrepreneur. In this episode, she fills us in on Cricut vs. Glowforge from a designer's perspective.EPISODE NOTES: https://kaseyclin.com/blogs/podcast/a-designer-s-take-on-glowforge-with-bail-from-just-one-more-projectThanks for listening! Click one of the links below to. Learn how to design for crafting machines such as Cricut, Silhouette, Glowforge, sublimation or embroidery. Check out my designs on Etsy
Unless you've recently avoided the online world you would have heard all the buzz about laser cutting machines. Well, I have a treat for you today! I sat down with a trusted leader in the laser industry, Emily, otherwise known as “That Mom With A Laser”. If you are interested in getting a laser cutting machine or you want to design SVGs for them, you will definitely benefit from this episode. Click the link and listen in as we chat about the most desired designs for lasers and all the excitement such as fumes, fires, and how to charge top dollar for your designs.EPISODE NOTES: https://kaseyclin.com/blogs/podcast/what-you-need-to-know-about-laser-machines-with-emily-from-that-mom-with-a-laserThanks for listening! Click one of the links below to. Learn how to design for crafting machines such as Cricut, Silhouette, Glowforge, sublimation or embroidery. Check out my designs on Etsy
Adaptability and quality are critical online. Designers need graphics that maintain clarity on any screen size and load seamlessly across devices and platforms. Scalable Vector Graphics (SVGs) meet this demand perfectly, offering dynamic resizing, lightweight code, and native support in all modern browsers. As businesses and creatives increasingly focus on responsiveness, SVGs have become the …
Síguenos en: Y seguímos con los coletazos de la polémica con WP Engine, y en este caso nos afecta directamente en algunos de nuestros plugins.... mientras se soluciona, continuamos investigando y mejorando nuestros temas de bloques. ¿Qué tal la semana? Semana esther Haciendo pruebas con el plugin content model - block binding Preparando mejoras y nuevos patrones para Dakota next Semana Nahuai Parece ser que si son los primeros Core Days, inspirado en Community Summit y la idea es que sea itinerante. Intentando domar SVGs, usando las nuevas variaciones de color/tipografía y otras mejoras para Dakota Next. Master avanzado en theme.json. Experimentando con el registro de patrones de bloques de forma condicional. Teniendo que aclarar que no tenemos nada que ver con WPE. Lanzando Uprising Next en la web, puedes aprovechar el descuento del 30% de lanzamiento. En el día de contribuidor de Yoast, en la mesa de sostenibilidad, hablando del manual para crear webs más sostenibles y el plugin que indica el impacto ambiental de la web. Contenido Nahuai Novedades Otra oferta para abandonar Automattic con la oferta de un paquete de salida (9 meses de sueldo). El equipo de accesibilidad suspende las reuniones: https://make.wordpress.org/accessibility/2024/10/12/accessibility-team-meetings-suspended/ Se activa la identificación con el email de WordPress.org para acceder al canal global de WordPress (Making WordPress). Próximas WordCamps: WordCamp Granada el fin de semana del 26 de octubre. WordCamp Sevilla el fin de semana del 9 de noviembre. WordCamp Griñón el fin de semana del 24 de noviembre. Entrevista a John O'Nolan, creador de Ghost, en el que explica que no quiere crecer a más de 50 empleados. Se está trabajando en el bloque de búsqueda instantánea para poder usarlo dentro del bloque de consulta. Ya se ha publicado la “fuente de la verdad” de WordPress 6.7 https://gutenbergtimes.com/6-7-source-of-truth/ Tip de la semana Plugin para elegir cómo se muestra la navegación en móviles: https://wordpress.org/plugins/getdave-responsive-navigation-block/ Menciones Pilar y Elías nos dejan comentarios en Twitter. ¡Extra! Uprising Next Theme, nuestro último tema de bloques de WordPress ya está a la venta, y para celebrar su lanzamiento, te ofrecemos un 30% de descuento solo hasta este domingo, 27 de octubre. ¡Aprovecha! Código de descuento: HELLOUPNEXT
Síguenos en: Nos encantaría poder dejar atrás toda la polémica de Matt y WPEngine, pero la cosa se complica cuando nos tocan a nuestro queridísimo Advanced Secure Custom Fields
Síguenos en: Después de unas merecidas y disfrutadas vacaciones, volvemos a nuestros episodios semanales de Freelandev con nuestro día a día en el mundo WordPress y en OsomPress ¿Qué tal la semana? Semana esther Agosto tranquilo con mantenimientos habituales Siguiendo con la revisión de sitios con PHP 7.4 Avanzando con Dakota Next Semana Nahuai Follow-up, la opción de ver el calendario de fechas al programar un post está de vuelta en la 6.6.1 (o no la encontré en la 6.6). Cerramos una nueva colaboración en OsomPress. También vendrá a comentarlo cuando sea el momento. Flipando con la maquetación del menú responsive en un tema de bloques. Novedades sobre el proceso de review de WordPress.com Interesante reflexión que me trasladó Elías sobre para quien es el editor del sitio. Investigando las diferencias entre Transients API y las funciones wp_cache_*. Trasteando con WP-CLI. Echando un ojo al curso intermedio de desarrollo de temas de Learn WordPress. Investigando la opción de usar marcado de sintaxis solo con CSS. Necesitas una fuente que soporte “Color layers” (COLRv0 y COLRv1) y jugar con “@font-palette-values” y “font-pallete”. Meetup de Terrassa el 10 de septiembre. Contenido Nahuai Novedades https://wordpress.com/blog/2024/07/30/perplexity-partnership/ https://make.wordpress.org/core/2024/07/29/wordpress-6-6-performance-improvements/ https://make.wordpress.org/core/2024/08/15/introducing-twenty-twenty-five/ https://wptavern.com/jamie-marsland-joins-automattic-as-head-of-wordpress-youtube Menciones Enoch nos propone usar filtros anti-pop y mejorar el nivelado de audios. Bohdan nos propone usar un único fichero SVG y llamar a SVGs individuales usando ids.
This episode of Generation AI introduces Claude 3.5, Anthropic's latest AI model, and its new "artifacts" feature. Hosts JC Bonilla and Ardis Kadiu explore how Claude 3.5 can create interactive apps and visualizations, making complex topics like p-values easier to teach. They demonstrate Claude's ability to generate code, create web-based apps, and offer collaborative workspaces.Introduction to Claude 3.5Overview of Anthropic's new AI modelComparison to GPT-4 and other AI modelsDiscussion of Claude's improved writing and reasoning capabilitiesThe "Artifacts" FeatureExplanation of Claude's new ability to create interactive contentExamples of artifact types: code snippets, web apps, SVGs, and moreHow artifacts can be shared and collaborated onPractical Application: Teaching P-ValuesDemonstration of Claude creating an interactive app to explain p-valuesDiscussion of the "Surprise Party Planner" analogy for teaching statisticsHow AI-generated examples can make complex topics more relatableTechnical Capabilities of Claude's ArtifactsBreakdown of the code generation processExplanation of the React-based web app created by ClaudeDiscussion of Claude's ability to adapt and correct code based on feedbackImplications for Higher EducationHow AI tools like Claude can enhance teaching methodsPotential for creating personalized learning materialsDiscussion of the time-saving aspects for educatorsCollaboration and Version ControlOverview of Claude's team collaboration featuresExplanation of version control for artifactsHow these features can help in group projects and iterative learning - - - -Connect With Our Co-Hosts:Ardis Kadiuhttps://www.linkedin.com/in/ardis/https://twitter.com/ardisDr. JC Bonillahttps://www.linkedin.com/in/jcbonilla/https://twitter.com/jbonillxAbout The Enrollify Podcast Network:Generation AI is a part of the Enrollify Podcast Network. If you like this podcast, chances are you'll like other Enrollify shows too! Some of our favorites include The EduData Podcast and Visionary Voices: The College President's Playbook.Enrollify is made possible by Element451 — the next-generation AI student engagement platform helping institutions create meaningful and personalized interactions with students. Learn more at element451.com.
Want to start creating digital products to sell as a side hustle or full-time income? We are chatting with Abbi Kirsten this week about creating and selling digital files, e-books, and so much more. If you want to start creating SVG files or any other type of digital product, be sure to catch this discussion from three experts who have successful digital product shops. Abbi, the creator of Abbi Kirsten Collections, is a self-made creative entrepreneur on a mission to nurture the creative magic inside your soul and bring that bursting imagination inside you to life with easy-to-learn tutorials. Abbi spends every day making messes and magic in her home studio, with a mission to make the world a more colorful place, one craft at a time, through sharing her Cricut tutorials, papercraft projects, and handmade gifts. Be sure to check out Abbi's website: https://www.abbikirstencollections.com/ Get the Launch and Grow Your Creative Business Workbook for only $7! A series of step-by-step questions that will guide you on what and where to sell any handmade or digital product. https://link.craftingcamps.com/biz Join the FREE! Magic of SVGs workshop: https://link.craftingcamps.com/magic Don't forget to shop our merch store to support the podcast! https://link.craftingcamps.com/merch Let us help you craft your future by turning your passion into a paycheck. Angie Holden and Cori George are teaming up for a series of live events dedicated to helping you start and grow your craft business. Be sure to subscribe so you don't miss any of the future episodes! Sign up for our email newsletter here: https://crafting-camps.ck.page/4715c59751 Ask us questions here: https://forms.gle/ShKt64gKjeuneMLeA Want more from Cori and Angie? Be sure to subscribe to our YouTube channels and follow on Instagram using the links below: https://instagram.com/angieholdenmakes https://instagram.com/heyletsmakestuff https://youtube.com/angieholden https://youtube.com/heyletsmakestuff
Today we discuss advancements in web image standards and new CSS features. Topics include object fit, aspect ratio, border images, filters, clip path, mask-image, and backdrop filters, which offer alternatives to traditional image editing tools like Photoshop. The episode also covers HTML and CSS considerations, such as img and picture elements, alt tags, and loading attributes. New image formats like WebP and AVIF are examined, along with the use of SVGs for accessibility and performance benefits. Go listen...
Are you uncertain about how to begin your journey into opening an SVG shop?
Brodie is a Supercars driver who won the 2023 Supercars Championship! He competed in the NASCAR Cup Series in 2023 and plans to compete more in 2024! We brought Brodie on to talk all things Supercars, NASCAR, and more!
Join me as I unravel the secrets to a thriving SVG business! This episode is packed with practical tips and strategies on creating and selling SVGs that mean serious business. Whether you're a seasoned creator or just starting your SVG shop, this is your guide to turning creativity into profit. How interested are you in elevating your crafting game? Tune in now!
Join me and my SVG Superstar student - Cheryl as we talk about her journey from a resin business to selling ASL SVG cut files with no prior design experience. Want to make passive income selling SVGs? Join me now in SVG Superstar. $500 off until Nov 30. https://cutnmakecrafts.com/svgs-on-desk-ipad-2/
Summary Exploration of the next generation web maps for the National Park Service (NPS) using Map Libra and transitioning from Mapbox GJS. Emphasis on data standards, community collaboration, and avoiding a centralized API approach. Highlights
Join me and @thepartycrafter - my student from the SVG Superstar Business Coaching Program as we chat about her successful journey on transitioning from a 6-figure handmade business to making passive income from SVGs.
Stephanie is consciously trying to make meetings better for herself by limiting distractions. A few episodes ago, Joël talked about a frustrating bug he was chasing down and couldn't get closure on, so he had to move on. This week, that bug popped up again and he chased it down! AND he got to use binary search to find its source–which was pretty cool! Together, Stephanie and Joël discuss dependency graphs as a mental model, and while they apply to code, they also help when it comes to planning tasks and systems. They talk about coupling, cycles, re-structuring, and visualizations. Ruby Graph Library (https://github.com/monora/rgl) Graphviz (https://graphviz.org/) Using a Dependency Graph to Visualize RSpec let (https://thoughtbot.com/blog/using-a-dependency-graph-to-visualize-rspec-let) Mermaid.js (https://mermaid.js.org/) Strangler Fig pattern (https://martinfowler.com/bliki/StranglerFigApplication.html) Transcript: JOËL: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Joël Quenneville. STEPHANIE: And I'm Stephanie Minn. And together, we're here to share a bit of what we've learned along the way. JOËL: So, Stephanie, what's new in your world? STEPHANIE: So, I'm always trying to make meetings better for me [chuckles], more tolerable or more enjoyable. And in meetings a lot, I find myself getting distracted when I don't necessarily want to be. You know, oftentimes, I really do want to try to pay attention to just what I'm doing in that meeting in the moment. In fact, just now, I was thinking about the little tidbit I had shared on a previous episode about priorities, where really, you know, you can only have one priority [laughs] at a time. And so, in that moment, hopefully, my priority is the meeting that I'm in. But, you know, I find myself, like, accidentally opening Slack or, like, oh, was I running the test suite just a few minutes before the meeting started? Let me just go check on that really quick. And, oh no, there's a failure, oh God, that red is really, you know, drawing my eye. And, like, could I just debug it really quick and get that satisfying green so then I can pay attention to the meeting? And so on and so forth. I'm sure I'm not alone in this [laughs]. And I end up not giving the meeting my full attention, even though I want to be, even though I should be. So, one thing that I started doing about a year ago is origami. [laughs] And that ended up being a thing that I would do with my hands during meetings so that I wasn't using my mouse, using my keyboard, and just, like, looking at other stuff in the remote meeting world that I live in. So, I started with paper stars, made many, many paper stars, [laughs] and then, I graduated to paper cranes. [laughs] And so, that's been my origami craft of choice lately. Then now, I have little cranes everywhere around the house. I've kind of created a little paper crane army. [laughs] And my partner has enjoyed putting them in random places around the house for me [laughs] to find. So, maybe I'll open a cabinet, and suddenly, [laughs] a paper crane is just there. And I think I realized that I've actually gotten quite good at doing these crafts. And it's been interesting to kind of be putting in the hours of doing this craft but also not be investing time, like, outside of meetings. And I'm finding that I'm getting better at this thing, so that seemed pretty cool. And it is mindless enough that I'm mentally just paying attention but, yeah, like, building that muscle memory to perfecting the craft of origami. JOËL: I'm curious, for your army of paper cranes, is there a standard size that you make, or do you have, like, a variety of sizes? STEPHANIE: I have this huge stack of, like, 500 sheets of origami paper that are all the same size. So, they're all about, let's say, two or three inches large. But I think the tiny ones I've seen, really small paper cranes, maybe that would be, like, the next level to tackle because working with smaller paper seems, you know, even more challenging. JOËL: I'd imagine the ratio of, like, paper thickness to the size of the thing that you're making is different. STEPHANIE: At this point, they say that if you make 1,000, then you bring good luck. I think I'm well on my way [laughs] to hopefully being blessed with good luck in this household of my little paper crane army. JOËL: It's interesting that you mentioned the power of having something tactile to do with your hands during a meeting, and I definitely relate to that. I feel like it's so easy, even, like, mindlessly, to just hit Command-Tab when I'm doing things on a screen. Like, my hands are on the keyboard. If I'm not doing something, I'm just going to mindlessly hit Command-Tab. It's kind of like on your phone sometimes. I don't know if you do this, like, just scrolling side to side. You're not actually doing anything. You just want motion with your fingers. STEPHANIE: Yes. I know exactly what you're talking about. And it's funny because it's a bit of a duality where, you know, when you are in your development workflow, you want things to be as quick and convenient as possible, so that Command-Tab, you know, is very easy. It's just built in, and that helps speed up your, you know, day-to-day work. But then it's also that little bit of mindlessness, I think, that can get you down the distraction path. When I was first looking for something to do with my hands, to have, like, a little tactile thing to keep me focused in meetings, I did explore getting one of those fidget cubes; I have to say. [laughs] It's just a little toy, you know, that comes with a bunch of different settings for you to fidget with. There's, like, a ball you can roll, you know, with your thumb, or maybe some buttons to click, and it gives you that really satisfying tactile experience. And I know they work really well for a lot of people, but I've really enjoyed the, I guess, the unexpected benefits [chuckles] of getting better at a hobby [laughs] while spending my time at my work. Joël, what is new with you? JOËL: So, a few episodes ago, I talked about a really kind of frustrating bug that I was chasing down that was due to some, like, non-determinism in the environment. And it kind of came, and then it went away. And I wasn't able to get sort of closure on that and had to move on. Well, this week, that bug popped up again, and this time, I was actually able to chase it down. So, that felt really exciting. And I got to use binary search to try to find the source of it, which made me feel really cool. STEPHANIE: Oooh, do tell. What ended up being the issue? JOËL: I'm connecting to an external Snowflake data warehouse, and ActiveRecord tries to fetch the schema and crashes as part of that with some cryptic error that originates from the C extension ODBC Ruby driver package. I figured out that it's probably something to do with, like, a particular table name or something in the table metadata when we're pulling this schema that we're not happy about. But I don't know which table is the one that it's not happy with. Well, this time, I was able to figure out, by reading through some of the documentation, that I can pull subsets of the schema. So, I can pull the first n values of that schema, and it won't crash. It only crashes if I try to fetch the entire set, which is what is happening under the hood. At that point, you know, I could fetch each row individually, but there's hundreds of these. So, you know, I try, okay, what happens if I try to fetch 1,000 of these? Is it going to crash? Because it's a massive system. So, yes, I get a crash. So, I know that a table less than a thousandth in the list of tables is what's causing the problems. So, okay, fetch 500 halfway in between there. It's still going to crash. Okay, 250, 125. I then kind of keep halving all the time until I find one that doesn't crash. And now I know that it is somewhere between the last crash and this one. So, I think it was between 125 and 250. And now I can say, okay, well, let's fetch the first, you know, maybe 200 tables, okay, that crashes. And I keep halving that space until you finally find it. And then, like, okay, so it's this one right here. Now, the problem is the bad table actually crashes. So, I think it ended up being, like, number 175 or something like that. So, I never get to see the actual table itself. But because the list of tables is in alphabetical order, and I can see because I can fetch the first 174 and it succeeds, so I can tell what the previous 5, 6, you know, previous 174 are. I can pretty easily go and look at the actual database and the list of tables and say, okay, well, it's in the same order. And the next one is this one, and hey, look, there is some metadata there that has some very long fields that are longer than one might expect, specifically going over a potentially implied 256-character limit. That seems somewhat suspicious. And, oh, if we remove this table, all of a sudden, everything works. STEPHANIE: Wow, binary search, an excellent debugging tool [laughs] when you have no idea, you know, what could possibly be causing your issue. JOËL: It's such a cool tool. Like, I'm always so happy when I get a chance to use it. The problem is, you need a way to be able to answer the question, like, have I found it? Yes or no? Or, generally, is it greater or less than this current position? STEPHANIE: Well, that's really exciting that you ended up figuring out how to solve the bug. I know last time we talked about it, you kind of had left off in a space of, hopefully, we won't run into this issue again because it's no longer happening. But it seems like you were also set up this time around to be able to debug once it cropped up again. JOËL: Yes. So, binary search is really cool. It's got this, like, very, like, fancy computer science name. But in reality, it's a fairly simple, straightforward technique that I use fairly frequently in my development. And there's another kind of computer sciency fancy-sounding concept that I use all the time. You've all heard me reference this multiple times on the show. You're right; we're finally doing it. This is the dependency graph episode. STEPHANIE: Woo. [laughter] It's time. I'm excited to really dig into it because, you know, as someone who has heard you talk about it a lot, you know, and is maybe a little less familiar with graph theory and how, you know, it can be applied to my day to day work, I'm really excited to dig into a little bit about, you know, what a regular developer needs to know about dependency graphs to add to their toolbox of skills. JOËL: So, I think at its core, the idea of a dependency graph is that you have a group of entities, some of which depend on each other. They can't do a task, or they can't be created unless some other subtasks or dependent actions take place. And so, we have a sort of formal structural way of describing these things. Visually, we often draw these things out where each of the pieces is like a little bubble or a circle, and then we draw arrows towards the things that it depends on. So, if A cannot be done without B being done first, we draw an arrow from A to B. That's kind of how it is in the abstract. More concretely, this kind of thing shows up constantly throughout the work that we do because a lot of what we do as developers is managing things that are connected to each other or that depend on each other. We build complex systems out of smaller components that all rely on each other. STEPHANIE: Yeah, I think it's interesting because I use the word dependency, you know, very frequently when talking about normal work that I'm doing, you know, dependencies as in libraries, right? That we've pulled into our application, or dependencies, like, talking about other classes that are referenced in this class that I'm working in. And I never really thought about what could be explored further or, like, what could be learned from really digging into those connections. JOËL: It's a really powerful mental model. And, like you said, dependencies exist all over our work, and we often use that word. So, you mentioned something like packages, where your application depends on Rails, which in turn depends on ActiveRecord, which in turn depends on a bunch of other things. And so, you've got this whole chain of maybe immediate dependencies, and then those dependencies have dependencies, and those dependencies have dependencies, and it kind of, like, grows outward from there. And in a very kind of simplistic model, you might think, oh, well, it's more, like, a kind of a tree structure. But oftentimes, you'll have things like branches on one side that connect back to branches on the other. And now you've got something that's no longer really tree-like. It's more of a sort of interconnected web, and that is a graph. STEPHANIE: I think understanding the dependencies of your system has also become more important to me as I learn about things that can go wrong when I don't know enough about what my system is, you know, relying on that I had kind of taken for granted previously. I'm especially thinking about packages like we were mentioning, and, you know, not realizing that your application is dependent on this other library, right? That's brought in by a gem that you're using. And there's maybe, like, a security issue, right? With that. And suddenly, you have this problem on your hands that you didn't realize before. And I know that that has been more of a common discussion now in terms of security practices, just being more aware of all the things that you are depending on as really our work becomes more and more interconnected with the things available to us with open source. JOËL: I think where understanding the graph-like nature of this becomes really important is when you're doing something like an upgrade. So, let's say you do have a gem that has a security problem, and you want to upgrade it to fix that security issue. But the upgrade that includes the security patch is also a breaking upgrade. And so, now everything else in your system that depends on that gem or on that package is going to break unless you have them in a version that is compatible with the new version of that gem. And so, you might have to then go downstream and upgrade those packages in a way that's compatible with your app before you can bring in the security patch. And a lot of that can be done automatically by Bundler. Bundler is software that is built around navigating dependency graphs like that and finding versions that are compatible with each other. But sometimes, your code will need to change in order to upgrade one of these downstream gems so that you can then pull in the upgrade from the gem that needs a security patch. And so, understanding a little bit of that graph is going to be important to safely upgrading that gem. STEPHANIE: So, I know another application of dependency graphs that you have thought about and written a blog post for is RSpec let declarations and how a lot of the time when we are using let, you know, we are likely calling other variables defined by let. And so, when you are encountering a test file, it can be really hard to grok what data is being set up in your test. JOËL: Yeah, so that is really interesting because you can define something that will get executed in a lazy fashion if it gets referenced. But then not only is the let lazy and will not trigger unless it's referenced, but a let can reference other lets, which are also lazy, and only get triggered if they get referenced. So, you might have a bunch of lets defined in any order you want throughout a file, and they're all kind of interconnected with these references to each other. But they only get triggered if something calls it directly or it's in this, like, chain of dependencies. And getting a grasp on what actually gets created, which lets will actually execute, which ones don't in a file can quickly get out of hand. And so, thinking of this in terms of a dependency graph has been a really helpful mental model for me to understand what's going on in a complex test file. STEPHANIE: Yeah, absolutely. Especially when sometimes the lets are coming from all over the place, you know, maybe a describe block hundreds of lines away, or even a completely different file if you are using a shared context that's being pulled in. So, I can see why this was a complex problem that could be made a little simpler with plotting out a dependency graph. And in preparation for this episode, I was doing a little bit of my own exploration on this because I certainly know, you know, the pain of trying to figure out what is being executed in my tests when there are a lot of lets that reference each other. And in the blog post, you kind of gave a little step-by-step of how you could start with creating a dependency graph for the test that you're working with. And I was really curious if this process could be automated because, you know, I do enjoy, you know, pulling out the pen and paper [chuckles] every now and then. But I'm not, like, a particularly visual person. God forbid I, like, draw a circle, but then, like, don't have enough space for the rest of the circles. [laughs] So, I was really hoping for a tool that could do this for me, especially if, you know, you do, you have a lot of tests that you have to try to understand in a relatively short amount of time. And so, I ended up doing something kind of hacky with RSpec and overriding let definitions to automate this process. JOËL: That's really cool. So, is the tool that you're trying to build something where you feed it in a spec file, and it gives you some kind of graphical representation like an SVG or something as output? STEPHANIE: Yeah. I did consider that approach first, where you feed in the file, but then I ended up going with something more dynamic where you are running the test, and then as it gets executed, tracing the let definitions and then registering them to build your dependency graph. JOËL: So, you've got some sort of internal modeling that describes a dependency graph. And then, somehow, you're going to turn that, you know, a series of Ruby objects into some kind of visual. STEPHANIE: Yeah, exactly. And the bulk of that work was actually done with a library called RGL, which stands for just Ruby Graph Library. [laughs] And what's nice is that it has a really easy interface for plugging in the vertices and edges of the dependency graph that you want to build. And then, it is already hooked up with Graphviz to, you know, write the SVG to a file. And so, I ended up really just having to build up an array of my dependencies and the connections to each other and then feed it into the constructor of the graph. JOËL: And for all of our listeners, you mentioned Graphviz. That is a third-party tool that can be installed on your machine that can generate these SVG diagrams from...I believe it has its own sort of syntax. So, you create, I believe it's dot, D-O-T, so dot dot file. And based off of that, it generates all sorts of things, but SVG being potentially one of them. STEPHANIE: Yeah. The nice thing was that I actually didn't end up having to use the DSL of Graphviz because the RGL gem was doing them for me. JOËL: Nice. So, it plugs in directly. STEPHANIE: Yeah, exactly. And I was really curious about using this gem because I, you know, just wanted to write Ruby, especially to plug into other things that are already in Ruby. And I found that surprisingly easy, thanks to all of the RSpec config options that they make available to you, including an option to extend the example group class, which is actually where let and let bang is defined. And so, I ended up overriding those classes and using, you know, the name of the let that you're defining and then the block to basically register the dependencies. And I also ended up exploring a little bit with using Ruby's built-in parser to figure out in the block that's being passed to the let, what parts of that block could potentially be a reference to another let. JOËL: That's really cool. Did you get any fun results from that? STEPHANIE: I did. It worked pretty well in being able to capture all of the let declarations, and other lets that it references. And so, I was able to successfully, you know, like, generate a visual dependency graph of all of the lets, so that was really neat. The part that I was really kind of excited about trying next, though I didn't end up having time to yet, was figuring out which of those let values are executed by way of the let bang, right? Which is eager or what is referenced in the test that then gets executed as well. And so, the RGL library is pretty neat and has some formatting options, too, with the Graphviz output. So, you can change the font color or styling options for different, you know, nodes and edges. And so, I was really curious to pursue this further, maybe, and use it to show exactly what gets evaluated now that I have successfully mapped my let graph. JOËL: Right. Because the whole point of this exercise is that not the entire graph is going to get evaluated. The underlying question is, what data actually gets created when my test runs? And so, you build out this whole dependency graph, and then you can follow a few simple rules to say, okay, this branch gets called, this branch gets called, this series of things gets called. And okay, this subset of let blocks trigger, and therefore this data has been created for my given test. STEPHANIE: Yeah. Though I will say that even where I got so far to, just seeing all of the let definitions in a spec file was really helpful to have a better understanding, you know, if I do have to add a test in here, and I'm thinking about reaching for a pre-existing let declaration, to be like, oh, like, it actually, you know, goes on to reference all of these other things that may be factories [chuckles] that are created might make me, you know, think twice, or just have a little better understanding of what I'm really dealing with. JOËL: Right. The idea that when you're calling out to a let, or a factory, or something else that's just a node in a large graph, you're not necessarily referencing just one thing. You might actually be referencing the head of a very long chain of things that maybe you don't intend to trigger the whole thing. STEPHANIE: Yeah, exactly. JOËL: So, in that sense, having a sort of visual or at least an idea of the graph can give you a much better sense of the cost of certain operations that you might have to do. STEPHANIE: The cost of the operations certainly, especially when, you know, you are working in a legacy codebase, and you, you know, like, maybe don't know how everything plays together or is connected. And it's very tempting to just reach for [chuckles] the things that have been, you know, created or built for you. And I'm certainly guilty of that sometimes on this client project, where the domain is so complex, and there are so many associated models. And I'm like, well, like, let me just, you know, use this let that already, you know, has a factory set up for what I think I need for this test. But then realizing, oh, actually, like, it is creating all these things, and do I really need them? I think it can be really challenging to unravel all of that in your head. And so, with this very scrappy tool that I [chuckles] built for my own purposes, you know, maybe it makes it, like, one step easier to try to fully understand what I'm working with and maybe do something different. JOËL: One aspect that I think is really powerful about dependency graphs is that it takes this kind of, like, abstract concept that we oftentimes have an intuitive sense around, the idea that we have different components that depend on each other, and it shows it to us visually on, like, a 2D plane. And that can be really helpful to get an understanding or an overview of a system. You mentioned that RGL uses Graphviz to generate some SVGs. A visual tool that I've been using to draw some of my dependency graphs has been mermaid.js. It has a syntax that's, like, a text-based syntax, but it's almost visual in that you have a piece of text and name of a node. And then, you'll draw a little ASCII arrow, you know, two dashes and a greater than sign to say this thing depends on, and then write another name, and just have a row, like, a bunch of entries to say; A depends on B. A also depends on C. C depends on D, and so on, and, like, build up that list. And then Mermaid will just generate that diagram for you. STEPHANIE: Yeah. I've used Mermaid a few times. One really helpful use that I had for it was diagramming out a bunch of React components that I had and wanting to understand the connections between them. And I think you can even paste the Mermaid syntax into your GitHub pull request description, and it'll render as the graph image. JOËL: Yeah, that's what's really cool is that Mermaid syntax has become embedded in a lot of other places in the past few years. So, it's really easy to embed graphs now into all sorts of things. You mentioned GitHub. It works in pull requests descriptions, comments, I think pretty much anywhere that Markdown is accepted. So, you could put one in your README if you wanted. Another place that I use a lot, Obsidian, my note-taking tool, allows me to embed graphs directly in there, which is really much nicer than previously; sometimes, when I wanted to express something as a visual, I would use some sort of drawing tool to do something and export an image, and then embed that in my note. But now I can just put in this text, and it will automatically render that as a diagram. And part of what's really nice about that is that then it's really easy for me to go and change that if I'm like, oh, but actually, I want to add one more connection in here. I don't have to re go back to, hopefully, a file that I've saved somewhere and, like, change an image file and re-export it. I just, you know, I add one line of text to my note, and it just works. STEPHANIE: That's awesome. Yeah, the ability to change it seems really useful. So, we've talked a little bit about tools for creating a visual aid for understanding our dependencies. And now that we have our graph, maybe we might have some concerning observations about what we see, especially when perhaps some of our dependencies are pointing back to each other. JOËL: Yes. So, I think you're referencing cycles, in particular. That would be the formal term for it. And those are really interesting. They happen in dependency graphs. And I would say, in many cases, they can be a bit of a smell. There's definitely situations where they're fine. But there are things that you look at, and you're like, okay, this is going to be a more complex kind of tricky bit of the graph to work with. Some cases, you just straight up can't have them. So, I want to say that the way RSpec lets are set up, you cannot write code that produces cycles. But you might have...I think Ruby allows classes to reference each other in such a way that it creates a cycle, and not all languages do that. So, Elm and F#, I believe, require that modules cannot reference each other. The fancy term for this is a dependent acyclic graph, or DAG, which basically just means that there are no cycles in that graph. STEPHANIE: Yeah. What you said about classes referencing each other is very interesting because I've definitely seen that. And then, if I have to go about changing something, maybe even it's just the class name, right? Now there's no way in which I can really make just one change. I have to kind of do it all in one go. JOËL: I think that's a common property of a cycle, and a graph is that changes that happen somewhere in that cycle often need to be all shipped together as one piece. You can't break it up into smaller chunks because everything depends on everything else. So, it has to be kind of boxed together and shipped as one thing. STEPHANIE: And you'd mentioned that cycles, you know, can be a bit of a code smell. And if the goal is to be able to break it up so that it is a little bit more manageable to work with, how would you go about breaking a cycle? JOËL: So, I think breaking a cycle is going to vary a little bit based on your problem domain. So, are you modeling a series of classes that are referencing each other? Is this a function call graph? Is this even, like, a series of tasks that you're trying to do? But typically, what you want to do is make sure that eventually, at some point, like, something doesn't loop back to referencing something higher up in your hierarchy. And so, oftentimes, it ends up being about what is allowed to know about what? Do you have higher-level concepts that can know and depend on lower-level concepts but not vice versa? And again, we are talking about this a little bit at the abstract level. But in terms of, let's say, different code modules, or classes, or something like that, commonly, you might say, well, we want some sort of layering where we have almost, like, more primitive types of classes at the bottom. And they don't get to know about anything above them. But the ones above that might be more complex that are composed of smaller pieces know about the ones below them. And you might have multiple layers kind of like that that all kind of point down, but nothing points up. STEPHANIE: That is a very common heuristic. [chuckles] I think you were basically just describing how I also understand creating React components, where you want to separate your presentational ones from your functional ones. And, yeah, it makes a lot of sense that as soon as you start adding that complexity of, you know, those primitive classes at the bottom, starting to, you know, point to things higher up or to know about things higher up, that is where a cycle may be accidentally introduced. JOËL: It's interesting just how many design principles that we have in software. If you dig into them a little bit, you find out that they're about decoupling things, and oftentimes, it's specifically breaking up cycles. So, one way that you might have something like this that actually has dependency in the name, the dependency inversion principle, where what you're effectively doing is you're taking one of those dependency arrows, and you're flipping it the other way. So, instead of A depending on B, you're flipping it. Now B depends on A, and that can be enough to break a cycle. STEPHANIE: So, one thing I've picked up from our conversations about dependency graphs is that oftentimes, you know, when you're trying to figure out where to start, you want to look for those areas or those nodes where there's nothing else that depends on it. JOËL: Yeah. I think you have those nodes that, if this were a tree, you would call them the leaf nodes. In the case of a graph, I'm not sure if that's technically correct, but they don't depend on anything. They're kind of your base case. And so, you can, you know, if it's a function, you can run it. If it's a file, you can load it; if it's a class, also you can load it up and not have to do anything else because it has no dependencies. And knowing that those are there, I think, can be really useful in terms of knowing an order you might want to execute something in. And this is really interesting for one of my favorite uses of a graph, which is breaking down a series of tasks that you need to do. So, commonly, you might say, okay, I have a large task I need to do. I break it down into a series of subtasks. And, you know, maybe I draw out, like, a bulleted list and, you know, task 1, 2, 3, 4, 5. The problem is that they're not necessarily just a flat list. They all have, like, orders, like dependencies between each other. So, maybe one has to happen before 2, but it also has to happen before 3, which needs to happen before two, and, like, there's all these interconnections. And then, you find out that you can't ship them independently the way you thought initially. So, by building up a graph, you end up with something that shows you exactly what depends on what. And then, like you said, the parts that are really interesting where you can start doing work are the ones that have no dependencies themselves. Other things might depend on them, but they have no dependencies. Therefore, they can be safely built, shipped, deployed to production, and they can be done independently of the other subtasks. STEPHANIE: Yeah. I was also thinking about things that could be done in parallel as well. So, if you do have multiple of those items with no dependencies, like, that is a really good way to be able to break up that work and, yeah, identify things that are not blocked. JOËL: For a complex set of tasks, it's great to see, okay, these two pieces have no dependencies. We can have them be done in parallel, shipped independently. And then you can just kind of keep repeating that process. Because once all of the tasks that have no dependencies have been done, well, you can almost, like, remove them from the graph and see, okay, what's the new set of things that have no dependencies? And then, keep doing that until you've eventually done the whole graph. And that may sound like, oh okay, we're just kind of using a little bit of intuition and working through the graph. It turns out that this is a, like, actual, like, formal thing. When it comes to graphs, it's a traversal algorithm called topological sort is the fancy name for it, and it basically, yeah, it goes through that. It gives you a list of nodes in order where each node that you're given has no dependencies that have not been evaluated yet. So, it works from effectively to use our tree terminology, from the leaf nodes to the root, potentially roots plural, of the graph, and each step is independent. So that's a lot of, like, fancy terminology, and getting a little bit of, like, computer science graph theory into here. So, my, like, general heuristic is that graphs should be evaluated from the bottom up when you're trying to evaluate each piece independently. So, when you do that, you get to do each piece independently, as opposed to if you're evaluating from the top down. So, starting from the one thing that depends on everything else, well, it can't be shipped until all of its dependencies have been shipped. And all the transitional dependencies can't be shipped until their dependencies have been shipped. And so, you end up being not able to ship anything until you've built the entire graph. And that's when you end up with, you know, a 2,000-line PR that took you multiple weeks and might be buggy. And it's going to take a long time to review. And it's just not what anybody wants. STEPHANIE: I'm glad you brought this up because I think this is where I am really curious to get better at because oftentimes, when I am breaking down a complex task, it's quite hard for me to see all of the steps that need to happen. And so, you know, you maybe start out with that, like, top-level node, like, the task that needs to be done as you understand it immediately. And it's really hard to actually identify the dependencies and, like, the smaller pieces along the way. And because you're not able to identify that, you think that you do have to just do it all in one go. JOËL: Yeah, that sort of root node is typically the overarching task, the goal of what you want to do. And a common, I think, scenario for something like this would be, let's say, you're doing a Rails upgrade. And so, that root node is upgrade Rails. And a common thing that you might want to do is say, okay, let's go to the gem file, upgrade Rails, see what breaks, and then just keep fixing those things. That's working from the top down. And you're going to be in a long-running branch, and you're going to keep fixing things, fixing things, fixing things until you have found all the things but done all the things. And then you do a big bang upgrade that may have taken you weeks. As opposed to if you're working from the bottom up, you try to figure out, okay, what are all the subtasks? And that might take some exploration. You might not know upfront. But then you might say, okay, here, I can upgrade RSpec versus a dependency, or I need to change the interface of this class and ship all these pieces one at a time. And then, the final step is flipping that upgrade in the gem file, saying, okay, now I've upgraded Rails from 4 to 5, or whatever the version is that you're trying to do. STEPHANIE: I think you've really hit the nail on the head when it comes to trying to do something but not knowing what subtasks may compose of it and getting into that problem of, you know, having not broken it down, like, enough to really see all the dependencies. And, you know, maybe this is a conversation [chuckles] for another episode, but the skill of breaking up those tasks and exploring what those dependencies are, and being able to figure them out upfront before you start to just do that upgrade and then see what happens, that's definitely an area that I want to keep investing in. And I'm sure other people would be really curious about, too, to help them make their jobs easier. JOËL: I think one tip that I've learned that's really fun and that connects into all of this is sometimes you do end up with a cycle in your dependencies of tasks. A technique for breaking that up is a pattern that I have pitched multiple times on the show: the strangler fig pattern. And part of why it's so powerful is that it allows you to work incrementally by breaking up some of these cycles in your dependency graph. And one of the lessons that I've learned from that is that just because you have sort of an initial set of subtasks and you have a graph of them doesn't mean that you can't change them. If you're following strangler fig, what you're actually doing is introducing one or more new subtasks to that graph. But the way you introduce them breaks up that cycle. So, you can always add new tasks or split up existing ones as you get a better understanding of the work you need to do. It's not something that is fixed or set in stone upfront. STEPHANIE: Yeah, that's a really great tip. I think next time, what I really want to explore, you know, your heuristic of going from bottom up, yeah, sure, it sounds all fine and dandy. But how to get to a point where you're able to see everything at the bottom, right? And, like, when you are tasked, or you do start with the thing at the top, like, the end goal. Yeah, I'm sure that's something we'll explore [chuckles] another day. JOËL: On that note, shall we wrap up? STEPHANIE: Let's wrap up. Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeee!!!!!! 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.
Host Sean Lennon talked to NWA Pro Wrestler and former MMA Fighter Blake “Bulletproof” Troop on PWE he's on half of the NWA SVGS with Jax Dane togeher they will take on NWA United States Tag Team Champions The Country Gentlemen at HP Cares for Cooper event July 8th in Highland Park and will be prefoming July 9th for NWA Tapings at Studio One Highland Park. Hes also wrestled for CCW, Control Your Narrative/GLCW, and PCW UltraBulletproof talked about Pro Wrestling about his prior career in MMA and how he was able to use it to adapt your current wrestling style, How is working Television different than Independent shows, how much has he learned from being in NWA, his match with Talos who's over 7ft tall, being in theCrocket Cup where him and Jax Dane fell short to Los Jinetes Del Aire ( Mysteziz Jr and Octagon jr) in his first lucha style match, the Veterans in NWA he looks up to for advice, competing n Submission Grappling, possibly working Josh Barnett Bloodsport event one day, NWA 312 and being apart of a landmark event where owner of NWA Billy Corgan was from, SVGS matches against Country Gentlemen Anthony Andrews and AJ Cazana and their rematch Saturday, the loudest reactions in his former hometown of Los Angelas and more!For the Official PWE Shirt shop at -https://www.prowrestlingtees.com/pro-wrestling-enforcer-logo.htmlFor Exclusive Pro Wrestling Articles and Updated Results for WWE, NXT, AEW, and Impact WrestlingLike the Facebook Page-https://m.facebook.com/PWEPodcast/And Support your favorite Independent Wrestlers by buying Shirts and More at https://www.prowrestlingtees.com/
Host Sean Lennon talked to NWA Pro Wrestler "Thoroughbred" Anthony Andrews on PWE he's one half of the NWA United States Tag Team Champions with AJ Cazana as The Country Gentlemen. They will be in Highland Park July 9th for NWA Tapings at Studio One Highland Park and HP Cares for Cooper July 8th.Anthony talked about Pro Wrestling how has it changed his life for the better, How is working Television different than Independent shows for him, Being In the Crocket Cup they fell short to The Immortals Kratos and Odinson, Their match was against SVGS when you're in there with Blake Troop and Jax Dane in Highland Park PPV pre-match and the rematch at The Crocket Cup Night 2 Pre Show Tag Team Gauntlet, What is the loudest reaction he's had to either their entrance or moves, and more!For the Official PWE Shirt shop at -https://www.prowrestlingtees.com/pro-wrestling-enforcer-logo.htmlFor Exclusive Pro Wrestling Articles and Updated Results for WWE, NXT, AEW, and Impact WrestlingLike the Facebook Page-https://m.facebook.com/PWEPodcast/And Support your favorite Independent Wrestlers by buying Shirts and More at https://www.prowrestlingtees.com/
Schepp, Hans, und Peter ließen mal wieder das Glücksrad kreisen! FRONTEERS KONFERENZ Schepp lädt Euch ein, die von ihm mit-organisierte und nicht gewinnorientierte Fronteers Konferenz am 21. und 2…
Today's Feature episode of The Two Man Power Trip of Wrestling is with NWA Superstars, the SVGS: Jax Dane, Bulletproof Blake Troop, and Chris Silvio. The SVGS join the show to talk about their entire professional wrestling careers. Host John Poz and the SVGS will talk about the NWA, The Crockett Cup, Billy Corgan, winning NWA Tag team titles, Country Gentlemen, Tyrus, Chris Adonis, Trevor Murdoch, Mike Knox, The Briscoe Brothers, plus so much more!The best and easy way to win money is playing fantasy! Join @underdogfantasy today (underdogfantasy.com) and enter the promo code POWERTRIP to double your deposit. Then all you have to do is pick a game, guess higher or lower on or draft your team; then sit back, relax & watch the money roll in! - Underdog Fantasy Promo Code: POWERTRIPStore - Teepublic.com/stores/TMPTFollow us @TwoManPowerTrip on Twitter and IG
Aurooba and Brian explore the new WP_HTML_Tag_Processor that landed in WordPress 6.2, and how handy it would be in scenarios where they've had to use regular expressions to modify HTML in their WordPress projects. They then walk through a function using the new processor to inline and safely modify SVGs, ways they could improve the function and take advantage of the processor's capabilities more, and discuss other ways the processor could enhance complicated filtering of rendered output in WordPress.A full transcript of the episode is available on the website. Watch the video podcast on YouTube and subscribe to our channel and newsletter to hear about episodes (and more) first!The code from this episode – https://github.com/viewSourcePodcast/viewSource-blocks/tree/episode/html-tag-processorAurooba's post with a walkthrough of the code – https://aurooba.com/inline-svgs-in-your-wordpress-code-with-this-helper-function/The Dev Note – https://github.com/WordPress/gutenberg/issues/44410#issuecomment-1420787816Brian's website – https://www.briancoords.comAurooba's website – https://aurooba.comPHP Inline SVG helper function from Ian – https://gist.github.com/ian-svoboda-prom/b7a436d5397e007b7d8d5427465ff161Gist to get the file contents of an SVG – https://gist.github.com/rugor/1decc15655891825d15a7024a06d898bWP SVG Helper functions – https://gist.github.com/kingkool68/6d72977fe8c82eeb9a85295ac3623cdeHow to Modify HTML in a PHP WordPress Plugin Using The New Tag Processor API – https://adamadam.blog/2023/02/16/how-to-modify-html-in-a-php-wordpress-plugin-using-the-new-tag-processor-api/
Gutenburg shipped the first working printing press around 1450 and typeface was born. Before then most books were hand written, often in blackletter calligraphy. And they were expensive. The next few decades saw Nicolas Jensen develop the Roman typeface, Aldus Manutius and Francesco Griffo create the first italic typeface. This represented a period where people were experimenting with making type that would save space. The 1700s saw the start of a focus on readability. William Caslon created the Old Style typeface in 1734. John Baskerville developed Transitional typefaces in 1757. And Firmin Didot and Giambattista Bodoni created two typefaces that would become the modern family of Serif. Then slab Serif, which we now call Antique, came in 1815 ushering in an era of experimenting with using type for larger formats, suitable for advertisements in various printed materials. These were necessary as more presses were printing more books and made possible by new levels of precision in the metal-casting. People started experimenting with various forms of typewriters in the mid-1860s and by the 1920s we got Frederic Goudy, the first real full-time type designer. Before him, it was part of a job. After him, it was a job. And we still use some of the typefaces he crafted, like Copperplate Gothic. And we saw an explosion of new fonts like Times New Roman in 1931. At the time, most typewriters used typefaces on the end of a metal shaft. Hit a kit, the shaft hammers onto a strip of ink and leaves a letter on the page. Kerning, or the space between characters, and letter placement were often there to reduce the chance that those metal hammers jammed. And replacing a font would have meant replacing tons of precision parts. Then came the IBM Selectric typewriter in 1961. Here we saw precision parts that put all those letters on a ball. Hit a key, the ball rotates and presses the ink onto the paper. And the ball could be replaced. A single document could now have multiple fonts without a ton of work. Xerox exploded that same year with the Xerox 914, one of the most successful products of all time. Now, we could type amazing documents with multiple fonts in the same document quickly - and photocopy them. And some of the numbers on those fancy documents were being spat out by those fancy computers, with their tubes. But as computers became transistorized heading into the 60s, it was only a matter of time before we put fonts on computer screens. Here, we initially used bitmaps to render letters onto a screen. By bitmap we mean that a series, or an array of pixels on a screen is a map of bits and where each should be displayed on a screen. We used to call these raster fonts, but the drawback was that to make characters bigger, we needed a whole new map of bits. To go to a bigger screen, we probably needed a whole new map of bits. As people thought about things like bold, underline, italics, guess what - also a new file. But through the 50s, transistor counts weren't nearly high enough to do something different than bitmaps as they rendered very quickly and you know, displays weren't very high quality so who could tell the difference anyways. Whirlwind was the first computer to project real-time graphics on the screen and the characters were simple blocky letters. But as the resolution of screens and the speed of interactivity increased, so did what was possible with drawing glyphs on screens. Rudolf Hell was a German, experimenting with using cathode ray tubes to project a CRT image onto paper that was photosensitive and thus print using CRT. He designed a simple font called Digital Grotesk, in 1968. It looked good on the CRT and the paper. And so that font would not only be used to digitize typesetting, loosely based on Neuzeit Book. And we quickly realized bitmaps weren't efficient to draw fonts to screen and by 1974 moved to outline, or vector, fonts. Here a Bézier curve was drawn onto the screen using an algorithm that created the character, or glyph using an outline and then filling in the space between. These took up less memory and so drew on the screen faster. Those could be defined in an operating system, and were used not only to draw characters but also by some game designers to draw entire screens of information by defining a character as a block and so taking up less memory to do graphics. These were scalable and by 1979 another German, Peter Karow, used spline algorithms wrote Ikarus, software that allowed a person to draw a shape on a screen and rasterize that. Now we could graphically create fonts that were scalable. In the meantime, the team at Xerox PARC had been experimenting with different ways to send pages of content to the first laser printers. Bob Sproull and Bill Newman created the Press format for the Star. But this wasn't incredibly flexible like what Karow would create. John Gaffney who was working with Ivan Sutherland at Evans & Sutherland, had been working with John Warnock on an interpreter that could pull information from a database of graphics. When he went to Xerox, he teamed up with Martin Newell to create J&M, which harnessed the latest chips to process graphics and character type onto printers. As it progressed, they renamed it to Interpress. Chuck Geschke started the Imaging Sciences Laboratory at Xerox PARC and eventually left Xerox with Warnock to start a company called Adobe in Warnock's garage, which they named after a creek behind his house. Bill Paxton had worked on “The Mother of All Demos” with Doug Engelbart at Stanford, where he got his PhD and then moved to Xerox PARC. There he worked on bitmap displays, laser printers, and GUIs - and so he joined Adobe as a co-founder in 1983 and worked on the font algorithms and helped ship a page description language, along with Chuck Geschke, Doug Brotz, and Ed Taft. Steve Jobs tried to buy Adobe in 1982 for $5 million. But instead they sold him just shy of 20% of the company and got a five-year license for PostScript. This allowed them to focus on making the PostScript language more extensible, and creating the Type 1 fonts. These had 2 parts. One that was a set of bit maps And another that was a font file that could be used to send the font to a device. We see this time and time again. The simpler an interface and the more down-market the science gets, the faster we see innovative industries come out of the work done. There were lots of fonts by now. The original 1984 Mac saw Susan Kare work with Jobs and others to ship a bunch of fonts named after cities like Chicago and San Francisco. She would design the fonts on paper and then conjure up the hex (that's hexadecimal) for graphics and fonts. She would then manually type the hexadecimal notation for each letter of each font. Previously, custom fonts were reserved for high end marketing and industrial designers. Apple considered licensing existing fonts but decided to go their own route. She painstakingly created new fonts and gave them the names of towns along train stops around Philadelphia where she grew up. Steve Jobs went for the city approach but insisted they be cool cities. And so the Chicago, Monaco, New York, Cairo, Toronto, Venice, Geneva, and Los Angeles fonts were born - with her personally developing Geneva, Chicago, and Cairo. And she did it in 9 x 7. I can still remember the magic of sitting down at a computer with a graphical interface for the first time. I remember opening MacPaint and changing between the fonts, marveling at the typefaces. I'd certainly seen different fonts in books. But never had I made a document and been able to set my own typeface! Not only that they could be in italics, outline, and bold. Those were all her. And she inspired a whole generation of innovation. Here, we see a clean line from Ivan Sutherland and the pioneering work done at MIT to the University of Utah to Stanford through the oNLine System (or NLS) to Xerox PARC and then to Apple. But with the rise of Windows and other graphical operating systems. As Apple's 5 year license for PostScript came and went they started developing their own font standard as a competitor to Adobe, which they called TrueType. Here we saw Times Roman, Courier, and symbols that could replace the PostScript fonts and updating to Geneva, Monaco, and others. They may not have gotten along with Microsoft, but they licensed TrueType to them nonetheless to make sure it was more widely adopted. And in exchange they got a license for TrueImage, which was a page description language that was compatible with PostScript. Given how high resolution screens had gotten it was time for the birth of anti-aliasing. He we could clean up the blocky “jaggies” as the gamers call them. Vertical and horizontal lines in the 8-bit era looked fine but distorted at higher resolutions and so spatial anti-aliasing and then post-processing anti-aliasing was born. By the 90s, Adobe was looking for the answer to TrueImage. So 1993 brought us PDF, now an international standard in ISO 32000-1:2008. But PDF Reader and other tools were good to Adobe for many years, along with Illustrator and then Photoshop and then the other products in the Adobe portfolio. By this time, even though Steve Jobs was gone, Apple was hard at work on new font technology that resulted in Apple Advanced Typography, or AAT. AAT gave us ligature control, better kerning and the ability to write characters on different axes. But even though Jobs was gone, negotiations between Apple and Microsoft broke down to license AAT to Microsoft. They were bitter competitors and Windows 95 wasn't even out yet. So Microsoft started work on OpenType, their own font standardized language in 1994 and Adobe joined the project to ship the next generation in 1997. And that would evolve into an open standard by the mid-2000s. And once an open standard, sometimes the de facto standard as opposed to those that need to be licensed. By then the web had become a thing. Early browsers and the wars between them to increment features meant developers had to build and test on potentially 4 or 5 different computers and often be frustrated by the results. So the WC3 began standardizing how a lot of elements worked in Extensible Markup Language, or XML. Images, layouts, colors, even fonts. SVGs are XML-based vector image. In other words the browser interprets a language that displays the image. That became a way to render Web Open Format or WOFF 1 was published in 2009 with contributions by Dutch educator Erik van Blokland, Jonathan Kew, and Tal Leming. This built on the CSS font styling rules that had shipped in Internet Explorer 4 and would slowly be added to every browser shipped, including Firefox since 3.6, Chrome since 6.0, Internet Explorer since 9, and Apple's Safari since 5.1. Then WOFF 2 added Brotli compression to get sizes down and render faster. WOFF has been a part of the W3C open web standard since 2011. Out of Apple's TrueType came TrueType GX, which added variable fonts. Here, a single font file could contain a number or range of variants to the initial font. So a family of fonts could be in a single file. OpenType added variable fonts in 2016, with Apple, Microsoft, and Google all announcing support. And of course the company that had been there since the beginning, Adobe, jumped on board as well. Fewer font files, faster page loads. So here we've looked at the progression of fonts from the printing press, becoming more efficient to conserve paper, through the advent of the electronic typewriter to the early bitmap fonts for screens to the vectorization led by Adobe into the Mac then Windows. We also see rethinking the font entirely so multiple scripts and character sets and axes can be represented and rendered efficiently. I am now converting all my user names into pig Latin for maximum security. Luckily those are character sets that are pretty widely supported. The ability to add color to pig Latin means that OpenType-SVG will allow me add spiffy color to my glyphs. It makes us wonder what's next for fonts. Maybe being able to design our own, or more to the point, customize those developed by others to make them our own. We didn't touch on emoji yet. But we'll just have to save the evolution of character sets and emoji for another day. In the meantime, let's think on the fact that fonts are such a big deal because Steve Jobs took a caligraphy class from a Trappist monk named Robert Palladino while enrolled at Reed College. Today we can painstakingly choose just the right font with just the right meaning because Palladino left the monastic life to marry and have a son. He taught jobs about serif and san serif and kerning and the art of typography. That style and attention to detail was one aspect of the original Mac that taught the world that computers could have style and grace as well. It's not hard to imagine if entire computers still only supported one font or even one font per document. Palladino never owned or used a computer though. His influence can be felt through the influence his pupil Jobs had. And it's actually amazing how many people who had such dramatic impacts on computing never really used one. Because so many smaller evolutions came after them. What evolutions do we see on the horizon today? And how many who put a snippet of code on a service like GitHub may never know the impact they have on so many?
In this episode, the amazing Liz Wilcox (love her energy!) talks about why email marketing is SOOOOO important for digital businesses and WHY every single business owner NEEDS to attend her FREE workshop on email marketing at the Sell Digital Crafts - The Smart Way summit. This episode is sponsored by Creative Fabrica. Creative Fabrica has generously offered this free All Access subscription trial deal: https://www.creativefabrica.com/promo/6768/0P536-EFGHIJKLMNO/ref/1444514/ With this deal, you can try out the All Access Subscription by downloading 10 fonts & designs of your choice for free! After the 10th download or after 1 month, the subscription renews at $9. This is almost a 70% discount for the normal $29! But don't worry you can cancel anytime. Sign-up here https://www.creativefabrica.com/promo/6768/0P536-EFGHIJKLMNO/ref/1444514/ PS. I'm putting together the second Sell Digital Crafts summit for busy crafters who want to make passive income. In the summit you'll learn how to design and sell stickers, SVGs, Canva templates, Procreate brushes, and hand-lettering Etsy marketing workshops for digital businesses How to skyrocket your sales through Pinterest, Instagram and TikTok The event is completely FREE of cost. You'll have 24 hours to watch the videos for FREE. However, if you want on-going access to the presentations you can grab the All-Access Pass for just $67 for a limited time. The FREE summit runs from April 3-5, 2023! Registration opens on March 15th. Wohoo! Sign up here: https://selldigitalcrafts.com/
On this week's episode of the Alliance Guys Podcast– we will examine the landscape for the United Wrestling Network. Of course with the very popular Championship Wrestling Presented by Car Shield, Memphis Wrestling, and the addition of Derby City Wrestling, could David Marquez be conquering wrestling, the old-fashioned way? More matches have been announced for the NWA 312. The women's Tag Team Championship Match has been made. The Women's Tag Team Match is added to Tyrus defending against Adons, Cyon defending against EC3, Kamille defending against La Rosa Negra, and the Country Gentlemen defending against the SVGS. Let's talk about it. Taya Valkyrie has officially signed with AEW. Ashley D'amboise has recently signed with AEW. What will these most recent signings mean for the NWA? And the breakdown of Thom Latimer's 1st title defense and the rest of the results of NWA POWERRR!!!!
In this episode, I'm pulling back the curtains on some of the mindset challenges I faced in my business and how I almost threw everything in the trash until I started a daily 5-minute exercise. Listen to find out more! It's just 11 minutes ;). This episode is sponsored by Creative Fabrica. Creative Fabrica has generously offered this free All Access subscription trial deal: https://www.creativefabrica.com/promo/6768/0P536-EFGHIJKLMNO/ref/1444514/ With this deal, you can try out the All Access Subscription by downloading 10 fonts & designs of your choice for free! After the 10th download or after 1 month, the subscription renews at $9. This is almost a 70% discount for the normal $29! But don't worry you can cancel anytime. Sign-up here https://www.creativefabrica.com/promo/6768/0P536-EFGHIJKLMNO/ref/1444514/ PS. I'm putting together the second Sell Digital Crafts summit for busy crafters who want to make passive income. In the summit you'll learn how to design and sell stickers, SVGs, Canva templates, Procreate brushes, and handlettering Etsy marketing workshops for digital businesses How to skyrocket your sales through Pinterest, Instagram and TikTok The event is completely FREE of cost. You'll have 24 hours to watch the videos for FREE. However, if you want on-going access to the presentations you can grab the All-Access Pass for just $67 for a limited time. Follow me on Instagram to stay on top of the summit news. Registration opens on March 15th. Wohoo! Join the waitlist here: https://selldigitalcrafts.com/waitlist/
The SVG market on Etsy is an exciting (and growing!) place to be. Tune in today to hear from Jav Sid, who is a top SVG seller and coach, and learn how you can build a {mostly} passive income selling this digital product on Etsy. No design experience required!
John Inness is a guidance, navigation, and control engineer at Marshall Space Flight Center supporting various projects including SLS, HLS, Solar Cruiser, SVGS, and more. He is originally from North Carolina where he went to North Carolina State University for aerospace engineering and co-oped at Marshall Space Flight Center while a student. Upon graduation, he began full time work at MSFC. In his spare time, John enjoys playing music, cooking and trying various foods, hiking, and ultimate frisbee. As always, stay tuned after for our takeaways. --- Support this podcast: https://anchor.fm/shawna-christenson2/support
Chris and Elecia talk about house maintenance, blinking LEDs, paper engineering and more. Cutting Mobius Strips Video: Tadashi Tokieda cuts various combinations of loops and Mobius loops - with surprising results. festi.info/boxes.py generates boxes for laser cutting (or other SVG consuming device). Boxes.py is a python module that lets you programmatically generate the SVGs. (Github repo) Amanda Ghassaei's Sugarcube is a MIDI instrument using this SparkFun button pad. We also talked about the Mikroe 8800 Retro Click. Elecia is taking Paper Engineering with Kelli Anderson. Chris is taking songwriting courses from School of Song. Transcript
Hackers target Japanese politicians with new MirrorStealer malware Crooks use HTML smuggling to spread QBot malware via SVG files FBI charges 6, seizes domains linked to DDoS-for-hire service platforms Thanks to this week's episode sponsor, Fortra The cybersecurity landscape is full of single-solution providers, making it easy for unexpected cyberthreats to sneak through the cracks. That's why Fortra is creating a stronger, simpler strategy for protection. One that increases your security maturity while decreasing the operational burden that comes with it. Fortra's integrated, scalable solutions help customers face their toughest challenges with confidence. Learn more at Fortra.com. For the stories behind the headlines, head to CISOseries.com.
This month I'm hosting a special event for busy crafters who want to make passive income. It's called Sell Digital Crafts - The Smart Way Summit. In the summit you'll learn how to design and sell stickers, SVGs, Canva templates, Procreate brushes, and handlettering Etsy marketing workshops for digital businesses How to skyrocket your sales through Pinterest, Instagram and TikTok The event is completely FREE of cost. You'll have 24 hours to watch the videos for FREE. However, if you want on-going access to the presentations you can grab the All-Access Pass for just $67 for a limited time. Follow me on Instagram to stay on top of the summit news. Registration opens on October 5th. Wohoo! Follow me here: https://www.instagram.com/cutnmakecrafts/
In today's episode I'm interviewing an SVG Superstar alumni, Sarah from Heart SVGs who started her SVG design journey feeling scared and overwhelmed but after 12 months in the program, she feels confident and a pro at designing SVGs. Listen to this podcast to find out the no.1 secret behind her tremendous success how she was able to design and sell SVGs without any prior graphic designing experience Check out Sarah's shop below: https://www.etsy.com/au/shop/heartSVGs https://www.instagram.com/heart.svgs/
Accessible SVGs (Scalable Vector Graphics) featuring Guest Heather Neff of Equivalent Design. If you have ever wanted to understand how smart SVG graphics can increase accessibility while maintaining brand style this is the podcast for you. Chad and Dax talk with Heather Neff about her goal to bring SVGs to the world "One graphic at a time." We talk about embedded alt-text and how WordPress now pulls description metadata straight from your images and how that can improve your search engine placement.
I know as crafters our no. 1 choice for learning something is to hop onto Youtube to learn literally anything and everything. Without giving it a second thought, we hop onto Youtube and get caught in the spiral of watching one video after another. So the question is, is this the right thing to do? Or is there a better alternative out there? Find out in today's podcast.
What to do when you are in a dire need of cash and your SVG shop sales are slow? When you're in desperate need of money, and you want to instantly make use of your new skill which is designing SVG cut files. Listen to this episode to find out 5 THINGS you can do to make money from SVGs besides selling them in your shop.
In this week's episode, Tif interviews Naa Ardua. Naa discusses how she got started creating clipart, how she transitioned to creating scalable vector graphics (SVG), and how her SVGs bring a voice to a unique community.Here are links to Naa Ardua's SVG courses: So Simple SVG Course and So Simple SVG Files course - 3 Month Payment PlanNaa Ardua's Free SVG Course -> So Quick SVG Course The Book PileWant to sound smart? Two comics discuss a book every Monday so you can pretend you read.Listen on: Apple Podcasts Spotify
This week, we make the case for designing product icons and discuss what to do if your team doesn't want to invest in great iconography. In the Sidebar, we talk about how to incorporate default typefaces into your design system.The Sidebar:The Sidebar is an exclusive weekly segment for our Patreon supporters. You can subscribe starting at $1 per month for access to bonus content going forward! Sign up at patreon.com/designdetails.Latest VIP Patrons:Christian RotzollZack MeredithJSZach GeistKates Hartmanmike kennyWilsonAndre DinizMattias KronbergFollow up:Uhl Albert pointed out that “ruinous empathy” comes from the Radical Candor Framework.Main Topic:This week, we make the case for designing product icons and discuss what to do if your team doesn't want to invest in great iconography.Priscilla Then asks on GitHub:The Lead Developer at my work requested to remove some of the icons, because they slow down development time when having to wait for one to be created, grappling with SVGs, etc. Unfortunately, he is right as they are time-consuming to make (especially good ones) and since I'm the only UX/UI designer in the company, it slows me down and I become the bottleneck.That said, I feel that icons give character, polish and professionalism to an otherwise extremely utilitarian UI. Icons can also be functional in that they help make certain elements stand out from an otherwise huge sea of text, but they are still seen as "fluff". I've asked for another designer to be hired, or request our graphic designer to create icons when he has time, but these suggestions didn't get any support. How would you make a case for icons when they are seen as mere decoration?Feather IconsIconic IconsBootstrap IconsAnt IconsMaterial Design IconsIcons ToolboxIcon SizesCool Things:Brian shared the Opal C1, a professional webcam that claims DSLR-quality images in a $300 chassis. So far: it's definitely a beta product, but depending on your needs it might be a worthwhile upgrade!Marshall shared the ohsnap! Snapmount 2.0, an accessory that helps you mount your phone to a wall (with MagSafe!), making it ideal for turning your phone into a mounted shower speaker.Design Details on the Web:
In this episode, Amy and James discuss all things SVGs: what is, why, and when to reach for it, and seven different ways to get an SVG on the page, and the pros and cons of each method.SponsorsVercelVercel combines the best developer experience with an obsessive focus on end-user performance. Their platform enables frontend teams to do their best work. It is the best place to deploy any frontend app. Start by deploying with zero configuration to their global edge network. Scale dynamically to millions of pages without breaking a sweat.For more information, visit Vercel.comZEAL is hiring!ZEAL is a computer software agency that delivers “the world's most zealous” and custom solutions. The company plans and develops web and mobile applications that consistently help clients draw in customers, foster engagement, scale technologies, and ensure delivery.ZEAL believes that a business is “only as strong as” its team and cares about culture, values, a transparent process, leveling up, giving back, and providing excellent equipment. The company has staffers distributed throughout the United States, and as it continues to grow, ZEAL looks for collaborative, object-oriented, and organized individuals to apply for open roles.For more information visit softwareresidency.com/careersDatoCMSDatoCMS is a complete and performant headless CMS built to offer the best developer experience and user-friendliness in the market. It features a rich, CDN-powered GraphQL API (with real-time updates!), a super-flexible way to handle dynamic layouts and structured content, and best-in-class image/video support, with progressive/LQIP image loading out-of-the-box."For more information, visit datocms.comShow Notes0:00 Introduction3:50 What is an SVG?Raster vs Vector6:21 Benefits to using an SVGChange the SizeSmall File SizeChange the color within your codeEasily Cached9:51 Seven Different Ways to get an SVG on the Page11:28 Sponsor - ZEAL12:59 Option 1 - Image Tag14:03 Option 2 - Inline SVG tag15:53 Option 3 - CSS as a background Image16:18 Option 4 - CSS, as a Mask18:20 Sponsor - Vercel19:29 Option 5 - SVG directly within our Image tag21:20 Option 6 - Base64 or UTF8 with as a CSS Background Image21:47 Option 7 - An SVG Sprite22:34 Writing your own SVGs27:00 Going Deep on a Specific Topic, The Broken Comb28:34 ResourcesAmy's SVG Series on YouTubeSarah Drasner - Course on Frontend Masters, SVG Essentials & Animation, v2Sarah Drasner - SVG Animations: From Common UX Implementations to Complex Responsive AnimationChris Coyier - Practical SVG29:19 Sponsor - DatoCMS30:12 Grab Bag Questions30:56 Picks and Plugs31:07 Amy's Pick - Animal Cable Clips32:00 Amy's Plug - Advent of CSS32:32 James's Pick - Castle on Hulu33:34 James's Plug - Advent of JavaScript