Pull to refresh
-15
0.1
Антон @Acuna

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

Send message

Я построил систему управления жизнью и она вас шокирует

Level of difficultyMedium
Reading time21 min
Views87K

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

Я расскажу о системе, к которой шел почти 18 лет, потому что системы GTD для обычных людей у меня не работали. Я пробовал ежедневники, Google Keep, Evernote, Notion, физическую белую доску для маркеров, делал локальный сайт на HTML, писал себе в личные сообщения и в канал в соцсетях и мессенджерах, пока, наконец-то, не дошел до Obsidian.

Читать далее

Толкаем байты, или Простейший эмулятор своими руками

Level of difficultyEasy
Reading time11 min
Views12K

Есть хороший способ начать свой путь в системное программирование: написать эмулятор и ассемблер для какого-нибудь простого процессора. Сегодня популярностью в узких кругах пользуются fantasy consoles: виртуальные игровые приставки в ретродухе. Я расскажу, как создать свой вариант виртуальной приставки BytePusher с процессором, имеющим всего одну команду. Если вы интересуетесь системным программированием, любите изучать необычные архитектуры процессоров или цените произведения из области демосцены, то эта статья для вас.

Читать далее

Сможет ли IPFS полностью заменить HTTP?

Reading time6 min
Views15K

Меня зовут Виталий Киреев, я руководитель R&D в SpaceWeb. В начале прошлого года мы внедрили IPFS-технологию в работу своего хостинга, и все наши клиенты получили возможность размещать контент в IPFS-сети. Решились на такой шаг не сразу: IPFS — технология пока еще экспериментальная, к ней и у R&D-команды полно вопросов.

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

Читать далее

Mikrotik. Построение VPN туннелей ipsec с динамическими ip клиентов

Reading time3 min
Views36K
Занимался переводом сети их VPN туннелей с оборудования D link DV 804 HV на Mikrotik. При переводе возникли проблемы решением которых поделюсь с Вами.
Читать дальше →

Освоение любой темы с помощью искусственного интеллекта и метода Фейнмана

Level of difficultyEasy
Reading time5 min
Views63K

Когда в последний раз вы сталкивались с трудной для понимания темой? Или проводили часы за просмотром обучающих видео на YouTube?

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

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

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

Читать далее

Почему децентрализованный хостинг не работает

Reading time7 min
Views6.2K
(cc) Пирамиды Гизы за окном пиццерии

Минуло 13 лет с появления биткоина, который породил сотни платформ со своими блокчейнами, протоколами и смарт-контрактами. И некоторые умные люди жалуются, что за прошедшее время мы так не нашли новых полезных применений для всего этого хозяйства. Кроме хранения и передачи ценности, разумеется. Максималисты могут сказать, что этого и так более чем достаточно. С другой стороны, а где полезные варианты использования для остальных 4000+ токенов, которые сейчас в обращении. Ведь они же создавались с какой-то хорошей целью, кроме строительства пирамид за фасадом легального бизнеса, верно ведь?

Например, одним из утилитарных применений считается децентрализованный P2P-хостинг типа Filecoin (за 0,0017% от стоимости Amazon S3) и StorJ. Они обещали кардинально изменить рынок хранения данных. Что же на самом деле? На самом деле всё не очень хорошо…
Читать дальше →

Выявляем волков в овечьей шкуре среди пользователей сайта

Level of difficultyMedium
Reading time12 min
Views13K

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

Читать далее

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

Level of difficultyEasy
Reading time11 min
Views4.9K

Привет, 

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

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

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

Читать далее

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

Reading time3 min
Views644
Доброго времени суток, дорогие товарищи!

image

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

Читать дальше →

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

Reading time3 min
Views23K

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Views31K

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

Виджет обещать не буду.

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

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

Далее

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

Level of difficultyMedium
Reading time10 min
Views9.3K

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

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

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

Читать далее

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

Reading time7 min
Views4.7K


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


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

Читать дальше →

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

Level of difficultyMedium
Reading time6 min
Views33K


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

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

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

Level of difficultyMedium
Reading time7 min
Views2.2K

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

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Views15K


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

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

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

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

Итак…
Читать дальше →

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

Level of difficultyEasy
Reading time4 min
Views6.6K

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

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

Читать далее

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

Level of difficultyEasy
Reading time11 min
Views12K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Views15K


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

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

А теперь разберём как это устроено и как это работает (там есть множество интересных и неочевидных нюансов).
Читать дальше →

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

Level of difficultyMedium
Reading time8 min
Views94K

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

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

Читать далее
1
23 ...

Information

Rating
5,037-th
Date of birth
Registered
Activity