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

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

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

Гайд по деплою web-приложений для новичков. Часть 2. VPS и настройка окружения

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

Это статья - вторая часть небольшого сериала о деплое web-приложений. Написана для новичков, которые учатся разворачивать приложения на сервере и хотят узнать различные варианты, сравнить их и выбрать подходящий.

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

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

Переход с физического сервера на виртуальный

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

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

Но есть случаи, когда виртуальный сервер удобнее домашнего. Например, он удобнее для раздачи файлов в интернете и обслуживания личного веб-сайта, а также для мониторинга и тестирования сервисов (программа должна быть постоянно в онлайне). Для создания дополнительной резервной копии файлового архива, которая будет физически удалена от основного домашнего хранилища. Даже ультрадешёвый сервер за 130 рублей в месяц способен одновременно поддерживать несколько процессов.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+28
Комментарии10

Как написать свой клиент для YouTube, не привлекая внимания санитаров

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

Привет, Хабр! Когда‑то давно я наткнулся на ролик, где парень писал консольный клиент для YouTube. Идея была просто потрясающей!

Написать свой минималистичный и быстрый клиент, который не будет надоедать
лентами рекомендаций, рекламой, комментариями и т. д. Но вот беда, автор, не найдя возможности использовать YouTube API, решил спарсить одну из фронтенд обёрток над YouTube.

Стоит ли говорить о том, что такое решение сильно теряет в производительности и абсолютно нежизнеспособно на какой‑либо длительный период времени?

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

Пишем асинхронный парсер и скрапер картинок на Python с графическим интерфейсом

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

В этой статье мы создадим desktop-приложение, которое по нашему запросу будет сохранять на нашем диске заданное количество картинок. Так как картинок будет много, мы воспользуемся асинхронностью Python для конкурентной реализации операций ввода-вывода. Посмотрим, чем отличаются библиотеки requests и aiohttp. Также создадим два дополнительных потока приложения, чтобы обойти глобальную блокировку интерпретатора Python.

Читать далее
Всего голосов 8: ↑6 и ↓2+6
Комментарии9

По локоть в легаси: пошагово перезапускаем устаревший портал на PHP

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

PHP — один из самых популярных языков веб-разработки уже около 20 лет, а самому языку скоро стукнет 30. За это время на нем написали огромное количество больших и маленьких проектов. Некоторые сайты, созданные в 90-х, 00-х и 10-х, хранят код еще с тех давних времен. И чем больше времени проходит с начала разработки, тем меньше на рынке специалистов, готовых разбираться в легаси и не самых современных технологиях.

В похожей ситуации оказался портал fishingsib.ru — один из крупнейших в рунете сайтов о рыбалке, который посещают больше 10 000 человек ежедневно. Он создавался в начале 2000-х как форум для рыбаков-любителей и пережил несколько довольно серьезных обновлений кодовой базы. Последнее из них — переезд на CakePHP 2 в 2012 году. На этом фреймворке и PHP 5 сайт жил до 2017 года.

Владелец fishingsib.ru планировал поддерживать и развивать сайт, внедрять новую функциональность, однако столкнулся с техническими проблемами. Любые доработки были очень долгими из-за неудачных архитектурных решений и сильной зависимости от устаревающего и не особенно популярного CakePHP 2. После каждого обновления появлялось множество багов. В то же время не удавалось найти новых разработчиков, потому что большинство специалистов не хотели работать в проекте с неактуальным стеком. Развитие проекта сильно замедлилось и стало понятно, что с технической частью нужно что-то делать.

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

Обрезать нельзя сжать. Как ускорить метрики проекта без больших вложений

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

Мы не раз читали на Хабре, почему важно иметь быстрые сайты, как это влияет на посещаемость, время на странице, глубину и прочее. Но каждый раз это инструкции о том, как поменять инфраструктуру серверов, потратить десятки часов на разработку и ощутимое количество денег. В случае больших корпораций, конечно же, такие действия оправданы. А маленькие стартапы обычно таким и вовсе не занимаются, фокусируясь на других задачах. Мы же оказались где-то посередине. У нас были плохие показатели, но времени на какие-то значительные изменения не было. И несмотря на наличие ресурсов мы решили пойти самым простым путём и, как и гласит закон Парето, получить 80% результата за 20% усилий. Меня зовут Савичев Игорь, я работаю в Самолете и мы занимаемся цифровизацией строительства на российском рынке. Мы развиваем IT-технологии в разных направлениях от девелопмента до финтеха. И сегодня я расскажу, можно ли сделать себе хорошо, быстро и не очень дорого.

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

Настраиваем минимальный WEB-сервер на Repka Pi 3. NGINX + PHP-FPM + MySQL и ставим Wordpress

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

В этой статье я расскажу как установить на Repka Pi 3 полноценный WEB сервер на Nginx с php-fpm и MySQL для того, чтоб в конечном счете установить WordPress и начать делать и размещать Ваш сайт на данной платформе. Ставить будем на родную ОС Repka Pi от 11.12.23 (последняя актуальна прошивка на момент написания статьи).

Читать далее
Всего голосов 10: ↑8 и ↓2+9
Комментарии22

Что нового в IMSProg?

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

Пару месяцев назад я писал историю создания программатора микросхем CH341a для Linux систем. Благодаря вашим отзывам и комментариям программа изменилась, надеюсь в лучшую сторону.

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

Nginx: шпаргалка

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

Шпаргалка по основным секциям Nginx, которые следует держать под рукой. Ниже приведены самые частые функции: включение SSL, переадресация, раздача статики и т.д.

Читать далее
Всего голосов 31: ↑15 и ↓16+1
Комментарии18

Разработка расширения для PHP на C++. Хуки встроенных функций и методов

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

PHP - это мощный и широко используемый язык программирования для веб-разработки. Однако, иногда требуется расширение функциональности или модификация стандартного поведения PHP с использованием более низкоуровневых языков, таких как C++. В этой статье мы рассмотрим, как создать расширение для PHP на C++ на примере разработки функциональности, позволяющей перехватывать вызовы встроенных функций и методов классов в php.

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

Postman: Основы тестирования API и первые шаги с инструментом

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

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

И вот на сцену выходит Postman - мощный и интуитивно понятный инструмент, предназначенный специально для тестирования и разработки API. В этой статье рассказывается о самых базовых вещах, с которых следует начать свое знакомство с Postman.

Отправка HTTP-запросов, создание тестов, организация запросов в коллекции, работа с переменными - все это лишь часть функциональности Postman, которая облегчает процесс тестирования и повышает его эффективность. Если вы только начинаете свой путь в изучении этого инструмента, не волнуйтесь! Этот гайд поможет вам разобраться с базовыми принципами работы с Postman и покажет, как сделать ваш процесс тестирования API гораздо более эффективным и приятным.

Готовы начать? Давайте вместе погрузимся в увлекательный мир тестирования API с Postman!

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

Как я из телефона сделал сервер для своего бота в телеграме

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

Как я из телефона сделал сервер для своего бота в телеграме

Все началось с того что я написал своего бота и решил его выложить в открытый доступ, а точнее чтобы он работал круглосуточно, но платить деньги, за хостинг мне не хотелось. И тогда я вспомнил, что у меня как раз в ящиках залежались старые 2 телефона, можно сказать только один, потому что второй я превратил в кирпич (Неправильно перепрошил). Мой путь поиска программы для установки линукса начался с Termux, но к сожелению он работает только с Android 7+. А телефон на Android 5. Поэтому действенным решением я выбрал UserLAnd.

Читать далее
Всего голосов 27: ↑26 и ↓1+29
Комментарии59

База по SPI NOR FLASH

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

Еще недавно была моя публикация о программе IMSProg — программаторе для CH341a в Linux, а различные идеи продолжают приходить в голову. Происходит это во многом благодаря вашим комментариям к статье.

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

Существует несколько десятков фирм, изготавливающих SPI NOR FLASH. У каждой из фирм несколько десятков моделей микросхем. При подключении такой микросхемы к программатору, чаще всего, сначала происходит подача на микросхему команды 9Fh, в ответ на которую микросхема отдает программатору несколько байт информации JEDEC ID — уникального числа, первый байт которого является кодом производителя, второй — модификацией микросхемы, а третий — кодом емкости (объема) микросхемы. Сравнивая эти три байта с таблицей софт программатора определяет модель микросхемы и выставляет соответствующие параметры для чтения, записи или стирания микросхемы.

Многие из производителей софта для программаторов безнадежно отстают от расширяющегося ассортимента и новые микросхемы не определяются программатором. Поэтому возникла идея объединения информации о SPI NOR FLASH в одном месте. В результате получилась очень большая таблица:

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

А был ли баг? Может бага и не было? Зачем, как и чем тестировать PHP код

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

В статье рассмотрим основные подходы к тестированию бэкенда на PHP, обсудим преимущества и проблемы, связанные с этим процессом. Также узнаем о методах обнаружения и устранения багов, инструментах и книгах для более глубокого изучения тестирования. Материал будет полезен как начинающим тестировщикам, так и разработчикам, которые хотят освоить тестирование бэкенда, но не знают с чего начать.

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

Простой ORM для sqlite3

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

ORM, или объектно-реляционное отображение — это программная технология, которая позволяет взаимодействовать с базами данных с использованием объектно-ориентированной парадигмы. Вместо того чтобы писать SQL-запросы напрямую для работы с данными в базе данных, можно использовать ORM, чтобы взаимодействовать с данными, как если бы они были объектами в вашем коде.

Не бывало ли вам интересно, как работает изнутри такая идейно простая концепция? Благодаря чему достигается удобство работы? Сегодня мы напишем ORM самостоятельно и узнаем, какие инструменты python нам для этого понадобятся.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+48
Комментарии26

IMSProg — программатор для CH341a в Linux

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

Несколько лет назад я полностью перешел на Linux, и все меня устраивало за исключением отсутствия некоторых просто необходимых программ.

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

Протоколы семейства TCP/IP. Теория и практика

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

В сети можно найти огромное количество материала о том, как функционируют сети на базе стека протоколов TCP/IP, а также как писать компьютерные программы с сетевыми возможностями. При рассмотрении компьютерных сетей часто углубляются в описание физических основ и структур данных, передаваемых по сети, а при рассмотрении сетевого программирования основное внимание уделяют интернет-сокетам.

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

Приложение — простое и понятное и, надеюсь, упростит изучение материалов статьи. Ведь именно радость первой победы даёт мотивацию, достаточную для того, чтобы потратить гораздо больше времени на изучение темы.

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии5

Принцип работы async/await в JavaScript

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


Если вам доводилось работать с JavaScript, то вы наверняка встречались с синтаксисом async/await. Эта функциональность позволяет прописывать асинхронную логику синхронным образом, упрощая тем самым её понимание. Некоторым ветеранам JS известно, что async/await – это просто синтаксический сахар для существующего Promises API. Это означает, что в JS должен быть способ реализации функциональности async/await без использования ключевых слов async и await, хоть и более громоздкий. Именно об этом и пойдёт речь в данной статье.

Видео от автора на ту же тему.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+54
Комментарии19

Работа с SQLite в Python (для чайников)

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

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

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

Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь

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

1. Введенние.
2. Zval.
3. Циклические ссылки.
4. Сборщик мусора.
5. Алгоритм работы сборщика мусора.
6. Смотрим глазами.
7. Слабые ссылки.
8. Бонус-трэк: WeakMap.
9. Заключение.

Читать далее
Всего голосов 23: ↑22 и ↓1+26
Комментарии6
1
23 ...

Информация

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