Pull to refresh
7
0.4
Send message

Из пет-проекта в источник дохода: как я создал чат-бот для поиска вакансий

Level of difficultyEasy
Reading time6 min
Views5.8K

Привет! Меня зовут Георгий Каляпин. Когда я начинал работать разработчиком, мне приходили разные маленькие заказы, а потом я стал искать их сам в чатах с фрилансерами. Проблема была в том, что чаты приходилось мониторить постоянно и в них встречалось много нецелевых вакансий.

Поэтому я решил создать чат-бот RemoteHunt — помощника в поиске фриланса. Он 24/7 просматривает тематические каналы и чаты, после чего сегментирует вакансии на категории и отправляет пользователю. Изначально бот задумывался как пет-проект, но в процессе разработки перерос в нечто большее.

В этой статье я расскажу о принципе работы чат-бота и трудностях, с которыми встретился. Не всё получилось идеально с первого раза, поэтому какие-то моменты буду исправлять или улучшать. С похожими задачами я встречался в рамках курса «Мидл Python-разработчик» в Практикуме, но я не хотел копировать готовые решения.

Вот что у меня получилось
Total votes 9: ↑6 and ↓3+4
Comments16

Исследуем внутренности Linux версии 0.01

Level of difficultyMedium
Reading time7 min
Views33K

Ядро Linux часто упоминают как ужасно масштабное опенсорсное ПО. На момент написания этой статьи последняя версия 6.5-rc5 состоит из 36 миллионов строк кода. Не нужно говорить, что Linux — это плод упорного многолетнего труда множества участников проекта.

Однако первая версия Linux, v0.01, была довольно маленькой. Она состояла всего из 10239 строк кода. Если исключить комментарии и пустые строки, то остаётся всего 8670 строк. Это достаточно малый объём для анализа и хорошее начало для изучения внутренностей ядер UNIX-подобных операционных систем.

Я получил удовольствие от чтения кода v0.01. Это походило на посещение Музея компьютерной истории в Маунтин-Вью — я наконец-то убедился, что легенды верны! Я написал эту статью, чтобы поделиться с вами этим восхитительным опытом.

Читать далее
Total votes 112: ↑112 and ↓0+112
Comments18

Упрощаем себе работу: плагины VS Code, актуальные в 2023 году

Reading time3 min
Views34K

VS Code сам по себе не обладает большим количеством функций и возможностей. Но это можно легко исправить при помощи плагинов, которые доступны в магазине расширений VS Code. Под катом — несколько плагинов, которые могут пригодиться разработчикам. Здесь есть многое — от управления проектами до «нескучных обоев», т. е. изменений в дизайне. Что же, поехали!

Читать далее
Total votes 34: ↑23 and ↓11+23
Comments24

Спасаем мебельную фабрику от банкротства: достигли ежемесячного оборота продаж диванов без шоурума в 12 млн рублей

Level of difficultyEasy
Reading time14 min
Views2.9K

Нестандартные механики контекстной рекламы и прокачка воронки продаж — в 1,5 раза подняли средний чек, снизили стоимость заказа вдвое и в 14 раз увеличили продажи, сохранив ДРР на уровне 15%.

Читать далее
Total votes 10: ↑7 and ↓3+7
Comments8

Что происходит, когда запускаешь «Hello World» в Linux

Level of difficultyMedium
Reading time15 min
Views28K

Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.

print("hello world")

Вот как это выглядит в командной строке:

$ python3 hello.py
hello world

Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf, strace, ldd, debugfs, /proc, ltrace, dd и stat. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.
Читать дальше →
Total votes 98: ↑98 and ↓0+98
Comments10

[Разбор резюме] Хвалим, а не критикуем: образцовое резюме сетевого инженера

Level of difficultyEasy
Reading time3 min
Views19K

Нам в регулярную рубрику «Разбор резюме» прислали резюме человека, который претендует на должность «Сетевой инженер». Мы с рекрутерами его открыли и поняли, что вместо разбора по нему сделаем инструкцию «Как надо составлять резюме». Разберем все по порядку и расскажем, почему в нем все хорошо и почему так стоит составлять свое резюме практически каждому.

Читать далее
Total votes 21: ↑18 and ↓3+15
Comments42

Опыт Сдачи: Oracle Certified Professional: Java SE 11 Developer 1Z0-819

Level of difficultyMedium
Reading time3 min
Views3.8K

Всем Привет. Публикация для тех кто планирует сдавать OCP от Oracle. Подобных постов великое множество, как и материалов, но я решил написать пост о своем опыте сдачи этой сертификации.

Сдавал я сертификацию на Java SE 11 чуть более года назад. Тогда была уже доступен экзамен на Java SE 17, но насколько я помню отредактированных книг и мок тестов еще не было, поэтому я решил сдать именно на 11-ую Java.

Вообще насколько мне известно до сих пор доступен экзамен и на Java SE 8, но он по-прежнему состоит из OCA + OCP, хотя его значительно упростили с годами уменьшив количество вопросов.

Читать далее
Total votes 5: ↑2 and ↓30
Comments10

Домашка на лето: что почитать разработчику

Reading time7 min
Views11K

У нашего разработчика Михаила Ефремова есть хобби — читать книги и делать подборки особенно полезных. В этой статье он расскажет, как собрал книжную полку с лучшими, на его взгляд, книгами для разработчиков и поделится мнением о них. Миша подобрал книги по алгоритмам, архитектуре, базам данных, Linux/UNIX, Golang, Python.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments3

Диск — это просто куча битов

Level of difficultyMedium
Reading time11 min
Views15K

Доводилось ли вам слышать утверждение, что диск или память — это «просто куча битов?»
Не знаю точно, откуда эта идея пошла, но она вполне разумна и в некоторой степени рассеивает таинственный ореол вокруг компьютеров. Например, она опровергает теорию о том, что внутри моего ПК живёт очень плоский эльф.

Оказывается нет, в нём находятся биты, закодированные в электрических компонентах.

И всё же компьютеры по-прежнему хранят в себе загадочность. Что это за биты? Что они означают? Можем ли мы с ними поиграться, спарсить их, понять?

Далее я покажу вам, что всё это определённо возможно! Ради вашего развлечения я засуну руку в свой ПК, вытащу оттуда кучку битов, и мы их с вами изучим.
Читать дальше →
Total votes 41: ↑40 and ↓1+55
Comments38

Разбираем HTTP/2 по байтам

Level of difficultyMedium
Reading time24 min
Views29K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

Читать дальше →
Total votes 115: ↑115 and ↓0+115
Comments45

Итак, вы установили fzf. Что дальше?

Level of difficultyEasy
Reading time4 min
Views19K

Разработчики ПО — если не единственные, то практически единственные, кому очень просто создавать инструменты для улучшения своей профессиональной работы; однако со временем это усложняет жизнь людям, постоянно переключающимся между разными инструментами и не вкладывающим время в глубокое изучение своего инструментария. Имея глубокое уважение к негласным знаниям людей лучше меня, я всё же считаю, что отличная эвристика 80/20 заключается в том, чтобы изучать старые добрые инструменты Unix cat, ls, cd, grep и cut. (а если вам повезло устроиться на должность настоящего современного сисадмина, то ещё и sed с awk.)

Однако существуют инструменты, выгода от использования которых настолько мгновенна и ценность от применения настолько уникальна, что эвристика 80/20 полностью к ним неприменима. Один из них — это fzf. И меня очень печалит то, что многие скачивают его, запускают в командной строке «как есть», а потом просто мотают головой и произносят: «Я не понимаю».

Мне хотелось бы изменить ситуацию. Предположим, что вы работаете на более-менее стандартной машине с Ubuntu. Вы только что установили fzf при помощи стандартного скрипта установки. Что же дальше?
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments25

13 вопросов для собеседования, на которые должен знать ответы каждый продакт

Level of difficultyEasy
Reading time16 min
Views9.9K

Кому будет полезна статья?

Middle и junior продактам — позволит найти свои зоны роста, а также подготовиться к собеседованиям в топовые IT компании.

Тем, кто хочет стать менеджером продукта, но не знает какие компетенции стоит прокачать, чтобы войти в профессию.

Нанимающим менеджерам — поможет составить требования к вакансии продакта и провести интервью.

Читать далее
Total votes 14: ↑7 and ↓7+4
Comments8

Golang — архитектурный линтер

Level of difficultyEasy
Reading time5 min
Views7.2K

Для того чтобы повысить качество приложения, написанного на языке go, можно использовать разные линтеры. Один из таких линтеров — архитектурный.

В данной статье расскажу про свой бесплатный, open-source, линтер под MIT лицензией и чем он может быть полезен.

Читать далее
Total votes 17: ↑16 and ↓1+20
Comments1

Библиотека системного администратора: подборка книг на русском

Reading time5 min
Views27K

Привет, Хабр! Сегодня День системного администратора, с чем и поздравляем всех причастных. Ну а в качестве дополнения к поздравлению выкладываем подборку книг, которые могут быть интересны как новичкам, так и профессионалам в администрировании. 

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments3

Как сделать свой AnythingGPT, отвечающий на вопросы так, как вам это необходимо (Python, OpenAI Embeddings, ChatGPT API)

Level of difficultyMedium
Reading time17 min
Views17K

Всем привет! Недавно я на практике применил одно интересное решение, которое давно хотел попробовать, и теперь готов рассказать, как своими руками такое можно сделать для любой другой аналогичной задачи. Речь пойдет о создании своей кастомизированной версии ChatGPT, которая отвечает на вопросы, учитывая большую базу знаний, которая по длине не ограничивается размером промта (то есть вы бы не смогли просто добавить всю информацию перед каждым вопросом к ChatGPT). Для этого будем использовать контекстные эмбеддинги от OpenAI (для действительно качественного поиска релеватных вопросов из базы знаний) и сам СhatGPT API (для оборачивания ответов в натуральный человеческие ответы). При этом, также предполагается, что ассистент может отвечать не только на прямо указанные в Q&A вопросы, но и на такие вопросы, на которые смог бы отвечать человек, который ознакомился с Q&A. Кому интересно научиться делать простых ботов, отвечающих по большой базе знаний, добро пожаловать под кат.

Под кат
Total votes 12: ↑12 and ↓0+12
Comments15

Болгарский «Правец-16» (ЕС-1839). Вылазка в консольный интернет в 2023 году на PC/XT 35-летней давности

Level of difficultyEasy
Reading time5 min
Views7K
image

О выходе в интернет с помощью старой, почтенной (но не всегда почившей) техники написано немало статей. Возможно, для кого-то именно эта статья окажется первой, человек вполне может заинтересоваться и начнет расширять кругозор в подобном направлении.

В данной статье описан пример возможности пребывания в современном интернете на примере компьютера архитектуры PC/XT, без Ethernet-карты, болгарского производителя «Правец».

Доступ в интернет при помощи консольного браузера, может быть полезен для просмотра документации, мануалов. Не всегда на сервере установлена графическая оболочка. Важна суть, а при помощи каких средств она получена, пожалуй, дело второе.

Также данное решение может быть использовано для управления хостом — мы получим MS-DOS терминал с функционалом Kermit.

Под катом детальные фото содержимого «ретро-Правц»а, настройка терминального соединения через RS-232, видеодемонстрация выхода в интернет. Фото кликабельны.

Приступим? :)
Читать дальше →
Total votes 35: ↑34 and ↓1+48
Comments50

Управление временем жизни объектов: почему это важно и почему для этого пришлось создать новый язык «Аргентум»

Level of difficultyMedium
Reading time8 min
Views7.7K

Аргентум - язык программирования, построенный на новой ссылочной модели, которая не использует сборщик мусора и гарантирует отсутствие утечек памяти.

Читать далее
Total votes 25: ↑23 and ↓2+28
Comments50

Как пройти собеседование на backend в топовую IT-компанию

Level of difficultyEasy
Reading time14 min
Views6.2K

Поделюсь личным опытом прохождения собеседований в ведущие российский IT-компании на backend Go и PHP разработчика. Надеюсь статья поможет соискателям лучше подготовиться к собеседованию и найти работу в компании мечты. 

Статья, в первую очередь, написана для тех, кто еще не устраивался в крупные IT-компании. 

Читать далее
Total votes 20: ↑11 and ↓9+3
Comments16

Продвинутая работа с логами в Linux

Level of difficultyMedium
Reading time6 min
Views23K

Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.

Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.

Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.

Читать далее
Total votes 24: ↑23 and ↓1+24
Comments12

Unwording — игра-головоломка, которая учит быть добрым к самому себе

Reading time7 min
Views3.8K

Unwording — это игра-головоломка, посвященная преодолению негативного внутреннего диалога. По мере того, как персонаж учится говорить о себе с самим собой в более позитивном ключе, он проходит путь от плоского двухмерного мира к яркому трехмерному.

Журнал Game Developer поговорил с разработчиком игры Армааном Сандху об истории ее создания. Армаан рассказал о личных размышлениях, которые привели к созданию игры; о том, как процесс улучшения отношения к себе превратился в сборник головоломок; и как ему удалось отразить раскрывающуюся красоту и любовь к жизни персонажа через прогрессирующие, меняющиеся визуальные образы игры.

Читать далее
Total votes 16: ↑15 and ↓1+17
Comments0

Information

Rating
1,936-th
Registered
Activity