Как стать автором
Обновить
-9
your account is blocked @realevilread⁠-⁠only

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

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

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

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


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

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

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

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

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

Читать далее
Всего голосов 26: ↑21 и ↓5+22
Комментарии31

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 28: ↑27 и ↓1+32
Комментарии31

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

Время на прочтение9 мин
Количество просмотров8.5K
Привет, Хабр!

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

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

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


(Источник картинки)
Читать дальше →
Всего голосов 10: ↑8 и ↓2+9
Комментарии2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение25 мин
Количество просмотров149K
Привет, Хабр! Этой статьей я начинаю серию циклов (или цикл серий? в общем, задумка грандиозная) о внутреннем устройстве PostgreSQL.

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

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

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

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

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

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

Ну, поехали.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии47

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

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

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

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

Читать далее
Всего голосов 70: ↑46 и ↓24+34
Комментарии624

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

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

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

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

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

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

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

Читать далее
Всего голосов 40: ↑39 и ↓1+53
Комментарии35

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

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

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

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

Читать далее
Всего голосов 445: ↑437 и ↓8+489
Комментарии373

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 179: ↑175 и ↓4+205
Комментарии21

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

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

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

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

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

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

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

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

Информация

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