-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
13 lines (13 loc) · 10.8 KB
/
index.html
File metadata and controls
13 lines (13 loc) · 10.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
<!doctype html><html lang=en dir=auto><head><meta name=generator content="Hugo 0.111.3"><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><title>Hanggi - NGNL</title><meta name=description content="Web3 advocate and pioneer"><meta name=author content="Hanggi"><link rel=canonical href=https://hanggi.me/><meta name=google-site-verification content="XYZabc"><link crossorigin=anonymous href=/assets/css/stylesheet.css rel="preload stylesheet" as=style><link rel=icon href=https://hanggi.me/images/favicon.ico><link rel=icon type=image/png sizes=16x16 href=https://hanggi.me/images/favicon-16x16.png><link rel=icon type=image/png sizes=32x32 href=https://hanggi.me/images/favicon-32x32.png><link rel=apple-touch-icon href=https://hanggi.me/images/apple-touch-icon.png><link rel=mask-icon href=https://hanggi.me/%3Clink%20/%20abs%20url%3E><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><link rel=alternate type=application/rss+xml href=https://hanggi.me/index.xml><noscript><style>#theme-toggle,.top-link{display:none}</style><style>@media(prefers-color-scheme:dark){:root{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--hljs-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51)}.list{background:var(--theme)}.list:not(.dark)::-webkit-scrollbar-track{background:0 0}.list:not(.dark)::-webkit-scrollbar-thumb{border-color:var(--theme)}}</style></noscript><script type=application/javascript>var doNotTrack=!1;doNotTrack||(function(e,t,n,s,o,i,a){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,i=t.createElement(n),a=t.getElementsByTagName(n)[0],i.async=1,i.src=s,a.parentNode.insertBefore(i,a)}(window,document,"script","https://www.google-analytics.com/analytics.js","ga"),ga("create","UA-128672771-2","auto"),ga("send","pageview"))</script><meta property="og:title" content="Hanggi - NGNL"><meta property="og:description" content="Web3 advocate and pioneer"><meta property="og:type" content="website"><meta property="og:url" content="https://hanggi.me/"><meta property="og:image" content="https://cdn.discordapp.com/attachments/989268300473192561/1089919441812324482/Hanggi_web3_pioneer_935fecf9-5d1a-4f33-b95f-980a705c45b6.png"><meta property="og:site_name" content="Hanggi"><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://cdn.discordapp.com/attachments/989268300473192561/1089919441812324482/Hanggi_web3_pioneer_935fecf9-5d1a-4f33-b95f-980a705c45b6.png"><meta name=twitter:title content="Hanggi - NGNL"><meta name=twitter:description content="Web3 advocate and pioneer"><script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","name":"Hanggi - NGNL","url":"https://hanggi.me","description":"Web3 advocate and pioneer","thumbnailUrl":"https://hanggi.me/images/favicon.ico","sameAs":["https://twitter.com/HanggiCrown"]}</script></head><body class=list id=top><script>localStorage.getItem("pref-theme")==="dark"?document.body.classList.add("dark"):localStorage.getItem("pref-theme")==="light"?document.body.classList.remove("dark"):window.matchMedia("(prefers-color-scheme: dark)").matches&&document.body.classList.add("dark")</script><header class=header><nav class=nav><div class=logo><a href=https://hanggi.me accesskey=h title="Hanggi (Alt + H)">Hanggi</a><div class=logo-switches><button id=theme-toggle accesskey=t title="(Alt + T)"><svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg><svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></button></div></div><ul id=menu><li><a href=https://hanggi.me/categories/ title=categories><span>categories</span></a></li><li><a href=https://hanggi.me/tags/ title=tags><span>tags</span></a></li></ul></nav></header><main class=main><article class="first-entry home-info"><header class=entry-header><h1>NGNL 👋</h1></header><div class=entry-content>Welcome to my blog</div><footer class=entry-footer><div class=social-icons><a href=https://twitter.com/HanggiCrown target=_blank rel="noopener noreferrer me" title=Twitter><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 3a10.9 10.9.0 01-3.14 1.53 4.48 4.48.0 00-7.86 3v1A10.66 10.66.0 013 4s-4 9 5 13a11.64 11.64.0 01-7 2c9 5 20 0 20-11.5a4.5 4.5.0 00-.08-.83A7.72 7.72.0 0023 3z"/></svg></a></div></footer></article><article class=post-entry><header class=entry-header><h2>2022 选择属于自己的编程语言与框架</h2></header><div class=entry-content><p>选择什么编程语言与框架一直都是容易引起争论的话题。
因为编程语言与框架数量众多,每一种热门语言与框架都有各自的特点与一众忠实的追随者。
如果一不小心触及到别人的饭碗,只要喊一句万能的 “PHP是世界上最好的语言!” 就能全身而退。
...</p></div><footer class=entry-footer><span title='2022-02-08 10:24:47 +0900 +0900'>February 8, 2022</span> · 1 min · Me</footer><a class=entry-link aria-label="post link to 2022 选择属于自己的编程语言与框架" href=https://hanggi.me/post/dev-guide/programming-language-framework-recommendation/></a></article><article class=post-entry><header class=entry-header><h2>你应该知道的命令行使用技巧</h2></header><div class=entry-content><p>常用命令行使用技巧,有些你可能已经知道,有些可能不知道。
...</p></div><footer class=entry-footer><span title='2020-06-17 11:32:07 +0900 +0900'>June 17, 2020</span> · 2 min · Hanggi</footer><a class=entry-link aria-label="post link to 你应该知道的命令行使用技巧" href=https://hanggi.me/post/dev-guide/useful-command-line/></a></article><article class=post-entry><header class=entry-header><h2>基于角色的访问控制 (RBAC): Permissions vs. Roles</h2></header><div class=entry-content><p>通常在我们确定一个用户的身份之后,我们需要确定这个用户是否可以访问他要访问的页面或资源(授权)。基于角色的访问控制(RBAC)是企业软件完成此操作的最常用方法之一。它具有高度的灵活性,并可以进行多种配置。 我们将在这里高层讨论角色和权限是什么,它们如何协同工作以及如何使用它们来检查访问权限。
...</p></div><footer class=entry-footer><span title='2020-06-17 11:00:44 +0900 +0900'>June 17, 2020</span> · 1 min · Hanggi</footer><a class=entry-link aria-label="post link to 基于角色的访问控制 (RBAC): Permissions vs. Roles" href=https://hanggi.me/post/dev-guide/rbac-basic/></a></article><article class=post-entry><header class=entry-header><h2>在 Kubernetes 部署 PostgreSQL</h2></header><div class=entry-content><p>Kubernetes是一个开源容器编排系统,用于自动化容器化应用程序的部署,扩展和管理。 在 Kubernetes 上运行 PostgreSQL 数据库是目前经常会讨论到主题,因为 Kubernetes 提供了使用持久卷,有状态集等来配置有状态容器的方法。
本文旨在提供在 Kubernetes 集群上运行 PostgreSQL 数据库的步骤。
...</p></div><footer class=entry-footer><span title='2020-05-09 11:55:16 +0900 +0900'>May 9, 2020</span> · 2 min · Hanggi</footer><a class=entry-link aria-label="post link to 在 Kubernetes 部署 PostgreSQL" href=https://hanggi.me/post/kubernetes/k8s-postgresql/></a></article><article class=post-entry><header class=entry-header><h2>在 Kubernetes 上部署 Drone 持续集成环境</h2></header><div class=entry-content><p>之前已经用 Docker 和 Docker-compose 搭建了 Drone 的持续集成/部署环境。
这次我们将 Drone 部署到 Kubernetes 上。
...</p></div><footer class=entry-footer><span title='2020-04-26 08:28:39 +0900 +0900'>April 26, 2020</span> · 3 min · Hanggi</footer><a class=entry-link aria-label="post link to 在 Kubernetes 上部署 Drone 持续集成环境" href=https://hanggi.me/post/deployment/drone-ci-k8s/></a></article><footer class=page-footer><nav class=pagination><a class=next href=https://hanggi.me/page/2/>Next »</a></nav></footer></main><footer class=footer><span>© 2023 <a href=https://hanggi.me>Hanggi - NGNL</a></span>
<span>Powered by
<a href=https://gohugo.io/ rel="noopener noreferrer" target=_blank>Hugo</a> &
<a href=https://github.com/adityatelange/hugo-PaperMod/ rel=noopener target=_blank>PaperMod</a></span></footer><a href=#top aria-label="go to top" title="Go to Top (Alt + G)" class=top-link id=top-link accesskey=g><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentcolor"><path d="M12 6H0l6-6z"/></svg></a><script>let menu=document.getElementById("menu");menu&&(menu.scrollLeft=localStorage.getItem("menu-scroll-position"),menu.onscroll=function(){localStorage.setItem("menu-scroll-position",menu.scrollLeft)}),document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault();var t=this.getAttribute("href").substr(1);window.matchMedia("(prefers-reduced-motion: reduce)").matches?document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView():document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({behavior:"smooth"}),t==="top"?history.replaceState(null,null," "):history.pushState(null,null,`#${t}`)})})</script><script>var mybutton=document.getElementById("top-link");window.onscroll=function(){document.body.scrollTop>800||document.documentElement.scrollTop>800?(mybutton.style.visibility="visible",mybutton.style.opacity="1"):(mybutton.style.visibility="hidden",mybutton.style.opacity="0")}</script><script>document.getElementById("theme-toggle").addEventListener("click",()=>{document.body.className.includes("dark")?(document.body.classList.remove("dark"),localStorage.setItem("pref-theme","light")):(document.body.classList.add("dark"),localStorage.setItem("pref-theme","dark"))})</script></body></html>