Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Пора внедрять ORM в вашу систему

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

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

Сегодня я буду навязывать своё субъективное, однобокое, единственно правильное мнение, зачем вам ORM.

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

Новости

Бэкдор в основной версии xz/liblzma, ведущий к компрометации SSH-сервера

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

В последние недели я, работая в системах с установленным дистрибутивом Debian Sid, столкнулся с несколькими странностями, связанными с liblzma (это — часть пакета xz). При входе в систему с использованием SSH очень сильно нагружался процессор, Valgrind выдавал ошибки. И вот я, наконец, нашёл причину всего этого: в основной репозиторий xz и в tar‑архивы xz был встроен бэкдор.

Сначала я подумал, что это — взлом Debian‑пакета, но оказалось, что речь идёт именно о библиотеке.

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

Почему ни в коем случае НЕ надо становиться DevOps инженером! Предостережения начинающим и совет что же делать если «НЕ»

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

Кто я такой, чтобы делиться своими суждениями и утверждениями? Мне почти 47, в сфере IT профессионально работаю около 25 лет, начав самообучение со школы, с папиного i386 с сопроцессором и модемного dial-up на зюхелях (ну... все же помнят.. да? ну да же? :-) Естественно, среди моего опыта и высшее образование, и технические сертификаты, и работа во множестве компаний самого разного масштаба и разных стран. Сейчас я обладаю как негативным, так и позитивным опытом в различных аспектах IT технологий, попробовав себя как в софте, так и в железе.

Этот опыт заставляет меня поделиться информацией из той самой негативной составляющей с целью предотвращения его повторения читателями. И да, тут будет много злобы и яда к тому дерьму тем технологиям, с которым приходится работать каждый день DevOps и даже системным администраторам. Однако статья наполнена реализмом, а вовсе не пессимизмом! :-D В ней будет раскрыта вся голая правда про лично Ваше будущее как DevOps инженера!

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

Инструменты AutoML в 2024

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

Определимся с терминологией. Можно найти c десяток формулировок «AutoML- это…» с разной степенью детализации. Но все они сведутся к словам «AutoML — автоматизирует и упрощает работу с данными». И вот здесь как раз и начинаются сложности. Границы определения AutoML размыты. Есть фреймворки работающие на «3 строчках» кода, есть с платформы с GUI, есть библиотеки для профессионалов и новичков. Попробуем разобраться..

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

Истории

Почему я отказался от разработки игр на Rust, часть 1

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

Предисловие: этот пост представляет собой очень длинный перечень мыслей и проблем, возникавших у меня за годы работы; также в нём рассматриваются некоторые из аргументов, которые мне часто говорили. В посте выражено моё мнение, сформировавшееся у меня в процессе разработки игр на Rust в течение многих тысяч часов на протяжении многих лет и после множества завершённых игр. Это не хвастовство и не показатель успеха, я просто хочу сказать, что вложил достаточно много усилий в Rust; здесь не получится сказать «когда наберёшься опыта, тебе всё станет понятно».

Пост не будет ни научной оценкой, ни A/B-исследованием. Это моё личное мнение после разработки игр на Rust маленькой инди-командой (два человека) в попытках заработать достаточно денег, чтобы финансировать процесс. Мы не одни из тех разработчиков с бесконечными финансами от инвестора и многолетним запасом времени. Если вы находитесь в этой категории и получаете удовольствие от многолетней разработки систем, то всё написанное ниже к вам не относится. Я рассматриваю всё с такой точки зрения: «Мне хочется создать игру максимум за 3-12 месяцев, чтобы люди могли сыграть в неё, а я — немного заработать». Статья не написана с точки зрения «Я хочу изучить Rust, а разработка игр — это весело», хотя это и вполне нормальная цель; просто она никак не согласуется с тем, чего хотим мы — заниматься разработкой игр коммерчески успешным и самодостаточным образом.

Мы выпустили несколько игр на Rust, Godot, Unity и Unreal Engine, и многие люди сыграли в них в Steam. Мы создали с нуля собственный игровой 2D-движок с простым рендерером, а также в течение нескольких лет использовали Bevy и Macroquad во многих проектах, некоторые из которых были очень нетривиальными. Кроме того, я бэкенд-разработчик на полную ставку и пишу код на Rust. Этот пост — не какое-то поверхностное мнение после изучения нескольких туториалов или разработки небольшой игры для геймджема. За три с лишним года мы написали сильно больше ста тысяч строк кода на Rust.

Задача этого поста — развеять популярные и часто повторяемые аргументы. Но это всё-таки субъективное мнение; по большей части я написал пост, чтобы не объяснять снова и снова одно и то же. Пусть это будет справочный материал о том, почему мы, скорее всего, откажемся от Rust как от инструмента для разработки игр. Мы ни в коем случае не планируем прекращать создавать игры, просто не будем делать это на Rust.

Читать далее
Всего голосов 16: ↑19.5 и ↓-3.5+23
Комментарии13

Кратко про библиотеку Axum в Rust

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

Привет, Хабр!

Axum была создана командой Tokio, которая уже получила свой +rep за создание асинхронной платформы Tokio для Rust.

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

Основная фича Axum заключается в его возможности обрабатывать тысячи запросов без значительных затрат на ресурсы.

Читать далее
Всего голосов 6: ↑6.5 и ↓-0.5+7
Комментарии3

Новые коллекции в Android

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

В 2018 году в androidx появился новый пакет collection, который содержал несколько специфичных структур данных, переписанных на Kotlin, таких как LongSparseArray, SimpleArrayMap и SparseArrayCompat.

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

С тех пор прошло более 6 лет и в январе текущего года был выпущен новый релиз с мощной заменой HashMap, о которой я расскажу чуть позже...

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

Кажется, дождь собирается. Пишем Vue-приложение для прогноза погоды

Время на прочтение9 мин
Количество просмотров925

В статье рассмотрим, как сделать простое приложение погоды без дизайн-макета‎. Поработаем с HTML, CSS, JavaScript, Vue, Vite, подключением API, а также развернем проект на облачном сервере. Подробности под катом!
Читать дальше →
Всего голосов 15: ↑16.5 и ↓-1.5+18
Комментарии1

Построение логических элементов на транзисторах

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

Ещё очень давно, как только я начал интересоваться цифровой электроникой, я изучал логические элементы и сразу хотел что-то собрать на их основе, но самих микросхем логики у меня изначально не было, поэтому я решил собрать их самому на основе биполярных транзисторов NPN типа и резисторах.

Такая логика называется РТЛ (резисторно-транзисторная логика).

Велосипед я не изобрёл, просто собрал  кучу разного материала, плюс сам экспериментировал. Схемы примера собирал в программе Multisim и тестировал на настоящих транзисторах PN2222A. И вот что у меня вышло.

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

Интеграция с ЕСИА на Node.js без CryptoPro [2024]

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

Приветствую! Свою первую статью решил посвятить технической стороне интеграции с ЕСИА (Госуслугами). Считаю данный материал уникальным, поскольку пока разбирался в этой задаче не увидел ни одной статьи которая описывает интеграцию с ЕСИА без использования платной CryptoPro. Надеюсь данный материал поможет коллегам, столкнувшимся с этой задачей.

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

Перед началом! Обязательно проверьте подходит ли ваше юр лицо под критерии для подключения к ЕСИА. Это обязательное условие. Без этого Минцифры не одобрят заявку на интеграцию. Ваша компания должна иметь одну из следующих лицензий:

Читать далее
Всего голосов 6: ↑7 и ↓-1+8
Комментарии0

Фундамент AI: обратное распространение ошибки простыми словами

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

Что если бы я вам сказал, что без понимания того, что такое backpropagation (обратное распространение ошибки), вы никогда не сможете использовать AI эффективно? Тогда я бы, конечно, соврал. Знать такие детали не требуется для использования AI в прикладных задачах, но, тем не менее, это базовый фундамент ML/AI, и понимать, как все устроено, полезно, ну или как минимум, интересно.

Читать далее
Всего голосов 10: ↑12.5 и ↓-2.5+15
Комментарии8

Как связать кредиторов и заемщиков с помощью смарт-контрактов? Обзор кредитного протокола Compound V2

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

В статье мы рассмотрим, как организовано кредитование в DeFi: что такое кредитные протоколы и как работает один из самых популярных протоколов  – Compound. Вместе со мной вы пройдете весь путь сквозь кодовую базу протокола, начиная от предоставления ликвидности, займов и заканчивая ликвидациями.

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

Коробки — российский аналог Docker

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

Хочу представить вам новую технологию, которую создали русские программисты — «Коробка». Основную роль в её разработке сыграл Александр Коробкин и его команда. Для нас она интересна тем, что в некотором роде является российской альтернативой Docker. В ней они объединили доступные инновационные возможности с национальными спецификами.

Читать далее
Всего голосов 42: ↑4.5 и ↓37.5-33
Комментарии33

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург

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

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

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

Однако, если скопировать все записи из календаря в гугл таблицу, то их можно легко отформатировать и даже провести аналитику, если это надо. А данные календаря останутся неизменными.

Самый простой способ перенести все записи из выбранного гугл календаря в таблицу - воспользоваться Google Apps Script.

Гугл календарь в таблицу
Всего голосов 3: ↑3.5 и ↓-0.5+4
Комментарии0

Обработка ошибок в web apps не должна быть такой сложной

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

В процессе работы с Go я столкнулся с ещё одной проблемой — обработкой ошибок в хендлерах. Как можно сделать этот процесс удобным и эффективным для 150+ обработчиков? Как обеспечить консистентность и поддержку при обработке ошибок?

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

Собственно, статья, приятного прочтения.

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

Как запустить WebRTC на сервере, или как я пилю вебкам

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

Всем привет!

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

ДИСКЛЕЙМЕР: это не бескорыстный акт передачи знаний с моей стороны. Я пытаюсь найти инвестиции для своего проекта и создал чат в тг, где буду постить обновления и какие-то мысли касательно его запуска. Так что если интересно, то подписывайтесь, а еще можете поделиться ссылкой с теми, у кого есть лишние бабки =)

Предыстория

Значит решил я создать сервис для одиноких мужчин, где они могут пообщаться с прекрасными дамами, aka вебкам. Соответственно встал вопрос, как организовать видеосвязь в браузере. Обычно для этого используется WebRTC, эта технология позволяет установить p2p соединение между браузерами для передачи видео, звука и прочих данных в реальном времени с минимальной задержкой. Однако была одна проблема: что делать, если приходит жалоба от пользователя, что ему показали не то (или не показали), что он хотел. Поскольку это p2p соединение напрямую между пользователями, у меня как у владельца сервиса нет возможности провалидировать жалобу. Первое, что пришло в голову это вместо WebRTC использовать MediaRecorder API для записи видео небольшими кусочками и отправки их по вебсокету через сервер, попутно сохраняя. Я набросал прототип и столкнулся с тем, что если получатель пропустил первый пакет (там где есть метаданные), то видео у него не воспроизводится. Пришлось поиском определенного набора байт в первом пакете вычленять эти самые метаданные и сохранять их отдельно для отправки первым сообщением только что подключившемуся получателю, и это даже сработало. Вторая проблема этого решения - это задержка в пару секунд, и это только в локальной сети, что приемлемо для односторонней связи, но для двусторонней уже сомнительно. И третья проблема это то что видео у получателя со временем все больше и больше отстает, и нужно регулярно проматывать видео ближе к концу. Костыльность такого решения меня не устраивала, и я решил использовать WebRTC для связи собеседников и параллельно использовать MediaRecorder для отправки записи от модели к серверу. Некоторое время оно так работало, пока я пилил другие фичи, но неэлегантность этого решения все еще не давала мне покоя, т. к. оно повышает требования к интернет соединению модели.

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

Цифровой прорыв: Окружной хакатон ЦФО. Неожиданная победа, как оно было?

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

Пролетели тяжелые выходные, а за ними последовало чудо.

Всем привет👋

Выхожу на связь с чудо новостями - у меня случился первый масштабный хакатон! Настолько масштабный, что за первое место давали даже не кружки (и не рюкзаки!!!).

https://hacks-ai.ru/ - окружной хакатон ЦФО (Центральный федеральный округ, на всякий) от организации "Россия - страна возможностей". Это региональный хакатон, собравший умные головы Москвы, Санкт Петербурга и тех, кто, как и мы, решили попасть на соревнование пораньше :) Призовой фонд - 600 тысяч рублей💸

Думаю, теперь точно понятно, что мероприятие очень серьезное😶

Не получится у меня сдержаться до конца статьи - МЫ ВЫИГРАЛИ!!!! Наша команда ПИН-КОД победила в кейсе "Анализ качества преподавания"

Описание кейса, над которым работали:

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

Для меня это нечто невероятное🔥

1 место по целому региону, 1 место среди студентов ИТМО, Политеха (некоторые уже магистранты) и других крутых вузов.

Как это было:

Тяжело и нервно, поскольку заранее к хакатону мы не готовились:

* дизайн рисовала в процессе (потом его перерисовывали, что тоже создавало некоторый дискомфорт)

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

Вы думаете рисовать линии это просто?

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

Наш мир удивителен, простые на первый взгляд вещи оказываются очень сложными внутри. Так что же скрывает в себе обычная линия? Для ответа на вопрос, прошу под кат.

Читать далее
Всего голосов 39: ↑41.5 и ↓-2.5+44
Комментарии23

Подбор гиперпараметров RAG-системы с помощью Optuna

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

Сказ о том, как с помощью Opuna’ы сделать вашу RAG-систему чуточку (а может и не чуточку) эффективнее :)

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

Smart LED: Адресная LED подсветка с управлением через Алису

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

В этой статье мы рассмотрим процесс создания умной светодиодной системы под названием Smart LED. Этот проект основан на микроконтроллере ESP8266 и адресной светодиодной ленте.

Система Smart LED позволит вам не только наслаждаться красивой подсветкой, но и синхронизировать её с музыкой. Вы также сможете управлять системой с помощью голосового ассистента Алиса.

Проект на GitHub

Читать далее
Всего голосов 6: ↑7 и ↓-1+8
Комментарии4
1
23 ...