Reason: инициирование политических дискуссий…
Гайд по деплою web-приложений для новичков. Часть 1. Shared-хостинг
В web-разработке процесс деплоя играет важную роль. Это ответственный момент (даже торжественный), когда все усилия, потраченные на написание и тестирование кода, воплощаются в "живое" приложение, доступное пользователям. Ведь для этого приложение и делается, чтобы им кто-то пользовался. Каждый разработчик, независимо от уровня и специализации, регулярно сталкивается с задачей деплоя. Это статья рассчитана на новичков, которые учатся разворачивать приложения на сервере и хотят узнать различные варианты, сравнить их и выбрать подходящий.
В этой статье пошагово разберем самый простой вариант - деплой приложения на хостинг.
Гайд по деплою web-приложений для новичков. Часть 2. VPS и настройка окружения
Это статья - вторая часть небольшого сериала о деплое web-приложений. Написана для новичков, которые учатся разворачивать приложения на сервере и хотят узнать различные варианты, сравнить их и выбрать подходящий.
В этой статье пошагово разберем настройку выделенного сервера и подготовку окружения, для дальнейшего деплоя приложения.
Берём под контроль TODO-шки в коде php
Проблема со сложностью управления TODO/FIXME комментариями в коде очень стара. Ей больше 50 лет. Дошло до того, что в некоторых проектах начали запрещать их со словами: “или исправь сразу или не создавай мусор”. Вот о том как можно автоматизировать управление ими и превратить из мусора в полезный инструмент мы и поговорим.
Повышаем читаемость Symfony DI
Привет! Я разрабатываю приложения на Symfony и хочу поделиться проблемами, с которыми сталкивался при использовании Symfony DI, а также дать несколько советов которые, как мне кажется, будут полезны при разработки больших приложений. Кратко я упоминал о них в этой статье, и здесь хочу развернуть мысль и поговорить подробнее.
PHP функции и способы их применения
В PHP становится все больше способов работы с функциями. Хотя ООП и является основной парадигмой для этого языка, процедурный и функциональный подходы тоже имеет право на жизнь в PHP. Давайте рассмотрим различные примеры работы с функциями в PHP 8.3. Данная статья подойдет для новичков и продолжающих.
Multiprocessing и реконсиляция данных из различных источников
В условиях многообразия распределенных систем, наличие выверенной информации в целевом хранилище является важным критерием непротиворечивости данных.
На этот счет существует немало подходов и методик, а мы остановимся на реконсиляции, теоретические аспекты которой были затронуты вот в этой статье. Предлагаю рассмотреть практическую реализацию данной системы, масштабируемой и адаптированной под большой объем данных.
Как реализовать этот кейс на старом-добром Python — читаем под катом! Поехали!
(Источник картинки)
Как мы делали скоринг на микросервисной архитектуре руками не-программистов
2023 год — год противоречивых сигналов для будущего IT-отрасли и, в частности, занятости айтишников.
С одной стороны, с поголовной цифровизацией всех сфер и процессов экономики растёт спрос на разработчиков — что, безусловно, плюс для айтишников.
С другой — необходимость участия программистов во многих прежде «аналоговых» процессах как таковая стала превращаться в препятствие для цифровизации. Естественным образом, со стороны заказчиков и работодателей возник спрос на решения, которые позволят оцифровывать и автоматизировать процессы без необходимости заменять весь прежний штат программистами. Компании ищут выходы где угодно, включая надежды на то, что программистов заменят нейросети.
В реальности все, кто хоть немного разбираются в вопросе, понимают, что до этого далеко: во многих чувствительных областях нейросети, возможно, никогда не заменят человека — потому что с человека можно спросить за ошибки, а с нейросети взятки гладки. Реальным ответом на запрос рынка видятся сегодня low-code и no-code — то есть, технологии создания ПО с помощью визуального редактора с минимальным написанием кода или без написания кода вообще.
С другой стороны, стандартом становится постепенный переход к микросервисной архитектуре. Это подход, при котором единое приложение строится как набор небольших сервисов, каждый из которых работает в собственном процессе и коммуницирует с остальными используя легковесные механизмы, как правило HTTP. Эти сервисы построены вокруг бизнес-потребностей и развертываются независимо с использованием полностью автоматизированной среды. Существует абсолютный минимум централизованного управления этими сервисами. Сами по себе эти сервисы могут быть написаны на разных языках и использовать разные технологии хранения данных.
Создание CLI утилит на Go с библиотекой Cobra
Сегодня мы рассмотрим, как с помощью замечательной библиотеки Cobra превратить обычный Go-код в инструмент CLI. Cobra позволяет создавать интерфейсы командной строки.
Начнем с самого начала — установки и настройки проекта.
MVCC-1. Изоляция
Материал будет основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov. Смотреть видео не все любят (я точно не люблю), а читать слайды, пусть даже с комментариями, — совсем «не то».
Конечно, статьи не будут повторять содержание курсов один в один. Я буду говорить только о том, как все устроено, опуская собственно администрирование, зато постараюсь делать это более подробно и обстоятельно. И я верю в то, что такие знания полезны прикладному разработчику не меньше, чем администратору.
Ориентироваться я буду на тех, кто уже имеет определенный опыт использования PostgreSQL и хотя бы в общих чертах представляет себе, что к чему. Для совсем новичков текст будет тяжеловат. Например, я ни слова не скажу о том, как установить PostgreSQL и запустить psql.
Вещи, о которых пойдет речь, не сильно меняются от версии к версии, но использовать я буду текущий, 11-й «ванильный» PostgreSQL.
Первый цикл посвящен вопросам, связанным с изоляцией и многоверсионностью, и план его таков:
- Изоляция, как ее понимают стандарт и PostgreSQL (эта статья);
- Слои, файлы, страницы — что творится на физическом уровне;
- Версии строк, виртуальные и вложенные транзакции;
- Снимки данных и видимость версий строк, горизонт событий;
- Внутристраничная очистка и HOT-обновления;
- Обычная очистка (vacuum);
- Автоматическая очистка (autovacuum);
- Переполнение счетчика транзакций и заморозка.
Ну, поехали.
Как человеку достигнуть бессмертия практически
В июле прошлого года я сделал публикацию о принципиальной возможности достижения человеком бессмертия. Теперь попробую описать, как это можно было бы реализовать практически. И хотя изложенное ниже в какой-то части может показаться сценарием фантастического фильма ужасов, но я уверен, что если человечество когда-нибудь реально озаботится обретением физического бессмертия, то иной вариант оно вряд ли придумает.
(Если вам проще смотреть видео, чем читать публикацию, то видео по этой публикации здесь)
Спиральная галактика UGC 9684 — фабрика звёзд
Кажется было такое популярное музыкальное шоу. Но сейчас речь об исполинских газовых шарах, крайне горячих, в которых сосредоточена значительная часть вселенского вещества, и внутри которых это вещество эволюционирует, обретая очень широкое разнообразие, охватывая чуть ли не половину периодической таблицы Менделеева. О таких звездах наш разговор, а не о каких-то других, хотя есть вненаучная идея о том, что душа, проходящая школу взросления в человеческом теле, когда-то была лишь атомом, но пройдя большую часть своей духовной эволюции — через миллионы воплощений — станет звездой...
Реликтовое гравитационное излучение — ключ к тайнам Вселенной
Участники хабра проявляли большой интерес к космологии пульсирующей Вселенной (https://habr.com/ru/articles/396601/; https://habr.com/ru/articles/371363/; https://habr.com/ru/articles/777028/), поэтому всех заинтересованных хочу обрадовать новостью, что издательство «Питер» в июне этого года выпускает массовым тиражом второе издание книги «Пульсирующая Вселенная» с дополнениями и улучшениями. Получасовую презентацию книги (и космологической теории, которая в ней излагается) от редактора «Питера» и от меня можно посмотреть на ю-тубе: https://www.youtube.com/watch?v=QyVAPTdPC4Y
На одном космологическом моменте хочется остановиться детальнее – на реликтовых гравитационных волнах. В начале 60-х годов разразилась большая битва между тремя космологическими теориями: теорией постоянного роста Вселенной Бонди-Голда-Хойла (без Большого Взрыва, а Вселенная просто пухнет по непонятным причинам); теорией изначально холодной Вселенной Зельдовича, и теорией горячей ранней Вселенной Гамова, в рамках которой были предсказаны Большой Взрыв, химсостав ранней Вселенной и наличие вокруг реликтового излучения с температурой в несколько кельвинов (излучение очень горячей ранней Вселенной растянулось к нашему времени так, что остыло до температуры жидкого гелия).
В эстонском городе Тарту, 7-13 июля 1962 года проходил семинар, материалы которого были опубликованы в сборнике «Вопросы космогонии» (1963). В статье «Дозвездная эволюция вещества» Я. Б. Зельдович разбирает теорию горячей Вселенной Гамова-Альфера-Хермана, попытки которых получить наблюдаемый химический состав космической среды, он считает «наивными». Зельдович пишет, что в этой модели «эффективная температура электромагнитного излучения (света) равна 23К» (откуда ЯБ взял это значение вместо нескольких градусов – неясно, возможно из какой-то самой неточной работе группы Гамова).
Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному
Поскольку блокировки интернета в РФ в последние недели и месяцы многократно активизировались, а маразм все крепчает и крепчает, стоит еще раз поднять тему обхода этих самых блокировок (и делаем ставки, через сколько дней на эту статью доброжелатели напишут донос в РКН чтобы ограничить к ней доступ на территории страны).
Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.
Стартап виза в Испанию — гайд по личному опыту получения стартап ВНЖ
Привет! Я получил стартап-визу в уже далеком 2021 году. С тех пор каждый день мои друзья и знакомые, и незнакомые пишут и спрашивают меня про мой опыт получения стартап-визы Испании. Решил, что пришло время выложить все на бумагу, т.е. написать статью на хабре.
За 2.5 года многое изменилось. Появилась ENISA. Успел смениться директор самой ENISA. Появились новые законы и дополнения. Рассказываю обо всем по порядку.
По локоть в легаси: пошагово перезапускаем устаревший портал на PHP
PHP — один из самых популярных языков веб-разработки уже около 20 лет, а самому языку скоро стукнет 30. За это время на нем написали огромное количество больших и маленьких проектов. Некоторые сайты, созданные в 90-х, 00-х и 10-х, хранят код еще с тех давних времен. И чем больше времени проходит с начала разработки, тем меньше на рынке специалистов, готовых разбираться в легаси и не самых современных технологиях.
В похожей ситуации оказался портал fishingsib.ru — один из крупнейших в рунете сайтов о рыбалке, который посещают больше 10 000 человек ежедневно. Он создавался в начале 2000-х как форум для рыбаков-любителей и пережил несколько довольно серьезных обновлений кодовой базы. Последнее из них — переезд на CakePHP 2 в 2012 году. На этом фреймворке и PHP 5 сайт жил до 2017 года.
Владелец fishingsib.ru планировал поддерживать и развивать сайт, внедрять новую функциональность, однако столкнулся с техническими проблемами. Любые доработки были очень долгими из-за неудачных архитектурных решений и сильной зависимости от устаревающего и не особенно популярного CakePHP 2. После каждого обновления появлялось множество багов. В то же время не удавалось найти новых разработчиков, потому что большинство специалистов не хотели работать в проекте с неактуальным стеком. Развитие проекта сильно замедлилось и стало понятно, что с технической частью нужно что-то делать.
Реконсиляция — проверка целостности данных в распределенных системах
При разработке и использовании распределенных систем перед нами возникает задача контроля целостности и идентичности данных между системами — задача реконсиляции.
Требования, которые выставляет заказчик — минимальное время данной операции, поскольку чем раньше расхождение будет найдено, тем легче будет устранить его последствия. Задача заметно усложняется тем, что системы находятся в постоянном движении (~ 100 000 транзакций в час) и добиться 0% расхождений не получится.
С новым годом: GPT в 500 строках на SQL
В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.
Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:
«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»
Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.
Давайте же воодушевимся этим оптимистическим планом и реализуем большую языковую модель на языке SQL.
Как мы победили в двух хакатонах Цифрового Прорыва. История первая
Привет, Хабр. Мы — команда Ling Bizkit (я — Никита Лаврентьев, Валентин Ануфриков, Матвей Липилин, Егор Плужник и Павел Рыбаков). И это наш рассказ о том, как можно заработать 3 миллиона за два дня. А точнее, о победе в хакатоне на одном из этапов «Цифрового Прорыва».
Использование Symfony / PHP (II)
Привет! Я, Андрей, Symfony разработчик - мы делаем сайты. Каждый день мы тратим много ресурсов на администрирование и базовые настройки проектов. В этой статье я продолжаю делиться опытом, как можно адаптировать фреймворк Symfony под свои нужды. Сегодня я расскажу как мы работаем с базой данных и Doctrine. Поехали
Information
- Rating
- Does not participate
- Registered
- Activity