<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-19327040</id><updated>2026-09-19T05:08:00.000-07:00</updated><category term="asp.net"/><category term="VB.net"/><category term="MySQL"/><category term="Crystal Report"/><category term="PHP"/><category term="Linux Basics"/><category term="Login to Polycom"/><category term="Windows 8"/><category term="ajax"/><category term="jquery"/><category term="Convert Excel to HTML"/><category term="Crystal Reports"/><category term="Gridview"/><category term="Konami Code"/><category term="Listview"/><category term="MCU"/><category term="ODBC."/><category term="RMX 4000 MCU"/><category term="VB.NET Facebook C# SDK"/><category term="VB.Net with Facebook C# SDK"/><category term="VS2010"/><category term="Web Services"/><category term="XML"/><category term="XML API"/><category term="android"/><category term="insert"/><category term="javascript"/><category term="vb"/><category term="vb.net SAP.net connector"/><category term="vwd 2008"/><category term="vwd 2010"/><category term="#OpenAI #ChatGPT #AIforEnterprise #AIBusinessSolutions"/><category term="(Linux Apache"/><category term=".Net Search Engine"/><category term=".net"/><category term="2008"/><category term="2800"/><category term="5642 Mtrs"/><category term="7 Summit"/><category term="ADO"/><category term="AI Business"/><category term="AI Keywords"/><category term="AI SEO"/><category term="APACHE"/><category term="API"/><category term="ASP.net JQuery Ajax call to set session"/><category term="Access List"/><category term="Access Token example"/><category term="Asia side"/><category term="Asp.net 4.0 ajax"/><category term="Automate birthday wish"/><category term="Backup Windows Server"/><category term="Biometric Machine"/><category term="Blogger with close button"/><category term="Budhi"/><category term="Burang"/><category term="CISCO"/><category term="Cache Cygwin"/><category term="Cheap VC"/><category term="Close Modalpopup"/><category term="Combining rows"/><category term="Complex Password"/><category term="Create Online Meeting Room Booking System"/><category term="Creating Master Network"/><category term="Creating an ext2"/><category term="Crosstab"/><category term="Darchen"/><category term="Date time conflict resolution"/><category term="DateTime in asp.net and my sql server"/><category term="Department of Telecommunications"/><category term="Deraphuk"/><category term="Directory"/><category term="Disable"/><category term="Disabling browser back button"/><category term="Dolma La"/><category term="Dolma Paas"/><category term="Download"/><category term="DropDown List"/><category term="Dynamic User Form Creation"/><category term="EBC Trek"/><category term="Easily"/><category term="Ekasmin Consulting"/><category term="Enable Remote Desktop Connection"/><category term="Excel"/><category term="Excel File"/><category term="Excel Macro"/><category term="Far Cry 5"/><category term="Far Cry Primal Review"/><category term="Form"/><category term="FullPageOS"/><category term="GET_RFC_TABLE"/><category term="Generator Class"/><category term="Get back classic start menu"/><category term="Give access to students"/><category term="Gmail"/><category term="Gmail using Google Sheet and GSrcipt"/><category term="Google Analytics"/><category term="Google Calendar"/><category term="Google Meet"/><category term="Google Sheet and GSrcipt"/><category term="Google like Calendar"/><category term="Gunji"/><category term="H.323"/><category term="HTML String to PDF"/><category term="HTML5"/><category term="Home Loan Interest"/><category term="Home VC"/><category term="Home video conferencing"/><category term="How To Open And Access Blocked Sites"/><category term="How to File ITR2"/><category term="How to Find Bapi"/><category term="How to add a new website"/><category term="IE z-index bug"/><category term="IE7 hover problem fix"/><category term="IIS8.5"/><category term="ISA"/><category term="ISA internet proxy"/><category term="ISO 27002"/><category term="Iframe"/><category term="Image Embed"/><category term="India vs Pakistan 2012-13"/><category term="Insert Item Template"/><category term="Insert and Update dynamic form"/><category term="Install Squid"/><category term="Install Ubuntu"/><category term="Installing FTP"/><category term="Installing Webmin"/><category term="Kailash"/><category term="Kailash Mansarovar Yatra"/><category term="Kala Pathar"/><category term="L2"/><category term="LAMP"/><category term="LAST_INSERT_ID()"/><category term="LinqDataSource"/><category term="Linux"/><category term="Lipulekh Paas"/><category term="Load report failed"/><category term="Lotus Domino Administrator Server Account"/><category term="Low cost VC"/><category term="Lukla"/><category term="M365 setup"/><category term="MIME Type"/><category term="MIT App Inventor"/><category term="MIT App Inventor with SQLite Database"/><category term="MPLS Connectivity CPE ADM STM1 and OFC"/><category term="MPP file"/><category term="MS Access database"/><category term="Macro"/><category term="Mansarovar"/><category term="Mansarovar Trek"/><category term="Menu Control"/><category term="Merge Data Table"/><category term="Modal Popup"/><category term="Mt Elbrus"/><category term="Mt Everest Base Camp Trek"/><category term="Mt Kailash"/><category term="MySQL."/><category term="Mysql Database"/><category term="Mysql Perl)"/><category term="NIST"/><category term="NPS Contribution"/><category term="Namche"/><category term="New PAssword Policy"/><category term="Open Source"/><category term="P3P Issue"/><category term="Package File Is Invalid"/><category term="Pakistan to tour India"/><category term="Pakistan&#39;s India Tour"/><category term="Partition  and Mounting File system"/><category term="Passing url parameter"/><category term="Pi Experiment"/><category term="Polycom License"/><category term="Polycom RMX 4000"/><category term="Polycom Realpresence"/><category term="Polycom Resource Manager"/><category term="Possession"/><category term="Post XML data to uri"/><category term="Post on Page"/><category term="Post on User Wall"/><category term="Powershell"/><category term="Pre Construction Interest"/><category term="Primary Key"/><category term="Process"/><category term="Product Review"/><category term="Program runs fine"/><category term="Proxy Internet"/><category term="Pulan"/><category term="Pull data"/><category term="Query"/><category term="Qugu"/><category term="RADControls"/><category term="RMX 4000"/><category term="Rakshasa Taal"/><category term="Raspberry Pi"/><category term="Reaching on top of Europe"/><category term="Read microsoft project"/><category term="Real Random"/><category term="Reason not to buy Ubisoft Products"/><category term="Recieve email with attachment"/><category term="Redundancy"/><category term="Refresh Parent Page"/><category term="Remote Access"/><category term="Repeat row"/><category term="Routing and Remote access"/><category term="SAP"/><category term="SAP.net connector"/><category term="SEO"/><category term="SEO dead"/><category term="SIP"/><category term="SQLite Database"/><category term="SQLite database encryption"/><category term="Salary form16"/><category term="Schedule"/><category term="Scope_Identity ()  equivalent for mysql"/><category term="Searcharoo"/><category term="Select.Html.dep"/><category term="Server on Hyper-V"/><category term="Session Lost  Iframe"/><category term="Setup Low cost Video Conferencing"/><category term="Seven Summit"/><category term="Short Term Capital Gains"/><category term="Show Google Calander events"/><category term="Simple Example"/><category term="Solo Climb from India"/><category term="Start Menu"/><category term="Step by step guide"/><category term="Step by step guide to get fields from a table BAPI Function"/><category term="SyncToy"/><category term="Taklakot"/><category term="Task scheduler"/><category term="Telerik"/><category term="This website/URL has been blocked"/><category term="Trans Himalaya"/><category term="Trans Himalaya Trek"/><category term="Transpose"/><category term="True"/><category term="User and Group Management"/><category term="Using Google Forms"/><category term="VB Facebook SDK"/><category term="VC for Kids"/><category term="VC for Seniors"/><category term="VS2010 vb.net"/><category term="Video Conferencing"/><category term="Visual Studio 2015"/><category term="WEB SERVER"/><category term="Window"/><category term="Windows Server"/><category term="XML Data source"/><category term="Xamarian Webview app with small apk"/><category term="Xbox movie"/><category term="YUM Server"/><category term="add/delete/show events"/><category term="adding web reference"/><category term="and openpop.net"/><category term="and post on pages"/><category term="appcache"/><category term="append text to file"/><category term="ascx"/><category term="asp.net 2010"/><category term="asp.net4.0"/><category term="attachment"/><category term="authentication"/><category term="auto popup"/><category term="autocomplete"/><category term="best practice"/><category term="birthday wish email"/><category term="c"/><category term="c:\fakepath"/><category term="caching"/><category term="cell"/><category term="certain IP"/><category term="change LAN IP"/><category term="chrome"/><category term="cmake"/><category term="code behind"/><category term="code blocks"/><category term="coding example"/><category term="coding for kids"/><category term="columns to rows"/><category term="common html code"/><category term="consuming web service"/><category term="control contains code blocks (i.e. % … %)"/><category term="css"/><category term="dancing images"/><category term="database"/><category term="datakeynames"/><category term="datasource"/><category term="datatable"/><category term="date format."/><category term="decryption"/><category term="domino administrator"/><category term="dynamicaly"/><category term="email"/><category term="encryption"/><category term="endpoint"/><category term="excel upload"/><category term="external page"/><category term="face"/><category term="fb C# SDK"/><category term="file name"/><category term="file upload"/><category term="finger recognition"/><category term="for ASP.NET Ajax"/><category term="for Particular Transaction in SAP"/><category term="form data"/><category term="form from Database"/><category term="ftp upload"/><category term="gatekeeper"/><category term="get detail of single meeting"/><category term="get meeting summary"/><category term="get xml response"/><category term="git commands"/><category term="git pull"/><category term="git push"/><category term="gits quickstart"/><category term="gits usefull commands"/><category term="gmail facebook ajax chat instant messenger asp.net"/><category term="html 5"/><category term="iis"/><category term="iis6.0"/><category term="indo pak series"/><category term="interface GigabitEthernet"/><category term="internal error"/><category term="internet access"/><category term="isa management"/><category term="jaipur"/><category term="jaiselmer"/><category term="lambda expression"/><category term="linq"/><category term="llcm compiler"/><category term="llvm"/><category term="llvm easy steps"/><category term="llvm simplified"/><category term="logout"/><category term="manali"/><category term="match venue"/><category term="max size"/><category term="modalpopup extender"/><category term="mpxj"/><category term="multiple image excel insert"/><category term="multiple sql staements"/><category term="net.sf.mpxj"/><category term="ninja"/><category term="not running from task scheduler"/><category term="nsf"/><category term="online tickets"/><category term="or ext3"/><category term="or ext4 filesystem"/><category term="pass parameter"/><category term="password"/><category term="permanently"/><category term="photo page"/><category term="php basics"/><category term="ping asp.net application vb code vwd2010"/><category term="pivot logic"/><category term="play subtitle"/><category term="protection"/><category term="pure css menu"/><category term="pursuant to Court orders or on the Directions issued by the"/><category term="python"/><category term="python for kids"/><category term="quarantine"/><category term="recertify"/><category term="records"/><category term="regular expression"/><category term="remote"/><category term="remove special character"/><category term="rohtang pass"/><category term="router"/><category term="router bgp"/><category term="save datatable as CSV"/><category term="schedule backup"/><category term="select.pdf"/><category term="send email"/><category term="server 2003"/><category term="shimla uttarkashi sortcut"/><category term="show in Grid"/><category term="simple login"/><category term="sort 2d array"/><category term="sql express"/><category term="sqldatasource"/><category term="start business"/><category term="startup consulting"/><category term="submit"/><category term="tab control"/><category term="tab panel"/><category term="through SMTP in ASP.net"/><category term="to post on users profile"/><category term="to post pics on fan pages"/><category term="to send parameter and get result from BAPI Function"/><category term="transfer lotus mail files"/><category term="ucertify prepkit"/><category term="unblock sites india"/><category term="understand git"/><category term="update from another table"/><category term="update parameter List View"/><category term="user control"/><category term="using VB.Net"/><category term="vCIO"/><category term="vwd 2010 asp.net"/><category term="web proxy"/><category term="webform control"/><category term="website"/><category term="windows 10 update"/><category term="without software"/><category term="word pdf search"/><title type='text'>Vinod Kotiya</title><subtitle type='html'>Hi,&#xa;I am Vinod Kotiya. Amateur Programmer, International Mountaineer, Marathon Runner, Karma Yogi.&#xa;&#xa;This blog is all about few how to&#39;s... music...games and softwares made by me.. nd.. the places i visited etc.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>230</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19327040.post-1178043457225652576</id><published>2024-09-20T12:48:00.000-07:00</published><updated>2024-09-20T12:48:28.138-07:00</updated><title type='text'>Kids USA Visa without interview if parents have US Visa</title><content type='html'>&lt;p&gt;&amp;nbsp;Hi&lt;/p&gt;&lt;p&gt;This info is missing all over the internet.&lt;/p&gt;&lt;p&gt;Simply apply the VISA through DS-160 form and go to appointment portal https://ais.usvisa-info.com/.&lt;/p&gt;&lt;p&gt;Create profile for kid and enter few information properly here&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhX1Ok5bdonu05KJX6XC0i5k_d5UyqiGFp3iE4HRSyZXOqBARyK_mkdyaMTTDEvp2E9TCQT2GbbHBWFBCOo2nY_OZ58hi7TkgqfXr__jlt5jK2LzXeXw9Am1dZaLrPokyxAj62KozfQ_DbqnB3DozENQTNDYPiKZc07RkY8EuCSp-fh1GQP3Dzk9A&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;206&quot; data-original-width=&quot;392&quot; height=&quot;168&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhX1Ok5bdonu05KJX6XC0i5k_d5UyqiGFp3iE4HRSyZXOqBARyK_mkdyaMTTDEvp2E9TCQT2GbbHBWFBCOo2nY_OZ58hi7TkgqfXr__jlt5jK2LzXeXw9Am1dZaLrPokyxAj62KozfQ_DbqnB3DozENQTNDYPiKZc07RkY8EuCSp-fh1GQP3Dzk9A&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;something like this&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi0lCd1ait8oz-kbLcxbSN4oU0TmhfmOPH1WLQj_AHt4duNeYEzThOr0xyxJLyl7i3HywncZJCHYHbqnt0hhRHfB47bAYPcxwze01U9IyxyQ9vOK48crxEM_ra08F5CRVYkpxSThW9FSrFYdB1Nx-jBeIYFZ2Tpg-WO_TI0i_J1HOvnZghZDpwU4g&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;380&quot; data-original-width=&quot;855&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi0lCd1ait8oz-kbLcxbSN4oU0TmhfmOPH1WLQj_AHt4duNeYEzThOr0xyxJLyl7i3HywncZJCHYHbqnt0hhRHfB47bAYPcxwze01U9IyxyQ9vOK48crxEM_ra08F5CRVYkpxSThW9FSrFYdB1Nx-jBeIYFZ2Tpg-WO_TI0i_J1HOvnZghZDpwU4g=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So it will not give you schedule interview option and show you send document option.&lt;/p&gt;&lt;p&gt;Counselors will mail you how to submit the documents.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, Geneva, sans-serif; font-size: 12px; margin: 0px;&quot;&gt;o determine if you qualify for a consular interview waiver, you must first cancel your existing consular appointment. If you do not qualify for an interview waiver after completing the steps below, you will need to schedule a new consular appointment based on current appointment availability.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, Geneva, sans-serif; font-size: 12px; margin: 0px;&quot;&gt;(Please be aware that if you have never had a visa previously, you must attend an in-person interview and should not take the steps below. Instead, you should prepare to attend the interview appointment you have already scheduled.)&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, Geneva, sans-serif; font-size: 12px; margin: 0px;&quot;&gt;If you choose to proceed, follow these steps to determine eligibility for a consular interview waiver:&lt;/p&gt;&lt;ol style=&quot;background-color: white; color: #222222; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, Geneva, sans-serif; font-size: 12px;&quot;&gt;&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Log in to your account and click on the &quot;Continue&quot; button.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Select the &quot;Cancel Appointment&quot; option and confirm the cancellation request. You must cancel your appointment to reset your account and have the interview waiver scheduling condition statements available to you.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;At the Applicant Summary page, click on the gear icon and choose the &quot;Edit&quot; option, review your profile, and update as needed on the Edit Applicant page, click the &quot;Save&quot; button. Even if you did not make any changes to your profile, click on the &quot;Save&quot; button. This will allow you access to the interview waiver scheduling condition statements.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;margin-left: 15px;&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Finally, select the condition statements that apply to you and click the &quot;Confirm&quot; button. The system will determine your eligibility for an interview waiver based on your responses.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, Geneva, sans-serif; font-size: 12px; margin: 0px;&quot;&gt;a. If you qualify for an interview waiver, the system will display information on how to submit your visa renewal application to the Consular Section.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, Geneva, sans-serif; font-size: 12px; margin: 0px;&quot;&gt;b. If you do not qualify for an interview waiver, you will be instructed to schedule a new appointment for a consular interview.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/1178043457225652576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/1178043457225652576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/1178043457225652576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/1178043457225652576'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2024/09/kids-usa-visa-without-interview-if.html' title='Kids USA Visa without interview if parents have US Visa'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhX1Ok5bdonu05KJX6XC0i5k_d5UyqiGFp3iE4HRSyZXOqBARyK_mkdyaMTTDEvp2E9TCQT2GbbHBWFBCOo2nY_OZ58hi7TkgqfXr__jlt5jK2LzXeXw9Am1dZaLrPokyxAj62KozfQ_DbqnB3DozENQTNDYPiKZc07RkY8EuCSp-fh1GQP3Dzk9A=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-7610834477380580689</id><published>2024-09-05T12:51:00.000-07:00</published><updated>2024-09-05T12:51:55.296-07:00</updated><title type='text'>How to Connect Power BI to JIRA Using REST API Without Third-Party Apps</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;background-color: #f4f2ee; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; white-space-collapse: break-spaces;&quot;&gt;After years of delivering successful system integration projects, I&#39;m excited to share this write-up that continues to drive value for many users! Two years ago, I proposed a solution for &lt;/span&gt;&lt;span style=&quot;border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-variant-ligatures: none; font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Microsoft Power BI and Atlassian JIRA integration&lt;/span&gt;&lt;span style=&quot;background-color: #f4f2ee; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; white-space-collapse: break-spaces;&quot;&gt; using the REST API—without relying on any third-party apps. I found no such simple solution available on the internet, so I got a hint from a simple curl command and developed an integration solution from it. This solution is still actively helping professionals to fetch JIRA data into PowerBI. The original post was shared in Atlassian Community here &lt;/span&gt;&lt;a class=&quot;article-editor-content__link article-editor-content__link&quot; href=&quot;https://community.atlassian.com/t5/Marketplace-Apps-Integrations/How-to-connect-Power-BI-to-JIRA-using-Rest-API-and-without-third/qaq-p/2255960?utm_source=atlcomm&amp;amp;utm_medium=email&amp;amp;utm_campaign=mentions_reply&amp;amp;utm_content=topic#U2804427&quot; rel=&quot;noopener noreferrer&quot; style=&quot;border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; cursor: pointer; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-variant-ligatures: none; font-weight: var(--font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: break-word; padding: var(--artdeco-reset-base-padding-zero); text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;https://community.atlassian.com/t5/Marketplace-Apps-Integrations/How-to-connect-Power-BI-to-JIRA-using-Rest-API-and-without-third/qaq-p/2255960?utm_source=atlcomm&amp;amp;utm_medium=email&amp;amp;utm_campaign=mentions_reply&amp;amp;utm_content=topic#U2804427&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Integrating JIRA with Power BI can help organizations access real-time project data, create insightful reports, and manage workflows more efficiently. While many third-party apps offer this functionality, you can bypass them using JIRA’s REST API to establish a direct connection with Power BI. This solution is simple and scalable.&lt;/p&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;I found no such simple solution available on internet so I got a hint from simple curl command and tried to have integration solution out of it:&lt;/p&gt;&lt;pre class=&quot;article-editor-content__code-block&quot; style=&quot;border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text-on-dark); font-family: var(--artdeco-typography-mono); font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 3.2rem 2.4rem; overflow-x: auto; padding: 3.2rem; text-wrap: wrap; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;code style=&quot;border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;curl -D- \
-X GET \
-H &quot;Authorization: Basic YOUR_BASE64_TOKEN&quot; \
-H &quot;Content-Type: application/json&quot; \
&quot;https://DOMAIN.atlassian.net/rest/api/2/issue/ISSUE&quot;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&quot;article-editor-content__heading&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: var(--font-size-large); font-variant-ligatures: none; font-weight: var(--font-weight-bold); line-height: var(--line-height-default); margin: 1.6rem 2.4rem; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Step 1: Generate Base64-Encoded Authentication Token&lt;/h3&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;First, you need a Base64-encoded token that JIRA will use for authentication.&lt;/p&gt;&lt;ol class=&quot;article-editor-content__ordered-list&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Open a terminal (or use an online tool like &lt;a class=&quot;article-editor-content__link article-editor-content__link&quot; href=&quot;https://www.base64encode.org/&quot; rel=&quot;noopener noreferrer&quot; style=&quot;background-color: var(--artdeco-reset-link-background-color-transparent); border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; cursor: pointer; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: break-word; padding: var(--artdeco-reset-base-padding-zero); text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Base64 Encode&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Encode the string: &lt;code style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;EMAIL:API_TOKEN&lt;/code&gt;Example: &lt;code style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;myemail@company.com:your_api_token_here&lt;/code&gt;You can generate this with a curl command:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre class=&quot;article-editor-content__code-block&quot; style=&quot;border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text-on-dark); font-family: var(--artdeco-typography-mono); font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 3.2rem 2.4rem; overflow-x: auto; padding: 3.2rem; text-wrap: wrap; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;code style=&quot;border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;echo -n &quot;myemail@company.com:your_api_token_here&quot; | base64&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&quot;article-editor-content__heading&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: var(--font-size-large); font-variant-ligatures: none; font-weight: var(--font-weight-bold); line-height: var(--line-height-default); margin: 1.6rem 2.4rem; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Step 2: Connect Power BI to JIRA&lt;/h3&gt;&lt;ol class=&quot;article-editor-content__ordered-list&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Open Power BI.&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Go to &lt;span style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Get Data&lt;/span&gt; &amp;gt; &lt;span style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Web&lt;/span&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Enter the JIRA REST API URL (as used in step 2).&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;In the headers:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul class=&quot;article-editor-content__bullet-list&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Add &lt;code style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Authorization: Basic [Space] YOUR_BASE64_TOKEN&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Add &lt;code style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Content-Type: application/json&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;![Screenshot of Power BI connection screen with headers]&lt;/p&gt;&lt;p aria-label=&quot;Write here. You can also include @mentions.&quot; class=&quot;article-editor-content__paragraph is-empty&quot; data-placeholder=&quot;Write here. You can also include @mentions.&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;br class=&quot;ProseMirror-trailingBreak&quot; style=&quot;box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans);&quot; /&gt;&lt;/p&gt;&lt;figure class=&quot;article-editor-content__figure-image&quot; data-id=&quot;4ea9059e-6d99-4271-bea0-61fde188a2fd&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); display: flex; flex-direction: column; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; margin: var(--spacing-two-x) 0; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;div class=&quot;article-editor-content__inline-image-container&quot; contenteditable=&quot;false&quot; style=&quot;align-items: center; background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); justify-content: center; margin: 0px auto; overflow: hidden; padding: var(--artdeco-reset-base-padding-zero); position: relative; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: collapse; width: 720px;&quot;&gt;&lt;div class=&quot;article-editor-content__element-overlay&quot; style=&quot;background-color: var(--color-background-scrim); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: 482.76px; margin: var(--artdeco-reset-base-margin-zero); opacity: 0; padding: var(--artdeco-reset-base-padding-zero); position: absolute; transition: opacity var(--duration-fast) var(--ease-standard); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px; z-index: 1;&quot;&gt;&lt;div class=&quot;article-editor-content__inline-image-buttons&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); justify-content: flex-end; margin-right: var(--spacing-three-x); margin-top: var(--spacing-three-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;button aria-label=&quot;Minimize image&quot; class=&quot;article-editor-content__button artdeco-button artdeco-button--1 artdeco-button--circle artdeco-button--inverse artdeco-button--secondary article-editor-content__inline-image-resize-button&quot; data-test-resize-image-button=&quot;true&quot; style=&quot;align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--artdeco-button-secondary-inverse-static-border-color); cursor: pointer; display: inline-flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: 1.4rem; font-weight: 600; height: 3.2rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; margin-right: var(--spacing-one-x); max-width: 480px; min-height: 2.4rem; min-width: auto; overflow: visible; padding: 0px !important; pointer-events: all; position: relative; touch-action: manipulation; transition: opacity var(--duration-fast) var(--ease-standard); vertical-align: middle; width: 3.2rem; z-index: 2;&quot;&gt;&lt;div class=&quot;resize-image-control-button-tooltip resize-image-control-button-tooltip-hidden&quot; style=&quot;background-color: var(--color-background-container); border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-shadow: var(--elevation-raised); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-small); font-weight: var(--font-weight-regular); margin: var(--artdeco-reset-base-margin-zero); opacity: 0; padding: 0.8rem; pointer-events: none; position: absolute; right: 0px; top: 4.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: max-content;&quot;&gt;Minimize image&lt;/div&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; data-test-icon=&quot;minimize-small&quot; height=&quot;16&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; width=&quot;16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; fill=&quot;currentColor&quot; id=&quot;minimize-small&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M5 1h2v6H1V5h2.59L0 1.41 1.41 0 5 3.59zm7.41 10H15V9H9v6h2v-2.59L14.59 16 16 14.59z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button aria-label=&quot;Edit image&quot; class=&quot;article-editor-content__button artdeco-button artdeco-button--1 artdeco-button--circle artdeco-button--inverse artdeco-button--secondary article-editor-content__inline-image-edit-button&quot; data-test-edit-image-button=&quot;true&quot; style=&quot;align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--artdeco-button-secondary-inverse-static-border-color); cursor: pointer; display: inline-flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: 1.4rem; font-weight: 600; height: 3.2rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; margin-right: var(--spacing-one-x); max-width: 480px; min-height: 2.4rem; min-width: auto; overflow: visible; padding: 0px !important; pointer-events: all; position: relative; touch-action: manipulation; transition: opacity var(--duration-fast) var(--ease-standard); vertical-align: middle; width: 3.2rem; z-index: 2;&quot;&gt;&lt;div class=&quot;resize-image-control-button-tooltip resize-image-control-button-tooltip-hidden&quot; style=&quot;background-color: var(--color-background-container); border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-shadow: var(--elevation-raised); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-small); font-weight: var(--font-weight-regular); margin: var(--artdeco-reset-base-margin-zero); opacity: 0; padding: 0.8rem; pointer-events: none; position: absolute; right: 0px; top: 4.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: max-content;&quot;&gt;Edit image&lt;/div&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; data-test-icon=&quot;edit-small&quot; height=&quot;16&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; width=&quot;16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; fill=&quot;currentColor&quot; id=&quot;edit-small&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M14.13 1.86a3 3 0 00-4.17 0l-7 7L1 15l6.19-2 6.94-7a3 3 0 000-4.16zm-8.36 9.71l-1.35-1.34L9.64 5 11 6.35z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button aria-label=&quot;Delete image&quot; class=&quot;article-editor-content__button artdeco-button artdeco-button--1 artdeco-button--circle artdeco-button--inverse artdeco-button--secondary article-editor-content__inline-image-delete-button&quot; data-test-delete-image-button=&quot;true&quot; style=&quot;align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--artdeco-button-secondary-inverse-static-border-color); cursor: pointer; display: inline-flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: 1.4rem; font-weight: 600; height: 3.2rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 2.4rem; min-width: auto; overflow: visible; padding: 0px !important; pointer-events: all; position: relative; touch-action: manipulation; transition: opacity var(--duration-fast) var(--ease-standard); vertical-align: middle; width: 3.2rem; z-index: 2;&quot;&gt;&lt;div class=&quot;resize-image-control-button-tooltip resize-image-control-button-tooltip-hidden&quot; style=&quot;background-color: var(--color-background-container); border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-shadow: var(--elevation-raised); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-small); font-weight: var(--font-weight-regular); margin: var(--artdeco-reset-base-margin-zero); opacity: 0; padding: 0.8rem; pointer-events: none; position: absolute; right: 0px; top: 4.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: max-content;&quot;&gt;Delete image&lt;/div&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; data-test-icon=&quot;trash-small&quot; height=&quot;16&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; width=&quot;16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; fill=&quot;currentColor&quot; id=&quot;trash-small&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M3 13a2 2 0 002 2h6a2 2 0 002-2V5H3zm6-6h1v5H9zM6 7h1v5H6zm8-4v1H2V3a1 1 0 011-1h3a1 1 0 011-1h2a1 1 0 011 1h3a1 1 0 011 1z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;img alt=&quot;&quot; class=&quot;article-editor-content__inline-image&quot; src=&quot;data:image/png;base64,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&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;&quot; /&gt;&lt;/div&gt;&lt;figcaption aria-label=&quot;Add a caption (optional)&quot; class=&quot;article-editor-content__figure-image-caption is-empty&quot; data-placeholder=&quot;Add a caption (optional)&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text-low-emphasis); display: var(--artdeco-reset-base-display-block); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-small); margin: var(--artdeco-reset-base-margin-zero); padding: 1.6rem 2.4rem 0px; text-align: center; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;&quot; tabxindex=&quot;0&quot;&gt;&lt;br class=&quot;ProseMirror-trailingBreak&quot; style=&quot;box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans);&quot; /&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Click &lt;span style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;OK&lt;/span&gt; to establish the connection.&lt;/p&gt;&lt;h3 class=&quot;article-editor-content__heading&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: var(--font-size-large); font-variant-ligatures: none; font-weight: var(--font-weight-bold); line-height: var(--line-height-default); margin: 1.6rem 2.4rem; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Step 3: Create a Power BI Function to Fetch Data&lt;/h3&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;You’ll now create a Power BI function to retrieve data from JIRA in batches, as JIRA limits the number of records retrieved in a single query. Name it &quot;GetJIRAData&quot;&lt;/p&gt;&lt;ul class=&quot;article-editor-content__bullet-list&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;In Power BI, create a new query and enter the following code:&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre class=&quot;article-editor-content__code-block&quot; style=&quot;border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text-on-dark); font-family: var(--artdeco-typography-mono); font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 3.2rem 2.4rem; overflow-x: auto; padding: 3.2rem; text-wrap: wrap; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;code style=&quot;border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;let
    GetJiraData = (offset) =&amp;gt;
    let    
        myURL = &quot;https://your_domain.atlassian.net/rest/api/3/&quot;,
        Jql = &quot;project=WPM&quot;,  // Modify this with your actual project key
        Fields = &quot;summary,key,issuetype,status,assignee&quot;,  // Add fields as needed
        StartAt = Number.ToText(offset),
        MaxR = &quot;100&quot;,
        Source = Json.Document(Web.Contents(myURL, 
            [RelativePath=&quot;search?&quot;,
                Query = [ jql=Jql, fields=Fields, maxResults=MaxR, startAt=StartAt ],
                Headers = [ Authorization=&quot;Basic YOUR_BASE64_TOKEN&quot;, #&quot;Content-Type&quot;=&quot;application/json&quot; ]
            ]
        ))
    in
        Source
in
    GetJiraData&lt;/code&gt;&lt;/pre&gt;&lt;ul class=&quot;article-editor-content__bullet-list&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Replace the placeholder values with actual data (e.g., your domain, API token).&lt;/p&gt;&lt;/li&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;You can modify the &lt;code style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Fields&lt;/code&gt; variable to fetch additional data from JIRA.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 class=&quot;article-editor-content__heading&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: var(--font-size-large); font-variant-ligatures: none; font-weight: var(--font-weight-bold); line-height: var(--line-height-default); margin: 1.6rem 2.4rem; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Step 4: Query Iteration for Large Data Sets&lt;/h3&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Since JIRA limits the number of records fetched per call (usually 1000), you can create an iterative query in Power BI to retrieve all records in batches.&lt;/p&gt;&lt;ul class=&quot;article-editor-content__bullet-list&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Create another query, naming it &lt;code style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;JiraData&lt;/code&gt;:&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre class=&quot;article-editor-content__code-block&quot; style=&quot;border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text-on-dark); font-family: var(--artdeco-typography-mono); font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 3.2rem 2.4rem; overflow-x: auto; padding: 3.2rem; text-wrap: wrap; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;code style=&quot;border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;let
    JiraData = List.Generate(
        () =&amp;gt; [offset = 0, data = GetJiraData(0)],
        each not List.IsEmpty([data][issues]),
        each [offset = [offset] + 100, data = GetJiraData([offset])],
        each [data]
    )
in
    JiraData&lt;/code&gt;&lt;/pre&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Power BI will now iterate through the data in batches of 100 records until all issues are retrieved.&lt;/p&gt;&lt;h3 class=&quot;article-editor-content__heading&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: var(--font-size-large); font-variant-ligatures: none; font-weight: var(--font-weight-bold); line-height: var(--line-height-default); margin: 1.6rem 2.4rem; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Step 6: Transform and Load Data into Power BI&lt;/h3&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Once the data is imported:&lt;/p&gt;&lt;ul class=&quot;article-editor-content__bullet-list&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Transform the data &quot;JIRAData&quot; as needed within Power BI to fit your reporting needs.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Here are few transformation I applied. Start with &quot;Converted to table&quot; and then expand it to get columns.&lt;/p&gt;&lt;p aria-label=&quot;Write here. You can also include @mentions.&quot; class=&quot;article-editor-content__paragraph is-empty&quot; data-placeholder=&quot;Write here. You can also include @mentions.&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;br class=&quot;ProseMirror-trailingBreak&quot; style=&quot;box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans);&quot; /&gt;&lt;/p&gt;&lt;figure class=&quot;article-editor-content__figure-image&quot; data-id=&quot;4d0758a4-f90f-4699-9487-629afec18f3d&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); display: flex; flex-direction: column; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; margin: var(--spacing-two-x) 0; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;div class=&quot;article-editor-content__inline-image-container&quot; contenteditable=&quot;false&quot; style=&quot;align-items: center; background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); justify-content: center; margin: 0px auto; overflow: hidden; padding: var(--artdeco-reset-base-padding-zero); position: relative; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: collapse; width: 720px;&quot;&gt;&lt;div class=&quot;article-editor-content__element-overlay&quot; style=&quot;background-color: var(--color-background-scrim); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: 168.75px; margin: var(--artdeco-reset-base-margin-zero); opacity: 0; padding: var(--artdeco-reset-base-padding-zero); position: absolute; transition: opacity var(--duration-fast) var(--ease-standard); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px; z-index: 1;&quot;&gt;&lt;div class=&quot;article-editor-content__inline-image-buttons&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); justify-content: flex-end; margin-right: var(--spacing-three-x); margin-top: var(--spacing-three-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;button aria-label=&quot;Minimize image&quot; class=&quot;article-editor-content__button artdeco-button artdeco-button--1 artdeco-button--circle artdeco-button--inverse artdeco-button--secondary article-editor-content__inline-image-resize-button&quot; data-test-resize-image-button=&quot;true&quot; style=&quot;align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--artdeco-button-secondary-inverse-static-border-color); cursor: pointer; display: inline-flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: 1.4rem; font-weight: 600; height: 3.2rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; margin-right: var(--spacing-one-x); max-width: 480px; min-height: 2.4rem; min-width: auto; overflow: visible; padding: 0px !important; pointer-events: all; position: relative; touch-action: manipulation; transition: opacity var(--duration-fast) var(--ease-standard); vertical-align: middle; width: 3.2rem; z-index: 2;&quot;&gt;&lt;div class=&quot;resize-image-control-button-tooltip resize-image-control-button-tooltip-hidden&quot; style=&quot;background-color: var(--color-background-container); border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-shadow: var(--elevation-raised); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-small); font-weight: var(--font-weight-regular); margin: var(--artdeco-reset-base-margin-zero); opacity: 0; padding: 0.8rem; pointer-events: none; position: absolute; right: 0px; top: 4.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: max-content;&quot;&gt;Minimize image&lt;/div&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; data-test-icon=&quot;minimize-small&quot; height=&quot;16&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; width=&quot;16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; fill=&quot;currentColor&quot; id=&quot;minimize-small&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M5 1h2v6H1V5h2.59L0 1.41 1.41 0 5 3.59zm7.41 10H15V9H9v6h2v-2.59L14.59 16 16 14.59z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button aria-label=&quot;Edit image&quot; class=&quot;article-editor-content__button artdeco-button artdeco-button--1 artdeco-button--circle artdeco-button--inverse artdeco-button--secondary article-editor-content__inline-image-edit-button&quot; data-test-edit-image-button=&quot;true&quot; style=&quot;align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--artdeco-button-secondary-inverse-static-border-color); cursor: pointer; display: inline-flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: 1.4rem; font-weight: 600; height: 3.2rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; margin-right: var(--spacing-one-x); max-width: 480px; min-height: 2.4rem; min-width: auto; overflow: visible; padding: 0px !important; pointer-events: all; position: relative; touch-action: manipulation; transition: opacity var(--duration-fast) var(--ease-standard); vertical-align: middle; width: 3.2rem; z-index: 2;&quot;&gt;&lt;div class=&quot;resize-image-control-button-tooltip resize-image-control-button-tooltip-hidden&quot; style=&quot;background-color: var(--color-background-container); border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-shadow: var(--elevation-raised); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-small); font-weight: var(--font-weight-regular); margin: var(--artdeco-reset-base-margin-zero); opacity: 0; padding: 0.8rem; pointer-events: none; position: absolute; right: 0px; top: 4.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: max-content;&quot;&gt;Edit image&lt;/div&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; data-test-icon=&quot;edit-small&quot; height=&quot;16&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; width=&quot;16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; fill=&quot;currentColor&quot; id=&quot;edit-small&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M14.13 1.86a3 3 0 00-4.17 0l-7 7L1 15l6.19-2 6.94-7a3 3 0 000-4.16zm-8.36 9.71l-1.35-1.34L9.64 5 11 6.35z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/svg&gt;&lt;/button&gt;&lt;button aria-label=&quot;Delete image&quot; class=&quot;article-editor-content__button artdeco-button artdeco-button--1 artdeco-button--circle artdeco-button--inverse artdeco-button--secondary article-editor-content__inline-image-delete-button&quot; data-test-delete-image-button=&quot;true&quot; style=&quot;align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--artdeco-button-secondary-inverse-static-border-color); cursor: pointer; display: inline-flex; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: 1.4rem; font-weight: 600; height: 3.2rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 2.4rem; min-width: auto; overflow: visible; padding: 0px !important; pointer-events: all; position: relative; touch-action: manipulation; transition: opacity var(--duration-fast) var(--ease-standard); vertical-align: middle; width: 3.2rem; z-index: 2;&quot;&gt;&lt;div class=&quot;resize-image-control-button-tooltip resize-image-control-button-tooltip-hidden&quot; style=&quot;background-color: var(--color-background-container); border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-shadow: var(--elevation-raised); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-small); font-weight: var(--font-weight-regular); margin: var(--artdeco-reset-base-margin-zero); opacity: 0; padding: 0.8rem; pointer-events: none; position: absolute; right: 0px; top: 4.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: max-content;&quot;&gt;Delete image&lt;/div&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; data-test-icon=&quot;trash-small&quot; height=&quot;16&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; width=&quot;16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-supported-dps=&quot;16x16&quot; fill=&quot;currentColor&quot; id=&quot;trash-small&quot; role=&quot;none&quot; viewbox=&quot;0 0 16 16&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M3 13a2 2 0 002 2h6a2 2 0 002-2V5H3zm6-6h1v5H9zM6 7h1v5H6zm8-4v1H2V3a1 1 0 011-1h3a1 1 0 011-1h2a1 1 0 011 1h3a1 1 0 011 1z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;img alt=&quot;&quot; class=&quot;article-editor-content__inline-image&quot; src=&quot;data:image/png;base64,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&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;&quot; /&gt;&lt;/div&gt;&lt;figcaption aria-label=&quot;Add a caption (optional)&quot; class=&quot;article-editor-content__figure-image-caption is-empty&quot; data-placeholder=&quot;Add a caption (optional)&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text-low-emphasis); display: var(--artdeco-reset-base-display-block); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-small); margin: var(--artdeco-reset-base-margin-zero); padding: 1.6rem 2.4rem 0px; text-align: center; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;&quot; tabxindex=&quot;0&quot;&gt;&lt;br class=&quot;ProseMirror-trailingBreak&quot; style=&quot;box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans);&quot; /&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;ul class=&quot;article-editor-content__bullet-list&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;li class=&quot;article-editor-content__list-item&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--font-size-medium); font-weight: var(--artdeco-reset-typography-font-weight-normal); line-height: var(--line-height-open); margin: 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;Create visualizations and reports based on the JIRA data.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;#PowerBI #JIRA #SystemIntegration #RESTAPI #DataIntegration #TechInnovation #ProjectManagement&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/7610834477380580689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/7610834477380580689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/7610834477380580689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/7610834477380580689'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2024/09/how-to-connect-power-bi-to-jira-using.html' title='How to Connect Power BI to JIRA Using REST API Without Third-Party Apps'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-4376922198909572538</id><published>2024-08-25T22:02:00.000-07:00</published><updated>2024-08-25T22:02:29.902-07:00</updated><title type='text'>Creating an Azure HTTP Function to Import Custom Events into Outlook through URL/ Custom Calendar Part1</title><content type='html'>&lt;p&gt;&amp;nbsp;In this tutorial, you&#39;ll learn how to set up your development environment, create an Azure HTTP function using Python, and deploy it to Azure. This function will allow users to import custom events into their Outlook calendar.&lt;/p&gt;&lt;h4&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;Before you begin, make sure you have the following:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A free Azure account (or an existing one)&lt;/li&gt;&lt;li&gt;Basic knowledge of Python and Azure functions&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;&lt;strong&gt;Step 1: Setting Up Your Development Environment&lt;/strong&gt;&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a Free Azure Account&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visit the &lt;a href=&quot;https://azure.microsoft.com/free/&quot; rel=&quot;noopener&quot; target=&quot;_new&quot;&gt;Azure Free Account&lt;/a&gt; page and click on &lt;strong&gt;Start for free&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Follow the on-screen instructions to set up your account.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install Azure Functions Core Tools&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;For Linux users:&lt;pre&gt;&lt;div bis_skin_checked=&quot;1&quot; class=&quot;dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium&quot;&gt;&lt;div bis_skin_checked=&quot;1&quot; class=&quot;flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md&quot;&gt;bash&lt;div bis_skin_checked=&quot;1&quot; class=&quot;flex items-center&quot;&gt;&lt;span class=&quot;&quot; data-state=&quot;closed&quot;&gt;&lt;button class=&quot;flex gap-1 items-center&quot;&gt;&lt;svg class=&quot;icon-sm&quot; fill=&quot;none&quot; height=&quot;24&quot; viewbox=&quot;0 0 24 24&quot; width=&quot;24&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path clip-rule=&quot;evenodd&quot; d=&quot;M7 5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-2v2a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3v-9a3 3 0 0 1 3-3h2zm2 2h5a3 3 0 0 1 3 3v5h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1h-9a1 1 0 0 0-1 1zM5 9a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-9a1 1 0 0 0-1-1z&quot; fill-rule=&quot;evenodd&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy code&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div bis_skin_checked=&quot;1&quot; class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;!whitespace-pre hljs language-bash&quot;&gt;wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install azure-functions-core-tools-4
&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;For Windows users, download and install the latest version of Azure Functions Core Tools from the &lt;a href=&quot;https://docs.microsoft.com/azure/azure-functions/functions-run-local&quot; rel=&quot;noopener&quot; target=&quot;_new&quot;&gt;official documentation&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install Visual Studio Code (VS Code)&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Download and install &lt;a href=&quot;https://code.visualstudio.com/&quot; rel=&quot;noopener&quot; target=&quot;_new&quot;&gt;Visual Studio Code&lt;/a&gt; for your operating system.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install VS Code Extensions&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Open VS Code, go to the Extensions view (Ctrl+Shift+X), and install the following:&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; (by Microsoft) - For Python development&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Azure Functions&lt;/strong&gt; (by Microsoft) - To create, debug, and deploy Azure functions directly from VS Code&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Verify Python Installation&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Ensure Python is installed on your system by running:&lt;pre&gt;&lt;div bis_skin_checked=&quot;1&quot; class=&quot;dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium&quot;&gt;&lt;div bis_skin_checked=&quot;1&quot; class=&quot;flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md&quot;&gt;bash&lt;div bis_skin_checked=&quot;1&quot; class=&quot;flex items-center&quot;&gt;&lt;span class=&quot;&quot; data-state=&quot;closed&quot;&gt;&lt;button class=&quot;flex gap-1 items-center&quot;&gt;&lt;svg class=&quot;icon-sm&quot; fill=&quot;none&quot; height=&quot;24&quot; viewbox=&quot;0 0 24 24&quot; width=&quot;24&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path clip-rule=&quot;evenodd&quot; d=&quot;M7 5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-2v2a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3v-9a3 3 0 0 1 3-3h2zm2 2h5a3 3 0 0 1 3 3v5h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1h-9a1 1 0 0 0-1 1zM5 9a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-9a1 1 0 0 0-1-1z&quot; fill-rule=&quot;evenodd&quot; fill=&quot;currentColor&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy code&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div bis_skin_checked=&quot;1&quot; class=&quot;overflow-y-auto p-4&quot; dir=&quot;ltr&quot;&gt;&lt;code class=&quot;!whitespace-pre hljs language-bash&quot;&gt;python --version
&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;If Python is not installed, follow the &lt;a href=&quot;https://www.python.org/downloads/&quot; rel=&quot;noopener&quot; target=&quot;_new&quot;&gt;official guide&lt;/a&gt; to install it.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;&lt;strong&gt;Step 2: Setting Up Your Azure Function Project&lt;/strong&gt;&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a Project Directory in VSCode&amp;nbsp; &amp;nbsp;&quot;OutlookAPI&quot;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a New Azure Function&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;In VS Code, click on the Azure icon on the Activity Bar.&lt;/li&gt;&lt;li&gt;Click on the &lt;strong&gt;Create New Project&lt;/strong&gt; button (a lightning bolt with a plus sign).&lt;/li&gt;&lt;li&gt;Choose your current directory for the project location.&lt;/li&gt;&lt;li&gt;Select &lt;strong&gt;Python&lt;/strong&gt; as the language.&lt;/li&gt;&lt;li&gt;Choose your Python interpreter (e.g., Python 3.9).&lt;/li&gt;&lt;li&gt;Select &lt;strong&gt;HTTP trigger&lt;/strong&gt; as the function template.&lt;/li&gt;&lt;li&gt;Name your function (e.g., &lt;code&gt;HttpTriggerQuick&lt;/code&gt;).&lt;/li&gt;&lt;li&gt;Set the authorization level to &lt;strong&gt;Anonymous&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Review the Project Structure&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Your project should now contain:&lt;ul&gt;&lt;li&gt;A &lt;code&gt;.vscode&lt;/code&gt; folder with configuration settings&lt;/li&gt;&lt;li&gt;A &lt;code&gt;__init__.py&lt;/code&gt; file where your function code will reside&lt;/li&gt;&lt;li&gt;A &lt;code&gt;function.json&lt;/code&gt; file with your function configuration&lt;/li&gt;&lt;li&gt;A &lt;code&gt;local.settings.json&lt;/code&gt; file for local development settings&lt;/li&gt;&lt;li&gt;A &lt;code&gt;requirements.txt&lt;/code&gt; file listing your project&#39;s dependencies&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 class=&quot;article-editor-content__heading article-editor-content__has-focus&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: var(--font-size-large); font-variant-ligatures: none; font-weight: var(--font-weight-bold); line-height: var(--line-height-default); margin: 1.6rem 2.4rem; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;Step 4: Writing the Function Code&lt;/h3&gt;&lt;h4&gt;&lt;p class=&quot;article-editor-content__paragraph&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; font-weight: 400; line-height: var(--line-height-open); margin: 1.6rem 2.4rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;This section is where you&#39;ll add your custom code to handle the HTTP requests and import events into Outlook. &lt;/p&gt;&lt;pre class=&quot;article-editor-content__code-block&quot; style=&quot;border-radius: var(--corner-radius-medium); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text-on-dark); font-family: var(--artdeco-typography-mono); font-size: 16px; font-variant-ligatures: none; font-weight: 400; line-height: var(--line-height-open); margin: 3.2rem 2.4rem; overflow-x: auto; padding: 3.2rem; text-wrap: wrap; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;&lt;code style=&quot;border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);&quot;&gt;import logging
from datetime import datetime
from icalendar import Calendar, Event
import azure.functions as func
import uuid

app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)

@app.route(route=&quot;EkasminAPI&quot;)
def EkasminAPI(req: func.HttpRequest) -&amp;gt; func.HttpResponse:
    logging.info(&#39;Python HTTP trigger function processed a request.&#39;)

    name = req.params.get(&#39;name&#39;)
    if not name:
        try:
            req_body = req.get_json()
        except ValueError:
            pass
        else:
            name = req_body.get(&#39;name&#39;)

    if name:
        logging.info(&#39;Generating calendar...&#39;)

        # List of events with their details
        events = [
            {
                &#39;summary&#39;: &#39;Event 1&#39;,
                &#39;description&#39;: &#39;Description for Event 1&#39;,
                &#39;start&#39;: datetime(2024, 8, 25, 10, 0, 0),
                &#39;end&#39;: datetime(2024, 8, 25, 11, 0, 0),
            },
            {
                &#39;summary&#39;: &#39;Event 2&#39;,
                &#39;description&#39;: &#39;Description for Event 2&#39;,
                &#39;start&#39;: datetime(2024, 8, 26, 10, 0, 0),
                &#39;end&#39;: datetime(2024, 8, 26, 11, 0, 0),
            },
            {
                &#39;summary&#39;: &#39;Event 3&#39;,
                &#39;description&#39;: &#39;Description for Event 3&#39;,
                &#39;start&#39;: datetime(2024, 8, 29, 10, 0, 0),
                &#39;end&#39;: datetime(2024, 8, 29, 11, 0, 0),
            }
        ]

        # Create calendar
        cal = Calendar()
        cal.add(&#39;prodid&#39;, &#39;-//My Calendar Application//Ekasmin.com//&#39;)
        cal.add(&#39;version&#39;, &#39;2.0&#39;)

        # Log the number of events to be processed
        logging.info(f&#39;Number of events: {len(events)}&#39;)

        # Add events to the calendar
        for i, event_data in enumerate(events, start=1):
            logging.info(f&#39;Processing event {i}: {event_data[&quot;summary&quot;]}&#39;)
            try:
                event = Event()
                event.add(&#39;summary&#39;, event_data[&#39;summary&#39;])
                event.add(&#39;description&#39;, event_data[&#39;description&#39;])
                event.add(&#39;dtstart&#39;, event_data[&#39;start&#39;])
                event.add(&#39;dtend&#39;, event_data[&#39;end&#39;])
                event.add(&#39;dtstamp&#39;, datetime.now())
                event.add(&#39;uid&#39;, str(uuid.uuid4()))  # Generate a unique ID for each event
                cal.add_component(event)  # Add the event to the calendar
                logging.info(f&#39;Event {i} added.&#39;)
            except Exception as e:
                logging.error(f&#39;Error processing event {i}: {e}&#39;)
                continue

        # Convert to iCalendar format
        ical_str = cal.to_ical().decode(&#39;utf-8&#39;)

        # Log the output to verify all events are added
        logging.info(f&#39;Generated iCalendar file: {ical_str}&#39;)

        # Return the iCalendar string as a response with the correct MIME type
        return func.HttpResponse(ical_str, mimetype=&#39;text/calendar&#39;)

    else:
        return func.HttpResponse(
            &quot;This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.&quot;,
            status_code=200
        )
&lt;br class=&quot;ProseMirror-trailingBreak&quot; style=&quot;box-sizing: inherit; font-family: var(--artdeco-reset-typography-font-family-sans);&quot; /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/h4&gt;&lt;h3 class=&quot;article-editor-content__heading&quot; style=&quot;background-color: #f4f2ee; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: var(--font-size-large); font-variant-ligatures: none; font-weight: var(--font-weight-bold); line-height: var(--line-height-default); margin: 1.6rem 2.4rem; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space-collapse: break-spaces;&quot;&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h4&gt;&lt;strong&gt;Step 4: Testing the Function Locally&lt;/strong&gt;&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Run the Function Locally&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Press &lt;code&gt;F5&lt;/code&gt; in VS Code to start the local Azure Function runtime.&lt;/li&gt;&lt;li&gt;VS Code will open a terminal, install any necessary dependencies, and start the function.&lt;/li&gt;&lt;li&gt;The terminal will display a local HTTP endpoint (e.g., &lt;code&gt;http://localhost:7071/api/HttpTriggerQuick&lt;/code&gt;).&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test Using Postman&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Open &lt;a rel=&quot;noopener&quot; target=&quot;_new&quot;&gt;Postman&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Create a new GET or POST request to the local endpoint.&lt;/li&gt;&lt;li&gt;Check the response to verify the function is working as expected.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;&lt;strong&gt;Step 5: Deploying the Function to Azure&lt;/strong&gt;&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Log In to Azure&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;In VS Code, click on the Azure icon and sign in to your Azure account.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create an Azure Function App&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click on the &lt;strong&gt;Create Function App in Azure&lt;/strong&gt; button.&lt;/li&gt;&lt;li&gt;Enter a globally unique name for your function app (e.g., &lt;code&gt;QuickFunction4242&lt;/code&gt;).&lt;/li&gt;&lt;li&gt;Select your Python version and Azure region.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deploy the Function&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Once the function app is created, right-click on your project in VS Code and select &lt;strong&gt;Deploy to Function App&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Choose the function app you just created.&lt;/li&gt;&lt;li&gt;Confirm the deployment when prompted.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test the Deployed Function&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Copy the production endpoint URL from Azure and test it using Postman.&lt;/li&gt;&lt;li&gt;Verify that your function is running correctly in the cloud.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;&lt;strong&gt;Step 6: Clean Up Resources&lt;/strong&gt;&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;To avoid any charges, delete the resource group associated with your function app after testing:&lt;ul&gt;&lt;li&gt;Go to the Azure portal, find your resource group, and delete it.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;You&#39;ve now successfully set up your environment, created an Azure HTTP function, tested it locally, and deployed it to Azure. This function can now be used to import custom events into Outlook.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span style=&quot;background-color: #f4f2ee; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; white-space-collapse: break-spaces;&quot;&gt;Wait for Part 2 Where I will modify these events by integrating to some other applications.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhtyrC3EK_QN2u6FVWlOE2xIEukCbZNMQdzGqbsQV4g8iVu94GXXaoFoXQYc7VPufIKgcsCrUMqQ3tYwjsS6nAR2FibEt4mbom4zExy9q0WTas4umBepfId_bOrK1hZZSMSPIOm4gUG1DDpG2BaRoednByxUBjHNy4o5HSpUmHs6T8t7o7f_mxFQQ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;589&quot; data-original-width=&quot;1377&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhtyrC3EK_QN2u6FVWlOE2xIEukCbZNMQdzGqbsQV4g8iVu94GXXaoFoXQYc7VPufIKgcsCrUMqQ3tYwjsS6nAR2FibEt4mbom4zExy9q0WTas4umBepfId_bOrK1hZZSMSPIOm4gUG1DDpG2BaRoednByxUBjHNy4o5HSpUmHs6T8t7o7f_mxFQQ=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/4376922198909572538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/4376922198909572538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/4376922198909572538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/4376922198909572538'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2024/08/creating-azure-http-function-to-import.html' title='Creating an Azure HTTP Function to Import Custom Events into Outlook through URL/ Custom Calendar Part1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhtyrC3EK_QN2u6FVWlOE2xIEukCbZNMQdzGqbsQV4g8iVu94GXXaoFoXQYc7VPufIKgcsCrUMqQ3tYwjsS6nAR2FibEt4mbom4zExy9q0WTas4umBepfId_bOrK1hZZSMSPIOm4gUG1DDpG2BaRoednByxUBjHNy4o5HSpUmHs6T8t7o7f_mxFQQ=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-5557933449320702719</id><published>2024-06-06T10:05:00.000-07:00</published><updated>2024-06-06T10:31:05.143-07:00</updated><title type='text'>Azure Apps setting up custom sub domains</title><content type='html'>&lt;p&gt;&amp;nbsp;&amp;nbsp;I have noticed that subdomains can be quite unclear on how to add them properly. Basically you have to use TXT record to verify ownership. Delete it and create CNAME record for app URL followed by A record for IP address of azure&lt;/p&gt;&lt;p&gt;Go to custom domain section for setting dev.ekasmin.com&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhxhw4gzBlRtQdW58ysmNlsWHj5Js21bmR0Ua7ml8jO6I78sJFlM0chZVxdRebO52nTbGD94qERYYK1wIrrU-gCcgZwqkkwM6SeI6LFEKzvnZaLkUEGiYCg0UwP2-QdWKXP6jyPyuxEQeTNVMC0ntC7B16BZMFlVzOURa-KOUWssbDajtts-I156w&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;525&quot; data-original-width=&quot;952&quot; height=&quot;245&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhxhw4gzBlRtQdW58ysmNlsWHj5Js21bmR0Ua7ml8jO6I78sJFlM0chZVxdRebO52nTbGD94qERYYK1wIrrU-gCcgZwqkkwM6SeI6LFEKzvnZaLkUEGiYCg0UwP2-QdWKXP6jyPyuxEQeTNVMC0ntC7B16BZMFlVzOURa-KOUWssbDajtts-I156w=w445-h245&quot; width=&quot;445&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;Step 1: Add a TEXT Record for example&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjV4TFhASPUBVbVNW3s4p-kNEK28COKn1dnHfd3iytc6_V10eiJG1_MYCd-RckRdYOgaj5d1Hw-yK6pAKbrhqQSeByy3cj7nv0RWuf7bWFNHE4LKTTOi3G0_w_f4Ac9OiYrp4BWaBLvj3fjS64Uh9_-Cp-TU3QkHBWHBjLGE4TJmo66QvWj_LgYfw&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;644&quot; data-original-width=&quot;828&quot; height=&quot;311&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjV4TFhASPUBVbVNW3s4p-kNEK28COKn1dnHfd3iytc6_V10eiJG1_MYCd-RckRdYOgaj5d1Hw-yK6pAKbrhqQSeByy3cj7nv0RWuf7bWFNHE4LKTTOi3G0_w_f4Ac9OiYrp4BWaBLvj3fjS64Uh9_-Cp-TU3QkHBWHBjLGE4TJmo66QvWj_LgYfw=w401-h311&quot; width=&quot;401&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Step 2: Open your DNS Management from Go Daddy/Domain Provider. Add the TXT Record&lt;p&gt;&lt;/p&gt;&lt;p&gt;Step 3: In Azure it will switch to CNAME record for dev.ekasmin.com like this&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjbuJ_mZNdINJ9tF1ZHm1xvlQdDR6_8NYPOAx_jTl0swP8U1Bksy3UxpIKxH3QA-G0I2dFgC76ihQwbIbDQfk3017GSh2tJnQLLUSsJoECl3jdqfzmcWF9y5hXHm9duFjWotmjQ42xyEGSs7i7IO_ORirD-yLr0o1XXAY1ipBtKlrC1u88g2UP67A&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;422&quot; data-original-width=&quot;800&quot; height=&quot;216&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjbuJ_mZNdINJ9tF1ZHm1xvlQdDR6_8NYPOAx_jTl0swP8U1Bksy3UxpIKxH3QA-G0I2dFgC76ihQwbIbDQfk3017GSh2tJnQLLUSsJoECl3jdqfzmcWF9y5hXHm9duFjWotmjQ42xyEGSs7i7IO_ORirD-yLr0o1XXAY1ipBtKlrC1u88g2UP67A=w409-h216&quot; width=&quot;409&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Step 4. Now here is critical part. You can&#39;t add TXT and CNAME for same subdomain &quot;dev&quot;. So delete the TXT created in Step 2 which has been used for ownership verification. Add CNAME in your DNS Management dev&amp;nbsp; &amp;nbsp;with the URL of app &quot;gray-island-0a3e7441e.5.azurestaticapps.net&quot;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjk9zVUxH559KEZ3U5pKJ3mmYgNGm-Z48IvnbeP0kNJN8waKW0H6SMsctEKKzJBvUASX0jb4UhrrYcV3q0wg6eBAx6_nv5EzlnQEItgx1Pd2eC68DIgHa4mowdToiJ7ZMHjVmObmcOWXc5Ade746lMMKLcW8E2IIjiy2vufAw-npQhqTbquNc5fpQ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;350&quot; data-original-width=&quot;1358&quot; height=&quot;110&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjk9zVUxH559KEZ3U5pKJ3mmYgNGm-Z48IvnbeP0kNJN8waKW0H6SMsctEKKzJBvUASX0jb4UhrrYcV3q0wg6eBAx6_nv5EzlnQEItgx1Pd2eC68DIgHa4mowdToiJ7ZMHjVmObmcOWXc5Ade746lMMKLcW8E2IIjiy2vufAw-npQhqTbquNc5fpQ=w429-h110&quot; width=&quot;429&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Step 5: Also add an A record for the IP address of &quot;gray-island-0a3e7441e.5.azurestaticapps.net&quot; . use online tool to find IP address.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhu1VRwLFtzhvMntm7dB-DKmHqObeoQVb6caQrEWeIIWI-mNJHjCwdCL40miEkS4LjTWIRQ-WncU4nCmPs4bskJMHYCcJPkZrZ3JRJyXFOcgx3SYKBjiiHIG2g6ZE22NAydvfE-mrFjobfQ8hf6IG5T0Jt5wM9PY6EqVuOxS2zhuG3bAfiWmNenbQ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;96&quot; data-original-width=&quot;836&quot; height=&quot;37&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhu1VRwLFtzhvMntm7dB-DKmHqObeoQVb6caQrEWeIIWI-mNJHjCwdCL40miEkS4LjTWIRQ-WncU4nCmPs4bskJMHYCcJPkZrZ3JRJyXFOcgx3SYKBjiiHIG2g6ZE22NAydvfE-mrFjobfQ8hf6IG5T0Jt5wM9PY6EqVuOxS2zhuG3bAfiWmNenbQ&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This will now open your app when you type dev.ekasmin.com&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/5557933449320702719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/5557933449320702719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/5557933449320702719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/5557933449320702719'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2024/06/azure-apps-setting-up-custom-sub-domains.html' title='Azure Apps setting up custom sub domains'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhxhw4gzBlRtQdW58ysmNlsWHj5Js21bmR0Ua7ml8jO6I78sJFlM0chZVxdRebO52nTbGD94qERYYK1wIrrU-gCcgZwqkkwM6SeI6LFEKzvnZaLkUEGiYCg0UwP2-QdWKXP6jyPyuxEQeTNVMC0ntC7B16BZMFlVzOURa-KOUWssbDajtts-I156w=s72-w445-h245-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-1053700220820282735</id><published>2023-11-16T09:26:00.000-08:00</published><updated>2023-11-16T09:26:59.201-08:00</updated><title type='text'>Update JIRA endpoints from Excel Macro using REST API calls</title><content type='html'>&lt;p&gt;&amp;nbsp;To update JIRA issue from Excel Macro follow these steps.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. Create a webhook automation&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjuBxJDzuccMgyULZQjqrPdT6nAJoWnvDLt7nNr2kn6VYEs7irBKKcIdZXEHbQnExpTqeNHXbNOyMakzTmMdxoqorRYHZmDeS7A0GIij4ZbDCbEVdRpdAzjE3m2q3q5oUVcUU6l-VQraty9XJU-ChKsQgyb67zv-bzcIGDwCwPRvkyXxD_au7XzSA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;695&quot; data-original-width=&quot;835&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjuBxJDzuccMgyULZQjqrPdT6nAJoWnvDLt7nNr2kn6VYEs7irBKKcIdZXEHbQnExpTqeNHXbNOyMakzTmMdxoqorRYHZmDeS7A0GIij4ZbDCbEVdRpdAzjE3m2q3q5oUVcUU6l-VQraty9XJU-ChKsQgyb67zv-bzcIGDwCwPRvkyXxD_au7XzSA=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhHR7BhQU7xSJ6I2B7cp3khNf3hVgEcTOVJ66LAnGkAH1j1vORzRhU6RFyiBY_RFaILUUsQ1LBK5VS5ZQfSGUrM5TY3oBsKqWYMqNCDwR_7T74_x5ZdjtYeGwxwaWSPc56YprZurNwwNSQGQbvB57wvbaVSRcJh9XAijOPK0bBvkclS9yeB92MbMg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;352&quot; data-original-width=&quot;326&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhHR7BhQU7xSJ6I2B7cp3khNf3hVgEcTOVJ66LAnGkAH1j1vORzRhU6RFyiBY_RFaILUUsQ1LBK5VS5ZQfSGUrM5TY3oBsKqWYMqNCDwR_7T74_x5ZdjtYeGwxwaWSPc56YprZurNwwNSQGQbvB57wvbaVSRcJh9XAijOPK0bBvkclS9yeB92MbMg&quot; width=&quot;222&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;2. Create a MAcro in Excel to update&lt;/p&gt;&lt;p&gt;&#39;macro to upload data back into Jira&lt;/p&gt;&lt;p&gt;Sub updateJIRAFunc(Key As String)&lt;/p&gt;&lt;p&gt;On Error GoTo eh&lt;/p&gt;&lt;p&gt;&amp;nbsp; Dim objHTTP As Object&lt;/p&gt;&lt;p&gt;&amp;nbsp; &#39;Json = &quot;{&amp;nbsp; &amp;nbsp; &quot;&quot;key&quot;&quot;: &quot;&quot;SCP-1409&quot;&quot;,&amp;nbsp; &amp;nbsp; &quot;&quot;duedate&quot;&quot; : &quot;&quot;2018-03-03&quot;&quot;}&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim Json As String&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Json = &quot;{&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Json = Json &amp;amp; &quot;&quot;&quot;key&quot;&quot;: &quot;&quot;&quot; &amp;amp; Key &amp;amp; &quot;&quot;&quot;&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Json = Json &amp;amp; &quot;}&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &#39;MsgBox (Json)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim result As String&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Set objHTTP = CreateObject(&quot;MSXML2.ServerXMLHTTP&quot;)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim Url As String&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Url = &quot;https://automation.atlassian.com/pro/hooks/3b5d3807&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; If Left(Key, 3) = &quot;SCP&quot; Then&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Url = &quot;https://automation.atlassian.com/pro/hooks/b786e191d456544dc2239ba7b3b&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End If&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; objHTTP.Open &quot;POST&quot;, Url, False&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;objHTTP.setRequestHeader &quot;Content-type&quot;, &quot;application/json&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39;objHTTP.setRequestHeader &quot;apikey&quot;, &quot;&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;objHTTP.send (Json)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;result = objHTTP.responseText&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39;Some simple debugging&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39; Set the worksheet&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Range(&quot;I3&quot;).Value&amp;nbsp;= result&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;Set objHTTP = Nothing&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;Exit Sub&lt;/p&gt;&lt;p&gt;eh:&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Range(&quot;I3&quot;).Value = Err.Description&lt;/p&gt;&lt;p&gt;End Sub&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Step3. Run that in a for loop on click of a button&lt;/p&gt;&lt;p&gt;Sub Button1_Click()&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&#39;updateJIRAFunc (&quot;OM-24545&quot;)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Dim ws As Worksheet&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;Dim lastRow As Long&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;Dim i As Long&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39; Set the worksheet&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;Set ws = ThisWorkbook.Sheets(&quot;Sheet1&quot;) &#39; Change to the sheet&#39;s name&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39; Find the last row with data in the first column&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;lastRow = ws.Cells(ws.Rows.Count, &quot;A&quot;).End(xlUp).Row&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39;Application.ActiveWorkbook.Worksheets(&quot;exportDataToJira&quot;).Range(&quot;F3:F7&quot;) = Format(Date, &quot;yyyy-mm-dd&quot;)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39;Application.ActiveWorkbook.Worksheets(&quot;exportDataToJira&quot;).Range(&quot;F3:F7&quot;).NumberFormat = &quot;yyyy-mm-dd&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39;Range(&quot;F3:F7&quot;).NumberFormat = &quot;yyyy\-mm\-dd&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39; Loop through the rows&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;For i = 4 To lastRow &#39; Assuming data starts from row 2&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&#39; Get inputs from columns&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dim jiraKey As String&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jiraKey = ws.Cells(i, 1).Value &#39; Jira Key is in column A&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;newDueDate = Replace(ws.Cells(i, 6).Value, &quot;/&quot;, &quot;-&quot;)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Call updateJIRAFunc(jiraKey, i)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ws.Cells(i, 4).Value = &quot;1&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Next i&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;End Sub&lt;/p&gt;&lt;p&gt;Written By&lt;/p&gt;&lt;p&gt;-Vinod Kotiya&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/1053700220820282735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/1053700220820282735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/1053700220820282735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/1053700220820282735'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/11/update-jira-endpoints-from-excel-macro.html' title='Update JIRA endpoints from Excel Macro using REST API calls'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjuBxJDzuccMgyULZQjqrPdT6nAJoWnvDLt7nNr2kn6VYEs7irBKKcIdZXEHbQnExpTqeNHXbNOyMakzTmMdxoqorRYHZmDeS7A0GIij4ZbDCbEVdRpdAzjE3m2q3q5oUVcUU6l-VQraty9XJU-ChKsQgyb67zv-bzcIGDwCwPRvkyXxD_au7XzSA=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-7247550770097757113</id><published>2023-09-14T13:46:00.002-07:00</published><updated>2023-09-14T13:46:43.400-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Excel"/><category scheme="http://www.blogger.com/atom/ns#" term="Macro"/><category scheme="http://www.blogger.com/atom/ns#" term="Repeat row"/><category scheme="http://www.blogger.com/atom/ns#" term="Transpose"/><title type='text'>Restructure Excel Data like Pivot using Macro: Repeat the row for each column value</title><content type='html'>&lt;p&gt;&amp;nbsp;In Excel here is the Sorce Table&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjYCP_IKTiC6V1Xo1j5xO7SHZxkxl2pQ-XvUEc7Ix1Vh05ISXgqf0s5u92mdfLV80T4-GLwwlVW_TevJYN7Wv4A7Iu-gGFbsUw2VXXIb9kU1hITWqkA2iU7iIAcZ4xH6aNPEahVIiWlQLQJtdSnI8tHVsnXHRkwBKngDncbQkVBuoUWqdlqwmCc9A&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;146&quot; data-original-width=&quot;385&quot; height=&quot;121&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjYCP_IKTiC6V1Xo1j5xO7SHZxkxl2pQ-XvUEc7Ix1Vh05ISXgqf0s5u92mdfLV80T4-GLwwlVW_TevJYN7Wv4A7Iu-gGFbsUw2VXXIb9kU1hITWqkA2iU7iIAcZ4xH6aNPEahVIiWlQLQJtdSnI8tHVsnXHRkwBKngDncbQkVBuoUWqdlqwmCc9A&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And if you want to get data in this format&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjJM5_9xGAaw_vSeCGgKcLgKMoxkh3nAflHIFYq4Xicwi8F9EgW0G8X6JMH5xhCZQhSbtSh7uvGIBW4WPB5pqMH1kOxwvhbXTckzHPogl_tcCMoaU6kHzKX2KgprRX2UiJDk8AT0o1_qQw5atBtUCxwiSe27kNgW4yU-y_L0zzzTye9bEyFtGLXxw&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;349&quot; data-original-width=&quot;193&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjJM5_9xGAaw_vSeCGgKcLgKMoxkh3nAflHIFYq4Xicwi8F9EgW0G8X6JMH5xhCZQhSbtSh7uvGIBW4WPB5pqMH1kOxwvhbXTckzHPogl_tcCMoaU6kHzKX2KgprRX2UiJDk8AT0o1_qQw5atBtUCxwiSe27kNgW4yU-y_L0zzzTye9bEyFtGLXxw&quot; width=&quot;133&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Use the following MAcro &amp;gt; Developer &amp;gt; Visual Basic &amp;gt; Insert Module&lt;/p&gt;&lt;p&gt;Sub RestructureData()&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim ws As Worksheet&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim LastRow As Long&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim DestRange As Range&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim Col1Cell As Range&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim DestRow As Long&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &#39; Define the worksheet containing the source data&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Set ws = ThisWorkbook.Sheets(&quot;Sheet1&quot;) &#39; Change &quot;Sheet1&quot; to your sheet name&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &#39; Clear any existing data in columns F and G&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; ws.Range(&quot;F:G&quot;).Clear&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &#39; Set the initial row for the destination data&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; DestRow = 2&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &#39; Find the last row in column A with data&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; LastRow = ws.Cells(ws.Rows.Count, &quot;A&quot;).End(xlUp).Row&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &#39; Loop through each row in the source data&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; For Each Col1Cell In ws.Range(&quot;A2:A&quot; &amp;amp; LastRow)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39; Get the value from Col1 (M1, M2, M3)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim Col1Value As String&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Col1Value = Col1Cell.Value&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39; Loop through columns B, C, and D (Col2, Col3, Col4)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; For i = 2 To 4&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39; Get the value from Col2, Col3, or Col4&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim ColValue As Variant&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ColValue = Col1Cell.Offset(0, i - 1).Value&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39; Check if the value is not empty&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; If ColValue &amp;lt;&amp;gt; &quot;&quot; Then&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39; Write Col1Value and ColValue to the destination columns&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ws.Cells(DestRow, &quot;F&quot;).Value = Col1Value&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ws.Cells(DestRow, &quot;G&quot;).Value = ColValue&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39; Increment the destination row&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DestRow = DestRow + 1&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End If&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Next i&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Next Col1Cell&lt;/p&gt;&lt;p&gt;End Sub&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/7247550770097757113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/7247550770097757113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/7247550770097757113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/7247550770097757113'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/09/restructure-excel-data-like-pivot-using.html' title='Restructure Excel Data like Pivot using Macro: Repeat the row for each column value'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjYCP_IKTiC6V1Xo1j5xO7SHZxkxl2pQ-XvUEc7Ix1Vh05ISXgqf0s5u92mdfLV80T4-GLwwlVW_TevJYN7Wv4A7Iu-gGFbsUw2VXXIb9kU1hITWqkA2iU7iIAcZ4xH6aNPEahVIiWlQLQJtdSnI8tHVsnXHRkwBKngDncbQkVBuoUWqdlqwmCc9A=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-2220262059585998634</id><published>2023-09-10T20:19:00.001-07:00</published><updated>2023-09-10T20:19:05.329-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="coding example"/><category scheme="http://www.blogger.com/atom/ns#" term="coding for kids"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="python for kids"/><title type='text'>Python or just coding exercises for kids</title><content type='html'>&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; compare numbers&lt;/p&gt;&lt;p&gt;Ask the user to enter two numbers and tell us which one is bigger.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt;&amp;nbsp; Python Program to Display the Multiplication Table of any number entered.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Print the last digit of any number entered. (2 methods)&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Write a program to check whether an years is leap year or not.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Write a program to accept a number from 1 to 12 and display name of the month and days in&lt;/p&gt;&lt;p&gt;that month like 1 for January and number of days 31 and so on&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Write a program to check whether a number entered is three digit number or not.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Write a program to check whether a person is eligible for voting or not.(voting age &amp;gt; = 18)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;b&gt;Exercise:&lt;/b&gt;&amp;nbsp;Write a program to check whether a person is senior citizen or not.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Write a program to find the lowest number out of two numbers excepted from user.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Write a program to find the largest number out of two numbers excepted from user.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Write a program to check whether a number (accepted from user) is positive or negative.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Write a program to check whether a number is even or odd.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Rectangular&lt;/p&gt;&lt;p&gt;Write a script that will ask for the sides of a rectangular and print out the area.&lt;/p&gt;&lt;p&gt;Provide error messages if either of the sides is negative.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Calculator&lt;/p&gt;&lt;p&gt;Create a script that accepts 2 numbers and an operator (+, -, *, /), and prints the result of the&lt;/p&gt;&lt;p&gt;operation.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Number guessing game - level 0&lt;/p&gt;&lt;p&gt;Level 0&lt;/p&gt;&lt;p&gt;Using the random module the computer “thinks” about a whole number between 1 and 20.&lt;/p&gt;&lt;p&gt;The user has to guess the number. After the user types in the guess the computer tells if this was&lt;/p&gt;&lt;p&gt;bigger or smaller than the number it generated, or if was the same.&lt;/p&gt;&lt;p&gt;The game ends after just one guess&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Fruit salad&lt;/p&gt;&lt;p&gt;Write a script that will pick 3 fruits from a list of fruits like the one we had in one of the earlier&lt;/p&gt;&lt;p&gt;slides. Print the 3 names.&lt;/p&gt;&lt;p&gt;Could you make sure the 3 fruits are different?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; compare strings&lt;/p&gt;&lt;p&gt;Ask the user to enter two strings&lt;/p&gt;&lt;p&gt;Then ask the user to select if she wants to compare them based on ASCII or based on their length&lt;/p&gt;&lt;p&gt;Then tell us which one is bigger.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; one string in another string&lt;/p&gt;&lt;p&gt;Write script that accepts two strings and tells if one of them can be found in the other and where?&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; to ASCII CLI&lt;/p&gt;&lt;p&gt;Write script that gets a character on the command line and prints out the ascii code of it.&lt;/p&gt;&lt;p&gt;Maybe even:&lt;/p&gt;&lt;p&gt;Write script that gets a string on the command line and prints out the ascii code of each character.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; from ASCII CLI&lt;/p&gt;&lt;p&gt;Write script that accepts a number on the command line and prints the character represented by that&lt;/p&gt;&lt;p&gt;number.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Print all the locations in a string&lt;/p&gt;&lt;p&gt;Given a string like “The black cat climbed the green tree.”, print out the location of every “c” charcater&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Number guessing game&lt;/p&gt;&lt;p&gt;Level 0&lt;/p&gt;&lt;p&gt;Using the random module the computer “thinks” about a whole number between 1 and 20.&lt;/p&gt;&lt;p&gt;The user has to guess the number. After the user types in the guess the computer tells if this was&lt;/p&gt;&lt;p&gt;bigger or smaller than the number it generated, or if was the same.&lt;/p&gt;&lt;p&gt;The game ends after just one guess.&lt;/p&gt;&lt;p&gt;Level 1&lt;/p&gt;&lt;p&gt;The user can guess several times. The game ends when the user guessed the right number.&lt;/p&gt;&lt;p&gt;Level 2&lt;/p&gt;&lt;p&gt;If the user hits ‘x’, we leave the game without guessing the number.&lt;/p&gt;&lt;p&gt;Level 3&lt;/p&gt;&lt;p&gt;If the user presses ‘s’, show the hidden value (cheat)&lt;/p&gt;&lt;p&gt;Level 4&lt;/p&gt;&lt;p&gt;Soon we’ll have a level in which the hidden value changes after each guess. In oredr to make that&lt;/p&gt;&lt;p&gt;mode easier to track and debug, first we would like to have a “debug mode”.&lt;/p&gt;&lt;p&gt;If the user presses ‘d’ the game gets into “debug mode”: the system starts to show the current&lt;/p&gt;&lt;p&gt;number to guess every time, just before asking the user for new input.&lt;/p&gt;&lt;p&gt;Pressing ‘d’ again turns off debug mode. (It is a toggle each press on “d” changes the value to to the&lt;/p&gt;&lt;p&gt;other possible value.)&lt;/p&gt;&lt;p&gt;Level 5&lt;/p&gt;&lt;p&gt;The ‘m’ button is another toggle. It is called ‘move mode’. When it is ‘on’, the hidden number&lt;/p&gt;&lt;p&gt;changes a little bit after every step (+/-2). Pressing ‘m’ again will turn this feature off.&lt;/p&gt;&lt;p&gt;Level 6&lt;/p&gt;&lt;p&gt;Let the user play several games.&lt;/p&gt;&lt;p&gt;Pressing ‘n’ will skip this game and start a new one. Generates a new number to guess.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; MasterMind&lt;/p&gt;&lt;p&gt;Implement the MasterMind game.&lt;/p&gt;&lt;p&gt;The computer “thinks” a number with 4 different digits.&lt;/p&gt;&lt;p&gt;You guess which digits. For every digit that matched both&lt;/p&gt;&lt;p&gt;in value, and in location the computer gives you a *. For every&lt;/p&gt;&lt;p&gt;digit that matches in value, but not in space the computer gives&lt;/p&gt;&lt;p&gt;you a +. Try to guess the given number in as few guesses as possible.&lt;/p&gt;&lt;p&gt;1 Computer: 2153&lt;/p&gt;&lt;p&gt;2 You: 2467 *&lt;/p&gt;&lt;p&gt;3 You: 2715 *++&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Count unique characters&lt;/p&gt;&lt;p&gt;Given a string on the command line, count how many differnt characters it has&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Exercise:&lt;/b&gt; Check if number is prime&lt;/p&gt;&lt;p&gt;Write a program that gets a number on the commnad line a prints “True” if the number is a prime&lt;/p&gt;&lt;p&gt;number or “False” if it isn’t.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/2220262059585998634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/2220262059585998634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/2220262059585998634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/2220262059585998634'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/09/python-or-just-coding-exercises-for-kids.html' title='Python or just coding exercises for kids'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-3972049175483025466</id><published>2023-07-08T19:08:00.001-07:00</published><updated>2023-07-08T19:08:09.209-07:00</updated><title type='text'>The Power of Open Source in the AI World</title><content type='html'>&lt;p&gt;&amp;nbsp;Welcome to Ekasmin Consulting Inc. newsletter. In this edition, we explore the significant progress that open source has made recently and why many people are hoping it becomes the preferred choice in the AI community.&lt;/p&gt;&lt;p&gt;Open source has witnessed remarkable advancements that have caught the attention of various stakeholders. Here are some simple reasons why many people support open source models:&lt;/p&gt;&lt;p&gt;1. Developers who prefer not to rely solely on large corporations for their AI solutions.&lt;/p&gt;&lt;p&gt;2. Venture capitalists and AI infrastructure startups that benefit from a diverse range of AI models.&lt;/p&gt;&lt;p&gt;3. Founders and researchers who want to play a more prominent role in shaping the AI landscape.&lt;/p&gt;&lt;p&gt;4. Big tech companies without their own dominant platforms, who want to level the playing field in infrastructure spending.&lt;/p&gt;&lt;p&gt;5. Individuals who desire products that are free from governance or control, regardless of their intentions.&lt;/p&gt;&lt;p&gt;6. Advocates for politically unbiased AI products.&lt;/p&gt;&lt;p&gt;While there is strong demand for open source models, it remains uncertain if they will become the ultimate winners. It&#39;s important to approach discussions about open source software with respect, as it holds a special status within the community.&lt;/p&gt;&lt;p&gt;That being said, open source models make sense in specific situations:&lt;/p&gt;&lt;p&gt;1. Larger enterprises, driven by the desire for control and data privacy, may find on-premises open source models valuable. For example, in data warehousing, some companies prefer Databricks over Snowflake due to its data interoperability and flexibility.&lt;/p&gt;&lt;p&gt;2. Certain applications prioritize local processing speed over model quality, such as real-time speech-to-text. These applications can utilize open-source models locally to balance speed with accuracy.&lt;/p&gt;&lt;figure data-align=&quot;center&quot; data-alt=&quot;&quot; data-caption-align=&quot;center&quot; data-caption-url=&quot;&quot; data-id=&quot;a8df4ae6-4d0f-48a7-91c2-1bad923409ea&quot; data-src=&quot;https://beehiiv-images-production.s3.amazonaws.com/uploads/asset/file/a8df4ae6-4d0f-48a7-91c2-1bad923409ea/image.png&quot; data-title=&quot;&quot; data-type=&quot;imageBlock&quot; data-url=&quot;&quot; data-width=&quot;100%&quot;&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;However, when it comes to consumer-facing LLM apps and SaaS products, closed-source, well-maintained, and integrated solutions generally offer higher quality. Open source models are still catching up in terms of performance compared to cutting-edge closed-source models. As expectations for LLM reliability, robustness, and flexibility increase, it is expected that open source models will play a smaller role and capture less value in the market.&lt;/p&gt;&lt;p&gt;The evolution of open source in the AI world presents exciting opportunities and challenges. At Ekasmin.com, we remain committed to staying at the forefront of these developments and helping businesses navigate the ever-changing AI landscape.&lt;/p&gt;&lt;p&gt;Thank you for your continued support and engagement!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h1&gt;&lt;a class=&quot;d-inline-block mb-3 link&quot; href=&quot;https://www.ekasmin.com/index.html&quot; rel=&quot;noopener noreferrer nofollow&quot; target=&quot;_blank&quot;&gt;Ekasmin&lt;span style=&quot;color: #1363c6;&quot;&gt;.&lt;/span&gt;com&lt;/a&gt;&lt;/h1&gt;&lt;p class=&quot;mb-0&quot;&gt;We love to Digitalize organizations.&lt;/p&gt;&lt;h5&gt;Get In Touch&lt;/h5&gt;&lt;p&gt;Vancouver, Canada&lt;/p&gt;&lt;p&gt;+1-77-865-24-924&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;link&quot; href=&quot;mailto:hello@Ekasmin.com&quot; rel=&quot;noopener noreferrer nofollow&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;hello@Ekasmin.com&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/3972049175483025466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/3972049175483025466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/3972049175483025466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/3972049175483025466'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/07/the-power-of-open-source-in-ai-world.html' title='The Power of Open Source in the AI World'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-752601452707353608</id><published>2023-07-08T19:07:00.002-07:00</published><updated>2023-07-08T19:07:06.828-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI Business"/><category scheme="http://www.blogger.com/atom/ns#" term="AI Keywords"/><category scheme="http://www.blogger.com/atom/ns#" term="AI SEO"/><category scheme="http://www.blogger.com/atom/ns#" term="SEO dead"/><title type='text'>Is SEO dead with generative AI search?</title><content type='html'>&lt;p&gt;&amp;nbsp;Future of Search Engine Optimization and SEO Agencies. A Shift from Keywords to Content Quality.&lt;/p&gt;&lt;p data-pm-slice=&quot;1 1 []&quot;&gt;&lt;em&gt;Newsletter by &lt;/em&gt;&lt;a class=&quot;link&quot; href=&quot;http://Ekasmin.com&quot; rel=&quot;noopener noreferrer nofollow&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Ekasmin.com&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Highlights from Google&#39;s IO Event: Unveiling the Accelerated AI Strategy&lt;/em&gt;&lt;/p&gt;&lt;p&gt;During Google&#39;s recent IO event, the tech giant showcased its accelerated AI strategy, incorporating artificial intelligence across all its products and services, including Google Search. This development has significant implications for businesses, as it has the potential to reshape the way we interact with search results.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Key Takeaways:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Traditional search results are being transformed by generative AI, providing users with comprehensive and accurate information in real-time.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Businesses relying heavily on search results may be greatly impacted by this shift.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Google AI Search offers users the ability to obtain desired information and clear instructions without sifting through numerous search results.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Adapting to the evolving landscape of AI-powered search is crucial for businesses reliant on Google search for visibility and traffic.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Focusing on creating high-quality content may become the key to gaining visibility on Google Search.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Microsoft&#39;s Bing search engine has also made significant progress in leveraging open AI technology.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Shopping-related searches have taken a leap forward, enabling users to receive tailored recommendations based on various factors.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Businesses dependent on search engine traffic must reassess their strategies and find alternative ways to maintain their online presence and generate organic traffic.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Google is a search engine and all it is bothered about is getting more search queries and clicks for ads. It doesn’t give a damn about how people get that information as long as they use Google. So in that respect they don’t give a damn about SEO specialists or SEO agencies. After all, it’s not down to Google to keep SEO specialist in a job. &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;The Future of SEO and Marketing (A Shift from Keywords to Content Quality.)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;As we move forward, the fundamentals of marketing will become more crucial than ever. Being a problem solver and a great marketer with a focus on SEO will be essential for success. The days of strictly being an &quot;SEO Specialist&quot; are gone.&lt;/p&gt;&lt;figure data-align=&quot;center&quot; data-alt=&quot;&quot; data-caption-align=&quot;center&quot; data-caption-url=&quot;&quot; data-id=&quot;84d265fc-3a30-4de8-bde8-c89e5da3526e&quot; data-src=&quot;https://beehiiv-images-production.s3.amazonaws.com/uploads/asset/file/84d265fc-3a30-4de8-bde8-c89e5da3526e/image.png&quot; data-title=&quot;&quot; data-type=&quot;imageBlock&quot; data-url=&quot;&quot; data-width=&quot;100%&quot;&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;Conclusion: Navigating the AI Revolution in Search &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Google&#39;s AI-powered search has the potential to revolutionize the way we access information. While it offers users a seamless and accurate search experience, businesses must be prepared to navigate the potential challenges associated with this transformation. Adapting to the changing landscape and finding innovative ways to remain competitive will be crucial.&lt;/p&gt;&lt;p&gt;Stay tuned for more updates on AI advancements for SEO in our next post. If you found this newsletter informative, please like and subscribe for future content.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Cheers!!&lt;/em&gt;&lt;/p&gt;&lt;h1&gt;&lt;a class=&quot;d-inline-block mb-3 link&quot; href=&quot;https://www.ekasmin.com/index.html&quot; rel=&quot;noopener noreferrer nofollow&quot; target=&quot;_blank&quot;&gt;Ekasmin&lt;span style=&quot;color: #1363c6;&quot;&gt;.&lt;/span&gt;com&lt;/a&gt;&lt;/h1&gt;&lt;p class=&quot;mb-0&quot;&gt;We love to Digitalize organizations&lt;/p&gt;&lt;h5&gt;Get In Touch&lt;/h5&gt;&lt;p&gt;Vancouver, Canada&lt;/p&gt;&lt;p&gt;+1-77-865-24-924&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;link&quot; href=&quot;mailto:hello@Ekasmin.com&quot; rel=&quot;noopener noreferrer nofollow&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;hello@Ekasmin.com&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/752601452707353608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/752601452707353608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/752601452707353608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/752601452707353608'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/07/is-seo-dead-with-generative-ai-search.html' title='Is SEO dead with generative AI search?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-9012469375603139347</id><published>2023-07-08T19:05:00.003-07:00</published><updated>2023-07-08T19:05:31.244-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#OpenAI #ChatGPT #AIforEnterprise #AIBusinessSolutions"/><title type='text'>AI Use Case: Training Models with HR Policies for Enhanced Efficiency and Data Privacy</title><content type='html'>&lt;p&gt;Welcome to the latest edition of our newsletter, where we explore exciting applications of AI in the business world. In this issue, we delve into the use of AI models in training and addressing data privacy concerns within organizations.&lt;/p&gt;&lt;p&gt;AI has revolutionized various industries, and one compelling use case is training language models like the LLM (Language Model) on vast amounts of data, such as HR policies. Imagine feeding a 500-page HR Policy to an AI model and utilizing its capabilities to answer questions and provide valuable insights.&lt;/p&gt;&lt;p&gt;Recently, we conducted an experiment with a non-OpenAI model, training it on just one page of an HR Policy for interviews. Surprisingly, the model demonstrated promising results, showcasing its potential to streamline HR processes and improve efficiency. By leveraging AI, organizations can benefit from automated responses, accurate information retrieval, and enhanced decision-making.&lt;/p&gt;&lt;p&gt;Moreover, one significant advantage of such models is their ability to address data privacy concerns. Enterprises often deal with sensitive employee information, and utilizing an AI model trained on internal policies can help maintain confidentiality and compliance. By keeping data within the organization&#39;s boundaries, potential privacy risks can be mitigated.&lt;/p&gt;&lt;p&gt;Now, let&#39;s open the floor to discussion. We would like to hear your thoughts on whether you would prefer such a model over ChatGPT in your organization. Do you believe it could enhance your HR operations and data privacy measures? Share your valuable insights and experiences with us using the hashtags #OpenAI #ChatGPT #AIforEnterprise #AIBusinessSolutions.&lt;/p&gt;&lt;p&gt;We look forward to your contributions and engaging in fruitful conversations.&lt;/p&gt;&lt;p&gt;Wishing you continued success in your AI endeavors!&lt;/p&gt;&lt;p&gt;Best regards,&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;link&quot; href=&quot;https://www.Ekasmin.com&quot; rel=&quot;noopener noreferrer nofollow&quot; target=&quot;_blank&quot;&gt;https://www.Ekasmin.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/9012469375603139347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/9012469375603139347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/9012469375603139347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/9012469375603139347'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/07/ai-use-case-training-models-with-hr.html' title='AI Use Case: Training Models with HR Policies for Enhanced Efficiency and Data Privacy'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-1446469720922754006</id><published>2023-04-23T22:05:00.001-07:00</published><updated>2023-04-23T22:05:13.203-07:00</updated><title type='text'>Connect chatGPT with Azure Function</title><content type='html'>&lt;p&gt;&amp;nbsp;Assuming you have VSCode and Python running. Also active Azure subscription.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Create a Default Boilerplate function&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. Install Azure Functions Core Tools.&lt;/p&gt;&lt;p&gt;2. Install Azure Function Extension and do the login&lt;/p&gt;&lt;p&gt;3. Go to Azure extension and under Resources &amp;gt; Function App Right click to create a new azure function&amp;gt; give a name like &quot;vinGPTAPI&quot; &amp;gt; choose folder &amp;gt;&lt;/p&gt;&lt;p&gt;choose httptrigger and give a name like &quot;triggerGPT&quot;, &quot;Function&quot; access.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1H2c1kw20NvHTkSOHcOTDx8fBLQs-6A_dwwVVBYUu7aQ0zyqBtcct4iW9UN301piq6AMM-7i8i8ieaT8F273_zW2PU4pl99qMOSbWRsx9kkj-hYJnlF4ZlRDQuLMPVenyVPJyX9SdDzifLIOXPE7NjZmb_df4IlY4vzx_10Tka2-EXRf3Q-s/s870/Untitled.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;513&quot; data-original-width=&quot;870&quot; height=&quot;378&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1H2c1kw20NvHTkSOHcOTDx8fBLQs-6A_dwwVVBYUu7aQ0zyqBtcct4iW9UN301piq6AMM-7i8i8ieaT8F273_zW2PU4pl99qMOSbWRsx9kkj-hYJnlF4ZlRDQuLMPVenyVPJyX9SdDzifLIOXPE7NjZmb_df4IlY4vzx_10Tka2-EXRf3Q-s/w640-h378/Untitled.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;4. Above will create boilerplate or azure default files in explorer under vinGPTAPI folder&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;only 2 files, init.py and requirement.txt are important&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Now deploy the function in azure. Click deploy in workspace&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhme04p5U2v0KyEA7Fe_Pr58p_O_ndkGFm5G4D6zHbuYRAP8fmjojdwYugUCa473XuYcS45LjO-c2Rh-Oya98yy_8AgYS8Ahp_-iMlTnuOuZ34RUDR0HaEWdhlaVqNhIYg_8THztT84-yd35d0zZhtcL7-c1lW2Rr8mffaUELRjB4ryBy8si3s&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;462&quot; data-original-width=&quot;512&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhme04p5U2v0KyEA7Fe_Pr58p_O_ndkGFm5G4D6zHbuYRAP8fmjojdwYugUCa473XuYcS45LjO-c2Rh-Oya98yy_8AgYS8Ahp_-iMlTnuOuZ34RUDR0HaEWdhlaVqNhIYg_8THztT84-yd35d0zZhtcL7-c1lW2Rr8mffaUELRjB4ryBy8si3s&quot; width=&quot;266&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;choose your function name &quot;vinGPTAPI&quot; and other easy options like &quot;East US&quot; , resource group.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. Now expand your function as shown and right click to copy execution url.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhllhgE3gjQEP2a01tomvM10IVbFjbErN8KZx17qyWV5RxjuXFy1h10LbkhlTHrbpi8kZ8nZDHFxXa738B89npSE9GllT-5W4srWtY1KmeGUTtC0b95gdLQw6bbHOl5iT_IuOkznaH6cGyD6HEu9lOqc0U6vH9bWPNUoWBBk2GemXeIaX3wWuM&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;352&quot; data-original-width=&quot;456&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhllhgE3gjQEP2a01tomvM10IVbFjbErN8KZx17qyWV5RxjuXFy1h10LbkhlTHrbpi8kZ8nZDHFxXa738B89npSE9GllT-5W4srWtY1KmeGUTtC0b95gdLQw6bbHOl5iT_IuOkznaH6cGyD6HEu9lOqc0U6vH9bWPNUoWBBk2GemXeIaX3wWuM&quot; width=&quot;311&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. Paste it into browser and hit enter to see results.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;INJECT CHATGPT code&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Your default azure function is working properly. Now we will inject the chatGPT API code&lt;/div&gt;&lt;div&gt;only 2 files, init.py and requirement.txt are important and we will edit both.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. In init.py add&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;openai&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;it will give error.&amp;nbsp;&lt;/div&gt;&lt;div&gt;2. so add openai in requirement.txt&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;azure-functions&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;openai&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3&amp;nbsp; use this code&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;logging&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;openai&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;azure&lt;/span&gt;.&lt;span style=&quot;color: #4ec9b0;&quot;&gt;functions&lt;/span&gt; &lt;span style=&quot;color: #c586c0;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;func&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #dcdcaa;&quot;&gt;main&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;req&lt;/span&gt;: &lt;span style=&quot;color: #4ec9b0;&quot;&gt;func&lt;/span&gt;.&lt;span style=&quot;color: #4ec9b0;&quot;&gt;HttpRequest&lt;/span&gt;) -&amp;gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;func&lt;/span&gt;.&lt;span style=&quot;color: #4ec9b0;&quot;&gt;HttpResponse&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;logging&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;info&lt;/span&gt;(&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;Python HTTP trigger function processed a request.&#39;&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #6a9955;&quot;&gt;#get params from http requesrt&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;prompt&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;req&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;params&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;prompt&#39;&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;prompt&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;try&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;req_body&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;req&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;get_json&lt;/span&gt;()&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;except&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;ValueError&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;pass&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;else&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;prompt&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;req_body&lt;/span&gt;.get(&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;prompt&#39;&lt;/span&gt;)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;prompt&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;secret_key&lt;/span&gt; = &lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;sk-2s1QbkZp4qgPsssdcsHxkgcOsyBT3BlbkFJBQp85bgeYsi6JxxFItVP&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;openai&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;api_key&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;secret_key&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #6a9955;&quot;&gt;# call caht GPT API&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;response&lt;/span&gt; = &lt;span style=&quot;color: #4ec9b0;&quot;&gt;openai&lt;/span&gt;.&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Completion&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;create&lt;/span&gt;(&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;model&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;text-davinci-003&#39;&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;prompt&lt;/span&gt;=&lt;span style=&quot;color: #9cdcfe;&quot;&gt;prompt&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;temperature&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;0.9&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;max_tokens&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;256&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;top_p&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;1&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;frequency_penalty&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;presence_penalty&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #6a9955;&quot;&gt;#format the response&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;answer&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;response&lt;/span&gt;[&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;choices&#39;&lt;/span&gt;][&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;][&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;text&#39;&lt;/span&gt;]&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;func&lt;/span&gt;.&lt;span style=&quot;color: #4ec9b0;&quot;&gt;HttpResponse&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;Your answer, &lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;answer&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;. &quot;&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;else&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;func&lt;/span&gt;.&lt;span style=&quot;color: #4ec9b0;&quot;&gt;HttpResponse&lt;/span&gt;(&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;This HTTP triggered function executed successfully. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;Pass a name in the query string or in the request body for a personalized response.&quot;&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;status_code&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;200&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;4. Deploy the code again&lt;br /&gt;&lt;br /&gt;5. use url and pass the prompt = &quot;any question for gpt&quot; as parameter&lt;br /&gt;-&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Written By&lt;/p&gt;&lt;p&gt;Vinod Kotiya&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/1446469720922754006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/1446469720922754006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/1446469720922754006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/1446469720922754006'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/04/connect-chatgpt-with-azure-function.html' title='Connect chatGPT with Azure Function'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1H2c1kw20NvHTkSOHcOTDx8fBLQs-6A_dwwVVBYUu7aQ0zyqBtcct4iW9UN301piq6AMM-7i8i8ieaT8F273_zW2PU4pl99qMOSbWRsx9kkj-hYJnlF4ZlRDQuLMPVenyVPJyX9SdDzifLIOXPE7NjZmb_df4IlY4vzx_10Tka2-EXRf3Q-s/s72-w640-h378-c/Untitled.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-2238839969464355787</id><published>2023-04-23T16:12:00.000-07:00</published><updated>2023-04-23T16:12:17.848-07:00</updated><title type='text'>Simple steps to connect chatGPT using openAPI key for python</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Assuming you have python in VScode running.&lt;/p&gt;&lt;p&gt;1. Install openAPI&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&amp;gt; pip install openai&lt;/div&gt;&lt;p&gt;2. Get you openAPI key from personal &amp;gt; View API Key and create a new API Key&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. use it in test.py file as follows.&lt;/p&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;secret&lt;/span&gt; = &lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;sk-21QbkZp4qgPHxkgsdscOsyBT3BlbkFJBQp85bgeYsi6JxxFItVP&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;query&lt;/span&gt; = &lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;who is vinod kotiya&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: #4ec9b0;&quot;&gt;openai&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;openai&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;api_key&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;secret&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;response&lt;/span&gt; = &lt;span style=&quot;color: #4ec9b0;&quot;&gt;openai&lt;/span&gt;.&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Completion&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;create&lt;/span&gt;(&lt;/div&gt;&lt;div&gt;&amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;model&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;text-davinci-003&quot;&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;prompt&lt;/span&gt;=&lt;span style=&quot;color: #9cdcfe;&quot;&gt;query&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;temperature&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;0.7&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;max_tokens&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;256&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;top_p&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;1&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;frequency_penalty&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;presence_penalty&lt;/span&gt;=&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;print&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;response&lt;/span&gt;)&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/2238839969464355787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/2238839969464355787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/2238839969464355787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/2238839969464355787'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/04/simple-steps-to-connect-chatgpt-using.html' title='Simple steps to connect chatGPT using openAPI key for python'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-3940063994595048426</id><published>2023-04-23T14:28:00.001-07:00</published><updated>2023-04-23T14:28:56.566-07:00</updated><title type='text'>Create your own personal ChatGPT using GPT4All laura model</title><content type='html'>&lt;p&gt;&lt;b&gt;Option1&lt;/b&gt;: Download and Install GIT&lt;/p&gt;&lt;p&gt;Create a folder GPT4All&lt;/p&gt;&lt;p&gt;Open GIT Bash and run these commands&lt;/p&gt;&lt;p&gt;$ git init&lt;/p&gt;&lt;div&gt;&lt;div&gt;$ git remote add origin https://github.com/nomic-ai/gpt4all.git&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;$ git pull origin master&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It will download the GIT repository.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Option2 &lt;/b&gt;(Easy one: Without GIT): Download the code in zip format from&amp;nbsp;https://github.com/nomic-ai/gpt4all&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now download the LLaMa Model which is 4GB.&amp;nbsp;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;Download the&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;border-radius: 6px; box-sizing: border-box; color: #1f2328; font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0.4em; white-space: break-spaces;&quot;&gt;gpt4all-lora-quantized.bin&lt;/code&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;file from&lt;/span&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://the-eye.eu/public/AI/models/nomic-ai/gpt4all/gpt4all-lora-quantized.bin&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-decoration-line: none;&quot;&gt;Direct Link&lt;/a&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;or&lt;/span&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://tinyurl.com/gpt4all-lora-quantized&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-decoration-line: none;&quot;&gt;[Torrent-Magnet]&lt;/a&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;Go to your GPT4All folder, navigate to&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;border-radius: 6px; box-sizing: border-box; color: #1f2328; font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0.4em; white-space: break-spaces;&quot;&gt;chat&lt;/code&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;, and place the downloaded file there.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;run the executable to get prompt interface.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;&quot; style=&quot;background-color: white; color: #1f2328; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/3940063994595048426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/3940063994595048426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/3940063994595048426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/3940063994595048426'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2023/04/create-your-own-personal-chatgpt-using.html' title='Create your own personal ChatGPT using GPT4All laura model'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-1877549612440109754</id><published>2022-12-29T12:13:00.003-08:00</published><updated>2022-12-29T12:13:48.151-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ekasmin Consulting"/><category scheme="http://www.blogger.com/atom/ns#" term="M365 setup"/><category scheme="http://www.blogger.com/atom/ns#" term="start business"/><category scheme="http://www.blogger.com/atom/ns#" term="startup consulting"/><category scheme="http://www.blogger.com/atom/ns#" term="vCIO"/><title type='text'>Getting started with M365 for your business</title><content type='html'>&lt;p&gt;&amp;nbsp;1. Register and subscribe for M365 service.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. Setup custom domain&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhaISl0U1hkJEJ4SGSofWfhueZIrG8TQPl3lsxiQJWKca6awpIlp51iKt4AiOaVpThNbqoVPdoqKMAKdbMiaWcYkBzbkqoLzT2B30wDCoCugO4Ck8dpICw2_o5zgL34XtumXhtsCLBIogvBw1d7b-9Z5Slr4XuKGdSxHilzOvBeYD3fjjgUD6g&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;516&quot; data-original-width=&quot;946&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhaISl0U1hkJEJ4SGSofWfhueZIrG8TQPl3lsxiQJWKca6awpIlp51iKt4AiOaVpThNbqoVPdoqKMAKdbMiaWcYkBzbkqoLzT2B30wDCoCugO4Ck8dpICw2_o5zgL34XtumXhtsCLBIogvBw1d7b-9Z5Slr4XuKGdSxHilzOvBeYD3fjjgUD6g=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;3.&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgUX4T1cKB-jkjSPATFFQxCt-v7dGKhWoTdL-MvQVKJ0fwdEz3WR7zq8er7cMrabeIXDmLr3otx08zM6_1qZjaXwfyGxnEiIIVm0YgB5TZQ2JBhssBZuZuoDit7fr9FhOtgV8SP5neV8etK14l2RIKfI9LA-3MxXgl3JoCQOH1GIZE7GzVllW0&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;330&quot; data-original-width=&quot;1060&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgUX4T1cKB-jkjSPATFFQxCt-v7dGKhWoTdL-MvQVKJ0fwdEz3WR7zq8er7cMrabeIXDmLr3otx08zM6_1qZjaXwfyGxnEiIIVm0YgB5TZQ2JBhssBZuZuoDit7fr9FhOtgV8SP5neV8etK14l2RIKfI9LA-3MxXgl3JoCQOH1GIZE7GzVllW0=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;4.&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg-GYwC6DnxVKzbvR4g28qvnMx_jQC3f5ysifETfY3mSt_rlXOwitjkg01KST_YB60qYBFBOehooKmTYVPIvCttJlPqmooKc-3C3iHy9cqaEeZRnt2W5HIHVRQv6skSd6KT9uRMMPba61roZs5Ee5-eyl9WU-BaDEKhttfhkdMmCWTT3bqeO1c&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;344&quot; data-original-width=&quot;876&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg-GYwC6DnxVKzbvR4g28qvnMx_jQC3f5ysifETfY3mSt_rlXOwitjkg01KST_YB60qYBFBOehooKmTYVPIvCttJlPqmooKc-3C3iHy9cqaEeZRnt2W5HIHVRQv6skSd6KT9uRMMPba61roZs5Ee5-eyl9WU-BaDEKhttfhkdMmCWTT3bqeO1c=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;5&amp;nbsp; verify it&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhrtqTpEtH63DfKqgQ0MXLKN9_J6u8u-YbwEAz7BI1JQrmoR2UlOC0yCeJORkBOAQoAghtHgMGXc0adaEX_IT6V39LWwB3F4YJgs4mVMNAsxQC-gtqtzzfClZ_WRawRaXbDh5RN0j4wbH25KsYUwIXrGp_pzP20akYzW2uFb_zcICuMxvRbyTY&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;403&quot; data-original-width=&quot;1072&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhrtqTpEtH63DfKqgQ0MXLKN9_J6u8u-YbwEAz7BI1JQrmoR2UlOC0yCeJORkBOAQoAghtHgMGXc0adaEX_IT6V39LWwB3F4YJgs4mVMNAsxQC-gtqtzzfClZ_WRawRaXbDh5RN0j4wbH25KsYUwIXrGp_pzP20akYzW2uFb_zcICuMxvRbyTY=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;6. set email&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgZ2hmKJV7GnJynMXYK9cD0XQFP7rdzqacYphSYvCSuN9fvsc1dg7-7M8YRktSuzTUfNMsMQY9Ms-MvuyCr6Zotg1hKlnSe4EXCCWLxqadNPXFZsmYnhBd7WfMaDQrUg3uAxSYED_L7FQjfF3wuioQGk83kZjlQN42-Z0ae-WmmObIn-oQL8Rk&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;440&quot; data-original-width=&quot;912&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgZ2hmKJV7GnJynMXYK9cD0XQFP7rdzqacYphSYvCSuN9fvsc1dg7-7M8YRktSuzTUfNMsMQY9Ms-MvuyCr6Zotg1hKlnSe4EXCCWLxqadNPXFZsmYnhBd7WfMaDQrUg3uAxSYED_L7FQjfF3wuioQGk83kZjlQN42-Z0ae-WmmObIn-oQL8Rk=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;7. Sign out and religion to connect DNS&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjjml2CXP-vYvR9K4-3Eltj71QnBd4cxuj_727mzsvC56jT2jSTApsH62ghkXV5Fcw6rex8ytLwRMs-Wd6-j9JjpPTnbd4cMxNsN_Fldoh4v_rHttEjsRNffvT5piR7v0Qohm4MUfD7d9TPuf01YRQskhnBWlTzPzqRpkLdusR1Va8dtHOZYv8&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;490&quot; data-original-width=&quot;1124&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjjml2CXP-vYvR9K4-3Eltj71QnBd4cxuj_727mzsvC56jT2jSTApsH62ghkXV5Fcw6rex8ytLwRMs-Wd6-j9JjpPTnbd4cMxNsN_Fldoh4v_rHttEjsRNffvT5piR7v0Qohm4MUfD7d9TPuf01YRQskhnBWlTzPzqRpkLdusR1Va8dtHOZYv8=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;8. Done&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiVjGzUMN7CMP1aTR2NlIpWXXQHbzh-eLkZrB_3V8xsBvRh1hyW1WxlwwxzWEB3VjXNFeZc-4wmcwSnktFSRHNVL9MxWvTk0x1_X9kgnB4ZBdcxoP80rTPu49HbOS7lfUI5Tujw5bZnBr7BTcfUH4ZMNJhoNEgVOqej2fLg1hi409kpQDM5g20&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;306&quot; data-original-width=&quot;910&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiVjGzUMN7CMP1aTR2NlIpWXXQHbzh-eLkZrB_3V8xsBvRh1hyW1WxlwwxzWEB3VjXNFeZc-4wmcwSnktFSRHNVL9MxWvTk0x1_X9kgnB4ZBdcxoP80rTPu49HbOS7lfUI5Tujw5bZnBr7BTcfUH4ZMNJhoNEgVOqej2fLg1hi409kpQDM5g20=s16000&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;written by:&lt;/div&gt;&lt;div&gt;Vinod Kotiya&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/1877549612440109754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/1877549612440109754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/1877549612440109754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/1877549612440109754'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2022/12/getting-started-with-m365-for-your.html' title='Getting started with M365 for your business'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhaISl0U1hkJEJ4SGSofWfhueZIrG8TQPl3lsxiQJWKca6awpIlp51iKt4AiOaVpThNbqoVPdoqKMAKdbMiaWcYkBzbkqoLzT2B30wDCoCugO4Ck8dpICw2_o5zgL34XtumXhtsCLBIogvBw1d7b-9Z5Slr4XuKGdSxHilzOvBeYD3fjjgUD6g=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-437275783420942975</id><published>2022-08-07T18:43:00.004-07:00</published><updated>2022-08-07T18:45:46.545-07:00</updated><title type='text'>Reflection OBHR</title><content type='html'>&lt;span id=&quot;docs-internal-guid-223a6f92-7fff-ace7-6dbe-ffffd7fd8ee3&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Calibri, sans-serif&quot; style=&quot;font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 39px; overflow: hidden; width: 345px;&quot;&gt;&lt;img height=&quot;39&quot; src=&quot;https://lh6.googleusercontent.com/ICnLzCLpT-gRuVya1h_6cTw3knt55loGmJXj01J7ZyKRZo32ABDNt8DuanW_PiVCOC76m3tsGEwF9aP4MSgyIF5S42suGW6_LJM93mQBqNJDZAmA55CuUqDPsAFK4EdNcutOxSRmxCiqk8zE50f5ZTo&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;345&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;&amp;quot;Work Sans&amp;quot;, sans-serif&quot; style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: center; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;&amp;quot;Work Sans&amp;quot;, sans-serif&quot; style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; text-align: center; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;                                                       Reflection Statement&lt;/span&gt;&lt;span face=&quot;&amp;quot;Work Sans&amp;quot;, sans-serif&quot; style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; text-align: center; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span id=&quot;docs-internal-guid-07bd0116-7fff-73e7-7806-9fc2885a18e7&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;&lt;span face=&quot;&amp;quot;Work Sans&amp;quot;, sans-serif&quot; style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Business Acumen for Technical Leaders :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;&lt;span face=&quot;&amp;quot;Work Sans&amp;quot;, sans-serif&quot; style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Organizational&amp;nbsp; Behavior&amp;nbsp; &amp;amp; Human Resource Management&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;&lt;span face=&quot;&amp;quot;Work Sans&amp;quot;, sans-serif&quot; style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Vinod Kotiya&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I would like to start with some important things which I learned in the class which is not only about Organizational Behavior but also Psychological Safety from &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Dr. Wayne Rawcliffe&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. I especially liked the comment that we understand the reality of the breakdown of the world. &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;We only see a piece as a construct and think pieces as whole&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. Reality is complex so we make abstract models. Another thing is don&#39;t teach everyone to speak but &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;create leaders to make an environment for others to be heard&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;We started with learning a high performance team which includes diversity, EQ, motivations and conflict. Teams are a social system and there are no rules to govern the outcome. Here we learned the concept of &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5 conditions&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;:&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;&quot;&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: decimal; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Real Team: Groups are not teams. Teams are responsible for goals &amp;amp; stable over time.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: decimal; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Compelling Direction: Objectives and demonstration from leaders to achieve the goals.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: decimal; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Enabling structure: Job clarity, motivation, authority and feedback is required.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: decimal; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Supportive context: Reward and recognition. Not always monetary.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li aria-level=&quot;1&quot; dir=&quot;ltr&quot; style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: decimal; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;p dir=&quot;ltr&quot; role=&quot;presentation&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Coaching: Motivation at start but consultative and reflective towards end.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;The new thing I learned was a topic: Psychology Safety and understood its importance. Normally all institutions and policies have stabilization factors and are very difficult to change. That&#39;s why change management comes into effect. Also&amp;nbsp; Rules are for fools and not for high performing teams. Equality in conversation is required along with good listening. There are many interdisciplinary issues which we learned with the &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;case study of Children&#39;s Hospital and Clinic&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I have reflected my own experience in this case study about the time in my career when I was empowered to speak up with the few factors which contributed for openness. These were Authority, Team formation, Making roadmap and policy formulation. With all such responsibilities I was comfortable to speak up about all the good ideas and issues comfortably.&amp;nbsp; The work environment when I was assigned the responsibilities out of my domain and expertise prevented me from speaking up. I realize that the task is not important and it will not be affected by my contribution or idea so it is worthless to put any impact. Therefore In my professional life I have to take utmost care to know what my colleagues are thinking and to improve the things within the team environment.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Later we did an amazing simulation where I got the role of a product manager for a newly launched device GlucoGauge of a company Matterhorn. This exercise helped me to understand the cognitive biases in decision making. Initially, I examined the background information and available evidence provided by SVP of Marketing, and determined that the problems associated with inaccurate readings using the monitor were due to consumers misusing the device in the field. &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Here I learned about confirmation bias which was polarization of views based on information.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I found the user manual not adequate and very generic in nature. Initial report shows that testers were educated and tech savvy therefore the user manual should not be a problem to them. This issue was confirmed with another report that says user confidence increases to use the device after verbal instruction. So this was the area I identified to work upon. So I decided to go with the management allocated budget for consumer training only and not for training the doctors. Since doctors are educated enough to use the device, there was no point in working in that area. When this exercise failed&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; I gave up to use further funds in this so I have not failed in the trap of sunk cost effect.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I was informed the Problem originated from a new strip supplied by the device. Microprocessor component was failing with the new strip but working fine with our old strip..I took immediate action and informed users to switch the brand of test strips. This caused financial impact including 400 employees layoff and here&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; I tried to avoid the framing bias with not much&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; emotionally affected to job loss thing..&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;When I was asked about the percentage of users&amp;nbsp; getting wrong readings because of mobile app syncing. I kept it way less to 30% compared to 65% data from one doctor which was provided to me &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;without falling into the trap of anchoring bias&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I also learned about status quo traps and overconfidence traps. I learned about some decision making tests to avoid mistakes like the publicity test, reversibility test which is putting myself at the receiving end of a decision. Generalizability test which is how it feels when someone else makes this decision for me. Also &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;ladder of inference&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; which is taking data and adding meaning to existing assumptions is required. &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Left hand tool&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; is good to know the things which only I know.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 12pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I also felt that using such techniques for decision making with a cost where time bound decisions can not be made for a project. Therefore I have to look for a proper balance based on the outcome in my professional life. I will work more upon cognitive bias traps and try to implement them in my decision making. I think this understanding will also be useful in my professional life. I am also working in a startup under e@UBC and I would like to apply these learnings on crucial decisions which I have to make for growth in a couple of months and setting up my team. Overall It was great learning in a short span of time.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 2.4; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 0pt 36pt; text-align: center; text-indent: -36pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 9pt; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;References&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 2.4; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 0pt 36pt; text-indent: -36pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 9pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;AMY EDMONDSON, MICHAEL A. ROBERTO, &amp;amp; ANITA TUCKER. (2001, January). &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 9pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Children&#39;s Hospital and Clinics&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 9pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. Harvard Business School Publishing.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 2.4; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 0pt 36pt; text-indent: -36pt;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 9pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Duhigg, C. (2016, February 25). &lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 9pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;What Google Learned From Its Quest to Build the Perfect Team (Published 2016)&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 9pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. The New York Times. Retrieved August 7, 2022, from https://www.nytimes.com/2016/02/28/magazine/what-google-learned-from-its-quest-to-build-the-perfect-team.html&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial; font-size: 9pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/437275783420942975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/437275783420942975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/437275783420942975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/437275783420942975'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2022/08/reflection-obhr.html' title='Reflection OBHR'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh6.googleusercontent.com/ICnLzCLpT-gRuVya1h_6cTw3knt55loGmJXj01J7ZyKRZo32ABDNt8DuanW_PiVCOC76m3tsGEwF9aP4MSgyIF5S42suGW6_LJM93mQBqNJDZAmA55CuUqDPsAFK4EdNcutOxSRmxCiqk8zE50f5ZTo=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-6378869547726669724</id><published>2022-06-07T12:12:00.002-07:00</published><updated>2022-06-07T12:12:49.944-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c"/><category scheme="http://www.blogger.com/atom/ns#" term="cmake"/><category scheme="http://www.blogger.com/atom/ns#" term="llcm compiler"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm easy steps"/><category scheme="http://www.blogger.com/atom/ns#" term="llvm simplified"/><category scheme="http://www.blogger.com/atom/ns#" term="ninja"/><title type='text'>LLVM Running your first pass simplified. </title><content type='html'>&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;After so much of struggle of many hours finally I found some step guide which can be useful for writing the pass successfully. I hope it will save your time. Dont know why no one make this simple for novice. I assume your llvm build environment is ready and installed with llvm, cmake and ninja. I dont want to mix it up here to make this more complex. &lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step1&lt;/span&gt;: Create a directory to host your LLVM pass&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;mkdir ~&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/llvm-project/&lt;/span&gt;llvm&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/lib/&lt;/span&gt;Transforms/test
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step2&lt;/span&gt;: Update the CMake file in the Transforms directory&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;~/llvm/llvm/lib/Transforms/CMakeLists.txt&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;vim &lt;span class=&quot;hljs-module-access&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-module&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-identifier&quot; style=&quot;box-sizing: border-box;&quot;&gt;CMakeLists&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;txt 
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;Add this line
add_subdirectory(test)&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;Now goto your folder test&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;&lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Now we will work inside test folder.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step3&lt;/span&gt; Create a CMake file for your LLVM pass&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;vim &lt;span class=&quot;hljs-module-access&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-module&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-identifier&quot; style=&quot;box-sizing: border-box;&quot;&gt;CMakeLists&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;txt
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;Add the following to the CMakeLists.txt file&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;add_llvm_library(LLVMtest MODULE
test.cpp&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;PLUGIN_TOOL
opt
)&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;**Step4 **create CPP file for your LLVM pass&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;vim &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;test&lt;/span&gt;.cpp
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;with following code&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;&lt;span class=&quot;hljs-meta&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;#&lt;span class=&quot;hljs-meta-keyword&quot; style=&quot;box-sizing: border-box;&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;hljs-meta-string&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;llvm/Pass.h&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;hljs-meta&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;#&lt;span class=&quot;hljs-meta-keyword&quot; style=&quot;box-sizing: border-box;&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;hljs-meta-string&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;llvm/IR/Function.h&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;hljs-meta&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;#&lt;span class=&quot;hljs-meta-keyword&quot; style=&quot;box-sizing: border-box;&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;hljs-meta-string&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;llvm/Support/raw_ostream.h&quot;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;hljs-meta&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;#&lt;span class=&quot;hljs-meta-keyword&quot; style=&quot;box-sizing: border-box;&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;hljs-meta-string&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;llvm/IR/LegacyPassManager.h&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;hljs-meta&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;#&lt;span class=&quot;hljs-meta-keyword&quot; style=&quot;box-sizing: border-box;&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;hljs-meta-string&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;llvm/Transforms/IPO/PassManagerBuilder.h&quot;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;namespace&lt;/span&gt; llvm;

&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;namespace&lt;/span&gt; {
&lt;span class=&quot;hljs-class&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: border-box; color: #6f42c1;&quot;&gt;test&lt;/span&gt; :&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;public&lt;/span&gt; FunctionPass {
  &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;char&lt;/span&gt; ID;
  &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;test&lt;/span&gt;() : &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;FunctionPass&lt;/span&gt;(ID) {}

  &lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;bool&lt;/span&gt; &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: border-box; color: #6f42c1;&quot;&gt;runOnFunction&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: border-box;&quot;&gt;(Function &amp;amp;F)&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;override&lt;/span&gt; &lt;/span&gt;{
    &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;errs&lt;/span&gt;() &amp;lt;&amp;lt; &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: rgb(0, 157, 168) !important;&quot;&gt;&quot;Hello: &quot;&lt;/span&gt;;
    &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;errs&lt;/span&gt;().&lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;write_escaped&lt;/span&gt;(F.&lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;getName&lt;/span&gt;()) &amp;lt;&amp;lt; &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: rgb(0, 157, 168) !important;&quot;&gt;&#39;\n&#39;&lt;/span&gt;;
    &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;hljs-literal&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;false&lt;/span&gt;;
  }
}; &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;// end of struct Hello&lt;/span&gt;
}  &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;// end of anonymous namespace&lt;/span&gt;

&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;char&lt;/span&gt; test::ID = &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;;
&lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;static&lt;/span&gt; RegisterPass&amp;lt;test&amp;gt; &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: border-box; color: #6f42c1;&quot;&gt;X&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: border-box;&quot;&gt;(&lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: rgb(0, 157, 168) !important;&quot;&gt;&quot;test&quot;&lt;/span&gt;, &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: rgb(0, 157, 168) !important;&quot;&gt;&quot;Hello World Pass&quot;&lt;/span&gt;,
                             &lt;span class=&quot;hljs-literal&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;/* Only looks at CFG */&lt;/span&gt;,
                             &lt;span class=&quot;hljs-literal&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #969896;&quot;&gt;/* Analysis Pass */&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;;

&lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;static&lt;/span&gt; RegisterStandardPasses &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: border-box; color: #6f42c1;&quot;&gt;Y&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: border-box;&quot;&gt;(
    PassManagerBuilder::EP_EarlyAsPossible,
    [](&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;const&lt;/span&gt; PassManagerBuilder &amp;amp;Builder,
       legacy::PassManagerBase &amp;amp;PM) { PM.add(&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;new&lt;/span&gt; test()); })&lt;/span&gt;&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step5&lt;/span&gt;: Generate the IR file
clang++ -O0 -g -S -emit-llvm -o test.ll -c test.cpp&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step6&lt;/span&gt;: Now we will move to build folder&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;cd ~&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/llvm-project/&lt;/span&gt;build
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;(There is some problem in CMakeCache.txt regarding user name. Find and replace cpen400 with cpen)&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;vim &lt;span class=&quot;hljs-module-access&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-module&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-identifier&quot; style=&quot;box-sizing: border-box;&quot;&gt;CMakeCache&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;txt
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;:s/cpen400/cpen/g
:wr and quit&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step7&lt;/span&gt;: Now run the cmake with path as .. will not work&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;~&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/llvm-project/&lt;/span&gt;build$ cmake ..&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/llvm/&lt;/span&gt;lib&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/Transforms/&lt;/span&gt;test
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step8&lt;/span&gt;: Now run Ninja&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;~&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/llvm-project/&lt;/span&gt;build&lt;span class=&quot;hljs-variable&quot; style=&quot;box-sizing: border-box; color: #df5000;&quot;&gt;$ninja&lt;/span&gt; -j4
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;Step9: Now it will build full llvm project in 2 hours. Wait for it and move to lib directory to check .so file.&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;cd&lt;/span&gt; lib
&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;ls&lt;/span&gt; -l
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step 10&lt;/span&gt;: Now to test this pass create a dummy program hello.c in your test directory:&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;&lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: border-box; color: #6f42c1;&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: border-box;&quot;&gt;()&lt;/span&gt;&lt;/span&gt;{
  &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;int&lt;/span&gt; c = &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;5&lt;/span&gt;;
}

&lt;span class=&quot;hljs-function&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;hljs-title&quot; style=&quot;box-sizing: border-box; color: #6f42c1;&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;hljs-params&quot; style=&quot;box-sizing: border-box;&quot;&gt;()&lt;/span&gt;
&lt;/span&gt;{
  &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;int&lt;/span&gt; d = &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;;
  &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box;&quot;&gt;a&lt;/span&gt;();
  &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;5&lt;/span&gt;;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step 11&lt;/span&gt;: Now create the IR file using&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;clang++ -O0 -g -S -emit-llvm -o &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;fun&lt;/span&gt;.ll -c &lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;fun&lt;/span&gt;.c
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: bolder;&quot;&gt;Step12&lt;/span&gt;:  Go back to ~/llvm-project/build directory and load the pass using &quot;opt&quot;&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;cd..
opt -enable-&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;new&lt;/span&gt;-pm=&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; -load lib&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/LLVMtest.so -test &amp;lt; ../&lt;/span&gt;llvm&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/lib/&lt;/span&gt;Transforms&lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/test/&lt;/span&gt;fun.ll &amp;gt; &lt;span class=&quot;hljs-regexp&quot; style=&quot;box-sizing: border-box;&quot;&gt;/dev/&lt;/span&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49;&quot;&gt;null&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;You may see output like&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;Hello:&lt;/span&gt; _Z1av&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;Hello:&lt;span style=&quot;color: inherit; font-size: inherit; white-space: normal;&quot;&gt;&amp;nbsp;main&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-variant-ligatures: normal; white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Written By&lt;/p&gt;&lt;p&gt;Vinod Kotiya&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/6378869547726669724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/6378869547726669724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/6378869547726669724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/6378869547726669724'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2022/06/llvm-running-your-first-pass-simplified.html' title='LLVM Running your first pass simplified. '/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-8195566802293966864</id><published>2022-06-06T09:43:00.004-07:00</published><updated>2022-06-06T09:43:40.421-07:00</updated><title type='text'>Create a Google cloud Instance from Ubuntu .ova virtual box file</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 26px; font-variant-ligatures: common-ligatures; line-height: 24px; margin: 0px 8px 0px 0px; overflow-wrap: break-word; word-break: break-word;&quot;&gt;Steps to create a GCC Instance from .ova file&lt;/h3&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; white-space: pre-wrap;&quot;&gt;&lt;b&gt;Step1&lt;/b&gt;: Use this command to upload the 9GB .ova file in a bucket. Its fast than browser.&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;gsutil cp &quot;C:&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;\U&lt;/span&gt;sers&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;\9&lt;/span&gt;1965&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;\D&lt;/span&gt;ownloads&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;\u&lt;/span&gt;buntu18_cpen.ova&quot; gs://ubuntuvof
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;b&gt;Step2&lt;/b&gt;: Go to Google cloud console. Open Compute Engine &amp;gt; Images and create a new image with source as virtual disk (VMDK,VHD) . It will ask for bucket path where .ova is stored.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;Image creation will take 40-50 Minutes.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;b&gt;Step3&lt;/b&gt;: Click on Image name and you will see a create instance button at top. Click on it and choose your compute engine configuration. Now your instance will be ready to be connected through ssh.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;(Optional) You may need to create ssh key on windows machine command prompt.&lt;/p&gt;&lt;pre style=&quot;background: rgba(120, 127, 133, 0.1); border-radius: 12px; border: none; box-sizing: border-box; color: #121212; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13.125px; font-variant-ligatures: common-ligatures; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 10px; word-break: break-all;&quot;&gt;&lt;code style=&quot;background: transparent; border-radius: 6px; box-sizing: border-box; color: inherit; font-family: SFMono-Regular, Menlo, Monaco, Consolas, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; overflow-wrap: break-word; padding: 0px; word-break: normal;&quot;&gt;ssh-keygen -t rsa -f C:&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;\U&lt;/span&gt;sers&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;\Y&lt;/span&gt;OUR USER NAME&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;\.&lt;/span&gt;ssh&lt;span class=&quot;hljs-symbol&quot; style=&quot;box-sizing: border-box; color: #0086b3;&quot;&gt;\i&lt;/span&gt;d_rsa.pub -C UBUNTU_USER_NAME -b 2048
&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;b&gt;Step4&lt;/b&gt;: Open putty and put external ip address to get connected on terminal.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;Written By:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;Vinod Kotiya&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; font-family: Roboto, sans-serif; font-size: 15px; font-variant-ligatures: common-ligatures; line-height: 1.67; margin: 0px 0px 16px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/8195566802293966864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/8195566802293966864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/8195566802293966864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/8195566802293966864'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2022/06/create-google-cloud-instance-from.html' title='Create a Google cloud Instance from Ubuntu .ova virtual box file'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-6564918006642059373</id><published>2022-02-28T19:36:00.001-08:00</published><updated>2022-02-28T19:36:29.205-08:00</updated><title type='text'>Bash Script to Run multiple jar simultaneously on Ubuntu</title><content type='html'>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I used the following script to run multiple nodes on single instances. Basically, this script runs the same jar file using for loop on a different port as a parameter.&lt;/p&gt;
&lt;p&gt;The below code loop through port number 8001 to 8020&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;&lt;pre&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;&lt;span class=&quot;hljs-meta&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;hljs-built_in&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;hljs-string&quot;&gt;&quot;welcome&quot;&lt;/span&gt;
ls
&lt;span class=&quot;hljs-built_in&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;hljs-string&quot;&gt;&quot;this is the whole list of dir&quot;&lt;/span&gt;
&lt;span class=&quot;hljs-built_in&quot;&gt;cd&lt;/span&gt; server
&lt;span class=&quot;hljs-built_in&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;hljs-string&quot;&gt;&quot;entered server folder where jar files are kept&quot;&lt;/span&gt;
&lt;span class=&quot;hljs-keyword&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;hljs-keyword&quot;&gt;in&lt;/span&gt; {8001..8020}
&lt;span class=&quot;hljs-keyword&quot;&gt;do&lt;/span&gt;
java -Xmx64m -Xms64m -jar A6.jar nodes-list.txt &lt;span class=&quot;hljs-variable&quot;&gt;$i&lt;/span&gt; &amp;amp;
&lt;span class=&quot;hljs-built_in&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;hljs-string&quot;&gt;&quot;running &lt;span class=&quot;hljs-variable&quot;&gt;$i&lt;/span&gt; A6.jar&quot;&lt;/span&gt;
&lt;span class=&quot;hljs-keyword&quot;&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;save it as A6.sh&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Now to run this use double dots &lt;kbd&gt;. ./a6.sh&lt;/kbd&gt;&lt;/p&gt;
&lt;div&gt;&lt;pre&gt;&lt;kbd&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;ubuntu@ip-172-31-27-28:~$ . ./a6.sh&lt;/span&gt;
&lt;/kbd&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will start all jar instances parallel because &amp;amp; is used in for loop.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Hope this will help.&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/6564918006642059373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/6564918006642059373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/6564918006642059373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/6564918006642059373'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2022/02/bash-script-to-run-multiple-jar.html' title='Bash Script to Run multiple jar simultaneously on Ubuntu'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-348778864097033782</id><published>2022-01-27T16:32:00.003-08:00</published><updated>2022-01-27T16:32:38.848-08:00</updated><title type='text'>AWS EC2 Instance Step Guide and deploying JAR on server</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;strong&gt;Creating EC2 Instance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Configure your billing alerts first. Take help of any youtube video.&lt;/p&gt;
&lt;p&gt;In AWS create free tier EC2 instance of ubuntu with default settings.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Connecting with Instance:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In my case default web console was not launching so i configured the putty as follows:&lt;/p&gt;
&lt;p&gt;need to download both puttygen.exe and putty.exe.&lt;/p&gt;
&lt;p&gt;The key file you download from the AWS console will be a .pem file. Since putty uses .ppk file extensions for authentication, you need puttygen to convert the .pem file to .ppk format. Do not click generate a key or any other buttons. Just load the pem file and click the save the private key button.&lt;/p&gt;
&lt;p&gt;Make Connection&lt;br /&gt;Eg: “ec4-50-18-15.compute-1.amazonaws.com” or if you have given an elastic IP for your instance, then you should enter that elastic IP in the host field.&lt;/p&gt;
&lt;p&gt;Now go to connection–&amp;gt;data and type in the user name. which is ubuntu&lt;/p&gt;
&lt;p&gt;Now got to SSH–&amp;gt;Auth click on Auth and load the .ppk file you generated using puttygen.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configure Instance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Once connected with EC2 instance Making ubuntu ready for Java&lt;/p&gt;
&lt;p&gt;sudo su&lt;br /&gt;sudo apt update&lt;br /&gt;sudo apt install openjdk-8-jdk openjdk-8-jre&lt;/p&gt;
&lt;p&gt;It will install java 8&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deploy JAR&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Now create a folder to download the jar &amp;nbsp;and run it.&lt;/p&gt;
&lt;p&gt;root@ip:/home/ubuntu# mkdir server&lt;br /&gt;root@ip:/home/ubuntu# chmod 777 server&lt;br /&gt;root@ip:/home/ubuntu# cd server&lt;br /&gt;root@ip:/home/ubuntu/server# wget &lt;a href=&quot;https://filebin.net/yourjarfile.jar&quot; rel=&quot;noreferrer&quot; target=&quot;_blank&quot;&gt;https://filebin.net/yourjarfile.jar&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;filebin.net is good to transfer jar files&lt;/p&gt;
&lt;p&gt;run your server&lt;br /&gt;root@ip:jaba -jar yourjarfile.jar&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Network Setting to access port of server.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Go to AWS &amp;nbsp;EC2 instance&lt;br /&gt;Go to Security and click on security group&lt;br /&gt;Edit inbound rule&lt;br /&gt;Create a new rule custom TCP with your port like 8002 and &amp;nbsp;0.0.0.0&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now you can access the server from any client&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Hope this will help and save your time.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/348778864097033782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/348778864097033782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/348778864097033782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/348778864097033782'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2022/01/aws-ec2-instance-step-guide-and.html' title='AWS EC2 Instance Step Guide and deploying JAR on server'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-4583500895368877421</id><published>2021-08-25T05:45:00.011-07:00</published><updated>2021-09-14T21:39:47.891-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="(Linux Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="Easily"/><category scheme="http://www.blogger.com/atom/ns#" term="Install Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="LAMP"/><category scheme="http://www.blogger.com/atom/ns#" term="Mysql Perl)"/><category scheme="http://www.blogger.com/atom/ns#" term="Server on Hyper-V"/><title type='text'>Install Ubuntu LAMP (Linux Apache, Mysql Perl) Server on Windows Server using Hyper-V </title><content type='html'>&lt;p&gt;&amp;nbsp;Install Ubuntu LAMP (Linux Apache, Mysql Perl) Server Windows Server on Hyper-V Easily&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Download the LAMP ISO&amp;nbsp;http://releases.ubuntu.com/16.04/&lt;/p&gt;&lt;h3 class=&quot;ftwp-heading&quot; id=&quot;ftoc-heading-2&quot; style=&quot;box-sizing: inherit; font-family: Poppins, sans-serif; font-size: 24px; margin: 0px; word-break: break-word;&quot;&gt;Activate Hyper-V&lt;/h3&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Arimo, sans-serif&quot; style=&quot;background-color: white; color: #444444; font-size: 18.2858px;&quot;&gt;Activate Hyper-V in Windows server roles&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Arimo, sans-serif&quot; style=&quot;background-color: white; color: #444444; font-size: 18.2858px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 class=&quot;ftwp-heading&quot; id=&quot;ftoc-heading-2&quot; style=&quot;box-sizing: inherit; font-family: Poppins, sans-serif; font-size: 24px; margin: 0px; word-break: break-word;&quot;&gt;Create Virtual Machine&lt;/h3&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;You can get your copy of Ubuntu 18.04 official installation media from&amp;nbsp;&lt;a href=&quot;https://www.ubuntu.com/download/desktop&quot; style=&quot;border: 0px; box-sizing: border-box; color: blue; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; vertical-align: baseline;&quot;&gt;here&lt;/a&gt;, if you want the desktop edition. Once the download is finished open&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Hyper-V manager&amp;nbsp;&lt;/em&gt;(you can search for it from the start menu).&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;The first thing you will notice is that your host system will show up in the menu under Hyper-V Manager (in my case, the name is set to&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;linux LAMP&lt;/em&gt;).&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26000 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;576&quot; sizes=&quot;(max-width: 1140px) 100vw, 1140px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l1-1.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l1-1.png 1140w, https://linuxhint.com/wp-content/uploads/2018/05/l1-1-300x152.png 300w, https://linuxhint.com/wp-content/uploads/2018/05/l1-1-768x388.png 768w, https://linuxhint.com/wp-content/uploads/2018/05/l1-1-1024x518.png 1024w, https://linuxhint.com/wp-content/uploads/2018/05/l1-1-810x410.png 810w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;1140&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;Now on the right hand column you can see an option to which say&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;New.&amp;nbsp;&lt;/em&gt;Click on it and select&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Virtual Machine…&lt;/em&gt;&amp;nbsp;from here on it is a simple setup wizard which most PC users are familiar with.&lt;/p&gt;&lt;div class=&quot;adthrive-ad adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1&quot; id=&quot;AdThrive_Content_4_desktop&quot; style=&quot;background-color: white; border: 0px; box-sizing: border-box; clear: both; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; line-height: 0; margin: 10px 0px; min-height: 250px; outline: 0px; overflow: visible; padding: 0px; text-align: center; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26001 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;537&quot; sizes=&quot;(max-width: 702px) 100vw, 702px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l2-1.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l2-1.png 702w, https://linuxhint.com/wp-content/uploads/2018/05/l2-1-300x229.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;702&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;Since we will not be using the Default options, let’s click on&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Next.&amp;nbsp;&lt;/em&gt;Now give your VM a name and the location where you want to store it (we will let it stay at it’s default value) and click&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Next.&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26002 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;532&quot; sizes=&quot;(max-width: 702px) 100vw, 702px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l3-1.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l3-1.png 702w, https://linuxhint.com/wp-content/uploads/2018/05/l3-1-300x227.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;702&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;Next we have to select whether the machine is of Generation 1 or 2. Selecting Generation 1 will cover the widest possible use cases, so let’s stick to that.&lt;/p&gt;&lt;div class=&quot;adthrive-ad adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1&quot; id=&quot;AdThrive_Content_5_desktop&quot; style=&quot;background-color: white; border: 0px; box-sizing: border-box; clear: both; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; line-height: 0; margin: 10px 0px; min-height: 250px; outline: 0px; overflow: visible; padding: 0px; text-align: center; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26003 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;533&quot; sizes=&quot;(max-width: 707px) 100vw, 707px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l4-1.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l4-1.png 707w, https://linuxhint.com/wp-content/uploads/2018/05/l4-1-300x226.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;707&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;For memory, we can go with 2048MB. If you have a larger RAM, consider allocating more memory.&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26004 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;537&quot; sizes=&quot;(max-width: 705px) 100vw, 705px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l5-1.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l5-1.png 705w, https://linuxhint.com/wp-content/uploads/2018/05/l5-1-300x229.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;705&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;The next step is to configure networking, you get two options,&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Not Connected&amp;nbsp;&lt;/em&gt;and&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Default Switch&lt;/em&gt;. Because we intend on running updates, and downloading new packages, we will go with the Default Switch option and click on&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Next.&lt;/em&gt;&lt;/p&gt;&lt;div class=&quot;adthrive-ad adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1&quot; id=&quot;AdThrive_Content_6_desktop&quot; style=&quot;background-color: white; border: 0px; box-sizing: border-box; clear: both; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; line-height: 0; margin: 10px 0px; min-height: 250px; outline: 0px; overflow: visible; padding: 0px; text-align: center; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26005 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;530&quot; sizes=&quot;(max-width: 702px) 100vw, 702px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l6-1.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l6-1.png 702w, https://linuxhint.com/wp-content/uploads/2018/05/l6-1-300x226.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;702&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;For those who are interested, the Default Switch offers your VM internet connectivity by using the host connection via NAT.&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;The next step is to connect a virtual hard disk. Here, the default values would work just fine. Although Ubuntu desktop can run on disks as small as 25GB.&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26006 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;532&quot; sizes=&quot;(max-width: 696px) 100vw, 696px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l7-1.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l7-1.png 696w, https://linuxhint.com/wp-content/uploads/2018/05/l7-1-300x229.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;696&quot; /&gt;&lt;/p&gt;&lt;div class=&quot;adthrive-ad adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1&quot; id=&quot;AdThrive_Content_7_desktop&quot; style=&quot;background-color: white; border: 0px; box-sizing: border-box; clear: both; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; line-height: 0; margin: 10px 0px; min-height: 250px; outline: 0px; overflow: visible; padding: 0px; text-align: center; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;The last step is to connect the installation media (the Ubuntu .iso file that we downloaded earlier). Select the option which says&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;“Install an operating system from a bootable CD/DVD-ROM”&amp;nbsp;&lt;/em&gt;and then select the Image file suboption, and using the browse option locate the .iso file for Ubuntu installation in your filesystem.&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26007 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;536&quot; sizes=&quot;(max-width: 703px) 100vw, 703px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l8.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l8.png 703w, https://linuxhint.com/wp-content/uploads/2018/05/l8-300x229.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;703&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;Click next to review your configurations one last time and then&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Finish&amp;nbsp;&lt;/em&gt;to finalize your settings.&lt;/p&gt;&lt;h4 style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #ba3925; font-family: Poppins; font-size: 18px; line-height: 1.4; margin: 0px 0px 10px; opacity: 0.9; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;Starting and Accessing Your VM&lt;/h4&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;You can now see the newly created VM called&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Ubuntu&amp;nbsp;&lt;/em&gt;in the list of VMs.&lt;/p&gt;&lt;div class=&quot;adthrive-ad adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1 adthrive-content adthrive-content-1&quot; id=&quot;AdThrive_Content_8_desktop&quot; style=&quot;background-color: white; border: 0px; box-sizing: border-box; clear: both; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; line-height: 0; margin: 10px 0px; min-height: 250px; outline: 0px; overflow: visible; padding: 0px; text-align: center; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-26008 lazyloaded&quot; data-ll-status=&quot;loaded&quot; height=&quot;544&quot; sizes=&quot;(max-width: 1140px) 100vw, 1140px&quot; src=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l9.png&quot; srcset=&quot;https://linuxhint.com/wp-content/uploads/2018/05/l9.png 1140w, https://linuxhint.com/wp-content/uploads/2018/05/l9-300x143.png 300w, https://linuxhint.com/wp-content/uploads/2018/05/l9-768x367.png 768w, https://linuxhint.com/wp-content/uploads/2018/05/l9-1024x489.png 1024w, https://linuxhint.com/wp-content/uploads/2018/05/l9-810x387.png 810w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; margin-bottom: 30px; max-width: 100%; vertical-align: middle;&quot; width=&quot;1140&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;Simply right-click on it and select the&amp;nbsp;&lt;em style=&quot;border: 0px; box-sizing: border-box; font-size: 18.2858px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Start&amp;nbsp;&lt;/em&gt;option to start the VM. You will notice that the Hyper-V manager would start showing up the VM’s resource utilization (CPU and memory usage). But no Window would pop up showing the Ubuntu live CD booting.&lt;/p&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: border-box; color: #444444; font-family: Arimo, sans-serif; font-size: 18.2858px; margin: 0px 0px 30px; outline: 0px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;The first screen you&#39;ll see (&lt;strong&gt;Figure A&lt;/strong&gt;), asks you what language you want to use for the installation (not the server itself). Use your arrow keys to select the correct language and hit Enter on your keyboard.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;strong&gt;Figure A&lt;/strong&gt;&lt;/p&gt;&lt;figure class=&quot;image pull-none image-original&quot; style=&quot;background-color: white; clear: both; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px auto 20px; max-width: 100%; position: relative; width: 642px;&quot;&gt;&lt;span class=&quot;img aspect-set&quot; style=&quot;display: block; height: 0px; padding-bottom: 481.5px; position: relative; width: 642px;&quot;&gt;&lt;img alt=&quot;Figure A&quot; data-original=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/032a3c6c-87a1-47ab-a31a-ed43ed019e32/ubuntuinstalla.jpg&quot; src=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/032a3c6c-87a1-47ab-a31a-ed43ed019e32/ubuntuinstalla.jpg&quot; style=&quot;border: 0px; display: block; left: 0px; margin-left: auto; margin-right: auto; max-width: 100%; opacity: 1; position: absolute; top: 0px; transition: opacity 0.5s ease 0.2s; width: 642px;&quot; /&gt;&lt;/span&gt;&lt;figcaption style=&quot;color: #778596; font-size: 14px; margin: 10px 0px 0px; text-align: center;&quot;&gt;&lt;div class=&quot;caption&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Selecting the installation language.&lt;/p&gt;&lt;/div&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;In the next screen you&#39;ll be asked to select what you want to do with the installer, run some tests, boot from the hard disk, or rescue a broken system. Using your arrow keys, select Install Ubuntu Server and hit the Enter key on your keyboard.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;The next few screens are as follows:&lt;/p&gt;&lt;ul style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px 25px; padding: 0px;&quot;&gt;&lt;li&gt;Select the language to be used on the server&lt;/li&gt;&lt;li&gt;Select your location&lt;/li&gt;&lt;li&gt;Detect keyboard layout (Yes/No)&lt;/li&gt;&lt;li&gt;Select the country of origin for your keyboard&lt;/li&gt;&lt;li&gt;Select the layout matching your keyboard&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Once beyond these screens, the installer will load additional components (&lt;strong&gt;Figure B&lt;/strong&gt;).&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;strong&gt;Figure B&lt;/strong&gt;&lt;/p&gt;&lt;figure class=&quot;image pull-none image-original&quot; style=&quot;background-color: white; clear: both; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px auto 20px; max-width: 100%; position: relative; width: 804px;&quot;&gt;&lt;span class=&quot;img aspect-set&quot; style=&quot;display: block; height: 0px; padding-bottom: 577.5px; position: relative; width: 770px;&quot;&gt;&lt;img alt=&quot;Figure B&quot; data-original=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/00b785c0-ad3e-44d5-aead-28d4b9a585bd/ubuntuinstallb.jpg&quot; src=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/00b785c0-ad3e-44d5-aead-28d4b9a585bd/ubuntuinstallb.jpg&quot; style=&quot;border: 0px; display: block; left: 0px; margin-left: auto; margin-right: auto; max-width: 100%; opacity: 1; position: absolute; top: 0px; transition: opacity 0.5s ease 0.2s; width: 770px;&quot; /&gt;&lt;/span&gt;&lt;figcaption style=&quot;color: #778596; font-size: 14px; margin: 10px 0px 0px; text-align: center;&quot;&gt;&lt;div class=&quot;caption&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Getting ready for the important bits of the installation.&lt;/p&gt;&lt;/div&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;In the following screen (&lt;strong&gt;Figure C&lt;/strong&gt;), you must set the hostname for the server. If the server will use a Fully Qualified Domain Name (FQDN), enter that. If the server is on a LAN-only network (or will be used for testing purposes), you can make up whatever need here.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;strong&gt;Figure C&lt;/strong&gt;&lt;/p&gt;&lt;figure class=&quot;image pull-none image-original&quot; style=&quot;background-color: white; clear: both; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px auto 20px; max-width: 100%; position: relative; width: 803px;&quot;&gt;&lt;span class=&quot;img aspect-set&quot; style=&quot;display: block; height: 0px; padding-bottom: 577.5px; position: relative; width: 770px;&quot;&gt;&lt;img alt=&quot;Figure C&quot; data-original=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/f5faf25b-80d7-457c-b5dc-2dff1e0cf551/ubuntuinstallc.jpg&quot; src=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/f5faf25b-80d7-457c-b5dc-2dff1e0cf551/ubuntuinstallc.jpg&quot; style=&quot;border: 0px; display: block; left: 0px; margin-left: auto; margin-right: auto; max-width: 100%; opacity: 1; position: absolute; top: 0px; transition: opacity 0.5s ease 0.2s; width: 770px;&quot; /&gt;&lt;/span&gt;&lt;figcaption style=&quot;color: #778596; font-size: 14px; margin: 10px 0px 0px; text-align: center;&quot;&gt;&lt;div class=&quot;caption&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Setting the hostname for your server.&lt;/p&gt;&lt;/div&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;In the next five screens, you must set up a user account. The options are:&lt;/p&gt;&lt;ul style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px 25px; padding: 0px;&quot;&gt;&lt;li&gt;Enter the full name for your user account&lt;/li&gt;&lt;li&gt;Enter a username for the account&lt;/li&gt;&lt;li&gt;Enter a password for the user&lt;/li&gt;&lt;li&gt;Verify the password for the user&lt;/li&gt;&lt;li&gt;Encrypt the user&#39;s home directory (Yes/No)&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Now we configure the clock. The installer (for whatever reason) almost always defaults to America/New York. If that&#39;s not your location, tab down until No is selected and hit Enter. You can then select your proper time zone.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;We finally come to the disk partitioning. Unless you have any special needs, select Guided - use entire disk (&lt;strong&gt;Figure D&lt;/strong&gt;), and hit Enter.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;strong&gt;Figure D&lt;/strong&gt;&lt;/p&gt;&lt;figure class=&quot;image pull-none image-original&quot; style=&quot;background-color: white; clear: both; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px auto 20px; max-width: 100%; position: relative; width: 800px;&quot;&gt;&lt;span class=&quot;img aspect-set&quot; style=&quot;display: block; height: 0px; padding-bottom: 577.5px; position: relative; width: 770px;&quot;&gt;&lt;img alt=&quot;Figure D&quot; data-original=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/d7f1bfb5-36d9-45fe-9551-950d79745705/ubuntuinstalld.jpg&quot; src=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/d7f1bfb5-36d9-45fe-9551-950d79745705/ubuntuinstalld.jpg&quot; style=&quot;border: 0px; display: block; left: 0px; margin-left: auto; margin-right: auto; max-width: 100%; opacity: 1; position: absolute; top: 0px; transition: opacity 0.5s ease 0.2s; width: 770px;&quot; /&gt;&lt;/span&gt;&lt;figcaption style=&quot;color: #778596; font-size: 14px; margin: 10px 0px 0px; text-align: center;&quot;&gt;&lt;div class=&quot;caption&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Selecting the partitioning method for our installation.&lt;/p&gt;&lt;/div&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;In the next screen you&#39;ll select the disk to be partitioned. If you have more than one disk on the server, make sure to select the correct disk (chances are it will be labeled&amp;nbsp;&lt;em&gt;sda&lt;/em&gt;&amp;nbsp;-&amp;nbsp;&lt;strong&gt;Figure E&lt;/strong&gt;) and hit Enter.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;strong&gt;Figure E&lt;/strong&gt;&lt;/p&gt;&lt;figure class=&quot;image pull-none image-original&quot; style=&quot;background-color: white; clear: both; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px auto 20px; max-width: 100%; position: relative; width: 801px;&quot;&gt;&lt;span class=&quot;img aspect-set&quot; style=&quot;display: block; height: 0px; padding-bottom: 577.5px; position: relative; width: 770px;&quot;&gt;&lt;img alt=&quot;Figure E&quot; data-original=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/fe2de782-d69b-4cb8-9c7e-01f2beb98de5/ubuntuinstalle.jpg&quot; src=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/fe2de782-d69b-4cb8-9c7e-01f2beb98de5/ubuntuinstalle.jpg&quot; style=&quot;border: 0px; display: block; left: 0px; margin-left: auto; margin-right: auto; max-width: 100%; opacity: 1; position: absolute; top: 0px; transition: opacity 0.5s ease 0.2s; width: 770px;&quot; /&gt;&lt;/span&gt;&lt;figcaption style=&quot;color: #778596; font-size: 14px; margin: 10px 0px 0px; text-align: center;&quot;&gt;&lt;div class=&quot;caption&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Installing Ubuntu Server as a VM on VirtualBox makes disk selection easy.&lt;/p&gt;&lt;/div&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;You will now be presented with the partition information and asked if you want to write changes to the disk. Tab down to Yes and hit Enter on your keyboard.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;After the partitions have been written, you&#39;ll be presented with the option to configure a proxy server. If you don&#39;t need to use a proxy, leave this blank and tab down to Continue (&lt;strong&gt;Figure F&lt;/strong&gt;).&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;strong&gt;Figure F&lt;/strong&gt;&lt;/p&gt;&lt;figure class=&quot;image pull-none image-original&quot; style=&quot;background-color: white; clear: both; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px auto 20px; max-width: 100%; position: relative; width: 802px;&quot;&gt;&lt;span class=&quot;img aspect-set&quot; style=&quot;display: block; height: 0px; padding-bottom: 577.5px; position: relative; width: 770px;&quot;&gt;&lt;img alt=&quot;Figure F&quot; data-original=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/8d4dcefb-f16b-4bc6-96d0-a78809f4f2a0/ubuntuinstallf.jpg&quot; src=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/8d4dcefb-f16b-4bc6-96d0-a78809f4f2a0/ubuntuinstallf.jpg&quot; style=&quot;border: 0px; display: block; left: 0px; margin-left: auto; margin-right: auto; max-width: 100%; opacity: 1; position: absolute; top: 0px; transition: opacity 0.5s ease 0.2s; width: 770px;&quot; /&gt;&lt;/span&gt;&lt;figcaption style=&quot;color: #778596; font-size: 14px; margin: 10px 0px 0px; text-align: center;&quot;&gt;&lt;div class=&quot;caption&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;The optional proxy server configuration.&lt;/p&gt;&lt;/div&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Next the installation will ask how you want to handle updates. You have the following options to select from:&lt;/p&gt;&lt;ul style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px 25px; padding: 0px;&quot;&gt;&lt;li&gt;No automatic updates&lt;/li&gt;&lt;li&gt;Install security updates automatically&lt;/li&gt;&lt;li&gt;Manage system with Landscape&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;I recommend selecting No automatic updates. If you go this route, know that you will have to manually run regular updates.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Finally, we get to select our software. Since we&#39;re setting up a LAMP server, you&#39;ll want to use the arrow keys to select LAMP server (&lt;strong&gt;Figure G&lt;/strong&gt;) and then hit the Spacebar on your keyboard (to select the option). I would also suggest adding OpenSSH server, so you can remote into the machine for admin purposes.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;strong&gt;Figure G&lt;/strong&gt;&lt;/p&gt;&lt;figure class=&quot;image pull-none image-original&quot; style=&quot;background-color: white; clear: both; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px auto 20px; max-width: 100%; position: relative; width: 802px;&quot;&gt;&lt;span class=&quot;img aspect-set&quot; style=&quot;display: block; height: 0px; padding-bottom: 577.5px; position: relative; width: 770px;&quot;&gt;&lt;img alt=&quot;Figure G&quot; data-original=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/69a027c1-683c-46ca-bf64-fa5ffd833c1d/ubuntuinstallg.jpg&quot; src=&quot;https://www.techrepublic.com/a/hub/i/2017/05/09/69a027c1-683c-46ca-bf64-fa5ffd833c1d/ubuntuinstallg.jpg&quot; style=&quot;border: 0px; display: block; left: 0px; margin-left: auto; margin-right: auto; max-width: 100%; opacity: 1; position: absolute; top: 0px; transition: opacity 0.5s ease 0.2s; width: 770px;&quot; /&gt;&lt;/span&gt;&lt;figcaption style=&quot;color: #778596; font-size: 14px; margin: 10px 0px 0px; text-align: center;&quot;&gt;&lt;div class=&quot;caption&quot;&gt;&lt;p style=&quot;margin: 0px;&quot;&gt;Selecting the software to be included on the server.&lt;/p&gt;&lt;/div&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;During the LAMP installation, you will be prompted to set a MySQL root user password. Do that (and then verify the password) and then the installation may seem to stall out. Wait for it as it detects where to install the GRUB bootloader. You will then be presented with the options for GRUB. If you only have one disk in the server, you can just tab down to Yes and hit Enter. If you have more than one disk, you&#39;ll want to make sure to select the correct disk (most likely it will be labeled&amp;nbsp;&lt;em&gt;sda&lt;/em&gt;).&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;And that&#39;s it. You will now be prompted to hit Enter to reboot the server. You can then log in with the user account you created during the installation and start using your new LAMP server.&lt;/p&gt;&lt;h3 class=&quot;ftwp-heading&quot; id=&quot;ftoc-heading-2&quot; style=&quot;box-sizing: inherit; font-family: Poppins, sans-serif; font-size: 24px; margin: 0px; word-break: break-word;&quot;&gt;Temp IP Address Schema&lt;/h3&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Ensure to create a Virtual Network Switch with External in Hyper-V&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Change IP Address&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Suppose your host windows server is 10.1.168.1&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Your virtual external switch address will be 10.1.168.2&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Assign IP 10.1.168.6 to ubuntu VM&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border: 1px solid rgb(182, 201, 220); box-sizing: inherit; clear: both; font-size: 14px; line-height: 1.1em; margin-bottom: 10px; margin-top: 0px; max-width: 650px; overflow: auto; padding: 20px 10px;&quot;&gt;sudo ifconfig eth0 &lt;span face=&quot;&amp;quot;Proxima Nova&amp;quot;, sans-serif&quot; style=&quot;background-color: white; color: #0e0618; font-size: 18px; white-space: normal;&quot;&gt;10.1.168.6&lt;/span&gt; netmask 255.255.255.0&lt;/pre&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Assign Gateway&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border: 1px solid rgb(182, 201, 220); box-sizing: inherit; clear: both; font-size: 14px; line-height: 1.1em; margin-bottom: 10px; margin-top: 0px; max-width: 650px; overflow: auto; padding: 20px 10px;&quot;&gt;sudo route add default gw 10.1.168.17 eth0&lt;/pre&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 class=&quot;ftwp-heading&quot; id=&quot;ftoc-heading-2&quot; style=&quot;box-sizing: inherit; font-family: Poppins, sans-serif; font-size: 24px; margin: 0px; word-break: break-word;&quot;&gt;Start Apache Web Server&lt;/h3&gt;&lt;p style=&quot;box-sizing: inherit; color: #404040; font-family: Roboto, sans-serif; font-size: 16px; margin-block: 0px 1em; word-break: break-word;&quot;&gt;For Ubuntu users with versions 16.04 and 18.04 and Debian 9.x users, use the following commands in the terminal window to&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder;&quot;&gt;start Apache&lt;/span&gt;:&lt;/p&gt;&lt;pre class=&quot;wp-block-code&quot; style=&quot;background-color: #f7f7f7; border: 1px solid rgb(234, 234, 234); box-sizing: inherit; color: #404040; font-family: monospace, monospace; font-size: 16px; overflow-wrap: break-word; overflow: auto; padding: 18px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;code style=&quot;box-sizing: inherit; display: block; font-family: monospace, monospace; font-size: 1em; overflow-wrap: break-word; overflow: auto; word-break: break-all;&quot;&gt;sudo systemctl start apache2&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: inherit; color: #404040; font-family: Roboto, sans-serif; font-size: 16px; margin-block: 0px 1em; word-break: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder;&quot;&gt;Check status&lt;/span&gt;&amp;nbsp;to see whether Apache is enabled with the command:&lt;/p&gt;&lt;pre class=&quot;wp-block-code&quot; style=&quot;background-color: #f7f7f7; border: 1px solid rgb(234, 234, 234); box-sizing: inherit; color: #404040; font-family: monospace, monospace; font-size: 16px; overflow-wrap: break-word; overflow: auto; padding: 18px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;code style=&quot;box-sizing: inherit; display: block; font-family: monospace, monospace; font-size: 1em; overflow-wrap: break-word; overflow: auto; word-break: break-all;&quot;&gt;sudo systemctl status apache2&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;Confirm on web browser HTTP://10.1.168.6:80 if site is up or not&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 class=&quot;ftwp-heading&quot; id=&quot;ftoc-heading-2&quot; style=&quot;box-sizing: inherit; font-family: Poppins, sans-serif; font-size: 24px; margin: 0px; word-break: break-word;&quot;&gt;Updating Linux package via proxy:&lt;/h3&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040;&quot;&gt;To update the Linux&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;wp-block-code&quot; style=&quot;background-color: #f7f7f7; border: 1px solid rgb(234, 234, 234); box-sizing: inherit; color: #404040; font-family: monospace, monospace; font-size: 16px; overflow-wrap: break-word; overflow: auto; padding: 18px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;code style=&quot;box-sizing: inherit; display: block; font-family: monospace, monospace; font-size: 1em; overflow-wrap: break-word; overflow: auto; word-break: break-all;&quot;&gt;&lt;pre style=&quot;background-color: var(--highlight-bg); border-radius: 5px; border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;background-color: transparent; border-radius: 0px; border: 0px; box-sizing: inherit; color: var(--black-800); font-family: var(--ff-mono); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;sudo vi /etc/apt/apt.conf&lt;/code&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040;&quot;&gt;Put your proxy setting. If no username then leaves it blank.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;wp-block-code&quot; style=&quot;background-color: #f7f7f7; border: 1px solid rgb(234, 234, 234); box-sizing: inherit; color: #404040; font-family: monospace, monospace; font-size: 16px; overflow-wrap: break-word; overflow: auto; padding: 18px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;code style=&quot;box-sizing: inherit; display: block; font-family: monospace, monospace; font-size: 1em; overflow-wrap: break-word; overflow: auto; word-break: break-all;&quot;&gt;&lt;pre style=&quot;background-color: var(--highlight-bg); border-radius: 5px; border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;&quot;&gt;&lt;pre style=&quot;background-color: var(--highlight-bg); border-radius: 5px; border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;background-color: transparent; border-radius: 0px; border: 0px; box-sizing: inherit; color: var(--black-800); font-family: var(--ff-mono); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;Acquire::http::Proxy &quot;http://username:password@proxyhost:port/&quot;;
Acquire::https::Proxy &quot;https://username:password@proxyhost:port/&quot;;
Acquire::ftp::Proxy &quot;ftp://username:password@proxyhost:port/&quot;;&lt;/code&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: var(--highlight-bg); border-radius: 5px; border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;background-color: transparent; border-radius: 0px; border: 0px; box-sizing: inherit; color: var(--black-800); font-family: var(--ff-mono); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;In my case is used following:&lt;/code&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: var(--highlight-bg); border-radius: 5px; border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;background-color: transparent; border-radius: 0px; border: 0px; box-sizing: inherit; color: var(--black-800); font-family: var(--ff-mono); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;Acquire::http::Proxy &quot;http://:@proxyhost:port/&quot;;   //for no id password&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040;&quot;&gt;Now update and installation will work&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;wp-block-code&quot; style=&quot;background-color: #f7f7f7; border: 1px solid rgb(234, 234, 234); box-sizing: inherit; color: #404040; font-family: monospace, monospace; font-size: 16px; overflow-wrap: break-word; overflow: auto; padding: 18px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;code style=&quot;box-sizing: inherit; display: block; font-family: monospace, monospace; font-size: 1em; overflow-wrap: break-word; overflow: auto; word-break: break-all;&quot;&gt;&lt;pre style=&quot;background-color: var(--highlight-bg); border-radius: 5px; border: 0px; box-sizing: inherit; color: var(--highlight-color); font-family: var(--ff-mono); font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.30769; margin-bottom: calc(var(--s-prose-spacing) + 0.4em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;background-color: transparent; border-radius: 0px; border: 0px; box-sizing: inherit; color: var(--black-800); font-family: var(--ff-mono); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;sudo apt-get update&lt;/code&gt;&lt;/pre&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;h3 class=&quot;ftwp-heading&quot; id=&quot;ftoc-heading-2&quot; style=&quot;box-sizing: inherit; font-family: Poppins, sans-serif; font-size: 24px; margin: 0px; word-break: break-word;&quot;&gt;Permanent IP Address Schema&lt;/h3&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;verdana, Lato, sans-serif&quot; style=&quot;color: #2b2b2b; font-size: 15px;&quot;&gt;Create new file&lt;/span&gt;&lt;span face=&quot;verdana, Lato, sans-serif&quot; style=&quot;color: #2b2b2b; font-size: 15px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;border: 0px; color: #2b2b2b; font-family: inherit; font-size: 15px; font-style: inherit; font-weight: 700; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;/etc/systemd/network/eth0.network&lt;/span&gt;&lt;span face=&quot;verdana, Lato, sans-serif&quot; style=&quot;color: #2b2b2b; font-size: 15px;&quot;&gt;. Name is not importent, just the prefix network.&amp;nbsp; Here eth0 is my network interface.&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;border: 0px; color: #2b2b2b; font-family: verdana, Lato, sans-serif; font-size: 15px; margin: 0px 0px 24px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: monospace, serif; font-style: inherit; font-weight: inherit; hyphens: none; line-height: 1.6; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;[Match]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;# You can also use wildcards. Maybe you want enable dhcp&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;# an all eth* NICs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;Name=eth0&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;[Network]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;#DHCP=v4&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;# static IP&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;# 10.1.169.6 netmask 255.255.255.0&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;Address=10.1.169.6/24&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;Gateway=10.1.169.17&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: #2b2b2b; font-family: monospace, serif;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;DNS=10.0.12.8&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;border: 0px; margin: 0px 0px 24px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;span face=&quot;verdana, Lato, sans-serif&quot; style=&quot;color: #2b2b2b;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;Move your previously used /etc/network/interfaces to /etc/network/interfaces.save. The file is no longer needed (for eth0). If some other NICs defined there leave it and just remove all entries regarding to eth0.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;border: 0px; color: #2b2b2b; font-family: verdana, Lato, sans-serif; font-size: 15px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;syntaxhighlighter bash&quot; id=&quot;highlighter_9848&quot; style=&quot;background-color: white; border: 0px; font-family: inherit; font-size: 1em; font-style: inherit; font-weight: inherit; margin: 1em 0px; outline: 0px; overflow: auto hidden; padding: 0px; position: relative; vertical-align: baseline; width: 900px;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none; border-radius: 0px; border-spacing: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; table-layout: auto; vertical-align: baseline; width: 900px;&quot;&gt;&lt;tbody style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;tr style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #afafaf; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 0px; border-right-color: rgb(108, 226, 108); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 3px 0px 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 0.5em 0px 1em; position: static; text-align: right; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: 866.25px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: relative; vertical-align: baseline; width: auto;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em; position: static; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;&lt;code class=&quot;bash plain&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;root@debdeb:~&lt;/code&gt;&lt;code class=&quot;bash comments&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #008200; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;# mv /etc/network/interfaces /etc/network/interfaces.save&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;border: 0px; color: #2b2b2b; font-family: verdana, Lato, sans-serif; font-size: 15px; margin: 0px 0px 24px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;and enable systemd-networkd unit&lt;/p&gt;&lt;div style=&quot;border: 0px; color: #2b2b2b; font-family: verdana, Lato, sans-serif; font-size: 15px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;syntaxhighlighter bash&quot; id=&quot;highlighter_876213&quot; style=&quot;background-color: white; border: 0px; font-family: inherit; font-size: 1em; font-style: inherit; font-weight: inherit; margin: 1em 0px; outline: 0px; overflow: auto hidden; padding: 0px; position: relative; vertical-align: baseline; width: 900px;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none; border-radius: 0px; border-spacing: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; table-layout: auto; vertical-align: baseline; width: 900px;&quot;&gt;&lt;tbody style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;tr style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #afafaf; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 0px; border-right-color: rgb(108, 226, 108); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 3px 0px 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 0.5em 0px 1em; position: static; text-align: right; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: 866.25px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: relative; vertical-align: baseline; width: auto;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em; position: static; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;&lt;code class=&quot;bash plain&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;root@debdeb:~&lt;/code&gt;&lt;code class=&quot;bash comments&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #008200; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;# systemctl enable systemd-networkd.service&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;border: 0px; color: #2b2b2b; font-family: verdana, Lato, sans-serif; font-size: 15px; margin: 0px 0px 24px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;b&gt;(OPTIONAL)&lt;/b&gt; Define&amp;nbsp;&lt;a href=&quot;http://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html&quot; style=&quot;border: 0px; color: #24890d; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot; target=&quot;_blank&quot; title=&quot;Systemd systemd-resolved.service&quot;&gt;DNS&lt;/a&gt;&amp;nbsp;Server. You can add the DNS Server either in the Network section of the NIC adapter config (see above) or in&amp;nbsp;&lt;span style=&quot;border: 0px; font-family: inherit; font-style: inherit; font-weight: 700; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;/etc/systemd/resolved.conf&lt;/span&gt;&lt;br /&gt;Create a symlink&lt;/p&gt;&lt;div style=&quot;border: 0px; color: #2b2b2b; font-family: verdana, Lato, sans-serif; font-size: 15px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;syntaxhighlighter bash&quot; id=&quot;highlighter_397779&quot; style=&quot;background-color: white; border: 0px; font-family: inherit; font-size: 1em; font-style: inherit; font-weight: inherit; margin: 1em 0px; outline: 0px; overflow: auto hidden; padding: 0px; position: relative; vertical-align: baseline; width: 900px;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none; border-radius: 0px; border-spacing: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; table-layout: auto; vertical-align: baseline; width: 900px;&quot;&gt;&lt;tbody style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;tr style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #afafaf; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 0px; border-right-color: rgb(108, 226, 108); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 3px 0px 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 0.5em 0px 1em; position: static; text-align: right; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 0px; border-right-color: rgb(108, 226, 108); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 3px 0px 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 0.5em 0px 1em; position: static; text-align: right; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: 866.25px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: relative; vertical-align: baseline; width: auto;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em; position: static; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;&lt;code class=&quot;bash plain&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;root@debdeb:~&lt;/code&gt;&lt;code class=&quot;bash comments&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #008200; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;# mv /etc/resolv.conf /etc/resolv.conf.save&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em; position: static; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;&lt;code class=&quot;bash plain&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;root@debdeb:~&lt;/code&gt;&lt;code class=&quot;bash comments&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #008200; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;border: 0px; color: #2b2b2b; font-family: verdana, Lato, sans-serif; font-size: 15px; margin: 0px 0px 24px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;and enable systemd resolver&lt;/p&gt;&lt;div style=&quot;border: 0px; color: #2b2b2b; font-family: verdana, Lato, sans-serif; font-size: 15px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;div class=&quot;syntaxhighlighter bash&quot; id=&quot;highlighter_162986&quot; style=&quot;background-color: white; border: 0px; font-family: inherit; font-size: 1em; font-style: inherit; font-weight: inherit; margin: 1em 0px; outline: 0px; overflow: auto hidden; padding: 0px; position: relative; vertical-align: baseline; width: 900px;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none; border-radius: 0px; border-spacing: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; table-layout: auto; vertical-align: baseline; width: 900px;&quot;&gt;&lt;tbody style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;tr style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #afafaf; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 0px; border-right-color: rgb(108, 226, 108); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 3px 0px 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 0.5em 0px 1em; position: static; text-align: right; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: 866.25px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: relative; vertical-align: baseline; width: auto;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em; position: static; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;&lt;code class=&quot;bash plain&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;root@debdeb:~&lt;/code&gt;&lt;code class=&quot;bash comments&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #008200; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;# systemctl enable systemd-resolved.service&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em; position: static; vertical-align: baseline; white-space: pre; width: auto;&quot;&gt;&lt;code class=&quot;bash comments&quot; style=&quot;background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #008200; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 1em; height: auto; hyphens: none; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;&quot;&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;h3 class=&quot;ftwp-heading&quot; id=&quot;ftoc-heading-2&quot; style=&quot;box-sizing: inherit; font-family: Poppins, sans-serif; font-size: 24px; margin: 0px; word-break: break-word;&quot;&gt;Configuring SSH&lt;/h3&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ol style=&quot;color: #111111; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-size: 18px; margin: 0px 0px 30px 30px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 12px; overflow-wrap: break-word; padding: 0px;&quot;&gt;Type&amp;nbsp;&lt;kbd style=&quot;background-color: #f7f7f7; border-radius: 7px; border: 1px solid rgb(204, 204, 204); box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 0px, white 0px 0px 0px 2px inset; font-family: Menlo, Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, Courier, Verdana, sans-serif; font-size: 14px; margin: 0px 1px; overflow-wrap: break-word; padding: 5px; text-shadow: white 0px 1px 0px;&quot;&gt;sudo apt-get install openssh-server&lt;/kbd&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 12px; overflow-wrap: break-word; padding: 0px;&quot;&gt;Enable the ssh service by typing&amp;nbsp;&lt;kbd style=&quot;background-color: #f7f7f7; border-radius: 7px; border: 1px solid rgb(204, 204, 204); box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 0px, white 0px 0px 0px 2px inset; font-family: Menlo, Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, Courier, Verdana, sans-serif; font-size: 14px; margin: 0px 1px; overflow-wrap: break-word; padding: 5px; text-shadow: white 0px 1px 0px;&quot;&gt;sudo systemctl enable ssh&lt;/kbd&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 12px; overflow-wrap: break-word; padding: 0px;&quot;&gt;Start the ssh service by typing&amp;nbsp;&lt;kbd style=&quot;background-color: #f7f7f7; border-radius: 7px; border: 1px solid rgb(204, 204, 204); box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 0px, white 0px 0px 0px 2px inset; font-family: Menlo, Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, Courier, Verdana, sans-serif; font-size: 14px; margin: 0px 1px; overflow-wrap: break-word; padding: 5px; text-shadow: white 0px 1px 0px;&quot;&gt;sudo systemctl start ssh&lt;/kbd&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;Test it by login into the system using&amp;nbsp;&lt;kbd style=&quot;background-color: #f7f7f7; border-radius: 7px; border: 1px solid rgb(204, 204, 204); box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 0px, white 0px 0px 0px 2px inset; font-family: Menlo, Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, Courier, Verdana, sans-serif; font-size: 14px; margin: 0px 1px; overflow-wrap: break-word; padding: 5px; text-shadow: white 0px 1px 0px;&quot;&gt;ssh user@server-name&lt;/kbd&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;Now connect via Putty form anywhere in the network to work on Linux Server.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;MYSQL Troubleshoot:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;Some 2002 socket error&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040;&quot;&gt;&lt;div&gt;sudo /etc/init.d/mysql stop&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;apt-get remove --purge mysql\*&lt;/div&gt;&lt;div&gt;Then install it again:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;apt-get install mysql-server mysql-client&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;mysql -h 127.0.0.1 -u root -p&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #404040; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;- Vinod Kotiya&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #0e0618; font-family: &amp;quot;Proxima Nova&amp;quot;, sans-serif; font-size: 18px; margin: 0px 0px 20px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/4583500895368877421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/4583500895368877421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/4583500895368877421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/4583500895368877421'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2021/08/install-ubuntu-lamp-linux-apache-mysql.html' title='Install Ubuntu LAMP (Linux Apache, Mysql Perl) Server on Windows Server using Hyper-V '/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-3301854684625314534</id><published>2021-04-04T22:58:00.005-07:00</published><updated>2022-11-07T15:30:16.076-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="git commands"/><category scheme="http://www.blogger.com/atom/ns#" term="git pull"/><category scheme="http://www.blogger.com/atom/ns#" term="git push"/><category scheme="http://www.blogger.com/atom/ns#" term="gits quickstart"/><category scheme="http://www.blogger.com/atom/ns#" term="gits usefull commands"/><category scheme="http://www.blogger.com/atom/ns#" term="understand git"/><title type='text'>GIT HUB quick guide</title><content type='html'>&lt;h3 style=&quot;text-align: left;&quot;&gt;git architecture&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz62q6nFk4p4uUavE8MRXnPLQEckx-AcS2Ohnp3WPNJLx1dLxqG6u1ezk16at6v3I7eMTX2eZs9e82OmbBo5KzDhl_Og8epq_FveWIp55NVEMt7v2N0uxfUEMvhFjqQyXedVdLjg/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;440&quot; data-original-width=&quot;513&quot; height=&quot;343&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz62q6nFk4p4uUavE8MRXnPLQEckx-AcS2Ohnp3WPNJLx1dLxqG6u1ezk16at6v3I7eMTX2eZs9e82OmbBo5KzDhl_Og8epq_FveWIp55NVEMt7v2N0uxfUEMvhFjqQyXedVdLjg/w400-h343/image.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Staging area means files under tracking ready for commit. (will show in green text)&lt;p&gt;&lt;/p&gt;&lt;p&gt;Download the git with gitbash&lt;/p&gt;&lt;p&gt;Right click and Open gitbash on any working directory.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;u&gt;Basic Commands:&lt;/u&gt;&lt;/h3&gt;&lt;p&gt;&lt;b&gt;git status&lt;/b&gt;&lt;/p&gt;&lt;p&gt;To check the status of pwd&lt;/p&gt;&lt;p&gt;&lt;b&gt;git clone&amp;nbsp; url_from_git_hub_clone&lt;/b&gt;&lt;/p&gt;&lt;p&gt;It will download the project.&lt;/p&gt;&lt;p&gt;&lt;b&gt;git init&lt;/b&gt;&lt;/p&gt;&lt;p&gt;create the git repository. .git folder will be created under pwd.&lt;/p&gt;&lt;p&gt;&lt;b&gt;git add --a&amp;nbsp; &amp;nbsp; &lt;/b&gt;or&amp;nbsp;&lt;b&gt; git add .&lt;/b&gt;&lt;/p&gt;&lt;p&gt;will add all files in staging area. To ignore file and folder create touch .gitignore&amp;nbsp;&lt;/p&gt;&lt;p&gt;git commit -m &quot;first commit&quot;&lt;/p&gt;&lt;p&gt;It will commit all the staged file&lt;/p&gt;&lt;p&gt;&lt;b&gt;git commit -a -m &quot;Direct commit of tracked file without staging&quot;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;It will ignore any untracked new file in working directory and commit the tracked file.&lt;/p&gt;&lt;p&gt;(good to ignore out or bin folder created later after first track)&lt;/p&gt;&lt;p&gt;&lt;b&gt;git rm --cached foldername&lt;/b&gt;&lt;/p&gt;&lt;p&gt;remove tracking of file or folder. Good for out or bin folder&lt;/p&gt;&lt;p&gt;&lt;b&gt;git restore --staged filename&lt;/b&gt;&lt;/p&gt;&lt;p&gt;To remove from staged(green to red) but still tracking.&lt;/p&gt;&lt;p&gt;&lt;b&gt;git checkout -- filename&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Restore the changes as per last commit. You will lost current changes in working file.&lt;/p&gt;&lt;p&gt;&lt;b&gt;git checkout -- f&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Restore working directory with last commit.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;u&gt;Branching: Make new branch (i.e. your version of code):&lt;/u&gt;&lt;/h3&gt;&lt;p&gt;&lt;b&gt;git checkout -b branchname&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Show branches&lt;/p&gt;&lt;p&gt;&lt;b&gt;git branch&lt;/b&gt;&lt;/p&gt;&lt;p&gt;make the changes&lt;/p&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;b&gt;git add .&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;b&gt;git commit -m &quot;changes in devbranch&quot;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;branch switching (Always switch branch after commit)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;b&gt;git checkout existingbranchname&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;It will switch branch to master.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;b&gt;git checkout master&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;To merge branch with master. Run following in master and commit.&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;b&gt;git merge branchname&lt;/b&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;git branch --merged&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;git branch --no-merged&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;git branch -v&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;After merging branches can be deleted&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;b&gt;git branch -d branchname&lt;/b&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;Deleting remote branch&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;b&gt;git push -d origin branchname&lt;/b&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-weight: bold; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiekacwloTr7Wh1O8CZCZ7YtM-IBFM3-77gAQKDa2sPR0wE_ICxp6IH7_MDmjhkP-En-FPJjL2ia2NeiOBj3hzWSxgEqo1j9P4V7s8WC9vhyphenhyphenOrek62I1b71RQ66piyXKUC7OAI6mQ/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;588&quot; data-original-width=&quot;599&quot; height=&quot;393&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiekacwloTr7Wh1O8CZCZ7YtM-IBFM3-77gAQKDa2sPR0wE_ICxp6IH7_MDmjhkP-En-FPJjL2ia2NeiOBj3hzWSxgEqo1j9P4V7s8WC9vhyphenhyphenOrek62I1b71RQ66piyXKUC7OAI6mQ/w400-h393/image.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;merge idea branch (c12) to master and get c13.&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt; Now merge issue2 branch(c11) to master and get c14&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;u&gt;Remote&lt;/u&gt;&lt;/h3&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;Add your remote repository as origin&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;b&gt;git remote add origin &lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;https://github.com/vinodkotiya/bifpcl.git&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;Where to fetch and push&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;b&gt;git remote -v&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;To push all changes in master branch to remote origin&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;b&gt;git push -u origin master&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;To push all branch to origin&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;b&gt;git push origin&lt;/b&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 14px; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;Generate SSH Key&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;$ ssh-keygen -t rsa -b 4096 -C &quot;your_email@example.com&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;Run SSH agent&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;$ eval `ssh-agent -s`&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;Tell agent your key&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;$ ssh-add ~/.ssh/id_rsa&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;See SSH Key and copy it&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;$ tail &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;~/.ssh/id_rsa.pub&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;Go to Settings &amp;gt; SSH key in GITHub and paste the above key.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;After making any changes locally&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;git add .&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;git commit -m &quot;changes and pushing to github&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;git push -u origin master&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;Create and push branchname in remote origin&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;b&gt;git push origin branchname&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;How to merge remote to local&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;copyable-terminal-content f5&quot; id=&quot;empty-setup-push-repo-echo&quot; style=&quot;box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; overflow: auto;&quot;&gt;&lt;b&gt;&lt;span class=&quot;user-select-contain&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span data-targets=&quot;git-clone-help.helpTexts&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span face=&quot;SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace&quot; style=&quot;color: #24292e;&quot;&gt;git pull &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;https://github.com/vinodkotiya/bifpcl.git&lt;/b&gt;&lt;/pre&gt;&lt;div&gt;Pull = Fetch + Merge  fetch remote repository and merge with local&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKZO6DBjlQGTwIvnyHoUy7ncbxC5NCHms0KQ9fawpBLU4ZgkOsMx5vZ915Bf_jnn6tWLA7Mwju6CCm-DX1WdbnHnZBdD6SEq5LW0kqvKIxPBZMhvhe1ku0pRKBDih309-Lhazi0Q/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;374&quot; data-original-width=&quot;540&quot; height=&quot;445&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKZO6DBjlQGTwIvnyHoUy7ncbxC5NCHms0KQ9fawpBLU4ZgkOsMx5vZ915Bf_jnn6tWLA7Mwju6CCm-DX1WdbnHnZBdD6SEq5LW0kqvKIxPBZMhvhe1ku0pRKBDih309-Lhazi0Q/w640-h445/image.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;u&gt;Other useful commands&lt;/u&gt;&lt;/h3&gt;&lt;p&gt;&lt;b&gt;git log&lt;/b&gt;&lt;/p&gt;&lt;p&gt;see the change log. for changes see &lt;b&gt;log -p , log --stat, log --pretty=oneline , =short, =full, --since=2.days&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;git diff&lt;/b&gt;&lt;/p&gt;&lt;p&gt;To see the changes in stagged file and working&amp;nbsp; directory file&lt;/p&gt;&lt;p&gt;&lt;b&gt;git diff --stagged&lt;/b&gt;&lt;/p&gt;&lt;p&gt;to compare staging area with last commit.&lt;/p&gt;&lt;p&gt;&lt;b&gt;git rm filename&lt;/b&gt;&lt;/p&gt;&lt;p&gt;delete the file and staged&lt;/p&gt;&lt;p&gt;&lt;b&gt;git mv file1 file2&lt;/b&gt;&lt;/p&gt;&lt;p&gt;rename and staged&lt;/p&gt;&lt;p&gt;&lt;b&gt;rm -rf .git&lt;/b&gt;&lt;/p&gt;&lt;p&gt;delete the git repository&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;u&gt;Fork&lt;/u&gt;&lt;/h3&gt;&lt;p&gt;Fork is GITHUB feature.&lt;/p&gt;&lt;p&gt;You found someone&#39;s repo on github. Simply click fork to add it as your remote repo. Clone it locally and work.&lt;/p&gt;&lt;p&gt;&lt;b&gt;What to do if Original Repo changed and you want to sync.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8vksmRxKcTxwP0Jcbrfq5pUqW7eMCokYP27GiilhqgNtmFymqj6fWe2cb4mMV_a7tn80qyrpnxe3FYcr_2IElE5QgmPqrT3_-LHJysep5U78P_apgewBBiuKkqflN7Os7YdlEwQ/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;306&quot; data-original-width=&quot;427&quot; height=&quot;458&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8vksmRxKcTxwP0Jcbrfq5pUqW7eMCokYP27GiilhqgNtmFymqj6fWe2cb4mMV_a7tn80qyrpnxe3FYcr_2IElE5QgmPqrT3_-LHJysep5U78P_apgewBBiuKkqflN7Os7YdlEwQ/w640-h458/image.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Fetch + Merge can be done in single step Pull.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git remote add upstream url_of_original_repo&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git remote -v&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Now fetch original repo. It will create new branch called upstream/master&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git fetch upstream&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Now merge new branch with master&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git merge upstream/master&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Pull process done. Now push your local changes to your forked version to sync.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git push origin master&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;What to do if you want to Merge fork Repo to Original one.&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;You have to create Pull request for original repo owner. Basically owner will fetch your repo as branch. Test it and if found ok then merge with his repo to complete the pull request.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_QPxXkmKzIF-phyVBB-RbzgMNOyRA2akjlczEa7Cgk5dYcIF3HH3BbMg0PjDWhjJ-hqOf1k4ejLDgJyzhWFiVIiXQRhEpvQ5OYwkUPdTe7r5b55JDDWe3tyBTOf5Al0BxSomhJg/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;345&quot; data-original-width=&quot;579&quot; height=&quot;382&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_QPxXkmKzIF-phyVBB-RbzgMNOyRA2akjlczEa7Cgk5dYcIF3HH3BbMg0PjDWhjJ-hqOf1k4ejLDgJyzhWFiVIiXQRhEpvQ5OYwkUPdTe7r5b55JDDWe3tyBTOf5Al0BxSomhJg/w640-h382/image.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Fork UBCRocket code.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;It will add as vinodkotiya/UBCRocket&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Now start git bash&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git clone https://github.com/vinodkotiya/ubcrocket.git&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;It will download all data on local machine.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Go to folder&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;cd ubc*&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Edit any file.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;touch index.html&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Now&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git add .&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Commit&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git commit &quot;page updated&quot;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Push to the forked repository. It will update your version of the forked repository.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;b&gt;git push origin&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Click on the new pull request from your git account. Write why you are requesting for pull.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;- Written By&lt;p&gt;&lt;/p&gt;&lt;p&gt;Vinod Kotiya&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/3301854684625314534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/3301854684625314534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/3301854684625314534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/3301854684625314534'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2021/04/git-hub-quick-guide.html' title='GIT HUB quick guide'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz62q6nFk4p4uUavE8MRXnPLQEckx-AcS2Ohnp3WPNJLx1dLxqG6u1ezk16at6v3I7eMTX2eZs9e82OmbBo5KzDhl_Og8epq_FveWIp55NVEMt7v2N0uxfUEMvhFjqQyXedVdLjg/s72-w400-h343-c/image.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-3392158387323577891</id><published>2020-10-31T21:00:00.003-07:00</published><updated>2020-10-31T21:00:43.464-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Give access to students"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Meet"/><category scheme="http://www.blogger.com/atom/ns#" term="Remote Access"/><title type='text'>Giving Remote Access on Google Meet to Students Easily</title><content type='html'>&lt;p&gt;How to give remote access to your students?&amp;nbsp;&lt;/p&gt;&lt;p&gt;It covers how to give remote control of your computer and mouse to someone else in a Google Meet, or take remote control of their computer and mouse, for a teletherapy session or technology support or such.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Please follow the steps given &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b id=&quot;docs-internal-guid-c87c79f5-7fff-543d-54a6-d02e730572eb&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Presenter/ Teachers End&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;1. Install Chrome remote desktop extension &lt;/span&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/chrome-remote-desktop/inomeogfingihgjfjlpeplalcfajhgai?hl=en&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;https://chrome.google.com/webstore/detail/chrome-remote-desktop/inomeogfingihgjfjlpeplalcfajhgai?hl=en&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;After installation open https://remotedesktop.google.com/support&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 560px; overflow: hidden; width: 624px;&quot;&gt;&lt;img height=&quot;560&quot; src=&quot;https://lh5.googleusercontent.com/II9LdPKZKpk3B764euxf-4jyPSu-Bh9H2LxKW3zlN_4q_3KPrFg_UkmSvsWvZ_I-zMLRYdpOAw1R8I6yjC2M0NOd5rHnYnH9PICoBuq0dmsO06Eg1XJcjorMiLgujuJQYHoZeyhD&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;624&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;2. Now Generate code&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 279px; overflow: hidden; width: 624px;&quot;&gt;&lt;img height=&quot;279&quot; src=&quot;https://lh5.googleusercontent.com/welvo9lJhDXXTpiljLXUnO_VQyq837zU7ExtTswZEOeLOlOzBsI3ckFOCAZWxWXm-3SyuUphY6TLkc7T5j44vpQlyLGFHzzR0xmrW6WFByGcItRfggqFQPCj14fTJTLC0Xk4oWH7&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;624&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;2. Send the remote desktop link to student on chat in following format&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;https://remotedesktop.google.com/support/session/XXX&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;where XXX is 12 digit unique code&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;Eg. &amp;nbsp; &lt;/span&gt;&lt;a href=&quot;https://remotedesktop.google.com/support/session/441192092969&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;-webkit-text-decoration-skip: none; background-color: transparent; color: #1155cc; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;https://remotedesktop.google.com/support/session/441192092969&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;(This is what you will be sending to student on chat screen)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span id=&quot;docs-internal-guid-c87c79f5-7fff-543d-54a6-d02e730572eb&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Audience/Students End&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;3. When a student click the link it will ask him to connect your screen will be asked for permission.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 531px; overflow: hidden; width: 624px;&quot;&gt;&lt;img height=&quot;531&quot; src=&quot;https://lh5.googleusercontent.com/gtlnWrigjDfRfH6Umw9ljHF9Q7NjH0qrhig1Cfx9C9fb7WukRDx_r2Ds875YDGzz_Fpeqc1fD1g2g1MmIAJwKEDOKzDomopDKeOhD4s-tsxNeR8RHqT1q8zojunwtY_PhZbVKGsw&quot; style=&quot;margin-left: 0px; margin-top: 0px;&quot; width=&quot;624&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 531px; overflow: hidden; width: 624px;&quot;&gt;-Written By Vinod Kotiya&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 531px; overflow: hidden; width: 624px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;&quot;&gt;&lt;span style=&quot;border: none; display: inline-block; height: 531px; overflow: hidden; width: 624px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/3392158387323577891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/3392158387323577891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/3392158387323577891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/3392158387323577891'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2020/10/giving-remote-access-on-google-meet-to.html' title='Giving Remote Access on Google Meet to Students Easily'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/II9LdPKZKpk3B764euxf-4jyPSu-Bh9H2LxKW3zlN_4q_3KPrFg_UkmSvsWvZ_I-zMLRYdpOAw1R8I6yjC2M0NOd5rHnYnH9PICoBuq0dmsO06Eg1XJcjorMiLgujuJQYHoZeyhD=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-4683325965704158042</id><published>2020-05-16T02:19:00.000-07:00</published><updated>2020-05-16T02:27:31.367-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Automate birthday wish"/><category scheme="http://www.blogger.com/atom/ns#" term="birthday wish email"/><category scheme="http://www.blogger.com/atom/ns#" term="Gmail"/><category scheme="http://www.blogger.com/atom/ns#" term="Gmail using Google Sheet and GSrcipt"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Sheet and GSrcipt"/><title type='text'>Automate birthday wish email from Gmail using Google Sheet and GSrcipt</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;b&gt;Automate Bday Wish using gmail&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
Problem domain: In organisation people have to manually check the birthday from calendar to wish the concern.&lt;br /&gt;
A good solution is to set up an automated mailer for the wishes to send by email to your colleagues with CC to HR.&lt;br /&gt;
&lt;br /&gt;
Same automation concept can be utilized in other problem domain.&lt;br /&gt;
&lt;br /&gt;
Let’s Start :&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 1: Create a new google sheet &lt;/b&gt;and save&amp;nbsp; DOB, name, and email of your team/organization/Friends, etc&lt;br /&gt;
Choose Drive →Select New →Select Google Sheet&lt;br /&gt;
[[If you don&#39;t have these details then you can collect it using google form. To create a form, follow these steps:&lt;br /&gt;
Choose Drive →Select New →Select more →Select Google Forms]]&lt;br /&gt;
&lt;br /&gt;
Finally you will have a excel sheet which may looks like this.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnVLoyEQWaYTCEasGEycrJuD5Yh86oSXMjV-XtPxkz682NZatl1xVcZ8naGGd0B37hy0X1gySbvwxilL78dt48kybniUHNvVeor-FOJx23nJD6QnhRbCPynm752vtYZo7eDmNhOw/s1600/s1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;610&quot; data-original-width=&quot;844&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnVLoyEQWaYTCEasGEycrJuD5Yh86oSXMjV-XtPxkz682NZatl1xVcZ8naGGd0B37hy0X1gySbvwxilL78dt48kybniUHNvVeor-FOJx23nJD6QnhRbCPynm752vtYZo7eDmNhOw/s1600/s1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Copy the url upto slash to use in Google Script.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 2:&amp;nbsp;Now create an app script&lt;/b&gt;, that sends the email to the birthday person.&lt;br /&gt;
Choose Drive →Select More →Select Google Apps Script&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj-W0-ZeutiVVkjbpeh90SRPu1GzGsDXKOtxvmDgkJJi9iXSAdSZ1oyTznI3ULIHG848z9F6Xj3lQMY4zH17fJJfVfiEh74Nl-2KQunSnykRSRP57rJ1jG-4rAoD35PnIsHefCeg/s1600/s3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;595&quot; data-original-width=&quot;647&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj-W0-ZeutiVVkjbpeh90SRPu1GzGsDXKOtxvmDgkJJi9iXSAdSZ1oyTznI3ULIHG848z9F6Xj3lQMY4zH17fJJfVfiEh74Nl-2KQunSnykRSRP57rJ1jG-4rAoD35PnIsHefCeg/s1600/s3.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 3: Now create the script as shown. Source code you can copy.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAFMZjm8vBMoDd0NN7Le7m5kWs_LmNLpIVvrz4RRv54kDsdmXJQr8s-wWNPhw6x40JIQB0ueB5Jg6LKztCB8njNAu1kocvJpvLsiRBM2sK3coq8ke9mZWl0KCTidknGfjzx8FbzA/s1600/s2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;595&quot; data-original-width=&quot;1210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAFMZjm8vBMoDd0NN7Le7m5kWs_LmNLpIVvrz4RRv54kDsdmXJQr8s-wWNPhw6x40JIQB0ueB5Jg6LKztCB8njNAu1kocvJpvLsiRBM2sK3coq8ke9mZWl0KCTidknGfjzx8FbzA/s1600/s2.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is the source code to copy:&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;function sendBdayWishes(){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;var ss = SpreadsheetApp.openByUrl(&quot;https://docs.google.com/spreadsheets/d/16fbf4eQrFQ4CbMPZVLF-Qk_IZspP2-ex2z1YW0/&quot;); &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;//&amp;nbsp; Sheet Url must have slash at end&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;var sheet = ss.getSheetByName(&quot;Sheet1&quot;);&lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;// Make Sure Sheet name matches at the bottom&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;var cDate = new Date(); &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;//Present Day,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;for(var i =2 ;i&amp;lt;=sheet.getLastRow(); i++){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;//loop through each row&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;var bDate = sheet.getRange(i,2).getValue(); &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;// get Date from SpreadSheet 2nd column&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;&amp;nbsp; //now check if any date is matching&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;if(cDate.getDate()==bDate.getDate()){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;if(cDate.getMonth()==bDate.getMonth()){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;var name = sheet.getRange(i,1).getValue();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;var toMail= sheet.getRange(i,3).getValue() + &quot;,&quot; + &quot;vinodkotiya@gmail.com&quot; ; &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;// get email from SpreadSheet 3rd column&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;var htmlBody =&amp;nbsp; &quot;Dear &quot; + name + &quot; &lt;br /&gt; We wish you an amazing year that ends with accomplishing all the great goals that you have set! No one could do a better job than the job you do. We thank you for all your efforts!&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #ffcc00;&quot;&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;&lt;b&gt; Enjoy your birthday! Cheers!&lt;b&gt; &lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;
&lt;br /&gt;&lt;br /&gt;-Team BIFPCL&quot;&amp;nbsp; ;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;MailApp.sendEmail(toMail,&#39;Happy BirthDay &#39;+name,&#39; &#39; ,{htmlBody : htmlBody});// send to myself to test&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;sheet.getRange(i,4).setValue(&quot;Bday wishes sent&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #351c75;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
There is a play button to test the script and remove any errors.&lt;br /&gt;
Suggestion: To test the app give a date of birth as present day of testing for your name.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 4: Give the Authorization to run the Script&lt;/b&gt;&lt;br /&gt;
The first time you run it, Google requires you to authorize it. An “Authorization required” window will pop up asking for your permission. Select “Review Permissions.”&lt;br /&gt;
It will then ask for a Gmail account. Click on your account name and click “Allow”.&lt;br /&gt;
It will run the script and send on an email on the specified date. Now we can automate this process by trigger.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;Step 5: Now create the trigger to automate the process.&lt;/b&gt;&lt;br /&gt;
Click on the Clock button in the App Script code →Click on + Add Trigger&lt;br /&gt;
A new window will open. Add a new trigger like this which will run on daily basis at midnight once.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeP5A03DKr2KHtJ0FOIHWUkxFlts9asXkTnlZiZoXraokLEeRFUzu1M-zh2SZGnrv4UV_EfXzt6GIe2PYR4T_Y7V1jk7b3qaU9tQ2fthKAlMo1DmD-Zit6gxL1XRPObPdt2RuI-w/s1600/s4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;625&quot; data-original-width=&quot;764&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeP5A03DKr2KHtJ0FOIHWUkxFlts9asXkTnlZiZoXraokLEeRFUzu1M-zh2SZGnrv4UV_EfXzt6GIe2PYR4T_Y7V1jk7b3qaU9tQ2fthKAlMo1DmD-Zit6gxL1XRPObPdt2RuI-w/s1600/s4.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That&#39;s it. It will automatically send bday wish to concerned person at 1 AM after triggering daily.&lt;br /&gt;
&lt;br /&gt;
-Written by&lt;br /&gt;
Vinod Kotiya&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/4683325965704158042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/4683325965704158042' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/4683325965704158042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/4683325965704158042'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2020/05/automate-birthday-wish-email-from-gmail.html' title='Automate birthday wish email from Gmail using Google Sheet and GSrcipt'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnVLoyEQWaYTCEasGEycrJuD5Yh86oSXMjV-XtPxkz682NZatl1xVcZ8naGGd0B37hy0X1gySbvwxilL78dt48kybniUHNvVeor-FOJx23nJD6QnhRbCPynm752vtYZo7eDmNhOw/s72-c/s1.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-536819209592119457</id><published>2020-03-08T22:16:00.002-07:00</published><updated>2020-03-08T22:16:55.486-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MIT App Inventor"/><category scheme="http://www.blogger.com/atom/ns#" term="MIT App Inventor with SQLite Database"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLite Database"/><title type='text'>MIT App Inventor with SQLite Database Android App Development for Novice</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;I found tinyDB not solved my purpose so I wanted a small relational database like SQLite in MIT App Inventor. MIT AI is great tool to create android app very easily. You can have your own account at&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://ai2.appinventor.mit.edu/&quot;&gt;http://ai2.appinventor.mit.edu/&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;You can download SQLite extension for MIT AI from my github page&amp;nbsp;&lt;a href=&quot;https://github.com/vinodkotiya/aix-SQLite&quot;&gt;https://github.com/vinodkotiya/aix-SQLite&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Installation&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Installation may depend on which App Inventor flavor you&#39;re using, but I think they&#39;re all pretty similar.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Open the &quot;Designer&quot; tab of your application.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;At the bottom of the Palette on the left side, open the &quot;Extensions&quot; category.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Click the &quot;Import extension&quot; link.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Select the aix file you downloaded above and click the &quot;Import&quot; button.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Wait a few seconds and you should see a message saying the extension was imported. You should also see a SQLite extension appear in the &quot;Extensions&quot; category.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Drag the SQLite extension into your app and carry on!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Working example is available in Example folder of GITHub.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;After adding the extension upload your csv data as insert1.csv in files section.&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL6SXjQFHjhyphenhyphenRtFWkxCiPPGlp9L_hCC5kFA78_HCKt0foeSf_taQBO28w6TgQMyKA9tROgWVf2YQgV4dLsjhKqpZxMBHbN94f8J-xPfMvCpQnFdUNUY7rHAnRsEoXlCFVF_NvPdQ/s1600/Untitled.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;823&quot; data-original-width=&quot;1078&quot; height=&quot;488&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL6SXjQFHjhyphenhyphenRtFWkxCiPPGlp9L_hCC5kFA78_HCKt0foeSf_taQBO28w6TgQMyKA9tROgWVf2YQgV4dLsjhKqpZxMBHbN94f8J-xPfMvCpQnFdUNUY7rHAnRsEoXlCFVF_NvPdQ/s640/Untitled.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Now write initialise code. When database doesnot exist on first load database is opened and table is created with importing of insert1.csv. Later on this code will not be executed.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC7rWHWO4Phm6BtvVoW-hst8dv9LAOJCfP1O8ArCcOSBCWGP7yAyJyrcAxOfPHByFJewUiNt415NV1giJKN6N4x-gXoMnDHilmERM6JPMY8q5M-fFnE9BJ4xOk5TBBbYEqs-9Cjg/s1600/Untitled1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;712&quot; data-original-width=&quot;968&quot; height=&quot;470&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC7rWHWO4Phm6BtvVoW-hst8dv9LAOJCfP1O8ArCcOSBCWGP7yAyJyrcAxOfPHByFJewUiNt415NV1giJKN6N4x-gXoMnDHilmERM6JPMY8q5M-fFnE9BJ4xOk5TBBbYEqs-9Cjg/s640/Untitled1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Here is code to see any SQL error using notifier. and search query in a button code.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2rRLnkiiZ5Lxf85yU2Kzcgp8kzbewHyOIwxbyGfSyDqeKBWNNhAsGjS3UtCaOCB6Mkt9FDxsm07L0i58zN4zy1R98BrlPaAnCKMt9SbmlEF1qtZP3pGBoGJxYUYgTV_55IoDItA/s1600/Untitled2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;1144&quot; height=&quot;334&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2rRLnkiiZ5Lxf85yU2Kzcgp8kzbewHyOIwxbyGfSyDqeKBWNNhAsGjS3UtCaOCB6Mkt9FDxsm07L0i58zN4zy1R98BrlPaAnCKMt9SbmlEF1qtZP3pGBoGJxYUYgTV_55IoDItA/s640/Untitled2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Source code available at&amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://github.com/vinodkotiya/aix-SQLite&quot;&gt;https://github.com/vinodkotiya/aix-SQLite&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Written By&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;Vinod Kotiya&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/536819209592119457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/536819209592119457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/536819209592119457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/536819209592119457'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2020/03/mit-app-inventor-with-sqlite-database.html' title='MIT App Inventor with SQLite Database Android App Development for Novice'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL6SXjQFHjhyphenhyphenRtFWkxCiPPGlp9L_hCC5kFA78_HCKt0foeSf_taQBO28w6TgQMyKA9tROgWVf2YQgV4dLsjhKqpZxMBHbN94f8J-xPfMvCpQnFdUNUY7rHAnRsEoXlCFVF_NvPdQ/s72-c/Untitled.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19327040.post-2907945038085448530</id><published>2020-01-30T04:33:00.001-08:00</published><updated>2020-01-30T04:33:22.896-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Biometric Machine"/><category scheme="http://www.blogger.com/atom/ns#" term="face"/><category scheme="http://www.blogger.com/atom/ns#" term="finger recognition"/><category scheme="http://www.blogger.com/atom/ns#" term="Process"/><category scheme="http://www.blogger.com/atom/ns#" term="Pull data"/><title type='text'>Pull data from Biometric Machine with face and finger recognition to Process and Upload</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Pull data from Biometric Machine to Process and Upload&lt;br /&gt;
&lt;br /&gt;
Here is the code to pull data from multiple biometric machines having&amp;nbsp;&amp;nbsp;face and finger recognition through tcp/ip using same port.&lt;br /&gt;
&lt;br /&gt;
1. Connect with Machines,,&lt;br /&gt;
2. Get data and save into Datatable&lt;br /&gt;
3. Load csv file havind mapping of Biometric ID with Employee ID&lt;br /&gt;
4. Sort the datatable to Process the Data and mark In punch and Out punch in required format.&lt;br /&gt;
5. Finally generate the CSV File&lt;br /&gt;
6. Alternatively same data can be uploaded directly to HRMS Server database.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXeedbg-NZVKKJGmN5qBn3EdZaW2gmvo6mVvO5JICPsmLaZwChmxu_20LlHOOyO2ScrJE3EW_qUksLD96HLxOB2xERwlf6_g3AVIpXQHeDtFcTgWSchzn2tX796NDOvtp1HNZKg/s1600/Capture.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;576&quot; data-original-width=&quot;426&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXeedbg-NZVKKJGmN5qBn3EdZaW2gmvo6mVvO5JICPsmLaZwChmxu_20LlHOOyO2ScrJE3EW_qUksLD96HLxOB2xERwlf6_g3AVIpXQHeDtFcTgWSchzn2tX796NDOvtp1HNZKg/s1600/Capture.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Prerequisite:&lt;br /&gt;
VB.Net&lt;br /&gt;
zkemkeeper.dll&lt;br /&gt;
My machines with different brands worked with above dll.&lt;br /&gt;
Here is the code&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;info clipbox&quot; style=&quot;background: rgb(252, 242, 221); border: 2px solid rgb(255, 174, 0); color: #888888; font-family: verdana; font-size: 9pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 18pt; margin-bottom: 20px; margin-top: 4px; overflow: auto; padding: 15px; width: 800px;&quot;&gt;Private Sub btnGo_Click(sender As Object, e As EventArgs) Handles btnGo.Click
        &#39;  Try
        &#39;&#39; Load Bio ID from CSV file
        Dim bio As New Dictionary(Of String, String)
            Try
                Dim sr As New StreamReader(&quot;C:\bio\eid.csv&quot;)

                Do While sr.Peek &amp;lt;&amp;gt; -1
                    Dim linearray As String() = sr.ReadLine().Split(&quot;,&quot;)
                    If linearray.Length = 2 Then
                        bio.Add(linearray(0), linearray(1))
                    End If
                Loop
                &#39;&#39;
                &#39;&#39; to get emp no give id like bio(&quot;bio id&quot;)
                &#39;&#39;
            Catch ex1 As Exception
                MsgBox(&quot;Error reading employee number from eid.csv&quot;)
                Return
            End Try
            Dim idwErrorCode As Integer
            Dim sdwEnrollNumber As String = &quot;&quot;
            Dim idwVerifyMode As Integer
            Dim idwInOutMode As Integer
            Dim idwYear As Integer
            Dim idwMonth As Integer
            Dim idwDay As Integer
            Dim idwHour As Integer
            Dim idwMinute As Integer
            Dim idwSecond As Integer
        Dim idwWorkcode As Integer
        Dim attDate() As String = txtDate.Text.Split(&quot;.&quot;)

        Cursor = Cursors.WaitCursor
            If btnConnect.Text = &quot;Disconnect&quot; Then
                axCZKEM1.Disconnect()
                bIsConnected = False
                btnConnect.Text = &quot;Connect&quot;
                lblState.Text = &quot;Current State:Disconnected&quot;
                Cursor = Cursors.Default
                Return
            End If
        Dim finalDT As New System.Data.DataTable()
        finalDT.Columns.Add(&quot;bioid&quot;, GetType(Int32))
        finalDT.Columns.Add(&quot;pdate&quot;, GetType(Int32))
        finalDT.Columns.Add(&quot;ptime&quot;, GetType(Int32))
        finalDT.Columns.Add(&quot;eid&quot;, GetType(String))
        finalDT.Columns.Add(&quot;adate&quot;, GetType(String))
        finalDT.Columns.Add(&quot;flag&quot;, GetType(String))
        finalDT.Columns.Add(&quot;atime&quot;, GetType(String))
        &#39;   Dim machine() As String = {&quot;10.8.215.4&quot;, &quot;10.8.215.5&quot;, &quot;192.168.1.201&quot;}
        Dim machine() As String = txtIPs.Text.Split(&quot;,&quot;)
        For m As Integer = 0 To machine.Length - 1
            &#39;&#39; Connect to machine one by one
            bIsConnected = axCZKEM1.Connect_Net(machine(m).Trim(), Convert.ToInt32(txtPorts.Text.Trim()))
            If bIsConnected = True Then
                btnConnect.Text = &quot;Disconnect&quot;
                btnConnect.Refresh()
                lblState.Text = &quot;Current State:Connected&quot;
                iMachineNumber = 1 &#39;In fact,when you are using the tcp/ip communication,this parameter will be ignored,that is any integer will all right.Here we use 1.
                axCZKEM1.RegEvent(iMachineNumber, 65535) &#39;Here you can register the realtime events that you want to be triggered(the parameters 65535 means registering all)
            Else
                axCZKEM1.GetLastError(idwErrorCode)
                MsgBox(&quot;Unable to connect the first device,ErrorCode=&quot; &amp;amp; idwErrorCode, MsgBoxStyle.Exclamation, &quot;Error&quot;)
                &#39;  Return
            End If
            Cursor = Cursors.Default
            &#39;&#39;&#39; Now download data and process
            Dim iGLCount = 0

            Cursor = Cursors.WaitCursor
            axCZKEM1.EnableDevice(iMachineNumber, False) &#39;disable the device
            If axCZKEM1.ReadGeneralLogData(iMachineNumber) Then &#39;read all the attendance records to the memory
                &#39;get records from the memory
                While axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, sdwEnrollNumber, idwVerifyMode, idwInOutMode, idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond, idwWorkcode)
                    iGLCount  = 1
                    Dim bioid As String = sdwEnrollNumber.ToString()
                    Dim pDate = idwYear.ToString() &amp;amp; idwMonth.ToString().PadLeft(2, &quot;0&quot;) &amp;amp; idwDay.ToString().PadLeft(2, &quot;0&quot;)
                    Dim ptime = idwHour.ToString().PadLeft(2, &quot;0&quot;) &amp;amp; idwMinute.ToString().PadLeft(2, &quot;0&quot;)
                    Dim aDate = idwDay.ToString().PadLeft(2, &quot;0&quot;) &amp;amp; &quot;/&quot; &amp;amp; idwMonth.ToString().PadLeft(2, &quot;0&quot;) &amp;amp; &quot;/&quot; &amp;amp; idwYear.ToString()
                    Dim atime = idwHour.ToString().PadLeft(2, &quot;0&quot;) &amp;amp; &quot;:&quot; &amp;amp; idwMinute.ToString().PadLeft(2, &quot;0&quot;)
                    &#39;&#39; only add records where date is more than dd.mm.yyyy
                    If idwDay &amp;gt;= attDate(0) And idwMonth = attDate(1) And idwYear = attDate(2) Then
                        finalDT.Rows.Add(bioid, pDate, ptime, &quot;0&quot;, aDate, &quot;I&quot;, atime)
                    End If
                End While
                &#39;&#39;&#39; data recieved from first machine now disconnect
                axCZKEM1.Disconnect()
                bIsConnected = False
                btnConnect.Text = &quot;Connect&quot;
                lblState.Text = &quot;Current State:Disconnected&quot;
                Cursor = Cursors.Default
            Else
                Cursor = Cursors.Default
                axCZKEM1.GetLastError(idwErrorCode)
                If idwErrorCode &amp;lt;&amp;gt; 0 Then
                    MsgBox(&quot;Reading data from terminal failed,ErrorCode: &quot; &amp;amp; idwErrorCode, MsgBoxStyle.Exclamation, &quot;Error&quot;)
                Else
                    MsgBox(&quot;No data from terminal returns!&quot;, MsgBoxStyle.Exclamation, &quot;Error&quot;)
                End If
            End If
            &#39;&#39; now connect second machine
            axCZKEM1.EnableDevice(iMachineNumber, True) &#39;enable the device
            Cursor = Cursors.Default
        Next
        &#39;&#39; Now merge both data
        &#39;finalDT.Merge(finalDT1)
        finalDT.DefaultView.Sort = &quot; bioid, pdate, ptime ASC&quot;
        &#39;Dim dtView = finalDT.DefaultView
        &#39;dtView.Sort = &quot; eid, pdate, ptime ASC&quot;
        &#39;Dim finalDT1 = dtView
        Dim bioidnotFound = &quot;&quot;
        finalDT = finalDT.DefaultView.ToTable
            Dim bioidLast = &quot;0&quot;
            Dim pdateLast = 0
            Dim ptimelast = 0
            For Each r As DataRow In finalDT.Rows
                If bioidLast = r(0) And pdateLast = r(1) Then
                    r(5) = &quot;O&quot;
                Else
                    r(5) = &quot;I&quot; &#39;&amp;amp; eidLast &amp;amp; &quot; &quot; &amp;amp; pdateLast
                End If
            &#39;&#39;find emp id
            Try
                r(3) = bio(r(0).ToString)
            Catch ex As Exception
                r(3) = r(0).ToString
                bioidnotFound = bioidnotFound &amp;amp; r(0).ToString &amp;amp; &quot;, &quot;
            End Try
            bioidLast = r(0)
                pdateLast = r(1)
                ptimelast = r(2)
            Next
        DataGridView1.DataSource = finalDT
        &#39;Dim max As DateTime = finalDT.Select(&quot;pDate=&#39;2019-01-21&#39;&quot;).AsEnumerable().Min(Function(r) r.Field(Of DateTime)(&quot;pTime&quot;))
        &#39;txtIP.Text = max.ToString
        &#39; DataGridView1.DataBindings
        &#39;&#39;&#39; Now write to CSV File
        &#39;&#39;&#39; 
        &#39;Build the CSV file data as a Comma separated string.
        Dim csv As String = String.Empty

        &#39;Add the Header row for CSV file.
        &#39;For Each column As DataColumn In finalDT.Columns
        &#39;    csv  = column.ColumnName &amp;amp; &quot;,&quot;c
        &#39;Next

        &#39;Add new line.
        &#39;  csv  = vbCr &amp;amp; vbLf

        &#39;Adding the Rows
        Dim lastrecord = &quot;&quot;
        For Each row As DataRow In finalDT.Rows
            Dim j = 0
            If row(3).ToString.StartsWith(&quot;E&quot;) Then
                Dim newrecord = &quot;&quot;
                For Each cell As String In row.ItemArray
                    &#39;Add the Data rows.
                    If j &amp;gt; 2 And j &amp;lt; finalDT.Columns.Count - 1 Then
                        newrecord = newrecord   cell.ToString().Replace(&quot;,&quot;, &quot;;&quot;) &amp;amp; &quot;,&quot;
                    ElseIf j &amp;gt; 2 Then
                        newrecord = newrecord   cell.ToString().Replace(&quot;,&quot;, &quot;;&quot;)
                    End If
                    j = j   1
                Next
                &#39;Add new line. don&#39;t add duplicate rows
                If newrecord &amp;lt;&amp;gt; lastrecord Then csv = csv &amp;amp; newrecord &amp;amp; vbCr &amp;amp; vbLf
                lastrecord = newrecord
            End If
        Next

        &#39;Exporting to Excel
        Dim folderPath As String = &quot;C:\bio\&quot;
            If Not System.IO.Directory.Exists(folderPath) Then
                Directory.CreateDirectory(folderPath)
            End If
            File.WriteAllText(folderPath &amp;amp; &quot;Attendence.csv&quot;, csv)

        lbLog.Text = &quot;CSV Generated BioID not Found &quot; &amp;amp; bioidnotFound
        &#39;&#39;&#39; CSV File created.
        &#39;&#39;&#39;  Now try to push data to remote SQL server
        &#39;&#39;&#39;  
        Dim constring = &quot;&quot;

        &#39;Catch ex As Exception
        &#39;    Dim trace As System.Diagnostics.StackTrace = New System.Diagnostics.StackTrace(ex, True)
        &#39;    MsgBox(trace.GetFrame(0).GetFileLineNumber() &amp;amp; ex.Message)


        &#39;End Try

    End Sub&lt;/pre&gt;
Final Output in CSV Format&lt;br /&gt;
Emp No , Date, Flag(In/Out), time&lt;br /&gt;
ENI09283,15/01/2020,I,9:12&lt;br /&gt;
ENI09283,15/01/2020,O,18:52&lt;br /&gt;
ENI09283,16/01/2020,I,08:53&lt;br /&gt;
ENI09283,16/01/2020,O,18:32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Written By Vinod Kotiya&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://vinodkotiya.blogspot.com/feeds/2907945038085448530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/19327040/2907945038085448530' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/2907945038085448530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19327040/posts/default/2907945038085448530'/><link rel='alternate' type='text/html' href='http://vinodkotiya.blogspot.com/2020/01/pull-data-from-biometric-machine-with.html' title='Pull data from Biometric Machine with face and finger recognition to Process and Upload'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXeedbg-NZVKKJGmN5qBn3EdZaW2gmvo6mVvO5JICPsmLaZwChmxu_20LlHOOyO2ScrJE3EW_qUksLD96HLxOB2xERwlf6_g3AVIpXQHeDtFcTgWSchzn2tX796NDOvtp1HNZKg/s72-c/Capture.PNG" height="72" width="72"/><thr:total>2</thr:total></entry></feed>