<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bill Raymond</title>
    <description>The latest articles on DEV Community by Bill Raymond (@billraymond).</description>
    <link>https://dev.to/billraymond</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F306760%2Ff4ca48be-50e5-4fff-a679-040c12fee99c.png</url>
      <title>DEV Community: Bill Raymond</title>
      <link>https://dev.to/billraymond</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/billraymond"/>
    <language>en</language>
    <item>
      <title>Introducing Domain-Specific AI Models</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Tue, 24 Sep 2024 12:30:19 +0000</pubDate>
      <link>https://dev.to/billraymond/introducing-domain-specific-ai-models-1b27</link>
      <guid>https://dev.to/billraymond/introducing-domain-specific-ai-models-1b27</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpetgrfgfclbv2qcxvz6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpetgrfgfclbv2qcxvz6x.png" alt="Introducing Domain-Specific AI Models" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Executive Summary: When people say, "AI will change everything in healthcare, vehicles, robotics, and manufacturing," they are not talking about ChatGPT. They refer to the power of &lt;a href="https://dev.to/billraymond/unlocking-the-secrets-of-ai-models-3ki-temp-slug-7638886"&gt;AI models&lt;/a&gt; designed and tuned to achieve niche business needs and do them exceptionally well. You can put thousands of domain-specific models to work for your business today. In this article, I will give you a 10,000-foot view of the landscape.&lt;/p&gt;




&lt;p&gt;Think about business problems you are trying to solve and ask yourself these questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⏳ Do manual transcription and communication processes take up valuable time and resources?&lt;/li&gt;
&lt;li&gt;💸 Are fluctuations in demand or inefficiencies in your supply chain costing your business money?&lt;/li&gt;
&lt;li&gt;⚖️ Are you facing difficulties detecting fraud, managing risks, or staying compliant with regulations?&lt;/li&gt;
&lt;li&gt;🛠️ Do you feel too much human intervention is required to detect flaws in equipment?&lt;/li&gt;
&lt;li&gt;📊 Do you struggle with predicting weather, inventory levels, market trends, or customer behavior?&lt;/li&gt;
&lt;li&gt;🤖 Do you have any complex challenges or repetitive tasks that could benefit from automation, data analysis, or AI-driven solutions?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you answered yes to any of these problems, then AI models designed for your industry could be the solution you're looking for.&lt;/p&gt;

&lt;h2&gt;
  
  
  I need some context. Give me some examples of AI models on the market today.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6owo4p4lpmfqkd3dhj1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6owo4p4lpmfqkd3dhj1g.png" alt="Introducing Domain-Specific AI Models" width="800" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;There is probably more than one AI model for any use case you come up with.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I will share a few models for this article covering broader topics. If you are looking for specific or niche models, &lt;a href="https://cal.com/billraymond/15min?ref=billtalksai.com" rel="noopener noreferrer"&gt;book a 15-minute meeting with me&lt;/a&gt; to get you started in your research.&lt;/p&gt;

&lt;p&gt;💡&lt;/p&gt;

&lt;p&gt;The AI and Machine Learning space is full of quirky names and oddball acronyms, so remember, I am just the messenger.&lt;/p&gt;

&lt;h3&gt;
  
  
  Computer vision
&lt;/h3&gt;

&lt;p&gt;Object detection | defect analysis | first-pass medical imaging analysis&lt;/p&gt;

&lt;p&gt;If you have a modern smartphone, then you are already aware that it can detect faces, fix redeye, improve color tones, and even recognize who people are. It should be no surprise that these phones use advanced AI tools to handle that processing.&lt;/p&gt;

&lt;p&gt;If you are unfamiliar with this technology, you might be surprised at how quickly an AI model can detect nearly anything on an image or in the frame of a fast-moving video. To see for yourself, watch the following video and watch as the model tracks people, backpacks, suitcases, umbrellas, and trucks in real-time with a moving camera.&lt;/p&gt;

&lt;p&gt;Popular AI models or tools to use or build your own custom computer vision models include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.ultralytics.com/?ref=billtalksai.com" rel="noopener noreferrer"&gt;YOLO&lt;/a&gt; is one of the most popular models&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://opencv.org/?ref=billtalksai.com" rel="noopener noreferrer"&gt;OpenCV&lt;/a&gt; is an open-source computer vision library for AI data scientists and software developers. It allows them to create custom computer vision solutions. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Speech-to-text
&lt;/h3&gt;

&lt;p&gt;Translation | transcriptions | closed captions | voice assistants&lt;/p&gt;

&lt;p&gt;Of all the open-source AI models, speech-to-text is easily the most accessible. OpenAI's &lt;a href="https://openai.com/index/whisper/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Whisper&lt;/a&gt; model has a tender spot in my heart because it was easy to set up on my machine and use when building transcripts for my Agile in Action podcast. However, Whisper is more of a self-contained tool anyone can use.&lt;/p&gt;

&lt;p&gt;While I do not have direct experience with custom speech-to-text models, I recommend you check out &lt;a href="https://github.com/alphacep/vosk-api?ref=billtalksai.com" rel="noopener noreferrer"&gt;Vosk&lt;/a&gt; as a starting point. Vosk purports to support real-time speech-to-text, which could be valuable in any number of scenarios, from creating subtitles to analyzing sentiment in customer support calls.&lt;/p&gt;

&lt;h3&gt;
  
  
  Finding other open-source AI models
&lt;/h3&gt;

&lt;p&gt;There are thousands of open-source AI models out there that can help you with all sorts of custom needs. Here are some others:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Threat, fraud, or anomaly detection: &lt;a href="https://pyod.readthedocs.io/en/latest/?ref=billtalksai.com" rel="noopener noreferrer"&gt;PyOD&lt;/a&gt;, &lt;a href="https://h2o.ai/?ref=billtalksai.com" rel="noopener noreferrer"&gt;H2O&lt;/a&gt;, &lt;a href="https://lightgbm.readthedocs.io/en/latest/?ref=billtalksai.com" rel="noopener noreferrer"&gt;LightGBM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Weather forecasting: &lt;a href="https://deepmind.google/discover/blog/graphcast-ai-model-for-faster-and-more-accurate-global-weather-forecasting/?ref=billtalksai.com" rel="noopener noreferrer"&gt;GraphCast&lt;/a&gt;, &lt;a href="https://www.mmm.ucar.edu/models/wrf?ref=billtalksai.com" rel="noopener noreferrer"&gt;WRF&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Supply chain or optimization models: &lt;a href="https://www.pyomo.org/?ref=billtalksai.com" rel="noopener noreferrer"&gt;PYOMO&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Maintenance, vehicle routing, and job scheduling: &lt;a href="https://www.optaplanner.org/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Optaplanner&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  But Bill, aren't there products I can purchase that do these things for me?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06vr5liontzrt1tandnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06vr5liontzrt1tandnx.png" alt="Introducing Domain-Specific AI Models" width="800" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Sometimes, your requirements are so unique you have to build something new.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You are correct that plenty of products on the market have already solved some of these problems. The benefits you receive from these products can often result in immediate savings. Even better, one would assume those companies have an R&amp;amp;D, so they continue adding more value over time. However, what if your industry has niche and unique needs?&lt;/p&gt;

&lt;p&gt;For example, as a small business owner, I use some open models to save money because I have the technical expertise to use them. However, I purchase apps for other needs. Whether you are a startup, mid-size business, or large enterprise conglomerate, you will find the following considerations a good starting point in your decision-making process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The solution requires integration with proprietary systems or data not supported by commercial products.&lt;/li&gt;
&lt;li&gt;You aim to maintain a competitive advantage with a custom solution that differentiates you from competitors.&lt;/li&gt;
&lt;li&gt;Data privacy or regulatory constraints make it necessary to handle sensitive data in-house.&lt;/li&gt;
&lt;li&gt;You require complete control over the model's behavior, customization, and data processing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Are there other sources? How do I deliver the solution to my internal or external customers?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1o140ixw0cba4mmv92ox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1o140ixw0cba4mmv92ox.png" alt="Introducing Domain-Specific AI Models" width="800" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Cloud services like Amazon's AWS, Microsoft Azure, and Google Cloud offer similar services and often provide open-source AI solutions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;[&lt;/p&gt;

&lt;p&gt;Bill Talks AI Podcast Working Session - Bill Raymond&lt;/p&gt;

&lt;p&gt;Meeting purpose Introduce each other and define a podcast topic Document a conversational outline Select a recording date Answer any questions&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs8qp57zjxji6e9do26t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs8qp57zjxji6e9do26t.png" alt="Introducing Domain-Specific AI Models" width="192" height="192"&gt;&lt;/a&gt;Calendly&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzo3s3ae9ol3bcf46uka.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzo3s3ae9ol3bcf46uka.png" alt="Introducing Domain-Specific AI Models" width="480" height="250"&gt;&lt;/a&gt;&lt;br&gt;
](&lt;a href="https://calendly.com/billraymond/agile-in-action-podcast-working-session-clone?ref=billtalksai.com" rel="noopener noreferrer"&gt;https://calendly.com/billraymond/agile-in-action-podcast-working-session-clone?ref=billtalksai.com&lt;/a&gt;)&lt;br&gt;
&lt;em&gt;Want to speak with Bill about this topic, contact him for free using this link.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you work in a small business and want to save money, you can use many of these open-source models after downloading them. Then, write up some instructions and share them with your colleagues. However, working at a larger organization may require IT support, outside expertise, and other resources.&lt;/p&gt;

&lt;p&gt;The good news is that cloud services make these open-source models available to you as a service. They even offer similar or competitive services that you can use that are relatively inexpensive.&lt;/p&gt;

&lt;p&gt;For example, Amazon's &lt;a href="https://aws.amazon.com/?ref=billtalksai.com" rel="noopener noreferrer"&gt;AWS&lt;/a&gt;, &lt;a href="https://azure.microsoft.com/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Microsoft Azure&lt;/a&gt;, and &lt;a href="https://cloud.google.com/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Google Cloud&lt;/a&gt; offer speech-to-text, text-to-speech, video analysis, fraud detection, and many other solutions to meet your needs. If they do not offer a service that meets your needs, they all provide solutions to host your custom applications.&lt;/p&gt;

&lt;p&gt;When you host those solutions, you can make them available to your employees. If you are creating a for-profit product, hosting the solution on a cloud provider is an ideal way to provide your product to your customers.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Dr. Deborah Chen provided editing services for this article.&lt;/em&gt;&lt;/p&gt;




</description>
    </item>
    <item>
      <title>⚔️ The Tyranny of Choice: Open vs. Closed AI Models</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Tue, 10 Sep 2024 14:17:40 +0000</pubDate>
      <link>https://dev.to/billraymond/the-tyranny-of-choice-open-vs-closed-ai-models-26c3</link>
      <guid>https://dev.to/billraymond/the-tyranny-of-choice-open-vs-closed-ai-models-26c3</guid>
      <description>

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsq5d0fzhtltduyph1kse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsq5d0fzhtltduyph1kse.png" alt="⚔️ The Tyranny of Choice: Open vs. Closed AI Models" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Executive summary&lt;/strong&gt; : Open-source AI models are emerging as viable alternatives to paid platforms like OpenAI's ChatGPT, offering users access to powerful tools without recurring fees. While these models present opportunities for independents, small businesses, and developers to reduce costs and increase efficiency, you must consider the fine print. Decision-makers must carefully assess these models' long-term viability and risks before fully committing.&lt;/p&gt;




&lt;p&gt;OpenAI's ChatGPT, Google's Gemini, and Anthropic's Claude are in an arms race to be your go-to platform for all things AI. They also want your money, so while you can use many for free, the capabilities have limitations, with all the good stuff starting at $20/month/user.&lt;/p&gt;

&lt;p&gt;📈 However, the monthly fees do not stop there. Want to create audio, video, or images with an integrated suite of editing tools like Adobe Creative Cloud? How about information worker tools like Google Workspace or Microsoft 365? If I take the base plans for some of these products, you are paying over $182/user/month.&lt;/p&gt;

&lt;p&gt;💸 Have you downloaded an app that has AI built-in? Maybe a personal assistant or a tool to help you write? All those apps have to pay small fees for every interaction you have with the app, which adds up. You might be paying $35/month, but every time you do something in the app, the software developer has to perform micro-transactions with various AI companies that eat into their profit.&lt;/p&gt;

&lt;p&gt;AI is a world-changing technology we hope to make available to everyone. But as you can see, the costs can become increasingly limiting for independents, small businesses, and, in some cases, much larger organizations.&lt;/p&gt;

&lt;h2&gt;
  
  
  🦸🏽 Open source comes to save the day!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao0r7bjdii3ednj001o5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fao0r7bjdii3ednj001o5.png" alt="⚔️ The Tyranny of Choice: Open vs. Closed AI Models" width="800" height="156"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Open source promises to give you ChatGPT-like superpowers without the monthly fees.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Free, open-source &lt;a href="https://dev.to/billraymond/unlocking-the-secrets-of-ai-models-3ki-temp-slug-7638886"&gt;AI models&lt;/a&gt; are here to free you of monthly fees and empower you with the latest AI technology!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Open-source software (OSS) generally refers to software apps or services that are freely available. The code can be inspected and perhaps even changed to meet your needs. OSS encourages collaboration and innovation, as developers worldwide can contribute to improving and customizing the software. OSS is typically free to use, allowing users to tailor the software to their needs, fix issues, and share their changes with others, fostering a community-driven development model. In the collaborative and free nature of OSS is a bit more opaque, but more on that later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here are the top 3 open source AI models you will see frequently in the news. I refer to them as foundational models because they contain world knowledge and are not designed for one specific task. However, they are also referred to as Large Language Models (LLMs) or SLMs (Small Language Models):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Facebook's &lt;a href="https://llama.meta.com/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Llama&lt;/a&gt; 3&lt;/li&gt;
&lt;li&gt;Microsoft's &lt;a href="https://azure.microsoft.com/en-us/blog/introducing-phi-3-redefining-whats-possible-with-slms/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Phi&lt;/a&gt; 3&lt;/li&gt;
&lt;li&gt;Google's &lt;a href="https://ai.google.dev/gemma?ref=billtalksai.com" rel="noopener noreferrer"&gt;Gemma&lt;/a&gt; 3&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡&lt;/p&gt;

&lt;p&gt;Editor's note: There are thousands of open-source AI models. I will focus on foundational chatbot-style AI models for the remainder of this article.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🌟&lt;/strong&gt; A new world of opportunities
&lt;/h3&gt;

&lt;p&gt;These open-source alternatives allow you to download small, medium, and large versions, each with progressively more knowledge and skills. You can do this today for free (assuming you don't pay for bandwidth) and use them locally on your computer!&lt;/p&gt;

&lt;p&gt;These models offer thousands of use cases and opportunities. Here are three:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Independents and small businesses can use chatbots on their computers and avoid paying monthly fees. I use them to summarize long documents and compose social media posts.&lt;/li&gt;
&lt;li&gt;Companies with internal, custom-built software can add AI features at a fraction of the cost of a paid model.&lt;/li&gt;
&lt;li&gt;Software developers can add these smaller models into their apps without paying fees to the larger companies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🎉 Rejoice! Open source saves us!
&lt;/h3&gt;

&lt;p&gt;With open source, we, the people, have access to the advanced capabilities only the big entrenched players have. We are unshackled from corporate lock-ins and can generate any content we want, any time we want!&lt;/p&gt;

&lt;p&gt;Right?&lt;/p&gt;

&lt;h3&gt;
  
  
  🤔 Wait a minute...
&lt;/h3&gt;

&lt;p&gt;If you are excited to freely chat, build apps with superpowers, make your business more efficient, and reduce monthly costs, you should be! And you might want to ask yourself these questions:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why would Google, Microsoft, and Facebook be our open-source saviors when they have a vested interest in profiting from me?  &lt;/p&gt;

&lt;p&gt;Are these models just another way to lock me in to their platforms?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Those are important questions to consider before jumping head-first into using these products. This article could be a very long series, so I am going to give you high-level answers to the following questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What is the definition of &lt;em&gt;free&lt;/em&gt; with these open-source models?&lt;/li&gt;
&lt;li&gt;If I like the open-source model, can I use it to create apps for my business or sell on open markets?&lt;/li&gt;
&lt;li&gt;Should I assume these models will receive regular and frequent updates with new and refreshed "knowledge"?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🔍 The definition of "free" with foundational AI models
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F69ft3y6153i0p3pra2wa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F69ft3y6153i0p3pra2wa.png" alt="⚔️ The Tyranny of Choice: Open vs. Closed AI Models" width="800" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Is open source software truly "free"?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In what I will term &lt;em&gt;traditional&lt;/em&gt; OSS (open-source software), a person(s) creates software to solve a problem and makes the code free of charge on an OSS platform.&lt;/p&gt;

&lt;p&gt;For example, if you have ever wanted to play MP3 files, DVD movies, or other media, you may have used the popular VLC Media Player. You can visit GitHub, a site Microsoft owns, to see &lt;a href="https://github.com/videolan/vlc?ref=billtalksai.com" rel="noopener noreferrer"&gt;its code repository (a repo)&lt;/a&gt;. There, you can read up on its latest innovations and see what the vibrant community of contributors is planning for new versions.&lt;/p&gt;

&lt;p&gt;While you often find people writing software code on GitHub, they create and test AI models on another platform—with the cutest name—Hugging Face. &lt;a href="https://huggingface.co/openai-community/gpt2?ref=billtalksai.com" rel="noopener noreferrer"&gt;Here&lt;/a&gt; is OpenAI's ChatGPT (GPT-2) model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open source does not mean license-free
&lt;/h3&gt;

&lt;p&gt;💡&lt;/p&gt;

&lt;p&gt;Now would be a good time to let you know I am not a lawyer, so while I researched all my statements to the best of my ability, I may be misspeaking. &lt;/p&gt;

&lt;p&gt;Now that you know there are popular places to build, contribute, and share software and AI models, you should also know that is not a requirement. Anyone who builds open-source software can share as much or as little as they want. They can even add licenses that protect the software.&lt;/p&gt;

&lt;p&gt;Here are three popular licenses you might see from the OSS community:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MIT License&lt;/strong&gt; : We call this a &lt;em&gt;permissive&lt;/em&gt; license because it allows anyone to freely use, modify, and distribute the software, usually requiring or requesting some attribution to the original author.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GNU General Public License (GPL)&lt;/strong&gt;: We call this a &lt;em&gt;copyleft&lt;/em&gt; license because sometimes people will take your open-source code, modify it, and then sell it for a price. A GNU license ensures that modified software versions are open source and distributed under the same GPL terms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apache License 2.0&lt;/strong&gt; : A permissive license similar to MIT but includes more explicit terms for patent rights and contributions, allowing users to use and modify the software freely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Like the rest of the OSS community, people and companies that release open-source AI models can choose to use any license they like. While the Apache License 2.0 is popular, here are two others the AI community appears to be adopting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Creative Commons (CC BY 4.0)&lt;/strong&gt;: This license permits others to share and adapt AI model data and outputs as long as credit is given to the original authors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenRAIL (Responsible AI License)&lt;/strong&gt;: This license is explicitly designed for AI models; it allows for free use and modification but includes clauses to ensure ethical use and prevent harmful applications of AI technology.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Open-source foundational AI Models and licenses
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup9yjmmkficbt5fd5wo6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup9yjmmkficbt5fd5wo6.png" alt="⚔️ The Tyranny of Choice: Open vs. Closed AI Models" width="800" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Always review the terms of use on a digital device for open-source AI models.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As I mentioned at the outset of this article, Meta (the Facebook and Instagram company) offers an open-source foundational AI model called Llama. It allows you to install something equivalent to ChatGPT's text prompting on your computer. As a software developer, you can create apps that use Llama to enhance user interactions.&lt;/p&gt;

&lt;p&gt;While people in the AI space refer to Llama (and Google's Gemma and Microsoft's Phi-3) as an open-source solution, I would say they live in a gray area. You will not find the source material used to train the model, all the algorithms they use, or the code used to create the model. In that sense, the "open source" part of the product is the output of Meta's software code, not the code itself.&lt;/p&gt;

&lt;p&gt;Peeling the onion back and reading Meta's Llama 3 &lt;a href="https://llama.meta.com/llama3/license/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Community License Agreement&lt;/a&gt;, you will find it is a worldwide royalty-free, limited license. Some of the limitations require you (the licensee):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1.b.i.(B): Prominently display “Built with Meta Llama 3” on a related website, user interface, blog post, about page, or product documentation&lt;/li&gt;
&lt;li&gt;1.b.V: Will not use the Llama Materials or any output or results of the Llama Materials to improve any other large language model (excluding Meta Llama 3 or derivative works thereof).&lt;/li&gt;
&lt;li&gt;2: Additional Commercial Terms. If, on the Meta Llama 3 version release date, the monthly active users of the products or services made available by or for Licensee, or Licensee’s affiliates, is greater than 700 million monthly active users in the preceding calendar month, you must request a license from Meta, which Meta may grant to you in its sole discretion, and you are not authorized to exercise any of the rights under this Agreement unless or until Meta otherwise expressly grants you such rights.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google's Gemma is much more specific in its restrictive uses. For example, you cannot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1: Generate any content, including the outputs or results generated by Gemma or Model Derivatives, that infringes, misappropriates, or otherwise violates any individual's or entity's rights[...]&lt;/li&gt;
&lt;li&gt;2: Perform or facilitate dangerous, illegal, or malicious activities[...]&lt;/li&gt;
&lt;li&gt;3: Generate and distribute content intended to misinform, misrepresent, or mislead[...]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To my knowledge, Microsoft's Phi-3 model is under a &lt;a href="https://huggingface.co/microsoft/Phi-3.5-mini-instruct/blob/main/LICENSE?ref=billtalksai.com" rel="noopener noreferrer"&gt;very permissive MIT license&lt;/a&gt;, which I mentioned earlier in this article.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I be worried about these licenses?
&lt;/h3&gt;

&lt;p&gt;In my humble opinion, the licenses are not too restrictive. I called out the Llama 3 license because Meta restricts the number of users (700M is a considerable number, though). More importantly, the output cannot improve another large language model. That second part is a little disconcerting.&lt;/p&gt;

&lt;p&gt;What happens if you prompt Llama with information and then paste that into ChatGPT, and the setting allows your prompts to train ChatGPT? Does that mean you just broke the license? I think, technically, the answer is yes. Will the lawyers come for you? I don't think so. But, if you are a researcher or developer using multiple AI models and need them to interact with–and learn–from each other. I could see that as perhaps breaking the legal agreement.&lt;/p&gt;

&lt;p&gt;Or not. Remember, I am not a lawyer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Okay, Bill, I read the licenses, but is there anything else I should be worried about?
&lt;/h2&gt;

&lt;p&gt;Mind you, this article is not about &lt;strong&gt;all&lt;/strong&gt; AI open-source models, just the big-name ones. Meta, Microsoft, and Google care most about software developers using these tools. While not said aloud, one could assume that these models directly respond to threats by the names of ChatGPT and Claude.&lt;/p&gt;

&lt;p&gt;If they do improve these models to the point where they chip away at the market dominance of some of these other models, then what would be the point of giving them away? Why not sell their competitive models (like Google already does with &lt;a href="https://gemini.google.com/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Gemini&lt;/a&gt;, by the way)?&lt;/p&gt;

&lt;p&gt;Currently, these models are pretty up to date with how we use our language, so their responses feel fresh and "now." But what terms will we use a year from now? Three years from now? If you invested in these models and they do not remain fresh with new versions and content, that great app you built inside your company or for your startup might seem stale and archaic.&lt;/p&gt;

&lt;p&gt;With every release of a model, the company building them has the right to create new licenses. Maybe their models remain open source, but their licenses become more restrictive and even require you to pay a percentage of the profits you are making from the use of the model. Maybe these licenses require you to pay the creators a percentage of your earnings. What happens if the model outputs material you never thought would result in someone's injury, and your business is now responsible?&lt;/p&gt;

&lt;p&gt;All of this could come true. Or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open-source models as SaaS on the cloud
&lt;/h2&gt;

&lt;p&gt;If you are a software developer and want to offer an app, there is a good chance you will not download a multi-gigabyte OSS model onto every device where your product runs. Instead, you will host the model on so-called cloud platforms, like Microsoft's Azure, Google's Cloud, or Amazon's AWS.&lt;/p&gt;

&lt;p&gt;Of course, many more cloud platforms are out there. Still, the idea is these smaller OSS models might be ideal for up-and-coming startups or organizations that need an AI model with reasoning abilities but do not need to pay for high-end services like ChatGPT or Gemini. The good news is Google, Microsoft, and Amazon will offer these models (and more) at a cost. Sometimes, the price can be lower than the more prominent players, so there is an incentive to offer varying price points and capabilities.&lt;/p&gt;

&lt;p&gt;The idea that you and I can download a powerful model to our computers and interact with it, just like ChatGPT, is great for everyone. If we want to use them for more advanced applications, we will probably end up paying the entrenched cloud providers, who will offer us options at different price points.&lt;/p&gt;

&lt;p&gt;For example, if you compare &lt;a href="https://azure.microsoft.com/en-us/pricing/details/phi-3/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Microsoft's Phi-3&lt;/a&gt; pricing to &lt;a href="https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/?ref=billtalksai.com" rel="noopener noreferrer"&gt;Microsoft's ChatGPT pricing&lt;/a&gt;, you will notice that a software developer can save a significant amount of money using Phi-3. However, that does not mean Phi-3 is a better choice since ChatGPT offers a wider array of services. Or maybe Phi-3 is lean and mean and meets all their needs. This is why competition is good, and I hope more foundational OSS AI models find their way to the market and become available as services on cloud platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Carefully weigh your open-source AI decisions
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcojv773c0di233vm6ms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcojv773c0di233vm6ms.png" alt="⚔️ The Tyranny of Choice: Open vs. Closed AI Models" width="800" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Carefully weigh your open-source vs. closed-source decisions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I love the open-source community and think this new wave of open-source AI models is exciting. I hope the community thrives and there is more engagement in the open development of the tools. I also hope you carefully weigh the decisions you make.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Dr. Deborah Chen provided editing services for this article.&lt;/em&gt;&lt;/p&gt;




</description>
    </item>
    <item>
      <title>AI training Tuesday: 🌟An introduction to custom GPTs</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Tue, 16 Jul 2024 12:30:07 +0000</pubDate>
      <link>https://dev.to/billraymond/ai-training-tuesday-an-introduction-to-custom-gpts-261d</link>
      <guid>https://dev.to/billraymond/ai-training-tuesday-an-introduction-to-custom-gpts-261d</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1677756119517-756a188d2d94%3Fcrop%3Dentropy%26cs%3Dtinysrgb%26fit%3Dmax%26fm%3Djpg%26ixid%3DM3wxMTc3M3wwfDF8c2VhcmNofDR8fGFpfGVufDB8fHx8MTcyMDczNTM2MXww%26ixlib%3Drb-4.0.3%26q%3D80%26w%3D2000" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1677756119517-756a188d2d94%3Fcrop%3Dentropy%26cs%3Dtinysrgb%26fit%3Dmax%26fm%3Djpg%26ixid%3DM3wxMTc3M3wwfDF8c2VhcmNofDR8fGFpfGVufDB8fHx8MTcyMDczNTM2MXww%26ixlib%3Drb-4.0.3%26q%3D80%26w%3D2000" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have ever used ChatGPT or any similar large language model (LLM), you know that it contains a vast array of knowledge from around the globe. When you type a &lt;a href="https://dev.to/billraymond/ai-training-tuesday-lets-take-a-shot-at-better-prompting-n6j-temp-slug-3313535"&gt;prompt&lt;/a&gt;, it provides an answer.&lt;/p&gt;

&lt;p&gt;However, these LLMs do not always contain information specific to your company, book, newspaper, or blog. In cases like this, you might want to create a GPT. Here are some example use cases:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzl4q6kn84e9ad3kuk5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzl4q6kn84e9ad3kuk5a.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="407"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Examples of GPTs you might consider creating.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;💡&lt;/p&gt;

&lt;p&gt;Don't know what a GPT is? Please read my article &lt;a href="https://dev.to/billraymond/ai-training-tuesday-the-history-of-the-gpt-in-chatgpt-92b-temp-slug-6867283"&gt;The History of the GPT in ChatGPT&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Custom GPTs
&lt;/h2&gt;

&lt;p&gt;While there are some nuances here, there are three types of GPTs you can create:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🧱 No-code GPTs&lt;/strong&gt; : Ideal for simple chatbots, FAQ bots, and essential customer service assistants.&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Low-code GPTs&lt;/strong&gt; : Suitable for moderately complex applications such as task automation bots, integration with CRM systems, and personalized recommendation systems.&lt;/li&gt;
&lt;li&gt;🧑🏽‍💻 &lt;strong&gt;Full-code custom GPTs&lt;/strong&gt; : Best for advanced applications like custom enterprise solutions, highly specialized virtual assistants, or intricate data processing bots.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the remainder of this article, I will describe each type of custom GPT. In future articles, I will expand on these types with more detail. Want to know more? Please share your thoughts in the comments or &lt;a href="https://calendly.com/billraymond/30min?ref=billtalksai.com" rel="noopener noreferrer"&gt;book a 30-minute meeting with me&lt;/a&gt; to ask more questions about your use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧱 Introducing no-code GPTs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fie0t9mpcftnpriov49o7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fie0t9mpcftnpriov49o7.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;No-code GPTs are like building blocks; you upload knowledge and direct the GPT to answer various prompts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You probably have a corporate portal that uses SharePoint or Notion. You also have Slack or Teams with dozens or hundreds of channels. Finding something as simple as vacation days or holidays can be a painful exercise, especially for new employees. Let's use that simple example to create a no-code GPT. Later in this article, I show you how low-code and full-code GPTs can take this capability to the next level.&lt;/p&gt;

&lt;h3&gt;
  
  
  The problem
&lt;/h3&gt;

&lt;p&gt;Let's say you go to ChatGPT, Copilot, or some other LLM and type the following prompt: &lt;code&gt;How many vacation days do I have?&lt;/code&gt; The response will be something like the one you see in the following image: it does not know your company's policy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkq4x5j2o4xjq8fn102i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkq4x5j2o4xjq8fn102i.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="240"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;ChatGPT and other LLMs cannot answer questions unique to your own business, such as "How many vacation days do I have?"&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The no-code solution
&lt;/h3&gt;

&lt;p&gt;You can create a GPT that understands your company's corporate leave policies. As part of that process, I will make a new no-code GPT and upload our internal Company Corporate Leave Policy in PDF format.&lt;/p&gt;

&lt;p&gt;💡&lt;/p&gt;

&lt;p&gt;At the time of this writing, ChatGPT and Microsoft Copilot provide an easy-to-use interface for creating personal, team-based, or public no-code and low-code GPTs. Google's Gemini and others have similar functionality, but I believe they need more time before they are ready for production use.&lt;/p&gt;

&lt;h4&gt;
  
  
  Prepare your GPT's "knowledge."
&lt;/h4&gt;

&lt;p&gt;The &lt;em&gt;Company Corporate Leave&lt;/em&gt; PDF document I uploaded contains pictures and special formatting, as shown in the following image. The LLM can still read and make sense of the document.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdsw1d2t8izk1cz4om4u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdsw1d2t8izk1cz4om4u.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="675"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A corporate leave policy document in PDF form.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Finalize the no-code GPT
&lt;/h4&gt;

&lt;p&gt;Next, I will finish configuring the no-code GPT by letting ChatGPT or Copilot create a logo and some sample questions to guide the user through its use. The following image is a screenshot of my new &lt;em&gt;Corporate Leave Policy&lt;/em&gt; GPT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3e4zwve7jfkhtoe2paww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3e4zwve7jfkhtoe2paww.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="615"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The corporate leave policy has been uploaded to ChatGPT. Sample questions and even a logo were automatically generated.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Use the no-code GPT
&lt;/h4&gt;

&lt;p&gt;When employees want to ask about corporate leave policies, they go to the GPT rather than send a message to an HR employee.&lt;/p&gt;

&lt;p&gt;In the following image, I prompt the no-code GPT with &lt;code&gt;How many vacation days do I have?&lt;/code&gt; This time, the GPT responds with the correct answer, which is 15 days. The GPT knows this based on the previously uploaded &lt;em&gt;knowledge&lt;/em&gt; document (the Corporate Leave Policy PDF.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fucahwch5bx9c3fqba8ww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fucahwch5bx9c3fqba8ww.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="203"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Using the GPT, an employee can ask how many vacation days they have and receive an accurate response based on the corporate leave policy document.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;💡&lt;/p&gt;

&lt;p&gt;Most LLMs (ChatGPT, Copilot, Gemini, Claude) can read popular PDF, Word, PowerPoint, HTML, and markdown formats. If you want to create your own GPT, you should start by uploading a simple document to ensure it is a supported file format.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎨 Introducing low-code GPTs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0x2ckpwpbbtk9j8c0bpj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0x2ckpwpbbtk9j8c0bpj.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A low-code GPT is like paint by numbers because it provides a guided structure with room for creativity and customization.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sometimes, responding to a question based on a document is not enough. Let's continue with our example of using a corporate leave policy. As you may be aware, when you work for a company, you might have more vacation days based on seniority, such as the number of years you have worked, your pay grade, or other criteria. That information is typically stored in a database; your IT department may have easy ways to connect to that database using Application Programming Interface (API) connections.&lt;/p&gt;

&lt;p&gt;Let's see what happens if a software developer—or proficient technical person—writes a small amount of code for our policy leave example. I will use the original GPT containing the generic corporate leave policy again. This time, our low-code GPT will access the HR database's API and give the employee a more personalized response experience.&lt;/p&gt;

&lt;p&gt;As you can see in the following image, my prompt &lt;code&gt;How many vacation days do I have?&lt;/code&gt; results in a response based on my seniority within the company. Not only that, but it also shares information from the generic policy that is available to everyone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgas4x4l15n6643l125os.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgas4x4l15n6643l125os.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="340"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A low-code GPT informs the user of how many vacation days they have based on their seniority.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Your low-code solution is now more powerful because you combined it with a database that provides more value to the employee.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧑🏽‍💻 Introducing full-code custom GPTs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt177wa5ovjzg53tos29.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt177wa5ovjzg53tos29.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A full-code GPT is like crafting something from scratch because it allows you to design and build every aspect from the ground up like an artisan would start using raw materials.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sometimes, you want to create something people can use outside your company, such as an app on a phone or a bot to interact with your business. You may not want to direct someone to ChatGPT or Copilot in those cases. Instead, you want to create a personalized and branded experience. If that is the case, you will have software developers create the app using code that connects to ChatGPT using APIs – or application programming interfaces. With a full-code GPT, you can make a fully customized user experience.&lt;/p&gt;

&lt;p&gt;Let's continue with our corporate leave policy example. This time, I created a full-code custom chatbot named "Jobsy" and placed it on my company's &lt;em&gt;Job Listings&lt;/em&gt; page. Jobsy will engage job seekers to answer questions about what it is like to work there and ask HR policy questions.&lt;/p&gt;

&lt;p&gt;In my example, the job seeker asks the Jobsy bot &lt;code&gt;If I take a job, how many vacation days will I receive?&lt;/code&gt; As you can see in the following image, Jobsy responds with an answer and encourages the job seeker to ask more questions or check out the job listings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66gqysl7tnu0wk0jyx3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66gqysl7tnu0wk0jyx3k.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="800" height="460"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A full-code GPT can be a website chatbot, a phone app, or any other form you might imagine.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Full-code GPT solutions are compelling but will take time. You might find a vendor that already provides a solution, or you will hire a software developer(s) to build something from scratch. You can even create an app you sell on an app store that uses ChatGPT or other LLMs in the background. The ideas are limitless here, but some may include games, gardening support, data visualizers, or more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to discuss this further?
&lt;/h2&gt;

&lt;p&gt;If you want to create a GPT for yourself or your business, book a 30-minute call with Bill Raymond using the link below:&lt;/p&gt;

&lt;p&gt;[&lt;/p&gt;

&lt;p&gt;30 Minute Meeting - Bill Raymond&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs8qp57zjxji6e9do26t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs8qp57zjxji6e9do26t.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="192" height="192"&gt;&lt;/a&gt;Calendly&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzo3s3ae9ol3bcf46uka.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzo3s3ae9ol3bcf46uka.png" alt="AI training Tuesday: 🌟An introduction to custom GPTs" width="480" height="250"&gt;&lt;/a&gt;&lt;br&gt;
](&lt;a href="https://calendly.com/billraymond/30min?ref=billtalksai.com" rel="noopener noreferrer"&gt;https://calendly.com/billraymond/30min?ref=billtalksai.com&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dr. Deborah Chen provided editing services for this article.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>gpt</category>
      <category>ai</category>
      <category>prompting</category>
    </item>
    <item>
      <title>Video: Develop Jekyll or GitHub Pages using Docker containers</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Mon, 04 Apr 2022 23:58:02 +0000</pubDate>
      <link>https://dev.to/billraymond/video-develop-jekyll-or-github-pages-using-docker-containers-2i04</link>
      <guid>https://dev.to/billraymond/video-develop-jekyll-or-github-pages-using-docker-containers-2i04</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/owHfKAbJ6_M"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;All the steps I show you in the video are located at &lt;a href="https://github.com/BillRaymond/my-jekyll-docker-website" rel="noopener noreferrer"&gt;this repo in the README&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;👋 Novice alert!&lt;br&gt;
I hope you find this video helpful, but I also want to point out I am at best a novice Docker user, so please be easy on me :-)&lt;/p&gt;

&lt;h2&gt;
  
  
  ❓ What are Jekyll and GitHub Pages?
&lt;/h2&gt;

&lt;p&gt;You may be aware GitHub offers a feature called &lt;a href="https://pages.github.com" rel="noopener noreferrer"&gt;GitHub Pages&lt;/a&gt;, which allows you to host your website for free.&lt;/p&gt;

&lt;p&gt;While you can certainly use basic html, css, and javascript, a more powerful option is to use &lt;a href="https://jekyllrb.com" rel="noopener noreferrer"&gt;Jekyll&lt;/a&gt;, which makes it easier to create a website. One of the nicest features is that you build static sites, but they are blog-aware, so blogging is super easy.&lt;/p&gt;

&lt;h2&gt;
  
  
  💻 Jekyll and local development
&lt;/h2&gt;

&lt;p&gt;There is a good chance you would like to build your Jekyll site locally to create, modify, or test the functionality before moving your site to production. Unfortunately, if you want to run Jekyll locally, you will have to install Ruby, Jekyll, and other dependencies.&lt;/p&gt;

&lt;p&gt;Worse, if you use different versions of Jekyll, you may need different versions of Ruby on your computer. Getting all of that set up is a hassle and it is something I have struggled with over the last year.&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Docker containers: The easier way to develop locally
&lt;/h2&gt;

&lt;p&gt;You can use Docker containers to essentially package up a "local" development environment without having to install Ruby or Jekyll on your computer.&lt;/p&gt;

&lt;h2&gt;
  
  
  👍 Benefits of developing in a container
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;You do not need to install Ruby or Jekyll on your computer. Instead, they reside in the container&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using my method, you can use it with x86 or ARM chipsets (x86 being Intel and ARM being things like Apple Silicon)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Every Jekyll container can have its own version of Ruby and or Jekyll, making it easy to switch from one to another (for example, I use Ruby 3.0.3 and Jekyll 4.2.x for my podcast website and Ruby 2.7 with Jekyl 3.9.2 for my company website)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By using Microsoft’s Remote-Containers extension in VSC, the code you write remains on your computer and runs in the container. That means if you accidentally delete the container, you do not lose your files.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  ➡️ Pre-requiresites
&lt;/h2&gt;

&lt;p&gt;While I cover these steps in the video, you will need the following to get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A free &lt;a href="https://www.docker.com" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; account, along with the Docker Desktop&lt;/li&gt;
&lt;li&gt;A free &lt;a href="https://github.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; account&lt;/li&gt;
&lt;li&gt;A free copy of &lt;a href="https://code.visualstudio.com" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The following two free VSCode extensions:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker" rel="noopener noreferrer"&gt;Docker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers" rel="noopener noreferrer"&gt;Remote-containers&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>webdev</category>
      <category>docker</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Looking for feedback on my beginners Visual Studio Code UI tutorial video</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Thu, 11 Nov 2021 02:03:03 +0000</pubDate>
      <link>https://dev.to/billraymond/looking-for-feedback-on-my-beginners-visual-studio-code-ui-tutorial-video-35kk</link>
      <guid>https://dev.to/billraymond/looking-for-feedback-on-my-beginners-visual-studio-code-ui-tutorial-video-35kk</guid>
      <description>&lt;p&gt;I am an occasional developer and decided to write my website from scratch last year. Aside from learning Jekyll, SCSS, Git, and GitHub, I also learned a lot about how to use Visual Studio Code. &lt;/p&gt;

&lt;p&gt;The work I do using VSC is just the tip of the iceberg, but it was fun. That is why I decided to create a regular series on how to use VSC on my YouTube channel.&lt;/p&gt;

&lt;p&gt;However, before I start releasing regular videos, I wanted to reach out to the community here to review it first and provide feedback.&lt;/p&gt;

&lt;p&gt;That is why I am creating this DEV-only post, asking anyone that has a chance to watch this 11m 35s video that walks a person through the VSC user interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  The video
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/rSaxqCFDLpQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback request
&lt;/h2&gt;

&lt;p&gt;If you can take a moment, I would appreciate your feedback on any of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is it informative?&lt;/li&gt;
&lt;li&gt;Is it too long? Not long enough? Just right?&lt;/li&gt;
&lt;li&gt;Is this a series that would interest you?&lt;/li&gt;
&lt;li&gt;How is the audio and video quality?&lt;/li&gt;
&lt;li&gt;Is there any feedback you want to provide?&lt;/li&gt;
&lt;li&gt;Is there anything you want to learn in VSC?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contents
&lt;/h2&gt;

&lt;p&gt;The video covers the following topics&lt;br&gt;
Introduction to the Visual Studio Code UI&lt;br&gt;
The menu bar&lt;br&gt;
The title bar&lt;br&gt;
The activity bar&lt;br&gt;
The side bar&lt;br&gt;
The explorer, including some reasons for using it&lt;br&gt;
The editor&lt;br&gt;
The group editor&lt;br&gt;
The panel&lt;br&gt;
The status bar&lt;br&gt;
The command palette&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>programming</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Free video training: VS 2019 New Git Experience with Git, GitHub, and Pull Requests</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Mon, 19 Jul 2021 20:05:11 +0000</pubDate>
      <link>https://dev.to/billraymond/free-video-training-vs-2019-new-git-experience-with-git-github-and-pull-requests-4od3</link>
      <guid>https://dev.to/billraymond/free-video-training-vs-2019-new-git-experience-with-git-github-and-pull-requests-4od3</guid>
      <description>&lt;p&gt;A few months back, Microsoft released their &lt;em&gt;New Git Experience&lt;/em&gt; for Visual Studio 2019. That meant I had to update my free training videos on YouTube.&lt;/p&gt;

&lt;p&gt;I already produced two videos that show you how to work with the new Git and GitHub experience, but it was not until today that I published the third and final video, which shows collaboration using Pull Requests.&lt;/p&gt;

&lt;p&gt;Here is the entire three-part series, with the last video in the list being the video I published today.&lt;/p&gt;

&lt;p&gt;If you like this videos, please press the 👍, 🔔, write a 💬 and subscribe. Those small acts of kindness help keep my channel going. Thank you!&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn the new Visual Studio 2019 Git User Experience
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gkDASVE_Hdg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn the new Visual Studio 2019 GitHub User Experience
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7ossCy94YAo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn how to collaborate using the new Visual Studio 2019 GitHub User Experience
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Wdc56jf3yxM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>github</category>
      <category>visualstudio</category>
      <category>pullrequest</category>
    </item>
    <item>
      <title>Free video course: Learn the new Visual Studio 2019 Git experience, Part 1, local Git repos</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Mon, 08 Feb 2021 18:32:02 +0000</pubDate>
      <link>https://dev.to/billraymond/free-video-course-learn-the-new-visual-studio-2019-git-experience-part-1-local-git-repos-1bdi</link>
      <guid>https://dev.to/billraymond/free-video-course-learn-the-new-visual-studio-2019-git-experience-part-1-local-git-repos-1bdi</guid>
      <description>&lt;p&gt;As an occasional independent developer, I spent countless days trying to learn Git. Nearly all of the videos, blogs, and books assume you know a whole lot about software development and Git. I knew enough to get by, so most of the training went over my head.&lt;/p&gt;

&lt;p&gt;A few years ago, I finally decided to stop trying to learn Git and instead write my code and figure Git out along the way. Most importantly, I did not want to use the command line. I decided that command-line experience would come over time, so I wanted to use Visual Studio 2019's user interface as an intermediary for Git. So far, it has worked out great, and I even created a video series to teach you how to use the product.&lt;/p&gt;

&lt;p&gt;In the latter half of 2020, Microsoft released their &lt;em&gt;New Git User Experience&lt;/em&gt;, so I figured it was time to refresh the video training series, so without further ado, let me introduce you to the first course.&lt;/p&gt;

&lt;h2&gt;
  
  
  Course #1: Learn how to use Git locally
&lt;/h2&gt;

&lt;p&gt;Please do not allow the length of this video to be too daunting. I take things nice and slow so you can follow along, hopefully without constantly pausing and rewinding.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gkDASVE_Hdg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Outline
&lt;/h3&gt;

&lt;p&gt;In this video, I show you all the basic steps needed to get up and running with Git source control using Visual Studio 2019. Specifically, the &lt;em&gt;New Git User Experience&lt;/em&gt; Microsoft introduced in the year 2020.&lt;/p&gt;

&lt;h3&gt;
  
  
  Experience required
&lt;/h3&gt;

&lt;p&gt;You should have some working experience with the Visual Studio 2019 user interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning objectives
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;How to configure Visual Studio to use Git source control&lt;/li&gt;
&lt;li&gt;Create a project and add it to a local Git repo&lt;/li&gt;
&lt;li&gt;Create a branch to fix a bug or add new features&lt;/li&gt;
&lt;li&gt;Learn how to find important files, like &lt;code&gt;.gitignore&lt;/code&gt; and &lt;code&gt;.gitattributes&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Modify code and commit those changes for testing&lt;/li&gt;
&lt;li&gt;Merge branches back to the mainline, so my code has the new features or bug fixes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Even if the terminology I use above is unfamiliar to you right now, you will learn it in this video. Most importantly, I only edit one, maybe two lines of code, and it will be changing some basic Hello World text.&lt;/p&gt;

&lt;p&gt;I create these videos as a hobby and hope to make a little money off ads. You would be doing me a big favor if you subscribe to my channel, sign up for notifications, like the video, and finally, leave a comment if you feel so inclined.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Videos: One Jekyll feed view to rule them all</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Thu, 08 Oct 2020 01:17:09 +0000</pubDate>
      <link>https://dev.to/billraymond/videos-one-jekyll-feed-view-to-rule-them-all-2b6e</link>
      <guid>https://dev.to/billraymond/videos-one-jekyll-feed-view-to-rule-them-all-2b6e</guid>
      <description>&lt;h2&gt;
  
  
  What you get for reading and watching...
&lt;/h2&gt;

&lt;p&gt;Reusable Jekyll code to create a featured post, list of posts, and featured images, all in one file (plus some css). Here is what the reusable code will look like when viewed in a browser:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fft2c2givgtg95v8td84s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fft2c2givgtg95v8td84s.png" alt="Alt Text" width="800" height="860"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Back story
&lt;/h2&gt;

&lt;p&gt;When I created my &lt;a href="https://www.cambermast.com" rel="noopener noreferrer"&gt;website&lt;/a&gt;, I decided to create multiple post types. As of this writing, I have two types of posts: Blog and Podcast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code conundrum
&lt;/h2&gt;

&lt;p&gt;Not fully understanding how to work with Jekyll at the time, I created multiple files containing code to display my blog roll and another set to display the podcast. Then, I wrote a separate code to display featured images, and even more code for the featured post for each post type.&lt;/p&gt;

&lt;p&gt;Whenever I modified the look-and-feel of my site, I had to do a grueling round of code changes and run tests to ensure I did not break the responsive design. I was (well, still am) planning to create another post type for training. The idea of doing yet another round of code for that felt so overwhelming I gave up on the idea, and that is not the way to live ☹️ &lt;/p&gt;

&lt;h2&gt;
  
  
  One feed to rule them all
&lt;/h2&gt;

&lt;p&gt;After opening my code to make a little change to my blog and having to modify five different files, I threw up my hands and did what I should have done a long time ago. I re-architected my site and created a single file that can display any post type I want.&lt;/p&gt;

&lt;p&gt;With my new approach, there is one file containing all the reusable code I need for a feed page (list of posts). Using some CSS styling tricks, the feed can look totally different than the featured post, but it is still the same code. I also have the added value of getting featured images with each post to make the site feel more dynamic and modern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tl;DR (or 'listen, just give me the code')
&lt;/h2&gt;

&lt;p&gt;You can clone my GitHub repo that shows you how to add featured images and the one &lt;em&gt;one feed to rule them all&lt;/em&gt; code here:&lt;br&gt;
&lt;a href="https://github.com/BillRaymond/jekyll-featured-images" rel="noopener noreferrer"&gt;https://github.com/BillRaymond/jekyll-featured-images&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The great news is the code is using Jekyll. Check out the live running site here (the &lt;em&gt;blog&lt;/em&gt; and &lt;em&gt;podcast&lt;/em&gt; links are the ones to pay attention to):&lt;br&gt;
&lt;a href="https://billraymond.github.io/jekyll-featured-images/feed/blog" rel="noopener noreferrer"&gt;https://billraymond.github.io/jekyll-featured-images/feed/blog&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Recommended 'before you begin' videos
&lt;/h2&gt;

&lt;p&gt;My training starts with a barebones Minima site, but it does build on a video series I created that shows you how to add featured images to your posts. Technically, you do not have to set up featured images, but you will be missing out, so check these out first:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/6oKO-7gsM4s"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1GskmTFLrA4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The &lt;em&gt;one feed to rule them all&lt;/em&gt; video series
&lt;/h2&gt;

&lt;p&gt;There are three must-watch videos listed here. I have a fourth to finalize, but that is a tips &amp;amp; tricks video, so please subscribe to &lt;a href="https://www.youtube.com/channel/UCo63gWfWRfEciJ98mJLIU0Q/" rel="noopener noreferrer"&gt;my channel&lt;/a&gt; to keep up with that release.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/xAxKIdxl2-k"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/kKMJZh1bIkk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ZIhMZH6xE3c"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  One last request
&lt;/h2&gt;

&lt;p&gt;The videos I do on YouTube are a labor of love, and I am trying to build an audience for people like myself that are occasional developers. The videos take a long time to create, so I would appreciate it if you &lt;a href="https://www.youtube.com/channel/UCo63gWfWRfEciJ98mJLIU0Q/" rel="noopener noreferrer"&gt;subscribe&lt;/a&gt;, like, comment, and share if you find the content useful. In return, you will receive my sincere gratitude and the drive to create more content like this.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>jekyll</category>
      <category>github</category>
    </item>
    <item>
      <title>Video: Add a featured image to your Jekyll blog roll (part 2)</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Fri, 14 Aug 2020 21:41:36 +0000</pubDate>
      <link>https://dev.to/billraymond/video-add-a-featured-image-to-your-blog-roll-part-2-31gd</link>
      <guid>https://dev.to/billraymond/video-add-a-featured-image-to-your-blog-roll-part-2-31gd</guid>
      <description>&lt;p&gt;In my &lt;a href="https://dev.to/billraymond/video-add-a-featured-image-to-your-jekyll-site-part-1-33dj"&gt;previous post/video&lt;/a&gt;, I shared how to add a featured image to your Jekyll blog posts. In this video, I show you how to add that image to the blog roll (or blog reel, or list of posts, whatever you like to call it).&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1GskmTFLrA4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you enjoy this video, please subscribe to &lt;a href="https://www.youtube.com/channel/UCo63gWfWRfEciJ98mJLIU0Q" rel="noopener noreferrer"&gt;my channel&lt;/a&gt;, like, and comment. Those few actions will help me build an audience and create more content.&lt;/p&gt;

&lt;p&gt;Feel free to clone the repo and use the code freely: &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/BillRaymond" rel="noopener noreferrer"&gt;
        BillRaymond
      &lt;/a&gt; / &lt;a href="https://github.com/BillRaymond/jekyll-featured-images" rel="noopener noreferrer"&gt;
        jekyll-featured-images
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Sample Jekyll site that shows how to implement featured images on posts and post feeds.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The repo has GitHub Pages installed, so you can try it out live &lt;a href="https://billraymond.github.io/jekyll-featured-images/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am an occasional developer, so if you have any insights on how to improve, please feel free to offer your constructive comments. On my &lt;a href="https://www.cambermast.com" rel="noopener noreferrer"&gt;actual website&lt;/a&gt;, you will see I created a shared component that can be reused throughout the site. If you are interested in learning how to do that, let me know in the comments.&lt;/p&gt;

</description>
      <category>jekyll</category>
      <category>staticsite</category>
      <category>blog</category>
    </item>
    <item>
      <title>Video: Add featured images to your Jekyll posts (Part 1)</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Fri, 14 Aug 2020 21:37:43 +0000</pubDate>
      <link>https://dev.to/billraymond/video-add-a-featured-image-to-your-jekyll-site-part-1-33dj</link>
      <guid>https://dev.to/billraymond/video-add-a-featured-image-to-your-jekyll-site-part-1-33dj</guid>
      <description>&lt;p&gt;As I started building my blog, I realized it would be really nice to have a featured image that appears above my blog posts. The image gets a reader’s attention and sets the tone for the content they will read. In this 2-part video series, I show you how to do that using the standard minima site Jekyll ships with. You can take these ideas and concepts and add them to your site.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/6oKO-7gsM4s"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you enjoy this video, please subscribe to &lt;a href="https://www.youtube.com/channel/UCo63gWfWRfEciJ98mJLIU0Q" rel="noopener noreferrer"&gt;my channel&lt;/a&gt;, like, and comment. Those few actions will help me build an audience and create more content.&lt;/p&gt;

&lt;p&gt;Feel free to clone the repo and use the code freely: &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/BillRaymond" rel="noopener noreferrer"&gt;
        BillRaymond
      &lt;/a&gt; / &lt;a href="https://github.com/BillRaymond/jekyll-featured-images" rel="noopener noreferrer"&gt;
        jekyll-featured-images
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Sample Jekyll site that shows how to implement featured images on posts and post feeds.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The repo has GitHub Pages installed, so you can try it out live &lt;a href="https://billraymond.github.io/jekyll-featured-images/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am an occasional developer, so if you have any insights on how to improve, please feel free to offer your constructive comments. On my &lt;a href="https://www.cambermast.com" rel="noopener noreferrer"&gt;actual website&lt;/a&gt;, you will see I created a shared component that can be reused throughout the site. If you are interested in learning how to do that, let me know in the comments.&lt;/p&gt;

</description>
      <category>jekyll</category>
      <category>githubpages</category>
      <category>staticsite</category>
    </item>
    <item>
      <title>Training Videos: Get up and running with Git and GitHub using Visual Studio 2019</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Wed, 13 May 2020 20:03:56 +0000</pubDate>
      <link>https://dev.to/billraymond/training-videos-get-up-and-running-with-git-and-github-using-visual-studio-2019-55a0</link>
      <guid>https://dev.to/billraymond/training-videos-get-up-and-running-with-git-and-github-using-visual-studio-2019-55a0</guid>
      <description>&lt;p&gt;About three years ago from today, I set out to create an app that helps professional and technical authors output their files to a highly compliant ePub format, and output to Amazon. I heard that Git and GitHub existed, but did not want to learn yet another thing given I am only an occasional developer.&lt;/p&gt;

&lt;p&gt;As it turns out, I should have paid attention because I had a rare hard drive crash that ruined my code, and I had no backups. That is when I decided to learn Git and GitHub, so I am sharing with you my personal experience from a beginner's perspective.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Git and GitHub?
&lt;/h2&gt;

&lt;p&gt;Git is an open-source version control system. GitHub is a company, now owned by Microsoft, that provides a cloud-based version of Git. GitHub adds more capabilities on top of Git, like a user interface, issues tracking, project management, collaboration, and much more.&lt;/p&gt;

&lt;p&gt;I will not try to explain it all here, because I do not want to send you down a rabbit hole of research. However, what you should know is Git is very powerful and is highly efficient when you use the command line. However, Visual Studio 2019 offers a friendly user interface that does all the basics you need as a beginner.&lt;/p&gt;

&lt;p&gt;I am going to show you how to use Git and GitHub using the Visual Studio 2019 user interface. Later, when you grow up to the command line, everything will click for you, and it will be much easier to learn.&lt;/p&gt;

&lt;p&gt;Okay, moving on...&lt;/p&gt;

&lt;h2&gt;
  
  
  Who should watch these videos?
&lt;/h2&gt;

&lt;p&gt;I created this video with two types of people in mind:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You use Visual Studio 2019, but you have no clue how to use Git or GitHub.&lt;/li&gt;
&lt;li&gt;You use Git and GitHub, but you have no clue how to use it in Visual Studio 2019.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As of this writing, you can do everything I show you for free. There is no cost to get the free version of Visual Studio 2019, and everything I demonstrate is available in the GitHub free tier. These videos were designed for the Windows version of Visual Studio 2019.&lt;/p&gt;

&lt;p&gt;Do keep in mind that Visual Studio 2019 and GitHub change their user interfaces all the time, so if a button or menu is not where I show on the video, you might have to poke around to find it :-)&lt;/p&gt;

&lt;h2&gt;
  
  
  Video #1: Up and running with Git and GitHub using Visual Studio 2019
&lt;/h2&gt;

&lt;p&gt;In this training video, I walk you through the basics of understanding Git and GitHub, along with how to use the Visual Studio interface to accomplish the basics, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add Git source control to an existing VS 2019 project.&lt;/li&gt;
&lt;li&gt;Create a new VS 2019 project and add Git source control.&lt;/li&gt;
&lt;li&gt;Publish your VS 2019 project to a GitHub repo.&lt;/li&gt;
&lt;li&gt;Clone a GitHub repo from GitHub to your local computer.&lt;/li&gt;
&lt;li&gt;Synchronize your local computer with the remote GitHub repo.&lt;/li&gt;
&lt;li&gt;Branching code.&lt;/li&gt;
&lt;li&gt;Committing code.&lt;/li&gt;
&lt;li&gt;Looking at code history.&lt;/li&gt;
&lt;li&gt;And much more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you do not know what all those things are, do not worry, I explain it all in the video.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/csgO95sbSfA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Video #2: Collaborate using Visual Studio 2019 and GitHub
&lt;/h2&gt;

&lt;p&gt;I usually put code on GitHub as a storage place, but sometimes people find it and use it for themselves. Sometimes people even want to suggest changes. When that magic happens, we call that &lt;em&gt;collaboration&lt;/em&gt;. The people working with you are called &lt;em&gt;contributors&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;There are many ways to collaborate on GitHub, but I cover the two most popular, which are pull requests (PRs) and Issues.&lt;/p&gt;

&lt;p&gt;A pull request is when the contributor sees your code and wants to make a change. After they make the code changes, they send a special message that &lt;em&gt;requests&lt;/em&gt; you &lt;em&gt;pull&lt;/em&gt; their code and consider it for addition to your code. The contributor cannot access your code directly (well, they could with your permission, but that is a discussion for another day), so you are in total control. If you don't like the code, you don't have to accept it. If you do like the code, you can review it and continue collaborating, or simply accept it.&lt;/p&gt;

&lt;p&gt;An issue is when a contributor requests a bug fix, a new feature, or generally asks you a question. GitHub has a pretty robust tracking system that allows people to go to your repo, log an issue and say something like, "I ran this and received and Error #42 when I pressed the OK button". You will read that and can have a discussion with that person and even see the issue in Visual Studio. Should you desire, you can modify your code and even automatically update the issue.&lt;/p&gt;

&lt;p&gt;In this video, I will demonstrate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic collaboration workflows on GitHub and Visual Studio 2019.&lt;/li&gt;
&lt;li&gt;How someone else can fork (copy) your code and then suggest changes with pull requests.&lt;/li&gt;
&lt;li&gt;How you can review pull requests.&lt;/li&gt;
&lt;li&gt;How people can log issues.&lt;/li&gt;
&lt;li&gt;How you can respond to issues and close them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/qlxnwgLdc5I"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Even more
&lt;/h2&gt;

&lt;p&gt;I am regularly posting more videos on YouTube, so I would appreciate your doing all the things, like subscribing, liking, and commenting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCo63gWfWRfEciJ98mJLIU0Q" rel="noopener noreferrer"&gt;Bill Raymond's YouTube Channel&lt;/a&gt; &lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>visualstudio</category>
    </item>
    <item>
      <title>Creating a pure responsive CSS Grid Hero Image or Banner Image</title>
      <dc:creator>Bill Raymond</dc:creator>
      <pubDate>Wed, 13 May 2020 02:44:32 +0000</pubDate>
      <link>https://dev.to/billraymond/creating-a-pure-responsive-css-grid-hero-image-or-banner-image-2pej</link>
      <guid>https://dev.to/billraymond/creating-a-pure-responsive-css-grid-hero-image-or-banner-image-2pej</guid>
      <description>&lt;p&gt;&lt;em&gt;Quick note: I am an occasional developer, so if I did something wrong, please be gentle :-). Okay on with the article...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Recently I decided to build my website from scratch and did so to learn Jekyll (a blog-aware web platform) and GitHub Pages. I also wanted to learn SASS/SCSS.&lt;/p&gt;

&lt;p&gt;My last real website used &lt;code&gt;div&lt;/code&gt; and &lt;code&gt;table&lt;/code&gt; tags everywhere for layout, along with some JavaScript code to keep all the elements in check. While the sites generally looked great, changing anything was a courageous act that put fear in my heart and added pain to my typing fingers.&lt;/p&gt;

&lt;p&gt;Before building my site, I decided to take a look at what people are using now for HTML and CSS code. That is when I learned stylesheets (CSS) could be fun with the SASS programming language, which is essentially CSS that is easier to read. While I was learning about SASS, I stumbled upon a few videos that extolled the virtues of responsive website design using CSS Grids. &lt;/p&gt;

&lt;p&gt;I never heard about CSS grids until very shortly before designing my site, but realizing they are the elegant implementation of my old &lt;code&gt;div-table-javascript&lt;/code&gt; mashups of the past, I was sold.&lt;/p&gt;

&lt;p&gt;For my new site, I decided to make it 100% based on CSS Grids and require no JavaScript, which is what I accomplished (the only JavaScript comes in the form of integrations with Calendly, Mailchimp, etc., but I have no managed JavaScript code for the site).&lt;/p&gt;

&lt;p&gt;But...&lt;/p&gt;

&lt;h2&gt;
  
  
  The hero image/banner image death spiral
&lt;/h2&gt;

&lt;p&gt;You have all seen them before. You go to a website, and there is a big image on the page. That image calls attention to a text overlay. That text overlay may have other HTML elements, like buttons or form fields, to sign up for a newsletter, for example. Since the image could change, and the text might be hard to read, you will notice a slight gradient over the image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyocsne90ly3skx663fru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyocsne90ly3skx663fru.png" alt="Sample hero image" width="800" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I thought it would be super easy to create this. Place a CSS Grid down, add HTML text, and I will be good to go. Not so fast.&lt;/p&gt;

&lt;p&gt;If you search for a &lt;em&gt;banner image&lt;/em&gt; or &lt;em&gt;hero image&lt;/em&gt; on all the places (Google, YouTube, CodePen, etc.), you will see countless ways designers create them.&lt;/p&gt;

&lt;p&gt;Some code samples were super complex, requiring JavaScript. Most examples, however, relied on a method where you put your text on the page, sans image. You use CSS to add the image as a background image, add a linear gradient over the background image, and then use absolute positioning to place the HTML overlay text onto the page.&lt;/p&gt;

&lt;p&gt;Here is a straightforward example I found from W3Schools, but trust me, they get pretty complicated after that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/howto/howto_css_hero_image.asp" rel="noopener noreferrer"&gt;W3Schools article on how to create a hero image&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Those approaches are all fine and good, but I did not want it to feel like a hack, by putting a background image in CSS, using absolute positioning to place the content, or using JavaScript to ensure responsiveness. I wanted a pure CSS Grid option, which I could not find, so after far too much research, I decided to build it myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  My hero image requirements
&lt;/h2&gt;

&lt;p&gt;Here are the basic requirements I laid out for my hero image:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The image must be placed as an &lt;code&gt;img&lt;/code&gt; tag in HTML. I do not want background images or have the image defined in CSS while the rest of the images are defined in HTML.&lt;/li&gt;
&lt;li&gt;I want the &lt;em&gt;option&lt;/em&gt; of a gradient overlay for any hero/banner images.&lt;/li&gt;
&lt;li&gt;The HTML components cannot use absolute positioning. They must be responsive and CSS Grid "friendly."&lt;/li&gt;
&lt;li&gt;The banner should work on Firefox, Chrome, Edge, and IE (or at least the version of IE I tested with).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The solution
&lt;/h2&gt;

&lt;p&gt;To be honest, I was getting so frustrated with the fact no one had a nice clean and straightforward approach until I came across the &lt;a href="https://cssgrid-generator.netlify.app/" rel="noopener noreferrer"&gt;CSS Grid Generator by Sarah Edo&lt;/a&gt;. I was playing around with creating various grid sizes and noticed that if I click on a grid area more than once, I would get more grid areas. Ahhh! You can overlap grid areas!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE: I later changed the height to a set number of pixels.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4x7dkn63ydtwknuucjvg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4x7dkn63ydtwknuucjvg.png" alt="A CSS Grid definition with three overlapping grid areas" width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With my new CSS Grid design in place, it is a matter of merely placing each element on top of the other. Here is a 3D view of what the site looks like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3c6fdwf77bcu5mtepi5e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3c6fdwf77bcu5mtepi5e.png" alt="3D view of how the CSS Grid layout areas overlap each other to get the desired hero image look." width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting it all together
&lt;/h2&gt;

&lt;p&gt;The following CodePen shows the final solution. In the following sections of this article, I will walk you through the code.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/BillRaymond/embed/MWaJzvN?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;br&gt;
The CodePen uses a randomly selected image from &lt;a href="https://unsplash.com" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;. Note how most images display nicely even though they are portrait or landscape... more on that later.&lt;/p&gt;
&lt;h2&gt;
  
  
  The html
&lt;/h2&gt;

&lt;p&gt;I created an HTML file and placed the following code in the &lt;code&gt;body&lt;/code&gt; area. There is a &lt;code&gt;section&lt;/code&gt; that represents the grid itself, and then there are three &lt;code&gt;div&lt;/code&gt; tags that contain the image, gradient overlay, and the content. In CSS, these &lt;code&gt;divs&lt;/code&gt; are defined as grid areas, and they will overlap with each other.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!-- The CSS grid that makes up the entirety of the hero image/banner image area --&amp;gt;
&amp;lt;section class="top-banner-section"&amp;gt;
    &amp;lt;!-- The CSS grid area that displays the image (layer 1) --&amp;gt;
    &amp;lt;div class="banner-image-div"&amp;gt;
      &amp;lt;img class="banner-image" src="https://source.unsplash.com/random" alt="Banner Image" /&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;!-- The CSS grid area that displays the semi-transparent gradient overlay (layer 2) --&amp;gt;
    &amp;lt;div class="banner-overlay-div"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;!-- The CSS grid area that displays the content (layer 3) --&amp;gt;
    &amp;lt;div class="banner-text-div"&amp;gt;
      &amp;lt;span class="banner-text"&amp;gt;
        &amp;lt;p class="banner-h1-text"&amp;gt;Remain relevant in today's technology-driven economy&amp;lt;/p&amp;gt;
        &amp;lt;p class="banner-body-text"&amp;gt;Learn how agile can give you a competitive edge.&amp;lt;/p&amp;gt;
        &amp;lt;p class="banner-btn"&amp;gt;&amp;lt;a class="banner-btn-item" href="https://www.cambermast.com"&amp;gt;Get started &amp;amp;#8594;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
      &amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The CSS Grid
&lt;/h2&gt;

&lt;p&gt;Using the CSS Grid code I pulled from the aforementioned CSS Grid generator, I modified the CSS a bit, making the height 350px and aligned and justified the content contained within so it is centered. While I wanted a responsive site, I also put some limits on just how small the image could get.&lt;/p&gt;

&lt;p&gt;As you can see in the following code snippet, the CSS Grid 'connects' with the corresponding &lt;code&gt;section&lt;/code&gt; in the HTML code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Create three grid areas (boxes) that overlap each other, essentially creating three layers.
// Grid box 1 (layer 1): Image
// Grid box 2 (layer 2): Gradient overlay
// Grid box 3 (layer 3): Call to action text/content
.top-banner-section {
  display: grid;
  grid-template-columns: 1fr; // stretch to the full frame
  grid-template-rows: 350px; // 350 pixels tall
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  align-content: center;
  justify-content: center;

  .banner-image-div {
    grid-area: 1 / 1 / 2 / 2;
  } // image
  .banner-overlay-div {
    grid-area: 1 / 1 / 2 / 2;
  } // gradient or other overlay
  .banner-text-div {
    grid-area: 1 / 1 / 2 / 2;
  } // overlay objects like text, buttons, etc.
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, you have HTML that creates a CSS Grid with three grid areas. One thing that may not be apparent is how the &lt;code&gt;grid-area&lt;/code&gt; knows to display the image first, the gradient second, and the content third. That is defined by order of the &lt;code&gt;div&lt;/code&gt; tags in the HTML. So if I put the gradient &lt;code&gt;div&lt;/code&gt; tag first, then the image would just draw over it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 1: The banner image
&lt;/h2&gt;

&lt;p&gt;As I mentioned earlier in this article, I want the banner to be responsive. For the image, I would not let it get smaller than 350px because at some point the font would be too small to read. Otherwise, it can stretch the entire width and height of the CSS Grid it lives in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Banner image (layer 1)
.banner-image {
  display: grid;
  min-width: 350px; // Do not resize to smaller than this.
  width: 100%;
  height: 100%;
  object-fit: cover; // Using this so the image can be any size and still look halfway decent.
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Something I wanted but did not articulate in my list of requirements was the ability for my grid to easily handle any image I throw into the &lt;code&gt;img&lt;/code&gt; tag in the HTML. Whether I place a large portrait photo or a horizontal one, I wanted the image to look good. It turns out you can use the &lt;code&gt;object-fit: cover;&lt;/code&gt; css rule. The basic idea is the browser stretches the image proportionally and crops out parts that cannot display because of height and width restrictions.&lt;/p&gt;

&lt;p&gt;Since I want the image to be responsive, I made the width and height 100%. That means as the browser size changes, so will the height and width of the image. Since the image is contained within a grid, it will never be larger than its container.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: I am sure throwing up any image of any file size, width and height, is bad for optimization and design, but this generic approach of using object-fit worked great for me.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 2: The semi-transparent gradient overlay
&lt;/h2&gt;

&lt;p&gt;As the following code implies, I found a gradient generator online (there are many, and I forgot to write down the one I used). The basic idea here is to create a linear gradient fill that goes from black to white at a 60-degree angle (why 60 degrees? it looked good to me.).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Gradient overlay (layer 2)
// gradient overlay going from black to transparent.
// note: search for a gradient overlay generator to make this easier.
.banner-overlay-div {
  display: grid;
  max-width: 100%;
  background: black;
  background: linear-gradient(
    60deg,
    rgba(0, 0, 0, 0.7777485994397759) 30%,
    rgba(255, 255, 255, 0) 100%
  ); // start at black at the bottom left'ish and goes at a 60% angle. This will make the white easy to read with nearly any image.
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The black (0,0,0) is 30% transparent. The white (255, 255, 255) is 100% transparent. With those transparencies in place, you can see the underlying image while also making it easier to read the white content that displays in layer 3.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer 3: The content
&lt;/h2&gt;

&lt;p&gt;At this point, we have an image that displays on the screen. A layer above that is the semi-transparent gradient. Now, we want to display the content. As you can see, I just center the content and put a little margin on the right and left, so the text does not pin directly with the edge of the image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Banner html components (layer 3)
// banner text
.banner-text-div {
  display: grid;
  align-items: center;
  margin-left: 15px;
  margin-right: 15px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the spirit of responsiveness, I could have made the &lt;code&gt;margin-left&lt;/code&gt; and &lt;code&gt;margin-right&lt;/code&gt; a percentage, em, rem, or something other than a hard-coded number of pixels, but it worked for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Styling the content
&lt;/h2&gt;

&lt;p&gt;Since I said one of my requirements was to make this banner responsive, I might as well talk about how I format the content. Of course, this is using SASS, so apologies if you want the CSS code here.&lt;/p&gt;

&lt;p&gt;I am not going to go through each element, but you can see I used a little &lt;code&gt;calc&lt;/code&gt; trick to say, "I don't want the font to be smaller than this point size, but it is okay to make it larger.". I will be curious to see if anyone has comments about how good or bad this is or if I should have used a different approach, but again, it worked for me.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Typograhy: *** This is all the stuff you change
.banner-h1-text {
  // font can get larger, but no smaller than 10 points.
  font-size: calc(10pt + 0.15vw);
  letter-spacing: 0.05em;
  font-weight: bolder;
  text-transform: uppercase;
  color: white;
}

.banner-body-text {
  // font can get larger, but no smaller than 10 points.
  font-size: calc(10pt + 0.15vw);
  margin-top: 0.5em;
  color: white;
  text-decoration: none;

  &amp;amp;:hover {
    color: white;
  }
  &amp;amp;:visited {
    color: white;
  }
  &amp;amp;:active {
    color: white;
  }
}

.banner-btn {
  margin-top: 1em;
}

.banner-btn-item {
  font-size: calc(8pt + 0.15vw); // responsive size, but keep a minimum.
  padding-top: calc(0.5em + 0.08vw);
  padding-bottom: calc(0.5em + 0.08vw);
  padding-left: calc(0.5em + 0.08vw);
  padding-right: calc(0.5em + 0.08vw);
  color: blue;
  background-color: white;
  text-align: center;
  text-transform: uppercase;
  font-weight: bold;
  border: 1px solid white;

  &amp;amp;:link {
    text-decoration: none;
  }
  &amp;amp;:visited {
    text-decoration: none;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Wrapup
&lt;/h2&gt;

&lt;p&gt;As I mentioned at the top of this article, I am not a full-time programmer, but I do like to learn. I had no idea SASS or CSS Grids even existed until I started this project, but it sure was fun to learn.&lt;/p&gt;

&lt;p&gt;I am sure there are things I did wrong and will bite me later, but so far, my minimal browser testing shows the site works pretty well.&lt;/p&gt;

&lt;p&gt;If you would like to see the final website design, that only uses CSS Grid, check it out at &lt;a href="https://www.cambermast.com" rel="noopener noreferrer"&gt;Cambermast.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Any recommended changes to my site are welcome and truly appreciated, so feel free to send a pull request or log an issue if you like. &lt;a href="https://github.com/BillRaymond/cambermast-website" rel="noopener noreferrer"&gt;GitHub Pages code&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>design</category>
    </item>
  </channel>
</rss>
