Pull to refresh
-9
your account is blocked @realevilread⁠-⁠only

Reason: инициирование политических дискуссий…

Send message

Фундаментальная теория тестирования

Reading time15 min
Views1.2M
В тестировании нет четких определений, как в физике, математике, которые при перефразировании становятся абсолютно неверными. Поэтому важно понимать процессы и подходы. В данной статье разберем основные определения теории тестирования.


Читать дальше →
Total votes 11: ↑10 and ↓1+11
Comments5

Гайд по деплою web-приложений для новичков. Часть 1. Shared-хостинг

Level of difficultyEasy
Reading time15 min
Views17K

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

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

Читать далее
Total votes 26: ↑21 and ↓5+22
Comments31

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

Level of difficultyEasy
Reading time20 min
Views7.7K

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

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

Читать далее
Total votes 18: ↑17 and ↓1+18
Comments10

Берём под контроль TODO-шки в коде php

Level of difficultyMedium
Reading time10 min
Views1.9K

Проблема со сложностью управления TODO/FIXME комментариями в коде очень стара. Ей больше 50 лет. Дошло до того, что в некоторых проектах начали запрещать их со словами: “или исправь сразу или не создавай мусор”. Вот о том как можно автоматизировать управление ими и превратить из мусора в полезный инструмент мы и поговорим.

Читать далее
Total votes 13: ↑12 and ↓1+19
Comments2

Повышаем читаемость Symfony DI

Level of difficultyEasy
Reading time3 min
Views3K

Привет! Я разрабатываю приложения на Symfony и хочу поделиться проблемами, с которыми сталкивался при использовании Symfony DI, а также дать несколько советов которые, как мне кажется, будут полезны при разработки больших приложений. Кратко я упоминал о них в этой статье, и здесь хочу развернуть мысль и поговорить подробнее.

Читать далее
Total votes 3: ↑3 and ↓0+5
Comments5

PHP функции и способы их применения

Level of difficultyEasy
Reading time11 min
Views7.3K

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

Читать далее
Total votes 28: ↑27 and ↓1+32
Comments31

Multiprocessing и реконсиляция данных из различных источников

Reading time9 min
Views8.5K
Привет, Хабр!

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

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

Как реализовать этот кейс на старом-добром Python — читаем под катом! Поехали!


(Источник картинки)
Читать дальше →
Total votes 10: ↑8 and ↓2+9
Comments2

Как мы делали скоринг на микросервисной архитектуре руками не-программистов

Level of difficultyEasy
Reading time9 min
Views8.8K

2023 год — год противоречивых сигналов для будущего IT-отрасли и, в частности, занятости айтишников. 

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

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

В реальности все, кто хоть немного разбираются в вопросе, понимают, что до этого далеко: во многих чувствительных областях нейросети, возможно, никогда не заменят человека — потому что с человека можно спросить за ошибки, а с нейросети взятки гладки. Реальным ответом на запрос рынка видятся сегодня low-code и no-code — то есть, технологии создания ПО с помощью визуального редактора с минимальным написанием кода или без написания кода вообще.

С другой стороны, стандартом становится постепенный переход к микросервисной архитектуре. Это подход, при котором единое приложение строится как набор небольших сервисов, каждый из которых работает в собственном процессе и коммуницирует с остальными используя легковесные механизмы, как правило HTTP. Эти сервисы построены вокруг бизнес-потребностей и развертываются независимо с использованием полностью автоматизированной среды. Существует абсолютный минимум централизованного управления этими сервисами. Сами по себе эти сервисы могут быть написаны на разных языках и использовать разные технологии хранения данных.

Читать далее
Total votes 13: ↑11 and ↓2+20
Comments11

Создание CLI утилит на Go с библиотекой Cobra

Level of difficultyEasy
Reading time4 min
Views4K

Сегодня мы рассмотрим, как с помощью замечательной библиотеки Cobra превратить обычный Go-код в инструмент CLI. Cobra позволяет создавать интерфейсы командной строки.

Начнем с самого начала — установки и настройки проекта.

Читать далее
Total votes 11: ↑9 and ↓2+11
Comments2

MVCC-1. Изоляция

Reading time25 min
Views149K
Привет, Хабр! Этой статьей я начинаю серию циклов (или цикл серий? в общем, задумка грандиозная) о внутреннем устройстве PostgreSQL.

Материал будет основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov. Смотреть видео не все любят (я точно не люблю), а читать слайды, пусть даже с комментариями, — совсем «не то».

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

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

Вещи, о которых пойдет речь, не сильно меняются от версии к версии, но использовать я буду текущий, 11-й «ванильный» PostgreSQL.

Первый цикл посвящен вопросам, связанным с изоляцией и многоверсионностью, и план его таков:

  1. Изоляция, как ее понимают стандарт и PostgreSQL (эта статья);
  2. Слои, файлы, страницы — что творится на физическом уровне;
  3. Версии строк, виртуальные и вложенные транзакции;
  4. Снимки данных и видимость версий строк, горизонт событий;
  5. Внутристраничная очистка и HOT-обновления;
  6. Обычная очистка (vacuum);
  7. Автоматическая очистка (autovacuum);
  8. Переполнение счетчика транзакций и заморозка.

Ну, поехали.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments47

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

Level of difficultyEasy
Reading time13 min
Views63K

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

(Если вам проще смотреть видео, чем читать публикацию, то видео по этой публикации здесь)

Читать далее
Total votes 70: ↑46 and ↓24+34
Comments624

Спиральная галактика UGC 9684 — фабрика звёзд

Level of difficultyMedium
Reading time7 min
Views1.2K

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

Читать далее
Total votes 10: ↑10 and ↓0+12
Comments2

Реликтовое гравитационное излучение — ключ к тайнам Вселенной

Level of difficultyMedium
Reading time6 min
Views10K

Участники хабра проявляли большой интерес к космологии пульсирующей Вселенной (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К» (откуда ЯБ взял это значение вместо нескольких градусов – неясно, возможно из какой-то самой неточной работе группы Гамова).

Читать далее
Total votes 40: ↑39 and ↓1+53
Comments35

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Level of difficultyMedium
Reading time46 min
Views255K

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

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

Читать далее
Total votes 445: ↑437 and ↓8+489
Comments373

Стартап виза в Испанию — гайд по личному опыту получения стартап ВНЖ

Level of difficultyEasy
Reading time20 min
Views6K

Привет! Я получил стартап-визу в уже далеком 2021 году. С тех пор каждый день мои друзья и знакомые, и незнакомые пишут и спрашивают меня про мой опыт получения стартап-визы Испании. Решил, что пришло время выложить все на бумагу, т.е. написать статью на хабре.

За 2.5 года многое изменилось. Появилась ENISA. Успел смениться директор самой ENISA. Появились новые законы и дополнения. Рассказываю обо всем по порядку.

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

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

Level of difficultyMedium
Reading time10 min
Views13K

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

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

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

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

Реконсиляция — проверка целостности данных в распределенных системах

Reading time4 min
Views36K


При разработке и использовании распределенных систем перед нами возникает задача контроля целостности и идентичности данных между системами — задача реконсиляции.


Требования, которые выставляет заказчик — минимальное время данной операции, поскольку чем раньше расхождение будет найдено, тем легче будет устранить его последствия. Задача заметно усложняется тем, что системы находятся в постоянном движении (~ 100 000 транзакций в час) и добиться 0% расхождений не получится.

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments11

С новым годом: GPT в 500 строках на SQL

Reading time42 min
Views39K

В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.

Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:

«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»

Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.

Давайте же воодушевимся этим оптимистическим планом и реализуем большую языковую модель на языке SQL.

Читать далее
Total votes 179: ↑175 and ↓4+205
Comments21

Как мы победили в двух хакатонах Цифрового Прорыва. История первая

Reading time6 min
Views2.1K

Привет, Хабр. Мы — команда Ling Bizkit (я — Никита Лаврентьев, Валентин Ануфриков, Матвей Липилин, Егор Плужник и Павел Рыбаков). И это наш рассказ о том, как можно заработать 3 миллиона за два дня. А точнее, о победе в хакатоне на одном из этапов «Цифрового Прорыва».

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

Использование Symfony / PHP (II)

Level of difficultyMedium
Reading time7 min
Views6.3K

Привет! Я, Андрей, Symfony разработчик - мы делаем сайты. Каждый день мы тратим много ресурсов на администрирование и базовые настройки проектов. В этой статье я продолжаю делиться опытом, как можно адаптировать фреймворк Symfony под свои нужды. Сегодня я расскажу как мы работаем с базой данных и Doctrine. Поехали

Читать далее
Total votes 9: ↑8 and ↓1+11
Comments20

Information

Rating
Does not participate
Registered
Activity