Compare commits

..

No commits in common. "0db1da5763e750dc22c31947171b819eb0b10436" and "082594252a1542516effc398aa45476be03aa6b3" have entirely different histories.

21 changed files with 243 additions and 327 deletions

View file

@ -6,7 +6,9 @@ gem 'jekyll-seo-tag'
gem 'kramdown-parser-gfm' gem 'kramdown-parser-gfm'
gem 'jekyll-watch' gem 'jekyll-watch'
gem 'webrick' gem 'webrick'
gem 'jekyll-toc'
gem 'jekyll-feed' gem 'jekyll-feed'
gem 'jekyll-minifier' gem 'jekyll-minifier'
gem 'rouge' gem 'rouge'
gem 'jekyll-paginate'
gem 'execjs' gem 'execjs'

View file

@ -1,27 +1,24 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
addressable (2.8.7) addressable (2.8.5)
public_suffix (>= 2.0.2, < 7.0) public_suffix (>= 2.0.2, < 6.0)
bigdecimal (3.1.8)
colorator (1.1.0) colorator (1.1.0)
concurrent-ruby (1.3.3) concurrent-ruby (1.2.2)
cssminify2 (2.0.1) cssminify2 (2.0.1)
em-websocket (0.5.3) em-websocket (0.5.3)
eventmachine (>= 0.12.9) eventmachine (>= 0.12.9)
http_parser.rb (~> 0) http_parser.rb (~> 0)
eventmachine (1.2.7) eventmachine (1.2.7)
execjs (2.9.1) execjs (2.9.1)
ffi (1.17.0) ffi (1.16.3)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
google-protobuf (4.27.2) google-protobuf (3.25.1)
bigdecimal
rake (>= 13)
htmlcompressor (0.4.0) htmlcompressor (0.4.0)
http_parser.rb (0.8.0) http_parser.rb (0.8.0)
i18n (1.14.5) i18n (1.14.1)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jekyll (4.3.3) jekyll (4.3.2)
addressable (~> 2.4) addressable (~> 2.4)
colorator (~> 1.0) colorator (~> 1.0)
em-websocket (~> 0.5) em-websocket (~> 0.5)
@ -45,15 +42,19 @@ GEM
jekyll (>= 3.5) jekyll (>= 3.5)
json-minify (~> 0.0.3) json-minify (~> 0.0.3)
uglifier (~> 4.1) uglifier (~> 4.1)
jekyll-paginate (1.1.0)
jekyll-sass-converter (3.0.0) jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54) sass-embedded (~> 1.54)
jekyll-seo-tag (2.8.0) jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0) jekyll (>= 3.8, < 5.0)
jekyll-sitemap (1.4.0) jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0) jekyll (>= 3.7, < 5.0)
jekyll-toc (0.18.0)
jekyll (>= 3.9)
nokogiri (~> 1.12)
jekyll-watch (2.2.1) jekyll-watch (2.2.1)
listen (~> 3.0) listen (~> 3.0)
json (2.7.2) json (2.7.1)
json-minify (0.0.3) json-minify (0.0.3)
json (> 0) json (> 0)
kramdown (2.4.0) kramdown (2.4.0)
@ -61,25 +62,28 @@ GEM
kramdown-parser-gfm (1.1.0) kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0) kramdown (~> 2.0)
liquid (4.0.4) liquid (4.0.4)
listen (3.9.0) listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3) rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10) rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0) mercenary (0.4.0)
mini_portile2 (2.8.5)
nokogiri (1.15.5)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
pathutil (0.16.2) pathutil (0.16.2)
forwardable-extended (~> 2.6) forwardable-extended (~> 2.6)
public_suffix (6.0.0) public_suffix (5.0.4)
rake (13.2.1) racc (1.7.3)
rake (13.1.0)
rb-fsevent (0.11.2) rb-fsevent (0.11.2)
rb-inotify (0.11.1) rb-inotify (0.10.1)
ffi (~> 1.0) ffi (~> 1.0)
rexml (3.3.1) rexml (3.2.6)
strscan rouge (4.2.0)
rouge (4.3.0)
safe_yaml (1.0.5) safe_yaml (1.0.5)
sass-embedded (1.77.5) sass-embedded (1.69.5)
google-protobuf (>= 3.25, < 5.0) google-protobuf (~> 3.23)
rake (>= 13) rake (>= 13.0.0)
strscan (3.1.0)
terminal-table (3.0.2) terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3) unicode-display_width (>= 1.1.1, < 3)
uglifier (4.2.0) uglifier (4.2.0)
@ -95,12 +99,14 @@ DEPENDENCIES
jekyll jekyll
jekyll-feed jekyll-feed
jekyll-minifier jekyll-minifier
jekyll-paginate
jekyll-seo-tag jekyll-seo-tag
jekyll-sitemap jekyll-sitemap
jekyll-toc
jekyll-watch jekyll-watch
kramdown-parser-gfm kramdown-parser-gfm
rouge rouge
webrick webrick
BUNDLED WITH BUNDLED WITH
2.4.20 2.4.22

View file

@ -1,4 +1,4 @@
name: "ivabus" name: "Ivan Bushchik"
description: ivabus's site/blog description: ivabus's site/blog
url: https://ivabus.dev url: https://ivabus.dev
lang: en lang: en
@ -15,9 +15,11 @@ exclude: ['README.md', 'Gemfile.lock', 'Gemfile', 'Rakefile', 'LICENSE', 'shell.
plugins: plugins:
- jekyll-seo-tag - jekyll-seo-tag
- jekyll-sitemap - jekyll-sitemap
- jekyll-toc
- jekyll-feed - jekyll-feed
- jekyll-minifier - jekyll-minifier
- rouge - rouge
- jekyll-paginate
markdown: kramdown markdown: kramdown
@ -25,6 +27,7 @@ social:
name: Ivan Bushchik name: Ivan Bushchik
links: links:
- https://github.com/ivabus - https://github.com/ivabus
- https://social.treehouse.systems/@ivabus
- https://vk.com/ivabus - https://vk.com/ivabus
kramdown: kramdown:
@ -37,5 +40,8 @@ kramdown:
line_numbers: false line_numbers: false
wrap: true wrap: true
paginate: 5
paginate_path: "/blog/page:num/"
jekyll-minifier: jekyll-minifier:
preserve_line_breaks: true preserve_line_breaks: true

View file

@ -1,5 +0,0 @@
<div class="webring">
<a href="//otomir23.me/webring/14/prev"><</a>
<a href="//otomir23.me/webring">webring</a>
<a href="//otomir23.me/webring/14/next">></a>
</div>

View file

@ -2,4 +2,4 @@
layout: default layout: default
--- ---
{{ content }} {{ content | toc }}

View file

@ -1,24 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="preload" href="/assets/fonts/JetBrainsMono-VariableFont_wght.ttf" as="font" type="font/ttf" <link rel="preload" href="/assets/fonts/JetBrainsMono-VariableFont_wght.ttf" as="font" type="font/ttf" crossorigin="anonymous">
crossorigin="anonymous">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<link rel="preload" href="/assets/images/background.webp" as="image">
<link href="/assets/css/style.css" rel="stylesheet"> <link href="/assets/css/style.css" rel="stylesheet">
{% seo title=false %} {% seo title=false %}
<title>{% if page.name != "index.md" %}{{page.title}} | {% endif %}{{site.name}}</title> <title>{% if page.name != "index.md" %}{{page.title}} | {% endif %}{{site.name}}</title>
</head> </head>
<body> <body>
<header id="header">
<a href="/"><h1>{{ site.name }}</h1></a>
</header>
<div id="page"> <div id="page">
<header id="header_top">
<a href="/">
<h1>{{ site.name }}</h1>
</a>
</header>
<div id="sidebar"> <div id="sidebar">
<nav class="menu"> <nav class="menu">
<ul class="menu"> <ul class="menu">
@ -27,57 +22,40 @@
<li class="menu"><a href="/about.html">About</a></li> <li class="menu"><a href="/about.html">About</a></li>
</ul> </ul>
</nav> </nav>
<footer id="footer_top">
{% include webring.html %}
<details>
<summary>GPG key info</summary>
<br>
<p>
<a href="/key.asc">key.asc</a><br>
Key ID (sign): <code>2F16FBF3262E090C</code><br>
Key ID (encrypt): <code>75D13F197C64C9B2</code><br>
Fingerprint: <code>5F8E 8C32 261C 2CA7 D680 792D D146 2CE6 C2FF 77CE</code>
</p>
<br>
</details>
<p class="copyright">All content copyright Ivan Bushchik.</p>
<!-- commit_id may be filled during build -->
{% if site.commit_id %}<p class="copyright">Built from <a
href="https://github.com/ivabus/website/commit/{{ site.commit_id }}">{{ site.commit_id | slice: 0,7 }}</a>
</p>
{% endif %}
</footer>
</div> </div>
<header id="header_bottom"> <div id="content">
<a href="/"> {{ content }}
<h1>{{ site.name }}</h1> </div>
</a> <footer id="footer">
</header> <details>
<div id="content"> <summary>GPG key info</summary>
{{ content }} <br>
</div> <p>
<a href="/key.asc">key.asc</a><br>
<footer id="footer_bottom"> Key ID (sign): <code>2F16FBF3262E090C</code><br>
<div style="text-align: center">{% include webring.html %}</div> Key ID (encrypt): <code>75D13F197C64C9B2</code><br>
Key ID (sign) (revoked): <code>9F6DDABE11A2674D</code><br>
Key ID (encrypt) (revoked): <code>F2D682FB55D16001</code><br>
Fingerprint: <code>5F8E 8C32 261C 2CA7 D680 792D D146 2CE6 C2FF 77CE</code></p>
<ul>
<li><a href="http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5f8e8c32261c2ca7d680792dd1462ce6c2ff77ce">keyserver.ubuntu.com</a></li>
<li><a href="https://keys.openpgp.org/vks/v1/by-fingerprint/5F8E8C32261C2CA7D680792DD1462CE6C2FF77CE">keys.openpgp.org</a></li>
</ul>
<details> <details>
<summary>GPG key info</summary> <summary>Revoked key <code>3E4E9C7D66E44BF7</code></summary>
<br> Key ID: <code>3E4E9C7D66E44BF7</code><br>
<p> Fingerprint: <code>77F2 CF96 4D0A 9F5B A3DE 3D31 3E4E 9C7D 66E4 4BF7</code>
<a href="/key.asc">key.asc</a><br> <ul>
Key ID (sign): <code>2F16FBF3262E090C</code><br> <li><a href="http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x77f2cf964d0a9f5ba3de3d313e4e9c7d66e44bf7">keyserver.ubuntu.com</a></li>
Key ID (encrypt): <code>75D13F197C64C9B2</code><br> </ul>
Fingerprint: <code>5F8E 8C32 261C 2CA7 D680 792D D146 2CE6 C2FF 77CE</code> </details>
</p> </details>
<br> <br>
</details> <p class="copyright">All content copyright Ivan Bushchik. Powered by <a href="https://github.com/ivabus/nixos">NixOS</a> and <a href="http://jekyllrb.com">Jekyll</a></p>
<p class="copyright">All content copyright Ivan Bushchik.</p> <!-- commit_id may be filled during build -->
<!-- commit_id may be filled during build --> {% if site.commit_id %}<p class="copyright">Built from <a href="https://github.com/ivabus/website/commit/{{ site.commit_id }}">{{ site.commit_id | slice: 0,7 }}</a></p>{% endif %}
{% if site.commit_id %}<p class="copyright">Built from <a </footer>
href="https://github.com/ivabus/website/commit/{{ site.commit_id }}">{{ site.commit_id | slice: 0,7 }}</a></p>
{% endif %}
</footer>
</div>
</body>
</div>
</body>
</html> </html>

View file

@ -3,6 +3,7 @@ layout: post
summary: "I tried out NixOS this month and it was the best Linux experience I've ever had" summary: "I tried out NixOS this month and it was the best Linux experience I've ever had"
title: "NixOS encounter" title: "NixOS encounter"
img: /posts_media/2023-07-28-nixos-encounter/screenshot.webp img: /posts_media/2023-07-28-nixos-encounter/screenshot.webp
toc: true
--- ---
## What is NixOS? ## What is NixOS?

View file

@ -2,6 +2,7 @@
layout: post layout: post
summary: "Up to 1.8 GHz without throttling" summary: "Up to 1.8 GHz without throttling"
title: "Overclocking StarFive VisionFive 2" title: "Overclocking StarFive VisionFive 2"
toc: true
--- ---
# TL;DR # TL;DR
@ -12,7 +13,7 @@ Apply a [patch](/posts_media/2023-10-21-overclocking-starfive-vf2/overclock_vf2.
StarFive VisionFive 2 is a second generation of RISC-V boards from StarFive, which is based on StarFive JH7110 SoC with 4 of SiFive's U74 cores. StarFive VisionFive 2 is a second generation of RISC-V boards from StarFive, which is based on StarFive JH7110 SoC with 4 of SiFive's U74 cores.
The SiFive U74 max frequency in StarFive JH7110 is 1.5 GHz by default, but it can perform much better, because even under load the temperature never exceeds 60ºC, so overclocking is worth it. The JH110 can be overclocked to 1.8 GHz, which will be done in this article. The SiFive U74 max frequency in StarFive JH7110 is 1.5 GHz by default, but it can work much better, because even under load the temperature never exceeds 50ºC, so overclocking is worth it. The JH110 can be overclocked to 1.8 GHz, which will be done in this article.
Warning: You are responsible for the safety of your board. Warning: You are responsible for the safety of your board.
@ -82,7 +83,7 @@ All tests were performed out at an ambient temperature of 21ºC.
25-minute `stress -c 8` run. [Raw data (without heatsink) (timestamp, temp * 1000)](/posts_media/2023-10-21-overclocking-starfive-vf2/vf2_stress_data), [raw data (with heatsink)](/posts_media/2023-10-21-overclocking-starfive-vf2/vf2_stress_data_heatsink). 25-minute `stress -c 8` run. [Raw data (without heatsink) (timestamp, temp * 1000)](/posts_media/2023-10-21-overclocking-starfive-vf2/vf2_stress_data), [raw data (with heatsink)](/posts_media/2023-10-21-overclocking-starfive-vf2/vf2_stress_data_heatsink).
![Stress test graph](/posts_media/2023-10-21-overclocking-starfive-vf2/vf2_stress.png) ![Stress test graph](/posts_media/2023-10-21-overclocking-starfive-vf2/vf2_stress.jpeg)
# Known issues # Known issues

View file

@ -2,6 +2,7 @@
layout: post layout: post
summary: "This post is hosted on NixOS" summary: "This post is hosted on NixOS"
title: "Hosting Jekyll websites on NixOS" title: "Hosting Jekyll websites on NixOS"
toc: true
--- ---
## Preamble ## Preamble

0
_projects/003-bf3d.md Normal file
View file

View file

@ -1,17 +0,0 @@
---
layout: project
title: "urouter & aliurl"
description: "Aliaser for URLs"
project-url: "https://github.com/ivabus/urouter"
participant: false
---
[urouter](https://github.com/ivabus/urouter) is "static" URL router, that reads route list at from file once.
urouter is built on top of the [Rocket.rs](https://rocket.rs) framework.
urouter powers [iva.bz](https://iva.bz)
urouter successfully replaced [aliurl](https://github.com/ivabus/aliurl), which was a dynamic HTTP router.
[aliurl](https://github.com/ivabus/aliurl) is a "dynamic" HTTP router (with API to modify routes) that has been deprecatred and replaced by urouter.

13
_projects/005-urouter.md Normal file
View file

@ -0,0 +1,13 @@
---
layout: project
title: "urouter"
description: "Aliaser for URLs"
project-url: "https://github.com/ivabus/urouter"
participant: false
---
[urouter](https://github.com/ivabus/urouter) is "static" URL router, that reads route list at from file once.
urouter is built on top of the [Rocket.rs](https://rocket.rs) framework.
urouter powers [iva.bz](https://iva.bz)

View file

@ -5,14 +5,13 @@ title: About
toc: true toc: true
--- ---
{% include_relative abouttext.md %}
## Skills ## Skills
- Rust
- Linux administration - Linux administration
- Rust
- Git - Git
- pacman, [pkgx](https://pkgx.sh) and (basic) RPM packaging - pacman, [tea](https://tea.xyz) and (basic) RPM packaging
- Shell scripting - Shell scripting
## Certifications ## Certifications
@ -25,6 +24,7 @@ I'm usually known as `ivabus` online. Below are some of the accounts where I pub
- [GitHub](https://github.com/ivabus) - [GitHub](https://github.com/ivabus)
- [Self-hosted Gitea instance (mirror of GitHub)](https://git.ivabus.dev) - [Self-hosted Gitea instance (mirror of GitHub)](https://git.ivabus.dev)
- [Mastodon](https://social.treehouse.systems/@ivabus)
- [Linux.org.ru](https://www.linux.org.ru/people/ivabus/profile) - [Linux.org.ru](https://www.linux.org.ru/people/ivabus/profile)
## Contact me ## Contact me

View file

@ -1,4 +1,4 @@
Hi there! My name is Ivan Bushchik and I'm 17 years old. I live in Saint Petersburg, Russia and I study system programming. In addition to studying, I also develop small projects and manage my homelab environment. Hi, I'm Ivan Bushchik. I live in Saint Petersburg, Russia. Currently, besides learning, I'm developing small projects and administrating homelab-like environment.
You can find some projects that I consider something important on the page [Projects](/projects). Or, if you want to see all the projects I've worked on, you should visit my [GitHub](https://github.com/ivabus). You can find some projects that I consider something important on the page [Projects](/projects). Or, if you want to see all the projects I've worked on, you should visit my [GitHub](https://github.com/ivabus).

View file

@ -16,7 +16,7 @@ a, abbr, acronym, address, applet, article, aside, audio, big, canvas, caption,
body { body {
line-height: 1; line-height: 1;
font: 14px/1.7"JetBrains Mono", monospace; font: 14px/1.7"JetBrains Mono", monospace
} }
h1, h2, h3, h4, h5, h6, p, pre { h1, h2, h3, h4, h5, h6, p, pre {
@ -122,7 +122,7 @@ code {
} }
.highlight { .highlight {
background-color: #2b2b2b; background-color: #073642;
border-radius: 6px; border-radius: 6px;
padding: 10px 5px 5px 10px; padding: 10px 5px 5px 10px;
overflow: auto; overflow: auto;
@ -221,56 +221,36 @@ blockquote, h4, h5, h6 {
} }
#page { #page {
padding-top: 32px; width: 600px;
display: flex;
flex-direction: row;
width: 900px;
margin: 0 auto; margin: 0 auto;
transform: translateX(-75px); position: relative
} }
#sidebar { #footer, #header {
margin-right: 0;
height: fit-content;
}
/*footer, #header {
width: 600px; width: 600px;
margin: 20px auto 0 margin: 20px auto 0
}*/
header {
transform: rotate(-90deg) translateX(-107%);
width: 64px;
height: 32px;
flex: none;
} }
header h1 { #header h1 {
font-size: 32px; font-size: 32px;
margin-bottom: 4px; margin-bottom: 4px
text-wrap: nowrap;
text-align: end;
} }
header h1 a, article h1 a, body { #header h1 a, article h1 a, body {
border: 0 border: 0
} }
footer { #footer {
margin: 10px auto 20px; margin: 10px auto 20px;
padding-top: 5px; padding-top: 10px;
font-size: .85em; font-size: .85em;
border-top: 1px solid #073642 border-top: 1px solid #073642
} }
#sidebar a { #sidebar a {
border: 0; border: 0;
/* padding: 0 4px;*/ display: inline;
padding: 4px; padding: 0 4px;
font: 1.2em"JetBrains Mono", monospace font: 1.2em"JetBrains Mono", monospace
} }
@ -341,29 +321,19 @@ img.center {
margin: 0 auto 1em margin: 0 auto 1em
} }
img.center { #header, #sidebar, img.center {
text-align: center text-align: center
} }
#content, #sidebar { #sidebar {
border-radius: 16px; position: relative;
backdrop-filter: blur(24px);
padding: 16px;
box-shadow: 0 0 8px #eee8d5;
}
#content {
max-width: 600px;
min-width: 600px;
margin-bottom: 32px;
}
.webring {
margin-bottom: 16px;
}
.webring a {
display: inline; display: inline;
left: 0;
display: flex;
justify-content: center;
width: auto;
top: 0;
margin-bottom: 20px
} }
.menu { .menu {
@ -384,94 +354,27 @@ img.center {
#sidebar li { #sidebar li {
list-style: none; list-style: none;
display: inline
} }
#footer_bottom, #header_top { @media all and (max-width:660px) {
display: none; #content, #footer, #header, #page {
} width: auto;
padding-left: 10.5px;
padding-right: 10.5px
#sidebar {
text-align: end;
/*position: relative;*/
/*display: inline;*/
margin-right: 0;
/*display: flex;*/
flex: none;
justify-content: center;
width: 150px;
/*top: 0;*/
/*margin-bottom: 20px*/
}
@media all and (max-width:1080px) {
header {
transform: none;
text-align: start;
}
#header {
text-align: start;
margin: 10px;
}
.menu {
display: inline;
text-align: start;
justify-self: unset;
}
#sidebar {
justify-items: center;
display: flex;
margin-top: 10px;
margin-bottom: 10px;
}
#header_top {
text-align: center;
height: auto;
}
#footer_bottom, #header_top {
display: block;
}
#footer_top, #header_bottom {
display: none;
}
#content, #header, #page, #sidebar {
transform: none;
display: block;
width: 90%;
min-width: 0;
max-width: 800px;
padding-left: 5%;
padding-right: 5%;
margin: 0 auto;
}
#sidebar {
margin-bottom: 16px;
text-align: center;
} }
} }
body { body, html {
color: #839496; color: #839496
min-height: 100vh; }
background: url("/assets/images/background.webp"), linear-gradient(#ddd, #555);
background-position: -10%; body, html {
background-blend-mode: multiply; background-color: #002a35
background-repeat: repeat;
} }
a:hover { a:hover {
color: #b58900; color: #b58900
transition: 0.166s;
} }
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
@ -479,17 +382,11 @@ h1, h2, h3, h4, h5, h6 {
} }
h1 a, h1 a:active, h1 a:visited { h1 a, h1 a:active, h1 a:visited {
color: #cb4b16; color: #cb4b16
padding: 4px;
transform: translateX(-4px);
}
#sidebar a, h1 a {
border-radius: 8px;
} }
#sidebar a:hover, h1 a:hover { #sidebar a:hover, h1 a:hover {
background-color: #464646; background-color: #002a35;
color: #cb4b16 color: #cb4b16
} }
@ -501,14 +398,10 @@ article h1 a.anchor {
color: #b58900 color: #b58900
} }
footer { #footer {
border-color: transparent; border-color: transparent;
} }
.blog {
margin-top: 10px;
}
/* width */ /* width */
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 10px; width: 10px;
@ -579,7 +472,7 @@ footer {
.highlight .gh { .highlight .gh {
color: #268bd2; color: #268bd2;
background-color: #2b2b2b; background-color: #002b36;
font-weight: bold; font-weight: bold;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View file

@ -6,7 +6,7 @@ title: "Blog"
<h1 style="font-size: 24px; margin-bottom: 0;">Blog</h1> <h1 style="font-size: 24px; margin-bottom: 0;">Blog</h1>
<a href="/feed.xml" style="margin-top: 0;">RSS feed</a> <a href="/feed.xml" style="margin-top: 0;">RSS feed</a>
<div id="blog-archives"> <div id="blog-archives">
{% for post in site.posts %} {% for post in paginator.posts %}
<article class="post" style="margin-top: 15px;"> <article class="post" style="margin-top: 15px;">
<h2 style="font-size: 14pt; margin: 0 0 0 0;"><a href="{{ post.url }}">{{ post.title }}</a></h2> <h2 style="font-size: 14pt; margin: 0 0 0 0;"><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p class="meta"><span class="postdate">{{ post.date | date: "%b %d, %Y" }}</span></p> <p class="meta"><span class="postdate">{{ post.date | date: "%b %d, %Y" }}</span></p>
@ -19,4 +19,29 @@ title: "Blog"
</article> </article>
{% endfor %} {% endfor %}
</div> </div>
{% if paginator.total_pages > 1 %}
<div class="pagination" align="center">
{% if paginator.previous_page %}
<a href="{{ paginator.previous_page_path | relative_url }}">&laquo; Prev</a>
{% else %}
<span>&laquo; Prev</span>
{% endif %}
{% for page in (1..paginator.total_pages) %}
{% if page == paginator.page %}
<span>{{ page }}</span>
{% elsif page == 1 %}
<a href="{{ '/blog' | relative_url }}">{{ page }}</a>
{% else %}
<a href="{{ site.paginate_path | relative_url | replace: ':num', page }}">{{ page }}</a>
{% endif %}
{% endfor %}
{% if paginator.next_page %}
<a href="{{ paginator.next_page_path | relative_url }}">Next &raquo;</a>
{% else %}
<span>Next &raquo;</span>
{% endif %}
</div>
{% endif %}
</div> </div>

View file

@ -5,20 +5,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0cl2qpvwiffym62z991ynks7imsm87qmgxf0yfsmlwzkgi9qcaa6"; sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
type = "gem"; type = "gem";
}; };
version = "2.8.7"; version = "2.8.5";
};
bigdecimal = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
type = "gem";
};
version = "3.1.8";
}; };
colorator = { colorator = {
groups = ["default"]; groups = ["default"];
@ -35,10 +25,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0skwdasxq7mnlcccn6aqabl7n9r3jd7k19ryzlzzip64cn4x572g"; sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
type = "gem"; type = "gem";
}; };
version = "1.3.3"; version = "1.2.2";
}; };
cssminify2 = { cssminify2 = {
groups = ["default"]; groups = ["default"];
@ -86,10 +76,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "07139870npj59jnl8vmk39ja3gdk3fb5z9vc0lf32y2h891hwqsi"; sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
type = "gem"; type = "gem";
}; };
version = "1.17.0"; version = "1.16.3";
}; };
forwardable-extended = { forwardable-extended = {
groups = ["default"]; groups = ["default"];
@ -102,15 +92,14 @@
version = "2.6.0"; version = "2.6.0";
}; };
google-protobuf = { google-protobuf = {
dependencies = ["bigdecimal" "rake"];
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0vwnr6fmxig4pkag86yzbznpxk8ii7rhjz0rrprkqvnymhhfnscz"; sha256 = "18yiqq657lbqbrbdfbxfspdrkiynd0wf49l3cgdw939z36cy0h77";
type = "gem"; type = "gem";
}; };
version = "4.27.2"; version = "3.25.1";
}; };
htmlcompressor = { htmlcompressor = {
groups = ["default"]; groups = ["default"];
@ -138,10 +127,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16"; sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
type = "gem"; type = "gem";
}; };
version = "1.14.5"; version = "1.14.1";
}; };
jekyll = { jekyll = {
dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table" "webrick"]; dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table" "webrick"];
@ -149,10 +138,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0638cvpmk3py1w2dxpav6l0c854y6l94b6gyc2aa16i7r897z64a"; sha256 = "0wbp9xjnjv832ksqs816napy6amp5fh8v4wbrxlpxvgakqz6scsx";
type = "gem"; type = "gem";
}; };
version = "4.3.3"; version = "4.3.2";
}; };
jekyll-feed = { jekyll-feed = {
dependencies = ["jekyll"]; dependencies = ["jekyll"];
@ -176,6 +165,16 @@
}; };
version = "0.1.10"; version = "0.1.10";
}; };
jekyll-paginate = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8";
type = "gem";
};
version = "1.1.0";
};
jekyll-sass-converter = { jekyll-sass-converter = {
dependencies = ["sass-embedded"]; dependencies = ["sass-embedded"];
groups = ["default"]; groups = ["default"];
@ -209,6 +208,17 @@
}; };
version = "1.4.0"; version = "1.4.0";
}; };
jekyll-toc = {
dependencies = ["jekyll" "nokogiri"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gczpbfkyswy5dwpq0lcssf15l0g0z6zy4zifc5d6pwmiqyxq8mk";
type = "gem";
};
version = "0.18.0";
};
jekyll-watch = { jekyll-watch = {
dependencies = ["listen"]; dependencies = ["listen"];
groups = ["default"]; groups = ["default"];
@ -225,10 +235,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0b4qsi8gay7ncmigr0pnbxyb17y3h8kavdyhsh7nrlqwr35vb60q"; sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq";
type = "gem"; type = "gem";
}; };
version = "2.7.2"; version = "2.7.1";
}; };
json-minify = { json-minify = {
dependencies = ["json"]; dependencies = ["json"];
@ -279,10 +289,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0rwwsmvq79qwzl6324yc53py02kbrcww35si720490z5w0j497nv"; sha256 = "13rgkfar8pp31z1aamxf5y7cfq88wv6rxxcwy7cmm177qq508ycn";
type = "gem"; type = "gem";
}; };
version = "3.9.0"; version = "3.8.0";
}; };
mercenary = { mercenary = {
groups = ["default"]; groups = ["default"];
@ -294,6 +304,27 @@
}; };
version = "0.4.0"; version = "0.4.0";
}; };
mini_portile2 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs";
type = "gem";
};
version = "2.8.5";
};
nokogiri = {
dependencies = ["mini_portile2" "racc"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "004ip9x9281fxhpipwi8di1sb1dnabscq9dy1p3cxgdwbniqqi12";
type = "gem";
};
version = "1.15.5";
};
pathutil = { pathutil = {
dependencies = ["forwardable-extended"]; dependencies = ["forwardable-extended"];
groups = ["default"]; groups = ["default"];
@ -310,20 +341,30 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "17m8q2dzm7a74amnab5rf3f3m466i300awihl3ygh4v80wpf3j6j"; sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
type = "gem"; type = "gem";
}; };
version = "6.0.0"; version = "5.0.4";
};
racc = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
type = "gem";
};
version = "1.7.3";
}; };
rake = { rake = {
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6"; sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
type = "gem"; type = "gem";
}; };
version = "13.2.1"; version = "13.1.0";
}; };
rb-fsevent = { rb-fsevent = {
groups = ["default"]; groups = ["default"];
@ -341,31 +382,30 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0vmy8xgahixcz6hzwy4zdcyn2y6d6ri8dqv5xccgzc1r292019x0"; sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
type = "gem"; type = "gem";
}; };
version = "0.11.1"; version = "0.10.1";
}; };
rexml = { rexml = {
dependencies = ["strscan"];
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "09f3sw7f846fpcpwdm362ylqldwqxpym6z0qpld4av7zisrrzbrl"; sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
type = "gem"; type = "gem";
}; };
version = "3.3.1"; version = "3.2.6";
}; };
rouge = { rouge = {
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "072qvvrcqj0yfr3b0j932mlhvn41i38bq37z7z07i3ikagndkqwy"; sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0";
type = "gem"; type = "gem";
}; };
version = "4.3.0"; version = "4.2.0";
}; };
safe_yaml = { safe_yaml = {
groups = ["default"]; groups = ["default"];
@ -383,20 +423,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1nmy052pm46781s7ca6x3l4yb5p3glh8sf201xwcwpk9rv2av9m2"; sha256 = "10f04wvgca22lynvy4pycabkf55p4jf3a3bhmmscjmxv89g9khpg";
type = "gem"; type = "gem";
}; };
version = "1.77.5"; version = "1.69.5";
};
strscan = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mamrl7pxacbc79ny5hzmakc9grbjysm3yy6119ppgsg44fsif01";
type = "gem";
};
version = "3.1.0";
}; };
terminal-table = { terminal-table = {
dependencies = ["unicode-display_width"]; dependencies = ["unicode-display_width"];

View file

@ -4,21 +4,3 @@ title: Ivan Bushchik
--- ---
{% include_relative abouttext.md %} {% include_relative abouttext.md %}
<div>
<h1 style="font-size: 24px; margin-bottom: 0;">Recent posts</h1>
<div id="blog-archives">
{% for post in site.posts limit:5 %}
<article class="post" style="margin-top: 5px;">
<h2 style="font-size: 14pt; margin: 0 0 0 0;"><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p class="meta"><span class="postdate">{{ post.date | date: "%b %d, %Y" }}</span></p>
{% if post.summary %}
<p>{{ post.summary }}</p>
{% endif %}
{% if post.img %}
<img src="{{ post.img }}" width=600 />
{% endif %}
</article>
{% endfor %}
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB