chore: сделал нормальную визитку и убрал текст обо мне в раздел

This commit is contained in:
protokey committed 2026-10-08 19:20:29 +04:00
1 parent a4d395e6ff
commit f41689e1dc
12 files changed
+174 -55

No files matched your search

+62
View File
@@ -3,3 +3,65 @@
body { font-family: 'Inter', sans-serif; } body { font-family: 'Inter', sans-serif; }
code, pre, kbd { font-family: 'JetBrains Mono', monospace; } code, pre, kbd { font-family: 'JetBrains Mono', monospace; }
h1, h2, h3 { letter-spacing: -0.02em; } h1, h2, h3 { letter-spacing: -0.02em; }
.vcard {
position: relative;
min-height: calc(100vh - 10rem);
display: grid;
place-items: center;
padding: 2rem 0;
}
.vcard__bg {
position: fixed; inset: 0; z-index: -1;
background-size: cover; background-position: center;
filter: blur(6px) brightness(.45);
transform: scale(1.05);
}
.vcard__box {
width: min(100%, 420px);
padding: 2.5rem 2rem;
text-align: center;
border-radius: 1.25rem;
background: rgba(var(--color-neutral-800), .65);
border: 1px solid rgba(var(--color-primary-500), .25);
backdrop-filter: blur(12px);
box-shadow: 0 20px 60px rgba(0,0,0,.45);
}
.vcard__avatar {
width: 128px; height: 128px; margin: 0 auto 1.25rem;
border-radius: 50%; object-fit: cover;
border: 3px solid rgba(var(--color-primary-500), .8);
}
.vcard__name { font-size: 1.9rem; font-weight: 800; line-height: 1.15; margin: 0; color: #fff; }
.vcard__nick { margin: .2rem 0 0; font-family: 'JetBrains Mono', monospace; color: rgba(var(--color-primary-400), 1); }
.vcard__role { margin: .9rem 0 0; color: rgba(var(--color-neutral-300), 1); font-size: 1rem; line-height: 1.5; }
.vcard__status {
display: inline-flex; align-items: center; gap: .5rem;
margin: 1.25rem 0 0; padding: .35rem .9rem;
border-radius: 999px; font-size: .9rem;
background: rgba(255,255,255,.06);
color: rgba(var(--color-neutral-200), 1);
}
.vcard__dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--dot); box-shadow: 0 0 0 0 var(--dot); animation: vcard-pulse 2s infinite; }
.is-open { --dot: #22c55e; }
.is-busy { --dot: #f59e0b; }
.is-away { --dot: #9ca3af; }
.is-away .vcard__dot { animation: none; }
@keyframes vcard-pulse { 0% { box-shadow: 0 0 0 0 var(--dot); } 70% { box-shadow: 0 0 0 .5rem transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
.vcard__links { list-style: none; padding: 0; margin: 1.75rem 0 0; display: grid; gap: .6rem; }
.vcard__links a {
display: flex; align-items: center; justify-content: center; gap: .6rem;
padding: .7rem 1rem; border-radius: .75rem;
text-decoration: none; font-weight: 600; color: #fff;
background: rgba(var(--color-primary-600), .25);
border: 1px solid rgba(var(--color-primary-500), .35);
transition: background .15s, transform .15s;
}
.vcard__links a:hover { background: rgba(var(--color-primary-600), .5); transform: translateY(-1px); }
.vcard__icon { display: inline-flex; width: 1.1rem; height: 1.1rem; }
.vcard__icon svg { width: 100%; height: 100%; fill: currentColor; }
.vcard__more { display: inline-block; margin-top: 1.5rem; font-size: .9rem; color: rgba(var(--color-primary-400), 1); text-decoration: none; }
.vcard__more:hover { text-decoration: underline; }
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

+2 -2
View File
@@ -13,8 +13,8 @@ title = "Sokolab"
[params.author] [params.author]
name = "Alexander Sokolov aka s0k0l" name = "Alexander Sokolov aka s0k0l"
image = "img/me.jpg" image = "img/me.jpg"
headline = "Делаю софт и железо, которые упрощают жизнь и работу" headline = "Парсинг, боты и веб-сервисы под высокую нагрузку. Информационная безопасность."
bio = "Пара предложений о себе" bio = "Имитирую поведение пользователей, добываю данные и защищаю информацию. Довожу проекты от идеи до релиза."
links = [ links = [
{ email = "mailto:xalex.sokolov@yahoo.com" }, { email = "mailto:xalex.sokolov@yahoo.com" },
{ telegram = "https://t.me/sokolex" }, { telegram = "https://t.me/sokolex" },
+3 -2
View File
@@ -16,8 +16,9 @@
weight = 10 weight = 10
#[[main]] #[[main]]
# name = "Parent" # name = "Обо мне"
# weight = 20 # pageRef = "about"
# weight = 20
#[[main]] #[[main]]
# name = "example sub-menu 1" # name = "example sub-menu 1"
+2 -2
View File
@@ -65,10 +65,10 @@ forgejoDefaultServer = "https://v11.next.forgejo.org"
showScrollToTop = true showScrollToTop = true
[homepage] [homepage]
layout = "hero" # valid options: page, profile, hero, card, background, landing, custom layout = "custom" # valid options: page, profile, hero, card, background, landing, custom
# layoutSwitcher = false # opt-in interactive preview of the built-in layouts # layoutSwitcher = false # opt-in interactive preview of the built-in layouts
homepageImage = "img/bg5.jpg" # used in: hero, and card homepageImage = "img/bg5.jpg" # used in: hero, and card
showRecent = true # TODO: включишь, когда появится блог showRecent = false # TODO: включишь, когда появится блог
showRecentItems = 5 showRecentItems = 5
showMoreLink = true showMoreLink = true
showMoreLinkDest = "/blog/" showMoreLinkDest = "/blog/"
+14 -49
View File
@@ -1,51 +1,16 @@
--- ---
title: "Sokolab" title: "Alexander Sokolov"
card:
name: "Alexander Sokolov"
nick: "s0k0l"
role: "Парсеры, боты, сайты и сервисы. Высокие нагрузки и инфобез."
avatar: "img/me.jpg" # assets/img/me.jpg
status:
state: open # open | busy | away
text: "Открыт к проектам и работе"
contacts:
- { label: "Telegram", url: "https://t.me/sokolex", icon: "telegram" }
- { label: "Email", url: "mailto:xalex.sokolov@yahoo.com", icon: "email" }
- { label: "Git", url: "https://git.sokolab.xyz/sokol", icon: "gitea" }
more: "/about/"
--- ---
## Кто я!
Я высококвалифицированный IT специалист широкого профиля. Умею добывать данные с сайтов, писать под них боты и обходить анти-бот защиту. Умею создавать сайты и сетевые сервисы, а так же обеспечивать безопасность инфраструктуры и разработки.
Предпочитаю работать согласно ТЗ и вести проект от идеи до MVP или релиза. Выработал и следую определенным стандартам и применяю лучшие практики программирования - [Стандарты Разработки ПО](Стандарты%20Разработки%20ПО.md). При разработке программ начинаю с выработки требований и архитектуры. Считаю что мой результат это решенная проблема, а написанный исходный код - доказательство что мое решение работает.
## Что я делаю
Создаю программные и аппаратные продукты для людей и бизнеса,
которые помогают жить лучше и работать удобнее.
- **Софт** — боты, сервисы, автоматизация.
Ознакомиться с моим послужным списком вы можете в [резюме](резюме/index.md), а тут я просто опишу какие задачи мне откликаются. Это задачи связанные с web и linux. Умею работать с криптой напрямую, так что пользователь может оплатить что-то на сайте on-chain переводом. Умею строить высоконагруженные системы на очередях и микросервисах.
- **Железо** — устройства, электроника, прототипы
Освоил программирование микроконтроллеров, потому что мечтаю строить роботов. А пока что построил аппаратный менеджер паролей - Протоключ. Планирую развиваться в этом направлении и дальше. У меня много идей для полезных проектов.
## Ссылка
[stackoverflow](https://ru.stackoverflow.com/users/362019/alex)
Когда-то это был незаменимый сайт для всех ИТишников, где можно было задать вопрос и получить ответ от коллег. Но со временем вопросы больше стали похожи на "решите за меня мою домашку", а с появлением ИИ подобный формат и вовсе умер. Теперь я использую эту ссылку лишь как демонстрацию своего бекграунда.
[medium](https://alexandrsokolov-41020.medium.com/)
Наслушавшить Егора Бугаенко завел блог на этой платформе и питал надежды что буду писать там что-то регулярно. Но что-то мне не понравилось и теперь я перезапускаю свой блог уже на своем решении.
[github](https://github.com/alexsok-bit/)
Тут лежит код из статей на медиум и использовал аккаунт в работе. Это заброшенный аккаунт, он остается как бекграунд.
[mozilla addons](https://addons.mozilla.org/ru/firefox/user/16605688/)
Так как я делал когда-то серьезные инструменты для сбора данных мне нужно было модифицировать фаерфокс. Для этого я забабахал пару аддонов для него и выложил в общую библиотеку. Делал я это в общем-то для себя, но кому-то тоже зашло. Я крайне удивился что в комментах меня разыскивают.
Все это было когда-то, а теперь есть этот ресурс где:
- Лендинг - вы тут
- [/blog](https://sokolab.xyz/blog) - профессиональный блог
- [git.sokolab.xyz](https://git.sokolab.xyz) - примеры кода
## Связаться
- [Telegram](https://t.me/sokolex)
- [Почта](mailto:xalex.sokol@gmail.com).
+52
View File
@@ -0,0 +1,52 @@
---
title: "Sokolab"
date: 2026-10-08T19:18:00+04:00
---
## Кто я!
Я высококвалифицированный IT специалист широкого профиля. Умею добывать данные с сайтов, писать под них боты и обходить анти-бот защиту. Умею создавать сайты и сетевые сервисы, а так же обеспечивать безопасность инфраструктуры и разработки.
Предпочитаю работать согласно ТЗ и вести проект от идеи до MVP или релиза. Выработал и следую определенным стандартам и применяю лучшие практики программирования - [Стандарты Разработки ПО](/code-style.md). При разработке программ начинаю с выработки требований и архитектуры. Считаю что мой результат это решенная проблема, а написанный исходный код - доказательство что мое решение работает.
## Что я делаю
Создаю программные и аппаратные продукты для людей и бизнеса,
которые помогают жить лучше и работать удобнее.
- **Софт** — боты, сервисы, автоматизация.
Ознакомиться с моим послужным списком вы можете в [резюме](/резюме/index.md), а тут я просто опишу какие задачи мне откликаются. Это задачи связанные с web и linux. Умею работать с криптой напрямую, так что пользователь может оплатить что-то на сайте on-chain переводом. Умею строить высоконагруженные системы на очередях и микросервисах.
- **Железо** — устройства, электроника, прототипы
Освоил программирование микроконтроллеров, потому что мечтаю строить роботов. А пока что построил аппаратный менеджер паролей - Протоключ. Планирую развиваться в этом направлении и дальше. У меня много идей для полезных проектов.
## Ссылка
[stackoverflow](https://ru.stackoverflow.com/users/362019/alex)
Когда-то это был незаменимый сайт для всех ИТишников, где можно было задать вопрос и получить ответ от коллег. Но со временем вопросы больше стали похожи на "решите за меня мою домашку", а с появлением ИИ подобный формат и вовсе умер. Теперь я использую эту ссылку лишь как демонстрацию своего бекграунда.
[medium](https://alexandrsokolov-41020.medium.com/)
Наслушавшить Егора Бугаенко завел блог на этой платформе и питал надежды что буду писать там что-то регулярно. Но что-то мне не понравилось и теперь я перезапускаю свой блог уже на своем решении.
[github](https://github.com/alexsok-bit/)
Тут лежит код из статей на медиум и использовал аккаунт в работе. Это заброшенный аккаунт, он остается как бекграунд.
[mozilla addons](https://addons.mozilla.org/ru/firefox/user/16605688/)
Так как я делал когда-то серьезные инструменты для сбора данных мне нужно было модифицировать фаерфокс. Для этого я забабахал пару аддонов для него и выложил в общую библиотеку. Делал я это в общем-то для себя, но кому-то тоже зашло. Я крайне удивился что в комментах меня разыскивают.
Все это было когда-то, а теперь есть этот ресурс где:
- Лендинг - вы тут
- [/blog](https://sokolab.xyz/blog) - профессиональный блог
- [git.sokolab.xyz](https://git.sokolab.xyz) - примеры кода
## Связаться
- [Telegram](https://t.me/sokolex)
- [Почта](mailto:xalex.sokol@gmail.com).
@@ -1,5 +1,6 @@
--- ---
title: "Стандарты разработки ПО" title: "Стандарты разработки ПО"
date: 2026-10-08T19:18:00+04:00
--- ---
1. Следование PEP-8 1. Следование PEP-8
2. Приложения Django именуются в CamelCase стиле 2. Приложения Django именуются в CamelCase стиле
+1
View File
@@ -1,5 +1,6 @@
--- ---
title: "Резюме: Senior Python Developer & Web Scraping" title: "Резюме: Senior Python Developer & Web Scraping"
date: 2026-10-08T19:18:00+04:00
--- ---
[CV EN](Alexander_Sokolov_CV_EN.pdf) [CV EN](Alexander_Sokolov_CV_EN.pdf)
+37
View File
@@ -0,0 +1,37 @@
{{ $p := .Params.card }}
<section class="vcard">
{{ with site.Params.homepage.homepageImage }}{{ with resources.Get . }}
<div class="vcard__bg" style="background-image:url('{{ .RelPermalink }}')"></div>
{{ end }}{{ end }}
<div class="vcard__box">
{{ with resources.Get $p.avatar }}
{{ $img := .Fill "256x256 webp q85" }}
<img class="vcard__avatar" src="{{ $img.RelPermalink }}" width="128" height="128" alt="{{ $p.name }}">
{{ end }}
<h1 class="vcard__name">{{ $p.name }}</h1>
{{ with $p.nick }}<p class="vcard__nick">aka {{ . }}</p>{{ end }}
<p class="vcard__role">{{ $p.role }}</p>
{{ with $p.status }}
<p class="vcard__status is-{{ .state | default "open" }}">
<span class="vcard__dot"></span>{{ .text }}
</p>
{{ end }}
<ul class="vcard__links">
{{ range $p.contacts }}
<li>
<a href="{{ .url }}"{{ if hasPrefix .url "http" }} target="_blank" rel="noopener me"{{ end }}>
{{ with .icon }}<span class="vcard__icon">{{ partial "icon.html" . }}</span>{{ end }}
<span>{{ .label }}</span>
</a>
</li>
{{ end }}
</ul>
{{ with $p.more }}<a class="vcard__more" href="{{ . | relURL }}">Подробнее обо мне →</a>{{ end }}
</div>
</section>
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB