Уже 25 апреля будет опубликован финальный релиз дистрибутива Ubuntu 24.04 «Noble Numbat». Фактически он готов и сейчас, единственное, что осталось разработчикам — тщательно протестировать новинку на наличие ошибок, а если они есть, то исправить их. Новая версия относится к категории выпусков с длительным сроком поддержки, обновления для неё будут формироваться в течение 12 лет. Подробности — под катом.
Web-разработчик
Создаем свой аналог sqlite c нуля. Часть #1
Это цикл статей где мы создаем базу данных с нуля. За образец автор взял sqlite, так как простая база данных, где вся база данных храниться в одном файле и меньше фич по сравнению с mysql.
Мы ответим на эти вопросы: В каком формате данные будут сохранены(в памяти или на диске), Когда они должны сохраняться на диск? Почему первичный ключ(primary key) является единственным на одну таблицу?, и так далее
В этой части мы создадим REPL, которое принимает команды, обрабатывает ошибки.
Китайский процессор Loongson 3A6000 уже работает в мини-ПК. Возможности и характеристики модели Morefine M700S
Китайцы за последние несколько лет сильно продвинулись в разработке чипов, включая современные процессоры. Один из них — Loongson 3A6000, по производительности он примерно равен Intel Core i3-10100F. Но речь сегодня не столько о чипе, сколько об устройстве, в котором он работает — мини-ПК Morefine M700S. Подробности под катом.
Вы должны перестать вручную писать Dockerfile'ы
Вы тоже устали вручную заполнять Dockerfile
и docker-compose.yaml
под каждый новый проект?
Я всегда задумывался, применяю ли я известные best practices, когда пишу конфиг для Docker, и не занесу ли я случайно какие-нибудь уязвимости, вручную заполняя конфиг-файлы.
Что же, теперь мне больше не придется беспокоиться об этом, благодаря добрым людям из Docker, которые недавно реализовали инструмент для этого - docker init
.
Интересно, как экономить время и быстро генерировать конфиги, даже если вы не профи в Docker? Прошу под кат.
Odinbit, игра моей мечты и процесс её создания. С нуля до первой публичной версии
Всем привет, в один прекрасный момент мою голову посетила задумка для игры: я хочу сделать свою игру, с элементами выживания и незамысловатой графикой. Хоть я и не имел опыта в gamedev, но все равно решил попробовать, почему бы и нет
Xv6: учебная Unix-подобная ОС. Глава 9. Еще раз о параллельных потоках
Трудно добиться быстродействия ядра, организовать параллельную работу потоков и при этом писать ясный код. Блокировки помогают параллельным потокам работать корректно, но иногда блокировки использовать трудно. Глава расскажет о хитрых сценариях с блокировками в xv6 и о сценариях без блокировок.
Сравнение MicroK8s c Managed Kubernetes Clusters, K3s и Minikube
Microk8s - это легкий, простой в установке дистрибутив Kubernetes, обеспечивающий полнофункциональный кластер на одной виртуальной машине. В последние годы он завоевал популярность благодаря своей простоте и удобству использования, особенно в сравнении с другими подобными вариантами Kubernetes, такими как k3s и minikube. В этой статье мы подробно рассмотрим, что такое Microk8s, чем он отличается от управляемых кластеров Kubernetes и какие преимущества он имеет по сравнению с другими дистрибутивами Kubernetes. Мы также поделимся собственным опытом использования Microk8s в различных проектах, подчеркнув преимущества и пользу, которые он дает. И наконец, мы покажем, как настроить его на вашей виртуальной машине.
Manticore — альтернатива Эластику на C++ с 21-летней историей
5 лет назад мы форкнули Manticore из open source версии некогда популярного open source поискового движка Sphinx 2.3.2. У нас было два пакетика травы, семьдесят пять ампул мескалина, три C++ разработчика, один саппорт-инженер, опытный пользователь, менеджер, мать пятерых детей, помогающая нам на полставки и гора багов, крэшей и технических долгов. И вот, по прошествии 5 лет и сотен новых пользователей мы готовы сказать, что Manticore можно использовать как альтернативу Elasticsearch и для полнотекстового поиска и для аналитики данных.
В этой статье хочется: вспомнить как всё начиналось и что было до SOLR и Elasticsearch, максимально объективно обрисовать текущую ситуацию, попытаться понять куда нам двигаться дальше.
Как ошибки проектирования при разработке на Symfony могут привести к перерасходу ресурсов и замедлению работы системы
Сегодня хочу рассказать о том, какие ошибки можно допустить на начальном этапе создания e-commerce проекта в проектировании модели данных и в разработке веб-приложения. И, самое главное, как эти ошибки исправить: снизить потребление памяти в 1000 раз и кратно уменьшить нагрузку на дисковую систему. Кейс основан на реальных событиях, однако без упоминания компаний в связи с политикой конфиденциальности и профессиональной этикой.
Как быстро написать API на FastAPI с валидацией и базой данных
Все веб-запросы обрабатываются на сервере — это хорошо всем известно. Но бывает, когда нужно написать специальный программный интерфейс, так называемый API, через который пользователи смогут централизованно получать данные и вносить изменения, например, в свой профиль.
В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
PostgreSQL: обеспечение уникальности записи с проверкой даты валидности
Как бы вы решали такую задачу? Предположим, есть таблица с купонами, и у купонов есть некая дата устаревания 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
)
Популярные конфигурационные опции для работы с git
Привет! Я всегда мечтала, чтобы в инструментах для работы с командной строкой заранее сообщалось, насколько популярны те или иные конфигурационные опции, предусмотренные в них, например:
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, а также на этой странице.
UUIDv7
Седьмая версия UUID (Universally Unique Identifier Version 7, UUID Version 7, UUIDv7) является модифицированной и стандартизованной версией ULID. Проект стандарта (далее стандарт) находится в ожидании окончательной проверки редактором. Но уже имеется большое количество реализаций UUIDv7, применяемых в действующих информационных системах. В интернете доступно большое количество информации по ключевому слову UUIDv7.
Как я пишу HTTP-сервисы спустя 13 лет работы с Go
Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.
Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.
(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)
В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go
Рендеринг на сервере и HTMX — это будущее
Современная ситуация с разработкой веб-приложений
Сегодня пользователи ожидают от веб-приложений плавной работы без перезагрузок страниц. К сожалению, эти ожидания обычно реализуются в виде одностраничных приложений (single-page application, SPA), использующих библиотеки и фреймворки наподобие React и Angular. Эти фреймворки очень специализированы и с ними может быть трудно работать.
Новый подход заключается в том, чтобы вернуть возможность реализации этого UX в руки инженеров, разрабатывавших веб-сайты до возникновения безумия SPA, используя готовые наборы инструментов и знания. HTMX — лучший пример такого подхода из тех, что я видел.
Найм и HR 2024 — чего нового
Я инженер на сотню рублей,
И больше я не получу.
Мне двадцать пять,
И я до сих пор не знаю, чего хочу.
(На хабре же положено маркировать что автор текста — шпион и агент польский, японский, и иностранный? Или хабр не про политику и можно не маркировать?)
Мне было скучно, у нас в отделе наконец-то пауза – в Китае новый год и остановка логистики, можно заняться выражением неудовольствия и подушнить, что раньше было лучше. Поэтому здравствуйте, меня зовут Григорий и я алко раз в год хожу с друзьями в баню пишу про рынок труда как я его вижу
Для Лиги лени: несмотря на все заявления про срочный переход на Open[stack | nebula | Office ] – движения на рынке труда нет, рынок найма ждет направляющих пинков от государства.
Про Vim — Neovim (Lua) PHP IDE
По большому счету единственной незакрытой темой в рубрике "Про Vim" осталась тема об альтернативе Conqueror of Completion для Neovim в Lua исполнении. Причиной перерыва между данной и предыдущей статьей в рубрике стало отсутствие необходимости в этой самой альтернативе. Ну или вернее причина может быть и была: во-первых - что бы удовлетворить любопытство, во-вторых - CoC действительно кажется громоздким и достаточно сложным внутри. Вариант на Lua мне бы дался легче, если бы захотелось что-то в нем подшаманить. Наверное.
Почему OKR — это отстой
Наверно, многие из моих читателей как раз закончили квартальный (и/или годовой) цикл планирования, так что сейчас будет подходящее время напомнить, что процесс, которым мы пользуемся как стандартом в технологической отрасли, на самом деле — полная чушь. Разумеется, я имею в виду методологию Objectives and Key Results. Давайте же поговорим об OKR, что это такое и откуда они взялись, а ещё о том, почему это ужасная идея.
Как выдавать бесплатные SSL сертификаты с помощью certbot, Nginx и Docker
Всем привет! Одна из моих рутинных задач - это подъем новых проектов и микросервисов в облаках. Для этого практически всегда нужны домены и поддомены с наличием SSL сертификата. У меня выработался подход, с помощью которого я автоматизировал процесс выдачи сертификатов с помощью certbot. О чём и хочу рассказать.
MERGE и её улучшение производительности с помощью work_mem
С выходом 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
расширяет этот функционал.
Information
- Rating
- Does not participate
- Location
- Новосибирск, Новосибирская обл., Россия
- Registered
- Activity