<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ishaan Sunita Pandita on Medium]]></title>
        <description><![CDATA[Stories by Ishaan Sunita Pandita on Medium]]></description>
        <link>https://medium.com/@emperorarthurix?source=rss-c81326ee2e15------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*lPR5wKZ3xM2BgvnQMOTr9Q.png</url>
            <title>Stories by Ishaan Sunita Pandita on Medium</title>
            <link>https://medium.com/@emperorarthurix?source=rss-c81326ee2e15------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 08 Jun 2026 17:15:44 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@emperorarthurix/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Power BI Connections]]></title>
            <link>https://medium.com/@emperorarthurix/power-bi-connections-2d9482eb4aca?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/2d9482eb4aca</guid>
            <category><![CDATA[odbc]]></category>
            <category><![CDATA[power-bi]]></category>
            <category><![CDATA[postgresql]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[database]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sat, 16 Mar 2024 07:02:10 GMT</pubDate>
            <atom:updated>2024-03-16T07:02:10.534Z</atom:updated>
            <content:encoded><![CDATA[<h4>Connecting to a Database Server</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*MVhwPSJ6qmtdsYuh" /><figcaption>Photo by <a href="https://unsplash.com/@growtika?utm_source=medium&amp;utm_medium=referral">Growtika</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>What is a Power BI Connection?</h3><p><a href="https://www.microsoft.com/en-us/power-platform/products/power-bi">Power BI </a>is a proprietary data visualisation software offered by <a href="https://www.microsoft.com/">Microsoft</a>, as an essential component of the <a href="https://www.microsoft.com/en-us/power-platform">Microsoft Power Platform</a>.</p><p>Power BI helps users connect to a wide variety of data sources without having to write complex code for each one, with the help of powerful built-in Data Connectors. Each data source is linked with a Power BI report through a Power BI Connection established with the help of these built-in connectors.</p><p>Once a Connection to a Data Source is established, you can transform data instantly before loading it into Power BI, or you can load the data first and transform it according to your needs later, with the help of Power Query, a versatile tool built for data wrangling and pre-processing.</p><h3>How do I connect Power BI to my database?</h3><figure><img alt="A screenshot of the ‘Get Data’ window in Power BI" src="https://cdn-images-1.medium.com/max/1021/1*FPcP2XhVFjfjEPfKxFSRIw.png" /><figcaption>Image Source: <a href="https://www.microsoft.com/en-us/power-platform/products/power-bi">Microsoft Power BI</a></figcaption></figure><p>One of the most used forms of data storage are, by far, databases. Thus, developers at Microsoft have made sure that connecting to databases is a ready-to-use feature in Power BI. There are various connectors for each type of database to establish a data source connection in Power BI, a few of which are:</p><ul><li>SQL Server Database Connector</li><li>Access Database Connector</li><li>Oracle Database Connector</li><li>MySQL Database Connector</li><li>PostgreSQL Database Connector</li><li>Google BigQuery Connector</li><li>Snowflake Connector</li><li>Amazon Redshift Connector</li><li>ODBC Connector</li></ul><p>Any of these connectors may be used, along with appropriate configurations, to connect to the desired database as a data source for Power BI.</p><p>This article focuses on connecting to a local PostgreSQL Database for demonstration.</p><h3>How do I connect to PostgreSQL in Power BI?</h3><p>PostgreSQL connections in Power BI require a little bit of effort to set up, but once configured, the connection runs smoothly throughout the analysis.</p><p>There are a few different ways to connect to a Local PostgreSQL database in Power BI:</p><ul><li>PostgreSQL Database Connector</li><li>ODBC Connector</li></ul><p>This article discusses both methods to connect a demonstration database to Power BI.</p><p>If you wish to understand how to connect a Remote PostgreSQL Database to Power BI, refer to the <strong><em>hints</em></strong> provided in this article.</p><h4>Method 1: Connecting using the Native PostgreSQL Connector for Power BI</h4><p>Connecting to a Local PostgreSQL Database is the easiest when you have the latest compatible version of Power BI and PostgreSQL on your device.</p><blockquote>This demonstration is based on PostgreSQL 14 and February 2024 version of Power BI.</blockquote><p><strong>Step 1: Start your local PostgreSQL Server</strong></p><p>You can use Command Prompt on Windows to run the following commands to start your Local PostgreSQL Server on your device:</p><pre>cd &lt;path_to_directory_where_postgres_is_installed&gt;/data<br>pg_ctl -D . start</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*B5Tbt4LWUoZoYcAGAf0DaQ.png" /><figcaption>Starting the Local PostgreSQL Server</figcaption></figure><blockquote>Note: Whenever you want to stop the server from running, run the following command: pg_ctl -D . stop in the same directory.</blockquote><p><strong>Step 2: Log in to pgAdmin and Database Server</strong></p><p>This article is based on pgAdmin as the GUI for administration of the PostgreSQL Database. You may use any other interface, or even the CLI to perform the required login actions.</p><p>This is how pgAdmin should look on startup and after logging in:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*neWeOvRG5ov3JpGqcjj7PA.png" /><figcaption>pgAdmin Startup Screen</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cU1L62Bg4deKw-nrPDWBBg.png" /><figcaption>pgAdmin after logging in successfully and selecting the required database</figcaption></figure><p>Once logged in, navigate to the desired database through the side menu. Here, we are going to work with the WorldPopulationTest database, which has one table Population 2019:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ytzha136CGJa1kVhgDC4wQ.png" /><figcaption>First 100 Rows of Selected Table</figcaption></figure><p>Now we know that our database has data in it, and is ready to be imported into Power BI!</p><p><strong>Step 3: Open a new Power BI File and Click ‘Get Data’</strong></p><p>Open the Power BI Desktop application on your device, and once you’ve logged in, click on the Get Data dropdown in the toolbar on top.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hA1WeiTBr1dNpZ7hc09Rsw.png" /><figcaption>Get Data in Power BI</figcaption></figure><p>Now, choose More... to get a full list of sources</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PKZ_ToF1kIIvZyiPJXt08Q.png" /><figcaption>List of All Connectors in Power BI</figcaption></figure><p><strong>Step 4: Search for the PostgreSQL Database Connector</strong></p><p>Once the menu is open, either scroll down, or type in the search box to search for the PostgreSQL Database connector in Power BI and click Connect.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1021/1*39RO5XTLD2WzRBkh6Cm-ag.png" /><figcaption>Search for PostgreSQL Connector</figcaption></figure><p><strong>Step 5: Configure the Database URL and Credentials for Power BI</strong></p><p>Once you click Connect , you will be shown a dialog box with prompts to enter the Server Name or Address and Database Name.</p><p>Enter localhost to connect to a Local PostgreSQL Server.</p><blockquote>Hint: For a remote connection, this is the step where things become different. You need to enter the IP address of the Remote Server if it is hosted online.</blockquote><p>Enter the name of the Database which you want to connect to. In this case, we enter WorldPopulationTest .</p><p>Now, for the purpose of demonstration, we will import all the data from the database into Power BI using the Import Data Connectivity Mode. Keep in mind this mode has memory limitations. The other option would be to establish a Direct Query connection, so that most of the processing is shifted outside of Power BI and back to the Database Server, in a Live and Near-Real-Time connection. This creates additional load on the server so you must evaluate your needs carefully before trying this in a production environment.</p><p>We may also configure only specific SQL Stored Procedures or Functions to be run in the Advanced Options section, but for the purpose of this article, we shall import the entire database without any function calls.</p><p>The final configuration for this import should look like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LvRSIUpkg_IO1a49_1mrGQ.png" /><figcaption>Configuration for Data Import through Native PostgreSQL Connector in Power BI</figcaption></figure><p><strong>Step 6: Import the data</strong></p><p>Now, we can click OK to start the import process!</p><p>But wait, no data has loaded yet? That’s because we still need to choose which tables to import. In the WorldPopulationDemo database, there is one public schema, with one table Population 2019 . We can select this table for import from the new Navigator dialog box which shows up:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QRPw_UhqmWLDArG1E6LWLg.png" /><figcaption>Navigator Dialog Box to Choose Desired Tables to import</figcaption></figure><p>Here, we may choose to either <strong>Load</strong> the data as it is, or, to <strong>Transform Data</strong> in order to clean or preprocess data as we need it. Let us choose Transform Data to have a look at the Power Query interface.</p><p>Clicking <strong>Transform Data</strong> takes us into a new Power Query window, where we can make changes to the data before actually importing it into Power BI as a data model.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RpgWdaLy-oZ7qETadSNaPg.png" /><figcaption>Power Query Window for Transforming Data</figcaption></figure><p>Here, let us assume that the MidPeriod column is of no use to us during this analysis, so let us choose all columns except that one in our final data model:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iHkc-T5Lgk5R3ykk8Q4tBg.png" /><figcaption>Final Data Model preview</figcaption></figure><p>With this change, we have can go ahead and click Close &amp; Apply on the top left corner to apply changes and load the data into Power BI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NYllLfO4see7pEBLIDLVlA.png" /><figcaption>Loading Transformed Data into Power BI</figcaption></figure><p>And viola! We have our data loaded into Power BI and ready to use!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cykPXkGp_k-maaPTtTn5YA.png" /><figcaption>Loaded Data Model</figcaption></figure><h4>Method 2: Connecting using the ODBC Connector in Power BI</h4><p>In case you face issues (yes, there are a few known issues) while connecting to Power BI using the Native PostgreSQL Connector, you have another option!</p><p><strong>Step 1: Install a PostgreSQL ODBC Driver on your device</strong></p><p>You can set up an ODBC Driver for PostgreSQL and use the Power BI ODBC Connector to establish a connection with the ODBC Driver. Make sure that your Power BI installation type (32-bit or 64-bit) matches your ODBC Driver type (32-bit or 64-bit).</p><p>You can download and install the Official PostgreSQL ODBC Driver from their web page, <a href="https://www.postgresql.org/ftp/odbc/versions/">here</a>:</p><p><a href="https://www.postgresql.org/ftp/odbc/versions/">File Browser</a></p><p><strong>Step 2: Configure a Data Source Name (DSN) on your device</strong></p><p>Once you have installed the PostgreSQL ODBC Driver along with your PostgreSQL Installation, you can configure the ODBC Driver on your machine from the ODBC Data Sources management portal on your device.</p><p>For Windows users, just open search in the taskbar and type ODBC Data Sources into it. Depending on the type of installation (32-bit or 64-bit), open the appropriate app.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vVLrq0d4Oiyxbgsihq_DAQ.png" /><figcaption>Search for ODBC Data Sources on your system</figcaption></figure><p>Now, you can configure a Data Source Name (DSN) for your PostgreSQL ODBC Driver, provide the necessary credentials and configuration under System DSN.</p><p>For the Local Database, enter server name as localhost and port as (default for PostgreSQL) 5432 or the port from which you are accessing your PostgreSQL Database.</p><blockquote>Hint: When connecting to a Remote Database, this is where things will get different. You need to enter the IP Address of the Database Server in the Server section while configuring the DSN for a Remote Database hosted online.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/889/1*iZ6aVXM0xOyWI793e8wnxQ.png" /><figcaption>Configuring ODBC DSN for PostgreSQL</figcaption></figure><p>Test the connection. If you get a Connection Successful pop up, your ODBC Driver is running as expected. Save the configuration.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/315/1*PCBxmo_2dGY7RxIxpMa7XQ.png" /><figcaption>Testing the Connection</figcaption></figure><p><strong>Step 3: Open a new Power BI File and Click ‘Get Data’</strong></p><p>Open the Power BI Desktop application on your device, and once you’ve logged in, click on the Get Data dropdown in the toolbar on top.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hA1WeiTBr1dNpZ7hc09Rsw.png" /><figcaption>Get Data in Power BI</figcaption></figure><p>Now, choose More... to get a full list of sources</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PKZ_ToF1kIIvZyiPJXt08Q.png" /><figcaption>List of All Connectors in Power BI</figcaption></figure><p><strong>Step 4: Search for the ODBC Connector</strong></p><p>Once the menu is open, either scroll down, or type in the search box to search for the ODBC connector in Power BI and click Connect.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1021/1*iDM3a7FxcpIqIYu8m3BTaA.png" /><figcaption>Search for the ODBC Connector</figcaption></figure><p><strong>Step 5: Configure the ODBC DSN and Credentials for Connection</strong></p><p>You might be shown a pop-up dialog box with nothing but a dropdown in it:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GwO3i6yZLVJF8FHHrZIA3Q.png" /><figcaption>Connection From ODBC Dialog Box</figcaption></figure><p>Do not worry, this is supposed to happen. From the DSN dropdown, choose the DSN that you have configured just before opening Power BI. If the option is not visible yet, there must have been an error in configuration, or the Power BI user does not have access to see the DSN configured. In either of the cases, close Power BI, check the DSN configuration and user permissions, then open Power BI again to set up the connection. If everything is configured properly, the name should show up as such:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IGQHnlcqRFby555YYr7mgg.png" /><figcaption>DSN from Configured List of DSNs</figcaption></figure><p>Here, just like the Native PostgreSQL Connector, we can choose to run Stored Procedures or Functions using Advanced Options, and we can even connect to a DSN using a Connection String , which has DSN properties without login credentials mentioned in it. You can read more about DSN Connection Strings online if interested.</p><p>For now, we will not run any functions or procedures, and import all data from the databased using the ODBC Driver, by clicking OK . When doing this for the first time, Power BI may prompt you to enter your PostgreSQL Credentials, go ahead and enter the same, saving the data only for the current connection.</p><p><strong>Step 6: Import the Data</strong></p><p>Just like with the Native PostgreSQL Database Connector, a Navigator dialog box pops up, showing a list of all the tables which can be selected for import. We will go ahead and skip the transformation steps (already explained in the Native Connector section), and directly load the data into our Power BI Data Model this time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*i0_wbrd2r2BkoDOtyaDbyg.png" /><figcaption>Navigator Dialog Box to choose desired tables for import</figcaption></figure><p>The data begins to load into Power BI, through the ODBC DSN:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*auXb4qNwx-5QEER_BP_IiQ.png" /><figcaption>Loading Data into Power BI using ODBC DSN</figcaption></figure><p>And voila! Once again, we have imported data from our PostgreSQL Database into Power BI, and this time using an ODBC Driver instead of the Native PostgreSQL Connector.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UcJcBvyFhG7tmRXKTBgjZw.png" /><figcaption>Loaded Data Model from ODBC Connector</figcaption></figure><h3>Conclusion</h3><p>In this article, we studied how to import data into Power BI using the Native PostgreSQL Database Connector, as well as the ODBC Connector.</p><p>We also had a brief overview of how we can use Power Query Editor to transform the data before importing into the Power BI Data Model.</p><p>Overall, a similar procedure is to be performed for any other database as well, with a few steps for debugging here and there.</p><p>This article uses demonstrative images of the process to connect with a Local Database Server, but the <strong><em>hints</em></strong> provided in various sections of the article are sufficient in configuring a connection to a Remote Database Server hosted online as well.</p><p>I hope this helps you out in choosing the best way to connect your database to Power BI!</p><p>If you liked this article, you might want to follow me on Medium, <a href="https://www.medium.com/@emperorarthurix">here</a>, to read more of my works as I journey through the world of technology.</p><p>Here are some more of my articles, feel free to follow through if the topics seem interesting:</p><ul><li><a href="https://medium.com/@emperorarthurix/power-bi-subscriptions-1b406c72ed8d">Power BI Subscriptions</a></li><li><a href="https://medium.com/@emperorarthurix/microsoft-power-platform-1f5eceb25262">Microsoft Power Platform</a></li><li><a href="https://medium.com/@emperorarthurix/big-data-tools-6ce0450fd909">Big Data Tools</a></li><li><a href="https://medium.com/@emperorarthurix/machine-learning-6c26aa789b9f">Machine Learning</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2d9482eb4aca" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Power BI Subscriptions]]></title>
            <link>https://medium.com/@emperorarthurix/power-bi-subscriptions-1b406c72ed8d?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/1b406c72ed8d</guid>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[pricing]]></category>
            <category><![CDATA[power-bi]]></category>
            <category><![CDATA[data-visualization-tools]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sat, 09 Mar 2024 06:32:10 GMT</pubDate>
            <atom:updated>2024-03-09T06:32:10.859Z</atom:updated>
            <content:encoded><![CDATA[<h4>Choosing the best plan for you</h4><figure><img alt="Microsoft Power BI Loading Screen" src="https://cdn-images-1.medium.com/max/920/1*Sv__XVcdWFp5PUqlsXHf6w.png" /><figcaption>Image Source: <a href="https://www.microsoft.com/en-us/power-platform/products/power-bi">Microsoft Power BI</a></figcaption></figure><h3>What is Microsoft Power BI?</h3><p>Power BI is a proprietary data visualisation software offered by <a href="https://www.microsoft.com">Microsoft</a>. It is an essential component of the <a href="https://www.microsoft.com/en-us/power-platform">Microsoft Power Platform</a>.</p><p>Power BI falls under the <a href="https://www.microsoft.com/en-us/microsoft-fabric">Microsoft Fabric</a> suite of tools and can be used in tandem with all services within this suite, and also with other services and applications apart from those offered by Microsoft.</p><p>Power BI is essentially available in two forms:</p><ul><li><strong>Power BI Desktop</strong>: Available to everyone with a valid Microsoft Account. It can be downloaded and used directly on the local machine.</li><li><strong>Power BI Service</strong>: Available to those who subscribe to a Power BI License with their Microsoft Account. Users may also avail a limited-period trial of the Pro License to learn and get used to the service.</li></ul><p>If you want to read about other services which are part of the Microsoft Power Platform, you can refer to this <a href="https://medium.com/@emperorarthurix/microsoft-power-platform-1f5eceb25262">article</a>:</p><p><a href="https://medium.com/@emperorarthurix/microsoft-power-platform-1f5eceb25262">Microsoft Power Platform</a></p><h3>Do I Need a Power BI Subscription?</h3><p>No, and also Yes. The answer depends on how many features of Power BI you want to use.</p><h4>Power BI Desktop</h4><p>No, there is no need to purchase a Power BI License or Subscription if you <strong>only</strong> want to work with Power BI Desktop. The desktop application can be downloaded directly on your device(PC or Laptop):</p><ul><li>From the Microsoft Store</li><li>From a <a href="https://powerbi.microsoft.com/en-us/downloads/">Browser</a> (might redirect you to Microsoft Store)</li></ul><p>All you need is a valid Microsoft Account to Sign In to Power BI Desktop and start exploring.</p><blockquote>If creating reports for yourself, or for a handful of people who know how Power BI works, is what you want to do, Power BI Desktop is more than enough for Generating Reports and Exploring Data.</blockquote><p><strong>Note</strong>: It is worth noting that some advanced features, like AI Tools and Azure ML within the app, may require you to buy a subscription even when using Power BI Desktop.</p><h4>Power BI Service</h4><p>Yes, you need a Power BI License to work with the Power BI Service, once your Free Trial expires.</p><blockquote>Some features of Power BI, like report sharing, scheduled automatic refreshes, dashboard sharing, data-driven alerts and monitoring metrics, are possible only on the Power BI Service, and different subscriptions allow for varying degrees of advanced uses for each of these features.</blockquote><h3>Why should I buy a Power BI subscription?</h3><p>If you want to share your Power BI Reports online with others, you need a Power BI License to do so.</p><p>Dashboards and Reports, in most corporate environments, are often prepared by a Data Analyst but used by others who need to make business decisions based on those visualisations, like members of the Product Team, or Board of Directors.</p><p>In such cases, you cannot just ask everyone in a meeting to download and load up the Power BI .pbix file on their systems. Neither is this efficient, nor is it a good practice to queue up multiple data fetch requests on the database server like this.</p><blockquote>Power BI Service allows for you to publish a report online once, and for others to view the report without having to open the file on their local machines.</blockquote><p>This is the fundamental reason why you will need to purchase <em>at least</em> one Power BI License.</p><p><strong>Note</strong>: I say <em>at least</em>, because Microsoft recommends each individual user to have a license, but you don’t necessarily <em>need</em> to do that: you can create just one Microsoft Account which has one license, and can be shared amongst one team of users. This, of course, has security concerns associated with it, but it is still a good solution for a team where you can trust the members not to meddle with the data and reports or misuse the subscription.</p><h3>Which Power BI subscription should I buy?</h3><p>There are quite a few options online, the answer depends largely on the scale on which you are going to use Power BI.</p><h4>Power BI Pro</h4><p>This is the simplest subscription tier, priced* at <strong>USD 9.99</strong> per month per user.</p><p>The Pro license has the following features*:</p><ul><li>Create Reports with Basic Features</li><li>Publish Reports for other Pro Users to view</li><li>1 GB Storage per Data Model</li><li>Total 10 GB Storage per User</li><li>Up to 8 Refreshes per day</li></ul><p>Consider using this license if you need to create and share simple reports amongst a team, individually. Keep in mind that each report viewer must have <em>at least</em> a Pro subscription (or trial) as well.</p><h4>Power BI Premium Per User (PPU)</h4><p>This is a more advanced subscription tier priced* at <strong>USD 20</strong> per month per user.</p><p>The Premium Per User license has the following features*:</p><ul><li>Create Reports with Additional Features</li><li>Publish Reports for other Premium or Pro Users to view</li><li>Build and Maintain Dataflows</li><li>100 GB Storage per Data Model</li><li>Total 100 TB Storage per User</li><li>Up to 48 Refreshes per day</li></ul><p>Consider this license if you need to create more advanced reports, use AI functionality in reports and/or more and faster automatic refreshes per day. Keep in mind that reports published in a <strong>Premium Workspace</strong> can only be viewed by other <strong>Premium</strong> users. To share reports with a <strong>Pro</strong> user, you must publish the reports in a <strong>Pro Workspace</strong> despite having a Premium subscription.</p><h4>Power BI Premium Capacity</h4><p>This is the most advanced subscription tier, priced* at <strong>USD 4999</strong> per month.</p><p>The Premium Capacity license has the following features*:</p><ul><li>Create Reports with Additional Features</li><li>Publish Reports for anyone to view, even without a license</li><li>Access to Microsoft Fabric</li><li>Build and Maintain Dataflows</li><li>Use Advanced XMLA endpoint refreshes</li><li>400 GB Storage per Data Model</li><li>Total 100 TB Storage</li><li>Up to 48 Refreshes per day</li></ul><p>Consider this subscription if you want to share reports with a huge audience (more than 500 people), or if you want to embed the report on your public website for all your users to see. The most attractive feature of the Premium Capacity is that you can publish and embed Power BI reports to be viewed by <strong>virtually anyone</strong>, even <strong>without a license </strong>to view.</p><p>It must be noted that this subscription is best used in cases where your audience is very large, and buying (up to 500) individual Pro licenses turns out to be more expensive than the Premium Capacity.</p><p>*The prices and features mentioned refer to those offered at the time this article was written. If you need exact figures, please visit the official Power BI pricing web page to learn more:</p><p><a href="https://powerbi.microsoft.com/en-us/pricing/">Pricing &amp;amp; Product Comparison | Microsoft Power BI</a></p><h4>Conclusion</h4><p>We can see that purchasing a Power BI Subscription directly depends on what features of Power BI you want to use, and how many people you want to share your reports with.</p><p>In general, there are four cases:</p><ul><li><strong>Learners</strong> or <strong>Individual</strong> Users: Can work with just the Power BI Desktop application</li><li><strong>Professionals</strong>: Can work with a Power BI Pro license to share reports with other users who have Pro licenses</li><li><strong>Professionals</strong> in Data-Intensive Roles: Can work with a Power BI Premium Per User (PPU) license to use more advanced features and less restricted storage for reports</li><li><strong>Large Audience</strong>: When more than 500 people need to view reports, the Power BI Premium Capacity is worth investing in.</li></ul><p>I hope this helps you out in choosing the kind of license which best suits your requirements!</p><p>If you liked this article, you might want to follow me on Medium, <a href="https://www.medium.com/@emperorarthurix">here</a>, to read more of my works as I journey through the world of technology.</p><p>Here are some more of my articles, feel free to follow through if the topics seem interesting:</p><ul><li><a href="https://medium.com/@emperorarthurix/microsoft-power-platform-1f5eceb25262">Microsoft Power Platform</a></li><li><a href="https://medium.com/@emperorarthurix/big-data-tools-6ce0450fd909">Big Data Tools</a></li><li><a href="https://medium.com/@emperorarthurix/machine-learning-6c26aa789b9f">Machine Learning</a></li><li><a href="https://medium.com/@emperorarthurix/clean-code-35bb06394fba">Clean Code</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1b406c72ed8d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Microsoft Power Platform]]></title>
            <link>https://medium.com/@emperorarthurix/microsoft-power-platform-1f5eceb25262?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/1f5eceb25262</guid>
            <category><![CDATA[low-code]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[power-platform-developers]]></category>
            <category><![CDATA[business]]></category>
            <category><![CDATA[microsoft]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Wed, 02 Aug 2023 16:13:11 GMT</pubDate>
            <atom:updated>2023-08-02T16:13:11.835Z</atom:updated>
            <content:encoded><![CDATA[<h4>Powering your app dev and automation needs</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Er9IHpSB6jQiRWNh9hxYgg.png" /><figcaption>Image Source: <a href="https://learn.microsoft.com/en-us/power-apps/maker/data-platform/media/data-platform-cds-intro/platform.png">Microsoft</a></figcaption></figure><h3>What is the Microsoft Power Platform?</h3><p>The Power Platform is a low-code PaaS (Platform as a Service) offered by Microsoft. The Power Platform offers five main components to be used by app developers with and without programming experience alike:</p><ul><li><strong>Power BI </strong>for Business Analytics and Data Visualisation</li><li><strong>Power Apps</strong> for Business App Development</li><li><strong>Power Automate</strong> for Process Automation</li><li><strong>Power Virtual Agents</strong> for Chatbots other interactive NLP-based services</li><li><strong>Power Pages</strong> for allowing users even outside an organisation to interact with Business Apps of the organisation, either by logging in or anonymously</li></ul><p>The best part is that these platforms can be used independently or even in combination with each other!</p><h3>Why should you use the Power Platform?</h3><p>Let’s consider some cases in which you’d like to use each of the components of the Power Platform, either together or separate from each other.</p><h4>Power BI</h4><blockquote>Business Scenario 1: You have a huge dataset in an RDBMS (like SQL or even BigTable by Google Cloud), and you want to analyse and show your manager the Year-over-Year Sales and Revenue data for the products sold by your organisation</blockquote><blockquote>Business Scenario 2: You want to create an interactive dashboard for an important meeting held by the Board of Directors, where business decisions will be made by taking into consideration the data analysed by you</blockquote><p>Power BI is the perfect solution to such tasks. Power BI has a plethora of tools and services which may be used:</p><ul><li>DAX Measures: Calculated attributes derived from the data</li><li>Visualisations: Bar Graphs, Pie Charts, Bubble Charts, Line Plots, Scatter Plots and many more</li><li>Python/R Visuals: Visualisation Objects programmed in Python/R imported into PowerBI</li><li>Data Management: Star and Snowflake Schemas, Relationship management panels</li><li>Global and Local Drill-Down: Zooming in and out of a chart or visual, or applying custom filters on the data used to make the visuals</li><li>Dashboards: All visuals can be published online on a Dashboard with hierarchical security access levels. Viewers can also ask questions in Natural Language and Power BI will filter out the results using NLP</li></ul><h4>Power Apps and Power Pages</h4><blockquote>Business Scenario 1: You want to create an inventory management application for your Logistics and Supply Chain organisation, where you can monitor, update and share details and status of your warehouses within your team</blockquote><blockquote>Business Scenario 2: You want to share this portal with your suppliers outside your organisation, but want to limit their access level and actions they can perform on the app</blockquote><p>Power Apps is the perfect platform for these tasks. It offers multiple features and customisations such as:</p><ul><li>Multiple Screens and Layouts: Responsive Layouts for both Landscape and Portrait viewport devices</li><li>Canvas Apps: If you want to be in control of each and every step of development and how your app will look and function, Power Apps allows to start with a Blank Canvas and build the app from scratch</li><li>Data-Driven Apps: If you already have a database with your data, you can ask Power Apps to generate its own basic application based on your data, then modify it as you need to include or remove features and actions</li><li>Model-Driven Apps: If you have a certain dataset which you want to keep as the basis of your application and also allow updates through this app, Power Apps allows you to create an app based on a data model</li><li>Portals: If you want to share your application with users outside your organisation, you can integrate the Power Apps with Power Pages, and create an app allowing external users to perform a controlled set of actions on the app</li></ul><h4>Power Automate</h4><blockquote>Business Scenario 1: You receive huge amounts of data in the form of bills and invoices from manufacturers who request raw materials from your organisation. You want to automate the processing of these bills and storing the important information into your database with minimal human involvement</blockquote><blockquote>Business Scenario 2: You want a sequence of actions to be performed automatically on your local machine or desktop when a certain trigger event occurs</blockquote><p>Power Automate allows you to perform such tasks, by setting trigger events on Power Automate, either online or on your desktop. It offers two categories of event flows:</p><ul><li>Cloud Flows: Can be triggered manually or based on particular events such as <em>New Material Request Received</em>, then Power Automate can generate an automated Email replying to this request stating that the materials request has been successfully posted</li><li>Desktop Flows: Can be used to perform similar automation tasks on the web or browsers, or on desktop applications</li></ul><p>Power Automate can also be integrated into Power Apps, just like Power BI and Power Pages</p><h4>Power Virtual Agents</h4><blockquote>Business Scenario 1: You need to develop a bot which facilitates the training and onboarding of interns at your organisation. You want this process to be easy to understand and set up, while also requiring minimal human intervention from your end during training.</blockquote><blockquote>Business Scenario 2: You want clients and/or customers on your website to be able to get answers to their questions using Natural Language, just like they would speak with one of your client-facing representatives</blockquote><p>Power Virtual Agents allows tackling both of these problems by offering the Microsoft Bot Framework and a low-code development environment to build and manage these bots. The capabilities of the bots may also be extended by</p><ul><li>Building Bot Framework Skills</li><li>Using the Bot Framework Composer</li></ul><h3>Conclusion</h3><p>We see that the Microsoft Power Platform is a robust set of tools on a well-integrated platform, on which each component can function independently and also in combination with others.</p><p>The full potential of the Power Platform can be unlocked with subscriptions to each service being used for the Business Logic and App Development, but for learners, just a Microsoft 365 Account or Outlook Account can also be enough.</p><p>If you think your business can benefit from using the Power Platform, feel free to go through the free resources offered by Microsoft on their blogs and documentation, or even videos online to learn how to make the best use of the PaaS.</p><p>If you liked this article, you might want to follow me on Medium, <a href="https://www.medium.com/@emperorarthurix">here</a>, to read more of my works as I journey through the world of technology.</p><p>Here are some more of my articles, feel free to follow through if the topics seem interesting:</p><ul><li><a href="https://medium.com/@emperorarthurix/machine-learning-6c26aa789b9f">Machine Learning</a></li><li><a href="https://medium.com/@emperorarthurix/clean-code-35bb06394fba">Clean Code</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1f5eceb25262" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Build a Django App]]></title>
            <link>https://medium.com/@emperorarthurix/build-a-django-app-ea941d2a7d9a?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/ea941d2a7d9a</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[guides-and-tutorials]]></category>
            <category><![CDATA[django]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sun, 04 Sep 2022 06:33:20 GMT</pubDate>
            <atom:updated>2022-09-04T06:33:20.830Z</atom:updated>
            <content:encoded><![CDATA[<h4>Web Development with Python</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ZosiLSpgEBz11OVp" /><figcaption>Photo by <a href="https://unsplash.com/@dell?utm_source=medium&amp;utm_medium=referral">Dell</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>Series Content</h3><ol><li><a href="https://medium.com/@emperorarthurix/introduction-to-django-406231a9901e">Introduction to Django</a></li><li><a href="https://medium.com/@emperorarthurix/setting-up-django-c22ac4755430">Setting up Django</a></li><li><strong>Building a Django Application</strong></li><li>Hiding Secret Keys in a Django Application</li><li>Database connectivity in a Django Application</li><li>Deploying a Django Application</li></ol><h3>Introduction</h3><p>We have previously looked at Django as a Python framework and how it can help ease the process of building applications for the web with Python at the server side. We also studied how to install and set up Django on a Windows system, and ran a basic demo application to know how Django works in development.</p><p>Now, we shall use the project directory established in the previous discussions to further customise our application to look like a real and professional web page!</p><p>We will discuss the following:</p><ul><li>Using MVT architecture</li><li>Rendering HTML Templates</li><li>Passing data from the server side to client side</li><li>Using static files like CSS and JS with templates</li></ul><h3>Customising your Django Application</h3><h4>Directory Structure</h4><p>In previous articles, we have successfully established the following directory</p><pre>MyApp/<br>    .venv/<br>        /* Contents of the Virtual Environment */<br>    MyProject/<br>        manage.py<br>        MyProject/<br>            __init__.py<br>            settings.py<br>            urls.py<br>            asgi.py<br>            wsgi.py<br>        app/<br>            __init__.py<br>            admin.py<br>            apps.py<br>            migrations/<br>                __init__.py<br>            models.py<br>            tests.py<br>            views.py<br>            urls.py</pre><p>Also, we made a few changes in some of the files here to help our application run the way we want it to! If you’re not sure what we’ve done here, it is highly recommended that you have a quick glance at this article:</p><p><a href="https://medium.com/@emperorarthurix/setting-up-django-c22ac4755430">Setting up Django</a></p><p>Now that we have a good idea of the project directory structure, lets see how to add an HTML file to this setup!</p><h4>Adding HTML Templates</h4><p>Within the MyProject parent directory, create a new folder called templates and add an index.html file into it.</p><p>Now, we should have a file MyProject\templates\index.html. This file can contain all the content you require to be shown on your home page, written in HTML!</p><p>Now, in the MyProject\settings.py file, search for the TEMPLATESdeclaration. Within the dictionary, update the DIRS list to contain this templates folder we just created. In the end, it should look something like this:</p><pre>TEMPLATES = [<br>{<br>  &#39;BACKEND&#39;: &#39;django.template.backends.django.DjangoTemplates&#39;,<br>  &#39;DIRS&#39;: [os.path.join(BASE_DIR, &#39;templates&#39;)],<br>  &#39;APP_DIRS&#39;: True,<br>  &#39;OPTIONS&#39;: {<br>    &#39;context_processors&#39;: [<br>    &#39;django.template.context_processors.debug&#39;,<br>    &#39;django.template.context_processors.request&#39;,<br>    &#39;django.contrib.auth.context_processors.auth&#39;,<br>    &#39;django.contrib.messages.context_processors.messages&#39;,<br>    &#39;django.template.context_processors.media&#39;,<br>    ],<br>  },<br>}<br>]</pre><p>If not already configured, set up the static files folder for your application as well. Within settings.py, add these declarations:</p><pre>STATIC_URL = &#39;static/&#39;</pre><pre>STATIC_ROOT = os.path.join(BASE_DIR, &#39;staticfiles&#39;)</pre><pre>STATICFILES_DIRS = [os.path.join(BASE_DIR, &#39;static&#39;)]</pre><p>These will help us collect all our static files, such as CSS and JS Scripts in a common folder to support our HTML pages later.</p><p>Every HTML file supported by a static file must have the following line at the top, to allow the use of <strong>Jinja</strong> terminology and references to static file contents.</p><pre>{% load static %}</pre><p>Every link to a static resource, be it images, JS files, CSS files or other media, needs to have a prefix to denote that it comes from the staticfiles directory.</p><p>This can be done by wrapping values with the static prefix:</p><pre>&lt;link rel=&quot;stylesheet&quot; href=&quot;{% static &#39;css/styles.css&#39; %}&quot;&gt; </pre><p>or</p><pre>&lt;script src={% get_static_prefix %}js/script.js&gt;</pre><p>You can read about more methods of static file inclusion in the Django documentation.</p><h4>Rendering HTML Templates</h4><p>Now we have an HTML Template ready with us, and we know what we want to show to users when they first visit the website; however, when we run the app on localhost, we still cannot see the new page! This is because we never set it up to be rendered onto the website. Let’s do that now.</p><p>First, checkout the app\views.py file. If it’s empty, create a new function home which will render the home page. If the home function already exists, make sure it has the following definition:</p><pre>from django.shortcuts import render, redirect</pre><pre>def home(http_request):<br>    return render(http_request, template_name=&quot;index.html&quot;)</pre><p>This will ensure that Django looks for a template called index.html to render on screen when the home function is invoked!</p><p>Now, how do we invoke this function?</p><p>Visit the app\urls.py and make the following addition to the urlpatterns:</p><pre>from . import views<br>from django.urls import path</pre><pre>urlpatterns = [path(&quot;&quot;, views.home, name=&#39;home&#39;)]</pre><p>This will register the URL &lt;sitename&gt;\&lt;empty_string&gt; as the signal to invoke the home function.</p><p>So basically, if you run this app on localhost, the URL localhost:8000/ will invoke the home function for us.</p><p>If all the setup has been performed properly, we will be able to see our HTML Template being rendered on screen!</p><h4>Passing Values from Backend to Frontend</h4><p>One of the most essential aspects of having a backend to a website is being able to process some data on the server side without client intervention and then passing this data to the client side as output. There are multiple methods to do so, and we will discuss one method NOT involving the use of REST APIs.</p><p>Say we want to display what time a certain activity occurred on the screen without having to process it on the frontend using JavaScript. We can do so by calculating the value behind the scenes, then passing it to the frontend as an object! Let’s do this in the home function we just created.</p><pre>def home(http_request):<br>    import time<br>    entry_time = time.time()<br>    time_format = time.strftime(&quot;%a, %H:%M:%S&quot;, time.gmtime(entry_time))</pre><pre>    return render(http_request, &#39;index.html&#39;, context={&#39;time&#39;:time_format})</pre><p>Now, we have passed the value to the frontend, using the context dictionary, which acts as JSON on the client side; but we still haven’t added this to our HTML file.</p><p>To do so, we must add to our HTML File the following:</p><pre>&lt;p&gt;You visited this page on {{time}}&lt;/p&gt;</pre><p>If you want to conditionally display certain values, you can also do so using the Jinja if endif block, and if you wish to display a list of similar values, you can use the Jinja for endfor block!</p><p>Find more details on those methods of implementation in Django Docs, and try them out for yourself!</p><h3>Conclusion</h3><p>In this article, we understood how to include an HTML template in our app to customise it, how to support this template with static files like CSS, JS, image files and other media, how to render HTML Templates and how to pass values from the backend to the frontend!</p><p>For more content, keep following this series on Django and if you need a revision, need to catch up or just want to have a look at some of the basics, make sure to read my previous articles on Django as well!</p><ul><li><a href="https://medium.com/@emperorarthurix/introduction-to-django-406231a9901e">Introduction to Django</a></li><li><a href="https://medium.com/@emperorarthurix/setting-up-django-c22ac4755430">Setting up Django</a></li></ul><p>If you liked what you read, consider following me on Medium, <a href="https://www.medium.com/@emperorarthurix">here</a>!</p><p>If you’d like to get in touch, feel free to do so on my socials, <a href="https://linktr.ee/IshaanPandita">here</a>!</p><blockquote>Thank you for your patience!</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ea941d2a7d9a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Setting up Django]]></title>
            <link>https://medium.com/@emperorarthurix/setting-up-django-c22ac4755430?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/c22ac4755430</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[django]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[series]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sun, 31 Jul 2022 06:32:36 GMT</pubDate>
            <atom:updated>2022-09-03T13:42:33.417Z</atom:updated>
            <content:encoded><![CDATA[<h4>Web Development with Python</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*XNge65e6ElmHBE2p" /><figcaption>Photo by <a href="https://unsplash.com/@xps?utm_source=medium&amp;utm_medium=referral">XPS</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>Series Content</h3><ol><li><a href="https://medium.com/@emperorarthurix/introduction-to-django-406231a9901e">Introduction to Django</a></li><li><strong>Setting up Django</strong></li><li><a href="http://build-a-django-app-ea941d2a7d9a">Building a Django Application</a></li><li>Hiding Secret Keys in a Django Application</li><li>Database connectivity in a Django Application</li><li>Deploying a Django Application</li></ol><h3>Introduction</h3><p>We have previously discussed Django and its features in the first article of this series. In this article, we will discuss how we can set up Django on our device. The following demonstration is best suited for devices running Windows; however installations on other operating systems can be deciphered from the procedure.</p><p>We will discuss the following:</p><ul><li>Installing Python</li><li>Setting up a Virtual Environment</li><li>Installing Django</li><li>Setting up a Django Project</li><li>Running the Demo Application</li></ul><h3>Building a Django Project on your system</h3><h4>Installing Python</h4><p>If you don’t already have Python installed on your system, follow this link to download either the LTS version or the latest version of Python suited to your operating system:</p><p><a href="https://www.python.org/downloads/">Download Python</a></p><p>During installation, make sure to remember:</p><ul><li>The path to the directory where Python is being installed</li><li>Checking all the required dependencies which you wish to be installed</li><li>Adding the path to your Python interpreter in your Environment Variables</li></ul><h4>Make sure the `pip` command runs properly in the terminal</h4><p>Open command prompt or your terminal and type pip .</p><p>If no error message is printed, you are good to go, otherwise you may need to go through either of these procedures:</p><ol><li>Set up your system environment variables (Path to the Python interpreter on your device)</li><li>Check the scripts folder in the Python installation. If pip is missing, install it by following instructions given <a href="https://www.geeksforgeeks.org/how-to-install-pip-on-windows/">here</a></li></ol><h4>Set up a Virtual Environment</h4><p>Open up command prompt or the terminal once again, and navigate to the folder in which you wish to set up your project. Enter the following command to create a virtual environment named .venv</p><pre>D:\MyApp&gt; <strong>python -m venv .venv</strong></pre><p>Activate the environment within the terminal</p><pre>D:\MyApp&gt; <strong>.venv\Scripts\activate</strong></pre><p>Now, the name .venv (or the name of your virtual environment) must begin to appear before the root directory, in the path displayed on the terminal, like so:</p><pre>(.venv) D:\MyApp&gt;</pre><h4>Install Django</h4><p>Once your virtual environment is activated, in the same terminal, install the Python modules you wish to include in your application using pip or an equivalent package manager for Python.</p><pre>(.venv) D:\MyApp&gt; <strong>pip install django-admin</strong></pre><p>Often, a few modules accompany Django in a web development project and can be installed together:</p><pre>(.venv) D:\MyApp&gt; <strong>pip install requests python-dotenv gunicorn Pillow psycopg2</strong></pre><p>Installing these is NOT compulsory. These libraries serve the following purposes:</p><ul><li>requests: Provides the facility to handle HTTP requests in Python</li><li>python-dotenv: Provides the facility to declare temporary environment variables to simulate those in an operating system</li><li>gunicorn: Provides the facility to interact with a web server to run the Python application online</li><li>Pillow: Provides the facility to handle Image file uploads and renderings to and from a web server</li><li>psycopg2: Provides database connectivity to a PostgreSQL database engine</li></ul><p>There are many other modules which can be used during web development using Python and you may choose to install the same as per your requirements.</p><h4>Setting up a Django Project</h4><p>Once the virtual environment is set up and python modules are installed, one can begin working on the actual application by executing the following commands:</p><pre>(.venv) D:\MyApp&gt; <strong>django-admin startproject MyProject</strong></pre><p>This will create a project called MyProject with the following directory structure:</p><pre>MyApp/<br>    .venv/<br>        /* Contents of the Virtual Environment */<br>    MyProject/<br>        manage.py<br>        MyProject/<br>            __init__.py<br>            settings.py<br>            urls.py<br>            asgi.py<br>            wsgi.py</pre><p>Note that you do not need to name the project MyProject, and can call it whatever you want instead by specifying it while creating the project.</p><p>Once the project MyProject is set up, enter the directory through the command line and make a new application:</p><pre>(.venv) D:\MyApp&gt; <strong>cd MyProject<br></strong>(.venv) D:\MyApp\MyProject&gt; <strong>python manage.py startapp app</strong></pre><p>This will create a new application called app. You can change this name to whatever you want your app to be called. This will result in the following directory structure:</p><pre>MyApp/<br>    .venv/<br>        /* Contents of the Virtual Environment */<br>    MyProject/<br>        manage.py<br>        MyProject/<br>            __init__.py<br>            settings.py<br>            urls.py<br>            asgi.py<br>            wsgi.py<br>        app/<br>            __init__.py<br>            admin.py<br>            apps.py<br>            migrations/<br>                __init__.py<br>            models.py<br>            tests.py<br>            views.py</pre><p>Apart from the files provided by Django on start, we will need to create a new python file in the app folder — app/urls.py and connect this to MyProject/urls.py file.</p><p>Make the app/urls.py and write this code:</p><pre>from django.urls import path<br>from . import views</pre><pre>urlpatterns = []</pre><p>Now, we go to MyProject/urls.py and change the imports and file contents to look like this:</p><pre>from django.contrib import admin<br>from django.urls import path, include</pre><pre>urlpatterns = [<br>    path(&#39;&#39;, include(&#39;app.urls&#39;)),<br>    path(&#39;admin/&#39;, admin.site.urls),<br>]</pre><p>We will still get an error here, since we have not included app in our list of apps. We do that by going to MyProject/settings.py and finding the INSTALLED_APPS list:</p><pre>INSTALLED_APPS = [<br>&#39;app.apps.AppConfig&#39;,   # Add this to include `app/apps.py` file<br>&#39;django.contrib.admin&#39;,<br>&#39;django.contrib.auth&#39;,<br>&#39;django.contrib.contenttypes&#39;,<br>&#39;django.contrib.sessions&#39;,<br>&#39;django.contrib.messages&#39;,<br>&#39;django.contrib.staticfiles&#39;,<br>]</pre><p>If you want to see what the project looks like right now, you can do that by running the following command in the terminal:</p><pre>(.venv) D:\MyApp\MyProject&gt; <strong>python manage.py runserver</strong></pre><p>On a broswer, type localhost:8000 in the URL bar to visit your site!</p><p>Here, you’d either see the demo app or a white web page based on what how your configuration is setup. But we all want to see our own HTML!</p><p>Do this by writing your first view in your app. Open the app/views.py file and start writing a new Python function:</p><pre>from django.shortcuts import render<br>from django.http import HttpResponse</pre><pre># Create your views here.</pre><pre>def home(request):<br>    &#39;&#39;&#39;<br>    This is the function which will run on the landing page<br>    &#39;&#39;&#39;<br>    return HttpResponse(&quot;Welcome to my Django App!&quot;)</pre><p>Now, we update app/urls.py to include this function as a view :</p><pre>from django.urls import path<br>from . import views</pre><pre>urlpatterns = [path(&#39;&#39;, views.home, name=&#39;home&#39;)]</pre><p>Now we can rerun the server using the python manage.py runserver command.</p><p>Finally, we will be able to see the Home View rendered on the site!</p><blockquote>Congratulations! You have successfully created your first application!</blockquote><blockquote>Stuck somewhere? App didn’t run? Have a look at the official Django Documentation to understand why: <a href="https://docs.djangoproject.com/en/4.0/intro/">Django Docs</a> (for version 4.0)</blockquote><h3>Conclusion</h3><p>In this tutorial we understood how Python and Django can be set up on our system, and how we can run a basic web application with the help of Django on our browser!</p><p>Make sure to keep following the series to learn more!</p><p>If you liked the article, consider following me on Medium for more content, <a href="https://www.medium.com/@emperorarthurix">here</a>.</p><p>If you’d like to get in touch, feel free to do so on my socials, <a href="https://www.linktr.ee/IshaanPandita">here</a>!</p><blockquote>Thank you for your patience!</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c22ac4755430" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introduction to Django]]></title>
            <link>https://medium.com/@emperorarthurix/introduction-to-django-406231a9901e?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/406231a9901e</guid>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[series]]></category>
            <category><![CDATA[django]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sun, 24 Jul 2022 06:32:39 GMT</pubDate>
            <atom:updated>2022-09-03T13:41:44.281Z</atom:updated>
            <content:encoded><![CDATA[<h4>Web Development with Python</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*fOJqLFT2J3vDlLy9" /><figcaption>Photo by <a href="https://unsplash.com/@xps?utm_source=medium&amp;utm_medium=referral">XPS</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>Series Content</h3><ol><li><strong>Introduction to Django</strong></li><li><a href="https://medium.com/@emperorarthurix/setting-up-django-c22ac4755430">Setting up Django</a></li><li><a href="http://build-a-django-app-ea941d2a7d9a">Building a Django Application</a></li><li>Hiding Secret Keys in a Django Application</li><li>Database connectivity in a Django Application</li><li>Deploying a Django Application</li></ol><h3>Introduction</h3><p>Every day we come across hundreds of web pages, all with different looks, unique purposes and user experiences. As a developer, it is quite intriguing to look at the wonderful and powerful things we can build on the internet, not just for ourselves but also for the world to see and use!</p><p>One of the most beautiful aspects of being a developer is that one gets to experience building this stuff by oneself. By diving deep into the <em>What, Why, Where, When and How</em> of web development, we developers gives ourselves the ability to design and present to the world, works of art that are commonly known as websites.</p><p>It all comes down to the very basics: HTML, CSS and JS. The Holy Grail of web pages. Everything that you see on the browser <strong>can be</strong> and <strong>is</strong> written using these three languages. You can read more about them in this article:</p><p><a href="https://medium.com/@emperorarthurix/which-language-to-learn-for-code-df23f56aba5b">Which language to learn for code?</a></p><h3>Python in Web Development</h3><p>You may have heard about Python being used extensively for Data Science, Deep Learning, Machine Learning, Artificial Intelligence and Application Development; however, being the versatile language that it is, there are multiple methods in which Python can be used for Backend Development of websites.</p><p>The internet today follows the Client-Server architecture, where the Frontend relates to the stuff which can be seen by the client on their browser, and the Backend is everything that is hidden from the user and often runs on the server side of applications.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*aYdnFcGG4XtyI-aZ.png" /><figcaption>Picture Source: <a href="https://madooei.github.io/cs421_sp20_homepage/client-server-app/">Here</a></figcaption></figure><p>Python makes use of frameworks and libraries like Django and Flask to facilitate development of web applications. In this series, we will discuss Django in detail.</p><h3>Django</h3><p>Django is a Python framework which enables the developer to create web applications using Python as the Backend Language. You can read more about the origins and purpose of Django on their official website:</p><p><a href="https://www.djangoproject.com/">Django</a></p><p>We will discuss some fundamental features which Django offers to developers in this article:</p><ul><li>The MVT Structure</li><li>The ORM facility</li><li>Built-in functions and models</li><li>Built-in admin features</li></ul><h4>MVT Structure of Django</h4><p>There are 2 broad classifications of web development frameworks based on the development structure they offer:</p><p>MVC Structured Frameworks and MVT Structured Frameworks. Django offers the MVT Structure.</p><p>Let us compare the two in brief</p><p><strong>MVC Structure:</strong></p><ul><li><strong>Model:</strong> Offers data modeling and logic development capabilities</li><li><strong>View:</strong> Decides what is visible to the end user</li><li><strong>Controller:</strong> Acts as the bridge between Model and View</li></ul><p><strong>MVT Structure:</strong></p><ul><li><strong>Model:</strong> Offers data modeling and logic development capabilities</li><li><strong>View: </strong>Acts as the bridge between Model and Template</li><li><strong>Template: </strong>Decides what is visible to the end user</li></ul><p>Both structures provide the facility to dynamically update the data which the end user sees on their device.</p><p>In Django, the Model section allows connection to database facilities like MySQL, PostgreSQL etc. the View section allows the developer to write down presentation logic, fetch and push data to and from the database and render the same on screen via Templates, which help dynamically display data to the user by <em>essentially</em> using variables and conditional logic in HTML.</p><h4>ORM in Django</h4><p>Django earns its title as one of the most powerful web development frameworks in Python partly due to its ORM facility.</p><p>ORM stands for <strong>O</strong>bject <strong>R</strong>elational <strong>M</strong>apping. As the name suggests, it enables the linking of Python Classes to Relational Database Tables.</p><p>For example:</p><pre>class Articles(models.Model):<br>  author = models.CharField(max_length=50)<br>  title = models.CharField(max_length=100)<br>  img = models.ImageField(upload_to=&#39;pics_folder&#39;)<br>  text_content = models.TextField()</pre><p>The above class will get mapped to a table in the linked database in this manner:</p><p>Table Name: <em>appName</em>_<em>className</em></p><p>Table Columns: Class attributes (author, title, img, text_content)<br>An id column will get added by default if specified in the Django configuration.</p><p>Table Rows: One row for each object created of this class</p><p>The most interesting aspect of this feature lies in the fact that as the developer, one does not require to write SQL Queries by hand for these operations! Django does it for us, and we just have to type in a couple of commands to set it up for the task.</p><h4>Built-In functions and Models</h4><p>Apart from the ability to create our own models like in the example above, Django offers built-in models and functionalities for some common features.</p><p>For example, Django offers a User Model and Authentication functions to facilitate user creation, login, logout and authentication.</p><p>Similarly, there are other models like Forms, which allow collection of user input, and Groups which facilitate aggregation of users based on permissions they have and pages they can access on the site.</p><h4>Built-In Administration</h4><p>Django also offers administrative features and functionality to staff users. There is a prebuilt website for admin users, where they can view site statistics and also perform administrative functions such as creating new users, changing permissions, adding new objects of registered models and much more.</p><h3>Conclusion</h3><p>This gives us a brief introduction to what Django is, its features and how we may use it as a tool for web development with Python at the Backend. Of course, there is always more information available in the official documentation, which you can read <a href="https://docs.djangoproject.com">here</a>.</p><p>If you liked the article, consider following me on Medium for more, <a href="https://medium.com/@emperorarthurix">here</a>.</p><p>If you’d like to get in touch, feel free to do so on my socials <a href="https://linktr.ee/IshaanPandita">here</a>.</p><p>Read more about Django in the next article in the series!</p><p>Thank you for you patience!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=406231a9901e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[30 Days of Streamlit]]></title>
            <link>https://medium.com/@emperorarthurix/30-days-of-streamlit-56a1d646f6f6?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/56a1d646f6f6</guid>
            <category><![CDATA[consistency]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[introduction]]></category>
            <category><![CDATA[challenge]]></category>
            <category><![CDATA[streamlit]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sun, 05 Jun 2022 06:32:59 GMT</pubDate>
            <atom:updated>2022-06-05T06:32:59.397Z</atom:updated>
            <content:encoded><![CDATA[<h4>Challenge Accepted</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mdvspoBLUMXT4i7VsWzQ8Q.png" /></figure><p>Recently, <a href="https://streamlit.io/">Streamlit</a> and <a href="https://www.youtube.com/c/DataProfessor">The Data Professor</a> initiated the 30 Days of Streamlit campaign, and this is an excellent opportunity to sharpen one’s skills in using the service in Python.</p><h3>Inspiration</h3><p>I have recently understood the importance of developing my skills beyond curriculum, and that maintaining consistency is much more fruitful than short bursts of energy while working. You may read more about this experience of mine here:</p><p><a href="https://medium.com/@emperorarthurix/100-days-of-code-2a8fce539b5b">100 Days of Code</a></p><p>As soon as I read about the Streamlit challenge, I was delighted to see one of my all time favourite Python libraries getting such exposure, and I instantly wished to become part of the community supporting its growth! Thus, I pledged to get on with the 30 Days of Streamlit Challenge as soon as I could.</p><h3>Methodology</h3><h4>Documentation</h4><p>It is of paramount importance to note that just like other challenges which require time-commitments, the Streamlit challenge must be documented well and precisely.</p><p>If not for others to see, the documentation may actually serve a great purpose when we ourself wish to revise certain concepts related to the library or its methods!</p><h4>Clean Code</h4><p>Apart from documentation, one must focus on writing clean code, which not only explains itself, but also takes into consideration good coding practices. This will serve as practice for when one joins the industry, and making clean code a habit is equivalent to making life easier in this case.</p><p>Feel free to read up on the key elements of writing clean code:</p><p><a href="https://medium.com/@emperorarthurix/clean-code-35bb06394fba">Clean Code</a></p><h4>Experimentation</h4><p>Testing out new techniques is key to evolution. One must strive to go outside their comfort zone and experiment with code and algorithms they have never used before.</p><p>This, of course, makes the development process a whole lot more difficult than it would otherwise be, but it also helps us discover new ways to solve problems, add possibly better features to our code, develop a new understanding of a certain function or property and many other changes like these.</p><blockquote>Change is the universal constant, and entrenched success is the worst form of success.</blockquote><p>Thus, whenever there is no deadline awaiting, or any such low-risk situation, one must make sure to experiment a little and learn about stuff they haven’t done before. This is one of the most active methods of growth!</p><h3>Taking up the challenge</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Uj5T3CHZvUsVQmoX" /><figcaption>Photo by <a href="https://unsplash.com/@marekpiwnicki?utm_source=medium&amp;utm_medium=referral">Marek Piwnicki</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>If you, too, are interested in learning more about the Streamlit API and Python, I encourage you to partake in the challenge and explore the various features the library offers!</p><p>Here is a short list of procedures to follow to take up the challenge (based on Windows OS procedure):</p><h4>Install Python</h4><p>Follow this link to download an LTS version or the latest version of Python for your device:</p><p><a href="https://www.python.org/downloads/">Download Python</a></p><h4>Make sure pip runs in the command line</h4><p>Open command prompt or your terminal and type pip .</p><p>If no error message is printed, you are good to go, otherwise you may need to go through either of these procedures:</p><ol><li>Set up your system variables (Path to the Python interpreter on your device)</li><li>Check the scripts folder in the Python installation. If pip is missing, install it by following instructions given <a href="https://www.geeksforgeeks.org/how-to-install-pip-on-windows/">here</a></li></ol><h4>Set up a virtual environment</h4><p>Open up command prompt or the terminal once again, and navigate to the folder in which you wish to set up your project. Enter the following command to create a virtual environment named .env</p><pre>python -m venv .env</pre><p>Activate the environment within the terminal</p><pre>.env\Scripts\activate</pre><p>Now, the name .env (or the name of your virtual environment) must begin to appear before the root directory, in the path displayed on the terminal.</p><h4>Install Streamlit</h4><p>Use the following command to install Streamlit, and any other libraries you wish to use in the project:</p><pre>pip install streamlit</pre><p>or</p><pre>pip install &lt;name&gt;</pre><p>for a more general use case.</p><p>Once this is done, you’re good to go on and develop your application!</p><h3>Conclusion</h3><p>I love Streamlit, and enjoy the 30 Days challenge as well. In my honest opinion, everyone interested in processing data for insights or visualisations in Python must try Streamlit once, as it makes the task of presenting data very efficient and effective.</p><blockquote>In simple words, Streamlit offers us great user experience and user interface, while we focus on organising the content which the user must engage with.</blockquote><p>If you liked reading the article, consider following me on Medium, <a href="https://medium.com/@emperorarthurix">here</a>!</p><p>If you’d like to get in touch, feel free to do so on my socials, <a href="https://www.linktr.ee/IshaanPandita">here</a>!</p><blockquote>Thank you for your patience!</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=56a1d646f6f6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[First Offline Hackathon]]></title>
            <link>https://medium.com/@emperorarthurix/first-offline-hackathon-9222cdb206f3?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/9222cdb206f3</guid>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[summary]]></category>
            <category><![CDATA[hackathons]]></category>
            <category><![CDATA[experience]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sun, 22 May 2022 06:33:17 GMT</pubDate>
            <atom:updated>2022-05-22T06:33:17.837Z</atom:updated>
            <content:encoded><![CDATA[<h4>Experience Summary</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*BIo6XjkzYi6Z6bUX" /><figcaption>Photo by <a href="https://unsplash.com/@f12r?utm_source=medium&amp;utm_medium=referral">Fahim Muntashir</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>On 6th May 2022, I organised and partook in my first ever Offline Hackathon — <a href="https://webathon.me">Webathon 2022</a>!</p><p>It was a wonderful experience, being part of the organising team behind the scenes, and being a participant on the hack day. I wish to thank both my teams: the organising team, and the hacking team, for giving me this wonderful opportunity and for working together for the successful completion of the hackathon.</p><h3>The Experience</h3><p>Summarising the experience through the hackathon, I wish to mention one thing before all else:</p><blockquote>I suggest everyone to take part in hackathons!</blockquote><h4>Organising</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-dlv2GbGxi8IHIor" /><figcaption>Photo by <a href="https://unsplash.com/@stilclassis?utm_source=medium&amp;utm_medium=referral">Marissa Grootes</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>There were a tonne of tasks to be completed before we could even begin with the physical arrangements for the hackathon:</p><ul><li>Planning</li><li>Proposing the idea to faculty</li><li>Preparing a flow of events</li><li>Preparing event posters</li><li>Designing Certificates</li><li>Setting up marketing and registrations</li><li>Setting up the website</li><li>Bringing in sponsors for the event</li><li>Preparing for the inaugural ceremony</li></ul><p>And this is where the power of the team came in. We divided tasks amongst ourselves, where I handled website design and creatives, and my seniors — Vaibhav bhaiya, Lachiket bhaiya and Manav bhaiya — handled planning, sponsorships and marketing. Naufil sir supervised all our work and helped us coordinate our efforts, with the guidance of Deepa ma’am, our department coordinator.</p><p>Over the course of two weeks, we gradually progressed towards successful execution of the plan for the hackathon and were ready with our sponsor, registered teams and themes for the hackathon.</p><h4>Participating</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*5kdmghTB-EhRl_EU" /><figcaption>Photo by <a href="https://unsplash.com/@johnschno?utm_source=medium&amp;utm_medium=referral">John Schnobrich</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Since the hackathon was a continuous 24-Hour challenge, all teams were stationed in the computer lab and were provided refreshments, a rest area and of course, computers to work on. My team and I worked on a business website which took inspiration from <a href="https://www.impossible-bureau.com/">The Impossible Bureau</a>, and a couple of other websites.</p><p>Our star performer, Aru Gupta, stayed awake through the entirety of the 24 hours, and made almost every animation that our website used. I was in charge of handling the scalability and responsiveness of the website to various screen sizes. With the backend connectivity being handled by my friend Aishwarya, brilliant design strategies and ideas from my roommate Vidyadhar, content ideas and structure by Rahul and Murriel, we were able to produce a working website with backend connectivity and mesmerising animations to the judges.</p><h3>Conclusion</h3><p>Without doubt, this hackathon has been one of the most amazing experience I have ever had, and despite the toll it took on our sleeping schedules for the next three days, I am happy with the results and with everything that I learnt through the journey.</p><p>It feels like everyone in the computer lab grew a tad bit closer, got to know each other a lot better, and in general, we all made a good set of connections we can cherish through college.</p><blockquote>Thank you for your patience!</blockquote><p>If you liked this article, consider following me on Medium for more, <a href="https://www.medium.com/@emperorarthurix">here</a>!</p><p>If you’d like to get in touch, you can do so on my socials, <a href="https://www.linktr.ee/IshaanPandita">here</a>!</p><p>Here are a few more stories of mine which you might wish to have a look at:</p><ul><li><a href="https://medium.com/@emperorarthurix/machine-learning-6c26aa789b9f">Machine Learning</a></li><li><a href="https://medium.com/@emperorarthurix/data-and-its-modeling-2bff0422c62a">Data and its modeling</a></li><li><a href="https://medium.com/@emperorarthurix/asymptotic-analysis-69589768d34f">Asymptotic Analysis</a></li><li><a href="https://medium.com/@emperorarthurix/clean-code-35bb06394fba">Clean Code</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9222cdb206f3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[100 Days of Code]]></title>
            <link>https://medium.com/@emperorarthurix/100-days-of-code-2a8fce539b5b?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/2a8fce539b5b</guid>
            <category><![CDATA[tips]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[review]]></category>
            <category><![CDATA[consistency-challenge]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sun, 15 May 2022 06:32:41 GMT</pubDate>
            <atom:updated>2022-05-15T06:32:41.004Z</atom:updated>
            <content:encoded><![CDATA[<h4>Tips and Review</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Kvmnt7-uMko2RQmi" /><figcaption>Photo by <a href="https://unsplash.com/@cookiethepom?utm_source=medium&amp;utm_medium=referral">Cookie the Pom</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Programming is a cognitively loaded task, be it solving algorithm problems or building an application. Notwithstanding all the skill and technological expertise required to become a good programmer, there is one essential element to make a difference — consistency.</p><p>To become consistent, programmers take up challenges like <a href="https://www.100daysofcode.com/">100 Days of Code</a>, and pledge to dedicate a certain amount of time each day, for a hundred days, to learning how to code.</p><p>I, too, took up this challenge on February 1st, 2022, and completed it on March 13th, 2022. Before I analyse the journey and describe my successes and mistakes, I must say that it was a wonderful learning experience, and now, at least one coding related task has become a part of my daily routine.</p><h3>Analysis</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Uh5PEg66dTQ9pPXT" /><figcaption>Photo by <a href="https://unsplash.com/@isaacmsmith?utm_source=medium&amp;utm_medium=referral">Isaac Smith</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>I wish enlist what I have learnt from my mistakes during the challenge, and share the same with everyone so they can improve upon the same and do better on their challenge!</p><h4>Regularity</h4><p>Here, I wish to distinguish between the words ‘consistency’ and ‘regularity’. I have been consistent throughout the challenge, that is, I never missed a day; however, in retrospect, I believe I may not have been regular, that is, I never coded or studied at the same time everyday.</p><p>Regularity seems to be an integral part of the challenge as well, since often, I would start working at night, and by the time I was supposed to push my code on GitHub for the daily update, it was already past 12 O’Clock and my streak had broken despite having worked for the day. It would have been perfect if I worked at night every time, since the cascading night shifts would have cancelled out the effect; but I worked at noon on some days, and in the evening on others, which led to broken streaks.</p><h4>Interaction Online</h4><p>Despite having worked quite hard on the challenge, I believe I have missed out drastically on the social media reach element. In the beginning, I was quite active on Twitter, Discord, and LinkedIn about the challenge, but over time, as the coding became complex, I would end up forgetting to post about it online by the time I finished.</p><p>Also, my LinkedIn and Medium activity during this challenge dipped below average, and I wish to correct this as soon as possible and become active on both platforms once again.</p><p>Thus, just as important as it is to code, it is also essential to get in touch with an audience that will watch your growth.</p><h4>Tips</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*2ndcNJ3XXLKq3QuV" /><figcaption>Photo by <a href="https://unsplash.com/@thoughtcatalog?utm_source=medium&amp;utm_medium=referral">Thought Catalog</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>To anyone who is either taking up the challenge, or is midway through it, or even is trying to inculcate consistency in general, here are a few tips to enhance your growth:</p><h4>Documentation</h4><p>It is of paramount importance to document everything you study, write, read, program or even think of. Documentation of your work not just allows you to have proof, but also helps others understand the work you have done, gives you something to refer to whenever you get stuck in the future, and often helps you yourself revise when you go through the code again.</p><p>Moreover, documentation is one of the most in-demand industry skills, as it helps communicate ideas that work, and those that don’t, so anyone who follows up will be able to work efficiently and avoid redundancy in their efforts.</p><p>Thus, make sure to document everything that you do during the challenge.</p><h4>Clean Code</h4><p>Often, we tend to write code while we think of a solution, and as soon as we crack the answer, we don’t bother making sure it looks clean and understandable, because it is probably just for us to look at later. Trust me, that extra five minutes of adding comments, properly naming variables and adding indentations will become essential when you read your own code 2 months later.</p><p>Even if your code is just for you, make a habit of writing clean, understandable and concise code which anyone will be able to understand when they have a look at it.</p><h4>Choose Topics</h4><p>Diving into the 100 Days challenge without knowing what you are going to do is not a wise decision. Gradually, your motivation to continue will wane away.</p><p>Instead of letting the spirit die, set goals for yourself before you begin the challenge. Select a few topics which you want to study during the challenge, and divide your time into sections (like weeks) for each topic. This way, your goals become more achievable, and your actions become more systematic and the drive to complete the challenge remains intact.</p><h3>Conclusion</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*_CPI0Z6eTOfueCr7" /><figcaption>Photo by <a href="https://unsplash.com/@saycheezestudios?utm_source=medium&amp;utm_medium=referral">Say Cheeze Studios</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>As the famous saying goes:</p><blockquote>The end is just a new beginning!</blockquote><p>I may have finished the 100 Days of Code challenge, but this is not where I stop, in fact, this is truly just the beginning of my journey of consistency and growth.</p><p>I officially take up the <a href="https://blog.streamlit.io/30-days-of-streamlit/">30 Days of Streamlit</a> challenge and will keep everyone posted with updates regarding the same as part of my effort in correcting my mistakes from last time.</p><p>I hope this article has been an interesting read!</p><blockquote>Thank you for your patience!</blockquote><p>If you liked this article, consider following me on Medium, <a href="https://medium.com/@emperorarthurix">here</a>.</p><p>If you’d like to get in touch, feel free to do so, <a href="https://www.linktr.ee/IshaanPandita">here</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2a8fce539b5b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Machine Learning]]></title>
            <link>https://medium.com/@emperorarthurix/machine-learning-6c26aa789b9f?source=rss-c81326ee2e15------2</link>
            <guid isPermaLink="false">https://medium.com/p/6c26aa789b9f</guid>
            <category><![CDATA[encyclopedia]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[guides-and-tutorials]]></category>
            <category><![CDATA[trending]]></category>
            <category><![CDATA[summary]]></category>
            <dc:creator><![CDATA[Ishaan Sunita Pandita]]></dc:creator>
            <pubDate>Sun, 10 Apr 2022 10:16:52 GMT</pubDate>
            <atom:updated>2022-04-10T10:16:52.691Z</atom:updated>
            <content:encoded><![CDATA[<p>Types of ML Models</p><p>We all have heard the term ‘Machine Learning’ and some might even be familiar with the details of how it works. Recently, I began studying about the various applications of Machine Learning, and I came across a couple of articles on the different types of ML Models that have been developed over the years, classified on the basis of the task they accomplish. In this article, I compile a list of what I have learnt in a comprehensive and crisp manner!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*KtZ0w4cybnb29F9F" /><figcaption>Photo by <a href="https://unsplash.com/@markuswinkler?utm_source=medium&amp;utm_medium=referral">Markus Winkler</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Let us first have an overview of the types of models we have, grouped on the basis of the tasks they perform:<br>1. Classification<br>2. Regression<br>3. Clustering<br>4. Dimensionality Reduction<br>5. Deep Learning</p><p>We may also make note that this is not an exhaustive list of ML Model types, just a compilation of the most common types that I have read about as of now.</p><h3>1. Classification</h3><p>A Machine Learning model whose <strong><em>output is always a categorical variable</em></strong>. These models are used whenever we have a set of <strong><em>labelled data </em></strong>and we need to group each datapoint into a certain ‘class’ or group of object with similar properties.</p><p>One of the most common application of these models is the Image Classifier, to classify images of animals into their groups, like cats, dogs, butterflies and so on.</p><p>Some common ML Algorithms which serve as classifier models are:</p><h4>K-Nearest Neighbours</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2ct1udfGlQRkyJ-F6TS5xQ.png" /><figcaption>When k = 5. Here, Point Z will be labelled as part of the cluster on the right side, despite becoming the only point in the cluster belonging to Quadrant II.</figcaption></figure><ul><li>Simple enough to be understood by beginners</li><li>Computationally expensive</li></ul><h4>Naive Bayes</h4><ul><li>Based on <a href="https://en.wikipedia.org/wiki/Bayes%27_theorem">Bayes’ Theorem</a></li><li>Updates probabilities based on gained information</li><li>Makes certain idealistic assumptions for these probabilities, thus titled ‘Naive’</li><li>Performs well on real world data, despite the assumptions</li></ul><h4>Logistic Regression</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*eDtYxVPUdHZjYHKM.png" /><figcaption>Logistic Regression using Sigmoid Function — Source: Wikipedia</figcaption></figure><ul><li>Named regression, but widely used in Binary Classification</li><li>Linear model for classification</li><li>Can be used for more than 2 classes as well, but becomes computationally expensive as classes increase</li></ul><h4>Support Vector Machine (SVM)</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TGGY7_mfOWkxD6kOshxfpQ.png" /><figcaption>One of the lines that separates this dataset, used for the SVM</figcaption></figure><ul><li>Used for binary or multi-class classification</li><li>Searches for a curve or hyperplane that divides data in the best way</li></ul><h4>Decision Tree</h4><ul><li>Used for binary or multiclass classification</li><li>Powerful against outliers</li><li>Overfitting may occur</li></ul><h4>Ensembles</h4><ul><li>A combination of two or more of the above stated classifiers, to get the desired result</li></ul><h3>2. Regression</h3><p>A Machine Learning model whose <strong><em>output can take up continuous values</em></strong>. These models are used when we need to establish a relationship between a value we want to predict and other values on which it may depend.</p><p>An example of application of regression would be the prediction of airplane ticket prices based on seasonal trends, or prediction of temperature on a certain day of the year.</p><p>Some common ML Algorithms which serve as regression models are:</p><h4>Linear Regression</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xd2JwDwB-YOA2Mlq3suOUQ.png" /><figcaption>Linear Regression, searching for the line of best fit</figcaption></figure><ul><li>The simplest of regression models</li><li>Works best on linearly separable data</li><li>Issues may arise when multi-collinearity is present in the dataset</li></ul><h4>Lasso Regression</h4><ul><li>Linear Regression with the L1 Regularisation</li><li>Reduces the number of predictor variables</li><li>Robust against outliers</li></ul><h4>Ridge Regression</h4><ul><li>Linear Regression with the L2 Regularisation</li><li>Does not reduce variables, instead keeps them all and adjusts their importance in the final outcome</li><li>Works best when <em>output</em> variable is a function of <strong>all</strong> <em>input</em> variables</li></ul><h4>SVM Regression or SVR</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*W0zog-ZBg2i_VHlopKrLiQ.png" /><figcaption>The line of best fit in this set of points</figcaption></figure><ul><li>Similar to the SVM</li><li>Objective is to find the <strong>best-fit</strong> line/curve</li><li>This is the hyperplane that contains the maximum points</li></ul><h4>Decision Tree Regression</h4><ul><li>Tree structure like Decision Tree classifier</li><li>Useful when predictions can have virtually infinite values</li></ul><h3>3. Clustering</h3><p>A Machine Learning algorithm that <strong><em>groups together unlabelled data</em></strong> and labels them without manual intervention, based on a certain measure of similarity.</p><p>A common application would be grouping together customers of a rock climbing club, based on their age, fitness and athleticism to give them the correct kind of course to practice on.</p><p>Some common ML Algorithms which serve as clustering models are:</p><h4>K-Means</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/990/1*iB3kpZqUrQJioQZNensP9g.png" /><figcaption>K-means, with randomised centroids. Here, centroids are accurate, many times, they may not be.</figcaption></figure><ul><li>Simple enough for beginners to understand</li><li>Suffers from high variance</li><li>‘K’ value must either be pre-determined or calculated, which can be computationally expensice</li></ul><h4>K-Means++</h4><ul><li>Improved version of K-Means, which selects initial centroids in a smarter manner</li><li>Although initialisation is a little longer than K-Means, it serves well to reduce time consumed later into the process</li></ul><h4>K-Medioids</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Chba1RhwTq913cYRqdn22Q.png" /><figcaption>Green points indicate actual datapoints closest to centroids</figcaption></figure><ul><li>K-Means gives centroids that may not actually be a part of the dataset, reducing interpretability</li><li>K-Medioids initialises like K-Means++, processes like K-Means, but finally chooses an actual data point as the centroid of groups, based on which point gives the least loss with respect to the original centroid</li></ul><h4>Agglomerative Clustering</h4><ul><li>Hierarchical clustering, bottom up approach</li><li>Begins with all datapoints in individual clusters, ends with one big cluster containing all datapoints, grouped on similarity measures</li><li>One of the penultimate states of cluster sets is chosen as the output set</li></ul><h4>DBSCAN</h4><ul><li>Groups together points that are close to each other, usually measured by <a href="https://en.wikipedia.org/wiki/Euclidean_distance">Euclidean distance</a></li><li>Basically has 2 parameters:<br>- Maximum distance between 2 points to consider them <em>close<br></em>- Minimum number of points to be labelled <em>close</em> to each other, to be called a high-density group</li><li>The <strong><em>optimum </em></strong>values of these parameters usually depend on the size of the dataset</li></ul><h3>4. Dimensionality Reduction</h3><p>Dimensionality is the number of predictor variables on which the target variable depends.</p><p>Often, in real world cases, we have access to a lot of predictor variables, but only a handful of them actually considerably affect the target variable, while others carry very little impact. Such subtle variables may be removed from the equation completely, in order to reduce computation costs.</p><p>This is known as dimensionality reduction and can result in reduction of model complexity, burden on the processor, and increase in computational efficiency; producing similar results, sometimes even better than original.</p><p>Some common ML Algorithms which serve as classifier models are:</p><h4>Principle Component Analysis (PCA)</h4><ul><li>Creates a new set of lesser number of predictor variables, out of the original set</li><li>Results become less interpretable</li></ul><h4>T-distributed Stochastic Neighbour Embedding (TSNE)</h4><ul><li>Calculates the measure of <em>similarity</em> of small sets of pairs of points, unlike maximizing variance as in PCA</li><li>A visual difference can be observed on the <em>Swiss Roll Dataset</em>, when processed with TSNE and with PCA</li><li>First a point is chosen</li><li>The gaussian distance distribution for this point is calculated</li><li>The size of the gaussian circle varies with <em>perplexity</em> or the number of gaussian neighbours in vicinity</li><li>We replace the gaussian distribution with a Cauchy Student-t distribution, with a sharper peak and heavy tails</li><li>Heavy tails can be used to find probabilities of similarity of far-away points, and keep only highly similar points (high probability) in the same cluster, in a lower dimension</li><li>Basically, it works like an M-Dimensional projection of an N-Dimensional dataset, where M &lt; N. Often, M is chosen as 2 or 3 for visualisation purposes.</li></ul><h4>Singular Value Decomposition (SVD)</h4><ul><li>Decomposes a large matrix into smaller, calculable component matrices based on linear algebra</li><li>Uses properties of linear transformations to produce results efficiently</li></ul><h3>5. Deep Learning</h3><p>The subset of Machine Learning that deals with Neural Networks is known as deep learning.</p><p>It has taken up the internet by storm, as it is being used widely in numerous ways in digital marketing, application personalisation, recommendation systems and many other facets of the internet. Often, we see image perception using neural networks and real-time object labelling, both of which are products of deep learning.</p><p>Some common ML Algorithms which serve as deep learning models are:</p><ol><li>Multi-layer perceptron</li><li>Convolutional Neural Networks (CNN)</li><li>Recurrent Neural Networks (RNN)</li><li>Boltzmann Machine</li><li>Autoencoders</li><li>Generative Adversarial Networks (GAN)</li></ol><h3>Conclusion</h3><p>We have understood a few fundamental and differentiating features of a small set of machine learning models as well as algorithms which fall under those categories. Once I learn more about these models, I shall expand upon this data in a new article in continuation to this one.</p><p>If you liked the article so far, you might want to follow me on Medium, <a href="https://medium.com/@emperorarthurix">here</a>.</p><p>If you would like to get in touch, you may do so <a href="https://linktr.ee/IshaanPandita">here</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6c26aa789b9f" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>