Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Оформляем README-файл профиля на GitHub

Время на прочтение14 мин
Количество просмотров228K

Летом 2020 года GitHub позволила пользователям создавать персональные README-файлы и с их помощью кастомизировать свои профили. Сама платформа при создании подобного файла предлагает уже готовый шаблон, в который можно вписать свои данные. Но о какой кастомизации может идти речь, если у всех будут одинаково оформленные профили? За почти два года сообщество придумало множество различных способов выделиться и особенно оформить свою страницу на GitHub.

Читать далее
Всего голосов 62: ↑60 и ↓2+73
Комментарии25

Расшарьте свой локальный веб-сервер в Интернете с помощью localtunnel

Время на прочтение1 мин
Количество просмотров16K
Иногда во время тестирования веб-приложений может понадобится доступ к ним снаружи (то есть из публичного Интернета). Например некоторые API используют коллбеки.

В таком случае можно создать обратный SSH-туннель чтоб расшарить свой локальный сервер. Но для этого нужен доступ к публично доступной машине с SSH и нужными портами открытыми на фаерволе.

Но не всегда найдется такая машина, и влом покупать VPS или что-то в этом роде. В таком случае localtunnel — как раз то что надо.

localtunnel — инструмент специально предназначеный для того чтоб временно расшарить локальный веб-сервер в Интернете. Он работает как клиент к публичному сервису обратного туннелирования с открытыми исходниками.

Использовать его очень просто:

localtunnel 8080

Эта команда сделает локальный сервис на порту 8080 доступным на порту 80 на домене который выведет утилита.

Конечно перед использованием все-таки надо устанавить и настроить программу.
Установка для всех пользователей:

sudo gem install localtunnel

После этого при первом запуске нужно указать свой публичный ключ для аутентификации:

localtunnel -k ~/.ssh/id_rsa.pub 8080

Если у вас нет готовых ключей для SSH, их можно сгенерировать такой командой:

ssh-keygen -t rsa

Больше информации (на английском) и исходники – на Гитхабе.

UPD: Вышенаписанное справедливо для Unix-систем. В Windows наверное может работать через Cygwin.
Всего голосов 69: ↑55 и ↓14+41
Комментарии61

Как дообучить LLaMA бесплатно и без программирования: как создать тупого друга

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров45K

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

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии17

Нормализация отношений. Первая и вторая нормальные формы

Время на прочтение6 мин
Количество просмотров168K

Предисловие


Нормализация отношений (таблиц) — одна из основополагающих частей теории реляционных баз данных. Нормализация имеет своей целью избавиться от избыточности в отношениях и модифицировать их структуру таким образом, чтобы процесс работы с ними не был обременён различными посторонними сложностями. При игнорировании такого подхода эффективность проектирования стремительно снижается, что вкупе с прочими подобными вольностями может привести к критическим последствиям.

Любому специалисту, по роду своей деятельности так или иначе связанному с проектированием реляционных баз данных, полезно понимать и уметь осуществить нормализацию отношений. И этим постом хотелось бы начать небольшую серию публикаций, посвящённых нормальным формам, имеющую целью дать тем читателям Хабрахабра, которые по различным обстоятельствам ещё не освоили эту тему, возможность легко заполнить этот пробел в знаниях.

Статья не имеет своей целью подробное и точное изложение принципов нормализациии, поскольку это, очевидно, невозможно в рамках блога в силу больших объёмов информации, необходимых для публикации при таком подходе. Кроме этого, для такой цели существует большое количество литературы, написанной прекрасными специалистами. Моя же задача, как я считаю, заключается в том, чтобы популярно продемонстрировать и объяснить основные принципы.
Читать дальше →
Всего голосов 64: ↑53 и ↓11+42
Комментарии23

Llama 3.1-70b в своем Телеграм боте — бесплатно, безлимитно и всего 20 строк кода

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров39K

Да, всего 20 строк кода и бот:

1) по качеству ответов будет соизмерим с ChatGPT-4o;
2) будет отвечать очень быстро т.к. подключим мы его через Groq который в среднем в 10 раз быстрее других аналогичных сервисов;
3) будет поддерживать диалог и запоминать последние сообщения.

Читать далее
Всего голосов 50: ↑40 и ↓10+38
Комментарии102

Как подружить Llama-3.1 и YouTube имея всего 40 строк кода

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров7.9K

Сделаем Телеграм бота которому можно кинуть ссылку на YouTube видео и поговорить с ним о содержимом этого видео.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии10

Django Channels – ответ современному вебу

Время на прочтение13 мин
Количество просмотров49K
В мире Django набирает популярность дополнение Django Channels. Эта библиотека должна принести в Django асинхронное сетевое программирование, которое мы так долго ждали. Артём Малышев на Moscow Python Conf 2017 объяснил, как это делает первая версия библиотеки (сейчас автор уже запилил channels2), зачем она это делает и делает ли вообще.

Прежде всего, дзен Python говорит, что любое решение должно быть единственное. Поэтому в Python всего минимум по три. Сетевых асинхронных фреймворков уже существует большое множество:

  • Twisted;
  • Eventlet;
  • Gevent;
  • Tornado;
  • Asyncio.

Казалось бы, зачем писать еще одну библиотеку и надо ли вообще.


О спикере: Артём Малышев независимый Python разработчик. Занимается разработкой распределённых систем, выступает на конференциях по Python. Артёма можно найти по никнейму PROOFIT404 на Github и в социальных сетях.
Всего голосов 44: ↑41 и ↓3+38
Комментарии35

Веб-сокеты в Django Channels. Сделаем простой чат

Время на прочтение8 мин
Количество просмотров24K

Фреймворк Django представляет разработчику исчерпывающий набор функций для работы с базами данных, инъекцией зависимостей, обработке шаблонов и многим другим через механизм дополнений. Часто Django используется как решение для разработки динамического содержания сайтов, но также с его помощью можно создавать REST-интерфейсы (например, для взаимодействия с мобильным или frontend-приложением) через расширение DRF (Django Rest Framework), однако REST-методы часто не подходят для ситуаций динамического обновления информации на стороне клиента. В этом случае рационально использовать веб-сокеты для поддержки двухстороннего обмена данными с клиентом и асинхронные расширения Django Channels для создания таких каналов передачи информации. В этой статье мы последовательно разберем механизм работы Django Channels и сделаем простую реализацию чата с использованием веб-сокетов.

Читать далее
Всего голосов 8: ↑7 и ↓1+7
Комментарии0

Как сделать локальный Django-сайт доступным в Интернете / Туннели ngrok

Время на прочтение5 мин
Количество просмотров25K

Допустим вы пишите какое-то Django-приложение. Как обычно разработка идёт локально на вашем компьютере.  По умолчанию все Django-проекты доступны по адресу http://localhost:8000 или http://127.0.0.1:8000 что одно и тоже. Эта адреса твоего локального компьютера. Соответственно никто другой в Интернете, перейдя по одному из этих адресов, ваш сайт не увидит.

Проект пока рано заливать на какой-то хостинг или выделенный сервер, но показать его другому человеку уже нужно: похвастаться другу, человеку и команды разработки, заказчику и т.д. Даже если этот человек подключится к WI-FI у вас дома и будет находиться с сайтом в одной сети, localhost будет перенаправлять гостя на своё же устройство, а не на ваш сайт.

Что делать, как показать Django-проект, которые запускается на локальном сервере, недоступном в Интернете? Есть несколько вариантов:

Читать далее
Всего голосов 7: ↑5 и ↓2+5
Комментарии15

За сколько секунд должен загружаться веб-сайт в 2020, что такое «быстро», и причем тут зеркала в лифтах?

Время на прочтение10 мин
Количество просмотров27K

Казалось бы, померил время от HTTP-запроса браузера до загрузки последнего байта страницы — и готово. Not so fast! У Google, например, целых 6 метрик для оценки скорости работы сайта. Под катом НЕ будет перевода документации Lighthouse и НЕ будет советов по написанию SEO текстов, зато вы узнаете:


  • о хронологии изменения политики ранжирования сайтов Google
  • об объективных оценках субъективного восприятия времени загрузки сайта
  • насколько интернет остается медленным в 2020
  • как время загрузки влияет на посещаемость сайта, а сам процесс на конверсию
  • смешная картинка в конце

Читать дальше →
Всего голосов 4: ↑2 и ↓2+1
Комментарии33

Основы проектирования архитектуры простой социальной сети

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров11K

Социальные сети стали неотъемлемой частью нашей повседневной жизни. Они объединяют людей, позволяют обмениваться информацией, поддерживать связь с друзьями и даже находить новых знакомых. Однако, за всеми этими возможностями стоит сложная инженерная работа по созданию и поддержанию социальных платформ.

Эта статья расскажет вам об основах проектирования архитектуры простой социальной сети Независимо от того, являетесь ли вы опытным разработчиком, только начинаете свой путь в этой области или просто интересуетесь, как работают социальные сети "под капотом", здесь вы найдете полезные советы и примеры.

Читать далее
Всего голосов 18: ↑14 и ↓4+12
Комментарии5

Будни техпода. Как разместить Telegram-бота на виртуальном сервере

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров26K


Чуть больше месяца назад мы запустили Telegram-бота, через который можно заказать виртуальный сервер. Этот бот помогает арендовать VPN-сервер, VPS из нашего маркетплейса или уникальную конфигурацию под ваши цели.

А не возникало ли у вас желания запустить собственный Telegram-бот на своей удалённой виртуалке? Если да, то добро пожаловать под кат, где мы разбираем весь процесс от заказа и подготовки виртуальной машины до запуска бота в работу. Скажем сразу, данная статья — для тех, кто мало знаком с работой Linux-систем и написанием кода Telegram-ботов, но хочет сделать по этому пути один из первых своих шагов.
Читать дальше →
Всего голосов 29: ↑23 и ↓6+26
Комментарии3

htop и многое другое на пальцах

Время на прочтение26 мин
Количество просмотров296K


На протяжении долгого времени я не до конца понимал htop. Я думал, что средняя загрузка [load average] в 1.0 означает, что процессор загружен на 50%, но это не совсем так. Да и потом, почему именно 1.0?

Затем я решил во всём разобраться и написать об этом. Говорят, что лучший способ научиться новому — попытаться это объяснить.
Читать дальше →
Всего голосов 138: ↑130 и ↓8+122
Комментарии43

Новые проклятия: руководство по ncurses

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров21K

HTOP, midnight commander... Как же они построили довольно красивый и удобный псевдографический интерфейс?

Все благодаря библиотеке для C/С++ под названием new curses ("новым проклятиям" дословно) или же NCURSES.

Но как ее установить и работать с ней?

Вперёд!
Всего голосов 18: ↑13 и ↓5+11
Комментарии10

Симметричная индексация в Python

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров9.1K

Иногда, изучая Python, можно наткнуться на вещи, которые позволяют решать задачи довольно неожиданным способом. К одной из таких вещей можно отнести унарный оператор ~, с помощью которого можно осуществить симметричную индексацию последовательности. Под симметричной индексацией последовательности будем подразумевать ее одновременный обход от начала и конца.

Читать далее
Всего голосов 52: ↑48 и ↓4+52
Комментарии12

Как я полюбил vim, Emacs и клавиатуру

Время на прочтение13 мин
Количество просмотров76K
В какой-то степени эта статья ответ — или, скорее, дополнение — к публикации «Зачем vi-топор программисту 21-го века». Я увидел, что в комментариях люди по-прежнему удивлялись: какой смысл в этих редакторах, когда есть полноценные IDE; статья приводила немного реальных примеров и, понимая, что мне есть, что сказать, я решил поделиться собственным опытом. Написано в художественном стиле, так как думаю, если бы люди хотели сухую выжимку, они бы просто пошли читать мануалы. Так же предупрежу, что в мануалах по Емаксу клавиша «Alt» упоминается как «Meta». Я буду говорить «Alt», так как для многих это название привычней.
Читать дальше →
Всего голосов 51: ↑41 и ↓10+31
Комментарии191

Vim: шпаргалка для начинающих

Время на прочтение2 мин
Количество просмотров81K

What’s up guys!

Когда я только начинал пользоваться Linux и впервые запустил этот текстовый редактор я его немного испугался… но позже разобрался и понял, насколько же он удобен.

Как вы уже вероятно поняли, в этой статье-шпаргалке мы немного (совсем) поговорим про текстовый редактор Vim. Я постарался сделать её максимально сжатой, и она нацелена в основном на новичков, которые просто хотят понять, как пользоваться этим текстовым редактором.

Читать далее
Всего голосов 23: ↑4 и ↓19-15
Комментарии17

Как сделать NeoVim самым удобным текстовым редактором: туториал по настройке

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров48K

В этой статье затронем редакторы семейства Vi и разберем базовые сценарии работы с NeoVim. Начинающие специалисты смогут использовать материал в качестве туториала, а опытные разработчики, возможно, отметят для себя что-то новое.

Почему именно NeoVim? Всё просто: этот текстовый редактор сохраняет совместимость с Vim, но также предлагает дополнительные возможности и улучшенный интерфейс. Он позволяет более эффективно работать с кодом, а главное — настраивать редактор под свои нужды.

Читать далее
Всего голосов 13: ↑10 и ↓3+9
Комментарии18

Введение в алгоритм A*

Время на прочтение10 мин
Количество просмотров185K
При разработке игр нам часто нужно находить пути из одной точки в другую. Мы не просто стремимся найти кратчайшее расстояние, нам также нужно учесть и длительность движения. Передвигайте звёздочку (начальную точку) и крестик (конечную точку), чтобы увидеть кратчайший путь. [Прим. пер.: в статьях этого автора всегда много интерактивных вставок, рекомендую сходить в оригинал статьи.]


Для поиска этого пути можно использовать алгоритм поиска по графу, который применим, если карта представляет собой граф. A* часто используется в качестве алгоритма поиска по графу. Поиск в ширину — это простейший из алгоритмов поиска по графу, поэтому давайте начнём с него и постепенно перейдём к A*.
Всего голосов 70: ↑69 и ↓1+68
Комментарии20

5 библиотек Python для красивого вывода на консоль

Время на прочтение2 мин
Количество просмотров25K

Независимо от того, создаете ли вы простой скрипт Python или приложение корпоративного уровня, элегантное взаимодействие с консолью избавит вас от надоедливой головной боли при устранении неполадок в будущем.

В этой статье мы рассмотрим некоторые библиотеки, которые позволят вам создавать удобные, элегантные взаимодействия с консолью и вывод для вашего кода.

Использование этих замечательных библиотек поможет вам создавать приложения командной строки, которые понравятся пользователям.

Давайте начнем!

Читать далее
Всего голосов 30: ↑26 и ↓4+29
Комментарии17

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Security Engineer
Middle
От 250 000 ₽
Git
OOP
PostgreSQL
Python
Docker
Linux
Django
Database