All posts by Technical Unicorn

Refresh Technical Skills

A career shift has taken me out of the center of technology, but now I am ready to ramp up and revisit this space. I’ve been writing about my careful steps into AI, but I want to go deeper and rekindle my skills in this space. Where do I begin? In addition to the tips I am sharing in this blog, there is no shame in taking a class or a camp if coding is no longer your day-to-day focus or role. You have to start somewhere, right? I also want to build some disciplines around coding languages I learned on the fly, like Python. I am sure there is something I can gain by seeing some structured guidance around this space. Let’s not ignore that some AI tools are available to help us smooth out the rough edges of troubleshooting code.

Start with a Refresher Course:
Enroll in online coding courses or tutorials offering comprehensive programming fundamentals coverage. Platforms like Coursera, Udemy, and Codecademy provide a wide range of courses, allowing you to revisit core concepts and familiarize yourself with new languages, frameworks, and tools.

Revisit Past Projects:
Dig into your archives and revisit the past coding projects you worked on. Analyze your code, identify areas for improvement, and consider refactoring or adding new features. This hands-on approach will remind you of previous techniques and provide a sense of accomplishment as you witness your growth.

Solve Coding Challenges:
Online coding challenge platforms such as LeetCode, HackerRank, and Project Euler offer a plethora of coding problems to solve. Engaging with these challenges exercises your problem-solving skills and helps you reinforce key programming concepts practically.

Contribute to Open Source Projects:
Not just during Hacktoberfest. Contributing to open-source projects is an excellent way to gain real-world coding experience while collaborating with a community of developers. Explore popular open-source repositories on platforms like GitHub and find issues or features to work on. Not only will you enhance your coding skills, but you’ll also learn from experienced developers and build a portfolio.

Attend Coding Meetups and Hackathons:
In-person meet-ups are back, but plenty of folks are also meeting online. Immerse yourself in the coding community by attending local meetups, workshops, and hackathons. These events offer networking opportunities, learning from experts, and engaging in collaborative coding projects. Participating in coding competitions within the hackathon environment can reignite your passion for coding and challenge you to think creatively.

Build Personal Projects:
Choose a personal project that aligns with your interests and goals. It could be a web application, a mobile app, or even a small utility tool. Building a project from scratch lets you apply your coding skills practically, learn new technologies, and gain hands-on experience.

Follow Coding Blogs and Newsletters:
Stay updated with the latest trends, best practices, and advancements in programming by following coding blogs and subscribing to newsletters.

Engage in Pair Programming:
Pair programming involves collaborating with another developer to solve coding problems together. This approach encourages knowledge sharing, provides fresh perspectives, and enhances your problem-solving abilities. Join coding communities or forums where you can find coding buddies or mentors for pair programming sessions.

Experiment with New Technologies:
Explore new programming languages, frameworks, libraries, and tools that have emerged since your last coding endeavor. Experimenting with different technologies expands your skill set and keeps you adaptable in a rapidly evolving tech landscape.

Join Online Coding Platforms and Courses:
Participate in online coding platforms and interactive courses that foster a supportive learning environment. Websites like CodePen, FreeCodeCamp, and edX offer coding challenges, projects, and interactive tutorials, allowing you to practice coding, receive feedback, and collaborate with fellow learners.

Returning to coding after a hiatus may feel overwhelming, but with the right approach, you can quickly revitalize your skills and reignite your passion for programming. I am excited about this journey as I see the skills I thought I had forgotten become better and stronger.

Understanding LLM in AI


Artificial intelligence (AI) has become a driving force behind innovative technologies in today’s digital age. The AI landscape can be overwhelming with its jargon and concepts. After conversing or working on my next presentation, I often ponder some of these terms. Sometimes I find it beneficial to walk through some of these terms myself.


Large Language Model (LLM):
Large Language Models are advanced AI models that can understand and generate human-like text. These models, such as OpenAI’s GPT-3, are trained on vast amounts of data from the internet and excel at various natural language processing tasks. For instance, given a prompt, an LLM can generate coherent and contextually relevant responses, translate text, summarize documents, and much more.

Example: Imagine an LLM trained on a large corpus of books. When given the prompt, “Write a short story about a detective solving a mysterious crime,” the model can generate a compelling story with characters, plot twists, and suspense.

Natural Language Processing (NLP):
Natural Language Processing is a branch of AI that focuses on enabling computers to understand, interpret, and manipulate human language. NLP algorithms and techniques empower machines to process and analyze text, speech, and other forms of natural language data. NLP plays a crucial role in developing language models like LLMs.

Example: An NLP application could be sentiment analysis, where a model analyzes social media posts to determine if they express positive, negative, or neutral sentiments. This helps companies gauge public opinion about their products or services.

Generative Data Models:
Generative Data Models are AI models that can create new data instances that resemble the training data they were exposed to. These models learn patterns from existing data and generate new samples based on that learned information. Generative data models have applications in various fields, including image generation, text generation, and music composition.

Example: One example of a generative data model is a deep learning-based image generator. Given a dataset of plant images, the model can generate realistic new plant images that look similar to the training examples but are not identical.

Grounded and Not Grounded Data:
Grounded Data refers to data directly connected to or aligned with real-world observations, experiences, or measurements. It has a clear and explicit relationship with the physical or tangible aspects of the world. Not Grounded Data, on the other hand, lacks a direct connection to real-world observations and is more abstract or conceptual.

Example: Grounded data could be a dataset of weather measurements, including temperature, humidity, and wind speed, collected from various weather stations. This data is directly tied to real-world atmospheric conditions. In contrast, not grounded data could be a dataset of movie reviews where the text contains subjective opinions and sentiments rather than objective measurements. Data could also be “dated,” and results are limited to that date.


We’ve taken a significant step toward understanding AI fundamentals by exploring the concepts of LLM, NLP, generative data models, and grounded and not grounded data. LLMs like GPT-3 demonstrate the power of language models, while NLP enables machines to comprehend and process human language. Generative data models can produce new data instances, and distinguishing between grounded and not grounded data helps us understand the relationship between data and real-world observations. As AI advances, grasping these concepts will prove valuable in navigating the ever-evolving AI landscape.

OpenAI API Key – I got mine

I recently obtained my API Key, and the process was much easier than I thought.
Artificial Intelligence (AI) has become integral to our modern world, driving innovation and revolutionizing various industries. OpenAI, a leading AI research organization, offers a powerful tool to access state-of-the-art language models through its API. In this blog post, we will explore the advantages of obtaining an OpenAI API key and how it can unlock a world of possibilities for developers, businesses, and individuals alike.

  1. Harness the Power of Advanced Language Models:
    With an OpenAI API key, you gain access to cutting-edge language models like GPT-3.5, which has been trained on a vast corpus of text from the internet. These models can understand and generate human-like text, enabling various applications. Whether you need to draft emails, generate code, compose creative content, or provide natural language interfaces to your applications, having access to these models allows you to leverage their sophisticated capabilities and augment your projects with AI-generated text.
  2. Accelerate Development and Innovation:
    Integrating OpenAI’s API into your applications or projects can accelerate development and innovation significantly. Instead of spending extensive time and resources building complex language models from scratch, you can leverage the pre-trained models available through the API. This saves time and empowers developers to focus on higher-level tasks, such as designing innovative features, improving user experiences, or exploring new possibilities for AI-powered applications.
  3. Solve Complex Natural Language Processing (NLP) Challenges:
    Natural Language Processing (NLP) is a field that deals with the interaction between humans and computers using natural language. Obtaining an OpenAI API key gives you access to powerful NLP capabilities, allowing you to solve complex language-related challenges. You can utilize the API to perform sentiment analysis, language translation, text summarization, question answering, and more. The advanced language models can help you derive meaningful insights from text data, automate tedious tasks, and enhance the overall efficiency of your NLP workflows.
  4. Enhance User Experiences:
    Incorporating OpenAI’s API into your applications can provide users with more intuitive and engaging experiences. The AI-generated text can offer personalized recommendations, generate dynamic content, or even create virtual conversational agents that interact with users in a natural and human-like manner. Whether you’re developing a chatbot, virtual assistant, or content generation platform, the API enables you to elevate user experiences by adding a layer of intelligent and context-aware communication.
  5. Continuous Improvement and Expansion:
    OpenAI is committed to continuous improvement and expanding the capabilities of its API. By obtaining an API key, you gain access to the current state-of-the-art models and position yourself to leverage future updates and advancements. OpenAI actively collects feedback from developers and users to refine and enhance the API, ensuring that you can benefit from ongoing improvements and stay at the forefront of AI innovation.


Obtaining an OpenAI API key grants you access to an array of advanced language models, enabling you to harness the power of AI in your applications and projects. From accelerating development and innovation to solving complex NLP challenges and enhancing user experiences, the API empowers developers, businesses, and individuals to unlock new levels of creativity and productivity. As OpenAI continues to evolve and refine its API, obtaining an API key positions you at the cutting edge of AI, ready to embrace future advancements and revolutionize how we interact with technology. Go grab an OpenAI API key and embark on a journey of endless possibilities.

Starting with Langchain

Once again, I am jumping into the pool’s deep end to learn a programming language. LangChain is a library that empowers developers to build applications using large language models (LLMs) and other computational resources. It makes managing interactions with language models accessible, chain together multiple components, and integrate additional resources, such as APIs and databases.

Here is a brief walkthrough of how LangChain works:

  1. Components and Chains: LangChain has several core concepts. Components are the basic building blocks of LangChain. They are responsible for processing input data and generating output data. Chains are sequences of components that are executed in order.
  2. Models: LangChain provides a generic interface to various foundation models. These models can be used for tasks such as question-answering, chatbots, and agents.
  3. Prompts: LangChain provides a framework to help you manage your prompts. Prompts are the input data that is fed into your LangChain application.
  4. Memory: LangChain provides a standard interface for memory, a collection of memory implementations, and examples of chains/agents that use memory.
  5. Evaluation: Generative models are notoriously hard to evaluate with traditional metrics. One new way of evaluating them is using language models to do the evaluation.

The Langchain can be loaded quickly using my favorite tool Azure Data Studio Manage Packages.

Python should already be installed at this point.

I’ve selected five great sites for tutorials about Langchain:

  1. GitHub – gkamradt/langchain-tutorials
  2. Getting Started — ?? LangChain 0.0.187.
  3. Getting Started with LangChain: A Beginner’s Guide to Building LLM
  4. Tutorials — ?? LangChain 0.0.187.
  5. LangChain: How to Use – Beginner’s Guide | Step-by-Step Tutorial.

LangChain is a game-changer in coding languages, offering developers an intuitive and efficient platform to build applications. With its blend of programming paradigms, LangChain empowers programmers to write clean, concise, and scalable code.

As LangChain continues to evolve, we can expect it to find its place among the leading coding languages, attracting developers with its power and ease of use. My journey begins here; how about you?

What Happens if you get hit by a Bus Technically Speaking?

Why is the question of personal well-being and mental health always directed toward those in the technology field? What if a different kind of accident occurs? Individuals working in technology often face this inquiry from management and auditors who seek to assess departmental risks. Comprehensive plans are devised, explicitly detailing measures to restore systems and services in case of their absence. All these efforts are aimed at safeguarding and fortifying the business.

However, should we not also prioritize the well-being of the bus driver in our own career journeys? Who exactly is this bus driver? The bus driver can represent anyone who jeopardizes your career, job, or role. It emerges unexpectedly and catches you off guard. The consequences can be severe and widespread. These individuals can be found within your professional network. Are you equipped with the knowledge to evade them before they cause harm? I will share the invaluable lessons I’ve gathered while traversing the landscape of Technology.

Discover a fresh perspective on wellness and mental health tailored for individuals in the technology field.

WSL can be your goto environment

You won’t always have access to the internet. YES, it’s true. Circumstances(outages) and bad WIFI often leave us grounded from the cloud. But there’s hope you to continue to stay creative and build in this space when you are offline called WSL(Windows Subsystem LINUX)

WSL provides developers and users a seamless environment for running Linux distributions directly on their Windows machines. Whether you’re a developer, a system administrator, or an enthusiast, trying WSL can unlock a world of possibilities. Let’s consider some of the benefits:

  1. Embrace the Best of Both Worlds:
    WSL enables you to harness the strengths of both Windows and Linux, creating a synergy that can significantly enhance your workflow. By bringing the Linux environment to Windows, you can enjoy the familiarity and usability of Windows while leveraging the power and versatility of Linux tools, utilities, and package managers. Whether you’re a fan of the command-line interface or need to run specific Linux applications, WSL lets you seamlessly switch between the two worlds, all within the comfort of your Windows environment.
  2. Streamlined Development Environment:
    For developers, WSL offers a streamlined and cohesive development experience. You can now build, test, and deploy your applications in a Linux environment without a separate machine or virtualization. WSL supports a wide range of Linux distributions, including Ubuntu, Debian, Fedora, and more, providing access to a vast ecosystem of development tools, programming languages, and frameworks. Whether you’re working on web development, data analysis, or machine learning, WSL empowers you to optimize your workflow by leveraging the power of Linux within Windows.
  3. Enhanced Compatibility and Interoperability:
    One of the most significant advantages of WSL is its ability to enhance compatibility and interoperability between Windows and Linux environments. With WSL, you can seamlessly access and modify files on Windows and Linux, eliminating the need for complex workarounds or file conversion tools. WSL also allows you to execute Windows executables directly from the Linux command line and vice versa, opening up new possibilities for cross-platform development and collaboration.
  4. Easy Setup and Configuration:
    Setting up WSL is a breeze, making it accessible to beginners and advanced users. With a few simple steps, you can enable WSL on your Windows machine and choose your preferred Linux distribution from the Microsoft Store. The installation process takes care of all the necessary components, including the Linux kernel, and within minutes, you’ll have a fully functional Linux environment at your fingertips. Additionally, WSL provides a command-line interface for managing your Linux installations and updating them effortlessly.
  5. Community and Support:
    WSL has gained widespread popularity and a vibrant community of users and developers. This means you’ll find abundant resources, tutorials, and support for issues or questions. Whether you’re looking for specific Linux software recommendations or troubleshooting advice, the WSL community is always ready to assist you. Moreover, Microsoft maintains and updates WSL, ensuring a reliable and stable platform for your Linux-based endeavors.


Windows Subsystem for Linux (WSL) is a game-changer, bringing the power and flexibility of Linux to the Windows ecosystem. With its easy setup, broad compatibility, and strong community support, WSL is a must-try for developers, system administrators, and enthusiasts looking to harness the best of both the Windows and Linux worlds.

https://learn.microsoft.com/en-us/windows/wsl/install

AWS Lightsail My Goto Cloud Server

I only needed to see this demo once, and I was hooked. The setup was seamless, quick, and accessible. The price point was just what I needed so that I wouldn’t get shocked with a BIG bill. The marketplace of options gives you just enough selections that you aren’t overwhelmed by options. All signs point to yes, and I have used it ever since. I always find it beneficial to highlight my reasons before I signup for a service, so these are the things that helped me. I am not a hardcore programmer, but I want to spend more time on the development than the setup.

One of the standout advantages of AWS Lightsail is its simplicity in both setup and management. With just a few clicks, you can launch a virtual server, select your desired configuration (including the operating system, CPU, RAM, and storage), and have your application up and running quickly. The user-friendly interface and intuitive management console make it easy to monitor your instances, manage networking settings, and access essential resources, even for those new to cloud infrastructure. AWS Lightsail abstracts much of the complexity, allowing you to focus on your application rather than the underlying infrastructure.

Other benefits to consider:

  1. Familiarity: If you’re already using AWS, then LightSail will be familiar.
  2. Simplified UI: The user interface is majorly simplified, making it easy to use for beginners. YES
  3. Speed: You can deploy a VPS within seconds, choosing any predefined plans Amazon offers.
  4. Scalability: LightSail is scalable and can grow with your business.
  5. Affordability: LightSail is affordable and offers a range of pricing plans to suit your needs.
  6. Ease of use: LightSail is easy to use and requires no prior knowledge of AWS.
  7. Security: LightSail is secure and comes with built-in security features.
  8. Flexibility: LightSail is flexible and can be used for various applications.
  9. Reliability: LightSail is reliable and comes with a 99.9% uptime guarantee.
  10. Support: LightSail comes with AWS support, so you can get help when needed.

AWS Lightsail empowers web developers, businesses, and individuals to deploy and manage their applications with ease, scalability, and cost-effectiveness. With its simplified setup and management, seamless scalability, reliable performance, and integration with AWS services, Lightsail offers a comprehensive solution for your projects. The lowest-priced server starts at $3.50; you can’t beat that.

AWS Lightsail

Azure Data Studio – Works For Me


As a data enthusiast and professional, I am always looking for powerful tools that can simplify my data exploration and analysis tasks. I wanted to share my experience working with Azure Data Studio, a comprehensive data management and analytics tool. It has become an invaluable tool in my data and content writing journey.

  1. Intuitive User Interface:
    Azure Data Studio boasts a sleek and intuitive user interface, making navigating and performing complex data operations easy. When I launched the application, I was impressed by its clean design and well-organized layout. The intuitive interface allows me to manage connections, explore databases, write queries, and visualize data effortlessly. The well-thought-out user experience of Azure Data Studio significantly enhances my productivity and makes working with data a breeze.
  2. Multi-Platform Support:
    One of the standout features of Azure Data Studio is its multi-platform support. Azure Data Studio provides a consistent and seamless experience across different operating systems, whether you are a Windows, macOS, or Linux user. Cross-platform compatibility empowers users to work with their preferred operating system, regardless of their data management and analysis needs.
  3. Robust Querying Capabilities:
    Azure Data Studio provides robust querying capabilities, allowing me to extract valuable insights from my data. With built-in support for Transact-SQL (T-SQL), I can write complex queries, execute them against databases, and view the results in a structured manner. The IntelliSense feature provides intelligent code completion, making query writing more efficient and error-free. Additionally, the query editor supports advanced functionalities like code snippets, code formatting, and query execution plan visualization, enabling me to optimize my queries and enhance performance.
  4. Seamless Integration with Azure Services:
    Azure Data Studio seamlessly integrates with various Azure services, creating a unified data management and analytics experience. Whether I need to work with Azure SQL Database, Azure Data Lake Storage, or Azure Cosmos DB, Azure Data Studio provides built-in extensions and features that facilitate seamless integration with these services. This integration enables me to leverage the power of Azure’s cloud services directly from within the tool, simplifying data exploration, analysis, and collaboration.
  5. Coding and Development The seamless integration of Python with Azure Data Studio allows me to leverage the power of Python libraries and frameworks for data analysis, machine learning, and visualization. The intuitive interface of Azure Data Studio, combined with the flexibility of Python, enables me to write and execute Python scripts effortlessly, making complex data tasks feel accessible and manageable. Whether performing data transformations, building predictive models, or creating interactive visualizations, the combination of Azure Data Studio and Python empowers me to explore and derive insights from my data collaboratively and efficiently.
  6. Extensibility and Community Support:
    Azure Data Studio is highly extensible, allowing users to enhance its functionality through extensions and customizations. The vibrant community surrounding Azure Data Studio has developed a wide range of extensions, providing additional features, integrations, and productivity enhancements. From query optimization tools to data visualization extensions, the community-driven ecosystem of Azure Data Studio expands its capabilities and caters to diverse data needs. The availability of community support and the collaborative nature of the tool make Azure Data Studio a vibrant and constantly evolving platform.

Azure Data Studio has transformed my data exploration and analysis journey with its intuitive interface, multi-platform support, robust querying capabilities, seamless integration with Azure services, and vibrant community. Whether you are a data professional, developer, or enthusiast, Azure Data Studio offers a comprehensive and user-friendly environment to work with data efficiently and derive meaningful insights. My experience with Azure Data Studio has been exceptional, and I highly recommend it to anyone seeking a powerful tool for their data management and development endeavors.

For me, it’s all about the Data!

https://learn.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio

Python and Azure Data Studio

I am unsure what drew me into trying Python Libary files like a shopper in a warehouse store, but I wanted to try them all. Especially the ones that produce graphic displays. There is a little extra effort to do this in Ubuntu, but Azure Data Studio manages it seamlessly. Visualizations are the best way to tell a data story; I try to use them whenever possible. I like to keep it simple, so here is a sample code in Python using Azure Data Studio.

Prerequisites

Python

Azure Data Studios

Add matplotlib package to Azure Data Studio

Insert the following code into a Jupyter Notebook or directly in Azure Data Studio

import matplotlib.pyplot as plt

x = [1,1,2,3,3,5,5,7,8,9,10,

     10,11,11,13,13,15,16,17,18,18,

     18,19,20,21,21,23,24,24,25,25,

     25,25,26,26,26,27,27,27,27,27,

          ]

plt.hist(x, bins=10)

plt.show()

These libraries are pre-written modules that provide ready-to-use functions, tools, and utilities, significantly enhancing the capabilities of Python. Here are some of the benefits of using Python libraries and how they can transform your coding experience.

  1. Accelerate Development: Python libraries eliminate the need to reinvent the wheel by providing pre-built solutions to everyday programming tasks. Whether you need to handle data manipulation, implement machine learning algorithms, or create visualizations, Python libraries such as NumPy, Pandas, and Matplotlib offer efficient and optimized functions that speed up development. Leveraging these libraries saves valuable time and enables you to focus on the core aspects of your project.
  2. Diverse Functionality: Python libraries cater to various domains and applications. From web development to data analysis and natural language processing to computer vision, a library is available for almost every use case. For example, TensorFlow and PyTorch provide powerful tools for machine learning and deep learning. The diverse functionality of Python libraries opens up endless possibilities for your coding projects.
  3. Code Reusability: Python libraries promote code reusability, a cornerstone of efficient programming. By utilizing libraries, you can leverage existing code and build upon the work of others. This saves time and encourages best practices and standardization across projects. Reusable code from libraries reduces errors, enhances reliability, and facilitates code maintenance. Python libraries act as a vast repository of solutions that can be easily integrated into your own projects, increasing productivity and reducing development effort.
  4. Foster Innovation: Python libraries provide a fertile ground for innovation and experimentation. These libraries often incorporate cutting-edge techniques and algorithms, empowering developers to explore new possibilities and push the boundaries of what can be achieved. You can unlock new insights and develop groundbreaking applications by harnessing the power of libraries like NLTK for natural language processing. The libraries encourage innovation and fuel the growth of the Python ecosystem.


Python libraries are invaluable for developers, offering many benefits that enhance productivity, promote code reuse, and drive innovation. The extensive range of libraries available enables developers to tackle diverse challenges efficiently and effectively. Whether a beginner or an experienced programmer, leveraging Python libraries empowers you to accomplish more with less effort, accelerating development and fostering creativity. Embrace the power of Python libraries and unlock the full potential of your coding journey.