Pull to refresh
23
0
Dmitry Khomutov @Corpsee

Web-разработчик

Send message

Ubuntu 24.04: финальный релиз уже скоро. Изменения и возможности дистрибутива

Reading time4 min
Views21K

Уже 25 апреля будет опубликован финальный релиз дистрибутива Ubuntu 24.04 «Noble Numbat». Фактически он готов и сейчас, единственное, что осталось разработчикам — тщательно протестировать новинку на наличие ошибок, а если они есть, то исправить их. Новая версия относится к категории выпусков с длительным сроком поддержки, обновления для неё будут формироваться в течение 12 лет. Подробности — под катом.

Читать далее
Total votes 27: ↑31 and ↓-4+35
Comments42

Создаем свой аналог sqlite c нуля. Часть #1

Reading time5 min
Views5.1K

Это цикл статей где мы создаем базу данных с нуля. За образец автор взял sqlite, так как простая база данных, где вся база данных храниться в одном файле и меньше фич по сравнению с mysql.

Мы ответим на эти вопросы: В каком формате данные будут сохранены(в памяти или на диске), Когда они должны сохраняться на диск? Почему первичный ключ(primary key) является единственным на одну таблицу?, и так далее

В этой части мы создадим REPL, которое принимает команды, обрабатывает ошибки.

Читать далее
Total votes 13: ↑12.5 and ↓0.5+12
Comments9

Китайский процессор Loongson 3A6000 уже работает в мини-ПК. Возможности и характеристики модели Morefine M700S

Reading time3 min
Views8.5K

Китайцы за последние несколько лет сильно продвинулись в разработке чипов, включая современные процессоры. Один из них — Loongson 3A6000, по производительности он примерно равен Intel Core i3-10100F. Но речь сегодня не столько о чипе, сколько об устройстве, в котором он работает — мини-ПК Morefine M700S. Подробности под катом.
Читать дальше →
Total votes 38: ↑43.5 and ↓-5.5+49
Comments10

Вы должны перестать вручную писать Dockerfile'ы

Level of difficultyMedium
Reading time3 min
Views43K

Вы тоже устали вручную заполнять Dockerfile и docker-compose.yaml под каждый новый проект?

Я всегда задумывался, применяю ли я известные best practices, когда пишу конфиг для Docker, и не занесу ли я случайно какие-нибудь уязвимости, вручную заполняя конфиг-файлы.

Что же, теперь мне больше не придется беспокоиться об этом, благодаря добрым людям из Docker, которые недавно реализовали инструмент для этого - docker init .

Интересно, как экономить время и быстро генерировать конфиги, даже если вы не профи в Docker? Прошу под кат.

Читать далее
Total votes 69: ↑69.5 and ↓-0.5+70
Comments63

Odinbit, игра моей мечты и процесс её создания. С нуля до первой публичной версии

Level of difficultyEasy
Reading time7 min
Views12K

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

Читать далее
Total votes 27: ↑29.5 and ↓-2.5+32
Comments15

Xv6: учебная Unix-подобная ОС. Глава 9. Еще раз о параллельных потоках

Level of difficultyMedium
Reading time5 min
Views985

Трудно добиться быстродействия ядра, организовать параллельную работу потоков и при этом писать ясный код. Блокировки помогают параллельным потокам работать корректно, но иногда блокировки использовать трудно. Глава расскажет о хитрых сценариях с блокировками в xv6 и о сценариях без блокировок.

Читать далее
Total votes 3: ↑3.5 and ↓-0.5+4
Comments0

Сравнение MicroK8s c Managed Kubernetes Clusters, K3s и Minikube

Level of difficultyMedium
Reading time6 min
Views3.9K

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

Читать далее
Total votes 7: ↑6.5 and ↓0.5+6
Comments9

Manticore — альтернатива Эластику на C++ с 21-летней историей

Reading time53 min
Views24K

5 лет назад мы форкнули Manticore из open source версии некогда популярного open source поискового движка Sphinx 2.3.2. У нас было два пакетика травы, семьдесят пять ампул мескалина, три C++ разработчика, один саппорт-инженер, опытный пользователь, менеджер, мать пятерых детей, помогающая нам на полставки и гора багов, крэшей и технических долгов. И вот, по прошествии 5 лет и сотен новых пользователей мы готовы сказать, что Manticore можно использовать как альтернативу Elasticsearch и для полнотекстового поиска и для аналитики данных.

В этой статье хочется: вспомнить как всё начиналось и что было до SOLR и Elasticsearch, максимально объективно обрисовать текущую ситуацию, попытаться понять куда нам двигаться дальше.

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

Как ошибки проектирования при разработке на Symfony могут привести к перерасходу ресурсов и замедлению работы системы

Level of difficultyMedium
Reading time8 min
Views3.9K

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

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

Как быстро написать API на FastAPI с валидацией и базой данных

Reading time11 min
Views19K

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

В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments39

PostgreSQL: обеспечение уникальности записи с проверкой даты валидности

Reading time2 min
Views3.5K

Как бы вы решали такую задачу? Предположим, есть таблица с купонами, и у купонов есть некая дата устаревания valid_until. Вам надо обеспечить такое ограничение (constraint) на уровне БД, чтобы у одного человека мог быть только один действующий купон.


Т.е., таблица изначально выглядит так:


CREATE TABLE coupons (
    id  bigint primary key generated by default as identity,
    user_id bigint not null,
    created_at timestamp not null,
    valid_until timestamp not null
)
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments18

Популярные конфигурационные опции для работы с git

Reading time10 min
Views11K

Привет! Я всегда мечтала, чтобы в инструментах для работы с командной строкой заранее сообщалось, насколько популярны те или иные конфигурационные опции, предусмотренные в них, например:

o    «В принципе, никто этим не пользуется»

o    «Этой опцией пользуется 80% аудитории, стоит ознакомиться»

o    «У этой опции предусмотрено 6 возможных значений, но в реальной практике применяется всего 2 из них».

Так что я решила спросить пользователей Mastodon, какие у них любимые опции конфигурации git:

А какие опции git config вы больше всего любите выставлять? В настоящее время у меня в ~/.gitconfig установлены только git config push.autosetupremote true и git config init.defaultBranch main, вот интересуюсь, а что выставляют другие люди.

Как обычно, получила КУЧУ отличных откликов и так узнала множество очень популярных опций конфигурации git, о которых ранее никогда не слышала.

Далее перечислю их по порядку, при этом (очень примерно) попытаюсь начать с наиболее популярных.

Все описанные опции документированы на странице man git-config, а также на этой странице.

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

UUIDv7

Level of difficultyMedium
Reading time3 min
Views12K

Седьмая версия UUID (Universally Unique Identifier Version 7, UUID Version 7, UUIDv7) является модифицированной и стандартизованной версией ULID. Проект стандарта (далее стандарт) находится в ожидании окончательной проверки редактором. Но уже имеется большое количество реализаций UUIDv7, применяемых в действующих информационных системах. В интернете доступно большое количество информации по ключевому слову UUIDv7.

Читать далее
Total votes 19: ↑16 and ↓3+13
Comments28

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Level of difficultyMedium
Reading time18 min
Views21K

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

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

Рендеринг на сервере и HTMX — это будущее

Level of difficultyMedium
Reading time14 min
Views38K

Современная ситуация с разработкой веб-приложений


Сегодня пользователи ожидают от веб-приложений плавной работы без перезагрузок страниц. К сожалению, эти ожидания обычно реализуются в виде одностраничных приложений (single-page application, SPA), использующих библиотеки и фреймворки наподобие React и Angular. Эти фреймворки очень специализированы и с ними может быть трудно работать.

Новый подход заключается в том, чтобы вернуть возможность реализации этого UX в руки инженеров, разрабатывавших веб-сайты до возникновения безумия SPA, используя готовые наборы инструментов и знания. HTMX — лучший пример такого подхода из тех, что я видел.
Читать дальше →
Total votes 81: ↑72 and ↓9+63
Comments146

Найм и HR 2024 — чего нового

Reading time11 min
Views8.7K

Я инженер на сотню рублей,
И больше я не получу.
Мне двадцать пять,
И я до сих пор не знаю, чего хочу.

(На хабре же положено маркировать что автор текста — шпион и агент польский, японский, и иностранный? Или хабр не про политику и можно не маркировать?)

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

Для Лиги лени: несмотря на все заявления про срочный переход на Open[stack | nebula | Office ] – движения на рынке труда нет, рынок найма ждет направляющих пинков от государства.

Читать далее
Total votes 36: ↑26 and ↓10+16
Comments16

Про Vim — Neovim (Lua) PHP IDE

Level of difficultyEasy
Reading time6 min
Views4.2K

По большому счету единственной незакрытой темой в рубрике "Про Vim" осталась тема об альтернативе Conqueror of Completion для Neovim в Lua исполнении. Причиной перерыва между данной и предыдущей статьей в рубрике стало отсутствие необходимости в этой самой альтернативе. Ну или вернее причина может быть и была: во-первых - что бы удовлетворить любопытство, во-вторых - CoC действительно кажется громоздким и достаточно сложным внутри. Вариант на Lua мне бы дался легче, если бы захотелось что-то в нем подшаманить. Наверное.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments2

Почему OKR — это отстой

Level of difficultyEasy
Reading time7 min
Views23K

Наверно, многие из моих читателей как раз закончили квартальный (и/или годовой) цикл планирования, так что сейчас будет подходящее время напомнить, что процесс, которым мы пользуемся как стандартом в технологической отрасли, на самом деле — полная чушь. Разумеется, я имею в виду методологию Objectives and Key Results. Давайте же поговорим об OKR, что это такое и откуда они взялись, а ещё о том, почему это ужасная идея.

Читать далее
Total votes 59: ↑53 and ↓6+47
Comments26

Как выдавать бесплатные SSL сертификаты с помощью certbot, Nginx и Docker

Level of difficultyMedium
Reading time5 min
Views16K

Всем привет! Одна из моих рутинных задач - это подъем новых проектов и микросервисов в облаках. Для этого практически всегда нужны домены и поддомены с наличием SSL сертификата. У меня выработался подход, с помощью которого я автоматизировал процесс выдачи сертификатов с помощью certbot. О чём и хочу рассказать.

Читать далее
Total votes 18: ↑15 and ↓3+12
Comments27

MERGE и её улучшение производительности с помощью work_mem

Reading time5 min
Views4.4K

С выходом PostgreSQL 15 мы застали появление долгожданной команды MERGE, которая позволяет реализовывать эффективные способы синхронизации обновлений.

Суть MERGE заключается в ее универсальности: она позволяет объединить операции INSERT, UPDATE и DELETE в одном запросе, автоматически выбирая нужное действие в зависимости от того, существует ли соответствующая запись в целевой таблице.

Вместо нескольких отдельных запросов INSERT, UPDATE, DELETE MERGE сокращает накладные расходы на сетевой трафик и уменьшает количество обращений к диску. MERGE облегчает реализацию шаблонов SCD и других сложных сценариев управления данными.

MERGE в PostgreSQL работает с соблюдением строгих стандартов SQL, обеспечивая совместимость и переносимость кода. Также PostgreSQL обрабатывает конфликты на уровне строк, позволяя тонко настраивать логику обработки данных с использованием условий WHEN MATCHED и WHEN NOT MATCHED.

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

Читать далее
Total votes 22: ↑20 and ↓2+18
Comments10
1
23 ...

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity