Как стать автором
Обновить
500.04
Рейтинг

Программирование *

Искусство создания компьютерных программ

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

W-функция Ламберта и ее приложения

Python *Алгоритмы *Математика *Программирование *
Из песочницы

Математический анализ знает множество замечательных функций со своими удивительными свойствами и применениями. Сегодня я бы хотел рассказать читателю об одной из таких - W-функции Ламберта.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 209
Комментарии 0

Новости

Как ускорить работу на macos в Docker окружении с помощью Mutagen

Разработка веб-сайтов *PHP *Программирование *
Из песочницы

Если вы работали на macos в docker окружении, то наверняка сталкивались с проблемой в производительности, например, при работе над php проектом, операции с файловой системой (обновление пакетов composer, ребилд контейнеров symfony, etc.) занимают просто неадекватное количество времени. Об особенностях работы docker'а на macos написано уже множество статей, а также workaround'ов как заставить его работать быстрее. В этой небольшой статье покажу как в решении этой проблемы Mutagen помог мне с php проектом и быть может поможет вам.

Читать далее
Рейтинг 0
Просмотры 741
Комментарии 5

Спроси меня про Go. Отвечаем на распространённые вопросы

Блог компании Яндекс Практикум Программирование *Go *Учебный процесс в IT Карьера в IT-индустрии

В начале марта Яндекс Практикум провёл вебинар «Спроси меня про Go» в формате открытого микрофона: слушатели могли задать любые вопросы о языке Go. Экспертами выступили техлиды курса «Go-разработчик»: Георгий Зуйков — ведущий разработчик в Едадиле и Александр Демиденко — старший разработчик в Яндекс Облаке, в команде Cloudgate.

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

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

Три подхода к ускорению обучения XGBoost-моделей

Блог компании Wunder Fund Python *Программирование *Машинное обучение *
Перевод

Фреймворк XGBoost (Extreme Gradient Boosting, экстремальный градиентный бустинг) — это эффективная опенсорсная реализация алгоритма градиентного бустинга. Этот фреймворк отличается высокой скоростью работы, а модели, построенные на его основе, обладают хорошей производительностью. Поэтому он пользуется популярностью при решении задач классификации и регрессии с использованием табличных наборов данных. Но процесс обучения XGBoost-моделей может занять много времени.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 626
Комментарии 1

Жил на свете добрый Jooq – как подружиться с хранимками в Oracle

Блог компании Sportmaster Lab Oracle *Программирование *Java *Администрирование баз данных *
Tutorial

Приветствую!

Меня зовут Артём, я back-end разработчик на продукте WFM (Workforce Management). В компании наш продукт помогает в развитии процессов розничной сети, одна из основных наших задач — это построение рабочего графика для персонала розничного магазина.

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

Почти в каждом продукте, скорее всего, есть база данных. В нашем случае это РСУБД Oracle, большая часть логики содержится внутри в виде хранимых процедур. Удобство взаимодействия с базой всегда было достаточно важной и щепетильной задачей для любого бэкендера, особенно, если речь идет о взаимодействии с хранимками, которые выдают и принимают "сложные" plsql-типы. Конвертация plsql-типа в java-тип — задачка не самая приятная, мягко говоря, и удобных инструментов в этом деле не так уж много.

Давайте кратко вспомним некоторые популярные подходы к взаимодействию с РСУБД, какими достоинствами и недостатками они обладают.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 993
Комментарии 0

Сегментация экземпляров с помощью Mask R-CNN

Python *Программирование *Машинное обучение *

Задача сегментации изображений может решаться в нескольких постановках. Самая распространённая - semantic segmentation с одним классом и фоном, необходимо просто отделить объекты от фона, не различая их между собой. Но часто просто отделения от фона недостаточно, необходимо отделять отдельные образцы друг от друга, например, чтобы оценить размер или расположение каждого отдельного объекта. Как это можно сделать?

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

Пятьдесят лет на стезе программирования. Отступление. Встреча с прошлым

Программирование *Карьера в IT-индустрии Читальный зал История IT Биографии гиков
imageЗаканчивая третью часть воспоминаний «Пятьдесят лет на стезе программирования», я и не предполагал, что снова буду рассказывать о военном городке под названием «Вентспилс-8», где я фактически и стал настоящим программистом.
Но человек предполагает, а Бог располагает.
Первый звонок прозвучал 31 октября 2021 года, сразу после опубликования на Хабре моей статьи «Пятьдесят лет на стезе программирования. Часть III. Становление. На страже космических рубежей и путь в большую науку»), неожиданно из Риги пришло послание:
Добрый день Владимир Николаевич!

Позвольте представиться, меня зовут Антон, работаю я в студии во многих ипостасиях (сценаристом, монтажером, и др.), в городе Рига.

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

Информации о Норке и Вентспилсе-8 очень мало, для получения информации мы записали обращение для группы (в VK), Ваш покорный слуга дебютировал как ведущий.
Могу ли я обращаться с вопросами?

P.S. вчера были на Норке и в Вентспилсе-8, городок представляет удручающее зрелище.
На плане №36, трансформаторная.

Буду ждать ответа, удачи!
Читать дальше →
Всего голосов 36: ↑32 и ↓4 +28
Просмотры 6.1K
Комментарии 47

Сказ о том, как мы Python-микросервисы для облака шаблонизировали

Блог компании QIWI Блог компании Конференции Олега Бунина (Онтико) Python *Программирование *Микросервисы *

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

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

Меня зовут Олег Чуркин. Я больше 10 лет занимаюсь разработкой на Python и сейчас руковожу разработкой нового процессинга платежей в QIWI. Расскажу, как мы реализовали boilerplate-шаблон для сервисов — на примере небольшого стартапа внутри нашей большой компании.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 3.5K
Комментарии 3

Как мы создавали движок на Unity (часть 0)

Программирование *Анализ и проектирование систем *Разработка игр *Unity *Игры и игровые консоли
Из песочницы

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 3.5K
Комментарии 5

Как изменилась стандартная библиотека Python за последние годы

Python *Программирование *

Python 3.8+


Когда выходит очередная версия Python, все внимание достается новым фичам языка: моржовому оператору, слиянию словарей, паттерн-матчингу. Еще много пишут об изменениях в асинхронной работе (модуль asyncio) и типизации (модуль typing) — эти модули на виду и бурно развиваются.


Остальным модулям стандартной библиотеки достается незаслуженно мало внимания. Хочу это исправить и рассказать, что интересного появилось в версиях 3.8–3.10.

Читать дальше →
Всего голосов 71: ↑69 и ↓2 +67
Просмотры 10K
Комментарии 9

Используем клиентский процессор по максимуму. Часть 1: Rust + WebAssembly

Блог компании RUVDS.com Высокая производительность *Программирование *Rust *WebAssembly *
Tutorial

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

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

Прирост производительности при использовании всех техник оптимизации по сравнению с реализацией на чистом JS может составлять ~1000%: от 8–9 до 100–110 фпс. Это можно проверить на интерактивном онлайн-демо, позволяющем также поиграться с числом потоков, способом вычислений и формой фрактала.
Читать дальше →
Всего голосов 49: ↑49 и ↓0 +49
Просмотры 4.2K
Комментарии 4

Парадоксальный рост популярности Python в научных вычислениях

Блог компании Издательский дом «Питер» Python *Программирование *Алгоритмы *Fortran *
Перевод

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

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 5.3K
Комментарии 5

Прыжок горбатой лошади или как мы обновляем наши системы

Блог компании Lamoda Программирование *Apache *Kotlin *

Привет! Меня зовут Евгений Сальников и я тимлид одной из команд Outbound, которая входит в департамент Business Process Automation в Lamoda. В нашем направлении мы отвечаем за сервисы доставки.

Эта статья написана по мотивам реальной задачи по обновлению нашей большой системы, а именно — переход с очень старой версии Apache Camel на актуальную. Я не расскажу чего-то особо нового, но если у вас уже есть Apache Camel и вам «только спросить», как с ним управляться — милости просим.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 1K
Комментарии 0

Видео докладов потока Engineering. Конференция BeeTech 2.0

Блог компании Beeline Казахстан Программирование *Управление разработкой *Конференции Микросервисы *

Привет! Создали плейлисты с выступлениями на конференции BeeTech 2.0 — ежегодной бесплатной конференции, которую мы проводим для передачи знаний и развития IT-сообщества Казахстана.

В программе было 4 потока, поэтому мы сделаем 4 публикации с роликами, чтобы они попали в профильные хабы. Самые интересные выступления расшифруем и напишем по ним статьи с дополнениями от автора доклада.

Вот ссылка на весь поток Engineering, внутри статьи ссылки на каждое видео с его описанием + презентация спикера. 

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 214
Комментарии 0

Чтобы найти хороших разработчиков, заставьте их читать чужой код

Программирование *Управление персоналом *Карьера в IT-индустрии
Перевод
При найме разработчиков можно смотреть на различные навыки, но за годы работы я выяснил, что самое важное — простая способность кодить, и этот навык сильно опережает по важности все остальные. Я могу быстро обучить человека, чтобы он получил знания в определённой области, но никогда не видел, чтобы простая способность кодить исходила из чего-то иного, кроме как из личного стремления к упорной и глубокой практике. Благодаря этому я выяснил, что одни способы лучше подходят для выявления талантов, чем другие.
Читать дальше →
Всего голосов 72: ↑72 и ↓0 +72
Просмотры 20K
Комментарии 57

Механизмы сериализации в Java и Kotlin

Блог компании Usetech Программирование *Java *Kotlin *

В этой статье Илья Гершман, ведущий разработчик Юзтех, рассматривает понятия сериализации и десериализации в сравнении между двумя языками программирования — Java и Kotlin.

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

Пишем приложение на JetBrains Exposed

Программирование *Kotlin *

При всём разнообразии фреймворков для работы с базой данной, стоящих и постоянно развивающихся не так уж и много. И если про Hibernate знают все, а про JOOQ знают очень многие, то слабая популярность Exposed скорее связана с его ориентацией на Kotlin. Если Вы только-только пришли в Kotlin из Java, Вам архитектурные подходы, заложенные в Exposed (переполнение лямбдами и функциями-замыканиями, к примеру) могут показаться дичью, но пугаться не стоит: чем дальше Вы будете осваивать Kotlin, тем привычнее для Вас будут конструкции Exposed.

Какое-то время назад здесь уже была статья про Exposed, от компании Otus, но с тех пор прошло больше года и многие практики пользования фреймворком нужно освежить - даже пока я писал эту статью, многое поменялось!

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

Эффективная генерация сортируемых GUID для первичных ключей БД на клиенте

Программирование *.NET *Microsoft SQL Server *C# *Хранилища данных *

Использовать Guid.NewGuid() в качестве первичного ключа в базе данных — плохая с точки зрения производительности идея. Это связано с тем, что в SQL Server, MySQL и некоторых других БД для первичных ключей создаются кластерные индексы, которые определяют, как строки будут храниться на диске. GUID — это по сути случайное значение, поэтому новая строка может попасть в начало, середину или конец таблицы. Серверу БД в этом случае придётся перемещать другие строки, что приведёт к фрагментации данных, а их извлечение может занять больше времени, если вам нужно извлечь несколько добавленных последовательно записей (например, когда вы добавляете набор связанных сущностей, которые потом будут извлекаться вместе — БД понадобится прочитать данные из разрозненных страниц вместо последовательного чтения набора данных).

Поэтому, чаще всего, лучше пользоваться сгенерированными БД первичными ключами. В SQL Server, например, есть функция NEWSEQUENTIALID(), которая генерирует последовательные GUIDы. Зачем может понадобиться генерировать ключи именно на клиенте и как это правильно сделать?

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 5.1K
Комментарии 34

Как я случайно удалил 7 терабайт видео перед запуском в продакшн

Блог компании SkillFactory Python *Программирование *IT-инфраструктура *Интерфейсы *
Перевод

К старту курса по автоматизированному тестированию на Python делимся материалом о том, насколько вредным может стать привыкание к библиотекам и насколько полезными — инструменты автоматизированного тестирования. За подробностями приглашаем под кат.

Читать далее
Всего голосов 11: ↑6 и ↓5 +1
Просмотры 10K
Комментарии 16

Исчезающие тени логистических облаков

Python *Программирование *Геоинформационные сервисы *Читальный зал

«Умный в гору не пойдёт, умный гору обойдёт». Примерно так рассуждали DS-специалисты при решении задачи, требующей вычисления 10+ млн расстояний между парами точек по их географическим координатам.

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

Вклад авторов