<?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: Nevenka Lukic</title>
    <description>The latest articles on DEV Community by Nevenka Lukic (@nenalukic).</description>
    <link>https://dev.to/nenalukic</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%2F1179399%2F2190b27c-1f32-4d22-84f1-8a4416125323.jpeg</url>
      <title>DEV Community: Nevenka Lukic</title>
      <link>https://dev.to/nenalukic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nenalukic"/>
    <language>en</language>
    <item>
      <title>Building my online resume on Azure — “Cloud resume challenge”</title>
      <dc:creator>Nevenka Lukic</dc:creator>
      <pubDate>Tue, 21 Nov 2023 14:29:52 +0000</pubDate>
      <link>https://dev.to/nenalukic/building-my-online-resume-on-azure-cloud-resume-challenge-3aom</link>
      <guid>https://dev.to/nenalukic/building-my-online-resume-on-azure-cloud-resume-challenge-3aom</guid>
      <description>&lt;p&gt;After switching careers in 2022, I spent the past year working as a Data Engineer. This job provided me with lots of chances to learn new skills. Looking for a project to improve my abilities, I found the "&lt;a href="https://cloudresumechallenge.dev/"&gt;Cloud Resume Challenge Guidebook-Azure&lt;/a&gt;" by Forrest Brazeal. This challenge seemed perfect for two main reasons: it would help me brush up on my Web Development skills and also let me learn more about Azure and Python.&lt;/p&gt;

&lt;p&gt;Taking on this project was quite challenging, especially because of the complex steps involved in installing, configuring, and fixing compatibility issues. I'll talk more about these challenges in a bit.&lt;/p&gt;

&lt;p&gt;In the end, I successfully completed the project, and now I have &lt;a href="https://www.nevenkalukic.com/"&gt;My Resume&lt;/a&gt; hosted on Azure, along with its corresponding &lt;a href="https://github.com/nenalukic/azure-resume"&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Objectives
&lt;/h2&gt;

&lt;p&gt;This project consists of series of challenges:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Development of a Website&lt;/strong&gt;: Utilizing HTML, CSS, and JavaScript to showcase resume details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration of a Visitor Counter&lt;/strong&gt;: Implementing a JavaScript-based visitor counter interacting with a database via an Azure Function in Python.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python Code Testing&lt;/strong&gt;: Inclusion of unit tests for the Python code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: Storage of all code within a GitHub repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Deployment&lt;/strong&gt;: Configuration of GitHub Actions for automated deployment of code changes to the production environment upon each commit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing Process Integration:&lt;/strong&gt; Establishing a testing process for API code with automated testing integrated into GitHub Actions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Preparation
&lt;/h2&gt;

&lt;p&gt;Before starting the project, some tools needs to be installed and configured:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Visual Studio Code with Azure Extensions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Azure CLI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configuration of the local Python environment for Azure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Azure Functions Core Tools for local development of serverless functions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An active Azure Account&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This &lt;a href="https://www.youtube.com/watch?v=ieYrBWmkfno"&gt;guiding video&lt;/a&gt; from A Cloud Guru helped me a lot, despite the project being done in C#.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web Development
&lt;/h2&gt;

&lt;p&gt;If you want to make web pages quickly or you're not too familiar with HTML and CSS, &lt;a href="https://startbootstrap.com/?showAngular=false&amp;amp;showVue=false&amp;amp;showPro=false"&gt;Bootstrap&lt;/a&gt; provides free templates that are handy to start with. You can then customize them to suit your own style.&lt;/p&gt;

&lt;p&gt;Next step was making a &lt;a href="https://learn.microsoft.com/en-us/azure/storage/common/storage-account-create?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&amp;amp;tabs=azure-portal"&gt;Storage Account&lt;/a&gt; on Azure and enabling the Static Website feature. This allowed me to create a special container called $web. Putting my resume online as an &lt;a href="https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website"&gt;Azure Storage Static Website&lt;/a&gt; was a new and interesting experience, made easy with the help of the Azure Storage extension in VS Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4XUYK6SD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r32hp3iyg5o1mpmkrc4e.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4XUYK6SD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r32hp3iyg5o1mpmkrc4e.jpeg" alt="Image description" width="415" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting a domain name
&lt;/h2&gt;

&lt;p&gt;You can search for a free domain name and buy it from any of multiple domain providers such as &lt;a href="https://www.namecheap.com/"&gt;Namecheap&lt;/a&gt;, &lt;a href="https://www.godaddy.com/en-uk"&gt;Godaddy&lt;/a&gt; etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Custom Domain Configuration
&lt;/h2&gt;

&lt;p&gt;To set up a custom domain and enable &lt;a href="https://learn.microsoft.com/en-us/azure/cdn/cdn-custom-ssl?tabs=option-1-default-enable-https-with-a-cdn-managed-certificate"&gt;HTTPS&lt;/a&gt;, I used &lt;a href="https://learn.microsoft.com/en-us/azure/cdn/cdn-create-new-endpoint"&gt;Azure CDN&lt;/a&gt;. The first thing was getting the custom domain set up through the DNS provider. This step was needed, but it might take up to 48 hours for everything to get set up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z5frZr_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8g5db7txfn3u69dks88k.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z5frZr_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8g5db7txfn3u69dks88k.jpeg" alt="Image description" width="294" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After that, I connected the custom domain to the CDN endpoint. The last step was turning on HTTPS by choosing and validating a certificate.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I5skJ545--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n7bej7xcyazvllxiiqmh.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I5skJ545--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n7bej7xcyazvllxiiqmh.jpeg" alt="Image description" width="721" height="746"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the API
&lt;/h2&gt;

&lt;p&gt;To make a JavaScript-based visitor counter work, I had to create a Cosmos DB on Azure with a special container to keep track of visitor numbers. The bridge between the website and the database was an Azure Function written in Python. However, I ran into problems because of the specifications of my system, which is a Mac Pro with an M1 chip and Python 3.11. It took a lot of effort to overcome these issues, and I wrote about the whole process in a &lt;a href="https://medium.com/@nenamilkov/solving-azure-functions-compatibility-challenges-on-mac-m1-a-step-by-step-guide-a84d181c98f1"&gt;blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After that, I improved the function to meet the project's needs, counting visitors and showing the count on the web page. Making sure the Azure function could connect with Cosmos DB was done using a feature called binding, made easy with the Azure Functions extension in VS Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A95NvdI_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nzvn2scd0yhfba5u5q63.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A95NvdI_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nzvn2scd0yhfba5u5q63.jpeg" alt="Image description" width="545" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Front-end / Back-end Integration:
&lt;/h2&gt;

&lt;p&gt;The ultimate goal is to achieve seamless updates for both the back-end API and the front-end website, involving the concept of continuous integration and deployment (CI/CD). To accomplish this, &lt;a href="https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions#the-components-of-github-actions"&gt;GitHub Actions&lt;/a&gt; were utilized. GitHub provides Linux, Windows, and macOS virtual machines to execute workflows, which are defined by a YAML file in the .github/workflows directory of a repository. A repository can have multiple workflows, and in this case, two were created: frontend.main.yml and backend.main.yml. &lt;/p&gt;

&lt;p&gt;The frontend workflow is designed for the deployment of the static website in Azure storage. Microsoft offers comprehensive &lt;a href="https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-static-site-github-actions?tabs=userlevel"&gt;documentation&lt;/a&gt; and even a template for this workflow. However, a peculiar issue arose during the workflow execution. Although the build was successful, the "Upload to blob storage" section displayed multiple errors, all indicating "BlobAlreadyExists." The suggested solution was to add "--overwrite" to the command, which resolved the issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xr_ooe7K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9hakvzmhhxmja3jauyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xr_ooe7K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9hakvzmhhxmja3jauyf.png" alt="Image description" width="800" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The backend workflow, tailored for Python code and testing, also benefited from Microsoft's &lt;a href="https://learn.microsoft.com/en-us/azure/azure-functions/functions-how-to-github-actions?tabs=linux%2Cpython&amp;amp;pivots=method-template"&gt;documentation&lt;/a&gt; and template. Two adjustments were necessary to make it functional. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1&lt;/strong&gt;. An error occurred: "No module named 'azure'." This was perplexing because the module was specified in the requirement.txt file.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e6nusC4s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sq09qlz70p1rx4p1s842.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e6nusC4s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sq09qlz70p1rx4p1s842.png" alt="Image description" width="800" height="99"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After some troubleshooting and experimentation, the error was resolved by removing his underline part from my file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pqqtmbc9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uh4z31hmvlosgyt0z2nm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pqqtmbc9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uh4z31hmvlosgyt0z2nm.png" alt="Image description" width="800" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2&lt;/strong&gt;. The Microsoft template lacked a section for testing, requiring manual implementation. The crucial aspect here was ensuring the correct path, which took the following form:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--30Od2Plv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yc5pt3zxw8cz11wouru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--30Od2Plv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yc5pt3zxw8cz11wouru.png" alt="Image description" width="800" height="136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Doing the "Cloud Resume Challenge Guidebook-Azure" was a big journey for me as a Data Engineer. This project helped me refresh my web development skills and learn more about Azure and Python, which was great for my job.&lt;/p&gt;

&lt;p&gt;From figuring out how to install and set things up to making a working online resume and API, each step taught me a lot. Even though I faced some problems, like my computer not liking certain things, I didn't give up and found solutions.&lt;/p&gt;

&lt;p&gt;While I know there's still more I can improve and automate, what I have now shows how much I've learned and how far I've come. As I keep working on making updates happen smoothly through GitHub Actions, I'm sure this experience will be a good base for future projects and my career.&lt;/p&gt;

&lt;p&gt;In the end, this project isn't just a resume online. It's a reminder that facing challenges is a chance to get better, and I'm excited about what comes next.&lt;/p&gt;

</description>
      <category>python</category>
      <category>azure</category>
      <category>azurefunctions</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Solving Azure Functions Compatibility Challenges on Mac M1: A Step-by-Step Guide</title>
      <dc:creator>Nevenka Lukic</dc:creator>
      <pubDate>Sun, 29 Oct 2023 21:36:55 +0000</pubDate>
      <link>https://dev.to/nenalukic/solving-azure-functions-compatibility-challenges-on-mac-m1-a-step-by-step-guide-f2e</link>
      <guid>https://dev.to/nenalukic/solving-azure-functions-compatibility-challenges-on-mac-m1-a-step-by-step-guide-f2e</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;While working on a new project that involves Azure Functions and Python, I faced an unexpected roadblock. I was surprised to discover that Azure Functions didn't seamlessly support my Macbook Pro with an M1 CPU. Two significant constraints became apparent:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Incompatibility with Apple M1/2 CPUs
&lt;/h3&gt;

&lt;p&gt;Azure Functions, as of my initial research, did not have native support for Apple's M1/2 CPUs, causing a hiccup in my development journey.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Dependency on Older Python 3.9
&lt;/h3&gt;

&lt;p&gt;Another challenge arose when I realized that Azure Functions required an older Python version, specifically Python 3.9, instead of the more recent Python 3.11.&lt;/p&gt;

&lt;p&gt;Overcoming these roadblocks demanded substantial time and research. Today, I want to share the solution I found, hoping to assist anyone else fighting with this issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Path to Compatibility: A Three-Part Journey
&lt;/h2&gt;

&lt;p&gt;My quest to make Azure Functions work on my Mac M1 led me through a series of steps, which I've broken down into three parts for your convenience. By following these steps in order, you can ensure a smooth setup and overcome the compatibility obstacles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Part 1: Setting Up x86 Emulation on ARM64 with Rosetta
&lt;/h3&gt;

&lt;p&gt;The first phase of our journey involves setting up x86 emulation on ARM64 architecture with Rosetta. This step is crucial for ensuring compatibility between your Mac M1 and Azure Functions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Part 2: Installing Required Packages and Tools
&lt;/h3&gt;

&lt;p&gt;In the second part, we'll delve into the installation of necessary packages and tools that will enable Azure Functions to work seamlessly with Python 3.9. This step bridges the gap between the platform's requirements and the tools you need to build your project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Part 3: Configuring .zshrc and Visual Studio Code Settings
&lt;/h3&gt;

&lt;p&gt;The final leg of our journey focuses on configuring your .zshrc file and fine-tuning Visual Studio Code settings to ensure a smooth development experience. This step will help you make the most of your development environment and optimize your workflow.&lt;/p&gt;

&lt;p&gt;In conclusion, solving issues with Azure Functions on a Mac M1 might seem hard at first, but with the right guidance, you can overcome the compatibility challenges. By following these three parts in order you should be able to solve this very quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  STEPS:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Rosetta&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To run older non-native Intel x86 apps on your Apple Silicon Mac (M1), you'll need to install Rosetta. Use the command: &lt;code&gt;/usr/sbin/softwareupdate --install-rosetta --agree-to-license&lt;/code&gt;
This step is specific to Apple Silicon ARM Macs and is not required for Intel Macs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Duplicate iTerm for Rosetta&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open Finder and duplicate your iTerm Terminal application. Rename the copied application to something like "iTerm rosetta."&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enable Rosetta in Terminal&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Right-click on your iTerm Rosetta copy and select "Get Info."&lt;/li&gt;
&lt;li&gt;In the Get Info window, select "Open using Rosetta."&lt;/li&gt;
&lt;li&gt;Open this new terminal and type &lt;code&gt;arch&lt;/code&gt;. It should now show &lt;code&gt;i386&lt;/code&gt; or &lt;code&gt;x86_64&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Homebrew in an Emulated Environment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you've previously installed Homebrew on your computer, you'll need to do it again within the Rosetta terminal.&lt;/li&gt;
&lt;li&gt;The following  &lt;a href="https://medium.com/mkdir-awesome/how-to-install-x86-64-homebrew-packages-on-apple-m1-macbook-54ba295230f"&gt;blog post&lt;/a&gt; was very useful.

&lt;ul&gt;
&lt;li&gt;Create a &lt;code&gt;~/Downloads/homebrew&lt;/code&gt; directory and download the Homebrew tarball, then extract it to the &lt;code&gt;~/Downloads/Homebrew&lt;/code&gt; directory.&lt;/li&gt;
&lt;li&gt;Run these commands to move the Homebrew directory to &lt;code&gt;/usr/local/Homebrew&lt;/code&gt; and add the path to your &lt;code&gt;.zshrc&lt;/code&gt; file:
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;sudo mv &lt;/span&gt;homebrew /usr/local/Homebrew
   &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/bin:/usr/local/Homebrew/bin:&lt;span class="nv"&gt;$PATH&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;You can now use &lt;code&gt;arch -x86_64 /usr/local/Homebrew/bin/brew&lt;/code&gt; to install apps to the &lt;code&gt;/usr/local/Homebrew/Cellar&lt;/code&gt; directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create an Alias for New Homebrew&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add an alias and path to your &lt;code&gt;~/.zshrc&lt;/code&gt; file to make working with this new Homebrew environment easier. Here's an example:
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; &lt;span class="c"&gt;# need this for x86_64 brew&lt;/span&gt;
 &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/bin:/usr/local/Homebrew/bin:&lt;span class="nv"&gt;$PATH&lt;/span&gt;
 &lt;span class="c"&gt;# for Intel x86_64 brew&lt;/span&gt;
 &lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;axbrew&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'arch -x86_64 /usr/local/Homebrew/bin/brew'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Azure Functions under Alias&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can use the alias you created to install Azure Functions:
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; axbrew tap azure/functions
 axbrew &lt;span class="nb"&gt;install &lt;/span&gt;azure-functions-core-tools@4
 &lt;span class="c"&gt;# if upgrading on a machine that has 2.x or 3.x installed:&lt;/span&gt;
 axbrew &lt;span class="nb"&gt;link&lt;/span&gt; &lt;span class="nt"&gt;--overwrite&lt;/span&gt; azure-functions-core-tools@4
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Python under Alias&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To use Azure Functions, you need to install Python version 3.9 using &lt;code&gt;pyenv&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; axbrew &lt;span class="nb"&gt;install &lt;/span&gt;pyenv
 pyenv &lt;span class="nb"&gt;install &lt;/span&gt;3.9
 pyenv global 3.9
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Add the following to your &lt;code&gt;.zshrc&lt;/code&gt; to make Python 3.9 the default in this environment:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; pyenv 1&amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
   &lt;/span&gt;&lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;pyenv init -&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
 &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set Up Visual Studio Code Terminal Profile to Use Rosetta&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In Visual Studio Code, open &lt;code&gt;settings.json&lt;/code&gt;:

&lt;ul&gt;
&lt;li&gt;Click on "Code" at the top left.&lt;/li&gt;
&lt;li&gt;Then select "Settings" and "Settings" again.&lt;/li&gt;
&lt;li&gt;On the top right side, you'll find the "settings.json" icon. Click to open and add the following:
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"terminal.external.osxExec"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"iTerm rosetta.app"&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="nl"&gt;"terminal.integrated.profiles.osx"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"x86 zsh"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
         &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/usr/bin/arch"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
         &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-arch"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"x86_64"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/bin/zsh"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By following these steps, you can successfully configure your Mac M1 to work with Azure Functions and Python, and overcome the hardware compatibility issues. And now when you have the right setup, you can continue working on your Azure development projects with your favorite Macbook Pro.&lt;/p&gt;

</description>
      <category>python</category>
      <category>azurefunctions</category>
      <category>macm1</category>
      <category>azure</category>
    </item>
    <item>
      <title>Unveiling the Azure Data Lake for Bike Share Data Analytics</title>
      <dc:creator>Nevenka Lukic</dc:creator>
      <pubDate>Wed, 11 Oct 2023 10:02:14 +0000</pubDate>
      <link>https://dev.to/nenalukic/unveiling-the-azure-data-lake-for-bike-share-data-analytics-3d5o</link>
      <guid>https://dev.to/nenalukic/unveiling-the-azure-data-lake-for-bike-share-data-analytics-3d5o</guid>
      <description>&lt;p&gt;This is the second big project from the course &lt;a href="https://www.udacity.com/course/data-engineering-with-microsoft-azure-nanodegree--nd0277"&gt;Data Engineering with Azure specialization on Udacity&lt;/a&gt; that I've recently completed. If you want to read about my first project, you can find it in this &lt;a href="https://medium.com/@nenamilkov/unlocking-insights-azure-synapse-analytics-bike-share-data-warehouse-project-64aefafd5378"&gt;blog&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;Data Engineering with Azure could be your gateway to unlocking thrilling projects like building a comprehensive data lake solution. In this blog post, we will unravel the great journey of developing a data lake solution for Divvy bikeshare, a bike sharing program based in Chicago, Illinois, USA.&lt;/p&gt;

&lt;p&gt;You can find the code related to this project in my &lt;a href="https://github.com/nenalukic/udacity_bike_share_datalake_project"&gt;GitHub&lt;/a&gt; repository.&lt;/p&gt;

&lt;h1&gt;
  
  
  Project Overview
&lt;/h1&gt;

&lt;p&gt;Divvy bike share is a popular program that allows riders in Chicago to access bikes via kiosks or a mobile application. The anonymized bike trip data from Divvy is made publicly available by the City of Chicago for analysis, forming the foundation of this data engineering project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal&lt;/strong&gt; of this project was to develop a &lt;strong&gt;data lake&lt;/strong&gt; solution using &lt;strong&gt;Azure Databricks&lt;/strong&gt;, using a &lt;strong&gt;lake house&lt;/strong&gt; architecture. The objectives included designing a star schema, importing data into Azure Databricks using &lt;strong&gt;Delta Lake&lt;/strong&gt; for creating bronze and gold data stores, and transforming the data into the star schema for the gold data store.&lt;/p&gt;

&lt;p&gt;If you are interested and want to read the whole story, go to this &lt;a href="https://www.companioncode.com/post/unveiling-the-azure-data-lake-for-bike-share-data-analytics"&gt;link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>dataengineering</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Unlocking Insights: Azure Synapse Analytics Bike Share Data Warehouse Project</title>
      <dc:creator>Nevenka Lukic</dc:creator>
      <pubDate>Sat, 07 Oct 2023 14:13:06 +0000</pubDate>
      <link>https://dev.to/nenalukic/unlocking-insights-azure-synapse-analytics-bike-share-data-warehouse-project-1pkh</link>
      <guid>https://dev.to/nenalukic/unlocking-insights-azure-synapse-analytics-bike-share-data-warehouse-project-1pkh</guid>
      <description>&lt;p&gt;I recently completed &lt;a href="https://www.udacity.com/course/data-engineering-with-microsoft-azure-nanodegree--nd0277"&gt;Data Engineering with Azure specialization on Udacity&lt;/a&gt;. It took me three months to finish it. It was very challenging but also a very rewarding experience. I learned a lot and upgraded my Data engineering skills and Cloud knowledge.&lt;/p&gt;

&lt;p&gt;In this blog I would like to share my experiences with anyone who might be interested in this specialization. I sincerely recommend this course and hope that this blog will be valuable to other people.&lt;/p&gt;

&lt;p&gt;You can find the code related to this project in my &lt;a href="https://github.com/nenalukic/udacity_bike_share_dwh_project"&gt;GitHub &lt;/a&gt;repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project introduction
&lt;/h2&gt;

&lt;p&gt;This was the first big project in this course: &lt;strong&gt;Azure Synapse Analytics Bike Share Data Warehouse Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project offers a great chance to work with real-world data and build a complete data warehouse using Azure Synapse Analytics.&lt;/p&gt;

&lt;p&gt;We'll dive into the interesting process of designing a star schema and organizing Divvy's bike share data into a structured, usable format.&lt;/p&gt;

&lt;p&gt;If you are interested and want to read the whole story, go to this &lt;a href="https://www.companioncode.com/post/unlocking-insights-azure-synapse-analytics-bike-share-data-warehouse-project"&gt;link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>python</category>
      <category>postgressql</category>
    </item>
  </channel>
</rss>
