This commit is contained in:
Michael Zhang 2018-08-29 17:36:07 -05:00
parent bf46c01ad0
commit 5a71ba6eec
No known key found for this signature in database
GPG key ID: A1B65B603268116B
6 changed files with 77 additions and 3 deletions

View file

@ -1,4 +1,4 @@
title = "michael zhang" title = "michael's blog"
base_url = "https://mzhang.me" base_url = "https://mzhang.me"
compile_sass = true compile_sass = true

View file

@ -14,7 +14,7 @@ Here's some of the languages I like, in approximate order of my skill/confidence
- **Python** One of my favorite languages by far. Aside from its weakness in performance, I love how the language looks. I do have several bones to pick, especially towards its dependency ecosystem. - **Python** One of my favorite languages by far. Aside from its weakness in performance, I love how the language looks. I do have several bones to pick, especially towards its dependency ecosystem.
- **JavaScript** Although I'm trying to step away from JavaScript, I find myself using it from time to time simply out of ease of use and plethora of libraries. - **JavaScript** Although I'm trying to step away from JavaScript, I find myself using it from time to time simply out of ease of use and plethora of libraries.
- **C** Largely prefer this over C++ because of much finer control over what's happening. - **C** Largely prefer this over C++ because of much finer control over what's happening.
- **OCaml** Learned this from a functional programming class, and I still use it from time to time; I kinda see it as the "Python" of function languages. - **OCaml** Learned this from a functional programming class, and I still use it from time to time; I kinda see it as the "Python" of functional languages.
- **C++** Good for when I did competitive programming because of its very comprehensive standard library. - **C++** Good for when I did competitive programming because of its very comprehensive standard library.
If you want my resume, contact me through one of these means: If you want my resume, contact me through one of these means:

64
content/pages/setup.md Normal file
View file

@ -0,0 +1,64 @@
+++
title = "my setup"
template = "post.html"
+++
## Desktop
I'm using Arch Linux on my personal machine. Here's a neofetch:
```
# michael @ arch in ~ [17:34:32]
$ neofetch
-` michael@arch
.o+` ------------
`ooo/ OS: Arch Linux x86_64
`+oooo: Host: K501UX 1.0
`+oooooo: Kernel: 4.17.3-1-ARCH
-+oooooo+: Uptime: 36 mins
`/:-:++oooo+: Packages: 1063 (pacman)
`/++++/+++++++: Shell: zsh 5.5.1
`/++++++++++++++: Resolution: 1920x1080
`/+++ooooooooooooo/` WM: i3
./ooosssso++osssssso+` Theme: Adwaita [GTK2/3]
.oossssso-````/ossssss+` Icons: Adwaita [GTK2/3]
-osssssso. :ssssssso. Terminal: urxvt
:osssssss/ osssso+++. CPU: Intel i7-6500U (4) @ 3.100GHz
/ossssssss/ +ssssooo/- GPU: NVIDIA GeForce GTX 950M
`/ossssso+/:- -:/+osssso+- GPU: Intel Skylake GT2 [HD Graphics 520
`+sso+:-` `.-/+oso: Memory: 3151MiB / 7871MiB
`++:. `-/+/
```
For my desktop environment, I've got [i3](https://i3wm.org/), a tiling window manager. I like it because it's lightweight and doesn't use much battery. My config can be found [here](https://git.mzhang.me/michael/dotfiles/src/branch/master/.config/i3/config). I tried i3gaps at one point but didn't feel like trying to fix the rendering artifacts so I switched back.
### Coding
I use the trial version of [Sublime Text 3](http://www.sublimetext.com/) on my personal computer, and [neovim](https://neovim.io/) in the terminal. I use the default theme with the [VSCode Dark](https://github.com/nikeee/visual-studio-dark) theme.
### Passwords
For passwords, I'm using [pass](https://www.passwordstore.org/), which is a GPG-encrypted password store. The passwords are checked into a git repository in order to maintain consistency between multiple devices (I'm using [Android Password Store](https://github.com/zeapo/Android-Password-Store) on my phone). Then, I bind `$mod+p` to a [rofi script](https://git.mzhang.me/michael/dotfiles/src/branch/master/.local/scripts/passmenu) so I can access them easily.
### Music
On my personal computer, I'm using [mpd](https://www.musicpd.org/), the music player daemon along with [sonata](https://www.nongnu.org/sonata/), which is a GTK frontend. I like using mpd because this also allows me to display my current playing song in my i3 bar.
### Social Media
I'm using [Rambox](https://rambox.pro), which is essentially just an Electron app that combines multiple services into a single view.
### Screenshot
I'm using a [custom screenshot tool](https://git.mzhang.me/michael/screenshot).
## This Website
The stack for this website looks like:
- The [source code](https://git.mzhang.me/michael/blog) is written as a set of Gutenberg config files.
- This is then transpiled into static HTML + resources using [Gutenberg](https://www.getgutenberg.io/), a static site generator.
- Static files are served from a web root using [nginx](https://nginx.org/en/) through a virtual host.
- And here it is!
For deployment, I'm using [dip](https://nobs.mzhang.me/dip), a customizable webhook server that I wrote that rebuilds the source code on push.

View file

@ -1,6 +1,11 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% import "macros/blog.html" as blog %} {% import "macros/blog.html" as blog %}
{% block title %}
{% if section.title %}{{ section.title }} - {% endif %}
{{ config.title }}
{% endblock %}
{% block content %} {% block content %}
{{ blog::postlisting(posts=section.pages) }} {{ blog::postlisting(posts=section.pages) }}
{% endblock %} {% endblock %}

View file

@ -3,7 +3,7 @@
<html> <html>
<head> <head>
<title>michael's blog</title> <title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" href="/main.css" /> <link rel="stylesheet" href="/main.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head> </head>

View file

@ -1,5 +1,10 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% block title %}
{% if page.title %}{{ page.title }} - {% endif %}
{{ config.title }}
{% endblock %}
{% block content %} {% block content %}
<h1 style="margin-bottom: 0;">{{ page.title }}</h1> <h1 style="margin-bottom: 0;">{{ page.title }}</h1>
{% if page.date or page.author %} {% if page.date or page.author %}