346 lines
13 KiB
HTML
346 lines
13 KiB
HTML
|
||
<!DOCTYPE html>
|
||
<html lang="zh-CN" class="loading">
|
||
<head>
|
||
<!-- hexo-inject:begin --><!-- hexo-inject:end --><meta charset="UTF-8" />
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||
<title>Blog - DavidZ</title>
|
||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||
<meta name="google" content="notranslate" />
|
||
<meta name="keywords" content="Developer, Python, C++, JavaScript, Java,">
|
||
<meta name="description" content="DavidZ's Blog,">
|
||
<meta name="author" content="DavidZ">
|
||
<link rel="alternative" href="atom.xml" title="Blog" type="application/atom+xml">
|
||
<link rel="icon" href="/img/favicon.png">
|
||
|
||
<link rel="stylesheet" href="//at.alicdn.com/t/font_1429596_nzgqgvnmkjb.css">
|
||
|
||
|
||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/animate.css@3.7.2/animate.min.css">
|
||
|
||
|
||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/social-share.js@1.0.16/dist/css/share.min.css">
|
||
|
||
|
||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/codemirror@5.48.4/lib/codemirror.min.css">
|
||
|
||
|
||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/codemirror@5.48.4/theme/dracula.css">
|
||
|
||
|
||
<link rel="stylesheet" href="/css/obsidian.css">
|
||
|
||
|
||
<link rel="stylesheet" href="/css/ball-atom.min.css">
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css">
|
||
|
||
<meta name="generator" content="Hexo 4.2.1"><!-- hexo-inject:begin --><!-- hexo-inject:end --></head>
|
||
|
||
|
||
<body class="loading">
|
||
<!-- hexo-inject:begin --><!-- hexo-inject:end --><div class="loader">
|
||
<div class="la-ball-atom la-2x">
|
||
<div></div>
|
||
<div></div>
|
||
<div></div>
|
||
<div></div>
|
||
</div>
|
||
</div>
|
||
<span id="config-title" style="display:none">Blog</span>
|
||
<div id="loader"></div>
|
||
<div id="single" class="page">
|
||
<div id="top">
|
||
<a class="iconfont icon-left image-icon" href="javascript:history.back()"></a>
|
||
</div>
|
||
<div class="clone-element"></div>
|
||
<div class="section dark-obsidian">
|
||
<div class="article animated fadeIn">
|
||
<div class="main animated fadeIn">
|
||
<div class="content animated fadeIn">
|
||
|
||
<img src="https://davidz-blog.oss-cn-beijing.aliyuncs.com/img/2019-1599483796.jpg" style="height: 100px; width: 100px; border-radius: 50%; margin-bottom: 30px" />
|
||
<h4 id="关于我-Who-am-I"><a class="header-anchor" href="#关于我-Who-am-I">¶</a>关于我 Who am I</h4>
|
||
<p>欢迎来到我的博客, 我是<strong>DavidZ</strong>,<br>
|
||
目前澳国立高级计算专业留学党一枚,喜欢编程,Python 爱好者。</p>
|
||
<p>Welcome to my blog, I am <strong>DavidZ</strong><br>
|
||
Advanced computing international student at ANU. Programmer and Pythonista.</p>
|
||
<h4 id="技术栈-Stack"><a class="header-anchor" href="#技术栈-Stack">¶</a>技术栈 Stack</h4>
|
||
<ul>
|
||
<li>Python
|
||
<ul>
|
||
<li><a href="https://www.djangoproject.com/" target="_blank" rel="noopener">Django</a></li>
|
||
<li><a href="https://dormousehole.readthedocs.io/en/latest/" target="_blank" rel="noopener">Flask</a></li>
|
||
</ul>
|
||
</li>
|
||
<li>C/CPP
|
||
<ul>
|
||
<li><a href="http://cppmicroservices.org/" target="_blank" rel="noopener">CPP Micro Service</a></li>
|
||
</ul>
|
||
</li>
|
||
<li>JavaScript
|
||
<ul>
|
||
<li><a href="https://cn.vuejs.org/" target="_blank" rel="noopener">Vue.js</a></li>
|
||
</ul>
|
||
</li>
|
||
<li>Ada</li>
|
||
<li>HTML, CSS, SQL, etc.</li>
|
||
</ul>
|
||
<h4 id="开源项目-Open-Source-Projects"><a class="header-anchor" href="#开源项目-Open-Source-Projects">¶</a>开源项目 Open Source Projects</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/DavidZhang73/vj" target="_blank" rel="noopener">VJ</a> – 山东大学(威海)ACM Virtual Judge 训练平台</li>
|
||
<li><a href="https://github.com/DavidZhang73/daty" target="_blank" rel="noopener">Daty</a> – 数据库课程设计作业</li>
|
||
<li><a href="http://git.davidz.cn/david/BookingService" target="_blank" rel="noopener">BookingService</a> – 山东大学(威海)机电与信息工程学院竞赛预约系统</li>
|
||
</ul>
|
||
<h4 id="非开源项目-Non-Open-Source-Projects"><a class="header-anchor" href="#非开源项目-Non-Open-Source-Projects">¶</a>非开源项目 Non-Open Source Projects</h4>
|
||
<ul>
|
||
<li><a href="http://thugh.cn/" target="_blank" rel="noopener">建筑咨询管理系统</a> – 山东威海建筑咨询管理系统</li>
|
||
</ul>
|
||
<h4 id="感谢-Thanks"><a class="header-anchor" href="#感谢-Thanks">¶</a>感谢 Thanks</h4>
|
||
<p>感谢所有在建站过程中帮助过我的朋友们,以及博客 Hexo 和主题 Obsidian 的开发者,谢谢你们!</p>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="back-to-top" class="animated fadeIn faster">
|
||
<div class="flow"></div>
|
||
<span class="percentage animated fadeIn faster">0%</span>
|
||
<span class="iconfont icon-top02 animated fadeIn faster"></span>
|
||
</div><!-- hexo-inject:begin --><!-- hexo-inject:end -->
|
||
</body>
|
||
<footer>
|
||
<p class="copyright" id="copyright">
|
||
© 2022
|
||
<span class="gradient-text">
|
||
DavidZ
|
||
</span>.
|
||
Powered by <a href="http://hexo.io/" title="Hexo" target="_blank" rel="noopener">Hexo</a>
|
||
Theme
|
||
<span class="gradient-text">
|
||
<a href="https://github.com/TriDiamond/hexo-theme-obsidian" title="Obsidian" target="_blank" rel="noopener">Obsidian</a>
|
||
</span>
|
||
<small><a href="https://github.com/TriDiamond/hexo-theme-obsidian/blob/master/CHANGELOG.md" title="v1.4.7" target="_blank" rel="noopener">v1.4.7</a></small>
|
||
|
||
</br>
|
||
鲁ICP备
|
||
<span class="gradient-text">
|
||
<a href="https://beian.miit.gov.cn/" title="19008089号-1" target="_blank" rel="noopener">19008089号-1</a>
|
||
</span>
|
||
|
||
|
||
</p>
|
||
</footer>
|
||
|
||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||
</script>
|
||
<script>
|
||
MathJax.Hub.Config({
|
||
"HTML-CSS": {
|
||
preferredFont: "TeX",
|
||
availableFonts: ["STIX", "TeX"],
|
||
linebreaks: {
|
||
automatic: true
|
||
},
|
||
EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
|
||
},
|
||
tex2jax: {
|
||
inlineMath: [
|
||
["$", "$"],
|
||
["\\(", "\\)"]
|
||
],
|
||
processEscapes: true,
|
||
ignoreClass: "tex2jax_ignore|dno",
|
||
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
|
||
},
|
||
TeX: {
|
||
noUndefined: {
|
||
attributes: {
|
||
mathcolor: "red",
|
||
mathbackground: "#FFEEEE",
|
||
mathsize: "90%"
|
||
}
|
||
},
|
||
Macros: {
|
||
href: "{}"
|
||
}
|
||
},
|
||
messageStyle: "none"
|
||
});
|
||
</script>
|
||
<script>
|
||
function initialMathJax() {
|
||
MathJax.Hub.Queue(function () {
|
||
var all = MathJax.Hub.getAllJax(),
|
||
i;
|
||
// console.log(all);
|
||
for (i = 0; i < all.length; i += 1) {
|
||
all[i].SourceElement().parentNode.className += ' has-jax';
|
||
}
|
||
});
|
||
}
|
||
|
||
function reprocessMathJax() {
|
||
if (typeof MathJax !== 'undefined') {
|
||
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
|
||
}
|
||
}
|
||
</script>
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk@1.6.2/dist/gitalk.min.css">
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/gitalk@1.6.2/dist/gitalk.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script>
|
||
<script src="/js/plugin.js"></script>
|
||
<script src="/js/obsidian.js"></script>
|
||
<script src="/js/jquery.truncate.js"></script>
|
||
<script src="/js/search.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/typed.js@2.0.10/lib/typed.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/blueimp-md5@2.12.0/js/md5.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/social-share.js@1.0.16/dist/js/social-share.min.js"></script>
|
||
|
||
|
||
<script src="https://cdn.jsdelivr.net/npm/codemirror@5.45.0/lib/codemirror.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/javascript/javascript.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/css/css.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/xml/xml.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/htmlmixed/htmlmixed.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/clike/clike.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/php/php.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/shell/shell.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/python/python.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/cmake/cmake.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/powershell/powershell.min.js"></script>
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/codemirror@5.45.0/mode/yaml/yaml.min.js"></script>
|
||
|
||
<script src="/js/busuanzi.min.js"></script>
|
||
|
||
<script>
|
||
$(document).ready(function () {
|
||
if ($('span[id^="busuanzi_"]').length) {
|
||
initialBusuanzi();
|
||
}
|
||
});
|
||
</script>
|
||
|
||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.css">
|
||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/default-skin/default-skin.min.css">
|
||
|
||
|
||
<script src="//cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.js"></script>
|
||
<script src="//cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe-ui-default.min.js"></script>
|
||
|
||
|
||
<!-- Root element of PhotoSwipe. Must have class pswp. -->
|
||
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
|
||
<!-- Background of PhotoSwipe.
|
||
It's a separate element as animating opacity is faster than rgba(). -->
|
||
<div class="pswp__bg"></div>
|
||
<!-- Slides wrapper with overflow:hidden. -->
|
||
<div class="pswp__scroll-wrap">
|
||
<!-- Container that holds slides.
|
||
PhotoSwipe keeps only 3 of them in the DOM to save memory.
|
||
Don't modify these 3 pswp__item elements, data is added later on. -->
|
||
<div class="pswp__container">
|
||
<div class="pswp__item"></div>
|
||
<div class="pswp__item"></div>
|
||
<div class="pswp__item"></div>
|
||
</div>
|
||
<!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
|
||
<div class="pswp__ui pswp__ui--hidden">
|
||
<div class="pswp__top-bar">
|
||
<!-- Controls are self-explanatory. Order can be changed. -->
|
||
<div class="pswp__counter"></div>
|
||
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
|
||
<button class="pswp__button pswp__button--share" title="Share"></button>
|
||
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
|
||
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
|
||
<!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
|
||
<!-- element will get class pswp__preloader--active when preloader is running -->
|
||
<div class="pswp__preloader">
|
||
<div class="pswp__preloader__icn">
|
||
<div class="pswp__preloader__cut">
|
||
<div class="pswp__preloader__donut"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
|
||
<div class="pswp__share-tooltip"></div>
|
||
</div>
|
||
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
|
||
</button>
|
||
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
|
||
</button>
|
||
<div class="pswp__caption">
|
||
<div class="pswp__caption__center"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||
<script async src="//www.googletagmanager.com/gtag/js?id=UA-157733505-1"></script>
|
||
<script>
|
||
window.dataLayer = window.dataLayer || [];
|
||
function gtag() {
|
||
dataLayer.push(arguments);
|
||
}
|
||
gtag('js', new Date());
|
||
|
||
gtag('config', 'UA-157733505-1');
|
||
</script>
|
||
|
||
|
||
<script>
|
||
function initialTyped() {
|
||
var typedTextEl = $('.typed-text');
|
||
if (typedTextEl && typedTextEl.length > 0) {
|
||
var typed = new Typed('.typed-text', {
|
||
strings: ['凡事都要留几分', '颜值是第一生产力'],
|
||
typeSpeed: 90,
|
||
loop: true,
|
||
loopCount: Infinity,
|
||
backSpeed: 20,
|
||
});
|
||
}
|
||
}
|
||
|
||
if ($('.article-header') && $('.article-header').length) {
|
||
$(document).ready(function () {
|
||
initialTyped();
|
||
});
|
||
}
|
||
</script>
|
||
|
||
|
||
|
||
|
||
<!-- 例:百度统计 --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?your_code"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
|
||
|
||
</html>
|