<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Christine Kim</title>
    <description>The latest articles on DEV Community by Christine Kim (@xtineskim).</description>
    <link>https://dev.to/xtineskim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F287945%2F1c311cc1-57c2-4ffd-82b5-c1b5fb2412e4.png</url>
      <title>DEV Community: Christine Kim</title>
      <link>https://dev.to/xtineskim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xtineskim"/>
    <language>en</language>
    <item>
      <title>The K8 Gateway API 🚀</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Thu, 03 Nov 2022 15:20:26 +0000</pubDate>
      <link>https://dev.to/xtineskim/the-k8-gateway-api-3cem</link>
      <guid>https://dev.to/xtineskim/the-k8-gateway-api-3cem</guid>
      <description>&lt;p&gt;If you follow the K8s world, you have probably heard that the Gateway API has been released as beta this past summer! &lt;/p&gt;

&lt;p&gt;As a superset of the Ingress API, the Gateway API provides a lot of power to teams, by letting non-admin folks get non-admin tasks completed.&lt;/p&gt;

&lt;p&gt;If you wanted to try out the Gateway API, but weren't sure where to start, I created a simple and easy demo that walks through 3 common use cases, and you can see how simple it is!&lt;/p&gt;

&lt;p&gt;The steps are outlined on &lt;a href="https://github.com/xtineskim/gatewayapi-demo"&gt;my repo here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A rough overview is that you will deploy a sample application &lt;code&gt;httpbin&lt;/code&gt;, and create a Gateway with the Istio Gateway Controller. &lt;br&gt;
Then you can try out 3 scenarios: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Adding a new route to your &lt;code&gt;HTTPRoute&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Traffic shifting between v1 and v2 of your application&lt;/li&gt;
&lt;li&gt;Trying a new Gateway! (this one is my personal fave)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Try it out, and leave any questions that you might have here! :)&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>istio</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>which gateway?? ⛩</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Thu, 20 Oct 2022 13:52:22 +0000</pubDate>
      <link>https://dev.to/xtineskim/which-gateway-d6m</link>
      <guid>https://dev.to/xtineskim/which-gateway-d6m</guid>
      <description>&lt;p&gt;If you search up the term gateway with kubernetes, it's likely you will see the (new-ish) Gateway API, which was released as beta July 2022. This short article is a run down of what the "gateway" is in kubernetes land!&lt;/p&gt;

&lt;p&gt;Naming is hard. And throw in jargon on top of it in an ever changing ecosystem makes it even tougher.&lt;/p&gt;

&lt;p&gt;The concept of a gateway is to allow for traffic from outside your cluster to hit your services. &lt;/p&gt;

&lt;p&gt;A 'gateway' that people refer to is the Ingress Gateways. For example, &lt;a href="//istio.io"&gt;Istio&lt;/a&gt; has a &lt;a href="https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/"&gt;Gateway resource&lt;/a&gt; (aka a "gateway"). This Gateway resource &lt;em&gt;configures&lt;/em&gt; a Gateway Deployment (also called a "gateway" as well). Usually, you will have decipher which gateway is being referenced in. So that's already 2 mentions of the gateway in jargon form.&lt;/p&gt;

&lt;p&gt;Next up, we have the new &lt;a href="//gateway-api.sig.k8s.io"&gt;Gateway API&lt;/a&gt;. This is a standardized API designed to be the superset of the Ingress API. It has been created out of inspiration from Istio's Gateway and other gateway &lt;br&gt;
The Gateway API's resources is comprised of "GatewayClass", "Gateway" (referred to as 'gateway'), and routes, such as "HTTPRoute", "TLSRoute", etc. &lt;/p&gt;

&lt;p&gt;That's a wrap on different gateways you might face in the k8's land! &lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>istio</category>
      <category>opensource</category>
    </item>
    <item>
      <title>what north-south-east-west traffic means 🧭</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Mon, 21 Mar 2022 13:35:18 +0000</pubDate>
      <link>https://dev.to/xtineskim/what-north-south-east-west-traffic-means-j24</link>
      <guid>https://dev.to/xtineskim/what-north-south-east-west-traffic-means-j24</guid>
      <description>&lt;p&gt;Continuing with my short intro articles of microservice-related concepts, the next question I wanted to tackle is &lt;em&gt;traffic&lt;/em&gt;. All these articles are short, so hopefully you can read through something quick while getting a cup of coffee.&lt;/p&gt;

&lt;p&gt;I'm sure you've heard of north south, or east west traffic. This article hopefully will explain this in terms of microservices, and the lingo that goes along side these terms.&lt;/p&gt;

&lt;h3&gt;
  
  
  North-South
&lt;/h3&gt;

&lt;p&gt;When you have a kubernetes cluster with your services running, how does the outside end-user actually come into contact with your service? Or maybe it's something that trying to access a microservice in your cluster. This is what's considered to be &lt;em&gt;north&lt;/em&gt; traffic - i.e an outside request coming to your cluster. To handle this incoming traffic, you can set up a load balancer. A kubernetes load balancers (LB) gives a single external IP address that will forward all your incoming traffic to your service. &lt;br&gt;
South traffic is for when you have requests leaving your cluster (maybe you are returning a response, or you need to call an external API). While there is an ingress resource type provided by the Kubernetes API, there is no egress resource type :( . This is where something like Istio's Egress Resource comes in handy. &lt;/p&gt;

&lt;h3&gt;
  
  
  East-West
&lt;/h3&gt;

&lt;p&gt;East-West traffic is considered to be your services communication with each other. Generally speaking, this is traffic within a data centre ("server to server traffic"), and the definition translated to reflect traffic within one's cluster. This is more straightforward than North-West.&lt;/p&gt;

&lt;p&gt;Hope this quick read taught you something! Have a great day 🌟&lt;br&gt;
twitter: &lt;a href="https://twitter.com/christineskim_"&gt;@christineskim_&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>microservices</category>
      <category>architecture</category>
      <category>beginners</category>
    </item>
    <item>
      <title>what do you wish you knew about kubernetes? 🤔 some getting started resources</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Sun, 20 Feb 2022 03:15:11 +0000</pubDate>
      <link>https://dev.to/xtineskim/what-do-you-wish-you-knew-about-kubernetes-2jfe</link>
      <guid>https://dev.to/xtineskim/what-do-you-wish-you-knew-about-kubernetes-2jfe</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Learning tech is constant and a skill. If you have any q at all, let's see if we can get some a's!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I recall when I was trying to learn kubernetes, it took a few tries to grasp concepts. For any newbies interested in trying out kubernetes, need an explanation, or want a good metaphor, leave a comment below! I (or anyone!) can try to explain it :)&lt;br&gt;
Personally for me, being a developer first, learning k8 was great with examples and being hands on. Here are &lt;em&gt;some&lt;/em&gt; resources if you are interested in getting started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=PziYflu8cB8" rel="noopener noreferrer"&gt;Kubernetes in 100s by Fireship.io&lt;/a&gt;: a digestable/quick intro to k8s&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kubernetes.io/docs/home/" rel="noopener noreferrer"&gt;Kubernetes docs&lt;/a&gt; are well written, and you can't go wrong with them&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kelseyhightower/kubernetes-the-hard-way" rel="noopener noreferrer"&gt;Learn kubernetes the hard way&lt;/a&gt; is a tutorial that you can run through. It's well written and descriptive.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://minikube.sigs.k8s.io/docs/start/" rel="noopener noreferrer"&gt;minikube&lt;/a&gt; is a tool for creating local k8 clusters. It's a great intro to actually trying out &lt;code&gt;kubectl&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;this was everyone once upon a time I promise&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn113d3by9z14dqhpdeqm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn113d3by9z14dqhpdeqm.png" alt="learning k8s"&gt;&lt;/a&gt;&lt;br&gt;
twitter: &lt;a href="https://twitter.com/christineskim_" rel="noopener noreferrer"&gt;@christineskim_&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>cloud</category>
    </item>
    <item>
      <title>A quick n' gentle intro into Service Meshes 🕸</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Fri, 14 Jan 2022 16:06:39 +0000</pubDate>
      <link>https://dev.to/xtineskim/a-quick-n-gentle-intro-into-service-meshes-1ej4</link>
      <guid>https://dev.to/xtineskim/a-quick-n-gentle-intro-into-service-meshes-1ej4</guid>
      <description>&lt;p&gt;I recently started at Google as a DPE (developer programs engineer). Part of my job is to keep tabs on what happens in the open source world. &lt;br&gt;
I have been looking around the CNCF landscape recently, and after attending some virtual talks at the end of last year, I wanted to dedicate time to have a better understanding of the world of OSS (open source software).&lt;/p&gt;

&lt;p&gt;This article is just a soft intro in service meshes. With security being such a hot topic last year, I believe that service meshes will be highlighted (it already is!) into being leveraged as a security tool.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So, what is a service mesh?&lt;/em&gt;&lt;br&gt;
I think an important question to ask first is why did the need of service mesh ever happen?&lt;br&gt;
Well, with the rise of microservices, all of the service-to-service communication needed to be monitored. Developers found that communication logic needed to be included in within their pods. That's more overhead for developers - they primarily want to focus on the business logic of their apps.&lt;/p&gt;

&lt;p&gt;Enter the &lt;em&gt;service mesh&lt;/em&gt;. To put it simply, a service mesh is a way to connect, manage, and monitor your services as they communicate with each other. This decouples the tools of communication from your apps (low coupling high cohesion mentality), and pushes this logic to the infrastructure layer.&lt;/p&gt;

&lt;p&gt;So how does it work??&lt;br&gt;
Each service that you have is configured to route traffic to a local proxy (installed as a &lt;em&gt;sidecar&lt;/em&gt;). A proxy is a 'sidecar' that sits next to your business application container. It exposes primitives that manage communication logic (retry, encryption info, routing rules, etc). &lt;br&gt;
So to recap what we know so far, each service for your app has a proxy that sits right next to it. All these proxies together form the 'mesh' - hence the service mesh! &lt;/p&gt;

&lt;p&gt;This is a high level description of service meshes, please let me know if you have any questions!! I plan to do a deeper dive in the components of the service mesh soon😎 Stay tuned!&lt;br&gt;
twitter: &lt;a href="https://twitter.com/christineskim_"&gt;@christineskim_&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Some useful reads&lt;/em&gt;&lt;br&gt;
&lt;a href="https://istio.io/latest/about/service-mesh/"&gt;Istio - About&lt;/a&gt;&lt;br&gt;
The &lt;a href="https://istio.io/latest/docs/ops/deployment/architecture/"&gt;Istio Architecture diagram&lt;/a&gt; is a great infographic for how it looks. &lt;/p&gt;

</description>
      <category>microservices</category>
      <category>servicemesh</category>
      <category>beginners</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Digital certificates and what they do</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Mon, 12 Jul 2021 13:35:22 +0000</pubDate>
      <link>https://dev.to/xtineskim/digital-certificates-and-what-they-do-19d0</link>
      <guid>https://dev.to/xtineskim/digital-certificates-and-what-they-do-19d0</guid>
      <description>&lt;p&gt;Digital certificates are a key component in the TLS handshake. We often hear digital 'certs', but what do they actually represent? &lt;br&gt;
Digital certificates (also called public key certificate) is a way to prove the ownership of a public key. The contents are (but are not limited to):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Info about the key (what type of key it is)&lt;/li&gt;
&lt;li&gt;Who the owner of the key&lt;/li&gt;
&lt;li&gt;The owner's public key&lt;/li&gt;
&lt;li&gt;The digital signature of a third party entity that verifies that whoever holds the certificate is who they say they are (this is called the issuer). This is (supposedly) unique, un-fakeable hash.&lt;/li&gt;
&lt;li&gt;Who the issuer is&lt;/li&gt;
&lt;li&gt;The expiry date of the certificate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Okay cool, so we have someone who approves the certificate.... how do we know they are a valid entity?! We do the same thing again - another third party signs on the issuer's certificate, till we get to the root certificate authority. Ok.... so who approves them? Well those certificates are self signed, and are stored on your laptop by the manufacturer. &lt;/p&gt;

&lt;p&gt;Here is a helpful diagram to show how this waterfall of approvals happens (this is called the 'chain of trust'):&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzusnsj2zy46z2p327kt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzusnsj2zy46z2p327kt9.png" alt="Screen Shot 2021-07-12 at 9.31.47 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next article, I'll go through more TLS components, and break them down like this. &lt;/p&gt;

</description>
      <category>security</category>
      <category>tutorial</category>
      <category>learn</category>
      <category>inthirtyseconds</category>
    </item>
    <item>
      <title>What's the difference between TLS 1.2 vs 1.3???</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Tue, 22 Jun 2021 17:39:02 +0000</pubDate>
      <link>https://dev.to/xtineskim/what-s-the-difference-between-tls-1-2-vs-1-3-dhj</link>
      <guid>https://dev.to/xtineskim/what-s-the-difference-between-tls-1-2-vs-1-3-dhj</guid>
      <description>&lt;p&gt;Most people don't think twice of when they connect to a website. The split second it takes for a (new) website to load, an awesome protocol occurs behind the scene - to make sure that the website that you are requesting to view is who they say they are.&lt;br&gt;
TLS stands for Transport Layer Security, and in my personal opinion, is under appreciated, especially for how widely used it is.&lt;br&gt;
The goal of TLS is to have you (client) and the server, agree to using the same key to encrypt and decrypt any messages sent between you two. This is known as a symmetric key.&lt;br&gt;
How do you agree to the same key? If either the client or the server sends they key over, then anyone eavesdropping can just steal the key and use it. To get the same key to both parties, asymmetrical encryption is used.&lt;/p&gt;

&lt;p&gt;In TLS 1.2, the client proposes key exchange algorithms and a symmetric key encryption algorithms, and the server sends back which one it prefers to use. This agreement doesn't exist in TLS 1.3, by &lt;em&gt;assuming&lt;/em&gt; that the key exchange is going to be in a certain key exchange method, and therefore doesn't have to go through that round trip. Furthermore, TLS 1.3 depreciated insecure features, such as SHA-1, DES, MD5, AES-CBC (and some more). Another cool thing about TLS 1.3 is that it mandates perfect forward secrecy - meaning that there's an assurance that a session's key will not be compromised even if the secrets used in the session key exchange are compromised.&lt;/p&gt;

&lt;p&gt;I'm going to make a future post going into the details of the actual exchange of keys and the math behind it. Stay tuned!&lt;/p&gt;

</description>
      <category>web</category>
      <category>programming</category>
      <category>internet</category>
      <category>knowledge</category>
    </item>
    <item>
      <title>What's the diff? Snowpack vs Webpack</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Mon, 14 Jun 2021 14:06:39 +0000</pubDate>
      <link>https://dev.to/xtineskim/snowpack-vs-webpack-5g8i</link>
      <guid>https://dev.to/xtineskim/snowpack-vs-webpack-5g8i</guid>
      <description>&lt;p&gt;Recently, I tried out a new project with Snowpack. I have always used Webpack in my projects, but it seemed like a good opportunity to try something new out. This post is a short read on Webpack and Snowpack, and a little talk about my experience with it.&lt;/p&gt;

&lt;p&gt;First off, what is Webpack?&lt;br&gt;
On its website, it is a module bundler. When web apps started getting much larger, Webpacks became the answer to the size of these dependencies and overall project size. Webpack goes through the packages you have in your project, and creates a dependency graph that contains modules that your web app needs to function. Pretty much, it's tasked with taking your JS files, imported NPM modules, images, CSS, other assets, and throw it into a build file that the browser can run. Every time you make a change, your files have to be re-bundled, making it quite tedious.&lt;/p&gt;

&lt;p&gt;Then what's snowpack? &lt;br&gt;
Snowpack, is much newer, coming on to the scene in 2019. It a front-end build tool for JS, and was created to be an alternative to webpack. Snowpack is able to be light weight by taking advantage of JavaScript's native module system, to only do the bare minimum. It uses ES modules to run within the browser, and only use modules when it's needed. There is also an ability to imports modules from CDN servers. If you don't need have a large request waterfall, and want to gave as little tooling as possible, then you would benefit to using Snowpack.&lt;/p&gt;

&lt;p&gt;The project I wanted to make was a React app, and deploy it through GitHub pages. The setup was quite simple, and I found that the documentation on the Snowpack page to be really thorough. However, reading more up on it, I heard it wasn't recommended to use with a no configuration tool like &lt;em&gt;create-react-app&lt;/em&gt;, because I needed to figure plugins and configure some of my settings to get it to work. (I made a template &lt;a href="https://github.com/ckim328/snowpack-react-template-gh"&gt;here&lt;/a&gt; if you want to avoid the pain that I went through setting up and making your Snowpack React app work with gh-pages). But wither than that, I found it was much quicker and help speed up my workflow for my small project.&lt;/p&gt;

&lt;p&gt;Overall, I would recommend trying out Snowpack, since it's pretty easy to figure out how to get up off the ground with. Leave a comment if I missed anything on comparing the two, and what preference you have if any!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>todayisearched</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>How to redirect your hosted GitHub page to a custom domain</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Sat, 05 Jun 2021 02:52:00 +0000</pubDate>
      <link>https://dev.to/xtineskim/how-to-redirect-your-hosted-github-page-to-a-custom-domain-15mc</link>
      <guid>https://dev.to/xtineskim/how-to-redirect-your-hosted-github-page-to-a-custom-domain-15mc</guid>
      <description>&lt;p&gt;If you have your own domain, and a Github account, you could take advantage of redirecting hosted pages to your own domain.&lt;/p&gt;

&lt;p&gt;This article is assuming that you already deployed your GitHub page at yourUsername.github.io &lt;/p&gt;

&lt;p&gt;For example, I have a website &lt;em&gt;&lt;a href="http://www.example.com" rel="noopener noreferrer"&gt;www.example.com&lt;/a&gt;&lt;/em&gt; through Google Domains. Below is a screen shot of my custom domain.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frm1g2arzenjkj23p5i7a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frm1g2arzenjkj23p5i7a.png" alt="Screen Shot 2021-06-04 at 10.33.04 PM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To point your GitHub page to your website, first add to your DNS records the url, CNAME record,  and the IP addresses. CNAME means that it's a Custom Domain.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;www&lt;/em&gt; , &lt;em&gt;CNAME&lt;/em&gt;, and &lt;em&gt;'yourGitHubUsername'.github.io&lt;/em&gt; .&lt;/p&gt;

&lt;p&gt;Next, add GitHub's IP addresses under the DNS - with an A record. The A indicates that it's an 'Alias'. &lt;br&gt;
As of June 2021, the IPs are&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;@&lt;/em&gt; , &lt;em&gt;A&lt;/em&gt; , and the above IP addresses.&lt;br&gt;
You can double check &lt;a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lastly, under the Settings tab on your GitHub repo for your site, go to the &lt;strong&gt;Pages&lt;/strong&gt; section.&lt;br&gt;
In the custom domain field, put your custom domain (&lt;em&gt;&lt;a href="http://www.example.com" rel="noopener noreferrer"&gt;www.example.com&lt;/a&gt;&lt;/em&gt;).&lt;br&gt;
&lt;em&gt;It might take a little time for it to load&lt;/em&gt;&lt;br&gt;
Congrats, you are now pointing your page to your custom domain!&lt;/p&gt;

&lt;p&gt;You can also host pages. &lt;br&gt;
By deploying through Github pages, that are not username.github.io. If you deploy using gh pages, you can add themto your DNS configuration.&lt;/p&gt;

&lt;p&gt;For example, if I had &lt;a href="http://www.mywebsite.com" rel="noopener noreferrer"&gt;www.mywebsite.com&lt;/a&gt;, and deployed a page &lt;a href="http://www.mywebsite.com/books" rel="noopener noreferrer"&gt;www.mywebsite.com/books&lt;/a&gt;&lt;br&gt;
add into your DNS configuration&lt;br&gt;
books , &lt;em&gt;CNAME&lt;/em&gt;, and &lt;em&gt;'yourGitHubUsername'.github.io&lt;/em&gt; .&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>github</category>
      <category>web</category>
      <category>dns</category>
    </item>
    <item>
      <title>Javascript's import vs require?</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Fri, 28 May 2021 14:55:31 +0000</pubDate>
      <link>https://dev.to/xtineskim/javascript-s-import-vs-require-4nm3</link>
      <guid>https://dev.to/xtineskim/javascript-s-import-vs-require-4nm3</guid>
      <description>&lt;p&gt;I was recently creating a script that requested data from a 3rd party API, and I was running this script within the server of a Sapper project. In order to correctly get this data, I went through promise chaining, and I had to use an '.mjs' extension on my script.&lt;/p&gt;

&lt;p&gt;Since Node v12, ES modules has been enabled by default. Hence my use of '.mjs' to run my file including a node module.&lt;br&gt;
Another way to resolve this issue is to use import with Node.js, you have to edit the package.json to 'type':'module'. However, using this caused my Sapper server to crash since it wasn't supported, as the rollup file outputs the format to commonjs &lt;a href="https://github.com/sveltejs/sapper/issues/1459"&gt;Explained in (this GitHub issue&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Commonjs uses require and module.exports, while ES6 uses import and export. Import and Export are used to refer to an ES module, and can't be used with other file types. &lt;/p&gt;

&lt;p&gt;Reading a little more up on it, here are some differences I found&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;import will be run in the beginning of the file, always, whereas require can be called anytime and anywhere&lt;/li&gt;
&lt;li&gt;import gets sorted to the top of the file&lt;/li&gt;
&lt;li&gt;import can be used to selectively load parts you need, and can save memory&lt;/li&gt;
&lt;li&gt;import can be asynchronous, which apparently perform better, and require is synchronous&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Are there any others that I missed?&lt;br&gt;
tl;dr: ES6 -&amp;gt; import, export default, export  vs commonjs -&amp;gt; require, module.exports, export.foo&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>Using Notion's new beta API</title>
      <dc:creator>Christine Kim</dc:creator>
      <pubDate>Wed, 26 May 2021 14:50:11 +0000</pubDate>
      <link>https://dev.to/xtineskim/using-notion-s-new-beta-api-2ip5</link>
      <guid>https://dev.to/xtineskim/using-notion-s-new-beta-api-2ip5</guid>
      <description>&lt;p&gt;Recently, Notion released a beta public API. This is amazing news, as an avid user of Notion, I am excited to find ways to integrate my Notion workplace more seamlessly across tools. The documentation for the API is found &lt;a href="https://developers.notion.com/reference/intro"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;This post is just an intro into hitting the API using Postman - instead of using the SDK- just in case if I choose to write an integration in another language.&lt;/p&gt;

&lt;p&gt;Setting up the workplace is comprehensive.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Have a personal workspace&lt;/li&gt;
&lt;li&gt;Go to the &lt;a href="https://www.notion.so/my-integrations"&gt;Notion integration page&lt;/a&gt;. This should already be linked up with your account. Name your project, copy and paste your token somewhere safe!&lt;/li&gt;
&lt;li&gt;Make a page. Share a workspace with your integration, by clicking &lt;strong&gt;Share&lt;/strong&gt;. Your integration you made should be listed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now here is a breakdown of the URLs, because I was slightly confused on how to get the ID of certain blocks.&lt;/p&gt;

&lt;p&gt;First off, a POST request through Postman. &lt;br&gt;
This is pretty straight forward. First, you need the ID of the database.&lt;/p&gt;

&lt;p&gt;Say your workspace has this link (you can get this link by clicking &lt;strong&gt;Share&lt;/strong&gt;, and clicking &lt;strong&gt;Copy link&lt;/strong&gt; in the bottom right of the popup. &lt;/p&gt;

&lt;p&gt;The link for this table page is for example is &lt;em&gt;&lt;a href="https://www.notion.so/904748e3b5214b28a5e6f74f32048e1f?v=4a8"&gt;https://www.notion.so/904748e3b5214b28a5e6f74f32048e1f?v=4a8&lt;/a&gt;....&lt;/em&gt;&lt;br&gt;
&lt;em&gt;I changed the IDs of my pages, so clicking this link will result in a 404.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We want the &lt;strong&gt;904748e3b5214b28a5e6f74f32048e1f&lt;/strong&gt; part of the url. So copy your database ID down.&lt;/p&gt;

&lt;p&gt;I created a page in this page, which contains a table already in my workspace. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ypqPMIht--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xeyaer2bq3ekd2w5sin2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ypqPMIht--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xeyaer2bq3ekd2w5sin2.png" alt="Screen Shot 2021-05-26 at 10.11.43 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the database ID copied down, I go into Postman and fill a POST request.&lt;br&gt;
In the url field, paste in &lt;strong&gt;&lt;a href="https://api.notion.com/v1/pages"&gt;https://api.notion.com/v1/pages&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2nTiGyH4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bhaafgf5ay6e57xoeaz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2nTiGyH4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bhaafgf5ay6e57xoeaz.png" alt="Screen Shot 2021-05-26 at 10.33.04 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember the secret token we got earlier? Under the &lt;strong&gt;Authorization&lt;/strong&gt; tab, select the &lt;strong&gt;TYPE&lt;/strong&gt; as 'Bearer Token', and paste that token in the text field.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yG9llys5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9svbtja97dut3bt4aiy5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yG9llys5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9svbtja97dut3bt4aiy5.png" alt="Screen Shot 2021-05-26 at 10.34.58 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then in the &lt;strong&gt;Body&lt;/strong&gt; tab, we are going to fill in the data to write an entry into the table.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2z1YblVf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2o9s6rgx1qdm4d0a9vxd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2z1YblVf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2o9s6rgx1qdm4d0a9vxd.png" alt="Screen Shot 2021-05-26 at 10.36.36 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make sure to change your database_id with your respective ID (mine was &lt;em&gt;9047e...&lt;/em&gt; ).&lt;/p&gt;

&lt;p&gt;Now click &lt;strong&gt;Send&lt;/strong&gt;. If everything was filled out correctly, you should get a JSON response with the id, and the properties of the page!&lt;br&gt;
Congrats, you made your first POST request in Postman with Notion's beta API!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tutorial</category>
      <category>api</category>
    </item>
  </channel>
</rss>
