Как стать автором
Обновить
-11
0.4
Антон @Acuna

Разработка ПО

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

Простые коммуникации в Java-приложении

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

Привет, 

Как вы уже, наверное, знаете, Jmix — это такая платформа для разработки корпоративных приложений, построенная на основе фреймворков Spring, Vaadin и других классных технологий с открытым исходным кодом. 

Ее использование позволяет абстрагироваться от многих сложностей фронтенд-разработки. Разработчикам не обязательно учить JavaScript/TS, погружаться в особенности популярных фронтенд-фреймворков, тренироваться в верстке, чтобы иметь возможность создавать полнофункциональные веб-приложения. Достаточно просто писать код на Java и немного компоновать экраны в XML. При разработке интерфейса для Jmix под капот уходят также некоторые механики, связанные с «перекладыванием джейсонов», что открывает дополнительные возможности для написания интерактивных веб-приложений с использованием готовых компонентов и дополнений. 

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

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

Официальное открытие BitByBit

Время на прочтение3 мин
Количество просмотров636
Доброго времени суток, дорогие товарищи!

image

Рады предложить Вашему вниманию проект BitByBit, систему накопления знаний и обмена опытом между программистами. Да, уже существует далеко не один портал, приглашающий разработчиков публиковаться на своем интернет-пространстве. К сожалению, среди них мало кто может похвастаться чем-то новым. На 90% — это не очень удачные «хабра-клоны». Надеемся, что BitByBit не из их числа.
У нас не было желания создавать сайт ради сайта. Мы хотели, чтобы наш проект устранял все еще существующие проблемы. Вот некоторые из них.

Читать дальше →
Всего голосов 113: ↑91 и ↓22+69
Комментарии155

Вычисляем миллиардное число Фибоначчи менее чем за 7 секунд

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

Мы будем считать 1000,000,000 число Фибоначчи со всеми цифрами. Для этого я буду использовать продвинутый алгоритм для поиска чисел Фибоначчи. Тут не будет базовых алгоритмов на подобии матричного возведения в степень и проще. Но эта статья будет понятна и школьнику :-)

Читать далее
Всего голосов 113: ↑112 и ↓1+135
Комментарии45

А ваша зарплата в рынке? Простой, как топор, способ это узнать

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

Представьте, что в уголке экрана отображается зарплатный виджет. Как погодный, только зарплатный. И он вам показывает что-то типа "Ваша з/п - 115% от рынка. Работайте спокойно." Или - "Ваша з/п - 75% от рынка. Пора обновить резюме".

Но приведу методику, которая позволит ответить на вопрос, насколько лично ваша зарплата соответствует рынку. С точностью до нескольких процентов.
И хотя методика по технологичности на уровне каменного топора, опрос показал, что даже опытные коллеги не всегда ей пользуются.

Статья может быть полезна сформировавшимся айтишникам, которые не меняют работу каждый год-два. А особенно полезна она ленивым айтишникам (типа меня), которым лень хотя бы раз в полгода-год выходить на рынок.

Далее
Всего голосов 55: ↑50 и ↓5+60
Комментарии47

Оптимизация Gradle: избавляемся от Android-модулей

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

Ты уже оптимизировал билд кэши на CI, но время прогонов в МРах неуклонно переваливает за 10 минут? Не хочешь лезть в импакт анализ? Долгий синк проекта в студии?

Разбираем интересную оптимизацию билда Gradle для больших Android проектов.

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

Как компилировать json или история оптимизации python сервиса

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

В прошлой статье мы начали историю создания одного из компонентов платформы экспериментов в компании Okko — сервис сплитования трафика.

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

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

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

Как справиться с нехваткой открытых данных для обучения и тестирования ML-моделей

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


Привет! Меня зовут Илларион, я аспирант ИТМО и член команды, которая занимается предсказанием временных рядов, порожденных графовыми структурами, и другими исследованиями. Однако в разработке новых методов для прогнозирования есть существенное препятствие — нехватка открытых данных для обучения и тестирования моделей.


Для решения проблемы мы создали открытый инструмент Time Series Generator. Я рассказал о нем на митапе, посвященном open source-разработке для научных задач. Под катом делюсь особенностями разработанного решения и рассматриваю реализуемые им задачи.

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

Делаем вентилятор умным или как улучшить микроклимат в ванной комнате с помощью домашней автоматизации

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


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

Наверное, многие из вас понимают, что одним из ключевых моментов при эксплуатации ванной комнаты является поддержание оптимального микроклимата, поскольку избыточная влажность создает идеальную среду для развития плесени и грибка на любых пористых поверхностях, будь-то штукатурка или межшовное пространство кафеля. Для нормализации уровня влажности, в первую очередь необходимо обеспечить нормальную вентиляцию, как правило, данная задача решается установкой вытяжного вентилятора. Вместе с тем, для обеспечения эффективности, немаловажно автоматизировать процесс работы вытяжной вентиляции. В данной статье я хочу поделиться своим опытом реализации «домашней» автоматизации для решения этого вопроса. Впереди DIY и много картинок, присоединяйтесь!
Читать дальше →
Всего голосов 50: ↑49 и ↓1+59
Комментарии85

Как составить техническое задание на разработку сайта

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

Слышали фразу: «Нет тз — результат хз»? А ведь в нем столько правды! Правильно составленное техническое задание помогает избежать недоразумений между заказчиком и разработчиком, чтобы на выходе проект получился таким, как вы планировали в самом начале.

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

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

Как выбрать контроллер для DIY (сводная таблица по 30++ моделям с комментариями)

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


В этой статье речь пойдёт о выборе контроллера для DIY из ассортимента компании Kincony. Почему именно Kincony? Потому, что эта компания (в отличие от всех остальных) имеет беспрецедентно широкий модельный ряд контроллеров на ESP32 для DIY — на данный момент это около 40 моделей.

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

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

Плюс снабдил эту таблицу комментариями, пояснениями, рекомендациями и методикой подбора контроллеров для DIY проектов.

Итак…
Читать дальше →
Всего голосов 21: ↑19 и ↓2+27
Комментарии49

PHP 8.4: Новые функции поиска в массиве. Пишем с нуля

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

В PHP 8.4 планируется добавить новые функции массива: array_find, array_find_key, array_any и array_all, которые являются вспомогательными функциями для общих шаблонов проверки массива на наличие элементов, соответствующих определенному условию.

В настоящее время существует несколько функций, обрабатывающих массивы с использованием обратного вызова. Однако по-прежнему отсутствуют функции для поиска отдельного элемента, соответствующего условию, и тесно связанные функции проверки наличия элементов, соответствующих условию. Реализовать эти функции в среде пользователей относительно просто, но они часто требуются, что приводит к тому, что колесо изобретается снова и снова. Кроме того, функции такого типа реализованы и в других языках программирования, таких как Rust, JavaScript или C++. Поэтому есть причина включить эти функции в стандартную комплектацию следующей версии PHP. Кроме того, реализация этих функций очень похожа на array_filter и относительно проста в реализации, поэтому затраты на обслуживание должны быть низкими.

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

Адекватная латиница для русского языка

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

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

В первую очередь адекватный стандарт нужен для конвертации названий и имен для международных документов. Очевидно, что паспорта, водительские удостоверения и даже визитки должны быть с нормальными именами, написанным по правилам русского языка, а не английского, немецкого или французского. Сейчас в России и Казахстане используется стандарт конвертации из Британского Географического общества, который был принят столетия назад и предназначался для населенных пунктов, а не имен. И цель была отличать их от английских названий, поэтому, например, вместо очевидной буквы H для русской Х там используется KH — две буквы, которые носители английского языка не умеют читать, поскольку в их языке такого нет. И в русском тоже нет. Этот стандарт не подходит для нормального использования. Он даже не всегда одинаково относится к тем же самым буквам: Ц может превратится в C или в TS. А буква Ё чаще всего становится буквой E.

Второй областью использования является интернет и любые программно-аппаратные системы, где принято использовать латинские буквы. Есть такое понятие — «Человекопонятный URL» — сокращенно ЧПУ. Он используется для удобства пользователя, который может понять содержимое страницы сайта из ее адреса. Сейчас этот формат не стандартизирован и появляется масса вариантов, которые, если быть честным, все-таки больше похожи на стандарты перевода русскоязычных имен для документов на латиницы. Для программистов иногда может быть удобно именовать функции, переменные, таблицы и др. с помощью русских слов, но приходится это делать латинскими буквами. Для этого тоже очень нужен единый адекватный стандарт, который передает особенности русского языка, а не какого-то другого, как происходит это сейчас.

Читать далее
Всего голосов 43: ↑28 и ↓15+20
Комментарии191

KC868-AG Pro: эпицентр умного дома (ESP32, Zigbee, Tuya, IR, 433 MHz и прочее)

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


Какое-то время назад я разбирал в своём блоге контроллер для управления устройствами умного дома KC868-AG. Сейчас компания Kincony выпустила новую, значительно модернизированную версию KC868-AG Pro с поддержкой Zigbee 3.0 и Tuya в двух диапазонах 2,4 ГГц и 433 МГц. Плюс контроллер имеет IR и RF433 управление и приём сигналов и прочие возможности.

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

А теперь разберём как это устроено и как это работает (там есть множество интересных и неочевидных нюансов).
Читать дальше →
Всего голосов 19: ↑19 и ↓0+26
Комментарии30

Время — это не просто ещё одно измерение

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

Большинство из нас хоть раз в жизни задавались вопросом: «Каково кратчайшее расстояние между двумя точками?». По умолчанию многие дадут тот же ответ, что и Архимед более 2 000 лет назад: прямая линия. Если вы возьмёте плоский лист бумаги и поставите на нём две точки в любом месте, вы сможете соединить эти две точки любой линией, кривой или геометрической траекторией, которую только можно себе представить. До тех пор пока бумага остаётся плоской и никак не изогнутой, прямая линия, соединяющая эти две точки, будет самым коротким путём между ними.

Именно так работают три измерения пространства в нашей Вселенной: в плоском пространстве кратчайшее расстояние между любыми двумя точками — это прямая линия. Это верно независимо от того, как вы вращаете, ориентируете или иным образом располагаете эти две точки. Но наша Вселенная состоит не только из трёх пространственных измерений – она содержит четыре измерения, пространство и время. Легко взглянуть на это и сказать: «О, ну три из них — пространство, а одно — время, вот мы и получаем пространство-время», — и это правда, но это не вся история. В конце концов, кратчайшее расстояние между двумя событиями в пространстве-времени уже не является прямой линией. И вот, что говорит об этом наука.

Читать далее
Всего голосов 49: ↑44 и ↓5+56
Комментарии400

Netmiko: упрощение сетевой автоматизации на Python

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

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

Сегодня рассажем о модуле, который упрощает автоматизацию сетевых устройств — Netmiko. Если вы, как и мы, когда-то пытались автоматизировать конфигурации и управление сетью через SSH, то вы знаете, насколько это может быть сложным процессом. И тут на сцену помогает Netmiko.

Netmiko — это обертка над библиотекой Paramiko, разработанная для сетевых инженеров. Она упрощает работу с SSH-соединениями и добавляет ряд методов и интерфейсов для взаимодействия с сетевыми устройствами.

Этот модуль поддерживает большой спектр сетевых устройств — от Cisco и Juniper до Arista и HP. Всё, что нужно, это определить параметры устройства в виде словаря, и Netmiko позаботится обо всем остальном.

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

Как я автоматизировал свое утро с помощью Python

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

Приходилось ли вам по утрам смотреть в потолок в ужасе от горы предстоящей рутины? А я вот часто так делал. Пока однажды не сорвался. Я решил автоматизировать все свои утренние дела при помощи Python, и результат оказался поистине потрясающим.

Читать далее
Всего голосов 55: ↑34 и ↓21+16
Комментарии104

Как я победил хаос умных устройств, или Цифровая трансформация жилого пространства

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

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

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

Проект хаба для “умного дома” с BLE-устройствами

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

Меня зовут Андрей Соловьев. Я - технический директор в компании КЕДР Solutions. Наша команда специализируется на разработке электроники и встроенного ПО для решений Интернета вещей. К числу таковых относятся и системы “умный дом”. Здесь я поделюсь нашим опытом разработки хаба для системы с BLE-датчиками, расскажу о том, с какими проблемами мы столкнулись и как проект менялся в ходе работы. 

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

Скотч, кабель, Интернет: умный съемный дом

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

Я люблю автоматизацию, гаджеты и IoT

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

Да чего там, у меня даже бойлер по расписанию работает!

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

Автоматизируй это
Всего голосов 55: ↑51 и ↓4+59
Комментарии64

Здоровый свет. Что это? И при чём тут лампочка?

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

Вы когда-нибудь задумывались о важности освещения в собственной квартире и, если да, то каким оно должно быть? Давайте разбираться. 

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

Жизнь на Земле адаптирована к вращению нашей планеты. Дневной солнечный свет более холодный. Этот свет бодрит, но его длительное воздействие может привести к усталости и даже головным болям. Холодный свет блокирует выработку мелатонина, что делает его крайне нежелательным для использования перед сном. И наоборот, вечером, когда солнце близко к горизонту, свет более теплый. Он оказывает успокаивающее действие на организм.

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

Информация

В рейтинге
2 015-й
Дата рождения
Зарегистрирован
Активность